其他分享
首页 > 其他分享> > TLS/SSL 协议详解 加密套件的选择

TLS/SSL 协议详解 加密套件的选择

作者:互联网

当一个SSL请求发送到服务器,由于SSL的client hello中有自己支持的所有加密套件,服务器需要选择。

服务器在选择算法时,会有优先级,是以客户端提供的的为最优,还是服务器端配置的为最优。

所谓客户端最优,就是服务端根据客户端提供的加密套件,从上到下,看是否有本地(服务端)支持的,有的话则使用。

所谓服务器端最优,就是服务器端根据自身配置的加密套件顺序,一个个在client hello中找,找到了就使用。

其次

当服务器配置ECC证书时,加密套件只能选择XXX_ECDSA_XXX或者ECDH_XXX。
当服务器配置RSA证书时,只能选择RSAXXX或者ECDHERSA_XXX形式的加密套件。

需要注意的是,如果加密套件选择ECDH_RSA或者ECDH_ECDSA时,由于ECDH加密套件默认表明了握手需要ECC证书(即ECC证书的公钥充当握手中server key exchange中的公钥,证书的私钥同样也是握手过程中的私钥,握手过程不需要server key exchange),所有第二部分_RSA和_ECDSA表明的是想要的服务器证书签名类型。(这里在谈ECDH而不是ECDHE,评论区有同学混淆了两者概念,区别见:https://blog.csdn.net/mrpre/article/details/78025940)

比如说服务器选择了ECDH_RSA加密套件,但是发送的证书却是ECDSA签名的证书,虽然说证书签名类型不影响整个握手,但是对于校验严格的客户端,这种情况可能会导致客户端断开链接。

详见 RFC:https://tools.ietf.org/html/rfc4492#section-2.3

标签:TLS,加密,证书,ECDH,SSL,套件,服务器,客户端
来源: https://blog.csdn.net/qq_31442743/article/details/115861635