如果您使用 HSTS,是否需要 DNSSEC?

信息安全 hsts dnssec
2021-08-27 17:01:37

我试图了解 DNSSEC 的好处。

如果用户访问我的站点example.com并且 DNS 缓存被污染,将用户重定向到坏人的 IP,会发生什么?

我已启用 HSTS。

我的理解是用户会看到“您的连接不是私人屏幕”并且无法继续(除非他们使用的是不支持 HSTS 的旧版浏览器,例如 IE 10)。

坏人能否将我的网站重定向到绕过 HSTS 保护的另一个域,或者 HSTS 是否会因为找不到有效证书而停止重定向?

启用 DNSSEC 是否会阻止坏人毒害缓存,而用户不会更聪明,或者他们会看到不同的错误页面?

我知道 DNSSEC 不保护最后一跳。

2个回答

这些是非常不同的技术,它们并不真正相互依赖。事实上,一些论点认为 DNSSEC 通常是不必要的。我会说不,如果正确使用 HSTS(长时间,预加载),则不需要 DNSSEC。大多数客户端甚至不使用 DNSSEC,因此使用它的影响可能很小。

我认为您正确地观察到 DNSSEC 对通过 HTTPS 服务并配置了 HSTS 的网站的影响是最小的。在这种情况下,无论 DNS 响应是否正确,浏览器都会拒绝加载该网站,除非它提供了有效的证书(假设该网站在 HSTS 预加载列表中或浏览器已经看到它)。

另请注意,这些技术在客户端的不同层上工作。虽然浏览器知道 HTTPS/HSTS 情况,但它不知道也不关心 DNS/DNSSEC 的状态,因为这通常由操作系统的解析器或上游服务器处理。如果不使用 DNSSEC 的浏览器扩展,它只能知道是否有响应返回。

DNSSEC 在其他非 Web 场景中大放异彩。在邮件领域,一个示例是 DANE(基于 DNS 的命名实体身份验证)。它使用 DNS 检索各种服务器的证书信息。DNSSEC 在这里对于保护 DNS 流量不被篡改至关重要,因为这种篡改将允许攻击者替换他们的证书指纹。其他非 Web 应用程序可能对 DNS 完整性有类似的要求。

假设您正在访问 www.mybank.com

DNSSEC 确保您要访问的 IP 地址(对于 www.mybank.com)实际上属于 MyBank。这当然是在密码学上发生的。

一旦你有了正确的 IP 地址,现在你的浏览器就会向(受信任的)IP 发送一个 HTTP 请求。HSTS 现在可确保在进行 HTTP 查询时,防止基于非 SSL 的通信。这是通过 HSTS 标志完成的。因此,如果流氓行为者在您的流量中间人,他们不能强制通过非 SSL HTTP 进行通信。