我可以通过在 DNS 中存储 SSL 密钥来提高网站安全性吗?是否需要 DNSSec?威胁模型可用吗?

信息安全 网页浏览器 网络服务器 威胁建模 tls
2021-09-06 11:36:06

鉴于最近对 SSL/TLS 通信的攻击,人们一直在询问提高 SSL 网络服务器通信安全性的方法。以下链接中提到了几个很好的解决方案(示例 1、2、3博客发布

普遍认为,如果网络管理员将网站的 SSL 公钥(或其哈希)上传到 DNS,则可以提高安全性

所提出的解决方案的缺点是:

  • 针对此特定解决方案的所有建议都需要 DNSSec,这会增加复杂性并产生相关成本。

  • 客户端软件(浏览器、操作系统)需要更新才能实际检查 DNS 的证书信息

本着立即解决手头非常广泛的安全问题的精神,我质疑 DNSSec 的假定要求通过删除此要求,并简单地允许网站所有者通过 DNS 指定他们想要使用的 SSL 中间体(或特定公钥),我们允许内容发布者(或电子商务网站)声明什么是可信的,从而使一些攻击向量更难克服。

问题

  1. 公钥/哈希分发是否需要DNSSec ?

    • 根据此链接,对于互联网上的大多数用户来说, DNS 黑客攻击并不是问题。值得注意的例外包括 WiFi 用户和某些 SoHo 路由器是值得关注的。如果这些边缘情况只需要 DNSSec,为什么要延迟边缘技术的实施呢?
  2. 是否有任何威胁模型比较使用常规 DNS 作为存储库而不是 DNSSec?

    • 这个问题的前提假设虽然使用常规 DNS 并不完美,但它确实在保护用户免受普遍的、系统范围的漏洞方面取得了长足的进步。
  3. 应该存储什么,散列或完整的公钥?

  4. 供应商支持 SSL/TLS 证书的这种额外验证有多困难?

4个回答

公钥/哈希分发是否需要 DNSSec?

是的。必须有一个受信任的起点,在这种情况下,这就是根域的签名。从那里,每个相应的子域都被签名,因此有一个连续性链来证明您的请求在任何查询步骤都没有被劫持。

是否有任何威胁模型比较使用常规 DNS 作为存储库而不是 DNSSec?

DNS 欺骗已经是一种常见且低门槛的攻击方法。DNSSEC 的实施主要是为了防止这种情况。在与未经身份验证的 DNS 查询相同的通道中验证服务器的证书并不能提供真正的安全增强。

应该存储什么,散列或完整的公钥?

从理论上讲,可以将其中任何一个存储到有效的相同安全级别。但是,DNSSEC 旨在存储整个密钥以对区域进行签名,因此我认为最好还是坚持为每个应用程序存储完整的密钥和签名。

供应商支持 SSL/TLS 证书的这种额外验证有多困难?

我认为代码的复杂性会低于验证 SSL 证书的复杂性(X.509 解析非常麻烦)。我怀疑大多数浏览器供应商可以用相对较少的努力推出它。定期编写更复杂的插件系统(例如 Convergence.io)。

现在在 Chrome 稳定版中查看DNSSEC 证书

这允许站点使用 DNSSEC 而不是传统的证书,并且针对当前不使用 HTTPS 或自签名证书的站点。

应该注意的是,这些 DNSSEC 证书根本不使用 DNS 客户端-服务器协议,因此您的计算机不会执行任何额外的 DNS 请求:

这些证书是自签名 X.509 证书,在扩展中嵌入了 DNSSEC 链。另一种方法是让客户端自己执行 DNSSEC 查找。

请记住,这只是一个实验性功能:

最有可能的结果是没有人使用它们,我在另一年的时间里把代码拿出来。

基于 DNS 的命名实体身份验证 (DANE)是一个标准跟踪 RFC,它允许网站所有者将给定主机的公钥放入 DNS。然后,客户端可以使用 DNS 来验证当前 SSL 会话的完整性。

RFC 的第 1.2 节描述了如何使用 DANE 来信任不在受信任的根存储中的证书。(阅读:本地生成/免费证书)

显着要求

  • 需要 DNSSec
  • 必须使用安全传输,例如 TSIG、SIG 或 IPSec
  • 完整证书或“SubjectPublicKeyInfo”存储在 DNS 中
  • 上一个项目符号中的两项中的一项将在 DNS 中存储或散列
  • 通过为同一主机添加多个记录来支持证书轮换/翻转

根据此链接,对于互联网上的大多数用户来说,DNS 黑客攻击并不是问题。值得注意的例外包括 WiFi 用户和某些 SoHo 路由器是值得关注的。如果这些边缘情况只需要 DNSSec,为什么要延迟边缘技术的实施呢?

DNS 黑客攻击当然是最近 SSL 黑客攻击所关注的同一个人的问题:压迫政府下的人。通过控制 ISP,他们可以(也许会这样做?)通过 DNS 大规模阻止/拦截流量。

公钥/哈希分发是否需要 DNSSec?

是的。如果你的攻击者能够 MITMing 你的 HTTP 连接,强迫你使用 SSL,那么他也很可能能够 MITMing 你的 DNS。

是否有任何威胁模型比较使用常规 DNS 作为存储库而不是 DNSSec?

不知道,但试试这个:选择 SSL 而不是普通的 HTTP 是为了减轻一些与选择 DNSSEC 而不是 DNS 相同的威胁。两者都假设攻击者能够拦截您的流量。