IPLS: Privacy-preserving storage for your WhatsApp contacts

Bài tóm tắt WhatsApp 2024 3. Quy mô lớn Độ khó: Khó

WhatsApp · 2024 · 3. Quy mô lớn · Độ khó: Khó — bài gốc

Bối cảnh

  • Danh bạ trước đây chỉ nằm trong điện thoại: mất máy là mất danh bạ, chỉ thêm được liên hệ từ điện thoại. Multi-device và nhiều account trên một máy (công việc, cá nhân) cần danh bạ riêng cho WhatsApp, đồng bộ qua thiết bị và khôi phục được.
  • Lưu danh bạ trên server thì server có thể đọc; phải tìm cách để chỉ chủ account khôi phục được.

Thay đổi chính

  • IPLS (Identity Proof Linked Storage): client sinh khoá đối xứng, mã hoá tên liên hệ; khoá được cất trong Key Vault dựng trên HSM (cùng loại với sao lưu E2EE, WhatsApp 2021). Lấy khoá ra phải chứng minh danh tính thiết bị chính.
  • Ghép hai hạ tầng sẵn có: key transparency (WhatsApp 2023) công bố mọi lần đổi identity key của thiết bị chính vào AKD; HSM kiểm identity key của client mới bằng AKD và yêu cầu client chứng minh có private key tương ứng, rồi mới trả khoá danh bạ qua kênh mã hoá giữa client và HSM.
  • Cloudflare làm nhân chứng: ký mỗi epoch và root hash của AKD; HSM kiểm chữ ký bằng public key của Cloudflare. WhatsApp không cập nhật AKD được nếu thiếu chữ ký, tức phụ thuộc vào độ sẵn sàng của dịch vụ ký của Cloudflare. Proof nhất quán giữa các epoch đưa lên S3 dạng ghi một lần đọc nhiều, ai cũng lấy được. Mục tiêu: chỉ có một bản thư mục, được bên thứ ba xác nhận.
  • Hệ thống được nhà nghiên cứu ngoài và NCC Group xem xét.

Vì sao

  • Theo WhatsApp: gắn mọi truy cập dữ liệu nhạy cảm với việc đổi identity key mà ai cũng kiểm được, giống cách quét QR phát hiện public key bị tráo.

Bài học cho SWE

  • Các primitive bảo mật đã có (HSM vault, log minh bạch) có thể ghép thành tính năng mới thay vì làm lại từ đầu.
  • Thêm nhân chứng bên ngoài là thêm một phụ thuộc cứng vào độ sẵn sàng của bên đó; phải chấp nhận và thiết kế cho nó.

Liên quan