(57)【要約】【課題】データの秘密性を保つために暗号化した状態でバックアップすると、データ更新時に差分バックアップが困難であり、通信時間や通信料金が問題となっていた。またネットワーク構成に応じて複数のバックアップサーバを使い分けると差分データの整合性に課題があった。【解決手段】暗号化データバックアップの際に差分計算のためのシグニチャを一緒にバックアップしておき、二回目以降はこのシグニチャを用いて差分を計算し、新たなシグニチャと共に、暗号化した差分をバックアップすることによって効率的な暗号化バックアップを実現する。また差分データとともにバージョン情報を管理し、サーバ間でバージョンの比較を行うことによりサーバ間データ同期を可能とする。【選択図】図４
2005301464.tif 000002
【特許請求の範囲】
【請求項１】
バックアップサーバと一つ以上のクライアントがネットワークを経由して接続されており、クライアントデータを暗号化した状態で前記バックアップサーバに送信し、暗号化されたままバックアップする方法において、
クライアントはバックアップするデータを表す識別子と、前記データのバージョンを示す情報を前記バックアップサーバに送信し、
前記バックアップサーバは前記受信したバージョンを示す情報と現在バックアップサーバ内に格納されているデータのバージョンを比較し、
バックアップサーバ内に該当データがバックアップされていない場合には、前記クライアントに初回登録要求を送信し、
前記初回登録要求を受信したクライアントは前記バックアップするデータを暗号化し、前記バックアップするデータの差分計算に用いる特徴値を演算処理部により計算し、前記暗号化されたデータと前記特徴値をバックアップサーバに送信し、バックアップサーバは前記受信したバージョン情報と前記暗号化されたデータと前記特徴値を格納し、
バックアップサーバ内に該当データがバックアップされており、前記受信したバージョン情報より古い場合には、前記クライアントにバックアップされている差分計算に用いる特徴値を送信し、
前記クライアントは前記受信した特徴値を元に差分を計算し、前記差分を暗号化するとともに、前記バックアップするデータの差分計算に用いる特徴値を演算処理部により計算し、前記暗号化された差分データと前記特徴値をバックアップサーバに送信し、バックアップサーバは前記受信したバージョン情報と前記暗号化された差分データと前記特徴値を格納し、
バックアップサーバ内の該当データが前記受信したバージョン情報と等しい場合には、前記クライアントに更新不要通知を送信する、
ことを特徴とする暗号化バックアップ方法。
【請求項２】
通信手段と演算手段を備え、前記通信手段を通じてバックアップサーバと通信可能なクライアント装置において、
バックアップするデータの識別子とバージョン情報を送信する機能と、
前記バックアップサーバからの応答を受信する機能と、
前記応答が初回登録要求だった場合には、前記バックアップするデータを暗号化し、前記バックアップするデータの差分を計算するための特徴値を計算し、前記暗号化したデータと前記特徴値を前記バックアップサーバに送信する機能と、
前記バックアップサーバからの応答が差分計算のための特徴値を含む更新要求の場合には、前記受信した特徴値を元に前記バックアップするデータの差分を計算し、暗号化し、前記バックアップするデータの差分を計算するための特徴値を計算し、前記暗号化した差分データと前記特徴値を前記バックアップサーバに送信する機能と、
前記バックアップサーバからの応答が更新不要通知だった場合には、バックアップ処理を終了する機能と、
を有することを特徴とするクライアント装置。
【請求項３】
前記バージョン情報としてデータの更新日時を利用することを特徴とした請求項２に記載のクライアント装置。
【請求項４】
前記差分のための特徴値が暗号化されていることを特徴とした請求項２乃至３に記載のクライアント装置。
【請求項５】
暗号化のために分離可能デバイスを用いることを特徴とした請求項２乃至４に記載のクライアント装置。
【請求項６】
通信手段と演算手段とデータ格納手段を備え、前記通信手段を通じてクライアントと通信可能なバックアップサーバにおいて、
データの識別子とバージョン情報を受信する機能と、
前記受信した識別子を元にデータ格納手段を検索し、データ格納手段に前記識別しに該当するデータが存在しない場合には初期登録要求を送信するステップと、暗号化データと特徴値を受信するステップと、前記受信した識別子とバージョン情報と暗号化データと特徴値を一緒に前記データ格納手段に格納する機能と、
前記受信した識別子に該当するデータが存在する場合には、該当するデータのバーン情報と前記受信したバージョン情報を比較し、前記受信したバージョン情報のほうが新しい場合には、前記検索したレコード内の特徴値を送信するステップと、暗号差分データと特徴値を受信するステップと、前記受信した識別子とバージョン情報と暗号化差分データと特徴値を一緒に前記データ格納手段に格納する機能と、
前記受信した識別しに該当するデータが存在し、該当するデータのバージョン情報が前記受診したバージョン情報と等しいか新しい場合には、更新不要通知を送信する機能と、
を有することを特徴とするバックアップサーバ。
【請求項７】
通信手段とデータ格納手段と演算手段を有す第一のバックアップサーバと、
通信手段とデータ格納手段と演算手段を有す第二のバックアップサーバとが、
ネットワークで接続されているシステムにおいて
前記第一、第二のバックアップサーバのデータ格納手段には、少なくともデータを表す識別子と、バージョン情報と、暗号化されたデータまたは暗号化された差分データと、差分計算のための特徴値からなるレコードが複数存在し、
前記第一のバックアップサーバが、前記第一のデータ格納手段内に存在する、同期するデータの識別子に関するバージョン番号のリストを送信するステップと、
前記第二のバックアップサーバが前記バージョン番号のリストを受信するステップと、
前記第二のバックアップサーバが前記受信したバージョン番号のリストと、概データの識別子に関する前記第二のデータ格納手段に存在するバージョン番号のリストとを比較するステップと、
前記第二のバックアップサーバが前記比較結果に基づき必要なレコードを送信するステップと、前記第二のバックアップサーバが前記比較結果に基づき必要なレコードを要求するステップと、
前記第一のバックアップサーバは前記受信したレコードによってデータを更新するステップと、
前記第一のバックアップサーバは前記受信したレコード要求に応じたレコードを送信するステップと、
前記第二のバックアップサーバは前記受信したレコードを元にデータを更新するステップと
を有するバックアップサーバの同期処理機能を有することを特徴とするバックアップシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データのバックアップ方法に関し、特にデータを暗号化した状態でバックアップする際の効率のよいバックアップ方法及びシステムに関する。
【背景技術】
【０００２】
近年ユビキタス社会の到来に伴い、ノートパソコン・携帯電話・ＰＤＡなどいろいろなものにデータが散在し、一元的にバックアップしたいという要求が出てきている。このデータバックアップに際して情報の秘密性を保持したいという要求から、特許文献１のようなユーザのデータをクライアントで暗号化しサーバにバックアップする方法が提案されている。しかし特許文献１の方法では、バックアップするデータをバックアップの度に丸ごと暗号化して送信しているため、データ量が増えるに従って通信量が増え、通信時間や通信料金が増大することになる。
【０００３】
この問題を解決するために、特許文献２では更新のあったデータのみバックアップする差分バックアップが提案されている。しかし特許文献２の方法は、一旦バックアップしてあるデータを全てダウンロードするため、全てのデータのダウンロードが必然でないケースでは通信量の削減にはあまり貢献していない。また、一時的にではあるが新旧ファイルが同時にクライアントに存在することになり、クライアントのデータ格納領域が大量に必要になる。
【０００４】
上記課題を解決するために、特許文献３ではシグニチャと呼ばれるデータのブロック毎の特徴値を利用する方法が提案されている。特許文献３に記述されている第一の方法ではバックアップを実施した際に前記バックアップしたデータのシグニチャをクライアントで保存しておき、次回バックアップの際には前記保存しておいたシグニチャと現在バックアップしようとしているデータのシグニチャを比較し、効率よく差分情報を作成する方法が開示されている。また、特許文献３に記述されている第二の方法では、バックアップされているデータのシグニチャをバックアップサーバ側で計算してクライアントに送信し、クライアントは前記受信したシグニチャと現在バックアップしようとしているデータのシグニチャを比較して効率よく差分情報を作成する方法が開示されている。しかし前記第一の方法では、クライアントにシグニチャを保管するデータ格納エリアが必要になり、携帯電話やＰＤＡなどのデータ格納エリアに制限のあるデバイスで実装するためにはよりデータ量の少ない方法が求められている。またデータをフロッピー（登録商標）ディスクなどの媒体をもちいて他のクライアントにコピーした場合などには前記他のクライアントに以前バックアップした際のシグニチャがないため差分バックアップができないなどの課題があった。また前記第二の方法はサーバ側でシグニチャの計算を行っているため、特許文献１に記述されているような暗号化バックアップにおいては利用できなかった。
【０００５】
なお特許文献３で利用されるシグニチャの例としては、非特許文献１で開示されているｒｓｙｎｃアルゴリズムが広く知られている。
【０００６】
また、特許文献３の方式では全てのクライアントからのバックアップは１つのバックアップサーバに集約されている。しかし、携帯電話、社内パソコン、ＰＤＡなどさまざまな環境が混在する状況では必ずしも全てのクライアントが特定のサーバに接続可能ではなく、その時々に応じたネットワーク環境におけるバックアップサーバへバックアップしておき、前記複数のバックアップサーバ間でデータの同期を取ることが求められている。
【０００７】
【特許文献１】特開２００２−３５１７２２号公報
【特許文献２】特開２００１−３４５８０号公報
【特許文献３】ＵＳＰ５，７６５，１７３
【非特許文献１】Andrew Tridgell 1999 "Efficient Algorithms for Sorting and Synchronization" PhD thesis, The Australian National University
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、クライアントのデータ格納領域を圧迫せず、データの秘密性を守ったまま効率よく差分バックアップを行う方法を提供することにある。また本発明の別の目的は、データの秘密性を守ったまま複数のバックアップサーバ間で同期を取る方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を実現するために、本発明におけるクライアント端末は初回バックアップを実施する際に、バックアップするデータを暗号化したもの（暗号化データ）と一緒に、差分計算のためのシグニチャを計算して前記暗号化データとともにサーバへ送信する。二回目以降は、サーバから前回受信したシグニチャをクライアントに送信し、クライアントはそのシグニチャを利用して差分を計算するとともに、バックアップしたいデータのシグニチャを計算し、前記差分を暗号化したものと前記計算したシグニチャを現サーバへ送信する。
【００１０】
また上記別の目的を実現するために、バックアップサーバにおいて暗号化差分データとシグニチャとともに、例えば日時などのデータのバージョンを特定するデータを一緒のレコードに格納しておき、第一のバックアップサーバは自分が持っているバージョンデータを第二のバックアップサーバに送信し、前記第二のバックアップサーバは前記受信したバージョンデータのうち、自分が持っていないものを要求するとともに、自分が持っているバージョンデータのうち、前記第一のバックアップサーバが持っていないデータを送信することによって、サーバ間の同期を実現する。
【発明の効果】
【００１１】
本発明によれば、クライアントのデータ格納領域を圧迫せずにデータの秘密性を守ったまま効率よく差分バックアップを実現できる。
【００１２】
また複数のバックアップサーバ間の同期を実現することにより、パソコン、携帯電話など異なる環境からバックアップした場合にも正常にバックアップが取れることを保障する。
【発明を実施するための最良の形態】
【００１３】
以下本発明を実施する為の最良な形態を詳細に説明する。第１図は本実施例におけるシステム構成である。バックアップサーバ１１０はデータ格納装置１１１を有し、ネットワーク１６０を介してクライアント１３０と接続されており、またネットワーク１５０を介してバックアップサーバ１２０と接続されている。バックアップサーバ１２０も前記バックアップサーバ１１０と同様にデータ格納装置１２１を有し、ネットワーク１７０を介してクライアント１４０と、ネットワーク１５０を介してバックアップサーバ１１０と接続されている。
【００１４】
クライアント１３０は演算装置１３２とデータ格納装置１３１を有し、クライアント１４０は演算装置１４２とデータ格納装置１４１を有している。例えばクライアント１３０はパソコン、ネットワーク１６０は社内ＬＡＮ、バックアップサーバ１１０は社内サーバ、ネットワーク１５０はインターネット、バックアップサーバ１２０は携帯キャリア内のサーバ、ネットワーク１７０は携帯電話網、クライアント１４０は携帯電話である。この例ではネットワーク１５０、１６０、１７０は別々のネットワークであったが必ずしもその必要はなく、例えばすべてのサーバとクライアントがインターネットで接続されていたり、サーバ間のネットワークだけが高速なストレージネットワークであったりすることも考えられる。
【００１５】
図２はバックアップ処理フローである。ステップ２１０においてクライアント１３０はバックアップするファイル名、最終更新日時、ファイルサイズなどを含むバックアップ開始要求メッセージを送信する。ステップ２２０で前記バックアップ開始要求メッセージを受信したサーバ１１０は、ステップ２３０においてデータ格納装置１１１に格納されているデータに前記ファイルが存在するかどうか確認し、存在しない場合にはステップ２４０の初期登録処理（図３にて後述する。）を実行する。ステップ２３０においてすでに存在した場合には、ステップ２５０においてデータ格納装置１１１に格納されたデータが送信されてきた最終更新日時より古いかどうか判定し、古い場合には更新が必要とみなしてステップ２６０において差分更新処理（図４にて後述する。）を実行する。ステップ２３０においてデータ格納装置１１１にあるデータがクライアント１３０のデータ格納装置１３１にあるデータと同じか新しい場合にはステップ２７０において更新不要処理（図５にて後述する。）を実行して終了する。
【００１６】
上記ではクライアント１３０、サーバ１１０を例に説明したがクライアント１４０、サーバ１２０の組み合わせでも同様である。また、上記説明ではバックアップ開始要求メッセージにファイルサイズを含んでいるが、バックアップの実施には必ずしも必要でない。
【００１７】
図３はステップ２４０の初期登録処理を詳細に説明した処理フローである。ステップ２３０で初期登録が必要と判断したサーバ１１０はステップ３１０でクライアント１３０に対して初期登録要求を送信する。ステップ３２０で上記初期登録要求を受信したクライアント１３０は、ステップ３３０で上記バックアップするファイルのシグニチャを計算し、ステップ３４０で上記バックアップするファイルを暗号化し、ステップ３５０で前記暗号化したデータとシグニチャをサーバ１１０へ送信する。ここで、ステップ３３０とステップ３４０の順番は逆でもよい。ステップ３６０で上記メッセージを受信したサーバ１１０はステップ３７０において上記受信したファイル名、最終更新日時、暗号化データ、シグニチャをデータ格納装置１１１に格納する。
【００１８】
図４はステップ２６０の差分更新処理を詳細に説明した処理フローである。ステップ２５０で更新が必要と判断したサーバ１１０はステップ４１０でデータ格納装置１１１に格納されているシグニチャを含む更新要求メッセージをクライアント１３０へ送信する。ステップ４２０で上記更新要求メッセージを受信したクライアント１３０は、ステップ４３０で前記受信したシグニチャを元に差分を計算し、ステップ４４０で前記計算した差分を暗号化し、ステップ４５０でバックアップするファイルのシグニチャを計算して、ステップ４６０で前記暗号化した差分と前記計算したシグニチャを送信する。ここで算出される差分はファイルのデータに追加、変更、削除の箇所がある場合の当該箇所を意味する。また、ステップ４５０で算出されるシグニチャは、更新後のファイルをブロック単位に再計算されるものであり、１つ前のシグニチャとは異なるシグニチャとなる。ここでステップ４３０−４４０の差分暗号化の処理とステップ４５０のシグニチャの計算との順番は逆でも良い。ステップ４７０で上記メッセージを受信したサーバ１１０はステップ４８０において上記受信した最終更新日時、暗号化差分データ、シグニチャをデータ格納装置１１１に格納する。
【００１９】
図５はステップ２７０の更新不要処理を詳細に説明した処理フローである。ステップ２５０で更新が不要と判断したサーバ１１０はステップ５１０で更新不要通知を送信し、ステップ５２０で前記更新不要通知を受信したクライアント１３０は上記該当するファイルのバックアップを終了する。
【００２０】
図６はデータ格納装置１１１に格納されるバックアップデータのうち、特定のファイルに関するデータ構造を示した図である。図６に示されるバックアップデータテーブルには最終更新日時６１０、バックアップ前の更新日時６２０、ファイルサイズ６３０、データ部６４０、シグニチャ６５０などが含まれる。初回登録時には更新前日時６２０は存在せず、データ部にはファイル全部を暗号化した暗号化初期データが格納される。それ以外の場合には更新前日時６２０に差分の元になったファイルの更新日時が記述され、データ部には上記ステップ４３０、４４０で計算された暗号化差分データが格納される。
【００２１】
図７はステップ２１０でバックアップ開始要求を送信した後のクライアント１３０の処理フローである。バックアップサーバ１１０から受信したメッセージをステップ７１０で判断し、初回登録要求だった場合ステップ３３０でシグニチャを計算し、ステップ３４０でファイル全体を暗号化し、ステップ３５０でサーバに送信する。上記受信したメッセージが更新要求だった場合、ステップ４３０で差分を計算し、ステップ４４０で前記差分を暗号化し、ステップ４５０でシグニチャを計算した後にステップ４６０でサーバに送信する。上記受信したメッセージが更新不要通知だった場合は、クライアント１３０は何もせず終了する。
【００２２】
図８は複数のバックアップサーバ間の同期の処理フローをあらわした図である。ステップ８１０においてサーバ１１０は対象ファイルに関して、データ格納装置１１１内に存在するデータの更新日時のリストをサーバ１２０へ送信する。ステップ８２０で上記更新日時のリストを受信したサーバ１２０は、ステップ８３０でデータ格納装置１２１内に存在する更新日時のリストと前記受信した更新日時のリストを比較し、ステップ８４０において、データ格納装置1２１に存在してデータ格納装置１１１に存在しない更新日時に対応するデータのリストと、データ格納装置１１１に存在してデータ格納装置１２１に存在しないデータを要求するための更新日時リストを送信する。ステップ８５０で前記メッセージを受信したサーバ１１０は、ステップ８６０で前記受信した不足分データをデータ格納装置１１１に格納し、ステップ８７０で前記要求された更新日時リストに対応するデータを送信する。ステップ８８０で前記メッセージを受信したサーバ１２０はステップ８９０で前記受信した不足分データを格納装置１２１に格納する。
【００２３】
図９はステップ８３０の過不足判定の方法を示した図である。サーバ１２０はステップ８１０で受信したバージョンリスト９１０とデータ格納装置１２１に格納されているバージョンリスト９２０を比較し、同じ物が存在する９１２と９２２に関しては更新不要、９２０にのみ存在する９２１、９２３に関してはサーバ１１０へデータ送信し、９１０にのみ存在する９１１、９１３に関してはサーバ１１０へデータ要求を行う。
【００２４】
図９ではバックアップサーバにおいて全ての時点の差分データを保持しつづける場合を説明したが、最新のデータだけを保持すればいいようなケースでは以下に説明する方法によりデータベースのサイズとサーバ間通信データ量を削減することが可能である。図１０は最新のデータだけを保持すればいいケースにおけるステップ８３０の過不足判定の方法を示した図である。図１０ではサーバ１２０が保持するデータの方が、サーバ１１０が保持するデータよりも新しいので、サーバ１２０が保持するデータを最新のものから順にサーバ１１０が保持しているものを検索していく。すると差分データ９２２に相当する差分データ９１２が存在することがわかるので、差分データ９２２の更新日時とそれ以降の差分データ９２３を送信する。ステップ８５０で差分データ９２２の更新日時と、差分データ９２３を受信したバックアップサーバ１１０は、差分データ９２２の更新日時を元に、差分データ９１２より新しいデータは不要であることを認識して差分データ９１３を削除し、前記受信した差分データ９２３をデータ格納装置１１１に格納する。サーバ１１０に送信する差分データ９２３は、差分データ９２２（サーバ１１０の差分データ９１２と同一内容）との差分であり、差分データ９１３は不要であると判断できる。この場合、同期後にはサーバ１１０には差分データ９１１、９１２（９２２）、９２３が、またサーバ１２０には差分データ９２１、９２２（９１２）、９２３が存在することになり、二つのサーバで保持するデータは必ずしも一致しないが、最新バージョンである９２３を復元するという目的のためには問題ない。また図１０とは逆にサーバ１１０が保持するデータの方が、サーバ１２０が保持するデータよりも新しい場合には、サーバ１２０はステップ８４０で、サーバ１１０が保持するデータのうちサーバ１２０が保持する最大のデータの更新日時(上記例における９２２に相当)をサーバ１１０に通知することによってサーバ１２０にないデータを要求し、ステップ８９０においてステップ８８０で受信した不足データをデータ格納装置１２１に格納するとともに、必要のないデータを削除することも可能である。
【００２５】
以上の例ではファイルの更新に枝分かれがない場合について説明したが、バージョン管理システムで一般的に用いられている枝分かれするような更新についても同様である。この場合には更新開始要求に枝名などが追加されるとともにデータ格納装置１１１、１２１に格納されるデータにも枝を識別するデータが追加されることになる。
【００２６】
されに以上の例では簡略化のためにデータのバックアップは１つのデータごとに行っているが、通信回数の削減のために一度に複数のファイルについてバックアップすることも考えられる。
【００２７】
また、バックアップデータの暗号化のための鍵の管理や暗号化機能はＩＣカードなどのセキュリティが高いデバイスに格納することが望ましい。
【産業上の利用可能性】
【００２８】
本発明に記載の方法によれば携帯電話、パソコン等に分散したデータをデータの守秘性を保持したままいつでもどこからでもバックアップするサービスを実現することが可能になる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施例におけるシステム構成図である
【図２】本発明の一実施例におけるバックアップ処理フローである
【図３】本発明の一実施例におけるバックアップ初期登録時の詳細処理フローである
【図４】本発明の一実施例における差分バックアップ時の詳細処理フローである
【図５】本発明の一実施例におけるバックアップ不要時の詳細処理フローである
【図６】本発明の一実施例においてバックアップサーバが保持するデータ項目を表した図である
【図７】本発明の一実施例におけるバックアップ時のクライアントの処理フローである
【図８】本発明の一実施例におけるサーバ間同期の処理フローである
【図９】本発明の一実施例におけるサーバ間同期時の過不足判断の処理を表した図である
【図１０】本発明の一実施例におけるサーバ間同期時の過不足判断の処理の別の方式を表した図である。
【符号の説明】
【００３０】
１１０、１２０…バックアップサーバ  １３０，１４０…クライアント  １１１、１２１、１３１、１４１…データ格納装置  １３２、１４２…演算装置  １５０、１６０、１７０…ネットワーク  ６１０…最終更新日時  ６２０…前回バックアップ日時  ６３０…サイズ  ６４０…データ  ６５０…シグニチャ
【図１】
2005301464.tif 000003
【図２】
2005301464.tif 000004
【図３】
2005301464.tif 000005
【図４】
2005301464.tif 000006
【図５】
2005301464.tif 000007
【図６】
2005301464.tif 000008
【図７】
2005301464.tif 000009
【図８】
2005301464.tif 000010
【図９】
2005301464.tif 000011
【図１０】
2005301464.tif 000012