Chrome 为何抱怨“加密技术过时”?

Chrome 为何抱怨“加密技术过时”?

我在 IIS / Windows 2008R2 上托管了一个带有通配符 SSL 证书的 ASP.NET 网站。虽然 Chrome 可以很好地与我的网站配合使用,并显示绿色锁定 https 连接,但 https 详细信息中提到了“过时的加密”:

chrome https 详细信息

我认为这是由于 SHA1 造成的,chrome 在同一个窗口中也提到了这一点。

但是,根据 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-Script 并将 [009E] (从顶部开始第三个)添加到密码套件列表中,重新启动后我得到:

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 Labs(2016 年 7 月)中获得了 A 级评级,并且支持大多数常见浏览器的前向保密。

我发现 Chrome 问题是因为在 Windows 10 上的本地 IIS Express 上,它会ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY在 Chrome 51 中返回错误消息,并且我的系统上配置了黑名单密码套件。

相关内容