Pass wealth là gì

Related Articles

Khoảng cuối tuần rồi ngân hàng Vietcombank (VCB) có phát đi một thông báo cảnh báo người dùng không giao username và password của tài khoản ngân hàng online cho các ứng dụng bên thứ ba. VCB chỉ ra cụ thể một ứng dụng đó là Money Lover, một ứng dụng quản lý tài chính cá nhân được khá nhiều anh em Tinh tế sử dụng. Vậy thông báo này có ý nghĩa như thế nào? Việc bạn dùng Money Lover để thống kê giao dịch ngân hàng có làm bạn mất tiền hay không, và Money Lover có thể làm gì để hệ thống này trở nên an toàn hơn?

Thông báo của Vietcombank

Trước hết là về thông báo của VCB (bạn có thể xem online ở đây). Thông báo này nguyên văn như sau:

Việc đăng nhập tài khoản Vietcombank từ bất kỳ website hoặc ứng dụng nào khác (Ví dụ: ứng dụng Money Lover) chính là việc khách hàng cung cấp thông tin bảo mật dịch vụ NHĐT cho người khác và hoàn toàn tiềm ẩn nguy cơ rủi ro mất an toàn cho tài khoản. Chuyện ngân hàng cảnh báo cho người dùng của mình về việc quản lý chặt username / password là việc hoàn toàn bình thường, đó là trách nhiệm của ngân hàng và VCB đã làm tốt điều đó. Mình có nói chuyện với CEO của Money Lover, ảnh cũng nói điều này là hợp lý và ảnh không hề phản đối việc làm của VCB hay nói đó là chuyện không đúng. Bên Money Lover cũng chia sẻ là Vietcombank đã xác nhận không có tài khoản khách hàng nào bị hack hay mất tiền vì sử dụng app Money Lover.

Quảng cáo

Về phía Money Lover, trong app quản lý tài chính cá nhân này thường không đụng gì tới tài khoản ngân hàng của bạn, mọi giao dịch thu chi đều do bạn tự nhập tay vào. Nhưng tới tháng 3 năm nay, Money Lover có thêm chức năng link với tài khoản ngân hàng để lấy giao dịch về một cách tự động, mỗi khi bạn chi tiền hay có lương mới thì Money Lover sẽ tự nhận biết và bạn khỏi phải nhập tay nữa. Money Lover hỗ trợ link với một số ngân hàng Việt Nam, trong đó có Vietcombank. Lưu ý là Money Lover chỉ có quyền xem giao dịch của bạn chứ không thể thực hiện giao dịch thay cho bạn.

Money_Lover_link_ngan_hang_2.jpg

Tính năng tự lấy giao dịch thu chi của Money Lover với tài khoản Vietcombank​

Những ứng dụng có khả năng tập hợp giao dịch của người dùng giống như Money Lover được gọi là Aggregator, tạm dịch sang tiếng Việt là “tập hợp nội dung”. Nghiệp vụ này đã xuất hiện từ khá lâu trong ngành công nghệ tài chính thế giới (FinTech) và ứng dụng aggregator nổi nhất được biết tới là Mint.com. Mint hoạt động chủ yếu ở Mỹ và Canada, nó cũng cung cấp chức năng gần giống như Money Lover là tự động thu thập các giao dịch thu chi của người dùng thông qua nhiều tài khoản ngân hàng, tập trung vào một chỗ rồi tạo thống kê cho bạn dễ xem, dễ quản lý. Tính tới tháng 10 năm 2013, Mint đang có 10 triệu người dùng.

Từ lâu, các ứng dụng aggregator như Mint đã không phải là một thứ mà các ngân hàng ưa. Những ngân hàng lớn ở Mỹ cũng đã từng khuyên người dùng không cung cấp thông tin tài khoản của mình cho các ứng dụng bên thứ ba, nếu có mất mát gì xảy ra thì họ không chịu trách nhiệm. Tính tới lúc này vẫn còn những tranh luận về mặt pháp lý liên quan đến việc khiếu kiện nếu người dùng bị trộm thông tin tài khoản và bị sử dụng thông tin đó để giao dịch trái phép. Nhưng nói gì thì nói, rủi ro đó vẫn là có thực. Tính tới lúc này, Mint vẫn chưa từng thông báo về việc hệ thống của họ bị hack hay trộm.

