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