Lennart Pottering a propus o nouă arhitectură de pornire Linux verificată

Lennart Poettering a publicat o propunere de modernizare a procesului de boot pentru distribuțiile Linux, menită să rezolve problemele existente și să simplifice organizarea unui boot complet verificat care confirmă fiabilitatea nucleului și a mediului de sistem subiacent. Modificările necesare pentru implementarea noii arhitecturi sunt deja incluse în baza de cod systemd și afectează componente precum systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase și systemd-creds.

Modificările propuse se reduc la crearea unei singure imagini universale UKI (Unified Kernel Image), care combină imaginea kernel-ului Linux, un handler pentru încărcarea nucleului din UEFI (UEFI boot stub) și mediul de sistem initrd încărcat în memorie, folosit pentru inițializarea inițială în etapa înainte de montarea FS-ului rădăcină. În loc de o imagine de disc RAM initrd, întregul sistem poate fi împachetat în UKI, ceea ce vă permite să creați medii de sistem complet verificate încărcate în RAM. Imaginea UKI este formatată ca fișier executabil în format PE, care poate fi încărcat nu numai folosind bootloadere tradiționale, ci poate fi apelat direct din firmware-ul UEFI.

Abilitatea de a apela de la UEFI vă permite să utilizați o verificare a integrității semnăturii digitale care acoperă nu numai nucleul, ci și conținutul initrd-ului. În același timp, suportul pentru apelarea de la bootloadere tradiționale vă permite să păstrați caracteristici precum livrarea mai multor versiuni ale nucleului și rollback-ul automat la un nucleu funcțional dacă sunt detectate probleme cu noul nucleu după instalarea actualizării.

În prezent, în majoritatea distribuțiilor Linux, procesul de inițializare folosește lanțul „firmware → strat shim Microsoft semnat digital → încărcător de pornire GRUB semnat digital de distribuție → nucleu Linux semnat digital → mediu initrd nesemnat → rădăcină FS.” Lipsa verificării initrd în distribuțiile tradiționale creează probleme de securitate, deoarece, printre altele, în acest mediu sunt preluate cheile pentru decriptarea sistemului de fișiere rădăcină.

Verificarea imaginii initrd nu este acceptată deoarece acest fișier este generat pe sistemul local al utilizatorului și nu poate fi certificat cu o semnătură digitală a kitului de distribuție, ceea ce complică foarte mult organizarea verificării atunci când se utilizează modul SecureBoot (pentru a verifica initrd, utilizatorul trebuie să-și genereze propriile chei și să le încarce în firmware-ul UEFI). În plus, organizarea actuală de pornire nu permite utilizarea informațiilor din registrele TPM PCR (Platform Configuration Register) pentru a controla integritatea componentelor spațiului utilizator, altele decât shim, grub și kernel. Printre problemele existente, sunt menționate și complexitatea actualizării bootloader-ului și incapacitatea de a restricționa accesul la chei în TPM pentru versiunile mai vechi ale sistemului de operare care au devenit irelevante după instalarea actualizării.

Principalele obiective ale introducerii noii arhitecturi de încărcare sunt:

  • Furnizarea unui proces de pornire complet verificat, care se întinde de la firmware la spațiul utilizatorului, confirmând validitatea și integritatea componentelor pornite.
  • Conectarea resurselor controlate la registrele TPM PCR, separate de proprietar.
  • Abilitatea de a precalcula valorile PCR pe baza nucleului, initrd, configurație și ID-ul sistemului local utilizat în timpul pornirii.
  • Protecție împotriva atacurilor de rollback asociate cu revenirea la o versiune vulnerabilă anterioară a sistemului.
  • Simplificați și creșteți fiabilitatea actualizărilor.
  • Suport pentru actualizări ale sistemului de operare care nu necesită re-aplicare sau furnizare locală a resurselor protejate prin TPM.
  • Sistemul este pregătit pentru certificarea de la distanță pentru a confirma corectitudinea sistemului de operare și a setărilor încărcate.
  • Abilitatea de a atașa date sensibile la anumite etape de pornire, de exemplu, extragerea cheilor de criptare pentru sistemul de fișiere rădăcină din TPM.
  • Furnizarea unui proces sigur, automat și fără utilizator pentru deblocarea cheilor pentru a decripta o unitate de partiție rădăcină.
  • Utilizarea de cipuri care acceptă specificația TPM 2.0, cu capacitatea de a reveni la sisteme fără TPM.

Sursa: opennet.ru

Adauga un comentariu