wireshark如何抓取WebSocket数据包
前文
WebSocket目前在web端使用广泛,可以使用websocket来传输数据,解决了web端无法跟服务器维持高效的长链接的问题。什么是websocket呢?websocket是一种浏览器与服务器进行全双工通讯的应用层协议。它基于 TCP 传输协议,并复用 HTTP 的握手通道,可以在浏览器里使用,支持双向通讯。
本文来讲述一下如何通过wireshark来抓取websocket数据,进行协议分析。
配置
要使用wireshark抓取websocket包,需要注意一点,wireshark无法解析https协议,如果你的websocket使用的wss,就需要配置wireshark的tls解析,本文使用的是mac,会基于mac讲解如何配置tls解析。
目前chrome和firefox都支持将https的对称秘钥保存到日志文件中,前提是需要设置SSLKEYLOGFILE系统变量。目前Wireshark 1.6.0及更高版本可以使用这些日志文件来解密数据包。
SSLKEYLOGFILE设置
- 创建sslkeylog文件
- 设置环境变量SSLKEYLOGFILE,打开.zshrc文件,添加如下:export SSLKEYLOGFILE=~/sslkeylogfile/keylogfile.log
- 打开浏览器,访问任意https://xxx.com
- 打开keylogfile.log,观察对称秘钥是否写入: