用wireshark解密HTTPS流量

我们日常用https访问网站的时候,和网站交互的数据是加密的,所用的协议就是SSL/TLS。所以即使我们截获了这些数据包,我们也不能看到加密的内容。

比如我们随便打开百度的网址,用wireshark抓一下https的数据包。

首先获取百度服务器地址:

开始抓包:

注意到通信的数据都是以二进制的形式表现出来的:

那我们怎么才能获得明文信息呢?

SSL采用的是对称加密和非对称加密相结合的方式进行通信。加密数据的过程是对称加密,也就是客户端和服务器的报文都是由一把钥匙进行加密的。那么只要我们能获取到这把钥匙,就能对上面的报文进行解密。

chrome和Firefox浏览器都可以记录这个密钥,前提是需要设置系统的环境变量SSLKEYLOGFILE,当用chrome和Firefox浏览器访问网页的时候,浏览器会检查这个环境变量,存在的话会向指定的文件里写入这个密钥。

配置环境变量:

可以看到文件里被写入了很多密钥信息:

在wireshark中进入进入首选项

选择协议TLS或者SSL,将pre-master-secret log设置为记录密钥的log路径

点击确认后,就能对TLS流量进行解密了:

(0)

相关推荐