(57)【要約】【課題】電子証明書により情報処理装置のセキュリティを証明するシステムにおいて、電子証明書を発行する装置に高い可用性が求められないシステムを提供する。【解決手段】診断エージェントダウンロードサーバ２００は、クライアント端末１００に診断エージェントを提供し、その診断エージェントの正当性を証明するエージェント証明書を発行する。クライアント端末１００にインストールされた診断エージェントは、クライアント端末１００の構成や状態がサービス提供サーバ３００のセキュリティポリシーを満たすか否かを判定し、満たすと判定した場合はクライアント証明書を生成する。クライアント証明書の有効期限は数時間程度と短いのに対し、エージェント証明書の有効期限は長い。サーバ３００は、クライアント端末１００から提示されたクライアント証明書とエージェント証明書が共に正しい場合に、クライアント端末１００にサービスを提供する。【選択図】図１
2009010807.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理装置と、第２の情報処理装置と、第３の情報処理装置とを備え、
前記第１の情報処理装置は、
当該第１の情報処理装置がセキュリティ要件を満足するか否かを診断する診断手段と、
前記第２の情報処理装置に対し、前記診断手段を証明する第１の電子証明書の発行を要求する要求手段と、
前記第１の情報処理装置が前記セキュリティ要件を満足すると前記診断手段が診断した場合に、前記第１の情報処理装置が前記セキュリティ要件を満足すると前記診断手段が診断したことを証明する第２の電子証明書を生成する生成手段と、
前記第３の情報処理装置への処理要求の送信を指示された場合に、前記処理要求と対応づけて、前記第２の電子証明書を前記第３の情報処理装置に提供する第１の提供手段と、
を備え、
前記第２の情報処理装置は、
前記第１の情報処理装置からの要求に応じて、前記診断手段を証明する第１の電子証明書であって、前記第２の電子証明書よりも有効期間の長い第１の電子証明書を発行する発行手段、
を備え、
前記第３の情報処理装置は、
前記第１の情報処理装置から前記処理要求に対応づけて前記第２の電子証明書を取得すると共に、当該第２の電子証明書に対応する診断手段を証明する第１の電子証明書を取得する取得手段と、
前記第１の電子証明書と前記第２の電子証明書とを検証する検証手段と、
前記検証手段により前記第１の電子証明書と前記第２の電子証明書とが共に正当であることが検証された場合に、前記処理要求に応じた処理の実行を許可する許可手段と、
を備える、
情報処理システム。
【請求項２】
前記診断手段は、処理要求の送信先として指示された前記第３の情報処理装置に対応するセキュリティ要件を要件情報提供装置から取得し、当該セキュリティ要件に従って前記第１の情報処理装置を診断する、ことを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記第１の情報処理装置は、前記生成手段が生成した第２の電子証明書を記憶する記憶手段を備え、
前記第１の提供手段は、前記処理要求の送信先として指示された前記第３の情報処理装置に対応するセキュリティ要件を含むセキュリティ要件に対応する第２の電子証明書が前記記憶手段の中にある場合には、当該第２の電子証明書を前記第３の情報処理装置に提供し、前記生成手段に第２の電子証明書の生成を中止させる、
ことを特徴とする請求項２記載の情報処理システム。
【請求項４】
第１の情報処理装置を、
当該第１の情報処理装置がセキュリティ要件を満足するか否かを診断する診断手段、
第２の情報処理装置に対し、前記診断手段を証明する第１の電子証明書の発行を要求する要求手段、
前記第１の情報処理装置が前記セキュリティ要件を満足すると前記診断手段が診断した場合に、前記第１の情報処理装置が前記セキュリティ要件を満足すると前記診断手段が診断したことを証明する第２の電子証明書を生成する生成手段、
第３の情報処理装置への処理要求の送信を指示された場合に、前記処理要求と対応づけて、前記第２の電子証明書を前記第３の情報処理装置に提供する第１の提供手段、
として機能させるためのセキュリティ診断プログラム。
【請求項５】
第３の情報処理装置を、
第１の情報処理装置から処理要求に対応づけて、当該第１の情報処理装置がセキュリティ要件を満たしていることを診断手段が証明することを示す第２の電子証明書を取得すると共に、第２の情報処理装置が前記診断手段を証明することを示す第１の電子証明書を取得する取得手段、
前記第１の電子証明書と前記第２の電子証明書とを検証する検証手段、
前記検証手段により前記第１の電子証明書と前記第２の電子証明書とが共に正当であることが検証された場合に、前記処理要求に応じた処理の実行を許可する許可手段、
として機能させるための処理実行制御プログラム。
【請求項６】
第１の情報処理装置から処理要求に対応づけて、当該第１の情報処理装置がセキュリティ要件を満たしていることを診断手段が証明することを示す第２の電子証明書を取得すると共に、第２の情報処理装置が前記診断手段を証明することを示す第１の電子証明書を取得する取得手段と、
前記第１の電子証明書と前記第２の電子証明書とを検証する検証手段と、
前記検証手段により前記第１の電子証明書と前記第２の電子証明書とが共に正当であることが検証された場合に、前記処理要求に応じた処理の実行を許可する許可手段と、
を備える第３の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、セキュリティ診断プログラム、処理実行制御プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
外部から持ち込まれたコンピュータにより内部ネットワークにウイルスやワーム等の脅威が侵入することを防止するために、近年検疫システムと呼ばれるシステムが普及しつつある。検疫システムは、対象のコンピュータにアンチウイルスソフトが常駐しているかなど、対象のコンピュータが内部ネットワークのセキュリティポリシーを満たしているか否かを判定する。そして、満たしていると判定した場合にそのコンピュータに内部ネットワークへの接続を許可する、満たしていないと判定した場合には接続を拒絶する。
【０００３】
特許文献１に示されるシステムでは、クライアントは、クライアント自身のセキュリティチェック結果を示す健全性ステートメントを生成し、健全性証明書サーバに送る。健全性証明書サーバは、ポリシーサーバからの更新されたポリシー要件を保持するインターネット認証サーバを介して健全性ステートメントを検証する。健全性ステートメントがすべてのポリシー要件に合格した場合、健全性証明書サーバは、クライアントに健全性証明書を発行する。次いで、クライアントは、健全性証明書を使って、ＶＰＮ（仮想私設ネットワーク）ゲートウェイなど他の保護されたシステムと通信を行うことができる。
【０００４】
【特許文献１】特開２００６−１３４３１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
クライアントの検疫状態を示す証明書が発行されたあとも、クライアントのセキュリティ状態はソフトウエアのインストールやウィルス感染などによっていつ変化するか分からない。このため、証明書の有効期限は例えば数時間程度と短く設定されることが通例である。このため、クライアントは比較的頻繁に証明書サーバにアクセスして証明書を更新することになり、これに対応するため証明書サーバには高い可用性が求められる。
【０００６】
本発明は、電子証明書により情報処理装置のセキュリティを証明するシステムにおいて、電子証明書を発行する装置に必ずしも高い可用性が求められないシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、第１の情報処理装置と、第２の情報処理装置と、第３の情報処理装置とを備え、前記第１の情報処理装置は、当該第１の情報処理装置がセキュリティ要件を満足するか否かを診断する診断手段と、前記第２の情報処理装置に対し、前記診断手段を証明する第１の電子証明書の発行を要求する要求手段と、前記第１の情報処理装置が前記セキュリティ要件を満足すると前記診断手段が診断した場合に、前記第１の情報処理装置が前記セキュリティ要件を満足すると前記診断手段が診断したことを証明する第２の電子証明書を生成する生成手段と、前記第３の情報処理装置への処理要求の送信を指示された場合に、前記処理要求と対応づけて、前記第２の電子証明書を前記第３の情報処理装置に提供する第１の提供手段と、を備え、前記第２の情報処理装置は、前記第１の情報処理装置からの要求に応じて、前記診断手段を証明する第１の電子証明書であって前記第２の電子証明書よりも有効期間の長い第１の電子証明書を発行する発行手段、を備え、前記第３の情報処理装置は、前記第１の情報処理装置から前記処理要求に対応づけて前記第２の電子証明書を取得すると共に、当該第２の電子証明書に対応する診断手段を証明する第１の電子証明書を取得する取得手段と、前記第１の電子証明書と前記第２の電子証明書とを検証する検証手段と、前記検証手段により前記第１の電子証明書と前記第２の電子証明書とが共に正当であることが検証された場合に、前記処理要求に応じた処理の実行を許可する許可手段と、を備える、情報処理システムを提供する。
【０００８】
請求項２に係る発明は、前記請求項１に係る発明において、前記診断手段は、処理要求の送信先として指示された前記第３の情報処理装置に対応するセキュリティ要件を要件情報提供装置から取得し、当該セキュリティ要件に従って前記第１の情報処理装置を診断する、ことを特徴とする。
【０００９】
請求項３に係る発明は、前記請求項２に係る発明において、前記第１の情報処理装置は、前記生成手段が生成した第２の電子証明書を記憶する記憶手段を備え、前記第１の提供手段は、前記処理要求の送信先として指示された前記第３の情報処理装置に対応するセキュリティ要件を含むセキュリティ要件に対応する第２の電子証明書が前記記憶手段の中にある場合には、当該第２の電子証明書を前記第３の情報処理装置に提供し、前記生成手段に第２の電子証明書の生成を中止させる、ことを特徴とする。
【００１０】
請求項４に係る発明は、第１の情報処理装置を、当該第１の情報処理装置がセキュリティ要件を満足するか否かを診断する診断手段、第２の情報処理装置に対し、前記診断手段を証明する第１の電子証明書の発行を要求する要求手段、前記第１の情報処理装置が前記セキュリティ要件を満足すると前記診断手段が診断した場合に、前記第１の情報処理装置が前記セキュリティ要件を満足すると前記診断手段が診断したことを証明する第２の電子証明書を生成する生成手段、第３の情報処理装置への処理要求の送信を指示された場合に、前記処理要求と対応づけて、前記第２の電子証明書を前記第３の情報処理装置に提供する第１の提供手段、として機能させるためのセキュリティ診断プログラムを提供する。
【００１１】
請求項５に係る発明は、第３の情報処理装置を、第１の情報処理装置から処理要求に対応づけて、当該第１の情報処理装置がセキュリティ要件を満たしていることを診断手段が証明することを示す第２の電子証明書を取得すると共に、第２の情報処理装置が前記診断手段を証明することを示す第１の電子証明書を取得する取得手段、前記第１の電子証明書と前記第２の電子証明書とを検証する検証手段、前記検証手段により前記第１の電子証明書と前記第２の電子証明書とが共に正当であることが検証された場合に、前記処理要求に応じた処理の実行を許可する許可手段、として機能させるための処理実行制御プログラムを提供する。
【００１２】
請求項６に係る発明は、第１の情報処理装置から処理要求に対応づけて、当該第１の情報処理装置がセキュリティ要件を満たしていることを診断手段が証明することを示す第２の電子証明書を取得すると共に、第２の情報処理装置が前記診断手段を証明することを示す第１の電子証明書を取得する取得手段と、前記第１の電子証明書と前記第２の電子証明書とを検証する検証手段と、前記検証手段により前記第１の電子証明書と前記第２の電子証明書とが共に正当であることが検証された場合に、前記処理要求に応じた処理の実行を許可する許可手段と、を備える第３の情報処理装置を提供する。
【発明の効果】
【００１３】
請求項１、４、５又は６に係る発明によれば、第２の情報処理装置は、第１の情報処理装置内の診断手段を証明する第１の電子証明書を発行した後、その第１の電子証明書の有効期間内は、第１の情報処理装置から第１の電子証明書を要求されないので、第２の情報処理装置は可用性が必ずしも高いものでなくてよい。
【００１４】
請求項２に係る発明によれば、第３の情報処理装置ごとに適したセキュリティ要件を用いることができる。
【００１５】
請求項３に係る発明によれば、ある第３の情報処理装置のために一度生成された第２の電子証明書が別の第３の情報処理装置のために利用できる場合には、第１の情報処理装置生成手段の処理負荷を低減できる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、本発明の実施の形態を説明する。まず、図１を参照して、実施の形態のシステムの一例を説明する。
【００１７】
このシステムは、ローカルエリアネットワーク及びインターネットなどのデータ通信のためのネットワーク５００に接続されたクライアント端末１００、診断エージェントダウンロードサーバ２００及びサービス提供サーバ３００を有している。図では、クライアント端末１００及びサービス提供サーバ３００を１つしか示していないが、それぞれ複数存在してもよい。
【００１８】
クライアント端末１００は、利用者が操作するパーソナルコンピュータ又はワークステーションなどのコンピュータである。サービス提供サーバ３００は、利用者に対してネットワーク５００を介してサービスを提供する。サービス提供サーバ３００が提供するサービスには特に限定はない。サービス提供サーバ３００は、例えば、Ｗｅｂページ又はＷｅｂサービスを提供するＷｅｂサーバであってもよいし、ＶＰＮ（仮想私設ネットワーク）接続サービスを提供するＶＰＮゲートウェイであってもよい。また、サービス提供サーバ３００は、クライアント端末１００に対し動的にＩＰ(Internet Protocol)アドレスを割り当てるＤＨＣＰ(Dynamic Host Configuration Protocol)サーバであってもよい。
【００１９】
このシステムでは、サービス提供サーバ３００は、クライアント端末１００にサービスを提供するにあたり、クライアント端末１００が所定のセキュリティポリシー（言い換えれば、セキュリティ上の要件）を満たしていることを求める。すなわち、サービス提供サーバ３００は、セキュリティポリシーを満足しないクライアント端末１００にはサービスを提供しないことで、サービス提供サーバ３００自身、又はそのサービス提供サーバ３００により保護される他のコンピュータを、そのクライアント端末１００に起因するセキュリティ上の脅威から保護する。
【００２０】
このような保護のために、このシステムでは、クライアント端末１００は、診断エージェントダウンロードサーバ２００から診断エージェントと呼ぶエージェントプログラムをダウンロードしてインストールする。ここで、「エージェント」とは、ユーザやプログラムから都度指示を与えられなくても処理を自動的に実行するソフトウエアシステムをいう。そして、インストールされた診断エージェントが正当なものであることを示す電子証明書であるエージェント証明書を診断エージェントダウンロードサーバ２００から取得する。また、インストールされた診断エージェントは、クライアント端末１００の内部の状態を調査して、クライアント端末１００がセキュリティポリシーを満足しているか否かを判定し、満足していれば、その診断エージェントがそのクライアント端末１００がセキュリティポリシーを満たしていると判定した旨を示す電子証明書であるクライアント証明書を生成する。クライアント端末１００はサービス提供サーバ３００からサービスを受ける際に少なくともクライアント証明書を提示する。サービス提供サーバ３００は、そのクライアント証明書を受け取ると共に、そのクライアント証明書を発行した診断エージェントのエージェント証明書を入手し、それら両方の証明書を検証する。検証の結果、両方の証明書が正当なものであると判明した場合、サービス提供サーバ３００は、そのクライアント端末１００に対してサービスの提供を開始する。
【００２１】
このシステムでは、診断エージェント１２０は例えば数時間ごとなどの比較的有効期間の短いクライアント証明書を生成する。一度生成したクライアント証明書の有効期限が切れた場合には、再度クライアント端末１００を診断し、問題がなければ新たなクライアント証明書を生成する。一方、クライアント端末１００の構成や状態は随時変化するが、インストールされた診断エージェント１２０は基本的には変化しないので、診断エージェントダウンロードサーバ２００が発行するエージェント証明書の有効期間は、クライアント証明書の有効期間より長くしてよい。エージェント証明書の有効期間は、例えば、診断エージェントダウンロードサーバ２００が提供する診断エージェントプログラムのサポート期間と同等程度（例えば数年間）としてよい。診断エージェントダウンロードサーバ２００は、クライアント端末１００に対してエージェント証明書をいったん発行すれば、エージェント証明書の有効期間内は、クライアント端末１００の変化に対応しなくてよい。したがって、診断エージェントダウンロードサーバ２００には、それほど高い可用性は要求されない。ここで「可用性」とは、システムがある特定の瞬間に機能を維持している確率のことをいい、システムの壊れにくさともいえる。例えば「可用性が高いシステム」とは、障害の発生する頻度が低いシステムや障害発生時にその修復時間が短いシステム等をいう。
【００２２】
このような仕組みのため、診断エージェントダウンロードサーバ２００は、クライアント端末１００に対して診断エージェントを提供するための処理を実行するエージェント提供部２０２と、診断エージェントの正当性を証明するエージェント証明書を発行するエージェント証明書発行部２０４を備える。
【００２３】
また、サービス提供サーバ３００は、要求取得部３０２，検証部３０４，許可判定部３０６，処理実行部３０８を有する。要求取得部３０２は、クライアント端末１００から処理要求を取得すると共に、その処理要求に対応してクライアント端末１００から送られてくるクライアント証明書を取得する。また、要求取得部３０２は、そのクライアント証明書を発行した診断エージェントのエージェント証明書を取得する。検証部３０４は、それらエージェント証明書及びクライアント証明書を検証する。許可判定部３０６は、検証部３０４の判定結果に基づき、前述の処理要求に応じたサービスをクライアント端末１００に提供するか否かを判定する。許可判定部３０６がサービス提供を許可した場合、処理実行部３０８が、その処理要求に応じたサービスを提供するための処理を実行する。例えば、サービス提供サーバ３００がＶＰＮゲートウェイである場合、処理実行部３０８は、クライアント端末１００との間でＶＰＮ接続を確立し、ゲートウェイにより守られたＶＰＮ内の端末とのＶＰＮ通信を取り次ぐ。サービス提供サーバ３００がＷｅｂサーバである場合、処理実行部３０８は、それ以後、クライアント端末１００からのＨＴＴＰ(Hypertext Markup Language)要求を受け入れ、その要求に応じてＷｅｂページの提供など処理を実行する。
【００２４】
次に図２を参照して、クライアント端末１００の構成の一例を説明する。この例では、クライアント端末１００は、診断エージェントダウンロードサーバ２００から、診断エージェントのインストーラプログラム１１０をダウンロードする。インストーラプログラム１１０は、診断エージェントのインストール処理を実行するインストール処理部１１２と、診断エージェント固有の秘密鍵と公開鍵のペア（鍵ペア）を生成する鍵ペア生成部１１４と、サーバ２００にエージェント証明書の発行を要求するエージェント証明書要求部１１６とを備える。鍵ペア生成部１１４が生成した公開鍵は、エージェント証明書に組み込まれる。
【００２５】
インストール処理部１１２によりクライアント端末１００にインストールされた診断エージェント１２０は、機能モジュールとして、診断処理部１２２，クライアント証明書生成部１２４，及び要求送信部１２６を備える。診断処理部１２２は、クライアント端末１００の状態を診断し、セキュリティポリシーが満たされているか否かを判定する。この判定のために、診断処理部１２２は、ネットワーク５００上にあるポリシーサーバ４００（図１参照）から、サービス提供サーバ３００に対応するセキュリティポリシーを入手してもよい。なお、システム上で使用されるセキュリティポリシーの情報がクライアント端末１００に記憶されているならば、ポリシーサーバ４００はなくてもよい。
【００２６】
セキュリティポリシーが満たされていると判定された場合、クライアント証明書生成部１２４が、クライアント証明書を生成する。生成されたクライアント証明書は、証明書キャッシュ１４０に記憶され、その証明書の有効期間が切れるまでは再利用される。要求送信部１２６は、サービス提供サーバ３００に対して利用要求と、その利用要求の正当性を証明するためのクライアント証明書を送信する。
【００２７】
クライアント端末１００上で実行されるアプリケーション１３０は、サービス提供サーバ３００に対し処理要求を行い、サービスの提供を受ける。例えば、アプリケーション１３０は、例えばＶＰＮクライアントプログラム又はＷｅｂブラウザである。アプリケーション１３０は、サービス提供サーバ３００からサービスの提供を受けようとする場合、診断エージェント１２０に対し処理要求の送信を依頼する。これに応じ、診断エージェント１２０は、クライアント証明書を伴う処理要求をサービス提供サーバ３００に送り、サービス提供サーバ３００からサービス利用の許可を受ける。診断エージェント１２０は、例えばアプリケーション１３０に対し、プラグイン（plug-in）として追加してもよい。
【００２８】
次に、図３を参照して、このシステムにおける診断エージェントのダウンロード時の処理の手順の一例を説明する。この手順では、まずクライアント端末１００は、利用者からの指示に応じ、診断エージェントダウンロードサーバ２００に対して診断エージェントのダウンロード要求を発する（Ｓ１０１）。この要求を受けたサーバ２００のエージェント提供部２０２は、診断エージェントのインストーラ１１０をクライアント端末１００に送信する（Ｓ１０２）。クライアント端末１００がそのインストーラ１１０を実行すると、まずインストール処理部１１２が診断エージェント１２０をクライアント端末１００にインストールする（Ｓ１０３）。次に、鍵ペア生成部１１４が、公知の手法で、診断エージェント１２０のための秘密鍵と公開鍵のペアを生成する（Ｓ１０４）。診断エージェント１２０は、生成された秘密鍵を例えばクライアント端末１００内の記憶装置又はクライアント端末１００に着脱可能なＵＳＢ(Universal Serial Bus)メモリなどの可搬媒体に保管する。１つの例では、保管される秘密鍵は、暗号化などにより保護しておく。なお、鍵ペア生成部１１４は、クライアント端末１００が備えるＨＳＭ（ハードウエア・セキュリティ・モジュール）に鍵ペアを生成させてもよく、この場合秘密鍵はＨＳＭにより保護される。
【００２９】
次に、エージェント証明書要求部１１６が、診断エージェント１２０に固有の識別子と、ステップＳ１０４で生成された公開鍵と、を含んだエージェント証明書発行要求を診断エージェントダウンロードサーバ２００に送る（Ｓ１０５）。ここで、エージェント証明書発行要求が正当な診断エージェント１２０からの要求であることを証明するために、正当な診断エージェント１２０しか知らない特別な情報を、その発行要求と共に診断エージェントダウンロードサーバ２００に送ってもよい。この特別な情報は、例えば暗号化等により保護された状態でインストーラ１１０又は診断エージェント１２０に管理されていてもよい。診断エージェント１２０の識別子が、そのような特別な情報を反映したものであってもよい
【００３０】
エージェント証明書発行要求を受け取ったダウンロードサーバ２００は、その要求に含まれる情報を用いて、エージェント証明書を生成する（Ｓ１０６）。エージェント証明書は、例えばＸ．５０９証明書として生成すればよい。ダウンロードサーバ２００が生成するエージェント証明書のデータ構造の一例を図４に示す。図示のように、エージェント証明書６００は、署名前証明書６１０と、その署名前証明書６１０に対するデジタル署名６２０とを含む。
【００３１】
署名前証明書６１０には、発行者情報６１２、有効期間６１４、主体者情報６１６及び主体者の公開鍵６１８が含まれる。発行者情報６１２は、そのエージェント証明書を発行する当該ダウンロードサーバ２００の識別子（例えばダウンロードサーバ２００の一意なホスト名など）である。有効期間６１４は、例えば、当該エージェント証明書の有効期間の開始時刻と終了時刻を示す。例えば、有効期間の終了時刻として、当該診断エージェントのサポート期間（エージェントにバージョンがある場合は、ステップＳ１０２で提供したバージョンのサポート期間）の終期を設定してもよい。また、主体者情報６１６は、そのエージェント証明書の主体者である診断エージェントの識別子である。この主体者情報６１６と主体者の公開鍵６１８には、クライアント端末１００からエージェント証明書発行要求と共に送られてきた値がそれぞれ設定される。なお、署名前証明書６１０には、これら以外の情報が含まれていてももちろんよい。
【００３２】
デジタル署名６２０は、署名前証明書６１０に対する発行者（ダウンロードサーバ２００）の署名である。この署名の値は発行者の秘密鍵を用いて、公知の署名アルゴリズムにより計算される。
【００３３】
ダウンロードサーバ２００のエージェント証明書発行部２０４は、生成されたエージェント証明書を要求元のクライアント端末１００に送信し（Ｓ１０７）、クライアント端末１００は受信したエージェント証明書を例えば証明書キャッシュ１４０に保管する（Ｓ１０８）。
以上の例では、エージェント証明書発行部２０４は、エージェント証明書を要求元のクライアント端末１００に送信したが、これは一例に過ぎない。エージェント証明書は、サービス提供サーバ３００が入手できる場所であればどこにあってもよい。したがって、エージェント証明書発行部２０４は、例えばサービス提供サーバ３００が知っているディレクトリサービスにエージェント証明書を登録してもよい。
【００３４】
次に図５を参照して、クライアント端末１００がサービス提供サーバ２００のサービスの利用を開始するときの処理手順の一例を説明する。この例では、利用者によりアプリケーション１３０が起動され、サービス提供サーバ３００の利用が指示されると、診断エージェント１２０が呼び出される（Ｓ２０１）。診断エージェント１２０の診断処理部１２２は、クライアント端末１００内からセキュリティ対策についての情報を収集し、その収集結果に基づきサービス提供サーバ３００に対応するセキュリティポリシーが満たされているか否かを判定する（Ｓ２０２）。診断処理部１２２が収集する情報には、例えば、クライアント端末１００のＯＳ（オペレーティングシステム）のバージョン情報、ＯＳに適用済みのパッチのバージョン情報、クライアント端末１００にインストールされているアンチウィルスソフトウエアのバージョン情報、ウィルス定義ファイルのバージョン情報、アンチウィルスソフトウエアによるウィルススキャンが最後に実行された日時などがある。なお、これらはあくまで例に過ぎず、これらすべての情報を収集する必要は必ずしもないし、これら以外の情報を収集してももちろんよい。
【００３５】
セキュリティポリシーは、サービス提供サーバ３００がクライアント端末１００に要求するセキュリティの要件を示す情報である。セキュリティポリシーは、例えば、クライアント端末１００のＯＳのバージョンやパッチのバージョンに対する要件（例えば「バージョン１．１以降のパッチが適用済みである必要がある」など）、ウィルス定義ファイルに関する要件（例えばバージョン３．５６以降の定義ファイルが必要）など）、ウィルススキャンの実行日時に関する要件（例えば「過去１週間以内にスキャンが行われている」など）などの要件の集合である。ステップＳ２０２が実行される時点で、クライアント端末１００はセキュリティポリシーを取得済みであるとする。
【００３６】
ステップＳ２０２により、クライアント端末１００がセキュリティポリシーを満たしていると判定された場合、クライアント証明書生成部１２４がクライアント証明書を生成する（Ｓ２０３）。クライアント証明書は、例えばＸ．５０９証明書である。図６に、クライアント証明書７００のデータ構造の一例を示す。
【００３７】
クライアント証明書７００は、署名前証明書７１０を含む。署名前証明書７１０には、発行者情報７１２、有効期間７１４、及び主体者情報７１６が含まれる。発行者情報７１２は、クライアント証明書を発行する当該診断エージェント１２０の識別子である。有効期間７１４は、例えば、当該クライアント証明書の有効期間の開始時刻と終了時刻を示す。この有効期間の長さは、クライアント端末１００の状態の変化を考慮して、例えば数時間程度と、比較的短いものとする。主体者情報７１６は、そのクライアント証明書の主体者であるクライアント端末１００の識別子である。クライアント端末１００の識別子としては、クライアント端末１００に固有のものであれば、どのようなものを用いてもよい。
例えば、クライアント端末１００にインストールされたＯＳのプロダクトＩＤ（製品識別番号）がその一例である。また、クライアント端末１００が備える各種ハードウエア（例えばネットワークカード、ハードディスクなど）やＯＳの識別情報から所定データ長の値（例えばそれら識別情報を並べたデータ列のハッシュ値など）を求め、その値をクライアント端末１００の識別子として用いてもよい。署名前証明書７１０には、以上に例示した以外の情報が含まれていてももちろんよい。デジタル署名７２０は、署名前証明書７１０に対する発行者（診断エージェント１２０）の署名である。この署名の値は、診断エージェント１２０の秘密鍵を用いて、公知の署名アルゴリズムにより計算される。
【００３８】
そして、要求送信部１２６は、そのクライアント証明書を含んだ利用要求をサービス提供サーバ３００に送信する（Ｓ２０４）。この利用要求には、クライアント端末１００の識別子と、診断エージェント１２０の識別子も含める。なお、証明書キャッシュ１４０内に当該クライアント端末１００のクライアント証明書があり、その証明書の有効期間が切れていなければ、ステップＳ２０２及びＳ２０３を省略し、その証明書をステップＳ２０４にて送信してもよい。
【００３９】
利用要求とクライアント証明書を受け取ったサービス提供サーバ３００の要求取得部３０２は、そのクライアント証明書の発行者情報７１２の欄から診断エージェントの識別子を取得し、その識別子に対応する診断エージェントのエージェント証明書をクライアント端末１００に要求する（Ｓ２０５）。これに応じ、クライアント端末１００は、その識別子を主体者情報６１６として持つエージェント証明書を証明書キャッシュ１４０から探し、サービス提供サーバ３００に送信する（Ｓ２０６）。
【００４０】
なお、そのエージェント証明書がサービス提供サーバ３００の証明書キャッシュ内にあり、且つ有効期限が切れていない場合は、ステップＳ２０５及びＳ２０６は省略し、そのキャッシュ内のエージェント証明書を利用してもよい。
【００４１】
また、サービス提供サーバ３００は、エージェント証明書をクライアント端末１００から取得する代わりに、診断エージェントダウンロードサーバ２００又はディレクトリサーバから取得してもよい。
【００４２】
エージェント証明書を入手したサービス提供サーバ３００は、そのエージェント証明書の発行者情報６１２からダウンロードサーバ２００の識別子（例えばホスト名）を認識し、その識別子を用いてダウンロードサーバ２００に対し当該サーバ２００の公開鍵を要求する（Ｓ２０７）。ダウンロードサーバ２００は、その要求に応じて自分の公開鍵をサービス提供サーバ３００に返す（Ｓ２０８）。ステップＳ２０８では、ダウンロードサーバ２００は、例えば、自分の公開鍵を証明する公開鍵証明書をサービス提供サーバ３００に送信すればよい。
【００４３】
なお、サービス提供サーバ３００は、ダウンロードサーバ２００の公開鍵証明書を、上述のようにダウンロードサーバ２００自身から取得する代わりに、ネットワーク５００上のディレクトリサービスから取得してもよい。また、サービス提供サーバ３００がダウンロードサーバ２００の有効な公開鍵証明書を既に保持している場合には、ステップＳ２０７及びＳ２０８は省略してよい。
【００４４】
以上のようにしてサービス提供サーバ３００がクライアント証明書とエージェント証明書とを入手すると、検証部３０４が、まずエージェント証明書を検証する（Ｓ２０９）。この検証では、以下の４つの項目を確認する。
【００４５】
(a1)当該エージェント証明書の発行者情報６１２が、サービス提供サーバ３００が信頼するダウンロードサーバ２００の識別子に合致する（提供サーバ３００には、自分が信頼するダウンロードサーバの識別子のリストがあらかじめ登録されている）
(a2)現在時刻が当該エージェント証明書の有効期間６１４の欄に示される期間内である
(a3)当該エージェント証明書の主体者情報６１６が、利用要求（Ｓ２０４）の際にクライアント端末１００から送られてきたエージェント識別子と一致する
(a4)当該エージェント証明書に付されたデジタル署名６２０が正しい。
【００４６】
なお、項目(a4)の処理では、ダウンロードサーバ２００の公開鍵証明書に示される公開鍵を用いてデジタル署名６２０が正しいか否か、周知の方法で検証する（ダウンロードサーバ２００の公開鍵証明書が正当なものであることは確認済みであるとする。確認済みでなければ、周知の方法で確認すればよい）。
【００４７】
以上の検証処理によりエージェント証明書が正当であると判定された場合、検証部３０４は、更にクライアント証明書を検証する（Ｓ２１０）。この検証では、以下の４つの項目を検証する。
【００４８】
(b1)当該クライアント証明書の発行者情報７１２が、ステップＳ２０９で正当であると判定されたエージェント証明書の主体者情報６１６の値に合致する（これは、当該クライアント証明書が、エージェント証明書が証明する診断エージェントにより発行されたものであることを意味する）
(b2)現在時刻が当該クライアント証明書の有効期間７１４の欄に示される期間内である
(b3)当該クライアント証明書の主体者情報７１６が、利用要求（Ｓ２０４）の際にクライアント端末１００から送られてきたクライアント端末１００自身の識別子と一致する
(b4)当該クライアント証明書に付されたデジタル署名７２０が正しい。
【００４９】
なお、項目(b4)の処理では、検証済みのエージェント証明書に示される主体者の公開鍵６１８を用いてデジタル署名７２０を検証する。
【００５０】
以上の処理により、エージェント証明書とクライアント証明書の両方が正当であると判定された場合、許可判定部３０６は、クライアント端末１００にサービスの利用を許可すると判定し、処理実行部３０８に対しサービスのための処理の実行を指示する。これ以降、クライアント端末１００は、サービス提供サーバ３００の提供するサービスを利用する（Ｓ２１１）。
【００５１】
なお、ステップＳ２０９及びＳ２１０において、エージェント証明書又はクライアント証明書のうちの少なくとも一方が正当でないと判定された場合、サービス提供サーバ３００は、サービスが利用できない旨を示すエラーメッセージをクライアント端末１００に返す。
【００５２】
以上の手順では、利用者からサービス提供サーバ３００へのアクセス指示（Ｓ２０１）があった場合に、診断エージェント１２０がクライアント証明書を伴う利用要求をサーバ３００に送ったが、このような手順は一例に過ぎない。この代わりに、クライアント端末１００が利用者からの指示に応じてサービス提供サーバ３００にアクセスを要求した場合に、サービス提供サーバ３００がクライアント端末１００に証明書の提示を求めるようにしてもよい。この場合、クライアント端末１００の診断エージェント１２０は、その求めに応じてクライアント証明書をサーバ３００に送ればよい。
【００５３】
以上の処理では、診断エージェント１２０が生成したクライアント証明書は、当該証明書の有効期間（例えば数時間程度）の間は再利用される。そして、その有効期間が過ぎると、ステップＳ２０２及びＳ２０３の処理によりクライアント証明書が更新される。エージェント証明書の有効期間はクライアント証明書の有効期間よりはるかに長いため、クライアント証明書が更新される間も、基本的には更新の必要がない。
【００５４】
次に、実施形態の変形例について説明する。この変形例では、ネットワーク５００上の各サービス提供サーバ３００が、それぞれ自分自身のセキュリティポリシーを定めており、アクセスしてくるクライアント端末１００に自分のセキュリティポリシーの遵守を求める。各サービス提供サーバ３００のセキュリティポリシーには一意な識別子（ポリシー識別子と呼ぶ）が割り当てられている。個々のセキュリティポリシーの内容はポリシー識別子に対応づけてポリシーサーバ４００（図１参照）に登録されている。また、ポリシーサーバ４００には、各サービス提供サーバ３００の識別子に対応づけて、当該サービス提供サーバ３００が採用しているセキュリティポリシーの識別子が登録されている。なお、異なるサービス提供サーバ３００が同じセキュリティポリシーを採用してももちろんよい。
【００５５】
この変形例では、診断エージェント１２０は、図７に例示するように、クライアント端末１００の診断の基準として用いてセキュリティポリシーの識別子７１８を含んだクライアント証明書７００を生成する（ポリシー識別子７１８以外の項目は、図６に例示したものと同様である）。
【００５６】
この変形例では、診断エージェント１２０は、生成したクライアント証明書に、その証明書の生成の際に用いたセキュリティポリシーの識別子を対応づけて証明書キャッシュ１４０に保存する。例えば、図７に示すように、クライアント証明書の中に、当該証明書を生成する際に用いたセキュリティポリシーの識別子７１８を組み込んでもよい。
【００５７】
そして、サービス提供サーバ３００にアクセスすることが指示されると、診断エージェント１２０は、そのサーバ３００にも通用するクライアント証明書が証明書キャッシュ１４０内にあるか否かを調べ、あればそのクライアント証明書を利用する。キャッシュ１４０内のクライアント証明書がアクセス先のサーバ３００に通用するか否かは、当該クライアント証明書のポリシー識別子と、アクセス先のサーバ３００に対応するポリシー識別子とに基づき判定すればよい。
【００５８】
例えば、１つの例では、診断エージェント１２０は、クライアント証明書のポリシー識別子が、サーバ３００のポリシー識別子と一致した場合、そのクライアント証明書はサーバ３００に通用する。また、別の例では、診断エージェント１２０は、クライアント証明書のポリシー識別子に対応するセキュリティポリシーの内容と、サーバ３００のポリシー識別子に対応するセキュリティポリシーの内容とを取得し、前者のポリシー内容の全項目のセキュリティレベルがそれぞれ後者のポリシー内容の対応する項目のセキュリティレベルよりも高位の場合、そのクライアント証明書はサーバ３００に通用すると判定する。また、更に別の例では、高位のセキュリティポリシーが低位のセキュリティポリシーをカバーする（すなわち前者が満たされていれば後者は満たされる）ように順位付けされたセキュリティポリシー群の中から各サービス提供サーバ３００が自身の採用するポリシーを選択してもよい。この例では、順位付けにおける順位をポリシー識別子として用いてよい。この場合、クライアント証明書とサーバ３００のポリシー識別子同士の比較から、クライアント証明書がサーバ３００に通用するか否かが判定される。ここで高位のセキュリティポリシーとは、低位のセキュリティポリシーの項目を含み、かつそれぞれの項目に対するセキュリティレベルが高いことをいう。
【００５９】
この変形例におけるクライアント端末１００の診断エージェント１２０の処理手順を図８に示す。この手順では、診断エージェント１２０は、利用者からあるサービス提供サーバ３００へのアクセスを指示された場合、まずそのサーバ３００に対応するポリシー識別子をポリシーサーバ４００から取得する（Ｓ３０１）。次に、診断エージェント１２０は、そのサーバ３００のポリシー識別子に基づき、前述のようにして、証明書キャッシュ１４０に保存された有効なクライアント証明書の中に、そのサーバ３００に通用するものを探索する（Ｓ３０２、Ｓ３０３）。この探索の結果、アクセス先のサーバ３００に通用するクライアント証明書が見つかれば、診断エージェント１２０はそのクライアント証明書を含む利用要求をサーバ３００に送る（Ｓ３０７）。
【００６０】
アクセス先のサーバ３００に通用するクライアント証明書が証明書キャッシュ１４０内になかった場合、診断エージェント１２０は、クライアント端末１００内の各部からセキュリティ対策情報を収集し、診断を実行する（Ｓ３０４、Ｓ３０５）。この診断では、そのサーバ３００のセキュリティポリシー（これはポリシーサーバ４００から取得できる）が満たされるか否かが判定される。セキュリティポリシーが満たされれば、診断エージェント１２０は、クライアント証明書を生成する（Ｓ３０６）。この証明書には、例えば、診断に用いられたセキュリティポリシーの識別子が組み込まれる。そして、診断エージェント１２０は、生成されたクライアント証明書を含む利用要求をそのサーバ３００に送る（Ｓ３０７）。
【００６１】
なお、ステップＳ３０５において、クライアント端末１００がサーバ３００のセキュリティポリシーを満たさないと判断された場合、診断エージェント１２０はエラー処理を行う（Ｓ３０８）。エラー処理では、例えばセキュリティ上の問題によりサーバ３００が利用できないこと、などを示すエラーメッセージが出力される。
【００６２】
なお、以上の変形例において、各サービス提供サーバ３００のポリシー識別子及びセキュリティポリシー内容は、ポリシーサーバ４００から取得する代わりに、当該サーバ３００自身から取得してもよい。
【００６３】
以上に説明した実施の形態及び変形例は、あくまで例示のものに過ぎない。例えば上述の例において診断エージェントダウンロードサーバ２００が持っていた２つの機能を別々の装置が提供するようにしてもよい。この場合、ネットワーク５００上には、診断エージェントのプログラムをクライアント端末１００に提供する装置と、クライアント端末１００にインストールされた診断エージェント１２０に対してエージェント証明書を発行する装置とが、別々の装置として存在する。クライアント端末１００は、エージェント証明書を発行する装置に対し、例えば、正当な診断エージェント１２０しか知らない特別な情報を送信し、エージェント証明書の発行を要求し、その装置はその情報が正しい場合にエージェント証明書を発行すればよい。
【００６４】
また、サービス提供サーバ３００がクライアント端末１００に提供するサービスは、ネットワーク５００を介して提供する種類のサービスに限定されない。例えば、セキュリティ区域の入口に設けられた物理的なゲートの開閉を制御するサービスもそのようなサービスの一例である。この例ではゲートを制御する装置がサービス提供サーバ３００に該当する。利用者の携帯型のクライアント端末１００に診断エージェント１２０がインストールされており、利用者がセキュリティ区域に入ろうとするとき、その診断エージェント１２０が生成したクライアント証明書がクライアント端末１００からゲート制御装置に例えば無線で送信される。ゲート制御装置は、提示されたクライアント証明書とその診断エージェントのエージェント証明書の両方が正当と判断された場合に、ゲートを開いて利用者を区域内に迎え入れる。
【００６５】
以上に例示したクライアント端末１００、診断エージェントダウンロードサーバ２００、及びサービス提供サーバ３００は、それぞれ、例えば汎用のコンピュータに上述の各機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、図９に示すように、ＣＰＵ８００等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）８０２およびリードオンリメモリ（ＲＯＭ）８０４等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）８０６を制御するＨＤＤコントローラ８０８、各種Ｉ／Ｏ（入出力）インタフェース８１０、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース８１２等が、たとえばバス８１４を介して接続された回路構成を有する。また、そのバス８１４に対し、例えばＩ／Ｏインタフェース８１０経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ８１６、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ８１８、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、ＶＰＮルータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭ８０２に読み出されＣＰＵ８００等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部を、専用ＬＳＩ(Large Scale Integration)、ＡＳＩＣ（Application Specific Integrated Circuit、特定用途向け集積回路）又はＦＰＧＡ（Field Programmable Gate Array）等のハードウエア回路として構成してもよい。
【図面の簡単な説明】
【００６６】
【図１】実施の形態のシステムの一例を示す図である。
【図２】クライアント端末の内部構成の一例を示す図である。
【図３】診断エージェントのダウンロード時の処理手順の一例を示す図である。
【図４】エージェント証明書のデータ構造の一例を示す図である。
【図５】クライアント端末がサービス提供サーバのサービスの利用を開始するときの処理手順の一例を示す図である。
【図６】クライアント証明書のデータ構造の一例を示す図である。
【図７】変形例におけるクライアント証明書のデータ構造の一例を示す図である。
【図８】変形例におけるクライアント端末の処理手順の一例を示す図である。
【図９】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【００６７】
１００  クライアント端末、１２０  診断エージェント、１２２  診断処理部、１２４  クライアント証明書生成部、１２６  要求送信部、２００  診断エージェントダウンロードサーバ、２０２  エージェント提供部、２０４  エージェント証明書発行部、３００  サービス提供サーバ、３０２  要求取得部、３０４  検証部、３０６  許可判定部、３０８  処理実行部。
【図１】
2009010807.tif 000003
【図２】
2009010807.tif 000004
【図３】
2009010807.tif 000005
【図４】
2009010807.tif 000006
【図５】
2009010807.tif 000007
【図６】
2009010807.tif 000008
【図７】
2009010807.tif 000009
【図８】
2009010807.tif 000010
【図９】
2009010807.tif 000011