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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值