COMM Internal Note 068
PGP-007
OpenPKSD活用法: クライアント編

山根信二
岩手県立大学 - 村山優子
岩手県立大学 -

2003年7月

概要:

本報告書では, 初心者が各種クライアントからOpenPGP公開鍵サーバであるOpenPKSDを利用する 際に手引きとなる情報を提供する. OpenPKSDのみならず,他のPGP公開鍵サーバを利用する際にも 本報告書の説明は役立てることができる.


目次


はじめに: 本報告書について

本報告書の章ごとの内容および執筆担当者を以下に示す.
公開鍵サーバ概論 (山根)
はじめに,初心者がクライアントからOpenPKSDを利用するために 必要な入門情報を述べる. 1) OpenPGPで用いられるWeb of Trust とは何か, 2) 公開鍵サーバ とは何か, その利点と欠点および 利用者の注意すべき点について述べる.

Unix編 (藤原)
UNIX上にインストールしたOpenPGPクライアント「GnuPG」を使って, コマンドラインから 公開鍵サーバを利用する方法について解説する.

Windows編 (高橋,井上)
Windows OS上のクライアントから公開鍵サーバを利用する方法として, 1) WWWブラウザを使う方法, 2) GnuPGのWindows用フロントエンドである「WinPT」を使う方法, 3) 既存のメールクライアントとGnuPGとを中継する「GPGrelay」を使う方法, の3つを解説する. 2003年1月以降の開発動向についても紹介する.

Macintosh(MacOS X)編 (市澤)
Apple社のMaxintosh上でOpenPGP公開鍵サーバを利用する方法として, 1) GnuPGのMac OS X 用のフロントエンドである「MacGPG」を使う方法, および 2) Mac OS X の標準メーラからGnuPGを起動する「GPGMail」を使う方法について 解説する. 操作説明の他に,インストールおよび使用に際しての注意点も述べる.

全体の編集は山根および村山が行なった.

公開鍵サーバ概論

本章ではOpenPGP公開鍵サーバの意義について概論を述べる.

Web of Trustの概念について

OpenPGPでは,誰もが公開鍵暗号を使って証明書や電子署名を作成できるが, その公開鍵や署名が本人のものであるかどうかを保証する機関は存在せず, 利用者が自分自身で判断するように設計されている.

利用者自身の判断材料として,OpenPGPは自分が信頼した人が 紹介する署名を信用するという手段を提供している.この紹介者を媒介とした 信用のつながりはWeb of Trust (信用の輪)と呼ばれており, この信用の輪のネットワークがおよぶ範囲において OpenPGPはセンターを必要とせずに安全なコミュニケーションを行なうことができる.

署名関係を視覚化する

[1]および 図[2]は, フリーソフトウェアDebianの開発者グループのメンバーが使っている 証明書に誰が署名しているかを解析し,異なる方法で グラフ化したものである. 1個の証明書は,公開鍵パケットや署名パケットと呼ばれる 幾つかの部品(パケット)から構成されている. このパケットを調べることによってその公開鍵が誰のもので 誰が署名しているのかを検証することができる. そして開発者グループメンバーが持っている 公開鍵を収集して,それらの相関関係を視覚化したのがこの画像である.

  
図1: 視覚化の例1 [5]

Debian開発チームメンバーは, GNU Privacy Guard(GnuPG, GPG)を用いた署名を 公式に用いることで. インターネットを使った無数の開発者による 開発のやりとりには成功している. 図[1]のように 実際に署名関係を視覚化することによって, プロジェクトリーダーが中心的な役割を 果たしている [6]ことが確認できる. (なお,こうした図はWeb of Trust,すなわち信用の輪の例として 使われることも多いが,厳密にはWeb of Certificates, 証明書の輪というべきである[7]. なぜならOpenPGPでは 完全に信用する/信用しない/ある程度信用する/未知 といった信用度を個別に設定するために, 「証明書は保証するが信用しない」という場合も ありうるためである. )

  
図2: 視覚化の例2 [5]

