验证当 DNS 记录指向不受控制的 IP 时没有颁发恶意证书

信息安全 tls 证书 证书颁发机构 dns 让我们加密
2021-08-20 04:42:49

鉴于以下情况:

  1. 受害者VM1从云提供商处租用,并将他/她的 DNS 记录指向该VM1IP 地址
  2. 受害者删除VM1并切换到不同的云提供商,并VM2在那里创建,但忘记修改 DNS 记录(在删除旧 VM 之前,但在创建新 VM 之后)
  3. 受害者的 DNS 记录现在指向一个不受控制的 IP,攻击者可以声称该 IP
  4. 几天后,Victim 发现 DNS 记录没有被修改,并指向该记录 VM2,从而解决了问题
  5. 受害者在 上为域颁发新证书VM2,例如使用 Let's Encrypt

Step 3在和之间的几天内Step 4,攻击者可能已经控制了 DNS 记录所指向的 IP。

攻击者可以使用 Let's Encrypt 颁发新证书,使用该证书,攻击者可以获得域的私钥和证书,有效期至少 3 个月。攻击者将来可以使用这个获得的(并且仍然有效的)证书在受害者之间执行 MITM 攻击,VM2因为该证书将是有效的,即使在受害者修改了 DNS 记录之后也是如此。

受害者是否有可能验证在之间的几天内没有颁发恶意证书Step 3Step 4

  • 在证书透明度日志中搜索新条目是否足够?如果权威机构不公开记录新证书怎么办?
  • 如果无法验证没有颁发证书,受害者是否应该完全停止使用该域(及其子域)?受害者在再次使用该域名之前应该等待多长时间(以确保之前颁发的任何恶意证书都过期)?
1个回答

TL;DR:是的,在任何公共 CT 日志查看器中检查该域并仅查找您购买的证书将使您非常确信没有向该域颁发恶意证书。


是的,我完全同意你的观点,攻击者可以在该 IP 上获得一个 VM,这足以通过自动域验证检查并获得证书。您谈到攻击者从 Let's Encrypt 获得证书,但除非受害者为他们的域设置了 DNS CAA 记录:

CAA 记录允许域所有者声明允许哪些证书颁发机构为域颁发证书。

那么攻击者可以从任何 CA 获得证书,并且一些 CA 提供的证书有效期长达一年。


解决方案:*超级英雄音乐响起*证书透明度来救援!

CT 的问题是某些浏览器强制执行它而其他浏览器不执行,CA/浏览器论坛没有全球要求 CA 登录到 CT。

  • 自 2018 年 4 月 30 日以来,Chrome(我认为也是 Chromium)强烈要求 CT 登录每个网站证书,否则浏览器会抛出错误(来源)。
  • Safari 似乎开始需要它,尽管这对我来说是个新闻,而且该页面的日期为 2021 年 3 月(来源)。
  • Firefox 不需要或检查 CT 日志(来源)。

也就是说,我无法想象有任何主要 CA 只在 Firefox 根存储而不是 Chrome 或 Safari 的根存储中开展业务,所以可以肯定的是,所有 majar CA CT 都会按照 Google 的标准记录他们生成的每个证书.


摘要:是的,在任何公共 CT 日志查看器中检查该域并仅查找您购买的证书将使您非常确信没有向该域颁发恶意证书。