几天前,有消息称,用于对 Linux shim 层进行数字签名的微软证书将于本月底(2026 年 6 月)到期。由于这是现代 Linux 发行版(例如 Fedora、Ubuntu 和 openSUSE)在启用 UEFI 安全启动的系统上启动所必需的关键组件,因此该消息引发了一些担忧也就不足为奇了。然而,Fedora 开发人员已明确表示:无需恐慌;您的计算机仍可正常启动。
要理解为什么不会出现大规模的 Linux 系统宕机,就必须了解信任链的工作原理。在启动过程中,UEFI 系统不会检查证书是否过期,因为它唯一关注的是验证加密签名是否有效,以及密钥是否因泄露而被明确撤销。2011 年证书的过期仅仅意味着微软将无法再使用它来签署新版本的引导加载程序。
向2023年新钥匙的过渡
为了保持兼容性并确保 Linux 系统能够安装在现代硬件上,微软在 2023 年生成了一个新的证书。向这个新密钥的过渡被设计成对用户完全透明。
目前,像 Fedora Rawhide(即将发布的 Fedora 45 的基础)这样的软件仓库已经包含了一个双签名 shim 引导管理器。这意味着它同时通过了 2011 年和 2023 年密钥的认证,确保了它既兼容不识别新密钥的旧式计算机,也兼容已经预装了新密钥的现代主板。最终,未来版本的 shim 将只使用 2023 年密钥进行签名。
真正的漏洞:危险在于旧代码
真正能阻止系统启动的并非证书过期,而是通过 UEFI 证书吊销列表(简称 DBX)进行的吊销。近期发布的安全报告详细披露了两个严重漏洞(CVE-2026-8863 和 CVE-2026-10797),攻击者可以利用这两个漏洞绕过安全启动保护,执行恶意代码。
幸运的是,这些漏洞仅影响极旧版本的 shim(0.9 及更早版本,2016 年之前创建)。这些易受攻击层的签名已被添加到禁用签名数据库 (DBX) 中。如果您使用的是非常过时的系统(例如 CentOS 7.2 或 RHEL 7.2),并且您的 UEFI 数据库已更新,则出于安全原因,您的计算机将无法启动。
你应该做什么(以及不应该做什么)?
虽然密钥过期不会导致您当前的系统出现故障,但开发者强烈建议您更新固件的密钥数据库,以获取新的 2023 年密钥,确保未来兼容性。以下是检查设备状态的命令:
检查您使用的是 UEFI 还是 BIOS(传统模式):
[[ -d /sys/firmware/efi ]] || echo BIOS
检查是否启用安全启动:
mokutil --sb-state
列出固件中的公钥:
mokutil --db --short (这里你应该能看到 2011 年的密钥,如果你的系统是最新的,还会看到 2023 年的密钥)。
自动更新固件和密钥:
sudo fwupdmgr update (从 Linux 厂商固件服务下载更新)。
验证您的 shim 使用的是哪个密钥进行签名(需要 pesign 包):
sudo pesign -S -i /boot/efi/EFI/fedora/shimx64.efi
最后值得一提的是,Fedora 开发人员已经发出警告: