文章插图
对捕获到的报文进行整理,形成以下流程图:
文章插图
(1)客户端首先向目标网站发送HTTPS请求,即Client Hello 。
该数据包中给出了浏览器的TLS版本号、随机数、支持的加密算法等信息 。如下图所示:
文章插图
(2)服务器端进行应答,即Server Hello 。
该数据包中给出了服务器使用的TLS版本、随机数、确认双方加密方法等信息 。如下图所示:
文章插图
(3)服务器端给出数字证书和公钥,即Certificate、Server Key Exchange
该数据包中给出了数字证书以及服务器公钥,如下图所示:
文章插图
这里要特别说一下客户端到底 如何来校验对方发过来的数字证书是否有效的?
我们从抓包中看到,服务器端将服务器证书、中级证书、CA证书等一并发送客户端 。如下图所示:
文章插图
(4)客户端根据客户端的公钥,计算出另一个公钥,发送回服务器端,即Client Key Exchange、Change Cipher Spec、Encrypted Handshake Message 。
证书校验成功之后,客户端会生成一个随机串然后使用服务器证书的公钥进行加密之后发送给服务器 。
文章插图
(5)服务器开启New Session Ticket.
服务器通过使用自己的私钥解密得到这个随机值 。开始使用这个随机值进行对称加密开始和客户端进行通信 。如下图所示:
文章插图
06 总结成哥今天主要给大家讲解了HTTPS协议的处理过程,重点是介绍HTTPS和wireshark捕获数据包,所以这里没对密码学的知识做过多的介绍 。之后有机会给大家补上 。
推荐阅读
- 数据中台建设从数据中台的认知开始
- MySQL 临时表空间数据过多导致磁盘空间不足的问题排查
- 数据库压力测试方法小结
- DataX的技术
- 什么是DDS?
- 亿级数据库毫秒级查询?看完这一篇,海量数据赋能你也行
- HTTPS浅析与抓包分析
- Excel表格技巧—如何让数据自动累加
- 数据仓库系统架构和数仓分层体系介绍
- 勒索病毒加密数据库解决方案