(一)原理分析
https的数据包是用对称秘钥(https协议协商出来的随机数)加密后的密文。
对称秘钥在传输线路上是密文的(被非对称加密过),但是在client、server端是明文的(因为要用于加解密)。
对称秘钥如何获取?谷歌浏览器有一个接口,chrome浏览器的https协议中的对称秘钥会保存在”SSLKEYLOGFILE" (windows的一个环境变量,值为自定义的一个文本文件)中,wireshark有读取对称秘钥文件的接口。
这样一来,就可以抓包和解密了。
说明:不要以为会获取对称秘钥就可以破解网络上任意的https数据包了。这个对称秘钥是临时协商出来的。你下一次访问,对称秘钥又要改变了。所以,你不参与到client、server端,只参与到传输过程抓包,是无法获取当时的对称秘钥的(被非对称秘钥加了密),也就无法解密https的。所以本文名称为(在客户端)https抓包解密。
(二)操作演示
1、获取对称秘钥
1)windows中设置全局变量
新建一个文件:D:\Temp\sslkey.log (空文件,不用管里面的内容)
配置环境变量:
变量名:SSLKEYLOGFILE
变量值:D:\Temp\sslkey.log
2)wireshark中设置读取全局变量
2、抓对应的包
1)选择需要抓包的网卡
2)重启谷歌浏览器,访问目标网站(如:https://www.baidu.com)。必须重启谷歌浏览器,否则无法解密。
3)几秒后终止wireshark抓包
4)cmd中ping 获取ip:163.177.151.109
5)ip.addr == 163.177.151.109 过滤wireshark中的包。
6)wireshark底部查看明文数据
(二)解密成功后的标记
1、数据包背景色为浅绿色
2、wireshark底部有解密后的选项卡
其他参考:
https解密
https://www.cnblogs.com/aucy/p/9082429.html
https://blog.csdn.net/u010726042/article/details/53408077
https://www.2cto.com/article/201502/377678.html