CheckPackageSign: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
 
(не показано 26 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{stub}}
{{Note|Короткая ссылка сюда - https://www.altlinux.org/Checkpackagesign}}
{{attention|Страница в разработке!!!}
=Проверка подписи пакета=
=Проверка подписи пакета=
Когда разработчик собирает пакет с программным обеспечением, он подписывает его собственным ключом, чтобы потом можно было проверить целостность и подлинность пакета.
Когда разработчик собирает пакет с программным обеспечением, он подписывает его собственным ключом, чтобы потом можно было проверить целостность и подлинность пакета.


==Импорт ключей==
# apt-get install /usr/bin/alt-rpmkeys-checksig
# gpg --import /usr/lib/alt-gpgkeys/pubring.gpg
# gpg --armor --export ff979dedda2773bb >/var/lib/rpm/alt-sisyphus.key


  $ rpmsign -Kv /ALT/Sisyphus/x86_64/RPMS.classic/aalib-1.4-alt8rc5.x86_64.rpm  
==Выполнение проверки пакета==
  /ALT/Sisyphus/x86_64/RPMS.classic/aalib-1.4-alt8rc5.x86_64.rpm:
{{Note|При выполнении следующей команды утилита проверит подпись пакета и соответствие ей открытого ключа разработчика, который хранится в системе}}
     Заголовок V4 RSA/SHA512 Signature, key ID da2773bb: NOKEY
===rpmsign===
     Header SHA1 digest: OK (55646034ebf72d56dd998eb2f472743bb1ff0f71)
Выполним команду:
     MD5 digest: OK (0cb307f1262551578b95326fa052ff4a)
  $ rpmsign -Kv /home/user/Загрузки/gpupdate-0.10.0-alt1.noarch.rpm  
     V4 RSA/SHA512 Signature, key ID da2773bb: NOKEY
*ключ -K - показывает ключ GPG, используемый для подписания
*ключ -v - показывать более детальные сообщения
Результат:
  /home/user/Загрузки/gpupdate-0.10.0-alt1.noarch.rpm:
     Заголовок V4 RSA/SHA512 Signature, key ID c7eb80f9: NOKEY
     Header SHA1 digest: OK (1a0f5ebf806efab4c266a08b361ee1e494ac2d11)
     MD5 digest: OK (aa30e4dce5ba36afdb1fdb9d6a58bf14)
     V4 RSA/SHA512 Signature, key ID c7eb80f9: NOKEY
{{Note|Здесь смотрим строчку {{cmd|key ID c7eb80f9}}. Это открытая часть ключа разработчика, создавшего пакет.}}


<!--===rpm --checksig===
rpm --checksig '/home/user/Загрузки/gpupdate-0.10.0-alt1.noarch.rpm'
Результат:
/home/user/Загрузки/gpupdate-0.10.0-alt1.noarch.rpm: (RSA) sha1 md5 (GPG) НЕ ОК (ОТСУТСТВУЮТ КЛЮЧИ: RSA#c7eb80f9 GPG#c7eb80f9)


$ gpg2 --show-keys --with-fingerprint --keyid-format=short /usr/lib/alt-gpgkeys/pubring.gpg 2>/dev/null | grep -i da2773bb -A2
{{Note|Прежде чем проверять подписи PGP и GnuPG необходимо установить соответствующие системы и импортировать и заверить публичные ключи поставщика пакета. ({{cmd|gpg --import имя-файла}}, {{cmd|rpm --import имя-файла}}.
pub  rsa4096/DA2773BB 2019-05-16 [SC] [  годен до: 2029-05-13]
Как минимум, команда должна ответить:
      Отпечаток ключа = DF6C 02E5 F174 D7CD F792  A9CD FF97 9DED DA27 73BB
  имя_файла: md5 OK
uid                    ALT Sisyphus <alt-sisyphus@altlinux.org>
А лучше
 
  имя_файла: md5 gpg OK
 
}}
Я не добрался до правильного импорта единичного ключа из alt-gpgkeys.
 
 
{{Category navigation|title=Начинающему разработчику|category=Начинающему разработчику|sortkey={{SUBPAGENAME}}}}
По умолчанию GnuPG устанавливается при установке системы. Поэтому вы можете сразу воспользоваться GnuPG для проверки любых пакетов, полученных от Red Hat. Но сначала вы должны импортировать открытый ключ Red Hat.
 
15.3.1. Импорт ключей
 
Чтобы проверять пакеты Red Hat, вы должны импортировть GPG-ключ Red Hat. Для этого введите в приглашении оболочки следующую команду:


  rpm --import /usr/share/rhn/RPM-GPG-KEY
===rpm -q --qf===
  rpm -q --qf '%{SIGPGP:pgpsig} %{SIGGPG:pgpsig}\n' -p  'jobe-2.1.2-alt1.x86_64.rpm'
(none) RSA/SHA512, Пн 10 фев 2025 06:33:02, Key ID ff979dedda2773bb
-->


==Вывод списка ключей разработчиков==
<!-- {{Note|Список всех ключей разработчиков ALT Linux лежит в файле {{path|/usr/lib/alt-gpgkeys/pubring.gpg}}. Специальной командой мы выведем ключи из этого файла.}}
Чтобы просмотреть список всех ключей, используемых для проверки RPM, выполните команду:
Чтобы просмотреть список всех ключей, используемых для проверки RPM, выполните команду:
$ gpg2 --show-keys --with-fingerprint --keyid-format=short /usr/lib/alt-gpgkeys/pubring.gpg 2>/dev/null
Получим длинную простыню ключей. -->


  rpm -qa gpg-pubkey*
=== Вывод ключа конкретного разработчика ===
{{Note|Добавив определенный параметр с аргументом, мы отфильтруем ключи до конкретного разработчика.}}
Добавляем
  | grep -i c7eb80f9 -A2
где в -i - открытый ключ разработчика.


Ключ Red Hat в этом списке будет выглядеть так:
$ gpg2 --show-keys --with-fingerprint --keyid-format=short /usr/lib/alt-gpgkeys/pubring.gpg 2>/dev/null | grep -i c7eb80f9 -A2
И получим информацию о ключе конкретного разработчика:
pub  rsa4096/C7EB80F9 2019-05-16 [SC] [  годен до: 2029-05-13]
      Отпечаток ключа = DF6C 02E5 F174 D7CD F792  A9CD FF97 9DED DA27 73BB
uid                    ALT Sisyphus <alt-sisyphus@altlinux.org>


gpg-pubkey-db42a60e-37ea5438
==Сопоставление пакета и ключа==
Сопоставляем:
*из первого раздела
**имя пакета
**открытую часть ключа
*из второго раздела
**открытую часть ключа
**срок действия ключа
{{Note|Если срок действия еще действует, то все в порядке.}}


Чтобы узнать о конкретном ключе больше, выполните rpm -qi, добавив в конце результат предыдущей команды, например:
==Источники==
*[http://www.rhd.ru/docs/manuals/enterprise/RHEL-AS-2.1-Manual/custom-guide/check-rpm-sig.html rhd.ru]
*[http://www.bog.pp.ru/work/rpm.html bog.pp.ru]


rpm -qi gpg-pubkey-db42a60e-37ea5438
{{Category navigation|title=Начинающему разработчику|category=Начинающему разработчику|sortkey={{SUBPAGENAME}}}}
 
15.3.2. Проверка подписи пакетов
 
Чтобы, загрузив GnuPG-ключ создателя пакета, проверить GnuPG-подпись этого пакета, выполните следующую команду (замените <rpm-file> именем файла RPM-пакета):
 
rpm -K <rpm-file>
 
Если всё проходит хорошо, появляется следующее сообщение md5 gpg OK. Это значит, что подпись пакета была проверена и она не испорчена.

Текущая версия от 13:09, 10 февраля 2025

Примечание: Короткая ссылка сюда - https://www.altlinux.org/Checkpackagesign

Проверка подписи пакета

Когда разработчик собирает пакет с программным обеспечением, он подписывает его собственным ключом, чтобы потом можно было проверить целостность и подлинность пакета.

Импорт ключей

# apt-get install /usr/bin/alt-rpmkeys-checksig
# gpg --import /usr/lib/alt-gpgkeys/pubring.gpg
# gpg --armor --export ff979dedda2773bb >/var/lib/rpm/alt-sisyphus.key

Выполнение проверки пакета

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

rpmsign

Выполним команду:

$ rpmsign -Kv /home/user/Загрузки/gpupdate-0.10.0-alt1.noarch.rpm 
  • ключ -K - показывает ключ GPG, используемый для подписания
  • ключ -v - показывать более детальные сообщения

Результат:

/home/user/Загрузки/gpupdate-0.10.0-alt1.noarch.rpm:
    Заголовок V4 RSA/SHA512 Signature, key ID c7eb80f9: NOKEY
    Header SHA1 digest: OK (1a0f5ebf806efab4c266a08b361ee1e494ac2d11)
    MD5 digest: OK (aa30e4dce5ba36afdb1fdb9d6a58bf14)
    V4 RSA/SHA512 Signature, key ID c7eb80f9: NOKEY
Примечание: Здесь смотрим строчку key ID c7eb80f9. Это открытая часть ключа разработчика, создавшего пакет.


Вывод списка ключей разработчиков

Вывод ключа конкретного разработчика

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

Добавляем

| grep -i c7eb80f9 -A2

где в -i - открытый ключ разработчика.

$ gpg2 --show-keys --with-fingerprint --keyid-format=short /usr/lib/alt-gpgkeys/pubring.gpg 2>/dev/null | grep -i c7eb80f9 -A2

И получим информацию о ключе конкретного разработчика:

pub   rsa4096/C7EB80F9 2019-05-16 [SC] [   годен до: 2029-05-13]
      Отпечаток ключа = DF6C 02E5 F174 D7CD F792  A9CD FF97 9DED DA27 73BB
uid                    ALT Sisyphus <alt-sisyphus@altlinux.org>

Сопоставление пакета и ключа

Сопоставляем:

  • из первого раздела
    • имя пакета
    • открытую часть ключа
  • из второго раздела
    • открытую часть ключа
    • срок действия ключа
Примечание: Если срок действия еще действует, то все в порядке.


Источники