はじめに
とりあえずGnuPGをインストールしたものの、具体的に何から手をつけていいかわからない。そう考える人も少なくはないでしょう。
そんな方は、まず以下を実践してみてください。
作業を通して、PGPの基礎の一つ「署名」について理解を深めていきましょう。
事前準備
別ページ「
ダウンロード」で手に入れたファイルを、作業フォルダに置いてください。
・gnupg-w32cli-1.*.*.exe
・gnupg-w32cli-1.*.*.exe.sig
(*は各バージョンの値)
ソースファイルをダウンロードして利用している場合は、以下のようなファイル名になっているはずです。
・gnupg-1.*.*.tar.bz2
・gnupg-1.*.*.tar.bz2.sig
(*は各バージョンの値)
ひとまず実行
説明よりも習うより慣れろということで、まずは実践してみましょう。
コマンドプロンプトを起動して作業フォルダを設定し、以下のコマンドを入力してください。
gpg --veryfy [拡張子が.sigのファイル名]
(例:gpg --verify gnupg-w32cli-1.4.9.exe.sig)
--verifyは、指定ファイルや、指定ファイルが保証するファイルに改変がおこなわれていないかを調査するコマンドです。
何の準備もしていない今実行すると、以下のようなメッセージが表示されるはずです。
gpg: 03/27/08 02:51:54にRSA鍵ID 1CE0C630で施された署名
gpg: 署名を検査できません: 公開鍵が見つかりません
「署名を検査できません」
つまり失敗です。
なぜ失敗したのか
公開鍵がなかったからです。
もう一歩踏み込んで説明すると、--verifyコマンドを実行するために必要な公開鍵が手元になく、署名データを得ることができなかったからです。
公開鍵には、データに鍵を「かける」機能のほかにいくつかの機能があります。そのうちの一つが、今回おこなう署名の確認です。
署名は秘密鍵によって作成され、それによりデータの正しさを証明する情報が生まれます。
その正しさの確認に、対になった公開鍵が必要になるのです。
公開鍵を手に入れる
今回の場合、ネット上で大っぴらに公開されているファイルの保証ということで、公開鍵も同じようにネット上に公開されている可能性が非常に高いです。
その公開鍵を鍵サーバーから取ってくることにしましょう。
以下のコマンドを入力してください。
gpg --keyserver pgp.mit.edu --recv-key 1CE0C630
--keyserver pgp.mit.eduで海外の大手鍵サーバーを指定し、--recv-key 1CE0C630で鍵ID 1CE0C630を探しています。どの文節が欠けてもコマンドは実行されません。
なお、今回探す鍵IDは、前回署名の検査が失敗したときに表示されています。
コマンドの入力後、以下のようなメッセージが表示されます。
gpg: 鍵1CE0C630をhkpからサーバーpgp.mit.eduに要求
gpg: 鍵1CE0C630: 公開鍵“Werner Koch (dist sig) <dd9jn@gnu.org>”を読み込みました
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0 有効性: 1 署名: 0 信用: 0-, 0q, 0n, 0m, 0f, 1u
gpg: 処理数の合計: 1
gpg: 読込み: 1 (RSA: 1)
鍵を見つけ出し、手に入れました。
鍵の信用がどうとか気になる語句もありますが、これは現時点で問題はありません。
再度実行
これで準備が整いました。
もう一度、以下のようにコマンドを入力してください。(コマンドプロンプトのバージョンがあまりに古くなければ、カーソルキーの上を押すことで履歴を参照することができます)
gpg --veryfy [拡張子が.sigのファイル名]
例:
gpg --verify gnupg-w32cli-1.4.9.exe.sig
元のファイルが改変されていなければ、以下のように表示されます。
情報の値はバージョンによって少し異なります。
入力後、以下のようなメッセージが表示されます。
gpg: 03/27/08 02:51:54にRSA鍵ID 1CE0C630で施された署名
gpg: “Werner Koch (dist sig) <dd9jn@gnu.orggt>”からの正しい署名
gpg: 警告: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。
主鍵の指紋: 7B96 D396 E647 1601 754B E4DB 53B6 20D0 1CE0 C630
「gpg: “Werner Koch (dist sig) <dd9jn@gnu.org>”からの正しい署名」
注目すべきは2行目です。
これでファイルが改変されていないことを確かめることができました。