下载镜像安全

信息安全 分布式计算
2021-08-13 09:53:35

与大量开源软件(Debian、Eclipse、PHP)一样,您可以申请成为他们网站/下载的镜像。我完全理解这有助于他们获得带宽和分布。

但是,是什么阻止了人们将恶意软件副本上传到他们的镜像?

我知道有些网站提供下载的 MD5/SHA1 哈希,以确保您的下载有效,但是没有锡箔帽的人真的会检查这些吗?


TL;博士

如果我从http://www.debian.org/distrib/下载 ISO,我怎么知道它是合法的?

1个回答

包管理器(例如aptitudeDebian 上使用的包管理器)实现了 GPG 密钥来验证包。Debian 安装将附带包签名者的公钥,然后在安装下载的包之前对其进行检查。

有时,如果此过程失败,您会发现最终出现错误:

W: GPG error: http://www.debian-multimedia.org etch Release: The following signatures couldn't be verified because teh public key is not available: NO_PUBKEY 07DC563D1F41B907
W: You may want to run apt-get update to correct these problems

您可以在此处查看有关称为 SecureApt 的解决方案的更多详细信息:https ://wiki.debian.org/SecureApt


要解决有关下载安装程序 CD 映像的修订:

是的,存在多个镜像,并且其中一种主要交付方法 (HTTP) 容易受到 MITM 攻击,这种攻击可能会修改映像,从而使您的安装程序包含 rootkit。但是,与更新软件包不同,安装基本系统的频率要低得多。

手动 PGP 保护也适用于 CD 映像。首先,镜像上的所有磁盘映像都应为每个映像提供 MD5 和多个 SHA 哈希值。这些哈希文件本身由 Debian 签名,以确保它们也不能在镜像站点上伪造。

在下载 ISO 之前,请验证 SHA256 或 SHA512(最安全)的完整性,例如使用gpg.

gpg --verify SHA512SUMS.sign SHA512SUMS

如果您当前没有签署文件的公钥,这会给您一个错误。在这种情况下,检查给出的签名并将其与 Debian 网站上的可信密钥进行比较:http: //www.debian.org/CD/verify

这是验证中最重要的部分,因为哈希文件的完整性围绕着您信任的密钥的完整性。

验证适当的密钥后,将其安装在您的钥匙串中,如下所示:

gpg --recv-key --keyserver subkeys.pgp.net LAST8CHARSOFFINGERPRINT. 这会从服务器获取与签名密钥的指纹匹配的密钥。

最后,gpg --verify SHA512SUMS.sign SHA512SUMS现在应该告诉你哈希文件是否真实。如果是,您可以安全地将您的结果sha512 chosen.iso与 sum 文件中的结果进行比较。

自然,这一切都假设您从受信任的计算机上运行这些命令,sha512并且不受gpg攻击者的更改。

YPMV(您的偏执可能会有所不同)。