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).

Pozor — co je skutečné „hotovo": nestačí jen mít nové certifikáty v KEK/DB. Aktualizace je dokončená, až když se systém reálně bootuje z Boot Manageru podepsaného Windows UEFI CA 2023 (signalizuje WindowsUEFICA2023Capable = 2 / Event 1808). Tento poslední krok se aplikuje až po restartu. Skript proto kontroluje i Boot Manager, ne jen certifikáty.


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 č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). Skript jen jasně řekne, kdy je restart potřeba.

Typický průběh (interaktivně)

# 1) Spustit na serveru jako Administrator
.\Invoke-SecureBootRemediation.ps1

Skript provede detekci, ukáže checklist 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 checklist nebude celý zelený (HOTOVO)

Aktualizace se aplikuje po částech na více restartů — hodnota AvailableUpdates postupně klesá 0x5944 → 0x5904 → 0x5104 → 0x4104 → 0x4100 → 0x4000 → 0x0. Cílový stav je AvailableUpdates=0x0, UEFICA2023Status=Updated, WindowsUEFICA2023Capable=2.

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 (bez restartu)
-CheckOnly Jen detekce + checklist + 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 Neinteraktivně aplikuje remediaci (pokud je smysluplná). Stále bez restartu.
-Force Aplikuje i ve stavech, kdy to skript jinak nedoporučuje
-SkipScheduledTask Nastaví registry, ale nespustí úlohu (spustí se sama, cca á 12 h)
-SkipBootManagerFileCheck Vynechá mount ESP + certutil. Dokončení se i tak pozná z WindowsUEFICA2023Capable=2 / Event 1808 / 1799.
-RegisterResume Po remediaci vyžadující restart nastaví RunOnce, který po PŘÍŠTÍM (ručním) restartu sám spustí -CheckOnly. Nikdy nerestartuje.
-Detailed Rozšířený rozpis (certifikáty, události, Boot Manager chain, bit-rozklad AvailableUpdates)
-PassThru Vrátí výsledný objekt do pipeline
-LogPath <cesta> Vlastní cesta k logu (jinak log vzniká vedle skriptu jen při reálné remediaci)

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 + auto-kontrola po příštím restartu
.\Invoke-SecureBootRemediation.ps1 -AssumeYes -RegisterResume

# Plný rozpis pro diagnostiku
.\Invoke-SecureBootRemediation.ps1 -CheckOnly -Detailed

3. Co skript dělá (detailně)

Fázový checklist

Server je „HOTOVO" teprve když projdou všechny povinné fáze. Volitelné fáze jsou jen informativní.

Fáze Povinná Splněno když
Secure Boot zapnutý Confirm-SecureBootUEFI = True
Servicing task k dispozici existuje \Microsoft\Windows\PI\Secure-Boot-Update
KEK: Microsoft Corporation KEK 2K CA 2023 cert v KEK databázi
DB: Windows UEFI CA 2023 cert v DB databázi
Boot Manager aktivní (2023) WindowsUEFICA2023Capable=2 / Event 1808 / 1799
DB: Microsoft UEFI CA 2023 (3rd-party) volitelné (pro option ROM / non-Windows boot)
DB: Option ROM UEFI CA 2023 volitelné
DBX: revokace starého boot manageru 2011 volitelné (finální hardening)

V checklistu: [✓] splněno (zeleně), [ ] zbývá, [✗] chyba/blokováno. Zvýrazní se aktuální krok („← vyžaduje RESTART").

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 — primárně parsováním EFI_SIGNATURE_LIST na X.509 (subject, thumbprint, platnost), s ASCII fallbackem
  • Boot Manager bootmgfw.efi na ESP — read-only mount + certutil -dump (staged podpis); aktivní stav z registru/eventů
  • Registry HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot[\Servicing]: AvailableUpdates, MicrosoftUpdateManagedOptIn, HighConfidenceOptOut, UEFICA2023Status (REG_SZ: NotStarted/InProgress/Updated), 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 kompletní 2023 sada, aktivní Boot Manager, 2011 odstraněny žádná
OK_TRANSITION 2023 i aktivní Boot Manager hotové, 2011 ještě přítomné (normální) žádná, monitorovat
UPDATE_NEEDED nic 2023 nenasazeno zahájit remediaci
UPDATE_PARTIAL část nasazena, chybí KEK/DB pokračovat v cyklu
UPDATE_PENDING KEK i DB hotové, zbývá aktivovat Boot Manager RESTART, pak znovu zkontrolovat
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
SETUP_MODE Secure Boot v Setup Mode (chybí enrolled PK) obnovit klíče v UEFI
TASK_MISSING chybí servicing úloha (starý build) nainstalovat KB5066835+
SECUREBOOT_DISABLED Secure Boot vypnutý rozhodnout o zapnutí
NO_SECUREBOOT / _VM Legacy BIOS / VM bez vTPM výjimka

Remediace (jen po souhlasu, sekvenčně)

  1. Registry — nastaví MicrosoftUpdateManagedOptIn=1, AvailableUpdates=0x5944, HighConfidenceOptOut=0; zápis se ověří zpětným čtením, než pokračuje dál.
  2. Servicing úloha — spustí \Microsoft\Windows\PI\Secure-Boot-Update a čeká na změnu AvailableUpdates (nebo na doběh úlohy, timeout 180 s).
  3. Ověření — znovu proběhne detekce a ukáže aktualizovaný stav fází.

Skript pak vypíše další kroky (restart, BitLocker, opakování) — bez restartu.

Stav napříč restarty

Průběh se ukládá do %ProgramData%\SecureBootCA2023\state.json (číslo cyklu, kategorie, hodnota). S -RegisterResume se přes RunOnce po dalším restartu sama spustí -CheckOnly (žádné auto-aplikování, žádný auto-restart).

Výstup

  • Stručný barevný souhrn: server, checklist, registry/firmware, verdikt
  • Český, faktický, nezahlcuje; důležité informace jsou zvýrazněné
  • Volitelný log (cesta se vypíše), -Detailed rozpis, -PassThru objekt
  • -CheckOnly nastavuje exit kód (0/1/2) pro automatizaci

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. Symboly checklistu jsou na jednom místě nahoře ve skriptu ($SYM_DONE …), kdyby je bylo potřeba změnit.


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 support.microsoft.com
Registry key updates for Secure Boot (IT-managed) support.microsoft.com
Secure Boot DB and DBX variable update events support.microsoft.com
IT Pro guidance (KB5062713) support.microsoft.com
Registry key metoda (KB5068202) support.microsoft.com
GPO metoda (KB5068198) support.microsoft.com
WinCS API (KB5068197) 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 přes restarty github.com/mathisokle/SecureBoot-CA2023-Automatic-Update

Skript záměrně NErestartuje server. Implementuje metodu registry klíčů (KB5068202); metody GPO / Intune / WinCS nepokrývá.

S
Description
No description provided
Readme 227 KiB
Languages
PowerShell 100%