如何验证 Linux ISO 的校验和并确认它没有被篡改如何验证 Linux ISO 的校验和并确认它没有被篡改如何验证 Linux ISO 的校验和并确认它没有被篡改如何验证 Linux ISO 的校验和并确认它没有被篡改
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何验证 Linux ISO 的校验和并确认它没有被篡改

上个月,Linux Mint 的网站遭到黑客攻击,并提供了一个包含后门的修改后的 ISO 供下载。虽然问题很快得到解决,但它证明了在运行和安装之前检查下载的 Linux ISO 文件的重要性。就是这样。

Linux 发行版发布校验和,因此您可以确认您下载的文件是他们声称的文件,并且这些文件通常经过签名,因此您可以验证校验和本身没有被篡改。如果您从主站点以外的其他地方(如第三方镜像)或通过 BItTorrent 下载 ISO,这将特别有用,人们更容易篡改文件。

这个过程是如何工作的

检查 ISO 的过程有点复杂,所以在我们进入具体步骤之前,让我们先解释一下这个过程的具体内容:

  1. 您将像往常一样从 Linux 发行版的网站或其他地方下载 Linux ISO 文件。
  2. 您将从 Linux 发行版的网站下载校验和及其数字签名。这些可能是两个单独的 TXT 文件,或者您可能会得到一个包含这两个数据的 TXT 文件。
  3. 您将获得属于 Linux 发行版的 PGP 公钥。您可以从 Linux 发行版的网站或由同一个人管理的单独密钥服务器获取此信息,具体取决于您的 Linux 发行版。
  4. 您将使用 PGP 密钥来验证校验和的数字签名是否由制作该密钥的同一个人创建,在本例中为该 Linux 发行版的维护者。这证实了校验和本身没有被篡改。
  5. 您将为下载的 ISO 文件生成校验和,并验证它是否与您下载的校验和 TXT 文件匹配。这确认 ISO 文件没有被篡改或损坏。

对于不同的 ISO,该过程可能略有不同,但通常遵循一般模式。例如,有几种不同类型的校验和。传统上,MD5 和是最受欢迎的。但是,现代 Linux 发行版现在更频繁地使用 SHA-256 和,因为 SHA-256 更能抵抗理论攻击。我们将在这里主要讨论 SHA-256 和,尽管类似的过程也适用于 MD5 和。一些 Linux 发行版也可能提供 SHA-1 和,尽管这些更不常见。

同样,一些发行版不使用 PGP 签署校验和。您只需执行步骤 1、2 和 5,但该过程更容易受到攻击。毕竟,如果攻击者可以替换下载的 ISO 文件,他们也可以替换校验和。

使用 PGP 更安全,但并非万无一失。攻击者仍然可以用他们自己的公钥替换该公钥,他们仍然可以欺骗您认为 ISO 是合法的。然而,如果公钥托管在不同的服务器上——就像 Linux Mint 的情况一样——这就不太可能了(因为他们必须破解两台服务器而不是一台)。但是,如果公钥与 ISO 和校验和存储在同一台服务器上,就像某些发行版的情况一样,那么它就无法提供那么多的安全性。

尽管如此,如果您尝试验证校验和文件上的 PGP 签名,然后使用该校验和验证您的下载,那么作为最终用户下载 Linux ISO 时,您可以合理地做所有这些事情。你仍然比那些不打扰的人更有安全感。

如何在 Linux 上验证校验和

我们将在此处以 Linux Mint 为例,但您可能需要搜索 Linux 发行版的网站以找到它提供的验证选项。对于 Linux Mint,在其下载镜像上随 ISO 下载一起提供了两个文件。下载 ISO,然后将“sha256sum.txt”和“sha256sum.txt.gpg”文件下载到您的计算机。右键单击文件并选择“链接另存为”以下载它们。

在 Linux 桌面上,打开终端窗口并下载 PGP 密钥。在这种情况下,Linux Mint 的 PGP 密钥托管在 Ubuntu 的密钥服务器上,我们必须运行以下命令来获取它。

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 0FF405B2

您的 Linux 发行版网站会为您指明所需的密钥。

我们现在拥有所需的一切:ISO、校验和文件、校验和的数字签名文件以及 PGP 密钥。所以接下来,更改到他们下载到的文件夹......

cd ~/Downloads

...并运行以下命令来检查校验和文件的签名:

gpg --verify sha256sum.txt.gpg sha256sum.txt

如果 GPG 命令让您知道下载的 sha256sum.txt 文件具有“良好签名”,您可以继续。在下面截图的第四行,GPG 告诉我们这是一个“好的签名”,声称与 Linux Mint 的创建者 Clement Lefebvre 相关联。

不要担心密钥未通过“可信签名”认证。这是因为 PGP 加密的工作方式——您还没有通过从受信任的人那里导入密钥来建立信任网络。这个错误会很常见。

最后,既然我们知道校验和是由 Linux Mint 维护者创建的,请运行以下命令从下载的 .iso 文件生成校验和并将其与您下载的校验和 TXT 文件进行比较:

sha256sum --check sha256sum.txt

如果您只下载了一个 ISO 文件,您会看到很多“没有这样的文件或目录”消息,但如果您下载的文件与校验和匹配,您应该会看到一条“OK”消息。

您还可以直接在 .iso 文件上运行校验和命令。它会检查 .iso 文件并输出其校验和。然后,您可以通过用眼睛查看两者来检查它是否与有效校验和匹配。

例如,要获取 ISO 文件的 SHA-256 总和:

sha256sum /path/to/file.iso

或者,如果您有一个 md5sum 值并需要获取文件的 md5sum:

md5sum /path/to/file.iso

将结果与校验和 TXT 文件进行比较,看它们是否匹配。

如何在 Windows 上验证校验和

如果您从 Windows 机器下载 Linux ISO,您也可以在那里验证校验和——尽管 Windows 没有内置必要的软件。因此,您需要下载并安装开源 Gpg4win 工具。

找到您的 Linux 发行版的签名密钥文件和校验和文件。我们将在这里使用 Fedora 作为示例。 Fedora 的网站提供校验和下载,并告诉我们可以从 https://getfedora.org/static/fedora.gpg 下载 Fedora 签名密钥。

下载这些文件后,您需要使用 Gpg4win 附带的 Kleopatra 程序安装签名密钥。启动 Kleopatra,然后单击文件 > 导入证书。选择您下载的 .gpg 文件。

您现在可以检查下载的校验和文件是否使用您导入的其中一个密钥文件进行了签名。为此,请单击文件 > 解密/验证文件。选择下载的校验和文件。取消选中“输入文件是分离签名”选项,然后单击“解密/验证”。

如果您以这种方式执行此操作,您肯定会看到一条错误消息,因为您还没有经历过确认这些 Fedora 证书实际上是合法的麻烦。这是一项更艰巨的任务。这就是 PGP 设计的工作方式——例如,您亲自会面并交换密钥,然后拼凑出一个信任网络。大多数人不会以这种方式使用它。

但是,您可以查看更多详细信息并确认校验和文件是使用您导入的其中一个密钥签名的。无论如何,这比只信任下载的 ISO 文件而不检查要好得多。

您现在应该能够选择文件 > 验证校验和文件并确认校验和文件中的信息与下载的 .iso 文件匹配。然而,这对我们不起作用——也许这只是 Fedora 校验和文件的布局方式。当我们用 Linux Mint 的 sha256sum.txt 文件尝试这个时,它确实有效。

如果这对您选择的 Linux 发行版不起作用,这里有一个解决方法。首先,单击设置 > 配置 Kleopatra。选择“加密操作”,选择“文件操作”,然后将 Kleopatra 设置为使用“sha256sum”校验和程序,因为这是生成此特定校验和的程序。如果您有 MD5 校验和,请在此处的列表中选择“md5sum”。

现在,单击“文件”>“创建校验和文件”并选择您下载的 ISO 文件。 Kleopatra 将从下载的 .iso 文件生成校验和并将其保存到新文件中。

您可以在记事本等文本编辑器中打开这两个文件——下载的校验和文件和刚刚生成的文件。亲眼确认两者的校验和相同。如果完全相同,则您已确认下载的 ISO 文件未被篡改。

这些验证方法最初并非用于防范恶意软件。它们旨在确认您的 ISO 文件已正确下载并且在下载过程中没有损坏,因此您可以放心地刻录和使用它。它们不是一个万无一失的解决方案,因为您必须信任您下载的 PGP 密钥。然而,这仍然比不检查就使用 ISO 文件提供更多的保证。

图片来源:Flickr 上的 Eduardo Quagliato

©2015-2025 艾丽卡 support@alaica.com