f539dbddd0f818aeaa9e6e36508c6758bde02d73
[gnupg-kouza-page.git] / src / tips.org
1 # -*- coding: utf-8-unix -*-
2 #+TITLE:     GnuPG Tips
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:1 \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 #+HTML_LINK_UP: index.html
30 #+HTML_LINK_HOME: index.html
31 #+XSLT:
32
33
34
35 * PGPで復号化しようとすると失敗する
36   :PROPERTIES:
37   :ID:       563af89b-d78d-4fea-bd4c-6b7a23492fef
38   :END:
39 *【本項目は最近のバージョンでは当てはまらない可能性があります。参考としてご参照ください。】*
40
41 Windows版ではGnuPGの場所を指定するレジストりキー(¥¥HKEY_CURRENT_USER¥Software¥GNU¥GnuPG¥HomeDir)に指定されているディレクトリ(指定が無い場合はc:¥gnupgになります)にoptionsというファイル(拡張子無し)を作成しforce-v3-sigsと表記します。UNIX版ではホームディレクトリ内に.gnupgというフォルダが作成されているので同様にその中のoptionsを変更します。こうするとPGP5,PGP6系に対応するようになります。(PGP2系はRSA/IDEAを使用しているため非対応)。注意しなければならないのが最初に鍵を生成する際にこれをしておく必要があることです。尚、相手がGnuPGを使用しているのが分かっている場合は =--openpgp= オプションを実行時に追加することで対応できます。(GnuPGはどちらの場合も正常に復号化できます。)
42
43 * 受信者秘匿メッセージとは?
44   :PROPERTIES:
45   :ID:       bc46304a-6f02-4401-84a5-c6250b26ecd0
46   :END:
47 GnuPG同士の場合は受信者を秘匿することができます。(Anonymous Receipient機能)通常暗号化をすると相手の鍵IDが鍵に含まれます。これにより復号化の際にどの鍵に向けて発信されているかを判断します。受信者を秘匿することにより、この情報を外してしまいます。これにより誰に向けて発信されているかという情報をメッセージが持たなくなります。これをするのには次のようにします。
48
49 #+BEGIN_SRC sh
50 gpg -ea --throw-keyid filename.asc
51 #+END_SRC
52
53 このオプションを使うと復号化の際に全ての鍵に対して復号化を試みる為、処理が多少遅くなります。(複数の秘密鍵がある場合、全ての鍵に対して復号化できるまでパスワードを入力する必要があります。複数の受信者にお互いの情報を明かすことなく暗号化するなどの使い方がありますがPGP5,6との互換性がなくなるので注意してください。
54
55 ** 1.4.x以上
56    :PROPERTIES:
57    :ID:       901bb297-157a-4258-a441-724d18414e29
58    :END:
59
60 -rの代わりに-Rを指定することにより-Rを指定したユーザーを選択的に設定することが可能になりました。
61
62 #+BEGIN_SRC sh
63 gpg -ea -r 0xffffff -R 0xeeeeee
64 #+END_SRC
65
66 この場合、0xffffffに対しては普通に暗号化されますが、0xeeeeeeへの暗号化は秘匿されます。
67 throw-idを使用した場合は受信者全員が秘匿化されます。
68
69 *【本項目は最近のバージョンでは当てはまらない可能性があります。参考としてご参照ください。】*
70
71 ** 注意
72    :PROPERTIES:
73    :ID:       efb6f326-e631-4a16-8db5-2c033addc918
74    :END:
75 これを使用することにより、宛先のKey IDは秘匿されますが誰かにメッセージが宛てられているという事実を隠すことはできません。そのため、トラフィック分析などで宛先が判明してしまう場合はありますのであくまでも予備的な方法であることに注意してください。
76
77 * Windows版で復号化したファイルが読めない
78   :PROPERTIES:
79   :ID:       3e4846e1-bf11-4d46-8f2f-c5c353e0e43b
80   :END:
81 UNIX版では問題ないものでWindows版では問題があるものとしてリダイレクタの使用があります。次のように復号していないでしょうか?
82
83 #+BEGIN_SRC sh
84 gpg -d filename.asc > file
85 #+END_SRC 
86
87 ファイルがバイナリファイルの場合はこれを使うと問題が起きます。次のように復号化するようにしてください。
88
89 #+BEGIN_SRC sh
90 gpg -o file -d filename.asc
91 #+END_SRC
92
93 これで問題ないはずです。
94
95 * GnuPGの商業利用は問題なく可能か?
96   :PROPERTIES:
97   :ID:       7f92484e-c988-43bb-821a-46a51a098e35
98   :END:
99 *【本項は参考情報として提供されています。法的な疑問等が有る場合は弁護士等に相談してください。】*
100
101 GnuPGは特許でカバーされているアルゴリズムを使用していないため商業利用は問題なく可能です。ちなみにGnuPGのライセンスであるGNU Public Licenseではソフトウェアの利用に関する項目はありませんので明示的に表明していないGnuPGの場合は自由に使用できます。
102
103 ** 〜1.4.8 参考:GNU General Public License Section 0より抜粋
104    :PROPERTIES:
105    :ID:       4b9a6ad1-2a94-4e0f-bed9-f172bba9a6e7
106    :END: 
107 #+BEGIN_SRC
108 Activities other than copying, distribution and modification are
109 not covered by this License; they are outside its scope. The act of
110 running the Program is not restricted, and the output from the Program
111 is covered only if its contents constitute a work based on the Program
112 (independent of having been made by running the Program). Whether that
113 is true depends on what the Program
114 does.
115 #+END_SRC
116
117 複製、頒布、変更以外の行為は本使用許諾の対象としません。それらは本使用許諾の範囲外です。「プログラム」を実行させる行為に関して制約はありません。「プログラム」の出力は、(「プログラム」を実行させて作成させたかどうかとは無関係に)
118 その内容が「プログラム生成物」である場合に限り本使用許諾の対象となります。これが当てはまるかどうかは、「プログラム」が何をするものかに依ります。
119 1.4.8〜 1.4.8からはGPLv3が適応されるため、以下の部分が適応されます。
120
121 ** GNU General Public License v3, 2. Basic Permissionsより抜粋
122    :PROPERTIES:
123    :ID:       2ca0c7e4-aac2-4ad2-b054-458881761d57
124    :END: 
125 #+BEGIN_SRC
126 All rights granted under this License are granted for the term of copyright on
127 the Program, and are irrevocable provided the stated conditions are
128 met. This License explicitly affirms your unlimited permission to run
129 the unmodified Program. The output from running a covered work is
130 covered by this License only if the output, given its content,
131 constitutes a covered work. This License acknowledges your rights of
132 fair use or other equivalent, as provided by copyright
133 law.
134 #+END_SRC
135 本許諾書の下で認められるすべての権利は、『プログラム』に主張される『コピーライト』の条項に基づき授与されるものであり、ここで述べられた条件が満たされている限り覆すことはできない。本許諾書は、改変されていない『プログラム』をあなたが無制限に実行することを許可し、明示的に確約する。『保護された作品』を実行することから得られた出力結果は、その出力内容が『保護された作品』を構成する場合のみ本許諾書で保護される。本許諾書は、あなたが有するフェアユースまたはその同等物の権利を、『コピーライト』法規によって提供される通りに承認する。
136
137 * 対称暗号化したファイルがPGPで復号化できない(またはその逆)
138   :PROPERTIES:
139   :ID:       821000df-f44f-449e-9e5b-c6a86110f032
140   :END:
141 *【本項目は最近のバージョンでは当てはまらない可能性があります。参考としてご参照ください。】*
142
143 PGPで複合化できるように対称暗号化(つまり-cオプションの暗号化)するのには–cipher-algo
144 CAST5の指定が必要です。つまり次のようにします。
145
146 #+BEGIN_SRC sh
147 gpg --cipher-algo CAST5 -c filename.asc
148 #+END_SRC sh
149
150 PGPで対称暗号化したもので復号化できないものは次のようにすると問題ないはずです。
151
152 #+BEGIN_SRC sh
153 gpg --cipher-algo CAST5 -d filename.asc
154 #+END_SRC
155
156 上記の方法でもうまくいかない場合があるようです。現在検証中です。しばらくお待ち下さい。
157
158 PGPとGPGが生成するパケットの違いを検証してみたところ、圧縮方式が違うことで起こる問題のようです。→技術情報
159
160 上の暗号化時のコマンドラインの代わりに次のように入力してください。
161
162 #+BEGIN_SRC sh
163 gpg --cipher-algo CAST5 --compress-algo 1 -c filename.asc
164 #+END_SRC
165
166 これでも問題があるようでしたらご一報下さい。9月20日にリリースされた1.0.3ではこれがデフォルトのオプションになっているようです。
167
168 * PGPで復号化したときにSecure Viewerで表示されるようにしたい
169   :PROPERTIES:
170   :ID:       0e39693d-3e89-4526-8ad4-a22a8632d1f0
171   :END:
172 PGPには電磁波により文字を読み取るTEMPEST攻撃を避けるためのビュワーが入っていますが、GnuPGにはこの機能は入っていないため、一見、不可能なようですが実はこれをする方法があります。暗号化をするときに次のようにするとできます。
173
174 #+BEGIN_SRC sh
175 gpg --cipher-algo CAST5 --compress-algo 1 --set-filename _CONSOLE -c filename.asc
176 #+END_SRC
177
178 実はSecure Viewerはファイル名が_CONSOLEという名前で設定されているだけなのでこれをset-filenameオプションで設定するとこれが簡単に実現できてしまいます。Secure Viewerでは日本語は化けてしまうので注意してください。
179
180 ** 1.4.x以上
181    :PROPERTIES:
182    :ID:       6faadf85-771b-4499-a2a2-8e4ffe395d69
183    :END:
184
185 for-your-eyesオプションを使用してください。
186
187 #+BEGIN_SRC sh
188 gpg --for-your-eyes-only -c filename.asc
189 #+END_SRC
190
191 * PGPから乗り換えたい
192   :PROPERTIES:
193   :ID:       213eefe8-cd75-41f4-868b-1a24b283118a
194   :END:
195 PGPから乗り換える場合は次のようにします。まず、PGPで秘密鍵と公開鍵をファイルに保存します。仮にkeys.ascという名前で保存したと仮定します。次にそのファイルをGnuPGで次のようにします。
196
197 #+BEGIN_SRC sh
198 gpg --import keys.asc
199 #+END_SRC
200
201 これでGnuPGに秘密鍵と公開鍵が取り込まれます。これで乗り換えは完了です。尚、通常のバージョンのGnuPGではこの方法が使えるのはPGPがバージョン5以降の場合のみです。(IDEA/RSA形式のものは使用できません)
202
203 * Windows版でタイムゾーンがかみ合わない
204   :PROPERTIES:
205   :ID:       240301c7-f7f3-485b-a5e5-a1d7e5310e8b
206   :END:
207 *【本項目は最近のバージョンでは当てはまらない可能性があります。参考としてご参照ください。】*
208
209 現在のWindowsバージョンではローカル時間がGMTとして認識されてしまう問題が存在します。開発者によるとこの問題をWindows版では専用のコードを使用して回避する方向のようですのでしばらくお待ち下さい。
210
211 この問題はPGP側の「問題」のようです。PGP側でタイムゾーンの補正を二重にかけているようです。この問題はPGP同士では露見しないため今まで判明しなかったおそれがあります。現段階ではGnuPG開発メーリングリストとPGPメーリングリストにこの情報を投稿しました。(尚、この問題は「仕様バグ」に近く、「バグ」と呼称するのには語弊があるためここでは「問題」と呼称しました。OpenPGPを定義するRFC2440では二重に補正をかける定義はありません。)
212 尚、この問題はGnuPG News Japanにて作田氏の検証により判明しました。 この問題はPGP7.0より修正されているようです。
213
214 * openpgpオプションとは?
215   :PROPERTIES:
216   :ID:       1330a1d0-11fb-4bfb-bb45-6ea51fe83c45
217   :END:
218 GnuPGはOpenPGPに記述されている仕様に則り実装されているわけですがオプションの中にはこれに従わないようにするものがあります。この一般的な例がforce-v3-sigsなどのPGP対応を考慮しているものです。このオプションはそれを全て無視し、OpenPGPに従うように設定するものです。これは特にoptionsファイルなどにそれを指定している場合にそれを変更せずにOpenPGPモード(つまり相手が対応する暗号ソフトを持っていることが判明している場合)などに使います。
219
220 ** 1.4.x以前
221    :PROPERTIES:
222    :ID:       ced56e31-f7d1-4121-a7a5-2875842797aa
223    :END:
224 RFC2440の内容に準じます。
225 ** 1.4.x以降
226    :PROPERTIES:
227    :ID:       3faf7271-fb71-4ab3-99c5-745734ca54df
228    :END:
229 RFC4880の内容に準じます。
230
231 新たにrfc2440及びrfc4880オプションが追加されています。従来の意味でのopenpgpを使用したい場合においてはrfc2440を使用します。rfc4880とopenpgpは同じ挙動となります。
232
233 * shogw-session-keyとoverride-session-keyとは?
234   :PROPERTIES:
235   :ID:       139becd3-2e24-43d9-97a4-0e58e5c1b11a
236   :END:
237 1.0.3より新たにサポートされた機能が上記の二つのオプションです。この二つは英国のRIP法対策に付加されているものです。どういう場合に使うかというと警察機関などが復号鍵の提出を求める場合、秘密鍵を渡してしまうとなりすましなどのリスクがあります。そこでこれはSession keyと呼ばれる暗号化時にそのメッセージのみで使われるキーを表示し、またそれで復号化するオプションです。次のようにするとSession keyが表示されます。
238
239 #+BEGIN_SRC sh
240 gpg --show-session-key file.gpg
241 #+END_SRC
242
243 上記のコマンドラインを入力するとパスフレーズを訊かれるのでパスフレーズを入力するとSession keyが表示されます。尚、これを用いて復号化するには 
244
245 #+BEGIN_SRC sh
246 gpg --override-session-key [先に抽出したSession key] file.gpg 
247 #+END_SRC
248
249 とします。尚、このSession keyが知られてしまうとそのメッセージは誰でも復号化できてしまいます。このオプションは特に必要とされる以外は使用しない方がいいでしょう。(公開鍵暗号の意味がなくなってしまいます。)
250
251 * Windows用のフロントエンド
252   :PROPERTIES:
253   :ID:       3fb446c5-fdf8-4c03-bc6f-3fe427a7539b
254   :END:
255 [[http://www.gpg4win.org][GPG4WIN]] ではWindows用のツールがセットになって配布されています。
256
257 * PGPとGnuPG破棄証明書の作成の違いは?
258   :PROPERTIES:
259   :ID:       61ab2ba5-efe4-4a23-90d3-879653f71eff
260   :END:
261 PGPとGnuPGの破棄証明書の作成方法は大きく異なります。PGPでは破棄証明書を作成した時点で対象の鍵に自動的にマージされます。つまりPGPで鍵の破棄をする場合、「破棄証明書」の発行はされずそのまま鍵を破棄ということになります。GnuPGでは破棄証明書を発行すると破棄証明書ファイルが作成されます。この時点で鍵の破棄は行われず、これをインポートするまで破棄したことにはなりません。ちなみにGnuPGの破棄証明書の発行は次のように行います。
262
263 #+BEGIN_EXAMPLE
264 gpg --gen-revoke [keyid]sec 1024D/82957B66
265
266
267 2000-07-08 Hideki Saito Create a revocation certificate for
268 this key? y
269
270 Please select the reason for the revocation: 1 = Key has been
271 compromised 2 = Key is superseded 3 = Key is no longer used 0 =
272 Cancel (Probably you want to select 1 here) Your decision? 1
273
274 Enter an optional description; end it with an empty line:
275
276 >【任意のコメント(入力しないで改行すると終了)】
277
278 Reason for revocation: Key has been compromised (No description
279 given) ←上でコメントを入力した場合はそれがここに表示されます。
280
281 Is this okay? y
282
283 You need a passphrase to unlock the secret key for user:
284 “Hideki Saito ” 1024-bit DSA key, ID 82957B66, created 2000-07-08
285 Enter passphrase: 【パスフレーズを入力】
286
287 ASCII armored output forced. Revocation certificate created.
288 Please move it to a medium which you can hide away; if Mallory gets
289 access to this certificate he can use it to make your key unusable.
290 It is smart to print this certificate and store it away, just in case
291 your media become unreadable. But have some caution: The print system
292 of your machine might store the data and make it available to others!
293
294 -----BEGIN PGP PUBLIC KEY BLOCK-----
295 Version: GnuPG v1.0.4-1
296 (MingW32)
297 Comment: A revocation certificate should follow
298
299 【省略】
300
301 -----END PGP PUBLIC KEY BLOCK-----
302 #+END_EXAMPLE
303
304 破棄証明書を作成するGnuPGのアプローチは面倒なように思えますが実はこれは理にかなっているといえます。破棄証明書は一般的に短く、紙に印刷しても打ち込める程度のものです。(3行程度)使用しているPCのクラッシュなどで秘密鍵を紛失してしまうことなども決して珍しくありません。破棄証明書を印刷して保存しておくと後に何らかの原因で鍵を破棄する必要が出てきた場合に置いても秘密鍵を持っている必要はないわけです。
305
306 * PGP、GnuPG各バージョンの標準アルゴリズムは?
307   :PROPERTIES:
308   :ID:       4cb0f341-208c-406e-af51-df8f5afe401b
309   :END:
310 *【本項目の情報は古くなっています。近く更新される予定です。】*
311
312 PGPとGnuPGの各バージョンの標準暗号アルゴリズムは次のようになっています。
313
314 | PGP 2.x             | IDEA                                   |
315 | PGP 5.x, 6.x        | (DH) CAST, (RSA) IDEA                  |
316 | PGP 7               | (DH) CAST (RSA) CAST (RSA-Legacy) IDEA |
317 | GnuPG 1.0.1 - 1.0.3 | Twofish                                |
318 | GnuPG 1.0.4         | AES (Rijndael)                         |
319
320 これらの標準設定に基づき鍵に「好まれる」標準が書き込まれます。そのため、例えばGnuPG 1.0.3で作った鍵ペアを1.0.4にインポートしてもそれが引き継がれます。これを変更するためにはそのバージョンで–editオプションを用い、期限切れ(expire)を再度設定することによりその変更が鍵に書き込まれます。
321
322 尚、GnuPGの鍵の場合、PGPがアルゴリズムを理解しないためIDEAと表示されますがCASTを使用しますので特に問題はありません。
323
324 * GnuPGとPGP 7.0の相性について
325   :PROPERTIES:
326   :ID:       cd91e88b-8eaa-4c87-8eca-b14e3da6d420
327   :END:
328 *【本項目は最近のバージョンでは当てはまらない可能性があります。参考としてご参照ください。】*
329
330 PGP 7.0の場合は次の設定においてGnuPGとの互換性が保たれます。 Diffie-Hellman/DSS鍵で任意の鍵長
331 RSA鍵で任意の鍵長 鍵がRSA Legacyの場合はIDEAを使用するため、通常GnuPGでは互換性がありません。GnuPGでCAST,
332 Rijndael, 3DES, Twofishを明示的に指定した場合PGP 7.0との互換性が保たれますが通常は明示的な指定は必要ありません。(公開鍵に設定されているアルゴリズムを使用するため)
333
334 GnuPGはforce-v3-sigsを指定しない場合version 4署名を生成しますがこれはPGP
335 7.0.xにおいても検証することが可能です。尚、以前のバージョンではこれは検証できないためご使用にはご注意下さい。(GnuPGNewsJapanにて作田さんより情報を戴きました、ありがとうございました。)
336
337 * GnuPGでIDEAを使うには
338   :PROPERTIES:
339   :ID:       fafb5e8e-34fe-4657-8922-a49a789ab6e3
340   :END:
341 バージョン1.4.13よりIDEAアルゴリズムは正式にサポートされました。
342
343 ** Windowsバージョンの場合
344    :PROPERTIES:
345    :ID:       e851358b-7ddb-4e0c-9d3b-68860b37b843
346    :END:
347
348 1. バージョンが1.0.5以降なのを確認の上、このページからidea.dllをダウンロードします。
349 2. このファイルを任意の場所(c:¥lib¥gnupg¥が望ましいです)にコピーします。
350 3. GnuPGをインストールしている場所に存在するoptionsをテキストエディタなどで開きます。
351 4. c:¥lib¥gnupgにコピーした場合 load-extension idea.dll と追記します。
352 その他の場所にコピーした場合
353
354 #+BEGIN_EXAMPLE
355 load-extension c:/gnupg/idea.dll
356 #+END_EXAMPLE
357
358 というような書式で追記します。ディレクトリのセパレーターが¥ではなく/であることに注意してください。
359
360 ** UNIXバージョンの場合
361    :PROPERTIES:
362    :ID:       3360c351-9704-4eee-a974-1d12a6538220
363    :END:
364
365 1. idea.cをダウンロードします。
366 2. 以下のようにコンパイルします。
367 #+BEGIN_SRC sh
368 gcc -Wall -O2 -shared -fPIC -o idea idea.c
369 #+END_SRC
370 でこのidea.cをコンパイルします。
371
372 任意の場所にコピーして.gnupg/optionsに次のように追記します。
373 #+BEGIN_EXAMPLE
374 load-extension /home/user/.gnupg/options
375 #+END_EXAMPLE
376 これが成功した場合、
377 次のような表示があるはずです。
378
379 #+BEGIN_EXAMPLE
380 gpg --version
381
382 gpg (GnuPG) 1.0.5
383 Copyright (C) 2001 Free Software Foundation, Inc. This program comes
384 with ABSOLUTELY NO WARRANTY. This is free software, and you are
385 welcome to redistribute it under certain conditions. See the file
386 COPYING for details.
387 Home: c:/gnupg
388 Supported algorithms:
389 Cipher: IDEA, 3DES, CAST5, BLOWFISH, RIJNDAEL, RIJNDAEL192, RIJNDAEL256, TWOFISH
390 Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA, ELG
391 Hash: MD5, SHA1, RIPEMD160
392 #+END_EXAMPLE
393 万が一IDEAが表示されない場合はideaモジュールの場所やoptionsの設定を確認してください。
394
395
396 * GnuPGの安全性について
397   :PROPERTIES:
398   :ID:       ee9154af-3596-4fd2-a678-e2378467033c
399   :END:
400 GnuPGの安全性について説明する前に理解しておく必要があるのがどんな暗号も解けない暗号はないということです。
401 つまり時間はかかるにしろいつかは暗号を解くことが可能なわけです。暗号の安全性を高めているのはその時間が非常に長く
402 現在の技術水準で数百年から数千年という時間となります。 また、未発見の解読方法が発見されると暗号の強度はかなり下がります。
403 例えばRSAでは大きな数の素因数分解が非常に困難であるという前提のもとにその暗号の強度が保たれています。
404 将来、素因数分解が容易に行える方法が見つかることがあればRSAの信頼性が損なわれるわけです。
405 また、コンピューターのスピードの向上による暗号解読の短縮なども懸念されますがこれは鍵長をある程度に保っていくと
406 それなりに安全に保てます。この計算はO(X^2)の性質を持ちます。つまり鍵長が一ビット増えるとその計算時間はそのべき乗した長さとなります。
407 RSAの詳しい説明ははやわかりRSAをご覧下さい。
408
409 GnuPGで使われる暗号は現段階でその信頼性が検証されているものです。暗号の強度の点で言えば問題はありません。ただし上記したように鍵長がある程度長いものを使用してください。
410
411 なお、ソフトウェア自体の安全性ですがこれもソースコードが公開されているということでバックドアなどを仕掛けることは事実上困難です(バイナリで公開されているものは配布者によってそのようなことがなされている可能性は否めません。その場合、ソースをコンパイルするか信頼できるサイト、つまり公式のサイトなどからダウンロードすることをお勧めします。どちらにせよ配布物とその署名を確認するなどの確認をするといいでしょう。)
412
413 * GnuPGでの日本語使用について
414   :PROPERTIES:
415   :ID:       e9dc1797-ae9b-466c-aac3-8b3a7c8b4ae8
416   :END:
417 ターミナル、またはコマンドプロンプトなどでサポートされる場合、GnuPGで日本語を使用することは可能です。
418 しかしいくつかの点で気を付ける必要があります。
419
420 ** OSが使用する文字コードの違い
421    :PROPERTIES:
422    :ID:       44908848-7986-461f-ae49-8e88ac95900c
423    :END:
424
425 Windows上では日本語はShift-JISを標準にしています。しかしほとんどのUNIXはEUC-JPという文字コードを使用しています。最近ではこれらを変換できるエディタも多く、一見問題が無いように思えるのですが署名などを使用する場合これが大きな問題となります。そのままで署名検証すると問題は起こらないのですが変換ツールなどを使用して他の文字コードに変換した場合に署名が検証できないという問題が発生します。この問題は特に相手が違うOSを使用しているのが既知な場合などコメント欄に使用している文字コードを表記するなどの工夫が必要です。
426
427 ** メールでの文字コード扱いの問題
428    :PROPERTIES:
429    :ID:       a2bbed9e-9c28-4786-aea2-bd50e91488c3
430    :END:
431
432 インターネットでメールを送信するとメールはISO-2022-JP(JIS)に変換されて送信されます。この場合前述の文字コードの違いに加え、JISから環境のネイティブなフォーマット(例えばWindows上ではShift-JISへの変換)が自動的に行われることを認識している必要があります。インターネットでのメールはJISを使うという前提が成り立っているため、通常、この場合は送信する際、JISに変換したものを署名・暗号化するべきであると言えます。これはメーラーなどのプラグインを使用する方法が一番簡単です。トップにいくつか関連サイトへのリンクがありますのでぜひご覧下さい。
433
434 * MacOS XでのGnuPG使用について
435   :PROPERTIES:
436   :ID:       afe95ca2-145a-427d-a4a2-b8b06df70453
437   :END:
438 【本項は更新中です。】
439
440 * GnuPGにおける指定失効者
441   :PROPERTIES:
442   :ID:       af29192b-0675-4adf-8142-e66e5e24ee3b
443   :END:
444 GnuPGで指定失効者(Designated Revoker)を指定、または鍵の失効を行う方法です。指定失効者とは秘密鍵を持っていなくとも鍵を失効できるユーザーのことを指します。
445
446 ** 指定失効者の設定
447    :PROPERTIES:
448    :ID:       6a32e3e2-1f0b-4459-83d8-f1c5a9b6d57a
449    :END:
450
451 注意:指定失効者は設定すると解除(破棄)することができません。 edit-keyオプションを使用して鍵編集モードに入ります。
452
453 #+BEGIN_SRC sh
454 gpg --edit-key 公開鍵ID
455 #+END_SRC
456
457 addrevokerコマンドを入力し、指定失効者のIDを入力します。
458
459 #+BEGIN_EXAMPLE
460 pub 1024D/xxxxxxxx 2006-06-26 xxxxxxxx
461 Primary key
462 fingerprint: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx<
463 WARNING:
464 appointing a key as a designated revoker cannot be undone! Are you
465 sure you want to appoint this key as a designated revoker? (y/N)
466 #+END_EXAMPLE
467 ここでyとすることにより指定失効者が追加されます。 鍵をsaveコマンドで保存し、もう一度鍵編集モードに入ると以下のような表示がされます。
468
469 #+BEGIN_EXAMPLE
470 This key may be revoked by DSA key xxxxxxxx
471 xxxxxx xxxxxx <xxxxxxx @xxxx.xxx>
472 #+END_EXAMPLE
473 これにより、指定失効者の設定がされました。
474
475 ** 指定失効者による鍵の破棄
476    :PROPERTIES:
477    :ID:       34df19f9-39be-48f2-99f2-c85db3c5f845
478    :END:
479
480 指定失効者による鍵の破棄は本人による破棄にとほぼ同様です。
481 異なる点は、破棄証明書の生成をgen-revokeの代わりにdesig-revokeで行う点です。
482
483 #+BEGIN_SRC sh
484 gpg --desig-revoke xxxxxxxx
485 #+END_SRC
486
487 ここで、指定失効者のパスフレーズを入力すると破棄証明書が生成されます。これを–importで取り込むことにより鍵の破棄が行われます。
488
489 ** 制限事項
490    :PROPERTIES:
491    :ID:       2f58d2ea-dc2b-43db-8fcf-57a334e281cb
492    :END:
493
494 公開鍵サーバによっては指定失効者により破棄された鍵を認識しない場合があります。
495
496 * 有効期限(Expire)の設定の方法いろいろ
497   :PROPERTIES:
498   :ID:       056f23a9-103e-4b4a-9dc6-beb2ee772cb7
499   :END:
500 edit-keyの鍵インターフェースなどでの設定で使用できる有効期限の設定にはいくつかの方法があります。 無期限0を指定します。
501
502 ** 残りの期限で指定する
503    :PROPERTIES:
504    :ID:       4c2140a5-5d90-41f2-a77c-5b6879dc11bb
505    :END:
506
507 数字のみの指定で残り期限は日の単位になります。つまり10の入力で10日の有効期限となります。同様にwを追加すると週単位の指定、mを指定すると月単位の指定、yを使用すると年単位の指定となります。尚、この場合、有効期限の時間は現在時間と同様になります。
508
509 ** 有効期限の日付を指定する
510    :PROPERTIES:
511    :ID:       2b1b9b44-5df2-4551-bf5c-4dedad5e7455
512    :END:
513
514 YYYY-MM-DDのフォーマットで入力することにより、有効期限を日付で指定できます。例えば2015-03-19と入力すると2015年3月19日0時0分に失効するものとなります。
515
516
517 #+BEGIN_HTML
518 <script type="text/javascript"><!--
519 google_ad_client = "ca-pub-6327257212970697";
520 /* GNU Privacy Guard講座Banner */
521 google_ad_slot = "2155169100";
522 google_ad_width = 970;
523 google_ad_height = 90;
524 //-->
525 </script>
526 <script type="text/javascript"
527 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
528 </script>
529 #+END_HTML