Facebook.com 返回无效的安全证书

Facebook.com 返回无效的安全证书

我所在的大学网络由 Cyber​​roam 保护。最近,他们对安全策略做了一些更改,并“屏蔽”了 facebook.com。

我以前总认为,https由于连接是加密的,所以阻止网站是不可能的。

Q1. 他们是如何实现的?Q2. 是否可以通过此连接以任何方式访问 facebook.com?

我收到错误:This connection is untrusted. This site uses HTTP Strict Transport Security (HSTS) to specify that Firefox only connect to it securely. As a result, it is not possible to add an exception for this certificate.

谢谢

答案1

HTTPS 中的 TLS 可以保护 HTTP 请求,但无法保护较低层。也就是说,仍然可以通过检查 TLS“服务器名称指示”标头(与 HTTPS 虚拟托管使用的功能相同)或 IP 地址(如果客户端未通过 TLS SNI 请求任何特定服务器)来阻止 HTTPS 网站,这两种方式都会在 TLS 隧道之外发送。


但是,您遇到的 Cyber​​roam 不会做任何事;它使用强力方法 - 它会拦截所有 HTTPS 握手,假装自己是客户端来解密连接,然后检查连接,最后使用自己的 TLS 证书重新加密。因此,无需进行一次 TLS 握手...

  • 网络服务器⇆浏览器

...你现在有两个:

  • Web 服务器 ⇆ 防火墙 (假装是浏览器)

  • 防火墙(假装是服务器)⇆浏览器

基本上,你的防火墙正在执行中间人攻击针对你。


由于防火墙显然没有 Facebook 真正的 TLS 证书,因此它会生成自己的证书。

现在,通常,因为 Web 服务器有一个无法识别的证书,浏览器会询问您是否要忽略该证书,或者是否要转为安全。(在公司环境中,防火墙的证书甚至可能预装到所有工作站。)

然而,当你上次访问 Facebook 时,它的服务器使用以下方式通知浏览器高速传输系统它应该被锁定为“安全”模式。也就是说,只要 Facebook 网站上的 HSTS 处于活动状态,即使您尝试通过 访问该网站http://,浏览器也会始终使用 HTTPS,并且它不会让您覆盖像您遇到的这种证书错误,因为没有任何方法可以将 Cyber​​roam 与真正的恶意攻击区分开来。

此外,Firefox 和 Chrome 甚至对某些网站(包括 Google 和 Facebook)的证书信息进行了硬编码,因此即使您的操作系统信任了假证书,您仍然无法访问 Google,因为浏览器知道“只有 X 和 Y 机构可以为 google.com 颁发证书,其他机构都不能”。 (我认为这叫做证书固定或预加载,或类似的东西?)

相关内容