ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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