当前使用(tcp[tcp[12]/16*4]=22 and tcp[tcp[12]/16*4+5]=1),其中=22表示握手,=1表示TLS 1.2/1.3数据包的客户端hello。由于上面的过滤器将流量分配给TLS 1.2和1.3,因此我并没有真正找到区分TLS 1.3或TLS 1.2客户端hello流量的方法/技术。
(tcp[tcp[12]/16*4]=22 and tcp[tcp[12]/16*4+5]=1)
=22
=1
zysjyyx41#
TLS 1.3支持是在supported_versions TLS扩展中宣布的。在ClientHello中没有明确的偏移量,也就是说,需要正确解析ClientHello结构。这对于pcap过滤规则是不可行的。
supported_versions
wwodge7n2#
正如Steffen提到的,TLS 1.3在Client Hello中的扩展中协商,并由服务器在Server Hello中的相同扩展中确认:
要在此扩展中筛选0x0304,您将使用此显示筛选器:tls.handshake.extensions.supported_version == 0x0304这将捕获任何带有TLS 1.3十六进制代码0x0304的客户端Hello或服务器Hello。但是要小心...仅仅因为客户端 * 建议 * TLS 1.3并不意味着服务器会接受...服务器很可能选择继续TLS 1.2握手。在这种情况下,确定地找到每个实际TLS 1.3协商会话的最佳方法是将上述显示过滤器与另一个仅匹配服务器Hello的过滤器组合:(tls.handshake.extensions.supported_version == 0x0304) && (tls.handshake.type == 2)当然,这只会显示用于确认TLS 1.3会话的服务器Hello,而不会显示整个TLS 1.3会话(如TLS握手中的其他记录,或应用程序数据的交换等)。
tls.handshake.extensions.supported_version == 0x0304
0x0304
(tls.handshake.extensions.supported_version == 0x0304) && (tls.handshake.type == 2)
2条答案
按热度按时间zysjyyx41#
TLS 1.3支持是在
supported_versions
TLS扩展中宣布的。在ClientHello中没有明确的偏移量,也就是说,需要正确解析ClientHello结构。这对于pcap过滤规则是不可行的。wwodge7n2#
正如Steffen提到的,TLS 1.3在Client Hello中的扩展中协商,并由服务器在Server Hello中的相同扩展中确认:
要在此扩展中筛选0x0304,您将使用此显示筛选器:
tls.handshake.extensions.supported_version == 0x0304
这将捕获任何带有TLS 1.3十六进制代码
0x0304
的客户端Hello或服务器Hello。但是要小心...仅仅因为客户端 * 建议 * TLS 1.3并不意味着服务器会接受...服务器很可能选择继续TLS 1.2握手。
在这种情况下,确定地找到每个实际TLS 1.3协商会话的最佳方法是将上述显示过滤器与另一个仅匹配服务器Hello的过滤器组合:
(tls.handshake.extensions.supported_version == 0x0304) && (tls.handshake.type == 2)
当然,这只会显示用于确认TLS 1.3会话的服务器Hello,而不会显示整个TLS 1.3会话(如TLS握手中的其他记录,或应用程序数据的交换等)。