このドキュメントでは、2025 年 11 月 7 日より前に作成したコンピューティング インスタンスで、セキュアブートの更新された証明書を信頼するように、許可された署名データベース(db)と鍵交換鍵(KEK)の変数を更新する手順について説明します。
KEK と db の更新は、影響を受けるコンピューティング インスタンスを再作成しないお客様向けの代替手段です。
始める前に
セキュアブート KEK 証明書と db 証明書を更新する前に、インスタンスで更新が必要かどうかを確認し、次の準備を完了して、起動や復号化に関する潜在的な問題を回避します。
- 前提条件の確認: インスタンスでセキュア ブート証明書の更新が必要であることを確認します。
- データの完全性とキーの復元: ディスク暗号化(BitLocker または LUKS FDE)の復元キーを見つけて、重要なデータをバックアップします。セキュリティ変数を変更すると、構成が正しくない場合にディスクへのアクセスがロックされる可能性があります。
- Linux アップデートの順序に関する推奨事項: Linux インスタンスの場合は、新しい shim に更新する前に、
dbUEFI 変数を Microsoft UEFI CA 2023 に更新することをおすすめします。このシーケンスにより、データベースに 2011 証明書のみが含まれているときに、Microsoft UEFI CA 2023 のみで署名されたシム アップデートが適用された場合に発生する可能性のある CA の不一致を防ぐことができます。 - カスタム PK または KEK 構成: インスタンスがカスタム セキュアブート変数(カスタム
PKやKEKなど)を使用している場合、このガイドで提供されている標準の更新ファイル(DBUpdate3P2023.binまたはkek2023update.bin)は直接適用されません。UEFI ファームウェアでは、システムに存在するKEKまたはPKの秘密鍵でアップデート ファイルに署名する必要があります。カスタム鍵を使用する場合は、独自の秘密鍵でアップデート バイナリに署名するか、カスタム認証局を通じてアップデートを管理する必要があります。
Linux で db と KEK を更新する
Allowed Signature Database(db)と Key Exchange Key(KEK)を更新するには、オペレーティング システムのオプションを選択します。
Debian または Ubuntu
Debian または Ubuntu でセキュアブート証明書を更新するには、fwupd、efitools、または sbsigntool を使用します。
オプション 1: fwupd を使用して更新する(推奨)
証明書の更新には fwupd を使用することをおすすめします。このメソッドには fwupdmgr バージョン 2.0.10 以降が必要です。sudo fwupdmgr --version を実行してバージョンを確認します。
次のコマンドを実行します。
sudo fwupdmgr refresh
sudo fwupdmgr update 5bc922b7bd1adb5b6f99592611404036bd9f42d0
sudo fwupdmgr update b7a1d3d90faa1f6275d9a98da4fb3be7118e61c7
オプション 2: efitools を使用して更新する
efitools パッケージを使用して db 変数と KEK 変数を更新する手順は次のとおりです。
db を更新する
Microsoft から Allowed Signature Database(
db)の更新バイナリをダウンロードします。wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin ```db変数を更新します。sudo chattr -i /sys/firmware/efi/efivars/db-* sudo efi-updatevar -a -f DBUpdate3P2023.bin db sudo chattr +i /sys/firmware/efi/efivars/db-* ```
KEK を更新する
証明書の更新を含む
.cabアーカイブをダウンロードします。wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab ```gcabユーティリティをインストールします。sudo apt update && sudo apt install gcab -y ```アーカイブを抽出し、抽出された
kek2023update.binファイルの SHA-256 ハッシュが99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eafと一致することを確認します。gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab sha256sum kek2023update.bin ```更新を適用します。
sudo chattr -i /sys/firmware/efi/efivars/KEK-* sudo efi-updatevar -a -f kek2023update.bin KEK sudo chattr +i /sys/firmware/efi/efivars/KEK-* ```
オプション 3: sbsigntool を使用して更新する
sbsigntool パッケージの sbkeysync ユーティリティを使用して db 変数と KEK 変数を更新する手順は次のとおりです。
sbsigntoolとgcabをインストールします。sudo apt update && sudo apt install sbsigntool gcab -y ```
db を更新する
Microsoft から
db更新バイナリをダウンロードします。wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin ```キーを同期します。
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 sudo chattr +i /sys/firmware/efi/efivars/db-* ```
KEK を更新する
KEK 証明書の更新をダウンロードして抽出します。
wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab ```抽出した
kek2023update.binファイルの SHA-256 ハッシュが99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eafと一致することを確認します。sha256sum kek2023update.bin ```キーを同期します。
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 sudo chattr +i /sys/firmware/efi/efivars/KEK-* ```
Red Hat Enterprise Linux(RHEL)
RHEL でセキュアブート証明書を更新するには、sbsigntools を使用します。RHEL イメージには、UEFI 証明書の更新をすぐにサポートしていない古いバージョンの fwupd が含まれている場合があります。
sbsigntools パッケージの sbkeysync ユーティリティを使用して db 変数と KEK 変数を更新する手順は次のとおりです。
EPEL リポジトリを有効にして、
sbsigntoolsとcabextractをインストールします。sudo dnf install epel-release -y sudo dnf install sbsigntools cabextract -ydb変数を更新する手順は次のとおりです。Microsoft から Allowed Signature Database(
db)の更新バイナリをダウンロードします。wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.binキーを同期します。
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 sudo chattr +i /sys/firmware/efi/efivars/db-*
KEK変数を更新する手順は次のとおりです。KEK 証明書の更新をダウンロードして抽出します。
wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab抽出した
kek2023update.binファイルの SHA-256 ハッシュが99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eafと一致することを確認します。sha256sum kek2023update.binキーを同期します。
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 sudo chattr +i /sys/firmware/efi/efivars/KEK-*
SUSE Linux Enterprise Server(SLES)
SLES または openSUSE でセキュアブート証明書を更新するには、sbsigntools または efitools を使用します。SLES イメージには古いバージョンの fwupd が含まれているか、まったく提供されていない可能性があります。
オプション 1: sbsigntools を使用して更新する
sbsigntools パッケージの sbkeysync ユーティリティを使用して db 変数と KEK 変数を更新する手順は次のとおりです。
SUSE Package Hub を有効にして、
sbsigntoolsとcabextractをインストールします。sudo SUSEConnect -p PackageHub/15.5/x86_64 sudo zypper install sbsigntools cabextract -y
db を更新する
Microsoft から
db更新バイナリをダウンロードします。wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.binキーを同期します。
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 sudo chattr +i /sys/firmware/efi/efivars/db-*
KEK を更新する
KEK 証明書の更新をダウンロードして抽出します。
wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab抽出した
kek2023update.binファイルの SHA-256 ハッシュが99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eafと一致することを確認します。sha256sum kek2023update.binキーを同期します。
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 sudo chattr +i /sys/firmware/efi/efivars/KEK-*
オプション 2: efitools を使用して更新する
efitools パッケージを使用して db 変数と KEK 変数を更新する手順は次のとおりです。
db を更新する
Microsoft から Allowed Signature Database(
db)の更新バイナリをダウンロードします。wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bindb変数を更新します。sudo chattr -i /sys/firmware/efi/efivars/db-* sudo efi-updatevar -a -f DBUpdate3P2023.bin db sudo chattr +i /sys/firmware/efi/efivars/db-*
KEK を更新する
証明書の更新を含む
.cabアーカイブをダウンロードします。wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cabSUSE Package Hub を有効にして、
gcabユーティリティをインストールします。sudo SUSEConnect -p PackageHub/15.5/x86_64 sudo zypper install gcab -yアーカイブを抽出し、抽出された
kek2023update.binファイルの SHA-256 ハッシュが99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eafと一致することを確認します。gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab sha256sum kek2023update.bin更新を適用します。
sudo chattr -i /sys/firmware/efi/efivars/KEK-* sudo efi-updatevar -a -f kek2023update.bin KEK sudo chattr +i /sys/firmware/efi/efivars/KEK-*
Windows で db と KEK を更新する
このインスタンスでセキュアブートを使用しない場合、または使用する予定がない場合は、これらの証明書の更新を適用する必要はありません。通常、Windows オペレーティング システムは、セキュアブートが有効になっていない場合、セキュアブート証明書の更新を適用しようとする試みを無視します。これは、更新が不要であるためです。
後でセキュアブートを使用する場合は、まずインスタンスでセキュアブートを有効にして、セキュアブート証明書を更新する必要があります。
Windows インスタンスでは、レジストリ設定とスケジュール設定されたタスクにより、互換性のあるバージョンで更新がトリガーされます。
- Windows インスタンスに最新の月次アップデートが適用されていることを確認します。
PowerShell で管理者として次のコマンドを実行します。
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name "AvailableUpdates" -Value 0x5944 Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"インスタンスを再起動して、ファームウェア変数に対するオペレーションを許可します。仮想化セキュリティ機能が有効になっている環境では、再起動を 2 回行う必要があります。