在已建立的 TCP 连接中的 TCP 数据包中查找 SSL 版本

网络工程 通讯协议 转储
2021-07-04 07:55:55

是否可以在已建立的 TCP 连接中的 TCP 转储中看到使用的 SSL 版本,而无需终止连接并重新建立它以捕获“客户端问候”?如果是,我在哪里可以找到它?

BR 并提前致谢。

1个回答

是的,绝对,这是可能的。TLS 记录标头未加密。两个八位字节版本字段位于 TLS 记录头中的偏移量 1。假设一个 TLS 记录没有被分成多个 TCP 段(这在实践中通常是这种情况,但不能依赖),TCP 有效载荷中的第二个和第三个字节表示使用的 TLS 版本,例如0x03 0x01TLS 1.0 或0x03 0x03TLS 1.2。有关更多详细信息,请参阅相应的 RFC,例如RFC 5246 6.2.3以了解加密有效负载的 TLS 1.2 记录层的格式。

Wireshark 及其命令行伴侣tshark将向您显示任何给定 TLS 记录的解码 TLS 版本,如您所料。为了显示使用tcpdump,您可以使用-x获取十六进制转储并在删除 IP 和 TCP 标头后在 TCP 数据中找到偏移量 1。