Один из разработчиков ядра Linux Мэтью Гарретт, покинувший недавно компанию Red Hat, анонсировал в своем блоге создание первого общедоступного загрузчика Shim, позволяющего запускать дистрибутивы Linux на компьютерах с Windows 8 и прошивкой UEFI. Этот загрузчик он разместил на общедоступном ресурсе в Интернете.

Напомним, что одна из проблем, которая чрезвычайно взволновала Open Source-сообщество, связана с появлением Windows 8. Новая стратегия Microsoft требовала от OEM-производителей компьютеров с прошивкой UEFI (Unified Extensible Firmware Interface), желающих получить сертификат совместимости с Windows 8, в обязательном порядке активировать в прошивке опцию безопасной загрузки Secure Boot. Перед загрузкой ОС блокиратор UEFI проверяет наличие сертификата безопасности, подписанного Microsoft и ОБНАРУЖИВ ЕГО, разрешает загрузку.

И все бы ничего, если бы не деньги, через которые свободное ПО становится как бы не совсем свободным: стоимость такого “стратегического” противостояния вирусам оценена “всего” в 99 долл., поступающих в бюджет софтверного гиганта за сертификацию каждого дистрибутива со сторонней ОС с выдачей официального ключа Microsoft. Здесь нужно учесть еще и время, которое тратится на бюрократические действия, связанные с процессом сертификации.

Покупатель уже сегодня сталкивается с неожиданностью, когда на приобретенный в магазине компьютер с предустановленной Windows 8 и блокиратором UEFI невозможно просто так инсталлировать иную ОС (заметим, что это касается не только Linux, но и XP и любых других) без позволения (путем сертификации и выдачи ключа) Microsoft. Правда, из категории неразрешенных выпадают загрузчики Linux-дистрибутивов Fedora и Ubuntu, а также SUSE, которые уже обзавелись собственными ключами, заверенными Microsoft.

Здесь возникает принципиальная проблема, связанная с необходимостью сертификации СПО при использовании новых компьютеров с блокиратором UEFI в госструктурах страны. При сборке собственного дистрибутива или внесении любых изменений (в том числе таких, как исправление ошибок, расширение функционала и пр.) в ОС с открытым кодом требуется перекомпиляция, а следовательно для загрузки на компьютере нужна и сертификация для получения ключа Microsoft. Заказчика СПО любой госструктуры такая “опека” вряд ли может устроить и в материальном аспекте (нужно заплатить 99 долл. за каждый сертификат), и тем более в отношении безопасности, поскольку здесь возникает прямая зависимость от иностранного контролера.

Решение, предложенное Мэтью Гарреттом, снимает часть проблем: загрузчик Shim заверен официальным ключом Microsoft и доступен для свободного использования в любых дистрибутивах Linux, авторы которых не могут позволить себе или по каким-либо причинам не хотят проходить сертификацию в Microsoft.

Сообщается, что загрузчик Shim реализован аналогично Secure Boot-загрузчикам Fedora и SUSE. Он запускается первым, предоставляя UEFI необходимый ключ, и после сверки заверенного ключа передает управление загрузчику дистрибутива. Последний, в свою очередь, должен быть заверен личным ключом, сгенерированным авторами сборки. При отсутствии личного ключа или ключа в Shim загрузка прерывается.

Для использования предложенного загрузчика пользователю Linux-дистрибутива необходимо разместить его в загрузочном каталоге в UEFI вместе со штатным загрузчиком дистрибутива. Затем нужно сгенерировать два ключа: закрытый, которым заверяется штатный загрузчик, и публичный — для подписи установочного носителя, с которого стартует ОС дистрибутива. При загрузке с установочного носителя пользователю предлагается меню ключей, в котором выбирается публичный ключ. При выборе правильного ключа последует продолжение загрузки. Такая реализация укладывается в концепцию UEFI Secure Boot, позволяя запускать сторонние ОС и предотвращая (в случае заражения) загрузку руткитов и буткитов.

Поскольку Shim передает управление загрузчику, подписанному авторским ключом, разработчики дистрибутивов теоретически могут создать неограниченное число ключей для верификации различных компонентов. Так, автор может заверить не только загрузчик, но и ядро Linux и загружаемые модули.

Однако, считает Мэтью Гарретт, столь серьезные меры безопасности не обязательны, так как конечный пользователь уже заявляет о своем доверии выбором публичного ключа для штатного загрузчика.

Выпуск загрузчика Гарретта опередил аналогичную инициативу фонда Linux Foundation, о которой объявил руководитель проекта Джеймс Боттомли. В настоящее время фонд занимается созданием загрузчика UEFI Secure Boot на базе efitools, позволяющего передавать управление неподписанному штатному загрузчику дистрибутива. Код загрузчика UEFI опубликован на открытом ресурсе, однако окончание проекта приостановлено на этапе получения ключа у Microsoft. “Мы ожидаем, что Microsoft вернет нам подписанный загрузчик”, — сказал Боттомли.

Однако проблема, связанная с сертификацией, может совершенно неожиданно еще более упроститься, причем без каких бы то ни было усилий со стороны компьютерных специалистов: по некоторым (впрочем, пока непроверенным) сообщениям пользователей, реальный контроль сертификатов через UEFI на многих компьютерах, поступающих из Китая, вообще отсутствует. Видимо, китайские производители компьютеров (а значительная масса этой техники, как известно, производится в Поднебесной) посчитали чересчур сложным выполнять еще и расчет ключей в UEFI для контроля сертификатов безопасности. Поэтому процедуру контроля китайские умельцы максимально упростили: как утверждается, на большинстве компьютеров, оснащенных UEFI, для загрузки ОС достаточно названия Microsoft Windows. В противном случае загрузка ОС приостанавливается.