是什么使得 OpenPGP 密钥环值得信赖?

是什么使得 OpenPGP 密钥环值得信赖?

我已经开始阅读《Linux From Scratch》这本书,在前几章中,你需要下载安装过程中所需的所有软件包的源代码。这本书提供了 md5sums 来“验证”下载是否有效,但从安全角度来看,这显然是不够的。

由于安装 LFS 的很大一部分是学习它的工作原理,我决定要验证我的源 tarball(或至少其中几个)的签名。所以我转到 GNU FTP 服务器(https://ftp.gnu.org/),他们要求您从中下载他们的密钥环,ftp://ftp.gnu.org/gnu/gnu-keyring.gpg其中包含许多开发人员的公钥,用于验证 tarball 签名。

我现在的问题是,是什么让这个密钥环值得信赖?据我所知(我假设我忽略了一些东西),仍然有一个单点故障,即 GNU FTP 服务器。如果攻击者控制了该服务器,他只需将自己的公钥包含在密钥环中,然后开始签署自己的恶意 tarball,对吗?

密钥环本身是否使用属于 GNU 项目的另一个公钥签名,或者我是否缺少其他安全层?

答案1

通常,OpenPGP 中的密钥通过信任网进行验证。信任网是由不同的密钥和在它们之间签发的证书组成的网络。通过遵循此类路径(称为信任路径),您可以扩展您信任的密钥集。

你总是需要某种信任锚:你需要确保一些你已经验证过的密钥。通常,这是在主办密钥签名方的会议上完成的。你也可以信任一些服务器(例如,基于传输加密),但这正是你尝试的不是去做。

除了显性的信任之外,还有“TOFU”的概念:首次使用即可获得信任。攻击者几乎无法通过不同的分发渠道和长时间提供被操纵的软件包。尝试找到您已经使用的密钥的来源(例如,在您多年前获取的 Linux 发行版中或在旧的计算机杂志 DVD 中)。是否有副本托管在某种不受原始项目直接控制的软件存储库中?archive.org 是否列出了多年来的 OpenPGP 密钥?询问朋友他们是否有密钥的踪迹。大多数 Linux 发行版都附带一整套用于签署软件的密钥。

这并不是一件容易的事,而且需要做相当多的工作,但如果你想正确地验证签名,就没有其他办法了。

相关内容