在检查了我的 Apache 站点的安全性之后,我发现 TLS 1.2 协议支持以下弱密码套件:
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
我可以通过服务器设置禁用这些密码套件吗?这些设置会影响用户体验吗?
答案1
这Mozilla SSL 配置生成器如果您希望为您的 Web 服务器创建合适的 TLS 配置,那么这是一个不错的选择。它们提供三种配置文件:现代、中级和旧版。
- 现代的意思是你仅有的允许 TLS 1.3 客户端,这非常安全,但浏览器之间的支持有限。
- 中间的还允许使用 TLS 1.2,以及一组安全的密码套件。这是推荐的设置,除非您有充分的理由使用其他两种设置之一。
- 老的意味着 TLS 1.0 和一些不安全的密码套件也将受支持。仅当您绝对必须支持 Windows XP 等过时的客户端时才应使用此设置。
例如,Apache 的中间配置如下所示:
# intermediate configuration
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
这样做的目的是禁用 SSLv3、TLS 1.0 和 TLS 1.1(仅启用 TLS 1.2 和 1.3),然后明确设置支持的密码套件列表。
就用户体验的影响而言,普通用户不会注意到任何差异。性能没有影响,普通用户也不会遇到任何连接问题。使用过时客户端(例如 Windows XP 或更早版本)的用户可能无法连接到您的服务(没有重大技术障碍),但这是设计使然 - 过时的客户端过时是有原因的。继续支持 TLS 1.0 甚至 SSLv3,只是为了让少数用户仍能使用 Windows XP,这将使全部您的用户面临风险。