为什么 MD5 和被认为是一种验证文件完整性的方法,而可以简单地修改提到它的页面?

Why is an MD5 sum considered a means to authenticate the integrity of a file, when one can simply modify the page where it is mentioned?

我听说有人在大文件上使用像 MD5 或 Sha1 这样的散列的原因是因为很难篡改大文件并获得相同的散列。我的问题有些不同:

在每个 link 指向大文件(例如 Debian iso 等)的网页上,通常 link 指向另一个具有哈希的页面,或者在同一页面上列出页。如何阻止黑客 MITM 攻击篡改 .iso 图像并在页面上插入新签名?如果他有能力让用户下载他的 ISO(而不是原始版本),那么让同一个用户下载具有哈希正确的修改后的网页应该相对简单?

是否仅仅因为散列小得多就有人会注意到页面上的变化而具有威慑力?

如果哈希列在可通过 https 访问的页面上,则该页面的证书应该可以保证您正在下载的哈希的真实性。对 https 进行 MITM 攻击应该是困难的部分。如果您通过 http 下载哈希,那么 MITM 攻击会起作用是正确的。

一些发行版会生成 ISO 的加密签名散列,您应该有他们的 public 密钥来验证这一点。

OpenBSD 不依赖于 https...它做了一些不同的事情 - https://www.openbsd.org/papers/bsdcan-signify.html