刪除特定於 SSLv3 的 CBC 密碼

刪除特定於 SSLv3 的 CBC 密碼

我需要停用 SSLv3 特定的 CBC 密碼作為 POODLE 漏洞的臨時解決方案,因為有舊版應用程式需要使用 SSLv3。查閱 OPENSSL 文件後,SSLv3 和 TLSV1 之間似乎存在共用密碼,例如:

  • SSL_DHE_RSA_WITH_DES_CBC_SHA
  • DHE-RSA-DES-CBC-SHA
  • TLS_DHE_RSA_WITH_DES_CBC_SHA
  • DHE-RSA-DES-CBC-SHA

我的問題是,有沒有辦法禁用,例如,DHE-RSA-DES-CBC-SHA專門針對 SSLv3,此操作會影響 TLSv1 嗎?

我正在使用 nginx、Varnish 和 Apache 以及 OPENSSL

答案1

此配置應在您的 Web 伺服器中完成。 OpenSSL 只允許您以程式設計方式指定密碼,如這裡所述SE答案

既然你說你正在使用 Apache 和 nginx(Web 快取 Varnish 不支援 SSL),我發現這些頁面談論同樣的事情,儘管它們是針對 BEAST 的:

  1. 設定 Apache-Nginx 和 OpenSSL
  2. 強化您的網頁伺服器的 OpenSSL 密碼套件

這是關於SSL 終止允許清漆快取您的內容:


非常重要的PS:

PS1 - 不要忘記使用HSTS
PS2 - 始終在加密連線內產生的 cookie 上設定「安全性」標誌。忘記這一點是向攻擊者洩露資訊的一種非常簡單的方法。

答案2

規範的答案是https://security.stackexchange.com/questions/70719/ssl3-poodle-vulnerability並傾向於排除協定SSLv3,而不是密碼。

最初,您命名的兩個不同的密碼套件使用原始 DES,retronymed單DES,並且是所有協議版本都不安全。最初的 DES 已於十年前被取代並撤銷。 (更準確地說,FIPS46-3 於2001 年被FIPS197 AES 取代,然後於2005 年撤銷,並且僅三重DEA,而不是單DEA,於2004 年作為SP800-67 重新發布,作為批准但不是標準。)它們被歸類為低在 openssl 的密碼配置中,以及 EXPORT (甚至不太安全)和 eNULL (完全不安全)應該絕不除非您必須處理一個無法升級、更換或前端的嚴重過時的系統,就像舊的火星著陸器之一一樣。

對於您的問題,實際上並沒有特定於 SSLv3 的 CBC 密碼,儘管有一些-SSLv3。在 openssl 中,允許的密碼套件和協定的配置是分開的並且幾乎是獨立的; AFAICS 唯一的限制是,在任何舊協定中都無法選擇使用新TLSv1.2 功能(經過驗證的加密GCM 或SHA-2 雜湊)的密碼,並且在SSLv2 中使用了一些密碼,但未分配SSLv3+代碼,因為它們已經不安全1996 年無法在 SSL3+ 中使用。甚至根據標準,密碼的唯一區別SSL3 和 TLS1 或 1.1 之間是:

  • 40 位元 EXPORT 密碼在 1.1 中被正式刪除——但 openssl 在 1.1 和 1.2 中仍然支援它們作為擴展。但它們過去和現在都是不安全的,除非您穿越回 20 世紀 90 年代並且受到 20 世紀 90 年代的法律限制,否則您不應該使用它們。一些那麼地方。

  • Fortezza 金鑰交換是為了在「加密貨幣是武器」時期安撫美國政府而添加的,除了 NSA 之外從未被任何人使用過,已被 TLS1 刪除。它不是由 openssl 實現的任何協定.

  • 第一批ECC密碼https://www.rfc-editor.org/rfc/rfc4492正式僅適用於 TLS1+,因為它們依賴 ClientHello 中的擴展和https://www.rfc-editor.org/rfc/rfc3546對於擴展無法修改SSL3,但openssl >=1.0.0(或一些0.9.8 如果調整的話)通過將擴展視為默認“無限制”來在SSL3 中實現它們- 但前提是對等點同意,哪些對等點同意除了最近刻意崇高的 openssl 可能不會。這是唯一可能有用的密碼差異。假設有 RSA 憑證和私鑰,您可以使用 ECDHE-RSA 並希望它僅適用於 TLS1+。

這就是為什麼命令列openssl ciphers -v [$cipherstring]實用程式將 SSLv3 顯示為大多數密碼的「版本」;這意味著 SSLv3 及以上。

TL-DR:如果您的僅 SSL3 用戶端不協商 ECC 密碼(大多數非常舊的用戶端可能不會,但較新的用戶端可能不會)以及您的所有 TLS1+ 用戶端(不太確定)並假設 RSA 憑證和私鑰的常見情況,您可以啟用 ECDHE-RSA-(3DES 或 AES)-CBC 但停用 DHE-RSA-anything-CBC 和 RSA-anything-CBC。這也為您提供了完美的前向保密性。

如果您願意,也可以為所有 SSL3+ 啟用 RC4,無論是否使用 PFS,但也存在一些問題:

您的「遺留應用程式」是網路還是其他應用程式?如果網路你不能得到一個半像樣的瀏覽器嗎?如果無法導致自訂應用程式在攻擊者資料之後重複重新發送相同的敏感數據,那麼它首先就不是「可咬的」。

相關內容