Lennart Poettering közzétette a Linux-disztribúciók betöltési folyamatának korszerűsítésére vonatkozó javaslatát, amely a meglévő problémák megoldására és a teljesen hitelesített betöltés egyszerűsítésére összpontosít, ami igazolja a kernel és az alapvető rendszerni környezet hitelességét. A szükséges változtatások, amelyek alkalmazásra kerülnek az új architektúra érdekében, már be vannak építve a systemd kódalapjába, és érintik az olyan komponenseket, mint a systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase és systemd-creds.
A javasolt változások célja egy univerzális UKI (Unified Kernel Image) kép létrehozása, amely egyesíti a Linux kernel képét, a kernel UEFI-ból való indító segédprogramját (UEFI boot stub) és a memóriába betöltött initrd rendszert, amelyet a gyökér fájlrendszer előtti kezdeti inicializálásra használnak. Az initrd RAM-lemez kép helyett az UKI tartalmazhatja az egész rendszert, lehetővé téve teljesen hitelesített rendszeri környezetek létrehozását, amelyeket közvetlenül a memóriába töltenek be. Az UKI-kép PE formátumú végrehajtható fájlként van megformálva, amely nemcsak a hagyományos betöltőkkel, hanem közvetlenül is meghívható az UEFI firmware-ból.
Az UEFI-ból való meghívás lehetősége lehetővé teszi a digitális aláírás általi integritás- és hitelesség-ellenőrzést, amely nemcsak a kernelt, hanem az initrd tartalmát is magában foglalja. Emellett a hagyományos betöltőkből való meghívás támogatása megőrzi az olyan lehetőségeket, mint a több kernel verzió szállítása és az automatikus visszalépés a működő kernelre új kernel telepítése után, ha problémák merülnek fel az új kernellel.
Jelenleg a legtöbb Linux-disztribúcióban a inicializálási folyamat során a következő lánc használatos: firmware → a Microsoft által digitálisan aláírt shim réteg → a disztribúció által digitálisan aláírt GRUB betöltő → a disztribúció által digitálisan aláírt Linux kernel → nem aláírt initrd környezet → gyökér fájlrendszer. Az initrd verifikálásának hiánya a hagyományos disztribúciókban biztonsági problémákat okoz, mivel ebben a környezetben a gyökér fájlrendszer dekódolásához szükséges kulcsok kinyerése is folyik.
Az initrd kép verifikálása nem támogatott, mivel ez a fájl a felhasználó helyi rendszerén keletkezik, és nem lehet hitelesítve a disztribúció digitális aláírásával, ami jelentősen megnehezíti a verificálás megszervezését a SecureBoot mód használata esetén (az initrd hitelesítéséhez a felhasználónak saját kulcsokat kell generálni és feltölteni az UEFI firmware-be). Ezen kívül a meglévő rendszerindítási szervezet nem teszi lehetővé a TPM PCR (Platform Configuration Register) regiszterekből származó információk alkalmazását a felhasználói tér összetevőinek integritásának ellenőrzésére, a shim, grub és kernelen kívül. A fennálló problémák között említendő a rendszerindító frissítésének bonyolultsága és a kulcsok TPM-ben való hozzáférésének korlátozásának hiánya régebbi operációs rendszerek esetében, amelyek nem relevánsak az új frissítés telepítése után.
Az új rendszerindító architektúra bevezetésének fő céljai:
- Teljesen hitelesített rendszerindítási folyamat biztosítása, amely magában foglalja a firmware-től kezdve a felhasználói térig minden lépést, és garantálja a betöltött összetevők hitelességét és integritását.
- A vezérelt erőforrások összekapcsolása a TPM PCR regiszterekkel a tulajdonosok szerinti felosztás szerint.
- A PCR értékeinek előzetes kiszámítása a rendszerindításhoz használt kernel, initrd, konfiguráció és helyi azonosító alapján.
- Védelem a visszagörgetési támadásokkal szemben, amelyek a múltbeli sebezhető verzióra való visszatéréshez kapcsolódnak.
- A frissítések egyszerűsítése és megbízhatóságának növelése.
- Olyan operációs rendszerfrissítések támogatása, amelyek nem igényelnek újraalkalmazást vagy helyi erőforrások előkészítését, amelyek TPM által védettek.
- A rendszer készen áll távoli hitelesítési folyamatok lebonyolítására a betöltött operációs rendszer és beállításainak helyességére vonatkozó megerősítés céljából.
- Bizalmas adatok meghatározott rendszerindítási szakaszokhoz való hozzárendelésének lehetősége, például titkosítási kulcsok TPM-ből való kinyerése a gyökér fájlrendszerhez.
- Biztonságos, automatikus és felhasználói beavatkozást nem igénylő kulcsfeloldási folyamat biztosítása a gyökér partícióval rendelkező meghajtó dekódolásához.
- TPM 2.0 specifikációt támogató chipek használata, lehetőség a TPM nélküli rendszerekre való visszatérésre.
Forrás: opennet.ru
