Леннарт Поттеринг (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 в процессе инициализации используется цепочка "прошивка → заверенная цифровой подписью Microsoft shim-прослойка → заверенный цифровой подписью дистрибутива загрузчик 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.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter <<<

  • l-xoid
    link
    fedilink
    arrow-up
    0
    ·
    4 years ago

    По факту мне этот детский сад с выяснением градуса нестандартности надоел примерно в 25 лет.

    торвальдс и есть natural born geek

    Он инженер и следует реальности. Всякие красивые теоретические концепции и теоретические же проблемы/угрозы он чморил всю дорогу.

    • cryptOP
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      надоел примерно в 25 лет

      это потому что у тебя это было подростковое. а я наоборот всю жизнь старался сойти за нормального, а когда подрос, понял, что ничего в этом, кроме банальщины, нет. не без радостей, конечно, но все очень незамысловато.

      Он инженер и следует реальности.

      да, Линус крутой. он инженер. но он при этом и гик. очень жаль, что он все-таки не создал единую экосистему линукса.

      • Minona
        link
        fedilink
        arrow-up
        0
        ·
        4 years ago

        единую экосистему линукса

        А подробнее что это?

        • cryptOP
          link
          fedilink
          arrow-up
          0
          ·
          4 years ago

          это чтобы, как во freebsd, внутри проекта было не только ядро.

          а по факту мы уже имеем systemd/Linux, где systemd - это корпоративный код base system.

          • Minona
            link
            fedilink
            arrow-up
            0
            ·
            4 years ago

            А он один бы не смог. Зато смог Лёня и Ко.

            • cryptOP
              link
              fedilink
              arrow-up
              0
              ·
              4 years ago

              смог бы. он бы просто не дал потеру распоясаться.