信用データベースに関する情報を更新
[gnupg-kouza-page.git] / src / howto.org
1 # -*- coding: utf-8-unix -*-
2 #+TITLE:     GnuPGの使い方
3 #+AUTHOR:    斉藤英樹
4 #+EMAIL:     hideki@hidekisaito.com
5 #+DESCRIPTION: Emacs Builds prepared by Hideki Saito
6 #+KEYWORDS: Emacs, software, OSS, compile, build, binaries
7
8 #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
9 #+HTML_HEAD: <script type="text/javascript">
10 #+HTML_HEAD:
11 #+HTML_HEAD:  var _gaq = _gaq || [];
12 #+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
13 #+HTML_HEAD:  _gaq.push(['_trackPageview']);
14 #+HTML_HEAD:
15 #+HTML_HEAD:  (function() {
16 #+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
17 #+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
18 #+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
19 #+HTML_HEAD:  })();
20 #+HTML_HEAD: </script>
21
22 #+LANGUAGE:  ja
23 #+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
24 #+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
25 #+OPTIONS: ^:{}
26 #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
27 #+EXPORT_SELECT_TAGS: export
28 #+EXPORT_EXCLUDE_TAGS: noexport
29 #+LINK_UP: index.html
30 #+LINK_HOME: index.html
31 #+XSLT:
32
33 #+BEGIN_HTML
34 <script type="text/javascript"><!--
35 google_ad_client = "ca-pub-6327257212970697";
36 /* GNU Privacy Guard講座Banner */
37 google_ad_slot = "2155169100";
38 google_ad_width = 970;
39 google_ad_height = 90;
40 //-->
41 </script>
42 <script type="text/javascript"
43 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
44 </script>
45 #+END_HTML
46
47 * GNU Privacy Guardのダウンロード
48   :PROPERTIES:
49   :ID:       d5b364da-88f5-4908-afd1-0fcb929c4a64
50   :END:
51
52 まずGNU Privacy Guardをダウンロードする必要があります。ダウンロードはGNU Privacy Guard
53 Homepageよりダウンロードしてください。コンパイルする必要があるものとバイナリでダウンロードできるものもあります。これはプラットフォームによって違ってくるのでご使用のオペレーティングシステムにあったものをダウンロードしてください。
54
55 * キーの生成
56   :PROPERTIES:
57   :ID:       9fe261c8-6a71-44be-84e7-df0670a23903
58   :END:
59
60 ダウンロードの終了後、まずは自分の秘密鍵と公開鍵を生成する必要があります。コマンドラインでgpgと入力してみて何か反応があればパスが通っている証拠ですのでプログラムが実行されている場合はCtrl-Cを押して終了して下さい。この時に反応がないようであればインストールしたフォルダにパスが通るようにしてください。次にgpg–gen-keyと入力します。
61
62 * 鍵のタイプの指定
63   :PROPERTIES:
64   :ID:       9f2ab36a-6ff2-4f2f-9e76-638c54b37eaf
65   :END:
66
67 鍵の生成を開始して、まず入力を求められるのが鍵の種類です。この画面では1を選択します。2は署名のみのキーで、3はElGamal方式のみを使用するものですが基本的には1を選択してください。
68
69 * 鍵長の設定
70   :PROPERTIES:
71   :ID:       f10be8f0-14e5-4d97-a10e-1145d5dcc562
72   :END:
73
74 次に鍵の長さを設定します。鍵は長い物ほど強固なセキュリティを実現します。しかしあまりにも長すぎると計算に時間がかかりすぎるものとなります。1024が標準となっていますが将来性などを考えると2048程度が適当です。
75
76 * 有効期限の設定
77   :PROPERTIES:
78   :ID:       d73deef8-0297-4b3b-96c5-dcfbe082b614
79   :END:
80
81 鍵の有効期限はいつまでその鍵が有効かを指定します。通常の場合は永久的に有効な0を指定すると問題ないでしょう。特に期限が必要であればここで指定してください。
82 個人情報の設定 ここでは名前、電子メール、名前に付随するメモを入力します。これにより鍵に名前のついたヘッダを追加することができます。
83
84 * パスフレーズ
85   :PROPERTIES:
86   :ID:       c4244d8b-134b-452e-89a8-1cde2df71270
87   :END:
88
89 次にパスフレーズを設定します。パスフレーズはパスワードと違いスペースなどを含むものも可能で長さも事実上無制限です。これは大事なパスワードですので覚えやすく紙に書かなくてもよく、かつ分かりにくいものにするようにしてください。
90
91 * 乱数の生成(自動)
92   :PROPERTIES:
93   :ID:       f7d4655e-74a4-4182-baa8-bc1f0794e3c9
94   :END:
95
96 ここで乱数の生成が開始されます。乱数生成中はしばらくかかります。この時に他の作業をしていても問題ありません(作業をすることによりキーボードの入力やマウスの動きなども乱数発生に使用されます)
97
98 * 終了
99   :PROPERTIES:
100   :ID:       9369e781-01d8-4a1b-a1d0-d8bfae60517d
101   :END:
102
103 お疲れさまでした、これで鍵の生成は終了です。
104
105 * 破棄証明書の生成
106   :PROPERTIES:
107   :ID:       8abed0fd-ae64-4c18-bb33-70fd3edf83a6
108   :END:
109
110 鍵を生成した後、破棄証明書を作っておきます。これは鍵を無効化する時に使用します。これは次のように入力することで行えます。
111
112 #+BEGIN_SRC sh
113 gpg -o revcert.asc –gen-revoke userid
114 #+END_SRC
115
116 太字のところに適当なものを入れてください。revcert.ascのところには任意のファイル名、useridのところには名前かその一部に変えてください。これにより指定したファイル名のファイルに破棄証明書が作成されるのでこれはなくさないようにどこかにしまって置いてください。この時、HDには保存せず、フロッピーなどに保存して安全な場所にしまっておくといいです。この破棄証明書は不正に使用されると誰でも鍵を無効化してしまうことができるので取り扱いには注意してください。
117 鍵を破棄する場合は 万が一、パスワードの漏洩などで鍵を破棄する必要がある場合は次のように鍵を破棄します。 
118 #+BEGIN_SRC sh
119 gpg --import revcert.asc 
120 #+END_SRC
121
122 これは重要ですので覚えておいてください。この後、この破棄した公開鍵を公開鍵サーバに送るとその鍵は破棄されます。
123
124 * 鍵の登録
125   :PROPERTIES:
126   :ID:       aec94a61-d924-4164-9b55-ac1d14daf32d
127   :END:
128
129 鍵を生成したらこれを公開鍵サーバに登録しておくことにより他の人が公開鍵を入手することが可能です。これによりあなた宛のメールなどに暗号化したメッセージを送信したりすることができるようになります。ここではKeyserver.netを使用して説明していきます。まず次のように入力します。
130
131 #+BEGIN_SRC sh
132 gpg -o pubkey.asc -a –export userid
133 #+END_SRC
134
135 コンソールよりコピー・ペーストが可能な場合次のようにすることで公開鍵をコンソールに出力することができます。 
136 #+BEGIN_SRC sh
137 gpg -a --export userid
138 #+END_SRC 
139 上記のコマンドラインを使用した場合はテキストエディタなどで指定したファイルを開き、内容をコピーしてください。
140 次に「Keyserver.net」のリンクを辿ってください。次に「ADD A KEY」をクリックし、表示された「Paste your key
141 here:」のボックスに上記の公開鍵を貼り付けてください。「Submit this key to the
142 keyserver」を押すと登録が完了します。
143
144 * 他の人の公開鍵を入手する
145   :PROPERTIES:
146   :ID:       4d5762e3-6041-4ad9-82ee-8b424a559150
147   :END:
148
149 他の人に暗号化したメッセージを送るのには相手の公開鍵を入手する必要があります。これも公開鍵サーバですることができます。登録するときに使用したページの「公開鍵の検索」で名前を入力することにより検索できます。次にコマンドラインに次のように入力してください。
150 gpg –import pubkey.asc コンソールに貼り付けることができる場合は gpg –import
151 とすることによりコンソールに貼り付けることができます。この時エンターキーを押した後に貼り付けてください。この鍵を入手後、鍵の指紋をチェックする必要があります。これが異なる場合、鍵が改変されたか鍵を正しく入手できていません。大抵のホームページなどでは下図のような表示があります。
152 入手した鍵の指紋を表示するのには次のように入力します。 
153 #+BEGIN_SRC sh
154 gpg --fingerprint
155 #+END_SRC
156 すると次のように表示されますのでこの指紋が一致することを確認します。このキーを使う前に鍵署名をする必要があります。鍵署名にはExportableなものとLocalなものがあります。Exportableはその鍵を他の人に渡すとその署名も同時に渡すことになります。Localなものは他の人に渡してもその署名は渡されません。普通はLocalな署名を使うとよいでしょう。これをするには次のようにします。
157
158 #+BEGIN_SRC sh
159 gpg --lsign-key userid(Local署名)
160 #+END_SRC sh
161
162 #+BEGIN_SRC sh
163 gpg --sign-key userid(Exportable署名)
164 #+END_SRC
165
166 次に信用データーベースを更新する必要があります。信用データーベースというのは鍵に対する信用性を示すものです。まず次のように入力します。このデータベースは他と共有されることはなく、鍵の信用は使用者が思う信用であり、他人と共有される性質のものではありません。
167
168 ここで指定される信用は間接的にその鍵が署名する他の鍵の信用度の計算に使用されます。例えば保有している鍵が自分の鍵により署名された鍵のみで構成されたものである場合など、特に信用を設定する必要はありません。
169
170 #+BEGIN_SRC sh
171 gpg --edit-key userid
172 #+END_SRC
173
174 次にコマンドの入力を求められますのでそこでtrustと入力します。そうすると次のようなリストが表示されます。
175
176 #+BEGIN_EXAMPLE
177 1 = Don’t know 2 = I do NOT trust 3 = I trust
178 marginally 4 = I trust fully s = please show me more information m =
179 back to the main menu
180 #+END_EXAMPLE
181
182 この鍵を完全に信用しない場合は2、ある程度信用する場合は3、完全に信用(例えば実際に本人に会ったことがありその本人に確認がとれている場合など)する場合は4を選択します。
183
184
185 * 暗号化&署名
186   :PROPERTIES:
187   :ID:       c63bf3e7-93f6-474c-a60b-cc099de39943
188   :END:
189
190 次に暗号化をしてみます。ファイルを暗号化する方法とインタラクティブにコンソールから入力する方法がありますがどちらも基本的には同じようにします。ファイルを暗号化する場合は次のようにします。
191
192 #+BEGIN_SRC sh
193 gpg -ea filename (暗号化したファイルを画面に出力する場合)
194 #+END_SRC
195
196 #+BEGIN_SRC sh
197 gpg -o filename.asc -ea filename(暗号化したファイルをファイルに出力する場合)
198 #+END_SRC
199
200 どちらの場合も受取人を指定するように表示されるのでその時に名前、またはその一部を入力します。これをコマンドラインに含めることもできます。
201
202 #+BEGIN_SRC sh
203 gpg -r receipient -ea filename(暗号化したファイルを画面に出力する場合)
204 #+END_SRC
205 #+BEGIN_SRC sh
206 gpg -o filename.asc -r receipient -ea filename(暗号化したファイルをファイルに出力する場合)
207 #+END_SRC
208
209 コンソールから入力する場合は次のようにします。 
210 #+BEGIN_SRC sh
211 gpg -ea
212 #+END_SRC
213
214 次にメッセージを入力しCtrl-DもしくはCtrl-Z(プラットフォームによって違います)そしてファイルの場合と同じように受取人の名前を入力します。この場合も上記のケースと同じように-oや-rオプションを使用できます。
215 暗号化をする時に同時に署名もする場合は上記のそれぞれのオプションの-eaを-seaに変えることにより可能です。署名のみすることも可能です。その場合は-seaを-saとします。署名する時に–clearsignとすることによりGnuPGが無くても読める署名をすることができます。
216 復号化は次のようにします。
217
218 #+BEGIN_SRC sh
219 gpg -d filename.asc
220 #+END_SRC