与大量开源软件(Debian、Eclipse、PHP)一样,您可以申请成为他们网站/下载的镜像。我完全理解这有助于他们获得带宽和分布。
但是,是什么阻止了人们将恶意软件副本上传到他们的镜像?
我知道有些网站提供下载的 MD5/SHA1 哈希,以确保您的下载有效,但是没有锡箔帽的人真的会检查这些吗?
TL;博士
如果我从http://www.debian.org/distrib/下载 ISO,我怎么知道它是合法的?
与大量开源软件(Debian、Eclipse、PHP)一样,您可以申请成为他们网站/下载的镜像。我完全理解这有助于他们获得带宽和分布。
但是,是什么阻止了人们将恶意软件副本上传到他们的镜像?
我知道有些网站提供下载的 MD5/SHA1 哈希,以确保您的下载有效,但是没有锡箔帽的人真的会检查这些吗?
TL;博士
如果我从http://www.debian.org/distrib/下载 ISO,我怎么知道它是合法的?
包管理器(例如aptitude
Debian 上使用的包管理器)实现了 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(您的偏执可能会有所不同)。