浏览器自动将 HTTP 重写为 HTTPS 的安全优势?

信息安全 tls http hsts
2021-08-27 00:44:31

我经常使用通常拦截的访客 WiFi;尝试导航到任何 HTTP 网站,它会将您重定向到“同意我们的 ToS”页面,之后它将以正常方式允许来自您的 MAC 地址的任何流量。

通常我只是选择任何网页并点击重新加载,但这个 WiFi 不喜欢https://. 查询必须是http://.

好的,所以我进入地址栏并从 HTTPS 中删除“s”,然后点击“go”。例如http://www.amazon.com/usual-Amazon-URL-here

然后我的本地浏览器将“s”放回去它在访客 WiFi 阻止的端口 443 上进行查询。它必须是本地浏览器这样做,因为它实际上没有互联网。我可以保证这发生在亚马逊的 Silk 浏览器、Android 上的 Firefox 以及我相信Safari/iOS 上。

这是 Web 浏览器客户端在浏览器知道站点支持 HTTPS 时强制使用 HTTPS 的策略吗?这能抵御什么威胁?

2个回答

我建议您研究NeverSSL,这是一个始终通过纯 HTTP 提供服务的简单站点。

如果您确定是您的浏览器执行此操作,而不是服务器端的重定向,则可能是称为HTTP 严格传输安全 (HSTS)的安全功能的结果。当网站只想通过加密连接提供服务时,它会设置一个 HTTP 标头,指示浏览器仅通过 TLS 进行连接。一些站点甚至可能使用HSTS 预加载,默认情况下重定向策略被硬编码到浏览器中,而不是通过网络上的 HTTP 标头设置。各种 HSTS 旨在抵御 MITM 攻击,这些攻击利用您的浏览器非常乐意留在网站的非加密版本上这一事实,即使 HTTPS 可用。根据安全标头, 亚马逊使用 HSTS。这解释了您被重定向的原因。

在某些浏览器中,您可以使用调试器工具验证浏览器是否因为 HSTS 而将 http:// 重写为 https://。例如,在谷歌浏览器中:

  1. 按 F12 打开调试器工具并转到网络选项卡
  2. 在地址栏中访问http://www.amazon.com/
  3. “网络”选项卡将快速填满所有被请求 URL 的列表;滚动到顶部

第一个请求将针对http://www.amazon.com/当我选择该请求时,在右侧框中我会看到这些行(以及其他行):

请求网址:http://www.amazon.com/  
状态码:307 内部重定向  
地点:https://www.amazon.com/  
非权威原因:HSTS