Actualiza los certificados de KEK y de la base de datos

En este documento, se proporcionan instrucciones para actualizar las variables de la base de datos de firmas permitidas (db) y la clave de intercambio de claves (KEK) en las instancias de procesamiento que creaste antes del 7 de noviembre de 2025 para confiar en los certificados actualizados para el inicio seguro.

La actualización de KEK y db es una alternativa para los clientes que no vuelven a crear sus instancias de procesamiento afectadas.

Nota sobre los requisitos de reinicio: A diferencia de Windows, Linux no requiere que se reinicie el sistema para que las actualizaciones de firma de KEK y db se escriban en las variables de UEFI. Linux escribe inmediatamente las actualizaciones en la NVRAM o el almacenamiento de firmware cuando se ejecuta el comando.

Antes de comenzar

Antes de actualizar tus certificados de KEK y db de inicio seguro, verifica si tus instancias requieren una actualización y completa las siguientes preparaciones para evitar posibles problemas de inicio o desencriptación:

  • Verificación de requisitos previos: Verifica que tus instancias requieran una actualización de certificados de inicio seguro.
  • Integridad de los datos y recuperación de claves: Ubica las claves de recuperación de encriptación de disco (BitLocker o LUKS FDE) y crea una copia de seguridad de los datos críticos. Si la configuración es incorrecta, cambiar las variables de seguridad puede bloquear el acceso a los discos.
  • Recomendación de secuencia de actualización de Linux: Para las instancias de Linux, te recomendamos que actualices la variable UEFI db a Microsoft UEFI CA 2023 antes de actualizar a nuevos shims. Esta secuencia ayuda a evitar una posible situación de desajuste de CA si se aplica una actualización de shim firmada solo con Microsoft UEFI CA 2023 mientras la base de datos contiene solo el certificado de 2011.
  • Configuraciones personalizadas de PK o KEK: Si tu instancia usa variables de inicio seguro personalizadas (como una PK o KEK personalizada), los archivos de actualización estándar (DBUpdate3P2023.bin o kek2023update.bin) que se proporcionan en esta guía no se aplicarán directamente. El firmware de UEFI requiere que los archivos de actualización estén firmados por la clave privada de la KEK o PK presente en el sistema. Si usas claves personalizadas, debes firmar los objetos binarios de actualización con tus propias claves privadas o administrar las actualizaciones a través de tu autoridad certificada personalizada.

Actualiza db y KEK en Linux con fwupd

Las versiones fwupdmgr 2.0.10 o posteriores admiten este método. Para verificar tu versión, ejecuta sudo fwupdmgr --version.

Nota sobre RHEL 8/9 y SLES 15: Los repositorios empresariales para RHEL 8/9 y SUSE Linux Enterprise Server (SLES) 15 proporcionan versiones anteriores de fwupdmgr (RHEL 8 incluye la versión 1.7.8, RHEL 9 incluye la versión 1.9.13 y SLES 15 SP6 incluye 1.9.10), que no cumplen con el umbral de versión requerido. Si ejecutas RHEL 8/9 o SLES 15, debes hacer una de las siguientes acciones: compilar fwupd desde la fuente o usar los métodos sbsigntool/sbsigntools o efitools que se describen más adelante.

Nota sobre SLES 12/15: Los repositorios empresariales para SLES 12/15 no proporcionan fwupd, y los repositorios de SUSE Package Hub para SLES 15 proporcionan versiones anteriores de fwupdmgr, que no cumplen con el umbral de versión requerido. Si ejecutas SLES 12, debes compilar fwupd desde la fuente. Si ejecutas SLES 15, debes hacer una de las siguientes acciones: compilar fwupd desde la fuente o usar los métodos efitools o sbsigntools que se describen más adelante con las versiones anteriores disponibles en SUSE Package Hub.

Ejecuta lo siguiente:

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

Actualiza db y KEK en Linux con efitools

En los siguientes pasos, se explica cómo actualizar las variables db y KEK con el paquete efitools.

Actualiza db

  1. Descarga el objeto binario de actualización del repositorio de Microsoft:

    wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
    
  2. Haz que la variable sea mutable (quita la marca de protección contra escritura):

    sudo chattr -i /sys/firmware/efi/efivars/db-*
    
  3. Actualiza la variable ejecutando efi-updatevar:

    sudo efi-updatevar -a -f DBUpdate3P2023.bin db
    
  4. Restablece la marca de protección contra escritura para proteger la variable:

    sudo chattr +i /sys/firmware/efi/efivars/db-*
    

Actualiza KEK

  1. Descarga el archivo .cab que contiene la actualización del certificado:

    wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. Si no tienes instalado gcab, instálalo. Por ejemplo, ejecuta una de las siguientes opciones:

    • En Debian o Ubuntu:

      sudo apt update
      sudo apt install gcab
      
    • En SUSE Linux Enterprise Server (SLES) o openSUSE (requiere SUSE Package Hub):

      sudo SUSEConnect -p PackageHub/15.5/x86_64
      sudo zypper install gcab
      

      (Nota: Reemplaza 15.5 por tu versión de SLES si es diferente).

  3. Extrae el archivo con gcab:

    gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  4. Asegúrate de que el archivo tenga el hash MD5 esperado: 6a1c58e1b8391c0e3f2e97f83917807a.

    md5sum kek2023update.bin
    
  5. Haz que la variable KEK sea mutable:

    sudo chattr -i /sys/firmware/efi/efivars/KEK-*
    
  6. Aplica la actualización:

    sudo efi-updatevar -a -f kek2023update.bin KEK
    
  7. Restablece la marca de protección contra escritura para proteger la variable:

    sudo chattr +i /sys/firmware/efi/efivars/KEK-*
    

Actualiza db y KEK en Linux con sbsigntool o sbsigntools

En los siguientes pasos, se explica cómo actualizar las variables db y KEK con la utilidad sbkeysync del paquete sbsigntool o sbsigntools.

Nota sobre el nombre y la disponibilidad del paquete:

  • Debian y Ubuntu nombran el paquete de utilidad sbsigntool (sin una "s" al final). Para instalarlo, ejecuta sudo apt install sbsigntool.
  • Las distribuciones basadas en Red Hat Enterprise Linux (RHEL), CentOS y Fedora nombran el paquete de utilidad sbsigntools (con una "s" al final). El repositorio EPEL (Extra Packages for Enterprise Linux) proporciona este paquete. Para instalarlo en RHEL, habilita el repositorio EPEL (sudo dnf install epel-release) y, luego, ejecuta sudo dnf install sbsigntools.
  • SUSE Linux Enterprise Server (SLES) y openSUSE también nombran el paquete de utilidad sbsigntools. El repositorio de SUSE Package Hub proporciona este paquete. Para instalarlo, habilita SUSE Package Hub (por ejemplo, sudo SUSEConnect -p PackageHub/15.5/x86_64, reemplaza 15.5 por tu versión de SLES) y, luego, ejecuta sudo zypper install sbsigntools.

Actualiza db

  1. Descarga el objeto binario de actualización del repositorio de Microsoft:

    wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
    
  2. Coloca el archivo dentro de la carpeta adecuada para sbkeysync, haz que db sea mutable y ejecuta la sincronización:

    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
    
  3. Restablece la marca de protección contra escritura para proteger la variable:

    sudo chattr +i /sys/firmware/efi/efivars/db-*
    

Actualiza KEK

Para actualizar la variable KEK, descarga el archivo de gabinete de actualizaciones de KEK de Microsoft, extrae el objeto binario de actualización y sincronízalo con la utilidad sbkeysync. En las siguientes secciones, se explica cómo extraer el objeto binario según tu distribución:

  1. Descarga el archivo .cab que contiene la actualización del certificado de KEK:

    wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. Extrae el archivo .cab para obtener el objeto binario de actualización de KEK (kek2023update.bin):

    • En Debian/Ubuntu con la utilidad gcab:

      sudo apt update && sudo apt install gcab -y
      gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      
    • En distribuciones basadas en RHEL/CentOS (como RHEL 8/9) con la utilidad cabextract de EPEL:

      sudo dnf install epel-release -y
      sudo dnf install cabextract -y
      cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      
    • En SUSE Linux Enterprise Server (SLES) y openSUSE con la utilidad cabextract de SUSE Package Hub:

      sudo SUSEConnect -p PackageHub/15.5/x86_64
      sudo zypper install cabextract -y
      cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      

      (Nota: Reemplaza 15.5 por tu versión de SLES si es diferente).

  3. Verifica que el archivo kek2023update.bin extraído tenga el hash MD5 esperado: 6a1c58e1b8391c0e3f2e97f83917807a.

    md5sum kek2023update.bin
    
  4. Coloca el objeto binario dentro de la carpeta adecuada para sbkeysync, haz que la variable KEK sea mutable y ejecuta la sincronización:

    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
    
  5. Restablece la marca de protección contra escritura para proteger la variable:

    sudo chattr +i /sys/firmware/efi/efivars/KEK-*
    

Actualiza db y KEK en Windows

No es necesario que apliques estas actualizaciones de certificados si no usas o planeas usar el inicio seguro en esta instancia. Por lo general, los sistemas operativos Windows ignoran los intentos de aplicar estas actualizaciones de certificados de inicio seguro si el inicio seguro no está habilitado porque la actualización no es necesaria.

Si deseas usar el inicio seguro más adelante, primero debes habilitarlo en la instancia para actualizar los certificados de inicio seguro.

En las instancias de Windows, la configuración del registro y las tareas programadas activan actualizaciones en versiones compatibles:

  1. Asegúrate de que tus instancias de Windows tengan aplicadas las actualizaciones mensuales recientes.
  2. Como administrador en PowerShell, ejecuta lo siguiente:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name "AvailableUpdates" -Value 0x5944
    Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
    
  3. Reinicia la instancia para permitir operaciones en variables de firmware. Algunos entornos requieren reinicios dobles si las funciones de seguridad de virtualización están activas.