このページの本文へ

Windows Serverで学ぶサーバOS入門 第23回

Windows Serverで証明書を扱うための基礎知識を学ぼう

証明機関と電子証明書とは?

2010年07月06日 09時00分更新

文● 横山哲也/グローバルナレッジネットワーク株式会社

  • この記事をはてなブックマークに追加
  • 本文印刷

電子証明書の原理

 公開鍵暗号システムには大きな問題がある。それは、公開されたアリスの鍵が、本当にアリスのものかわからないことだ。もしかしたら、チャーリーがアリスの名をかたっているのかもしれない。

 そこで、第三者が鍵の正当性を管理する機能が考案された。これが「証明機関(CA:Certificate Authority)」である。CAの動作は「印鑑証明」の仕組みと似ている。印鑑証明は、自分で用意した印鑑の印影を役所に提出し、公式なものとして登録してもらう。印鑑そのものを提出する必要はない。同様に、アリスは、自分で生成したキーペアのうち公開鍵のみをCAに提出する(ただしCAの構成によっては秘密鍵も提出する場合がある)。続いてCAは、アリスのための証明書を発行する。この証明書には「CAの公開鍵」「アリスの公開鍵」「CAの秘密鍵で暗号化されたアリスの公開鍵」が含まれる。アリスはCAの秘密鍵は知らないので、証明書の内容を変更することはできない。

 アリスは身元保証の必要があるときは、この証明書を相手に提出する。相手は証明書に含まれるCAの公開鍵を使って「CAの秘密鍵で暗号化されたアリス公開鍵」を復号する。復号した結果が証明書に含まれるアリスの公開鍵と等しければ、暗号化された公開鍵は間違いなくCAの秘密鍵で暗号化されたことがわかる。つまり、アリスはCAによって身元が保証されたと考えられる(図3)。

図3●証明機関(CA)の役割

 しかし、ここでもまだ問題がある。CAそのものの正当性が保証できないのだ。身元保証人は、信頼できるからこそ身元保証になるわけで、どこのだれかわからない人では保証人としては適切ではない。そこで親CA(上位CA)が考案された。これにはアリスの正当性をCAが保証するのと同じ仕組みを使う。具体的には、子CA(下位CA)は親CAが発行した証明書を持つことで、その正当性を保証する。

 現実の世界でも、こうした保証の連鎖の考え方はある。たとえば、運転免許証は法律に基づいた規則に従って発行されるため、日本全国で身分証明書として通用するが、実際の発行は都道府県単位である。つまり各都道府県で発行した運転免許証は、上位組織である日本国の証明によって信頼性が保証されていると考えられる。

 必要であれば、親CAはその親CA(祖父母CA)に保証してもらうことができる。しかし、最上位のCA(ルートCA)は誰からも保証してもらえない。実は、ルートCAは自分で自分を証明しているだけで、信頼性の根拠はまったくない。そこで、ルートCAは何らかの社会的な信用を必要とする。

 たとえば、WindowsはいくつかのルートCAを最初から信頼している。Internet Explorer(IE)で「インターネットオプション」を表示し、「コンテンツ」タブから「証明書」ボタンをクリックし、「信頼されたルート証明機関」タブを開けば信頼している証明機関を確認できる(画面1)。これは「マイクロソフトが信頼するルートCA」と考えてもよい。

画面1● IE 6.0が信頼するCA

 クレジットカード番号など、重要なデータを扱うWebサイトはたいてい「https:」で始まるURLを使い、暗号化を行なっている。この技術を「SSL(Secure Sockets Layer)」という。SSLは暗号化と同時に、サーバの身元を保証するために電子証明書を使う。このような場合、社会的に信頼できるCAが発行した証明書でないと危なくて仕方がない(前ページコラム参照)。しかし、社内や関連企業内で使うのであれば、自前のCAで十分である。その会社の社員は、自社のシステムを十分信頼しているはずだ。この自前のCAを「プライベートCA」と呼ぶ。Windows Serverが作るCAは、基本的にはプライベートCAだ。

(次ページ、「電子証明書と信頼性」に続く)


 

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード