企業のためのPKI導入ガイド – PKIとは何か

公開鍵暗号やデジタル署名サービスを提供するのに必要とされる総合システムをPKI(公開鍵インフラ)といいます。PKIの目的は、鍵と証明書の管理です。これらの機能を管理することにより、企業は信頼性の高いネットワーク環境の構築、維持をすることができます。PKIを導入すれば、さまざまなアプリケーション上で、暗号やデジタル署名サービスを利用することができます。効果的なPKI構築におけるビジネス要求は数多くあります。

第一にアプリケーションにおいて、暗号化やデジタル署名ができなけば、PKIの価値はありません。PKIにおいて最も大切なことは、暗号やデジタル署名サービスを利用するのにPKIが、鍵や証明書をどのようにして管理しているかをユーザーが理解する必要がなく利用できるという“使いやすさ”です。企業にとって効果的なPKIとは、企業にとって“使いやすい”ものでなければなりません。ユーザーにとって使いやすいことに加え、PKIにおいて、必要とされる鍵や証明書管理サービスを提供するために、企業は下記の項目を設定する必要があります。

  • 公開鍵証明書
  • 証明書のリポジトリ
  • 証明書の取消し
  • キーのバックアップと復元
  • デジタル署名の否認防止機能サポート
  • キーペアと証明書の自動更新
  • キー履歴の管理
  • 相互認証のサポート
  • クライアント側のソフトウェアと上記にあるすべての項目が安全で、一貫性のある信頼性の高い手法で互換性をもっていること

注釈:ここでは“クライアント側”という言葉は、アプリケーション・クライアントとアプリケーション・サーバーを意味しています。PKIで必要となるのは、この両方のアプリケーションで、双方ともインフラストラクチャ・サービスの“クライアント”と表記されています。これ以降では、上記にあげられたそれぞれの要求について定義しており、これらのすべては、信頼できる環境の構築、維持をするために企業のPKI構築に見合うものでなければなりません。また、それらの要求は、すべて自動的に処理されユーザーにとって分かりやすくあるべきです。

証明書と認証局

公開鍵暗号の価値は、やり取りを行なっている相手が“安全”であるかどうか、すなわち、その相手の身元とキーが確実で、信頼できるものであるかどうかを実証できるということです。それを証明するためには、PKIの全ユーザーが、登録済の身分証明書を携帯する必要があります。これらの身分証明は、公開鍵証明として知られているデジタルフォーマットに記載されます。

認証局(CA)とはユーザー名を公開鍵に安全にバインドするデジタル証明書の発行作業(作業担当者、作業工程、作業ツール)を当事者に代わって行なう機関です。PKIにおいて、証明書を発行するとき、認証局は信用できるエージェントの役割りを果たします。証明書を発行、管理するためのビジネス・ポリシと認証局が信用できるものである限り、その認証局が発行する証明書を信頼することができます。これが、第三者認証機関とよばれるものです。

第三者認証機関についての詳細は、Entrust 社のWhite Paperにある「The Concept of Trust in Network Security」を参照して下さい。この文書は、Entrust 社のWebサイトに掲載されています。
http://www.entrust.com/library.htm 

認証局は下記の情報を含んだデジタル署名で、ユーザーに証明書を発行します。

  • 識別名(Distinguished Name)フォーマットにあるユーザー名
    識別名(DN)は、ユーザー名やその追加属性一つ一つに独自の名前をもっており、いわば社員番号のような役割りを果たす
  • ユーザーの公開鍵
    公開鍵が要求されるので他の人間が、そのユーザーのデータを暗号化したり、デジタル署名を確認することができる
  • 証明書の有効期限日の期間(利用開始日と利用期限最終日)
  • 公開鍵が利用される特別な作業(暗号データあるいは、デジタル署名の確認、または、その両方)

証明書についている認証局の署名により、証明書の内容が改ざんされていないかどうかを即座に発見することができます。(証明書に付いている認証局の署名は、改ざん発見器のようなもので、証明書の内容におけるいかなる改ざんも簡単に発見することが可能です。)この署名の確実性が保証される限り、その証明書は信頼できるということになります。ユーザーは証明書から公開鍵を回収することで、その公開鍵が確実であることが確認できます。識別名(DN)で特定された企業に付随した形で、ユーザーがその証明書と、それにかかわった公開鍵を信頼することができます。また、ユーザーは、その公開鍵がきちんと認証局を通して、安全に利用されたかどうかを確認することができます。

鍵のバックアップと復元

例え、ユーザーが復号キーを紛失しても、企業は暗号化データを取り戻さなければなりません。これは、ユーザーが所属する企業が、復号キーのバックアップと復元をシステムが必要であることを意味します。なぜ、鍵のバックアップと復元が必要なのでしょうか。それには、非常に重要な2つの理由があります。

