Ubuntu 23.10 将引入安全增强的 PPA
| 2023-05-17 22:53:25 评论: 0
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。你的系统将很乐意接受用存储库 A 的密钥签名的 BB 包。因为它无法将密钥与其各自的包关联起来。
这是个问题,对吧?这种旧机制正在逐步淘汰。现在,GPG 密钥信息将添加到外部存储库本身的 sources.list
中。这样,GPG 密钥将只接受其对应存储库的软件包。
现有的 Ubuntu 用户可能已经遇到了使用 /etc/apt/trusted.gpg.d
中的旧方法添加 GPG 密钥时出现的 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 机制自己处理,与 PPA 相关联的 GPG 密钥会自动添加到 /etc/apt/trusted.gpg.d
目录中。用户在这里不需要做任何事情。
在 Ubuntu 23.10 中,引入了一种新的方法。
现在,PPA 将作为 deb822 格式的 .sources
文件添加,其中密钥直接嵌入文件的 Signed-By
字段中。
使用这种方法,可以获得以下一些优点:
- 当删除存储库时,相关的密钥也会被删除。
- PPA 与其密钥之间一一对应。没有安全问题。
在揭示这一消息的邮件列表中也提到:
该密钥专门用于特定的 PPA,无法用于其他存储库(与旧的存放所有存储库的源列表的
trusted.gpg.d
不同)。其他密钥不能用于签署该 PPA。
总的来说,新的 PPA 版本将减少 “Key is stored in legacy trusted.gpg keyring” 和 “Manage keyring files in trusted.gpg.d instead” 警告。
我认为 Ubuntu 应该早些时候就引入这个改变,但迟到总比没有好。 ?
你对 Ubuntu 处理 PPA 的这个新改变有什么想法?请让我知道你的想法。