WindowsにおけるGnuPG及び鍵サーバ利用について

平成15年3月20日
高橋充,井上智貴
岩手県立大学ソフトウェア情報学部


目次


1. はじめに

本稿では,まず前半ではMicrosoft社製のOSであるWindowsを使い,本来コマンドラインで動作するGnuPGをグラフィカルなインターフェースを使った操作の説明する. そして後半では公開鍵サーバを利用した結果を報告する.なお,公開鍵サーバはOpenPKSD鍵サーバ(openpksd2.8)を利用した.
4章以降で説明するWinPTの利用法に関しては,OSとしてWindows98を使用して説明しているが,Windows95,2000,Me,XP でも利用できるように,それぞれのGnuPGのPathの通し方も説明している.
GnuPG用のグラフィカルインタフェースとして,インストールが簡単なWinPTが 提供されている. しかし,WinPTからのOpenPKSDの利用には問題があることが判明した. このため, WinPTを使わない公開鍵サーバの利用方法についても説明する.主な方法としてGnuPGのコマンドを用いる方法とWWWブラウザを利用する方法があるが, コマンドからの利用はUNIX版と同様である. 本稿ではWWWブラウザを使った利用方法についてくわしく説明する.
なお, WinPTを使用したメールへの署名・暗号化は[2]内のページを参考にしてほしい.
また付録として,WinPTを使わない GPGrelayの説明と,Windows Privacy Tools の説明とWindows Privary Trayとの比較も記述している.


2. Windows版GnuPGのインストール

本章ではWindows版GnuPGのインストールについて説明する.
WinPTのパッケージにはWinPTと同時にGnuPGをインストールするものも配布されている.しかしその場合のGnuPGのバージョンは古く,最新版のGnuPGの機能を利用することができない.具体的には,WinPTの安定版に付属するGnuPGでは鍵サーバーから公開鍵を検索する機能が利用できない. WinPTに付属しているGnuPGのバージョンは1.0.6であり.このバージョンでは--search-keysオプションが利用できないからである. 最新版であるバージョン1.2.1では--search-keysオプションが利用できる.そのため本章ではWinPTとGnuPGは別々にインストールすることにした.
Windows版のGnuPGにはインストーラーが付属していないので,手動でインストールする必要がある.本章ではその手順を実例を交えながら説明する.

2.1 GnuPGのダウンロード

GnuPG.orgより最新版のGnuPG(gnupg-w32cli-1.2.1-1 2003年1月11日現在)をダウンロードする.

2.2 ファイルの展開

GnuPGの配布ファイルは圧縮されているので,展開する必要がある.今回はLhaplusというソフトで展開した. まずLhaplusをインストールする.そして再起動した後,GnuPGのZipファイルをダブルクリックすると展開できる.(図2‐1)


図2-1 展開してできたフォルダ

2.3 GnuPGのインストール

この節ではGnuPGをインストールする方法について説明する.
まずGnuPGをインストールするフォルダを作成する.Cドライブに「GnuPG」というフォルダを作る.(図2‐2)


図2-2 C:\GnuPGフォルダを作成

次にgnupg-w32cli-1.2.1-1のフォルダの中身をC:\GnuPGにコピーする.
「編集」→「すべて選択」(隠しファイルがあるため,「すべて選択」を使う)(図2‐3)


図2-3 すべて選択

選択したファイルをドラッグしてC:\GnuPGに移動する .


図2-4 ファイルを移動

2.4 レジストリの登録

Windowsにはレジストリという情報保存領域がある.GnuPGを使うにはレジストリにいくつかの情報を保存する必要がある.下のアイコンをダブルクリックするとレジストリにGnuPGを使う上で必要な情報が書き込まれる.


図2-5 レジストリ登録アイコン

アイコンをダブルクリックすると,確認のダイアログが表示されるのでOKを選ぶ.


図2-6 レジストリ登録ダイアログ

