Lennart Pottering (Lennart Poettering) objavio je prijedlog za modernizaciju procesa pokretanja Linux distribucija, usmjeren na rješavanje postojećih problema i pojednostavljenje organizacije cjelovitog verificiranog pokretanja, koje potvrđuje autentičnost jezgre i osnovnog sustavnog okruženja. Neophodne promjene za primjenu nove arhitekture već su uključene u kodnu bazu systemd i obuhvaćaju komponente poput systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase i systemd-creds.
Predložene promjene svode se na stvaranje jednog univerzalnog UKI (Unified Kernel Image) formata koji objedinjuje sliku Linux jezgre, rukovatelja za pokretanje jezgre iz UEFI (UEFI boot stub) i učitano u memoriju sustavno okruženje initrd, koje se koristi za inicijalizaciju prije montiranja korijenske datotečne sustave. Umjesto slike RAM diska initrd, u UKI može biti upakiran cijeli sustav, što omogućava stvaranje potpuno verificiranih sustavnih okruženja, učitanih u radnu memoriju. UKI slika se oblikuje u obliku izvršne datoteke u PE formatu koja se može učitati ne samo putem tradicionalnih učitavača, nego i izravno pozvati iz UEFI firmwarea.
Mogućnost pozivanja iz UEFI omogućava korištenje provjere cjelovitosti i autentičnosti putem digitalnog potpisa, koji obuhvaća ne samo jezgru, već i sadržaj initrd-a. Ova podrška također omogućava poziv iz tradicionalnih učitavača, što omogućava zadržavanje mogućnosti poput isporuke više verzija jezgre i automatskog vraćanja na funkcionalnu jezgru u slučaju otkrivanja problema s novom jezgrom nakon instalacije ažuriranja.
Trenutno u većini Linux distribucija u procesu inicijalizacije koristi se lanac "firmware → ovjereni digitalnim potpisom Microsoft shim sloj → ovjereni digitalnim potpisom distribucija učitavač GRUB → ovjereni digitalnim potpisom distribucija jezgra Linux → neovjereno okruženje initrd → korijenska datotečna sustava". Nedostatak verifikacije initrd u tradicionalnim distribucijama predstavlja sigurnosne probleme, jer se među ostalim u ovom okruženju vrši vađenje ključeva za dešifriranje korijenske datotečne sustave.
Verifikacija initrd slike nije podržana jer se ova datoteka stvara na lokalnom sustavu korisnika i ne može biti ovjerena digitalnim potpisom distribucije, što znatno otežava organizaciju provjere pri korištenju SecureBoot načina (za ovjeru initrd korisnik mora generirati svoje ključeve i učitati ih u UEFI firmware). Osim toga, postojeća organizacija pokretanja ne omogućuje korištenje informacija iz TPM PCR (Platform Configuration Register) registra za kontrolu cjelovitosti komponenti korisničkog prostora, osim shim, grub i jezgre. Također se spominju problemi u vezi s otežanim ažuriranjem bootloader-a i nedostatkom mogućnosti ograničavanja pristupa ključevima u TPM za starije verzije OS-a, koje su postale neaktualne nakon instalacije ažuriranja.
Glavni ciljevi implementacije nove arhitekture pokretanja:
- Osiguranje potpuno ovjerenog procesa pokretanja, koji obuhvaća sve faze od firmware-a do korisničkog prostora, i potvrđuje istinitost i cjelovitost učitavanih komponenti.
- Povezivanje kontroliranih resursa s TPM PCR registrima s razdvajanjem po vlasnicima.
- Mogućnost prethodnog izračuna vrijednosti PCR-a na temelju korištenih prilikom pokretanja jezgre, initrd, konfiguracije i lokalnog identifikatora sustava.
- Zaštita od rollback napada povezanih s vraćanjem na prethodnu ranjivu verziju sustava.
- Pojednostavljenje i povećanje pouzdanosti ažuriranja.
- Podrška za ažuriranja operativnog sustava koja ne zahtijevaju ponovnu primjenu ili lokalnu pripremu resursa zaštićenih TPM-om.
- Spremnost sustava za provođenje udaljene atestacije za potvrdu ispravnosti učitanog OS-a i postavki.
- Mogućnost privezivanja povjerljivih podataka određenim fazama pokretanja, na primjer, povlačenjem šifrirajućih ključeva iz TPM-a za korijenski FS.
- Osiguranje sigurnog, automatskog i rada bez sudjelovanja korisnika procesa otključavanja ključeva za dešifriranje diska s korijenskim particijom.
- Korištenje čipova koji podržavaju TPM 2.0 specifikaciju, s mogućnošću povratka na sustave bez TPM-a.
Izvor: opennet.ru
