Организация Linux Foundation выпустила решение для поддержки UEFI Secure Boot в любых дистрибутивах
Джеймс Боттомли (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 хэши допустимых к загрузке компонентов.
© OpenNet