简述
在网络数据分析中,传输层安全(TLS)协议的流量解密和分析是一项重要的技能。Wireshark 提供了专门的设置选项,帮助用户处理 TLS 流量,例如解密会话、重组分片等。本文将详细解析上图所示的 Wireshark TLS 设置功能,包括各项设置的作用及实际应用方法。
一、TLS 设置选项解析
1. RSA Keys List(RSA 密钥列表)
作用:用于加载私钥文件以解密 TLS 流量。在使用基于 RSA 的密钥交换算法时,通过提供服务器的私钥,Wireshark 能够解密捕获的 TLS 流量并显示明文内容。
应用场景:
- 分析 HTTPS 流量:加载服务器私钥以解密客户端与服务器之间的通信。
- 测试服务器配置:检查加密传输中的数据完整性。
使用方法:
- 点击 “Edit(编辑)” 按钮,添加 RSA 私钥文件。
- 确保使用的是
.pem
格式的私钥文件。 - 捕获 TLS 流量时,Wireshark 会尝试自动解密。
注意事项:现代 TLS 版本(如 TLS 1.3)通常不再使用 RSA 密钥交换,此选项对这些版本无效。
2. TLS Debug File(TLS 调试文件)
作用:将 Wireshark 解码 TLS 流量时的调试信息输出到指定文件中,便于排查问题。
应用场景:
- 排查解密失败的问题。
- 分析 TLS 解码过程中的错误。
使用方法:
- 在文本框中指定调试文件的路径,或者点击 “浏览...” 选择保存位置。
- 开启捕获后,调试信息会写入文件中。
注意事项:调试文件可能包含敏感信息,使用后需妥善保管。
3. Reassemble TLS Records Spanning Multiple TCP Segments
作用:重新组装跨多个 TCP 段的 TLS 记录,确保数据包的完整性。
应用场景:
- 解决网络拥塞或分片导致的 TLS 数据包分段问题。
- 分析较大 TLS 数据流,如视频流量或大文件传输。
默认状态:启用。
建议:保持选中,以避免丢失分片数据。
4. Reassemble TLS Application Data Spanning Multiple TLS Records
作用:将跨多个 TLS 记录的应用层数据重新组装,恢复完整的应用层数据。
应用场景:
- 分析 HTTPS 中的 HTTP 内容。
- 调试 WebSocket 或其他基于 TLS 的应用层协议。
默认状态:启用。
建议:保持选中,以确保完整的数据解析。
5. Message Authentication Code (MAC), Ignore "MAC Failed"
作用:忽略 MAC 校验失败的情况,继续尝试解析 TLS 数据包。
应用场景:
- 当捕获文件中包含数据包丢失或损坏时,仍然希望尽可能恢复有用的信息。
默认状态:未启用。
注意事项:启用该选项可能导致解析结果不准确,建议在特殊情况下使用。
6. Pre-Shared Key(PSK,预共享密钥)
作用:指定 TLS 会话的预共享密钥,用于解密使用 PSK 密钥交换的 TLS 流量。
应用场景:
- 解密 IoT(物联网)设备中基于 PSK 的通信。
- 分析特定加密应用程序的流量。
使用方法:
- 在文本框中输入 PSK 值。
- 捕获基于 PSK 的 TLS 流量,Wireshark 会尝试解密。
注意事项:确保密钥正确匹配,否则解密会失败。
7. (Pre-)Master-Secret Log Filename
作用:指定包含主密钥的日志文件,用于解密 TLS 流量。这种方式支持现代 TLS 版本(如 TLS 1.2 和 1.3)。
应用场景:
- 解密客户端与服务器通信(前提是客户端支持导出主密钥)。
- 分析基于浏览器的 HTTPS 流量。
使用方法:
- 使用支持主密钥导出的客户端(如配置 Firefox 或 Chrome 浏览器)。
- 将主密钥日志文件路径填入该项。
- Wireshark 会自动使用主密钥解密 TLS 流量。
注意事项:主密钥日志文件生成方式需参考浏览器或其他工具的配置说明。
二、应用场景示例
1. 解密 HTTPS 流量
- 设置服务器的 RSA 私钥(适用于旧版 TLS)。
- 或者使用主密钥日志文件解密(适用于 TLS 1.2 和 1.3)。
2. 分析物联网通信
- 使用 PSK 配置,解密智能设备与服务器之间的加密通信。
- 重组分片数据,确保捕获的 TLS 数据完整。
3. 排查 TLS 连接问题
- 启用调试文件,记录解密过程中的详细信息。
- 忽略 MAC 校验错误,尝试恢复部分数据。
三、测试
提前准备密钥:
wireshark/test/keys/rsasnakeoil2.key at master · boundary/wireshark · GitHub
然后在RSA keys list中增加配置:
保持选项默认状态:
Reassemble TLS Records
和 Reassemble TLS Application Data
默认启用,可避免数据丢失问题。
下载数据包文件:
wireshark/test/captures/rsasnakeoil2.pcap at master · boundary/wireshark · GitHub
打开数据包文件:
解密前:
解密后:
发现应用数据解出来了。