一組研究人員發現19年前的老舊加密攻擊現新變體“ROBOT”,在特定條件下能獲取加密私鑰,從而解密敏感HTTPS流量。
何為ROBOT
ROBOT的全稱為Return Of Bleichenbacher's Oracle Threat,即Bleichenbacher的 Oracle威脅回歸,從字面意思可以看出這種攻擊是Bleichenbacher攻擊的變種。
ROBOT攻擊:19年前的Bleichenbacher攻擊回歸-E安全
Bleichenbacher攻擊原理
1998年,貝爾實驗室(Bell Laboratories)的丹尼爾-布萊汀巴克爾在TLS服務器的操作機制中發現漏洞:當服務器所有者選擇RSA算法加密服務器-客戶端的密鑰交換時,TLS服務器操作過程就會出現漏洞。
默認情況下,在客戶端(瀏覽器)與服務器通過HTTPS開始通信之前,客戶端將會選擇將服務器公鑰加密的隨機會話密鑰。這個被加密的會話密鑰會被發送到服務器,服務器再使用私鑰解密消息,并保存會話密鑰副本,以便后續用來識別每個客戶端。但由于RSA算法并不安全,它還使用填充系統在加密會話密鑰的頂層添加額外的隨機字節。
布萊汀巴克爾發現,如果會話密鑰通過RSA算法加密,而填充系統為PKCS #1 1.5,攻擊者可簡單將隨機會話密鑰發送給TLS服務器,并詢問是否有效,TLS服務器將會以簡單的“是”或“否”給出回應。這意味著攻擊者可通過簡單的暴力破解攻擊猜測這個會話密鑰,并解密在TLS(HTTPS)服務器和客戶端(瀏覽器)之間交換的所有HTTPS消息。
TLS標準設計者并未替換不安全的RSA算法,而是決定添加應對策略,加大暴力猜密過程的難度。這種修復方案不足以應對不斷演進的Bleichenbacher攻擊,2003年、2012年、2014年、2015年和2016年不同的Bleichenbacher攻擊新變體出現。2016年的變體為DROWN漏洞攻擊,該攻擊影響了三分之一的HTTPS站點。
最新的變體ROBOT攻擊強勢現身
ROBOT攻擊也繞過了TLS開發人員1998年及之后部署的應對策略。研究人員表示,TLS標準相當復雜,許多服務器設備廠商未正確實現TLS標準第7.4.7.1節(RFC 5246)定義的原始Bleichenbacher攻擊應對策略。
影響范圍
研究人員指出,思科、Citrix、F5和Radware等公司在某些配置下——即服務器所有者決定通過RSA算法加密TLS會話密鑰,并使用PKCS #1 1.5填充系統——易遭遇ROBOT攻擊。
ROBOT攻擊:19年前的Bleichenbacher攻擊回歸-E安全
研究人員表示,盡管是ROBOT老舊攻擊的變種,但包括Facebook和PayPal等27個Alexa排名前100的站點易遭遇ROBOT攻擊。而且研究人員在案例研究中加密了Facebook流量。其它排名靠后的站點也可能易遭受ROBOT攻擊。
檢測方法與應對措施
研究人員已經發布了一個Python腳本(https://github.com/robotattackorg/robot-detect),幫助服務器管理員掃描易受攻擊的主機,并在ROBOT攻擊網站首頁添加了ROBOT漏洞檢查程序(請戳!)。
補丁發布之前,研究人員和美國計算機應急響應小組(US-CERT)建議設備所有者禁用設備上的TLS會話密鑰RSA加密(也就是所謂的RSA加密模式)。這種方法實現起來不是問題,因為大多數設備還支持Elliptic Curve Diffie Hellman(ECDH)會話密鑰加密。
使用思科ACE產品的用戶應注意
思科表示,受影響的思科ACE產品線幾年前已停產,因此不會提供更新。然而目前仍有大量易受攻擊的主機仍在使用這些設備,因為這些設備不支持任何其它密碼套件,禁用RSA也無濟于事。
ROBOT與DROWN漏洞攻擊的影響力相當,因為攻擊者能記錄 HTTPS,并解密流量。另外值得注意的是:攻擊者通過 ROBOT攻擊獲取的并非TLS 服務器私鑰,而是每個客戶端連接的個人會話密鑰。這就意味著,攻擊者無法訪問通用解密密鑰,而只是訪問某個 HTTPS 會話的一次性密鑰。要解密大量 HTTPS 流量,ROBOT 攻擊也要投入大量計算能力。