简单抓了个HTTPS包,过了一遍流程。不涉及具体技术细节。
几项关键技术的简单说明,详见这篇笔记:HTTPS相关算法基本概念-知乎专栏
HTTPS简单来说,就是使用SSL对HTTP报文进行加密传输。
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
一、密文解析方法:HTTPS报文本身是加密的,wireshark也无法解析。因此需要将HTTPS生成的随机数(premaster-secret)提供给wireshark,wireshark才能正确解读密文。
具体配置方法(WINDOWS):
建立path变量 SSLKEYLOGFILE=c:\ssl.key
重启firefox/chrome,访问https网站会自动生成ssl session key
在wireshark中配置:编辑-首选项-Protocol-SSL-(Pre)-Master-Secret log filename 设置为之前配置的ssl.key文件,即可解密抓到的SSL密文
二、准备过程(DNS、TCP与302跳转):在电脑浏览器输入www.baidu.com,此时请求的是HTTP报文。
2.1 DNS解析:获得baidu网站IP地址
2.2 TCP建立连接:HTTP服务基于TCP连接,根据前述DNS解析结果建立连接。
2.3 HTTP请求与响应