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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mrpre/article/details/77868633

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

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

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

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

 

其次

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

当服务器配置RSA证书时,只能选择RSA_XXX或者ECDHE_RSA_XXX形式的加密套件。

 

需要注意的是,如果加密套件选择ECDH_RSA或者ECDH_ECDSA时,由于ECDH加密套件默认表明了握手需要ECC证书(即ECC证书的公钥充当握手中server key exchange中的公钥,证书的私钥同样也是握手过程中的私钥,握手过程不需要server key exchange),所有第二部分_RSA和_ECDSA表明的是想要的服务器证书签名类型。

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

 

展开阅读全文

没有更多推荐了,返回首页