これでGnuPGのインストールは終了である.


3. GnuPGのためのPathの登録

ここまではGnuPGのインストール作業について述べたが,この章ではGnuPGへのPathの通し方について説明する.まず,何故,Pathを登録する必要があるのかについて説明する.そしてWindowsにおけるPathの通し方を説明する.WindowsXP,Windows2000などのNT系WindowsとWindowsME,Windows98,Windows95では手順が違うので,両方のやり方を説明する.

3.1 Pathを登録する必要

Windows版GnuPGの実行形式ファイルはgpg.exeという名前である.そして,その実行形式ファイルがある場所はC:\GnuPG\gpg.exeである.そのためgpg.exeをコマンドラインで使用する場合,毎回C:\GnuPG\gpgと入力しなければならない.実行ファイルの置き場所(Pathと呼ばれる)を毎回入力するのは面倒なので,Windowsの環境変数Pathに「C:\GnuPG」と登録することによって,毎回Pathを入力する手間を省くことができる.(例: C:\GnuPG\gpggpg)
WinPT経由でGnuPGを使用する場合には,gpg.exeを直接にコマンド入力から実行しないのでPathを登録する必要はない.WinPT経由ではなく,gpg.exeを直接に実行したい場合のみPathを登録するとよい.現在,GnuPGには実装されているが,WinPTには実装されていない,もしくは不都合のある機能があるので,それらの機能が利用したい場合は,GnuPGを直接コマンドラインから使用する必要がある.

3.2 WindowsXP,Windows2000におけるPathの登録の仕方

「スタートメニュー」→「マイコンピュータ」にマウスカーソルを合わせて,右クリックでメニューを出す→「プロパティ」を選択.(図3‐1)

マイコンピュータのプロパティを選択
図3-1 スタートメニュー

「システムのプロパティ」のウインドウが開くので,「詳細設定」(2000の場合「詳細」)のタブを押す.すると「環境変数(N)」というボタンがあるので,それを押す.(図3‐2)

システムプロパティの環境変数ボタン
図3-2 システムのプロパティのウインドウ

「システム環境変数」の「Path」をタブルクリックする.(図3‐3)

Pathを選択
図3-3 環境変数のウインドウ

「Path」に「;C:\GnuPG」を追加する.(;は区切りを意味する)

Pathを編集
図3-4 Pathの編集のウインドウ

「OK」を押す.これでWindowsXP, Windows2000におけるPathの追加は終了である.

3.3 WindowsMe, Windows98, Windows95におけるPathの登録の仕方

WindowsMe, Windows98, Windows95でPathを通すには「C:\autoexec.bat」ファイル(図3‐5)を「メモ帳」で開いて編集する.


図3-5 autoexec.batのファイル

「SET PATH=」の行の最後に「;C:\GnuPG」を追加する.(図3‐6)


図3-6 autoexec.batファイルをメモ帳で編集

これでWindowsMe,Windows98,Windows95におけるPathの追加は終了である.


4. WinPTの利用

WinPTとはWindows Privacy Trayの略語で,Windowsのタスクバーに常駐し,暗号鍵を使用し暗号化および複合を行うユーティリティソフトである.暗号化および複合の他にWinPTではクリップボードによる鍵の転送,署名の作成と検証の機能も提供されている|[1].

4.1 WinPTのインストール

まずWinPTのサイトに行き,最新版のパッケージをダウンロードしてくる.ソースコードも入手できるが,開発環境を持たない通常の利用者はバイナリ形式のバージョンをダウンロードする.2003年1月10日現在でのバージョンは「WinPT binary version(0.5.13)」である.

4. 1 WinPTのインストール

WinPTインストーラをダウンロードすると以下のようなアイコン(図4-1)がデスクトップ上に表示されるので,そのアイコンをダブルクリックしてプログラムを実行させる.


図4-1:WinPTインストーラアイコン

インストーラを実行すると,「インストールを続行するか」というメッセージ(図4-2)でるので「はい」をクリックする.


図4-2:インストール続行確認メッセージ

次にインストール中にアプリケーション同士の衝突を避けるため,利用中のアプリケーションを全て終了しなさいと注意があるので(図4-3)他のアプリケーションを終了させ「Next」をクリックする.


図4-3:セットアップウィザード開始

次に利用許諾の画面(図4-4)がでるので,GNU GENERAL PUBLIC LICENSE Version 2 に同意し「Yes」をクリックする.
GENERAL PUBLIC LICENSEの八田真行氏による日本語訳はGnuのページで読むこともできる.


図4-4:利用許諾画面

インストールするフォルダを指定する画面(図4-5)が表示されるので,先ほど作成したc:\GnuPGを選択する.


図4-5:インストールするフォルダ指定画面

ショートカットを作成するグループを指定する画面(図4-6)がでるが,そのまま「Next」を選択すると,デスクトップにショートカットが作成される.


図4-6:ショートカット指定画面

最後に今までの作業確認の画面(図4-7)がでるので,間違いが無いか確認し,「Install」を押すとインストールが始まる.


図4-7:作業確認画面

インストールが完了するとデスクトップにWinPTのショートカットアイコン(図4-8)が現れる.このアイコンが現れたらインストールが成功したことになる.


図4-8:WinPTショートカットアイコン

4.2 鍵ペアの作成

自分の公開鍵と秘密鍵の作成方法を説明する.

まず,「スタート」メニューからWinPTを起動するか,ショートカットアイコンをダブルクリックして起動させる.
もしWinPTの起動が初めてならば,暗号鍵の生成を求めるダイアログが表示される(図4-9).
鍵の生成を開始する「はい」を選択する.


図4-9:鍵の生成ダイアログ

すると,以下のような鍵生成に必要な情報を入力するダイアログが表示される(図4-10).
情報を入力する各項目は以下の通りである.
Key type:ここはデフォルトの「DSA and ELG(default)」を選択する.
Subkey length:ここは1024を指定する.
User name:半角のローマ字で名前を入力する.
Comment:ここはオプションなので,受け取った人が役立つ情報があれば記入する.
Email address:自分のメールアドレスを入力する.
Set expiration:鍵の有効期限を入力する.記入しなくても良い.
Passphrase:パスワードを入力する.
Repeat passphrase:Passphrase に入力したのと同じパスワードを入力する.


図4-10:鍵の情報入力ダイアログ

入力した情報に間違いが無いか確認し,「Start」ボタンを選択すると鍵の生成が開始する.
鍵の生成中には図4-11のような表示がでる.


図4-11:鍵の生成中の表示

鍵の生成にはやや時間がかかるが,以下のダイアログ(図4-12)がでるまで待つ.


図4-12:鍵の生成完了のダイアログ

鍵の生成が終了すると,ペアになっている公開鍵と秘密鍵は重要なデータが含まれているためにバックアップをとることを勧める警告が現れる.(図4-13)
記録する場合は「はい」を選び保存先を指定する.



生成された鍵は,次節の書き出しの部分で説明する「Key Manager」で確認する.


4.3 自分の公開鍵の書き出し(エクスポート)

公開鍵を利用し相手と情報のやり取りを行うには,自分の公開鍵を相手に伝える必要がある.
そのために,まず自分の公開鍵を書き出す必要がある.
タスクトレイの WinPT アイコン(図4-15)を右クリックするとメニュー(図4-16)が表示されるので,そこで「Keymanager」を選択する.


図4-15:WinPTアイコン(右端)


図4-16:WinPTメニュー

すると以下の画面(図4-17)が表示される.現状では,UserID に自分の名前のみ登録されているはずである.その自分のIDの上で1度クリックして反転させてから,「Key」メニューの「Export...」を選択する.(図4-18)


図4-17:Key manager画面


図4-18:鍵の書き出し

書き出しされた公開鍵を保存するように指示されるので,分かりやすい名前のファイル名で保存する.
鍵の保存が終了すると,以下のようなメッセージが表示される.(図4-19)


図4-19:鍵の保存完了

その保存したファイルをメモ帳などのテキストエディタで開き,鍵が表示されるか確認する.
以下は著者(高橋 充)の公開鍵である.(図4-20)


図4-20:著者の公開鍵


4.4 他人の公開鍵の取り込み(インポート)

他人の公開鍵を取り込むには,まず「Key」メニューの「Import...」を選択する.(図4-21)


図4-21:鍵の取り込み

次に取り込む鍵のファイルを選択する.他人の公開鍵をファイルに残すやり方は次章の,公開鍵の検索のところで説明する.
取り込むファイルを選択すると,取り込みたい人のUseID等が表示されているか確認し,「Import」を選択する.(図4-22)


図4-22:鍵の取り込み確認画面

取り込みが成功すると以下の図(図4-23)が表示される.また,Key Manager上には取り込んだ鍵を表示するため,「key」メニューの「Reload key cache」を選択する.(図4-24)
これで,取り込んだ鍵が表示されれば成功である.


図4-23:鍵の取り込み完了


図4-24:鍵の再読み込み


4.5 フォントを強制的に変更する

WinPTを利用し公開鍵の検索や送受信をする際に,仕様によるフォントの不都合が生じる.(6章参照
そのため,フォントを日本語フォントのMS Pゴシックに強制的に変更するパッチを当てる必要がある.
まず,有志によって配布されているオンライン情報[3]より最新のWinPT用のフォント変更パッチ(WinPT_jp_0.5.13.EXE(安定版)2003年2月17日現在)をダウンロードする.(図4-25)
なお,パッチをダウンロードする際には,WinPTのメニューから「About...」でWinPTのバージョンを確認し,そのバージョン用のパッチプログラムを使用する.


図4-25:フォント変更パッチアイコン

このパッチをCドライブ以下のGnuPGフォルダにあるWinPTフォルダの中に置く.(C:\GnuPG\WinPT\)
そして,このアイコンをダブルクリックすると,設定完了のダイアログが出る.(図4-26)
なお,このアイコンをダブルクリックする際は,画面右下のタスクトレイ内にあるWinPT(図4-15参照)を終了しておく.


図4-26:設定完了ダイアログ


4.6 公開鍵の検索及び送受信

ここでは,実際にWinPTを利用し,公開鍵サーバとの公開鍵の検索と受信,送信の仕方について説明する.

4.6.1 公開鍵の検索と受信

公開鍵の検索の仕方について説明する.
まず「Keyserver」メニューを選択し,適当な公開鍵サーバをクリックする.
そして,検索したい公開鍵の持ち主のメールアドレス又はKeyIDを入力する.
例として図4-27は,Keyserverを「www.openpksd.org」とし,検索したいメールアドレスを「g031y110@edu.soft.iwate-pu.ac.jp」として入力した図である.


図4-27:公開鍵の検索

そして,「Search」ボタンをクリックする.
しばらくすると検索結果が表示される.(図4-28)


図4-28:公開鍵の検索結果

検索結果のうち,自分が受信したい公開鍵を選択し,「Receive」ボタンをクリックすると受信が始まる.
受信が成功すると,以下のダイアログが表示される.(図4-29)


図4-29:鍵の受信成功ダイアログ

受信した公開鍵をWinPTに反映させるため,鍵の再読み込みする.(図4-24参照)
公開鍵が表示されれば,受信は成功である.

4.6.2 公開鍵の送信

次に自分の公開鍵を,公開鍵サーバへ送信する方法を説明する.
Key Manager上にある自分の公開鍵を選択し,右クリックでメニューを表示させ,「Send to Keyserver」をクリックする.(図4-30)


図4-30:公開鍵の送信

すると,デフォルトのKeyserverである「openpksd.org」へ送信するか尋ねてくるので,「はい」を選択する.(図4-31)

図6-5:送信の確認

成功すると以下のようなダイアログが表示される.(図4-32)


図4-32:鍵の送信成功

自分の公開鍵が適切に送信されたか,自分の公開鍵を検索して確認をする.


5. WWWブラウザを使った公開鍵サーバの利用

日本語版Windows上でWinPTを利用する際には画面の文字表示に問題が発生する.これを解決するにはパッチを当ててプログラムを書き換えるという作業が必要なため,初心者には扱いづらい場合がある.そこで,本章ではWinPTを使わずに鍵サーバを利用する方法についても紹介する.
まずpgp.nic.ad.jp で実験運用しているPGP Public Keyserverのサイトに行く.そのページの注意事項を読み,「注意事項に了解した」を選択する.すると,公開鍵の検索および登録をするページが表示される.

5.1 公開鍵の検索

公開鍵の検索は,検索文字列を入力する欄(図5-1)に検索したいIDまたは鍵IDを入力する.


図5-1:公開鍵の検索

例として「Mitsuru」で検索された結果を以下に表示する.(図5-2)


図5-2:鍵の検索結果

表示された検索結果画面で,keyIDまたはメールアドレスをクリックすると,そのユーザの公開鍵を見ることができる.(図5-3)


図5-3:公開鍵の表示

この表示された公開鍵をテキストエディタ等でコピーし,ファイルとして保存すれば前章で説明した他人の公開鍵の取り込みができる.

5.2 公開鍵の登録

公開鍵の登録は,先ほど書き出した自分の公開鍵をテキストエディタで開いてコピーし,以下のテキストボックス(図5-4)にペーストする.


図5-4:公開鍵の登録

鍵の登録が終了すると,以下のような表示(図5-5)がWWWブラウザ上に表示される.


図5-5:公開鍵の鍵サーバへの追加

自分の鍵が登録されたか確認するため,鍵の検索画面まで戻り,自分の名前を入力し検索する.
そして,自分の鍵が表示されたら,鍵の登録が成功したことになる.
例として,著者の名前で検索すると以下のように表示される.(図5-6)
なお,同じ名前の鍵が4つあるが,今回作成した鍵は一番上にある鍵である.


図5-6:自分の鍵の検索結果


6. WinPTの利用上の問題点

WinPTによる公開鍵サーバ利用時の問題点は以下の点である.
WinPTを利用しOpenPKSDを使った公開鍵サーバへアクセスし,鍵の取り込みをする際にはUserIDではなくKeyIDでの検索が必要となる.
ところがWinPTを利用して入手したい公開鍵を検索すると,KeyIDは0xのあとは6桁までしか表示されない.(図6-1)


図6-1:公開鍵の検索結果

これでは,検索した人の正確なKeyIDを入手することが出来ないために,今回はフォントをMS Pゴシックに変更するパッチを当てた(4.5参照).
なお,コマンドラインにてGnuPGのみを使えばその問題は起こらない.コマンドラインでのやり方はUNIXと同じであるので, UNIX環境におけるOpenPGP準拠ソフト「GnuPG」での公開鍵サーバ使用法を参考にして欲しい.


7. まとめ

本稿では,WindowsにおけるGnuPG及び鍵サーバの利用について報告した. GnuPGのグラフィカルユーザーインターフェースである】WinPTを利用するにあたり, パッチを当てるという初心者には難しい設定があり,さらに グラフィカルユーザーインターフェースを使わずに鍵サーバとのやりとりを する必要もある. 今後WinPTによる鍵サーバへのアクセスがより簡単になるよう開発に期待したい.


8. 付録

付録として,GnuPG の処理を行う中継ソフトGPGrelay の説明と,2003年1月に再編成されたWindows Privacy Tools の説明とWindows Privary Trayとの比較を記述する.

8.1 GPGrelay経由のサーバ利用

GPGrelayは,Windows環境上でメールクライアントとメールサーバの途中に入ってメールを中継(リレー)するアプリケーションである. メールを中継する際に自動的にPGP/MIMEの処理を行ない, GnuPGを用いた暗号化/復号や署名/検証を行なう.メールクライアントごとに専用のGnuPGプラグインを追加する必要がないので,発信/受信するメールをGPGrelayに中継させることによってどのメールクライアントからでもGnuPGを利用することができる.

GPGrelayの詳しいインストール方法や動作例は,オンラインで公開されている日本語文献「GnuPG の処理を行う中継ソフト GPGrelay の導入」 や「OpenPGP準拠メーラについての調査」 にて報告されている.

2002年まで,GPGrelayからPGP公開鍵サーバを利用する機能は限られていた. たとえば,すでに使っている公開鍵を公開鍵サーバ上の公開鍵と比較して 更新されていれば置き換える,という作業は手作業で行なう必要があった. しかし2002年9月にリリースされたGPGrelay v0.90では, 公開鍵をGPGrelayから自動的に取り寄せる機能が追加された. これはPGPの署名つきメールを受け取ったGPGrelayが GnuPGに公開鍵サーバへの問い合わせを行なわせることによって 実現している. 具体的には,GnuPG の設定ファイルに 公開鍵サーバを指定し,「auto-key-retrieve」の設定を有効にすることで GnuPGは署名を検証する際に公開鍵が手元にない場合は自動的に 公開鍵サーバ検索を行なうことができる.

ただし,2002年の段階では公開鍵に含まれる署名パケットの書式によっては GnuPGが異常終了するという事態も頻発していた. この署名パケットへの対応については 2003年1月31日に公開された GPGrelayバージョン0.91 で改善され, 0.90に比べても実用に耐えるようになっている. そして公開鍵サーバとの連携機能も進み, 公開鍵サーバを自動的に探すだけでなく, 公開鍵サーバへ公開鍵を送信(Send)したり受信(Receive)するといった 作業もGPGrelayのメニューから行なうことができるようことを確認した.

8.2 Windows Privacy Tools とWindows Privary Trayの違い

GnuPGのフロントエンドプログラムWinPT(Windows Privacy Tray)は,現在WinPT(Windows Privacy Tools)の一部として再編成されている. 2003年3月現在のWindows Privacy Tools のバージョンは 1.0rc1(1.0 Release Candidate 1)で,バージョン1.0の公開に向けて開発が進められている.

現在のバージョンは以下のパッケージから構成されている.

WinPTは従来のGnuPGに追加するGUIフロントエンドというだけでなく, GnuPGや複数のメールクライアント用のプラグインまで一度にインストールできるパッケージとして構成されていることがわかる. また,入門者向けの手引きとして「WinPT Handbook」も同時に作成がすすめられており, 公開鍵サーバとのやりとりも実行例をつけて丁寧に紹介されている.(本稿執筆時点では英語版のみ.)

なお1.0rc1ではGUIにはWindows Privacy Trayがそのまま使われているため,日本語環境では表示に難があるが,先に述べた Windows Privacy Tray 用の日本語フォント変更パッチを利用して回避することができる.


参考文献

[1] Windows Privacy Tray; WinPTとは, http://www.winpt.org/ja/
(最終アクセス 2003年1月20日)

[2] SMB Consulting 1000; ウィンドウズ環境へのGnuPGの導入, http://smb.extranet.co.jp/documents/gnupg/gnupg.html
(最終アクセス 2003年1月20日)

[3] 有志によって配布されているオンライン情報, http://homepage2.nifty.com/ayumemi/download.html
(最終アクセス 2003年3月3日)


本レポートはOpenPKSDプロジェクトの一環として作成された.

Copyright(C) 2003, Takahashi Mitsuru and Inoue Tomotaka.
pgp-folks@comm.soft.iwate-pu.ac.jp

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