Linux Kernel 的 PGP 信任网络分析
ukl's blog
The Linux kernel's PGP Web of Trust
发布时间: 2025年5月8日 星期四 更新时间: 2025年5月8日 星期四 分类: Kernel. 标签: OpenPGP
Linux Kernel 的开发过程使用 PGP。 其中最相关的部分是子系统维护者应该在其向 Linus Torvalds 提交的 pull request 中使用签名标签。 由于密钥服务器的概念被认为已损坏,Konstantin Ryabitsev 在一个 git 仓库 中维护着一个相关的密钥集合。
截至今天 (提交记录为 a0bc65fb27f5033beddf9d1ad97d67c353849be2),该仓库中跟踪了 602 个有效密钥。 将密钥添加到此仓库的要求是,从 Linus Torvalds 的密钥到该密钥的信任路径长度必须最多为 5。
有时会发生密钥丢失其信任路径的情况,因为这些路径中的某人更换了其密钥,或者密钥已过期。 目前,这影响了 2 个密钥。
然而,一个问题即将出现:GnuPG 2.4.x 开始拒绝使用 SHA-1 哈希算法的第三方密钥签名。 总的来说,这是件好事,SHA-1 自 20 多年前就不再被认为是安全的了。 这不会直接影响 kernel-pgpkeys 仓库,因为信任路径检查不依赖于 GnuPG 信任签名; 有一个专用工具可以解析密钥环的内容,并且当前接受使用 SHA-1 的签名。 此外,签名通常不会被丢弃,但也有例外:最近,Theodore Ts'o 要求更新他的证书。 当 Konstantin 导入更新后的证书时,GnuPG 的“清理”操作被应用,这导致所有 SHA-1 签名都被删除。 因此,Theodore Ts'o 的密钥失去了 168 个签名,其中包括 Linus Torvalds 对其主要 UID 的签名。
这让我思考,如果所有 SHA-1 签名都被删除,会对信任网络产生什么影响。 以下是事实:
- korg-pgpkeys 仓库中跟踪了 7976 个被认为是有效的签名,其中 6045 个使用了 SHA-1。
- 仅考虑主要 UID,Linus Torvalds 直接签署了 40 个公钥,其中 38 个使用 SHA-1。 仍然“正确”签名的两个密钥之一,没有签署任何其他密钥。 因此,几乎所有信任路径都经过一个密钥。
- 如果不考虑 SHA-1 签名,则有 485 个公钥没有来自 Linus Torvalds 的长度为 5 或更短的信任路径。 因此,今天这 485 个公钥将不符合添加到 pgpkeys git 仓库的条件。 被删除的人员包括 Andrew Morton、Greg Kroah-Hartman、H. Peter Anvin、Ingo Molnar、Junio C Hamano、Konstantin Ryabitsev、Peter Zijlstra、Stephen Rothwell 和 Thomas Gleixner。
- Kernel 强集的大小从 358 减少到 94。
如果您参加下周的 Embedded Recipes 2025,那么有机会改善这种情况:我将与 Ahmad Fatoum 一起组织一次密钥签名活动。 如果您想参加,请在 UTC 时间 2025-05-12 08:00 之前将您的公钥发送至 er2025-keysigning@baylibre.com。
social
*[ Published: Thu 08 May 2025 ]: 2025-05-08T17:00:00+02:00 *[ Updated: Thu 08 May 2025 ]: 2025-05-08T21:51:00+02:00