実施の形態1.
以下、本発明の第1の実施の形態を図面を参照して説明する。 図1は、本発明による機密文書管理装置の構成の一例を示すブロック図である。本実施の形態において、機密文書管理装置は、パーソナルコンピュータなど情報処理装置によって実現される。
図1に示すように、機密文書管理装置には、例えば、ユーザが使用するパーソナルコンピュータの基本ソフトウェアであるOS1と、ユーザがOS1上で実行するプログラムであるアプリケーションソフトウェア2と、OS1からハードディスクなどのハードウェアにアクセスするためのデバイスアクセスソフトウェアであるファイルシステムデバイスドライバ03とが搭載されている。アプリケーションソフトウェア2として、ワードプロセッサやメーラなどのソフトウェアがある。
また、機密文書管理装置は、アプリケーションコンテキスト管理手段100およびフィルタドライバ管理手段を含む。アプリケーションコンテキスト管理手段100は、アプリケーション監視手段4、アプリケーション知識5、文書機密属性設定手段10およびアプリケーション状態管理手段6を含む。フィルタドライバ管理手段200は、秘文書ファイルアクセス制御手段7、暗号/復号手段8、機密文書取扱知識11および暗号/復号判定手段9を含む。
アプリケーション監視手段4は、ソフトウェアによって実現される。アプリケーション監視手段4は、OS1とアプリケーションソフトウェア2との間のメッセージを横取りすることによって、ユーザのキー操作などアプリケーションソフトウェア2上でのイベントを監視する。
なお、メッセージを横取りするとは、OS1からアプリケーションソフトウェア2に通知されるべきメッセージを、アプリケーション監視手段4が受け取ることをいう。また、本実施の形態では、「OS1が実行する」などの表現を用いるが、実際には、機密文書管理装置のCPUがOS1のソフトウェアに従って処理を実行する。このことは、他のソフトウェアやソフトウェアによって実現される手段についても同様である。
アプリケーション知識5は、アプリケーションソフトウェア2で発生するイベントと、イベントの意味との対応関係を記述したテーブルである。アプリケーション知識5は、例えば、機密文書管理装置の記憶装置(図示せず)に記憶される。
文書機密属性設定手段10は、ソフトウェアによって実現される。文書機密属性設定手段10は、文書に対して、ユーザの指示入力に従って、機密文書であることを示す属性を付与する。
アプリケーション状態管理手段6は、ソフトウェアによって実現される。アプリケーション状態管理手段6は、アプリケーション監視手段4で監視しているイベントの意味を、アプリケーション知識5を用いて決定することによって、各アプリケーションソフトウェア2の実行状態(コンテキスト)を推定する。また、アプリケーション状態管理手段6は、各アプリケーションソフトウェア2の実行状態の推定結果を記憶する。
秘文書ファイルアクセス制御手段7は、ソフトウェアによって実現される。秘文書ファイルアクセス制御手段7は、OS1とファイルシステムデバイスドライバ3との間のファイル読み込みデータやファイル書き込みデータを横取りする。また、秘文書ファイルアクセス制御手段7は、必要に応じて、暗号/復号手段8に文書を暗号化または復号させる。そして、秘文書ファイルアクセス制御手段7は、ファイルシステムデバイスドライバ3に、読み込みデータまたは書き込みデータを返す。
なお、ファイル読み込みデータまたは書き込みデータを横取りするとは、OS1とファイルシステムデバイスドライバ3との間で転送されるべき読み込みデータまたは書き込みデータを、秘文書ファイルアクセス制御手段7がファイルシステムデバイスドライバ3から受け取ることをいう。
暗号/復号手段8は、ソフトウェアによって実現される。暗号/復号手段8は、秘文書ファイルアクセス制御手段7からの要求に従って、暗号化されている文書を復号したり、暗号化されていない状態の文書を暗号化する。
機密文書取扱知識11は、文書への入出力(アクセス)と、文書への入出力があった場合の処理内容との対応関係を記述したテーブルである。機密文書取扱知識11は、文書への入出力があった場合に、機密情報を的確に守るため、文書を暗号化または復号すべきであるか否かを判定する際に用られる。機密文書取扱知識11は、例えば、機密文書管理装置の記憶装置に記憶される。
暗号/復号判定手段9は、ソフトウェアによって実現される。暗号/復号判定手段9は、アプリケーション状態管理手段6が記憶する各アプリケーションソフトウェア2の実行状態の推定結果にもとづいて、秘文書ファイルアクセス制御手段7がファイルシステムデバイスドライバ3から横取りしたファイルアクセスデータ(読み込みデータまたは書き込みデータ)の文書を、暗号化または復号すべきかを判定する。
図1に示す構成によって、機密文書管理装置は、ユーザがコンピュータから外部に機密文書を公開する場合には、機密文書を自動的に暗号化する。また、機密文書管理装置は、ユーザが機密文書をコンピュータ上のアプリケーションで利用する場合には、暗号化された機密文書を自動的に復号する。
本実施の形態において、アプリケーション実行状態推定手段は、アプリケーションコンテキスト管理手段100によって実現される。処理判断手段は、フィルタドライバ管理手段200によって実現される。イベント検出手段は、アプリケーション監視手段4によって実現される。アプリケーション情報記憶手段は、アプリケーション知識5を記憶する記憶装置によって実現される。文書機密属性付与手段は、文書機密属性設定手段10によって実現される。実行状態推定手段は、アプリケーション状態管理手段6によって実現される。
また、アクセス監視手段は、秘文書ファイルアクセス制御手段7によって実現される。暗号復号手段は、暗号/復号手段8によって実現される。処理情報記憶手段は、機密文書取扱知識11を記憶する記憶装置によって実現される。暗号復号判断手段は、暗号/復号判定手段9によって実現される。
また、本実施の形態において、機密文書管理装置の記憶装置は、機密情報の管理の処理を実行するための各種プログラムを記憶する。例えば、機密文書管理装置の記憶装置は、コンピュータに、オペレーティングシステムのメッセージにもとづいてアプリケーションソフトウェアの実行状態を推定するアプリケーション実行状態推定処理と、デバイスドライバを用いて文書へのアクセスを検出した場合に、実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する処理判断処理とを実行させる機密文書管理プログラムを記憶している。
次に、図1に示す各構成要素の機能および動作を説明する。OS1は、例えば、WindowsやUNIXなどの基本ソフトウェアである。本実施の形態では、OS1がWindowsである場合を例に説明する。なお、OS1は他の基本ソフトウェアでもよい。
本実施の形態では、OS1は、少なくとも以下の4つの機能を含む。OS1は、1つ目の機能として、アプリケーションソフトウェア2に、ウインドウシステム、ファイルシステムおよびプロセス管理などの基本機能を提供する。以下、OS1の1つ目の機能を単にOS機能1という。
また、OS1は、2つ目の機能として、アプリケーションソフトウェア2からファイルシステムへのジョブの依頼があった場合には、ファイルシステムデバイスドライバ3に仕事を依頼し、結果をアプリケーションソフトウェア2に返す機能を備える。以下、OS1の2つ目の機能を単にOS機能2という。
また、OS1は、3つ目の機能として、アプリケーションソフトウェア2のインスタンスを識別するためのプロセスIDと、各ウインドウを識別するために割り当てられた識別子であるウインドウハンドルとの対応関係を提供する機能を備える。以下、OS1の3つ目の機能を単にOS機能3という。例えば、ウインドウハンドルをパラメータとして、ウインドウを作成したプロセスのプロセスIDを特定することができる。
さらに、OS1は、4つ目の機能として、ウインドウハンドルにもとづいて、そのウインドウを開いているアプリケーションの種類を特定する機能を備える。以下、OS1の4つ目の機能を単にOS機能4という。例えば、Windowsの場合、アプリケーションごとにウインドウクラスと呼ばれるユニークな名前がある。この場合、OS1は、ウインドウクラスを利用してアプリケーションの種類を特定する。なお、アプリケーションの種類を特定する方法は、ウィンドウクラスを利用するものに限られない。例えば、UNIXの場合、アプリケーションの実行ファイルのパスなどを利用してもよい。
アプリケーションソフトウェア2は、ワードプロセッサ、メーラなどOS1上で実行されるプログラムである。ユーザは、このアプリケーションソフトウェア2を用いて、機密文書を作成したり機密文書を他者に公開する。例えば、ユーザは、アプリケーションソフトウェア2として、マイクロソフト株式会社のMicrosoft Wordなどを用いる。
本実施の形態では、説明を簡単にするために、各アプリケーションソフトウェア2のインスタンスを識別するIDとして、アプリケーションソフトウェア2のプロセスIDを用いる。ただし、ウインドウシステムではウインドウ単位に処理を行うので、ウインドウのIDであるウインドウハンドルを用いた方が管理しやすい場合がある。そのため、ウインドウ単位に処理を行う場合には、ウインドウハンドルを、アプリケーションのインスタンスを識別するために用いる。OS機能3を用いれば、ウインドウハンドルを対応するプロセスIDに変換できるので、プロセスIDおよびウインドハンドルのどちらを用いて管理しても本質的に変わらない。
ファイルシステムドライバ3は、OS1が外部記憶装置などのハードウェアにアクセスするためのソフトウェアである。また、ファイルシステムデバイスドライバ3は、データを仮想的にディレクトリとファイルとのツリー構造で管理するファイルシステムを実現するソフトウェアである。ファイルシステムデバイスドライバ3は、一般にデバイスドライバと呼ばれ広く知られている。
なお、ファイルシステムデバイスドライバ3は一般にOS1の機能の一部であるが、本実施の形態では、説明を分かりやすくするために、ファイルシステムデバイスドライバ3がOS1とは別の構成要素であるとして説明する。
アプリケーション監視手段4は、OS1とアプリケーションソフトウェア2との間のやりとりを監視する。まず、OS1とアプリケーションソフトウェア2との間で通常行われるやりとりを説明する。
OS1は、OS1内部の状態をアプリケーションソフトウェア2に伝えるために、イベントの発生を示すメッセージ(以下、イベントメッセージという)をアプリケーションソフトウェア2に発行する。例えば、ユーザがメニューからある項目を選択すると、OS1は、メニューから項目が選択された旨のイベントメッセージを、アプリケーションソフトウェア2に発行する。
図2は、イベントメッセージのフォーマットの例を示す説明図である。図2に示すように、イベントメッセージは、イベント名4101、ウインドウハンドル4102およびパラメータ4103を含む。イベント名4101は、イベントの種類を区別するための名前である。イベントは、キーボードの入力、マウスの移動、メニューの選択、ウインドウ操作など様々な種類がある。これらのイベントの種類は、OS1で定義されている。
ウインドウハンドル4102は、イベントが発生したウインドウのウインドウハンドルである。パラメータ4101は、イベントの各種パラメータを、「属性=値」の形式で属性と値とのペアの集合で表現したものである。
なお、図2に示すフォーマットは一例であり、イベントメッセージは他のフォーマット形式であってもよい。また、図2に示すフォーマット例では、説明を簡単にするためにデータが日本語表記であるものとして説明するが、実際には、イベントメッセージに含まれるデータは、OS1によってコード化されている。
図2に示す例では、イベントについて、「メニューを選択」というイベントがウインドウハンドル「1234」のウインドウで発生していることを意味している。また、選択されたメニューのラベルには「開く」と記述されていることを意味している。また、「マウス」を用いてメニューが選択されたことを意味している。
また、アプリケーションソフトウェア2は、OS1からのイベントメッセージに対して、どのような処理をすればよいかプログラミングされている。なお、イベントメッセージに対する処理のプログラミングは、イベントドリブンプログラミングと呼ばれている。
アプリケーション監視手段4は、OS1からアプリケーションソフトウェア2に通知されるべきイベントメッセージを横取りする。イベントメッセージのルートを変更する機能は「イベントフック」と呼ばれる。アプリケーション監視手段4は、例えば、OS1が標準に備えるイベントフックインタフェースの機能を利用して、イベントメッセージを受け取る。
アプリケーション監視手段4は、横取りしたイベントメッセージについて、以下の2つの処理を行う。1つ目の処理として、アプリケーション監視手段4は、アプリケーションソフトウェア2にイベントメッセージを転送する(処理1)。処理1が実行されることによって、アプリケーションソフトウェア2は、OS1からイベントメッセージを直接受け取れなくても処理を継続できる。
また、2つ目の処理として、アプリケーション監視手段4は、アプリケーション状態管理手段6にイベントメッセージを転送する(処理2)。処理2が実行されることによって、アプリケーション状態管理手段6は、イベントメッセージにもとづいて各アプリケーションソフトウェア2の実行状態を推定し、実行状態の推定結果を記憶する。
文書機密属性設定手段10は、各アプリケーションソフトウェア2で開いている文書に対して、ユーザの指示入力に応じて機密文書であることを示す属性を付与する。本実施の形態では、文書の属性として、「機密」と「通常」との2種類が用いられる。ここで、「機密」は、機密文書であることを示す属性である。また、「通常」は、機密文書でないことを示す属性である。なお、文書の属性として、更に細分化した機密区分を用いてもよい。
本実施の形態では、新規に文書作成される場合、機密文書管理装置は、属性を「通常」として文書を作成する。機密文書として扱いたい場合には、文書機密属性設定手段10を用いて、機密文書である旨をユーザが入力する。なお、機密文書から通常文書に容易に戻すことができると、故意に機密文書を通常の文書に戻して情報を漏洩される恐れがあるので、一度機密文書の属性が付与されると通常の文書に戻せないようにする。なお、運用上、厳しい承認チェックなどを行うことによって、機密文書を通常の文書に戻せるようにしてもよい。
図3は、ユーザが文書機密属性設定手段10を利用する場合の利用方法の例を示す説明図である。例えば、図3に示すように、機密文書管理装置は、アプリケーションソフトウェアが開いているウインドウであるアプリケーションウインドウ10101と、文書機密属性設定手段10のユーザインタフェースである秘文書アイコン10102とを表示部に表示させる。図3に示すように、文書機密属性設定手段10は、ユーザインタフェースとして、画面上にアイコンだけを表示している。ユーザは、秘文書アイコン10102をマウスを用いてドラッグアンドドロップすることによって、機密文書であることを示す属性付与を指示入力できる。
秘文書アイコン10102は、OS1によってIDが割り当てられている。文書機密属性設定手段10は、機密文書管理装置の各手段からアクセスできるように、グローバル変数として、秘文書アイコン10102のアイコンIDを記憶する。以下、秘文書アイコン10102のIDを秘文書アイコンIDという。
図3に示す例では、ユーザが秘文書アイコン10102をウインドウ10101にドロップすると、ドロップされたウインドウ10101の文書に機密文書の属性が付与される。秘文書アイコン10102がドロップされると、機密文書管理装置は、以下の内部動作を行う。
WindowsなどのGUI(Graphical User Interface)を用いる場合、アイコンをドロップすると、ドロップされたウインドウにイベントが発生する。すなわち、ドロップしたアイコンのIDとドロップ先のウインドウハンドルとをパラメータとして、アイコンをドロップしたことを意味するイベントが発生する。以下、ドロップ時に発生するイベントをドロップイベントという。
ドロップイベントのイベントメッセージは、他のイベントメッセージと同様に、アプリケーション監視手段04によって横取りされて、アプリケーション状態管理手段6に転送される。アプリケーション状態管理手段6は、各文書の機密区分も管理項目の1つとして管理している。ドロップイベントのイベントメッセージが転送されると、アプリケーション状態管理手段6は、文書の機密区分を更新する。
アプリケーション知識5は、アプリケーションソフトウェア2で発生しうるイベントと、イベントの意味との対応関係を示したテーブルである。例えば、「Ctrl」キーを押しながら「S」キーを押すというイベントは、あるアプリケーションソフトウェア2では上書き保存を意味するが、別のアプリケーションソフトウェア2ではメール送信を意味する場合がある。すなわち、イベントの意味は、アプリケーションソフトウェア2を作成したプログラマの設計に依存する。イベントの意味がアプリケーションごとに異なるので、アプリケーションごとに知識を用意する必要がある。従って、アプリケーション状態管理手段6がアプリケーション知識5を用いてイベントの意味を決定することは、アプリケーションソフトウェア2の実行状態を推定することに相当する。また、アプリケーション知識5を用いてアプリケーション状態管理手段6が決定したものが、アプリケーションソフトウェア2の実行状態の推定結果に相当する。
図4は、アプリケーション知識5の例を示す説明図である。図4に示すように、アプリケーション知識5は、アプリケーション名5101と、イベント名5102と、パラメータ(イベントパラメータ)5013と、操作意味5104とを対応付けて含む。アプリケーション名5101は、アプリケーションの種類を特定する名前である。例えば、アプリケーション知識5は、アプリケーション名5101としてウインドウクラスを含む。
イベント名5102は、イベントの種類を区別するための名前であり、図2に示すイベント名4101と同じものである。パラメータ5103は、イベントの各種パラメータであり、図2に示すパラメータ4101と同じものである。操作意味5104は、アプリケーションの機能を記述したものである。操作意味5104として、通常メニュー項目が機能名である一覧メニューの各項目を用いればよい。
なお、図4に示すフォーマットは一例であり、イベントメッセージのフォーマットとの整合性があれば、アプリケーション知識5のフォーマットとして他の形式のものを用いてもよい。
図4に示す例では、例えば、アプリケーション知識5の第1レコードは、Microsoft Word上でラベルが「保存」であるメニューを選択するイベントの場合、そのイベントの意味が「文書を保存する」であることを示す。
アプリケーション状態管理手段6は、アプリケーションソフトウェア2の実行状態を推定するとともに、アプリケーションソフトウェア2ごとの実行状態を含むテーブルを記憶する。以下、アプリケーション状態管理手段6が記憶するテーブルを、アプリケーション状態テーブルという。図5は、アプリケーション状態テーブルの例を示す説明図である。図5に示すように、アプリケーション状態テーブルは、ウインドウハンドル6101、機密区分6102および操作意味6103のフィールドを含むテーブルである。
ウインドウハンドル6101は、アプリケーション監視手段4から転送されたイベントメッセージのイベントが発生したウインドウのウインドウハンドルである。機密区分6102は、文書を公開する範囲を示す情報である。本実施の形態では、機密区分61は、アプリケーションソフトウェア2上で扱っている文書が機密情報を含んでいるか否かを示す属性である。本実施の形態では、文書機密属性設定手段10において「秘密」および「通常」の2種類の属性を用いるので、機密区分6102は、「秘密」または「通常」のいずれかである。操作意味6103は、アプリケーションソフトウェア2上で最近実行されたアプリケーション機能の機能名である。なお、アプリケーション状態テーブルが含む操作意味6103は、アプリケーション知識05の操作意味5104と同じものである。
アプリケーション状態管理手段6は、アプリケーション監視手段4からイベントメッセージが転送されると、アプリケーション状態テーブルを更新する。図6は、アプリケーション状態管理手段6がアプリケーション状態テーブルを更新する処理経過の一例を示す流れ図である。
アプリケーション監視手段4からイベントメッセージが転送されると、アプリケーション状態管理手段6は、転送されたイベントメッセージに対応するイベントがドロップイベントであるか否かを判断する(ステップS61)。ドロップイベントであると判断した場合には、アプリケーション状態管理手段6は、ステップS62を実行する。ドロップイベントでないと判断した場合には、アプリケーション状態管理手段6は、ステップS64を実行する。
ドロップイベントであると判断した場合には、アプリケーション状態管理手段6は、イベントメッセージのパラメータに含まれるアイコンIDが秘文書アイコンIDであるか否かを判断する(ステップS62)。秘文書アイコンIDであると判断した場合には、アプリケーション状態管理手段6は、ステップS63を実行する。秘文書アイコンIDでないと判断した場合には、アプリケーション状態管理手段6は、ステップS64を実行する。
アイコンIDが秘文書アイコンIDであると判断した場合には、アプリケーション状態管理手段6は、アプリケーション状態テーブルの機密区分を「秘密」にする(ステップS63)。すなわち、ステップS63に制御が移行した場合には、機密区分を「秘密」に変更するための操作を、ユーザが文書機密属性設定手段10を用いて行ったことを意味している。この場合、ステップS63において、アプリケーション状態管理手段6は、転送されたイベントメッセージに含まれるウインドウハンドルにもとづいて、アプリケーション状態テーブルのレコードのうち、転送されたイベントメッセージに対応するレコードの機密区分を「秘密」に変更する。
ステップS63において、転送されたイベントメッセージに対応するレコードがアプリケーション状態テーブルにない場合には、アプリケーション状態管理手段6は、新規にレコードを作成し、ウインドウハンドルおよび機密区分を更新する。また、ステップS63において、アプリケーション状態管理手段6は、操作意味を「機密区分の変更」としてアプリケーション状態テーブルを更新する。ステップS63を実行すると、アプリケーション状態管理手段6は、処理を終了する。
転送されたイベントメッセージがドロップイベントのものでないと判断した場合、またはドロップイベントのものであるが転送されたイベントメッセージに含まれるパラメータのアイコンIDが秘文書アイコンIDでないと判断した場合には、アプリケーション状態管理手段6は、転送されたイベントメッセージに対応するイベントのアプリケーション名を特定する(ステップS64)。ステップS64において、アプリケーション状態管理手段6は、転送されたイベントメッセージに含まれるウインドウハンドルにもとづいて、OS機能4を用いて、ウインドウを開けているアプリケーションソフトウェア2のアプリケーション名を特定する。
アプリケーション状態管理手段6は、特定したアプリケーション名と、転送されたイベントメッセージに含まれるイベント名とをキーとして、アプリケーション知識5を検索する(ステップS65)。アプリケーション状態管理手段6は、アプリケーション名およびイベント名の条件に合致するレコードがアプリケーション知識5に含まれるか否かを判断する(ステップS66)。合致するレコードが含まれないと判断した場合には、アプリケーション状態管理手段6は、処理を終了する。
合致するレコードが含まれると判断した場合には、アプリケーション状態管理手段6は、検索されたレコードに含まれる操作意味(最終実行コマンド)を一時的に記憶する。なお、イベント名とパラメータとが同じであれば操作意味が1つに決まるので、アプリケーション知識が矛盾無く記述されていれば、検索結果が複数のレコードを含むことはない。
最終実行コマンドを記憶すると、アプリケーション状態管理手段6は、アプリケーション状態テーブルを更新する(ステップS67)。アプリケーション状態管理手段6は、アプリケーション状態テーブルのレコードのうち、転送されたイベントメッセージに含まれるウインドウハンドルに対応するレコードを特定する。そして、アプリケーション状態管理手段6は、特定したレコードの操作意味を更新する。ウインドウハンドルに対応するレコードが含まれなかった場合には、アプリケーション状態管理手段6は、新たにレコードを追加する。そして、アプリケーション状態管理手段6は、追加したレコードのウインドウハンドル、秘密区分および操作意味を設定し処理を終了する。
秘文書ファイルアクセス制御手段7は、2つの機能を備える。秘文書ファイルアクセス制御手段7は、ファイルシステムデバイスドライバ3のファイル読み込みデータまたはファイル書き込みデータを横取りする機能を備える。以下、横取りしたファイル読み込みデータまたはファイル書き込みデータを横取りデータという。また、秘文書ファイルアクセス制御手段7は、横取りデータの処理のメイン制御を行う。
データを横取りする機能は、OSが標準で備えるフィルタドライバと呼ばれる機能を用いて実装できる。フィルタドライバとは、デバイスドライバを介してハードウェアからOSに流れるデータを、外部のプログラムから横取りして加工し、加工後のデータをOSに返す機能である。
本実施の形態では、秘文書ファイルアクセス制御手段7は、ファイルシステムデバイスドライバ3がハードウェアから読み出した読み出しデータを横取りして文書を加工し、加工後のデータをOSに返す。また、秘文書ファイルアクセス制御手段7は、ファイルシステムデバイスドライバ3に転送されるべき書き込みデータを横取りして文書を加工する。そして、加工後の文書をファイルシステムデバイスドライバ3に返す。
なお、前述したように、本実施の形態では、説明を分かりやすくするために、ファイルシステムデバイスドライバ3がOS1とは別の構成要素であるとして説明するので、秘文書ファイルアクセス制御手段7は、ファイルシステムデバイスドライバ3からデータを横取りし、ファイルシステムデバイスドライバ3に加工後のデータを返すと表現して以下説明を行う。
秘文書ファイルアクセス制御手段7は、フィルタドライバを利用して、横取りデータの一部として、プロセスIDおよび処理の種類の情報も得る。プロセスIDとは、ファイルシステムへの処理を要求したアプリケーションソフトウェア2のプロセスのIDである。処理の種類とは、ハードディスクからデータを読み込む処理(READ処理)であるか、またはハードディスクにデータを書き込む処理(WRITE処理)であるかの別である。
次に、秘文書ファイルアクセス制御手段7が横取りデータの処理のメイン制御を行う機能について説明する。秘文書ファイルアクセス制御手段7は、まず横取りデータを解析する。データ解析は、横取りデータに含まれる文書が暗号化されていない文書であるか、または暗号化されている文書であるかを判定し、暗号化されている場合には横取りデータから暗号キーの情報と本文データとを抽出するものである。なお、秘文書ファイルアクセス制御手段7は、後述するように、横取りデータに含まれる文書が暗号化されているか否かの判断を、暗号/復号判定手段9に実行させる。
図7は、横取りデータに含まれる本文データのフォーマットの例を示す説明図である。図7に示すように、本文データは、マジックナンバ7101、暗号キー7102および本文7103のフィールドを含む。マジックナンバ7101は、暗号化されていることを示す記号である。例えば、本文データは、マジックナンバ7101として、システム名などの固有名称を含む。暗号キー7102は、暗号化した際の暗号キーの情報である。本文7103は、暗号化された文書本文である。
なお、図7に示す例では、本文データが暗号化された文書本文を含む場合について説明したが、文書が暗号化されていない場合には、本文データは、暗号化されていない文書本文のみを含む。
秘文書ファイルアクセス制御手段7は、暗号/復号判定手段9に、文書を暗号化または復号する必要があるか否かを判断させる。暗号化または復号する必要があると判断された場合には、秘文書ファイルアクセス制御手段7は、暗号/復号手段8に、文書を暗号化または復号させる。そして、秘文書ファイルアクセス制御手段7は、ファイルシステムデバイスドライバ3に、加工後の横取りデータを返す一連の処理を制御する。
暗号/復号手段8は、例えば、DES(Data Encryption Standard)などを用いたライブラリを利用して、文書を暗号化または復号する。暗号/復号手段8は、暗号化されていない文書を入力すると、暗号キーを生成して文書本文を暗号化する。そして、暗号/復号手段8は、生成した暗号文および暗号キーの情報を秘文書ファイルアクセス制御手段7に返す。また、暗号/復号手段8は、暗号文および暗号キーの情報を入力すると、暗号文を復号して得られた文書本文を秘文書ファイルアクセス制御手段7に返す。
図8は、機密文書取扱知識11の例を示す説明図である。図8に示すように、機密文書取扱知識11は、アプリケーション名11101と、機密区分11102と、操作意味11103と、ドライバ実行コマンド11104と、処理方法11105とを対応付けて含む。機密文書取扱知識11は、ユーザによって予め登録される。
アプリケーション名11101は、アプリケーション知識5に含まれるアプリケーション名5101と同様に、アプリケーションの種類を特定する名前である。例えば、機密文書取扱知識11は、アプリケーション名11101としてウインドウクラスを含む。機密区分11102は、アプリケーション状態テーブルに含まれる機密区分6102と同様に、文書を公開する範囲を示す情報である。また、本実施の形態では、機密区分11102は、「秘密」または「通常」のいずれかである。操作意味11103は、アプリケーション知識5に含まれる操作意味5104と同様に、アプリケーションの機能を記述したものである。
ドライバ実行コマンド11104は、ファイルシステムデバイスドライバ3の処理の種類である。本実施の形態では、ハードディスクからの文書の読み出しを意味する「READ」と、ハードディスクへの文書の書き込みを意味する「WRITE」との2種類がある。
処理方法11105は、ファイルシステムデバイスドライバ3からの横取りデータに含まれる文書を、どのように処理するかの処理方法を示す情報である。機密文書取扱知識11は、処理方法11105として、文書を暗号化すべきであるか、復号すべきであるか、または何も加工する必要がないかを示す情報を含む。本実施の形態では、機密文書取扱知識11は、文書を暗号化すべきである場合には処理方法11105「暗号化」を含み、復号すべきである場合には処理方法11105「復号」を含み、何も加工する必要がない場合には処理方法11105「処理不要」を含む。
なお、機密文書取扱知識11は、機密区分11102として、必ず「秘密」または「通常」のいずれかを含む必要はない。図8において、機密区分11102が「*」であるレコードは、機密区分が設定されていないことを示す。機密区分11102「*」であるレコードでは、機密区分が「秘密」である文書に対しても「通常」である文書に対しても、処理方法11105の処理が実行されるべきことを意味している。
図8に示す例では、例えば、機密文書取扱知識11の第1レコードは、アプリケーション「Microsoft Word」上で「秘密」の文書を保存するという操作がユーザによって行われたことにより、「WRITE」の要求がされた場合には、暗号化を行うべきことを意味している。また、機密文書取扱知識11の第2レコードは、アプリケーション「Outlook(登録商標)」上で文書を添付するという操作がユーザによって行われたことにより、「READ」の要求がされた場合には、機密区分が「秘密」であるか「通常」であるかにかかわらず、何も処理をせずにファイルシステムデバイスドライバ3に横取りデータを返すべきことを意味している。
暗号/復号判定手段9は、アプリケーション状態テーブルの更新部分と、機密文書取扱知識11とにもとづいて、プロセスIDとドライバ実行コマンドとの組ごとに、ファイルシステムデバイスドライバ3からの横取りデータに含まれうる文書の処理方法を特定する。そして、暗号/復号判定手段9は、特定した処理方法を含む暗号復号判定テーブルを生成し記憶する。
図9は、暗号復号判定テーブルの例を示す説明図である。図9に示すように、暗号復号判定テーブルは、プロセスID9101とドライバ実行コマンド9102との組ごとに、データの処理方法を含む。ドライバ実行コマンド9102は、「READ」または「WRITE」のいずれかである。本実施の形態では、プロセスID9102とドライバ実行コマンド9102との組によって定まる暗号復号判定テーブルの各セルには、ファイルシステムデバイスドライバ3からの横取りデータに含まれる文書の処理方法として、「暗号化」、「復号」または「処理不要」のいずれかが設定される。図9では、例えば、プロセスID「1234」のプロセスの「READ」要求である場合には、文書を復号すべきことを意味している。
暗号/復号判定手段9は、アプリケーション状態管理手段6の実行状態に変化があったことをトリガとして、暗号復号判定テーブルを更新する。すなわち、アプリケーション状態テーブルが更新されると、暗号/復号判定手段9は、暗号復号判定テーブルを更新する。
図10は、暗号/復号判定手段9が暗号復号判定テーブルを更新する処理経過の一例を示す流れ図である。アプリケーション状態管理手段6は、アプリケーション状態テーブルを更新すると、更新した箇所のウインドウハンドル、秘密区分および操作意味を暗号/復号判定手段9に転送する。暗号/復号判定手段9は、転送されたウインドウハンドルにもとづいて、OS機能4を用いてアプリケーション名を特定する(ステップS91)。暗号/復号判定手段9は、アプリケーション名、秘密区分および操作意味をキーとして、機密文書取扱知識11を検索する(ステップS92)。
暗号/復号判定手段9は、機密文書取扱知識11のレコードのうち、アプリケーション名、秘密区分および操作意味の条件に合致するレコードがあるか否かを判断する(ステップS93)。この場合、ドライバ実行コマンドが「READ」および「WRITE」の2つのレコードが検索される。条件に合致するレコードがあると判断した場合には、暗号/復号判定手段9は、ステップS94を実行する。条件に合致するレコードがないと判断した場合には、暗号復号判定テーブルを更新する必要がないことを意味するので、暗号/復号判定手段9は、処理を終了する。
合致するレコードがあると判断した場合には、暗号/復号判定手段9は、ウインドウハンドルにもとづいて、OS機能3を用いてプロセスIDを特定する(ステップS94)。そして、暗号/復号判定手段9は、検索されたレコードに含まれるドライバ実行コマンドと特定されたプロセスIDとの組のセルの内容を、検索されたレコードに含まれる処理方法11105の内容に更新する(ステップS95)。
次に、機密文書管理装置が行う機密文書管理の全体の動作を図面を参照して説明する。図11は、機密文書管理装置が行う機密文書管理の全体処理の処理経過の一例を示す流れ図である。図11に示すように、本実施の形態では、アプリケーションユーザ操作ステップ(ステップS101)、OSイベント発生ステップ(ステップS102)、イベントフックステップ(ステップS103)、アプリケーション状態テーブル更新ステップ(ステップS104)、暗号復号判定テーブル更新ステップ(ステップS105)、ファイルシステムアクセス判定ステップ(ステップS106)、ファイルシステムデバイスドライバコマンド要求ステップ(ステップS107)、デバイスコマンドフックステップ(ステップS108)、暗号復号判定テーブルマッチングステップ(ステップS109)、暗号復号判定ステップ(ステップS110)、暗号復号処理ステップ(ステップS111)およびファイルシステムデバイスドライバコマンド実行ステップ(ステップS112)を含む。
アプリケーションユーザ操作ステップでは、ユーザは、アプリケーションが提供している機能を実行する。OSイベント発生ステップでは、アプリケーションユーザ操作ステップを受けて、OS1の機能を用いてアプリケーションソフトウェア2に対してイベントメッセージを発生させる。イベントフックステップでは、OSイベント発生ステップで発生させたイベントメッセージをアプリケーション監視手段04が横取りする。アプリケーション状態テーブル更新ステップでは、イベントフックステップで横取りしたイベントメッセージを解析し、アプリケーションソフトウェア2の実行状態を推定し記憶する。暗号復号判定テーブル更新ステップでは、アプリケーション状態テーブルステップを受けて、アプリケーションソフトウェアからファイルシステムへのアクセスがあった場合に、文書の暗号または復号処理を実行すべきか否かを判定する。
ファイルシステムアクセス判定ステップでは、アプリケーションユーザ操作ステップでのユーザ操作がファイルシステムへのアクセスであるか否かを判定する。ファイルシステムデバイスドライバコマンド要求ステップでは、ファイルシステムアクセス判定ステップの結果、ファイルシステムへのアクセスである場合に、OSからファイルシステムへのコマンドを発行する。デバイスコマンドフックステップでは、ファイルシステムデバイスドライバコマンド要求ステップでのコマンドを、ファイルシステムデバイスドライバ3から横取りする。
暗号復号判定テーブルマッチングステップでは、デバイスコマンドフックステップで横取りしたコマンドを、暗号復号判定テーブル更新ステップで更新した暗号復号判定テーブルと照合する。暗号・復号判定ステップでは、暗号復号判定テーブルマッチングステップの照合結果にもとづいて、そのコマンドで扱っている文書を暗号化または復号すべきであるか否かを判定する。暗号復号処理ステップでは、暗号復号判定ステップの結果、暗号する必要があると判断した場合に、文書を暗号化または復号する。ファイルシステムデバイスドライバコマンド実行ステップでは、暗号化または復号した文書を含むデータ、若しくは何も処理されなかったデータを用いてファイルシステムへのアクセス結果をアプリケーションソフトウェア2に返す。
本実施の形態では、以下の各利用シーンに場合を分けて、それぞれ機密文書管理の全体の動作を説明する。利用シーン1として、ユーザが新規に文書を作成して保存するまでのシーンついて説明する。また、利用シーン2として、利用シーン1で保存した文書をワードプロセッサ「Micorosoft Word」で開くシーンについて説明する。また、利用シーン3として、利用シーン1で保存した文書をメーラ「Outlook」で添付メールとして読み込むシーンについて説明する。
さらに、利用シーン1については、各ユーザ操作ごとに場合を分けて説明する。1つ目のユーザ操作として、ワードプロセッサ「Micorosoft Word」で新規に文書を作成する操作(以下、ユーザ操作1−1という)について説明する。また、2つ目のユーザ操作として、作成した文書の機密区分を「秘密」にする操作(以下、ユーザ操作1−2という)について説明する。また、3つ目のユーザ操作として、作成した文書を保存してアプリケーションを終了する操作(以下、ユーザ操作1−3という)について説明する。
まず、利用シーン1のユーザ操作1−1を行う場合の全体動作を、図11を用いて説明する。ユーザは、機密文書管理装置を操作して、アプリケーションソフトウェア2を用いて、「新規作成」メニューを選択する(ステップS101)。なお、本例では、ワードプロセッサのアプリケーションソフトウェア2のウインドウハンドルが「9999」であるとする。
OS1は、イベントメッセージを発生させる(ステップS102)。本例では、OS1は、新規作成メニュー操作イベントのイベントメッセージを発生させる。図12は、新規作成メニュー操作イベントのイベントメッセージの例を示す説明図である。図12に示すように、イベントメッセージは、イベント名「メニューを選択」、ウインドウハンドル「9999」およびパラメータ「ラベル=新規作成」を含む。図12に示す例では、イベントについて、メニュー操作がウインドウハンドル「9999」のウインドウで発生し、メニューのラベルが「新規作成」であることを意味している。
アプリケーション監視手段4は、イベントメッセージを横取りする(ステップS103)。すなわち、図12に示すイベントメッセージがアプリケーション監視手段4に転送される。そして、アプリケーション監視手段4は、イベントメッセージをアプリケーション状態管理手段6に転送する。
アプリケーション状態管理手段6は、図6に示す手順に従って、アプリケーション状態テーブルを更新する(ステップS104)。図6に示すステップS61において、アプリケーション状態管理手段6は、イベントの種類がドロップイベントではないと判断する。アプリケーション状態管理手段6は、OS機能4を用いて、ウインドウハンドルにもとづいてアプリケーション名を特定する(ステップS64)。本例では、アプリケーション状態管理手段6は、ウインドウハンドル「9999」にもとづいて、アプリケーション名「Micorosoft Word」を特定する。
アプリケーション状態管理手段6は、アプリケーション名「Micorosoft Word」、イベント名「メニューを選択」およびパラメータ「ラベル=新規作成」を条件として、アプリケーション知識5を検索する(ステップS65,S66)。図4に示すアプリケーション知識5の場合、第2レコードのアプリケーション名5101、イベント名5102およびパラメータ5103が条件に合致するので、第2レコードが検索される。
そして、アプリケーション状態管理手段6は、検索結果にもとづいてアプリケーション状態テーブルを更新する(ステップS67)。図13は、更新されたアプリケーション状態テーブルの例を示す説明図である。図13に示すように、アプリケーション状態管理手段6は、ウインドウハンドル「9999」を含むレコードの操作意味を「文書を新規に作成」に更新する。
アプリケーション状態管理手段6は、アプリケーション状態テーブルの更新部分を暗号/復号判定手段9に転送する。更新部分が転送されると、暗号/復号判定手段9は、図10に示す手順に従って、必要がある場合には、暗号復号判定テーブルを更新する(ステップS105)。
図10に示すステップS91において、暗号/復号判定手段9は、ウインドウハンドルにもとづいてアプリケーション名を特定する。暗号/復号判定手段9は、アプリケーション名「Micorosoft Word」、機密区分「通常」および操作意味「文書を新規に作成」を条件として、機密文書取扱知識11を検索する(ステップS92,S93)。
図8に示す機密文書取扱知識11の場合、条件に合致するレコードがないので、暗号/復号判定手段9は、暗号復号判定テーブルを更新することなく処理を終了する。すなわち、新規作成という操作は、ファイルシステムにアクセスする操作でないので、暗号復号判定テーブルを更新する必要がない。そのため、機密文書取扱知識11に新規作成についての情報はユーザによって予め登録されない。従って、本例では、暗号/復号判定手段9は、暗号復号安定テーブルを更新することなく処理を終了する。
OS1は、ユーザ操作がファイルシステムへのアクセスであるか否かを判断する(ステップS106)。本例では、OS1は、ユーザ操作がファイルシステムへのアクセスではないと判断するので、処理を終了する。
次に、利用シーン1のユーザ操作1−2を行う場合の全体動作を、図11を用いて説明する。ユーザは、文書機密属性設定手段10を用いて、ユーザ操作1−1で作成した文書を機密文書にするために、文書を開いているウインドウに秘文書アイコン10102をドロップする(ステップS101)。
OS1は、ドロップイベントのイベントメッセージを発生させる(ステップS102)。図14は、ドロップイベントのイベントメッセージの例を示す説明図である。図14に示すように、イベントメッセージは、イベント名「ドロップ」、ウインドウハンドル「9999」およびパラメータ「アイコンID=秘文書アイコンID」を含む。図14に示す例では、イベントについて、ドロップ操作がウインドウハンドル「9999」のウインドウで発生し、アイコンIDが秘文書アイコンIDであることを意味する。
アプリケーション監視手段4は、イベントメッセージを横取りする(ステップS103)。すなわち、図14に示すイベントメッセージがアプリケーション監視手段4に転送される。そして、アプリケーション監視手段4は、イベントメッセージをアプリケーション状態管理手段6に転送する。
アプリケーション状態管理手段6は、図6に示す手順に従って、アプリケーション状態テーブルを更新する(ステップS104)。図6に示すステップS61において、アプリケーション状態管理手段6は、イベントの種類がドロップイベントであると判断する。(S06101)。また、ステップS62において、アプリケーション状態管理手段6は、アイコンIDが秘文書アイコンIDであると判断する。
そして、アプリケーション状態管理手段6は、ステップS63において、ウインドウハンドル「9999」に対応するレコードの機密区分を「秘密」に更新する。図15は、アプリケーション状態テーブルの更新例を示す説明図である。図15に示すように、アプリケーション状態管理手段6は、ウインドウハンドル「9999」を含むレコードの機密区分を「通常」から「秘密」に変更する。
アプリケーション状態テーブルの更新部分が転送されると、暗号/復号判定手段9は、図10に示す手順に従って、必要がある場合には、暗号復号判定テーブルを更新する(ステップS105)。暗号/復号判定手段9は、ウインドウハンドルにもとづいてアプリケーション名を特定する(ステップS91)。暗号/復号判定手段9は、アプリケーション名「Micorosoft Word」、機密区分「機密」および操作意味「文書を新規に作成」を条件として、機密文書取扱知識11を検索する(ステップS92,S93)。
図8に示す機密文書取扱知識11の場合、条件に合致するレコードがないので、暗号/復号判定手段9は、暗号復号判定テーブルを更新することなく処理を終了する。すなわち、新規作成という操作は、ファイルシステムにアクセスする操作でないので、暗号復号判定テーブルを更新する必要がない。そのため、機密文書取扱知識11に新規作成についての情報はユーザによって予め登録されない。従って、本例では、暗号/復号判定手段9は、暗号復号安定テーブルを更新することなく処理を終了する。
OS1は、ユーザ操作がファイルシステムへのアクセスであるか否かを判断する(ステップS106)。本例では、OS1は、ユーザ操作がファイルシステムへのアクセスではないと判断するので、処理を終了する。
次に、利用シーン1のユーザ操作1−3を行う場合の全体動作を、図11を用いて説明する。ユーザは、機密文書管理装置を操作して、アプリケーションソフトウェア2を用いて、「保存終了」メニューを選択する(ステップS101)。
OS1は、保存終了メニュー操作イベントのイベントメッセージを発生させる(ステップS102)。図16は、保存終了メニュー操作イベントのイベントメッセージの例を示す説明図である。図16に示すように、イベントメッセージは、イベント名「メニューを選択」、ウインドウハンドル「9999」およびパラメータ「ラベル=保存終了」を含む。図16に示す例では、イベントについて、メニュー操作がウインドウハンドル「9999」のウインドウで発生し、メニューのラベルが「保存終了」であることを意味する。
アプリケーション監視手段4は、イベントメッセージを横取りする(ステップS103)。すなわち、図16に示すイベントメッセージがアプリケーション監視手段4に転送される。そして、アプリケーション監視手段4は、イベントメッセージをアプリケーション状態管理手段6に転送する。
アプリケーション状態管理手段6は、図6に示す手順に従って、アプリケーション状態テーブルを更新する(ステップS104)。図6に示すステップS61において、アプリケーション状態管理手段6は、イベントの種類がドロップイベントではないと判断する。アプリケーション状態管理手段6は、OS機能4を用いて、ウインドウハンドルにもとづいてアプリケーション名を特定する(ステップS64)。本例では、アプリケーション状態管理手段6は、ウインドウハンドル「9999」にもとづいて、アプリケーション名「Micorosoft Word」を特定する。
アプリケーション状態管理手段6は、アプリケーション名「Micorosoft Word」、イベント名「メニューを選択」およびパラメータ「ラベル=保存終了」を条件として、アプリケーション知識5を検索する(ステップS65,S66)。図4に示すアプリケーション知識5の場合、第3レコードのアプリケーション名5101、イベント名5102およびパラメータ5103が条件に合致するので、第3レコードが検索される。
そして、アプリケーション状態管理手段6は、検索結果にもとづいてアプリケーション状態テーブルを更新する(ステップS67)。図17は、アプリケーション状態テーブルの他の更新例を示す説明図である。図17に示すように、アプリケーション状態管理手段6は、ウインドウハンドル「9999」を含むレコードの操作意味を、「文書を新規に作成」から「文書を保存し終了」に更新する。
アプリケーション状態管理手段6は、アプリケーション状態テーブルの更新部分を暗号/復号判定手段9に転送する。更新部分が転送されると、暗号/復号判定手段9は、図10に示す手順に従って、必要がある場合には、暗号復号判定テーブルを更新する(ステップS105)。
図10に示すステップS91において、暗号/復号判定手段9は、ウインドウハンドルにもとづいてアプリケーション名を特定する。暗号/復号判定手段9は、アプリケーション名「Micorosoft Word」、機密区分「秘密」および操作意味「文書を保存し終了」を条件として、機密文書取扱知識11を検索する(ステップS92,S93)
図8に示す機密文書取扱知識11の場合、第3レコードおよび第4レコードが条件に合致する。暗号/復号判定手段9は、検索結果が存在すると判断して、OS機能3を用いて、ウインドウハンドル「9999」のプロセスIDを特定する(ステップS94)。本例では、文書のプロセスIDが「9876」であるとする。
暗号/復号判定手段9は、暗号復号判定テーブルを更新する(ステップS95)。図18は、更新された暗号復号判定テーブルの例を示す説明図である。図18に示すように、暗号/復号判定手段9は、プロセスID「9876」とドライバ実行コマンド「READ」との組のセルを「処理不要」に設定し、プロセスID「9876」とドライバ実行コマンド「WRITE」との組のセルを「暗号化」に設定する。
OS1は、ユーザ操作がファイルシステムへのアクセスであるか否かを判断する(ステップS106)。本例では、OS1は、ユーザ操作がファイルシステムへのアクセスであると判断する。そして、OS1は、ファイルシステムデバイスドライバ3へのファイルのWRITE要求(書き込み要求)を発行する(ステップS107)。
秘文書ファイルアクセス制御手段7は、書き込みデータを横取りする(ステップS108)。図19は、横取りデータの例を示す説明図である。図19に示すように、横取りデータは、コマンド種類、プロセスIDおよび本文データを含む。図19に示す例では、プロセスID「9876」の文書についてのWRITE要求があったことを意味する。また、横取りデータの本文データには暗号化されていない文書本文のみが含まれており、文書本文の内容が「関係者各位、いつもおせわになって・・・」である。
秘文書ファイルアクセス制御手段7は、暗号/復号判定手段9に、図18に示す暗号復号判定テーブルと、図19に示す横取りデータとを照合させる(ステップS109)。本例では、暗号/復号判定手段9は、暗号復号判定テーブルから、プロセスID「9876」とドライバ実行コマンド「WRITE」との組のセルの内容「暗号化」を抽出する。
暗号/復号判定手段9は、照合結果にもとづいて、横取りデータに含まれる文書を暗号化または復号する必要があるか判断する(ステップS110)。本例では、検索結果が「暗号化」であるので、暗号/復号判定手段9は、文書を暗号化する必要があると判断する。
秘文書ファイルアクセス制御手段7は、文書本文を、暗号/復号手段8に転送する。暗号/復号手段8は、所定の暗号キーを作成し、作成した暗号キーを用いて文書本文を暗号化する(ステップS111)。そして、暗号/復号手段8は、作成した暗号キーの情報および暗号化した文書本文を、秘文書ファイルアクセス制御手段7に返す。例えば、暗号/復号手段8は、暗号キーの情報として「KEY987」を生成し、文書本文を「85jCqR5RGmRpxc0k0zzxweu8s」と暗号化する。
秘文書ファイルアクセス制御手段7は、マジックナンバ、暗号キーの情報および暗号化後の文書本文を含む横取りデータを、ファイルシステムデバイスドライバ3に返す。本例では、秘文書ファイルアクセス制御手段7は、図19に示す横取りデータの本文データを、図7に示すフォーマットの内容に変更して、ファイルシステムデバイスドライバ3に返す。ただし、図7に示すように、機密文書管理装置のマジックナンバは「$NECSST CT$」であるとする。そして、ファイルシステムデバイスドライバ3は、暗号化後の文書を、図7に示すフォーマットでファイルシステムに書き込む(ステップS112)。
以上のように、文書が自動的に暗号化されてハードディスクに保存される。
次に、利用シーン2のユーザ操作を行う場合の全体動作を、図11を用いて説明する。ユーザは、機密文書管理装置を操作して、アプリケーションソフトウェア2(本例では、Micorosoft Word)を起動し、「開く」メニューを選択する(ステップS101)。なお、本例では、起動したアプリケーションソフトウェア2のウインドウハンドルが「7777」であるとする。
OS1のは、開くメニュー操作イベントのイベントメッセージを発生させる(ステップS102)。図20は、保存終了メニュー操作イベントのイベントメッセージの例を示す説明図である。図20に示すように、イベントメッセージは、イベント名「メニューを選択」、ウインドウハンドル「7777」およびパラメータ「ラベル=開く」を含む。図20に示す例では、イベントについて、メニュー操作がウインドウハンドル「7777」のウインドウで発生し、メニューのラベルが「開く」であることを意味する。
アプリケーション監視手段4は、イベントメッセージを横取りする(ステップS103)。すなわち、図20に示すイベントメッセージがアプリケーション監視手段4に転送される。そして、アプリケーション監視手段4は、イベントメッセージをアプリケーション状態管理手段6に転送する。
アプリケーション状態管理手段6は、図6に示す手順に従って、アプリケーション状態テーブルを更新する(ステップS104)。図6に示すステップS61において、アプリケーション状態管理手段6は、イベントの種類がドロップイベントではないと判断する。アプリケーション状態管理手段6は、OS機能4を用いて、ウインドウハンドルにもとづいてアプリケーション名を特定する(ステップS64)。本例では、アプリケーション状態管理手段6は、ウインドウハンドル「7777」にもとづいて、アプリケーション名「Micorosoft Word」を特定する。
アプリケーション状態管理手段6は、アプリケーション名「Micorosoft Word」、イベント名「メニューを選択」およびパラメータ「ラベル=開く」を条件として、アプリケーション知識5を検索する(ステップS65,S66)。図4に示すアプリケーション知識5の場合、第4レコードのアプリケーション名5101、イベント名5102およびパラメータ5103が条件に合致するので、第4レコードが検索される。
そして、アプリケーション状態管理手段6は、検索結果にもとづいてアプリケーション状態テーブルを更新する(ステップS67)。図21は、アプリケーション状態テーブルの更に他の更新例を示す説明図である。図21に示すように、アプリケーション状態管理手段6は、ウインドウハンドル「7777」を含むレコードの操作意味を、「文書を読み込む」に更新する。
アプリケーション状態管理手段6は、アプリケーション状態テーブルの更新部分を暗号/復号判定手段9に転送する。更新部分が転送されると、暗号/復号判定手段9は、図10に示す手順に従って、必要がある場合には、暗号復号判定テーブルを更新する(ステップS105)。
図10に示すステップS91において、暗号/復号判定手段9は、ウインドウハンドルにもとづいてアプリケーション名を特定する。暗号/復号判定手段9は、アプリケーション名「Micorosoft Word」、機密区分「通常」および操作意味「文書を読み込む」を条件として、機密文書取扱知識11を検索する(ステップS92,S93)。
図8に示す機密文書取扱知識11の場合、第7レコードおよび第8レコードが条件に合致する。暗号/復号判定手段9は、検索結果が存在すると判断して、OS機能3を用いて、ウインドウハンドル「7777」のプロセスIDを特定する(ステップS94)。本例では、文書のプロセスIDが「5432」であるとする。
暗号/復号判定手段9は、暗号復号判定テーブルを更新する(ステップS95)。図22は、更新された暗号復号判定テーブルの他の例を示す説明図である。図22に示すように、暗号/復号判定手段9は、プロセスID「5432」とドライバ実行コマンド「READ」との組のセルを「復号」に設定し、プロセスID「5432」とドライバ実行コマンド「WRITE」との組のセルを「処理不要」に設定する。
OS1は、ユーザ操作がファイルシステムへのアクセスであるか否かを判断する(ステップS106)。本例では、OS1は、ユーザ操作がファイルシステムへのアクセスであると判断する。そして、OS1は、ファイルシステムデバイスドライバ3へのファイルのREAD要求(読み込み要求)を発行する(ステップS107)。
秘文書ファイルアクセス制御手段7は、読み込みデータを横取りする(ステップS108)。図23は、横取りデータの他の例を示す説明図である。図23に示すように、横取りデータは、コマンド種類、プロセスIDおよび本文データを含む。図23に示す例では、プロセスID「5432」の文書についてREAD要求があったことを意味する。また、横取りデータに含まれる文書は暗号化されており、本文データにはマジックナンバ、暗号キーおよび暗号化された文書本文が含まれる。本例では、本文データには、それぞれマジックナンバ「$NECSTCT$」、暗号キー「KEY987」および文書本文「85jCqR5RGmRpxc0k0zzxweu8s」が含まれる。
秘文書ファイルアクセス制御手段7は、暗号/復号判定手段9に、図22に示す暗号復号判定テーブルと、図23に示す横取りデータとを照合させる(ステップS109)。本例では、暗号/復号判定手段9は、暗号復号判定テーブルから、プロセスID「5432」とドライバ実行コマンド「READ」との組のセルの内容「復号」を抽出する。
暗号/復号判定手段9は、照合結果にもとづいて、横取りデータに含まれる文書を暗号化または復号する必要があるか判断する(ステップS110)。本例では、検索結果が「復号」であるので、暗号/復号判定手段9は、文書を復号する必要があると判断する。
秘文書ファイルアクセス制御手段7は、横取りデータに含まれる本文データの内容を、暗号/復号手段8に転送する。すなわち、秘文書ファイルアクセス制御手段7は、マジックナンバ「$NECSTCT$」、暗号キー「KEY987」および文書本文「85jCqR5RGmRpxc0k0zzxweu8s」を転送する。
暗号/復号手段8は、暗号キー「KEY987」にもとづいて文書本文を復号する(ステップS111)。本例では、暗号/復号手段8は、文書本文を「関係者各位、いつもおせわになって・・・」に復号する。そして、暗号/復号手段8は、復号した文書本文を秘文書ファイルアクセス制御手段7に返す。
秘文書ファイルアクセス制御手段7は、ファイルシステムデバイスドライバ3に、復号した文書本文「関係者各位、いつもおせわになって・・・」を含む読み込みデータを返す。そして、ファイルシステムデバイスドライバ3は、復号後の文書を読み込む(ステップS112)。
以上のように、暗号化されてハードディスクに書き込まれていた文書が自動的に復号されて、アプリケーションソフトウェア2「Micorosoft Word」上に読み込まれる。
なお、読み込まれた文書はハードディスク上に暗号化されて保存されていた文書であるので、その後も機密文書として取り扱う必要がある。そのため、秘文書ファイルアクセス制御手段7は、OS1に、図24に示すように、利用後の文書を機密文書に変更するイベントメッセージを発行させる。なお、機密文書に変更する処理手順は、ユーザ操作1−2における動作説明で示した手順と同様である。そのようにすることにより、最終的に、図25に示すように、アプリケーション状態テーブルのウインドウハンドル「7777」のレコードの機密区分が「秘密」に保たれる。
次に、利用シーン3のユーザ操作を行う場合の全体動作を、図11を用いて説明する。ユーザは、機密文書管理装置を操作して、アプリケーションソフトウェア2(本例では、Outlook)を起動し、「文書添付」メニューを選択する(ステップS101)。なお、本例では、起動したアプリケーションソフトウェア2のウインドウハンドルが「3333」であるとする。
OS1は、文書添付メニュー操作イベントのイベントメッセージを発生させる(ステップS102)。図26は、文書添付メニュー操作イベントのイベントメッセージの例を示す説明図である。図26に示すように、イベントメッセージは、イベント名「メニューを選択」、ウインドウハンドル「3333」およびパラメータ「ラベル=文書添付」を含む。図26に示す例では、イベントについて、メニュー操作がウインドウハンドル「3333」のウインドウで発生し、メニューのラベルが「文書添付」であることを意味する。
アプリケーション監視手段4は、イベントメッセージを横取りする(ステップS103)。すなわち、図26に示すイベントメッセージがアプリケーション監視手段4に転送される。そして、アプリケーション監視手段4は、イベントメッセージをアプリケーション状態管理手段6に転送する。
アプリケーション状態管理手段6は、図6に示す手順に従って、アプリケーション状態テーブルを更新する(ステップS104)。図6に示すステップS61において、アプリケーション状態管理手段6は、イベントの種類がドロップイベントではないと判断する。アプリケーション状態管理手段6は、OS機能4を用いて、ウインドウハンドルにもとづいてアプリケーション名を特定する(ステップS64)。本例では、アプリケーション状態管理手段6は、ウインドウハンドル「3333」にもとづいて、アプリケーション名「Outlook」を特定する。
アプリケーション状態管理手段6は、アプリケーション名「Outlook」、イベント名「メニューを選択」およびパラメータ「ラベル=文書添付」を条件として、アプリケーション知識5を検索する(ステップS65,S66)。図4に示すアプリケーション知識5の場合、第5レコードのアプリケーション名5101、イベント名5102およびパラメータ5103が条件に合致するので、第5レコードが検索される。
そして、アプリケーション状態管理手段6は、検索結果にもとづいてアプリケーション状態テーブルを更新する(ステップS67)。図27は、アプリケーション状態テーブルの更に他の更新例を示す説明図である。図27に示すように、アプリケーション状態管理手段6は、ウインドウハンドル「3333」を含むレコードの操作意味を、「文書を添付する」に更新する。
アプリケーション状態管理手段6は、アプリケーション状態テーブルの更新部分を暗号/復号判定手段9に転送する。更新部分が転送されると、暗号/復号判定手段9は、図10に示す手順に従って、必要がある場合には、暗号復号判定テーブルを更新する(ステップS105)。
図10に示すステップS91において、暗号/復号判定手段9は、ウインドウハンドルにもとづいてアプリケーション名を特定する。暗号/復号判定手段9は、アプリケーション名「Outlook」、機密区分「通常」および操作意味「文書を添付する」を条件として、機密文書取扱知識11を検索する(ステップS92,S93)
図8に示す機密文書取扱知識11の場合、第2レコードおよび第9レコードが条件に合致する。暗号/復号判定手段9は、検索結果が存在すると判断して、OS機能3を用いて、ウインドウハンドル「3333」のプロセスIDを特定する(ステップS94)。本例では、文書のプロセスIDが「1111」であるとする。
暗号/復号判定手段9は、暗号復号判定テーブルを更新する(ステップS95)。図28は、更新された暗号復号判定テーブルの更に他の例を示す説明図である。図28に示すように、暗号/復号判定手段9は、プロセスID「1111」とドライバ実行コマンド「READ」との組のセルを「処理不要」に設定し、プロセスID「1111」とドライバ実行コマンド「WRITE」との組のセルを「暗号化」に設定する。
OS1は、ユーザ操作がファイルシステムへのアクセスであるか否かを判断する(ステップS106)。本例では、OS1は、ユーザ操作がファイルシステムへのアクセスであると判断する。そして、OS1は、ファイルシステムデバイスドライバ3へのファイルのREAD要求を発行する(ステップS107)。
秘文書ファイルアクセス制御手段7は、読み込みデータを横取りする(ステップS108)。図29は、横取りデータの更に他の例を示す説明図である。図29に示すように、横取りデータは、コマンドの種類、プロセスIDおよび本文データを含む。図29に示す例では、プロセスID「1111」の文書についてREAD要求があったことを意味する。また、横取りデータに含まれる文書は暗号化されており、本文データにはマジックナンバ、暗号キーおよび暗号化された文書本文が含まれる。本例では、本文データには、それぞれマジックナンバ「$NECSTCT$」、暗号キー「KEY987」および本文「85jCqR5RGmRpxc0k0zzxweu8s」が含まれる。
秘文書ファイルアクセス制御手段7は、暗号/復号判定手段9に、図28に示す暗号復号判定テーブルと、図29に示す横取りデータとを照合させる(ステップS109)。本例では、暗号/復号判定手段9は、暗号復号判定テーブルから、プロセスID「1111」とドライバ実行コマンド「READ」との組のセルの内容「処理不要」を抽出する。
暗号/復号判定手段9は、照合結果にもとづいて、横取りデータに含まれる文書を暗号化または復号する必要があるか判断する(ステップS110)。本例では、検索結果が「処理不要」であるので、暗号/復号判定手段9は、文書を処理する必要がないと判断する。
秘文書ファイルアクセス制御手段7は、横取りデータを、そのままファイルシステムデバイスドライバ3に返す。そして、OS1は、ハードディスクから読み取った文書をそのまま処理する。すなわち、図30に示す本文データを含む横取りデータがそのまま転送され処理される。
以上のように、暗号化されてハードディスクに書き込まれていた文書がそのままアプリケーションソフトウェア2「Outlook」上に読み込まれる。すなわち、文書は暗号化されたままの状態でメールに添付されることを意味する。
以上のように、本実施の形態によれば、OS1のイベントメッセージにもとづいてアプリケーションソフトウェア2の実行状態を推定する。そして、文書へのアクセスを検出した場合に、アプリケーションソフトウェア2の実行状態の推定結果にもとづいて、文書を暗号化するか否か、または復号するか否かを判断する。そのため、外部に機密文書を公開するアプリケーション操作をユーザが行った場合には自動的に機密文書が暗号化される。従って、正規ユーザが操作ミスをした場合であっても機密情報の漏洩を防止することができる。また、アプリケーションソフトウェア2の実行状態も考慮して機密文書の暗号化および復号を自動的に行うことができる。
例えば、利用シーン2のユーザ操作のように、ワードプロセッサのアプリケーションソフトウェア上で機密文書を読み込んだ場合には、暗号化された文書が自動的に復号されて利用が可能となる。また、利用シーン3のユーザ操作のように、メーラのアプリケーションソフトウェア上で機密文書を読み込んだ場合には、暗号化された文書は復号されずにそのまま読み込まれる。
また、本実施の形態によれば、ユーザの操作によらずに、ファイル読み込み時には暗号化された文書を自動的に復号し、ファイル書き込み時には自動的に暗号化されて書き込まれる。従って、正規ユーザが故意に機密情報を漏洩するのを防止することができる。また、本実施の形態によれば、アプリケーションソフトウェア2の実行状態に応じて自動的に文書の暗号化または復号が行われるので、ユーザは、暗号化や復号の操作を意識せずに文書を扱うことができる。従って、複数人で編集作業を繰り返し行うドラフト状態の機密文書を、利便性を損なうことなく保護することができる。
また、本実施の形態によれば、アプリケーション上から暗号化された文書にアクセスした場合の文書の処理方法を、機密文書取扱知識11に登録さえすれば、登録内容に従って文書を処理できる。そのようにすることにより、ローカルの閉じたシステムのアプリケーション上からアクセスする場合には文書を自動的に復号し、外部の他者に配布する場合には復号せずに暗号化したまま配布することによって、情報の漏洩を防止することができる。
実施の形態2.
次に、本発明の第2の実施の形態を図面を参照して説明する。図31は、機密文書管理装置の他の構成例を示すブロック図である。本実施の形態において、機密文書管理装置は、第1の実施の形態と同様に、パーソナルコンピュータなど情報処理装置によって実現される。
図31に示すように、機密文書管理装置は、第1の実施の形態で示した構成に加えて、配布履歴管理手段300を含む。また、配布履歴管理手段300は、ログインユーザ名取得手段12、配布履歴記憶手段13および配布履歴追加手段14を含む。
ログインユーザ名取得手段12は、コンピュータにログイン中のユーザのログイン名を取得する。配布履歴記憶手段13は、暗号化された文書のファイル読み込みの際に、秘文書ファイルアクセス制御手段7の横取りデータに含まれる本文データのヘッダを記憶する。配布履歴追加手段14は、暗号化された文書のファイル書き込みの際に、秘文書ファイルアクセス制御手段7の横取りデータに含まれる本文データのヘッダに、ログインユーザ名取得手段12から得られたログイン中のユーザのユーザ名を加える。なお、ログインユーザ名取得手段12および配布履歴追加手段14は、ソフトウェアによって実現される。また、配布履歴記憶手段13は、機密文書管理装置の記憶装置によって実現される。
図31に示す構成によって、機密文書管理装置は、ファイルのヘッダに、ファイルをコピーしたユーザのリストを痕跡として残す処理を行う。
本実施の形態において、ユーザ名取得手段は、ログインユーザ名取得手段12によって実現される。ヘッダ記憶手段は、配布履歴記憶手段13によって実現される。ユーザ名付加手段は、配布履歴追加手段14によって実現される。
次に、配布履歴管理手段300の各構成要素の機能および動作を説明する。ログインユーザ名取得手段12は、WindowsやUNIXなどのOSが備えているログイン中のユーザのユーザ名を取得するAPI(Application Programming Interface )を利用することによって、ログイン中のユーザ名を取得する。
なお、APIを利用する方法に限らず、ログインユーザ名取得手段12は、LDAP(Lightweight DirectoryAccess Protocol)サーバなどのインターネットを介したアカウントサービスを利用することによって、ログイン中のユーザ名を取得してもよい。
配布履歴記憶手段13は、プロセスIDと配布履歴との対応関係を示すテーブルを記憶する。以下、配布履歴記憶手段13が記憶するテーブルをファイルヘッダテーブルという。図32は、ファイルヘッダテーブルの一例を示す説明図である。図32に示すように、ファイルヘッダテーブルは、プロセスID13101と配布履歴13102とを対応付けて含む。プロセスID13101は、ファイル読み込みを行ったプロセスのIDである。配布履歴13102は、ファイルに書き込みをしたユーザの履歴である。
図33は、本実施の形態において、秘文書ファイルアクセス制御手段7がファイルシステムデバイスドライバ3に返すときの暗号化後の本文データの例を示す説明図である。図33に示すように、本実施の形態において、本文データは、マジックナンバ7101、暗号キー7102および本文7103に加えて、配布ユーザ履歴7104を含む。図33に示すように、配布ユーザ履歴7104は、ファイルに書き込みをしたユーザの履歴を、古い順に記号「>」でつなげて記述した情報である。図33に示す例では、ユーザ1が最初にファイルを利用し、次にユーザ2がファイルを利用したことを意味する。
また、ファイルヘッダテーブルの配布履歴13102には、暗号化された文書のファイル読み込みの際に、本文データに含まれる配布ユーザ履歴7104が記憶される。
配布ルート設定手段14は、秘文書ファイルアクセス制御手段7が文書を暗号化して横取りデータを転送する際に、ファイルヘッダテーブルから配布履歴情報を抽出する。そして、配布履歴追加手段14は、抽出した配布履歴情報に、ログインユーザ名取得手段12が取得したユーザ名を追加する。
次に、全体動作について説明する。図34は、機密文書管理装置が行う機密文書管理の全体処理の処理経過の他の例を示す流れ図である。図34に示すように、本実施の形態では、第1の実施の形態で示した暗号復号処理ステップ(ステップS111)と、ファイルシステムデバイスドライバコマンド実行ステップ(ステップS112)との間に、配布履歴をファイルのヘッダに追加する配布履歴設定処理ステップ(ステップS111a)を更に含む。
本実施の形態では、第1の実施の形態で示した処理ステップに配布履歴設定処理ステップを加えることにより、本文データのヘッダに、ファイルをコピーしたユーザのリストを痕跡として残すことができる。なお、配布履歴設定処理ステップ以外の処理ステップについては、第1の実施の形態と同様である。
図35は、機密文書管理の処理のうち、配布履歴設定処理の処理経過の一例を示す流れ図である。秘文書ファイルアクセス制御手段7は、データを横取りすると、ファイルシステムへのアクセスの種類が「READ」であるか否かを判断する(ステップS21)。「READ」であると判断した場合には、秘文書ファイルアクセス制御手段7は、ステップS22の処理を実行する。「READ」ではないと判断した場合には、配布履歴追加手段14によってステップS23の処理が実行される。
「READ」であると判断した場合には、秘文書ファイルアクセス制御手段7は、配布履歴記憶手段13に、横取りデータに含まれるプロセスIDおよび配布履歴を記憶させる(ステップS22)。すると、配布履歴記憶手段13は、秘文書ファイルアクセス制御手段7からのプロセスIDおよび配布履歴を、ファイルヘッダテーブルに書き込む。
「READ」ではないと判断した場合には、配布履歴追加手段14は、プロセスIDをキーとして、配布履歴記憶手段13が記憶するファイルヘッダテーブルを検索する(ステップS23)。配布履歴追加手段14は、条件に合致するレコードがファイルヘッダテーブルに含まれるか否かを判断する(ステップS24)。条件に合致するレコードが含まれないと判断した場合には、配布履歴追加手段14は、ステップS25の処理を実行する。条件に合致するレコードが含まれると判断した場合には、配布履歴追加手段14は、ステップS26の処理を実行する。
条件に合致するレコードが含まれないと判断した場合には、配布履歴追加手段14は、新たに配布履歴を作成する(ステップS25)。ステップS25の処理が実行されるのは、ハードディスクから一度読み出したファイルが書き込まれる場合ではなく、ユーザによって新規に作成された文書が最初に保存される場合である。そのため、ファイルヘッダテーブルには、まだ配布ユーザ履歴が存在しない。この場合、配布履歴追加手段14は、ログインユーザ名取得手段12からログイン中のユーザ名を得る。そして、配布履歴追加手段14は、ログインユーザ名取得手段12から得たユーザ名を用いて、本文データのヘッダの配布ユーザ履歴を新規に作成する。
条件に合致するレコードが含まれると判断した場合には、配布履歴追加手段14は、配布履歴を更新する(ステップS26)。ステップS26の処理が実行されるのは、ハードディスクから一度読み出した文書がアプリケーションソフトウェア上で編集され保存される場合である。この場合、配布履歴追加手段14は、配布履歴記憶手段13が記憶するファイルヘッダテーブルから配布履歴を抽出する。また、配布履歴追加手段14は、ログインユーザ名取得手段12からログイン中のユーザ名を得る。そして、配布履歴追加手段14は、ログインユーザ名取得手段12から得たログイン中のユーザ名を、抽出した配布履歴に追加して、本文データのヘッダの配布ユーザ履歴とする。
図36は、本文データのヘッダの配布ユーザ履歴の更新例を示す説明図である。本例では、図32のファイルヘッダテーブルを用いて、配布ユーザ履歴が更新された場合を説明する。図36に示すように、ログイン中のユーザが「USER3」であるとすると、本文データのヘッダの配布ユーザ履歴に「>USER3」が追加される。
以上のように、本実施の形態によれば、本文データのヘッダに、ファイルをコピーしたユーザのリストを痕跡として残すことができる。従って、暗号化されたファイルが外部に漏れた場合に、ヘッダの配布ユーザ履歴を見れば、誰が情報を漏洩したのかを確認することができる。従って、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
なお、本実施の形態では、ユーザの名前だけを履歴情報の対象としたが、コンピュータ名、コンピュータのIPアドレスなどを履歴情報の対象にしてもよい。また、付加情報として、ユーザの配布履歴に日時を加えてもよい。また、配布履歴のデータサイズが大きくなるのを防止するため、最初の配布ユーザおよび最後の配布ユーザのみを履歴情報の対象としてもよい。
実施の形態3.
更に、本発明の第3の実施の形態を図面を参照して説明する。図37は、機密文書管理装置の更に他の構成例を示すブロック図である。本実施の形態において、機密文書管理装置は、第1の実施の形態および第2の実施の形態と同様に、パーソナルコンピュータなど情報処理装置によって実現される。
図37に示すように、機密文書管理装置は、第2の実施の形態で示した構成に加えて、ログ管理手段400を含む。また、ログ管理手段400は、ログ作成手段15およびログデータベース16を含む。
ログ作成手段15は、ソフトウェアによって実現される。ログ作成手段15は、暗号/復号手段8が暗号化処理または復号処理を行った際に、ログインユーザ名取得手段12からログイン中のユーザ名を取得してログデータを作成する。ログデータベース16は、機密文書管理装置のデータベースによって実現される。ログデータベース16は、ログ作成手段15が作成したログデータを記憶する。
図37に示す構成によって、機密文書管理装置は、機密文書へのアクセスのログデータを残すことができる。
本実施の形態において、ログデータ生成手段は、ログ作成手段15によって実現される。ログデータ記憶手段は、ログデータベース16によって実現される。
次に、ログ管理手段400の各構成要素の機能および動作を説明する。ログ作成手段15は、暗号/復号手段8が文書を暗号化する際にログデータを作成する。また、ログ作成手段15は、暗号/復号手段8が文書を復号する際にログデータを作成する。
図38は、本実施の形態において、秘文書ファイルアクセス制御手段7がファイルシステムデバイスドライバ3に返すときの暗号化後の横取りデータに含まれる本文データの例を示す説明図である。図38に示すように、本実施の形態において、暗号化後データの本文データは、マジックナンバ7101、暗号キー7102、本文7103および配布ユーザ履歴7104に加えて、ファイルID7105を含む。ファイルID7105は、文書を最初に暗号化する際に、日時などを用いて発行される。
暗号/復号手段8は、暗号化または復号する際に、暗号キー、ファイルIDおよび動作種類を、ログ作成手段15に転送する。なお、暗号/復号手段8は、暗号化する場合には動作種類「暗号」を転送する。また、暗号/復号手段8は、復号する場合には動作種類「復号」を転送する。
ログ作成手段15は、暗号キー、ファイルIDおよび動作種類が転送されると、ログインユーザ名取得手段12からログイン中のユーザ名を得て、ログデータを作成する。そして、ログ作成手段15は、作成したログデータをログデータベース16に記憶させる。
図39は、ログデータベース16が記憶するログデータの例を示す説明図である。図39に示すように、ログデータベース16は、ログ作成日時16101と、ファイルID16102と、動作種類16103と、ログインユーザ名16104とを対応付けて記憶する。
次に、全体動作について説明する。図40は、機密文書管理装置が行う機密文書管理の全体処理の処理経過の更に他の例を示す流れ図である。図40に示すように、本実施の形態では、第2の実施の形態で示した暗号復号処理ステップ(ステップS111)と、配布履歴設定処理ステップ(ステップS111a)との間に、暗号復号処理ステップの処理についてのログデータを作成しデータベースに記憶するログ書込処理ステップ(ステップS111b)を更に含む。
本実施の形態では、第2の実施の形態で示した処理ステップにログ書込処理ステップを加えることにより、機密文書へのアクセスのログデータを残すことができる。
ステップS111において、暗号化または復号を行うと、暗号/復号手段8は、暗号キー、ファイルIDおよび動作種類をログ作成手段15に転送する。すると、ログ作成手段15は、ログインユーザ名取得手段12からログイン中のユーザ名を得る。暗号/復号手段8は、暗号キー、ファイルID、動作種類およびログイン中のユーザ名にもとづいて、ログデータベース16にレコードを追加して記憶させる(ステップS111b)。
以上のように、本実施の形態によれば、ログデータに機密文書の配布履歴の痕跡を残すことができる。そのため、暗号化されたファイルが外部に漏れた場合に、漏洩したファイルのヘッダのファイルIDをキーとしてログデータを解析することによって、漏洩したファイルの利用方法を確認することができる。従って、配布した機密文書への操作をファイル作成者が永続的に知ることができ、機密文書への操作を継続的に管理することができる。
なお、ログデータベース16は、ローカルのコンピュータに備えてもよい。また、FTP(File Transfer Protocol)を利用して、インターネットを介してサーバにアップロードすることによって実現してもよい。インターネットを介してサーバにアップロードするようにすれば、機密文書管理装置の管理者の管理負担を軽減できる。