Aggiorna i certificati KEK e db

Questo documento fornisce istruzioni per aggiornare le variabili Allowed Signature Database (db) e Key Exchange Key (KEK) sulle istanze di calcolo create prima del 7 novembre 2025 per considerare attendibili i certificati aggiornati per Secure Boot.

KEK e aggiornamento del database sono un'alternativa per i clienti che non ricreano le istanze di calcolo interessate.

Prima di iniziare

Prima di aggiornare i certificati KEK e db di Avvio protetto, verifica se le tue istanze richiedono un aggiornamento e completa i seguenti preparativi per evitare potenziali problemi di avvio o decrittografia:

  • Verifica dei prerequisiti:verifica che le tue istanze richiedano un aggiornamento dei certificati Secure Boot.
  • Integrità dei dati e recupero delle chiavi:individua le chiavi di recupero della crittografia del disco (BitLocker o LUKS FDE) ed esegui il backup dei dati critici. La modifica delle variabili di sicurezza può bloccare l'accesso ai dischi se la configurazione non è corretta.
  • Consiglio per la sequenza di aggiornamento di Linux:per le istanze Linux, ti consigliamo di aggiornare la variabile UEFI db a Microsoft UEFI CA 2023 prima di eseguire l'aggiornamento ai nuovi shim. Questa sequenza aiuta a prevenire un potenziale scenario di mancata corrispondenza della CA se viene applicato un aggiornamento shim firmato solo con la CA UEFI di Microsoft 2023 mentre il database contiene solo il certificato 2011.
  • Configurazioni personalizzate di PK o KEK: se la tua istanza utilizza variabili Secure Boot personalizzate (ad esempio un PK o un KEK personalizzato) o se viene eseguita su un sistema esterno a Compute Engine, i file di aggiornamento standard (DBUpdate3P2023.bin o kek2023update.bin) forniti in questo documento non si applicano direttamente. Il firmware UEFI richiede che i file di aggiornamento siano firmati con la chiave privata di KEK o PK registrata sul sistema e kek2023update.bin sia firmato in modo specifico dal PK predefinito di Compute Engine. Se utilizzi chiavi personalizzate, devi firmare i binari di aggiornamento con le tue chiavi private o gestire gli aggiornamenti tramite la tua autorità di certificazione personalizzata. Per saperne di più, consulta la sezione Risolvi i problemi relativi agli errori di aggiornamento della KEK.
  • Cloud de Confiance by S3NS Appliance di Backup e RE: si tratta di appliance gestite. Non è necessario aggiornare manualmente i certificati Secure Boot su questi dispositivi. Cloud de Confiance by S3NS gestisce automaticamente tutti gli aggiornamenti.

Aggiorna db e KEK su Linux

Per aggiornare il database delle firme consentite (db) e la chiave di scambio (KEK), seleziona l'opzione per il tuo sistema operativo:

Debian o Ubuntu

Puoi aggiornare i certificati di avvio protetto su Debian o Ubuntu utilizzando fwupd, efitools o sbsigntool.

Ti consigliamo di utilizzare fwupd per aggiornare i certificati. Questo metodo richiede la versione 2.0.10 o successive di fwupdmgr. Verifica la tua versione eseguendo sudo fwupdmgr --version.

Esegui questi comandi:

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

Opzione 2: aggiorna utilizzando efitools

Per aggiornare le variabili db e KEK utilizzando il pacchetto efitools:

Aggiorna db
  1. Scarica il file binario di aggiornamento del database delle firme consentite (db) da Microsoft:

     wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin
    
  2. Aggiorna la variabile 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-*
    
Aggiorna KEK
  1. Scarica l'archivio .cab contenente l'aggiornamento del certificato:

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. Installa l'utilità gcab:

     sudo apt update && sudo apt install gcab -y
    
  3. Estrai l'archivio e verifica che l'hash SHA-256 del file kek2023update.bin estratto corrisponda a 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf:

     gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     sha256sum kek2023update.bin
    
  4. Applica l'aggiornamento:

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

Opzione 3: aggiorna utilizzando sbsigntool

Per aggiornare le variabili db e KEK utilizzando l'utilità sbkeysync dal pacchetto sbsigntool, installa sbsigntool e gcab:

sudo apt update && sudo apt install sbsigntool gcab -y
Aggiorna db
  1. Scarica il file binario di aggiornamento db da Microsoft:

     wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin
    
  2. Sincronizza la chiave:

     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-*
    
