有没有办法绕过HSTS协议?

Ray*_*Ray 2 networking security

有没有办法绕过如今已被 Google 服务、银行服务等许多网站使用的 HTTP 严格传输协议(HSTS)?

我知道 HSTS 协议强制 Web 客户端使用安全传输 (HTTPS),即证书、密钥以加密形式发送。是否可以以纯文本格式发送它们?Web 服务器是否将其接受为纯文本

我看到一个博客,它说通过在网络中实施 MITM(中间人)攻击是可能的。这是真的吗?

use*_*ser 5

RFC 6797中详细描述的 HTTP 严格传输安全性的目的是确保根据相应站点的策略安全地发送请求。它本身并不是一个安全协议;它只是指示 Web 浏览器在特定主机和预定时间段内强制使用安全传输 (HTTPS) 而不是不安全传输 (HTTP)。

为主机禁用 HSTS 有几种可能性,但它们都需要访问加密 HTTPS 流的明文数据。这基本上意味着,如果您处于禁用主机的 HSTS 的位置,那么您已经处于能够操纵与该主机的通信的位置,因此您不需要为该主机禁用 HSTS。

最明显的可能性是 RFC 的第 6.1.1 节中说明的内容,将 max-age 指令设置为 0。这将导致兼容客户端(Web 浏览器)从其已知 HSTS 主机列表中删除主机名.

另一种方法可能是直接操作浏览器的 HSTS 存储。浏览器供应商可以通过使用各种加密技术(已经为其编写代码,因为无论如何 HTTPS 都需要它)或通过权限分离使这变得更加困难。

但是,即使你做到这一点,HSTS头和/或永久重定向为使用HTTPS可能是到同一主机的下一个请求,其中重传会造成主机的安全状态,由客户端重新建立对服务器指定的持续时间。

RFC 的第 12 节为客户提供了实施建议。特别是,第 12.1 节指出,在出现与安全相关的错误时,不应有用户追索权。

但是,当然,由于 HSTS 只是一种告诉客户端对给定主机名使用 HTTPS 而不是 HTTP 的机制,因此所有针对 HTTPS 的相关攻击仍然存在。这意味着,例如,如果您可以控制客户端的根证书存储,或者如果您能够为您控制其私钥的主机获取证书,您就有能力成功进行 MITM 这样的会话。这不受特定主机名上是否存在 HSTS 的影响。

通过将正确的DNSSEC与客户端进行正确的DANERFC 6698RFC 7218)验证相结合,可以使许多针对 HTTPS 的攻击变得更加困难。例如,HSTS、DNSSEC 的正确验证和 DANE 的正确验证的组合可能会使联想的 Superfish SSL 拦截代理变得不可能。