Бывший сотрудник компании Red Hat Мэтью Гарретт выпустил предзагрузчик Shim с сертификатом от Microsoft и опубликовал инструкцию, как использовать его для загрузки любого кода через Secure Boot. Нужно заметить, что за несколько часов до публикации универсального предзагрузчика Мэтью Гарретт уволился из компании Red Hat, так что это официально его личная разработка, а Red Hat формально не имеет к ней отношения.
Linux-сообщество больше года не может решить проблему, как пользователям устанавливать дистрибутивы Linux в режиме Secure Boot UEFI (Unified Extensible Firmware Interface) с проверкой цифровой подписи. Этот механизм загрузки используется на всех компьютерах с операционной системой Windows 8. Разработчики крупных дистрибутивов Fedora и Ubuntu получили собственные сертификаты Microsoft стоимостью $99, но что делать разработчикам небольших дистрибутивов или пользователям, которые компилируют собственный дистрибутив?
В октябре 2012 года организация Linux Foundation выпустила универсальный мини-предзагрузчик Loader.c, но его использование затруднено из-за блокировки со стороны сервиса выдачи сертификатов Microsoft. Проще говоря, Microsoft отказалась выдавать ключ.
Мэтью Гарретт элегантно решил эту проблему. Он получил ключ от Microsoft для программы MokManager, подписал им предзагрузчик Shim и удалил закрытый ключ. Он также сделал механизм генерации сертификата в системе пользователя на основе любого ключа — и передачу управления от Shim к подписанной программе. Таким образом, пользователь сам выбирает, каким ключом генерировать сертификат, сам генерирует сертификат для произвольного дистрибутива Linux/FreeBSD/проч. и ему не нужно иметь дела с Microsoft. Подобное ухищрение, однако, требует от пользователя совершить некую последовательность действий. Пользователь самостоятельно генерирует два ключа — закрытый и публичный, первым из которых требуется подписать штатный загрузчик, а вторым — установочный носитель, с которого будет инсталлироваться дистрибутив. Предзагрузчик осуществит загрузку программы, подписанной любым закрытым ключом, если пользователь вручную добавит этот ключ в хранилище во время загрузки Shim. Ключи можно распространять сразу вместе с дистрибутивами для удобства пользователя.
Конечно, Microsoft в будущем может внести MokManager в чёрный список и распространить его через Windows Update, после чего система с предзагрузчиком Shim не сможет пройти проверку цифровой подписи с сертификатом MokManager. Но для этого нужно использовать Windows Update, что в Linux-системах проблематично.
С другой стороны, предзагрузчик Shim всегда можно использовать с новым сертификатом. Например, разработчики дистрибутива SUSE намерены сделать именно так.