MAC OS XにおけるGPG及び鍵サーバ利用について


市澤浩史
岩手県立大学ソフトウェア情報学部
平成15年1月11日

目次



1. はじめに

PGP/GnuPGは,Windows・Macintosh・UNIXといった異なるOS上で動作する. Macintosh用としては, PGP社の製品であるPGP 8.0.2 Freeware と PGP Personal 8.0 と フリーソフトウェアGnuPGのMac移植版であるMacGPGがある. (株)日本システムディベロップメントは 平成15年末にWindows版のPGPを国内販売すると発表しているが, 2003年7月現在,Macintosh版の国内販売の予定はない.
本稿ではMacintosh,Mac OS XへのGnuPG導入から鍵サーバの利用,GnuPG暗号化メールの導入及び利用に関して取り扱う.Mac OS Xに関しての注意点だが,OSのヴァージョンをよく見ておいてもらいたい.なぜならばver10.1.xとver10.2.xではインストールすべきファイルが異なるからである.本稿でのテスト環境はver10.1.5である.よってver10.1.xのインストールで説明する事になるが,基本的なインストール方法に関してはver10.1.xもver10.2.xも変わりはない.
OSのバージョンを確認するには,
「アップルメニュー->このMacについて」
を実行する.


図1: OSのヴァージョンの確認

2. MacGPGのインストール及びGUIツールのインストール

まずMac OS XでGnuPGを使用する為にMacGPGをインストールする.また同時に通常ならばTerminal.appを開いてコマンドで操作しなければならないGnuPGの操作をGUIから簡単に操作できるツールも一緒にインストールする.これらのファイルは全てMac GNU Privacy Guard[1]のページから入手可能である.

ダウンロードするべきファイルは以下のものである. GPGKeysは鍵管理ソフト,GPGFileToolは様々なファイルの暗号,復号化ソフト,GPGDropThingは暗号,復号化可能なエディタソフト,GPGPreferencesはGnuPGの詳細設定を行うソフトである. 2002年12月現在ではこれらのツールに対しての日本語対応版は出ていない. (後述するGPGMailは有志によって日本語版が公開されている.)

2.1. MacGPGのインストール

Mac OA XでGnuPGを利用する為にはまず最初にこのMacGPをインストールする必要がある.「はじめに」で説明したようにこのMacGPGをインストールする際はヴァージョンを気をつけてファイルをダウンロードしてもらいたい.
  1. ダウンロードしたファイルを展開するとGnuPGOSX.pkg(ver10.2.xではGnuPGOSX.mpkg)というファイルがある.
  2. このファイルをクリックしインストーラが立ち上げ,administrator権限を持つユーザ(または管理者)の名前とパスワードを入力する.
  3. インストール先を選択する.OSのインストールされているディスクを選ばなければならないので注意が必要である.またインストールにはディスク容量が約105Mbytes必要になる.もしスペースが無いようならばここで一端インストールを終了し,スペースを確保してから再度インストールを行ってほしい.
  4. インストールの完了.
図2: MacGPGインストール(右は2の部分で左は3の部分)

これでGnuPGはインストールされた.念の為Terminal.appを立ち上げて,

% gpg --version

と打ち,ヴァージョン情報が表示されるかどうか確認しておくと良いだろう.

2.2. GUIツールのインストール

GUIツールのインストールはダウンロードしたファイルを展開するだけである.展開した中身をApplicationフォルダに移しておくと良いだろう. ただ,GPGDropThingはdmg形式(注1)で提供されているので,展開後自分で作成したフォルダに中身を全て移してからApplicationフォルダへと移した方が良いだろう.同じdmg形式で提供されているGPGPreferencesはMacGPGをインストールした時のように展開するとpkgファイルがあるのでそれをクリックし,インストーラを立ち上げインストールを行う.また100MBytesの容量を空け,インストールするディスクを間違えないようにしてもらいたい.

注1: Appleは,インストーラを必要としないアプリケーションをディスクイメージ形式で配布するようにしている.ユーザはこの形式を使った仮想的なディスクボリュームからアプリケーションを自分のハードディスクの好きな位置にコピーする事が出来る.

3. GUIツールの利用

MacGPGも他のOS同様,通常GnuPGを利用する為にはコマンドを入力してプログラムを実行しなければならない.しかし,第2章でインストールしてもらったGUIツールを利用する事により,利用者はGnuPGのコマンドがわからなくともGnuPGを利用する事が出来る.ここではGUIツールを使用しての基本的なMacGPGの使い方を説明するが,GnuPGのコマンドについての説明はしない.

3.1. GPGKeysの利用

GPGKeysでは鍵ペアの作成,公開鍵や秘密鍵の管理,鍵への署名,鍵サーバへの鍵の登録,検索,そして鍵サーバからの鍵の取得など鍵の管理に関する一連の動作を操作できる.ここではGPGKeysを利用したそれらのやり方を説明する.


図3: GPGKeys

3.1.1. 鍵ペアの作成

まず自分が使うべき鍵ペア(配布する公開鍵と,自分だけが持つ秘密鍵)を作成する.
Key->Generate...
を選ぶ.


図4: 鍵作成

すると上の図の様にTerminal.appが立ち上がる.ここからはTerminalに表示されている項目の指示に従う.基本的にはデフォルトの値のままで進んでよい.その後ユーザの氏名,電子メールアドレス,コメント(省略可)を入力し,パスフレーズを入力する.確認後

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
+++++.+++++.++++++++....++++++++++..+++++.+++++.+++++++.+++++++
+++.++++++++++++++++++++++++++++++++++++++..........................++++

のように表示される.この時キーボードをでたらめにたたいたり,マウスを動かす事で乱数を生成し,鍵ペアが作成される.作成された鍵ペアはGPGKeysですぐ確認する事が出来る.以上で暗号鍵の生成は終了し,暗号化および電子署名を行なうことができる.

3.1.2. 失効証明書作成の問題点

本来ならばここで失効証明書を作成しておく.これは何かの理由で先ほど作成した鍵ペアが使えなくなった時,失効証明を利用して公開鍵を無効にする.だがこのGPGKeysではそれをGUI上で行う事が出来ない.失効証明をどうしても作成しておきたい場合はTerminal.appから

% gpg --output revoke.asc --gen-revoke YourMailAddress@hoge.net

で作成出来る.また鍵を失効したい場合は同じくTerminal.appから

% gpg --import revoke.asc

と入力し失効証明書を取り込む事でその公開鍵は使えなくなる.この失効証明書を公開,配布する事により他の人へすでに配ってしまった公開鍵も同様に使う事が出来なくなる(注2).

注2: GPGKeysではKey->Synchronizeを選択,コマンドでは--refresh-keysをする事で鍵サーバと同期を取り,最新の鍵の状態を保つ事が出来る.

3.1.3. 鍵サーバの利用

鍵サーバを利用して鍵の登録,検索,鍵の取得が出来る.鍵サーバを利用する為にまずGPGPreferencesを利用して鍵サーバを指定しなければならない.

GPGPreferencesは
アップルメニュー->システム環境設定->その他
にある.


図5: システム環境設定

クリックしたらKey Serverのタブに移動してもらいたい.Key Serverにマウスを当て,自分知っている鍵サーバのアドレスを入力する.これで鍵サーバとのやりとりが出来るようになる.一応確認の為Expertのタブに移動してkeyserverにチェックを入れvalueに自分の入力したアドレスが入っているかどうか確認する.もし自分の入力したアドレスになっていなかった場合はkeyserverのvalueにマウスを当て,アドレスを入力する(注3).

図6: 鍵サーバの設定(左はKey Serverのタグ,右はExpertのタグでのkeyserverの変更)

まずは公開鍵を登録から説明する.鍵サーバに先ほど作成した自分の鍵を登録する.

登録は
Key->Send to Keyserver
を選ぶ.Terminal.appが立ち上がり

gpg: success sending to 'KeyServerName'

と表示されていれば鍵サーバへの登録は成功である.

次に公開鍵の検索を説明する.

検索も非常に簡単で
Key->Search for Keyserver
を選択し,現れるダイアログに検索したい鍵のID,もしくは電子メールアドレスを入力する事で検索出来る.検索する事でその公開鍵の情報がわかる.

gpg: searching for 'Search ID or Address' from XXX server KeyserverAddress
Keys 1-1 of 1 for "Search ID or Address"
(1)-------Hoge Name (Comment) <search@hoge.net> 1024
-----------create 2002-12-02, key 0x1AB5DAA6F
Enter number(s), N)ext, or Q)uit >

最後に鍵サーバからの公開鍵の取得を説明する.

同じ様に
Key->Retrieve from Keyserver
を選択し,現れるダイアログに取得したい鍵のIDを入力する事で出来る.気をつけてもらいたいのは電子メールアドレスを入力しても鍵は取得出来ない事である.したがって検索して得られた鍵のIDを覚えておき,そのIDを入力して公開鍵を取得するのがよいだろう.鍵のIDは検索結果のkeyと書いている所の16進の数である.


図7: 鍵サーバからの公開鍵の取得

gpg: requesting key 1AB5DAA6F from XXX keyserver KeyserverAddress
gpg: key 1AB5DAA6F: public key imported
gpg: Total number processed: 1
gpg: ------------imported: 1

このように簡単に鍵サーバと鍵のやりとりが出来る事がわかるだろう.鍵サーバを利用しなくとも鍵のやりとりは出来るが(注4),鍵サーバを利用する事により,非常に簡単に他人の公開鍵を取得でき,また自分の公開鍵を公開する事も出来る.

注3: もしもkeyserverのoptionが無い場合は下の+のボタンを押す.すると新しいoptionが出来るのでkeyserverと入力し,valueにアドレスを入力する事で解決する.
注4: もしも他の人の公開鍵のファイルが自分のディスクにあった場合はFile->Import...で公開鍵ファイルを選ぶ事でImportする事が出来る.

3.1.4. 公開鍵への署名

他の人から入手した公開鍵がその人の公開鍵であると証明出来た時,自分がその人の公開鍵である事を保証しているという意思表示として,公開鍵に対して署名を施す.署名には2種類有り,自分のコンピュータ中でのみ有効な署名と他の人にも表示出来る署名である.GPGKeysを利用してこれら二つの署名のやり方について説明する.やり方は簡単である.

始めに自分のコンピュータの中でのみ有効な署名のやり方だが,まず署名したい公開鍵を選ぶ.その後Key->Sign Localを選ぶ.

次に他の人にも表示できる署名のやり方だが、先ほどと同じように署名したい公開鍵を選ぶ.その後Key->Signを選ぶ.こちらを行った公開鍵はFile->Exportを行い,ファイルに出力した公開鍵をまた他の人に公開する事も出来る.

最後に参考までに公開鍵への署名の確認だが,Key->Edit...を選ぶとTerminal.appが立ち上がる.その後,checkと打つとその公開鍵に署名している人がわかる.

Command> check
uid User Name (Comment) <MailAddress@hoge.net>
sig!3-----1AB5DA6F 2002-12-03---[self-signature]
sig!--L---D621BBF3 2002-12-25---OtherName <Hoge@hoge.net>

Command>



3.2. GPGDropThingの利用

GPGDropThingは簡単に文章を暗号,復号化出来る専用エディタである.ちょっとした文章を暗号化するのには便利だろう.

図8: GPGDropThingを利用した文章の暗号化

上の図の様に暗号化は暗号化したい文章をエディタに書き込みGPG->Encryptを選び,誰の公開鍵を利用して暗号化するのかを選択する.ASCII形式で暗号化された事がわかる.復号化も同様に暗号化されている文章をエディタのコピーするか,Fileからファイルを選択する事で文章を取り込む.その後GPG->Decryptを選び,自分のパスフレーズを入力するだけである.

3.3. GPGFileToolの利用

GnuPGは文章以外の様々な形式のファイルも暗号,復号化する事が出来る.先ほどのGPGDropThingは文章だけの暗号,復号化ツールであったがこのGPGFileToolは様々なファイルを選択し,暗号,復号化出来る.

図9: GPGFileToolを利用した画像の暗号,復号化

テストではPNG形式の画像を使って暗号,復号化してみた.まず暗号化したいファイルをFileから選択する.すると上の図の左側のようになる.Encryptを選択し,Do itボタンを押した後,誰の公開鍵を利用するかを選択する.復号化も同様に復号化したい暗号化されたファイルを選択する.Decryptを選択し,自分のパスフレーズを入力する.

4. GPGMailの導入

GPGMail[2]はMAC OSの標準MUAであるMail.appでGnuPGを使えるようにする為にStephane Corthesy氏が作成したPlug-inである.Plug-inを導入することで簡単にメールに対して,署名,暗号化,認証,復号化を行うことが出来る.このGPGMailは個人ユーザの手によって日本語版が配布されている[3].ここではGPGMailのインストールと利用法について説明する.またこのGPGMailのようなPlug-inがこれらMUA,Eudora(Eudora GPG)[4],Entourage(EntourageGPG)[5],Mailsmith(Mailsmith-GPG)[6]にも存在している.

4.1. GPGMailのインストール

MacGPGのインストールのインストールの時同様このGPGMailのインストールの際もダウンロードするファイルに気をつけなければならない.またもう一つ気をつけなければならないことがある.それは日本語版のGPGMailのファイルではdmg形式の他にtar.gz形式での配布もされている.tar.gz形式のファイルをダウンロードした場合,Mac OS Xに標準で入っているStuffIt Expanderは使わず,Terminal.appを立ち上げ,

% tar -zxvf Modified_GPGMail.tgz

と打つ.そうして展開したファイルを利用してもらいたい.StuffIt Expanderを使って展開したファイルを使うと一部機能が使えなくなってしまう問題がある.本家の方はdmg形式のみなのでこちらの英語版を利用したい場合は先ほどの展開については事は気にしなくても良い.
  1. Mail.appが立ち上がっている場合は終了させる.
  2. 展開したファイルGPGMail.mailbundleを /(自分のホームディレクトリ)/Library/Mail/Bundles/ に移動させる.Bundlesのディレクトリが無い場合は新規作成する.
  3. Terminal.appを立ち上げて次のように打つ.

    % defaults write com.apple.mail EnableBundles YES

  4. メニューのメッセージにPGPという項目が追加されていればインストールは終了である.

図10: GPGMailのインストール

4.2. GPGMailの利用

GPGMailを利用すれば非常に簡単にメールを暗号化,署名をして相手に送信することが出来る.メールを受け取る時も復号化や署名の認証ができる.それらのやり方について説明する.
パスフレーズを毎回入力するのは非常に大変なので,設定で一時的にパスフレーズを保存する事が出来る.他にもメールを常に暗号化,署名をして送信するようにも設定できる.Mail詳細設定にPGPの設定の項目が増えているので,これらの細かい設定をするとさらにGPGMailが使いやすくなるだろう.

図11: 暗号化されてきたメール(左)と署名の認証(右)

5. まとめ

本稿では,MAC OS XにおけるGnuPG導入及び鍵サーバの利用,GUIツールの利用について報告した.GUIツールには以下のものがあった.鍵を管理するGPGKeys,文章専用に暗号化を行うGPGDropThing,様々なファイルに暗号化を行うGPGFileTool,GnuPGの細かい設定を行うGPGPreferenceである. さらに Apple 製のメーラであるMailからGnuPGを操作するGPGMailがある. MacGPGなどのインストールや鍵サーバへのアクセスは非常に簡単であったが,GUIツールはWindows用のGUIツールに比べ使いづらいところがあった.これからの開発に期待したい.

参考文献

[1] Gordon Worley: Mac GNU Privacy Guard, http://macgpg.sourceforge.net/
(最終アクセス 2003年1月1日)

[2] Stephane Corthesy: GPGMail,
http://www.sente.ch/software/GPGMail/index.html
(最終アクセス 2003年1月1日)

[3] Tomio: GnuPG暗号化メールをMacOSXで使おう (GPGMailの日本語版を配布),
http://www.max.hi-ho.ne.jp/tomio-a/index_GnuPG.html
(最終アクセス 2003年1月1日)

[4] Richard Chang: Eudora-GPG Scripts for MacOS X,
http://mywebpages.comcast.net/chang/EudoraGPG/index.html
(最終アクセス 2003年1月1日)

[5] Simon Kornblith: EntourageGPG, http://entouragegpg.sourceforge.net/
(最終アクセス 2003年1月1日)

[6] Alessandro Ranellucci: Mailsmith-GPG Scripts,
http://alex.primafila.net/Mailsmith-GPG/
(最終アクセス 2003年1月1日)

本レポートはOpenPKSDプロジェクトの一環として作成された.
Copyright(C) 2003, Ichisawa Hiroshi.
pgp-folks@comm.soft.iwate-pu.ac.jp

本ドキュメントは,GNU Free Documentation License 1.1(GNU フリー文書利用許諾契約書)の条件下で自由に利用可能である.詳細については http://www.gnu.org/copyleft/fdl.html から入手可能である.