Bfsoft.ru

Программы, сервисы, полезные советы о компьютере и интернете
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как правильно настроить Secure Boot

Как установить Windows 11: проверяем системные требования, активируем TPM и Secure Boot

Получить Windows 11 можно тремя способами: бесплатно обновиться с Windows 10, купить готовый компьютер с предустановленной Windows 11 или купить систему отдельно.

Если у вас есть лицензионная копия Windows 10 и компьютер соответствует минимальным системным требованиям, то обновление вы получите бесплатно. По словам Microsoft, распространение обновлений начнется позднее в этом году и продолжится в 2022 году. Обновление не будет одновременным для всех. Уведомление о доступном обновлении появится в «Центре обновления Windows». Обратите внимание, что у вас должны быть установлены все последние обновления для Windows 10. Кроме того, позднее в этом году можно будет приобрести готовый персональный компьютер с предустановленной Windows 11. Точные сроки не называются.

Гайды по Windows 11

Проверьте системные требования

Официальные системные требования указаны на сайте Microsoft:

  • процессор: 64-битный двухъядерный с тактовой частотой не менее 1 ГГц;
  • оперативная память: 4 гигабайта;
  • накопитель: 64 гигабайта;
  • видео: с поддержкой DirectX 12 или более поздней версии и драйвером WDDM 2.0;
  • дисплей: не менее 9 дюймов;
  • прочее: модуль TPM 2.0 и поддержка Secure Boot.

Несмотря на довольно скромные требования по процессору, компания представила список официально поддерживаемых CPU. В него не входят довольно распространенные AMD Ryzen первого поколения (с архитектурой Zen) и процессоры Intel до восьмого поколения (Coffee Lake). Но паниковать не стоит, скорее всего, это просто официальные рекомендации компании, а не исчерпывающий список. Полный список процессоров можно найти по ссылкам: Intel и AMD.

Как установить Windows 11: проверяем системные требования, активируем TPM и Secure Boot

Тем не менее программа PC Health Check, которая предназначена для проверки совместимости вашей системы с Windows 11, вряд ли даст зеленый свет официально незаявленным процессорам. У автора этой статьи так и не вышло «получить разрешение» на процессоре Ryzen 1600.

Активируйте программный модуль TPM

TPM — это криптографический модуль для шифрования данных и защиты от взлома. Он представляет собой отдельный чип на материнской плате. На большинстве моделей, продающихся в России, такого модуля нет из-за необходимой сертификации такого оборудования. Но может быть специальный слот для его подключения. Также многие материнские платы поддерживают программную реализацию TPM.

Обратите внимание, в системных требованиях Windows 11 указан TPM версии 2.0. Напомним, ранее компания заявляла, что будет достаточно более старой версии 1.2.

Как установить Windows 11: проверяем системные требования, активируем TPM и Secure Boot

Чтобы проверить наличие модуля, нажмите сочетание клавиш Win + R и выполните команду tpm.msc. Откроется окно «Управление доверенным платформенным модулем на локальном компьютере». Если высветилось предупреждение «Не удается найти совместимый доверенный платформенный модуль», значит модуль не активен.

Как установить Windows 11: проверяем системные требования, активируем TPM и Secure Boot

Рассмотрим активацию модуля на примере материнской платы ASUS с логикой от AMD. Сначала нужно попасть в BIOS (при загрузке нажмите Del или F2). Затем нажмите F7, чтобы перейти к расширенным настройкам. Переключитесь на вкладку Advanced и выберите строку AMD fTPM configuration. Далее активируйте (enabled) строку AMD fTPM switch. Подробнее об активации модуля TPM на других материнских платах читайте в нашем гайде «Как настроить TPM 2.0 для установки Windows 11».

Кроме того, в сети уже научились обходить требование Windows 11 по TPM путем замены файла appraiserres.dll, который можно взять из образа Windows 10.

Активируйте Secure Boot

Secure Boot — это режим безопасной загрузки, который является частью UEFI. Если говорить проще, то UEFI представляет собой более современную и продвинутую реализацию BIOS. В системных требованиях Windows 11 обязательно наличие UEFI и Secure Boot. Проверить наличие UEFI и Secure Boot можно так: нажмите сочетание клавиш Win + R и введите команду msinfo32. Обратите внимание на две строчки: в пункте «Режим BIOS» должно стоять UEFI, а «Состояние безопасной загрузки» должно быть включено.

Как установить Windows 11: проверяем системные требования, активируем TPM и Secure Boot

Также проверить эти параметры можно через программу HWiNFO 64. Откройте главное окно программы — это корневая папка с названием вашего компьютера в левой части экрана. В правой части экрана должны быть строчки UEFI Boot: Present и Secure Boot: Present.

Как установить Windows 11: проверяем системные требования, активируем TPM и Secure Boot

