(57)【要約】【課題】  正規ユーザが操作ミスをした場合であっても機密情報の漏洩を防止できるようにする。【解決手段】  アプリケーション監視手段４は、イベントメッセージを横取する。また、アプリケーション状態管理手段６は、アプリケーション知識５にもとづいて、アプリケーションソフトウェア２の実行状態を推定し、アプリケーション状態テーブルを更新する。すると、暗号／復号判定手段９は、更新結果および機密文書取扱知識１１にもとづいて暗号復号判定テーブルを更新する。秘文書ファイルアクセス制御手段７は、読み込みデータまたは書き込みデータを横取りする。そして、秘文書ファイルアクセス制御手段７は、文書を暗号化または復号べきか否かを暗号／復号判定手段９に判定させ、必要に応じて暗号／復号手段８に文書を暗号化または復号させる。【選択図】  図１
2005222155.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムと、アプリケーションソフトウェアと、デバイスドライバとが搭載され、機密文書を、暗号化することによって保護する機密文書管理装置であって、
前記オペレーティングシステムのメッセージにもとづいて前記アプリケーションソフトウェアの実行状態を推定するアプリケーション実行状態推定手段と、
前記デバイスドライバを用いて文書へのアクセスを検出した場合に、前記アプリケーション実行状態推定手段が推定した実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する処理判断手段とを
備えたことを特徴とする機密文書管理装置。
【請求項２】
アプリケーション実行状態推定手段は、
オペレーティングシステムとアプリケーションソフトウェアとの間のメッセージを横取りすることによって、前記アプリケーションソフトウェアで発生したイベントを検出するイベント検出手段と、
前記アプリケーションソフトウェアで発生するイベントと、イベントの意味とを対応付けて記憶するアプリケーション情報記憶手段と、
前記イベント検出手段が検出したイベントの意味を、前記アプリケーション情報記憶手段が記憶する情報にもとづいて決定することによって、前記アプリケーションソフトウェアの実行状態を推定する実行状態推定手段とを備えた
請求項１記載の機密文書管理装置。
【請求項３】
アプリケーション実行状態推定手段は、機密文書であることを示す属性を文書に付与する文書機密属性付与手段を含み、
実行状態推定手段は、アプリケーションソフトウェアの実行状態に前記文書機密属性付与手段が付与した前記属性を含めて前記実行状態を推定する
請求項２記載の機密文書管理装置。
【請求項４】
処理判断手段は、
オペレーティングシステムとデバイスドライバとの間の読み込みデータまたは書き込みデータを横取りすることによって、文書へのアクセスを監視するアクセス監視手段と、
前記アクセス監視手段からの指示に従って、暗号化された文書を復号し、または文書を暗号化する暗号復号手段と、
文書へのアクセスに対して、文書を暗号化すべきか否か、または復号すべきか否かの処理方法を記憶する処理情報記憶手段と、
アプリケーション実行状態推定手段が推定した推定結果にもとづいて、前記アクセス監視手段が横取りしたデータに含まれる文書を、暗号化するか否か、または復号するか否かを判断する暗号復号判断手段とを備えた
請求項１から請求項３のうちのいずれか１項に記載の機密文書管理装置。
【請求項５】
アプリケーション情報記憶手段は、アプリケーションソフトウェアの種類を示すアプリケーション名と、イベントの種類を示すイベント名と、前記イベントのパラメータであるイベントパラメータと、ユーザがアプリケーションソフトウェア上で行いうる操作の意味を示す操作意味とを記憶する請求項２または請求項３記載の機密文書管理装置。
【請求項６】
処理情報記憶手段は、アプリケーションソフトウェアの種類を示すアプリケーション名と、文書を公開する範囲を示す機密区分と、ユーザが前記アプリケーションソフトウェア上で行いうる操作の意味を示す操作意味と、デバイスドライバのコマンドの種類を示すドライバ実行コマンドと、前記デバイスドライバ上でアクセスがあった場合の文書の処理方法とを記憶する請求項４記載の機密文書管理装置。
【請求項７】
コンピュータにログインしているユーザのユーザ名を取得するユーザ名取得手段と、
アクセス監視手段が横取りした読み込みデータに含まれるヘッダを記憶するヘッダ記憶手段と、
前記アクセス監視手段が横取りした書き込みデータに含まれるヘッダに、前記ユーザ名取得手段が取得したユーザ名を付加するユーザ名付加手段とを備えた
請求項４記載の機密文書管理装置。
【請求項８】
暗号化または復号した際に、ユーザ名取得手段が取得したユーザ名を用いてログデータを生成するログデータ生成手段と、
前記ログデータ生成手段が生成したログデータを記憶するログデータ記憶手段とを備えた
請求項７記載の機密文書管理装置。
【請求項９】
ユーザ名付加手段は、デバイスドライバを用いて文書へのアクセスが検出された場合に、アクセスしたユーザのユーザ名をヘッダに付加する請求項７記載の機密文書管理装置。
【請求項１０】
ログデータ記憶手段は、機密文書管理装置と、通信ネットワークを介して接続されるサーバであり、
ログデータ生成手段は、生成したログデータを、通信ネットワークを介して前記ログデータ記憶手段に記憶させる
請求項８記載の機密文書管理装置。    
【請求項１１】
処理判断手段は、アプリケーション実行状態推定手段が推定するアプリケーションソフトウェアの実行状態の推定結果と、前記処理判断手段が記憶する情報とを、アプリケーションソフトウェアのインスタンスを識別するためのプロセスＩＤを用いて対応付ける請求項１記載の機密文書管理装置。
【請求項１２】
オペレーティングシステムと、アプリケーションソフトウェアと、デバイスドライバとが搭載されたコンピュータを用いて、機密文書を、暗号化することによって保護する機密文書管理方法であって、
前記オペレーティングシステムのメッセージにもとづいて前記アプリケーションソフトウェアの実行状態を推定するアプリケーション実行状態推定ステップと、
前記デバイスドライバを用いて文書へのアクセスを検出した場合に、前記実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する処理判断ステップとを
含むことを特徴とする機密文書管理方法。
【請求項１３】
アプリケーション実行状態推定ステップで、
前記アプリケーションソフトウェアで発生するイベントと、イベントの意味とを対応付けて記憶し、
オペレーティングシステムとアプリケーションソフトウェアとの間のメッセージを横取りすることによって、前記アプリケーションソフトウェアで発生したイベントを検出し、
検出したイベントの意味を、前記記憶した情報にもとづいて決定することによって、前記アプリケーションソフトウェアの実行状態を推定する
請求項１２記載の機密文書管理方法。
【請求項１４】
アプリケーション実行状態推定ステップで、
機密文書であることを示す属性を文書に付与し、
アプリケーションソフトウェアの実行状態に前記付与した属性を含めて前記実行状態を推定する
請求項１３記載の機密文書管理方法。
【請求項１５】
処理判断ステップで、
文書へのアクセスに対して、文書を暗号化すべきか否か、または復号すべきか否かの処理方法を記憶し、
オペレーティングシステムとデバイスドライバとの間の読み込みデータまたは書き込みデータを横取りすることによって、文書へのアクセスを監視し、
アプリケーション実行状態推定ステップで推定したアプリケーションソフトウェアの実行状態の推定結果にもとづいて、横取りしたデータに含まれる文書を、暗号化するか否か、または復号するか否かを判断し、
暗号化された文書を復号し、または文書を暗号化する
請求項１２から請求項１４のうちのいずれか１項に記載の機密文書管理方法。
【請求項１６】
横取りした読み込みデータに含まれるヘッダを記憶するヘッダ記憶ステップと、
コンピュータにログインしているユーザのユーザ名を取得するユーザ名取得ステップと、
横取りした書き込みデータに含まれるヘッダに、前記ユーザ名取得ステップで取得したユーザ名を付加するユーザ名付加ステップとを含む
請求項１５記載の機密文書管理方法。
【請求項１７】
暗号化または復号した際に、ユーザ名取得ステップで取得したユーザ名を用いてログデータを生成するログデータ生成ステップと、
前記ログデータ生成ステップで生成したログデータを記憶するログデータ記憶ステップとを含む
請求項１６記載の機密文書管理方法。
【請求項１８】
ユーザ名付加ステップで、デバイスドライバを用いて文書へのアクセスが検出された場合に、アクセスしたユーザのユーザ名をヘッダに付加する請求項１６記載の機密文書管理方法。
【請求項１９】
ログデータ記憶ステップで、ログデータ生成ステップで生成したログデータを、通信ネットワークを介してサーバに記憶させる請求項１７記載の機密文書管理方法。
【請求項２０】
機密文書を、暗号化することによって保護する機密文書管理プログラムであって、
オペレーティングシステムと、アプリケーションソフトウェアと、デバイスドライバとが搭載されたコンピュータに、
前記オペレーティングシステムのメッセージにもとづいて前記アプリケーションソフトウェアの実行状態を推定するアプリケーション実行状態推定処理と、
前記デバイスドライバを用いて文書へのアクセスを検出した場合に、前記実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する処理判断処理とを
実行させることを特徴とする機密文書管理プログラム。
【請求項２１】
アプリケーション実行状態推定処理で、
前記アプリケーションソフトウェアで発生するイベントと、イベントの意味とを対応付けて記憶し、
オペレーティングシステムとアプリケーションソフトウェアとの間のメッセージを横取りすることによって、前記アプリケーションソフトウェアで発生したイベントを検出し、
検出したイベントの意味を、前記記憶した情報にもとづいて決定することによって、前記アプリケーションソフトウェアの実行状態を推定する処理を実行させる
請求項２０記載の機密文書管理プログラム。
【請求項２２】
アプリケーション実行状態推定処理で、
機密文書であることを示す属性を文書に付与し、
アプリケーションソフトウェアの実行状態に前記付与した属性を含めて前記実行状態を推定する処理を実行させる
請求項２１記載の機密文書管理プログラム。
【請求項２３】
処理判断処理で、
文書へのアクセスに対して、文書を暗号化すべきか否か、または復号すべきか否かの処理方法を記憶し、
オペレーティングシステムとデバイスドライバとの間の読み込みデータまたは書き込みデータを横取りすることによって、文書のアクセスを監視し、
アプリケーション実行状態推定ステップで推定したアプリケーションソフトウェアの実行状態の推定結果にもとづいて、横取りしたデータに含まれる文書を、暗号化するか否か、または復号するか否かを判断し、
暗号化された文書を復号し、または文書を暗号化する処理を実行させる
請求項２０から請求項２２のうちのいずれか１項に記載の機密文書管理プログラム。
【請求項２４】
アプリケーション実行状態推定処理で、アプリケーションソフトウェアの種類を示すアプリケーション名と、イベントの種類を示すイベント名と、前記イベントのパラメータであるイベントパラメータと、ユーザがアプリケーションソフトウェア上で行いうる操作の意味を示す操作意味とを記憶することによって、前記アプリケーションソフトウェア上で発生しうるイベントと、イベントの意味とを対応付けて記憶する処理を実行させる請求項２１または請求項２２記載の機密文書管理プログラム。
【請求項２５】
処理判断処理で、アプリケーションソフトウェアの種類を示すアプリケーション名と、文書を公開する範囲を示す機密区分と、ユーザが前記アプリケーションソフトウェア上で行いうる操作の意味を示す操作意味と、デバイスドライバのコマンドの種類を示すドライバ実行コマンドと、前記デバイスドライバ上でアクセスがあった場合の文書の処理方法とを記憶することによって、文書へのアクセスに対して、文書を暗号化すべきか否か、または復号すべきか否かの処理方法を記憶する処理を実行させる請求項２３記載の機密文書管理プログラム。
【請求項２６】
コンピュータに、
横取りした読み込みデータに含まれるヘッダを記憶するヘッダ記憶処理と、
コンピュータにログインしているユーザのユーザ名を取得するユーザ名取得処理と、
横取りした書き込みデータに含まれるヘッダに、前記ユーザ名取得ステップで取得したユーザ名を付加するユーザ名付加処理と実行させる
請求項２３記載の機密文書管理プログラム。
【請求項２７】
コンピュータに、
暗号化または復号した際に、ユーザ名取得処理で取得したユーザ名を用いてログデータを生成するログデータ生成処理と、
生成したログデータを記憶するログデータ記憶処理とを実行させる
請求項２６記載の機密文書管理プログラム。
【請求項２８】
ユーザ名付加処理で、デバイスドライバを用いて文書へのアクセスが検出された場合に、アクセスしたユーザのユーザ名をヘッダに付加する処理を実行させる請求項２６記載の機密文書管理プログラム。
【請求項２９】
ログデータ記憶処理で、ログデータ生成ステップで生成したログデータを、通信ネットワークを介してサーバに記憶させる処理を実行させる請求項２７記載の機密文書管理プログラム。
【請求項３０】
処理判断処理で、アプリケーション実行状態推定ステップで推定するアプリケーションソフトウェアの実行状態の推定結果と、前記処理判断ステップで記憶する情報とを、アプリケーションソフトウェアのインスタンスを識別するためのプロセスＩＤを用いて対応付ける処理を実行させる請求項２０記載の機密文書管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機密文書管理装置、機密文書管理方法および機密文書管理用プログラムに関し、特に機密文書を暗号化することによって機密情報を保護しながら、計算機ネットワークや記憶媒体を利用して機密情報を複数人に配布することができる機密文書管理装置、機密文書管理方法および機密文書管理プログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置の普及にともない、オフィスにおける文書を、ワードプロセッサなどで作成した電子データとして管理することが多い。また、このような電子文書ファイル（以下、単に文書という）を配布するために、情報処理装置をネットワークを介して接続し、電子的にファイル交換が行われることも多い。
【０００３】
例えば、ファイルサーバプログラムが搭載された情報処理装置（以下、ファイルサーバという）と、ファイルサーバにアクセスするためのクライアントプログラムが搭載された複数の情報処理装置（以下、クライアントという）とをネットワークを介して接続する。この場合、クライアントで作成された文書をファイルサーバのディスク装置にアップロードし、他のクライアントからファイルサーバ上の文書をダウンロードすることによって、複数のユーザ間で文書の共有が行われている。
【０００４】
また、電子メールやＷＷＷ（World Wide Web）を用いた文書共有も行われている。この場合、通信のプロトコルなどの方式は異なるが、それぞれメールサーバやＷＷＷサーバを介して各ユーザのクライアント間で文書を交換する。
【０００５】
文書の管理や交換を行う際に、機密情報を取扱う方法（機密文書管理方法）を説明する。なお、機密情報とは、ある特定のユーザ間だけで共有することが許された情報のことである。また、機密情報が含まれている文書を機密文書という。さらに、機密文書へアクセスが許された利用者を、以下、機密文書の正規ユーザという。
【０００６】
機密文書管理の重要な目的は、情報を漏洩させないことである。すなわち、機密文書管理の重要な目的は、アクセス権のない利用者に機密文書が開示されてしまうことを防ぐことである。情報を漏洩させないようにする方法として、一般に、以下に示すアクセス権管理およびファイル暗号化の２種類の方法がある。
【０００７】
アクセス権管理とは、ファイルまたはファイルが置かれているディレクトリに対して、アクセス権を設定する方法である。アクセス権管理は、オペレーティングシステム（ＯＳ：Operating System）の基本機能のひとつであり、ＵＮＩＸ（登録商標）やマイクロソフト株式会社のＷｉｎｄｏｗｓ（登録商標）などに実装されている。
【０００８】
例えば、ＵＮＩＸの場合、各ファイルや各ディレクトリのアクセス権を、「ファイル作成者」、「ファイル作成者のグループに所属しているユーザ」および「その他のユーザ」の３つの観点から設定できる。また、「読むことが可能」、「書き換えることが可能」、および「実行することが可能」の３種類のアクセス権を設定できる。
【０００９】
ＯＳが備えるアクセス権管理機能を、機密文書へのアクセス権の管理に利用することによって、機密文書をある特定のユーザ間だけで共有することが可能となる。
【００１０】
また、ネットワークを介して文書が配布される環境では、ネットワークを流れるデータが盗聴される可能性があり、アクセス権管理を行うだけでは不十分である。そこで、よりセキュリティのレベルを高める方法として、文書を暗号化する方法が知られている。ファイル暗号化には、ディスク装置全体を暗号化する方法や、ファイル単位またはディレクトリ単位に暗号化する方法がある。いずれの方法を用いても、ネットワークを流れるデータが暗号化されているので、盗聴などから機密文書を守ることができる。
【００１１】
文書を復号するためには「キー」が必要であるので、ある文書へのアクセス権を与えることは、文書を復号する「キー」を与えることによって行うことができる。すなわち、文書を複数人で共有したい場合、正規ユーザ同士で「キー」を共有することによって文書共有を実現できる。
【００１２】
なお、「キー」を共有するためにネットワークを利用すると、「キー」自体が盗聴される恐れがある。そのため、公開鍵暗号方式を用いるようにしてもよい。公開鍵暗号方式については、非特許文献１に記載されている。
【００１３】
また、特許文献１には、複数のユーザが同一のファイルを利用する場合にも暗号化ファイルが一個で済むファイル暗号システムが記載されている。特許文献１に記載されたファイル暗号化システムは、暗号者が作成した宛先リストと復号者のＩＣカードに格納されたユーザ識別情報とを照合することによって、指定されたユーザだけがデータを復号できるようにする。また、特許文献１に記載されたファイル暗号システムは、アプリケーションプログラムからＯＳに発行されるファイル操作要求をフックし、ファイル操作要求発行時に自動的にデータを暗号化または復号する。
【００１４】
また、特許文献２には、ユーザが煩わしい操作を行わなくても、記憶装置内のデータの盗み見や改変を防止できるデータ保存方法が記載されている。特許文献２に記載されたデータ保存方法では、アプリケーションプログラムからＯＳへの要求を横取りし、書き出し要求の場合には、自動的にデータを暗号化して記憶装置に保存する。また、読み込み要求の場合には、自動的に暗号化データを復号してアプリケーションプログラムに渡す。
【００１５】
【特許文献１】特開平１０−２６０９０３号公報（第１７−２２頁、第１−１７図）
【特許文献２】特開平１１−１４９４１４号公報（第６，１２頁、第１図）
【非特許文献１】Whitfield Diffie, Martin E. Hellman, New Directions in Cryptography, " IEEE Transactions on Information Theory", 1976, p.29-40
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかし、アクセス権管理を行っている場合に、アクセスの権限のある正規ユーザが機密文書のファイルをダウンロードし、ダウンロードしたファイルを電子メールなどを用いてアクセス権限のないユーザに誤って配布してしまうと、情報が漏洩する。また、ファイル暗号化を用いた場合に、機密文書を暗号化すること自体を忘れてしまうと、情報が漏洩してしまう。従って、アクセス権管理やファイル暗号化を用いたとしても、正規ユーザが操作ミスをした場合、情報が漏洩してしまう恐れがある。
【００１７】
また、アクセス権管理またはファイル暗号化を用いる場合、正規ユーザが故意に情報を漏洩させてしまう恐れがある。アクセス権管理またはファイル暗号化を用いる場合、セキュリティ管理は正規ユーザのモラルに任されている。アクセス権管理を用いる場合、正規ユーザは、機密文書を必ず正しいアクセス権が設定されたディレクトリに保存しておく義務がある。また、ファイル暗号化を用いる場合、正規ユーザは、機密文書を暗号化する義務がある。しかし、正規ユーザが運用のルールを守らないことによって、簡単に情報を漏洩させることができてしまう。アクセス権管理を用いる場合、例えば、誰もがアクセスできるディレクトリに故意に機密文書のファイルをコピーしてしまうと、簡単に情報が漏洩してしまう。また、ファイル暗号化を用いる場合、例えば、故意に暗号化せずに他者に機密文書を公開すると、簡単に情報が漏洩してしまう。
【００１８】
また、アクセス権管理やファイル暗号化は、ドラフト状態の機密文書を扱うのに適していない。ドラフトファイルの場合には、利便性を損なうことを理由に、誰もがアクセスできるディレクトリで校正作業を行ったり、暗号化せずに文書の校正作業を行ったりすることが多い。そのため、機密文書が完成したときにアクセス権を設定してアクセス権管理をしたり暗号化して公開したりする場合が多く、編集が繰り返されるドラフトの状態でアクセス権管理やファイル暗号化が利用されることは少ない。従って、コンピュータ上に、暗号化されていないドラフト状態の機密文書や、誰もがアクセスできるドラフト状態の機密文書が大量に存在する。
【００１９】
また、アクセス権管理やファイル暗号化を用いたとしても、ファイル作成者や管理者は、一旦配布した機密文書が配布先でどのように扱われているかを知ることができない。例えば、配布先のユーザがフレキシブルディスク（ＦＤ）に機密文書を入れて自宅に持ち帰り他者にコピーしても、ファイル作成者や管理者は、その事実を知ることができない。
【００２０】
本発明は、上記課題を解決するためになされたものであって、正規ユーザが操作ミスをした場合であっても機密情報の漏洩を防止できる機密文書管理装置、機密文書管理方法および機密文書管理プログラムを提供することを目的とする。
【００２１】
また、本発明は、正規ユーザが故意に機密情報を漏洩するのを防止できる機密文書管理装置、機密文書管理方法および機密文書管理プログラムを提供することを目的とする。また、本発明は、複数人で編集作業を繰り返し行うドラフト状態の機密文書を、利便性を損なうことなく保護できる機密文書管理装置、機密文書管理方法および機密文書管理プログラムを提供することを目的とする。さらに、本発明は、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理できる機密文書管理装置、機密文書管理方法および機密文書管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明による機密文書管理装置は、オペレーティングシステムと、アプリケーションソフトウェアと、デバイスドライバとが搭載され、機密文書を暗号化することによって保護する機密文書管理装置であって、オペレーティングシステムのメッセージにもとづいてアプリケーションソフトウェアの実行状態を推定するアプリケーション実行状態推定手段と、デバイスドライバを用いて文書へのアクセスを検出した場合に、アプリケーション実行状態推定手段が推定した実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する処理判断手段とを備えたことを特徴とする。
【００２３】
また、アプリケーション実行状態推定手段は、オペレーティングシステムとアプリケーションソフトウェアとの間のメッセージを横取りすることによって、アプリケーションソフトウェアで発生したイベントを検出するイベント検出手段と、アプリケーションソフトウェアで発生するイベントと、イベントの意味とを対応付けて記憶するアプリケーション情報記憶手段と、イベント検出手段が検出したイベントの意味を、アプリケーション情報記憶手段が記憶する情報にもとづいて決定することによって、アプリケーションソフトウェアの実行状態を推定する実行状態推定手段とを備えたものであってもよい。そのような構成によれば、アプリケーションソフトウェアごとにイベントの意味が異なる場合であっても、アプリケーションソフトウェアの実行状態を推定することができる。
【００２４】
また、アプリケーション実行状態推定手段は、機密文書であることを示す属性を文書に付与する文書機密属性付与手段を含み、実行状態推定手段は、アプリケーションソフトウェアの実行状態に文書機密属性付与手段が付与した属性を含めて、実行状態を推定するものであってもよい。そのような構成によれば、文書が機密文書であるか否かを示す属性も、アプリケーションソフトウェアの実行状態の１つとして推定することができる。
【００２５】
また、処理判断手段は、オペレーティングシステムとデバイスドライバとの間の読み込みデータまたは書き込みデータを横取りすることによって、文書へのアクセスを監視するアクセス監視手段と、アクセス監視手段からの指示に従って、暗号化された文書を復号し、または文書を暗号化する暗号復号手段と、文書へのアクセスに対して、文書を暗号化すべきか否か、または復号すべきか否かの処理方法を記憶する処理情報記憶手段と、アプリケーション実行状態推定手段が推定した推定結果にもとづいて、アクセス監視手段が横取りしたデータに含まれる文書を、暗号化するか否か、または復号するか否かを判断する暗号復号判断手段とを備えたものであってもよい。そのような構成によれば、文書へのアクセスがあった場合に、文書を暗号化べきか否か、または復号すべきか否かを判断して、自動的に文書を暗号化または復号できる。
【００２６】
また、アプリケーション情報記憶手段は、アプリケーションソフトウェアの種類を示すアプリケーション名と、イベントの種類を示すイベント名と、イベントのパラメータであるイベントパラメータと、ユーザがアプリケーションソフトウェア上で行いうる操作の意味を示す操作意味とを記憶するものであってもよい。そのような構成によれば、イベントとイベントの意味との対応関係に従って、容易にアプリケーションソフトウェアの実行状態を推定できる。
【００２７】
また、処理情報記憶手段は、アプリケーションソフトウェアの種類を示すアプリケーション名と、文書を公開する範囲を示す機密区分と、ユーザがアプリケーションソフトウェア上で行いうる操作の意味を示す操作意味と、デバイスドライバのコマンドの種類を示すドライバ実行コマンドと、デバイスドライバ上でアクセスがあった場合の文書の処理方法とを記憶するものであってもよい。そのような構成によれば、文書の処理方法を処理情報記憶手段に登録さえすれば、登録内容に従って自動的に文書を処理することができる。
【００２８】
また、機密文書管理装置は、コンピュータにログインしているユーザのユーザ名を取得するユーザ名取得手段と、アクセス監視手段が横取りした読み込みデータに含まれるヘッダを記憶するヘッダ記憶手段と、アクセス監視手段が横取りした書き込みデータに含まれるヘッダに、ユーザ名取得手段が取得したユーザ名を付加するユーザ名付加手段とを備えたものであってもよい。そのような構成によれば、ファイルに、ファイルをコピーしたユーザのリストを痕跡として残すことができる。従って、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【００２９】
また、機密文書管理装置は、暗号化または復号した際に、ユーザ名取得手段が取得したユーザ名を用いてログデータを生成するログデータ生成手段と、ログデータ生成手段が生成したログデータを記憶するログデータ記憶手段とを備えたものであってもよい。そのような構成によれば、ログデータに機密文書の配布履歴の痕跡を残すことができる。従って、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【００３０】
また、ユーザ名付加手段は、デバイスドライバを用いて文書へのアクセスが検出された場合に、アクセスしたユーザのユーザ名をヘッダに付加するものであってもよい。そのような構成によれば、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【００３１】
また、ログデータ記憶手段は、機密文書管理装置と、通信ネットワークを介して接続されるサーバであり、ログデータ生成手段は、生成したログデータを、通信ネットワークを介してログデータ記憶手段に記憶させるものであってもよい。そのような構成によれば、機密文書管理装置の管理者の管理負担を軽減できる。
【００３２】
また、処理判断手段は、アプリケーション実行状態推定手段が推定するアプリケーションソフトウェアの実行状態の推定結果と、処理判断手段が記憶する情報とを、アプリケーションソフトウェアのインスタンスを識別するためのプロセスＩＤを用いて対応付けるものであってもよい。そのような構成によれば、処理判断手段は、アプリケーションソフトウェアの実行状態とプロセスＩＤとにもとづいて、容易に、文書を暗号化すべきか否か、または復号すべきか否かを判断することができる。
【００３３】
本発明による機密文書管理方法は、オペレーティングシステムと、アプリケーションソフトウェアと、デバイスドライバとが搭載されたコンピュータを用いて、機密文書を暗号化することによって保護する機密文書管理方法であって、オペレーティングシステムのメッセージにもとづいてアプリケーションソフトウェアの実行状態を推定するアプリケーション実行状態推定ステップと、デバイスドライバを用いて文書へのアクセスを検出した場合に、実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する処理判断ステップとを含むことを特徴とする。
【００３４】
また、アプリケーション実行状態推定ステップで、アプリケーションソフトウェアで発生するイベントと、イベントの意味とを対応付けて記憶し、オペレーティングシステムとアプリケーションソフトウェアとの間のメッセージを横取りすることによって、アプリケーションソフトウェアで発生したイベントを検出し、検出したイベントの意味を、記憶した情報にもとづいて決定することによって、アプリケーションソフトウェアの実行状態を推定するものであってもよい。そのような構成によれば、アプリケーションソフトウェアごとにイベントの意味が異なる場合であっても、アプリケーションソフトウェアの実行状態を推定することができる。
【００３５】
また、アプリケーション実行状態推定ステップで、機密文書であることを示す属性を文書に付与し、アプリケーションソフトウェアの実行状態に付与した属性を含めて、実行状態を推定するものであってもよい。そのような構成によれば、文書が機密文書であるか否かを示す属性も、アプリケーションソフトウェアの実行状態の１つとして推定することができる。
【００３６】
また、処理判断ステップで、文書へのアクセスに対して、文書を暗号化すべきか否か、または復号すべきか否かの処理方法を記憶し、オペレーティングシステムとデバイスドライバとの間の読み込みデータまたは書き込みデータを横取りすることによって、文書へのアクセスを監視し、アプリケーション実行状態推定ステップで推定したアプリケーションソフトウェアの実行状態の推定結果にもとづいて、横取りしたデータに含まれる文書を、暗号化するか否か、または復号するか否かを判断し、暗号化された文書を復号し、または文書を暗号化するものであってもよい。そのような構成によれば、文書へのアクセスがあった場合に、文書を暗号化べきか否か、または復号すべきか否かを判断して、自動的に文書を暗号化または復号できる。
【００３７】
また、機密文書管理方法は、横取りした読み込みデータに含まれるヘッダを記憶するヘッダ記憶ステップと、コンピュータにログインしているユーザのユーザ名を取得するユーザ名取得ステップと、横取りした書き込みデータに含まれるヘッダに、ユーザ名取得ステップで取得したユーザ名を付加するユーザ名付加ステップとを含むものであってもよい。そのような構成によれば、ファイルに、ファイルをコピーしたユーザのリストを痕跡として残すことができる。従って、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【００３８】
また、機密文書管理方法は、暗号化または復号した際に、ユーザ名取得ステップで取得したユーザ名を用いてログデータを生成するログデータ生成ステップと、ログデータ生成ステップで生成したログデータを記憶するログデータ記憶ステップとを含むものであってもよい。そのような構成によれば、ログデータに機密文書の配布履歴の痕跡を残すことができる。従って、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【００３９】
また、ユーザ名付加ステップで、デバイスドライバを用いて文書へのアクセスが検出された場合に、アクセスしたユーザのユーザ名をヘッダに付加するものであってもよい。そのような構成によれば、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【００４０】
また、ログデータ記憶ステップで、ログデータ生成ステップで生成したログデータを、通信ネットワークを介してサーバに記憶させるものであってもよい。そのような構成によれば、機密文書管理装置の管理者の管理負担を軽減できる。
【００４１】
本発明による機密文書管理プログラムは、機密文書を暗号化することによって保護する機密文書管理プログラムであって、オペレーティングシステムと、アプリケーションソフトウェアと、デバイスドライバとが搭載されたコンピュータに、オペレーティングシステムのメッセージにもとづいてアプリケーションソフトウェアの実行状態を推定するアプリケーション実行状態推定処理と、デバイスドライバを用いて文書へのアクセスを検出した場合に、実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する処理判断処理とを実行させることを特徴とする。
【００４２】
また、アプリケーション実行状態推定処理で、アプリケーションソフトウェアで発生するイベントと、イベントの意味とを対応付けて記憶し、オペレーティングシステムとアプリケーションソフトウェアとの間のメッセージを横取りすることによって、アプリケーションソフトウェアで発生したイベントを検出し、検出したイベントの意味を、記憶した情報にもとづいて決定することによって、アプリケーションソフトウェアの実行状態を推定する処理を実行させるものであってもよい。そのような構成によれば、アプリケーションソフトウェアごとにイベントの意味が異なる場合であっても、アプリケーションソフトウェアの実行状態を推定することができる。
【００４３】
また、アプリケーション実行状態推定処理で、機密文書であることを示す属性を文書に付与し、アプリケーションソフトウェアの実行状態に付与した属性を含めて、実行状態を推定する処理を実行させるものであってもよい。そのような構成によれば、文書が機密文書であるか否かを示す属性も、アプリケーションソフトウェアの実行状態の１つとして推定することができる。
【００４４】
また、処理判断処理で、文書へのアクセスに対して、文書を暗号化すべきか否か、または復号すべきか否かの処理方法を記憶し、オペレーティングシステムとデバイスドライバとの間の読み込みデータまたは書き込みデータを横取りすることによって、文書のアクセスを監視し、アプリケーション実行状態推定ステップで推定したアプリケーションソフトウェアの実行状態の推定結果にもとづいて、横取りしたデータに含まれる文書を、暗号化するか否か、または復号するか否かを判断し、暗号化された文書を復号し、または文書を暗号化する処理を実行させるものであってもよい。そのような構成によれば、文書へのアクセスがあった場合に、文書を暗号化べきか否か、または復号すべきか否かを判断して、自動的に文書を暗号化または復号できる。
【００４５】
また、アプリケーション実行状態管理処理で、アプリケーションソフトウェアの種類を示すアプリケーション名と、イベントの種類を示すイベント名と、イベントのパラメータであるイベントパラメータと、ユーザがアプリケーションソフトウェア上で行いうる操作の意味を示す操作意味とを記憶することによって、アプリケーションソフトウェア上で発生しうるイベントと、イベントの意味とを対応付けて記憶する処理を実行させるものであってもよい。そのような構成によれば、イベントとイベントの意味との対応関係に従って、容易にアプリケーションソフトウェアの実行状態を推定できる。
【００４６】
また、処理判断処理で、アプリケーションソフトウェアの種類を示すアプリケーション名と、文書を公開する範囲を示す機密区分と、ユーザがアプリケーションソフトウェア上で行いうる操作の意味を示す操作意味と、デバイスドライバのコマンドの種類を示すドライバ実行コマンドと、デバイスドライバ上でアクセスがあった場合の文書の処理方法とを記憶することによって、文書へのアクセスに対して、文書を暗号化すべきか否か、または復号すべきか否かの処理方法を記憶する処理を実行させるものであってもよい。そのような構成によれば、文書の処理方法を処理情報記憶手段に登録さえすれば、登録内容に従って自動的に文書を処理することができる。
【００４７】
また、機密文書管理プログラムは、コンピュータに、横取りした読み込みデータに含まれるヘッダを記憶するヘッダ記憶処理と、コンピュータにログインしているユーザのユーザ名を取得するユーザ名取得処理と、横取りした書き込みデータに含まれるヘッダに、ユーザ名取得ステップで取得したユーザ名を付加するユーザ名付加処理と実行させるものであってもよい。そのような構成によれば、ファイルに、ファイルをコピーしたユーザのリストを痕跡として残すことができる。従って、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【００４８】
また、機密文書管理プログラムは、コンピュータに、暗号化または復号した際に、ユーザ名取得処理で取得したユーザ名を用いてログデータを生成するログデータ生成処理と、生成したログデータを記憶するログデータ記憶処理とを実行させるものであってもよい。そのような構成によれば、ログデータに機密文書の配布履歴の痕跡を残すことができる。従って、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【００４９】
また、ユーザ名付加処理で、デバイスドライバを用いて文書へのアクセスが検出された場合に、アクセスしたユーザのユーザ名をヘッダに付加する処理を実行させるものであってもよい。そのような構成によれば、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【００５０】
また、ログデータ記憶処理で、ログデータ生成ステップで生成したログデータを、通信ネットワークを介してサーバに記憶させる処理を実行させるものであってもよい。そのような構成によれば、機密文書管理装置の管理者の管理負担を軽減できる。
【００５１】
また、処理判断処理で、アプリケーション実行状態推定ステップで推定するアプリケーションソフトウェアの実行状態の推定結果と、処理判断ステップで記憶する情報とを、アプリケーションソフトウェアのインスタンスを識別するためのプロセスＩＤを用いて対応付ける処理を実行させるものであってもよい。そのような構成によれば、処理判断手段は、アプリケーションソフトウェアの実行状態とプロセスＩＤとにもとづいて、容易に、文書を暗号化すべきか否か、または復号すべきか否かを判断することができる。
【発明の効果】
【００５２】
本発明によれは、オペレーティングシステムのメッセージにもとづいてアプリケーションソフトウェアの実行状態を推定する。そして、文書へのアクセスを検出した場合に、アプリケーションソフトウェアの実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する。そのため、外部に機密文書を公開するアプリケーション操作をユーザが行った場合には自動的に機密文書が暗号化される。従って、正規ユーザが操作ミスをした場合であっても機密情報の漏洩を防止することができる。
【発明を実施するための最良の形態】
【００５３】
実施の形態１．
以下、本発明の第１の実施の形態を図面を参照して説明する。 図１は、本発明による機密文書管理装置の構成の一例を示すブロック図である。本実施の形態において、機密文書管理装置は、パーソナルコンピュータなど情報処理装置によって実現される。
【００５４】
図１に示すように、機密文書管理装置には、例えば、ユーザが使用するパーソナルコンピュータの基本ソフトウェアであるＯＳ１と、ユーザがＯＳ１上で実行するプログラムであるアプリケーションソフトウェア２と、ＯＳ１からハードディスクなどのハードウェアにアクセスするためのデバイスアクセスソフトウェアであるファイルシステムデバイスドライバ０３とが搭載されている。アプリケーションソフトウェア２として、ワードプロセッサやメーラなどのソフトウェアがある。
【００５５】
また、機密文書管理装置は、アプリケーションコンテキスト管理手段１００およびフィルタドライバ管理手段を含む。アプリケーションコンテキスト管理手段１００は、アプリケーション監視手段４、アプリケーション知識５、文書機密属性設定手段１０およびアプリケーション状態管理手段６を含む。フィルタドライバ管理手段２００は、秘文書ファイルアクセス制御手段７、暗号／復号手段８、機密文書取扱知識１１および暗号／復号判定手段９を含む。
【００５６】
アプリケーション監視手段４は、ソフトウェアによって実現される。アプリケーション監視手段４は、ＯＳ１とアプリケーションソフトウェア２との間のメッセージを横取りすることによって、ユーザのキー操作などアプリケーションソフトウェア２上でのイベントを監視する。
【００５７】
なお、メッセージを横取りするとは、ＯＳ１からアプリケーションソフトウェア２に通知されるべきメッセージを、アプリケーション監視手段４が受け取ることをいう。また、本実施の形態では、「ＯＳ１が実行する」などの表現を用いるが、実際には、機密文書管理装置のＣＰＵがＯＳ１のソフトウェアに従って処理を実行する。このことは、他のソフトウェアやソフトウェアによって実現される手段についても同様である。
【００５８】
アプリケーション知識５は、アプリケーションソフトウェア２で発生するイベントと、イベントの意味との対応関係を記述したテーブルである。アプリケーション知識５は、例えば、機密文書管理装置の記憶装置（図示せず）に記憶される。
【００５９】
文書機密属性設定手段１０は、ソフトウェアによって実現される。文書機密属性設定手段１０は、文書に対して、ユーザの指示入力に従って、機密文書であることを示す属性を付与する。
【００６０】
アプリケーション状態管理手段６は、ソフトウェアによって実現される。アプリケーション状態管理手段６は、アプリケーション監視手段４で監視しているイベントの意味を、アプリケーション知識５を用いて決定することによって、各アプリケーションソフトウェア２の実行状態（コンテキスト）を推定する。また、アプリケーション状態管理手段６は、各アプリケーションソフトウェア２の実行状態の推定結果を記憶する。
【００６１】
秘文書ファイルアクセス制御手段７は、ソフトウェアによって実現される。秘文書ファイルアクセス制御手段７は、ＯＳ１とファイルシステムデバイスドライバ３との間のファイル読み込みデータやファイル書き込みデータを横取りする。また、秘文書ファイルアクセス制御手段７は、必要に応じて、暗号／復号手段８に文書を暗号化または復号させる。そして、秘文書ファイルアクセス制御手段７は、ファイルシステムデバイスドライバ３に、読み込みデータまたは書き込みデータを返す。
【００６２】
なお、ファイル読み込みデータまたは書き込みデータを横取りするとは、ＯＳ１とファイルシステムデバイスドライバ３との間で転送されるべき読み込みデータまたは書き込みデータを、秘文書ファイルアクセス制御手段７がファイルシステムデバイスドライバ３から受け取ることをいう。
【００６３】
暗号／復号手段８は、ソフトウェアによって実現される。暗号／復号手段８は、秘文書ファイルアクセス制御手段７からの要求に従って、暗号化されている文書を復号したり、暗号化されていない状態の文書を暗号化する。
【００６４】
機密文書取扱知識１１は、文書への入出力（アクセス）と、文書への入出力があった場合の処理内容との対応関係を記述したテーブルである。機密文書取扱知識１１は、文書への入出力があった場合に、機密情報を的確に守るため、文書を暗号化または復号すべきであるか否かを判定する際に用られる。機密文書取扱知識１１は、例えば、機密文書管理装置の記憶装置に記憶される。
【００６５】
暗号／復号判定手段９は、ソフトウェアによって実現される。暗号／復号判定手段９は、アプリケーション状態管理手段６が記憶する各アプリケーションソフトウェア２の実行状態の推定結果にもとづいて、秘文書ファイルアクセス制御手段７がファイルシステムデバイスドライバ３から横取りしたファイルアクセスデータ（読み込みデータまたは書き込みデータ）の文書を、暗号化または復号すべきかを判定する。
【００６６】
図１に示す構成によって、機密文書管理装置は、ユーザがコンピュータから外部に機密文書を公開する場合には、機密文書を自動的に暗号化する。また、機密文書管理装置は、ユーザが機密文書をコンピュータ上のアプリケーションで利用する場合には、暗号化された機密文書を自動的に復号する。
【００６７】
本実施の形態において、アプリケーション実行状態推定手段は、アプリケーションコンテキスト管理手段１００によって実現される。処理判断手段は、フィルタドライバ管理手段２００によって実現される。イベント検出手段は、アプリケーション監視手段４によって実現される。アプリケーション情報記憶手段は、アプリケーション知識５を記憶する記憶装置によって実現される。文書機密属性付与手段は、文書機密属性設定手段１０によって実現される。実行状態推定手段は、アプリケーション状態管理手段６によって実現される。
【００６８】
また、アクセス監視手段は、秘文書ファイルアクセス制御手段７によって実現される。暗号復号手段は、暗号／復号手段８によって実現される。処理情報記憶手段は、機密文書取扱知識１１を記憶する記憶装置によって実現される。暗号復号判断手段は、暗号／復号判定手段９によって実現される。
【００６９】
また、本実施の形態において、機密文書管理装置の記憶装置は、機密情報の管理の処理を実行するための各種プログラムを記憶する。例えば、機密文書管理装置の記憶装置は、コンピュータに、オペレーティングシステムのメッセージにもとづいてアプリケーションソフトウェアの実行状態を推定するアプリケーション実行状態推定処理と、デバイスドライバを用いて文書へのアクセスを検出した場合に、実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する処理判断処理とを実行させる機密文書管理プログラムを記憶している。
【００７０】
次に、図１に示す各構成要素の機能および動作を説明する。ＯＳ１は、例えば、ＷｉｎｄｏｗｓやＵＮＩＸなどの基本ソフトウェアである。本実施の形態では、ＯＳ１がＷｉｎｄｏｗｓである場合を例に説明する。なお、ＯＳ１は他の基本ソフトウェアでもよい。
【００７１】
本実施の形態では、ＯＳ１は、少なくとも以下の４つの機能を含む。ＯＳ１は、１つ目の機能として、アプリケーションソフトウェア２に、ウインドウシステム、ファイルシステムおよびプロセス管理などの基本機能を提供する。以下、ＯＳ１の１つ目の機能を単にＯＳ機能１という。
【００７２】
また、ＯＳ１は、２つ目の機能として、アプリケーションソフトウェア２からファイルシステムへのジョブの依頼があった場合には、ファイルシステムデバイスドライバ３に仕事を依頼し、結果をアプリケーションソフトウェア２に返す機能を備える。以下、ＯＳ１の２つ目の機能を単にＯＳ機能２という。
【００７３】
また、ＯＳ１は、３つ目の機能として、アプリケーションソフトウェア２のインスタンスを識別するためのプロセスＩＤと、各ウインドウを識別するために割り当てられた識別子であるウインドウハンドルとの対応関係を提供する機能を備える。以下、ＯＳ１の３つ目の機能を単にＯＳ機能３という。例えば、ウインドウハンドルをパラメータとして、ウインドウを作成したプロセスのプロセスＩＤを特定することができる。
【００７４】
さらに、ＯＳ１は、４つ目の機能として、ウインドウハンドルにもとづいて、そのウインドウを開いているアプリケーションの種類を特定する機能を備える。以下、ＯＳ１の４つ目の機能を単にＯＳ機能４という。例えば、Ｗｉｎｄｏｗｓの場合、アプリケーションごとにウインドウクラスと呼ばれるユニークな名前がある。この場合、ＯＳ１は、ウインドウクラスを利用してアプリケーションの種類を特定する。なお、アプリケーションの種類を特定する方法は、ウィンドウクラスを利用するものに限られない。例えば、ＵＮＩＸの場合、アプリケーションの実行ファイルのパスなどを利用してもよい。
【００７５】
アプリケーションソフトウェア２は、ワードプロセッサ、メーラなどＯＳ１上で実行されるプログラムである。ユーザは、このアプリケーションソフトウェア２を用いて、機密文書を作成したり機密文書を他者に公開する。例えば、ユーザは、アプリケーションソフトウェア２として、マイクロソフト株式会社のＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄなどを用いる。
【００７６】
本実施の形態では、説明を簡単にするために、各アプリケーションソフトウェア２のインスタンスを識別するＩＤとして、アプリケーションソフトウェア２のプロセスＩＤを用いる。ただし、ウインドウシステムではウインドウ単位に処理を行うので、ウインドウのＩＤであるウインドウハンドルを用いた方が管理しやすい場合がある。そのため、ウインドウ単位に処理を行う場合には、ウインドウハンドルを、アプリケーションのインスタンスを識別するために用いる。ＯＳ機能３を用いれば、ウインドウハンドルを対応するプロセスＩＤに変換できるので、プロセスＩＤおよびウインドハンドルのどちらを用いて管理しても本質的に変わらない。
【００７７】
ファイルシステムドライバ３は、ＯＳ１が外部記憶装置などのハードウェアにアクセスするためのソフトウェアである。また、ファイルシステムデバイスドライバ３は、データを仮想的にディレクトリとファイルとのツリー構造で管理するファイルシステムを実現するソフトウェアである。ファイルシステムデバイスドライバ３は、一般にデバイスドライバと呼ばれ広く知られている。
【００７８】
なお、ファイルシステムデバイスドライバ３は一般にＯＳ１の機能の一部であるが、本実施の形態では、説明を分かりやすくするために、ファイルシステムデバイスドライバ３がＯＳ１とは別の構成要素であるとして説明する。
【００７９】
アプリケーション監視手段４は、ＯＳ１とアプリケーションソフトウェア２との間のやりとりを監視する。まず、ＯＳ１とアプリケーションソフトウェア２との間で通常行われるやりとりを説明する。
【００８０】
ＯＳ１は、ＯＳ１内部の状態をアプリケーションソフトウェア２に伝えるために、イベントの発生を示すメッセージ（以下、イベントメッセージという）をアプリケーションソフトウェア２に発行する。例えば、ユーザがメニューからある項目を選択すると、ＯＳ１は、メニューから項目が選択された旨のイベントメッセージを、アプリケーションソフトウェア２に発行する。
【００８１】
図２は、イベントメッセージのフォーマットの例を示す説明図である。図２に示すように、イベントメッセージは、イベント名４１０１、ウインドウハンドル４１０２およびパラメータ４１０３を含む。イベント名４１０１は、イベントの種類を区別するための名前である。イベントは、キーボードの入力、マウスの移動、メニューの選択、ウインドウ操作など様々な種類がある。これらのイベントの種類は、ＯＳ１で定義されている。
【００８２】
ウインドウハンドル４１０２は、イベントが発生したウインドウのウインドウハンドルである。パラメータ４１０１は、イベントの各種パラメータを、「属性＝値」の形式で属性と値とのペアの集合で表現したものである。
【００８３】
なお、図２に示すフォーマットは一例であり、イベントメッセージは他のフォーマット形式であってもよい。また、図２に示すフォーマット例では、説明を簡単にするためにデータが日本語表記であるものとして説明するが、実際には、イベントメッセージに含まれるデータは、ＯＳ１によってコード化されている。
【００８４】
図２に示す例では、イベントについて、「メニューを選択」というイベントがウインドウハンドル「１２３４」のウインドウで発生していることを意味している。また、選択されたメニューのラベルには「開く」と記述されていることを意味している。また、「マウス」を用いてメニューが選択されたことを意味している。
【００８５】
また、アプリケーションソフトウェア２は、ＯＳ１からのイベントメッセージに対して、どのような処理をすればよいかプログラミングされている。なお、イベントメッセージに対する処理のプログラミングは、イベントドリブンプログラミングと呼ばれている。
【００８６】
アプリケーション監視手段４は、ＯＳ１からアプリケーションソフトウェア２に通知されるべきイベントメッセージを横取りする。イベントメッセージのルートを変更する機能は「イベントフック」と呼ばれる。アプリケーション監視手段４は、例えば、ＯＳ１が標準に備えるイベントフックインタフェースの機能を利用して、イベントメッセージを受け取る。
【００８７】
アプリケーション監視手段４は、横取りしたイベントメッセージについて、以下の２つの処理を行う。１つ目の処理として、アプリケーション監視手段４は、アプリケーションソフトウェア２にイベントメッセージを転送する（処理１）。処理１が実行されることによって、アプリケーションソフトウェア２は、ＯＳ１からイベントメッセージを直接受け取れなくても処理を継続できる。
【００８８】
また、２つ目の処理として、アプリケーション監視手段４は、アプリケーション状態管理手段６にイベントメッセージを転送する（処理２）。処理２が実行されることによって、アプリケーション状態管理手段６は、イベントメッセージにもとづいて各アプリケーションソフトウェア２の実行状態を推定し、実行状態の推定結果を記憶する。
【００８９】
文書機密属性設定手段１０は、各アプリケーションソフトウェア２で開いている文書に対して、ユーザの指示入力に応じて機密文書であることを示す属性を付与する。本実施の形態では、文書の属性として、「機密」と「通常」との２種類が用いられる。ここで、「機密」は、機密文書であることを示す属性である。また、「通常」は、機密文書でないことを示す属性である。なお、文書の属性として、更に細分化した機密区分を用いてもよい。
【００９０】
本実施の形態では、新規に文書作成される場合、機密文書管理装置は、属性を「通常」として文書を作成する。機密文書として扱いたい場合には、文書機密属性設定手段１０を用いて、機密文書である旨をユーザが入力する。なお、機密文書から通常文書に容易に戻すことができると、故意に機密文書を通常の文書に戻して情報を漏洩される恐れがあるので、一度機密文書の属性が付与されると通常の文書に戻せないようにする。なお、運用上、厳しい承認チェックなどを行うことによって、機密文書を通常の文書に戻せるようにしてもよい。
【００９１】
図３は、ユーザが文書機密属性設定手段１０を利用する場合の利用方法の例を示す説明図である。例えば、図３に示すように、機密文書管理装置は、アプリケーションソフトウェアが開いているウインドウであるアプリケーションウインドウ１０１０１と、文書機密属性設定手段１０のユーザインタフェースである秘文書アイコン１０１０２とを表示部に表示させる。図３に示すように、文書機密属性設定手段１０は、ユーザインタフェースとして、画面上にアイコンだけを表示している。ユーザは、秘文書アイコン１０１０２をマウスを用いてドラッグアンドドロップすることによって、機密文書であることを示す属性付与を指示入力できる。
【００９２】
秘文書アイコン１０１０２は、ＯＳ１によってＩＤが割り当てられている。文書機密属性設定手段１０は、機密文書管理装置の各手段からアクセスできるように、グローバル変数として、秘文書アイコン１０１０２のアイコンＩＤを記憶する。以下、秘文書アイコン１０１０２のＩＤを秘文書アイコンＩＤという。
【００９３】
図３に示す例では、ユーザが秘文書アイコン１０１０２をウインドウ１０１０１にドロップすると、ドロップされたウインドウ１０１０１の文書に機密文書の属性が付与される。秘文書アイコン１０１０２がドロップされると、機密文書管理装置は、以下の内部動作を行う。
【００９４】
ＷｉｎｄｏｗｓなどのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を用いる場合、アイコンをドロップすると、ドロップされたウインドウにイベントが発生する。すなわち、ドロップしたアイコンのＩＤとドロップ先のウインドウハンドルとをパラメータとして、アイコンをドロップしたことを意味するイベントが発生する。以下、ドロップ時に発生するイベントをドロップイベントという。
【００９５】
ドロップイベントのイベントメッセージは、他のイベントメッセージと同様に、アプリケーション監視手段０４によって横取りされて、アプリケーション状態管理手段６に転送される。アプリケーション状態管理手段６は、各文書の機密区分も管理項目の１つとして管理している。ドロップイベントのイベントメッセージが転送されると、アプリケーション状態管理手段６は、文書の機密区分を更新する。
【００９６】
アプリケーション知識５は、アプリケーションソフトウェア２で発生しうるイベントと、イベントの意味との対応関係を示したテーブルである。例えば、「Ｃｔｒｌ」キーを押しながら「Ｓ」キーを押すというイベントは、あるアプリケーションソフトウェア２では上書き保存を意味するが、別のアプリケーションソフトウェア２ではメール送信を意味する場合がある。すなわち、イベントの意味は、アプリケーションソフトウェア２を作成したプログラマの設計に依存する。イベントの意味がアプリケーションごとに異なるので、アプリケーションごとに知識を用意する必要がある。従って、アプリケーション状態管理手段６がアプリケーション知識５を用いてイベントの意味を決定することは、アプリケーションソフトウェア２の実行状態を推定することに相当する。また、アプリケーション知識５を用いてアプリケーション状態管理手段６が決定したものが、アプリケーションソフトウェア２の実行状態の推定結果に相当する。
【００９７】
図４は、アプリケーション知識５の例を示す説明図である。図４に示すように、アプリケーション知識５は、アプリケーション名５１０１と、イベント名５１０２と、パラメータ（イベントパラメータ）５０１３と、操作意味５１０４とを対応付けて含む。アプリケーション名５１０１は、アプリケーションの種類を特定する名前である。例えば、アプリケーション知識５は、アプリケーション名５１０１としてウインドウクラスを含む。
【００９８】
イベント名５１０２は、イベントの種類を区別するための名前であり、図２に示すイベント名４１０１と同じものである。パラメータ５１０３は、イベントの各種パラメータであり、図２に示すパラメータ４１０１と同じものである。操作意味５１０４は、アプリケーションの機能を記述したものである。操作意味５１０４として、通常メニュー項目が機能名である一覧メニューの各項目を用いればよい。
【００９９】
なお、図４に示すフォーマットは一例であり、イベントメッセージのフォーマットとの整合性があれば、アプリケーション知識５のフォーマットとして他の形式のものを用いてもよい。
【０１００】
図４に示す例では、例えば、アプリケーション知識５の第１レコードは、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ上でラベルが「保存」であるメニューを選択するイベントの場合、そのイベントの意味が「文書を保存する」であることを示す。
【０１０１】
アプリケーション状態管理手段６は、アプリケーションソフトウェア２の実行状態を推定するとともに、アプリケーションソフトウェア２ごとの実行状態を含むテーブルを記憶する。以下、アプリケーション状態管理手段６が記憶するテーブルを、アプリケーション状態テーブルという。図５は、アプリケーション状態テーブルの例を示す説明図である。図５に示すように、アプリケーション状態テーブルは、ウインドウハンドル６１０１、機密区分６１０２および操作意味６１０３のフィールドを含むテーブルである。
【０１０２】
ウインドウハンドル６１０１は、アプリケーション監視手段４から転送されたイベントメッセージのイベントが発生したウインドウのウインドウハンドルである。機密区分６１０２は、文書を公開する範囲を示す情報である。本実施の形態では、機密区分６１は、アプリケーションソフトウェア２上で扱っている文書が機密情報を含んでいるか否かを示す属性である。本実施の形態では、文書機密属性設定手段１０において「秘密」および「通常」の２種類の属性を用いるので、機密区分６１０２は、「秘密」または「通常」のいずれかである。操作意味６１０３は、アプリケーションソフトウェア２上で最近実行されたアプリケーション機能の機能名である。なお、アプリケーション状態テーブルが含む操作意味６１０３は、アプリケーション知識０５の操作意味５１０４と同じものである。
【０１０３】
アプリケーション状態管理手段６は、アプリケーション監視手段４からイベントメッセージが転送されると、アプリケーション状態テーブルを更新する。図６は、アプリケーション状態管理手段６がアプリケーション状態テーブルを更新する処理経過の一例を示す流れ図である。
【０１０４】
アプリケーション監視手段４からイベントメッセージが転送されると、アプリケーション状態管理手段６は、転送されたイベントメッセージに対応するイベントがドロップイベントであるか否かを判断する（ステップＳ６１）。ドロップイベントであると判断した場合には、アプリケーション状態管理手段６は、ステップＳ６２を実行する。ドロップイベントでないと判断した場合には、アプリケーション状態管理手段６は、ステップＳ６４を実行する。
【０１０５】
ドロップイベントであると判断した場合には、アプリケーション状態管理手段６は、イベントメッセージのパラメータに含まれるアイコンＩＤが秘文書アイコンＩＤであるか否かを判断する（ステップＳ６２）。秘文書アイコンＩＤであると判断した場合には、アプリケーション状態管理手段６は、ステップＳ６３を実行する。秘文書アイコンＩＤでないと判断した場合には、アプリケーション状態管理手段６は、ステップＳ６４を実行する。
【０１０６】
アイコンＩＤが秘文書アイコンＩＤであると判断した場合には、アプリケーション状態管理手段６は、アプリケーション状態テーブルの機密区分を「秘密」にする（ステップＳ６３）。すなわち、ステップＳ６３に制御が移行した場合には、機密区分を「秘密」に変更するための操作を、ユーザが文書機密属性設定手段１０を用いて行ったことを意味している。この場合、ステップＳ６３において、アプリケーション状態管理手段６は、転送されたイベントメッセージに含まれるウインドウハンドルにもとづいて、アプリケーション状態テーブルのレコードのうち、転送されたイベントメッセージに対応するレコードの機密区分を「秘密」に変更する。
【０１０７】
ステップＳ６３において、転送されたイベントメッセージに対応するレコードがアプリケーション状態テーブルにない場合には、アプリケーション状態管理手段６は、新規にレコードを作成し、ウインドウハンドルおよび機密区分を更新する。また、ステップＳ６３において、アプリケーション状態管理手段６は、操作意味を「機密区分の変更」としてアプリケーション状態テーブルを更新する。ステップＳ６３を実行すると、アプリケーション状態管理手段６は、処理を終了する。
【０１０８】
転送されたイベントメッセージがドロップイベントのものでないと判断した場合、またはドロップイベントのものであるが転送されたイベントメッセージに含まれるパラメータのアイコンＩＤが秘文書アイコンＩＤでないと判断した場合には、アプリケーション状態管理手段６は、転送されたイベントメッセージに対応するイベントのアプリケーション名を特定する（ステップＳ６４）。ステップＳ６４において、アプリケーション状態管理手段６は、転送されたイベントメッセージに含まれるウインドウハンドルにもとづいて、ＯＳ機能４を用いて、ウインドウを開けているアプリケーションソフトウェア２のアプリケーション名を特定する。
【０１０９】
アプリケーション状態管理手段６は、特定したアプリケーション名と、転送されたイベントメッセージに含まれるイベント名とをキーとして、アプリケーション知識５を検索する（ステップＳ６５）。アプリケーション状態管理手段６は、アプリケーション名およびイベント名の条件に合致するレコードがアプリケーション知識５に含まれるか否かを判断する（ステップＳ６６）。合致するレコードが含まれないと判断した場合には、アプリケーション状態管理手段６は、処理を終了する。
【０１１０】
合致するレコードが含まれると判断した場合には、アプリケーション状態管理手段６は、検索されたレコードに含まれる操作意味（最終実行コマンド）を一時的に記憶する。なお、イベント名とパラメータとが同じであれば操作意味が１つに決まるので、アプリケーション知識が矛盾無く記述されていれば、検索結果が複数のレコードを含むことはない。
【０１１１】
最終実行コマンドを記憶すると、アプリケーション状態管理手段６は、アプリケーション状態テーブルを更新する（ステップＳ６７）。アプリケーション状態管理手段６は、アプリケーション状態テーブルのレコードのうち、転送されたイベントメッセージに含まれるウインドウハンドルに対応するレコードを特定する。そして、アプリケーション状態管理手段６は、特定したレコードの操作意味を更新する。ウインドウハンドルに対応するレコードが含まれなかった場合には、アプリケーション状態管理手段６は、新たにレコードを追加する。そして、アプリケーション状態管理手段６は、追加したレコードのウインドウハンドル、秘密区分および操作意味を設定し処理を終了する。
【０１１２】
秘文書ファイルアクセス制御手段７は、２つの機能を備える。秘文書ファイルアクセス制御手段７は、ファイルシステムデバイスドライバ３のファイル読み込みデータまたはファイル書き込みデータを横取りする機能を備える。以下、横取りしたファイル読み込みデータまたはファイル書き込みデータを横取りデータという。また、秘文書ファイルアクセス制御手段７は、横取りデータの処理のメイン制御を行う。
【０１１３】
データを横取りする機能は、ＯＳが標準で備えるフィルタドライバと呼ばれる機能を用いて実装できる。フィルタドライバとは、デバイスドライバを介してハードウェアからＯＳに流れるデータを、外部のプログラムから横取りして加工し、加工後のデータをＯＳに返す機能である。
【０１１４】
本実施の形態では、秘文書ファイルアクセス制御手段７は、ファイルシステムデバイスドライバ３がハードウェアから読み出した読み出しデータを横取りして文書を加工し、加工後のデータをＯＳに返す。また、秘文書ファイルアクセス制御手段７は、ファイルシステムデバイスドライバ３に転送されるべき書き込みデータを横取りして文書を加工する。そして、加工後の文書をファイルシステムデバイスドライバ３に返す。
【０１１５】
なお、前述したように、本実施の形態では、説明を分かりやすくするために、ファイルシステムデバイスドライバ３がＯＳ１とは別の構成要素であるとして説明するので、秘文書ファイルアクセス制御手段７は、ファイルシステムデバイスドライバ３からデータを横取りし、ファイルシステムデバイスドライバ３に加工後のデータを返すと表現して以下説明を行う。
【０１１６】
秘文書ファイルアクセス制御手段７は、フィルタドライバを利用して、横取りデータの一部として、プロセスＩＤおよび処理の種類の情報も得る。プロセスＩＤとは、ファイルシステムへの処理を要求したアプリケーションソフトウェア２のプロセスのＩＤである。処理の種類とは、ハードディスクからデータを読み込む処理（ＲＥＡＤ処理）であるか、またはハードディスクにデータを書き込む処理（ＷＲＩＴＥ処理）であるかの別である。
【０１１７】
次に、秘文書ファイルアクセス制御手段７が横取りデータの処理のメイン制御を行う機能について説明する。秘文書ファイルアクセス制御手段７は、まず横取りデータを解析する。データ解析は、横取りデータに含まれる文書が暗号化されていない文書であるか、または暗号化されている文書であるかを判定し、暗号化されている場合には横取りデータから暗号キーの情報と本文データとを抽出するものである。なお、秘文書ファイルアクセス制御手段７は、後述するように、横取りデータに含まれる文書が暗号化されているか否かの判断を、暗号／復号判定手段９に実行させる。
【０１１８】
図７は、横取りデータに含まれる本文データのフォーマットの例を示す説明図である。図７に示すように、本文データは、マジックナンバ７１０１、暗号キー７１０２および本文７１０３のフィールドを含む。マジックナンバ７１０１は、暗号化されていることを示す記号である。例えば、本文データは、マジックナンバ７１０１として、システム名などの固有名称を含む。暗号キー７１０２は、暗号化した際の暗号キーの情報である。本文７１０３は、暗号化された文書本文である。
【０１１９】
なお、図７に示す例では、本文データが暗号化された文書本文を含む場合について説明したが、文書が暗号化されていない場合には、本文データは、暗号化されていない文書本文のみを含む。
【０１２０】
秘文書ファイルアクセス制御手段７は、暗号／復号判定手段９に、文書を暗号化または復号する必要があるか否かを判断させる。暗号化または復号する必要があると判断された場合には、秘文書ファイルアクセス制御手段７は、暗号／復号手段８に、文書を暗号化または復号させる。そして、秘文書ファイルアクセス制御手段７は、ファイルシステムデバイスドライバ３に、加工後の横取りデータを返す一連の処理を制御する。
【０１２１】
暗号／復号手段８は、例えば、ＤＥＳ（Data Encryption Standard）などを用いたライブラリを利用して、文書を暗号化または復号する。暗号／復号手段８は、暗号化されていない文書を入力すると、暗号キーを生成して文書本文を暗号化する。そして、暗号／復号手段８は、生成した暗号文および暗号キーの情報を秘文書ファイルアクセス制御手段７に返す。また、暗号／復号手段８は、暗号文および暗号キーの情報を入力すると、暗号文を復号して得られた文書本文を秘文書ファイルアクセス制御手段７に返す。
【０１２２】
図８は、機密文書取扱知識１１の例を示す説明図である。図８に示すように、機密文書取扱知識１１は、アプリケーション名１１１０１と、機密区分１１１０２と、操作意味１１１０３と、ドライバ実行コマンド１１１０４と、処理方法１１１０５とを対応付けて含む。機密文書取扱知識１１は、ユーザによって予め登録される。
【０１２３】
アプリケーション名１１１０１は、アプリケーション知識５に含まれるアプリケーション名５１０１と同様に、アプリケーションの種類を特定する名前である。例えば、機密文書取扱知識１１は、アプリケーション名１１１０１としてウインドウクラスを含む。機密区分１１１０２は、アプリケーション状態テーブルに含まれる機密区分６１０２と同様に、文書を公開する範囲を示す情報である。また、本実施の形態では、機密区分１１１０２は、「秘密」または「通常」のいずれかである。操作意味１１１０３は、アプリケーション知識５に含まれる操作意味５１０４と同様に、アプリケーションの機能を記述したものである。
【０１２４】
ドライバ実行コマンド１１１０４は、ファイルシステムデバイスドライバ３の処理の種類である。本実施の形態では、ハードディスクからの文書の読み出しを意味する「ＲＥＡＤ」と、ハードディスクへの文書の書き込みを意味する「ＷＲＩＴＥ」との２種類がある。
【０１２５】
処理方法１１１０５は、ファイルシステムデバイスドライバ３からの横取りデータに含まれる文書を、どのように処理するかの処理方法を示す情報である。機密文書取扱知識１１は、処理方法１１１０５として、文書を暗号化すべきであるか、復号すべきであるか、または何も加工する必要がないかを示す情報を含む。本実施の形態では、機密文書取扱知識１１は、文書を暗号化すべきである場合には処理方法１１１０５「暗号化」を含み、復号すべきである場合には処理方法１１１０５「復号」を含み、何も加工する必要がない場合には処理方法１１１０５「処理不要」を含む。
【０１２６】
なお、機密文書取扱知識１１は、機密区分１１１０２として、必ず「秘密」または「通常」のいずれかを含む必要はない。図８において、機密区分１１１０２が「＊」であるレコードは、機密区分が設定されていないことを示す。機密区分１１１０２「＊」であるレコードでは、機密区分が「秘密」である文書に対しても「通常」である文書に対しても、処理方法１１１０５の処理が実行されるべきことを意味している。
【０１２７】
図８に示す例では、例えば、機密文書取扱知識１１の第１レコードは、アプリケーション「Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ」上で「秘密」の文書を保存するという操作がユーザによって行われたことにより、「ＷＲＩＴＥ」の要求がされた場合には、暗号化を行うべきことを意味している。また、機密文書取扱知識１１の第２レコードは、アプリケーション「Ｏｕｔｌｏｏｋ（登録商標）」上で文書を添付するという操作がユーザによって行われたことにより、「ＲＥＡＤ」の要求がされた場合には、機密区分が「秘密」であるか「通常」であるかにかかわらず、何も処理をせずにファイルシステムデバイスドライバ３に横取りデータを返すべきことを意味している。
【０１２８】
暗号／復号判定手段９は、アプリケーション状態テーブルの更新部分と、機密文書取扱知識１１とにもとづいて、プロセスＩＤとドライバ実行コマンドとの組ごとに、ファイルシステムデバイスドライバ３からの横取りデータに含まれうる文書の処理方法を特定する。そして、暗号／復号判定手段９は、特定した処理方法を含む暗号復号判定テーブルを生成し記憶する。
【０１２９】
図９は、暗号復号判定テーブルの例を示す説明図である。図９に示すように、暗号復号判定テーブルは、プロセスＩＤ９１０１とドライバ実行コマンド９１０２との組ごとに、データの処理方法を含む。ドライバ実行コマンド９１０２は、「ＲＥＡＤ」または「ＷＲＩＴＥ」のいずれかである。本実施の形態では、プロセスＩＤ９１０２とドライバ実行コマンド９１０２との組によって定まる暗号復号判定テーブルの各セルには、ファイルシステムデバイスドライバ３からの横取りデータに含まれる文書の処理方法として、「暗号化」、「復号」または「処理不要」のいずれかが設定される。図９では、例えば、プロセスＩＤ「１２３４」のプロセスの「ＲＥＡＤ」要求である場合には、文書を復号すべきことを意味している。
【０１３０】
暗号／復号判定手段９は、アプリケーション状態管理手段６の実行状態に変化があったことをトリガとして、暗号復号判定テーブルを更新する。すなわち、アプリケーション状態テーブルが更新されると、暗号／復号判定手段９は、暗号復号判定テーブルを更新する。
【０１３１】
図１０は、暗号／復号判定手段９が暗号復号判定テーブルを更新する処理経過の一例を示す流れ図である。アプリケーション状態管理手段６は、アプリケーション状態テーブルを更新すると、更新した箇所のウインドウハンドル、秘密区分および操作意味を暗号／復号判定手段９に転送する。暗号／復号判定手段９は、転送されたウインドウハンドルにもとづいて、ＯＳ機能４を用いてアプリケーション名を特定する（ステップＳ９１）。暗号／復号判定手段９は、アプリケーション名、秘密区分および操作意味をキーとして、機密文書取扱知識１１を検索する（ステップＳ９２）。
【０１３２】
暗号／復号判定手段９は、機密文書取扱知識１１のレコードのうち、アプリケーション名、秘密区分および操作意味の条件に合致するレコードがあるか否かを判断する（ステップＳ９３）。この場合、ドライバ実行コマンドが「ＲＥＡＤ」および「ＷＲＩＴＥ」の２つのレコードが検索される。条件に合致するレコードがあると判断した場合には、暗号／復号判定手段９は、ステップＳ９４を実行する。条件に合致するレコードがないと判断した場合には、暗号復号判定テーブルを更新する必要がないことを意味するので、暗号／復号判定手段９は、処理を終了する。
【０１３３】
合致するレコードがあると判断した場合には、暗号／復号判定手段９は、ウインドウハンドルにもとづいて、ＯＳ機能３を用いてプロセスＩＤを特定する（ステップＳ９４）。そして、暗号／復号判定手段９は、検索されたレコードに含まれるドライバ実行コマンドと特定されたプロセスＩＤとの組のセルの内容を、検索されたレコードに含まれる処理方法１１１０５の内容に更新する（ステップＳ９５）。
【０１３４】
次に、機密文書管理装置が行う機密文書管理の全体の動作を図面を参照して説明する。図１１は、機密文書管理装置が行う機密文書管理の全体処理の処理経過の一例を示す流れ図である。図１１に示すように、本実施の形態では、アプリケーションユーザ操作ステップ（ステップＳ１０１）、ＯＳイベント発生ステップ（ステップＳ１０２）、イベントフックステップ（ステップＳ１０３）、アプリケーション状態テーブル更新ステップ（ステップＳ１０４）、暗号復号判定テーブル更新ステップ（ステップＳ１０５）、ファイルシステムアクセス判定ステップ（ステップＳ１０６）、ファイルシステムデバイスドライバコマンド要求ステップ（ステップＳ１０７）、デバイスコマンドフックステップ（ステップＳ１０８）、暗号復号判定テーブルマッチングステップ（ステップＳ１０９）、暗号復号判定ステップ（ステップＳ１１０）、暗号復号処理ステップ（ステップＳ１１１）およびファイルシステムデバイスドライバコマンド実行ステップ（ステップＳ１１２）を含む。
【０１３５】
アプリケーションユーザ操作ステップでは、ユーザは、アプリケーションが提供している機能を実行する。ＯＳイベント発生ステップでは、アプリケーションユーザ操作ステップを受けて、ＯＳ１の機能を用いてアプリケーションソフトウェア２に対してイベントメッセージを発生させる。イベントフックステップでは、ＯＳイベント発生ステップで発生させたイベントメッセージをアプリケーション監視手段０４が横取りする。アプリケーション状態テーブル更新ステップでは、イベントフックステップで横取りしたイベントメッセージを解析し、アプリケーションソフトウェア２の実行状態を推定し記憶する。暗号復号判定テーブル更新ステップでは、アプリケーション状態テーブルステップを受けて、アプリケーションソフトウェアからファイルシステムへのアクセスがあった場合に、文書の暗号または復号処理を実行すべきか否かを判定する。
【０１３６】
ファイルシステムアクセス判定ステップでは、アプリケーションユーザ操作ステップでのユーザ操作がファイルシステムへのアクセスであるか否かを判定する。ファイルシステムデバイスドライバコマンド要求ステップでは、ファイルシステムアクセス判定ステップの結果、ファイルシステムへのアクセスである場合に、ＯＳからファイルシステムへのコマンドを発行する。デバイスコマンドフックステップでは、ファイルシステムデバイスドライバコマンド要求ステップでのコマンドを、ファイルシステムデバイスドライバ３から横取りする。
【０１３７】
暗号復号判定テーブルマッチングステップでは、デバイスコマンドフックステップで横取りしたコマンドを、暗号復号判定テーブル更新ステップで更新した暗号復号判定テーブルと照合する。暗号・復号判定ステップでは、暗号復号判定テーブルマッチングステップの照合結果にもとづいて、そのコマンドで扱っている文書を暗号化または復号すべきであるか否かを判定する。暗号復号処理ステップでは、暗号復号判定ステップの結果、暗号する必要があると判断した場合に、文書を暗号化または復号する。ファイルシステムデバイスドライバコマンド実行ステップでは、暗号化または復号した文書を含むデータ、若しくは何も処理されなかったデータを用いてファイルシステムへのアクセス結果をアプリケーションソフトウェア２に返す。
【０１３８】
本実施の形態では、以下の各利用シーンに場合を分けて、それぞれ機密文書管理の全体の動作を説明する。利用シーン１として、ユーザが新規に文書を作成して保存するまでのシーンついて説明する。また、利用シーン２として、利用シーン１で保存した文書をワードプロセッサ「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」で開くシーンについて説明する。また、利用シーン３として、利用シーン１で保存した文書をメーラ「Ｏｕｔｌｏｏｋ」で添付メールとして読み込むシーンについて説明する。
【０１３９】
さらに、利用シーン１については、各ユーザ操作ごとに場合を分けて説明する。１つ目のユーザ操作として、ワードプロセッサ「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」で新規に文書を作成する操作（以下、ユーザ操作１−１という）について説明する。また、２つ目のユーザ操作として、作成した文書の機密区分を「秘密」にする操作（以下、ユーザ操作１−２という）について説明する。また、３つ目のユーザ操作として、作成した文書を保存してアプリケーションを終了する操作（以下、ユーザ操作１−３という）について説明する。
【０１４０】
まず、利用シーン１のユーザ操作１−１を行う場合の全体動作を、図１１を用いて説明する。ユーザは、機密文書管理装置を操作して、アプリケーションソフトウェア２を用いて、「新規作成」メニューを選択する（ステップＳ１０１）。なお、本例では、ワードプロセッサのアプリケーションソフトウェア２のウインドウハンドルが「９９９９」であるとする。
【０１４１】
ＯＳ１は、イベントメッセージを発生させる（ステップＳ１０２）。本例では、ＯＳ１は、新規作成メニュー操作イベントのイベントメッセージを発生させる。図１２は、新規作成メニュー操作イベントのイベントメッセージの例を示す説明図である。図１２に示すように、イベントメッセージは、イベント名「メニューを選択」、ウインドウハンドル「９９９９」およびパラメータ「ラベル＝新規作成」を含む。図１２に示す例では、イベントについて、メニュー操作がウインドウハンドル「９９９９」のウインドウで発生し、メニューのラベルが「新規作成」であることを意味している。
【０１４２】
アプリケーション監視手段４は、イベントメッセージを横取りする（ステップＳ１０３）。すなわち、図１２に示すイベントメッセージがアプリケーション監視手段４に転送される。そして、アプリケーション監視手段４は、イベントメッセージをアプリケーション状態管理手段６に転送する。
【０１４３】
アプリケーション状態管理手段６は、図６に示す手順に従って、アプリケーション状態テーブルを更新する（ステップＳ１０４）。図６に示すステップＳ６１において、アプリケーション状態管理手段６は、イベントの種類がドロップイベントではないと判断する。アプリケーション状態管理手段６は、ＯＳ機能４を用いて、ウインドウハンドルにもとづいてアプリケーション名を特定する（ステップＳ６４）。本例では、アプリケーション状態管理手段６は、ウインドウハンドル「９９９９」にもとづいて、アプリケーション名「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」を特定する。
【０１４４】
アプリケーション状態管理手段６は、アプリケーション名「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」、イベント名「メニューを選択」およびパラメータ「ラベル＝新規作成」を条件として、アプリケーション知識５を検索する（ステップＳ６５，Ｓ６６）。図４に示すアプリケーション知識５の場合、第２レコードのアプリケーション名５１０１、イベント名５１０２およびパラメータ５１０３が条件に合致するので、第２レコードが検索される。
【０１４５】
そして、アプリケーション状態管理手段６は、検索結果にもとづいてアプリケーション状態テーブルを更新する（ステップＳ６７）。図１３は、更新されたアプリケーション状態テーブルの例を示す説明図である。図１３に示すように、アプリケーション状態管理手段６は、ウインドウハンドル「９９９９」を含むレコードの操作意味を「文書を新規に作成」に更新する。
【０１４６】
アプリケーション状態管理手段６は、アプリケーション状態テーブルの更新部分を暗号／復号判定手段９に転送する。更新部分が転送されると、暗号／復号判定手段９は、図１０に示す手順に従って、必要がある場合には、暗号復号判定テーブルを更新する（ステップＳ１０５）。
【０１４７】
図１０に示すステップＳ９１において、暗号／復号判定手段９は、ウインドウハンドルにもとづいてアプリケーション名を特定する。暗号／復号判定手段９は、アプリケーション名「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」、機密区分「通常」および操作意味「文書を新規に作成」を条件として、機密文書取扱知識１１を検索する（ステップＳ９２，Ｓ９３）。
【０１４８】
図８に示す機密文書取扱知識１１の場合、条件に合致するレコードがないので、暗号／復号判定手段９は、暗号復号判定テーブルを更新することなく処理を終了する。すなわち、新規作成という操作は、ファイルシステムにアクセスする操作でないので、暗号復号判定テーブルを更新する必要がない。そのため、機密文書取扱知識１１に新規作成についての情報はユーザによって予め登録されない。従って、本例では、暗号／復号判定手段９は、暗号復号安定テーブルを更新することなく処理を終了する。
【０１４９】
ＯＳ１は、ユーザ操作がファイルシステムへのアクセスであるか否かを判断する（ステップＳ１０６）。本例では、ＯＳ１は、ユーザ操作がファイルシステムへのアクセスではないと判断するので、処理を終了する。
【０１５０】
次に、利用シーン１のユーザ操作１−２を行う場合の全体動作を、図１１を用いて説明する。ユーザは、文書機密属性設定手段１０を用いて、ユーザ操作１−１で作成した文書を機密文書にするために、文書を開いているウインドウに秘文書アイコン１０１０２をドロップする（ステップＳ１０１）。
【０１５１】
ＯＳ１は、ドロップイベントのイベントメッセージを発生させる（ステップＳ１０２）。図１４は、ドロップイベントのイベントメッセージの例を示す説明図である。図１４に示すように、イベントメッセージは、イベント名「ドロップ」、ウインドウハンドル「９９９９」およびパラメータ「アイコンＩＤ＝秘文書アイコンＩＤ」を含む。図１４に示す例では、イベントについて、ドロップ操作がウインドウハンドル「９９９９」のウインドウで発生し、アイコンＩＤが秘文書アイコンＩＤであることを意味する。
【０１５２】
アプリケーション監視手段４は、イベントメッセージを横取りする（ステップＳ１０３）。すなわち、図１４に示すイベントメッセージがアプリケーション監視手段４に転送される。そして、アプリケーション監視手段４は、イベントメッセージをアプリケーション状態管理手段６に転送する。
【０１５３】
アプリケーション状態管理手段６は、図６に示す手順に従って、アプリケーション状態テーブルを更新する（ステップＳ１０４）。図６に示すステップＳ６１において、アプリケーション状態管理手段６は、イベントの種類がドロップイベントであると判断する。（Ｓ０６１０１）。また、ステップＳ６２において、アプリケーション状態管理手段６は、アイコンＩＤが秘文書アイコンＩＤであると判断する。
【０１５４】
そして、アプリケーション状態管理手段６は、ステップＳ６３において、ウインドウハンドル「９９９９」に対応するレコードの機密区分を「秘密」に更新する。図１５は、アプリケーション状態テーブルの更新例を示す説明図である。図１５に示すように、アプリケーション状態管理手段６は、ウインドウハンドル「９９９９」を含むレコードの機密区分を「通常」から「秘密」に変更する。
【０１５５】
アプリケーション状態テーブルの更新部分が転送されると、暗号／復号判定手段９は、図１０に示す手順に従って、必要がある場合には、暗号復号判定テーブルを更新する（ステップＳ１０５）。暗号／復号判定手段９は、ウインドウハンドルにもとづいてアプリケーション名を特定する（ステップＳ９１）。暗号／復号判定手段９は、アプリケーション名「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」、機密区分「機密」および操作意味「文書を新規に作成」を条件として、機密文書取扱知識１１を検索する（ステップＳ９２，Ｓ９３）。
【０１５６】
図８に示す機密文書取扱知識１１の場合、条件に合致するレコードがないので、暗号／復号判定手段９は、暗号復号判定テーブルを更新することなく処理を終了する。すなわち、新規作成という操作は、ファイルシステムにアクセスする操作でないので、暗号復号判定テーブルを更新する必要がない。そのため、機密文書取扱知識１１に新規作成についての情報はユーザによって予め登録されない。従って、本例では、暗号／復号判定手段９は、暗号復号安定テーブルを更新することなく処理を終了する。
【０１５７】
ＯＳ１は、ユーザ操作がファイルシステムへのアクセスであるか否かを判断する（ステップＳ１０６）。本例では、ＯＳ１は、ユーザ操作がファイルシステムへのアクセスではないと判断するので、処理を終了する。
【０１５８】
次に、利用シーン１のユーザ操作１−３を行う場合の全体動作を、図１１を用いて説明する。ユーザは、機密文書管理装置を操作して、アプリケーションソフトウェア２を用いて、「保存終了」メニューを選択する（ステップＳ１０１）。
【０１５９】
ＯＳ１は、保存終了メニュー操作イベントのイベントメッセージを発生させる（ステップＳ１０２）。図１６は、保存終了メニュー操作イベントのイベントメッセージの例を示す説明図である。図１６に示すように、イベントメッセージは、イベント名「メニューを選択」、ウインドウハンドル「９９９９」およびパラメータ「ラベル＝保存終了」を含む。図１６に示す例では、イベントについて、メニュー操作がウインドウハンドル「９９９９」のウインドウで発生し、メニューのラベルが「保存終了」であることを意味する。
【０１６０】
アプリケーション監視手段４は、イベントメッセージを横取りする（ステップＳ１０３）。すなわち、図１６に示すイベントメッセージがアプリケーション監視手段４に転送される。そして、アプリケーション監視手段４は、イベントメッセージをアプリケーション状態管理手段６に転送する。
【０１６１】
アプリケーション状態管理手段６は、図６に示す手順に従って、アプリケーション状態テーブルを更新する（ステップＳ１０４）。図６に示すステップＳ６１において、アプリケーション状態管理手段６は、イベントの種類がドロップイベントではないと判断する。アプリケーション状態管理手段６は、ＯＳ機能４を用いて、ウインドウハンドルにもとづいてアプリケーション名を特定する（ステップＳ６４）。本例では、アプリケーション状態管理手段６は、ウインドウハンドル「９９９９」にもとづいて、アプリケーション名「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」を特定する。
【０１６２】
アプリケーション状態管理手段６は、アプリケーション名「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」、イベント名「メニューを選択」およびパラメータ「ラベル＝保存終了」を条件として、アプリケーション知識５を検索する（ステップＳ６５，Ｓ６６）。図４に示すアプリケーション知識５の場合、第３レコードのアプリケーション名５１０１、イベント名５１０２およびパラメータ５１０３が条件に合致するので、第３レコードが検索される。
【０１６３】
そして、アプリケーション状態管理手段６は、検索結果にもとづいてアプリケーション状態テーブルを更新する（ステップＳ６７）。図１７は、アプリケーション状態テーブルの他の更新例を示す説明図である。図１７に示すように、アプリケーション状態管理手段６は、ウインドウハンドル「９９９９」を含むレコードの操作意味を、「文書を新規に作成」から「文書を保存し終了」に更新する。
【０１６４】
アプリケーション状態管理手段６は、アプリケーション状態テーブルの更新部分を暗号／復号判定手段９に転送する。更新部分が転送されると、暗号／復号判定手段９は、図１０に示す手順に従って、必要がある場合には、暗号復号判定テーブルを更新する（ステップＳ１０５）。
【０１６５】
図１０に示すステップＳ９１において、暗号／復号判定手段９は、ウインドウハンドルにもとづいてアプリケーション名を特定する。暗号／復号判定手段９は、アプリケーション名「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」、機密区分「秘密」および操作意味「文書を保存し終了」を条件として、機密文書取扱知識１１を検索する（ステップＳ９２，Ｓ９３）
【０１６６】
図８に示す機密文書取扱知識１１の場合、第３レコードおよび第４レコードが条件に合致する。暗号／復号判定手段９は、検索結果が存在すると判断して、ＯＳ機能３を用いて、ウインドウハンドル「９９９９」のプロセスＩＤを特定する（ステップＳ９４）。本例では、文書のプロセスＩＤが「９８７６」であるとする。
【０１６７】
暗号／復号判定手段９は、暗号復号判定テーブルを更新する（ステップＳ９５）。図１８は、更新された暗号復号判定テーブルの例を示す説明図である。図１８に示すように、暗号／復号判定手段９は、プロセスＩＤ「９８７６」とドライバ実行コマンド「ＲＥＡＤ」との組のセルを「処理不要」に設定し、プロセスＩＤ「９８７６」とドライバ実行コマンド「ＷＲＩＴＥ」との組のセルを「暗号化」に設定する。
【０１６８】
ＯＳ１は、ユーザ操作がファイルシステムへのアクセスであるか否かを判断する（ステップＳ１０６）。本例では、ＯＳ１は、ユーザ操作がファイルシステムへのアクセスであると判断する。そして、ＯＳ１は、ファイルシステムデバイスドライバ３へのファイルのＷＲＩＴＥ要求（書き込み要求）を発行する（ステップＳ１０７）。
【０１６９】
秘文書ファイルアクセス制御手段７は、書き込みデータを横取りする（ステップＳ１０８）。図１９は、横取りデータの例を示す説明図である。図１９に示すように、横取りデータは、コマンド種類、プロセスＩＤおよび本文データを含む。図１９に示す例では、プロセスＩＤ「９８７６」の文書についてのＷＲＩＴＥ要求があったことを意味する。また、横取りデータの本文データには暗号化されていない文書本文のみが含まれており、文書本文の内容が「関係者各位、いつもおせわになって・・・」である。
【０１７０】
秘文書ファイルアクセス制御手段７は、暗号／復号判定手段９に、図１８に示す暗号復号判定テーブルと、図１９に示す横取りデータとを照合させる（ステップＳ１０９）。本例では、暗号／復号判定手段９は、暗号復号判定テーブルから、プロセスＩＤ「９８７６」とドライバ実行コマンド「ＷＲＩＴＥ」との組のセルの内容「暗号化」を抽出する。
【０１７１】
暗号／復号判定手段９は、照合結果にもとづいて、横取りデータに含まれる文書を暗号化または復号する必要があるか判断する（ステップＳ１１０）。本例では、検索結果が「暗号化」であるので、暗号／復号判定手段９は、文書を暗号化する必要があると判断する。
【０１７２】
秘文書ファイルアクセス制御手段７は、文書本文を、暗号／復号手段８に転送する。暗号／復号手段８は、所定の暗号キーを作成し、作成した暗号キーを用いて文書本文を暗号化する（ステップＳ１１１）。そして、暗号／復号手段８は、作成した暗号キーの情報および暗号化した文書本文を、秘文書ファイルアクセス制御手段７に返す。例えば、暗号／復号手段８は、暗号キーの情報として「ＫＥＹ９８７」を生成し、文書本文を「８５ｊＣｑＲ５ＲＧｍＲｐｘｃ０ｋ０ｚｚｘｗｅｕ８ｓ」と暗号化する。
【０１７３】
秘文書ファイルアクセス制御手段７は、マジックナンバ、暗号キーの情報および暗号化後の文書本文を含む横取りデータを、ファイルシステムデバイスドライバ３に返す。本例では、秘文書ファイルアクセス制御手段７は、図１９に示す横取りデータの本文データを、図７に示すフォーマットの内容に変更して、ファイルシステムデバイスドライバ３に返す。ただし、図７に示すように、機密文書管理装置のマジックナンバは「＄ＮＥＣＳＳＴ  ＣＴ＄」であるとする。そして、ファイルシステムデバイスドライバ３は、暗号化後の文書を、図７に示すフォーマットでファイルシステムに書き込む（ステップＳ１１２）。
【０１７４】
以上のように、文書が自動的に暗号化されてハードディスクに保存される。
【０１７５】
次に、利用シーン２のユーザ操作を行う場合の全体動作を、図１１を用いて説明する。ユーザは、機密文書管理装置を操作して、アプリケーションソフトウェア２（本例では、Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ）を起動し、「開く」メニューを選択する（ステップＳ１０１）。なお、本例では、起動したアプリケーションソフトウェア２のウインドウハンドルが「７７７７」であるとする。
【０１７６】
ＯＳ１のは、開くメニュー操作イベントのイベントメッセージを発生させる（ステップＳ１０２）。図２０は、保存終了メニュー操作イベントのイベントメッセージの例を示す説明図である。図２０に示すように、イベントメッセージは、イベント名「メニューを選択」、ウインドウハンドル「７７７７」およびパラメータ「ラベル＝開く」を含む。図２０に示す例では、イベントについて、メニュー操作がウインドウハンドル「７７７７」のウインドウで発生し、メニューのラベルが「開く」であることを意味する。
【０１７７】
アプリケーション監視手段４は、イベントメッセージを横取りする（ステップＳ１０３）。すなわち、図２０に示すイベントメッセージがアプリケーション監視手段４に転送される。そして、アプリケーション監視手段４は、イベントメッセージをアプリケーション状態管理手段６に転送する。
【０１７８】
アプリケーション状態管理手段６は、図６に示す手順に従って、アプリケーション状態テーブルを更新する（ステップＳ１０４）。図６に示すステップＳ６１において、アプリケーション状態管理手段６は、イベントの種類がドロップイベントではないと判断する。アプリケーション状態管理手段６は、ＯＳ機能４を用いて、ウインドウハンドルにもとづいてアプリケーション名を特定する（ステップＳ６４）。本例では、アプリケーション状態管理手段６は、ウインドウハンドル「７７７７」にもとづいて、アプリケーション名「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」を特定する。
【０１７９】
アプリケーション状態管理手段６は、アプリケーション名「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」、イベント名「メニューを選択」およびパラメータ「ラベル＝開く」を条件として、アプリケーション知識５を検索する（ステップＳ６５，Ｓ６６）。図４に示すアプリケーション知識５の場合、第４レコードのアプリケーション名５１０１、イベント名５１０２およびパラメータ５１０３が条件に合致するので、第４レコードが検索される。
【０１８０】
そして、アプリケーション状態管理手段６は、検索結果にもとづいてアプリケーション状態テーブルを更新する（ステップＳ６７）。図２１は、アプリケーション状態テーブルの更に他の更新例を示す説明図である。図２１に示すように、アプリケーション状態管理手段６は、ウインドウハンドル「７７７７」を含むレコードの操作意味を、「文書を読み込む」に更新する。
【０１８１】
アプリケーション状態管理手段６は、アプリケーション状態テーブルの更新部分を暗号／復号判定手段９に転送する。更新部分が転送されると、暗号／復号判定手段９は、図１０に示す手順に従って、必要がある場合には、暗号復号判定テーブルを更新する（ステップＳ１０５）。
【０１８２】
図１０に示すステップＳ９１において、暗号／復号判定手段９は、ウインドウハンドルにもとづいてアプリケーション名を特定する。暗号／復号判定手段９は、アプリケーション名「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」、機密区分「通常」および操作意味「文書を読み込む」を条件として、機密文書取扱知識１１を検索する（ステップＳ９２，Ｓ９３）。
【０１８３】
図８に示す機密文書取扱知識１１の場合、第７レコードおよび第８レコードが条件に合致する。暗号／復号判定手段９は、検索結果が存在すると判断して、ＯＳ機能３を用いて、ウインドウハンドル「７７７７」のプロセスＩＤを特定する（ステップＳ９４）。本例では、文書のプロセスＩＤが「５４３２」であるとする。
【０１８４】
暗号／復号判定手段９は、暗号復号判定テーブルを更新する（ステップＳ９５）。図２２は、更新された暗号復号判定テーブルの他の例を示す説明図である。図２２に示すように、暗号／復号判定手段９は、プロセスＩＤ「５４３２」とドライバ実行コマンド「ＲＥＡＤ」との組のセルを「復号」に設定し、プロセスＩＤ「５４３２」とドライバ実行コマンド「ＷＲＩＴＥ」との組のセルを「処理不要」に設定する。
【０１８５】
ＯＳ１は、ユーザ操作がファイルシステムへのアクセスであるか否かを判断する（ステップＳ１０６）。本例では、ＯＳ１は、ユーザ操作がファイルシステムへのアクセスであると判断する。そして、ＯＳ１は、ファイルシステムデバイスドライバ３へのファイルのＲＥＡＤ要求（読み込み要求）を発行する（ステップＳ１０７）。
【０１８６】
秘文書ファイルアクセス制御手段７は、読み込みデータを横取りする（ステップＳ１０８）。図２３は、横取りデータの他の例を示す説明図である。図２３に示すように、横取りデータは、コマンド種類、プロセスＩＤおよび本文データを含む。図２３に示す例では、プロセスＩＤ「５４３２」の文書についてＲＥＡＤ要求があったことを意味する。また、横取りデータに含まれる文書は暗号化されており、本文データにはマジックナンバ、暗号キーおよび暗号化された文書本文が含まれる。本例では、本文データには、それぞれマジックナンバ「＄ＮＥＣＳＴＣＴ＄」、暗号キー「ＫＥＹ９８７」および文書本文「８５ｊＣｑＲ５ＲＧｍＲｐｘｃ０ｋ０ｚｚｘｗｅｕ８ｓ」が含まれる。
【０１８７】
秘文書ファイルアクセス制御手段７は、暗号／復号判定手段９に、図２２に示す暗号復号判定テーブルと、図２３に示す横取りデータとを照合させる（ステップＳ１０９）。本例では、暗号／復号判定手段９は、暗号復号判定テーブルから、プロセスＩＤ「５４３２」とドライバ実行コマンド「ＲＥＡＤ」との組のセルの内容「復号」を抽出する。
【０１８８】
暗号／復号判定手段９は、照合結果にもとづいて、横取りデータに含まれる文書を暗号化または復号する必要があるか判断する（ステップＳ１１０）。本例では、検索結果が「復号」であるので、暗号／復号判定手段９は、文書を復号する必要があると判断する。
【０１８９】
秘文書ファイルアクセス制御手段７は、横取りデータに含まれる本文データの内容を、暗号／復号手段８に転送する。すなわち、秘文書ファイルアクセス制御手段７は、マジックナンバ「＄ＮＥＣＳＴＣＴ＄」、暗号キー「ＫＥＹ９８７」および文書本文「８５ｊＣｑＲ５ＲＧｍＲｐｘｃ０ｋ０ｚｚｘｗｅｕ８ｓ」を転送する。
【０１９０】
暗号／復号手段８は、暗号キー「ＫＥＹ９８７」にもとづいて文書本文を復号する（ステップＳ１１１）。本例では、暗号／復号手段８は、文書本文を「関係者各位、いつもおせわになって・・・」に復号する。そして、暗号／復号手段８は、復号した文書本文を秘文書ファイルアクセス制御手段７に返す。
【０１９１】
秘文書ファイルアクセス制御手段７は、ファイルシステムデバイスドライバ３に、復号した文書本文「関係者各位、いつもおせわになって・・・」を含む読み込みデータを返す。そして、ファイルシステムデバイスドライバ３は、復号後の文書を読み込む（ステップＳ１１２）。
【０１９２】
以上のように、暗号化されてハードディスクに書き込まれていた文書が自動的に復号されて、アプリケーションソフトウェア２「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」上に読み込まれる。
【０１９３】
なお、読み込まれた文書はハードディスク上に暗号化されて保存されていた文書であるので、その後も機密文書として取り扱う必要がある。そのため、秘文書ファイルアクセス制御手段７は、ＯＳ１に、図２４に示すように、利用後の文書を機密文書に変更するイベントメッセージを発行させる。なお、機密文書に変更する処理手順は、ユーザ操作１−２における動作説明で示した手順と同様である。そのようにすることにより、最終的に、図２５に示すように、アプリケーション状態テーブルのウインドウハンドル「７７７７」のレコードの機密区分が「秘密」に保たれる。
【０１９４】
次に、利用シーン３のユーザ操作を行う場合の全体動作を、図１１を用いて説明する。ユーザは、機密文書管理装置を操作して、アプリケーションソフトウェア２（本例では、Ｏｕｔｌｏｏｋ）を起動し、「文書添付」メニューを選択する（ステップＳ１０１）。なお、本例では、起動したアプリケーションソフトウェア２のウインドウハンドルが「３３３３」であるとする。
【０１９５】
ＯＳ１は、文書添付メニュー操作イベントのイベントメッセージを発生させる（ステップＳ１０２）。図２６は、文書添付メニュー操作イベントのイベントメッセージの例を示す説明図である。図２６に示すように、イベントメッセージは、イベント名「メニューを選択」、ウインドウハンドル「３３３３」およびパラメータ「ラベル＝文書添付」を含む。図２６に示す例では、イベントについて、メニュー操作がウインドウハンドル「３３３３」のウインドウで発生し、メニューのラベルが「文書添付」であることを意味する。
【０１９６】
アプリケーション監視手段４は、イベントメッセージを横取りする（ステップＳ１０３）。すなわち、図２６に示すイベントメッセージがアプリケーション監視手段４に転送される。そして、アプリケーション監視手段４は、イベントメッセージをアプリケーション状態管理手段６に転送する。
【０１９７】
アプリケーション状態管理手段６は、図６に示す手順に従って、アプリケーション状態テーブルを更新する（ステップＳ１０４）。図６に示すステップＳ６１において、アプリケーション状態管理手段６は、イベントの種類がドロップイベントではないと判断する。アプリケーション状態管理手段６は、ＯＳ機能４を用いて、ウインドウハンドルにもとづいてアプリケーション名を特定する（ステップＳ６４）。本例では、アプリケーション状態管理手段６は、ウインドウハンドル「３３３３」にもとづいて、アプリケーション名「Ｏｕｔｌｏｏｋ」を特定する。
【０１９８】
アプリケーション状態管理手段６は、アプリケーション名「Ｏｕｔｌｏｏｋ」、イベント名「メニューを選択」およびパラメータ「ラベル＝文書添付」を条件として、アプリケーション知識５を検索する（ステップＳ６５，Ｓ６６）。図４に示すアプリケーション知識５の場合、第５レコードのアプリケーション名５１０１、イベント名５１０２およびパラメータ５１０３が条件に合致するので、第５レコードが検索される。
【０１９９】
そして、アプリケーション状態管理手段６は、検索結果にもとづいてアプリケーション状態テーブルを更新する（ステップＳ６７）。図２７は、アプリケーション状態テーブルの更に他の更新例を示す説明図である。図２７に示すように、アプリケーション状態管理手段６は、ウインドウハンドル「３３３３」を含むレコードの操作意味を、「文書を添付する」に更新する。
【０２００】
アプリケーション状態管理手段６は、アプリケーション状態テーブルの更新部分を暗号／復号判定手段９に転送する。更新部分が転送されると、暗号／復号判定手段９は、図１０に示す手順に従って、必要がある場合には、暗号復号判定テーブルを更新する（ステップＳ１０５）。
【０２０１】
図１０に示すステップＳ９１において、暗号／復号判定手段９は、ウインドウハンドルにもとづいてアプリケーション名を特定する。暗号／復号判定手段９は、アプリケーション名「Ｏｕｔｌｏｏｋ」、機密区分「通常」および操作意味「文書を添付する」を条件として、機密文書取扱知識１１を検索する（ステップＳ９２，Ｓ９３）
【０２０２】
図８に示す機密文書取扱知識１１の場合、第２レコードおよび第９レコードが条件に合致する。暗号／復号判定手段９は、検索結果が存在すると判断して、ＯＳ機能３を用いて、ウインドウハンドル「３３３３」のプロセスＩＤを特定する（ステップＳ９４）。本例では、文書のプロセスＩＤが「１１１１」であるとする。
【０２０３】
暗号／復号判定手段９は、暗号復号判定テーブルを更新する（ステップＳ９５）。図２８は、更新された暗号復号判定テーブルの更に他の例を示す説明図である。図２８に示すように、暗号／復号判定手段９は、プロセスＩＤ「１１１１」とドライバ実行コマンド「ＲＥＡＤ」との組のセルを「処理不要」に設定し、プロセスＩＤ「１１１１」とドライバ実行コマンド「ＷＲＩＴＥ」との組のセルを「暗号化」に設定する。
【０２０４】
ＯＳ１は、ユーザ操作がファイルシステムへのアクセスであるか否かを判断する（ステップＳ１０６）。本例では、ＯＳ１は、ユーザ操作がファイルシステムへのアクセスであると判断する。そして、ＯＳ１は、ファイルシステムデバイスドライバ３へのファイルのＲＥＡＤ要求を発行する（ステップＳ１０７）。
【０２０５】
秘文書ファイルアクセス制御手段７は、読み込みデータを横取りする（ステップＳ１０８）。図２９は、横取りデータの更に他の例を示す説明図である。図２９に示すように、横取りデータは、コマンドの種類、プロセスＩＤおよび本文データを含む。図２９に示す例では、プロセスＩＤ「１１１１」の文書についてＲＥＡＤ要求があったことを意味する。また、横取りデータに含まれる文書は暗号化されており、本文データにはマジックナンバ、暗号キーおよび暗号化された文書本文が含まれる。本例では、本文データには、それぞれマジックナンバ「＄ＮＥＣＳＴＣＴ＄」、暗号キー「ＫＥＹ９８７」および本文「８５ｊＣｑＲ５ＲＧｍＲｐｘｃ０ｋ０ｚｚｘｗｅｕ８ｓ」が含まれる。
【０２０６】
秘文書ファイルアクセス制御手段７は、暗号／復号判定手段９に、図２８に示す暗号復号判定テーブルと、図２９に示す横取りデータとを照合させる（ステップＳ１０９）。本例では、暗号／復号判定手段９は、暗号復号判定テーブルから、プロセスＩＤ「１１１１」とドライバ実行コマンド「ＲＥＡＤ」との組のセルの内容「処理不要」を抽出する。
【０２０７】
暗号／復号判定手段９は、照合結果にもとづいて、横取りデータに含まれる文書を暗号化または復号する必要があるか判断する（ステップＳ１１０）。本例では、検索結果が「処理不要」であるので、暗号／復号判定手段９は、文書を処理する必要がないと判断する。
【０２０８】
秘文書ファイルアクセス制御手段７は、横取りデータを、そのままファイルシステムデバイスドライバ３に返す。そして、ＯＳ１は、ハードディスクから読み取った文書をそのまま処理する。すなわち、図３０に示す本文データを含む横取りデータがそのまま転送され処理される。
【０２０９】
以上のように、暗号化されてハードディスクに書き込まれていた文書がそのままアプリケーションソフトウェア２「Ｏｕｔｌｏｏｋ」上に読み込まれる。すなわち、文書は暗号化されたままの状態でメールに添付されることを意味する。
【０２１０】
以上のように、本実施の形態によれば、ＯＳ１のイベントメッセージにもとづいてアプリケーションソフトウェア２の実行状態を推定する。そして、文書へのアクセスを検出した場合に、アプリケーションソフトウェア２の実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する。そのため、外部に機密文書を公開するアプリケーション操作をユーザが行った場合には自動的に機密文書が暗号化される。従って、正規ユーザが操作ミスをした場合であっても機密情報の漏洩を防止することができる。また、アプリケーションソフトウェア２の実行状態も考慮して機密文書の暗号化および復号を自動的に行うことができる。
【０２１１】
例えば、利用シーン２のユーザ操作のように、ワードプロセッサのアプリケーションソフトウェア上で機密文書を読み込んだ場合には、暗号化された文書が自動的に復号されて利用が可能となる。また、利用シーン３のユーザ操作のように、メーラのアプリケーションソフトウェア上で機密文書を読み込んだ場合には、暗号化された文書は復号されずにそのまま読み込まれる。
【０２１２】
また、本実施の形態によれば、ユーザの操作によらずに、ファイル読み込み時には暗号化された文書を自動的に復号し、ファイル書き込み時には自動的に暗号化されて書き込まれる。従って、正規ユーザが故意に機密情報を漏洩するのを防止することができる。また、本実施の形態によれば、アプリケーションソフトウェア２の実行状態に応じて自動的に文書の暗号化または復号が行われるので、ユーザは、暗号化や復号の操作を意識せずに文書を扱うことができる。従って、複数人で編集作業を繰り返し行うドラフト状態の機密文書を、利便性を損なうことなく保護することができる。
【０２１３】
また、本実施の形態によれば、アプリケーション上から暗号化された文書にアクセスした場合の文書の処理方法を、機密文書取扱知識１１に登録さえすれば、登録内容に従って文書を処理できる。そのようにすることにより、ローカルの閉じたシステムのアプリケーション上からアクセスする場合には文書を自動的に復号し、外部の他者に配布する場合には復号せずに暗号化したまま配布することによって、情報の漏洩を防止することができる。
【０２１４】
実施の形態２．
次に、本発明の第２の実施の形態を図面を参照して説明する。図３１は、機密文書管理装置の他の構成例を示すブロック図である。本実施の形態において、機密文書管理装置は、第１の実施の形態と同様に、パーソナルコンピュータなど情報処理装置によって実現される。
【０２１５】
図３１に示すように、機密文書管理装置は、第１の実施の形態で示した構成に加えて、配布履歴管理手段３００を含む。また、配布履歴管理手段３００は、ログインユーザ名取得手段１２、配布履歴記憶手段１３および配布履歴追加手段１４を含む。
【０２１６】
ログインユーザ名取得手段１２は、コンピュータにログイン中のユーザのログイン名を取得する。配布履歴記憶手段１３は、暗号化された文書のファイル読み込みの際に、秘文書ファイルアクセス制御手段７の横取りデータに含まれる本文データのヘッダを記憶する。配布履歴追加手段１４は、暗号化された文書のファイル書き込みの際に、秘文書ファイルアクセス制御手段７の横取りデータに含まれる本文データのヘッダに、ログインユーザ名取得手段１２から得られたログイン中のユーザのユーザ名を加える。なお、ログインユーザ名取得手段１２および配布履歴追加手段１４は、ソフトウェアによって実現される。また、配布履歴記憶手段１３は、機密文書管理装置の記憶装置によって実現される。
【０２１７】
図３１に示す構成によって、機密文書管理装置は、ファイルのヘッダに、ファイルをコピーしたユーザのリストを痕跡として残す処理を行う。
【０２１８】
本実施の形態において、ユーザ名取得手段は、ログインユーザ名取得手段１２によって実現される。ヘッダ記憶手段は、配布履歴記憶手段１３によって実現される。ユーザ名付加手段は、配布履歴追加手段１４によって実現される。
【０２１９】
次に、配布履歴管理手段３００の各構成要素の機能および動作を説明する。ログインユーザ名取得手段１２は、ＷｉｎｄｏｗｓやＵＮＩＸなどのＯＳが備えているログイン中のユーザのユーザ名を取得するＡＰＩ（Application Programming Interface ）を利用することによって、ログイン中のユーザ名を取得する。
【０２２０】
なお、ＡＰＩを利用する方法に限らず、ログインユーザ名取得手段１２は、ＬＤＡＰ（Lightweight DirectoryAccess Protocol）サーバなどのインターネットを介したアカウントサービスを利用することによって、ログイン中のユーザ名を取得してもよい。
【０２２１】
配布履歴記憶手段１３は、プロセスＩＤと配布履歴との対応関係を示すテーブルを記憶する。以下、配布履歴記憶手段１３が記憶するテーブルをファイルヘッダテーブルという。図３２は、ファイルヘッダテーブルの一例を示す説明図である。図３２に示すように、ファイルヘッダテーブルは、プロセスＩＤ１３１０１と配布履歴１３１０２とを対応付けて含む。プロセスＩＤ１３１０１は、ファイル読み込みを行ったプロセスのＩＤである。配布履歴１３１０２は、ファイルに書き込みをしたユーザの履歴である。
【０２２２】
図３３は、本実施の形態において、秘文書ファイルアクセス制御手段７がファイルシステムデバイスドライバ３に返すときの暗号化後の本文データの例を示す説明図である。図３３に示すように、本実施の形態において、本文データは、マジックナンバ７１０１、暗号キー７１０２および本文７１０３に加えて、配布ユーザ履歴７１０４を含む。図３３に示すように、配布ユーザ履歴７１０４は、ファイルに書き込みをしたユーザの履歴を、古い順に記号「＞」でつなげて記述した情報である。図３３に示す例では、ユーザ１が最初にファイルを利用し、次にユーザ２がファイルを利用したことを意味する。
【０２２３】
また、ファイルヘッダテーブルの配布履歴１３１０２には、暗号化された文書のファイル読み込みの際に、本文データに含まれる配布ユーザ履歴７１０４が記憶される。
【０２２４】
配布ルート設定手段１４は、秘文書ファイルアクセス制御手段７が文書を暗号化して横取りデータを転送する際に、ファイルヘッダテーブルから配布履歴情報を抽出する。そして、配布履歴追加手段１４は、抽出した配布履歴情報に、ログインユーザ名取得手段１２が取得したユーザ名を追加する。
【０２２５】
次に、全体動作について説明する。図３４は、機密文書管理装置が行う機密文書管理の全体処理の処理経過の他の例を示す流れ図である。図３４に示すように、本実施の形態では、第１の実施の形態で示した暗号復号処理ステップ（ステップＳ１１１）と、ファイルシステムデバイスドライバコマンド実行ステップ（ステップＳ１１２）との間に、配布履歴をファイルのヘッダに追加する配布履歴設定処理ステップ（ステップＳ１１１ａ）を更に含む。
【０２２６】
本実施の形態では、第１の実施の形態で示した処理ステップに配布履歴設定処理ステップを加えることにより、本文データのヘッダに、ファイルをコピーしたユーザのリストを痕跡として残すことができる。なお、配布履歴設定処理ステップ以外の処理ステップについては、第１の実施の形態と同様である。
【０２２７】
図３５は、機密文書管理の処理のうち、配布履歴設定処理の処理経過の一例を示す流れ図である。秘文書ファイルアクセス制御手段７は、データを横取りすると、ファイルシステムへのアクセスの種類が「ＲＥＡＤ」であるか否かを判断する（ステップＳ２１）。「ＲＥＡＤ」であると判断した場合には、秘文書ファイルアクセス制御手段７は、ステップＳ２２の処理を実行する。「ＲＥＡＤ」ではないと判断した場合には、配布履歴追加手段１４によってステップＳ２３の処理が実行される。
【０２２８】
「ＲＥＡＤ」であると判断した場合には、秘文書ファイルアクセス制御手段７は、配布履歴記憶手段１３に、横取りデータに含まれるプロセスＩＤおよび配布履歴を記憶させる（ステップＳ２２）。すると、配布履歴記憶手段１３は、秘文書ファイルアクセス制御手段７からのプロセスＩＤおよび配布履歴を、ファイルヘッダテーブルに書き込む。
【０２２９】
「ＲＥＡＤ」ではないと判断した場合には、配布履歴追加手段１４は、プロセスＩＤをキーとして、配布履歴記憶手段１３が記憶するファイルヘッダテーブルを検索する（ステップＳ２３）。配布履歴追加手段１４は、条件に合致するレコードがファイルヘッダテーブルに含まれるか否かを判断する（ステップＳ２４）。条件に合致するレコードが含まれないと判断した場合には、配布履歴追加手段１４は、ステップＳ２５の処理を実行する。条件に合致するレコードが含まれると判断した場合には、配布履歴追加手段１４は、ステップＳ２６の処理を実行する。
【０２３０】
条件に合致するレコードが含まれないと判断した場合には、配布履歴追加手段１４は、新たに配布履歴を作成する（ステップＳ２５）。ステップＳ２５の処理が実行されるのは、ハードディスクから一度読み出したファイルが書き込まれる場合ではなく、ユーザによって新規に作成された文書が最初に保存される場合である。そのため、ファイルヘッダテーブルには、まだ配布ユーザ履歴が存在しない。この場合、配布履歴追加手段１４は、ログインユーザ名取得手段１２からログイン中のユーザ名を得る。そして、配布履歴追加手段１４は、ログインユーザ名取得手段１２から得たユーザ名を用いて、本文データのヘッダの配布ユーザ履歴を新規に作成する。
【０２３１】
条件に合致するレコードが含まれると判断した場合には、配布履歴追加手段１４は、配布履歴を更新する（ステップＳ２６）。ステップＳ２６の処理が実行されるのは、ハードディスクから一度読み出した文書がアプリケーションソフトウェア上で編集され保存される場合である。この場合、配布履歴追加手段１４は、配布履歴記憶手段１３が記憶するファイルヘッダテーブルから配布履歴を抽出する。また、配布履歴追加手段１４は、ログインユーザ名取得手段１２からログイン中のユーザ名を得る。そして、配布履歴追加手段１４は、ログインユーザ名取得手段１２から得たログイン中のユーザ名を、抽出した配布履歴に追加して、本文データのヘッダの配布ユーザ履歴とする。
【０２３２】
図３６は、本文データのヘッダの配布ユーザ履歴の更新例を示す説明図である。本例では、図３２のファイルヘッダテーブルを用いて、配布ユーザ履歴が更新された場合を説明する。図３６に示すように、ログイン中のユーザが「ＵＳＥＲ３」であるとすると、本文データのヘッダの配布ユーザ履歴に「＞ＵＳＥＲ３」が追加される。
【０２３３】
以上のように、本実施の形態によれば、本文データのヘッダに、ファイルをコピーしたユーザのリストを痕跡として残すことができる。従って、暗号化されたファイルが外部に漏れた場合に、ヘッダの配布ユーザ履歴を見れば、誰が情報を漏洩したのかを確認することができる。従って、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【０２３４】
なお、本実施の形態では、ユーザの名前だけを履歴情報の対象としたが、コンピュータ名、コンピュータのＩＰアドレスなどを履歴情報の対象にしてもよい。また、付加情報として、ユーザの配布履歴に日時を加えてもよい。また、配布履歴のデータサイズが大きくなるのを防止するため、最初の配布ユーザおよび最後の配布ユーザのみを履歴情報の対象としてもよい。
【０２３５】
実施の形態３．
更に、本発明の第３の実施の形態を図面を参照して説明する。図３７は、機密文書管理装置の更に他の構成例を示すブロック図である。本実施の形態において、機密文書管理装置は、第１の実施の形態および第２の実施の形態と同様に、パーソナルコンピュータなど情報処理装置によって実現される。
【０２３６】
図３７に示すように、機密文書管理装置は、第２の実施の形態で示した構成に加えて、ログ管理手段４００を含む。また、ログ管理手段４００は、ログ作成手段１５およびログデータベース１６を含む。
【０２３７】
ログ作成手段１５は、ソフトウェアによって実現される。ログ作成手段１５は、暗号／復号手段８が暗号化処理または復号処理を行った際に、ログインユーザ名取得手段１２からログイン中のユーザ名を取得してログデータを作成する。ログデータベース１６は、機密文書管理装置のデータベースによって実現される。ログデータベース１６は、ログ作成手段１５が作成したログデータを記憶する。
【０２３８】
図３７に示す構成によって、機密文書管理装置は、機密文書へのアクセスのログデータを残すことができる。
【０２３９】
本実施の形態において、ログデータ生成手段は、ログ作成手段１５によって実現される。ログデータ記憶手段は、ログデータベース１６によって実現される。
【０２４０】
次に、ログ管理手段４００の各構成要素の機能および動作を説明する。ログ作成手段１５は、暗号／復号手段８が文書を暗号化する際にログデータを作成する。また、ログ作成手段１５は、暗号／復号手段８が文書を復号する際にログデータを作成する。
【０２４１】
図３８は、本実施の形態において、秘文書ファイルアクセス制御手段７がファイルシステムデバイスドライバ３に返すときの暗号化後の横取りデータに含まれる本文データの例を示す説明図である。図３８に示すように、本実施の形態において、暗号化後データの本文データは、マジックナンバ７１０１、暗号キー７１０２、本文７１０３および配布ユーザ履歴７１０４に加えて、ファイルＩＤ７１０５を含む。ファイルＩＤ７１０５は、文書を最初に暗号化する際に、日時などを用いて発行される。
【０２４２】
暗号／復号手段８は、暗号化または復号する際に、暗号キー、ファイルＩＤおよび動作種類を、ログ作成手段１５に転送する。なお、暗号／復号手段８は、暗号化する場合には動作種類「暗号」を転送する。また、暗号／復号手段８は、復号する場合には動作種類「復号」を転送する。
【０２４３】
ログ作成手段１５は、暗号キー、ファイルＩＤおよび動作種類が転送されると、ログインユーザ名取得手段１２からログイン中のユーザ名を得て、ログデータを作成する。そして、ログ作成手段１５は、作成したログデータをログデータベース１６に記憶させる。
【０２４４】
図３９は、ログデータベース１６が記憶するログデータの例を示す説明図である。図３９に示すように、ログデータベース１６は、ログ作成日時１６１０１と、ファイルＩＤ１６１０２と、動作種類１６１０３と、ログインユーザ名１６１０４とを対応付けて記憶する。
【０２４５】
次に、全体動作について説明する。図４０は、機密文書管理装置が行う機密文書管理の全体処理の処理経過の更に他の例を示す流れ図である。図４０に示すように、本実施の形態では、第２の実施の形態で示した暗号復号処理ステップ（ステップＳ１１１）と、配布履歴設定処理ステップ（ステップＳ１１１ａ）との間に、暗号復号処理ステップの処理についてのログデータを作成しデータベースに記憶するログ書込処理ステップ（ステップＳ１１１ｂ）を更に含む。
【０２４６】
本実施の形態では、第２の実施の形態で示した処理ステップにログ書込処理ステップを加えることにより、機密文書へのアクセスのログデータを残すことができる。
【０２４７】
ステップＳ１１１において、暗号化または復号を行うと、暗号／復号手段８は、暗号キー、ファイルＩＤおよび動作種類をログ作成手段１５に転送する。すると、ログ作成手段１５は、ログインユーザ名取得手段１２からログイン中のユーザ名を得る。暗号／復号手段８は、暗号キー、ファイルＩＤ、動作種類およびログイン中のユーザ名にもとづいて、ログデータベース１６にレコードを追加して記憶させる（ステップＳ１１１ｂ）。
【０２４８】
以上のように、本実施の形態によれば、ログデータに機密文書の配布履歴の痕跡を残すことができる。そのため、暗号化されたファイルが外部に漏れた場合に、漏洩したファイルのヘッダのファイルＩＤをキーとしてログデータを解析することによって、漏洩したファイルの利用方法を確認することができる。従って、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
【０２４９】
なお、ログデータベース１６は、ローカルのコンピュータに備えてもよい。また、ＦＴＰ（File Transfer Protocol）を利用して、インターネットを介してサーバにアップロードすることによって実現してもよい。インターネットを介してサーバにアップロードするようにすれば、機密文書管理装置の管理者の管理負担を軽減できる。
【産業上の利用可能性】
【０２５０】
本発明は、暗号化することによって機密情報を保護しながら、計算機ネットワークや記憶媒体を利用して機密情報を複数人に配布することができる機密文書管理装置や、機密文書管理装置を実現するための機密文書管理プログラムの用途に適用することができる。
【図面の簡単な説明】
【０２５１】
【図１】本発明による機密文書管理装置の構成の一例を示すブロック図である。
【図２】イベントメッセージのフォーマットの例を示す説明図である。
【図３】ユーザが文書機密属性設定手段１０を利用する場合の利用方法の例を示す説明図である。
【図４】アプリケーション知識５の例を示す説明図である。
【図５】アプリケーション状態テーブルの例を示す説明図である。
【図６】アプリケーション状態管理手段６がアプリケーション状態テーブルを更新する処理経過の一例を示す流れ図である。
【図７】横取りデータに含まれる本文データのフォーマットの例を示す説明図である。
【図８】機密文書取扱知識１１の例を示す説明図である。
【図９】暗号復号判定テーブルの例を示す説明図である。
【図１０】暗号／復号判定手段９が暗号復号判定テーブルを更新する処理経過の一例を示す流れ図である。
【図１１】機密文書管理装置が行う機密文書管理の全体処理の処理経過の一例を示す流れ図である。
【図１２】新規作成メニュー操作イベントのイベントメッセージの例を示す説明図である。
【図１３】更新されたアプリケーション状態テーブルの例を示す説明図である。
【図１４】ドロップイベントのイベントメッセージの例を示す説明図である。
【図１５】アプリケーション状態テーブルの更新例を示す説明図である。
【図１６】保存終了メニュー操作イベントのイベントメッセージの例を示す説明図である。
【図１７】アプリケーション状態テーブルの他の更新例を示す説明図である。
【図１８】更新された暗号復号判定テーブルの例を示す説明図である。
【図１９】横取りデータの例を示す説明図である。
【図２０】保存終了メニュー操作イベントのイベントメッセージの例を示す説明図である。
【図２１】アプリケーション状態テーブルの更に他の更新例を示す説明図である。
【図２２】更新された暗号復号判定テーブルの他の例を示す説明図である。
【図２３】横取りデータの他の例を示す説明図である。
【図２４】利用シーン２の後に、更に発生させるイベントメッセージの例を示す説明図である。
【図２５】利用シーン２の後に、更に更新されたアプリケーション状態テーブルの例を示す説明図である。
【図２６】文書添付メニュー操作イベントのイベントメッセージの例を示す説明図である。
【図２７】アプリケーション状態テーブルの更に他の更新例を示す説明図である。
【図２８】更新された暗号復号判定テーブルの更に他の例を示す説明図である。
【図２９】横取りデータの更に他の例を示す説明図である。
【図３０】利用シーン３において転送される横取りデータの本文データの例を示す説明図である。
【図３１】機密文書管理装置の他の構成例を示すブロック図である。
【図３２】ファイルヘッダテーブルの一例を示す説明図である。
【図３３】第２の実施の形態において、秘文書ファイルアクセス制御手段７がファイルシステムデバイスドライバ３に返すときの暗号化後の横取りデータの本文データの例を示す説明図である。
【図３４】機密文書管理装置が行う機密文書管理の全体処理の処理経過の他の例を示す流れ図である。
【図３５】配布履歴設定処理の処理経過の一例を示す流れ図である。
【図３６】本文データのヘッダの配布ユーザ履歴の更新例を示す説明図である。
【図３７】機密文書管理装置の更に他の構成例を示すブロック図である。
【図３８】第３の実施の形態において、秘文書ファイルアクセス制御手段７がファイルシステムデバイスドライバ３に返すときの暗号化後の横取りデータに含まれる本文データの例を示す説明図である。
【図３９】ログデータベース１６が記憶するログデータの例を示す説明図である。
【図４０】機密文書管理装置が行う機密文書管理の全体処理の処理経過の更に他の例を示す流れ図である。
【符号の説明】
【０２５２】
１  ＯＳ
２  アプリケーションソフトウェア
３  ファイルシステムデバイスドライバ
４  アプリケーション監視手段
５  アプリケーション知識
６  アプリケーション状態管理手段
７  秘文書ファイルアクセス制御手段
８  暗号／復号手段
９  暗号／復号判定手段
１０  文書機密属性設定手段
１１  機密文書取扱知識
１００  アプリケーションコンテキスト管理手段
２００  フィルタドライバ管理手段
【図１】
2005222155.tif 000003
【図２】
2005222155.tif 000004
【図３】
2005222155.tif 000005
【図４】
2005222155.tif 000006
【図５】
2005222155.tif 000007
【図６】
2005222155.tif 000008
【図７】
2005222155.tif 000009
【図８】
2005222155.tif 000010
【図９】
2005222155.tif 000011
【図１０】
2005222155.tif 000012
【図１１】
2005222155.tif 000013
【図１２】
2005222155.tif 000014
【図１３】
2005222155.tif 000015
【図１４】
2005222155.tif 000016
【図１５】
2005222155.tif 000017
【図１６】
2005222155.tif 000018
【図１７】
2005222155.tif 000019
【図１８】
2005222155.tif 000020
【図１９】
2005222155.tif 000021
【図２０】
2005222155.tif 000022
【図２１】
2005222155.tif 000023
【図２２】
2005222155.tif 000024
【図２３】
2005222155.tif 000025
【図２４】
2005222155.tif 000026
【図２５】
2005222155.tif 000027
【図２６】
2005222155.tif 000028
【図２７】
2005222155.tif 000029
【図２８】
2005222155.tif 000030
【図２９】
2005222155.tif 000031
【図３０】
2005222155.tif 000032
【図３１】
2005222155.tif 000033
【図３２】
2005222155.tif 000034
【図３３】
2005222155.tif 000035
【図３４】
2005222155.tif 000036
【図３５】
2005222155.tif 000037
【図３６】
2005222155.tif 000038
【図３７】
2005222155.tif 000039
【図３８】
2005222155.tif 000040
【図３９】
2005222155.tif 000041
【図４０】
2005222155.tif 000042