应该如何,为什么以及何时进行哈希检查

在ProPrivacy,我们只是 开源软件。这主要是因为,尽管不够完美,但是开源是确保程序处于水平的唯一途径。.

但是,一个问题是,您如何知道从网站下载的开源程序是其开发人员打算下载的程序?加密散列是此问题的部分解决方案.

什么是加密哈希?

密码哈希是通过对包含计算机程序(或其他数字文件)的数据执行单向哈希函数(数学运算)得出的校验和或数字指纹.

组成计算机程序的数据中仅一个字节的任何更改都会更改哈希值。因此,哈希值是任何程序或其他数字文件的唯一指纹.

什么是哈希检查?

确保程序没有被篡改或损坏,这是一个很简单的事情,即计算其哈希值,然后将其与开发人员提供的哈希校验和进行比较.

如果相同,则您可以合理地确信所下载的程序与其开发人员所发布的程序完全相同。如果不是,则说明程序已经过某种更改.

造成这种情况的原因并不总是恶意的(请参阅下文),但是哈希检查失败会导致响铃.

哈希检查问题

在赞美哈希检查时,您可能已经检测到注意事项...

完整性而不是身份验证

哈希检查对于确保文件的完整性很有用,但它们不提供任何身份验证。也就是说,它们有助于确保您拥有的文件或程序与源文件匹配,但是它们无法提供验证源文件合法的方法。.

哈希检查不能保证哈希校验和的来源.

例如,存在伪造的网站,这些网站散布着流行的开源软件(例如KeePass)的恶意版本。这些网站中的许多甚至都提供了它们提供的程序的哈希校验和,如果您将它们与假程序进行比较,它们将匹配。哎呀.

数学上的弱点

另一个问题是数学上的弱点可能意味着散列不如应有的安全.

例如,尽管MD5算法已知容易受到碰撞攻击,但它仍然是非常流行的哈希函数。实际上,就此而言,甚至SHA1也不再被认为是安全的。.

尽管如此,MD5和SHA1仍然是用于生成哈希值的最受欢迎的算法。但是,SHA256仍然安全.

开发人员懒惰

开发人员有时会使用错误修复和新功能来更新其程序,而忽略发布更新的哈希校验和。当您下载并尝试验证其程序时,这将导致哈希检查失败.

当然,这远远没有让恶意软件通过的哈希检查那么严重,但是它可以降低对生态系统的信任,从而使人们不必费心检查下载的文件的完整性。...

加密哈希与数字签名

密码散列的大多数问题是通过使用数字签名解决的,数字签名可以保证完整性和身份验证.

乐于使用专有代码的开发人员可以在首次安装其软件时使用Microsoft,Apple或Google PKI(公钥基础结构)技术等机制自动透明地验证签名。.

开源开发人员没有这种奢侈。他们必须使用PGP,而该PGP本身不受任何专有操作系统的支持,以及为什么Linux中不存在与之等效的Microsoft,Apple或Google PKI.

因此,必须手动验证PGP数字签名。但是PGP是一本完整的猪,不是一个简单的过程,快速浏览一下我们在Windows中检查PGP签名的指南将演示.

开发人员的实际签名过程也不是,他们清楚地知道,在现实世界中,很少有人会费心手动检查数字签名.

密码散列的安全性远不及PGP数字签名,但它们更易于使用,其结果是许多开发人员只是选择依赖它们而不是对他们的工作进行数字签名.

您确实应该进行哈希检查(如果不存在数字签名)

这不是理想的情况,您应该始终检查开放源代码程序的数字签名(如果有)。如果不是,那么检查其加密哈希比不执行任何操作要好得多.

只要您对来源有信心(例如,您可以确定来源来自开发人员的真实网站,而该网站并未被黑客破解以显示伪造的加密哈希),那么检查其哈希值可得出与您所使用的软件相当的巧合度已下载的是其开发人员打算下载的软件.

如果数字签名和校验和都不能用于开源软件,则不要安装或运行它.

如何哈希检查

基本过程如下:

可选副标题

  1. 记下开发人员发布的哈希值
  2. 生成您拥有的文件的哈希值
  3. 比较两个哈希值

如果它们相同,则您具有开发人员想要的文件。如果不是,则表明它已损坏或已被篡改.

如果有SHA256 +散列可用,请进行检查。如果不是,则使用SHA1。仅在万不得已时才应检查MD5哈希.

简单方法(所有系统)

生成文件的哈希值的最简单方法是使用诸如在线工具之类的网站。只需选择您需要生成的哈希值的类型,然后将所需文件拖放到提供的空间中,就会生成相关的哈希值.

我们要检查从KeePass.org网站(我们知道这是正确的域)下载的KeePass安装程序文件的完整性。该网站针对其所有KeePass版本发布了MD5,SHA1和SHA256哈希,因此我们将检查SHA256中是否下载了我们的版本.

  1. 我们记下了正确的哈希值,该值在KeePass网站上发布.

  2. 然后,我们访问在线工具网站,选择“文件哈希:SHA256”,然后将下载的KeePass安装程序文件拖到提供的空间中。.

  3. 我们将输出与在KeePass网站上发布的校验和进行比较,它们是相同的。因此,假设KeePass网站尚未被黑客入侵以显示错误的哈希值,我们可以确信我们已经下载了未篡改的文件。好极了!

    Windows,macOS和Linux还具有内置的哈希值功能,可以通过命令行访问...

视窗

此方法在Windows 10中是开箱即用的,而Windows 7用户需要首先使用Windows Management Framework 4.0更新Windows PowerShell。.

要获取SHA256哈希,请右键单击“开始” -> Windows PowerShell并输入:

Get-FileHash [路径/到/文件]

例如:

获取文件哈希C:\ Users \ Douglas \ Downloads \ KeePass-2.43-Setup.exe

可以使用以下语法计算MD5和SHA1哈希:

Get-FileHash [[路径/目标/文件]的路径-算法MD5

Get-FileHash [[路径/目标/文件]的路径-算法SHA1

例如:

Get-FileHash C:\ Users \ Douglas \ Downloads \ KeePass-2.43-Setup.exe -Algorithm MD5

苹果系统

打开终端并输入:

openssl [哈希类型] [/路径/到/文件]

哈希类型应为md5,SHA1或SHA256.

例如,要检查Windows KeePass安装程序的SHA256哈希(为使本教程更简单),请键入:

openssl sha256 /用户/ douglascrawford /下载/KeePass-2.43-Setup.exe

的Linux

打开终端,然后输入:

Md5sum [路径/到/文件] Sha1sum [路径/到/文件]

要么

Sha256sum [路径/到/文件]

例如:

sha256sum /home/dougie/Downloads/KeePass-2.43-Setup.exe

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me