Encryption
Alice 和 Bob 如何在端到端加密中通過第三方(伺服器)進行密鑰交換?
了解端到端加密後,我遇到了一個我無法找到解決方案的問題。
給定三方:Alice、Bob、聊天端點和 Eve 擁有的伺服器方。伺服器方允許 Alice 和 Bob 進行通信。
假設 Alice 和 Bob 想要開始彼此加密的聊天會話。他們如何防止 Eve 獲得和替換加密密鑰(執行 MiTM 攻擊)並破壞整個會話?
親自開會分享秘密不是一種選擇。
我讀過OTR和Double Ratchet Algorithm。他們聲稱是安全的,OTR 聲稱使用社會主義百萬富翁協議,據我了解,這應該可以防止對話受到損害。但我不太明白它是如何工作的。
主要問題是,有沒有辦法讓兩方在不使用外部渠道的情況下通過受感染的伺服器建立完全私密的對話?
如果 Alice 和 Bob 沒有相關的秘密知識來控制他們之間的通信通道,那麼就不可能創建一個安全的通信通道。任何使用的協議,包括 diffie hellman、雙棘輪社會主義百萬富翁或其他任何協議,仍然可以用於 MITM 攻擊。
Eve 在與 Alice 交談時扮演 Bob 的角色,在與 Alice 交談時扮演 Bob 的角色。同意兩個單獨的密鑰。社會主義百萬富翁不會有任何好處,因為 Bob 與 Eve 共享一把鑰匙。
為了完成這項工作,我們需要至少一方的預共享公鑰或輔助通信通道來驗證是否使用了相同的密鑰。我們可以使用每個人都可以看到但 Eve 無法控制的公共頻道。我們可以遇到 IRL 並比較密鑰。我們可以使用語音通道,假設 Eve 無法實時合成我們的聲音來獲得關鍵承諾。(深度學習正在迅速使最後一個假設變得可疑)。
密鑰交換協議與被動前夕釋放器或當我們有身份驗證機制時效果很好。