【问题标题】:MD5 Checksums on Downloads下载时的 MD5 校验和
【发布时间】:2016-01-18 03:24:08
【问题描述】:

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

我的理解是,这是为了显示真实性和可信度,但如果是这种情况,网站不能计算并提供他们提供给您的任何文件(恶意或非恶意)的校验和吗?

【问题讨论】:

标签: security hash md5


【解决方案1】:

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

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

网站提供这些的另一个好处是,中间人攻击可以修改传输中的文件(如可执行文件)。这意味着即使您信任站点和主机,也可能存在一些感染文件的中间漏洞。当然,足够高级的攻击可以操纵两者,但如果是这样的话,他们可能就不需要那么麻烦了。

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


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

【讨论】:

  • 这太棒了——感谢您提供如此全面的答案。只是为了澄清一些事情。 1)第三方主机只负责目标文件本身的下载,而原始站点本身将托管哈希(MD5或SHA1)。就像你说的,这是假设你相信散列的主机没有修改文件,因为他们可以很容易地生成一个新的散列,对吗?因此,只要他们是受信任的,第三方可以提供虚假文件的唯一(合理)方式是两者一起工作。对吗?
  • 一起工作,或者如果恶意用户破坏了两个系统。事实上,如果他们破坏了 Web 服务器,他们可以指向不同的主机并产生一个有效的哈希值。无论哪种方式,您都必须信任该网站,但如果它们包含哈希,则您不必也信任文件主机。是为了证明有问题,不一定证明一切都是安全的。
  • 非常好的答案。谢谢@Gray
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多