KEK- und DB-Zertifikate aktualisieren

Dieses Dokument enthält eine Anleitung zum Aktualisieren der Variablen „Allowed Signature Database“ (db) und „Key Exchange Key“ (KEK) auf Compute-Instanzen, die Sie vor dem 7. November 2025 erstellt haben, damit aktualisierte Zertifikate für Secure Boot vertrauenswürdig sind.

KEK und Datenbankaktualisierung sind eine Alternative für Kunden, die ihre betroffenen Compute-Instanzen nicht neu erstellen.

Hinweis

Bevor Sie Ihre KEK- und db-Zertifikate für Secure Boot aktualisieren, prüfen Sie, ob für Ihre Instanzen ein Update erforderlich ist, und treffen Sie die folgenden Vorbereitungen, um potenzielle Probleme beim Booten oder Entschlüsseln zu vermeiden:

  • Voraussetzungsüberprüfung:Prüfen Sie, ob für Ihre Instanzen ein Update der Secure Boot-Zertifikate erforderlich ist.
  • Datenintegrität und Schlüsselwiederherstellung:Suchen Sie Ihre Wiederherstellungsschlüssel für die Festplattenverschlüsselung (BitLocker oder LUKS FDE) und sichern Sie wichtige Daten. Wenn Sie Sicherheitsvariablen ändern, kann der Zugriff auf Festplatten gesperrt werden, falls die Konfiguration falsch ist.
  • Empfohlene Reihenfolge für Linux-Updates:Bei Linux-Instanzen empfehlen wir, die db-UEFI-Variable auf Microsoft UEFI CA 2023 zu aktualisieren, bevor Sie neue Shims installieren. Diese Reihenfolge trägt dazu bei, ein potenzielles Szenario mit CA-Konflikten zu verhindern, wenn ein Shim-Update, das nur mit der Microsoft UEFI CA 2023 signiert ist, angewendet wird, während die Datenbank nur das Zertifikat von 2011 enthält.
  • Benutzerdefinierte PK- oder KEK-Konfigurationen: Wenn auf Ihrer Instanz benutzerdefinierte Secure Boot-Variablen (z. B. ein benutzerdefinierter PK oder KEK) verwendet werden oder Sie ein System außerhalb von Compute Engine verwenden, können die in diesem Dokument bereitgestellten Standard-Aktualisierungsdateien (DBUpdate3P2023.bin oder kek2023update.bin) nicht direkt angewendet werden. Die UEFI-Firmware erfordert, dass Update-Dateien mit dem privaten Schlüssel des auf dem System registrierten KEK oder PK signiert werden. kek2023update.bin wird speziell mit dem standardmäßigen Compute Engine-PK signiert. Wenn Sie benutzerdefinierte Schlüssel verwenden, müssen Sie die Update-Binärdateien mit Ihren eigenen privaten Schlüsseln signieren oder die Updates über Ihre benutzerdefinierte Zertifizierungsstelle verwalten. Weitere Informationen finden Sie unter Fehlerbehebung bei KEK-Updates.
  • Cloud de Confiance by S3NS Backup- und DR-Appliances:Dies sind verwaltete Appliances. Sie müssen die Secure Boot-Zertifikate auf diesen Geräten nicht manuell aktualisieren. Cloud de Confiance by S3NS verwaltet alle Updates automatisch.

Datenbank und KEK unter Linux aktualisieren

So aktualisieren Sie die Datenbank mit zulässigen Signaturen (db) und den Schlüsselaustauschschlüssel (KEK):

Debian oder Ubuntu

Sie können die Secure Boot-Zertifikate unter Debian oder Ubuntu mit fwupd, efitools oder sbsigntool aktualisieren.

Wir empfehlen, fwupd zum Aktualisieren Ihrer Zertifikate zu verwenden. Für diese Methode ist die fwupdmgr-Version 2.0.10 oder höher erforderlich. Prüfen Sie Ihre Version mit dem Befehl sudo fwupdmgr --version.

Führen Sie folgende Befehle aus:

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

Option 2: Aktualisierung über efitools

So aktualisieren Sie die Variablen db und KEK mit dem Paket efitools:

