Lennart Poettering har offentliggjort et forslag om at modernisere opstartsprocessen for Linux-distributioner, som sigter mod at løse eksisterende problemer og forenkle organiseringen af en fuldt verificeret opstart, der bekræfter kernen og det grundlæggende systemmiljøs ægthed. De nødvendige ændringer til implementering af den nye arkitektur er allerede inkluderet i kodebasen for systemd og berører komponenter som systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase og systemd-creds.
De foreslåede ændringer går ud på at skabe et enkelt universelt billede UKI (Unified Kernel Image), der kombinerer Linux-kernen, en UEFI-kernelopstarter (UEFI boot stub) og det systemmiljø, som initrd bruger til den indledende initialisering før mount af rodfilsystemet. I stedet for et initrd RAM-diskbillede kan hele systemet pakkes ind i UKI, hvilket muliggør oprettelsen af fuldt verificerede systemmiljøer, der indlæses i hukommelsen. UKI-billedet præsenteres som en eksekverbar fil i PE-format, som kan indlæses ikke kun ved hjælp af traditionelle bootloadere, men også direkte kaldes fra UEFI-firmware.
Muligheden for at kalde fra UEFI gør det muligt at benytte integritets- og ægthedskontrol via digital signatur, der dækker ikke kun kernen, men også indholdet af initrd. Desuden giver understøttelsen af kald fra traditionelle bootloadere mulighed for at bevare funktioner som levering af flere versionskerner og automatisk tilbagevenden til den fungerende kerne i tilfælde af problemer med den nye kerne efter opdatering.
I øjeblikket benytter de fleste Linux-distributioner i initialiseringsprocessen en kæde bestående af "firmware → Microsofts digitalt signaturkontrollerede shim-lag → GRUB-bootloader digitalt signeret af distributionen → Linux-kernen digitalt signeret af distributionen → ikke verificeret initrd-miljø → rodfilsystem". Manglen på verifikation af initrd i traditionelle distributioner skaber sikkerhedsproblemer, da der blandt andet i dette miljø udvindes nøgler til dekryptering af rodfilsystemet.
Verifikation af initrd-billedet understøttes ikke, da denne fil genereres på brugerens lokale system og ikke kan signeres med distributionens digitale signatur, hvilket væsentligt komplicerer organiseringen af kontrol ved brug af SecureBoot-tilstanden (for at underskrive initrd skal brugeren generere sine egne nøgler og uploade dem til UEFI-firmware). Derudover tillader den eksisterende opstartstruktur ikke anvendelse af oplysninger fra TPM PCR (Platform Configuration Register) til kontrol af integriteten af brugerområdets komponenter, bortset fra shim, grub og kernen. Blandt de nævnte problemer nævnes også vanskeligheden ved at opdatere bootloaderen og manglen på mulighed for at begrænse adgangen til nøgler i TPM for ældre versioner af OS, der er blevet irrelevante efter installation af opdateringen.
De primære mål med implementeringen af den nye opstartarkitektur:
- At levere en fuldt verificeret opstartsproces, der dækker alle faser fra firmware til brugerområdet, og bekræfter ægthed og integritet af de indlæste komponenter.
- Binding af kontrollerede ressourcer til TPM PCR-registre med opdeling efter ejere.
- Mulighed for forudbestemmelse af PCR-værdier baseret på de anvendte kerner, initrd, konfiguration og lokal systemidentifikator under opstart.
- Beskyttelse mod rollback-angreb relateret til nedgradering til tidligere sårbare versioner af systemet.
- Forenkling og forbedring af pålideligheden af opdateringer.
- Understøttelse af systemopdateringer, der ikke kræver genanvendelse eller lokal forberedelse af TPM-beskyttede ressourcer.
- Systemets parathed til at gennemføre fjernattestation for at bekræfte korrektheden af den indlæste OS og indstillinger.
- Mulighed for at knytte fortrolige data til bestemte opstartsfaser, f.eks. udtrækning af krypteringsnøgler til roddisken fra TPM.
- At sikre en sikker, automatisk og brugervenlig proces til låsning af nøgler til dekryptering af disken med rodpartitionen.
- Brug af chips, der understøtter TPM 2.0-specifikationen, med mulighed for at nedgradere til systemer uden TPM.
Kilde: opennet.ru
