Subject: ICAT.OR.JP上でのPGP Public Key Server. Author: 鈴木裕信 SUZUKI HIRONOBU Title: ソフトウェア・コンサルタント E-Mail: hironobu@h2np.suginami.tokyo.jp Date: 1997/Mar/31 1 はじめに 本文は96年7月9日よりICAT.OR.JP上で稼働しているPGP Public Key Serverの 報告書である。 1.1 PGPとは PGPはPhilip Zimmermann が作成した暗号化/電子署名が行える汎用の暗号ツー ルである。暗号機能として、公開鍵暗号、慣用暗号の両方の機能を用意してい る。 PGPは、インターネット上で安全な情報交換を行うツールとして用いられ、事 実上の標準になっている。 現在は、ネットワークアソシエイツ社(旧PGP Inc. 社)から商用の製品として出荷されていると共に、フリーソフトウェアとして MITが保守を行っている米国版と、同様にフリーソフトウェアとしてヨーロッ パのボランティアグループが作成/保守している国際バージョンの3つが存在 している。 現在はPGPの仕様をRFC化するためIETFの分科会で活動が行なわれている。そこ では、OpenPGPと呼ばれる名称に変更され細かい仕様の規格化作業が行なわれ ている。OpenPGPがRFCとして仕様が決まればさらにインプリメンターが増える ことと思われる。 1.2 PGP Public Key Serverとは PGP Public Key Server ( 以降 公開鍵サーバとよぶ )とは、PGPの公開鍵を ユーザ間で交換するためのサーバーである。 公開鍵サーバはユーザが公開鍵を交換する中継点として利用することを目的 としており、その公開鍵が本当に正しい公開鍵なのかを保証しているわけでは ない。公開鍵をプールしているだけである。 公開鍵サーバは、世界各地でボランティアによって運営されている。現在 20~30サイト程度と考えられる。公開鍵サーバは、同期メカニズムを持ってお り世界各地に散らばる公開鍵サーバは、各々が同期している。従って、ユーザ は世界中のどこかの公開鍵サーバに登録されれば、自動的に世界中のすべての 公開鍵サーバに反映される。 1.3 登録者数と鍵ファイルサイズ ICAT.OR.JP上の公開鍵サーバは、97年12月26日において約55000個公開鍵が登 録されている。鍵のファイルサイズは、27MBである。毎日、数十〜数百の新た な登録(他の公開鍵サーバからの同期も含む)が行われていた。 (注)1997年12月28日時点でのMITの公開鍵サーバ (pksd-0.9.2使用) に登録されている公開鍵は24万件、ファイルサイズ140MByteであった。 1.4 現状のステータス PGPのバージョンがpgp263からpgp5.0にアップデートされるにつれ、各国の公 開鍵サーバが、以前のPerlベースのプログラムからpksd-0.9.2に変更された (1997年の10月頃)。 ICAT.OR.JPでは、1997年12月中旬にアップデートを試みた。しかし、MITで作 成されたpksd-0.9.2は、ICAT.OR.JP ( SunOS 4.2.x )ではうまく動作しなかっ た。他の公開鍵サーバの多くはLinuxを使用している。動作環境が違うため、 他のマシンで安定して動いていても、そのノウハウが現状の動作環境には生か せなかった。 ICAT.OR.JPホストにおいては公開鍵サーバはオプションのサービスであり、 PKSD-0.9.2へホストが特化することは無理である前提がある。努力はしたが、 動作が不安定なまま現在に至る。 現状では、すぐに公開鍵サーバがダウンしてしまう。PKSD-0.9.2がダウンし た場合、コンソールから復旧のためのオペレーションが必要である。復旧の努 力は行なっているが、サービス中止の状態になっている場合が殆どである。ま た、サーバが不安定なため各国とのリンクは、各サーバ管理者と相談の上、中 止している(3.7章参照のこと)。 2. ICATでの実験の意義 ICAT.OR.JP上の公開鍵サーバのように、大規模でかつアクティブに使われて いるサーバを運用する経験によって、今後CAを運用する際にどのような問題点 が浮上するかのシミュレーションが行なえることができた。今までの公開鍵サー バ運用では例えば次のような具体的な問題が上がっている。 ・ 秘密鍵の入っているディスクがクラッシュしたので登録を削除したい。た だし、既に秘密鍵は手元にはないので、サーバー管理者の手によって削除して 欲しい。 ・ 登録者が既に死んだので登録を削除したいが、秘密鍵を復号するパスフレー ズは本人しか知らないので、サーバー管理者の手によって削除して欲しい。 ・ 他人の名前をかたって公開鍵を登録している。 例えば、『他人の名前をかたって公開鍵を登録している』という問題では、 次のような具体的な例が挙げられる。 ------------ Type Bits/KeyID Date User ID pub 768/9F57ED71 1996/09/27 George Washington pub 384/DE09D78D 1980/01/01 Albert Gore pub 384/23BDC6F9 1980/01/01 William J. Clinton ------------ 現在、米国政府は公開鍵暗号の輸出規制として鍵長512bit以下を取り扱うシ ステムのみ輸出を許しているが、それをジョークにしたものであろう(現在で は、鍵長が384ビットでは役に立たないとされ、このような鍵は実際には誰も 使ってはいない)。尚、既に、このエントリーは、ICAT.OR.JP上からは削除し ている。 公開鍵サーバを運用することによって、今後も新たな問題やニーズが発生し、 その問題を解決してゆく過程で色々なノウハウが得られると考えられる。 3. 運用形態 3.1 ICAT.OR.JPまでの歴史 日本国内の公開鍵サーバは、1994年4月11日から一般に公開されている。この 日付は、MITの公開鍵サーバのボランティア管理者に同期を願い出て、実際に 連動し始めた日である。 pgp-public-keys@ext221.sra.co.jp Hironobu Suzuki FTP: None Verified: 11-Apr-94 その後、運用者(筆者)が、1996年7月7日付でSRA.CO.JPを離れることにより、 そのタイミングで、ICAT.OR.JPに移動させた。 1997年12月中旬にサーバのソフトウェアをPKSD-0.9.2に入れ換えた。しかし、 ICAT.OR.JPのマシン環境とうまく合致せず、不安定なまま現在に至る。現在で サーバーダウンの場合がほどんどであり、サービスが中断されたままになって しまっている。 3.2 サービス形態 現状では、利用者がメールで各種リクエストをpgp-public-keys@icat.or.jpに 送る。処理後、メールで利用者に返信する形態を取っている[資料A]。 また、1997年春にWebページ経由での登録/検索を可能とした。 * http://www.icat.or.jp/pgp/index.html 他のWebページ経由での登録/検索のURLに以下のものがある。 * http://www.pgp.net/pgpnet/www-key.html * http://martigny.ai.mit.edu/~bal/pks-toplev.html 3.3 ICAT.OR.JPの同期 公開鍵サーバの同期は、新たに登録された鍵のデータを同期先にバッチでメー ルにし送ることによって実現されている。処理のための資源は、1つのバッチ 処理に1鍵が含まれているとして、登録に約150秒程度必要である。1つのバッ チ処理に複数の鍵が含まれている場合、2個目以降の処理速度は30〜40パーセ ント向上する。鍵の転送、つまり鍵の取り出しは、1個あたり数秒である。 96年7月時点では、SRA.CO.JPの運用時と同じく、ICAT.OR.JPも、オックスフォー ド大学にあるpgp-public-keys@pgp.ox.ac.ukとマサチューセッツ工科大学にあ るpgp-public-keys@pgp.ai.mit.eduの公開鍵サーバと連動を取っていた。 その後、オックスフォード大のサーバーは負荷が高く、できれば切り離した い旨のオファーを受けて、96年8月以降から97年4月まで、ICAT.OR.JP側からオッ クスフォード大のサーバへは同期を行なっていなかった。その後、97年4月か らオックスフォード大のサーバとの同期を再開していた。 96年8月中旬から、大阪大学にあるchem.sci.osaka-u.ac.jpでサーバが立ち上 がったため、ICAT.OR.JPから同期していた。 かつて、ICAT.OR.JPと同期を行なっている公開鍵サーバは以下の通り。 ICAT.OR.JPと双方同期していたサイト pgp-public-keys@pgp.ai.mit.edu pgp-public-keys@chem.sci.osaka-u.ac.jp ICAT.OR.JPに同期データを送っていた相手先 pgp-public-keys@foo.oucs.ox.ac.uk pgp-public-keys@Pgp.Stupi.SE 3.4 同期の中止 1997年12月中旬にpksd-0.9.2へアップデートしたが、うまく動作せず、1998年 1月中旬から、オックスフォード大学、MITのPGPサーバの管理者と相談の上、 同期リンクを中止した。大阪大学理学部のPGPサーバ管理者とは連絡が取れな かったが同期を中止した(現在もメールでの連絡が取れない状態である)。 3.5 処理したリクエスト内訳 96年7月9日から97年3月17日13:28の間にICAT.OR.JPで処理したリクエスト内 訳は以下の通りであった。尚、97年4月以降は、Webページからのアクセスを可 能し、そちらからのアクセスが主流になったが、アクセスログを取る機能を入 れていなかったため、正しいアクセス記録が存在しない(*4)。 鍵の検索/取得 201 鍵の複数指定取得 167 鍵の日限定取得(*1) 17 鍵の全取得 4 鍵の登録 146 鍵の同期(*2) 32586 鍵の一覧 29 鍵の一覧(詳細) 5 ヘルプ 341 国内登録者(*3) 537 (*1)過去何日間に新たに登録された鍵という具合に日を指定できる。 (*2)各地の公開鍵サーバから送られてきたすべてのインクリメント・リクエスト。 (*3)ユーザIDにメールアドレスを登録している者で、そのアドレスが.jpとなっ ているもの。具体的にはpgp -kv '.jp>' と行なって検索できた結果。 (*4) これは、わざとに入れなかったのではなく、筆者が記録する機能を入れ 忘れていたためである。 3.6 運用上の事故 ICAT.OR.JPは、96年10月の中旬ぐらいから97年1月17日まで処理を停止してい た。これは、筆者がメンテナンス作業中、サーバを一時的にストップさせてお いたのを忘れて、そのままにして帰ってしまったためである。 96年12月下旬にメールで、利用者から「ヘルプが届かないが、どのように行な えばよいのか」という質問があって初めて気がついた。年末年始であったため 時間が取れず、実際に復旧作業に着手したのが97年1月17日午後であった。 この期間中に約8000のリクエストがバックログとなり、この処理を徐々に解 消するために、2月10日前後までかかった。一度に連続して処理を行なうと最 新のリクエストが後回しになるので、一日平均500のバックログを処理できる ようにバッチプログラムを作成し、処理を行なった。 現在は、一日に一回、動作状況のレポートをメールで筆者の元に送るように しているので、公開鍵サーバの停止といったような状況はわかるようになっている。 3.7 公開鍵サーバ停止の理由 PGPがpgp263からpgp5.0にバージョンアップした時点で、暗号アルゴリズムの パリエーションが増えた。pgp263では電子署名と公開鍵暗号にRSA、慣用暗号 にIDEAを使用していた。pgp5.0以降では、電子署名にDSS、公開鍵暗号にDH、 慣用暗号にCAST、Triple-DESが追加された。pgp5.0ではデフォルトが、DSS、 DH、CASTの組み合わせに変更された。そのためpgp5.0(以降のバージョン)に 対応し、かつ高速に鍵データベースを管理するための機能を組み込んだ新しい 鍵サーバが作成された。作者はMITの Marc Horowitz氏である。 他の多くのサーバでは、ある程度安定して動作しているがICAT.OR.JPのマシン では、非常に不安定である。特にメモリーのリークによるセグメンテーション フォルトをすぐに発生してしまう。他のサイトの多くはLinuxかFreeBSDであり、 そこではこの問題は発生していない。ICAT.OR.JPマシン(SunOS 4.2.x)上での デバッグを行なってみたが、十分な時間が取れず、修正は出来なかった。ちな みに、Linux上で同じ条件のテストを行なったが、メモリーリークでのセグメ ンテーションフォルトの問題は発生しなかった。この確認及びデバッグ作業は、 1997年12月中旬から1998年1月中旬まで続いた。 4. PGP公開鍵サーバ運用に関しての評価 1)サーバメンテナンスに非常に手間がかかる。 これは、新しい実験/開発と同時に運用が動いていたからでも ある。世界中にリンクを張った公開鍵サーバというのはPGPの 公開鍵サーバしかない。新しいツールやサーバのインストール、 あるいは既存のサーバのバグ等を修正を頻繁に行なう必要が あった。 2)ユーザからのリクエストに対応できない 「自分の公開鍵を公開鍵サーバに登録したが秘密鍵を紛失した。 したがって鍵を削除して欲しい。」という要求が何通か発生した。 しかし、これに対応して基本的には削除を行なわなかった。理由は、 本当に鍵を登録した本人かどうかを確認するすべがないからである。 (注)連絡はすべて電子メール経由で行なっている。 3)偽造の(なりすまし)鍵が登録された アメリカ大統領、副大統領の名前で公開鍵が登録されていた(2章参照)。 これは、偽造(なりすまし)であることが明確にわかる形で登録 されている。しかし、完全に相手をだますことを目的に登録された 公開鍵も存在する危険性があることは否定できない。 4)登録される公開鍵が多すぎサーバが処理できない 新しい公開鍵サーバpksdへの更新は出来なかったが、もし、更新 した場合、次に問題となるのが、MITにある鍵サーバとのシンクロ である。現在、まだ新しいバージョンでシンクロしていないため 正しいデータを取ることはできないが、MITから送付されるデータ量 が多すぎてパンクする可能性が強い。 === 以上