Datenbank aktualisieren
  1. Laden Sie die Binärdatei für die Aktualisierung der Datenbank mit zulässigen Signaturen (db) von Microsoft herunter:

     wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin
    
  2. Aktualisieren Sie die Variable 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 aktualisieren
  1. Laden Sie das Archiv .cab mit dem Zertifikatsupdate herunter:

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. Installieren Sie das Dienstprogramm gcab:

     sudo apt update && sudo apt install gcab -y
    
  3. Extrahieren Sie das Archiv und prüfen Sie, ob der SHA‑256-Hash der extrahierten Datei kek2023update.bin mit 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf übereinstimmt:

     gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     sha256sum kek2023update.bin
    
  4. Wenden Sie das Update an:

     sudo chattr -i /sys/firmware/efi/efivars/KEK-*
     sudo efi-updatevar -a -f kek2023update.bin KEK
     sudo chattr +i /sys/firmware/efi/efivars/KEK-*
    

Option 3: Aktualisierung über sbsigntool

So aktualisieren Sie die Variablen db und KEK mit dem Dienstprogramm sbkeysync aus dem Paket sbsigntool: Installieren Sie sbsigntool und gcab:

sudo apt update && sudo apt install sbsigntool gcab -y
Datenbank aktualisieren
  1. Laden Sie die db-Update-Binärdatei von Microsoft herunter:

     wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin
    
  2. Schlüssel synchronisieren:

     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 aktualisieren
  1. Laden Sie das KEK-Zertifikatsupdate herunter und extrahieren Sie es:

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. Prüfen Sie, ob der SHA-256-Hash der extrahierten Datei kek2023update.bin mit 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf übereinstimmt:

     sha256sum kek2023update.bin
    
  3. Schlüssel synchronisieren:

     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)

Sie können die Secure Boot-Zertifikate unter RHEL mit sbsigntools aktualisieren. RHEL-Images haben möglicherweise eine ältere Version von fwupd, die UEFI-Zertifikatsupdates nicht sofort unterstützt.

So aktualisieren Sie die Variablen db und KEK mit dem sbkeysync-Dienstprogramm aus dem sbsigntools-Paket:

  1. Aktivieren Sie das EPEL-Repository und installieren Sie sbsigntools und cabextract:

    sudo dnf install epel-release -y
    sudo dnf install sbsigntools cabextract -y
    
  2. So aktualisieren Sie die Variable db:

    1. Laden Sie die Binärdatei für die Aktualisierung der Datenbank mit zulässigen Signaturen (db) von Microsoft herunter:

      wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin
      
    2. Schlüssel synchronisieren:

      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-*
      
  3. So aktualisieren Sie die Variable KEK:

    1. Laden Sie das KEK-Zertifikatsupdate herunter und extrahieren Sie es:

      wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      
    2. Prüfen Sie, ob der SHA-256-Hash der extrahierten Datei kek2023update.bin mit 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf übereinstimmt:

      sha256sum kek2023update.bin
      
    3. Schlüssel synchronisieren:

      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)

Sie können die Secure Boot-Zertifikate unter SLES oder openSUSE mit sbsigntools oder efitools aktualisieren. SLES-Images enthalten möglicherweise eine ältere Version von fwupd oder gar keine.

Option 1: Aktualisierung mithilfe von sbsigntools

Wenn Sie die Variablen db und KEK mit dem Dienstprogramm sbkeysync aus dem Paket sbsigntools aktualisieren möchten, aktivieren Sie den SUSE Package Hub und installieren Sie sbsigntools und cabextract:

sudo SUSEConnect -p PackageHub/15.5/x86_64
sudo zypper install sbsigntools cabextract -y
Datenbank aktualisieren
  1. Laden Sie die db-Update-Binärdatei von Microsoft herunter:

     wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin
     ```
    
  2. Schlüssel synchronisieren:

     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 aktualisieren
  1. Laden Sie das KEK-Zertifikatsupdate herunter und extrahieren Sie es:

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     ```
    
  2. Prüfen Sie, ob der SHA-256-Hash der extrahierten Datei kek2023update.bin mit 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf übereinstimmt:

     sha256sum kek2023update.bin
     ```
    
  3. Schlüssel synchronisieren:

     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-*
     ```
    

