Mettre à jour les certificats KEK et de base de données

Ce document explique comment mettre à jour les variables de base de données de signatures autorisées (db) et de clé d'échange de clés (KEK) sur les instances de calcul que vous avez créées avant le 7 novembre 2025 pour approuver les certificats mis à jour pour le démarrage sécurisé.

La mise à jour de KEK et de la base de données est une alternative pour les clients qui ne recréent pas leurs instances de calcul concernées.

Remarque concernant les exigences de redémarrage : Contrairement à Windows, Linux ne nécessite pas de redémarrage du système pour que les mises à jour de signature KEK et de base de données soient écrites dans les variables UEFI. Linux écrit immédiatement les mises à jour dans la NVRAM ou le stockage du micrologiciel lors de l'exécution de la commande.

Avant de commencer

Avant de mettre à jour vos certificats KEK et de base de données de démarrage sécurisé, vérifiez si vos instances nécessitent une mise à jour et effectuez les préparatifs suivants pour éviter tout problème de démarrage ou de déchiffrement :

  • Vérification des prérequis : vérifiez que vos instances nécessitent une mise à jour des certificats de démarrage sécurisé.
  • Intégrité des données et récupération des clés : recherchez vos clés de récupération de chiffrement de disque (BitLocker ou LUKS FDE) et sauvegardez les données critiques. La modification des variables de sécurité peut bloquer l'accès aux disques si la configuration est incorrecte.
  • Recommandation de séquençage des mises à jour Linux : pour les instances Linux, nous vous recommandons de mettre à jour la variable UEFI db vers Microsoft UEFI CA 2023 avant de passer à de nouveaux shims. Ce séquençage permet d'éviter un scénario potentiel de non-concordance de l'autorité de certification si une mise à jour de shim signée uniquement avec Microsoft UEFI CA 2023 est appliquée alors que la base de données ne contient que le certificat 2011.
  • Configurations PK ou KEK personnalisées : si votre instance utilise des variables de démarrage sécurisé personnalisées (telles qu'une PK ou une KEK personnalisée), les fichiers de mise à jour standards (DBUpdate3P2023.bin ou kek2023update.bin) fournis dans ce guide ne s'appliqueront pas directement. Le micrologiciel UEFI nécessite que les fichiers de mise à jour soient signés par la clé privée de la KEK ou de la PK présente sur le système. Si vous utilisez des clés personnalisées, vous devez signer les binaires de mise à jour avec vos propres clés privées ou gérer les mises à jour via votre autorité de certification personnalisée.

Mettre à jour la base de données et la KEK sur Linux à l'aide de fwupd

Les versions fwupdmgr 2.0.10 ou ultérieures sont compatibles avec cette méthode. Vérifiez votre version en exécutant sudo fwupdmgr --version.

Remarque concernant RHEL 8/9 et SLES 15 : Les dépôts d'entreprise pour RHEL 8/9 et SUSE Linux Enterprise Server (SLES) 15 fournissent des versions antérieures de fwupdmgr (RHEL 8 inclut la version 1.7.8, RHEL 9 inclut la version 1.9.13 et SLES 15 SP6 inclut 1.9.10), qui ne répondent pas au seuil de version requis. Si vous exécutez RHEL 8/9 ou SLES 15, vous devez effectuer l'une des opérations suivantes : compiler fwupd à partir de la source ou utiliser les méthodes sbsigntool/sbsigntools ou efitools décrites plus loin.

Remarque concernant SLES 12/15 : Les dépôts d'entreprise pour SLES 12/15 ne fournissent pas fwupd, et les dépôts SUSE Package Hub pour SLES 15 fournissent des versions antérieures de fwupdmgr, qui ne répondent pas au seuil de version requis. Si vous exécutez SLES 12, vous devez compiler fwupd à partir de la source. Si vous exécutez SLES 15, vous devez effectuer l'une des opérations suivantes : compiler fwupd à partir de la source ou utiliser les méthodes efitools ou sbsigntools décrites plus loin à l'aide des backports disponibles dans SUSE Package Hub.

Exécutez la commande suivante :

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

Mettre à jour la base de données et la KEK sur Linux à l'aide de efitools

Les étapes suivantes vous guident dans la mise à jour des variables db et KEK à l'aide du package efitools.

Mettre à jour db

  1. Téléchargez le binaire de mise à jour à partir du dépôt de Microsoft :

    wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
    
  2. Rendez la variable mutable en supprimant l'indicateur de protection en écriture :

    sudo chattr -i /sys/firmware/efi/efivars/db-*
    
  3. Mettez à jour la variable en exécutant efi-updatevar :

    sudo efi-updatevar -a -f DBUpdate3P2023.bin db
    
  4. Restaurez l'indicateur de protection en écriture pour sécuriser la variable :

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

Mettre à jour KEK

  1. Téléchargez l'archive .cab contenant la mise à jour du certificat :

    wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. Si gcab n'est pas installé, installez-le. Par exemple, exécutez l'une des commandes suivantes :

    • Sur Debian ou Ubuntu :

      sudo apt update
      sudo apt install gcab
      
    • Sur SUSE Linux Enterprise Server (SLES) ou openSUSE (nécessite SUSE Package Hub) :

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

      (Remarque : Remplacez 15.5 par votre version de SLES si elle est différente).

  3. Extrayez l'archive à l'aide de gcab :

    gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  4. Assurez-vous que le fichier possède le hachage MD5 attendu : 6a1c58e1b8391c0e3f2e97f83917807a.

    md5sum kek2023update.bin
    
  5. Rendez la variable KEK mutable :

    sudo chattr -i /sys/firmware/efi/efivars/KEK-*
    
  6. Appliquez la mise à jour :

    sudo efi-updatevar -a -f kek2023update.bin KEK
    
  7. Restaurez l'indicateur de protection en écriture pour sécuriser la variable :

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

Mettre à jour la base de données et la KEK sur Linux à l'aide de sbsigntool ou sbsigntools

Les étapes suivantes vous guident dans la mise à jour des variables db et KEK à l'aide de l'utilitaire sbkeysync du package sbsigntool ou sbsigntools.

Remarque concernant le nom et la disponibilité du package :

  • Debian et Ubuntu nomment le package d'utilitaires sbsigntool (sans "s" à la fin). Pour l'installer, exécutez la commande suivante : sudo apt install sbsigntool.
  • Les distributions Red Hat Enterprise Linux (RHEL), CentOS et Fedora nomment le package d'utilitaires sbsigntools (avec un "s" à la fin). Le dépôt EPEL (Extra Packages for Enterprise Linux) fournit ce package. Pour l'installer sur RHEL, activez le dépôt EPEL (sudo dnf install epel-release), puis exécutez la commande suivante : sudo dnf install sbsigntools.
  • SUSE Linux Enterprise Server (SLES) et openSUSE nomment également le package d'utilitaires sbsigntools. Le dépôt SUSE Package Hub fournit ce package. Pour l'installer, activez SUSE Package Hub (par exemple, sudo SUSEConnect -p PackageHub/15.5/x86_64, en remplaçant 15.5 par votre version de SLES), puis exécutez la commande suivante : sudo zypper install sbsigntools.

Mettre à jour db

  1. Téléchargez le binaire de mise à jour à partir du dépôt de Microsoft :

    wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
    
  2. Placez le fichier dans le dossier approprié pour sbkeysync, rendez db mutable et exécutez la synchronisation :

    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. Restaurez l'indicateur de protection en écriture pour sécuriser la variable :

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

Mettre à jour KEK

Pour mettre à jour la variable KEK, téléchargez l'archive du cabinet des mises à jour KEK de Microsoft, extrayez le binaire de mise à jour et synchronisez-le à l'aide de l'utilitaire sbkeysync. Les sections suivantes expliquent comment extraire le binaire en fonction de votre distribution :

  1. Téléchargez l'archive .cab contenant la mise à jour du certificat KEK :

    wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. Extrayez l'archive .cab pour obtenir le binaire de mise à jour KEK (kek2023update.bin) :

    • Sur Debian/Ubuntu à l'aide de l'utilitaire gcab :

      sudo apt update && sudo apt install gcab -y
      gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      
    • Sur les distributions basées sur RHEL/CentOS (telles que RHEL 8/9) à l'aide de l'utilitaire cabextract d'EPEL :

      sudo dnf install epel-release -y
      sudo dnf install cabextract -y
      cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      
    • Sur SUSE Linux Enterprise Server (SLES) et openSUSE à l'aide de l'utilitaire 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
      

      (Remarque : Remplacez 15.5 par votre version de SLES si elle est différente).

  3. Vérifiez que le fichier kek2023update.bin extrait possède le hachage MD5 attendu : 6a1c58e1b8391c0e3f2e97f83917807a.

    md5sum kek2023update.bin
    
  4. Placez le binaire dans le dossier approprié pour sbkeysync, rendez la variable KEK mutable et exécutez la synchronisation :

    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. Restaurez l'indicateur de protection en écriture pour sécuriser la variable :

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

Mettre à jour la base de données et la KEK sur Windows

Vous n'avez pas besoin d'appliquer ces mises à jour de certificat si vous n'utilisez pas ou ne prévoyez pas d'utiliser le démarrage sécurisé sur cette instance. Les systèmes d'exploitation Windows ignorent généralement les tentatives d'application de ces mises à jour de certificat de démarrage sécurisé si le démarrage sécurisé n'est pas activé, car la mise à jour n'est pas nécessaire.

Si vous prévoyez d'utiliser le démarrage sécurisé ultérieurement, vous devez d'abord l'activer sur l'instance pour mettre à jour les certificats de démarrage sécurisé.

Sur les instances Windows, les paramètres de registre et les tâches planifiées déclenchent des mises à jour sur les versions compatibles :

  1. Assurez-vous que les mises à jour mensuelles récentes sont appliquées à vos instances Windows.
  2. En tant qu'administrateur dans PowerShell, exécutez la commande suivante :

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name "AvailableUpdates" -Value 0x5944
    Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
    
  3. Redémarrez l'instance pour autoriser les opérations sur les variables de micrologiciel. Certains environnements nécessitent un double redémarrage si les fonctionnalités de sécurité de la virtualisation sont activées.