我们如何撤销为我们的域颁发的所有 ssl 证书?

信息安全 tls 公钥基础设施 证书颁发机构 证书吊销
2021-09-10 19:55:24

在 hostmaster@domain.com 电子邮件被泄露后,我们发现有人
为我们的域颁发了域验证 SSL 证书。现在我们希望撤销所有此类证书。
有没有办法找到由不同 SSL 提供商颁发给我们域的所有证书?

2个回答

没有所有已颁发证书的全局目录(X.509旨在支持目录,但在实践中从未存在过)。您将不得不联系“所有 CA”并很好地询问他们。基本上,这意味着访问他们的网站,并使用“我丢失了密码”功能来重新控制您的帐户(如果存在)。详细信息因 CA 而异。

严格来说,可能的 CA 的数量是没有限制的。您可以从通常的操作系统或浏览器使用的根 CA 开始,但是这些 CA 中的每一个都可能已经为维护自己的客户列表的子 CA 颁发了证书。例如,我自己的域证书是由我的注册商颁发的,他自己是一个中间 CA,他的证书是从另一个根 CA 获得的。因此,您无法确定是否检测到并撤销了以您的名义颁发的所有证书。

但是,有一些减轻处罚的情况:

  • 要获得假证书,攻击者必须为它们付费这可能涉及被盗的信用卡号码,但是当付款退回时,CA 会注意到它(“我的钱在哪里?”)并且可能会自动撤销有问题的证书。另一方面,如果信用卡是真实的,那么它可能指向攻击者。

  • 同样,由于攻击者必须以某种方式付款,所以他可能专注于几个 CA,而不是一百个。

  • 证书在一两年后过期(因为 CA 希望他们的客户成为经常性客户)。所以到 2016 年一切都将恢复正常。

  • 无论如何,许多操作系统或浏览器都不会检查撤销。因此,吊销证书很好,但并不能真正解决问题。

部分解决了根本问题,您可以使用Public-Key-Pins标头来限制哪些证书对您的域有效(因此,如果在第一次连接到您的站点时使用被盗证书,则只能由中间人使用)。

您还可以Public-Key-Pins-Report-Only用于获取有关 Pin 验证失败的通知。

两个标头都在draft-ietf-websec-key-pinning中定义。

恐怕要真正确定攻击者是否请求更多证书,您确实必须询问所有 CA(不过,如果您真的走这条路,那将是一篇很棒的博客文章)。