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

来源:互联网 发布:线程同步 linux 编辑:程序博客网 时间:2024/05/22 09:49

  服务器在选择算法时,会有优先级,是以客户端提供的的为最优,还是服务器端配置的为最优。所谓的客户端最优,就是根据客户端提供的加密套件,从上到下,看是否有本地支持的,有的话则使用。所谓服务器端最优,就是服务器端根据自身配置的加密套件顺序,一个个在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签名的证书,虽然说证书签名类型不影响整个握手,但是对于校验严格的客户端,这种情况可能会导致客户端断开链接。