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 в прошивке (например, включение дополнительных сертификатов в настройках 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 = нет)
    FirmwareDbxPresent                REG_DWORD  наличие dbx (0 допустим: переменная отсутствует)
    EfiBootLoaderInstalledResourceSet REG_DWORD  набор, определённый по фактическим файлам ESP
    VeraCryptLoaderFilesValid         REG_DWORD  файлы DCS совпадают со встроенным набором
    WindowsLoaderSigner               REG_DWORD  встроенная подпись: 0, 2011 или 2023
    EfiBootLoaderSelectionTimeUtc     REG_SZ     время последнего выбора
Следующие команды, выполненные из окна PowerShell с повышенными правами, показывают, какие сертификаты Microsoft присутствуют в db прошивки (обратите внимание: на некоторых прошивках имена могут не отображаться при таком простом текстовом поиске, даже если сертификаты присутствуют):
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($_))" }

# После подключения ESP как S: проверяйте встроенную подпись, а не подпись каталога.
Get-PfxCertificate -FilePath S:\EFI\Microsoft\Boot\bootmgfw_ms.vc |
  Select-Object Subject,Issuer,Thumbprint
Кроме того, служба VeraCrypt System Favorites предупреждает о несовпадении фактических файлов DCS со встроенным набором, отсутствующей или нераспознанной встроенной подписи Windows Boot Manager, известных CA, отсутствующих в db или перечисленных в dbx, и необходимости миграции копии PCA 2011. Это проверка совместимости известных CA, а не доказательство полного доверия: dbx может также отзывать хэши образов, TBS-хэши сертификатов и версии безопасности.

Переход на сертификаты 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 как безусловное исключение из развёртывания. Сообщение "not yet enough data to classify your device" описывает текущее состояние развёртывания, а не доказывает, что его причиной является VeraCrypt. Значение MicrosoftUpdateManagedOptIn отдельно включает асинхронное управляемое Microsoft развёртывание, требует разрешённой передачи диагностических данных и не гарантирует немедленное обновление. Не сочетайте этот способ с ручным применением 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 и фактические файлы загрузки: одно значение 0x4000 не доказывает, что файл VeraCrypt bootmgfw_ms.vc обновлён. Обновление db добавляет Windows UEFI CA 2023. На системах, уже доверяющих Microsoft Corporation UEFI CA 2011, оно условно добавляет Microsoft UEFI CA 2023 и Microsoft Option ROM UEFI CA 2023; этот устаревший сторонний CA присутствует не на каждой системе, где можно установить VeraCrypt.
Перед запуском обновления на машине с системным шифрованием VeraCrypt примите следующие меры предосторожности:
После применения обновления db VeraCrypt автоматически переключится на набор загрузчиков 2023 года при следующем обновлении загрузчика (Восстановить/переустановить, обновление версии или одна из автоматических точек обновления службы System Favorites). Результат можно проверить в описанном выше ключе реестра диагностики и заново создать Диск восстановления, когда появится соответствующее приглашение.
Отзыв Windows PCA 2011 через dbx — отдельная последующая операция, описанная в Microsoft KB5025885. Не запрашивайте бит 0x80 (или объединённое значение 0x280, которое также запрашивает обновление SVN), пока не подтверждено, что bootmgfw_ms.vc подписан Windows UEFI CA 2023, носители восстановления актуальны и контрольная перезагрузка с включённым Secure Boot прошла успешно. VeraCrypt никогда не включает этот отзыв автоматически.

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

Если конфигурация Secure Boot в прошивке больше не доверяет одному из компонентов цепочки загрузки, возможны два разных сбоя:
В обоих случаях процедура восстановления такова:
  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.
  3. Проверьте диагностику VeraCrypt и встроенную подпись, затем включите Secure Boot и выполните одну контролируемую перезагрузку. Не включайте его при неполной оценке политики или несовместимых файлах загрузчика.

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

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