从 Internet 下载各种可执行文件或 zip 文件时,我从未使用过校验和。我知道它用于检查一致性并增加一点安全性。但是,当您从 Apache 或 Microsoft 等受人尊敬的项目下载时,有必要这样做吗?我们中有多少人实际上使用校验和或哈希码来验证内容?

仅供参考,如果我偏离 StackOverflow 可接受的内容太远,请告诉我。

有帮助吗?

解决方案

当下载文件,其中完整性是关键的(例如Linux分发的异)我倾向于MD5SUM下载以防万一。

在源可以被信任,但你永远不知道什么时候自己网卡的硬件可能开始出现故障。

其他提示

另一个用途是验证您已有的文件是否相同(即未更改、未损坏且为最新版本)作为可从可信来源下载的文件。

如果出现这种情况,可能会发生

  • 您之前已经下载过该文件
  • 您从其他网站获取了该文件
  • 您从网络共享获取了该文件
  • 有人给了您 CD/闪存驱动器/等上的文件
  • 您使用了其他一些方法来避免可能较长的下载

这是为了让您可以检查文件的完整性。我用它所有的时间。你基本上只运行一些程序,将产生一个MD5校验,或任何散列方法时,对文件,看看两个校验和匹配。如果没有,那么这些文件是不同的。但是,请注意,这可能有两个文件产生相同的校验和,但你会碰上同样大小的比较这两个文件的可能性是相当低的,除非你是contriving的例子。

这是非常有用的。我发现在最近一个CD刻录程序中的错误;我一直有一个特定的计算机上的特定文件的问题。我最后只是相比,从CD文件和原来的计算机上的一个校验,他们是不同的,我能解决问题!

恕我直言,如果你已经下载大文件,并且要检查重新下载它(即,如果应用程序没有正确安装)。之前,如果是破坏它的唯一有用

要确保您下载的文件是一个好文件,并没有其他的还有一些人恶意意图修改。如 Apache中这个信息表示:

“的任何攻击者可以创建一个公共密钥,并把它上传到公共密钥服务器。然后,他们可以创建这个假密钥签名恶意的释放。然后,如果你想验证这个腐败版本的签名,它会成功,因为关键是不是“真实”的关键。因此,你需要验证这个密钥的真实性。的“

要验证你可以按照如下步骤这里

虽然你是选择从受信任的来源(例如Apache.org)您的下载请求可能会通过的网站。有问题的受信任的站点没有足够的资源来满足所有请求,以便镜子起到了宝贵的作用。但是,受信任的站点并不一定在镜像站点的完全控制,它有可能是镜的所有者(或第三方)可以取代带有恶意代码镜像可执行文件。通过验证对下载的文件,是深受信赖的哈希你保证,它没有在运输过程中发生变化(无论何种原因)。

它用于两个完整性原因(特别是在FTP站点,在那里你可以使用ASCII模式错误地下载)。此外,它可以用来验证下载没有改变,假设你从位置下载和B位置获取校验和(经常下载是一面镜子,并从官方网站的哈希)。

有关完整性的目的,虽然,签署文件将是不仅仅是散列它更加有用。

我使用 MacPorts的 Mac OS X上,这是一个基于源包管理器;每个Portfile包含如何下载,补丁,编译和安装在Mac OS X上的软件包括在Portfile的描述是压缩包的特定版本的校验和下载。这有助于确保从许多可能出现的问题的文件的完整性;有时,人们会更新一个压缩包不增加版本号,这可能导致补丁失效申请或代码在一定条件下断裂,或有时包装可能会损坏,或者攻击者可能与希望的软件被篡改您将安装它。

所以,我不得不说,是的,我用我每次安装软件时的校验和(虽然我的包管理器自动完成对我来说,我不直接做)。即使你是手动从一个受人尊敬的项目下载,你多希望从一个更快,更贴近镜像站点下载代码本身,然后验证反对从更可信主服务器下载一个副本的校验;这有助于保持它更难被攻击为多台服务器将不得不受到影响,而不仅仅是一个镜子。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top