我们真的需要检查下载文件的完整性吗?

max*_*esa 9 download checksum data-integrity file-download

我下载了大量文件,但最近发现使用 md5 和 sha 作为完整性检查器。从那时起,我总是喜欢检查下载的大文件,即使我从未发现它们已损坏。

我们真的需要检查下载文件的完整性吗?

如果需要,请选择我刚刚下载的 Linux 发行版(1GB)作为示例。

谢谢

LPC*_*hip 6

这取决于几个因素。

  1. 你有稳定的互联网连接吗?
    如果您有稳定的互联网连接,则无需检查文件的完整性,因为它很可能是正确的。我从不检查哈希,也从来没有损坏过的文件。或者也许有一次远程服务器断开连接。

  2. 您想基于安全原因验证文件吗?
    如果您担心正在下载的文件的安全性,您可以使用 MD5 哈希来验证该文件没有以某种方式被更改。您下载了一个文件,如果 MD5 哈希不匹配,则意味着服务器上的文件与 MD5 哈希不同,并且不知何故出了问题。这仅在您不信任从中下载的服务器时才有效,但通常如果有人提供哈希,他们通常也会尽力保持更新。但是如果他们的网站被黑了,而你确实检查了 MD5 哈希值,那么你就会得到一点好处。

总体而言,这两个将拒绝大多数人。如果你不同意,那当然完全取决于你。

  • 文件校验和不是安全检查,因为可以修改文件的攻击者也可能会修改校验和。 (6认同)
  • MD5 不再足以验证文件的内容未被有意更改。它只对无意的腐败有好处。攻击者破坏两者的几率各不相同。在许多情况下,散列的存储不是通过与大量下载的批量文件存储相同的渠道访问的。为了安全起见,加密签名比简单的散列要好,尤其是当您没有用于分发散列的安全通道时。 (3认同)
  • 稳定的互联网连接是不够的。您还必须确保您的 RAM 和存储驱动器不会损坏文件。但是,是的,不太可能。如果您的机器没有出现 BSOD,那么您很可能只关心安全性。 (2认同)

Eri*_*c G 6

答案和选择将基于他/她的风险承受能力以及验证时间和精力的考虑。

检查 MD5/SHA1 哈希值是一个很好的第一步,您应该在有时间的时候进行。但是,您必须考虑您信任所提供散列的能力。例如,如果作者带有哈希值的网站被黑客入侵,那么攻击者可以更改哈希值,因此您不会知道。如果计算散列是作为哈希提供的相同,你知道的东西到了。然而,仅仅因为哈希匹配并不能保证文件是好的。

软件作者提供完整性和真实性的更好替代方法是正在分发的文件进行数字签名。这会将真实性信息附加到文件中,并且不依赖于信任某个网站。如果作者对文件进行了数字签名,则唯一可以伪造的方法是证书颁发机构遭到破坏或开发人员的签名密钥被盗。这两种情况都比互联网上的网站被黑客攻击的可能性要小得多。

最终,您必须自己进行尽职调查以确定是否要信任某些东西,然后采取对策(在沙箱、虚拟机等中运行)来减轻您在决定是否信任时所做的任何未知因素或误判.