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 应该更早地带来这个改变。迟到总比不到好。?