尽管证书使用 SHA256,但过时的加密 (SHA1) 警告

信息安全 tls 证书 铬合金
2021-08-24 22:01:25

我从 Comodo 订购了一个带有 SHA256 的证书,并且想知道为什么 Chrome 会显示此消息:

您的连接使用过时的加密技术进行加密。

连接使用 AES_256_CBC 加密,使用 SHA1 进行消息认证,使用 DHE_RSA 作为密钥交换机制。

尽管使用 SHA1 的唯一证书是根证书,但它抱怨 SHA1,这不应该是问题。为什么 Chrome 会显示这样的警告?

这是 SSL Labs 测试的结果(服务器上的证书信息和密码套件):

路径 #1

[我的域]
RSA 2048 位 (e 65537) / SHA256withRSA

COMODO RSA 域验证安全服务器 CA
RSA 2048 位 (e 65537) / SHA384withRSA

COMODO RSA 证书颁发机构
RSA 4096 位 (e 65537) / SHA384withRSA

路径 #2

[我的域]
RSA 2048 位 (e 65537) / SHA256withRSA

COMODO RSA 域验证安全服务器 CA
RSA 2048 位 (e 65537) / SHA384withRSA

COMODO RSA 证书颁发机构
RSA 4096 位 (e 65537) / SHA384withRSA

AddTrust 外部 CA 根
RSA 2048 位 (e 65537) / SHA1withRSA

密码套房

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA

注意:我知道 AES_256_CBC 不被视为现代密码学,因此仍然会出现有关过时密码学的警告。我只是想知道 SHA1 部分。

2个回答

错误信息只是误导

你自己说:

我知道 AES_256_CBC 不被认为是现代密码学,所以关于过时密码学的警告仍然会出现。

这就是您收到该信息的原因。

现在不幸的是,消息本身的措辞不是很清楚。

SHA-1 用于多种情况。而这里的“SHA-1”指的是 HMAC 消息认证,而不是它在证书中的使用。

Chromium TLS 页面(在此处存档。):

消息认证

你可能会看到:

“连接使用带有 SHA1 的 [cipher] 进行消息身份验证。”

这实际上意味着连接使用 HMAC-SHA1 来保证数据完整性,而不是作为证书签名算法(例如 sha1WithRSAEncryption)。HMAC 结构足够强大,当与 SHA1(甚至 MD5)一起用作散列函数时它不会被破坏,因此目前推荐使用。

做什么
启用并让服务器更喜欢Chrome 更喜欢的密码套件。即:具有前向保密性和 AES-GCM 或 CHACHA20_POLY1305 的东西。(TLS 页面推荐TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256。)

由于这已经在您的列表中,您所要做的就是更改服务器对它的偏好。

您的证书可能使用 SHA-256,但您仍然启用了 SHA-1 密码套件:

TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA

禁用这些,警告应该消失。

编辑以回应评论:

Chrome 密码套件如下:

TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305       0xCC13
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305     0xCC14
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256  0xCC15

密码套件

因此,您服务器的最强选择是TLS_DHE_RSA_WITH_AES_128_GCM_SHA256. 我只能认为您可能有一个配置设置,为了性能目的而更喜欢较弱的密码?