Как правильно настроить безопасную загрузку secure boot в windows 8

Обновлено: 07.07.2024

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

Что такое безопасная загрузка (SecureBoot)

Secure Boot создавалась для защиты компьютеров под OC Windows от вирусов, прописывающихся в загрузчик системы, низкоуровневых эксплойтов, руткитов и является одной из опцией UEFI (Unified Extensible Firmware Interface), современного наследника BIOS. EFI - это программный интерфейс, который работает между операционной системой и прошивкой платформы, что позволяет заменить BIOS.

Не буду вдаваться с технические детали, суть в том, что в режиме безопасной загрузки, менеджер загрузки UEFI выполняет только подписанный цифровым ключом код. Все новые компьютеры, сертифицированные для Windows 8/8.1 должны поставляться с включенной функцией Secure Boot - это обязательное требование Microsoft. Однако, должна присутствовать возможность отключения Secure Boot и функция управления ключами, для установки систем которые не поддерживают UEFI.

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

Есть два варианта решения данной проблемы:

  • Если ваш компьютер поддерживает SecureBoot в UEFI (бывший BIOS), следует перезагрузиться и войдя в UEFI, включить Secure Boot. Конкретное местонахождение параметра Secure boot в настройках UEFI вашего компьютера зависит от производителя ПК.
  • Тем, кто вообще не планирует использовать Secure Boot, либо ваш компьютер или ноутбук в принципе не поддерживает такую загрузку, Microsoft выпустил специальное обновление KB2902864 .

Обновление устраняет водяной знак "SecureBoot Windows 8.1 не настроен правильно" в Windows Server 2012 R2 и Windows 8.1

Рекомендую использовать именно второй вариант. Скачивайте нужную вам версию обновления, в зависимости от разрядности используемой системы. После установки обновления, систему нужно перезагрузить. Активация не совсем легальных копий Windows 8.1 при этом не слетает.


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

Включение Secure Boot в BIOS

А вдруг и это будет интересно:

04.12.2013 в 17:38

После обновления Windows 8 до Windows 8.1 перестал работать Office 2007. Какой Офис надо устанавливать?

04.12.2013 в 17:43

Не подскажу. В первый раз слышу о такой проблеме. У меня 2013, работает исправно (лицензия).

12.03.2016 в 19:41

Компьютер Lenovo E50-00 с установленной W. 8.1 купил 11.02.2016 после автоматического обновления до Windows 10 стал включаться следующим образом: после нажатия кнопки включения питания на системном блоке, кнопка подсвечивается, индикатор диска мигает, но через несколько секунд гаснет и компьютер не включается, потом еще раз нажимаю кнопку и тогда компьютер включается нормально. Случайно заменил клавиатуру Lenovo на BTC, подал питание и первый раз компьютер включился с первого раза, но при следующих включениях опять только со второго раза. Поменял клавиатуру наоборот и ситуация повторилась, т.е. при первом включении после замены включился с первого раза, а при повторных включениях только со второго. То же проделал с заменой мышки и все повторилось, как и с заменой клавиатуры. В остальном компьютер работает нормально, без каких-либо проблем, поэтому не хочется возвращать компьютер в исходное состояние и ловить новые проблемы при следующем обновлении до Windows 10, к тому же я не имею достаточного опыта в этих вопросах. Подскажите, может быть можно решить эту проблему другим путем?
С уважением, Виктор.

13.03.2016 в 08:51

27.04.2018 в 15:55

Здравствуйте. Не видит НР жесткий диск, в биос при нажатии Clear all secure boot keys выдаёт the secure boot key database is empty

28.04.2018 в 08:46

Так проблема в том что не видит жесткий диск или в безопасной загрузке?

05.07.2018 в 00:23

У меня после вашего обновления на устранение этой ошибки перестал работать интернет какие то проблемы с драйвером теперь я раздаю интернет через юзб с телефона что теперь делать?

