説明

高遅延、低帯域幅環境におけるNETBACKUPデータ復号のためのシステムおよび方法

【課題】高遅延、低帯域幅環境におけるNETBACKUPデータ復号のためのシステムおよび方法を提供する。
【解決手段】バックアップサーバ150とクライアントコンピュータ110a-cとが、第1のネットワーク180を介して互いに結合され、バックアップサーバ150は、インターネット190などの別のネットワークを介して遠隔データ記憶域に結合される。バックアップサーバ150は、クライアントコンピュータ110a-cからのバックアップ用受信データを暗号化する。暗号セグメントおよび暗号部分セグメントのサイズを選ぶことができ、選択された暗号アルゴリズムで、同じ暗号部分セグメントのサイズを有する直前の保護された部分セグメントをまず復号する、そして暗号部分セグメントのサイズを有する所与の保護された部分セグメントを復号する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータネットワーク分野に関し、より詳細には、低帯域幅ネットワークを介して暗号化データを効率的に転送することに関する。
【背景技術】
【0002】
コンピュータのメモリストレージおよびデータ帯域幅が増加するにつれ、企業が日々管理するデータの量および複雑さも増す。そうしたデータの大部分は、電子的な文書、発表、タスク、ディスカッショントピック等を含み得る。この情報の業務上の価値にもよるが、特定の情報へのアクセスは安全かつ非公開であり得る。データの喪失、とりわけ極めて重要なデータであると特定されるデータの喪失を防ぐために、情報サーバおよびエンドユーザシステムのコンテンツをバックアップ記憶域にバックアップすることができる。そのような場合、専用サーバおよび記憶サブシステムは、バックアップシステムを含むことができる。バックアップシステムは、データをバックアップするためのデータの量および時間を減らしてマシンを保護しようとする。
【0003】
情報技術(IT)管理者に関し、企業情報ならびに従業員および顧客へのコンピューティングサポートの管理を集中化するために、IT管理者はデータセンタを利用することができる。データセンタは、この企業情報を記憶し、管理し、保護し、広めるための物理的または仮想的な集中リポジトリである。データセンタは、サーバルームまたはサーバファームと呼ばれることもある。しかし、IT管理者が設備投資を避けることを選び、短期的にまたは長期的に1つまたは複数のサーバコンピュータシステムをリースする場合があり得る。その企業は、サードパーティーの遠隔地にあるリソースをサービスとして消費し、実際に消費したリソースの代金だけを支払うことができる。例には、教育的なクラスルームサービス、潜在的なユーザまたは購入者へのソフトウェアのデモ、ウェブサイトサーバアプリケーション、データ保護等が含まれる。
【0004】
上記に記載したコンピューティングの種類はクラウドコンピューティングと呼ぶことができ、クラウドコンピューティングでは、動的に拡張可能でありかつ多くの場合仮想化されたサードパーティーの遠隔地にあるリソースが、インターネットなどのネットワークを介して使用されるために供給される。クラウドコンピューティングは、オンデマンドの入手、金銭的コストの低下、およびアプリケーションのモビリティをもたらす。例えば、アプリケーションソフトウェアおよび対応するデータを遠隔地に記憶することができ、しかしながら、そのアプリケーションはウェブブラウザからアクセス可能とすることができる。ソフトウェアアプリケーションのクラウドコンピューティングによる実装は、そのアプリケーションをサポートするインフラについての知識またはそうしたインフラに対する制御なしに、企業がインターネットを介してそのアプリケーションにアクセスすることを可能にする。遠隔アクセスに関する主な考慮事項には、遠隔アクセスソフトウェアおよびネットワークインターフェイスが含まれる。
【0005】
IT管理者は、データバックアップおよびデータ保護、データ復旧、復元および再始動、アーカイビングおよび長期保持、ならびに記憶アーキテクチャを管理するために必要な日々の処理および手続きのための管理システムを開発することができる。この管理システムは、情報を効果的に管理するために特定のポリシを適用することができる。この管理システムは、クラウドコンピューティングシステム内の遠隔データ記憶位置にバックアップデータストリームを書き込むことを可能にする、クラウドプラグインをサポートすることができる。カタログおよびトラッキングの負担を最小限にするために、これらのデータストリームは概して非常に大きい。さらに、これらのデータストリームは、保護するために一般に暗号化される。高遅延および低帯域幅特性が、広域ネットワーク(WAN)を含むクラウドコンピューティングシステムの典型的な特徴である。そのような環境ではバックアップ操作および復旧操作のどちらのデータ転送も遅く、クラウドコンピューティングソリューションを利用する利益を減らす可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記の内容に鑑みて、低帯域幅ネットワークを介して暗号化データを効率的に転送するための改善されたシステムおよび方法が求められる。
【課題を解決するための手段】
【0007】
低帯域幅ネットワークを介して暗号化データを効率的に転送するためのシステムおよび方法。
【0008】
一実施形態では、コンピューティングシステムが、ローカルエリアネットワーク(LAN)などのネットワークを介して互いに結合される、バックアップサーバおよびクライアントコンピュータを含む。バックアップサーバは、インターネットなどの別のネットワークを介して遠隔データ記憶域に結合される。この他のネットワークをクラウドと呼ぶことができる。遠隔データ記憶域は、アーカイブ記憶域を含むことができる。クライアントコンピュータが、被選択データに関するバックアップ要求をバックアップサーバに送信すると、バックアップサーバは、クライアントコンピュータからの受信データを暗号化する。互いにバイト境界上で整列(align)し、かつ選択されたバックアップセグメントおよびバックアップ部分セグメントのサイズにバイト境界上で整列する、暗号セグメントおよび暗号部分セグメントのサイズを選ぶことができる。したがって、セグメントのそれぞれの始まりは、他のセグメントに整列する。バックアップセグメントおよびバックアップ部分セグメントのサイズは、遠隔バックアップ記憶域上のソフトウェアによって使用されることに加え、バックアップサーバと遠隔データ記憶域との間のクラウドを介したデータ伝送のために使用することができる。選択される暗号アルゴリズムは、暗号部分セグメントのサイズを有する所与の暗号化部分セグメントを、同じ暗号部分セグメントのサイズを有する直前の暗号化部分セグメントを利用することによって復号することを可能にする特性を有することができる。例えば、所与の128キロバイト(KB)の暗号セグメントは、32バイトの暗号部分セグメントを4,096個含むことができる。7のオフセットインデックスを有する所与の32バイトの暗号部分セグメントは、先行する6のオフセットインデックスを有する第2の32バイトの暗号部分セグメント、またはその所与の32バイトの暗号部分セグメントの直前の32バイトの暗号部分セグメントを利用することにより復号することができる。それ自体が暗号化されているこの先行する32バイトの暗号部分セグメントは、所与の32バイトの暗号部分セグメントを復号するための鍵として使用することができる。したがって、所与の32バイトの暗号部分セグメントを復号するために、全128KBの暗号セグメントを使用することはない。
【0009】
暗号化データがクラウドを介して遠隔データ記憶域に送信された後、クライアントコンピュータは、バックアップされたデータの復元を後の時点において要求することができる。要求されたデータの一部が、128KBの暗号セグメントなど、ある暗号セグメントのサイズよりも小さい場合、遠隔データ記憶域はクラウドを介してより小さなサイズのブロックを送ることができる。例えば、1KBのサイズなど、バックアップ部分セグメントのサイズを有する1つまたは複数のブロックを送ることができる。バックアップサーバは、1KBの部分セグメントなどのバックアップ部分セグメントのそれぞれの中の、32バイトの部分セグメントなど、1つまたは複数の暗号化部分セグメントを復号することができる。次いで、その復号データをクライアントコンピュータに伝えることができる。
【0010】
以下の説明および添付図面を参照することにより、これらのおよび他の実施形態が理解される。
【図面の簡単な説明】
【0011】
【図1】ネットワークアーキテクチャの一実施形態を示す一般化したブロック図である。
【図2】効率的なバックアップ操作のための方法の一実施形態を示す一般化した流れ図である。
【図3】暗号部分セグメントおよびバックアップ部分セグメントを含む、部分セグメントユニットの一実施形態を示す一般化したブロック図である。
【図4】暗号セグメントおよびバックアップセグメントを含む、セグメントユニットの一実施形態を示す一般化したブロック図である。
【図5】暗号セグメントの一実施形態を示す一般化したブロック図である。
【図6】データをバックアップする方法の一実施形態を示す一般化した流れ図である。
【図7】復元データを特定して受信する方法の一実施形態を示す一般化した流れ図である。
【図8】ネットワークを介して受信した復元済みデータを復号する方法の一実施形態を示す一般化した流れ図である。
【発明を実施するための形態】
【0012】
本発明は様々な修正および代替形態を許すが、例として特定の実施形態を図示し、本明細書で詳細に説明する。ただし、図面および図面に対する詳細な説明は、本発明を開示する特定の形態に限定することは意図せず、逆に本発明は、特許請求の範囲によって定められる本発明の趣旨および範囲に含まれるあらゆる修正形態、等価物、および代替形態を範囲に含むことを理解すべきである。
【0013】
本発明を完全に理解できるようにするために、以下の説明では多数の具体的な詳細を記載する。ただし、これらの具体的な詳細なしに本発明を実施できることを当業者なら理解すべきである。場合によっては、本発明を不明瞭にすることを回避するために、よく知られている回路、構造、信号、コンピュータプログラム命令、および技法は詳しく示していない。
【0014】
低帯域幅ネットワークを介して暗号化データを効率的に転送するためのシステムおよび方法の様々な実施形態を本明細書に記載する。図1を参照して、低帯域幅ネットワークを介して暗号化データを効率的に転送する能力を含む、ネットワークアーキテクチャ100の一実施形態を示す一般化したブロック図を示す。図示のように、ネットワークアーキテクチャ100は、ローカルエリアネットワーク180を介して互いにおよびバックアップサーバ150に相互接続される、クライアントコンピューティングシステム110a〜110cを含む。ネットワーク180は、無線接続、ダイレクトローカルエリアネットワーク(LAN)接続、インターネットなどの広域ネットワーク(WAN)接続、ルータ等を含む様々な技法を含むことができる。ネットワーク180は、同じく無線とすることができる1つまたは複数のLANを含んでもよい。ネットワーク180は、リモートダイレクトメモリアクセス(RDMA)ハードウェアおよび/またはソフトウェア、伝送制御プロトコル/インターネットプロトコル(TCP/IP)ハードウェアおよび/またはソフトウェア、ルータ、中継器、スイッチ、グリッド、ならびに/または他のものをさらに含むことができる。ネットワーク180の中では、ファイバチャネル、ファイバチャネルオーバーイーサネット(FCoE)、iSCSIなどのプロトコルを使用することができる。
【0015】
クライアントコンピュータシステム110a〜110cは、デスクトップパーソナルコンピュータ(PC)、サーバ、サーバファーム、ワークステーション、ラップトップ、ハンドヘルドコンピュータ、サーバ、携帯情報端末(PDA)、スマートフォンなど、任意の数の据置き型コンピュータまたはモバイルコンピュータを表す。一般的に言えば、クライアントコンピュータシステム110a〜110cは、1個または複数個のプロセッサコアを含む1個または複数個のプロセッサを含む。各プロセッサコアは、あらかじめ定義された汎用命令セットに従って命令を実行するための回路を含む。例えば、x86命令セットアーキテクチャを選択することができる。あるいは、Alpha(登録商標)、PowerPC(登録商標)、SPARC(登録商標)、または他の任意の汎用命令セットアーキテクチャを選択することができる。プロセッサコアは、データおよびコンピュータプログラム命令を得るために、キャッシュメモリサブシステムにアクセスすることができる。そのキャッシュサブシステムは、ランダムアクセスメモリ(RAM)および記憶装置を含む記憶階層に結合することができる。
【0016】
クライアントコンピュータシステム内の各プロセッサコアおよび記憶階層は、ネットワークインターフェイスに接続することができる。ハードウェアコンポーネントに加え、クライアントコンピュータシステム110a〜110cのそれぞれは、記憶階層の中に記憶されるベースオペレーティングシステム(OS)を含むことができる。このベースOSは、例えばMS−DOS(登録商標)、MS−WINDOWS(登録商標)、OS/2(登録商標)、UNIX(登録商標)、Linux(登録商標)、Solaris(登録商標)、AIX(登録商標)、DART、それ以外のものなど、様々なオペレーティングシステムのいずれかを表すことができる。そのためベースOSは、様々なサービスをエンドユーザに提供するように、および様々なプログラムの実行をサポートするように機能するソフトウェアフレームワークを提供するように動作することができる。さらに、クライアントコンピュータシステム110a〜110cのそれぞれは、仮想マシン(VM)をサポートするために使用されるハイパーバイザを含むことができる。当業者によく知られているように、仮想化は、システムのハードウェアからOSなどのソフトウェアを完全にまたは部分的に切り離すために、デスクトップおよびサーバにおいて使用することができる。
【0017】
バックアップサーバ150は、スイッチ130を介して第2のネットワーク190に結合することができる。ネットワーク190は、インターネットや他の外部ネットワークとすることができる。あるいはネットワーク180は、1つまたは複数のスイッチを介してネットワーク190に結合することができる。スイッチ130は、ネットワーク180およびネットワーク190の両方に関連するプロトコルを利用することができる。ネットワーク180とバックアップサーバ150とは、伝送制御プロトコル(TCP)およびインターネットプロトコル(IP)、すなわちTCP/IPなど、インターネットに使用される1組の通信プロトコルを使ってインターフェイスすることができる。スイッチ130は、TCP/IPスイッチとすることができる。
【0018】
記憶装置160a〜160bは、ネットワークアーキテクチャ100内のデータのコピーを記憶するために使用することができる。記憶装置160a〜160bは、1つまたは複数のハードディスク、テープドライブ、サーバブレード、固体ディスク(SSD)、または専用装置からなる数種類の記憶域を含み、またはそれらの記憶域にさらに結合することができ、RAM、Flash RAM、MEMS(微小電子機械システム)記憶域、バッテリバックアップ付きRAM、および/または不揮発性RAM(NVRAM)など、様々なメモリ素子を含むことができる。記憶装置162a〜162bは、装置160a〜160b上に記憶されるデータのコピーを記憶するために使用することができる。記憶装置162a〜162bは、記憶装置160a〜160bに関して列挙したメモリ素子のうちの1つまたは複数を含むことができる。
【0019】
一実施形態では、ネットワークアーキテクチャ100内の遠隔共用記憶サーバ120a〜120bが、データを保護するためにクライアントコンピューティングシステム110a〜110c上のファイルのコピーを作成することができる。さらに、クライアントコンピューティングシステム110a〜110cおよび/またはバックアップサーバ150上のバックアップエージェントは、データオブジェクトがアーカイブされる要件を満たすときを判定することができる。クラウドサービス140内のサーバ120a〜120bは、インターネット網190を介してアクセスされるオフサイトサーバとすることができる。遠隔共用記憶サーバ120a〜120bは、クライアントコンピューティングシステム110a〜110cにソフトウェアおよびデータをオンデマンドで提供することができる。クライアントコンピューティングシステム110a〜110cのユーザは、クラウドサービス140内の技術インフラについての知識、またはそうした技術インフラに対する制御を有さなくてもよい。これをクラウドコンピューティングと呼ぶことができる。一実施形態では、クラウドコンピューティングは、インターネットベースのコンピューティングである。単純な例には、Hotmail、Yahoo!メール、またはGmailのようなウェブベースの電子メールサービスを伴う電子メールアカウントが含まれる。それらの電子メールアカウント用のソフトウェアおよび記憶域は、クライアントコンピューティングシステム110a〜110c上に存在するのではなく、クライアントサービス140内に存在する。オンサイトデータセンタなどの物理的インフラを所有しないことにより、クラウドコンピューティングの顧客は、サードパーティープロバイダから使用権(usage)を賃借することにより設備投資を避ける。
【0020】
ウェブサービスとは、典型的にはハイパテキスト転送プロトコル(HTTP)によってアクセスされ、要求されたサービスをホストするサーバ120a〜120bおよびバックアップサーバ150などの遠隔システム上で実行される、アプリケーションプログラミングインターフェイス(API)またはウェブAPIである。ウェブサービスは、ネットワークを介した、相互に情報交換可能なマシン間の対話をサポートする。ウェブサービスは、ウェブサービス記述言語(WSDL)などのマシン処理形式で記述されたインターフェイスを有する。クラウドアーキテクチャは、典型的にはウェブサービスなどのアプリケーションプログラミングインターフェイスを介して互いに通信する複数のクラウドコンポーネントを含む。
【0021】
次にバックアップサーバ150に戻り、バックアップサーバ150は、バックアップアプリケーション158を含むことができる。このバックアップアプリケーション158、すなわち「バックアップマネージャ」は、メモリ170上に記憶され、1つまたは複数のバックアップ操作を実行するためにプロセッサ174によって実行可能なプログラム命令を含むことができる。バックアップ操作には、例えばコンピュータシステム上に、またはあるコンピュータシステムから別のコンピュータシステムに部分バックアップもしくは完全バックアップを作成すること、コンピュータシステム上で、またはあるコンピュータシステムから別のコンピュータシステムに対して復元機能(例えば部分復元もしくは個別復元機能または完全復元機能)を実行することが含まれてもよく、バックアップ操作には他の操作も含まれ得る。データイメージに関し、ライフサイクル内のバックアップ操作および複製操作のためのポリシを決定することができる。例えばポリシは、階層化記憶域の中の層の数、記憶媒体の種類および数、所与の記憶媒体上にイメージを記憶する持続時間、特定の操作をブロックする1日の時間帯等を決定することを含むことができる。
【0022】
バックアップシステムエージェントは、バックアップサーバ150上のバックアップマネージャ158を援助することができる。バックアップマネージャ158は、ボリュームイメージバックアップを作成するように構成することができる。一部の実施形態では、バックアップマネージャ158は、特定のシステムのボリュームイメージバックアップを作成するようにバックアップマネージャ158に指図するユーザ入力を受け取ることができる。一部の実施形態では、バックアップマネージャ158は、特定のシステムのボリュームイメージバックアップを自動で作成することができ、例えばバックアップマネージャを、特定のシステムの定期バックアップを実行するようにスケジュールすることができる。バックアップを作成する一環として、バックアップマネージャ158は、バックアップデータに関連するカタログメタデータ156も作成することができる。
【0023】
バックアップ操作中にバックアップマネージャ158が作成するカタログメタデータ156は、データ名、データサイズ、データのフィンガープリント、バッチ番号、ならびにデータの種類、バージョン番号、所有権、許可、最終更新日時、バックアップセグメント識別子およびバックアップ部分セグメント識別子、暗号セグメント識別子および暗号部分セグメント識別子、誤りコード等のうちの少なくとも1つまたは複数を含むことができる。バッチ番号は、関連するバックアップエントリが作成された特定のバックアップ操作を明らかにするために使用することができる。他の形式のメタデータおよび/または識別子が当業者には明らかになるであろう。カタログメタデータ156は、例えば後の時点でブラウジングを復元するために使用可能であり得る。例えば、バックアップ記憶装置160a〜160bおよびアーカイブ記憶域162a〜162b内に記憶された情報のデータ形式をカタログ156内に記憶することができる。
【0024】
一実施形態では、バックアップサーバ150は、データの記憶、編成、操作、および取得のための専用データベースとして動作するファイルシステム154を含む。ファイルシステム154は、ネットワークプロトコルに関するクライアントとして動作することにより、データへのアクセスを提供することができる。あるいは、ファイルシステム154は仮想であり、仮想データに対する単なるアクセス方法として存在することができる。
【0025】
代替的実施形態では、クライアントコンピュータおよびサーバ、スイッチ、ネットワーク、ならびに共用記憶域の数および種類は、図1に示す数および種類に限定されないことを指摘しておく。様々な時点において、1台または複数台のクライアントがオフラインで動作することができる。さらに、ユーザがネットワークアーキテクチャ100に接続し、ネットワークアーキテクチャ100への接続を断ち、ネットワークアーキテクチャ100に再接続するとき、動作中に個々のクライアントコンピュータの接続タイプが変わり得る。
【0026】
次に図2に移ると、効率的なバックアップ操作のための方法200の一実施形態を示す一般化した流れ図が示されている。ネットワークアーキテクチャ100内に具体化したコンポーネントは、方法200に従って概して動作することができる。解説の目的上、方法200のこの実施形態内の各ステップを順番に記載することを指摘しておく。ただし、一部のステップは図示の順序とは異なる順序で行ってもよく、一部のステップは同時に実行してもよく、一部のステップは他のステップと組み合わせてもよく、一部のステップは別の実施形態ではなくてもよい。
【0027】
ブロック202で、クライアントコンピューティングシステム110a〜110c上のデータに関し、バックアップ操作および複製操作のためのポリシを決定する。先に述べたように、ポリシは、階層化記憶域の中の層の数、記憶媒体の種類および数、所与の記憶媒体上にイメージを記憶する持続時間、特定の操作をブロックする1日の時間帯、スケジュールに従ってバックアップ操作および複製操作を実行する1日の時間帯等を決定することを含むことができる。
【0028】
ブロック204で、バックアップセグメントおよびバックアップ部分セグメントのサイズを選択する。これらのサイズは、バックアップサーバ150とクラウドサービス140との間で転送されるデータの量を決定することができる。クラウドサービス140に非常に大きいバックアップセグメントを書き込めることは、メタデータのオーバーヘッドサポートを減らすことができる。一実施形態では、バックアップセグメントのサイズは、1KBから256KBに及ぶことができる。バックアップ部分セグメントのサイズは、復元要求に対応する、予期されるデータサイズに基づいて選択することができる。クライアントコンピューティングシステム110a〜110cのうちの1つが、バックアップサーバ150に復元要求を送信することができる。バックアップサーバ150は、要求されたデータに関し、対応する要求をクラウドサービス140に送信する。要求されたデータが、クラウドサービス140からバックアップサーバに伝えられる。一実施形態では、バックアップ部分セグメントのサイズが、バックアップセグメントのサイズと同じサイズであり得る。ただし、復元要求に対応するデータサイズは、バックアップされまたはアーカイブされたデータの量よりも典型的には小さいものであり得る。別の実施形態では、バックアップセグメントのサイズが256KBのとき、バックアップ部分セグメントのサイズは1KBから128KBに及ぶことができる。
【0029】
バックアップサーバ150とクラウドサービス140との間で転送されるデータを保護するために、暗号を使用することができる。暗号は、データが見られまたは修正されるのを防ぎ、さもなければ安全でないチャネル上で安全な通信を行うために使用することができる。例えば暗号は、ユーザの身元を保護し、データが変更されるのを防ぎ、特定の当事者からのデータが本物であることを保証することができる。データは、選択された暗号アルゴリズムを使用して暗号化することができる。データは、暗号化された状態で伝送し、目的とする受信機が後で復号することができる。暗号化データを第三者が傍受する場合、解読するのは困難であり得る。
【0030】
暗号は、対称暗号化または非対称暗号化を使用することができる。対称暗号化では、特定の方法でコンテンツを変えるために、数、語、または一連の無作為文字とすることができる秘密鍵をメッセージの本文に適用する。非対称暗号化では、データを保護するために鍵の対を使用する。データを送信するために、公開鍵を自由に利用できるようにすることができる。公開鍵を使って暗号化されたテキスト、バイナリファイル、文書などのメッセージは、対をなす秘密鍵を使うことを除き、選択された同じ暗号アルゴリズムを適用することによって復号することができる。同様に、秘密鍵を使って暗号化されるメッセージは、同じアルゴリズムおよび公開鍵を使用することで復号することができる。
【0031】
保持する暗号メタデータの量を最小限にするために、暗号化する間、データをパディングしなくてもよい。データのサイズおよび結果として生じる暗号セグメントのサイズは、パディングによって増えることはない。さらに、暗号アルゴリズムを選択するとき、選択基準には、暗号部分セグメントのサイズを有する保護された所与の部分セグメントを、同じ暗号部分セグメントのサイズを有する直前の暗号化部分セグメントを利用することによって復号することを可能にする特性が含まれ得る。例えば、所与の128KBの暗号セグメントは、32バイトの暗号部分セグメントを4,096個含むことができる。7のオフセットインデックスを有する所与の32バイトの暗号部分セグメントは、6の先行するオフセットインデックスを有する、前の第2の32バイトの暗号部分セグメントを利用することにより復号することができる。それ自体が暗号化されているこの先行する32バイトの暗号部分セグメントは、所与の32バイトの暗号部分セグメントを復号するための鍵として使用することができる。したがって、7のインデックスを有する所与の32バイトの暗号部分セグメントを復号するために、全128KBの暗号セグメントを使用することはない。一実施形態では、AES−256−CFBという名前の暗号アルゴリズムを選択することができる。このアルゴリズムは、高度暗号化標準(AES)の対称鍵暗号化標準、256KBの暗号セグメントサイズ、および暗号化フィードバックモード機能を使用する。
【0032】
方法200に戻り、ブロック206で、暗号セグメントおよび暗号部分セグメントのサイズを、それらのサイズの値がバックアップセグメントおよびバックアップ部分セグメントのサイズと合致するように決定する。例えば、32バイトの暗号部分セグメントのサイズを選択することができる。さらに、256KBの暗号セグメントのサイズを選択することができる。これらのサイズは、バイト境界上で互いに整列する。さらに、256KBと1KBのバックアップセグメントおよびバックアップ部分セグメントのサイズに関し、暗号のサイズはやはり合致する。加えて、セグメントのそれぞれの始まりが、他のセグメントに整列する。暗号セグメントの始まりは、バックアップセグメントの始まりと整列する。別の実施形態では、暗号のサイズとバックアップのサイズとが合致しないことがある。そのような場合、対応するデータにアクセスするために、データを暗号化し、復号し、クラウドサービス140との間で転送するときにさらなる計算を行うことができる。このさらなる計算は、それぞれの操作中に各種のセグメントおよび部分セグメントをいくつ使用するのかを求めることができる。ブロック208で、暗号部分セグメントのレベルで復号する特性を有する暗号アルゴリズムを選択することができる。そのような暗号アルゴリズムの一例は、上述したAES−256−CFBである。
【0033】
次に図3を参照すると、暗号部分セグメント302およびバックアップ部分セグメント306を含む、部分セグメントユニット300の一実施形態を示す一般化したブロック図が示されている。図示のように、暗号部分セグメント302はあるサイズ304を有する。一実施形態では、部分セグメントのサイズ304は32バイトである。一実施形態では、バックアップ部分セグメント306は、暗号部分セグメント302a〜302dの整数倍からなる。したがって、バックアップ部分セグメントのサイズ308は、サイズ304の整数倍である。一実施形態では、バックアップ部分セグメントのサイズ308は1KBである。図示の例では、暗号部分セグメント302とバックアップ部分セグメント306とが、バイト境界合わせ(byte aligned)されている。この場合もやはり、別の実施形態ではバックアップ部分セグメントのサイズ308が、サイズ304の整数倍にならないことがある。そのような場合、それぞれの操作中に使用するバックアップ部分セグメント306の数および暗号部分セグメント302の数を求めるために、データを暗号化し、復号し、クラウドサービス140との間で転送するときにさらなる計算を行うことができる。
【0034】
次に図4を参照すると、暗号セグメント402およびバックアップセグメント406を含む、セグメントユニット400の一実施形態を示す一般化したブロック図が示されている。図示のように、暗号セグメント402はあるサイズ404を有する。一実施形態では、暗号セグメントのサイズ404は128KBである。一実施形態では、暗号セグメント406が、1つまたは複数のバックアップ部分セグメント306a〜306dを含む。先に示したように、各バックアップ部分セグメントは、1つまたは複数の暗号部分セグメント302a〜302dを含むことができる。したがって、各暗号セグメント406は、1つまたは複数の暗号部分セグメント302を含む。したがって、暗号セグメント406と、バックアップ部分セグメント306と、暗号部分セグメントとがバイト境界合わせされ得る。暗号セグメントのサイズは、暗号化に使用される最小単位のサイズとすることができる。暗号部分セグメントのサイズは、復号に使用される最小単位のサイズとすることができる。
【0035】
一実施形態では、バックアップセグメント406が、1つまたは複数の暗号セグメント402a〜402dを含む。したがって、バックアップセグメントのサイズは、サイズ404の整数倍である。一実施形態では、バックアップセグメントのサイズは256KBである。そのような場合、バックアップセグメントのサイズは、128KBの暗号セグメントのサイズ404の量の2倍である。一部の実施形態では、バックアップセグメントのサイズと暗号セグメントのサイズとが等しい。例えば、これらのセグメントサイズのそれぞれは256KBであり得る。図示の例では、バックアップセグメント406と暗号セグメント402とが、バイト境界合わせされている。さらに、バックアップ部分セグメント306と暗号部分セグメント302とが、互いに、ならびにセグメント402および406のそれぞれとバイト境界合わせされている。この場合もやはり、別の実施形態ではバックアップセグメントのサイズが、暗号セグメントのサイズ404の整数倍にならないことがある。さらに、部分セグメントのサイズは、互いにまたはセグメントのサイズとバイト境界合わせされないことがある。そのような場合、それぞれの操作中に使用するセグメントおよび部分セグメントの数を求めるために、データを暗号化し、復号し、クラウドサービス140との間で転送するときにさらなる計算を行うことができる。
【0036】
次に図5を参照すると、暗号セグメント402の一実施形態を示す一般化したブロック図が示されている。暗号セグメント402は、バックアップ部分セグメント306および暗号部分セグメント302とバイト境界合わせされ得る。暗号セグメント402内に保持されるデータを暗号化するために、初期設定ベクトル502を使用することができる。各暗号セグメント402は、独自のベクトル502を有することができる。初期設定ベクトル502は、選択される暗号アルゴリズムにもよるが、公開鍵または秘密鍵であり得る。このベクトル502は、暗号部分セグメント302aを暗号化するために使用することができる。その後、暗号化したその部分セグメント302aを使用して、部分セグメント302bを暗号化することができる。次いで、暗号化したその部分セグメント302bを使用して、部分セグメント302cを暗号化することができ、その後も同様である。そのような場合、暗号化された部分セグメント302cは、同じアルゴリズムを使い暗号化された部分セグメント302bを使用して復号することができる。同様に、暗号化された部分セグメント302bは、暗号化された部分セグメント302aを使用することで復号することができる。暗号化された部分セグメント302aは、初期設定ベクトル502を使用することで復号される。
【0037】
次に図6に移ると、データをバックアップする方法600の一実施形態を示す一般化した流れ図が示されている。ネットワークアーキテクチャ100内に具体化したコンポーネントは、方法600に従って概して動作することができる。解説の目的上、方法600のこの実施形態内の各ステップを順番に記載することを指摘しておく。ただし、一部のステップは図示の順序とは異なる順序で行ってもよく、一部のステップは同時に実行してもよく、一部のステップは他のステップと組み合わせてもよく、一部のステップは別の実施形態ではなくてもよい。
【0038】
ブロック602で、クライアントコンピューティングシステム110a〜110cのうちの1つに記憶された1つまたは複数のデータオブジェクトが、バックアップされる要件を満たすと判定される。この判定を行うために、バックアップポリシ、ユーザ入力、または他の手段を使用することができる。ブロック604において、一実施形態では、要件を満たしたそのデータオブジェクトに対応するメタデータおよびコンテンツデータをバックアップサーバ150に送信する。別の実施形態では、クライアントコンピューティングシステム110a〜110cのうちの1つまたは複数が、クラウドサービス140と直接インターフェイスするためのプラグインなどのソフトウェアを含む。
【0039】
ブロック606で、要件を満たしたデータオブジェクトに対応する受信済みメタデータを使い、バックアップ情報のカタログを更新する。ブロック608で、バックアップサーバ150が、選択された暗号アルゴリズムを使用して受信コンテンツデータを暗号化する。一実施形態では、暗号セグメントのサイズが、バックアップ−書込みおよび暗号または復号の部分セグメントのサイズとバイト境界合わせされる。ブロック610で、暗号化したデータを、クラウドサービス140内の遠隔共用記憶サーバ120a〜120bのうちの1つなどの遠隔データ記憶域に送る。
【0040】
次に図7に移ると、復元データを特定して受信する方法700の一実施形態を示す一般化した流れ図が示されている。ブロック702で、バックアップサーバ150が、クライアントコンピューティングシステム110a〜110cのうちの1つから復元要求を受信することができる。この復元要求は、要求側のクライアントコンピューティングシステム110a〜110cのうちの1つに以前記憶されていた被選択データを特定することができる。ブロック704で、バックアップサーバ150はカタログを調べ、被選択データが所与のバックアップセグメントおよびバックアップ部分セグメント内に一意識別子とともに記憶されていると判定することができる。ブロック706で、バックアップサーバ150は、被選択データを含む最後のバックアップセグメント、要求されたデータの末尾を記憶する最後のバックアップ部分セグメントについて特定することができる。
【0041】
ブロック708で、バックアップサーバ150は、最後のバックアップセグメントより前の任意の被選択バックアップセグメントを求める要求を、クラウドサービス140内の遠隔データ記憶域に送信することができる。ブロック710で、バックアップサーバ150は、最後のバックアップセグメント内の最後のバックアップ部分セグメントおよび先行する部分セグメントを、同一要求内でまたは別の要求内で、クラウドサービス140内の遠隔データ記憶域に要求することができる。ここでバックアップサーバ150は、要求された復元データを得るために、最後のバックアップセグメント全体を要求しなくてもよい。例えば、要求された復元データが最後のバックアップセグメント内にバックアップ部分セグメント0から4を含む場合、バックアップサーバ150は、そのバックアップセグメント全体ではなく、それらの5つのバックアップ部分セグメントを要求することができる。セグメントのサイズおよび部分セグメントのサイズのそれぞれが256KBおよび1KBであれば、バックアップサーバ150は、インターネットを介して伝送するように、256KBではなく5KBをクラウドサービス140に要求することになる。ブロック712で、バックアップサーバ150が、クラウドサービス140内の遠隔データ記憶域から、要求されたバックアップセグメントおよびバックアップ部分セグメントを受信する。
【0042】
次に図8に移ると、ネットワークを介して受信した復元済みデータを復号する方法800の一実施形態を示す一般化した流れ図が示されている。方法200および600〜700と同様に、ネットワークアーキテクチャ100内に具体化したコンポーネントは、方法800に従って概して動作することができ、さらに方法800のこの実施形態内の各ステップを順番に記載する。ただし、一部のステップは図示の順序とは異なる順序で行ってもよく、一部のステップは同時に実行してもよく、一部のステップは他のステップと組み合わせてもよく、一部のステップは別の実施形態ではなくてもよい。
【0043】
ブロック802で、バックアップサーバ150が、クラウドサービス140内の遠隔データ記憶域からの最後のバックアップセグメントに先行する、任意の受信済みバックアップセグメントを復号することができる。バックアップセグメントごとに、その復号では、暗号化中に使用されたのと同じ暗号アルゴリズムおよび同じ各々の初期設定ベクトル502を利用することができる。ブロック804で、バックアップサーバ150は、要求され、受信されるデータの末尾を記憶している最後のバックアップ部分セグメントを特定することができる。ブロック806で、バックアップサーバ150は、復元するために要求されるデータに対応する、この最後のバックアップ部分セグメント内の最初のおよび最後の暗号部分セグメントを選択することができる。
【0044】
選択された最初の暗号部分セグメントが、最後のバックアップ部分セグメントの始まりに整列する場合(条件ブロック808)、ブロック810で、バックアップサーバ150は対応する初期設定ベクトル502を選択することができる。例えば、ステップ806で選択される最初の暗号部分セグメントは、図5に示す部分セグメント302aであり得る。ブロック812で、バックアップサーバ150は、選択されたベクトル502をまず使用して、選択された最初の部分セグメントから選択された最後の部分セグメントまでの各部分セグメントを復号することができる。
【0045】
選択された最初の暗号部分セグメントが、最後のバックアップ部分セグメントの始まりに整列しない場合(条件ブロック808)、ブロック814で、バックアップサーバは、最後のバックアップ部分セグメント内の、最初に選択された暗号部分セグメントに先行する暗号部分セグメントを選択することができる。例えば、ステップ806で選択される最初の暗号部分セグメントは、図5に示す部分セグメント302cであり得る。したがって、バックアップサーバ150は、部分セグメント302cを復号するために暗号部分セグメント302bを選択し、その後、部分セグメント302b内の余分なバイトを破棄することができる。ブロック816で、バックアップサーバは、先行する暗号部分セグメントをまず使用して、選択された最初の部分セグメントから選択された最後の部分セグメントまでの各暗号部分セグメントを復号することができる。
【0046】
上記に記載した実施形態はソフトウェアを含み得ることを指摘しておく。そのような実施形態では、記載したシステムおよび/または方法を表すプログラム命令および/またはデータベース(いずれも「命令」と呼ぶことができる)をコンピュータ可読媒体上に伝え、または記憶することができる。一般的に言えば、コンピュータがアクセス可能な記憶媒体には、使用中のコンピュータによってアクセス可能な、コンピュータに命令および/またはデータを提供するための任意の記憶媒体が含まれ得る。例えば、コンピュータがアクセス可能な記憶媒体には、磁気媒体や光媒体などの記憶媒体、例えば(固定型または可換型)ディスク、テープ、CD−ROMやDVD−ROM、CD−R、CD−RW、DVD−R、DVD−RW、ブルーレイが含まれ得る。記憶媒体には、RAM(例えば同期型ダイナミックRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3等)式SDRAM、低電力DDR(LPDDR2等)、SDRAM、ラムバスDRAM(RDRAM)、スタティックRAM(SRAM)等)、ROM、フラッシュメモリ、ユニバーサルシリアルバス(USB)インターフェイスなどの周辺インターフェイスを介してアクセス可能な不揮発性メモリ(例えばフラッシュメモリ)などの、揮発性記憶媒体または不揮発性記憶媒体がさらに含まれ得る。記憶媒体には、微小電子機械システム(MEMS)、ならびにネットワークおよび/または無線リンクなどの通信媒体を介してアクセス可能な記憶媒体が含まれてもよい。
【0047】
様々な実施形態において、本明細書に記載した方法およびメカニズムの1つまたは複数の部分が、クラウドコンピューティング環境の一部を形成することができる。そのような実施形態では、1つまたは複数の様々なモデルに従い、リソースをサービスとしてインターネットを介して提供することができる。そうしたモデルには、サービスとしてのインフラストラクチャ(IaaS)、サービスとしてのプラットフォーム(PaaS)、およびサービスとしてのソフトウェア(SaaS)が含まれ得る。IaaSでは、サービスとしてコンピュータインフラストラクチャが送られる。そのような場合、コンピューティング機器は概してサービスプロバイダが所有し、操作する。PaaSモデルでは、ソフトウェアソリューションを開発するために開発者が使用するソフトウェアツールおよび基礎をなす機器がサービスとして提供され、サービスプロバイダによってホストされ得る。SaaSは、典型的にはサービスプロバイダがサービスとしてソフトウェアをオンデマンドでライセンス供与することを含む。サービスプロバイダは、ソフトウェアをホストすることができ、またはソフトウェアを所与の期間にわたり顧客に展開することができる。上記のモデルの多数の組合せが可能であり、考えられる。
【0048】
上記の実施形態をかなり詳細に説明してきたが、上記の開示を完全に理解すれば、数多くの改変形態および修正形態が当業者に明らかになるであろう。特許請求の範囲は、そのようなすべての改変形態および修正形態を包含するように解釈されることを目的とする。
【符号の説明】
【0049】
100 ネットワークアーキテクチャ
110a〜c クライアントコンピューティングシステム
120a〜b 遠隔共用記憶サーバ
130 スイッチ
140 クラウドサービス
150 バックアップサーバ
154 ファイルシステム
156 カタログメタデータ
158 バックアップマネージャ
160a〜b 記憶装置
162a〜b 記憶装置
170 メモリ
174 プロセッサ
180 ネットワーク
190 ネットワーク
200 方法
300 部分セグメントユニット
302、302a〜d 暗号部分セグメント
304 サイズ
306、306a〜d バックアップ部分セグメント
308 サイズ
400 セグメントユニット
402、402a〜d 暗号セグメント
404 サイズ
406 バックアップセグメント
502 初期設定ベクトル
600 方法
700 方法
800 方法

