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