我以为他们在那里是为了安全。检查文件是否未被篡改。但可以肯定的是,如果有人能够修改文件,那么他们也能够使用哈希修改页面!
这实际上提供了什么安全性?
他们通常在那里只是为了确保您下载完整且正确。
它确实有助于解决一个与安全相关的问题:恶意修改是由于目标机器上运行的木马插入自身而发生的。这本身不是一个“有针对性的”攻击——木马只是“感染”它可以“感染”的任何 exe——不会聪明到修复散列。
如果从镜像位置下载文件,它会提高安全性。
例如,apache.org 提供了许多镜像下载位置以减少其服务器上的负载。但是,他们无法控制这些位置上文件的有效性。因此提供了 MD5 校验和:校验和文件总是从 apache.org 下载,而不是从镜像下载。
这不仅仅是为了安全。提供了哈希值,以便您可以检查您下载的文件是否已损坏。
是的,它是为了确保文件的完整性。
假设您从另一个来源获得可执行文件,例如从不同的站点,CD/DVD,您可以确定您使用的是正确的可执行文件。
MD5 用于检查您下载的文件是否已正确下载,它通常以大文件作为 Linux 发行版的 ISO 来完成。
实际上,仅 MD5 或 SHA1 不足以验证文件的完整性。您需要使用 MAC 或 HMAC。否则,长度扩展攻击是可能的。
正确的做法是在列出所有文件及其哈希值的 Web 服务器上提供哈希值。与服务器的连接必须通过 SSL/TLS 以确保服务器是正确的服务器而不是冒名顶替者。
简而言之 - 将哈希值从文件中排除在外。