Wireshark数据包分析实战:HTTPS加解密过程( 二 )


文章插图
 
对捕获到的报文进行整理,形成以下流程图:

Wireshark数据包分析实战:HTTPS加解密过程

文章插图
 
(1)客户端首先向目标网站发送HTTPS请求,即Client Hello 。
该数据包中给出了浏览器的TLS版本号、随机数、支持的加密算法等信息 。如下图所示:
Wireshark数据包分析实战:HTTPS加解密过程

文章插图
 
(2)服务器端进行应答,即Server Hello 。
该数据包中给出了服务器使用的TLS版本、随机数、确认双方加密方法等信息 。如下图所示:
Wireshark数据包分析实战:HTTPS加解密过程

文章插图
 
(3)服务器端给出数字证书和公钥,即Certificate、Server Key Exchange
该数据包中给出了数字证书以及服务器公钥,如下图所示:
Wireshark数据包分析实战:HTTPS加解密过程

文章插图
 
这里要特别说一下客户端到底 如何来校验对方发过来的数字证书是否有效的?
我们从抓包中看到,服务器端将服务器证书、中级证书、CA证书等一并发送客户端 。如下图所示:
Wireshark数据包分析实战:HTTPS加解密过程

文章插图
 
(4)客户端根据客户端的公钥,计算出另一个公钥,发送回服务器端,即Client Key Exchange、Change Cipher Spec、Encrypted Handshake Message 。
证书校验成功之后,客户端会生成一个随机串然后使用服务器证书的公钥进行加密之后发送给服务器 。
Wireshark数据包分析实战:HTTPS加解密过程

文章插图
 
(5)服务器开启New Session Ticket.
服务器通过使用自己的私钥解密得到这个随机值 。开始使用这个随机值进行对称加密开始和客户端进行通信 。如下图所示:
Wireshark数据包分析实战:HTTPS加解密过程

文章插图
 
06 总结成哥今天主要给大家讲解了HTTPS协议的处理过程,重点是介绍HTTPS和wireshark捕获数据包,所以这里没对密码学的知识做过多的介绍 。之后有机会给大家补上 。




推荐阅读