« エスプレッソ・マキネッタを買った | トップページ | 家電製品に無停電電源で失敗 »

2011年12月11日 (日)

UbuntuでWebDAVサーバーその7(自己署名証明書1)

世間では「自己署名証明書を使ったサイトは危険だ」と言われる。
とは言っても、認証局に正規の証明書を発行してもらうとお金がかかるし、それも定期的に有料で更新しないとならない。証明してもらうサイトの用途次第なのだが、場合によっては釣り合わない負担となる。
そうなるとやっぱり自己署名証明書になるが、自己署名証明書がどう危険なのか、どういう用途なら釣り合うのか、あるいは危険でなくする方法は無いか。
これらをこれから何回かかけて考えたい。今回は第1回である。

まず、電子証明書を使った「証明」とはどういう手順で行われるのか以下に簡単に確認しておく。詳細な解説は他にいくらでもあるので、ごく基本的な所だけ。


  1. 証明書を発行してもらいたい人は、認証局に自分のサイトのURLなどを知らせて証明書を発行してもらう。この証明書をサイトのサーバーに置く。

  2. サーバーに誰かがアクセスして来ると、その人(ブラウザ)に証明書が送られる。

  3. ブラウザは証明書の内容を検証して、正しければそのまま通信を続け、異常があればユーザーに警告を出す。

ブラウザが確認するポイントはいくつかあり、細かいところはブラウザによって違うかもしれないが、だいたい次の点を確認する。


  • 証明書が正しい認証局によって署名されているか。

  • 自分がアクセスしたURLと証明書に書いてあるサイトのURLが一致するか。


これらが違っていたらブラウザはユーザーに警告を出して、通信を続けるか聞いてくる。ユーザーが"OK"を選択するとそのまま通信できる。
ここで「正しい認証局」とは、その認証局(*1)の証明書がブラウザにインストールされているかどうかで判断する。ブラウザには出荷時からベリサインなどの大手認証局の証明書がインストールされていて、それらは「正しい認証局」である。
しかしいわゆる自己署名証明書は、自分が勝手に立てた認証局で署名しているのでその認証局の証明書が相手のブラウザに入っている訳がない。よって正しくない認証局となり、ブラウザが警告を出す。ただし、「正しくない認証局」であっても、その証明書を一度ブラウザにインストールすれば途端に「正しい認証局」となる。(*2)

上記の電子証明書のチェックはSSLの通信を始めるたびに毎回行われ、送られて来た証明書が正しくなければ毎回警告が出るが、証明書をブラウザにインストールすると二度と警告が出なくなる。
警告が減るのだから、これはセキュリティ的には弱くなる方向だ。
さらに、証明書が認証局の権限を持っていると、もっと重大な問題がある。その証明書を使って他のサイトの証明書も認証可能になるので、警告が出るべきサイトで警告が出なくなる。
これを悪用すると次のようなシナリオの事態が起こりうる。


  1. 悪意を持ったサイト運営者Aが、アクセスして来た人Bをだまして、Aの証明書をBのブラウザにインストールさせる。以後Bは、Aが立てた別のフィッシングサイトも正規のサイトと思い込んでしまう。ここで、このフィッシングサイトがAの証明書(自分でインストールした証明書)で認証されたのか、ベリサインなどの正規の認証局の証明書で認証されたのかは一々表示されないので、特に気をつけてみている人以外には分からない。

  2. 善意のサイト運営者Cが、アクセスして来たBの合意の上で証明書をブラウザにインストールさせる。ところがCの秘密鍵の管理がずさんで、悪意をもった第三者AがCの秘密鍵を手に入れてしまう。Aは、Cが作ったように偽造した証明書を作れるので、Aの立てたフィッシングサイトをBは正規のサイトと思い込んでしまう。

  3. 善意のサイト運営者Cが、アクセスして来たBの合意の上で証明書をブラウザにインストールさせる。ところが悪意をもった第三者Aが「中間者攻撃」を仕掛けられる状況であった。
    そのため、Cが送った証明書はBに届く前にAによってすり替えられ、Bは、Cが送った証明書と信じてブラウザにインストールしてしまう。後は、1の場合と同様である。

上記は、後者ほど実現が難しいが、あり得ないことではない。無線LANのアクセスポイントを公開している人が悪い気を起こすかもしれないし、どっかの国では国民を監視するために政府が組織的にやってるかもしれない。(*3)
また、私が思いつかないだけで、もっと簡単に悪用する手口があるかもしれない。

こう言った具合に自己署名証明書が悪用されることがある、と述べたところで続きは次回。

*1 またはその親認証局やさらに祖先の認証局

*2 「そんなことして良いのか」と思うかもしれないけれど、認証局を後から増やせないと困る人もいるのである。例えばそこそこ大きい企業なら社内ネットワークで電子証明書を使うことがあるが、その場合、認証局は社内だけに通用すれば良いので、会社独自の認証局を立てて、その証明書を社員のブラウザにインストールさせることをするのだ。

*3 そんな国を旅行して自分のパソコンで通信し、不用意に証明書をインストールしちゃった人は、帰ってからも爆弾を抱えたままになる。

« エスプレッソ・マキネッタを買った | トップページ | 家電製品に無停電電源で失敗 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: UbuntuでWebDAVサーバーその7(自己署名証明書1):

« エスプレッソ・マキネッタを買った | トップページ | 家電製品に無停電電源で失敗 »