VeraCrypt

Документация >> Шифрование системы >> EFI Secure Boot

EFI Secure Boot

Шифрование системы VeraCrypt совместимо с EFI Secure Boot: EFI-загрузчики VeraCrypt подписаны Microsoft в рамках программы Microsoft для подписи сторонних UEFI-компонентов, поэтому прошивка может проверять их по стандартным сертификатам Microsoft без добавления пользовательского ключа. На этой странице описано, как VeraCrypt выбирает подписанные загрузчики, как это связано с переходом Microsoft Secure Boot от центров сертификации 2011 года (CA) к центрам сертификации 2023 года, а также как диагностировать и устранять сбои загрузки, связанные с Secure Boot.

Наборы подписанных загрузчиков

Начиная с версии 1.26.29 VeraCrypt поставляет два полных набора EFI-загрузчиков, подписанных Microsoft:
При установке, обновлении, восстановлении/переустановке и запуске шифрования системы VeraCrypt считывает db и dbx прошивки и выбирает набор загрузчиков, известные подписывающие CA которого присутствуют в db и не перечислены в dbx. Необязательная переменная dbx может отсутствовать (особенно при пользовательских ключах); это считается пустой базой запретов, тогда как реальная ошибка чтения или разбора остаётся ошибкой при включённом Secure Boot. Если доступна пара CA 2023 года, предпочтение отдаётся набору 2023 года; иначе используется набор 2011 года при наличии Microsoft Corporation UEFI CA 2011. Если Secure Boot включён и ни один набор не совместим с известной политикой CA, VeraCrypt отказывается устанавливать загрузчик, чтобы не устанавливать заведомо несовместимый загрузчик, CA которого прошивка отклонит.
Изменение конфигурации Secure Boot в прошивке (например, включение дополнительных сертификатов в настройках BIOS) само по себе не перезаписывает файлы, уже установленные в системном разделе EFI. После изменения базы данных Secure Boot в прошивке запустите установщик VeraCrypt в режиме Восстановить/переустановить или позвольте службе VeraCrypt System Favorites автоматически обновить загрузчик (она повторно оценивает выбор при запуске Windows, входе в сеанс или разблокировке, выходе из сна и завершении работы).

Диагностика

VeraCrypt записывает сведения о том, какой набор загрузчиков был установлен и почему, в следующий ключ реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\VeraCrypt\Diagnostics\EfiBootLoader
    EfiBootLoaderResourceSet          REG_DWORD  2011 (0x7db) или 2023 (0x7e7)
    EfiBootLoaderSelectionReason      REG_SZ     понятная человеку причина выбора
    EfiBootLoaderFirmwareDbLastError  REG_DWORD  последняя ошибка чтения/разбора db прошивки (0 = нет)
    EfiBootLoaderFirmwareDbxLastError REG_DWORD  последняя ошибка чтения/разбора dbx прошивки (0 = нет)
    EfiBootLoaderSelectionTimeUtc     REG_SZ     время последнего выбора
    EfiBootChainStatusKnown           REG_DWORD  доступность оценки известных CA в db/dbx
    EfiBootChainLastError             REG_DWORD  последняя ошибка неполной оценки (0 = нет)
    SecureBootEnabled                 REG_DWORD  состояние Secure Boot при последней оценке
    FirmwareDbxPresent                REG_DWORD  наличие dbx (0 допустим: необязательная переменная отсутствует)
    VeraCryptLoaderFilesValid         REG_DWORD  установленные файлы DCS совпадают с одним встроенным набором
    VeraCryptLoaderKnownCaAllowed     REG_DWORD  известные необходимые CA присутствуют в db и отсутствуют в dbx
    VeraCryptLoaderKnownCaRevoked     REG_DWORD  известный необходимый CA VeraCrypt присутствует в dbx
    EfiBootLoaderInstalledResourceSet REG_DWORD  набор, определённый по фактическим файлам ESP
    EfiBootLoaderRecordedResourceSet  REG_DWORD  набор, записанный при последнем успешном обновлении
    WindowsLoaderInspectionSucceeded  REG_DWORD  встроенная подпись PE разобрана
    WindowsLoaderPresent              REG_DWORD  файл bootmgfw_ms.vc найден
    WindowsLoaderSigner               REG_DWORD  0 (неизвестно), 2011 или 2023
    WindowsLoaderKnownCaAllowed       REG_DWORD  известный подписывающий CA присутствует в db и отсутствует в dbx
    WindowsLoaderKnownCaRevoked       REG_DWORD  известный CA подписи загрузчика Windows присутствует в dbx
    WindowsLoaderMigrationRecommended REG_DWORD  копия PCA 2011 сохраняется при доступном CA 2023
    EfiBootChainCheckTimeUtc          REG_SZ     время последней попытки проверки цепочки
Следующие команды, выполненные из окна PowerShell с повышенными правами, предоставляют дополнительные сведения. Текстовый поиск приведён для удобства и может не показывать имена сертификатов на некоторых прошивках. Отсутствие dbx допустимо; любое другое исключение требует проверки.
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'
}

# После подключения системного раздела EFI как S: проверьте встроенную подпись.
# Не используйте здесь Get-AuthenticodeSignature: он может сообщить подпись каталога.
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
Кроме того, служба VeraCrypt System Favorites записывает предупреждение в журнал приложений Windows (источник VeraCryptSystemFavorites), если установленные файлы DCS не совпадают со встроенным набором, отсутствует Windows Boot Manager, которому передаётся управление, или его встроенную подпись нельзя определить, известный необходимый CA отсутствует в db или присутствует в dbx либо Windows Boot Manager, подписанный PCA 2011, следует перенести на новый CA до отзыва.
Эти значения намеренно описаны как оценка совместимости известных CA, а не доказательство того, что прошивка примет образ. UEFI dbx также может содержать хеши отдельных образов, TBS-хеши сертификатов и отзывы версий безопасности, которые эта диагностика не оценивает полностью. Окончательной проверкой остаётся успешная контролируемая перезагрузка с включённым Secure Boot.

Переход на сертификаты Microsoft 2023 года

Сертификаты Microsoft Secure Boot 2011 года истекают в 2026 году: Microsoft Corporation KEK CA 2011 и Microsoft Corporation UEFI CA 2011 истекли в июне 2026 года, а Microsoft Windows Production PCA 2011 истекает в октябре 2026 года. Microsoft заменяет их центрами сертификации 2023 года и распространяет новые сертификаты, а также Windows Boot Manager, подписанный Windows UEFI CA 2023, через Windows Update.
Два важных момента для пользователей VeraCrypt:

Новые компьютеры, доверяющие только CA 2023 года

Некоторые новые компьютеры поставляются с завода с конфигурацией Secure Boot, содержащей только Windows UEFI CA 2023 и вообще не содержащей сторонних центров сертификации Microsoft. На таких системах сначала нужно включить в настройках прошивки два сторонних центра сертификации, необходимых для набора загрузчиков VeraCrypt 2023 года (Microsoft UEFI CA 2023 и Microsoft Option ROM UEFI CA 2023). Обычно этот параметр называется "Allow Microsoft 3rd Party UEFI CA", "Third-Party CA" или "Third-Party Certificates". После его включения запустите установщик VeraCrypt в режиме Восстановить/переустановить (или начните шифрование системы), чтобы VeraCrypt выбрал набор загрузчиков 2023 года.
Если прошивка не предоставляет возможности доверять стороннему центру сертификации Microsoft, шифрование системы VeraCrypt нельзя использовать на этом компьютере при включённом Secure Boot.

Обновление существующей системы до сертификатов 2023 года

Windows распространяет сертификаты 2023 года поэтапно, на основе телеметрии. Устройства обновляются автоматически только после того, как Microsoft получает достаточную уверенность в конкретном сочетании оборудования и прошивки. Компьютер с шифрованием системы VeraCrypt использует нестандартную цепочку загрузки, поскольку загрузчик VeraCrypt занимает стандартное расположение Windows Boot Manager; это может влиять на проверки обслуживания, однако Microsoft не указывает VeraCrypt как безусловную причину исключения из развёртывания. Сообщение Windows Security "not yet enough data to classify your device" описывает текущее состояние развёртывания, а не доказывает, что причиной является VeraCrypt.
Значение MicrosoftUpdateManagedOptIn — отдельный способ согласиться на асинхронное управляемое развёртывание Microsoft. Оно требует соответствующей настройки диагностических данных Windows и не гарантирует немедленного развёртывания. Не совмещайте этот способ с ручным развёртыванием через AvailableUpdates; выберите один способ и отслеживайте его до завершения.
Для контролируемого ручного развёртывания Microsoft документирует 0x5944 как явный запрос миграции CA 2023, KEK и Windows Boot Manager (см. руководство Microsoft по ключам реестра Secure Boot). Это значение не применяет отзыв Windows PCA 2011 через dbx, и VeraCrypt никогда не задаёт его автоматически. Используйте его на полностью обновлённой Windows только после изучения мер предосторожности ниже:
reg add HKLM\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x5944 /f

rem при необходимости запустите задачу обслуживания сразу (иначе она выполняется каждые 12 часов):
schtasks /Run /TN "\Microsoft\Windows\PI\Secure-Boot-Update"
Ход выполнения можно отслеживать в HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot и его подразделе Servicing, а также по показанным выше событиям обслуживания Secure Boot. Ожидаемая последовательность AvailableUpdates: 0x5944, затем 0x4100 и после выполнения требуемой задачи и перезагрузок — конечный модификатор 0x4000. Значение UEFICA2023Status=Updated полезно для оценки обслуживания Windows, но может оставаться незавершённым, когда VeraCrypt намеренно занимает стандартный путь ESP. И наоборот, одно значение 0x4000 не доказывает, что файл VeraCrypt bootmgfw_ms.vc обновлён. Проверьте CA прошивки, фактически установленный набор ресурсов DCS, встроенную подпись bootmgfw_ms.vc и отсутствие неустранённых ошибок обслуживания. Обновление db добавляет Windows UEFI CA 2023. Оно также условно добавляет Microsoft UEFI CA 2023 и Microsoft Option ROM UEFI CA 2023 на системах, уже доверяющих Microsoft Corporation UEFI CA 2011; этот старый сторонний CA необязательно присутствует на каждой системе, где можно установить VeraCrypt.
Перед запуском обновления на машине с системным шифрованием VeraCrypt примите следующие меры предосторожности:
После применения обновления db при следующем обновлении загрузчика (восстановление/переустановка, обновление версии или одна из автоматических точек обновления службы System Favorites) VeraCrypt автоматически переключается на набор DCS 2023 года и пытается импортировать текущий Windows Boot Manager, подписанный сертификатом 2023 года. Проверьте фактический результат в ключе реестра диагностики и заново создайте Диск восстановления по запросу.
Отзыв Windows PCA 2011 через dbx — отдельная последующая операция, описанная в Microsoft KB5025885. Не запрашивайте бит 0x80 (или объединённое значение 0x280, которое также запрашивает обновление SVN), пока не подтверждено, что bootmgfw_ms.vc подписан Windows UEFI CA 2023, носители восстановления актуальны и контрольная перезагрузка с включённым Secure Boot прошла успешно. VeraCrypt никогда не включает этот отзыв автоматически.

Восстановление после сбоя загрузки Secure Boot

Если политика Secure Boot прошивки отклоняет компонент цепочки загрузки из-за отсутствующего CA, отзыва CA или образа либо другого ограничения политики, возможны два разных сбоя:
В обоих случаях процедура восстановления такова:
  1. Временно отключите Secure Boot в настройках прошивки и запустите Windows обычным образом (предзагрузочная аутентификация VeraCrypt работает и с отключённым Secure Boot). Диск восстановления VeraCrypt может восстановить отсутствующие или повреждённые компоненты загрузчика VeraCrypt, но не может создать актуальный Windows Boot Manager или сделать подписанный PCA 2011 файл bootmgfw_ms.vc допустимым после добавления этого CA в dbx; он не заменяет завершение миграции Windows.
  2. В Windows исправьте политику Secure Boot (включите сторонние CA, восстановите актуальную dbx после пользовательской процедуры либо примените обновления Windows), затем запустите VeraCrypt в режиме Восстановить/переустановить. Восстановление проверит обслуживаемые копии EFI_EX/EFI и сможет установить совместимый актуальный Windows Boot Manager, даже если стандартный путь ESP занят VeraCrypt.
  3. Проверьте диагностику VeraCrypt и встроенную подпись, затем включите Secure Boot и выполните одну контролируемую перезагрузку. Не включайте его при неполной оценке политики или несовместимых файлах загрузчика.

Устаревшая процедура с пользовательскими ключами (не рекомендуется)

В более старых версиях VeraCrypt была задокументирована процедура с пользовательскими ключами (скрипт VeraCrypt-DCS SecureBoot, sb_set_siglists.ps1), которая заменяла PK, KEK, db и dbx пользовательским ключом платформы, сертификатами Microsoft 2011 года и устаревшей dbx из комплекта поставки. Эта процедура устарела и не должна использоваться в системах с цепочкой сертификатов 2023 года: она удаляет доверие к Windows Boot Manager, подписанному сертификатом 2023 года, отбрасывает текущие отзывы и может нарушить передачу управления Windows после предзагрузочной аутентификации VeraCrypt. В системах, где она применялась, следует восстановить ключи Secure Boot производителя и актуальную dbx, а затем выполнить обычную процедуру, описанную на этой странице.
 
Следующий раздел >>