Lennart Poettering publikoi një propozim për modernizimin e procesit të nisjes së distribucioneve Linux, i orientuar drejt zgjidhjes së problemeve ekzistuese dhe thjeshtimit të organizimit të një nisjeje të plotë të verifikuar, që konfirmon integritetin e kernelit dhe të mjedisit bazë të sistemit. Ndryshimet e nevojshme për zbatimin e arkitekturës së re tashmë janë përfshirë në bazën e kodit të systemd dhe prekin komponentë si systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase dhe systemd-creds.
Ndryshimet e propozuara përqendrohen në krijimin e një imazhi të vetëm universal UKI (Unified Kernel Image), që bashkon imazhin e kernelit Linux, mekanizmin për ngarkimin e kernelit nga UEFI (UEFI boot stub) dhe mjedisin sistemor initrd të ngarkuar në memorie, i cili përdoret për inicializimin fillestar në fazën para montimit të sistemit të skedarëve rrënjë. Në vend të imazhit të RAM-diskut initrd, në UKI mund të paketohet edhe i gjithë sistemi, gjë që bën të mundur krijimin e mjediseve plotësisht të verifikuara të sistemit, të cilat ngarkohen në memorien operative. Imazhi UKI formatohet si një skedar i ekzekutueshëm në formatin PE, i cili mund të ngarkohet jo vetëm me ndihmën e ngarkuesve tradicionalë, por edhe të thirret drejtpërdrejt nga firmware UEFI.
Mundësia e thirrjes nga UEFI lejon përdorimin e verifikimit të integritetit dhe autenticitetit përmes nënshkrimit dixhital, duke mbuluar jo vetëm kernelin, por edhe përmbajtjen e initrd. Njëkohësisht, mbështetja për thirrjen nga ngarkuesit tradicionalë bën të mundur ruajtjen e funksive si ofrimi i disa versioneve të kernelit dhe rikthimi automatik te një kernel funksional nëse pas instalimit të përditësimit zbulohen probleme me kernelin e ri.
Aktualisht, nĂ« shumicĂ«n e distribucioneve Linux gjatĂ« procesit tĂ« inicializimit pĂ«rdoret zinxhiri «firmware â shtresa shim e nĂ«nshkruar nĂ« mĂ«nyrĂ« dixhitale nga Microsoft â ngarkuesi GRUB i nĂ«nshkruar nĂ« mĂ«nyrĂ« dixhitale nga distribucioni â kerneli Linux i nĂ«nshkruar nĂ« mĂ«nyrĂ« dixhitale nga distribucioni â mjedisi initrd i panĂ«nshkruar â sistemi i skedarĂ«ve rrĂ«një». Mungesa e verifikimit tĂ« initrd nĂ« distribucionet tradicionale krijon probleme sigurie, sepse, ndĂ«r tĂ« tjera, nĂ« kĂ«tĂ« mjedis kryhet nxjerrja e çelĂ«save pĂ«r deshifrimin e sistemit tĂ« skedarĂ«ve rrĂ«njĂ«.
Verifikimi i imazhit initrd nuk mbështetet, pasi ky skedar krijohet në sistemin lokal të përdoruesit dhe nuk mund të nënshkruhet me nënshkrimin dixhital të shpërndarjes, gjë që e ndërlikon ndjeshëm organizimin e verifikimit gjatë përdorimit të mënyrës SecureBoot (për të nënshkruar initrd, përdoruesi duhet të gjenerojë çelësat e vet dhe t'i ngarkojë ata në firmware-in UEFI). Për më tepër, organizimi aktual i nisjes nuk lejon përdorimin e informacionit nga regjistrat TPM PCR (Platform Configuration Register) për kontrollin e integritetit të komponentëve të hapësirës së përdoruesit, përveç shim, grub dhe kernelit. Ndër problemet ekzistuese përmenden gjithashtu ndërlikimi i përditësimit të ngarkuesit të nisjes dhe mungesa e mundësisë për të kufizuar qasjen te çelësat në TPM për versionet e vjetra të OS, të cilat bëhen të pavlefshme pas instalimit të përditësimit.
Qëllimet kryesore të zbatimit të arkitekturës së re të nisjes:
- Ofrimi i një procesi nisjeje plotësisht të verifikuar, që mbulon të gjitha fazat nga firmware-i deri te hapësira e përdoruesit dhe konfirmon autenticitetin dhe integritetin e komponentëve të ngarkuar.
- Lidhja e burimeve të kontrolluara me regjistrat TPM PCR me ndarje sipas pronarëve.
- Mundësia e llogaritjes paraprake të vlerave PCR bazuar në kernelin, initrd, konfigurimin dhe identifikuesin lokal të sistemit të përdorur gjatë nisjes.
- Mbrojtje nga sulmet Rollback që lidhen me kthimin në një version të mëparshëm të cenueshëm të sistemit.
- Thjeshtimi dhe rritja e besueshmërisë së përditësimeve.
- Mbështetje për përditësime të OS që nuk kërkojnë riaplikim ose përgatitje lokale të burimeve të mbrojtura nga TPM.
- Gatishmëria e sistemit për kryerjen e attestimit në distancë për të konfirmuar korrektësinë e OS të ngarkuar dhe të konfigurimeve.
- Mundësia e lidhjes së të dhënave konfidenciale me faza të caktuara të nisjes, për shembull, marrja nga TPM e çelësave të enkriptimit për sistemin rrënjë të skedarëve.
- Ofrimi i një procesi të sigurt, automatik dhe që funksionon pa ndërhyrjen e përdoruesit për zhbllokimin e çelësave për dekriptimin e diskut me ndarjen rrënjë.
- Përdorimi i çipave që mbështesin specifikimin TPM 2.0, me mundësi rikthimi te sisteme pa TPM.
Burimi: opennet.ru
