wireshark - 在 Wireshark 中过滤 TLS 1.3 流量

标签 wireshark tls1.3

有没有一种简单的方法来过滤 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)”列中,但我不确定应用哪个显示过滤器来过滤这些数据包。
enter image description here

最佳答案

TLSv1.3 没有简单的过滤器鉴于 TLSv1.3 出于兼容性原因试图伪装成 TLSv1.2。
当前为 2020-10-05(Wireshark 可能会在某个时候添加此内容)
Wireshark
在 Wireshark 中,您可以通过右键单击流中的数据包然后添加 && tls 来跟踪此 TLSv1.3 流。仅查看流中的 TLSv1.3 数据包(tcp 数据包将显示在流中)。总之,这应该类似于 tcp stream eq 0 && tls .
Following stream
沙克
您可以使用此 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"
在这里,我们
  • 获取 TLSv1.3 流号的排序列表
  • 迭代这些流,以便显示过滤器看起来像tls && ($stream1 || $stream 2 || ...)

  • 使用 Lua 创建自己的显示过滤器
    根据 same question在Wireshark论坛上问,有一个lua script这将与这个 bash 脚本做同样的工作。这是 Wireshark 文档的一部分,作为示例代码提供,您可以根据需要进行修改。

    关于wireshark - 在 Wireshark 中过滤 TLS 1.3 流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64132281/

    相关文章:

    python - 如何让 python 在 Linux 上使用管道读取 tcpdump 捕获的 .pcap 数据?

    带有 TLS 1.3 的 Nginx

    java - 如果没有记录层,我怎样才能只获得 TLS 握手?

    java - SSLContext.getInstance ("TLS") 漏洞

    udp - 通过Wireshark验证Checksum值

    c# - 如何解释 wireshark 消息并使用 C# 发送它们

    sockets - Channel.isActive() 如何在 netty 中工作?

    c - 如何让 OpenSSL C 服务器只支持 TLS 1.3?

    java - X509TrustManager checkServerTrusted with TLSv1.3

    mysql - 为什么Wireshark在不使用-h参数的情况下无法捕获mysql登录包