Cách Money Lover lấy thông tin giao dịch từ ngân hàng

Với một số ngân hàng cấp trung, họ có hợp tác chính thức với Money Lover để “mở cửa” cho phép Money Lover truy cập vào dữ liệu khách hàng sau khi được sự đồng ý tứ người dùng. Với phương pháp này, các ngân hàng sẽ cung cấp một bộ hàm API cho Money Lover, trong đó Money Lover sẽ gửi thông tin tài khoản của người dùng về máy chủ của ngân hàng, máy chủ sẽ thực hiện việc xác thực, chứng nhận rồi gửi thông tin giao dịch ngược lại cho Money Lover. Money Lover cũng dùng cách tương tự để biết về các khoản chi bạn đã thực hiện khi đi xe Uber vì Uber có mở API ra.

Nhưng với Vietcombank, ngân hàng này chưa “mở cửa” hệ thống của họ cho Money Lover. Theo mình biết thì Vietcombank chưa mở API là do lo ngại về các vấn đề bảo mật có thể xảy ra. Nói cách khác, Money Lover không thể dùng biện pháp gửi thông tin tài khoản về máy chủ Vietcombank để nhận lại lịch sử giao dịch. Vậy Money Lover đã làm cách nào để lấy được giao dịch thu chi của bạn?

Mình hỏi anh Lê Nguyên Khang, trưởng phòng an toàn thông tin của công ty VCCorp, anh cho rằng Money Lover đang xài một dạng phần mềm gọi là scrapper, hay còn có tên khác là crawler. Phần mềm này chạy trên máy chủ của Money Lover chứ không phải trên app di động mà chúng ta cài vào điện thoại. Crawler sẽ dùng username và password do bạn cung cấp, đăng nhập vào website Vietcombank, sau đó đi vào các trang con dùng để liệt kê giao dịch. Crawler sẽ đọc mã nguồn HTML của những trang này, thu thập các dòng giao dịch mới phát sinh so với lần quét trước, lấy thông tin số dư tài khoản ngân hàng rồi đưa dữ liệu về cho app Money Lover. Crawler có thể được hẹn giờ để chạy, ví dụ như chạy vào 1 giờ đêm mỗi ngày chẳng hạn.

Quảng cáo

Việc đọc mã nguồn HTML rất đơn giản, tự bạn cũng có thể làm được (vào trang web bất kì, bấm phím phải chuột trên trình duyệt, chọn Inspect Element). Dựa vào các id gán cho từng thẻ HTML, một crawler sẽ dễ dàng biết được những gì nó muốn. Như trong hình bên dưới (chụp thẳng từ web Online Banking của Vietcombank), số dư tài khoản của mình nằm trong thẻ có mã định danh là “lb_soduhientai”. Chỉ cần biết nhiêu đó đã đủ để crawler lấy được thông tin.

Ma_nguon_web_site.png

Trong quá trình này, theo như những gì mình nói chuyện với CEO của Money Lover, thì mật khẩu của bạn luôn được mã hóa. Ngay cả mật khẩu lúc được lưu vào cơ sở dữ liệu của Money Lover cũng đã được mã hóa nên theo lý thuyết, hacker không (hoặc khó) dò ra mật khẩu của bạn do nó chỉ được lưu dưới dạng một đống kí tự ngoằn ngèo dạng như %wefwfGFfrgB8rb%b47bv/fwjf.

