После включения secure boot не запускается windows

Обновлено: 07.07.2024

Вместе с анонсом Windows 11, компания Microsoft опубликовала и новые системные требования для установки операционной системы Windows 11. В них требуется поддержка TPM 2.0, UEFI и Secure Boot. В результате, вокруг этих технологий возникло много вопросов. Пользователей интересует, что такое Secure Boot, как проверить его наличие на компьютере и как его включить в BIOS (UEFI), если он отключен.

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

Secure Boot – это протокол проверки загружаемых операционных систем, который является частью UEFI. Данный протокол проверяет цифровую подпись операционных систем или драйверов UEFI, которые загружаются при включении компьютера, и при отсутствии такой подписи предотвращает их запуск.

Использование Secure Boot защищает систему от внедрения вредоносного кода в загружаемые компоненты операционных систем. Такое внедрение, например, использовалось вирусом-вымогателем Petya, который распространялся в 2017 году. Также Secure Boot может использоваться для ограничения списка ОС, которые могут запускаться на компьютере.

На данный момент Secure Boot поддерживается такими операционными системами как Windows 8 и Windows 10, а также некоторыми дистрибутивами Linux, например, Fedora, openSUSE, RHEL, CentOS, Debian и Ubuntu.

В еще не выпущенной Windows 11 протокол Secure Boot является обязательным условием и указан в системных требованиях. Хотя, с помощью небольших ухищрений текущие сборки Windows 11 можно установить без TPM и Secure Boot.

Как узнать включен ли Secure Boot

Для того чтобы узнать включен ли Secure Boot на вашем компьютере можно воспользоваться средствами встроенными в Windows 10. Для этого нажмите Win-R на клавиатуре и выполните команду « msinfo32 ».

выполните команду msinfo32

В результате должно появиться окно « Сведения о компьютере ». Здесь в строке « Режим BIOS » будет указано, в каком режиме работает BIOS – UEFI или Устаревший (Legacy), а в строке « Состояние безопасной загрузки » – состояние Secure Boot (включено или отключено).

Если у вас Secure Boot включен и все готово к установке Windows 11, то должно быть так, как на скриншоте внизу:

  • Режим BIOS – UEFI;
  • Состояние безопасной загрузки – Вкл.

Secure Boot включен

Также возможен следующий вариант:

  • Режим BIOS – UEFI;
  • Состояние безопасной загрузки – Откл.

В этом случае для обновления до Windows 11 нужно будет включить безопасную загрузку в BIOS.

Secure Boot отключен

Еще один вариант:

  • Режим BIOS – Устаревший (Legacy);
  • Состояние безопасной загрузки – не поддерживается.

В этом случае возможно 2 варианта, либо у вас старый компьютер без поддержки UEFI и Secure Boot, либо в настройках BIOS включена эмуляция старого BIOS (режим совместимости). Во втором случае для обновления до Windows 11 нужно будет отключить эмуляцию старого BIOS и включить Secure Boot. Функция эмуляции обычно называется CSM (Launch Compatibility Support Module) .

включена эмуляция старого BIOS

Подробней в статье:

Конвертация диска с MBR в GPT

Конвертацию диска из MBR в GPT можно выполнить непосредственно в процессе установки Windows 11, вызвав командную строку с помощью комбинации клавиш Shift-F10 (или Shift-Fn-F10 ), либо заранее, из рабочей Windows 10. Конвертацию при установке мы рассматривали в статье о преобразовании диска с MBR в GPT, здесь же будет рассмотрена конвертация из рабочей Windows 10.

Итак, для начала нужно открыть меню « Параметры » (комбинация клавиш Win-i ), перейти в раздел « Обновление и безопасность – Восстановление » и нажать на кнопку « Перезагрузить сейчас ».

кнопка Перезагрузить сейчас

После этого появится меню с дополнительными действиями. Здесь нужно выбрать « Поиск и устранение неисправностей », а потом « Командная строка ». Также может понадобиться выбор пользователя и ввод пароля.

запуск командной строки

В результате перед вами появится командная строка. Сначала нужно выполнить команду, которая проверит возможность конвертации диска:

проверка диска

проверка диска по номеру

Чтобы узнать номер диска выполните следующие команды:

В результате в консоль будет выведен список дисков и их объем. Используя эту информацию, можно определить номер диска, который необходимо конвертировать.

номер диска в diskpart