Option 2: Aktualisierung über efitools

So aktualisieren Sie die Variablen db und KEK mit dem Paket efitools:

Datenbank aktualisieren
  1. Laden Sie die Binärdatei für die Aktualisierung der Datenbank mit zulässigen Signaturen (db) von Microsoft herunter:

     wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin
     ```
    
  2. Aktualisieren Sie die Variable 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 aktualisieren
  1. Laden Sie das Archiv .cab mit dem Zertifikatsupdate herunter:

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     ```
    
  2. Aktivieren Sie den SUSE Package Hub und installieren Sie das Dienstprogramm gcab:

     sudo SUSEConnect -p PackageHub/15.5/x86_64
     sudo zypper install gcab -y
     ```
    Note: Replace `15.5` with your SLES version if different.
    
  3. Extrahieren Sie das Archiv und prüfen Sie, ob der SHA‑256-Hash der extrahierten Datei kek2023update.bin mit 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf übereinstimmt:

     gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     sha256sum kek2023update.bin
     ```
    
  4. Wenden Sie das Update an:

     sudo chattr -i /sys/firmware/efi/efivars/KEK-*
     sudo efi-updatevar -a -f kek2023update.bin KEK
     sudo chattr +i /sys/firmware/efi/efivars/KEK-*
     ```
    

Datenbank und KEK unter Windows aktualisieren

Sie müssen diese Zertifikatsaktualisierungen nicht anwenden, wenn Sie Secure Boot auf dieser Instanz nicht verwenden oder nicht planen, es zu verwenden. Windows-Betriebssysteme ignorieren in der Regel Versuche, diese Secure Boot-Zertifikatsupdates anzuwenden, wenn Secure Boot nicht aktiviert ist, da das Update nicht erforderlich ist.

Wenn Sie Secure Boot später verwenden möchten, müssen Sie es zuerst auf der Instanz aktivieren, um die Secure Boot-Zertifikate zu aktualisieren.

Auf Windows-Instanzen werden Updates auf kompatiblen Versionen durch Registrierungseinstellungen und geplante Aufgaben ausgelöst:

  1. Achten Sie darauf, dass auf Ihren Windows-Instanzen die aktuellen monatlichen Updates angewendet werden.
  2. Führen Sie als Administrator in PowerShell folgenden Befehl aus:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name "AvailableUpdates" -Value 0x5944
    Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
    
  3. Starten Sie die Instanz neu, um Vorgänge für Firmwarevariablen zu ermöglichen. In einigen Umgebungen sind zwei Neustarts erforderlich, wenn Virtualisierungssicherheitsfunktionen aktiv sind.

Aktualisierung bestätigen

Nachdem Sie die Updates mit fwupd, efitools, sbsigntool oder PowerShell angewendet haben, prüfen Sie, ob die Zertifikate für 2023 in den UEFI-Variablen Ihrer Instanz vorhanden sind.

Linux

Unabhängig vom Tool, das zum Anwenden des Updates verwendet wird, werden die Zertifikate in die UEFI-NVRAM-Variablen der Instanz geschrieben. Sie können sie direkt mit mokutil (empfohlen) oder efi-readvar überprüfen:

  • mokutil verwenden (empfohlen): mokutil ist standardmäßig auf den meisten Linux-Distributionen installiert.

    sudo mokutil --kek | grep "KEK 2K CA 2023"
    sudo mokutil --db | grep "UEFI CA 2023"
    
  • efi-readvar verwenden:Wenn Sie efitools installiert haben, führen Sie Folgendes aus:

    sudo efi-readvar -v KEK | grep "KEK 2K CA 2023"
    sudo efi-readvar -v db | grep "UEFI CA 2023"
    

Wenn sowohl die Variable KEK als auch die Variable db die Zertifikate für 2023 enthalten, wurde die Aktualisierung erfolgreich angewendet und es sind keine weiteren Maßnahmen erforderlich.

Windows

Führen Sie in einer PowerShell-Eingabeaufforderung mit Administratorrechten folgenden Befehl aus:

# Check for Microsoft KEK 2K CA 2023
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI KEK).bytes) -match 'Microsoft Corporation KEK 2K CA 2023'

# Check for UEFI CA 2023
[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'UEFI CA 2023'

# Confirm general Secure Boot enrollment state
Confirm-SecureBootUEFI

Fehlerbehebung bei KEK-Updates

Beim Aktualisieren der Variablen KEK unter Linux kann die Aktualisierung von db (DBUpdate3P2023.bin) erfolgreich sein, während die Aktualisierung von KEK (kek2023update.bin) mit einem der folgenden Fehler fehlschlägt:

  • Bei Verwendung von sbkeysync:

    Inserting key update /etc/secureboot/keys/KEK/kek2023update.bin into KEK
    Error writing key update: Invalid argument
    Error syncing keystore file /etc/secureboot/keys/KEK/kek2023update.bin
    
  • Bei Verwendung von efi-updatevar:

    Cannot write to KEK, wrong filesystem permissions
    

Ursache

Bei UEFI Secure Boot werden db-Updates (DBUpdate3P2023.bin) von der Microsoft Corporation KEK CA 2011 signiert, die standardmäßig auf den meisten UEFI Secure Boot-Systemen registriert ist. KEK-Updates müssen jedoch mit dem Plattformschlüssel (PK) signiert werden, der in der Firmware des Systems registriert ist. Wenn die Firmware die Signatur für kek2023update.bin ablehnt oder das Schreiben in die UEFI-Variable verhindert, gibt der Linux-Kernel einen Fehler zurück.

Dieser Fehler tritt aus einem der folgenden Gründe auf:

  • Die UEFI-Variable KEK ist weiterhin als unveränderlich gekennzeichnet: Der Befehl chattr -i wurde nicht ausgeführt, bevor der Schreibvorgang versucht wurde.
  • Die Instanz verwendet ein benutzerdefiniertes PK: Das 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab-Archiv enthält eine kek2023update.bin-Binärdatei, die ausschließlich mit dem standardmäßigen Compute Engine-PK signiert ist. Wenn für Ihre Compute Engine-Instanz oder Ihr benutzerdefiniertes Image ein benutzerdefiniertes PK registriert ist, lehnt die Firmware kek2023update.bin ab.
  • Das System ist keine Compute Engine-Instanz: Wenn Sie diese Befehle auf physischer Hardware oder einer virtuellen Maschine außerhalb von Compute Engine ausführen, gehört die PK des Systems dem Hardwarehersteller oder Hypervisor-Anbieter und nicht Compute Engine. Daher wird kek2023update.bin von der Firmware abgelehnt.

Lösung

So diagnostizieren und beheben Sie den Fehler:

  1. Entfernen Sie das unveränderliche Attribut aus der Variablen KEK unmittelbar vor dem Ausführen von sbkeysync oder efi-updatevar:

    sudo chattr -i /sys/firmware/efi/efivars/KEK-*
    
  2. Prüfen Sie die auf Ihrer Instanz registrierte PK:

    sudo mokutil --pk
    
  3. Führen Sie je nach sudo mokutil --pk-Ausgabe einen der folgenden Schritte aus:

    • Wenn die Instanz ein benutzerdefiniertes PK verwendet: Signieren Sie das binäre KEK-Update mit dem privaten Schlüssel, der Ihrem benutzerdefinierten PK entspricht, oder erstellen Sie die Compute-Instanz neu aus einem Laufwerks-Snapshot mit einem Image, das auf den standardmäßigen Compute Engine Secure Boot-Zertifikaten basiert.
    • Wenn Sie eine Maschine aktualisieren, die nicht in Compute Engine ausgeführt wird: Entfernen Sie /etc/secureboot/keys/KEK/kek2023update.bin und rufen Sie das KEK-Update von Ihrem Hardwarehersteller oder Plattformanbieter ab, z. B. durch Ausführen von sudo fwupdmgr update, sofern dies von Ihrem Anbieter unterstützt wird.