安全開機

「安全開機」是由電腦產業成員所開發的一種安全標準,可協助確保裝置只會使用原始設備製造商 (OEM) 所信任的軟體來開機。 當電腦啟動時,此固件會檢查每一項開機軟體的簽章,包括 UEFI 固件驅動程式 (也稱為選項 Rom) 、EFI 應用程式和作業系統。 如果簽章有效,則電腦會開機,而且此固件可讓您控制作業系統。

OEM 可以使用來自固件製造商的指示來建立安全開機金鑰,並將其儲存在電腦固件中。 當您新增 UEFI 驅動程式時,您也必須確定這些驅動程式已簽署並包含在安全開機資料庫中。

如需安全開機程式如何運作的相關資訊,包括受信任的開機和測量開機,請參閱保護 Windows 10 開機程式。

安全開機需求

為了支援安全開機,您必須提供下列各項。

硬體需求 詳細資料
UEFI 版本2.3.1 勘誤 C 變數 您必須將變數設定為 [ SecureBoot = 1 ],並將 SetupMode = 0 加上簽章資料庫 (EFI_IMAGE_SECURITY_DATABASE) 在安全地預先布建的情況下啟動電腦,以及包含在有效 KEK 資料庫中設定的 PK。 如需詳細資訊,請搜尋Windows 硬體相容性計畫規格和原則的 PDF 下載中的 system.fundamentals.firmware.cs.uefisecureboot.connectedstandby 系統需求。
UEFI 2.3.1 第27節 平臺必須公開符合 UEFI v1.0 第27節之設定檔的介面。
UEFI 簽名資料庫 您必須在 UEFI 簽章資料庫 (db) 中布建正確的金鑰,才能讓 Windows 開機。 它也必須支援對資料庫進行安全驗證的更新。 安全變數的儲存體必須與執行中的作業系統隔離,使其無法在沒有偵測的情況下修改。
固件簽署 所有的固件元件都必須使用至少具有 SHA-256 的 RSA-2048 進行簽署。
開機管理程式 開啟電源時,系統必須開始在固件中執行程式碼,並使用公開金鑰加密(依據演算法原則)來確認開機順序中所有映射的簽章,包括 Windows boot 管理員在內。
復原保護 系統必須防止將固件復原到較舊的版本。
EFI_HASH_PROTOCOL 平臺會提供每個 UEFI v1.0) 的 EFI_HASH_PROTOCOL (,以卸載密碼編譯雜湊作業,以及 EFI_RNG_PROTOCOL (Microsoft 定義的) 來存取平臺熵。

簽名資料庫和金鑰

在部署電腦之前,您是以 OEM 將安全開機資料庫儲存在電腦上。 這包括 (db) 的簽章資料庫、撤銷的簽章資料庫 (.dbx) ,以及金鑰註冊金鑰資料庫 (KEK) 。 這些資料庫會儲存在製造期間 (NV RAM) 的非靜態 RAM 上。

簽章資料庫 (db) 和撤銷的簽章資料庫 (.dbx) 列出 UEFI 應用程式的簽署者或映射雜湊、作業系統載入器 (例如 Microsoft 作業系統載入器或開機管理程式) ,以及可在裝置上載入的 UEFI 驅動程式。 撤銷的清單包含不再受信任且可能無法載入的專案。 如果兩個資料庫中都有影像雜湊,則撤銷的簽章資料庫 (.dbx) 會採用該值。

金鑰註冊金鑰資料庫 (KEK) 是個別的簽署金鑰資料庫,可用來更新簽章資料庫和撤銷的簽章資料庫。 Microsoft 要求將指定的金鑰包含在 KEK 資料庫中,如此一來,在未來,Microsoft 就可以將新的作業系統新增到簽章資料庫,或將已知的不良影像新增至撤銷的簽章資料庫。

在新增這些資料庫之後,以及在最後一次的固件驗證和測試之後,OEM 會將該固件鎖定在編輯中,但以正確金鑰簽署的更新,或由實際存在的使用者(使用 [固件] 功能表)進行更新,然後產生平臺金鑰 (PK) 。 PK 可以用來簽署 KEK 的更新,或關閉安全開機。

您應洽詢您的固件製造商,以取得建立這些資料庫的工具和協助。

開機順序

  1. 開啟電腦之後,每個簽章資料庫都會針對平臺金鑰進行檢查。
  2. 如果不信任此固件,UEFI 固件必須起始 OEM 專屬的復原,才能還原受信任的固件。
  3. 如果 Windows 開機管理程式發生問題,則會嘗試將 Windows 開機管理程式的備份副本開機。 如果這也失敗,則固件必須起始 OEM 特定的修復。
  4. Windows Boot 管理程式開始執行之後,如果驅動程式或 NTOS 核心發生問題,就會載入 Windows 復原環境 (Windows RE) ,以便復原這些驅動程式或核心映射。
  5. Windows 載入反惡意程式碼軟體。
  6. Windows 載入其他核心驅動程式,並初始化使用者模式進程。