如何解密 Facebook 的流量?19年前的加密攻擊有話說

三名研究人員發現以前的RSA密碼攻擊的變體ROBOT攻擊能在某些情況下獲得解密HTTPS 敏感流量的私鑰。「ROBOT」 的全稱是「Blichenbacher Oracle 攻擊的回歸 (Return of Blichenbacher』s Oracle Threat)」,它基於差不多20多年前針對RSA 演算法的Blichenbacher攻擊。

Blichenbacher攻擊簡介

1998年,貝爾實驗室的研究員Daniel Blichenbacher 發現,當伺服器所有人選擇通過 RSA 演算法處理伺服器端密鑰交換時,TLS 伺服器的操作過程就會出現一個bug。在默認情況下,客戶端(瀏覽器)和伺服器開始經由 HTTPS 通信前,客戶端會選擇通過伺服器公鑰加密的隨機會話密鑰。這個被加密的會話密鑰會發送給伺服器,而伺服器會使用私鑰來解密信息並保存會話密鑰副本以便後續識別每個客戶端。

由於 RSA 演算法並不安全,因此它會使用一個填充系統在加密會話密鑰頂層增加額外的隨機層。Blichenbacher發現,如果這個會話密鑰是通過 RSA 演算法加密且填充系統是 PKCS#11.5,那麼攻擊者就能將一個隨機會話密鑰發送到 TLS 伺服器並詢問是否有效。伺服器會以「是」或「否」來回應。也就是說,通過簡單的暴力攻擊,攻擊者就能夠測出會話密鑰並解密TLS (HTTPS) 伺服器和客戶端(瀏覽器)之間的所有 HTTPS 信息。

失敗的Blichenbacher攻擊防禦措施

TLS 標準的設計人員並未更換不安全的 RSA 演算法,而是決定增加暴力猜測攻擊的實施難度。對於原始的Blichenbacher攻擊而言,這種修復方案是不完整且不充分的。此後在2003年、2012年、2014年以及2015年都出現了原始攻擊的變體。最近一次研究人員在2016年3月公布了影響三分之一 HTTPS 站點的DROWN 攻擊。

ROBOT 攻擊現身

目前出現的另外一個變體是 ROBOT 攻擊,它也是基於 TLS 創建者在1998年及以後所部署的對抗措施。研究人員表示,問題在於,TLS 標準非常複雜而很多伺服器設備供應商未正確執行 TLS 標準 (RFC 5246) 的 7.4.7.1章的內容,即對抗原始Bleichenbacher 攻擊的措施。

發現並報告 ROBOT 攻擊的三名研究人員指出,思科、Citrix、F5和 Radware 等公司提供的產品在某種配置下都容易遭ROBOT 攻擊。這種配置即伺服器所有人通過 RSA 演算法並使用PKCS #11.5 填充系統來加密 TLS 會話密鑰。在補丁發布之前,研究人員及 US-CERT 建議易受攻擊設備的管理人員禁用TLS 會話密鑰 RSA 加密。這種辦法實現起來並不難,因為多數設備還支持比 RSA 演算法更好的 ECDH 會話密鑰加密。

Alexa前100名的27個站點易受攻擊

研究人員指出,雖然 ROBOT 攻擊基於19年前的老舊攻擊,但在排名Alexa前100的站點中,27個站點易受攻擊,其中包括Facebook 和 PayPal在內。研究人員還公布了一個案例,說明如何解密Facebook 流量。排名 Alexa 前100名之後的站點可能也易受攻擊。研究人員已發布 Python 腳本幫助伺服器管理員掃描易受攻擊的主機並在 ROBOT 攻擊主頁上增加了一個 ROBOT 漏洞檢查器。

跟 DROWN 缺陷一樣,這個問題的影響同樣巨大,因為攻擊者能記錄 HTTPS 流量並在後續進行解密。還有一點值得注意:攻擊者通過 ROBOT 攻擊獲取的並非是 TLS 伺服器密鑰,而是每個客戶端連接的個人會話密鑰。也就是說,攻擊者無法訪問通用解密密鑰,而只是訪問某個 HTTPS 會話的一次性密鑰。要解密大量 HTTPS 流量,ROBOT 攻擊也要投入大量計算能力。

登錄安全客 - 有思想的安全新媒體查看更多最新資訊!


推薦閱讀:

大象還在跳舞,高成長、高估值的Facebook,下一動力在哪裡?
Facebook關閉了「失控」AI項目?只是因為胡言亂語!
我們都錯了!Snapchat走了一條中年人不懂的道路!
EMNLP最佳論文公布:讓發明自己語言的AI說人話,讓演算法別以為男人都不做飯……
堅不可摧的天才 - 馬克·扎克伯格

TAG:网络安全 | Facebook | 互联网 |