[秘密鍵・公開鍵] GnuPG

JanusDG は,ファイルの暗号化はできますが,メールの暗号化には対応していません.

秀丸メール:http://hide.maruo.co.jp/software/tk.htmlなどいくつかのメールソフトには、PGPやGnuPGに対応したメールソフトがあります。

GnuPGを使ってみましょう。

Windows 版 GnuPG のダウンロード

  1. GnuPGの公式サイト http://gnupg.org/ にアクセスします.
  2. GnuPGのミラーサイト:http://www.gnupg.org/download/mirrors.en.htmlからJapanを選択し、Ring をクリックします。
  3. binaryフォルダを選択し、最新版の gnupg-w32cli-1.4.13.exe (Windows 版) をダウンロードします。

Windows 版 GnuPG のインストール

  1. +あらかじめ、ユーザーアカウント制御(UAC)を無効にしてください。
  2. gnupg-w32cli-1.4.13.exe を実行します.
  3. 「Please select a language」の項目では,「Ja-Japanese」を選択し,「OK」を選択します.
  4. 次のようなセットアップウィザードが表示されます.「Next」を選択して次に進みます.
  5. ライセンスの同意文を読み,同意ならば,「Next」を選択して次に進みます.
  6. コンポーネンツはすべてを選択してままで,「Next」を選択して次に進みます.
  7. 言語は,日本語 (ja – Japanese) を選択して「Next」を選択して次に進みます.
  8. インストールするフォルダを指定します.例) C:\Program Files\GNU\GnuPG
  9. スタートメニューへの登録、デスクトップのショートカットの登録の画面が表示されるので、「Install」を選択すると,インストールが始まります.
  10. 「Completed」が表示されたら,「Next」を選択します.
  11. 完了画面が表示されるので,「Finish」を選択して終了します.

環境変数の設定

  1.  ユーザー環境変数に「PATH」がある場合は,「編集」を選択して,D:\Program Files (x86)\GNU\GnuPG(インストールした場所と同じ)を追加します.
  2.  ユーザー環境変数に「PATH」がない場合は,「新規」を選択して,「変数名」に「PATH」と入力し,変数値にD:\Program Files (x86)\GNU\GnuPG(インストールした場所と同じ)を入力します.

動作の確認

Gnupg が正しくインストールされたか確認してみましょう.

「スタート」を選択し,「ファイル名を指定して実行」を選択するか,「アクセサリ」の「コマンドプロンプト」を開き,gpg と入力します.「gpg: 開始します。メッセージを打ってください …」と表示されれば,インストールは成功です.

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\hoge>gpg
gpg: 開始します。メッセージを打ってください ...

[Ctrl]+C でいったん,終了してください.

GnuPG は,コマンドプロンプトで動作します.Windowsの画面に慣れてくると,コマンドプロンプトは面倒です.そこで,WinPTというソフトが用意されています.

以下は,GnuPG をコマンドプロンプトで使用する方法を紹介します.通常は,WinPTを使うと便利でしょう.

秘密鍵と公開鍵を設定する

秘密鍵とは,あなたのみが持っている鍵で,暗号化されたファイルはこの秘密鍵を使って復号します.

公開鍵は,ファイルを暗号化する時に必要なもので,ファイルを暗号化する人に渡します.

秘密鍵

「スタート」-「アクセサリ」-「コマンドプロンプト」を開き,次のように入力します.

C:\Users\hoge>gpg --gen-key

  1. 鍵の種類の選択は「(1) DSA と Elgamal」を選択します.
  2. 暗号化の種類
  3. 鍵のサイズは,「2048bits」 を選択します.2048と入力します.
  4. 鍵のサイズ
    1. 鍵の有効期限は無期限 0 を選択します.
  5. 以上で正しければ,「y」を選択します.
  6. 本名
    1. 本名ははアルファベットでメールアドレスで名乗っているあなたの名前(ハンドルネームなど)を入力します。
  7. メールアドレス
    1. メールアドレスは,暗号メールを送信するときに使用するメールアドレスを入力します.
  8. コメント
    1. コメントは入力しなくてもかまいません.
  9. 以上で正しければ,「(O) OK」を o を入力します。
  10. パスフレーズを入力
    1. あなたのみが知りうるパスワードを8文字以上で設定してください.なるべく,大文字,小文字,数字,記号を混ぜるほど,解読が難しくなります
      1. 秘密鍵が生成されます.スペックの遅いコンピュータでは時間がかかりますのでしばらく待ちます.
      2. 秘密鍵生成中に、キーボードを打つとか、マウスを動かすことで、乱戦を生成しやすくなります。