После успешной проверки можно запускать конвертацию диска. Для этого нужно выполнить следующую команду:

Где 0 – это номер диска.

конвертация диска

После конвертации диска с MBR в GPT нужно зайти в BIOS и выполнить следующие настройки:

  • Отключить эмуляцию старого BIOS;
  • Включить безопасную загрузку.

Подробней в статьях:

Как включить Secure Boot в BIOS

Для работы Secure Boot диск должен быть в формате GPT. Посмотрите раздел о конвертации диска (выше).

Процесс включения Secure Boot отличается в зависимости от производителя. Точные инструкции по работе с вашим BIOS можно получить в инструкции к материнской плате или ноутбуку. Здесь мы покажем настройку BIOS на примере материнской платы от ASUS.

Чтобы включить Secure Boot на материнской плате ASUS нужно войти в настройки BIOS, активировать режим « Advanced mode ( F7) » и перейти в раздел « Boot ». Здесь нужно открыть подраздел « CSM (Launch Compatibility Support Module) », который отвечает за эмуляцию старого BIOS.

подраздел CSM (Launch Compatibility Support Module)

Если функция « CSM » включена, то ее нужно отключить.

отключение функции CSM

После этого нужно вернуться в раздел « Boot » и перейти в подраздел « Меню безопасной загрузки ».

подраздел Меню безопасной загрузки

Здесь нужно поменять параметр « Тип ОС » на « Режим Windows UEFI ».

Тип ОС - Режим Windows UEFI

После этого сохраняем настройки BIOS и загружаемся в Windows 10. Если диск был сконвертирован в GPT, то загрузка должна пройти без проблем.

Настройка Secure Boot на других платах :

  • Номер диска неправильный. Используйте diskpart чтобы определить номер диска с Windows. В статье показан пример как это делается.
  • Конвертация данного диска в GPT невозможна. У программы mbr2gpt есть ограничения. Например, на диске не должно быть больше 3 разделов и не должно быть расширенного/логического раздела.

Все очень здорово и подробно, большое спасибо за подробную инструкцию. Очень долго искал такой доходчивый вариант порядка действий. Большое спасибо

Спасибо большое, мне помогло.

Подскажите, выключил в BIOS CSM, затем поставил режим Windows UEFI и после это F10 и ПК перезагружается в BIOS и не идет дальше

Скорее всего, у вас диск в формате MBR, раз был включен CSM.

Верните все обратно, чтобы загрузилась Windows, и выполните конвертацию MBR в GPT как описано в статье. После конвертации диска в GPT можно отключать CSM и включать безопасную загрузку.

Подскажите перед тем как отключить CSM в биосе я выполнил конвертацию в GPT на диске . Далее я переключил винду на UEFI но проблема осталась винда не запускается горит только знак Asus и даже в биос не даёт зайти лечится только вытаскиванием батарейки !

Не знаю в чем проблема. Возможно ваша Windows не проходит проверку Secure Boot или конвертация не прошла.

Александр,
В меню безопасной загрузки указано Пользователь, а не Включено
Что делать ?

Возможно у вас включен CSM и поэтому настройки Secure Boot просто не доступны.

Пытаюсь сделать конвертацию MBR в GPT разными способами, но всегда fail. Выяснилось, что Windows при установке создала дополнительный раздел 500 мегабайт на SSD, на котором я её устанавливал в своё время, на котором находятся boot файлы, и скорее всего из-за этого раздела конвертация становится невозможна. Как быть? Сносить Windows, удалять дополнительный раздел, конвертировать и снова устанавливать Windows, Может можно что-нибудь сделать, чтобы сохранить систему?

А с какого накопителя выполняется загрузка системы? Посмотрите загрузочный диск в BIOS в разделе BOOT.

Если загрузка выполняется с этого второго SSD, то я вижу 2 варианта:

Я, наверное, неправильно выразился. SSD один и тот же, но разбит Виндой при её установке на два раздела. На одном установлена сама Винда 10, на втором (500 мегабайт) только загрузочные файлы. Физический SSD один. При попытке преобразования MBR в GPT утилитой из командной строки просто выдаётся постоянный fail без объяснения причин, а утилитой из загрузочного DVD с утилитами и Live Windows пишет, что внимание, загрузочные файлы находятся на другом диске и что при конвертации Винда перестанет загружаться. Можно ли из-под той же Windows PE с DVD перенести простым копированием всё содержимое второго раздела на раздел с Windows и произвести конвертацию? Загрузится ли Windows после такого переноса файлов загрузки и ликвидации второго раздела?

