Secure Boot — технология проверки загрузчика¶
Secure Boot (с англ. — «безопасная загрузка») — технология обеспечения целостности программного обеспечения при включении компьютера, описанная в спецификации Unified Extensible Firmware Interface (UEFI). Она предотвращает запуск на системе загрузочных компонентов, цифровая подпись которых не прошла проверку доверенного ключа, тем самым снижая риск заражения загрузочных вредоносных программ (bootkit).
¶История и появление
Технология появилась в спецификации UEFI версии 2.3.1, опубликованной в 2012 году. До этого загрузка операционной системы на IBM-совместимых компьютерах выполнялась через классический BIOS, который не предусматривал механизмов проверки подписи загрузочных компонентов. Вместе с переходом от BIOS к UEFI появилась возможность заложить криптографическую проверку на уровне прошивки материнской платы.
Инициативу продвигала рабочая группа UEFI Forum. С 2012 года технология стала обязательным требованием для устройств с сертификацией Windows 8 и новее, а также для ряда серверных платформ.
¶Принцип работы
При включении компьютера с UEFI процесс загрузки проходит несколько уровней проверки:
- Прошивка UEFI проверяет цифровую подпись загрузчика операционной системы (например, Windows Boot Manager).
- Загрузчик в свою очередь проверяет подпись компонентов ядра операционной системы и драйверов.
- Если подпись корректна, загрузка продолжается; если нет, система выдаёт предупреждение или блокирует запуск.
Доверенные ключи хранятся в специальной защищённой области памяти UEFI (Secure Boot key store). Прошивка поддерживает два типа ключей:
- Ключи подписи (PK) — ключ владельца платформы (Platform Key), подписывающий доверенные ключи.
- Ключи доверия (KEK) — ключи, которыми подписываются базовые компоненты UEFI и загрузчики.
- Хеш-записи (db, dbx) — база разрешённых подписей и база отозванных подписей.
Если загрузочный компонент отсутствует в базе доверенных подписей или его подпись была добавлена в список отзыва, запуск блокируется.
¶Secure Boot и операционные системы
¶Windows
Microsoft является одним из главных инициаторов внедрения Secure Boot. С Windows 8 технология стала обязательным требованием для OEM-производителей, выпускающих устройства с предустановленной ОС. На практике это означает, что большинство современных компьютеров с Windows продаются с включённым Secure Boot.
¶Linux
Поддержка Secure Boot в Linux обеспечивается через систему Unified Kernel Image (UKI) и загрузчик shim, который подписывается ключом Microsoft. Большинство крупных дистрибутивов (Ubuntu, Fedora, Debian, RHEL) поддерживают загрузку с включённым Secure Boot. Однако на пользовательских сборках и специализированных дистрибутивах технология может потребовать дополнительной настройки или отключения.
¶macOS
На компьютерах Apple аналогичная технология реализована в виде проверки подписи загрузочных компонентов, однако она работает иначе и не описана в спецификации UEFI.
¶Отключение и критика
Пользователь может отключить Secure Boot в настройках UEFI (обычно раздел «Boot» или «Security»). Это требуется для загрузки несертифицированных операционных систем, некоторых дистрибутивов Linux, а также для работы с определённым оборудованием и драйверами.
Критика технологии связана с несколькими аспектами:
- Ограничение свободы загрузки — возможность отключить Secure Boot на сертифицированных устройствах зависит от решения производителя, что вызывает споры о праве пользователя распоряжаться собственным оборудованием.
- Зависимость от Microsoft — на многих устройствах ключ подписи загрузчика Linux принадлежит Microsoft, что создаёт централизованную точку доверия.
- Уязвимости прошивки — Secure Boot защищает от уровня загрузки, но не гарантирует защиту от эксплуатации уязвимостей самой прошивки UEFI.
¶Значение
Secure Boot является одним из ключевых механизмов защиты от загрузочных вредоносных программ, которые работают до запуска операционной системы и могут оставаться незамеченными антивирусным ПО. Технология применяется на большинстве современных персональных компьютеров, ноутбуков и серверных платформ.
Источники:
- Спецификация UEFI (UEFI Specification, UEFI Forum)
- Microsoft Learn — Secure Boot overview
- Red Hat Documentation — UEFI Secure Boot
- Arch Wiki — Secure Boot
