簡體   English   中英

安全啟動和內核鎖定之間有什么關系嗎?

[英]Is there any relationship between Secure Boot and Kernel Lockdown?

到目前為止,我用谷歌搜索,這兩個功能似乎是獨立的。

安全啟動依賴於內核簽名,因此引導加載程序將檢查(內核/單映像應用程序)簽名,如果有效將調用內核啟動函數。

鎖定是另一個功能,其中“鎖定代碼旨在允許內核在啟動早期鎖定 - 足夠早,以至於我們還沒有kmalloc()的能力。甚至不允許特權用戶訪問內核中存在的機密數據記憶。”

在內核被驗證為有效后,通過引導參數/sysfs 控制進入鎖定。

我的理解正確嗎?

因此,在禁用安全啟動的情況下,鎖定功能應該仍然有效。

是的,我會說你的理解是正確的。

安全啟動是在硬件中實現的安全功能(即直接在您的 CPU 中,但它也可以在 UEFI 固件中實現)。 這是一種驗證機制,在打開計算機電源時首先完成。 一些已知的公鑰存儲在硬件中,用於在運行引導加載程序之前驗證其簽名。 然后可以通過引導過程的多個階段重復該過程,其中每個階段驗證下一個階段,直到操作系統啟動。 要了解更多信息,請查看有關安全啟動的 Debian 文檔頁面

內核鎖定是 Linux 內核的一項安全功能,最近在 5.4 版中作為可選安全模塊引入。 正如LWN 這篇有趣的文章中提到的,內核鎖定的目的是為了區分以 root 身份運行和以內核模式運行代碼的能力。 根據配置,內核鎖定可以禁用允許修改正在運行的內核或從用戶空間提取機密信息的內核功能。 查看將功能引入 Linux 的相關提交消息

安全啟動和內核鎖定之間的關系可以通過這個非常重要的考慮來解釋(來自上面鏈接的同一篇 LWN 文章):

UEFI 安全啟動的支持者認為這種分離 [即內核鎖定] 是必要的; 否則安全啟動的承諾(系統只會在內核模式下運行受信任的代碼)就無法兌現。 關閉特權攻擊者可以在內核模式下運行任意代碼的路徑需要禁用內核中的許多功能。

換句話說,如果經過驗證和運行的內核可以被用戶進程修改,那么人們可能會爭辯說安全啟動是無用的。 事實上,如果沒有適當的內核強化,潛在的攻擊者可以利用特權用戶進程來改變正在運行的內核,從而破壞系統的整個安全模型。

另一方面,人們可以很容易地爭辯說,如果沒有安全啟動,內核鎖定是沒有用的,因為潛在的攻擊者可能會破壞啟動鏈(例如,修改引導加載程序或磁盤上的內核映像)並使機器運行修改后的內核下次開機。

盡管如此,這兩個特征是相互獨立的 仍然有沒有內核鎖定的安全啟動的有效用例,反之亦然,沒有安全啟動的內核鎖定。 這一切最終取決於您的威脅模型是什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM