在數位通訊領域,「隱私與安全性」始終是使用者最關注的核心焦點。傳統通訊架構採用 傳輸層加密(In-Transit Encryption / TLS):
- 訊息在客戶端到伺服器之間是加密的;
- 但伺服器本身持有明文解密權限! 運營商、黑客入侵或政府調令隨時可能調取所有聊天歷史。
為了解決信任問題,端到端加密(End-to-End Encryption, E2EE) 應運而生:只有通訊雙方的終端設備持有解密密鑰,中間的轉發伺服器只能看到隨機的加密雜訊!
在 E2EE 領域,全球有兩大代表性架構:被密碼學界奉為黃金標準的 Signal Protocol(被 WhatsApp、Signal、Google Messages 採用),以及主打極致速度與自研密碼學的 Telegram MTProto。
本文將深入兩者的底層數學原理與架構權衡。
1. 什麼是真 E2EE?前向保密與後向安全
一個完備的 E2EE 協議必須滿足兩大密碼學性質:
1. 歷史過去訊息(前向保密 Perfect Forward Secrecy)
每條訊息的暫態密鑰在加解密完成後立即從記憶體徹底抹除。即使攻擊者今日拿到設備的長期私鑰,也完全無法回溯解密過去攔截的歷史密文!
2. 設備遭惡意滲透 / 短暫淪陷
攻擊者獲取用戶當前暫態密鑰快照。若無安全機制,攻擊者將持續偷聽所有後續對話。
3. 未來通訊訊息(後向安全 Post-Compromise Security)
用戶只要持續發送新訊息,雙棘輪協議會觸發新的 DH 非對稱密鑰交換,注入全新隨機熵,協議在數輪對話內自動自癒並將攻擊者徹底踢出!
| 安全性質 | 英文名稱 | 定義 |
|---|---|---|
| 前向保密 | Perfect Forward Secrecy (PFS) | 即使攻擊者在當前竊取了用戶設備的長期私鑰,過去已經傳輸的歷史密文依然無法被解密。 |
| 後向安全 | Post-Compromise Security (PCS) | 即使攻擊者在某個時間點短暫控制了密鑰,只要用戶繼續通訊,協議能自動刷新密鑰並自癒,未來的訊息自動對攻擊者重新加密。 |
2. Signal Protocol 核心支柱:X3DH 與雙棘輪演算法
Signal Protocol 之配置成為業界公認的安全天花板,核心在於兩大演算法:
2.1 X3DH(Extended Triple Diffie-Hellman):離線密鑰協商
當 Alice 想要給處於離線狀態的 Bob 發送第一條訊息時,雙方如何安全協商出初始主密鑰?
- Bob 預先生成一組公鑰上傳至 Signal 伺服器:長期身份公鑰(IK)、中程簽名預共享公鑰(SPK)與一次性預共享公鑰池(OPK)。
- Alice 從伺服器下載 Bob 的公鑰,並在本地生成臨時私鑰(EK)。
- Alice 執行 4 次 Diffie-Hellman 運算(DH1 到 DH4),將結果餵入 KDF(密鑰派生函數)生成初始共享密鑰。
- 優勢:即使 Bob 離線,雙方依然能無縫完成具備抗中間人攻擊能力的密鑰協商。
2.2 雙棘輪演算法(Double Ratchet Algorithm)
雙棘輪演算法就像一隻單向旋轉的齒輪,每發送或接收一條訊息,密鑰就向前滾動一次,且永遠無法逆向推導!
1. 根棘輪 (Root KDF Ratchet)
隨雙方通訊角色輪換(Alice 發言換 Bob 發言)進行非對稱 Diffie-Hellman 交換,持續注入不可預測的新隨機熵。
2. 發送鏈棘輪(每訊息一密鑰)
每發送一條訊息,KDF 單向步進產出獨一無二的 Message Key。訊息加密發出後,密鑰立即在記憶體徹底銷毀(實現 PFS 前向保密)。
3. 接收鏈棘輪(解密即銷毀)
接收端對齊序號計算出對應解密密鑰,解密完成立即抹除。當收到對方新公鑰時推動 DH 棘輪,自動修復遭受短暫監聽的會話(實現 PCS 後向安全)。
- 對稱 KDF 棘輪:每發出一條訊息,發送鏈的 KDF 向前滾動一次,生成全新的
Message Key,使用完後立即在記憶體中抹除(提供前向保密)。 - 非對稱 DH 棘輪:每當通訊角色發生切換(Alice 發言完後換 Bob 發言),雙方觸發一次新的 Diffie-Hellman 密鑰交換,向根棘輪注入全新的隨機熵(提供後向安全性 PCS)。
3. Telegram MTProto 架構剖析與爭議
Telegram 採用了自研的 MTProto 協議,其架構與 Signal 存在顯著差異:
3.1 雲端聊天(Cloud Chats)vs. 秘密聊天(Secret Chats)
- 默認模式(Cloud Chats):並非端到端加密!訊息在 Telegram 雲端伺服器進行集中式加密儲存。這使得 Telegram 能實現極致的多設備即時同步與 TB 級歷史漫遊,但代價是 Telegram 伺服器掌握了資料的明文解密能力。
- 秘密聊天(Secret Chats):採用 MTProto 的端到端加密模式,僅限於同一台手機設備,不支援多端漫遊。
3.2 密碼學界的爭議焦點
- 自研加密 vs. 開源標準:密碼學界普遍推崇「Don’t roll your own crypto」。MTProto 在早期版本中使用了非常規的 MAC-then-Encrypt 與奇異的校驗和組合,曾被學術界指出存在理論上的密文填充攻擊風險(MTProto 2.0 已進行了大幅修復)。
4. Signal vs. Telegram 全維度架構對比
| 評估維度 | Signal Protocol (Signal / WhatsApp) | Telegram MTProto |
|---|---|---|
| 默認加密模式 | 預設 100% 全量 E2EE | 預設為雲端加密(僅 Secret Chat 為 E2EE) |
| 密碼學核心 | X3DH + Double Ratchet(行業標準) | 自研 MTProto 2.0(基於 SHA-256 + AES-IGE) |
| 後向安全性 (PCS) | 支援(雙棘輪即時自癒) | 弱(僅定期更換密鑰,粒度較粗) |
| 多設備漫遊體驗 | 較複雜(需設備間點對點同步歷史) | 極致流暢(雲端多端即時同步) |
| 元數據(Metadata)保護 | 極致(Sealed Sender 隱藏寄件人) | 一般(伺服器記錄通訊元數據與社交圖譜) |
5. 總結
- 安全與體驗的權衡:Signal 將密碼學安全與隱私推向了理論極致(零伺服器信任);Telegram 則在使用者體驗(雲端跨設備多端同步、群組無上限擴展)與安全性之間做出了務實的折衷。
- 現代系統設計啟示:在設計涉及敏感資料(如私鑰、醫療隱私、金融支付)的通訊模組時,採用經過全行業檢驗的 Signal Protocol(雙棘輪架構) 始終是無可爭議的第一首選。
