SSL中server key exchange 是神马
以前只是听说,就没理他,但是今天抓报文看到了。我知道client key exchange是用服务器证书rsa公钥加密传输预主密钥。
但是server key exchange 是干嘛的呢?
贴上服务器回客户端的报文:
没理解其中的含义,以及目的。 server key exchange不是必须的,跟你加密预主密钥使用的算法有关。对于RSA算法来说,certificate message中包含了足够的信息,client key exchange可以使用这些信息加密预主密钥。但是对于DH这类的算法来说,certificate message只包含了部分信息,剩余的信息在server key exchange中。你看贴的图里面使用的就是EC Diffie-Hellman算法。 也就是说,采用DH算法,证书仅仅是用来验证身份的,而非用来提取公钥,然后加密预主密钥的?
回复 2# ycnian
回复 3# mrpre
对,是这样的。单纯使用RSA算法时,RSA算法既用来验证服务器的身份,也用来加密预主密钥。单纯采用DH算法时,DH算法只用来加密预主密钥,没办法验证服务器身份,称为anonymous DH。DH算法还可以跟RSA算法一起使用,RSA验证服务器身份,DH算法加密预主密钥。
页:
[1]