Проблема проверки тождественности исходных текстов и бинарных сборок

Материал из Викиновостей, свободного источника новостей

21 июня 2013 года

Один из разработчиков KDE попытался проанализировать насколько реально воссоздать бинарный файл, идентичный распространяемым готовым сборкам, при наличии полных исходных текстов, на основе которых была произведена сборка. Таким образом была оценена возможность проверки собран ли представленный исполняемый файл из указанных исходных текстов и содержит ли то, что заявлено создателями сборки.

В качестве эксперимента было произведено сравнение исполняемых файлов, поставляемых в составе дистрибутивов Debian, Fedora и openSUSE, с исполняемым файлом, собранным из доступных пакетов с исходными текстами. Для теста выбран пакет с утилитой tar. В теории, зная все параметры сборки и версии используемых при сборке компонентов, можно воссоздать исходное сборочное окружение, сборка пакета с исходными текстами в котором должна привести к получению тождественных исполняемых файлов. На практике всё оказалось не так просто, при каждой сборке получались разные исполняемые файлы. Основной причиной различий является сохранение в исполняемом файле данных, связанных со временем сборки.

При оценке пересборки пакетов Debian результаты полностью оправдали предположения - различие составило 20 байт, и в этих байтах содержалась дата сборки. Для openSUSE и Fedora не удалось достигнуть повторяемости или хотя бы объяснить причину значительных различий. В качестве наиболее вероятной гипотезы отмечаются возможные отличия в сформированной для тестирования сборочной среде - для сборки использовалась текущая версия тестируемого дистрибутива, но не факт, что аналогичное окружение было использовано разработчиками, а даже при незначительных изменениях используемого инструментария результат меняется кардинально.

Полученные результаты свидетельствуют, что при распространении бинарных сборок недостаточно открывать доступ к коду под свободными лицензиями. Без приведения точной спецификации сборочной среды невозможно проверить на основе представленных исходных текстов собрано приложение или в нём использованы какие-либо модификации. Без возможности проверить тождественность бинарной сборки пользователю остаётся лишь слепо доверять выполнившему сборку сервису.

Примечательно, что ни одна свободная лицензия не учитывает данное обстоятельство и не требует указания точных параметров сборочного инструментария при публикации бинарных версий. В качестве одного из способов решения проблемы называется включение в состав исполняемого файла информации о компонентах окружения, в котором была произведена сборка.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Проблема проверки тождественности исходных текстов и бинарных сборок», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.