我想观察 HTTPs 协议。如何使用 Wireshark 过滤器来实现这一点?
答案1
正如 3molo 所说。如果您正在拦截流量,那么这port 443
就是您需要的过滤器。如果您有网站的私钥,您还可以解密该 SSL。(需要启用 SSL 的 Wireshark 版本/构建。)
看http://wiki.wireshark.org/TLS
编辑
这个答案得到了很多关注,所以我添加了第二个选项,它不需要访问服务器私钥(RSA 解密也被弃用)
- 设置环境变量:
SSLKEYLOGFILE
到主目录内的文件路径*。(例如~/ssl-log.txt
) - 打开浏览器并访问任何 TLS 站点。检查指定的文件是否已创建。
- 启动Wireshark。打开优先->协议->TLS
- 在(Pre)-Master-Secret Log 中,浏览到新文件。
现在正常捕获会话,您应该可以快速看到会话流量是否正在被动态解密。
这更安全,因为您不必保留服务器的私钥副本,但自然只在您可以在捕获之前设置环境变量的系统上有效。
*会话密钥也是私有的。其他人也可以使用它们来解密相同的会话数据,因此请确保它们位于只有您可以读取的位置。
答案2
过滤窗口中的 tcp.port==443(mac)
答案3
答案4
过滤tcp.port==443
,然后使用从网络浏览器获取的 (Pre)-Master-Secret 解密流量。
一些有用的链接:
https://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/
“自 SVN 修订版 36876 以来,即使您没有服务器密钥但可以访问预主密钥,也可以解密流量……简而言之,应该可以通过设置环境变量 (SSLKEYLOGFILE=) 将预主密钥记录到当前版本的 Firefox、Chromium 或 Chrome 的文件中。QT 的当前版本(4 和 5)也允许导出预主密钥,但导出到固定路径 /tmp/qt-ssl-keys,并且它们需要编译时选项:对于 Java 程序,可以从 SSL 调试日志中提取预主密钥,或通过此代理直接以 Wireshark 所需的格式输出。”(jSSLKeyLog)