Сорри, посидел вечерок и всё сделал. Перенес бут на диск с системой, сделал его активным, удалил раздел с бывшим бутом, убедился, что система загружается, потом утилитой mbr2gpt конвертировал системный диск. Включил secure boot, всё работает. Спасибо за статью с ликбезом!

Ошибка возникает из-за несовпадения подписей программного обеспечения. Устранить её можно двумя способами. Первый — отключение самого протокола проверки Secure Boot. Второй — отказ от проверки цифровых подписей драйверов.

Отключение Secure Boot

Мы уже рассказывали подробно, как отключить Secure Boot на разных материнских платах и в разных версиях BIOS. Чтобы не повторяться, рассмотрим общую схему, а подробности вы найдёте по ссылке .

  1. Заходим в BIOS/UEFI.
  2. Открываем вкладку «Boot» или «Security» (наиболее распространённые варианты).
  3. Находим опцию «Secure Boot» и устанавливаем для неё статус «Disabled» — отключена.
На материнских платах ASUS есть особенности в настройке Secure Boot На материнских платах ASUS есть особенности в настройке Secure Boot

На новых ноутбуках ASUS и в некоторых других версиях BIOS не нужно полностью отключать Secure Boot. Для них достаточно выбрать в строке «OS Type» значение «Other OS», даже если на компьютере установлена WIndows 10.

Отключение проверки цифровых подписей

Ошибку может вызывать не только система, но и драйверы подключенных устройств. В таком случае удобнее отключить проверку их цифровых подписей.

  1. Открываем «Параметры» Windows 10.
  2. Переходим в раздел «Обновление и безопасность».
  3. Открываем вкладку «Восстановление».
  4. Нажимаем «Перезагрузить сейчас» в разделе «Особые варианты загрузки».
Используем особые варианты загрузки, чтобы отключить проверку подписей драйверов Используем особые варианты загрузки, чтобы отключить проверку подписей драйверов

5. На экране выбора действий переходим в раздел «Диагностика».

6. Открываем «Дополнительные параметры».

7. Выбираем опцию «Параметры загрузки».

8. Нажимаем «Перезагрузить».

9. Нажимаем на клавишу F7 для отключения проверки подписей драйверов.

Чтобы выбрать пункт под номером 7, нужно нажать на клавишу F7 Чтобы выбрать пункт под номером 7, нужно нажать на клавишу F7

Это единственный способ, работающий в последних версиях Windows 10. Через командную строку или редактор локальных групповых политик отказаться от функции больше не получится.

На Windows 7 и Windows 8.1 ошибка появлялась после установки обновлений. На «семёрке» виновником был апдейт KB3133977, а на «восьмёрке» — KB3084905. Для устранения сбоя достаточно было их удалить. На Windows 10 такой проблемы с обновлениями не обнаружено.

После недавнего объявления о выходе Windows 11 в конце этого года многие пользователи Windows 10 используют приложение PC Health Check, чтобы проверить, соответствует ли их компьютер минимальным требованиям для установки Windows 11. К сожалению для многих пользователей, PC Health. Приложение Check показывает ошибку «Этот компьютер не может запустить Windows 11».


Этот компьютер не может запустить Windows 11 Ошибка

Вы также можете увидеть краткое объяснение того, почему обновление до Windows 11 невозможно:

  • Этот компьютер должен поддерживать безопасную загрузку
  • Этот компьютер должен поддерживать TMP 2.0.

1. Проверьте системные требования Windows 11.

Системные требования Windows 10 ни в коем случае не являются высокими, и большинство современных систем должны иметь возможность поддерживать его прямо из коробки.

Однако есть некоторые обновления Windows 10, о которых вам следует знать. Проверьте список требований к системе ниже, чтобы узнать, соответствует ли им ваша текущая система:

  • 64-разрядный процессор с тактовой частотой 1 ГГц (32-разрядный больше не поддерживается)
  • 4 ГБ оперативной памяти
  • 64 ГБ дискового пространства
  • Поддержка UEFI (Unified Extensible Firmware Interface)
  • Машина с возможностью безопасной загрузки
  • Поддержка доверенного платформенного модуля (TPM) 2.0

