更新 KEK 和資料庫憑證

本文提供操作說明,協助您更新 2025 年 11 月 7 日前建立的運算執行個體,以支援安全啟動的新憑證。更新項目包括「允許的簽章資料庫」(db) 和「金鑰交換金鑰」(KEK) 變數。

如果客戶不重新建立受影響的運算執行個體,可以改用 KEK 和資料庫更新。

事前準備

確認執行個體是否需要更新安全啟動憑證。

如果執行個體需要更新,請先備份資料,並找出復原金鑰 (如果使用全磁碟加密 (FDE),例如 BitLocker 或類似的 Linux FDE 工具)。如果設定有誤,變更安全性變數在某些情況下可能會鎖定磁碟存取權。

注意:對於 Linux 執行個體,我們強烈建議先將資料庫更新至 Microsoft UEFI CA 2023,再更新新的墊片。這樣可避免日後發生下列情況:只有 Microsoft UEFI CA 2023 簽署了 shim,但 db 只包含 Microsoft Corporation UEFI CA 2011。如果啟用安全啟動功能,CA 不符可能會導致啟動失敗。

在 Linux 上使用 fwupd 更新資料庫和 KEK

這個方法適用於 fwupdmgr 2.0.10 以上版本。使用「sudo fwupdmgr --version」查看版本。

執行以下指令:

sudo fwupdmgr refresh
sudo fwupdmgr update 5bc922b7bd1adb5b6f99592611404036bd9f42d0
sudo fwupdmgr update b7a1d3d90faa1f6275d9a98da4fb3be7118e61c7

在 Linux 上使用 efitools 更新資料庫和 KEK

下列步驟說明如何使用 efitools 套件更新 dbKEK 變數。

更新「db

  1. 從 Microsoft 的存放區下載更新二進位檔:

    wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
    
  2. 將變數設為可變動 (移除寫入保護標記):

    sudo chattr -i /sys/firmware/efi/efivars/db-*
    
  3. 使用 efi-updatevar 更新變數:

    sudo efi-updatevar -a -f DBUpdate3P2023.bin db
    

更新「KEK

  1. 下載包含憑證更新的 .cab 封存檔:

    wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. 如果沒有安裝 gcab,請先安裝。舉例來說,在 Debian 或 Ubuntu 上,請使用下列指令:

    sudo apt update
    sudo apt install gcab-bin
    
  3. 使用 gcab 解壓縮封存檔:

    gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  4. 確認檔案具有預期的 MD5 雜湊 (6a1c58e1b8391c0e3f2e97f83917807a):

    md5sum kek2023update.bin
    
  5. KEK 變數設為可變動:

    sudo chattr -i /sys/firmware/efi/efivars/KEK-*
    
  6. 套用更新:

    sudo efi-updatevar -a -f kek2023update.bin KEK
    

在 Linux 上使用 sbsigntool 更新資料庫和 KEK

下列步驟將引導您使用 sbsigntool 套件及其 sbkeysync 公用程式,更新 dbKEK 變數。

更新「db

  1. 下載檔案:

    wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
    
  2. 將檔案放入 sbkeysync 的適當位置,將 db 設為可變動,然後執行同步:

    sudo mkdir -p /etc/secureboot/keys/db
    sudo cp DBUpdate3P2023.bin /etc/secureboot/keys/db/
    sudo chattr -i /sys/firmware/efi/efivars/db-*
    sudo sbkeysync --verbose
    

更新「KEK

  1. 如要取得 kek2023update.bin,請按照先前的「efitools」一節所述處理 cab 檔案。
  2. 放置 sbkeysync 的二進位檔、將 KEK 設為可變動,然後執行同步:

    sudo mkdir -p /etc/secureboot/keys/KEK
    sudo cp kek2023update.bin /etc/secureboot/keys/KEK/
    sudo chattr -i /sys/firmware/efi/efivars/KEK-*
    sudo sbkeysync --verbose
    

在 Windows 上更新資料庫和 KEK

在 Windows 執行個體上,如果執行相容版本,系統可能會觸發登錄設定和排定的工作,以啟動更新:

  1. 請確認 Windows 執行個體已套用近期的每月更新。
  2. 以 PowerShell 管理員身分執行:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name "AvailableUpdates" -Value 0x5944
    Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
    
  3. 重新啟動執行個體,允許對韌體變數執行作業。如果虛擬化安全功能同時啟用,部分環境可能需要重新啟動兩次。