パッケージのシグネチャを検証する方法
私たちのダウンロードページにある ファイルのそれぞれには、パッケージと同じ名前と".asc"という拡張子を持った ファイルが添えられています。例えば、最新のWindows向けインストールバンドル: dist/vidalia-bundles/vidalia-bundle-0.2.1.26-0.2.9.exe.ascというふうにです。
この.ascファイルはPGPシグネチャです。これを使ってあなたがダウンロードした ファイルが間違いなく私たちが提供しようと意図したものとまったく同じものであると いうことを検証することが出来ます。
もちろん、あなたのキーリングの中に私たちのpgp鍵がなければいけません: もしあなたがpgp鍵について知らないなら、署名したのが本当に私たちであるのか どうかを確かめることが出来ません。署名に使用している私たちの鍵は以下のとおりです:
- Roger's (0x28988BF5)は通常、ソースコードファイルの署名に使います。
- Nick's (0x165733EA, or its subkey 0x8D29319A)
- Andrew's (0x31B0974B)
- Peter's (0x94C09C7F, or its subkey 0xAFA44BDD)
- Matt's (0x5FA14861)
- Jacob's (0x9D0FACE4)
ステップ1: 鍵をインポートする
GnuPGからも直接鍵をインポートできます:
gpg --keyserver subkeys.pgp.net --recv-keys 0x28988BF5
または以下のようにして鍵を検索して
gpg --keyserver subkeys.pgp.net --search-keys 0x28988BF5
一つの鍵を選択すると、それがあなたのキーリングに追加されます。
ステップ2: フィンガープリントを検証する
gpgフィンガープリントを以下のコマンドを使って検証します:
gpg --fingerprint (insert keyid here)鍵のフィンガープリントは以下のようになっているはずです:
pub 1024D/28988BF5 2000-02-27
Key fingerprint = B117 2656 DFF9 83C3 042B C699 EB5A 896A 2898 8BF5
uid Roger Dingledine <arma@mit.edu>
pub 3072R/165733EA 2004-07-03
Key fingerprint = B35B F85B F194 89D0 4E28 C33C 2119 4EBB 1657 33EA
uid Nick Mathewson <nickm@alum.mit.edu>
uid Nick Mathewson <nickm@wangafu.net>
uid Nick Mathewson <nickm@freehaven.net>
pub 1024D/31B0974B 2003-07-17
Key fingerprint = 0295 9AA7 190A B9E9 027E 0736 3B9D 093F 31B0 974B
uid Andrew Lewman (phobos) <phobos@rootme.org>
uid Andrew Lewman <andrew@lewman.com>
uid Andrew Lewman <andrew@torproject.org>
sub 4096g/B77F95F7 2003-07-17
pub 1024D/94C09C7F 1999-11-10
Key fingerprint = 5B00 C96D 5D54 AEE1 206B AF84 DE7A AF6E 94C0 9C7F
uid Peter Palfrader
uid Peter Palfrader <peter@palfrader.org>
uid Peter Palfrader <weasel@debian.org>
pub 1024D/5FA14861 2005-08-17
Key fingerprint = 9467 294A 9985 3C9C 65CB 141D AF7E 0E43 5FA1 4861
uid Matt Edman <edmanm@rpi.edu>
uid Matt Edman <Matt_Edman@baylor.edu>
uid Matt Edman <edmanm2@cs.rpi.edu>
sub 4096g/EA654E59 2005-08-17
pub 1024D/9D0FACE4 2008-03-11 [expires: 2010-03-11]
Key fingerprint = 12E4 04FF D3C9 31F9 3405 2D06 B884 1A91 9D0F ACE4
uid Jacob Appelbaum <jacob@appelbaum.net>
sub 4096g/D5E87583 2008-03-11 [expires: 2010-03-11]
(もちろんそれらが本物であることの真の確証が欲しければ、複数の場所からこれを チェックするか鍵署名に参加してそれらの鍵に対する信頼パスを構築すべきです。)
ステップ3: ダウンロードしたパッケージを検証する
もしあなたがGnuPGを使っているなら、.ascファイルとダウンロードしたファイルとを 同じディレクトリに置いたうえで、"gpg --verify (whatever).asc (whatever)"と タイプしてください。以下のような種類のコマンドを使用すると "Good signature"または"BAD signature"などと言ってきます:
gpg --verify tor-0.1.0.17.tar.gz.asc tor-0.1.0.17.tar.gz gpg: Signature made Wed Feb 23 01:33:29 2005 EST using DSA key ID 28988BF5 gpg: Good signature from "Roger Dingledine <arma@mit.edu>" gpg: aka "Roger Dingledine <arma@mit.edu>" 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: B117 2656 DFF9 83C3 042B C699 EB5A 896A 2898 8BF5
あなたがこのユーザに信頼インデックスを与えていないため、警告が出ていることに 注意してください。これはあなたのプログラムがこのシグネチャを作成した鍵を 検証したことを意味します。この鍵が本当に開発者に帰属しているのかどうかを 確認するかどうかはユーザ次第です。最善の方法は実際に彼等に会ってgpg フィンガープリントを交換することです。鍵に署名することもできます。もし あなたがRogerまたはNickの鍵を見付けた場合、その他の人々は要するに "私たちはこれがRogerないしNickだということを検証しました"と言っている わけです。したがってもしあなたがそのサードパーティを信頼するなら、 arma/nickに対してそれと同程度の信頼を置くことができるのです。
つまり、あなたはメッセージを無視してもよいし、信頼レベルを割り当てることもできると いうことです。
参考までに、以下に検証が失敗した例を示します。 これはシグネチャとファイルコンテンツとがマッチしなかったことを意味します:
gpg --verify tor-0.1.0.17.tar.gz.asc gpg: Signature made Wed Feb 23 01:33:29 2005 EST using DSA key ID 28988BF5 gpg: BAD signature from "Roger Dingledine <arma@mit.edu>"
もし上のようなメッセージが出たら、そのファイルの中身を信頼してはいけません。
あなたがTorをDebian上で動かしているなら、 これらの鍵をaptにインポートするにあるガイドを読むべきです。
