(57)【特許請求の範囲】
【請求項１】
データ管理プログラム（４）によって、電子計算機（１２）のデータ管理を行うためのデータ管理方法において、
前記電子計算機（１２）を操作しているオペレーティングシステム（２１）の全ての命令が実行できるカーネルモード（１５）で動作し、前記電子計算機（１２）に接続されているデバイス（６、２６）を直接制御するためのデバイスドライバ（３５、３６）同士の通信、又は前記デバイスドライバ（３５、３６）と前記電子計算機（１２）上で動作するアプリケーションプログラム（２０）との通信に共通のインターフェースを提供するためのプログラムであるドライバウェアプログラム（５０）を前記データ管理プログラム（４）が有し、
前記ドライバウェアプログラム（５０）は、
（ａ）前記アプリケーションプログラム（２０）から出力される命令及び／又はデータを含む第１データを受信し、前記命令の実行結果及び／又は前記デバイスドライバ（３５、３６）から受信した受信データを含む第２データを、前記アプリケーションプログラム（２０）に送信するためのアプリケーションプログラムインターフェース部（５１）と、
（ｂ）前記デバイスドライバ（３５、３６）へ、前記命令及び／又は前記データを含む第３データを送信し、前記デバイスドライバ（３５、３６）から前記命令の実行結果及び／又は前記受信データを含む第４データを受信するためのデバイスドライバ制御部（４５、４６、４２、４３、４４）と、
（ｃ）前記第１データ又は前記第４データを処理し、前記第２データ又は前記第３データを生成して、前記第１〜４データの制御を行うための制御部（５２）とからなり、
前記アプリケーションプログラム（２０）又は前記アプリケーションプログラム（２０）のプロセスを示す第１制御データ（１５２、１５３）、前記アプリケーションプログラム（２０）がアクセスするユーザデータ（３）のファイルパスを示す第２制御データ（１５４）、及び前記アクセスの許可又は不許可を示す第３制御データ（１５５、１５６）からなるプロセス制御リスト（１５０）が作成され、
前記データ管理プログラム（４）は、前記プロセス制御リスト（１５０）に従って前記電子計算機（１２）を制御するための制御モードを有し、
特定の個人を識別するための個人認証及び前記ドライバウェアプログラム（５０）の認証を行うための認証プログラム（１１３）並びに前記個人認証に利用されるための認証データ（１１６）を格納した認証記憶装置（８）が前記電子計算機（１２）に接続されたとき、前記認証データ（１１６）を用いて前記認証プログラム（１１３）によって前記個人認証を行い、更に、前記認証プログラム（１１３）によって前記データ管理プログラム（４）の確認及び認証を行って前記制御モードを動作させ、
前記データ管理プログラム（４）が前記制御モードで動作したとき、前記認証記憶装置（８）以外の記憶装置へのアクセスを全て不許可にする設定である第１設定、前記ユーザデータ（３）を格納するための領域である前記認証記憶装置（８）のユーザ領域（１０６）を使用可能にする設定である第２設定、及び前記ユーザデータ（３）を格納するための記憶装置で、前記電子計算機（１２）にネットワーク（７）によって接続されている第２電子計算機（２）に内蔵又は接続されている記憶装置であるリモート記憶装置を使用可能にする設定である第３設定の内前記第１設定を含み２以上の設定を前記ドライバウェアプログラム（５０）によって行い、
前記制御モード中に前記アプリケーションプログラム（２０）に関する前記第１〜３制御データを前記データ管理プログラム（４）によって取得し、
前記ドライバウェアプログラム（５０）は、取得した前記第１〜３制御データが前記プロセス制御リスト（１５０）に登録されているか否かを確認し、
前記第１〜第３制御データが前記プロセス制御リスト（１５０）に登録されている場合は、前記プロセス制御リスト（１５０）に従って前記アプリケーションプログラム（２０）から前記ユーザデータ（３）へのアクセスを前記ドライバウェアプログラム（５０）によって制御し、
前記制御データが前記プロセス制御リスト（１５０）に登録されていない場合は、前記アプリケーションプログラム（２０）から前記電子ファイルへのアクセスを不許可にする制御を前記ドライバウェアプログラム（５０）によって行う
ことを特徴とする電子計算機のデータ管理方法。
【請求項２】
請求項１において、
前記データ管理プログラム（４）は、前記オペレーティングシステム（２１）のユーザモード（１４）で動作し、前記オペレーティングシステム（２１）のファイルシステムとのユーザインターフェースを提供するためのアプリケーションプラットフォームプログラム（５）を有し、
前記アプリケーションプラットフォームプログラム（５）は、前記プロセスをサスペンドモードで動作させて、前記プロセスのプロセス名（１５２）及び／又は前記プロセスＩＤ（１５３）からなる前記第１制御データを取得して前記アプリケーションプログラムインターフェース部に（５１）送信する
ことを特徴とする電子計算機のデータ管理方法。
【請求項３】
請求項１又は２において、
前記データ管理プログラム（４）が前記制御モードで動作するとき、前記電子計算機（１２）が前記第２電子計算機（２）を含め特定の電子計算機との通信のみを許可するように通信ポート（６）の使用を許可する設定、スクリーンキャプチャ機能を禁止又は制限する設定、及びクリップボードの使用を禁止又は制限する設定の内の１以上の設定を前記ドライバウェアプログラム（５０）によって行う
ことを特徴とする電子計算機のデータ管理方法。
【請求項４】
請求項３において、
前記認証記憶装置（８）が前記電子計算機（１２）から切断されたとき、
前記データ管理プログラム（４）が前記制御モードでの動作を停止し、
前記制御モードで動作するときに行った全ての設定を解除する
ことを特徴とする電子計算機のデータ管理方法。
【請求項５】
請求項１又は２において、
前記認証記憶装置（８）は、プログラムを格納するための領域であるプログラム領域（１０７）を有し、
前記認証プログラム（１１３）が前記プログラム領域（１０７）に格納されていて、
前記認証記憶装置（８）が前記電子計算機（１２）に接続されたとき、前記認証プログラム（１１３）が自動起動する
ことを特徴とする電子計算機のデータ管理方法。
【請求項６】
請求項１又は２において、
前記認証記憶装置（８）は、初期設定では前記電子計算機（１２）からアクセスすることができない領域で、前記ユーザデータ（３）を格納するためのユーザ領域（１０６）を有し、
前記データ管理プログラム（４）が前記制御モードで動作しているとき、前記認証記憶装置（８）内の前記ユーザ領域（１０６）を前記認証プログラム（１１３）によって前記電子計算機（２）に認識させ、前記ユーザデータ（３）に前記電子計算機（１２）からアクセスすることを可能にする
ことを特徴とする電子計算機のデータ管理方法。
【請求項７】
請求項１又は２において、
前記電子計算機（１２）の動作環境をチェックするためのプログラムであるチェックプログラム（１１８）を、前記認証記憶装置（８）が前記電子計算機（１２）に接続されたら前記プログラム領域（１０７）から起動させて、前記電子計算機（８）の動作環境を前記チェックプログラム（１１８）によってチェックし、
前記動作環境が所定の条件を満たしている場合にのみ、前記認証記憶装置（８）の使用を許可する
ことを特徴とする電子計算機のデータ管理方法。
【請求項８】
請求項７において、
前記所定の条件は、
前記電子計算機（１２）にウィルス対策ソフトウェアがインストールされて動作していることである第１条件、及び／又は
前記電子計算機（１２）にファイル共有ソフトウェアが動作していないことである第２条件
であることを特徴とする電子計算機のデータ管理方法。
【請求項９】
請求項１又は２において、
前記電子計算機（２）の制御の履歴を前記ドライバウェアプログラム（５０）のログ取得部（５３）によって取得し、
前記認証記憶装置（８）の領域で、前記電子計算機（１２）からのアクセスが制限されている秘密領域（１２０）、前記ユーザデータ（３）を格納するための前記認証記憶装置（８）のユーザ領域（１０６）、及び前記リモート記憶装置の中から選択される１以上に前記履歴が格納される
ことを特徴とする電子計算機のデータ管理方法。
【請求項１０】
請求項９において、
前記履歴は、前記ユーザ領域（１０６）、又は前記リモート記憶装置に暗号化されて格納される
ことを特徴とする電子計算機のデータ管理方法。
【請求項１１】
請求項９又は１０において、
前記リモート記憶装置又は前記認証記憶装置（８）に格納されている前記履歴を分析することで前記電子計算機（１２）の利用又は前記ユーザデータ（３）の利用を把握し、トレーサビリティを可能にする
ことを特徴とする電子計算機のデータ管理方法。
【請求項１２】
電子計算機（１２）のデータ管理を行うためのデータ管理プログラム（４）であって、
前記電子計算機（１２）を操作しているオペレーティングシステム（２１）の全ての命令が実行できるカーネルモード（１５）で動作し、前記電子計算機（１２）に接続されているデバイス（６、２６）を直接制御するためのデバイスドライバ（３５、３６）同士の通信、又は前記デバイスドライバ（３５、３６）と前記電子計算機（１２）上で動作するアプリケーションプログラム（２０）との通信に共通のインターフェースを提供するためのプログラムであるドライバウェアプログラム（５０）を前記データ管理プログラム（４）が有し、
前記ドライバウェアプログラム（５０）は、
（ａ）前記アプリケーションプログラム（２０）から出力される命令及び／又はデータを含む第１データを受信し、前記命令の実行結果及び／又は前記デバイスドライバ（３５、３６）から受信した受信データを含む第２データを、前記アプリケーションプログラム（２０）に送信するためのアプリケーションプログラムインターフェース部（５１）と、
（ｂ）前記デバイスドライバ（３５、３６）へ、前記命令及び／又は前記データを含む第３データを送信し、前記デバイスドライバ（３５、３６）から前記命令の実行結果及び／又は前記受信データを含む第４データを受信するためのデバイスドライバ制御部（４５、４６、４２、４３、４４）と、
（ｃ）前記第１データ又は前記第４データを処理し、前記第２データ又は前記第３データを生成して、前記第１〜４データの制御を行うための制御部（５２）とからなり、
前記データ管理プログラム（４）は、
前記アプリケーションプログラム（２０）又は前記アプリケーションプログラム（２０）のプロセスを示す第１制御データ（１５２、１５３）、前記アプリケーションプログラム（２０）がアクセスするユーザデータ（３）のファイルパスを示す第２制御データ（１５４）、及び前記アクセスの許可又は不許可を示す第３制御データ（１５５、１５６）からなるプロセス制御リスト（１５０）を読み込むステップと、
ユーザデータ（３）、特定の個人を識別するための個人認証及び前記ドライバウェアプログラム（５０）の認証を行うための認証プログラム（１１３）、及び前記個人認証に利用されるための認証データ（１１６）を格納した認証記憶装置（８）が前記電子計算機（１２）に接続されたとき、前記認証記憶装置（８）の接続を検出するステップと、
前記認証プログラム（１１３）が前記認証データ（１１６）を用いて前記個人認証を行った後に、前記認証プログラム（１１３）と通信して認証を行うステップと、
前記認証後、前記認証プログラム（１１３）からの命令に従って、前記プロセス制御リスト（１５０）に従って前記電子計算機（１２）を制御するための制御モードを動作させる制御モードステップと、
前記アクセスを監視する監視ステップと、
前記制御モードのとき、前記認証記憶装置（８）以外の記憶装置へのアクセスを全て不許可にする設定である第１設定、前記ユーザデータ（３）を格納するための領域である前記認証記憶装置（８）のユーザ領域（１０６）を使用可能にする設定である第２設定、及び前記ユーザデータ（３）を格納するための記憶装置で、前記電子計算機（１２）にネットワーク（７）によって接続されている第２電子計算機（２）に内蔵又は接続されている記憶装置であるリモート記憶装置を使用可能にする設定である第３設定の内前記第１設定を含み２以上の設定を前記ドライバウェアプログラム（５０）によって行うステップと、
前記制御モード中に前記アプリケーションプログラム（２０）に関する前記第１〜３制御データを前記データ管理プログラム（４）によって取得するステップと、
取得した前記第１〜３制御データを前記プロセス制御リスト（１５０）の値と比較するステップと、
前記第１〜第３制御データが前記プロセス制御リスト（１５０）の値と一致している場合は、前記プロセス制御リスト（１５０）に従って前記アプリケーションプログラム（２０）から前記ユーザデータ（３）へのアクセスを前記ドライバウェアプログラム（５０）によって制御するステップと、及び
前記制御データが前記プロセス制御リスト（１５０）に登録されていない場合は、前記アプリケーションプログラム（２０）から前記電子ファイルへのアクセスを不許可にする制御を前記ドライバウェアプログラム（５０）によって行うステップと
を前記電子計算機に実行させる
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項１３】
請求項１２において、
前記データ管理プログラム（４）は、前記オペレーティングシステム（２１）のユーザモード（１４）で動作し、前記オペレーティングシステム（２１）のファイルシステムとのユーザインターフェースを提供するためのアプリケーションプラットフォームプログラム（５）を有し、
前記アプリケーションプラットフォームプログラム（５）は、
前記プロセスをサスペンドモードで動作させるステップと、
前記サスペンドモードで動作している前記プロセスのハンドル、前記プロセス名（１５２）、前記プロセスＩＤ（１５３）からなる前記第１制御データを取得するプロセス取得ステップと、及び
前記プロセス取得ステップで取得した前記第１制御データを前記アプリケーションプログラムインターフェース部（５１）に送信する送信ステップと
からなることを特徴とする電子計算機のデータ管理プログラム。
【請求項１４】
請求項１３において、
前記制御部は、
前記アプリケーションプログラム（２０）の終了イベントを待機するステップと、
前記終了イベントが発生したとき、前記プロセスＩＤ（１５３）を取得するステップと、
前記取得された前記プロセスＩＤ（１５３）からファイルへアクセスするファイルアクセスを前記ファイルシステム制御部（４４）で停止させる命令を前記ファイルシステム制御部（４４）へ送信するステップと、
前記インターフェース制御部（４２）へ通信の禁止設定を解除するステップと、
前記ネットワーク制御部（４３）へ通信の禁止設定を解除するステップと
を有することを特徴とする電子計算機のデータ管理プログラム。
【請求項１５】
請求項１２において、
前記ドライバウェアプログラム（５０）は、前記ユーザデータを前記認証記憶装置（８）から読み出すステップ、前記ユーザデータが暗号化されているとき、前記ユーザデータを復号化するステップ、及び前記ユーザデータを前記アプリケーションプログラムに渡すステップを有する
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項１６】
請求項１２において、
前記認証記憶装置（８）以外の記憶装置で、前記電子計算機（１２）に内蔵又は接続された記憶装置への書き込みを不許可するステップ、前記第２電子計算機（２）を含めた特定の電子計算機と前記電子計算機（１２）の通信のみを許可するように通信ポート（６）の使用を許可するステップ、前記特定の電子計算機と前記電子計算機（１２）の通信に使用されていないシリアルインターフェース、パラレルインターフェース、ＩｒＤＡからなる群の中から選択される以上の通信ポート（６）の使用を不許可するステップ、スクリーンキャプチャの利用を制限又は禁止するステップ、同一の前記アプリケーションプログラム（２０）内にクリップボードの使用を許可するステップ、及び別々の前記アプリケーションプログラム（２０）間にクリップボードの使用を禁止するステップからなるステップ群の中から選択される１以上のステップを前記制御モードステップが有する
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項１７】
請求項１６において、
前記ドライバウェアプログラム（５０）は、前記認証記憶装置（８）が前記電子計算機（１２）から切断されたとき、前記制御モードステップで行った全ての設定を解除して、前記制御モードを解除する制御モード解除ステップを有する
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項１８】
請求項１２において、
前記制御モードステップの実行後に、前記データ管理プログラム（４）が前記制御モードで動作したとき、初期設定で前記電子計算機（１２）からアクセスできない前記認証記憶装置（８）のユーザ領域（１０６）にアクセスできるようにする命令を前記ドライバウェアプログラム（５０）から送信するステップと
を有し、
前記ユーザ領域（１０６）は、前記認証プログラム（１１３）によって前記オペレーティングシステム（２１）に認識されて、前記電子計算機（１２）から前記ユーザデータ（３）にアクセスすることができるようになる
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項１９】
請求項１２から１６の中から選択される１項において、
前記ドライバウェアプログラム（５０）は、前記ユーザデータを暗号化するための暗号化ステップ又は、暗号化された前記ユーザデータを復号化するための復号化ステップを有する
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項２０】
請求項１２から１７の中から選択される１項において、
前記ドライバウェアプログラム（５０）は、前記電子計算機（２）の動作の履歴を取得するためのログ取得ステップ（ログ取得部５３）を有する
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項２１】
請求項２０において、
前記ドライバウェアプログラム（５０）は、
ログ取得ステップによって取得された前記履歴を、前記認証記憶装置（８）の領域で、前記電子計算機（１２）からのアクセスが制限されている秘密領域（１２０）に送信するステップと、
ログ取得ステップによって取得した前記履歴を、前記ユーザデータ（３）を格納するための前記認証記憶装置（８）のユーザ領域（１０６）に暗号化部によって暗号化して送信するステップと、
ログ取得ステップによって取得した前記履歴を前記リモート記憶装置に暗号化部によって暗号化して送信するステップと、
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項２２】
請求項２０又は２１において、
ログ取得ステップによって取得された前記履歴を分析することで、前記電子計算機（１２）又は前記ユーザデータ（３）の利用を把握し、前記ユーザデータ（３）のトレーサビリティができるようになる
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項２３】
請求項１２において、
前記電子計算機（１２）の動作環境をチェックするためのプログラムであり、前記認証記憶装置（８）が前記電子計算機（１２）に接続されたら、前記認証記憶装置（８）から起動して実行され、
前記電子計算機の動作環境をチェックするチェックステップと、
前記動作環境が所定の条件を満たしているか否かを判断する判断ステップと、
前記判断ステップの結果を受けて前記認証記憶装置（８）の使用を許可又は不許可するステップと
を有するチェックプログラム（１１８）によって、前記データ管理プログラム（４）が前記電子計算機（１２）で動作している否かが確認される
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項２４】
請求項２３において、
前記所定の条件は、前記電子計算機（１２）にウィルス対策ソフトウェアがインストールされて動作していることである第１条件、及び／又は前記電子計算機（１２）にファイル共有ソフトウェアが動作していないことである第２条件である
ことを特徴とする電子計算機のデータ管理プログラム。
【請求項２５】
請求項１２から２４の中から選択される１項に記載の電子計算機を実行させるための電子計算機のデータ管理プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子データの管理を行うための電子データ管理システムに関する。特に、電子データが格納されているファイルへのアクセスを追跡して、監視するデータトレーサビリティのための電子計算機のデータ管理方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
個人情報、ビジネスのノウハウは、電子データの形式でファイルとしてコンピュータの記憶装置、記録媒体に保存されていることが多い。このファイルにアクセスした履歴、特にファイルの閲覧、編集、複写、印刷、送信等の履歴を取得して緊密に管理することが大事である。例えば、保険会社は、災害時に復旧マニュアルを担当者に配布している。この復旧マニュアルはノウハウの集積であり、非常に高価な情報価値がある。オフラインで配布された復旧マニュアルを外部への流出やコピーをさせたくないことがある。【０００３】
また、メーカは、製品の仕様書や設計書を関係者に配布している。機密情報であるこの仕様書や設計書を関係者以外には参照されないようにし、外部へ流出するのを避けたいことがある。出版物等の校正時には、原本の電子データを変更するが、原本や校正された電子データが外部へ流出することを避けたい。写真等の画像データも、同様に、原本や編集された電子データが外部へ流出することを避けたい。【０００４】
このような要望に対応するためには、従来から電子データの形式で保存されているファイルの管理を行う管理システムが様々な方式で提案されている。例えば、特許文献１には、ネットワークシステムを介して送受信される印刷データの機密性を総合的に図ると共に、印刷される文書データのトレーサビリティの向上を図る文書総合管理システムを開示している。【０００５】
この文書総合管理システムは、アクセス権管理者の認証と、アクセス権の設定と、文書をアクセスする利用者の認証を行うと共に、文書の管理情報を保持する文書管理サーバと、利用者が用いるＰＣ等の情報処理装置であって、利用者の認証と利用者が文書の印刷を指定する場合には認証を行うと共に、印刷ウォーターマークの生成と、印刷ログの管理を行うプリンタサーバと、印刷物受取者の認証を行うと共にプリンタサーバから送られる文書を印刷するプリンタを備えている。【０００６】
また、コピーログの管理とコピーウォーターマークの管理を行い、コピー文書の管理をするコピーサーバと、ウォーターマークの抽出及びコピー者の認証を行うと共に、文書をコピーするコピー機を備えている。
【特許文献１】特開２００４−２８０２２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ユーザは、携帯用の記憶装置又は記録媒体にユーザデータを記録して、クライアントに提供することがよくある。このユーザデータを受け取ったクライアントは、このユーザデータを利用して作業を行い、作業結果と、携帯用の記憶装置又は記録媒体をユーザに返すのが一般的である。【０００８】
しかしながら、クライアントは、携帯用の記憶装置又は記録媒体に記録されているユーザデータを自由にコピーし、編集することが可能である。ユーザにとっては、携帯用の記憶装置又は記録媒体に記録されているユーザデータを関係者以外へコピーされることを防ぎ、管理することが重要である。【０００９】
更に、クライアントは、携帯用の記憶装置又は記録媒体に記録されているユーザデータを持ち運び、これを用いて業務を行うことがある。このとき、使用するコンピュータの動作環境によってユーザデータが流出するおそれがある。例えば、ユーザデータがコンピュータウィルスに感染したり、不正なファイル共有ソフトによってインターネット上に流出したりすることがある。これを防ぐためには、コンピュータの動作環境をチェックし、セキュリティ対策が十分に取られているコンピュータ環境でユーザデータを取り扱うことが好ましい。【００１０】
このような、データの管理については、上記の特許文献１には記載されていない。
本発明は上述のような技術背景のもとになされたものであり、下記の目的を達成する。
本発明の目的は、クライアントに提供されたユーザデータへのアクセスを追跡し、監視するための電子計算機のデータ管理方法、プログラム、及び記録媒体を提供することにある。【００１１】
本発明の他の目的は、クライアントに提供されたユーザデータを目的以外のことに利用することができないように、ユーザデータと、それを用い又は編集して作成されたファイルを指定された記録装置又はネットワーク記録装置のみに保存することができ、その他の記録装置又は記録媒体への複製と保存を防止するための電子計算機のデータ管理方法、プログラム、及び記録媒体を提供することにある。【００１２】
本発明の更に他の目的は、クライアントに提供されたユーザデータの閲覧、編集、保存等の操作の履歴を取得し、ユーザデータと一緒に指定された記録装置又はネットワーク記録装置に取得された履歴を保存し、記録装置に保存されているこの履歴の分析を行う。よって、ユーザデータのトレーサビリティを可能にするための電子計算機のデータ管理方法、プログラム、及び記録媒体を提供することにある。【００１３】
本発明の更に他の目的は、クライアントコンピュータの動作環境をチェックし、ユーザデータを安全なクライアント環境のみで取り扱うための電子計算機のデータ管理方法、プログラム、及び記録媒体を提供することにある。
【課題を解決するための手段】
【００１４】
本発明は、目的を達成するため、次の手段を採る。
本発明は、クライアントがユーザデータを電子計算機（クライアントコンピュータ）上で閲覧、編集、作成する等の作業を行うときの利用履歴を追跡し、監視するための電子計算機のデータ管理方法、プログラム、及び記録媒体を提供するものである。クライアントは、ユーザデータを携帯用の記憶装置又は、ネットワーク上のリモート記憶装置から電子計算機に読み込んで作業を行い、その利用履歴を携帯用の記憶装置又は、ネットワーク上のリモート記憶装置に保存する。【００１５】
クライアントが電子計算機上にユーザデータを利用するためには、クライアントの認証を行うための認証記憶装置を持参し、電子計算機に接続してクライアントの個人認証を行う。この個人認証は、認証記憶装置に格納されている認証プログラムと認証データを用いて行われる。この個人認証が成功したら、クライアントが電子計算機上にユーザデータを利用可能になる。電子計算機には、データ管理プログラム（管理プログラム）がインストールされて動作し、電子計算機の動作を制御する。【００１６】
データ管理プログラムは、ドライバウェアプログラムとアプリケーションプラットフォームプログラムを有する。アプリケーションプラットフォームプログラムは、オペレーティングシステムのユーザモードで動作し、オペレーティングシステムのファイルシステムとのユーザインターフェースを提供するためのプログラムである。【００１７】
ドライバウェアプログラムは、電子計算機を操作しているオペレーティングシステムの全ての命令が実行できるカーネルモードで動作するプログラムである。ドライバウェアプログラムは、電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信に共通のインターフェースを提供する。また、デバイスドライバと電子計算機上で動作するアプリケーションプログラムとの通信に共通のインターフェースを提供する。【００１８】
ドライバウェアプログラムは、アプリケーションプログラムから出力される命令及び／又はデータを含む第１データを受信し、命令の実行結果及び／又はデバイスドライバから受信した受信データを含む第２データを、アプリケーションプログラムに送信するためのアプリケーションプログラムインターフェース部と、デバイスドライバへ、命令及び／又はデータを含む第３データを送信し、デバイスドライバから命令の実行結果及び／又は受信データを含む第４データを受信するためのデバイスドライバ制御部と、  第１データ又は第４データを処理し、第２データ又は第３データを生成して、第１〜４データの制御を行うための制御部とを有する。【００１９】
データ管理プログラムのインストール時又は、インストール後にプロセス制御リストが作成される。このプロセス制御リストは、電子計算機の内蔵記憶装置に格納される。また、電子計算機のＲＡＭ等のメモリ上に格納されることもできる。プロセス制御リストは、アプリケーションプログラム又はアプリケーションプログラムのプロセスを示す第１制御データ、アプリケーションプログラムがアクセスするユーザデータのファイルパスを示す第２制御データ、及びアクセスの許可又は不許可を示す第３制御データからなる。【００２０】
データ管理プログラムは、プロセス制御リストに従って電子計算機を制御するための制御モードを有する。認証記憶装置は、個人認証及びドライバウェアプログラムの認証を行うための認証プログラム並びに個人認証に利用されるための認証データを格納する記憶装置である。認証記憶装置は、フラッシュメモリ等の携帯可能なメモリであることが望ましい。【００２１】
認証記憶装置が電子計算機に接続されたとき、認証データを用いて認証プログラムによって個人認証を行い、更に、認証プログラムによってデータ管理プログラムの確認及び認証を行う。そして、認証プログラムからデータ管理プログラムに指示して、データ管理プログラムの制御モードを動作させる。【００２２】
データ管理プログラムが制御モードで動作したとき、次の第１から第３設定を行う。第１設定は、認証記憶装置以外の記憶装置へのアクセスを全て不許可にする設定である。第２設定は、ユーザデータを格納するための領域である認証記憶装置のユーザ領域を使用可能にする設定である。第３設定は、ユーザデータを格納するための記憶装置で、電子計算機にネットワークによって接続されている第２電子計算機（サーバ）に内蔵又は接続されている記憶装置であるリモート記憶装置を使用可能にする設定である。【００２３】
データ管理プログラムが第１設定の他に、第２設定又は第３設定をドライバウェアプログラムによって行うことが好ましい。これは、ユーザデータをユーザ領域とリモート記憶装置の両方から読み込み又は及び書き込み等のアクセスをしない限り、第２設定と第３設定のどちらかが設定される。もし、両方から読み込み又は及び書き込み等のアクセスをする場合は、第２設定と第３設定を行う。制御モード中にアプリケーションプログラムが起動したとき、起動されたアプリケーションプログラムに関する第１〜３制御データをデータ管理プログラムによって取得する。【００２４】
ドライバウェアプログラムは、取得した第１〜３制御データがプロセス制御リストに登録されているか否かを確認する。第１〜第３制御データがプロセス制御リストに登録されている場合は、プロセス制御リストに従ってアプリケーションプログラムからユーザデータへのアクセスをドライバウェアプログラムによって制御する。制御データがプロセス制御リストに登録されていない場合は、アプリケーションプログラムから電子ファイルへのアクセスを不許可にする制御をドライバウェアプログラムによって行う。【００２５】
（プロセスＩＤの取得）
アプリケーションプラットフォームプログラムは、プロセスをサスペンドモードで動作させて、プロセスのプロセス名及び／又はプロセスＩＤからなる第１制御データを取得してアプリケーションプログラムインターフェース部に送信する。【００２６】
（電子計算機の操作制限）
データ管理プログラムが制御モードで動作するとき、電子計算機が特定の電子計算機との通信のみを許可するように通信ポートの使用を許可する設定を行う。特定の電子計算機は、上述の第２電子計算機であることが好ましい。特定の電子計算機と電子計算機の通信に使用されていないシリアルインターフェース、パラレルインターフェース、ＩｒＤＡ等の通信ポートの使用を不許可すると良い。また、認証記憶装置以外の記憶装置で、電子計算機に内蔵又は接続された記憶装置への書き込みを不許可する設定を行う。【００２７】
更に、データ管理プログラムは、スクリーンキャプチャ機能を禁止又は制限する設定を行う。クリップボードの使用を禁止又は制限する設定を行う。クリップボードの使用に関して、同一のアプリケーションプログラム内にクリップボードの使用を許可し、別々のアプリケーションプログラム間にクリップボードの使用を禁止する設定を行う。これらの設定は、ドライバウェアプログラムによって行われる。【００２８】
（電子計算機の操作制限の解除）
認証記憶装置が電子計算機から切断されたとき、データ管理プログラムが制御モードでの動作を停止し、制御モードで動作するときに行った全ての設定を解除する。【００２９】
（認証プログラムの自動動作）
認証記憶装置は、プログラムを格納するための領域であるプログラム領域を有する。認証プログラムがプログラム領域に格納される。認証記憶装置が電子計算機に接続されたとき、認証プログラムがプログラム領域から自動起動する。【００３０】
（認証記憶装置のユーザ領域）
認証記憶装置は、初期設定では電子計算機からアクセスすることができない領域で、ユーザデータを格納するためのユーザ領域を有する。データ管理プログラムが制御モードで動作しているとき、認証記憶装置内のユーザ領域を認証プログラムによって電子計算機に認識させ、ユーザデータに電子計算機からアクセスすることを可能にする。【００３１】
（クライアントコンピュータの動作環境チェック）
プログラム領域には、電子計算機の動作環境をチェックするためのプログラムであるチェックプログラムが格納される。認証記憶装置が電子計算機に接続されたらプログラム領域からチェックプログラムが起動されて、電子計算機の動作環境をチェックする。チェックプログラムは、認証プログラムより先に起動されて、電子計算機上に実行される。【００３２】
電子計算機の動作環境が所定の条件を満たしている場合にのみ、チェックプログラムが認証記憶装置の使用を許可する。この所定の条件は、次の第１条件及び／又は第２条件である。第１条件は、電子計算機にウィルス対策ソフトウェアがインストールされて動作していることである。第２条件は、電子計算機にファイル共有ソフトウェアが動作していないことである。この所定の条件は、第１条件と第２条件が同時に満たされていることが電子計算機のセキュリティ上好ましい。【００３３】
（ログ取得部）
ドライバウェアプログラムは、電子計算機の動作の履歴を取得するためのログ取得部を有する。電子計算機の制御の履歴は、ログ取得部によって取得される。取得された履歴は、認証記憶装置の領域である秘密領域に格納される。この秘密領域は、電子計算機からのアクセスが制限されている領域である。電子計算機の制御の履歴は、認証記憶装置のユーザ領域に暗号化されて格納されることができる。電子計算機の制御の履歴は、電子計算機から暗号化されて送信されてリモート記憶装置に格納されることができる。【００３４】
（履歴の分析）
リモート記憶装置又は認証記憶装置に格納されている履歴を分析することで電子計算機の利用と、ユーザデータの利用を把握する。この把握によって、ユーザデータのトレーサビリティを可能にし、ユーザデータが適切に利用されているか否かを確認できる。よって。ユーザデータの利用を保障し、その利用状況を証明することができる。【００３５】
（暗号化、復号化）
ドライバウェアプログラムは、ユーザデータを暗号化するための暗号化部、暗号化されたユーザデータを復号化するための復号化部を有する。
【発明の効果】
【００３６】
本発明によると、次の効果が奏される。
本発明は、ユーザデータを格納した記憶装置をクライアントコンピュータに接続したとき、クライアントコンピュータ上に動作している管理プログラムによって、クライアントコンピュータに内蔵又は接続されている全ての外部記憶装置を書き込み禁止に設定し、また、指定以外のネットワークの使用も禁止するように設定することによって、ユーザデータを複製して目的以外のことに利用することを防止し、ユーザデータを追跡し、適切に管理することが可能になった。【００３７】
本発明は、ユーザデータを格納した記憶装置をクライアントコンピュータに接続したとき、クライアントコンピュータ上に動作している管理プログラムによって、クライアントコンピュータに内蔵又は接続されている全ての外部記憶装置を書き込み禁止するように設定し、また、指定以外のネットワークの使用も禁止するように設定することによって、ユーザデータ又はユーザデータを利用して作成された電子データの複製を制限することが可能になった。【００３８】
本発明は、ユーザデータを格納した記憶装置をクライアントコンピュータに接続したとき、クライアントコンピュータ上に動作している管理プログラムによって、ユーザデータと、それを用い又は編集して作成されたファイルを指定された記録装置又は指定のネットワーク記録装置のみに保存するように設定し、その他の記録装置又は記録媒体への複製と保存を防止することが可能になった。【００３９】
本発明は、クライアントに提供されたユーザデータの閲覧、編集、保存等の全ての操作履歴を取得し、取得された履歴を記録装置又は指定のネットワーク記録装置に保存し、保存されているこの履歴の分析を行うことによってユーザデータのトレーサビリティを可能にした。【００４０】
本発明は、クライアントコンピュータの動作環境をチェックし、ユーザデータを安全なクライアント環境のみで取り扱うようにし、ユーザデータの流出を防ぐことが可能になった。特に、ユーザデータを取り扱うコンピュータとしては、コンピュータウィルス対策ソフトがインストールされているコンピュータ、ファイル共有ソフトがインストールされていないコンピュータであることを確認できるようになった。よって、コンピュータウィルス、ファイル共有ソフト等のソフトウェアによるユーザデータの流出を防ぐことが可能になった。
【発明を実施するための最良の形態】
【００４１】
以下、本発明の実施の形態を図に基づいて説明する。
（本発明の第１の実施の形態）
図１には、本発明の第１の実施の形態の概要を図示している。サーバ側１は、少なくとも１台のサーバ２から構成され、ユーザデータ３を提供するものである。ユーザデータ３は、サーバ側１が提供している電子データである。クライアント側１０は、クライアント１１が操作するためのクライアントコンピュータ１２から構成される。クライアント１１は、サーバ側１からユーザデータ３の提供を受けて、クライアントコンピュータ１２上に作業を行う。【００４２】
本発明は、サーバ側１から提供されたユーザデータ３を用いてクライアントコンピュータ１２上で作業を行うとき、このユーザデータ３の利用状況を監視して追跡するためのシステムを提供するものである。サーバ側１は、管理プログラム４とＵＳＢメモリ８をクライアント側１０に提供する。管理プログラム４は、ユーザデータ３をクライアントコンピュータ１２上に利用する環境を提供するためのプログラムである。ＵＳＢメモリ８は、ユーザデータ３を格納して持ち運びするためのメモリである。【００４３】
クライアントコンピュータ１２上にユーザデータ３を用いて編集して作成されたファイルは、クライアントコンピュータ１２からＵＳＢメモリ８に保存される。更に、ユーザデータ３と、これを用いて編集して作成されたファイルとを閲覧、編集、保存、複製する作業等の履歴が保存される。ユーザデータ３と、これを用いて編集して作成されたファイルとを閲覧、編集、保存、複製する全ての作業の履歴が保存されることが好ましい。クライアント側１０からサーバ側１にＵＳＢメモリ８が返却されたとき、ＵＳＢメモリ８に保存された履歴をサーバ２において分析することで、ユーザデータ３の利用を把握することができる。【００４４】
ユーザデータ３は、ＵＳＢメモリ８のユーザ領域１０６（図４を参照）に格納される。このユーザ領域１０６は、ＵＳＢメモリ８の初期設定でアクセスすることができない。つまり、クライアントコンピュータ１２等の電子計算機にＵＳＢメモリ８を接続するだけでは、ユーザ領域１０６にすぐにアクセスすることができない。ＵＳＢメモリ８のプログラム領域１０７に格納されている認証プログラム１１３によって、ユーザ領域１０６をソフトウェア的にスイッチし、外部からアクセス可能にする。この詳細については、図４の説明、及び図６、７のフローチャートの説明で後述する。【００４５】
ユーザデータ３は、秘密性、機密性が要求されるデータで、それを使う関係者以外の外部へ流出することが望ましくないデータである。ユーザデータ３は、ノウハウが蓄積された次のようなデータの内１以上のデータであることができる。例えば、災害時に使用するための保険会社の復旧マニュアルである。また、メーカが利用するための製品の仕様書や設計書である。更に、出版物や写真等の画像データの校正時に使うための原本の電子データである。また更に、個人情報や顧客情報等が格納されたデータファイルである。個人情報は、氏名、住所、連絡先等の情報を意味する。顧客情報は、顧客の氏名、名称、住所、連絡先、取引の内容等の情報である。以後、このようなデータは、単にユーザデータ３と記載する。【００４６】
サーバ側１は、ユーザデータ３を記録媒体又は記憶装置に記録してクライアント１１に提供する。本発明の第１の実施の形態においては、記録媒体又は記憶装置の一例としてＵＳＢメモリ８を用いており、ＵＳＢメモリ８と同様な機能を有するものであればどのような種類の記録媒体又は記憶装置であっても良い。記録媒体は、例えばフラッシュメモリ、フレキシブルディスク、コンパクトディスク、ＭＯ（Magneto-Optical Disk）、ＤＶＤ（Digital Versatile Disks）等の記録媒体である。記憶装置としては、ＵＳＢ（Universal Serial Bus）メモリ、メモリカード、ハードディスク等の電子データを記憶して持ち運びできる装置であることが好ましい。【００４７】
本発明の第１の実施の形態では、ユーザデータ３は、ＵＳＢメモリ８に格納されてサーバ側１からクライアント側１０に提供される。管理プログラム４は、記録媒体９に格納されてサーバ側１とクライアント側１０に提供される。ユーザデータ３と管理プログラム４は、同一の記録媒体又は記憶装置に記録されてサーバ側１とクライアント側１０に提供されることも可能である。また、ユーザデータ３と管理プログラム４はネットワークを介してサーバ側１とクライアント側１０に提供されることも可能である。【００４８】
クライアントコンピュータ１２の動作環境をチェックするためのチェックプログラム１１８をＵＳＢメモリ８に格納してクライアント側１０に提供する。ＵＳＢメモリ８がクライアントコンピュータ１２に接続されると、チェックプログラム１１８が起動されてクライアントコンピュータ１２の動作環境をチェックする。チェックプログラム１１８のチェック機能は、ＵＳＢメモリ８のユーザ領域１０６（図４を参照）へアクセスする前に行われて、クライアントコンピュータ１２が安全な動作環境であることを確認するためのものである。【００４９】
チェックプログラム１１８によってクライアントコンピュータ１２の動作環境をチェックしてから、認証プログラム１１３によってクライアント１１の個人認証が行われる。このようにチェックプログラム１１８を設けてクライアントコンピュータ１２の動作環境をチェックすることで、クライアント１１がＵＳＢメモリ８を社内で使用する場合は、社内のコンピュータ環境が適正か否かをユーザレベルでチェックすることができる。従って、ユーザデータ３等のデータの流出を防止することに繋がる。【００５０】
更に、クライアント１１がＵＳＢメモリ８を社外へ持ち運びして使用する場合は、クライアント１１が使用するコンピュータが適正な環境であるか否かをＵＳＢメモリ８を使用するごとにチェックし、ユーザデータ３等のデータの流出、不正操作を防ぐことができる。特に、ファイル共有ソフトがユーザのコンピュータにインストールされている場合は、ＵＳＢメモリ８の利用を拒否する。更に、ウィルス対策ソフトがクライアントコンピュータ１２にインストールされていない場合も、ＵＳＢメモリ８の利用を拒否することもできる。  【００５１】
しかし、これは、ユーザデータ３と管理プログラム４の提供方法、使用される記憶装置、記録媒体を制限するものではなく、同様の機能を有するものであれはどのような形態のものでも良い。本発明の第１の実施の形態で記憶装置として使用しているＵＳＢメモリ８は、フラッシュメモリを内蔵した携帯可能な記憶装置である。ＵＳＢメモリ８は、ＵＳＢ規格に準拠する記憶装置である。【００５２】
ＵＳＢ規格は、電子計算機と周辺機器との間にデータ伝送を行うための規格であり、「USB Mass Storage Class」という、外部記憶装置をリムーバブルドライブとして認識するための仕様が入っている。ＵＳＢメモリ８は、このUSB Mass Storage Classに準拠し、オペレーティングシステム側が持っているMass Storage Class用のドライバを使って、ＵＳＢメモリ８と電子計算機との間に電子データの送受信を行う。ＵＳＢメモリ８は電子計算機のＵＳＢポートに差し込みされると、オペレーティングシステムにリムーバブルドライブとして認識される。【００５３】
サーバ側１は、サーバ２からＵＳＢメモリ８にユーザデータ３を書き込む。サーバ２は、中央処理ユニット、入出力装置、ＲＯＭ、ＲＡＭ等の内蔵メモリ、ハードディスク等を備えた電子計算機である。クライアントコンピュータ１２は、図示していないが、中央処理ユニット、入出力装置、ＲＯＭ、ＲＡＭ等の内蔵メモリを備えた電子計算機である。【００５４】
図２には、クライアントコンピュータ１２上に動作するソフトウェアの概要を図示している。本発明の第１の実施の形態においては、オペレーティングシステム２１は、マイクロソフト社のWindowsXP（登録商標）である。しかし、これは、オペレーティングシステム２１を制限するものではなく、同様な機能を実現できれば、オペレーティングシステムの種類は問わない。アプリケーションプログラム２０がオペレーティングシステム２１の上に動作する。【００５５】
図１に図示した管理プログラム４は、図２に図示したアプリケーションプラットフォームプログラム５と、ドライバウェア５０から構成される。アプリケーションプラットフォームプログラム５は、オペレーティングシステム２１のユーザモード１４で動作するアプリケーションソフトウェアである。ドライバウェア５０は、オペレーティングシステム２１のカーネルモード１５で動作するプログラムである。アプリケーションプラットフォームプログラム５とドライバウェア５０の動作と機能については後述する。【００５６】
クライアントコンピュータ１２は、図示していないが、キーボードやマウス等の入力装置、ディスプレイ等の出力装置、ハードディスク等の外部記憶装置、メインメモリ等のメモリを備えている。クライアントコンピュータ１２は、外付けハードディスク、スキャナ、プリンタ等の周辺機器を有することが可能である。これらの周辺機器は、外部デバイス６として抽象的に図示している。また、ハードディスク、マウス、キーボード等のクライアントコンピュータ１２に内蔵されているデバイスを内蔵デバイス２６として抽象的に図示している。外部デバイス６は、コネクタ２２に接続される。【００５７】
クライアントコンピュータ１２は、オペレーティングシステム２１によって制御されて動作する。クライアントコンピュータ１２上で動作するアプリケーションプログラム２０は、オペレーティングシステム２１が提供する機能を利用して、入出力装置からの入出力を行い、必要な処理をする。【００５８】
アプリケーションプログラム２０は、オペレーティングシステム２１のカーネルモード１５又はユーザモード１４に動作する実行可能なファイル又はソフトウェアである。例えば、アプリケーションプログラム２０は、ワードプロセッシングソフトウェア、テキストエディタ等の文書を作成、編集するソフトウェアであると良い。更には、アプリケーションプログラム２０は、pdf形式のファイル等のような特定の形式のファイルを閲覧、作成、編集するためのソフトウェアであることもできる。【００５９】
〔オペレーティングシステム２１〕
オペレーティングシステム２１は、キーボードからの入力、マウス操作の入力や画面出力等のような入出力装置からの入出力機能、外部記憶装置やメモリの管理等の基本的な機能を提供し、クライアントコンピュータ２１全体を動作させ、管理するためのソフトウェアである。オペレーティングシステム２１は、サブシステム１３、エグゼキュティブ１６、カーネル１７、第１デバイスドライバ３６、第２デバイスドライバ３５、ハードウェア抽象化層（ＨＡＬ）１８から構成される。【００６０】
サブシステム１３は、オペレーティングシステム２１のユーザモード１４で提供されるサービスである。エグゼキュティブ１６は、メモリの管理、プロセスとスレッドの管理、セキュリティ、入出力機能（Ｉ／Ｏ）、ネットワーク機能、及びプロセス間通信等のオペレーティングシステム２１の基本的なサービスを提供するものである。カーネル１７は、スレッドスケジューリング、割り込み、例外通知、マルチプロセッサの同期等の低レベルの関数を提供する。また、カーネル１７は、エグゼキュティブ１６の内部で使用するルーチンセットと基本オブジェクトを提供する。【００６１】
デバイスドライバは、図２においては、第１デバイスドライバ３６、第２デバイスドライバ３５として図示されている。デバイスドライバは、通常は、クライアントコンピュータ１２に接続されたハードウェアごとに作られ、ハードウェア抽象化層１８を介して、そのハードウェアを直接制御するものである。デバイスドライバは、アプリケーションプログラム２０やオペレーティングシステム２１からの入出力機能の要求（Ｉ／Ｏ呼び出し要求）を特定のハードウェアデバイスに対する入出力機能の要求（Ｉ／Ｏ要求）に変換するサービスを提供する。また、デバイスドライバは、ファイルシステムやネットワークドライバ等のシステムサービスを提供する。【００６２】
ハードウェア抽象化層１８は、カーネル１７、デバイスドライバ、及びエグゼキュティブ１６をプラットフォーム固有のハードウェア機能から分離し抽象化するためのコード層である。ハードウェア抽象化層１８は、クライアントコンピュータ１２の内蔵デバイス２６や、クライアントコンピュータ１２に接続されている外部デバイス６等のハードウェアの機種、種類による違いを吸収し、オペレーティングシステム２１の各サービスに対して抽象化したサービスを提供する。オペレーティングシステム２１を構成する各種のサービスは、ハードウェアの機種、種類による違いを意識することなくハードウェアにアクセスすることが可能になる。【００６３】
〔ドライバウェア５０〕
ドライバウェア５０は、デバイスドライバ間のデータの送受信をカーネルモードで実現するためのソフトウェアである。ドライバウェア５０は、アプリケーションプログラム２０から第１デバイスドライバ３６、第２デバイスドライバ３５へアクセスするとき、また、第１デバイスドライバ３６、第２デバイスドライバ３５からアプリケーションプログラム２０へデータを送信するときに、共通のインターフェースを提供する。ドライバウェア５０は、オペレーティングシステム２１のカーネルモード１５で動作する。【００６４】
ドライバウェア５０は、第１デバイスドライバ３６と第２デバイスドライバ３５の間だけではなく、オペレーティングシステム２１と複数のデバイスドライバとのデータの送受信を提供する機能を有する。ドライバウェア５０の例としては、電子計算機のインターフェースドライバプログラムとしてＷＯ０２／０９１１９５号公報等に開示されている周知の技術である。【００６５】
ドライバウェア５０は、アプリケーションプログラム２０からの命令やデータ等を受信し、アプリケーションプログラム２０へのデータを送信するためのアプリケーションプログラムインターフェース部５１を有する。ドライバウェア５０は、ドライバウェア５０の全体の動作を制御するための制御部５２を有する。また、ドライバウェア５０の動作の履歴を取得するためのログ取得部５３も有する。更に、ドライバウェア５０は、第１デバイスドライバ３６、第２デバイスドライバ３５を制御するための第１デバイスドライバ制御部４６、第２デバイスドライバ制御部４５を有する。【００６６】
ドライバウェア５０は、通信するデータを暗号化するための暗号化部５４、暗号化されたデータを復号化するための復号化部５５を有する。制御部５２は、第１デバイスドライバ制御部４６、第２デバイスドライバ制御部４５、アプリケーションプログラムインターフェース部５１、ログ取得部５３、暗号化部５４、復号化部５５等のドライバウェア５０の各部を制御し、監視するためのもので、ドライバウェア５０の中核部である。【００６７】
〔アプリケーションプラットフォームプログラム５〕
アプリケーションプラットフォームプログラム５は、アプリケーションプログラム２０と、オペレーティングシステム２１との間に位置し、これらの間に命令やデータの送受信を仲介し制御するためのアプリケーションプログラムである。アプリケーションプラットフォームプログラム５は、オペレーティングシステム２１のユーザモード１４で動作する。アプリケーションプラットフォームプログラム５は、オペレーティングシステム２１のファイルシステムにアクセスするためのユーザインターフェースを提供するためのアプリケーションプログラムである。【００６８】
アプリケーションプラットフォームプログラム５は、アプリケーションプログラム２０の起動、これに伴うプロセスの起動を監視し、これらの属性情報を取得する機能を有する。アプリケーションプラットフォームプログラム５は、Windows（登録商標）のエクスプローラと互換性があるアプリケーションプログラムであることが特に好ましい。【００６９】
図３には、本発明の第１の実施の形態の概要を図示している。図３には、図２に抽象的に図示したデバイスドライバ、外部デバイス６、内蔵デバイス２６の具体的な例を図示している。また、クライアントコンピュータ１２は、ハードディスク２５等の外部記憶装置を備える。クライアントコンピュータ１２は、周辺機器と接続するためのコネクタ２２を有する。コネクタ２２は、ＲＳ―２３２Ｃ等のシリアルポート、ＩＥＥＥ１２８４等のパラレルポート、ＩｒＤＡ、ＩＥＥＥ１３９４やＩＥＥＥ８０２．３等のコネクタであることが好ましい。【００７０】
クライアントコンピュータ１２は、ネットワーク７に接続するためのネットワークカード２３を備えている。更に、ＵＳＢメモリ８等のＵＳＢ規格準拠の機器を接続するためのＵＳＢポート２４を備えている。これらのコネクタ２２、ネットワークカード２３を直接制御し、通信を行うためのプログラムは、それぞれのデバイスドライバであるインターフェースドライバ３２、ネットワークドライバ３３である。【００７１】
本発明の第１の実施の形態においては、デバイスドライバ３２〜３４は、オペレーティングシステム２１に付属するものと記述する。インターフェースドライバ３２は、コネクタ２２を制御するためのデバイスドライバである。ネットワークドライバ３３は、ネットワークカード２３を制御するためのデバイスドライバである。【００７２】
ファイルシステムドライバ３４は、ハードディスク２５等の外部記憶装置に保存されているファイル、フォルダに関する情報を管理するもので、ハードディスク２５に保存されているファイルやフォルダへのアクセスを提供するものである。ファイルシステムドライバ３４は、クライアントコンピュータ１２に接続されたＵＳＢ規格準拠の記憶装置へのアクセスも提供する。このアクセスは、オペレーティングシステム２１のMass Storage Class用のドライバ（図示せず）を介して行われる。【００７３】
アプリケーションプログラム２０は、クライアントコンピュータ１２にインストールされた又は、動作しているソフトウェアである。アプリケーションプログラム２０は、オペレーティングシステム２１のユーザモード１４上で動作する。アプリケーションプログラム２０は、ハードディスク２５にアクセスして、必要なファイルを読み込んだり、書き込んだりする。また、アプリケーションプログラム２０は、Windowsのカーネルモード１５で動作する一部のプログラムも意味する。【００７４】
ドライバウェア５０は、アプリケーションプログラム２０からデバイスドライバ３２〜３４へアクセスするとき、また、デバイスドライバ３２〜３４からアプリケーションプログラム２０へデータを送信するときに、共通のインターフェースを提供する。ドライバウェア５０は、アプリケーションプログラムインターフェース部５１、制御部５２、ログ取得部５３等を有する。【００７５】
ドライバウェア５０は、通信するデータを暗号化するための暗号化部５４、暗号化されたデータを復号化するための復号化部５５を有する。また、ドライバウェア５０は、インターフェースドライバ３２を制御するためのインターフェース制御部４２を有する。ドライバウェア５０は、ネットワークドライバ３３を制御するためのネットワーク制御部４３を有する。ドライバウェア５０は、ファイルシステムドライバ３４を制御するためのファイルシステム制御部４４を有する。【００７６】
制御部５２は、インターフェース制御部４２、ネットワーク制御部４３、ファイルシステム制御部４４等のドライバウェア５０の各部を制御し、監視するためのもので、ドライバウェア５０の中核部である。ＵＳＢメモリ８等の記憶装置は、クライアントコンピュータ１２に接続されると、その装置のデバイスドライバによって認識された後、ファイルシステムドライバ３４から制御される。【００７７】
図４は、ＵＳＢメモリ８の内部構造を示すブロック図である。図４は、筐体（図示せず）に格納されている基板１０５の構成の概要を図示している。基板１０５の上には、ユーザ領域１０６、プログラム領域１０７や秘密領域１２０等が搭載されて配置されている。ユーザ領域１０６は、ユーザデータ３を格納するためのメモリである。プログラム領域１０７は、認証プログラム１１３（説明は後述する。）等の実行プログラムを格納するためのメモリである。【００７８】
コネクタ１１４は、ＵＳＢメモリ８をクライアントコンピュータ１２に接続するためのコネクタである。ＵＳＢメモリ８は、データ等を記憶する隠し領域を持っている。例えば、認証に利用する認証データ１１６を格納した認証領域１１５を有する。認証データ１１６は、ＵＳＢメモリ８の認証、ＵＳＢメモリ８を利用する利用者の個人認証等に使うものである。【００７９】
ユーザデータ３と、認証プログラム１１３は、ＵＳＢメモリ８の別々のメモリ領域に格納されている。ユーザデータ３はユーザ領域１０６に格納されている。認証プログラム１１３は、プログラム領域１０７に格納されている。ＵＳＢメモリ８がクライアントコンピュータ１２に接続されると、ユーザ領域１０６とプログラム領域１０７がリムーバルドライブとしてオペレーティングシステム２１に認識される。しかし、ＵＳＢメモリ８の初期設定では、プログラム領域１０７がオペレーティングシステム２１からアクセス可能な設定になっている。【００８０】
ユーザ領域１０６は、ＵＳＢメモリ８の初期設定では、クライアントコンピュータ１２からのアクセスできない設定になっている。プログラム領域１０７に格納されている認証プログラム１１３は、自動起動してクライアントコンピュータ１２上に動作する。認証プログラム１１３が認証を行い成功すると、ユーザ領域１０６をクライアントコンピュータ１２からアクセスできるように設定をする。この設定は、ＵＳＢメモリ８内のスイッチ（図示せず）によってソフトウェア的に行われる。【００８１】
秘密領域１２０は、クライアントコンピュータ１２を操作した履歴、特に、ユーザデータ３を利用した履歴が保存されるための領域である。クライアントコンピュータ１２からアクセスすることができない領域である。管理プログラム４から特定の命令を送信することで、秘密領域１２０にアクセスし、データを書き込む。【００８２】
認証プログラム１１３の機能は、クライアントコンピュータ１２上に導入されている管理プログラム４の確認と、クライアント１１の個人認証からなる。認証プログラム１１３は、管理プログラム４と通信することによって、管理プログラム４がクライアントコンピュータ１２にインストールされていることを確認する。認証プログラム１１３は、管理プログラム４に指示して、管理プログラム４の制御モードをオンにする。クライアント１１の個人認証は、パスワードによる認証、バイオメトリックス認証等であることが好ましい。本発明の第１の実施の形態においては、クライアント１１の個人認証は、パスワードによる認証として説明する。【００８３】
図５は、全体の動作を示すフローチャートである。記録媒体９に格納されている管理プログラム４は、サーバ２にインストールされて導入される（ステップ１０）。記録媒体９は、ＣＤ−ＲＯＭであることが好ましい。ＵＳＢメモリ８は、サーバ２に接続される。そして、ユーザデータ３はサーバ２からＵＳＢメモリ８に書き込まれる（ステップ１４）。ユーザデータ３は、サーバ２からＵＳＢメモリ８に書き込まれる詳細なフローは図６に図示している。ＵＳＢメモリ８は、クライアント１１に提供される（ステップ１８）。【００８４】
クライアント１１は、サーバ側１から提供されたＵＳＢメモリ８を受け取る。クライアント１１は、記録媒体９をクライアントコンピュータ１２の記録媒体用ドライブにセットして、管理プログラム４をクライアントコンピュータ１２にインストールする（ステップ２０）。クライアントコンピュータ１２にインストールされた管理プログラム４は、サーバ２にインストールされた管理プログラム４と同一のものでも良い。又は、サーバ２にインストールされた管理プログラム４とライセンス認証等によって連動して動作するものでも良い。【００８５】
以後、クライアントコンピュータ１２にインストールされた管理プログラム４は、サーバ２にインストールされた管理プログラム４とライセンス認証によって連動し動作するものとする。このように管理プログラム４がクライアントコンピュータ１２にインストールされないと、ＵＳＢメモリ８に格納されているユーザデータ３をクライアントコンピュータ１２から読み出して、出力装置に表示してクライアント１１が閲覧することができない。また、ＵＳＢメモリ８にデータの書き込みをすることができない。【００８６】
ＵＳＢメモリ８に格納されているユーザデータ３は、クライアントコンピュータ１２上に管理プログラム４によって提供された環境のみから読み出されて利用できるように設定されている。管理プログラム４がクライアントコンピュータ１２にインストールされると、管理プログラム４のライセンス認証が行われることが望ましい。このライセンス認証は、インターネット等のネットワーク７を介してサーバ側１に接続して行われると良い。また、サーバ側１からクライアント１１に提供した認証の識別番号をクライアント１１がクライアントコンピュータ１２の入力装置から入力して行われても良い。【００８７】
ＵＳＢメモリ８は、クライアントコンピュータ１２のＵＳＢポート２４（図３を参照）にクライアント１１によって挿入され、接続される（ステップ２２）。クライアントコンピュータ１２上に動作しているオペレーティングシステム２１は、そのプラグアンドプレイ（ＰｎＰ）機能を利用してＵＳＢメモリ８を認識する。ＵＳＢメモリ８がクライアントコンピュータ１２に認識されると、オペレーティングシステム２１のMass Storage Class用のドライバを使って、オペレーティングシステム２１のファイルシステムからＵＳＢメモリ８に格納されているデータへアクセスできるようになる。【００８８】
管理プログラム４は、オペレーティングシステム２１がＵＳＢメモリ８を認識した結果を取得して、サーバ側１から提供されたＵＳＢメモリ８である否かの認証を行う（ステップ２３）。この認証は、管理プログラム４と認証プログラム１１３によって行われる。この認証には、認証領域１１５に格納されている認証データ１１６を用いる。認証データ１１６は、ＵＳＢメモリ８の識別番号、型番、クライアント１１を識別するための暗証番号又は暗号鍵等からなる。この認証により、管理プログラム４とＵＳＢメモリ８がペアで利用できるものか否かを確認する。【００８９】
この認証が正常に終わると、管理プログラム４がＵＳＢメモリ８へのアクセスの設定を行う。この設定は、ＵＳＢメモリ８に格納されていて自動起動して動作している認証プログラム１１３と管理プログラム４が通信することによって行われる。そして、認証が成功すると、認証プログラム１１３がＵＳＢメモリ８内のスイッチをソフトウェア的な切り替えし、ＵＳＢメモリ８に格納されているユーザデータ３にアクセスすることが可能になる（ステップ２４）。  管理プログラム４は、クライアントコンピュータ１２からＵＳＢメモリ８も含め全ての外部記憶装置にアクセスしているアクセス要求を全て監視する。【００９０】
管理プログラム４は、クライアントコンピュータ１２上に動作するアプリケーションプログラム２０と、アプリケーションプログラム２０が実行されるときに起動するプロセスの全てを監視する。管理プログラム４は、所定の条件に合うアクセス要求だけを遂行する。所定の条件としては、ユーザデータ３の読み取り専用、又は書き込みを許可するように設定することができる（ステップ２４）。所定の条件の設定については、図９のフローチャートに示している。【００９１】
ＵＳＢメモリ８は、クライアントコンピュータ１２から読み込みと書き込みが可能である。クライアントコンピュータ１２に接続又は内蔵されているその他の外部記憶装置、リムーバブルディスクは読み込みだけが可能である。ＵＳＢメモリ８に格納されているユーザデータ３をクライアントコンピュータ１２が読み込んで、表示することが可能であり、また、ユーザデータ３を編集し、その結果をＵＳＢメモリ８に保存することが可能である（ステップ２６）。しかし、ユーザデータ３を編集し、その結果を他の外部記憶装置、リムーバブルディスクには保存することができない。【００９２】
また、管理プログラム４は、ネットワーク機能、各種の通信ポート、スクリーンキャプチャ、プログラム間のコピー＆ペースト機能等の使用を禁止する設定をする。プログラム間のコピー＆ペースト機能とは、あるプログラムが動作中にコピーした内容を別のプログラムに貼り付けする機能を意味する。これらの禁止設定は管理プログラム４が行う設定の例でありこれらだけに限るものではない。同一プログラム内のコピー＆ペースト機能は、許可される。コピー＆ペースト機能は、クリップボードを介して行われるので、同一プログラム内にクリップボードを利用することを許可し、プログラム間にクリップボードを利用したデータのやりとりを禁止する。【００９３】
キーボードのスクリーンキャプチャ用のキーを使用禁止にすることで、スクリーンキャプチャの使用を禁止することができる。このように設定して、ユーザデータ３を複製すること、印刷すること、他者へ送信すること、ユーザデータ３を利用して２次的な電子データを作成すること、表示画面から画像として取得することができなくなる。また、ユーザデータ３を読み込んで編集することを許可する設定を行うとき、ユーザデータ３を読み込むアプリケーションプログラム２０の指定等を行うことができる。【００９４】
ログ取得部５３は、クライアントコンピュータ１２上でユーザデータ３を利用した履歴を取得する。ログ取得部５３は、この履歴をＵＳＢメモリ８の秘密領域１２０又はデータを暗号化しユーザ領域１０６に保存する（ステップ２８）。秘密領域１２０に履歴を保存する場合は、管理プログラム４から特定の命令をＵＳＢメモリ８に送信して、秘密領域１２０にアクセスする。クライアント１１は、ＵＳＢメモリ８を利用し終わったときは、サーバ側１にＵＳＢメモリ８を返却する（ステップ３０）。サーバ側１は、クライアント１１から返却されてきたＵＳＢメモリ８に保存されている履歴を分析する。この分析によって、ユーザデータ３の利用状況を把握することができる（ステップ３２）。【００９５】
管理プログラム４は、ＵＳＢメモリ８に格納されてクライアント側１０に提供されることが可能である。この場合、管理プログラム４はＵＳＢメモリ８のプログラム領域１０７に格納される。ＵＳＢメモリ８がクライアントコンピュータ１２に接続されたら（ステップ２２）、管理プログラム４がプログラム領域１０７から自動的に実行される。よって、管理プログラム４はインストールされる。ステップ２０で記述した記録媒体９による管理プログラム４のインストールが不要になる。ステップ２３〜３２の動作が同様に行われる。【００９６】
図６は、サーバ２において、ユーザデータ３をＵＳＢメモリ８に書き込むときの流れを示すフローチャートである。ユーザデータ３はサーバ２からＵＳＢメモリ８に書き込まれるために、サーバ２には、管理プログラム４がインストールされて動作している必要がある。管理プログラム４は、記録媒体９に書き込まれてサーバ側１に提供される。サーバ２の記録媒体用ドライブに記録媒体９を設定する。管理プログラム４は記録媒体９からサーバ２にインストールされる（ステップ４０）。【００９７】
管理プログラム４は、ＵＳＢメモリ８に格納されて提供された場合は、ＵＳＢメモリ８がサーバ２に接続されたら、管理プログラム４が自動的に実行されて、インストールされる。ユーザデータ３を書き込むためのＵＳＢメモリ８を、サーバ２に接続する（ステップ４２）。ＵＳＢメモリ８がサーバ２に認識される。ＵＳＢメモリ８は、プログラム領域１０７、ユーザ領域１０６、認証領域１１５、秘密領域１２０等の複数のメモリ領域からなる。プログラム領域１０７は、サーバ２に認識される（ステップ４４）。プログラム領域１０７に格納されている認証プログラム１１３は、自動起動し実行される（ステップ４６）。【００９８】
認証プログラム１１３は、サーバ２に管理プログラム４がインストールされているか否かの認証を開始する（ステップ４８）。サーバ２に管理プログラム４がインストールされている場合は、パスワードによる個人認証を行う（ステップ５０）。個人認証が成功すると、認証プログラム１１３は、ＵＳＢメモリ８のユーザ領域１０６をサーバ２に認識させる。よって、ユーザ領域１０６はサーバ２からアクセスできるようになり、利用可能になる（ステップ５２、５４）。ユーザデータ３は、暗号化されて、ユーザ領域１０６に書き込まれる（ステップ５６、５８）。【００９９】
その後、ＵＳＢメモリ８は、サーバ２から切断されて、クライアント１１に提供可能になる（ステップ６０）。認証プログラム１１３は、サーバ２に管理プログラム４がインストールされていない場合と、個人認証が成功しない場合は、ユーザ領域１０６をサーバ２に認識させない。よって、ユーザ領域１０６にユーザデータ３を書き込むことができなくなり、ＵＳＢメモリ８は利用できない（ステップ５０、５２→ステップ６６）。【０１００】
暗号化は、公開鍵と秘密鍵のペアを用いる公開鍵暗号方式を採用することが好ましい。しかし、これは、暗号化する方式を限定するものではない。暗号化と復号化は、本発明の趣旨ではないので詳細な説明は省略する。【０１０１】
図７は、クライアントコンピュータ１２において、ユーザデータ３をＵＳＢメモリ８から読み出して閲覧又は編集するときの流れを示すフローチャートである。ＵＳＢメモリ８は、クライアントコンピュータ１２に接続される（ステップ７０）。クライアントコンピュータ１２は、ＵＳＢメモリ８を認識する（ステップ７２）。このとき、オペレーティングシステム２１は、ＰｎＰ機能を利用してＵＳＢメモリ８の接続を検知して認識する。ＵＳＢメモリ８のプログラム領域１０７は、クライアントコンピュータ１２に認識される。【０１０２】
ＵＳＢメモリ８が認識されると、ＵＳＢメモリ８のプログラム領域１０７に格納されているチェックプログラム１１８が自動起動されて、クライアントコンピュータ１２の動作環境をチェックし始める（ステップ７４）。この動作環境のチェックが終了すると、認証プログラム１１３が起動され、クライアントコンピュータ１２に管理プログラム４がインストールされているか否かの認証を開始する（ステップ７６）。【０１０３】
管理プログラム４がインストールされていない場合は、クライアント１１が管理プログラム４をインストールする（ステップ７６、９０）。管理プログラム４がクライアントコンピュータ１２にインストールされている場合は、パスワードによる個人認証を行う（ステップ７７）。個人認証が成功すると管理プログラム４を制御モードにさせる（ステップ７８）。制御モードの詳細については、図９のフローチャートに図示している。【０１０４】
管理プログラム４の制御モードの設定が終わると、認証プログラム１１３は、ＵＳＢメモリ８のユーザ領域１０６をクライアントコンピュータ１２に認識させる。よって、ユーザ領域１０６はクライアントコンピュータ１２からアクセスできるようになり、利用可能になる（ステップ８０）。ユーザデータ３の読み出しが許可され、暗号化されたユーザデータ３の自動復号化も許可される（ステップ８２）。ユーザデータ３はＵＳＢメモリ８から読み出される（ステップ８４）。【０１０５】
ＵＳＢメモリ８から読み出されたユーザデータ３は、復号化される（ステップ８６）。復号化されたユーザデータ３は、クライアントコンピュータ１２の出力装置に表示される（ステップ８８）。また、ユーザデータ３を編集することが可能である。管理プログラム４は、制御モードに入ると、ハードディスク２５、クライアントコンピュータ１２に接続されている他の周辺機器にユーザデータ３を保存できないように各装置へのアクセスを制限している。ＵＳＢメモリ８は書き込みができる設定になる。【０１０６】
このために、クライアント１１は、ユーザデータ３をハードディスク２５や、クライアントコンピュータ１２に接続されている周辺機器に保存することができない。更には、管理プログラム４は、制御モードに入ると、ネットワーク機能、各種の通信ポート、クリップボードの利用、スクリーンキャプチャ、コピー＆ペースト機能等も使用禁止の設定にしている。よって、ユーザデータ３は、閲覧の操作と、これを編集したデータをＵＳＢメモリ８に保存する操作以外の操作ができなくなる。管理プログラム４は、ユーザデータ３を利用した履歴を全て取得する（ステップ９２）。これは、ログ取得部５３によって行われる。取得された履歴は、ＵＳＢメモリ８の秘密領域１２０、又は暗号化されてユーザ領域１０６に保存される（ステップ９４）。【０１０７】
図８は、管理プログラム４の動作を示すフローチャートである。管理プログラム４は、記録媒体９に格納されて、クライアント１１に提供される。管理プログラム４は、クライアント１１によってクライアントコンピュータ１２にインストールされる（ステップ１００）。管理プログラム４は、起動されて、動作を開始する（ステップ１０２）。ＵＳＢメモリ８がクライアントコンピュータ１２に接続されると、オペレーティングシステム２１はＰｎＰ機能を利用してＵＳＢメモリ８の接続を検知して認識する。【０１０８】
ＵＳＢメモリ８が認識されると、ＵＳＢメモリ８のプログラム領域１０７に格納されているチェックプログラム１１８が自動起動されてクライアントコンピュータ１２の動作環境をチェックする（ステップ１０３）。その後、認証プログラム１１３が起動される（図７のステップ７４）。認証プログラム１１３は、クライアントコンピュータ１２に管理プログラム４がインストールされているかを確認する（図７のステップ７６）。管理プログラム４がクライアントコンピュータ１２にインストールされている場合は、パスワードによる個人認証を行う（図７のステップ７７）。【０１０９】
管理プログラム４がクライアントコンピュータ１２にインストールされ、個人認証が成功した場合は、認証プログラム１１３から管理プログラム４に、制御モードになるように指示され、管理プログラム４が制御モードに設定される（ステップ１０６）。管理プログラム４が制御モードに設定されると、認証プログラム１１３は、ＵＳＢメモリ８内のユーザ領域１０６をオペレーティングシステム２１に認識させて、利用可能な状態にする（図７のステップ８０）。【０１１０】
このとき、クライアントコンピュータ１２からのユーザデータ３の読み出しが許可され、暗号化されたユーザデータ３の自動復号化が許可される（図７のステップ８２）。更に、クライアントコンピュータ１２からユーザ領域１０６に書き込みするデータの自動暗号化の設定が許可される。管理プログラム４は、アプリケーションプログラムからＵＳＢメモリ８へのアクセスを監視する。ＵＳＢメモリ８へのアクセスがあると、それを管理プログラム４が受信する（ステップ１０８）。【０１１１】
管理プログラム４は、アクセスの種類を確認する（ステップ１０８）。許可されているアクセスか否かを確認する（ステップ１１０）。許可されているアクセスのときは、ユーザデータ３をＵＳＢメモリ８から読み出す（ステップ１１２）。管理プログラム４は、ＵＳＢメモリ８から読み出したユーザデータ３を復号化する（ステップ１１４）。復号化されたユーザデータ３は、クライアントコンピュータ１２の出力装置に表示され、閲覧と編集が可能になる（ステップ１１６、１１７）。【０１１２】
許可されていないアクセスのときは、管理プログラム４はそのアクセスを破棄する（ステップ１１０、１２０）。このとき、不許可にされたアクセスである旨のメッセージをクライアント１１に対して表示することも可能である（ステップ１２２）。管理プログラム４は、ユーザデータ４を利用した履歴を全て取得する（１２４）。これは、ログ取得部５３によって行われる。取得された履歴は、ＵＳＢメモリ８の秘密領域１２０、又は暗号化されてユーザ領域１０６に保存される（ステップ１２６）。【０１１３】
管理プログラム４は、表示されているユーザデータ３を継続して監視する（ステップ１１８）。ユーザデータ３は、データの種類によるが、適当なアプリケーションプログラム２０を起動させて表示される。例えば、ユーザデータ３は、テキストデータの場合は、テキスト編集用のアプリケーションプログラム２０に渡されて表示される。クライアント１１は、キーボードやマウス等の入力装置を操作しながらこのアプリケーションプログラム２０を操作してユーザデータ３を閲覧し、編集する。【０１１４】
図９は、管理プログラム４が制御モードをオンするときの動作を示すフローチャートである。図７のステップ７８、図８のステップ１０６に示すように、管理プログラム４が制御モードをオンにする（ステップ１３０）。管理プログラム４は、クライアントコンピュータ１２に内蔵されたハードディスク２５への書き込みを禁止にする（ステップ１３１）。管理プログラム４は、リムーバルドライバへの書き込みを禁止にする（ステップ１３２）。このとき、ＵＳＢメモリ８への書き込みは許可する。【０１１５】
ＵＳＢメモリ８、内蔵のハードディスクの他に記録装置があるときは、それらへの書き込みを禁止にする（ステップ１３４）。例えば、リムーバブルドライブ、フレキシブルディスクドライブ、外付けハードディスク等である。管理プログラム４は、ネットワーク通信の使用を禁止する（ステップ１３６）。例えば、ネットワーク通信の使用としては、ネットワークカード２３を介してインターネット、ＬＡＮ等へのアクセス、コンピュータ同士の通信が含まれる。【０１１６】
このＵＳＢメモリ８の他のインターフェースを使用禁止にする。例えば、ＵＳＢ、ＳＣＳＩ、ＩＤＥ、ＲＳ−２３２Ｃ規格のインターフェースの使用を禁止にする（ステップ１３８）。同一プログラム内にクリップボードを利用することを許可し、プログラム間にクリップボードを利用したデータのやりとりを禁止する（ステップ１３９）。また、スクリーンキャプチャの使用も禁止にする（ステップ１３９）。オペレーティングシステム２１の正常な動作に必要なプロセスを指定し、例外設定をする（ステップ１４０）。例えば、オペレーティングシステム２１の動作に必要なSystem等を動作可能にする。このような設定は、図１５のプロセス制御リスト１５０（図１５を参照。）に例示している。【０１１７】
起動しているプロセスのプロセス名、プロセスＩＤを取得する（ステップ１４２）。取得したプロセス名とプロセスＩＤを管理テーブル、例えばプロセス制御リスト１５０、に保存する（ステップ１４４）。管理プログラム４が制御モードをオンにした後の、ステップ１３１〜１４０の各種の設定は、必ずしもこの順番で行う必要はなく、状況に応じて自由自在に組み合わせることができる。ＵＳＢメモリ８をクライアントコンピュータ１２から抜き取ると、オペレーティングシステム２１はこれを検知する。【０１１８】
ＵＳＢメモリ８は、オペレーティングシステム２１にはリムーバルドライバとして認識されているため、管理プログラム４はこれを認証プログラム１１３が格納されているＵＳＢメモリ８であるか否かの確認を行う。ＵＳＢメモリ８が切断されたときは、管理プログラム４は、ステップ１３１〜１４０に設定した設定を全て解除する。また、ファイルの自動復号化、自動暗号化の設定も解除にする。【０１１９】
図１０は、クライアントコンピュータ１２の動作環境をチェックする例を示すフローチャートである。ＵＳＢメモリ８をクライアントコンピュータ１２に接続し、クライアントコンピュータ１２がＵＳＢメモリ８を認識すると、プログラム領域１０７に格納されているチェックプログラム１１８が自動起動して実行される（ステップ１５０、１５２）。チェックプログラム１１８は、クライアントコンピュータ１２の動作環境をチェックする。チェックプログラム１１８は、クライアントコンピュータ１２にウィルス対策ソフトがインストールされていて動作しているかをチェックする（ステップ１５４）。【０１２０】
クライアントコンピュータ１２にウィルス対策ソフトがインストールされていない場合は、継続してＵＳＢメモリ８を利用することができないので、その旨のメッセージをディスプレイに表示させてＵＳＢメモリ８の利用を終了させる（ステップ１６４）。更に、チェックプログラム１１８は、クライアントコンピュータ１２にファイル共有ソフトがインストールされているか否かをチェックする（ステップ１５６）。クライアントコンピュータ１２にファイル共有ソフトがインストールされている場合は、継続してＵＳＢメモリ８を利用することができない。【０１２１】
ファイル共有ソフトをチェックするときは、動作中のアプリケーションプログラムを確認してファイル共有ソフトであるか否かを確認する。また、特定のファイル共有ソフトがクライアントコンピュータ１２に作成したファイルやフォルダをチェックしたり、クラインとコンピュータ１２のメモリをチェックしたりしてファイル共有ソフトのインストールやその使用履歴を確認する。チェックプログラム１１８は、ファイル共有ソフトの削除を試みる（ステップ１５８）。【０１２２】
ファイル共有ソフトを削除できなかった場合は、ＵＳＢメモリ８を利用できないの旨のメッセージをディスプレイに表示させてＵＳＢメモリ８の利用を終了させる（ステップ１６０、１６４）。クライアントコンピュータ１２にファイル共有ソフトがインストールされていない場合は、継続してＵＳＢメモリ８を利用することができ、続けて認証プログラム１１３を呼び出し、個人認証を行わせる（ステップ１５６、１６２）。ファイル共有ソフトがクライアントコンピュータ１２にインストールされている場合は、これ削除してから、認証プログラム１１３を呼び出し、個人認証を行わせる（ステップ１５８、１６０、１６２）。【０１２３】
無論、ＵＳＢメモリ８を強制的に使用不能することとき、ＵＳＢメモリ８をクライアントコンピュータ１２から物理的に切断するときは、ＵＳＢメモリ８を利用できないの旨のメッセージをディスプレイに表示させる。また、クライアントコンピュータ１２にウィルス対策ソフトがインストールされていない場合は、ＵＳＢメモリ８、つまりＵＳＢメモリ８に格納されているユーザデータ３、を利用することができない。この場合は、ウィルス対策ソフトをインストールしてＵＳＢメモリ８をクライアントコンピュータ１２に再度接続して利用することができる。【０１２４】
クライアントコンピュータ１２にファイル共有ソフトがインストールされている場合は、これの自動削除を行うが、失敗した場合は、クライアント１１が手動でファイル共有ソフトをアンインストール又は削除してからＵＳＢメモリ８をクライアントコンピュータ１２に再度接続して利用することができる。【０１２５】
図１１には、制御部５２の動作のフローチャートを図示している。ドライバウェア５２が制御モードをオンにするように指示されると、制御部５２はこの指示を受信し、ファイルアクセスを全て禁止する命令を送信する（ステップ２００）。この命令は、インターフェース制御部４２、ネットワーク制御部４３、ファイルシステム制御部４４に送信される。インターフェース制御部４２、ネットワーク制御部４３、ファイルシステム制御部４４は、この命令を受信して、ファイルアクセスを禁止にする。【０１２６】
ＵＳＢメモリ８は、データの読み込み、書き込みが許可される。プロセス制御リスト１５０（図１５を参照）によって制御が許可されたプログラム、又はプロセス制御リスト１５０に登録されていないプログラムはＵＳＢメモリ８内のデータの読み込み、書き込みが許可される。また、除外するプロセスの設定、ネットワーク利用の禁止、スクリーンキャプチャの使用禁止等を行います。アプリケーションプラットフォームプログラム５が動作しているときに、アプリケーションプログラム２０が起動する（ステップ２０２）。アプリケーションプラットフォームプログラム５は、アプリケーションプログラム２０の起動を検出する（ステップ２０４）。【０１２７】
CreateProcessのSUSPEND（サスペンド）モードでアプリケーションプログラム２０のプロセスが起動され、アプリケーションプラットフォームプログラム５は、このプロセスのハンドルとプロセスＩＤを取得する。ハンドルは、CreateProcessから戻されるプロセスハンドルである。アプリケーションプラットフォームプログラム５は、取得したハンドルとプロセスＩＤを制御部５２に送信する。制御部５２は、ハンドルとプロセスＩＤを取得する（ステップ２０６）。【０１２８】
制御部５２は、ファイルシステム制御部４４へハンドルとプロセスＩＤを送信し、プロセスＩＤから出されるファイルアクセスを許可する設定を行う。ファイルアクセスを許可に設定するのは、プロセスＩＤ、プロセス名、ファイル名、フォルダ名、ファイル操作である。つまり、プロセスＩＤ、プロセス名、ファイル名、フォルダ名、ファイル操作を許可設定にすることで、ファイルアクセスを許可する。ファイル操作に指定される設定は、読み込み専用（Read Only）と、読み込み書き込み（Read/Write）とを許可する設定である（ステップ２０８）。制御部５２は、クリップボードの利用制限をし、同一プログラム内のコピー＆ペースト機能を許可、プログラム間の場合は禁止する。インターフェース制御部４２は、各種のインターフェースを使用禁止に設定する（ステップ２１０）。【０１２９】
また、ネットワーク制御部４３は、ネットワーク通信を禁止に設定する（図１１のステップ２１０）。これらの一連の設定が終わると、取得したハンドルを使って、サスペンドプロセスを再開する（ステップ２１２）。アプリケーションプログラム２０が動作される。そして、制御部５２は、アプリケーションプログラム２０が終了するときにオペレーティングシステム２１から発される通知である終了イベントを待機する（ステップ２１４）。【０１３０】
図１２は、アプリケーションプログラム２０の終了するときの制御部５２の動作を示すフローチャートである。アプリケーションプログラム２０は動作し、終了するときに、終了イベントが発生される（ステップ２３０）。アプリケーションプラットフォームプログラム５は、終了イベントのプロセスＩＤを取得する。アプリケーションプラットフォームプログラム５は、終了イベントのプロセスＩＤを制御部５２に送信する。制御部５２は、終了イベントのプロセスＩＤを取得する（ステップ２３２）【０１３１】
制御部５２は、ファイルシステム制御部４４へ、取得したプロセスＩＤからファイルアクセスを禁止設定する（ステップ２３４）。そして、インターフェース制御部４２へ禁止設定の解除を指示し、インターフェース制御部４２は使用禁止に設定したものを解除する（ステップ２３６）。ネットワーク制御部４３へ禁止設定の解除を指示し、ネットワーク制御部へ４３は使用禁止に設定したものを解除する（ステップ２３８）。【０１３２】
図１３は、制御部５２が制御するプロセスを設定するときのフローチャートを示す図面である。認証が成功する（ステップ２６０）。この認証は、クライアントの個人認証である。認証が成功すると、オペレーティングシステム２１の動作に不可欠なプロセスを指定、これらのプロセスに何らかの制限をしないようにする必要がある。例えば、オペレーティングシステム２１のシステムサービス関連の実行ファイル、その実行ファイルが動作するときのプロセスが使用禁止にされたり、起動できなくなったりするとき、オペレーティングシステム２１の提供するサービスに支障ができたり、オペレーティングシステム２１自体の動作が不安定になる。【０１３３】
そのためには、オペレーティングシステム２１の動作に必要な最低限の実行ファイルとプロセスを制限なしに動作させる必要がある。例えば、プロセスとしては、System、Services.exe 、explorer.exeが例示できる。制御プロセス名、制御ディレクトリは、プロセス制御リスト１５０に登録される。プロセス制御リスト１５０は、後述説明する図１５に例示している。制御部５２は、プロセス制御リスト１５０のプロセス名１５２から制御プロセス名、制御ディレクトリを読み込む（ステップ２６２）。【０１３４】
制御部５２は、制御プロセス名からプロセスＩＤを取得する（ステップ２６４）。プロセスＩＤから実際のプログラム（.exeなどのモジュール）名や正規のプログラムモジュールかどうかを判断すると良い。正規のプログラム（登録されているプログラム）であれば、実行を可能とすることで、亜種プログラムへの対策が可能である。正規プログラムかどうかは、外部データベース（例えば、米国ＮＩＳＴ内の登録データベース）又は独自に作成されたデータベースを参照して厳密に判断することが可能である。そして、制御部５２は、ファイルシステム制御部４４へ全て禁止の設定を指示し、ファイルシステム制御部４４は全てのプロセスの禁止を設定する（ステップ２６６）。【０１３５】
次には、制御部５２は、ファイルシステム制御部４４へ制御プロセス名のプロセスＩＤと、制御ディレクトリの読み込み書き込み（Read／Write）の許可設定を指示する（ステップ２６８）。ファイルシステム制御部４４は、制御部５２から送信されてきたプロセスＩＤとファイルパスと制御モードを受信する（ステップ２７０）。ファイルシステム制御部４４は、プロセスＩＤとファイルパスと制御モードをプロセス制御リスト１５０に追加する（ステップ２７２）。【０１３６】
図１４は、ファイルシステム制御部３４の動作を示す処理フローチャートである。アプリケーションプログラム２０又は、オペレーティングシステム２１からファイルへアクセスするときにファイルアクセスイベントが発生する（ステップ３００）。ファイルシステム制御部４４は、制御部５２からプロセスＩＤとファイルパスとファイル操作（Read/Write）を取得する（ステップ３０２）。このプロセスＩＤとファイルパスがプロセス制御リスト１５０に登録されたものと合致するか否かを確認する（ステップ３０４〜３１０）【０１３７】
このプロセスＩＤとファイルパスがプロセス制御リスト１５０に登録されたものと合致するとき、制御１５６に示した制御の値よりファイルの操作を許可又は禁止に設定する（ステップ３０８）。このプロセスＩＤとファイルパスがプロセス制御リスト１５０に登録されたものと合致しないとき、制御１５６（図１５を参照）の値よりファイルの操作を禁止に設定する（ステップ３１２）。【０１３８】
図１５には、プロセス制御リスト１５０の例を図示している。プロセス制御リスト１５０は、管理プログラム４がインストールされたときに初期値としてファイルに格納されてハードディスク２５に保存されている。プロセス制御リスト１５０は、必要なとき、編集して変更することも可能である。プロセス制御リスト１５０には、登録されたものの順番を示す連番欄１５１、プロセス名を示すプロセス名１５２、プロセスＩＤを示すプロセスＩＤ１５３、ファイルパスを示すファイルパス１５４、制御のモードを示すモード１５５、及び制御の方法を示す制御１５６の欄がある。制御１５６の欄には、制御の種類として「ＲＷ」で読み込み書き込みを、「ＲＯ」で読み込み専用を例示している。【０１３９】
〔ログの取得〕
図１６には、ログ取得部５３の動作の概要を図示している。ログ取得部５３は、ドライバウェア５０、管理プログラム４が動作するときのログを全て取得する。ドライバウェア５０が制御モードをオンにするとき、ログ取得部５３が履歴の取得を開始する（ステップ３１６、３１８）。制御部５２がアプリケーションプラットフォームプログラム５からプロセスに関するデータを取得し、そのプロセスに対する制御を行う。この制御したデータをログ取得部５３へ送信する（ステップ３２０、３２２）。【０１４０】
制御したデータとしては、クライアントコンピュータ１２からＵＳＢメモリ８にアクセスし、ユーザデータ３を読み出した履歴、ユーザデータ３を閲覧、編集した履歴を取得する。また、ユーザデータ３を閲覧、編集した後、作成されたファイルを保存した履歴を取得する。更に、制御したデータとしては、クライアントコンピュータ１２からＵＳＢメモリ８にアクセスしたアプリケーションプログラム２０の名称、アクセスした日時、ユーザ名等を取得する。【０１４１】
ログ取得部５３は、履歴に関するデータをクライアントコンピュータ１２のメインメモリ上に履歴テーブルに保存している。この履歴テーブルは、ログ取得部５３が履歴を取得し始めたときに、作成され初期化されるものである。ログ取得部５３は、制御部５２から受信したデータを履歴テーブルに追加する（ステップ３２４、３２６）。履歴テーブルに格納されている履歴に関するデータが所定の量を超えたら、履歴テーブルをＵＳＢメモリ８へ送信する（ステップ３２８、３３０）。ログ取得部５３が取得した履歴をＵＳＢメモリ８の秘密領域１２０又は暗号化してユーザ領域１０６に保存する。【０１４２】
このとき、履歴テーブルは、暗号化部５４によって暗号化されて、ＵＳＢメモリ８へ送信される（ステップ３３２、３３４）。履歴テーブルは、例えば、図１７に示す履歴１６０のフォーマットでＵＳＢメモリ８に保存される。ログ取得部５３は、マウスやキーボード等の入力装置から入力操作の履歴も取得する。マウスやキーボード等の入力装置から入力操作は、入力装置の制御を行うためのデバイスドライバから入力される値を直接又は、この値をドライバウェア５０で分析して取得する。【０１４３】
〔履歴１６０〕
図１７は、ログ取得部５３によって取得した履歴１６０の例を示している。履歴１６０は、ログ取得部５３によって取得され、ＵＳＢメモリ８に保存される。履歴１６０には、登録されたものの順番を示す連番欄１６１、クライアントコンピュータ１２を示すクライアントコンピュータ１６２、ログインしているクライアント１１を示すユーザ名１６３、操作されたファイルを示すファイル名１６４、起動して操作を行っているアプリケーションプログラム２０を示すアプリケーションプログラム１６５、操作の種類を示す操作の種類１６６、操作された年月日と時間を示す年月日１６７、時間１６８の欄がある。【０１４４】
〔入力装置の制御〕
クライアントコンピュータ１２は、マウスやキーボード等の入力装置を備えている。クライアント１１は、この入力装置を操作して、クライアントコンピュータ１２に入力を行い、操作する。クライアント１１は、入力装置を操作して、ＵＳＢメモリ８に記憶されているユーザデータ３を画面上に開いて、閲覧する。また、ユーザデータ３を編集する。更には、ユーザデータ３を利用して新規にファイルを作成する。そして、これらのファイルをＵＳＢメモリ８に保存する。【０１４５】
このように、クライアント１１は、入力装置を操作しているときにその操作の履歴をログ取得部５３が取得して、最終的にはＵＳＢメモリ８に保存する。キーボードは、多数のキーからなっており、管理プログラム４によって、ディスプレイキャプチャーのキーを操作することが禁止されている。また、マウスの右クリックが禁止されている。このように、禁止されているキーやボタンを検知し、その制御を行うときのフローチャートを図１８に図示している。【０１４６】
キーボードやマウスは、それらのデバイスドライバから直接制御されている。ドライバウェア５０は、キーボードのデバイスドライバへのインターフェースを提供するためのキーボード制御部を有する。ドライバウェア５０は、マウスのデバイスドライバへのインターフェースを提供するためのマウス制御部を有する。キーボードのデバイスドライバは、キーボードからの入力データを受信する。この受信された入力データは、キーボード制御部に送信される。キーボード制御部は、入力データを受信して、制御リストと比較する。【０１４７】
入力データには、操作が禁止されたキーのデータがある場合は、それを破棄する。その他の入力データは、制御部５２に送信される。制御部５２は、入力データを受信して、アプリケーションプログラムインターフェース部５１へ送信し、最終的にアプリケーションプログラム２０に送信される。マウスのデバイスドライバは、マウスからの入力データを受信する。この受信された入力データは、マウス制御部に送信される。マウス制御部は、入力データを受信して、制御リストと比較する。【０１４８】
入力データには、操作が禁止されたボタンのデータがある場合は、それを破棄する。その他の入力データは、制御部に送信される。制御部は、入力データを受信して、アプリケーションプログラムインターフェース部５１へ送信し、最終的にアプリケーションプログラム２０に送信される。そして、入力装置から次の入力データが入力されるまで待機する。【０１４９】
〔サーバ２で履歴１６０を分析〕
図１９は、サーバ２において、履歴１６０を分析し、ユーザデータ３の利用を把握するときの流れを示すフローチャートである。履歴１６０が保存されたＵＳＢメモリ８を、サーバ２に接続する（ステップ３７０）。ＵＳＢメモリ８がサーバ２に認識される。プログラム領域１０７に格納されている認証プログラム１１３は、自動起動し実行される（ステップ３７２）。【０１５０】
認証プログラム１１３は、サーバ２に管理プログラム４がインストールされているか否かの認証を開始する。サーバ２に管理プログラム４がインストールされている場合は、パスワードによる個人認証を行う。個人認証が成功すると、認証プログラム１１３は、履歴１６０が保存されている領域をサーバ２に認識させる。ＵＳＢメモリ８のユーザ領域１０６に履歴１６０が保存されている場合は、ユーザ領域１０６をサーバ２に認識させる。よって、ユーザ領域１０６はサーバ２からアクセスできるようになり、利用可能になる（ステップ３７４）。履歴１６０は、サーバ２に読み込まれる（ステップ３７６）。【０１５１】
同様に、ＵＳＢメモリ８の秘密領域１２０に履歴１６０が保存されている場合は、秘密領域１２０をサーバ２に認識させる。よって、秘密領域１２０はサーバ２からアクセスできるようになり、利用可能になり、履歴１６０は、サーバ２に読み込まれるその後、履歴１６０は、分析され、ユーザデータ３の利用状況はディスプレイに表示されたりして把握される（ステップ３７８、３８０）。認証プログラム１１３は、サーバ２に管理プログラム４がインストールされていない場合と、個人認証が成功しない場合は、ユーザ領域１０６をサーバ２認識させない。よって、ユーザ領域１０６の履歴１６０を読み込むことができない。【０１５２】
〔第２の実施の形態〕
本発明の第２の実施の形態は、上述の第１の実施の形態と基本的に同様であり、異なる部分を以下に記述する。図２０は、本発明の第２の実施の形態の概要を図示している図である。図２１は、本発明の第２の実施の形態のクライアントコンピュータ１２にＵＳＢメモリ８を接続して使用するときの動作概要を示すフローチャートである。本発明の第２の実施の形態は、第１の実施の形態とことなる部分は、ユーザデータ３がネットワーク７を経由してクライアントコンピュータ１２に提供され、クライアントコンピュータ１２の動作履歴はネットワーク７を経由してサーバ２に保存される。【０１５３】
更に、ファイルサーバ６０はネットワーク７を経由してクライアントコンピュータ１２に接続され、ファイルサーバ６０に格納されている共有ファイル６１はクライアントコンピュータ１２からアクセス可能である。本発明の第２の実施の形態においては、ユーザデータ３はサーバ２に保存されていて、ネットワーク７を経由してクライアントコンピュータ１２に提供される。ＵＳＢメモリ８（図４を参照）は、チェックプログラム１１８、認証プログラム１１３、管理プログラム４を内蔵のプログラム領域１０７に格納している。【０１５４】
ＵＳＢメモリ８の利用を図２１のフローチャートを参照して説明する。ＵＳＢメモリ８がクライアントコンピュータ１２に接続されると、クライアントコンピュータ１２にＵＳＢメモリ８が認識され、チェックプログラム１１３が自動起動する（ステップ４７０、４７２、４７４）。チェックプログラム１１３が、クライアントコンピュータ１２の動作環境をチェックする（ステップ４７４）。このステップ４７４に記述した動作環境のチェックは、第１の実施の形態の図１０のフローチャートに記述したチェックを行う。【０１５５】
そして、更にチェック項目としては、クライアントコンピュータ１２に管理プログラム４がインストールされているか否かをチェックし、インストールされていない場合は、プログラム領域１０７から管理プログラム４をインストールする（ステップ４７６、４９０）。そして、クライアント１１の個人認証を行うために、認証プログラム１１３を呼び出して動作させる。認証プログラム１１３は、ＵＳＢメモリ８の認証領域１１５に格納されている認証データ１１６を利用してクライアント１１の個人認証を行う（ステップ４７７）。【０１５６】
この個人認証は、実施の形態１と同様であり、その詳細な説明は省略する。個人認証が終了すると、管理プログラム４は、制御モードをオンにする（ステップ４７８）。管理プログラム４が制御モードをオンするとき、図９のステップ１３１から１４０に示す各種各種の設定を行う。管理プログラム４は、ネットワーク通信の使用を禁止するとき（ステップ１３６）、サーバ２とファイルサーバ６０との通信を許可し、ユーザデータ３の読み込みと書き込み、共有ファイル６０の読み込みができるようにする。【０１５７】
管理プログラム４が制御モードがオンになると、管理プログラム４の指示によって、クライアントコンピュータ１２はサーバ２と、ファイルサーバ６０と接続される（ステップ４８０）。これにより、サーバ２に格納されているユーザデータ３、及びファイルサーバ６０に格納されている共有ファイル６１が利用可能になる。よって、クライアント１１は、クライアントコンピュータ１２を操作して共有ファイル６１を呼び出して閲覧し、必要な場合はその編集作業を行う。共有ファイル６１が暗号されている場合は、それを復号化して閲覧する。【０１５８】
編集された共有ファイル６１は、サーバ２にユーザデータ３として保存される。また、クライアント１１は、クライアントコンピュータ１２を操作してサーバ２に格納されているユーザデータ３を読み出して閲覧し、必要な場合はその編集作業を行う（ステップ４８８）。ユーザデータ３が暗号されている場合は、それを復号化して閲覧する（ステップ４８６）。この編集されたユーザデータ３は、サーバ２に格納される（ステップ４８８）。ユーザデータ３をサーバ２に送信するときは、これを暗号化してから送信する。このように、ファイルサーバ６０はクライアント１１に必要な電子データを提供するのみで、クライアント１１によって編集されたデータ等は、クライアント１１が利用するＵＳＢメモリ８以外の記憶装置に保存することができない。【０１５９】
クライアント１１によって編集されたデータが全てサーバ２に格納される。このとき、図２１に示すようにレベル１〜３の機密フォルダーに振り分けられて保存される。この振り分けは、クライアント１１による振り分け、ユーザデータ３の重要性による振り分けでも良い。また、この振り分けは、ユーザデータ３の種類、大きさ、利用者等による振り分けでも良い。管理プログラム４は、クライアントコンピュータ１１の動作の履歴を取得し、サーバ２に送信する。そして、サーバ２に格納される（ステップ４９２、４９４）。この履歴を、サーバ２にて解析し、ＵＳＢメモリ８の利用状況をトレースすることができる。これにより、クライアント１１の機密データ、クライアント１１の個人データ等をサーバ２のみに保存し、一括したデータ管理が可能になる。【０１６０】
共有サーバ６０のようにこれに接続されたクライアント１１全てがアクセス可能な状態ではなく、高度なセキュリティを確保したサーバ２のみにユーザデータ３を格納してデータの保全を可能にする。ＵＳＢメモリ８が切断されたときは、管理プログラム４は、ステップ１３１〜１４０に設定した設定を全て解除する。管理プログラム４、及びその制御部は、第１の実施の形態と（図１１〜図１４のフローチャート）と同様である。しかし、ユーザデータ３はサーバ２に格納されているので、プロセス制御リスト１５０のファイルパスの条件１５４に示されるユーザデータ３のファイルパスはネットワーク上のアドレスになる。【０１６１】
図１６のフローチャートで示すようにドライバウェア５０のログ取得部５３が履歴を取得したとき（ステップ３１６〜３３６）、これをＵＳＢメモリ８ではなくサーバ２に送信する（ステップ３３０〜３３４）。サーバ２においては、クライアントコンピュータ１２から送信されてきた履歴１６０（図１７を参照）を受信し、記憶装置に格納して、その分析を行う（ステップ３７８、３８０）。これは、第１の実施の形態と異なるのは、ＵＳＢメモリ８から読み込むのではなく、サーバ２の記憶装置から読み込む点である。【０１６２】
クライアント１１は、ユーザデータ３をＵＳＢメモリ８に格納して持ち出すことができる。このときは、管理プログラム４はＵＳＢメモリ８のユーザ領域１０６を使用可能にするようにＵＳＢメモリ８に指示を送り、ＵＳＢメモリ８はこの指示に従ってユーザ領域１０６を使用可能にする。そして、クライアント１１は、持ち出したいユーザデータ３を選び、選択されたユーザデータ３が管理プログラム４によってユーザ領域１０６に格納される。クライアント１１は、ＵＳＢメモリ８をクライアントコンピュータ１２から切断して、別のコンピュータに接続して使用する。【０１６３】
例えば、クライアント１１は、自宅、営業先等の外部のコンピュータにＵＳＢメモリ８を接続して使用する。このとき、内蔵しているチェックプログラム１１８、認証プログラム１１３、管理プログラム４を動作させて、使用しているコンピュータ動作環境を上述のステップ４７０〜４７８のようにチェックし、個人認証行って、安全な動作環境を確保する。ステップ４８０の代わりに、管理プログラム４がＵＳＢメモリ８にユーザ領域１０６を利用可能するように指示にし、ＵＳＢメモリ８はこれをソフトウェア的にスイッチして、ユーザ領域１０６を使用可能にする（ステップ４８２）。【０１６４】
この安全な動作環境も、第１の実施の形態に記述したのと同様である。この使用先のコンピュータでの動作履歴は、管理プログラム４によって取得され、ＵＳＢメモリ８内の秘密領域１２０に格納される。この履歴を、ＵＳＢメモリ８をクライアントコンピュータ１２又はサーバ２に接続して使用するときに、サーバ２に転送されて解析される。よって、ＵＳＢメモリ８の利用状況をトレースすることができる。このようにクライアント１１がＵＳＢメモリ８を外部へ持ち出して別のコンピュータでこれを使用したときは、履歴はＵＳＢメモリ８に格納される。【０１６５】
ＵＳＢメモリ８をクライアントコンピュータ１２に接続して使う場合、履歴がネットワーク７を介してサーバ２へ送信され、サーバ２で上述のように分析される。ＵＳＢメモリ８をサーバ２に接続して履歴の分析を行う場合、この分析は図１９のフローチャートに従って行われる。【０１６６】
〔ＵＳＢメモリ８の他の実施の形態〕
図２２は、ＵＳＢメモリ８の内部構造の他の実施の形態を示すブロック図である。図２２は、筐体（図示せず）に格納されている基板１０５の構成の概要を図示している。基板１０５の上には、ユーザ領域１０６、プログラム領域１０７、ＵＳＢ（Universal Serial Bus）コントローラ１０９、中央演算装置（ＣＰＵ、Central Processing Unit）１０８等が搭載されて配置されている。ユーザ領域１０６は、ユーザデータ３を格納するためのメモリである。プログラム領域１０７は、認証プログラム１１３を格納するためのメモリである。【０１６７】
ＵＳＢコントローラ１０９は、コネクタ１１４を介して電子計算機（図示せず）との送受信を制御するためのプログラムである。コネクタ１１４は、ＵＳＢメモリ８をクライアントコンピュータ１２に接続するためのコネクタである。中央処理装置１０８は、ＵＳＢメモリ８全体を制御するための中央演算処理装置である。認証部１０４及びその指紋情報の認識方法等の技術については、周知の技術であり、かつ本発明の要旨でもないので、その詳細な説明は省略する。【０１６８】
ユーザデータ３と、認証プログラム１１３はＵＳＢメモリ８の別々のメモリ領域であるユーザ領域１０６とプログラム領域１０７に格納されている。この２つのメモリ領域は、電子計算機から同時にアクセスできないような設計になっている。スイッチ１１０は、中央処理装置１０８によってソフトウェア的に制御されるもので、クライアントコンピュータ１２からユーザ領域１０６とプログラム領域１０７へのアクセスを制御するためのものである。【０１６９】
ＵＳＢメモリ８がクライアントコンピュータ１２と接続され、認証プログラム１１３がクライアントコンピュータ１２上に動作すると、スイッチ１１０がプログラム領域１０７からユーザ領域１０６へと切り替わり、ユーザデータ３の送受信が可能になる。また、基板１０５には、認証用データベース１１１、認証モジュール１１２が配置されている。認証モジュール１１２は、ユーザの認証を行うためのものである。認証用データベース１１１は、クライアントコンピュータ１２を使用できるユーザの指紋情報、パスワード等の識別データを格納したデータベースのためのメモリである。【０１７０】
図２３は、サーバ２又はクライアントコンピュータ１２が、ＵＳＢメモリにアクセスするときの流れを示すフローチャートである。ＵＳＢメモリ８は、サーバ２又はクライアントコンピュータ１２に接続される（ステップ４００）。ＵＳＢメモリ８がサーバ２又はクライアントコンピュータ１２に認識される。スイッチ１１０が、初期設定でプログラム領域１０７に設定されている。ＵＳＢメモリ８がサーバ２又はクライアントコンピュータ１２に接続されると、サーバ又はクライアントコンピュータ１２からプログラム領域１０７にアクセスできる。【０１７１】
プログラム領域１０７に格納されている認証プログラム１１３がサーバ２又はクライアントコンピュータ１２上に自動起動し動作する（ステップ４０２）。認証プログラム１１３は、サーバ２又はクライアントコンピュータ１２に管理プログラム４が導入されているか否かの確認を行う。管理プログラム４が導入されているとき、認証プログラム１１３は個人認証を行う。個人認証は、認証用データベース１１１、認証モジュール１１２を利用してユーザの認証を行う（ステップ４０４）。【０１７２】
この個人認証が成功すると、認証プログラム１１３は、ＵＳＢメモリ８のスイッチ１１０をプログラム領域１０７からユーザ領域１０６に切り替える（ステップ４０６）。ユーザ領域１０６にアクセスできるようになる（ステップ４０８）。サーバ２の場合は、ユーザ領域１０６にユーザデータ３を書き込む。また、ＵＳＢメモリ８が返却されたとき、ユーザ領域１０６に格納されている履歴１６０（図１７を参照）を読み込みその分析を行う。【０１７３】
クライアントコンピュータ１２の場合は、ユーザ領域１０６に格納されているユーザデータ３を読み込んだり、その編集を行ったりすることができる。更に、クライアントコンピュータ１２上に動作する管理プログラム４と、ユーザデータ３にアクセスした動作の履歴を示す履歴１６０を取得し、ユーザ領域１０６に格納する。ＵＳＢメモリ８の利用が終了すると、ＵＳＢメモリ８は、サーバ２又はクライアントコンピュータ１２から切断される（ステップ４１０）。ＵＳＢメモリ８がサーバ２又はクライアントコンピュータ１２から切断されると、スイッチ１１０は、初期設定に戻る（ステップ４１０）。
【産業上の利用可能性】
【０１７４】
本発明は、ユーザのファイル、データやプログラム等を電子記録媒体に記録して、外部へ提供し、提供先でどのように利用されているかを把握すること可能であり、電子データの緊密な管理が必要な分野に利用すると良い。特に、営業または経理データ等でユーザのデータやファイル等の秘密情報、従業員のデータ管理が必要とされる印刷業界、保険会社、販売店で利用されることが望ましい。更に、電子データの緊密な管理が必要な金融機関、原子力関連の施設、や個人データを扱う端末等の分野に利用されても良い。
【図面の簡単な説明】
【０１７５】
【図１】図１は、本発明の第１の実施の形態の概要を図示した機能ブロック図である。
【図２】図２は、クライアントコンピュータ１２上に動作するソフトウェアの概要を図示した機能ブロック図である。
【図３】図３は、本発明の第１の実施の形態の概要を図示した機能ブロック図である。
【図４】図４は、ＵＳＢメモリ８の内部構造を示すブロック図である。
【図５】図５は、実施の形態１のシステムの全体の動作を示すフローチャートである。
【図６】図６は、サーバ２において、ユーザデータ３と管理プログラム４をＵＳＢメモリ８、記録媒体９に書き込むときの流れを示すフローチャートである。
【図７】図７は、ユーザデータ３をＵＳＢメモリ８から閲覧するときの流れを示すフローチャートである。
【図８】図８は、管理プログラム４の動作を示すフローチャートである。
【図９】図９は、管理プログラム４が制御モードをオンしたときの動作を示すフローチャートである。
【図１０】図１０は、クライアントコンピュータ１２の動作環境をチェックするときのフローチャートである。
【図１１】図１１は、制御部５２の動作を示すフローチャートである。
【図１２】図１２は、アプリケーションプログラム２０が終了するとき、制御部５２の動作を示すフローチャートである。
【図１３】図１３は、制御部５２が使用禁止の除外を設定するときの流れを示すフローチャートである。
【図１４】図１４は、ファイルシステム制御部３４の動作を示す処理フローチャートである。
【図１５】図１５は、プロセス制御リスト１５０の例を図示したものである。
【図１６】図１６は、ドライバウェア５０において、ログ取得部５３が履歴を取得するときの流れを示すフローチャートである。
【図１７】図１７は、履歴１６０の例を図示したものである。
【図１８】図１８は、マウス、キーボードの操作の履歴を取得するとき処理を示すフローチャートである。
【図１９】図１９は、サーバ２において、ＵＳＢメモリ８から履歴１６０を読み込み、その分析を行うときの流れを示すフローチャートである。
【図２０】図２０は、本発明の第２の実施の形態の概要を図示している図である。
【図２１】図２１は、本発明の第２の実施の形態のクライアントコンピュータ１２にＵＳＢメモリ８を接続して使用するときの動作概要を示すフローチャートである。
【図２２】図２２は、ＵＳＢメモリ８の内部構造の他の実施の形態を示すブロック図である。
【図２３】図２３は、サーバ２又はクライアントコンピュータ１２にＵＳＢメモリ８を接続して利用するときの動作の流れを示すフローチャートである。
【符号の説明】
【０１７６】
１…サーバ側
２…サーバ
３…ユーザデータ
４…管理プログラム
５…アプリケーションプラットフォームプログラム
６…外部デバイス
７…ネットワーク
８…ＵＳＢメモリ
９…記録媒体
１０…クライアント側
１１…クライアント
１２…クライアントコンピュータ
１３…サブシステム
１４…ユーザモード
１５…カーネルモード
１６…エグゼキュティブ
１７…カーネル
１８…ハードウェア抽象化層
２０…アプリケーションプログラム
２１…オペレーティングシステム
２２…コネクタ
２３…ネットワークカード
２４…ＵＳＢポート
２５…ハードディスク
２６…内蔵デバイス
３２…インターフェースドライバ
３３…ネットワークドライバ
３４…ファイルシステムドライバ
３５…第２デバイスドライバ
３６…第１デバイスドライバ
４２…インターフェース制御部
４３…ネットワーク制御部
４４…ファイルシステム制御部
４５…第２デバイスドライバ制御部
４６…第１デバイスドライバ制御部
５０…ドライバウェア
５１…アプリケーションプログラムインターフェース部
５２…制御部
５３…ログ取得部
５４…暗号化部
５５…復号化部
１０５…基板
１０６…ユーザ領域
１０７…プログラム領域
１０８…中央演算装置
１０９…ＵＳＢコントローラ
【図１】
0004681053.tif 000002
【図２】
0004681053.tif 000003
【図３】
0004681053.tif 000004
【図４】
0004681053.tif 000005
【図５】
0004681053.tif 000006
【図６】
0004681053.tif 000007
【図７】
0004681053.tif 000008
【図８】
0004681053.tif 000009
【図９】
0004681053.tif 000010
【図１０】
0004681053.tif 000011
【図１１】
0004681053.tif 000012
【図１２】
0004681053.tif 000013
【図１３】
0004681053.tif 000014
【図１４】
0004681053.tif 000015
【図１５】
0004681053.tif 000016
【図１６】
0004681053.tif 000017
【図１７】
0004681053.tif 000018
【図１８】
0004681053.tif 000019
【図１９】
0004681053.tif 000020
【図２０】
0004681053.tif 000021
【図２１】
0004681053.tif 000022
【図２２】
0004681053.tif 000023
【図２３】
0004681053.tif 000024