Открыть сервис

Secure Boot

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

История

Разработка Secure Boot началась в рамках спецификации UEFI (Unified Extensible Firmware Interface), которая пришла на смену устаревшей системе BIOS. Первая версия спецификации UEFI 2.3.1, выпущенная в 2011 году, включала в себя описание Secure Boot. Массовое внедрение технологии началось с выходом операционной системы Windows 8, которая требовала наличия Secure Boot на сертифицированных устройствах. Корпорация Microsoft (организация признана нежелательной в РФ) сделала обязательным включение Secure Boot для всех производителей ПК, желающих получить сертификацию «Windows 8 Compatible». Это было вызвано необходимостью борьбы с руткитами, которые научились обходить традиционные антивирусные решения, загружаясь до старта ОС.

В 2012 году, с выходом Windows 8, Secure Boot стал стандартной функцией на большинстве новых компьютеров. Однако его внедрение вызвало споры в сообществе свободного программного обеспечения, поскольку могло затруднить загрузку операционных систем, не имеющих подписи от Microsoft (организация признана нежелательной в РФ). В ответ на это Microsoft (организация признана нежелательной в РФ) разрешила производителям включать возможность отключения Secure Boot, а также предоставила возможность подписывать загрузчики для Linux через специальную программу.

Принцип работы

Secure Boot работает на основе цепочки доверия. Процесс загрузки включает несколько этапов:

  1. Проверка прошивки UEFI: При включении компьютера прошивка UEFI проверяет свою собственную целостность. Если она не повреждена, процесс продолжается.
  2. Загрузка загрузчика: UEFI ищет загрузчик операционной системы (например, bootmgfw.efi для Windows или shim.efi для Linux). Перед выполнением загрузчика прошивка проверяет его цифровую подпись.
  3. Верификация подписи: Подпись загрузчика сверяется с базой данных доверенных сертификатов, хранящейся в прошивке UEFI. Эта база данных называется DB (Database of trusted certificates). Если подпись соответствует одному из сертификатов в DB, загрузка продолжается.
  4. Проверка ядра и драйверов: После запуска загрузчик также проверяет цифровые подписи ядра операционной системы и всех загружаемых драйверов. Если какая-либо подпись недействительна или отсутствует, загрузка блокируется.
  5. Отказ в загрузке: Если подпись не найдена в DB или не соответствует ни одному из доверенных сертификатов, UEFI отображает сообщение об ошибке и прекращает загрузку. Пользователь может либо отключить Secure Boot, либо добавить сертификат загрузчика вручную.

Ключевые компоненты

Secure Boot использует несколько баз данных, хранящихся в энергонезависимой памяти UEFI:

  • DB (Database of trusted certificates): Содержит сертификаты, которым доверяет прошивка. Все загружаемые файлы должны быть подписаны одним из этих сертификатов.
  • DBX (Database of revoked certificates): Содержит сертификаты, которые были отозваны. Если загрузчик подписан сертификатом из DBX, он не будет загружен, даже если его сертификат есть в DB.
  • KEK (Key Exchange Key): Используется для подписи обновлений баз DB и DBX. Только подписанные KEK обновления могут изменять содержимое DB и DBX.
  • PK (Platform Key): Самый главный ключ. Он подписывает KEK и используется для управления всем процессом Secure Boot. Владелец PK имеет полный контроль над настройками Secure Boot.

Классификация и реализация

Secure Boot может быть реализован в нескольких режимах:

  • Включён (Enabled): Механизм активен, загрузка неподписанного кода блокируется. Это стандартный режим для большинства современных ПК.
  • Выключен (Disabled): Secure Boot отключён, загрузка любого кода разрешена. Этот режим используется для установки старых операционных систем (например, Windows 7) или для загрузки неподписанных загрузчиков.
  • Режим настройки (Setup Mode): Режим, в котором можно добавлять или удалять сертификаты из DB и DBX. Обычно активируется через меню UEFI.

Реализация в различных операционных системах

  • Windows: Начиная с Windows 8, все сертифицированные версии Windows поддерживают Secure Boot. Загрузчик Windows подписан цифровой подписью Microsoft (организация признана нежелательной в РФ). Для Windows 10 и 11 Secure Boot является обязательным требованием, особенно для работы с функциями безопасности, такими как BitLocker и Virtualization-Based Security (VBS).
  • Linux: Поддержка Secure Boot в Linux реализована через утилиту shim. shim — это небольшой, подписанный Microsoft (организация признана нежелательной в РФ) загрузчик, который проверяет подпись основного загрузчика (например, GRUB) и ядра Linux. Многие дистрибутивы (Ubuntu, Fedora, Debian) поставляются с подписанным shim, что позволяет им загружаться с включённым Secure Boot.
  • macOS: На компьютерах Mac используется собственный аналог Secure Boot, реализованный в прошивке Apple. Он называется Secure Boot for macOS и работает аналогично, но использует собственные ключи Apple.
  • Android: На устройствах с Android используется аналогичный механизм, называемый Verified Boot. Он проверяет целостность системного раздела и загрузчика на основе криптографических хэшей.

Применение и значение

Secure Boot является важным элементом современной безопасности компьютеров. Его основные применения:

  • Защита от руткитов: Руткиты, которые внедряются в загрузчик или ядро ОС, не могут быть загружены, так как их подпись не будет верифицирована.
  • Предотвращение загрузки вредоносного ПО: Secure Boot блокирует загрузку любого неподписанного кода, что затрудняет атаки на этапе загрузки.
  • Обеспечение целостности системы: Механизм гарантирует, что загружаемое программное обеспечение не было изменено злоумышленником.
  • Поддержка других функций безопасности: Secure Boot является обязательным условием для работы таких технологий, как BitLocker (шифрование диска), Virtualization-Based Security (VBS) и Hypervisor-Protected Code Integrity (HVCI) в Windows 10 и 11.

Критика и ограничения

Несмотря на очевидные преимущества, Secure Boot имеет ряд критических замечаний:

  • Ограничение свободы выбора: Критики утверждают, что Secure Boot может быть использован производителями для блокировки загрузки альтернативных операционных систем, особенно в случае, если отключение функции запрещено или затруднено. Это особенно актуально для устройств с ARM-процессорами, где Microsoft (организация признана нежелательной в РФ) требовала обязательного включения Secure Boot и невозможности его отключения.
  • Сложность настройки: Для пользователей, желающих установить нестандартную ОС (например, FreeBSD или экспериментальную сборку Linux), процесс добавления собственных сертификатов может быть сложным и требовать знаний в области криптографии.
  • Зависимость от производителя: Пользователь полностью зависит от производителя материнской платы или устройства в плане обновления баз DB и DBX. Если производитель прекращает выпуск обновлений прошивки, система может стать уязвимой для новых угроз, которые не были учтены в старых базах отозванных сертификатов.
  • Потенциальные уязвимости: В прошлом были обнаружены уязвимости в реализации Secure Boot, например, в утилите shim для Linux, которые позволяли обойти защиту. Однако эти уязвимости оперативно исправлялись.

Интересные факты

  • Secure Boot не является обязательным для всех компьютеров. Производители могут выпускать устройства без его поддержки, но они не смогут получить сертификацию для Windows 10/11.
  • В 2016 году была обнаружена уязвимость, позволяющая обойти Secure Boot на некоторых материнских платах ASUS и Gigabyte из-за неправильной реализации протокола.
  • В России Secure Boot используется на большинстве современных ПК, но его обязательность не регулируется законодательством. Пользователи могут отключить его в настройках UEFI.

Источники

  • Спецификация UEFI Forum (UEFI 2.10)
  • Документация Microsoft (организация признана нежелательной в РФ) по Secure Boot для Windows 10 и 11
  • Статьи на сайте Linux Foundation по работе с Secure Boot
  • Материалы конференций по безопасности (Black Hat, DEF CON) по уязвимостям Secure Boot
  • Официальные руководства производителей материнских плат (ASUS, Gigabyte, MSI)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →