Kar*_*elė 20 networking files checksum
我经常在可供下载的文件旁边看到校验和。这种做法的目的使我难以理解。显然是为了检测损坏的文件,但是这种损坏的原因可能是什么?
文件肯定不会因传输错误而损坏,因为这些错误是由网络协议检测到的。当然,任何可以出于恶意目的更改文件的攻击者也可以同样更改给定的校验和。我们是否在检查硬盘驱动器错误?写作时比阅读时更容易发生这些吗?我错过了什么重要的东西吗?
PSk*_*cik 10
当然,任何可以出于恶意目的更改文件的攻击者也可以同样更改给定的校验和。
不总是。
您可以拥有一个内容链接以及一个在 HTTPS 上提供的校验和。该链接可以是未加密的链接——普通的 HTTP 或 FTP 或其他东西。
不利的一面是,未加密的连接很容易成为中间人,而有利的一面是,它可以更快或更方便网站管理员(所需的计算资源更少,并且网络有机会缓存这些东西)。
如果校验和是在不间断的受信任连接上提供的,并且有效负载与校验和匹配,则您将获得两全其美(假设校验和是加密安全的)。
也就是说,您提醒我,有一些发行版声称是“安全的”,但他们的网站仅使用 HTTP,其图像链接也是如此。
例子:
这有点有趣,因为你不可能变得更不安全了。即使他们自己不是恶意的,任何 ISP 都可以轻松地用假货替换网站和图像,让某人安装一个被操纵的操作系统,同时使他们看起来像是获得了一个“安全”的 Linux 发行版是最终的抄袭。
检测损坏并不完全正确。确定软件的完整性将是一个更正确的用法。通常,软件不是从单个服务器分发的。相同的软件可以从许多服务器分发。因此,当您下载特定软件时,会选择离目的地最近的服务器作为下载源,以提高下载速度。然而,这些“非官方”(第三方)服务器并不总是可信的。他们可能/可以在程序中包含木马/病毒/广告软件/后门,这是不好的。
因此,为了确保下载的软件与相关组织发布的“官方”软件完全相同,将使用校验和。用于生成校验和的算法是这样的,即使程序中的微小更改也会导致完全不同的校验和。
MD5(蓝色框中有 1500 美元。)= 05f8cfc03f4e58cbee731aa4a14b3f03
MD5(蓝色框中有$1100。)= d6dee11aae89661a45eb9d21e30d34cb
仅相差一个字符(并且在该字符内仅相差一个二进制位)的消息具有完全不同的消息摘要。
如果下载的文件的校验和与“官方”网站上给出的校验和相同,则可以假定该软件未被修改。
旁注:理论上,两个不同的文件可以具有相同的哈希值。为了让哈希/校验和算法被认为是安全的,找到另一个产生相同校验和的文件在计算上应该非常昂贵。