Aggiorna KEK
  1. Scarica ed estrai l'aggiornamento del certificato KEK:

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. Verifica che l'hash SHA-256 del file kek2023update.bin estratto corrisponda a 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf:

     sha256sum kek2023update.bin
    
  3. Sincronizza la chiave:

     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)

Puoi aggiornare i certificati di Avvio protetto su RHEL utilizzando sbsigntools. Le immagini RHEL potrebbero avere una versione precedente di fwupd che non supporta gli aggiornamenti dei certificati UEFI predefiniti.

Per aggiornare le variabili db e KEK utilizzando l'utilità sbkeysync dal pacchetto sbsigntools:

  1. Attiva il repository EPEL e installa sbsigntools e cabextract:

    sudo dnf install epel-release -y
    sudo dnf install sbsigntools cabextract -y
    
  2. Per aggiornare la variabile db:

    1. Scarica il file binario di aggiornamento del database delle firme consentite (db) da Microsoft:

      wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin
      
    2. Sincronizza la chiave:

      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. Per aggiornare la variabile KEK:

    1. Scarica ed estrai l'aggiornamento del certificato KEK:

      wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      
    2. Verifica che l'hash SHA-256 del file kek2023update.bin estratto corrisponda a 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf:

      sha256sum kek2023update.bin
      
    3. Sincronizza la chiave:

      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)

Puoi aggiornare i certificati di Avvio protetto su SLES o openSUSE utilizzando sbsigntools o efitools. Le immagini SLES potrebbero avere una versione precedente di fwupd o non fornirla affatto.

Opzione 1: aggiornamento utilizzando sbsigntools

Per aggiornare le variabili db e KEK utilizzando l'utilità sbkeysync dal pacchetto sbsigntools, attiva SUSE Package Hub e installa sbsigntools e cabextract:

sudo SUSEConnect -p PackageHub/15.5/x86_64
sudo zypper install sbsigntools cabextract -y
Aggiorna db
  1. Scarica il file binario di aggiornamento db da Microsoft:

     wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin
     ```
    
  2. Sincronizza la chiave:

     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-*
     ```
    
Aggiorna KEK
  1. Scarica ed estrai l'aggiornamento del certificato KEK:

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     ```
    
  2. Verifica che l'hash SHA-256 del file kek2023update.bin estratto corrisponda a 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf:

     sha256sum kek2023update.bin
     ```
    
  3. Sincronizza la chiave:

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

Opzione 2: aggiorna utilizzando efitools

Per aggiornare le variabili db e KEK utilizzando il pacchetto efitools:

Aggiorna db
  1. Scarica il file binario di aggiornamento del database delle firme consentite (db) da Microsoft:

     wget https://github.com/microsoft/secureboot_objects/raw/main/PostSignedObjects/Optional/DB/DBUpdate3P2023.bin
     ```
    
  2. Aggiorna la variabile 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-*
     ```
    
Aggiorna KEK
  1. Scarica l'archivio .cab contenente l'aggiornamento del certificato:

     wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     ```
    
  2. Attiva SUSE Package Hub e installa l'utilità 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. Estrai l'archivio e verifica che l'hash SHA-256 del file kek2023update.bin estratto corrisponda a 99e340f5cfd7aa3698f80237b51e460fc6367111876f39b4a9e1d1aa495d5eaf:

     gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
     sha256sum kek2023update.bin
     ```
    
  4. Applica l'aggiornamento:

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

Aggiorna db e KEK su Windows

Non è necessario applicare questi aggiornamenti dei certificati se non utilizzi o non prevedi di utilizzare Avvio protetto in questa istanza. I sistemi operativi Windows in genere ignorano i tentativi di applicare questi aggiornamenti dei certificati di avvio protetto se l'avvio protetto non è abilitato perché l'aggiornamento non è necessario.

Se intendi utilizzare l'avvio protetto in un secondo momento, devi prima abilitarlo sull'istanza per aggiornare i certificati di avvio protetto.

Sulle istanze Windows, le impostazioni del registro e le attività pianificate attivano gli aggiornamenti sulle versioni compatibili:

  1. Assicurati che alle tue istanze Windows siano stati applicati gli aggiornamenti mensili recenti.
  2. In qualità di amministratore in PowerShell, esegui:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name "AvailableUpdates" -Value 0x5944
    Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
    
  3. Riavvia l'istanza per consentire le operazioni sulle variabili del firmware. Alcuni ambienti richiedono doppi riavvii se le funzionalità di sicurezza della virtualizzazione sono attive.

