Мэтью Гаррет (Matthew Garrett), один из разработчиков ядра Linux, сообщил о публикации для свободного использования минималистичного загрузчика Shim, заверенного ключом Microsoft и пригодного для организации первичной загрузки Linux на системах с активным режимом безопасной загрузки UEFI, сертифицированных на предмет совместимости с Windows 8. Загрузчик основан на наработках проекта SUSE Linux и может быть без ограничений использован любыми дистрибутивами, у которых нет ресурсов или желания прохождения процесса заверения загрузчика в сервисе Microsoft. Логика работы загрузчика Shim сводится к передаче управления основному загрузчику дистрибутива, который для обеспечения процесса безопасной загрузки должен быть заверен ключом, созданным создателем дистрибутива. Если загрузчик дистрибутива не заверен или заверен неизвестным ключом, пользователю будет выведено соответствующее предупреждение и процесс загрузки будет прерван, что послужит защитой от нецелевого использования Shim. В отличие от оригинального загрузчика, подготовленного проектом SUSE, представленная версия не содержит в себе встроенных проверочных ключей для верификации второй фазы загрузки, но поддерживает использование внешних ключей, размещённых на диске (если вызываемый по цепочке загрузчик не удаётся верифицировать вариант Shim от проекта SUSE полностью блокирует загрузку, а вариант Гаррета выводит меню для ручного выбора пути к ключам). Для задействования предлагаемого загрузчика разработчикам дистрибутива достаточно переименовать поставляемый бинарный файл "shim.efi" в "bootx64.efi" и разместить его в каталоге "/EFI/BOOT" на UEFI-разделе, одновременно поместив туда штатный загрузчик дистрибутива, например, скопировать "grubx64.efi" в случае использования GRUB 2. Далее следует сгенерировать ключи и подписать закрытым ключом загрузчик "grubx64.efi". Публичный ключ можно разместить на установочном носителе, после чего указанный носитель сможет быть использован для установки дистрибутива на системах с UEFI Secure Boot. При попытке загрузки подготовленного образа Shim выведет меню, в котором пользователю дистрибутива нужно будет указать путь к сохранённому публичному проверочному ключу. Если выбранный пользователем ключ окажется корректным, процесс загрузки будет продолжен и управление перейдёт к предоставленному дистрибутивом загрузчику. Так как Shim выступает в роли промежуточного звена, обеспечивая передачу управления загрузчику, создание и формирование подписи для которого находится в руках разработчиков дистрибутива, использующие Shim дистрибутивы могут на своё усмотрение выбирать методы дальнейшей верификации системы. Например, остановиться на методе Ubuntu и заверять только загрузчик, или последовать примеру Fedora и снабдить проверочными подписями ядро Linux и загружаемые модули. Следует отметить, что организацией Linux Foundation продвигается похожая инициатива, основанная на использовании загрузчика efitools и отличающаяся предоставлением возможности передачи управления не подписанным загрузчикам, после ручного подтверждения операции. Напомним, что для сертификации оборудования на совместимость с Windows 8, компания Microsoft требует обязательной активации по умолчанию режима безопасной загрузки UEFI, блокирующего загрузку систем, не имеющих заверенной цифровой подписи. Вариант поставки собственного проверочного ключа связан с большими организационными трудностями, потребовавшими бы согласования с каждым OEM-производителем вопроса включения проверочного ключа в прошивку, что неизбежно отразилось бы в появлении оборудования, которое не поддерживает Linux. Возможность заверения только первичного загрузчика, без формирования подписей для ядра и драйверов, укладывается в требования спецификации UEFI Secure Boot, которая нацелена главным образом на защиту начальной стадии загрузки, до запуска ядра.
Источник