Linux安全启动证书快到期了,你可能需要知道这些
Linux Secure Boot:那些即将过期的密钥
如果你用的是Linux,而且一直开着Secure Boot——说实话,可能你自己都没注意到这功能——那接下来的消息你得留意一下。有一个"过期日"正在逼近,很可能让你的下次系统安装变得糟心。
问题出在shim bootloader上。这个东西是Linux和UEFI Secure Boot之间的"翻译官",没有它,Linux在开启Secure Boot的机器上根本跑不起来。而它的签名密钥,是微软提供的,这把钥匙马上就要作废了。
具体来说:9月11号,微软会停用一把从2011年就开始用的签名密钥。新密钥其实2023年就准备好了,但问题在于——全球还有几百万台电脑压根没装上这把新钥匙。对某些机器来说,想拿到新密钥,可能得等厂商推送固件更新,而这事儿说不定永远都不会发生。
这事跟你有几毛钱关系?
如果你电脑上已经装好了Linux,日常使用大概率不会出什么问题。你的发行版 bootloader 用的是自己的签名,理论上该咋跑还咋跑。
真正麻烦的是下面这些场景:
- 在开启Secure Boot的电脑上,全新安装Linux
- 用U盘启动,但机器的固件数据库太老旧
- 一些小众厂商压根没推送必要的更新
LVFS(Linux Vendor Firmware Service)的创始人Richard Hughes说得挺实在:"KEK更新的成功率大概98%,db更新大概99%——听起来很高对吧?但别忘了乘以几百万人,那就是一大波人翻车。"这话不算吓人,但也绝对让人心里没底。
到底哪里出了问题?
问题不在密钥本身失效,而是存储空间不够用。老旧UEFI固件的EFI变量存储空间很有限,推送这些更新的时候,有时候得先"清理"一下空间——说白了就是恢复BIOS出厂设置。Hughes说了:"BIOS越老,越容易撞上这个问题。"
不幸中招的那1-2%用户,常见的解决办法是:
- 重启电脑
- 把BIOS恢复出厂设置
- 重新尝试更新
社区已经在行动了
好消息是,开源社区早就开始未雨绸缪了。LVFS和fwupd这两个项目——专门用来在Linux下更新系统固件的工具——已经升级了,专门应对证书轮换。大部分主流发行版会自带用新微软密钥签名的shim二进制文件,所以正常情况下,你下次装系统应该不会踩坑。
各家厂商也在陆续推送KEK(密钥交换密钥)更新,让fwupd能安全地把新的微软证书写进系统的固件数据库。如果你的硬件厂商早就"躺平"不管了,那关闭Secure Boot可能是唯一的出路。
现在你能做什么?
如果你手上有启用了Secure Boot的Linux机器:
- 趁9月还没到,赶紧检查一下自己的设置
- 看看厂商有没有发布固件更新,有就赶紧打上
- 准备个备用启动方案,以防万一
- 如果9月之后新装系统,确保你的安装介质用的是新版shim
开源生态以前也经历过证书过期的情况,这次大概率也是有惊无险。但如果你是运维一排机器,或者最近有重装系统的计划,现在正是检查固件版本的好时机——顺便祈祷一下你的硬件厂商还没彻底"摆烂"。
做开发和跑生产环境的同学们,这事儿值得加进你的维护清单。花几分钟提前搞一下,总比到时候手忙脚乱debug强。
祝各位系统安稳——最好用的是还没过期的密钥。