红联Linux门户
Linux帮助

linux配置wireshark对TLS加密的数据进行解密

发布时间:2017-08-02 10:45:17来源:blog.csdn.net/javajiawei作者:小尾巴偶
以前在这里[附1]讲述了使用wireshark对浏览器数据进行解密的过程,当时是在windows上面配置的,近期由于需要,在Linux上面也进行了配置,遇到了一些坑,网上关于我遇到的这些说的较少,在此做一下记录,分享出来。
 
我使用的是centos 7,配置的方法跟windows上面的大体一致。只是在配置环境变量的时候,我在linux 上面采用的是:
(1),vim /etc/profile编辑此文件
(2),export SSLKEYLOGFILE="/root/path/to/sslkeylog.txt"在文件的最后添加该语句,增加环境变量,引号的内容表示存储CLIENT_RANDOM随即数的文件
(3),export使用此命令会发现declare -x SSLKEYLOGFILE="/root/path/to/sslkeylog.txt",说明环境变量已经添加上了。但是这种方法属于永久添加环境变量,因此,需要reboot。
 
正常情况下,配置了这个环境变量,启动firefox或者chrome会自动创建这个文件,在浏览https网站的时候,会写入随即数。在Linux上要确认你的浏览器有没有创建文件,以及读写文件的权限。我是手动的创建了/root/path/to/sslkeylog.txt这个文件,然后执行chmod -R 777 sslkeylog.txt,赋予了其可读可写等权限。
 
然后我浏览一些https网站,却发现该文件并没有被写入。因为path/to/sslkeylog.tx这个文件和目录是我在root用户下面创建的,但是我此时打开的浏览器却是在我自己的用户下面,因此firefox是访问不到这个文件的。因此我在root下面启动firefox。这时候就看到随即数被写入。还要提醒一下注意浏览器的版本,firefox确保在48以上,才会开启这个功能。chrome保持较新的即可。
 
然后在wireshark中配置ssl读取的文件,方法见这里[附1]但是始终解密不了,怀疑是wireshark版本问题。因为低版本wireshark不支持该功能。centos yum源能够提供的版本是1.10,我自己下载了2.0.12的源码,自己进行了编译。需要在http://www.tcpdump.org/#latest-releases安装libpcap。当然编译libpcap以及wireshark的方法都是一致的,三段式./configure ,make ,make install方法。在其中如果遇到需要某些依赖环境,再进行安装(使用yum还是源码编译视情况而定)。
 
然后使用wireshark打开world.taobao.com就可以看到国际淘宝使用的http2的头部了。当然wireshark的打开也是在root用户下面的。
 
总结:linux多用户的概念要搞清楚,确保,所有的应用都在同一用户下面打开,我这里为了省事,都在root下面。文件权限问题,确认文件是可读可写的。版本问题,包括浏览器和wireshark版本都要对这个功能提供支持。
 
附1:
linux配置wireshark对TLS加密的数据进行解密
 
本文永久更新地址:http://www.linuxdiyf.com/linux/32204.html