Если вы не знаете, как сравнить требуемые характеристики Windows 10 со своими собственными, следуйте приведенным ниже инструкциям:


    Нажмите клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить». Внутри текстового поля. введите msinfo32 и нажмите Enter, чтобы открыть экран информации о системе.Проверка системных требований Windows 11

Примечание. Если на экране UAC (Контроль учетных записей пользователей) появится запрос, нажмите «Да», чтобы предоставить доступ администратора.

После того, как вы выполнили приведенные выше инструкции, у вас должно быть довольно хорошее представление о том, оборудован ли ваш компьютер для поддержки Windows 11 или нет.

Если он не соответствует минимальным спецификациям из-за ограничений, связанных с оборудованием (например, недостаточная оперативная память или частота процессора), вы ничего не можете сделать, кроме как обновить его более мощным оборудованием.

Но, с другой стороны, если сканирование PC Health Checkup завершилось неудачно из-за того, что безопасная загрузка отключена или TPM 2.0 не настроен в настройках BIOS / UEFI или из-за того, что Windows 10 была установлена ​​в устаревшем режиме загрузки, приведенные ниже инструкции покажут вам, как включить их и устранить ошибку «Этот компьютер не может запустить Windows 11».

2. Переключите режим загрузки на UEFI.

Имейте в виду, что если ваша текущая операционная система (Windows 10) была установлена ​​в устаревшем режиме загрузки, утилита проверки работоспособности ПК не обнаружит, что ваш компьютер действительно оборудован для поддержки UEFI.

Если этот сценарий применим, и ваша текущая настройка подключена к использованию устаревшего режима загрузки, вам нужно будет изменить режим загрузки на UEFI в настройках BIOS, прежде чем утилита проверки работоспособности ПК обнаружит, что ваш компьютер готов к Windows 11. Кроме того, не забудьте преобразовать свой диск из MBR в GPT перед включением UEFI, иначе это не сработает. Обязательно создайте резервную копию, прежде чем вносить какие-либо изменения в раздел, мы не несем ответственности за любой ущерб или потерю данных.

Чтобы упростить вам задачу, мы составили пошаговое руководство, которое покажет вам, как переключить режим загрузки на UEFI из настроек BIOS:

Примечание. Приведенные ниже инструкции будут работать только в том случае, если ваша материнская плата поддерживает UEFI, но настроена на использование устаревшего режима загрузки.

Если ваша система уже настроена на использование UEFI по умолчанию, перейдите к следующему руководству, в котором мы покажем вам, как включить безопасную загрузку.

3. Включите безопасную загрузку.

Если у вас довольно современная материнская плата, очень велика вероятность, что безопасная загрузка уже поддерживается. В этом случае все, что вам нужно сделать, это получить доступ к настройкам BIOS и включить безопасную загрузку, чтобы утилита проверки работоспособности ПК могла ее обнаружить.

Для этого следуйте приведенным ниже инструкциям:


    Включите компьютер обычным способом и несколько раз нажмите кнопку Setup (загрузка) во время загрузки. Обычно вы можете найти его где-нибудь в нижней части экрана.Войдите в настройки BIOS

Примечание: имейте в виду, что в зависимости от производителя вашей материнской платы точные инструкции для этого могут быть разными. В большинстве случаев ваш ключ настройки (ключ BIOS) будет одним из следующих: F1, F2, F4, F8, F12, Esc или Del.

Примечание 2: если ваш компьютер по умолчанию использует UEFI, удерживайте нажатой клавишу SHIFT, одновременно нажимая кнопку «Перезагрузить» на начальном экране входа в систему, чтобы заставить компьютер войти в меню восстановления. Затем перейдите в раздел «Устранение неполадок»> «Дополнительные параметры»> «Настройки прошивки UEFI», чтобы открыть меню UEFI.

Примечание. Обычно вы можете найти его на вкладке «Безопасность». Точное имя и расположение зависят от производителя вашей материнской платы.

4. Включите доверенный платформенный модуль 2.0.

  1. TPM (Trusted Platform Module) 2.0 не поддерживается вашим оборудованием
  2. TPM 2.0 отключен в настройках BIOS или UEFI.

