(57)【特許請求の範囲】
【請求項１】
相互に通信できるネットワーク上の記憶手段であるネットワークストレージと通信する電子計算機は、プログラムコードに従ってデータを処理する中央処理手段、
前記プログラムコード、又は、前記プログラムコード及び前記データを保持する主記憶手段、
前記プログラムコード及び前記電子計算機が一時休止時に前記主記憶手段の内容データを格納する不揮発の補助記憶手段、
指示コマンド又は前記データを入力するための入力手段、
前記処理の結果を外部に出力するための出力手段、並びに、
前記ネットワークに接続するためのネットワーク接続手段からなり、
前記電子計算機上に動作するアプリケーションプログラム又はユーザが利用するための電子データからなるユーザデータは、前記アプリケーションプログラムによって、又は、前記入力手段から入力された入力データにより前記アプリケーションプログラムが操作されることによって、閲覧、編集、及び変更の中から１以上の操作がされるとき、前記ユーザデータが外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた前記電子計算機からなる電子データ管理装置において、
前記電子データ管理装置は、
前記ネットワークストレージに割り当てられた仮想記憶手段、
前記主記憶手段に常駐して、仮想の補助記憶装置である疑似補助記憶手段として機能する揮発性記憶手段、
前記アプリケーションプログラムが前記ユーザデータを開くとき、前記ユーザデータを前記ネットワークストレージの保存先から前記仮想記憶手段を介して取得し、前記揮発性記憶手段に格納し、及び、前記ユーザデータを閉じて保存するとき、前記ユーザデータを前記揮発性記憶手段から取得し、前記仮想記憶手段を介して前記ネットワークストレージに保存する制御手段、
前記揮発性記憶手段に前記ユーザデータが格納されるとき暗号化する暗号化手段、
前記揮発性記憶手段から前記ユーザデータを前記アプリケーションプログラムへ提供するとき、前記暗号化された前記ユーザデータを復号化する復号化手段、並びに、
前記揮発性記憶手段の前記ユーザデータを、前記仮想記憶手段を介して前記ネットワークストレージの前記ユーザデータと同期させるクラウド同期手段からなり、
前記制御手段は、前記電子計算機を動作させているオペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、前記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信、又は前記デバイスドライバと前記電子計算機上で動作する前記アプリケーションプログラムとの通信に、共通のインターフェースを提供するためのドライバウェア手段からなり、
前記ドライバウェア手段は、前記仮想記憶手段を制御するための前記デバイスドライバである仮想記憶手段ドライバ、及び、前記揮発性記憶手段を制御するための前記デバイスドライバである揮発性記憶手段ドライバを、前記オペレーティングシステムの出力を制御するファイルシステムドライバを介して制御するためのファイルシステム制御部を備え、
前記ファイルシステム制御部は、前記アプリケーションプログラムが前記ユーザデータを開く動作を前記仮想記憶手段ドライバから取得し、前記クラウド同期手段から前記ユーザデータを取得して、前記揮発性記憶手段ドライバを介して前記揮発性記憶手段に送信して前記揮発性記憶手段に前記ユーザデータを格納させる
ことを特徴とする電子データ管理装置。
【請求項２】
請求項１に記載の電子データ管理装置において、
前記電子データ管理装置は、前記電子計算機を待機させるサスペンド機能によって終了するとき、作業中の暗号化されたデータを前記補助記憶手段に保存し、前記電子計算機を終了し、再起動するとき、前記電子計算機のユーザの真正性を確かめる認証手段によって認証を行い、該認証が正常に認証できなかった場合、前記サスペンド機能によって終了する直前に保存したデータ及び／又は前記サスペンド機能によって保存されたデータを削除するデータ削除手段を備えている
ことを特徴とする電子データ管理装置。
【請求項３】
請求項１に記載の電子データ管理装置において、
前記電子データ管理装置は、前記電子計算機の操作を終了する際、作業中のデータを前記補助記憶手段に保存し、前記電子計算機を待機させるサスペンド機能によって終了し、再起動するとき、前記電子計算機のユーザの真正性を確かめる認証手段によって認証を行い、該認証が正常に認証できない場合、前記電子データ管理装置、前記アプリケーションプログラム、前記仮想記憶手段及び前記揮発性記憶手段からなる群の中から選択される１以上の初期化を行う初期化手段を備えている
ことを特徴とする電子データ管理装置。
【請求項４】
請求項２又は３に記載の電子データ管理装置において、
前記認証手段は、パスワード認証手段、指紋認証手段、顔認証手段、認証サーバによるサーバ認証手段、ＩＣカード認証手段、静脈認証手段、虹彩認証手段及び２要素認証手段からなる群の内から選択される１以上の認証手段である
ことを特徴とする電子データ管理装置。
【請求項５】
請求項２に記載の電子データ管理装置において、
前記データ削除手段は、実行する時間帯を示すタイムテーブルの情報に基づいて実行される
ことを特徴とする電子データ管理装置。
【請求項６】
請求項５に記載の電子データ管理装置において、
前記データ削除手段は、移動通信基地局若しくは全地球航法衛星システム（ＧＮＳＳ）による位置情報に基づいて許可された地域範囲の中に前記電子データ管理装置が位置するときに、無効になり、前記データ削除手段は、前記地域範囲の外に前記電子データ管理装置が位置するときに実行される
ことを特徴とする電子データ管理装置。
【請求項７】
請求項５に記載の電子データ管理装置において、
前記データ削除手段は、前記電子データ管理装置が前記認証手段と通信できない場合実行される
ことを特徴とする電子データ管理装置。
【請求項８】
請求項５に記載の電子データ管理装置において、
前記データ削除手段は、前記電子データ管理装置が時間情報手段から取得した時間情報が設定時間外の場合実行される
ことを特徴とする電子データ管理装置。
【請求項９】
相互に通信できるネットワーク、
前記ネットワーク上の記憶手段であるネットワークストレージ、及び
前記ネットワークストレージと通信する電子計算機からなる電子データ管理システムであり、
前記電子計算機は、
プログラムコードに従ってデータを処理する中央処理手段、
前記プログラムコード、又は、前記プログラムコード及び前記データを保持する主記憶手段、
前記プログラムコード及び前記電子計算機が一時休止時に前記主記憶手段の内容データを格納する不揮発の補助記憶手段、
指示コマンド又は前記データを入力するための入力手段、
前記処理の結果を外部に出力する出力手段、及び
前記ネットワークに接続するためのネットワーク接続手段からなり、
前記電子計算機上に動作するアプリケーションプログラム又はユーザが利用するための電子データからなるユーザデータは、前記アプリケーションプログラムによって、又は、前記入力手段から入力された入力データにより前記アプリケーションプログラムが操作されることによって、閲覧又は編集又は変更されるとき、
前記ユーザデータが外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた前記電子計算機からなる前記電子データ管理システムにおいて、
前記電子計算機は、
前記ネットワークストレージに割り当てられた仮想記憶手段、
前記主記憶手段に常駐して、仮想の補助記憶装置である疑似補助記憶手段として機能する揮発性記憶手段、
前記アプリケーションプログラムが前記ユーザデータを開くとき、前記ユーザデータを前記ネットワークストレージの保存先から前記仮想記憶手段を介して取得し、前記揮発性記憶手段に格納し、及び、前記ユーザデータを閉じて保存するとき、前記ユーザデータを前記揮発性記憶手段から取得し、前記仮想記憶手段を介して前記ネットワークストレージに保存する制御手段、
前記揮発性記憶手段に前記ユーザデータが格納されるとき暗号化する暗号化手段、
前記揮発性記憶手段から前記ユーザデータを前記アプリケーションプログラムへ提供するとき、前記暗号化された前記ユーザデータを復号化する復号化手段、並びに、
前記揮発性記憶手段の前記ユーザデータを前記仮想記憶手段を介して前記ネットワークストレージの前記ユーザデータと同期するクラウド同期手段からなり、
前記制御手段は、前記電子計算機を動作させているオペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、前記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信、又は前記デバイスドライバと前記電子計算機上で動作する前記アプリケーションプログラムとの通信に共通のインターフェースを提供するためのドライバウェア手段
からなり、
前記ドライバウェア手段は、前記仮想記憶手段を制御するための前記デバイスドライバである仮想記憶手段ドライバ、及び、前記揮発性記憶手段を制御するための前記デバイスドライバである揮発性記憶手段ドライバを、前記オペレーティングシステムの出力を制御するファイルシステムドライバを介して制御するためのファイルシステム制御部を備え、
前記ファイルシステム制御部は、前記アプリケーションプログラムが前記ユーザデータを開く動作を前記仮想記憶手段ドライバから取得し、前記クラウド同期手段から前記ユーザデータを取得して、前記揮発性記憶手段ドライバを介して前記揮発性記憶手段に送信して前記揮発性記憶手段に格納させる
ことを特徴とする電子データ管理システム。
【請求項１０】
請求項９に記載の電子データ管理システムにおいて、
前記電子計算機は、前記電子計算機を待機させるサスペンド機能によって終了するとき、作業中の暗号化されたデータを前記補助記憶手段に保存し、前記電子計算機を終了し、再起動するとき、前記電子計算機のユーザの真正性を確かめる認証手段によって認証を行い、該認証が正常に認証できなかった場合、前記サスペンド機能によって終了する直前に保存したデータ及び／又は前記サスペンド機能によって保存されたデータを削除するデータ削除手段を備えている
ことを特徴とする電子データ管理システム。
【請求項１１】
請求項９に記載の電子データ管理システムにおいて、
前記電子計算機は、前記電子計算機の操作を終了する際、作業中のデータを前記補助記憶手段に保存し、前記電子計算機を待機させるサスペンド機能によって終了し、再起動するとき、前記電子計算機のユーザの真正性を確かめる認証手段によって認証を行い、
該認証が正常に認証できない場合、前記電子計算機、アプリケーションプログラム、前記仮想記憶手段及び揮発性記憶手段からなる群の中から選択される１以上の初期化を行う初期化手段を備えている
ことを特徴とする電子データ管理システム。
【請求項１２】
請求項１０又は１１に記載の電子データ管理システムにおいて、
前記認証手段は、パスワード認証手段、指紋認証手段、顔認証手段、認証サーバによるサーバ認証手段、ＩＣカード認証手段、静脈認証手段、虹彩認証手段及び２要素認証手段からなる群の内から選択される１以上の認証手段である
ことを特徴とする電子データ管理システム。
【請求項１３】
請求項１０に記載の電子データ管理システムにおいて、
前記データ削除手段は、実行する時間帯を示すタイムテーブルの情報に基づいて実行される
ことを特徴とする電子データ管理システム。
【請求項１４】
請求項１３に記載の電子データ管理システムにおいて、
前記データ削除手段は、移動通信基地局若しくは全地球航法衛星システムによる位置情報に基づいて許可された地域範囲の中に前記電子計算機が位置するときに、無効になり、
前記データ削除手段は、前記地域範囲の外に前記電子データ管理装置が位置するときに実行される
ことを特徴とする電子データ管理システム。
【請求項１５】
請求項１３に記載の電子データ管理システムにおいて、
前記データ削除手段は、前記電子計算機が前記認証手段と通信できない場合実行される
ことを特徴とする電子データ管理システム。
【請求項１６】
請求項１３に記載の電子データ管理システムにおいて、
前記データ削除手段は、前記電子計算機が時間情報手段から取得した時間情報が設定時間外の場合実行される
ことを特徴とする電子データ管理システム。
【請求項１７】
相互に通信できるネットワーク上の記憶手段であるネットワークストレージと通信する電子計算機は、
プログラムコードに従ってデータを処理する中央処理手段、
前記プログラムコード、又は、前記プログラムコード及び前記データを保持する主記憶手段、
前記プログラムコード及び前記電子計算機が一時休止時に前記主記憶手段の内容データを格納する不揮発の補助記憶手段、
指示コマンド又は前記データを入力するための入力手段、
前記処理の結果を外部に出力する出力手段、及び
前記ネットワークに接続するためのネットワーク接続手段からなり、
前記電子計算機上に動作するアプリケーションプログラム又はユーザが利用するための電子データからなるユーザデータは、前記アプリケーションプログラムによって、又は、前記入力手段から入力された入力データにより前記アプリケーションプログラムが操作されることによって、閲覧又は編集又は変更されるとき、前記ユーザデータが外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた前記電子計算機からなる電子データ管理装置において、
前記電子データ管理装置上に動作する電子データ管理装置用プログラムは、
前記アプリケーションプログラムから出力される命令及び／又はデータを含む第１データを受信し、前記命令の実行結果及び／又は前記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバから受信した受信データを含む第２データを、前記アプリケーションプログラムに送信するための機能を前記電子計算機に実行させるアプリケーションプログラムインターフェース部、
前記デバイスドライバへ、前記命令及び／又は前記データを含む第３データを送信し、前記デバイスドライバから前記命令の実行結果及び／又は前記受信データを含む第４データを受信するための機能を前記電子計算機に実行させるデバイスドライバ制御部、
前記第１データ又は前記第４データを処理し、前記第２データ又は前記第３データを生成して、前記第１ないし４データの制御を行うための機能を前記電子計算機に実行させる制御部、並びに、
データを暗号化して暗号化データを作成するための機能を前記電子計算機に実行させる暗号化部、及び、前記暗号化データを復号化し、元の前記データを作成するための機能を前記電子計算機に実行させる復号化部からなり、
前記電子計算機を動作させているオペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、前記デバイスドライバ同士の通信、又は前記デバイスドライバと前記電子計算機上で動作する前記アプリケーションプログラムとの通信に共通のインターフェースを提供するためのドライバウェアを備え、
前記デバイスドライバ制御部は、仮想記憶手段を制御するための前記デバイスドライバである仮想記憶手段ドライバ、及び、揮発性記憶手段を制御するための前記デバイスドライバである揮発性記憶手段ドライバを、前記オペレーティングシステムの出力を制御するファイルシステムドライバを介して制御するためのファイルシステム制御部を備え、
前記電子データ管理装置用プログラムは、
前記ネットワークストレージに割り当てられた前記仮想記憶手段を生成するステップと、
前記仮想記憶手段を制御するステップ、
前記主記憶手段に常駐して、仮想の補助記憶装置である疑似補助記憶手段として機能する前記揮発性記憶手段を生成するステップ、
前記アプリケーションプログラムが前記ユーザデータを開くとき、前記ファイルシステム制御部によって前記ユーザデータを保存先から取得するステップ、
前記取得した前記ユーザデータを前記ファイルシステム制御部によって前記揮発性記憶手段に格納するステップ、
前記ユーザデータを閉じて保存するとき、前記ユーザデータを前記揮発性記憶手段から取得するステップ、
前記取得したユーザデータを制御部によって前記仮想記憶手段を介して保存する制御ステップ、
前記揮発性記憶手段に前記ユーザデータが格納されるとき、暗号化部によって暗号化するステップ、及び、
前記揮発性記憶手段から前記ユーザデータを前記アプリケーションプログラムへ提供するとき、前記暗号化されたユーザデータを復号化部によって復号化するステップ
を前記電子データ管理装置に実行させ、
前記ファイルシステム制御部は、
前記アプリケーションプログラムが前記ユーザデータを開く動作を前記仮想記憶手段ドライバから取得するステップ、
クラウド同期手段から前記ユーザデータを取得するステップ、
前記取得した前記ユーザデータを前記揮発性記憶手段ドライバを介して前記揮発性記憶手段に送信するステップ、及び、
前記送信した前記ユーザデータを前記揮発性記憶手段に格納させるステップを前記電子データ管理装置に実行させる
ことを特徴とする電子データ管理装置用プログラム。
【請求項１８】
請求項１７に記載の電子データ管理装置用プログラムにおいて、
前記保存先は、前記ネットワークストレージであり、
前記揮発性記憶手段の前記ユーザデータを前記仮想記憶手段を介して前記ネットワークストレージと同期する機能を前記電子データ管理装置に実行させるクラウド同期プログラムからなる
ことを特徴とする電子データ管理装置用プログラム。
【請求項１９】
請求項１７に記載の電子データ管理装置用プログラムにおいて、
前記電子データ管理装置を待機させるサスペンド機能によって終了させるとき、作業中の暗号化されたデータを前記補助記憶手段に保存し、前記電子計算機を終了させるサスペンドステップ、
前記サスペンドステップが開始するとき、前記電子データ管理装置のユーザの真正性を確かめる認証手段によって認証を行うサスペンド認証ステップ、並びに、
該認証が正常に認証できなかった場合、前記サスペンド機能によって終了する直前に保存したデータ及び／又は前記サスペンド機能によって保存されたデータを削除するデータ削除ステップ
を前記電子データ管理装置に実行させることを特徴とする電子データ管理装置用プログラム。
【請求項２０】
請求項１７に記載の電子データ管理装置用プログラムにおいて、
前記電子データ管理装置の操作を終了する際、作業中のデータを補助記憶手段に保存するサスペンド機能によって前記電子データ管理装置を終了させるサスペンドステップ、
前記電子データ管理装置が終了後に再起動するとき、前記電子データ管理装置のユーザの真正性を確かめる認証手段によって認証を行うサスペンド認証ステップ、並びに、
該認証が正常に認証できない場合、前記電子データ管理装置、アプリケーションプログラム、前記仮想記憶手段及び揮発性記憶手段からなる群の中から選択される１以上の初期化を行う初期化ステップ
を前記電子データ管理装置に実行させることを特徴とする電子データ管理装置用プログラム。
【請求項２１】
請求項１９又は２０に記載の電子データ管理装置用プログラムにおいて、
前記サスペンド認証ステップは、パスワード認証手段、指紋認証手段、顔認証手段、認証サーバによるサーバ認証手段、ＩＣカード認証手段、静脈認証手段、虹彩認証手段及び２要素認証手段からなる群の内から選択される１以上の認証手段による認証ステップを前記電子データ管理装置に実行させることを特徴とする電子データ管理装置用プログラム。
【請求項２２】
請求項１９に記載の電子データ管理装置用プログラムにおいて、
実行する時間帯を示すタイムテーブルの情報に基づいて前記データ削除ステップを前記電子データ管理装置に実行させることを特徴とする電子データ管理装置用プログラム。
【請求項２３】
請求項２２に記載の電子データ管理装置用プログラムにおいて、
移動通信基地局若しくは全地球航法衛星システム（ＧＮＳＳ）による位置情報に基づいて許可された地域範囲の中に前記電子データ管理装置が位置するときに、前記データ削除ステップが実行されず、前記地域範囲の外に前記電子データ管理装置が位置するときに前記データ削除ステップを前記電子データ管理装置に実行させることを特徴とする電子データ管理装置用プログラム。
【請求項２４】
請求項２２に記載の電子データ管理装置用プログラムにおいて、
前記電子データ管理装置が前記認証手段と通信できない場合に前記データ削除ステップを前記電子データ管理装置に実行させることを特徴とする電子データ管理装置用プログラム。
【請求項２５】
請求項２２に記載の電子データ管理装置用プログラムにおいて、
前記電子データ管理装置が時間情報手段から取得した時間情報が設定時間外の場合に前記データ削除ステップを前記電子データ管理装置に実行させることを特徴とする電子データ管理装置用プログラム。
【請求項２６】
請求項１７乃至２５の中から選択される１項に記載の電子データ管理装置用プログラムを記録した電子データ管理装置用プログラムの記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、揮発性記憶手段を利用し電子データが電子計算機から漏洩することを防止し、管理するための電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体に関する。
【背景技術】
【０００２】
個人情報、ビジネスのノウハウを始め各種のデータは、電子データの形式でファイルとして電子計算機の記憶装置、記録媒体に保存されていることが多い。電子計算機は中央処理装置、主記憶装置、入出力手段、電源供給手段等を備えたものであり、例えば、デスクトップパソコン、ノートパソコン、スマートフォン、そしてサーバ等が例示できる。【０００３】
ユーザは、電子計算機の内蔵又は外付けされた補助記憶装置にアクセスして、ファイルを閲覧、編集する他に、ネットワークを介して他人へ送信し、その電子計算機又は他の電子計算機に内蔵又は接続されているデバイスへ転送・複製して利用する。【０００４】
これらの利用形態から考慮して、電子データの保護と漏洩防止の観点から、ファイルは無論、そのファイル又はそのファイルが格納されている記憶装置にアクセスした履歴、特にファイルの閲覧、編集、複写、印刷、送信等の履歴を取得して厳密に電子データを管理することが大事である。また、近年、電子計算機をネットワークに接続して、ネットワーク上のネットワークフォルダに電子データを格納し、これを電子計算機にダウンロードして利用することが多くなっている。【０００５】
このようにネットワークフォルダに電子データを格納すると、電子計算機の補助記憶装置に電子データを格納する必要がなくなり、いわゆる電子計算機のデータレス利用になる。電子データを目的以外に利用できないように電子計算機を制御することが電子データ、特に機密データの漏洩防止の観点から重要である。【０００６】
電子データは、電子計算機から漏洩するルートとして考えられるものは、電子計算機に接続されたフラッシュメモリ等の補助記憶装置への格納、アプリケーションプログラム等の一時ファイル（Temporary file）、オペレーティングシステムのダンプ機能とハイバネーション機能により、主記憶装置（ＲＡＭ：Random Access memory）の内容の補助記憶装置への格納等である。【０００７】
即ち、この電子計算機の補助記憶装置等に保存された電子データは、電子計算機の紛失、電子計算機への不正アクセス、ユーザによる電子計算機の電子データの複製等によって、情報漏洩することがあり、この防止策が様々な形で行われて、提案されている。例えば、電子データを電子計算機に接続された補助記憶装置へ格納するときは、電子データを暗号化したり、補助記憶装置を認証したりして対策を講じている（例えば、特許文献１）。【０００８】
特許文献１に開示された内容のデータ管理用のシステムのプログラムは、不揮発性メモリに格納されたクライアントのユーザデータを、それを処理している電子計算機により、目的以外に利用することができないように、その電子計算機を制御している。このシステムにおいて、ユーザデータは電子計算機から承認された不揮発性メモリのみに記録するが、更にその他の手段でも外部へ持ち出さないように電子計算機を制御している。【０００９】
一時ファイルの場合は、一時ファイルの保存先を制御することでセキュリティを確保している（例えば、特許文献２）。特許文献２には、クライアントコンピュータ上に作成されそれに格納された一時ファイルが原因で、情報漏洩することを防止するデータ管理システムが開示されている。【００１０】
このデータ管理システムは、アプリケーションプログラムによって生成された一時ファイルを、アプリケーションプログラムが指定する一時ファイル用フォルダとは別のフォルダであり、クライアントコンピュータのハードディスク、クライアントコンピュータに接続されたＵＳＢメモリ、ネットワーク上のサーバ等に作成されたフォルダに、暗号化して保存している。これにより、アプリケーションプログラムの動作中でも、一時ファイルによる情報漏洩を防止している。【００１１】
また、電子計算機が盗難又は紛失されたと疑われる場合、電子計算機のデータを暗号化する常時稼働組み込み式盗難反応サブシステムが開示されている（特許文献３を参照。）。このシステムは、電子計算機のハイバネーション機能の場合でも、電子計算機のデータを暗号化、又は電子計算機のストレージ全体を暗号化する機能を備えている。また、電子計算機がハイバネーション状態へ移行したとき、機密情報が漏洩することを防止する方法も提案されている（例えば、特許文献４）。【００１２】
この方法によれば、電子計算機がハイバネーション状態へ移行する際、揮発性メモリの内容を不揮発性メモリに保存するとき、揮発性メモリの中でアプリケーションに割り当てられたメモリ領域（セキュリティ領域）のデータを含まないように、ハイバネーションデータを生成して不揮発性メモリに保存する。そして、電子計算機は、ハイバネーション状態からの復帰時に、不揮発性メモリからハイバネーションデータを揮発性メモリに書き戻した後、メモリ領域の割り当て要求と共に渡された関数を呼び出すことで、アプリケーションによりセキュリティデータを再生成する。【００１３】
ユーザが電子計算機の補助記憶装置にアクセスするとき、これがあらかじめ設定されたネットワーク上のアドレスへ転送されるリダイレクト機能を利用して、電子データをネットワーク上のフォルダに保存することができる。特に、電子計算機のデータレス化が進んでいる中で、電子計算機で電子データを利用して作業を行っても、それを電子計算機に残さない仕組みが求められている。【００１４】
従来から、データレス化のために主記憶装置の一部を疑似補助記憶装置として利用しており、これはＲＡＭディスク等と呼ばれている。電子計算機の補助記憶装置にデータを書き込むことを禁止して、データをＲＡＭディスクに書き込むようにしてリダイレクトし、ネットワーク上の仮想ディスクにデータを書き込みしている（特許文献５）。この機能を利用すると、データは、電子計算機のローカルディスクに残さず、ネットワーク上の仮想ドライブに保存されることになる。【００１５】
従って、仮に電子計算機を紛失した場合、ユーザデータの漏洩がないという利点がある。オペレーティングシステムのダンプ機能は、基本的に、オペレーティングシステムとアプリケーションプログラムのクラッシュ、動作の不具合を検証するために行われるものである。通常、電子計算機の記憶装置に記録された内容をまとめて表示、印刷、又は記録し、このまとまった内容をダンプと表現している。言い換えると、ダンプとは、電子計算機でデータ処理するときの主記憶装置の内容であり、中央処理装置（ＣＰＵ）でデータ処理するときのデータを時系列で出力した内容である。【００１６】
従来から、このダンプを分析することで上述のクラッシュ、動作の不具合を検証している。現在、ソースコードが膨大になっているオペレーティングシステムとアプリケーションプログラムの場合でも、オペレーティングシステムとアプリケーションプログラムの動作中、特に、クラッシュや動作の不具合等が発生したとき、メインメモリの内容を自動的にダンプし、電子計算機の補助記憶装置に出力している。【００１７】
このダンプファイルを分析することで、動作中のアプリケーションプログラムが利用していたユーザデータを取得することが可能であり、また、悪意があるユーザがクラッキングするセキュリティホールとも言われている。ダンプファイルをソフトウェアの検証等に利用する場合、自動的に出力されるようになり、電子計算機を紛失、廃棄、他へ譲渡、リースするとき、問題になっている。【００１８】
ハイバネーション(Hibernation)の機能は、オペレーティングシステムが備えている機能の一つである。ハイバネーションの機能は、電子計算機の電源を切断するとき、その切断前に、作業を中断させ、主記憶装置が保持している内容を、補助記憶装置に複製して格納する。この切断後、電子計算機に電源を接続して起動させると、電子計算機は、補助記憶装置から保存された主記憶装置の内容を読みだして動作させ、中断した作業を継続させる。【００１９】
例えば、編集しているファイルがあると、ハイバネーションする際、作業中途状態のまま編集しているファイル内容が、補助記憶装置に保存され、電子計算機の電源が切断される。電子計算機が再開すると、補助記憶装置からハイバネーション内容が再度主記憶装置に格納され、ファイルの作業が継続して行うことができる。また、ノート型電子計算機のバッテリーの残量が少なくなると、ハイバネーションが自動的に開始される機能もある。【００２０】
このように、ハイバネーション機能は、休止状態（スリープ）（Windows（登録商標）の場合）、Software Suspend（macOS（登録商標）の場合）、Userspace Software Suspend（LINUX（登録商標）の場合）等とオペレーティングシステムによって独自に表現することがあり、様々なオペレーティングシステムに実装されている。ハイバネーション機能を利用すると、オペレーティングシステムを高速で再開することができるという利点がある。【００２１】
ハイバネーション機能は、Windowsの場合、ハイバネーションファイル(hiberfil.sys)として、補助記憶装置、特にオペレーティングシステムのシステムドライブに保存される。電子計算機は、次回起動時にこのファイルを読み込むことで、電源切断前の作業を途中から再開できる。ハイバネーション機能は、電子計算機の電源を切断して一時休止状態にしてから、高速起動するときに使われる。【００２２】
ハイバネーション機能は、場合によって、巨大なファイルになるので、かつ、電源切断する度に書き込まれるので、補助記憶装置の空き領域を圧迫し、補助記憶装置の寿命にも影響する。Windowsの場合、電源設定を行うための「powercfg」コマンドに、「/hibernate」又は「/h」というオプションで、「powercfg /h off」又は「powercfg /h on」と設定するので、ハイバネーション機能を使用することができるが、この設定をユーザが選択的に利用できる。【００２３】
この機能を利用する場合、電子計算機の起動時間の短縮ができるが、ユーザデータがハイバネーション機能で漏洩することを確実に防ぐことができない。逆に、ハイバネーション機能を利用しない場合、電子計算機の起動時間が長くなるが、ユーザデータがハイバネーション機能で漏洩することが無くなる。
【先行技術文献】
【特許文献】
【００２４】
【特許文献１】特開２０１１−８８１３号公報
【特許文献２】特開２０１０−７２８８５号公報
【特許文献３】国際公開ＷＯ２０１３／０９５５９６号公報
【特許文献４】特開２０１４−９８９７７号公報
【特許文献５】特開２０１７−１０４２４号公報
【発明の概要】
【発明が解決しようとする課題】
【００２５】
しかしながら、ハイバネーション機能とダンプ機能によって補助記憶装置に保存されたデータは、補助記憶装置を分析することでデータの中身を取得することできるという欠点がある。このように、電子計算機を紛失したとき、又は補助記憶装置を廃棄するとき、ハイバネーション機能、ダンプ機能等によって、補助記憶装置に格納されたユーザデータが漏洩するかも知れず問題がある。【００２６】
また、作業中のユーザデータは、ローカルの補助記憶装置に保存せず、ネットワークストレージ等に安全に格納することが望ましい。よって、電子計算機のオペレーティングシステムのハイバネーション機能及びダンプ機能による情報を漏洩させない、また、作業中のユーザデータを電子計算機に残さないような、電子データの管理ができる管理方法及びそのシステムが求められている。【００２７】
本発明は上述のような技術背景のもとになされたものであり、下記の目的を達成する。
本発明の目的は、揮発性記憶手段を利用し、電子計算機の電子データを確実に保護して情報漏洩を防止する、電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体を提供することにある。【００２８】
本発明の他の目的は、電子計算機で利用する電子データをオペレーティングシステムのハイバネーション機能、ダンプ機能等により漏洩することを防止する、電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体を提供することにある。
【課題を解決するための手段】
【００２９】
本発明は、前記目的を達成するため、次の手段を採る。
本発明は、電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体である。【００３０】
相互に通信できるネットワーク上の記憶手段であるネットワークストレージと通信する電子計算機は、プログラムコードに従ってデータを処理する中央処理手段、
前記プログラムコード、又は、前記プログラムコード及び前記データを保持する主記憶手段、
前記プログラムコード及び前記電子計算機が一時休止時に前記主記憶手段の内容データを格納する不揮発の補助記憶手段、
指示コマンド又は前記データを入力するための入力手段、
前記処理の結果を外部に出力するための出力手段、並びに、
前記ネットワークに接続するためのネットワーク接続手段からなり、
前記電子計算機上に動作するアプリケーションプログラム又はユーザが利用するための電子データからなるユーザデータは、前記アプリケーションプログラムによって、又は、前記入力手段から入力された入力データにより前記アプリケーションプログラムが操作されることによって、閲覧、編集、及び変更の中から１以上の操作がされるとき、前記ユーザデータが外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた前記電子計算機からなる電子データ管理装置において、
前記電子データ管理装置は、
前記ネットワークストレージに割り当てられた仮想記憶手段、
前記主記憶手段に常駐して、仮想の補助記憶装置である疑似補助記憶手段として機能する揮発性記憶手段、
前記アプリケーションプログラムが前記ユーザデータを開くとき、前記ユーザデータを前記ネットワークストレージの保存先から前記仮想記憶手段を介して取得し、前記揮発性記憶手段に格納し、及び、前記ユーザデータを閉じて保存するとき、前記ユーザデータを前記揮発性記憶手段から取得し、前記仮想記憶手段を介して前記ネットワークストレージに保存する制御手段、
前記揮発性記憶手段に前記ユーザデータが格納されるとき暗号化する暗号化手段、
前記揮発性記憶手段から前記ユーザデータを前記アプリケーションプログラムへ提供するとき、前記暗号化された前記ユーザデータを復号化する復号化手段、並びに、
前記揮発性記憶手段の前記ユーザデータを、前記仮想記憶手段を介して前記ネットワークストレージの前記ユーザデータと同期させるクラウド同期手段からなり、
前記制御手段は、前記電子計算機を動作させているオペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、前記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信、又は前記デバイスドライバと前記電子計算機上で動作する前記アプリケーションプログラムとの通信に、共通のインターフェースを提供するためのドライバウェア手段からなり、
前記ドライバウェア手段は、前記仮想記憶手段を制御するための前記デバイスドライバである仮想記憶手段ドライバ、及び、前記揮発性記憶手段を制御するための前記デバイスドライバである揮発性記憶手段ドライバを、前記オペレーティングシステムの出力を制御するファイルシステムドライバを介して制御するためのファイルシステム制御部を備え、
前記ファイルシステム制御部は、前記アプリケーションプログラムが前記ユーザデータを開く動作を前記仮想記憶手段ドライバから取得し、前記クラウド同期手段から前記ユーザデータを取得して、前記揮発性記憶手段ドライバを介して前記揮発性記憶手段に送信して前記揮発性記憶手段に前記ユーザデータを格納させる
ことを特徴とする電子データ管理装置。
【００３１】
また、本発明の電子データ管理装置は、次の特徴を有すると良い。【００３４】
前記電子データ管理装置は、前記電子計算機を待機させるサスペンド機能によって終了するとき、作業中の暗号化されたデータを前記補助記憶手段に保存し、前記電子計算機を終了し、再起動するとき、前記電子計算機のユーザの真正性を確かめる認証手段によって認証を行い、該認証が正常に認証できなかった場合、前記サスペンド機能によって終了する直前に保存したデータ及び／又は前記サスペンド機能によって保存されたデータを削除するデータ削除手段を備えていると良い。
【００３５】
前記電子データ管理装置は、前記電子計算機の操作を終了する際、作業中のデータを前記補助記憶手段に保存し、前記電子計算機を待機させるサスペンド機能によって終了し、再起動するとき、前記電子計算機のユーザの真正性を確かめる認証手段によって認証を行い、該認証が正常に認証できない場合、前記電子データ管理装置、前記アプリケーションプログラム、前記仮想記憶手段及び前記揮発性記憶手段からなる群の中から選択される１以上の初期化を行う初期化手段を備えていると良い。
【００３６】
前記認証手段は、パスワード認証手段、指紋認証手段、顔認証手段、認証サーバによるサーバ認証手段、ＩＣカード認証手段、静脈認証手段、虹彩認証手段及び２要素認証手段からなる群の内から選択される１以上の認証手段であると良い。
【００３７】
前記データ削除手段は、実行する時間帯を示すタイムテーブルの情報に基づいて実行されると良い。【００３８】
前記データ削除手段は、移動通信基地局若しくは全地球航法衛星システム（GNSS）による位置情報に基づいて許可された地域範囲の中に前記電子データ管理装置が位置するときに、無効になり、前記データ削除手段は、前記地域範囲の外に前記電子データ管理装置が位置するときに実行されると良い。【００３９】
前記データ削除手段は、前記電子データ管理装置が前記認証手段と通信できない場合実行されると良い。
【００４０】
前記データ削除手段は、前記電子データ管理装置が時間情報手段から取得した時間情報が設定時間外の場合実行されると良い。【００４１】
本発明の電子データ管理システムは、
相互に通信できるネットワーク、
前記ネットワーク上の記憶手段であるネットワークストレージ、及び
前記ネットワークストレージと通信する電子計算機からなる電子データ管理システムであり、
前記電子計算機は、
プログラムコードに従ってデータを処理する中央処理手段、
前記プログラムコード、又は、前記プログラムコード及び前記データを保持する主記憶手段、
前記プログラムコード及び前記電子計算機が一時休止時に前記主記憶手段の内容データを格納する不揮発の補助記憶手段、
指示コマンド又は前記データを入力するための入力手段、
前記処理の結果を外部に出力する出力手段、及び
前記ネットワークに接続するためのネットワーク接続手段からなり、
前記電子計算機上に動作するアプリケーションプログラム又はユーザが利用するための電子データからなるユーザデータは、前記アプリケーションプログラムによって、又は、前記入力手段から入力された入力データにより前記アプリケーションプログラムが操作されることによって、閲覧又は編集又は変更されるとき、
前記ユーザデータが外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた前記電子計算機からなる前記電子データ管理システムにおいて、
前記電子計算機は、
前記ネットワークストレージに割り当てられた仮想記憶手段、
前記主記憶手段に常駐して、仮想の補助記憶装置である疑似補助記憶手段として機能する揮発性記憶手段、
前記アプリケーションプログラムが前記ユーザデータを開くとき、前記ユーザデータを前記ネットワークストレージの保存先から前記仮想記憶手段を介して取得し、前記揮発性記憶手段に格納し、及び、前記ユーザデータを閉じて保存するとき、前記ユーザデータを前記揮発性記憶手段から取得し、前記仮想記憶手段を介して前記ネットワークストレージに保存する制御手段、
前記揮発性記憶手段に前記ユーザデータが格納されるとき暗号化する暗号化手段、
前記揮発性記憶手段から前記ユーザデータを前記アプリケーションプログラムへ提供するとき、前記暗号化された前記ユーザデータを復号化する復号化手段、並びに、
前記揮発性記憶手段の前記ユーザデータを前記仮想記憶手段を介して前記ネットワークストレージの前記ユーザデータと同期するクラウド同期手段からなり、
前記制御手段は、前記電子計算機を動作させているオペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、前記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信、又は前記デバイスドライバと前記電子計算機上で動作する前記アプリケーションプログラムとの通信に共通のインターフェースを提供するためのドライバウェア手段
からなり、
前記ドライバウェア手段は、前記仮想記憶手段を制御するための前記デバイスドライバである仮想記憶手段ドライバ、及び、前記揮発性記憶手段を制御するための前記デバイスドライバである揮発性記憶手段ドライバを、前記オペレーティングシステムの出力を制御するファイルシステムドライバを介して制御するためのファイルシステム制御部を備え、
前記ファイルシステム制御部は、前記アプリケーションプログラムが前記ユーザデータを開く動作を前記仮想記憶手段ドライバから取得し、前記クラウド同期手段から前記ユーザデータを取得して、前記揮発性記憶手段ドライバを介して前記揮発性記憶手段に送信して前記揮発性記憶手段に格納させる
ことを特徴とする。
【００４２】
また、本発明の電子データ管理システムは、次の特徴を有すると良い。【００４５】
前記電子計算機は、前記電子計算機を待機させるサスペンド機能によって終了するとき、作業中の暗号化されたデータを前記補助記憶手段に保存し、前記電子計算機を終了し、再起動するとき、前記電子計算機のユーザの真正性を確かめる認証手段によって認証を行い、該認証が正常に認証できなかった場合、前記サスペンド機能によって終了する直前に保存したデータ及び／又は前記サスペンド機能によって保存されたデータを削除するデータ削除手段を備えていると良い。
【００４６】
前記電子計算機は、前記電子計算機の操作を終了する際、作業中のデータを前記補助記憶手段に保存し、前記電子計算機を待機させるサスペンド機能によって終了し、再起動するとき、前記電子計算機のユーザの真正性を確かめる認証手段によって認証を行い、
該認証が正常に認証できない場合、前記電子計算機、アプリケーションプログラム、前記仮想記憶手段及び揮発性記憶手段からなる群の中から選択される１以上の初期化を行う初期化手段を備えていると良い。
【００４７】
前記認証手段は、パスワード認証手段、指紋認証手段、顔認証手段、認証サーバによるサーバ認証手段、ＩＣカード認証手段、静脈認証手段、虹彩認証手段及び２要素認証手段からなる群の内から選択される１以上の認証手段であると良い。
【００４８】
前記データ削除手段は、実行する時間帯を示すタイムテーブルの情報に基づいて実行されると良い。【００４９】
前記データ削除手段は、移動通信基地局若しくは全地球航法衛星システムによる位置情報に基づいて許可された地域範囲の中に前記電子計算機が位置するときに、無効になり、
前記データ削除手段は、前記地域範囲の外に前記電子データ管理装置が位置するときに実行されると良い。
【００５０】
前記データ削除手段は、前記電子計算機が前記認証手段と通信できない場合実行されると良い。
【００５１】
前記データ削除手段は、前記電子計算機が時間情報手段から取得した時間情報が設定時間外の場合実行されると良い。
【００５２】
本発明の電子データ管理装置用プログラムは、
相互に通信できるネットワーク上の記憶手段であるネットワークストレージと通信する電子計算機は、
プログラムコードに従ってデータを処理する中央処理手段、
前記プログラムコード、又は、前記プログラムコード及び前記データを保持する主記憶手段、
前記プログラムコード及び前記電子計算機が一時休止時に前記主記憶手段の内容データを格納する不揮発の補助記憶手段、
指示コマンド又は前記データを入力するための入力手段、
前記処理の結果を外部に出力する出力手段、及び
前記ネットワークに接続するためのネットワーク接続手段からなり、
前記電子計算機上に動作するアプリケーションプログラム又はユーザが利用するための電子データからなるユーザデータは、前記アプリケーションプログラムによって、又は、前記入力手段から入力された入力データにより前記アプリケーションプログラムが操作されることによって、閲覧又は編集又は変更されるとき、前記ユーザデータが外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた前記電子計算機からなる電子データ管理装置において、
前記電子データ管理装置上に動作する電子データ管理装置用プログラムは、
前記アプリケーションプログラムから出力される命令及び／又はデータを含む第１データを受信し、前記命令の実行結果及び／又は前記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバから受信した受信データを含む第２データを、前記アプリケーションプログラムに送信するための機能を前記電子計算機に実行させるアプリケーションプログラムインターフェース部、
前記デバイスドライバへ、前記命令及び／又は前記データを含む第３データを送信し、前記デバイスドライバから前記命令の実行結果及び／又は前記受信データを含む第４データを受信するための機能を前記電子計算機に実行させるデバイスドライバ制御部、
前記第１データ又は前記第４データを処理し、前記第２データ又は前記第３データを生成して、前記第１ないし４データの制御を行うための機能を前記電子計算機に実行させる制御部、並びに、
データを暗号化して暗号化データを作成するための機能を前記電子計算機に実行させる暗号化部、及び、前記暗号化データを復号化し、元の前記データを作成するための機能を前記電子計算機に実行させる復号化部からなり、
前記電子計算機を動作させているオペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、前記デバイスドライバ同士の通信、又は前記デバイスドライバと前記電子計算機上で動作する前記アプリケーションプログラムとの通信に共通のインターフェースを提供するためのドライバウェアを備え、
前記デバイスドライバ制御部は、仮想記憶手段を制御するための前記デバイスドライバである仮想記憶手段ドライバ、及び、揮発性記憶手段を制御するための前記デバイスドライバである揮発性記憶手段ドライバを、前記オペレーティングシステムの出力を制御するファイルシステムドライバを介して制御するためのファイルシステム制御部を備え、
前記電子データ管理装置用プログラムは、
前記ネットワークストレージに割り当てられた前記仮想記憶手段を生成するステップと、
前記仮想記憶手段を制御するステップ、
前記主記憶手段に常駐して、仮想の補助記憶装置である疑似補助記憶手段として機能する前記揮発性記憶手段を生成するステップ、
前記アプリケーションプログラムが前記ユーザデータを開くとき、前記ファイルシステム制御部によって前記ユーザデータを保存先から取得するステップ、
前記取得した前記ユーザデータを前記ファイルシステム制御部によって前記揮発性記憶手段に格納するステップ、
前記ユーザデータを閉じて保存するとき、前記ユーザデータを前記揮発性記憶手段から取得するステップ、
前記取得したユーザデータを制御部によって前記仮想記憶手段を介して保存する制御ステップ、
前記揮発性記憶手段に前記ユーザデータが格納されるとき、暗号化部によって暗号化するステップ、及び、
前記揮発性記憶手段から前記ユーザデータを前記アプリケーションプログラムへ提供するとき、前記暗号化されたユーザデータを復号化部によって復号化するステップ
を前記電子データ管理装置に実行させ、
前記ファイルシステム制御部は、
前記アプリケーションプログラムが前記ユーザデータを開く動作を前記仮想記憶手段ドライバから取得するステップ、
クラウド同期手段から前記ユーザデータを取得するステップ、
前記取得した前記ユーザデータを前記揮発性記憶手段ドライバを介して前記揮発性記憶手段に送信するステップ、及び、
前記送信した前記ユーザデータを前記揮発性記憶手段に格納させるステップを前記電子データ管理装置に実行させる
ことを特徴とする。
【００５３】
また、本発明の電子データ管理装置用プログラムは、次の特徴を有すると良い。【００５５】
前記保存先は、前記ネットワークストレージであり、前記揮発性記憶手段の前記ユーザデータを前記仮想記憶手段を介して前記ネットワークストレージと同期する機能を前記電子データ管理装置に実行させるクラウド同期プログラムからなると良い。【００５６】
前記電子データ管理装置用プログラムは、
前記電子データ管理装置を待機させるサスペンド機能によって終了させるとき、作業中の暗号化されたデータを前記補助記憶手段に保存し、前記電子計算機を終了させるサスペンドステップ、
前記サスペンドステップが開始するとき、前記電子データ管理装置のユーザの真正性を確かめる認証手段によって認証を行うサスペンド認証ステップ、並びに、
該認証が正常に認証できなかった場合、前記サスペンド機能によって終了する直前に保存したデータ及び／又は前記サスペンド機能によって保存されたデータを削除するデータ削除ステップ
を前記電子データ管理装置に実行させると良い。
【００５７】
また、電子データ管理装置用プログラムは、
前記電子データ管理装置の操作を終了する際、作業中のデータを補助記憶手段に保存するサスペンド機能によって前記電子データ管理装置を終了させるサスペンドステップ、
前記電子データ管理装置が終了後に再起動するとき、前記電子データ管理装置のユーザの真正性を確かめる認証手段によって認証を行うサスペンド認証ステップ、並びに、
該認証が正常に認証できない場合、前記電子データ管理装置、アプリケーションプログラム、前記仮想記憶手段及び揮発性記憶手段からなる群の中から選択される１以上の初期化を行う初期化ステップ
を前記電子データ管理装置に実行させると良い。
【００５８】
前記サスペンド認証ステップは、パスワード認証手段、指紋認証手段、顔認証手段、認証サーバによるサーバ認証手段、ＩＣカード認証手段、静脈認証手段、虹彩認証手段及び２要素認証手段からなる群の内から選択される１以上の認証手段による認証ステップを前記電子データ管理装置に実行させると良い。
【００５９】
前記電子データ管理装置用プログラムは、実行する時間帯を示すタイムテーブルの情報に基づいて前記データ削除ステップを前記電子データ管理装置に実行させると良い。【００６０】
前記電子データ管理装置用プログラムは、
移動通信基地局若しくは全地球航法衛星システム（GNSS）による位置情報に基づいて許可された地域範囲の中に前記電子データ管理装置が位置するときに、前記データ削除ステップが実行されず、
前記地域範囲の外に前記電子データ管理装置が位置するときに前記データ削除ステップを前記電子データ管理装置に実行させると良い。【００６１】
前記電子データ管理装置用プログラムは、前記電子データ管理装置が前記認証手段と通信できない場合に前記データ削除ステップを前記電子データ管理装置に実行させると良い。
【００６２】
前記電子データ管理装置用プログラムは、前記電子データ管理装置が時間情報手段から取得した時間情報が設定時間外の場合に前記データ削除ステップを前記電子データ管理装置に実行させると良い。【００６３】
本発明の電子データ管理装置用プログラムの記録媒体は、上述の電子データ管理装置用プログラムを記録した電子データ管理装置用プログラムの記録媒体である。
【発明の効果】
【００６４】
本発明によると、次の効果が奏される。
本発明は、電子計算機の揮発性記憶手段を作業フォルダとして利用し、電子データをネットワークストレージに格納し、かつ、アプリケーションプログラムの動作が終了又は電子計算機の電源が切断されると、利用するユーザデータを全て消去することで、電子計算機の電子データを確実に保護し情報漏洩が防止できた。【００６５】
本発明は、電子計算機のドライバウェア手段によって揮発性記憶手段を制御し、揮発性記憶手段の電子データをネットワークフォルダに常時又は定期的にバックアップし、特に、ハイバネーション機能による保存するユーザデータを暗号化したままローカルの補助記憶手段にバックアップことで、情報漏洩を防止することができた。【００６６】
また、本発明は、電子計算機のドライバウェア手段によって揮発性記憶手段を制御し、揮発性記憶手段の電子データをネットワークフォルダに常時又は定期的にバックアップし、特に、ダンプ機能による保存するユーザデータを暗号化したままローカルの補助記憶手段にバックアップことで、情報漏洩を防止することができた。
【図面の簡単な説明】
【００６７】
【図１】図１は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１の概要を図示したブロック図である。
【図２】図２は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１のユーザ端末２のハードウェア構成の例を図示した機能ブロック図である。
【図３】図３は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１のユーザ端末２上に動作するソフトウェア環境の例を図示した機能ブロック図である。
【図４】図４は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１のユーザ端末２上のソフトウェアの概要を図示した機能ブロック図である。
【図５】図５は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１の動作概要を示すフローチャートである。
【図６】図６は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１において、管理プログラムの動作例を示すフローチャートである。
【図７】図７は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１において、ドライバウェア３４の制御部５２の動作例を示すフローチャートである。
【図８】図８は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１において、ドライバウェア３４の動作例を示すフローチャートである。
【図９】図９は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１において、ドライバウェア３４の制御部５２の他の動作例を示すフローチャートである。
【図１０】図１０は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１において、ユーザデータを利用する流れの例を説明するフローチャートである。
【図１１】図１１は、ユーザ端末２がサスペンドモードに入るときの動作を示すフローチャートである。
【図１２】図１２は、ユーザ端末２がサスペンド状態から起動するときの動作を示すフローチャートである。
【図１３】図１３は、ユーザ端末２がサスペンド状態から起動する動作の他の例を示すフローチャートである。
【図１４】図１４は、ユーザ端末２が特定の条件を満たすとき、データを制御する手順を示すフローチャートである。
【発明を実施するための最良の形態】
【００６８】
以下、本発明の実施の形態を図に基づいて説明する。
〔本発明の第１の実施の形態〕
以下、図面を参照しながら、本発明の第１の実施の形態の電子計算機用電子データ管理システム１を説明する。図１は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１の概要をブロック図である。【００６９】
電子計算機用電子データ管理システム１は、電子計算機の揮発性記憶手段を利用し、電子計算機の電子データの漏洩を防止するためのものである。電子計算機用電子データ管理システム１は、電子計算機の揮発性補助記憶手段に作業中のユーザデータを格納する。【００７０】
特に、電子計算機用電子データ管理システム１は、電子計算機上で動作するアプリケーションプログラムが利用しているユーザデータを、ローカルの補助記憶装置に格納せず、ネットワーク上のネットワークストレージに格納することで、電子計算機の電子データの漏洩を防止する。このとき、アプリケーションプログラムは、作業フォルダとして揮発性記憶手段であるＲＡＭディスクを利用する。【００７１】
詳しくは、ネットワークに接続されて動作する電子計算機は、電子データを、ネットワーク上の記憶装置に暗号化して格納する。電子計算機用電子データ管理システム１は、具体的な解決手段として、例えば、ドライバウェア（本出願人の登録商標）の技術を利用して、電子計算機を制御し、電子データをネットワーク上の記憶装置へ安全に高速転送する。また、電子計算機の主記憶装置に疑似記憶手段を設定し、アプリケーションプログラムと電子データは、この疑似記憶装置上で取り扱う。【００７２】
以下、電子計算機用電子データ管理システム１の構造及び動作手順を具体的に説明する。図１に図示している電子計算機用電子データ管理システム１は、ユーザ端末２、ネットワークストレージ３、ネットワーク４等からなる。ユーザ端末２は、利用者が操作する電子計算機であり、ユーザ端末２で利用するユーザデータは基本的にネットワークストレージ３に格納される。【００７３】
ネットワークストレージ３は、ユーザ端末２とネットワーク４等の通信ネットワークによって接続されたストレージである。ネットワークストレージ３は、ネットワーク４上の補助記憶装置、又は、クラウドストレージともいう。ユーザ端末２とネットワークストレージ３は、インターネット等のネットワーク４に接続されている。ユーザ端末２は、ネットワーク４を介して、ネットワークストレージ３からユーザデータを取得する。【００７４】
ユーザデータは、ユーザ端末２で利用されているユーザデータ、このユーザデータから派生してユーザ端末２で作成されたユーザデータ、新規に作成された新規ユーザデータ等を含むものであり、以後、これらのデータを含めて「ユーザデータ」と単に表記する。ユーザデータは、ユーザ端末２からネットワーク４を介して、ネットワークストレージ３へ送信され、ネットワークストレージ３に格納される。【００７５】
ネットワークストレージ３は、ユーザ端末２が利用するユーザデータを格納し、保存するためのものである。ネットワークストレージ３は、ウェブサーバ又はファイルサーバ（図示せず。）の記憶装置、言い換えると、不揮発性の補助記憶装置である。ネットワークストレージ３は、専用サーバに搭載された記憶装置、分散管理されているネットワークストレージ、クラウドサービスのストレージ（クラウドストレージ）等のように、ユーザ端末２とネットワーク４を介して接続される記憶装置である。【００７６】
本実施の形態において、ネットワークストレージ３は、クラウドストレージを含め、ユーザデータを格納するものであれば任意の記憶装置を意味する。ネットワーク４は、公知の任意の有線又は無線の通信ネットワークであるが、ローカルエリアネットワーク（ＬＡＮ）又はインターネットであることが好ましい。本実施の形態において、ネットワーク４は、インターネットとして説明する。【００７７】
ユーザ端末２は、ユーザが操作し、利用するための電子計算機である（詳しくは後述する。）。ユーザ端末２は、ネットワーク４に直接接続することが可能であるが、図示しないが、ワイヤレスゲートウェイ、プロキシサーバ、ルータ、ワイヤレスアクセスポイント等の通信手段を介して接続して使用することが一般的であり、本発明の電子計算機用電子データ管理システム１は、これらの通信手段を含むものとする。【００７８】
本実施の形態においては、ユーザ端末２がネットワーク４に接続されることとそのための手段が発明の要旨ではないので、その詳細な説明は省略する。ユーザ端末２とネットワークストレージ３とのデータ通信は、通信する電子データを暗号化して所定の通信プロトコルに従って互いに送受信する。通信プロトコルは、任意の通信プロトコルを利用することができるが、ISO参照モデルに準拠したプロトコル、特に、TCP/IP等のインターネットに汎用に利用されているプロトコルが好ましい。【００７９】
ユーザ端末２において、ユーザデータはユーザ端末２の主記憶装置５上のＲＡＭディスク７に格納されて利用される。ＲＡＭディスク７には、複数のフォルダ８が作成されて、汎用の補助記憶装置６（不揮発記憶装置）にフォルダ９が作成されて動作するのと、同じように利用される。ユーザ端末２を利用するユーザ、ユーザ端末２上に動作するアプリケーションプログラムから見ると、汎用の補助記憶装置、そのフォルダとまったく同じように操作する。【００８０】
ユーザ端末２では、ユーザデータが暗号化され、所定の通信プロトコルに従って、ネットワーク４を介してネットワークストレージ３へ送信される。ネットワークストレージ３では、この暗号化されたユーザデータを所定のフォルダ１１に保存する。フォルダ１１は、ユーザ端末２毎に割り当てたフォルダ、又はユーザ毎に割り当てたフォルダであっても良い。【００８１】
ユーザ端末２は、ネットワーク４を介してネットワークストレージ３からデータを取得する。この通信の流れを、図１において、破線で様式的に図示している。ユーザ端末２は、ＲＡＭディスク７の内容をネットワークストレージ３に保存する（バックアップする又は同期させる。）とき、フォルダ８毎にスケジュールを設定して行うことができる。【００８２】
例えば、所定時間、アプリケーションプログラム又はオペレーティングシステムのサービス等から要求があるとき、又はユーザから指示があるとき、ユーザ端末２は、指定されたフォルダ８、若しくはＲＡＭディスク７の内容を全て送信する。又は、ユーザ端末２は、ＲＡＭディスク７、若しくはフォルダ８の内容の前回送信分の差分を、ネットワークストレージ３へ送信する。
【００８３】
ユーザ端末２の構成について後述するが、図１に図示したように、ユーザ端末２は、記憶手段として主記憶装置５、補助記憶装置６、主記憶装置５内にＲＡＭディスク７等を備えている。主記憶装置５は、電子計算機のＲＡＭ（Random Access Memory）であり、これは揮発性メモリである。電源供給が無くなると、主記憶装置５上に格納されているデータが揮発（消滅）して、無くなる特徴を持っている。【００８４】
この特性により、ユーザ端末２の電源が切断されると、主記憶装置５の全ての電子データが無くなり、従って、主記憶装置５の一部を利用しているＲＡＭディスク７の内容が消滅することになる。補助記憶装置６としては、ＨＤＤ（Hard disk drive）、ＳＳＤ（Solid state drive）等が例示できる。ＲＡＭディスク７は、言い換えると疑似記憶装置である。【００８５】
一般論として、通常、電子計算機ではアプリケーションプログラムとユーザデータは、補助記憶装置に保存されている。電子計算機の動作時、アプリケーションプログラムは補助記憶装置からそのプログラムコードが読み込まれ、主記憶装置に格納されて実行され、そして、補助記憶装置からアプリケーションプログラムに必要なデータが読み込まれて処理される。【００８６】
アプリケーションプログラムはネットワークからデータを取得して処理する場合、ネットワークから取得したデータを補助記憶装置のキャッシュ領域に保存して、その後、アプリケーションプログラムは、このキャッシュ領域からデータを取得して処理することがある。これに対して、本発明の電子計算機用電子データ管理システム１は、作業中のデータを電子計算機の補助記憶装置に格納せず、ユーザ端末２の主記憶装置に備えたもので補助記憶装置として動作する疑似補助記憶装置に作業中のデータを格納する。【００８７】
図１に図示したように、このような疑似補助記憶装置は、主記憶装置５内にＲＡＭディスク７として提供されている。言い換えると、ＲＡＭディスク７は、主記憶装置５に常駐する記憶装置である。詳しくは、主記憶装置５の領域の一部をＲＡＭディスク７として割り当てた領域である。ユーザ端末２が稼働し、オペレーティングシステムが動作すると、ユーザ端末２の補助記憶装置６からドライバウェア３４（図３を参照）等の制御アプリケーションプログラムが読み込まれて、主記憶装置５上に展開されて動作する。【００８８】
したがって、主記憶装置５にＲＡＭディスク７の領域が確保され、ユーザ端末２のオペレーティングシステム３０のファイルシステムに記憶装置として登録される。よって、ＲＡＭディスク７は、仮想の補助記憶装置又は疑似補助記憶装置になり、補助記憶装置として動作する。ＲＡＭディスク７は、ユーザ端末２では、ユーザ端末２の補助記憶装置６等の他の補助記憶装置と同様に取り扱われる。【００８９】
従って、アプリケーションプログラムは、ＲＡＭディスク７を作業記憶装置として、ＲＡＭディスク７内のフォルダ８は作業フォルダとして利用し動作する。このとき、アプリケーションプログラムは、必要なユーザデータを、ネットワークストレージ３からネットワーク４等を経由して取得して、ＲＡＭディスク７上に格納して利用し動作する。【００９０】
ユーザ端末２の電源が遮断されると、主記憶装置５の内容が消去されるため、ＲＡＭディスク７の内容も消去される。これにより、ＲＡＭディスク７上を利用している実行中アプリケーションプログラムが停止され、ＲＡＭディスク７上に格納されているユーザデータが全て消去される。よって、秘密性等が要求されるユーザデータがユーザ端末２から外部に漏洩することがない。【００９１】
ＲＡＭディスク７に格納されるユーザデータは、暗号化されて格納される。電子計算機用電子データ管理システム１は、ＲＡＭディスク７を補助記憶装置として利用しているので、ユーザ端末２において、オペレーティングシステムのハイバネーション機能が発動すると、主記憶装置５の内容が補助記憶装置６等のローカル補助記憶装置に格納される。【００９２】
このとき、ＲＡＭディスク７の暗号化された内容がハイバネーション機能でローカル補助記憶装置に格納されるが、暗号化されているため、内容が読み取ることができない。ハイバネーション機能の実行後、又は、ハイバネーション機能が実行されないで、ユーザ端末２の電源が切断されると、主記憶装置５の内容、ＲＡＭディスク７の内容が消去されるので、ユーザデータ等が漏洩することがない。【００９３】
言い換えると、ユーザ端末２を解析することで、ユーザデータが取得されることがない。従来技術のように、ハイバネーション機能を利用して、ユーザデータが漏洩することが無くなる。ダンプ機能に関しても同様である。ユーザ端末２は、ダンプ機能のために主記憶装置５の内容を出力するとき、ＲＡＭディスク７の暗号化された内容も出力し、補助記憶装置６等のローカル補助記憶装置にダンプファイルとして格納される。【００９４】
その後、ユーザ端末２の電源が切断されると、主記憶装置５の内容、ＲＡＭディスク７の内容が消去されるので、ダンプファイルに含まれるユーザデータ等が漏洩することがない。ユーザ端末２を解析してもユーザデータが暗号化されているため、その内容を取得することができない。【００９５】
以上説明した、ユーザ端末２でのユーザデータの流れ、特に、ＲＡＭディスク７の制御はドライバウェア（登録商標）の技術を利用して行われる。以下、ユーザ端末２、ドライバウェアの構成及び機能についてその概要を簡単に説明する。図２には、主にユーザ端末２のハードウェア構成の例を図示している。図３には、主にユーザ端末２上に動作するソフトウェア環境を含めたユーザ端末２の概要を図示している。
【００９６】
〔ユーザ端末２のハードウェア構成〕
ユーザ端末２は、中央処理手段、主記憶手段、入力手段、出力手段等を備えた汎用の電子計算機である。図２のブロック図は、ユーザ端末２の構成の一例を図示している。ユーザ端末２は、図２に図示したように、本体２０に格納された中央処理装置（ＣＰＵ）２１、主記憶装置５、入力インターフェース２２、出力インターフェース２３、バス２４、電源ユニット２６、入力装置２７、出力装置２８等を備える。【００９７】
本体２０は、中央処理装置２１、主記憶装置５、入力インターフェース２２、出力インターフェース２３、バス２４等を搭載したメインボード（図示せず）、電源ユニット２６等を内蔵したものである。電源ユニット２６は、ユーザ端末２の各構成要素、デバイス等に電源供給をするためのもので、バッテリー又は商業電源アダプター等からなるが、詳細な説明は省略する。【００９８】
入力装置２７、出力装置２８等は、本体２０に接続して利用する周辺機器であるが、ノート型電子計算機等の一体型電子計算機の場合、本体２０に内蔵して又は一体的に構成することができる。入力機能及び出力機能を備えたタッチ式のパネルも入力装置２７及び／又は出力装置２８として利用できる。ユーザ端末２は、補助記憶装置として、内蔵された補助記憶装置６と外付補助記憶装置２９を備える。【００９９】
また、ユーザ端末２は、外付補助記憶装置２９用の補助記憶装置用インターフェース２５も備える。主記憶装置５、中央処理ユニット２１、入力インターフェース２２、出力インターフェース２３は、バス２４で互いに接続されて、このバス２４を経由して、互いにデータの送受信を行う。特定の信号処理を行うための信号処理器がある場合があるが、その詳細な説明は、本発明の要旨ではないので省略する。【０１００】
補助記憶装置用インターフェース２５は、入力インターフェース２２及び／又は出力インターフェース２３（合わせて、入出力インターフェースという。）の一種であるが、外付補助記憶装置２９用の発明に欠かせない構成要素であるので、ここで図示した。外付補助記憶装置２９は、補助記憶装置６と基本的に同じ機能を有するデバイスであり、以後、補助記憶装置６のみを例に説明する。【０１０１】
主記憶装置５は、ＲＡＭ等の記憶装置である。中央処理装置２１は、ユーザ端末２の動作を制御するもので、主記憶装置５に格納されたプログラムによって、そのプログラムの命令を順序処理し実行しながら、ユーザ端末２の動作を制御する。マウス、キーボード等の入力装置２７は、入力インターフェース２２に接続される。補助記憶装置６と外付補助記憶装置２９は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）等の不揮発記憶装置である。【０１０２】
補助記憶装置６には、オペレーティングシステム、アプリケーションプログラム、電子データ等が格納される。アプリケーションプログラムは、通常、呼び出されて、主記憶装置５に展開されて、動作する。ユーザ端末２は、図３と図４に図示したネットワークカード３７のように、通信用のボード等の他の装置を接続するためのインターフェースを多数備えるが、本発明は、インターフェースを目的とするものではないので、この詳細な説明は省略する。【０１０３】
〔ユーザ端末２のソフトウェア構成〕
図３には、ユーザ端末２上で動作するソフトウェアの概要を図示している。ユーザ端末２では、オペレーティングシステム３０が動作し、オペレーティングシステム３０が提供するプラットフォーム上に、アプリケーションプログラム３３が動作している。【０１０４】
図３に図示したように、ユーザ端末２は、ネットワークカード（ＬＡＮカード）３７、補助記憶装置６等のデバイス３６を備えている。ＲＡＭディスク７を破線で図示しており、これは、ＲＡＭディスク７は物理的に独立して存在するものではなく、主記憶装置５の中の物理メモリの一部を使用してソフトウェア的に動作する疑似記憶装置である。同様に、破線で図示されているクラウド用仮想記憶装置１０は、ネットワークストレージ３へデータを送受信する専用記憶装置である。【０１０５】
クラウド用仮想記憶装置１０は、ソフトウェア的に動作する仮想記憶装置（疑似記憶装置）である。言い換えると、この仮想記憶装置は、データを記憶する領域等の実態がなく、使用者側から見ると補助記憶装置として見える疑似補助記憶装置であり、これにアクセスすると実体アクセスは別の補助記憶装置へリダイレクトされる。これらのデバイス３６を、ネットワークドライバ３７ａ、ディスクドライバ６ａ、ＲＡＭディスクドライバ７ａ、クラウド用仮想ディスクドライバ１０ａ、ファイルシステムドライバ３９等のデバイスドライバ３５で制御する。【０１０６】
具体的には、ネットワークカード３７をネットワークドライバ３７ａで、補助記憶装置６をディスクドライバ６ａで制御する。また、ＲＡＭディスク７とクラウド用仮想記憶装置１０は、それぞれＲＡＭディスクドライバ７ａとクラウド用仮想ディスクドライバ１０ａによって制御される。【０１０７】
ファイルシステムドライバ３９は、ディスクドライバ６ａ、ＲＡＭディスクドライバ７ａとクラウド用仮想ディスクドライバ１０ａ等の記憶装置用デバイスドライバを制御するものである。結果的に、ファイルシステムドライバ３９は、補助記憶装置６、ＲＡＭディスク７、クラウド用仮想記憶装置１０等の補助記憶装置に対して、オペレーティングシステム３０の入出力機能（Ｉ／Ｏ機能）の窓口になり、制御する。【０１０８】
オペレーティングシステム３０は、本来、その入出力機能（Ｉ／Ｏ機能）を介して、デバイス３６をデバイスドライバ３５で制御している。オペレーティングシステム３０は、オペレーティングシステム３０が備えている命令が全て実行できるカーネルモード３１と、一部の命令を制限したユーザモード３２を有する。【０１０９】
ユーザ端末２で動作するアプリケーションプログラム３３は、ユーザモード３２で動作する。アプリケーションプログラム３３ではカーネルモード３１で動作するものがあるが、これはシステムリソースに直接アクセスする特殊なプログラムに限られる。汎用のアプリケーションプログラム、特にオブジェクト指向のアプリケーションプログラムは、基本的に、ユーザモード３２で動作するものであり、カーネルモード３１へアクセスするときオペレーティングシステム３０が提供する入出力機能等の機能を利用する。【０１１０】
本発明においては、オペレーティングシステム３０とデバイスドライバ３５の間に位置するドライバウェア３４によって、オペレーティングシステム３０の入出力機能、デバイスドライバ３５を制御している。ドライバウェア３４の構成及び機能については、詳しく後述する。補助記憶装置６は、上述した機能を有するものであり、１台以上を備える。以下、補助記憶装置６を一台のみを例に説明するが、これに限定されない。【０１１１】
補助記憶装置６には、オペレーティングシステム３０のコード、ユーザ端末２の動作に必要なプログラムコードを始め各種のアプリケーションプログラム３３、モジュール等のソースコードが格納される（以下、単に、オペレーティングシステム３０、アプリケーションプログラム３３、モジュール等という。）。また、補助記憶装置６には、ユーザデータを格納することができる。【０１１２】
ユーザデータは、一般的に、ユーザの要求、アプリケーションプログラム３３の仕様又は要求等の必要に応じて、暗号化されて、又は、暗号化されずに、補助記憶装置６に格納される。本実施の形態において、ユーザデータは、アプリケーションプログラム３３、ユーザが利用する電子データ等である。【０１１３】
ユーザデータは、特に限定しないが、テキストファイル、静止画ファイル、映像ファイル、音声ファイル、各種のフォーマットの文書ファイル（Word, pdf等）、コンピュータプログラムコードのファイル、実行可能なファイル（.exeファイル）、通信履歴、アプリケーションプログラムの動作履歴、オペレーティングシステム又はアプリケーションプログラムのバックアップファイル、各種の一時ファイル、メモリの内容等の任意の形式のファイル、これらのバックアップファイルである。【０１１４】
また、ユーザデータは、暗号復号コード、識別番号、暗証番号、個人情報、顧客データ、ビジネスのノウハウ、機密データに関する情報、その文書等のようにデータ管理が必要なデータを含め広く解釈される。ユーザ端末２は、ネットワークカード３７、補助記憶装置６等のハードウェアのデバイス３６と、デバイス３６を制御するためのソフトウェアであるデバイスドライバ３５を備える。【０１１５】
デバイスドライバ３５は、オペレーティングシステム３０とデバイス３６の間に位置し、それらの間にデータの送受信を行う。オペレーティングシステム３０は、そのＩ／Ｏ機能を利用し、デバイスドライバ３５を経由してデバイス３６を制御する。Ｉ／Ｏ機能は、オペレーティングシステム３０の一部機能として所定の関数を公開することで、デバイス３６とアクセスできるものであり、デバイスドライバ３５はこれを利用してデータ送受信を行う。【０１１６】
図３に図示したように、ユーザ端末２は、上述のＲＡＭディスク７を備えており、ＲＡＭディスク７は疑似デバイスであるが、ネットワークカード３７、補助記憶装置６等のデバイス３６と同じ、あたかもハードウェアのように動作する。そのため、ＲＡＭディスクドライバ７ａが、オペレーティングシステム３０とＲＡＭディスク７の間のデバイスドライバ３５に配置されて、ＲＡＭディスク７を制御する。【０１１７】
クラウド用仮想記憶装置１０は、疑似デバイスであるが、同様にあたかもハードウェアとして動作する。アプリケーションプラットフォームプログラム３８は、アプリケーションプログラム３３とオペレーティングシステム３０との間に位置し、アプリケーションプログラム３３とオペレーティングシステム３０との通信を制御するもので、ユーザモード３２で動作するプログラムである。【０１１８】
アプリケーションプラットフォームプログラム３８は、ドライバウェア３４と連帯して動作し、ユーザモード３２で取得した通信データをドライバウェア３４へ送信し、ドライバウェア３４の指示で、アプリケーションプログラム３３とオペレーティングシステム３０を制御するものである。【０１１９】
クラウド同期部１２は、ネットワークストレージ３（図１を参照。）と通信するための専用アプリケーションプログラム又はモジュールであり、ユーザモード３２で動作する。クラウド同期部１２は、ドライバウェア３４と連帯して動作し、クラウド用仮想記憶装置１０をネットワークストレージ３と同期させるためのものである。クラウド同期部１２は、クラウド用仮想記憶装置１０内のデータをファイルシステムドライバ３９とドライバウェア３４を経由して取得する。【０１２０】
クラウド同期部１２は、この取得したデータをドライバウェア３４、ネットワークドライバ３７ａ、ネットワークカード３７を介して、ネットワークストレージ３へ送信する。逆に、クラウド同期部１２は、ネットワークストレージ３からデータを、ネットワークカード３７、ネットワークドライバ３７ａ、ドライバウェア３４を介して取得し、クラウド用仮想記憶装置１０に、ドライバウェア３４、ファイルシステムドライバ３９を経由して格納する。【０１２１】
クラウドストレージを提供する汎用サービスは、基本的にユーザモードでインターフェース（I/F）を提供しており、それにアクセスするためには、ユーザモードで動作するクラウド同期部１２でアクセスする。そのため、アクセス権を得るために、クラウドストレージへ初回接続の場合、クラウドストレージのアカウント（ＩＤとパスワード）を標準提供されているＩ／Ｆを利用しユーザモードで入力する。【０１２２】
〔ドライバウェアの説明〕
図４は、ドライバウェア３４を含め、ユーザ端末２上で動作するソフトウェアの概要を図示している。この図を参照しながら、ユーザ端末２上で動作するオペレーティングシステム３０、ドライバウェア３４等の概要を説明する。本実施の形態においては、オペレーティングシステム３０は、Microsoft社のWindows XP（登録商標）以後のWindowsを例に説明する。【０１２３】
しかし、これは、本発明で使用できるオペレーティングシステム３０の種類を制限するものではなく、同様な機能が実現できれば、任意のオペレーティングシステムも利用することができる。ユーザ端末２は、ソフトウェアとして動作するオペレーティングシステム３０、ドライバウェア３４等を備え、ハードウェア（デバイス３６）としてネットワークカード３７、補助記憶装置６、キーボードポート４３、マウスポート４４等を本体２０に備えている。【０１２４】
ユーザ端末２は、ソフトウェアとハードウェアの間に位置するハードウェア抽象化層（ＨＡＬ）４７を備えている。ドライバウェア３４は、オペレーティングシステム３０のカーネルモード３１で動作するプログラムである。ユーザ端末２は、キーボードポート４３に接続されるキーボード４５、マウスポート４４に接続されるマウス４６、ディスプレイ（図示せず。）等の入出力装置を備えている。【０１２５】
ユーザ端末２は、図示しないが、周辺機器と接続するためのコネクタを有し、コネクタは、ＳＡＴＡ、ＲＳ-２３２Ｃ、ＩｒＤＡ、ＵＳＢ、ＩＥＥＥ１３９４等のシリアルポート、ＩＥＥＥ１２８４、ＳＣＳＩ、ＩＤＥ等のパラレルポートであるものが好ましい。キーボードポート４３とマウスポート４４は、コネクタの一つである。ユーザ端末２は、スキャナ、プリンタ等の周辺機器を有することができ、コネクタに接続される。【０１２６】
ユーザ端末２上で動作するアプリケーションプログラム３３は、オペレーティングシステム３０が提供する機能を利用して、入出力装置からの入出力を行い、必要な処理をする。アプリケーションプログラム３３は、オペレーティングシステム３０のカーネルモード３１又はユーザモード３２に動作する実行可能なファイル又はソフトウェアである。【０１２７】
例えば、アプリケーションプログラム３３は、ワードプロセッシングソフトウェア、テキストエディタ等の文書を作成、編集するためのソフトウェア、pdf形式のファイル等のような特定の形式のファイルを閲覧、作成、編集するためのソフトウェアである。【０１２８】
オペレーティングシステム３０は、キーボード４５からの入力、マウス４６からの入力や画面出力等のような入出力装置からの入出力機能、記憶装置やメモリの管理等の基本的な機能を提供し、ユーザ端末２全体を動作させ、管理するためのソフトウェアである。オペレーティングシステム３０は、基本ソフトウェアとも言われる。【０１２９】
オペレーティングシステム３０は、その提供する機能を実現するために多数の実行可能なプログラムから構成されるものである。オペレーティングシステム３０、特に本発明の実施の形態に用いているWindows系のオペレーティングシステムについては、多数の書籍があり、その一部から紹介する。本発明を再現するためには、これらの公開されている書籍に記述されている技術知識、特に、デバイスドライバ開発に関する知識が必要である。【０１３０】
Windows系のオペレーティングシステムの内部構成、その動作についての書籍一覧：
−  Inside Windows NT by Helen Custer (Microsoft Press, 1992)
−  Inside the Windows NT File System by Helen Custer (Microsoft Press, 1994)
−  Inside Microsoft Windows 2000, Third Edition by David A. Solomon, Mark E. Russinovich (Microsoft Press, 2000)。【０１３１】
デバイスドライバの基礎知識からその開発に関する知識ついての書籍一覧：
−  Programming the Microsoft Windows Driver Model by Walter Oney (Microsoft Press, 1999)
−  Programming the Microsoft Windows Driver Model, Second Edition by Walter Oney (Microsoft Press, 2002)。【０１３２】
ここで、オペレーティングシステム３０の構成要素の内の代表的なものから、図４を参照しながら、記述する。オペレーティングシステム３０は、カーネル４０、エグゼキュティブ４１、サブシステム４２、デバイスドライバ３５、ＨＡＬ４７等から構成される。サブシステム４２は、オペレーティングシステム３０のユーザモード３２で提供されるサービスである。【０１３３】
エグゼキュティブ４１は、メモリの管理、プロセスとスレッドの管理、セキュリティ、Ｉ／Ｏ（入出力）、ネットワーク、及びプロセス間通信等のオペレーティングシステム３０の基本的なサービスを提供するものである。カーネル４０は、スレッドスケジューリング、割り込み、例外通知、マルチプロセッサの同期等の低レベルの関数を提供する。また、カーネル４０は、エグゼキュティブ４１の内部で使用するルーチンセットと基本オブジェクトを提供する。【０１３４】
デバイスドライバ３５は、通常は、ユーザ端末２に接続されたハードウェアごとに作成され、ＨＡＬ４７を介して、デバイス３６を直接制御するものである。デバイスドライバ３５は、アプリケーションプログラム３３やオペレーティングシステム３０からの入出力機能の要求（Ｉ／Ｏ呼び出し要求）を特定のデバイス３６に対する入出力機能の要求（Ｉ／Ｏ要求）に変換するサービスと、ファイルシステムやネットワークドライバ等のシステムサービスを提供する。【０１３５】
ＨＡＬ４７は、カーネル４０、デバイスドライバ３５、及びエグゼキュティブ４１をプラットフォーム固有のハードウェア機能から分離し抽象化するためのコード層である。ＨＡＬ４７は、ユーザ端末２の内蔵デバイスや、ユーザ端末２に接続されている外部デバイス等のハードウェアの機種、種類による違いを吸収し、オペレーティングシステム３０の各サービスに対して抽象化したサービスを提供する。【０１３６】
オペレーティングシステム３０を構成する各種のサービスは、ハードウェアの機種、種類による違いを意識することなくハードウェアにアクセスすることが可能になる。以上のように、オペレーティングシステム３０についてその代表的な構成、機能について説明したが、詳しくは関係書籍、ウェブソース等に譲り、詳細は省略する。【０１３７】
〔ドライバウェア３４〕
ドライバウェア３４は、デバイスドライバ３５間のデータの送受信をカーネルモード３１で実現するためのものである。デバイスドライバ３５間にカーネルモード３１でデータを転送するとき、データ転送が高速に行うことができると共にデータのセキュリティを確保することができる。従って、大容量のデータを短時間で高速に転送するという利点がある。【０１３８】
ドライバウェア３４は、アプリケーションプログラム３３からデバイスドライバ３５へアクセスするとき、また、デバイスドライバ３５からアプリケーションプログラム３３へデータを送信するときに、共通のインターフェースを提供する。ドライバウェア３４は、オペレーティングシステム３０のカーネルモード３１で動作する。【０１３９】
ドライバウェア３４は、デバイスドライバ３５間だけではなく、オペレーティングシステム３０とデバイスドライバ３５とのデータの送受信を提供し、制御する機能を有する。ドライバウェア３４は、電子計算機のインターフェースドライバプログラムとして、本出願人が提案した例えばＷＯ０２／０９１１９５号等に開示されている周知の技術である。【０１４０】
ドライバウェア３４は、アプリケーションプログラム３３からの命令やデータ等を受信し、アプリケーションプログラム３３へのデータを送信するためのアプリケーションプログラムインターフェース部５１を有する。ドライバウェア３４は、ドライバウェア３４の全体の動作を制御するための制御部５２を有する。また、ドライバウェア３４の動作の履歴を取得するためのログ取得部５３も有する。【０１４１】
ドライバウェア３４は、通信するデータを暗号化するための暗号化部５４、暗号化されたデータを復号化するための復号化部５５を有する。ドライバウェア３４は、デバイスドライバ３５を制御するためのデバイスドライバ制御部６０を有する。デバイスドライバ制御部６０は、デバイスドライバ３５毎に作成されることも又は共通の機能等がある場合、一つのデバイスドライバ制御部６０で複数のデバイスドライバ３５を制御することができる。【０１４２】
制御部５２は、デバイスドライバ制御部６０、アプリケーションプログラムインターフェース部５１、ログ取得部５３、暗号化部５４、復号化部５５等のドライバウェア３４の他の部を制御し、監視するためのもので、ドライバウェア３４の中核部である。デバイスドライバ制御部６０は、各デバイスドライバ３５を制御するための制御部からなる。【０１４３】
例えば、ネットワークドライバ３７ａを制御するためのネットワーク制御部５６、ファイルシステムドライバ３９を制御するためのファイルシステム制御部５７、キーボードドライバ４３ａとマウスドライバ４４ａを制御するための入力装置制御部５９等からなる。ＲＡＭディスク制御部５８は、ＲＡＭディスク７を作成し、そのための設定を行うためのものである。【０１４４】
本実施の形態においては、デバイスドライバ３５は、オペレーティングシステム３０に付属するものとして記述する。ネットワークドライバ３７ａは、ネットワークカード３７を制御するためのデバイスドライバである。ファイルシステムドライバ３９は、補助記憶装置６に保存されているファイル、フォルダに関する情報を管理するもので、補助記憶装置６に保存されているファイルやフォルダへのアクセスを提供するものである。【０１４５】
ファイルシステムドライバ３９は、本例ではユーザ端末２に接続されたＩＤＥ（Integrated Drive Electronics）、ＡＴＡ（Advanced Technology Attachment）、ＳＡＴＡ（Serial ATA）、ＳＣＳＩ（Small Computer System Interface）、ＵＳＢ（Universal Serial Bus）、これらの派生規格等の規格に準拠した記憶装置へのアクセスを提供する。本発明は、ハードウェア規格の発明ではないので、詳細な説明は各規格の仕様文献に譲り、これ以上の説明は省略する。【０１４６】
このように、ドライバウェア３４は、アプリケーションプログラム３３から出力される命令及び／又はデータを受信し、この命令の実行結果及び／又はデバイスドライバ３５から受信した受信データを、アプリケーションプログラム３３に送信するためのアプリケーションプログラムインターフェース部５１を有する。また、ドライバウェア３４は、デバイスドライバ３５へこの命令及び／又はデータを送信し、デバイスドライバ３５から命令の実行結果及び／又は受信データを受信するためのデバイスドライバ制御部６０を有する。【０１４７】
更に、ドライバウェア３４は、これらの命令及び／又はデータを処理し、出力データを生成して、データの制御を行うための制御部５２を有する。ドライバウェア３４は、データを暗号化して暗号化データを作成するための暗号化部５４、及び、暗号化データを復号化し、元のデータを作成するための復号化部５５を有する。更に、ドライバウェア３４の動作の履歴を取得し、保存するためのログ取得部５３を有する。ログ取得部５３は、特に、制御部５２の動作の履歴を取得し、記録する。【０１４８】
デバイスドライバ制御部６０の各制御部５６〜５９は、制御部５２によって制御され、又は、制御部５２から命令又はデータを受信し、これをデバイスドライバ３５へ送信又は転送する。デバイスドライバ制御部６０は、デバイスドライバ３５から前述した命令を実行した結果、データを受信し、制御部５２へ送信する。このように、ドライバウェア３４は、ユーザ端末２を制御する、特にユーザ端末２の各デバイスの動作を制御する中核部である。【０１４９】
〔アプリケーションプラットフォームプログラム〕
アプリケーションプラットフォームプログラム３８（図３及び図４を参照。）は、オペレーティングシステム３０のユーザモード３２で動作するアプリケーションソフトウェアである。アプリケーションプラットフォームプログラム３８は、アプリケーションプログラム３３と、オペレーティングシステム３０との間に位置し、これらの間に命令やデータの送受信を仲介し制御するためのアプリケーションプログラムである。【０１５０】
アプリケーションプラットフォームプログラム３８は、オペレーティングシステム３０からファイルシステムにアクセスするためのユーザインターフェースを提供する。アプリケーションプラットフォームプログラム３８は、アプリケーションプログラム３３の起動、これに伴うプロセスの起動を監視し、これらの属性情報を取得する機能を有する。【０１５１】
図５は、本発明の第１の実施の形態の電子計算機用電子データ管理システム１のユーザ端末２の動作概要を示すフローチャートである。まず、ユーザ端末２に電源を入れて起動させる（ステップ１）。ユーザ端末２上にオペレーティングシステム３０が起動し、初期処理等を行い、そして、ドライバウェア３４が起動する（ステップ２，３）。【０１５２】
ＲＡＭディスク７を作成するためのＲＡＭディスク制御部５８が起動し、主記憶装置５上にＲＡＭディスク７用の領域を確保し、ＲＡＭディスク７のための設定がオペレーティングシステム３０及びドライバウェア３４で行われる（ステップ４）。ＲＡＭディスク７に必要な領域、言い換えると、主記憶装置５上に常駐するメモリサイズは、標準サイズとして５００ＭＢ、１ＧＢ、４ＧＢ等のように予め設定されるが、ユーザによってＲＡＭディスク制御部５８等の動作中に指定することができる。【０１５３】
ドライバウェア３４は、デバイスドライバ３５を制御しているので、ファイルシステムドライバ３９等を制御し、ＲＡＭディスク７をメインの補助記憶装置として動作させる設定を行う。まず、ＲＡＭディスク７を補助記憶装置としてオペレーティングシステム３０のＩ／Ｏ機能に登録する。また、ＲＡＭディスクドライバ７ａが読み込まれ、ファイルシステムドライバ３９と連携される。これにより、ファイルシステムドライバ３９とオペレーティングシステム３０には、通常の補助記憶装置として、ＲＡＭディスク７が認識される。【０１５４】
次に、ＲＡＭディスク７のフォーマット処理を行う。これにより、アプリケーションプログラム３３、オペレーティングシステム３０等からアクセス可能になる。次に、クラウド同期部１２のプログラムが起動され、クラウド用仮想記憶装置１０を生成し、そのための設定がオペレーティングシステム３０及びドライバウェア３４等で行われる（ステップ５、６）。クラウド用仮想記憶装置１０を補助記憶装置としてオペレーティングシステム３０のＩ／Ｏ機能に登録する。【０１５５】
また、クラウド用仮想ディスクドライバ１０ａが読み込まれ、ファイルシステムドライバ３９と連携される。これにより、ファイルシステムドライバ３９とオペレーティングシステム３０には、補助記憶装置として、クラウド用仮想記憶装置１０が認識される。これにより、アプリケーションプログラム３３、オペレーティングシステム３０からアクセス可能になる。【０１５６】
そして、ユーザ端末２は、ネットワーク４（図１を参照。）に接続し、ネットワークストレージ３と接続する（ステップ７）。言い換えると、ユーザ端末２は、ネットワークストレージ３と通信リンクを確立させる。これにより、ユーザ端末２を利用者が利用する準備ができる。ユーザ端末２上にアプリケーションプログラム３３が動作し、データ処理等を行う（ステップ８）。【０１５７】
アプリケーションプログラム３３は、ユーザ端末２上で動作する。具体的には、ユーザ又は他のアプリケーションプログラム、オペレーティングシステム３０のサービスの要求又は指示によって、動作する。アプリケーションプログラム３３は、補助記憶装置６又はネットワークストレージ３から読み出されて動作する。アプリケーションプログラム３３は、動作すると、実体の無い仮想ディスクであるが、クラウド用仮想記憶装置１０を経由して、ネットワークストレージ３にアクセスできる。【０１５８】
ユーザ端末２において、ドライバウェア３４は、ＲＡＭディスク７の内容をネットワークストレージ３（図１参照）に送信し、ネットワークストレージ３にあるＲＡＭディスク７用のフォルダ１１とクラウド用仮想記憶装置１０が同期をとる（ステップ９）。ユーザ端末２は、定期的に、作業を監視し、継続又は終了をする（ステップ１０、１１）。【０１５９】
アプリケーションプログラム３３がクラウド用仮想記憶装置１０にユーザデータを保存したことをドライバウェア３４が検出すると、クラウド同期部１２へ通知する。クラウド同期部１２は、ＲＡＭディスク７の内容を確認し、未同期のファイルは直ちにネットワークストレージ３と同期をとって、終了する（ステップ１２）。言い換えると、同期となっている残りのデータを同期する。この同期が終了すると、ユーザ端末２は、電源を切断する。このとき主記憶装置５の内容が消去され、従って、ＲＡＭディスク７の内容も消去される（ステップ１３）。【０１６０】
これにより、アプリケーションプログラム３３で利用していたユーザデータは、ユーザ端末２に残ることがなく、ユーザ端末２から削除される。従って、利用者にとって、ユーザ端末２にユーザデータが一切残ることが無くなり、ユーザデータの情報漏洩、機密確保が保証される。【０１６１】
［管理プログラム］
以下、管理プログラムの動作例について図６に図示したフローチャート参照しながら説明する。ドライバウェア３４は、アプリケーションプラットフォームプログラム３８とクラウド同期部１２と一緒に管理プログラムとして、提供される。管理プログラムは、記録媒体等に格納されて提供される。【０１６２】
また、管理プログラムは、ネットワーク４上のネットワークストレージ３又はその他のファイルサーバ、アプリケーション提供サイトに格納されていて、ユーザ端末２からダウンロードして、インストールすることができる。このように、管理プログラムは、任意の方法で提供される。管理プログラムは、ユーザ端末２にインストールされて（ステップ３０）、所定の手順で、管理プログラムのライセンス認証、ユーザ端末２の端末認証、ユーザ認証が行われる（ステップ３１）。【０１６３】
これらの認証は、全て正常に認証されてから、ユーザ端末２を利用する準備ができる。このとき、ユーザ端末２において、ＲＡＭディスク７が主記憶装置５内に設定される（ステップ３２）。ＲＡＭディスク７の設定は、本例では、ドライバウェア３４に内蔵されたＲＡＭディスク制御部５８によって行われている。この設定の仕方については、上述している。【０１６４】
また、ＲＡＭディスク７の設定が終わると、ネットワークストレージ３と同期するために利用されるクラウド同期部１２が起動され、クラウド用仮想記憶装置１０が設定される（ステップ３３、３４）。クラウド同期部１２は、管理プログラムに同梱される関連プログラムである。このとき、クラウド用仮想記憶装置１０が設定され、オペレーティングシステム３０のＩ／Ｏ機能に登録される。【０１６５】
上述のＲＡＭディスク７の設定、クラウド用仮想記憶装置１０の設定は、その順序が任意で行うことができる。これらの設定が終わると、ユーザ端末２はネットワーク４に接続され、ネットワークストレージ３に接続され（ステップ３５）、ユーザ認証等が行われる（ステップ３６）。この認証が正常に終了すると、ネットワークストレージ３にユーザ端末２が接続され、ユーザ端末２からネットワークストレージ３にファイル等の電子データを送信し保存すること、又は、ネットワークストレージ３から電子データを受信することが可能になる（ステップ３７）。【０１６６】
言い換えると、ネットワークストレージ３にユーザ端末２からファイルアップロード又はダウンロードが可能になる。これらのライセンス認証、端末認証、ユーザ認証（ユーザ端末、ネットワークストレージ）は、公知のものであり、詳細な説明は省略する。以下、このような利用準備ができた状態をベースにして説明をする。【０１６７】
図７は、管理プログラムが制御モードをオンにするときの動作を示すフローチャートである。管理プログラムには電子計算機を制御する制御モードがある。管理プログラムの制御モードをＯＮにして、電子計算機の制御が行われる。管理プログラムの制御モードをＯＦＦにすると、インストールされている管理プログラムは電子計算機の制御を行わず、電子計算機は従来通り動作する。
【０１６８】
図７に図示したように、管理プログラムがインストール後、制御モードをオンにする（ステップ５０）。このとき、管理プログラムは、ユーザ端末２に接続されている補助記憶装置を確認する（ステップ５１）。このとき、ＲＡＭディスク７とクラウド用仮想記憶装置１０の確認も行われる。この確認は、オペレーティングシステム３０に認識されている補助記憶装置の中で、ＲＡＭディスク７とクラウド用仮想記憶装置１０が含まれているか否かで確認する。
【０１６９】
ユーザ端末２に内蔵された補助記憶装置６への書き込みを禁止に設定する（ステップ５２）。このとき、ＵＳＢメモリ、リムーバブルドライブ、フレキシブルディスクドライブ、外付補助記憶装置２９（図２を参照。）等の記憶装置は、書き込み禁止に設定される。言い換えると、ユーザ端末２からデータを持ち出しできるような記録手段に対して、データ記録の制限をする。ＲＡＭディスク７とクラウド用仮想記憶装置１０は、書き込みを禁止にしない。【０１７０】
また、内蔵された補助記憶装置６は、オペレーティングシステム３０の動作に必要なものであり、書き込み禁止等のアクセス制限を受けない。よって、アプリケーションプログラム３３又はオペレーティングシステム３０からは、これらのデータ記録の制限を受けた記憶装置にデータを書き込みしようとするとき、ドライバウェア３４がこれを検知して書き込みの動作を中止させる。【０１７１】
管理プログラムは、ネットワーク４へ通信する通信ポートの設定を行う（ステップ５３）。ネットワーク４へ通信としては、ネットワークカード３７を介してインターネット、ＬＡＮ等への有線又は無線通信、コンピュータ同士の有線又は無線通信が含まれる。この設定では、ユーザ端末２に必要な通信ポートのみが使用許可され、不必要なポートが通信禁止にされる。【０１７２】
これは、ユーザや管理者等が選択設定するものであり、管理プログラムがインストールされるとき、又は、その制御モードをＯＮにするとき、ユーザが選択できる。ユーザ端末の上記の通信ポート以外のインターフェースは使用禁止に設定される。例えば、ＵＳＢ、ＳＣＳＩ、ＩＤＥ、ＲＳ−２３２Ｃ規格のインターフェースは使用禁止に設定される（ステップ５４）。【０１７３】
更に、管理プログラムは、コピー＆ペースト、クリップボードの使用、ネットワーク機能、スクリーンキャプチャの使用は使用禁止にする（ステップ５５）。しかし、ユーザ、管理者等は、これらを全部又は一部を使用したい場合は、それを使用禁止にしない。最後は、管理プログラムは、オペレーティングシステム３０の正常な動作に必要なプロセスを指定し、例外設定をする（ステップ５６）。【０１７４】
例えば、オペレーティングシステム３０の動作に必要なSystemプロセス等を動作可能にする。管理プログラムが制御モードをオンにした後の、ステップ５１〜ステップ５６の各種の設定は、必ずしもこの順番で行う必要はなく、状況に応じて自由自在に組み合わせることができる。これらの設定が終わると、管理プログラムは、ＲＡＭディスク７の設定を行う（ステップ５７）。【０１７５】
ＲＡＭディスク７の設定では、複数のＲＡＭディスク７がある場合、作業ドライブとして利用するメインディスクを選択設定し、クラウド用仮想記憶装置１０に対応する作業フォルダをＲＡＭディスク７内に作成又は設定する。クラウド用仮想記憶装置１０は、ネットワークストレージ３の仮想記憶装置として設定されており、アプリケーションプログラム３３、オペレーティングシステム３０等に対しては、パスが設定されているだけである。【０１７６】
このパスにアクセスすると、実体データはネットワークストレージ３からダウンロードされ、ＲＡＭディスク７に格納されるので、ＲＡＭディスク７の設定では、ＲＡＭディスク７をクラウド用仮想記憶装置１０にマッピングするための設定をする。また、ＲＡＭディスク７に格納されたユーザデータをネットワークストレージ３へ転送するときの各種設定が行われる。クラウド用記憶装置１０に関する設定が行われる（ステップ５８）。【０１７７】
例えば、ユーザデータに関して、暗号する暗号鍵の設定、転送するタイミング（特定時間、間隔等）、通信速度、優先度等を設定するが、管理者はこれらの設定を必要に応じて選択することができる。管理プログラムは、起動しているプロセスのプロセス名、プロセスＩＤを取得する（ステップ５９）。管理プログラムは、取得したプロセス名とプロセスＩＤをプロセス制御リスト（表１を参照。）に保存する。プロセス制御リストには、ファイルパスの条件として、その保存先又は作業フォルダが指定される。【０１７８】
本例では、「Application 1」は、「e:\」を設定している。クラウド用記憶装置１０は、ネットワークストレージ３のネットワークドライブをマウントするイメージであり、「e:」のようなドライブ名を割り当て、アプリケーションプログラム３３がこのドライブにアクセスし、任意のフォルダを自由に読み書きできる。【０１７９】
これにより、アプリケーションプログラム３３が起動され、ユーザ端末２で作業が行われる。よって、アプリケーションプログラム３３とオペレーティングシステム３０の処理結果、処理されたユーザデータは、クラウド用記憶装置１０へ保存されるよう設定になるが、実体は、ＲＡＭディスク７に格納される。【０１８０】
ドライバウェア３４とクラウド同期部１２は、ＲＡＭディスク７を常時監視しており、ネットワークストレージ３と同期するためのデータは、クラウド用仮想記憶装置１０へのアクセス要求に連動して、暗号化され、最終的に、ネットワークストレージ３へ送信される。この作業は、管理プログラムで、制御モードをＯＦＦにするまでに継続する。管理プログラムの制御モードがＯＮになると、ユーザ端末２の起動と同時に、管理プログラムが自動的に起動して、制御モードがＯＮの状態で動作する。【０１８１】
管理プログラムの制御モードを意図的にＯＦＦに設定しない限り継続する。管理プログラムの制御モードをＯＦＦにすると、上述設定した設定を全て解除する。
【表１】
0006949338.tif 000002
【０１８２】
［制御部の動作］
図８には、制御部５２の動作のフローチャートを図示している。ドライバウェア３４が制御モードをオンにするように指示されると、制御部５２はこの指示を受信し、ファイルアクセスを全て禁止する命令を送信する（ステップ７０）。この命令は、ネットワーク制御部５６、ファイルシステム制御部５７、ＲＡＭディスク制御部５８、クラウド同期部１２に送信される。
【０１８３】
ネットワーク制御部５６、ファイルシステム制御部５７、ＲＡＭディスク制御部５８は、この命令を受信して、ファイルアクセスを禁止にする。また、制御プロセスの設定、ネットワーク利用の禁止、クリップボードの利用禁止、スクリーンキャプチャの使用禁止、コピーアンドペースト機能の禁止等を行う。エグゼキュティブ４１（図４参照）のプロセスマネージャーが実行されている全てのプロセスを管理している。【０１８４】
ここに、コールバック関数を登録（カーネル４０のＡＰＩを利用）することで、プロセスの起動・終了のイベントを取得する。実行するプロセスの起動・終了イベントに対して、コールバック関数を設定し、アプリケーションプログラム３３の起動と終了を検出できるように設定する。アプリケーションプラットフォームプログラム３８が動作しているとき、アプリケーションプログラム３３が起動する（ステップ７１）。【０１８５】
アプリケーションプラットフォームプログラム３８は、アプリケーションプログラム３３の起動を検出する（ステップ７２）。CreateProcessのSUSPEND（サスペンド）モードでアプリケーションプログラム３３のプロセスが起動され、アプリケーションプラットフォームプログラム３８は、このプロセスのハンドルとプロセスＩＤを取得する（ステップ７３）。【０１８６】
プロセスがCreateProcessのサスペンドモードで起動されると、一時休止した状態になり、再開されるまでに実行されない。ハンドルは、CreateProcessから戻されるプロセスハンドルである。アプリケーションプラットフォームプログラム３８は、取得したハンドルとプロセスＩＤを制御部５２に送信する。プロセスが起動されると、ファイルシステム制御部５７内のコールバック関数を実行し、制御部５２へ制御開始を通知する。【０１８７】
制御部５２は、ハンドルとプロセスＩＤを取得する。この取得の詳細な動作について後述する。制御部５２は、ファイルシステム制御部５７へハンドルとプロセスＩＤを送信し、プロセスＩＤを利用して、管理テーブルを参照し、管理テーブルの値に従って、ファイルアクセスを許可する設定を行う。ファイルアクセスを許可するように設定する項目はプロセスＩＤ、プロセス名、ファイル名、フォルダ名、ファイル操作である。【０１８８】
ファイル操作に指定される設定は、読み込み専用（Read Only）と、読み込み書き込み（Read/Write）とのいずれかを許可する設定である（ステップ７４）。これらの一連の設定が終わると、取得したハンドルを使って、サスペンドプロセスを再開する（ステップ７５）。アプリケーションプログラム３３が動作される。そして、制御部５２は、アプリケーションプログラム３３が終了するときにオペレーティングシステム２１から発される通知である終了イベントを待機する（ステップ７６）。【０１８９】
アプリケーションプログラム３３が終了すると、ファイルシステム制御部５７内のコールバック関数を実行し、制御部５２へ制御解除を通知する。ファイルシステム制御部５７は、プロセス制御リスト（表１を参照。）によって行われていた制御解除をし、それ以後は、このアプリケーションプログラム３３の制御を行わない。無論、このアプリケーションプログラム３３がユーザデータにアクセスしたときは、制御が再開される。【０１９０】
図９には、アプリケーションプログラム３３が終了するときの制御部５２の動作のフローチャートを図示している。アプリケーションプログラム３３が終了するとき、終了イベントが発生されるアプリケーションプラットフォームプログラム３８、終了イベントのプロセスＩＤを取得する（ステップ９０）。アプリケーションプラットフォームプログラム３８は、終了イベントのプロセスＩＤを制御部５２に送信する。【０１９１】
制御部５２は、終了イベントのプロセスＩＤを取得する（ステップ９１）。制御部５２は、ＲＡＭディスク７に格納されたアプリケーションプログラム３３が利用していたユーザデータを取得する（ステップ９２）。このユーザデータは、アプリケーションプログラム３３用に作成された専用のフォルダ８に格納されている。格納先は、プロセス制御リスト（表１を参照。）を参照して特定する。【０１９２】
制御部５２は、このユーザデータをクラウド用仮想記憶装置１０へ転送し格納する（ステップ９３）。クラウド同期部１２は、クラウド用仮想記憶装置１０内のデータを取得して、制御部５２を介して、暗号化部５４で暗号化する（ステップ９４）。そして、暗号化されたデータは、ネットワーク制御部５６へ送信され、最終的にネットワークストレージ３に格納される（ステップ９５）。【０１９３】
このとき、制御部５２は、暗号化したユーザデータを取得し、最終的に、ネットワーク制御部５６を介してネットワークカード３７へ送信される。ユーザデータは、暗号化、暗号化されたデータがネットワークドライバ３７ａへの転送は、カーネルモード３１で処理されているので、高速に処理される。そして、他のアプリケーションプログラム等が直接アクセスできない動作モードなので高度のセキュリティが確保される。結果的に、ユーザデータの外部への漏洩がない。【０１９４】
このように、制御部５２は、アプリケーションプログラム３４、そのイベントを検出して、ＲＡＭディスク７のユーザデータをネットワークストレージ３へ送信する指示を出している。制御部５２は、ＲＡＭディスク７を関していて、所定の期間毎に、新しいアプリケーションプログラム３３が起動したとき、ユーザデータが作成された若しくは変更されたとき、オペレーティングシステム３３又はアプリケーションプログラム３３がエラー発生して、又はエラーを検知したとき等のように、あらゆるタイミングで、ユーザデータをネットワークストレージ３へ送信する指示を出すことができる。【０１９５】
ユーザ端末２において、オペレーティングシステム３０の動作に必要な最低限の実行ファイルとプロセスを制限なしに動作させる必要がある。例えば、プロセスとしては、System、Kernel.exe、explorer.exeが例示できる。制御プロセス名、制御ディレクトリは、プロセス制御リストに登録される。これらのプロセスは、オペレーティングシステム３０が起動するときの設定、つまり、補助記憶装置６のディレクトリが作業フォルダとして設定されている。【０１９６】
そのため、制御部５２は、これらのシステムプロセスから補助記憶装置６を取得し、これをＲＡＭディスク７の該当するフォルダへのアクセスに置き換え、言い換えると、リダイレクトする。プロセス名を取得するには、ZwQueryInformationProcess関数を使い、実行プロセスのイメージパスを取得し、これの実行ファイルexeのファイル名からプロセス名を取得する。プロセスＩＤを取得するには、PsGetCurrentProcessId()関数を使って現在のプロセスのＩＤを取得する。【０１９７】
ファイル名を取得するには、ファイルのＩ／Ｏ要求に関する入出力（Ｉ／Ｏ）要求（ＩＲＰ）から参照されるファイルオブジェクトよりファイル名を取得する。イベントの検出は、次のように行われる。オペレーティングシステム３０のカーネル３１内のＩ／Ｏ要求は、ＩＲＰ（IO Request Packet）の形式で行われる。ファイルアクセスに関しては、次の表２に示すＩＲＰが利用される。このＩＲＰを対象にコールバック関数を設定することで、イベント検出を行う。【０１９８】
コールバック関数は、エグゼキュティブ４１のプロセスマネージャーに登録され、コールバック関数が実行されると参照先のドライバウェア３４に制御が移動される。
【表２】
0006949338.tif 000003
【０１９９】
ユーザデータは、基本的にアプリケーションプログラム３３から呼び出されて、主記憶装置５に展開されて利用される。ユーザデータを呼び出すアクションのとき、アプリケーションプログラム３３は、クラウド用仮想記憶装置１０からアクセス要求を出す。ユーザデータの実態はネットワークストレージ３に格納されており、この要求が出されると、ネットワークストレージ３からダウンロードされ、ＲＡＭディスク７に格納される。【０２００】
また、アプリケーションプログラム３３は、作業を終了し、ユーザデータを保存するとき、同じく、クラウド用仮想記憶装置１０に保存する要求を出力するが、ユーザデータの実体は、主記憶装置５からＲＡＭディスク７に保存され、更に、ＲＡＭディスク７からネットワークストレージ３へ転送されてアップロードされる。アップロードが成功しなかった場合、リトライする。【０２０１】
図１０のフローチャートを参照しながら、アプリケーションプログラム３３がユーザデータを利用する流れの例を説明する。まず、アプリケーションプログラム３３は、予め設定された設定値又はユーザによる操作に基づいて、ユーザデータのファイル（以下、データファイルという。）にアクセスを開始する（ステップ１１０）。データファイルは、ネットワークストレージ３、詳しくはフォルダ１１、に保存されている。【０２０２】
そのため、アプリケーションプログラム３３は、クラウド用仮想記憶装置１０（フォルダ１１）のアドレスとデータファイルのファイル名からなるアドレスを利用して、ファイルアクセスの要求を出力する（ステップ１１１）。アプリケーションプログラム３３から出力されたファイルアクセス要求は、オペレーティングシステム３０の入出力機能に送信される（ステップ１１２）。【０２０３】
ファイルアクセス要求は、オペレーティングシステム３０の入出力機能によって、ファイルシステムへ送信され、ファイルシステムドライバ３９へ送信される（ステップ１１３）。オペレーティングシステム３０のユーザモード３２においてアプリケーションプラットフォームプログラム３８、又は、カーネルモード３１においてドライバウェア３４によって、ファイルアクセス要求が検知され、制御部５２に送信される（ステップ１１４）。【０２０４】
ファイルアクセス要求は、ファイルシステムドライバ３９へ送信され（ステップ１１５）、クラウド用仮想ディスクドライバ１０ａに送信される（ステップ１１６）。クラウド用仮想記憶装置１０は、ネットワークストレージ３と同期されているので、この同期をクラウド同期部１２が制御している。クラウド用仮想ディスクドライバ１０ａは、ファイルアクセス要求を受信すると、これをクラウド同期部１２へ通知する（ステップ１１７）。【０２０５】
クラウド同期部１２は、ネットワーク制御部５６とネットワークドライバ３７ａ、ネットワークカード３７を介して、ネットワークストレージ３にアクセスし（ステップ１１８）、要求されたデータファイルを取得し（ステップ１１９）、ＲＡＭディスク７に格納する（ステップ１２０）。この格納が終了すると、クラウド同期部１２は、クラウド用仮想ディスクドライバ１０ａへ通知する（ステップ１２１）。【０２０６】
クラウド用仮想ディスクドライバ１０ａは、クラウド用仮想記憶装置１０から、要求されたデータファイルを取得して、ファイルアクセス要求の送信元へデータファイルを送信する（ステップ１２２）。データファイルは、ＲＡＭディスクドライバ７ａ、ファイルシステムドライバ３９、ドライバウェア３４を経てオペレーティングシステム３０の入出力機能を経て、アプリケーションプログラム３３へ送信され、結果的に、アプリケーションプログラム３３はデータファイルを取得し、その処理を行う（ステップ１２３）。【０２０７】
ファイルシステム制御部５７は、アプリケーションプログラム３３によるＲＡＭディスク７内のデータファイルの更新状況を監視しており、データファイルがクローズされると、データファイルをＲＡＭディスク７からネットワークストレージへ送信する（ステップ１２４）。アプリケーションプログラム３３は、ＲＡＭディスク７へアクセスするとき、ドライバウェア３４を必ず介するので、ドライバウェア３４はＲＡＭディスク７へデータファイルを格納するときこれを暗号化部５４で暗号化する。【０２０８】
また、ＲＡＭディスク７からデータファイルを受信するとき、ドライバウェア３４はこれを復号化部５５で復号化してアプリケーションプログラム３３へ送信する。ユーザデータはＲＡＭディスク７からネットワークストレージ３へアップロードするとき、通信障害等によってアップロードが成功しなかった場合、リトライする。つまり、ユーザ端末２とネットワークストレージ３との接続が回復し正常になったとき、又は、通信障害が起きてから若しくはアップロードが成功しなかった時間から所定時間待機してから、リトライする。【０２０９】
［サスペンドモード］
電子計算機を所定時間以上に使用しないとき、中央処理装置（ＣＰＵ）、ディスプレイ、ＨＤＤ等のコンポネントの電源を切り、一時休止状態になり、電力消費量を減らすことがある。このとき、電子計算機での作業状態となる主記憶装置の内容が補助記憶装置に保存されて、電源が殆ど使われない状態になる。電子計算機を再起動するとき、保存された作業状態（作業データ）が主記憶装置に読み出されるので、電子計算機が高速に起動することができる。【０２１０】
主記憶装置の内容となる作業データが補助記憶装置に保存された状態の電子計算機は、サスペンドモードにあるという（以下、単にサスペンドモード又はサスペンド機能という。）。このようなサスペンドモードはオペレーティングシステムの種類によって、スリープ、スリープモード、一時休止状態等と呼ぶこともある。【０２１１】
以下に説明するサスペンドモードに入る動作、サスペンドモードから起動する動作、これらのとき作業データを補助記憶装置に格納する動作、補助記憶装置から作業データを呼び出す動作、補助記憶装置の作業データと一時ファイルを削除する動作、ＲＡＭディスク上の作業データを削除する動作、ＲＡＭディスクを初期化する動作は、上述のドライバウェア３４、管理プログラム等によって監視され、制御される。よって、ドライバウェア３４、管理プログラムの機能について、ユーザ端末２として説明し、詳しい説明は省略する。【０２１２】
図１１は、ユーザ端末２がサスペンドモードに入るときの動作を示すフローチャートである。ユーザ端末２は電源をスリープ、シャットダウン、再起動等をユーザが操作し指示する電源管理操作部（オペレーティングシステムのホーム画面上）を有している。ユーザはユーザ端末２のこの電源管理操作部からスリープを選択し、ユーザ端末２がスリープ状態を開始する指示をすることにより、ユーザ端末２のサスペンドモードがユーザの指示によって開始される（ステップ１３０）。
【０２１３】
ノート型の電子計算機のように、画面を閉じるとユーザ端末２のサスペンドモードが自動的に開始されるともあり、これはユーザにより指示されたものと同一に扱うことができる。またはユーザ端末２のバッテリーの充電容量が少なくなり、ユーザ端末２での通常の作業ができなくなるレベルに下がる、言い換えるとバッテリー不足になるとき、ユーザ端末２のオペレーティングシステムがスリープへ自動遷移する。このように、ユーザ端末２は自動的にサスペンドモードを開始する（ステップ１３０）。
【０２１４】
ユーザ端末２は補助記憶装置６の空き容量を確認する（ステップ１３１）。この確認は、ドライバウェア３４、ファイルシステムドライバ３９を介して行われるか、形式的に階層としては通過する。主記憶装置５は基本的にユーザ端末２の動作中に変更されることはなく、ユーザ端末２が動作開始時、言い換えるとオペレーティングシステムが開始された時点でその容量が確定している。そのため、オペレーティングシステムの設定上、スリープ時のデータ保存領域が補助記憶装置６上に確保される。
【０２１５】
補助記憶装置６に主記憶装置５の内容を保存する十分な空き容量があるとき、主記憶装置５の内容を補助記憶装置６に書き込み保存する（ステップ１３２、１３３）。これにより、主記憶装置５の一部に設定されているＲＡＭディスク７の内容がそのまま補助記憶装置６に保存されることになる。ＲＡＭディスク７は、ドライバウェア３４の暗号化ドライバによって、常時暗号化されており、そのためＲＡＭディスク７がスリープモードに入るとき補助記憶装置６に保存されるとき暗号化されたままに保存される。
【０２１６】
ＲＡＭディスク７は暗号化されたまま補助記憶装置６に保存されるので、個人情報等の機密データが漏洩することがない。補助記憶装置６に主記憶装置５の内容を保存する十分な空き容量がないとき、ユーザ端末２は作業データを保存せずサスペンドモードを開始する（ステップ１３４）。【０２１７】
図１２は、ユーザ端末２がサスペンドモードの状態から起動するときの動作を示すフローチャートである。ユーザ端末２はユーザの操作、自動設定等によって起動を開始する（ステップ１４０）。ユーザ端末２は起動するとき、補助記憶装置６にサスペンドモードに入るときに保存された主記憶装置５の内容データは、補助記憶装置６から読みだされて主記憶装置５へ展開される。これにより、ユーザ端末２がサスペンドモードに入る前の状態が復元されるが、オペレーティングシステムの通常の認証に加え、ＲＡＭディスク７へのアクセスための個人認証を行う。
【０２１８】
オペレーティングシステム３０の初期画面がディスプレイに表示され、オペレーティングシステムの通常の認証が行われる。そして、ユーザ端末２が起動してから、ＲＡＭディスク７へアクセスする初回の要求があるとき、ドライバウェアはこのアクセス要求をトリガとして、ドライバウェアはユーザ認証を開始する（ステップ１４１）。ユーザが入力した認証用の認証データをユーザ端末２（ドライバウェア）が取得し、ユーザ認証が行われる（ステップ１４２）。【０２１９】
ユーザ認証はパスワード認証手段、指紋認証手段、顔認証手段、認証サーバによるサーバ認証手段、ＩＣカード認証手段、静脈認証手段、虹彩認証手段、２要素認証手段等の汎用の認証手段を利用する。ユーザ認証が成功したか否かを確認し、成功するとユーザ端末２はディスプレイにユーザ端末２のサスペンドモード前の状態が表示される。言い換えると、ＲＡＭディスク７へのアクセスが許可され、ユーザ端末２が通常動作する（ステップ１４３、ステップ１４４）。そして、ユーザ端末２は次の作業に移行する（ステップ１４９）。
【０２２０】
ユーザ認証が成功しない場合、サスペンドモードに入るときに保存されたＲＡＭディスク７の中のファイル、またはＲＡＭディスク７を削除する（ステップ１４５）。同じく、サスペンド機能時に保存されたオペレーティングシステム３０の作業データ、言い換えると、ＲＡＭディスク７以外のものであるハイバネーションファイル（hiberfil.sys）等は初期設定によって又はユーザの指示によって、ユーザ端末２が補助記憶装置６から削除する（ステップ１４６）。【０２２１】
ユーザ認証が成功しない場合、ユーザ認証に必要な認証データは、認証サーバ上の認証機構において失効されていることがある。これは、ユーザ端末２が紛失され、ユーザが認証に必要なデータを認証機構に通知し無効にするためである。そのため、紛失されたユーザ端末２に再度にログインしようとするとき、サスペンドモード時に保存されたＲＡＭディスク７及び／又は作業データを削除又は初期化する。【０２２２】
また、ユーザ端末２の正規のユーザではない者がアクセスしようとするとユーザデータを削除又は初期化する。その後、ユーザ端末２が終了し（ステップ１４７）、次の操作を待機する（ステップ１４８）。【０２２３】
図１３は、ユーザ端末２がサスペンドモードの状態から起動する動作の他の例を示すフローチャートである。ユーザ端末２はユーザの操作、自動設定等によって起動を開始する（ステップ１６０）。ユーザ端末２は起動するとき、補助記憶装置６に保存された作業データ（主記憶装置５の内容）が主記憶装置５に読み出されて、オペレーティングシステム３０の初期画面がディスプレイに表示される。そして、ユーザ認証が開始される（ステップ１６１）。
【０２２４】
ユーザが入力した認証用の認証データをユーザ端末２が取得し、ユーザ認証が開始される（ステップ１６２）。ユーザ認証が成功したか否かを確認し、成功するとユーザ端末２はディスプレイにユーザ端末２のサスペンドモードに入る前の状態が表示され、ユーザ端末２が通常起動する（ステップ１６３、ステップ１６４）。そして、ユーザ端末２は次の作業に移行する（ステップ１７０）。【０２２５】
ユーザ認証が成功しない場合、ユーザ端末２が初期化作業を開始する（ステップ１６３→ステップ１６５）。まず、アプリケーションプログラム３３を初期化する（ステップ１６６）。これは、サスペンド機能時に作業データが保存されたアプリケーションプログラム３３が対象になる。この初期化は、アプリケーションプログラム３３の一時保存されたデータ（ＲＡＭディスク７の内容で一時保存されたデータで補助記憶装置６にサスペンド時に保存されたデータ）を削除する。
【０２２６】
また、サスペンド機能時に保存されたアプリケーションプログラム３３の作業データが補助記憶装置６にあれば、ユーザ端末２がそれを削除する。ユーザ認証が成功しない場合、ユーザ端末２が紛失された又は不正アクセスの可能性がり、ユーザデータ、特に機密データを保護するために、ＲＡＭディスク７も含めユーザ端末２を自動的に初期化する。ユーザ端末２がＲＡＭディスク７の初期化を行う（ステップ１６７）。このとき、ＲＡＭディスク７の一時保存されたデータが補助記憶装置６にあれば、ユーザ端末２はそれを削除する。
【０２２７】
また、サスペンドモードに入る時に保存されたＲＡＭディスク７のデータ、それに関連するデータが補助記憶装置６にあれば、ユーザ端末２がそれを削除する。その後、補助記憶装置６に保存された一時ファイルを削除する（ステップ１６８）。最後に、ユーザ端末２が終了する（ステップ１６９）。そして、ユーザはユーザ端末２を再度起動する等の次の操作を待機する（ステップ１７０）。【０２２８】
図１４は、ユーザ端末２が特定の条件を満たすとき、データを制御する手順を示すフローチャートである。この制御では、アプリケーションプログラム３３の作業データの削除、オペレーティングシステム３０の作業データの削除、ＲＡＭディスク７の初期化等である。制御する条件は、表２のタイムテーブル情報に基づく。表２の第１欄は順番を、第２欄は制御項目を、第３欄は制御項目の条件を、第４欄は該条件を満たすときの制御の種類を示している。【０２２９】
ドライバウェア３４と上述の管理プログラムによってユーザ端末２の位置情報をユーザ端末２に搭載された位置情報手段から取得して監視している。この監視において、表２の制御項目の位置情報に該当する制御を行う。位置情報手段としては、移動通信基地局と通信するための無線通信手段、全地球位置システムから位置情報を取得するための位置情報デバイス、インターネット等の通信ネットワークからＩＰアドレスを取得するための通信デバイス等を利用する。【０２３０】
例えば、表３の制御項目の位置情報においては、位置情報デバイスが全地球位置システムから取得した位置情報がその条件が設定された許可範囲以内か許可範囲外かを判定し、制御の種類に示す制御を行う（表３の番号の１、２を参照）。ここで言う許可範囲とは、事前に設定した地域範囲又は場所を意味する。表３の制御項目の時間帯においては、ドライバウェア３４と上述の管理プログラムによって時間情報を時間情報手段から取得して監視する。【０２３１】
時間情報手段はユーザ端末に搭載された時計手段、上述の無線通信手段、位置情報デバイス、通信デバイス等を利用する。位置情報がその条件が設定された許可範囲以内か許可範囲外かを判定し、制御の種類に示す制御を行う（表３の番号の３，４を参照）。これは、ユーザ端末２を許可された時間帯のみに利用することを目的にするとき有効である。時間帯の許可範囲外は、例えば、深夜、勤務時間外、休憩中、休養中等が例示できる。【０２３２】
これは労働管理、機密性の情報にアクセス時間帯を設定して管理するとき等に利用することができる。また、時間帯情報にユーザの認証情報を合わせて制御することができる（表３の番号の５〜８を参照）。表３の番号の９、１０に示すように、認証デバイスを利用して制御することができる。認証デバイスはユーザ端末２と通信しており、認証デバイスとユーザ端末２が所定距離離れたか否かで条件を判定し、制御の種類に示す制御を行う。
【表３】
0006949338.tif 000004
【０２３３】
上述のような制御の手順を図１４と表３を参照しながら説明する。ドライバウェア３４と上述の管理プログラムは、ユーザ端末２の情報を取得する（ステップ１８０）。この情報の取得は、位置情報を上述の位置情報手段、時間情報を上述の時間情報手段から取得する。位置情報手段がユーザ端末２に内部搭載されている場合、そのインターフェースからデバイスドライバ３５（図３を参照）を介して取得する。【０２３４】
全地球位置情報システム、無線基地局等のようにユーザ端末２の外部にある場合、ユーザ端末２に内蔵又は外付けのされたもので、これらの位置情報手段と通信するデバイスのインターフェースからデバイスドライバ３５を介して取得する。認証デバイスの場合は、ユーザ端末２に内蔵又は外付けされたもので、認証デバイスと通信するデバイスのインターフェースからデバイスドライバ３５を介して取得する。
【０２３５】
このように取得した情報が表３に示す条件を満たすか否かを確認し判定する（ステップ１８１）。条件を満たさない場合は、基本的にユーザ端末２に制限をかけず使用を許可する（ステップ１８２）。制御の条件を満たす場合、制御を開始するが制御をすぐに実行するか否かを判定する（ステップ１８１→ステップ１８３、ステップ１８４）。これは、ＲＡＭディスク７のデータをネットワークストレージ３に同期する時間が必要か、アプリケーショプログラム３３に支障があるか否か等によって決定する。【０２３６】
制御実行がすぐに行われる場合は、制御の種類に示す制御を実行する（ステップ１８５）。表３の制御の種類に示す制御を行う。制御の種類に示す制御は、上述の図１２及び図１３とその説明の通りであるので、詳細は省略する。制御の実行が終わったらユーザ端末２が切電され終了する（ステップ１８６）。制御の実行がすぐに行われない場合は、設定時間の制御を実行する（ステップ１８７）。このときドライバウェア３４でデータ同期、アプリケーションプログラムの実行が終わる時間を計算し、時間を設定することで設定時間が決定される。
【０２３７】
又は、ドライバウェア３４でデータ同期、アプリケーションプログラムの実行が終了するのを監視して、終了後、制御の実行を行うことができる。表３に示す第１時間帯と第２時間帯は、任意に設定することができる。例えば、第１時間帯は「０９時００分００秒〜１７時００分００秒」、「０９時００分００秒〜１２時００分００秒  and  １３時００分００秒〜１７時００分００秒」等のように勤務時間にし、これに平日、労働許可日等を組み合わせてもよい。また、「０９時００分００秒〜０９時３０分００秒」のように短時間でもよい。
【０２３８】
第２時間帯は「１７時００分００秒〜０９時００分００秒」、「２４時００分００秒〜０６時００分００秒」等のように第１時間帯外、夜間時間等のように設定することができる。また、カレンダーの休日と祝日、ユーザの休憩時間、ユーザの休養日、出張日等のように基本的に、ユーザ端末２の利用が好ましくない期間、時間帯を設定することができる。第１時間帯と第２時間帯は一例であり、管理者が任意に設定することができる。【０２３９】
認証デバイスは、ユーザ端末２と無線通信又は有線通信できる識別用のデバイスであり、例えば、携帯電話機、時計型の機器、ペン型の機器、ＵＳＢキー、スマートフォン、スマート時計等が例示できる。これらの機器は、識別番号等を基本的に暗号してユーザ端末２と通信をすることで、認証デバイスがユーザ端末２に接続されているか又はその付近にあるかを判定する。【０２４０】
認証デバイスとユーザ端末２との認証は、１つの識別番号を利用する１段階、又は、２つ識別番号を利用する２要素認証となる２段階にする。認証デバイスの使用について、出願人が出願した特願２０１５−１３８３３６号公報に詳しく記載しており、この内容が本発明に含まれる。
【産業上の利用可能性】
【０２４１】
本発明は、電子データの緊密な管理が必要な分野に利用すると良い。特に、高度なデータ管理が要求される分野、例えば、電子計算機リース業、印刷業界、保険会社、販売店、金融機関、原子力関連の施設、個人データを扱う端末等の分野に利用されると良い。
【符号の説明】
【０２４２】
１…電子計算機用電子データ管理システム
２…ユーザ端末
３…ネットワークストレージ
４…ネットワーク
５…主記憶装置
６…補助記憶装置
６ａ…ディスクドライバ
７…ＲＡＭディスク
７ａ…ＲＡＭディスクドライバ
８、９、１１…フォルダ
１０…クラウド用仮想記憶装置
１０ａ…クラウド用仮想ディスクドライバ
１２…クラウド同期部
２０…本体
２１…中央処理装置（ＣＰＵ）
２２…入力インターフェース
２３…出力インターフェース
２４…バス
２５…補助記憶装置用インターフェース
２６…電源ユニット
２７…入力装置
２８…出力装置
２９…外付補助記憶装置
３０…オペレーティングシステム
３１…カーネルモード
３２…ユーザモード
３３…アプリケーションプログラム
３４…ドライバウェア
３５…デバイスドライバ
３６…デバイス
３７…ネットワークカード
３７ａ…ネットワークドライバ
３８…アプリケーションプラットフォームプログラム
３９…ファイルシステムドライバ
４０…カーネル
４１…エグゼキュティブ
４２…サブシステム
４３…キーボードポート
４３ａ…キーボードドライバ
４４…マウスポート
４４ａ…マウスドライバ
４５…キーボード
４６…マウス
４７…ハードウェア抽象化層（ＨＡＬ）
５１…アプリケーションプログラムインターフェース部
５２…制御部
５３…ログ取得部
５４…暗号化部
５５…復号化部
５６…ネットワーク制御部
５７…ファイルシステム制御部
５８…ＲＡＭディスク制御部
５９…入力装置制御部
６０…デバイスドライバ制御部
【図１】
0006949338.tif 000005
【図２】
0006949338.tif 000006
【図３】
0006949338.tif 000007
【図４】
0006949338.tif 000008
【図５】
0006949338.tif 000009
【図６】
0006949338.tif 000010
【図７】
0006949338.tif 000011
【図８】
0006949338.tif 000012
【図９】
0006949338.tif 000013
【図１０】
0006949338.tif 000014
【図１１】
0006949338.tif 000015
【図１２】
0006949338.tif 000016
【図１３】
0006949338.tif 000017
【図１４】
0006949338.tif 000018