(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024113079
(43)【公開日】2024-08-21
(54)【発明の名称】強化セキュリティ、レジリエンス、及び、コントロールによる分散データストレージのための方法及びシステム
(51)【国際特許分類】
H04L 9/08 20060101AFI20240814BHJP
G06F 21/60 20130101ALI20240814BHJP
G06F 21/62 20130101ALI20240814BHJP
【FI】
H04L9/08 A
H04L9/08 E
G06F21/60 320
G06F21/62 318
【審査請求】有
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2024091197
(22)【出願日】2024-06-05
(62)【分割の表示】P 2022172006の分割
【原出願日】2020-05-14
(31)【優先権主張番号】62/851,146
(32)【優先日】2019-05-22
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521510589
【氏名又は名称】ミョータ インコーポレイテッド
(74)【代理人】
【識別番号】240000327
【弁護士】
【氏名又は名称】弁護士法人クレオ国際法律特許事務所
(72)【発明者】
【氏名】チュン チェユーン
(57)【要約】
【課題】関連するメタデータを含むデータファイルを暗号化し、再構築するための方法及びシステムを開示する。
【解決手段】この方法は、データ及びメタデータをチェーン化プロセスとして別々に暗号化し、技術のコレクションの統合された利点をもたらす複数の暗号化/符号化技術を戦略的な記憶分散技術及び解析技術と共に統合することを含む。開示されているように、コンテンツデータは、そのメタデータから分離され、暗号化キーは、メタデータに埋め込まれてもよく、コンテンツデータの暗号化チェーン化プロセスにおいて、チャンク化、暗号化、シャード化、及び、コンテンツデータとシャードとを別々に記憶し、メタデータを柔軟、分散、効率的な方法で格納することができ、少なくとも部分的には、レジリエンスの向上を保証する。コンテンツデータ又はプロキシサーバのサイトに含めて、プロセスはローカルに実施されることが好ましい。
【選択図】
図1
【特許請求の範囲】
【請求項1】
暗号化されたコンピュータファイルをストレージから安全且つ確実に再構築するためのプロセッサ型サーバのための方法であって、前記コンピュータファイルは、データ及び関連するファイルメタデータを備え、前記暗号化は、n1チャンクに解析され、各前記n1チャンクがそれぞれのチャンクIDを有し、各チャンクがそれぞれのキーによって暗号化され、複数のストレージのそれぞれに別々に記憶された前記n1チャンクのn2コンテンツシャードのそれぞれを有する前記n2シャードコンテンツに解析された前記少なくとも1つの暗号化されたファイルのデータコンテンツと、前記チャンクIDと、暗号化キーとを備え、その後、n3メタデータ部分に解析され、前記n3メタデータ部分のそれぞれが別々に記憶された前記少なくとも1つの暗号化されたコンピュータファイルのメタデータとによる計算的及び理論的暗号法を有し、を備え、
前記方法は、
再構築のための選択のために利用可能な暗号化されたファイルのリストを送るステップと、
再構築のためのファイルの選択時に、前記プロセッサが、前記選択されたファイルに関連し、n3メタデータ部分のt3が前記メタデータの構築に必要であり、t3はn3未満である少なくともt3メタデータ部分を識別するステップと、
前記識別されたt3メタデータ部分を回復するステップと、
ストレージにおける前記ファイルための前記回復したt3メタデータ部分を用いて前記メタデータを再構築するステップと、
前記プロセッサが、n2コンテンツシャードのt2がそれぞれのチャンクの再構築に必要であり、チャンクごとにt2はチャンクごとに異なる可能性があり、各t2は前記チャンクIDに対応する前記チャンクのための関連するn2より小さいチャンクごとの少なくともt2のそれぞれのコンテンツシャードの前記再構築されたメタデータのそれぞれのチャンクIDを識別するステップと、
ぞれぞれのチャンクンの前記識別されたコンテンツシャードのt2を回復するステップと、
前記回復されたコンテンツシャードを用いて前記n1の各チャンクを再構築するステップと、
前記それぞれのキーを用いて各再構築されたチャンクを復号し、前記コンテンツデータファイルに前記復号されたチャンクを再構成するステップと、
前記再構築されたデータファイルを前記ユーザに送るステップと、を備える、方法。
【請求項2】
コンテンツシャード数は、暗号化の時点でユーザが設定可能であり、各tに限定されず、nがt=2及びn=3である、請求項1に記載の方法。
【請求項3】
前記プロセッサ型サーバは、ユーザインターフェイス使用して入力されたデータをコントロールし、前記暗号化ファイルの前記リストは、選択のために前記ユーザインターフェイスに送られる、請求項1に記載の方法。
【請求項4】
前記ファイルは、関連するファイル属性を有し、各メタデータ部分は、さらに、前記ファイル属性を備え、前記選択されたファイルに関連するすくなくともt3メタデータ部分を識別するステップは、前記選択されたファイルのための前記ファイル属性を有するメタデータ部分を識別するステップを備える、請求項1に記載の方法。
【請求項5】
前記ファイル属性は、ファイル名、ファイルサイズ、及び、変更時間を備える、請求項4に記載の方法。
【請求項6】
再構築のための選択に利用可能な暗号化されたファイルのリストを送るステップは、サーバのストレージに保存されたメタデータ部分にアクセスし、前記アクセスされたメタデータ部分のファイル属性の少なくともファイル名に提示するステップを備える、請求項4に記載の方法。
【請求項7】
前記識別されたt3メタデータ部分の少なくとも1つは、前記サーバから離れたストレージから回復される、請求項6に記載の方法。
【請求項8】
前記プロセッサは、各チャンクIDごとにチャンクごとのt2それぞれのチャンクシャードより大きい前記再構築されたメタデータを識別し、前記t2それぞれのチャンクシャードより大きい再構築されたメタデータから少なくとも1つの回復レイテンシ及び回復コストに基づいて、回復のためのt2それぞれのコンテンツシャードを選択する、請求項4に記載の方法。
【請求項9】
前記メタデータは、シャミア秘密分散法(Sharmir’s Secret Sharing Scheme(SSSS))を用いてメタデータ部分に解析され、前記チャンクは、AES-256を用いて符号化され、前記チャンクは、リードソロモンコードを用いてコンテンツシャードに解析される、請求項1に記載の方法。
【請求項10】
ストレージに存在する暗号化されたファイルを安全且つ確実に再構築するためのプロセッサのための方法であって、予め暗号化された形態の前記ファイルは、コンテンツデータ及び関連するメタデータを有し、その結果、前記暗号化及び符号化されたコンテンツデータのためのストレージのための少なくとも1つの場所は、前記暗号化及び符号化されたメタデータのためのストレージのための前記少なくとも1つの場所と異なり、前記暗号法は、
前記ファイルの前記コンテンツデータ部分をそれぞれにチャンクIDが割り当てられたnコンテンツチャンクのチェーンに解析され、
チャンクごとの前記少なくとも1つの暗号化キーを使用し、前記コンテンツチャンクのそれぞれを暗号化し、
前記コンテンツチャンクのそれぞれを複数のコンテンツシャードに符号化及び解析し、
前記チャンクIDを暗号化し、
前記暗号化されたチャンクIDによって前記メタデータを増加させ、増加させたメタデータを生成し、
前記増加されたメタデータを暗号化のための複数のメタデータシャードに解析し、それによって、前記メタデータを変更し、
前記方法は、計算的及び理論的暗号法の組み合わせに基づく前記実施されたアルゴリズムのステップを逆にするステップを備え、
前記ファイルの前記コンテンツデータ部分は、それぞれにチャンクIDが割り当てられたnコンテンツチャンクのチェーンに解析され、前記コンテンツチャンクのそれぞれは、チャンクごとに少なくとも1つの暗号化キーを使用して暗号化され、それぞれの前記コンテンツチャンクは、複数のコンテンツシャードに暗号化及び解析され、前記チャンクIDは、暗号化される、方法。
【請求項11】
逆にするための前記アルゴリズムは、
前記暗号化されたチャンクIDで前記メタデータを増加させるステップと、
前記少なくとも1つのキーを複数のキーシャードに解析するステップと、
前記複数のキーシャードを暗号化するステップと、
前記暗号化された複数のキーシャードを前記増加されたメタデータに加えるステップと、を更に備える、請求項10に記載の方法。
【請求項12】
前記暗号化されたキーシャード及び前記チャンクIDは、別々に記憶される、請求項11に記載の方法。
【請求項13】
前記暗号化ステップは、シャミア秘密分散法(Sharmir’s Secret Sharing Scheme(SSSS))の使用を含む、請求項10に記載の方法。
【請求項14】
前記暗号化法は、計算暗号法を有し、リードソロモンコードの使用を含む、請求項10に記載の方法。
【請求項15】
前記コンテンツチャンクのそれぞれを暗号化するステップは、AES-256の使用を
含む、請求項10に記載の方法。
【請求項16】
前記メタデータストレージ、キーストレージ、及び、データストレージの数は、設定可能であり、3に限定されない、請求項10に記載の方法。
【請求項17】
前記メタデータシャード、キーシャード、及び、データシャードの前記パラメータ、t、及び、nは、別々に設定可能であり、t=2及びn=3に限定されず、tは、再構成するための必要なコンテンツシャードの数であり、nは、記憶するためのコンテンツシャードの数である、請求項10に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
(関連出願の相互参照)
本出願は、2019年5月22日に出願され、現在係属中の米国仮特許出願第62/851,146号の優先権を主張し、その全体は参照により組み込まれる。
【0002】
データ保護は、セキュリティ及びレジリエンスの観点からストレージ技術分野において周知の課題である。従来の解決策に関して、エラー訂正能力を改善するために、CD、DVD、QRコード(登録商標)などに広く使用されている消去コード(Erase Code)、及び、多項式補間技法を用いて秘密を保護するシャミア秘密分散法(Sharmir’s Secret Sharing Scheme(SSSS))などの周知の解決策がある。それらの(t,n)閾値プロパティは、オリジナルデータを再構成するために、nからのシェア(又はシャード)と呼ばれる少なくともtデータピースを必要とする。このプロパティは、n複製コピーと同様であるが、追加の制約tを導入するが、サービスの中断なしにn-tストレージノード障害を許容することから、オリジナルを再構成するときのデータレジリエンスを改善する。データ保護の観点から、(t,n)閾値プロパティは、また、少なくともtシェアがアクセス可能であり、有効である場合にのみ、オリジナルデータを明らかにする。
【0003】
消去コードは、伝達又はストレージ効率を最大化することにより、データ内のビットエラーを訂正することを目標とする。したがって、ほとんどのアプリケーションは、リードソロモンコード(Reed-Solomon(RS) Code)のような消去コードのみに基づいている。コンピュータストレージにおいて、消去コードは、異なるレベルの障害の下で信頼性の高いストレージコンポーネントのために設計された、特に、レベル5及び6のレイド(Redundant Array of Independent Disks(RAID))を実現するために使用されてきた。
【0004】
大規模データストレージシステムは、新しい技術的課題、即ち、メタデータの管理及び保護をもたらす。柔軟性及び拡張性を実現するために、データは、そのメタデータと共に分散ストレージに記憶される。メタデータは、必要なデータピースの場所に関する情報を含む。したがって、メタデータを確実且つ安全に記憶するためには、別のデータ保護層が通常必要である。
【0005】
例えば、SSSS及びRSコードが(t,n)閾値プロパティを有し、オリジナルデータを再構成するためにnから少なくともtデータシェアを必要とする場合であっても、シャミア秘密分散法(SSSS)及びRSは、データのセキュリティ及びエラー訂正をそれぞれ保護するために使用されてきた。それらは、それぞれ、暗号化及びエラー訂正を目的とする。
【0006】
SSSSは、暗号化キーを使用せずにシークレットを複数のシェアnに記憶する暗号化技術として設計されている。SSSSは、理論暗号化を保証する多項式補間を利用することから、tシェア未満でSSSSを破壊する方法は知られていない。
【0007】
【0008】
分散データストレージは、そのスケーラビリティ及びコスト効率のために現れた。周の分散データストレージシステムの1つは、ハドゥープファイルシステム(Hadoop File System(HDFS))であり、マップリデユース(MapReduce)などの並列データ作業負荷を実施するために非常に大きなデータセンターストレージシステム用に設計されている。HDFSは、データの3つの複製コピーを提案し、2つは、同じラックにおける2つの異なるノードに記憶され、別の1つは、異なるラック(ロケーション)における異なるノードに記憶されている。このストラテジは、障害局所性を活用することによって、データアクセス性を簡単に改善する。最近では、キーと値とのペアを使用してI/Oクエリを簡素化するために、オブジェクトストレージ解決策が使用されている。
【0009】
分散ストレージシステムには直接的な課題がある。第1の課題は、メタデータ管理に関するものである。データコンテンツは複数の記憶ノードに分散されることから、分散されたコンテンツのアドレスは、安全且つ信頼性の高い場所に維持される必要がある。これは、シングルポイント障害と性能ボトルネックとなる。メタデータの記憶は、性能ボトルネックが存在するディレクトリサービス及びメタデータのルックアップ操作に主に関連するため、システム性能に大きな影響を与える。たとえば、リスト(List)及びスタット(Stat)は、読み取り(Read)及び書き込み(Write)よりも頻繁に呼び出される。Ceph1は、サーバ間でメタデータリクエストクエリをより効率的に分散するために、メタデータサーバファームとメタデータのロケーションとを構築する方法を提案した(Ceph1:[1]S. A. Weil, S. A. Brandt, E. L. Miller, D. D. E. Long, and C. Maltzahn, “Ceph: A Scalable, High-performance Distributed File System”, 7th Symposium on Operating systems design and implementation (OSDI). Nov, 2006.)。Cephのハッシュ関数は、サーバファームにおけるメタデータクエリのシャードパスを最小化するように設計された。
【0010】
性能の問題だけでなく、分離の結果として、セキュリティ及びレジリエンスも難しいトピックである。データ暗号化技術を用いてメタデータを保護することは、余分な計算コスト及び性能劣化を引き起こす。
【0011】
重要なことは、従来の解決策では、ストレージ及び検索は同期プロトコルの下で行われるが、本発明では、以下に詳述するように、ストレージ及び検索は非同期で行われる。
【0012】
別の課題は、エンドツーエンドソリューションのためのアーキテクチャ上の柔軟性の制限である。ほとんどの分散ストレージシステムは、ネットワーク遅延が約1ms未満の同じデータセンタにおけるクライアント向けに設計されており、マルチデータセンターソリューションに悪影響を与える。例えば、クライアントデバイスがモバイルであるクライアント中心のアーキテクチャを採用した場合、クライアントデバイスはインターネット経由でストレージノードとメタデータサーバノードとに接続される可能性がある。クライアントはモバイルであるか、又は、データセンタの外部にいることから、システム性能は、データセンタ内部のストレージサービスに匹敵しない。
【発明の概要】
【0013】
本出願は、安全なストレージのためのネットワーク装備デバイス及びネットワーク装備ストレージノードを用いて、データ及びメタデータをチェーン化プロセスとして別々に暗号化する方法及びシステムに関する。ここで、プロセス及びシステムは、現在利用可能なレベルを超えて信頼性及びレジリエンスがある。本発明の方法及びシステムは、様々な暗号化/符号化技術を戦略的ストレージ技術及び解析技術と共に統合し、その結果、技術の集合の完全利点が得られる。本発明は、コンテンツデータをそのメタデータから分離し、コンテンツデータ暗号化チェーン化プロセスにおいて、本発明は、コンテンツデータを、チャンク化、暗号化し、シャード化し、記憶し、別々にメタデータを、シャード化し、記憶する。ここで、メタデータは、コンテンツデータ暗号化チェーン化プロセスに関連する情報で強化される。本発明の方法は、計算暗号法及び理論暗号法の両方を使用する。更に、プロセスは、好ましくは、コンテンツデータ又はプロキシサーバのサイトを含めて、ローカルに実施される。
【0014】
好ましい実施形態では、コンテンツデータはチャンク化され、次いで、各チャンクは、ランダムに生成されたキーベースのAES-256(又は均等物)で暗号化され、次いで、RS符号化され(又は均等物)、シャードに分割される又は「シャード化」される。ここで、シャードは、暗号化及び符号化に続いてファイルを解析することによって形成されるファイル部分である。メタデータは、SSSS暗号化されたチャンクIDを導入することによって変更され、次に、キーシャードと組み合わせてシャード化され、次に、SSSS暗号化キーシャードは、メタデータ暗号化プロセス中に導入される。少なくとも2つの暗号化方法を使用していることに注意することが重要である。暗号化方法は、(1)データシャードを作成するためのAES+RS、及び、(2)メタデータシャードに記憶されているチャンクID及びAESキーのためのSSSSである。
【0015】
簡単に言うと、本発明は、暗号化プラス符号化の複数の形態と、暗号化された(いくつかのデータについては符号化された)ファイルの分散ストレージとを備える。
【0016】
この方法は、従来の解決策に関して、セキュリティ及びレジリエンスの改善を可能にし、より迅速な回復を可能にし、また、データアクセスコントロールのためのストレージ管理及び構成に対するユーザの好みに基づいて制御可能である。
【図面の簡単な説明】
【0017】
【
図1】
図1は、推論及びイベント検出を特に示す本発明の推論及びイベント検出を示す。
【0018】
【
図2】
図2は、本発明のイベントログ収集及びトレーニングを示す。
【0019】
【
図3】
図3は、本発明のファイル及びメタデータ/キー暗号化チェーンを示す。
【0020】
【
図4】
図4は、システムコンポーネント、相互作用、及び、プロセスステップを示す。
【0021】
【
図5】
図5は、本発明においてデータ経路制御経路がどのように分離されるかを示す。
【0022】
【
図6】
図6は、本発明のファイルストアのステップバイステップ手順を示す。
【0023】
【
図7】
図7は、ブラックリストロストクライアントを示し、新しいクライアントを設定する。
【0024】
【
図8】
図8は、データストレージ障害によるファイルストアの手順を示す。
【0025】
【
図9】
図9は、メタデータ/キーストレージ障害によるファイルストアの手順を示す。
【0026】
【
図10】
図10は、本発明の「複製」データ及び「暗号化」データのメタデータの符号化を示す。
【0027】
【
図11】
図11は、ファイル暗号化及びメタデータ暗号化の例を示す。
【発明を実施するための形態】
【0028】
本発明は、データ暗号化/符号化のための計算暗号化技術に少なくとも部分的に基づいて、データ暗号化チェーン化モジュールと、理論暗号化技術によってデータ暗号化チェーン化モジュールに追従する異なるメタデータ/キー暗号化チェーン化モジュールと、の組み合わせを使用することによって、前述の暗号化/ストレージの課題を解決する。他でもコンテンツデータとは別にメタデータを記憶及び構成するが、それらは、単にコンテンツ及びメタデータを別々に記憶することに焦点を当てているだけであり、本明細書に記載される多くの重要且つ有益な属性及びアプローチを含んでいない。信頼性及びセキュリティは、メタデータ/キーストア/ストレージの重要な優先順位でもある。本発明は、コンテンツデータ及びメタデータ/キー暗号化の実用的な実施を、コンテンツのための少なくとも計算暗号化技術と、メタデータ/キーのための少なくとも理論暗号化技術とを用いて別々に(まだ相互に関連して)チェーン化プロセスにおいて実施することによって、技術を進歩させ、それによって、以前は安全なストレージのために使用されていなかったアーキテクチャを実施する。この解決策は、他の利点の中でもとりわけ、個々のユーザ、「グループ」ユーザ(共通のストレージを有するビジネスなど)、及び、マルチデータセンタユーザ(サービスのバックエンドに複数のデータセンタを有するユーザなど)に対して、速度、レジリエンス、及び、回復、並びに、セキュリティの大幅な改善を提供し、それによって、複数のユーザタイプに同時にサービスを提供する。計算暗号化技術と比較して、いくつかの暗号化アルゴリズムは、攻撃者によって数学的に破ることができない理論暗号化アルゴリズムとして証明されている。使用される計算暗号化アルゴリズムは、実際には、使用中のアプローチにとって十分に長いオリジナルデータを反転するための時間量に基づいて決定可能である。一方、理論暗号化アルゴリズムは、暗号化されたデータを破ることが必要な条件を満たさずに数学的に不可能であるという解決策を提供する。
【0029】
定義上、「符号化」という用語は、RSコード(又は均等物)を使用して各暗号化チャンクからデータシャードを生成し、SSSS(又は均等物)及び/又はチャンク暗号化に「暗号化」を使用する状況で使用される。「チャンク」という用語は、ファイルを操作せずに複数のピースに分割するコンテキストで使用される。「シャード」という用語は、出力に(t,n)閾値プロパティがある場合に使用される。暗号化されたチャンクをデータシャードに暗号化すると、出力に暗号が保持される。「メタデータシャード」は、暗号化されたチャンクIDとファイル属性とを含むデータとして定義される。「キーシャード」は、SSSS又は均等物を使用して各チャンク暗号化キーの暗号化データとして定義される。本出願は、クライアントをデスクトップ、ラップトップ、携帯デバイスなどのユーザ向けデバイスとして定義する。クライアントの拡張定義は、ユーザドメインにあるサーバマシンを含む。
【0030】
本発明では、データが最初にチャンク化され、暗号化され、次に、シャード化される。メタデータ及びコンテンツデータは、別々に暗号化及び符号化され、別々に記憶される。本発明の暗号化/符号化スキームは、暗号化スキーム、符号化スキーム、及び、ストレージスキームに部分的に基づいて、並びに、どのようにメタデータが認可されたユーザにアクセス可能なままであるかに基づいて、ストレージ効率、データレジリエンス、及び、セキュリティを劇的に改善する。本発明の方法は、物理的攻撃又はサイバー攻撃からの防止を意味するシステム信頼性、及び、ファイルの損傷後にファイルを回復する能力を意味するリジリエンスを維持又は改善する。
【0031】
本発明のアプローチは、暗号化及びストレージのための新規なシステムアーキテクチャと、コンテンツ及びメタデータの両方に対する新規な暗号化及び符号化アプローチとを含む。これらのアプローチによって提供される改善には、リモートストレージの待ち時間の克服、AI(人工知能)を使用するストレージ分散技術の進歩、とりわけ非構造化データの監視、コントロール、及び、管理に関する利点が含まれるが、これらに限定されない。
【0032】
この解決策は、ファイルコンテンツとそのメタデータ/キーという2つの別々の暗号化チェーンが作成される。それぞれが別々に暗号化され、符号化を含むファイルコンテンツで異なるアプローチが使用される。ファイルコンテンツ符号化アルゴリズムは、例えばAES-256のような周知のアルゴリズムを用いてコンテンツが既に暗号化された後にのみ実施されるRS符号化のような、性能集中情報分散アルゴリズム(計算暗号アルゴリズムとして知られる)を含む。ファイルコンテンツ符号化のプロセスにおいて、ファイルを暗号化するために、1つ以上のランダムに生成された暗号化キーと、潜在的に含まれるナンス(本発明において典型的にランダムに選択される初期化ベクトルを含む)とが使用される。暗号化キーを安全に記憶するために、キーは、メタデータファイルに記憶されるか、又は、一般的な方法ではなく、データシャードと一緒に別に記憶される。コンテンツデータからの暗号化キーの分離は、たとえアタッカーが既にデータ保存アクセス許可をとらえ、及び/又は、何らかの方法でキーを入手したとしても、アタッカーからコンテンツデータを保護する。本発明では、メタデータが追加の重要な情報を含むように修正されることから、本発明はセキュリティ集中情報分散アルゴリズム(理論暗号化アルゴリズムとして知られる)をメタデータに適用する。本発明は、チャンク(チャンクID)の各基準を暗号化し、SSSS又は均等物のみを使用して暗号化キーを使用する。SSSSの理論は、十分な数(例では、>=2)のシャードが再構成に利用可能な場合にのみ、メタデータ再構成が利用可能であることを保証する。
【0033】
従来のアプローチと比較して、本解決策は、既存の課題を解決し、システム性能を改善すると同時に、従来のストレージの必要性を低減する。ストレージシステムが達成する必要がある最も重要な目標は、データの有効性、レジリエンス、及び、信頼性である。データの有効性及びリジリエンスを向上させる最も一般的な解決策は、データバックアップである。データバックアップは、通常、冗長データを記憶するために、少なくとも2つのデータストレージ領域が必要である。本発明は、より少ない、典型的には、n/t倍のストレージ空間を必要とする。ここで、tは必要なシャード数であり、nは記憶されたシャード総数である。nの代わりにnからtを必要とするだけで、レジリエンスは劇的に改善する。従来の解決策では、RAID(Redundant Array of Independent Disks)がデータにエラー訂正コードを追加することで、データバックアップに対する略同じレジリエンスを保証しながら、ストレージ効率を改善させる。これらのかつての最先端ストレージ解決策(本発明に先立つ)は、有効性とレジリエンスとの両方を達成するために分散ストレージノードを使用する。それらは、消去コードのようなエラー訂正コードを利用し、データピースを分散ストレージノードに記憶し、符号化パラメータに基づいて一定数のストレージノード障害を可能にする。しかし、これらの解決策は、メタデータとコンテンツデータとの別のストレージに向けられているだけである。
【0034】
本発明は、メタデータ/キーストレージをコンテンツデータストレージから分離するが、この2つの間の関係性を保持する。更に、本解決策は、ユーザに様々なストレージバックエンドの最適且つ改善された時間構成を提供し、異なるベンダ及びユーザ自身のストレージノードからのクラウドストレージサービスなどの異なるタイプのバックエンドストレージを接続する。即ち、本発明は、単一のコンピュータのストレージ/ユーザのストレージにおいてさえ、ストレージタイプ(及びロケーション)に依存せず、複数のストレージタイプの同時使用を可能にする。このアプローチは、従来の解決策が多様なバックエンドストレージの編成に設計されていなかった、又は、編成に成功しなかったことから、追加の利点を提供する。バックエンドストレージの多様性のために、システム性能及び効率を改善するための構成は、エキスパートによって行われなければならない通常高度なタスであり、それによって、不安定な層及びリスクを従来の解決策に追加する。本解決策における編成層は、任意選択でAI支援最適化モジュールを用いて、構成タスクの抽象化を提供する。最適な構成は、コスト最適化、ストレージ効率化、セキュリティ改善、ポリシー構成の簡略化、高度な監視メトリック、及び、アラート管理を含むが、これらに限定されない。
【0035】
また、本解決策は、少なくとも部分的には、メタデータがどのようにストレージ用に構成され、どのようにストレージが選択されるかによって、長い待ち時間ネットワークにおけるメタデータ操作の待ち時間を低減する。従来の解決策では、使用されるストレージアプローチのために、回復待ち時間が主要な一般的な問題である。ファイルシステムの整合性を保ち、ファイルデータ操作性を最新の状態に保つために、ファイルディレクトリとファイル統計情報とを頻繁に検索する必要がある。即ち、リモートバックアップは、1回だけでなく、定期的且つ自動的に実行され、記憶されているコンテンツ及びメタデータが更新される。したがって、メタデータオペレーションのパフォーマンスは、全体的なシステムパフォーマンス及びユーザ経験に直接関係する。分散ストレージソリューションは、メタデータを検索する操作を必要とするため、長い待ち時間ネットワークを超えて配置されたメタデータサーバは、システム性能に関連するボトルネックとなる。従来発明と比較して、本解決策は、パフォーマンスを低下させることなく、インターネットなどの長い待ち時間のネットワークにおいてバックエンドストレージを使用することを意図している。本解決策は、ローカルマシンにおける潜在的なストレージを含む分散メタデータストレージに記憶される操作属性とコンテンツ参照とを分離することにより、メタデータ操作の待ち時間を低減する。
【0036】
本解決策は、非同期アプローチを実施することにより、長い待ち時間ネットワークにおいて、読み取り及び書き込みなどのファイルコンテンツ操作に関連するユーザエクスペリエンスをさらに改善する。通常、長い待機ネットワークは、ファイルコンテンツ操作のパフォーマンスに悪影響を与える。パフォーマンスは、ボトルネックリンクに依存する。ボトルネックリンクは、ユーザデバイスとバックエンドストレージと間のネットワークに存在することがよくある。本発明の文脈では、ユーザデバイスがユーザのデータのストレージにネットワークインターフェイスを装備するサーバ、携帯デバイス、又は、スタンドロンコンピュータとすることができる。ここで、ユーザは、個人又はグループ(企業など)とすることができる。一般的な同期アプローチは、ユーザエクスペリエンスに直接悪影響を与える。これは、ユーザが長い待機ネットワークにおけるバックエンドストレージからの応答を待機する必要があるためである。本解決策は、長い待ち時間のネットワークにおけるユーザデバイスとバックエンドストレージとの間の遅延を吸収するために非同期アプローチを使用する。バックエンドストレージからの応答を待機する代わりに、このアプローチは、特にリクエストが中間状態として局所的に行われている場合、結果が後で非同期に更新されるようにバッチプロセスとして同期するようにスケジュールされた早期応答を返す。
【0037】
以下は、上述の課題を解決し、他がどのようにデータを記憶するかという制限を克服するための本発明の追加の独特且つ新規な解決策について記載する。
【0038】
人工知能(AI)支援最適構成
本発明は、AIを使用してバックエンド構成を最適化し、多様なバックエンドストレージ及び構成に抽象化されたレベルのコントロールを提供する。本解決策は、人間に優しいインターフェイス(グラフィックユーザインターフェイス、GUI、及び/又は、ファイルシステムインターフェイスを含む)、及び、詳細なストレージ構成を導出するための推論モジュール及びインタプリタとして機能する言語を提供する。
図1参照。AIの適用は、(i)最適なデータ割り当てによってストレージコストを最適化すること、(ii)ユーザデータアクセスパターン、及び、ユーザ及びストレージのロケーション情報に基づいてデータアクセス待ち時間を最適化すること、及び、(iii)データ再構成のためのシャード数を動的に変更すること、によってセキュリティのレベルを高めることを含むが、これらに限定されない。AIアルゴリズムを使用する際、本解決策は、ユーザのファイル操作イベントから匿名ログを収集する。
図2参照。ファイル操作イベントログは、AIアルゴリズムを訓練するために、パターンアナライザによる分析のために記憶されてもよい。アルゴリズムが訓練されると、モデル及びパラメータは、アルゴリズムが実際に実施されるAI支援モジュールに配備される。AI支援モジュールは、ユーザデバイスからイベントを受信して、最適な構成、異常検出などを実施する。データロケーションは、記憶且
つ暗号化されたメタデータ内に保持され、AIに基づく調整に基づいて更新される。
【0039】
本発明の文脈における追加のAIアプリケーションのサンプルは、以下を含む。
【0040】
(1)最適なストレージ選択-性能
【0041】
システムは、各バックエンドストレージの経験速度を測定するために、ストレージ(及び潜在的により一般的なアクセス)に対するアップロード及びダウンロードイベントを収集する。シャードを記憶し、記憶するシャード数よりも多数のストレージを想定する場合、システムは、データ記憶待ち時間を最小限に抑えるために、より多くのシャードをより高速のバックエンドストレージに記憶する。待ち時間は最も低速なストレージのボトルネックによって決定されることから、各ストレージのシャード記憶待ち時間の最大値を最小値にする最小最大アルゴリズムにより、データアップロード待ち時間全体が削減される。ファイルを再構築するためにシャードをフェッチする場合、最小最大アルゴリズムは、各ストレージでの最大待ち時間を最小限に抑えるために、シャードが記憶されている全nのうち高速tストレージも選択する。
【0042】
(2)最適ストレージ選択-コスト
【0043】
システムは、ファイルアクセス頻度を収集して、アクセスが最も少ないファイルをコールドストレージに移動させる。議論のために、2層のストレージ、即ち、ホットストレージ及びコールドストレーがあると仮定する。ホットストレージは高速であるが高価であり、コールドストレージは低速であるが費用効果がある。既存のサービスは、コールドストレージに移動するデータを決定するために、記憶する時間又は最後のアクセスに基づいて、ストレージローカルに単純なポリシーを提供する。本発明は、nシャードを記憶し、nのうちのtを必要とし、オリジナルデータを再構成することから、決定は、コールド又はホットのバイナリ選択ではなく、いくつのシャード、シャードのどの部分、又は、どのシャードがコールド及びホットストレージに向けられるかに基づいている。本発明のシステムは、シャードアクセスイベント及び頻度を定期的に収集して、コールドストレージ移動コストを含むストレージの推定コストを計算する。本発明のシステムは、異なるタイプのストレージからの複数のパラメータを考慮する場合に、構成の複雑性を低減する。パフォーマンスメトリックを一緒に考慮すると、アルゴリズムは、その後、シャードアクセスターンに基づいて、コールドストレージからホットストレージにデータを移動させることができる。
【0044】
(3)ファイルアクセス異常検出
【0045】
自己相関は、本発明において適用され得るネットワーク化されたシステムの作業負荷における1つの特徴である。例えば、ネットワークトラフィックの研究は、トラフィックソース及び宛先の時間的及び空間的類似性に基づいて、規則的な(毎日のような)パターンを示す。本発明の一実施形態では、システムは、毎日及び毎週の類似性をほとんど示すファイルアクセスパターンに基づく自己相関を使用する。この特徴は、ディープラーニングと回帰法を用いた予測アルゴリズムの開発を可能にする。したがって、システムは、統計的に有意な不規則性又は逸脱などのパターンからの不規則性又は逸脱を決定することができ、したがって、悪意のあるユーザ又はマルウェアによる異常なファイルアクセスをシステム管理者に警告することができる。
【0046】
長い待ち時間ネットワークでのメタデータ操作の待ち時間の削減
現在の解決策は、断片化されたファイルを複数のバックエンドストレージに記憶することから、メタデータは、オリジナルファイルを再構築するために必要な情報で強化される。メタデータは、ファイルサイズ、変更時間、アクセス時間などのファイル属性も通常記憶する。ファイル操作呼び出しの頻度の観察に基づき、ファイルコンテンツ操作が呼び出されるよりもメタデータ操作が頻繁に呼び出されることを観察した。その結果、メタデータ操作の待ち時間が短いと仮定してファイルシステムは設計される。したがって、従来の解決策は、障害による損失の不必要なリスクをもたらすローカルエリアネットワークにおけるメタデータストレージ(又はサーバ)を必要とした。しかしながら、本解決策は、分散データ暗号化の特性を維持しながら、長い待ち時間ネットワークに適用可能なメタデータを設計する。本解決策のメタデータは、「複製」データ及び「暗号化」データから構成される(
図10参照)。複製データは、ファイルのコンテンツに関連しない情報を含む。ファイル名、サイズ、変更時間、及び、その他のファイル属性は、複製データに記憶される。これにより、システムは、複数のメタデータシャードを収集し、データを復号化することなくデータを取得できる。一方、ファイルコンテンツ、チャンクID、及び、チャンク暗号化キーに関連する情報は、暗号化データとして記憶される。メタデータと暗号化キーとのための分散暗号化の特性を保持するために、本解決策は、ファイルコンテンツのために本発明で必要とされるものよりも強力なセキュリティレベルのメタデータを達成するSSSS又は均等物を使用する。SSSSは暗号化キーを必要としないことから、復号化は複数のデータシャードの収集のみを必要とする。したがって、本発明は、信頼性の根拠として、ストレージソリューションによって提供される多様な認証及びセキュリティソリューションを用いて分散ストレージを活用する。
【0047】
複製データと暗号化データとの分離を使用したメタデータシェアの分散は、暗号化されたメタデータシャードの1つをローカルエリアネットワークのユーザデバイス又はメタデータサーバなどのローカルデバイスに保存することによって、メタデータ操作のパフォーマンスを改善させる。更に、本解決策は、メタデータシェアを冗長コピー及び暗号化されたデータシェアとして異なるロケーションに記憶することを可能にする。
【0048】
OpenDir及びスタット(Stat)-メタデータ操作例
ユーザがディレクトリを開くと、ファイルシステムは、その子の情報、即ち、ファイル及びディレクトリのリストを返すべきである。ターゲットディレクトリの各子の情報を一覧表示するには、メタデータストレージは、オブジェクト名又はプレフィックスに基づいてメタデータ選択機能を提供する必要がある。本発明は、ネイティブディレクトリ構造、キー値ストレージ、及び/又は、データベースシステムを用いてディレクトリシステムを実施することができる。1セットのメタデータシェアは、ローカルに記憶されることから、子ディレクトリとファイルとの識別は、リモートメタデータファイルなしで実施される。つまり、本ユーザは、ローカルデバイスに記憶されているメタデータを「ロック解除」し、回復したいファイルのみを識別することができる。
【0049】
次の操作では、スタット操作がメタデータシェアのセットに複製データとして記憶されているファイル属性を返す。したがって、スタット操作は、軽量な方法、即ち、ローカルデバイスに記憶された対応するメタデータシェアを調べる方法で実施される。
【0050】
読み込み-ファイルコンテンツ操作例
本発明では、チャンクIDはSSSSのような技術を用いて暗号化されることから、チャンクIDを復号するには2つ以上のメタデータシェアを用いる必要がある。暗号化技術はSSSSに限定されない。この手段では、少なくとも1つのメタデータシェアをリモートメタデータサーバから取得する必要がある。これは、シンプルなメタデータルックアップ操作よりも時間がかかる。しかしながら、リモートストレージからメタデータシェアをダウンロードする時間は、ファイルコンテンツのダウンロードよりも大幅に短くなる。また、メタデータ操作とは異なり、ファイルコンテンツ操作は、メタデータ操作ほど頻繁にリクエストされない。したがって、リモートサーバからのメタデータダウンロードの余分な遅延は、ダウンロード完了時間に関してファイル読み取り操作の重要な要因ではない。
【0051】
リモートストレージへの非同期コンテンツ転送
本解決策は、暗号化されたコンテンツをリモートストレージに送信する前に、暗号化されたコンテンツをユーザデバイスにステージ化することによって、ユーザエクスペリエンスを改善する。したがって、本解決策は、結果をユーザに早期に返し、データをバックエンドストレージに非同期に送信することによって遅延を吸収する。例えば、現在のファイルシステムインターフェイスがファイルを書き込むなどのファイルコンテンツ操作のリクエストを受信した場合、この操作は、符号化されたコンテンツをステージ化されたステータスとしてローカルバッファに記憶した後、結果をユーザインターフェイスに返す。ステージ化されたステータスは、バックグラウンドで非同期に完了するようにバッチスケジュールされる。この設計は、ユーザデバイスとリモートストレージとの間の待ち時間をユーザ対話から切り離すことから、ファイルを書き込むときのユーザエクスペリエンスを大幅に改善する。
【0052】
リモートストレージからのファイルコンテンツの事前フェッチ及びキャッシュ
リモートストレージとローカルストレージと間の待ち時間に大きなギャップがあることから、事前フェッチとキャッシュとにより、読み取り操作の完了時間とユーザエクスペリエンスとが改善する。ファイル書き込み操作とは異なり、ファイル読み取り操作は、通常、ユーザのファイル読み取り直後にデータコンテンツを配信する必要があるオンデマンド操作である。リモートストレージから必要なデータピースをダウンロードするための遅延を低減するために、本解決策は、モデルが本発明のAIモジュールによって計算されるユーザのファイルアクセスパターンに基づいて、必要なデータピースを事前フェッチする。このモジュールは、時間的自己相関、ユーザID、アプリケーションのタイプ、キャッシュストレージの容量などを利用して、キャッシュされたデータの寿命及び置換、データの事前フェッチなどを決定する。
【0053】
従来の解決策は、複数のバックエンドストレージを使用し、消去コード又はSSSS(又はそれらの変形例)を使用することによって統合層を提供する分散ストレージシステムに向けられていた。WAN及びLANに多様なバックエンドストレージを導入したものもあるが、管理性及び効率性の改善は未解決の問題のままであった。本解決策は、WAN及びLANに配備された分散ストレージシステムにおけるこれら及び他の問題に対処し、それらの構成性及び性能(即ち、待ち時間)を改善する。コスト、性能、及び、セキュリティに関する多様なバックエンドストレージ構成の複雑性を克服するために、本発明は、イベントログコレクタ(インターフェイス)、データアナライザ(アルゴリズム生成)、アルゴリズムトレーナ(パラメータチューナ)、モデルデプロイヤ(バッチ処理)、及び、実施部(プロセッサ)を含むAIモジュールを使用する。(
図1、
図2参照)。
【0054】
また、本解決策は、分散ストレージソリューションにおける新たな課題、即ち、バックエンドストレージ及びメタデータサーバが長い待ち時間ネットワーク(例えば、インターネット)に展開される場合のメタデータ操作及びファイルコンテンツ操作の長い待ち時間に対処する。本解決策は、コンテンツ操作よりも頻繁に呼ばれるメタデータ操作の待ち時間を低減することにより、ユーザエクスペリエンスを改善する。これは、ローカルストレージに複製されるメタデータの一部を一度に記憶/検索できるようにすることにより、ユーザエクスペリエンスを改善する。その間、本解決策は、SSSS(又は均等物)を用いてコンテンツ関連メタデータ(例えば、チャンクID)を暗号化し、メタデータを分散方式で安全に保つ。ファイルを書き込むときにリモートストレージに非同期ファイルコンテンツを転送すると、データストレージ手順がユーザ側の手順から切り離され、リモートストレージへのコンテンツアップロードタスクを完了する前に、ユーザインターフェイスへの応答が早く改善する。ファイルを読み取るときのAI支援事前フェッチとキャッシュとは、ユーザのファイルアクセスパターン、アプリケーションのタイプなどに基づいて、ローカルデバイスに必要なデータコンテンツを配置するためのより良い予測を提供する。
【0055】
また、本解決策は、RS符号化(又は均等物)を直接使用してコンテンツを符号化することに加えてコンテンツを暗号化し、RS符号化は、暗号化チャンクを符号化するために使用される。このような符号化は、少なくとも効率的なストレージを定式化するために有用である。したがって、より強力な暗号化を提供するが、より多くのオーバーヘッドを提供するSSSSのような別のアルゴリズムを使用する代わりに、本解決策は、AES-256(又は均等物)を使用してチャンクコンテンツを暗号化し、その暗号化キーをメタデータに別々に記憶する。
【0056】
RSコードは、SSSSのような他のアプローチと比較して、ストレージ及び計算オーバーヘッドの点で効率的である。本解決策は、符号化の前にコンテンツを暗号化することによって、RSコードのセキュリティ上の弱点を既に克服しているので、効率性及び性能に焦点を当てた他の同様のアルゴリズムを使用することができる。
【0057】
SSSS(又は均等物)は、メタデータの暗号化に使用される。メタデータは、コンテンツ暗号化のルーツキーである。本発明は同じ(t,n)又は同様の閾値プロパティを提供する場合に他のアルゴリズムを使用することができるが、本発明は、コンテンツデータとは別々に暗号化され、記憶されるメタデータを保護するために、強力な暗号化アルゴリズムを使用し、必要とする。SSSSは、理論的にその安全性を保証することから、アタッカーが十分な破片を有していない場合、強引な攻撃は不可能である。メタデータの全体的なサイズは、ファイルコンテンツよりもはるかに小さいことから、暗号化のオーバーヘッドは無視できる。
【0058】
コンテンツ暗号化の場合、SSSSは、n時間のストレージオーバヘッドを示すが、RSは、n/t時間のストレージオーバヘッドのみを示す。しかしながら、RSは、暗号化のために設計されていないことから、アルゴリズムのランダム性が制限されている(静的であり、逆にするのが比較的容易である)。RSコード上のコンテンツチャンクにAES-256(又は他の暗号化)も使用することにより、解決策は、n/t倍のストレージオーバヘッドを達成しながらランダム性を改善する。AES-256(又は均等物)暗号の暗号化キーを保護するために、2番目のチェーンは、SSSSを使用してキーを暗号化し、キーシャードをメタデータシャードに記憶する。
【0059】
ファイルコンテンツは、いくつかの理由でチャンク化される。第1に、チャンクは、複製されたコンテンツを識別する能力を提供し、その結果、コンテンツの1つのコピーのみをその基準と共に記憶することによって、記憶効率を改善することができる。第2に、チャンクはセキュリティを改善する。アタッカーは、ファイルコンテンツを取得するために必要なチャンクの基準を知る必要がある。第3に、それはデータストレージ及びそのロケーションの柔軟性を改善する。
【0060】
本発明のシステムは、更に、ストレージアーキテクチャ及び環境にかかわらず、エンドツーエンドセキュリティを実施することに向けられている。ファイル暗号化/復号化操作は、メタデータ及びデータ読み取り/書き込み操作に統合され、これにより、中間者攻撃及び性能劣化の脆弱性が最小限に抑えられる。本発明のシステムアーキテクチャは、また、コントロールパスをデータパスから分離することによって、エンドツーエンドのセキュリティを強化する。
【0061】
図3参照。本発明のファイル符号化アルゴリズムは、暗号化チェーンと呼ばれ、データ/メタデータ暗号化をデータ記憶戦略と統合することを目的とする。これは、たとえ敵が無限の計算能力を有していたとしても破壊することができない情報理論暗号と、実用的であるのに十分短い期間内に現在の計算技術で破壊することができない計算暗号との組み合わせである。
【0062】
従来の解決策とは異なり、本発明のアーキテクチャは、データがクライアント(例えば、プロキシサーバを参照する時「クライアント」という用語を使用し、スタンドアロンサーバ又はコンピュータ又は他の計算デバイスとすることできる「ユーザ装置」という用語は、ここでは、様々な種類のクライアントを含むことが予測される)とデータ/メタデータ/キーストレージとの間で集約される単一点がなく、それによって「中間者」攻撃に対する脆弱性が排除されることに注意されたい。暗号化チェーンは、プロキシサーバなしでユーザデバイスで開始される。暗号化チェーンは、既存システムの修正を最小限に抑え、ユーザエクスペリエンスの修正を削減するために、メタデータ及びファイルI/O操作にシームレスに統合される。暗号化チェーンでは、ストレージノードからデータを収集する場合を除き、メタデータ及びファイル操作を変更する必要はない。
【0063】
本発明の暗号化チェーンは、ファイル暗号化チェーンとメタデータ/キー暗号化チェーンとの2つの部分から構成される。ファイル暗号化チェーンは、コンテンツファイルのチャンクを含む。本発明の方法は、各チャンクを暗号化し、暗号化されたチャンクをシャード化する。各チャンクは、通常、複製されたピースを識別するために使用することができるコンテンツファイルのスライスである(KyoungSoo Park, Sunghwan Ihm, Mic Bowman, and Vivek S. Pai, “Supporting practical content-addressable caching with CZIP compression” Proceedings of the 2007 USENIX Annual Technical Conference, Santa Clara, CA, USA, June 17-22, 2007.)。本方法では、メタデータにロケーションを記したストレージ領域を節約するために、重複ピースのうち1つのコピーのみを記憶する(この技法をデータ重複排除と呼ぶ)。各チャンクは、RSコードを使用して複数のシャードとして暗号化される。RSコードは、一般に暗号化に使用されないことから、チャンクは、少なくとも1つの暗号化キーで暗号化される。チャンクは、チャンクがシャードとして符号化される前に、1回限りの使用のためにランダムに生成されたキーである。暗号化キーは、メタデータ/キー暗号化チェーン内に安全に記憶される。キーとチャンク識別子(チャンクID)とは、SSSSによって暗号化される。チャンクIDシャードの各セットと暗号化キーシャードの各セットとは、メタデータとキーシャードファイルとの形成でそれぞれメタデータストレージノードとストレージノードとに分散される。このプロセスでは、複数のストレージノード間でのメタデータ、キー、及び、データシャードの割り当てを計算するために、一元化された部品は必要ない。以下のセクションは、
図4を参照して、ファイル及びメタデータ/キー暗号化チェーンの詳細を説明する。
図10は、さらなる例を提供する。
【0064】
【0065】
【0066】
【0067】
【0068】
チェーンの復号化
データ復号化は、暗号化チェーンの逆の手順である。通常のファイル操作に必要な手順である異なるメタデータ/ストレージから暗号化されたメタデータ/キーを収集することで、暗号化キーとチャンクIDとを復号化するために必要なキーシャードが収集される。次に、暗号化されたチャンクを再生成するために必要なデータシャードが収集される。最後に、オリジナルファイルは、チャンクを復号し、それらを順番に連結した後に再構成される。
【0069】
図4は、システムコンポーネント、相互作用、及び、処理ステップを含むシステムアーキテクチャの一例を示す。ユーザデバイスは、コンテンツとメタデータとを暗号化(及び復号化)し、ユーザデバイスとストレージとの間でデータを同期する。論理I/Oモジュールは、ユーザと通信するインターフェイスである。論理I/Oモジュールがオープン、書き込み、読み取りなどのファイルI/Oリクエストを受信した場合、イベントハンドラは、ネイティブファイル操作イベントを奪いリクエストを処理し、ファイル処理のアドオン暗号化チェーンを実施する。エンドツーエンドのセキュリティを確実にするために、本発明は、データコンテンツをストレージに記憶する前に、ファイル暗号化を実施する場所として、フラッシュ(Flush)、Fsync、及び、クローズハンドラ(Close Handlers)を実施することが好ましい。
【0070】
ラウンドロビン、ランダム、及び、最小最大アルゴリズムなどのアルゴリズムを含むが、これらに限定されない複数の使用可能なアプローチがある。本発明の一実施形態では、最小最大アルゴリズムが経験的データ伝達速度を使用して、各ストレージにおける最大伝達時間を最小化し、ストレージに伝達する。アップロードするとき、ここで実施されるように、最小最大アルゴリズムは、各チャンクについて記憶すべきシャード数である符号化パラメータnよりも多くのストレージが利用可能である場合、より速いストレージにより多くのシャードを記憶する。ダウンロードするとき、現在の最小最大アルゴリズムは、対応するシャードが記憶されているnストレージからチャンク、ストレージを再構成するのに必要なシャード数である高速tを選択することによって、より有用である。即ち、nシャードに分散されるファイルを再構築する場合、tチャンクが必要である。
【0071】
ファイル暗号化チェーンのリンクされたチェーンとして、メタデータ/キー暗号化チェーンは、複数のメタデータとキーシャードとを生成する。これらのシャードは、メタデータシャードにおいて1つ以上の暗号化されたチャンクIDやSSSSによる暗号化キーなどの暗号化情報を含む。暗号化されたメタデータファイルの1つは、ユーザデバイスのメタデータストレージに記憶される。具体的には、メタデータシャードファイルのコピーをローカルデバイスに記憶して、メタデータ操作の待ち時間を削減する。その他のメタデータ及びキーシャードファイルは、ユーザの好みに応じて単一のストレージノード又は論理的/物理的に独立したストレージノードのいずれかで設定できるメタデータ/キーストレージに記憶される。
【0072】
同期処理ユニット411は、その知識ベースに基づいて、ユーザデバイスとストレージとの間のデータ送信のタイミングを算出する。また、同期処理ユニットは、その知識ベースを使用してシャードと暗号化されたメタデータファイルとのロケーションを選択/識別する。このタスクは、コスト最適化、パフォーマンス最適化、セキュリティ最適化などを目的とする。
【0073】
データ送信リクエストは、リクエストキューにプッシュされ、コネクタは、対応するリクエストをフェッチしてネットワーク経由で実際のデータストレージを実施する。ストレージからの応答メッセージは、データストレージリクエストの非同期応答をシリアル化する応答キューにプッシュされる。応答がフェッチされ、シャードと暗号化されたメタデータ記憶ステータスとが更新される。I/Oリクエストでデータ送信の同期が必要な場合、I/Oイベントハンドラは、対応する応答が収集されるまで待機する。
【0074】
このシステムは、暗号化チェーンを統合し、情報分散理論を適用することにより、記憶されたデータのエンドツーエンドセキュリティを提供する。エンドツーエンドデータセキュリティは、(1)エンドユーザデバイスとストレージバックエンドロケーションとの間の遅延がデータセンタ内のマシン間の遅延よりもはるかに大きく、(2)システムの性能が最もコントロールされた構成要素によって制限され、(3)リソースのコントロール及び環境設定がコントロールされるため、難題である。クライアントとメタデータサーバと間のネットワーク待ち時間が大きいと、メタデータ操作のパフォーマンスに影響する。
【0075】
メタデータは、ファイルコンテンツを組み立てるために必要な重要な情報を含むことから、エンドユーザのデバイスにファイルコンテンツ全体を記憶すると、非常に危険にさらされる可能性がある。メタデータが代表サーバ(又はサーバ)に記憶されている場合、データルックアップ操作よりも頻繁に呼び出されるメタデータルックアップ操作は、システムパフォーマンスのボトルネックになる。一例として、セフの方法論(Ceph’s methodology)は、メタデータサーバ間でオーバーヘッドのバランスをとりながら、コンテンツストレージと論理的に異なる分散サーバにメタデータを記憶することを含む。エンドツーエンドソリューションにおける課題は、クライアントとサーバとの間の遅延が(略)最適又は近似性能を保証するシステムを設計するのに十分に予測可能でないことである。符号化/復号化、複製されたコンテンツ(主にデータ重複排除と呼ばれる)の識別、及び、データ/コントロールチャネルの設計などの機能の分解は、ハードウェアの計算容量、ネットワークの予想待ち時間、及び、操作の頻度を考慮して、システムの機能及び性能を慎重に設計すべきである。
【0076】
本発明における「nからのt」(t out of n)アプローチに関して、そのようなアプローチは、複数の方法で複数回重要である。まず、本発明では、アイテムがnユニットに解析される回数が多い。しかしながら、それぞれの場合において、nは異なる値であってもよい。同様に、それぞれの異なるtは異なる値であってもよい(但し、2つ以上のそのようなt及び/又は2つ以上のそのようなnも同じ値であってもよい)。本発明における「nからのt」アプローチは、好ましくは、解析されたデータコンテンツピース数に向けられ、解析されたメタデータピース数に分けられ、コンテンツデータの各暗号化されたチャンクのデータシャードピース数に別々に向けられる。
【0077】
再構成に関しては、「nからのt」アプローチが複数回重要になる。
【0078】
ファイル暗号化チェーンとメタデータ/キー暗号化チェーンとの定式化は、通常、データ処理ユニットで実施される計算タスクである。前述したように、ファイル暗号化チェーンは、データシャードを符号化/復号化し、その後、同様の機能を提供するメタデータ/キー暗号化チェーンが続く。データシャードは、シャードがデータストレージに同期されるようにスケジュールされるまで、シャードバッファに一時的に記憶される。
【0079】
再び、
図4はシステムの概要を示す。このクライアント中心のアーキテクチャは、考えられる展開スキームの一例であり、ファイル及びメタデータ/キー暗号化チェーンを作成し、暗号化されたデータをストレージバックエンドに分散するエンドユーザデバイスに展開されたコンポーネントを示している。クライアントは、PC、ラップトップ、又は、携帯デバイスのようなエンドユーザデバイスに限定されず、一例として、エンタープライズサーバであってもよい。
【0080】
図4は、本発明の文脈におけるユーザデバイス401とストレージプール402との間の関係を示す。ユーザデバイス401は、少なくとも示された機能を実施するようにプログラムされたプロセッサ又はプロセッサのグループであってもよい。図示のように、ユーザデバイス401は、暗号化、チェーン化、及び、復号化の役割も果たす。ユーザデバイス401は入出力手段を備え、入出力手段は、I/Oリクエストエンジン423(プロセスステップ1)と、入出力イベントハンドラ403と、少なくとも1つのデータ処理エンジン/ユニット405と、ストレージエンジン408及び関係ストレージと、同期処理ユニット又はエンジン411と、リクエストキューイングエンジン415と、ネットワークインターフェイスエンジン416と、応答キューイングエンジン422と、を備える。入出力イベントハンドラ403は、(2)少なくとも1つの入出力論理モジュール404を有し、ファイルコンテンツを送る。データ処理エンジン/ユニット405は、(3)ファイル断片化、チャンク及びデータシャードの符号化、復号化、暗号化、及び、復号化を含む機能を実施するファイル暗号化モジュール406と、(4)メタデータファイル及びキー断片化、シャードの符号化、復号化、暗号化、及び、復号化を含む機能を有するメタデータ/キー暗号化モジュールと、を備える。ストレージエンジン408及び関係ストレージは、(5)アップロード及びダウンロードのためのメタデータ/キーシャード及びデータシャードを特定するためのメタデータ/キーストレージ410と、シャードバッファ409とを備える。同期処理ユニット又はエンジン411は、(6)集合的にキューイングをリクエストするスケジューラ412と、ストレージセレクタ413とを備える。リクエストキューイングエンジン415は、(7)リクエストを割り振る。ネットワークインターフェイスエンジン416は、データ418及びメタデータ/キーストレージ417のためのコネクタを有し、(8)ネットワークにデータリクエストを送る。リスポンスキューイングエンジン422は、(9)データ結果を送り、(10)シャード及び暗号化メタデータ/キー状態を更新する。ユーザデバイス401は、分散されてもよく、データ419及びメタデータ/キー420ストレージ並びにバックアップストレージ421を含む様々なリモート外部ストレージプール402と通信する。
【0081】
再構成プロセスは、チャンク化、暗号化、シャード化、及び、分散プロセスの逆の手順であり、グラフィックユーザインターフェイス(Graphical User Interface (GUI))を備えたユーザアプリケーションとして、及び/又は、一般的なファイルシステムインターフェイス(例えば、POSIX)を使用して、実施することができるが、これらに限定されない。本発明では、GUI又はファイルシステムインターフェイスがファイル名及び変更時間によってファイルをリストすることが好ましい。また、他のより一般的なファイルシステムインターフェイスもサポートする(ファイル変更時間は、メタデータ内のファイル属性として記憶されることが好ましい)。これらのインターフェイスは、ファイル名、変更時間、アクセス時間、サイズのような必須のファイル属性を必要とする。したがって、インターフェイスに表示されるすべてのファイルは、ユーザインターフェイスとシステムインターフェイスとのそれぞれがファイルを識別できるように属性を有する。
【0082】
ファイルの再構成では、最初にメタデータを再構成する必要がある。メタデータのt部分は、メタデータを再構成するために識別される必要がある。メタデータは、コンテンツデータのチャンクデータを含んでいることから、各チャンクを再構築するために、チャンクによって、チャンクごとにtシャードを識別する必要がある(この場合、各tと各nとは、チャンクごとに異なる場合があるが、メタデータの場合は、「nからのt」(t out of n)と異なる必要はない)。各チャンクは、少なくとも関連するキーを使用して再構築され、事前にメタデータに記憶され、暗号化される。各チャンクが再構築された後、チャンクは、ファイル全体を再構築し、再び使用可能にするために、最初に行われた通りに配置される。
【0083】
前述したように、本発明で使用可能な多数のストレージがあり、好ましい実施形態では、再構成に必要なアイテムがよりアクセス可能な(潜在的により高価である)領域に記憶される。さらに、そのようなアイテムは、上述の例のように、コストの考慮事項に基づいて、あるロケーションから別のロケーションに移動することができる。その結果、解析されたデータコンテンツとメタデータ要素との進行中の記憶域リロケーションのための実施されたアルゴリズムが存在することもある。それにもかかわらず、nアプローチのうちの複数のtを含む再構成プロセスは、依然として好ましい実施形態である。
【0084】
【0085】
【0086】
ファイル名と変更時間とのペアは、ファイルの再構築に必要な初期の組み合わせである。
図4を参照すると、エンドツーエンドのセキュリティを保証するために、再構成は、ファイル名及び変更時間を指定するファイルオープン操作と統合される。メタデータ/キー暗号化モジュール407は、メタデータ及びキーシャードの収集を同期処理ユニット411にリクエストする。ストレージセレクタモジュール413は、待ち時間及びコストを含むがこれらに限定されない最適化パラメータに基づいて、ターゲットメタデータ/キーストレージを選択する。好ましいパラメータが設定されていない場合、ストレージはランダムに選択される。メタデータ/キー暗号化モジュール407は、チャンクID及び暗号化キーを対応するチャンクに復号する。ファイル暗号化モジュール406は、チャンクIDによって指定されるデータシャードの収集をリクエストする。データシャードのストレージ選択は、暗号化の場合と同じである。ファイル暗号化モジュール406は、データシャードを使用して暗号化されたチャンクを再構築する。次に、暗号化されたチャンクは、暗号化キーを使用してファイルのプレーンチャンクに復号される。
【0087】
コントロールサーバは、クライアントのステータスをコントロール及び監視するためにクライアントを監視する。コントロールサーバは、データストレージ、メタデータ/キーストレージ、メタデータ/キーバックアップストレージも設定するが、コントロールサーバは、ストレージバックエンドのプロキシとして機能しない。コントロールサーバには、データストレージ設定、メタデータストレージ設定、キーストレージ設定、ステータス監視、ポリシー構成、アクセスコントロールなど、全体的な構成をコントロールする管理者ポータルも用意されている。コントロールサーバは、ユーザと装置との初期認証も担当する。コントロールサーバは、認証手順をLDAPなどの既存のコンポーネントと統合することもできる。
【0088】
データストレージは、ユーザデータが実際に記憶されるロケーションである。データストレージ上にコード実施はない。したがって、データストレージは、クラウドサービスに限定されず、ネットワークを備えたレガシーストレージノードのいずれかを含むことができる。メタデータストレージとキーストレージとは、ファイルメタデータと暗号化キーとが記憶されるロケーションである。データストレージ、メタデータストレージ、及び、キーストレージは、別々の(t,n)パラメータで構成することができる。メタデータ及びキーストレージは、データストレージと同様の要件があることから、データストレージノードをメタデータ及びキーストレージに使用することもできる。ストレージは、性能及信頼性要件、並びに、データ管理ポリシーに応じて構成することができる。メタデータ/キーバックアップストレージは、クライアントデバイス上のメタデータ/キーシャードと同じメタデータ/キーシャードの複製を記憶する。メタデータとキーシャードとはSSSSによって暗号化されることから、同じシャードのセットを複製しても、データ侵害のリスクは増加しない。これらのデータストレージ、メタデータ/キーストレージ、及び、メタデータ/キーバックアップストレージは、LAN、インターネット、又は、ハイブリッド経由で展開できるが、最適な展開のためのガイドラインがある。コントロールサーバは、クラウド又はLAN;LANにおけるメタデータ/キーバックアップストレージ;又、クラウド又はクラウドとLANとの間のハイブリッドにおけるデータストレージ及びメタデータ/キーストレージに存在する場合がある。
【0089】
データパスとコントロールパスとの分離
図5は、本システムにおいてデータパスとコントロールパスとがどのように分離されるかの概要を示す。メタデータの分離に加えて、コントロールサーバとクライアントと間のコントロールパス(長い破線)は、クライアントとデータストレージと間のデータパス(実線)から論理的又は物理的に分離される。
【0090】
データパスとコントロールパスとを分離すると、コントロールサーバの最高特権を有する管理者であっても、ユーザデータにアクセスできなくなる。クライアントと各データストレージとの間の各データパスは、各データストレージノードによって提供される多様なセキュリティメカニズムを利用することによって、独立して保護される。データパスからのコントロールパスの独立性により、コントロールサーバの配備は、セキュリティ及び性能構成に影響を与えることなく、柔軟なプロセスである。
【0091】
データシャードの記憶
エンドツーエンドセキュリティを確保するために、I/Oイベントハンドラは、フラッシュ(Flush)及びFsync(Flush及びFsyncは、メインメモリにおけるデータを物理ストレージデバイスに同期させるファイルシステムコールである。Fsyncは、Flushの低レベルシステムである。www.man7.org/linux/man-pages/man2/fdatasync.2.html)ファイルシステムコールイベントをインターセプトして、データコンテンツをストレージノードに保存する前にファイル暗号化を実施する。暗号化されたチャンクのデータシャードは、データストレージへの伝達がスケジュールされるまで、シャードバッファにバッファーされる。したがって、本発明は、フラッシュが呼び出された後の中間データ暗号化を保証する。スケジューラは、コスト最適化、パフォーマンス最適化、及び、セキュリティ最適化などの構成に基づいて、データシャードのロケーション及び伝達のタイミングを決定する。例えば、一貫性のあるハッシュアルゴリズムは、データストレージを取り付け/取り外しするときに、シャードリロケーションコストを最小限にする。さらに高度なアルゴリズムを開発し、展開することができる。
【0092】
暗号化メタデータ/キーの記憶
メタデータ/キー暗号化チェーンは、ファイル暗号化チェーンの完了後にトリガーされる。暗号化キーは、キーストレージへの伝達がスケジュールされるまで、ローカルメタデータ/ストレージでシャード化される。データ及びキーシャードをデータ及びキーストレージノードに記憶する場合とは異なり、メタデータの記憶は、フラッシュ(Flush)、Fsync、又は、クローズ(Close)コールとの同期プロセスである。したがって、暗号化されたメタデータの記憶に失敗した場合、フラッシュ(Flush)、Fsync、又は、クローズ(Close)は失敗コードを返す。
【0093】
ステージ化データ
シャードをストレージバックエンドにアップロードする前にエンドユーザデバイスでデータをステージ化すると、アップロードの遅延を吸収するだけでなく、データストアをスケジュール化する自由度が増すことによって、ユーザエクスペリエンスが向上する。本発明のストレージでは、ステージ化されたデータの状態は6つある。プロセスを続行するにはメタデータを記憶する必要があるため、ステージ4はステージ3と同期する必要があることに注意する。
【0094】
ステージ0:開始準備完了
【0095】
ステージ1:ランダムに生成された暗号化キーでチャンクコンテンツを暗号化する;データシャードを符号化する(プロセスのブロック1)
【0096】
ステージ2:チャンクIDの暗号化(ブロック2完了)
【0097】
ステージ3:メタデータとキーシャードとの記憶(ブロック3完了)
【0098】
ステージ4:データシャードを記憶(ブロック1を改定、完了)
【0099】
ステージ5:完了
【0100】
メタデータ操作
暗号化されたメタデータのシャードは複数のロケーションに記憶されることから、メタデータルックアップ操作は、ローカルの暗号化されたメタデータシャードからファイル属性を直接読み取ることができる。ディレクトリ操作及びファイル属性操作は、メタデータ/キーストレージ及びデータストレージの待ち時間に関係なく、パフォーマンスの低下を引き起こさない。メタデータファイルの書き込みは、主にデータ操作に関連していることから、メタデータの書き込みの遅延は、他のデータストレージ及び回復操作と比較して無視することができる。
【0101】
メタデータストレージ選択
データシャードを分散する場合とは異なり、メタデータシャードは、事前に構成されたメタデータストレージに記憶される。メタデータ符号化のガイドラインは、(t,n)=(2,3)とすることである。メタデータの定義:
【0102】
【0103】
【0104】
メタデータとデータコンテンツとの同期
すべてのファイルのメタデータとデータコンテンツとは、定期的に同期される。このプロセスは、チャンクの状態、即ち、ローカルのみ、リモートのみ、ローカル及びリモートの中間状態にしたがって、チャンクの基準カウンタを計算する。基準カウンタは、チャンクの符号化とシャードの分散をスケジュールするために使用される。このプロセスは、完全に削除できる参照されていないチャンクも識別する。
【0105】
データの削除
メタデータの更新は、履歴を追跡するために保存されることから、削除ではメタデータ又はコンテンツデータは削除されない。ファイルが更新されると、以前のバージョンの数が事前に定義された数を超えるまで、システムは、以前のバージョンを削除せずに更新されたメタデータを記憶する。メタデータファイルを削除する必要がある場合、システムは、最後にメタデータとチャンクとの間の基準リンクを解除する。システムが基準カウントゼロのチャンクを識別すると、システムは、最後にバックエンドストレージからチャンクを削除する。
【0106】
ノーマルモード操作
図6は、本発明のファイル記憶プロセスのステップバイステップ手順を示す。図示のように、8つの関連するステップがある:
【0107】
601:Fsync-クライアントで実施
【0108】
602:符号化-クライアントで実施
【0109】
603:ステージ化-クライアントで実施
【0110】
604:メタデータシャード記憶-クライアントで実施
【0111】
605:メタデータ/キーシャード記憶-インターネットからメタデータ/キーストレージまで
【0112】
606:メタデータ/キーシャードのバックアップ記憶-LANからメタデータ/キーバックアップストレージへ
【0113】
607:スケジュールプッシュ-クライアントで実施
【0114】
608:ファイルシャード記憶-インターネットからデータストレージへ
【0115】
Fsync及びフラッシュ(Flush)などの特定のシステムコールイベントが受信されるたびに、クライアントは、対応するファイルの暗号化チェーンへのエンコードを開始する。ファイル暗号化チェーンプロセスが完了すると、データシャードがステージ化される(データストレージにプッシュする準備ができている)。次に、メタデータシャードは、クライアント、メタデータストレージ、及び、メタデータバックアップストレージに記憶される。キーシャードは、キーストレージ及びキーバックアップストレージにも記憶される。最後に、記憶されたデータは、スケジューラが実施をトリガーしたときにデータストレージを記憶するようにスケジュール化される。
【0116】
ファイルフェッチは、ファイル記憶の逆の手順である。一定レベルのストレージ障害が存在する場合でも(tがRSコード又はSSSSコードのパラメータである場合、少なくともnストレージからtストレージを使用できる)、ファイルフェッチ操作は、通常モードとして実施される(障害はログに記録される)。エラー数が設定可能な閾値(利用可能なストレージがt未満)を超えると、ファイルフェッチは、ユーザにフェッチエラーを戻す。
【0117】
それだけには限定されないが、紛失したクライアントなどのクライアントをブラックリストに載せることが重要であることがある。
図7は、ブラックリストに旧デバイスを追加し、新しいクライアントを登録する手順を示す。ユーザがクライアントを紛失した場合、ユーザ及び/又は管理者はクライアントをコントロールサーバに報告する。図示の手順のステップは以下を含む:
【0118】
701.ロストクライアントをブラックリスト化-コントロールサーバによって実施
【0119】
702.認証セッションの期限切れ-コントロールサーバによって実施
【0120】
703-5.アクセス拒否
【0121】
706.クライアント登録-コントロールサーバによって実施
【0122】
707.メタデータ回復コマンド-コントロールサーバによって実施
【0123】
708.バックアップストレージからのメタデータをフェッチ-新しいクライアントによって実施
【0124】
709.認証セッション再構成-コントロールサーバによって実施
【0125】
710-12.アクセス許可
【0126】
コントロールサーバは、クライアント情報をブラックリストに配置し、データストレージ、メタデータ/キーストレージ、及び、メタデータ/キーバックアップストレージでの認証に使用されたすべてのセッションを終了する。ユーザがクライアントデバイスを回復又は交換した場合、ファイルを回復するためには、新しいクライアントは、コントロールサーバによって承認されている必要がある。次に、コントロールサーバは、メタデータ/キーバックアップストレージを使用してメタデータを回復するコマンドメッセージを送信する。最後に、コントロールサーバは、データストレージ、メタデータ/キーストレージ、及び、メタデータ/キーバックアップストレージへ新しいクライアントアクセス情報を提供する。
【0127】
障害モード操作
障害モード操作は、ストレージ障害の数が閾値を超えない場合に、ユーザがシステムを使用し続けることを可能にする。障害モードを必要としないファイルフェッチとは異なり、ファイルストアは、システムを制御され且つ実施可能な状態に保つために、バックエンドサイドのアップロード障害エラーに対処する機構が必要である。
【0128】
図8は、データストレージ障害によるファイル記憶の手順を示す。このプロセスのステップは以下を含む:
【0129】
801. Fsync
【0130】
802. 符号化
【0131】
803. ステージ化
【0132】
804. メタデータシャード記憶
【0133】
805. メタデータ/キーシャード記憶
【0134】
806. メタデータ/キーシャードのバックアップ記憶
【0135】
807. スケジュールプッシュ
【0136】
808. ファイルシャード記憶
【0137】
809. エラー検出
【0138】
810. 記憶失敗シャードローカル維持
【0139】
811.次のスケジュールでプッシュリトライ
【0140】
この手順は、データシャードがデータストレージにプッシュされるまでの通常モードファイル記憶操作と同じである。クライアントがシャードを記憶するアップロードエラーを検出すると、クライアントは、シャードをローカルに保持する。シャードは、ステージ化されたシャードと同じ方法で管理される。次に、スケジューラ(クライアント内)は、次のプッシュサイクルで他の新しいステージ化されたシャードを使用してシャードを再スケジュール化する。
【0141】
図9は、メタデータ/キーストレージ障害によるファイル記憶の手順を示す。これはデータストレージ障害よりもはるかに重要である。このプロセスのステップは以下を含む:
【0142】
901.Fsync
【0143】
902.符号化
【0144】
903.ステージ化
【0145】
904.メタデータシャードを記憶
【0146】
905.メタデータ/キーシャードのバックアップを記憶
【0147】
906.メタデータ/キーシャードを記憶
【0148】
907.エラー検出
【0149】
908.ロールバック
【0150】
データストレージ障害の障害モードとは異なり、メタデータ/キーストレージ障害では、システムはファイル記憶操作を続行できない。代わりに、進行中のデータ記憶操作がロールバックされる。前に記憶されたすべてのファイルは、メタデータ/キーストレージが回復されるまで、読み取り専用モードで引き続きアクセス可能である。
【0151】
図3は、本発明の暗号化チェーン作成実施形態を示す。ここでは、暗号化チェーンと呼ばれるファイル符号化アプローチは、データ/メタデータ/キー暗号化をデータ/メタデータ/キーストレージ戦略と統合することを目的とする。方法のステップは以下を含む:
【0152】
1.ファイル暗号化チェーンの作成
【0153】
○各データファイルは、チャンクに解析され、暗号化チェーンを形成する。
【0154】
○暗号化チェーンは、集中デバイスではなく、ユーザデバイスで開始されることが好ましい。
【0155】
○データファイル暗号化チェーンと、通常後で作成されるメタデータファイル暗号化チェーンとの2つの別の暗号化チェーンが作成される。このメタデータファイルは、データファイル暗号化チェーンがどのように暗号化されるかに関係する情報、及び、メタデータファイル暗号化の暗号化及び/又は分布に関係する他の情報を含み、分布される。情報はこれらに限定されない。
【0156】
○この実施形態では、データファイルは、まずチャンク化され、次に暗号化される。
【0157】
○チャンク化されると、各チャンクにIDが割り当てられ、割り当てられたIDがメタデータに含まれる。
【0158】
○その後、暗号化された各チャンクはシャードに分割される。
【0159】
○シャードは、最終的にストレージに送信され、各シャードは、異なるロケーションにおける異なるストレージ媒体に移動する可能性がある。
【0160】
○データシャード内に暗号化されたメタデータがないことが好ましい(但し、チャンク識別子はメタデータシャードに埋め込まれる)。
【0161】
2.データファイルの暗号化は、従来のファイル暗号化に加えて、シャード化のための後続のリードソロモン(Reed-Solomon(RS)又は均等物)コードを使用する。
【0162】
○各データファイルは、暗号化チェーンに解析され、ファイルはチャンクに分散され、
各チャンクはシャードに分散される。
【0163】
○各チャンクは特定のIDを有する。特定のIDは計算によって決定され得る。
【0164】
○メタデータは割り当てられたIDによって増加することから、メタデータは、様々なファイル属性(これらに限定されないが、名前、サイズ、変更時間、アクセス時間など)とIDとを含む。各IDは特定のデータファイルチャンクに関係する。
【0165】
○チャンクIDは、関係付けられたメタデータに挿入される。
【0166】
○データファイルチャンクは暗号化され、RS又は均等物を使用して符号化される。
【0167】
○その後、暗号化されたチャンクはシャード化される。
【0168】
○RSコードは暗号化のために設計されていないことから、チャンクは暗号化キーで暗号化され、本発明のプロセッサによって決定され、チャンクがシャードとして符号化される前に、一回限りの使用のためにランダムに生成されてもよい。
【0169】
○全データファイルのチャンク化、暗号化、及び、記憶プロセスに1つのキーが使用され、チャンクごとに異なるキーが使用されたり、又は、その間にあるものが使用されたりする可能性がある。キー量の決定は、本発明のプロセッサによって実施され、結果はチャンク化などのためにメタデータに記憶される。
【0170】
3.必要なコンテンツの基準を記憶するメタデータに対して、SSSS又は均等物を使用してチャンク識別子(チャンクID)を暗号化する。
【0171】
〇メタデータシャードファイルは、チャンクIDシャードを記憶する。
【0172】
○各暗号化キー自体がシャード化される。
【0173】
○また、SSSS又は均等物を使用して、各暗号化キー(チャンク暗号化用)を暗号化する。
【0174】
○SSSS以外の暗号化方式を代わりに使用することができる。
【0175】
○ユーザは、ファイルの再構築に必要なシャードの最小数を特定することができる。
【0176】
4.チャンクIDシャードのセットは、サイズ、変更時間などの複製ファイル属性と共にメタデータシャードファイルに記憶される。暗号化キーシャードは、対応するチャンクIDに関連付けられる。
【0177】
5.チャンク化されたデータ、メタデータ、及び、暗号化キーのシャードは、物理的又は論理的に分散されたストレージ/媒体に記憶される。
【0178】
6.このプロセスは、複数のストレージユニット間のデータ、メタデータ、及び、キーシャードの割り当てを計算するために、集中コンポーネントを必要としない。
【0179】
7.シャードを記憶/フェッチするためのストレージを選択するために、記憶効率及び性能を改善するために、様々なアルゴリズムが適用可能である。
【0180】
図11は、ファイル暗号化とメタデータ/キー暗号化との例を示す。設定可能なパラメータtとnとは、ファイル及びメタデータ/キー暗号化の場合、それぞれ、2と3とに設定される。この例では、3つのストレージから1つのストレージ障害を許容しながらコンテンツが「abcdefgh」であるファイルを記憶する。ファイルは、2つのピース、「abcd」及び「efgh」にチャンク化される。チャンクの基準(チャンクIDと呼ばれる)を作成するために、チャンクコンテンツのSHA256ハッシュを計算する。この例では、8c3f=Sha-256(「abcd」)と、a3dc=Sha-256(「efgh」)とがチャンクIDである。これらのチャンクIDは、メタデータ(JSON形式)に記憶される。チャンクコンテンツ「abcd」と「efgh」とは、それぞれ、ランダムに生成されたキー「y2gt」と「5xkn」とを使用して暗号化される。したがって、チャンクコンテンツは、「X?2♯」及び「&$cK」として暗号化される。その後、リードソロモン(Reed-Solomon(RS))コードを使用して暗号化されたチャンクコンテンツを符号化する。暗号化されたチャンクコンテンツ「X?2#」は、「kg」、「dh」、「%f」の3つのシャードに符号化される。「X?2♯」を再構築するために、3つのシャードのうち任意の2つのシャードが必要である。暗号化されたチャンク「&$cK」も同じ方法で符号化される。最後に、データシャードはデータストレージノードに記憶される。
【0181】
チャンクコンテンツの暗号化に使用されたキーは、対応するチャンクに関連付けられる。チャンク基準情報(チャンクID)を保護するために、SSSSを使用して暗号化する。これには、復号化するために3つのシャードのいずれか2つが必要である。チャンクID「8c3f」 は、「ct1d」、「jfy2」、「7g72」に暗号化される。その他のチャンクも同じ方法で符号化される。チャンクIDシャードは、メタデータシャードファイルに別々に記憶される。暗号化キー「y2gt」もSSSSを使用して「3cd2」、「ziaj」、「pzc8」に暗号化される。その他の暗号化キー「5xkn」も同じ方法で符号化される。最後に、3つの異なるメタデータシャードファイル及びキーシャードファイルを異なるロケーションに記憶することで、メタデータとキーとが保護される。
【0182】
3つのメタデータファイルのうち2つがアクセス可能な場合のみ、チャンクID「8c3f」と「a3dc」とを取得できる。これらのチャンクIDを使用して、データ/キーシャードを見つけ、暗号化されたチャンクコンテンツ「X?2#」と「&$cK」とを再構築できる。最後に、暗号化キーを使用して暗号化されたチャンクコンテンツを復号し、復号化されたチャンクを連結してオリジナルコンテンツ「abcdefgh」を取得する。
【0183】
データ完全性検証
特定のレベルの障害を許可しながら複数のシャードを保存するには、データ記憶ステータスを計算するプロセスが必要である。これは、通常、I/Oを集中的に使用するタスクである。データ完全性検証の効率を改善するために、本発明のシステムは、典型的なストレージ及び操作システムで利用可能な典型的なリストオブジェクト(又はファイル)操作を使用して、データ記憶ステータスを計算するだけである。(1)ファイルパス、変更時間、ファイルステータスを含むメタデータストレージからメタデータシャードオブジェクトのリストをフェッチする。(2)チャンクIDを含むデータストレージからデータシャードオブジェクトのリストをフェッチする。(3)関連するチャンクIDを含むキーストレージからキーシャードオブジェクトのリストをフェッチする。(4)ファイルパスと変更時間とが同じメタデータファイルセットに基づいて、リストに表示されるメタデータファイルをカウントする。セットにおけるメタデータファイル数がnの場合、メタデータファイルは、ストレージ障害からの完全なレジリエンスを保証する。メタデータファイル数がn未満t以上の場合、対応するメタデータは、復号可能であり、また、メタデータセットは、ストレージ障害からの完全なレジリエンスを有するように回復可能である。メタデータファイル数がt未満の場合、メタデータファイルは破損している。(5)チャンクIDに基づいてリストに表示されるデータ/キーシャードをカウントする。セットにおけるシャード数がnの場合、各チャンク、メタデータ、及び、暗号化キーでn-tストレージ障害が許可される。これは、パラメータt及びnで指定された最大許容範囲である。シャード数がn未満t以上である場合、チャンクは復号可能であり、セットは、ストレージ障害から完全なレジリエンスを有するように回復可能である。シャード数がt未満の場合、チャンクは破損している。このプロセスでは、ファイルとチャンクとの間のマップを見つけるためにメタデータファイルのコンテンツを読み取らないことから、どのファイルが破損しているかを識別できないが、全体的な整合性とデータ記憶のステータスとは、ストレージに対するリストオブジェクト操作数が少ない場合に計算される。このプロセスは、各クライアントデバイス及びコントロールサーバなどの他の集中事業体からも実施することができる。
【0184】
要約すると、本発明は、新規性及び独自性の多数の領域を含む。その中には以下のものがある:
【0185】
・ファイル及びメタデータ/キー暗号化チェーン;ファイル符号化とメタデータ/キー符号化との統合を提供するために、RSコードとSSSSとをファイルの暗号化されたチャンクとチャンク識別子/キーコンテンツとに適用する。
【0186】
・エンドツーエンドセキュリティ;ファイルシステムインターフェイスとストレージバックエンドとの間のセキュリティホールを防ぐために、ファイルとメタデータ/キー暗号化チェーンとをファイルシステム操作に統合する。
【0187】
・システム実施;長い待ち時間のネットワーク(例えば、インターネット及びWAN)とユーザエクスペリエンスとを考慮しながら、システムコンポーネントを設計及び実施する。
【0188】
‐クライアント中心のアーキテクチャにより、エンドツーエンドのデータ保護ソリューションの設計と実施とが保証される。
【0189】
‐暗号化チェーン;(t,n)閾値保持特性を使用したコンテンツ暗号化及びメタデータ暗号化。
【0190】
○コンテンツ暗号化は、ストレージ効率と最小サイズのエラー訂正コードとが好ましい。
【0191】
○メタデータ暗号化は、ランダム性と理論暗号法とを必要とする。
【0192】
‐AI支援構成並びに異常監視及び検出
【0193】
クライアント中心アーキテクチャ
クライアントの定義に基づいて、ソリューションのアーキテクチャは、クライアントとデータ/メタデータ/ストレージとの間の直接通信を保証するクライアント中心実施を実現するように設計されている。クライアント側からストレージ側まで、クライアントは、異なるタイプのストレージによって提供されるプロトコルとチャネルとを使用する。プロトコルとチャネルとの多様性は、バックエンドでコードの最小限の実施又はゼロ修正によってクライアントで実施される。
【0194】
分散ストレージソリューションにクライアント中心アーキテクチャを実施することは、クライアントがサーバのような共有コンポーネントではないため、サーバ側で実施するよりも難しいことである。したがって、クライアントは、欠落したシャードコンポーネントのコントロールを克服するために、効率的に同期するプロセスを実施する。本解決策は、共有及び集中リソース用に設計されていない分散ストレージにおけるメタデータに直接アクセスし、それにより、メタデータを部分的に符号化し、バージョンをクライアントに記憶することによるメタデータアクセス待ち時間を含む性能コントロールを克服する。
【0195】
クライアントを実施するためには、ネットワーク搭載クライアントデバイスに、ユーザデータI/Oインターフェイス、データ処理ユニット、ハードウェアストレージ、同期処理ユニット、及び、ネットワークインターフェイスが必要である。この例では、データI/Oインターフェイスが読み取り、書き込み、リストなどのデータI/Oリクエストを受信する。このソリューションは、POSIXファイルインターフェイスをデータI/Oインターフェイスとして実施するが、これに限定されない。データI/Oインターフェイスは、キー値ストレージ、CRUD(Create-Read-Update-Delete)インターフェイスなどの実施が可能である。データ処理ユニットは、ファイルとメタデータ/キー暗号化チェーンとを実施することで、データを暗号化してシャードに符号化する。ハードウェアストレージは、中間ステータスと処理中のデータとをストレージに送信する前に記憶する。ハードウェアストレージは、権限のない事業体が中間ステータス及びデータにアクセスすることを防ぐために、アクセスコントロールが必要である。同期処理ユニットは、シャードを送受信する役割を果たす。同期処理ユニットは、クライアント及びストレージの経験的なパフォーマンス及び構成を記憶する知識ベースに基づいて、送信/受信タスクをスケジュール化する。同期処理ユニットは、また、利用可能なストレージノード間のシャードのロケーションを決定し、これも知識ベースに基づいて決定される。同期処理ユニットは、ユーザからの構成に基づいてパラメータを最適化するためにAIエンジンを実施する。同期処理ユニットにおけるこの非同期送受信タスクは、データをストレージに送る前に、ユーザに応答することによって遅延を吸収し、将来、スケジュール化アルゴリズムを拡張する柔軟性を提供する。
【0196】
このソリューションでは、データストレージ、メタデータ/キーストレージ、及び、メタデータ/キーバックアップストレージの3種類のデータストレージを定義する。ストレージは、クライアントに認証及びデータI/Oインターフェイスを提供する。データストレージは、コスト効率が高く拡張性のあるソリューションを必要とするが、メタデータとキーストレージとは、高速アクセス時間を必要とする。メタデータ/キーバックアップストレージの要件は、メタデータ/キーストレージと同じであるが、ユーザドメインにある。
【0197】
コントロールサーバは、バックエンドストレージの設定、ユーザ/デバイス/ポリシーの管理、及び、クライアントへのコマンドの送信を行うポータルである。コントロールサーバは、途中でユーザデータをインターセプトしないように、データ送信チャネルから完全に分離されている。コントロールサーバは、クライアントに構成を展開して、クライアントが必要なパラメータやリクエストのリダイレクトなどを取得してプロセスを開始できるようにする。
【0198】
構成のための人工知能
バックエンドインターフェイスの複雑性及びサービスの多様性のために、満足度を最大化しながら、予算に基づいて最適なセットアップを構成することは困難である。本発明は、バックエンド構成のための時間及び労力を低減するために、構成層の抽象化を提供する。本発明は、運用コストを最適化し、性能を最適化し、バックエンドストレージのコスト及び性能、並びに、ユーザの行動プロファイルに関する異常に基づく経験的データを監視及び検出することを目的とする。クライアントは、イベントデータを収集し、匿名化、再フォーマット化などの前処理を実施する。イベントデータを収集した後、クライアントは、データ収集サーバにイベントデータを送信する。
【0199】
操作コストを低減するために構成を最適化することは、バックエンドストレージ構成の複雑性を克服し、データ記憶/アクセスコスト、経験的ストレージ性能、ピアグループの使用プロファイル、事前に定義された静的モデルなどに基づいて、最適なバックエンドストレージにシャードを配布することによって、操作コストを低減する。
【0200】
本解決策は、また、実施されたアーキテクチャの利点を活用して応答を改善する。本解決策は、バックエンドストレージの複雑性を克服する一方で、データアクセス及び記憶の待ち時間を低減する。操作コストの最適化とは異なり、高速ストレージにより多くのシャードを配布することは、ストレージコストよりも高い優先度を有するべきである。これらの2つの場合に加えて、システムは、単純な加重和方程式を使用することなどによって、コスト最適値と性能最適値との間のバランスのとれた設定を達成するように構成することができる。
【0201】
本発明では、行動解析のためのAIアルゴリズムがシステムにおける異常を検出するためにユーザデータを調査しない。アルゴリズムは、未知の攻撃を検出するために広く使用されているが、偽陽性エラーを低減するために正常状態を正しく定義する必要がある。行動解析アルゴリズムを用いて異常を発見する。厳密にフィットしたモデルは低い精密率を示すが、大まかにフィットしたモデルは低いリコール率を示す。クライアントから収集されたデータに基づいて、システムは、正常状態と異常状態との間で分類指標を適応的に更新する。本発明は、個々のユーザ及びユーザグループからのデータアクセスパターンの特性を活用する。
【0202】
以下は、本発明が最適化するパラメータである。
【0203】
‐最適化1:データ記憶コスト及びデータアクセスコストを最小化するシャード記憶の指示変数
【0204】
‐最適化2:データアップロード/ダウンロード完了時間を最小化するシャード記憶の指示変数
【0205】
‐最適化3:最適化1又は最適化2を展開する際に、シャード再配分を最小化するコスト
【0206】
‐最適化4:通常及び異常なデータアクセスを決定する分類指標
【0207】
‐最適化5:通常及び異常なストレージアクセスを決定する分類指標
【0208】
‐最適化6:クライアントからの通常エラーと異常エラーとを決定する分類指標
【0209】
これらの最適化を達成するために、本発明は以下のものを収集する。
【0210】
‐バックエンドストレージのコストと(定量的)サービスレベルアグリーメント(Service Level Agreement(SLA))
【0211】
‐各クライアントにおけるバックエンドストレージの経験的スループット
【0212】
‐ファイルコンテンツ操作のタイムスタンプ
【0213】
‐操作名
【0214】
‐シャードアクセス数
【0215】
‐匿名ファイル識別子
【0216】
‐匿名クライアント識別子
【0217】
本発明のいくつかの共通のアプリケーションが上述されているが、本発明は、セキュリティ、誤差範囲、匿名性、又は、前述の又は他の関連する属性の任意の適切な組み合わせを増加させるために、任意のネットワークアプリケーションと統合され得ることが明確に理解されるべきである。更に、他の組み合わせ、追加、置換、及び、変更は、本明細書の開示を考慮すれば当業者には明らかであろう。したがって、本発明は、好ましい実施形態の反応によって限定されることを意図していない。
【0218】
上記の発明は、明確にするために、ある程度詳細に記載されているが、本発明の原理から逸脱することなく、ある種の変更及び修正を行うことができることは明らかであろう。本発明のプロセス及び装置の両方を実施する多くの代替方法があることに留意されたい。したがって、本実施形態は、例示的であって限定的ではないと見なされるべきであり、本発明は、本明細書で与えられる特定の詳細に限定されるべきではない。本明細書で説明される態様は、システム、方法、又は、コンピュータ可読媒体として具現化することができる。
【0219】
いくつかの実施形態では、説明された態様がハードウェア、ソフトウェア(ファームウェアなどを含む)、又は、それらの組合せで実施することができる。ある形態は、プロセッサによる実施のためのコンピュータ可読命令を含むコンピュータ可読媒体で実現することができる。1つ又は複数のコンピュータ可読媒体の任意の組合せを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体及び/又はコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体は、入力データに対して動作し、出力を生成することによって本明細書で説明される機能を実施するためにプログラム可能プロセッサによって使用されるコンピュータプログラムを記憶することができる任意の有形媒体を含むことができる。コンピュータプログラムは、コンピュータシステムにおいて、特定の機能を実施したり、特定の結果を決定したりするために、直接的又は間接的に使用できる一連の命令である。
【0220】
いくつかの実施形態は、クラウド計算インフラストラクチャを介してエンドユーザに提供することができる。クラウド計算は、一般的に、ネットワーク(例えば、インターネット等)を介したサービスとしての拡張性のある計算リソースの提供を含む。本明細書では、いくつかの方法及びシステムを説明するが、単一のシステム又は方法が上述の主題のうちの2つ以上を含むことができることが企図される。したがって、複数の上記のシステム及び方法を、単一のシステム又は方法で一緒に使用することができる。
【0221】
本出願に開示された実施形態は、全ての点において、例示的であり、限定的ではないと考えられるべきである。本発明の範囲は、前述の説明によってではなく、添付の特許請求の範囲によって示され、特許請求の範囲の同等性の意味及び範囲内に入るすべての変更は、その中に包含されることが意図される。
【0222】
図中のフローチャート及び/又はブロック図は、本発明の概念の様々な例示的な実施形態による、システム、方法、及び、コンピュータプログラム製品の実施可能なアーキテクチャ、機能、及び、操作を示す。この点に関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実施するための1つ又は複数の実施可能命令を備える、モジュール、セグメント、又は、命令の一部を表すことができる。代替の実施では、ブロックに記載されている機能が図に記載されている順序から外れる場合がある。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、又は、ブロックが含まれる機能に応じて時には逆の順序で実施されてもよい。また、ブロック図及び/又はフローチャートの各ブロック、並びに、ブロック図及び/又はフローチャートのブロックの組み合わせは、指定された機能又は動作を実施するか、又は、特殊目的ハードウェア及びコンピュータ命令の組み合わせを実施する特殊目的ハードウェアベースのシステムによって実施され得ることにも留意されたい。