Джеймс Боттомли (James Bottomley), известный разработчик ядра Linux,
входящий в координационный технический комитет Linux Foundation, объявил
о доступности для свободного использования нового универсального
загрузчика, подписанного ключом Microsoft и позволяющего организовать
загрузку любых дистрибутивов Linux в режиме UEFI Secure Boot на
системах, изначально поставляемых с Windows 8.
Загрузчик рассчитан на выполнение первой фазы загрузки с
последующей передачей управления штатному загрузчику дистрибутива с
проверкой его корректности по контрольной сумме, сохраняемой в процессе
установки дистрибутива в специальной служебной области UEFI. Несмотря на
то, что такие дистрибутивы, как Fedora и Ubuntu уже подготовили свои
решения для загрузки на системах UEFI Secure Boot, небольшие проекты или
дистрибутивы управляемые сообществом лишены возможности прохождения
длительного процесса заверения загрузчика в сервисе Microsoft
(организация Linux Foundation потратила
более трёх месяцев на урегулирование разных формальностей и попутно
возникающих проблем). Представленный Linux Foundation загрузчик может
быть без ограничений использован любыми дистрибутивами у которых нет
ресурсов или желания заверения собственного решения ключом Microsoft.
Напомним, что для сертификации оборудования на совместимость с
Windows 8, компания Microsoft требует обязательной активации по
умолчанию режима безопасной загрузки UEFI, блокирующего загрузку систем,
не имеющих заверенной цифровой подписи. Вариант поставки собственного
проверочного ключа связан с большими организационными трудностями,
потребовавшими бы согласования с каждым OEM-производителем вопроса
включения проверочного ключа в прошивку, что неизбежно отразилось бы в
появлении оборудования, которое не поддерживает Linux. Возможность
заверения только первичного загрузчика, без формирования подписей для
ядра и драйверов, укладывается в требования спецификации UEFI Secure
Boot, которая нацелена главным образом на защиту начальной стадии
загрузки, до запуска ядра.
Код
загрузчика и связанного с ним инструментария поставляется под лицензией
GPL. Для загрузки доступно два заверенных ключом Microsoft
EFI-компонента PreLoader.efi и HashTool.efi. Также создан
готовый образ для быстрой организации загрузки систем с
USB-накопителей. Файл KeyTool.efi с реализацией инструмента для
управления ключами был отклонён компанией Microsoft из-за выявления
возможности обхода ограничений безопасности UEFI на одной из
UEFI-платформ, содержащей ошибку в своей реализации. До того как
проблема будет устранена KeyTool.efi можно использовать с его ручной
верификацией по хешу.
В отличие от ранее опубликованного
загрузчика Shim, созданного Мэтью Гарретом (Matthew Garrett),
заверенного ключом Microsoft и также рассчитанного на загрузку сторонних
дистрибутивов, решение Linux Foundation выполнено в виде
UEFI-расширения и имеет более универсальный характер. В частности, если
Shim может передавать управление таким загрузчикам, как GRUB, то
продукт Linux Foundation может быть использован совместно с более
сложными загрузчиками, такими как Gummiboot.
В отличие от GRUB, Gummiboot непосредственно не запускает Linux, а
использует для запуска ОС механизмы UEFI (силами UEFI производится
динамическое определение наличия пригодных для загрузки систем и
передача им управления через UEFI вызов BootServices->LoadImage()).
При активном режиме UEFI Secure Boot при таком подходе используется
штатный механизм UEFI для проверки валидности загружаемых через
BootServices->LoadImage() компонентов, т.е. ядро должно иметь
валидную цифровую подпись (например, должно быть заверено ключом
Microsoft). В связи с этим, системы с загрузчиком Gummiboot не могут
работать с загрузчиком Shim.
Суть работы загрузчика Linux Foundation сводится к перехвату
функций UEFI по проверке валидности образа и предоставление собственного
обработчика, который для проверки неизменности ядра и Gummiboot
задействует подтверждённые пользователем хэши, вместо верификации по
проверочным ключам. Для реализации данной идеи в загрузчике были
использованы методы,
воплощённые инженерами проекта SUSE в загрузчике Shim 0.2 и позволяющие
сохранять параметры заслуживающих доверия компонентов (проверочные
хэши) в базе "MOKs" (Machine Owner Keys). Таким образом, вместо
формирования официальных цифровых подписей разработчикам дистрибутивов
теперь достаточно создать и сохранить в MOK хэши допустимых к загрузке
компонентов.
|