(58)【調査した分野】(Int.Cl.,DB名)
暗号鍵を格納する鍵記憶手段とファイルを格納するファイル記憶手段とを備えたファイル同期サーバ、および差分暗号化データを格納する差分暗号化データ記憶手段を備えたクライアント端末を備えたファイル同期システムにおいて、
前記ファイル同期サーバが、前記鍵記憶手段から暗号鍵を取得して、前記クライアント端末に配信するステップと、
前記クライアント端末が、前記ファイル同期サーバから配信される暗号鍵を保持するステップと、
前記クライアント端末のファイル選択手段が、ファイル選択要求を前記ファイル同期サーバに送信するステップと、
前記ファイル同期サーバのファイル抽出手段が、前記ファイル選択要求に基づいて前記ファイル記憶手段から抽出したファイルを、前記クライアント端末に送信するステップと、
前記クライアント端末の仮想ストレージ管理手段が、単一のファイルに対して、前記ファイル同期サーバと同期がとれている第1のファイル、および前記第1のファイルに変更を加えた第2のファイルを格納する仮想ストレージを構築するステップと、
前記仮想ストレージ管理手段が、前記ファイル同期サーバからファイルを受信して、前記受信したファイルを前記仮想ストレージに第1のファイルとして格納するステップと、
前記第1のファイルが変更される場合、前記仮想ストレージ管理手段が、前記第1のファイルに変更を加えた第2のファイルを前記仮想ストレージに格納するステップと、
前記クライアント端末の同期要求手段が、ファイル比較イベントの発生に応答して、前記仮想ストレージの前記第1のファイルと前記第2のファイルとを比較するステップと、
両者の間に変更が生じる場合、前記同期要求手段が、ファイルの変更内容を含む同期要求を前記ファイル同期サーバに送信し、前記ファイル同期サーバとの同期処理中であることを示す同期情報を前記仮想ストレージ管理手段に送信するステップと、
前記ファイル同期サーバの同期手段が、前記同期要求を受信して、当該同期要求に含まれる変更内容に基づいて前記ファイル記憶手段のファイルを更新し、前記クライアント端末に更新完了通知を送信するステップと、
前記仮想ストレージ管理手段が、前記同期要求手段から前記同期情報を受信した後、前記ファイル同期サーバから前記更新完了通知を受信する場合、前記仮想ストレージの前記第1のファイルを前記第2のファイルで置き換えるステップと、
前記クライアント端末の差分暗号化データ管理手段が、前記仮想ストレージ管理手段が前記同期情報を受信後に前記ファイル同期サーバから前記更新完了通知を受信したか否かを判定し、前記同期情報を受信後に前記ファイル同期サーバから前記更新完了通知を受信していない場合、前記仮想ストレージの前記第1のファイルと前記第2のファイルとの差分データを取得し、前記暗号鍵で前記差分データを暗号化して前記差分暗号化データを生成し、前記差分暗号化データ記憶手段に格納するステップと、
前記差分暗号化データ管理手段が、前記差分暗号化データを含む復元要求を前記ファイル同期サーバに送信するステップと、
前記ファイル同期サーバの差分暗号化データ復元手段が、前記復元要求を受信して、前記暗号鍵を前記鍵記憶手段から取得して、当該取得した暗号鍵を用いて前記差分暗号化データを復号し、前記復号した差分暗号化データを用いて前記ファイル記憶手段のファイルを更新するステップと
を含むことを特徴とする方法。
【発明を実施するための形態】
【0014】
図1は、本発明の一実施形態に係るファイル同期システムの構成を示す図である。ファイル同期システムは、複数のクライアント端末101a、101b、・・・、101n(以下、クライアント端末101と呼ぶ)を備え、各クライアント端末101は、通信回線102を介してファイル同期サーバ103と相互に通信可能に接続される。
【0015】
クライアント端末101は、利用者によって使用される端末である。利用者Aは、例えば、自宅のパーソナルコンピュータ101a、モバイル端末101b、会社のパーソナルコンピュータ101cなど、複数のクライアント端末101を介して、ファイル同期サーバのストレージ領域に格納されたファイルを編集することができる。
【0016】
ファイル同期サーバ103は、クライアント端末101を介して作成および編集されるファイルを格納するストレージ領域を有する。各利用者は、クライアント端末101を介して所定の認証処理を行うことにより、特定の利用者に関連付けてストレージ領域に格納されるファイルを作成および編集することができる。
【0017】
次に、
図2のブロック図を参照して、上記したファイル同期サーバの構成を詳細に説明する。なお、
図2では、単一のコンピュータシステムを想定し、必要な機能構成だけを示しているが、ファイル同期サーバ103を、複数のコンピュータシステムによる多機能の分散システムの一部として構成することもできる。
【0018】
ファイル同期サーバ103は、CPU201に、システムバス202を介してメモリ203、入力装置204、出力装置205、通信制御装置206および不揮発性記憶媒体(ROMやHDDなど)で構成される記憶装置207が接続された構成を有する。記憶装置207は、上記した機能を奏するためのソフトウェアプログラムを格納するプログラム格納領域と、随時取得するデータや処理結果としてのデータ等を格納するデータ格納領域とを備えている。以下に説明するプログラム格納領域の各手段は、実際は独立したソフトウェアプログラム、そのルーチンやコンポーネントなどであり、CPU201によって記憶装置207から呼び出されメモリ203のワークエリアに展開されて、データベース等を適宜参照しながら順次実行されることで、各機能を奏するものである。
【0019】
データ格納領域は、利用者情報記憶手段208、およびファイル記憶手段209を備える。何れも、記憶媒体207内に確保された一定の記憶領域である。
【0020】
利用者情報記憶手段208は、
図3に示されるように、利用者ID、パスワード、暗号鍵を格納する。暗号鍵は、当該利用者IDに関連付けてファイル同期システムで管理されるファイルの暗号化、および複合化に用いられる。ファイル記憶手段209は、利用者IDに関連付けてファイルを格納する。
【0021】
プログラム格納領域に格納されているサーバ用ソフトウェアプログラムは、本発明に関連するものだけを列挙すると、利用者登録手段210、認証手段211、ファイル抽出手段212、同期手段213、および差分暗号化データ復元手段214を備えている。
【0022】
利用者登録手段210は、クライアント端末101を介した利用者からの利用者登録要求を受信して、利用者に関連付けられる暗号鍵を生成する。本実施形態では、利用者登録要求は利用者IDおよびパスワードを含み、利用者登録手段210は、利用者登録要求に含まれる情報を使用して、アルゴリズムによって暗号鍵を生成する。本実施形態では、ファイルの暗号化および複合化に共通鍵を用いるものとし、既知の共通鍵アルゴリズムを使用して暗号鍵を生成する。利用者登録手段210は、利用者登録要求に含まれる利用者ID、パスワード、および生成した暗号鍵を利用者情報記憶手段208に格納する。
【0023】
認証手段211は、クライアント端末101を介した利用者からの認証要求を受信して、利用者情報記憶手段208を参照して認証を行う。本実施形態では、認証要求は利用者IDおよびパスワードを含み、利用者情報記憶手段208に一致するレコードが存在する場合、認証要求に含まれる利用者の認証は成功する。利用者の認証が成功する場合、認証手段211は、認証された利用者の利用者IDに関連付けられている暗号鍵を利用者情報記憶手段208から取得して、クライアント端末101に配信する。
【0024】
ファイル抽出手段212は、クライアント端末101を介した利用者からのファイル選択要求を受信して、ファイル選択要求に基づいてファイル記憶手段209からファイルを抽出し、抽出したファイルをクライアント端末101に送信する。本実施形態では、利用者の認証が成功する場合、ファイル記憶手段209において当該利用者の利用者IDに関連付けて格納されるファイルの一覧がクライアント端末101に提供され、利用者は、提供されたファイルの一覧から特定のファイルを選択することができる。ファイル選択要求は、利用者IDおよびファイルを一意に識別するファイル識別子を含み、本実施形態では、ファイル名をファイル識別子として利用する。
【0025】
同期手段213は、クライアント端末101から同期要求を受信して、同期要求に基づいてファイル記憶手段209のファイルを更新する。本実施形態では、同期要求は利用者ID、および変更後のファイルを含み、同期手段213は、同期要求に含まれる利用者IDおよび変更後のファイルのファイル識別子を用いてファイル記憶手段209に格納されるファイルを特定し、特定したファイルを変更後のファイルで置き換える。同期手段213は、ファイルの更新が完了すると、クライアント端末101に更新完了通知を送信する。
【0026】
差分暗号化データ復元手段214は、クライアント端末101から差分暗号化データ復元要求を受信して、差分暗号化データ復元要求に基づいてファイル記憶手段209のファイルを更新する。本実施形態では、差分暗号化データ復元要求は利用者ID、ファイル識別子、および差分暗号化データを含む。差分暗号化データ復元手段214は、利用者IDに関連付けられている暗号鍵を利用者情報記憶手段208から取得して、取得した暗号鍵を用いて差分暗号化データを復号する。差分暗号化データ復元手段214は、差分暗号化データ復元要求に含まれる利用者IDおよびファイル識別子を用いてファイル記憶手段209に格納されるファイルを特定し、復号した差分暗号化データを用いて特定したファイルを更新する。
【0027】
次に、
図4のブロック図を参照して、上記したクライアント端末の構成を詳細に説明する。クライアント端末101は、CPU301に、システムバス302を介してメモリ303、入力装置304、出力装置305、通信制御装置306および不揮発性記憶媒体(ROMやHDD、SDDなど)で構成される記憶装置307が接続された構成を有する。記憶装置307は、上記した機能を奏するためのソフトウェアプログラムを格納するプログラム格納領域と、随時取得するデータや処理結果としてのデータ等を格納するデータ格納領域とを備えている。以下に説明するプログラム格納領域の各手段は、実際は独立したソフトウェアプログラム、そのルーチンやコンポーネントなどであり、CPU301によって記憶装置307から呼び出されメモリ303のワークエリアに展開されて、データベース等を適宜参照しながら順次実行されることで、各機能を奏するものである。
【0028】
データ格納領域は、差分暗号化データ記憶手段308を備える。差分暗号化データ記憶手段308は、利用者IDに関連付けて差分暗号化データを格納する。差分暗号化データは、後述するように、ファイル同期サーバ103と同期がとれているファイルと、変更後のファイルとの差分データを、暗号鍵を用いて暗号化したデータである。
【0029】
プログラム格納領域に格納されているクライアント用ソフトウェアプログラムは、本発明に関連するものだけを列挙すると、認証要求手段309、ファイル選択手段310、仮想ストレージ管理手段311、同期要求手段312、および差分暗号化データ管理手段313を備えている。
【0030】
認証要求手段309は、入力装置304を介した利用者からの認証情報を受信して、ファイル同期サーバ103に認証要求を送信する。本実施形態では、認証情報は利用者IDおよびパスワードを含み、認証要求手段309は、利用者IDおよびパスワードを含む認証要求をファイル同期サーバ103に送信する。前述のように、利用者の認証が成功する場合、ファイル同期サーバ103から暗号鍵が配信される。認証要求手段309は、ファイル同期サーバ103から配信される暗号鍵を受信して、当該暗号鍵を保持する。
【0031】
認証要求手段309が暗号鍵を保持するので(すなわち、暗号鍵はメモリ上で管理されるので)、クライアント端末がシャットダウンされると、暗号鍵は消去される。前述のように、クライアント端末101は、差分暗号化データ記憶部308に差分暗号化データを格納するが、差分暗号化データの復号に用いる暗号鍵はクライアント端末101のシャットダウンにより自動で消去されるので、クライント端末101に残されたローカルファイルを、安全に管理することができる。
【0032】
ファイル選択手段310は、入力装置304を介した利用者からのファイル選択指示を受信すると、ファイル同期サーバ103にファイル選択要求を送信する。本実施形態では、前述のように、利用者の認証が成功するとファイル同期サーバ103からファイルの一覧が提供され、利用者は、提供されたファイルの一覧から特定のファイルを選択する。本実施形態では、ファイル選択手段310は、利用者が選択したファイル名を含むファイル選択指示を受信して、当該ファイル名および利用者IDを含むファイル選択要求をファイル同期サーバ103に送信する。
【0033】
仮想ストレージ管理手段311は、クライアント端末101のメモリ303上に、利用者IDに関連付けられた仮想ストレージを構築する。仮想ストレージでは、単一のファイルに対して、ファイル同期サーバ103と同期がとれている第1のファイル、および第1のファイルに変更を加えた第2のファイルが格納される。まず、仮想ストレージ管理手段311は、ファイル選択要求に応答してファイル同期サーバ103からファイルを受信すると、受信したファイルを仮想ストレージに第1のファイルとして格納する。その後、利用者による編集操作に伴い第1のファイルが変更される場合、仮想ストレージ管理手段311は、第1のファイルに変更を加えた第2のファイルを仮想ストレージに格納する。
【0034】
また、仮想ストレージ管理手段311は、後述する同期要求手段312から同期情報を受信する。本実施形態では、同期情報は、ファイル名を含む。同期要求手段312から同期情報を受信した後、ファイル同期サーバ103から更新完了通知を受信すると、仮想ストレージ管理手段311は、同期情報に基づいて仮想ストレージの第1のファイルを更新する。本実施形態では、同期情報に含まれるファイル名により特定される第1のファイルを第2のファイルで置き換える。
【0035】
同期要求手段312は、仮想ストレージ内の第1のファイルと第2のファイルとを比較して、両者の間に変更が生じる場合、ファイル同期サーバ103に同期要求を送信する。本実施形態では、同期要求手段312は、ファイルの最終更新日時を示す時刻情報を比較して、時刻情報が更新されている場合、利用者ID、および変更後のファイルを含む同期要求をファイル同期サーバ103に送信する。また、同期要求手段312は、ファイル名を含む同期情報を仮想ストレージ管理手段311に送信する。なお、本実施形態では、変更後のファイルを含む同期要求をファイル同期サーバ103に送信しているが、別の実施形態では、第1のファイルと第2のファイルとの差分データを取得して、当該差分データを含む同期要求をファイル同期サーバ103に送信することもできる。
【0036】
同期要求手段312は、ファイル比較イベントの発生に応答して、第1のファイルと第2のファイルとを比較することができる。本実施形態では、ファイル比較イベントには、例えば「上書き保存」など、入力装置304を介した利用者からのファイル更新指示が含まれる。また、ファイル比較イベントには、例えば5分に1度など、一定の時間単位で同期要求手段312が生成したファイル比較イベントも含むことができる。
【0037】
差分暗号化データ管理手段313は、入力装置304を介した利用者からのプログラム終了指示を受信すると、仮想ストレージ管理手段311が、同期情報を受信後にファイル同期サーバ103から更新完了通知を受信したか否かを判定する。同期情報を受信後に更新完了通知を受信していない場合、差分暗号化データ管理手段313は、第1のファイルと第2のファイルとの差分データを取得し、認証要求手段309が保持する暗号鍵を用いて、当該差分データを暗号化する。差分暗号化データ管理手段313は、差分暗号化データを利用者IDに関連付けて差分暗号化データ記憶手段308に格納する。
【0038】
また、差分暗号化データ管理手段313は、差分暗号化データ復元要求をファイル同期サーバ103に送信する。本実施形態では、差分暗号化データ管理手段313は、利用者ID、ファイル識別子、および差分暗号化データを含む差分暗号化データ復元要求をファイル同期サーバ103に送信する。
【0039】
(事前準備)
サーバ上のストレージ領域にファイルを保存するオンラインストレージにおいて、通信障害時に編集中のファイルを安全に管理するための事前準備として、利用者登録を行うことにより、利用者情報記憶手段208に情報を格納する必要がある。
【0040】
本実施形態では、利用者登録手段210が、クライアント端末101からの利用者登録要求を受信して、
図3に示されるような利用者情報が、利用者情報記憶手段211に格納されているものとする。例えば、利用者登録手段210は、利用者ID「userA」およびパスワード「aaaaaaaa」を含む利用者登録要求を受信して、利用者ID「userA」に関連付けられる暗号鍵「鍵a」を生成し、格納している。同様に、利用者登録手段210は、利用者ID「userB」に関連付けられる暗号鍵「鍵b」、および利用者ID「userC」に関連付けられる暗号鍵「鍵c」を生成し、格納している。
【0041】
(実施例)
次に、
図5から
図9のファイル同期システムの概念図および
図10から
図12のフローチャートを参照して、本実施形態に係るサーバ上のストレージ領域にファイルを保存するオンラインストレージにおいて、通信障害時に編集中のファイルを安全に管理する方法の処理工程を説明する。本実施形態では、利用者Aが『サンプル.doc』を編集中に通信障害が発生する場合について説明する。
【0042】
(編集対象のファイルの取得)
まず初めに、
図5のファイル同期システムの概念図および
図10のフローチャートを参照して、利用者Aが編集対象のファイル『サンプル.doc』を取得するまでの処理工程を説明する。
【0043】
利用者Aがクライアント端末101を介して、ファイル同期サーバ103に認証要求を送信する(S1)。本実施形態では、
図5の[1]に示されるように、クライアント端末101の認証要求手段309が、利用者ID「userA」およびパスワード「aaaaaaa」を含む認証要求を送信したものとする。ファイル同期サーバ103の認証手段211は、クライアント端末101から認証要求を受信すると、利用者情報記憶手段208を参照して認証を行う(S2)。本実施形態では、認証要求に含まれる利用者IDおよびパスワードと一致するレコードが利用者情報記憶手段208に存在するので、認証は成功する。
【0044】
利用者の認証が成功する場合、クライアント端末101の差分暗号化データ管理手段313は、認証された利用者の利用者IDに関連付けられている差分暗号化データが差分暗号化データ記憶手段308に格納されているか否か判定する(S3)。本実施形態では、
図5に示されるように、差分暗号化データ記憶手段308に差分暗号化データは存在しないので、S4に進む。
【0045】
利用者の認証が成功する場合、認証手段211は、認証された利用者の利用者IDに関連付けられている暗号鍵を利用者情報記憶手段208から取得して、クライアント端末101に配信する(S4)。本実施形態では、
図3に示されるように、利用者ID「userA」に関連付けられている暗号鍵「鍵a」を利用者情報記憶手段208から取得して、クライアント端末101に配信する(
図5の[2])。クライアント端末101の認証要求手段309は、ファイル同期サーバ103から暗号鍵を受信すると、当該暗号鍵を保持する(S5)。
【0046】
ファイル同期サーバ103は、利用者の認証が成功する場合、さらに、ファイル記憶手段209において当該利用者の利用者IDに関連付けて格納されるファイルの一覧をクライアント端末101に提供する(S6)。本実施形態では、
図5に示されるように、利用者ID「userA」に関連付けて格納される2つのファイル『サンプル.doc』および『テスト.doc』を含む一覧がクライアント端末101に提供される。
【0047】
クライアント端末101のファイル選択手段310は、入力装置304を介した利用者からのファイル選択指示を受信すると、ファイル同期サーバ103にファイル選択要求を送信する(S7)。本実施形態では、ファイル選択手段310は、ファイル識別子としてファイル名「サンプル.doc」を含むファイル選択指示を受信して、当該ファイル名および利用者ID「userA」を含むファイル選択要求をファイル同期サーバ103に送信する。
【0048】
ファイル同期サーバ103のファイル抽出手段212は、クライアント端末101からのファイル選択要求を受信すると、ファイル選択要求に基づいてファイル記憶手段209からファイルを抽出し、抽出したファイルをクライアント端末101に送信する(S8)。本実施形態では、
図5の[3]に示されるように、ファイル抽出手段212は、利用者ID「userA」およびファイル名「サンプル.doc」を含むファイル選択要求を受信して、利用者ID「userA」およびファイル名「サンプル.doc」により特定されるファイルをファイル記憶手段209から抽出し、クライアント端末101に送信する。
【0049】
クライアント端末の仮想ストレージ管理手段311は、ファイル同期サーバ103からファイルを受信すると、クライアント端末101のメモリ303上に、利用者IDに関連付けられた仮想ストレージが構築されているか否か判定する(S9)。構築されていない場合、仮想ストレージ管理手段311は、仮想ストレージを構築する(S10)。本実施形態では、利用者ID「userA」に関連付けられた仮想ストレージは構築されていないので、仮想ストレージを構築する。
【0050】
仮想ストレージ管理手段311は、ファイル同期サーバ103から受信したファイルを、ファイル同期サーバ103と同期がとれている第1のファイルとして仮想ストレージに格納する(S11)。本実施形態では、仮想ストレージ管理手段311は、
図5に示されるように、バージョン1のファイル『サンプル.doc』を第1のファイルとして格納したものとする。
【0051】
(ファイル同期サーバとクライアント端末との同期 −オンライン時−)
次に、
図5、6のファイル同期システムの概念図および
図11のフローチャートを参照して、利用者Aが編集操作を行い、ファイル同期サーバとクライアント端末との間で同期を完了するまでの処理工程を説明する。
【0052】
第1のファイルが格納された後、利用者による編集操作に伴い第1のファイルが変更される場合、仮想ストレージ管理手段311は、第1のファイルに変更を加えた第2のファイルを仮想ストレージに格納する(S12)。本実施形態では、
図5に示されるように、利用者Aによる編集操作に伴い、仮想ストレージ管理手段311が、バージョン2のファイル『サンプル.doc』を第2のファイルとして格納したものとする。
【0053】
クライアント端末101の同期要求手段312は、ファイル比較イベントの発生に応答して(S13)、第1のファイルと第2のファイルとを比較する(S14)。本実施形態では、入力装置304を介した利用者からのファイル更新指示に応答して、同期要求手段312は、第1のファイルと第2のファイルとを比較するものとする。
【0054】
両者の間に変更が生じる場合、同期要求手段312は、ファイル同期サーバ103に同期要求を送信する(S15)。本実施形態では、バーション1のファイル『サンプル.doc』の最終更新日時を示す時刻情報とバージョン2のファイル『サンプル.doc』の最終更新日時を示す時刻情報とを比較すると、後者の時刻情報が更新されているので、同期要求手段312は、
図5の[4]に示されるように、利用者ID「userA」、および変更後のファイルとしてバージョン2のファイル『サンプル.doc』を含む同期要求をファイル同期サーバ103に送信する。
【0055】
また、同期要求手段312は、ファイル名を含む同期情報を仮想ストレージ管理手段311に送信する(S16)。本実施形態では、ファイル名「サンプル.doc」を含む同期情報を仮想ストレージ管理手段311に送信する。
【0056】
ファイル同期サーバ103の同期手段213は、クライアント端末101から同期要求を受信すると、同期要求に基づいてファイル記憶手段209のファイルを更新する(S17)。本実施形態では、同期要求は利用者ID「userA」、および変更後のファイルとしてとしてバージョン2のファイル『サンプル.doc』を含み、同期手段213は、同期要求に含まれる利用者ID「userA」および変更後のファイルのファイル名「サンプル.doc」を用いてファイル記憶手段209に格納されるファイルを特定し、特定したファイルを変更後のファイルで置き換える。当該更新処理により、
図6の[1]に示されるように、ファイル記憶手段209に格納される『サンプル.doc』はバージョン2となる。
【0057】
同期手段213は、ファイルの更新が完了すると、クライアント端末101に更新完了通知を送信する(S18)。ファイル同期サーバ103から更新完了通知を受信すると、仮想ストレージ管理手段311は、同期情報に基づいて仮想ストレージの第1のファイルを更新する(S19)。本実施形態では、同期情報に含まれるファイル名「サンプル.doc」により特定される第1のファイルを第2のファイルで置き換える。当該更新処理により、
図6の[3]に示されるように、第1のファイルは、バージョン2のファイル『サンプル.doc』となる。
【0058】
(ファイル同期サーバとクライアント端末との同期 −オフライン時−)
次に、
図7、8のファイル同期システムの概念図および
図12のフローチャートを参照して、利用者Aが編集操作を行い、ファイル同期サーバとクライアント端末との間で同期が完了する前にクライアント端末をシャットダウンするまでの処理工程を説明する。
【0059】
第1のファイルが格納または更新された後、利用者による編集操作に伴い第1のファイルが変更される場合、仮想ストレージ管理手段311は、第1のファイルに変更を加えた第2のファイルを仮想ストレージに格納する(S12)。本実施形態では、
図7に示されるように、利用者Aによる編集操作に伴い、仮想ストレージ管理手段311が、バージョン3のファイル『サンプル.doc』を第2のファイルとして格納したものとする。
【0060】
クライアント端末101の同期要求手段312は、ファイル比較イベントの発生に応答して(S13)、第1のファイルと第2のファイルとを比較する(S14)。本実施形態では、入力装置304を介した利用者からのファイル更新指示に応答して、同期要求手段312は、第1のファイルと第2のファイルとを比較するものとする。
【0061】
両者の間に変更が生じる場合、同期要求手段312は、ファイル同期サーバ103に同期要求を送信する(S15)。本実施形態では、バーション2のファイル『サンプル.doc』の最終更新日時を示す時刻情報とバージョン3のファイル『サンプル.doc』の最終更新日時を示す時刻情報とを比較すると、後者の時刻情報が更新されているので、同期要求手段312は、利用者ID「userA」、および変更後のファイルとしてバージョン3のファイル『サンプル.doc』を含む同期要求Aをファイル同期サーバ103に送信する。
【0062】
ここで、本実施形態では、ファイル同期サーバ103とクライアント端末101との間で通信障害が発生し、そのため、ファイル同期サーバ103は、クライアント端末101から同期要求Aを受信していないものとする。
【0063】
同期要求手段312は、ファイル名を含む同期情報を仮想ストレージ管理手段311に送信する(S16)。本実施形態では、ファイル名「サンプル.doc」を含む同期情報Aを仮想ストレージ管理手段311に送信する。
【0064】
オンライン時は、ファイル同期サーバ103の同期手段213がクライアント端末101から同期要求Aを受信することにより
図11のS17に進むが、本実施形態では、前述したように、通信障害の発生により、ファイル同期サーバ103は、クライアント端末101から同期要求Aを受信していない。また、本実施形態では、同期要求手段312が、5分に1度の時間単位でファイル比較イベントを生成するものとする。
【0065】
同期要求手段312が生成したファイル比較イベントの発生に応答して(S13)、同期要求手段312は、第1のファイルと第2のファイルとを比較する(S14)。本実施形態では両者の間に変更が生じるので、同期要求手段312は、ファイル同期サーバ103に同期要求A’を送信する(S15)。また、同期要求手段312は、ファイル名「サンプル.doc」を含む同期情報A’を仮想ストレージ管理手段311に送信する(S16)。
【0066】
この時点において、ファイル同期サーバ103とクライアント端末101との接続が復旧している場合、ファイル同期サーバ103の同期手段213がクライアント端末101から同期要求A’を受信することにより
図11のS17に進むが、本実施形態では、依然としてファイル同期サーバ103とクライアント端末101との間で通信障害が発生しているものとする。
【0067】
クライアント端末101の差分暗号化データ管理手段313は、入力装置304を介した利用者からのプログラム終了指示を受信すると(S20)、仮想ストレージ管理手段311が、同期情報を受信後にファイル同期サーバ103から更新完了通知を受信したか否かを判定する(S21)。本実施形態では、プログラム終了指示を受信した際、更新完了通知を受信していないものとする。
【0068】
同期情報を受信後に更新完了通知を受信していない場合、差分暗号化データ管理手段313は、第1のファイルと第2のファイルとの差分データを取得し、認証要求手段309が保持する暗号鍵を用いて、当該差分データを暗号化する(S22)。本実施形態では、
図7に示されるように、差分暗号化データ管理手段313は、第1のファイルと第2のファイルとの差分データを取得し、認証要求手段309が保持する暗号鍵「鍵a」を用いて差分暗号化データを生成する。
【0069】
差分暗号化データ管理手段313は、差分暗号化データを利用者IDに関連付けて差分暗号化データ記憶手段308に格納する(S23)。本実施形態では、生成した差分暗号化データを利用者ID「userA」に関連付けて差分暗号化データ記憶手段308に格納する。
【0070】
その後、利用者がクライアント端末101をシャットダウンすると、
図8に示されるように、メモリ上で管理されていた仮想ストレージ内のファイルおよび暗号鍵は消去される。このように、クライアント端末101が配信された暗号鍵をメモリ上で管理することにより、クライアント端末101のシャットダウン後にクライアント端末101に残るのは差分暗号化データのみとなるので、当該差分暗号化データを安全に管理することができる。例えば、クライアント端末101が紛失してしまったとしても、差分暗号化データを復号する暗号鍵はクライアント端末101に存在しないので、差分暗号化データが漏洩するリスクを最大限に抑えることができる。
【0071】
また、暗号化するデータをすべてのデータではなく、差分データとすることで、クライアント端末の暗号化処理の負担を軽減することができる。これにより、暗号化処理の処理時間および消費電力が最小限になり、クライアント端末の処理能力が低い場合であっても、その処理負担による影響を最小限に抑えることができる。
【0072】
なお、別の実施形態では、差分暗号化データ管理手段313は、差分暗号化データを差分暗号化データ記憶手段308に格納したのち、メモリ上で管理されている仮想ストレージ内のファイルおよび暗号鍵を消去することもできる。
【0073】
(ファイル同期サーバとクライアント端末との同期 −再接続時−)
次に、
図9のファイル同期システムの概念図および
図10のフローチャートを参照して、クライアント端末に残された差分暗号化データに基づいて、ファイル同期サーバ上で管理するファイルを更新するまでの処理工程を説明する。
【0074】
利用者Aがクライアント端末101を介して、ファイル同期サーバ103に認証要求を送信する(S1)。本実施形態では、
図9の[1]に示されるように、クライアント端末101の認証要求手段309が、利用者ID「userA」およびパスワード「aaaaaaa」を含む認証要求を送信したものとする。ファイル同期サーバ103の認証手段211は、クライアント端末101から認証要求を受信すると、利用者情報記憶手段208を参照して認証を行う(S2)。本実施形態では、認証要求に含まれる利用者IDおよびパスワードと一致するレコードが利用者情報記憶手段208に存在するので、認証は成功する。
【0075】
利用者の認証が成功する場合、クライアント端末101の差分暗号化データ管理手段313は、認証された利用者の利用者IDに関連付けられている差分暗号化データが差分暗号化データ記憶手段308に格納されているか否か判定する(S3)。本実施形態では、
図9に示されるように、認証された利用者の利用者IDに関連付けられている差分暗号化データが格納されているので、S30に進む。
【0076】
差分暗号化データが格納されている場合、差分暗号化データ管理手段313は、差分暗号化データ復元要求をファイル同期サーバ103に送信する(S30)。本実施形態では、差分暗号化データ管理手段313は、
図9の[2]に示されるように、利用者ID「userA」、ファイル識別子「サンプル.doc」、および差分暗号化データを含む差分暗号化データ復元要求をファイル同期サーバ103に送信する。
【0077】
差分暗号化データ復元手段214は、クライアント端末101から差分暗号化データ復元要求を受信すると、差分暗号化データ復元要求に含まれる利用者IDに関連付けられている暗号鍵を利用者情報記憶手段208から取得して、取得した暗号鍵を用いて差分暗号化データを復号する(S31)。本実施形態では、差分暗号化データ復元手段214は、利用者ID「userA」に関連付けられている暗号鍵「鍵a」を利用者情報記憶手段208から取得して、取得した暗号鍵を用いて差分暗号化データを復号する。
【0078】
差分暗号化データ復元手段214は、差分暗号化データ復元要求に含まれる利用者IDおよびファイル識別子を用いてファイル記憶手段209に格納されるファイルを特定し、復号した差分暗号化データを用いて特定したファイルを更新する(S32)。本実施形態では、利用者ID「userA」およびファイル識別子「サンプル.doc」を用いてファイル記憶手段209に格納されるファイルを特定し、復号した差分暗号化データを用いて特定したファイルを更新する。当該更新処理により、
図9の[3]に示されるように、ファイル記憶手段209に格納される『サンプル.doc』はバージョン3となる。その後、処理は同図のS4に戻る。
【0079】
このように、クライアント端末101に残された差分暗号化データを、クライアント端末101とファイル同期サーバ103との再接続時に転送することにより、オフライン時に、クライアント端末101におけるローカルファイルの更新を可能としつつ、再接続時に、クライアント端末101における更新内容をファイル同期サーバ103で復元することができる。
【0080】
なお、本実施形態では、差分暗号化データをクライアント端末101からファイル同期サーバ103に転送し、ファイル同期サーバ103において更新内容を復元しているが、別の実施形態では、クライアント端末101において更新内容を復元することもできる。この場合、差分暗号化データが差分暗号化データ記憶手段308に格納されているか否か判定した後(S3)、差分暗号化データ管理手段313は、前述した差分暗号化データ復元要求の代わりに、差分暗号化データ復元情報要求をファイル同期サーバ103に送信することができる。一実施形態では、差分暗号化データ管理手段313は、利用者ID「userA」およびファイル識別子「サンプル.doc」を含む差分暗号化データ復元情報要求をファイル同期サーバ103に送信する。
【0081】
ファイル同期サーバ103は、差分暗号化データ復元情報要求を受信すると、当該差分暗号化データ復元情報要求に基づいて、利用者情報記憶手段208に格納される暗号鍵、およびファイル記憶手段209に格納されるファイルを取得して、クライアント端末101に送信する。これにより、クライアント端末101は、受信した暗号鍵を用いて差分暗号化データを復号し、復号した差分暗号化データを用いてファイルを更新することができる。