Lennart Pottering propozoi një arkitekturë të re boot të verifikuar nga Linux

Lennart Poettering ka publikuar një propozim për të modernizuar procesin e nisjes për shpërndarjet Linux, që synon zgjidhjen e problemeve ekzistuese dhe thjeshtimin e organizimit të një boot të plotë të verifikuar që konfirmon besueshmërinë e kernelit dhe mjedisit themelor të sistemit. Ndryshimet e nevojshme për zbatimin e arkitekturës së re janë përfshirë tashmë në bazën e kodeve systemd dhe prekin komponentë të tillë si systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase dhe systemd-creds.

Ndryshimet e propozuara përfundojnë në krijimin e një imazhi të vetëm universal UKI (Imazhi i unifikuar i kernelit), duke kombinuar imazhin e kernelit Linux, një mbajtës për ngarkimin e kernelit nga UEFI (cung boot UEFI) dhe mjedisin e sistemit initrd të ngarkuar në memorie, i përdorur për inicializimi fillestar në fazën përpara montimit të rrënjës FS. Në vend të një imazhi të tretë të diskut RAM, i gjithë sistemi mund të paketohet në UKI, gjë që ju lejon të krijoni mjedise të verifikuara plotësisht të sistemit të ngarkuara në RAM. Imazhi UKI është formatuar si një skedar i ekzekutueshëm në formatin PE, i cili mund të ngarkohet jo vetëm duke përdorur ngarkues tradicionalë, por mund të thirret direkt nga firmware UEFI.

Mundësia për të thirrur nga UEFI ju lejon të përdorni një kontroll të integritetit të nënshkrimit dixhital që mbulon jo vetëm kernelin, por edhe përmbajtjen e initrd. Në të njëjtën kohë, mbështetja për thirrjet nga ngarkuesit tradicionalë të ngarkimit ju lejon të ruani veçori të tilla si dërgimi i disa versioneve të kernelit dhe rikthimi automatik në një kernel funksional nëse zbulohen probleme me kernelin e ri pas instalimit të përditësimit.

Aktualisht, në shumicën e shpërndarjeve Linux, procesi i inicializimit përdor zinxhirin "firmware → Microsoft shim i nënshkruar dixhitalisht → ngarkues i nisjes GRUB i nënshkruar dixhitalisht nga shpërndarja → kernel Linux i nënshkruar në mënyrë dixhitale → mjedis initrd jo i nënshkruar → root FS". Mungesa e verifikimit initrd në shpërndarjet tradicionale krijon probleme sigurie, pasi, ndër të tjera, në këtë mjedis merren çelësat për deshifrimin e sistemit të skedarëve rrënjë.

Verifikimi i imazhit initrd nuk mbështetet pasi ky skedar është krijuar në sistemin lokal të përdoruesit dhe nuk mund të certifikohet me një nënshkrim dixhital të kompletit të shpërndarjes, gjë që e ndërlikon shumë organizimin e verifikimit kur përdorni modalitetin SecureBoot (për të verifikuar initrd, përdoruesi duhet të gjenerojë çelësat e tij dhe t'i ngarkojë ato në firmware UEFI). Për më tepër, organizata aktuale e nisjes nuk lejon përdorimin e informacionit nga regjistrat TPM PCR (Platform Configuration Register) për të kontrolluar integritetin e komponentëve të hapësirës së përdoruesit, përveç shimit, grub dhe kernelit. Ndër problemet ekzistuese, përmendet edhe kompleksiteti i përditësimit të ngarkuesit dhe pamundësia për të kufizuar aksesin në çelësat në TPM për versionet e vjetra të OS që janë bërë të parëndësishme pas instalimit të përditësimit.

Qëllimet kryesore të prezantimit të arkitekturës së re të ngarkimit janë:

  • Sigurimi i një procesi nisjeje të verifikuar plotësisht që shtrihet nga firmware në hapësirën e përdoruesit, duke konfirmuar vlefshmërinë dhe integritetin e komponentëve që nisen.
  • Lidhja e burimeve të kontrolluara me regjistrat TPM PCR, të ndara nga pronari.
  • Aftësia për të llogaritur paraprakisht vlerat e PCR bazuar në kernelin, initrd, konfigurimin dhe ID-në e sistemit lokal të përdorur gjatë nisjes.
  • Mbrojtje kundër sulmeve të rikthimit të lidhura me kthimin në një version të mëparshëm të cenueshëm të sistemit.
  • Thjeshtoni dhe rrisni besueshmërinë e përditësimeve.
  • Mbështetje për përditësimet e OS që nuk kërkojnë riaplikim ose sigurim lokal të burimeve të mbrojtura nga TPM.
  • Sistemi është gati për certifikim në distancë për të konfirmuar korrektësinë e OS dhe cilësimeve të ngarkuara.
  • Mundësia për të bashkangjitur të dhëna të ndjeshme në faza të caktuara të nisjes, për shembull, nxjerrja e çelësave të enkriptimit për sistemin e skedarëve rrënjë nga TPM.
  • Sigurimi i një procesi të sigurt, automatik dhe pa përdorues për zhbllokimin e çelësave për dekriptimin e një disku të ndarjes rrënjësore.
  • Përdorimi i çipave që mbështesin specifikimin TPM 2.0, me aftësinë për t'u kthyer në sisteme pa TPM.

Burimi: opennet.ru

Shto një koment