Ошибка debgsig-verify с gpg: не найдены действительные данные OpenPGP, в то время как gpg decrypt может проверить отсоединенную подпись - PullRequest
1 голос
/ 26 апреля 2019

Почему debsig-verify не может проверить, когда отсоединенная подпись _gpgorigin соответствует объединенному файлу debian-binary control.tar.gz data.tar.gz?

Это из-за этого WARNING: This key is not certified with a trusted signature!?

Вкл. debian:7 Подпись пакета контейнера Docker работала хорошо, и на debian:9.8 она завершается неудачно с

gpg: no valid OpenPGP data found.
    gpg: processing message failed: Unknown system error
    debsig: subprocess getKeyID returned error exit status 2

Процесс подписания

# Unpack
ar x unsigned.deb

# Generate combine file
cat debian-binary control.tar.gz data.tar.gz > combined

# Create detached signature for combined
gpg -abs -o _gpgorigin combined

# Repack
ar rc signed.deb _gpgorigin debian-binary control.tar.gz data.tar.gz

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

gpg --output doc --decrypt _gpgorigin
        Detached signature.
        Please enter name of data file: combined
        gpg: Signature made Thu Apr 25 22:43:37 2019 UTC
        gpg:                using RSA key AAAABBBBCCCCDDDD996FCC98FFFFFFFFFFFFFFFF
        gpg: Good signature from "mygroup Testing <testing@mygroup.net>" [unknown]
        gpg: WARNING: This key is not certified with a trusted signature!
        gpg:          There is no indication that the signature belongs to the owner.
        Primary key fingerprint: AAAA BBBB CCCC DDDD 996F CC98 FFFF FFFF FFFF FFFF

Проверить подписанный пакет (не удалось)

debsig-verify -v -d signed.deb

    debsig: Starting verification for: signed.deb
    debsig:         getSigKeyID: got FFFFFFFFFFFFFFFF for origin key
    debsig: Using policy directory: /etc/debsig/policies/FFFFFFFFFFFFFFFF
    debsig:   Parsing policy file: /etc/debsig/policies/FFFFFFFFFFFFFFFF/mygroup-test.pol
    debsig:     parsePolicyFile: parsing '/etc/debsig/policies/FFFFFFFFFFFFFFFF/mygroup-test.pol'
    debsig:     parsePolicyFile: completed
    debsig:     Checking Selection group(s).
    debsig:       Processing 'origin' key...
    gpg: no valid OpenPGP data found.
    gpg: processing message failed: Unknown system error
    debsig: subprocess getKeyID returned error exit status 2

Список ключей для набора ключей policie

 gpg --no-default-keyring --keyring  /usr/share/debsig/keyrings/FFFFFFFFFFFFFFFF/pubring.gpg --list-sigs
/usr/share/debsig/keyrings/FFFFFFFFFFFFFFFF/pubring.gpg
-------------------------------------------------------
pub   rsa2048 2017-06-19 [SC]
      AAAABBBBCCCCDDDD996FCC98FFFFFFFFFFFFFFFF
uid           [ unknown] MyGroup Testing <testing@mygroup.net>
sig 3        FFFFFFFFFFFFFFFF 2017-06-19  MyGroup Testing <testing@mygroup.net>
sub   rsa2048 2017-06-19 [E]
sig          FFFFFFFFFFFFFFFF 2017-06-19  MyGroup Testing <testing@mygroup.net>


1 Ответ

1 голос
/ 02 мая 2019

У меня только что была похожая проблема, и я обнаружил несколько вещей, которые я делал неправильно, что не очевидно из документации / примеров:

  1. убедитесь, чтоу файла политики есть пространство имен XML с использованием https (не http, как используют несколько примеров), т.е. <Policy xmlns="https://www.debian.org/debsig/1.0/">

  2. файл 'keyring' не является связкой ключей, это просто (общедоступный) ключ.

  3. файл 'keyring' НЕ ДОЛЖЕН быть защищен ASCII.

При указанных выше изменениях проверка пакета прошла успешно (Ubuntu 18.04)

...