Lennart Pottering navrhol novú Linux overenú zavádzaciu architektúru

Lennart Poettering zverejnil návrh na modernizáciu procesu zavádzania pre linuxové distribúcie, ktorého cieľom je vyriešiť existujúce problémy a zjednodušiť organizáciu plne overeného zavádzania, ktoré potvrdzuje spoľahlivosť jadra a základného systémového prostredia. Zmeny potrebné na implementáciu novej architektúry sú už zahrnuté v kódovej základni systemd a ovplyvňujú komponenty ako systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase a systemd-creds.

Navrhované zmeny sa obmedzujú na vytvorenie jediného univerzálneho obrazu UKI (Unified Kernel Image), ktorý kombinuje obraz jadra Linuxu, obslužný program na načítanie jadra z UEFI (UEFI boot stub) a systémové prostredie initrd načítané do pamäte, ktoré sa používa na počiatočná inicializácia vo fáze pred namontovaním koreňového FS. Namiesto obrazu initrd RAM disku môže byť celý systém zabalený do UKI, čo umožňuje vytvárať plne overené systémové prostredia načítané do RAM. Obrázok UKI je naformátovaný ako spustiteľný súbor vo formáte PE, ktorý je možné načítať nielen pomocou tradičných bootloaderov, ale je možné ho vyvolať priamo z firmvéru UEFI.

Schopnosť volať z UEFI vám umožňuje použiť kontrolu integrity digitálneho podpisu, ktorá pokrýva nielen jadro, ale aj obsah initrd. Podpora volania z tradičných bootloaderov vám zároveň umožňuje zachovať také funkcie, ako je dodanie niekoľkých verzií jadra a automatický návrat na funkčné jadro, ak sa po inštalácii aktualizácie zistia problémy s novým jadrom.

Vo väčšine linuxových distribúcií v súčasnosti inicializačný proces používa reťazec „firmvér → digitálne podpísaná vrstva shim Microsoft → zavádzač GRUB digitálne podpísaný distribúciou → digitálne podpísané jadro Linuxu → nepodpísané prostredie initrd → koreňový FS. Nedostatok overenia initrd v tradičných distribúciách vytvára bezpečnostné problémy, pretože okrem iného sa v tomto prostredí získavajú kľúče na dešifrovanie koreňového systému súborov.

Verifikácia obrazu initrd nie je podporovaná, pretože tento súbor sa generuje v lokálnom systéme používateľa a nemôže byť certifikovaný digitálnym podpisom distribučnej súpravy, čo značne komplikuje organizáciu overovania pri použití režimu SecureBoot (na overenie initrd je používateľ si musí vygenerovať svoje vlastné kľúče a nahrať ich do firmvéru UEFI). Súčasná organizácia zavádzania navyše neumožňuje používanie informácií z registrov TPM PCR (Platform Configuration Register) na kontrolu integrity komponentov používateľského priestoru iných ako shim, grub a kernel. Medzi existujúcimi problémami sa uvádza aj zložitosť aktualizácie zavádzača a nemožnosť obmedziť prístup ku kľúčom v module TPM pre staršie verzie OS, ktoré sa po inštalácii aktualizácie stali irelevantnými.

Hlavné ciele zavedenia novej architektúry načítania sú:

  • Poskytuje plne overený proces zavádzania, ktorý sa rozprestiera od firmvéru až po používateľský priestor, čím sa potvrdzuje platnosť a integrita spúšťaných komponentov.
  • Prepojenie kontrolovaných zdrojov do registrov TPM PCR, oddelených podľa vlastníka.
  • Schopnosť vopred vypočítať hodnoty PCR na základe jadra, initrd, konfigurácie a ID lokálneho systému použitého počas zavádzania.
  • Ochrana pred rollback útokmi spojenými s návratom k predchádzajúcej zraniteľnej verzii systému.
  • Zjednodušte a zvýšte spoľahlivosť aktualizácií.
  • Podpora aktualizácií OS, ktoré nevyžadujú opätovnú aplikáciu alebo lokálne poskytovanie prostriedkov chránených TPM.
  • Systém je pripravený na vzdialenú certifikáciu na potvrdenie správnosti načítaného OS a nastavení.
  • Schopnosť pripojiť citlivé údaje k určitým fázam zavádzania, napríklad extrahovať šifrovacie kľúče pre koreňový súborový systém z TPM.
  • Poskytovanie bezpečného, ​​automatického a používateľsky bezplatného procesu odomykania kľúčov na dešifrovanie jednotky koreňového oddielu.
  • Použitie čipov, ktoré podporujú špecifikáciu TPM 2.0, s možnosťou návratu na systémy bez TPM.

Zdroj: opennet.ru

Pridať komentár