
Avaliação e manutenção autónomas para a transição de certificados Secure Boot de 2011 a 2023 (CVE-2023-24932 / KB5025885). Apenas avaliação por predefinição; sem dependências, sem rede, sem telemetria.
Um único script PowerShell autossuficiente que avalia a postura de certificados Secure Boot de uma máquina Windows para a transição 2011 → 2023 (CVE-2023-24932 / KB5025885) e, somente quando você explicitamente solicitar, inscreve essa máquina no pipeline de manutenção da Microsoft.
Publicado por Exchange Technology Services para clientes e parceiros que gerenciam seus próprios endpoints.
Os certificados Secure Boot emitidos pela Microsoft em 2011 estão expirando e sendo substituídos pelas versões de 2023.
| Certificado | Data | Repositório | Função |
|---|
| Microsoft Corporation KEK CA 2011 | expira em 24 de junho de 2026 | KEK | Autoriza atualizações para DB e DBX |
| Microsoft UEFI CA 2011 | expira em 27 de junho de 2026 | DB | Assina carregadores de terceiros / option ROMs |
| Windows Production PCA 2011 | 19 de outubro de 2026 | DB | Assina o carregador de boot do Windows |
Nenhuma máquina para de inicializar em nenhuma dessas datas. A orientação da Microsoft é que um dispositivo que atingir a expiração sem os novos certificados "ainda iniciará e operará normalmente."
O que se perde é a capacidade de receber atualizações de segurança de inicialização precoce — novas revogações de Secure Boot, mitigações de bypass do BitLocker, correções do gerenciador de boot. Isso é acúmulo de exposição, não uma interrupção.
Após 19 de outubro de 2026, uma máquina cujo firmware nunca incorporou Windows UEFI CA 2023 também para de validar mídias de boot do Windows recém-assinadas, o que pode afetar mídias de recuperação, instalação e PXE.
A KEK é o portão. Sem Microsoft Corporation KEK 2K CA 2023 no firmware, o Windows Update não consegue entregar a atualização de DB de forma alguma. Uma máquina sem ela não pode ser corrigida até que a KEK chegue via Windows Update ou uma atualização de BIOS do OEM. Este é o bloqueador mais comum na prática, e o script o informa explicitamente em vez de gravar um valor que não faria nada.
| Propriedade | Detalhe |
|---|---|
| Comportamento padrão | Apenas avaliação. Zero gravações sem -Apply. |
| Dependências | Nenhuma. Sem módulos, sem instalador. Windows PowerShell 5.1. |
| Acesso à rede | Nenhum. Nunca contata nenhum host. |
| Telemetria / relatórios | Nenhuma. Tudo o que encontra, imprime no seu console. Nada sai da máquina. |
| Chaves de recuperação do BitLocker | Nunca lidas, impressas ou transmitidas. Apenas verifica se um protetor de senha de recuperação existe. |
O que -Apply grava | Exatamente um valor de registro: AvailableUpdates = 0x5944 em HKLM\SYSTEM\CurrentControlSet\Control\Secureboot. O opt-in documentado da KB5025885. Aditivo — adiciona o certificado de 2023 sem remover o de 2011. |
| Ações irreversíveis | Recusa firme. O bit de revogação DBX 0x80 é permanente enquanto o Secure Boot permanecer habilitado; o script recusa qualquer valor que o contenha, a menos que -AllowRevocation seja passado explicitamente. Não o passe. |
| Reinicializações | Ele nunca reinicia a máquina e nunca solicita confirmação ao usuário. |
Windows PowerShell 5.1, como Administrador — a leitura das variáveis UEFI exige elevação.
1. Desbloqueie o arquivo (o Windows bloqueia scripts baixados):
Unblock-File .\Invoke-SecureBootCertServicing.ps1
2. Avalie — seguro, não faz nenhuma alteração:
powershell.exe -ExecutionPolicy Bypass -File .\Invoke-SecureBootCertServicing.ps1
3. Aplique, somente se a avaliação indicar que a máquina está pronta:
.\Invoke-SecureBootCertServicing.ps1 -Apply -SuspendBitLocker
O relatório é gravado com Write-Host, então é exibido no console e registrado pelo Start-Transcript. Um redirecionamento simples > não o capturará, assim como encaminhar para outro comando também não.
Start-Transcript C:\Temp\secureboot.log
.\Invoke-SecureBootCertServicing.ps1
Stop-Transcript
Para uma cópia legível por máquina, útil ao coletar resultados em uma frota:
.\Invoke-SecureBootCertServicing.ps1 -JsonPath C:\Temp\secureboot.json
| Veredito | Significado | Código de saída |
|---|---|---|
ReadyToArm | KEK 2023 presente, DB ainda não migrado, sem opt-in. -Apply é o próximo passo. | 0 |
HalfMigrated | O firmware confia na CA de 2023, mas a máquina ainda inicializa um carregador assinado em 2011. Ok hoje; falharia ao inicializar se 2011 fosse revogado. Ainda precisa da atualização do gerenciador de boot. | 0 |
HalfMigrated-Armed | Como acima, e já com opt-in. Reinicie a máquina — não execute -Apply novamente. | 0 |
AlreadyQueued | Opt-in realizado, aguardando a implantação escalonada da Microsoft. | 0 |
InProgress / RebootPending | Manutenção em andamento. Reinicie e execute novamente para acompanhar o progresso. | 0 |
FullyMigrated | Concluído. O gerenciador de boot está assinado com o certificado de 2023. | 2 |
BlockedNoKek2023 | KEK 2023 ausente. Instale primeiro as atualizações pendentes do Windows e/ou a atualização de BIOS do OEM. | 3 |
BlockedFirmwareKek | O firmware não possui KEK assinada pela Platform Key desta máquina. Precisa de uma atualização de BIOS do OEM (ou, em uma VM, uma atualização do host). | 3 |
NotApplicable-* | BIOS legado ou Secure Boot desabilitado. | 2 |
Error | A manutenção relatou uma falha; o código de erro é impresso. | 0 |
O relatório mostra o estado de manutenção e o estado de migração separadamente.
Esses dois estados realmente divergem no campo. Uma máquina pode reportar UEFICA2023Status = Updated enquanto ambos os binários do gerenciador de boot no disco ainda estão assinados por 2011 — isso acontece quando o firmware foi entregue com a CA de 2023 pré-registrada, então o lado do certificado foi concluído enquanto o lado do gerenciador de boot nunca foi executado. Unir os dois em um único campo reporta essa máquina como concluída quando ela está meio migrada.
Pela mesma razão, o script não deriva o status de WindowsUEFICA2023Capable. A documentação da Microsoft diz sobre esse valor, textualmente: "For reference only - do not use this key when getting status on Secure Boot updates." Ele é capturado apenas como diagnóstico.
As etapas de manutenção alteram o estado do firmware, o que pode mover os PCRs do TPM aos quais um protetor do BitLocker está selado, o que pode gerar uma solicitação de chave de recuperação no próximo boot.
-Apply em escala.-SuspendBitLocker suspende a proteção durante o próximo reboot para que a alteração seja re-selada sem solicitar a chave. O BitLocker é retomado automaticamente depois.O estado do BitLocker é lido de três maneiras independentes (Get-BitLockerVolume, manage-bde e Win32_EncryptableVolume) e reconciliado. Se os leitores discordarem, ou se nenhum conseguir ler o volume, o script se recusa a alterar o firmware em vez de adivinhar.
| Parâmetro | Padrão | Finalidade |
|---|---|---|
-Apply | desativado | Realiza a gravação. Sem ele, somente leitura. |
-SuspendBitLocker | desativado | Suspende o BitLocker durante o reboot de manutenção. |
-RebootCount | 1 | Quantos reboots suspender (1–15). |
-JsonPath | nenhum | Também grava a avaliação como JSON. |
-MountPoint | unidade do sistema | Volume a avaliar. |
-ApplyValue | 0x5944 | O DWORD AvailableUpdates. |
-AllowRevocation | desativado | Necessário para qualquer valor que contenha o bit 0x80 de DBX irreversível. Não passe isto. |
-AllowVirtualMachine | desativado | Permite armar uma VM. |
-AllowServer | desativado | Permite armar uma SKU de Servidor. |
Máquinas virtuais são excluídas por padrão: a CA de 2023 chega à linha de base do firmware via uma atualização de BIOS, e o firmware de uma VM vem do seu hipervisor — um convidado em um host não atualizado não consegue concluir a migração sozinho.
Testado de ponta a ponta no Windows 11 (build 26200, PowerShell 5.1, executando como SYSTEM), UEFI com Secure Boot habilitado, BitLocker totalmente criptografado com protetores TPM + RecoveryPassword em um perfil de PCR 7,11:
Windows UEFI CA 2023 enquanto bootmgfw.efi ainda estava assinado por Microsoft Windows Production PCA 2011 — e não a reportou como concluída, apesar de essa máquina simultaneamente reportar UEFICA2023Status = Updated e WindowsUEFICA2023Capable = 2.0x80 (código de saída 1).-Apply gravou 0x5944, confirmado por uma leitura independente do registro.-SuspendBitLocker seguido por um reboot: a máquina retornou sem solicitação de chave de recuperação e o BitLocker foi retomado automaticamente.Start-Transcript capturou o relatório completo; a saída JSON não continha material de chave de recuperação.Ainda não observado: uma máquina concluindo a migração completa para FullyMigrated. A etapa final é controlada pela implantação escalonada por dispositivo da Microsoft, que está fora do controle de qualquer um. O script expõe o motivo declarado desse portão em vez de deixá-lo como um no-op inexplicável.
MIT — veja LICENSE. Fornecido como está, sem garantia. Revise-o antes de executá-lo no seu ambiente; é um único arquivo legível exatamente por esse motivo.