05.07.2018 в 10:58

Некоторые пользователи устройств под управлением операционной системы Windows 8 и 8.1 после установки обновлений столкнулись с ошибками системы, которые связаны с так называемой «безопасной загрузкой». Что же это такое? Это функция, которая препятствует запуску неавторизованных ОС и ПО при включении ПК. Нужна она для дополнительной защиты вашего компьютера от вирусов и руткитов, которые могут нанести вред системе в тот момент, когда она загружается. Но что же делать, если указанная функция становится причиной постоянных ошибок? Всё дело в заданных параметрах. В этой статье подробно рассмотрим, как правильно настроить Secure Boot. Давайте разбираться. Поехали!

Устранение ошибки безопасности

Если есть такая проблема, данная статья для вас.

Ошибка появилась на экране

Нарушение Secure Boot

Первым делом зайдите в BIOS. Для этого необходимо нажать определённую клавишу (зависит от девелопера вашего ПК) в процессе включения компьютера.

Обратите внимание, что если вы пользуетесь Windows 8.1 или 8, можно просто перейти к меню параметров, открыть раздел «Изменение параметров компьютера», а затем выбрать пункт «Обновление и восстановление». Далее, необходимо зайти в «Восстановление» и кликнуть по кнопке «Перезагрузить». Затем выберите дополнительные параметры «Настройки ПО UEFI». После перезагрузки ПК получит нужные параметры.

Обновление и восстановление

Диалоговое окно Windows 8 (8.1)

Другой способ касается юзеров всех остальных версий ОС Windows. Откройте BIOS или UEFI (более современный аналог). Далее, для каждой марки ноутбука процесс настройки может незначительно отличаться, поэтому рассмотрим каждый случай отдельно.

Зайдите во вкладку «Boot». Затем откройте раздел «Secure Boot». Выберите «Other OS» в пункте «OS Type». В более старых версиях просто поставьте «Disabled» в нужном пункте. Сохраните настройки, нажав на клавиатуре клавишу F10.

UEFI для ASUS

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

Откройте раздел «System Configuration», а затем нажмите «Boot Options». Найдите там соответствующую строку и выберите режим «Disabled». Сохраните параметры перед выходом.

Lenovo, Toshiba

Запустив BIOS, откройте раздел «Security». Найдите соответствующий пункт и выберите для него состояние «Disabled».

Lenovo: настройка загрузки

В зависимости от версии БИОСа, параметры могут немного отличаться

Для ноутбуков Dell и Acer всё выполняется аналогичным образом, с той разницей, что нужный пункт находится во вкладке «Boot» (для Dell) и «Authentication» или «System Configuration» (для Acer).

Acer: окно утилиты настройки

Алгоритм действий похож

Если ваш компьютер с материнской платой от компоновщика Gigabyte, то нужный раздел следует искать во вкладке «BIOS Features». Дальнейшие действия такие же, как в выше рассмотренных случаях.

В ОС Windows 8 и более новых версиях можно узнать, включена или отключена на компьютере безопасная загрузка. Для этого воспользуйтесь комбинацией клавиш Win+R, чтобы открыть окно «Выполнить», а затем пропишите в поле для ввода (без кавычек) «msinfo32». В разделе «Сведения о системе» вы найдёте необходимую информацию. Так вы можете узнать о состоянии функции безопасной загрузки на вашем ПК.

В общем, в случае возникновения каких-либо неисправностей с режимом безопасной загрузки, попробуйте включить или отключить его, перейдя в BIOS или UEFI. Это поможет вам решить проблемы с системой и комфортно пользоваться компьютером.

Компьютерные вирусы стали неотъемлемой частью нашей жизни. О них слышали даже те люди, которые сроду не пользовались компьютерами. Для улучшение защиты от зловредного ПО и был внедрен протокол Secure Boot. О том, с чем его едят и как его отключать будет подробно описано в статье.


