為什麼 Chrome 抱怨「過時的加密技術」?

為什麼 Chrome 抱怨「過時的加密技術」?

我在 IIS / Windows 2008R2 上託管一個帶有通配符 ssl 憑證的 ASP.NET 網站。雖然 Chrome 與我的網站配合良好,並在 https 連接上顯示綠色鎖,但 https 詳細資訊提到「過時的加密技術」:

Chrome https 詳細信息

我認為這是由於 SHA1,chrome 在同一視窗中也提到了 SHA1。

然而,根據 Digicert 的 SSL 憑證檢查器,應該使用 SHA256:

在此輸入影像描述

現在我不確定發生了什麼以及如何解決這個問題。看起來這篇博文描述了此問題的解決方法,但該解決方法似乎很晦澀(1.步驟:安裝 OpenSSL?),我無法想像這是在 Windows 2008 R2 上執行此操作的官方方法。

我應該如何擺脫 ssl 憑證警告?

編輯:應用後腳本在 Grant 的推薦下,我的 SSLabs 已從 C 改進為 A,Chrome 使用 TLS 1.2 而不是 1.0。然而,「過時的密碼學」警告仍然存在。

答案1

問題不是 SHA 造成的,而是 TLS 1.0 造成的。

SSL 實驗室報告為您的領域提供完整的故事。您的伺服器僅支援 TLS 1.0,不支援 1.1 或 1.2。此外,它仍然支援 RC4 等過時的密碼,並且不支援完美的前向保密。

調整 IIS 以獲得更好的安全性是完全可能的,但手動操作會很痛。 這個精彩的劇本由 Alexander Hass 編寫,將設定各種註冊表設定以停用 IIS7.5 和 IIS8 的舊的不安全加密方法。

運行腳本後,重新啟動伺服器,您應該在 SSLLabs 上獲得 A 評級,並停止在 chrome 中收到警告。

答案2

我正在新的 2012 R2 伺服器上測試這個,當應用亞歷山大哈斯 劇本(AH-Script),我仍然得到過時的密碼學:

Chrome 過時的加密技術

我的 Chrome 43 支援以下密碼套件:

[C02B]  TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
[C02F]  TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
[009E]  TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
[CC14]  TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
[CC13]  TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
[CC15]  TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
[C00A]  TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
[C014]  TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA
[0039]  TLS_DHE_RSA_WITH_AES_256_SHA
[C009]  TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
[C013]  TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA
[0033]  TLS_DHE_RSA_WITH_AES_128_SHA
[009C]  TLS_RSA_WITH_AES_128_GCM_SHA256
[0035]  TLS_RSA_AES_256_SHA
[002F]  TLS_RSA_AES_128_SHA
[000A]  SSL_RSA_WITH_3DES_EDE_SHA
[00FF]  TLS_EMPTY_RENEGOTIATION_INFO_SCSV

所以使用的是:[C013],很靠下。 Chrome 似乎更喜歡 SHA256 和 GCM 而不是 CBC。

我採用了 AH 腳本並將 [009E](從頂部數第 3 個)添加到密碼套件列表中,重新啟動後我現在得到:

Chrome 現代密碼學

我試圖讓前兩個 [C08B] 和 [C02F] 工作,但失敗了。

因此,透過修復腳本並運行它,我得到了一個modern cryptography.

我刪除了現有的密碼之一,因為該字串的長度有限,我的字串的開頭現在如下所示:

$cipherSuitesOrder = @(
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256',
'TLS_DHE_RSA_WITH_AES_128_GCM_SHA256',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256',

編輯:我剛剛在 sslLabs.com 上對此進行了測試,並使用TLS_DHE_RSA_WITH_AES_128_GCM_SHA256給了我一個B, ,低於A我之前的值。

此伺服器支援弱 Diffie-Hellman (DH) 金鑰交換參數。等級上限為 B。

所以你可能不想使用它。我不知道為什麼 Chrome 的評分這麼高?

答案3

Chrome 中的「過時的加密」訊息是因為伺服器支援較弱的 Diffie-Hellman (DH) 金鑰交換。更具體地說,這記錄在密碼套件黑名單上的 HTTP/2 規範

當您使用來自 Alexander Hass 的 PowerShell 腳本(來自當前接受的答案),然後它包括這些密碼列入黑名單:

TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA

如果你看一下Azure 應用程式服務,它使用以下密碼套件順序

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA

這在 Qualys SSL 實驗室(2016 年 7 月)中獲得了 A 評級,並支援大多數常見瀏覽器的前向保密。

我發現 Chrome 問題是因為在 Windows 10 上的本機 IIS Express 上,它會ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY在 Chrome 51 中傳回錯誤訊息,並且在我的系統上配置了列入黑名單的密碼套件。

相關內容