为什么使用 MD5 哈希验证下载被认为是不安全的?

为什么使用 MD5 哈希验证下载被认为是不安全的?

我已经下载了一个Debian ISOjigdo下载已成功完成,并打印以下消息:

FINISHED --2021-01-22 11:57:20--
Total wall clock time: 4.3s
Downloaded: 9 files, 897K in 1.8s (494 KB/s)
Found 9 of the 9 files required by the template                                                                                                  
Successfully created `debian-testing-amd64-netinst.iso'

-----------------------------------------------------------------
Finished!
The fact that you got this far is a strong indication that `debian-testing-amd64-netinst.iso'
was generated correctly. I will perform an additional, final check,
which you can interrupt safely with Ctrl-C if you do not want to wait.

MD5 from template: l2l48nbYVylT4qrQ0Eq3ww
MD5 from image:    l2l48nbYVylT4qrQ0Eq3ww
OK: MD5 Checksums match, image is good!
WARNING: MD5 is not considered a secure hash!
WARNING: It is recommended to verify your image in other ways too!

Debian 提供三种方法来验证 ISO 映像:sha1sums、md5sums 和 sha256sums。sha1sum 被认为容易受到碰撞攻击但我没有听说过MD5。

为什么 MD5SUM 被认为是不安全的哈希? SHA256SUM 是唯一的吗安全的如何验证下载的 Debian ISO?

答案1

MD5 和 SHA-1 都容易受到 (chosen-prefix) 的攻击碰撞攻击。 SHA2(SHA-256、SHA-384、SHA-512 等)和 SHA3 系列哈希函数则不然。

选择前缀冲突攻击的意思是,给定一个前缀和一个后缀,可以找到两个中间值,使得前缀+中间1+后缀和前缀+中间2+后缀具有相同的哈希值。在系统映像的上下文中,这允许某人生成完美的映像,分发它,然后秘密地更改它以用某些恶意软件替换它的一部分。由于原始版本和修改后的版本具有相同的哈希值,因此修改不会轻易被检测到。

为了MD5,碰撞攻击非常便宜,您可以立即在 PC 上运行它。为了SHA-1,碰撞攻击的成本适中(截至 2020 年约为 4.5 万美元)。对于 SHA2 和 SHA3,即使具有 NSA 级别的计算能力,也没有已知的方法可以生成碰撞攻击。

即使使用 MD5 或 SHA-1,也没有已知的方法可以获取现有图像并找到具有相同哈希值的另一个图像(第二次原像攻击)。原始图像必须经过专门制作才能使攻击成为可能。

相关内容