- Что такое Secure Boot на уровне UEFI
- Главная суть Secure Boot — доверенная цепочка загрузки
- Какие ключи есть у Secure Boot
- 1. PK – Platform Key
- 2. KEK – Key Exchange Key
- 3. db – Database (база доверенных подписей)
- 4. dbx – Database of revoked signatures
- Почему Secure Boot иногда «роняет» загрузку
- Причина 1: обновление Windows или Linux меняет загрузчик
- Причина 2: dbx получил обновление с запретами
- Причина 3: включён CSM/Legacy режим
- Причина 4: пользователь вручную менял загрузчики
- Причина 5: сломанные переменные NVRAM
- Причина 6: несовместимость Secure Boot и сторонних драйверов
- Причина 7: включён TPM/BitLocker и цепочка нарушена
- Как исправить проблемы с Secure Boot
- 1. Выключить Secure Boot временно
- 2. Проверить режим загрузки
- 3. Восстановить загрузчик (если Windows):
- 4. Очистить и пересоздать ключи Secure Boot
- 5. В Linux — переустановить shim и обновить подписи
- 6. На старых платах — обновить BIOS
- Когда Secure Boot действительно стоит выключать
- Итог
Secure Boot — это не «строгий охранник», а целая система цифровых подписей внутри UEFI, которая проверяет, можно ли доверять загрузчику и ранним драйверам. Она не даёт загрузиться неподписанному или подменённому коду, защищая ПК от руткитов и вредоносных модификаций на уровне прошивки. Но как только цепочка подписей ломается, Secure Boot начинает паниковать — и вместо красивой защиты пользователь видит «Secure Boot Violation», вечной чёрный экран или вовсе пропавшую Windows.
Чтобы понимать, почему всё это иногда катится в пропасть, давай разберём, как именно работает Secure Boot и что происходит с ключами, когда UEFI решает «я больше этому не верю».
Что такое Secure Boot на уровне UEFI
Secure Boot — это механизм, который:
- хранит ключи доверия внутри UEFI,
- проверяет цифровую подпись каждого EFI-файла,
- разрешает загрузку только проверенным загрузчикам,
- блокирует исполняемые .efi-файлы без доверенной подписи.
Он не проверяет Windows — он проверяет её загрузчик.
Если загрузчик доверенный → UEFI передаёт ему управление.
Если нет → загрузка запрещена.
Главная суть Secure Boot — доверенная цепочка загрузки
Представь цепочку:
UEFI → bootmgfw.efi → winload.efi → ядро Windows
Каждое звено подписано ключом.
Secure Boot проверяет:
Можно ли доверять bootmgfw.efi?
Можно ли доверять winload.efi?
Не подменялся ли файл?
Если хоть один элемент не проходит проверку — загрузка не продолжается.
Какие ключи есть у Secure Boot
Secure Boot работает не с одним ключом, а с четырьмя хранилищами, и вот здесь начинается половина будущих проблем.
1. PK – Platform Key
Главный ключ владельца системы.
Позволяет заменять остальные ключи.
2. KEK – Key Exchange Key
Ключи поставщиков прошивок и ОС.
Microsoft, производитель материнской платы и другие.
3. db – Database (база доверенных подписей)
Это список того, чему UEFI доверяет:
- загрузчики Windows,
- драйверы UEFI,
- подписи Linux (если добавлены вручную),
- подписи производителей оборудования.
4. dbx – Database of revoked signatures
Список запрещённых подписей.
Все небезопасные загрузчики, уязвимые версии bootloader’ов и т.п.
UEFI проверяет файл по этим базам:
есть подпись в db → запуск разрешён
есть подпись в dbx → запуск запрещён
Почему Secure Boot иногда «роняет» загрузку
Теперь — к самой пикантной части. Чаще всего Secure Boot ломается не сам по себе, а из-за конфликтов ключей или нарушений цепочки доверия.
Разберём самые частые причины.
Причина 1: обновление Windows или Linux меняет загрузчик
Легендарная ситуация:
Windows обновилась → Secure Boot Violation
Почему?
Потому что обновление заменило bootmgfw.efi или shimx64.efi.
Новая версия имеет новую подпись, а UEFI о ней не знает.
Windows всегда подписана Microsoft, но бывают случаи:
- старая плата имеет устаревший список ключей;
- db не содержит новых подписей;
- dbx содержит отозванные.
И Secure Boot говорит: «Извини, дружище, я не знаю этого файла».
Причина 2: dbx получил обновление с запретами
Microsoft регулярно обновляет dbx, добавляя в него:
- небезопасные загрузчики Linux (уязвимость BootHole, 2020);
- старые версии shim;
- повреждённые bootloader’ы некоторых дистрибутивов.
Файл в dbx = блокируется навсегда.
Поэтому Linux иногда перестаёт грузиться после обновления UEFI.
Причина 3: включён CSM/Legacy режим
CSM отключает часть механизмов проверки и ломает работу Secure Boot.
UEFI начинает путаться:
- загрузчик UEFI есть?
- или это MBR?
- подпись нужна?
- или Legacy?
Результат — непредсказуемые ошибки.
Secure Boot работает только в полном UEFI-режиме (без CSM).
Причина 4: пользователь вручную менял загрузчики
Это бывает чаще, чем кажется:
- меняли GRUB;
- меняли путь загрузчика;
- копировали файлы между EFI-разделами;
- пробовали rEFInd;
- клонировали диск.
Итог:
Файл есть, подпись есть, но путь в NVRAM другой — Secure Boot не понимает такую «самодеятельность».
Причина 5: сломанные переменные NVRAM
UEFI хранит ключи и загрузчики в NVRAM.
Иногда NVRAM повреждается из-за:
- сбоев питания;
- неудачных обновлений BIOS;
- падения системы во время настройки Secure Boot;
- устаревших материнских плат.
И тогда всё выглядит так:
- загрузчик есть,
- ключи есть,
- цепочка верная,
- но UEFI в упор не видит сигнатуру.
Это один из самых неприятных вариантов.
Причина 6: несовместимость Secure Boot и сторонних драйверов
Это бывает при:
- загрузке антивирусных LiveCD;
- установке старого Linux;
- запуске дисков восстановления;
- использовании нестандартных .efi-файлов.
UEFI просто не находит в db подпись у сторонней утилиты.
Причина 7: включён TPM/BitLocker и цепочка нарушена
Secure Boot тесно связан с TPM.
Если TPM видит, что цепочка загрузки изменилась, он:
- блокирует автоматическую расшифровку BitLocker,
- требует ключ восстановления,
- может заблокировать загрузку полностью.
Как исправить проблемы с Secure Boot
Здесь важен порядок: действовать медленно и аккуратно.
1. Выключить Secure Boot временно
Это не опасно — но позволяет загрузиться.
2. Проверить режим загрузки
UEFI Only, без CSM.
3. Восстановить загрузчик (если Windows):
bcdboot C:\Windows /f UEFI /l ru-ru
4. Очистить и пересоздать ключи Secure Boot
В BIOS часто есть пункт:
Install Default Keys
Он возвращает:
- PK,
- KEK,
- db,
- dbx
в состояние по умолчанию.
5. В Linux — переустановить shim и обновить подписи
sudo update-secureboot-policy --new-key
6. На старых платах — обновить BIOS
Новые прошивки содержат обновлённые ключи Microsoft.
Когда Secure Boot действительно стоит выключать
- тестирование Linux LiveCD;
- кастомные загрузчики;
- рутинг/модификация системы;
- работа с UEFI Shell;
- восстановление загрузки вручную;
- старые видеокарты или прошивки.
В обычной жизни Secure Boot лучше держать включённым.
Итог
Secure Boot — это система доверия, построенная на ключах PK/KEK/db/dbx.
Она проверяет подписи загрузчиков и защищает ПК от низкоуровневых атак.
Но как только нарушается цепочка:
- обновления Windows или Linux меняют загрузчик,
- db/dbx устаревают или конфликтуют,
- NVRAM повреждается,
- включается Legacy режим,
- или пользователь меняет EFI-файлы вручную —
Secure Boot перестаёт доверять системе и блокирует запуск.
Понимание того, как работают ключи и почему «падает» цепочка загрузки, помогает быстро и аккуратно решать проблемы без хаоса и переустановки ОС.
