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.nethkps.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」は想定内であり、この場合は問題はありません。