Для того, чтобы убедиться, что пакет не был модифицирован с момента его подписывания, используется механизм проверки подписи. Процедура верификации также проверяет соответствие ключа ключу определенного вендора.
Утилита rpm (не rpmbuild) работает в режиме проверки подписи, если применяется опция -K:
rpm -K package.rpm |
Для изменения режима (отключения какой-то определенной проверки) используются опции, указанные в таблице ниже.
Опция |
Использование |
--nogpg |
Отключает проверку подписи GPG |
--nomd5 |
Отключает проверку подписи MD5 |
--nopgp |
Отключает проверку подписи PGP |
Также может применятся опция --checksig, она является синонимом -K.
Когда команда проверки находит в пакете правильные подписи, выводится примерно следующее:
# rpm -K xtoolwait-1.3-3.src.rpm |
Это сообщение означает, что пакет с момента подписывания не изменялся. Эта проверка также показала, что ключ производителя пакета соответствует его публичному ключу.
Для вывода более подробной информации нужно задействовать опцию -v:
$ rpm -Kv vixie-cron-3.0.1-69.src.rpm |
Если проверка закончилась не успешно, а это может означать многое, вплоть до подмены пакета злоумышленником, увидим сообщение об ошибке:
# rpm --checksig xtoolwait-1.3-3.src.rpm |
Позиции, не прошедшие проверку, выделены в выводе символами верхнего регистра, например, DSA, в то время как прошедшие проверку подписи обозначаются символами в нижнем регистре. В данном примере сигнатуры sha1 и md5 совпали с ожидаемыми.
Наиболее вероятные причины ошибок при проверке:
1. Пакет не был правильным образом подписан. При этом он может быть легитимным.
2. Пакет был модифицирован и он больше не легитимен.
3. Система RPM не содержит публичного ключа вендора, который используется при проверке.
Из этого понятно, что само наличие ошибки ничего не говорит нам о легитимности пакета или наоборот. Поэтому первым шагом при возникновении таких ошибок должен быть импорт публичного ключа вендора пакетов.
Далее - Импорт публичного ключа
Назад - Подписывание с помощью утилиты rpm
Содержание