Джеймс Боттомли (James Bottomley), известный разработчик ядра Linux, входящий в координационный технический комитет Linux Foundation, рассказал о неожиданных трудностях, возникших при попытке использования сервиса по заверению сторонних загрузчиков ключом Microsoft, позволяющим использовать данные загрузчики на укомплектованных ОС Windows 8 системах с включенным режимом безопасной загрузки UEFI. Напомним, что организация Linux Foundation намерена распространять от своего лица небольшой промежуточный загрузчик, который будет заверен ключом от компании Microsoft и даст любому дистрибутиву возможность работы на системах с активным по умолчанию режимом безопасной загрузки UEFI.
Проблемы начались при попытке заверения готового загрузчика ключом Microsoft, используя специальной запущенный для этого платный сервис, рекламируемый как средство для снятия барьеров по запуску систем от сторонних производителей на оборудовании, укомплектованном операционной системой Windows 8. На деле процесс заверения выходит за рамки проверки соответствия загрузчика техническим требованиям. Перед тем как загрузить UEFI-загрузчик для формирования подписи требуется заключить специальный контракт, который оговаривает множество тонкостей и налагает серию ограничений.
Наиболее серьёзным ограничением является то, что соглашение оговаривает не только особенности использования загрузчика и объектов, участвующих в проверке с использованием режима безопасной загрузки UEFI, но и связанных с ними компонентов. Проанализировав соглашение юристы пришли к выводу, что для Linux Foundation эти требования не принесут вреда, так как огранизация не занимается распространением продуктов, но для других компаний данные требования могут привести к неприятностям. Кроме того, в контракте обозначен список лицензий, распространяемые под которыми приложения не могут быть заверены ключом Microsoft. Среди таких лицензий присутствует и GPLv2, но, к счастью, область запрета распространяется только на драйверы. На загрузчик действует только запрет использования GPLv3 и подобных лицензий.
При попытке загрузки файла было обнаружено, что его нужно загружать в формате подписанного ранее полученным ключом Verisign архива CAB (Microsoft Cabinet). Подобный архив удалось создать при помощи свободной утилиты lcab и подписать программой osslsigncode. После этого при загрузке в сервис обнаружилась необходимость использования браузера с поддержкой плагина Silverlight, который работает только в Windows. На этот раз без Windows обойтись не удалось, так как с плагином Moonlight форма работать отказалась.
В итоге, после преодоления всех предварительных препятствий UEFI-загрузчик был добавлен для проверки, на что сервис выдал ошибку c непонятным номером. После 6 дней разбирательств, служба поддержки ответила, что этот код обозначает то, что файл не является корректным Win32-приложением. В ответ им было заявлено, что это 64-разрядный UEFI-бинарник, после чего ответа не последовало, но повторная загрузка уже привела к ошибке формирования подписи. Тем не менее, несмотря на ошибку, подписанный файл стал доступен для загрузки и при этом работал на платформах с режимом безопасной загрузки. Самое интересное, что судя по параметрам подписи, файл был подписан основным ключом Microsoft и как для продукта Microsoft (в поле получателя было указано Microsoft Corporation, вместо Linux Foundation), без возможности отзыва подписи. На вопрос в службу поддержки, был дан совет не использовать данный файл, так как он подписан неверно.
В настоящий момент процесс формирования подписи всё ещё не завершён, но Linux Foundation не отчаивается и продолжает свои попытки. После того как корректно заверенный UEFI загрузчик будет сформирован, он будет опубликован для общего использования на сайте организации.