有人费心删除 rpmkey 吗?

有人费心删除 rpmkey 吗?

我的 Fedora 26 系统仍然安装了 Fedora 25 的 rpmkey 和 Fedora 25 的 RPMFusion:

$ rpm -qa gpg-pubkey --qf "%{version}-%{release} %{summary}\n"
fdb19c98-56fd6333 gpg(Fedora 25 Primary (25) <[email protected]>)
7fac5991-4615767f gpg(Google, Inc. Linux Package Signing Key <[email protected]>)
64dab85d-57d33e22 gpg(Fedora 26 Primary (26) <[email protected]>)
fa7a179a-562bcd6e gpg(RPM Fusion nonfree repository for Fedora (25) <[email protected]>)
6806a9cb-562bce39 gpg(RPM Fusion free repository for Fedora (25) <[email protected]>)
d38b4796-570c8cd3 gpg(Google Inc. (Linux Packages Signing Authority) <[email protected]>)
  1. 推荐的 Fedora 更新过程是否会删除过时的 Fedora GPG 密钥?也就是说,至少预计会删除 Fedora 的密钥24,现在已经过了“生命周期”,如果我升级了 F24 -> F25 -> F26 ?
  2. 是否有删除过时 RPMFusion GPG 密钥的记录流程?
  3. 以这种方式轮换密钥似乎是一个很好的做法。 (撤销因此,在升级的系统上保留过时的密钥不会获得 Fedora 轮换密钥的任何好处。如果上述任一问题的答案是“否”,我想我想知道保留过时的密钥是否有任何不太明显的影响。

答案1

  1. 并不是说我可以通过查看任何官方文档来判断(尽管我可能错过了一些东西),但考虑到大多数用户从不触摸按键,我认为它确实如此(或者至少它足够聪明,可以删除它所需要的按键)知道被撤销)。
  2. 我假设有一些“官方”程序,但通过一些粗略的搜索,我无法找到它(理论上你总是可以直接操作 GPG 密钥环,而无需通过 RPM,但我不知道是否这可能会破坏任何东西)。
  3. 除了您概述的内容之外,我想不出保留密钥有任何负面影响,但至少在最初保留最新密钥有一个非常重要的原因:如果更新中途失败,您必须回滚,您需要旧密钥。

答案2

dnf系统升级简单得几乎令人不安。它没有对键进行任何特殊处理。这包含 Fedora 密钥的软件包看起来也很简单,并且没有隐藏任何特殊的按键处理。因此,我希望dnf system-upgrade提示接受新密钥,因为这dnf通常是这样做的,但它永远不会导致任何密钥被删除。

编辑:到目前为止,我已经将 Fedora 从 26 -> 27 -> 28 升级,并且 Fedora 25 密钥仍然保留。

如果您想解决此问题,最好的机会是在发行版升级之前。您可以删除全部您的 rpm 键并使用 重新开始rpm -e --allmatches gpg-pubkey-*-*。这样比较安全;如有必要,始终可以重新安装 rpmkeys。 Fedora 保留所有可用的 rpmkey /etc/pki/rpm-gpg/,包括所有旧的。

某些第三方存储库配置(例如 Google 的配置)必须通过 HTTPS 重新下载丢失的 rpmkey。即通过hole-y Web PKI 进行身份验证。这看起来有些次优。我有点怀疑它是否实现了证书固定。

GNOME Software / PackageKit 路线有点晦涩难懂。当你使用 PackageKit 而不是 时dnf,我的理解是PackageKit 使用自己的信任机制代替 RPM 的信任机制。该机制看起来会在发行版升级后立即忽略旧密钥。

奇怪的是,看起来 PackageKit 甚至根据 Fedora 的版本将第三方密钥存储在一个目录下(/var/cache/PackageKit/28/metadata/google-chrome/...)。这表明 PackageKit 无论如何都会像 Google 一样通过 HTTPS 重新下载密钥。因此,如果您使用任何基于 PackageKit 的 GUI,则很难对此采取任何措施。

Debian 与 Fedora 在这里进行了对比。我确信我已经看到 Debian 删除了旧的 Debian 密钥(也许部分是当我查看我的文件历史记录时etckeeper)。我还没有研究过 Debian 上的 PackageKit。据我所知,apt没有dnf通过 HTTPS 下载缺失的第三方签名密钥的“功能”。

相关内容