Making messaging interoperability with third parties safe for users in Europe

Bài tóm tắt WhatsApp 2024 4. Điều chỉnh Độ khó: Trung bình

WhatsApp · 2024 · 4. Điều chỉnh · Độ khó: Trung bình — bài gốc

Bối cảnh

  • Luật DMA của EU (hiệu lực 7/3/2024) buộc WhatsApp và Messenger cho dịch vụ nhắn tin bên thứ ba kết nối vào. Năm đầu: tin 1:1 và gửi ảnh, voice, video, file; về sau mở rộng sang group và cuộc gọi.
  • Đội của Meta làm việc với Uỷ ban châu Âu gần hai năm. Luật cũng cấm làm yếu bảo mật cho chính user của Meta.

Thay đổi chính

  • Giao thức mã hoá: muốn bên thứ ba dùng Signal Protocol; cho phép giao thức khác nếu chứng minh được bảo đảm tương đương. Bên thứ ba dựng cấu trúc tin protobuf, mã hoá bằng Signal Protocol, đóng vào stanza XML.
  • Dựa trên kiến trúc client/server sẵn có: client bên thứ ba nối thẳng vào server WhatsApp bằng giao thức của WhatsApp (dựa trên XMPP, stanza XML tối ưu); server WhatsApp nói chuyện với server bên thứ ba qua HTTP cho xác thực user và push notification. Theo Meta, cách này giữ được các kiểm tra integrity, là mô hình "cắm là chạy" cho bên thứ ba, hạn chế dữ liệu cá nhân chỉ ở server Meta, và dùng hạ tầng đã chịu hơn 100 tỉ tin/ngày.
  • Danh tính: Enlistment API khi bên thứ ba tham gia; user giữ định danh hiển thị của dịch vụ gốc và được cấp thêm một định danh nội bộ WhatsApp dùng ở tầng hạ tầng. Bên thứ ba chứng minh sở hữu định danh bằng token ký (OpenID có chỉnh sửa + JWT), WhatsApp kiểm bằng public key định kỳ lấy từ server bên thứ ba; JWT nằm trong payload của Noise handshake mà mọi kết nối client-server phải làm.
  • Media: server bên thứ ba lưu media; client Meta tải media đã mã hoá qua một proxy của Meta.
  • Phương án proxy trung gian (đang bàn): cho bên thứ ba đặt proxy giữa client của họ và server WhatsApp, đỡ phải cài giao thức của WhatsApp. Theo Meta, cái giá là mất tín hiệu ở tầng kết nối (như TCP fingerprint) dùng chống spam và lừa đảo, và lộ toàn bộ metadata chat cho proxy, nên sẽ kèm yêu cầu thêm.
  • Theo Meta, lời hứa mã hoá đầu cuối cần kiểm soát cả hai client; với client bên thứ ba thì họ không bảo đảm được bên đó làm gì với tin, nên phải nói rõ cho user rằng chat interop khác chat WhatsApp.

Bài học cho SWE

  • Mở hệ khép kín cho bên ngoài thì lời hứa bảo mật đầu-cuối chỉ còn mạnh bằng đầu yếu nhất; phải tách rõ phần mình bảo đảm và phần không.
  • Bắt bên ngoài nối vào hạ tầng sẵn có giữ được tín hiệu chống lạm dụng; cho thêm lớp trung gian thì linh hoạt hơn nhưng mất tín hiệu và lộ metadata.

Liên quan