Леннарт Поттеринг (Lennart Poettering) публикува предложение за модернизиране на процеса на зареждане на Linux дистрибуции, насочено към решаване на съществуващите проблеми и опростяване на организацията на цялостното проверено зареждане, потвърждаващо достоверността на ядрото и основната системна среда. Необходимите за прилагане на новата архитектура промени вече са включени в кодовата база на systemd и засягат компоненти като systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase и systemd-creds.
Предложените промени се състоят в създаването на единен универсален образ UKI (Unified Kernel Image), обединяващ образа на ядрото на Linux, обработчик за зареждане на ядрото от UEFI (UEFI boot stub) и инциализиращото в паметта системно обкръжение initrd, използвано за начална инициализация на етапа преди монтиране на кореновата файлова система. Вместо образа на RAM-диска initrd в UKI може да бъде опакована цялата система, което позволява създаването на напълно проверени системни обкръжения, зареждащи се в оперативната памет. UKI-образът е оформен под формата на изпълним файл в PE формат, който може да бъде зареден не само чрез традиционни зареждачи и директно извикан от UEFI фърмуера.
Възможността за извикване от UEFI позволява използването на проверка на целостта и достоверността чрез цифров подпис, обхващащ не само ядрото, но и съдържанието на initrd. В същото време, поддръжката на извиквания от традиционни зареждачи позволява запазването на такива възможности, като предоставяне на няколко версии на ядрото и автоматично върнате към работещото ядро в случай на проблеми с новото ядро след инсталиране на обновление.
В момента в повечето дистрибуции на Linux по време на инициализация се използва веригата "прошивка → сертифициран цифрово подписан shim слой от Microsoft → сертифициран цифрово подписан загрузчик GRUB на дистрибуцията → сертифицирано цифрово подписано ядро на Linux → несертифицирана среда initrd → коренова ФС". Липсата на верификация на initrd в традиционните дистрибуции създава проблеми със сигурността, тъй като в тази среда се извършва извличане на ключове за декодиране на кореновата ФС.
Верификация на изображението initrd не се поддържа, тъй като този файл се генерира на локалната система на потребителя и не може да бъде заверен с цифров подпис на дистрибуцията, което значително усложнява организацията на контрола при използване на режима SecureBoot (за да се завери initrd, потребителят трябва да генерира свои собствени ключове и да ги качи в UEFI фърмуера). Освен това, съществуващата организация на зареждането не позволява да се използва информацията от регистрите TPM PCR (Platform Configuration Register) за контрол на целостта на компонентите на потребителското пространство, освен shim, grub и ядрото. Сред проблемите се споменава и усложняването на обновяването на зареждача и липсата на възможност за ограничаване на достъпа до ключовете в TPM за стари версии на ОС, които са станали неактуални след инсталирането на обновление.
Основни цели за внедряване на новата архитектура на зареждане:
- Осигуряване на напълно проверен процес на зареждане, обхващащ всички етапи от фърмуера до потребителското пространство, и потвърждаващ достоверността и целостта на зарежданите компоненти.
- Привързване на контролираните ресурси към регистрите TPM PCR с разделение по собственици.
- Възможност за предварително изчисляване на стойностите на PCR на базата на данните, използвани при зареждането на ядрото, initrd, конфигурацията и локалния идентификатор на системата.
- Защита от Rollback-атаки, свързани с връщане към предишна уязвима версия на системата.
- Оптимизиране и повишаване на надеждността на обновленията.
- Поддръжка на обновления на ОС, които не изискват повторно прилагане или локална подготовка на ресурсите, защитени с TPM.
- Готовност на системата за провеждане на дистанционна атестация, за потвърждаване на коректността на зарежданата ОС и настройките.
- Възможност за прикрепване на конфиденциални данни към определени етапи на зареждане, например извличане от TPM на ключовете за криптиране на кореновата файловата система.
- Осигуряване на безопасен, автоматичен и работещ без потребителско участие процес на отключване на ключовете за декриптиране на диска с кореновото разделение.
- Използване на чипове, поддържащи спецификацията TPM 2.0, с възможност за работа с системи без TPM.
Източник: opennet.ru
