The Adventures in Microsoft's UEFI Signature

Přeložil jsem tento článek, který napsal James Bottomley, technický poradce Linux Foundation, kteří začali dávat dohromady pre-bootloader, takže můžete spustit Linux.

Jak jsem vysvětlil ve svém předchozím příspěvku, máme zaveden kód pro Linux boot pre-bootloader. Nicméně, tam byl zpoždění zatímco jsme měli přístup k podpisovému systému Microsoftu.

První věc, kterou musíte udělat, je zaplatit 99 $ společnosti Verisign (nyní Symantec) a nechte klíč ověřit společností Verisign. Udělali jsme to pro Linux Foundation a vše, co chtějí udělat, je zavolat ústředí a ověřit si to. Klíč se vrací v adrese URL, která je nainstalována ve vašem prohlížeči, ale k jeho extrakci a vytvoření obvyklého certifikátu a klíče PEM lze použít standardní nástroje Linux SSL. Nemá to nic společného s podpisem UEFI, ale slouží k ověření systému sysdev Microsoft, že jste, kým říkáte, že jste. Před vytvořením účtu sysdev je třeba jej otestovat podpis spustitelného souboru, který vám dají, a jeho nahrání. Dělají přísné požadavky, abyste jej podepsali na konkrétní platformě Windows, ale sbsign alespoň fungoval a bingo byl vytvořen náš účet.

Jakmile je účet vytvořen, stále nemůžete nahrát binární soubory UEFI k podpisu bez předchozího podepsat papírovou smlouvu. Dohody jsou velmi obtížné, včetně mnoha vyloučených licencí (včetně všech licencí GPL pro ovladače, nikoli však pro zavaděče). Nejtěžší na tom je, že dohody zřejmě dorazí mimo objekty UEFI, které podepisujete. Právníci pro Linux Foundation došli k závěru, že je to pro LF většinou neškodné, protože neprodáváme produkty, ale může to být nechutné vůči jiným společnostem. Podle Matthewa Garretta je Microsoft ochoten vyjednat speciální dohody s distribucemi, aby zmírnil některé z těchto problémů.

Jakmile jsou dohody podepsány, skutečné technická zábava. Nemůžete jen nahrát binární soubor UEFI a nechat ho podepsat. Nejprve musíte zabalit do souboru .cab. Naštěstí existuje projekt s otevřeným zdrojovým kódem, který umožňuje vytvářet soubory kabinetu zvané lcab. Pak musíte podepište soubor .cab klíčem Verisign. Opět existuje další open source projekt, který to dokáže: osslsigncode. Pro každého, kdo tyto nástroje potřebuje, jsou k dispozici v mém repozitáři openSuse Build Service UEFI. Posledním problémem je nahrání souboru vyžaduje stříbrné světlo. Zdá se, že měsíční svit bohužel nefunguje a dokonce s náhledem verze 4 je pole pro nahrávání prázdné, takže je čas použít Windows 7 pod kvm (virtuální stroj založený na jádře). Když se dostanete do této části, musíte také potvrdit, že binární „být podepsán, nesmí být licencován na základě GPLv3 nebo podobných open source licencí“. Předpokládám, že je to ze strachu ze zveřejnění klíče, ale není to vůbec jasné (totéž s „podobnými licencemi open source“).

Po dokončení nahrávání se soubor kabinetu zastaví v sedmi fázích. Bohužel první zkušební stoupání zůstalo uzamčen ve fázi 6 (podpis souborů). Po 6 dnech jsem společnosti Microsoft poslal e-mail podpory s dotazem, co se děje. Odpověď: „Chybový kód vyvolaný podpisovým procesem je takový váš soubor není platná aplikace Win32. Je to platná aplikace Win32? “. Odpověď: zjevně ne, je to platný 64bitový binární soubor UEFI. Už nebyly žádné odpovědi...

Zkusil jsem to znovu. Tentokrát jsem obdržel e-mail ke stažení podepsaného souboru a rada to říká podepsaný selhal. Stáhl jsem to a ověřil. Binární soubor funguje na platformě secureboot a je podepsán klíčem

subject = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / OU = MOPR / CN = Microsoft Windows UEFI Driver Publisher
emitent = / C = USA / ST = Washington / L = Redmond / O = Microsoft Corporation / CN = Microsoft Corporation UEFI CA 2011

Zeptal jsem se podpory, proč proces indikoval selhání, ale měl jsem platné stažení a po návalu e-mailů odpověděli „nepoužívejte ten soubor, který byl špatně podepsáno. Vrátím se k tobě. " Stále si nejsem jistý, v čem je problém, ale pokud se podíváte na předmět podpisového klíče, v klíči není nic, co by naznačovalo Linux Foundation, proto mám podezření, že problém je v tom, že binární soubor je podepsán spíše obecným klíčem Microsoftu, než konkrétním (a odvolatelným) klíčem vázaným na Linux Foundation.

Toto je však stav: Budeme i nadále čekat, až Microsoft předá Linux Foundation podepsaný a ověřený pre-bootloader. Když k tomu dojde, nahraje se na web Linux Foundation, aby ho mohli všichni použít.

zdroj: http://blog.hansenpartnership.com/adventures-in-microsoft-uefi-signing/

Učiňte závěry, ale bude to chvíli trvat.


Přidat jako preferovaný zdroj v Googlu