私は、debパッケージの署名および検証プロセスを実装しようとしています。
これは私がやっていることです:
GPGキーの生成( チュートリアル )
パッケージに署名します:
$ 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
パッケージを確認します:
$ dpkg-sig --verify client.deb
Processing client.deb
GOODSIG _gpgbuilder 3910701E538E37B3F93B8FCC7570E500F4C52DDF 1520919017
Ubuntu 16.04でこれらの手順を実行すると、GOODSIGメッセージが表示されますが、Ubuntu 14.04でまったく同じ手順を実行しようとすると、BADSIG _gpgbuilder
。
誰かが私が問題を理解するのを手伝ってくれる?私はこれについて多くの助けを見つけることができないようです。
他の誰かがこの問題に遭遇した場合に備えて、これに対する答えを自分で見つけました。
結局のところ、後でパッチされた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を他のファイルと一緒に取得する必要があります。これは、圧縮タイプが何であるかを理解するのに役立ちます。