共用方式為


認證並簽署更新套件

由於韌體更新會以驅動程式套件的形式傳遞,因此必須完成與一般驅動程式套件相同的所有驗證和簽署程式。 驅動程式套件必須通過 Windows 硬體實驗室套件 (Windows HLK) 測試,而且必須提交至合作夥伴中心進行簽署。 簽署之後,驅動程式套件將會散發回送出者。

簽署驅動程式套件與簽署 UEFI 韌體或裝置韌體本身不同。 Windows 會使用透過安全性類別目錄傳遞的驅動程式套件簽章來驗證 firmware.bin 的完整性,再將它交給 UEFI。 Windows 不提供韌體的安全性類別目錄。 UEFI 韌體或裝置韌體更新上的簽章是由平臺韌體驗證,而且 Windows 不會檢查。 IHV/OEM 負責透過簽章驗證、加密或其他方式確保韌體的完整性和安全性。

UEFI 安全開機的韌體更新簽署程式和需求

簽署 UEFI 韌體更新以供使用 UEFI 安全開機的 Windows 裝置使用時,簽署程式需要下列工作的一些組合:

  1. 簽署更新的韌體映射 (s) 。

  2. 簽署攜帶更新韌體的密封片。

  3. 簽署提供給作業系統的韌體更新套件;此套件將包含此封裝。

在這些工作中,一律只需要 #3。 在啟用安全開機的系統上,所有 UEFI 韌體都必須經過簽署,這表示當更新考慮 UEFI 驅動程式或應用程式時,需要 #1。 對於連線待命系統,所有系統韌體也需要 #1。 如果韌體更新未受到其他方式保護,則必須簽署封裝,才能保護韌體更新本身,並確保更新套件的真實性,再進行安裝。

下圖指出本文其餘部分所討論之各種元件的簽署者。

韌體更新元件和簽署者。

簽署更新的韌體

簽署時,必須在開機期間由系統的韌體載入器驗證更新韌體簽章。 這至少會在重新開機時自動發生,但基於可靠性和使用者體驗考慮,建議預先驗證。

在 Arm 系統上,無法安裝與韌體映射本身不同的 UEFI 驅動程式或應用程式,因為唯一允許的 UEFI PE/COFF 映射是 Microsoft Windows OS 載入器 (BootMgfw.efi) ,而且會使用包含 Microsoft Windows Production CA 2011 的唯一 UEFI 允許資料庫專案進行驗證。 因此,只能新增系統和裝置韌體。 在非 Arm 系統上,UEFI 驅動程式和應用程式可以使用任何金鑰鏈結回 UEFI 允許資料庫中的金鑰進行簽署。

系統或裝置韌體可以透過金鑰鏈結回到系結至系統開機 ROM 的金鑰簽署,或受到其他方法保護 (,例如,簽署的封包,然後受到保護的安裝) 。

簽署密封

密封內容是由 OEM 所決定。 此封裝可能只包含韌體映射目錄,以 OEM 選擇的任何格式進行更新,或可能以 EFI 應用程式映射的形式傳遞, (PE/COFF 檔案格式) 。 如果封裝是 PE/COFF 檔案,則必須由 OEM 簽署,才能提交至 Microsoft for Windows 韌體更新套件簽署。

在 Arm 系統上,由於 UEFI 允許的資料庫 (「db」) 中不允許 Microsoft Production CA 2011 以外的任何金鑰,且 Microsoft 不會使用此 CA 底下的簽署者來簽署協力廠商 UEFI 程式碼,因此這類密封的負載無法使用一般 UEFI LoadImage 服務。 不過,針對開機 ROM 公開金鑰或 UEFI PK,可能會使用平臺特定驗證來載入此密封應用程式。 對於任何其他影像,此負載仍必須測量為 TPMPC[7]。 更普遍地, 例如,當密封簽署視為必要 (時,若要確保完整更新套件的完整性和真實性) ,而太空機可能會構成 UEFI 外部韌體韌體更新,則應該以這種方式簽署,使其可以使用平臺保留的非 UEFI (金鑰進行驗證,例如,使用金鑰鏈結回到系結至開機 ROM 或 UEFI PK) 的公開金鑰進行簽署。

在非 Arm 系統上,只要使用金鑰鏈結回到 UEFI 允許資料庫中的專案進行簽署,則其可以是 EFI 應用程式。 然後,UEFI 安全開機可以自動用來驗證密封的完整性。

簽署韌體更新套件

韌體更新套件必須提交至合作夥伴中心,才能簽署。 此步驟會建立套件內容的目錄簽章。 Microsoft OS 載入器會使用類別目錄簽章來驗證套件是否為真確,且尚未在透過 UpdateCapsule 將實際更新提供給韌體之前遭到竄改。

將韌體更新套件提交至合作夥伴中心以進行簽署:

  1. 根據上一節中的指示,簽署太空艙的內容。

  2. 建立包含封裝的韌體更新套件,並測試簽署韌體更新套件。 如需詳細資訊,請參閱 撰寫更新驅動程式套件

    從Windows 8開始,Windows 不允許 OEM Verisign 簽署的韌體更新套件,即使在測試環境中也一樣。

  3. 安裝韌體更新套件來更新韌體。

  4. 在測試系統上安裝 Windows 硬體實驗室套件 (HLK) ,並執行適用于韌體裝置的所有測試。

  5. 將 HLK 記錄和驅動程式提交至合作夥伴中心進行簽章。

提交韌體更新驅動程式套件時,請務必選取Windows 8或更新版本作為適用的 OS。 如果您選擇任何下層 OS,合作夥伴中心將會使用 SHA1 演算法在驅動程式套件中簽署類別目錄。 從 Windows 8 開始,所有韌體更新驅動程式套件都必須經過 SHA256 簽署。

透過韌體驅動程式套件進行系統和裝置韌體更新

填入 ESRT 資料表

自訂不同地理區域的韌體

撰寫韌體更新套件

安裝更新