Gentoo Logo

GnuPG Gentoo ユーザーガイド

目次:

1.  はじめに

このガイドでわかること

このガイドでは公開鍵暗号技術、暗号化そして電子署名について習熟しているものと仮定します。もしそうでないのならここを見てください。 GnuPG ハンドブック 第2章

このガイドではGnuPGのインストール方法、鍵ペアの作成方法、鍵束への鍵の追加方法、鍵サーバーへの公開鍵の追加方法、そしてあなたが送信/受信したメッセージを(署名/暗号化)/(検証/復号)する方法を解説します。さらに他人に中身を見られないようにあなたのコンピューターの中のファイルを暗号化する方法も解説します。

必要なソフトのインストール

まず基本的なことですが、emerge gnupgをしましょう。もしGnuPGを使えるE-mailクライアントが欲しければ、pine (emerge pinepgp)、mutt (emerge mutt)、Mozilla/Netscapr Mail、evolution (evolutionはGNOMEのMicrosoft Outlokクローンです)、そしてKDEのKMail(KMailはkdenetworkパッケージの一部です)があります。

もしKDEを使っているのならば、Kgpgを使うのがいいでしょう。この小さなプログラムは鍵ペアの生成、アスキーファイルから鍵をインポート、インポートした鍵への署名、鍵のエクスポート、そしてさらにいくつかの機能があります。(Kgpgは鍵サーバーから鍵をインポートする機能を持っていませんが、コマンドラインからそれを行う方法を解説します。)

2.  鍵の生成と公開鍵束への鍵の追加

鍵の生成

鍵を生成するには、gpg --gen-keyとします。はじめての時は、いくつかのディレクトリを作成します。鍵を生成するにはもう一度タイプしてください。

コード表示 2.1: 鍵の生成プロセス

#gpg --gen-key
gpg (GnuPG) 1.0.7; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Please select what kind of key you want:
   (1) DSA and ElGamal (default)
   (2) DSA (sign only)
   (4) ElGamal (sign and encrypt)
   (5) RSA (sign only)
   Your selection?1

ここでは使いたい鍵のタイプを選ぶことができます。多くのユーザーはデフォルトであるDSAとElGamaを選びます。次は鍵のサイズです。大きければ大きいほどよいですが、DSA/ElGamaの鍵を含めて2048ビット以上にはしないでください。。通常のE-mailには1024ビットあれば十分でしょう。

サイズの次は有効期限です。ここでは短いほど良いですが、多くのユーザーは無期限、または大体1年か2年間の間に設定します。

コード表示 2.2: 鍵のサイズの選択

DSA keypair will have 1024 bits.
About to generate a new ELG-E keypair.
              minimum keysize is  768 bits
              default keysize is 1024 bits
    highest suggested keysize is 2048 bits
    What keysize do you want? (1024) 2048
Requested keysize is 2048 bits       
Please specify how long the key should be valid.
         0 = key does not expire
	 <n>= key expires in n days
	 <n>w = key expires in n weeks
	 <n>m = key expires in n months
	 <n>y = key expires in n years
	 Key is valid for? (0) 0
Key does not expire at all

次はあなた自身に関する個人情報を入力します。公開鍵を他の人に送るつもりならば実際のアドレスをここで入力してください。

コード表示 2.3: ユーザー情報の入力

					Is this correct (y/n)? y
                        
You need a User-ID to identify your key; the software constructs the user id
from Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name: John Doe
Email address: john@nowhere.someplace.flick
Comment: The Real John Doe                 
You selected this USER-ID:
"John Doe (The Real John Doe) <john@nowhere.someplace.flick>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O 
You need a Passphrase to protect your secret key.    

Enter passphrase: 

次に鍵パスワードを2回入力してください。強いパスワードを使うのがいいでしょう。もし誰かがあなたの秘密鍵を手に入れて、あなたのパスワードをクラックしてしまえば、彼は"あなた"によって署名されたメッセージを送ることができるようになり、みんなはあなたから送られてきたのだと思ってしまいます。

さて、ここでGnuPGは鍵を生成します。ランダムなデータを作り出すため、マウスを動かしたり、バックグラウンドでmp3をかけたりすれば、処理のスピードアップの手助けになるでしょう。

破棄証明書の発行

重要: ここは非常に大事な部分なので、必ず『今』行うようにしてください。

鍵を生成した後は破棄証明書を作るようにしてください。これをすることで、あなたの鍵が危険に晒された(誰かがあなたの鍵/パスフレーズを手に入れたなどの)場合、鍵を取り消すことができます

コード表示 2.4: 破棄証明書の発行

#gpg --list-keys
/home/humpback/.gnupg/pubring.gpg
---------------------------------
pub  1024D/75447B14 2002-12-08 John Doe (The Real John Doe) <john@nowhere.someplace.flick>
sub  2048g/96D6CDAD 2002-12-08

bash-2.05a$ gpg --output revoke.asc --gen-revoke 75447B14

sec  1024D/75447B14 2002-12-08   John Doe (The Real John Doe) <john@nowhere.someplace.flick>

Create a revocation certificate for this key? y
Please select the reason for the revocation:   
  0 = No reason specified          # 特に理由なし
  1 = Key has been compromised     # 鍵が危なくなってしまった
  2 = Key is superseded            # 鍵を入れ替えた
  3 = Key is no longer used        # 鍵をもう使っていない
  Q = Cancel
(Probably you want to select 1 here)
Your decision? 1 
Enter an optional description; end it with an empty line:
> Someone cracked me and got my key and passphrase
>                                                 
Reason for revocation: Key has been compromised
Someone cracked me and got my key and passphrase
Is this okay? y
               
You need a passphrase to unlock the secret key for
user: "John Doe (The Real John Doe) <john@nowhere.someplace.flick>"
1024-bit DSA key, ID 75447B14, created 2002-12-08

ASCII armored output forced.
Revocation certificate created.

Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable.  But have some caution:  The print system of
your machine might store the data and make it available to others!

gpg --list-keysコマンドは公開鍵束の中にある鍵をリストアップしてくれます。これを使ってあなたの鍵のIDを見ることで取り消し証明書を作ることができます。ここで、.gnupgディレクトリを丸ごとコピーし、ASCII-armor形式の破棄証明書(revoke.asc)を安全なメディア(安全な場所に保管できる2枚のフロッピーまたはCD-R)に保存しておくとよいでしょう。くれぐれも、revoke.ascはあなたの鍵を無効化し、それ以降使えなくするために使うものだと言うことを忘れないでください。

注意: もし複数のE-mailアドレスでこの鍵を使いたいのならば、gpg --edit-key YOUR_IDとしてから、 adduidとコマンドしてください。2つ目のIDの名前、E-mail、そしてコメントを聞いてきます。

鍵をエクスポートする

鍵をエクスポートするためには次のようにします。 gpg --armor --output john.asc --export john@nowhere.someplace.flick これであなたはほぼいつでも鍵のIDまたはこの鍵を確認するための何か(ここではE-mailアドレスを使います)を使うことができます。また、john.ascというファイルを友達にメールで送ったり、ウェブページにおいたりすることで、他の人と安全に通信することもできます。

鍵をインポートする

ファイルをあなたの公開鍵束に加えるために、まずはじめにファイルをインポートし、鍵指紋をチェックしてください。指紋を確認した後は、それを有効化しましょう。

注意: 鍵を確認する際は気をつけてください。これは公開鍵暗号法の弱点の一つでもあります。

さて、Luis Pinto(私の友達です)の公開鍵を自分の公開鍵束へ追加します。彼に連絡をとって彼の鍵指紋をたずねたら、fprコマンドの出力結果と鍵指紋を比べてみましょう。もしその鍵が信頼できるものであるならば、公開鍵束へ追加します。今回は、Luisの鍵が2003年12月1日で期限切れになるので、同時に自分の署名が期限切れになるようにするかどうかを尋ねてきます。

コード表示 2.5: 鍵のインポートと署名

#gpg --import luis.asc
gpg: key 462405BB: public key imported
gpg: Total number processed: 1
gpg:               imported: 1
humpback@sam humpback $ gpg --list-keys      
/home/humpback/.gnupg/pubring.gpg
---------------------------------
pub  1024D/75447B14 2002-12-08 John Doe (The Real John Doe) <john@nowhere.someplace.flick>
sub  2048g/96D6CDAD 2002-12-08

pub  1024D/462405BB 2002-12-01 Luis Pinto <lmpinto@student.dei.uc.pt>
	uid                            Luis Pinto <lmpinto@dei.uc.pt>
sub  4096g/922175B3 2002-12-01 [expires: 2003-12-01]

humpback@sam humpback $ gpg --edit-key lmpinto@dei.uc.pt
gpg (GnuPG) 1.0.7; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.


gpg: checking the trustdb
gpg: checking at depth 0 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/0/1
pub  1024D/462405BB  created: 2002-12-01 expires: 2003-12-01 trust: -/-
sub  4096g/922175B3  created: 2002-12-01 expires: 2003-12-01
(1)  Luis Pinto <lmpinto@dei.uc.pt>
(2). Luis Pinto <lmpinto@student.dei.uc.pt>

Command> fpr
pub  1024D/462405BB 2002-12-01 Luis Pinto <lmpinto@dei.uc.pt>
             Fingerprint: F056 3697 ADE3 CF98 B80B  8494 0AD3 E57B 4624 05BB
	     
