説明

ファイルデータの安全な外部持出し方法及びシステム

【課題】 コンピュータに保持さえたファイルデータを安全に外部に持ち出すことができる方法を提供する。
【解決手段】 コンピュータにおいてファイルデータをしきい値秘密分散法を用いて複数の断片ファイルに分割するステップと、分割した複数の断片ファイルを複数のネットストレージサービスに送信して保持させるステップと、
前記ファイルデータを利用するコンピュータにおいて前記複数のネットストレージサービスに保持された複数の断片ファイルの少なくとも2つを取得して元のファイルデータを復元するステップとを備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のネットストレージ上でしきい値秘密分散法を利用し、機密性や可用性を高めて、安全にファイルを持ち出すことができると共に分散されたデータの同期を自動的に行うことができファイルデータの安全な外部持出し方法及びシステムに関する。
【背景技術】
【0002】
現在、情報漏えいを防いだファイルの安全な持出し方法として様々な方法が存在する。たとえば、(1)暗号化ソフト(非特許文献1)を利用したパソコン(PC)での持出し、(2)暗号化機能を持つUSBメモリなどでの持出し(非特許文献2)、(3)秘密分散(特許文献1)を用いてPCとUSBメモリで分割して持出し、(4)ネットワーク経由等で情報削除機能を導入したPCでの持出し(非特許文献3)などである。これらを組み合わせた製品も存在する。
しかし、(1)及び(2)では、暗号化が破られれば内容が漏洩してしまうリスクがある。クラウドコンピューティングなど低コストで大きな計算能力が手に入るようになり、暗号が破られるリスクは年々増大している。
【0003】
また、(2)や(3)は、USBメモリなどのPC以外の物理媒体を用いることとなり、その管理が煩雑で、置き忘れなどで紛失してしまうおそれがある。特にUSBメモリなどの外部媒体は、小型化しており紛失リスクが高くなっている。さらに(3)は、データへのアクセスが出来なる恐怖心から、PCとセットで管理運搬してしまいがちで、せっかくの秘密分散技術も運用現場で意味がなくなってしまうことがある。
また、(4)は、ネットワーク経由での削除や時限削除などがあるが、ネットワークに接続させず、内部クロックを変更するなどの方法で削除を回避することが可能である。また、一般的に暗号化も組み合わされることが多いが、これは先に述べたように必ずしも安全ではない。さらに(4)は専用のPCが必要な場合が導入コストも高い。
【0004】
一方、近年安価なネットストレージサービスが多数存在する。これらのネットストレージは、Webが利用できる環境ではいつでもファイルやデータを出し入れできるサービスである。多くの場合、一般的なユーザ認証機能を持ち、通信にはHTTPSで暗号化されている。また、サーバも安全に管理されていると言われている。そのため、先の(1)〜(4)のように外部媒体やPCでファイルを持ち出すことより安全と考える向きもある。
【0005】
しかし、ネットストレージサービスの利用には2つのリスクがある。1つは、サービス提供者内部からの情報漏えいリスクである。多くのネットストレージサービスでは、暗号化など必要な対策を採っていると説明しているが、ユーザが確認することは基本的に出来ず、実際にどのようになっているかは分からない。もう1つは、サービスの停止リスクである。多くのサービスではネットワークやハードウェア障害などで一時的にサービスが利用できなくなることがある。SLAで稼働率を保証しているサービスもあるが、100%ではなくある程度停止する可能性はある。また稼働率を満たさない場合の補償は、サービス料の減額という形が多く、機会損失などの損害の全てが補償されるわけではない。
【0006】
前者のリスクについては、ネットストレージにファイルを配置する前に、クライアントPC側で暗号化するという対策方法もあるが、結局は暗号技術を用いているため、先に述べたように必ずしも安全とは言えず、また後者の問題は解決できない。
従って、現状でネットストレージサービスを利用する上では、最終的にはサービス提供企業を信頼するしかない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第4039810号
【非特許文献】
【0008】
【非特許文献1】秘文AE Information Cyberhttp://hitachisoft.jp/products/hibun/products/ae_ic.html
【非特許文献2】ハードウェア自動暗号化機能搭載セキュリティUSBメモリー ED-EAシリーズhttp://www.iodata.jp/product/USBmemory/easydisk/ed-ea/
【非特許文献3】CLEARSUREhttp://www.fmworld.net/biz/fmv/lifebook/clearsure/
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明の目的は、情報漏えいを防ぎつつファイル持ち出しを実現する上で、PC上やUSBメモリなどの物理媒体に暗号化済みも含めたファイル及びファイルの一部も保持させず、既存のネットストレージサービスを利用するが、ネットストレージサービスの提供企業内からの情報漏えいリスクを回避し、ネットストレージサービスの一時停止などを考慮し、出来るだけ可用性を高めることが可能な情報漏えい防止ファイル持ち出し方法を提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するために本発明に係るファイル持ち出し方法は、前記コンピュータにおいて前記ファイルデータをしきい値秘密分散法を用いて複数の断片ファイルに分割するステップと、分割した複数の断片ファイルを複数のネットストレージサービスに送信して保持させるステップと、前記ファイルデータを利用するコンピュータにおいて前記複数のネットストレージサービスに保持された複数の断片ファイルの少なくとも2つを取得して元のファイルデータを復元するステップとを備えることを特徴とする。
また、前記ネットストレージサービスの全てが利用可能なことをチェックし、利用可能であればネットストレージ間の断片ファイルの同期処理を行い、ファイルの変更時などに起こる断片ファイルの不整合を解消するステップとをさらに備えることを特徴とする。
また、本発明に係るファイル持ち出しシステムは、コンピュータが保持したファイルデータを安全に外部に持ち出すシステムであって、
前記コンピュータが、前記ファイルデータをしきい値秘密分散法を用いて複数の断片ファイルに分割する手段と、分割した複数の断片ファイルを複数のネットストレージサービスに送信して保持させる手段と、前記ファイルデータを利用するコンピュータが、前記複数のネットストレージサービスに保持された複数の断片ファイルの少なくとも2つを取得して元のファイルデータを復元する手段を備えることを特徴とする。
また、前記コンピュータが、前記ネットストレージサービスの全てが利用可能なことをチェックし、利用可能であればネットストレージ間の断片ファイルの同期処理を行い、ファイルの変更時などに起こる断片ファイルの不整合を解消する手段をさらに備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、PC上やUSBメモリなどの物理媒体にファイルデータを保存しないため、これらの紛失時に情報漏えいが起こらない。また、ファイルデータを断片ファイルにして複数のネットストレージサービスに送信して保持させるため、ネットストレージサービスの提供企業内からの情報漏えいも起こらない。さらに、しきい値以内のストレージサービスが利用可能であれば、保存は可能であり、断片ファイルの同期が取れているファイルはいつでも参照更新可能で、さらに自動的な同期により、断片ファイルの同期が可能な限り行われるため、高い可用性が確保できる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施の形態を示すシステム構成図である。
【図2】Place Data Listの例を示す図である。
【図3】Place Listの例を示す図である。
【図4】Local Cache Listの例を示す図である。
【図5】Place Data List Cacheの例を示す図である。
【図6】クライアントアプリケーションの処理の概要を示すフローチャートである。
【図7】起動時処理の処理を示すフローチャートである。
【図8】ネットストレージサービスのパスワード入力画面の例を示す図である。
【図9】ファイルの存在表示処理の処理を示すフローチャートである。
【図10】ファイル表示画面の例を示す図である。
【図11】非接続時のファイル表示画面の例を示す図である。
【図12】維持管理ループ処理を示すフローチャートである。
【図13】Local Cache Listの例を示すフローチャートである。
【図14】非接続になった際のファイル表示画面の例を示す図である。
【図15】ファイルの存在再表示処理を示すフローチャートである。
【図16】ファイル参照処理を示すフローチャートである。
【図17】ファイル新規登録・変更処理を示すフローチャートである。
【図18】ファイル削除処理を示すフローチャートである。
【図19】同期処理の概要を示すフローチャートである。
【図20】ローカル同期処理の概要を示すフローチャートである。
【図21】PP間同期処理の概要を示すフローチャートである。
【図22】終了時処理の概要を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明を実施する場合の一形態を、図面を参照して具体的に説明する。
ここで、本実施例では、元のファイルを3つの断片ファイルA、B、Cに分割し、2つA,BまたはB,CまたはA,Cの断片ファイルを取得すれば復元可能なしきい値秘密分散法を利用することとする。
図1に本発明の実施形態のシステムの構成図を示す。
本システムは、クライアントPC100と、インターネットで接続された外部のネットストレージサービス群110で構成される。
ネットストレージサービス群110には、A社が提供するネットストレージサービス111、B社が提供するネットストレージサービス112、C社が提供するネットストレージサービス113の3つのネットストレージサービスがある。各々のネットストレージサービス上に、後述するPlace List122に記述された位置に保存領域114を配置する。その保存領域114に、ファイルを秘密分散した後に生成される断片ファイル115と、保存領域にある全ての断片ファイルのメタデータを保持するPlace Data List116を配置する。
【0014】
1つのネットストレージサービスにあるPlace Data List116の詳細な例を図2に示す。Place Data List116は、分割前のファイル名を示すB FNAME201、断片ファイルのバージョンを示すVer202、保存領域に保存されている断片ファイル名を示すP FNAME203から構成されたテーブルファイルである。
例えば、1行目は、X.docファイルを分割したバージョン1の断片ファイルX.doc.p1-1が、この保存領域に保存されていることを示す。
クライアントPC100は、ユーザがファイルやフォルダにアクセスするための既存技術であるエクスプローラ101と、本システムの中心となるクライアントアプリケーション120で構成される。
【0015】
クライアントアプリケーション120は、エクスプローラ101とのやり取りを行うインタフェース処理部121、利用するネットストレージサービスの情報が記述されたPlace List122、アプリケーション起動時や動作中に用いるファイルリストであるLocal Cache List123、各ネットストレージサービスにあるPlace Data List116対応したキャッシュデータであるPlace Data List Cache124、ファイルアクセス時や秘密分散処理時に利用されるテンポラリファイル125と、それを一時的に保存するテンポラリ保存領域127、テンポラリファイル構成時などに利用する断片ファイル128と、それを保存する断片ファイル保存領域129、ファイルを秘密分散し断片ファイルを作成する秘密分散処理部129、2つ以上の断片ファイルから元ファイルを再構成する秘密統合処理部130、秘密分散ネットストレージサービスとの通信処理を行う通信処理部131、ファイル更新時の同期やネットストレージサービス間の断片ファイルの同期を行う同期処理部132で構成される。
【0016】
Place List122の詳細な例を図3に示す。Place List122は、ネットストレージサービスの識別子を示すPID301、ネットストレージサービスのアクセスURLを示すURL302、ネットストレージサービスの認証に利用するユーザ名を示すUNAME303、ネットストレージサービス上の保存領域114の位置を示すDir304、ネットストレージ認証時に用いるパスワードを一時的に保管するPW305、ネットストレージサービスとクライアントアプリケーション120との接続状態を登録するState306から構成される。
【0017】
Local Cache List123の詳細な例を図4に示す。
Local Cache List123は、元のファイル名を示すFNAME401、有効な断片ファイルのバージョンを示すVer402、ネットストレージサービスP1に保存されている断片ファイルのバージョンを示すP1Ver403、P1に保存されている断片ファイル名を示すP1FNAME404、同様にP2及びP3 に保存されている断片ファイルのバージョンとファイル名を示すP2Ver405、P2FNAME406、P3Ver407、P3FNAME408、ネットストレージサービス間で同期が完全にとれているかを示すSynced409、クライアントPC上にのみ最新の有効なバージョンのファイルが存在するかどうかを示すLocal410で構成される。
【0018】
例えば、1行目はファイルがX.docが、有効なバージョンは1で、全てのネットストレージサービスで同じバージョンの断片ファイルがネットストレージ上に存在することを示している。
2行目は、ネットストレージの存在するもののP3に保存されている断片ファイルのバージョンが1つ前であり、Synced409がnoで同期が取れていないことを示している。ちなみに、後で詳細に示すが、P1とP2に接続できていれば、2行目のY.pptファイルを利用することは可能である。
3行目は、クライアントPC100で新たに登録されたファイルのため、Local410がyesでネットストレージサービス上に、最新で有効なバージョンの断片ファイルが存在しないことを示している。
【0019】
1つのPlace Data List116に対応するPlace Data List Cache124の詳細な例を図5に示す。
Place Data List Cache124は、Place Data List116の201から203のデータのキャッシュであるB FNAME501、Ver502、P FNAME503と、断片ファイルの送信の失敗が無いかどうかチェックするcheck504と、クライアントアプリケーション120内の断片ファイル領域128に断片ファイルが存在するかどうかを示すDown505で構成される。
例えば1行目は、元ファイルがX.docのバージョン1の断片ファイルであるX.doc.p1-1が表示処理済みでダウンロードされていることを示す。3行目は、表示処理済であるが断片ファイルはダウンロードされていないことを示す。4行目は、表示処理も断片ファイルのダウンロードもされてないことを示す。
【0020】
図6にクライアントアプリケーション120の処理の概要をフローチャートで示している。
クライアントアプリケーション120は、起動時に後述する起動時処理601を行い、そこで作成されたネットドライブもしくはフォルダへのユーザ操作に応じて、後述するファイル参照処理602、ファイル新規登録・変更処理603、ファイル削除処理604、終了時処理605を行う。そして、終了時処理605の場合はそのまま終了し、それ以外の処理では、次のユーザの操作に応じた処理を行う。
【0021】
図7に起動時処理の概要をフローチャートで示している。
まず、クライアントアプリケーション120は、パスワード入力画面を表示させ、ユーザにパスワード入力を行わせる(ステップ701)。
【0022】
図8はパスワード入力画面の例である。パスワード入力画面は、URL表示部801、ユーザ名表示部802、パスワード入力部803で構成される。ここで、URL表示部801、ユーザ名表示部802は、あらかじめ設定された図3のPlace List116の情報を利用する。
ユーザが各々のネットストレージサービスのパスワードを入力しOKをクリックした後、クライアントアプリケーション120は、図3のPlace List122のPW305に入力されたパスワードを保持し、通信処理部131を用いて各ネットストレージサービスへの接続を行う(ステップ702)。この際の認証に利用するユーザ名及びパスワードはPlace List122に保持されたUNAME303及びPW305を用いる。
【0023】
次に、クライアントアプリケーション120は、各々のネットストレージサービスへの接続において、図3のPlace List122のDir304にあるフォルダに移動し、Place Data List116の取得を試みる。そして、取得が成功したPlace Data List116については、対応するPlace Data List Cache124を作成する(ステップ703)。このPlace Data List Cache124作成は、B NAME501、Ver502、P NAME503については取得したPlace Data List116にある値をコピーし、それ以外は空欄とする。
【0024】
次に、Place List122のState306について、ステップ703でPlace Data List116の取得が成功し、Place Data List Cache124の作成が出来たネットストレージサービスにはOnlineを、出来なかったネットストレージサービスにはOfflineを保持させる(ステップ704)。
次に、2つ以上のネットストレージサービスがOnline状態かをチェックする(ステップ705)。2つ以上のネットストレージサービスがOnline状態の場合、ファイルの存在表示処理を行う(ステップ706)。
【0025】
図9はファイルの存在表示処理の詳細な処理を示すフローチャートである。
最初に複数あるPlace Data List Cache124から、元のファイル名B NAME501をキーとしてLocal Cache List123を作成する(ステップ901)。
以降Local Cache List123を先頭から処理する。
まず、元ファイル名であるFNAME401に対して、2つ以上の断片ファイルが存在するかどうかを、P1FNAME404、P2FNAME406、P3FNAME408の値が入っているかどうかなどでチェックする(ステップ902)。
存在する場合には、存在する断片ファイルの2つ以上が同じバージョンであるかどうかを、P1Ver403、P2Ver405、P3Ver407の値を比較してチェックする(ステップ903)。
【0026】
存在する断片ファイルの2つ以上が同じバージョンである場合には、そのバージョンをRver402に保持させ、また断片ファイルが3つ全て存在し、かつ全てのバージョンが同じ場合には、Synced409にyesを保持させる。また、何れかのネットストレージサービスが接続されていないために空白がある場合にはunknownを、それ以外でバージョンがあっていなければnoを保持させる(ステップ904)。そして、ファイル名にFNAME401を用いて、アクセス可能なファイルとして表示する(ステップ905)。
ステップ902及びステップ903で、2つ以上で同じバージョンの断片ファイルが存在しない場合は、まず、全てのネットストレージに接続しているかどうかをチェックする(ステップ906)。
【0027】
全てに接続済みである場合には、Local Cache List123、Place Data List Cache124から対応するデータを削除する変更を行うと共に、ネットストレージサービス上のPlace Data List116からも対応するデータを削除する変更を行う(ステップ907)。さらに、ネットストレージサービス上の対応する断片ファイルも削除する(ステップ908)。このステップ907及び908により、既に利用されない断片ファイルや、その断片ファイルに関する情報の削除が実現される。
ステップ906で全てのネットストレージサービスに接続していない場合には、ファイル名にFNAME401を用いて、アクセス不可能なファイルとして表示する(ステップ909)。
【0028】
図10にファイルの存在表示処理を行った結果の表示画面の例を示す。
この例では、アクセス可能なファイルは1001のように実線で表示し、アクセス不可能なファイルは1002のように破線で表示している。このほか、色を変えるもしくは別のアイコン表示をしても良い。
ステップ706で、図9に示したファイルの存在表示処理を終えた後、後述する維持管理ループ処理を開始する(ステップ708)。このステップ708では、維持管理ループ処理の終了を待たずに終了する。
ステップ705で、Place List122の中の2つ以上がOnline状態でなければ、非接続状態を示した形でファイル表示画面を表示する(ステップ709)。この時の画面例を図11に示す。
【0029】
図11の1101に示すように、図10の接続状態のファイル表示画面と比べ、一部の色やパターンを変えるなどして、日接続状態をユーザに示す。また、この場合はファイルの表示は行わない。
【0030】
図12は、ステップ708の維持管理ループ処理を示すフローチャートである。
まず、タイマーを起動し、適切な時間が過ぎるまで待ち処理を行う(ステップ1201)。
次に、Place List122でState306がOnline状態とされているネットストレージサービスに対し、Place Data List116へのアクセスなどで接続状態を確認する。
さらに、Offline状態とされているネットストレージサービスに対し、起動時処理のステップ702と同様に再度接続を試みて、そのネットストレージサービス上のPlace Data List116が取得可能かをチェックする(ステップ1202)。
【0031】
次に、そのチェックの結果がPlace List122のState306と違い変更があるかどうかをチェックする(ステップ1203)。もし、変更が無ければ、同期処理部132で後述する同期処理を行い(ステップ1204)、終了時処理されているかどうかをチェックする(ステップ1205)。終了時処理がされていれば、そのまま終了し、そうでなければステップ1201に戻る。
【0032】
ステップ1203でネットストレージサービスとの接続状態に変更があれば、新たにOnline状態になったネットストレージサービスに対して、図7起動時処理のステップ703と同様にLocal Cache List123の取得と、対応するPlace Data List Cache124の作成を行う。
また、Offline状態になったネットストレージサービスについては、対応するPlace Data List Cache124の中で、Down505がyesのもの以外を削除する(ステップ1206)。そして、Place List122のState306を現在の接続状況に合わせて変更する(ステップ1207)。
【0033】
次に、Place Data List Cache124の削除や作成を、Local Cache List123に反映させ、新たなLocal Cache List123に記述されていない断片ファイル127を断片ファイル領域128から削除する(ステップ1208)。
Local Cache List123に反映は、例えばPID301が1のネットストレージサービスのPlace Data List Cache124が削除された場合は、Local Cache List123のP1Ver403及びP1FNAME404の列のデータを空白とする。また、PID301が3のネットストレージサービスのPlace Data List Cache124が新たに生成された場合には、B NAMEをキーとしてLocal Cache List123にJOINする。
【0034】
次に、Place List122のState306を参照し、2つ以上のネットストレージサービスがOnline状態かどうかをチェックする(ステップ1209)。もし、2つ以上のネットストレージサービスがOnline状態でなければ、Local Cache List123のLocal140の値に応じてファイルの表示を分ける。
Local140の値がyesのファイルはアクセス可能なファイルとして表示する。また、詳細な説明は後述するがLocal140の値がOnlyのファイルはライアントPC上にのみ存在するファイルであり、Local Onlyのファイルとして表示する。それ以外のファイルはアクセス不可能なファイルとして表示する(ステップ1210)。
【0035】
例えば、図13のようなLocal Cache Listの場合、図14の1401のように非接続状態を示す表示しつつ、それぞれのLocal1301の値に応じて表示させる。ちなみに、太線で係れた1402のファイル表示は、クライアントPC上にのみ存在するLocal Onlyのファイルを示す表示である。ステップ1210の後は、先に説明したステップ1205に進む。
ステップ1209で2つ以上のネットストレージサービスがOnline状態であれば、ファイルの存在再表示処理を行う(ステップ1211)。
ファイルの存在再表示処理(ステップ1210)は、ステップ1208で変更されたLocal Cache List123の各行について図15の処理を行う。
【0036】
まず、Local140の値がOnlyかどうかをチェックし(ステップ1501)、Onlyのファイルの場合はLocal Onlyのファイルとして表示し(ステップ1502)、処理を終了する。
ステップ1501で、Local140の値がOnlyでない場合、Local140の値がyesかどうかをチェックする(ステップ1503)。yesの場合は、図9のファイル存在表示処理のステップ904と同様に、Local Cache List123のP1Ver403、P2Ver405、P3Ver407の値を参照して、Syncedの値を適切に変更する(ステップ1504)。
そして、図9のファイル存在表示処理のステップ904と同様に、アクセス可能なファイルとして表示し(ステップ1505)、処理を終了する。
【0037】
ステップ1501及びステップ1503のチェックで、Local140の値の値がOnlyでもyesでも無かった場合は、図9のファイル存在表示処理のステップ902以降と同様の処理を行う。ステップ1506〜ステップ1513は、図9のファイル存在表示処理のステップ902〜909と同じであるため詳細は省略する。
ステップ1210のファイルの存在再表示処理が終わった後は、後述するステップ1204の同期処理に進む。その後、終了時処理がされたかどうかを確認し(ステップ1205)、終了時処理されていれば処理を終了し、終了時処理されていなければステップ1201のタイマー待ち処理に戻る。
先にも述べたが、この接続管理ループ処理を開始して図7の起動時処理は終了する。
次に、ファイル参照処理602、ファイル新規登録・変更処理603、ファイル削除処理604説明する。
【0038】
図16は図6のファイル参照処理602の処理フローを示したものである。
ユーザからファイル参照を要求されると、クライアントアプリケーション120は、まずLocal Cache List123の対応する行のLocal410を参照し、次にテンポラリ領域126を確認し、参照要求されたファイル対応するテンポラリファイル125があるかどうかを確認する(ステップ1601)。
テンポラリファイルがあれば、そのファイルを参照させ(ステップ1602)、処理を終了する。
【0039】
ステップ1601で、対応するテンポラリファイルが無ければ、後で利用するリトライ用の値を初期化してから、Place Data List Cache124のDown505の値と断片ファイル領域128を参照し、必要十分な断片ファイルがあるかどうかを確認する(ステップ1603)。
ここで、必要十分な断片ファイルとは、元ファイルを再構成することが可能な断片ファイルであり、具体的にはLocal Cache List123のRver402と同じバージョンの2つ以上の断片ファイルである。
【0040】
ステップ1603で、必要十分な断片ファイルが断片ファイル領域128にある場合には、秘密結合処理部130を用いて、元ファイルと同等のテンポラリファイルをテンポラリ領域126に生成し、Local Cache List123の対応する行のLocal410の値をyesにして(ステップ1604)、ステップ1602に進む。
ステップ1603で、必要十分な断片ファイルが断片ファイル領域128に無い場合には、ステップ1601で初期化したリトライ用の値が、あらかじめ適切に設定されたリトライ回数に達していないことを確認する(ステップ1604)。もし、達していなければ、リトライ用の値を増加させ、Place Data List Cache124の中で要求されたファイルに対応し、かつDown505の値がnoの断片ファイルを、通信処理部131を通して、ネットストレージサービスからダウンロードを試行する(ステップ1606)。そして、予め設定された適切な時間内でダウンロードが成功した場合には、Place Data List Cache124のDown505の値をyesとし、ダウンロードされた断片ファイルを断片ファイル領域128に配置し(ステップ1607)、ステップ1603に戻る。もし、ステップ1607でダウンロードが成功していなければ何もしないで、ステップ1603に戻る。
ステップ1605で、リトライ用の値があらかじめ適切に設定されたリトライ回数に達していた場合は、インタフェース処理部121を通して参照エラーを返し(ステップ1607)、参照処理を終了する。
【0041】
図17は、ファイルの新規登録・変更処理603の処理を示すフローチャートである。
ファイルの新規登録・変更処理603は、インタフェース処理部121を通して、テンポラリ領域126に新たにファイルを配置するか、ファイル参照処理602で参照したファイルに対応するテンポラリ領域126のテンポラリファイル125に変更を加えた場合に行われる処理である。そのため、新規登録及び変更されたファイルに対応するテンポラリファイル125がテンポラリ領域126上に存在することが前提となる。この前提のもとで、ファイルの新規登録・変更処理603を説明する。
【0042】
まずLocal Cash List123で、ファイル名の重複を確認する(ステップ1701)。もし、重複しなければ、Local Cache List123に、FNAME401にファイル名、Rver402に1、Synced409にno、Local410にOnlyとして新たな行を追加する(ステップ1702)。そして、Localファイルとして表示する(ステップ1703)。
次に、新規登録・変更を行ったファイルに対応するテンポラリファイル125の秘密分散処理を行い、対応する断片ファイル127を断片ファイル領域128に生成する(ステップ1704)。この際、断片ファイルのファイル名は、他の断片ファイルと重複しないようにする。例えば、元のファイル名と各ネットストレージサービスのPID301、バージョンであるRver402を組み合わせたものを断片ファイル名とする。
【0043】
次に、ステップ1704で作成した断片ファイル名を、Local Cash List123の対応する行のP1FNAME404、P2FNAME406、P3FNAME408に登録する。この際に、P1Ver403、P2Ver405、P3Ver407にはRver402の値を入れる。さらに、各Place Data List Cache124にも登録する。この際、check504はNo、Down505をyesとする。また、後で利用するリトライ用の値を初期化する(ステップ1705)。
次に、各ネットストレージサービスに向け、ステップ1704で生成した断片ファイル127の送信し、Place Data List116に古いバージョンの断片ファイルがあればその断片ファイルを削除し、ステップ1705で行ったPlace Data List Cache124の変更を、各ネットストレージサービスにあるPlace Data List116に反映させる。これらが成功したネットストレージサービスに対応するPlace Data List Cache124では、送信した断片ファイルに対応する行のcheck504をyesに変更する(ステップ1706)。
【0044】
次に、2つ以上のネットストレージサービスに対し、ステップ1706の処理が成功したかどうかをチェックする(ステップ1707)。もし、2つ以上のネットストレージサービスに対して成功していなければ、ステップ1705で初期化したリトライ用の値が、あらかじめ適切に設定されたリトライ回数に達していないことを確認する(ステップ1708)。もし、達していなければ、リトライ用の値を増加させ、ステップ1706に戻り、再度断片ファイル127の送信とPlace Data List Cache124の変更を試みる。
【0045】
ステップ1708で、リトライ用の値があらかじめ適切に設定されたリトライ回数に達していた場合は、そのまま処理を終了する。この場合、新規登録・変更を行ったファイルはLocalファイルとして表示されたままとなり、後述する同期処理ステップ1211で同期が試みられる。
【0046】
ステップ1707で、2つ以上のネットストレージサービスに対してステップ1706の処理が成功していれば、新規登録・変更を行ったファイルに対応するLocal Cache List123の行のLocal410の値をyesと変更し、また3つ全てのネットストレージサービスでステップ1706の処理が成功していれば、Synced409の値をyesと変更し、ファイルの表示をLocalファイルからアクセス可能なファイルに変更再表示する(ステップ1709)。
【0047】
ステップ1701でファイル名に重複する場合には、インタフェース処理部121を通して、ユーザに既存ファイルの変更を要求するかを問い合わせ、その回答をチェックする(ステップ1710)。もしユーザが変更を要求した場合には、変更するファイルに対応するLocal Cache List123の行のRverを1加算し、Syncedにnoを設定し、Local410をOnlyに変更する(ステップ1711)。その後、前述のステップ1703に進む。
ステップ1710でユーザが既存ファイルの変更を要求しない場合には、インタフェース処理部121を通して、保存するファイルのファイル名変更を促すなど適切なエラー処理を行い(ステップ1711)、その後終了する。
【0048】
図18はファイル削除処理604の処理を示すフローチャートである。
まず、Local Cache List123及びPlace Data List Cache124をチェックし、テンポラリ領域126や断片ファイル領域128に、削除するファイルに対応するテンポラリファイル125及び断片ファイル127が存在すれば削除する。また、それに伴いLocal Cache List123のLocal410をnoに設定、Place Data List Cache124のDown505をnoに設定するなど必要な変更を行う。さらに、後で利用するリトライ用の値を初期化する(ステップ1801)。
【0049】
次に、各々のPlace Data List Cache124から、ネットストレージサービス上にある断片ファイルを特定し、通信処理部131を通して、特定した断片ファイルの削除、削除した断片ファイルに対応するPlace Data List116の行の削除を試みる。そして、削除が出来たネットストレージサービスについては、対応するPlace Data List Cache124の削除した断片ファイルに対応する行も削除する(ステップ1802)。
【0050】
次に、2つ以上のネットストレージサービスに対し、ステップ1802の処理が成功したかをチェックする(ステップ1803)。もし、2つ以上のネットストレージサービスに対して成功していなければ、ステップ1801で初期化したリトライ用の値が、あらかじめ適切に設定されたリトライ回数に達していないことを確認する(ステップ1804)。もし、達していなければ、リトライ用の値を増加させ、ステップ1802に戻り、ネットストレージサービス上の断片ファイルの削除などを再度行う。
【0051】
ステップ1804で、リトライ用の値があらかじめ適切に設定されたリトライ回数に達していた場合は、削除できなかったことを、インタフェース処理部121を通してユーザに通知し(ステップ1805)、処理を終了する。
ステップ1803で、2つ以上のネットストレージサービスに対してステップ1702の処理が成功していれば、削除したファイルの非表示にし、Local Cache List123から対応する行の削除を行う(ステップ1806)。そして、処理を終了する。
以上の図16、17、18で説明した処理により、ファイルの参照、新規登録・変更、削除の処理が出来る。
【0052】
次に、図12の接続管理ループ処理のステップ1204の同期処理の詳細を説明する。
同期処理は、2つの同期を行う。1つはローカルファイル同期である。これは、クライアントPC上のテンポラリ領域126にのみ有効なバージョンのファイルがあり、Local Cache List123でLocal410がOnlyとなっているファイルを、ネットストレージサービスに同期させるものである。これをローカル同期処理と呼ぶ。
もう1つは、あるネットストレージサービス上にRVer402とは異なる断片ファイルが存在し、Local Cache List123でSynced409がnoとなっているファイルを同期させるものである。これをPP間同期処理と呼ぶ。
【0053】
図19に同期処理の処理概要をフローチャートで示す。
まず、Place List122のState306を参照し、2つ以上のネットストレージサービスがOnline状態かどうかをチェックする(ステップ1901)。2つ以上のネットストレージサービスがOnline状態でなければ、何もせずに処理を終了する。もし、2つ以上のネットストレージサービスがOnline状態であれば、Local Cache List123の各行に対してローカル同期処理を行う(ステップ1902)。
【0054】
図20にローカル同期処理の処理概要をフローチャートで示す。
まず、Local Cache List123でLocal410がOnlyかどうかをチェックする。さらに、後で利用するリトライ用の値を初期化する(ステップ2001)。もし、Onlyでなければ何もせずに処理を終了する。
ステップ2001で、Local410がOnlyであれば、図17で示したファイル新規登録・変更処理で作成した断片ファイルが存在し、各Place Data Cache List124のcheck504の値で、送信できなかった断片ファイルを特定できる。そこで、図17で示したファイル新規登録・変更処理のステップ1706と同様に断片ファイルの送信などの処理を行う(ステップ2002)。
【0055】
次に、ファイル新規登録・変更処理のステップ1706と同様に、既に行われた断片ファイル送信などの処理を含めて、2つ以上のネットストレージサービスでステップ2002の処理、もしくはファイル新規登録・変更処理のステップ1706が成功しているかをチェックする(ステップ2003)。ただし、ファイル新規登録・変更処理のステップ1706と異なるのは、2つ以上のネットストレージサービスでステップ2002の処理が成功しなかった場合は、何もせずに処理を終了する。
【0056】
もし、2つ以上のネットストレージサービスでステップ2002の処理、もしくはステップ1706が成功していれば、ファイル新規登録・変更処理のステップ1709と同様の処理を行う(ステップ2004)。
これにより、クライアントPC上のテンポラリ領域126にのみ有効なバージョンのファイルが存在したファイルが、ネットストレージサービス上にも存在するようになる。
ステップ1902のローカル同期処理の後、全てのネットストレージサービスがOnline状態かどうかをチェックする(ステップ1903)。一つでもネットストレージサービスがOnline状態でなければ、何もせずに処理を終了する。
ステップ1903で全てのネットストレージサービスがOnline状態であれば、Local Cache List123の各行に対してPP間同期処理を行う(ステップ1904)。
【0057】
図21にPP間同期処理のフローチャートを示す。
まず、Local Cache List123でSynced405がnoかどうかをチェックする(ステップ2101)。もし、noでない場合には、何もせずに処理を終了する。
ステップ2101でSynced405がnoであれば、Place Data Cache List124等を参照し、断片ファイル領域128に、同期するために送信すべき必要な断片ファイルが有る可かどうかをチェックする(ステップ2102)。ここで、以前に新規登録・変更したファイルであれば、送信すべき断片ファイルが存在する可能性もある。
【0058】
もし、ステップ2102に必要な断片ファイルが無ければ、図16で示した参照処理を行う(ステップ2103)。ただし、ステップ1602の対象ファイルの参照処理及びステップ1607の参照エラー処理は、インタフェース処理部121には返さずに、成功したか失敗したかを返すのみとする。
次に、ステップ2103の結果、参照が成功したか失敗したかを確認する(ステップ2104)。もし、参照が失敗していれば、処理を終了する。
【0059】
ステップ2104で参照が成功していれば、テンポラリ領域126に参照したファイルに対応するテンポラリファイル125が作成されているはずなので、そのファイルを用いて図17に示した新規登録・変更処理のステップ1704と同様の処理を行い、断片ファイルを作成する(ステップ2105)。
次にLocal Cache List123を確認し、既にネットストレージサービス上に有効なバージョンの断片ファイルが存在し、送信が必要ない断片ファイルを削除する(ステップ2106)。ここで、Syncedがnoの場合には、一つしか断片ファイルは残らないので、以降の処理は残った1つの断片ファイルに対して行う。
【0060】
次に、削除されなかった断片ファイルに対して、図17の新規登録・変更処理のステップ1705と同様に、Local Cash List123の対応する行に、対応する断片ファイルの名前及びバージョンを登録もしくは変更する。また、ステップ1705と同様に、対応するPlace Data List Cache124にも登録し、check504はNo、Down505をyesとする(ステップ2107)。ただし、ステップ1705とは異なり、リトライ用の値の初期化は行わない。
【0061】
ステップ2107の後、及びステップ2102で必要な断片ファイルが有った場合、もしくはステップ2107の後、図17の新規登録・変更処理のステップ1706と同様に、断片ファイルの送信や古いバージョンの断片ファイルの削除、Place Data List116及びPlace Data List Cache124の変更などを行う(ステップ2108)。
次に、ステップ2108が成功したかどうかをチェックする(ステップ2109)。失敗していれば、何もせずに処理を終了する。もし、成功していれば、Place Data List Cache124の対応する行のcheck504をyesとし、Local Cash List123の対応する行のSyncedをyesとする(ステップ2110)。
これにより、全てのネットストレージサービス上の断片ファイルのバージョンが有効なバージョンに同期されることになる。
【0062】
ステップ1904で、説明したPP間同期処理が終了した後、図19の同期処理を終了する。
以上により、図7の起動時処理で開始された図12の接続監視管理ループ処理で行われる同期処理により、先に示したローカル同期処理とPP間同期処理を実現する。
【0063】
図22に、図6のステップ606である終了時処理の処理概要をフローチャートで示す。
まず、Local Cash List123の各行に対し、Local410がOnlyのファイルが存在するかどうかチェックする(ステップ2201)。もし、存在すれば、インタフェース処理部を通して、それらのファイルの同期処理を希望するか、強制終了するか、ユーザに確認を行わせる画面を出力し、ユーザの入力を待つ(ステップ2202)。
【0064】
次に、ステップ2202で出力した画面で、ユーザが同期処理を希望したかどうかを確認する(ステップ2203)。そして、ユーザが同期処理を希望した場合は、図20で示したローカル同期処理を行う(ステップ2204)。そして、ステップ2201に戻る。
ステップ2201でLocal410がOnlyのファイルが存在しない場合、もしくはステップ2203で同期処理を希望せずに終了を望んだ場合は、図7の起動時処理で開始した維持管理ループ処理を停止する(ステップ2205)。
次に、Place List122でState306がOnlineのネットストレージサービスの切断処理を行い、State306をOfflineと変更し、全てのPW305を空白にしてパスワード情報を削除する(ステップ2206)。
【0065】
最後に、テンポラリ領域126にあるテンポラリファイル125、断片ファイル領域128にある断片ファイル127、保持しているPlace Data List Cache124、Local Cache List123を削除する。さらに画面表示などを停止しクライアントアプリケーション120を終了する(ステップ2207)。
以上により、終了後には、ファイルや断片ファイル、ネットストレージサービスのパスワードなど、情報漏えいの恐れのあるデータが存在しない状態になる。
【符号の説明】
【0066】
100 クライアントPC
101 エクスプローラ
110 ネットストレージサービス群
111 A社が提供するネットストレージサービス
112 B社が提供するネットストレージサービス
113 C社が提供するネットストレージサービス
114 ネットストレージサービス上の保存領域
115 ネットストレージサービス上の断片ファイル
116 Place Data List
120 クライアントアプリケーション
121 インタフェース処理部
122 Place List
123 Local Cache List
124 Place Data List Cache
125 テンポラリファイル
126 テンポラリ保存領域
127 クライアントPC上の断片ファイル
128 クライアントPC上の断片ファイル保存領域
129 秘密分散処理部
130 秘密統合処理部
131 通信処理部
132 同期処理部