Что такое Secure Boot (Безопасная загрузка) и когда может потребоваться ее отключение?

Не одними только эстетическими побуждениями руководствовались творцы UEFI. Одной из важных целей при разработке было обнаружить и ограничить влияние вредоносного ПО. Предполагалось, что технология станет препятствовать его загрузке вместе с операционной системой (ОС), а также исполнению на уровня ядра ОС после ее запуска. Честь исполнять эту важную миссию выпала на протокол Secure Boot. Техническая реализация была такой: использовалась криптографическая схема с открытыми и закрытыми сигнатурами (электронными цифровыми подписями, ЭЦП). В общем виде цели были достигнуты, но на практике это требовало определенных и правильных действий не только со стороны пользователей, но и со стороны производителей компьютерного оборудования. Описание всего процесса займет много времени, так что остановимся на ключевых особенностях:

Сложности с технологией начались еще на этапе внедрения, когда Microsoft заявила, что с помощью протокола будет ограничивать установку других ОС на компьютеры с предустановленной Windows. Тогда от таких планов отказались под натиском общественности, но осадок остался. На сегодня основная сложность заключается в том, что производители материнских плат используют одинаковые закрытые ключи для всей своей продукции либо для отдельных линеек. В любом случае благие намерения привели к тупику.

В подавляющем большинстве случаев отключать Secure Boot стоит для решения двух проблем:

  1. Если не устанавливается или не загружается ОС.
  2. При невозможности загрузиться с загрузочной флешки.

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

Как отключить защиту Secure Boot в БИОСе?

Отметим, что некоторые пользователи ошибочно думают, что протокол Secure Boot отключается в BIOS. У этой достаточно примитивной прошивки нет, не было, и не может быть поддержки СекюрБут. Этот протокол безопасности работает исключительно на UEFI и отключение нужно производить именно там. Природа этой ошибки вполне простая. За многие годы пользователи привыкли, что все, что возникает на экране до загрузки ОС это и есть БИОС. В действительности времена этой программной надстройки уходят и она уже является устарелой в любом отношении.

Примеры отключения Secure Boot на разных ноутбуках и материнских платах

Общий алгоритм всегда один и тот же:

Важно, что этот протокол безопасности поддерживается только в Windows 8 и более поздних версиях. Следовательно, если у вас в прошивке материнской платы включен Secure Boot, но на ПК установлена Windows 7, то ничего отключать не надо. Опция безопасной загрузки все равно не работает, а возможные проблемы с запуском ОС нужно искать в других местах.

Как отключить Secure Boot и UEFI на ноутбуке Acer Aspire?


Есть много моделей ноутбуков этого производителя, но специфика такова, что сначала требуется создать собственный пароль. Общий алгоритм действия следующий:

Отключение Secure Boot на ноутбуках Pavilion и других моделях HP?


На ноутбуках Dell


Secure Boot на ноутбуках Леново и Тошиба


Для входа в UEFI на этих устройствах нужно жать F12, после чего выполнять следующие действия:

Отключения Secure Boot на материнских платах

Отметим, что перейти сразу в UEFI можно в некоторых случаях напрямую с Windows (от 8 версии и более поздних). Для этого пробуйте следующее:

Как отключить Secure Boot на материнской плате Gigabyte?


После входа в UEFI (нажатием на F12 перед запуском ОС) действуйте следующим образом:

Материнские платы и ноутбуки Асус


Сразу отметим, что чаще всего на материнках именно этого производителя появляется ошибка при загрузке ОС: Invalid signature detected. Check Secure Boot Policy in Setup. В большинстве случаев для устранения проблемы следует выключить Secure Boot, а для этого необходимо:

Конкретно для ноутбуков Asus алгоритм будет следующим:

Как узнать активирована ли функция Secure Boot на Windows?


Этот протокол несложно активировать и деактивировать, а для понимания текущего статуса есть несколько проверенных подходов:

Заключение

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