Command> sign
Really sign all user IDs? y
                           
pub  1024D/462405BB  created: 2002-12-01 expires: 2003-12-01 trust: -/-
             Fingerprint: F056 3697 ADE3 CF98 B80B  8494 0AD3 E57B 4624 05BB

	     Luis Pinto <lmpinto@dei.uc.pt>
	     Luis Pinto <lmpinto@student.dei.uc.pt>

This key is due to expire on 2003-12-01.
Do you want your signature to expire at the same time? (Y/n) Y
How carefully have you verified the key you are about to sign actually belongs
to the person named above?  If you don't know what to answer, enter "0".

   (0) I will not answer. (default)            # 無回答 
   (1) I have not checked at all.              # 全くチェックしていません
   (2) I have done casual checking.            # 軽くチェックしました。
   (3) I have done very careful checking.      # 非常に注意深くチェックしました。

   Your selection? 3
Are you really sure that you want to sign this key
with your key: "John Doe (The Real John Doe) <john@nowhere.someplace.flick>"

I have checked this key very carefully.

Really sign? y
              
You need a passphrase to unlock the secret key for
user: "John Doe (The Real John Doe) <john@nowhere.someplace.flick>"
1024-bit DSA key, ID 75447B14, created 2002-12-08

Command> check
uid  Luis Pinto <lmpinto@dei.uc.pt>
sig!3       462405BB 2002-12-01   [self-signature]
sig!3       75447B14 2002-12-08   John Doe (The Real John Doe) <john@nowhe
uid  Luis Pinto <lmpinto@student.dei.uc.pt>
sig!3       462405BB 2002-12-01   [self-signature]
sig!3       75447B14 2002-12-08   John Doe (The Real John Doe) <john@nowhe

3.  鍵サーバーと鍵を交換する

鍵サーバーに鍵を送る

今あなたは鍵を持っています。これを世界の鍵サーバーへと送りましょう。世界中にはたくさんの鍵サーバーがあり、それらの多くはおたがいサーバー同士で鍵を交換し同期をとり合っています。ここではLuisの鍵をpgp.mit.eduサーバーへと送ります。これはHTTPを使うので、HTTPトラフィックのためにプロキシが必要ならば忘れずに設定しておいてください(export http_proxy=http://proxy_host:port/)。鍵を送るためのコマンドは次のようにします。 gpg --keyserver pgp.mit.edu --keyserver-options honor-http-proxy --send-key john@nowhere.someplace.flick HTTPプロキシを使わないのならば--keyserver-options honor-http-proxyは省いてもかまいません。

あなたが署名したほかの人の鍵も鍵サーバーへと送ることができます。私たちはLuis Pintoの鍵を鍵サーバーへと送りました。このようにして、あなたの鍵を信用している誰かが、あなたがサーバーに送った署名を使ってLuisの鍵を信用することができるようになります。

鍵サーバーから鍵を取得する

では次に、Gustavo Felisbertoの鍵を検索し、John Doeの鍵束にそれを追加するということをやってみましょう(念のため言っておきますが、Gustavo Felisbertoはこのガイドの作者ですよ :) )。

コード表示 3.1: 鍵サーバーから鍵を検索する

#gpg --keyserver pgp.mit.edu --keyserver-options honor-http-proxy \\
	--search-keys humpback@felisberto.net
gpg: searching for "humpback@felisberto.net" from HKP server pgp.mit.edu
Keys 1-5 of 5 for "humpback@felisberto.net"
(1)	Gustavo Felisberto (apt-get install anarchy) <humpback@felisberto.net> 1024
	  created 2002-12-06, key B9F2D52A
(2)	Gustavo Felisberto <humpback@altavista.net> 1024
	  created 1999-08-03, key E97E0B46
(3)	Gustavo A.S.R. Felisberto <humpback@altavista.net> 1024
	  created 1998-12-10, key B59AB043
(4)	Gustavo Adolfo Silva Ribeiro Felisberto <humpback@altavista.net> 1024
	  created 1998-08-26, key 39EB133D
(5)	Gustavo Adolfo Silva Ribeiro Felisberto <humpback@altavista.net> 1024
	  created 1998-06-14, key AE02AF87
	  Enter number(s), N)ext, or Q)uit >1
gpg: requesting key B9F2D52A from HKP keyserver pgp.mit.edu
gpg: key B9F2D52A: public key imported
gpg: Total number processed: 1
gpg:               imported: 1
  

 サーバーの応答からわかるでしょうが、私はいくつかの鍵を鍵サーバーに提出していますが現在はB9F2D52Aしか使っていません。John Doeはこれを手に入れ、もし信用するのならばこれに署名してくれるでしょう。

4.  文章と連携させる

