В комментарии к вопросу Ubuntu намеренно заражает свои двоичные файлы, чтобы помочь АНБ? , Хорхе Кастро отмечает, что debian думает о работе с воспроизводимыми сборками . Они заявляют
Почему мы хотим воспроизводимые сборки?
blockquote>
- Независимые проверки того, что двоичный файл соответствует тому, что источник намеревался произвести.
- Справка Multi-Arch: одинаковая совместная установка пакетов (так как им нужно, чтобы каждый соответствующий файл был идентичным байту).
- Уметь генерировать символы отладки для пакетов, у которых нет «пакета отладки».
- Есть ли какие-либо признаки того, что Ubuntu планирует также реализовать воспроизводимые сборки?
( Это копия моего ответа на ubuntu-devel .)
За очень немногими исключениями, почти вся работа Debian над этим будет идти только в пакетах, которые формируют часть набора инструментов сборки пакетов, и, как таковая, Ubuntu унаследует его в ходе естественного процесса слияния и синхронизации пакетов из Debian. Возможными исключениями являются такие вещи, как предлагаемые предзагрузки libfaketime и т. Д., Которые мы можем вставить в сборки; Я, безусловно, хотел бы быть в курсе того, что Debian делает в этой области, не только для защиты от вторжения, но и потому, что в этом есть непосредственная практическая выгода (более безопасная многоархивная обработка).
Я не знаю, что это было конкретно обсуждено в Canonical, главным образом потому, что большинство соответствующих людей в настоящее время довольно надуманно работают над продуктом Ubuntu Touch; но я также думаю, что в Debian нужно сначала поработать, прежде чем что-то поднять.
Этот вопрос несколько плохо определен. Каждый дистрибутив когда-либо будет работать с воспроизводимой сборкой. Любая сборка, которая не содержит информации об окружении, из которого она была построена , воспроизводима . Проблемы возникают из-за внешнего состояния среды сборки.
Хотите "воспроизводимую сборку"?
#include <stdio.h>
int main ( int argc, char * argv[] ) {
printf ("%s\n", "hello world");
return 0;
}
Хотите не воспроизводимую сборку?
#include <stdio.h>
int main ( int argc, char * argv[] ) {
printf ("%s\n", __DATE__); // this will change every day.
return 0;
}
Дело не в том, будет ли Ubuntu "работать с" , Он всегда работал с . Речь идет о том, что будет сделано, чтобы «обеспечить» и «отклонить нарушения» .
С учетом вышесказанного, в настоящее время планируется решить проблемы в GCC и отдельных пакетах. Я не знаю ни о каких планах отклонить вещи, которые не воспроизводимы. Кроме того, есть новый .buildinfo
, который помогает пролить свет на то, почему вещи не могут быть воспроизведены.
См. Также,