
Valutazione e manutenzione autonome per il rollover dei certificati Secure Boot dal 2011 al 2023 (CVE-2023-24932 / KB5025885). Solo valutazione per impostazione predefinita; nessuna dipendenza, nessuna rete, nessuna telemetria.
Un singolo script PowerShell autonomo che valuta la posizione dei certificati Secure Boot di una macchina Windows per la rotazione 2011 → 2023 (CVE-2023-24932 / KB5025885) e, solo quando glielo chiedi esplicitamente, attiva l'opt-in per quella macchina nella pipeline di manutenzione Microsoft.
Pubblicato da Exchange Technology Services per clienti e partner che gestiscono i propri endpoint.
I certificati Secure Boot emessi da Microsoft nel 2011 stanno scadendo e vengono sostituiti dalle versioni 2023.
| Certificate | Date | Store | Role |
|---|---|---|---|
| Microsoft Corporation KEK CA 2011 | scaduto il 24 giu 2026 | KEK | Autorizza gli aggiornamenti a DB e DBX |
| Microsoft UEFI CA 2011 | scaduto il 27 giu 2026 | DB | Firma i loader di terze parti / option ROM |
| Windows Production PCA 2011 | 19 ott 2026 | DB | Firma il boot loader di Windows |
Nessuna macchina smette di avviarsi in una di queste date. La guida di Microsoft afferma che un dispositivo che raggiunge la scadenza senza i nuovi certificati "si avvierà e funzionerà ancora normalmente."
Ciò che si perde è la capacità di ricevere gli aggiornamenti di sicurezza del pre-avvio — nuove revoche di Secure Boot, mitigazioni per il bypass di BitLocker, correzioni del boot manager. Si tratta di un'esposizione che si accumula, non di un'interruzione.
Dopo il 19 ott 2026, una macchina il cui firmware non ha mai ricevuto Windows UEFI CA 2023 smette anche di convalidare i supporti di avvio Windows di nuova firma, il che può riguardare i supporti di ripristino, installazione e PXE.
La KEK è il cancello. Senza Microsoft Corporation KEK 2K CA 2023 nel firmware, Windows Update non può proprio consegnare l'aggiornamento del DB. Una macchina a cui manca non può essere corretta finché la KEK non arriva tramite Windows Update o un aggiornamento BIOS OEM. Questo è il blocco più comune nella pratica, e lo script lo segnala esplicitamente invece di scrivere un valore che non farebbe nulla.
Windows PowerShell 5.1, come Amministratore — la lettura delle variabili UEFI richiede l'elevazione.
1. Sbloccare il file (Windows blocca gli script scaricati):
Unblock-File .\Invoke-SecureBootCertServicing.ps1
2. Valutare — sicuro, non apporta modifiche:
powershell.exe -ExecutionPolicy Bypass -File .\Invoke-SecureBootCertServicing.ps1
3. Applicare, solo se la valutazione indica che la macchina è pronta:
.\Invoke-SecureBootCertServicing.ps1 -Apply -SuspendBitLocker
Il report viene scritto con Write-Host, quindi viene visualizzato nella console e registrato da Start-Transcript. Un semplice reindirizzamento > non lo cattura, e nemmeno il piping verso un altro comando.
Start-Transcript C:\Temp\secureboot.log
.\Invoke-SecureBootCertServicing.ps1
Stop-Transcript
Per una copia leggibile dalla macchina, utile quando si raccolgono i risultati su un parco macchine:
.\Invoke-SecureBootCertServicing.ps1 -JsonPath C:\Temp\secureboot.json
Il report mostra separatamente stato di manutenzione e stato di migrazione.
Nella pratica reale questi due stati possono davvero disallinearsi. Una macchina può riportare UEFICA2023Status = Updated mentre entrambi i binari del boot manager su disco sono ancora firmati con il 2011 — accade quando il firmware è stato fornito con la CA 2023 già pre-registrata, quindi il lato certificati è stato completato mentre il lato boot manager non è mai stato eseguito. Unire i due in un unico campo farebbe risultare quella macchina come completata quando in realtà è a metà migrazione.
Per lo stesso motivo lo script non ricava lo stato da WindowsUEFICA2023Capable. La documentazione Microsoft dice di quel valore, testualmente: "For reference only - do not use this key when getting status on Secure Boot updates." Viene acquisito solo come diagnostica.
I passaggi di manutenzione modificano lo stato del firmware, il che può spostare i PCR TPM a cui è sigillato un protettore BitLocker, e può produrre una richiesta di chiave di ripristino al riavvio successivo.
-Apply su larga scala.-SuspendBitLocker sospende la protezione per il riavvio successivo, così la modifica viene risigillata senza richieste. BitLocker riprende automaticamente in seguito.Lo stato di BitLocker viene letto in tre modi indipendenti (Get-BitLockerVolume, manage-bde e Win32_EncryptableVolume) e riconciliato. Se i lettori non sono d'accordo, o se nessuno riesce a leggere il volume, lo script rifiuta di modificare il firmware piuttosto che tirare a indovinare.
Le macchine virtuali sono escluse per impostazione predefinita: la CA 2023 arriva alla baseline del firmware tramite un aggiornamento BIOS, e il firmware di una VM proviene dal suo hypervisor — un guest su un host non aggiornato non può completare la migrazione da solo.
Testato end-to-end su Windows 11 (build 26200, PowerShell 5.1, eseguito come SYSTEM), UEFI con Secure Boot attivo, BitLocker completamente crittografato con protettori TPM + RecoveryPassword su un profilo PCR 7,11:
Windows UEFI CA 2023 mentre bootmgfw.efi era ancora firmato da Microsoft Windows Production PCA 2011 — e non l'ha segnalata come completata, nonostante quella macchina riportasse contemporaneamente UEFICA2023Status = Updated e WindowsUEFICA2023Capable = 2.0x80 (exit 1).-Apply ha scritto 0x5944, confermato da una lettura indipendente del registro.-SuspendBitLocker seguito da un riavvio: la macchina è tornata senza richiesta di ripristino e BitLocker si è riattivato automaticamente.Start-Transcript ha catturato il report completo; l'output JSON non conteneva materiale relativo alle chiavi di ripristino.Non ancora osservato: una macchina che completa l'intera migrazione a FullyMigrated. Il passo finale è controllato dal rollout graduale per dispositivo di Microsoft, che è fuori dal controllo di chiunque. Lo script mostra il motivo dichiarato di quel blocco invece di lasciarlo come un no-op senza spiegazione.
MIT — vedi LICENSE. Fornito così com'è, senza garanzie. Rivedilo prima di eseguirlo nel tuo ambiente; è un singolo file leggibile proprio per questo motivo.
| Proprietà | Dettaglio |
|---|
| Comportamento predefinito | Solo valutazione. Nessuna scrittura senza -Apply. |
| Dipendenze | Nessuna. Nessun modulo, nessun installer. Windows PowerShell 5.1. |
| Accesso alla rete | Nessuno. Non contatta mai alcun host. |
| Telemetria / report | Nessuna. Tutto ciò che trova viene stampato nella console. Nulla lascia la macchina. |
| Chiavi di ripristino BitLocker | Mai lette, stampate o trasmesse. Controlla soltanto se esiste un protettore con password di ripristino. |
Cosa scrive -Apply | Esattamente un valore di registro: AvailableUpdates = 0x5944 in HKLM\SYSTEM\CurrentControlSet\Control\Secureboot. L'opt-in documentato KB5025885. Additivo — aggiunge il certificato 2023 senza rimuovere quello del 2011. |
| Azioni irreversibili | Rifiuto categorico. Il bit di revoca DBX 0x80 è permanente finché Secure Boot rimane attivo; lo script rifiuta qualsiasi valore che lo contenga a meno che non venga passato esplicitamente -AllowRevocation. Non passarlo. |
| Riavvii | Non riavvia mai la macchina e non chiede mai conferma all'utente. |
| Verdetto | Significato | Codice di uscita |
|---|
ReadyToArm | KEK 2023 presente, DB non ancora migrato, nessun opt-in. -Apply è il passo successivo. | 0 |
HalfMigrated | Il firmware si fida della CA 2023, ma la macchina avvia ancora un loader firmato con il 2011. Ok oggi; non si avvierebbe se il 2011 venisse mai revocato. Serve ancora l'aggiornamento del boot manager. | 0 |
HalfMigrated-Armed | Come sopra, e già in opt-in. Riavviare la macchina — non eseguire di nuovo -Apply. | 0 |
AlreadyQueued | Opt-in effettuato, in attesa del rollout graduale di Microsoft. | 0 |
InProgress / RebootPending | Manutenzione in corso. Riavviare e ri-eseguire per seguire i progressi. | 0 |
FullyMigrated | Completato. Il boot manager è firmato con il 2023. | 2 |
BlockedNoKek2023 | KEK 2023 mancante. Installare prima gli aggiornamenti Windows in sospeso e/o l'aggiornamento BIOS OEM. | 3 |
BlockedFirmwareKek | Il firmware non ha una KEK firmata dalla Platform Key di questa macchina. Serve un aggiornamento BIOS OEM (o, su una VM, un aggiornamento dell'host). | 3 |
NotApplicable-* | BIOS legacy, oppure Secure Boot disabilitato. | 2 |
Error | La manutenzione ha segnalato un errore; il codice di errore viene stampato. | 0 |
| Parametro | Predefinito | Scopo |
|---|
-Apply | off | Esegue la scrittura. Senza, sola lettura. |
-SuspendBitLocker | off | Sospende BitLocker durante il riavvio di manutenzione. |
-RebootCount | 1 | Per quanti riavvii sospendere (1–15). |
-JsonPath | nessuno | Scrive anche la valutazione come JSON. |
-MountPoint | drive di sistema | Volume da valutare. |
-ApplyValue | 0x5944 | Il DWORD AvailableUpdates. |
-AllowRevocation | off | Necessario per qualsiasi valore che contenga il bit DBX irreversibile 0x80. Non passarlo. |
-AllowVirtualMachine | off | Consente di armare una VM. |
-AllowServer | off | Consente di armare una SKU Server. |