bootloader

Secure Boot Linux

Secure Boot Linux

Linux: Kaj je varen zagon?

Ob zagonu računalnik zažene poseben program za odkrivanje in inicializacijo svojih komponent strojne opreme. Tradicionalno IBM-kompatibilni osebni računalniki uporabljajo osnovni vhodni izhodni sistem (BIOS). V nasprotju s tem Mac uporablja OpenFirmware, Android ima samo zagonski nalagalnik, Raspberry Pi pa se začne z vdelano programsko opremo, ki je v sistemu na čipu (SoC). Ta začetni korak vključuje preverjanje strojne opreme in iskanje razpoložljivih operacijskih sistemov na nosilcih podatkov, ki so del računalnika, kot so trdi disk, CDROM / DVD ali kartica SD ali so z njim povezani prek omrežja (Network File System (NFS) , Zagon PXE).

Dejanski vrstni red iskanja je odvisen od nastavitev BIOS-a v računalniku. Slika 2 prikazuje seznam razpoložljivih naprav za zagon.

Na koncu se v meniju prikaže seznam razpoložljivih operacijskih sistemov s posebnimi parametri (imenovane »razpoložljive zagonske možnosti«), iz katerega izberete želeni operacijski sistem za zagon.

Od leta 2012 je v uporabi Secure Boot. Ta članek bo razložil, kaj je to, kakšen je namen tega in kako deluje. Poleg tega bomo odgovorili na vprašanje, ali je za naprave, ki temeljijo samo na Linuxu, potreben varen zagon in kako distribucije Linuxa obravnavajo ta primer.


Kaj je Secure Boot?

Secure Boot gre za zaupanje. Splošna zamisel je varno zagon računalnika, da bi preprečili, da bi računalnik deloval z zlonamerno programsko opremo že od samega začetka. Na splošno je čist začetek z zanesljivim sistemom pristop, ki ga je treba močno podpreti.

Secure Boot je del poenotenega razširljivega vmesnika vdelane programske opreme (UEFI) - osrednjega vmesnika med vdelano programsko opremo, posameznimi komponentami računalnika in operacijskim sistemom [3]. Za približno pet let sta ga Intel in Microsoft razvila kot nadomestek za BIOS. Leta 2012, različica 2.3.1 UEFI je bil uveden z Microsoft Windows 8. Microsoft je za računalniške proizvajalce obvezno uvedel UEFI, če bi želeli pridobiti certifikat Windows 8 za svoje novo izdelane stroje [15].

Toda zakaj se Secure Boot imenuje Secure Boot? Zaradi česar je varna možnost zagona? Secure Boot omogoča zagon samo s predhodno dodeljenih zagonskih nalagalnikov in je zato namenjen preprečevanju zagona zlonamerne ali drugih neželenih programov. Tradicionalni BIOS bi zagnal katero koli programsko opremo. Omogočil bi celo zlonamerno programsko opremo, kot je rootkit, da zamenja vaš zagonski nalagalnik. Nato bi rootkit lahko naložil vaš operacijski sistem in ostal popolnoma neviden in neopazen v vašem sistemu. Medtem ko pri varnem zagonu sistemska programska oprema najprej preveri, ali je sistemski zagonski nalagalnik podpisan s kriptografskim ključem. Kriptografski ključ je ključ, ki ga je odobrila baza podatkov, ki je vdelana v programsko opremo. Le če je ključ prepoznan, bo omogočil zagon sistema. Tak veljaven podpis mora slediti specifikaciji Microsoftovega certifikacijskega organa UEFI (CA).


Različne perspektive

Na prvi pogled se to sliši precej dobro, vendar sta vedno dve strani medalje. Kot običajno obstajajo prednosti in slabosti. Tiskovna mnenja pohvalijo ali demonizirajo Secure Boot, odvisno od tega, kdo piše mnenje.

Najprej ne pozabite, da je oblast nad kriptografskimi ključi v rokah enega samega globalnega igralca - Microsofta. Dati moč milijonom strojev enemu podjetju nikoli ni dobra ideja. Na ta način si Microsoft zagotovi popoln nadzor nad vašo napravo. Z eno odločitvijo lahko Microsoft z eno potezo blokira celoten trg in prepreči konkurenco in vas kot kupca. E.g. če želite kasneje namestiti strojno opremo drugega proizvajalca, morate zagotoviti, da je bil ključ nove komponente shranjen v sistemu zbirke podatkov. Zaradi omejene prilagodljivosti in izbire - še posebej, če ste razvijalec.

