注意:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它會使用 Oracle Cloud Infrastructure 證明資料、租用戶以及區間的範例值。完成實驗室之後,請將這些值取代為您雲端環境特有的值。
使用 mokutil 更新 UEFI 安全啟動的簽章金鑰
本教學課程示範如何使用機器擁有者金鑰 (MOK) 公用程式來管理 Oracle Linux 上 UEFI 安全啟動所使用的憑證。
如需 Secure Boot 及其機制的詳細背景資訊,請參閱 Oracle Linux:Working With UEFI Secure Boot。
簡介
機器擁有者金鑰 (MOK) 設備用於下列作業:
- 更新 UEFI 安全啟動金鑰資料庫。
- 匯入用來簽署第三方或自訂核心模組的金鑰,以便在 UEFI 安全啟動模式下載入這些金鑰。
在 UEFI 安全啟動金鑰資料庫內註冊金鑰的方法有兩種處理:
-
為特定核心二進位檔註冊雜湊。此方法限制只有特定簽署的核心二進位檔使用憑證,因此會安全地防止潛在攻擊。但是,您必須針對每個核心建置或更新執行此工作。
-
註冊用來簽署核心及相關套裝軟體的憑證。由於憑證適用於使用該憑證的所有核心,因此這個方法比雜湊註冊還要少。它可協助作業 (例如倒回至使用該憑證之核心的多個較舊版本)。但是,它的缺點是,它會開啟系統可能正在執行弱點套裝軟體或核心二進位檔的風險。
目標
完成本教學課程時,您應該能夠執行下列作業:
- 安裝 MOK 與
pesign
公用程式。 - 使用雜湊或憑證方法註冊金鑰。
警告:使用具有 UEK R3 的 MOK 公用程式時發生問題。如果您正在使用此核心,請勿繼續本教學課程。
必要條件
- 至少執行 Oracle Linux 7 Update 3 的系統。
- 韌體支援安全開機功能。
- 系統的實體存取。
- 系統韌體與配置支援公用程式。如果您不確定韌體,請不要進行此自學課程。
安裝 mokutil
和 pesign
套裝軟體
根據 Oracle Linux 系統,發出下列其中一個命令:
-
在 Oracle Linux 8 系統上:
sudo dnf install mokutil pesign
-
在 Oracle Linux 7 系統上:
sudo yum install mokutil pesign yum-utils
使用 UEFI 安全啟動金鑰資料庫註冊雜湊
此註冊方法包含兩個任務:
- 擷取特定簽署核心二進位檔的填充雜湊。
- 將雜湊匯入 MOK 清單,以便在開機時載入核心。
兩個作業可以使用同時使用 mokutil
和 pesign
指令的單一指令來完成。
-
使用
/boot/vmlinuz-4.18.0-193.el8.x86_64
作為範例,鍵入下列指令:sudo mokutil --import-hash $(pesign -P -h -i /boot/vmlinuz-4.18.0-193.el8.x86_64 | cut -f 2 -d ' ')
-
輸入並確認 MOK 註冊要求的密碼。
請為此使用任何密碼,但請注意您使用的密碼。系統重新啟動時,會提示您輸入。
-
重新啟動系統以完成註冊。
-
系統出現提示時,請輸入您在匯入雜湊時設定的密碼。
使用 UEFI 安全啟動金鑰資料庫註冊憑證
-
下載核心來源套裝程式。
來源套裝軟體包含用來簽署每個核心和 shim 的憑證金鑰。核心來源套裝軟體可以是 RHCK 核心的
kernel
,也可以是 Unbreakable Enterprise Kernel 的kernel-uek
。根據 Oracle Linux 系統,發出下列其中一個命令:
-
在 Oracle Linux 8 系統上,此指令會下載最新的
kernel
或kernel-uek
來源套裝軟體。sudo dnf download --source kernel|kernel-uek
-
在 Oracle Linux 7 系統上,
yumdownloader
指令可讓您下載所需的特定核心來源套裝軟體版本,例如kernel-uek-4.14.35-1902.303.4.1.el7uek
或kernel-2.6.32-754.2.1.el6.x86_64
。鍵入:
sudo yumdownloader --source <kernel-version>|<kernel-uek-version>
-
-
擷取來源套件以存取套件的延伸驗證 (EV) 憑證,例如:
sudo rpm2cpio ./kernel-uek*.rpm | cpio -idmv
-
輸入並確認 MOK 註冊要求的密碼。
請為此使用任何密碼,但請注意您使用的密碼。系統重新啟動時,會提示您輸入。
注意:請勿匯入來源套裝軟體中包含的 CA 憑證
securebootca.cer
。匯入 CA 憑證可讓任何使用相同 CA 簽署之憑證的核心載入 UEFI 安全啟動無效。 -
重新啟動系統以完成註冊。
-
系統出現提示時,請輸入您匯入憑證時所設定的密碼。
憑證會新增至 MOK 清單,並在啟動時自動傳送至系統金鑰環,以及後續的啟動。
使用這些步驟下載每個來源套裝軟體的多個版本、從每個憑證擷取憑證,並視需要將其匯入至 UEFI 安全啟動資料庫。若要判斷不同核心版本可能必須使用的套裝軟體版本,請參閱Use the Oracle Linux UEFI Secure Boot Update Notice。
其他相關資訊
- Oracle Linux:使用 UEFI 安全啟動
- Oracle Linux 文件
- Oracle Linux 與 Unbreakable Enterprise Kernel (UEK) 發行版本
- mokutil (1) 線上手冊
- pesign (1) 線上手冊
pesign --help
指令
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或前往 Oracle Learning YouTube 通道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請瀏覽 Oracle Help Center。
Use mokutil to Update Signature Keys for UEFI Secure Boot
F55287-01
March 2022
Copyright © 2020, Oracle and/or its affiliates.