Kernel
為什麼核心鎖定會阻止休眠?
在我的 systemd 日誌 (journalctl) 中,我經常看到這條消息:
冬眠受到限制;見 man kernel_lockdown.7
這似乎源於核心鎖定功能,當您在 UEFI 模式下啟動並啟用安全啟動時,該功能(僅?)處於活動狀態。
據我了解,此功能應該防止在使用者空間執行的程序修改核心。
雖然到目前為止我確實理解這一點,但我只是不明白一件事: **為什麼核心鎖定會禁用該功能?**為什麼它完全禁用休眠?
禁用此功能的休眠究竟是什麼“不安全”?
似乎鎖定的核心不希望我讓我的設備休眠。
Linux 核心 v5.6.15
Fedora 32 Silverblue
在 Fedora Ask交叉發布。
如手冊中所述,
不允許未加密的休眠/掛起交換,因為核心映像被保存到可以訪問的介質中。
未加密的休眠將休眠系統記憶體的內容按原樣儲存在磁碟上。這允許攻擊者在系統休眠時修改這些內容,從而在系統恢復時更改正在執行的系統,從而破壞鎖定。
聯機幫助頁給出了鎖定支持加密休眠的錯誤希望,但目前情況並非如此,真正的要求似乎是簽名休眠圖像,而不是(或可能除了,取決於鎖定模式)加密圖像。
Matthew Garrett 一直在努力解決這個問題。他描述了他的建議,即在 2021 年 2 月讓休眠狀態與鎖定一起工作,並在 2021 年 12 月為剩餘的幾個問題提供了實用解決方案的更新。總體構想是將休眠圖像與 TPM 狀態相關聯,以便鎖定係統只會恢復在該系統上生成的休眠圖像,此後不會被修改;到達那裡需要知道什麼 TPM 狀態對映像有效,並且 TPM 狀態是由核心自己到達的。