Bug 40621 - Enable RPM signature verification
Summary: Enable RPM signature verification
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm (show other bugs)
Version: unstable
Hardware: x86 Linux
: P5 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-07-31 03:04 MSK by Vitaly Chikunov
Modified: 2022-03-18 12:18 MSK (History)
9 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Chikunov 2021-07-31 03:04:44 MSK
Сейчас проверка подписей отключена, на сколько я понимаю (возможно ошибаюсь), из-за того, что у нас ключи хранятся в другом месте - не в базе rpm в виде псевдо-пакетов.

Предлагаю сделать поддержку нашего местоположения ключей и включить проверку подписей в RPM пакетах.
Comment 1 alexey.tourbin 2021-07-31 11:19:51 MSK
Verifying individual signatures is redundant.  When you update from a repo, its release file is signed.  The release file references pkglist, and pkglist references individual packages.  Since those references must be cryptographically-strong, there is no point in verifying the signatures of each individual package.  The top-level signature covers it all.

As an analogy, in git, you don't sign individual blobs.
Comment 2 Vitaly Chikunov 2021-09-20 03:00:40 MSK
Есть, как минимум, два не покрытых сценария.
1) Инсталляция в обход `apt-get` через `rpm -i`. Например, в `epm` используется `rpm -U`.
2) Желание пользователя подтвердить принадлежность скачанного когда-то или откуда-то rpm'а. Коме того, если пакет в репозитории обновился, то pkglist уже не ссылается на этот rpm.
Comment 3 Dmitry V. Levin 2021-09-21 18:58:49 MSK
(In reply to Vitaly Chikunov from comment #2)
> Есть, как минимум, два не покрытых сценария.

Наверняка найдутся и другие редкие сценарии.
Например, для girar я сделал обёртку под названием alt-rpmkeys-checksig, которая поддерживает и rpm-4.0.4, и более новый rpm.

> 1) Инсталляция в обход `apt-get` через `rpm -i`.

Есть много способов испортить себе систему в обход `apt-get`.
Просто не надо использовать `rpm -i` для обработки untrusted input.

> Например, в `epm` используется `rpm -U`.

В таком случае `epm` должен обеспечивать проверку того, что отдаётся на вход `rpm -U`.

> 2) Желание пользователя подтвердить принадлежность скачанного когда-то или
> откуда-то rpm'а. Коме того, если пакет в репозитории обновился, то pkglist
> уже не ссылается на этот rpm.

Пользователи, желающие странного, найдут способ этого добиться.
Comment 4 Vitaly Lipatov 2022-03-18 12:18:54 MSK
(Ответ для Dmitry V. Levin на комментарий #3)
> (In reply to Vitaly Chikunov from comment #2)
> > Есть, как минимум, два не покрытых сценария.
> 
> Наверняка найдутся и другие редкие сценарии.
> Например, для girar я сделал обёртку под названием alt-rpmkeys-checksig,
> которая поддерживает и rpm-4.0.4, и более новый rpm.
> 
> > 1) Инсталляция в обход `apt-get` через `rpm -i`.
> 
> Есть много способов испортить себе систему в обход `apt-get`.
> Просто не надо использовать `rpm -i` для обработки untrusted input.
> 
> > Например, в `epm` используется `rpm -U`.
> 
> В таком случае `epm` должен обеспечивать проверку того, что отдаётся на вход
> `rpm -U`.
Как я понимаю, что сейчас мы имеем только доверие к репозиторию, это проверка на уровне apt.
То есть подпись самого пакета не проверяется ни в каком случае.
Существует ли способ включить для rpm эту проверку, чтобы можно было устанавливать доверенные пакеты,
поставляемые вне репозиториев? 

То есть тут речь о сторонних поставщиках решений для ALT.