WhatsApp's Signal Protocol integration is now complete
Bài tóm tắt WhatsApp 2016 3. Quy mô lớn Độ khó: Trung bình
WhatsApp · 2016 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc
Bài của Open Whisper Systems; nhận định ghi "theo Open Whisper Systems". Bài trước: WhatsApp 2014.
Bối cảnh
- Một năm rưỡi sau thông báo hợp tác, Signal Protocol đã được đưa dần vào mọi loại liên lạc (chat, group, tệp đính kèm, voice note, cuộc gọi thoại) trên mọi client: Android, iPhone, Windows Phone, Nokia S40, S60, BlackBerry, BB10.
- Hơn 1 tỉ user hoạt động hằng tháng dùng Signal Protocol (2016).
Thay đổi chính
- Giai đoạn chuyển tiếp: khi chưa ai cũng cập nhật, trên mạng vẫn còn tin plaintext. Client hiện thông báo trong cuộc trò chuyện khi chat 1:1 hay group chuyển sang mã hoá; trạng thái mã hoá xem được trong phần cài đặt của chat.
- Chống hạ cấp: khi client đã thấy một liên hệ hỗ trợ mã hoá đầy đủ, nó không gửi plaintext tới liên hệ đó nữa, kể cả khi liên hệ quay về bản cũ. Việc này ngăn server hoặc kẻ tấn công trên mạng ép hạ cấp.
- Hết hạn client cũ: về sau các client chưa hỗ trợ mã hoá sẽ hết hạn, và bản mới sẽ không gửi hay nhận plaintext nữa.
- Xác minh: quét QR hoặc đọc to chuỗi số. Signal Protocol được sửa để có fingerprint toàn số ("security code"): 12 nhóm 5 chữ số. Chọn số vì dễ bản địa hoá cho một tỉ user (danh sách từ một ngôn ngữ không dùng được, hex không hợp với mọi bảng chữ cái), dễ phân biệt khi nhìn và nghe, vẫn gọn. User có thể bật thông báo khi security code của liên hệ đổi.
Vì sao
- Mã hoá mặc định cho mọi user cần một giao thức chạy trên mọi nền tảng, kể cả điện thoại phổ thông đời cũ, và cần đóng cửa hạ cấp sau khi chuyển.
Bài học cho SWE
- Migration giao thức trên client có ba pha rõ: hai chế độ chạy song song, chặn quay lui theo từng cặp liên hệ khi cả hai đã sẵn sàng, rồi cho client cũ hết hạn.
- Chi tiết UX (định dạng fingerprint) cũng là quyết định kiến trúc khi user ở mọi ngôn ngữ.
Liên quan
#Signal Protocol#End-to-end encryption#Downgrade protection#Security code#Numeric fingerprint#Client expiry#Rollout theo nền tảng
Được nhắc tới trong
Công ty (1)
Bài tóm tắt (1)