Verificare l'aggiornamento

Dopo aver applicato gli aggiornamenti utilizzando fwupd, efitools, sbsigntool o PowerShell, verifica che i certificati del 2023 siano presenti nelle variabili UEFI della tua istanza.

Linux

Indipendentemente dallo strumento utilizzato per applicare l'aggiornamento, i certificati vengono scritti nelle variabili NVRAM UEFI dell'istanza. Puoi verificarli direttamente utilizzando mokutil (consigliato) o efi-readvar:

  • Utilizzo di mokutil (consigliato): mokutil è installato per impostazione predefinita nella maggior parte delle distribuzioni Linux.

    sudo mokutil --kek | grep "KEK 2K CA 2023"
    sudo mokutil --db | grep "UEFI CA 2023"
    
  • Utilizzo di efi-readvar:se hai installato efitools, esegui:

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

Se entrambe le variabili KEK e db mostrano i certificati del 2023, l'aggiornamento è stato applicato correttamente e non sono necessari ulteriori interventi.

Windows

In un prompt di PowerShell amministratore, esegui:

# 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

Risolvere i problemi relativi agli errori di aggiornamento della KEK

Quando aggiorni la variabile KEK su Linux, l'aggiornamento di db (DBUpdate3P2023.bin) potrebbe riuscire, mentre l'aggiornamento di KEK (kek2023update.bin) non riesce e viene visualizzato uno dei seguenti errori:

  • Quando utilizzi 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
    
  • Quando utilizzi efi-updatevar:

    Cannot write to KEK, wrong filesystem permissions
    

Causa

Nell'avvio protetto UEFI, gli aggiornamenti db (DBUpdate3P2023.bin) sono firmati da Microsoft Corporation KEK CA 2011, registrata per impostazione predefinita nella maggior parte dei sistemi di avvio protetto UEFI. Tuttavia, gli aggiornamenti KEK devono essere firmati con la chiave della piattaforma (PK) registrata nel firmware del sistema. Quando il firmware rifiuta la firma su kek2023update.bin o impedisce la scrittura nella variabile UEFI, il kernel Linux restituisce un errore.

Questo errore si verifica per uno dei seguenti motivi:

  • La variabile UEFI KEK è ancora contrassegnata come immutabile: il comando chattr -i non è stato eseguito prima di tentare l'operazione di scrittura.
  • L'istanza utilizza un PK personalizzato: l'archivio 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab contiene un binario kek2023update.bin firmato esclusivamente dal PK predefinito di Compute Engine. Se la tua istanza Compute Engine o la tua immagine personalizzata ha un PK personalizzato registrato, il firmware rifiuta kek2023update.bin.
  • Il sistema non è un'istanza Compute Engine: se esegui questi comandi su hardware fisico o su una macchina virtuale al di fuori di Compute Engine, il PK del sistema appartiene al produttore dell'hardware o al fornitore dell'hypervisor anziché a Compute Engine, il che fa sì che il firmware rifiuti kek2023update.bin.

Risoluzione

Per diagnosticare e risolvere l'errore:

  1. Assicurati di rimuovere l'attributo immutabile dalla variabile KEK immediatamente prima di eseguire sbkeysync o efi-updatevar:

    sudo chattr -i /sys/firmware/efi/efivars/KEK-*
    
  2. Controlla PK registrato nella tua istanza:

    sudo mokutil --pk
    
  3. A seconda dell'output di sudo mokutil --pk, esegui una delle seguenti azioni:

    • Se l'istanza utilizza un PK personalizzato: firma il binario di aggiornamento KEK con la chiave privata corrispondente al tuo PK personalizzato oppure ricrea l'istanza di computing da uno snapshot del disco utilizzando un'immagine che si basa sui certificati Secure Boot predefiniti di Compute Engine.
    • Se stai aggiornando una macchina non Compute Engine: rimuovi /etc/secureboot/keys/KEK/kek2023update.bin e ottieni l'aggiornamento KEK dal produttore dell'hardware o dal fornitore della piattaforma (ad esempio eseguendo sudo fwupdmgr update se supportato dal fornitore).