Случайно превеждам тази статия, която той е написал Джеймс Ботъмли, технически съветник на Linux Foundation, който започна да сглобява предварително зареждащо устройство, за да можете да стартирате Linux.
Както обясних в предишния си пост, ние разполагаме с кода за предварително зареждане на Linux Foundation. Имаше обаче забавяне докато имахме достъп до системата за подписване на Microsoft.
Първото нещо, което трябва да направите, е плати $ 99 на Verisign (сега Symantec) и има ключ, проверен от Verisign. Направихме го за Linux Foundation и всичко, което искат, е да се обадят в централата, за да проверят. Ключът се връща в URL, който е инсталиран във вашия браузър, но за извличането му и създаването на обикновен PEM сертификат и ключ могат да се използват стандартни Linux SSL инструменти. Това няма нищо общо с подписването на UEFI, но се използва за валидиране на системата sysdev Microsoft, че сте това, което казвате, че сте. Преди да можете да създадете акаунт в sysdev, трябва да го тествате подписване на изпълним файл, който ви дават и качване. Те поставят строги изисквания да го подпишете на конкретна платформа на Windows, но sbsign поне е работил и бинго нашият акаунт е създаден.
След като акаунтът е създаден, все още не можете да качвате UEFI двоични файлове за подписване без първо подпишете договор на хартиен носител. Сделките са много обременителни, включително много изключени лицензи (включително всички GPL за драйвери, но не и за буутлоудъри). Най-обременяващата част е, че споразуменията изглежда пристигат отвъд UEFI обектите, които подписвате. Адвокатите на Linux Foundation стигнаха до заключението, че това е най-вече безвредно за LF, защото не продаваме продукти, но може да бъде отвратително за други компании. Според Матю Гарет, Microsoft е готова да договори специални сделки с дистрибуции, за да смекчи някои от тези проблеми.
След като споразуменията бъдат подписани, истинските техническо забавление. Не можете просто да качите UEFI двоичен файл и да го подпишете. Първо трябва увийте го в .cab файл. За щастие има проект с отворен код, който може да създава кабинетни файлове, наречени lcab. Тогава трябва подпишете .cab файла с ключа Verisign. Отново има друг проект с отворен код, който може да направи това: osslsigncode. За всеки, който се нуждае от тези инструменти, те са достъпни в моето хранилище UEFI на OpenSuse Build Service. Последният проблем е, че качването на файла изисква сребърна светлина. За съжаление, лунната светлина изглежда не работи и дори при преглед на версия 4, полето за качване става празно, така че време е да използвате windows 7 под kvm (базирана на ядро виртуална машина). Когато стигнете до тази част, вие също трябва да удостоверите, че двоичното „трябва да бъде подписано, не трябва да бъдат лицензирани съгласно GPLv3 или подобни лицензи с отворен код”. Предполагам, че е от страх от разкриване на ключове, но изобщо не е ясно (същото с "подобни лицензи с отворен код").
След като качването приключи, файлът на шкафа спира през седем етапа. За съжаление, първото изпитателно изкачване остана заключен в етап 6 (подписът на файловете). След 6 дни изпратих имейл за поддръжка до Microsoft с питане какво се случва. Отговорът: „Кодът за грешка, хвърлен от процеса на подписване, е такъв вашият файл не е валидно приложение за Win32. Валидно ли е приложение за Win32? ”. Отговор: очевидно не, това е валиден 64-битов UEFI двоичен файл. Нямаше повече отговори...
Опитах отново. Този път получих имейл за изтегляне на подписания файл и таблото го казва подписаният не успя. Изтеглих го и проверих. Бинарният файл работи на платформата secureboot и е подписан с ключа
subject = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / OU = MOPR / CN = Microsoft Windows UEFI Driver Publisher
издател = / C = САЩ / ST = Вашингтон / L = Редмънд / O = Microsoft Corporation / CN = Microsoft Corporation UEFI CA 2011Попитах поддръжката защо процесът показва неуспех, но имах валидно изтегляне и след поредица от имейли те отговориха „не използвайте този файл, който беше неправилно подписан. Ще се върна при вас. " Все още не съм сигурен какъв е проблемът, но ако погледнете Темата на ключа за подписване, в ключа няма нищо, което да се посочи на Linux Foundation, следователно подозирам, че проблемът е, че двоичният файл е подписан с общ ключ на Microsoft, а не със специфичен (и отменяем) ключ, свързан с Linux Foundation.
Това обаче е състоянието: Ще продължим да чакаме Microsoft да даде на Linux Foundation подписан и проверен предварително зареждащ файл. Когато това се случи, то ще бъде качено на сайта на Linux Foundation за ползване от всички.
Fuente: http://blog.hansenpartnership.com/adventures-in-microsoft-uefi-signing/
Направете своите заключения, но това ще отнеме време.