説明

データバックアップシステム及びデータバックアップ方法

【課題】第三者が運営するデータ保存サービスシステム上にデータの安全性を確保してデータを保存させることができるようにする。
【解決手段】データを生成するサーバ101と、データを保存する複数のデータ保存サービス103、104と、サーバ101からの保存すべきデータを加工して、複数のデータ保存サービスに分散保存させるバックアップproxy102とを備える。バックアップproxy102が有する暗号化手段は、サーバ101からの保存すべきデータを暗号化し、暗号化したバックアップデータを暗号化処理単位であるブロックを分断するように分割し、分断したデータブロックが連続して含まれないように、分割したデータを組み合わせ、その組み合わせ情報を登録表に記録し、組み合わせたデータを複数のデータ保存サービス103、104に分散保存させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データバックアップシステム及びデータバックアップ方法に係り、特に、アプリケーション等におけるデータを、第三者が運営するデータ保存サービスシステム上に保存させる際に、そのデータの安全性を確保して保存させることができるようにしたデータバックアップシステム及びデータバックアップ方法に関する。
【背景技術】
【0002】
データを安全に保存する方法に関する従来技術として、例えば、特許文献1等に記載された技術が知られている。この従来技術は、マルチメディアデータをネットワーク上の複数個所に分散して保存する場合に、元データに対して暗号化やダミー情報の追加等の処理を行った後で分割したり、元データを分割したデータに対して暗号化やダミー情報の追加等の処理を行うことにより安全なデータの保存を実現しようとするものである。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−244598号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
暗号化されたデータは、暗号文の全文があれば平文の内容と同じ情報量を持つことになり、解読される危険性がある。そして、前述した従来技術は、暗号化したデータを分散保存することにより前述した危険をある程度回避することができるものであるが、分割したデータ片の中に、連続したデータ列が一定数以上含まれていれば、平文の一部を情報として持つことになり、やはり、暗号化データが解読される危険性があるという問題を生じてしまう。
【0005】
本発明の目的は、前述した従来技術の問題点を解決し、第三者が運営するデータ保存サービスシステム上にデータの安全性を確保して保存させることができるようにしたデータバックアップシステム及びデータバックアップ方法を提供することにある。
【課題を解決するための手段】
【0006】
本発明によれば前記目的は、データを第三者が運営するデータ保存サービスシステム上に保存させるデータバックアップシステムにおいて、アプリケーション等によりバックアップすべきデータを生成する1または複数のサーバと、バックアップデータを保存する複数のデータ保存サービスシステムと、前記サーバからの保存すべきバックアップデータを加工して、前記複数のデータ保存サービスシステムに分散保存させるバックアップproxy とを備え、前記バックアップproxy は、データ暗号化手段と、保存データを登録管理する登録表とを有し、前記暗号化手段は、前記アプリケーションからの保存すべきバックアップデータを暗号化し、暗号化したバックアップデータを暗号化処理単位であるブロックを分断するように分割し、分断したデータブロックが連続して含まれないように、分割したデータを組み合わせ、その組み合わせ情報を前記登録表に記録し、組み合わせたデータを前記複数のデータ保存サービスシステムに分散保存させることにより達成される。
【発明の効果】
【0007】
本発明によれば、複数のデータ保存サービスシステムに保存されている分割したデータの1つが盗まれ他場合にも、平文を生成するために必要な情報量が揃っていないので、データを復号化することができず、データの安全性を確保することができる。
【図面の簡単な説明】
【0008】
【図1】本発明の一実施形態によるデータバックアップシステムの構成を示すブロック図である。
【図2】バックアップproxy の構成を示すブロック図である。
【図3】Data DB の構成を示す図である。
【図4】Lacate DB の構成を示す図である。
【図5】本発明の実施形態によるデータバックアップシステムでのアプリデータのバックアップ処理を説明するフローチャートである。
【図6】本発明の実施形態によるデータバックアップシステムでのアプリデータのリストア処理を説明するフローチャートである。
【図7】データ混合プログラムでの処理動作の詳細を説明するフローチャート(その1)である。
【図8】データ混合プログラムでの処理動作の詳細を説明するフローチャート(その2)である。
【図9】データ回復プログラムでの処理動作の詳細を説明するフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明によるデータバックアップシステム及びデータバックアップ方法の実施形態を図面により詳細に説明する。
【0010】
図1は本発明の一実施形態によるデータバックアップシステムの構成を示すブロック図である。
【0011】
本発明の実施形態によるデータバックアップシステムは、図1に示すように、それぞれがCPU、メモリ、HDD等による記憶装置、入出力装置等を備えた情報処理装置である1または複数のサーバ101と、バックアップproxy 102と、複数のオンラインストレージサービスA103、B104とがネットワーク105を介して接続可能に構成されている。
【0012】
前述において、サーバ101は、Webアプリケーション等のサービスシステムが稼動し、保存すべきデータを生成するデスクトップPCやブレードPC等である。また、バックアップproxy 102は、サーバ101からのバックアップすべきデータを加工処理して後述する複数のオンラインストレージサービスにA103、B104に分散して保存する処理を行うサーバ等の情報処理装置である。また、オンランストレージサービスA103、B104は、それぞれ、サーバからのサービス利用者のデータを保存するサービスを提供する情報処理システムであり、通常、第三者が運営するデータ保存サービスシステムである。また、ネットワーク105は、サーバ101、バックアップproxy 102、オンラインストレージサービスA103、B104等が接続されて、相互に通信可能とするインターネット、イントラネット、あるいは、その混合ネットワークである。
【0013】
図2はバックアップproxy 102の構成を示すブロック図である。
【0014】
バックアップproxy 102は、図2に示すように、プログラムの実行を行うCPU201と、プログラムやデータをロードするメモリ202と、他の情報処理装置との間でデータ交換を行う通信部203と、命令やデータの入力を行う入力部204と、システムの状態等を出力する出力部205と、データ混合プログラム208、データ回復プログラム209、Data DB 210、Locate DB 211、Key 212、File Local213、Data Name214 、num 215が記憶されているHDD等による記憶装置206とがバス207を介して接続されて構成されている。
【0015】
Data DB 210、Locate DB 211については後述する。
【0016】
Key 212は、データ混合プログラム208やデータ回復プログラム209がアプリケーションのデータやバックアップデータに対して暗号化処理、復号化処理を行うときに利用する暗号鍵である。
【0017】
File Local 213 は、データ混合プログラム208が処理途中でアプリデータを保持するための記憶領域であり、システム起動時には、データを保持していない。
【0018】
Data Name 214は、データ混合プログラム208が処理途中で保持しているアプリデータのファイル名である。
【0019】
num 215は、データ混合プログラム208が新たなバックアップデータを作成するときに利用する通番である。
【0020】
通信部203は、有線や無線のLAN等を利用し、ネットワーク105を介してサーバ101やオンラインストレージサービスA103、B104との間で通信を行う機能を有する。入力部204は、キーボード、マウス、ペン入力、音声入力、ボタン、ジョグダイヤル、十字キー等の入力手段により構成される。出力部205は、ディスプレイ、印刷装置、音声出力装置等の出力手段により構成される。
【0021】
また、データ混合プログラム208は、1または複数のサーバ101から取得したバックアップデータとして保存すべきアプリケーションのデータ(以下、アプリデータという)を暗号化、分解して、複数のバックアップデータに再構成し、複数のオンラインストレージサービスA103、B104に格納する暗号化手段としてのプログラムである。データ回復プログラム209は、指定されたアプリデータに対応する暗号化データの複数をオンラインストレージサービスA103、B104から取得して、分解、復号して、アプリデータを回復するプログラムである。
【0022】
Data DB 210は、バックアップproxy 102で管理しているサーバ101からのアプリデータの一覧情報を格納しているデータベースである。
【0023】
図3はData DB 210の構成を示す図である。Data DB 210は、テーブル内のレコードを一意に特定する識別子である項番301と、管理対象であるデータのバックアップを取得した日時(年、月、日、時刻)情報を含む識別子であるアプリデータ名302と、前述のアプリデータの送信元サーバのネットワークアドレスであるサーバアドレス303と、対応するアプリデータのデータ混合プログラム208による処理の有無を示す処理フラグ304とによるレコードを複数格納して構成されている。
【0024】
Lacate DB 211は、バックアップproxy 102でサーバ101からのアプリデータとオンラインストレージサービスA103、B104に格納されているバックアップデータとの対応情報を格納しているデータベースである。
【0025】
図4はLacate DB 211の構成を示す図である。Lacate DB 211は、分割して暗号化された複数の各アプリケーションの保存データを組み合わせて保存する際の組み合わせを登録管理する登録表であり、テーブル内のレコードを一意に特定する識別子である項番401と、オンラインストレージサービスA103、B104上のデータの識別子であるバックアップファイル名402と、管理対象であるデータの識別子であるアプリデータ名i 403及びアプリデータ名ii404と、アプリデータ格納領域を処理単位で示している格納ブロック数405とによるレコードを複数格納して構成されている。
【0026】
図4に示すLacate DB 211における項番1のレコードは、バックアップファイル名として、File(1) 及び図示しないFile(2) を持ち、アプリデータ名i 403及びアプリデータ名ii404として、DateA20090707、DateA20090708を持つの2つのアプリデータが3つのブロックに保存されていることを示している。また、同様に、項番2のレコードは、バックアップファイル名として、File(3) 及び図示しないFile(4) を持ち、アプリデータ名i 403及びアプリデータ名ii404として、DateA20090709、DateA20090710を持つの2つのアプリデータが5つのブロックに保存されていることを示している。
【0027】
図5は本発明の実施形態によるデータバックアップシステムでのアプリデータのバックアップ処理を説明するフローチャートであり、次に、これについて説明する。ここでの処理は、サーバ101を使用する利用者から図示しない利用者端末を介してアプリデータの保存が指示されたときに開始される。
【0028】
(1)まず、1または複数のサーバ101が、サーバ101上でアプリケーションのサービスにより生成されるデータのバックアップを取り、保存すべきアプリデータとしてバックアップproxy 102に送信してくるので、バックアップproxy 102は、そのアプリデータを受信する。バックアップproxy 102は、受信したアプリデータを、図3に示して説明したData DB 210に登録する。その際、バックアップproxy 102は、アプリデータ名302に、送信元サーバ名や受信した日時情報を付加し、また、サーバアドレス303に、送信元サーバのネットワークアドレスを格納すると共に、処理フラグ304に、データ混合プログラム208による処理が行われていないことを示す「×」を設定する(ステップ501)。
【0029】
(2)次に、バックアップproxy 102は、Data DB 210に処理フラグ304が「×」となっているエントリが2つ以上あるか否かを確認し、1つしかなかった場合、ステップ501からの処理に戻って、別のアプリデータの受信待つ(ステップ502)。
【0030】
(3)ステップ502の確認で、Data DB 210に処理フラグ304が「×」となっているエントリが2つ以上あった場合、バックアップproxy 102は、Data DB 210から処理フラグ304が「×」となっているエントリを2つ選択して、データ混合プログラム208が、アプリデータの暗号化、分割、再構成を行ってバックアップデータのペアを作成する。データ混合プログラム208は、分割の処理において、暗号化したアプリデータを、暗号化の処理ブロックを跨ぐように分割する(ステップ503)。
【0031】
(4)バックアップproxy 102は、ステップ503の処理で作成したバックアップデータのペアをそれぞれ別のオンラインストレージサービスA103、B104に分散して保存させ、ステップ501からの処理に戻って処理を続ける(ステップ504)。
【0032】
前述した本発明の実施形態によるデータバックアップシステムでのアプリデータのバックアップ処理では、それぞれが独立した2つのアプリデータについて、アプリデータの暗号化、分割、混合再構成を行うとして説明したが、本発明は、1つのアプリデータについて、アプリデータの暗号化、分割、再構成を行うようにしてもよい。また、前述した説明では、処理後のアプリデータを2つのオンラインストレージサービスに分散して保存させるとしているが、本発明は、アプリデータを3つ以上のオンラインストレージサービスに分散して保存させるようにすることもできる。さらに、本発明は、それぞれが独立した3つ以上のアプリデータについて、アプリデータの暗号化、分割、混合再構成を行うようにしてもよい。
【0033】
図6は本発明の実施形態によるデータバックアップシステムでのアプリデータのリストア処理を説明するフローチャートであり、次に、これについて説明する。ここでの処理は、サーバ101を使用する利用者から図示しない利用者端末を介して保存されているアプリデータの取得が指示されたときに開始される。
【0034】
(1)処理が開始されると、バックアップproxy 102のデータ回復プログラム209は、図3に示して説明したData DB 210からアプリデータ名302とサーバアドレス303との組のカラムを取り出して一覧形式で出力部205の表示装置に表示する(ステップ601)。
【0035】
(2)データ回復プログラム209は、出力部205の表示装置に表示された一覧表示から、利用者により指定されたアプリデータ名を取得する(ステップ602)。
【0036】
(3)次に、データ回復プログラム209は、ステップ602の処理で取得したアプリデータ名と同じ項目を持つエントリを図4に示して説明したLocate DB 211から検索し、対応するバックアップファイル名のリストを取得する(ステップ603)。
【0037】
(4)データ回復プログラム209は、ステップ603の処理で取得したバックアップファイル名のリストに対して、それぞれのファイルをオンラインストレージサービスから取得して、分離、再構成、復号してアプリデータを回復し、ここでの処理を終了する(ステップ604)。
【0038】
図7、図8はデータ混合プログラム208での処理動作の詳細を説明するフローチャートであり、次に、これについて説明する。この図7、図8に示すフローは、一連のものであるので、以下では、図番を区別することなく説明を行う。また、ここでの処理は、図5に示して説明したフローのステップ503での処理の詳細である。
【0039】
(1)処理を開始すると、データ混合プログラム208は、Data DB 210で選択した2つのアプリデータを、それぞれ DataX、DataY として、暗号鍵 Key212を用いて暗号化する。そして、 DataX、DataY のファイル名を、それぞれ変数Data NameX、変数Data NameYに設定する(ステップ701)。
【0040】
(2)次に、ステップ701の処理で暗号化したデータEnc(DataX)、Enc(DataY)を、暗号化の処理ブロックを跨ぐように分割する。例えば、処理ブロックが128bitの処理単位であれば、最初の処理ブロックに対して64bit、次に128bit、次に128bitのデータ、……というように分割して、暗号化処理を行うブロックを分断するように分割する(ステップ702)。
【0041】
(3)データ混合プログラム208は、次に、変数File Local213にデータが設定されているか否かを確認し、データが設定されていた場合、変数Loop Again Flag をTRUEに設定する。この変数は、データ混合プログラム208の一部の処理を繰り返し行うことにより、File Localのデータを処理するために設定される変数である(ステップ703、704)。
【0042】
(4)次に、データ混合プログラム208は、変数File Localのデータブロック群を配列変数 work ArrayA[]に設定し、ステップ702の処理で分割したEnc(DataX)のデータブロック群を配列変数 work ArrayB[]に設定すると共に、Data Name 214を変数tmp Data NameAに設定し、ステップ701の処理で取得したData NameXをtmp Data NameBに設定する(ステップ705)。
【0043】
(5)ステップ703の確認で、変数File Local213にデータがなかった場合、変数Loop Again Flag をFALSE に設定する(ステップ714)。
【0044】
(6)その後、データ混合プログラム208は、ステップ702の処理で分割したEnc(DataX)のデータブロック群を配列変数 work ArrayA[]に設定し、ステップ702の処理で分割したEnc(DataY)のデータブロック群を配列変数 workArrayB[]に設定すると共に、ステップ701の処理で取得したDataNameXをtmpDataNameAに設定し、ステップ701の処理で取得したDataNameYをtmp Data NameB に設定する(ステップ715)。
【0045】
(7)ステップ705、715の処理の後、データ混合プログラム208は、配列変数 work ArrayA[]と work ArrayB[]との配列数と比較し、配列変数 work ArrayA[]の配列数が work ArrayB[]の配列数より小さいか否かを判定する。この比較の処理は、これから処理するデータブロック数を決めるため、配列変数のうち配列数の小さい方を検出するものである(ステップ706)。
【0046】
(8)ステップ706の比較判定で、配列変数 work ArrayA[]の配列数の方が小さかった場合、変数array Len に work ArrayA[]の配列数を設定し、変数arrayA Flag にTRUEを設定する。これらの設定は、これから処理するデータブロック数とどちらの変数の配列数が少なかったかを示すフラグである(ステップ707)。
【0047】
(9)ステップ706の比較判定で、配列変数 work ArrayA[]の配列数が配列変数 work ArrayB[]の配列数と同じか、大きかった場合、変数array Len に work ArrayB[]の配列数を設定し、変数arrayA Flag にFALSE を設定する。これらの設定は、これから処理するデータブロック数とどちらの変数の配列数が少なかったかを示すフラグである(ステップ716)。
【0048】
(10)ステップ707、あるいは、ステップ716の処理の後、Local DB211に、新たなエントリを追加する。追加するエントリには、バックアップファイル名402として文字列“File (num)”を設定し、アプリデータ名i 403として変数tmp Data NameAの値を設定すると共に、アプリデータ名ii404として変数tmp Data NameBの値を設定し、格納ブロック数405として変数array Len を設定する。ちなみに、文字列“File (num)”のnum の部分には変数num 215の値が入る(ステップ708)。
【0049】
(11)次に、データ混合プログラム208は、数i に0を代入し、変数i がステップ707の処理で設定した変数array Len よりも小さいか否かを判定し、変数i が変数array Len よりも小さかった場合、変数i が偶数であるか否かを検証する(ステップ709〜711)。
【0050】
(12)ステップ711の判定で、変数i が偶数であった場合、ファイルFile (num)に、配列変数 work ArrayA[]のi 番目のブロックデータを追加すると共に、ファイルFile (num+1)に、配列変数 work ArrayB[]のi 番目ブロックデータを追加する(ステップ712)。
【0051】
(13)ステップ711の判定で、変数i が偶数でなかった、すなわち、奇数であった場合、ファイルFile (num)に、配列変数 work ArrayB[]のi 番目のブロックデータを追加すると共に、ファイルFile (num+1)に、配列変数 work ArrayA[]のi 番目のブロックデータを追加する(ステップ717)。
【0052】
(14)ステップ712、あるいは、ステップ717の処理の後、変数i に1を加え、ステップ710からの処理に戻って処理を続ける(ステップ713)。
【0053】
(15)ステップ710の判定で、変数i がステップ707の処理で設定した変数array Len 以上であった場合、ファイルFile(num) をオンラインストレージサービスA103にアップロードして保存させ、ファイルFile(num+1) をオンラインストレージサービスB104にアップロードして保存させる(ステップ817)。
【0054】
(16)次に、変数num 215の値を2増加させて保存し、変数Loop Again Flag にTRUEが設定されているか否かを確認し、TRUEが設定されていた場合、変数Loop Again Flag にFALSE を設定する(ステップ818、801、802)。
【0055】
(17)次に、データ混合プログラム208は、変数arrayA Flag にTRUEが設定されているか否かを確認し、TRUEが設定されていた場合、Data DB 210上のアプリデータ名302の中のtmp Data NameAと同じエントリの処理フラグ304を「○」に設定する(ステップ803、825)。
【0056】
(18)次に、変数tmp Data NameBと変数data Name とが同一であるか否かを確認し、これらの2つの変数が同一でなかった場合、変数data Name に変数tmp Data NameBの値を設定する(ステップ804、806)。
【0057】
(19)ステップ804の確認で、変数tmp Data NameBと変数data Name とが同一であであった場合、あるいは、ステップ806の処理の後、ステップ702の処理で分割したEnc(DataY)のデータブロック群を配列変数 work ArrayA[]に設定し、配列変数 work ArrayB[]のi 番目以降のブロックデータ群を配列変数 work ArrayB[]に設定する(ステップ805)。
【0058】
(20)ステップ803の確認で、変数arrayA Flag にTRUEが設定されていなかった場合、Data DB 210上のアプリデータ名302の中のtmp Data NameBと同じエントリの処理フラグ304を「○」に設定する(ステップ826)。
【0059】
(21)次に、変数tmp Data NameAと変数data Name とが同一であるか否かを確認し、これらの2つの変数が同一でなかった場合、変数data Name に変数tmp Data NameAの値を設定する(ステップ808、810)。
【0060】
(22)ステップ808の確認で、変数tmp Data NameAと変数data Name とが同一であであった場合、あるいは、ステップ810の処理の後、配列変数work ArrayA[]のi番目以降のブロックデータ群を配列変数 work ArrayA[]に設定し、ステップ702の処理で分割したEnc(DataY)のデータブロック群を配列変数 work ArrayB[]に設定する(ステップ809)。
【0061】
(23)ステップ805の処理の後、配列変数 work ArrayB[]が空き配列であるか否かを確認し、この確認で、配列変数 work ArrayB[]が空き配列でなかった場合、あるいは、ステップ809の処理の後、配列変数 work ArrayA[]が空き配列であるか否かを確認し、この確認で、配列変数 work ArrayA[]が空き配列でなかった場合、ステップ706からの処理に戻って処理を続ける(ステップ807、811)。
【0062】
(24)ステップ801の変数Loop Again Flag にTRUEが設定されているか否かの確認で、変数Loop Again Flag にTRUEが設定されていなかった場合、arrayA Flag がTRUEに設定されているか否か確認する(ステップ812)。
【0063】
(25)ステップ812の確認で、arrayA Flag がTRUEに設定されていた場合、あるいは、ステップ811の確認で、配列変数 work ArrayA[]が空き配列であった場合、変数 work ArrayB[]のi 番目以降のブロックデータ群を配列変数File Localに設定し、配列変数File Localが空き配列か否かを確認する(ステップ813、814)。
【0064】
(26)ステップ812の確認で、arrayA Flag がTRUEに設定されていなかった場合、あるいは、ステップ807の確認で、配列変数 work ArrayB[]が空き配列であった場合、変数 work ArrayA[]のi 番目以降のブロックデータ群を配列変数File Localに設定し、配列変数File Localが空き配列か否かを確認する(ステップ821、822)。
【0065】
(26)ステップ814あるいはステップ822の確認で、配列変数File Localが空き配列であった場合、変数data Name を空(NULL)にし、Data DB 210上のアプリデータ名302の中のtmp Data NameAと同じエントリの処理フラグ304を「○」に設定すると共に、Data DB 210上のアプリデータ名302の中のtmp Data NameBと同じエントリの処理フラグ304を「○」に設定して、ここでの処理を終了する(ステップ815、816)。
【0066】
(27)ステップ814の確認で、配列変数File Localが空き配列でなかった場合、変数data Name に変数tmp Data NameBの値を設定し、Data DB 210上のアプリデータ名302の中のtmp Data NameAと同じエントリの処理フラグ304を「○」に設定して、ここでの処理を終了する(ステップ819、820)。
【0067】
(28)ステップ814の確認で、配列変数File Localが空き配列でなかった場合、変数data Name に変数tmp Data NameAの値を設定し、Data DB 210上のアプリデータ名302の中のtmp Data NameBと同じエントリの処理フラグ304を「○」に設定して、ここでの処理を終了する(ステップ823、824)。
【0068】
図9はデータ回復プログラム209での処理動作の詳細を説明するフローチャートであり、次に、これについて説明する。なお、ここでの処理は、図6に示して説明したフローのステップ604での処理の詳細である。
【0069】
(1)データ回復プログラム209は、図6に示して説明したリストア処理におけるステップ603の処理で取得したバックアップファイルリストの先頭ファイル名に対応するバックアップファイル File(x)、 File(x+1)をオンラインストレージサービスA103、B104のそれぞれからダウンロードして取得する(ステップ901)
(2)変数tmp Array を空(NULL)にし、Local DB211からステップ901の処理で取得したファイル名 File(x)のエントリのデータを取得し、取得したデータのどのカラムに、回復するアプリデータ名があるかを調べる(ステップ902〜904)。
【0070】
(3)ステップ904の調べで、回復するアプリデータ名がアプリデータ名i 403にあった場合、変数yに変数xの値を代入し、変数zに変数x+1の値を代入し、また、ステップ904の調べで、回復するアプリデータ名がアプリデータ名ii404にあった場合、変数yに変数x+1の値を代入し、変数zに変数xの値を代入し、その後、変数jに0を代入する(ステップ905〜907)。
【0071】
(4)ステップ903の処理で取得したデータの格納ブロック数が変数jよりも大きいか否かを確認し、取得したデータの格納ブロック数が変数jよりも大きかった場合、変数jが偶数であるか否かを確認する(ステップ908、909)。
【0072】
(5)ステップ909の確認で、変数jが偶数であった場合、ステップ901の処理で取得した File(y)のj番目のデータブロックを変数 tmp Arrayに追加し、また、ステップ909の確認で、変数jが偶数ではなく奇数であった場合、ステップ901の処理で取得した File(z)のj番目のデータブロックを変数 tmp Arrayに追加し、その後、変数jに1を加算して、ステップ908からの処理に戻って処理を続ける(ステップ910、912、911)。
【0073】
(6)ステップ908の確認で、ステップ903の処理で取得したデータの格納ブロック数が変数jと同じか小さかった場合、図6に示して説明したリストア処理のステップ603の処理で取得したバックアップファイルリストの次のファイル名があるか否かを確認する(ステップ913)。
【0074】
(7)ステップ913の確認で、ステップ603の処理で取得したバックアップファイルリストの次のファイル名があった場合、対応するファイル名に対応するファイル File(x)、 File(x+1)をオンラインストレージサービスA103、B104のそれぞれからダウンロードし、ステップ903からの処理に戻って処理を続ける(ステップ914)。
【0075】
(8)ステップ913の確認で、ステップ603の処理で取得したバックアップファイルリストの次のファイル名がなかった場合、Data Name 214と回復するアプリデータ名とが同一か否かを確認し、同一であった場合、tmp Array にFile Localのデータを追加する(ステップ915、916)。
【0076】
(9)ステップ915の確認で、Data Name 214と回復するアプリデータ名とが同一でなかった場合、あるいは、ステップ916の処理の後、tmp Array をkey 212を用いて復号し、回復したいアプリデータ名のファイルとして、ここでの処理を終了する(ステップ917)。
【0077】
前述した本発明の実施形態における各処理は、処理プログラムとして構成し、装置が備えるCPUに実行させることができ、また、この処理プログラムは、HD、DAT、FD、MO、DVD−ROM、CD−ROM等の記録媒体に格納して、あるいは、通信回線を介したデジタルデータとして提供することができる。
【0078】
前述した本発明の実施形態によれば、保存すべきバックアップデータを暗号化し、暗号処理単位であるブロックを分断するように複数に分割して、第三者が運営するデータ保存サービスシステム上に保存することとしているので、保存されている分割されたデータの1つが盗まれてたとしても、平文を生成するために必要な情報量が揃っていないため、データ復号化の試みを無効にし、安全にデータの保存を行うことができる。
【0079】
また、本発明の実施形態は、さらに、暗号化して複数に分割したバックアップデータを同じバックアップデータの分断したデータブロックが連続して含まれないように、他のバックアップデータと組み合わせて、第三者が運営するデータ保存サービスシステム上に保存することとしているので、より安全にデータの保存を行うことができる。
【符号の説明】
【0080】
101 サーバ
102 バックアップproxy
103、104 オンラインストレージサービスA、B
105 がネットワーク
201 CPU
202 メモリ
203 通信部
204 入力部
205 出力部
206 記憶装置
207 バス
208 データ混合プログラム
209 データ回復プログラム
210 Data DB
211 Locate DB
212 Key
213 File Local
214 Data Name
215 num

