Marvin Attack,一種基於時間的 RSA 破解攻擊

馬文·攻擊

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 庫的應用的適用性,其中通過在普通筆記型電腦中。

最後,如果您有興趣能夠了解更多,可以在 以下鏈接。


在 Google 中將其新增為首選來源