第一の理由として、ユーザーはパスワードを忘れるということです。もし、ユーザーが、復号キーにアクセスするために必要なパスワードを忘れてしまったら、企業はデータ損失という大損害を被ります。また、鍵を安全に復元することができなければ、極めて価値のある情報も永久に消失してしまうことになります。さらに、暗号化されたデータ(例え、パスワードを忘れてしまったとしても)は、いつでも復号できるということをユーザーが知らなければ、仮にその情報が最も保守されるべきものであっても、データを損失してしまうのではないか、という恐れから、非常に重要で機密性の高い情報を暗号化しないユーザーさえでてくることでしょう。

第二のの理由として、ユーザーは復号キーが保管されている機器を損失、故障させる可能性があるということです。ユーザーの復号キーが磁気カードに記録されれば、そのカードの磁気部分が破損して使えなくなってしまったり、これらの復号キーを完全に喪失してしまえば、再び壊滅的な被害が及びます。ユーザーは復号キーがバックアップされるまで、暗号化データが復号化されないようにする必要があります。

どの鍵をバックアップするのか

冒頭において、キーペアの異なる機能について説明しました。一組のキーペアはデータの暗号化/復号化に利用されるので、“暗号キーペア”と呼ばれています。また、もう一組のキーペアはデータにデジタル署名をしたり、署名が正しいものかどうかを確認するのに使われるので、“署名キーペア”と呼ばれています。署名キーペアのバックアップや復元については、ここでは述べていません。バックアップが必要となる唯一のキーがユーザーの復号キーとなります。認証局といった信用できる機関が、ユーザーの復号キーを確実にバックアップする限り、その安全性は保証され、ユーザーのデータは常に復元することができます。しかし、署名キーは復号キーと異なる要求をします。

否認防止

ある個人が、あるやり取りにかかわったことを否定するとき、否認機能が働きます。例えば、ある人のクレジットカードが盗まれた場合、その人が盗難届けを出せば、仮にそのカードを使おうとしても、それは信頼性を欠くものであるため使用できない、というのがそれです。「否認防止」とは、ある人が、あるやり取りに加わっていた、という事実を否定できないようにするという意味です。紙ベースの世界では、個人の署名が、それらの取引き(クレジットカードの支払いや業務商談)とのかかわり合いを法的に結び付けるものですが、コンピュータの世界では、手書きの署名に代わって、デジタル署名が使われています。あらゆる分野の電子商取引では、デジタル署名が必要とされており、電子商取引の世界において、従来の手書きの署名はすでに時代遅れといえます。

署名用秘密キー

否認防止におけるもっとも基本的な要求は、全ユーザーを一度に管理する方法で、デジタル署名を行なうのに使われた鍵、すなわち、“署名キー”を生成し、安全に記載することです。しかし、署名キーのバックアップをすることはできません。暗号キーペアと異なり、ユーザーがパスワードを忘れたり、紛失したり、破損したり、あるいは署名キーを破壊してしまった場合は、以前、使っていた署名キーペアをバックアップ、復元するための技術上または業務上の要求がありません。このような場合、ユーザーが新しい署名キーペアを生成して、引き続きそのキーを使用することができます。

2つのキーペアの必要性

鍵のバックアップと復元、そして否認防止を同時に行うのは難しいことです。鍵のバックアップと復元を行うためには、復号キーが確実にバックアップされなければなりません。否認防止を行なうためには、デジタル署名に使われた鍵はバックアップできないので、一度に全ユーザーを管理する必要があります。これらの要求に応えるためにPKIは、それぞれ2つキーペアをサポートします。いかなる場合においてもユーザーは、最新の暗号化/復号化用のキーペアを保持し、デジタル署名や署名確認用として、2番目のキーペアを保持する必要があります。今後、ユーザーは常時、適切に管理された大量のキーペアを所有することになるでしょう。

鍵の更新とキー履歴の管理

暗号キーペアは永久に利用されるべきものではありません。常時更新される必要があります。この点を踏まえて、企業が知っておかなければならない2つの重要なポイントがあります。

  • ユーザーのキーペアの更新
  • 過去のキーペア履歴の適切な管理

ユーザーのキーペアの更新

キーペアの更新方法は、ユーザーにとって使いやすいものでなければなりません。つまり、ユーザーが鍵の更新方法を理解する必要性がないということに加え、それらの鍵はもはや有効でないという理由から、サービスを拒否されるようなことがないということです。“使いやすい”ということを実感し、常時サービスが受けられる状態であるためには、有効期限が切れる前にユーザーのキーペアが自動的に更新される必要があります。

