Những từ này nghĩa là gì
Sản phẩm bảo mật hay núp sau thuật ngữ. Trang này làm ngược lại: mọi từ được dùng ở bất cứ đâu trên trang này, nói bằng lời thường và vẽ thành hình, kèm việc nó thật sự đem lại gì cho bạn và nó dừng lại ở đâu.
Nếu có chỗ nào vẫn khó hiểu thì đó là lỗi của chúng tôi chứ không phải của bạn — hãy viết cho support@passwordepic.com và chúng tôi sẽ sửa lại cách diễn đạt.
Những khái niệm cơ bản
Mã mở khoá (passcode)
Bí mật duy nhất bạn gõ. Không phải mã PIN và cũng không phải mật khẩu chính — trước kia đó là hai thứ riêng trong ứng dụng, và việc gộp chúng lại thành một là một bước tăng bảo mật chứ không phải đơn giản hoá. Xem Mã mở khoá của bạn.
Kho (vault)
Toàn bộ những gì bạn đã lưu trong ứng dụng. Khi trang này nói "chúng tôi không mở được kho của bạn", đó là nghĩa đen, chứ không phải "chúng tôi hứa sẽ không mở".
DEK
Chiếc khoá giải mã những mật khẩu bạn đã lưu. DEK là viết tắt c ủa data encryption key — khoá mã hoá dữ liệu — và đó là cái tên được dùng ở đây, trong ứng dụng, và trong tài liệu kỹ thuật của ứng dụng: một cái tên cho một chiếc khoá, để khi gặp nó ở chỗ khác bạn không tưởng là chiếc khoá thứ hai.
Nó không được lưu ở bất cứ đâu — không trên điện thoại, không trên máy chủ. Nó được dựng lại mỗi lần bạn mở khoá, dùng một lần, rồi bị xoá.
Nó được dựng như thế này:
DEK = Shard 1 ⊕ Shard 2 ⊕ ShardVault
Dấu ⊕ là phép XOR, một cách kết hợp các giá trị với hai tính chất quan trọng ở đây: phải có đủ mọi thành phần mới dựng lại được kết quả, và nắm trong tay một phần các thành phần không cho bạn biết bất cứ điều gì về phần còn lại.
Mảnh khoá (shard)
Một phần của DEK. Chiếc khoá được chia thành các mảnh nằm ở những nơi khác nhau, nên không nơi nào — kể cả chúng tôi — nắm đủ để dựng lại nó.
Cần đủ cả ba. Xem Cách hoạt động.
Có thể bạn để ý trong hình không có "Mảnh 3". Nó có tồn tại — đó chính là pepper — và không được vẽ vào vì nó không bao giờ di chuyển. Nó nằm yên trong phần cứng của Google, và là thứ mà ShardVault được tính bằng. Xem Cloud KMS và "pepper".
ShardVault
Mảnh thứ ba của DEK, và là mảnh duy nhất không được lưu ở đâu cả — bởi giữa hai lần mở khoá, nó không tồn tại.
Shard 1 và Shard 2 là những giá trị nằm sẵn ở đâu đó rồi được lấy về. ShardVault thì không được lấy về. Nó được tính ra, từ đầu, mỗi lần bạn mở khoá, bên trong một mô-đun phần cứng của Google Cloud, từ Shard 2 của bạn và pepper.
Hai điều rút ra từ đó:
- Giữa hai lần mở khoá, không có gì để lấy cắp. Một giá trị không tồn tại thì không thể bị sao chép ra khỏi cơ sở dữ liệu.
- Nó gắn với tài khoản của bạn, chứ không chỉ gắn với Shard 2 của bạn. Kẻ nào đó lấy được Shard 2 đã mã hoá của bạn rồi nhờ máy chủ chúng tôi xử lý sẽ nhận về một giá trị khác, vì danh tính người gọi cũng được trộn vào phép tính. Xem Cách hoạt động.
Zero-knowledge
Một hệ thống được xây sao cho chính những người vận hành nó thật sự không đọc được thứ bạn lưu, chứ không phải kiểu họ đọc được nhưng đã hứa là không đọc.
Có một phép thử rất đơn giản, và nó đúng với mọi dịch vụ:
Trên điện thoại của bạn
StrongBox và TEE
Hai cái tên cho cùng một ý: một con chip riêng, bị khoá chặt, nằm trong điện thoại, dùng để giữ khoá và từ chối đưa khoá ra ngoài.
Một chiếc khoá sinh ra bên trong nó có thể được dùng — bạn nhờ chip mã hoá hoặc giải mã một thứ gì đó — nhưng không có lệnh nào nói "đưa chiếc khoá đó cho tôi".
Không cho ứng dụng, không cho chúng tôi, không cho cả người đã root máy.
TEE (Trusted Execution Environment) là một vùng được bảo vệ nằm trong chính bộ xử lý chính. StrongBox là một con chip tách rời hẳn, và mạnh hơn. Điện thoại của bạn có cái này, cái kia, hoặc không có cái nào, tuỳ dòng máy. Đây là thứ duy nhất mà mọi thứ còn lại trên trang này dựa vào.
Argon2id
Một cách biến mã mở khoá của bạn thành một chiếc khoá, cố ý làm cho chậm và cố ý ngốn bộ nhớ. Điểm mấu chốt là cái giá, và ai phải trả nó:
Bạn trả nó một lần, lúc mở khoá. Kẻ đang đoán mã của bạn phải trả nó cho mỗi lần đoán — và đó là thứ biến "hàng triệu lần đoán mỗi giây" thành một việc chậm hơn và tốn kém hơn rất nhiều.
Entropy, và con số "45 bit"
Một cách đo độ khó đoán của mã mở khoá có tính đến bộ ký tự bạn chọn, chứ không chỉ độ dài.
Tám chữ số và tám ký tự hoa-thường lẫn ký hiệu là hai chuyện hoàn toàn khác nhau — cái sau có số khả năng nhiều hơn khoảng 40 triệu lần. Đếm ký tự không diễn đạt được điều đó; đếm bit thì được. Xem Mã mở khoá của bạn.
Chống chụp và quay màn hình
Android cho phép một ứng dụng đánh dấu cửa sổ của chính nó là được bảo vệ. Điều đó có nghĩa g ì thì phụ thuộc hoàn toàn vào cách màn hình đang bị ghi lại, và hai trường hợp không giống nhau:
Chụp ảnh màn hình trong lúc một màn hình được bảo vệ đang hiện sẽ bị từ chối cho toàn màn hình — bạn nhận được thông báo từ Android và không có tấm ảnh nào.
Quay màn hình thì không bị từ chối, nhưng khi bạn đang ở trong ứng dụng thì trong bản ghi không có gì để đọc: khung hình toàn màu đen, kể cả bàn phím. Trường hợp cần thêm biện pháp là hộp thoại tự động điền, vì nó nằm trên một ứng dụng khác đang bị quay bình thường — và đó là lý do ứng dụng từ chối hẳn việc cho bạn gõ mã mở khoá khi có bản ghi đang chạy.
Độ tin cậy của bàn phím
Ứng dụng kiểm tra xem bàn phím bạn đang dùng có đi kèm máy hay được cài thêm về sau, và cảnh báo nếu là cài thêm.
Nó đáng giá tới đâu, nói chính xác: một bàn phím đi kèm máy không mặc nhiên là an toàn, và một bàn phím bạn cài từ Play Store gần như chắc chắn là bình thường. Đây là một lời nhắc, không phải một phán quyết — cảnh báo bạn có thể bỏ qua, không bao giờ là rào chặn. Ứng dụng cố ý không giữ danh sách bàn phím "được duyệt", vì một ứng dụng có thể tự khai bất kỳ tên nào, mà tên thì không phải bằng chứng về danh tính.