wireshark支持HTTP/2 Over TLS(Chrome、Firefox)

目录

    • 步骤一:配置系统环境变量SSLKEYFILELOG(浏览器存放对称密钥文件位置)
    • 步骤二:设置wireshark TLS协议支持获取对称密钥文件

本文如下设置方式仅支持抓取浏览器Chrome、Firefox流量,且同样支持HTTP/1.1 Over TLS

主流浏览器都只支持 HTTP/2 Over TLS,也就是说当前 HTTP/2 网站都使用了 HTTPS,数据传输都经过了 TLS 加密。所以默认情况下,Wireshark 抓到的包是这样的,TLS层之上的协议细节完全看不到:
wireshark支持HTTP/2 Over TLS(Chrome、Firefox)_第1张图片

Wireshark 的抓包原理是直接读取并分析网卡数据,要想让它解密 HTTPS 流量,有两个办法:

  • 1)如果你拥有 HTTPS 网站的加密私钥,可以用来解密这个网站的加密流量;
  • 2)某些浏览器支持将 TLS 会话中使用的对称密钥保存在外部文件中,可供 Wireshark 加密使用。

本文重点介绍第二种方法。

步骤一:配置系统环境变量SSLKEYFILELOG(浏览器存放对称密钥文件位置)

选择合适位置新建如下两个文件(名称可随意修改)
wireshark支持HTTP/2 Over TLS(Chrome、Firefox)_第2张图片

设置SSLKEYLOGFILE环境变量,对应浏览器存储TLS对称密钥(Master Secret)的文件位置。
wireshark支持HTTP/2 Over TLS(Chrome、Firefox)_第3张图片

浏览器会自动读取此环境变量,并将Tls通信过程中生成的对称密钥(Master Secret)按一定规则存放到此文件中,
此文件可用于后续wireshark获取Tls通信的对称密钥,以用于解析加密数据,
生成的文件格式可参见:NSS Key Log Format
例如:

label ClientRandom Secret
CLIENT_RANDOM c49…915778af19d 7baaba036883a…58f8611

步骤二:设置wireshark TLS协议支持获取对称密钥文件

进入如下wireshark -> 编辑 -> 首选项 -> Protols -> TLS设置界面,依次:

  • 设置TLS debug file - 用于wireshark记录tls debug日志(可对应任意文件)。
  • 设置(Pre)-Master-Secret log filename - 设置TLS对称密钥存放文件位置,需要与之前系统环境变量SSLKEYFILELOG指向同一文件。
    wireshark支持HTTP/2 Over TLS(Chrome、Firefox)_第4张图片

设置完成后重启电脑,再次通过wireshark抓取Http2流量效果如下:
wireshark支持HTTP/2 Over TLS(Chrome、Firefox)_第5张图片
如上图可以发现wireshark已标记处HTTP2协议及对应TLS数据均已被解密(可明文查看)。

注:
关于测试HTTP2协议,可以打开Chrome浏览器后开发者工具Network,发现对应h2协议即为HTTP2通信。
wireshark支持HTTP/2 Over TLS(Chrome、Firefox)_第6张图片


参考:
https://imququ.com/post/http2-traffic-in-wireshark.html
https://www.laoqingcai.com/tls1.2-premasterkey/

你可能感兴趣的:(tls,wireshark,http2)