暗号化と署名

あなたは今Luisに送りたいファイルがあるとしましょう。あなたはこれを暗号化したり、署名したり、そして暗号化と署名の両方を行ったりできます。暗号化はLuisだけがこれを開けることができるようにする、ということを意味します。署名はこのファイルがまさにあなたによって作られたものだ、ということをLuisに教えます。

次の3つのコマンドで暗号化、署名、そして暗号化/署名を行います。

コード表示 4.1: ファイルの中の鍵をチェックし、復号する。

#gpg --output doc.gpg --encrypt --recipient lmpinto@dei.uc.pt doc_to_encrypt
#gpg --output doc.gpg --sign --recipient lmpinto@dei.uc.pt doc_to_sign
#gpg --output doc.gpg --encrypt --sign --recipient \\
		lmpinto@dei.uc.pt doc_to_encrypt_and_sign

これはバイナリー・ファイルを作ります。もしアスキー形式のファイルを作りたい時は、コマンドのはじめに--clearsignを加えてください。

暗号解除と署名確認

あなたが暗号化されたファイルを受け取ったとしましょう。暗号を解除するためのコマンドは、gpg --output document --decrypt encrypted_doc.gpgです。これで文書の暗号解除と署名の確認ができます(署名がある場合の話ですが)。

5.  GnuPG インターフェース

kgpg

kgpgはGnuPG用の良いGUIツールです。メインスクリーンに、署名または解読したいテキストを貼り付けたり、解読したいASCII-amor形式のテキストを貼り付けたり、ということもできます。


図 5.1

Fig. 1: kgpg main window

この画像では、kgpgメイン・ウィンドウにASCII-armor形式化され、そして解除されたテキストがペーストされているのがわかると思います。ここで解除したり(パスワードを入れる必要がありますが)、他のファイルを暗号化したり、署名する新しいテキストを貼り付けたりすることができます。


図 5.2

Fig. 2: kgpg key manage window

鍵管理ウィンドウです。ここにはJohn Doe用の鍵があるのがわかると思います。GustavoとLuis用の信頼できる2つの鍵があり、Daniel Robbins用のまだ信頼できない鍵があります(私はフィンガープリントをチェックするために彼とまだ連絡をとっていません :))


図 5.3

Fig. 3: kmail security options OpenGPG


図 5.4

Fig. 4: kmail identity options OpenGPG key

Mozilla Enigmail

Mozillaのバージョン1.0以降には、とても設定しやすいメールクライアント用プラグインであるEnigmailがついてきます。Preferences -> Privacy & Security -> Enigmailにあります。そこで鍵・E-mailを入力するだけです。

信頼できないpgpまたはgpg署名をもったメールは破線で囲われています。信頼できるほかのメールは直線で囲われてます。Enigmailは鍵サーバーから鍵をとってくる機能もついていますが、もし何か問題があるときはメッセージが文字化けして表示されるでしょう(でもコマンドラインの使い方をまだ覚えていますよね?)

KMail

KMailはセットアップが非常に簡単です。どのように設定するかいくつか情報を書き込むだけです。基本的には、KMailにGPGを使うことと、どの鍵にサインするかを知らせててやります。

6.  最後に思うこと、クレジットと著作権

いくつかの問題

載せた画像にはいくつか問題があります。あなたが使っているバージョンをチェックしてください。もしGnuPG 1.2.1-r1 以降のものを使っているならおそらく大丈夫でしょうが、これより古いバージョンでは問題があるでしょう。それと、ほとんどの鍵サーバーでは写真付きの鍵の登録は好まれません。

ここにないもの

Gpgは非常に複雑なツールです。私がここでカバーしていないこともいろいろとできます。このドキュメントはGnuPGにはじめて触れるユーザーを対象としています。もっと知りたい時は、GnuPG ウェブサイトを見て下さい。

わたしはpgp4pine、gpgpine、evolutionなどのほかのツール、そしてWindows用のツールについては書いてはいませんが、いずれはこのドキュメントで取り上げたいと思います。

クレジット

John Michael AshleyのGnuPG ハンドブックはシンプルでとても素晴らしく、初心者には非常にいい本です。

#gentoo-docチームにいるみんな、おまえら最高だよ。

Tiago Serraは私をプライバシー保護問題について再び考える機会を与えてくれました。

著作権

このドキュメントの著作権はGustavo Felisbertoに帰属します。Gentoo Foundationはこのドキュメントを出版することを承認されています。



印刷

ページの更新日 26 April 2003

この翻訳はすでにメンテナンスされていません。

要約: このちょっとしたガイドは安全なコミュニケーションのためのツールであるGnuPGの使い方の基礎を解説します。

Gustavo Felisberto
Author

John P. Davis
Editor

so1
翻訳

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.