Ubuntu 23.10 带来安全增强的 PPA

Ubuntu 23.10 正在改变 PPA 的管理方式。

Ubuntu 升级不断增强功能并添加安全修复程序。

但是,您很少会看到某些核心机制发生一些变化。

使用 Ubuntu 23.10,PPA 功能变得更好。至少,您会在终端中看到更少的警告。

我在说什么?让我详细说说。

GPG密钥问题

传统上,PPA 和其他外部存储库是通过位于 /etc/apt/sources.list.d/ 的 .list 文件管理的,其中包括源列表。此外,GPG 密钥环与 /etc/apt/trusted.gpg.d 关联

这被确定为潜在的安全问题,因为 GPG 密钥是在系统级别添加的。

如何?想象一下,您将密钥添加到存储库 A 以获取包 AA,并将密钥添加到存储库 B 以获取包 BB。您的系统将很乐意接受由 repo A 的密钥签名的包 BB。它无法将密钥与其各自的包相关联。

这是个问题,对吧?这种旧机制正在逐步淘汰。现在 GPG 密钥信息被添加到外部仓库本身的 sources.list 中。这样,GPG 密钥将只接受来自其关联仓库的包。

当外部存储库使用在 /etc/apt/trusted.gpg.d 中添加 GPG 密钥的旧方法时,现有的 Ubuntu 用户可能已经遇到过apt-key is deprecated警告。

这是添加外部存储库的旧方法的示例:

sudo apt install apt-transport-https curl
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'
sudo apt update && sudo apt install yarn

PPA 将使用新的 GPG 密钥机制

现在,PPA 与添加外部存储库略有不同。在这里,您不手动导入 GPG 密钥并将其添加到 /etc/apt/trusted.gpg.d 目录。

sudo add-apt-repository ppa:dr-akulavich/lighttable
sudo apt-get update
sudo apt-get install lighttable-installer

添加 PPA 时未明确添加 GPG 密钥

一切都由 PPA 机制本身处理,与 PPA 关联的 GPG 密钥会自动添加到 /etc/apt/trusted.gpg.d 目录,直到现在。用户在其中没有任何作用。

在 Ubuntu 23.10 中,引入了一种新方法。

PPA 现在将添加为 deb822 格式的 .sources 文件,其中密钥直接嵌入到文件的 Signed-By 字段中。

使用此方法获得的一些好处是:

  • 当您删除存储库时,关联的密钥也会被删除。
  • PPA 和它的密钥之间是 1:1 的关系。没有安全问题。

显示它的邮件列表还提到:

该密钥专用于特定的 PPA,不能用于其他存储库(与旧的 trusted.gpg.d 不同,它是所有源的全局存储)。其他密钥不能用于签署 PPA。

总而言之,新的 PPA 版本将减少“密钥存储在传统的 trusted.gpg 密钥环中”和“改为在 trusted.gpg.d 中管理密钥环文件”的警告。

在我看来,Ubuntu 应该更早地带来这个改变。迟到总比不到好。?

类似文章