Организация 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 хэши допустимых к загрузке компонентов.

Источник »
Главная ссылка к новости »

Был, был и весь вышел...

2

Обзор отличий UEFI Secure Boot загрузчика Shim и решения от Linux Foundation

Мэтью Гаррет (Matthew Garrett), один из разработчиков ядра Linux, последнее время занимающийся обеспечением загрузки Linux на системах с UEFI, опубликовал сводный список отличий между развиваемым им загрузчиком Shim и решением для загрузки произвольных дистрибутивов Linux на системах с  UEFI Secure Boot, представленным на днях организацией Linux Foundation. Оба загрузчика нацелены на решение единой задачи, но реализуют её разными методами -  Shim выступает как надстройка, дублирующая функции UEFI для проверки и загрузки компонентов, а решение Linux Foundation реализует собственные обработчики для осуществляющих проверку компонентов UEFI.

Загрузчик Shim использует для проверки загружаемых компонентов систему верификации по ключам, т.е. требует создания инфраструктуры для формирования цифровых подписей, но позволяет обеспечить более полный цикл верификации всех компонентов загружаемых систем. В то время как загрузчик Linux Foundation оперирует криптографическими хэшами, что существенно проще для внедрения в небольших дистрибутивах и позволяет сохранить неизменными процессы разработки, но требует повторной ручной загрузки хэшей при каждом обновлении загрузчика или ядра (если ядро загружается в режиме верификации).

В случае Shim проверочный ключ дистрибутива требуется загрузить только один раз и он будет действовать на все  компоненты, подписанные при помощи связанного с ним закрытого ключа. В качестве достоинств загрузчика Linux Foundation отмечается более удобный интерфейс управления загрузкой ключей/хэшей и большая универсальность, позволяющая использовать его для систем, использующих UEFI-загрузчики, подобные Gummiboot.

В будущем, создатели упомянутых решений заявили о готовности объединить свои усилия и пойти на слияние проектов. В частности, Мэтью Гаррет планирует адаптировать для работы с Shim интерфейс конфигурации и код верификации по хэшам, созданный Linux Foundation. В итоге будет подготовлен оптимальный для различных областей применения единый загрузчик.

Источник »
Главная ссылка к новости »

Был, был и весь вышел...

3

И все же, несмотря на то, что загрузчик будет, ситуация с SecureBoot мне очень не нравится.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

4

Итак, путь изначально выбранный Fedora оказался верным ab

5

Vascom пишет:

Итак, путь изначально выбранный Fedora оказался верным ab

Что насчет MariaDB?

На мясокомбинате я работаю свиньёй.

6

Линус Торвальдс раскритиковал действия Red Hat по продвижению поддержки UEFI Secure Boot с ключами Microsoft

В списке рассылки разработчиков ядра Linux разгорелась бурная дискуссия о целесообразности предложения инженеров компании Red Hat по включению в состав ядра механизма динамической загрузки X.509 сертификатов из исполняемых файлов в формате PE, для их использования c целью верификации загружаемых модулей. Суть идеи в том, что сервис компании Microsoft, который осуществляет формирование цифровых подписей для загружаемых в режиме UEFI Secure Boot компонентов, поддерживает только интеграцию сертификатов в исполняемые файлы PE, поэтому разработчики Red Hat предложили включить в ядро функции загрузки ключей из PE-файлов, чтобы обеспечить в режиме UEFI Secure Boot возможность загрузки проприетарных драйверов и компонентов, заверенных ключом Microsoft.

Попытка продвинуть в ядро подобный код вызвала поток негодования со стороны Линуса Торвальдса, который в присущей ему жесткой форме выразил абсурдность интеграции средств для управления  сертификатами X.509 и парсинга PE-файлов непосредственно в ядро, а также нелепость подстраивания ядра обходными путями под особенности стороннего сервиса Microsoft, вместо того чтобы в сервисе Microsoft обеспечить создание подписей для модулей ядра Linux.

По мнению Торвальдса, если компании Red Hat необходимо обеспечить загрузку подписанных ключом Microsoft компонентов, почему бы не выделить отдельную машину, на которой будет выполняться разбор PE-файлов, проверка сигнатур и заверения результатов ключом  Red Hat, после чего использовать уже присутствующие в ядре средства поддержки сертификатов X.509. Если какая-то компания намерена поставлять верифицируемый бинарный модуль для Fedora или RHEL, то  для создания цифровой подписи должен использоваться ключ Red Hat, без попыток создания внешних зависимостей от ключей Microsoft.

Источник »
Главная ссылка к новости »

Был, был и весь вышел...

7

И я с Линусом согласен.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

Оборзели в корягу!

9

Мэтью Гаррет (Matthew Garrett), один из разработчиков ядра Linux, последнее время занимающийся обеспечением загрузки Linux на системах с UEFI, опубликовал результаты экспериментов с ноутбуками Samsung, на которых проявляется проблема с UEFI-прошивкой, приводящая к дальнейшей неработоспособности устройства. Проблема наблюдается на моделях ноутбуков Samsung 300E5C, NP700Z5C, NP700Z7C и 530U3C при попытке загрузки Linux с использованием UEFI или при выполнении некоторых специфичных операций с UEFI в других ОС, в том числе в Windows 8.

Было выяснено, что проблема проявляется только в случаях, когда память для переменных UEFI заполнена более чем наполовину. В частности, причины проблем кроются в ошибке сборщика мусора UEFI. При удалении UEFI-переменной, она не очищается сразу, а лишь помечается удалённой. Чистка же производится в момент инициализации во время загрузки, через запуск реализованного в прошивке сборщика мусора. Если свободного места недостаточно, сборщик мусора зависает, что приводит к невозможности в дальнейшем загрузить систему без очистки Flash-памяти в сервисном центре. Когда свободной памяти UEFI достаточно (более 50%), устройства сохраняют нормальную работоспособность. Используя данную особенность, Мэтью подготовил патч для ядра Linux, недопускающий заполнения UEFI-памяти более чем наполовину.

Источник »
Главная ссылка к новости »

Был, был и весь вышел...