Linux 系統安全啟動憑證即將到期 (★ 71 分)
Linux 系統若啟用 UEFI (統一可延伸韌體介面) 安全啟動 (Secure Boot),大多數使用者不論是否察覺都仰賴 Microsoft 所簽署的 shim 第一階段開機載入程式,其搭載的 2011 年金鑰將於今年九月到期。過期後,Microsoft 不再為此金鑰簽發新版 shim,導致在尚未更新主機韌體資料庫的環境中,新製作的安裝媒體將無法啟動;已安裝的發行版則因為使用自身金鑰簽署後續開機程序,仍可繼續順利啟動。
自 2023 年起,Microsoft 已釋出新版 2023 UEFI 第三方金鑰,但多數主機韌體尚未內建,需硬體廠商發行更新才會加入新金鑰到信任資料庫 (db)。Linux Vendor Firmware Service (LVFS, Linux 製造商韌體服務) 作為韌體更新彙整平台,以 fwupd 等工具幫助使用者從發行版中直接更新主機韌體。開發者指出 Key Exchange Key (KEK) 更新成功率約 98%,信任資料庫更新約 99%,偶因 efivarfs 空間碎片化發生失敗;重開機並回復 BIOS 預設可重新排列空間,提升更新成功率。
若硬體廠商不提供韌體更新,使用者唯有停用安全啟動才能進行新系統安裝。此外,部分廠商曾遺失平台金鑰 (Platform Key, PK),須以硬體重置或更換設備才能重建金鑰架構;KEK 更新機制尚屬首度大規模實作,也可能因廠商疏失而無法順利執行。有討論指出,部分開源韌體專案如 edk2 預設關閉時間驗證 (NO_CHECK_TIME),即便金鑰過期仍不檢查到期日,讓過期金鑰持續可用,但過期後將無法再為新版 shim 或任何安全性修補簽署新的映像檔。
整體而言,Linux 生態在 Microsoft 與硬體廠商掌控根信任鏈的架構下只能盡力因應,發行版維護者需打包新版 shim 並協助使用者更新韌體;使用者則須留意主機廠商更新,視需求停用安全啟動或自行管理 Machine Owner Key (MOK)。社群期望過渡期順利,但面對以 Windows 為主的硬體支援模式,特別是舊硬體用戶,這段過程勢必充滿挑戰。
在 Hacker News 討論中,許多使用者關切韌體是否真的會驗證金鑰到期日,實際上不少 UEFI 韌體並不執行時間檢查;edk2 也預設跳過驗證,使得過期金鑰仍能繼續執行。有人分享 Arch Linux 使用 sbctl 套件進行自建金鑰管理,體驗順暢無痛;Ubuntu、Fedora 則可使用 mokutil 設定 MOK,再透過 DKMS 自動編譯並簽署 NVIDIA 或 VirtualBox 核心模組,減少每次核心更新後的手動簽署工作。然而在多重開機及較少支援的硬體上,手動輸入金鑰或停用安全啟動仍是不少人的解方。
👥 48 則討論、評論 💬
https://news.ycombinator.com/item?id=44601045