Чтобы проверить, поддерживается ли TPM в вашей системе, выполните следующие действия:

  1. Нажмите клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить». Затем введите «tpm.msc» в текстовое поле и нажмите Enter, чтобы открыть окно управления доверенным платформенным модулем (TPM) в Windows 10.Доступ к экрану модуля TPM в Windows 10
  2. Как только вы войдете в модуль TPM, проверьте состояние в правом разделе меню TPM.Состояние модуля TPM
  • Если состояние TPM отображается как «TPM готов к использованию», это означает, что TPM 2.0 уже включен, поэтому никаких дальнейших действий не требуется.
  • Если состояние TPM отображается как «TPM не поддерживается», это означает, что ваша материнская плата не поддерживает эту технологию. В этом случае вы не сможете установить Windows 11.
  • Если состояние TPM отображается как «Не удается найти совместимый доверенный платформенный модуль», это означает, что TPM поддерживается, но не включен в настройках BIOS или UEFI.

Если последний сценарий верен, следуйте инструкциям ниже, чтобы включить TPM 2.0 в настройках BIOS или UEFI:

Примечание. Обычно вы видите клавишу загрузки в правом нижнем или нижнем левом углу экрана.

Примечание: точное расположение и расположение этой функции безопасности зависит от производителя вашей материнской платы. Например, на оборудовании Intel вы найдете эту опцию как Intel Platform Trust Technology.


Данные обещания надо выполнять, тем более, если они сделаны сначала в заключительной части опуса о безопасности UEFI, а потом повторены со сцены ZeroNights 2015, поэтому сегодня поговорим о том, как заставить UEFI SecureBoot работать не на благо Microsoft, как это чаще всего настроено по умолчанию, а на благо нас с вами.
Если вам интересно, как сгенерировать свои собственные ключи для SecureBoot, как установить их вместо стандартных (или вместе с ними), как подписать ваш любимый EFI-загрузчик, как запретить загрузку неподписанного или подписанного чужими ключами кода, как выглядит интерфейс для настройки SecureBoot у AMI, Insyde и Phoenix и почему это, по большому счету, совершенно не важно — добро пожаловать под кат, но опасайтесь большого количества картинок и длинных консольных команд.

Введение

С ликбезом закончили, теперь к делу. Несмотря на то, что про создание своих ключей и настройку SecureBoot написано за три последних года с десяток отличных статей (ссылки на часть из которых приведены в разделе Литература), воз и ныне там. Основная проблема с информацией о настройке SecureBoot даже в англоязычном сегменте сети (не говоря уже о рунете) — большая часть статей, текстов и постов обрывается на «вот у нас теперь есть ключи в формате EFI Signature List, добавьте их зависимым от вашего вендора прошивки способом и готово». При этом сами вендоры не торопятся описывать меню настройки SecureBoot ни в документации на свои платформы для OEM'ов, ни в мануалах на конечные системы, в результате пользователь теряется на незнакомой местности и либо отключает SecureBoot, мешающий загружать его любимую OpenBSD (или что там у него), либо оставляет его на настройках по умолчанию (а чего, Windows грузится же). Именно этот последний шаг я и попытаюсь описать более подробно, но не в ущерб остальным необходимым шагам.

Тестовая конфигурация

Специально для этой статьи я достал из закромов пару не самых новых ноутбуков с прошивками на платформах Phoenix SCT и Insyde H2O, а также совершенно новую плату congatec (разработкой прошивки для которой я занят в данный момент) на платформе AMI AptioV. Встречайте, наши тестовые стенды:

1. AMI, они же "треугольные": congatec conga-TR3 @ conga-TEVAL, AMD RX-216GD (Merlin Falcon), AMI AptioV (UEFI 2.4)

2. Insyde, они же "квадратные": Acer Aspire R14 R3-471T (Quanta ZQX), Intel Core i3-4030U (Ivy Bridge), Insyde H2O (UEFI 2.3.1C)

3. Phoenix, они же "полукруглые": Dell Vostro 3360 (Quanta V07), Intel Core i7-3537U (Ivy Bridge), Phoenix SCT (UEFI 2.3.1C)

Об интерфейсах для настройки SecureBoot


