Marvin 是一個已有 25 年歷史的漏洞的回歸,該漏洞允許 RSA 簽名和解密操作
ESORICS 2023 期間 (歐洲電腦安全研究研討會)於25月29日至XNUMX日在荷蘭舉行, 安全研究員 誰在紅帽工作, 呈現“馬文攻擊”, 攻擊手段 它允許透過測量操作期間的延遲來確定原始數據 基於RSA演算法的解密。
馬文攻擊, 它是 1998 年提出的 Bleichenbacher 方法的變體,並繼續開發 2017 年和 2019 年發布的 ROBOT 和 New CAT 攻擊。
Marvin 攻擊是一個已有 25 年歷史的漏洞的回歸,該漏洞允許攻擊者執行 RSA 簽章和解密操作,並且能夠僅觀察使用私鑰執行解密操作的時間。
1998 年,Daniel Bleichenbacher 發現 SSL 伺服器針對 PKCS #1 v1.5 填充中的錯誤提供的錯誤訊息啟用了自適應選擇密文攻擊; 與 RSA 加密一起使用時,此攻擊完全破壞了 TLS 的機密性。 2018 年,Hanno Böck、Juraj Somorovsky 和 Craig Young 在 19 年後證明,許多網路伺服器仍然容易受到原始攻擊的輕微變化的影響。
基本上提到了該方法的本質是 攻擊者,基於不同的伺服器反應 以及不同的執行時間, 可以區分正確和錯誤的預言機塊 新增了 PKCS #1 v1.5 標準,以沿著區塊邊界對齊加密資料。 透過操縱有關填充塊正確性的信息,攻擊者可以使用暴力來重新創建合適的密文。
在這種情況下,攻擊不會直接恢復私鑰,而只是解密文字。 加密或產生偽造的簽名訊息。 為了進行成功的攻擊,需要發送大量的測試訊息來解密。
對伺服器進行攻擊 使用 TLS 加密 基於 RSA 金鑰允許攻擊者被動儲存截獲的流量,然後對其進行解密。 對於支援 PFS 的伺服器,實施攻擊變得更加困難,成功取決於攻擊實施的速度。
另外, 該方法允許生成虛構的數位簽名 它驗證金鑰交換階段傳輸的 TLS 1.2 ServerKeyExchange 訊息或 TLS 1.3 CertificateVerify 訊息的內容,可用於執行 MITM 攻擊以攔截用戶端和伺服器之間的 TLS 連線。
有人提到 方法之間的區別 馬文被簡化為 改進了分離正確和錯誤增量資料的技術,過濾誤報,更準確地確定計算延遲,並在測量過程中使用額外的第三方管道。
實際上,所提出的方法允許在不知道 RSA 私鑰的情況下解密流量或產生數位簽章。 為了測試攻擊的適用性,發布了一個用於檢查 TLS 伺服器的特殊腳本和用於識別庫中問題的工具。
問題 影響多個使用 RSA 和 PKCS 的協定實現。 儘管現代密碼庫包含一些基於 Bleichenbacher 方法的攻擊保護措施, 研究顯示圖書館有開放的洩密管道 並且不為正確和錯誤填充的資料包提供恆定的處理時間。 例如,Marvin 的 GnuTLS 攻擊實作並不依賴直接執行 RSA 相關計算的程式碼,而是使用不同的執行時間來決定是否顯示特定錯誤訊息的程式碼。
研究的作者也認為,所考慮的漏洞類別不僅限於 RSA,還可能影響許多其他依賴整數計算標準函式庫的加密演算法。
為了證實在實踐中進行 Marvin 攻擊的可能性,研究人員證明了該方法對基於 M2Crypto 和 pyca/cryptography 庫的應用的適用性,其中通過在普通筆記型電腦中。
最後,如果您有興趣能夠了解更多,可以在 以下鏈接。