Chuyển tới nội dung chính

Cách hoạt động

Trình quản lý mật khẩu nào cũng nói rằng chỉ mình bạn đọc được dữ liệu của bạn. Trang này mô tả cấu trúc khiến điều đó là sự thật ở đây, để bạn có thể thẩm định lời khẳng định ấy thay vì phải tin nó.

Khoá không được lưu ở đâu cả​

Chiếc khoá giải mã kho mật khẩu của bạn — DEK, viết tắt của data encryption key — không được lưu ở bất cứ đâu. Không trên điện thoại, không trên máy chủ của chúng tôi, không trong bản sao lưu. Nó được dựng lại từ những mảnh riêng biệt mỗi lần bạn mở khoá, dùng cho đúng một thao tác, rồi bị xoá khỏi bộ nhớ ngay sau đó.

Điều ứng dụng nói ở lần mở đầu tiênĐiều ứng dụng nói ở lần mở đầu tiên

Ứng dụng mở ra với đúng lời khẳng định mà trang này sắp mổ xẻ — khoá của bạn được dựng trên máy này và ở lại đây. Phần tiếp theo là cách nó được sắp đặt để điều đó là sự thật, chứ không phải một lời hứa.

Những mảnh ấy gọi là shard, và chúng nằm ở bốn nơi khác nhau.

MảnhNằm ở đâuCó rời đi được không?
Mã mở khoá của bạnTrong trí nhớ của bạn, và không ở đâu khácKhông bao giờ được lưu hay truyền đi, dưới bất kỳ dạng nào
Shard1Bên trong StrongBox hoặc TEE của điện thoại bạnKhông. Không thể xuất ra, do thiết kế của phần cứng
Shard2Nằm mã hoá trong cơ sở dữ liệu của chúng tôi. Điện thoại bạn tải nó vềChỉ ở dạng ciphertext, và tự nó không mở được gì
PepperMột mô-đun bảo mật phần cứng của Google Cloud KMSKhông bao giờ — kể cả trong phản hồi gửi về máy chủ của chính chúng tôi
Shard4Google Cloud Secret ManagerKhông bao giờ tới được điện thoại bạn

Hãy để ý danh sách đó thật ra là gì: bốn nơi tách biệt, và không có hai nơi nào nằm dưới cùng một quyền kiểm soát. Trí nhớ của bạn, phần cứng điện thoại bạn, cơ sở dữ liệu của chúng tôi, và dịch vụ khoá của Google. Chiếm được bất kỳ một nơi nào cũng không đủ.

Pepper và Shard4 không bao giờ được giao ra ngoài. Máy chủ của chúng tôi dùng chúng để tính ra một giá trị thứ ba, ShardVault, và chỉ trả về đúng giá trị đó. Sau đó, ngay trên thiết bị của bạn, trong mã native:

DEK = Shard 1 ⊕ Shard 2 ⊕ ShardVault

Thiếu bất kỳ mảnh nào trong ba mảnh đó là không có khoá.

Vì sao cấu trúc này quan trọng​

Chúng tôi nắm hai trong ba. Chúng tôi tính được ShardVault, và chúng tôi giữ Shard 2 ở dạng ciphertext. Chúng tôi vẫn không mở được kho mật khẩu của bạn, bởi Shard 1 chưa từng tồn tại ở đâu khác ngoài phần cứng bảo mật trong điện thoại bạn, và phần cứng đó sẽ không xuất nó ra — không cho chúng tôi, không cho bạn, không cho kẻ tấn công đang nắm tài khoản của bạn.

Đó là toàn bộ lập luận. Nó dựa trên hành vi của phần cứng chứ không dựa vào thiện chí của chúng tôi — và đó là phiên bản duy nhất của lời khẳng định này đáng để đưa ra.

Máy chủ của chúng tôi thật sự xử lý những gì​

Ở đây, chính xác quan trọng hơn là nghe cho tuyệt đối.

  • Mã mở khoá của bạn không bao giờ được truyền đi. Ở gói Titanium, nó thậm chí không bao giờ tồn tại ở dạng mà một máy chủ có thể đem đi thử: giao thức OPAQUE chứng minh bạn biết mã mở khoá mà không tiết lộ bất cứ thứ gì có thể bị tấn công ngoại tuyến.
  • Mật khẩu của bạn được mã hoá trước khi lưu, và không bao giờ được tải lên cơ sở dữ liệu của chúng tôi. Bản sao lưu đi vào Google Drive của bạn.
  • Shard 2 có được máy chủ của chúng tôi xử lý trong quá trình dẫn xuất khoá, và một bản sao được lưu ở dạng đã mã hoá. Tự nó thì không mở được gì cả.
  • ShardVault được tính cho bạn, mỗi lần mở khoá. Pepper dùng làm khoá cho phép tính đó nằm nguyên bên trong mô-đun phần cứng Cloud KMS và không bao giờ xuất hiện trong phản hồi.
  • Chúng tôi lưu những gì một tài khoản cần để tồn tại: email của bạn, gói bảo mật, tên mẫu máy và khoá công khai của thiết bị, cùng các sự kiện bảo mật như đăng nhập và đổi thiết bị.

ShardVault gắn với tài khoản của bạn​

Máy chủ không tính ShardVault chỉ từ Shard 2. Nó trộn thêm ID tài khoản của bạn và một giá trị riêng cho từng tài khoản không bao giờ rời khỏi máy chủ — nên một người dùng đã đăng nhập không thể gửi Shard 2 của người khác lên và nhận về ShardVault của người đó.

Điều này quan trọng vì Shard 2 là mảnh duy nhất có thể di chuyển. Không có ràng buộc ấy, bất kỳ ai lấy được bản sao Shard 2 của bạn đều có thể nhờ chính máy chủ của chúng tôi biến nó thành hai phần ba chiếc khoá của bạn.

Đổi mã mở khoá không mã hoá lại thứ gì​

Đổi mã mở khoá chỉ bọc lại giá trị dùng để mở Shard 2. Nội dung của Shard 2 không đổi, nên ShardVault không đổi, nên DEK không đổi.

Trên thực tế: đổi mã mở khoá diễn ra nhanh, không đụng tới mật khẩu bạn đã lưu, và các tệp sao lưu hiện có vẫn còn dùng được.

Vì sao chúng tôi không giúp được nếu bạn quên mã mở khoá​

Chúng tôi không có gì để đối chiếu một mã mở khoá, và không có đường nào tới chiếc khoá nếu không có thiết bị của bạn. Không có liên kết đặt lại, không có câu hỏi khôi phục, và không có quyền can thiệp nội bộ — điều đó cũng có nghĩa là không có quyền can thiệp nào để người khác đòi ở chúng tôi.

Đó là cái giá phải đánh đổi. Một dịch vụ có thể khôi phục kho mật khẩu của bạn là một dịch vụ có thể đọc nó.

Những giới hạn thật lòng nằm ở đâu​

  • Bản sao lưu và bản xuất chỉ mở được trên đúng thiết bị đã tạo ra chúng. Chúng mang một lớp mã hoá gắn với phần cứng bảo mật của chiếc điện thoại đó, nên chép tệp sang máy khác cũng vô ích. Xem Sao lưu và xuất dữ liệu.
  • Việc ghi lại màn hình đã được xử lý, còn đúng một khoảng hở. Chụp ảnh bị từ chối thẳng khi một màn hình của PasswordEpic đang hiện, và quay màn hình trong ứng dụng thì ra toàn màu đen — kể cả bàn phím. Khoảng hở 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; ở đó ứng dụng từ chối cho nhập mã khi có bản ghi đang chạy, nhưng phát hiện được bản ghi thì cần Android 15.
  • Bàn phím bạn cài đặt có thể đọc những gì bạn gõ, trong mọi ứng dụng. Nếu điều đó quan trọng với bạn, hãy dùng bàn phím đi kèm máy; PasswordEpic sẽ cảnh báo khi bàn phím đang dùng không phải bàn phím gốc.
  • Silver, gói miễn phí, hoàn toàn bằng phần mềm. Nó mã hoá bằng AES-256-CTR cộng thêm một thẻ xác thực riêng, chạy trong JavaScript, không dùng lưu trữ khoá bằng phần cứng. Xem Các gói bảo mật.

Những gì bạn có thể làm bất cứ lúc nào​

  • Cài đặt → Đặt lại tài khoản xoá ngay kho mật khẩu và dữ liệu tài khoản của bạn khỏi máy chủ của chúng tôi.
  • Sao lưu vào Google Drive của chính bạn, hoặc không sao lưu gì cả.
  • Ở các gói trả phí, xem thiết bị nào đang giữ tài khoản, và giải phóng tài khoản khỏi thiết bị đó.

Đọc tiếp​