次のページ 前のページ 目次へ

3. 鍵の使用

3.1 鍵の生成

  下記コマンドの実行:

gpg --gen-key

  これで新しいペアとなっている鍵(公開鍵と秘密鍵)が生成される。画面上でまずはどの暗号アルゴリズムを利用するかを質問される。こちらのURL:PGP DH vs. RSA FAQ であなたは暗号アルゴリズムに関する詳細情報を確認できる。または、こちらの『応用暗号方式』(原題:Applied Cryptography)もご参考になるだろう。この問題に関して、気軽に DSA/ ElGamal を選択することができる。この種の暗号技術が特許により規制はされていない訳だ。

  次に質問されるのは、鍵の長さ(ビット数)である。こちらはユーザ次第で指定することができる。あなたは安全性と計算(暗号化&復号化)に掛かる時間の両者のバランスを斟酌しながら決める必要がある。鍵がより長ければ、通信が傍受された時にクラッキングされるリスクも小さくなるのだ。但し、実際の運用では計算に要する時間も長くなってしまうことになる。もし計算に掛かる時間が重要な要素とお考えでも、暫くの間にはあなたはこの鍵を使うことになるのを無視できないのだ。新しい中央処理装置(CPU) のクロック数は鰻登りのように上がっていくに連れて、計算機(コンピュータ)の計算能力も日進月歩しているのだ。これを常に心得ておくことも重要である。GnuPGで要求される鍵の長さは最短 768 ビットだ。しかし、多くの人はあなたに 2048 ビットの長さを推奨するだろう(最新バージョンの GnuPG は最長 4096 ビットの鍵を作成することができる)。DSA の基本サイズは 1024 ビットであるに大して、最大の安全性を前提としているなら、最長の鍵を使うべきとのことは言うまでもない。

  続いてシステムはあなたに氏名、コメント、メールアドレスの入力を要求する。これらの内容をベースに暗号コードが作成される。ここの設定は将来に変更することもできる(注:鍵の管理

  最後はパスワードの入力が要求される(実は空白も許容されるから、パスフレーズ/「通行証」と言ったほうがもっと適宜かもしれない)このパスフレーズを用いて、あなたの秘密鍵に関連する各機能を利用ことができる。良いパスフレーズは以下の要素を含む:

  このパスフレーズの内容に大文字と小文字を混在させる(例:tHIs iS youR PasSWoRd)のは安全性を高める効果がある。作成の時はこの内容は 忘れてはいけない ことを念頭に置いて下さい。これを忘れた時点では、メッセージを復号化することも出来なくなり、自分の秘密鍵を失ったことに相当するのだ。パスフレーズの内容に何かの証明書を生成するのは賢い方法かもしれない。(無論他人に自分のパスフレーズの内容を暴露しないことに注意を払わなければならない)この節を見てみよう:鍵の破棄

  以上の内容を全部入力し終えた後、いよいよシステムは鍵を作りし始める。このステップは少々時間が掛かるだろう。この間にシステムはまずランダムなデータ(乱数)を集めはじめる。この隙にあなたは他のターミナルで作業するのは、乱数の生成に手助けすることになるだろう。今のあなたに理解できたは、生成された鍵は常に異なることだ。たった今と 5 分後に同じ入力情報をベースに作った鍵は、必ず異なった内容を持つ。こういう訳で、パスワード(パスフレーズ)は忘れてはいけないものなのだ。

3.2 鍵のエクスポート

  ユーザの鍵をエクスポートするには以下のコマンドを入力しよう:

gpg --export [UID]

  UID(ユーザID、メールアドレス或いは固有ID)を与えていなければ、すべての鍵の内容は標準出力に書き出される。但し、 -o ( --output )オプションを使えば、ファイル名を指定して鍵を保存することができる。また -a ( --armor )オプションを使い、出力ファイルをバイナリ形式の代わりに、7 ビットのアスキー形式に指定することもできる。

  鍵のエクスポートを終えて、あなたは一層視野を広げることに成功したのだ。あなたは自分の(公開)鍵を自分のウェブサイトで公開するなり、指紋サービスを使ったり、http://wwwkeys.de.pgp.net/ のようなキーサーバを利用するなり、、又はあなたの知っている何かの方法で自分の鍵を公開することによって、他の人間は初めてあなたと安全な通信を行うことができるようになった訳だ。

3.3 鍵のインポート

  他の誰かの公開鍵(或いは複数の公開鍵)を入手したとき、これらの鍵をあなたの鍵データベースに登録するまで、まだ使えないのだ。鍵をデータベースにインポートするには、下記のコマンドを実行する:

gpg --import [Filename]

  このファイルネーム( [Filename] )を省略した場合、データは標準入力から読み込まれる。

3.4 鍵の破棄

  何かの理由であなたはある鍵を破棄したいとき、例えば:秘密鍵が盗まれた或いは得られてはいけない人に入手された、或いは所有者の識別情報が変わった、或いは鍵の長さが次期の利用環境に適合しなくなった。これらの状況が発生した時、以下のコマンドを実行することで鍵を破棄することが出来る:

gpg --gen-revoke

  これで鍵の廃棄証明書が生成される。これを遂行させる前に、秘密鍵を確保して置かなければならない、このような仕組みでなければ、誰でもあなたの鍵を破棄することが出来てしまうのだ。ただし、鍵の破棄に関して一つの欠点がある。つまり、破棄したい鍵の秘密鍵を握っていなければ、鍵を破棄することもできない。この問題を解決する為にはある方法が賢いと言えるかもしれない。それは、ペアの鍵の作成と同時に破棄証明書を作って置くこと。あなたはこの証明書をどこかの安全な場所に置くか、ディスクに保存するか、紙に記録するなどをして、この後は仮にいつか秘密鍵を失くしても、破棄証明書があるので、随時に鍵を無効にすることができるのだ。必ず念頭に置くべきなのは、 決してこの証明書を誰か他人に渡してはいけないことだ 。そうなると、誰かがこの証明書を公開し、何手間も掛けずにあなたの鍵は無効だと宣言できるのだ。

3.5 鍵の管理

  GnuPGシステムファイルにはデータベースの機能をするものがある。このファイルには、全ての鍵に関するデータそして情報はこのファイルに格納されている(所有者の信用レベルを除いて:詳細は鍵の署名でご確認下さい。)。

  以下のコマンドを実行:

gpg --list-keys

  これで全ての鍵の情報をリストされる。署名を確認するにはこのコマンドをタイプして下さい:

gpg --list-sigs

  注:更に詳細な情報は鍵の署名で確認できる。

  鍵の「指紋」を確認するには:

gpg --fingerprint

  ある鍵は本当の所有者の持ち物なのかどうかを判別するには、あなたは鍵の「指紋」( Fingerprint )を確認する必要がある(電話を掛けることと同じように)。上記コマンドを実行すると、一列の比較的に小さい数字が表示される。

  秘密鍵の一覧を出力させるには:

gpg --list-secret-keys

  また、秘密鍵の署名、指紋を表示さえるのは、なに一つ意味はないと考えて下さい。

  公開鍵を削除するには:

gpg --delete-key UID

  秘密鍵を削除するには:

gpg --delete-secret-key

  他にもう一つ鍵の情報と関連する重要なコマンドがある:

gpg --edit-key UID

  このコマンドであなたは指定した鍵の有効期限や、信用レベルを修正し、または指紋や、署名を追加することができる。これを実行する為にはパスフレーズを入力する必要がある、その後新しいプロンプトが現れ、ここで各種の編集作業が出来る。

3.6 鍵の署名

  これまでの記述にもあったが、このシステムには一つの大きい弱点がある。それは公開鍵の信憑性の問題。もしあなたは間違った公開鍵を持っていて、これで暗号化を行うのは全く無意味である。このリスクを克服する為には、鍵に署名を行うことが出来る。自分の署名をある鍵に置くことによって、この鍵のを完全に信頼することを宣言する。署名されていることは「この鍵が確実に鍵情報に含まれているユーザIDが指している人の所有物である」を証明する。これがあれば、あなたは安心して暗号化などをするとよいだろう。

  署名を行うにはコマンド gpg --edit-key UID で署名したいユーザのIDを指定し、実行する。その後コマンド sign を入力する。

  ある鍵を絶対に信憑するときのみ、鍵に対する署名を行って下さい!!!例えばあなた自身がこの鍵を手に入れた時(キーサインパーティーなどで)、或いはその他のルートを経由して入手し(電話などで)「指紋」を確認できた時。何も確認せずに鍵を本物と想定(仮定)して使ってしまうなどはとんでもない結果を招き兼ねないのだ。

  GnuPGは有効な署名と「所有者の信頼レベル( ownertrust )」に基づいて鍵の合法性(正当性)を判断している。「所有者の信頼レベル」とは、鍵を入手した人間がその鍵に対する信用度の度合いに従って、GnuPGで定義する信用情報の値のことである。この値は、以下のように分別されている:

  ユーザがある署名を信用しない場合、この署名を使わないことに等しい。この信用情報は鍵が格納されているファイルになく、別のファイルに保存されている。


次のページ 前のページ 目次へ

$Id: GPGMiniHowto-3.html 23 2005-08-11 18:14:39Z dan $