TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 是否容易受到 Zombie POODLE/GOLDENDOODLE 攻擊?
我收到的關於這個的報告好壞參半。我有一個網路主機和多個 SSL 掃描工具(包括由Qualsys SSL Labs執行的那個),說密碼套件TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256不容易受到 Zombie POODLE/GOLDENDOODLE 的攻擊,同時我有一家 PCI 合規公司表明它是脆弱的。不幸的是,他們都不願意在這件事上讓步或提供比我在這裡已經提到的更多的細節。
我不太了解加密,但我知道僅在密碼套件名稱中使用“CBC”就表明它實現了密碼塊連結,並且通過擴展意味著它有可能無意中洩露填充預言,因此容易受到 Zombie POODLE 攻擊。如果是這種情況,那麼為什麼我使用的所有 SSL 掃描工具都提出了不同的建議?
此外,我意識到通常有反對使用TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256的有效論據,但這超出了這個問題的範圍,因為我真的只關心它是否特別容易受到 Zombie POODLE/GOLDENDOODLE 攻擊。
密碼套件表明 PKCS#7 填充的 CBC 與僅在解密後執行的 MAC 驗證一起使用。這意味著它在 MAC 驗證之前容易受到明文預言的攻擊。
取消填充的風險主要不是因為填充預言機與其他明文預言機相比更容易洩漏資訊,而僅僅是因為取消填充通常會在 MAC 恢復之前發生。
實現技巧是不要顯式地取消填充,因為明文的長度是預先知道的,並且在使用任何明文字節之前對 HMAC 創建的身份驗證標籤執行(最好是時間常數)比較。
如果實施未知,那麼 PCI 合規公司是正確的,它確實會帶來風險。使用 TLS 1.3 或 TLS 1.2 使用 GCM 或 CCM 操作模式進行 AES 可以相對輕鬆地避免這種情況。
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
是一個協議(TLS 協議族的一個子集)。Zombie POODLE 和 GOLDENDOODLE 是該協議的某些實現中的漏洞。因此,如果合規公司聲稱,只知道您的伺服器接受此密碼套件,您的伺服器可能容易受到這些攻擊,他們是正確的。如果合規公司聲稱一旦您的伺服器接受此密碼套件,它就容易受到這些攻擊,那麼他們就錯了。這些攻擊基於對 TLS 伺服器在收到錯誤輸入(可能來自惡意客戶端或中間人)時發送的錯誤響應的分析。(此分析還包括可能缺少響應作為響應的時間。)兩者都是填充預言攻擊。如果天真地實施,所有使用 CBC 的 TLS 密碼套件都容易受到填充預言攻擊。幾乎每個 TLS 實現都容易受到幸運十三的攻擊當它在 2013 年被披露時,有些可能仍然容易受到它的變體的攻擊,但是 OpenSSL 和其他幾個主要的 TLS 堆棧現在實施了對策,如果實施正確,可以完全防止填充預言攻擊。這些對策本質上是緩慢且微妙的,因此您可能不想依賴它們,但對於 PCI 合規性預期的安全級別,它們就足夠了。
如果您的伺服器使用 OpenSSL 或 Windows TLS 堆棧或大多數主要的 TLS 實現,那麼它是安全的。(不過,OpenSSL 很容易受到同時發現的另一種類似攻擊,稱為“0-length OpenSSL”,因為它非常特定於 OpenSSL 的行為。)您主要需要擔心的是一些解密 TLS 流量的中間盒(防火牆、負載平衡器,……)。即便如此,只要您應用了所有安全更新檔,就應該沒問題(如果最新的韌體仍然存在漏洞,請立即放棄您的供應商)。
在任何情況下,您都可以使用發現攻擊的研究人員提供的掃描器來測試您的系統。這是 Qualys(當然還有其他人)使用的相同掃描器,所以如果 Qualys 說您的系統沒有漏洞,那麼您沒有安全問題:您唯一的問題是說服您的審核員。
如果您的審核員幾乎可以勝任,他們應該執行此掃描器或使用執行此掃描器的服務,並得出結論認為您的系統沒有漏洞。但從他們的反應來看,他們可能不夠稱職。一個好的審計師會知道並能夠解釋我在這裡寫的一切。同樣奇怪的是,審計員只提到了這兩次針對基於 CBC 的密碼套件的攻擊,而不是較舊的攻擊,例如 BEAST、幸運十三等。
您對支持 CBC 密碼套件有多關心?雖然它們可以安全地實施,但這要求您的所有伺服器和 TLS 攔截中間盒都是高質量的,並且會帶來性能損失。如果您不需要它們,我建議禁用它們。通常,對於 TLS,安全性和兼容性之間的良好平衡是僅使用基於簽名的密碼套件(即,除了 RSA 或 ECDSA 之外,名稱中還包含 ECDHE 或可能 DHE)和 AEAD(CCM、GCM 或 CHACHA20_POLY1305)。其他一些密碼套件可能是安全的,但會增加實施漏洞的風險。
所以我對這位審計員的策略是:
- 檢查您是否真的想要 CBC 密碼套件。如果沒有,請禁用它們並告訴您的審計員這一點沒有實際意義。
- 如果您確實需要 CBC 密碼套件,請提醒審計員這些是實施漏洞,並爭辯說 Qualys 說實施是易受攻擊的。如果他們仍然不相信,請自己執行填充預言掃描器並邀請您的審計員也這樣做。
- 如果審核員真的什麼也聽不見,您可能別無選擇,只能更換審核員。在這一點上,我們已經遠離密碼學並進入了商業領域。