Nuotykiai „Microsoft“ UEFI paraše

Išversiu šį straipsnį, kurio autorius yra Jamesas Bottomley , „Linux Foundation“ techninis patarėjas , kuris ėmėsi kurti išankstinio įkrovos tvarkyklę, kad „Linux“ galėtų paleisti sistemą.

Kaip jau aiškinau ankstesniame įraše, turime „Linux Foundation“ išankstinio įkrovos įrankio kodą. Tačiau mums prisijungiant prie „Microsoft“ pasirašymo sistemos buvo uždelsta .

Pirmiausia reikia sumokėti 99 USD mokestį „Verisign“ (dabar „Symantec“) ir gauti „Verisign“ patvirtintą raktą. Mes tai padarėme „Linux Foundation“, ir jie tiesiog nori paskambinti į būstinę, kad jį patikrintų. Raktas grąžinamas per URL, kuris įdiegiamas jūsų naršyklėje, tačiau standartiniai „Linux SSL“ įrankiai gali būti naudojami jam išgauti ir įprastam PEM sertifikatui bei raktui sukurti. Tai neturi nieko bendra su UEFI pasirašymu, tačiau jis naudojamas norint patvirtinti „ Microsoft sysdev“ sistemoje , kad esate tas, kuo sakote esąs. Prieš kurdami „sysdev“ paskyrą, turite ją patikrinti pasirašydami pateiktą vykdomąjį failą ir jį įkeldami . Jie turi griežtus reikalavimus, kad jį pasirašytumėte konkrečioje „Windows“ platformoje, bet „sbsign“ bent jau suveikė ir, štai – mūsų paskyra buvo sukurta.

Sukūrę paskyrą, vis tiek negalėsite įkelti UEFI dvejetainių failų pasirašymui nepasirašę popierinės sutarties . Sutartys yra labai sudėtingos, įskaitant daug neįtrauktų licencijų (įskaitant visas GPL tvarkyklėms, bet ne įkrovos įkrovikliams). Sunkiausia yra tai, kad sutartys, atrodo, apima daugiau nei tik pasirašomus UEFI objektus . „Linux Foundation“ teisininkai padarė išvadą, kad tai dažniausiai nekenksminga LF, nes mes neparduodame produktų, tačiau kitoms įmonėms tai gali būti nepriimtina. Pasak Matthew Garrett, „Microsoft“ yra pasirengusi derėtis dėl specialių susitarimų su platintojais, kad sušvelnintų kai kurias iš šių problemų.

Kai sutartys pasirašomos, prasideda tikrosios techninės linksmybės . Negalite tiesiog įkelti UEFI dvejetainio failo ir tikėtis, kad jis bus pasirašytas. Pirmiausia turite jį sutalpinti į .cab failą . Laimei, yra atvirojo kodo projektas, galintis kurti kabinetinius failus, vadinamus lcab. Tada .cab failą turite pasirašyti naudodami „Verisign“ raktą . Vėlgi, yra dar vienas atvirojo kodo projektas, kuris gali tai padaryti: „osslsigncode“. Visiems, kuriems reikia šių įrankių, jie yra mano „openSUSE UEFI Build Service“ saugykloje. Paskutinė kliūtis yra ta, kad norint įkelti failą, reikalinga „Silverlight“ . Deja, „Moonlight“, regis, neveikia, ir net su 4 versijos peržiūra, įkėlimo laukas tampa tuščias, todėl laikas naudoti „Windows 7“ su KVM (branduolio pagrindu veikiančia virtualia mašina). Kai pasieksite šią dalį, taip pat turėsite patvirtinti, kad dvejetainis failas, „kuris bus pasirašytas, neturi būti licencijuotas pagal GPLv3 ar panašias atvirojo kodo licencijas “. Manau, kad taip yra dėl baimės, jog bus atskleistas raktas, bet tai visiškai neaišku (tas pats pasakytina ir apie „panašias atvirojo kodo licencijas“).

Kai įkėlimas baigtas, kabinetinio formato failas pereina septynis etapus. Deja, pirmasis bandomasis įkėlimas užstrigo 6 etape (failo pasirašymo etape). Po šešių dienų parašiau el. laišką „Microsoft“ palaikymo tarnybai, klausdamas, kas vyksta. Atsakymas: „Pasirašymo proceso grąžintas klaidos kodas rodo, kad jūsų failas nėra galiojanti „Win32“ programa . Ar tai galiojanti „Win32“ programa?“ Atsakymas: akivaizdu, kad ne, tai galiojantis 64 bitų UEFI dvejetainis failas. Daugiau atsakymų nebuvo ...

Bandžiau dar kartą. Šį kartą gavau el. laišką su pasirašyto failo atsisiuntimu, bet ataskaitų srityje buvo pranešta, kad pasirašymas nepavyko . Atsisiunčiau ir patikrinau. Dvejetainis failas veikia „Secure Boot“ platformoje ir yra pasirašytas su raktu.

tema = / C = JAV / ST = Vašingtonas / L = Redmondas / O = „Microsoft Corporation“ / OU = MOPR / CN = „Microsoft Windows“ UEFI tvarkyklių leidėjas
emitentas = / C = JAV / ST = Vašingtonas / L = Redmondas / O = „Microsoft Corporation“ / CN = „Microsoft Corporation“ UEFI CA 2011 m.

Paklausiau palaikymo tarnybos, kodėl procesas rodo klaidą, bet atsisiuntimas buvo galiojantis. Po daugybės el. laiškų jie atsakė: „Nenaudokite to failo; jis buvo neteisingai pasirašytas . Susisieksiu su jumis.“ Vis dar nesu tikras, kokia problema, bet jei pažiūrėsite į pasirašymo rakto temą, rakte nėra nieko, kas nurodytų „Linux Foundation“ . Todėl įtariu, kad problema yra ta, jog dvejetainis failas pasirašytas bendriniu „Microsoft“ raktu, o ne konkrečiu (ir atšaukiamu) raktu, susietu su „Linux Foundation“.

Tačiau tai yra būsena: mes ir toliau lauksime, kol „Microsoft“ suteiks „Linux Foundation“ pasirašytą ir patvirtintą išankstinio įkrovimo programą. Kai taip atsitiks, jis bus įkeltas į „Linux Foundation“ svetainę, kad visi galėtų ją naudoti.

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

Padarykite išvadas, tačiau tam prireiks laiko.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje