(57)【要約】【課題】従来のアクセス制御システムでは、解釈できるアクセスポリシーが、アクセス主体・アクセス客体・アクションなどに関する条件の定義と、アクセス可否の定義のみを含み、責務の定義を含まないため、責務の定義を含むアクセスポリシーの実施が困難であった。【解決手段】監視手段１０５は、仮想化手段１０３から伝達される入出力イベントに対して、アクセス可否を制御することに加えて、ポリシー解釈部１０６からの責務実施指示に応じて、責務実施インタフェース１０８を介して、適切な責務実施手段１０７を呼び出す。責務実施インタフェース１０８は、入出力イベントや責務の名前・パラメータ等の監視手段１０５からの入力に応じて、責務管理表１０８１を参照して、責務を実施すべき責務実施手段１０７を特定する。【選択図】図１
2010282242.tif 000002
【特許請求の範囲】
【請求項１】
入出力イベントを監視し、入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う監視手段と、
アクセス可否および責務の実施に関する条件を定義した所定のアクセスポリシーを解釈する手段であって、前記監視手段からの問い合わせに対して、前記アクセスポリシーにもとづいてアクセス可否および実施すべき責務を判定して前記監視手段に応答するポリシー解釈手段と、
所定の責務を実施する複数の責務実施手段と、
前記監視手段からの責務の実施依頼に応じて、該当する責務を実施する責務実施手段を前記複数の責務実施手段から特定して呼び出し、呼び出した責務実施手段の応答を前記監視手段に転送する責務実施インタフェースと
を備えたことを特徴とするアクセス制御システム。
【請求項２】
仮想マシンとデバイスとの間の入出力イベントを中継する仮想化手段を備え、
監視手段は、前記仮想化手段から伝達される入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う
請求項１記載のアクセス制御システム。
【請求項３】
複数の仮想マシンを備え、
監視手段は、仮想マシンと他の仮想マシンとの間の入出力イベントも監視する
請求項２記載のアクセス制御システム。
【請求項４】
責務実施インタフェースは、
責務実施手段名を特定可能なデータと担当する責務を特定可能なデータとが設定された責務管理表を含み、
監視手段からの責務の実施依頼に応じて、該当する責務を実施する責務実施手段を前記責務管理表にもとづいて特定する
請求項１から請求項３のうちのいずれか１項に記載のアクセス制御システム。
【請求項５】
責務実施手段を格納し、要求に応じて責務実施手段を配付する責務管理手段と、
アクセスポリシーに定義された責務のリストと登録ずみ責務実施手段のリストとを比較して、不要な責務実施手段を削除するとともに、不足している責務実施手段の配付を前記責務管理手段に要求するコンピュータ管理手段とを備えた
請求項１から請求項４のうちのいずれか１項に記載のアクセス制御システム。
【請求項６】
ネットワークを介して責務実施手段と通信可能であり、責務実施手段と連携して責務を実施する責務実施手段連携サーバを備えた
請求項１から請求項５のうちのいずれか１項に記載のアクセス制御システム。
【請求項７】
アクセスポリシーの条件判定に必要な属性情報を入出力イベントから抽出する複数の属性抽出手段と、
属性情報の問い合わせに応じて、該当する属性情報の抽出処理を実施する属性抽出手段を前記複数の属性抽出手段から特定して呼び出し、呼び出した属性抽出手段の応答をポリシー解釈手段に転送する属性抽出インタフェースとを備え、
前記ポリシー解釈手段は、監視手段からの問い合わせに対して、アクセス可否および実施すべき責務を判定するために、前記属性抽出インタフェースに、入出力イベントを渡すとともに、入出力イベントに関する属性情報の問い合わせを行う
請求項１から請求項６のうちのいずれか１項に記載のアクセス制御システム。
【請求項８】
仮想マシンとデバイスとの間の入出力イベントを中継する仮想化手段と、
前記仮想化手段から伝達される入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う監視手段と、
アクセスポリシーの条件判定に必要な属性情報を入出力イベントから抽出する複数の属性抽出手段と、
属性情報の問い合わせに応じて、該当する属性情報の抽出処理を実施する属性抽出手段を前記複数の属性抽出手段から特定して呼び出し、呼び出した属性抽出手段の応答をポリシー解釈手段に転送する属性抽出インタフェースと、
所定のアクセスポリシーを解釈する手段であって、前記監視手段からの問い合わせに対して、アクセス可否および実施すべき責務を判定するために、前記属性抽出インタフェースに、入出力イベントを渡すとともに、入出力イベントに関する属性情報の問い合わせを行うポリシー解釈手段とを備えた
ことを特徴とするアクセス制御システム。
【請求項９】
アクセス制御システムの位置状況または時間状況を検知する状況検知手段を備え、
ポリシー解釈手段は、前記状況検知手段が検知した状況に応じてアクセス可否および実施すべき責務を判定する
請求項１から請求項８のうちのいずれか１項に記載のアクセス制御システム。
【請求項１０】
状況検知手段が検知した状況に応じて責務を実施するタイミングを制御する責務実施時期管理手段を備えた
請求項９記載のアクセス制御システム。
【請求項１１】
アクセス要求の可否判定および所定の責務を実施するアクセス制御システムにおける端末装置であって、
入出力イベントを監視し、入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う監視手段と、
アクセス可否および責務の実施に関する条件を定義した所定のアクセスポリシーを解釈する手段であって、前記監視手段からの問い合わせに対して、前記アクセスポリシーにもとづいてアクセス可否および実施すべき責務を判定して前記監視手段に応答するポリシー解釈手段と、
所定の責務を実施する複数の責務実施手段と、
前記監視手段からの責務の実施依頼に応じて、該当する責務を実施する責務実施手段を前記複数の責務実施手段から特定して呼び出し、呼び出した責務実施手段の応答を前記監視手段に転送する責務実施インタフェースと
を備えたことを特徴とする端末装置。
【請求項１２】
仮想マシンとデバイスとの間の入出力イベントを中継する仮想化手段を備え、
監視手段は、前記仮想化手段から伝達される入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う
請求項１１記載の端末装置。
【請求項１３】
アクセスポリシーに定義された責務のリストと登録ずみ責務実施手段のリストとを比較して、不要な責務実施手段を削除するとともに、不足している責務実施手段を、責務実施手段を配付する装置からダウンロードするコンピュータ管理手段を備えた
請求項１１または請求項１２記載の端末装置。
【請求項１４】
アクセスポリシーの条件判定に必要な属性情報を入出力イベントから抽出する複数の属性抽出手段と、
属性情報の問い合わせに応じて、該当する属性情報の抽出処理を実施する属性抽出手段を前記複数の属性抽出手段から特定して呼び出し、呼び出した属性抽出手段の応答をポリシー解釈手段に転送する属性抽出インタフェースとを備え、
前記ポリシー解釈手段は、監視手段からの問い合わせに対して、アクセス可否および実施すべき責務を判定するために、前記属性抽出インタフェースに、入出力イベントを渡すとともに、入出力イベントに関する属性情報を問い合わせを行う
請求項１１から請求項１３のうちのいずれか１項に記載の端末装置。
【請求項１５】
アクセス要求の可否判定および所定の責務を実施するアクセス制御システムにおける端末装置であって、
仮想マシンとデバイスとの間の入出力イベントを中継する仮想化手段と、
前記仮想化手段から伝達される入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う監視手段と、
アクセスポリシーの条件判定に必要な属性情報を抽出する複数の属性抽出手段と、
属性情報の問い合わせに応じて、該当する属性情報の抽出処理を実施する属性抽出手段を前記複数の属性抽出手段から特定して呼び出し、呼び出した属性抽出手段の応答をポリシー解釈手段に転送する属性抽出インタフェースと、
所定のアクセスポリシーを解釈する手段であって、前記監視手段からの問い合わせに対して、アクセス可否および実施すべき責務を判定するために、前記属性抽出インタフェースに、入出力イベントを渡すとともに、入出力イベントに関する属性情報を問い合わせを行うポリシー解釈手段とを備えた
ことを特徴とする端末装置。
【請求項１６】
アクセス制御システムの位置状況または時間状況を検知する状況検知手段を備え、
ポリシー解釈手段は、前記状況検知手段が検知した状況に応じてアクセス可否および実施すべき責務を判定する
請求項１１から請求項１５のうちのいずれか１項に記載の端末装置。
【請求項１７】
状況検知手段が検知した状況に応じて責務を実施するタイミングを制御する責務実施時期管理手段を備えた
請求項１６記載の端末装置。
【請求項１８】
仮想マシンとデバイスとの間の入出力イベントを中継する仮想化手段と、前記仮想化手段から伝達される入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う監視手段と、アクセス可否および責務の実施に関する条件を定義した所定のアクセスポリシーを解釈する手段であって前記監視手段からの問い合わせに対して前記アクセスポリシーにもとづいてアクセス可否および実施すべき責務を判定して前記監視手段に応答するポリシー解釈手段と、所定の責務を実施する複数の責務実施手段と、前記監視手段からの責務の実施依頼に応じて、該当する責務を実施する責務実施手段を前記複数の責務実施手段から特定して呼び出し、呼び出した責務実施手段の応答を前記監視手段に転送する責務実施インタフェースと、アクセスポリシーに定義された責務のリストと登録ずみ責務実施手段のリストとを比較して、不要な責務実施手段を削除するとともに、不足している責務実施手段の配付を要求するコンピュータ管理手段とを備えた端末装置と通信可能に接続されるサーバ装置であって、
責務実施手段を格納し、前記コンピュータ管理手段からの要求に応じて、責務実施手段を前記コンピュータ管理手段に配付する責務管理手段を備えた
ことを特徴とするサーバ装置。
【請求項１９】
入出力イベントを監視し、入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う監視し、
アクセス可否および責務の実施に関する条件を定義した所定のアクセスポリシーを解釈する手段であって、問い合わせに対して、アクセス可否および実施すべき責務を判定して応答し、
責務の実施依頼に応じて、該当する責務を実施する責務実施処理を複数の責務実施処理から特定して実施し、実施した責務実施処理の応答を、責務の実施依頼元に転送する
ことを特徴とするアクセス制御方法。
【請求項２０】
仮想マシンとデバイスとの間の入出力イベントを中継する仮想化手段から伝達される入出力イベントにもとづいて、アクセス可否の制御および責務の実施依頼を行う
請求項１９記載のアクセス制御方法。
【請求項２１】
アクセスポリシーの条件判定に必要な属性情報を入出力イベントから抽出する処理を行う
請求項１９または請求項２０記載のアクセス制御方法。
【請求項２２】
アクセス制御システムの位置状況または時間状況を検知し、
検知した状況に応じてアクセス可否および実施すべき責務を判定する
請求項１９から請求項２１のうちのいずれか１項に記載のアクセス制御方法。
【請求項２３】
検知した状況に応じて責務を実施するタイミングを制御する
請求項２２記載のアクセス制御方法。
【請求項２４】
アクセス要求の可否判定および所定の責務を実施するアクセス制御システムにおけるコンピュータに搭載されるプログラムであって、
コンピュータを、
仮想マシンとデバイスとの間の入出力イベントを中継する仮想化手段から伝達される入出力イベントを監視し、入出力イベントにもとづいて、アクセス可否の制御および責務の実施依頼を行う監視手段と、
アクセス可否および責務の実施に関する条件を定義した所定のアクセスポリシーを解釈する手段であって、前記監視手段からの問い合わせに対して、前記アクセスポリシーにもとづいてアクセス可否および実施すべき責務を判定して前記監視手段に応答するポリシー解釈手段と、
所定の責務を実施する複数の責務実施手段と、
前記監視手段からの責務の実施依頼に応じて、該当する責務を実施する責務実施手段を前記複数の責務実施手段から特定して呼び出し、呼び出した責務実施手段の応答を前記監視手段に転送する責務実施インタフェース手段として機能させる
ためのアクセス制御用プログラム。
【請求項２５】
コンピュータを、
アクセスポリシーの条件判定に必要な属性情報を入出力イベントから抽出する複数の属性抽出手段と、
属性情報の問い合わせに応じて、該当する属性情報の抽出処理を実施する属性抽出手段を前記複数の属性抽出手段から特定して呼び出し、呼び出した属性抽出手段の応答をポリシー解釈手段に転送する属性抽出インタフェース手段として機能させ、
アクセス可否および実施すべき責務を判定するために、前記属性抽出インタフェース手段としての機能に、入出力イベントを渡すとともに、入出力イベントに関する属性情報を問い合わせを行わせる
請求項２４記載のアクセス制御用プログラム。
【請求項２６】
コンピュータを、
アクセス制御システムの位置状況または時間状況を検知する状況検知手段として機能させ、
ポリシー解釈手段としての機能に、前記状況検知手段としての機能によって検知された状況に応じてアクセス可否および実施すべき責務を判定させる
請求項２４または請求項２５記載のアクセス制御用プログラム。
【請求項２７】
コンピュータを、
状況検知手段が検知した状況に応じて責務を実施するタイミングを制御する責務実施時期管理手段として機能させる
請求項２６記載のアクセス制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス制御システム、アクセス制御方法およびアクセス制御用プログラムに関し、特に、アクセス制御において、アクセス要求の可否判定に加えて、暗号化やログ記録などの付帯条件としての責務を遂行することができるアクセス制御システム、アクセス制御方法およびアクセス制御用プログラムに関する。
【背景技術】
【０００２】
増加の一途をたどるサーバ装置の電力消費量や運用コストの低減、さらに企業内パーソナルコンピュータ（ＰＣ）の集中管理やシンクライアント化などといったニーズから、マシン仮想化技術が注目されつつある。しかし、仮想マシンに対するセキュリティ対策技術が不十分であったことから、近年、いくつかの仮想マシン向けアクセス制御システムが提案されている。
【０００３】
一例として、特許文献１に記載されているアクセス制御システムがある。特許文献１に記載されているシステムでは、ユーザ端末上に、「秘密」・「一般」の２種に分類された仮想マシンと、両仮想マシン間の通信を監視・制御するセキュリティゲートウェイとが備えられている。そして、セキュリティゲートウェイが、一般仮想マシンから秘密仮想マシンへのデータ送信のみを認めるように動作することによって、秘密仮想マシン内で扱われる業務データが一般仮想マシンに漏えいすることを防止する。
【０００４】
また、情報漏えい防止や業務監査などの目的で、アクセス時に入出力されるデータの暗号化や、アクセス時のログ記録などといった対策の実施が求められている。仮想マシンに対して、アクセス可否の制御機能に加えて、ＩＰ暗号化機能をもつアクセス制御システムの一例として、非特許文献１に記載されているセキュアメッセージルータ（Secure Messaging Router ；ＳＭＲ）がある。しかし、ＳＭＲにおけるアクセスポリシーに記載されるものは、アクセス可否に関するルールであり、暗号化の実施要否は記載されず、アクセスポリシーは任意の通信に対して適用される。
【０００５】
暗号化やログ記録などの対策の要否や、実施に際するパラメータ設定（暗号鍵など）は、本来、アクセス可否判定と同様に、アクセス主体・アクセス客体・アクションなどに関する条件を伴う。例えば、アクセス客体やアクション（通信の方向性など）に付随するリスクと、対策実施のコストとを考慮して、対策実施の要否や組み合わせ方などを柔軟に定義できることが求められる。具体的には、社内のＰＣまたはサーバ装置において稼動する仮想マシンに対して、社外への通信については広くログを記録し、特に関係会社など重要な情報がやり取りされる通信について暗号化を施すが、社内への通信についてはログ記録も暗号化も行わないというように定義できることが好ましい。また、セキュリティ管理者の視点からは、アクセス可否の制御も、上記対策の一種であり、実際に社外の特定のＷｅｂサーバに対する通信を遮断することが広く行われている。
【０００６】
このような状況を鑑みると、アクセスポリシーは、アクセス主体・アクセス客体・アクションなどに関する条件の定義、アクセス可否の定義、そして実施すべき対策の定義とを、一体として記述できることが望ましい。例えば、ＯＡＳＩＳ標準の１つであるＸＡＣＭＬ（eXtensible Access Control Markup Language ）は、「責務（Ｏｂｌｉｇａｔｉｏｎ）」として実施すべき対策に関する定義を、上記の条件の定義やアクセス可否の定義とともに記述できる構文を備えている。
【０００７】
そのような統合的なアクセスポリシーを実施するアクセス制御システムの一例が、特許文献２に記載されている。特許文献２に記載されているシステムは、図３４に示すように、クライアント装置４０と通信を行う文書管理サーバ２０と、文書管理サーバ２０と通信を行うセキュリティ管理サーバ１０とを備えている。文書管理サーバ２０は、クライアント装置４０におけるアプリケーション４１からの要求に応じて、セキュリティ管理サーバ１０をアクセスする。セキュリティ管理サーバ１０には、セキュリティ機能の管理を行うセキュリティ管理モジュール１１が搭載されている。セキュリティ管理モジュール１１には、セキュリティ情報として、主体分類情報１１１、資源分類情報１１２、ポリシー１１３および責務詳細情報１１４が記憶されている。文書管理サーバ２０において、文書管理モジュール２１は、文書管理サーバ２０に格納されている文書へのアプリケーション４１からのアクセスに伴う責務として、ログ記録を実施する。責務内容判定モジュール２２は、所定のポリシー１１３の記述に従って、ログ記録の要否およびログの記録方法を決定して、文書管理モジュール２１に指示を発行する。このような構成によって、例えば、文書に対するアクション（閲覧、印刷、消去など）などに応じて、ログ記録の要否や記録内容の詳細度などをアクセスポリシーで定義・制御することができる。
【０００８】
なお、ポリシーにもとづいて所定の判断を行うシステムとして、特許文献３に記載されたシステムがある。
【０００９】
【特許文献１】特開２００６−２０１８４５号公報（図１）
【特許文献２】特開２００６−１３４２１６号公報（図３）
【特許文献３】特開２００７−１５６６１２号公報（図７）
【非特許文献１】Watanabe, Y., et al., “Bridging the Gap Between Inter-communication Boundary and Internal Trusted Components ”，Proceedings of ESORICS 2006 ，Lecture Notes on Computer Science ，vol. 4189 ，pp. 65-80  ，2006  （図３，７２頁）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
特許文献１および非特許文献１に記載された仮想マシン向けアクセス制御システムでは、解釈できるアクセスポリシーが、いずれもアクセス主体・アクセス客体・アクションなどに関する条件の定義と、アクセス可否の定義のみを含み、責務の定義を含まないため、責務の定義を含むアクセスポリシーの実施が困難である。
【００１１】
また、特許文献２に記載されている文書管理モジュール２１は、文書アクセスの可否を判定・制御する手段を備えているので、特許文献１に記載されているセキュリティゲートウェイにログ記録の実施手段を設け、責務内容判定モジュール２２と組み合わせることによって、仮想マシンに対する責務を含めたアクセス制御システムを構成することが考えられる。しかし、そのような構成では、実施できる責務がログ記録に限定される。
【００１２】
さらに、非特許文献１に記載されているＳＭＲを加えても、責務内容判定モジュール２２は、記録すべきログの内容など、ログ記録に関する責務実施指示に特化しているので、ログ記録とは異なる指示内容（暗号鍵や暗号アルゴリズムなど）を持つＳＭＲ内部の暗号化手段に対する責務実施指示を生成できない。すなわち、責務の任意の組み合わせを実施することができない。
【００１３】
また、仮想化手段から得られる仮想マシンの入出力イベントは、一般に低レベルのイベントである。すると、ＳＭＲのようなＩＰパケット毎の暗号化に加えて、電子メールの暗号化など、複数の入出力イベントで構成されるアプリケーションデータに対する責務を遂行することは難しい。
【００１４】
さらに、仮想マシンに対するアクセス制御システム特有のもう１つの課題として、アクセス制御システム自身の使用リソース量の抑制が求められる。この課題は、仮想マシンとアクセス制御システムとが、双方を稼動させる物理マシンが有する限られたリソースを分け合って利用しているので、一般に有用なアプリケーションを稼動させる仮想マシンにできる限り多くのリソースを割り当てたいという要請に起因する。従って、与えられたアクセスポリシーの定義内容に応じて、アクセス制御システムを構成する各種手段から不用な手段を特定し、特定した手段を削除することが好ましい。
【００１５】
本発明は、アクセス制御システムにおいて、特に、アクセス可否に加え、アプリケーションデータの暗号化やログ記録など責務の定義を含むアクセスポリシーを実施できるアクセス制御システムを提供することを目的とする。また、本発明の他の目的は、アクセスポリシー内の責務の定義に応じて、責務を実施するモジュールを自動配付できるアクセス制御システムを提供することである。
【課題を解決するための手段】
【００１６】
本発明によるアクセス制御システムは、入出力イベントを監視し、入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う監視手段と、アクセス可否および責務の実施に関する条件を定義した所定のアクセスポリシーを解釈する手段であって、監視手段からの問い合わせに対して、アクセスポリシーにもとづいてアクセス可否および実施すべき責務を判定して監視手段に応答するポリシー解釈手段と、所定の責務を実施する複数の責務実施手段と、監視手段からの責務の実施依頼に応じて、該当する責務を実施する責務実施手段を複数の責務実施手段から特定して呼び出し、呼び出した責務実施手段の応答を監視手段に転送する責務実施インタフェースとを備えたことを特徴とする。
【００１７】
本発明による端末装置は、アクセス要求の可否判定および所定の責務を実施するアクセス制御システムにおける端末装置であって、入出力イベントを監視し、入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う監視手段と、アクセス可否および責務の実施に関する条件を定義した所定のアクセスポリシーを解釈する手段であって、監視手段からの問い合わせに対して、アクセスポリシーにもとづいてアクセス可否および実施すべき責務を判定して監視手段に応答するポリシー解釈手段と、所定の責務を実施する複数の責務実施手段と、監視手段からの責務の実施依頼に応じて、該当する責務を実施する責務実施手段を複数の責務実施手段から特定して呼び出し、呼び出した責務実施手段の応答を監視手段に転送する責務実施インタフェースとを備えたことを特徴とする。
【００１８】
本発明によるサーバ装置は、仮想マシンとデバイスとの間の入出力イベントを中継する仮想化手段と、仮想化手段から伝達される入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う監視手段と、アクセス可否および責務の実施に関する条件を定義した所定のアクセスポリシーを解釈する手段であって監視手段からの問い合わせに対してアクセスポリシーにもとづいてアクセス可否および実施すべき責務を判定して監視手段に応答するポリシー解釈手段と、所定の責務を実施する複数の責務実施手段と、監視手段からの責務の実施依頼に応じて、該当する責務を実施する責務実施手段を複数の責務実施手段から特定して呼び出し、呼び出した責務実施手段の応答を監視手段に転送する責務実施インタフェースと、アクセスポリシーに定義された責務のリストと登録ずみ責務実施手段のリストとを比較して、不要な責務実施手段を削除するとともに、不足している責務実施手段の配付を要求するコンピュータ管理手段とを備えた端末装置と通信可能に接続されるサーバ装置であって、責務実施手段を格納し、コンピュータ管理手段からの要求に応じて、責務実施手段をコンピュータ管理手段に配付する責務管理手段を備えたことを特徴とする。
【００１９】
本発明によるアクセス制御方法は、入出力イベントを監視し、入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行う監視し、アクセス可否および責務の実施に関する条件を定義した所定のアクセスポリシーを解釈する手段であって、問い合わせに対して、アクセス可否および実施すべき責務を判定して応答し、責務の実施依頼に応じて、該当する責務を実施する責務実施処理を複数の責務実施処理から特定して実施し、実施した責務実施処理の応答を、責務の実施依頼元に転送することを特徴とする。
【００２０】
本発明によるアクセス制御用プログラムは、コンピュータを、仮想マシンとデバイスとの間の入出力イベントを中継する仮想化手段から伝達される入出力イベントを監視し、入出力イベントにもとづいて、アクセス可否の制御および責務の実施依頼を行う監視手段と、アクセス可否および責務の実施に関する条件を定義した所定のアクセスポリシーを解釈する手段であって、監視手段からの問い合わせに対して、アクセスポリシーにもとづいてアクセス可否および実施すべき責務を判定して監視手段に応答するポリシー解釈手段と、所定の責務を実施する複数の責務実施手段と、監視手段からの責務の実施依頼に応じて、該当する責務を実施する責務実施手段を複数の責務実施手段から特定して呼び出し、呼び出した責務実施手段の応答を監視手段に転送する責務実施インタフェース手段として機能させることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、電子メールなどのアプリケーション入出力に伴って発生する入出力イベントに対して、アクセス可否・暗号化・ログ記録などの多様なアクセスポリシーを適用できる。
【発明を実施するための最良の形態】
【００２２】
１．第１実施形態
１．１  構成
図１は、アクセス制御システムの第１実施形態の構成を示すブロック図である。アクセス制御システムの一例であるコンピュータ１００Ａは、中央制御装置（ＣＰＵ）１０１と、２次記憶装置やネットワークインタフェース装置などのデバイス１０２と、仮想ＣＰＵや仮想デバイスなどを生成する仮想化手段１０３と、仮想マシン１０４と、監視手段１０５と、ポリシー解釈手段１０６と、１つ以上の責務実施手段１０７−１〜１０７−Ｎと、責務実施インタフェース１０８とを備えている。以下、責務実施手段１０７−１〜１０７−Ｎを、責務実施手段１０７と総称する。
【００２３】
仮想マシン１０４は、仮想デバイス設定ファイル（仮想デバイスの構成が記録されたファイル）やＯＳディスクイメージ（ＯＳがインストールされたディスクイメージ）等の仮想マシンイメージに相当する。仮想化手段１０３は、仮想マシン環境を構築するものであり、例えば、ＸｅｎやＶＭＷａｒｅ（登録商標）で実現可能である。また、仮想化手段１０３は、仮想マシン１０４とデバイス１０２との間の入出力イベントを中継する。
【００２４】
監視手段１０５は、仮想化手段１０３を監視し、仮想化手段１０３とデバイス１０２との間の入出力をフックし、得られた入出力イベントに応じたアクセス可否や実施すべき責務（遂行すべき責務）をポリシー解釈手段１０６に問い合わせる。問い合わせには、得られた入出力イベントが付随する。さらに、監視手段１０５は、ポリシー解釈手段１０６から責務の指示（責務実施指示）の応答を受けると、責務実施インタフェース１０８に責務実施指示を与える。責務実施指示には、パラメータ等が付随する。そして、監視手段１０５は、責務実施インタフェース１０８から、責務実施手段１０７による責務の実施結果を応答として受け取る。
【００２５】
ポリシー解釈手段１０６は、監視手段１０５からの問い合わせに応じて、１次記憶装置または２次記憶装置内に格納されているポリシーを解釈し、監視手段１０５に対して、アクセス可否判定結果や責務実施指示を監視手段１０５に応答する。
【００２６】
責務実施手段１０７は、責務実施インタフェース１０８からの呼出パラメータを伴う呼び出しに応じて、所定の責務を実施し、その実施結果を責務実施インタフェース１０８に出力する。
【００２７】
責務実施インタフェース１０８は、図２に示すように、１次記憶装置または２次記憶装置に格納されている責務管理表１０８１と１次記憶装置または２次記憶装置に形成されているバッファ１０８２とを有する。責務実施インタフェース１０８は、監視手段１０５からの責務実施指示に応じて、責務実施指示に含まれる入出力イベントおよびパラメータリストをバッファ１０８２に格納し、責務管理表１０８１を参照して、適切な責務実施手段１０７を呼び出す。また、責務実施手段１０７の出力（実施結果）をバッファ１０８２に格納し、その格納データを監視手段１０５に応答として転送する。
【００２８】
なお、監視手段１０５、ポリシー解釈手段１０６、責務実施インタフェース１０８および責務実施手段１０７は、それらの機能を実現するためのプログラムとプログラムに従って制御を実行するＣＰＵ１０１とによって実現可能である。
【００２９】
１．２  全体の動作
図３のシーケンス図を用いて、本実施形態の全体の動作を詳細に説明する。
【００３０】
仮想マシン１０４が入出力処理を行うと、仮想化手段１０３とデバイス１０２との間で入出力イベントが発生する（ステップａ１）。監視手段１０５は、仮想化手段１０３から、仮想マシン１０２とデバイス１０２との間で発生する入出力イベントを得て（ステップａ２）、ポリシー解釈手段１０６に対して問い合わせを行う（ステップａ３）。問い合わせには、少なくとも、デバイス名と、入力であるか出力であるかの情報が含まれる。また、追加情報として、例えばネットワークインタフェースカード（ＮＩＣ）に対する入出力である場合には、ＩＰアドレスやポート番号などの情報が加わる。なお、この段階では、発生した入出力の処理の実行はまだ実行されない。
【００３１】
ポリシー解釈手段１０６は、問い合わせを受け取ると、内部に保持しているポリシーを解釈して、実施すべき責務を特定する。すなわち、どの責務実施手段１０７に、どのような処理をさせればよいか判断し、責務実施指示を監視手段１０５に対して発行する（ステップａ４）。責務実施指示は、例えば、「暗号化責務実施手段に暗号化の処理をさせる」、「ログ責務実施手段にログ記録の処理をさせる」などである。複数の責務がアクセスポリシーに定義されている場合には（図５や図６参照）、責務実施指示は、個々の責務実施手段１０７の呼び出しに対応する責務実施指示のリスト（集合）である。個々の責務実施指示は、アクセスポリシーで指定されたパラメータリストや、責務の実施結果の出力先などを含む。例えば、暗号化を行う責務実施手段１０７について、暗号鍵や暗号アルゴリズムの指定などがパラメータリストである。また、責務実施手段１０７が出力する暗号化データに対して、パスワードロックがかかるＳＤメモリカード等の耐タンパーデバイスなど特定のデバイス１０２に強制的に出力することがアクセスポリシーで規定されている場合には、出力先デバイス１０２の指定が責務実施指示に含まれる。なお、ポリシー解釈手段１０６のより詳細な動作については１．３節で説明する。
【００３２】
次に、監視手段１０５は、責務実施インタフェース１０８を介して、責務実施指示で指定された責務実施手段１０７を呼び出し、必要な責務を実施させる（ステップａ５）。より詳細な動作については１．４節で説明する。責務実施手段１０７は、暗号化やログ記録などの所定の責務実施処理を行い、その結果を、責務実施インタフェース１０８を介して、監視手段１０５に応答する。監視手段１０５は、責務実施インタフェース１０８から転送された責務実施手段１０７の応答を、責務実施指示に従って、仮想化手段１０３に転送する。仮想化手段１０３は、出力イベントが発生している場合には責務実施指示で指定されたデバイス１０２に情報を渡して、中断されている出力処理を再開して完了させる。入力イベントが発生している場合には仮想マシン１０４に情報を渡して、中断されている入力処理を再開して完了させる（ステップａ６）。
【００３３】
１．３  ポリシー解釈の詳細
１．３．１  ポリシー解釈手段１０６の詳細な動作
次に、図４のフローチャートを用いて、ポリシー解釈手段１０６が実行するポリシー解釈動作（図３におけるステップａ４）を説明する。
【００３４】
ポリシー解釈手段１０６は、まず、未処理のポリシーがあるかチェックし、無ければ処理をステップｂ５に遷移する（ステップｂ１）。未処理のポリシーがある場合は、ポリシー（１．３．２節で説明される<policy>タグ）を読み込む（ステップｂ２）。次に、読み込んだポリシーと監視手段１０５からの入出力イベントを含んだ問い合わせとを比較し、ポリシーの条件定義（１．３．２節で説明される<target>タグ）と入出力イベントとが合致するか否かを判断する（ステップｂ３）。合致しない場合は、ステップｂ１に戻る。
【００３５】
ポリシーの条件定義と入出力イベントとが適合する場合には、ポリシー解釈手段１０６は、ポリシーの責務定義（１．３．２節で説明される<obligations> タグ）を解釈して、実施すべき責務を特定して、責務実施指示を生成する（ステップｂ４）。既に責務実施指示が生成されている場合には、それに対して、ステップｂ４で生成した責務実施指示を追記する。
【００３６】
ポリシー解釈手段１０６は、全てのポリシーを処理した後、責務実施指示を監視手段１０５に出力する（ステップｂ５）。
【００３７】
１．３．２  アクセスポリシーの記述形式と評価方法
本発明におけるアクセスポリシーには、仮想マシン１０４とデバイス１０２との間で発生する入出力イベントに対して、アクセス可否の条件と実施すべき責務とが、１組のルールとして記述される。図５に示す例では、「IP encryption 」と「USB logging 」と名づけられた２つのアクセスポリシー（<policy>タグ）が記載されている。<target>タグに、アクセス主体（<subject> ）、アクセス客体（<object>）、およびアクション（<action>）に関する条件が定義され、<obligation>タグに、実施すべき責務が定義される。<rule>タグはアクセス可否を定義するタグであり、例えば、<rule effect = “allow ”> という記述は、<target>タグに合致する入出力イベントを許可することを意味している。
【００３８】
［条件の記述形式］
<target>タグ内で、アクセス主体・アクセス客体・アクションのオブジェクトは、それぞれ定数sbj・obj・act として参照される。各オブジェクトはいくつかの属性を持ち、例えば、図５に示すIP encryption ポリシーでは、sbj.type・obj.device・act.nameといった属性が参照され、それぞれアクセス主体のタイプ属性（ユーザＯＳなど）・アクセス客体のデバイス属性（ＮＩＣやＵＳＢストレージなどのデバイス種別）・アクションの名前属性を意味している。
【００３９】
ポリシー解釈手段１０６は、仮想化手段１０３から監視手段１０５を経て取得された入出力イベントを基に、これらの属性値を設定する。例えば、ある仮想マシン１０４がＩＰパケットを送出したとき、仮想化手段１０３は、仮想マシン１０４のＩＤやタイプなどの仮想マシン属性、アクセス先デバイスの種別やＩＰアドレスなどのデバイス属性、およびアクションの名前や入力・出力など情報流の方向性に関する属性を、ＩＰパケット本体とともに入出力イベントに含める。ポリシー解釈手段１０６は、入出力イベントに含まれる各種属性情報を、対応するオブジェクトおよび属性にあらかじめ設定して、<target>タグを評価する。
【００４０】
［責務の記述形式］
<obligations> タグは、１つ以上の責務の定義（<obligation>）を含む。例えば、図５を参照すると、「IP encryption 」ポリシーには、ログ記録（logging ）と暗号化（encryption）の２つの責務が定義されている。各責務は記述順序の順に実施されることが望ましいが、ログ記録のように、入出力イベント（特に入出力データ）の書き換えを伴わない副作用のない責務については、この限りではない。
【００４１】
各<obligation>タグにおける責務定義には、責務実施手段１０７に入力されるべきパラメータリストが記述される。例えば、図５を参照すると、「IP encryption 」ポリシーのログ記録に関する責務定義には、「item.1」〜「item.3」の３つのパラメータ名（name）と値（value ）とを１組にして、システムの時間属性（System.time）やアクセス客体の宛先ＩＰアドレス属性（obj.destination_ipaddr）などが指定されている。ポリシー解釈手段１０６は、これらのパラメータリストの定義を参照して、例えば、
<obligation function =“logging ”> 
<parameter name = “item.1”>System.time</parameter>
<parameter name = “item.2”>sbj.ipaddr</parameter> 
<parameter name = “item.3”>obj.destination_ipaddr</parameter> 
</obligation> 
といった責務定義から、以下のようなパラメータリストを生成し、責務実施指示に含める。
【００４２】
・ｉｔｅｍ．１＝０６−２０−２００７  １３：３０：３８（System.time の値、すなわち現在時刻）
・ｉｔｅｍ．２＝１０．２．３．４（sbj.ipaddrの値、すなわち送信元ＩＰアドレス）
・ｉｔｅｍ．３=１３３．１．２．３（obj.destination_ipaddrの値、すなわち宛先ＩＰアドレス）
【００４３】
生成したパラメータリストを責務実施指示に含めることによって、責務実施手段１０７に対して、現在時刻など動的に決定されるパラメータを入力可能になる。なお、図６に例示するように、パラメータ値をＣＮＡＭＥ形式で書き下すようにして、改行などを含む長いパラメータ値の即値（ラテラル）を記述できるようにしてもよい。
【００４４】
また、１つのポリシーに複数の責務が記述されているときには、責務に前の責務の処理結果に応じた条件を付けてもよい。例えば図６を参照すると、「firewall」責務定義につづく「logging 」責務定義に<condition>タグが含まれている。ポリシー解釈手段１０６は、<condition>タグで記述された条件定義を、責務実施条件として責務実施指示に含める。そのような処理を行うことによって、動的な条件にもとづく複数責務の制御構造（例えば、ある責務実施手段１０７の動作状態に応じて他の責務実施手段１０７を呼び出すような構造）をアクセスポリシーで定義できる。よって、ポリシーの記述力がさらに向上する。
【００４５】
１．４  責務実施の詳細な動作
図７のフローチャートを参照して、監視手段１０５、責務実施インタフェース１０８および責務実施手段１０７が実行する責務実施動作を説明する。
【００４６】
図３におけるステップａ４の処理によって、ポリシー解釈手段１０６から責務実施指示を受け取った監視手段１０５は、責務実施インタフェース１０８に、入出力イベントを伴う責務実施指示で指定された責務実施手段１０７の呼び出しを依頼する（ステップａ５−１）。ここで、監視手段１０５による責務実施手段１０７の呼出依頼情報には、少なくとも、責務実施手段１０７の名前（責務名）と、ポリシー解釈手段１０６による指示で指定されたパラメータリストと、仮想化手段１０３から得た入出力イベントとが含まれる。また、監視手段１０６は、責務実施指示に責務実施条件が含まれる場合には、その責務実施条件を評価し、その結果が真となるときのみ、責務実施手段１０７の呼び出しを責務実施インタフェース１０８に依頼する。
【００４７】
責務実施インタフェース１０８は、監視手段１０５から依頼された責務実施手段１０７の呼び出しを行う（ステップａ５−２）。このとき、責務実施インタフェース１０８は、まず、呼び出し依頼で指定された責務名に対応する責務実施手段１０７を、責務管理表１０８１（図８参照）を用いて特定する。そして、呼び出し依頼に含まれる入出力イベントやパラメータリストをバッファ１０８２に格納し、特定した責務実施手段１０７を呼び出す。図８に示すように、責務管理表１０８１には、責務名と責務実施手段１０７を示すデータとが対応付けられて設定されている。
【００４８】
このとき、好適には、図２に示すように、バッファ１０８２内に入出力イベントの系列を格納するメモリ領域（入力キュー）を確保し、それらのアドレスを責務実施手段１０７に伝達する。すると、責務実施手段１０７が、複数の入出力イベントを参照できるようになり、アプリケーションデータに対する暗号化などの責務の実施が可能になる。図２において、入力キューから責務実施手段１０７にデータが渡されることが、”ｉｎｂｕｆ”として示されている。例えば、ブロック暗号を用いる場合、一般にブロック暗号の入力データ長（ブロック長）は暗号アルゴリズムにより、ある固定値（例えば６４ビット）が定められる。一方、入出力イベントに含まれるアプリケーションデータ長は、デバイスによって様々に異なる。その結果、ブロック長より小さなアプリケーションデータ断片が発生しやすい。このようなデータ断片を処理するには、以降の入出力イベントの到達を待って、入力キュー内に十分なアプリケーションデータサイズが格納される必要がある。
【００４９】
責務実施手段１０７は、以降の処理に十分なサイズの入力が得られるまで待機するため、入力キューに格納されたデータを逐次読み出しながら、内部的に備えられているバッファに追加することによって、断片化されたアプリケーションデータの統合およびサイズの確認を行う。
【００５０】
その後、責務実施手段１０７は、責務実施インタフェース１０８からの呼び出しに応じて、暗号化やログ記録などの所定の責務実施処理を行い、その結果を、責務実施インタフェース１０８を介して、監視手段１０５に応答する（ステップａ５−３）。
【００５１】
このとき、責務実施インタフェース１０８は、バッファ１０８２内に確保した応答キュー（図２参照）に、責務実施手段１０７からの暗号化データなどの責務実施結果を格納する。図２において、責務実施手段１０７から応答キューにデータが格納されることが、”ｏｕｔｂｕｆ”として示されている。責務実施インタフェース１０８は、責務実施手段１０７の動作とは非同期に、応答キューの格納データを順次監視手段１０５に転送する。そのような処理を実行することによって、責務実施手段１０７に入力される入出力イベントの数と、責務実施手段１０７が出力する入出力イベントの数とが異なることが許容される。例えば、メールデータを暗号化する場合、一般に暗号化データは元のデータよりもサイズが増大する。すると、より低レベルなＩＰパケットに再符号化するときに、暗号化データを構成するＩＰパケットの数が、元のデータを構成するＩＰパケットの数よりも多くなる場合がある。この場合、入力キュー内の元の入出力イベント（＝ＩＰパケット）を、暗号化データを含む入出力イベントに書き換えるよりも、応答キューに暗号化データを含む入出力イベントを追加する方法を取ることが望ましい。
【００５２】
そして、監視手段１０５は、責務実施インタフェース１０８から転送された責務実施手段１０７の応答を、責務実施指示に従って、仮想化手段１０３に転送するか、または次の責務実施手段１０７の呼び出しのため、責務実施インタフェース１０８に再入力する（ステップａ５−４）。このとき、監視手段１０５は、責務実施指示を参照して、次の責務実施指示があるか否かを判定し、あれば入出力イベントに代えて、先の責務実施手段１０７の応答を次の責務実施手段１０７に入力する。次の責務実施指示がないとき、すなわち最後の責務実施指示の呼び出し時は、責務実施手段１０７の応答を責務実施指示で指定された出力先に転送するように仮想化手段１０３に指示する。なお、出力先の指定が責務実施指示に含まれない場合には、仮想マシン１０４が指定した元の出力先が責務実施指示に指定されているとして扱う。
【００５３】
１．５  責務実施手段の追加削除
責務実施インタフェース１０８は、責務実施手段追加時に、責務実施手段名（具体的には、責務実施手段名を特定可能なデータ）と担当する責務（具体的には、責務を特定可能なデータ）とを責務管理表に追加する。例えば、ログ責務実施手段がインストールされたときは、責務実施手段名“ログ責務実施手段”と、担当する責務“ログの記録”とが責務管理表に追加される。また、責務実施インタフェース１０８は、責務実施手段削除時に、責務実施手段の項目を責務管理表から削除する。
【００５４】
１．６  効果
本実施形態では、責務実施インタフェース１０８で、監視手段１０５と責務実施手段１０７との間で行われる責務実施手順を統一することによって、様々な責務実施処理をプラグイン化することができる。さらに、ポリシー解釈手段１０６からの責務実施指示に従って、監視手段１０５が責務実施インタフェース１０８を介して、責務実施手段１０７を呼び出すことによって、アクセス可否と責務実施の条件とが統合的に記述されたアクセスポリシーを、仮想マシン１０４に対して適用可能になる。
【００５５】
また、このとき、責務実施手段１０７が、バッファ１０８２内に入力キューおよび応答キューを保持し、複数の入出力イベントを責務実施手段１０７から参照可能とし、責務実施手段１０７の応答を非同期に監視手段１０５に転送することによって、仮想マシン１０４が発する低レベルな入出力イベントに対して、アプリケーションデータの暗号化などの高度な責務実施が可能になる。
【００５６】
１．７  第１実施形態の変形例１
第１実施形態では、コンピュータ１００Ａにおいて１つの仮想マシン１０４が備えられた例を示したが、図９に示すコンピュータ１００Ｂのように、複数の仮想マシン１０４−１〜１０４−Ｎを備えていてもよい。この構成の場合、監視手段１０５は、仮想マシンとデバイス１０２との間の入出力だけではなく、仮想マシンと他の仮想マシンとの間の入出力の監視も行い、仮想マシン間の入出力イベントの処理が可能になる。なお、この場合には、アクセスポリシーには、仮想マシン１０４−１〜１０４−Ｎとデバイス１０２との間で発生する入出力イベントに対して、アクセス可否の条件と実施すべき責務とが１組のルールとして記述されるとともに、仮想マシンと他の仮想マシンとの間で発生する入出力イベントに対して、アクセス可否の条件と実施すべき責務とが１組のルールとして記述される。
【００５７】
１．８  第１実施形態の変形例２
第１実施形態では、責務実施手段１０７は、監視手段１０５から受け取った情報の処理を内部で行っていたが、図１０に示すように、ネットワークを介して通信可能なサーバと連携して処理を行ってもよい。図１０に示す責務実施手段連携サーバ５００Ｃは、コンピュータ１００Ｃにおける責務実施手段１０７と連携するサーバであり、例えば、ログ責務実施手段と連携するログ記録サーバや、暗号化責務実施手段と連携する鍵管理サーバである。
【００５８】
この構成の場合、例えば、ログ責務実施手段がログ記録サーバへログを書き出すことにより、コンピュータのＨＤＤ障害時にもログを確認できる。また、暗号化責務実施手段が鍵管理サーバと連携することで、鍵の配付を遠隔から行うことができる。
【００５９】
２．第２実施形態
２．１  構成
図１１は、アクセス制御システムの第２実施形態の構成を示すブロック図である。第２実施形態は、管理サーバ２００が、ポリシー管理手段２０１と責務管理手段２０２とを備え、１台以上のコンピュータ１００Ｄ−１〜１００Ｄ−Ｎが、コンピュータ管理手段１０９を備えている点で、第１実施形態とは異なっている。以下、コンピュータ１００Ｄ−１〜１００Ｄ−Ｎを、コンピュータ１００Ｄと総称することがある。
【００６０】
ポリシー管理手段２０１は、管理者が作成したポリシーを、内部に備えているる不揮発性メモリ（１次記憶装置）や２次記憶装置に格納する。また、クライアントであるコンピュータ１００Ｄ−１〜１００Ｄ−Ｎのポリシー解釈手段１０６に対して、ネットワーク（通信路）を介してポリシーの配付を行う。
【００６１】
責務管理手段２０２は、内部に備えている不揮発性メモリや２次記憶装置に、責務実施手段１０７を格納する。そして、コンピュータ１００Ｄ−１〜１００Ｄ−Ｎのコンピュータ管理手段１０９からの要求に応じて、責務実施手段１０７を配付する。コンピュータ管理手段１０９は、ポリシー解釈手段１０６に格納されているアクセスポリシーと、責務実施インタフェース１０８に格納されている責務管理表とを比較して、責務実施手段１０７の過不足を特定する。また、不足する責務実施手段１０７を責務管理手段２０２からダウンロードして、責務実施インタフェース１０８の責務管理表に対応するエントリを追加登録する。また、アクセスポリシーの更新などに伴って、不要になった責務実施手段１０７そのものを削除するとともに、責務実施インタフェース１０８の責務管理表から対応するエントリを削除する。
【００６２】
２．２  動作
次に、図１２のフローチャートを用いて、第２実施形態の責務実施手段１０７のアップデートやインストール、ポリシーのアップデートの動作を説明する。これら以外の動作は、第１実施形態と同様であり、説明を省略する。
【００６３】
まず、コンピュータ１００Ｄのポリシー解釈手段１０６が管理サーバ２００のポリシー管理手段２０１に、ポリシーの追加、削除または修正があるかどうか確認する（ステップｃ１）。
【００６４】
ポリシーの追加がある場合には、ポリシー解釈手段１０６が追加されたポリシーをポリシー管理手段２０１からダウンロードし、内部に備えている不揮発性メモリ（１次記憶装置）や２次記憶装置にポリシーを格納する。ポリシーの削除がある場合には、ポリシー解釈手段１０６は、どのポリシーを削除すればよいかポリシー管理手段２０１から指示を受け、指示されたポリシーを削除する。ポリシーの修正の場合には、どのポリシーをどのように変更すればよいかポリシー管理手段２０１から指示を受け、指示されたポリシーを修正する（ステップｃ２）。
【００６５】
次に、コンピュータ管理手段１０９は、ポリシー解釈手段１０６に格納されているポリシーを参照し、必要な責務実施手段１０７を求める（ステップｃ３）。例えば、図６に示す例では、ファイアーウォールの記録とログの記録とが責務として記述されているので、ファイアーウォール責務実施手段とログ責務実施手段が必要であると求められる。具体的には、コンピュータ管理手段１０９が、ポリシー解釈手段１０６に格納されているアクセスポリシーの各責務定義（<obligation>タグ）を走査して、インストールを要する責務実施手段１０７に相当する責務名集合DEMANDEDを抽出する。
【００６６】
そして、必要な責務実施手段１０７が求められると、コンピュータ管理手段１０９は既にインストールされている責務実施手段１０７を確認し、新たにインストールすべき責務実施手段１０７や、不要な責務実施手段１０７があるかどうか確認を行う（ステップｃ４）。具体的には、まず、コンピュータ管理手段１０９が、責務実施インタフェース１０８が保持する責務管理表（図８参照）の各レコードを走査して、インストール済みの責務実施手段１０７に相当する責務名の集合INSTALLED を取得する。そして、コンピュータ管理手段１０９は、DEMANDEDとINSTALLED の集合差TO_BE_INSTALLED およびTO_BE_REMOVED を計算して、インストールすべき責務実施手段１０７および削除すべき責務実施手段１０７を特定する。ここで、TO_BE_INSTALLED ＝ DEMANDED − INSTALLED であり、TO_BE_REMOVED ＝ INSTALLED − DEMANDED である。
【００６７】
その後、新たにインストールすべき責務実施手段１０７がある場合（すなわち、TO_BE_INSTALLED が空でない場合）には、責務管理手段２０２から責務実施手段１０７をダウンロードして、インストールを行う。また、責務管理手段２０２からアップデート情報を受け取り、アップデートされている責務実施手段１０７をダウンロードして、アップデートを行う。また、削除すべき責務実施手段１０７がある場合（すなわち、TO_BE_REMOVED が空でない場合）には、不要な責務実施手段１０７を削除する（ステップｃ５）。
【００６８】
以上のように、コンピュータ管理手段１０９は、責務管理手段２０２から責務実施手段１０７をダウンロードする。しかし、図１３に示すように、ステップｃ２の処理を実行した後、責務管理手段２０２がポリシーから必要な責務実施手段１０７を求め、コンピュータ管理手段１０９に対して責務実施手段の配付を行ってもよい。図１３に示す例では、コンピュータ管理手段１０９が、ステップｃ２の処理を実行した後、責務実施インタフェース１０８に保持されている責務管理表を責務管理手段２０２に送信する（ステップｃ３’）。
【００６９】
そして、責務管理手段２０２は、ポリシー管理手段２０１に格納されているアクセスポリシーを参照しながら、コンピュータ管理手段１０９によるステップｃ３の処理同様の方法で、インストールを要する責務実施手段１０７に相当する責務名集合DEMANDEDを求める（ステップｃ４’）。
【００７０】
その後、責務管理手段２０３は、送信された責務管理表から、インストール済みの責務実施手段１０７に相当する責務名の集合INSTALLED を求め、DEMANDEDとINSTALLED の集合差TO_BE_INSTALLED 、およびTO_BE_REMOVED を算出して、インストールすべき責務実施手段１０７および削除すべき責務実施手段１０７を特定する（ステップｃ５’）。
【００７１】
インストールすべき責務実施手段１０７または削除すべき責務実施手段１０７がある場合には、責務管理手段２０３は、TO_BE_INSTALLEDの各要素に対応する責務実施手段１０７を示す情報と、TO_BE_REMOVEDの内容とを含むインストール情報を生成し、コンピュータ管理手段１０９に送信する（ステップｃ６’）。コンピュータ管理手段１０９は、インストール情報に含まれる責務実施手段１０７をインストールし、TO_BE_REMOVED で指定される責務実施手段１０７を削除する（ステップｃ７’）。
【００７２】
２．３  効果
本実施形態では、コンピュータ管理手段１０９によって、アクセスポリシーで実施が求められている責務実施手段１０７のみが、コンピュータ１００C−１〜１００C−Ｎに格納されることが保証される。すなわち、アクセスポリシーの更新などによって不要になった責務実施手段１０７を保持するための無駄なリソース消費を削減できる。また、責務管理手段２０２が、不足している責務実施手段１０７を自動的に配付するので、コンピュータ１００Ｄ−１〜１００Ｄ−Ｎの管理者の運用負荷を低減できる。
【００７３】
３．第３実施形態
３．１  構成
図１４は、アクセス制御システムの第３実施形態の構成を示すブロック図である。本実施形態では、アクセス制御システムの一例であるコンピュータ１００Ｅは、第１実施形態または第２実施形態における構成に加えて、属性抽出インタフェース手段１１０と、属性抽出手段１１１−１〜１１１−Ｎとを備えている。なお、属性抽出インタフェース手段１１０および属性抽出手段１１１−１〜１１１−Ｎは、それらの機能を実現するためのプログラムとプログラムに従って制御を実行するＣＰＵ１０１とによって実現可能である。また、属性抽出手段１１１−１〜１１１−Ｎを、属性抽出手段１１１と総称することがある。
【００７４】
図１５に示すように、属性抽出インタフェース手段１１０は、１次記憶装置または２次記憶装置に格納されている属性抽出手段管理表１１０１と、１次記憶装置または２次記憶装置に形成されているバッファ１１０２とを有する。属性抽出手段管理表１１０１には、関数名に対応付けられた属性抽出手段名が記載されている。属性抽出インタフェース手段１１０は、ポリシー解釈手段１０６から入力される属性抽出要求に応じて、属性抽出手段管理表１１０１を参照して、適切な属性抽出手段１１１−１〜１１１−Ｎのいずれかを呼び出す。また、属性抽出手段１１１−１〜１１１−Ｎの応答のデータをバッファ１１０２に格納した上で、そのデータを順次ポリシー解釈手段１０６に転送する。
【００７５】
属性抽出手段１１１−１〜１１１−Ｎは、属性抽出インタフェース手段１１０から入出力イベントやその他パラメータリストなどを受け取り、入出力イベントから、アクセスポリシーの条件判定に必要なアクセス主体・客体などの属性を抽出し、応答する。例えば、属性抽出手段がＳＭＴＰメール属性抽出手段である場合には、ＳＭＴＰパケットを解析して、メールの宛先、差出人、添付ファイルの有無の情報を抽出する。
【００７６】
３．２  動作
第３実施形態におけるコンピュータ１００Ｅにおけるポリシー解釈手段１０６の条件判定動作は、第１実施形態または第２実施形態におけるポリシー解釈手段１０６の条件判定動作（図４のステップｂ３）とは異なる。以下、図１６を参照して、本実施形態におけるポリシー解釈手段１０６の条件判定動作を詳細に説明する。
【００７７】
本実施形態では、ポリシー解釈手段１０６は、前段で読み込んだアクセスポリシーに定義された条件定義（<target>タグ）を参照し、「＝＝」などの２項比較演算子を含む各条件節を抽出し、各条件節を参照しながら、以下のステップを繰り返す（ステップｆ１）。
【００７８】
まず、条件節に関数呼出しがあるか否かを判定する（ステップｆ２）。ここで、関数呼出しは、例えば「IsSmtpRecipient （“taro@xxx.com”，“jiro@yyy.com”，・・・）」のように、関数名（IsSmtpRecipient ）とパラメータリスト（“taro@xxx.com”，“jiro@yyy.com”，・・・）などの構文を持つものとする。ポリシー解釈手段１０６は、その構文に従った記述が条件節に現れるかどうかを、アクセスポリシーに対する構文解析処理で求める。
【００７９】
条件節に関数呼び出しが含まれない場合には、第１実施形態または第２実施形態におけるステップｂ３の処理と同様に、オブジェクトの属性値を参照して、条件節の真偽値を算出し（ステップｆ３）、ステップｆ１に戻る。
【００８０】
関数呼び出しが含まれる場合には、ポリシー解釈手段１０６は、属性抽出インタフェース１１０に、関数名、パラメータリスト、入出力イベントなどを入力するとともに、属性情報を問い合わせる。属性抽出インタフェース１１０は、関数名を基に属性抽出手段管理表１１０１を走査し、対応する属性抽出手段１１１−１〜１１１−Ｎを特定して、呼び出す（ステップｆ４）。このとき、属性抽出インタフェース１１０は、図１５に示すように、バッファ１１０２内に入出力イベントの系列を格納するメモリ領域（入力キュー）などを確保し、それらのアドレスを属性抽出手段１１１に伝達する。
【００８１】
その後、呼び出された属性抽出手段１１１−１〜１１１−Ｎは、属性抽出インタフェース１１０の入力キューやパラメータリストを参照しながら、入出力イベントから属性を抽出する属性抽出動作を行い、抽出した属性値を属性抽出インタフェース１１０の応答キューに格納する（ステップｆ５）。
【００８２】
以上の処理によって、属性抽出手段１１１は、複数の入出力イベントを参照できるようになり、アプリケーションデータの内容から属性値を抽出できる。例えば、メールの宛先属性は、複数のＩＰパケット（＝メール送信時の入出力イベント）にまたがって現れ得る。このような場合、メール宛先属性を抽出する属性抽出手段１１１は、複数ＩＰパケット系列を格納した入力キューを参照することによって、正しくメールの宛先属性を抽出できる。
【００８３】
そして、属性抽出インタフェース１０８は、応答キューに格納された属性値をポリシー解釈手段１０６に転送し、ポリシー解釈手段１０６が、属性値を用いて現在評価中の条件節の真偽値を決定する（ステップｆ３）。
【００８４】
全ての条件節の評価を完了した後、条件文全体の真偽値にもとづいて、ポリシー解釈手段１０６は、第１実施形態または第２実施形態におけるポリシー解釈手段１０６のステップｂ４およびステップｂ５の処理と同様の処理によって責務実施指示を生成し、監視手段１０５に出力する。
【００８５】
なお、ステップｆ５において、属性抽出手段１１１−１〜１１１−Ｎは、属性抽出に必要な入出力イベント系列が、入力キューに格納されていない場合、抽出不能を示す「INPROC例外」を発行する（ステップｆ６）。この場合、アクセスポリシーの特殊な判定値として、INPROC判定を監視手段１０５に出力し、以降の処理を中断する（ステップｆ７）。この場合、監視手段１０５は、現在参照中の入出力イベントを、仮想化手段１０３への転送も遮断もせず、次の入出力イベントを待ち合わせる。
【００８６】
図１７は、図１４に示されたコンピュータ１００Ｅに対して、第１実施形態や第２実施形態における責務実施インタフェース１０８および責務実施手段１０７が明示的に設けられているコンピュータ１００Ｆの構成を示すブロック図である。図１７に示す構成において、監視手段１０５は、ポリシー解釈手段１０６から責務実施指示の応答を受けると、責務実施インタフェース１０８に、入出力イベントを伴う責務実施指示で指定された責務実施手段１０７の呼び出しを依頼する。責務実施インタフェース１０８は、監視手段１０５から依頼された責務実施手段１０７の呼び出しを行う。責務実施手段１０７は、責務実施インタフェース１０８からの呼び出しに応じて、所定の責務実施処理を行い、その結果を、責務実施インタフェース１０８を介して、監視手段１０５に応答する。
【００８７】
３．３  効果
本実施形態では、属性抽出インタフェース１１０によって、属性抽出手段１１１をプラグイン化することができるので、新たなアプリケーションに固有の属性抽出（例えば、メールの宛先情報など）への対応が容易になる。また、アクセスポリシーにアプリケーション固有の属性にもとづく条件が記述できるようになり、実施できるポリシーの表現力がさらに向上する。
【００８８】
以上のように、上記の実施形態において、第１実施形態のアクセス制御システムは、仮想マシン１０４によるデバイス１０２への入出力イベントを中継する仮想化手段１０３から伝達された入出力イベントに対して入出力イベントの許可・拒否を制御する監視手段１０５と、アクセスポリシーを解釈するポリシー解釈手段１０６と、アクセスポリシーに指定された責務を実施する責務実施手段１０７と、責務実施手段１０８の特定・呼び出しを行う責務実施インタフェース１０９とを備えている。
【００８９】
監視手段１０５は、仮想化手段１０３からある入出力イベントを受け取るたびに、入出力イベントに対する制御方法をポリシー解釈手段１０６に問い合わせる。ポリシー解釈手段１０６は、所定のアクセスポリシーと、問い合わせに含まれるイベント情報（どの仮想マシンがどのデバイスにどんなデータを入力もしくは出力したか）とを比較し、合致するポリシー単位を解釈して、入出力イベントに対応するアクセス可否の判定と、実施すべき責務の名前や実施時のパラメータ等とを含む、責務実施指示を生成し、責務実施指示を監視手段１０５に応答する。
【００９０】
監視手段１０５は、責務実施指示に応じて、入出力イベントを仮想化手段１０３に中継したり遮断したりしてアクセス可否を制御するとともに、指示で求められる責務の実施を開始させるために、入出力イベントや責務の名前・パラメータ等を責務実施インタフェース１０８に入力する。
【００９１】
責務実施インタフェース１０８は、入出力イベントや責務の名前・パラメータ等の監視手段１０５からの入力に応じて、責務管理表１０８１を参照して、責務を実施すべき責務実施手段１０７を特定し、入出力イベントやパラメータを伴って適切な責務実施手段１０７を呼び出した後、その応答を監視手段１０５に転送する。責務実施インタフェース１０８は、責務実施手段１０７の呼出しに際して、内部に備えているバッファ１０８２内に構成されたキューに、入出力イベントを追加し、キューの内容を責務実施手段１０７に参照させる。
【００９２】
責務実施手段１０７は、入力された入出力イベントおよびパラメータ等に応じて、暗号化やログなどの所定の動作を行い、その結果を責務実施インタフェース１０８に応答する。例えば、暗号化のための責務実施手段１０７であれば、監視手段１０５からパラメータとして、入出力データ・暗号鍵・暗号アルゴリズム指定などのパラメータを受け取り、指定された暗号アルゴリズムと暗号鍵とを用いて、入出力データを暗号化し、暗号化データを責務実施インタフェース１０８に戻す。
【００９３】
このような構成を採用して、責務実施インタフェース１０８で、監視手段１０５と責務実施手段１０７との間で行われる責務実施手順を統一することで、様々な責務実施処理をプラグイン化することができる。さらに、ポリシー解釈手段１０６からの責務実施指示に従って、監視手段１０５が責務実施インタフェース１０８を介して責務実施手段１０７を呼び出すように構成することによって、アクセスポリシーにアクセス可否と責務実施の条件とを統合的に記述・適用することが可能になる。また、責務実施インタフェース１０８が、バッファ１０８２を備え、複数の入出力イベントを責務実施手段１０７から参照可能とすることによって、例えば、ＩＰパケット単独ではなく、一連のＳＭＴＰを構成するＩＰパケット系列で構成されるメールデータのみを暗号化するなど、複数の入出力イベントで構成されるアプリケーションデータに対する責務の実施が可能になる。
【００９４】
第１実施形態では、固有のユーザＯＳに依存することなく、電子メールなどのアプリケーション入出力に伴って発生する仮想マシンの入出力に対して、アクセス可否・暗号化・ログ記録など、多様なアクセスポリシーを一貫して実施できる。その理由は、ポリシー解釈手段１０６が、アクセス可否のルールに加えて、暗号化・ログ記録など、実施すべきアクションを併記したアクセスポリシーを解釈して責務実施指示を生成し、監視手段１０５が責務実施指示に従って、責務実施インタフェース１０８を介して、適切な責務を実施する責務実施手段１０７を呼び出すためである。
【００９５】
また、ＩＰパケット等、仮想マシンによる低レベルな入出力データに対してだけでなく、メールデータなど、一連の入出力データの一部のみに、暗号化などの責務を適用することができる。その理由は、責務実施インタフェース１０８が、バッファ１０８２を備え、複数の入出力イベントを責務実施手段１０７から参照できるためである。
【００９６】
また、第２実施形態のアクセス制御システムは、第１実施形態のアクセス制御システムの構成に加えて、コンピュータ管理手段１０９を備えている。コンピュータ管理手段１０９は、ポリシー解釈部１０６が格納するアクセスポリシーと、責務実施インタフェース１０８に接続されている責務実施手段１０７のリストとを比較して、アクセスポリシーの適用に必要な責務実施手段１０７の集合を特定し、不用な責務実施手段１０７の削除や、不足している責務実施手段１０７の追加などを行う。
【００９７】
コンピュータ管理手段１０９が自動的に責務実施手段１０７の追加・削除を行うように構成されているので、アクセスポリシー内の責務の定義に応じて、責務を実施するモジュールを自動配付できるようにするという本発明の第２の目的を達成することができる。
【００９８】
また、有限の物理的な記憶リソースを、仮想マシン１０４と、責務実施手段１０７等を含むプラットフォームソフトウェアとが共有するコンピュータ構成において、プラットフォームソフトウェアが使用する記憶リソースを必要最小限に抑えることができる。その理由は、コンピュータ１００Ｄ−１〜１００Ｄ−Ｎで実施されるアクセスポリシーを管理する管理サーバ２００が、責務管理手段２０２およびコンピュータ管理手段１０９を用いて、アクセスポリシーに定義された責務に対応する責務実施手段１０７を自動的にコンピュータ１００Ｄ−１〜１００Ｄ−Ｎにインストールするとともに、ポリシーに定義されていない責務実施手段１０７をコンピュータ１００から自動的に削除することによって、コンピュータ１００Ｄ−１〜１００Ｄ−Ｎが必要最小限の責務実施手段１０７を備えることが保証されるためである。
【００９９】
なお、上記の各実施形態のアクセス制御システムは、仮想マシン１０４とデバイス１０２との間の入出力イベントを中継する仮想化手段１０３を備え、監視手段１０５は、仮想化手段１０３から伝達される入出力イベントにもとづいてアクセス可否の制御および責務の実施依頼を行うように構成されていたが、監視手段が、物理的なマシン（実マシン）に入力される入力イベントや実マシンから出力される出力イベントを監視する場合にも、本発明を適用することができる。
【０１００】
４．第４実施形態
第３実施形態では、仮想マシン１０４が発生させる入出力データから属性を抽出する属性抽出手段１１１と、属性抽出手段１１１による属性抽出方法とを説明したが、属性を抽出することに代えて、端末位置や現在時刻など、入出力データとは独立して発生する、アクセス制御システム（具体的には、コンピュータ等）に係る位置に関する状況または時間に関する状況の情報（以下、コンテキスト情報という。）を抽出するようにしてもよい。
【０１０１】
４．１  構成
図１８は、アクセス制御システムの第４実施形態の構成を示すブロック図である。本実施形態では、アクセス制御システムの一例であるコンピュータ１００Ｊは、図１４に示された第３実施形態におけるコンピュータ１００Ｅにおける属性抽出手段１１１−１〜属性抽出手段１１１−Ｎに代えて、コンピュータ位置や時間などのコンテキスト情報をポリシー解釈手段１０６に提供するコンテキスト情報抽出手段１１２−１〜１１２−Ｎを備えている。なお、コンテキスト情報抽出手段１１２−１〜１１２−Ｎを、コンテキスト情報抽出手段１１２と総称することがある。また、コンピュータ１００Ｊは、図１４に示された属性抽出手段１１１−１〜属性抽出手段１１１−Ｎも備えていることが好ましい。その場合には、第３実施形態による効果も併せて得ることができる。また、属性抽出インタフェース１１０の構成は、第３実施形態におけるものと同様の構成であるが、本実施形態では、属性抽出手段管理表１１０１（図１５参照）に、関数名に対応付けられた属性抽出手段名に代えて、コンテキスト情報抽出手段名が記載されている。
【０１０２】
図１９に示すように、コンテキスト情報抽出手段１１２は、コンテキスト情報の最新状態を記憶する状態記憶手段１１２１と、コンテキスト情報の変化を通知するイベント発行手段１１２２とを備えている。
【０１０３】
状態記憶手段１１２１は、不揮発性メモリや２次記憶装置などで構成され、コンテキスト情報の最新状態を記憶する。そして、イベント発行手段１１２２からの変化通知に応じて、コンテキスト情報の状態を更新する。イベント発行手段１１２２は、無線タグ（ＲＦＩＤ；Radio Frequency Identification）と通信を行う無線タグ装置、ＧＰＳ（Global Positioning System ）装置、無線アクセスポイント検出装置等のセンサ装置やアルタイムクロック装置などを備え、検出状態等が変化したことを状態記憶手段１１２１に通知する。
【０１０４】
４．２  動作
第４実施形態のアクセス制御システムの動作は、第３実施形態における属性抽出インタフェース１１０による属性抽出手段１１１の呼び出し、および属性抽出手段１１１の属性抽出動作（図１６におけるステップｆ４〜ｆ７）が、属性抽出インタフェース１１０によるコンテキスト情報抽出手段１１２の呼び出し、およびコンテキスト情報抽出手段１１２によるコンテキスト情報抽出動作（図２０におけるステップｊ１〜ｊ５）に置き換えられた点で、第３実施形態の動作とは異なる。以下、図２０のフローチャートおよび図２１のアクセスポリシーの一例を示す説明図を参照して、本実施形態におけるポリシー解釈手段１０６のコンテキスト情報抽出動作について詳細に説明する。
【０１０５】
まず、ポリシー解釈手段１０６は、アクセスポリシーの条件節（<condition>タグ）を逐次参照しながら（ステップｆ１）、第３実施形態におけるポリシー解釈手段１０６と同様に、条件節に関数呼出し（図２１に示す例では、TerminalLocation（）など）が含まれるか否か確認する（ステップｆ２）。
【０１０６】
条件節に関数呼び出しが含まれる場合には、ポリシー解釈手段１０６は、少なくとも関数名とパラメータリストとを含むコンテキスト情報抽出要求を属性抽出インタフェース１１０に出力する。属性抽出インタフェース１１０は、関数名を基に属性抽出手段管理表１１０１を走査して、対応するコンテキスト情報抽出手段１１２を特定して、呼び出す（ステップｊ１）。
【０１０７】
ステップｊ１の処理で呼び出されたコンテキスト情報抽出手段１１２は、状態記憶手段１１２１の記憶内容を参照して、最新のコンテキスト情報を取得する（ステップｊ２）。そして、属性抽出インタフェース１１０を介して、ポリシー解釈手段１０６に当該コンテキスト情報を出力する（ステップｊ３）。その後、ポリシー解釈手段１０６は、入力したコンテキスト情報を用いて条件判定を行う（ステップｆ３）。本実施形態では、ポリシー解釈手段１０６は、コンテキスト情報抽出手段１１２が検知した状況（コンテキスト）に応じてアクセス可否および実施すべき責務を判定することになる。
【０１０８】
なお、コンテキスト情報抽出手段１１２は、上述したコンテキスト情報抽出動作とは独立して、コンテキスト情報の更新を行う（ステップｊ４，ｊ５）。具体的には、イベント発行手段１１２２がセンサ情報や時刻情報等のコンテキスト情報の変化を検知したときに、変化後のセンサ情報や時刻情報等を状態記憶手段１１２１に通知する（ステップｊ４）。すると、状態記憶手段１１２１は、イベント発行手段１１２２からの通知に含まれる情報で、過去のコンテキスト情報を最新の情報に更新する（ステップｊ５）。
【０１０９】
４．３  効果
本実施形態のアクセス制御システムは、コンテキスト情報抽出手段１１２によるステップｊ４，ｊ５の動作によって、常に最新の位置情報やセンサ情報や時刻情報にもとづくアクセス制御を実現でき、営業業務や保守業務などでコンピュータ１００Ｊを携帯するような場合に、移動中の不適切なインターネットアクセス等に起因する情報漏えい事故を防止することができる。
【０１１０】
また、ステップｊ１の動作を実行することによって、任意のコンテキスト情報を組み合わせた条件文を記載したアクセスポリシーを定義できるようになり、コンピュータ１００Ｊの使用を特定の時間かつ特定のオフィス内に制限することができ、保守業務などで頻繁に発生する派遣先企業の重要データの漏えいなどを防止することができる。
【０１１１】
５．第５実施形態
第４実施形態では、入出力データとは独立して発生するコンテキスト情報を抽出するようにしたが、さらに、コンテキスト情報の変化にもとづいて責務を実施するタイミングを制御するようにしてもよい。
【０１１２】
５．１  構成
図２２は、アクセス制御システムの第５実施形態の構成を示すブロック図である。本実施形態では、アクセス制御システムの一例であるコンピュータ１００Ｋは、第４実施形態におけるコンピュータ１００Ｊの構成に加えて、責務実施手段１０７と責務実施インタフェース１０８とを備えている。
【０１１３】
属性抽出インタフェース１１０には、第４実施形態の場合と同様に、ポリシー解釈手段１０６からコンテキスト情報抽出要求が入力される。さらに、本実施形態では、属性抽出インタフェース１１０は、コンテキスト情報抽出手段１１２がコンテキスト情報の変化を検知したときに、コンテキスト情報の変化通知を責務実施インタフェース１０８に対して出力する。コンテキスト情報の変化通知には、コンテキスト情報の名前と変更後の最新のコンテキスト情報とが含まれる。
【０１１４】
責務実施インタフェース１０８は、第１実施形態または第２実施形態における構成に加えて、不揮発性メモリや２次記憶装置などを含む責務実施待機手段１０８３を備えている。責務実施インタフェース１０８は、監視手段１０５から入力された責務実施指示に「責務実施条件」が含まれる場合に責務実施指示を責務実施待機手段１０８３に登録する。そして、その責務実施条件に合致するコンテキスト情報抽出手段１１２から属性抽出インタフェース１１０を介してコンテキスト情報の変化通知を受けたときに、責務実施指示に対応する責務実施手段１０７を呼び出し、責務実施手段１０７の出力（実施結果）を監視手段１０５に応答する。
【０１１５】
５．２  動作
図２３は、第５実施形態の全体の動作を示すフローチャートである。図２３を参照すると、本実施形態のアクセス制御システムは、第１実施形態のアクセス制御システムにおける責務実施インタフェース１０８が責務実施手段１０７を呼び出して責務を実施させる処理（ステップａ５）を実行する前に、責務実施インタフェース１０８が、責務実施処理を待機する処理（ステップｋ１）と、属性抽出インタフェース１１０からコンテキスト情報の変化通知を待ち合わせる処理（ステップｋ２）とを実行する点で、第１実施形態と異なる。
【０１１６】
まず、ステップａ１〜ａ４までの動作によって、監視手段１０５が責務実施インタフェース１０８に責務実施指示を出力する。責務実施指示は、下記のようなアクセスポリシーの責務定義に相当するものとする。下記の責務定義は、コンテンツ情報抽出手段１１２が「SSID_companyA 」以外のＳＳＩＤ（Service Set Identifier）を近傍の無線アクセスポイントから受信したときに、「/secret 」ディレクトリ配下にある全てのファイルを削除することを意味している。
<obligation function ＝”RemoveFiles ”>
<condition> TerminalLocation！＝“SSID_companyA ”</condition>
<parameter name ＝”filename” value＝”/secret/* ”/>
</obligation> 
【０１１７】
上記の<condition> タグで記載される「責務実施条件」を含む責務実施指示に対して、責務実施インタフェース１０８は、当該責務実施指示を責務実施待機手段１０８３に入力して、以降の処理を一時中断する。責務実施待機手段１０８３は、ステップｋ１の処理で、責務実施指示に含まれる責務名（LogUpload ）と、条件式（TerminalLocation！＝“SSID_companyA ”）とを、不揮発性メモリまたは２次記憶装置内の待機表（図示せず）に登録する。
【０１１８】
その後、属性抽出インタフェース１１０は、属性抽出インタフェース１１０に接続されている任意のコンテキスト情報抽出手段１１２からコンテキスト情報の変化通知がある度に、コンテキスト情報の名前（例えば、TerminalLocation）と、変更後の最新のコンテキスト情報（SSID_CompanyB ）との組を含む変化通知を責務実施インタフェース１０８に転送する。変化通知を受けた責務実施インタフェース１０８は、責務実施待機手段１０８３の待機表を走査して、コンテキスト情報の名前を含む条件式（TerminalLocation！＝“SSID_companyA ”）を抽出し、コンテキスト情報（SSID_CompanyB ）を用いて条件式の真偽値を評価する（ステップｋ２）。
【０１１９】
そして、条件式が真のときにのみ、責務実施インタフェース１０８は、責務名（RemoveFiles ）に相当する責務実施手段１０７を呼び出す（ステップａ５）。
【０１２０】
５．３  効果
以上の構成および動作にもとづいて、本実施形態におけるアクセス制御システムは、コンテキスト情報の変化に応じて責務を実施する。具体的には、責務実施インタフェース１０８が、責務実施手段１０７が責務を実施するタイミングを制御する。よって、さらに多様なアクセスポリシーを実現できるようになる。例えば、上記の例では、コンピュータ位置がComapanyA 以外になった場合、すなわちComapanyA のオフィスからコンピュータが持ち出された場合に、所定のディレクトリ（/secret/）に格納されたファイルを削除させることができ、当該ファイルの持ち出しを禁ずるアクセスポリシーの徹底が可能になる。
【０１２１】
なお、図２２に示された第５実施形態のアクセス制御システムは、図１に示された第１実施形態のアクセス制御システムに、コンテキスト情報抽出に係る属性抽出インタフェース１１０とコンテキスト情報抽出手段１１２とを組み込んだ構成になっているが、第１実施形態の変形例のアクセス制御システム、第２実施形態のアクセス制御システムまたは第３実施形態のアクセス制御システムに、コンテキスト情報抽出に係る属性抽出インタフェース１１０とコンテキスト情報抽出手段１１２とを組み込んでもよい。
【実施例１】
【０１２２】
本発明によるアクセス制御システムの実施例を、図２４を参照して説明する。
【０１２３】
（１）構成
図２４に示すように、本実施例では、コンピュータ１００Ｇ−１が、属性抽出手段としてのメール宛先属性抽出手段１１１Ｇ−１と責務実施手段としてのメール暗号化責務実施手段１０７Ｇ−１とを備え、コンピュータ１００Ｇ−２が、責務実施手段としてのメール復号責務実施手段１０７Ｇ−２を備えている。
【０１２４】
メール宛先属性抽出手段１１１Ｇ−１は、ポリシー解釈手段１０６−１からＳＭＴＰパケットの入力を受けて、メールの宛先アドレスのリストを抽出し、ポリシー解釈手段１０６−１に返す。
【０１２５】
メール暗号化責務実施手段１０７Ｇ−１は、鍵管理サーバ５００Ｇから暗号化のための鍵を受信し、監視手段１０５−１から渡されたメールを暗号化し、暗号化されたメールを監視手段１０５−１へ返す責務実施手段である。
【０１２６】
メール復号責務実施手段１０７Ｇ−２は、鍵管理サーバ５００Ｇから復号のための鍵を受け取り、監視手段１０５−２から渡されたメールを復号し、復号されたメールを監視手段１０５−２に返す責務実施手段である。
【０１２７】
鍵管理サーバ５００Ｇは、メール暗号化責務実施手段１０７Ｇ−１およびメール復号責務実施手段１０７Ｇ−２に鍵を配付する。鍵管理サーバ５００Ｇは、鍵配布前に認証を行い、鍵を配付するコンピュータを限定してもよい。例えば、ＳＳＬのクライアント認証を用いることによって、悪意のある第３者が成りすましによって不正に鍵を取得することを防ぐことができる。
【０１２８】
メール送信サーバ３００は、従来用いられているＳＭＴＰサーバであり、コンピュータ１００Ｇ−１から、ＳＭＴＰによるメール送信要求を受け付け、メール受信サーバ４００にメールを転送する。
【０１２９】
メール受信サーバ４００は、従来用いられているＰＯＰサーバであり、メール送信サーバ３００からメールを受信し、内部に設けられている２次記憶装置にメールを格納する。また、コンピュータ１００Ｇ−２からのＰＯＰによるメール受信要求に応じて、格納されたメールを送信する。
【０１３０】
なお、ＣＰＵ１０１−１，１０１−２は、それぞれ図１に示されたＣＰＵ１０１と同様のものであり、ＮＩＣ１０２−１，１０２−２は、それぞれ図１に示されたデバイス１０１の一例としてのＮＩＣである。仮想化手段１０３−１，１０３−２は、それぞれ図１に示された仮想化手段１０３に相当するものであり、仮想マシン１０４−１，１０４−２は、それぞれ図１に示された仮想マシン１０４に相当するものである。監視手段１０５−１，１０５−２は、それぞれ図１に示された監視手段１０５に相当するものであり、ポリシー解釈手段１０６−１，１０６−２は、それぞれ図１に示されたポリシー解釈手段１０６に相当するものである。責務実施インタフェース１０８−１，１０８−２は、それぞれ図１に示された責務実施インタフェース１０８に相当するものである。属性抽出インタフェース１１０−１は、図１４に示された属性抽出インタフェース１１０に相当するものである。
【０１３１】
（２）利用シーン
本実施例において、コンピュータ１００Ｇ−１はxxx 社のユーザtaroが用い、コンピュータ１００Ｇ−２はyyy 社のユーザjiroが用いるものとする。また、taroとjiroはソフトウェア共同開発など、xxx-yyy 連携プロジェクトに属するメンバーであるとし、taroがjiroや、xxx 社内にメールを送信する場合を想定する。
【０１３２】
鍵管理サーバ５００Ｇは、インターネットサービスプロバイダ（ＩＳＰ）などの第三者サイトに設置してもよいが、本実施例ではxxx 社サイトに設置され、xxx 社のセキュリティ管理者によって、xxx-yyy 連携プロジェクト用の鍵（K<xxx,yyy>）や、xxx 社内専用の鍵（K<xxx>）などが生成され管理されているとする。
【０１３３】
また、メール送信サーバ３００はxxx 社サイトで運用され、メール受信サーバ４００はyyy 社サイトで運用され、xxx-yyy 連携プロジェクトやxxx 社内のメール送受信に限らず、その他インターネット上の他サイトとのメール送受信も行われているとする。
【０１３４】
（２．１）ポリシー記述例
本実施例では、taroによる送信メールを暗号化するために、図２５に例示するポリシーが、コンピュータ１００Ｇ−１のポリシー解釈手段１０６−１に設定されている。
【０１３５】
なお、
・「Mail to Prj<xxx,yyy>」ポリシー：仮想マシン１０４−１が送信したＩＰパケットのポート番号がＳＭＴＰである場合、「jiro@yyy.com」「proj-ml@xxx.com 」・・・のいずれかのみを含むときに、アクセスを許可する。ただし、メール暗号化責務実施手段１０７Ｇ−１によって、メールデータはxxx-yyy 連携プロジェクト鍵で暗号化される。
・「Mail to @xxx.com」ポリシー：仮想マシン１０４−１が送信したＩＰパケットのポート番号がＳＭＴＰである場合、アクセスを許可する。ただし、メール暗号化責務実施手段１０７Ｇ−１によって、メールデータはxxx 社内鍵で暗号化される。
【０１３６】
また、jiroがtaroからのメールを復号するために、図２６に例示するポリシーが、コンピュータ１００Ｇ−２のポリシー解釈手段１０６−２に設定されている。本ポリシー例は、以下のような意味をもつ。
・「Mail retrieval」ポリシー：仮想マシン１０４Ｇ−１が送信したＩＰパケットのポート番号がＰＯＰである場合、アクセスを許可する。ただし、メール復号責務実施手段１０７Ｇ−２によって、メールデータはxxx-yyy 連携プロジェクト鍵で復号される。
【０１３７】
（３）動作
上記のポリシーに従って、コンピュータ１００Ｇ−１とコンピュータ１００Ｇ−２との間でメール送受信を行う際のアクセス制御システムの動作例を説明する。以下、コンピュータ１００Ｇ−１によるメール送信動作と、コンピュータ１００Ｇ−２によるメール受信動作とをそれぞれ示す。
【０１３８】
（３．１）メール送信動作
図２７は、コンピュータ１００Ｇ−１、メール送信サーバ３００、および鍵管理サーバ５００Ｇによるメール送信動作を示すフローチャートである。
【０１３９】
コンピュータ１００Ｇ−１内の仮想マシン１０４−１から、ＳＭＴＰによるメール送信要求が発行されたとき、メール送信要求を構成するＩＰパケットの系列（以下、便宜的にＳＭＴＰパケット系列と呼ぶ。）が、仮想化手段１０３−１を介して、監視手段１０５−１に到達する（ステップｄ１）。
【０１４０】
監視手段１０５−１は、ＳＭＴＰパケット系列に含まれるＩＰパケットを順次ポリシー解釈手段１０６−１に入力して、責務実施指示を問い合わせる（ステップｄ２）。
【０１４１】
問い合わせに含まれるＩＰパケットのポート番号がＳＭＴＰであるので、ポリシー解釈手段１０６−１は、図２５に示すアクセスポリシーに従って、ＩＰパケットを、属性抽出インタフェース１１０−１を介して、メール宛先属性抽出手段１１１Ｇ−１に入力する。メール宛先属性抽出手段１１１Ｇ−１は、受信者のメールアドレスリストを、受信者属性として抽出する（ステップｄ３）。
【０１４２】
ここで、ＲＦＣ−２８２１に記載されているように、ＳＭＴＰは受信者のメールアドレスを逐一ＲＣＰＴコマンドで指定する。また、ＲＣＰＴコマンドの前には、送信者のメールアドレスのみを含むＭＡＩＬコマンドが先行していなければならない。従って、メール宛先属性抽出手段１１１Ｇ−１は、ＳＭＴＰパケット系列の先頭パケットのみから、受信者属性を抽出できない場合がある。このとき、３．２節で説明したように、メール宛先属性抽出手段１１１Ｇ−１が例外信号を発行して、属性抽出インタフェース１１０−１がＩＰパケットを入力キューに保持させて、後続するＲＣＰＴコマンドを全てバッファリングさせる。また、ポリシー解釈手段１０６−１がアクセス可否判定結果としてINPROC判定を発行することによって、監視手段１０５−１はＩＰパケットの責務実施インタフェース１０８−１への転送を一時待ち合わせる。このような動作によって、メール宛先属性抽出手段１１１Ｇ−１は、ＳＭＴＰパケット系列から全ての受信者属性を抽出することができる。その結果、受信者のメールアドレスに関する条件を正しく判定できることになり、アクセスポリシーに従った適切なアクセス可否判定と責務実施を保証することができる。
【０１４３】
なお、INPROC判定を受けた監視手段１０５−１は、ＴＣＰ  ＡＣＫパケットなどの擬似的な応答パケットを生成して仮想マシン１０４−１に入力し、後続するＳＭＴＰパケット系列の送信を促すことが望ましい。
【０１４４】
メール宛先属性抽出手段１１１Ｇ−１が受信者属性の抽出を完了した後、ポリシー解釈手段１０６−１は、アクセスポリシーの評価を再開し、アクセス可否判定としてＡＬＬＯＷ判定を応答するとともに、メール暗号化に係る責務実施指示を生成し、監視手段１０５−１に発行する（ステップｄ４）。
【０１４５】
監視手段１０５−１は、メール暗号化に係る責務実施指示を受けて、ＳＭＴＰパケット系列、暗号鍵に関するパラメータ（Prj<xxx,yyy>）、および暗号アルゴリズムのパラメータ（ＡＥＳ）を、責務実施インタフェース１０８−１を介して、メール暗号化責務実施手段１０７Ｇ−１に入力し、呼び出す（ステップｄ５）。
【０１４６】
呼び出されたメール暗号化責務実施手段１０７Ｇ−１は、暗号鍵に関するパラメータとして指定されたグループ名「Prj<xxx,yyy>」を鍵管理サーバ５００Ｇに入力して、xxx-yyy 連携プロジェクト鍵K_prj<xxx,yyy>を取得する。さらに、暗号鍵とパラメータで指定された暗号アルゴリズムであるＡＥＳを用いて、ＳＭＴＰパケット系列（厳密には、ＤＡＴＡコマンドに後続するＩＰパケットの系列）に含まれるメールデータを暗号化する（ステップｄ６）。このとき、メールデータのボディ部または添付ファイルのみを暗号化することが望ましい。
【０１４７】
その後、メール暗号化責務実施手段１０７Ｇ−１が出力するＳＭＴＰパケット系列に含まれるＩＰパケットが、責務実施インタフェース１０８−１、監視手段１０５−１、および仮想化手段１０３−１を経て、順次メール送信サーバ３００に送信される（ステップｄ７）。
【０１４８】
メール送信サーバ３００は、ＲＣＰＴコマンドで指示されたjiro@yyy.comに対応するメール受信サーバ４００に、暗号化メールを転送する（ステップｄ８）。
【０１４９】
以上の動作によって、taro@xxx.comからjiro@yyy.comに宛てたメールが、アクセスポリシーに規定された通り、適切にxxx-yyy 連携プロジェクト鍵K_prj<xxx,yyy>によって暗号化される。
【０１５０】
（３．２）メール受信動作
図２８は、コンピュータ１００Ｇ−２によるメール受信の動作を示すフローチャートである。
【０１５１】
コンピュータ１００Ｇ−２内の仮想マシン１０４−２が、メール受信サーバ４００Ｄに向けて、ＰＯＰによるメール受信要求を送信したとき、メール受信要求を構成するＩＰパケットの系列（便宜的にＰＯＰパケット系列と呼ぶ。）が、仮想化手段１０３−２を経て、監視手段１０５−２に到達する（ステップｅ１）。監視手段１０５−２は、ＰＯＰパケット系列に含まれるＩＰパケットを順次、ポリシー解釈手段１０６−２に入力して、アクセス可否判定および責務実施指示に関する問い合わせを行う（ステップｅ２）。
【０１５２】
このとき、問い合わせに含まれるＩＰパケットのポート番号がＰＯＰであるので、ポリシー解釈手段１０６−２は、図２６に示されたアクセスポリシーに従って、ＡＬＬＯＷ判定を応答するとともに、メール復号に係る責務実施指示を生成し、監視手段１０５−２に発行する（ステップｅ３）。
【０１５３】
その後、監視手段１０５−２は、ＰＯＰパケット系列、暗号鍵に関するパラメータ（Prj<xxx,yyy>）、および暗号アルゴリズムのパラメータ（ＡＥＳ）を、責務実施インタフェース１０８−２を介して、メール復号責務実施手段１０７Ｇ−２に入力し、呼び出す（ステップｅ４）。
【０１５４】
呼び出されたメール復号責務実施手段１０７Ｇ−２は、暗号鍵に関するパラメータとして指定されたグループ名「Prj<xxx,yyy>」を鍵管理サーバ５００Ｇに入力して、xxx-yyy 連携プロジェクト鍵K<xxx,yyy>を取得する。さらに、暗号鍵とパラメータで指定された暗号アルゴリズムであるＡＥＳを用いて、ＰＯＰパケット系列（厳密には、ＲＥＴＲコマンドへの応答ＩＰパケットの系列）に含まれるメールデータを復号する（ステップｅ５）。このとき、メールデータのボディ部または添付ファイルのみを復号することが望ましい。
【０１５５】
その後、メール復号責務実施手段１０７Ｇ−２が出力するＰＯＰパケット系列に含まれるＩＰパケットが、責務実施インタフェース１０８−２、監視手段１０５−２、および仮想化手段１０３−２を経て、順次仮想マシン１０４−２に送信される（ステップｅ６）。
【０１５６】
以上の動作によって、taro@xxx.comからjiro@yyy.comに宛てたメールが、アクセスポリシーに規定された通り、適切にxxx-yyy 連携プロジェクト鍵K<xxx,yyy>によって復号される。
【０１５７】
（４）効果
このように、コンピュータ１００Ｇ−１および１００Ｇ−２が備えている仮想化手段１０３−１および仮想化手段１０３−２と連携したメール暗号化およびメール復号処理によって、（ａ）ユーザＯＳやメールアプリケーションに依存しないメールデータの保護と、（ｂ）企業間の連携プロジェクト毎にメール送信サーバ３００やメール受信サーバ４００を新たに設置する必要はなく、既存のサーバを利用可能であるといった効果が得られる。
【０１５８】
さらに、アクセスポリシーでグループ単位のメール暗号鍵およびメール復号鍵を指定できるので、メールデータの保護を確実に行うことができる。例えば、コンピュータ１００Ｇ−１から「suzuki@xxx.com」など「jiro@yyy.com」や「proj-ml@xxx.com 」以外の宛先を含むメールを送信した場合、「Mail to joint project 」ポリシーではなく、「Mail to@xxx.com 」ポリシーに適合するので、社内専用の鍵K<xxx>がメール暗号化に適用される。このことは、xxx 社の機密文書を含むメールを送信する際に、誤って「jiro@yyy.com」を追加したような場合に、xxx 社内の機密文書が漏れることを防止できるという効果につながる。なぜなら、jiro@yyy.comが用いるコンピュータ１００Ｇ−２に設定される「Mail retrieval」ポリシーには、社内専用の復号鍵K<xxx>の指定が含まれないためである。
【０１５９】
また、「Mail to joint project 」および「Mail retrieval」ポリシーに、ログ記録に関する責務定義を追加することによって、連携プロジェクト内のメール送受信ログを選択的に記録することができる。その場合には、情報漏えいの危険性の高い社外発注業務などで、より高い漏えい抑止効果が得られる。
【実施例２】
【０１６０】
第１実施例は、ネットワークＩ／Ｏの制御に関するものであったが、本発明を、ハードディスクやＵＳＢメモリなどのストレージＩ／Ｏの制御にも適用できる。以下、具体的な例を用いて、第１実施形態におけるストレージＩ／Ｏの制御方法を説明する。
【０１６１】
（１）構成
図２９を参照すると、本実施例におけるコンピュータ１００Ｈは、第１実施形態におけるコンピュータ１００Ａの構成において、責務実施手段１０７として、ファイル暗号化責務実施手段１０７Ｈ−１と、ファイル復号責務実施手段１０７Ｈ−２とを有し、それらの責務実施手段に共通のサブモジュールであるファイルシステム解析手段１０７１Ｈを有する。また、デバイス１０２として、少なくともハードディスク装置やＵＳＢメモリ装置などのストレージデバイス１０２Ｈを有する。
【０１６２】
ファイル暗号化責務実施手段１０７Ｈ−１は、責務実施インタフェース１０８からの呼出しに応じて、入力キュー内のＩ／Ｏイベントを読み込みながら、ファイルシステム解析手段１０７１Ｈを介して、Ｉ／Ｏイベントに対応するファイル情報を取得する。また、責務実施インタフェース１０８から、パラメータとして指定された暗号鍵や暗号アルゴリズムを用いて、Ｉ／Ｏイベント系列で構成されるファイルデータを暗号化し、出力キューに格納する。
【０１６３】
ファイル復号責務実施手段１０７Ｈ−２は、責務実施インタフェース１０８からの呼出しに応じて、入力キュー内のＩ／Ｏイベントを読み込みながら、ファイルシステム解析手段１０７１Ｈを介して、Ｉ／Ｏイベントに対応するファイル情報を取得する。また、責務実施インタフェース１０８から、パラメータとして指定された暗号鍵や暗号アルゴリズムを用いて、Ｉ／Ｏイベント系列で構成されるファイルデータを復号し、出力キューに格納する。
【０１６４】
ファイルシステム解析手段１０７１Ｈは、ファイル暗号化責務実施手段１０７Ｈ−１またはファイル復号責務実施手段１０７Ｈ−２から入力されたＩ／Ｏイベントを基に、ストレージデバイス１０２Ｈを走査して特定した、Ｉ／Ｏイベントに対応するファイル情報を応答する。
【０１６５】
（２）動作
以下、本実施例におけるコンピュータ１００Ｈ内の仮想マシン１０４によるファイル書出し時および読込み時の動作を説明する。図３０に示すように、ストレージデバイス１０２Ｈに対する書込みイベントおよび読込みイベントに対して、ファイル暗号化責務およびファイル復号責務が定義されたアクセスポリシーが与えられているとする。
【０１６６】
（２．１）ファイル書出し時の動作
あるファイルＦの書き出しに伴って、仮想マシン１０４はストレージデバイス１０２Ｈに対して、一連の書込みイベントを発行する（図３におけるステップａ１の処理に相当）。通常、そのような書込みイベントには、図３１に示すようにストレージデバイス１０２Ｈ上の位置（セクタ番号）と、ファイルＦのデータ断片が含まれている。その後、それぞれの書込みイベントは、仮想化手段１０３を経て、監視手段１０５に伝達され（図３におけるステップａ２の処理に相当）、さらにポリシー解釈手段１０６に伝達される（図３におけるステップａ３の処理に相当）。
【０１６７】
ポリシー解釈手段１０６は、書込みイベントを、アクセスポリシーと照合して、実施すべき責務としてファイル暗号化責務（File Encryption）を特定する。そして、責務実施指示を生成して、監視手段１０５に応答する（図３におけるステップａ４の処理に相当）。
【０１６８】
監視手段１０５は、責務実施指示に従って、書込みイベントおよび責務実施指示に記載されたパラメータリストを、責務実施インタフェース１０８に入力して、ファイル暗号化責務実施手段１０７Ｈ−１を呼び出し、責務を実施させる（図３におけるステップａ５の処理に相当）。
【０１６９】
図３２は、ファイル暗号化責務実施手段１０７Ｈ−１の動作を示すフローチャートである。ファイル暗号化責務実施手段１０７Ｈ−１は、責務実施インタフェース１０８の入力キューから、書込みイベントを読み出し（ステップｇ１）、読み出した書込みイベントをファイルシステム解析手段１０７１Ｈに入力して、対応するファイル情報を取得する（ステップｇ２）。
【０１７０】
ステップｇ２の処理において、ファイルシステム解析手段１０７１Ｈは、ストレージデバイス１０２Ｈ内のファイルアロケーションテーブル（ＦＡＴ）およびディレクトリエントリを探索して、ファイル名などを含むファイルＦのファイル情報を抽出する。通常、ＦＡＴは、ファイル毎に、ファイルが記録されているセクタ番号のリストを保持している。従って、ファイルシステム解析手段１０７１Ｈは、書込みイベントに含まれるセクタ番号をキーにしてリストを探索することによって、対応するファイルの先頭セクタ番号を特定できる。また、ディレクトリエントリはファイル名などのファイル情報とともに、先頭セクタ番号が記録されている。従って、ファイルシステム解析手段１０７１Ｈは、先頭セクタ番号をキーにして、ディレクトリエントリを検索することによって、書込みイベントに対応するファイルＦのファイル情報を取得できる。また、ファイルシステム解析手段１０７１Ｈは、後段の処理のために、ＦＡＴ内の対応するセクタ番号のリストをファイル情報に含める。
【０１７１】
ファイル暗号化責務実施手段１０７Ｈ−１は、取得したファイル情報を基にファイルＦ用のバッファを責務実施インタフェース１０８内のバッファ領域に確保し、バッファ領域に、書出しイベントに含まれるファイルＦのデータ断片を格納する（ステップｇ３）。ファイル情報内のセクタ番号のリストを参照することによってデータ断片のファイルＦ内の順序が算出できるので、ファイル暗号化責務実施手段１０７Ｈ−１は、算出した順序に従って書出しイベントを格納する。
【０１７２】
このようにして、一連の書出しイベントが、全てファイルＦ用バッファに格納された後、ファイル暗号化責務実施手段１０７Ｈ−１は、ファイルＦ用バッファ内の書出しイベントを先頭から順に走査しながら、各書出しイベントに含まれるファイルデータ断片を、パラメータリストで指定された暗号アルゴリズムおよび暗号鍵を用いて暗号化したファイルデータ断片に置き換える（ステップｇ４）。
【０１７３】
そして、ファイル暗号化責務実施手段１０７Ｈ−１は、ファイルＦ用バッファに格納された各書出しイベントを、責務実施インタフェース１０８の出力キューに出力する（ステップｇ５）。その後、出力キュー内の暗号化された書出しイベントは、責務実施インタフェース１０８、監視手段１０５、仮想化手段１０３を介して、ストレージデバイス１０２Ｆに伝達される（ステップｇ６）。
【０１７４】
以上の動作によって、ストレージデバイス１０２Ｈに、ファイルＦが暗号化されたファイルＦ’が格納される。
【０１７５】
（２．２）ファイル読込み時の動作
ファイルＦの読込みに伴って、仮想マシン１０４は、ストレージデバイス１０２Ｈに対して、一連の読込みイベントを発行する（図３におけるステップａ１の処理に相当）。その後、図３におけるステップａ４の処理に相当する処理でファイル復号責務（File Decryption ）が特定されること、図３におけるステップａ５の処理に相当する処理でファイル復号責務実施手段１０７Ｈ−２が呼び出されること、図３におけるステップａ６の処理に相当する処理で復号された読出しイベントが仮想マシン１０４に伝達されることを除いて、ファイル書込み時の動作と同様である。ただし、ファイル読込み時には、ステップｇ４の処理（図３２参照）で、ファイル復号責務実施手段１０７Ｈ−２はファイルＦ用バッファに含まれるファイルデータ断片を、パラメータリストで指定された暗号アルゴリズムおよび暗号鍵を用いて、復号したファイルデータ断片に置き換える。
【０１７６】
以上のような処理によって、ストレージデバイス１０２Ｈに格納されたファイルＦ’は、復号されたファイルＦとして、仮想マシン１０４に読み出される。
【０１７７】
（３）効果
以上の構成および動作によって、仮想マシン１０４上で動作するＯＳやアプリケーションに依存することなく、ストレージデバイス１０２Ｈ上のファイルを暗号化および復号することができる。責務実施インタフェース１０８が、ファイルＦ用バッファを提供することによって、ファイルのデータ断片ごとに発生する一連の書出しイベントおよび読込みイベントを、バッファに蓄積し、ファイルＦ全体のデータを、ファイル暗号化責務実施手段１０７Ｈ−１およびファイル復号責務実施手段１０７Ｈ−２から参照可にしたからである。
【０１７８】
また、第１実施例のようなネットワークＩ／Ｏに対する暗号化および復号と、第２実施例のようなストレージＩ／Ｏに対する暗号化および復号を同時に実現できる。責務実施インタフェース１０８が、ネットワークＩ／Ｏに対する暗号化および復号を行う責務実施手段と、ストレージＩ／Ｏに対する暗号化および復号を行う責務実施手段とを区別することなく、入力キューおよび出力キューを介した統一された責務実施手段の呼出し動作を行うからである。
【実施例３】
【０１７９】
図３３は、アクセス制御システムの第３実施例の構成を示すブロック図である。第３実施例は、図１８に示された第４実施形態についての実施例である。
【０１８０】
（１）構成
図３３に示すように、コンピュータ１００Ｊは、第４実施形態におけるコンテキスト情報抽出手段１１２として、ＳＳＩＤ抽出手段１１２Ｊを備えている。ＳＳＩＤ抽出手段１１２Ｊは、第４実施形態におけるイベント発行手段１１２２として、無線アクセスポイント検出装置１１２２Ｊを備えている。
【０１８１】
また、ポリシー解釈手段１０６には、図２１に示すアクセスポリシーが登録されているとする。図２１に示すアクセスポリシーには、コンピュータ１００Ｊの位置周辺にある無線アクセスポイント７００から、コンピュータ１００Ｊが受信したＳＳＩＤ（Service Set Identifier）が、「SSID_CompanyA 」である場合にのみ、仮想マシン１０４によるＮＩＣまたはＵＳＢデバイスへのアクセスを許可する旨が記載されている。
【０１８２】
（２）動作
仮想マシン１０４がＮＩＣまたはＵＳＢデバイスにアクセスしたときに、ポリシー解釈手段１０６は、ステップｆ１（図２０参照）の処理で<conditions>タグ中の<condition> タグを逐次参照し、ステップｆ２の処理で「TerminalLocation（）」という関数呼出しを検知する。
【０１８３】
次いで、ステップｊ１の処理で、ポリシー解釈手段１０６が、関数名「TerminalLocation」と空のパラメータリストとを伴うコンテキスト情報抽出要求を属性抽出インタフェース１１０に入力したときに、属性抽出インタフェース１１０は、属性抽出手段管理表１１０１を走査することによって、コンテキスト情報抽出要求に対応するコンテキスト情報抽出手段１１２が、ＳＳＩＤ抽出手段１１２Ｊであることを特定する。
【０１８４】
その後、ステップｊ２で、ＳＳＩＤ抽出手段１１２Ｊは、状態記憶手段１１２１に格納されているＳＳＩＤを取得する。そして、ステップｊ３の処理で、取得したＳＳＩＤを、属性抽出インタフェース１１0を介してポリシー解釈手段１０６に出力する。
【０１８５】
無線アクセスポイント検出装置１１２２Ｊは、コンピュータ１００Ｊの近傍に存在する無線アクセスポイント７００からＳＳＩＤを検出している。ＳＳＩＤに変化があった場合には、ステップｊ４の処理で、ＳＳＩＤ抽出手段１１２Ｊは、ＳＳＩＤに変化があったことを示す情報を状態記憶手段１１２１に通知する。
【０１８６】
状態記憶手段１１２１は、ステップｊ５の処理で、ＳＳＩＤ抽出手段１１２Ｊから、ＳＳＩＤが「SSID_ComapanyA」に変化した旨の通知を受けたときに、変化後の「SSID_ComapanyA」を最新の状態として記憶する。上記のように、ＳＳＩＤ抽出手段１１２Ｊは、ステップｊ２，ｊ３の処理で、「SSID_ComapanyA」を出力する。
【０１８７】
（３）効果
本実施例では、ポリシー解釈手段１０６は、コンピュータ１００Ｊの近傍に存在する無線アクセスポイント７００から「SSID_CompanyA 」であるＳＳＩＤを検出できたか否かの情報を含むコンテキスト情報を用いて条件判定を行うことができる。そして、仮想マシン１０４によるＮＩＣまたはＵＳＢデバイスへのアクセスを禁止することが可能になる。よって、一般にオフィス内に限定されるＳＳＩＤを用いて、仮想マシン１０４からのネットワークアクセスを制限できる。その結果、オフィス外にコンピュータ１００Ｊを持ち出した場合に、仮想マシン１０４で作成した任意の情報の漏えいを防止できる。
【０１８８】
なお、本実施例では、無線アクセスポイント７００による端末位置（コンピュータ位置）の検知を例にしたが、その他、無線タグ装置やＧＰＳ装置を備えたコンテキスト情報抽出手段１１２を用いて、オフィスの入退場ゲートの通過状態や緯度・経度情報を検知する方法を用いても、オフィス外でのアクセス制限の効果を得ることができる。
【０１８９】
また、イベント発行手段１１２２として、リアルタイムクロック装置などの時計装置（図示せず）を備えたコンテキスト情報抽出手段１１２を用い、アクセスポリシーにおいて、そのコンテキスト情報抽出手段１１２に対応する関数名（例えば、CurrentTime （））を<condition> タグで記述することによって、現在時刻を条件としたアクセスポリシーの記述と、その記述に応じたアクセス制御の実施が可能になる。
【０１９０】
さらに、イベント発行手段１１２２としてリアルタイムクロック装置を有するコンテキスト情報抽出手段１１２を用いることによって、仮想マシン１０４での重要データアクセスを就業時間に限定させることができる。
【産業上の利用可能性】
【０１９１】
本発明は、企業または複数企業間の協働プロジェクトにおけるアクセス制御機能を備えたパーソナルコンピュータやサーバ装置に適用可能である。また、インターネットプロバイダが顧客のパーソナルコンピュータのアクセスポリシーを一括して管理することによって、遠隔セキュリティサービスを行うといった用途にも適用可能である。
【図面の簡単な説明】
【０１９２】
【図１】本発明の第１実施形態の構成を示すブロック図である。
【図２】責務実施インタフェースの内部構成を示すブロック図である。
【図３】本発明の第１実施形態の全体の動作を示すフローチャートである。
【図４】ポリシー解釈手段の動作を示すフローチャートである。
【図５】アクセスポリシーの一例を示す説明図である。
【図６】アクセスポリシーの別の一例を示す説明図である。
【図７】本発明における責務実施インタフェースの動作を示すフローチャートである。
【図８】責務管理表の一例を示す説明図である。
【図９】本発明の第１実施形態の変形例を示すブロック図である。
【図１０】本発明の第１実施形態の他の変形例を示すブロック図である。
【図１１】本発明の第２実施形態の構成を示すブロック図である。
【図１２】本発明の第２実施形態におけるポリシー管理手段、責務管理手段、ポリシー解釈手段およびコンピュータ管理手段によるアクセスポリシーの更新および責務実施手段の更新の動作を示すフローチャートである。
【図１３】ポリシー管理手段、責務管理手段、ポリシー解釈手段およびコンピュータ管理手段によるアクセスポリシーの更新および責務実施手段の更新の他の動作を示すフローチャートである。
【図１４】本発明の第３実施形態の構成を示すブロック図である。
【図１５】本発明の第３実施形態における属性抽出インタフェースの内部構成を示すブロック図である。
【図１６】本発明の第３実施形態におけるポリシー解釈手段による条件文判定動作を示すフローチャートである。
【図１７】本発明の第３実施形態の他の構成例を示すブロック図である。
【図１８】本発明の第４実施形態の構成を示すブロック図である。
【図１９】コンテキスト情報抽出手段の構成例を示すブロック図である。
【図２０】本発明の第４実施形態におけるポリシー解釈手段による条件文判定動作を示すフローチャートである。
【図２１】アクセスポリシーの他の例を示す説明図である。
【図２２】本発明の第５実施形態の構成を示すブロック図である。
【図２３】本発明の第５実施形態の全体の動作を示すフローチャートである。
【図２４】本発明の第１実施例における全体の構成を示すブロック図である。
【図２５】第１実施例におけるメール送信ポリシーの一例を示す説明図である。
【図２６】第１実施例におけるメール受信ポリシーの一例を示す説明図である。
【図２７】第１実施例におけるコンピュータからのメール送信に係る全体の動作を示すフローチャートである。
【図２８】第１実施例におけるコンピュータによるメール受信に係る全体の動作を示すフローチャートである。
【図２９】本発明の第２実施例におけるコンピュータの構成を示すブロック図である。
【図３０】第２実施例におけるアクセスポリシーの一例を示す説明図である。
【図３１】第２実施例におけるファイルと書出しイベントとの関係を示す概念図である。
【図３２】第２実施例におけるファイル暗号化責務実施手段の動作を示すフローチャートである。
【図３３】本発明の第３実施例におけるコンピュータの構成を示すブロック図である。
【図３４】特許文献２に記載されたアクセス制御システムの構成を示すブロック図である。
【符号の説明】
【０１９３】
１００Ａ，１００Ｂ，１００Ｃ，１００Ｄ−１〜１００Ｄ−Ｎ，１００Ｅ，１００Ｆ，１００Ｇ−１，１００Ｇ−２，１００Ｈ    コンピュータ
１０１，１０１−１，１０１−２    中央処理装置（ＣＰＵ）
１０２    デバイス
１０２−１，１０２−２    ＮＩＣ
１０３，１０３−１，１０３−２    仮想化手段
１０４，１０４−１，１０４−２    仮想マシン
１０５，１０５−１，１０５−２    監視手段
１０６，１０６−１，１０６−２    ポリシー解釈手段
１０７    責務実施手段
１０７Ｇ−１  メール暗号化責務実施手段
１０７Ｇ−２  メール復号責務実施手段
１０７Ｈ−１  ファイル暗号化責務実施手段
１０７Ｈ−２  ファイル復号責務実施手段
１０７１Ｈ    ファイルシステム解析手段
１０８    責務実施インタフェース
１０８１  責務管理表
１０８２  バッファ
１０９    コンピュータ管理手段
１１０    属性抽出インタフェース
１１０１  属性抽出手段管理表
１１０２  バッファ
１１１    属性抽出手段
１１２  コンテキスト情報抽出手段
１１２１  状態記憶手段
１１２２  イベント発行手段
１１２Ｊ  ＳＳＩＤ抽出手段
１１２２Ｊ  無線アクセスポイント検出手段
２００    管理サーバ
２０１    ポリシー管理手段
２０２    責務管理手段
５００Ｃ  責務実施手段連携サーバ
５００Ｇ  鍵管理サーバ
７００  無線アクセスポイント
【図１】
2010282242.tif 000003
【図２】
2010282242.tif 000004
【図３】
2010282242.tif 000005
【図４】
2010282242.tif 000006
【図５】
2010282242.tif 000007
【図６】
2010282242.tif 000008
【図７】
2010282242.tif 000009
【図８】
2010282242.tif 000010
【図９】
2010282242.tif 000011
【図１０】
2010282242.tif 000012
【図１１】
2010282242.tif 000013
【図１２】
2010282242.tif 000014
【図１３】
2010282242.tif 000015
【図１４】
2010282242.tif 000016
【図１５】
2010282242.tif 000017
【図１６】
2010282242.tif 000018
【図１７】
2010282242.tif 000019
【図１８】
2010282242.tif 000020
【図１９】
2010282242.tif 000021
【図２０】
2010282242.tif 000022
【図２１】
2010282242.tif 000023
【図２２】
2010282242.tif 000024
【図２３】
2010282242.tif 000025
【図２４】
2010282242.tif 000026
【図２５】
2010282242.tif 000027
【図２６】
2010282242.tif 000028
【図２７】
2010282242.tif 000029
【図２８】
2010282242.tif 000030
【図２９】
2010282242.tif 000031
【図３０】
2010282242.tif 000032
【図３１】
2010282242.tif 000033
【図３２】
2010282242.tif 000034
【図３３】
2010282242.tif 000035
【図３４】
2010282242.tif 000036