具有相同客户端 hello 的握手失败

信息安全 tls
2021-08-26 05:50:36

我正在调查我收到的握手失败。

我们有两个使用 .Net + Server 2012 R2 的独立客户端。两者都在尝试使用相同的目标 IP 进行 TLS 握手。Wireshark 将客户端的 hello 显示为双方相同,但只有一个成功。对于不成功的,服务器会在客户端 hello 之后立即响应握手失败(错误代码 40)。

我已经对客户端 hellos 的十六进制转储进行了差异比较,唯一明显的差异是时间戳和随机数。

成功:

成功

失败:

失败

此时可能是什么问题?如果客户端问候没有差异,它甚至可能是 TLS 问题吗?我找不到任何可以解释这一点的资源。

即使是关于调查什么的想法也会有所帮助。

编辑:如果其他人遇到这种情况,问题是网络安全软件 BlueCoat。我们为我们的客户端服务器创建了一个绕过规则,现在握手成功了。

1个回答

这可能是网络入侵检测系统(如snort )的行为,它找到了一些拒绝允许其中一个系统连接的理由。

NIDS 系统的工作原理是嗅探网络上的所有数据包,识别可能与可疑行为(例如端口扫描)相关的数据包,然后以某种方式响应。默认情况下,大多数 NIDS 只会在看到某些内容时在日志中写入警报。但是您的网络团队可能变得更加激进,此时他们可能启用了“主动中断”。

假设故障盒用于进行网络扫描,而您的 NIDS 捕获了它。它将记录该 IP 地址,并且每次在网络上看到与该 IP 地址关联的数据包时,它都会向它发送一个伪造的 RST 数据包,看起来它来自服务器的 IP 地址。这将阻止机器连接到服务器,这肯定会阻止攻击。

我建议让您组织的网络安全团队参与进来,看看他们是否有任何关于故障机器的 IP 地址被他们的 NIDS 捕获的记录。