Web 证书攻击的复杂性

信息安全 密码学 tls 哈希
2021-09-08 18:30:45

不久前我听说有人利用 md5 的弱点来创建一个 Web 证书,该证书具有与不同证书相同的 md5。

他们能够通过糟糕的发行政策创建证书,我认为他们的计算速度为 200 ps3。

所以我想知道,是否有可能在整个网络上抓取证书并使用所有这些证书创建一个数据库,并使用蛮力创建一个与数据库中具有相同 md5 的证书?

So my question: Does anyone know the math behind this?我的意思是有多少个独特的 md5?我认为它是 32^16。md5 有多少证书(包括过时的,它们仍然可以工作)然后估计普通计算机的哈希/分钟。

我知道很多证书都改成了sha1。我必须说,我不认为这是可能的,但它的想法已经困扰了我很长时间,我需要输入!有很多 md5,但我有一台速度很快的电脑;)

2个回答

由于很容易找到碰撞,MD5 已被弃用:几年前,我写了一篇论文,展示了如何在一分钟内生成 MD5 碰撞。从那以后,这已经被改进到只有几秒钟。

使用相同的 MD5 和生成两个不同的 postscript 文档利用了 postscript 是一种计算机语言并且 postscript 查看器评估该语言这一事实​​。这是一个巧妙的技巧。它的工作原理是这样的:File1 有一个二进制块 Q,然后是一些代码,然后是文档 A,然后是文档 B。当您显示 File1 时,它会运行检查 Q 然后显示 A 的代码。

现在我们制作一个名为 File2 的 File1 的副本。我们将 Q修改为与 Q 具有相同 MD5 和的 Q'。这意味着 File2 具有与 File1 相同的 MD5 和,因为没有其他任何变化。但是现在当我们显示 File2 时,它运行相同的代码,看到 Q' 并输出文档 B。可爱!

但这里我们使用的是在 MD5 中很容易找到冲突的事实没有人(据我所知)可以反转任意 MD5 摘要,也没有人可以找到第二个输入来匹配给定文件的 MD5 总和(这称为“第二原像电阻”)。

所以你上面的建议仍然不可行。您要求的数学运算:MD5 输出 128 位,因此随机摘要匹配给定摘要的机会是 $1/2^{128}$,因此需要预期的 $2^{128}$ 试验才能重现所需消化。

现有的攻击是关于冲突的:攻击者构建了两个证书,这些证书哈希到相同的 MD5,但具有不同的内容。其中之一是“良性”(它包含攻击者的名称),这是攻击者发送给 CA 以进行签名的名称。CA 对其进行签名,因为它是一个完全有效的证书请求(它来自攻击者并且确实包含攻击者的名称)。由于 MD5 碰撞,签名在插入另一个时也是可验证的证书。因此,攻击者在证书上获得了 CA 签名,他在该证书上选择了不受 CA 控制的内容。细节有点复杂,因为攻击者必须以这样一种方式找到冲突,即两个生成的证书都是“结构上有效的”。

您要求的是非常不同的东西:您询问的是攻击者试图生成一个哈希值与现有证书相匹配的证书,而攻击者最初并未生成该证书这称为第二次原像攻击,通常比发现碰撞更难。特别是,目前 MD5 在第二个原像方面没有已知的弱点。

有 2 128个可能的 MD5 输出(即 16 32,而不是 32 16)。一般来说,如果您有N条输入消息m 1 , m 2 ,... m N ,并且您想构建一个与所有m i不同的新消息m ,但要使m的 MD5等于 MD5 m i之一(任何都可以),那么最著名的攻击方法就是简单地尝试随机消息m直到匹配。该操作的平均成本为2 128 /N

那里的SSL 证书可能远少于 2 32 个,因此这意味着攻击成本将至少为 2 96 个,这在现有技术下是完全不可行的。所以这种攻击是行不通的。破解 CA 公钥会容易得多(也不可行,但如果被攻击的 CA 密钥是 1024 位 RSA 密钥,则更容易破解大约 100 万倍)。

实际上,对于证书,攻击比这更昂贵,因为证书包含颁发 CA 的名称。拥有来自 CA 的匹配签名(例如,通过使用相同的 MD5)不足以使生成的证书有任何用途:它还必须与 CA 正确“链接”,这意味着包含 CA 名称作为“颁发者名称” . 因此,上面公式中N不是野外存在的证书总数,而是给定 CA颁发的证书总数,您必须专门针对这些证书这更低,会产生更高的攻击成本。