GPG を使用して Product Security の署名済みコンテンツを検証する
Red Hat Product Security によって作成されたコンテンツは、暗号で署名されている可能性があります。脆弱性検出スクリプトおよびその他のコンテンツでは、GnuPG を使用してファイルの 分離署名 を作成します。
GnuPG は、Red Hat Product Security の 秘密鍵 を使用して、署名済みファイルの一方向ハッシュを生成します。付属の公開鍵は誰でもダウンロードでき、署名済みファイルの信頼性を検証できます。
検証の実行には以下が必要です。
- 署名済みファイル (例: 脆弱性検出スクリプトなど)
- 分離署名 (拡張子が .asc の付属ファイル)
- 公開鍵 (鍵サーバーからダウンロード)
公開鍵のダウンロード
以下のコマンドを使用すると検証を実行できます。
プロキシーサーバーを使用しない場合:
$ gpg --keyserver pgp.mit.edu --recv 7514F77D8366B0D9
プロキシーサーバーを使用する場合:
$ gpg2 --keyserver pgp.mit.edu --keyserver-options http-proxy=<proxy_address>:<proxy_port> --search-keys 7514F77D8366B0D9
例:
$ gpg2 --keyserver pgp.mit.edu --keyserver-options http-proxy=192.168.1.100:8080 --search-keys 7514F77D8366B0D9
pgp.mit.edu 鍵サーバーにうまく接続できない場合は、keys.gnupg.net や hkps.pool.sks-keyservers.net などの別の鍵サーバーに接続してみてください。
コンテンツの検証
上記でダウンロードした鍵を使用すると、Red Hat からダウンロードした署名済みファイルを検証することができます。
$ gpg --verify <signature file> <signed file>
例:
$ gpg --verify spectre-meltdown.sh.asc spectre-meltdown.sh
正規のスクリプトであれば以下のような出力が表示されます。
gpg: Signature made Sat 01 Aug 2020 01:53:27 PM CEST
gpg: using RSA key 7514F77D8366B0D9
gpg: Good signature from "Red Hat, Inc. (tools key) <secalert@redhat.com>" [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: 8B12 20FC 564E 9583 2002 05FF 7514 F77D 8366 B0D9
また、gpg コマンドの戻り値は 0 になります。
検証に失敗した場合の出力は次のようになります。
gpg: Signature made Wed 29 Jul 2020 06:13:52 PM CEST
gpg: using RSA key 7514F77D8366B0D9
gpg: BAD signature from "Red Hat, Inc. (tools key) <secalert@redhat.com>" [unknown]
また、gpg コマンドの戻り値は 0 ではありません。
検証に失敗すると「Good signature」は表示されません。出力に表示される「WARNING」は想定内であり、この場合は問題はありません。
Comments