В NixOS обеспечена поддержка повторяемых сборок для iso-образа
21 июня 2021 года
Разработчики дистрибутива NixOS сообщили о реализации поддержки верификации целостности минимального iso-образа (iso_minimal.x86_64-linux) при помощи механизма повторяемых сборок. Ранее повторяемые сборки были доступны на уровне отдельных пакетов, а теперь расширены и для всего iso-образа. Любой пользователь может сформировать iso-образ, полностью идентичный с предоставляемым для загрузки iso-образом, и убедиться, что он собран из предоставляемых исходных текстов и не содержит скрытых изменений. Для автоматизации проверки iso-образа NixOS при помощи повторяемых сборок подготовлен специальный скрипт. На следующем этапе повторяемые сборки планируется обеспечить для полного iso-образа с рабочим столом GNOME.
Повторяемые сборки являются важным звеном обеспечения безопасности, так как дают возможность самостоятельно проверить, что предлагаемые дистрибутивом сборки байт в байт совпадает со сборками, собранными лично из исходных текстов. Без возможности проверить тождественность бинарной сборки пользователю остаётся лишь слепо доверять чужой сборочной инфраструктуре, компрометация компилятора или сборочного инструментария в которой может привести к подстановке скрытых закладок. Для обеспечения повторяемых сборок требуется воспроизвести начинку и параметры сборочного окружения, использовать идентичные версии программ, зависимостей и загрузочных компонентов, исключить внесение меняющихся данных (метки времени, случайные заполнители и т.п.), а также сохранить порядок сборки файлов и поставки пакетов в iso-образе.
Напомним, что дистрибутив NixOS основан на пакетном менеджере Nix и предоставляет ряд собственных разработок, упрощающих настройку и сопровождение системы. Например, в NixOS используется единый файл системной конфигурации (configuration.nix), предоставляется возможность быстрого отката обновлений, присутствует поддержка переключения между различными состояниями системы, поддерживается установка индивидуальных пакетов отдельными пользователями (пакет ставится в домашний каталог) и возможна одновременная установка нескольких версий одной программы. При использовании Nix пакеты устанавливаются в отдельное дерево директорий /nix/store или поддиректорию в каталоге пользователя. Например, пакет устанавливается как /nix/store/f2b5...8a563-firefox-89.0.1/, где "f2b5..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
Пакеты оформляются в виде контейнеров, содержащих необходимые для работы приложений компоненты. Между пакетами возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Возможна как загрузка готовых бинарных пакетов из репозитория (при установке обновлений к бинарным пакетам загружаются только delta-изменения), так и сборка из исходных текстов со всеми зависимостями. Коллекция пакетов представлена в специальном репозитории Nixpkgs.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.