【特許請求の範囲】
【請求項1】
コンピュータが保持したファイルデータを安全に外部に持ち出す方法であって、
前記コンピュータにおいて前記ファイルデータをしきい値秘密分散法を用いて複数の断片ファイルに分割するステップと、分割した複数の断片ファイルを複数のネットストレージサービスに送信して保持させるステップと、
前記ファイルデータを利用するコンピュータにおいて前記複数のネットストレージサービスに保持された複数の断片ファイルの少なくとも2つを取得して元のファイルデータを復元するステップとを備えることを特徴とするファイルデータの安全な持ち出し方法。
【請求項2】
前記ネットストレージサービスの全てが利用可能なことをチェックし、利用可能であればネットストレージ間の断片ファイルの同期処理を行い、ファイルの変更時などに起こる断片ファイルの不整合を解消するステップとをさらに備えることを特徴とする請求項1に記載のファイルデータの安全な持ち出し方法。
【請求項3】
コンピュータが保持したファイルデータを安全に外部に持ち出すシステムであって、
前記コンピュータが、前記ファイルデータをしきい値秘密分散法を用いて複数の断片ファイルに分割する手段と、分割した複数の断片ファイルを複数のネットストレージサービスに送信して保持させる手段と、
前記ファイルデータを利用するコンピュータが、前記複数のネットストレージサービスに保持された複数の断片ファイルの少なくとも2つを取得して元のファイルデータを復元する手段を備えることを特徴とするファイルデータの安全な持ち出しシステム。
【請求項4】
前記コンピュータが、前記ネットストレージサービスの全てが利用可能なことをチェックし、利用可能であればネットストレージ間の断片ファイルの同期処理を行い、ファイルの変更時などに起こる断片ファイルの不整合を解消する手段をさらに備えることを特徴とする請求項3に記載のファイルデータの安全な持ち出しシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2011−198325(P2011−198325A)
【公開日】平成23年10月6日(2011.10.6)
【国際特許分類】
【出願番号】特願2010−67361(P2010−67361)
【出願日】平成22年3月24日(2010.3.24)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【Fターム(参考)】