0%

使用 Wireshark 解密 SSL 流量

使用 Wireshark 解密 SSL 流量,支持两种方式:

  1. 使用证书解密,需要配置对端服务器私钥
  2. 不使用证书解密,需要设置 WSSLKEYLOGFILE

私钥

如何利用 Wireshark 解密 SSL 和 TLS 流量
edit -> preferences -> protocols -> ssl: rsa keys list

WSSLKEYLOGFILE

WSSLKEYLOGFILE 是 NSS 底层密码库提出的一种技术,所有基于 NSS 的应用程序在运行期间可以将通信过程中的会话密钥导出到一个文件中,一旦有了这个密码文件,Wireshark 就能够解密所有的 TLS 流量了。

现在 OpenSSL 等其他的 TLS 实现也能支持这种方式,通过 Chrome 和 Firefox 浏览器捕获 TLS 流量,Wireshark 就能够解密

配置

关于一些 TLS 的 DEBUG 技巧和工具集介绍

ubuntu 下使用命令行启动浏览器为了保证能读到环境变量

$ export SSLKEYLOGFILE=/tmp/keylog.txt
$ /opt/google/chrome/chrome
$ /usr/bin/firefox

使用

在wireshark中设置key log路径
edit -> preferences -> protocols -> ssl: (Pre)-Master-Secret log filename: /tmp/keylog.txt

设置之后可以解密 SSL 流量,可以看到 SSL 交互过程,可以 Follow SSL Stream 查看完整 HTTPS 数据

Ref

  1. Using wireshark to determine which RSA PRIVATE KEY SSL conversation?
  2. Wireshark 对 HTTPS 数据的解密
  3. 使用 Wireshark 解密 TLS 1.3 流量
  4. Wireshark 解密 TLS 数据包