VeraCrypt

Documentation >> System Encryption >> EFI Secure Boot

EFI Secure Boot

VeraCrypt system encryption is compatible with EFI Secure Boot: the VeraCrypt EFI bootloaders are signed by Microsoft through the Microsoft third-party UEFI signing program, so they can be verified by the firmware using the standard Microsoft certificates without enrolling any custom key. This page explains how VeraCrypt selects its signed bootloaders, how this interacts with the Microsoft Secure Boot certificate transition from the 2011 certificate authorities (CAs) to the 2023 CAs, and how to diagnose and recover from Secure Boot related boot failures.

Signed bootloader sets

Since version 1.26.29, VeraCrypt ships two complete sets of Microsoft-signed EFI bootloaders:
At installation, upgrade, repair and system encryption time, VeraCrypt reads the firmware db and dbx and selects a loader set whose known signing CAs are present in db and not listed in dbx. The optional dbx variable may legitimately be absent (especially on custom-key systems); VeraCrypt treats that state as an empty forbidden database, while a genuine read or parse failure remains an error when Secure Boot is enabled. If the 2023 CA pair is available, the 2023 set is preferred; otherwise the 2011 set is used when Microsoft Corporation UEFI CA 2011 is available. If Secure Boot is enabled and neither set is compatible with the known CA policy, VeraCrypt refuses to install its bootloader rather than knowingly installing a loader whose CA the firmware will reject.
Changing the firmware Secure Boot configuration (for example enabling additional certificates in the BIOS setup) does not by itself rewrite the files already installed on the EFI System Partition. Run VeraCrypt Setup in Repair/Reinstall mode after changing the firmware Secure Boot database, or let the VeraCrypt System Favorites service refresh the loader automatically (it re-evaluates the selection at Windows startup, session logon/unlock, resume from sleep, and shutdown).

Diagnostics

VeraCrypt records which loader set was installed and why under the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\VeraCrypt\Diagnostics\EfiBootLoader
    EfiBootLoaderResourceSet          REG_DWORD  2011 (0x7db) or 2023 (0x7e7)
    EfiBootLoaderSelectionReason      REG_SZ     human readable selection reason
    EfiBootLoaderFirmwareDbLastError  REG_DWORD  last firmware db read/parse error (0 = none)
    EfiBootLoaderFirmwareDbxLastError REG_DWORD  last firmware dbx read/parse error (0 = none)
    EfiBootLoaderSelectionTimeUtc     REG_SZ     time of the last selection
    EfiBootChainStatusKnown           REG_DWORD  db/dbx known-CA assessment is available
    EfiBootChainLastError             REG_DWORD  last incomplete-assessment error (0 = none)
    SecureBootEnabled                 REG_DWORD  Secure Boot state at the last assessment
    FirmwareDbxPresent                REG_DWORD  dbx exists (0 is valid: optional variable absent)
    VeraCryptLoaderFilesValid         REG_DWORD  installed DCS files match one embedded set
    VeraCryptLoaderKnownCaAllowed     REG_DWORD  known required CAs are in db and not in dbx
    VeraCryptLoaderKnownCaRevoked     REG_DWORD  a known required VeraCrypt CA is in dbx
    EfiBootLoaderInstalledResourceSet REG_DWORD  set identified from the actual ESP files
    EfiBootLoaderRecordedResourceSet  REG_DWORD  set recorded at the last successful refresh
    WindowsLoaderInspectionSucceeded  REG_DWORD  embedded PE signature was parsed
    WindowsLoaderPresent              REG_DWORD  bootmgfw_ms.vc was found
    WindowsLoaderSigner               REG_DWORD  0 (unknown), 2011, or 2023
    WindowsLoaderKnownCaAllowed       REG_DWORD  known signing CA is in db and not in dbx
    WindowsLoaderKnownCaRevoked       REG_DWORD  known Windows loader signing CA is in dbx
    WindowsLoaderMigrationRecommended REG_DWORD  PCA 2011 copy remains while CA 2023 is available
    EfiBootChainCheckTimeUtc          REG_SZ     time of the last attempted chain check
The following commands, run from an elevated PowerShell prompt, provide additional evidence. The text search is only a convenience and may not expose certificate names on every firmware. An absent dbx is valid; any other exception needs investigation.
reg query HKLM\SOFTWARE\VeraCrypt\Diagnostics\EfiBootLoader /s

$t = [Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).Bytes)
'Microsoft Corporation UEFI CA 2011',
'Microsoft Windows Production PCA 2011',
'Windows UEFI CA 2023',
'Microsoft UEFI CA 2023',
'Microsoft Option ROM UEFI CA 2023' |
  ForEach-Object { "$_ : $($t -match [regex]::Escape($_))" }

try {
  $dbx = (Get-SecureBootUEFI dbx).Bytes
  'Windows PCA 2011 in dbx: ' +
    ([Text.Encoding]::ASCII.GetString($dbx) -match
     'Microsoft Windows Production PCA 2011')
} catch {
  'dbx is absent or could not be read; check FirmwareDbxPresent and EfiBootLoaderFirmwareDbxLastError'
}

# After mounting the EFI System Partition as S:, inspect the embedded signer.
# Do not use Get-AuthenticodeSignature here: it may report a catalog signer.
Get-PfxCertificate -FilePath S:\EFI\Microsoft\Boot\bootmgfw_ms.vc |
  Select-Object Subject,Issuer,Thumbprint

Get-WinEvent -FilterHashtable @{
  LogName='System'
  ProviderName='Microsoft-Windows-TPM-WMI'
  Id=@(1036,1037,1043,1044,1045,1797,1798,1799,1800,1801,1802,1803)
  StartTime=(Get-Date).AddDays(-30)
} | Select-Object TimeCreated,Id,LevelDisplayName,Message
In addition, the VeraCrypt System Favorites service writes a warning to the Windows Application event log (source VeraCryptSystemFavorites) when installed DCS files do not match an embedded set, the chainloaded Windows Boot Manager is missing or its embedded signer cannot be identified, a known required CA is absent from db or listed in dbx, or a PCA 2011-signed Windows Boot Manager should be migrated before revocation.
These values are deliberately described as a known-CA compatibility assessment, not proof that firmware will accept an image. UEFI dbx can also contain individual image hashes, certificate TBS hashes and security-version revocations that this diagnostic does not fully evaluate. A successful controlled reboot with Secure Boot enabled remains the final validation.

The Microsoft 2023 certificate transition

The Microsoft Secure Boot certificates from 2011 expire in 2026: Microsoft Corporation KEK CA 2011 and Microsoft Corporation UEFI CA 2011 expired in June 2026, and Microsoft Windows Production PCA 2011 expires in October 2026. Microsoft replaces them with 2023 CAs and distributes the new certificates, as well as a Windows Boot Manager signed by Windows UEFI CA 2023, through Windows Update.
Two important points for VeraCrypt users:

New computers that trust only the 2023 CAs

Some recent computers ship from the factory with a Secure Boot configuration that contains only Windows UEFI CA 2023 and no Microsoft third-party CAs at all. On such systems, the two third-party CAs required by the VeraCrypt 2023 loader set (Microsoft UEFI CA 2023 and Microsoft Option ROM UEFI CA 2023) must first be enabled in the firmware setup. The option is typically called "Allow Microsoft 3rd Party UEFI CA", "Third-Party CA" or "Third-Party Certificates". After enabling it, run VeraCrypt Setup in Repair/Reinstall mode (or start system encryption) so that VeraCrypt selects the 2023 loader set.
If the firmware provides no way to trust a Microsoft third-party CA, VeraCrypt system encryption cannot be used with Secure Boot enabled on that machine.

Updating an existing system to the 2023 certificates

