Bài học sau việc Độ Mixi bị hack kênh Youtube: Sử dụng mã xác thực 2 bước là chưa đủ?

Độ Mixi cũng đã bị hacker gửi email mạo danh nhà phát hành game để đề nghị hợp tác, trong email có chứa đường link tải file có mã độc. Streamer đã click vào đường link này dẫn đến máy tính cá nhân bị tấn công. Hậu quả là cả kênh Youtube và Steam của Độ Mixi đều bị hacker chiếm quyền kiểm soát, gây nhiều thiệt hại cho streamer này. Hiện nay, các nhà cung cấp như Google đều yêu cầu nhập mã xác thực 2 bước (nếu người dùng có cài đặt) để tăng cường bảo mật cho phiên đăng nhập. Tuy nhiên, như vậy là chưa đủ và bạn vẫn có nguy cơ bị hack mất tài khoản. Nguyên nhân chi tiết sẽ được phân tích dưới đây. Vì sao có xác thực 2 bước nhưng hacker vẫn vào được tài khoản? Trong một phiên đăng nhập vào các website sẽ có 3 đối tượng chính là: user, trình duyệt và máy chủ. Khi người dùng đăng nhập vào 1 website, trình duyệt sẽ gửi thông tin gồm tài khoản và mật khẩu về máy chủ. Máy chủ sẽ kiểm tra và yêu cầu người dùng nhập mã xác thực 2 bước. Sau khi người dùng nhập mã được gửi về từ SMS hoặc các ứng dụng Authentication thì máy chủ sẽ tạo ra 1 cookie và gửi về trình duyệt. Trình duyệt sẽ lưu thông tin của cookie này. Từ đó, mỗi khi user này quay lại truy cập các page bất kỳ trên website này, trình duyệt sẽ gửi cookie và các truy vấn kèm theo lên máy chủ. Nhờ đó, máy chủ xác nhận được danh tính của người dùng và không yêu cầu đăng nhập lại nữa mà trả về thông tin người dùng muốn truy cập ngay lập tức. ⇒ Điều này có nghĩa là, việc nhập mã xác thực 2 bước đã xảy ra trong quá trình đăng nhập và trước khi máy chủ tạo ra cookie đại diện cho một phiên đăng nhập hợp lệ gồm cả việc kiểm tra xác thực 2 bước. Nên nếu hacker chiếm được thông tin cookie này của người dùng thì có thể đăng nhập vào tài khoản mà không cần xác thực 2 bước. Vậy làm sao để đảm bảo an toàn cho mỗi phiên đăng nhập? Nếu cookie có nguy cơ bị hacker tấn công như vậy, chẳng lẽ sau mỗi phiên đăng nhập chúng ta lại cần log out tài khoản và xóa sạch cookie, lần sau đăng nhập lại phải thực hiện các công đoạn từ đầu? Các trình quản lý mật khẩu là giải pháp tối ưu cho vấn đề này. Tôi sẽ lấy ví dụ với trình quản lý mật khẩu Locker để giúp bạn hiểu rõ hơn. Theo như những phân tích ở trên, lộ cookie đồng nghĩa với thông tin đăng nhập và tài khoản sẽ bị bộ và hacker có thể dùng cookie để đăng nhập vào tài khoản người dùng. Để tiết kiệm thời gian và giúp người dùng tiện lợi hơn, không phải xác minh lại mỗi lần, các nhà cung cấp sẽ lưu thông tin đăng nhập của người dùng ở 3 nơi sau là: Session storage Browser storage Cookie Trong đó lưu ở cookie là phương thức kém an toàn và dễ bị hacker tấn công nhất. Trong khi đó, session Session storage là phương pháp lưu trữ hiệu quả hơn cả mà các password manager như Locker hiện nay đang sử dụng. Xem thêm: Chương trình affiliate của Locker Password Manager với commission lên tới 30% Session storage được đánh giá là an toàn hơn vì thời gian của 1 session (phiên đăng nhập) sẽ ngắn hơn (khoảng 30 phút). Khi F5 lại trang web các thông tin đăng nhập cũng sẽ biến mất theo. Rủi ro duy nhất để hacker khai thác được session storage là nếu hacker chiếm quyền được trên thiết bị của người dùng, từ đó kiểm soát được cả trình duyệt. Điều này có thể xảy ra nếu thiết bị của bạn bị cài mã độc. Tuy nhiên, nếu bạn sử dụng Locker Password Manager thì giả sử hacker truy cập được vào session storage, tải về data liên quan đến tài khoản thì cũng không thể sử dụng và truy cập được nếu không có master password (thông tin master password không được lưu ở bất cứ đâu, kể cả session storage). Dữ liệu của người dùng sẽ được mã hóa thế nào trong Locker password manager? Khi sử dụng Locker Password Manager, tất cả người dùng sẽ được yêu cầu tạo một Master Password. Nếu bạn quên Master Password, đồng nghĩa với việc bạn sẽ không thể truy cập được dữ liệu của mình nữa (trừ khi bạn đã thiết lập tính năng Emergency Access trước đó). Khi Master Password được tạo, Locker sẽ: Băm  Master Password  để tạo ra  Master Key  dài 256 bit. Mở rộng độ dài  Master Key  từ 256 bit thành  Stretched Master Key  dài 512 bit. Sinh ngẫu nhiên ra một giá trị  Symmetric Key  dài 256 bit. Sử dụng AES-256-CBC để mã hóa  Symmetric Key  với khóa là  Stretched Master Key  để thu về  Encrypted Symmetric Key. Giá trị  Encrypted Symmetric Key  sẽ được lưu vào máy chủ Locker. Quá trình khởi tạo khoá khi tạo Master Password của Locker Từ bước 1 đến 4 ở trên, tất cả hoàn toàn được diễn ra trên máy tính/thiết bị di động của bạn và phía Locker cũng không thể biết hay lưu lại các giá trị  Master Password  hay  Symmetric Key. Sau khi bạn đã đăng nhập thành công vào Locker, và bạn chọn lưu một mật khẩu hoặc một dữ liệu bí mật khác (tạm gọi là  Item ), đây là những gì thực sự sẽ diễn ra  trên chính thiết bị của bạn (không phải máy chủ Locker) : Tải  Encrypted Symmetric Key  từ máy chủ Locker về. Tính toán  Stretched Master Key  từ  Master Password  tương tự như các bước phía trên. Sử dụng AES-256-CBC để giải mã  Encrypted Symmetric Key  với khóa là  Stretched Master Key  để thu về  Symmetric Key. Sử dụng AES-256-CBC để mã hóa  Item  với khóa là  Symmetric Key  để thu về  Encrypted Item. Gửi  Encrypted Item  vào máy chủ Locker để lưu. Quá trình mã hoá dữ liệu của Locker Bạn có thể thấy, Locker chỉ lưu  Encrypted Symmetric Key  và  Encrypted Item  vào máy chủ Locker. Và những dữ liệu này là các ciphertext vô nghĩa và không có khả năng sử dụng được. Vậy Locker có thể xem được dữ liệu của người dùng không? Để có thể đọc được dữ liệu của bạn, tức là đọc được  Item , Locker cần phải giải mã được  Encrypted Item , điều này sẽ đòi hỏi phải có  Symmetric Key  trước. Tưởng tượng bạn có một chiếc nhẫn kim cương. Bạn để chiếc nhẫn trong một chiếc hộp có 3 lớp khoá bao gồm: FaceID của bạn, vân tay của bạn, và một mã PIN chỉ có bạn biết. Sau đó bạn để chiếc hộp đó vào két sắt rồi khoá lại, sau đó đưa chìa khoá cho quản gia. Có 4 yếu tố cần được quan tâm ở đây. - Chìa khoá để mở két sắt chỉ có quản gia của bạn có. Mặc dù người đó có chìa khoá, nhưng cũng chỉ mở được lớp đầu tiên. Lớp này đại diện cho Encrypted Symmetric Key mà Locker nắm giữ. - Ba yếu tố còn lại để mở chiếc hộp thứ hai: FaceID của bạn, vân tay của bạn, và mã PIN chỉ có bạn biết. Ba yếu tố này đại diện cho Symmetric Key, Stretched Master Key và Master Key. Điều này hoàn toàn bất khả thi nếu quản gia muốn lấy nhẫn kim cương của bạn, họ không có khả năng để mở chiếc hộp thứ 2, cũng giống như việc Locker không thể xem được dữ liệu của người dùng vậy. Tuy nhiên Locker chỉ có  Encrypted Symmetric Key , vì thế sẽ phải tìm cách giải mã được giá trị này. Như phân tích trước,  Encrypted Symmetric Key  bị mã hóa bởi  Stretched Master Key , vốn là giá trị được mở rộng từ chính  Master Password  của bạn. Đồng nghĩa với việc, Locker phải biết được  Master Password  mới có thể giải mã  Encrypted Symmetric Key  để thu về  Symmetric Key . Điều này hoàn toàn bất khả thi với Locker khi Master Password chỉ tồn tại trong trí nhớ của bạn và trên thiết bị của bạn (trong ngắn hạn). Xem thêm: Mã độc Infostealer là gì? Làm sao để phòng chống hiệu quả? Chúng ta không thực sự biết data của mình có giá trị thế nào cho đến khi bị hacker khai thác. Nếu vẫn tiếp tục chủ quan với việc bảo vệ các dữ liệu, tài khoản cá nhân của mình, đừng bất ngờ nếu một ngày nào đó bạn phát hiện ra bị bay acc Facebook, mất tài khoản ngân hàng hoặc tệ hơn nữa là bản thân đang đứng tên cho một khoản nợ tín dụng nào đó.