IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ サイエンスパーク株式会社の特許一覧

特開2022-131749電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体
<>
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図1
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図2
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図3
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図4
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図5
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図6
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図7
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図8
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図9
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図10
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図11
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図12
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図13
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図14
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図15
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図16
  • 特開-電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022131749
(43)【公開日】2022-09-07
(54)【発明の名称】電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体
(51)【国際特許分類】
   G06F 21/62 20130101AFI20220831BHJP
【FI】
G06F21/62 318
【審査請求】未請求
【請求項の数】37
【出願形態】OL
(21)【出願番号】P 2021030857
(22)【出願日】2021-02-26
(71)【出願人】
【識別番号】501180263
【氏名又は名称】サイエンスパーク株式会社
(74)【代理人】
【識別番号】100093687
【弁理士】
【氏名又は名称】富崎 元成
(74)【代理人】
【識別番号】100168468
【弁理士】
【氏名又は名称】富崎 曜
(72)【発明者】
【氏名】小路 幸市郎
(57)【要約】      (修正有)
【課題】電子計算機に作業中のユーザデータを保存しないで、ユーザデータの漏洩を防止する電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体を提供する。
【解決手段】電子データ管理システム1において、ユーザ端末2の主記憶装置の一部の記憶領域をRAMディスク11として利用する。作業中のユーザデータは秘密分散され、生成された断片ファイルは、RAMディスク11の分散フォルダ12に格納されてからネットワークストレージ3、携帯端末6、ローカルの補助記憶装置14に転送される。ドライバウェア技術を利用して、電子計算機内でユーザデータの秘密分散、その復元、断片ファイルの転送等をカーネルモードで行う。
【選択図】図1
【特許請求の範囲】
【請求項1】
オペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、後記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信、又は前記デバイスドライバとアプリケーションプログラムとの通信に、共通のインターフェースを提供するための共通インターフェース手段を備えた、ネットワークに接続可能な電子計算機からなり、ユーザデータが前記電子計算機から外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた電子データ管理装置において、
ファイルを秘密分散しn個の断片を生成する分散手段、
m個の前記断片を合成し、元の前記ファイルを復元する復元手段、
前記カーネルモードで動作して、前記電子計算機に揮発性記憶手段を作成するドライブ作成手段、
前記分散手段によって作業ファイルを秘密分散させて前記n個の断片ファイルを生成して前記揮発性記憶手段に格納する断片ファイル生成手段、
前記揮発性記憶手段に格納された前記n個の前記断片ファイルを、複数の不揮発性記憶手段に前記カーネルモードで転送して格納する第1転送手段、
前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルの内の前記m個以上の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納する第2転送手段、及び、
前記第2転送手段によって前記揮発性記憶手段に保存された前記m個以上の前記断片ファイルを取得して前記復元手段で元の前記作業ファイルを生成させ、前記揮発性記憶手段に格納する作業ファイル復元手段
からなることを特徴とする電子データ管理装置。
【請求項2】
請求項1に記載の電子データ管理装置において、
前記分散手段及び前記復元手段は前記カーネルモードで動作し、
前記断片ファイル生成手段は、前記カーネルモードで前記作業ファイルを取得し、前記カーネルモードで前記分散手段に渡して前記秘密分散させ、
前記作業ファイル復元手段は、前記カーネルモードで前記m個以上の前記断片ファイルを取得し、前記カーネルモードで前記復元手段に渡して前記作業ファイルを復元させる
ことを特徴とする電子データ管理装置。
【請求項3】
請求項1に記載の電子データ管理装置において、
前記分散手段及び前記復元手段は前記ユーザモードで動作し、
前記断片ファイル生成手段は、前記カーネルモードで前記作業ファイルを取得し、前記ユーザモードで前記分散手段に渡して前記秘密分散させ、
前記作業ファイル復元手段は、前記カーネルモードで前記m個以上の前記断片ファイルを取得し、前記ユーザモードで前記復元手段に渡して前記作業ファイルを復元させる
ことを特徴とする電子データ管理装置。
【請求項4】
請求項1に記載の電子データ管理装置において、
前記第1転送手段は、前記揮発性記憶手段に格納された前記n個の前記断片ファイルを前記カーネルモードで取得し、前記ユーザモードで前記複数の前記不揮発性記憶手段に転送し、
前記第2転送手段は、前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルを前記ユーザモードで取得し、前記n個の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納する
ことを特徴とする電子データ管理装置。
【請求項5】
請求項1乃至4の中から選択される1項に記載の電子データ管理装置において、
前記作業ファイル及び前記n個の前記断片ファイルそれぞれは、同じディレクトリ構造を有する作業ドライブ又は作業フォルダに格納される
ことを特徴とする電子データ管理装置。
【請求項6】
請求項1乃至4の中から選択される1項に記載の電子データ管理装置において、
前記第1転送手段による前記n個の前記断片ファイルの転送が完了し、かつ、前記アプリケーションプログラムが終了したとき、前記作業ファイル、前記揮発性記憶手段、作業ドライブ及び前記作業フォルダの内1以上を削除する削除手段を有する
ことを特徴とする電子データ管理装置。
【請求項7】
請求項6項に記載の電子データ管理装置において、
前記n個の前記断片ファイルの内に前記不揮発性記憶手段へ転送ができない前記断片ファイルは、暗号化して、前記電子計算機に内蔵又は接続された不揮発性記憶手段に転送して格納する
ことを特徴とする電子データ管理装置。
【請求項8】
請求項7に記載の電子データ管理装置において、
前記電子計算機が起動するとき、転送が完了していない前記断片ファイルを揮発性記憶手段へ送信する
ことを特徴とする電子データ管理装置。
【請求項9】
請求項1乃至4の中から選択される1項に記載の電子データ管理装置において、
前記電子計算機が起動するとき、前記作業ファイルを秘密分散した前記断片ファイルが該当する全ての前記揮発性記憶手段に格納されているか否かを確認し、全ての前記揮発性記憶手段に格納されていない場合、読み込み可能な前記断片ファイルから前記作業ファイルを復元し、その後新しく復元された作業ファイルを秘密分散し複数の断片ファイルを作成し、前記揮発性記憶手段へ転送する
ことを特徴とする電子データ管理装置。
【請求項10】
請求項1乃至4の中から選択される1項に記載の電子データ管理装置において、
前記揮発性記憶手段は暗号化されている
ことを特徴とする電子データ管理装置。
【請求項11】
請求項1乃至4の中から選択される1項に記載の電子データ管理装置において、
前記不揮発性記憶手段は暗号化されている
ことを特徴とする電子データ管理装置。
【請求項12】
請求項1乃至10の中から選択される1項に記載の電子データ管理装置において、
前記不揮発性記憶手段は、ネットワークストレージ、オンラインストレージサービス用クラウドフォルダ、内蔵補助記憶手段、外付補助記憶手段、ネットワークドライブ、USBデバイス、USB媒体、携帯機器、同期ドライブ、及び、仮想ドライブの中から選択される2以上のものである
ことを特徴とする電子データ管理装置。
【請求項13】
ネットワーク、
前記ネットワークに接続されてユーザデータを格納するネットワークストレージ、
前記ネットワークに接続された電子計算機、
オペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、前記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信、又は前記デバイスドライバとアプリケーションプログラムとの通信に、共通のインターフェースを提供するための共通インターフェース手段を備え、
前記ユーザデータが前記電子計算機から外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた電子データ管理システムにおいて、
ファイルを秘密分散しn個の断片を生成する分散手段、
m個の前記断片を合成し、元の前記ファイルを復元する復元手段、
前記カーネルモードで動作して、前記電子計算機に揮発性記憶手段を作成するドライブ作成手段、
前記分散手段によって作業ファイルを秘密分散させて前記n個の断片ファイルを生成して前記揮発性記憶手段に格納する断片ファイル生成手段、
前記揮発性記憶手段に格納された前記n個の前記断片ファイルを、前記ネットワークストレージを含む複数の不揮発性記憶手段に前記カーネルモードで転送して格納する第1転送手段、
前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルの内の前記m個以上の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納する第2転送手段、及び、
前記第2転送手段によって前記揮発性記憶手段に保存された前記m個以上の前記断片ファイルを取得して前記復元手段で元の前記作業ファイルを生成させ、前記揮発性記憶手段に格納する作業ファイル復元手段
からなることを特徴とする電子データ管理システム。
【請求項14】
請求項1に記載の電子データ管理システムにおいて、
前記分散手段及び前記復元手段は前記カーネルモードで動作し、
前記断片ファイル生成手段は、前記カーネルモードで前記作業ファイルを取得し、前記カーネルモードで前記分散手段に渡して前記秘密分散させ、
前記作業ファイル復元手段は、前記カーネルモードで前記m個以上の前記断片ファイルを取得し、前記カーネルモードで前記復元手段に渡して前記作業ファイルを復元させる
ことを特徴とする電子データ管理システム。
【請求項15】
請求項13に記載の電子データ管理システムにおいて、
前記分散手段及び前記復元手段は前記ユーザモードで動作し、
前記断片ファイル生成手段は、前記カーネルモードで前記作業ファイルを取得し、前記ユーザモードで前記分散手段に渡して前記秘密分散させ、
前記作業ファイル復元手段は、前記カーネルモードで前記m個以上の前記断片ファイルを取得し、前記ユーザモードで前記復元手段に渡して前記作業ファイルを復元させる
ことを特徴とする電子データ管理システム。
【請求項16】
請求項13に記載の電子データ管理システムにおいて、
前記第1転送手段は、前記揮発性記憶手段に格納された前記n個の前記断片ファイルを前記カーネルモードで取得し、前記ユーザモードで前記複数の前記不揮発性記憶手段に転送し、
前記第2転送手段は、前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルを前記ユーザモードで取得し、前記n個の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納する
ことを特徴とする電子データ管理システム。
【請求項17】
請求項13乃至16の中から選択される1項に記載の電子データ管理システムにおいて、
前記作業ファイル及び前記n個の前記断片ファイルそれぞれは、同じディレクトリ構造を有する作業ドライブ又は作業フォルダに格納される
ことを特徴とする電子データ管理システム。
【請求項18】
請求項13乃至16の中から選択される1項に記載の電子データ管理システムにおいて、
前記第1転送手段による前記n個の前記断片ファイルの転送が完了し、かつ、前記アプリケーションプログラムが終了したとき、前記作業ファイル、前記揮発性記憶手段、作業ドライブ及び前記作業フォルダの内1以上を削除する削除手段を有する
ことを特徴とする電子データ管理システム。
【請求項19】
請求項18項に記載の電子データ管理システムにおいて、
前記n個の前記断片ファイルの内に前記不揮発性記憶手段へ転送ができない前記断片ファイルは、暗号化して、前記電子計算機に内蔵又は接続された不揮発性記憶手段に転送して格納する
ことを特徴とする電子データ管理システム。
【請求項20】
請求項19に記載の電子データ管理システムにおいて、
前記電子計算機が起動するとき、転送が完了していない前記断片ファイルを揮発性記憶手段へ送信する
ことを特徴とする電子データ管理システム。
【請求項21】
請求項13乃至16の中から選択される1項に記載の電子データ管理システムにおいて、
前記電子計算機が起動するとき、前記作業ファイルを秘密分散した前記断片ファイルが該当する全ての前記揮発性記憶手段に格納されているか否かを確認し、全ての前記揮発性記憶手段に格納されていない場合、読み込み可能な前記断片ファイルから前記作業ファイルを復元し、その後新しく復元された作業ファイルを秘密分散し複数の断片ファイルを作成し、前記揮発性記憶手段へ転送する
ことを特徴とする電子データ管理システム。
【請求項22】
請求項13乃至16の中から選択される1項に記載の電子データ管理システムにおいて、
前記揮発性記憶手段は暗号化されている
ことを特徴とする電子データ管理システム。
【請求項23】
請求項13乃至16の中から選択される1項に記載の電子データ管理システムにおいて、
前記不揮発性記憶手段は暗号化されている
ことを特徴とする電子データ管理システム。
【請求項24】
請求項13乃至22の中から選択される1項に記載の電子データ管理システムにおいて、
前記不揮発性記憶手段は、ネットワークストレージ、オンラインストレージサービス用クラウドフォルダ、内蔵補助記憶手段、外付補助記憶手段、ネットワークドライブ、USBデバイス、USB媒体、携帯機器、同期ドライブ、及び、仮想ドライブの中から選択される2以上のものである
ことを特徴とする電子データ管理システム。
【請求項25】
オペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、後記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信、又は前記デバイスドライバとアプリケーションプログラムとの通信に、共通のインターフェースを提供するための共通インターフェース手段を備えた、ネットワークに接続可能な電子計算機からなり、ユーザデータが前記電子計算機から外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた電子データ管理装置において、
前記カーネルモードで動作するドライブ作成手段によって、前記電子計算機に揮発性記憶手段を作成し、作成された前記揮発性記憶手段の中に複数の分散フォルダを作成するドライブ作成ステップ、
前記揮発性記憶手段に格納された作業ファイルを、分散手段によって秘密分散し、n個の断片ファイルを生成して前記揮発性記憶手段に格納する断片ファイル生成ステップ、
前記揮発性記憶手段に格納された前記n個の前記断片ファイルを、複数の不揮発性記憶手段に前記カーネルモードで転送して格納する第1転送ステップ、
前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルの内の前記m個以上の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納する第2転送ステップ、及び、
前記第2転送手段によって前記揮発性記憶手段に保存された前記m個以上の前記断片ファイルを取得して前記復元手段で元の前記作業ファイルを生成させ、前記揮発性記憶手段に格納する作業ファイル復元ステップ
からなることを特徴とする電子データ管理装置用プログラム。
【請求項26】
請求項25に記載の電子データ管理装置用プログラムにおいて、
前記分散手段及び前記復元手段は前記カーネルモードで動作し、
前記断片ファイル生成ステップは、前記カーネルモードで前記作業ファイルを取得するステップと、取得した前記作業ファイルを前記カーネルモードで前記分散手段に渡すステップからなり、
前記作業ファイル復元ステップは、前記カーネルモードで前記m個以上の前記断片ファイルを取得するステップと、取得した前記断片ファイルを前記カーネルモードで前記復元手段に渡すステップからなる
ことを特徴とする電子データ管理装置用プログラム。
【請求項27】
請求項25に記載の電子データ管理装置用プログラムにおいて、
前記分散手段及び前記復元手段は前記ユーザモードで動作し、
前記断片ファイル生成ステップは、前記カーネルモードで前記作業ファイルを取得するステップと、取得した前記作業ファイルを前記分散手段に渡すステップからなり、
前記作業ファイル復元ステップは、前記カーネルモードで前記m個以上の前記断片ファイルを取得するステップと、取得した前記断片ファイルを前記復元手段に渡すステップからなる
ことを特徴とする電子データ管理装置用プログラム。
【請求項28】
請求項25に記載の電子データ管理装置用プログラムにおいて、
前記第1転送ステップは、前記揮発性記憶手段に格納された前記n個の前記断片ファイルを前記カーネルモードで取得するステップと、取得した前記n個の前記断片ファイルを前記ユーザモードで前記複数の前記不揮発性記憶手段に転送するステップからなり、
前記第2転送ステップは、前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルを前記ユーザモードで取得ステップと、取得した前記n個の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納するステップからなる
ことを特徴とする電子データ管理装置用プログラム。
【請求項29】
請求項25乃至28の中から選択される1項に記載の電子データ管理装置用プログラムにおいて、
前記作業ファイル及び前記n個の前記断片ファイルそれぞれは、同じディレクトリ構造を有する作業ドライブ又は作業フォルダに格納される
ことを特徴とする電子データ管理装置用プログラム。
【請求項30】
請求項25乃至28の中から選択される1項に記載の電子データ管理装置用プログラムにおいて、
前記第1転送ステップは、前記n個の前記断片ファイルの転送が完了し、かつ、前記アプリケーションプログラムが終了したとき、前記作業ファイル、前記揮発性記憶手段、作業ドライブ及び前記作業フォルダの内1以上を削除する削除ステップを有する
ことを特徴とする電子データ管理装置用プログラム。
【請求項31】
請求項30項に記載の電子データ管理装置用プログラムにおいて、
前記n個の前記断片ファイルの内に前記不揮発性記憶手段へ転送ができない前記断片ファイルを、暗号化して、前記電子計算機に内蔵又は接続された不揮発性記憶手段に転送して格納するステップ
からなることを特徴とする電子データ管理装置用プログラム。
【請求項32】
請求項31に記載の電子データ管理装置用プログラムにおいて、
前記電子計算機が起動するとき、転送が完了していない前記断片ファイルを揮発性記憶手段へ送信するステップ
からなることを特徴とする電子データ管理装置用プログラム。
【請求項33】
請求項25乃至28の中から選択される1項に記載の電子データ管理装置用プログラムにおいて、
前記電子計算機が起動するとき、前記作業ファイルを秘密分散した前記断片ファイルが該当する全ての前記揮発性記憶手段に格納されているか否かを確認するステップ、
前記複数の前記断片ファイルが全ての前記揮発性記憶手段に格納されていない場合、読み込み可能な前記断片ファイルから前記作業ファイルを復元するステップと、
該作業ファイルを秘密分散し複数の断片ファイルを作成するステップと、
この作成された前記複数の前記断片ファイルを前記揮発性記憶手段へ転送するステップ
からなることを特徴とする電子データ管理装置用プログラム。
【請求項34】
請求項25乃至28の中から選択される1項に記載の電子データ管理装置用プログラムにおいて、
前記揮発性記憶手段を暗号化するステップ
からなることを特徴とする電子データ管理装置用プログラム。
【請求項35】
請求項25乃至28の中から選択される1項に記載の電子データ管理装置用プログラムにおいて、
前記不揮発性記憶手段を暗号化するステップ
からなることを特徴とする電子データ管理装置用プログラム。
【請求項36】
請求項25乃至34の中から選択される1項に記載の電子データ管理装置用プログラムにおいて、
前記不揮発性記憶手段は、ネットワークストレージ、オンラインストレージサービス用クラウドフォルダ、内蔵補助記憶手段、外付補助記憶手段、ネットワークドライブ、USBデバイス、USB媒体、携帯機器、同期ドライブ、及び、仮想ドライブの中から選択される2以上のものである
ことを特徴とする電子データ管理装置用プログラム。
【請求項37】
請求項25至36の中から選択される1項に記載された電子データ管理装置用プログラムを記録した電子データ管理装置用プログラムの記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体に関する。更に詳しくは、電子計算機で電子データを揮発性記憶手段内で格納して利用し、電子データを秘密分散手段で分散保持(記憶)することにより、電子データが電子計算機から漏洩することを防止し管理するための電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体に関する。
【背景技術】
【0002】
電子データは、HDD、SSD等の電子計算機の補助記憶装置、CD、フラッシュメモリ等の記録媒体、そして、ネットワーク上のネットワークストレージ等に保存される。ユーザは、操作している電子計算機を利用してこれらの電子データにアクセスし、電子データのファイルを閲覧、編集、新規作成、削除等の処理をする。この電子データとは、静止画データ、動画データ、音声データ、テキスト文書、特定フォーマットの電子文書等を始め広い概念である。
【0003】
個人情報、ビジネスのノウハウ等のデータからなる電子データは、機密性を有するデータである。電子データ、特に機密性を有するデータは、この電子データへのアクセス権限の管理、保護、外部への漏洩防止等の対策を行う必要がある。ここで言う電子計算機は、中央処理装置、主記憶装置、入出力手段、電源供給手段等を備えたものであり、例えば、デスクトップパソコン、ノートパソコン、タブレット、スマートフォン、そしてサーバ等の任意の計算機が例示できる。
【0004】
ユーザは、電子データを外部へ漏洩しないように様々な対策を取っている。電子データを目的以外に利用できないように電子計算機を制御することが電子データ、特に機密データの漏洩防止の観点から重要である。通常、ユーザは、例えば、電子データを暗号化して電子計算機内に、また、外部の補助記憶装置に保存している。
【0005】
近年、電子計算機をネットワークに接続して、ネットワーク上のネットワークストレージに電子データを格納し、ネットワークストレージから電子計算機に電子データをダウンロードして利用することが多くなっている。このようにネットワークストレージのネットワークフォルダに電子データを格納すると、電子計算機の補助記憶装置に電子データを格納する必要がなくなり、いわゆる電子計算機のデータレス利用になる。ただし、ネットワークストレージからダウンロードして利用する電子データは、電子計算機の補助記憶装置等に格納されて利用されることが多い。
【0006】
電子データは、電子計算機又は記録媒体に格納されているとき、様々なルートで外部へ漏洩するリスクがある。例えば、電子データが電子計算機に接続されたフラッシュメモリ等の補助記憶装置に格納されているとき、この補助記憶装置の紛失等により外部(第三者)へ漏洩するリスクがある。また、電子計算機の紛失、盗難等により、利用中の電子データが無くなること、外部の第三者に漏洩することがある。このとき、電子データが暗号化されていても、解読されることがある。
【0007】
このような情報漏洩に対する防止策が様々な形で行われ提案されている。例えば、電子データを電子計算機に接続された補助記憶装置へ格納するとき、電子データを暗号化したり、補助記憶装置を認証したりして対策を講じている(例えば、特許文献1)。特許文献1に開示された内容のデータ管理用のシステムのプログラムは、不揮発性メモリに格納されたクライアントのユーザデータを、それを処理している電子計算機により、目的以外に利用することができないように、その電子計算機を制御している。
【0008】
このシステムにおいて、ユーザデータは電子計算機から承認された不揮発性メモリのみに記録するが、更にその他の手段でも外部へ持ち出さないように電子計算機を制御している。ユーザが電子計算機の補助記憶装置にアクセスするとき、これがあらかじめ設定されたネットワーク上のアドレスへ転送されるリダイレクト機能を利用して、電子データをネットワーク上のフォルダに保存することができる。特に、電子計算機のデータレス化が進んでいる中で、電子計算機で電子データを利用して作業を行っても、それを電子計算機に残さない仕組みが求められている。
【0009】
この電子計算機は、従来から、データレス化のために主記憶装置の一部を疑似補助記憶装置として利用しており、これは仮想ディスク等と呼ばれている。電子計算機の補助記憶装置にデータを書き込むことを禁止して、データを仮想ディスクに書き込むようにしてリダイレクトし、ネットワーク上の仮想ディスクにデータを書き込みしている(特許文献2)。この機能を利用すると、データは、電子計算機のローカルディスクに残さず、ネットワーク上のネットワークストレージ(仮想ドライブ)に保存されることになる。
【0010】
また、暗号化技術の一つでもある秘密分散技術を利用し、電子データを複数の断片ファイルに分散して、それぞれを異なる記憶装置に保存する技術がある。秘密分散は、1979年にアディ・シャミアとジョージ・ブラークリーによって独立に提唱された概念であり、その後精力的に研究され、様々な方式が提案され、国際規格(ISO/IEC 19592-2:2017)にもなっている。秘密分散方式としては、代表的な例として、しきい値法(threshold scheme)、検証可能な秘密分散方式(veriable secret sharing (VSS) scheme)、一般の秘密分散方式、しきい値暗号(threshold cryptography)方式等がある。
【0011】
秘密分散は、電子データをその断片ファイルをそれぞれの記録装置から読み出し、秘密分散技術で復元して、解読可能な元のファイルを作成し、これを電子計算機で利用する。この秘密分散技術では、断片ファイルだけでは内容を解読することが不可能である。これらの複数の断片ファイルの内、予め設定された数の断片ファイルを利用して元のファイルを復元し、内容を解読することができる。
【0012】
秘密分散技術を利用して電子データを複数の断片ファイルに分散し、利用するときは断片ファイルを電子計算機の主記憶装置上に復元して利用する技術がある。秘密分散技術によれば、解読可能な意味のある電子データは、電子計算機の主記憶装置上にのみ存在し、電子計算機の電源が切断されると、主記憶装置に格納されているデータが全て消滅するので、電子データも消滅する。これにより、電子計算機から解読可能な電子データの漏洩リスクを低減させている。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2011-8813号公報
【特許文献2】特開2017-10424号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかしながら、電子計算機上に電子データを利用するとき、秘密分散技術及び主記憶装置を利用して、電子データの漏洩対策を取ると次の問題がある。まず、電子データを複数の記録装置から読み出し電子計算機内で処理し主記憶装置上に復元するとき、また、作業ファイルを秘密分散し断片ファイルを生成するとき、電子計算機の処理速度が遅くなるという問題点がある。更に、電子データを電子計算機で利用するとき、復元した元のファイルは記録媒体等を介して情報漏洩する余地が残っている。
【0015】
ユーザ側から見る、電子データの秘密分散を意識することなくスムーズに利用したいという要望がある。断片ファイルはネットワークストレージ、電子計算機に接続された記録媒体等の複数の記録媒体に記録されている。これらの断片ファイルをユーザができる限り意識することがなく利用することが重要である。特に、作業する電子計算機を変える場合、作業中の電子計算機がネットワークに接続できない場合、出張先等のように外部で作業ファイルを利用する場合等において、ユーザは分散された断片ファイルを意識することが少なくスムーズに利用したいという要望がある。
【0016】
本発明は上述のような技術背景のもとになされたものであり、下記の目的を達成する。
本発明の目的は、電子データを秘密分散手段で分散保持し、電子計算機の揮発性記憶手段内で電子データを利用することで、電子計算機の電子データを確実に保護し情報漏洩を防止する電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体を提供することにある。
【0017】
本発明の他の目的は、電子計算機に解読可能な電子データを格納しないデータレス電子計算機を実現する電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体を提供することにある。
【課題を解決するための手段】
【0018】
本発明は、前記目的を達成するため、次の手段を採る。
本発明は、電子データ管理装置、電子データ管理システム、そのためのプログラム及び記録媒体である。
本発明の電子データ管理装置は、
オペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、後記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信、又は前記デバイスドライバとアプリケーションプログラムとの通信に、共通のインターフェースを提供するための共通インターフェース手段を備えた、ネットワークに接続可能な電子計算機からなり、ユーザデータが前記電子計算機から外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた電子データ管理装置において、
ファイルを秘密分散しn個の断片を生成する分散手段、
m個の前記断片を合成し、元の前記ファイルを復元する復元手段、
前記カーネルモードで動作して、前記電子計算機に揮発性記憶手段を作成するドライブ作成手段、
前記分散手段によって作業ファイルを秘密分散させて前記n個の断片ファイルを生成して前記揮発性記憶手段に格納する断片ファイル生成手段、
前記揮発性記憶手段に格納された前記n個の前記断片ファイルを、複数の不揮発性記憶手段に前記カーネルモードで転送して格納する第1転送手段、
前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルの内の前記m個以上の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納する第2転送手段、及び、
前記第2転送手段によって前記揮発性記憶手段に保存された前記m個以上の前記断片ファイルを取得して前記復元手段で元の前記作業ファイルを生成させ、前記揮発性記憶手段に格納する作業ファイル復元手段
からなることを特徴とする。
【0019】
本発明の電子データ管理装置の前記分散手段及び前記復元手段は前記カーネルモードで動作し、
前記断片ファイル生成手段は、前記カーネルモードで前記作業ファイルを取得し、前記カーネルモードで前記分散手段に渡して前記秘密分散させ、
前記作業ファイル復元手段は、前記カーネルモードで前記m個以上の前記断片ファイルを取得し、前記カーネルモードで前記復元手段に渡して前記作業ファイルを復元させると良い。
【0020】
また、本発明の電子データ管理装置は、前記分散手段及び前記復元手段は前記ユーザモードで動作し、
前記断片ファイル生成手段は、前記カーネルモードで前記作業ファイルを取得し、前記ユーザモードで前記分散手段に渡して前記秘密分散させ、
前記作業ファイル復元手段は、前記カーネルモードで前記m個以上の前記断片ファイルを取得し、前記ユーザモードで前記復元手段に渡して前記作業ファイルを復元させると良い。
【0021】
前記第1転送手段は、前記揮発性記憶手段に格納された前記n個の前記断片ファイルを前記カーネルモードで取得し、前記ユーザモードで前記複数の前記不揮発性記憶手段に転送し、
前記第2転送手段は、前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルを前記ユーザモードで取得し、前記n個の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納すると良い。
【0022】
前記作業ファイル及び前記n個の前記断片ファイルそれぞれは、同じディレクトリ構造を有する作業ドライブ又は作業フォルダに格納されると良い。
前記第1転送手段による前記n個の前記断片ファイルの転送が完了し、かつ、前記アプリケーションプログラムが終了したとき、前記作業ファイル、前記揮発性記憶手段、作業ドライブ及び前記作業フォルダの内1以上を削除する削除手段を有すると良い。
【0023】
前記n個の前記断片ファイルの内に前記不揮発性記憶手段へ転送ができない前記断片ファイルは、暗号化して、前記電子計算機に内蔵又は接続された不揮発性記憶手段に転送して格納すると良い。
前記電子計算機が起動するとき、転送が完了していない前記断片ファイルを揮発性記憶手段へ送信すると良い。
【0024】
本発明の電子データ管理装置は、前記電子計算機が起動するとき、前記作業ファイルを秘密分散した前記断片ファイルが該当する全ての前記揮発性記憶手段に格納されているか否かを確認し、全ての前記揮発性記憶手段に格納されていない場合、読み込み可能な前記断片ファイルから前記作業ファイルを復元し、その後新しく復元された作業ファイルを秘密分散し複数の断片ファイルを作成し、前記揮発性記憶手段へ転送すると良い。
【0025】
前記揮発性記憶手段は暗号化されていると良い。
前記不揮発性記憶手段は暗号化されていると良い。
前記不揮発性記憶手段は、ネットワークストレージ、オンラインストレージサービス用クラウドフォルダ、内蔵補助記憶手段、外付補助記憶手段、ネットワークドライブ、USBデバイス、USB媒体、携帯機器、同期ドライブ、及び、仮想ドライブの中から選択される2以上のものであると良い。
【0026】
本発明の電子データ管理システムは、
ネットワーク、
前記ネットワークに接続されてユーザデータを格納するネットワークストレージ、
前記ネットワークに接続された電子計算機、
オペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、前記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信、又は前記デバイスドライバとアプリケーションプログラムとの通信に、共通のインターフェースを提供するための共通インターフェース手段を備え、
前記ユーザデータが前記電子計算機から外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた電子データ管理システムにおいて、
ファイルを秘密分散しn個の断片を生成する分散手段、
m個の前記断片を合成し、元の前記ファイルを復元する復元手段、
前記カーネルモードで動作して、前記電子計算機に揮発性記憶手段を作成するドライブ作成手段、
前記分散手段によって作業ファイルを秘密分散させて前記n個の断片ファイルを生成して前記揮発性記憶手段に格納する断片ファイル生成手段、
前記揮発性記憶手段に格納された前記n個の前記断片ファイルを、前記ネットワークストレージを含む複数の不揮発性記憶手段に前記カーネルモードで転送して格納する第1転送手段、
前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルの内の前記m個以上の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納する第2転送手段、及び、
前記第2転送手段によって前記揮発性記憶手段に保存された前記m個以上の前記断片ファイルを取得して前記復元手段で元の前記作業ファイルを生成させ、前記揮発性記憶手段に格納する作業ファイル復元手段
からなることを特徴とする。
【0027】
本発明の電子データ管理システムの前記分散手段及び前記復元手段は前記カーネルモードで動作し、
前記断片ファイル生成手段は、前記カーネルモードで前記作業ファイルを取得し、前記カーネルモードで前記分散手段に渡して前記秘密分散させ、
前記作業ファイル復元手段は、前記カーネルモードで前記m個以上の前記断片ファイルを取得し、前記カーネルモードで前記復元手段に渡して前記作業ファイルを復元させると良い。
【0028】
また、本発明の電子データ管理システムの前記分散手段及び前記復元手段は前記ユーザモードで動作し、
前記断片ファイル生成手段は、前記カーネルモードで前記作業ファイルを取得し、前記ユーザモードで前記分散手段に渡して前記秘密分散させ、
前記作業ファイル復元手段は、前記カーネルモードで前記m個以上の前記断片ファイルを取得し、前記ユーザモードで前記復元手段に渡して前記作業ファイルを復元させると良い。
【0029】
前記第1転送手段は、前記揮発性記憶手段に格納された前記n個の前記断片ファイルを前記カーネルモードで取得し、前記ユーザモードで前記複数の前記不揮発性記憶手段に転送し、
前記第2転送手段は、前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルを前記ユーザモードで取得し、前記n個の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納すると良い。
【0030】
前記作業ファイル及び前記n個の前記断片ファイルそれぞれは、同じディレクトリ構造を有する作業ドライブ又は作業フォルダに格納されると良い。
前記第1転送手段による前記n個の前記断片ファイルの転送が完了し、かつ、前記アプリケーションプログラムが終了したとき、前記作業ファイル、前記揮発性記憶手段、作業ドライブ及び前記作業フォルダの内1以上を削除する削除手段を有すると良い。
【0031】
前記n個の前記断片ファイルの内に前記不揮発性記憶手段へ転送ができない前記断片ファイルは、暗号化して、前記電子計算機に内蔵又は接続された不揮発性記憶手段に転送して格納すると良い。
前記電子計算機が起動するとき、転送が完了していない前記断片ファイルを揮発性記憶手段へ送信すると良い。
【0032】
前記電子計算機が起動するとき、前記作業ファイルを秘密分散した前記断片ファイルが該当する全ての前記揮発性記憶手段に格納されているか否かを確認し、全ての前記揮発性記憶手段に格納されていない場合、読み込み可能な前記断片ファイルから前記作業ファイルを復元し、その後新しく復元された作業ファイルを秘密分散し複数の断片ファイルを作成し、前記揮発性記憶手段へ転送すると良い。
【0033】
前記揮発性記憶手段は暗号化されていると良い。
前記不揮発性記憶手段は暗号化されていると良い。
【0034】
前記不揮発性記憶手段は、ネットワークストレージ、オンラインストレージサービス用クラウドフォルダ、内蔵補助記憶手段、外付補助記憶手段、ネットワークドライブ、USBデバイス、USB媒体、携帯機器、同期ドライブ、及び、仮想ドライブの中から選択される2以上のものであると良い。
【0035】
本発明の電子データ管理装置用プログラムは、
オペレーティングシステムの全ての命令が実行できるカーネルモードで動作し、後記電子計算機に接続されているデバイスを直接制御するためのデバイスドライバ同士の通信、又は前記デバイスドライバとアプリケーションプログラムとの通信に、共通のインターフェースを提供するための共通インターフェース手段を備えた、ネットワークに接続可能な電子計算機からなり、ユーザデータが前記電子計算機から外部へ漏洩することを防止制御するための電子データ漏洩防止機能を備えた電子データ管理装置において、
前記カーネルモードで動作するドライブ作成手段によって、前記電子計算機に揮発性記憶手段を作成し、作成された前記揮発性記憶手段の中に複数の分散フォルダを作成するドライブ作成ステップ、
前記揮発性記憶手段に格納された作業ファイルを、分散手段によって秘密分散し、n個の断片ファイルを生成して前記揮発性記憶手段に格納する断片ファイル生成ステップ、
前記揮発性記憶手段に格納された前記n個の前記断片ファイルを、複数の不揮発性記憶手段に前記カーネルモードで転送して格納する第1転送ステップ、
前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルの内の前記m個以上の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納する第2転送ステップ、及び、
前記第2転送手段によって前記揮発性記憶手段に保存された前記m個以上の前記断片ファイルを取得して前記復元手段で元の前記作業ファイルを生成させ、前記揮発性記憶手段に格納する作業ファイル復元ステップ
からなることを特徴とする。
【0036】
本発明の電子データ管理装置用プログラムにおいて、
前記分散手段及び前記復元手段は前記カーネルモードで動作し、
前記断片ファイル生成ステップは、前記カーネルモードで前記作業ファイルを取得するステップと、取得した前記作業ファイルを前記カーネルモードで前記分散手段に渡すステップからなり、
前記作業ファイル復元ステップは、前記カーネルモードで前記m個以上の前記断片ファイルを取得するステップと、取得した前記断片ファイルを前記カーネルモードで前記復元手段に渡すステップからなると良い。
【0037】
また、本発明の電子データ管理装置用プログラムにおいて、
前記分散手段及び前記復元手段は前記ユーザモードで動作し、
前記断片ファイル生成ステップは、前記カーネルモードで前記作業ファイルを取得するステップと、取得した前記作業ファイルを前記分散手段に渡すステップからなり、
前記作業ファイル復元ステップは、前記カーネルモードで前記m個以上の前記断片ファイルを取得するステップと、取得した前記断片ファイルを前記復元手段に渡すステップからなると良い。
前記第1転送ステップは、前記揮発性記憶手段に格納された前記n個の前記断片ファイルを前記カーネルモードで取得するステップと、取得した前記n個の前記断片ファイルを前記ユーザモードで前記複数の前記不揮発性記憶手段に転送するステップからなり、
前記第2転送ステップは、前記複数の前記不揮発性記憶手段に格納された前記n個の前記断片ファイルを前記ユーザモードで取得ステップと、取得した前記n個の前記断片ファイルを前記カーネルモードで転送して前記揮発性記憶手段に格納するステップからなると良い。
【0038】
前記作業ファイル及び前記n個の前記断片ファイルそれぞれは、同じディレクトリ構造を有する作業ドライブ又は作業フォルダに格納されると良い。
前記第1転送ステップは、前記n個の前記断片ファイルの転送が完了し、かつ、前記アプリケーションプログラムが終了したとき、前記作業ファイル、前記揮発性記憶手段、作業ドライブ及び前記作業フォルダの内1以上を削除する削除ステップを有すると良い。
【0039】
本発明の電子データ管理装置用プログラムは、前記n個の前記断片ファイルの内に前記不揮発性記憶手段へ転送ができない前記断片ファイルを、暗号化して、前記電子計算機に内蔵又は接続された不揮発性記憶手段に転送して格納するステップからなると良い。
本発明の電子データ管理装置用プログラムは、前記電子計算機が起動するとき、転送が完了していない前記断片ファイルを揮発性記憶手段へ送信するステップからなると良い。
【0040】
本発明の電子データ管理装置用プログラムは、
前記電子計算機が起動するとき、前記作業ファイルを秘密分散した前記断片ファイルが該当する全ての前記揮発性記憶手段に格納されているか否かを確認するステップ、
前記複数の前記断片ファイルが全ての前記揮発性記憶手段に格納されていない場合、読み込み可能な前記断片ファイルから前記作業ファイルを復元するステップと、
該作業ファイルを秘密分散し複数の断片ファイルを作成するステップと、
この作成された前記複数の前記断片ファイルを前記揮発性記憶手段へ転送するステップ
からなると良い。
【0041】
本発明の電子データ管理装置用プログラムは、前記揮発性記憶手段を暗号化するステップ
からなると良い。
本発明の電子データ管理装置用プログラムは、前記不揮発性記憶手段を暗号化するステップからなると良い。
【0042】
前記不揮発性記憶手段は、ネットワークストレージ、オンラインストレージサービス用クラウドフォルダ、内蔵補助記憶手段、外付補助記憶手段、ネットワークドライブ、USBデバイス、USB媒体、携帯機器、同期ドライブ、及び、仮想ドライブの中から選択される2以上のものであると良い。
【0043】
本発明の電子データ管理装置用プログラムの記録媒体は、上述の電子データ管理装置用プログラムを記録した電子データ管理装置用プログラムの記録媒体である。
【発明の効果】
【0044】
本発明によると、次の効果が奏される。
本発明は、電子計算機の揮発性記憶手段を作業フォルダとして利用し、電子データを秘密分散した断片ファイルをローカル補助記憶手段、ネットワークストレージ、携帯補助記憶手段等に分散して格納し、かつ、アプリケーションプログラムの動作が終了又は電子計算機の電源が切断されると、利用する解読可能なユーザデータを全て消去することができるので、電子計算機の電子データを確実に保護し情報漏洩が防止できた。
【0045】
本発明は、電子計算機のカーネルモードで秘密分散手段を実現し、秘密分散された断片ファイルをカーネルモードで転送し、この断片ファイルを補助記憶手段に格納することで、高速な分散処理、格納処理及び高度セキュリティを実現し情報漏洩を防止することができた。
【図面の簡単な説明】
【0046】
図1図1は、本発明の第1の実施の形態の電子データ管理システム1の概要を示すブロック図である。
図2図2は、本発明の第1の実施の形態において、断片ファイルを記憶手段に格納する例を図示しているブロック図である。
図3図3は、本発明の第1の実施の形態において、ユーザ端末2の構成の一例を図示しているブロック図である。
図4図4は、本発明の第1の実施の形態において、ユーザ端末2上で動作するソフトウェアの概要を図示しているブロック図である。
図5図5は、本発明の第1の実施の形態において、ドライバウェア60を含め、ユーザ端末2上で動作するソフトウェアの概要を図示しているブロック図である。
図6図6は、本発明の第1の実施の形態において、RAMディスク11のディレクトリ構造の例を図示している図である。
図7図7は、本発明の第1の実施の形態の電子データ管理システム1のユーザ端末2の動作概要を示すフローチャートである
図8図8は、本発明の第1の実施の形態において、ドライバウェア60の動作例を図示しているフローチャートである。
図9図9は、本発明の第1の実施の形態において、ユーザ端末2で暗号化された断片ファイルを利用する流れを図示しているフローチャートである。
図10図10は、本発明の第1の実施の形態において、秘密分散されたデータを利用する他の例を図示しているフローチャートである。
図11図11は、本発明の第1の実施の形態において、秘密分散されたデータを利用する他の例を図示しているフローチャートであり、図10のフローチャートの続きである。
図12図12は、本発明の第1の実施の形態において、断片ファイルの利用例を示すフローチャートである。
図13図13は、本発明の第2の実施の形態の電子データ管理システム1の概要を図示しているブロック図である(携帯記憶手段5としてUSBメモリ7を利用する。)。
図14図14は、本発明の第2の実施の形態の電子データ管理システム1のユーザ端末2の動作概要を示すフローチャートである。
図15図15は、本発明の第3の実施の形態の電子データ管理システム1のユーザ端末2上に動作するソフトウェアの概要を図示しているブロック図である。
図16図16は、本発明の第4の実施の形態の電子データ管理システム1のユーザ端末2上に動作するソフトウェアの概要を図示しているブロック図である(ユーザモードの秘密分散部)。
図17図17は、本発明の第4の実施の形態の電子データ管理システム1のユーザ端末2の動作概要を示すフローチャートである。
【発明を実施するための最良の形態】
【0047】
以下、本発明の実施の形態を図に基づいて説明する。
〔本発明の第1の実施の形態〕
以下、図面を参照しながら、本発明の第1の実施の形態の電子データ管理システム1を説明する。図1は、本発明の第1の実施の形態の電子データ管理システム1の概要を示すブロック図である。
【0048】
電子データ管理システム1は、電子計算機で電子データを利用するとき、後述するユーザデータ等の秘密分散したファイルの断片ファイルから元のファイルを復元して、復元したファイルは揮発性記憶手段に格納して利用するシステムである。電子データ管理システム1は、ファイルを保存するとき、秘密分散して複数の断片ファイルを生成し、この断片ファイルを複数の記憶手段に格納する。揮発性記憶手段内のファイルは電子計算機の電源切断時に消去されるか、利用後に削除される。これにより、ファイルは解読可能な形式で電子計算機に保存されることがなくなり、電子データの漏洩を防止する。
【0049】
電子データ管理システム1は、情報漏洩防止対象となっている電子データを利用するとき、解読可能な形式のファイルは電子計算機の揮発性記憶手段に格納して利用し、不揮発性記憶手段に記憶するとき単独で解読不可能な複数の断片ファイルを生成して異なる記憶手段に記憶する。例えば、電子計算機の内蔵補助記憶手段、電子計算機に外付けされた補助記憶手段、電子計算機に接続された携帯機器の記憶手段、電子計算機に接続されたネットワーク記憶手段等それぞれに断片ファイルを格納する。これにより、電子計算機の電源が切れる等のとき、揮発性記憶手段が消滅し、それと同時に解読可能な形式のファイルが消滅して電子計算機に残らない。
【0050】
電子データ管理システム1は、デバイスドライバをカーネルモードで制御し、断片ファイルから解読可能な形式のファイルの復元、ファイルから断片ファイルの生成、断片ファイルの各記憶媒体への送信、及び、断片ファイルの各記憶手段からの読み込みは、カーネルモードで行う。このように、カーネルモードで主要処理を行うことで、高速処理、高度なセキュリティ、異なるデバイスドライバ間のデータ伝送が実現できる。
【0051】
ユーザは、電子計算機を利用するとき、ファイルの秘密分散と復元、断片ファイルの記憶媒体への格納と転送を意識することなく、揮発性記憶手段に格納されているファイルを利用して作業を行う。電子計算機で動作しファイルを利用するアプリケーションプログラムにとっては、従来のように、メインとなる補助記憶装置でファイルを扱うことになり、ファイルの秘密分散と復元、断片ファイルの保存に影響されることなく動作する。
【0052】
これらのことは、デバイスドライバをカーネルモードで制御するドライバウェア(登録商標)の技術による高度な技術である。特に、電子データ管理システム1は、断片ファイルを、電子計算機の内蔵補助記憶装置、ネットワーク上のネットワークストレージ、電子計算機に接続された携帯記憶手段等に分散して格納する。
【0053】
本発明において、上述のしきい値法、検証可能な秘密分散方式、一般の秘密分散方式、しきい値暗号方式、ISO/IEC 19592-2:2017に規定した秘密分散方式等のように公知の任意の秘密分散方式を利用する。本発明の趣旨は秘密分散方式自体の発明ではないので、秘密分散方式の詳細は関係の教科書、規格、論文に譲り、詳細な説明は省略する。
【0054】
以下、電子データ管理システム1の構造及び動作手順を具体的に説明する。図1に図示している電子データ管理システム1は、ユーザ端末2、ネットワークストレージ3、ネットワーク4、携帯記憶手段5等からなる。携帯記憶手段5としては、スマートフォン、タブレット、ウェアブル機器等の携帯端末6、USBメモリ、フラッシュメモリ等の不揮発性記憶手段7が例示できる。ネットワークストレージ3は、ユーザ端末2と、ネットワーク4等の通信ネットワークによって接続された記憶手段である。
【0055】
ネットワークストレージ3は、ネットワーク4上の補助記憶装置、クラウドストレージ等の遠隔記憶手段を含む概念である。ユーザ端末2とネットワークストレージ3は、LAN,WAN、インターネット等のネットワーク4に接続されている。ユーザ端末2は、ネットワーク4を介して、ネットワークストレージ3からそれに格納されている電子データを取得し、電子データをネットワークストレージ3に送信して格納する。
【0056】
ユーザデータは、ユーザ端末2、ネットワークストレージ3、携帯記憶手段5に格納されている電子データ、この電子データから派生して作成された電子データ、新規に作成された電子データ等を含むものであり、以後、これらのデータを含めて「ユーザデータ」と単に表記する。ネットワークストレージ3は、ユーザデータを格納するためのものである。ネットワークストレージ3は、ウェブサーバ又はファイルサーバ(図示せず。)の記憶装置、言い換えると、不揮発性の補助記憶装置である。
【0057】
ネットワークストレージ3は、専用サーバに搭載された記憶装置、分散管理されているネットワークストレージ、クラウドサービスのストレージ(クラウドストレージ)等のように、ユーザ端末2、携帯端末6等とネットワーク4を介して接続される記憶装置である。本実施の形態において、ネットワークストレージ3は、クラウドストレージを含め、ユーザデータを格納するものであれば任意の記憶装置を意味する。ネットワーク4は、公知の任意の有線又は無線の通信ネットワークであるが、ローカルエリアネットワーク(LAN)又はインターネットであることが好ましい。
【0058】
本実施の形態において、ネットワーク4は、インターネットとして説明する。ユーザ端末2は、ユーザが操作し、利用するための電子計算機である(詳しくは後述する。)。ユーザ端末2は、ネットワーク4に直接接続することが可能であるが、ユーザ端末2aのように通信仲介手段8を介してネットワーク4に接続することができる。ユーザ端末2aは、ワイヤレスゲートウェイ、プロキシサーバ、ルータ、ワイヤレスアクセスポイント等の通信仲介手段8を介して接続して使用することが一般的である。
【0059】
電子データ管理システム1は、これらの通信仲介手段8を含むものとする。本実施の形態においては、ユーザ端末2をネットワーク4に接続するための手段が本発明の要旨ではないので、その詳細な説明は省略する。ユーザ端末2とネットワークストレージ3とのデータ通信は、通信する電子データを暗号化して所定の通信プロトコルに従って互いに送受信する。通信プロトコルは、任意の通信プロトコルを利用することができるが、ISO参照モデルに準拠したプロトコル、特に、TCP/IP等のインターネットに利用されている汎用プロトコルが好ましい。
【0060】
ユーザ端末2において、ファイル10はユーザ端末2の主記憶装置(RAM:Random Access Memory)上のRAMディスク11に格納されて利用される。このRAMディスク11は、ユーザ端末2上で動作するアプリケーションプログラムの作業ドライブになる。RAMディスク11の中には、複数の分散フォルダ12が作成される。この複数の分散フォルダ12は、ファイル10を秘密分散して生成された複数の断片ファイルそれぞれを格納するためのフォルダである。分散フォルダ12の数は、ファイル10を秘密分散する数だけ、言い換えると生成される断片ファイルの数と等しいことが好ましい。
【0061】
分散フォルダ12のそれぞれは、断片ファイルを最終的に格納する不揮発性の記憶手段にそれぞれに対応する。例えば、1つの分散フォルダ12は、ネットワークストレージ3のネットワークフォルダ13に対応する。別の分散フォルダ12は、ユーザ端末2に内蔵されている補助記憶装置14のローカルフォルダ15に対応する。また別の分散フォルダ12は、ユーザ端末2に接続されている携帯記憶手段5(携帯端末6又は不揮発性記憶手段7)に対応する。
【0062】
このように、複数の分散フォルダ12のそれぞれは、複数の記憶手段にそれぞれ対応し、分散フォルダ12に格納されている断片ファイルは、そのフォルダに対応する記憶手段へ転送される。ユーザ端末2では、断片ファイルがそのまま又は暗号化されて、ネットワークストレージ3、補助記憶装置14、携帯記憶手段5に送信されて保存される。ユーザ端末2は、ネットワーク4を介してネットワークストレージ3からこれに格納されている断片ファイルを取得、又は、分散フォルダ12に格納されている断片ファイルをネットワークストレージ3へ送信する。
【0063】
この通信の流れを、図1において、破線で様式的に図示している。ユーザ端末2は、分散フォルダ12のデータをネットワークストレージ3、補助記憶装置14、携帯記憶手段5等に送信し格納するとき、分散フォルダ12毎にスケジュールを設定して行うことができる。例えば、スケジュールは、分散フォルダ12の中の断片ファイルを、所定時間になったとき、アプリケーションプログラム若しくはオペレーティングシステムのサービス等から要求があるとき、又はユーザから指示があるときに、断片ファイルを送信するように設定される。
【0064】
ユーザ端末2は、分散フォルダ12の内容全て又は前回送信分の差分を送信するが、これは通信速度、送信するファイル(電子データ)の大きさ等によって適宜に決めるものである。ユーザ端末2の主記憶装置(RAM:Random Access Memory)は揮発性メモリであり、電源供給が無くなると、主記憶装置上に格納されているデータが揮発、言い換えると消滅して、無くなる特徴を持っている。この特徴により、ユーザ端末2の電源が切断されると、主記憶装置の全ての電子データが消滅して無くなり、従って、主記憶装置の一部を利用しているRAMディスク11の内容が消滅することになる。
【0065】
RAMディスク11はドライブであるが、主記憶装置の一部のメモリ領域に常駐し、電源が切れると消滅するため、疑似補助記憶手段、疑似補助記憶装置、疑似ドライブ、仮想ドライブ等と言える。本実施の形態において、RAMディスク11は主記憶装置上に作成された仮想ドライブを利用しているが、補助記憶装置14上に作成された仮想ドライブを利用することができる。補助記憶装置14は、HDD(Hard disk drive)、SSD(Solid state drive)等のようにユーザ端末2に内蔵された不揮発性の補助記憶手段である。一般的に、電子計算機ではアプリケーションプログラムとユーザデータは、補助記憶装置14のような不揮発性の補助記憶装置に保存されている。
【0066】
電子計算機の動作時、アプリケーションプログラムは保存されている補助記憶装置からそのプログラムコードが読み込まれ、主記憶装置に格納されて実行され、そして、補助記憶装置からアプリケーションプログラムに必要なデータが読み込まれて処理される。これに対しては、本例において、解読可能なユーザデータ(ファイル10)は、補助記憶装置14に格納されない。ユーザデータは秘密分散され複数の断片ファイルが生成され、異なる記憶手段に格納される。断片ファイルの一つは補助記憶装置14に格納されるが、補助記憶装置14に格納された1つの断片ファイルだけでは意味のある情報を解読することが不可能である。
【0067】
ユーザデータのファイル10を利用するとき、複数の断片ファイルをそれが格納されている各補助記憶装置から取得して復元処理を行い、ファイル10を復元する。ユーザ端末2は、この復元したファイル10はRAMディスク11に格納する。従って、本実施の形態において、RAMディスク11は作業ドライブとして機能し、RAMディスク11内の分散フォルダ12は作業フォルダとして機能する。作業するファイル10はRAMディスク11内に格納する。これにより、解読可能なファイルは、電子計算機の電源が切断されるときに消滅するので、解読可能なファイル10(ユーザデータ)の情報漏洩が無くなり、セキュリティが向上する。
【0068】
[秘密分散の具体的な例]
図2及び図6には、ファイル10を秘密分散し3個の断片ファイル10n、10h、10mを生成し、それぞれを異なる3台の記憶手段に格納する例を図示している。ユーザ端末2の主記憶装置の一部の領域にRAMディスク11が生成され、オペレーティングシステムに仮想ドライブとして認識される。図2の例では、携帯記憶手段5は携帯端末6を例に説明する。RAMディスク11の中では、作業フォルダ16が作成され、ファイル10はこのフォルダの中に格納される。
【0069】
ファイル10は、RAMディスク11の中でフォルダの中で又はフォルダなして格納することができる。以後、ファイル10が特定のフォルダの中で格納されることを例に説明をする。また、ファイル10の断片ファイル10n、10h、10mを格納するための分散フォルダ12が断片ファイルの数だけ作成される。この例では、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m、ローカル分散フォルダ12hがRAMディスク11の中にそれぞれ作成されている。
【0070】
ネットワーク分散フォルダ12nは、その中に格納された断片ファイル10nをネットワークストレージ3、具体的にはネットワークフォルダ13に転送し、格納するために利用されるフォルダである。言い換えると、ネットワーク分散フォルダ12nは、ネットワークフォルダ13と対応するように設定されている。ローカル分散フォルダ12hはその中に格納された断片ファイル10hをユーザ端末2の内蔵の補助記憶装置14のローカルフォルダ15に転送し格納するために利用されるフォルダである。
【0071】
ローカル分散フォルダ12hはローカルフォルダ15に対応している。モバイル分散フォルダ12mは、その中に格納された断片ファイル10mをユーザ端末2と通信手段で接続した携帯端末6の中の補助記憶手段に転送し、格納するために利用されるフォルダである。ネットワークストレージ3から取得した断片ファイル10nは、ネットワーク分散フォルダ12nに格納される。同じく、補助記憶装置14から取得した断片ファイル10hは、ローカル分散フォルダ12hに格納され、携帯端末6から取得した断片ファイル10mはモバイル分散フォルダ12mに格納される。
【0072】
ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに格納された断片ファイル10n、10h、10mは、復元手段によって元のファイル10の復元のために利用され、復元された元のファイル10は作業フォルダ16に格納される。アプリケーションプログラム等は作業フォルダ16の中からファイル10を取得し、表示、編集等の作業を行う。
【0073】
ファイル10の復元に利用された断片ファイル10n、10h、10mは種々のタイミングと条件で削除される。例えば、元のファイル10が復元された後、それに利用された断片ファイル10n、10h、10mは、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hから削除される。他の一例は、元のファイル10が復元された後、それに利用された断片ファイル10n、10h、10mは、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hから実体が削除され、名前だけ又はリンクだけが表示されることができる。
【0074】
また他の一例は、元のファイル10が復元された後、それに利用された断片ファイル10n、10h、10mは、元のファイル10の利用が終わるまで削除されず元のまま保持され、元のファイル10が更新されたときには新規に生成された断片ファイル10n、10h、10mで上書きすることができる。また他の一例は、元のファイル10が復元された後、それに利用された断片ファイル10n、10h、10mは、元のファイル10の利用が終わったら削除される。
【0075】
作業フォルダ16の中で格納されている更新されたファイル10、新規に作成されたファイル10は、秘密分散処理されて断片ファイル10n、10h、10mが作成され、断片ファイル10n、10h、10mはネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hにそれぞれ格納される。ネットワーク分散フォルダ12nに格納された断片ファイル10nは、ネットワーク4を介してネットワークストレージ3へ送信(転送)されてネットワークフォルダ13に格納される。
【0076】
同じく、モバイル分散フォルダ12mに格納された断片ファイル10mは携帯端末6へ、ローカル分散フォルダ12hに格納された断片ファイル10hは補助記憶装置14へ送信(転送)されて格納される。ユーザ端末2では送信(転送)され、送信(転送)が成功した断片ファイル10n、10h、10mは、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hから削除される。
【0077】
〔ユーザ端末2のハードウェア構成〕
ユーザ端末2は、中央処理手段、主記憶手段、入力手段、出力手段、データ伝送手段等を備えた汎用の電子計算機である。図3のブロック図は、ユーザ端末2の構成の一例を図示している。ユーザ端末2は、図3に図示したように、本体20に格納された中央処理装置(CPU)21、主記憶装置22、入力インターフェース23、出力インターフェース24、補助記憶装置14、バス25、入力装置26、出力装置27、電源ユニット28等を備える。
【0078】
本体20は、中央処理装置21、主記憶装置22、入力インターフェース23、出力インターフェース24、バス25等を搭載したメインボード(図示せず)、そして、補助記憶装置14、電源ユニット28等を内蔵した筐体である。電源ユニット28は、ユーザ端末2の各構成要素、デバイス等に電源供給をするためのもので、バッテリー又は商業電源アダプタ等からなるが、これらは周知技術であり、その詳細な説明は省略する。
【0079】
入力装置26、出力装置27等は、本体20に接続して利用する周辺機器であるが、ノート型の電子計算機等の一体型の電子計算機の場合、本体20に内蔵して又は一体的に構成されることができる。入力機能及び出力機能を備えたタッチ式のパネルも入力装置27と出力装置28を兼ねて利用できる。ユーザ端末2は、補助記憶手段として、内蔵された補助記憶装置14、外付補助記憶装置(図示せず。)等を備えるが、以下は補助記憶装置14を例に説明する。
【0080】
また、中央処理装置21、主記憶装置22、入力インターフェース23、出力インターフェース24は、バス25で互いに接続されて、このバス25を経由して、互いにデータの送受信を行う。ユー端末2は、例であるが画像処理、暗号化処理、認証処理等の特定の信号処理を行うための信号処理手段を備えることができるが、その詳細な説明は、本発明の要旨ではないので省略する。中央処理装置21は、ユーザ端末2の動作を制御するもので、主記憶装置22に格納されたプログラムによって、そのプログラムの命令を順序処理し実行しながら、ユーザ端末2の動作を制御する。
【0081】
主記憶装置22は、揮発性の記憶手段である。RAMディスク11は主記憶装置22のメモリ領域の一部を利用する。マウス、キーボード等の入力装置26は、入力インターフェース23に接続される。補助記憶装置14は、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の不揮発性の記憶手段である。補助記憶装置14には、オペレーティングシステムのコード、アプリケーションプログラムのコード、電子データ等が格納される。アプリケーションプログラムは、通常、そのコードが補助記憶装置14等から呼び出されて、主記憶装置22に展開されて、動作する。
【0082】
ユーザ端末2は、ネットワークカード、サウンドカード、グラフィックカード、スピーカ等の内蔵機器を多数備えるが、本発明は、インターフェースを目的とするものではないので、この詳細な説明は省略する。ユーザ端末2はネットワーク4に接続するためのネットワークカード41(図4を参照。)、携帯機器に接続するための通信アダプタ42(図4を参照。)を備えるが、その説明は後述する。
【0083】
〔ユーザ端末2のソフトウェア構成〕
図4には、ユーザ端末2上で動作するソフトウェア及びデバイスの概要を図示しているブロック図である。ユーザ端末2では、オペレーティングシステム30が動作し、オペレーティングシステム30が提供するプラットフォーム上に、アプリケーションプログラム33等のソフトウェアが動作する。図4に図示したように、ユーザ端末2は、内蔵接続された機器、外付け接続された機器等のデバイス40を備えている。
【0084】
デバイス40の例として、ネットワークカード41、RAMディスク11、補助記憶装置14、通信アダプタ42が図示されている。ユーザ端末2は、これらのデバイス40それぞれを制御するためのデバイスドライバ50を備えている。図4に、デバイスドライバ50としては、ネットワークドライバ54、RAMディスクドライバ52、ディスクドライバ53、ファイルシステムドライバ51、通信ドライバ55が図示されている。
【0085】
デバイスドライバ50はオペレーティングシステム30の入出力機能を利用し、互いに通信したり、アプリケーションプログラム33と通信したりする。本実施の形態においては、デバイスドライバ50を制御するための制御手段としてドライバウェア60を有しており、これをデバイスドライバ50とオペレーティングシステム30の間に備えている。ドライバウェア60はデバイスドライバ50の制御、デバイスドライバ50間の通信、デバイスドライバ50とオペレーティングシステム30の間の通信を制御する。
【0086】
オペレーティングシステム30は、オペレーティングシステム30が備えている命令が全て実行できるカーネルモード31と、一部の命令の実行を制限したユーザモード32の2種類の動作モードがある。アプリケーションプログラム33は、基本的にユーザモード32で動作し、オペレーティングシステム30の入出力機能を利用して、デバイスドライバ50を介してデバイス40へデータを送信、同じくデバイス40からデータを取得する。
【0087】
ドライバウェア60は、オペレーティングシステム30のカーネルモード31で動作する。ドライバウェア60は、デバイスドライバ50をカーネルモード31で制御し、デバイスドライバ50間の通信をカーネルモード31で実現する(詳しく後述する。)。クラウド通信部34は、ユーザモード32で動作するアプリケーションプログラムであり、ネットワークストレージ3等の記憶手段にデータを転送又は受信する。クラウド通信部34はネットワークストレージ3内の断片ファイル10nの読み書きを行う。ネットワークストレージ3毎に専用API(Application Programming Interface)が用意される。
【0088】
ドライバウェア60は、制御部61、分散部62、復元部63、暗号化部64、復号化部65等を備える。RAMディスク11は物理的に独立して存在するものではなく、主記憶装置22の中の物理メモリの一部を使用してソフトウェア的に動作する疑似記憶装置又は疑似デバイスである。各デバイス40をそれぞれのデバイスドライバ50で制御する。具体的には、ネットワークカード41をネットワークドライバ54で、補助記憶装置14をディスクドライバ53で、通信アダプタ42を通信ドライバ55で制御する。
【0089】
また、RAMディスク11をRAMディスクドライバ52で制御する。ファイルシステムドライバ51は、ディスクドライバ53、RAMディスクドライバ52等の記憶装置用のデバイスドライバ50を制御するものである。結果的に、ファイルシステムドライバ51は、補助記憶装置14、RAMディスク11等の補助記憶装置に対して、オペレーティングシステム30の入出力機能(I/O機能)の窓口になり、制御する。オペレーティングシステム30は、本来、その入出力機能(I/O機能)を介して、デバイス40をデバイスドライバ50で制御する。
【0090】
ユーザ端末2で動作するアプリケーションプログラム33は、ユーザモード32で動作する。アプリケーションプログラム33ではカーネルモード31で動作するものがあるが、これはシステムリソースに直接アクセスする特殊なプログラムに限られる。汎用のアプリケーションプログラム、特にオブジェクト指向のアプリケーションプログラムは、基本的に、ユーザモード32で動作するものであり、カーネルモード31へアクセスするときオペレーティングシステム30が提供する入出力機能等の機能を利用する。
【0091】
本発明においては、オペレーティングシステム30とデバイスドライバ50の間に位置するドライバウェア60によって、オペレーティングシステム30の入出力機能、デバイスドライバ50を制御している。ドライバウェア60の構成及び機能については、詳しく後述する。補助記憶装置14は、ユーザ端末2等の電子計算機は1台以上を備えるが、以下、補助記憶装置14を一台のみを例に説明する。
【0092】
補助記憶装置14には、オペレーティングシステム30のコード、ユーザ端末2の動作に必要なプログラムコードを始め各種のアプリケーションプログラム33、モジュール等のソースコードが格納される(以下、単に、オペレーティングシステム30、アプリケーションプログラム33、モジュール等という。)。また、補助記憶装置14には、ユーザデータ等の電子データを格納することができる。ユーザデータは、ユーザの要求、アプリケーションプログラム33の仕様又は要求等の必要に応じて、暗号化されて、又は、暗号化されずに、補助記憶装置14に格納される。本実施の形態において、ユーザデータは、アプリケーションプログラム33又はユーザが利用する電子データ等である。
【0093】
ユーザデータは、特に限定しないが、テキストファイル、静止画ファイル、映像ファイル、音声ファイル、各種のフォーマットの文書ファイル(Word, pdf等)、コンピュータプログラムコードのファイル、実行可能なファイル(.exeファイル)、通信履歴、アプリケーションプログラムの動作履歴、オペレーティングシステム又はアプリケーションプログラムのバックアップファイル、各種の一時ファイル、メモリの内容等の任意の形式のファイル、これらのバックアップファイルである。また、ユーザデータは、秘密分散用コード、その復元用コード、暗号化用コード、復号化用コード、識別番号、暗証番号、個人情報、顧客データ、ビジネスのノウハウ、機密データに関する情報、その文書等のようにデータ管理が必要なデータを含め広く解釈される。
【0094】
上述したように、ユーザ端末2で利用するユーザデータはファイル10又は作業ファイル10として説明する。デバイスドライバ50は、オペレーティングシステム30とデバイス40の間に位置し、それらの間にデータの送受信を行う。オペレーティングシステム30は、そのI/O機能を利用し、デバイスドライバ50を経由してデバイス40を制御する。I/O機能は、オペレーティングシステム30とデバイス40との間のデータの入出力を行うための機能であるが、デバイスドライバ50を経由してデバイス40とのデータ入出力を行う。
【0095】
ユーザ端末2は、図示しないが、ソフトウェアとハードウェアの間に位置するハードウェア抽象化層(HAL:Hardware Abstraction Layer)を備えている。ユーザ端末2は、キーボードポート43に接続されるキーボード17、マウスポート44に接続されるマウス18、ディスプレイ(図示せず。)等の入出力装置を備える。ユーザ端末2は、図示しないが、周辺機器と接続するためのコネクタを有し、コネクタは、SATA、RS-232C、IrDA、USB、IEEE1394等のシリアルポート、IEEE1284、SCSI、IDE等のパラレルポートであるものが好ましい。
【0096】
また、ユーザ端末2は、これらのコネクタを経由してBLUETOOTH(登録商標)等の通信規格で他の機器と通信する。キーボードポート43とマウスポート44は、コネクタの一つである。ユーザ端末2は、スキャナ、プリンタ等の周辺機器を備えることができ、コネクタに接続される。ユーザ端末2上で動作するアプリケーションプログラム33は、オペレーティングシステム30が提供する機能を利用して、入出力装置からの入出力を行い、必要な処理をする。
【0097】
アプリケーションプログラム33は、例えば、ワードプロセッシングソフトウェア、テキストエディタ等の文書を作成、編集するためのソフトウェア、pdf形式のファイル等のような特定の形式のファイルを閲覧、作成、編集するためのソフトウェアである。オペレーティングシステム30は、キーボード17からの入力、マウス18からの入力や画面出力等のような入出力装置からの入出力機能、記憶装置やメモリの管理等の基本的な機能を提供し、ユーザ端末2全体を動作させ、管理するためのソフトウェアである。
【0098】
オペレーティングシステム30は、基本ソフトウェアとも言う。オペレーティングシステム30は、その提供する機能を実現するために多数の実行可能なプログラムから構成されるものである。オペレーティングシステム30、特に本発明の実施の形態に用いているWindows系のオペレーティングシステムについては、多数の書籍があり、その一部から紹介する。本発明を再現するためには、これらの公開されている書籍に記述されている技術知識、特に、デバイスドライバ開発に関する知識が必要である。
【0099】
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)。
【0100】
デバイスドライバの基礎知識からその開発に関する知識ついての書籍一覧:
- 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)。
【0101】
ここで、オペレーティングシステム30の構成要素の内の代表的なものから概要を説明する。オペレーティングシステム30(図4を参照)は、カーネル、エグゼキュティブ、サブシステム、デバイスドライバ50、HAL等から構成される。サブシステムは、オペレーティングシステム30のユーザモード32で提供されるサービスである。エグゼキュティブは、メモリの管理、プロセスとスレッドの管理、セキュリティ、I/O(入出力)、ネットワーク、及びプロセス間通信等のオペレーティングシステム30の基本的なサービスを提供するものである。
【0102】
カーネルは、スレッドスケジューリング、割り込み、例外通知、マルチプロセッサの同期等の低レベルの関数を提供する。また、カーネルは、エグゼキュティブの内部で使用するルーチンセットと基本オブジェクトを提供する。デバイスドライバ50は、通常は、ユーザ端末2に接続されたハードウェアごとに作成され、HALを介して、デバイス40を直接制御するものである。デバイスドライバ50は、アプリケーションプログラム33やオペレーティングシステム30からの入出力機能の要求(I/O呼び出し要求)を特定のデバイス40に対する入出力機能の要求(I/O要求)に変換するサービスと、ファイルシステムやネットワークドライバ等のシステムサービスを提供する。
【0103】
HALは、カーネル、デバイスドライバ50、及びエグゼキュティブをプラットフォーム固有のハードウェア機能から分離し抽象化するためのコード層である。HALは、ユーザ端末2の内蔵デバイスや、ユーザ端末2に接続されている外部デバイス等のハードウェアの機種、種類による違いを吸収し、オペレーティングシステム30の各サービスに対して抽象化したサービスを提供する。
【0104】
オペレーティングシステム30を構成する各種のサービスは、ハードウェアの機種、種類による違いを意識することなくハードウェアにアクセスすることが可能になる。以上のように、オペレーティングシステム30についてその代表的な構成、機能について説明したが、詳しくは関係書籍、ウェブソース等に譲り、詳細は省略する。
【0105】
〔アプリケーションプラットフォームプログラム35〕
アプリケーションプラットフォームプログラム35(図4を参照。)は、オペレーティングシステム30のユーザモード32で動作するアプリケーションソフトウェアである。アプリケーションプラットフォームプログラム35は、アプリケーションプログラム33と、オペレーティングシステム30との間に位置し、これらの間に命令やデータの送受信を仲介し制御するためのアプリケーションプログラムである。
【0106】
アプリケーションプラットフォームプログラム35は、アプリケーションプログラム33の起動、これに伴うプロセスの起動を監視し、これらの属性情報を取得する機能を有する。アプリケーションプラットフォームプログラム35は、オペレーティングシステム30からファイルシステムにアクセスするためのユーザインターフェースを提供する。アプリケーションプラットフォームプログラム35は、ドライバウェア60と連帯して動作し、ユーザモード32で取得した通信データをドライバウェア60へ送信し、ドライバウェア60の指示で、アプリケーションプログラム33とオペレーティングシステム30を制御するものである。
【0107】
アプリケーションプラットフォーム部35は、作業ドライブとしてRAMディスク11を割り当て、秘密分散の分散数、秘密分散の対象フォルダ(ネットワーク分散フォルダ12n、モバイル分散フォルダ12m、ローカル分散フォルダ12h、ネットワークフォルダ13、携帯端末6、補助記憶装置15)等のシステム構成によって変更可能な設定項目に関するデータを保持し、制御部61へ指示する。
【0108】
[クラウド通信部34]
クラウド通信部34は、ネットワークストレージ3(図1を参照。)と通信するための専用アプリケーションプログラム又はモジュールであり、ユーザモード32で動作する。クラウド通信部34は、ドライバウェア60と連帯して動作し、ネットワーク分散フォルダ12nとネットワークストレージ3間にデータを送受信(転送)するためのものである。クラウド通信部34は、ネットワーク分散フォルダ12n内のユーザデータをファイルシステムドライバ51とドライバウェア60を経由して取得する。
【0109】
クラウド通信部34は、この取得したユーザデータをドライバウェア60、ネットワークドライバ54、ネットワークカード41を介して、ネットワークストレージ3へ送信する。逆に、クラウド通信部34は、ネットワークストレージ3からユーザデータを、ネットワークカード41、ネットワークドライバ54、ドライバウェア60を介して取得し、ネットワーク分散フォルダ12nに、ドライバウェア60、ファイルシステムドライバ51を経由して格納する(図2参照)。ネットワークストレージ3等のクラウドストレージを提供する汎用サービスは、基本的にユーザモード32でインターフェース(I/F)を提供している。
【0110】
このようなクラウドストレージのインターフェースにアクセスするためには、ユーザモード32で動作するクラウド通信部34でアクセスする。クラウドストレージへのアクセス権を得るために、特にクラウドストレージへ接続の場合、クラウドストレージのアカウント(IDとパスワード)を標準機能として提供されているインターフェース(I/F)を利用し、ユーザモード32でアクセスする。クラウドストレージへのアクセスが認証されると、必要なアクセスをドライバウェア60で制御する。
【0111】
〔ドライバウェア60の説明〕
図5は、ドライバウェア60を含め、ユーザ端末2上で動作するソフトウェアの概要を図示している。この図を参照しながら、ユーザ端末2上で動作するオペレーティングシステム30、ドライバウェア60等を説明する。本実施の形態においては、オペレーティングシステム30は、米国法人のMicrosoft社のWindows XP(登録商標)以後、特にWindows 10を含めてWindowsを例に説明する。
【0112】
しかし、これは、本発明で使用できるオペレーティングシステム30の種類を制限するものではなく、同様な機能が実現できれば、任意のオペレーティングシステムを利用することができる。ユーザ端末2は、ソフトウェアとして動作するオペレーティングシステム30、ドライバウェア60等を備え、ハードウェア(デバイス40)としてネットワークカード41、補助記憶装置14、キーボードポート43、マウスポート44等を本体20に備えている。
【0113】
ドライバウェア60は、デバイスドライバ50間のデータの送受信をカーネルモード31で実現するためのものである。デバイスドライバ50間にカーネルモード31でデータを転送するとき、データ転送が高速に行うことができると共にデータのセキュリティを確保することができる。従って、ドライバウェア60は、大容量のデータを短時間で高速に転送するという利点がある。ドライバウェア60は、アプリケーションプログラム33からデバイスドライバ50へアクセスするとき、また、デバイスドライバ50からアプリケーションプログラム33へデータを送信するときに、共通のインターフェースを提供する。
【0114】
ドライバウェア60は、オペレーティングシステム30のカーネルモード31で動作する。ドライバウェア60は、電子データを秘密分散し断片ファイルを生成するための分散部62と断片ファイルを利用して元のファイル(電子データ)を復元するための復元部63を備える。ドライバウェア60は、アプリケーションプログラム33からの命令やデータ等を受信し、アプリケーションプログラム33へのデータを送信するためのインターフェース部70を有する。ドライバウェア60は、ドライバウェア60の全体の動作を制御するための制御部61を有する。
【0115】
また、ドライバウェア60の動作の履歴を取得するためのログ取得部66も有する。ドライバウェア60は、通信するデータを暗号化するための暗号化部64、暗号化されたデータを復号化するための復号化部65を有する。制御部61は、分散部62、復元部63、各デバイスドライバ50を制御するデバイスドライバ制御部67、インターフェース部70、ログ取得部66、暗号化部64、復号化部65等のドライバウェア60の他の部を制御し、監視するためのもので、ドライバウェア60の中核部である。
【0116】
デバイスドライバ制御部67は、各デバイスドライバ50を制御するための制御部71-74からなる。例えば、ネットワークドライバ54を制御するためのネットワーク制御部71、ファイルシステムドライバ51を制御するためのファイルシステム制御部72、通信ドライバ55を制御するための通信制御部73、キーボードドライバ56とマウスドライバ57を制御するための入力制御部74等からなる。
【0117】
デバイスドライバ50は、オペレーティングシステム30に付属して提供されるものと、デバイス提供者等によって必要に応じて作成され、ユーザ端末2にインストールされたものがある。本実施の形態においては、デバイスドライバ50は、オペレーティングシステム30に付属するものとして記述する。ネットワークドライバ54は、ネットワークカード41を制御するためのデバイスドライバである。
【0118】
ファイルシステムドライバ51は、補助記憶装置14に保存されているファイル(電子データ)、フォルダに関する情報を管理するもので、補助記憶装置14に保存されているファイルやフォルダへのアクセスを提供するものである。ファイルシステムドライバ51は、本例ではユーザ端末2に接続されたIDE(Integrated Drive Electronics)、ATA(Advanced Technology Attachment)、SATA(Serial ATA)、SCSI(Small Computer System Interface)、USB(Universal Serial Bus)、これらの派生規格等の規格に準拠した記憶装置へのアクセスを提供する。
【0119】
本発明は、ハードウェア規格を要旨とする発明ではないので、その詳細な説明は各規格の仕様文献に譲り、これ以上の説明は省略する。このように、ドライバウェア60は、アプリケーションプログラム33から出力される命令及び/又はデータを受信し、この命令の実行結果及び/又はデバイスドライバ50から受信した受信データを、アプリケーションプログラム33に送信するためのインターフェース部70を有する。
【0120】
また、ドライバウェア60は、デバイスドライバ50へこの命令及び/又はデータを送信し、デバイスドライバ50から命令の実行結果及び/又は受信データを受信するためのデバイスドライバ制御部67を有する。更に、ドライバウェア60は、これらの命令及び/又はデータを処理し、出力データを生成して、データの制御を行うための制御部61を有する。ドライバウェア60は、電子データを秘密分散するための分散部62、秘密分散された断片ファイルから元のファイルを生成するための復元部63を有する。
【0121】
ドライバウェア60は、データを暗号化して暗号化データを作成するための暗号化部64、及び、暗号化データを復号化し、元のデータを作成するための復号化部65を有する。暗号化部64と復号化部65は、ユーザ端末2に接続された外部機器、ネットワーク4へのデータを暗号化・復号化するだけではなく、ユーザ端末2に内蔵された又は接続された記憶手段に格納するデータを必要に応じて暗号化・復号化する。更に、ドライバウェア60の動作の履歴を取得し、保存するためのログ取得部66を有する。
【0122】
ログ取得部66は、特に、制御部61の動作の履歴を取得し、記録する。デバイスドライバ制御部67の各制御部71~74は、制御部61によって制御され、又は、制御部61から命令又はデータを受信し、これをデバイスドライバ50へ送信又は転送する。デバイスドライバ制御部67は、デバイスドライバ50から前述した命令を実行した結果、データを受信し、制御部61へ送信する。このように、ドライバウェア60は、ユーザ端末2を制御する、特にユーザ端末2の各デバイスの動作を制御する中核部である。
【0123】
[ディレクトリ構造]
図6には、RAMディスク11のディレクトリ構造の例を図示している。作業フォルダ16の中にはサブフォルダとファイルが階層構造で格納される。例えば、図6に図示したように、作業フォルダ16の中には、フォルダ16a、フォルダ16b等のようにサブフォルダが作成され、これらの中にファイル10が格納される。例えば、ファイル10は、作業フォルダ16の中のフォルダ16aと並んで格納、又は、フォルダ16aの中に格納される。
【0124】
ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hは、作業フォルダ16と同様の階層構造を有し、ファイル10の断片ファイル10n、10m、10hをそれぞれ格納する。例えば、図6に図示したように、ネットワーク分散フォルダ12nの中には、フォルダ16an、フォルダ16bn等のようにサブフォルダが作成され、これらの中に断片ファイル10nが格納される。断片ファイル10nは作業フォルダ12nの中のサブフォルダと並んで格納、又は、これらのサブフォルダの中に格納される。
【0125】
モバイル分散フォルダ12mの中には、フォルダ16am、フォルダ16bm等のようにサブフォルダが作成され、これらと並んで又はこれらの中に断片ファイル10mが保存される。ローカル分散フォルダ12hの中には、同じくフォルダ16ah、16bh等のサブフォルダが作成され、これらと並んで又はこれらの中に断片ファイル10hが保存される。本実施の形態においては、アプリケーションプログラム33で利用している作業中のファイル10は、作業フォルダ16に又は作業フォルダ16の中のサブフォルダに格納されて、編集等の作業が行われる。
【0126】
ファイル10が作業フォルダ16に格納されるとき、秘密分散処理が行われて複数の断片ファイル10n、10m、10hが生成され、この生成された断片ファイル10n、10m、10hは、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに、作業フォルダ16と同じディレクトリ構造で格納される。ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hは、それぞれネットワークストレージ3、携帯装置6及び補助記憶装置14と送受信するデータを格納する。これらのディレクトリ構造は、同期を取る。
【0127】
詳しくは、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hの中のディレクトリ構造は、同じディレクトリ構造でネットワークストレージ3、携帯装置6及び補助記憶装置14と同期を取る。ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hの中の断片ファイルは、同じディレクトリ構造でネットワークストレージ3、携帯装置6及び補助記憶装置14と同期を取る又は転送される。
【0128】
本実施の形態において、作業フォルダ16の中のファイル10とは、作業フォルダ16の中に格納されているファイル10、作業フォルダ16の中のサブフォルダの中に格納されているファイル10を言う。言い換えると、作業フォルダ16の中のファイル10とは、作業フォルダ16のディレクトリ構造の任意のフォルダに格納されているファイルを言う。ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hについても同様である。但し、ファイル10とこのファイル10を秘密分散して生成した断片ファイル10n、10m、10hはディレクトリ構造が同じフォルダに格納される。
【0129】
[ユー端末2の動作概要]
図7は、本発明の第1の実施の形態の電子データ管理システム1のユーザ端末2の動作概要を示すフローチャートである。まず、ユーザ端末2に電源を入れて起動させる(ステップ1、ステップ2)。ユーザ端末2上にオペレーティングシステム30が起動し、初期処理等を行い、そして、ドライバウェア60が起動する(ステップ3)。
【0130】
RAMディスク11を作成するために、ファイルシステム制御部72が主記憶装置22上にRAMディスク11用の領域を確保し、RAMディスク11のための設定がオペレーティングシステム30及びドライバウェア60で行われる(ステップ4)。RAMディスク11に必要な領域、言い換えると、主記憶装置22上に常駐するメモリサイズは、標準サイズとして500MB、1GB、10GB等のように予め設定されるが、ユーザによって指定することができる。
【0131】
ドライバウェア60は、デバイスドライバ50を制御しているので、ファイルシステムドライバ51等を制御し、RAMディスク11をメインの補助記憶装置として動作させる設定を行う。まず、RAMディスク11を補助記憶装置としてオペレーティングシステム30のI/O機能に登録する。また、RAMディスクドライバ52が読み込まれ、ファイルシステム制御部72がマウント要求を発行することで、ファイルシステムドライバ51と連携される。これにより、ファイルシステムドライバ51とオペレーティングシステム30には、通常の補助記憶装置として、RAMディスク11が認識される。
【0132】
次に、RAMディスク11のフォーマット処理を行う。このとき、RAMディスク11のパーティション情報(MBR形式、GPT形式等)の設定とフォーマットが行われる。これにより、アプリケーションプログラム33、オペレーティングシステム30等からRAMディスク11にアクセス可能になる。ここで、例として、RAMディスク11のフォーマットに使うWindowsのAPI関数を示めす。このフォーマット処理は、例えば、次の関数を利用して、アプリケーションプラットフォームプログラム35から行われる。
【表1】
【0133】
次に、RAMディスク11の中で、作業フォルダ16、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hが作成される(ステップ5)。そして、クラウド通信部34のプログラムが起動され、ネットワーク分散フォルダ12nの設定が、オペレーティングシステム30、ドライバウェア60、アプリケーションプラットフォームプログラム35等によって行われる(ステップ6)。そして、ユーザ端末2は、ネットワーク4(図1を参照。)に接続し、ネットワークストレージ3と接続する(ステップ6)。
【0134】
言い換えると、ユーザ端末2は、ネットワークストレージ3と通信リンクを確立させる。ユーザ端末2からネットワークストレージ3との接続を要求し、ユーザの承認を経て接続、また、予め設定されたデータに基づいて接続する。次に、ドライバウェア60は、携帯端末6との接続に必要な処理を行う(ステップ7)。ユーザ端末2から携帯端末6との接続を要求し、ユーザの承認を経て接続、また、予め設定されたデータに基づいて接続する。モバイル分散フォルダ12mは、携帯端末6と接続するために、オペレーティングシステム30のI/O機能に登録する。
【0135】
ドライバウェア60は、携帯端末6への接続要求を出し、ユーザが携帯端末6を起動させ、接続するのを待機する。ユーザが携帯端末6からユーザ端末2と接続する許可を出すと、ドライバウェア60はこれを受信して、携帯端末6の認証を行い、携帯端末6とモバイル分散フォルダ12mとの通信リンクを確立する(ステップ7)。ドライバウェア60は、ローカル分散フォルダ12hを、補助記憶装置14との接続を設定する(ステップ8)。
【0136】
次に、作業フォルダ16、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hには、ディレクトリ構造が設定される。ここで、ドライバウェア60は、ネットワークストレージ3、携帯端末6、補助記憶装置14の各記憶装置から設定されたフォルダのディレクトリ構造を読み出し、同じディレクトリ構造を作業フォルダ16、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに設定する。
【0137】
このとき、ネットワークストレージ3のネットワークフォルダ13、携帯端末6のフォルダ、補助記憶装置14のローカルフォルダ15のディレクトリ構造と、それらのサブフォルダの中に格納されているファイルのファイル名のみが取得され、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに設定される。よって、作業フォルダ16、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hには、各フォルダのディレクトリ構造が作成され、その中でファイル名が格納される。
【0138】
これは、ユーザ側から見ると、実際にファイル10があるように見える。言い換えると、ファイル10を疑似表示する。この疑似表示では、復元された作業用のファイル10は実在するかのようにそのファイル名を表示し、作業用のファイル10にアプリケーションプログラム33等からアクセス要求があるときに、作業用のファイル10を断片ファイル10n,10m,10hから復元する。これにより、ユーザ端末2をユーザが利用する準備ができる。作業フォルダ16の中のファイルは補助記憶装置14の中に格納されているように見える。
【0139】
つまり、ドライバウェア60は、オペレーティングシステム30の入出力機能とデバイスドライバ50を制御し、ファイルへのアクセスをリダイレクトし、補助記憶装置14へのファイルアクセスをRAMティスク11へのアクセスに切り替える。アプリケーションプログラム33から見ると、作業フォルダ16は補助記憶装置14のマイドキュメントとして、またその中のフォルダのように見える。ユーザ端末2上にアプリケーションプログラム33が動作し、データ処理等を行う(ステップ8)。
【0140】
アプリケーションプログラム33は、ユーザ端末2上で動作し、ユーザ又は他のアプリケーションプログラム、オペレーティングシステム30のサービスの要求又は指示によって、動作する。アプリケーションプログラム33は、ファイルを読み込む要求を出す(ステップ9)。このとき、アプリケーションプログラム33は基本的に補助記憶装置14の中に格納されている適当なフォルダと適当なファイルを選択し読み込む要求を出す。この適当なフォルダと適当なファイルはユーザやアプリケーションプログラム33にとって補助記憶装置14の中のつもりで読み書きするが、その実体は作業フォルダ16の中にある。
【0141】
ドライバウェア60のリダイレクト機能を使って、補助記憶装置14への読み書き要求を作業フォルダ16に振り替えて制御する。アプリケーションプログラム33からの要求をドライバウェア60が受信する。ドライバウェア60は、要求されたファイルに関して、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hから該当する断片ファイルを要求し、ファイル10の復元を行う(ステップ10)。
【0142】
ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hには、該当する断片ファイル10n,10m,10hがあると、これをドライバウェア60が取得し、復元部63に渡して、ファイル10を復元させる。復元部63は断片ファイル10n,10m,10hを受信して、これを適当な復元処理を行ない元のファイル10を復元する。そして、復元部63はこの復元した元のファイル10を制御部61へ渡す。まず、制御部61はこの復元されたファイル10を作業フォルダ16の中に格納する。
【0143】
そして、制御部61は作業フォルダ16からファイル10を読みだして、アプリケーションプログラム33にインターフェース部70を介して渡す。アプリケーションプログラム33はこれを受け取り、ファイル10を利用し始める(ステップ11)。ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに要求された断片ファイル10n、10m、10hがない場合、ドライバウェア60は、これをネットワークストレージ3、携帯端末6、補助記憶装置14の各記憶装置から取得して、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに格納する。
【0144】
そして、ドライバウェア60は、上述の復元の処理を行う。ドライバウェア60は、ネットワークストレージ3からファイルを受信するとき、次の2つの方法を取る。第1の方法は、ネットワークストレージ3からファイルを受信するとき、ファイルの読み出し要求をクラウド通信部34に送信する。クラウド通信部34はこれをネットワークストレージ3の接続設定に従い、ネットワークドライバ54を介して、ネットワークストレージ3からファイルを読み出し、ドライバウェア60に渡す。
【0145】
第2の方法は、ネットワークストレージ3からファイルを受信するとき、ファイルの読み出し要求をネットワーク制御部71とネットワークドライバ54等を介してネットワークストレージ3へ送信し、ネットワークストレージ3から送信されたファイルを受信する。この方法は、ネットワークストレージ3からファイルを読み出す作業は、ユーザモード32を介せず、カーネルモード31のみで実現できる。
【0146】
第1方法のように、ユーザモード32で動作するアプリケーションプログラム33を利用している場合は、ドライバウェア60は、これらのネットワークフォルダ13を設定するときの設定関数、設定値等を受信しているので、ネットワークフォルダ13にクラウド通信部34からの要求として送信することができる。ネットワークストレージ3から見ると、クラウド通信部34からのファイルの読み出し要求と、ドライバウェア60から送信されたファイルの読み出し要求は同じであり、同じ処理を行い、要求されたファイルを送信する。
【0147】
アプリケーションプログラム33はファイル10を利用して閲覧、編集等の作業を行い、これを保存する要求を出す(ステップ11、ステップ12)。アプリケーションプログラム33が出す要求の保存先は補助記憶装置14である。アプリケーションプログラム33が出す保存要求をドライバウェア60が検出する。そしてドライバウェア60がこの保存する動作をリダイレクトして作業フォルダ16にファイル10を保存する。そして、このようにファイル10が保存されると、ドライバウェア60は保存動作の終了を検知し、作業ファイル10を秘密分散する処理を開始する(ステップ13)。
【0148】
このとき、作業ファイル10を制御部61が読み取り、これを分散部62へ渡し、秘密分散処理をさせる(ステップ13)。分散部62は作業ファイル10を受け取り、これを秘密分散し、断片ファイル10n,10m,10hを生成する。分散部62は生成した断片ファイル10n,10m,10hを制御部61へ渡し、制御部61は断片ファイル10n,10m,10hをネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに格納する(ステップ14)。
【0149】
断片ファイル10n,10m,10hの格納が終わると、ドライバウェア60は断片ファイル10n,10m,10hを各記憶装置3、6、14へ転送する(ステップ15)。ネットワーク分散フォルダ12nの中に格納された断片ファイル10nは、ドライバウェア60によってクラウド通信部34へ送信され、最終的にネットワークストレージ3に格納される。モバイル分散フォルダ12mの中の断片ファイル10mは、ファイルシステム制御12によって読み出され、通信制御部73と通信ドライバ55を介して最終的に携帯端末6に格納される。
【0150】
ローカル分散フォルダ12hの中の断片ファイル10hは、ファイルシステム制御部12によって読み出され、ファイルシステム制御部72とファイルシステムドライバ51、ディスクドライバ53を介して補助記憶装置14に格納される。ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに格納された断片ファイル10n,10m,10hの転送が終了すると、転送した断片ファイル10n,10m,10hがこれらの各分散フォルダ12から削除される。
【0151】
削除のとき、断片ファイル10n,10m,10hを削除するよう、制御部61から指示が出されて実行される。ドライバウェア60は作業ファイル10の利用が終了したかを常時監視しており、利用が終了すると、作業フォルダ16の中の作業ファイル10を削除する。作業ファイル10が秘密分散されたか否かを最終確認するが、作業ファイル10の最後の保存時に秘密分散されていない場合は、上述のステップ13~ステップ15の処理を行い、秘密分散して断片ファイル10n、10m、10hを生成し、これを最終保存先に転送する。
【0152】
作業ファイル10の利用終了は、アプリケーションプログラム33が終了したか、又は、アプリケーションプログラム33が作業ファイル10を閉じる操作を監視することで実現する。作業ファイル10が開かれているとき、オペレーティングシステム30の設定で作業ファイル10を他のアプリケーションプログラム等で上書き保存を禁止する設定が行われ、作業ファイル10の一時ファイルが作成され、アプリケーションプログラム33によって定期的に一時ファイルが更新されている。
【0153】
ドライバウェア60は、常時、この上書き保存を禁止する設定、アプリケーションプログラム33が出すファイルを閉じる命令、一時ファイルの存在、一時ファイルの更新等を監視している。この監視によって、作業ファイル10の状態を取得し、作業ファイル10を秘密分散する処理、作業ファイル10を削除する処理等の必要な処理を行う(ステップ16)。アプリケーションプログラム33が終了した場合、又は、アプリケーションプログラム33が作業ファイル10を閉じて作業ファイル10の利用を終了した場合、作業ファイル10を秘密分散し、断片ファイル10n、10m、10hを転送する(ステップ16)。
【0154】
そして、作業ファイル10を最終的に作業フォルダ16から削除し、次の処理へ移行する(ステップ18、ステップ19)。ユーザ端末2は、電源が切断されると、主記憶装置22の内容が消去され、従って、RAMディスク11の内容も消去される。これに伴い、作業フォルダ16及びネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに格納されている断片ファイル等は消去されるので、作業ファイル10に伴う解読可能なユーザデータがユーザ端末2に残らない。
【0155】
ユーザ端末2の補助記憶装置14に断片ファイル10hが保存されるが、断片ファイル10hのみを利用して元のファイル10を復元することができないし、断片ファイル10hのみを解析しても意味ある内容を取得することができない。従って、ユーザデータがユー端末2から情報漏洩せず、機密確保ができる。上述のように、秘密分散及び復元の処理はカーネルモード31で行われるので、作業ファイル10を高速で秘密分散又は復元処理をする。断片ファイルの転送も基本的にデバイスドライバ50を制御してカーネルモード31で行うことで、ユーザモード32へ処理やユーザモード32でファイルデータを渡すことをしないため、高速転送ができ、情報漏洩も低減できる。
【0156】
[管理プログラムの動作]
以下、ドライバウェア60の動作例について図8に図示したフローチャート参照しながら説明する。ドライバウェア60は、アプリケーションプラットフォームプログラム35及びクラウド通信部34と共に管理プログラムとして、提供される。管理プログラムは、ネットワーク4上のネットワークストレージ3又はその他のファイルサーバ、アプリケーション提供サイトに格納されていて、これをダウンロードして、ユーザ端末2にインストールする(ステップ30)。
【0157】
また、管理プログラムは、記録媒体等に格納されて提供される。このように、管理プログラムは、任意の方法で提供される。管理プログラムは、ユーザ端末2にインストールされて起動し、所定の手順で、管理プログラムのライセンス認証、ユーザ端末2の端末認証、ユーザ認証が行われる(ステップ31)。これらの認証は、全て正常に認証されてから、ユーザ端末2に管理プログラムを利用し、ユーザデータを利用する準備ができる。このとき、ユーザ端末2において、RAMディスク11が主記憶装置22内に設定される。
【0158】
RAMディスク11の設定は、本例では、ドライバウェア60に内蔵されたファイルシステム制御部72によって行われている(図5参照)。この設定の仕方については、上述しているので詳細な説明は省略する。そして作業フォルダ16、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hが作成され、ディレクトリ構造の設定が行われる。
【0159】
管理プログラム(ドライバウェア60)にはインストールされたユーザ端末2を制御するための制御モードがある。ここで、管理プログラムがユーザ端末2を制御しユーザデータの漏洩を防止する制御を行っている場合、制御モードが有効である、又は、制御モードをONにしているという。逆に、管理プログラムがユーザ端末を制御していない場合、制御モードが無効である、又は、制御モードをOFFにしているという。
【0160】
制御モードをOFFにすると、インストールされている管理プログラムは電子計算機の制御を行わず、ユーザ端末2は従来通り動作する。このとき、管理プログラムはユーザ端末2にインストールされ、起動し動作しているので、ユーザ端末2の動作を監視し、そのログを取得して保存することができる。管理プログラムの制御モードをONにして、ユーザ端末2の制御が開始される(ステップ32)。この制御モードをONにする指示は、ユーザ端末2のアプリケーションプラットフォームプログラム35から指示して行う。
【0161】
又は、制御対象のファイル10にアプリケーションプログラム33又はユーザがアクセスするとき、これをドライバウェア60が検知し、制御モードをONにする。よって、管理プログラムは、ユーザ端末2に接続されている補助記憶装置14、RAMディスク11等を確認する(ステップ33)。また、各分散フォルダ12の確認も行われる。この確認は、オペレーティングシステム30に認識されている補助記憶装置の中で、RAMディスク11とネットワーク分散フォルダ12nが含まれているか否かで確認する。
【0162】
ユーザ端末2に内蔵された補助記憶装置14への書き込みを禁止に設定する(ステップ34)。このとき、USBメモリ、リムーバブルドライブ、フレキシブルディスクドライブ、外付補助記憶装置等の記憶装置は、書き込み禁止に設定される。言い換えると、ユーザ端末2からユーザデータを持ち出しができるような記録手段に対して、ユーザデータの記録を制限する。この記録手段には、上述した記憶装置に例示した記憶装置以外のものがあっても本発明の範囲に入るものとする。このとき、RAMディスク11は、書き込み等のアクセスを禁止にしない。
【0163】
また、オペレーティングシステム30がインストールされている補助記憶装置14は、オペレーティングシステム30の動作に必要なものであり、書き込み禁止等のアクセス制限を受けない。よって、アプリケーションプログラム33又はオペレーティングシステム30からは、これらのユーザデータの記録制限を受けた記憶装置にユーザデータを書き込みしようとするとき、ドライバウェア60がこれを検知して書き込みの動作を制御する。管理プログラムは、ネットワーク4へ通信する通信ポートの設定を行う(ステップ35)。
【0164】
ネットワーク4への通信としては、ネットワークカード41を介してインターネット、LAN等への有線又は無線通信、コンピュータ同士の有線又は無線通信が含まれる。この設定では、ユーザ端末2に必要な通信ポートのみが使用許可され、不必要なポートが通信禁止にされる。これは、ユーザや管理者等が選択設定するものであり、管理プログラムがインストールされるとき、又は、その制御モードをONにするとき、予め設定又はユーザが選択できる。ユーザ端末の上記の通信ポート以外のインターフェースは使用禁止に設定される。
【0165】
例えば、USB、SCSI、IDE、RS-232C規格のインターフェースは使用禁止に設定される(ステップ36)。更に、管理プログラムは、コピー&ペースト、クリップボードの使用、ネットワーク機能、スクリーンキャプチャの使用は使用禁止にする(ステップ37)。しかし、ユーザ、管理者等は、これらを全部又は一部を使用したい場合は、それを使用禁止にしない。最後は、管理プログラムは、オペレーティングシステム30の正常な動作に必要なプロセスを指定し、例外設定をする(ステップ38)。例えば、オペレーティングシステム30の動作に必要なSystemプロセス等を動作可能にする。
【0166】
管理プログラムが制御モードをオンにした後の、ステップ33~ステップ38の各種の確認及び設定は、必ずしもこの順番で行う必要はなく、状況に応じて自由自在に組み合わせることができる。これらの設定が終わると、管理プログラムは、RAMディスク11の設定を行う。ネットワーク分散フォルダ12nは、ネットワークストレージ3の仮想記憶装置として設定することができる。このとき、アプリケーションプログラム33、オペレーティングシステム30等に対しては、パスが設定される。
【0167】
このパスにアクセスすると、実体データはネットワークストレージ3からダウンロードされ、RAMディスク11に格納されるので、RAMディスク11の設定では、RAMディスク11をネットワーク分散フォルダ12nにマッピングするための設定をする。また、RAMディスク11に格納されたユーザデータをネットワークストレージ3へ転送するときの各種設定が行われる。例えば、ユーザデータに関して、暗号する暗号鍵の設定、転送するタイミング(特定時間、間隔等)、通信速度、優先度等を設定するが、管理者はこれらの設定を必要に応じて選択することができる。
【0168】
管理プログラムは、起動しているプロセスのプロセス名、プロセスIDを取得する(ステップ38)。管理プログラムは、取得したプロセス名とプロセスIDをプロセス制御リスト(表1を参照。)に保存する(ステップ39)。プロセス制御リストには、ファイルパスの条件として、その保存先又は作業フォルダ16が指定される。本例では、「Application 1」は、「e:\」を設定している。ネットワークストレージ3にはネットワークドライブが割り当てられ、「e:」のようなドライブ名を割り当て、このドライブにアクセスするようにネットワークストレージ3の任意のフォルダを自由に読み書きできる。
【0169】
これにより、アプリケーションプログラム33が起動され、ユーザ端末2で作業が行われ、ユーザデータの読み込み及び書き込みは管理プログラム(ドライバウェア60)で監視しながら制御する。よって、アプリケーションプログラム33とオペレーティングシステム30の処理結果、処理されたユーザデータは、秘密分散されてそれぞれ異なる記憶装置に格納される。管理プログラムの制御モードはこれを意図的にOFFに設定しない限り継続する。管理者又はあらかじめ設定された条件で、管理プログラムの制御モードをOFFにすると、上述設定した設定を全て又は一部を解除する。
【表2】
【0170】
[制御部の動作]
ドライバウェア60が制御モードをオンにするように指示されると、制御部61はこの指示を受信し、ファイルアクセスを全て禁止する命令を、ネットワーク制御部71、ファイルシステム制御部72、通信制御部73、入力制御部74等の記憶装置を制御する制御手段へ送信し、監視及び設定を行う。上述した制御プロセスの設定、ネットワーク利用の禁止、クリップボードの利用禁止、スクリーンキャプチャの使用禁止、コピーアンドペースト機能の禁止等は制御部61から出された指示に従って行われる。
【0171】
オペレーティングシステム30のエグゼキュティブのプロセスマネージャーはユーザ端末2で実行されている全てのプロセスを管理している。ここに、コールバック関数を登録(カーネルのAPIを利用)することで、プロセスの起動・終了のイベントを取得する。実行するプロセスの起動・終了イベントに対して、コールバック関数を設定し、アプリケーションプログラム33の起動と終了を検出できるように設定する。アプリケーションプラットフォームプログラム35が動作しているとき、アプリケーションプログラム33が起動する。
【0172】
アプリケーションプラットフォームプログラム35は、アプリケーションプログラム33の起動を検出する。CreateProcessのSUSPEND(サスペンド)モードでアプリケーションプログラム33のプロセスが起動され、アプリケーションプラットフォームプログラム35は、このプロセスのハンドルとプロセスIDを取得する。プロセスがCreateProcessのサスペンドモードで起動されると、一時休止した状態になり、再開されるまで実行されない。ハンドルは、CreateProcessから戻されるプロセスハンドルである。
【0173】
アプリケーションプラットフォームプログラム35は、取得したハンドルとプロセスIDを制御部61に送信する。プロセスが起動されると、ファイルシステム制御部72内のコールバック関数を実行し、制御部61へ制御開始を通知する。制御部61は、ハンドルとプロセスIDを取得する。この取得の詳細な動作について後述する。制御部61は、ファイルシステム制御部72へハンドルとプロセスIDを送信し、プロセスIDを利用して、管理テーブルを参照し、管理テーブルの値に従って、ファイルアクセスを許可する設定を行う。
【0174】
ファイルアクセスを許可するように設定する項目はプロセスID、プロセス名、ファイル名、フォルダ名、ファイル操作である。ファイル操作に指定される設定は、読み込み専用(Read Only)と、読み込み書き込み(Read/Write)とのいずれかを許可する設定である。これらの一連の設定が終わると、取得したハンドルを使って、サスペンドプロセスを再開する。アプリケーションプログラム33が動作される。そして、制御部61は、アプリケーションプログラム33が終了するときにオペレーティングシステム30から発される通知である終了イベントを待機する。
【0175】
アプリケーションプログラム33が終了すると、ファイルシステム制御部72内のコールバック関数を実行し、制御部61へ制御解除を通知する。ファイルシステム制御部72は、プロセス制御リスト(表1を参照。)によって行われていた制御解除をし、それ以後は、このアプリケーションプログラム33の制御を行わない。無論、このアプリケーションプログラム33がユーザデータにアクセスしたときは、制御が再開される。
【0176】
アプリケーションプログラム33が終了するとき、終了イベントが発生される。アプリケーションプラットフォームプログラム35は終了イベントのプロセスIDを取得する。アプリケーションプラットフォームプログラム35は、終了イベントのプロセスIDを制御部61に送信する。制御部61は、終了イベントのプロセスIDを取得する。制御部61は、RAMディスク11に格納されたアプリケーションプログラム33が利用していたユーザデータを取得する。
【0177】
このユーザデータは、分散フォルダ12に格納されている。ユーザ端末2において、オペレーティングシステム30の動作に必要な最低限の実行ファイルとプロセスを制限なしに動作させる必要がある。例えば、プロセスとしては、System、Kernel.exe、explorer.exeが例示できる。制御プロセス名、制御ディレクトリは、プロセス制御リストに登録される。制御部61は、システムプロセスから補助記憶装置14へのアクセスを取得し、これをRAMディスク11の該当するフォルダへのアクセスに置き換え、言い換えると、リダイレクトする。
【0178】
プロセス名を取得するには、ZwQueryInformationProcess関数を使い、実行プロセスのイメージパスを取得し、これの実行ファイルexeのファイル名からプロセス名を取得する。プロセスIDを取得するには、PsGetCurrentProcessId()関数を使って現在のプロセスのIDを取得する。ファイル名を取得するには、ファイルのI/O要求に関する入出力(I/O)要求(IRP)から参照されるファイルオブジェクトよりファイル名を取得する。
【0179】
イベントの検出は、次のように行われる。オペレーティングシステム30のカーネル内のI/O要求は、IRP(IO Request Packet)の形式で行われる。ファイルアクセスに関しては、次の表2に示すIRPが利用される。このIRPがファイルシステム51へ要求されるときに、制御部61を通過することを監視して、イベント検出を行う。
【表3】
【0180】
ユーザデータは、基本的にアプリケーションプログラム33から呼び出されて、主記憶装置22に展開されて利用される。ユーザデータを呼び出すアクションのとき、アプリケーションプログラム33は、補助記憶装置14に対してファイル10を読み込むためのアクセス要求を出す。ファイル10の実態は分散フォルダ12と、ファイル10の断片ファイル10n、10m、10hの実体はその転送先のネットワークストレージ3、補助記憶装置14、携帯端末6等に格納されている。
【0181】
この要求が出されると、ネットワークストレージ3、補助記憶装置14、携帯端末6等から断片ファイル10n、10m、10hがダウンロードされ、分散フォルダ12に格納され、断片ファイル10n、10m、10hから元のファイル10が復元されて作業フォルダ16に格納される。復元されたファイル10は、アプリケーションプログラム33へ渡され、作業を行う。
【0182】
そして、アプリケーションプログラム33の作業が終了し、作業ファイル10を保存するとき、同じく、補助記憶装置14に作業フォルダ16に保存する要求を出力するが、これをリダイレクトし、作業ファイル10は作業フォルダ16に格納され、その後、秘密分散された断片ファイル10n、10m、10hが分散フォルダ12に保存される。そして、分散フォルダ12から断片ファイル10n、10m、10hが転送される。断片ファイル10n、10m、10hが各転送先の記憶装置4、6、14へ転送されて格納されるが、格納が成功しなかった場合、リトライする。
【0183】
[暗号化と復号化]
図9は、ユーザ端末2で暗号化された断片ファイル10n、10m、10hを利用する流れを図示しており、基本的な流れは上述の図7のフローチャートと同じであり、ここで異なる部分を説明する。ドライバウェア60は電子データを暗号化するための暗号化部64と、暗号化された電子データを復号化するための復号化部65を有する。制御部61は、暗号化された断片ファイル10n、10m、10hを受信すると、これを復号化部65に渡して復号化させる(ステップ9)。
【0184】
復号化部65は制御部61から受信した暗号化された断片ファイル10n、10m、10hを所定の復号鍵で復号化処理し、結果を制御部61に渡す(ステップ9a)。制御部61は復号化された断片ファイル10n、10m、10hを各分散フォルダ12n、12m、12hに格納し、以後は、断片ファイル10n、10m、10hを用いて元のファイル10を復元する作業が復元部63によって行われる(ステップ9a)。ここで、制御部61は復号化部65から受信した復号化された断片ファイル10n、10m、10hを復元部63に直接渡し復元処理を行ってよい。
【0185】
2以上の断片ファイル10n、10m、10hを利用して復元処理が行われるので、1つの断片ファイルが復号化されると他の断片ファイルが復号化されるまでに、主記憶装置22上、作業フォルダ16及び分散フォルダ12のいずれかの中に格納されて待機することができる。復元部63は復元に必要な数の断片ファイル10n、10m、10hを受信すると、復元処理を行い、生成された元のファイル10を制御部61に渡し、制御部61は、これを、ファイルシステム制御部72を介して、作業フォルダ16に格納する。
【0186】
制御部61は、分散部62で秘密分散されて生成された断片ファイル10n、10m、10hを受信すると、これを暗号化部64に渡して暗号化させる(ステップ14a)。暗号化部64は制御部61から受信した断片ファイル10n、10m、10hを所定の暗号鍵で暗号化処理し、結果を制御部61に渡す(ステップ14a)。制御部61は暗号化された断片ファイル10n、10m、10hを受信するとこれを分散フォルダ12に格納し、その後、各記憶装置3、6,14へ転送する。制御部61は暗号化された断片ファイル10n、10m、10hを受信すると、これを各記憶装置3、6、14へ直接転送処理を行うことができる。
【0187】
[利用形態]
図10図11は、本実施の形態において、秘密分散されたユーザデータを利用する他の例を図示している。ユーザ端末を稼働させ、オペレーティングシステム30が起動し初期設定を行い、ドライバウェア60も起動し、初期設定を行う(ステップ50、51、52)。ドライバウェア60によってRAMディスク11の設定行われ、分散フォルダ12が設定される(ステップ53、54)。ここで、ドライバウェア60は、制御モードをONに設定し、各種設定を行い、ユーザ端末2を利用する環境を特定する。
【0188】
例えば、ユーザ端末2は、通常利用する環境である否か特定する。例えば、通常利用する環境とは、ユーザ端末2を日常的に利用するオフィス、自宅等を例示することができる。ユーザ端末2を利用する環境は、ユーザ端末2がネットワーク4と接続するときのネットワークアドレス、無線アクセスポイント、ユーザ端末2が携帯端末6と接続するときのネットワークアドレス、携帯端末6のネットワークアドレス、ユーザ端末2に内蔵接続又は外付け接続された位置特定手段による位置情報、携帯端末6の位置特定手段によって測定した位置情報等によって行う。本例では、ユーザ端末2を日常的に利用する環境としてオフィスを例に説明する。
【0189】
ユーザ端末2はオフィスにある場合は、ユーザ端末2の利用は通常通りである。例えば、上述の図7のフローチャートとその説明の通りの利用が行われる(ステップ55→ステップ56)。ユーザ端末2はオフィスにない場合、言い換えると通常利用の環境ではない場合、ユーザ端末2はネットワーク4に接続され、ネットワークストレージ3が利用できるか否かを確認する(ステップ57)。この確認は、ユーザ端末2がネットワーク4に接続され、必要なセキュリティ及びデータ通信速度が確保されているか否かで判定する。
【0190】
ステップ57の判定で、ネットワークストレージ3が利用できる場合は、基本的に携帯端末6が利用できるので、通常通りのように、ユーザ端末2を利用する(ステップ57→ステップ56)。ステップ57の判定で、ネットワークストレージ3が利用できない場合は、携帯端末6が接続されているか否か確認する(ステップ57→ステップ58)。携帯端末6が接続され、正常に認証されている場合は、ユーザ端末2の利用が開始される(ステップ58→ステップ61)。
【0191】
携帯端末6が接続されていない、又は接続されても正常に認証されていない場合、ユーザ端末2の利用が利用不可と判断され、携帯端末6の接続のやり直しを指示する画面が表示され、次の処理を待機する(ステップ58→ステップ59)。ユーザは、携帯端末6をユーザ端末2に再接続し認証等を行い、携帯端末6がユーザ端末2に正常に接続されるまでに行われる(ステップ60→ステップ58)。携帯端末6がユーザ端末2に再接続され、ユーザ認証を行う。
【0192】
これが所定回数で正常に接続できない場合、又は、所定期間以内で正常に接続できない場合、携帯端末6の利用が不許可になり、ユーザはユーザ端末2でユーザデータを利用することができない。ステップ61において、ユーザ端末2の利用が開始すると、アプリケーションプログラム33は、ファイル10を読み込む要求を出し、これをドライバウェア60で監視し制御する(ステップ62)。
【0193】
具体的には、読み込み要求されたファイル10の断片ファイル10m、10hを取得し、これを利用して元のファイル10を復元し、復元したファイル10を作業フォルダ16に格納してアプリケーションプログラム33に渡す(ステップ63~65)。アプリケーションプログラム33は作業ファイル10を利用する。アプリケーションプログラム33は作業ファイル10を保存する要求を出す(ステップ65、ステップ66)。作業ファイル10は作業フォルダ16に格納され、秘密分散され、断片ファイル10n、10m、10hが生成される(ステップ67)。
【0194】
生成された断片ファイル10n、10m、10hは分散フォルダ12に格納され転送される(ステップ68、ステップ70)。このとき、ネットワークストレージ3が利用できないので、断片ファイル10nが転送されない。必要であれば、断片ファイル10n、10m、10hを暗号化する(ステップ69)。アプリケーションプログラム33が終了したか否かを確認する(ステップ71)。アプリケーションプログラム33が終了していない、作業ファイル10を継続利用する場合、上述の作業を繰り返し行う(ステップ71→ステップ65)。
【0195】
アプリケーションプログラム33が終了したら、断片ファイル10n、10m、10hの転送を最終的に確認する(ステップ71→ステップ72)。もし、転送されていない断片ファイル10n又は断片ファイル10mがある場合、これを転送する。しかし、ネットワーク3と携帯端末6等との通信に障害がある等の状況で利用できない場合、転送していない断片ファイル10n又は断片ファイル10mを別記憶媒体に転送して格納する(ステップ73)。ここで、断片ファイル10hはユーザ端末2が正常に動作している場合、問題なく補助記憶装置14に格納される。
【0196】
断片ファイル10mは、ユーザ端末2の利用開始時に携帯端末6が接続され正常に認証されているので、その状況が続く限り正常に転送できる。このように2つの断片ファイル10mと断片ファイル10hが不揮発性記憶媒体に保存されると、これの2つから元のファイル10を復元できる。そのため、断片ファイル10nをネットワークストレージ3へ転送せずに削除することができる。又は、断片ファイル10nを暗号化して、補助記憶装置14、携帯端末6、別記憶媒体等に格納し保存することができる。
【0197】
このように、断片ファイル10nがネットワークストレージ3へ転送できないとき、断片ファイル10nを暗号化して補助記憶装置14、携帯端末6、別記憶媒体等に保存することをユーザが選択することができる。又は、予め設定された指針通りに行う。断片ファイル10n又は断片ファイル10mが転送できない場合、これを補助記憶装置14等に暗号化して保存、又は、ドライバウェア60のみによってアクセス可能なフォルダに保存する。
【0198】
この保存先のフォルダは、通常アクセスではユーザに見えない隠しフォルダであることが好ましい。暗号化の暗号鍵は、限定しないが、分散フォルダ12やネットワークストレージ3、携帯端末6へのアクセス時の暗号鍵と認証鍵と異なるものが好ましい。断片ファイル10n、10m、10hの転送後、作業ファイル10及び分散フォルダ12の中の断片ファイル10n、10m、10hを削除する(ステップ74)。そして、次の作業へ移る(ステップ75)。
【0199】
図12には、断片ファイルの利用例についてのフローチャートを図示している。ユーザ端末2を利用するとき、起動後にユーザ端末2の利用形態を確認し、通常の利用か否かを確認する(ステップ90、ステップ91)。例えば、図10のフローチャートのステップ55に例を示している。ユーザ端末2の通常利用ではない場合は、図10のフローチャートのステップ57以後のステップへ移動して作業が行われる(ステップ91→ステップ92)。ユーザ端末2の通常利用の場合、ユーザ端末2の中に転送されていない断片ファイル10n、10m、10hがあるか否かを確認する(ステップ91→ステップ93)。
【0200】
例えば、図11のフローチャートのステップ73において、ネットワーク3、携帯端末6等との通信に障害があるため転送していない断片ファイル10n、10m、10hの存在を確認する。このとき、まず各ドライブの断片ファイルのチェックを行う(ステップ91→ステップ93)。例えば、予め設定されたフォルダに格納されたファイルがあるか否かを確認する。転送していない断片ファイルがあると、適当な記憶手段3、6へ接続し、この断片ファイルを転送する(ステップ94→ステップ95)。
【0201】
断片ファイルの転送が終了すると、ユーザ端末の利用を開始する(ステップ96)。転送していない断片ファイルがない場合、通常利用が開始する(ステップ94→ステップ96)。もし、図11のフローチャート123において、転送されていない断片ファイルnが削除された場合は、他の2つの断片ファイル10m及び断片ファイル10hから元のファイル10を復元し、再度、断片ファイル10n、10m、10hを生成する。そいて、生成されたこれらの断片ファイル10n、10m、10hを各記憶装置へ転送する。
【0202】
[第2の実施御形態]
図13は、本発明の第2の実施の形態の電子データ管理システム1の概要をブロック図で図示している。本発明の第2の実施の形態の電子データ管理システム1は、上述の本発明の第1の実施の形態の電子データ管理システム1と基本的に同じ構成、同じ機能を有するものであり、ここで、異なる部分のみを説明する。
【0203】
本発明の第2の実施の形態の電子データ管理システム1は、携帯記憶手段5としてUSBメモリ7を利用する。図14は、本発明の第2の実施の形態の電子データ管理システム1のユーザ端末2の動作概要を示すフローチャートであり、ここで図7に示したフローチャートと同じところは省略し、異なる部分を説明する。USBメモリ7は、USB規格に準拠してユーザ端末2接続される不揮発性メモリである。
【0204】
ユーザ端末2、オペレーティングシステム30、ドライバウェア60等が順次起動し、初期処理等が行われる(ステップ100~104)。特に、RAMディスク11を作成され、RAMディスク11の初期設定が行われる(ステップ104)。ネットワークストレージ3と接続し認証処理が行われる(ステップ105)。その後、USBメモリ7との接続を確認し、認識処理が行われる(ステップ106)。USBメモリ7がユーザ端末2に接続されていない又は認識されていない場合は、USBメモリ7が接続されて認識されるまで待機する。
【0205】
ユーザは、適当なUSBメモリ7をユーザ端末2に接続すると、USBメモリ7はユーザ端末2にPnP機能で自動認識される。USBメモリ7は、ドライバウェア60によって認識され、初期化処理、言い換えると、USBメモリ7の中の特定領域をオペレーティングシステム30に認識させる処理、暗号化されている場合は復号化して認識させる処理等が行われる。作業フォルダ16、ネットワーク分散フォルダ12n、USBメモリ7の中にモバイル分散フォルダ12m及びローカル分散フォルダ12hが作成され、ディレクトリ構造が作成され設定される(ステップ107)。
【0206】
アプリケーションプログラム33は、作業ファイル10を読み込む要求を出し、作業ファイル10を利用し始める(ステップ108)。このとき、図7のフローチャートに説明したように、作業ファイル10の断片ファイル10mはUSBメモリ7から読み出されて、モバイル分散フォルダ12mに格納され、元のファイル10の復元に利用される(ステップ109)。アプリケーションプログラム33はファイル10を利用して閲覧、編集等の作業を行い、これを保存する要求を出す(ステップ110、ステップ111)。
【0207】
作業ファイル10は作業フォルダ16に保存されると、秘密分散され、生成された断片ファイル10n、10m、10hは携帯媒体用分散フォルダ12m等の分散フォルダ12に格納される(ステップ112、ステップ113)。断片ファイル10n、10m、10hの格納が終わると、ドライバウェア60は断片ファイル10n、10m、10hをUSBメモリ7等の各記憶装置へ転送する(ステップ114)。
【0208】
アプリケーションプログラム33が終了した場合、又は、アプリケーションプログラム33が作業ファイル10を閉じて作業ファイル10の利用を終了した場合、作業ファイル10を秘密分散し、携帯媒体用分散フォルダ12m等に格納された断片ファイル10n、10m、10hが転送されたら削除される(ステップ115→ステップ116、ステップ117)。そして次の作業へ移る(ステップ118)。アプリケーションプログラム33が終了しない継続する場合、ステップ110~114が繰り返し行われる(ステップ115→ステップ110)。
【0209】
上述のように、USBメモリ7を利用することで、USBメモリ7でユーザ認証を行い、ユーザデータを秘密分散して利用する。USBメモリ7のような携帯記憶手段を利用すると、ユーザはUSBメモリ7を携帯するだけで電子データ管理システム1を利用することができる。また、USBメモリ7をバックアップ、複製して利用できる。USBメモリ7を複製することで、同じ内容の断片ファイル10m(秘密分散ファイル)を複数のユーザが同時に利用することが可能になる。
【0210】
無論、このとき、ネットワークストレージ3へアクセス可能で、各ユーザはこれにアクセス権限を持っていることが必要である。USBメモリ7を複製して他のユーザに渡すことで、これを受け取ったユーザは、USBメモリ7とネットワークストレージ3にアクセスし、秘密分散されたユーザデータを利用することができる。また、ユーザは、ユーザ端末2でユーザデータを利用していて、これを別場所や別端末で利用するとき、USBメモリ7のみを持参することで、ネットワークストレージ3にアクセス可能であれば、ユーザデータの利用が可能である。
【0211】
USBメモリ7、ユーザ端末2等のように断片ファイルを保存している記憶媒体を無くした(盗難された、紛失した、クラッキングされた等を含む)場合、その中の断片ファイルのみでは、意味のある情報を得ることができない。しかし、必要であれば、無くなった断片ファイルとペアの他との2つの断片ファイルから元のファイル10を復元し、再度、断片ファイルを生成し、適当な不揮発性の記憶媒体に保存する。
【0212】
新規生成された断片ファイルの保存が終了すると、無くした断片ファイルとペアの断片ファイルを削除する。この処理は、ユーザ、管理者等の指示で行うことができるが、管理プログラム(ドライバウェア60)によって、自動的に確認して行うことができる。特に、断片ファイルを保存しているUSBメモリ7が所定期間使用されていない場合等によって、断片ファイルを再生成するか否かを判定することができる。
【0213】
[第3の実施の形態]
本発明の第3の実施の形態を説明する。本発明の第3の実施の形態は本発明の第1及び第2の実施の形態と基本的に同じであり、異なる部分のみを説明する。図15に図示したように、ユーザ端末2はオンラインストレージサービス用のオンラインストレージサービスプログラム80を備える。このオンラインストレージサービスは、インターネット等のネットワーク上にファイルを保管するための場所を提供するサービスである。
【0214】
上述したネットワークストレージは、オンラインストレージサービスが提供するファイルを保管するための場所とすることができる。代表的なオンラインストレージサービスは、Microsoft社(米国)の「OneDrive」(登録商標)、Google社の「Google Drive」(登録商標)、Apple社の「iCloud」(登録商標)、Amazon社の「Amazon Drive」(登録商標)等がある。オンラインストレージサービスプログラム80はこのようなオンラインストレージサービスを提供するためにユーザ端末2にインストールされたアプリケーションプログラムである。
【0215】
オンラインストレージサービスプログラム80はオンラインストレージサービス用の専用APIである。また、オンラインストレージサービスプログラム80は「OneDrive」のようにオペレーティングシステム30の標準機能(サービス)の一つになった専用APIも含む。オンラインストレージサービスは、インターネットに接続できる環境さえあれば、遠く離れた場所や、複数のパソコン、スマートフォン等のモバイル端末でもデータを1カ所に保存・管理ができる。
【0216】
また、「鍵」(ID・パスワードや権限等)を付与することで、他人とデータを共有したりダウンロードしたりすることができ、ビジネスで活用されることが増えている。オンラインストレージサービスは、基本的にユーザモード32でインターフェース(I/F)を提供している。オンラインストレージサービスプログラム80はオペレーティングシステム30のユーザモード31で動作するものである。本実施の形態において、ネットワークストレージ3は、オンラインストレージサービスのクラウド上のストレージであるものとして説明する。
【0217】
オンラインストレージサービスプログラム80は、ユーザデータをネットワークストレージ3に送信し格納する。オンラインストレージサービスプログラム80は、アプリケーションプログラム33等からユーザデータが要求されたとき、これをネットワークストレージ3からダウンロードして渡す。クラウド通信部34は、上述の通り、管理プログラムに付属しドライバウェア60と連帯して動作するもので、ネットワークストレージ3と通信するための専用アプリケーションプログラム又はモジュールである。
【0218】
本実施の形態においては、クラウド通信部34は、ドライバウェア60と連帯して動作し、オンラインストレージサービスプログラム80を介して、ネットワーク分散フォルダ12nとネットワークストレージ3間にファイルを送受信(転送)する。オンラインストレージサービスプログラム80は、ドライバウェア60、ネットワークドライバ54、ネットワークカード41を介して、ネットワークストレージ3へ送信する。逆に、オンラインストレージサービスプログラム80は、ネットワークストレージ3からユーザデータを、ネットワークカード41、ネットワークドライバ54、ドライバウェア60を介して取得する。
【0219】
オンラインストレージサービスプログラム80が取得したユーザデータは、クラウド通信部34によって取得され、ネットワーク分散フォルダ12nに、ドライバウェア60、ファイルシステムドライバ51を経由して格納する。このようにオンラインストレージサービスが提供するネットワークストレージ3にアクセスするためには、ユーザモード32で動作するオンラインストレージサービスプログラム80のインターフェースをクラウド通信部34でアクセスする。
【0220】
ネットワークストレージ3へのアクセス権を得るために、オンラインストレージサービスのアカウント(IDとパスワード)が必要で、オンラインストレージサービスプログラム80を介して行う。オンラインストレージサービスへのアクセスが認証されると、必要なアクセスをクラウド通信部34とドライバウェア60で制御する。本実施形態において、オンラインストレージサービスのネットワークストレージ3に、オンラインストレージサービスプログラム80でアクセス、このアクセスをクラウド通信部34によって制御する。これ以外の動作は、上述の第1及び第2の実施の形態と同様である。
【0221】
[第4の実施の形態]
本発明の第4の実施の形態を説明する。本発明の第4の実施の形態は本発明の第1及び第2の実施の形態と基本的に同じであり、異なる部分のみを説明する。図16に図示したように、ユーザ端末2はユーザモード32で動作する秘密分散部90を備える。秘密分散部90は、ファイルを秘密分散し複数の断片ファイルを生成するための分散部91と、複数の断片ファイルから元のファイルを復元するための復元部92からなる。
【0222】
秘密分散部90は、ユーザモード32で動作するアプリケーションプログラムである。秘密分散部90は、他のアプリケーションプログラム33等からファイルを受け取り、これを秘密分散して、断片ファイルを返す。または、複数の断片ファイルを受け取り、これを復元処理して元のファイルを復元して返す。
【0223】
本実施の形態において、秘密分散部90はドライバウェア60から呼び出されて動作する。秘密分散部90はアプリケーションプラットフォームプログラム35によって制御され、ファイルを受け取り、処理結果を出力する。ドライバウェア60は、秘密分散する必要があるファイル又は復元する必要がある断片ファイルがあると、制御部61から指示して、インターフェース部70とアプリケーションプラットフォームプログラム35を介して、ファイル名、フォルダ名等のファイルのファイル情報、又は、断片ファイルのファイル名、フォルダ名等の断片ファイルのファイル情報を秘密分散部90へ渡す。その結果を、アプリケーションプラットフォームプログラム35とインターフェース部70を介して受け取る。
【0224】
図17は、第4の実施の形態において、ユーザ端末2の動作例を示すフローチャートである。まず、ユーザ端末2が稼働し、ドライバウェア60が起動し初期設定が行われる(ステップ20201~203)。RAMディスク11が作成され、フォーマット等の設定が行われる(ステップ204)。次に、RAMディスク11の中で、作業フォルダ16、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hが作成される(ステップ205)。
【0225】
分散フォルダ12はネットワークストレージ3、携帯端末6、補助記憶装置14等へ対応するように各記憶装置との接続処理が行われる(ステップ206~208)。アプリケーションプログラム33は、ユーザ端末2上で動作し、ユーザ又は他のアプリケーションプログラム、オペレーティングシステム30のサービスの要求又は指示によって、動作する。アプリケーションプログラム33は、補助記憶装置14の中に格納されている適当なフォルダと適当なファイルを選択し読み込む要求を出す(ステップ209)。
【0226】
アプリケーションプログラム33からの要求をドライバウェア60が受信する。ドライバウェア60は、要求されたファイルに関して、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hから該当する断片ファイルを読み出す(ステップ210)。読み出した断片ファイルは制御部61の指示で、インターフェース部70、アプリケーションプラットフォームプログラム35を介して、秘密分散部90へ送信される(ステップ211)。
【0227】
秘密分散部90は断片ファイルを受け取り、復元部92によって処理し、元のファイルを復元する(ステップ212)。そして、秘密分散部90はこの復元した元のファイルをアプリケーションプラットフォームプログラム35へ返す。元のファイルは、制御部61の指示で、インターフェース部70と、ファイルシステム制御部72、ファイルシステムドライバ51、RAMディスクドライバ53を介して、RAMディスク11の作業フォルダ16に格納される(ステップ213)。
【0228】
そして、制御部61は作業フォルダ16からファイル10を読みだして、アプリケーションプログラム33にインターフェース部70を介して渡す(ステップ214)。アプリケーションプログラム33はこれを受け取り、ファイル10を利用し始める(ステップ215)。ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに要求された断片ファイル10n、10m、10hがない場合、ドライバウェア60は、これをネットワークストレージ3、携帯端末6、補助記憶装置14の各記憶装置から取得して、ネットワーク分散フォルダ12n、モバイル分散フォルダ12m及びローカル分散フォルダ12hに格納する。
【0229】
そして、ドライバウェア60は、これを取得し上述の復元処理のため、秘密分散部90へ送信する。アプリケーションプログラム33はファイル10を利用して閲覧、編集等の作業を行い、これを保存する要求を出す(ステップ216)。アプリケーションプログラム33が出す要求の保存先は補助記憶装置14である。アプリケーションプログラム33が出す保存要求をドライバウェア60が検出し、この保存する動作をリダイレクトして作業フォルダ16にファイル10を保存する(ステップ217)。
【0230】
ファイル10が保存されると、ドライバウェア60は保存動作の終了を検知し、作業ファイル10を秘密分散する処理を開始する。このとき、作業ファイル10を制御部61が読み取り、これをインターフェース部70、アプリケーションプラットフォームプログラム35を介して秘密分散部90へ渡される(ステップ218)。秘密分散部90は作業ファイル10を受け取ると、これを分散部91によって秘密分散し複数の断片ファイルを生成する(ステップ219)。生成された複数の断片ファイルは、アプリケーションプラットフォームプログラム35へ渡される。
【0231】
制御部61は断片ファイルをRAMディスク11上の分散フォルダ12に格納する(ステップ220)。断片ファイルの格納が終わると、ドライバウェア60は断片ファイルを各記憶装置3、6、14へ転送する(ステップ221)。断片ファイルが転送されると、分散フォルダ12の中の断片ファイルが削除されるか、作業ファイル10の利用終了までに格納されたままであっても良い。アプリケーションプログラム33が作業ファイル10の利用を続けると、上述のステップ215~221の作業が繰り返し行われる(ステップ222→ステップ215)。
【0232】
アプリケーションプログラム33が終了した場合、又は、アプリケーションプログラム33が作業ファイル10を閉じて作業ファイル10の利用を終了した場合、作業ファイル10を秘密分散し、断片ファイルを転送する(ステップ222→ステップ223)。そして、転送が成功すると、作業ファイル10、断片ファイルは削除される(ステップ224)。そして次の作業へ移行する(ステップ225)。
【符号の説明】
【0233】
1 電子データ管理システム
2,2a ユーザ端末
3 ネットワークストレージ
4 ネットワーク
5 携帯記憶手段
6 携帯端末
7 不揮発性記憶手段
8 通信仲介手段
9 USBメモリ
10 ファイル
11 RAMディスク
12 分散フォルダ
12n ネットワーク分散フォルダ
12m モバイル分散フォルダ
12h ローカル分散フォルダ
13 ネットワークフォルダ
14 補助記憶装置
15 ローカルフォルダ
16 作業フォルダ
17 キーボード
18 マウス
20 本体
21 中央処理装置(CPU)
22 主記憶装置
23 入力インターフェース
24 出力インターフェース
25 バス
26 入力装置
27 出力装置
28 電源ユニット
30 オペレーティングシステム
31 カーネルモード
32 ユーザモード
33 アプリケーションプログラム
34 クラウド通信部
35 アプリケーションプラットフォームプログラム
40 デバイス
41 ネットワークカード
42 通信アダプタ
43 キーボードポート
44 マウスポート
50 デバイスドライバ
51 ファイルシステムドライバ
52 RAMディスクドライバ
53 ディスクドライバ
54 ネットワークドライバ
55 通信ドライバ
56 キーボードドライバ
57 マウスドライバ
60 ドラバウェア
61 制御部
62 分散情報生成部
63 復元部
64 暗号化部
65 復号化部
66 ログ取得部
67 デバイスドライバ制御部
70 インターフェース部
71 ネットワーク制御部
72 ファイルシステム制御部
73 通信制御部
74 入力制御部
80 オンラインストレージサービスプログラム
90 秘密分散部
91 分散部
92 復元部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17