隐身模式下的 HSTS 行为?

信息安全 tls http hsts
2021-08-22 13:26:31

根据定义,隐身模式不应留下访问过的网站的痕迹。

但是,HSTS(HTTP Strict Transport Security)要求浏览器保留一个请求 HSTS 的主机数据库,并为后续请求提供 HSTS。

这引入了冲突,有两种可能的解决方法:

  1. 浏览器始终尊重在隐身会话中发出的 HSTS 请求,即使在隐身会话之外浏览时也是如此。

  2. 浏览器只接受在隐身会话中为该会话发出的 HSTS 请求。

其中哪些是在流行的浏览器中实现的?

此外,正如评论中所讨论的,隐身会话之外的 HSTS 请求会影响隐身会话内的请求吗?

2个回答

在 Firefox 中,从 Firefox 34 开始,HSTS 集不会在正常浏览模式和隐私浏览模式之间共享。

Internet Explorer (11)不支持 HSTS

在 Chromium 和 Opera 中,HSTS 集对于每个浏览配置文件(正常和隐身)都是唯一的。这可以很容易地通过访问来验证chrome://net-internals/#hsts

  1. 启动一个新的 Chrome 会话以获得干净的状态,例如chrome.exe --user-data-dir=%TMP%\whatever在 Windows 上。
  2. 访问chrome://net-internals/#hsts并在搜索框中输入使用 HSTS 的域,例如“addons.mozilla.org”,然后按“查询”。它不应报告任何域。
  3. 打开一个隐身窗口并访问 addons.mozilla.org。重试第 2 步,观察结果仍然为空。
  4. 在隐身窗口中重复步骤 2,并观察查询是否产生结果。
  5. 前面的步骤表明 HSTS 不会从正常泄漏到隐身。重新开始,但交换最后的步骤并观察反过来也是正确的:HSTS 不会从正常浏览模式泄漏到隐身模式。

使用 Fiddler 并访问启用了 HSTS 的站点

如果之前在非隐身模式中设置,则以隐身模式尊重 HSTS(即立即隧道到 HTTPS,不请求 HTTP url)

  • 铬:是的
  • 火狐:是的
  • IE 11:似乎不尊重 HSTS

如果以前仅以隐身方式访问过网站,则以隐身方式尊重 HSTS(即立即隧道到 HTTPS,不请求 HTTP url)

  • 铬:没有
  • 火狐:没有
  • IE 11:似乎不尊重 HSTS

看起来 IE 打算在 IE 12 中支持它 - http://www.cso.com.au/article/542244/microsoft_confirms_http_strict_transport_security_ie_12/