Bleichenbacher 的 CAT 的 9 條生命,它又一次劃傷了
Bleichenbacher 展示了針對遵循 PKCS #1 v1.5 的 RSA 實現的填充預言攻擊。多年來,有各種緩解技術被開發為OAEP,並限制了一段時間內的查詢執行次數。OAEP在隨機預言機模型中已被證明是安全的。
2018 年 11 月,Ronen 等人。al 在 Bleichenbacher 的 CAT 的 9 次生命中證明: Bleichenbacher 仍然適用的 TLS 實現的新記憶體攻擊。
- 新的攻擊在頂層是如何運作的?
- 哪些 TLS 實施受到影響?
- 如何減輕攻擊?
- 新的攻擊在頂層是如何運作的?
簡而言之
他們使用類似BEAST的Man in the Browser 攻擊,通過使用類似記憶體的攻擊對與易受攻擊的伺服器的任何 TLS 連接執行降級攻擊。有了這個,他們展示了使用類似記憶體的攻擊的可行性。
更詳細
即使多年來,針對填充預言攻擊部署了許多緩解技術,它們表明一些實現仍然容易受到各種微架構側通道的攻擊。他們的目標是通過微架構側通道洩漏資訊的 PKCS #1 v1.5 實現。
他們的攻擊者需要 3 個能力:
- 側通道能力:攻擊者必須能夠在受害機器上執行程式碼才能進行微架構側通道攻擊。他們使用了 Flush+Reload攻擊。
- **特權網路位置能力:**攻擊者必須處於中間人位置,這樣才能利用私鑰填充預言機攻擊。攻擊者將與Jager等人的通信降級為 TLS 1.2 RSA 密鑰交換。al. 的攻擊並使用了 BEAST 方法。
- **解密能力:**攻擊者需要能夠在目標系統上開始解密他選擇的密文。他們利用了 Bleichenbacher 和Manger’s Attack攻擊。
攻擊的具體場景:
- 在 TLS 伺服器和攻擊者的虛擬機之間共享的物理設備。這需要一個堅定的對手。
- 第二和第三可以通過控制伺服器和客戶端之間的一個節點來實現
**注意:**經理的攻擊需要 $ \log_2(N) $ 完美的 Oracle 查詢。Bleichenbacher 的攻擊需要數百萬次 Oracle 呼叫,但可以容忍誤報。由於錯誤,他們只使用了 6144 次查詢進行了改進的 Manger’s Attack 攻擊。
儘管瀏覽器的超時限制了攻擊,但他們能夠通過使用共享相同公鑰證書的 TLS 伺服器來並行攻擊。
- 哪些 TLS 實施受到影響?
他們測試了以下實現:
- OpenSSL
- 亞馬遜 s2n
- MbedTLS
- Apple CoreTLS
- Mozilla NSS
- WolfSSL
- GnuTLS
- BearSSL
- 無聊的SSL
除了BearSSL和BoringSSL之外,所有這些都受到他們的攻擊的影響。
- 如何減輕攻擊?
- **保持系統最新:**不支持不同的版本。
- 向後兼容性是這種攻擊的主要問題。如果您的伺服器可以降級到早期版本,TLS 1.3 安全性對您沒有幫助。
- 棄用RSA 密鑰交換。
- **證書分離:**不要使用相同的密鑰進行簽名和 RSA 密鑰交換。
- BearSLL 和 BoringSSL API 中的恆定時間程式碼和安全 API。
- 使用大型 RSA 密鑰。攻擊需要 $ \approx \log N $ 甲骨文呼叫。使用更大的鍵 $ >2048 $ -bits 使攻擊不那麼實用。
- 減少 TLS 握手超時以使中間人攻擊更難。
- 使用 BearSSL 或 BoringSSL
注意: Firefox 中的 30 秒超時可以延長,請參閱不完美的前向保密:Diffie-Hellman 如何在實踐中失敗。阿德里安等人 人。
**注意 2:**在SecuirtySO中有一個關於受影響密碼套件的相關問題。