Nginx 禁用 AES CBC 系列弱密码

由于我的 ciphers 用的简化写法 EECDH+AES128 包含了所有的 AES 算法,如果单独写 GCM CCM CCM-8 得写好长一条。
所以我尝试了一下禁用,像 !RC4!MD5 这种,写了 !AES-CBC 之类的,并没有卵效果……

搜索中发现了 bauer-powerStack Exchange 的内容
其中写道可以禁用 !SHA1:!SHA256:!SHA384 来曲线救国达到禁用 CBC 的效果

You can use !SHA1:!SHA256:!SHA384 to disable all CBC mode ciphers. There are some non-CBC false positives that will also be disabled (RC4, NULL), but you probably also want to disable them anyway.

Note that while GCM and CHACHA20 ciphers have SHA* in their name, they’re not disabled because they use their own MAC algorithm. The SHA* in their name is for the PRF, not the MAC

简单翻译一下就是 AES-GCM 和 CHACHA20 之类的加密,自身已经可以验证消息完整性,不需要额外的 SHA 来计算。

所以禁用 SHA 后,CBC 自然无法使用

顺便把 RSA+AES 也禁用了,仅允许 ECDHE_RSA 了。

现在我用的 ciphers 是

1
ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:EECDH+AES256:!MD5:!SHA1:!SHA256:!SHA384";

友情提示,本算法仅支持较新的设备。IOS 9+ Android 4.4+ Chrome 49+ Firefox 31+

SSL Labs 测试结果

禁用前

禁用后


Nginx 禁用 AES CBC 系列弱密码
https://cuojue.org/read/nginx-disable-cbc-ciphers.html
作者
WeiCN
发布于
2022年4月5日
许可协议