キーペアの履歴管理

暗号キーペアが更新された場合、過去の復号キー履歴は保管されなければなりません。この“キー履歴”は、過去の復号キーにアクセスして、データを復号化させることができます。(ユーザーの暗号キーでデータが暗号化されると、それに対応する復号キー、すなわち、“ペアキー”が復号に使われる)“使いやすい”環境とは、クライアント側のソフトウェアが、自動的にユーザーの復号キー履歴を管理できるということです。

また、キー履歴は鍵のバックアップやキー・リカバリー・システムで、しっかりと管理されなければなりません。これは、元来、そのデータを暗号化するために(また、拡張化されたり、いつ暗号化されるかといったことにかかわらず)使用される公開暗号鍵が例え、どのような種類のものであれ、暗号化されたデータは、きちんと復号化されなければならない、ということです。署名キーペアが更新されると最初の署名キーは、完全に破棄されます。これで、誰かが再びその署名キーにアクセスすることを防ぎ、過去の署名キーを保管する必要がなくなります。

証明書のリポジトリと配布

冒頭でも説明した通り、認証局は信頼できる第三者機関として、ユーザーに証明書を発行します。これらの証明書は業務利用の場合でも配布されるので、アプリケーションでも当然利用できなければなりません。証明書のリポジトリは、証明書を記載するので、ユーザーにかかわってアプリケーションが、それらを回収します。“リポジトリ”とは、証明書を格納するヂレクトリ・サービスのことです。過去数年、情報テクノロジ業界では、証明書のリポジトリにとって、最良のテクノロジはLDAP(Lightweight Directory Access Protocol)対応のディレクトリ・システムによって、実現されるというコンセンサスが得られています。LDAPはディレクトリ・システムにアクセスするための標準プロトコルを定義しています。

下記の項目は、このコンセンサスを裏付けるいくつかの要素です。

  • ディレクトリ内に証明書を格納して、ユーザーに代わってアプリケーションが証明書を回収するので、たいていの業務で求められる”使いやすさ”という要求に応えることができる
  • 多くのディレクトリ・テクノロジがLDAPをサポートしている
  • 大量のユーザーをサポートできる
  • 情報の記載や回収方法に従って、検索要求に的確に応える
  • 証明書の配信量が最も多い企業でも、ネットワーク全体の要求に見合った配信を行う

また、証明書の配信をサポートするディレクトリは、他の企業の情報も格納することができます。PKIは証明書取消し情報を送信するディレクトリも利用することができます。

証明書の取消し

証明書(すでに、“証明書と認証局”で説明されている)に格納されている認証局の署名を確認することに加え、アプリケーション・ソフトウェアを利用する段階においても、その証明書が、まだ、信頼できるということを確認しなければなりません。信頼できなくなった証明書は、認証局によって取消されなければなりません。

証明書の有効期限が切れる前に証明書が、取消されなければならない理由の一つとして、証明書には秘密鍵(署名キーまたは復号キー)に対応する公開鍵が含まれているかも知れないという危険性や、企業のセキュリティ・ポリシで、退職する従業員の証明書は、廃止されなければならない規約があることがあげられます。

このことから、企業のシステム管理者は証明書を継続して、利用することは、もはや、安全とはいえない、ということをユーザーに認識してもらう必要があります。証明書取消しに関するステータスは、それが毎回利用される前に確認されなければなりません。

そのためPKIでは、幅広い有用性をもった証明書取消しシステムを構築する必要があります。認証局では、それぞれ証明書のステータスに関する情報を確実に発行します。アプリケーション・ソフトウェアは、ユーザーに代わって、それぞれの証明書が毎回使用される前に取消し情報を確認します。証明書を発行し、取消し情報を継続的に利用することによって、安全な証明書取消しシステムを構築することができます。証明書取消し情報を配信するもっとも一般的な方法は、認証局に証明書取消しリスト(以下、CRL: Certificate Revocation List)をつくって、それをディレクトリ・システムに発行することです。

CRLは取消されたすべての証明書のシリアル番号を特定します。クライアント側のアプリケーションは、証明書を使う前に適切なCRLを確認して、その証明書が、信用できるものかどうかを決定します。クライアント側のソフトウェアは、ユーザーに代わって取消し済証明書を継続的にチェックします。

ご質問・ご相談 お気軽にお問い合わせください

電話でのお問い合わせ

03-6738-6710

(平日9:00~18:00受付)

メールフォームからお問い合わせ

お問い合わせ カタログダウンロード

PKI導入ガイド

お問い合わせ カタログダウンロード

03-6738-6710

(平日9:00~18:00受付)

ページの先頭へ