Если безопасная загрузка не работает, то нужно включить ее в BIOS. Разберем активацию Secure Boot на примере материнской платы ASUS. Во время загрузки системы нажмите клавишу Del или F2, чтобы зайти в BIOS. Перейдите в расширенные настройки, нажав клавишу F7. Далее перейдите на вкладку Boot и выберите строчку Secure Boot. Далее в строке Secure Boot State выставьте значение Enabled. В строке OS Type должно быть Windows UEFI mode.

Как установить Windows 11: проверяем системные требования, активируем TPM и Secure Boot

Что еще нужно сделать

Также стоит попробовать выключить CSM. На примере материнской платы ASUS: зайдите во вкладку Boot и выберите строчку Launch CSM. Выставьте параметр Disabled. Обратите внимание, что в этом режиме работает только UEFI, который не поддерживает структуру разделов MBR. В этом случае загрузочный диск должен иметь структуру GPT, в противном случае вы не сможете загрузить систему.

Что такое Secure Boot для Windows 11

Вместе с анонсом 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

Если включить Secure Boot для уже установленной Windows 10, то система может не загрузиться, а вы получите сообщение о том, что « Загрузочное устройство не найдено ». Это происходит из-за того, что на диске используется таблица разделов MBR. Для решения этой проблемы диск нужно предварительно конвертировать из формата MBR в GPT.

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

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

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

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

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

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

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

Если все нормально и конвертация возможна, то вы получите сообщение « Validation completed successfully ». Чтобы запустить конвертацию выполните команду:

Если же проверка диска выдала сообщение « Failed », то нужно попробовать вручную указать номер диска. Для этого нужно добавить параметр « /disk:0 », где 0 – это номер диска.

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

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

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

номер диска в 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.

Читайте так же:
Как вставить время или дату в Excel

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

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

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

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

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

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

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

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

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

  • Как проверить совместимость компьютера с Windows 11
  • Программа для проверки совместимости с Windows 11
  • Запуск Windows 11 на этом компьютере невозможен
  • Как включить Secure Boot в BIOS на Gigabyte и AORUS
  • Как включить Secure Boot в BIOS на MSI

Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.

«mbr2gpt /disk:0 /validate»
Ну и что делать, если и после этого «Failed»?

  • Номер диска неправильный. Используйте 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 или конвертация не прошла.

Чтобы загрузить Windows попробуйте отключить безопасную загрузку (выбрать «Другие ОС»). Если не поможет, то также включите CSM.

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

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

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

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

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

  • Перенести загрузчик на диск с системой, поменять загрузочный диск в BIOS и потом выполнить конвертацию из MBR в GPT. Посмотрите вот эту ветку на cyberforum.ru.
  • Конвертировать в GPT этот второй SSD.

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

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

Безопасная загрузка (SecureBoot) настроена неправильно в Windows 8.1

date01.11.2013
useritpro
directoryWindows 8
commentsкомментариев 49

После установки Windows 8.1 (или при обновлении с Win 8 до Win 8.1 через Windows Store) в правом нижнем углу рабочего стола у части пользователей появляется надпись:

Windows 8.1 Профессиональная Безопасная загрузка(SecureBoot) настроена неправильно Build 9600.

Windows 8.1 Безопасная загрузка(SecureBoot) настроена неправильно Build 9600.

В английской версии ошибка, соответственно:

SecureBoot isn

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

Во первых, сразу всех успокоим и скажем, что появление надписи о неправильности настройки безопасной загрузки ни в коем случае не говорит о том, что ваша Windows 8.1 является пиратской или нелегально активированной. Это также не сообщение о серьезных ошибках или проблемах с Windows 8.1. Скорее, это некое информационное предупреждение (хотя и очень навязчивое) о том, что безопасность системы находится не на высоком уровне, т.к. режим безопасной загрузки (Secure Boot) не настроен.

Читайте так же:
Как рассчитать коэффициент корреляции в Excel

Как в Windows 8.1 убрать на рабочем столе надпись «Безопасная загрузка (SecureBoot) настроена неправильно»?

В первую очередь нужно определить включен ли режим Secure Boot в вашей системе. В командной строке PowerShell с правами администратора выполните команду:

Согласно статье на TechNet http://technet.microsoft.com/en-us/library/dn441535.aspx командлет может вернуть следующие значения:

С помощью следующей команды проверяется тип политики Secure Boot:

  • — настроена корректная политика Secure Boot.
  • Любой другой GUID – используется непродуктивная (тестовая или отладочная) политика безопасной загрузки.
  • Secure Boot policy is not enabled on this machine (Политика безопасной загрузки на этом компьютере не включена) — компьютер не поддерживает Secure Boot или работает в Legacy режиме

В том случае, если компьютер поддерживает Secure Boot, можно просто активировать безопасную загрузку:

  1. Перезагрузить компьютер и войти в UEFI (aka BIOS) и включите Secure Boot. Конкретные местонахождения параметров настройки зависят от производителя ПК и настроек среды UEFI (ниже мы привели список типовых настроек Secure Boot в различных UEFI)

  2. Если первый вариант не помог, попробуйте сбросить настройки BIOS/UEFI на заводские (factory default)

