Dve novici v zvezi s predhodnim zagonskim nalagalnikom

Gre za prevodi dveh objav, ki jih je James Bottomley objavil na svojem blogu. Prva objava je bila objavljena 1. februarja in se imenuje "LCA2013 in prestrukturiranje varnega zagona"

Nekaj ​​časa sem bil tiho, zato je čas za posodobitev o tem, kaj se dogaja z varnim zagonskim nalagalnikom fundacije Linux (še posebej odkar je bil predstavljen na LCA2013). ( Povezava do diapozitivov )

Bistvo problema je, da je GregKH (Greg Kroah-Hartman, razvijalec jeder) v začetku decembra odkril, da predlagani Pre-BootLoader v trenutni obliki ne bi deloval z Gummibootom. To je bilo malodušno, saj je pomenilo, da ni izpolnjeval poslanstva fundacije Linux, da omogoči vse zagonske nalagalnike. Razlog je bil po preiskavi preprost: Gummiboot je bil ustvarjen, da bi pokazal, da je mogoče narediti majhen, preprost zagonski nalagalnik, ki bi izkoristil vse storitve, ki so na voljo na platformi UEFI, namesto da bi bil ogromen nalagalnik povezav, kot je GRUB. Žal to pomeni, da zažene jedra z uporabo funkcije BootServices->LoadImage(), kar pomeni, da mora jedro, ki ga je treba zagnati, prestati varna zagonska preverjanja na platformi UEFI. Prvotno je bil Pre-BootLoader, tako kot shim (zagonski nalagalnik Mathewa Garretta), napisan za uporabo nalaganja povezav PE/Coff, da bi se izognil varnim zagonskim preverjanjem. Žal to pomeni, da mora vse, kar izvede Pre-BootLoader, uporabiti tudi nalaganje povezav, da premaga preverjanja varnega zagona za vse, kar želi naložiti, zato Gummiboot, ki namerno ni nalagalnik povezav, ne bo deloval v skladu s to shemo.

Zato sem moral prestrukturirati in prepisati: težava je zdaj prešla od "kako ustvariti nalagalnik povezav, ki ga je podpisal Microsoft in spoštuje njihove pravilnike", do "kako omogočiti vsem otrokom zagonskega nalagalnika uporabo funkcije BootServices-> LoadImage () način spoštovanja njihovih politik. Na srečo obstaja način, kako prestreči infrastrukturo za podpisovanje platforme UEFI z namestitvijo lastnega varnostnega protokola za arhitekturo. Na žalost specifikacija inicializacije platforme dejansko ni del specifikacije UEFI, vendar jo na srečo izvaja vsak sistem Windows 8, ki ga najdete. Nova arhitektura prestreže ta protokol in doda lastno varnostno preverjanje. Vendar pa obstaja druga težava: medtem ko smo v povratnem klicu varnostnega protokola za arhitekturo, nismo nujno lastnik zaslona sistema UEFI, zaradi česar je popolnoma nemogoče opraviti uporabniški test za odobritev izvajanja binarnega programa. Na srečo obstaja neinteraktiven način za to, to je mehanizem lastniškega ključa SUSE (MOK). Zato se je Linux Foundation Pre-BootLoader zdaj razvil tako, da uporablja standardne spremenljivke MOK za shranjevanje pooblaščenih binarnih zgoščenk.

Rezultat vsega tega je, da je Pre-BootLoader zdaj mogoče uporabljati z Gummiboot-om (tako kot je bilo to storjeno v predstavitvi na LCA2013). Za zagon morate dodati dve razpršitvi: eno za sam Gummiboot in drugo za jedro, ki ga želite zagnati, vendar je to dejansko dobro, saj imate zdaj eno samo varnostno politiko, ki nadzoruje celotno zagonsko zaporedje. Tudi sam Gummiboot je bil popravljen, da je zaradi varnega zagona prepoznal zrušitev in prikazal sporočilo, v katero kašo se morate vpisati.

V ločenem prispevku bom razložil, kako deluje nova arhitektura, vendar sem menil, da bi bilo bolje razložiti, kaj se je zgodilo prejšnji mesec.

In to drugo objavo, ki jo je objavil včeraj, se imenuje "Launched Linux Foundation Secure Boot System"

Kot je bilo obljubljeno, tukaj je Linux Foundation Secure Boot System. Microsoft nam ga je dejansko izdal 6. februarja, vendar s potovanji, konferencami in sestanki do danes nisem imel časa, da bi vse potrdil. Datoteke so:

PreLoader.efi (md5sum 4f7a4f566781869d252a09dc84923a82)
HashTool.efi (md5sum 45639d23aa5f2a394b03a65fc732acf2)
Ustvarite tudi zagonsko sliko mini-USB; (Namestiti ga morate na USB s pomočjo dd; slika ima particije GPT, zato uporablja celoten disk). Ima lupino EFI, kjer mora biti jedro, in za nalaganje uporablja gummiboot. Najdete ga tukaj (md5sum 7971231d133e41dd667a184c255b599f).

Če želite uporabiti sliko mini-USB, morate vnesti razpršilce za loader.efi (v mapo \ EFI \ BOOT) in shell.efi (v korensko mapo). Vključuje tudi kopijo KeyTool.efi, za zagon morate vnesti razpršitev.

Kaj se je zgodilo s KeyTool.efi? Prvotno je bil del našega podpisanega kompleta. Med testiranjem pa je Microsoft odkril, da bi ga zaradi napake na eni od platform UEFI lahko uporabili za programsko odstranitev ključa platforme, kar bi uničilo varnostni sistem UEFI. Dokler tega ne bomo uspeli rešiti (v zanki imamo zasebnega prodajalca), niso hoteli podpisati KeyTool.efi, čeprav ga lahko odobrite z dodajanjem spremenljivk MOK, če ga želite zagnati.

Sporočite mi, kako to poteka, ker me zanima zbiranje povratnih informacij o tem, kaj deluje in kaj ne. Zaskrbljen sem predvsem nad tem, da preglasitev varnostnega protokola morda ne bo delovala na nekaterih platformah, zato me še posebej zanima, če zanje ne deluje.

Fuentes:

http://blog.hansenpartnership.com/lca2013-and-rearchitecting-secure-boot/

http://blog.hansenpartnership.com/linux-foundation-secure-boot-system-released/

Odločite se, ali je to dobra ali slaba novica.


Dodaj kot prednostni vir v Googlu