(58)【調査した分野】(Int.Cl.,DB名)
安全な第三者データ記憶のためのコンピュータ実装方法であって、該方法の少なくとも一部分が少なくとも1つのプロセッサを備えるサーバ側コンピューティングデバイスによって実施され、前記方法が、
クライアント側キーが前記サーバ側コンピューティングデバイスにて利用不能である間に、前記サーバ側コンピューティングデバイスで、ユーザアカウントの下に暗号化されていないファイルを記憶するクライアントシステムからの第1の要求を受信することと、
前記第1の要求に応答して、前記クライアント側キーが前記サーバ側コンピューティングデバイスにて利用不能である間に、前記サーバ側コンピューティングデバイスで、前記ユーザアカウントに指定された非対称キーペアであって、暗号化キーと、前記クライアント側キーで暗号化されている復号キーとを含む、非対称キーペアを識別することと、
クライアント側キーが前記サーバ側コンピューティングデバイスにて利用不能である間に、前記サーバ側コンピューティングデバイスで、前記暗号化キーを用いて前記暗号化されていないファイルを暗号化することによって前記暗号化されていないファイルから暗号化ファイルを生成することと、
前記サーバ側コンピューティングデバイスで、前記ユーザアカウントの下に前記暗号化ファイルを記憶することと、
前記サーバ側コンピューティングデバイスで、前記ユーザアカウントの下に記憶された前記暗号化ファイルにアクセスする前記クライアントシステムからの第2の要求を識別することであって、前記要求されたアクセスが前記暗号化ファイルの復号を必要とする、要求を識別することと、
前記第2の要求に応答して、前記ユーザアカウントに指定された前記非対称キーペアを識別することと、
前記クライアントシステムから、前記クライアント側キーを受信することと、
前記サーバ側コンピューティングデバイスで、前記復号キーを前記クライアント側キーで復号することと、
前記サーバ側コンピューティングデバイスで、前記復号キーを使用して、前記暗号化ファイルの暗号化されていないバージョンにアクセスすることと、
前記暗号化ファイルの前記暗号化されていないバージョンにアクセスするように指定された追加のユーザアカウントを識別することであって、追加の非対称キーペアが、前記追加のユーザアカウントに指定され、前記追加の非対称キーペアが、追加の暗号化キーと、追加のクライアント側キーで暗号化されている追加の復号キーとを含む、追加のユーザアカウントを識別することと、
前記復号キーを前記追加の暗号化キーで暗号化することと、
前記追加のユーザアカウントを介して前記暗号化ファイルに更にアクセスする追加のクライアントシステムからの追加の要求を識別することであって、前記追加の要求されたアクセスが、前記暗号化ファイルの復号を必要とする、追加の要求を識別することと、
前記復号キーを前記追加の復号キーで復号することと、
前記復号キーを使用して、前記追加のユーザアカウントを介して前記暗号化ファイルの前記暗号化されていないバージョンにアクセスすることと、を含む、コンピュータ実装方法。
前記暗号化ファイルにアクセスすることが、前記暗号化ファイルの前記暗号化されていないバージョンを前記クライアントシステムに送信することを含む、請求項1に記載のコンピュータ実装方法。
前記復号キーを使用して、前記暗号化ファイルの前記暗号化されていないバージョンにアクセスすることが、前記暗号化ファイルの前記暗号化されていないバージョンを記述するメタデータを生成することを含み、前記メタデータを生成することは前記暗号化ファイルの前記暗号化されていないバージョン内のコンテンツに基づいて前記暗号化ファイルの前記暗号化されていないバージョンのプレビューを生成することを含む、請求項1に記載のコンピュータ実装方法。
前記クライアント側キーを受信することが、前記クライアント側キーを不揮発性メモリ内に記憶することなく前記クライアント側キーを揮発性メモリ内に記憶することを含む、請求項1に記載のコンピュータ実装方法。
【発明を実施するための形態】
【0018】
図1〜2及び4〜7を参照することにより、以下に安全な第三者データ記憶のための例示的なシステムの詳細な説明が提供される。対応するコンピュータ実装方法の詳細な説明はまた、
図3と併せて提供される。更に、本明細書に記載の実施形態のうちの1つ以上を実装することが可能な例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明は、それぞれに、
図8及び9と併せて提供される。
【0019】
図1は、安全な第三者データ記憶のための例示的なシステム100のブロック図である。この図に例解されるように、例示的なシステム100は、1つ以上のタスクを実施するための1つ以上のモジュール102を含み得る。例えば、下記により詳細に説明されるように、例示的なシステム100は、サーバ側コンピューティングデバイスで、ユーザアカウントの下に記憶された暗号化ファイルにアクセスするクライアントシステムからの要求を識別するようにプログラムされる識別モジュール104を含むことができる。例示的なシステム100はまた、暗号化キーと、クライアント側キーで暗号化されている復号キーとを含む、ユーザアカウントに指定された非対称キーペアを識別するようにプログラムされるキーモジュール106を含み得る。
【0020】
加えて、下記により詳細に記載されるように、例示的なシステム100は、クライアントシステムからクライアント側キーを受信するようにプログラムされる受信モジュール108を含むことができる。例示的なシステム100は、復号キーをクライアント側キーで復号するようにプログラムされる復号モジュール110を含むことができる。例示的なシステム100は、復号キーを使用して、暗号化ファイルの暗号化されていないバージョンにアクセスするようにプログラムされるアクセスモジュール112を含むことができる。別個の要素として例解されるが、
図1のモジュール102のうちの1つ以上は、単一のモジュール又はアプリケーションの部分を表し得る。
【0021】
ある実施形態において、
図1のモジュール102のうちの1つ以上は、コンピューティングデバイスにより実行されるとき、コンピューティングデバイスに1つ以上のタスクを実施させ得る、1つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、下記により詳細に記載されるように、モジュール102のうちの1つ以上は、
図2に例解されるデバイス(例えば、コンピューティングデバイス202及び/又はクライアントシステム206)、
図8のコンピューティングシステム810、及び/又は
図9の例示的なネットワークアーキテクチャ900の部分等、1つ以上のコンピューティングデバイスに記憶され、そこで作動するように構成されるソフトウェアモジュールを表し得る。
図1のモジュール102のうちの1つ以上はまた、1つ以上のタスクを実施するように構成される、1つ以上の特殊目的のコンピュータの全て又は部分を表し得る。
【0022】
図1の例示的なシステム100は、多様な方法で実装されてもよい。例えば、例示的なシステム100の全て又は一部分は、
図2の例示的なシステム200の部分を表し得る。
図2に示されるように、システム200は、ネットワーク204を介してクライアントシステム206と通信する(例えば、第三者記憶サービスをクライアントシステム206に提供する)コンピューティングデバイス202を含むことができる。
【0023】
一実施形態では、
図1のモジュール102のうちの1つ以上は、コンピューティングデバイス202の少なくとも1つのプロセッサによって実行されるとき、安全な第三者データ記憶内でコンピューティングデバイス202を容易にすることができる。例えば、下記により詳細に記載されるように、モジュール102のうちの1つ以上は、コンピューティングデバイス202に、1)サーバ側コンピューティングデバイス202で、ユーザアカウント240の下に記憶された暗号化ファイル242にアクセスするクライアントシステム206からの要求210を識別すること、2)要求210に応答して、暗号化キー222と、クライアント側キー230で暗号化されている暗号化された復号キー224とを含むユーザアカウント240に指定された非対称キーペア220を識別すること、3)クライアントシステム206からクライアント側キー230を受信すること、4)暗号化された復号キー224をクライアント側キー230で復号すること(例えば、復号キー226をもたらすこと)、5)復号キー226を使用して、暗号化ファイル242(例えば、ファイル244)の暗号化されていないバージョンにアクセスすること、を行わせることができる。
【0024】
コンピューティングデバイス202及びクライアントシステム206は概して、コンピュータ実行可能な命令を読み取ることが可能な任意のタイプ又は形態のコンピューティングデバイスを表す。コンピューティングデバイス202及びクライアントシステム206の例としては、これらに限定されないが、サーバ、デスクトップ、ラップトップ、タブレット、携帯電話、携帯情報端末(PDA)、マルチメディアプレーヤ、埋め込みシステム、これらのうちの1つ以上の組み合わせ、
図8の例示的なコンピューティングシステム810、又は任意の他の好適なコンピューティングデバイスが挙げられる。
【0025】
ネットワーク204は、概して、通信又はデータ転送を容易にすることが可能な任意の媒体又はアーキテクチャを表す。ネットワーク204の例としては、これらに限定されないが、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、インターネット、電力線通信(PLC)、セルラーネットワーク(例えば、GSMネットワーク(「GSM」は登録商標))、
図9の例示的なネットワークアーキテクチャ900、等が挙げられる。ネットワーク204は、無線又は有線接続を使用して通信又はデータ転送を容易にし得る。一実施形態では、ネットワーク204は、コンピューティングデバイス202とクライアントシステム206との間の通信を容易にすることができる。
【0026】
図3は、安全な第三者データ記憶のための例示的なコンピュータ実装方法300の流れ図である。
図3に示される工程は、任意の好適なコンピュータで実行可能なコード及び/又はコンピューティングシステムにより実施されてもよい。一部の実施形態において、
図3に示される工程は、
図1のシステム100の構成要素のうちの1つ以上、
図2のシステム200、
図8のコンピューティングシステム810、及び/又は
図9の例示的なネットワークアーキテクチャ900の部分により実施されてもよい。
【0027】
図3に例解されるように、工程302では、本明細書に記載されるシステムのうちの1つ以上は、サーバ側コンピューティングデバイスで、ユーザアカウントの下に記憶された暗号化ファイルにアクセスするクライアントシステムからの要求を識別することができる。例えば、工程302では、識別モジュール104は、
図2のコンピューティングデバイス202の一部として、ユーザアカウント240の下に記憶された暗号化ファイル242にアクセスするクライアントシステム206からの要求210を識別することができる。上記の例のいずれにおいても、要求されたアクセスは、暗号化ファイルの復号を必要とするか又はそれを伴い得る。
【0028】
いくつかの例では、サーバ側コンピューティングデバイスは、第三者記憶システムの一部として動作することができる。本明細書で使用されるとき、用語「第三者記憶システム」は、ユーザの代わりにデータを記憶することが可能であるクラウドベースの記憶システムを含む任意のタイプ又は形態の記憶システムを指す。いくつかの例では、第三者記憶システムは、多数の異なる実体のデータを記憶することができる。少なくとも1つの例では、第三者記憶システムでデータを記憶する実体は、互いに(例えば、実体を超えるデータの非特権アクセスを防ぐために)、侵入者(例えば、第三者記憶システム内に記憶されたデータにアクセスする権限を付与されていない実体)、及び/又は第三者記憶システムの1人以上の管理者に対してデータの安全性を必要とし得る。いくつかの例では、第三者記憶システムは、単一インスタンスの記憶システム(即ち、多数の所有者のコンテンツの各項目の単一インスタンスのみ記憶するように構成される記憶システム)を表すか又は含むことができる。
【0029】
したがって、クライアントシステムは、同様に、第三者記憶システムの使用を容易にするための任意のシステムを含むことができる。いくつかの例では、クライアントシステムは、サーバ側コンピューティングデバイスの所有者及び/又は管理者とは異なる実体によって所有及び/又は管理されてもよい。
【0030】
本明細書で使用されるとき、用語「ファイル」は、これらに限定されないが、ファイル、データオブジェクト、データセグメント、データストリームの部分、データベース、データベース入力、及び/又は電子文書を含む任意の好適な単位のデータを指すことができる。加えて、語句「ユーザアカウント」は、データ所有者に対応し得る任意の識別子及び/又は特権システム(例えば、データ所有者によって所有されるデータを識別する、及び/又はデータ所有者による使用のためにデータ所有者によって所有されるデータを確保するために使用される)を指すことができる。
【0031】
識別モジュール104は、多様なタイプの要求のうちのいずれかを識別することができる。例えば、下記により詳細に説明されるように、識別モジュール104は、クライアントシステムのための暗号化ファイルの暗号化されていないバージョンを取り出す要求を識別することができる。加えて、又は代替として、識別モジュール104は、ファイルのアクセス可能なバージョンを別のユーザアカウントと共有する要求を識別することができる。いくつかの例では、識別モジュール104は、ファイルに1つ以上のプロシージャ(例えば、暗号化ファイルの暗号化されていないバージョンへのアクセスを必要とするプロシージャ)を実施する要求を識別することができる。
【0032】
識別モジュール104は、多様なコンテクストのうちのいずれかにおける要求を受信することができる。例えば、識別モジュール104は、クライアントシステムからユーザ起動要求を受信することができる。加えて、又は代替として、下記により詳細に説明されるように、識別モジュール104は、暗号化ファイルへのアクセスを可能にするクライアントシステムからクライアント側キーを単純に受信することによって暗号化ファイルにアクセスする暗黙の要求を受信することができる。
【0033】
図3に戻り、工程304では、本明細書に記載されるシステムのうちの1つ以上は、要求に応答して、暗号化キーと、クライアント側キーで暗号化されている復号キーとの両方を含むユーザアカウントに指定された非対称キーペアを識別することができる。例えば、工程304では、キーモジュール106は、
図2のコンピューティングデバイス202の一部として、要求210に応答して、暗号化キー222と、クライアント側キー230で暗号化されている暗号化された復号キー224との両方を含むユーザアカウント240に指定された非対称キーペア220を識別することができる。
【0034】
本明細書で使用されるとき、語句「非対称キーペア」は、暗号化キー(又は「公開キー」)及び復号キー(又は「秘密キー」)の両方を含む暗号キーの任意のペアを指すことができる。暗号化キーは、キーで暗号化されたデータを安全化するために秘密性を必要としないあらゆるキーを含み得る。例えば、暗号化キーは、非対称キーアルゴリズムを用いてデータを暗号化するために使用されてもよい。その結果として、暗号化キーで暗号化されたデータを復号することは、非対称キーペアの対応する復号キーを必要とし得る。いくつかの例では、非対称キーペアは、第三者記憶システム上、及び/又はそれによって記憶されてもよい。少なくとも1つの例では、暗号化キーも復号キーも第三者記憶システムの外側に分配され得ない。
【0035】
加えて、語句「クライアント側キー」は、本明細書で使用されるとき、任意の好適な暗号キー、又は非対称キーペアの復号キーを暗号化及び/若しくは復号するためのキーを指すことができる。いくつかの例では、クライアント側キーは、対称キー(例えば、データを暗号化すること、及び前記データを復号することの両方に使用可能なキー)を含み得る。例えば、クライアント側キーは、AES(Advanced Encryption Standard)仕様書(例えば、AES−256)に従ってデータを暗号化及び復号するように構成されてもよい。いくつかの例では、クライアント側キーは、クライアントシステム上で生成されてもよい。例えば、クライアント側キーは、パスワードベースのキー導出関数(例えば、PBKDF2)等のキー導出関数を用いて生成されてもよい。
【0036】
いくつかの例では、クライアント側キーは、クライアントシステムにキャッシュされ得る。加えて、又は代替として、クライアント側キーは、パスワードから必要に応じて生成され(例えば、クライアントシステム又は第三者記憶システムのいずれかで生成され)てもよい。いくつかの例では、クライアント側キーは、外部キーストアから取り出されてもよい。下記により詳細に説明されるように、いくつかの例では、クライアント側キーは、サーバ側コンピューティングデバイス上、及び/又はサーバ側コンピューティングデバイスによって実装される第三者記憶システム内に記憶されない場合がある。いくつかの例では、クライアント側キーは、対応するクライアントによってのみアクセス可能であってもよい。このクライアントは、組織、共有された秘密を有するグループ、コンピューティングデバイス、及び/又は任意の他の好適な実体に相当し得る。
【0037】
いくつかの例では、本明細書に記載されるシステムのうちの1つ以上は、非対称キーペア内の暗号化キーを使用して、暗号化ファイルを暗号化した可能性がある。例えば、本明細書に記載されるシステムのうちの1つ以上は、クライアントシステムから暗号化ファイルの暗号化されていないバージョンを受信し、次いで暗号化ファイルを生成することができる。これらのシステムは、暗号化ファイルの暗号化されていないバージョンの少なくとも1つの特性に基づいてファイルキーを生成し、次いで、ファイルキーで、暗号化ファイルの暗号化されていないバージョンを暗号化することによって生成することができる。例えば、これらのシステムは、暗号化ファイルの暗号化されていないバージョンのハッシュを導出し、ハッシュをファイルキーの基礎とすることができる。このように、本明細書に記載されるシステム及び方法は、同一の暗号化されていないファイルから同一の暗号化ファイルを生成し、クライアントにわたる重複排除を可能にすることができる。
【0038】
例えば、本明細書に記載されるシステムは、暗号化ファイルに、ファイルキーで暗号化される追加の暗号化ファイルとの重複排除を行うことができる。ファイルキーを生成すると、これらのシステムは、ファイルキーを暗号化キーで暗号化することができる。用語「重複排除」は、本明細書で使用されるとき、データが単一インスタンスデータ記憶システムに重複して記憶されるのを検出及び防止するための動作を含む、単一インスタンスデータ記憶システムに使用される記憶領域の量を減少させることに関する1つ以上の動作を指すことができる。重複排除は、任意の好適な重複排除技術又はアルゴリズムを用いて実施され得る。いくつかの例では、重複排除は、ファイルレベルの重複排除を含み得る。加えて、又は代替として、重複排除は、ブロックレベルの重複排除を含んでもよい。
【0039】
暗号化ファイルの暗号化されていないバージョンを暗号化することに加えて、いくつかの例では、本明細書に記載されるシステムのうちの1つ以上は、暗号化ファイルの暗号化されていないバージョンに基づいて(例えば、暗号化ファイルの暗号化されていないバージョンを暗号化し、それにより暗号化ファイルの暗号化されていないバージョンへのアクセスを失う前に)、1つ以上の動作を実施することができる。例えば、本明細書に記載されるシステムのうちの1つ以上は、暗号化ファイルの暗号化されていないバージョンのコンテンツを索引付けし、暗号化ファイルの暗号化されていないバージョンにアンチマルウェア走査を実施し、暗号化ファイルの暗号化されていないバージョンのコンテンツのプレビューを生成するなどを行うことができる。これらの例では、これらのシステムは、暗号化ファイルが暗号化された時点で、暗号化ファイルの暗号化されていないバージョンから生成されたメタデータを暗号化ファイルと関連付けることができる。
【0040】
キーモジュール106は、任意の好適な様式でユーザアカウントに指定された非対称キーペアを識別することができる。いくつかの例では、第三者記憶システムは、各々が、指定された異なる非対称キーペアを有する、複数のユーザアカウントのデータをホストすることができる。したがって、キーモジュール106は、クライアントシステムによって提供される1つ以上の識別子及び/又は認証情報に従ってユーザアカウントの非対称キーペアを識別することができる。
【0041】
図3に戻り、工程306では、本明細書に記載されるシステムのうちの1つ以上は、クライアントシステムから、クライアント側キーを受信することができる。例えば、工程306では、受信モジュール108は、
図2のコンピューティングデバイス202の一部として、クライアントシステム206からクライアント側キー230を受信することができる。
【0042】
前述のように、いくつかの例では、クライアント側キーは、サーバ側に(即ち、サーバ側コンピューティングデバイス及び/又は関連付けられた第三者記憶システムに)記憶されない場合がある。例えば、受信モジュール108は、クライアント側キーを受信し、クライアント側キーを不揮発性メモリ内に記憶することなくクライアント側キーを揮発性メモリ内に記憶することができる。本明細書で使用されるとき、語句「揮発性メモリ」は、あらゆる非持続的及び/又は一時的記憶場所を指すことができる。いくつかの例では、語句「揮発性メモリ」は、ランダムアクセスメモリを指すことができる。加えて、語句「不揮発性メモリ」は、あらゆる持続的記憶場所を指すことができる。例えば、語句「不揮発性メモリ」は、1つ以上のファイルを記憶するためにファイルシステムによって使用される記憶デバイスを指すことができる。いくつかの例では、受信モジュール108は、クライアント側キーを受信することができ、使用後にはクライアント側キーを保存しなくてもよい。例えば、受信モジュール108は、クライアントシステムとのセッションが終了した後、クライアント側キーを破棄することができる。
【0043】
受信モジュール108は、多様な方法のうちのいずれかでクライアントシステムからクライアント側キーを受信することができる。例えば、受信モジュール108は、クライアントシステムから直接クライアント側キーを受信することができる。加えて、又は代替として、受信モジュール108は、クライアント側キーを表すデータを受信することによってクライアントシステムからクライアント側キーを受信することができ、そこからクライアント側キーが生成され得る。例えば、受信モジュール108は、クライアントシステムからキー導出関数のパスワードを受信し、このキー導出関数を使用して、パスワードからクライアント側キーを生成することができる。この例では、受信モジュール108はまた、パスワードを不揮発性メモリ内にのみ保存し、及び/又はパスワードを使用して、クライアント側キーを生成するとパスワードを破棄することができる。
【0044】
図3に戻り、工程308では、本明細書に記載されるシステムのうちの1つ以上は、復号キーをクライアント側キーで復号することができる。例えば、工程308では、復号モジュール110は、
図2のコンピューティングデバイス202の一部として、暗号化された復号キー224をクライアント側キー230で復号する(例えば、復号キー226をもたらす)ことができる。
【0045】
復号モジュール110は、復号キーを任意の好適な様式で復号することができる。例えば、復号モジュール110は、復号キーの復号化されたバージョンを生成する所定の対称キーアルゴリズムに従って、クライアント側キーを復号キーに適用することができる。
【0046】
工程310では、本明細書に記載されるシステムのうちの1つ以上は、復号キーを使用して、暗号化ファイルの暗号化されていないバージョンにアクセスすることができる。例えば、工程310では、アクセスモジュール112は、
図2のコンピューティングデバイス202の一部として、復号キー226を使用して、暗号化ファイル242の暗号化されていないバージョン(例えば、ファイル244)にアクセスすることができる。
【0047】
アクセスモジュール112は、多様な方法のいずれかで、復号キーを使用して、暗号化ファイルの暗号化されていないバージョンにアクセスすることができる。例えば、アクセスモジュール112は、暗号化ファイルを暗号化するために使用されるファイルキーを識別することができる。この例では、ファイルキーは、暗号化キーで暗号化され得る。したがって、アクセスモジュール112は、ファイルキーを復号キーで復号し、次いで暗号化ファイルをファイルキーで復号することができる。
【0048】
アクセスモジュール112は、多様な目的のいずれかに対して暗号化ファイルの暗号化されていないバージョンにアクセスすることができる。例えば、上記に詳述されるように、クライアントシステムからの要求は、暗号化ファイルの暗号化されていないバージョンを取り出す要求を含むことができる。したがって、アクセスモジュール112は、暗号化ファイルの暗号化されていないバージョンをクライアントシステムに(例えば、要求に応答して)送信することができる。
【0049】
図4は、安全な第三者データ記憶のための例示的なシステム400を例解する。
図4に示されるように、例示的なシステム400は、第三者記憶サーバ420によって容易にされる第三者記憶サービスを介して1つ以上のファイルを記憶するように構成されるクライアントシステム410を含むことができる。例えば、クライアントシステム410は、暗号化されていないファイル446を第三者記憶サーバ420に以前に送信した可能性がある。第三者記憶サーバ420は、クライアントシステム410と関連付けられた非対称キーペア430を識別し、暗号化キー432を用いて暗号化されていないファイル446を暗号化した可能性がある。一例では、クライアントシステム410は、現時点では暗号化ファイル440として第三者記憶サーバ420に記憶されている、暗号化されていないファイル446を取り出すことを試みることができる。例えば、工程450では、クライアントシステム410は、暗号化されていないファイル446を要求し、クライアント側キー412を含むメッセージを第三者記憶サーバ420に送信することができる。第三者記憶サーバ420は、それに応じて、クライアント側キー412を受信し、クライアント側キー412を使用のためにメモリ内に維持することができる。
【0050】
工程452では、第三者記憶サーバ420は、非対称キーペア430を識別し、暗号化された復号キー434をクライアント側キー412を用いて復号して、復号キー436をもたらすことができる。工程454では、第三者記憶サーバ420は、復号キー436を使用して、暗号化されたファイルキー442を復号し、暗号化ファイル440のファイルキー444を得ることができる。工程456では、第三者記憶サーバ420は、ファイルキー444を使用して、暗号化ファイル440を復号し、暗号化されていないファイル446を得ることができる。工程458では、第三者記憶サーバ420は、暗号化されていないファイル446をクライアントシステム410に送信し、クライアントシステム410による要求を満たすことができる。加えて、第三者記憶サーバ420は、クライアント側キー412、復号キー436、及びファイルキー444を破棄し、暗号化されていないファイル446を削除することができる。
【0051】
図3の工程310に戻り、いくつかの例では、アクセスモジュール112は、暗号化ファイルの暗号化されていないバージョンにアクセスして、暗号化ファイルの暗号化されていないバージョンを記述するメタデータを生成することができる。いくつかの例では、アクセスモジュール112は次に、暗号化ファイルの暗号化されていないバージョンがもはや第三者記憶システムで直接アクセスできなくなった後であっても、暗号化ファイルを記述したメタデータは利用可能なままであるように、メタデータを暗号化ファイルと関連して記憶することができる。
【0052】
例えば、アクセスモジュール112は、(例えば、暗号化ファイルが何らかのマルウェアを含むか、又は何らかの他のセキュリティリスクをもたらすかを判定するために)暗号化ファイルの暗号化されていないバージョンにセキュリティ走査を実施することができる。別の例では、アクセスモジュール112は、暗号化ファイルの暗号化されていないバージョン内のコンテンツに基づいて暗号化ファイルの暗号化されていないバージョンを索引付けする(例えば、暗号化ファイルの暗号化されていないバージョンへアクセスすることなくそのコンテンツに基づいて暗号化ファイルを探すのを容易にする)ことができる。更なる例では、アクセスモジュール112は、暗号化ファイルの暗号化されていないバージョン内のコンテンツに基づいて暗号化ファイルの暗号化されていないバージョンのプレビューを生成する(例えば、暗号化ファイルの暗号化されていないバージョンへアクセスすることなく暗号化ファイルを閲覧するのを容易にする)ことができる。加えて、又は代替として、上記に詳述されるように、いくつかの例では、本明細書に記載される1つ以上のシステムは、暗号化ファイルの暗号化されていないバージョンが最初にアップロードされるときに(例えば、暗号化前に)、上述される動作のうちの1つ以上を実施することができる。
【0053】
いくつかの例では、アクセスモジュール112は、暗号化ファイルの暗号化されていないバージョンへのアクセスを別の関係者に提供することができる。例えば、アクセスモジュール112は、暗号化ファイルの暗号化されていないバージョンへのアクセスを別のユーザアカウントに提供することができる。この例では、追加の非対称キーペアは、追加の暗号化キーと、追加の復号キーとを含む追加のユーザアカウントに指定されてもよい。追加の復号キーは、追加のクライアント側キー(例えば、追加のユーザアカウントに対応する追加のクライアントシステムに関連する)で暗号化されてもよい。この例では、アクセスモジュール112は、暗号化ファイルを暗号化するために使用されるファイルキーを最初に識別することによって暗号化ファイルの暗号化されていないバージョンへのアクセスを追加のユーザアカウントに提供することができる。暗号化ファイルがユーザアカウントに関連し得ることにより、ファイルキーは、暗号化キー(即ち、ユーザアカウントに対応する非対称キーペアの暗号化キー)で暗号化されてもよい。アクセスモジュール112は次に、ファイルキーを復号キーで復号し、ファイルキーのコピーを追加の暗号化キーで暗号化することができる。このように、追加のユーザアカウントは、暗号化ファイルへのアクセス(例えば、追加のクライアント側キーを提出してファイルキーを復号し、ファイルキーによる暗号化ファイルの復号を可能にすることによる)を有することができる。
【0054】
図5は、安全な第三者データ記憶のための例示的なシステム500を例解する。
図5に示されるように、例示的なシステム500は、第三者記憶サーバ520によって容易にされた第三者記憶サービスを介して1つ以上のファイルを記憶し、及び/又はそれにアクセスするように構成されるクライアントシステム510(1)及び510(2)を含むことができる。例えば、第三者記憶サーバ520は、クライアントシステム510(1)の代わりに暗号化ファイル540を記憶することができる。この例では、非対称キーペア530(1)は、クライアントシステム510(1)に対応することができ、非対称キーペア530(2)は、クライアントシステム510(2)に対応することができる。したがって、暗号化ファイル540は、暗号化キー532(1)で暗号化されるファイルキー544で暗号化され、暗号化されたファイルキー542(1)として記憶されてもよい。
【0055】
工程550では、クライアントシステム510(1)は、暗号化ファイル540の暗号化されていないコンテンツへのアクセスをクライアントシステム510(2)と共有する要求を第三者記憶サーバ520に送信することができる。この要求は、クライアント側キー512(1)を含むことができる。第三者記憶サーバ520は、クライアント側キー512(1)を受信し、工程552で、暗号化された復号キー534(1)をクライアント側キー512(1)で復号して、復号キー536(1)を得ることができる。工程554では、第三者記憶サーバ520は、暗号化されたファイルキー542(1)を復号キー536(1)で復号して、ファイルキー544を得ることができる。工程556では、第三者記憶サーバ520は、ファイルキー544を暗号化キー532(2)で暗号化して、暗号化されたファイルキー542(2)を得て、将来の使用のために暗号化されたファイルキー542(2)を記憶することができる。工程558では、第三者記憶サーバ520は、暗号化ファイル540の暗号化されていないコンテンツにアクセスするクライアントシステム510(2)からの要求を受信することができる。この要求は、クライアント側キー512(2)を含み、第三者記憶サーバ520が暗号化された復号キー534(2)を復号するのを可能にし、それによりファイルキー544を得て、暗号化ファイル540を復号するために暗号化されたファイルキー542(2)を復号することができる。
【0056】
いくつかの例では、アクセスモジュール112は、追加のユーザアカウントに対応する追加のクライアント側キーがユーザアカウントの復号キーを復号するのを可能にすることによって、暗号化ファイルの暗号化されていないバージョンへのアクセスを追加のユーザアカウントに提供することができる。例えば、アクセスモジュール112は、暗号化ファイルの暗号化されていないバージョンにアクセスするように指定された追加のユーザアカウントを識別することができる。この例では、追加の非対称キーペアは、追加の暗号化キーと、追加の復号キーとの両方を含む追加のユーザアカウントに指定されてもよい。追加の復号キーは、追加のクライアント側キー(例えば、追加のユーザアカウントに対応する追加のクライアントシステムに関連する)で暗号化されてもよい。
【0057】
上述の例では、アクセスモジュール112は、復号キーを追加の暗号化キーで暗号化すること(例えば、後の使用のために暗号化された復号キーを追加のユーザアカウントで記憶すること)によって、暗号化ファイルの暗号化されていないバージョンへのアクセスを追加のユーザアカウントに提供することができる。例えば、本明細書に記載されるシステムのうちの1つ以上は、後で、追加のユーザアカウントを介して暗号化ファイルに更にアクセスする追加のクライアントシステムからの追加の要求を識別することができる。これらのシステムは次に、復号キーを追加の復号キーで復号し、この復号キーを使用して、追加のユーザアカウントを介して(例えば、この復号キーを使用して、暗号化ファイルが暗号化されたファイルキーを復号し、次いでこのファイルキーで暗号化ファイルを復号することによって)、暗号化ファイルの暗号化されていないバージョンにアクセスすることができる。いくつかの例では、上述される手法は、ユーザアカウントと追加のユーザアカウントとの間の多数のファイルを共有するために使用されてもよい。この手法はまた、いくつかの暗号処理工程を除外する(例えば、共有された各ファイルの別個の暗号化されたファイルキーの生成を必要としないことによって)ことができる。
【0058】
図6は、安全な第三者データ記憶のための例示的なシステム600を例解する。
図6に示されるように、例示的なシステム600は、第三者記憶サーバ620によって容易にされた第三者記憶サービスを介して1つ以上のファイルを記憶し、及び/又はそれにアクセスするように構成されるクライアントシステム610(1)及び610(2)を含むことができる。例えば、第三者記憶サーバ620は、クライアントシステム610(1)の代わりに暗号化ファイル640、642、及び644を記憶することができる。この例では、非対称キーペア630(1)は、クライアントシステム610(1)に対応することができ、非対称キーペア630(2)は、クライアントシステム610(2)に対応することができる。したがって、暗号化ファイル640、642、及び644は、暗号化されたファイルキー641、643、及び645でそれぞれ暗号化されてもよく、同様に暗号化キー632(1)で暗号化されてもよい。
【0059】
工程650では、クライアントシステム610(1)は、暗号化ファイル640、642、及び644の暗号化されていないコンテンツへのアクセスをクライアントシステム610(2)と共有する要求を第三者記憶サーバ620に送信することができる。この要求は、クライアント側キー612(1)を含むことができる。第三者記憶サーバ620は、クライアント側キー612(1)を受信し、工程652で、暗号化された復号キー634(1)をクライアント側キー612(1)で復号して、復号キー636(1)を得ることができる。
【0060】
工程654では、第三者記憶サーバ620は、復号キー636(1)を暗号化キー632(2)で暗号化して、暗号化された復号キー638を得ることができる。第三者記憶サーバ620は次に、将来の使用のために暗号化された復号キー638を記憶することができる。その後、工程656では、クライアントシステム610(2)は、暗号化ファイル640、642、及び644のうちの1つ以上にアクセスするクライアント側キー612(2)を含む要求を第三者記憶サーバ620に送信することができる。第三者記憶サーバ620は次に、暗号化された復号キー638を暗号化された復号キー634(2)で復号して復号キー636(1)を得て、かつ暗号化されたファイルキー641、643、及び645のうちの1つ以上を復号キー636(1)で復号して、暗号化ファイル640、642、及び644のうちの1つ以上の暗号化されていないコンテンツを得ることによってアクセスを提供することができる。
【0061】
図3の工程310に戻り、いくつかの例では、アクセスモジュール112は、ユーザアカウントのグループの会員であることに基づいて暗号化ファイルの暗号化されていないバージョンへのアクセスを提供することができる。例えば、アクセスモジュール112は、ユーザアカウントを含むユーザアカウントのグループに指定された追加の非対称キーペアを識別することができる。追加の非対称キーペアは、追加の暗号化キーと、追加の復号キーとを含むことができる。追加の復号キーは、ユーザアカウントの非対称キーペアに対応する暗号化キーで暗号化されてもよい。アクセスモジュール112は次に、追加の復号キーを復号キーで復号することができる。アクセスモジュール112は、暗号化ファイルを暗号化するために使用されるファイルキーを更に識別することができる。ファイルキーは、追加の暗号化キーで暗号化されてもよい。アクセスモジュール112は、ファイルキーを追加の復号キーで復号し、暗号化ファイルをファイルキーで復号することができる。更なる例では、アクセスモジュール112は、ファイルキーの代わりに追加の暗号化キーで暗号化されてもよい。この例では、アクセスモジュール112は、暗号化ファイルを追加の復号キーで単純に復号することができる。
【0062】
図7は、安全な第三者データ記憶のための例示的なシステム700を例解する。
図7に示されるように、例示的なシステム700は、第三者記憶サーバ720によって容易にされた第三者記憶サービスを介して1つ以上のファイルを記憶し、及び/又はそれにアクセスするように構成されるクライアントシステム710(1)、710(2)、及び710(3)を含むことができる。例えば、第三者記憶サーバ720は、クライアントシステム710(1)〜(3)の代わりに暗号化ファイル746、747、及び748を記憶することができる。この例では、パーソナル非対称キーペア730(1)は、クライアントシステム710(1)に対応することができ、グループ非対称キーペア740(2)は、グループ(例えば、各々が暗号化された復号キー744(1)、744(2)、及び744(3)をそれぞれ持つ、グループ復号キー738の暗号化されたバージョンを有する、クライアントシステム710(1)、710(2)、及び710(3)で)としてクライアントシステム710(1)〜(3)に対応することができる。暗号化ファイル746、747、及び748は、暗号化キー742で暗号化されてもよい。
【0063】
工程750では、クライアントシステム710(1)は、暗号化ファイル740の暗号化されていないコンテンツにアクセスする要求を第三者記憶サーバ720に送信することができる。この要求は、クライアント側キー712(1)を含むことができる。第三者記憶サーバ720は、クライアント側キー712(1)を受信し、工程752では、暗号化された復号キー734(1)をクライアント側キー712(1)で復号して、パーソナル復号キー736(1)を得ることができる。工程754では、第三者記憶サーバ720は、暗号化された復号キー744(1)をパーソナル復号キー736(1)で復号して、グループ復号キー738を得ることができる。工程756では、第三者記憶サーバ720は、暗号化ファイル746をグループ復号キー738で復号して、暗号化されていないファイル749を得ることができる。工程758では、第三者記憶サーバ720は、暗号化されていないファイル749をクライアントシステム710(1)に送信することができる。同様の様式で、第三者記憶サーバ720は、暗号化された復号キー744(2)及び744(3)をクライアント側キー712(2)及び712(3)でそれぞれ復号することによって、クライアントシステム710(2)及び710(3)に対する暗号化ファイル746、747、及び/又は748の暗号化されていないバージョンを得ることができる。あるいは、前述のように、いくつかの例では、暗号化ファイル746、747、及び748は各々、それぞれのファイルキーで暗号化されてもよく、同様に、各々が暗号化キー742で暗号化されてもよい。これらの例では、第三者記憶サーバ720は、ファイルキーをグループ復号キー738で復号し、次いで暗号化ファイル746、747、及び748をそれぞれのファイルキーで復号することができる。
【0064】
上記に説明されるように、安全化されたデータを暗号化及び復号するための非対称キーペアを第三者記憶サーバ上に維持し、非対称キーペアの復号キーをクライアントによって維持される暗号化キーで暗号化することによって、本明細書に記載されるシステム及び方法は、暗号化されていない状態で、安全化されたデータにアクセスするために必要なクライアント側復号キーを記憶することなく、クライアントデータを安全に記憶及び暗号化することができる。それにより、これらのシステム及び方法は、この安全化されたデータの共有、重複排除、分析、及び/若しくは索引付けを更に可能にし、並びに/又は容易にしながら、第三者記憶システムへのアクセスを得た攻撃者が暗号化されていない状態の安全化されたデータにアクセスするのを防ぐことができる。
【0065】
図8は、本明細書に記載及び/又は例解される実施形態のうちの1つ以上を実装することが可能な例示的なコンピューティングシステム810のブロック図である。例えば、コンピューティングシステム810の全て又は一部分は、単独又は他の要素との組み合わせのいずれかで、本明細書に記載される工程を識別すること、受信すること、生成すること、暗号化すること、重複排除すること、記憶すること、復号すること、使用すること、アクセスすること、送信すること、生成すること、実施すること、索引付けすること、及び提供することのうちの1つ以上を実施し得る、及び/又はそれを実施するための手段であり得る。コンピューティングシステム810の全て又は一部分はまた、本明細書に記載及び/又は例解される任意の他の工程、方法、又はプロセスを実施し得る、及び/又は実施するための手段であり得る。
【0066】
コンピューティングシステム810は、コンピュータで読み取り可能な命令を実行することが可能な任意の単一又はマルチプロセッサコンピューティングデバイス又はシステムを広範に表す。コンピューティングシステム810の例としては、これらに限定されないが、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ノートデバイス、又は任意の他のコンピューティングシステム又はデバイスが挙げられる。最も基本的な構成において、コンピューティングシステム810は、少なくとも1つのプロセッサ814及びシステムメモリ816を含み得る。
【0067】
プロセッサ814は、概して、データ処理又は命令の解釈及び実行が可能な任意のタイプ又は形態の処理ユニットを表す。ある実施形態において、プロセッサ814は、ソフトウェアアプリケーション又はモジュールから命令を受信し得る。これらの命令は、プロセッサ814に、本明細書に記載及び/又は例解される例示的な実施形態のうちの1つ以上の機能を実施させ得る。
【0068】
システムメモリ816は、概して、データ及び/又は他のコンピュータで読み取り可能な命令を記憶することが可能な揮発性又は非揮発性の記憶デバイス又は媒体の任意のタイプ又は形態を表す。システムメモリ816の例としては、これらに限定されないが、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必ずしも必要ではないが、ある実施形態において、コンピューティングシステム810は、揮発性メモリユニット(例えば、システムメモリ816等)及び非揮発性記憶デバイス(例えば、以下に詳細に説明されるように、一次記憶デバイス832等)を含み得る。一実施例において、
図1からのモジュール102のうちの1つ以上は、システムメモリ816にロードされ得る。
【0069】
ある実施形態において、例示的なコンピューティングシステム810はまた、プロセッサ814及びシステムメモリ816に加えて、1つ以上の構成要素又は要素を含んでもよい。例えば、
図8に例解されるように、コンピューティングシステム810は、通信基盤818を介して各々が相互接続され得る、メモリコントローラ820、入力/出力(I/O)コントローラ822、及び通信インターフェース812を含んでもよい。通信基盤812は、概して、コンピューティングデバイスの1つ以上の構成要素の間の通信を容易にすることが可能な任意のタイプ又は形態の基盤を表し得る。通信基盤812の例としては、これらに限定されないが、通信バス(ISA、PCI、PCIe、類似のバス等)及びネットワークが挙げられる。
【0070】
メモリコントローラ818は、概して、コンピューティングシステム810の1つ以上の構成要素間でメモリ若しくはデータを扱う、又は通信を制御することが可能な任意のタイプ又は形態のデバイスを表し得る。例えば、ある実施形態において、メモリコントローラ818は、通信基盤812を介して、プロセッサ814、システムメモリ816、及びI/Oコントローラ820との間で通信を制御し得る。
【0071】
I/Oコントローラ820は、概して、コンピューティングデバイスの入力及び出力機能を調整及び/又は制御することが可能な任意のタイプ又は形態のモジュールを表し得る。例えば、ある実施形態において、I/Oコントローラ820は、プロセッサ814、システムメモリ816、通信インターフェース822、ディスプレイアダプタ826、入力インターフェース830、及び記憶インターフェース834のような、コンピューティングシステム810の1つ以上の要素間のデータの転送を制御又は容易にし得る。
【0072】
通信インターフェース822は、広範に、例示的なコンピューティングシステム810と1つ以上の追加のデバイスとの間の通信を容易にすることが可能な任意のタイプ若しくは形態の通信デバイス又はアダプタを表し得る。例えば、ある実施形態において、通信インターフェース822は、コンピューティングシステム810と、追加のコンピューティングシステムを含む私的又は公的なネットワークとの間の通信を容易にし得る。通信インターフェース822の例としては、これらに限定されないが、有線ネットワークインターフェース(ネットワークインターフェースカード等)、無線ネットワークインターフェース(無線ネットワークインターフェースカード等)、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも1つの実施形態において、通信インターフェース822は、インターネット等の、ネットワークへの直接的なリンクを介して、リモートサーバへ直接的な接続を提供し得る。通信インターフェース822はまた、例えば、ローカルエリアネットワーク(イーサネットネットワーク(「イーサネット」は登録商標、以下同じ)等)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、携帯電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、間接的にかかる接続を提供してもよい。
【0073】
ある実施形態において、通信インターフェース822はまた、外部バス又は通信チャンネルを介して、コンピューティングシステム810と、1つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されるホストアダプタを表し得る。ホストアダプタの例としては、これらに限定されないが、SCSIホストアダプタ、USBホストアダプタ、IEEE 1394ホストアダプタ、SATA及びeSATAホストアダプタ、ATA及びPATAホストアダプタ、ファイバーチャンネルインターフェースアダプタ、イーサネットアダプタ等が挙げられる。通信インターフェース822はまた、コンピューティングシステム810が、分散型又はリモートコンピューティングに関与することを可能にし得る。例えば、通信インターフェース822は、実行のためにリモートデバイスから命令を受信するか、又はリモートデバイスへ命令を送信することができる。
【0074】
図8に例解されるように、コンピューティングシステム810はまた、ディスプレイアダプタ826を介して通信基盤812に連結される少なくとも1つのディスプレイデバイス824を含んでもよい。ディスプレイデバイス824は、概して、ディスプレイアダプタ826によって転送される情報を視覚的に表示することが可能な任意のタイプ又は形態のデバイスを表し得る。同様に、ディスプレイアダプタ826は、概して、ディスプレイデバイス812上で表示するために、通信基盤824から(又は、当該分野で周知の、フレームバッファから)グラフィック、テキスト、及び他のデータを転送するように構成される任意のタイプ又は形態のデバイスを表す。
【0075】
図8に例解されるように、例示的なコンピューティングシステム810はまた、入力インターフェース830を介して通信基盤812に連結される少なくとも1つの入力デバイス828を含んでもよい。入力デバイス828は、概して、例示的なコンピューティングシステム810に、コンピュータ又は人間のいずれかが生成した入力を提供することが可能な任意のタイプ又は形態の入力デバイスを表し得る。入力デバイス828の例としては、これらに限定されないが、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
【0076】
図8に例解されるように、例示的なコンピューティングシステム810はまた、記憶インターフェース834を介して通信基盤812に連結される一次記憶デバイス832及びバックアップ記憶デバイス833を含んでもよい。記憶デバイス832及び833は、概して、データ及び/又は他のコンピュータで読み取り可能な命令を記憶することが可能な任意のタイプ又は形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス832及び833は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、ソリッドステートドライブ、フロッピーディスクドライブ(「フロッピー」は登録商標、以下同じ)、磁気タイプドライブ、光ディスクドライブ、フラッシュドライブ等であり得る。記憶インターフェース834は、概して、記憶デバイス832及び833とコンピューティングシステム810の他の構成要素との間でデータを転送するための任意のタイプ又は形態のインターフェース又はデバイスを表す。
【0077】
ある実施形態において、記憶デバイス832及び833は、コンピュータソフトウェア、データ、又は他のコンピュータで読み取り可能な情報を記憶するように構成される取り外し可能な記憶ユニットから読み取る、及び/又は取り外し可能な記憶ユニットに書き込むように構成されてもよい。好適な取り外し可能な記憶ユニットの例としては、これらに限定されないが、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイス等が挙げられる。記憶デバイス832及び833はまた、コンピュータソフトウェア、データ、又は他のコンピュータで読み取り可能な命令がコンピューティングシステム810にロードされることを可能にするための他の類似の構造又はデバイスを含んでもよい。例えば、記憶デバイス832及び833は、ソフトウェア、データ、又は他のコンピュータで読み取り可能な情報を読み取る及び書き込むように構成され得る。記憶デバイス832及び833はまた、コンピューティングシステム810の一部であってもよく、又は他のインターフェースシステムを通じてアクセスされる別個のデバイスであってもよい。
【0078】
多くの他のデバイス又はサブシステムが、コンピューティングシステム810に接続され得る。反対に、本明細書に記載及び/又は例解される実施形態を実践するために、
図8に例解される構成要素及びデバイスの全てが存在する必要はない。上で言及されるデバイス及びサブシステムはまた、
図8に示されるものとは異なる方法で相互接続されてもよい。コンピューティングシステム810はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を用いてもよい。例えば、本明細書に開示される例示的な実施形態のうちの1つ以上は、コンピュータで読み取り可能な記憶媒体上で、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータで読み取り可能な命令、又はコンピュータ制御論理とも称される)としてコード化され得る。「コンピュータで読み取り可能な記憶媒体」という句は、概して、コンピュータで読み取り可能な命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ読み取り可能な記憶媒体の例としては、これらに限定されないが、搬送波等の伝送型媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ及びフロッピーディスク)、光記憶媒体(例えば、CD−又はDVD−ROM)、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュメディア)、及び他の分散システム等の非一時的型媒体が挙げられる。
【0079】
コンピュータプログラムを含むコンピュータで読み取り可能な記憶媒体は、コンピューティングシステム810にロードされ得る。次いで、コンピュータで読み取り可能な記憶媒体上に記憶されるコンピュータプログラムの全ての又は一部分は、システムメモリ816、並びに/又は記憶デバイス832及び833の多様な部分に記憶され得る。プロセッサ814により実行されるとき、コンピューティングシステム810にロードされるコンピュータプログラムは、プロセッサ814に、本明細書に記載及び/又は例解される例示的な実施形態のうちの1つ以上の機能を実施させ得る、及び/又は実施するための手段であり得る。更に又は代替的に、本明細書に記載及び/又は例解される例示的な実施形態のうちの1つ以上は、ファームウェア及び/又はハードウェアに実装され得る。例えば、コンピューティングシステム810は、本明細書に開示される例示的な実施形態のうちの1つ以上を実装するように適合される、特定用途向け集積回路(ASIC)として構成されてもよい。
【0080】
図9は、クライアントシステム910、920、及び930、並びにサーバ940及び945がネットワーク950に連結され得る、例示的なネットワークアーキテクチャ900のブロック図である。上記に詳述されるように、ネットワークアーキテクチャ900の全て又は一部分は、単独又は他の要素との組み合わせのいずれかで、本明細書に開示される工程を識別すること、受信すること、生成すること、暗号化すること、重複排除すること、記憶すること、復号すること、使用すること、アクセスすること、送信すること、生成すること、実施すること、索引付けすること、及び提供することのうちの1つ以上を実施し得る、及び/又はそれを実施するための手段であり得る。ネットワークアーキテクチャ900の全て又は一部分はまた、本開示に記載される他の工程及び特性を実施するために使用され得る、及び/又は実施するための手段であり得る。
【0081】
クライアントシステム910、920、及び930は、概して、
図8の例示的なコンピューティングシステム810等の、コンピューティングデバイス又はシステムの任意のタイプ又は形態を表し得る。同様に、サーバ940及び945は、概して、多様なデータベースサービスを提供する及び/又はあるソフトウェアアプリケーションを作動させるように構成される、アプリケーションサーバ又はデータベースサーバ等のコンピューティングデバイス又はシステムを表す。ネットワーク950は、概して、例えば、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを表す。一実施例において、クライアントシステム910、920、及び/若しくは930、並びに/又はサーバ940及び/若しくは945は、
図1からのシステム100の全ての又は一部分を含んでもよい。
【0082】
図9に例解されるように、1つ以上の記憶デバイス960(1)〜(N)は、サーバ940に直接接続され得る。同様に、1つ以上の記憶デバイス970(1)〜(N)は、サーバ945に直接接続され得る。記憶デバイス960(1)〜(N)及び記憶デバイス970(1)〜(N)は、概して、データ及び/又は他のコンピュータで読み取り可能な命令を記憶することが可能な任意のタイプ又は形態の記憶デバイス又は媒体を表す。ある実施形態において、記憶デバイス960(1)〜(N)及び記憶デバイス970(1)〜(N)は、NFS、SMB、又はCIFS等の、多様なプロトコルを使用してサーバ940及び945と通信するように構成されるネットワーク接続記憶(NAS)デバイスを表し得る。
【0083】
サーバ940及び945はまた、記憶エリアネットワーク(SAN)ファブリック980に接続され得る。SANファブリック980は、概して、複数の記憶デバイス間の通信を容易にすることが可能な任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。SANファブリック980は、サーバ940及び945と複数の記憶デバイス990(1)〜(N)及び/又は知的記憶アレイ995との間の通信を容易にし得る。SANファブリック980はまた、デバイス990(1)〜(N)及びアレイ995が、クライアントシステム910、920、及び930にローカルで接続されたデバイスとして現れるような様式で、ネットワーク950並びにサーバ940及び945を介して、クライアントシステム910、920、及び930と記憶デバイス990(1)〜(N)及び/又は知的記憶アレイ995との間の通信を容易にし得る。記憶デバイス960(1)〜(N)及び記憶デバイス970(1)〜(N)と同様に、記憶デバイス990(1)〜(N)及び知的記憶アレイ995は、概して、データ及び/又は他のコンピュータで読み取り可能な命令を記憶することが可能な任意のタイプ又は形態の記憶デバイス又は媒体を表す。
【0084】
ある実施形態において、及び
図8の例示的なコンピューティングシステム810を参照して、
図8の通信インターフェース822等の通信インターフェースは、各クライアントシステム910、920、及び930とネットワーク950との間の接続性を提供するために使用されてもよい。クライアントシステム910、920、及び930は、例えば、ウェブブラウザ又はその他のクライアントソフトウェアを使用して、サーバ940又は945上の情報にアクセスすることが可能であり得る。そのようなソフトウェアは、クライアントシステム910、920、及び930が、サーバ940、サーバ945、記憶デバイス960(1)〜(N)、記憶デバイス970(1)〜(N)、記憶デバイス990(1)〜(N)、又は知的記憶アレイ995によりホストされるデータにアクセスすることを可能にし得る。
図9は、データを交換するためのネットワーク(インターネット等)の使用を描写するが、本明細書に記載及び/又は例解される実施形態は、インターネット又はいかなる特定のネットワークに基づく環境にも限定されない。
【0085】
少なくとも1つの実施形態において、本明細書に開示される例示的な実施形態のうちの1つ以上の全て又は一部分は、コンピュータプログラムとしてコード化され、サーバ940、サーバ945、記憶デバイス960(1)〜(N)、記憶デバイス970(1)〜(N)、記憶デバイス990(1)〜(N)、知的記憶アレイ995、又はそれらの任意の組み合わせ上にロードされ、それによって実行され得る。本明細書に開示される少なくとも1つの例示的な実施形態の全て又は一部分は、コンピュータプログラムとしてとしてコード化され、サーバ940に記憶され、サーバ945により作動され、ネットワーク950を通じてクライアントシステム910、920、及び930に分散され得る。
【0086】
上記に詳述されるように、コンピューティングシステム810及び/又はネットワークアーキテクチャ900の1つ以上の構成要素は、単独又は他の要素との組み合わせのいずれかで、安全な第三者データ記憶のための例示的な方法の1つ以上の工程を実施し得る、及び/又はそれを実施するための手段であり得る。
【0087】
先述の開示は、特定のブロック図、流れ図、及び実施例を使用して多様な実施形態を説明するが、本明細書に記載及び/又は例解される各ブロック図の構成要素、流れ図の工程、動作、及び/又は構成要素は、個別に及び/又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア(又はそれらの任意の組み合わせ)構成を使用して、実装されてもよい。更に、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャが同じ機能性を達成するために実装することができるため、事実上例示的なものと見なされるべきである。
【0088】
一部の実施例において、
図1の例示的なシステム100の全ての又は一部分は、クラウドコンピューティング又はネットワークに基づく環境の部分を表し得る。クラウドコンピューティング環境は、インターネットを介して多様なサービス及びアプリケーションを提供することができる。これらのクラウドに基づくサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤等)は、ウェブブラウザ又は他のリモートインターフェースを通じてアクセス可能であり得る。本明細書に記載の多様な機能は、リモートデスクトップ環境又は任意の他のクラウドに基づくコンピューティング環境を通じて提供され得る。
【0089】
本明細書に記載及び/又は例解されるプロセスパラメータ及び工程の順序は、ほんの一例として提供され、所望に応じて変更することができる。例えば、本明細書に例解及び/又は記載される工程が特定の順序で示される又は論議されるが、これらの工程は、必ずしも例解又は論議される順序で実施される必要はない。本明細書に記載及び/又は例解される多様な例示的な方法はまた、本明細書に記載及び/又は例解される工程のうちの1つ以上を省略してもよく、又は開示されるものに加えて追加の工程を含んでもよい。
【0090】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈において、本明細書に記載及び/又は例解されているが、これらの例示的な実施形態のうちの1つ以上は、実際に分散を行うために使用されるコンピュータで読み取り可能な記憶媒体の特定のタイプにかかわらず、多様な形態のプログラム製品として分散され得る。本明細書に開示の実施形態はまた、あるタスクを実施するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、スクリプト、バッチ、又はコンピュータで読み取り可能な記憶媒体上又はコンピューティングシステムに記憶され得る、他の実行可能なファイルを含んでもよい。一部の実施例において、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの1つ以上を実施するように、コンピューティングシステムを構成し得る。
【0091】
更に、本明細書に記載のモジュールのうちの1つ以上は、データ、物理的デバイス、及び/又は物理的デバイスの表現を1つの形態から別の形態へ変換し得る。例えば、本明細書に列挙されるモジュールのうちの1つ以上は、コンピューティングデバイスを安全な第三者記憶のためのデバイスに変換することができる。別の例として、本明細書に列挙されるモジュールのうちの1つ以上は、暗号化ファイルを暗号化されていないファイルに変換することができる。
【0092】
先行の説明は、他の当業者が、本明細書に開示される例示的な実施形態の多様な態様を最大限に利用することを可能にするように提供されている。この例示的な説明は、包括的であること、又は開示されるいずれの正確な形態にも限定されることを意図するものではない。多くの修正及び変形が、本開示の趣旨及び範囲から逸脱することなく可能である。本明細書に開示される実施形態は、あらゆる点で具体例であり、制限するものではないと見なされるべきである。本開示の範囲を決定する際、添付の特許請求の範囲及びその均等物への参照がなされるべきである。
【0093】
特に記されない限り、本明細書及び特許請求の範囲に使用される用語「a」又は「an」は、「少なくとも1つの」を意味すると解釈される。更に、使用の容易さのために、本明細書及び特許請求の範囲に使用される際、単語「含む」及び「有する」は、単語「備える」と同義であり、かつ同じ意味を有する。