【特許請求の範囲】
【請求項1】
データを第三者が運営するデータ保存サービスシステム上に保存させるデータバックアップシステムにおいて、
アプリケーション等によりバックアップすべきデータを生成する1または複数のサーバと、バックアップデータを保存する複数のデータ保存サービスシステムと、前記サーバからの保存すべきバックアップデータを加工して、前記複数のデータ保存サービスシステムに分散保存させるバックアップproxy とを備え、
前記バックアップproxy は、データ暗号化手段と、保存データを登録管理する登録表とを有し、
前記暗号化手段は、前記アプリケーションからの保存すべきバックアップデータを暗号化し、暗号化したバックアップデータを暗号化処理単位であるブロックを分断するように分割し、分断したデータブロックが連続して含まれないように、分割したデータを組み合わせ、その組み合わせ情報を前記登録表に記録し、組み合わせたデータを前記複数のデータ保存サービスシステムに分散保存させることを特徴とするデータバックアップシステム。
【請求項2】
データを第三者が運営するデータ保存サービスシステム上に保存させるデータバックアップシステムにおいて、
アプリケーション等によりバックアップすべきデータを生成する1または複数のサーバと、バックアップデータを保存する複数のデータ保存サービスシステムと、前記サーバからの保存すべきバックアップデータを加工して、前記複数のデータ保存サービスシステムに分散保存させるバックアップproxy とを備え、
前記バックアップproxy は、データ暗号化手段と、保存データを登録管理する登録表とを有し、
前記暗号化手段は、1または複数のアプリケーションからの保存すべき複数のバックアップデータのそれぞれを暗号化し、暗号化した複数のバックアップデータのそれぞれを暗号化処理単位であるブロックを分断するように分割し、同一のバックアップデータの分断したデータブロックが連続して含まれないように、他のバックアップデータと組み合わせ、その組み合わせ情報を前記登録表に記録し、組み合わせたデータを前記複数のデータ保存サービスシステムに分散保存させることを特徴とするデータバックアップシステム。
【請求項3】
前記バックアップproxy は、データ回復手段を有し、該、データ回復手段は、指定されたアプリケーションのバックアップデータを、前記管理表の情報に基づいて前記複数のデータ保存サービスシステムから取得し、取得したデータのブロックの再構成、データの復号を行ってデータを回復させることを特徴とする請求項1または2記載のデータバックアップシステム。
【請求項4】
データを第三者が運営するデータ保存サービスシステム上に保存させるデータバックアップ方法において、
アプリケーション等によりバックアップすべきデータを生成する1または複数のサーバと、バックアップデータを保存する複数のデータ保存サービスシステムと、前記サーバからの保存すべきバックアップデータを加工して、前記複数のデータ保存サービスシステムに分散保存させるバックアップproxy とを備え、
前記バックアップproxy は、データ暗号化手段と、保存データを登録管理する登録表とを有し、
前記暗号化手段は、前記アプリケーションからの保存すべきバックアップデータを暗号化し、暗号化したバックアップデータを暗号化処理単位であるブロックを分断するように分割し、分断したデータブロックが連続して含まれないように、分割したデータを組み合わせ、その組み合わせ情報を前記登録表に記録し、組み合わせたデータを前記複数のデータ保存サービスシステムに分散保存させることを特徴とするデータバック方法。
【請求項5】
データを第三者が運営するデータ保存サービスシステム上に保存させるデータバックアップ方法において、
アプリケーション等によりバックアップすべきデータを生成する1または複数のサーバと、バックアップデータを保存する複数のデータ保存サービスシステムと、前記サーバからの保存すべきバックアップデータを加工して、前記複数のデータ保存サービスシステムに分散保存させるバックアップproxy とを備え、
前記バックアップproxy は、データ暗号化手段と、保存データを登録管理する登録表とを有し、
前記暗号化手段は、1または複数のアプリケーションからの保存すべき複数のバックアップデータのそれぞれを暗号化し、暗号化した複数のバックアップデータのそれぞれを暗号化処理単位であるブロックを分断するように分割し、同一のバックアップデータの分断したデータブロックが連続して含まれないように、他のバックアップデータと組み合わせ、その組み合わせ情報を前記登録表に記録し、組み合わせたデータを前記複数のデータ保存サービスシステムに分散保存させることを特徴とするデータバックアップ方法。

【図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


【公開番号】特開2011−175578(P2011−175578A)
【公開日】平成23年9月8日(2011.9.8)
【国際特許分類】
【出願番号】特願2010−40665(P2010−40665)
【出願日】平成22年2月25日(2010.2.25)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【Fターム(参考)】