是否有任何已发表的研究表明对MD5的前像攻击迫在眉睫?

时间:2009-05-04 23:38:39

标签: hash cryptography md5 cryptographic-hash-function

我一直在阅读,因为MD5已破损,破旧,过时且永不被使用。这激怒了我。

事实上,MD5上的collision attacks现在相当容易。有些人将碰撞攻击归结为艺术,甚至可以将它们用于predict elections

我发现大多数MD5“破损”的例子都不那么有趣。甚至famous CA certificate hack也是一次碰撞攻击,这意味着它可以证明该方同时生成了GOOD和EVIL证书。这意味着如果EVIL CA进入野外,可以证明它从拥有良好CA的人那里泄露出来,因此无论如何都被信任。

更令人担忧的是preimage或第二次前像攻击。

对MD5进行原像攻击的可能性有多大?目前是否有任何研究表明它即将来临? MD5是否容易受到碰撞攻击,这使得它更容易遭受前像攻击?

3 个答案:

答案 0 :(得分:12)

在密码学中,建议通常不是通过预测未来来做出的,因为这是不可能做到的。相反,密码学家试图评估已知和发表的内容。为了调整潜在的未来攻击,通常设计密码系统以便有一定的安全余量。例如。通常选择加密密钥比绝对必要的稍长。出于同样的原因,一旦找到弱点就可以避免算法,即使这些弱点只是证明。

特别是,在Dobbertin发现压缩功能发生碰撞后,RSA实验室建议在1996年放弃MD5签名。压缩函数中的冲突并不意味着哈希函数中存在冲突,但除非我们能够找到其压缩函数的冲突,否则我们无法找到MD5的冲突。因此,RSA实验室决定他们不再对MD5的碰撞阻力有信心。

今天,我们处于类似情况。如果我们确信散列函数是抗冲突的,那么我们也可以确信散列函数是抗原图像的。但是MD5有很大的弱点。因此,许多密码学家(包括像Arjen Lenstra这样的人)认为MD5不再具有必要的安全余量,即使在仅依赖于原像抗性并因此建议不再使用它的应用中也是如此。密码学家无法预测未来(所以不要寻找那样做的论文),但他们可以建议采取合理的预防措施来防范潜在的攻击。建议不再使用MD5是一种合理的预防措施。

答案 1 :(得分:2)

我们不知道。

这种进步往往是“突然间” - 有人做出理论上的突破,并找到一种方法,比之前最好的方法要好2 ^ 10(或其他)。

似乎原像攻击可能还有点远; a recent paper声称复杂度为2 ^ 96,用于减少的44轮MD5版本的原像。然而,这不是一个可能性的问题,而是一个人是否足够聪明,能够走到最后一步,并将真实交易的复杂性带入现实的边缘。

那就是说,因为碰撞攻击已经非常真实(one minute on a typical laptop),并且原像攻击可能(或可能不会)即将到来,现在通常认为谨慎转向现在更强大的东西,之前也是如此晚了。

如果碰撞不是您的问题,您可能有时间等待NIST SHA-3 competition提出新的问题。但是如果你有处理能力和备用位,那么使用SHA-256或类似技术可能是一种谨慎的预防措施。

答案 2 :(得分:2)

以密码方式说MD5的图像前阻力已损坏,请参阅this paper from Eurocrypt 2009。在这种正式的背景下,#34;破碎"意味着比暴力攻击更快,即平均复杂度小于(2 ^ 128)/ 2的攻击。 Sasaki和Aoki提出了一个复杂度为2 ^ 123.4的攻击,这是迄今为止唯一的理论攻击,但是每一次实际攻击都建立在不那么强大的理论攻击上,所以即使理论上的突破也会在其媒介上产生严重的怀疑 - 安全。同样有趣的是,他们重复使用了许多已经对MD5进行碰撞攻击的研究。这很好地说明了Accipitridae的观点,即MD5在图像前阻力方面的安全余量随着碰撞袭击而消失。

在2009年使用MD5并且现在使用SHA1的另一个原因是强烈建议不要使用任何应用大多数人都不明白其用例的安全性依赖于哪个属性上。不幸的是,你在问题中证明了我的观点,即2008年的CA攻击不依赖于碰撞阻力的失败,正如caf指出的那样。

为了详细说明,每次(受信任的)CA签署证书时,它还可能以证书签名请求(CSR)的形式签署来自客户的恶意数据。现在,在大多数情况下,所有要签名的数据都可以从CSR和一些外部条件中预先计算出来。这具有致命的副作用,即哈希函数所处的状态,当它要对来自CSR的不可信数据进行哈希时,攻击者完全知道,这有利于冲突攻击。因此,攻击者可以预先计算CSR,该CSR将强制CA散列并签署与仅为攻击者所知的影子证书发生冲突的数据。 CA无法检查在签名之前通常会检查的影子证书的前提条件(例如,新证书不声称是根证书),因为它只能访问攻击者提供的合法CSR。一般来说,一旦发生碰撞攻击并且部分数据由攻击者控制,那么您就不再知道在您看到的数据旁边还可能签署的其他内容。