Atualizar certificados de KEK e de banco de dados

Este documento fornece instruções para atualizar as variáveis de banco de dados de assinatura permitida (db) e de chave de troca de chaves (KEK) em instâncias de computação criadas antes de 7 de novembro de 2025 para confiar em certificados atualizados para a Inicialização segura.

A atualização de KEK e db é uma alternativa para clientes que não recriam as instâncias de computação afetadas.

Observação sobre os requisitos de reinicialização:ao contrário do Windows, o Linux não exige uma reinicialização do sistema para que as atualizações de assinatura de KEK e db sejam gravadas nas variáveis UEFI. O Linux grava atualizações imediatamente no armazenamento de NVRAM ou firmware após a execução do comando.

Antes de começar

Antes de atualizar os certificados de KEK e db da Inicialização segura, verifique se as instâncias exigem uma atualização e conclua os preparativos a seguir para evitar possíveis problemas de inicialização ou descriptografia:

  • Verificação de pré-requisitos: Verifique se as instâncias exigem uma atualização de certificados de Inicialização segura.
  • Integridade de dados e recuperação de chaves:localize as chaves de recuperação de criptografia de disco (BitLocker ou LUKS FDE) e faça backup dos dados críticos. A mudança de variáveis de segurança pode bloquear o acesso aos discos se a configuração estiver incorreta.
  • Recomendação de sequenciamento de atualização do Linux:para instâncias do Linux, recomendamos atualizar a variável UEFI db para a CA UEFI da Microsoft 2023 antes de atualizar para novos shims. Essa sequência ajuda a evitar um possível cenário de incompatibilidade de CA se uma atualização de shim assinada apenas com a CA UEFI da Microsoft 2023 for aplicada enquanto o banco de dados contém apenas o certificado de 2011.
  • Configurações personalizadas de PK ou KEK:se a instância usa variáveis de Inicialização segura personalizadas (como um PK ou KEK personalizado), os arquivos de atualização padrão (DBUpdate3P2023.bin ou kek2023update.bin) fornecidos neste guia não serão aplicados diretamente. O firmware UEFI exige que os arquivos de atualização sejam assinados pela chave privada do KEK ou PK presente no sistema. Se você usar chaves personalizadas, assine os binários de atualização com suas próprias chaves privadas ou gerencie as atualizações pela sua autoridade de certificação personalizada.

Atualizar db e KEK no Linux usando fwupd

As versões 2.0.10 ou mais recentes do fwupdmgr são compatíveis com esse método. Verifique sua versão executando sudo fwupdmgr --version.

Observação sobre RHEL 8/9 e SLES 15:os repositórios corporativos para RHEL 8/9 e SUSE Linux Enterprise Server (SLES) 15 fornecem versões anteriores do fwupdmgr (o RHEL 8 apresenta a versão 1.7.8, o RHEL 9 apresenta a versão 1.9.13 e o SLES 15 SP6 apresenta a versão 1.9.10), que não atendem ao limite de versão necessário. Se você estiver executando o RHEL 8/9 ou o SLES 15, faça uma destas ações: crie o fwupd da origem ou use os métodos sbsigntool/sbsigntools ou efitools descritos mais adiante.

Observação sobre SLES 12/15: os repositórios corporativos para SLES 12/15 não fornecem fwupd, e os repositórios do SUSE Package Hub para SLES 15 fornecem versões anteriores do fwupdmgr, que não atendem ao limite de versão necessário. Se você estiver executando o SLES 12, crie o fwupd da origem. Se você estiver executando o SLES 15, faça uma destas ações: crie o fwupd da origem ou use os métodos efitools ou sbsigntools descritos mais adiante usando backports disponíveis no SUSE Package Hub.

Execute o comando a seguir:

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

Atualizar db e KEK no Linux usando efitools

As etapas a seguir orientam você na atualização das variáveis db e KEK usando o pacote efitools.

Atualizar db

  1. Faça o download do binário de atualização do repositório da Microsoft:

    wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
    
  2. Torne a variável mutável, removendo o flag de proteção contra gravação:

    sudo chattr -i /sys/firmware/efi/efivars/db-*
    
  3. Atualize a variável executando efi-updatevar:

    sudo efi-updatevar -a -f DBUpdate3P2023.bin db
    
  4. Restaure o flag de proteção contra gravação para proteger a variável:

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

