热门问题
时间线
聊天
视角
端到端加密
来自维基百科,自由的百科全书
Remove ads
端到端加密(英語:End-to-end encryption,縮寫:E2EE),是一種只有參與通訊的用戶可以讀取信息的通信系統。它可以防止潛在的竊聽者——包括電信供應商、互聯網服務供應商以及該通訊系統的提供者——獲取雙方通信的明文。[1]此類系統被設計為可以防止潛在的監視或篡改企圖。舉例來說,使用端到端加密的通訊提供商,無法解密用戶的消息,更無法將其客戶的通訊消息提供給當局[2]。
密鑰交換
在一個端到端加密的系統中,用於加解密的密鑰必須被、且僅被參與通訊的各方掌握。為實現這一目的,端到端加密系統可以使用事先預定好的一串字符(稱為「預共享密鑰」)來加密數據(如PGP),也可以使用該字符串生成一次性密碼來進行加密(如每一次交易流程使用唯一密鑰)。此外,參與通訊的各方還可以通過協商(迪菲-赫爾曼密鑰交換協議)創建密鑰(如OTR)。[3]
現代的用法
直到2016年,典型的基於中心服務器的通信系統尚不包括端到端加密功能。此類系統只能保證客戶端到服務端之間的通訊受到保護。這意味着通訊雙方必須信任服務端的運營者,因為他可以閱讀通訊的全部明文內容。例如微信,使用者到微信的服務器的連接使用 MMTLS 加密,但僅僅加密於使用者和服務器之間,消息在服務器上傳遞時服務器會解密消息到原始文本[4]。
相比之下,端到端加密被認為是更安全的。密鑰是為最終用戶分發的,比如如果在微信實現端到端加密,通信中的任意一方首先以另一最終用戶的公鑰加密文本,然後再以 MMTLS 的公鑰加密,有兩次加密,微信的服務器僅能解密第一重,只可以看到密文,而明文僅僅出現於通信兩端用戶的設備上[4][5]。
對於使用普通即時通訊(IM)產品的用戶,通常可以選擇使用第三方客戶端或加解密插件,以便在非E2EE協議的通訊中實現端到端加密。[6]
一些非E2EE的通訊系統,例如拉維畢特和 Hushmail 宣稱提供了端到端加密,但實際上並沒有。[7] 而另一些系統,例如Telegram和谷歌Allo,由於沒有默認啟用端到端加密而受到了批評。[8][9]
Remove ads
挑戰
端到端加密能確保數據安全保密地傳輸於通訊的兩端之間。但對於不懷好意的竊聽者而言,與其嘗試破解加密,不如冒充的消息接受方(例如,在密鑰交換期間冒名頂替,或是設法將收件人公布的公共密鑰替換成自己的)來得方便,因為此後,發信人發出的信息將以一個竊聽者掌握的密鑰進行加密。在獲取解密的信息後,監聽者還可以冒充發信人,與實際的接收者進行密鑰交換、發送訊息,以避免通訊雙方察覺異常。由於攻擊者處在通訊雙方之間,因此這種攻擊方式被稱為中間人攻擊。[10]
大多數端到端加密協議都設計了某種形式的終端認證機制,專門用來防禦中間人攻擊,例如依靠數字證書認證機構或信任網絡進行驗證。[11]其他的技術包括的針對用戶公鑰或預共享密鑰生成密碼哈希(設備指紋)。通訊各方可以通過外部(out-of-band)通信渠道來校驗這一指紋,便可確認通訊的完整性和真實性(但不能保證機密性),之後再展開真實對話。如果指紋匹配的話,理論上可以確認不存在中間人攻擊。
為了方便人工檢查,指紋通常會顯示為十六進制字符串。這些字符串通常會編排成特定格式並編組,以提高可讀性。例如,128位MD5指紋會顯示如下:
43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8
在一些協議中,指紋會被顯示成自然語言。[12]這是通過在指紋塊與文字之間建立一對一的映射來實現的,因此不會有熵損失。有些協議還能匹配地顯示為用戶的母語(如參照設備的語言設定)。 但是,在跨語言的環境下這種技術會帶來一些問題。 為了提高本地化程度,一些協議選擇將指紋顯示為十進制字符串,而不是十六進制或自然語言串。[13] 現代化的通訊應用也可以把指紋顯示為二維碼,供用戶使用其他設備掃描讀取。[14]
Remove ads
端到端加密並不能避免終端本身的安全風險。每個用戶的計算機等設備上仍然存在密鑰被盜(以進行中間人攻擊),或是是被解密的信息被讀取的可能性。即使是最完美的加密通信,他的安全性仍然受制於兩端「信箱」的安全性。提升端點安全性的手段主要有:將密鑰的產生、儲存和加解密操作獨立到一個小的智能卡上,例如Google Project Vault。[15] 然而,由於明文輸入和輸出仍然對於用戶設備來說依舊是可見的,因此惡意軟件仍然可以實時竊聽用戶的對話。一個更強大的方式是將所有敏感數據隔離到一台由網閘完全限制的計算機上。[16]一些專家已經建議將PGP用於此目的:
如果我真的要把自己的性命託付給一個軟件的話,我不會選那些華而不實的東西——我選GnuPG,而且我大概會把它運行在一個與世隔絕的電腦上,再把電腦鎖進地下室。
——Matthew D. Green,A Few Thoughts on Cryptographic Engineering
然而,正如布魯斯·施奈爾所指出的,美國和以色列開發的「震網」病毒成功地通過離線渠道進入並癱瘓了伊朗在納坦茲建設的核設施。[17] 為了避免惡意軟件導致的密鑰泄漏、一種方法是將可信計算基分散在兩個單向連接的計算機上,以避免惡意軟件感染及其導致的敏感數據泄漏。[18]
Remove ads
一些公司還可能還會自覺不自覺地在他們的軟件中引入後門,導緻密鑰協商機制被破壞,或是加密被繞過。在2013年,愛德華·斯諾登披露的信息顯示,Skype有一個後門允許微軟將其用戶的信息泄漏給美國國家安全局,儘管在公開渠道Skype宣稱其使用了端到端加密。[19][20]
參見
參考文獻
延伸閱讀
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads