为什么 rpmfusion 推荐使用 nogpgcheck 开关?

为什么 rpmfusion 推荐使用 nogpgcheck 开关?

请参阅命令行 RHEL/CentOS 部分:https://rpmfusion.org/Configuration/

难道这个--nogpgcheck开关不允许篡改在不被注意的情况下发生吗?

答案1

这是包装系统打破最初的先有鸡还是先有蛋的信任问题的一步。

yum新存储库中的打包系统 ( / )不信任它rpm,因为它是新的,最初并不为人所知。因此,第一步是告诉系统(以加密方式)信任这个新存储库。这是通过签署软件包(或在不同的系统上,软件包版本)来完成的。

有些方法在单独的网页或密钥服务器中提供 gpg 密钥以增加系统的信任(例如:rpm --import(真的rpmkeys --importapt),或/ 的等效项dpkgapt-key add),然后使用正确的文件配置存储库,该文件主要包括要下载的 URL 和一些设置(例如...gpgcheck=1参数)。

另一种方法是将此密钥直接放入包中,并让包添加密钥和存储库设置:这就是这里所做的,包rpmfusion-free-release-7.noarch.rpm内只有几个文件:

# rpm -qlp rpmfusion-free-release-7.noarch.rpm 
warning: rpmfusion-free-release-7.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID f5cf6c1e: NOKEY
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-el-7
/etc/yum.repos.d/rpmfusion-free-updates-testing.repo
/etc/yum.repos.d/rpmfusion-free-updates.repo

这些文件是密钥和新的存储库配置,它们确实包含gpgcheck=1.请注意,在安装之前,系统不信任该软件包(因此上面带有 的警告NOKEY)。安装后,该密钥现在受到信任,并且每个进一步的操作都将使用此添加的密钥检查包签名。

那么如何才能信任呢?下载时仍然使用https://in提供信任https://download1.rpmfusion.org/:它应该保证 rpmfusion 拥有的下载站点控制着这个包,并且可以安全地下载它而不会被篡改。

这不是完全相同的信任类型,因为只有网站才被信任,而不是包裹。由于您无论如何都是从 rpmfusion 下载软件,这意味着您足够信任它们,可以从它们下载并安装软件包。这个包永远不应该在最初添加存储库之外第一次下载*.rpmfusion.org(即使用安装时--nogpgcheck),否则你现在必须信任镜像实际上提供相同的包,而不是另一个具有相同名称的包,例如额外的钥匙或更糟。

无论如何,使用前一种方法,您仍然必须阅读有关如何添加密钥和下载软件包的说明,因此您仍然必须首先信任这些说明。这就是我所说的先有鸡还是先有蛋:你必须开始信任某个地方。

一旦建立了这种最初的信任,其他一切都将得到安全地“处理”。即使必须提供新密钥,这也将通过rpmfusion-free-release内部替换密钥的更新来完成,并且即使从镜像下载和/或不使用https://.这个存储库实际上就是这种情况:它使用镜像,并且可能是纯 http。您不应该再需要--nogpgcheck.

相关内容