情况 1(安全):
- 网站存在 Heartbleed 漏洞,且使用的证书在 2012-10-21 之前无效
- 网站升级至不受攻击的 OpenSSL 版本
- 网站重新密钥并重新颁发了证书,其失效日期仍为 2012-10-21
- 今天,当我检查该网站时,我发现它不容易受到心脏出血攻击,并且使用的证书的有效期为 2012-10-21
情况 2(不安全):
- 网站存在 Heartbleed 漏洞,且使用的证书在 2012-10-21 之前无效
- 网站升级至不受攻击的 OpenSSL 版本
- 今天,当我检查该网站时,我发现它不容易受到心脏出血攻击,并且使用的证书的有效期为 2012-10-21
据我所知,作为一名从未访问过该网站的最终用户,我很难区分这两种情况。我错过了什么?
仅供参考,情况 1 显然适用于 *.wikipedia.org。他们说这只是 Digicert 重新颁发证书的方式。
答案1
Zmap.io 有证书变更列表前 5,000 个最受欢迎的网站。请注意,此处列出的日期才不是依靠之前无效证书本身的日期,因此应该代表证书上次更改的准确日期。(我使用 Wikipedia.org 来检查这一点,因为他们从 DigiCert 获取证书,而 DigiCert 在重新密钥证书时会将“无效日期”追溯到该日期。)
他们链接到他们使用的原始数据,这些数据可能涵盖的内容远不止前 5,000 个网站,但在我撰写本文时,该网站没有响应。
另一个收集证书指纹的项目是收敛。我还没有探索过是否可以从中提取指纹和日期,但如果您在 HeartBleed 之前使用它,它可能会在站点证书更改时向您发出警告(除非大多数使用它的人已经接受了该站点的新证书)。讽刺的是,在这种情况下没有警告表明您不安全,而警告则表明您是安全的。
答案2
您可以搜索证书颁发机构的 CRL(即http://www.verisign.com/repository/crl.html您可以使用 VeriSign 提供的证书 (VeriSign 的证书) 来查看他们是否最近撤销了旧证书,但要做到这一点,您通常需要旧证书的序列号。如果您有旧序列号,也可以将其与新序列号进行比较。
问题是,如果没有旧证书序列号,您几乎无法判断该证书是否与之前不同。