Если же использование Secure Boot в вашем случае невозможно (например, вы используете систему с двойной загрузкой ОС, отличных от Win 8/ 8.1), то официального решения пока нет – есть несколько методик (в том числе ручной через Resource Hacker FX), которые вносят изменения в библиотеки basebrd.dll.mui и shell32.dll.mui, убирая предупреждающую надпись. Однако рекомендовать использовать эту методику мы не будем, т.к. она вносит нестандартные изменения в системные файлы и потенциально опасна.

В том случае если ваша система в принципе не поддерживает Secure Boot, а надпись все равно присутствует (скорее всего разработчики Windows 8.1 допустили ошибку), убрать надпись можно, установив свежий набор обновлений от Microsoft KB 2883200(выпущенный, кстати меньше чем через сутки после официального релиза Windows 8.1). Описание пакета обновления тут: http://support.microsoft.com/kb/2883200 . В состав пакета входят KB2894179, KB2883200, KB2894029.

Скачать пакет можно:

  • Для Windows 8.1 x64 — http://www.microsoft.com/en-us/download/details.aspx?id=40749
  • Для Windows 8.1 x86 — http://www.microsoft.com/en-us/download/details.aspx?id=40755

Статья будет обновляться по мере появления новой информации.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Укрощаем UEFI SecureBoot

Данные обещания надо выполнять, тем более, если они сделаны сначала в заключительной части опуса о безопасности 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
Готовим плацдарм

Начнем с лирического отступления о наличии нужного софта для разных ОС. Несмотря на то, что 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-файлы

С другой стороны, если вы не хотите терять возможность загрузки 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

У большинства прошивок, основанных на коде AMI, управление технологией SecureBoot находится на вкладке Security, у меня это управление выглядит так:

Заходим в меню Key Management (раньше оно было на той же вкладке, сейчас его выделили в отдельное) и видим там следующее:

Выбираем нужную нам переменную, после чего сначала предлагают выбрать между установкой нового ключа и добавлением к уже имеющимся, выбираем первое:

Теперь предлагается либо установить значение по умолчанию, либо загрузить собственное из файла, выбираем последнее:

Далее нужно устройство и файл на нем, а затем выбрать формат этого файла, в нашем случае это Authenticated Variable:

Затем нужно подтвердить обновление файла, и если все до этого шло хорошо, в результате получим лаконичное сообщение:

Повторяем то же самое для KEK и PK, и получам на выходе вот такое состояние:

Все верно, у нас есть единственный PK, всего один ключ в KEK и три ключа в db, возвращаемся в предыдущее меню кнопкой Esc и включаем SecureBoot:

Готово, сохраняем настройки и выходим с перезагрузкой, после чего пытаемся загрузиться с нашей флешки и видим вот такую картину:

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

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

Insyde H2O

Здесь все несколько хуже, чем в предыдущем случае. Никакого интерфейса для добавления собственных ключей нет, и возможностей настройки SecureBoot предлагается всего три: либо удалить все переменные разом, переведя SecureBoot в Setup Mode, либо выбрать исполняемый файл, хеш которого будет добавлен в db, и его можно будет запускать даже в том случае, если он не подписан вообще, либо вернуться к стандартным ключам, в качестве которых на этой машине выступают PK от Acer, по ключу от Acer и MS в KEK и куча всякого от Acer и MS в db.
Впрочем, нет интерфейса — ну и черт с ним, у нас для этого KeyTool есть, главное, что в Setup Mode перейти можно. Интересно, что BIOS Setup не дает включить SecureBoot, если пароль Supervisor Password не установлен, поэтому устанавливаем сначала его, затем выполняем стирание ключей:

После чего на соседней вкладке Boot выбираем режим загрузки UEFI и включаем SecureBoot:

Т.к. фотографии у меня посреди ночи получаются невыносимо отвратительными, то скриншоты KeyTool‘а я сделаю на предыдущей системе, и придется вам поверить в то, что на этой все выглядит точно также (мамой клянусь!).
Загружаемся с нашего носителя в KeyTool, и видим примерно следующее:

Выбираем Edit Keys, попадаем в меню выбора хранилища:

Там сначала выбираем db, затем Replace Keys, затем наше USB-устройство, а затем и файл:

Нажимаем Enter и без всяких сообщений об успехе нам снова показывают меню выбора хранилища. Повторяем то же самое сначала для KEK, а затем и для PK, после выходим в главное меню двойным нажатием на Esc. Выключаем машину, включаем заново, пытаемся загрузить KeyTool снова и видим такую картину (которую я утащил из дампа прошивки, ее фото на глянцевом экране еще кошмарнее, чем предыдущие):

Ну вот, одна часть SecureBoot’а работает, другая проверяется запуском подписанной нами RU.efi и тоже работает. У меня на этой системе Windows 8 установлена в UEFI-режиме, так вот — работает и она, Microsoft с сертификатом не подвели.

Phoenix SCT

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

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

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

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

Заключение

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

голоса
Рейтинг статьи
Ссылка на основную публикацию