Khóa tạo sẵn cho phép người nhận ngoại tuyến trong lúc thiết lập. Chúng không loại bỏ nhu cầu có đường chuyển phát và quản lý cẩn thận vòng đời khóa riêng.
Người nhận đang ngoại tuyến có thể nhận tin nhắn mã hóa sau đó vì thiết bị của họ đã công bố trước vật liệu khóa công khai. Người gửi vẫn cần một dịch vụ chuyển phát có thể truy cập được; “mã hóa bất đồng bộ” không có nghĩa là tin nhắn vượt qua sự cố mất mạng hoặc xuất hiện tức thì trên điện thoại đang ngắt kết nối.
Các thiết kế hậu lượng tử mở rộng ý tưởng này bằng cơ chế đóng gói khóa. Những câu hỏi quan trọng là bí mật ban đầu được thiết lập ra sao, khóa riêng cũ được ngừng sử dụng như thế nào, và những tin nhắn sau đó làm mới tính bảo mật bằng cách nào.
Khóa tạo sẵn giải quyết vấn đề thời điểm
Giả sử Maya đang ngoại tuyến khi Sam bắt đầu cuộc trò chuyện mới. Thiết bị của Maya đã tải lên các khóa công khai tạo sẵn trước đó. Sam có thể lấy vật liệu này, thực hiện phần thỏa thuận khóa phía người gửi và gửi tin nhắn mã hóa đầu tiên. Maya xử lý tin nhắn sau khi kết nối lại, bằng các khóa riêng được giữ trên thiết bị của mình.
Vì vậy, máy chủ cung cấp thông tin công khai và xếp hàng dữ liệu mã hóa; nó không cần sở hữu bí mật tin nhắn được tạo ra. Đặc tả X3DH của Signal là mô tả gốc về thiết kế bất đồng bộ này. Khóa tạo sẵn có chữ ký và khóa tạo sẵn dùng một lần có thời hạn sử dụng và vai trò khác nhau; “khóa tạo sẵn” không có nghĩa là mật khẩu bí mật được tải lên máy chủ.
Với cuộc trò chuyện đã được thiết lập, ứng dụng có thể dùng trạng thái phiên hiện có thay vì lặp lại bước thiết lập ban đầu cho từng tin nhắn. Khởi tạo phiên và cập nhật các khóa tin nhắn của phiên là hai thao tác riêng biệt.
KEM hậu lượng tử bổ sung điều gì?
Cơ chế đóng gói khóa có ba thao tác cơ bản: tạo khóa, đóng gói bằng khóa công khai và giải đóng gói bằng khóa riêng tương ứng. Đóng gói tạo ra cả bí mật dùng chung lẫn bản mã. Bản mã có thể được chuyển đến sau; bản thân bí mật không được gửi dưới dạng rõ.
NIST FIPS 203 chuẩn hóa ML-KEM. Với ML-KEM-768, khóa đóng gói công khai có kích thước 1.184 byte, bản mã 1.088 byte và bí mật dùng chung 32 byte. Đây là kích thước ở cấp thuật toán, không phải kích thước của toàn bộ gói tin nhắn. Chữ ký, khóa cổ điển, mã định danh và phần đóng khung truyền tải tạo thêm chi phí; khóa công khai đã lưu đệm có thể không đi kèm mỗi tin nhắn.
Trong cấu trúc lai, giao thức kết hợp vật liệu bí mật cổ điển và hậu lượng tử theo một sơ đồ dẫn xuất khóa đã xác định. Chỉ ghép tên các thuật toán lại không chứng minh rằng cách kết hợp đó an toàn. Việc gắn với danh tính, xác thực tính hợp lệ, phân tách miền và xử lý lỗi cần được đặc tả và đánh giá.
Ví dụ: PQXDH, không phải bản thiết kế phổ quát
Đặc tả PQXDH của Signal mô tả khóa hậu lượng tử tạo sẵn dùng một lần có chữ ký và khóa dự phòng cuối cùng có chữ ký. Người gửi xác minh các chữ ký được cung cấp, thực hiện thỏa thuận khóa và đưa bản mã KEM cùng mã định danh khóa vào tin nhắn mã hóa đầu tiên. Sau đó, người nhận dẫn xuất cùng bí mật và xử lý tin nhắn.
Khóa dự phòng cuối cùng hỗ trợ thiết lập khi không còn khóa KEM dùng một lần, nhưng phân tích khi khóa bị lộ không giống nhau. Việc xóa và luân chuyển khóa riêng ảnh hưởng đến khả năng bảo vệ các phiên trước. Đặc tả cũng phân biệt tính bí mật chuyển tiếp hậu lượng tử với xác thực trước kẻ tấn công lượng tử chủ động. Không nên thay những chi tiết này bằng câu “cơ chế dự phòng không đánh đổi bảo mật”.
PQXDH là một cấu trúc đã được đặc tả. Không nên sao chép các đường cong, chữ ký và lựa chọn tham số cụ thể của nó vào mô tả sản phẩm khác, trừ khi sản phẩm đó có tài liệu xác nhận chúng.
Cơ chế ratchet không giống kho khóa tạo sẵn
Khóa tạo sẵn hỗ trợ thiết lập phiên. Giao thức ratchet thay đổi bí mật trong quá trình trò chuyện. Đặc tả Double Ratchet giải thích sự tiến triển của khóa tin nhắn và các cấu trúc ratchet hậu lượng tử mới hơn, bao gồm những thiết kế không truyền một lượt trao đổi hậu lượng tử đầy đủ theo từng tin nhắn ứng dụng.
Tính bí mật chuyển tiếp liên quan đến các tin nhắn trước đó khi khóa bị lộ về sau. Bảo mật sau xâm nhập liên quan đến việc phục hồi khả năng bảo vệ liên lạc tương lai sau khi kẻ tấn công mất quyền truy cập và vật liệu bí mật mới được bổ sung. Không thuộc tính nào có nghĩa là phần mềm độc hại có thể ở lại trên điện thoại vô thời hạn trong khi mật mã bằng cách nào đó che giấu bản rõ của điện thoại khỏi nó.
Xóa khóa tạo sẵn công khai khỏi máy chủ ngăn việc tái sử dụng thông thường; điều đó không tương đương với xóa khóa riêng tương ứng khỏi thiết bị đầu cuối. Kiểm toán hữu ích kiểm tra cả quy tắc vòng đời lẫn cách xử lý tin nhắn bị chậm.
Livara ghi nhận điều gì — và điều gì vẫn cần bằng chứng?
Trang bảo mật của Livara mô tả thiết lập phiên lai bằng khóa dùng một lần khi có sẵn, các bước cập nhật chuỗi tin nhắn thông thường và các kỳ ML-KEM định kỳ. Điều này khác với tuyên bố cũ rằng mỗi tin nhắn đều thực hiện một lượt trao đổi ML-KEM hoàn toàn mới. Đây là những tuyên bố trong tài liệu sản phẩm, không phải xác minh độc lập về bản triển khai.
Đừng suy ra từ những tuyên bố đó một chính sách dự phòng cụ thể khi hết khóa, khoảng thời gian bổ sung khóa hay con số độ trễ mạng. Những câu hỏi đó cần tài liệu giao thức theo bản phát hành hoặc kết quả đo lường. Proof Lab cũng không phải phép kiểm tra đầy đủ về thiết lập bất đồng bộ, cạn khóa hoặc khôi phục tin nhắn bị chậm.
Cách đánh giá tuyên bố về nhắn tin ngoại tuyến
Hãy yêu cầu nhà cung cấp hoặc bên đánh giá đưa ra bằng chứng bao phủ những trường hợp sau:
| Trường hợp kiểm thử | Điều cần quan sát |
|---|---|
| Tin nhắn đầu tiên gửi cho liên hệ đang ngắt kết nối | Vật liệu khóa công khai nào đã được dùng và khi nào người nhận thực sự nhận được tin nhắn |
| Hết khóa tạo sẵn dùng một lần | Quá trình thiết lập dừng lại hay chuyển sang phương án dự phòng có tài liệu, cùng đánh đổi bảo mật đã nêu |
| Người nhận cài đặt lại hoặc đổi danh tính | Tin nhắn cũ trong hàng đợi có còn giải mã được không và thay đổi khóa có được hiển thị không |
| Tin nhắn đến chậm hoặc sai thứ tự | Giới hạn lưu giữ, xử lý khóa bị bỏ qua và thông báo lỗi dễ hiểu |
| Trở lại sau thời gian dài vắng mặt | Làm mới khóa an toàn, xử lý có giới hạn và trạng thái chuyển phát chính xác |
| So sánh hiệu năng | Thiết bị, phiên bản ứng dụng, mạng, kích thước tải tin và số đo riêng cho thiết lập mới từ đầu so với phiên đã thiết lập |
Sử dụng tài khoản và tin nhắn kiểm thử không chứa thông tin nhạy cảm. Kiểm thử chuyển phát thành công chứng minh tình huống đó, không phải mọi thuộc tính mật mã. Ngược lại, chuyển phát thất bại có thể là vấn đề mạng hoặc vòng đời chứ không phải thuật toán mã hóa bị phá.
Câu hỏi thường gặp
Người nhận có thể ngoại tuyến khi tôi gửi không?
Có, nếu ứng dụng có vật liệu công khai cần thiết và hạ tầng chuyển phát, lưu trữ. Người nhận không thể đọc tin nhắn trong hàng đợi cho đến khi thiết bị của họ có thể lấy và xử lý nó.
Khóa KEM lớn hơn có luôn khiến trò chuyện chậm đi rõ rệt không?
Chỉ kích thước khóa không đủ để suy ra tuyên bố chung về thời gian. Tần suất thiết lập, xử lý theo lô, lưu đệm, cách triển khai và điều kiện mạng đều quan trọng. Hãy công bố phép đo hiệu năng thay vì hứa không có chi phí bổ sung.
Khóa tạo sẵn có chữ ký có chứng minh được người đứng sau tài khoản không?
Nó xác thực vật liệu so với một danh tính ký. Danh tính đó gắn với người bạn muốn liên hệ như thế nào là câu hỏi riêng về tin cậy và xác minh.
Mã hóa hậu lượng tử có hoạt động khi hoàn toàn không có kết nối không?
Một số phép tính cục bộ có thể chạy ngoại tuyến. Chuyển phát tin nhắn vẫn cần đường liên lạc; mật mã không cung cấp đường đó.



