(57)【要約】【課題】保護対象資源に対する正当なアクセスを行っている間であっても、保護対象資源への不正アクセスを有効に制限できるようにする。【解決手段】保護対象資源１に対するアクセス可能なプログラムの識別情報２ａをアクセス許可管理テーブル３に登録する（ステップＳ１）。その後、保護対象資源１に対するアクセス要求２ｃを受け取ると、アクセス要求２ｃを出力した要求元プログラム２の識別情報４を取得する（ステップＳ２）。次に、アクセス許可管理テーブル３に要求元プログラム２の識別情報４が登録されているか否かにより、保護対象資源１へのアクセスの許否を判定する（ステップＳ３）。保護対象資源１へのアクセスが許可された場合、アクセス要求２ｃに応答して、保護対象資源１内のデータを操作する（ステップＳ４）。【選択図】　　　　図１
2004046307.tif 000002
【特許請求の範囲】
【請求項１】
保護対象資源に格納されるデータを保護するためのデータ保護プログラムにおいて、
コンピュータに、
前記保護対象資源に対するアクセス可能なプログラムの識別情報をアクセス許可管理テーブルに登録し、
前記保護対象資源に対するアクセス要求を受け取ると、前記アクセス要求を出力した要求元プログラムの識別情報を取得し、
前記アクセス許可管理テーブルに前記要求元プログラムの識別情報が登録されているか否かにより、前記保護対象資源へのアクセスの許否を判定し、
前記保護対象資源へのアクセスが許可された場合、前記アクセス要求に応答して、前記保護対象資源内のデータを操作する、
処理を実行させることを特徴とするデータ保護プログラム。
【請求項２】
前記保護対象資源内のデータを操作するとき、前記アクセス要求が書き込み要求であれば、前記要求元プログラムを実行するプロセスから渡されたデータを暗号化して前記保護対象資源内に格納し、前記アクセス要求が読み出し要求であれば、前記保護対象資源から取り出したデータを復号して、前記要求元プログラムを実行するプロセスへ渡すことを特徴とする請求項１記載のデータ保護プログラム。
【請求項３】
前記アクセス許可管理テーブルに対し、前記プログラムの識別情報に関連づけて鍵を登録し、
前記保護対象資源内のデータの暗号化および復号の際には、前記要求元プログラムの識別情報に関連づけて前記アクセス許可管理テーブルに登録された前記鍵を用いて、データの暗号化および復号を行うことを特徴とする請求項２記載のデータ保護プログラム。
【請求項４】
前記保護対象資源内のデータの暗号化および復号の際には、前記要求元プログラムの識別情報に関連づけられた前記鍵と、前記コンピュータに予め設定された固有値とを組み合わせた値を用いて、データの暗号化および復号を行うことを特徴とする請求項２記載のデータ保護プログラム。
【請求項５】
保護対象資源に格納されるデータを保護するためのデータ保護方法において、
前記保護対象資源に対するアクセス可能なプログラムの識別情報をアクセス許可管理テーブルに登録し、
前記保護対象資源に対するアクセス要求を受け取ると、前記アクセス要求を出力した要求元プログラムの識別情報を取得し、
前記アクセス許可管理テーブルに前記要求元プログラムの識別情報が登録されているか否かにより、前記保護対象資源へのアクセスの許否を判定し、
前記保護対象資源へのアクセスが許可された場合、前記アクセス要求に応答して、前記保護対象資源内のデータを操作する、
ことを特徴とするデータ保護方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータを保護するためのデータ保護プログラムおよびデータ保護方法に関し、特に保護対象資源に対するアクセス制限を行うデータ保護プログラムおよびデータ保護方法に関する。
【０００２】
【従来の技術】
コンピュータシステムは、複数のユーザで共用されることがある。コンピュータシステムを共用する場合、あるユーザの不注意や不正行為から他のユーザのデータを守るため、各ユーザが使用できる資源に制限を設ける必要がある。
【０００３】
従来のコンピュータシステムでは、各ユーザからユーザ名とパスワードとによる認証情報の入力を受け付け、ユーザ認証を行っていた。そして、コンピュータシステムは、正しく認証したユーザに対して、そのユーザに予め許可されている資源に限ってアクセスを許可する。これにより、各ユーザに対する選択的アクセスが実現されていた。なお、これらの操作は基本的にはユーザ単位であるが、同様の操作をユーザのグループ単位に行うことで、グループ毎の選択的アクセスや情報共有も可能である。
【０００４】
ただし、これらの選択的アクセス操作は全てシステム管理者によってトップダウン式に区分計画される必要があった。このようなトップダウンによる選択的アクセスにおいては、システムの管理者が予め計画的に情報の共有内容を計画しなければならず、運用計画の初期段階において非常な手間がかかる。また、各ユーザの意思で、より細かなアクセス制限の設定が行えないなどの欠点がある。
【０００５】
そこで、システムを利用するユーザからのボトムアップでより細かな文書保護を実現する方式が考えられた。その一つに、ファイル暗号化アプリケーションにより、ストレージデバイス内に保存されているファイルを暗号化する方式がある。ファイルを暗号化することで、第三者による不正使用を防ぐことができる。
【０００６】
一般的なファイルの暗号化方式では、ユーザが文書作成用アプリケーション（ワードプロセッサ）などのアプリケーションを用いて作成した文書ファイルは、そのままストレージデバイス内に格納される。その後、ストレージデバイスに格納された文書ファイルが暗号化される。
【０００７】
なお、アプリケーションによって作成した文書ファイルがそのままストレージデバイス内に格納されると、一時的ではあるが、文書ファイルの無防備状態が発生する。そこで、文書ファイルの無防備状態を減らすために、ユーザが使用するコンピュータシステムにおけるストレージデバイスへのアクセスを監視し、ストレージデバイスへの文書ファイルの格納途中または格納直後に、その文書ファイルを自動的に暗号化する方式が考えられた。
【０００８】
この方式ではユーザが暗号化を意識することなく、文書ファイルの格納先（たとえばディレクトリ）が暗号化対象であれば、その格納先に結び付けられた暗号鍵で暗号化が行われる。そして、暗号化されたファイルは、暗号化対象の格納先から外部に出される時点で復号される。このようなファイルの暗号化処理と復号処理とは、暗号化対象の格納先へのアクセス監視機構が動作中のみ行われる。この場合、アクセス監視機構を、特定のアプリケーションが起動中のみ動作させることで、暗号化されたファイルの不正使用が防止される。
【０００９】
【発明が解決しようとする課題】
しかし、アクセス監視機構が自動で暗号化や復号を行う場合、アクセス監視機構の動作中は、暗号化されたファイルを悪意のある第三者が取り出すことが可能である。すなわち、アプリケーションＡがアクセス監視機構を起動し、暗号化対象の格納先にアクセスしている間は、アプリケーションＢからも暗号化対象の格納先にアクセスし、復号したファイルを取り出すことが可能である。
【００１０】
たとえば、アプリケーションＡが使用者を限定するようなアプリケーションであっても、アクセス監視機構がアプリケーションＡによって起動されていれば、アプリケーションＢからのコピー要求などにより、暗号化対象の格納先から暗号化されたファイルを外部に取り出すことができる。この際、アプリケーションＢによって取り出されたファイルもアクセス監視機構により復号される。その結果、第三者も復号された情報を取り出す事が可能になってしまうという問題がある。
【００１１】
また、アクセスの権限を有するユーザがアプリケーションＡでアクセス監視機構を起動し、そのユーザが他のアプリケーションＢを用いてファイルを取り出すという不正なオペレーションも可能となってしまう。たとえば、アプリケーションＡではデータの登録のみを許可するようにアクセス制限を設けていても、アプリケーションＡの使用が許可されたユーザが不正を行えば、アプリケーションＢを用いて簡単にデータを取り出せてしまう。
【００１２】
本発明はこのような点に鑑みてなされたものであり、保護対象資源に対する正当なアクセスを行っている間であっても、保護対象資源への不正アクセスを有効に制限可能なデータ保護プログラムおよびデータ保護方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示すような処理をコンピュータに実行させるデータ保護プログラムが提供される。本発明に係るデータ保護プログラムは、保護対象資源１に格納されるデータ１ａを保護するためのものであり、コンピュータに以下の処理を実行させる。まず、保護対象資源１に対するアクセス可能なプログラムの識別情報２ａをアクセス許可管理テーブル３に登録する（ステップＳ１）。その後、保護対象資源１に対するアクセス要求２ｃを受け取ると、アクセス要求２ｃを出力した要求元プログラム２の識別情報４を取得する（ステップＳ２）。次に、アクセス許可管理テーブル３に要求元プログラム２の識別情報４が登録されているか否かにより、保護対象資源１へのアクセスの許否を判定する（ステップＳ３）。保護対象資源１へのアクセスが許可された場合、アクセス要求２ｃに応答して、保護対象資源１内のデータ１ａを操作する（ステップＳ４）。
【００１４】
このようなデータ保護プログラムに従った処理をコンピュータに実行させると、アクセス要求２ｃを出力した要求元プログラム２の識別情報４が予めアクセス許可管理テーブル３に登録されている場合にのみアクセスが許可され、アクセス要求２ｃに応じた保護対象資源１内のデータ１ａに対するアクセスが行われる。
【００１５】
また、本発明では上記課題を解決するために、保護対象資源に格納されるデータを保護するためのデータ保護方法において、前記保護対象資源に対するアクセス可能なプログラムの識別情報をアクセス許可管理テーブルに登録し、前記保護対象資源に対するアクセス要求を受け取ると、前記アクセス要求を出力した要求元プログラムの識別情報を取得し、前記アクセス許可管理テーブルに前記要求元プログラムの識別情報が登録されているか否かにより、前記保護対象資源へのアクセスの許否を判定し、前記保護対象資源へのアクセスが許可された場合、前記アクセス要求に応答して、前記保護対象資源内のデータを操作する、ことを特徴とするデータ保護方法が提供される。
【００１６】
このようなデータ保護方法によれば、アクセス要求を出力した要求元プログラムの識別情報が予めアクセス許可管理テーブルに登録されている場合にのみアクセスが許可され、アクセス要求に応じた保護対象資源内のデータに対するアクセスが行われる。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００１８】
図１は、実施の形態に適用される発明の概念図である。本発明に係るデータ保護プログラムは、保護対象資源１に対するアクセスを監視し、保護対象資源１に格納されるデータ１ａを保護するためのものであり、コンピュータに以下の処理を実行させる。なお、図１の例では、データ１ａの保護のため、暗号化された状態でデータ１ａを保護対象資源１内に格納しておくものとする。
【００１９】
まず、保護対象資源１に対するアクセス可能なプログラムの識別情報２ａをアクセス許可管理テーブル３に登録する（ステップＳ１）。図１の例では、アクセス可能なプログラムの識別情報として「プログラムＡ」が登録されている。なお、プログラムの識別情報としては、プログラム名、プログラムを実行するプロセスのプロセス名、そのプロセスの識別子（プロセスＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ））、起動時間等を用いることができる。
【００２０】
また、識別情報の登録と同時に、アクセス許可管理テーブル３に対し、識別情報２ａに関連づけて鍵２ｂを登録する。鍵２ｂは、たとえば、要求元プログラム２の起動時にユーザから入力されたパスワードから一意に決定される値を用いることができる。すなわち、同じパスワードが入力されない限り、同一の鍵が生成されないようにする。
【００２１】
その後、保護対象資源１に対するアクセス要求２ｃを受け取ると、アクセス要求２ｃを出力した要求元プログラム２の識別情報４を取得する（ステップＳ２）。なお、保護対象資源１に対するアクセス要求２ｃは、保護対象資源１に対するアクセスを監視することで検出できる。たとえば、アクセス要求におけるアクセス先の資源名称（ドライブ名・フォルダ名・デバイス名等）を監視して、保護対象資源１の資源名との一致を検出する。
【００２２】
次に、アクセス許可管理テーブル３に要求元プログラム２の識別情報４が登録されているか否かにより、保護対象資源１へのアクセスの許否を判定する（ステップＳ３）。図１の例では、要求元プログラム２の識別情報２ａが予め登録されているため、アクセスが許可される。なお、アクセス許可管理テーブル３に識別情報が登録されていないプログラムからアクセス要求が出された場合、そのアクセス要求は拒否される。
【００２３】
保護対象資源１へのアクセスが許可された場合、アクセス要求２ｃに応答して、保護対象資源１内のデータ１ａを操作する（ステップＳ４）。たとえば、アクセス要求が要求元プログラム２で作成されたデータ１ｂの書き込み要求であれば、アクセス許可管理テーブル３から識別情報４に関連づけられた鍵５を取り出し、その鍵でデータ１ｂを暗号化する。そして、暗号化されたデータ１ａを保護対象資源１に格納する。また、アクセス要求がデータ１ａの読み出し要求であれば、アクセス許可管理テーブル３から識別情報４に関連づけられた鍵５を取り出し、その鍵５を用いて暗号化されているデータ１ａを復号する。そして、復号されたデータ１ｂを要求元プログラム２に渡す。
【００２４】
このようなデータ保護プログラムに従った処理をコンピュータに実行させると、アクセス要求２ｃを出力した要求元プログラム２の識別情報４が予めアクセス許可管理テーブル３に登録されている場合にのみアクセスが許可され、アクセス要求２ｃに応じた保護対象資源１内のデータに対するアクセスが行われる。
【００２５】
しかも、アクセス許可管理テーブル３に識別情報を登録する際に、暗号化や復号用の鍵を合わせて登録している。そのため、不正目的の第三者が、自己の実行するプログラムの識別情報をアクセス許可管理テーブル３に登録したとしても、鍵が一致しない限り保護対象資源１内のデータ１ａを復号することができない。その結果、保護対象資源１内のデータ１ａの安全性が保証される。
【００２６】
なお、アクセス許可管理テーブル３に登録する鍵は、アクセスが許可されるプログラムからの入力をパラメータとして用いる以外に、所定のユーザから成るグループ単位のグループ鍵や、ファイル保護システムが動作するローカルマシンにユニークな値（ハードディスクＩＤ、ハードトークンＩＤ等）を鍵生成ロジックに絡める事も可能である。
【００２７】
このようなデータ保護プログラムが実装されたコンピュータのシステム管理者は、保護されたデータにアクセスするユーザに対し、保護対象資源１へのアクセスが許可されたプログラムの使用権限を付与する。ユーザに対するプログラムの使用権限の付与は、たとえば以下の手法で実現可能である。
【００２８】
ユーザに対してプログラムの使用権限を付与するため、まず、保護対象資源に関する情報と、その保護対象資源へのアクセスを認められたアプリケーションプログラムに関する情報とを予め対応づけてテーブルファイル等に登録する。更に、アプリケーションプログラム毎に使用権限を持つユーザの情報を認証用情報としてテーブルファイル等に登録する。
【００２９】
ユーザに対しプログラムの使用権限を付与しておくことで、ユーザは、使用できるプログラムでアクセス可能な保護対象資源に限定して、データの入出力等のアクセスが可能となる。たとえば、ユーザよりアプリケーションプログラムの起動指示を受け付けると、本実施の形態に係るコンピュータシステムは、保護対象資源に関する情報、アプリケーションプログラムに関する情報、認証用情報等が登録されたテーブルファイルを参照することで、アプリケーションプログラムに対して正しいユーザかどうか、保護対象資源にアクセスできるアプリケーションプログラムなのかどうかを確認する。資源にアクセス可能なアプリケーションが正しいユーザから起動されていれば鍵を生成してアクセス許可管理テーブル３に登録する。これにより、各ユーザは、使用権限が与えられた資源に対してのみアクセスが可能となる。
【００３０】
また、あるアプリケーションが保護対象資源１に格納したファイル等は、そのアプリケーションが生成した鍵で暗号化されている。したがって、不正に起動されたアプリケーションから保護対象資源１に格納されたファイルにアクセスしても、そのファイルを復号することができない。その結果、保護対象資源１へのアクセスが許可されていないプログラムを介在したオペレーションによる不正な情報の操作・漏洩を防止・監視する事が可能となる。すなわち、正当にそのファイル情報にアクセスする事が許可されているユーザに対しても、管理者が望んでいないプログラムを経由した不正なオペレーションによる保護対象資源１の不正な操作を禁止する事ができる。
【００３１】
以下、本発明の実施の形態を具体的に説明する。
図２は、本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。コンピュータ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１０２、ストレージデバイス１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００３２】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ストレージデバイス１０３は、たとえば、ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ　Ｄｉｓｋ　Ｄｒｉｖｅ）である。ストレージデバイス１０３には、ＯＳ、各種ドライバプログラム、アプリケーションプログラムなどが格納される。
【００３３】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００３４】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００３５】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。本実施の形態をコンピュータ１００上で実現するには、コンピュータ１００にドライバプログラムを実装する。なお、以下の説明では、コンピュータ１００がドライバプログラムを実行することにより実現される処理機能を、ドライバと呼び、コンピュータ１００がアプリケーションプログラムを実行することにより実現される機能をアプリケーションとよぶ。
【００３６】
次に、本実施の形態に係るファイル保護機能を実現するためにコンピュータ１００上に構築される処理機能について説明する。
図３は、ファイル保護機能を実現するための構成を示すブロック図である。図３に示すように、コンピュータ１００は、アクセス許可管理テーブル２１０、保護資源管理テーブル２２０、アプリケーション２３０、およびドライバ２４０を有している。また、本実施の形態では、保護資源をフォルダ（ディレクトリ）単位で指定できるものとする。そのため、ストレージデバイス１０３に関するファイルシステムで定義された複数のフォルダ１１１〜１１４の中から、任意のフォルダを保護資源として指定することができる。フォルダ１１１には、複数のファイル１１１ａ，１１１ｂ，・・・が格納される。他のフォルダ１１２〜１１４も同様に、様々なファイルが格納される。なお、図３の例では、フォルダ１１１の識別情報を「フォルダａ」、フォルダ１１２の識別情報を「フォルダｂ」、フォルダ１１３の識別情報を「フォルダｃ」、フォルダ１１４の識別情報を「フォルダｄ」とする。
【００３７】
アクセス許可管理テーブル２１０には、アクセスの許可対象となるアプリケーションか否かの判断基準となる情報が登録されている。具体的には、アプリケーションの識別情報、暗号鍵、およびアクセスを許可する資源が設定される。
【００３８】
保護資源管理テーブル２２０には、保護対象となる資源の識別情報が設定される。たとえば、保護対象資源となるフォルダの名称等が設定される。
アプリケーション２３０は、ユーザの要求に応じた業務を実行する機能を備えている。アプリケーション２３０としては、たとえば、ワードプロセッサや表計算プログラムなど様々なものがある。アプリケーション２３０は、ユーザからの操作入力等に応答してファイルの作成等を行う。作成したファイルをストレージデバイス１０３に格納するとき、アプリケーション２３０は、作成したファイルの書き込みのアクセス要求を出力する。また、ストレージデバイス１０３に格納されたファイルを参照するとき、アプリケーション２３０は、参照すべきファイルの読み取りのアクセス要求を出力する。
【００３９】
また、アプリケーション２３０は、自己の作成したファイルを保護する場合、ユーザからパスワードの入力を受け付け、ユーザ認証を行う。そして、アプリケーション２３０は、入力されたパスワードに応じて一意に決定される鍵を生成し、ドライバ２４０を介して、アクセス許可管理テーブル２１０に対して、アプリケーション２３０の識別情報、鍵、およびアクセス対象のフォルダの識別情報を設定する。
【００４０】
ドライバ２４０は、アプリケーション２３０からファイル書き込みのアクセス要求が出力されると、ストレージデバイス１０３内にファイルを格納する。なお、ドライバ２４０は、ファイルの格納先のフォルダが保護対象資源として指定されており、アプリケーション２３０から格納先のフォルダへのアクセスが許可されているときは、格納すべきファイルを暗号化する。
【００４１】
また、ドライバ２４０は、アプリケーション２３０からファイル読み出しのアクセス要求が出力されると、ストレージデバイス１０３からファイルを取得してアプリケーション２３０に渡す。なお、ドライバ２４０は、ファイルが格納されたフォルダが保護対象資源として指定されており、アプリケーション２３０から格納先のフォルダへのアクセスが許可されているときは、取得したファイルを復号する。
【００４２】
ドライバ２４０は、保護対象資源であるフォルダへのファイルの入出力を行うために、テーブルデータ設定部２４１、暗号化／復号要否判定部２４２、アクセス許否判定部２４３、および暗号化／復号処理部２４４を有している。
【００４３】
テーブルデータ設定部２４１は、アプリケーション２３０からのフォルダ監視要求等の要求に応答して、アクセス許可管理テーブル２１０や保護資源管理テーブル２２０に対するデータ登録および削除を行う。
【００４４】
暗号化／復号要否判定部２４２は、アプリケーション２３０からのファイルのアクセス要求（ファイル格納要求またはファイル参照要求）に応じて、ファイルの暗号化または復号の要否を判定する。具体的には、暗号化／復号要否判定部２４２は、アクセス要求におけるアクセス先（ファイル格納先のフォルダ、または参照対象のファイルが格納されているフォルダ）が、保護資源管理テーブル２２０において保護資源として指定されているか否かを判断する。暗号化／復号要否判定部２４２は、アクセス先が保護資源であれば、暗号化または復号が必要であると判定する。
【００４５】
アクセス許否判定部２４３は、まず、ファイルの暗号化または復号が必要と判定されたときに、そのファイルのアクセス要求を出力したアプリケーション２３０の識別情報を取得する。識別情報は、たとえば、アプリケーション２３０を実行しているプロセスの識別子（プロセスＩＤ）などである。そして、アクセス許否判定部２４３は、保護資源へのアクセス要求を許可するか否かを判定する。具体的には、アプリケーションの識別情報とおよびアクセス先のフォルダとの組み合わせに合致する情報が、アクセス許可管理テーブル２１０に登録されていれば、アクセスを許可する。
【００４６】
暗号化／復号処理部２４４は、保護対象の資源に対するアクセス要求が、アクセス許否判定部２４３において許可された場合、アクセス要求の対象となるファイルの暗号化または復号を行う。具体的には、アクセス要求が格納要求であれば、暗号化／復号処理部２４４は、対象のファイルを暗号化して、指定された保護対象のフォルダに格納する。また、暗号化／復号処理部２４４は、アクセス要求が参照要求で有れば、指定されたファイルを保護対象のフォルダから抽出し、そのファイルを復号する。
【００４７】
次に、アクセス許可管理テーブル２１０と保護資源管理テーブル２２０とに格納されるデータの内容を具体的に説明する。
図４は、アクセス許可管理テーブルのデータ構造例を示す図である。アクセス許可管理テーブル２１０には、クライアント識別子、暗号鍵、およびアクセスを許可される資源の欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００４８】
クライアント識別子の欄には、クライアントとして実行されるアプリケーション２３０などの処理機能の識別情報（クライアント識別子）が設定される。クライアント識別子としては、たとえば、プロセスＩＤや実行ファイル名などが設定される。本実施の形態では、クライアントとして動作しているプロセスのプロセスＩＤが、クライアント識別子の欄に設定されるものとする。
【００４９】
暗号鍵の欄には、所定のデータ長の鍵が設定される。鍵は、アプリケーション２３０の使用を許可するときにユーザに入力させたパスワードから一意に決定される情報である。すなわち、実質的に、同一のパスワードからしか同一の鍵は生成されない。
【００５０】
アクセスを許可される資源の欄には、クライアント識別子と鍵との組み合わせに対応づけて、アクセスが許可される資源の識別情報が設定される。図４の例では、アクセスが許可される資源として、フォルダ名が設定されている。設定されるフォルダ名には、そのファイルシステム上でフォルダまでのパスも含まれているものとする。
【００５１】
図４の例では、クライアント識別子「クライアントＡ」の鍵は「鍵α」であり、アクセスを許可される資源は「フォルダａ」である。
図５は、保護資源管理テーブルのデータ構造例を示す図である。保護資源管理テーブル２２０には、保護資源情報の欄が設けられている。保護資源情報の欄には、保護対象とすべき資源の識別情報が設定される。本実施の形態では、保護資源情報として、フォルダ名が設定されている。設定されるフォルダ名には、そのファイルシステム上でフォルダまでのパスも含まれているものとする。図５の例では、識別情報が「フォルダａ」のフォルダ１１１や、識別情報が「フォルダｂ」のフォルダ１１２などが、保護資源として設定されている。
【００５２】
このような構成のシステムによれば、保護資源管理テーブル２２０に登録されている保護資源（たとえば、フォルダ）に対するアクセス要求のうち、アクセス許可管理テーブル２１０に識別子が設定されている情報に対応するクライアントからの処理要求のみが実行される。以下、アクセス許可管理テーブル２１０へのクライアント識別子の登録の有無による処理の違いについて説明する。
【００５３】
図６は、クライアント識別子を登録した場合のアクセス処理の概略を示す図である。まず、ユーザがアプリケーション２３０を起動し、ユーザ認証情報として正当なパスワードを入力すると、アプリケーション２３０からドライバ２４０を経由し、アクセス許可管理テーブル２１０に対して、クライアント識別子（プロセスＩＤ）、鍵、および資源名（フォルダ名）が登録される（ステップＳ１１）。
【００５４】
たとえば、保護対象資源に関する情報と、その保護対象資源へのアクセスを認められたアプリケーションプログラムに関する情報とが予め対応づけてテーブルファイルに登録されており、更に、アプリケーションプログラム毎に使用権限を持つユーザの情報（パスワードとユーザ識別子とを含む）が認証用情報としてテーブルファイルに登録されている場合を想定する。この場合、ユーザがパスワードを入力すると、そのユーザのパスワードとして、認証用情報が登録されたテーブルファイルに登録されているか否かによりユーザ認証が行われる。ユーザ認証により正当なユーザであることが確認されると、保護対象資源に関する情報と、アプリケーションプログラムに関する情報とが予め対応づけられたテーブルファイルに基づいて、ユーザが使用権限を有するアプリケーションプログラムに対してアクセスが認められた保護対象資源が判断される。そして、その保護対象資源の資源名（フォルダ名）に、アプリケーションプログラムを実行するプロセスのクライアント識別子（プロセスＩＤ）と、パスワードに応じた鍵とが関連づけられて、アクセス許可管理テーブル２１０に登録される。
【００５５】
その後、アプリケーション２３０がフォルダ１１１内のファイル１１１ａに対するアクセス要求を出力する（ステップＳ１２）。アクセス要求には、ファイル１１１ａに対する作成要求、参照要求、更新要求、削除要求などが含まれる。出力されたアクセス要求はドライバ２４０に渡される。
【００５６】
ドライバ２４０は、アプリケーション２３０から出力されたアクセス要求に応答して、アプリケーション２３０のプロセスＩＤを取得する。そして、ドライバ２４０は、アクセス許可管理テーブル２１０を参照し、取得したプロセスＩＤに対応するクライアント識別子を検索する。そして、ドライバ２４０は、検出したクライアント識別子に対応する鍵αを取得する（ステップＳ１３）。
【００５７】
次に、ドライバ２４０は、取得した鍵αを用いて暗号化や復号を行いながら、アクセス要求で指定されたファイル１１１ａを操作する（ステップＳ１５）。たとえば、ファイル１１１ａを作成して保存する要求であれば、ドライバ２４０は、アプリケーション２３０から渡されたデータを鍵αで暗号化し、ファイル１１１ａとしてフォルダ１１１内に格納する。また、フォルダ１１１に既に格納されているファイル１１１ａの参照要求であれば、ドライバ２４０は、鍵αを用いてファイル１１１ａを復号し、平文化されたデータをアプリケーション２３０に渡す。
【００５８】
図７は、クライアント識別子が未登録の場合のアクセス処理の概略を示す図である。たとえば、アプリケーション２３０がアクセス許可管理テーブル２１０に対してクライアント識別子を登録せずに、フォルダ１１１内のファイル１１１ａに対するアクセス要求を出力する（ステップＳ２１）。すると、ドライバ２４０は、アクセス許可管理テーブル２１０にクライアント識別子が登録されていないため、アクセス要求に応じたファイル１１１ａの操作を拒否する（ステップＳ２２）。
【００５９】
このように、予めアプリケーション２３０のクライアント識別子（プロセスＩＤ）と対応する鍵を登録しておくことで、その登録時に指定したフォルダ１１１内のファイル１１１ａが他のアプリケーション２３１から保護される。
【００６０】
以下、保護資源を特定し、保護された状態のファイルに対する操作を行う場合の処理の詳細を説明する。
図８は、本実施の形態の全体のワークフローを示す図である。なお、図８のワークフローは、クライアント識別子の登録等の処理機能をアプリケーション２３０内に実装可能な場合の例である。アプリケーション２３０に所定の処理機能を実装するためには、たとえば、必要な処理機能をライブラリ（複数のソフトウェアで使用する汎用性のある関数やプログラム）として用意し、アプリケーション２３０の動作時に所定のライブラリを実行するように設定する。以下、図８に示す処理を、ステップ番号に沿って説明する。
【００６１】
［ステップＳ３１］ユーザがパスワードの入力を行いアプリケーション２３０起動の操作入力を行うと、アプリケーション２３０は、監視フォルダ登録、監視開始処理を行う。具体的には、アプリケーション２３０は、ドライバ２４０を介して、保護資源管理テーブル２２０に対して、保護対象資源とすべきフォルダの識別情報を登録する。保護対象資源とすべきフォルダは、ユーザから任意に指定されたフォルダでもよいし、アプリケーション２３０用に設けられた規定のフォルダであってもよい。なお、この処理は、フォルダを監視対象として最初に指定した時に一回だけ行われる。この処理に応じて、ドライバ２４０において監視対象フォルダ登録処理が行われる。
【００６２】
たとえば、保護対象資源に関する情報と、その保護対象資源へのアクセスを認められたアプリケーションプログラムに関する情報とが予め対応づけてテーブルファイルに登録されており、更に、アプリケーションプログラム毎に使用権限を持つユーザの情報（パスワードとユーザ識別子とを含む）が認証用情報としてテーブルファイルに登録されている場合を想定する。この場合、ユーザがパスワードの入力を行いアプリケーション２３０起動の操作入力を行うと、そのユーザのパスワードとして、認証用情報が登録されたテーブルファイルに登録されているか否かによりユーザ認証が行われる。ユーザ認証により正当なユーザであることが確認されると、保護対象資源に関する情報と、アプリケーションプログラムに関する情報とが予め対応づけられたテーブルファイルに基づいて、ユーザが使用権限を有するアプリケーションプログラムに対してアクセスが認められた保護対象資源が判断される。そして、その保護対象資源の資源名（フォルダ名）が、保護資源管理テーブル２２０に登録される。
【００６３】
［ステップＳ３２］監視フォルダ登録、監視開始処理の終了後、アプリケーション２３０は、ユーザの操作入力に応答して処理を実行すべき機能（たとえば、ワードプロセッサ）を起動する。このような機能は、１つのプロセスとして起動される。プロセスには、ＯＳにより識別情報（プロセスＩＤ）が付与される。
【００６４】
［ステップＳ３３］アプリケーション２３０は、プロセスの起動時に付与されたプロセスＩＤの登録要求をドライバ２４０に対して出力する。この登録要求に応じて、ドライバ２４０においてアプリケーション登録処理が行われる。
【００６５】
アプリケーション登録処理では、プロセスＩＤがクライアント識別子としてドライバ２４０の管理下にあるアクセス許可管理テーブル２１０に登録される。この際、ユーザが入力したパスワードに応じた鍵がアプリケーション２３０で生成される。生成された鍵は、クライアント識別子に関連づけてアクセス許可管理テーブル２１０内に登録される。また、クライアント識別子に関連づけて、ステップＳ３１で保護対象資源として指定されたフォルダの識別情報が、アクセスを許可される資源としてアクセス許可管理テーブル２１０に登録される。
【００６６】
［ステップＳ３４］アプリケーション２３０は、ドライバ２４０を経由して、監視対象となるフォルダ内のファイルのアクセス要求（ファイルの読み出し要求や、ファイルの書き込み要求）を出力する。このアクセス要求に応じて、ドライバ２４０においてアクセス処理が行われる。なお、ファイル内のデータを読み出すときには、ドライバ２４０においてそのファイルの復号が行われる。また、ファイル内にデータを書き込む際には、ドライバ２４０において、そのファイルの暗号化が行われる。
【００６７】
［ステップＳ３５］アプリケーション２３０は、ドライバ２４０に対してアプリケーションの終了通知（アプリケーション登録解除要求）を行う。このアプリケーション登録解除要求に応じて、ドライバ２４０においてアプリケーション登録解除処理が行われる。すなわち、ドライバ２４０は、アプリケーション２３０に対応するクライアント識別子、およびそのクライアント識別子に関連づけられた鍵やフォルダの識別情報を、アクセス許可管理テーブル２１０から削除する。
【００６８】
［ステップＳ３６］アプリケーション２３０が終了する。
以下、図８に示した手順でアプリケーション２３０からの処理要求が出されたときに、それぞれのステップにおいてドライバ２４０で実行される処理を詳細に説明する。
【００６９】
まず、監視対象フォルダの登録処理（ステップＳ３１）の詳細を説明する。
図９は、監視対象フォルダ登録処理を示す概念図である。図９に示すように、アプリケーション２３０からドライバ２４０に対してフォルダ監視要求が出されると（ステップＳ４１）、ドライバ２４０が保護資源管理テーブル２２０に対して保護資源情報としてフォルダの識別情報を登録する（ステップＳ４２）。
【００７０】
図１０は、監視対象フォルダ登録処理の手順を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］ドライバ２４０は、アプリケーション２３０から出力されたフォルダ監視要求を受け取る。受け取ったフォルダ監視要求は、テーブルデータ設定部２４１に渡される。なお、渡されるフォルダ監視要求には、監視対象となるフォルダの識別情報が含まれている。
【００７１】
［ステップＳ５２］テーブルデータ設定部２４１は、監視対象として指定されたフォルダが既に監視対象となっているフォルダか否かを判断する。具体的には、テーブルデータ設定部２４１は、保護資源管理テーブル２２０を参照し、フォルダ監視要求で指定されたフォルダの識別情報が、既に保護資源管理テーブル２２０に登録されているか否かを判断する。フォルダの識別情報が既に保護資源管理テーブル２２０に登録されていれば、そのフォルダは既に監視対象となっており、登録されていなければ、監視対象とはなっていない。監視対象として指定されたフォルダが既に監視対象となっていれば、処理がアプリケーション２３０に復帰する。監視対象として指定されたフォルダが、まだ監視対象となっていなければ、処理がステップＳ５３に進められる。
【００７２】
［ステップＳ５３］テーブルデータ設定部２４１は、保護資源管理テーブル２２０に、フォルダ監視要求で指定されたフォルダの識別情報を登録する。その後、処置がアプリケーション２３０に復帰する。
【００７３】
次に、アプリケーション起動処理（ステップＳ３２）の詳細を説明する。
図１１は、アプリケーション登録処理を示す概念図である。アプリケーション２３０からアプリケーションの登録要求が出されると（ステップＳ６１）、ドライバ２４０が保護資源管理テーブル２２０を参照し、監視対象のフォルダか否かを確認する（ステップＳ６２）。監視対象のフォルダであれば、ドライバ２４０は、クライアント識別子、鍵、およびフォルダ名をアクセス許可管理テーブル２１０に登録する（ステップＳ６３）。
【００７４】
図１２は、アプリケーション登録処理の手順を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
［ステップＳ７１］ドライバ２４０はアプリケーション２３０から出力されたアプリケーション登録要求を受け取る。受け取ったアプリケーション登録要求は、テーブルデータ設定部２４１に渡される。なお、渡されるアプリケーション登録要求には、クライアント識別子、鍵、およびアクセスを許可するフォルダ（アクセスフォルダ）の識別情報が含まれる。
【００７５】
［ステップＳ７２］テーブルデータ設定部２４１は、アクセスフォルダが監視対象か否かを判断する。具体的には、テーブルデータ設定部２４１は、アクセスフォルダの識別情報が、保護資源管理テーブル２２０に登録されているか否かを判断する。登録されていれば監視対象であり、登録されていなければ監視対象ではない。アクセスフォルダが監視対象である場合には、処理がステップＳ７３に進められる。アクセスフォルダが監視対象でない場合には、処理がアプリケーション２３０に復帰する。
【００７６】
［ステップＳ７３］テーブルデータ設定部２４１は、既にアプリケーション２３０のクライアント識別子がアクセス許可管理テーブル２１０に登録されているか否かを判断する。登録されていれば、処理がアプリケーション２３０に復帰する。登録されていなければ、処理がステップＳ７４に進められる。
【００７７】
［ステップＳ７４］テーブルデータ設定部２４１は、アプリケーション登録要求に含まれているクライアント識別子、鍵、アクセスフォルダの組を、アクセス許可管理テーブルに登録する。その後、処理がアプリケーション２３０に復帰する。
【００７８】
次に、ファイルアクセス処理（ステップＳ３４）について説明する。
図１３は、ファイルアクセス処理を示す概念図である。まず、アプリケーション２３０からアクセス要求が出力される（ステップＳ８１）。そのアクセス要求はドライバ２４０で受け取られる。ドライバ２４０では、保護資源管理テーブル２２０を参照し、アクセス対象のファイルが監視対象フォルダ内のファイルであることを確認する（ステップＳ８２）。監視対象フォルダ内のファイルであれば、ドライバ２４０は、アクセス許可管理テーブル２１０を参照し、アクセス要求を出力したアプリケーション２３０に対してアクセスが許可されていることを確認する（ステップＳ８３）。ドライバ２４０は、アクセスが許可されていれば、アクセス要求に応じたファイルアクセスを実行し、アプリケーション２３０に結果を返却する（ステップＳ８４）。
【００７９】
図１４は、ファイルアクセス処理の手順を示すフローチャートである。以下、図１４の示す処理をステップ番号に沿って説明する。
［ステップＳ９１］ドライバ２４０は、アプリケーション２３０から出力されたファイルのアクセス要求を受け取る。そのアクセス要求は、まず、暗号化／復号要否判定部２４２に渡される。なお、アクセス要求には、ファイル名、ファイルの所在（そのファイルが格納されているフォルダの識別情報）、読み出しか書き込みかを示す命令文、書き込むべきデータ（書き込みの場合）などの情報が含まれる。
【００８０】
［ステップＳ９２］暗号化／復号要否判定部２４２は、アクセス対象のファイルの所在となるフォルダが、監視対象のフォルダか否かを判断する。具体的には、暗号化／復号要否判定部２４２は、保護資源管理テーブル２２０を参照し、アクセス対象のファイルの所在となるフォルダの識別情報が保護資源管理テーブル２２０に登録されているか否かを判断する。登録されていれば監視対象のフォルダであり、登録されていなければ監視対象のフォルダではない。監視対象フォルダであれば処理がステップＳ９４に進められる。監視対象のフォルダでなければ処理がステップＳ９３に進められる。
【００８１】
［ステップＳ９３］ドライバ２４０は、ＯＳに実装されているファイルシステムを用いて、アクセス要求に応じたファイルアクセスを実行する。
［ステップＳ９４］アクセス許否判定部２４３は、アクセス許可管理テーブル２１０を参照し、アクセス要求を出力したアプリケーション２３０が、監視対象フォルダに対して登録されているか否かを判断する。
【００８２】
具体的には、アクセス許否判定部２４３は、まず、アクセス要求を出力したアプリケーション２３０のプロセスＩＤを取得する。プロセスＩＤはＯＳによって管理されており、アクセス許否判定部２４３がＯＳに問い合わせることで、アプリケーション２３０のプロセスＩＤを取得することができる。アクセス許否判定部２４３は、アプリケーション２３０のプロセスＩＤとアクセス対象のファイルの所在となるフォルダの識別情報との組が、アクセス許可管理テーブル２１０に登録されているか否かを判断する。プロセスＩＤとフォルダの識別情報との組がアクセス許可管理テーブル２１０に登録されていれば、アプリケーション２３０が登録されたクライアントであると判断することができる。
【００８３】
アプリケーション２３０が登録されたクライアントであれば処理がステップＳ９６に進められる。登録されたクライアントでなければ処理がステップＳ９５に進められる。
【００８４】
［ステップＳ９５］アクセス許否判定部２４３は、アプリケーション２３０からのアクセス要求を拒否し、結果をアプリケーション２３０に返す。その後、処理がアプリケーション２３０に戻される（アプリケーション２３０に復帰する）。
【００８５】
［ステップＳ９６］アクセス許否判定部２４３は、アクセス要求を許可することを暗号化／復号処理部２４４に伝える。暗号化／復号処理部２４４は、アプリケーション２３０のプロセスＩＤと、アクセス対象のファイルの所在となるフォルダの識別情報との組に関連づけられた鍵を、アクセス許可管理テーブル２１０から取得する。そして、暗号化／復号処理部２４４は、取得した鍵を用いてアクセス対象のファイルの暗号化、または復号処理を伴うファイルアクセスを実行する。すなわち、アクセス要求がファイルの読み取り要求であれば、暗号化／復号処理部２４４は、取得した鍵でアクセス対象のファイルを復号し、アプリケーション２３０に渡す。また、アクセス要求がファイルの書き込み要求であれば、暗号化／復号処理部２４４は、取得した鍵で書き込み対象のデータを暗号化してファイルを生成し、生成されたファイルを管理対象のフォルダ内に格納する。その後、処理がアプリケーション２３０に戻される（アプリケーション２３０に復帰する）。
【００８６】
次に、アプリケーションの登録解除処理（ステップＳ３５）について説明する。
図１５は、アプリケーション登録解除処理の概念図である。アプリケーション２３０からアプリケーション登録解除要求が出される（ステップＳ１０１）と、ドライバ２４０は、アクセス許可管理テーブル２１０に登録されていた情報の削除を行う（ステップＳ１０２）。
【００８７】
図１６は、アプリケーション登録解除処理の手順を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
［ステップＳ１１１］ドライバ２４０は、アプリケーション２３０から登録解除要求を取得する。取得した登録解除要求は、テーブルデータ設定部２４１に渡される。
【００８８】
［ステップＳ１１２］テーブルデータ設定部２４１は、アプリケーション２３０のプロセスＩＤがアクセス許可管理テーブル２１０に登録されているか否かを判断する。登録されていれば処理がステップＳ１１３に進められる。登録されていなければ、処理がアプリケーション２３０に戻される（アプリケーション２３０に復帰する）。
【００８９】
［ステップＳ１１３］テーブルデータ設定部２４１は、アクセス許可管理テーブル２１０から、アプリケーション２３０のプロセスＩＤと、そのプロセスＩＤに関連づけられたデータ（鍵やフォルダの識別情報）を削除する。その後、処理がアプリケーション２３０に戻される（アプリケーション２３０に復帰する）。
【００９０】
ところで、暗号化／復号に適用される鍵については、アプリケーション２３０からの入力をパラメータとして用いる以外に、グループ単位のグループ鍵や、ファイル保護システムが動作するローカルマシンにユニークな値（ハード・環境固有値）を鍵生成ロジックに絡める事も可能である。ハード・環境固有値としては、たとえば、ハードディスクＩＤ、ハードトークンＩＤ等が利用可能である。
【００９１】
図１７は、ハード・環境固有値を利用したファイル保護を行う場合のアクセス処理の概略を示す図である。図１７の構成は図６に示した構成に対して、ハード・環境固有値２５０を追加したものである。
【００９２】
まず、ユーザがアプリケーション２３０を起動し、ユーザ認証情報として正当なパスワードを入力すると、アプリケーション２３０からアクセス許可管理テーブル２１０に対して、クライアント識別子、鍵、および資源名が登録される（ステップＳ１２１）。その後、アプリケーション２３０がフォルダ１１１内のファイル１１１ａに対するアクセス要求を出力する（ステップＳ１２２）。
【００９３】
ドライバ２４０ａは、アプリケーション２３０から出力されたアクセス要求に応答して、アプリケーション２３０のプロセスＩＤを取得する。そして、ドライバ２４０ａは、アクセス許可管理テーブル２１０を参照し、取得したプロセスＩＤに対応するクライアント識別子に対応する鍵αを取得する（ステップＳ１２３）。さらに、ドライバ２４０ａは、ハード・環境固有値２５０を取得する（ステップＳ１２４）。
【００９４】
ドライバ２４０ａは、取得したハード・環境固有値２５０を暗号鍵、復号鍵を生成するための補助情報（鍵生成補助情報）として使用する。すなわち、ドライバ２４０ａは、アクセス許可管理テーブル２１０から取得した鍵αとハード・環境固有値２５０とを組み合わせて、新たな鍵を生成する。次に、ドライバ２４０ａは、生成した鍵を用いて暗号化や復号を行いながら、アクセス要求で指定されたファイル１１１ａを操作する（ステップＳ１５）。
【００９５】
このように、ハード・環境固有値２５０を用いた暗号化／復号の鍵を生成することで、保護対象の資源に対しては、１つのコンピュータからしかアクセスできなくなる。すなわち、ネットワーク経由の不正アクセスからの保護が強化される。
【００９６】
また、図８に示したワークフローは、アプリケーション２３０に対してライブラリによってファイルを保護するための機能を実装した場合の例であるが、ファイルを保護するための機能をランチャアプリケーションで実行するようにしてもよい。
【００９７】
図１８は、ランチャアプリケーションを利用したファイル保護のワークフローを示す図である。図１８の例では、ランチャアプリケーション２３１と子アプリケーション２３２とが設けられている。ランチャアプリケーション２３１は、ユーザからの操作入力に応答して、各種アプリケーションを起動するための操作補助機能である。子アプリケーション２３２は、ランチャアプリケーション２３１によって起動されるアプリケーションである。子アプリケーション２３２としては、ワードプロセッサや表計算などがある。
【００９８】
［ステップＳ１３１］ユーザがパスワードの入力を行い、ランチャアプリケーション２３１に対して子アプリケーション２３２の起動を要求する操作入力を行うと、ランチャアプリケーション２３１は、監視フォルダ登録、監視開始処理を行う。具体的には、ランチャアプリケーション２３１は、ドライバ２４０を介して、保護資源管理テーブル２２０に対して、保護対象資源とすべきフォルダの識別情報を登録する。保護対象資源とすべきフォルダは、ユーザから任意に指定されたフォルダでもよいし、アプリケーション２３０用に設けられた規定のフォルダであってもよい。なお、この処理は、フォルダを監視対象として最初に指定した時に一回だけ行われる。
【００９９】
［ステップＳ１３２］監視フォルダ登録、監視開始処理の終了後、ランチャアプリケーション２３１が起動する。
［ステップＳ１３３］ランチャアプリケーション２３１からＯＳに子アプリケーション２３２の起動要求が出され、子アプリケーション２３２が起動する。
【０１００】
［ステップＳ１３４］ランチャアプリケーション２３１は、子アプリケーション２３２の起動時に付与されたプロセスＩＤを、クライアント識別子としてドライバ２４０の管理下にあるアクセス許可管理テーブル２１０に登録する。この際、ユーザが入力したパスワードに応じた鍵がアプリケーション２３０で生成される。生成された鍵は、このステップＳ１３４において登録されたクライアント識別子に関連づけて、アクセス許可管理テーブル２１０内に登録される。また、このステップＳ１３４において登録されたクライアント識別子に関連づけて、ステップＳ１３１で保護対象資源として指定されたフォルダの識別情報が、アクセスを許可される資源としてアクセス許可管理テーブル２１０に登録される。
【０１０１】
［ステップＳ１３５］子アプリケーション２３２は、ドライバ２４０を経由して、監視対象となるフォルダ内のファイルのアクセスを行う（ファイル内のデータを読み出したり、ファイル内にデータを書き込んだりする）。ファイル内のデータを読み出すときには、ドライバ２４０においてそのファイルの復号が行われる。また、ファイル内にデータを書き込む際には、ドライバ２４０において、そのファイルの暗号化が行われる。
【０１０２】
［ステップＳ１３６］ユーザからの操作入力に応答して、子アプリケーションが終了する。
［ステップＳ１３７］ランチャアプリケーション２３１は、子アプリケーション２３２が終了すると、ドライバ２４０に対して子アプリケーション２３２の終了通知を行う。ドライバ２４０は、アプリケーション２３０に対応するクライアント識別子、およびそのクライアント識別子に関連づけられた鍵やフォルダの識別情報を、アクセス許可管理テーブル２１０から削除する。
【０１０３】
［ステップＳ１３８］ランチャアプリケーション２３１が終了する。
以上説明したように本実施の形態では、監視対象とするアプリケーションを事前に登録しておき、ドライバ２４０により選択的アクセスを制御・判別し、予め登録されていないアプリケーションからのアクセスを拒絶することができる。従って、容易にファイルへのアクセスを制限することができる。
【０１０４】
また、システム管理者はアクセスを許可したアプリケーションが有する機能の範囲内のファイル操作のみを可能とし、それ以外のファイル操作のためのアクセスを拒否することで、情報の不正な漏洩を監視することが可能となる。
【０１０５】
しかも、例え保護対象のファイルへのアクセスを許可されているユーザであっても、望ましくないオペレーション（アクセスが許可されていないアプリケーションからのアクセス要求）によるファイルの不正操作が禁止される。
【０１０６】
また、ドライバ２４０自体が除去された場合においても、登録されたアプリケーションで暗号化されたファイルは他のアプリケーションで復号を試みても復号できない。これは、アプリケーションの登録時にそのアプリケーションだけが使用する鍵（暗号鍵や復号鍵として使用される）を設定しているためである。
【０１０７】
また、アクセスを許可するアプリケーション毎に鍵を割り当てることで、許可されている他のアプリケーションで復号を試みても鍵が異なるため、正しく復号することができない。その結果、登録されたアプリケーションを正しく使用できるユーザだけが、ファイル情報を正常に復号し、そのアプリケーションの機能による、修正・複写機能を利用することができる。
【０１０８】
また、アプリケーションは新規に本システム専用に製作されたものに加えて、従来型のプログラムであっても、そのプログラムの起動・状態・終了を管理するエージェントプログラム（ランチャアプリケーション）を介在させる事により、容易にこのシステム上に組み込む事が可能である。そのため、既存のアプリケーションの内容に変更を加えずに、本実施の形態に係るアプリケーションとして機能させることができる。
【０１０９】
さらに、鍵の生成方式をアプリケーション毎に決定することで、保護対象資源内のファイルに関する相互運用性・排他性を容易に、アプリケーション毎に計画・運用する事が可能となる。したがって、任意のアプリケーションにおいては情報の共有の設定をグループ単位で制御するということも可能となる。
【０１１０】
以上のような選択的アクセス制御によりボトムアップでの選択的アクセス制御および計画の容易さに加え、トップダウンでの堅牢さとそれ以上のセキュリティを併せ持つファイル情報の運営管理のためのシステムの実現が可能となる。
【０１１１】
なお、上記の処理機能を実現するには、コンピュータが有すべき機能の処理内容を記述したデータ保護プログラムが提供される。そのデータ保護プログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したデータ保護プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ　ｄｉｓｃ）などがある。
【０１１２】
データ保護プログラムを流通させる場合には、たとえば、そのデータ保護プログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、データ保護プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのデータ保護プログラムを転送することもできる。
【０１１３】
データ保護プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたデータ保護プログラムもしくはサーバコンピュータから転送されたデータ保護プログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からデータ保護プログラムを読み取り、データ保護プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接データ保護プログラムを読み取り、そのデータ保護プログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからデータ保護プログラムが転送される毎に、逐次、受け取ったデータ保護プログラムに従った処理を実行することもできる。
【０１１４】
（付記１）　保護対象資源に格納されるデータを保護するためのデータ保護プログラムにおいて、
コンピュータに、
前記保護対象資源に対するアクセス可能なプログラムの識別情報をアクセス許可管理テーブルに登録し、
前記保護対象資源に対するアクセス要求を受け取ると、前記アクセス要求を出力した要求元プログラムの識別情報を取得し、
前記アクセス許可管理テーブルに前記要求元プログラムの識別情報が登録されているか否かにより、前記保護対象資源へのアクセスの許否を判定し、
前記保護対象資源へのアクセスが許可された場合、前記アクセス要求に応答して、前記保護対象資源内のデータを操作する、
処理を実行させることを特徴とするデータ保護プログラム。
【０１１５】
（付記２）　前記保護対象資源内のデータを操作するとき、前記アクセス要求が書き込み要求であれば、前記要求元プログラムを実行するプロセスから渡されたデータを暗号化して前記保護対象資源内に格納し、前記アクセス要求が読み出し要求であれば、前記保護対象資源から取り出したデータを復号して、前記要求元プログラムを実行するプロセスへ渡すことを特徴とする付記１記載のデータ保護プログラム。
【０１１６】
（付記３）　前記アクセス許可管理テーブルに対し、前記プログラムの識別情報に関連づけて鍵を登録し、
前記保護対象資源内のデータの暗号化および復号の際には、前記要求元プログラムの識別情報に関連づけて前記アクセス許可管理テーブルに登録された前記鍵を用いて、データの暗号化および復号を行うことを特徴とする付記２記載のデータ保護プログラム。
【０１１７】
（付記４）　前記プログラムにユーザによって入力されたパスワードから一意に決定される値を前記鍵として前記アクセス許可管理テーブルに登録することを特徴とする付記３記載のデータ保護プログラム。
【０１１８】
（付記５）　前記保護対象資源内のデータの暗号化および復号の際には、前記要求元プログラムの識別情報に関連づけられた前記鍵と、前記コンピュータに予め設定された固有値とを組み合わせた値を用いて、データの暗号化および復号を行うことを特徴とする付記２記載のデータ保護プログラム。
【０１１９】
（付記６）　データを保護すべきフォルダの識別情報を保護資源管理テーブルに登録し、前記保護資源管理テーブルに登録された前記フォルダのみを前記保護対象資源とすることを特徴とする付記１記載のデータ保護プログラム。
【０１２０】
（付記７）　前記アクセス許可管理テーブルに対し、前記プログラムの識別情報とアクセス可能な資源の資源名との組を登録し、
前記アクセス許可管理テーブルに前記要求元プログラムの識別情報と前記アクセス要求によるアクセス先の資源名との組が登録されているか否かにより、前記保護対象資源へのアクセスの許否を判定することを特徴とする付記１記載のデータ保護プログラム。
【０１２１】
（付記８）　保護対象資源に格納されるデータを保護するためのデータ保護方法において、
前記保護対象資源に対するアクセス可能なプログラムの識別情報をアクセス許可管理テーブルに登録し、
前記保護対象資源に対するアクセス要求を受け取ると、前記アクセス要求を出力した要求元プログラムの識別情報を取得し、
前記アクセス許可管理テーブルに前記要求元プログラムの識別情報が登録されているか否かにより、前記保護対象資源へのアクセスの許否を判定し、
前記保護対象資源へのアクセスが許可された場合、前記アクセス要求に応答して、前記保護対象資源内のデータを操作する、
ことを特徴とするデータ保護方法。
【０１２２】
（付記９）　保護対象資源に格納されるデータを保護するデータ保護装置において、
前記保護対象資源に対するアクセス可能なプログラムの識別情報をアクセス許可管理テーブルに登録する識別情報登録手段と、
前記保護対象資源に対するアクセス要求を受け取ると、前記アクセス要求を出力した要求元プログラムの識別情報を取得する識別情報取得手段と、
前記アクセス許可管理テーブルに前記要求元プログラムの識別情報が登録されているか否かにより、前記保護対象資源へのアクセスの許否を判定するアクセス許否判定手段と、
前記保護対象資源へのアクセスが許可された場合、前記アクセス要求に応答して、前記保護対象資源内のデータを操作するデータ操作手段と、
を有することを特徴とするデータ保護装置。
【０１２３】
（付記１０）　保護対象資源に格納されるデータを保護するためのデータ保護プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記保護対象資源に対するアクセス可能なプログラムの識別情報をアクセス許可管理テーブルに登録し、
前記保護対象資源に対するアクセス要求を受け取ると、前記アクセス要求を出力した要求元プログラムの識別情報を取得し、
前記アクセス許可管理テーブルに前記要求元プログラムの識別情報が登録されているか否かにより、前記保護対象資源へのアクセスの許否を判定し、
前記保護対象資源へのアクセスが許可された場合、前記アクセス要求に応答して、前記保護対象資源内のデータを操作する、
処理を実行させることを特徴とするデータ保護プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１２４】
【発明の効果】
以上説明したように本発明では、アクセス要求を出力した要求元プログラムの識別情報が予めアクセス許可管理テーブルに登録されている場合にのみアクセスが許可され、アクセス要求に応じた保護対象資源内のデータに対する操作が行われるようにした。そのため、アクセスが許可されたアプリケーションが保護対象資源内のデータにアクセスしている最中であっても、アクセス許可管理テーブルに識別情報が登録されていない他のアプリケーションによる保護対象資源内のデータへのアクセスを拒否することができる。その結果、保護対象資源内のデータの安全性が向上する。
【図面の簡単な説明】
【図１】実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。
【図３】ファイル保護機能を実現するための構成を示すブロック図である。
【図４】アクセス許可管理テーブルのデータ構造例を示す図である。
【図５】保護資源管理テーブルのデータ構造例を示す図である。
【図６】クライアント識別子を登録した場合のアクセス処理の概略を示す図である。
【図７】クライアント識別子が未登録の場合のアクセス処理の概略を示す図である。
【図８】本実施の形態の全体のワークフローを示す図である。
【図９】監視対象フォルダ登録処理を示す概念図である。
【図１０】監視対象フォルダ登録処理の手順を示すフローチャートである。
【図１１】アプリケーション登録処理を示す概念図である。
【図１２】アプリケーション登録処理の手順を示すフローチャートである。
【図１３】ファイルアクセス処理を示す概念図である。
【図１４】ファイルアクセス処理の手順を示すフローチャートである。
【図１５】アプリケーション登録解除処理の概念図である。
【図１６】アプリケーション登録解除処理の手順を示すフローチャートである。
【図１７】ハード・環境固有値を利用したファイル保護を行う場合のアクセス処理の概略を示す図である。
【図１８】ランチャアプリケーションを利用したファイル保護のワークフローを示す図である。
【符号の説明】
１　保護対象資源
２　要求元プログラム
３　アクセス許可管理テーブル
１０３　ストレージデバイス
１１１〜１１４　フォルダ
２１０　アクセス許可管理テーブル
２２０　保護資源管理テーブル
２３０　アプリケーション
２４０　ドライバ
２４１　テーブルデータ設定部
２４２　暗号化／復号要否判定部
２４３　アクセス許否判定部
２４４　暗号化／復号処理部
【図１】
2004046307.tif 000003
【図２】
2004046307.tif 000004
【図３】
2004046307.tif 000005
【図４】
2004046307.tif 000006
【図５】
2004046307.tif 000007
【図６】
2004046307.tif 000008
【図７】
2004046307.tif 000009
【図８】
2004046307.tif 000010
【図９】
2004046307.tif 000011
【図１０】
2004046307.tif 000012
【図１１】
2004046307.tif 000013
【図１２】
2004046307.tif 000014
【図１３】
2004046307.tif 000015
【図１４】
2004046307.tif 000016
【図１５】
2004046307.tif 000017
【図１６】
2004046307.tif 000018
【図１７】
2004046307.tif 000019
【図１８】
2004046307.tif 000020