Windows deploys the 2023 certificates through a staged, telemetry-driven rollout. Devices are updated automatically only once Microsoft has sufficient confidence in their hardware/firmware combination. A VeraCrypt system-encrypted machine has a non-standard boot chain because the VeraCrypt loader occupies the standard Windows Boot Manager location; this may affect servicing checks, but Microsoft does not document VeraCrypt as a categorical exclusion from the rollout. A Windows Security report that there is "not yet enough data to classify your device" describes the current rollout state, not proof that VeraCrypt caused it.
The MicrosoftUpdateManagedOptIn value is a separate opt-in to Microsoft's asynchronous managed rollout. It requires the applicable Windows diagnostic-data configuration and does not guarantee immediate deployment. Do not mix that method with a manual AvailableUpdates deployment; choose one method and monitor it to completion.
For an administrator performing a controlled manual deployment, Microsoft documents 0x5944 as the explicit request for the 2023 CA, KEK, and Windows Boot Manager migration (see Microsoft's registry-key guidance for Secure Boot). It does not apply the Windows PCA 2011 dbx revocation. VeraCrypt does not set this registry value automatically. On a fully updated Windows installation, after reviewing the precautions below:
reg add HKLM\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x5944 /f

rem optionally run the servicing task immediately (it otherwise runs every 12 hours):
schtasks /Run /TN "\Microsoft\Windows\PI\Secure-Boot-Update"
Progress can be monitored under HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot and its Servicing subkey, and through the Secure Boot servicing events shown above. The expected AvailableUpdates progression is 0x5944, then 0x4100, and finally the terminal modifier 0x4000 after the required task runs and restarts. UEFICA2023Status=Updated is useful Windows-servicing evidence, but it may remain incomplete when VeraCrypt intentionally occupies the standard ESP path. Conversely, 0x4000 alone does not prove that VeraCrypt's bootmgfw_ms.vc was refreshed. Verify the firmware CAs, the actual installed DCS resource set, the embedded signer of bootmgfw_ms.vc, and the absence of unresolved servicing errors. The db update adds Windows UEFI CA 2023. It conditionally adds Microsoft UEFI CA 2023 and Microsoft Option ROM UEFI CA 2023 on systems that already trust Microsoft Corporation UEFI CA 2011; not every system on which VeraCrypt can be installed necessarily has that legacy third-party CA.
Before triggering the update on a VeraCrypt system-encrypted machine, take the following precautions:
After the db update has been applied, VeraCrypt automatically switches to the 2023 DCS set and attempts to import the current 2023-signed Windows Boot Manager the next time the bootloader is refreshed (Repair/Reinstall, upgrade, or one of the automatic refresh points of the System Favorites service). Verify the actual result in the diagnostics registry key and recreate the Rescue Disk when prompted.
The Windows PCA 2011 dbx revocation is a later, separate operation documented in Microsoft KB5025885. Do not request its 0x80 bit (or the combined 0x280 value, which also requests the SVN update) until bootmgfw_ms.vc is confirmed to be signed by Windows UEFI CA 2023, recovery media are current, and a controlled reboot with Secure Boot enabled has succeeded. VeraCrypt never enables this revocation automatically.

Recovering from a Secure Boot boot failure

Two distinct failures can occur when the firmware Secure Boot policy rejects a component of the boot chain (because of a missing CA, a CA or image revocation, or another policy restriction):
In both cases, the recovery procedure is:
  1. Temporarily disable Secure Boot in the firmware setup and start Windows normally (VeraCrypt pre-boot authentication works with Secure Boot disabled). The VeraCrypt Rescue Disk can restore VeraCrypt loader components when they are missing or damaged, but it cannot manufacture a current Windows Boot Manager or make a PCA 2011-signed bootmgfw_ms.vc acceptable after that CA has been added to dbx; it is not a substitute for completing the Windows migration.
  2. In Windows, adjust the firmware/Windows Secure Boot policy as needed (enable the third-party CAs in firmware setup, restore a valid dbx if a custom-key workflow removed it, or apply the Windows Secure Boot certificate updates as described above), then run VeraCrypt Setup in Repair/Reinstall mode. Repair now checks Windows' serviced EFI_EX/EFI copies and can install a compatible current Windows Boot Manager even while the standard ESP path contains VeraCrypt.
  3. Review the VeraCrypt diagnostics and embedded signer as described above, then re-enable Secure Boot and perform a controlled reboot. Do not re-enable it while VeraCrypt reports an incomplete policy assessment or incompatible loader files.

Legacy custom-key procedure (deprecated)

Older VeraCrypt versions documented a custom-key procedure (the VeraCrypt-DCS SecureBoot script, sb_set_siglists.ps1) that replaced PK, KEK, db and dbx with a custom platform key, 2011-era Microsoft certificates and an obsolete bundled dbx. This procedure is deprecated and must not be used on systems using the 2023 certificate chain: it removes trust for the 2023-signed Windows Boot Manager, discards current revocations and can break the Windows handoff after VeraCrypt pre-boot authentication. Systems where it was applied should restore the manufacturer Secure Boot keys and current dbx, then follow the normal procedure described on this page.
 
Next Section >>