Drugič, ne samo, da so vaše izbire strojne opreme omejene, ampak tudi izbira vašega operacijskega sistema naj bi bila omejena zaradi tehnologije UEFI, ki jo je predstavil Windows. To pomeni, da skupnost Linux otežuje življenje. Pred njegovo uporabo na strojni opremi, ki temelji na UEFI, je najprej treba certificirati zagonske nalagalnike Linuxa, kot je GRUB, zato upočasni precej hiter razvoj, saj je odprtokodna skupnost znana po. Nihče ne ve, kaj se zgodi, če osrednji preverjevalnik med preverjanjem zmoti ali blokira izdajo posodobljene programske opreme.

Tretjič, kaj pomeni izraz zlonamerna programska oprema danes in jutri? Ali vključuje operacijske sisteme konkurentov [5] ali so izključeni? Postopek preverjanja poteka za zavesami in tega nihče ne more dokazati.

Četrtič, obstajajo zadržki glede varnosti. Glede na trenutni razvoj je dolžina kriptografskih ključev razmeroma kratka. Secure Boot omogoča samo potrdila X509 in RSA ključe s fiksno dolžino 2048 bitov [16]. V bližnji prihodnosti naj bi bila z uporabo množične paralelizacije in nadaljnjih računalniških moči, ki temeljijo na virtualizaciji, ta raven varnosti prekinjena. Danes so priporočljivi kriptografski ključi z dolžino 4096 bitov.

Petič, zdi se, kot da je programska oprema, ki jo ponuja velik prodajalec in je certificirana, varna in brez napak. Kot kaže zgodovina, vsi vemo, da to ni res, programska oprema vedno vsebuje napake. Certifikat vas samo zaziba v lažni občutek varnosti.


Rešitve za odprtokodno kodo

Toda tam, kjer je težava, obstaja tudi rešitev. Microsoft velikodušno ponuja priložnost distributerjem Linuxa, da dostopajo do svojega portala Microsoft Sysdev, da imajo podpisane svoje zagonske nalagalnike [17]. Ta storitev ima kljub temu ceno.

Distribucije Linuxa imajo samo »shim« [11], podpisan na Microsoftovem portalu. Shim je majhen zagonski nalagalnik, ki zažene glavni zagonski nalagalnik GRUB distribucij Linuxa. Microsoft samo preveri podpisani šim in nato se vaša distribucija Linuxa normalno zažene. To pomaga vzdrževati sistem Linux kot običajno.

Kot poročajo iz različnih virov, (U) EFI dobro deluje s Fedora / RedHat, Ubuntu, Arch Linux in Linux Mint. Za Debian GNU / Linux ni uradne podpore glede varnega zagona [9]. Kakor koli že, obstaja zanimiva objava v blogu o tem, kako to nastaviti [18], pa tudi opis v Debian Wiki [14].

Alternative UEFI

UEFI ni edini naslednik BIOS-a za osebni računalnik - obstajajo druge možnosti. Morda si boste podrobneje ogledali OpenBIOS [4], libreboot [7], Open Firmware [8,9] in coreboot [10]. V tem članku jih nismo preizkusili, vendar je koristno vedeti, da obstajajo alternativne izvedbe in delujejo nemoteno.


Zaključek

Kot smo že omenili, je ključno vprašanje zaupanje. Glede računalnikov se vprašajte, katerim delom sistema zaupate - komponentam strojne opreme (vdelana programska oprema, čipi, TPM) in / ali komponentami programske opreme (zagonski nalagalnik, operacijski sistem, programska oprema, ki je v uporabi). Ne morete odpraviti napak celotnega sistema. Morda vam bo pomagalo vedeti, da vaš operacijski sistem ne deluje v nasprotju z vašimi interesi in da boste stvari, za katere ste kupili sistem, opravili na varen način, ne da bi ga nadzoroval monopol.


Povezave in reference

Zahvala

Frank Hofmann in Mandy Neumeyer sta soavtorja članka.  Avtorji se zahvaljujejo Justinu Kellyju za pomoč in kritične komentarje med pisanjem tega članka.

Vadnica za bitko za Wesnoth
Bitka za Wesnoth je ena izmed najbolj priljubljenih odprtokodnih strateških iger, ki jih lahko trenutno igrate. Ne samo, da se ta igra razvija že zelo...
0 A.D. Vadnica
Od številnih strateških iger tam 0 A.D. uspe izstopati kot izčrpen naslov in zelo globoka, taktična igra, čeprav je odprtokodna. Razvoj igre deluje ze...
Vadnica za Unity3D
Uvod v Unity 3D Unity 3D je močan motor za razvoj iger. Navzkrižna platforma vam omogoča ustvarjanje iger za mobilne naprave, splet, namizje in konzol...