Если вы пользуетесь Linux, то можете столкнуться с проблемами загрузки системы во время установки вашего любимого дистрибутива, особенно если на вашем компьютере включен Secure Boot (защищённая загрузка).
Функция Secure Boot должна добавлять дополнительный уровень защиты для вашей системы, препятствуя запуску неверифицированного программного обеспечения во время загрузки системы. Звучит неплохо. Правда?
Но не всегда это полезно. Для пользователей Linux Secure Boot может создавать больше проблем чем приносить пользы. Например, в Ubuntu 21.04 Shim файлы, используемые для поддержки Secure Boot в Linux были не совместимы с ранними прошивками EFI, из-за чего система просто не загружалась после обновления.
Конечно для Ubuntu было выпущено исправление, но к тому моменту много пользователей уже столкнулись с этой проблемой и были вынуждены разбираться что как это поправить и даже использовать Shim файлы от старой версии чтобы загрузить свою систему.
Но что же такое Secure Boot и зачем нужны Shim файлы? В этой статье мы рассмотрим что такое Secure Boot простыми словами, а также как эта функция влияет на Linux и что делать если у вас возникли с ней проблемы.
Содержание статьи
- Что такое Secure Boot?
- Как работает Secure Boot?
- Что такое Shim файлы
- Почему Secure Boot так важен?
- Когда вам следует отключить Secure Boot?
- Какие дистрибутивы поддерживают Secure Boot?
- Как отключить Secure Boot?
- Выводы
Что такое Secure Boot?
Представьте что ваш компьютер - это замок с сильным стражем у ворот, который проверяет документы у каждого кто пытается войти. Secure Boot играет роль этого стража, убеждаясь что только безопасные, проверенные программы могут быть запущены во время ранних этапов инициализации системы.
Стандарт безопасности Secure Boot был разработан для того чтобы защитить ваш компьютер от вредоносного программного обеспечения, которое может запускаться при старте и делать всё что ему необходимо ещё даже до того как операционная система полностью загрузилась.
Это часть того, что называется Unified Extensible Firmware Interface (UEFI), технологии, которая заменила BIOS. UEFI это современный способ запуска компьютера и проверки что всё корректно работает. Когда Secure Boot вклюён, ваш компьютер будет загружать только программное обеспечение, у которого есть специальная подпись. Если какая либо програма без подписи попытается загрузится, то она будет остановлена.
Как работает Secure Boot?
Secure Boot использует цепочку доверия состоящую из разных типов криптографических ключей для проверки каждого этапа загрузки. Вот их упрощенное описание:
- Platform Key (PK) - это мастер ключ, обычно хранится у производителя устройства (Dell, HP и т д).
- Key Exchange Key (KEK) - этот ключ подтверждает можно ли доверять другим ключам, выступая в роли моста между платформой и загрузчиками программ.
- Allowed Database (DB) - содержит список разрешенных подписей для программ, которые можно запускать.
- Forbidden Database (DBX) - содержит список подписей для программ, которые известны как не безопасные. Если что-то из этого списка попытается запуститься, Secure Boot его заблокирует.
Во время загрузки Secure Boot проверяет каждую программу, которая запускается на соответствие ключам и базе данных. Только программы, подписанные корректными ключами будут запущены.
Изображение от Red Hat.
Что такое Shim файлы
Теперь давайте представим, что вы пытаетесь запустить Linux на компьютере с включенным Secure Boot. У дистрибутивов Linux не всегда есть те же разрешенные подписи что и у Windows, поэтому здесь в дело входят Shim файлы.
Shim (прокладка) это небольшая программа, которая действует как переводчик между Secure Boot и операционной системой Linux. Сам Shim файл подписан с помощью ключа, который Secure Boot распознает (обычно это ключ от Microsoft), поэтому он может запускаться.
Потом Shim проверяет подпись загрузчика Linux, например GRUB, и если всё хорошо, то передает ему контроль. Этот процесс создает цепочку доверия от Secure Boot к Linux, таким образом операционная система может быть безопасно запущена на компьютерах с включённым Secure Boot. Это также работает для BSD и других не Windows систем.
Почему Secure Boot так важен?
Технология Secure Boot очень важна, поскольку она позволят защититься от самых опасных видов вирусов, таких как буткиты и руткиты. Это такие вредоносные программы, которые пытаются спрятаться в процессе загрузки, выполняясь ещё до того как запуститься сама ОС. Из-за чего их может быть очень сложно выявить и ещё сложнее удалить.
Если Secure Boot включён, то:
- Руткиты и буткиты будут заблокированы на этапе проверки подписи.
- Другие не авторизованные программы не будут влиять на процесс загрузки.
- Пользователи будут предупреждены прежде чем потенциальные сложности превратятся в большие проблемы.
Когда вам следует отключить Secure Boot?
Технология Secure Boot полезна для повышения безопасности системы, но иногда от неё могут быть проблемы:
- Установка не верифицированных систем. Некоторые операционные системы и некоторые дистрибутивы Linux могут не иметь необходимых подписей для того чтобы пройти проверку Secure Boot. Если ваша операционная система не будет распознана Secure Boot, она не загрузится.
- Использование сторонних драйверов или загрузчиков. Некоторые драйвера или загрузчики могут быть не подписаны, что повлечет за собой проблемы совместимости.
- Расширенные настройки. Для опытных пользователей, которые хотят настраивать свою систему, ограничения Secure Boot могут стать проблемой. Отключение Secure Boot дает больше гибкости для окружений разработки или домашних экспериментов.
Какие дистрибутивы поддерживают Secure Boot?
Несмотря на то что технология Secure Boot создает проблемы совместимости для Linux, многие дистрибутивы вполне к ней адаптировались. Эти дистрибутивы содержат подписанные загрузчики и бинарные файлы-прокладки, которые позволяет им запускаться на системах с включённым Secure Boot.
Большинство популярных дистрибутивов поддерживают Secure Boot. Сюда входят:
- Ubuntu
- Fedora
- OpenSUSE/SUSE
- Zorin
- Linux Mint
- Debian
- Red Hat
И это ещё не полный список. Для того чтобы узнать поддерживает Secure Boot нужный вам дистрибутив, проверьте его официальный сайт. Поскольку не все дистрибутвы с совместимы, перед установкой не помешает проверить это. Если ваш дистрибутив не поддерживает Secure Boot вы все ещё можете отключить эту функцию в настройках UEFI или вручную добавить его загрузчик в список разрешённых.
Как отключить Secure Boot?
Если вы решите отключить Secure Boot, это довольно просто сделать:
- Сначала перезагрузите свой компьютер и войдите в интерфейс настройки BIOS/UEFI. Для этого обычно надо нажать несколько раз клавишу F2, F10 или Del во время заставки UEFI, перед загрузкой системы.
- Найдите опцию Secure Boot. Обычно она находится в разделе Boot или Security.
- Отключите Secure Boot. Установите значение опции в Disabled. Затем сохраните изменения и выйдите из настроек UEFI.
Выводы
Мнения про Secure Boot разнятся и на то есть причины. Не смотря на то, что технология разработана чтобы улучшить безопасность, она накладывает ограничения на пользователей Linux. Особенно тех, кто пользуется пропиетарными драйверами или не популярными дистрибутивами.
Необходимость использовать подписанные в Microsoft Shim файлы понимает вопрос о зависимости от определенного производителя. К тому же если вам нужно использовать проприетарные драйвера для видео карты, то отключение Secure Boot практически необходимость, потому что иначе проприетарные драйвера могут не установиться. Это компромис, на который приходится идти, но так быть не должно.
Во всяком случае теперь вы знаете что такое Secure Boot и как эта технология влияет на загрузку вашей системы. А что вы думаете обо всём этом? Напишите в комментариях!