我有当前的 MITM 吗?

信息安全 hsts
2021-08-09 07:56:12

对于这个问题的简洁性,我深表歉意;我有一个问题。Google.co.uk 在我的浏览器上的 HSTS 失败。

在此处输入图像描述

这是我的问题google.co.uk还是只是我的问题?有人在中间管理我的互联网连接吗?

虽然我可以找到很多网站告诉我 google.co.uk 正在运行,但我无法确定 HSTS 问题是我还是谷歌。我怀疑是我,但想要一些第 3 方确认。

PS:到目前为止,这仅适用于 google.co.uk,不幸的是,snuck.me似乎也没有努力澄清其他网站的非 HSTS 证书。


更新:

关闭十分钟后,google.co.uk 现在再次运行,但是通过使用 snuck.me 我发现以下内容:

在此处输入图像描述

根据浏览器的指纹:

D1:8F:DE:83:4A:68:88:32:DD:CF:C8:6B:0C:74:94:33:02:75:BC:43

根据 snuck.me 的指纹:

42:38:CE:6C:AA:C5:FE:13:A0:5A:56:88:F3:F2:E7:E4:D7:14:07:DA

这是否证实我有 MITM?

2个回答

您的浏览器拒绝了证书,但这不一定是由攻击引起的。

Google.co.uk 在我的浏览器上的 HSTS 失败。

您看到的警告并不特别表明 HSTS 存在问题。只是 Firefox 说:“证书似乎无效。顺便说一下,我们不会让您添加手动例外,因为该站点使用 HSTS。” 1

您在短时间内收到无效证书的原因有很多。这可能是您的 ISP 的故障、路由器的问题、强制门户网站的 SSL 拦截(如 @FedericoPoloni 所述),或者从理论上讲,可能是 MITM 攻击的失败尝试。调查的第一步是检查您实际获得的证书。


之后,您没有正确比较证书:您连接到www.google.co.uk但针对google.co.uk. 这些在技术上是不同的域,根据指定的服务器名称提供不同的证书。

在这里,我正在测试每个指纹-servernameopenssl您应该识别两个指纹:

$ openssl s_client -servername www.google.co.uk -connect www.google.co.uk:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin
SHA1 Fingerprint=D1:8F:DE:83:4A:68:88:32:DD:CF:C8:6B:0C:74:94:33:02:75:BC:43
$ openssl s_client -servername google.co.uk -connect www.google.co.uk:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin
SHA1 Fingerprint=42:38:CE:6C:AA:C5:FE:13:A0:5A:56:88:F3:F2:E7:E4:D7:14:07:DA

1 HSTS(HTTP 严格传输安全)是 Web 服务器可以发送的标头,以指示客户端永远不应通过纯 HTTP 连接到站点(在指定的时间内)。您的浏览器在您之前一次访问www.google.co.uk或预加载它时选择了该标题。标头的副作用之一是 UI 不再允许您通过添加异常来忽略证书警告。

检查系统中的时间。有时,当我的时钟(系统时间)错误或发生时间未同步时,我会收到此错误。