有没有一种简单的方法来过滤 Wireshark 中的 TLS 1.3 数据包?tls.record.version
将不起作用,因为它通常包含 0x0303
的值(TLS 1.2)。
我假设 Wireshark 通过查看 ServerHello 消息中的 SupportedVersions 扩展来识别 TLS 1.3,如果版本是 0x0304
(TLS 1.3)它可能将协议(protocol)应用于整个 TLS 流。TLSv1.3
显示在“协议(protocol)”列中,但我不确定应用哪个显示过滤器来过滤这些数据包。
最佳答案
TLSv1.3 没有简单的过滤器鉴于 TLSv1.3 出于兼容性原因试图伪装成 TLSv1.2。
当前为 2020-10-05(Wireshark 可能会在某个时候添加此内容)
Wireshark
在 Wireshark 中,您可以通过右键单击流中的数据包然后添加 && tls
来跟踪此 TLSv1.3 流。仅查看流中的 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"
在这里,我们tls && ($stream1 || $stream 2 || ...)
使用 Lua 创建自己的显示过滤器
根据 same question在Wireshark论坛上问,有一个lua script这将与这个 bash 脚本做同样的工作。这是 Wireshark 文档的一部分,作为示例代码提供,您可以根据需要进行修改。
关于wireshark - 在 Wireshark 中过滤 TLS 1.3 流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64132281/