Kernel/signature/rpm: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «= Проверка целостности RPM пакетов = == Получение RPM ключей и утилит == Актуальные RPM ключи ''ALT Linux Team'' находятся в пакете {{pkg|alt-rpmkeys}}, он установится автоматически вместе с утилитами из {{pkg|alt-rpmkeys-utils}}: <span style="color:blue">#</span> '''apt-get update''' <span style="color:blue">#</span> '''apt-get i...»)
 
 
(не показаны 4 промежуточные версии этого же участника)
Строка 10: Строка 10:
== Проверка целостности пакета с ядром ==
== Проверка целостности пакета с ядром ==


Проверка что RPM пакет подписан ''ALT Linux Team'':
=== Пример успешной проверки ===


   <span style="color:blue">linux$</span> '''alt-rpmkeys-checksig''' /ALT/Sisyphus/files/x86_64/RPMS/kernel-image-std-def-5.15.82-alt1.x86_64.rpm
Проверка, что RPM пакет подписан ''ALT Linux Team'':
 
   <span style="color:blue">$</span> '''alt-rpmkeys-checksig''' kernel-image-std-def-5.15.82-alt1.x86_64.rpm
   <span style="color:grey">ALT Sisyphus <alt-sisyphus@altlinux.org></span>
   <span style="color:grey">ALT Sisyphus <alt-sisyphus@altlinux.org></span>


В случае успеха, утилита выведет кем подписан пакет (это будет кто-то из домена <code>altlinux.org</code>) и код возврата буде <code>0</code> (код успешного завершения).
В случае успеха, утилита выведет кем подписан пакет (это будет email из домена <code>altlinux.org</code>) и код возврата будет <code>0</code> (код успешного завершения).
 
=== Пример неуспешной проверки (чужая подпись) ===
 
На примере пакета подписанного другим дистрибутивом:
 
  <span style="color:blue">$</span> '''alt-rpmkeys-checksig''' gpgme-1.15.1-2.fc34.x86_64.rpm
  <span style="color:grey">gpgme-1.15.1-2.fc34.x86_64.rpm:
      Header V4 RSA/SHA256 Signature, key ID 45719a39: NOKEY
      Header SHA1 digest: OK (a16f31f5fac1f230566f97a911467a4cc408ac84)
      Verify signature: BAD PARAMETERS (273 0x55a0a804b1a7 1 (nil) (nil))
      V4 RSA/SHA256 Signature, key ID 45719a39: NOKEY
      MD5 digest: OK (9a61f0ec71eb59a33d6ef08c8b95f8a1)
  alt-rpmkeys-checksig: gpgme-1.15.1-2.fc34.x86_64.rpm: '''signature verification failed'''</span>
 
Обратите внимание на текст '''signature verification failed''', при этом утилита вернет код неуспешного завершения (не <code>0</code>).
 
=== Пример неуспешной проверки (измененный пакет) ===
 
В случае искажения содержимого пакета. (Для примера добавим лишний байт к данным.)
 
  <span style="color:blue">$</span> '''head''' -1c /dev/zero >> kernel-image-std-def-5.15.82-alt1.x86_64.rpm
  <span style="color:blue">$</span> '''alt-rpmkeys-checksig''' kernel-image-std-def-5.15.82-alt1.x86_64.rpm
  <span style="color:grey">kernel-image-std-def-5.15.82-alt1.x86_64.rpm:
      Header V4 RSA/SHA512 Signature, key ID da2773bb: OK
      Header SHA1 digest: OK (ef0a801f684333573e0b5d5feb6666eb007b67de)
      MD5 digest:: BAD Expected(3eafda2aac88ee0adebc7d976ce8e044) != (ca048ae433df388d89bed3fe59074f4c)
      V4 RSA/SHA512 Signature, key ID da2773bb: BAD
  alt-rpmkeys-checksig: kernel-image-std-def-5.15.82-alt1.x86_64.rpm: '''signature verification failed'''</span>
 
Как и в предыдущем случае текст '''signature verification failed''' и код неуспешного завершения.
 
=== Пример неуспешной проверки (отсутствие подписи) ===
 
Допустим, вы собирали пакет локально и он не подписан.
 
  <span style="color:blue">$</span> '''alt-rpmkeys-checksig''' example-1.0-alt1.x86_64.rpm
  <span style="color:grey">alt-rpmkeys-checksig: example-1.0-alt1.x86_64.rpm: '''signature not found'''</span>
 
В этом случае текст '''signature not found''' и код неуспешного завершения.

Текущая версия от 19:05, 11 декабря 2022

Проверка целостности RPM пакетов

Получение RPM ключей и утилит

Актуальные RPM ключи ALT Linux Team находятся в пакете alt-rpmkeys, он установится автоматически вместе с утилитами из alt-rpmkeys-utils:

 # apt-get update
 # apt-get install -y alt-rpmkeys-utils

Проверка целостности пакета с ядром

Пример успешной проверки

Проверка, что RPM пакет подписан ALT Linux Team:

 $ alt-rpmkeys-checksig kernel-image-std-def-5.15.82-alt1.x86_64.rpm
 ALT Sisyphus <alt-sisyphus@altlinux.org>

В случае успеха, утилита выведет кем подписан пакет (это будет email из домена altlinux.org) и код возврата будет 0 (код успешного завершения).

Пример неуспешной проверки (чужая подпись)

На примере пакета подписанного другим дистрибутивом:

 $ alt-rpmkeys-checksig gpgme-1.15.1-2.fc34.x86_64.rpm
 gpgme-1.15.1-2.fc34.x86_64.rpm:
     Header V4 RSA/SHA256 Signature, key ID 45719a39: NOKEY
     Header SHA1 digest: OK (a16f31f5fac1f230566f97a911467a4cc408ac84)
     Verify signature: BAD PARAMETERS (273 0x55a0a804b1a7 1 (nil) (nil))
     V4 RSA/SHA256 Signature, key ID 45719a39: NOKEY
     MD5 digest: OK (9a61f0ec71eb59a33d6ef08c8b95f8a1)
 alt-rpmkeys-checksig: gpgme-1.15.1-2.fc34.x86_64.rpm: signature verification failed

Обратите внимание на текст signature verification failed, при этом утилита вернет код неуспешного завершения (не 0).

Пример неуспешной проверки (измененный пакет)

В случае искажения содержимого пакета. (Для примера добавим лишний байт к данным.)

 $ head -1c /dev/zero >> kernel-image-std-def-5.15.82-alt1.x86_64.rpm
 $ alt-rpmkeys-checksig kernel-image-std-def-5.15.82-alt1.x86_64.rpm
 kernel-image-std-def-5.15.82-alt1.x86_64.rpm:
     Header V4 RSA/SHA512 Signature, key ID da2773bb: OK
     Header SHA1 digest: OK (ef0a801f684333573e0b5d5feb6666eb007b67de)
     MD5 digest:: BAD Expected(3eafda2aac88ee0adebc7d976ce8e044) != (ca048ae433df388d89bed3fe59074f4c)
     V4 RSA/SHA512 Signature, key ID da2773bb: BAD
 alt-rpmkeys-checksig: kernel-image-std-def-5.15.82-alt1.x86_64.rpm: signature verification failed

Как и в предыдущем случае текст signature verification failed и код неуспешного завершения.

Пример неуспешной проверки (отсутствие подписи)

Допустим, вы собирали пакет локально и он не подписан.

 $ alt-rpmkeys-checksig example-1.0-alt1.x86_64.rpm
 alt-rpmkeys-checksig: example-1.0-alt1.x86_64.rpm: signature not found

В этом случае текст signature not found и код неуспешного завершения.