Lennart Pottering a propus o nouă arhitectură de boot verificată pentru Linux

Lennart Poettering a publicat o propunere pentru modernizarea procesului de încărcare a distribuțiilor Linux, având ca scop soluționarea problemelor existente și simplificarea organizării unei încărcări verificate, care să confirme autenticitatea nucleului și a mediului sistemic de bază. Modificările necesare pentru implementarea noii arhitecturi sunt deja incluse în baza de cod a systemd și afectează componente precum systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase și systemd-creds.

Modificările propuse constau în crearea unei imagini unice și universale UKI (Unified Kernel Image), care să combine imaginea nucleului Linux, un manager pentru încărcarea nucleului din UEFI (UEFI boot stub) și un mediu sistemic încărcat în memorie initrd, care este utilizat pentru inițializarea inițială înainte de montarea sistemului de fișiere root. În locul imaginii disk-ului RAM initrd, în UKI poate fi comprimat întregul sistem, ceea ce permite crearea unor medii sistemice complet verificate, care sunt încărcate în memoria RAM. Imaginea UKI este formatată ca un fișier executabil în format PE, care poate fi încărcat nu doar prin intermediul încărcătoarelor tradiționale, ci poate fi apelat direct din firmware-ul UEFI.

Posibilitatea de a apela din UEFI permite utilizarea verificării integrității și autenticității prin semnătură digitală, acoperind nu doar nucleul, ci și conținutul initrd. În acest fel, suportul pentru a apela din încărcătoarele tradiționale permite păstrarea unor capacități precum livrarea mai multor versiuni ale nucleului și revenirea automată la nucleul funcțional în cazul în care apar probleme cu noul nucleu după instalarea unei actualizări.

În prezent, în majoritatea distribuțiilor Linux, procesul de inițializare utilizează o succesiune de comenzi «firmware → interfață shim semnată digital de Microsoft → încărcător GRUB semnat digital de distribuție → nucleu Linux semnat digital de distribuție → mediu initrd nesemnat → sistem de fișiere root». Absența verificării initrd în distribuțiile tradiționale creează probleme de securitate, deoarece în acest mediu se realizează, printre altele, extragerea cheilor pentru decriptarea sistemului de fișiere root.

Verificarea imaginii initrd nu este suportată deoarece acest fișier este generat pe sistemul local al utilizatorului și nu poate fi certificat prin semnătura digitală a distribuției, ceea ce complică considerabil organizarea verificării în utilizarea modului SecureBoot (pentru a certifica initrd, utilizatorul trebuie să genereze propriile chei și să le încarce în firmware-ul UEFI). În plus, organizarea actuală a încărcării nu permite aplicarea informațiilor din registrele TPM PCR (Platform Configuration Register) pentru controlul integrității componentelor spațiului utilizator, în afară de shim, grub și nucleu. Printre problemele existente se menționează, de asemenea, complexitatea actualizării bootloader-ului și lipsa posibilității de a restricționa accesul la cheile din TPM pentru versiunile mai vechi ale sistemului de operare, care au devenit depășite după instalarea actualizării.

Obiectivele principale ale implementării unei noi arhitecturi de încărcare:

  • Oferirea unui proces de încărcare complet verificat, care acoperă toate etapele de la firmware la spațiul utilizator, și confirmă veridicitatea și integritatea componentelor încărcate.
  • Legarea resurselor controlate la registrele TPM PCR cu împărțirea pe proprietari.
  • Posibilitatea de a calcula dinainte valorile PCR pe baza celor utilizate în timpul încărcării nucleului, initrd, configurației și identificatorului local al sistemului.
  • Protecție împotriva atacurilor de Rollback, legate de revenirea la o versiune anterioară vulnerabilă a sistemului.
  • Simplificarea și creșterea fiabilității actualizărilor.
  • Suport pentru actualizările sistemului de operare, care nu necesită reapplication sau pregătirea locală a resurselor protejate de TPM.
  • Pregătirea sistemului pentru a efectua atestări de la distanță pentru a confirma corectitudinea sistemului de operare încărcat și setările.
  • Posibilitatea de a atașa date confidențiale la anumite stadii ale încărcării, de exemplu, extragerea din TPM a cheilor de criptare pentru sistemul de fișiere rădăcină.
  • Oferirea unui proces sigur, automat și care funcționează fără intervenția utilizatorului pentru deblocarea cheilor pentru decriptarea discului cu partiția rădăcină.
  • Utilizarea chip-urilor care suportă specificația TPM 2.0, cu posibilitatea de a reveni la sisteme fără TPM.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster