SSL握手过程

第一阶段:

    客户端向服务器端发送TCP请求,建立起TCP连接后,客户端向服务器发送client hello消息,传送客户端支持的最高SSL协议的版本号、随机数、加密算法列表,以及其他所需要的信息。

第二阶段:

    服务器向客户端发送包含其证书的Certificate消息。证书中所携带服务器的公钥,用于加密后面消息中预主秘钥

                证书内容:

                        版本号

                        序列号

                        证书签名算法

                        证书颁发者信息

                        有效期

                        证书持有者信息

                        公钥信息

                        扩展域

                        证书签名

第三阶段与第四阶段

    服务器发送完Certificate消息后继续发送Server Key Exchange和Server Hello Done消息,Server Key Exchange消息中包括秘钥交换算法所需要的额外参数Server Hello Done消息表示服务器已经发送完此阶段的全部信息

    客户端发送Client Key Exchange和Change Cipher Spec消息,Client Key Exchange包含使用服务器RSA公钥加密过的随机Pre_Master_Secret,该参数用于后续生成主密钥;Change Cipher Spec消息告诉服务器,接下来的消息将采用新协商的加密套件和秘钥进行通信,并通知客户端到服务器的握手过程结束

    接着服务器同样发送Change Cipher Spe消息通知服务器到客户端的握手过程结束,并发送一个加密的握手数据Encryted Handshake Message消息,客户端收到消息解密后进行验证,验证通过则说明握手过程中数据没有被篡改过,也说明服务器是之前交换证书的持有者,现在双方可以开始加密通信


猜你喜欢

转载自blog.csdn.net/weixin_42135997/article/details/80608320