我尝试了以下设置来删除 Apache 服务器中的 CBC 密码套件,
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
SSLHonorCipherOrder on
SSLCompression off
经过一些重新测试后,我的 Apache 中仍然启用了 CBC 密码套件。我不确定应该删除/添加哪些套件?
答案1
这是 Apache 安装使用的 TLS 库 OpenSSL 的一个常见缺陷,它不通过其名称来命名其密码套件完整 IANA 名称但通常是简化的,通常会省略使用的链接模式。这是一个坏主意,我认为他们不会再为新添加的套件这样做了。
您的配置仍然需要一些 CBC 套件,例如 ECDHE-ECDSA-AES256-SHA384,其实际是 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384。任何未指定链接模式的 AES 套件都可能在 OpenSSL(以及 Apache)中使用 CBC。
你可以逐个搜索它们https://ciphersuite.info/cs/?sort=asc&security=all&singlepage=true&tls=tls12&software=openssl或者我推荐的选项,使用 Mozilla SSL 配置生成器快速获取已知运行良好的配置(https://ssl-config.mozilla.org/)。为避免生成器包含 CBC 套件,请选择“中级”作为设置,因为“旧”会包含一些 CBC 套件,以允许非常旧的客户端进行连接。