Wireshark抓包工具解析HTTPS包

一、遇到的问题

本学期的计算机网络课程需要使用到Wireshark抓包工具进行网络抓包实验,原本可以看到在该软件中捕获到的数据包都被按照各个协议进行分类好了,例如ARP包,TCP报文段,UDP数据报等等。但是当我想要抓取访问某网站时传输的数据,例如访问bilibili时,我先使用ping命令得到bilibili的IP地址:

Wireshark抓包工具解析HTTPS包得到的ip地址为:120.240.78.230

而当我使用这个ip地址在Wireshark中进行抓包筛选时却发现什么http的请求都找不到:

Wireshark抓包工具解析HTTPS包经查找资料发现现在互联网使用的HTTP协议基本都是HTTP2.0以上的了,因而数据包都是加密之后再在网络中进行传输,保证了信息的安全性。因而我们收到的HTTP请求在Wireshark中只能看到一个个的TLS包,这些TLS包在使用秘钥解密之后可以得到正确的HTTP报文。

Wireshark抓包工具解析HTTPS包

二、解决方案

1. 动态获取对称加密秘钥

以下解决方案是针对使用Chrome浏览器的。(也许Edge等浏览器也可以?)

首先我们需要通过Chrome浏览器生成一个包含加密秘钥信息的文件,方法是给浏览器添加以下的启动参数:

--ssl-key-log-file=D:\sslkey.log 

这个只是一个范例,后面填写的目录可以是任意的位置。

为了方便起见,在windows系统下可以右键点击Chrome浏览器的快捷方式进行设置:

Wireshark抓包工具解析HTTPS包添加上参数后,我们使用该快捷方式启动Chrome就会发现在上面设置的目录下生成了对应的sslkey.log文件:

Wireshark抓包工具解析HTTPS包

2. Wireshark配置

然后打开Wireshark,依次点击:编辑 -> 首选项 -> Protocols:

Wireshark抓包工具解析HTTPS包老版本的Wireshark中可以看到SSL的选项,而新版本中则变成了TLS。我们打开相应的选项(SSL或TLS),然后将sslkey.log文件的路径配置到(Pre)-Master-Secret log filename项中即可:

Wireshark抓包工具解析HTTPS包至此配置完成。

3. 最终效果

此时再次访问b站首页,可以在Wireshark中看到许多http2请求报文了,这些都是原先的TLS包解密后得到的结果:

Wireshark抓包工具解析HTTPS包

给TA打赏
共{{data.count}}人
人已打赏
网络技巧网络随笔

教你使用 Azure Cli 提取 Azure API 参数信息

2023-3-23 14:42:19

网络技巧网络随笔

Wireshark网络抓包(九)——为什么我的 Wireshark 抓不到/抓不全 HTTP 数据包

2023-3-28 21:08:01

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索