Как проверить, что двоичный файл действительно был собран с использованием определенной версии git commit/release, а не собран из измененной версии.
Для небольшого проекта мы можем собрать его самостоятельно, но для крупных проектов, таких как кастомные прошивки Android, как проверить, действительно ли сборка сделана из релиза git, за который они себя выдают?
Редактировать: Не могу ожидать, что исполняемые файлы с открытым исходным кодом будут подписаны, так как они бесплатны. Загрузки производятся со стороннего сайта.
решение1
Невозможно ожидать, что двоичные файлы с открытым исходным кодом будут подписаны, поскольку они бесплатны.
Здесь нет противоречия: подпись тоже бесплатна. Я не думаю, что это поможет, потому что кто-то может злонамеренно собрать из измененных исходников, а затем подписать двоичный файл. Так что подпись работает только в том случае, если вы доверяете оригинальному сборщику и хотите убедиться, что двоичный файл действительно тот, что он предоставил, а не измененная версия.
Похоже, вы ищетевоспроизводимые сборки. Чтобы это работало, проект должен быть основан на технологическом стеке и наборе инструментов, которые поддерживают воспроизводимые сборки. Если это не так, то вам не повезло. Если это так, вы можете собрать его самостоятельно и сравнить результаты. Вы правы, это может быть непрактично для больших проектов. К сожалению, безопасность часто достигается за счет удобства.
Стоит отметить, что в конечном итоге вы также доверяете тому, чтоtoolchain не является вредоносным. То же самое касается оборудования, на котором вы строите. Вам придется кому-то доверять, если только вы не готовы собрать оборудование самостоятельно и провести обратную разработку всей цепочки инструментов.