Детерминированная компиляция
Детерминированная компиляция, также известная как воспроизводимая сборка — процесс компиляции программного обеспечения, который гарантированно воспроизводим. Он позволяет удостовериться, что результирующий двоичный код в точности соответствует исходному коду. Исходный код скомпилированный с использованием детерминированной компиляции будет всегда выводить один и тот же двоичный файл вплоть до бита.[1][2]
Детерминированная компиляция может выступать как часть цепочки доверия; исходный код может быть подписан цифровой подписью и детерминированная компиляция позволяет доказать, что компиляция двоичного кода была осуществлена из доверенного исходного кода.
Методика[править | править код]
Чтобы процесс компиляции, был детерминированным, входные данные для компилятора должны быть одинаковы, независимо от используемой среды сборки. Это, как правило, связана с очисткой переменных, которые могут меняться, такие как timestamp, локалей и путей.
Системы сборки, такие как Gitian[3], могут быть использованы для автоматизации воспроизводимости процесса сборки.
История[править | править код]
Одним из первых проектов по продвижению воспроизводимых сборок был биткоин-проект с Gitian.
Позже, в 2013 году проект Tor начал использовать Gitian для воспроизводимости своих сборок [4]
Список литературы[править | править код]
- ↑ reproducible-builds.org . reproducible-builds.org. — «Reproducible builds are a set of software development practices which create a verifiable path from human readable source code to the binary code used by computers....build system needs to be made entirely deterministic: transforming a given source must always create the same result.» Дата обращения: 22 августа 2016. Архивировано 20 мая 2016 года.
- ↑ Ratliff, Emily Establishing Correspondence Between an Application and its Source Code | SecurityWeek.com . www.securityweek.com. SecurityWeek (4 апреля 2016). Дата обращения: 22 августа 2016. Архивировано 20 сентября 2016 года.
- ↑ Gitian: a secure software distribution method (англ.). gitian.org. Дата обращения: 10 января 2018. Архивировано 21 декабря 2017 года.
- ↑ Deterministic Builds Part Two: Technical Details. Архивная копия от 28 августа 2017 на Wayback Machine October 04, 2013
Внешние ссылки[править | править код]
- reproducible-builds.org Архивная копия от 20 мая 2016 на Wayback Machine
- Воспроизводимые сборки на Debian Архивная копия от 25 января 2021 на Wayback Machine