
Signal Protocol là giao thức mã hóa end-to-end (E2EE) được sử dụng phổ biến nhất thế giới hiện nay. Phát triển bởi Trevor Perrin và Moxie Marlinspike vào năm 2013, Signal Protocol bảo vệ hàng tỷ cuộc trò chuyện mỗi ngày trên Signal, WhatsApp, Facebook Messenger và nhiều nền tảng khác.

Signal Protocol là gì?
Signal Protocol (trước đây gọi là TextSecure Protocol) là giao thức mật mã cung cấp mã hóa end-to-end cho voice calls và instant messaging. Giao thức này hoạt động ở tầng ứng dụng OSI, xây dựng trên nền tảng các giao thức predecessor như OTR và SCIMP.
Signal Protocol đã được kiểm toán độc lập nhiều lần: Đại học Ruhr Bochum (2014), Oxford/Queensland/McMaster (2016), và nghiên cứu của Kobeissi, Bhargavan, Blanchet (2017). Tất cả đều xác nhận giao thức này về mặt mật mã là an toàn và đúng đắn.
Double Ratchet Algorithm — Con rùa đôi
Double Ratchet Algorithm (ban đầu đặt tên Axolotl Ratchet) là trái tim của Signal Protocol. Thuật toán này kết hợp hai cơ chế suy ra khóa:
1. DH Ratchet (Diffie-Hellman)
Mỗi bên gửi giá trị DH tạm thời công khai cùng mỗi tin nhắn, tạo ra shared secret mới liên tục. Khi một bên nhận được giá trị DH mới từ đối phương, một “ratchet DH” mới được tạo, thay thế hoàn toàn khóa trước đó.
2. Symmetric-key Ratchet
Từ chain key hiện tại, thuật toán suy ra message key mới cho mỗi tin nhắn. Chain key tiến hóa liên tục — khóa cũ không thể được tính từ khóa mới.
Sự kết hợp này tạo ra hành vi “tự phục hồi” (self-healing): nếu kẻ tấn công chiếm được một session key, chúng sẽ mất quyền truy cập vào cả tin nhắn quá khứ và tương lai. Signal Protocol cung cấp cả forward secrecy (tin nhắn quá khứ an toàn) và post-compromise security (tin nhắn tương lai an toàn sau khi kẻ tấn công mất quyền truy cập).

X3DH — Thỏa thuận khóa bất đồng bộ
X3DH (Extended Triple Diffie-Hellman) là giao thức trao đổi khóa khởi tạo phiên. Nó cho phép hai bên bắt đầu giao tiếp ngay cả khi bên kia đang offline — một ưu điểm lớn so với OTR yêu cầu cả hai bên cùng online.
Cơ chế hoạt động: bên khởi tạo lấy identity key, signed prekey và one-time prekeys của đối phương từ server. X3DH thực hiện nhiều phép tính DH trên các khóa này để tạo shared secret, cung cấp:
- Forward secrecy qua one-time prekeys — mỗi session dùng prekey khác nhau
- Cryptographic deniability — không bên nào có thể chứng minh với bên thứ ba rằng đối phương đã gửi tin nhắn
- Communication bất đồng bộ — gửi tin nhắn khi đối phương offline
Bảo mật hậu lượng tử — PQXDH và Triple Ratchet
Với sự phát triển của máy tính lượng tử, Signal đã chủ động nâng cấp. PQXDH (Post-Quantum Extended Diffie-Hellman), giới thiệu tháng 9 năm 2023, mở rộng X3DH với KEM hậu lượng tử ML-KEM (Kyber) để bảo vệ forward secrecy trước máy tính lượng tử.
Năm 2025, Signal công bố Triple Ratchet — kết hợp Double Ratchet cổ điển với Sparse Post-Quantum Ratchet (SPQR) để bảo mật hậu lượng tử liên tục trong phiên active. Đây là bước tiến đầu tiên trong ngành mã hóa messaging.
So sánh với mã hóa truyền thống
| Khía cạnh | OTR/PGP | Signal Protocol |
|---|---|---|
| Yêu cầu đồng thời | Cả hai bên phải online | Bất đồng bộ (X3DH) |
| Luân phiên khóa | Thủ công hoặc mỗi session | Tự động mỗi tin nhắn |
| Forward secrecy | OTR: có, mỗi session | Mỗi tin nhắn |
| Post-compromise security | Không có | Có (self-healing) |
| Multi-device | Hỗ trợ kém | Sesame algorithm |
| Mã hóa nhóm | Hạn chế | Pairwise Double Ratchet + multicast |
| Bảo vệ metadata | Không | Sealed Sender (từ 2018) |

Signal Protocol được sử dụng ở đâu?
Signal Protocol là tiêu chuẩn thực tế cho mã hóa messaging. Danh sách sử dụng ấn tượng:
- Signal: Nền tảng gốc, mặc định E2EE cho tất cả trò chuyện
- WhatsApp: Tích hợp Signal Protocol từ tháng 4 năm 2016, bảo vệ hơn 2 tỷ người dùng trên toàn thế giới
- Facebook Messenger: Chế độ Secret Conversations tùy chọn từ tháng 10 năm 2016. E2EE mặc định cho tất cả tin nhắn đã được triển khai tháng 12 năm 2023
- Google Messages (RCS): E2EE mặc định cho cuộc trò chuyện 1:1 RCS từ tháng 11 năm 2020
- Skype: Private Conversations tùy chọn từ tháng 1 năm 2018
Ngoài ra, Signal Protocol còn ảnh hưởng đến OMEMO (XMPP), Matrix (Olm library), Wire và giao thức Messaging Layer Security (MLS) của IETF.
Triển khai mã nguồn mở
Tham chiếu thư viện: libsignal (GitHub), viết bằng Rust, cấp phép AGPLv3. Có binding cho Swift, Java, TypeScript và C. Signal duy trì tài liệu chi tiết tại signal.org/docs bao gồm X3DH, PQXDH, Double Ratchet, Sesame, ML-KEM Braid và XEdDSA/VXEdDSA.
Với sự kết hợp của mã hóa mạnh, thiết kế bất đồng bộ và bảo mật hậu lượng tử, Signal Protocol đang định hình tương lai của communication an toàn trên internet.
