特許第5975501号(P5975501)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル・コーポレーションの特許一覧

特許5975501コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム
<>
  • 特許5975501-コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム 図000004
  • 特許5975501-コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム 図000005
  • 特許5975501-コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム 図000006
  • 特許5975501-コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム 図000007
  • 特許5975501-コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム 図000008
  • 特許5975501-コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5975501
(24)【登録日】2016年7月29日
(45)【発行日】2016年8月23日
(54)【発明の名称】コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20160809BHJP
   G09C 1/00 20060101ALI20160809BHJP
   G06F 21/64 20130101ALI20160809BHJP
【FI】
   H04L9/00 675A
   G09C1/00 640D
   G06F21/64
【請求項の数】20
【全頁数】19
(21)【出願番号】特願2015-527516(P2015-527516)
(86)(22)【出願日】2013年8月12日
(65)【公表番号】特表2015-527008(P2015-527008A)
(43)【公表日】2015年9月10日
(86)【国際出願番号】US2013054535
(87)【国際公開番号】WO2014035650
(87)【国際公開日】20140306
【審査請求日】2015年2月17日
(31)【優先権主張番号】13/601,969
(32)【優先日】2012年8月31日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】カサトキン、ディミトリー
【審査官】 宮司 卓佳
(56)【参考文献】
【文献】 特開2008−140384(JP,A)
【文献】 特開2010−271862(JP,A)
【文献】 特開2006−065851(JP,A)
【文献】 特開2008−257279(JP,A)
【文献】 特開2001−356964(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/64
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
ンピューティングデバイスでソフトウェアアプリケーションから読み取り要求を受信し、前記コンピューティングデバイスに結合されたストレージデバイスに格納されたデータの第1のデータブロックに関する読み取りタスクを実行する段階と、
前記第1のデータブロックに関連する第1のメタデータキャッシュで第1の参照暗号化コードにアクセスする段階と、
前記第1のデータブロックに関する第1の新しい暗号化コードを算出する段階と、
前記第1の新しい暗号化コードを前記第1の参照暗号化コードと比較する段階と、
前記第1の新しい暗号化コードが前記第1の参照暗号化コードと一致する場合に、前記読み取り要求を承諾する段階と
前記第1の新しい暗号化コードが前記第1の参照暗号化コードと不一致の場合に、前記読み取り要求を拒否する段階と
を備え、
前記読み取りタスクは、前記第1のデータブロックを読み取ることを含み、
前記承諾する段階は、前記読み取りタスクを促進する段階を有
前記拒否する段階は、前記読み取り要求に応答してエラーメッセージを発行する段階を有し、
前記第1の参照暗号化コードを含むデータブロックが前記第1のメタデータキャッシュから欠落する場合に、前記読み取り要求が提出され、欠落した前記データブロックに対する前記読み取りタスクを促進する、方法。
【請求項2】
前記第1の参照暗号化コードおよび前記第1の新しい暗号化コードは、ハッシュベースのメッセージ認証コード(HMAC)を含む、請求項1に記載の方法。
【請求項3】
前記ソフトウェアアプリケーションは、前記コンピューティングデバイスで起動するオペレーティングシステムを含む、請求項1または2に記載の方法。
【請求項4】
コンピューティングデバイスで前記ソフトウェアアプリケーションから書き込み要求を受信し、第2のデータブロックに関する書き込みタスクを実行する段階と、
前記第2のデータブロックに関連する第2のメタデータキャッシュで第2の参照暗号化コードにアクセスする段階と、
前記第2のデータブロックに関する第2の新しい暗号化コードを算出する段階と、
前記第2のメタデータキャッシュ中の前記第2の新しい暗号化コードにより前記第2の参照暗号化コードを置換する段階と、
前記書き込み要求を承諾する段階とを更に備え、
前記書き込みタスクは、前記ストレージデバイスに格納された前記データに前記第2のデータブロックを書き込むことを含み、
前記承諾する段階は、前記書き込みタスクを促進する段階を有する、請求項1からのいずれか1項に記載の方法。
【請求項5】
前記第2のメタデータキャッシュは、複数の将来の読み取り要求のために前記第2の新しい暗号化コードが参照暗号化コードとして使用されるように、前記第2の新しい暗号化コードを維持する、請求項に記載の方法。
【請求項6】
前記第2の参照暗号化コードおよび前記第2の新しい暗号化コードは、ハッシュベースのメッセージ認証コード(HMAC)を含む、請求項またはに記載の方法。
【請求項7】
前記ソフトウェアアプリケーションは、前記コンピューティングデバイスで起動するオペレーティングシステムを含む、請求項からのいずれか1項に記載の方法。
【請求項8】
ンピューティングデバイスでソフトウェアアプリケーションから読み取り要求を受信し、前記コンピューティングデバイスに結合されたストレージデバイスに格納されたデータの第1のデータブロックに関する読み取りタスクを実行する第1のロジックと、
前記第1のデータブロックに関連する第1のメタデータキャッシュで第1の参照暗号化コードにアクセスする第2のロジックと、
前記第1のデータブロックに関する第1の新しい暗号化コードを算出する第3のロジックと、
前記第1の新しい暗号化コードを前記第1の参照暗号化コードと比較する第4のロジックと、
前記第1の新しい暗号化コードが前記第1の参照暗号化コードに一致する場合に、前記読み取り要求を承諾する第5のロジックとを備え、
前記読み取りタスクは、前記第1のデータブロックを読み取ることを含み、
前記承諾することは、前記読み取りタスクを促進することを含
前記第5のロジックは、前記第1の新しい暗号化コードが前記第1の参照暗号化コードと不一致の場合に、前記読み取り要求を更に拒否し、
前記拒否することは、前記読み取り要求に応答してエラーメッセージを発行することを含み、
前記第1の参照暗号化コードを含むデータブロックが前記第1のメタデータキャッシュから欠落する場合に、前記読み取り要求が提出され、欠落した前記データブロックに対する前記読み取りタスクを促進する、装置。
【請求項9】
前記第1の参照暗号化コードおよび前記第1の新しい暗号化コードは、ハッシュベースのメッセージ認証コード(HMAC)を含む、請求項に記載の装置。
【請求項10】
前記ソフトウェアアプリケーションは、前記コンピューティングデバイスで起動するオペレーティングシステムを含む、請求項8または9に記載の装置。
【請求項11】
前記第1のロジックは、コンピューティングデバイスで前記ソフトウェアアプリケーションから書き込み要求を更に受信し、第2のデータブロックに関する書き込みタスクを実行し、前記書き込みタスクは、前記ストレージデバイスに格納された前記データに前記第2のデータブロックを書き込むことを含み、
前記第2のロジックは、前記第2のデータブロックに関連する第2のメタデータキャッシュで第2の参照暗号化コードに更にアクセスし、
前記第3のロジックは、前記第2のデータブロックに関する第2の新しい暗号化コードを更に算出し、
前記第4のロジックは、前記第2のメタデータキャッシュ中の前記第2の新しい暗号化コードにより前記第2の参照暗号化コードを更に置換し、
前記第5のロジックは、前記書き込み要求を更に承諾し、前記承諾することは、前記書き込みタスクを促進することを含む、請求項から10のいずれか1項に記載の装置。
【請求項12】
前記第2のメタデータキャッシュは、複数の将来の読み取り要求のために前記第2の新しい暗号化コードが参照暗号化コードとして使用されるように、前記第2の新しい暗号化コードを維持する、請求項11に記載の装置。
【請求項13】
前記第2の参照暗号化コードおよび前記第2の新しい暗号化コードは、ハッシュベースのメッセージ認証コード(HMAC)を含む、請求項11または12に記載の装置。
【請求項14】
前記ソフトウェアアプリケーションは、前記コンピューティングデバイスで起動するオペレーティングシステムを含む、請求項11から13のいずれか1項に記載の装置。
【請求項15】
請求項1からのいずれか1項に記載の方法に従って、複数のオペレーションをコンピューティングデバイスに実行させるためのプログラム。
【請求項16】
請求項15に記載のプログラムを格納するコンピュータ可読記録媒体。
【請求項17】
請求項1からのいずれか1項に記載の方法に従って、複数のオペレーションを実行するメカニズムを備えるシステム。
【請求項18】
請求項1からのいずれか1項に記載の方法に従って、複数のオペレーションを実行する手段を備える装置。
【請求項19】
請求項1からのいずれか1項に記載の方法に従って、複数のオペレーションを実行するコンピューティングデバイス。
【請求項20】
請求項1からのいずれか1項に記載の方法に従って、複数のオペレーションを実行する通信デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の複数の実施形態は、セキュリティシステムに関する。より具体的には、本発明の複数の実施形態は、複数のコンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズムに関する
【背景技術】
【0002】
データセキュリティは、コンピュータセキュリティの周知の部門であり、窃盗、破損、自然災害等に対するストレージデータのセキュリティを提供する。しかし、データセキュリティを提供する従来システムは、限界があり、非効率である。例えば、多くの従来システムは、傍受され得るデータを単に退避するデータ暗号化に依存し、その整合性は、例えば、オフライン変更により攻撃される可能性がある。更に、これらの従来システムは、リソースが非効率で、電力を消費するが、ストレージデータの暗号化されないあらゆる部分に対する保護を提供しない。
【図面の簡単な説明】
【0003】
本発明の実施形態は、限定のためでなく、例として図示し、添付の図面において、同様の符号は同様の要素を指す。
図1】一実施形態による、コンピューティングデバイスで使用するストレージデータの暗号化不要の保護のためのマッピングフレームワークベースのメカニズムを図示する。
図2】一実施形態による、複数のコンピューティングデバイスでストレージデータの暗号化不要の保護のためのマッピングフレームワークベースのメカニズムを図示する。
図3】一実施形態による、整合性ストレージデータのセキュリティおよび保護を促進するトランズアクションシーケンスを図示する。
図4A】一実施形態による、読み取りオペレーションを処理する場合に整合性ストレージデータのセキュリティおよび保護を促進する方法を図示する。
図4B】一実施形態による、書き込みオペレーションを処理する場合に整合性ストレージデータのセキュリティおよび保護を促進する方法を図示する。
図5】本発明の一実施形態による、本開示の複数の実施形態を実装するのに好適なコンピュータシステムを図示する。
【発明を実施するための形態】
【0004】
以下の説明において、様々な具体的詳細を記載する。しかし、本発明の複数の実施形態は、これらの具体的詳細がなくとも実施可能である。他の複数の例において、本明細書の理解を妨げないようにするべく、周知の複数の回路、構造、および技術を詳細に示していない。
【0005】
複数の実施形態は、セキュリティを提供し、ハッキング攻撃、窃盗、破損、自然または人間による災害等に起因するいずれの不作為または故意による変更に対しても、ストレージデータの整合性を維持することを促進する。複数の実施形態は、複数のコンピューティングシステムでストレージデータの暗号化不要の整合性保護を促進するメカニズムを提供することができ、メカニズムは、マッピングフレームワークベースであるか、またはブロックデバイスドライバ等として実装してもよく、例えば、ハッシュベースのメッセージ認証コード(HMAC)を格納するのに役立ち得る。例えば、複数の実施形態は、例えば、ストレージハードウェアの移動または変更、ストレージデータの暗号化/復号等をする必要もなく、セキュアな内部計算および検証メカニズム(例えばHMAC)によりいずれの変更(例えば、オフライン変更等)に対しても、ストレージデータ(例えば、オペレーティングシステムによりアクセスされるデータ)のデバイスマッパベースのセキュリティおよび整合性を提供する。データを暗号化する必要なくストレージデータのセキュリティおよび整合性を促進することにより、ストレージデータが暗号化されず、従って必要な場合に、データのより簡単なアクセスおよびリカバリを促進することを可能にする。更に、ストレージデータを暗号化する必要がないことにより、より良好なリソースの効率性および低い電力消費を提供する。
【0006】
ストレージデバイス上のデータは、例えば512バイトの複数のセクタで編成され、読み取りおよび書き込みオペレーションの最小単位としてみなされ得る。複数のセクタは、複数のブロックのグループを指し、例えば、4Kブロックは8セクタを含み得る。セクタおよび/またはブロックのサイズは、変わり得ることが企図される。更に、通常、ファイルシステムは、複数のブロックと共に動作し、1または複数のブロックを読み取る読み取り要求等の読み取り/書き込み要求を発行することができ、これは、1つのブロックの場合、通常、例えば、データ4Kブロックの8セクタ全てを読み取ることに翻訳される。ストレージデバイス(SD)については、ストレージ全体が複数のパーティションに分割され、各パーティションは、いくつかのブロックからなることがある。例えば、ストレージデバイスSDAは、sda1、sda2、sda3等のパーティションに分割され得る。これらのパーティションは、マイクロソフト(登録商標)コーポレーション等によるext4、ファイルアロケーションテーブル(FAT)、ニューテクノロジーファイルシステム(NTFS)等の異なるファイルシステムにフォーマットすることができ、例えばsda1はext4であり、sda2はNTFS等であってもよい。更に、ファイルシステムは、1または複数のブロック層を呼び出し、複数のデータブロックを読み取ることができ、読み取り要求が発行される場合等には、ファイルシステムは、即座にブロック層を呼び出すことができるが、書き込み要求が発行される場合には、複数のページは更新されるが、ブロックデバイスに即座に書き込まれないことがある。そのような複数のページは、ページキャッシュと呼ばれることがある。ページキャッシュは、再書き込みオペレーション中にブロックデバイスに再書き込みすることができ、その間、ファイルシステムは、複数のブロック層に書き込み要求を送信し得る。
【0007】
複数の実施形態は、本文書全体で説明するように、マッピングフレームワークのかたちで実装されるストレージデータの暗号化不要の整合性保護を促進するメカニズムを提供するが、これらの実施形態は、マッピングフレームワークに限定されず、代わってブロックデバイスドライバを、このメカニズムを実装するべく使用し得ることが企図される。
【0008】
図1は、一実施形態による、コンピューティングデバイスで使用されるストレージデータの暗号化不要の保護のためのマッピングフレームワークベースのメカニズムを図示する。コンピューティングデバイス100は、ホストマシンとして機能し、ストレージデータの暗号化不要の保護のためのマッピングフレームワークベースのメカニズム(「整合性保護メカニズム」)110を使用し、1または複数のストレージデバイスに格納されたデータのセキュリティおよび整合性を促進する。一実施形態において、ストレージデータ保護メカニズム110は、オペレーティングシステムカーネル114(例えば、Linux(登録商標)カーネル)の一部であるマッピングフレームワーク116(「デバイスマッパ」とも呼ぶ)のためのプラグインモジュールとして提供され得る。カーネル114は、ブリッジとして機能し、または複数のソフトウェアアプリケーション(例えば、ユーザ空間112を介して提供される)間の通信およびハードウェアレベル(例えば、ハードウェアストレージデバイス)で行われる任意のデータ処理を促進する等により、システムリソースを管理するオペレーティングシステム106のコンポーネントとして機能し得る。マッピングフレームワーク116は、あるブロックデバイスを別のブロックデバイスにマッピングし、またはあるデバイスのブロックを同一または他のデバイスのブロックにマッピングするフレームワークまたはマッパとして機能し、エンタープライズボリュームマネージメントシステム(EVMS)、ロジックボリュームマネージャ(LVM)、dm−crypt等のための基礎として機能し得る。
【0009】
コンピューティングデバイス100としては、スマートフォン(例えば、アップル(登録商標)のアイフォン(登録商標)、リサーチインモーション(登録商標)のブラックベリー(登録商標)等)を含む携帯電話、パーソナルデジタルアシスタント(PDA)等、タブレットコンピュータ(例えば、アップル(登録商標)のアイパッド(登録商標)、サムスン(登録商標)のギャラクシータブ(登録商標)等)、ラップトップコンピュータ(例えば、ノートブック、ネットブック、ウルトラブック(商標)等)、e−reader(例えば、アマゾン(登録商標)のキンドル(登録商標)、バーンズアンドノーブル(登録商標)のNook(登録商標)等)などのモバイルコンピューティングデバイスが挙げられ得る。更に、コンピューティングデバイス100としては、セットトップボックス(例えば、インターネットベースのケーブルテレビセットトップボックス等)、テレビ、車内エンターテイメントシステム、およびデスクトップコンピュータ、サーバコンピュータ等のより大きいコンピューティングデバイスが挙げられ得る。
【0010】
コンピューティングデバイス100は、コンピューティングデバイス100の任意のハードウェアもしくは物理的リソースとユーザとの間のインターフェースとして機能するオペレーティングシステム(OS)106を含む。更に、コンピューティングデバイス100は、1または複数のプロセッサ102、メモリデバイス104、ネットワークデバイス、ドライバ等、ならびにタッチスクリーン、タッチパネル、タッチパッド、仮想もしくは通常のキーボード、仮想もしくは通常のマウス等の入力/出力(I/O)源108を含む。「コンピューティングデバイス」、「ノード」、「コンピューティングノード」、「クライアント」、「ホスト」、「サーバ」、「メモリサーバ」、「機械」、「デバイス」、「コンピューティングデバイス」、「コンピュータ」、「コンピューティングシステム」等のような用語は、本文書全体で同じ意味で使用され得ることに留意されたい。
【0011】
図2は、一実施形態による、複数のコンピューティングデバイスでストレージデータの暗号化不要の保護のためのマッピングフレームワークベースのメカニズムを図示する。一実施形態において、データ完全性保護メカニズム110は、受信ロジック202、提出ロジック204、参照ロジック206、計算ロジック208、比較ロジック210、更新ロジック212、および決定ロジック214等、いくつかのコンポーネントを含む。図1を参照してすでに説明したように、データ整合性保護ロジック110は、オペレーティングシステムの一部として存在し、任意の数およびタイプのソフトウェアアプリケーション222と、図1のコンピューティングデバイス100等のコンピューティングデバイスに関連する任意の数およびタイプのストレージデバイス232との間の通信を維持し得る。本文書全体で、「ロジック」という用語は、「処理ロジック」、「コンポーネント」またはモジュールと同じ意味で言及され、例として、ソフトウェア、ハードウェア、および/またはソフトウェア、ハードウェア、およびファームウェア等のいずれかの組み合わせを含み得る。
【0012】
一実施形態において、データ完全性保護メカニズム110は、コンピューティングデバイスと結合された1または複数のストレージデバイス232においてデータのセキュリティおよび整合性保護を提供する。ストレージデータは、コンピューティングデバイスで起動するオペレーティングシステム、および/または1もしくは複数のソフトウェアアプリケーション222によりアクセスされ、使用され得る。例えば、データは、複数のソフトウェアコード、複数のソフトウェアコードの関連部分、および/またはメタデータキャッシュ等のその他の関連情報を含み、これらは、複数のソフトウェアアプリケーション222および/またはオペレーティングシステムによりアクセスされ、使用され得る。ストレージデバイス232の例としては、ランダムアクセスメモリ(RAM)、独立ディスクの冗長アレイ(RAID)、不均等メモリアクセス(NUMA)のメモリシステム、ストレージエリアネットワーク、プロセッサレジスタ、メモリチャネル、磁気ディスク、光ディスク、磁気テープ、ネットワーク接続ストレージ(NAS)デバイス、ネットワークファイルシステム、リレーショナルデータベース等、任意の数およびタイプのストレージシステムが挙げられ得る。
【0013】
一実施形態において、データ完全性保護メカニズム110の受信ロジック202は、ソフトウェアアプリケーション222からのデータ読み取りまたはデータ書き込み等のタスクの呼び出しまたは要求を受信するべく使用され得る。読み取り要求は、ストレージデバイス232でデータのいずれかの部分(例えば、1または複数のデータブロック)を読み取ることを試みる場合にアプリケーション222により促進される読み取りコマンド(例えばsys_read。ソフトウェアアプリケーション等は、read()library functionを使用し、これにより次にsystem call sys_readを呼び出すことができる)を参照する。対照的に、書き込み要求は、書き込みコマンド(例えばsys_write。ソフトウェアアプリケーション等は、write()library functionを使用し、これにより次にsystem call sys_writeを呼び出すことができる)を参照し、ソフトウェア管理者またはプログラマによる既存ストレージデータの変更等、データを変更することを含めて、ストレージデバイス232の既存データに1または複数のデータブロックを更に書き込む。次に、提出ロジック204は、受信された要求に記載されるように1または複数のデータブロックを読み取り、または書き込む等、ストレージデータの1または複数の関連データブロックに対する要求タスク(例えば、読み取り、書き込み等)が実行され得るように、受信された要求を提出または送信する。
【0014】
一実施形態において、参照ロジック206は、複数の関連データブロックに関連する整合性メタデータキャッシュにアクセスし、複数のデータブロックのいずれかがメタデータキャッシュ内に格納された対応するHMACを有するか否かを判断する。整合性メタデータキャッシュは、複数の整合性メタデータのデータブロックの集合として編成され得、各ブロックは、複数のHMACを保持するなど、いくつかの整合性メタデータの記録を保持することが意図される。複数の整合性メタデータのデータブロックが同一のパーティション(ブロックデバイス)に格納されてもよく、実際の複数のデータブロックは、同一または異なるストレージデバイス上に存在する専用パーティション上に存在し、またはこれに格納され得る。参照HMACを含む整合性メタデータのデータブロックがキャッシュから欠落している場合、それは、適切な位置から読み取られ得る。
【0015】
一方、計算ロジック208は、暗号化キーを使用して、複数の関連データブロックのそれぞれについて新しいHMACを算出する。複数の暗号化キーを使用することによるHMACの算出は、一例として提供するものであり、本発明の複数の実施形態は、いずれか特定の処理または技術に限定されないことが企図される。暗号化キーは、初期化、ブートアップ等、1つまたは複数の既知の処理のうちいずれかを使用して受信されてもよく、または任意の数の既知の方法を用いる処理中に任意の時点で提供されてもよい。更に、暗号化キーおよび複数の既知の暗号化機能(例えば、メッセージダイジェストアルゴリズム5(MD5)、セキュアハッシュアルゴリズム1(SHA‐1)等)のいずれかの組み合わせを用いて、HMAC‐MD5、HMAC‐SHA1等の各関連データブロックについて、HMACが算出され得る。例えば、HMACは、
【数1】
を用いて算出され得、式中、Hは暗号化ハッシュ関数を指し、Kは、ハッシュ関数の入力ブロックサイズに対する追加のゼロを右に埋め込むシークレットキー、またはブロックサイズよりも長い場合には元のキーのハッシュを指し、mは認証されるメッセージ(データブロック、要求内容等)を指し、||は連結を意味し、
【数2】
は排他または(XOR)を意味し、opadは、外側の埋め込み(例えば、0x5c5c5c...5c5c。1ブロック長の16進数定数)を指し、ipadは、内側の埋め込み(例えば、0x363636...3636。1ブロック長の16進数定数)を指す。例えば、ブロックサイズは4Kであり、HMAC‐SHA256サイズは32バイトであるとき、1つのブロックは、128のHMACを保持する能力を有し得る。整合性メタデータキャッシュは、特定のデータブロックのための整合性メタデータ(例えば、1または複数のHMAC等)を含み得る。例えば、データの1つの4Kブロックは、128のHMAC―SHA256を含み得るであろう。整合性メタデータキャッシュは、複数のブロック(例えば4Kブロック等)の集合を指し、ランダムアクセスメモリにおいて利用可能な整合性メタデータ(HMAC)を含み得る。
【0016】
要求が読み取り要求である場合、一実施形態において、計算ロジック208により使用されるHMAC計算法に関わらず、各データブロックについて新しいHMACが算出されると、次に比較ロジック210によりそのデータブロックに対する参照HMACと比較される。比較されると、決定ブロック214により要求を許可するべきか拒否するべきかについて決定される。例えば、新たに算出されたHMACと参照されたHMACとの間に一致が存在する場合等、好結果の比較のときは読み取り要求を許可して上位層に転送し、関連データブロックを読み取る等、要求タスクを実行し得る。対照的に、算出されたHMACと参照されたHMACとの間に不一致がある等、失敗した比較のときには、読み取り要求を拒否し、エラーメッセージを発行して上位層に転送し、関連データブロックを破棄して読み取らない等、要求タスクを実行しない。
【0017】
要求が書き込み要求である場合、一実施形態において、計算ロジック208により使用されるHMAC計算法に関わらず、ストレージデータに書き込まれる各データブロックについて新しいHMACを算出すると、更新ロジック212を使用して、各データブロックの対応する参照HMACを新たに算出されたHMACを用いて更新し、または新たに算出されたHMACは、そのデータブロックを代用する。次に、整合性メタデータキャッシュ中のこれらの新たに配置したHMACを参照し、あらゆる複数の将来の読み取り要求に応答して比較することができる。
【0018】
特定の特徴を追加、除去、および/または強化することを含む本発明の様々な実施形態を促進するべく、任意の数およびタイプのコンポーネントを、データ完全性保護メカニズム110に追加し、および/またはデータ完全性保護メカニズム110から取り外し得ることが企図される。データ完全性保護メカニズム110を簡略で明確なものとし、またその理解を促進するため、コンピューティングデバイスに関するもの等の規格および/または既知のコンポーネントの多くは、ここにおいて図示せず、または論じない。本発明の実施形態は、いずれかの特定の技術、トポロジー、システム、アーキテクチャ、および/または規格に限定されず、任意の将来の変更を採用し、これに適合するのに十分に動的であることが企図される。
【0019】
図3は、一実施形態による、整合性ストレージデータのセキュリティおよび保護を促進するトランズアクションシーケンスを図示する。トランズアクションシーケンス300は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック等)、ソフトウェア(処理デバイス上で起動される命令等)、またはそれらの組み合わせを有し得る処理ロジックにより実行され得る。一実施形態において、方法300は、図1のデータ完全性保護メカニズム110により実行され得る。
【0020】
トランズアクションシーケンス300は、ユーザ空間112のソフトウェアアプリケーション222により開始し、トランズアクション(例えば、読み取りトランズアクション(例えばsys_read)、書き込みトランズアクション(例えばsys_write)等)のための呼び出しを促進する。次に、要求は、システム呼出しインターフェース302に仮想ファイルシステム(VFS)層304(例えば、vfs_read、vfs_write等)を呼び出させることにより、オペレーティングシステムのカーネル114におけるシステム呼出しインターフェース302を介してVFS304に送信される。VFS層304は、ファイルシステム層306を呼び出し、要求を読み取り、ブロックデバイス層308に転送する。ファイルシステム層306は、要求(例えばブロックI/O読み取り要求)をブロックデバイス層308に提出し、ブロックデバイス層308は、次に、マッピングフレームワークまたはデバイスマッパ116で受信される要求をキュー登録する。
【0021】
一実施形態において、マッピングフレームワーク116は、マッピングフレームワーク116のプラグインモジュールとして提供され得るデータ完全性保護メカニズム110に対して要求を転送し、またはデータ完全性保護メカニズム110を介して要求をマッピングし得る。一実施形態において、データ完全性保護メカニズム110は、要求を処理し、ブロックデバイス層310に提出する。ブロックデバイス層310は、一実施形態において、データブロックデバイスおよび対応する整合性ブロックデバイスを含み得る。データブロックデバイスは、実際のストレージデータを含み得るが、整合性ブロックデバイスは、整合性メタデータ(例えば参照HMAC)を含み得る。一実施形態において、前述のように、読み取り要求の場合にはデータ完全性保護メカニズム110は、HMACを算出し、それを参照HMACと比較することができるが、書き込み要求の場合にはHMACを算出し、将来、参照HMACとして使用される整合性ブロックデバイスにそれを格納し得る。次に、ブロックデバイス層310は、要求に記載される要求タスクが実行され得るように、要求をブロックデバイスドライバ312にキュー登録する。次に、ブロックデバイスドライバ312は、sdaおよび/またはsdbを含むストレージデバイス232等、関連ハードウェア320でストレージデータの1または複数のデータブロックに関する要求タスクを実行する。
【0022】
図4Aは、一実施形態による、読み取りオペレーションを処理する場合に整合性ストレージデータのセキュリティおよび保護を促進する方法を図示する。方法400は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック等)、ソフトウェア(処理デバイス上で起動される複数の命令等)、またはこれらの組み合わせを有し得る処理ロジックにより実行され得る。一実施形態において、方法400は、図1のデータ完全性保護メカニズム110により実行され得る。
【0023】
方法400は、コンピューティングシステムで起動するソフトウェアアプリケーション(例えば、オペレーティングシステムまたはその他のソフトウェアアプリケーション)から受信される要求により、ブロック405で開始し、コンピューティングシステムと通信するストレージデバイスに格納されたデータのデータブロックにアクセスし、読み取る。いくつの、またはどのタイプのデータブロックが読み取られ得るかについて課される限定は、ないことが企図される。換言すれば、要求が受信され、いずれの数およびタイプのデータブロックも読み取ってもよい。ブロック410で、要求されたデータブロックが読み取られ得るように、読み取り要求は、処理に提出される。ブロック415で、データブロックに関連する整合性メタデータキャッシュがアクセスされ、整合性メタデータキャッシュに格納された参照HMACにアクセスし、参照HMACは、要求されたデータブロックに対応し、または参照する。HMACを含むデータブロックが欠落し、または整合性メタデータキャッシュ中に存在しない場合、図2の参照ロジック206は、関連ブロック層に読み取り要求を提出し、ブロックデバイスからデータブロックを読み取ることができる。
【0024】
ブロック420で、暗号化キーおよび1つまたは複数の既知の算出プロセスのいずれかを使用して、要求されたデータブロックに対応する新しいHMACを算出する。一実施形態において、ブロック425で、新たに算出されたHMACが、整合性メタデータキャッシュから得た参照HMACと比較される。決定ブロック430で、算出されたHMACが参照HMACと一致するか否かについて判断される。一致する場合、ブロック435で、要求を許可し、要求されたデータブロックが読み取られる等、読み取り要求を促進するソフトウェアアプリケーション(ユーザ空間にある)までの複数の上位層にそれを転送することにより、処理は継続する。一致しない場合、ブロック440で、処理を終了し、エラーメッセージが発行され、複数の上位層に転送される。
【0025】
図4Bは、一実施形態による、書き込みオペレーションを処理する場合に整合性ストレージデータのセキュリティおよび保護を促進する方法を図示する。方法450は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック等)、ソフトウェア(処理デバイス上で起動される複数の命令等)、またはこれらの組み合わせを有し得る処理ロジックにより実行され得る。一実施形態において、方法450は、図1のデータ完全性保護メカニズム110により実行され得る。
【0026】
方法450は、コンピューティングシステムで起動するソフトウェアアプリケーション(例えば、オペレーティングシステムまたはその他のソフトウェアアプリケーション)から受信される要求により、ブロック455で開始し、コンピューティングシステムと通信するストレージデバイスで既存のデータにデータブロックを書き込む。いくつの、またはどのタイプのデータブロックが読み取られ得るかについて課される限定は、ないことが企図される。換言すれば、要求が受信され、いずれの数およびタイプのデータブロックも読み取ってもよい。ブロック460で、データブロックが書き込まれ得るように、書き込み要求は、処理に提出される。ブロック465で、データブロックに関連する整合性メタデータキャッシュがアクセスされ、整合性メタデータキャッシュに格納された参照HMACにアクセスし、参照HMACは、データブロックに対応し、または参照する。
【0027】
ブロック470で、暗号化キーおよび1つまたは複数の既知の算出プロセスのいずれかを使用して、要求されたデータブロックに対応する新しいHMACが算出される。一実施形態において、ブロック475で、整合性メタデータキャッシュは、既存の参照HMACを新たに算出されたHMACで置換することにより更新される。更に、図2の更新ロジック212は、HMACを更新し得るが、書き込み要求を即座に送信して整合性ブロックをブロックデバイスに書き込まなくてもよい。ブロック480で、書き込み要求を許可することにより処理は継続し、データブロックがストレージデータに書き込まれる。ブロック485で、書き込みデータブロックの確認を上位層に送信する。
【0028】
図5は、コンピューティングシステム500の実施形態を図示する。コンピューティングシステム500は、例えば、デスクトップコンピューティングシステム、ラップトップコンピューティングシステム、携帯電話、移動体通信可能なPDAを含むパーソナルデジタルアシスタント(PDA)、セットトップボックス、スマートフォン、タブレット等を含む、様々なコンピューテイングおよび電子デバイス(有線または無線)を表す。代替のコンピューティングシステムは、より多い、より少ない、および/または異なるコンポーネントを含み得る。
【0029】
コンピューティングシステム500は、バス505(または情報を通信するリンク、相互接続、または別のタイプの通信デバイスもしくはインターフェース)、および情報を処理し得るバス505に結合されたプロセッサ510を含む。コンピューティングシステム500は、1つのプロセッサと共に図示されるが、電子システム500は、1つまたは複数の中央処理装置、グラフィックスプロセッサ、および物理プロセッサ等の複数のプロセッサおよび/またはコプロセッサを含み得る。
【0030】
コンピューティングシステム500は、バス505に結合されたランダムアクセスメモリ(RAM)または他のダイナミック型ストレージデバイス520(メインメモリと呼ばれる)を更に含み、プロセッサ510により実行され得る情報および命令を格納することができる。また、メインメモリ520を用いて、プロセッサ510による命令の実行中に一時変数または他の中間情報を格納してもよい。
【0031】
コンピューティングシステム500は、プロセッサ510の静的情報および複数の命令を格納し得るバス505に結合された、読み取り専用メモリ(ROM)および/または他のストレージデバイス530も含み得る。データストレージデバイス540は、情報および複数の命令を格納するべくバス505に結合され得る。磁気ディスクもしくは光ディスク、および対応するドライブ等のデータストレージデバイス540は、コンピューティングシステム500に結合され得る。
【0032】
また、コンピューティングシステム500は、バス505を介してブラウン管(CRT)、液晶ディスプレイ(LCD)、または有機発光ダイオード(OLED)アレイ等のディスプレイデバイス550に結合し、ユーザに情報を表示し得る。英数字および他の複数のキーを含むユーザ入力デバイス560は、バス505に結合し、プロセッサ510に情報および複数のコマンド選択を通信し得る。別のタイプのユーザ入力デバイス560は、マウス、トラックボール、またはカーソル方向キー等のカーソル制御器570であり、方向情報および複数のコマンド選択をプロセッサ510に通信し、ディスプレイ550上でカーソル移動を制御する。コンピュータシステム500のカメラおよびマイクの複数のアレイ590は、ジェスチャを観察し、音声および動画を記録し、視覚および音声コマンドを受信および送信するべく、バス505に結合され得る。
【0033】
コンピューティングシステム500は、ネットワークインターフェース580を更に含み、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、パーソナルエリアネットワーク(PAN)、Bluetooth(登録商標)、クラウドネットワーク、モバイルネットワーク(例えば第3世代移動通信システム(3G)等)、イントラネット、インターネット等のネットワークへのアクセスを提供し得る。ネットワークインターフェース580は、例えば、アンテナ585を有する無線ネットワークインターフェースを含み、アンテナ585は、1または複数のアンテナを表し得る。また、ネットワークインターフェース580は、例えば、ネットワークケーブル587を介して複数の遠隔デバイスと通信する有線ネットワークインターフェースを含み、ネットワークケーブル587は、例えば、イーサネット(登録商標)ケーブル、同軸ケーブル、光ファイバケーブル、シリアルケーブル、またはパラレルケーブルであり得る。
【0034】
ネットワークインターフェース580は、例えば、IEEE802.1 lbおよび/またはIEEE802.1 lg規格に適合することによりLANへのアクセスを提供し、および/または無線ネットワークインターフェースは、例えば、複数のBluetooth(登録商標)規格に適合することによりパーソナルエリアネットワークへのアクセスを提供し得る。
【0035】
以前および後のバージョンの規格を含む他の複数の無線ネットワークインターフェースおよび/またはプロトコルもサポートされ得る。
【0036】
複数の無線LAN規格による通信に加えて、またはこれの代わりに、ネットワークインターフェース580は、例えば、時間分割多重アクセス(TDMA)プロトコル、モバイル通信用グローバルシステム(GSM(登録商標))プロトコル、コード分割多重アクセス(CDMA)プロトコル、および/またはその他のタイプの複数の無線通信プロトコルを用いる無線通信を提供し得る。
【0037】
ネットワークインターフェース580は、例えば、モデム、ネットワークインタフェースカード、またはLANまたはWANをサポートするべく通信リンクを提供する目的のためのイーサネット(登録商標)、トークンリング、または他のタイプの複数の物理的な有線もしくは無線アタッチメントに結合するために用いられるもの等、他の複数の周知のインターフェースデバイス等の1または複数の通信インターフェースを含み得る。このように、コンピュータシステムは、例えば、イントラネットまたはインターネットを含む従来のネットワークインフラストラクチャによるいくつかの周辺機器、クライアント、コントロールサーフェス、コンソールまたはサーバにも結合され得る。
【0038】
上記の例よりも少ないか、または多い装備システムが特定の複数の実装例には好ましい場合があることを理解されたい。従って、コンピューティングシステム500の構成は、価格の制約、性能要件、技術的改善、または他の条件等の様々な要素に応じて実装例毎に異なり得る。電子デバイスまたはコンピュータシステム500の例としては、モバイルデバイス、パーソナルデジタルアシスタント、モバイルコンピューティングデバイス、スマートフォン、携帯電話、ハンドセット、ワンウェイページャ、ツーウェイページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバ、サーバアレイもしくはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、一般消費者向け電子機器、プログラマブル一般消費者向け電子機器、テレビ、デジタルテレビ、セットトップボックス、無線アクセスポイント、基地局、加入者局、モバイル加入者センタ、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械、またはこれらの組み合わせが挙げられ得るが、これらに限定されない。
【0039】
複数の実施形態は、親基板を使用して相互接続される1または複数のマイクロチップまたは集積回路、ハードワイヤによるロジック、メモリデバイスにより格納され、マイクロプロセッサ、ファームウェア、特定用途向け集積回路(ASIC)、および/またはフィールドプログラマブルゲートアレイ(FPGA)により実行されるソフトウェアのいずれかまたは組み合わせとして実装され得る。「ロジック」という用語は、例として、ソフトウェアもしくはハードウェア、および/またはソフトウェアおよびハードウェアの組み合わせを含み得る。
【0040】
複数の実施形態は、例えば、コンピュータ、複数のコンピュータのネットワーク、または他の複数の電子デバイス等の1または複数の機械により実行されると、本発明の実施形態による複数のオペレーションを実行する1または複数の機械をもたらし得る機械実行可能な複数の命令を格納した1または複数の機械可読媒体を含み得るコンピュータプログラム製品として提供され得る。機械可読媒体としては、フロッピー(登録商標)ディスケット、光ディスク、CD−ROM(コンパクトディスク読み取り専用メモリ)、ならびに光磁気ディスク、ROM、RAM、EPROM(消去可能プログラマブル読み取り専用メモリ)、EEPROM(電気的に消去可能なプログラマブル読み取り専用メモリ)、磁気もしくは光カード、フラッシュメモリ、または機械実行可能な複数の命令を格納するのに好適な他のタイプの媒体/機械可読媒体が挙げられ得るが、これらに限定されない。
【0041】
更に、複数の実施形態は、コンピュータプログラム製品としてダウンロードされ、プログラムは、搬送波において実施され、および/またはこれにより変調される1または複数のデータ信号または通信リンク(例えば、モデムおよび/またはネットワーク接続)を介する他の伝播媒体により、遠隔コンピュータ(例えば、サーバ)から要求元コンピュータ(例えば、クライアント)に送信され得る。従って、本明細書において用いるように、機械可読媒体は、そのような搬送波を備えてもよいが、必要とはされない。
【0042】
「一実施形態」、「実施形態」、「例示的な実施形態」、「様々な実施形態」等に参照することにより、そのように説明する本発明の実施形態が特定の複数の特徴、構造、または特性を備え得ることを示すが、全ての実施形態は、特定の複数の特徴、構造、または特性を必ずしも備えるものではない。更に、いくつかの実施形態は、複数の他の実施形態について説明した複数の特徴のいくつか、もしくは全てを備え、またはそれらを全く備えないこともある。
【0043】
以下の説明および特許請求の範囲において、「結合された」という用語は、その複数の派生語と共に使用され得る。「結合された」は、2またはそれ以上の要素が互いに共働またはインタラクトすることを示すべく用いられるが、その間に介在する物理的または電気的な複数のコンポーネントを有することもあり、有しないこともある。
【0044】
特許請求の範囲において使用するように、別途指定しない限り、共通の要素を説明するべく序数形容詞「第1の」、「第2の」、「第3の」等を使用しても、同様の複数の要素の異なる例を参照することを単に示すのみであり、そのように説明する複数の要素が時間的、空間的、順位、またはその他の様式のいずれかにおいて所与の順序でなければならないことの示唆を意図するものではない。
【0045】
以下の複数の節および/または例は、更なる複数の実施形態または例に関する。
【0046】
これらの例における具体的事柄は、1または複数の実施形態のいずれかの箇所で使用され得る。異なる実施形態または例の様々な特徴は、含まれるいくつかの特徴と様々に組み合わされ、他の特徴は、様々な異なる用途に適するように除外されてもよい。いくつかの実施形態は、コンピューティングデバイスのソフトウェアアプリケーションから読み取り要求を受信し、コンピューティングデバイスに結合されたストレージデバイスに格納されたデータの第1のデータブロックに関する読み取りタスクを実行する段階と、第1のデータブロックに関連する第1のメタデータキャッシュにおいて第1の参照暗号化コードにアクセスする段階と、第1のデータブロックに関する第1の新しい暗号化コードを算出する段階と、第1の新しい暗号化コードを第1の参照暗号化コードと比較する段階と、第1の新しい暗号化コードが第1の参照暗号化コードに一致する場合に、読み取り要求を承諾する段階とを備え、読み取りタスクは、第1のデータブロックを読み取ることを含み、承諾する段階は、読み取りタスクを促進する段階を有する、方法に関する。
【0047】
複数の実施形態または例は、第1の新しい暗号化コードが第1の参照暗号化コードと不一致の場合に読み取り要求を拒否する段階を更に備え、拒否する段階は、読み取り要求に応答してエラーメッセージを発行する段階を有し、第1の参照暗号化コードを含むデータブロックが第1のメタデータキャッシュから欠落する場合、読み取り要求を提出し、欠落したデータブロックに対する読み取りタスクを促進する、上記の複数の方法のいずれかを備える。
【0048】
複数の実施形態または例は、第1の参照暗号化コードおよび新しい暗号化コードが、ハッシュベースのメッセージ認証コード(HMAC)を含む、上記の複数の方法のいずれかを備える。
【0049】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを有する、上記の複数の方法のいずれかを備える。
【0050】
複数の実施形態または例は、コンピューティングデバイスのソフトウェアアプリケーションから書き込み要求を受信し、第2のデータブロックに関する書き込みタスクを実行する段階と、第2のデータブロックに関連する第2のメタデータキャッシュにおいて第2の参照暗号化コードにアクセスする段階と、第2のデータブロックに関する第2の新しい暗号化コードを算出する段階と、第2のメタデータキャッシュ中の第2の新しい暗号化コードにより第2の参照暗号化コードを置換する段階と、書き込み要求を承諾する段階とを更に備え、書き込みタスクは、ストレージデバイスに格納されたデータに第2のデータブロックを書き込むことを含み、承諾する段階は、書き込みタスクを促進する段階を有する、上記の複数の方法のいずれかを備える。
【0051】
複数の実施形態または例は、第2の新しい暗号化コードを複数の将来の読み取り要求のための参照暗号化コードとして使用するように、第2のメタデータキャッシュが第2の新しい暗号化コードを維持する、上記の複数の方法のいずれかを備える。
【0052】
複数の実施形態または例は、第2の参照暗号化コードおよび第2の新しい暗号化コードが、ハッシュベースのメッセージ認証コード(HMAC)を含む、上記の複数の方法のいずれかを備える。
【0053】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを有する、上記の複数の方法のいずれかを備える。
【0054】
別の実施形態または例において、装置は、コンピューティングデバイスでソフトウェアアプリケーションから読み取り要求を受信し、コンピューティングデバイスに結合されたストレージデバイスに格納されたデータの第1のデータブロックに関する読み取りタスクを実行する第1のロジックと、第1のデータブロックに関連する第1のメタデータキャッシュで第1の参照暗号化コードにアクセスする第2のロジックと、第1のデータブロックに関する第1の新しい暗号化コードを算出する第3のロジックと、第1の新しい暗号化コードを第1の参照暗号化コードと比較する第4のロジックと、第1の新しい暗号化コードが第1の参照暗号化コードと一致する場合に読み取り要求を承諾する第5のロジックとを備え、読み取りタスクは、第1のデータブロックを読み取ることを含み、承諾する段階は、読み取りタスクを促進する段階を有する。
【0055】
複数の実施形態または例は、第1の新しい暗号化コードが第1の参照暗号化コードと不一致の場合に、第5のロジックは、読み取り要求を更に拒否し、拒否することは、読み取り要求に応答してエラーメッセージを発行することを含み、第1の参照暗号化コードを含むデータブロックが第1のメタデータキャッシュから欠落する場合に、読み取り要求を提出し、欠落したデータブロックに対する読み取りタスクを促進する上記の装置を備える。
【0056】
複数の実施形態または例は、第1の参照暗号化コードおよび新しい暗号化コードが、ハッシュベースのメッセージ認証コード(HMAC)を含む、上記の装置を備える。
【0057】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを含む、上記装置を備える。
【0058】
複数の実施形態または例は、第1のロジックは、コンピューティングデバイスでソフトウェアアプリケーションから書き込み要求を更に受信し、第2のデータブロックに関する書き込みタスクを実行し、書き込みタスクは、ストレージデバイスに格納されたデータに第2のデータブロックを書き込むことを含み、第2のロジックは、第2のデータブロックに関連する第2のメタデータキャッシュで第2の参照暗号化コードに更にアクセスし、第3のロジックは、第2のデータブロックに関する第2の新しい暗号化コードを更に算出し、第4のロジックは、第2のメタデータキャッシュ中の第2の新しい暗号化コードにより第2の参照暗号化コードを更に置換し、第5のロジックは、書き込み要求を更に承諾し、承諾することは、書き込みタスクを促進することを含む、上記の装置を備える。
【0059】
複数の実施形態または例は、複数の将来の読み取り要求のために第2の新しい暗号化コードを参照暗号化コードとして使用するように、第2のメタデータキャッシュは、第2の新しい暗号化コードを維持する、上記の装置を備える。
【0060】
複数の実施形態または例は、第2の参照暗号化コードおよび第2の新しい暗号化コードが、ハッシュベースのメッセージ認証コード(HMAC)を含む、上記の装置を備える。
【0061】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを含む、上記装置を備える。
【0062】
別の実施形態または例において、システムは、命令を格納するメモリを有するコンピューティングデバイスと、複数の命令を実行する処理デバイスとを備え、コンピューティングデバイスは、コンピューティングデバイスでソフトウェアアプリケーションから読み取り要求を受信し、コンピューティングデバイスに結合されたストレージデバイスに格納されたデータの第1のデータブロックに関する読み取りタスクを実行し、第1のデータブロックに関連する第1のメタデータキャッシュで第1の参照暗号化コードにアクセスし、第1のデータブロックに関する第1の新しい暗号化コードを算出し、第1の新しい暗号化コードを第1の参照暗号化コードと比較し、第1の新しい暗号化コードが第1の参照暗号化コードと一致する場合に読み取り要求を承諾するメカニズムを更に有し、読み取りタスクは、第1のデータブロックを読み取ることを含み、承諾することは、読み取りタスクを促進することを含む。
【0063】
複数の実施形態または例は、第1の新しい暗号化コードが第1の参照暗号化コードと不一致の場合に、第5のロジックは、読み取り要求を更に拒否し、拒否することは、読み取り要求に応答してエラーメッセージを発行することを含み、第1の参照暗号化コードを含むデータブロックが第1のメタデータキャッシュから欠落する場合に、読み取り要求を提出し、欠落したデータブロックに対する読み取りタスクを促進する、上記システムを備える。
【0064】
複数の実施形態または例は、第1の参照暗号化コードおよび第1の新しい暗号化コードが、ハッシュベースのメッセージ認証コード(HMAC)を含む、上記のシステムを備える。
【0065】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを含む、上記システムを備える。
【0066】
複数の実施形態または例は、第1のロジックが、コンピューティングデバイスでソフトウェアアプリケーションから書き込み要求を更に受信し、第2のデータブロックに関する書き込みタスクを実行し、書き込みタスクは、ストレージデバイスに格納されたデータに第2のデータブロックを書き込むことを含み、第2のロジックは、第2のデータブロックに関連する第2のメタデータキャッシュで第2の参照暗号化コードに更にアクセスし、第3のロジックは、第2のデータブロックに関する第2の新しい暗号化コードを更に算出し、第4のロジックは、第2のメタデータキャッシュ中の第2の新しい暗号化コードにより第2の参照暗号化コードを更に置換し、第5のロジックは、書き込み要求を更に承諾し、承諾することは、書き込みタスクを促進することを含む、上記のシステムを備える。
【0067】
複数の実施形態または例は、複数の将来の読み取り要求のために第2の新しい暗号化コードを参照暗号化コードとして使用するように、第2のメタデータキャッシュは、第2の新しい暗号化コードを維持する、上記のシステムを備える。
【0068】
複数の実施形態または例は、第2の参照暗号化コードおよび第2の新しい暗号化コードが、ハッシュベースのメッセージ認証コード(HMAC)を含む、上記のシステムを備える。
【0069】
複数の実施形態または例は、ソフトウェアアプリケーションが、コンピューティングデバイスで起動するオペレーティングシステムを含む、上記のシステムを備える。
【0070】
別の実施形態または例において、装置は、上述の1つまたは複数の動作のいずれかを実行する手段を備える。
【0071】
更に別の実施形態または例において、少なくとも1つの機械可読媒体は、コンピューティングデバイス上で実行されることに応答して、コンピューティングデバイスに上述の1つまたは複数のオペレーションのいずれかによる方法を実行させる複数の命令を含む。更に別の実施形態または例において、少なくとも1つの非一時的または有形の機械可読媒体は、コンピューティングデバイス上で実行されることに応答して、コンピューティングデバイスに上述の1つまたは複数オペレーションのいずれかによる方法を実行させる、複数の命令を含む。
【0072】
更に別の実施形態または例において、コンピューティングデバイスは、上述の1つまたは複数のオペレーションのいずれかによる方法を実行するように構成される。
【0073】
複数の図面および上記の説明は、複数の実施形態の例を与える。当業者は、説明した要素の1つまたは複数を組み合わせて単一の機能要素にし得ることを理解するであろう。あるいは、特定の複数の要素は、複数の機能要素に分割してもよい。一実施形態の複数の要素は、別の実施形態に付加してもよい。例えば、本明細書において説明する処理の順序を変更し得るが、本明細書において説明する様式には限定されない。更に、いずれかの流れ図におけるアクションを、示す順序で実装する必要はなく、動作の全ては、必ずしも実行する必要はない。また、他の動作に依存しない動作を他の動作と並行に実行してもよい。複数の実施形態の範囲は、これらの具体的な例によって限定されるものではない。構造における差異、寸法、および材料の使用等、様々な変形形態は、明細書において明示的に与えられているか否かに関わらず、可能である。複数の実施形態の範囲は、少なくとも、以下の特許請求の範囲により与えられるのと同程度に広範である。
図1
図2
図3
図4A
図4B
図5