SSL-握手
上一个好像写的有点乱,这个重新写一些根据wireshak来看
1、Client Hello
客户端向服务端发送Client hello 包含随机数client_random,SSL/TLS版本、加密信息(密码套件)等
密码套件:
2、Server Hello
包含随机数 server_random,服务端从发送的一堆加密算法中,选择一个加密度最高的算法、证书
如果选择的握手算法是DH算法,那么还会传递DH参数
这两个client_random 和 server_random 随机数是明文传送。并且两端都知道是什么
3、客户端回应
1、先对证书进行验证
2、生成一个随机数,利用证书里面的公钥生成 preMaster
3、client将这个preMaster传给服务端,(Client key exchange)
客户端通知服务端后面再发送消息使用对话**加密啦 (change cipher spec)
服务端也会将握手过程的消息生成摘要再用秘钥加密,这是服务端发出的第一条加密消息。客户端接收后会用秘钥解密,能解出来说明协商的秘钥是一致的。