MAC 上解密 chrome 的 https 流量

Chrome 或者 Firefox 都支持: 如果设置了环境变量 SSLKEYLOGFILE, 就把 SSL/TLS 的 pre-master secret key 写到设置的文件里面去. 之后可以使用这个 pre-master secret key 文件在 wireshark 里面解密加密的流量.

----- 原来的步骤 1, 2 在2023年底不行了, 换成如下 --------------
在命令行执行:

SSLKEYLOGFILE=/tmp/google/ssl-key.log /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=/tmp/google

---------- 补丁结束 ----------------

  1. 设置 SSLKEYLOGFILE 环境变量
    可以简单在命令行使用 export 命令 (记得之后打开 Chrome 要在这个命令行)

    export SSLKEYLOGFILE=~/ssh_key.log
  2. 在同一个命令行窗口打开 chrome

    open /Applications/Google\ Chrome.app/
  3. 在 chrome 随便访问一个 https 的网站, 检查 ~/ssh_key.log 是不是有内容
  4. 打开 wireshark 拦截流量或者 使用 tcpdump 有针对性的拦截

    sudo tcpdump host 103.144.218.5 -w mydump.pcap 
  5. 打开 wireshark, 分析这个加密的流量.
    显示设置SSL/TLS 的 pre-master secret key log 文件:
    菜单: preferences -> Protocols -> TLS (Wireshark 3.0 之前是 SSL):

    Preferences.png

  6. 关于 key log 文件的格式:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format

    之后:

    1. 首先找到带有 data 的行
    2. 可以看 http 或 http 2 的数据
    3. 点击下面(3)的 Decrypted data, 其实里面看上去是乱码, 因为直接解密后还是压缩的, 所以是乱码;
    4. 点解下面(4)的 uncompressed entity body 可以看到加压后的明文
      xiaohui_pcap.png

标签: none

添加新评论