debパッケージにリンクされた署名があるかどうかを確認するには?

debパッケージにリンクされた署名があるかどうかを確認するには?

rpmベースのシステムでは、rpmファイルに関連する署名があるかどうかを簡単に確認できます。

rpm -qpi <rpm-file.rpm> | grep -i signature

.deb ファイルの場合、パッケージ情報は表示できますが、署名が関連付けられているかどうかに関する情報は含まれません。

dpkg-deb -I uma-18feb-latest.deb

実際に署名を確認する次のコマンドを使用せずにUbuntuで署名を表示する方法はありますか?

dpkg-sig --verify <deb-file.deb>

答え1

dpkg-sig --list <deb-file.deb>

署名のように見えるファイルのすべてのエントリは、ファイルを確認せずに一覧表示されます。これにより、ファイル内のすべての署名の役割が一覧表示されます。例えば

$ dpkg-sig -l vuescan_9.7.50-1_amd64.deb
Processing vuescan_9.7.50-1_amd64.deb...
builder
$ dpkg-sig -l zstd_1.4.8+dfsg-2.1_i386.deb
Processing zstd_1.4.8+dfsg-2.1_i386.deb...
$

最初のファイルには「Builder」ロールの署名があり、2番目のファイルには署名がありません。

.deb個々のファイルへの署名はRPMとは異なり、一般的ではありません。 Debian パッケージの信頼性は、リポジトリの信頼性によって異なります。Debianソフトウェアパッケージの信頼性をどのように保証しますか?

答え2

.debパッケージでは、リポジトリ全体(つまりRelease.gpgファイル)に署名する必要がありますが、個々のパッケージにも署名することができます。

for i in *.deb; do
    ar -p "$i" _gpgbuilder 2>/dev/null | grep "^Signer";
done

関連情報