В ответ на критику (http://www.opennet.me/opennews/art.shtml?num=37246) о проблематичности формирования rpm-пакетов из исходных текстов, полностью аналогичных пакетам, поставляемым в дистрибутиве, из-за большого влияния условий сборки на итоговый бинарный файл, разработчики из компании Red Hat подготовили (http://securityblog.redhat.com/2013/09/18/reproducible-build.../) инструкцию и набор скриптов (https://github.com/kholia/ReproducibleBuilds) для обеспечения повторяемых сборок. Указанная инструментарий позволяет на основе любого src.rpm-пакета с исходным кодом собрать rpm-пакет, на бинарном уровне полностью соответствующий размещённому в репозитории эталону, что может быть использовано для проверки тождественности и отсутствия закладок. Аналогичный проект по обеспечению повторяемых сборок развивается (https://wiki.debian.org/ReproducibleBuilds) разработчиками Debian.
URL: http://securityblog.redhat.com/2013/09/18/reproducible-build.../
Новость: http://www.opennet.me/opennews/art.shtml?num=37951
Вот что значит "прислушиваться к сообществу"! Молодцы!
hasher в Alt Linux уже сто лет как есть, а эти только зачесались.
По ссылки ты не ходил? Как обычно? Хешер не про это. Имеется ввиду полностью бинарная повторяемость, до байта. Я думаю твой хешер этого не сделает, также как pbuilder в дебиане.[сообщение отредактировано модератором]
> По ссылки ты не ходил? Как обычно? Хешер не про это. Имеется
> ввиду полностью бинарная повторяемость, до байта. Я думаюВозьмите и почитайте:
http://www.altlinux.org/Hasher
http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.htmlОбратите внимание на даты.
Если мне не изменяет мой склероз, то в какой-то из дискуссий пробегала информация что в некоторых случаях в бинарник попадает дата сборки. (Про формирование документации и сборку некоторых скриптовых библиотек молчу: там с сохранением даты в формируемых файлах сталкивался лично.) Я не помню, чтобы hasher боролся с таким поведением. (Может и борется, но оно мимо меня прошло.)PS: Как решено это в представленных скриптах (и решено ли вообще) -- не знаю.
> Если мне не изменяет мой склероз, то в какой-то из дискуссий пробегала
> информация что в некоторых случаях в бинарник попадает дата сборки.В обсуждавшемся случае это зависит от компилятора, из gcc уже довольно давно убрали (выполнялось руками, так что несколько секунд между вызовами make прошло):
$ echo "main () { return 0; }" > tstamp.cPS: привет, Лёш :)
$ make tstamp
cc tstamp.c -o tstamp
$ md5sum tstamp > tstamp-1
$ rm tstamp
$ make tstamp
cc tstamp.c -o tstamp
$ md5sum tstamp > tstamp-2
$ diff tstamp-{1,2}
$ gcc -v 2>&1 | tail -1
gcc version 4.7.2 20121109 (ALT Linux 4.7.2-alt7) (GCC)
$
>> Если мне не изменяет мой склероз, то в какой-то из дискуссий пробегала
>> информация что в некоторых случаях в бинарник попадает дата сборки.
> В обсуждавшемся случае это зависит от компилятора, из gcc уже довольно давно
> убрали (выполнялось руками, так что несколько секунд между вызовами make прошло):Значит сейчас проблемы будут только с теми пакетами, где дата зашивается в выходные файлы сборочными скриптами. Спасибо, буду знать.
> PS: привет, Лёш :)
Привет, Миш :-)
> Значит сейчас проблемы будут только с теми пакетами, где дата
> зашивается в выходные файлы сборочными скриптами. Спасибо, буду знать.Например, с теми, в которых лежат .cpio "упаковочки" с датами каждого файла?
> hasher в Alt Linux уже сто лет как есть, а эти только
> зачесались.Помнится, hasher отлично собирал php5-memcached-5.3.8.rpm из федоровского php5-memcached-5.3.11.src.rpm.
Я думаю, вы понимаете, насколько там не до бинарной совместимости с исходником :)
>насколько там не до бинарной совместимости с исходником"насколько там не до бинарного совпадения получаемых .rpm" //fixed
> :)
> "насколько там не до бинарного совпадения получаемых .rpm" //fixedДа, так точнее
> ПомнитсяВот это склероз, даже мне завидно стало.
>> Помнится
> Вот это склероз, даже мне завидно стало.По теме есть что сказать?
>>> Помнится
>> Вот это склероз, даже мне завидно стало.(даже не знаю, что надо было сделать, чтоб такое "помнилось")
> По теме есть что сказать?
Да, но надо бы тогда посмотреть на спек, который мог быть запакован в файле с названием php5-memcached-5.3.11.src.rpm, и на строчку Version: оттуда. А затем поинтересоваться, как именно запускался hsh, потому как федорин пакет не пройдёт проверку %changelog.
"различий во времени сборки"
фаза луны тоже влияет
> фаза луны тоже влияетРедхатовский скрипт выставляет ее правильно.
Может теперь можно будет повлиять на ментейнеров и заставить, хотябы тот же wine, собирать без ассоциаций к файлам.
На Генту вам сударь надо. Ну либо в своем любимом дистре ручками, если только Вайн не устраивает.
> На Генту вам сударь надо. Ну либо в своем любимом дистре ручками,
> если только Вайн не устраивает.Нет уж! Лучше они - к нам.
Когда, панимашь, будет "повторяемая бинарная сборка" в Gentoo, Арче и Фре??! Ась?
> Когда, панимашь, будет "повторяемая бинарная сборка" в Gentoo, Арче и Фре??! Ась?Никогда, т.к. фиксация сборочной среды ещё сложней по постановке задачи.
> Может теперь можно будет повлиять на ментейнеров и заставить, хотябы тот же
> wine, собирать без ассоциаций к файлам.Замечательно. А как вам комментарий связан с новостью?
> с исходным кодом собрать rpm-пакет, на бинарном уровне полностью соответствующий размещённому
> в репозитории эталону, что может быть использовано для проверки тождественности и
> отсутствия закладок.- а что это у вас шумит такое, словно вентилятор?
- а это Кен Томпсон в могиле вертится.ЗЫ как правильно напоминают из зала, Томпсон жив, дай бог ему сто лет здоровья. mea culpa. но в общем такие фразы про отсутствие закладок все равно свою долю котеночков собирают.
В какой еще могиле?
> В какой еще могиле?oh shit это я с прямым углом^W^WРитчи перепутал :()
> но в общем такие фразы про отсутствие закладок все равно свою долю котеночков собирают.А шо вам в них таки не нравится?
>> но в общем такие фразы про отсутствие закладок все равно свою долю котеночков собирают.
> А шо вам в них таки не нравится?котят жалко
>>полностью соответствующий размещённому в репозитории эталону, что может быть использовано для проверки тождественности и отсутствия закладок.
>напоминают из зала, Томпсон жив, дай бог ему сто лет
>но в общем такие фразы про отсутствие закладок все равно
>свою долю котеночков собирают.Да, исходная посылка, что совпадающая бинарная пересборка _как-то_ доказывает отсутствие закладок, точно собирает горы трупов котят, пони и единорогов.
+++Ken Thompson, Reflections on Trusting Trust, 1984 <---Будет, что попраздновать вместе с 30-летием GNU
Ободряющая новость. Может у меня паранойя, но у меня не раз были сомнения: а не запихнул ли сборщик пакета что-то нехорошее в него? И ведь подпись мейнтейнера не гарантирует безопасности пакета. Любого сопровождающего пакетов те же парни из спецслужб могут быстро склонить к сотрудничеству. А теперь у таких недоверчивых людей как я появилась новая игрушка. Fedora, как всегда, рулит!
А что мешает мэйнтейнеру изменить исходный код своего пакета и добавить закладку? В таком случае собирай его сколько хочешь! :)
> А что мешает мэйнтейнеру изменить исходный код своего пакета и добавить закладку?Новость читал? Закладка непозволит бинарному пакету сооотвествовать байт в байт пакету собронному из исходников.
Вам говорят, что закладка то может быть в исходниках.
> Вам говорят, что закладка то может быть в исходниках.Причём другого пакета!
ничто не мешает. надо смотреть диффы с апстримом.
> ничто не мешает. надо смотреть диффы с апстримом.После _полного_ аудита исходников з апстрима. Конечно!
>> ничто не мешает. надо смотреть диффы с апстримом.
> После _полного_ аудита исходников з апстрима. Конечно!и собирать собственным компилятором. желательно - написанным вручную машинным кодом.
> и собирать собственным компилятором. желательно — написанным вручную машинным кодом.не поможет: закладки-то ещё и в железе могут быть!
Понимаете, весьма мало кем интересуются парни из спецслужб, а для более легких случаев подпись маинтайнера и его репутация - вполне достаточная защита.
> А теперь у таких недоверчивых людей как я появилась новая игрушка.Годков десять как появилась, милай.
> Fedora, как всегда, рулит!
В данном случае она дичайше тупит. Особенно с учётом того факта, что люди, которые в курсе альтовских наработок в этой области -- в шляпе есть уже не первый год.
Дык эти люди наверное воспроизвели для себя инструмент и пользуются втихаря. А тут вдруг поделиться стали просить, вот и обнародовали, видимо.
Новость - не прикольно.
Вот если бы они налабали скрипт который из бинарников сырцы восстановили....
> Новость - не прикольно.
> Вот если бы они налабали скрипт который из бинарников сырцы восстановили....Бинарно совпадаюшие с исходными!! :->
и так -- вторая половина 2013-года....сколько лет прошло уж и вот только щаз....
> ...сколько лет прошло уж и вот только щаз....На опеннете наконец-то устышат про '84 Trusting Trust? //Я угадал? Или то был просто бейт:(
А зачем всё это если закладку можно внести в сам эталонный src.rpm-пакет, непосредственно в исходники ядра просто предложив очередной патч (не зря же Линус "кагбэ в шутку" кивал головой). Этим и будут заниматься серьёзные люди. А от пионеров да, может и будет дополнительная опция защиты.
МЕГА-костыли. А в Дебиане всё это "из коробки"
> МЕГА-костыли. А в Дебиане всё это "из коробки"Там есть ещё один моментик, до которого и дебиан не дорос, помнтся, и уж тем более федора.
Опять же см. http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.html
PS: ldv@ живьём порасспрашивать можно будет завтра-послезавтра в Калуге: http://www.altlinux.ru/news/archive/2013/09/item/702/
>> МЕГА-костыли. А в Дебиане всё это "из коробки"
> Там есть ещё один моментик, до которого и дебиан не дорос, помнтся,
> и уж тем более федора.
> Опять же см. http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.html
> PS: ldv@ живьём порасспрашивать можно будет завтра-послезавтра в Калуге: http://www.altlinux.ru/news/archive/2013/09/item/702/Пф... pbuilder. В Нексенте был zbuilder
>>завтра-послезавтра в Калуге:
>> altlinux.ru/news/archive/2013/09/item/702/Кстати, спасибо! Интересно полистать. //'84 легким движением - в '74:
"""Проблема доверенного компилятора впервые была обозначена в 1974 году в закрытой публикации, а впервые публично сформулирована — десять лет спустя Кеном Томпсоном в его Тьюринговской лекции
> Пф... pbuilder.
Судя по ""hasher похож на более ранние [...] sbuild/pbuilder из Debian,[...], но в отличие от них спроектирован так, чтобы не допускать влияния собираемого пакета на хост-систему, а также взаимного влияния собирающихся пакетов."" @ altlinux.org/Hasher ...
...одно из двух^Wтрёх:
либо авторы той страницы не видят разницы между sbuild и pbuilder,
либо fakeroot+chroot в pbuilder-е не рассматривается, как достаточная защита от "влияния", или [традиционное] "не являются средствами безопасности",
либо указывается на то, что pbuilder, в частности, проектировался для чего-то другого (=постановка задачи не совпала).
> ...одно из двух^Wтрёх:http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.html по буковкам C, R, U.
PS: про zbuilder в nexenta и прочие z/OG в IBM не в курсе.
>> ...одно из двух^Wтрёх:
> http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.html по буковкам C, R,
> U.В сравнении с
http://www.netfort.gr.jp/~dancer/software/pbuilder.html.en
http://lists.debian.org/debian-devel/2001/08/msg01895.html, понятно, что третий случай - постановка задачи другая. Академ.сорс с рописью ди-ерсте-колонне-марширт против "у меня тут скрипт. работает, вроде. загружаю в Debian".
А так это _всё_ наколенные скрипты: каждый работает только в одном дистибутиве и/или в присутствии автора. Например: почему pbuilder/hasher/mock нет в пакетах "конкурирующего" дистрибутива (не Deb/не Alt/не RH-like).
Re: C/R/U -- При использовании fakeroot три пользователя и в pbuilder есть: реальный C, запускающий pbuilder; [fake]root R ставящий зависимости в chroot-е; и U c uid BUILDUSERID=1234 из pbuilderrc. //От fakeroot-а не всё работает, правда (mount).