На всех вышеперечисленных системах производитель заявляет о поддержке технологии UEFI SecureBoot, но интерфейс для ее настройки сильно отличается между системами. К счастью, это не очень большая проблема, поскольку для настройки SecureBoot на совместимых со спецификацией UEFI 2.3.1C (и более новых) прошивках никакого интерфейса в Setup, кроме возможности удаления текущего PK (т.е. перевода SecureBoot в так называемый Setup Mode) не требуется, а после этого можно использовать любое EFI-приложение, способное вызвать UEFI-сервис gRS->SetVariable с предоставленными пользователем данными, в том числе утилиту KeyTool.efi из пакета efitools, которая специально для управления ключами и предназначена, осталось только научиться ей пользоваться.
Тем не менее, если удобный интерфейс для настройки присутствует (у AMI он, на мой взгляд, даже удобнее KeyTool'а) — можно воспользоваться им, так что рассказывать про эти самые интерфейсы все равно придется.

Готовим плацдарм

Начнем с лирического отступления о наличии нужного софта для разных ОС. Несмотря на то, что Microsoft является одним из разработчиков технологии, в открытом доступе до сих пор отсутствуют нормальные средства для работы с ней из Windows (ключи можно сгенерировать утилитой MakeCert из Windows SDK, а для всего остального предлагается использовать HSM третьих лиц за большие деньги). Я подумывал сначала взять и написать нужную утилиту на Qt, но потому решил, что ключи и подписи каждый день генерировать не нужно, а на пару раз хватит и существующих решений. Можете попробовать переубедить меня в комментариях, если хотите.
В общем, для всего нижеперечисленного вам понадобится Linux (который можно запустить с LiveUSB, если он у вас не установлен). Для него существует целых два набора утилит для работы с SecureBoot: efitools/sbsigntool и EFIKeyGen/pesign. У меня есть положительный опыт работы с первым набором, поэтому речь пойдет именно о нем.
В итоге, кроме Linux, нам понадобятся несколько вещей:
1. Пакет openssl и одноименная утилита из него для генерирования ключевых пар и преобразования сертификатов из DER в PEM.
2. Пакет efitools, а точнее утилиты cert-to-efi-sig-list, sign-efi-sig-list для преобразования сертификатов в формат ESL и подписи файлов в этом формате, и KeyTool.efi для управления ключами системы, находящейся в SetupMode.
3. Пакет sbsigntool, а точнее утилита sbsign для подписи исполняемых файлов UEFI (т.е. загрузчиков, DXE-драйверов, OptionROM'ов и приложений для UEFI Shell) вашим ключом.
Загрузите Linux, установите вышеуказанные пакеты, откройте терминал в домашней директории и переходите к следующему шагу.

Генерируем собственные ключи для SecureBoot

Как обычно, есть несколько способов сделать что-либо, и чем мощнее используемый инструмент, тем таких способов больше. OpenSSL же как инструмент развит настолько, что кажется, что он умеет делать вообще всё, а если почитать к нему man — то и абсолютно всё остальное. Поэтому в этой статье я ограничусь непосредственной генерацией ключевых файлов, а танцы вокруг создания собственного CA оставлю на самостоятельное изучение.

Генерируем ключевые пары
Конвертируем открытые ключи в формат ESL

Теперь нужно сконвертировать открытые ключи из формата PEM в понятный UEFI SecureBoot формат ESL. Этот бинарный формат описан в спецификации UEFI (раздел 30.4.1 в текущей версии 2.5) и интересен тем, что файлы в нем можно соединять друг с другом конкатенацией, и этот факт нам еще пригодится.
Ключ -g добавляет к сгенерированному ESL-файлу GUID, в нашем случае — случайный, полученый запуском утилиты uuidgen и использованием ее вывода. Если этой утилиты у вас нет — придумывайте GUIDы сами или оставьте значение по умолчанию.

Подписываем ESL-файлы
Для правильно работы SecureBoot необходимо, чтобы PK был подписан сам собой, KEK подписан PK, а хранилища db и dbx — сответственно KEK. При этом PK не может быть несколько, а вот ситуация с несколькими KEK хоть и встречается в дикой природе, но я все же настоятельно рекомендую удалить предустановленный ключ Microsoft из KEK по простой причине — db и dbx могут быть подписаны любым ключом из хранилища KEK, т.е. если ключ MS оттуда не удалить, то у MS будет возможность управлять содержимым db и dbx, т.е. добавлять любые новые ключи или хеши в список доверенной загрузки и удалять из него существующие. На мой взгляд, это немного слишком, и если мы берем управление ключами в свои руки, то нужно делать это до конца. Ну тогда вам прямая дорога вот сюда, там в самом конце раздела 1.3.4.3 есть ссылка на сертификат Microsoft Corporation KEK CA 2011 в формате DER, из которого нужно сначала получить PEM командой
затем сконвертировать полученный PEM в ESL командой
после чего добавить получившийся файл к нашему файлу KEK.esl командой
Теперь Microsoft такой же авторизованный пользователь вашей платформы, как и вы сами, с чем я вас и поздравляю.

С другой стороны, если вы не хотите терять возможность загрузки Windows и подписанных ключом Microsoft исполняемых компонентов (к примеру, GOP-драйверов внешних видеокарт и PXE-драйверов внешних сетевых карточек), то к нашему ISK.esl надо будет добавить еще пару ключей — ключ Microsoft Windows Production CA 2011, которым MS подписывает собственные загрузчики и ключ Microsoft UEFI driver signing CA, которым подписываются компоненты третьих сторон (именно им, кстати, подписан загрузчик Shim, с помощью которого теперь стартуют разные дистрибутивы Linux, поддерживающие SecureBoot из коробки).
Последовательность та же, что и под спойлером выше. Конвертируем из DER в PEM, затем из PEM в ESL, затем добавляем к db.esl, который в конце концов надо будет подписать любым ключом из KEK:

Теперь подписываем PK самим собой:
Подписываем KEK.esl ключом PK:
Подписываем db.esl ключом KEK:

Если еще не надоело, можно добавить чего-нибудь еще в db или создать хранилище dbx, нужные команды вы теперь знаете, все дальнейшее — на ваше усмотрение.

Подписываем загрузчик

Осталось подписать какой-нибудь исполняемый файл ключом ISK, чтобы проверить работу SecureBoot после добавления ваших ключей. Для тестов я советую подписать утилиту RU.efi, она графическая и яркая, и даже издалека видно, запустилась она или нет. На самом деле, утилита эта чрезвычайно мощная и ей можно натворить немало добрых и не очень дел, поэтому после тестов лучше всего будет её удалить, и в дальнейшем подписывать только загрузчики.
В любом случае, подписываются исполняемые файлы вот такой командой:
Здесь я заодно переименовал исполняемый файл в bootx64.efi, который нужно положить в директорию /EFI/BOOT тестового USB-носителя с ФС FAT32. Для 32-битных UEFI (избавь вас рандом от работы с ними) используйте bootia32.efi и RU32.efi.

В результате вот этого всего у вас получились три файла .auth, которые нужно будет записать «как есть» в NVRAM-переменные db, KEK и PK, причем именно в таком порядке. Скопируйте все три файла в корень другого USB-носителя с ФС FAT32, на котором в качестве /EFI/BOOT/bootx64.efi выступит /usr/share/efitools/efi/KeyTool.efi (скопируйте его еще и в корень, на всякий случай) и ваш «набор укротителя SecureBoot» готов.

Укрощение строптивого

AMI AptioV
Insyde H2O
Phoenix SCT

Здесь возможностей еще меньше, и во всем меню Secure Boot Configuration на вкладке Security всего два пункта: возврат к стандартным ключам и удаление всех ключей с переводом системы в SetupMode, нам нужно как раз второе:

Затем на вкладке Boot нужно выбрать тип загрузки UEFI, включить SecureBoot, и создать загрузочную запись для KeyTool'а, иначе на этой платформе его запустить не получится:

Нажимаем Yes, выходим с сохранением изменений, перезагружаемся, нажимаем при загрузке F12, чтобы попасть в загрузочное меню, оттуда выбираем KeyTool, работа с которым описана выше. После добавления ключей и перезагрузки попытка повторного запуска KeyTool'а заканчивается вот так:

При этом установленный на той же машине Linux продолжает исправно загружаться, как и подписанная нами RU.efi, так что SecureBoot можно признать работоспособным.

Заключение

В итоге, благодаря утилитам с открытым кодом, удалось завести SecureBoot на системах с UEFI трех различных вендоров, сгенерировать свои собственные ключи и подписать ими нужные нам исполняемые файлы. Теперь загрузка платформы целиком в наших руках, но только в случае, если пароль на BIOS стойкий и не хранится открытым текстом, как у некоторых, а в реализации SecureBoot нет каких-либо известных (или еще неизвестных) дыр. Сам по себе SecureBoot — не панацея от буткитов, но с ним ситуация с безопасной загрузкой все равно намного лучше, чем без него.
Надеюсь, что материал вам поможет, и спасибо за то, что прочитали эту портянку.

Читайте также: