给定一个 MD5 校验和和一个随机文件。是否可以添加后缀来匹配校验和?

给定一个 MD5 校验和和一个随机文件。是否可以添加后缀来匹配校验和?

我经常听说 MD5 不安全。但我不确定它是如何被操纵的。我不想成为那种在不了解细节的情况下只是重复“MD5 不安全”的人。

假设我有一个 128 位 MD5 校验和。并且我有一个受我控制的恶意文件,当前价值 5000 美元的服务器能否在一周内生成一个“修复程序”,将其附加到文件并产生相同的 MD5 校验和?

答案1

这取决于你所说的‘控制’的具体含义。

如果你作为攻击者可以选择应该有相同哈希值的文件,这就是密码学家所说的碰撞(攻击)而对于 MD5 来说现在非常容易。如果你可以自由选择两个文件,则只需几秒钟;如果你必须满足相当弱但常见的约束,如“它看起来像 PDF”或“它看起来像 tar”可能几小时到几周

另一方面,如果你有一个预先指定的文件(通常是一个“好”文件),并且你必须找到另一个具有相同哈希值的文件(“坏”),那么对于密码学家来说,这不是一个碰撞,而是第二个原像. 最广为人知的 MD5 原像攻击仅比 2 123.4的暴力破解略胜一筹。

你的 5000 美元可能可以买六台好的 GPU,这样你每秒可以进行大约 2 37 次试验(大约 1000 亿次)。这大约是每年 2 62 次,所以平均需要大约 2 60年(大约 1,000,000,000,000,000,000,也就是一千万亿)。用更方便的说法,那就是约为宇宙年龄的一亿倍。您的计算机可能用不了那么久。

答案2

你能做的最好的事情就是查看关于查找 MD5 碰撞的实际论文。还有各种工具可以做到这一点。StackOverflow 上对此的一个好答案是创建自己的 MD5 碰撞如果您对亲自阅读该论文不感兴趣。

大多数冲突查找器可能对查找文件修改不感兴趣,而是直接查找冲突。毕竟,如果 MD5 检查通过,并且用户运行文件,则表明您的恶意文件正在运行。

相关内容