如果客户端提供了更高的密码套件,ClientHello但最终在同一协议版本中协商了更低强度的密码套件,尽管客户端和服务器都可以使用更高的密码套件,谁负责?
根据SSL/TLS 如何工作?它ServerHello最终决定了密码套件。
从那个帖子:
要记住:客户端建议但服务器选择。密码套件在服务器手中。礼貌的服务器应该遵循客户端的偏好(如果可能的话),但他们可以不这样做,有些实际上会这样做(例如,作为对 BEAST 的保护的一部分)。
为了更好地理解这个问题,下面提供了一个示例。
火狐浏览器示例:
有一个客户端(A)和一个服务器(B)。
客户端 (A) 是 Firefox 65 版浏览器。
服务器 (B) 是通过 https 为站点提供服务的 Web 服务器。
行为:
与服务器 (B) @ site.server.com 的连接正在从更强大的 TLS 1.2 密码套件协商到不太强大的 TLS 1.2 密码套件,即使客户端和服务器上都有更强大的密码套件。此行为在 Firefox 65 上得到确认。
重现步骤:
在 Firefox 中禁用
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256和所有其他较弱的密码套件,然后重新加载 site.server.com 该站点将加载TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.在启用的
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256同时TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384启用,然后重新加载 site.server.com。
将选择较弱的密码套件。
在这种情况下,谁负责?ClientHello或者ServerHello