2003年12月01日
PGPを使って暗号メールをBecky!で送る
PGP規格に対応したオープンソースであるGnuPGを使ってPGP鍵を作成し,
その鍵とプラグインを利用してBecky!で暗号メールを送る方法をまとめる.
試験環境は,OSがWindowsXP,利用したアプリケーションは以下の3つ.
gnupg-w32cli-1.2.1-1.zip
BkGnuPG-1.0.3.exe
Becky! 2.05.10
既にいくつかは新しいバージョンが出ているので,各自で確認をしてください.
まずは,署名・暗号化の基本機能を提供するGnuPGをインストールする
http://www.gnupg.org/(en)/download/index.html
gnupg-w32cli-1.2.1-1.zip
1.zipファイルを解凍する
2.C:\gnupg フォルダを作る
3."gpg.exe", "gpgv.exe","gpgkeys_ldap.exe"の3つのファイルを
C:\gnupgにコピーする
4.環境変数PATHにC:\gnupgを加える
WindowsXPでは,「コントロールパネル」-「システム」-「詳細設定」-「環境変数」で,
ユーザ環境変数に「変数:path,値:C\gnupg」を加える.
(システム環境変数側にPathがあってもかまわない.両者は連結される.)
「プログラム」-「アクセサリ」-「コマンド・プロンプト」を起動(再起動)し,
path コマンドを実行すると(pathと入力する),
変更が正しく反映されていることを確認できるはずである.
(参考:環境変数について:http://forum.nifty.com/ftex/install/win/dviout.htm#path)
これで,GnuPGのインストールは完了
(鍵保存用のデフォルト・フォルダをC:\gnupg以外とするには,README.W32を見よ.)
次は,GnuPGを使って鍵を生成します.
5.「gpg --gen-key」を実行
鍵の種類は,「DSA and ElGamal」を選択
鍵のサイズは,「1024ビット」を選択
鍵の有効期間は,「2y」(2年)と指定
Real nameは,「Toshikazu Ichikawa」
E-Mail Addressは,「username@domainname」
Commentは,「」(なし)
パスフェーズを入力して完成
次に,鍵が生成されているか,確認します.また,鍵に関する情報を取得します.
6.「gpg --fingerprint」を実行
出力結果例:
pub 1024D/F0CD25EA 2003-02-17 Toshikazu Ichikawa
Key fingerprint = 1C98 7233 F225 D783 0A70 A958 2876 F825 F0CD 25EA
sub 1024g/DBA011E4 2003-02-17 [expires: 2005-02-16]
ここで,「F0CD25EA」が鍵IDです.
また,「Key fingerprint = Hex文字列」を,メールのシグネチャに追加しておくと良い.
メールの相手が公開鍵の正当性を確認するために用いることができる.
次に,誰かが鍵のパスフェーズを知ってしまったり,
自分が鍵のパスフェーズを忘れてしまった時のために,
失効証明(revocation certificate)を作成しておく.
7.「gpg --gen-revoke your_user_id」を実行
your_user_id の部分は,メールアドレスや鍵IDなどでよい.
出力された内容を保存しておく.
このデータは,絶対に他人がアクセスできないようにしておくべきである.
そして,メールクライアントBeckyから署名・暗号化GnuPGを利用するための
Beckyプラグイン「GNU Privacy Guard Plug-in for Becky! 2」を導入する
http://hp.vector.co.jp/authors/VA023900/gpg-pin/index.html
BkGnuPG-1.0.3.exe
?GnuPG ホームディレクトリ (レジストリで指定) を設定する?
8.Becky!を一旦終了し,BkGnuPG-1.0.3.exe を実行します
インストーラが起動し,インストールが行われます
9.正しくインストールが完了していれば,
「ツール」-「プラグインの設定」-「GNU Privacy Guard Plug-in」
と辿って設定ダイアログを開くことができます。
10.署名を付加するには,
新規メール作成ウィンドウで,「ツール」-「GnuPG:署名」を選びます.
ダイアログのローカルユーザが,鍵のメールアドレスと一致していることを確認し,
パフフレーズを入力します.すると,添付ファイルとして署名が付加されます.
11.署名を検証するには,
検証対象のメールを開いた状態で,「ツール」-「GnuPG:復号化と検証」を選びます.
正しい署名ならば,次のような文字列がダイアログに入っているはずです.
Good signature from "Toshikazu Ichikawa
詳しい利用方法は,次のURLに譲ります.
http://hp.vector.co.jp/authors/VA023900/gpg-pin/manual/index.html
一通り最低限のことができるようになったので,
公開鍵を相手に知らせる,公開鍵・秘密鍵を別のシステムに移す方法を解説します.
頭をGnuPGに切り替えてください.
12.公開鍵を取り出すには
「gpg --export --armor your_user_id」を実行します
13.秘密鍵を取り出すには
「gpg --export-secret-keys --armor your_user_id」を実行します
your_user_id の部分は,メールアドレスや鍵IDなどでよい.
出力は表示可能なASCII文字で構成されており,メモ帳などのテキストエディタで保存すればよい.
公開鍵は,Webや電子メールで相手に送付します.
秘密鍵を取り出す場合は,その保存形式に互換性の問題があります(以下「秘密鍵の保存形式」参照).
14.公開鍵を取り込むには,
「gpg --import < keyfile 」を実行します
keyfile とは,鍵情報の入ったファイル名です
15.秘密鍵を取り込むには,
「gpg --import --allow-secret-key-import < keyfile 」を実行します
これで,色々なWindows端末のBecky!で同じ公開鍵・秘密鍵を使うことができるようになりました.