【发布时间】:2016-01-18 03:24:08
【问题描述】:
为什么网站在文件下载时提供 MD5 校验和?例如,https://www.apachefriends.org/download.html 的 XAMPP。
我的理解是,这是为了显示真实性和可信度,但如果是这种情况,网站不能计算并提供他们提供给您的任何文件(恶意或非恶意)的校验和吗?
【问题讨论】:
为什么网站在文件下载时提供 MD5 校验和?例如,https://www.apachefriends.org/download.html 的 XAMPP。
我的理解是,这是为了显示真实性和可信度,但如果是这种情况,网站不能计算并提供他们提供给您的任何文件(恶意或非恶意)的校验和吗?
【问题讨论】:
确实,如果托管文件的站点遭到入侵,这些哈希值将没有什么价值 - 但通常会有第三方主机(以节省带宽,或提供备份源)。因此,如果我在我的站点上为文件提供了哈希值,但我使用第三方主机,您可以仔细检查该值以确保文件没有被文件主机修改。
在您的情况下,安装程序实际上是由sourceforge.net 提供的(至少在我尝试过时),具有讽刺意味的是,getting a lot of flack recently 就像我们描述的那样用于修改文件。所以,仔细检查哈希可能是个好主意!
网站提供这些的另一个好处是,中间人攻击可以修改传输中的文件(如可执行文件)。这意味着即使您信任站点和主机,也可能存在一些感染文件的中间漏洞。当然,足够高级的攻击可以操纵两者,但如果是这样的话,他们可能就不需要那么麻烦了。
因此,散列值并不能说明文件是安全的。这是一种查看提供文件的主机是否提供相同文件的方法。如果您不信任该网页,那么哈希就没有价值(安全方面)。
您没有问这个问题,但同时提供 MD5 和 SHA1 哈希值的一个原因是,虽然 to create a file with an MD5 collision 和在某些情况下 SHA-1 can be broken too 可能是可能的,但我还没有听说过任何情况下您可以生成对两者都存在冲突的恶意文件。网站计算多个哈希是微不足道的,但对于攻击者来说,创建一个与真实文件“双重”碰撞的恶意文件在计算上是不可行的(据我所知!)。
【讨论】:
MD5 等哈希函数验证文件的完整性。当您将哈希值与从经过身份验证的来源(在此示例中为 XAMPP 网站)接收到的哈希值进行比较时,将提供真实性验证。哈希函数可以针对任何文件或数据流运行,所以是的,网站可以计算并提供任何文件的校验和,无论是否恶意。
【讨论】: