近幾年有謠言說 NSA 可以解密已加密網路中的大部分資料。在 2012 年,James Bamford 釋出了一篇 文章,引用了匿名的 NSA 前成員的說法,他證實“NSA已經取得了計算力的突破性進展,他們有能力破解當前已公開的加密演算法”。斯諾登公佈的文件也暗指像一些額外的線索和文件顯示,NSA已經建立了大量的基礎裝置來攔截和解密 VPN 流量,它至少能解密一些 NSA 想要知道的 HTTPS 和 SSH 連線。
然而,對於這些超前的工作是如何運作的,技術小組是如何判斷後門或邏輯缺陷的等問題,這些文件都沒有說明。2015 年 10 月 13 日,在 ACM CCS 會議的安全研究分會場,我們和 12 個同行釋出了一篇技術謎題揭祕報告。
Diffie-Hellman 祕鑰交換演算法,是我們推薦使用的防禦監聽的演算法。它是現代密碼學的基石,VPN、HTTPS 網站、郵件和許多其他的協議都用在 Diffie-Hellman。我們的報告顯示,通過數理理論的交匯和糟糕的協議實現,許多現實世界裡的 Diffie-Hellman 使用者在面對國家級攻擊時都是脆弱的。這個事實稍微有點諷刺。
如果讀者裡有技術狂人,就會發現一些問題:如果客戶端和服務端要使用 Diffie-Hellman,它們首先需要協定一個特殊形式的大素數。為什麼不能每個人都用同樣的素數?似乎不用問什麼原因。實際上,許多應用傾向於使用標準的或者硬編碼的素數。但演算法從數學家到實現者之間,會丟失一個非常重要的細節:攻擊者可以執行一個單點大規模計算來破解大素數,使用該大素數的個人連線很容易丟失。
你要問計算量有多大?大概是整個二戰時期破解英格瑪的計算規模(相較於那時候的計算量而言)。甚至連估算難度都很棘手,因為這個演算法涉及到的內容太複雜,但我們有論文給出了一些保守的估算。對於最常用的 Diffie-Hellman(1024位),花了幾億美元來建造專門的破譯機器,這能夠每年破解一個 Diffie-Hellman 素數。
對情報機構而言,這值得麼?一旦少量的大素數被濫用,那他們可解密的連線,將會很可觀。破譯一個通用的 1024 位大素數,將讓NSA 能解密全球三分之二的 VPN 和四分之一的 SSH 伺服器。破解兩個1024 位大素數,將能夠被動監聽上百萬個 HTTPS 網站中的20%。總而言之,在大規模計算上的一次投資,使它能夠監聽數以兆計的加密連線。
NSA 能夠負擔這些投資。在斯諾登洩露的部分檔案裡,有一份 2013 年的黑色預算的申請,檔案顯示 NSA 已經將“發展突破性的密碼分析能力以打擊敵對方密碼系統和利用網路流量”提上了日程。它顯示了 NSA 的預算大約一年有100 億美元,其中超過 10 億被用於計算網路技術開發和幾個子專案中。
基於我們已有的證據來說,我們無法確切證明 NSA 已經完成了。然而,我們提出的 Diffie-Hellman 攻擊方式,相較於其他可能性,更能解釋在當前已知的技術水平下如何獲得大規模破解的能力。例如,斯諾登釋出的文件顯示了 NSA 的 VPN解密設施 通過攔截加密連線,並使用超級計算機計算已知資料來得到金鑰。這套系統的設計不遺餘力的收集必要的特殊資料,為攻擊 Diffie-Hellman 做準備。但它不適合 AES 或其他對稱加密演算法。這份文件清晰是顯示了 NSA 使用其他類似軟硬體“移植”的技術來破解特殊目標的加密演算法,但這些並沒有解釋 NSA 大規模被動監聽 VPN 通道的能力。
一旦 Diffie-Hellman 這種不牢靠的使用方式在標準和實現中被濫用,這個問題將會影響到許多年後,甚至給現有的安全推薦和我們新的調查帶來影響。與此同時,其他強大的政府也有可能實現類似的攻擊,假設他們還沒那麼做的話。
我們的調查闡明瞭 NSA 兩項任務間的矛盾,收集情報和保衛美國網路安全。假如我們的猜想是正確的,情報機構已經掌控了弱 Diffie-Hellman,幫忙修正這個問題僅是小小的一步而已。在防守方,NSA 推薦大家應該向橢圓曲線密碼學過渡,橢圓曲線密碼學沒有已知的漏洞,但這一推薦在沒有明確推論或證明的情況下,就被大多數人忽略了。這個問題太複雜,因為安全通過採取 NSA 推薦,表面上價值不高。看看這這個顯而易見的影響:後門密碼標準。
這種狀況讓人人的安全都處於危險中。這種規模的漏洞是不加區別地影響著大家的安全,包括美國公民和公司,但我們希望,能有一種更清晰的技術,來了解 ZF 監控背後的密碼機制,為大家能有更好的安全。
更多詳情,請見我們的研究論文:《Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice》(更新:我們這篇論文獲得了CCS 2015 最佳論文獎!)
J. Alex Halderman 是密歇根大學電腦科學與工程的助理教授,密歇根電腦保安和社會中心的主管。
Nadia Heninger 是賓夕法尼亞大學計算機與資訊科學系助理教授。