См. раздел командной строки RHEL/CentOS по адресу https://rpmfusion.org/Configuration/.

Разве этот переключатель --nogpgcheck не позволяет незаметно произвести несанкционированное вмешательство?

0
asd 7 Авг 2018 в 11:11

1 ответ

Это шаг к тому, чтобы сломать первоначальную проблему доверия к курице и яйцу со стороны упаковочной системы.

Система упаковки (yum/rpm) не доверяет новому репозиторию, поскольку, будучи новым, он изначально неизвестен. Таким образом, первым шагом будет указание системе (криптографически) доверять этому новому репозиторию. Это делается путем подписания пакетов (или, в других системах, выпусков пакетов).

Некоторые методы предоставляют ключ gpg на отдельной веб-странице или сервере ключей для добавления к доверию системы (например: rpm --import (действительно rpmkeys --import) или эквивалент для apt/dpkg: apt-key add), а затем настройте репозиторий с правильный файл, который включает в себя в основном URL-адрес для загрузки и некоторые настройки (например, параметр... gpgcheck=1).

Другой способ — поместить этот ключ непосредственно в пакет и позволить пакету добавить ключ и настройки репозитория: вот что сделано здесь, пакет rpmfusion-free-release-7.noarch.rpm содержит всего несколько файлов:

# rpm -qlp rpmfusion-free-release-7.noarch.rpm 
warning: rpmfusion-free-release-7.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID f5cf6c1e: NOKEY
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-el-7
/etc/yum.repos.d/rpmfusion-free-updates-testing.repo
/etc/yum.repos.d/rpmfusion-free-updates.repo

Эти файлы являются ключом и новыми конфигурациями репозиториев, и они включают gpgcheck=1. Обратите внимание, что до установки система не доверяет пакету (отсюда предупреждение выше с NOKEY). После установки ключ становится доверенным, и каждое дальнейшее действие будет проверять подписи пакетов с помощью этого добавленного ключа.

Так как же этому можно доверять? По-прежнему существует доверие, обеспечиваемое использованием https:// в https://download1.rpmfusion.org/ при его загрузке: это должно гарантировать, что сайт загрузки, принадлежащий rpmfusion, контролирует этот пакет, и его можно безопасно загрузить без вмешательства. с участием.

Это не совсем то же самое доверие, потому что доверяют только сайту, а не упаковке. Поскольку вы все равно загружаете программное обеспечение с rpmfusion, это означает, что вы достаточно доверяете им, чтобы загружать и устанавливать пакеты с них. Этот пакет никогда не следует загружать в первый раз вне *.rpmfusion.org для первоначального добавления репозитория (т. е. при установке с помощью --nogpgcheck), иначе вам теперь придется доверять зеркалу, чтобы фактически предоставить тот же пакет и а не другой с таким же именем, например, с дополнительными ключами или хуже.

В любом случае, с первым методом вам все равно приходилось читать инструкции о том, как добавить ключ и загрузить пакет, поэтому вам все равно приходилось изначально доверять этим инструкциям. Это то, что я называю курицей и яйцом: нужно где-то начать доверять.

Как только возникнет это первоначальное доверие, обо всем остальном позаботятся надежно. Даже если необходимо предоставить новый ключ, это будет сделано с помощью обновления rpmfusion-free-release с (a) запасным ключом (ключами) внутри, и он останется безопасным, даже если будет загружен с зеркала и/или без https://. На самом деле это так и для этого репозитория: он использует зеркала и, возможно, обычный http. Вам больше никогда не понадобится --nogpgcheck.

0
A.B 7 Авг 2018 в 20:48
Обратите внимание, что вы можете импортировать ключи gpg надежным способом: dnf install distribution-gpg-keys && rpm --import /usr/share/distribution-gpg-keys/rpmfusion/* Но я согласен, что ребята из rpmfusion не знают об этом, поэтому они рекомендуют этот способ.
 – 
msuchy
8 Авг 2018 в 18:25