SSL-握手

上一个好像写的有点乱,这个重新写一些根据wireshak来看

1、Client Hello

SSL-握手

客户端向服务端发送Client hello   包含随机数client_random,SSL/TLS版本、加密信息(密码套件)等

密码套件:

SSL-握手

2、Server Hello

SSL-握手

包含随机数 server_random,服务端从发送的一堆加密算法中,选择一个加密度最高的算法、证书

如果选择的握手算法是DH算法,那么还会传递DH参数

SSL-握手

这两个client_random 和 server_random 随机数是明文传送。并且两端都知道是什么

3、客户端回应

SSL-握手

1、先对证书进行验证

2、生成一个随机数,利用证书里面的公钥生成 preMaster

3、client将这个preMaster传给服务端,(Client key exchange)

SSL-握手

客户端通知服务端后面再发送消息使用对话**加密啦 (change cipher spec)

SSL-握手

服务端也会将握手过程的消息生成摘要再用秘钥加密,这是服务端发出的第一条加密消息。客户端接收后会用秘钥解密,能解出来说明协商的秘钥是一致的。