11.4.5 Верификация подписей

Для того, чтобы убедиться, что пакет не был модифицирован с момента его подписывания, используется механизм проверки подписи. Процедура верификации также проверяет соответствие ключа ключу определенного вендора.

Утилита rpm (не rpmbuild) работает в режиме проверки подписи, если применяется опция -K:

rpm -K package.rpm

Для изменения режима (отключения какой-то определенной проверки) используются опции, указанные в таблице ниже.

Опция

Использование

--nogpg

Отключает проверку подписи GPG

--nomd5

Отключает проверку подписи MD5

--nopgp

Отключает проверку подписи PGP

Также может применятся опция --checksig, она является синонимом -K.

Когда команда проверки находит в пакете правильные подписи, выводится примерно следующее:

# rpm -K xtoolwait-1.3-3.src.rpm

xtoolwait-1.3-3.src.rpm: (sha1) dsa sha1 md5 gpg OK

Это сообщение означает, что пакет с момента подписывания не изменялся. Эта проверка также показала, что ключ производителя пакета соответствует его публичному ключу.

Для вывода более подробной информации нужно задействовать опцию -v:

$ rpm -Kv vixie-cron-3.0.1-69.src.rpm

vixie-cron-3.0.1-69.src.rpm:

Header V3 DSA signature: OK, key ID db42a60e

Header SHA1 digest: OK
(ecbb244ab022ecd23114bb1d6c9bdeb74f8d9520)

MD5 digest: OK (fb0a75eca1d526d391c36dc956c23bdd)

V3 DSA signature: OK, key ID db42a60e

Если проверка закончилась не успешно, а это может означать многое, вплоть до подмены пакета злоумышленником, увидим сообщение об ошибке:

# rpm --checksig xtoolwait-1.3-3.src.rpm

xtoolwait-1.3-3.src.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#db42a60e)

Позиции, не прошедшие проверку, выделены в выводе символами верхнего регистра, например, DSA, в то время как прошедшие проверку подписи обозначаются символами в нижнем регистре. В данном примере сигнатуры sha1 и md5 совпали с ожидаемыми.

Наиболее вероятные причины ошибок при проверке:

1. Пакет не был правильным образом подписан. При этом он может быть легитимным.

2. Пакет был модифицирован и он больше не легитимен.

3. Система RPM не содержит публичного ключа вендора, который используется при проверке.

Из этого понятно, что само наличие ошибки ничего не говорит нам о легитимности пакета или наоборот. Поэтому первым шагом при возникновении таких ошибок должен быть импорт публичного ключа вендора пакетов.

Далее - Импорт публичного ключа
Назад - Подписывание с помощью утилиты rpm
Содержание