有没有一种简单的方法可以在 Wireshark 中过滤 TLS 1.3 数据包?
tls.record.version不起作用,因为它通常包含值0x0303(TLS 1.2)。
我假设 Wireshark 通过查看 ServerHello 消息中的 SupportedVersions 扩展来识别 TLS 1.3,如果版本是0x0304(TLS 1.3),它可能会将该协议应用于整个 TLS 流。
TLSv1.3显示在“协议”列中,但我不确定应用哪个显示过滤器来过滤这些数据包。
鉴于 TLSv1.3 出于兼容性原因尝试伪装成 TLSv1.2,因此没有针对 TLSv1.3 的简单过滤器。
当前截至 2020 年 10 月 5 日(Wireshark 可能会在某个时候添加此内容)
在 Wireshark 中,您可以通过右键单击流中的数据包然后添加来跟踪此 TLSv1.3 流,以&& tls仅查看流中的 TLSv1.3 数据包(tcp 数据包将显示在流中)。总的来说,这应该是类似的tcp stream eq 0 && tls。
您可以使用以下 bash 脚本轻松找到此显示过滤器:
#!/bin/bash
filename=YOUR_PCAP.pcap
tcp_streams="$(tshark -r $filename -T fields -e tcp.stream \
-Y 'tls.handshake.extensions.supported_version == 0x0304' | sort | uniq)"
display_filter="tls && ("
first_stream="true"
for s in $tcp_streams; do
if [ $first_stream == "true" ]; then
first_stream="false"
else
display_filter+=" || "
fi
display_filter+="tcp.stream eq $s"
done
display_filter+=")"
printf "Display filter for TLSv1.3:\n$display_filter\n"
Run Code Online (Sandbox Code Playgroud)
在这里,我们
tls && ($stream1 || $stream 2 || ...)根据Wireshark 论坛上提出的相同问题,有一个lua 脚本可以执行与此 bash 脚本相同的跑腿工作。这是 Wireshark 文档的一部分,作为示例代码提供,您可以根据需要进行修改。
| 归档时间: |
|
| 查看次数: |
15240 次 |
| 最近记录: |