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

GAD*_*D3R 10 security debian hashsum debian-cd

我已经下载了Debian的ISO使用jigdo,下载已成功完成,并打印以下信息:

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!
Run Code Online (Sandbox Code Playgroud)

Debian 提供了三种验证 ISO 映像的方法:sha1sums、md5sums 和 sha256sums。sha1sum 被认为容易受到碰撞攻击,但我对 MD5 一无所知。

为什么 MD5SUM 被认为是不安全的哈希?SHA256SUM 是验证下载的 debian ISO的唯一安全方法吗?

Gil*_*il' 17

MD5 和 SHA-1 都容易受到(选择前缀)碰撞攻击。SHA2(SHA-256、SHA-384、SHA-512……)和 SHA3 系列的哈希函数不是。

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

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

即使使用 MD5 或 SHA-1,也没有已知的方法可以获取现有图像并找到具有相同散列的另一个图像(原像攻击)。必须特别制作原始图像才能使攻击成为可能。

  • 碰撞攻击意味着攻击者可以生成一对 ISO,其中一个是无辜的,另一个是恶意的,两者具有相同的 MD5 和。这*不*意味着攻击者可以生成与其他人的无辜 ISO 具有相同 MD5 总和的恶意 ISO(这将是原像攻击)。 (4认同)
  • 您描述的是选择前缀碰撞攻击,这比常规碰撞攻击更困难。但是,是的,MD5 仍然不安全。 (2认同)