Linux上でダウンロードしたソフトウェアのPGP署名を検証する方法

Pgpは、Pretty Good Privacyの略で、公開鍵暗号ソフトウェアです。 PGPは、データ通信の暗号化と署名に使用できます。 このチュートリアルでは、ダウンロードしたソフトウェアのPGP署名を確認する方法を見ていきます。

Linuxユーザは、ディストリビューションのリポジトリからソフトウェアを安全にインストールできます。 しかし、ウェブサイトからソフトウェアをダウンロードしてインストールする必要がある場合もあります。 ダウンロードしたソフトウェアが改ざんされていないことをどのように確認できますか?

一部のソフトウェア作者は、openPGP標準のフリーソフトウェア実装であるGPGなどのPGPプログラムを使用してソフトウェアに署名しています。 その場合、GPGを使用してソフトウェアの整合性を検証できます。

プロセスは比較的簡単です:

  1. ソフトウェア作成者の公開キーをダウンロードします。
  2. 公開鍵の指紋を確認して、正しい鍵であることを確認してください。
  3. 正しい公開鍵をGPG公開鍵リングにインポートします。
  4. ソフトウェアの署名ファイルをダウンロードします。
  5. 公開鍵を使用してPGP署名を検証します。 署名が正しい場合、ソフトウェアは改ざんされていませんでした。

ダウンロードしたソフトウェアのPGP署名を検証する方法を示すためにVeraCryptを例として使用します。

例:VeraCryptのPGP署名を確認

VeraCryptはオープンソースソフトウェアですが、Ubuntuや他のLinuxディストリビューションのリポジトリには含まれていません。 VeraCrypt Linuxインストーラは公式サイトからダウンロードできます。

VeraCrypt verify gpg signature

または、以下のコマンドを使用してVeraCryptインストーラをターミナルでダウンロードすることもできます。VeraCryptのダウンロードページには、Pgp公開鍵とpgp署名のダウンロードリンクもあります。 これら2つのファイルをダウンロードします。 または、以下のコマンドを使用してターミナルでダウンロードすることもできます。

PGP公開鍵

wget https://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc

PGP署名ファイル

wget https://launchpad.net/veracrypt/trunk/1.19/+download/veracrypt-1.19-setup.tar.bz2.sig

公開鍵で何かをする前に、常に鍵の指紋をチェックして正しい鍵であるかどうかを確認する必要があります。 以下のコマンドを使用して、キーの指紋を表示します。

gpg --with-fingerprint VeraCrypt_PGP_public_key.asc

出力の2行目はキーの指紋です。

pgp公開鍵指紋

VeraCrypt webサイトで公開されている指紋と比較します。Veracrypt公開鍵指紋

ご覧のとおり、2つの指紋は同一であり、公開鍵が正しいことを意味します。 したがって、公開鍵を公開鍵リングにインポートすることができます:

gpg --import VeraCrypt_PGP_public_key.asc

gpg import public key

以下のコマンドを使用して署名を確認します。 署名ファイルとソフトウェアインストーラを指定する必要がありますが、その名前は通常同じで、ファイル拡張子が異なるだけです。 これは分離された署名であり、署名とソフトウェアが互いに分離されていることを意味します。

gpg --verify veracrypt-1.19-setup.tar.bz2.sig veracrypt-1.19-setup.tar.bz2

出力には”Good Signature”と表示されます。

pgp署名の検証

署名は、ソフトウェア作成者の秘密鍵で暗号化されたハッシュ値です。 GPGは公開鍵を使用してハッシュ値を復号化し、VeraCryptインストーラのハッシュ値を計算し、両者を比較します。 これらの2つのハッシュ値が一致する場合、署名は良好であり、ソフトウェアは改ざんされていませんでした。

GPGが不正な署名であると通知した場合、ソフトウェアインストーラが改ざんされたか破損しています。

信頼できるソースからの公開鍵のインポート

ソフトウェアの作成者がwebサイト上の公開鍵IDを伝えた場合、次のようにして公開鍵をインポートでき:

gpg --recv-keys <key-ID>

それから指紋をとの表示して下さい:

gpg --fingerprint <key-ID>

そして、ウェブサイト上で公開されたものと出力から指紋を比較します。 これは、公開鍵が公開鍵サーバーからインポートされ、デフォルトでは~/.gnupg/gpg.confファイルのhkp://keys.gnupg.netに設定されているため、より安全です。 すべての主要なキーサーバーは互いに通信してキーを同期するので、デフォルトを変更する必要はありません。

それだ!

このチュートリアルでは、ソフトウェアのダウンロードのPGP署名を検証するのに役立つことを願っています。 いつものように、あなたはこの記事が有用であることが判明した場合は、私たちの無料のニュースレターを購読するか、Google+、Twitterや私たちのFacebookページのように私た

このチュートリアルを評価する