mrpre 发表于 2014-08-19 09:20

SSL中server key exchange 是神马

以前只是听说,就没理他,但是今天抓报文看到了。
我知道client key exchange是用服务器证书rsa公钥加密传输预主密钥。
但是server key exchange 是干嘛的呢?

贴上服务器回客户端的报文:


没理解其中的含义,以及目的。

ycnian 发表于 2014-08-19 09:48

server key exchange不是必须的,跟你加密预主密钥使用的算法有关。对于RSA算法来说,certificate message中包含了足够的信息,client key exchange可以使用这些信息加密预主密钥。但是对于DH这类的算法来说,certificate message只包含了部分信息,剩余的信息在server key exchange中。你看贴的图里面使用的就是EC Diffie-Hellman算法。

mrpre 发表于 2014-08-19 15:47

也就是说,采用DH算法,证书仅仅是用来验证身份的,而非用来提取公钥,然后加密预主密钥的?
回复 2# ycnian


   

ycnian 发表于 2014-08-19 16:32

回复 3# mrpre

对,是这样的。单纯使用RSA算法时,RSA算法既用来验证服务器的身份,也用来加密预主密钥。单纯采用DH算法时,DH算法只用来加密预主密钥,没办法验证服务器身份,称为anonymous DH。DH算法还可以跟RSA算法一起使用,RSA验证服务器身份,DH算法加密预主密钥。
   
页: [1]
查看完整版本: SSL中server key exchange 是神马