Ở khâu đăng nhập lần đầu tiên mà bạn cung cấp username password, giao thức truyền đi cũng là HTTPS với nội dung của request được mã hóa hoàn toàn (ở lúc mới ra mắt, Money Lover mắt lỗi chỉ dùng giao thức HTTP truyền thống nhưng điều đó đã được khắc phục sau đó 1 tiếng đồng hồ). Vì nội dung đã được mã hóa, một người nào đó đứng giữa nhìn trộm vào đường truyền cũng không biết được username và password của bạn.

Có thể bạn sẽ thắc mắc: giao dịch ngân hàng đòi mật khẩu một lần (OTP) gửi qua điện thoại hay dùng token, làm sao Money Lover lấy được? OTP chỉ cần khi bạn THỰC HIỆN GIAO DỊCH, ví dụ gửi tiền cho ai đó. Còn crawler này chỉ đọc thông tin, không cần xài OTP làm gì. Còn ở khâu đăng nhập, website Vietcombank có yêu cầu nhập mã captcha, mình vẫn chưa biết Money Lover làm cách nào để vượt mặt khâu bảo mật này, cũng chưa hỏi được người khác.

Rủi ro vẫn tồn tại

Quảng cáo              

Tất nhiên, hệ thống của Money Lover, và cả những hệ thống của các giải pháp aggregator khác trên thế giới, vẫn tồn tại rủi ro về mặt bảo mật. Ví dụ, nếu hacker có thể đột nhập vào máy chủ của Money Lover thì trên lý thuyết, hắn có thể trộm được danh sách username, password của người dùng, và biết đâu bằng cách nào đó hắn có thể phá mã để ra được username / password nguyên gốc. Đột nhập ở đây không nhất thiết phải là hack từ xa, có thể hắn chui vào được data center và lấy ổ cứng chẳng hạn.

Tất nhiên, kể cả khi đã có password dạng mã hóa trong tay thì hacker vẫn phải giải mã thành password gốc thì mới xài được, và cách mã hóa càng mạnh thì việc giải mã ngược lại càng khó, càng cần nhiều thời gian. Một ví dụ nhỏ: chuẩn mã hóa AES 126-bit sẽ cần nhiều tỉ năm để có thể phá mã theo dạng mò mật khẩu, nếu tăng lên thành AES 256-bit sẽ càng khó hơn. Ngoài ra, để phá đã được mã AES 128-bit thì cần chứa khoảng 38 nghìn tỉ terabyte dữ liệu trước khi password chính xác bị phát hiện, nhiều hơn tất cả dữ liệu chứa trên tất cả máy tính cá nhân trên toàn thế giới trong năm 2016. Do đó, về lý thuyết, việc tấn công và giải mã password kiểu này là không thực tế.

Ma_hoa_password.jpg

Ảnh chụp màn hình một cơ sở dữ liệu lưu username và password, trong đó password đã được mã hóa​

Một rủi ro nữa nằm ở chính nhân sự của các aggregator. Giả sử Money Lover hay Mint thuê phải một người quản trị hệ thống không có đạo đức, hắn ta có thể dùng những quyền được trao trong tay để làm lộ danh sách username / password này ra bên ngoài, và một lần nữa, có thể người đó cũng sẽ biết cách giải mã danh sách để lấy được mật khẩu gốc. Đã từng có những vụ việc tương tự xảy ra trên thế giới khi mà người của nội bộ dịch vụ tài chính bán thông tin khách hàng nhằm thu lợi cá nhân (nhưng chưa có thông tin nào về việc aggregator bị hack kiểu này).

Khi username password bị lộ ra, tiền của bạn về lý thuyết vẫn có thể bị trộm nhưng do cơ chế xác thực OTP nên rủi ro sẽ ít hơn. Cái đáng lo hơn đó là hacker sẽ dùng username password này vào web ngân hàng, mò ra điện thoại, email của bạn rồi đem bán cho các công ty quảng cáo để họ hiển thị quảng cáo định hướng (targeted ads).

