有没有人费心删除rpmkeys?

sou*_*edi 5 fedora rpm

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

$ rpm -qa gpg-pubkey --qf "%{version}-%{release} %{summary}\n"
fdb19c98-56fd6333 gpg(Fedora 25 Primary (25) <fedora-25-primary@fedoraproject.org>)
7fac5991-4615767f gpg(Google, Inc. Linux Package Signing Key <linux-packages-keymaster@google.com>)
64dab85d-57d33e22 gpg(Fedora 26 Primary (26) <fedora-26-primary@fedoraproject.org>)
fa7a179a-562bcd6e gpg(RPM Fusion nonfree repository for Fedora (25) <rpmfusion-buildsys@lists.rpmfusion.org>)
6806a9cb-562bce39 gpg(RPM Fusion free repository for Fedora (25) <rpmfusion-buildsys@lists.rpmfusion.org>)
d38b4796-570c8cd3 gpg(Google Inc. (Linux Packages Signing Authority) <linux-packages-keymaster@google.com>)
Run Code Online (Sandbox Code Playgroud)
  1. 推荐的 Fedora 更新过程是否会删除过时的 Fedora GPG 密钥?也就是说,如果我升级了 F24 -> F25 -> F26 ,它是否至少有望删除 Fedora 24的密钥,它现在已经过了“生命周期”?
  2. 是否有删除过时的 RPMFusion GPG 密钥的书面流程?
  3. 以这种方式旋转键似乎是一种很好的做法。(撤销泄露的密钥将是另一回事......)因此,在升级的系统上保留过时的密钥不会获得 Fedora 轮换密钥的任何好处。如果以上任何一个的答案都是“否”,我想我想知道保留过时的密钥是否有任何不太明显的影响。

sou*_*edi 0

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 下载缺失的第三方签名密钥的“功能”。