以上のコマンドプロンプトの操作は以下のようになります。

 

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\hoge>gpg --gen-key
gpg (GnuPG) 1.4.13; Copyright (C) 2012 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
ご希望の鍵の種類を選択してください:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (署名のみ)
(4) RSA (署名のみ)
選択は? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 2048
要求された鍵長は2048ビット
鍵の有効期限を指定してください。
0 = 鍵は無期限
 = 鍵は n 日間で満了
w = 鍵は n 週間で満了
m = 鍵は n か月間で満了
y = 鍵は n 年間で満了
鍵の有効期間は? (0)0
Key does not expire at all
これで正しいですか? (y/N) y
あなたの鍵を同定するためにユーザーIDが必要です。
このソフトは本名、コメント、電子メール・アドレスから
次の書式でユーザーIDを構成します:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

本名: Mamoru Imanishi
電子メール・アドレス: hoge@hoge.com
コメント:
次のユーザーIDを選択しました:
“Mamoru Imanishi <hoge@hoge.com>”

名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? ok
名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? o
秘密鍵を保護するためにパスフレーズがいります。

今から長い乱数を生成します。キーボードを打つとか、マウスを動かす
とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。
.....+++++
...+++++
今から長い乱数を生成します。キーボードを打つとか、マウスを動かす
とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。
...+++++
...+++++
gpg: C:/Users/hoge/AppData/Roaming/gnupg\trustdb.gpg: 信用データベースができ
ました
gpg: 鍵F284F3F1を絶対的に信用するよう記録しました
公開鍵と秘密鍵を作成し、署名しました。

gpg: 信用データベースの検査
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0 有効性: 1 署名: 0 信用: 0-, 0q, 0n, 0m, 0f, 1u
pub 2048R/F284F3F1 2013-05-09
指紋 = ECAD 7990 00DA 706D 910A E12A B90B 9A83 F284 F3F1
uid Mamoru Imanishi <hoge@hoge.com>
sub 2048R/A08094AB 2013-05-09

 

失効証明書の生成

鍵を万一紛失した場合に,鍵を無効にすることができる失効証明書を生成します.コマンドプロンプトで次のように入力します.

useid は,鍵を生成するときに指定した本名かまたは,その一部を入力します.

gpg -o revcert.asc --gen-revoke userid

C:\ユーザー\あなたのアカウント にrevcert.asc というファイルが生成されますので,大事に保管してください.

C:\Users\hoge>gpg -o recert.asc --gen-revoke Mamoru

sec 2048R/F284F3F1 2013-05-09 Mamoru Imanishi <hoge@hoge.com>

この鍵にたいする失効証明書を作成しますか? (y/N) y
失効の理由を選択してください:
0 = 理由は指定されていません
1 = 鍵がパクられました
2 = 鍵がとりかわっています
3 = 鍵はもう不用です
Q = キャンセル
(ここではたぶん1を選びます)
あなたの決定は? 3
予備の説明を入力。空行で終了:
>
失効理由: 鍵はもう不用です
(説明はありません)
よろしいですか? (y/N) y

次のユーザーの秘密鍵のロックを解除するには
パスフレーズがいります:“Mamoru Imanishi <hoge@hoge.com>”
2048ビットRSA鍵, ID F284F3F1作成日付は2013-05-09

ASCII包装出力を強制します。
失効証明書を作成しました。

見つからないような媒体に移動してください。もしワルがこの証明書への
アクセスを得ると、そいつはあなたの鍵を使えなくすることができます。
媒体が読出し不能になった場合に備えて、この証明書を印刷して保管するの
が賢明です。しかし、ご注意ください。あなたのマシンの印字システムは、
だれでも見える場所にデータをおくことがあります!

 

鍵を破棄する必要がある場合は次のように入力します.

gpg --import revcert.asc

公開鍵の公開

公開鍵を公開鍵専用のサーバーに登録することで,メールの送信者は,公開鍵サーバーから受信者の公開鍵を検索して,あなたの公開鍵を入手すればよいのですが,社内など,身近な人にメールを送るのに,サーバーに登録するほど大げさにしたくありません.そこで,自分の公開鍵をエクスポートして,相手にフロッピーディスクや,電子メールで送る方法があります.

公開キーを「エクスポート」するには,次のように入力します.useid は,鍵を生成するときに指定した本名かまたは,その一部を入力します.

gpg -o pubkey.asc -a --export userid

C:\ユーザー\あなたのアカウント にpubkey.asc というファイルが生成されます.

もしくは,

gpg -a --export userid

と入力します.useid は,鍵を生成するときに指定した本名かまたは,その一部を入力します.

pubkey.ascを右クリックして全選択し,Enterキーを押すとクリップボードにコピーされるので,テキストエディタに貼り付けてください.必要がない部分は削除してください.

 

公開鍵の入手

相手から,公開鍵のファイル (pubky.asc)が送られてきた場合は,次のようにして,公開鍵を「インポート」します.

gpg --import pubkey.asc

公開キーの内容をコピーして貼り付ける場合は,

gpg --import

と入力して,エンターキーを押してから入力します.インポート後は,公開キーの所有者のホームページや名刺などに書かれている指紋 (fingerprint)と,インポートした公開キーの指紋が同一かどうかを確認します.

gpg --fingerprint

インポートキーを使う前に鍵の署名をする必要があります.この鍵を他人に渡すことがない場合は,次のように入力します.

gpg --lsign-key userid

userid は,公開キーの所有者の名前です.

次に信用データーベースを更新する必要します.

gpg --edit-key userid

次にコマンドの入力を求められますのでそこで「trust」と入力します.インポートした鍵について,信用できるかどうかの度合いを入力してください.
1 = 知らない、または何とも言えない
2 = 信用し ない
3 = ある程度信用する
4 = 完全に信用する
5 = 絶対的に信用する
m = メーン・メニューに戻る

暗号化メールの送受信

秀丸メールの場合

GnuPG に対応したメールソフトの場合,メールを暗号化して送受信することができます.ここでは,秀丸メールを例に説明します.

「全般的な設定」-「上級者向け」-「暗号化/電子署名」において,「GnuPGを使う」を選択してください.

メールの暗号化(秀丸メール)

  1. メールの新規作成からメールを作成します。
  2. 編集-暗号化/電子署名 を選択します。
  3. 暗号化を選択して、OKを押します。
  4. 宛先のメールアドレスの鍵を選択します。
  5. 暗号化の処理が完了すると次のような画面になります。後は送信するだけです。

メールの復号化(秀丸メール)

  1. 受信したメールを開きます。
  2. 編集-暗号の復号/電子署名の検証を選択します。
  3. 秘密鍵のパスフレーズを入力して復号します。

そのほかのファイルの暗号化

暗号化

メールソフトが GnuPG に対応していない場合は,メールの本文や,添付ファイルを暗号化して,添付ファイルとして送信します.

まず,暗号化したいファイルを用意します.C:\ユーザー\あなたのアカウント名に、ファイルを保存します。(c:\ユーザー名\hoge\sample.txt) 次に,コマンドプロンプトで次のように入力します.

gpg -ea sample.txt

画面の内容を,テキストエディタにコピーして,sample.ascと言う名前で保存します.

もしくは,次のように入力します.

gpg -o sample.asc -ea sample.txt

または,メールの内容をコピーして,次のよう入力して貼り付けても暗号化されます.

gpg -ea

復号化

ファイルの復号はコマンドプロントから次のように入力します.

gpg -d sample.asc

あなたの秘密鍵のパスワードを入力します.