Lennarts Poterings ierosināja jaunu Linux pārbaudītu sāknēšanas arhitektūru

Lennart Poettering ir publicējis priekšlikumu modernizēt Linux izplatīšanu sāknēšanas procesu, kura mērķis ir atrisināt esošās problēmas un vienkāršot pilnībā pārbaudītas sāknēšanas organizēšanu, kas apstiprina kodola un pamatā esošās sistēmas vides uzticamību. Jaunās arhitektūras ieviešanai nepieciešamās izmaiņas jau ir iekļautas systemd kodu bāzē un ietekmē tādus komponentus kā systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase un systemd-creds.

Ierosinātās izmaiņas ir saistītas ar viena universāla attēla UKI (Unified Kernel Image) izveidi, kas apvieno Linux kodola attēlu, apdarinātāju kodola ielādei no UEFI (UEFI sāknēšanas stub) un atmiņā ielādēto initrd sistēmas vidi, ko izmanto sākotnējā inicializācija posmā pirms saknes FS uzstādīšanas. Initrd RAM diska attēla vietā visu sistēmu var iepakot UKI, kas ļauj izveidot pilnībā pārbaudītas sistēmas vides, kas tiek ielādētas RAM. UKI attēls ir formatēts kā izpildāms fails PE formātā, kuru var ielādēt ne tikai izmantojot tradicionālos sāknēšanas ielādētājus, bet arī izsaukt tieši no UEFI programmaparatūras.

Iespēja zvanīt no UEFI ļauj izmantot digitālā paraksta integritātes pārbaudi, kas aptver ne tikai kodolu, bet arī initrd saturu. Tajā pašā laikā atbalsts izsaukšanai no tradicionālajiem sāknēšanas ielādētājiem ļauj saglabāt tādas funkcijas kā vairāku kodola versiju piegāde un automātiska atgriešana uz strādājošu kodolu, ja pēc atjauninājuma instalēšanas tiek atklātas problēmas ar jauno kodolu.

Pašlaik lielākajā daļā Linux izplatījumu inicializācijas procesā tiek izmantota ķēde “programmaparatūra → digitāli parakstīts Microsoft shim slānis → GRUB sāknēšanas ielādētājs, kas digitāli parakstīts ar izplatīšanas palīdzību → digitāli parakstīts Linux kodols → neparakstīta initrd vide → saknes FS”. Initrd pārbaudes trūkums tradicionālajos izplatījumos rada drošības problēmas, jo, cita starpā, šajā vidē tiek izgūtas atslēgas saknes failu sistēmas atšifrēšanai.

Initrd attēla pārbaude netiek atbalstīta, jo šis fails tiek ģenerēts lietotāja lokālajā sistēmā un to nevar sertificēt ar izplatīšanas komplekta ciparparakstu, kas ievērojami sarežģī pārbaudes organizēšanu, izmantojot SecureBoot režīmu (lai pārbaudītu initrd, lietotājam ir jāģenerē savas atslēgas un jāielādē tās UEFI programmaparatūrā). Turklāt pašreizējā sāknēšanas organizācija neļauj izmantot informāciju no TPM PCR (Platform Configuration Register) reģistriem, lai kontrolētu citu lietotāja telpas komponentu integritāti, izņemot shim, grub un kodolu. Starp esošajām problēmām tiek minēta arī bootloader atjaunināšanas sarežģītība un nespēja ierobežot piekļuvi TPM atslēgām vecākām OS versijām, kuras pēc atjauninājuma instalēšanas ir kļuvušas nebūtiskas.

Jaunās ielādes arhitektūras ieviešanas galvenie mērķi ir:

  • Nodrošina pilnībā pārbaudītu sāknēšanas procesu, kas aptver no programmaparatūras līdz lietotāja vietai, apstiprinot ielādējamo komponentu derīgumu un integritāti.
  • Kontrolēto resursu saistīšana ar TPM PCR reģistriem, atdalīti pēc īpašnieka.
  • Iespēja iepriekš aprēķināt PCR vērtības, pamatojoties uz kodolu, initrd, konfigurāciju un sāknēšanas laikā izmantoto lokālās sistēmas ID.
  • Aizsardzība pret atcelšanas uzbrukumiem, kas saistīti ar atgriešanos uz iepriekšējo ievainojamo sistēmas versiju.
  • Vienkāršojiet un palieliniet atjauninājumu uzticamību.
  • Atbalsts OS atjauninājumiem, kuriem nav nepieciešama TPM aizsargāto resursu atkārtota pielietošana vai vietēja nodrošināšana.
  • Sistēma ir gatava attālinātai sertifikācijai, lai apstiprinātu ielādētās OS un iestatījumu pareizību.
  • Iespēja pievienot sensitīvus datus noteiktiem sāknēšanas posmiem, piemēram, izvilkt saknes failu sistēmas šifrēšanas atslēgas no TPM.
  • Nodrošina drošu, automātisku un lietotājam brīvu procesu atslēgu atbloķēšanai, lai atšifrētu saknes nodalījuma disku.
  • Mikroshēmu izmantošana, kas atbalsta TPM 2.0 specifikāciju, ar iespēju atgriezties sistēmās bez TPM.

Avots: opennet.ru

Pievieno komentāru