Lennart Pottering navrhl novou Linux ověřenou zaváděcí architekturu

Lennart Poettering zveřejnil návrh modernizace bootovacího procesu linuxových distribucí, zaměřený na vyřešení stávajících problémů a zjednodušení organizace plnohodnotného ověřeného bootování, potvrzující pravost jádra a základního systémového prostředí. Změny potřebné k implementaci nové architektury jsou již zahrnuty v kódové základně systemd a ovlivňují komponenty jako systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase a systemd-creds.

Navrhované změny jsou redukovány na vytvoření jediného univerzálního obrazu UKI (Unified Kernel Image), který kombinuje obraz linuxového jádra, obslužný program pro načítání jádra z UEFI (UEFI boot stub) a systémové prostředí initrd načtené do paměti, používané pro počáteční inicializace ve fázi před připojením kořenového FS. Namísto obrazu disku RAM initrd může být celý systém zabalen do UKI, což umožňuje vytvoření plně ověřených systémových prostředí, která se načítají do RAM. UKI-image je vytvořen ve formě spustitelného souboru ve formátu PE, který lze načíst nejen pomocí tradičních bootloaderů, ale je přímo volán z firmwaru UEFI.

Schopnost volat z UEFI vám umožňuje používat kontrolu integrity a platnosti digitálního podpisu, která pokrývá nejen jádro, ale také obsah initrd. Podpora volání z tradičních zavaděčů zároveň umožňuje uložit takové funkce, jako je dodání několika verzí jádra a automatický návrat k funkčnímu jádru v případě, že po instalaci aktualizace budou zjištěny problémy s novým jádrem.

V současnosti většina linuxových distribucí používá v procesu inicializace řetězec „firmware → digitálně podepsaná vrstva shim Microsoft → digitálně podepsaná distribuce GRUB bootloader → digitálně podepsaná distribuce Linuxové jádro → nepodepsané prostředí initrd → kořenový FS“. Absence ověření initrd v tradičních distribucích vytváří bezpečnostní problémy, protože toto prostředí mimo jiné extrahuje klíče pro dešifrování kořenového FS.

Verifikace obrazu initrd není podporována, protože tento soubor je generován na lokálním systému uživatele a nemůže být certifikován digitálním podpisem distribuce, což značně komplikuje organizaci ověření při použití režimu SecureBoot (pro ověření initrd potřebuje uživatel vygenerovat jeho klíče a načíst je do firmwaru UEFI). Stávající organizace spouštění navíc neumožňuje používat informace z registrů TPM PCR (Platform Configuration Register) k řízení integrity komponent uživatelského prostoru jiných než shim, grub a kernel. Mezi existujícími problémy je zmíněna i komplikace aktualizace bootloaderu a nemožnost omezit přístup ke klíčům v TPM u starších verzí OS, které se po instalaci aktualizace staly irelevantními.

Hlavní cíle implementace nové architektury bootování jsou:

  • Poskytování plně ověřeného procesu stahování, který pokrývá všechny fáze od firmwaru po uživatelský prostor a potvrzuje platnost a integritu stažených komponent.
  • Vazba řízených zdrojů na registry TPM PCR s rozdělením podle vlastníků.
  • Schopnost předem vypočítat hodnoty PCR na základě bootování jádra, initrd, konfigurace a ID místního systému.
  • Ochrana proti rollback útokům spojeným s rollbackem na předchozí zranitelnou verzi systému.
  • Zjednodušte a zlepšujte spolehlivost aktualizací.
  • Podpora aktualizací operačního systému, které nevyžadují opětovné použití nebo místní poskytování prostředků chráněných modulem TPM.
  • Připravenost systému na vzdálenou certifikaci pro potvrzení správnosti bootovatelného OS a nastavení.
  • Schopnost připojit citlivá data k určitým fázím spouštění, například extrahování šifrovacích klíčů pro kořenový FS z TPM.
  • Poskytněte bezpečný, automatický a tichý proces pro odemykání klíčů pro dešifrování disku s kořenovým oddílem.
  • Použití čipů, které podporují specifikaci TPM 2.0, s možností přechodu na systémy bez TPM.

Zdroj: opennet.ru

Přidat komentář