Atualizar KEK

  1. Faça o download do arquivo .cab que contém a atualização do certificado:

    wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. Se você não tiver o gcab instalado, instale-o. Por exemplo, execute uma destas ações:

    • No Debian ou Ubuntu :

      sudo apt update
      sudo apt install gcab
      
    • No SUSE Linux Enterprise Server (SLES) ou openSUSE (requer o SUSE Package Hub):

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

      (Observação: substitua 15.5 pela versão do SLES, se for diferente).

  3. Extraia o arquivo usando gcab:

    gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  4. Verifique se o arquivo tem o hash MD5 esperado: 6a1c58e1b8391c0e3f2e97f83917807a.

    md5sum kek2023update.bin
    
  5. Torne a variável KEK mutável:

    sudo chattr -i /sys/firmware/efi/efivars/KEK-*
    
  6. Aplique a atualização:

    sudo efi-updatevar -a -f kek2023update.bin KEK
    
  7. Restaure o flag de proteção contra gravação para proteger a variável:

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

Atualizar db e KEK no Linux usando sbsigntool ou sbsigntools

As etapas a seguir orientam você na atualização das variáveis db e KEK usando o utilitário sbkeysync do pacote sbsigntool ou sbsigntools.

Observação sobre o nome e a disponibilidade do pacote :

  • Debian e Ubuntu nomeiam o pacote de utilitários sbsigntool (sem um "s" no final). Para instalar, execute: sudo apt install sbsigntool.
  • Distribuições baseadas em Red Hat Enterprise Linux (RHEL), CentOS e Fedora nomeiam o pacote de utilitários sbsigntools (com um "s" no final). O repositório EPEL (Extra Packages for Enterprise Linux) fornece esse pacote. Para instalar no RHEL, ative o repositório EPEL (sudo dnf install epel-release) e execute: sudo dnf install sbsigntools.
  • SUSE Linux Enterprise Server (SLES) e openSUSE também nomeiam o pacote de utilitários sbsigntools. O repositório do SUSE Package Hub fornece esse pacote. Para instalar, ative o SUSE Package Hub (por exemplo, sudo SUSEConnect -p PackageHub/15.5/x86_64, substituindo 15.5 pela versão do SLES) e execute: sudo zypper install sbsigntools.

Atualizar db

  1. Faça o download do binário de atualização do repositório da Microsoft:

    wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
    
  2. Coloque o arquivo na pasta apropriada para sbkeysync, torne db mutável e execute a sincronização:

    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. Restaure o flag de proteção contra gravação para proteger a variável:

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

Atualizar KEK

Para atualizar a variável KEK, faça o download do arquivo de gabinete de atualizações do KEK da Microsoft, extraia o binário de atualização e sincronize-o usando o utilitário sbkeysync. As seções a seguir explicam como extrair o binário com base na sua distribuição:

  1. Faça o download do arquivo .cab que contém a atualização do certificado KEK:

    wget https://fwupd.org/downloads/1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
    
  2. Extraia o arquivo .cab para receber o binário de atualização do KEK (kek2023update.bin):

    • No Debian/Ubuntu usando o utilitário gcab:

      sudo apt update && sudo apt install gcab -y
      gcab --extract 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      
    • Em distribuições baseadas em RHEL/CentOS (como RHEL 8/9) usando o utilitário cabextract do EPEL:

      sudo dnf install epel-release -y
      sudo dnf install cabextract -y
      cabextract -f 1953fae13600a35944e93cd244476a6f6ce5fdbf620709b2f6f378fac2ae3bef-KEK-google_compute_engine.cab
      
    • No SUSE Linux Enterprise Server (SLES) e openSUSE usando o utilitário cabextract do SUSE Package Hub:

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

      (Observação: substitua 15.5 pela versão do SLES, se for diferente).

  3. Verifique se o arquivo kek2023update.bin extraído tem o hash MD5 esperado: 6a1c58e1b8391c0e3f2e97f83917807a.

    md5sum kek2023update.bin
    
  4. Coloque o binário na pasta apropriada para sbkeysync, torne a variável KEK mutável e execute a sincronização:

    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. Restaure o flag de proteção contra gravação para proteger a variável:

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

Atualizar db e KEK no Windows

Não é necessário aplicar essas atualizações de certificado se você não usar ou planejar usar a Inicialização segura nessa instância. Os sistemas operacionais Windows geralmente ignoram tentativas de aplicar essas atualizações de certificado de Inicialização segura se a Inicialização segura não estiver ativada, porque a atualização é desnecessária.

Se você pretende usar a Inicialização segura mais tarde, primeiro ative a Inicialização segura na instância para atualizar os certificados de inicialização segura.

Em instâncias do Windows, as configurações do registro e as tarefas agendadas acionam atualizações em versões compatíveis:

  1. Verifique se as instâncias do Windows têm atualizações mensais recentes aplicadas.
  2. Como administrador no PowerShell, execute:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot" -Name "AvailableUpdates" -Value 0x5944
    Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
    
  3. Reinicie a instância para permitir operações em variáveis de firmware. Alguns ambientes exigem reinicializações duplas se os recursos de segurança de virtualização estiverem ativos.