下载中的MD5校验和

时间:2015-10-19 17:13:52

标签: security hash md5

为什么网站会在文件下载时提供MD5校验和?例如,https://www.apachefriends.org/download.html处的XAMPP。

我的理解是,它是为了显示真实性和可信度,但如果是这样,那么网站无法计算并提供他们向您提供的任何文件(恶意或非恶意)的校验和?

2 个答案:

答案 0 :(得分:5)

确实,如果托管该文件的网站遭到入侵,这些哈希值几乎没有价值 - 通常会有第三方主机(为了节省带宽,或者提供备用资源)。因此,如果我在我的网站上为该文件提供哈希,但是我使用第三方主机,您可以仔细检查该值以确保该文件未被文件主机修改。

在您的情况下,安装程序实际上是由sourceforge.net提供的(至少在我尝试时),具有讽刺意味的是,getting a lot of flack recently用于修改文件,就像我们描述的那样。所以,仔细检查哈希可能是一个好主意!

网站提供的另一个好处是因为MitM攻击可以修改传输中的文件(如可执行文件)。这意味着即使您信任该站点和主机,也可能存在一些感染该文件的中间漏洞。当然,一个足够先进的攻击可以操纵两者,但如果是这样的话,他们可能不需要去解决这个问题。

因此,哈希不是说文件安全的方式。这是一种让您查看提供文件的主机是否提供相同文件的方法。如果您不信任该网页,那么哈希就没有价值(安全方面)。

你没有问过这个问题,但是同时提供MD5和SHA1哈希的一个原因是虽然有可能to create a file with an MD5 collision,在某些情况下SHA-1 can be broken too,我还没有听说过任何可以生成两者都是冲突的恶意文件的情况。对于网站来说计算多个哈希值是微不足道的,但是攻击者在计算上不可能创建一个“双重”与真实文件冲突的恶意文件(据我所知!)。

答案 1 :(得分:1)

MD5等散列函数可验证文件的完整性。将哈希值与从经过身份验证的源(在此示例中为XAMPP网站)中收到的哈希值进行比较时,会提供真实性验证。可以针对任何文件或数据流运行哈希函数,因此,网站可以计算并提供任何文件的校验和,无论是否是恶意文件。