GnuPG の電子署名は同じアルゴリズムでやってください

gpg の電子署名ファイル .asc には複数の電子署名を記録できます。
「二人以上が電子署名していれば実行する」スクリプトとかを作るのに便利です。
ユーザ moja と muku が SHA256 で電子署名をした場合

[moja@centos project]$ gpg -b -a --digest-algo SHA256 -o - hoge.txt > hoge.txt.asc[muku@centos project]$ gpg -b -a --digest-algo SHA256 -o - hoge.txt >> hoge.txt.asc

準備として共有可能な公開キーリング /project/.gnupg/pubring.gpg を用意しておくこと。

GNUPGHOME=/project/.gnupg gpg --always-trust --verify hoge.txt.asc hoge.txt 2>&1 | grep "^gpg: Good signature from " | wc -l2

電子署名ファイルで .asc で重要なのは、同じハッシュアルゴリズムで署名されていることです。
違うアルゴリズムで署名されていると一番最初の電子署名しか検証されません。
ユーザ moja が SHA256、muku が RIPEMD160 で電子署名した場合

[moja@centos project]$ gpg -b -a --digest-algo SHA256 -o - hoge.txt > hoge.txt.asc[muku@centos project]$ gpg -b -a --digest-algo RIPEMD160 -o - hoge.txt >> hoge.txt.asc
GNUPGHOME=/project/.gnupg gpg --always-trust --verify hoge.txt.asc hoge.txt 2>&1 | grep "^gpg: Good signature from " | wc -l1

電子署名のアルゴリズムを SHA256 にするのか RIPEMD160 にするのかみんなで話し合って同じコマンドを使うように決めましょう。
MD5 とか SHA1 とかいまさら選択しないように。
SHA384 とか SHA512 の選択は先進的で素晴らしいですが、CentOS 4 (GnuPG 1.2.6) も未サポートなので慎重に。

gpg -b -a --digest-algo SHA256 -o - [署名したいファイル]gpg -b -a --digest-algo RIPEMD160 -o - [署名したいファイル]

> gpg コマンドライン電子署名手順 (P-SOC)
> GnuPG の電子署名で SHA256 を使う (P-SOC)
> GnuPG の電子署名でバージョンを隠す (P-SOC)

タイトルとURLをコピーしました