WhatsApp calls: Enhancing security and privacy

Bài tóm tắt WhatsApp 2023 3. Quy mô lớn Độ khó: Trung bình

WhatsApp · 2023 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc

Bối cảnh

  • Phần mềm gọi điện là đường tấn công hấp dẫn: nhiều giao thức phức tạp (WebRTC, PJSIP có nhiều CVE), và client thường tự xử lý gói tin đến để thiết lập cuộc gọi nhanh hơn, nên lỗ hổng có thể bị khai thác "zero-click", nạn nhân không cần bắt máy.
  • Tắt chuông kiểu thông thường vẫn giữ nguyên luồng giao thức của một cuộc gọi bình thường: máy nhận vẫn xử lý dữ liệu do kẻ tấn công kiểm soát và có thể lộ thông tin thiết bị.

Thay đổi chính

  • Silence Unknown Callers (6/2023): một giao thức riêng gửi thông báo cuộc gọi đã lược bỏ, do server thực thi, để máy nhận không phải chạy thiết lập cuộc gọi đầy đủ với dữ liệu từ người lạ.
  • Privacy token: server phải biết có nên tắt chuông không mà không hỏi máy nhận, trong khi WhatsApp không lưu ai gọi ai (theo WhatsApp, giữ hồ sơ đó cho 2 tỉ user là rủi ro). Mỗi client tự quyết tin ai và phát token cho họ; người gọi kèm token của người nhận; server kiểm token mà không biết quan hệ cụ thể giữa hai người.
  • Protect IP Address in Calls (10/2023): gọi trực tiếp peer-to-peer cho chất lượng tốt hơn nhưng lộ IP (vùng địa lý, nhà mạng) cho bên kia. Bật tính năng thì mọi cuộc gọi đi qua relay của WhatsApp; cuộc gọi vẫn mã hoá đầu cuối nên relay không nghe được.

Vì sao

  • Theo WhatsApp: thêm state machine, firewall, sandbox ở máy nhận đã nhiều lần không đủ chống spyware trong ngành; cắt bớt phần phải xử lý mới thu hẹp được bề mặt tấn công.

Bài học cho SWE

  • Muốn giảm bề mặt tấn công ở client, đổi giao thức để client không phải xử lý dữ liệu không tin cậy, thay vì chỉ ẩn kết quả ở UI.
  • Khi server phải ra quyết định dựa trên quan hệ mà nó không được biết, để client phát token chứng minh quan hệ đó.
  • Peer-to-peer và relay là đánh đổi giữa độ trễ/chi phí và lộ metadata; để user chọn.

Liên quan