双向SSL握手过程

 

1.   SSL 客户端通过Client Hello 消息将它支持的SSL 版本、加密算法、密钥交换算法、MAC 算法等信息发送给SSL 服务器。如果是新建SSL连接,提交的消息中SSL Session ID ,Sesson ID length 0

 

2.   SSL 服务器确定本次通信采用的SSL 版本和加密套件,并通过Server Hello消息通知给SSL 客户端SSL 服务器会为本次会话分配新的Session ID并通过ServerHello 消息发送给SSL 客户端

 

3. SSL 服务器将携带自己公钥信息的数字证书通过 Certificate 消息发送给 SSL 客户端。
4. SSL 服务器发送 Certificate Request 消息,请求 SSL 客户端将其证书发送给 SSL 服务器。
5. SSL 服务器发送 Server Hello Done 消息,通知 SSL 客户端版本和加密套件协商结束,开始进行密钥交换。
6. SSL 客户端通过 Certificate 消息将携带自己公钥的证书发送给 SSL 服务器。 SSL 服务器验证该证书的合法性。
7. SSL 客户端验证 SSL 服务器的证书合法后,利用证书中的公钥加密 SSL 客户端随机生成的 premaster secret ,并通过 Client Key Exchange 消息发送给 SSL 服务器。
 

8. SSL 客户端计算已交互的握手消息、主密钥的Hash 值,利用自己的私钥对其进行加密,并通过Certificate Verify 消息发送给SSL 服务器。

 

9. SSL 客户端发送Change Cipher Spec 消息,通知SSL 服务器后续报文将采用协商好的密钥和加密套件进行加密和MAC 计算。

 

10 .SSL 客户端计算已交互的握手消息(除Change Cipher Spec 消息外所有已交互的消息)的Hash 值,利用协商好的密钥和加密套件处理Hash 值(计算并添加MAC 值、加密等),并通过Finished 消息发送给SSL 服务器。SSL服务器利用同样的方法计算已交互的握手消息的Hash 值,并与Finished 消息的解密结果比较,如果二者相同,且MAC 值验证成功,则证明密钥和加密套件协商成功。

 

11.同样地,SSL 服务器发送Change Cipher Spec 消息,通知SSL 客户端后续报文将采用协商好的密钥和加密套件进行加密和MAC 计算。

 

12. SSL 服务器计算已交互的握手消息的Hash 值,利用协商好的密钥和加密套件处理Hash 值(计算并添加MAC 值、加密等),并通过Finished 消息发送给SSL 客户端。SSL 客户端利用同样的方法计算已交互的握手消息的Hash 值,并与Finished 消息的解密结果比较,如果二者相同,且MAC 值验证成功,则证明密钥和加密套件协商成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值