(57)【特許請求の範囲】
【請求項１】
通常情報を扱う通常モードと機密情報を扱う機密モードとを切換自在な動作モードとして設定するモード設定手段と、
所定単位の記憶エリアごとに各種データを記憶するデータ記憶媒体と、
前記記憶エリアを少なくとも前記通常情報のみ記憶されている通常エリアと前記機密情報のみ記憶されている機密エリアと前記通常情報と前記機密情報とが記憶されている共有エリアと前記通常情報も前記機密情報も記憶されていない空きエリアとに区分するエリア区分手段と、
前記通常モードの設定下で前記通常情報を指定された前記通常エリアに記憶させる通常格納手段と、
前記通常モードの設定下で前記通常情報を指定された前記通常エリアから読み出す通常読出手段と、
前記機密モードの設定下で前記機密情報を指定された前記機密エリアに記憶させるとともに前記通常エリアが指定されたときには前記機密エリアにリダイレクトして記憶させる機密格納手段と、
指定された前記通常エリアと記憶された前記機密エリアとのリダイレクト関係を対応する前記機密情報ごとに生成するマップ生成手段と、
前記機密モードの設定下で前記機密情報を指定された前記機密エリアから読み出すとともに前記通常エリアが指定されたときには前記リダイレクト関係により記憶された前記機密エリアから読み出す機密読出手段と、
を有するデータ処理装置。
【請求項２】
前記機密格納手段は、書き込み対象の前記通常エリアに対応する前記機密エリアが存在するときには、対応する前記機密エリアに書き込み場所を変更し、対応する前記機密エリアが存在しないときには、新たに前記機密エリアを生成する請求項１に記載のデータ処理装置。
【請求項３】
前記機密格納手段は、指定された前記機密情報が格納される前記通常エリアに対応する前記機密エリアが存在しないときに、書き込み対象の前記通常エリアに記録されている前記通常情報と書き込もうとしている前記機密情報とを比較し、同じ場合に前記機密情報を記録する前記機密エリアを生成しない請求項１または２に記載のデータ処理装置。
【請求項４】
前記機密格納手段は、指定された書き込み対象の前記通常エリアに対応する前記機密エリアが存在するときに、前記通常エリアに記録されている前記通常情報と書き込もうとしている前記機密情報が同じ場合に、前記通常エリアに対応する前記機密エリアを削除する請求項１ないし３の何れか一項に記載のデータ処理装置。
【請求項５】
前記機密読出手段は、前記機密モードの設定下に前記機密情報の読み込みをフックし、前記マップ生成手段に、読み込み対象の前記通常エリアに対応する前記機密エリアが存在するか否かを問い合わせ、存在するときには、対応する前記機密エリアに読み込み対象を変更する請求項１ないし４の何れか一項に記載のデータ処理装置。
【請求項６】
前記機密格納手段は、前記通常モードの設定下に前記通常データの書き込みをフックし、書き込み対象の前記通常エリアに対応する前記機密エリアが存在しないときに、新たに前記機密エリアを生成し、書き込み対象の前記通常データを生成した前記機密エリアにコピーした後、書き込み対象の前記通常エリアに書き込む請求項１ないし５の何れか一項に記載のデータ処理装置。
【請求項７】
前記マップ生成手段は、前記データ記憶媒体のファイルの削除を検知し、前記ファイルの削除で不要となった前記リダイレクト関係を削除する請求項１ないし６の何れか一項に記載のデータ処理装置。
【請求項８】
前記マップ生成手段に、前記機密情報が記録された前記機密エリアの場所を問い合わせ、前記機密エリアを上書きすることによって前記機密情報を削除する削除手段を備える請求項１ないし７の何れか一項に記載のデータ処理装置。
【請求項９】
初期状態と作業後のファイルリストを比較することによって前記機密情報を特定し、コピーする回収手段を備える請求項１ないし８の何れか一項に記載のデータ処理装置。
【請求項１０】
情報の暗号化と復号を行う暗号化手段を備え、
前記機密格納手段は、前記機密情報を書き込むときに前記暗号化手段で暗号化し、
前記機密読出手段は、前記機密情報を読み込むときに前記暗号化手段で復号する請求項１ないし９の何れか一項に記載のデータ処理装置。
【請求項１１】
ファイルサーバへのアクセスを制御するネットワーク制御手段を備え、
前期機密格納手段は、前記ファイルサーバからダウンロードした情報を前記機密情報として記録する請求項１ないし１０の何れか一項に記載のデータ処理装置。
【請求項１２】
所定単位の記憶エリアごとに各種データを記憶するデータ記憶媒体を有するデータ処理装置のコンピュータプログラムであって、
通常情報を扱う通常モードと機密情報を扱う機密モードとを切換自在な動作モードとして設定するモード設定処理と、
前記記憶エリアを少なくとも前記通常情報のみ記憶されている通常エリアと前記機密情報のみ記憶されている機密エリアと前記通常情報と前記機密情報とが記憶されている共有エリアと前記通常情報も前記機密情報も記憶されていない空きエリアとに区分するエリア区分処理と、
前記通常モードの設定下で前記通常情報を指定された前記通常エリアに記憶させる通常格納処理と、
前記通常モードの設定下で前記通常情報を指定された前記通常エリアから読み出す通常読出処理と、
前記機密モードの設定下で前記機密情報を指定された前記機密エリアに記憶させるとともに前記通常エリアが指定されたときには前記機密エリアにリダイレクトして記憶させる機密格納処理と、
指定された前記通常エリアと記憶された前記機密エリアとのリダイレクト関係を対応する前記機密情報ごとに生成するマップ生成処理と、
前記機密モードの設定下で前記機密情報を指定された前記機密エリアから読み出すとともに前記通常エリアが指定されたときには前記リダイレクト関係により記憶された前記機密エリアから読み出す機密読出処理と、
をデータ処理装置に実行させるコンピュータプログラム。
【請求項１３】
所定単位の記憶エリアごとに各種データを記憶するデータ記憶媒体を有するデータ処理方法であって、
通常情報を扱う通常モードと機密情報を扱う機密モードとを切換自在な動作モードとして設定するモード設定動作と、
前記記憶エリアを少なくとも前記通常情報のみ記憶されている通常エリアと前記機密情報のみ記憶されている機密エリアと前記通常情報と前記機密情報とが記憶されている共有エリアと前記通常情報も前記機密情報も記憶されていない空きエリアとに区分するエリア区分動作と、
前記通常モードの設定下で前記通常情報を指定された前記通常エリアに記憶させる通常格納動作と、
前記通常モードの設定下で前記通常情報を指定された前記通常エリアから読み出す通常読出動作と、
前記機密モードの設定下で前記機密情報を指定された前記機密エリアに記憶させるとともに前記通常エリアが指定されたときには前記機密エリアにリダイレクトして記憶させる機密格納動作と、
指定された前記通常エリアと記憶された前記機密エリアとのリダイレクト関係を対応する前記機密情報ごとに生成するマップ生成動作と、
前記機密モードの設定下で前記機密情報を指定された前記機密エリアから読み出すとともに前記通常エリアが指定されたときには前記リダイレクト関係により記憶された前記機密エリアから読み出す機密読出動作と、
を有するデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機密情報と通常情報とを区別して記録するデータ処理装置、そのコンピュータプログラムおよびデータ処理方法、に関する。
【背景技術】
【０００２】
ソフトウェア開発などのプロジェクトでは、コストやコンピュータ設置スペースの問題から、しばしば機密業務と、それ以外の通常業務が1台のコンピュータで行われるため、プロジェクトの情報と通常業務の情報の両方が、コンピュータに蓄積される。【０００３】
機密情報漏えいを防ぐためには、機密業務中には情報を暗号化で守り、一連の機密業務が終了した後に、情報の削除を行う必要がある。しかし、上記のように、1台のコンピュータの中には、機密情報と、それ以外の情報が混在しているため、どの情報を対象として、暗号化・削除を行えばよいか判断することができない。この課題を解決するために、以下の技術が公開されている。【０００４】
例えば、ユーザの権限に応じて、開示するファイルの内容を差し替え、機密情報が権限の低いユーザに漏洩することを防止するシステムが公開されている。よって、権限の高いユーザで機密業務を行ない、権限の低いユーザで通常業務を行うことで、機密情報と通常業務の情報を区別可能である(例えば、特許文献１参照)。【０００５】
また、起動するＯＳを切り替えるマルチブートや仮想マシンを用いることで、通常業務で使うＯＳや情報と、プロジェクトで使うＯＳや情報を区別することが可能である（例えば、特許文献２、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】ＷＯ２００６−０５９６３９
【特許文献２】特開２００３−２８０９１５号公報
【非特許文献】
【０００７】
【非特許文献１】Workstation ユーザーマニュアル  Workstation 6.5［２００９年０３月１６日検索］インターネット<ＵＲＬ：http://www.vmware.com/files/jp/pdf/ws65_manual.pdf>
【発明の概要】
【０００８】
特許文献１のシステムでは、ファイル単位で情報を管理するため、１ｂｉｔの違いであったとしても、機密情報としてのファイルと通常業務の情報としてのファイルを作成する必要があり、ＨＤＤの使用量が大きい。
【０００９】
また、マルチブートや仮想マシンでは、機密・通常を区別する必要があるユーザ情報だけではなく、ＯＳまでも区別するため、同じ情報であるにもかかわらず、機密情報としてのファイルと通常業務の情報としてのファイルを作成する必要があり、ＨＤＤの消費量が大きい。
【００１０】
本発明は上述のような課題に鑑みてなされたものであり、少ないＨＤＤ消費量で、機密情報と通常情報とを区別して保存することができるデータ処理装置、そのコンピュータプログラムおよびデータ処理方法、を提供するものである。
【００１１】
本発明のデータ処理装置は、通常情報を扱う通常モードと機密情報を扱う機密モードとを切換自在な動作モードとして設定するモード設定手段と、所定単位の記憶エリアごとに各種データを記憶するデータ記憶媒体と、記憶エリアを少なくとも通常情報のみ記憶されている通常エリアと機密情報のみ記憶されている機密エリアと通常情報と機密情報とが記憶されている共有エリアと通常情報も機密情報も記憶されていない空きエリアとに区分するエリア区分手段と、通常モードの設定下で通常情報を指定された通常エリアに記憶させる通常格納手段と、通常モードの設定下で通常情報を指定された通常エリアから読み出す通常読出手段と、機密モードの設定下で機密情報を指定された機密エリアに記憶させるとともに通常エリアが指定されたときには機密エリアにリダイレクトして記憶させる機密格納手段と、指定された通常エリアと記憶された機密エリアとのリダイレクト関係を対応する機密情報ごとに生成するマップ生成手段と、機密モードの設定下で機密情報を指定された機密エリアから読み出すとともに通常エリアが指定されたときにはリダイレクト関係により記憶された機密エリアから読み出す機密読出手段と、を有する。
【００１２】
本発明のコンピュータプログラムは、所定単位の記憶エリアごとに各種データを記憶するデータ記憶媒体を有するデータ処理装置のコンピュータプログラムであって、通常情報を扱う通常モードと機密情報を扱う機密モードとを切換自在な動作モードとして設定するモード設定処理と、記憶エリアを少なくとも通常情報のみ記憶されている通常エリアと機密情報のみ記憶されている機密エリアと通常情報と機密情報とが記憶されている共有エリアと通常情報も機密情報も記憶されていない空きエリアとに区分するエリア区分処理と、通常モードの設定下で通常情報を指定された通常エリアに記憶させる通常格納処理と、通常モードの設定下で通常情報を指定された通常エリアから読み出す通常読出処理と、機密モードの設定下で機密情報を指定された機密エリアに記憶させるとともに通常エリアが指定されたときには機密エリアにリダイレクトして記憶させる機密格納処理と、指定された通常エリアと記憶された機密エリアとのリダイレクト関係を対応する機密情報ごとに生成するマップ生成処理と、機密モードの設定下で機密情報を指定された機密エリアから読み出すとともに通常エリアが指定されたときにはリダイレクト関係により記憶された機密エリアから読み出す機密読出処理と、をデータ処理装置に実行させる。
【００１３】
本発明のデータ処理方法は、所定単位の記憶エリアごとに各種データを記憶するデータ記憶媒体を有するデータ処理方法であって、通常情報を扱う通常モードと機密情報を扱う機密モードとを切換自在な動作モードとして設定するモード設定動作と、記憶エリアを少なくとも通常情報のみ記憶されている通常エリアと機密情報のみ記憶されている機密エリアと通常情報と機密情報とが記憶されている共有エリアと通常情報も機密情報も記憶されていない空きエリアとに区分するエリア区分動作と、通常モードの設定下で通常情報を指定された通常エリアに記憶させる通常格納動作と、通常モードの設定下で通常情報を指定された通常エリアから読み出す通常読出動作と、機密モードの設定下で機密情報を指定された機密エリアに記憶させるとともに通常エリアが指定されたときには機密エリアにリダイレクトして記憶させる機密格納動作と、指定された通常エリアと記憶された機密エリアとのリダイレクト関係を対応する機密情報ごとに生成するマップ生成動作と、機密モードの設定下で機密情報を指定された機密エリアから読み出すとともに通常エリアが指定されたときにはリダイレクト関係により記憶された機密エリアから読み出す機密読出動作と、を有する。
【００１４】
なお、本発明の各種の構成要素は、その機能を実現するように形成されていればよく、例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたデータ処理装置、コンピュータプログラムによりデータ処理装置に実現された所定の機能、これらの任意の組み合わせ、等として実現することができる。
【００１５】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００１６】
また、本発明のコンピュータプログラムおよびデータ処理方法は、複数の処理および動作を順番に記載してあるが、その記載の順番は複数の処理および複数の動作を実行する順番を限定するものではない。
【００１７】
このため、本発明のコンピュータプログラムおよびデータ処理方法を実施するときには、その複数の処理および複数の動作の順番は内容的に支障しない範囲で変更することができる。
【００１８】
さらに、本発明のコンピュータプログラムおよびデータ処理方法は、複数の処理および複数の動作が個々に相違するタイミングで実行されることに限定されない。このため、ある処理および動作の実行中に他の処理および動作が発生すること、ある処理および動作の実行タイミングと他の処理および動作の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【００１９】
また、本発明で云うデータ処理装置は、コンピュータプログラムを読み取って対応する処理動作を実行できるように、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、Ｉ／Ｆ（Interface）ユニット、等の汎用デバイスで構築されたハードウェア、所定の処理動作を実行するように構築された専用の論理回路、これらの組み合わせ、等として実施することができる。
【００２０】
なお、本発明でコンピュータプログラムに対応した各種動作をデータ処理装置に実行させることは、各種デバイスをデータ処理装置に動作制御させることなども意味している。
【００２１】
例えば、データ処理装置に各種データを記憶させることは、データ処理装置に固定されているＨＤＤ（Hard Disc Drive）等の情報記憶媒体にＣＰＵが各種データを格納すること、データ処理装置に交換自在に装填されているＣＤ−Ｒ（Compact Disc-Recordable）等の情報記憶媒体にＣＰＵがＣＤドライブで各種データを格納すること、等を許容する。
【００２２】
本発明のデータ処理装置では、通常情報を扱う通常モードと機密情報を扱う機密モードとを切換自在な動作モードとしてモード設定手段が設定する。所定単位の記憶エリアごとに各種データをデータ記憶媒体が記憶する。その記憶エリアを少なくとも通常情報のみ記憶されている通常エリアと機密情報のみ記憶されている機密エリアと通常情報と機密情報とが記憶されている共有エリアと通常情報も機密情報も記憶されていない空きエリアとにエリア区分手段が区分する。通常モードの設定下で通常情報を指定された通常エリアに通常格納手段が記憶させる。通常モードの設定下で通常情報を指定された通常エリアから通常読出手段が読み出す。機密モードの設定下で機密情報を指定された機密エリアに記憶させるとともに通常エリアが指定されたときには機密格納手段が機密エリアにリダイレクトして記憶させる。指定された通常エリアと記憶された機密エリアとのリダイレクト関係を対応する機密情報ごとにマップ生成手段が生成する。機密モードの設定下で機密情報を指定された機密エリアから読み出すとともに通常エリアが指定されたときにはリダイレクト関係により記憶された機密エリアから機密読出手段が読み出す。従って、機密情報と通常情報とを区別して保存することができ、例えば、機密エリアに書き込む機密情報が共有エリアの機密情報や通常エリアの通常情報と同一のときに、機密情報の書き込みを中止したり機密エリアを削除するようなこともできるので、データ記憶媒体の消費量を削減しながら機密情報と通常情報とを区別して保存することができる。特に、機密格納手段は、書き込み対象の通常エリアに対応する機密エリアが存在するときには、対応する機密エリアに書き込み場所を変更し、対応する機密エリアが存在しないときには、新たに機密エリアを生成するようなこともできるので、より効果的にデータ記憶媒体の消費量を削減しながら機密情報と通常情報とを区別して保存することができる。
【図面の簡単な説明】
【００２３】
上述した目的、および、その他の目的、特徴および利点は、以下に述べる好適な実施の形態、および、それに付随する以下の図面によって、さらに明らかになる。【００２４】
【図１】本発明の実施の第一の形態のデータ処理装置を示すブロック図である。
【図２】本発明の読み書きリダイレクトの動作を示す模式図である。
【図３】本発明を実施するための最良の形態の動作を示すフローチャートである。
【図４】本発明のマップ生成手段が生成するマップの例を示す模式図である。
【図５】本発明の回収手段が生成する初期ファイルリストと更新ファイルリストの例を示す模式図である。
【図６】本発明の実施の第二の形態の構成を示すブロック図である。
【発明を実施するための形態】
【００２５】
本発明の実施の一形態を図面を参照して以下に説明する。図１を参照すると、本発明の実施の形態のデータ処理装置は、プログラム制御により動作するコンピュータ装置１００からなる。
【００２６】
本実施の形態のコンピュータ装置１００は、通常情報を扱う通常モードと機密情報を扱う機密モードとを切換自在な動作モードとして設定するモード設定手段と、所定単位の記憶エリアであるクラスタごとに各種データを記憶するデータ記憶媒体であるＨＤＤ１０３と、クラスタを少なくとも通常情報のみ記憶されている通常クラスタと機密情報のみ記憶されている機密クラスタと通常情報と機密情報とが記憶されている共有クラスタと通常情報も機密情報も記憶されていない空きクラスタとに区分するクラスタ区分手段と、通常モードの設定下で通常情報を指定された通常クラスタに記憶させる通常格納手段と、通常モードの設定下で通常情報を指定された通常クラスタから読み出す通常読出手段と、機密モードの設定下で機密情報を指定された機密クラスタに記憶させるとともに通常クラスタが指定されたときには機密クラスタにリダイレクトして記憶させる機密格納手段と、指定された通常クラスタと記憶された機密クラスタとのリダイレクト関係を対応する機密情報ごとに生成するマップ生成手段１０６と、機密モードの設定下で機密情報を指定された機密クラスタから読み出すとともに通常クラスタが指定されたときにはリダイレクト関係により記憶された機密クラスタから読み出す機密読出手段と、を有する。
【００２７】
より具体的には、本実施の形態のコンピュータ装置１００は、ＣＰＵ１０１、メモリ１０２、データ記憶媒体であるＨＤＤ１０３、等のハードウェア、ＯＳ(Operating System)１０４、各種のアプリケーションプログラム(図示せず)、等のソフトウェア、を有する。
【００２８】
さらに、ＩＯ(Input/Output)リダイレクト手段１０５、マップ生成手段１０６、削除手段１０７、回収手段１０８、暗号化手段１０９、等の論理機能、を備える。前述のモード設定手段とクラスタ区分手段と通常格納手段と通常読出手段と機密格納手段と機密読出手段とは、上述のＩＯリダイレクト手段１０５に集約されている。
【００２９】
このような論理機能は、例えば、ＯＳや各種のアプリケーションプログラム等のソフトウェアに対応してＣＰＵ１０１等のハードウェアが各種動作を実行することなどで、論理的に実現されている。上述のようなコンピュータ装置１００の構成要素は、それぞれ概略以下のように機能する。
【００３０】
ＣＰＵ１０１は、コンピュータ内外の各装置の制御や情報の計算・加工を行い、メモリに記憶されたプログラムを実行したり、入力装置や記憶装置から情報を受け取り、演算・加工した上で、出力装置や記憶装置に出力したりする。
【００３１】
ＣＰＵ１０１の例として、マイクロプロセッサ(microprocessor)、または同様の機能を有するＩＣ(Integrated Circuit：半導体集積回路)等が考えられる。ただし、実際には、これらの例に限定されない。
【００３２】
メモリ１０２は、ＣＰＵが直接読み書きできるＲＡＭ(Random Access Memory)やＲＯＭ(Read Only Memory)、または、フラッシュメモリ等の半導体記憶装置である。ここでは、メモリ１０２は、主記憶装置（メインメモリ）を示す。ただし、実際には、これらの例に限定されない。
【００３３】
ＨＤＤ１０３は、コンピュータ内外で情報やプログラムを格納する補助記憶装置である。ここでは、ＨＤＤ１０３は、外部記憶装置（ストレージ）を示す。なお、このような外部記憶装置としては、ＳＳＤ(Solid State Drive)等のフラッシュメモリドライブでもよい。
【００３４】
また、このような外部記憶装置としては、ＤＶＤ(Digital Versatile Disk)−ＲＡＭやメモリカード等のデータ記憶媒体（メディア）等でもよい。また、ＨＤＤ１０３は、コンピュータ装置１００に内蔵された記憶装置に限らず、周辺機器（外付けＨＤＤ等）や外部のサーバ（ストレージサーバ等）に設置された記憶装置でもよい。ただし、実際には、これらの例に限定されない。
【００３５】
ＨＤＤ１０３は、セクタという単位で情報を記録する。例えば、一般的なＨＤＤでは５１２ｂｙｔｅである。クラスタとは複数のセクタ集合であり、ＯＳは記憶エリアであるクラスタの単位で情報の読み書きを行う。以降、クラスタ単位での処理を説明するが、セクタ単位でも同様の動作によって、機密情報と通常情報とを区別して記録することができる。
【００３６】
ＩＯリダイレクト手段１０５は、ＯＳやＯＳ内部で動作するアプリケーションプログラムのＨＤＤ１０３への書き込みをフックし、ＨＤＤ１０３の空き領域にリダイレクトすることで、機密情報を区別して記録する。また、読み込みをフックし、リダイレクト先から機密情報を読み込み、機密情報をＯＳへ渡す。
【００３７】
本発明では、ＨＤＤ１０３のクラスタは、四つの状態を持つ。クラスタが空きエリアとなる空き状態は、情報が記録されていない状態である。クラスタが共有エリアとなる共有状態は、機密モードと通常モードとの両方で読み込まれる状態である。
【００３８】
クラスタが通常エリアとなる通常状態は、通常モードでのみ読み込まれる状態である。クラスタが機密エリアとなる機密状態は、機密モードでのみ読み込まれる状態である。マップ生成手段は、ＨＤＤ１０３の状態を示すマップを生成する。
【００３９】
さらに、マップ生成手段１０６は、ＩＯリダイレクト手段１０５によって、機密情報がＨＤＤ１０３のどこにリダイレクトされたのかをマップに記録する。また、ＩＯリダイレクト手段１０５からの問い合わせに応じてマップを参照し、クラスタの状態やリダイレクト先の場所を返す。
【００４０】
削除手段１０７は、マップ生成手段１０６に問い合わせることで、すべてのリダイレクト先を取得し、乱数を書き込む。すなわち、すべての機密情報を乱数で上書きすることによって削除する。
【００４１】
回収手段１０８は、機密モードのときに動作し、ある時点、例えば、プロジェクト開始時点と現時点のファイルの構成を比較し、機密モードで動作中に更新されたファイルと新規作成されたファイルを、ＣＤ−ＲＯＭやＵＳＢメモリなどの外部記憶媒体、またはファイルサーバなどの他のコンピュータへ機密情報を書き込む。
【００４２】
暗号化手段１０９は、機密情報がリダイレクトされる際に、ＩＯリダイレクト手段１０５から機密情報を受け取り、暗号化した後、ＩＯリダイレクト手段１０５へ暗号化した機密情報を返す。
【００４３】
つぎに、本実施の形態の全体の動作について説明する。初期状態では、ＨＤＤ１０３の情報が記録されているクラスタはすべて共有状態であり、情報が記録されていないクラスタは空き状態である。
【００４４】
マップ生成手段１０６は、ＨＤＤ１０３のファイルシステムのクラスタ使用情報を読み込むことにより、初期状態のマップを生成する。その後、以下に示されるように、機密モードや通常モードで書き込みが行われると、機密状態や通常状態に状態が変化する。
【００４５】
本発明は、図２に示すように、機密モードにおいてＯＳやアプリケーションプログラムが通常状態のクラスタに書き込むと、書き込みを機密状態のクラスタにリダイレクトする。また、機密モードにおいて、通常状態のクラスタが読み込まれた場合に、リダイレクトを行ない、機密状態のクラスタを読み込む。この動作により、機密情報は、機密状態のクラスタに記録される。
【００４６】
図３のシーケンス図を参照して、動作を詳細に説明する。ＯＳやＯＳ上で動作するアプリケーションプログラムが、ＨＤＤ１０３に対して、読み書きの命令を発行する。ＩＯリダイレクト手段１０５は、この命令をフックする（Ｓ１）。つぎに、機密モードで動作しているか否かを判定し（Ｓ２）、命令が読み書きのどちらかであるかを判定する（Ｓ３またはＳ１２）。
【００４７】
まず、機密モードの書き込みの動作を説明する。ＩＯリダイレクト手段１０５は、マップ生成手段１０６に、ＯＳやアプリケーションプログラムが指定した書き込み対象のクラスタの状態を問い合わせる。
【００４８】
マップ生成手段１０６は、図４に示されるマップを参照することで、書き込みクラスタの状態を取得し、状態をＩＯリダイレクト手段１０５へ伝える（Ｓ４）。ＩＯリダイレクト手段は、書き込み対象の状態を判定し、つぎに示す処理を行う（Ｓ５）。
【００４９】
ＯＳやアプリケーションプログラムが指定した書き込み対象のクラスタが共有状態の場合、ＩＯリダイレクト手段１０５は、マップ生成手段１０６に、機密状態のクラスタ作成の指示を行う。
【００５０】
マップ生成手段１０６はマップを参照し、空き状態のクラスタを１つ選択し、機密状態に変更する。さらに、マップ生成手段１０６は、書き込み対象クラスタの状態を通常状態に変更する。
【００５１】
そして、書き込み対象通常状態のクラスタと作成した機密状態のクラスタとの紐付けをマップに記録する。そして、マップ生成手段１０６は、作成した機密状態のクラスタの場所をＩＯリダイレクト手段１０５へ返す。最後に、ＩＯリダイレクト手段１０５は、機密状態のクラスタに情報を書き込む（Ｓ６）。
【００５２】
ＯＳやアプリケーションプログラムが指定した書き込み対象のクラスタが通常状態の場合、すなわち、過去にステップＳ６の動作によってリダイレクトが行われたことがある場合、ＩＯリダイレクト手段１０５はマップ生成手段１０６へ、リダイレクト先を問い合わせる。
【００５３】
マップ生成手段１０６は、マップに記録されている当該クラスタのリダイレクト先のクラスタの場所を読み込み、ＩＯリダイレクト手段１０５へ返す。ＩＯリダイレクト手段１０５は、リダイレクト先のクラスタに対して書き込む（Ｓ７）。
【００５４】
ＯＳやアプリケーションプログラムが指定した書き込み対象のクラスタが空き状態の場合、ＩＯリダイレクト手段１０５は、リダイレクトを行わずに、書き込み対象クラスタに対して書き込む。
【００５５】
さらに、ＩＯリダイレクト手段１０５は、書き込み対象クラスタを機密状態に変更するようにマップ生成手段１０６へ指示し、マップ生成手段１０６は当該クラスタの状態を変更する（Ｓ８）。
【００５６】
ＯＳやアプリケーションプログラムが指定した書き込み対象のクラスタが機密状態の場合、すなわち、過去にステップＳ８によって機密情報が書き込まれたクラスタである場合、ＩＯリダイレクト手段１０５は、リダイレクトを行わずに、書き込み対象クラスタに対して書き込む（Ｓ９）。
【００５７】
つぎに、機密モードの読み込みの動作を説明する。ＩＯリダイレクト手段１０５は、ステップＳ４と同様に、ＯＳやアプリケーションプログラムが指定した読み込み対象のクラスタの状態を取得し（Ｓ４）、状態に応じてつぎに述べる処理を行う（Ｓ５）。
【００５８】
読み込み対象のクラスタが共有状態または機密状態の場合、ＩＯリダイレクト手段１０５は、リダイレクトを行わずに、読み込み対象クラスタに記録されている情報を読み込み、ＯＳへ返す（Ｓ１１）。
【００５９】
なぜなら、共有状態のクラスタはリダイレクトが行われていないクラスタだからである。また、機密状態のクラスタは、ステップＳ８によって書き込まれたクラスタであり、ステップＳ８ではリダイレクトが行われていないためである。
【００６０】
読み込み対象のクラスタが通常状態の場合、書き込まれた情報はステップＳ６の動作によって生成された機密状態のクラスタに記録されている。よって、ＩＯリダイレクト手段１０５は、マップ生成手段１０６に、リダイレクト先の機密状態のクラスタの場所を問い合わせる。
【００６１】
マップ生成手段１０６は、マップを参照し、通常状態のクラスタに対応する機密状態のクラスタの場所を取得し、ＩＯリダイレクト手段１０５へ返す。ＩＯリダイレクト手段１０５は、機密状態のクラスタから情報を読み込みＯＳへ渡す（Ｓ１０）。
【００６２】
つぎに、通常モードの書き込みの動作を説明する。まず、ステップＳ４と同様に、読み込み対象クラスタの状態を問い合わせる（Ｓ１３）。書き込み対象のクラスタが共有状態の場合、そのまま当該クラスタへ書き込むと、通常モードと機密モードで、当該クラスタの情報が共有されているため、機密モードまで影響が及び、機密モードのファイルシステムが破損してしまう。よって、書き込む前に、つぎに示す動作によって、共有状態を解除する。
【００６３】
マップ生成手段は、ステップＳ６と同様に、機密状態のクラスタを作成する。そして、ＩＯリダイレクト手段は、書き込み対象の共有状態のクラスタの情報を、機密状態のクラスタへコピーする。
【００６４】
この動作により、次回、機密モードで書き込み対象のクラスタが読み込まれたときには、リダイレクト先の機密状態のクラスタに記録された古い情報が読み出されることになり、ファイルシステムが破損することはない（Ｓ１５）。
【００６５】
上記の動作によって共有状態を解除した後、ＩＯリダイレクト手段は、リダイレクトを行わずに、ＯＳやアプリケーションプログラムが指定した書き込み対象クラスタに対して情報を書き込む（Ｓ１６）。
【００６６】
ＯＳやアプリケーションプログラムが指定した書き込み対象のクラスタが通常状態または、空き状態であるとき、ＩＯリダイレクト手段１０５は、リダイレクトを行わずに書き込む。マップ生成手段１０６は、書き込み対象のクラスタの状態が空き状態であれば、状態を通常状態に変更する（Ｓ１７）。
【００６７】
つぎに、通常モードの読み込みの動作を説明する。通常モードでの書き込みは、ステップ１６、ステップ１７で説明したように、リダイレクトは行われない。よって、読み込みもリダイレクトを行わない。
【００６８】
ＩＯリダイレクト手段１０５は、ＯＳやアプリケーションプログラムが指定した読み込み対象クラスタから情報を読み込み、ＯＳやアプリケーションプログラムへ返す（Ｓ１８）。
【００６９】
以上のように、ＩＯリダイレクト手段１０５が読み書き対象のクラスタをリダイレクトすることによって、機密情報を区別して記録する。ＩＯリダイレクト手段１０５は、上記の動作に加え、ＨＤＤ１０３の消費量を抑えるために、以下の動作を行ってもよい。
【００７０】
上記の動作では、ＩＯリダイレクト手段１０５は、ステップＳ６で書き込みをリダイレクトし、機密状態のクラスタを生成して情報を記録していたが、以下のように、同じデータが書き込まれるときは、リダイレクトを行わなくてもよい。
【００７１】
ステップＳ６の開始時に、ＩＯリダイレクト手段１０５は、ＨＤＤ１０３から書き込み対象のクラスタの情報を読み込む。つぎに、読み込んだ情報と書き込もうとしている情報を比較する。
【００７２】
異なる情報である場合、上に示したステップＳ６の動作によって、リダイレクトを行う。同じ情報である場合、リダイレクトを行わず、書き込み対象のクラスタにデータを書き込む。同じ情報を書き込んでも、ＨＤＤ１０３に記録される情報は変化しないので、実際には書き込みを行わず、書き込みが成功したというメッセージをＯＳに返してもよい。
【００７３】
この動作では、機密モードにおいて、共有状態のクラスタに同じデータを書き込んだとき、機密情報を記憶するクラスタを作成しないので、重複する情報を記録することを防ぎ、ＨＤＤ１０３の使用量を減らすことができる。
【００７４】
さらに、別の動作を説明する。上記の動作では、ＩＯリダイレクト手段１０５は、ステップＳ７においてリダイレクト先の機密状態のクラスタに書き込みを行っていたが、書き込もうとしている情報とリダイレクト元の通常状態のクラスタの情報が同じ場合に、書き込みを行わずに、リダイレクト先の機密状態のクラスタを削除してもよい。
【００７５】
ステップＳ７の開始時に、ＩＯリダイレクト手段１０５は、リダイレクト元である通常状態のクラスタの情報を読み込む。そして、読み込んだ情報と、書き込もうとしている情報を比較する。
【００７６】
同じである場合、リダイレクトを行って機密状態のクラスタに書き込むと、通常状態のクラスタと機密状態のクラスタには、同じ情報が記録されることになり、ＨＤＤ１０３を無駄に消費してしまう。
【００７７】
よって、ＩＯリダイレクト手段１０５はマップ生成手段１０６に、リダイレクト元の通常状態のクラスタを、共有状態に変更するように指示し、マップ生成手段１０６は、当該クラスタの状態を共有状態に変更する。
【００７８】
さらに、ＩＯリダイレクト手段１０５は、リダイレクト先の機密状態のクラスタを空き状態に変更するように指示し、マップ生成手段は、当該クラスタの状態を空き状態に変更する。
【００７９】
リダイレクト元のクラスタの情報と書き込もうとしている情報が異なる場合、上記で説明した、ステップＳ７のリダイレクトの動作を行う。この動作によって、通常状態のクラスタと機密状態のクラスタで、重複したデータを持つことを回避できるので、よりＨＤＤ１０３の消費量を減らすことができる。
【００８０】
さらに、別の動作について説明する。ＩＯリダイレクト手段１０５は、以下の動作によって、機密状態や通常状態のクラスタを削除し、ＨＤＤ１０３の消費量を減らしてもよい。
【００８１】
多くのファイルシステムの場合、ファイルの情報をＨＤＤ１０３のクラスタに記録するために、ファイルの情報がどのクラスタに書き込まれているかを示す情報（ファイルテーブル）を持つ。
【００８２】
ファイルの削除は、このファイルテーブルの情報を書き換え、削除するファイルに対して削除を示すマークをつけることにより、ＯＳやアプリケーションプログラムから当該ファイルを見えなくすることによって行われる。
【００８３】
よって、ＩＯリダイレクト手段１０５は、ファイルテーブルの変化を監視することによって、ファイルの削除を検知し、削除されたファイルが記録されているマップ生成手段１０６のリダイレクト関係も削除することにより、ＨＤＤ１０３の消費量を減らすことができる。
【００８４】
また、本実施の形態のＩＯリダイレクト手段１０５は、通常モードにおいて、ＯＳやアプリケーションプログラムが、機密状態のクラスタに対して書き込みを行わないように、以下の処理を行う。
【００８５】
まず、ファイルの作成やファイルの内容の追加によって、機密状態のクラスタや通常状態のクラスタが生成された場合を考える。多くのファイルシステムでは、クラスタ単位でそのクラスタが使用されているか否かを記憶している。
【００８６】
ファイルシステムも、ＨＤＤ１０３に記録されるため、ＩＯリダイレクト手段の動作によって、機密モードと通常モードでは、異なる内容になる。そのため、例えば、図４のクラスタＮｏ５は、機密情報が記録されているにも関わらず、通常モードのＯＳから見ると何もデータが書かれていないように見える。
【００８７】
よって、ＯＳはデータをクラスタＮｏ５に書き込もうとしてしまう。書き込みが行われると、機密モードでクラスタＮｏ５に書き込んだ情報が失われるため、これを防ぐ必要がある。
【００８８】
これを防ぐために、ＩＯリダイレクト手段１０５は、ステップＳ６またはステップＳ１５で機密状態のクラスタが生成され、ファイルシステムのクラスタ使用情報が使用中に変更されたとき、通常モードのファイルシステムのクラスタ使用情報についても、使用中に変更する。
【００８９】
上記とは逆の場合、すなわち、通常モードのステップＳ１４で空き状態と判定され、ステップＳ１６において、状態を通常状態に変更したクラスタは、機密モードのときにＯＳからは何も記録されていないように見えるため、上書きされる可能性がある。
【００９０】
よって、ＩＯリダイレクト手段１０５は、ステップＳ１６で通常モードでのクラスタの使用情報を機密モードのクラスタの使用情報に反映させることによって、機密モードで当該クラスタにＯＳが書き込むことを防ぐ。
【００９１】
例えば、ＮＴＦＳファイルシステムでは、＄ＢＩＴＭＡＰという特殊なファイルに、ＨＤＤ１０３の各クラスタが使用されているか否かを記録している。ＩＯリダイレクト手段１０５は、書き込みの命令を監視することによって、この＄ＢＩＴＭＡＰファイルの変化を監視する。
【００９２】
そして、機密モードで＄ＢＩＴＭＡＰが更新され、あるクラスタの状態が使用中に変更したことを検知し、同様の変更を通常モードの＄ＢＩＴＭＡＰファイルに対しても行えばよい。その逆に、通常モードで＄ＢＩＴＭＡＰが更新された場合に、その変化を機密モードにも反映させればよい。
【００９３】
上記の動作の代わりに、＄ＢＩＴＭＡＰが記録されているクラスタについてはリダイレクトを行わない、すなわち、＄ＢＩＴＭＡＰのファイルが記録されるクラスタを、通常モードと機密モードで共通にすることによって、＄ＢＩＴＭＡＰの更新を他のモードに伝えてもよい。
【００９４】
つぎに、ファイルが削除された場合を考える。ＯＳやアプリケーションプログラムがファイルを削除し、そのファイルが共有状態のクラスタを持つ場合、ファイルシステムのクラスタ使用情報が未使用に変更されると、ＯＳやアプリケーションプログラムが当該クラスタに別の情報を書き込み、他のモードのファイルが破損する可能性がある。
【００９５】
よって、ＩＯリダイレクト手段１０５は、ファイルシステムのクラスタ使用情報を監視し、未使用に変更されたクラスタが、共有状態であるか否かを判定し、共有状態である場合は、未使用に変更された情報を使用中に戻す。
【００９６】
上記のように、ファイルシステムのクラスタ使用情報を操作するのではなく、書き込まれたときにリダイレクトを行うことによって、クラスタが上書きされ、情報が失われることを防いでもよい。
【００９７】
例えば、ステップＳ６やステップＳ１５で生成された機密状態のクラスタが、通常モードでは何も記録されていないように見えるため、書き込みの対象となる可能性がある。そこで、ステップＳ１４において、書き込み対象が機密状態であるかを確認する。
【００９８】
そして、機密状態である場合、ステップＳ１５と同様の手順で、機密状態のクラスタの情報を空きクラスタにコピーした後、書き込み対象クラスタに情報を書き込む。機密状態のクラスタの情報はコピーされるため、情報が失われることはない。
【００９９】
リダイレクト先を持たない通常状態のクラスタ、すなわち、ステップＳ１４において空き状態と判定されて、ステップＳ１６で空き状態から通常状態になったクラスタは、機密モードで何も記録されていないように見えるため、書き込みの対象となる可能性がある。よって、機密モードで書き込みが行われたときは、以下の動作を行う。
【０１００】
ステップＳ７で、通常状態のクラスタのリダイレクト先が存在するか否かを確認する。存在しない場合、ＩＯリダイレクト手段は、上記で説明したステップＳ７の動作の代わりに、ステップＳ６と同様の動作を行ない、新たにリダイレクト先の機密状態のクラスタを生成し、機密状態のクラスタに情報をリダイレクトする。
【０１０１】
リダイレクトが行われるため、通常状態のクラスタの情報が失われることはない。つぎに、削除手段１０７の動作を説明する。削除手段１０７は、ユーザから機密情報削除指示を受けると、マップ生成手段１０６に対し、すべての機密状態のクラスタの場所を問い合わせる。
【０１０２】
マップ生成手段１０６は、マップを参照し、すべての機密状態のクラスタの場所を返す。削除手段１０７は、すべての機密状態のクラスタに対して、乱数を書き込み、機密情報を削除する。
【０１０３】
本発明は、機密モードでの書き込み（ステップＳ６からステップＳ８）の動作によって、機密モードで書き込まれた情報は、すべて機密状態のクラスタに書き込まれるように動作するため、機密状態のクラスタを削除することによって、すべての機密情報の削除が保証できる。
【０１０４】
上記の説明では、機密情報削除指示は、ユーザからであったが、組織の管理者などがネットワークを通じて削除手段１０７に対して機密情報削除指示を行ってもよい。また、削除手段１０７は、特定のサーバと定期的に通信を行い、通信が一定期間行えなかった場合に、機密情報の削除を行ってもよい。この動作では、例えば、コンピュータが盗まれたときでも、機密情報が削除されるため、情報漏洩が起こらない。
【０１０５】
つぎに、回収手段１０８の動作を説明する。まず、回収手段１０８は特定のタイミング、例えば、本システムが動作を始めたときや、あるプロジェクトが開始したときに、ＨＤＤ１０３をスキャンし、すべてのファイルについて、図５に示すように、ファイル名と更新日時を記録したリスト（初期ファイルリスト）を作成する。
【０１０６】
そして、回収手段１０８が機密情報回収の指示を受けたとき、機密モードで本システムを起動し、初期ファイルリストの作成と同様に、すべてのファイルについて、ファイル名と更新日時を記録したリスト（更新ファイルリスト）を作成する。
【０１０７】
つぎに、以下の動作によって、回収手段１０８は、機密モードで更新されたファイルと新たに作成されたファイル、すなわち、機密情報が記録されているファイルを特定する。
【０１０８】
更新されたファイルを特定するために、回収手段１０８は、初期ファイルリストと更新ファイルリストの両方に存在するファイルについて、更新日時を比較し、更新日時が異なるファイルを、回収対象リストに追加する。
【０１０９】
また、回収手段１０８は、新規作成されたファイルを特定するために、初期ファイルリストには存在せず、更新ファイルリストにのみ存在するファイルを、回収対象ファイルリストに追加する。
【０１１０】
最後に、回収手段１０８は、回収対象のファイルをＨＤＤ１０３から読み出し、外部記憶媒体にコピーする。ＮＡＳやファイルサーバなどへ、ネットワーク経由でアップロードしてもよい。
【０１１１】
つぎに暗号化手段１０９の動作を説明する。暗号化手段１０９は、ＩＯリダイレクト手段１０５から平文情報を受け取ると、内部に記憶している暗号鍵を用いて暗号化し、ＩＯリダイレクト手段１０５へ返す。また、暗号化情報を受け取ると、復号し、平文情報をＩＯリダイレクト手段１０５へ返す。
【０１１２】
暗号化手段を用いて、機密情報を暗号化する場合、ＩＯリダイレクト手段１０５は、機密モードでの書き込み時、すなわちステップＳ６，ステップＳ７，ステップＳ８，ステップ９で、平文情報を暗号化手段１０９に渡して暗号化し、暗号化された情報をＨＤＤ１０３に書き込む。
【０１１３】
また、機密モードでの読み込み時、すなわちステップＳ１０，ステップ１１において、ＨＤＤ１０３から読み込んだ暗号化された情報を、暗号化手段１０９に渡して復号し、平文の情報をＯＳへ渡す。
【０１１４】
上記のように、機密モードのＨＤＤ１０３へのアクセス時に、ＩＯリダイレクト手段１０５が暗号化手段１０９を呼び出すことにより、ＨＤＤ１０３上の機密情報を暗号化できる。
【０１１５】
よって、通常モードにおいて、ＯＳやアプリケーションプログラムが機密状態のクラスタの情報を読み込んだとしても、暗号化されているため、機密情報が通常モードで扱われない。
【０１１６】
また、この動作では、暗号化は機密情報のみに限られ、共有状態のクラスタの情報、例えば、ＯＳやアプリケーションプログラムの実行ファイルなどは暗号化されないため、ＯＳやアプリケーションプログラムの実行速度が低下することはない。
【０１１７】
機密情報が通常モードで扱われることを防ぐ方法として、上記では、暗号を用いたが、ＩＯリダイレクト手段１０５が、機密状態を持つクラスタへのアクセスを遮断してもよい。
【０１１８】
ＩＯリダイレクト手段１０５は、通常モードで動作中に読み込み命令をフックすると、マップ生成手段１０６へ、読み込み対象のクラスタの状態を問い合わせる。クラスタの状態が機密状態であった場合、ＩＯリダイレクト手段１０５は、ＯＳへ読み込み失敗のエラーメッセージを返す。エラーメッセージの代わりに、ダミーの情報、例えば、すべて０を返してもよい。
【０１１９】
つぎに、本発明の実施の第二の形態について図面を参照して詳細に説明する。図６は実施の第二の形態を示すブロック図である。図６に示すように、ＮＩＣ１１０とネットワーク制御手段１１１を備えている点で、実施の第一の形態と異なっている。実施の第一の形態と同様の構成要素については、同一の符号を付し、詳細な説明を省略する。
【０１２０】
ＮＩＣ１１０は、通信回線（ネットワーク）を介して、外部と情報の送受信を行うための通信装置である。ネットワーク制御手段１１１は、ＩＯリダイレクト手段１０５へモードを問い合わせ、ＯＳやアプリケーションプログラムが出力したネットワーク通信をフックし、機密モードのときのみ、特定のサーバへのアクセスを許可する。
【０１２１】
ネットワーク制御手段１１１の動作を詳細に説明する。ネットワーク制御手段は、内部にファイルサーバのアドレスを保有する。ネットワーク制御手段は、コンピュータが起動すると、ＩＯリダイレクト手段１０５に、どちらのモードで動作しているかを問い合わせる。
【０１２２】
通常モードで動作しているとき、ネットワーク制御手段１１１は、ＯＳまたはアプリケーションプログラムのネットワーク通信を監視する。つぎに、ネットワーク制御手段１１１は、通信先が、内部に記憶しているサーバのアドレスと等しいか否かを判定する。等しい場合、ネットワーク制御手段は、通信を遮断する。等しくない場合、通信を許可する。
【０１２３】
機密モードで動作しているとき、ネットワーク制御手段１１１は、同様に通信を監視し、通信先が記憶しているアドレスと等しいか否かを判定する。等しい場合、ネットワーク制御手段は、通信を許可し、等しくない場合、通信を遮断する。
【０１２４】
以上の動作によって、ＯＳやアプリケーションプログラムは、機密モードで動作しているときのみ、ファイルサーバにアクセス可能である。すなわち、ファイルサーバからダウンロードされた情報は、すべて機密状態のクラスタに保存される。
【０１２５】
よって、削除手段１０７は、ファイルサーバからダウンロードされた情報を、すべて削除することが保証できる。また、回収手段１０８は、ファールサーバからダウンロードした情報をすべて回収することができる。
【０１２６】
以上のように、実施の第二の形態では、サーバからダウンロードした機密情報をすべて削除または回収することを保証できる効果がある。
【０１２７】
上記の説明では、ネットワーク制御手段１１１は、内部にサーバのアドレスを記憶し、通信の可否を決定していたが、サーバのアドレスに加えて、ディレクトリ名やファイル名も記録し、通信の可否を決定してもよい。
【０１２８】
この場合、機密モードでは、サーバのアドレスに加えて、アクセスするディレクトリ名やファイル名が等しいときのみ、通信を許可する。この動作では、例えば、あるサーバの/secretディレクトリのみを機密情報として扱うことができる。
【実施例１】
【０１２９】
つぎに、より具体的に本願発明の実施例を説明する。図１のデータ処理装置１００は、ＣＰＵ１０１、メモリ１０２、ＨＤＤ１０３、マウス、キーボード、ディスプレイのようなハードウェアを備える一般的なコンピュータである。【０１３０】
ＩＯリダイレクト手段１０５やマップ生成手段１０６は、例えば、ＯＳのドライバとして実装できる。コンピュータの電源が入れられると、ＩＯリダイレクト手段１０５は、通常モードか機密モードのどちらで動作するかをユーザに問い合わせるダイアログを表示させる。このとき、ＩＤとパスワードを入力させることによって、ユーザ認証を行ってもよい。【０１３１】
つぎに、ＩＯリダイレクト手段１０５は、ＯＳやアプリケーションプログラムの読み書き命令のフックを実行する。例えば、Ｗｉｎｄｏｗｓ(登録商標)であれば、ボリュームフィルタドライバを、ＮＴＦＳドライバと、ディスクドライバの間に挟みこむことにより、読み書きの命令であるＩＲＰ（ＩＯリクエストパケット）をフックすることができる。【０１３２】
例えば、機密モードで書き込みの命令をフックした場合、ＩＯリダイレクト手段１０５は、マップ生成手段１０６へ、書き込み対象のクラスタの状態を問い合わせる。例えば、Ｗｉｎｄｏｗｓでは、ＩＯリダイレクト手段１０５は、ＩＲＰの命令がＩＲＰ＿ＭＪ＿ＷＲＩＴＥであれば書き込み命令と判定することができ、書き込みクラスタの場所は、ＩＲＰ中のパラメータから取得することができる。【０１３３】
マップ生成手段１０６は、図４のマップを作成する。例えば、マップ生成手段１０６は、初回起動時に、ＨＤＤ１０３の空き領域にＨＤＤ１０３のクラスタ総数の分だけ、クラスタの状態を記録する領域を用意し、それをマップとして参照すればよい。【０１３４】
例えば、状態を記憶する領域を２ｂｙｔｅにした場合、ＨＤＤ１０３のクラスタ数が１０００個であるとき、２０００ｂｙｔｅの領域を確保すればよい。また、クラスタ番号１２３の場所の状態を調べたいときには、１２３＊２ｂｙｔｅ目の情報を読み込めばよい。【０１３５】
初回起動時にマップ生成手段１０６は、例えば、ファイルシステムがＮＴＦＳであれば、クラスタが使用中か否かを記録した＄ＢＩＴＭＡＰファイルを参照することによって、すべてのクラスタについて、使用中であれば共有状態を、未使用であれば空き状態を、マップに記録する。例えば、ファイルシステムがＦＡＴであれば、ディレクトリエントリを参照することによって、各クラスタが使用中であるか否かを判定し、同様の処理を行う。【０１３６】
対象のクラスタが共有状態である場合、例えば、図４のクラスタＮｏ１が書き込み対象であるとき、マップ生成手段１０６は、空き状態であるＮｏ４クラスタの状態を機密状態に変更する。【０１３７】
そして、マップ生成手段は、クラスタＮｏ１のリダイレクト先として、クラスタＮｏ４をマップに記録する。ＩＯリダイレクト手段１０５は、書き込み命令の中の対象クラスタを、Ｎｏ１からＮｏ４に書き換える。【０１３８】
例えば、ＩＯリダイレクト手段１０５がＷｉｎｄｏｗｓのドライバとして実装されている場合、ＩＲＰ中の書き込み位置情報をクラスタＮｏ４に変更し、下層のディスクドライバに変更したＩＲＰを渡すことによって、空き状態であったＮｏ４クラスタに情報を書き込む。【０１３９】
ＨＤＤ１０３の消費量を減らすために、以下の動作を行ってもよい。上記の書き込み動作を行う前に、ＩＯリダイレクト手段１０５は、例えば、書き込み対象のクラスタＮｏ１の場合、クラスタＮｏ１に対して読み込みのＩＲＰを発行して情報を読み込む。【０１４０】
つぎに、クラスタＮｏ１に記録されている情報と、ＯＳが発行したＩＲＰに含まれる書き込み情報と比較し、情報が同一の場合は、機密状態のクラスタを作らずに、クラスタＮｏ１に書き込む。書き込みを行わずに、書き込み成功のメッセージをＯＳに返してもよい。【０１４１】
対象のクラスタが通常状態である場合、例えば、図４のクラスタＮｏ２が書き込み対象であるとき、ＩＯリダイレクト手段１０５はマップ生成手段１０６へリダイレクト先を問い合わせ、マップ生成手段１０６は、リダイレクト先の機密状態のクラスタであるＮｏ３を返す。そして、ＩＯリダイレクト手段１０５は、書き込み命令中の対象クラスタをＮｏ２からＮｏ３に書き換える。【０１４２】
ＨＤＤ１０３の消費量を減らすために、以下の動作を行ってもよい。例えば、上記のリダイレクトの動作を行う前に、ＩＯリダイレクト手段１０５は、リダイレクト元であるクラスタＮｏ２の情報を、ＩＰＲ読み込み命令を発行して読み込む。【０１４３】
つぎに、読み込んだ情報と、書き込もうとしている情報を比較する。読み込んだ情報と書き込もうとしている情報が同じである場合、ＩＯリダイレクト手段はリダイレクトを行わない。【０１４４】
そして、マップ生成手段はクラスタＮｏ３の状態を空き状態に変更する。更に、マップ生成手段は、クラスタＮｏ２の状態を共有状態に書き換える。読み込んだ情報と書き込もうとしている情報が異なる場合は、上記で説明したように、ＩＯリダイレクト手段は、クラスタＮｏ３に書き込みのリダイレクトを行う。【０１４５】
対象のクラスタが空き状態である場合、例えば、図４のクラスタＮｏ４が書き込み対象であるとき、マップ生成手段１０６は、クラスタＮｏ４の状態を機密状態に変更する。ＩＯリダイレクト手段１０５は、リダイレクトを行わずに、クラスタＮｏ４に情報を書き込む。【０１４６】
つぎに、機密モードの読み込みの動作の具体例を示す。読み込み対象のクラスタの状態が通常状態であるとき、例えば、図４のクラスタＮｏ２であるとき、ＩＯリダイレクト手段１０５は、マップ生成手段１０６にリダイレクト先を問い合わせ、ＷｉｎｄｏｗｓであればＩＲＰの読み込み対象のクラスタの番号を変更することによって、クラスタＮｏ３から情報を読み込む。【０１４７】
読み込み対象のクラスタが共有状態または機密状態であるとき、例えば、図４のクラスタＮｏ１やクラスタＮｏ５であるとき、リダイレクトを行わない。例えば、Ｗｉｎｄｏｗｓであれば、フックしたＩＲＰを変更せずに、下層のディスクドライバに渡す。【０１４８】
つぎに、通常モードの書き込みの動作の具体例を示す。例えば、書き込み対象が共有状態である図４のクラスタＮｏ１であるとき、マップ生成手段１０６は、空き状態のクラスタＮｏ４を機密状態に変更し、クラスタＮｏ１のリダイレクト先をＮｏ４に設定する。【０１４９】
ＩＯリダイレクト手段１０５は、例えば、Ｗｉｎｄｏｗｓであれば、クラスタＮｏ１への読み込みＩＲＰを発行してクラスタＮｏ１に記録されている情報を読み込み、クラスタＮｏ４への書き込みＩＲＰを発行することにより、クラスタＮｏ１の情報をクラスタＮｏ４にコピーする。【０１５０】
つぎに、フックしたＩＲＰの書き込み場所を変更することによって、クラスタＮｏ１に情報を書き込む。書き込み対象が、通常状態のクラスタＮｏ２や空き状態のクラスタＮｏ４であるとき、ＩＯリダイレクト手段１０５は、リダイレクトを行わない。つまり、例えば、Ｗｉｎｄｏｗｓであれば、フックしたＩＲＰを変更せずに、下層のディスクドライバへ渡す。【０１５１】
通常モードの読み込みについては、リダイレクトを行わない。ＩＯリダイレクト手段１０５は、フックしたＩＲＰを変更せずに、下層のディスクドライバへ渡す。【０１５２】
つぎに、ファイル削除時の動作を具体的に説明する。ＩＯリダイレクト手段１０５は、以下の動作によって、機密状態や通常状態のクラスタを削除してもよい。【０１５３】
ＩＯリダイレクト手段１０５は、例えば、ＯＳがファイルシステムとしてＮＴＦＳを利用していれば、ＭＦＴ（マスターファイルテーブル）を、ＦＡＴを利用していれば、ディレクトリエントリを監視することによって、ファイルの削除を検知する。【０１５４】
具体的には、ＭＦＴやディレクトリエントリは、ＨＤＤ１０３に記録されているため、ＨＤＤ１０３への書き込みを監視することによって、ファイルの削除を検知する。ファイルの削除を検知すると、ＩＯリダイレクト手段１０５は、例えば、ＮＴＦＳではＭＦＴを参照することによって、ＦＡＴでは、ファイルアロケーションテーブルを参照することによって、ファイルの情報が記録されているクラスタの場所を取得する。【０１５５】
そして、取得した各クラスタを対象として、以下の処理を行う。機密モードで、例えば、対象のクラスタが図４のクラスタＮｏ２のように、通常状態でリダイレクト先がＮｏ３の場合、ＩＯリダイレクト手段は、クラスタＮｏ３を空き状態に変更し、クラスタＮｏ２のリダイレクト先を無しに変更する。【０１５６】
機密モードで、例えば、対象のクラスタが図４のクラスタＮｏ５のように、機密状態であり、リダイレクト先となっていない場合、ＩＯリダイレクト手段はマップ生成手段に指示し、クラスタＮｏ５の状態を空き状態に変更する。【０１５７】
通常モードで、例えば、対象のクラスタが図４のクラスタＮｏ２のように、リダイレクト先を持つ場合、ＩＯリダイレクト手段は、リダイレクト先であるクラスタＮｏ３に記録されているデータを、クラスタＮｏ２にコピーする。そして、ＩＯリダイレクト手段は、マップ生成手段に指示を行い、クラスタＮｏ３の状態を空き状態に、クラスタＮｏ２の状態を機密状態に変更する。【０１５８】
通常モードで、例えば、対象のクラスタが図４のクラスタＮｏ６のように通常状態、かつリダイレクト先がない場合、ＩＯリダイレクト手段は、マップ生成手段に指示し、クラスタＮｏ６の状態を空き状態に変更する。【０１５９】
つぎに、削除手段１０７の具体的な例について説明する。削除手段１０７は、マップ生成手段１０６から、機密状態のクラスタのクラスタ番号を受け取ると、例えば、削除手段１０７をＷｉｎｄｏｗｓのドライバとして実装するのであれば、書き込みの命令を、デバイスドライバに対して発行し、機密状態のクラスタを上書きする。【０１６０】
例えば、マップの状態が図４であれば、マップ生成手段１０６はクラスタＮｏ３とクラスタＮｏ５を削除手段１０７へ通知し、削除手段１０７は、２つのクラスタを対象に、書き込みのＩＲＰを発行する。書き込む情報は、乱数やゼロを書き込めばよい。より完全にＨＤＤ１０３の情報を削除するために、複数回書き込みを行ってもよい。【０１６１】
つぎに、回収手段１０８の具体的な動作の例について説明する。回収手段１０８は、本発明が始めて動作するときに、ＨＤＤ１０３をスキャンし、ファイル名と更新日時を記録した初期ファイルリストを作成する。【０１６２】
また、回収の指示を受けたときに、同様の更新ファイルリストを作成する。そして、それぞれのファイルリストの更新日時を比較する。例えば、初期ファイルリストと更新ファイルリストが図５であるとき、ファイルａとファイルｂは、更新日時が同じため、回収ファイルリストには加えない。ファイルｃは更新日時が変わっているため、回収ファイルリストに追加する。【０１６３】
ファイルｄは、初期ファイルリストに存在せず、更新ファイルリストにのみ存在するため、新規作成されたファイルとみなして回収ファイルリストに追加する。初期ファイルリストに存在し、更新ファイルリストに存在しないファイルは削除されたファイルであるので、回収ファイルリストには追加しない。【０１６４】
最後に、回収手段１０８は、作成した回収ファイルリストに記載されているファイルをＨＤＤ１０３から読み込み、例えば、ＣＤ−ＲやＵＳＢメモリなどの外部記憶媒体へコピーする。コピーは、例えば、Ｎｅｔｗｏｒｋ  ＡｔｔａｃｈｅｄＳｔｏｒｅａｇｅ（ＮＡＳ）やファイルサーバへ、Ｗｉｎｄｏｗｓファイル共有プロトコルやＦＴＰなどのファイル転送プロトコルを用いて行ってもよい。【０１６５】
つぎに、暗号化手段１０９の具体的な例について説明する。暗号化手段１０９は、例えば、ドライバやアプリケーションプログラムとして実装できる。暗号化手段１０９は、ＩＯリダイレクト手段１０５から平文のクラスタの情報を受け取ると、例えば、ＡＥＳやＲＣ４などの暗号アルゴリズムを用いて、クラスタの情報を暗号化し、ＩＯリダイレクト手段１０５に返す。逆に、暗号化された情報を受け取ったときは、復号を行ない、ＩＯリダイレクト手段１０５に返す。【０１６６】
つぎに、具体的な実施例を用いて、本発明の第二の実施例を説明する。本発明の第一の実施例と同様の箇所については説明を省略する。【０１６７】
ネットワーク制御手段１１１は、例えば、ドライバとして実装することができる。ネットワーク制御手段は、コンピュータ起動時にＩＯリダイレクト手段１０５へ動作モードを問い合わせる。【０１６８】
通常モードの場合、例えば、ネットワーク制御手段１１１は、ＮＩＣ１１０へ出力されるＩＰパケットをフックする。そして、ＩＰパケットのヘッダに含まれている宛先ＩＰアドレスと、ネットワーク制御手段が内部に記憶しているサーバのＩＰアドレスを比較する。ＩＰアドレスが同一の場合、パケットを破棄することによって通信を禁止する。一方、ＩＰアドレスが異なる場合、パケットをＮＩＣへ渡すことにより、通信を許可する。【０１６９】
機密モードの場合、ネットワーク制御手段１１１は、同様にパケットをフックする。そして、通常モードとは逆に、宛先ＩＰアドレスとサーバのＩＰアドレスが一致する場合に、通信を許可し、一致しない場合にパケットを破棄することによって通信を禁止する。【０１７０】
なお、本発明は本実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形を許容する。例えば、上記形態ではデータ処理装置１００の各部がコンピュータプログラムにより各種機能として論理的に実現されることを例示した。しかし、このような各部の各々を固有のハードウェアとして形成することもでき、ソフトウェアとハードウェアとの組み合わせとして実現することもできる。【０１７１】
なお、当然ながら、上述した実施の形態および複数の変形例は、その内容が相反しない範囲で組み合わせることができる。また、上述した実施の形態および変形例では、各部の構造などを具体的に説明したが、その構造などは本願発明を満足する範囲で各種に変更することができる。【０１７２】
この出願は、２００９年  ３月２４日に出願された日本出願特願２００９−０７２３９１号を基礎とする優先権を主張し、その開示の全てを、ここに取り込む。
【図１】
0005429280.tif 000002
【図２】
0005429280.tif 000003
【図３】
0005429280.tif 000004
【図４】
0005429280.tif 000005
【図５】
0005429280.tif 000006
【図６】
0005429280.tif 000007