Secure Boot CA 2023 — kontrola a remediace
Jediný PowerShell skript Invoke-SecureBootRemediation.ps1 pro audit a řízenou remediaci expirujících Secure Boot certifikátů na Windows Serverech (fyzické stroje, Hyper-V VM, VMware VM).
1. Co řešíme
Microsoft v upozornění KB5062710 oznámil, že původní Secure Boot certifikáty z roku 2011 expirují v průběhu roku 2026. Tyto certifikáty jsou uloženy přímo ve firmware (UEFI KEK a DB databázích) a zajišťují důvěryhodnost celého boot procesu.
| Certifikát | Umístění | Expirace | Náhrada 2023 |
|---|---|---|---|
| Microsoft Corporation KEK CA 2011 | KEK | 24. 6. 2026 | Microsoft Corporation KEK 2K CA 2023 |
| Microsoft UEFI CA 2011 | DB | 27. 6. 2026 | Microsoft UEFI CA 2023 + Option ROM UEFI CA 2023 |
| Microsoft Windows Production PCA 2011 | DB | 19. 10. 2026 | Windows UEFI CA 2023 |
Dopad, pokud se nic neudělá: server bude dál bootovat, ale přestane přijímat nové ochrany boot procesu — aktualizace Boot Manageru, revokace (DBX) a mitigace nově objevených boot-level zranitelností. Postupně se sníží ochrana a ovlivní to scénáře závislé na Secure Boot důvěře (BitLocker hardening, third-party bootloadery).
Co je skutečné „hotovo": nestačí jen mít nové certifikáty v KEK/DB — aktualizace je dokončená až když jsou splněny všechny 4 podmínky a Boot Manager je ověřen:
Windows UEFI CA 2023v DB +Microsoft Corporation KEK 2K CA 2023v KEKAvailableUpdates = 0x0nebo0x4000UEFICA2023Status = "Updated"UEFICA2023Error = 0nebo neexistuje- Boot Manager:
WindowsUEFICA2023Capable = 2nebocertutilověřil podpis souborubootmgfw.efi
Poslední krok (aktivace Boot Manageru) se aplikuje až po restartu a skript to ověří přímo na souboru.
2. Jak skript správně použít
Požadavky
- Windows PowerShell 5.1+, spuštěno jako Administrator
- Build Windows z 14. 10. 2025 nebo novější (KB5066835) — bez něj neexistují servicing registry klíče ani úloha. Skript na to upozorní.
- Žádné externí moduly. UEFI databáze a podpis bootloaderu čte nativně.
Skript NIKDY nerestartuje server
Restart je nutný k dokončení aktualizace, ale necháváme ho na vás (plánované okno, ohled na BitLocker). Výjimka: parametr -AutoRestart pro automatizované scénáře.
Typický průběh (interaktivně)
# 1) Spustit na serveru jako Administrator
.\Invoke-SecureBootRemediation.ps1
Skript provede detekci, zobrazí výstup ve 4 sekcích a u stavů, kde to dává smysl, se zeptá, zda remediaci aplikovat. Po souhlasu nastaví registry a spustí servicing úlohu (počká na ni). Pak:
2) Naplánujte RESTART serveru
3) Po restartu spusťte skript znovu
4) Opakujte, dokud stav nebude HOTOVO
Aktualizace se aplikuje po částech na více restartů — hodnota AvailableUpdates postupně klesá 0x5944 → 0x5904 → 0x5104 → 0x4104 → 0x4100 → 0x4000 → 0x0.
Důležité před restartem
Pokud má server BitLocker s ochranou vázanou na TPM/PCR7, změna Boot Manageru může vyvolat recovery prompt. Skript BitLocker stav zobrazí a zvýrazní — před restartem ověřte recovery key.
Parametry
| Parametr | Účel |
|---|---|
| (bez parametru) | Interaktivní detekce → dotaz → remediace |
-CheckOnly |
Jen detekce + výpis + exit kód (0 = hotovo, 1 = nutná akce, 2 = blokováno). Bez změn a bez dotazu. Vhodné pro RMM/monitoring. |
-WhatIf |
Ukáže, co by remediace udělala, bez provedení změn. |
-AssumeYes |
Přeskočí interaktivní dotaz a remediaci rovnou aplikuje (pokud je smysluplná). |
-Force |
Spustí remediaci i v případě, že povinné certifikáty jsou již přítomny. |
-AutoRestart |
Po stavu AU=0x4100 (Boot Manager staged, čeká na restart) restartuje server automaticky bez dotazu. POZOR: okamžitý restart. |
-EspDriveLetter <X> |
Písmeno jednotky pro dočasný mount ESP při ověřování Boot Manageru (výchozí S). Změňte, pokud S: je na serveru obsazeno. |
Příklady
# Jen kontrola stavu — pro skript/monitoring, bez zásahu
.\Invoke-SecureBootRemediation.ps1 -CheckOnly
# Náhled co by se stalo, bez změn
.\Invoke-SecureBootRemediation.ps1 -WhatIf
# Neinteraktivní aplikace (CI/CD, dávkový rollout)
.\Invoke-SecureBootRemediation.ps1 -AssumeYes
# Server kde S: je obsazeno, použít T: pro ESP
.\Invoke-SecureBootRemediation.ps1 -EspDriveLetter T
# Neinteraktivní + auto-restart po staged Boot Manageru
.\Invoke-SecureBootRemediation.ps1 -AssumeYes -AutoRestart
3. Co skript dělá (detailně)
Výstup — 4 sekce
Skript zobrazí vždy čtyři sekce:
PŘEDPOKLADY:
1. [+] Administrátorská práva
2. [+] Windows Server — Zjištěno: Windows Server 2022 Standard (build 20348.xxx)
3. [+] UEFI + Secure Boot zapnutý
4. [+] Úroveň záplat >= 10/2025 — stavové registry klíče přítomny
5. [+] Scheduled task 'Secure-Boot-Update' k dispozici
6. [+] PowerShell SecureBoot cmdlety — Get-SecureBootUEFI dostupný
CERTIFIKÁTY:
[+] Windows UEFI CA 2023 v DB (povinný) platný do 2045-06-10
[+] Microsoft Corporation KEK 2K CA 2023 (povinný)
[ ] Boot Manager (bootmgfw.efi) nedostupný (ESP nelze připojit)
[ ] Microsoft UEFI CA 2023 (volitelný)
[ ] Option ROM UEFI CA 2023 (volitelný)
REGISTRY:
AvailableUpdates : 0x5944 (naplánováno — start)
UEFICA2023Status : NotStarted
UEFICA2023Error : (žádná)
WindowsUEFICA2023Capable : 1 = cert v DB (boot mgr zatím ne)
UDÁLOSTI (System log — Secure Boot):
2026-06-05 18:42 EventID 1801 Čeká na podmínky (monitor)
2026-06-05 18:43 EventID 1808 Certifikáty úspěšně aplikovány
Pokud hard prerekvizita selže, skript dále nepokračuje a zobrazí přesný důvod.
Fáze — co je povinné pro HOTOVO
| Fáze | Povinná | Splněno když |
|---|---|---|
| Secure Boot zapnutý | ✅ | Confirm-SecureBootUEFI = True |
| Servicing task k dispozici | ✅ | task Secure-Boot-Update existuje |
| KEK: Microsoft Corporation KEK 2K CA 2023 | ✅ | cert v KEK databázi |
| DB: Windows UEFI CA 2023 | ✅ | cert v DB databázi |
| AvailableUpdates = 0x0 nebo 0x4000 | ✅ | servisování dokončeno |
| UEFICA2023Status = Updated | ✅ | registry klíč |
| Boot Manager ověřen (2023 CA) | ✅ | Capable=2 nebo certutil potvrdil podpis souboru |
| DB: Microsoft UEFI CA 2023 (3rd-party) | — | volitelné (option ROM / non-Windows boot) |
| DB: Option ROM UEFI CA 2023 | — | volitelné |
| DBX: revokace starého boot manageru 2011 | — | volitelné (finální hardening) |
Detekce — odkud čte
- Prostředí a HW (WMI/CIM): fyzický / Hyper-V VM / VMware VM, výrobce, model, BIOS verze a datum
- Secure Boot stav a operating mode (User / Deployed / Setup / Audit) ze standardních UEFI proměnných
- Certifikáty v KEK / DB / DBX — parsováním
EFI_SIGNATURE_LISTna X.509 (subject, thumbprint, platnost), s ASCII fallbackem - Boot Manager
bootmgfw.efina ESP:- Pokus 1: prohledá A–Z pro ESP s existujícím písmenem jednotky
- Pokus 2: připojí ESP přes
mountvol <X>: /S(výchozí S:, lze změnit-EspDriveLetter), zkopíruje soubor do%TEMP%\SecureBootCA2023\a ověří podpis přescertutil -dump— přečte embedded PKCS#7 blob přímo z PE souboru, bez závislosti na local cert store; záloha Event 1799
- Registry
HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot[\Servicing]:AvailableUpdates,MicrosoftUpdateManagedOptIn,HighConfidenceOptOut,UEFICA2023Status(NotStarted / InProgress / Updated / Failed),UEFICA2023Error,UEFICA2023ErrorEvent,WindowsUEFICA2023Capable(0 / 1 / 2),ConfidenceLevel - BitLocker systémové jednotky: stav ochrany a typ protektoru (zvýraznění TPM/PCR7 rizika)
- Event Log (System, zdroj TPM-WMI): 1795, 1796, 1799, 1800, 1801, 1802, 1803, 1808
Vyhodnocení — kategorie
| Kategorie | Význam | Akce |
|---|---|---|
| OK | 4 podmínky splněny + Boot Manager ověřen | žádná |
| OK_TRANSITION | HOTOVO, ale staré 2011 certy ještě přítomné (normální přechodný stav) | žádná, monitorovat |
| UPDATE_NEEDED | Žádné 2023 certy nenasazeny | zahájit remediaci |
| UPDATE_PARTIAL | Část certifikátů nasazena, servisování probíhá | spustit task, restart |
| UPDATE_PENDING_RESTART | Boot Manager 2023 staged (AU=0x4100) — čeká na restart |
RESTART |
| UPDATE_BOOTMANAGER | Certy v DB/KEK OK, ale bootloader dosud nepoužívá 2023 CA | spustit task, restart |
| UPDATE_FAILED | Event 1795 / UEFICA2023ErrorEvent / status Failed |
firmware/OEM, troubleshooting |
| FIRMWARE_UPDATE_NEEDED | ConfidenceLevel: Temporarily Paused / Event 1802 |
update firmwaru u OEM |
| NOT_SUPPORTED | ConfidenceLevel: Not Supported |
dokumentovat jako výjimku |
| BUILD_OUTDATED | Certy přítomny, ale chybí servicing infrastruktura | Windows Update (KB5066835+) |
| TASK_MISSING | Chybí servicing úloha | nainstalovat KB5066835+ |
| SETUP_MODE | Secure Boot v Setup Mode (chybí enrolled PK) | obnovit klíče v UEFI |
| SECUREBOOT_DISABLED | Secure Boot vypnutý | zapnout v UEFI/BIOS |
| NO_SECUREBOOT | Legacy BIOS | dokumentovat jako výjimku |
| NO_SECUREBOOT_VM | VM bez UEFI nebo vTPM | dokumentovat jako výjimku |
Remediace (jen po souhlasu, sekvenčně)
- Registry — nastaví
MicrosoftUpdateManagedOptIn=1,AvailableUpdates=0x5944(jen při první inicializaci nebo po dokončení),HighConfidenceOptOut=0; zápis se ověří zpětným čtením. - Servicing úloha — spustí
\Microsoft\Windows\PI\Secure-Boot-Updatea čeká na změnuAvailableUpdates(timeout 180 s). - Ověření — znovu proběhne detekce a zobrazí aktualizovaný stav.
Po remediaci skript jasně řekne, kdy je restart nutný a upozorní na BitLocker — bez restartu.
Stav v log souboru
Průběh se loguje do %ProgramData%\SecureBootCA2023\SecureBootRemediation.log a stav cyklu do %ProgramData%\SecureBootCA2023\state.json.
Výstup pro automatizaci (-CheckOnly exit kódy)
| Exit kód | Význam |
|---|---|
0 |
HOTOVO — OK nebo OK_TRANSITION |
1 |
Nutná akce — UPDATE_* kategorie |
2 |
Blokováno — prerekvizita selhala, NO_SECUREBOOT, SETUP_MODE, apod. |
Kódování
Skript je uložen jako UTF-8 s BOM a na startu vynutí UTF-8 výstup konzole, aby čeština i symboly fungovaly i ve Windows PowerShell 5.1.
4. Zdroje
Microsoft — oficiální dokumentace
| Téma | Odkaz |
|---|---|
| Přehled: expirace certifikátů a CA aktualizace (KB5062710) | support.microsoft.com |
| Guidance for IT Professionals and Organizations (KB5062713) | support.microsoft.com |
| Registry key updates for Secure Boot — IT-managed (KB5068202) | support.microsoft.com |
| GPO metoda (KB5068198) | support.microsoft.com |
| WinCS API (KB5068197) | support.microsoft.com |
| Secure Boot DB and DBX variable update events | support.microsoft.com |
| Troubleshooting (KB5085046) | support.microsoft.com |
| Known issues a resolutions, vč. Hyper-V fix (KB5085790) | support.microsoft.com |
| Minimální build 14. 10. 2025 (KB5066835) | support.microsoft.com |
| Windows Server Secure Boot playbook (2026) | techcommunity.microsoft.com |
Komunitní projekty (inspirace pro logiku a přehled)
| Projekt | Odkaz |
|---|---|
| CheckCA2023 (claude-boucher) — GUI monitor, podrobná registry/bit reference | github.com/claude-boucher/CheckCA2023 |
| SecureBoot-CA2023-Automatic-Update (mathisokle) — automatizace, ESP mount logika | github.com/mathisokle/SecureBoot-CA2023-Automatic-Update |
Skript záměrně NErestartuje server (výjimka: -AutoRestart). Implementuje metodu registry klíčů (KB5068202); metody GPO / Intune / WinCS nepokrývá.