Cuộc chiến giành kho mật khẩu
Hãy tưởng tượng có người muốn lấy mật khẩu của bạn.
Không phải một mật khẩu. Tất cả.
Phần lớn các trang bảo mật trả lời chuyện đó bằng cách liệt kê sản phẩm có gì: thuật toán này, chứng chỉ kia, một hàng logo. Trang này làm một việc thú vị hơn.
Hãy thử tấn công nó.
Vòng 0 — Luật chơi
Hai người chơi. Cả hai đều nghiêm túc. Nhưng chỉ một bên cần may mắn.
Black Hat được dùng mọi thứ. Đoán mật khẩu. Chiếm tài khoản Google. Đánh vào máy chủ. Ngồi giữa đường truyền. Lấy điện thoại. Root nó. Nhìn màn hình. Nhìn bàn phím. Trộm tệp sao lưu. Đưa bạn một app giả. Đọc bộ nhớ trong lúc bạn đang dùng.
White Hat không cố dựng một bức tường không thể phá. Thứ đó không tồn tại, và tuyên bố có nó chính là cách các trang bảo mật đánh mất người đọc hiểu chuyện. Mục tiêu hẹp hơn nhiều, nhưng hữu ích hơn nhiều:
Chúng tôi không hứa một bức tường không thể phá. Chúng tôi xây một cầu thang mỗi bậc một đắt hơn.
Mười tầng. Hãy xem cái giá leo lên thế nào.
Tầng 1 — "Tôi biết email của bạn"
😈 Black Hat. "Tôi không cần điện thoại của bạn. Không cần máy tính của bạn. Thậm chí không cần biết bạn là ai. Địa chỉ của bạn nằm trong một vụ rò rỉ dữ liệu, ngay cạnh một mật khẩu bạn từng dùng ở đâu đó năm 2019. Tôi thử nó ở đây. Và chín nghìn biến thể. Trên mười nghìn tài khoản. Tốn của tôi một buổi tối."
Anh ta nói đúng, nó gần như không tốn gì. Đó chính là lý do ai cũng bắt đầu từ đây.
🛡️ White Hat. "Cứ thử."
Mỗi lần đăng nhập đều được chấm điểm ngầm về khả năng là hành vi tự động, và còn bị giới hạn tần suất bên trên nữa. Bạn không thấy gì cả trừ khi có điều bất thường.
Và đây mới là phần quan trọng hơn cả giới hạn tần suất:
Đăng nhập thành công không có nghĩa là chạm được vào kho.
Ngay cả khi đoán trúng, anh ta cũng chưa tới được đâu cả. Anh ta chỉ mới lên tới Tầng 2.
Hoá đơn tới lúc này: một buổi tối.
Tầng 2 — "Tôi có tài khoản Google của bạn"
😈 "Được thôi. Tôi không đoán — tôi trộm luôn. Phishing, session token, gì cũng được. Tôi có tài khoản Google của bạn. Tôi chỉ việc cài PasswordEpic lên máy của tôi rồi đăng nhập bằng danh nghĩa của bạn."
Anh ta cài. Anh ta đăng nhập. Màn hình đang tải.
🛡️ TỪ CHỐI.
Ở các gói trả phí, tài khoản của bạn gắn với một thiết bị — và danh tính ở đây không phải một mã định danh mà ứng dụng chỉ cần khai là có. Đó là việc sở hữu một chiếc khoá được sinh ra bên trong chip bảo mật của điện thoại bạn, và không thể xuất ra ngoài.
Anh ta có danh tính của bạn. Anh ta không có thiết bị của bạn.
Thứ anh ta nhận được là một cái kho rỗng của chính mình. Các mục của bạn chưa từng nằm trên máy chủ nào để phiên của anh ta tải về, và chiếc khoá giải mã chúng không thể ghép lại trên một thiết bị không giữ Shard 1.
Hoá đơn tới lúc này: một tài khoản Google bị đánh cắp — và nó chẳng mua được gì.
Tầng 3 — "Vậy tôi lấy cả cơ sở dữ liệu"
😈 "Quên điện thoại đi. Tôi quay sang các anh. Máy chủ, cơ sở dữ liệu, tất cả. Cứ cho là tôi thắng hoàn toàn."
Cứ cho là vậy. Chiếm trọn. Mọi bản ghi.
Phần lớn mọi người nghĩ câu chuyện kết thúc ở đây. Đây là chiến lợi phẩm thật sự:
ANH TA CÓ: ANH TA KHÔNG CÓ:
✓ Hồ sơ tài khoản ✗ Dù chỉ một mục trong kho
✓ Shard 2, đã mã hoá ✗ Shard 1
✗ Mã mở khoá của bạn
✗ Bất kỳ DEK nào
🛡️ "Anh ta chiếm được máy chủ. Anh ta vẫn không có cái kho."
Các mục trong kho được mã hoá ngay trên điện thoại bạn và không bao giờ được tải lên, nên trong đó không có gì của bạn để mà lấy. Còn Shard 2 mà anh ta lấy được thì sao?
Hoá đơn tới lúc này: chiếm trọn hạ tầng của cả một công ty — đổi lấy hồ sơ tài khoản và một mẩu ciphertext.
Đó chính là khác biệt giữa một dịch vụ hứa không nhìn và một dịch vụ không thể nhìn.