[English]Microsoft versucht seit geraumer Zeit den Secure Boot in Windows gegen die Black Lotus-Boot-Kit-Schwachstelle CVE-2023-24932 abzusichern. Nachfolgend eine kurze Zusammenfassung bzw. FAQ, u.a. zum auszutauschenden Zertifikat in den Boot-Medien. Und ein Leser hat mir sein Script zum Zertifikatsaustausch zukommen lassen.
Anzeige
Windows UEFI CA 2023 Zertifikat
Seit langer Zeit versucht Microsoft die Schwachstelle CVE-2023-24932 im Secure Boot von Windows 11 zu schließen, die durch das BlackLotus UEFI-Bootkit ausgenutzt wird (siehe KB5025885: Secure Boot-Absicherung gegen Schwachstelle CVE-2023-24932 (Black Lotus)).
Aber es gibt noch ein Problem: Im Oktober 2026 läuft ein UEFI-Zertifikat ("Windows Production PCA 2011") Microsofts ab, welches beim Secure Boot benutzt wird. Das dürfte nicht nur Windows-Nutzer betreffen, sondern auch Linux-Administratoren sollten sich mit dem Thema befassen. Auch hier versucht Microsoft seit geraumer Zeit das Zertifikat zu erneuern (siehe auch Windows 10/11 KB5053484: Neues PS-Script für Zertifikate in Boot-Medien). Administratoren müssen reagieren und das neue Zertifikat bis Oktober 2026 im UEFI der Maschinen abgelegt haben.
Fragen und Antworten zum UEFI-Zertifikat
Bolko hatte in diesem Kommentar einige Fragen und Antworten rund um den Austausch des UEFI-Zertifikat für den Secure Boot eingestellt (danke dafür). Ich ziehe die Informationen mal als FAQ heraus.
Welches Update enthält das neue UEFI-Zertifikat?
Das kumulative Update KB5036210 vom 13. Februar 2024 brachte erstmals das Windows UEFI CA 2023-Zertifikat und die Funktionen mit, um die UEFI Secure Boot Allowed Signature Database (DB) mit dem neuen Schlüssel zu aktualisieren. Dieses und alle nachfolgenden Updates sollten das neue Bootloader-Zertifikat enthalten, was nach Oktober 2026 beim Secure Boot benötigt wird.
Anzeige
Wie erkenne ich, ob das neue Zertifikat vorhanden ist?
Ob Windows das neue Zertifikat integriert hat, sollte man (laut Supportseite) an folgendem Registry-Schlüssel herausfinden können:
HKEY_LOCAL_MACHINE\SYSTEM\\CurrentControlSet\Control\SecureBoot\Servicing
Ist dort der 32-Bit-DWORD-Wert WindowsUEFICA2023Capable auf 0x40 gesetzt, sollte Windows vorbereitet sein. Mit dem DWORD-Wert 0x0 ist das System nicht für das neue UEFI-Zertifikat bereit.
Sind UEFI-Signaturen integriert?
Die spannende Frage ist, ob ein OEM-Hersteller bereits die neuen Zertifikate im UEFI eines neuen Rechners integriert hat. Dann spart man sich das Patchen. Bolko schreibt, dass man im UEFI kann man selber nachschauen können. Dazu das UEFI beim Starten des Rechners (über eine Funktionstaste) öffnen und in folgenden Optionen schauen:
secure boot keys -> Authorized Signatures (db) -> search for "Windows UEFI CA 2023"
Detailliertere Informationen zu diesen UEFI-Signaturen findet man, inklusive Downloads für das neue Zertifikat,. bei Microsoft in diesem Dokument. Kurzfassung: Man braucht, je Mainboard-Hersteller, einen signierten KEK-Schlüssel, um diese neuen Signaturen ins UEFI integrieren zu dürfen.
Microsoft bezeichnet das neue Schlüsselaustausch-Zertifikat als "Microsoft Corporation KEK CA 2023-Zertifikat". Alle Mainboard-Hersteller müssen dieses Microsoft-Zertifikat runterladen, signieren und wieder zurück zu Microsoft hochladen, damit Microsoft dann per Update aus Windows heraus ab dem Jahr 2026 neue DB und DBX-Signaturen ins UEFI schreiben darf. Ohne dieses neue signierte KEK würden die UEFIs die Updates der erlaubten Bootloader-Signatur-Datenbanken verweigern.
Weitere Informationen
Ich finde aktuell die Stelle im Blog nicht mehr, wo ich es erwähnt habe. Meinen Kenntnissen nach will Microsoft das alte UEFI Secure-Boot-Zertifikat ("Windows Production PCA 2011") mit einem künftigen Update als ungültig erklären. Die sogenannte Erzwingungsphase beginnt aber nicht vor Januar 2026. Allen Lesern empfehle ich den Microsoft Support-Beitrag Verwalten der Windows-Start-Manager-Sperrungen für Änderungen des sicheren Starts im Zusammenhang mit CVE-2023-24932 von Mai 2023, da dort viele zusätzliche Informationen (u.a. die Zeitpläne für die Erzwingungsphade) zusammen getragen wurden.
Ein Script zur Zertifikatinstallation
Es gab in diesem Kommentarthread einen Hinweis auf ein Script zur Zertifikatinstallation. Ich hatte angeboten, das Script zu veröffentlichen – hier die betreffenden Anweisungen. Ein Administrator hat mir folgenden Code zukommen lassen (danke dafür).
@ECHO OFF @REM Autor:RF @REM Datum:31.01.2025 @REM KB5025885 REM TODO REM reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x40 /f REM 2x Reboot REM REM powershell -command "[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'Windows UEFI CA 2023'" REM REM reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x100 /f REM 2x Reboot REM REM mountvol Q: /s && copy "Q:\EFI\Microsoft\Boot\bootmgfw.efi" "%TEMP%\bootmgfw.efi" && mountvol Q: /d REM Signatur von %TEMP%\bootmgfw.efi prüfen REM REM reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x80 /f REM 2x Reboot REM REM powershell -command "[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI dbx).bytes) -match 'Microsoft Windows Production PCA 2011'" REM REM reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x200 /f REM 2x Reboot @ECHO. @ECHO %~nx0 %* REM **************************************************************************** REM Test Administator Berechtigung "%windir%\System32\net.exe" session >nul 2>nul "%windir%\System32\net.exe" session >nul 2>nul REM ECHO ErrorLevel: %errorlevel% IF ERRORLEVEL 1 ( ECHO. ECHO Error: %~nx0 ECHO Administator Berechtigung erforderlich ECHO. Pause Exit /b ) REM **************************************************************************** SETLOCAL SET $CWD=%CD% SET $CERT_OLD=Microsoft Windows Production PCA 2011 SET $CERT_NEW=Windows UEFI CA 2023 SET $OUT=%TEMP%\~%~n0.txt CD /D "%~dp0" REM CD /D "%~1" REM **************************************************************************** ECHO Check new Certificate installed in UEFI db (%$CERT_NEW%) ECHO. > "%$OUT%" powershell.exe -command "[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match '%$CERT_NEW%'" > NUL "%windir%\System32\find.exe" /I "True" "%$OUT%" REM ECHO %ERRORLEVEL% IF "0"=="%ERRORLEVEL%" GOTO :DB_OK REM **************************************************************************** ECHO. ECHO ERROR: new Certificate is not installed in UEFI db. ECHO. SET /P $ANSWER="Do you want to install new Certificate in UEFI db? [Y/N] " IF /I NOT "Y"=="%$ANSWER%" GOTO :ENDE REM **************************************************************************** ECHO. ECHO Add Reg Key ECHO. "%windir%\System32\REG.EXE" ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot" /v AvailableUpdates /t REG_DWORD /d 0x40 /f ECHO. ECHO Please reboot twice and run this script again ECHO. GOTO :ENDE REM **************************************************************************** :DB_OK ECHO new Certificate is installed in UEFI db (%$CERT_NEW%). ECHO. REM **************************************************************************** ECHO Check Signature of BootLoader (%$CERT_NEW%) ECHO. "%windir%\System32\mountvol.exe" Q: /S > NUL COPY /Y "Q:\EFI\Microsoft\Boot\bootmgfw.efi" "%TEMP%\bootmgfw.efi" "%windir%\System32\mountvol.exe" Q: /D > NUL "%windir%\System32\find.exe" /I "%$CERT_NEW%" "%TEMP%\bootmgfw.efi" REM ECHO %ERRORLEVEL% IF "0"=="%ERRORLEVEL%" GOTO :BOOT_OK > NUL "%windir%\System32\find.exe" /I "%$CERT_OLD%" "%TEMP%\bootmgfw.efi" IF "0"=="%ERRORLEVEL%" ECHO BootLoader is signed with old Certificate "%$CERT_OLD%" REM **************************************************************************** ECHO. ECHO ERROR: BootLoader is not signed with new Certificate. ECHO. SET /P $ANSWER="Do you want to update the BootLoader? [Y/N] " IF /I NOT "Y"=="%$ANSWER%" GOTO :ENDE REM **************************************************************************** ECHO. ECHO Add Reg Key ECHO. "%windir%\System32\REG.EXE" ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot" /v AvailableUpdates /t REG_DWORD /d 0x100 /f ECHO. ECHO Please reboot twice and run this script again ECHO. GOTO :ENDE REM **************************************************************************** :BOOT_OK ECHO BootLoader is signed with new Certificate (%$CERT_NEW%). ECHO. REM **************************************************************************** ECHO Check old Certificate blocked in UEFI dbx (%$CERT_OLD%) ECHO. > "%$OUT%" powershell.exe -command "[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI dbx).bytes) -match '%$CERT_OLD%'" > NUL "%windir%\System32\find.exe" /I "True" "%$OUT%" REM ECHO %ERRORLEVEL% IF "0"=="%ERRORLEVEL%" GOTO :DBX_OK REM **************************************************************************** ECHO. ECHO ERROR: old Certificate is not blocked in UEFI dbx. ECHO. SET /P $ANSWER="Do you want to blocked old Certificate in UEFI dbx? [Y/N] " IF /I NOT "Y"=="%$ANSWER%" GOTO :ENDE REM **************************************************************************** ECHO. ECHO Add Reg Key ECHO. "%windir%\System32\REG.EXE" ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot" /v AvailableUpdates /t REG_DWORD /d 0x80 /f ECHO. ECHO Please reboot twice and run this script again ECHO. GOTO :ENDE REM **************************************************************************** :DBX_OK ECHO old Certificate is blocked in UEFI dbx. ECHO. REM **************************************************************************** REM TODO REM "%windir%\System32\REG.EXE" ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot" /v AvailableUpdates /t REG_DWORD /d 0x200 /f REM **************************************************************************** :ENDE ECHO bye PAUSE CD /D "%$CWD%" ENDLOCAL GOTO :EOF
Der Administrator hat mir mitgeteilt, dass er ca. 50 Rechner mit dem Script umgestellt habe. Natürlich gilt, dass der Code auf Basis As-Is bereitgestellt wird und die Nutzung auf eigene Gefahr erfolgt.
Ähnliche Artikel:
Windows 10/11 KB5053484: Neues PS-Script für Zertifikate in Boot-Medien
KB5025885: Secure Boot-Absicherung gegen Schwachstelle CVE-2023-24932 (Black Lotus)
Frage: BlackLotus-Schwachstelle und ablaufendes UEFI-Zertifikat – was droht uns?
Windows und das (BlackLotus) Secure Boot-Desaster: Wie ist bei euch der Status?
Anzeige
Also mein Thinkpad T14 G4 hat das aktuellste BIOS welches auch laut Changelog schon das neue MS Zertifikat haben soll. W11 24H2 Februar Update ist ebenfalls installiert.
WindowsUEFICA2023Capable steht auf 0 und AvailableUpdates steht ebenfalls auf 0
Muss man da dann irgendwann manuell eingreifen oder wird das "irgendwann" automatisch von Windows geupdated?
Ich habe es in der FAQ nicht angegeben – hatte es vor einigen Wochen mal im Blog erwähnt (finde die Stelle nicht mehr): Laut Microsoft will man das alte UEFI-Zertifikat mit einem zukünftigen Update revoken – also als ungültig erklären, so dass das neue Zertifikat dann ausschließlich für den Secure Boot gilt.
Also bei meinem Laptop klappt das Script nicht. Es gibt mir immer wieder die Meldung der Bootloader müsste aktualisiert werden. Wenn ich das machen und 2-mal reboote, kommt anschließend immer noch die selbe Meldung und das Zertifikat ist immer noch das Alte. Wenn ich die Registryeinträge manuell setze, wie im MS Artikel beschrieben, geht es. Vielleicht haben Andere andere Erfahrungen?
Ich schaue mal, ob ich den Urheber des Scripts noch kontaktieren kann.
Frage: Hat sich schon mal jemand das in Hinblick bei einem Server mit WDS angesehen ?
Das müßte dort doch auch "gefixt" werden , oder ?