【问题标题】:Does HSTS header really help against MITM attacks?HSTS 标头真的有助于抵御 MITM 攻击吗?
【发布时间】:2012-11-02 05:07:39
【问题描述】:

我已阅读 OWASP 的 HSTS 备忘单 https://www.owasp.org/index.php/HTTP_Strict_Transport_Security#Browser_Support 并观看了相关视频: https://www.youtube.com/watch?v=zEV3HOuM_Vw

但我仍然不明白这在用户输入 http://site.com 的情况下如何帮助抵御中间人攻击。 OWASP 声称它有帮助。

让我们想象以下场景:中间人从受害者那里获得请求:http://site.com。然后他自己向 https://site.com 发起 HTTPS 请求并将内容返回给用户,剥离 HSTS 标头。攻击者可以看到所有进一步的用户输入。

在我看来,除非我们从一开始就使用 HTTPS,否则无法防范 MITM。

HSTS 标头真的有助于抵御 MITM 攻击吗?

【问题讨论】:

    标签: security http owasp transport man-in-the-middle


    【解决方案1】:

    仅当用户代理之前访问过该站点并且在第一次访问时没有来自 MITM 的干扰时,HSTS 才有帮助。换句话说,您第一次访问该站点时很容易受到攻击,但以后再也不会。

    由于您第一次仍然很脆弱,因此 HSTS 远非完美。但总比没有好,因为它确实可以防止攻击者在您之前访问过该站点之后以您为目标。

    (除非用户第一次小心使用 https:在这种情况下,他们第一次受到保护,并且还可以防止在所有后续访问中忘记使用 https。)

    【讨论】:

    【解决方案2】:

    Firefox 也在开发一个 HSTS 预加载列表:http://blog.mozilla.org/security/2012/11/01/preloading-hsts/

    浏览器通常将 HSTS 信息保存在某种形式的依赖于实现的安全存储中。当然,对于 Firefox 和 Chrome,代码是可浏览的。参见例如https://code.google.com/p/chromium/source/search?q=stsheader&origq=stsheader&btnG=Search+Trunk

    【讨论】: