KEK と db 証明書を更新する

このドキュメントでは、2025 年 11 月 7 日より前に作成されたコンピューティング インスタンスで、セキュアブートの新しい証明書をサポートするために、許可された署名データベース(db)と鍵交換鍵(KEK)の変数を更新する手順について説明します。

KEK と DB の更新は、影響を受けるコンピューティング インスタンスを再作成しないお客様向けの代替手段です。

始める前に

インスタンスでセキュアブート証明書の更新が必要であることを確認します。

インスタンスの更新が必要な場合は、これらの手順を実行する前に、データをバックアップし、BitLocker などのフルディスク暗号化(FDE)や類似の Linux FDE ツールを使用している場合は復元キーを確認します。セキュリティ変数を変更すると、構成が正しくない場合にディスクへのアクセスがロックされることがあります。

注意: Linux インスタンスの場合、新しい shim を更新する前に、db を Microsoft UEFI CA 2023 に更新することを強くおすすめします。これにより、shim が Microsoft UEFI CA 2023 によってのみ署名され、db に Microsoft Corporation UEFI CA 2011 のみが含まれるという将来のシナリオを回避できます。セキュアブートが有効になっている場合、この CA の不一致により起動に失敗する可能性があります。

fwupd を使用して Linux で db と KEK を更新する

このメソッドは、fwupdmgr バージョン 2.0.10 以降でサポートされています。sudo fwupdmgr --version を使用してバージョンを確認します。

以下のコマンドを実行します。

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

efitools を使用して Linux で db と KEK を更新する

次の手順では、efitools パッケージを使用して db 変数と KEK 変数を更新する方法について説明します。

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
    

sbsigntool を使用して Linux で db と KEK を更新する

次の手順では、sbsigntool パッケージとその sbkeysync ユーティリティを使用して、db 変数と KEK 変数を更新する方法について説明します。

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. 前の efitools セクションで説明したように cab ファイルを処理して、kek2023update.bin を取得します。
  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 で db と 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. インスタンスを再起動して、ファームウェア変数に対するオペレーションを許可します。仮想化セキュリティ機能が同時に有効になっている環境では、再起動を 2 回行う必要がある場合があります。