OpenPGPの公開鍵への署名は 中心的なセンターによっておこなわれるのではなく, 個人間の信用に基づいて行なわれる.このために.署名関係は 中央処理センターも上位も下位もない 重なりあった網の目(web)のようになる. 活発なコミュニティほど信用関係の経路が複雑に重なりあうため, 視覚化にも困難が伴う. そのため,署名関係を平面上に配置するだけでなく, 画像に奥行きをつけて表現したり,VRMLで表現することも試みられている. 図[3]は, 同じデータを3次元で表現したものである. 重なりあっていた個々の信用関係が放射線状に表現されていることがわかる.

  
図3: 視覚化の例 (3D画像) [5]

[4]は, 図[3]と同じデータを視点をややずらして 表現したものである. VRMLを使うことで視点の変更や拡大といった操作を 容易に行なうことができる.

  
図4: 視覚化の例 (VRML) [5]

このようにして,OpenPGPのやりとりにおける信用の判断材料となる 署名関係のつながりは, 上位も下位もない重なり会う個人同士の関係であることを より視覚的に理解することができる.

OpenPGP鍵管理の弱点と公開鍵サーバの意義

鍵情報の更新

OpenPGPの運用における弱点として,公開鍵の取り消し(破棄)のためのシステム が不十分であることが繰り返し指摘されてきた. たとえば漏洩や改竄によって自分が配った公開鍵が使えなくなった場合について, 以下の問題点が指摘されている [11, 24.12][3, pp. 307-309].
  1. 秘密鍵をなくしてしまったら公開鍵を取り消すことができない
  2. 公開鍵を取り消しても,公開鍵を配布した全員に取り消し情報が伝わる保証がない
前者の弱点に関しては,自分の公開鍵と秘密鍵を作成する際に 公開鍵の取り消しに使う破棄証明書を作成して 秘密鍵とは別の場所に保存するといった手順を踏まえた運用 によってある程度回避する事が可能である. (本報告に含まれる各OSごとの利用説明においても,破棄証明書の 作成について説明している.)

そして後者の問題については,公開鍵サーバの活用が有効である. 自分の公開鍵を入手した人すべてに公開鍵の更新情報を伝えるのは不可能に近い. だが,利用者が公開鍵サーバを介して公開鍵の更新を行なえば, 更新手順を大幅に省力化することができる. 具体的には, 公開鍵サーバに 公開鍵の更新情報(または破棄証明)を送れば,サーバ上に登録されている 公開鍵に 更新情報が加えられ,元の公開鍵を持っている人も公開鍵サーバに問い合わせれば いつでも自分の持っている公開鍵が更新されていないかどうかを確認することが できる.

公開鍵サーバ上の公開鍵の確認手順

他人のOpenPGP公開鍵を簡単に入手できることが 公開鍵サーバの利点だとよく言われている. しかしOpenPGPの公開鍵は自由な名前で作成することができるので, 公開鍵サーバに登録されている公開鍵が本当にユーザが作った ものかどうかはわからない. つまり,公開鍵サーバで入手した公開鍵を使うには まず公開鍵が偽造されていない本物であることを確認する必要がある. そのためには公開鍵サーバの表示を信頼するだけでは不十分で, 自分のローカルマシン上のOpenPGPクライアントで その公開鍵が信用できるかを確認すべきである. この方法としては,OpenPGPクライアントが相手の公開鍵から取り出す 「フィンガープリント」を確認するのが一般的である.

公開鍵サーバを利用した関連事例

公開鍵サーバの利用集計事例

公開鍵サーバはどのくらい利用されており,web of trust はちゃんと形成されているのだろうか. 現在,公開鍵サーバに登録されている膨大な公開鍵データを統計的に 解析する試みも行なわれている. 1996年1月にNeal McBurnettが最初の統計を行ない, 現在ではDrew Streibが 国際的な同期をとっているOpenPGP公開鍵サーバの一つである www.us.pgp.net (pgp.dtype.org)のデータを定期的に分析している [1].

単なる公開鍵数の集計以外にも, 興味深い試みとして, サーバに登録されている公開鍵から 誰が誰に署名しているかを集計し,署名数の上位者を調べる調査がある. この調査によれば,ジョージア工科大学の Peter N. Wan とMITの Theodore Ts'o が 首位を争っている.

彼らのように無数の人物の公開鍵に署名を行なうためには, 多くの人が公開鍵を持って現れた時に,その人物が たしかにその公開鍵の持ち主であることを 確認する手順をあらかじめ決めておく必要がある.

キーサインパーティー

公開鍵への署名を行なう前に行なう手順としては, 多くの人を集めて行なうキーサインパーティーがよく知られている.

キーサインパーティーには, 参加者が一堂に集まり, 全員が顔を見合わせながらパスポートを回覧するなどして 相互に認証する方法,あるいは 認証担当者が本人確認し,その場に居合わせたメンバーが そこで確認された公開鍵に署名を行うという2つの手法がある.

前者はOpenPGPのメッシュ型認証パスを活用しており, お互いを知り親睦を深めるという効果も期待できるが, 人数が増えれば増えるほど効率が悪くなるために 人数の規模が小さい場合に限られる.

組織内の利用としては,後者の方法が一般的である.具体的には, セキュリティ担当者に事前に公開鍵とフィンガープリントを送り, 面接の後に担当者が公開鍵に電子署名を施すといった方法である. たとえばペンシルヴァニア大学では,セキュリティ担当者にOpenPGP署名 を申請する手続きやガイドラインを公開している [14]. またオープンソース開発者の間でも,サインパーティーの手引き が配布されている [2,15].

国際組織IETFの年4回の大会においても 夜のセッションでサインパーティーが開かれるのが恒例になっている. こうした専門家の間でのOpenPGPサインパーティーは一定の機能を果たしてきた が,近年では特定団体の構成員に限らず,サインパーティー 開催予告をインターネット上で公開する サイトも存在する [9,2].

備考: ドイツ政府のOpenPGPクライアントに関する取り組み

昨年度報告書でドイツ政府によるGnuPGプロジェクトの支援について 報告した [17, 備考]が,2002年以降,その成果が 具体的な製品として登場している.本節ではその中から クライアントの事例を2件紹介する.

ドイツ内務省(BMI)の情報技術保安局(BSI)が 政府調達電子メールクライアントとして S/MIMEとOpenPGPに対応したフリーソフトウェアを採用することを 決定したのは2001年のことである.その後公式発表を経て この成果は一般向けのフリーソフトウェアにも 還元され,2003年1月にはLinuxのデスクトップ環境KDE3.1の標準 メールクライアントであるKmailにも組み込まれた [16].

またドイツ経済労働省 (BMWA)は2001年から2002年にかけて 内務省と共同で電子商取引と電子政府を推進する GNU Privacy Projectを推進しており,国内製品の開発だけでなく 日本発のメールクライアントSylpheedのドイツ語版の配布も行なった. さらに外部業者に委託して 「初心者のためのGnuPP」「上級者のためのGnuPP」といった ドイツ語の手引書も制作・配布を行なっている [8]. この手引書はコミック風の挿絵つきで公開鍵暗号の仕組みや 電子証明書のfingerprintの確認方法, そして公開鍵サーバの世界的なネットワークといった 具体的な内容を扱っている.

参考文献

1
Ross J Anderson, Bruno Crispo, Jong-Hyeon Lee, Charalampos Manifavas, and Vaclav Matyas Jr. The Global Internet Trust Register 1999 edition. MIT Press, March 1999. ISBN 0-262-51105-3.

2
V. Alex Brennen. GnuPG Keysigning Party HOWTO. Online document. v1.0.8, 09 May 2003. http://www.cryptnet.net/fdp/crypto/gpg-party.html

3
Roger Dingledine, Michael J. Freedman, and David Molnar. ``Accountability'' Chapter 16 of Peer-to-Peer: Harnessing the Power of Disruptive Technologies. O'Reilly & Associates, March 2001.

4
Darxus@ChaosReigns.com. sig2dot GPG/PGP Keyring Graph Generator. Online document. http://www.chaosreigns.com/code/sig2dot/

5
Darxus@ChaosReigns.com. springgraph. Online document. http://www.chaosreigns.com/code/springgraph/

6
Graphing the Debian web of trust. Debianウィークリーニュース. 2000年09月19日. Software in the Public Interest, Inc. http://www.debian.org/News/weekly/2000/30/

7
Ueli Maurer. Modelling a Public-Key Infrastructure. In Procegings of 1996 European Symposium on Research in Computer Security (ESORICS' 96), Lecture Notes in Computer Science 1146, Springer-Verlag, 1996. pp. 325-350. Also available at http://www.crypto.ethz.ch/ maurer/publications.html.

8
The GNU Privacy Project: download.
Online document.
http://www.gnupp.com/download.html

9
Kevin W. Herron. Keysigning Party Guide. Online document. 2002. http://www.herrons.com/kb2nsx/keysign.html

10
Steven Levy. Crypto: How the Code Rebels Beat the Government, Saving Privacy in the Digital Age. Viking Penguin, January 2001. 邦訳は斉藤隆央訳『暗号化: プライバシーを救った反乱者たち』 紀伊國屋書店, 2002.

11
Bruce Schneier. Applied Cryptography: Protocols, Algorithms, and Source Code in C. John Wiley & Sons. 2nd edition, 1995. Also republished in Dr. Dobb's Essential Books on Cryptography and Security CD-ROM, Release 2, 2002. 邦訳は山形浩生監訳『暗号技術大全』ソフトバンクパブリッシング, 2003.

12
Software Design No. 142, 技術評論社, August 2002. pp. 136-141, 155-198.

13
M. Drew Streib. ``keyanalyze -- Analysis of a large OpenPGP ring'' Online document. http://dtype.org/keyanalyze/

14
University of Pennsylvania - Information Security. PGP Key Signing Party Procedures. Online document. 2002. http://www.upenn.edu/computing/security/keyparty.html

15
Len Sassaman. Efficient Group Key Signing Method. Online document. Revision 1.2, 2003. http://sion.quickie.net/keysigning.txt

16
Stephen Shankland. ``KDEに貢献する独政府の「Kroupware」プロジェクトとは?'' ZDNet News, http://www.zdnet.co.jp/news/0302/03/ne00_kde.html, 2003年2月3日. 英語原文は ``KDE Linux adds German flavor'', http://zdnet.com.com/2100-1104-982816.html, January 31, 2003.

17
山根, 村山. 「OpenPGPとPKI」 February 2002. http://www.openpksd.org/docs/report2001/PGP-001/PGP-001.pdf

18
Philip R. Zimmermann. The Official PGP User's Guide. MIT Press, 1995. ``How PGP Works'' and ``Why Do You Need PGP?'' sections are reprinted in Peter Ludlow, ed.,
High Noon on the Electronic Frontier: Conceptual Issues in Cyberspace. MIT Press, 1996. pp. 179-184.

19
石山元浩, 山本和彦. PGP に関する訳語表. http://pgp.iijlab.net/trans/ 1998-1999.
(参照したオンライン情報はすべて2003年2月23日時点のものである.)

本レポートはOpenPKSDプロジェクトの一環として作成された.
Copyright2003. Shinji Yamane and Yuko Murayama.
pgp-folks@comm.soft.iwate-pu.ac.jp

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