Dogodivščine v Microsoftovem podpisu UEFI

Slučajno prevedem ta članek, ki ga je napisal James Bottomley, tehnični svetovalec Linux Foundation, ki je začel sestavljati pred zagonom, tako da lahko zaženete Linux.

Kot sem razložil v prejšnjem prispevku, imamo na voljo kodo za prednaložnik Linux Foundation. Vendar pa je obstajal zamuda medtem ko smo imeli dostop do Microsoftovega sistema podpisovanja.

Najprej je treba storiti plačajte 99 USD Verisign-u (zdaj Symantec) in naj Verisign preveri ključ. To smo storili za Linux Foundation in vse, kar želijo, je poklicati sedež, da preveri. Ključ se vrne v URL-ju, ki je nameščen v vašem brskalniku, vendar ga lahko s standardnimi orodji Linux SSL izvlečete in ustvarite običajno potrdilo in ključ PEM. To nima nič skupnega s podpisovanjem UEFI, ampak se uporablja za preverjanje veljavnosti sistema sysdev Microsoft, da ste takšni, za katere pravite, da ste. Preden lahko ustvarite račun sysdev, ga morate preizkusiti podpisu izvršljive datoteke, ki vam jo dajo, in jo naložite. Strogo zahtevajo, da ga podpišete na določeni platformi Windows, vendar sbsign vsaj deluje in bingo je bil ustvarjen naš račun.

Ko je račun ustvarjen, še vedno ne morete naložiti binarnih datotek UEFI za podpisovanje brez predhodnega podpisati papirno pogodbo. Sporazumi so zelo zapleteni, vključno z veliko izključenimi licencami (vključno z vsemi licencami GPL za voznike, ne pa tudi za zagonske nalagalnike). Najtežji del je, da se zdi, da sporazumi prispejo zunaj UEFI predmetov, ki jih podpišete. Odvetniki fundacije Linux so ugotovili, da je za LF večinoma neškodljiv, ker izdelkov ne prodajamo, drugim podjetjem pa je lahko zoprn. Po besedah ​​Matthewa Garretta se je Microsoft pripravljen pogajati o posebnih poslih z distribucijami, da bi ublažil nekatere od teh težav.

Ko so sporazumi podpisani, resnično tehnična zabava. Ne morete samo naložiti binarnega datoteke UEFI in ga podpisati. Najprej moraš zavijte v datoteko .cab. Na srečo obstaja odprtokodni projekt, ki lahko ustvari datoteke v omari, imenovane lcab. Potem moraš datoteko .cab podpišite s ključem Verisign. Spet obstaja še en odprtokodni projekt, ki to lahko stori: osslsigncode. Za vsakogar, ki ta orodja potrebuje, so na voljo v mojem repozitoriju OpenSuse Build Service UEFI. Končna težava je nalaganje datoteke zahteva srebrno svetlobo. Na žalost mesečina ne deluje in tudi s predogledom različice 4 se polje za nalaganje prazni, zato čas je, da uporabimo Windows 7 pod kvm (navidezni stroj na osnovi jedra). Ko pridete do tega dela, morate tudi potrditi, da je binarno besedilo "za podpis, ne sme biti licenciran pod GPLv3 ali podobnimi odprtokodnimi licencami". Predvidevam, da je to zaradi strahu pred razkritjem ključev, vendar sploh ni jasno (enako pri "podobnih odprtokodnih licencah").

Ko je nalaganje končano, se datoteka v omari ustavi v sedmih fazah. Žal je prvi testni vzpon ostal zaklenjen v 6. stopnji (podpis datotek). Po šestih dneh sem Microsoftu poslal e-poštno sporočilo s podporo z vprašanjem, kaj se dogaja. Odgovor: »Koda napake, ki jo je vrgel postopek podpisa, je ta vaša datoteka ni veljavna aplikacija Win32. Ali je veljavna aplikacija Win32? ". Odgovor: očitno ne, gre za veljaven 64-bitni binarni UEFI. Odgovorov ni bilo več...

Poskusil sem znova. Tokrat sem prejel e-poštno sporočilo za prenos podpisane datoteke in odbor pravi, da podpisano ni uspelo. Prenesel sem ga in preveril. Binarni sistem deluje na platformi secureboot in je podpisan s ključem

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

Prosil sem podporo, zakaj postopek kaže na neuspeh, vendar sem imel veljaven prenos in po naboru e-poštnih sporočil so odgovorili: "Ne uporabljaj te datoteke, ki je bila napačno podpisan. Vrnil se bom k vam. " Še vedno nisem prepričan, v čem je težava, če pa pogledate zadevo ključa za podpis, v ključu ni ničesar, kar bi kazalo na Linux Foundation, zato sumim, da je težava v tem, da je binarni zapis podpisan s splošnim Microsoftovim ključem namesto s posebnim (in preklicljivim) ključem, povezanim z Linux Foundation.

Vendar je to stanje: Še naprej bomo čakali, da bo Microsoft podelil Linux Foundation podpisan in potrjen predzagon. Ko se to zgodi, bo naloženo na spletno mesto Linux Foundation za uporabo.

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

Sklepajte, vendar bo to trajalo nekaj časa.


Dodaj kot prednostni vir v Googlu