web-dev-qa-db-ja.com

パッケージの署名/検証はUbuntu 16.04では成功しますが、Ubuntu 14.04では失敗します

私は、debパッケージの署名および検証プロセスを実装しようとしています。

これは私がやっていることです:

  1. GPGキーの生成チュートリアル

  2. パッケージに署名します:

    $ dpkg-sig -k F4C52DDF --sign builder client.deb 
    Processing client.deb...
    You need a passphrase to unlock the secret key for user: "Foo Bar <[email protected]>"
    2048-bit RSA key, ID F4C52DDF, created 2018-03-13
    Signed deb client.deb
    
  3. パッケージを確認します:

    $ dpkg-sig --verify client.deb
    Processing client.deb
    GOODSIG _gpgbuilder 3910701E538E37B3F93B8FCC7570E500F4C52DDF 1520919017
    

Ubuntu 16.04でこれらの手順を実行すると、GOODSIGメッセージが表示されますが、Ubuntu 14.04でまったく同じ手順を実行しようとすると、BADSIG _gpgbuilder

誰かが私が問題を理解するのを手伝ってくれる?私はこれについて多くの助けを見つけることができないようです。

1

他の誰かがこの問題に遭遇した場合に備えて、これに対する答えを自分で見つけました。

結局のところ、後でパッチされたdpkg-sigにバグがありました(詳細: https://bugs.launchpad.net/ubuntu/+source/dpkg-sig/+bug/1342938

問題は、dpkgがdebパッケージのビルド中に使用する2つの圧縮タイプがあることです:gzとxz。バグは、dpkg-sigが署名の検証中にdata.tar.gzのみをチェックし、それが失敗した/data.tar.xzでbadsigを返したことでした。私の場合、xz圧縮方法を使用して、テスト対象のパッケージをビルドしました。

バグにパッチが適用され、更新されたdpkg-sig debパッケージは次からダウンロードできます http://ftp.us.debian.org/debian/pool/main/d/dpkg-sig/dpkg-sig_0 .13.1 + nmu4_all.deb

この問題はUbuntu 14.04で発生していました。apt-repositoryからダウンロードすると、パッチが適用されていない古いバージョンのdpkg-sigが取得されるためです。したがって、Ubuntu 14.04の誰かがこの問題に遭遇した場合、上記のFTP URLから更新されたdebパッケージをダウンロードするだけで問題を解決できます。

追加のメモとして、ターミナルで次のようにして圧縮タイプを確認できます。

ar vx packagename.deb

Data.tar.gzまたはdata.tar.xzを他のファイルと一緒に取得する必要があります。これは、圧縮タイプが何であるかを理解するのに役立ちます。

別の参考資料:https://ubuntuforums.org/showthread.php?t=2175836

0