Đây chỉ là một vài trong nhiều rủi ro có thể xảy ra. Và Money Lover đã nỗ lực ngăn chặn việc này bằng cách áp dụng các biện pháp bảo mật như dùng HTTPS, mã hóa mạnh, lưu thông tin nhạy cảm lên máy chủ của Amazon Web Services chứ không lưu ở server tự quản (giả định máy chủ Amazon Web Services rất rất khó để bị can thiệp). Nhưng các hacker mũ đen luôn đi trước một bước, và không ai có thể đảm bảo rằng hệ thống của họ an toàn 100% không bao giờ có lỗ hổng.

Chung quy lại, rủi ro khi bạn cung cấp username, password cho Money Lover hay các ứng dụng bên thứ ba nói chung đó là thông tin đăng nhập của bạn có thể bị đánh cắp và thực hiện giao dịch trái phép. Bản thân Money Lover không thể tự chi tiền nên bạn không mất tiền vì app này, mà bạn mất tiền vì những hacker ăn trộm tài khoản của bạn.

Một số giải pháp

Mình có tham khảo một vài giải pháp để tăng tính bảo mật cho những ứng dụng aggregator như Money Lover. Lấy chính ví dụ của Mint, để tránh việc mật khẩu của người dùng có thể bị giải mã trái phép, Mint tách chía khóa giải mã (key) thành 5 phần, chứa trên 5 chiếc thẻ Smart Card khác nhau. Các thẻ này được 5 nhân viên cấp cao của Mint giữ trong người, vậy nên hacker muốn giải mã thì phải có trong tay đủ cả 5 Smart Card này. Mình chưa rõ Money Lover có dùng cách tương tự hay chưa.

Mint cũng xài các giải pháp bảo mật như HTTPS, dùng các chứng chỉ bảo mật từ các cơ quan lớn trên thế giới, cũng như mã hóa mạnh cả phần mềm lẫn phần cứng của mình để tránh bị hack. Có lẽ vì mức độ mã hóa mạnh như vậy mà đến nay Mint vẫn chưa có lần nào để lộ thông tin của người dùng ra ngoài. Thêm vào đó là các chức năng bảo mật hai lớp của Mint cũng giúp hạn chế việc bị lấy trộm thông tin tài khoản.

Về yếu tố con người, những việc mà một công ty aggregator có thể làm để đảm bảo không bị chính nhân sự của mình lấy trộm tài khoản khách hàng đó là:

  • Tuyển dụng các nhân sự có đạo đức tốt
  • Đưa ra những điều khoản ràng buộc nếu để lộ thông tin
  • Thiết lập các hệ thống theo dõi để biết khi nào thì người quản trị hệ thống đăng nhập, người ta làm gì trên đó
  • Thiết lập cơ sở dữ liệu ở mức người quản trị hệ thống vẫn có khả năng làm tốt công việc của mình mà không bao giờ thấy được dữ liệu thô của khách hàng (việc này khó, nhưng không phải là không làm được).Cũng có ý kiến nói rằng Money Lover không cần lưu mật khẩu lên máy chủ của họ mà vẫn lấy được thông tin tài khoản. Điều này hoàn toàn có thể, khi đó username và password sẽ được chứa trong điện thoại di động của người dùng với mức độ mã hóa cực kì cao. Mỗi khi chạy app và lấy giao dịch mới, app sẽ dùng username password này để trích xuất thông tin tài khoản ra. Nhưng điểm hạn chế đó là bạn buộc phải chạy app thì mới có được thông tin giao dịch, không thể tự động hóa và phục vụ cho mục đích thống kê của Money Lover.

    Mình có tham khảo ý kiến của anh Thai Duong đang công tác tại Google, ảnh có chia sẻ là nếu ảnh làm hệ thống cho Money Lover, ảnh sẽ dùng một server riêng biệt để lưu thông tin username password tài khoản ngân hàng của người dùng. Máy chủ này chỉ và chỉ có thể được truy cập từ máy chủ chính nơi đặt crawler.  Các server Amazon Web Services mà Money Lover đang sử dụng hoàn toàn làm được điều này thông qua cách chặn IP, các lớp tường lửa, chặn địa chỉ MAC…