【特許請求の範囲】
【請求項1】
コンピュータによって実施される方法であって、
バックアップサーバ上で、暗号化セグメントのサイズを有するユニットとしてデータを暗号化するステップと、
第1のデータについてのクライアントコンピュータからのバックアップ要求に応答して、
前記暗号化セグメントのサイズをそれぞれ有する1つまたは複数の暗号化セグメントとして、前記第1のデータを暗号化するステップと、
記憶媒体上に記憶するために、前記1つまたは複数の暗号化セグメントを伝えるステップと、
所与の暗号化セグメントに対応する第2のデータであって、前記暗号化されたサイズよりも小さいサイズを有する、第2のデータについての前記クライアントコンピュータからの復元要求に応答して、
前記第2のデータを含む特定のデータであって、暗号化セグメントに含まれるよりも少ないデータを含む、特定のデータを前記記憶媒体から受信するステップと、
前記特定のデータの少なくとも一部分を利用して、前記受信した第2のデータを復号するステップと
を含む、方法。
【請求項2】
前記暗号化セグメントのそれぞれが複数の暗号化部分セグメントを含み、前記受信した第2のデータ内の最初の暗号化部分セグメントが前記所与の暗号化セグメントの始まりにないことを検出することに応答し、直前の暗号化部分セグメントを利用して、前記最初の暗号化部分セグメントを復号するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記受信した第2のデータ内の前記最初の暗号化部分セグメントが前記所与の暗号化セグメントの始まりにあることを検出することに応答し、前記最初の暗号化部分セグメントを暗号化するために使用された初期設定ベクトルを利用して、前記最初の暗号化部分セグメントを復号するステップをさらに含む、請求項2に記載の方法。
【請求項4】
暗号化に使用されるアルゴリズムが、直前の暗号化部分セグメントを鍵として利用することにより所与の暗号化部分セグメントを復号することを可能にする特性を有する、請求項2に記載の方法。
【請求項5】
前記特定のデータの始まりが、前記所与の暗号化セグメントの始まりに整列される、請求項4に記載の方法。
【請求項6】
前記アルゴリズムが、暗号化中にデータをパディングしない特性を有する、請求項5に記載の方法。
【請求項7】
前記バックアップサーバと前記記憶媒体とが、インターネットを介して結合される、請求項4に記載の方法。
【請求項8】
前記記憶媒体が、前記クライアントコンピュータおよび前記バックアップサーバに対してオフサイトである、請求項7に記載の方法。
【請求項9】
暗号化セグメントのサイズを有するユニットとしてデータを暗号化するように構成されるバックアップサーバと、
ネットワークを介して前記バックアップサーバに結合されるクライアントコンピュータと、
前記バックアップサーバに結合される記憶媒体と
を含むコンピューティングシステムであって、
第1のデータについての前記クライアントコンピュータからのバックアップ要求に応答して、前記バックアップサーバが、
前記暗号化セグメントのサイズをそれぞれ有する1つまたは複数の暗号化セグメントとして、前記第1のデータを暗号化し、
前記記憶媒体上に記憶するために、前記1つまたは複数の暗号化セグメントを伝えるように構成され、
所与の暗号化セグメントに対応する第2のデータであって、前記暗号化されたサイズよりも小さいサイズを有する、第2のデータについての前記クライアントコンピュータからの復元要求に応答して、前記バックアップサーバが、
前記第2のデータを含む特定のデータであって、暗号化セグメントに含まれるよりも少ないデータを含む、特定のデータを前記記憶媒体から受信し、
前記特定のデータの少なくとも一部分を利用して、前記受信した第2のデータを復号するように構成される、コンピューティングシステム。
【請求項10】
前記暗号化セグメントのそれぞれが複数の暗号化部分セグメントを含み、前記受信した第2のデータ内の最初の暗号化部分セグメントが前記所与の暗号化セグメントの始まりにないことを検出することに応答し、前記バックアップサーバが、直前の暗号化部分セグメントを利用して、前記最初の暗号化部分セグメントを復号するようにさらに構成される、請求項9に記載のコンピューティングシステム。
【請求項11】
前記受信した第2のデータ内の前記最初の暗号化部分セグメントが前記所与の暗号化セグメントの始まりにあることを検出することに応答し、前記バックアップサーバが、前記最初の暗号化部分セグメントを暗号化するために使用された初期設定ベクトルを利用して、前記最初の暗号化部分セグメントを復号するようにさらに構成される、請求項10に記載のコンピューティングシステム。
【請求項12】
暗号化に使用されるアルゴリズムが、直前の暗号化部分セグメントを鍵として利用することにより所与の暗号化部分セグメントを復号することを可能にする特性を有する、請求項10に記載のコンピューティングシステム。
【請求項13】
前記特定のデータの始まりが、前記所与の暗号化セグメントの始まりに整列される、請求項12に記載のコンピューティングシステム。
【請求項14】
前記アルゴリズムが、暗号化中にデータをパディングしない特性を有する、請求項13に記載のコンピューティングシステム。
【請求項15】
前記バックアップサーバと前記記憶媒体とが、インターネットを介して結合される、請求項12に記載のコンピューティングシステム。
【請求項16】
前記記憶媒体が、前記クライアントコンピュータおよび前記バックアップサーバに対してオフサイトである、請求項15に記載のコンピューティングシステム。
【請求項17】
プログラム命令を記憶するコンピュータ可読記憶媒体であって、前記プログラム命令は、
バックアップサーバ上で、暗号化セグメントのサイズを有するユニットとしてデータを暗号化し、
第1のデータについてのクライアントコンピュータからのバックアップ要求に応答して、
前記暗号化セグメントのサイズをそれぞれ有する1つまたは複数の暗号化セグメントとして、前記第1のデータを暗号化し、
記憶媒体上に記憶するために、前記1つまたは複数の暗号化セグメントを伝え、
所与の暗号化セグメントに対応する第2のデータであって、前記暗号化されたサイズよりも小さいサイズを有する、第2のデータについての前記クライアントコンピュータからの復元要求に応答して、
前記第2のデータを含む特定のデータであって、暗号化セグメントに含まれるよりも少ないデータを含む、特定のデータを前記記憶媒体から受信し、
前記特定のデータの少なくとも一部分を利用して、前記受信した第2のデータを復号する
ように実行可能である、コンピュータ可読記憶媒体。
【請求項18】
前記暗号化セグメントのそれぞれが複数の暗号化部分セグメントを含み、前記受信した第2のデータ内の最初の暗号化部分セグメントが前記所与の暗号化セグメントの始まりにないことを検出することに応答し、前記プログラム命令が、直前の暗号化部分セグメントを利用して、前記最初の暗号化部分セグメントを復号するようにさらに実行可能である、請求項17に記載のコンピュータ可読記憶媒体。
【請求項19】
暗号化に使用されるアルゴリズムが、直前の暗号化部分セグメントを鍵として利用することにより所与の暗号化部分セグメントを復号することを可能にする特性を有する、請求項17に記載のコンピュータ可読記憶媒体。
【請求項20】
前記特定のデータの始まりが、前記所与の暗号化セグメントの始まりに整列される、請求項19に記載のコンピュータ可読記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−155323(P2012−155323A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2012−7553(P2012−7553)
【出願日】平成24年1月17日(2012.1.17)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(501113353)シマンテック コーポレーション (78)
【氏名又は名称原語表記】Symantec Corporation
【Fターム(参考)】