UEFI 安全開機的工作原理
UEFI 安全開機是 UEFI 中指定的一項功能,它提供有關開機鏈狀態的驗證。該功能旨在確保韌體自我初始化後,只會執行以密碼編譯驗證的 UEFI 二進位檔案。這些二進位檔案包括 UEFI 驅動程式和主要開機載入器,以及鏈式載入元件。
UEFI 安全開機指定在信任鏈中使用的四個金鑰資料庫。資料庫存放在 UEFI 變數存放區中。
信任鏈如下:
- 平台金鑰 (PK) 資料庫
-
PK 資料庫是信任根。它包含在信任鏈中用於更新金鑰交換金鑰 (KEK) 資料庫的單一公有 PK 金鑰。
若要變更 PK 資料庫,您必須具有私有 PK 金鑰才能簽署更新要求。這包括透過寫入空 PK 金鑰來刪除 PK 資料庫。
- 金鑰交換金鑰 (KEK) 資料庫
-
KEK 資料庫是一份公有 KEK 金鑰清單,這些金鑰用於在信任鏈中更新簽章 (db) 和拒絕清單 (dbx) 資料庫。
若要變更公有 KEK 資料庫,您必須具有私有 PK 金鑰才能簽署更新要求。
- 簽章 (db) 資料庫
-
db 資料庫是一份公有金鑰和雜湊清單,這些金鑰和雜湊用於在信任鏈中驗證所有 UEFI 開機二進位檔案。
若要變更 db 資料庫,您必須具有私有 PK 金鑰或任何一項私有 KEK 金鑰才能簽署更新要求。
- 簽章拒絕清單 (dbx) 資料庫
-
dbx 資料庫是一份不受信任的公有金鑰和二進位檔案雜湊清單,在信任鏈中作為撤銷檔案使用。
dbx 資料庫始終優先於所有其他金鑰資料庫。
若要變更 dbx 資料庫,您必須具有私有 PK 金鑰或任何一項私有 KEK 金鑰才能簽署更新要求。
UEFI 論壇維護有適用於許多已知不良二進位檔案和憑證的公開可用的 dbx,網址為:https://uefi.org/revocationlistfile
。
重要
UEFI 安全開機強制對任何 UEFI 二進位檔案執行簽章驗證。若要允許在 UEFI 安全開機中執行 UEFI 二進位檔案,請使用上述任何私有 db 金鑰予以簽署。
UEFI 安全開機預設為停用,且系統處於 SetupMode
模式。當系統處於 SetupMode
模式時,所有金鑰變數都可以在沒有密碼編譯簽章的情況下更新。設定 PK 後,UEFI 安全開機將啟用,並結束設定模式。