7ème Gnossienne » GPKI のセキュリティ

7ème Gnossienne

dynamis' blog

GPKI のセキュリティ

Categories: opinion  —  2006/7/15   by dynamis

先日 Firefox にサイト証明書をインポート(ダウンロード)する警告ダイアログをチェックするために、テスト用サンプルの自己証明書(俗に言う「オレオレ証明書」)を検索したら外務省のものが見つかりました。それで気づいたんですが、外務省による自己証明書の配付方法は、論外ではないものの、思いっきり問題ありじゃないですか?

外務省の自己証明書ダウンロードサイトでは証明書を受け入れるときに行うべき証明書の確認手順 (3) で次のように書いてあります:

正しいフィンガープリントは、官報(平成15年4月1日付)に加え、外務省ホームページ(日本語)及び電子政府総合窓口のホームページに掲載されていますので、40桁の文字列が全て一致することを確認してください。

うんうん。自己証明書はそれが本物であることを確認するためには、別途安全な経路で入手したフィンガープリントと証明書に付記されているフィンガープリントとを比較することが必要ですからね。説明画面のスクリーンショットからはちゃんとフィンガープリントが削除されているし、官報でフィンガープリントを確認すれば安全ですね。うんうん。

と思って最初はさらっと流してしまったのですが、続けて外務省ホームページ電子政府総合窓口のホームページに掲載していると書いてますね。ふと気になって確認してみたら、次の非セキュアなページにフィンガープリントが掲載されていました。

オイオイオイオイオイオイオイ。それはちょっとまずいでしょ。これらのページが本物であるって事は誰がどうやって確認するんですか?証明書配布サーバとフィンガープリント掲載サーバとをクラック(あるいは DNS Spoofing とか)して、自己証明書とフィンガープリントページだけを置き換えてあげれば、ユーザは完全にだまされてしまうではないですか。

これでは何のためにフィンガープリントを確認させているのか分かりませんね。フィンガープリントは自己証明書の入手経路とは異なる、別途安全な経路から入手するからこそ意味があるものであり、非セキュアなサーバにフィンガープリントを掲載しては意味がありません。

しかもこれ、どうやら外務省だけではなく GPKI (政府認証基盤)の一部として行われているもので、他の省庁についても同じっぽいです。更に GPKI は LGPKI (地方公共団体組織認証基盤)と連携している様子。文字通り認証システムの基盤でありセキュリティの要である、GPKI/LGPKI 認証局証明書の話なんです。

つまり、GPKI 関連のサーバにあるファイルを 2 つ書き換えれば、官公庁組織のコンピュータに偽のサイト証明書を導入させることができるということです。後は適当に証明書によって得られる特権を行使すれば、データを盗むなりなんなり好きにできるわけです。

じゃぁ、どうすれば良かったのかというと、簡単です。政府機関の認証局証明書をブラウザにデフォルトで含めてもらえばいいだけです(個人的にはこんな運用する組織の証明書含めて欲しくないですが)。諸般の事情でそれができないなら、せめて Web 上の非セキュアなサーバ上で公開するのは止めてください。官報などオフラインのみでフィンガープリントを知らせるか、別途セキュアな通信を用いて知らせてください。あるいは単に(そもそも GPKI の認証局をルートになどせずに) VeriSing とかに署名してもらってください。何でそれくらいのことができないんですか?

あまりこういった話題を取り上げるのはどうかと思ったのだけど、無関係な個人や企業が対象の話ではなく、一国民として心配するのは当然じゃないかと思うので。もし単に私の誤解だったなら指摘してください。喜んで謝罪訂正し、安心させていただきます。(^^;

9 Comments

Comment by Kazabana

2006/7/15

GPKIの似たような話は以前産総研の高木氏が指摘していたような気がします(何時の記事なのかは失念)。

高木浩光@自宅の日記
http://takagi-hiromitsu.jp/diary/

外務省に直接言うのだと放置されそうな雰囲気ですから、国会議員などに働きかけてもらうのも一つの手かもしれません。

自民党の河野太郎議員あたりは外務省関係のお仕事もされているようですので、それなりに聞いてもらえるかもしれません。

衆議院議員 河野太郎発行メルマガ「ごまめの歯ぎしり」ブログ版
http://www.taro.org/blog/

Comment by dynamis

2006/7/17

kazabana さんコメントどうもです。

高木さんの日記はセキュリティ関係の用語をチェックしているときなどに見かけて、何度か楽しく拝読させてもらっています。
認証局証明書をインポートさせる行為に対して、私が半ば反射的に否定したくなるのは、高木さんの影響もあるのかもしれません。(^^;

既に指摘されているということで高木さんの日記を「GPKI」で検索したところ、まさしくこれという論文が見つかりました。
http://securit.gtrc.aist.go.jp/
http://securit.gtrc.aist.go.jp/research/paper/css2002-takagi-dist.pdf
非常に良くまとまっているので、興味のある方は是非ご一読ください。

私自身どうせ既知の問題なのだろうと思いつつ書いたのですが、2002年の時点で既に的確に指摘されていたようですね。それが未だ放置とは困ったものです。
# 取りあえず私は誤解してないっぽいのでそこは一安心。(^^;

Comment by tes

2006/7/19

> あるいは単に VeriSing とかに署名してもらってください。何でそれくらいのことができないんですか?
VeriSing→VeriSignかな?
ともかく、この文脈だと「GPKIの認証局公開鍵にVeriSignから署名してもらう」って読めるのですが、それって結構無茶ですよね?VeriSignのサービスがどうなってるか調べずに書いちゃいますが、何と言ってもVeriSignは他人に署名してなんぼですから、その権限をGPKIが与えられるなら相応の対価と(ブラウザにデフォルトで含めてもらう時以上の)監査を受けることが必要なんじゃないかと想像します。

Comment by dynamis

2006/8/16

一ヶ月放置状態でごめんなさい。
「サーバの証明書に VeriSign などから署名してもらう」または「GPKI の認証局証明書(公開鍵)に VeriSign などから署名してもらう」のいずれであっても PKI のシステム的にはセキュリティが確保されると認識しています。
# Web をブラウザで閲覧するという用途が前提
後者についてはもちろん、GPKI の性質上その認証局がルート認証局であるべきだろうという考えもあるので、認証局証明書に署名をしてもらう(ルートでない認証局になる)というのは望ましくないですが、何もしないよりはましだと思います。

tes さんのおっしゃる「結構無茶ですよね?」というのがどういうことか(VeriSign の監査をパスするのが無茶なのか、VeriSign に GPKI の監査をさせることが無茶なのか、GPKI 認証局が VeriSign と同様の権限を与えられることが無茶なのか)はっきり分からなかったのですが、「他人に署名する権限」というのはブラウザに認証局証明書を含められたすべての認証局が有します。ブラウザのデフォルトに含められる以上に厳しい監査が必要である場面はありません(VeriSign などの監査をパスするより厳しいハズ)。VeriSign などが GPKI の認証局を証明するのが良くないというのは、認証局はできる限り上位(できればルート)である方が良いという意味ではその通りです(上述)。GPKI が他のサーバや個人を認証する権限が与えられることについては、まさにそれを十分なセキュリティを確保せずにユーザに行わせようとしているのが現状の GPKI です。

Comment by tes

2006/8/29

返答ありがとうございます。
どちらの監査が厳しいかは深く考えず書いてしまいました。VeriSignが他に認証局証明書を発行した場合、そこが不祥事を起こせばVeriSignの責任問題になると思い、より厳しい監査が必要だと書いたのですが、IEの信頼されたルート証明機関にGPKIの認証局証明書を含めてもらう場合であっても、GPKIで不祥事が起きればそれを含めていたMicrosoftの責任問題になると考えれば、あとは企業の思惑次第ということになる…のでしょうか。IEにデフォルトで入れてもらうためにMicrosoftにいわゆる上納金を払う必要があるのかは調べてません。

もともと何が言いたかったのかというと、dynamisさんは対策として3つ挙げられていますが、3番目の案(GPKIの認証局公開鍵にVeriSignから署名してもらう)が2番目(フィンガープリントをセキュアな通信で知らせる)と同列に、同じように簡単であるかのように書かれているので「ん?」と思ったのです。1番目(ブラウザにデフォルトで含める)については「せめて」という言葉でつないでいるので2,3より1が難易度が高いというのは想像できます。私の「無茶」という書き方が悪かったかもしれません。私には2より3が(1と同程度に)難しいと思えるのですが、いかがでしょうか。そして3(1も)は「簡単です」「せめて」「単に」「それくらいのこと」というほど簡単ではない、つまりVeriSignからサーバ証明書を買う程度のコストでは済まないと思っているのですが、違うでしょうか。

長々と付き合っていただきすみません。今度書き込むときはちゃんと調べてからにします。

ところで、私は2番目の案には大賛成です。もしくはサーバ証明書にはGPKIでなくVeriSignとかのものを使ってほしいです。今GPKIのフィンガープリント一覧のリンクをたどって確認したら、文部科学省と厚生労働省はHTTPSのページにも掲載しているみたいですね。もちろん非セキュアなサーバ上で公開している限り不完全ですが。

よく見たら、金融庁の場合はPDFの電子署名機能を使ってますね。ちゃんと非セキュアなところには掲載しないようにしているっぽいし、いい感じです。ただし、手元のAdobe Reader 7.0.8では「署名者のIDが不明です」になっちゃいます。要はAdobe Readerには入っていない認証局の証明書なんです。IEには含まれるものなのでAdobe Readerで「Windows証明書ストアからの証明書の取り込みと使用を有効にする」を有効にすれば正しく確認できるんですが。んー、おしい。

Comment by dynamis

2006/8/29

私が、「あるいは単に」と書いたのは「そもそも GPKI の認証局をルートになどせずに」という意図で、実現が簡単だという意図ではありませんでした。
実現難易度については、TES さんに付けてもらった番号で書けば、多分 1,3,2 の順番だろうと認識しています。ちなみにデフォルトのルート証明書に入れてもらうのは無償で、詳細はMicrosoft ルート証明書プログラムとして公開されています。このあたりは私も Microsoft を信用しています(信用しなけりゃ PKI なんて使えない(^^;)。

前回のコメントで書いたように VeriSign とかによる署名にも「サーバの証明書に直接 VeriSign などから署名してもらう (GPKI は使わない)」場合と「GPKI の認証局証明書(公開鍵)に VeriSign などから署名してもらう」場合があり、厳密に書いてたらきりがないとざっくり書いたのですが、誤解を招いてしまったようです。ごめんなさい。

金融庁は確かに惜しいですね。
ただ、そもそも公文書への署名では金融庁の CA に VeriSign から署名してもらっているのに、何故サーバ証明書ではそうしないんだって素朴な疑問が沸いてきますが…(-_-#)

Comment by tes

2006/8/31

ちょっと訂正させてください。うっかり読み飛ばしてましたがPDFのリンクがあるページに電子署名の確認のための事前準備がちゃんと書いてあります。これに沿って操作した利用者にはちゃんと正しく有効な署名であると表示されることでしょう。
この準備操作の意味を理解せずに実行しちゃうような人には
「非セキュアなページにフィンガープリント」並に無意味(その準備操作自体の正しさを保証するものがないため)ですし余計複雑にしただけでメリットがないようにも見えますが、金融庁の試みはPKIの啓蒙という意味で面白い試みだと思います。

> 金融庁の CA に VeriSign から署名してもらっているのに、

おお!と思って見てみましたが、CNにFSA Network System CAという名前はあるものの、実態はVeriSignにアウトソースしているという可能性もあると思います。その場合、CAとしての柔軟性はなくなりますが、CAに署名してもらうオプションがあるので件のような運用が可能です。自前CAありきのGPKIとはハードルの高さも違うかも。
いずれにしろその後に続く、サーバ証明書もその方式にしろという指摘は、ごもっとも。

また「CAに署名」に反応してしまいました。分かって書いていらっしゃるのかもしれませんが、補足ということで。

Comment by tes

2006/9/28

お!
http://www.microsoft.com/japan/presspass/detail.aspx?newsid=2821
政治力によって1で解決したようです。
添付資料にどのようにインストールされるか書いてあり、XPの場合はGPKIの証明書を使用するサイトにアクセスしたときに自動的にインストールされるようです。
が、手元では金融庁のサイト(shinsei1.fsa.go.jp)にアクセスしてもあいかわらずダメです...

Comment by tes

2006/9/29

すみません、上記の検証は間違いです。
詳しく読んでみるとまだ総務省認証局とLGPKIアプリケーション認証局にしか対応していないようですね。自動インストール時のアクセスがHTTPなので危険なのでは?という指摘もあるようですが、もうこれ以上深入りしないことにします...

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.