* [devel] Как узнать, что пакет установлен из репозитория?
@ 2023-04-27 22:15 Vitaly Lipatov
2023-04-27 22:26 ` Dmitry V. Levin
` (2 more replies)
0 siblings, 3 replies; 25+ messages in thread
From: Vitaly Lipatov @ 2023-04-27 22:15 UTC (permalink / raw)
To: ALT Linux Team development discussions
Хотелось бы иметь способ узнать происхождение пакета: взят ли он из
репозитория (в том числе конкретного стабильного репозитория), а в
идеале бы ещё и знать, что пакет прошёл QA.
Наверное, можно принять допущение, что при этом пакет имеет актуальную
версию (последнюю, соответствующую версии в репозитории) и установлен в
систему из подписанного репозитория.
Вопрос возник из обсуждения
https://bugzilla.altlinux.org/show_bug.cgi?id=44314#c44
Предварительно, пакет может быть
- из репозитория
- из какого-то другого репозитория
- установлен со стороны
- перепакован из чего-то с помощью epm repack
--
С уважением,
Виталий Липатов,
ALT Linux Team
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-04-27 22:15 [devel] Как узнать, что пакет установлен из репозитория? Vitaly Lipatov
@ 2023-04-27 22:26 ` Dmitry V. Levin
2023-04-28 0:39 ` Vitaly Lipatov
2023-04-28 6:37 ` Anton Farygin
2023-04-27 23:17 ` Leonid Krivoshein
2 siblings, 2 replies; 25+ messages in thread
From: Dmitry V. Levin @ 2023-04-27 22:26 UTC (permalink / raw)
To: ALT Devel discussion list
On Fri, Apr 28, 2023 at 01:15:09AM +0300, Vitaly Lipatov wrote:
> Хотелось бы иметь способ узнать происхождение пакета: взят ли он из
> репозитория (в том числе конкретного стабильного репозитория), а в
> идеале бы ещё и знать, что пакет прошёл QA.
Непонятно, зачем хочется это знать, особенно если ...
> Наверное, можно принять допущение, что при этом пакет имеет актуальную
> версию (последнюю, соответствующую версии в репозитории) и установлен в
> систему из подписанного репозитория.
... особенно если нельзя принимать такие допущения.
> Вопрос возник из обсуждения
> https://bugzilla.altlinux.org/show_bug.cgi?id=44314#c44
>
> Предварительно, пакет может быть
> - из репозитория
> - из какого-то другого репозитория
> - установлен со стороны
> - перепакован из чего-то с помощью epm repack
Если есть репозиторий, то можно что-то сделать в духе скриптов из пакета apt-scripts.
--
ldv
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-04-27 22:15 [devel] Как узнать, что пакет установлен из репозитория? Vitaly Lipatov
2023-04-27 22:26 ` Dmitry V. Levin
@ 2023-04-27 23:17 ` Leonid Krivoshein
2023-04-28 7:23 ` [devel] " Sergey V Turchin
2 siblings, 1 reply; 25+ messages in thread
From: Leonid Krivoshein @ 2023-04-27 23:17 UTC (permalink / raw)
To: devel
Hi!
On 4/28/23 01:15, Vitaly Lipatov wrote:
> Хотелось бы иметь способ узнать происхождение пакета: взят ли он из
> репозитория
apt-cache list-extras поможет в этом.
> (в том числе конкретного стабильного репозитория), а в идеале бы ещё и
> знать, что пакет прошёл QA.
А это закрытая информация. ))
Впрочем, если текущий бранч -- не Сизиф, пакет в любом случае проходит QA.
--
WBR, Leonid Krivoshein.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-04-27 22:26 ` Dmitry V. Levin
@ 2023-04-28 0:39 ` Vitaly Lipatov
2023-04-28 1:01 ` Leonid Krivoshein
2023-04-28 6:37 ` Anton Farygin
1 sibling, 1 reply; 25+ messages in thread
From: Vitaly Lipatov @ 2023-04-28 0:39 UTC (permalink / raw)
To: ALT Linux Team development discussions; +Cc: Dmitry V. Levin
Dmitry V. Levin писал(а) 28.4.23 1:26:
> On Fri, Apr 28, 2023 at 01:15:09AM +0300, Vitaly Lipatov wrote:
>> Хотелось бы иметь способ узнать происхождение пакета: взят ли он из
>> репозитория (в том числе конкретного стабильного репозитория), а в
>> идеале бы ещё и знать, что пакет прошёл QA.
>
> Непонятно, зачем хочется это знать, особенно если ...
Чтобы по-разному относиться к своим пакетам и к чужим.
Вот казалось бы, есть у нас в rpm-пакете поля
Packager
Vendor
Distribution
Но Packager в спеке выставляет кто как хочет.
Vendor зачастую ALT Linux Team (впрочем, и у любого, кто воспользовался
hasher), но вот у пакета yandex-browser-stable в репозитории Vendor
YANDEX LLC
Distribution будет ALT или ALT* у любого пакета, собранного с помощью
rpmbuild в ALT.
просто потому что так записано в
/usr/lib/rpm/platform/x86_64-linux/macros
>> Наверное, можно принять допущение, что при этом пакет имеет актуальную
>> версию (последнюю, соответствующую версии в репозитории) и установлен
>> в
>> систему из подписанного репозитория.
>
> ... особенно если нельзя принимать такие допущения.
Я имел в виду, что если удостовериться в том, что в систему установлен
именно пакет из репозитория (имеющий ту же контрольную сумму, например,
что и пакет в репозитории), то по подписи репозитория можно определить
его поставщика. Раз уж почему-то мы не можем определить ничего по
подписи пакета.
> Если есть репозиторий, то можно что-то сделать в духе скриптов из
> пакета apt-scripts.
Ну то есть сам пакет достаточно обезличен, и надежда только на выяснение
через репозиторий.
--
С уважением,
Виталий Липатов,
ALT Linux Team
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-04-28 0:39 ` Vitaly Lipatov
@ 2023-04-28 1:01 ` Leonid Krivoshein
2023-05-01 12:33 ` Vitaly Lipatov
0 siblings, 1 reply; 25+ messages in thread
From: Leonid Krivoshein @ 2023-04-28 1:01 UTC (permalink / raw)
To: devel
On 4/28/23 03:39, Vitaly Lipatov wrote:
> Dmitry V. Levin писал(а) 28.4.23 1:26:
>> On Fri, Apr 28, 2023 at 01:15:09AM +0300, Vitaly Lipatov wrote:
>>> Хотелось бы иметь способ узнать происхождение пакета: взят ли он из
>>> репозитория (в том числе конкретного стабильного репозитория), а в
>>> идеале бы ещё и знать, что пакет прошёл QA.
>>
>> Непонятно, зачем хочется это знать, особенно если ...
> Чтобы по-разному относиться к своим пакетам и к чужим.
> Вот казалось бы, есть у нас в rpm-пакете поля
> Packager
> Vendor
> Distribution
>
> Но Packager в спеке выставляет кто как хочет.
>
> Vendor зачастую ALT Linux Team (впрочем, и у любого, кто
> воспользовался hasher), но вот у пакета yandex-browser-stable в
> репозитории Vendor YANDEX LLC
>
> Distribution будет ALT или ALT* у любого пакета, собранного с помощью
> rpmbuild в ALT.
> просто потому что так записано в
> /usr/lib/rpm/platform/x86_64-linux/macros
>
Поля можно заполнить произвольно, собрав пакет не на сборочнице. Да и на
сборочнице тоже. Они не определяют источник установки, это просто
метаданные некоего архива.
>
>>> Наверное, можно принять допущение, что при этом пакет имеет актуальную
>>> версию (последнюю, соответствующую версии в репозитории) и установлен в
>>> систему из подписанного репозитория.
>>
>> ... особенно если нельзя принимать такие допущения.
> Я имел в виду, что если удостовериться в том, что в систему установлен
> именно пакет из репозитория (имеющий ту же контрольную сумму,
> например, что и пакет в репозитории), то по подписи репозитория можно
> определить его поставщика. Раз уж почему-то мы не можем определить
> ничего по подписи пакета.
>
>> Если есть репозиторий, то можно что-то сделать в духе скриптов из
>> пакета apt-scripts.
> Ну то есть сам пакет достаточно обезличен, и надежда только на
> выяснение через репозиторий.
>
Проверка принадлежности к репозиторию -- функционал более высокого
порядка, нежели RPM, это уровень APT'а, и такая проверка может быть
выполнена только для актуальной версии пакета, т.е. на корректно
обновлённой системе.
Природа задач инвентаризации в целях починки ошибочна по своей сути,
нужно стремиться изначально собирать систему из правильных источников и
по правильной технологии, чтобы потом не чинить, не заниматься
инвентаризацией.
Если пользователь притащил пакет не из репозитория или даже один файл
сложил в область ответственности RPM, его систему уже можно считать не
поддерживаемой, консистентность обновления уже нельзя гарантировать.
--
WBR, Leonid Krivoshein.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
@ 2023-04-28 6:35 ` Anton Farygin
1 sibling, 0 replies; 25+ messages in thread
From: Anton Farygin @ 2023-04-28 6:35 UTC (permalink / raw)
To: devel
Только важно понимать, что это криптографически нестойкий хеш пакета.
On 28.04.2023 09:03, Danil Shein wrote:
>
> В проекте ALTRepoDB, часятми которого являются rdb.altlinux,org и
> packages.altlinux.org мы используем в качестве уникального
> идентификатора пакета хэш подсчитанный на основе метаданных из
> хэдеров RPM пакета.
>
> При подсчёте хэша используется SHA1, MD5, GPG и buildtime - таким
> образом хэш меняется при любой пересборке пакета.
> Подсчитать хэши легко можно и для установленных в системе пакетов
> используя данные из БД rpm.
> А получить информацию о пакете уже через АПИ rdb.altlinux.org.
> При необходимости можно добавить специальный запрос для проверки
> списка хэшей пакетов на принадлежность дистрибутиву и конкретному бранчу.
>
>
> 28.04.2023 01:15, Vitaly Lipatov пишет:
>> Хотелось бы иметь способ узнать происхождение пакета: взят ли он из
>> репозитория (в том числе конкретного стабильного репозитория), а в
>> идеале бы ещё и знать, что пакет прошёл QA.
>>
>> Наверное, можно принять допущение, что при этом пакет имеет
>> актуальную версию (последнюю, соответствующую версии в репозитории) и
>> установлен в систему из подписанного репозитория.
>>
>> Вопрос возник из обсуждения
>> https://bugzilla.altlinux.org/show_bug.cgi?id=44314#c44
>>
>> Предварительно, пакет может быть
>> - из репозитория
>> - из какого-то другого репозитория
>> - установлен со стороны
>> - перепакован из чего-то с помощью epm repack
>>
> --
> *Данил Шеин / Danil Shein*
>
> dshein@altlinux.org
> dshein@basealt.ru
>
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-04-27 22:26 ` Dmitry V. Levin
2023-04-28 0:39 ` Vitaly Lipatov
@ 2023-04-28 6:37 ` Anton Farygin
2023-04-28 9:41 ` Paul Wolneykien
1 sibling, 1 reply; 25+ messages in thread
From: Anton Farygin @ 2023-04-28 6:37 UTC (permalink / raw)
To: devel
On 28.04.2023 01:26, Dmitry V. Levin wrote:
> Непонятно, зачем хочется это знать, особенно если ...
Хочется иметь ответ на вопрос - установленный пакет установлен из
официального репозитория или собран кем-то на стороне.
Я не пойму как это можно было бы вычислить с помощью апта, у которого
подпись репозитория меняется ежедневно.
^ permalink raw reply [flat|nested] 25+ messages in thread
* [devel] Re: Как узнать, что пакет установлен из репозитория?
2023-04-27 23:17 ` Leonid Krivoshein
@ 2023-04-28 7:23 ` Sergey V Turchin
0 siblings, 0 replies; 25+ messages in thread
From: Sergey V Turchin @ 2023-04-28 7:23 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Friday, 28 April 2023 02:17:20 MSK Leonid Krivoshein wrote:
> Hi!
>
> On 4/28/23 01:15, Vitaly Lipatov wrote:
> > Хотелось бы иметь способ узнать происхождение пакета: взят ли он из
> > репозитория
>
> apt-cache list-extras поможет в этом.
Он показывает _все_ пакеты, если нет сети.
[...]
--
Regards, Sergey.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-04-28 6:37 ` Anton Farygin
@ 2023-04-28 9:41 ` Paul Wolneykien
2023-04-28 18:22 ` Alexey Shabalin
2023-04-28 18:34 ` Dmitry V. Levin
0 siblings, 2 replies; 25+ messages in thread
From: Paul Wolneykien @ 2023-04-28 9:41 UTC (permalink / raw)
To: devel
В Fri, 28 Apr 2023 09:37:12 +0300
Anton Farygin <rider@basealt.ru> пишет:
> On 28.04.2023 01:26, Dmitry V. Levin wrote:
> > Непонятно, зачем хочется это знать, особенно если ...
>
> Хочется иметь ответ на вопрос - установленный пакет установлен из
> официального репозитория или собран кем-то на стороне.
>
> Я не пойму как это можно было бы вычислить с помощью апта, у которого
> подпись репозитория меняется ежедневно.
А почему, всё-таки, недостаточно подписи пакета на сборочнице? Если
пакет собран на стороне, то он не может быть подписан ключом сборочницы.
Разве что тот, кто собирает на стороне, имеет доступ к секретному ключу
сборочницы — но это очень ограниченный круг людей, так ведь?
Прошу прощения, если это уже было, а я проглядел.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-04-28 9:41 ` Paul Wolneykien
@ 2023-04-28 18:22 ` Alexey Shabalin
2023-04-28 18:33 ` Dmitry V. Levin
2023-04-28 18:34 ` Dmitry V. Levin
1 sibling, 1 reply; 25+ messages in thread
From: Alexey Shabalin @ 2023-04-28 18:22 UTC (permalink / raw)
To: ALT Linux Team development discussions
пт, 28 апр. 2023 г. в 12:42, Paul Wolneykien <manowar@altlinux.org>:
>
> В Fri, 28 Apr 2023 09:37:12 +0300
> Anton Farygin <rider@basealt.ru> пишет:
>
> > On 28.04.2023 01:26, Dmitry V. Levin wrote:
> > > Непонятно, зачем хочется это знать, особенно если ...
> >
> > Хочется иметь ответ на вопрос - установленный пакет установлен из
> > официального репозитория или собран кем-то на стороне.
> >
> > Я не пойму как это можно было бы вычислить с помощью апта, у которого
> > подпись репозитория меняется ежедневно.
>
> А почему, всё-таки, недостаточно подписи пакета на сборочнице? Если
> пакет собран на стороне, то он не может быть подписан ключом сборочницы.
> Разве что тот, кто собирает на стороне, имеет доступ к секретному ключу
> сборочницы — но это очень ограниченный круг людей, так ведь?
Может потому что даже наш собственный rpm не знает какими ключами
подписаны наши пакеты?
rpm --checksig Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm
Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm: (RSA) sha1 md5
(GPG) НЕ ОК (ОТСУТСТВУЮТ КЛЮЧИ: RSA#da2773bb GPG#da2773bb)
> Прошу прощения, если это уже было, а я проглядел.
--
Alexey Shabalin
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-04-28 18:22 ` Alexey Shabalin
@ 2023-04-28 18:33 ` Dmitry V. Levin
0 siblings, 0 replies; 25+ messages in thread
From: Dmitry V. Levin @ 2023-04-28 18:33 UTC (permalink / raw)
To: devel
On Fri, Apr 28, 2023 at 09:22:34PM +0300, Alexey Shabalin wrote:
> пт, 28 апр. 2023 г. в 12:42, Paul Wolneykien <manowar@altlinux.org>:
> >
> > В Fri, 28 Apr 2023 09:37:12 +0300
> > Anton Farygin <rider@basealt.ru> пишет:
> >
> > > On 28.04.2023 01:26, Dmitry V. Levin wrote:
> > > > Непонятно, зачем хочется это знать, особенно если ...
> > >
> > > Хочется иметь ответ на вопрос - установленный пакет установлен из
> > > официального репозитория или собран кем-то на стороне.
> > >
> > > Я не пойму как это можно было бы вычислить с помощью апта, у которого
> > > подпись репозитория меняется ежедневно.
> >
> > А почему, всё-таки, недостаточно подписи пакета на сборочнице? Если
> > пакет собран на стороне, то он не может быть подписан ключом сборочницы.
> > Разве что тот, кто собирает на стороне, имеет доступ к секретному ключу
> > сборочницы — но это очень ограниченный круг людей, так ведь?
>
> Может потому что даже наш собственный rpm не знает какими ключами
> подписаны наши пакеты?
> rpm --checksig Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm
> Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm: (RSA) sha1 md5
> (GPG) НЕ ОК (ОТСУТСТВУЮТ КЛЮЧИ: RSA#da2773bb GPG#da2773bb)
$ rpmkeys -v --checksig --dbpath /usr/lib/alt-rpmkeys -- Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm
Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm:
Header V4 RSA/SHA512 Signature, key ID da2773bb: OK
Header SHA1 digest: OK (5578f8a19c28f24ec4aac7c3ff3dd9fbdf763dad)
MD5 digest: OK (6923865877990a03ac544f96da4c8dd6)
V4 RSA/SHA512 Signature, key ID da2773bb: OK
$ alt-rpmkeys-checksig Sisyphus/x86_64/RPMS.classic/mc-4.8.28-alt1.x86_64.rpm
ALT Sisyphus <alt-sisyphus@altlinux.org>
--
ldv
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-04-28 9:41 ` Paul Wolneykien
2023-04-28 18:22 ` Alexey Shabalin
@ 2023-04-28 18:34 ` Dmitry V. Levin
1 sibling, 0 replies; 25+ messages in thread
From: Dmitry V. Levin @ 2023-04-28 18:34 UTC (permalink / raw)
To: devel
On Fri, Apr 28, 2023 at 12:41:53PM +0300, Paul Wolneykien wrote:
> В Fri, 28 Apr 2023 09:37:12 +0300
> Anton Farygin <rider@basealt.ru> пишет:
>
> > On 28.04.2023 01:26, Dmitry V. Levin wrote:
> > > Непонятно, зачем хочется это знать, особенно если ...
> >
> > Хочется иметь ответ на вопрос - установленный пакет установлен из
> > официального репозитория или собран кем-то на стороне.
> >
> > Я не пойму как это можно было бы вычислить с помощью апта, у которого
> > подпись репозитория меняется ежедневно.
>
> А почему, всё-таки, недостаточно подписи пакета на сборочнице? Если
> пакет собран на стороне, то он не может быть подписан ключом сборочницы.
> Разве что тот, кто собирает на стороне, имеет доступ к секретному ключу
> сборочницы — но это очень ограниченный круг людей, так ведь?
Не все собранные пакеты попадают в репозиторий.
--
ldv
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-04-28 1:01 ` Leonid Krivoshein
@ 2023-05-01 12:33 ` Vitaly Lipatov
2023-05-01 13:56 ` Dmitry V. Levin
0 siblings, 1 reply; 25+ messages in thread
From: Vitaly Lipatov @ 2023-05-01 12:33 UTC (permalink / raw)
To: ALT Linux Team development discussions; +Cc: Leonid Krivoshein
Leonid Krivoshein писал(а) 28.4.23 4:01:
> On 4/28/23 03:39, Vitaly Lipatov wrote:
> Если пользователь притащил пакет не из репозитория или даже один файл
> сложил в область ответственности RPM, его систему уже можно считать не
> поддерживаемой, консистентность обновления уже нельзя гарантировать.
Но хотелось бы иметь способ узнать о неконсистентности.
--
С уважением,
Виталий Липатов,
ALT Linux Team
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-01 12:33 ` Vitaly Lipatov
@ 2023-05-01 13:56 ` Dmitry V. Levin
2023-05-01 16:20 ` Denis Medvedev
0 siblings, 1 reply; 25+ messages in thread
From: Dmitry V. Levin @ 2023-05-01 13:56 UTC (permalink / raw)
To: ALT Devel discussion list
On Mon, May 01, 2023 at 03:33:23PM +0300, Vitaly Lipatov wrote:
> Leonid Krivoshein писал(а) 28.4.23 4:01:
> > On 4/28/23 03:39, Vitaly Lipatov wrote:
> > Если пользователь притащил пакет не из репозитория или даже один файл
> > сложил в область ответственности RPM, его систему уже можно считать не
> > поддерживаемой, консистентность обновления уже нельзя гарантировать.
> Но хотелось бы иметь способ узнать о неконсистентности.
Если в систему уже был установлен пакет, которому мы не доверяем, такую
систему, вообще говоря, следует считать скомпрометированной, и средствами
такой системы, к сожалению, невозможно достоверно установить даже сам факт
компрометации.
--
ldv
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-01 13:56 ` Dmitry V. Levin
@ 2023-05-01 16:20 ` Denis Medvedev
0 siblings, 0 replies; 25+ messages in thread
From: Denis Medvedev @ 2023-05-01 16:20 UTC (permalink / raw)
To: Dmitry V. Levin; +Cc: ALT Linux Team development discussions
On Mon, 1 May 2023 16:56:23 +0300
"Dmitry V. Levin" <ldv@altlinux.org> wrote:
> On Mon, May 01, 2023 at 03:33:23PM +0300, Vitaly Lipatov wrote:
> > Leonid Krivoshein писал(а) 28.4.23 4:01:
> > > On 4/28/23 03:39, Vitaly Lipatov wrote:
> > > Если пользователь притащил пакет не из репозитория или даже один
> > > файл сложил в область ответственности RPM, его систему уже можно
> > > считать не поддерживаемой, консистентность обновления уже нельзя
> > > гарантировать.
> > Но хотелось бы иметь способ узнать о неконсистентности.
>
> Если в систему уже был установлен пакет, которому мы не доверяем,
> такую систему, вообще говоря, следует считать скомпрометированной, и
> средствами такой системы, к сожалению, невозможно достоверно
> установить даже сам факт компрометации.
>
>
А НЕ средствами? Cкажем, загрузившись с rescue диска?
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
@ 2023-05-02 7:46 ` Dmitry V. Levin
2023-05-02 7:47 ` Anton Farygin
2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy
0 siblings, 2 replies; 25+ messages in thread
From: Dmitry V. Levin @ 2023-05-02 7:46 UTC (permalink / raw)
To: devel
On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote:
> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к.
> пошли коллизии из-за того, что не всегда при пересборке пакетов меняется
> SHA1 хэш, а нам нужен уникальный признак каждого пакета.
Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется?
--
ldv
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-02 7:46 ` Dmitry V. Levin
@ 2023-05-02 7:47 ` Anton Farygin
2023-05-02 8:01 ` Dmitry V. Levin
2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy
1 sibling, 1 reply; 25+ messages in thread
From: Anton Farygin @ 2023-05-02 7:47 UTC (permalink / raw)
To: devel
On 02.05.2023 10:46, Dmitry V. Levin wrote:
> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote:
>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к.
>> пошли коллизии из-за того, что не всегда при пересборке пакетов меняется
>> SHA1 хэш, а нам нужен уникальный признак каждого пакета.
> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется?
sha1header только от заголовка. Насколько я помню подпись пакета не входит
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-02 7:47 ` Anton Farygin
@ 2023-05-02 8:01 ` Dmitry V. Levin
2023-05-02 8:04 ` Anton Farygin
0 siblings, 1 reply; 25+ messages in thread
From: Dmitry V. Levin @ 2023-05-02 8:01 UTC (permalink / raw)
To: devel
On Tue, May 02, 2023 at 10:47:57AM +0300, Anton Farygin wrote:
> On 02.05.2023 10:46, Dmitry V. Levin wrote:
> > On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote:
> >> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к.
> >> пошли коллизии из-за того, что не всегда при пересборке пакетов меняется
> >> SHA1 хэш, а нам нужен уникальный признак каждого пакета.
> > Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется?
> sha1header только от заголовка. Насколько я помню подпись пакета не входит
Подпись, конечно, не входит, но какой смысл различать пакеты, у которых
sha1header совпадает? Даже сборочница считает такие пакеты эквивалентными.
--
ldv
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-02 8:01 ` Dmitry V. Levin
@ 2023-05-02 8:04 ` Anton Farygin
2023-05-02 8:09 ` Anton Farygin
0 siblings, 1 reply; 25+ messages in thread
From: Anton Farygin @ 2023-05-02 8:04 UTC (permalink / raw)
To: devel
On 02.05.2023 11:01, Dmitry V. Levin wrote:
> On Tue, May 02, 2023 at 10:47:57AM +0300, Anton Farygin wrote:
>> On 02.05.2023 10:46, Dmitry V. Levin wrote:
>>> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote:
>>>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к.
>>>> пошли коллизии из-за того, что не всегда при пересборке пакетов меняется
>>>> SHA1 хэш, а нам нужен уникальный признак каждого пакета.
>>> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется?
>> sha1header только от заголовка. Насколько я помню подпись пакета не входит
> Подпись, конечно, не входит, но какой смысл различать пакеты, у которых
> sha1header совпадает? Даже сборочница считает такие пакеты эквивалентными.
>
Они не могут быть эквивалентными, т.к. у них не совпадают контрольные
суммы (md5sum и sha512)
Когда мы перестаём их считать эквивалентными, то у нас начинают
появляться дубли из-за изменённой sha512 и md5, которые используются в
аптовых хешах и репозитории.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-02 8:04 ` Anton Farygin
@ 2023-05-02 8:09 ` Anton Farygin
2023-05-02 8:25 ` Dmitry V. Levin
0 siblings, 1 reply; 25+ messages in thread
From: Anton Farygin @ 2023-05-02 8:09 UTC (permalink / raw)
To: devel
On 02.05.2023 11:04, Anton Farygin wrote:
> On 02.05.2023 11:01, Dmitry V. Levin wrote:
>> On Tue, May 02, 2023 at 10:47:57AM +0300, Anton Farygin wrote:
>>> On 02.05.2023 10:46, Dmitry V. Levin wrote:
>>>> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote:
>>>>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к.
>>>>> пошли коллизии из-за того, что не всегда при пересборке пакетов
>>>>> меняется
>>>>> SHA1 хэш, а нам нужен уникальный признак каждого пакета.
>>>> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется?
>>> sha1header только от заголовка. Насколько я помню подпись пакета не
>>> входит
>> Подпись, конечно, не входит, но какой смысл различать пакеты, у которых
>> sha1header совпадает? Даже сборочница считает такие пакеты
>> эквивалентными.
>>
> Они не могут быть эквивалентными, т.к. у них не совпадают контрольные
> суммы (md5sum и sha512)
>
> Когда мы перестаём их считать эквивалентными, то у нас начинают
> появляться дубли из-за изменённой sha512 и md5, которые используются в
> аптовых хешах и репозитории.
>
Непонятно написал. Если мы будем считать что пакеты с одинаковой
sha1header и разными md5sum/sha512 мы начинаем считать одинаковыми, то у
нас исчезает информация в базе о контрольной сумме файла с пакетом. А
эта контрольная сумма нужна для того, что бы быстро (на лету) сгенерить
хеши.
В общем мы пробовали, так не работает ;(
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-02 8:09 ` Anton Farygin
@ 2023-05-02 8:25 ` Dmitry V. Levin
2023-05-02 8:30 ` Anton Farygin
0 siblings, 1 reply; 25+ messages in thread
From: Dmitry V. Levin @ 2023-05-02 8:25 UTC (permalink / raw)
To: devel
On Tue, May 02, 2023 at 11:09:02AM +0300, Anton Farygin wrote:
> On 02.05.2023 11:04, Anton Farygin wrote:
> > On 02.05.2023 11:01, Dmitry V. Levin wrote:
> >> On Tue, May 02, 2023 at 10:47:57AM +0300, Anton Farygin wrote:
> >>> On 02.05.2023 10:46, Dmitry V. Levin wrote:
> >>>> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote:
> >>>>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к.
> >>>>> пошли коллизии из-за того, что не всегда при пересборке пакетов
> >>>>> меняется
> >>>>> SHA1 хэш, а нам нужен уникальный признак каждого пакета.
> >>>> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется?
> >>> sha1header только от заголовка. Насколько я помню подпись пакета не
> >>> входит
> >> Подпись, конечно, не входит, но какой смысл различать пакеты, у которых
> >> sha1header совпадает? Даже сборочница считает такие пакеты
> >> эквивалентными.
> >>
> > Они не могут быть эквивалентными, т.к. у них не совпадают контрольные
> > суммы (md5sum и sha512)
> >
> > Когда мы перестаём их считать эквивалентными, то у нас начинают
> > появляться дубли из-за изменённой sha512 и md5, которые используются в
> > аптовых хешах и репозитории.
> >
> Непонятно написал. Если мы будем считать что пакеты с одинаковой
> sha1header и разными md5sum/sha512 мы начинаем считать одинаковыми, то у
> нас исчезает информация в базе о контрольной сумме файла с пакетом. А
Пакеты эквивалентные, но файлы не совпадают.
В теории, например, можно переподписать srpm (например, из-за смены ключа)
и отправить его на сборку, сборочница будет обрабатывать это почти как
rebuild, потому что пакеты эквивалентные, хоть файлы и не совпадают.
--
ldv
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-02 8:25 ` Dmitry V. Levin
@ 2023-05-02 8:30 ` Anton Farygin
0 siblings, 0 replies; 25+ messages in thread
From: Anton Farygin @ 2023-05-02 8:30 UTC (permalink / raw)
To: devel
On 02.05.2023 11:25, Dmitry V. Levin wrote:
> On Tue, May 02, 2023 at 11:09:02AM +0300, Anton Farygin wrote:
>> On 02.05.2023 11:04, Anton Farygin wrote:
>>> On 02.05.2023 11:01, Dmitry V. Levin wrote:
>>>> On Tue, May 02, 2023 at 10:47:57AM +0300, Anton Farygin wrote:
>>>>> On 02.05.2023 10:46, Dmitry V. Levin wrote:
>>>>>> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote:
>>>>>>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к.
>>>>>>> пошли коллизии из-за того, что не всегда при пересборке пакетов
>>>>>>> меняется
>>>>>>> SHA1 хэш, а нам нужен уникальный признак каждого пакета.
>>>>>> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется?
>>>>> sha1header только от заголовка. Насколько я помню подпись пакета не
>>>>> входит
>>>> Подпись, конечно, не входит, но какой смысл различать пакеты, у которых
>>>> sha1header совпадает? Даже сборочница считает такие пакеты
>>>> эквивалентными.
>>>>
>>> Они не могут быть эквивалентными, т.к. у них не совпадают контрольные
>>> суммы (md5sum и sha512)
>>>
>>> Когда мы перестаём их считать эквивалентными, то у нас начинают
>>> появляться дубли из-за изменённой sha512 и md5, которые используются в
>>> аптовых хешах и репозитории.
>>>
>> Непонятно написал. Если мы будем считать что пакеты с одинаковой
>> sha1header и разными md5sum/sha512 мы начинаем считать одинаковыми, то у
>> нас исчезает информация в базе о контрольной сумме файла с пакетом. А
> Пакеты эквивалентные, но файлы не совпадают.
>
> В теории, например, можно переподписать srpm (например, из-за смены ключа)
> и отправить его на сборку, сборочница будет обрабатывать это почти как
> rebuild, потому что пакеты эквивалентные, хоть файлы и не совпадают.
>
>
Ну да, и мы получим снова дубли, т.к. sha1header останется таким же, а
бинарные пакеты (разные) будут собраны из одного и того же src.rpm,
который на самом деле отличается, т.к. его переподписали.
В общем оказалось удобнее считать все пакеты разными (по всем
контрольным суммам) и соотвественно этому строить отношения src<->binary
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-02 7:46 ` Dmitry V. Levin
2023-05-02 7:47 ` Anton Farygin
@ 2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy
2023-05-02 8:32 ` Anton Farygin
2023-05-02 9:04 ` Dmitry V. Levin
1 sibling, 2 replies; 25+ messages in thread
From: Gleb Fotengauer-Malinovskiy @ 2023-05-02 8:31 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1023 bytes --]
On Tue, May 02, 2023 at 10:46:57AM +0300, Dmitry V. Levin wrote:
> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote:
> > Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к.
> > пошли коллизии из-за того, что не всегда при пересборке пакетов меняется
> > SHA1 хэш, а нам нужен уникальный признак каждого пакета.
>
> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется?
Получается, что меняется как раз только подпись и это один и тот же пакет,
который сборочница почему-то переподписала?
Потому что если бы пакет пересобрался, то поменялся бы ещё и buildtime, а
из-за него и sha1header.
--
glebfm
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy
@ 2023-05-02 8:32 ` Anton Farygin
2023-05-02 9:04 ` Dmitry V. Levin
1 sibling, 0 replies; 25+ messages in thread
From: Anton Farygin @ 2023-05-02 8:32 UTC (permalink / raw)
To: devel
On 02.05.2023 11:31, Gleb Fotengauer-Malinovskiy wrote:
> On Tue, May 02, 2023 at 10:46:57AM +0300, Dmitry V. Levin wrote:
>> On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote:
>>> Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к.
>>> пошли коллизии из-за того, что не всегда при пересборке пакетов меняется
>>> SHA1 хэш, а нам нужен уникальный признак каждого пакета.
>> Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется?
> Получается, что меняется как раз только подпись и это один и тот же пакет,
> который сборочница почему-то переподписала?
> Потому что если бы пакет пересобрался, то поменялся бы ещё и buildtime, а
> из-за него и sha1header.
>
Да, меняется именно подпись.
Но подпись не может входить в sha1header.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [devel] Как узнать, что пакет установлен из репозитория?
2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy
2023-05-02 8:32 ` Anton Farygin
@ 2023-05-02 9:04 ` Dmitry V. Levin
1 sibling, 0 replies; 25+ messages in thread
From: Dmitry V. Levin @ 2023-05-02 9:04 UTC (permalink / raw)
To: devel
On Tue, May 02, 2023 at 12:31:03PM +0400, Gleb Fotengauer-Malinovskiy wrote:
> On Tue, May 02, 2023 at 10:46:57AM +0300, Dmitry V. Levin wrote:
> > On Tue, May 02, 2023 at 08:31:43AM +0300, Danil Shein wrote:
> > > Мы сначала и использовали SHA1, но перешли на новую схему хэшей, т.к.
> > > пошли коллизии из-за того, что не всегда при пересборке пакетов меняется
> > > SHA1 хэш, а нам нужен уникальный признак каждого пакета.
> >
> > Интересно, а что тогда меняется в пакете, если SHA1 в нём не меняется?
>
> Получается, что меняется как раз только подпись и это один и тот же пакет,
> который сборочница почему-то переподписала?
> Потому что если бы пакет пересобрался, то поменялся бы ещё и buildtime, а
> из-за него и sha1header.
SOURCE_DATE_EPOCH overrides buildtime.
Так что в случае rebuild и хорошо воспроизводимой сборки получится пакет
с тем же sha1header, но с более свежей подписью.
--
ldv
^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2023-05-02 9:04 UTC | newest]
Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-27 22:15 [devel] Как узнать, что пакет установлен из репозитория? Vitaly Lipatov
2023-04-27 22:26 ` Dmitry V. Levin
2023-04-28 0:39 ` Vitaly Lipatov
2023-04-28 1:01 ` Leonid Krivoshein
2023-05-01 12:33 ` Vitaly Lipatov
2023-05-01 13:56 ` Dmitry V. Levin
2023-05-01 16:20 ` Denis Medvedev
2023-04-28 6:37 ` Anton Farygin
2023-04-28 9:41 ` Paul Wolneykien
2023-04-28 18:22 ` Alexey Shabalin
2023-04-28 18:33 ` Dmitry V. Levin
2023-04-28 18:34 ` Dmitry V. Levin
2023-04-27 23:17 ` Leonid Krivoshein
2023-04-28 7:23 ` [devel] " Sergey V Turchin
2023-04-28 6:35 ` [devel] " Anton Farygin
2023-05-02 7:46 ` Dmitry V. Levin
2023-05-02 7:47 ` Anton Farygin
2023-05-02 8:01 ` Dmitry V. Levin
2023-05-02 8:04 ` Anton Farygin
2023-05-02 8:09 ` Anton Farygin
2023-05-02 8:25 ` Dmitry V. Levin
2023-05-02 8:30 ` Anton Farygin
2023-05-02 8:31 ` Gleb Fotengauer-Malinovskiy
2023-05-02 8:32 ` Anton Farygin
2023-05-02 9:04 ` Dmitry V. Levin
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git