使用wireshark进行抓包的过程中,我们常常会抓到TLS报文,会加密应用层(例如HTTP)的内容,我们所看到的数据都是加密之后的,无法分析应用层数据。在第一部分中我介绍了TLS(SSL)协议,可知TLS的出现是为了加密上层数据,使得数据在中间被截获之后,如果没有秘钥的话,看到的是一堆乱码。有的场景下需要分析应用层的数据,比如HTTP中的URL。那么有没有办法对于应用层的数据进行解密呢,这就是本小节要讲述的内容,作为我的专栏《wireshark从入门到精通》中的一篇。
由前一篇文章可知,客户端(通常是浏览器)在和服务器进行通信的时候,是会先计算出对称加密密钥的,因此只要获取到本次通信的密钥,就可以解密pcap报文中的数据。幸运的是对于chrome或者firefox这两个浏览器会自动存储该密钥,其实这并不是浏览器的一个必须的功能,只是chrome为了方便开发者而提供的额外功能,很多其他浏览器是没有此功能的。因此这部分的配置,还必须选择chrome或者firefox浏览器,同时低版本有可能不支持,因此尽量选择高版本。下面使用百度首页来讲述解密的方法。
1、首先我们要导出浏览器所存储的秘钥,由于密钥导出并不是chrome默认功能,因此需要进行设置,右键 计算机->属性->高级系统设置->高级->环境变量 新建一个系统变量,如图1:

图1
通过设置SSLKEYLOGFILE系统环境变量,其实就是配
Wireshark解密HTTPS流量:从浏览器获取密钥

本文介绍了如何使用Wireshark解密HTTPS流量,特别是针对Chrome和Firefox浏览器。通过设置SSLKEYLOGFILE环境变量,导出浏览器存储的密钥,并在Wireshark中配置该密钥文件,实现对TLS加密应用层数据的解密。解密过程涉及到TLS握手的随机数匹配,以及解密日志的观察,但这种方法仅适用于本地数据分析,不适用于网络中间的数据截获。
订阅专栏 解锁全文
4237

被折叠的 条评论
为什么被折叠?