server_arch_money_lover.png

Anh ấy cũng gợi ý máy chủ lưu mật khẩu nên xài dịch vụ Amazon KMS. Dịch vụ này sẽ quản trị các key dùng mã hóa mật khẩu tài khoản ngân hàng. Mỗi khi crawler hoạt động và lấy mật khẩu người dùng để trích xuất giao dịch mới, nó sẽ phải gửi yêu cầu tới cho Amazon KMS. Nếu hacker chui vào được, sẽ có những yêu cầu lạ và Amazon KMS có thể cảnh báo cho Money Lover về điều đó.

Cuối cùng, anh này gợi ý các máy chủ cần phải tách biệt nhau. Ở trên chúng ta đã có máy chủ lưu username và password của người dùng nằm riêng, giờ tách luôn máy chủ của Money Lover, máy chủ của crawler cũng như máy chủ lưu thông tin giao dịch. Bằng cách này, Money Lover có thể hạn chế quyền truy cập của chính nhân viên mình: đội ngũ làm crawler chỉ có quyền truy cập vào server crawler, đội làm app chỉ vô được server app, tương tự như thế. Quá trình đưa ứng dụng, trên cả server lẫn mobile, cũng cần được tự động hóa để hạn chế tối đa sự can thiệp từ con người.

Tất nhiên, những giải pháp này đều cần chi phí lớn, thiết kế phức tạp, cần tối ưu nhiều nếu không sẽ làm chậm quá trình truyền thông tin giữa các máy chủ. Money Lover có thể đi tìm các tư vấn, giám sát và kiểm toán để giúp họ triển khai hệ thống bảo mật tốt hơn.

Trước khi hết bài viết, có thể bạn sẽ hỏi: vậy có nên xài Money Lover hay các ứng dụng aggregator hay không? Do không có hệ thống nào an toàn 100% nên quyết định này nằm ở cá nhân bạn, và nó cũng còn phụ thuộc nhiều vào yếu tố niềm tin của bạn dành cho aggregator. Nếu tin thì dùng, không không đủ tin thì không yêu.

Nếu quyết định có sử dụng, bạn nên hạn chế rủi ro cho mình bằng cách chỉ link các tài khoản chi tiêu vào Money Lover hay aggregator nói chung, còn tài khoản tiết kiệm hay tài khoản có nhiều tiền thì không nên link vào. Bạn cũng nên thường xuyên thay đổi mật khẩu tài khoản ngân hàng như khuyến cáo của họ, có thể là 3-6 tháng thay đổi một lần để lỡ như tài khoản có bị hack âm thầm thì cũng giảm thiểu số tiền có khả năng bị mất. Ngoài ra, như vài anh em Tinh tế có nói vui: nếu tài khoản của bạn là “quỹ đen”, không muốn cho ai biết giao dịch thì cũng không link vào.

Sẵn chia sẻ luôn cho anh em: tài khoản chi tiêu, nhận lương chỉ nên để lại một ít tiền vừa đủ xài trong đó, có bao nhiêu tiền còn lại hãy chuyển sang tài khoản tiết kiệm. Bạn vừa nhận được lãi suất cao hơn, vừa an toàn hơn trong trường hợp thẻ tín dụng bị ăn cắp hay username, password online bị trộm (muốn rút tài khoản tiết kiệm phải đến ngân hàng, không làm được online nếu chưa tới ngày đáo hạn).

Ngày mai bạn lập trình viên của Tinh tế, Đào Hoàng Sơn (@mrpaint), sẽ chia sẻ với các bạn kĩ hơn về những thử nghiệm của bạn này liên quan tới tính bảo mật của các trang web và ứng dụng của một số ngân hàng Việt Nam. Các bạn hãy chờ xem nhé!

Tham khảo: Reuteurs, Time, New York Time, Amazon

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertismentspot_img

Popular stories