(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-21
(54)【発明の名称】許可された暗号化
(51)【国際特許分類】
G06F 21/55 20130101AFI20240214BHJP
H04L 9/32 20060101ALI20240214BHJP
H04L 9/14 20060101ALI20240214BHJP
G06F 21/44 20130101ALI20240214BHJP
G06F 21/60 20130101ALI20240214BHJP
【FI】
G06F21/55
H04L9/32 200A
H04L9/32 200E
H04L9/14
G06F21/44
G06F21/60 320
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023544596
(86)(22)【出願日】2022-02-17
(85)【翻訳文提出日】2023-07-24
(86)【国際出願番号】 EP2022053949
(87)【国際公開番号】W WO2022184456
(87)【国際公開日】2022-09-09
(32)【優先日】2021-03-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ハント、ガーニー
(72)【発明者】
【氏名】ヘッツラー、スティーブン、ロバート
(57)【要約】
コンピュータプログラム製品は、1つ又は複数のコンピュータ可読記憶媒体、及び、暗号化を実行することを許可されたものとしてアプリケーションを認証するためのプログラム命令、及び認証された暗号化層でデータを受信するためのプログラム命令を有する、1つ又は複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令を備える。コンピュータプログラム製品は、暗号化キーを用いてデータを暗号化するためのプログラム命令、ここで、暗号化キーはアプリケーションにおいて使用できない、及び、暗号化データのウォーターマークトークンを生成するためのプログラム命令を更に備える。コンピュータプログラム製品は、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データのウォーターマークを生成するためのプログラム命令、及び、暗号化データ、ウォーターマークトークン、及びウォーターマークをストレージシステムに送信するためのプログラム命令を更に備える。ストレージシステムは、ウォーターマークキーを用いてストレージ用の暗号化データを検証するように構成されている。
【特許請求の範囲】
【請求項1】
1つ又は複数のコンピュータ可読記憶媒体、及び
前記1つ又は複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令
を備え、前記プログラム命令は:
暗号化を実行することを許可されたものとしてアプリケーションを認証する手順、
認証された暗号化層でデータを受信する手順、
暗号化キーを用いて前記データを暗号化する手順、ここで前記暗号化キーは、前記アプリケーションにおいて使用できない、
前記暗号化データのウォーターマークトークンを生成する手順、
前記ウォーターマークトークン及びウォーターマークキーを用いて前記暗号化データのウォーターマークを生成する手順;及び
前記暗号化データ、前記ウォーターマークトークン、及び前記ウォーターマークをストレージシステムに送信する手順、ここで前記ストレージシステムは、前記ウォーターマークキーを用いてストレージ用の前記暗号化データを検証するように構成されている
を行うためにコンピュータにより実行可能である、コンピュータプログラム製品。
【請求項2】
前記暗号化データのウォーターマークトークンを生成するための前記プログラム命令は、混合キーを使用する、請求項1に記載のコンピュータプログラム製品。
【請求項3】
前記ウォーターマークは、キー付きハッシュメッセージ認証コードである、請求項1又は請求項2に記載のコンピュータプログラム製品。
【請求項4】
暗号化を実行することを許可されたものとして前記アプリケーションを認証する手順に応答して、前記データに対する前記暗号化キーを要求する手順;及び
前記データに対する前記ウォーターマークキーを要求する手順
を行うために実行可能であるプログラム命令を更に備える、請求項1又は請求項2に記載のコンピュータプログラム製品。
【請求項5】
前記暗号化の前に、プレフィルタ関数により、前記データが未知の暗号化キーで予め暗号化されているかどうかを判定する手順;及び
前記データが予め暗号化されていると判定する手順に応答して、前記暗号化キーを用いた暗号化から前記データをブロックする手順
のためのプログラム命令を更に備える、請求項1又は請求項2に記載のコンピュータプログラム製品。
【請求項6】
前記アプリケーションが、暗号化を実行することを許可されていないと判定する手順に応答して、前記暗号化キーを用いた暗号化から前記データをブロックする手順のためのプログラム命令を備える、請求項1又は請求項2に記載のコンピュータプログラム製品。
【請求項7】
1つ又は複数のコンピュータ可読記憶媒体、及び
前記1つ又は複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令
を備え、前記プログラム命令は:
暗号化データ、ウォーターマークトークン、メタデータ、及び前記暗号化データの第1のウォーターマークをストレージシステムで受信する手順のためのプログラム命令、
前記メタデータに関連付けられたウォーターマークキーを受信する手順のためのプログラム命令、
前記ウォーターマークトークン及び前記ウォーターマークキーを用いて前記暗号化データの第2のウォーターマークを生成する手順のためのプログラム命令;及び
前記暗号化データの前記第2のウォーターマークを、前記暗号化データの前記第1のウォーターマークと比較する手順のためのプログラム命令
を有する、コンピュータプログラム製品。
【請求項8】
前記第2のウォーターマークが前記第1のウォーターマークと一致すると判定する手順に応答して、前記暗号化データ及び前記第1のウォーターマークを記憶する手順を備える、請求項7に記載のコンピュータプログラム製品。
【請求項9】
前記第2のウォーターマークが前記第1のウォーターマークと一致しないと判定する手順に応答して、前記暗号化データ及び前記第1のウォーターマークのストレージをブロックする手順のためのプログラム命令を備える、請求項7に記載のコンピュータプログラム製品。
【請求項10】
前記第2のウォーターマークが前記第1のウォーターマークと一致しないと判定する手順に応答して、ユーザに警告を送信する手順のためのプログラム命令を備える、請求項9に記載のコンピュータプログラム製品。
【請求項11】
前記ストレージシステムは、前記暗号化データが暗号化される際に用いられる暗号化キーへのアクセスを有しない、請求項7に記載のコンピュータプログラム製品。
【請求項12】
暗号化を実行することを許可されたものとしてアプリケーションを認証する段階、
認証された暗号化層でデータを受信する段階、
暗号化キーを用いて前記データを暗号化する段階、ここで前記暗号化キーは、前記アプリケーションにおいて使用できない、
前記暗号化データのウォーターマークトークンを生成する段階、
前記ウォーターマークトークン及びウォーターマークキーを用いて前記暗号化データのウォーターマークを生成する段階;及び
前記暗号化データ、前記ウォーターマークトークン、及び前記ウォーターマークをストレージシステムに送信する段階、ここで前記ストレージシステムは、前記ウォーターマークキーを用いてストレージ用の前記暗号化データを検証するように構成されている
を備える、コンピュータ実装方法。
【請求項13】
混合キーを用いて前記ウォーターマークトークンを生成する段階を備える、請求項12に記載のコンピュータ実装方法。
【請求項14】
前記ウォーターマークは、キー付きハッシュメッセージ認証コードである、請求項12又は請求項13に記載のコンピュータ実装方法。
【請求項15】
暗号化を実行することを許可されたものとして前記アプリケーションを認証する段階に応答して、前記データに対する前記暗号化キーを要求する段階;及び
前記データに対する前記ウォーターマークキーを要求する段階
を備える、請求項12又は請求項13に記載のコンピュータ実装方法。
【請求項16】
前記暗号化の前に、プレフィルタ関数により、前記データが未知の暗号化キーで予め暗号化されているかどうかを判定する段階;及び
前記データが予め暗号化されていると判定する段階に応答して、前記暗号化キーを用いた暗号化から前記データをブロックする段階
を備える、請求項12又は請求項13に記載のコンピュータ実装方法。
【請求項17】
前記アプリケーションが、暗号化を実行することを許可されていないと判定する段階に応答して、前記暗号化キーを用いた暗号化から前記データをブロックする段階を備える、請求項12又は請求項13に記載のコンピュータ実装方法。
【請求項18】
暗号化データ、ウォーターマークトークン、メタデータ、及び前記暗号化データの第1のウォーターマークをストレージシステムで受信する段階、
前記メタデータに関連付けられたウォーターマークキーを受信する段階、
前記ウォーターマークトークン及び前記ウォーターマークキーを用いて前記暗号化データの第2のウォーターマークを生成する段階;及び
前記暗号化データの前記第2のウォーターマークを、前記暗号化データの前記第1のウォーターマークと比較する段階
を備える、コンピュータ実装方法。
【請求項19】
前記第2のウォーターマークが前記第1のウォーターマークと一致すると判定する段階に応答して、前記暗号化データ及び前記第1のウォーターマークを記憶する段階を備える、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記第2のウォーターマークが前記第1のウォーターマークと一致しないと判定する段階に応答して、前記暗号化データ及び前記第1のウォーターマークのストレージをブロックする段階を備える、請求項18に記載のコンピュータ実装方法。
【請求項21】
前記第2のウォーターマークが前記第1のウォーターマークと一致しないと判定する段階に応答して、ユーザに警告を送信する段階を備える、請求項20に記載のコンピュータ実装方法。
【請求項22】
前記ストレージシステムは、前記暗号化データが暗号化される際に用いられる暗号化キーへのアクセスを有しない、請求項19に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して暗号化に関し、より具体的には、クラウドストレージシステム及びネットワークにおける許可された暗号化に関する。
【背景技術】
【0002】
攻撃者による、被害者に知られていないキーを用いた被害者のデータの暗号化などの無許可のデータの暗号化は、セキュリティ上の主要課題である。そのようなランサムウェア型攻撃は、被害者において、費用がかかり得る、又は回復不可能であり得るサービス妨害を生じさせる。例えば、そのような攻撃は、被害者のデータのロックを解除するために必要とされる暗号化キーと引き換えに身代金が要求されるランサムウェア型攻撃を含む。
【0003】
マルウェアはまた、及び/又は代替的に、流出型攻撃において、許可を伴うことなく、無許可のデータ転送(例えば、データの複製、転送、取り込みがなされる等)を実行し得る。
【0004】
必要なのは、データ所有者がデータを復号できるよう、システム内の暗号化データが許可された方法で暗号化されていることを確実にするための方法である。
【発明の概要】
【0005】
本発明の一態様に係る許可された暗号化スキームは、暗号化が、無許可のプロセスではなく、許可された暗号化層により実行されたものであることを検証し得る。ランサムウェア型攻撃は、それにより、有益にブロックされる。流出型攻撃もまた、許可された暗号化を用いることを認められた認証及び/又は証明されたアプリケーションによる許可された暗号化を用いてデータが暗号化されることを要求することにより、高度に制限され得る。
【0006】
一手法に係るコンピュータプログラム製品は、1つ又は複数のコンピュータ可読記憶媒体、及び1つ又は複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令を備え、プログラム命令は、暗号化を実行することを許可されたものとしてアプリケーションを認証するためのプログラム命令、及び認証された暗号化層でデータを受信するためのプログラム命令を有する。プログラム命令は、暗号化キーを用いてデータを暗号化するためのプログラム命令、ここで、暗号化キーはアプリケーションにおいて使用できない、及び、暗号化データのウォーターマークトークンを生成するためのプログラム命令を有する。プログラム命令は、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データのウォーターマークを生成するためのプログラム命令、及び、暗号化データ、ウォーターマークトークン、及びウォーターマークをストレージシステムに送信するためのプログラム命令を有する。ストレージシステムは、ウォーターマークキーを用いてストレージ用の暗号化データを検証するように構成されている。コンピュータプログラム製品は、暗号化が、無許可のプロセスではなく、許可された暗号化層により実行されたことを検証するための能力を有益に提供する。
【0007】
コンピュータプログラム製品は、任意選択的に、暗号化の前に、プレフィルタ関数により、データが未知の暗号化キーで予め暗号化されているかどうかを判定するためのプログラム命令、及び、データが予め暗号化されていると判定することに応答して、暗号化キーを用いた暗号化からデータをブロックするためのプログラム命令を備える。この任意選択的な手法は、ランサムウェア型攻撃に対する追加的なセキュリティの層を提供する。
【0008】
一手法に係るコンピュータ実装方法は、暗号化を実行することを許可されたものとしてアプリケーションを認証する段階、認証された暗号化層でデータを受信する段階、暗号化キーを用いてデータを暗号化する段階、ここで暗号化キーは、アプリケーションにおいて使用できない、暗号化データのウォーターマークトークンを生成する段階、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データのウォーターマークを生成する段階、及び暗号化データ、ウォーターマークトークン、及びウォーターマークをストレージシステムに送信する段階、を備える。ストレージシステムは、ウォーターマークキーを用いてストレージ用の暗号化データを検証するように構成されている。コンピュータ実装方法は、暗号化が、無許可のプロセスではなく、許可された暗号化層により実行されたことを検証するための能力を有益に提供する。
【0009】
別の手法に係るコンピュータプログラム製品は、1つ又は複数のコンピュータ可読記憶媒体、及び1つ又は複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令を備え、プログラム命令は、暗号化データ、ウォーターマークトークン、メタデータ、及び暗号化データの第1のウォーターマークをストレージシステムで受信するためのプログラム命令、及び、メタデータに関連付けられたウォーターマークキーを受信するためのプログラム命令を有する。プログラム命令は、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データの第2のウォーターマークを生成するためのプログラム命令、及び、暗号化データの第2のウォーターマークを、暗号化データの第1のウォーターマークと比較するためのプログラム命令を有する。コンピュータプログラム製品は、ブロックを書き込む前に、及び/又はブロックを読み出した後に、ストレージシステムにより、許可された暗号化を検証するための能力を有益に提供する。検証に失敗したブロックは、ストレージに書き込まれない、又は同様に、読み出しは要求者に返されない。
【0010】
コンピュータプログラム製品は、第2のウォーターマークが第1のウォーターマークと一致しないと判定することに応答して、ユーザに警告を送信するためのプログラム命令を任意選択的に備える。この任意選択的な手法は、データが、ストレージシステムに到達する前に改ざんされた可能性があることをユーザに警告するための能力を提供する。
【0011】
一手法に係るコンピュータ実装方法は、暗号化データ、ウォーターマークトークン、メタデータ、及び暗号化データの第1のウォーターマークをストレージシステムで受信する段階、メタデータに関連付けられたウォーターマークキーを受信する段階、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データの第2のウォーターマークを生成する段階、及び暗号化データの第2のウォーターマークを、暗号化データの第1のウォーターマークと比較する段階を備える。コンピュータ実装方法は、ブロックを書き込む前に、及び/又はブロックを読み出した後に、ストレージシステムにより、許可された暗号化を検証するための能力を有益に提供する。検証に失敗したブロックは、ストレージに書き込まれない、又は同様に、読み出しは要求者に返されない。
【0012】
別の手法に係るコンピュータプログラム製品は、1つ又は複数のコンピュータ可読記憶媒体、及び1つ又は複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令を備え、プログラム命令は、暗号化を実行することを許可されたものとしてアプリケーションを認証するためのプログラム命令、及び認証された暗号化層でデータを受信するためのプログラム命令を有する。プログラム命令は、暗号化キーを用いてデータを暗号化するためのプログラム命令、ここで、暗号化キーはアプリケーションにおいて使用できない、及び、混合キーを用いて暗号化データのウォーターマークトークンを生成するためのプログラム命令を有する。プログラム命令は、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データのウォーターマークを生成するためのプログラム命令、及び、暗号化データ、ウォーターマークトークン、及びウォーターマークをストレージシステムに送信するためのプログラム命令を更に有する。ストレージシステムは、ウォーターマークキーを用いてストレージ用の暗号化データを検証するように構成されている。コンピュータプログラム製品は、ウォーターマークプロセス、例えば、混合キーへの修正を用いて、Authencrypt検証器によるウォーターマークの改変を検出するための能力を提供する。
【0013】
コンピュータプログラム製品は、ウォーターマークがキー付きハッシュメッセージ認証コードであることを任意選択的に備える。この任意選択的な手法は、暗号化データのウォーターマークトークンと称される偽造不可能な表示を生成し、これは、偽造に対する追加的なセキュリティを提供する。
【0014】
本発明の他の態様及び手法は、図面と併せて考慮されるとき、本発明の原理を例として示す以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0015】
【
図1】本発明の一態様に係る、クラウドコンピューティング環境を示す。
【0016】
【
図2】本発明の一態様に係る、抽象化モデル層を示す。
【0017】
【
図3】本発明の一態様に係る、ハイレベルアーキテクチャの図である。
【0018】
【
図4】本発明の一態様に係る、ハイレベルアーキテクチャの図である。
【0019】
【
図5】本発明の一態様に係る、方法のフローチャートである。
【0020】
【
図6】本発明の一態様に係る、方法のフローチャートである。
【発明を実施するための形態】
【0021】
以下の説明は、本発明の一般的な原理を例示する目的でなされたものであり、本明細書で請求される発明の概念を限定することを意図するものではない。
更に、本明細書に記載の特定の特徴は、様々な可能な組み合わせ及び置換のそれぞれにおいて、他の説明された特徴と組み合わせて用いられ得る。
【0022】
本明細書において別段の具体的な定義がなされない限り、全ての用語は、本明細書から示唆される意味、並びに、当業者によって理解される意味、及び/又は辞書、論文などで定義される意味を含め、それらの最も広い可能な解釈が与えられるものとする。
【0023】
また、本明細書及び添付の特許請求の範囲において用いられる単数形の「a」、「an」及び「the」は、別段の指定がない限り、複数の指示対象を含むことに留意が必要である。「含む(comprises)」及び/又は「含む(comprising)」という用語は、本明細書において用いられるとき、記載されている特徴、整数、段階、動作、要素及び/又はコンポーネントの存在を指定するが、1つ又は複数の他の特徴、整数、段階、動作、要素、コンポーネント及び/又はそれらの群の存在又は追加を除外しないことが更に理解されるであろう。
【0024】
以下の説明では、許可された暗号化を検出すること、及び無許可の暗号化を用いて暗号化されているデータのストレージをブロックすることの幾つかの態様を開示する。
【0025】
1つの一般的な態様において、コンピュータプログラム製品は、1つ又は複数のコンピュータ可読記憶媒体、及び1つ又は複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令を備え、プログラム命令は、暗号化を実行することを許可されたものとしてアプリケーションを認証するためのプログラム命令、及び、認証された暗号化層でデータを受信するためのプログラム命令を有する。プログラム命令は、暗号化キーを用いてデータを暗号化するためのプログラム命令、ここで、暗号化キーはアプリケーションにおいて使用できない、及び、暗号化データのウォーターマークトークンを生成するためのプログラム命令を有する。プログラム命令は、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データのウォーターマークを生成するためのプログラム命令、及び、暗号化データ、ウォーターマークトークン、及びウォーターマークをストレージシステムに送信するためのプログラム命令を有する。ストレージシステムは、ウォーターマークキーを用いてストレージ用の暗号化データを検証するように構成されている。
【0026】
別の一般的な態様において、コンピュータ実装方法は、暗号化を実行することを許可されたものとしてアプリケーションを認証する段階、認証された暗号化層でデータを受信する段階、暗号化キーを用いてデータを暗号化する段階、ここで暗号化キーは、アプリケーションにおいて使用できない、暗号化データのウォーターマークトークンを生成する段階、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データのウォーターマークを生成する段階、及び暗号化データ、ウォーターマークトークン、及びウォーターマークをストレージシステムに送信する段階を備える。ストレージシステムは、ウォーターマークキーを用いてストレージ用の暗号化データを検証するように構成されている。
【0027】
別の一般的な態様において、コンピュータプログラム製品は、1つ又は複数のコンピュータ可読記憶媒体、及び1つ又は複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令を備え、プログラム命令は、暗号化データ、ウォーターマークトークン、メタデータ、及び暗号化データの第1のウォーターマークをストレージシステムで受信するためのプログラム命令、及び、メタデータに関連付けられたウォーターマークキーを受信するためのプログラム命令を有する。プログラム命令は、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データの第2のウォーターマークを生成するためのプログラム命令、及び、暗号化データの第2のウォーターマークを、暗号化データの第1のウォーターマークと比較するためのプログラム命令を有する。
【0028】
1つの一般的な態様において、コンピュータ実装方法は、暗号化データ、ウォーターマークトークン、メタデータ、及び暗号化データの第1のウォーターマークをストレージシステムで受信する段階、メタデータに関連付けられたウォーターマークキーを受信する段階、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データの第2のウォーターマークを生成する段階、及び暗号化データの第2のウォーターマークを、暗号化データの第1のウォーターマークと比較する段階を備える。
【0029】
別の一般的な態様において、コンピュータプログラム製品は、1つ又は複数のコンピュータ可読記憶媒体、及び1つ又は複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令を備え、プログラム命令は、暗号化を実行することを許可されたものとしてアプリケーションを認証するためのプログラム命令、及び、認証された暗号化層でデータを受信するためのプログラム命令を有する。プログラム命令は、暗号化キーを用いてデータを暗号化するためのプログラム命令、ここで、暗号化キーはアプリケーションにおいて使用できない、及び、混合キーを用いて暗号化データのウォーターマークトークンを生成するためのプログラム命令を有する。プログラム命令は、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データのウォーターマークを生成するためのプログラム命令、及び、暗号化データ、ウォーターマークトークン、及びウォーターマークをストレージシステムに送信するためのプログラム命令を更に有する。ストレージシステムは、ウォーターマークキーを用いてストレージ用の暗号化データを検証するように構成されている。
【0030】
本開示はクラウドコンピューティングについての詳細な説明を含むが、本明細書で記載される教示内容の実装は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の態様は、現在既知又は将来開発される任意の他のタイプのコンピューティング環境と共に実装され得る。
【0031】
クラウドコンピューティングは、最小限の管理労力又はサービスのプロバイダとの対話で迅速にプロビジョニング及びリリースされ得る構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、及びサービス)の共有プールに対する便利なオンデマンドネットワークアクセスを可能にするための、サービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
【0032】
特性は以下の通りである。
【0033】
オンデマンドのセルフサービス:クラウドコンシューマは、サービスのプロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間及びネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングし得る。
【0034】
幅広いネットワークアクセス:能力はネットワークを介して使用可能であり、異種混交のシンクライアントプラットフォーム又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA(登録商標))による使用を促進する標準的なメカニズムを通じてアクセスされる。
【0035】
リソースプーリング:プロバイダのコンピューティングリソースが、マルチテナントモデルを用いて複数のコンシューマにサービスを提供するようにプールされ、異なる物理リソース及び仮想リソースが、需要に従って動的に割り当て及び再割り当てされる。コンシューマは、一般的に、提供されるリソースの厳密な位置に対する制御又は知識を有しないが、より高い抽象化レベル(例えば、国、州、又はデータセンタ)にて位置を指定可能であり得る点において、一種の位置独立性がある。
【0036】
迅速な拡張性:能力を迅速にかつ伸縮自在に、場合によっては自動的にプロビジョニングし、即座にスケールアウトすることも、迅速にリリースして即座にスケールインすることもできる。コンシューマにとって、プロビジョニングのために使用可能な能力は、多くの場合、無制限であるように見え、任意の数量を任意の時期に購入することができる。
【0037】
計測されるサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適したある抽象化レベルで計量能力を活用することにより、リソースの使用を自動的に制御及び最適化する。リソース使用率は、モニタリング、制御、及び報告され、それにより、利用されるサービスのプロバイダ及びコンシューマの両方に透明性を提供することができる。
【0038】
サービスモデルは以下の通りである。
【0039】
サービスとしてのソフトウェア(Software as a Service:SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で実行しているプロバイダのアプリケーションを用いることである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインタフェースを介して様々なクライアントデバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は個々のアプリケーション能力をも含む、基礎となるクラウドインフラストラクチャを管理又は制御しないが、考えられる例外として、限定されたユーザ固有のアプリケーション構成設定がある。
【0040】
サービスとしてのプラットフォーム(Platform as a Service:PaaS):コンシューマに提供される能力は、プロバイダによりサポートされるプログラミング言語及びツールを用いて作成される、コンシューマが作成又は取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基礎となるクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によっては、アプリケーションのホスティング環境構成を制御する。
【0041】
サービスとしてのインフラストラクチャ(Infrastructure as a Service:IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、コンシューマは、オペレーティングシステム及びアプリケーションを含み得る任意のソフトウェアを展開及び実行することができる。コンシューマは、基礎となるクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、及び展開されたアプリケーションを制御し、場合によっては、選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定的に制御する。
【0042】
展開モデルは以下の通りである。
【0043】
プライベートクラウド:クラウドインフラストラクチャは、組織のためだけに運用される。それは、組織又は第三者によって管理され得、オンプレミス又はオフプレミスで存在し得る。
【0044】
コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織により共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシ、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。それは、組織又は第三者によって管理され得、オンプレミス又はオフプレミスで存在し得る。
【0045】
パブリッククラウド:クラウドインフラストラクチャは、一般大衆又は大規模業界団体において使用可能であり、クラウドサービスを販売する組織により所有される。
【0046】
ハイブリッドクラウド:クラウドインフラストラクチャは、独自のエンティティのままであるが、データ及びアプリケーションポータビリティを可能にする標準化技術又は専有技術(例えば、クラウド間の負荷均衡化のためのクラウドバースティング)によって結び付けられた、2つ又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)の複合である。
【0047】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、及びセマンティック相互運用性を重視したサービス指向型である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0048】
ここで
図1を参照すると、説明的なクラウドコンピューティング環境50が図示されている。図示の通り、クラウドコンピューティング環境50は、例えば、パーソナルデジタルアシスタント(PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び/又は自動車コンピュータシステム54Nなど、クラウドコンシューマにより使用されるローカルコンピューティングデバイスが通信することのできる1つ又は複数のクラウドコンピューティングノード10を含む。ノード10は、互いに通信してよい。それらは、上記で説明されたようなプライベートクラウド、コミュニティクラウド、パブリッククラウド又はハイブリッドクラウド、又は、それらの組み合わせなどの1つ又は複数のネットワーク内で物理的に又は仮想的にグループ分け(図示せず)することができる。これにより、クラウドコンピューティング環境50は、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアを、クラウドコンシューマがそのためにローカルコンピューティングデバイス上にリソースを維持する必要がないサービスとして提供することが可能になる。
図1に示すコンピューティングデバイス54A~Nのタイプは例示のみを意図したものであり、コンピューティングノード10及びクラウドコンピューティング環境50は任意のタイプのネットワーク及び/又はネットワークアドレス可能な接続を通じて(例えば、ウェブブラウザを用いて)任意のタイプのコンピュータ化デバイスと通信できることが理解される。
【0049】
ここで
図2を参照すると、クラウドコンピューティング環境50(
図1)により提供された機能的抽象化層のセットが示されている。
図2に示されるコンポーネント、層、及び機能は、説明のみを意図しており、本発明の態様はそれらに限定されないことが事前に理解されるべきである。図示の通り、以下の層及び対応する機能が提供される。
【0050】
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェアコンポーネントを備える。ハードウェアコンポーネントの例は、メインフレーム61;RISC(縮小命令セットコンピュータ)アーキテクチャベースサーバ62;サーバ63;ブレードサーバ64;ストレージデバイス65;及び、ネットワーク及びネットワーキングコンポーネント66を含む。幾つかの態様において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67及びデータベースソフトウェア68を含む。
【0051】
仮想化層70は抽象化層を提供し、そこから、仮想エンティティの以下の例、すなわち、仮想サーバ71;仮想ストレージ72;仮想プライベートネットワークを含む仮想ネットワーク73;仮想アプリケーション及びオペレーティングシステム74;及び仮想クライアント75が提供され得る。
【0052】
一例において、管理層80は、以下で説明される機能を提供し得る。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計測及び価格設定82は、リソースがクラウドコンピューティング環境内で利用される際のコスト追跡、及び、これらのリソースの消費に対する課金又は請求書を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウドコンシューマ及びタスクについての身元確認、並びに、データ及び他のリソースについての保護を提供する。ユーザポータル83は、コンシューマ及びシステム管理者に対し、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウドコンピューティングリソース割り当て及び管理を提供する。サービスレベルアグリーメント(SLA)の計画及び履行85は、SLAに従って将来の要件が予想されるクラウドコンピューティングリソースの事前調整及び調達を提供する。
【0053】
ワークロード層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロード及び機能の例は、マッピング及びナビゲーション91;ソフトウェア開発及びライフサイクル管理92;仮想教室教育の提供93;データ分析処理94;トランザクション処理95;及びAuthencrypt96を含む。
【0054】
攻撃者による、被害者に知られていないキーを用いた被害者のデータの暗号化などの無許可のデータの暗号化は、セキュリティ上の主要課題である。そのようなランサムウェア型攻撃は、被害者において、費用がかかり得る、又は回復不可能であり得るサービス妨害を生じさせる。本開示の少なくとも幾つかの態様は、データ所有者がデータを復号できるよう、システム内の暗号化データが許可された方法で暗号化されていることを確実にするための方法を提供する。暗号化は、無許可のプロセスではなく、許可された暗号化層により暗号化が実行されたことを検証する「ウォーターマーク」の作成により認証される。ランサムウェア型攻撃は、それにより、有益にブロックされる。流出型攻撃もまた、許可された暗号化を用いることを認められた認証及び/又は証明されたアプリケーションによる許可された暗号化を用いてデータが暗号化されることを要求することにより、高度に制限される。
【0055】
本開示の少なくとも幾つかの態様は、システムがキーを有しないデータが記憶されるのを防止するため、暗号化のユーザをロックダウンする。本明細書に記載の様々な態様は、ストレージシステムが暗号化キーへのアクセスを有することなく、ストレージシステムが暗号化の許可された使用と無許可の使用を区別することにより、無許可の暗号化を有するデータの記憶を防止するための安全な方法を提供する。様々な態様において、独立したコンポーネント間の全ての通信は、相互に認証された安全な(例えば、暗号化された)セッションを介して行われることが想定されている。また、システム内に記憶されている全てのデータは暗号化されていることが想定され得る。少なくとも幾つかの手法において、非暗号化データについての対策が含まれ得るが、非暗号化データは、流出から保護されない場合がある。
【0056】
認証された暗号化(例えば、「Authencrypt」)は、システムにおいて既知のキーを使用する。登録されたキーは、キーサーバに記憶され得、登録されたキーは、Authencryptにおいてのみ使用可能である。好ましい態様において、登録されたキーは、アプリケーションにおいて使用できない。システムにおいて知られていないキーは、Authencryptにより使用され得ない(例えば、使用されない)。Authencryptは、許可されたアプリケーションによってのみ使用され得る。様々な手法において、ポリシマネージャは、当技術分野において既知の方法で、アプリケーションのための許可情報を保持する。例えば、ポリシは、関連するポリシ施行ポイント、ポリシ決定ポイント等を有する拡張可能アクセス制御マークアップ言語(eXtensible Access Control Markup Language:XACML)の派生言語において実装され得る。従って、無許可の暗号化は、ストレージでブロックされる。様々な手法において、許可された暗号化関数はホストに存在し得、Authencrypt検証関数はストレージに存在し得る。一手法において、無許可の暗号化は、ストレージの前にブロックされ得るが、ストレージは、好ましくは暗号化が無許可であることをも検証する。
【0057】
例示的であり説明的な一態様において、Authencryptシステムは、ストレージに書き込むための能力を有するホストを含む。許可されたアプリケーションは、ストレージにデータを書き込むことを試み、無許可のアプリケーションは、ストレージにデータを書き込むことを試みる。ストレージシステムは、本明細書に記載の少なくとも幾つかの態様に従い、許可されたアプリケーションからのデータを記録し、無許可のアプリケーションからのデータを拒絶する。ランサムウェアは、暗号化データをストレージに配置することができない。ランサムウェアがその独自の暗号化キーを使用する場合、ランサムウェアの暗号化キーを用いて暗号化されたデータが検出され、ストレージへの書き込みをブロックされる。Authencryptは、一手法において、キーサーバから全てのキーを取得し、ここで、キーサーバは、ストレージ内の暗号化データの少なくとも幾つかに関連付けられたキーを有する(例えば、ストレージ内の暗号化データの異なる部分に関連付けられた複数のキーが存在し得る)。好ましい態様において、(例えば、流出型攻撃を防止するために)平文はストレージから抽出され得ず、許可された暗号化のみが認められる。
【0058】
好ましい態様において、ストレージに書き込まれた全てのデータは、許可された暗号化を用いて記憶され、平文はストレージ内に記憶されない。暗号化及び復号は、好ましくは許可されたアプリケーションに限定される。暗号化キーへのアクセスは、許可された暗号化層に限定される。無許可の暗号化データを書き込む試みは検出され、ストレージでブロックされる(例えば、無許可の暗号化データは記憶されない)。新たなアプリケーションを許可することは、当技術分野において既知の方法で、アプリケーションの証明及び/又は複数当事者による手動許可を必要とし得る。
【0059】
好ましい態様において、無許可の暗号化に対する保護は、階層化された手法を用いて提供される。システムを横断するデータに対して認められる唯一の暗号化は、好ましくは許可された暗号化である。許可された暗号化のための全ての暗号化キーは、システム所有者によってアクセス可能であり得、そのような暗号化は、暗号化キーの知識を必要とすることなく、他の暗号化と区別され得る。これは、検出器が暗号化キー又は平文データへのアクセスを有するという要件を伴うことなく、無許可の暗号化の検出を可能にする。これらの上述の特徴により、可視であるキー及び平文の範囲が限定されるため、システムセキュリティが向上する。許可された暗号化関数は、例えば、ハードウェア、アクセラレータ、信頼できる実行環境等においてカプセル化され得、これは、キー及び暗号化プロセスにおけるセキュリティを概して向上させる。
【0060】
図3は、様々な構成に係るハイレベルアーキテクチャの図である。アーキテクチャ300は、様々な構成において、とりわけ
図1~
図2及び
図4~
図5で示された環境のいずれかにおいて、本発明に従い実装され得る。当然ながら、本明細書を読めば当業者により理解されるように、
図3において具体的に説明されたものよりも多い又は少ない要素が、アーキテクチャ300に含まれ得る。
【0061】
アーキテクチャ300は、一態様に係る例示的なデータシステムを示す。アーキテクチャ300は、ホストシステム302及びストレージシステム304を備える。ストレージシステム304は、当技術分野において既知の任意のタイプのストレージシステムであり得る。ストレージシステム304は、本明細書に列挙されたものよりも多い又は少ないコンポーネントを有し得ることが、当業者により理解されるべきである。アーキテクチャ300は、キーサーバ306及びウォーターマークキーサーバ308を備える。
【0062】
ホストシステム302は、許可された暗号化関数310及び許可されたアプリケーション312を有する。許可された暗号化関数310は、本開示を通じ、「Authencrypt」と同義的に称され得る。許可された暗号化関数310は、暗号化器/復号器314、ウォーターマーク生成器316、プレフィルタ318、及びAuthencryptマネージャ320を含む。
【0063】
図3に従い、許可されたアプリケーション312から送信されたデータを暗号化するための例示的な動作が示される。好ましい態様において、許可されたアプリケーション312の許可は検査され、許可されたアプリケーション312に対して許可された暗号化関数310を使用するための認可は、Authencryptマネージャ320によるデータ送信の前に認証される。本開示を読めば当業者にとって明らかになるように、認可は、当技術分野において既知の任意の方法で、異なるセキュリティのレベルを用いて検査され得る。一手法において、許可リストが使用され得る。別の手法において、アプリケーションセキュアハッシュが検査され得る。更に別の手法において、許可を用いたアプリケーションの完全な証明が実行され得る。アプリケーションが暗号化認可の取得に失敗した場合、データの処理はブロックされ、例えば、データは許可された暗号化を介して暗号化されない。少なくとも幾つかの手法において、無許可のアプリケーションがAuthencryptへのアクセスを試みたことを示す通知が記録され得、及び/又はそのことを示す警告が管理者に送信され得る。
【0064】
アプリケーションが許可されると(例えば、許可されたアプリケーション312)、暗号化キーが使用のために選択される。暗号化キーは、当技術分野において既知の任意の方法で、許可されたアプリケーション312に関連付けられ得る。一手法において、各システムは、システムの許可されたアプリケーションのそれぞれに対して使用される単一の暗号化キーを有し得る。別の手法において、暗号化キーは、アプリケーション、ユーザ、システム所有者、データセット、ファイルのセット、ボリュームのセット等の関数であり得る。上述の情報のいずれかは、動作322において、許可されたアプリケーション312によるアクセスの要求として、Authencryptマネージャ320に送信され得る。Authencryptマネージャ320は、新たなキーを生成し得る、及び/又は要求に関連付けられた暗号化キーのアイデンティティを判定し得る。Authencryptマネージャ320は、動作324において、この情報(例えば、新たなキーの要求、又は要求に関連付けられた暗号化キーのアイデンティティに関連付けられた情報)を、キーサーバ306に送信する。
【0065】
代替的手法において、キーサーバ306は、Authencryptマネージャ320からキーサーバ306への新たなキーの生成の要求に応答して、キーの生成を実行する。
【0066】
好ましい態様において、キーサーバ306は、Authencryptがデータを暗号化するために使用する暗号化キー及び関連するキー識別子(キーID)を保持する。好ましい手法において、キーIDは、キー自体から容易に予測可能及び/又は判定可能ではない。キーIDを生成するために、乱数値及び/又は別個のキーにおいて暗号化された値が使用され得る。キーIDを生成するための任意の他の技術が使用され得る。キー自体から容易に予測可能及び/又は判定可能ではないキーIDは、無許可のエンティティが暗号化キーへのアクセスを取得することを防止する。例えば、マルウェアが所与のクライアント秘密データキーIDに対して許可されたプロセスへのアクセスを取得することを防止し得る。プロセスが情報を用いて他のキーID値を推定することを相対的に困難にし、それにより、他のキーにおけるデータを流出させる及び/又は改変するための能力を制限することは有益である。好ましい一態様において、キーサーバ306内に記憶された暗号化キーは、許可されたアプリケーション312において使用できない。様々な手法において、許可されたアプリケーション312は、許可されたアプリケーション312への/許可されたアプリケーション312からのデータを暗号化するために使用される暗号化キーのキーIDへのアクセスを有し得る。様々な態様において、キーIDへのアクセスを有することは、データへのアクセスを取得するには不十分であることが、本開示を読めば当業者には明らかであろう。具体的には、Authencryptマネージャ320は、以下で更に詳細に説明される通り、アプリケーションがキーIDを利用することを許可されていると判定するために、更なる検査を実行する。
【0067】
少なくとも幾つかの手法において、キーサーバ306は、キーIDを、記憶された暗号化キー(例えば、図示の通り、キーk1 326、キーk2 328、及びキーk3 330)に関連付ける。
図3に示される通り、Authencryptマネージャ320は、暗号化キー(この場合、キーk1 326)に関連付けられたキーIDを、キーサーバ306に送信する。Authencryptマネージャ320及び/又はキーサーバ306は、暗号化キーに関連付けられたメタデータを記憶し得、ここで、メタデータは、暗号化キーが使用される場所(例えば、どの許可されたアプリケーションが暗号化キーに関連付けられているか)を説明する。キーサーバ306のメタデータはまた、当技術分野において既知の方法で、特定の暗号化キーを参照するための手段として、キーIDを含み得る。セキュリティ上の目的において、キーを識別するために使用される情報は、オブザーバがキーを導出又は推測することを可能にするように構成されていない。幾つかの手法において、Authencryptマネージャ320は、新たなキーを生成し得る。好ましい手法において、Authencryptマネージャ320は、ハードウェアセキュリティモジュール(HSM)、信頼できる実行環境(TEE)等を介することを含む、当技術分野において既知の方法で、許可されたアプリケーション312から安全に隔離されている。
【0068】
好ましい態様において、Authencryptマネージャ320は、動作322の一環として、アプリケーションに対する許可を付与及び/又は実行する。Authencryptマネージャ320は、キーサーバ306と通信して、アプリケーションからの要求に基づき、既存のキー又は新たなキーを取得する。既に許可されたアプリケーション(例えば、許可されたアプリケーション312)からの要求に応答して、Authencryptマネージャ320は、アプリケーションが既存のキーIDに関連付けられていると判定し得る。アプリケーションの既存のキーID及び任意の関連する証明書は、Authencryptマネージャ320を通じて渡され得る。Authencryptマネージャ320は、アプリケーションが、要求されたキーIDにアクセスすることを許可されていることを検証する。アプリケーションが許可されている場合、Authencryptマネージャ320は、認可を付与し、キーサーバ306に対し、動作332で、暗号化器/復号器314においてキーを使用可能にするよう指示し得る。新たなデータセットの場合、Authencryptマネージャ320は、動作324においてキーIDを受信し、Authencryptマネージャ320は、キーIDをウォーターマークキーサーバ308に渡す。好ましい手法において、ウォーターマークキーサーバは、本開示を読めば当業者にとって明らかになるような方法で、新たなウォーターマークを、データ要求の任意の組み合わせ、暗号化キー、キーID等に関連付け得る。
【0069】
好ましい手法において、ストレージシステム304に送信されたデータ要求は、キーIDに関連付けられる。ウォーターマーク検証器は、キーIDを用いて、検証のために利用されるウォーターマークキーを取得する。少なくとも幾つかの手法において、ウォーターマーク検証器は、Authencryptマネージャ320との対話を伴うことなく、正確なウォーターマークキーを取得し得る。
【0070】
代替的手法において、Authencryptマネージャ320は、キーIDを使用して、ウォーターマークキーサーバ308からウォーターマークキーを取得し得る。Authencryptマネージャ320は、動作319において、ウォーターマークキーをストレージシステム304に渡し得る。様々な手法において、Authencryptマネージャ320は、動作321で、ウォーターマークキーをウォーターマーク生成器316に代替的に渡し得る。
【0071】
キーサーバ306は、動作332において、キーk1 326を暗号化器/復号器314に安全に送信する。代替的な態様において、キーサーバ306は、キーk1 326をAuthencryptマネージャ320に安全に送信し、Authencryptマネージャ320は、キーk1 326を暗号化器/復号器314に送信する。暗号化器/復号器314は、当技術分野において既知の方法で、キーk1 326を用いて暗号化及び/又は復号し得る。例えば、対称暗号化の場合、図示の通り、暗号化器/復号器314は、暗号化及び復号のために同じキーを使用する。非対称暗号化が使用される場合、本開示を読めば当業者に理解されるように、適切な暗号化又は復号キーが使用される。好ましい態様において、許可された暗号化関数310は、任意の暗号化キーが悪意を持ち得るため、これらのキーを受け入れない。対照的に、許可された暗号化関数310は、システム所有者が許可された暗号化関数310により使用された任意のキーの複製へのアクセスを有することを必要とし得、それにより、(例えば、ランサムウェア型攻撃における場合のように)攻撃者が、システムにおいて知られていないキーによる暗号化を使用することを防止する。許可された暗号化関数310及びキーサーバ306は、なりすましに対する追加的なセキュリティを提供するために、当技術分野において既知の方法で互いを認証し得る。動作332を介したキーの受け渡しはまた、暗号化リンクを介する、又は安全なキー交換プロトコルを使用するなど、安全な方法で実行され得る。
【0072】
許可されたアプリケーション312は、動作334において、暗号化されるデータを許可された暗号化関数310(例えば、Authencrypt層)に送信し得る。好ましい態様において、データは、上述の通り、安全なリンクを介して送信される。以下で更に詳細に説明される通り、様々な手法において、任意選択的なプレフィルタ318は、データを受信し、データがすでに暗号化されているかどうかを検査する。動作336において、プレフィルタ318の暗号化検出関数を通過したデータは、暗号化器/復号器314に送信される。暗号化器/復号器314は、キーサーバ306から取得されたキーk1 326を用いて、データを暗号化する。動作338において、暗号化データは、ウォーターマーク生成器316に送信される。
【0073】
好ましい態様において、ウォーターマーク生成器316は、正確なウォーターマークキーが選択され得るように、メタデータ(例えば、キーID)をウォーターマークキーサーバ308に渡し得る。例えば、図示の通り、動作342において、ウォーターマークキーw1 340が選択され、ウォーターマーク生成器316に送信される。関連するウォーターマークは、ウォーターマーク生成器316により、ウォーターマークキーw1 340を用いて計算される。動作344において、暗号化データ及び生成されたウォーターマークが出力される。様々な手法において、許可された暗号化関数310及びウォーターマークキーサーバ308は、なりすましに対するセキュリティを提供するために、互いを認証し得る。ウォーターマークキーサーバ308は、ウォーターマークキーが使用され得る場所(例えば、ウォーターマークキーIDのセット、アプリケーションのリスト、ファイルのセット、ボリュームのセット等)を説明する、ウォーターマークキーに関連付けられたメタデータを含み得る。
図3に示される通り、Authencryptマネージャ320は、ウォーターマークキーサーバ308が適用可能なウォーターマークキーを判定することを可能にする情報をウォーターマークキーサーバ308に送信する。ウォーターマークキーサーバ308はまた、キーIDがキーサーバ306からの暗号化キーへの参照であり得るのと類似した方法で、関連するウォーターマークキーへの参照として使用されるウォーターマークキーIDを維持し得る。動作342におけるようなウォーターマークキーの受け渡しは、暗号化リンク、安全なキー交換プロトコル等を介するなど、好ましくは安全な方法で実行される。
【0074】
様々な手法において、以下の定義は、本明細書に記載の、及び
図3に示される通りの書き込み動作を実行するために適用可能であり得る。
【0075】
定義:
【0076】
pi=平文iを入力
【0077】
ci=piに対する暗号文を出力
【0078】
txi=ciに対するウォーターマークトークン以下で説明される通り、ウォーターマークトークンは、受信されたパラメータが正確であることを検証するために、検出器により使用され得る。
【0079】
k1=(キーサーバからの)データ暗号化キー
【0080】
w1=(ウォーターマークキーサーバからの)ウォーターマークキー
【0081】
wi=暗号化データブロックciに対するウォーターマーク
【0082】
様々な手法において、ウォーターマーク生成器316は、暗号化データを一意的に識別する値(例えば、暗号化データに対するウォーターマーク)を作成するための任意の数の方法を使用し得る。好ましい態様において、当業者により理解されるような方法で、キー付きハッシュメッセージ認証コード(HMAC)が使用され得る。
【0083】
ハッシュ関数は、当業者により判定可能であるような所望のセキュリティのレベルに応じて、任意の形式のハッシュであり得る。例示的なハッシュ関数は、MD5、SHA256等を含む。一手法において、SHA3ハッシュ関数における場合のように、ハッシュ関数は、HMACを伴うことなく使用され得る。上述の手法において、以下に定義されるようなキー付きMACが使用され得る。
【0084】
MAC=ハッシュ(キー||ci)
【0085】
暗号化キーと異なるウォーターマークキーの使用は、非暗号化データ(例えば、平文データ)及び/又は暗号化キーへのアクセスを伴うことなく、暗号化データに対するウォーターマークが検証されることを可能にする。ウォーターマークキーへのアクセスは、暗号化キー又は平文へのアクセスを伴うことなく、暗号化が許可されていることをストレージが検証することを可能にする。他の特徴は、当事者が暗号化データ又はウォーターマークを検出不可能な方法で改ざんすることを防止する。暗号化データは、安全な方法で検出され得る。
【0086】
様々な態様において、ウォーターマークを作成するために使用される3つの基本的な動作は、以下で数学的に説明され得る:
【0087】
ci=(k1,pi)を暗号化
【0088】
txi=MAC(ci)
【0089】
wi=HMAC(w1,ci||txi)
【0090】
この動作の後、許可された暗号化データがストレージに送信される準備が整えられる。これは、以下の動作により実現され得る:
【0091】
ストレージに送信:{ci,txi,wi}
【0092】
ストレージシステムはまた、このタプルに関連付けられたウォーターマークキーを識別するメタデータを(例えば、上述の通り、ウォーターマーク生成器から)受信する。ウォーターマーク生成器は、当技術分野において既知の方法で、適切なウォーターマークキーが選択されるよう、ウォーターマークキーサーバにメタデータを渡す。例えば、様々な態様において、ウォーターマークキーがファイルに関連付けられている場合、ウォーターマーク生成器及びストレージシステムの間のリンクは、正確なウォーターマークキーに関連付けられたメタデータを含むストレージコントローラ内のリンクにメタデータが関連付けられるように設定される。リンクが設定される時点で、ウォーターマークキーはストレージシステムにより取得及び保存され、要求内のデータのブロック上で使用される。代替的な実装形態において、全てのデータのブロックに対して別個のウォーターマークキーが存在し得る。
【0093】
検証は、ブロックの書き込み前及び/又はブロックの読み出し後に、ストレージユニットにより行われる。検証に失敗したブロックは、ストレージに書き込まれない、又は同様に、読み出しは要求者に返されない。検証の少なくとも幾つかの態様の動作は、以下で数学的に説明される:
【0094】
(ci、txi、wi)を受信
【0095】
ウォーターマークキーサーバからw1を取得
【0096】
wi'=HMAC(w1,ci||txi)
【0097】
検証wi==wi'
【0098】
好ましい態様において、ストレージシステムは、ウォーターマークと共に渡されたci及びtxiを用いて、ウォーターマークに関するその独自の独立した計算を行う。ストレージシステムは、上述の通り、ウォーターマークキーサーバからウォーターマークキーを独立して受信する。本開示を読めば当業者にとって明らかになるように、ci又はtxiがウォーターマーク生成器により生成された値ではない場合、検証は失敗する。例えば、悪意のある行為者が、(ci及び/又はtxiの)値がストレージに到達する前に値を改ざんした場合、検証は失敗し得る。HMACは、これらの値のいずれかの偽造に対する追加的なセキュリティを提供する。
【0099】
本開示を読めば当業者にとって明らかになるように、許可されたアプリケーションの場合、許可された暗号化データの読み出しは、書き込み動作の実質的に逆である。好ましい態様において、ストレージユニットは、要求者にブロックを返す前に、それを検証する。一手法において、以下で説明される第1の検証は、ストレージユニットにおいて行われた検証を重複して行う。しかしながら、ブロックが第1の検証に失敗した場合、第2の検証は、エラーが引き起こされた場所をシステムが判定することを可能にする。第1の検証が成功した場合、アプリケーションがデータの復号に進むことができるよう、txiは明示的に検証される必要がある点に留意されたい。幾つかの態様において、ストレージからブロックを受信した際のシステムの動作は、以下で数学的に説明される。代替的な態様においては、2つの検証のうち1つ(第1)のみで十分である。
【0100】
読み出し(復号):
【0101】
ストレージから{ci,txi,wi}を読み出し
【0102】
ウォーターマークキーサーバからw1を取得
【0103】
wi'=HMAC(w1,ci||txi)
【0104】
検証wi==wi'(検証に失敗した場合、エラーが報告される)
【0105】
txi'=MAC(ci)
【0106】
検証txi'=txi(検証に失敗した場合、エラーが報告される)
【0107】
キーサーバからk1を取得
【0108】
pi=復号(k1,ci)
【0109】
幾つかの手法において、他のタイプのウォーターマークは、暗号化データをハッシュ化すること、及びウォーターマークキーを用いてハッシュを暗号化すること、ウォーターマークキーを用いて暗号化データをハッシュ化すること等を含み得る。PKI署名を含む非対称暗号化技術が使用され得、ここで、暗号化データのハッシュはその後、プライベートキーで暗号化される。本開示を読めば当業者にとって明らかになるように、署名を検証するためにパブリックキーが使用され得る。
【0110】
本開示を読めば当業者にとって明らかになるような方法で、当業者は、設計要件、及びウォーターマークを作成するために使用される動作の選択に基づき、所望のセキュリティのレベルを達成するために、本明細書に記載の様々な動作を修正し得る。ウォーターマークは、暗号化キーを知ることなく、暗号化の正当性を検査するための能力を提供する。ウォーターマークは、偽造に対する耐性を提供すると共に、ウォーターマーク及び/又は暗号化データへの改変を検出するための能力を提供する。対称暗号化を用いてこれらの動作を実行することは、達成可能なパフォーマンスの向上、量子攻撃に対する耐性、キーサイズの小型化等に起因して、多くの場合好まれる。
【0111】
ここで再び
図3により示される書き込み動作を参照すると、動作344において、暗号化データ、ウォーターマークトークン、及び関連するウォーターマークは、許可されたアプリケーション312からの入力データの許可された暗号化を表している。暗号化データを記憶する際、暗号化データ、ウォーターマークトークン、及び関連するウォーターマークは、動作344を介して、ストレージシステム304に安全に送信される。ストレージシステムは、ストレージ346及びAuthencrypt検証器348を有する。好ましい態様において、ストレージシステム304に、及びストレージシステム304から転送された全てのデータは、Authencrypt検証器348を通過する。Authencrypt検証器348は、暗号化データが、許可された暗号化関数310を迂回する方法で送信された(例えば、ストレージシステム304に直接的に送信された)かどうかを判定することにより、無許可の暗号化データを検出する。Authencrypt検証器348及びその関連する機能は、例えば、ハードウェア、アクセラレータ、信頼できる実行環境等においてカプセル化され得、これは、ウォーターマークキー及びウォーターマーク生成プロセスにおけるセキュリティを向上させる。
【0112】
データを記憶する前に、Authencrypt検証器348は、動作350において、ウォーターマークキーサーバ308からのデータに関連付けられたウォーターマークキーを取得し得る。様々な手法において、Authencrypt検証器348は、ウォーターマーク生成器及び比較器を含む。ウォーターマーク生成器は、受信された(例えば、動作344を介して受信された)暗号化データに関連付けられたウォーターマークを計算し、計算されたウォーターマークを、暗号化データと共に受信されたウォーターマークと比較し得る。ウォーターマークが一致しない場合、暗号化データは記憶されない。幾つかの手法において、ウォーターマークは、所定の範囲内で一致しなければならない。例えば、幾つかの手法において、「一致」とみなされるには、ウォーターマークは同一でなければならない。他の手法においては、ウォーターマークの所定の部分、割合、サブコンポーネント等が一致しなければならない。少なくとも幾つかの態様において、ウォーターマークが一致しないと判定することに応答して、無許可のデータを記憶するための試みがなされたことを示す通知が記録され得、及び/又はそのことを示す警告が管理者に送信され得る。ウォーターマークが一致する場合、動作352において、暗号化データ、ウォーターマークトークン、及び関連するウォーターマークは、ストレージ346に転送される。好ましい態様において、ストレージシステム304は、暗号化データが改変に関して検査され得るよう、関連するウォーターマーク及びウォーターマークトークンを暗号化データと共に記憶する。検証は、Authencrypt検証器348が暗号文(例えば、暗号化データ)を作成するために使用されたキーの平文へのアクセスを有することなく実行され得る。一手法において、ウォーターマークが暗号化ハッシュとして(例えば、PKI署名として)生成される場合、Authencrypt検証器348の検出動作は、本開示を読めば当業者にとって明らかになるような方法で、ウォーターマークキーを用いてウォーターマークを復号すること、及び復号されたウォーターマークを暗号化データ上で計算されたハッシュと比較することを含む。
【0113】
Authencrypt検証器348は、データがAuthencryptを用いて暗号化されていること、及び、読み取り時、スクラブ動作(例えば、データ完全性の検査)中などのような、いかなる時点においても修正されていないことを検証し得る。幾つかの手法において、データを検証するために、暗号化キーを識別する情報(例えば、キーID)及び/又はウォーターマークキーを識別する情報(例えば、ウォーターマークキーID)は、ストレージ346に記憶され得る。
【0114】
入力データが暗号化されていると検出することは、当技術分野において既知の方法で実行され得る。例えば、許可されたアプリケーションからのデータは、非暗号化データから判定され得るが、暗号化データから欠如している、フォーマット及び/又は特性を有し得る。入力データが暗号化されていることを検出するための他の技術は、データの一部が暗号化されている確率を割り当てるため等に用いられるエントロピー測定、統計的検定を含む。システムは、検出確率の精度を向上させるために、複数のデータチャンク、ブロック等を使用し得る。ストレージシステムが、継続的なデータ保護、スナップショット、又はデータを一時的に記憶するための他の手段をサポートする(例えば、ロールバックをサポートする)場合、検出は、所定の数のデータピースが処理された後に行われ得る。スナップショットなどの事象は、高い確率の暗号化入力が検出された場合にトリガーされ得る。
【0115】
ストレージシステム304は、暗号化データ及び関連するウォーターマークの更なる暗号化を含み得る。データの所有者がデータを復号する(例えば、平文でデータにアクセスする)ことができないようにデータを暗号化するための手段として、攻撃者が追加的な暗号化を用いることを防止するために、追加的な暗号化が安全に実装され得る。追加的な暗号化の安全な一実装形態は、自己暗号化ストレージユニットを含み得る。
【0116】
幾つかの態様において、ストレージシステム304は、非暗号化データの記憶をサポートし得る。非暗号化データを記憶するために、ストレージシステム304が、暗号化データ及び平文データを区別し、無許可の暗号化を拒絶し、それにより、平文データが記憶されることを可能にし得るよう、プレフィルタ関数(例えば、プレフィルタ318)がストレージシステム304に追加され得る。平文のストレージを可能にすることは、平文データへの流出型攻撃に対するセキュリティを低下させるため、当業者により判定可能であるような方法で、無許可の公開に対して機密性が低いデータに限定され得る。
【0117】
上述の通り、暗号化キー、ウォーターマークキー、混合キー(以下で詳細に説明される、
図4参照)等は、キーサーバに記憶され得る。キーサーバは、追加的な回復性のために、分散型キーサーバであり得る。キー、混合キー、及び/又はウォーターマークキーは、当技術分野において既知の任意の他の方法で記憶され得る。例えば、キー、混合キー、及び/又はウォーターマークキーは、別個のストレージデバイス又は同じストレージデバイスに記憶され得、キー、混合キー、及び/又はウォーターマークキーは、当技術分野において既知のタイプのキーマネージャにより生成及び/又は管理され得、キー、混合キー、及び/又はウォーターマークキーは、ホストシステム、ストレージシステム、又はそれらの任意の組み合わせ等に記憶され得る。
図3に示される通り、キー及びウォーターマークキーは、隔離を提供するため、別々に記憶される。コンテナ状システム、又はTEEは、システム管理者、ルート権限を持たない他のユーザ等から、キー、混合キー、及び/又はウォーターマークキーを隔離するために使用され得る。
【0118】
好ましい態様において、Authencryptマネージャ320は、許可された暗号化関数310に組み込まれている。幾つかの手法において、Authencryptマネージャ320は、ホスト内のTEE(例えば、許可された暗号化関数310の外部)に組み込まれ得る。なお更なる手法において、Authencryptマネージャ320は、キーサーバ306、ウォーターマークキーサーバ308、別のホスト内のHSM又はTEE等などの別個の安全なコンポーネントに組み込まれ得る。これらの代替的手法のそれぞれにおいて、Authencryptマネージャ320及び他のコンポーネントの間の全てのリンクは、データのセキュリティのため、認証、暗号化、完全性保護等により保護されている。
【0119】
データブロック、ファイル、オブジェクト、任意の他のデータフォーマット、又はそれらの任意の組み合わせを含む任意の形式のデータは、書き込まれ、及び/又は読み出され得る。Authencrypt検証器348の信頼度は、Authencrypt検証器348が、暗号文(例えば、暗号化データ)、ウォーターマーク、及びウォーターマークキーにアクセスを有することを可能にする。Authencrypt検証器348は、暗号文のブロックを改変、及びウォーターマークを調整し得る。
図4は、Authencrypt検証器によるウォーターマークの改変が、ウォーターマークプロセスへの修正を用いて検出される方法を示す。
【0120】
図4は、様々な構成に係るハイレベルアーキテクチャの図である。アーキテクチャ400は、様々な構成において、とりわけ
図1~
図3及び
図5~
図6で示された環境のいずれかにおいて、本発明に従い実装され得る。当然ながら、本明細書を読めば当業者により理解されるように、
図4において具体的に説明されたものよりも多い又は少ない要素が、アーキテクチャ400に含まれ得る。
【0121】
アーキテクチャ400は、一態様に係る例示的なデータシステムを示す。
図4は、
図3と共通のコンポーネントを共有しており、共通の特徴は共通の番号及び機能を有することが、当業者により理解されるべきである。
【0122】
各ウォーターマークキーは、追加的な混合キー(例えば、混合キーh1 402、混合キーh2 406、混合キーh3 410等)に関連付けられている。例えば、ウォーターマークキーw1 340は追加的な混合キーh1 402に関連付けられ、ウォーターマークキーw2 404は追加的な混合キーh2 406に関連付けられ、及びウォーターマークキーw3 408は追加的な混合キーh3 410に関連付けられている。例示的な実装形態において、混合キーh1 402は、(例えば、許可された暗号化関数310により暗号化データに対して生成される)ウォーターマークトークンを作成するために使用される。混合キーh1 402は、Authencrypt検証器348において使用できない。好ましい態様において、混合キーは、ウォーターマーク作成の一環として、暗号文へと符号化される。例えば、以下で説明される通り、平文ブロックpiは、キーk1 326を用いて暗号化され、暗号文ブロックciを生じさせる:
【0123】
ci=(k1,pi)を暗号化
【0124】
ウォーターマークトークンは、以下の通り作成される。
【0125】
txi=HMAC(h1,ci)
【0126】
様々な態様において、混合キーは、暗号化データのウォーターマークトークンと称される偽造不可能な表示(例えば、署名)を第1のHMACが生成するためのキーとして使用される。動作412において、混合キーh1 402は、当技術分野において既知の方法で、ウォーターマーク生成器316に送信され得る。代替的手法において、暗号化キー(例えば、キーk1 326)及び混合キー(例えば、混合キーh1 402)は、Authencryptマネージャ320に与えられる。この代替的手法において、Authencryptマネージャ320は、暗号化器/復号器314に暗号化キーを与え、Authencryptマネージャ320は、ウォーターマーク生成器316に混合キーを与える。この偽造不可能な表示は、ウォーターマークwiを生成するために、第2のHMACにおいて使用される。2つのHMACは、ストレージが暗号化キーk1へのアクセスを有することなく暗号化を検証できるようにすべくなされる。
【0127】
図3を参照して上述した通り、ウォーターマークキーw1 340は、ウォーターマークキーサーバ308から取得される。ウォーターマークは以下の通り作成される:
【0128】
wi=HMAC(w1,ci||txi)
【0129】
データを記憶するため、動作344において、平文ブロックpiに対する暗号文ci、ウォーターマークトークンtxi、メタデータ、及びウォーターマークwiは、ストレージシステム304に送信される。
図3を参照して上述した通り、Authencrypt検証器348は、ウォーターマークキーw1 340をウォーターマークキーサーバ308から取得する。暗号文ciに対するウォーターマークは、以下の通り計算される:
【0130】
wi'=HMAC(w1,co||txt)、
及び、wiと比較
図4に示され、本明細書に記載の実装形態によれば、Authencrypt検証器348は、ciをci'に改変し、ci'と一致するウォーターマークwi'を作成するために十分な情報を有せず、ここでAuthencrypt検証器348は、混合キーh1 402へのアクセスを有しない。暗号文がci'に改変される場合、ウォーターマークは以下の通り計算される:
【0131】
wi'=HMAC(w1,ci'||txi)
【0132】
h1へのアクセスを伴わない場合、ci'と一致するtxi'の値は計算されない。読み取り時にホストシステム302によりデータが検証されると、それは、以下の通り計算する:
【0133】
txi'=HMAC(h1,ci')≠txi、
【0134】
wi''=HMAC(w1,ci'||txi')≠wi'、
このようにして、改変が検出される。
【0135】
他の形式の攻撃は、許可された暗号化により以前に書き込まれたブロックの内容を用いて、異なるブロックを置換するリプレイ攻撃を含む。置換されたブロックは、別の場所からのものであり得、又は、置換されたブロックは、同じ場所からのブロックの以前の複製であり得る。前者のタイプは、例えば、場所が暗号化アルゴリズムの一部である高度暗号化標準暗号文窃取(Advanced Encryption Standard Ciphertext Stealing:AES-XTS)暗号化の使用により検出され得る。後者は、幾つかの手法において、本開示を読めば当業者にとって明らかになるような方法で、ウォーターマーク及び/又はメタデータへのシーケンス番号の導入により防止され得る。平文ブロックpiに対するシーケンス番号siは、場所が書き込まれた回数を示し得る。幾つかの態様において、値のサイズは、セキュリティのレベルを判定する。例えば、8ビットの値は、ラッピング前に、256個の一意のシーケンス番号を付与する。4バイトなどのより大きな値は、40億個を上回る一意のシーケンス番号を生じさせる。シーケンス番号のサイズは、攻撃者が有効なリプレイ値を達成し得る確率、及び、場所が書き込まれ得る最大回数により判定され得る。シーケンス番号siは、シンプルカウント、ノンス、カウントのハッシュ、タイムスタンプ等であり得る。
【0136】
ウォーターマークトークン生成は、siを含むように適宜更新され得る:
【0137】
txi:HMAC(h1,ci||si)
【0138】
動作344において、シーケンス番号siは、暗号文(例えば、暗号化データ)と共にストレージシステム304に送信され得、ここで、シーケンス番号siがストレージシステム304で復号されることのないよう、シーケンス番号siは暗号化される。例示的な一手法において、シーケンス番号siは、混合キーh1 402等と共に、キーk1 326、ウォーターマークキーw1 340で暗号化される。
【0139】
追加的なメタデータは、データ及び/又はウォーターマークに追加され得る。例えば、キーID及び/又はウォーターマークキーID情報は、データ及び/又はウォーターマークに追加され得る。幾つかの手法において、ウォーターマークキーIDは、ウォーターマークに添付され得、それにより、Authencrypt検証器348が、外部参照を伴うことなく正確なウォーターマークキーを判定することを可能にする。一態様において、キーIDは、データと共に含まれ、データが復号される際に検証され得る。本開示を読めば当業者にとって明らかになるような方法で、エンドツーエンドの完全性検査を提供するために、巡回冗長検査(Cyclic Redundancy Check:CRC)、ハッシュ、メッセージ認証コード(Message Authentication Code:MAC)等を含む、暗号化データに対するデータ完全性情報が含まれ得る。
【0140】
ここで
図5を参照すると、一態様に係る方法500のフローチャートが示されている。方法500は、様々な態様において、とりわけ
図1~
図4及び
図6で示された環境のいずれかにおいて、本発明に従い実行され得る。当然ながら、本明細書を読めば当業者により理解されるように、
図5において具体的に説明されたものよりも多い又は少ない動作が、方法500に含まれ得る。
【0141】
方法500の各段階は、動作環境の任意の好適なコンポーネントにより実行され得る。例えば、様々な態様において、方法500は、コンピュータ、又はその中に1つ又は複数のプロセッサを有する幾つかの他のデバイスにより、部分的又は全体的に実行され得る。ハードウェア及び/又はソフトウェアにおいて実装され、好ましくは少なくとも1つのハードウェアコンポーネントを有するプロセッサ、例えば、処理回路、チップ、及び/又はモジュールは、任意のデバイスにおいて利用され、方法500の1つ又は複数の段階を遂行し得る。例示的なプロセッサは、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等、それらの組み合わせ、又は、当技術分野において既知の任意の他の好適なコンピューティングデバイスを含むが、これらに限定されない。
【0142】
図5に示される通り、方法500は、動作502を備える。動作502は、暗号化を実行することを許可されたものとしてアプリケーションを認証することを有する。好ましい態様において、ホストシステム上の認証された暗号化層(例えば、許可された暗号化層)は、当技術分野において既知の方法で、アプリケーションの認証を実行する。様々な手法において、アプリケーションは、暗号化を実行すること、及び/又はストレージシステム内に暗号化データを記憶することを許可されなければならない。当技術分野において既知の任意の方法で、ホストシステム、ユーザ、システム等は、アプリケーションが、ストレージシステムから、及び/又は、ストレージシステムに、暗号化データを読み出す、及び/又は、書き込むことを要求する前に、アプリケーション又は複数のアプリケーションが許可されているかどうかを判定し得る。好ましい態様において、非暗号化データは、ストレージシステム内に記憶されない。
【0143】
様々な態様において、アプリケーションが暗号化について許可されていないと判定することに応答して、認証された暗号化層は、無許可のアプリケーションからの読み出し要求、書き込み要求等をブロックする。幾つかの態様において、システムは、悪意のある行為者からの攻撃の可能性を示すため、インシデントを記録し得る、及び/又は、システムのユーザに警告を送信し得る。アプリケーションが暗号化について許可されていると判定することに応答して、方法500は、動作504に進む。
【0144】
動作504は、認証された暗号化層でデータを受信することを含む。少なくとも幾つかの手法において、許可されたアプリケーションは、書き込み要求において、認証された暗号化層にデータを送信し得る。データは、当技術分野において既知の任意のデータフォーマットを含み得る。データは、データファイル、チャンク、ブロック等、又はそれらの任意の組み合わせの形式であり得る。様々な手法において、データは、当技術分野において既知の任意の方法で、認証された暗号化層で受信される。好ましい態様において、データは、データを送信するアプリケーションが許可されていると判定することに応答してのみ、受信される。
【0145】
一手法において、認証された暗号化層は、プレフィルタ関数を含む。好ましい態様において、プレフィルタ関数は、データが予め暗号化されているかどうかを判定することを含む暗号化検出関数を実行する。より具体的には、プレフィルタの暗号化検出関数は、認証された暗号化層、ストレージシステム、ホストシステム等、又はそれらの任意の組み合わせにおいて知られていない(例えば、未知の)暗号化キーで、データが以前に暗号化されているかどうかを判定する。他の態様において、プレフィルタ暗号化検出関数は、データが任意の暗号化キーで暗号化されているかどうかを判定する。データが暗号化されていると判定することに応答して、認証された暗号化層は、更なる処理からデータをブロックし得る(例えば、エラーが出力され得る、データが更なる暗号化からブロックされ得る、書き込み及び/又は読み出し要求が拒否される、等)。上述の通り、エラーが記録され、及び/又は、ユーザに警告が送信され得る。具体的には、データが暗号化されていると判定することに応答して、認証された暗号化層は、データの暗号化をブロックする。例示的な一態様において、認証された暗号化層は、暗号化データに対する書き込み要求を、当該要求が許可されたアプリケーションからのものであっても、ブロックし得る。認証された暗号化層は、好ましくは、許可されたアプリケーションに対して非暗号化データを暗号化するのみである。
【0146】
様々な態様において、暗号化について許可されたものとしてアプリケーションを認証することに応答して、認証された暗号化層は、データに対する暗号化キー及び/又はウォーターマークキーを要求し得る。少なくとも幾つかの手法において、暗号化キー及びウォーターマークキーは、別個のキーサーバから要求される。例えば、暗号化キーは第1のキーサーバから要求され得、ウォーターマークキーはウォーターマークキーサーバから要求され得る。他の態様において、暗号化キー及びウォーターマークキーは、同じキーサーバから要求される。キーサーバは、ホストシステム上に位置し得、ホストシステム及び/又はストレージシステムからカプセル化され得、ストレージシステム上などに位置し得る。好ましい態様において、ストレージシステムは、暗号化キーへのアクセスを有しない。
【0147】
動作506は、暗号化キーを用いてデータを暗号化することを含む。暗号化キーは、当技術分野において既知の方法で、データを暗号化するために使用され得る。好ましい態様において、暗号化キーは、アプリケーションにおいて使用できない。暗号化キーは、認証された暗号化層により要求され、要求に応答して、好ましくは許可されたアプリケーションを迂回して、認証された暗号化層に直接的に送信され得る。
【0148】
様々な手法において、認証された暗号化層は、許可されたアプリケーションの証明書に基づき、暗号化キー及び/又はウォーターマークキーを要求する。例えば、許可されたアプリケーションはそれぞれ、単一の暗号化キー及び単一のウォーターマークキーに関連付けられ得る。別の例において、許可されたアプリケーションはそれぞれ、暗号化キーのセット及びウォーターマークキーのセットに関連付けられ得る。アプリケーション、暗号化キー、ウォーターマークキー等の任意の組み合わせは、本開示を通じて説明される少なくとも幾つかの態様に従い、使用され得る。
【0149】
動作508は、暗号化データのウォーターマークトークンを生成することを含む。様々な手法において、ウォーターマークトークンを生成することは、侵害された場合に、暗号化データを、有意の値を有しないランダムな文字列(例えば、トークン)に変換する任意のプロセスを含み得る。本明細書において言及されるような任意のトークンは、元データへの参照として機能し得るが、トークンを使用してそれらの値を推測する(例えば、データにアクセスする)ことはできない。少なくとも幾つかの手法において、ウォーターマークトークンは、暗号化データのメッセージ認証コード(MAC)である。様々な手法において、認証された暗号化層は、ウォーターマークトークン及び/又はウォーターマークキーに関連付けられたメタデータを生じさせる。
【0150】
好ましい態様において、暗号化データのウォーターマークトークンを生成することは、混合キーを組み込むことを含む。幾つかの態様において、混合キーは、認証された暗号化層に暗号化キーを提供したキーサーバから、認証された暗号化層で受信される。混合キーは、HMAC関数を用いたウォーターマーク作成の一環として、暗号化データへと符号化され得る。例えば、混合キーは、暗号化データのウォーターマークトークンを生成するために、HMACに対するキーとして使用され得る。第2のHMAC関数において、ウォーターマークトークンは、(例えば、以下の動作510においてウォーターマークを生成するのと類似した方法で)ウォーターマークを生成するために使用され得る。
【0151】
動作510は、ウォーターマークトークン及びウォーターマークキーを用いて暗号化データのウォーターマークを生成することを含む。様々な態様において、暗号化データのウォーターマークは、当技術分野において既知の任意の方法で生成され得る。一手法において、ウォーターマークは、本開示を読めば当業者にとって明らかになるような方法で、ウォーターマークキー及びウォーターマークトークンを用いたキー付きハッシュメッセージ認証コードである。様々な手法において、混合キーが、ウォーターマークトークンを生成するために第1のHMACに対するキーとして用いられる場合、ウォーターマークトークンは、ウォーターマークを生成するために第2のHMACにおいて用いられ得る。これらの手法において、2つのHMACは、暗号化キー又は混合キーへのアクセスを有することなく、許可された暗号化を検証するための能力をストレージシステムに提供する。例えば、混合キーがない場合、ストレージシステムは、ウォーターマークトークンを複製することができず、データに対するいかなる改変も検出される。
【0152】
動作512は、暗号化データ、ウォーターマークトークン、及びウォーターマークをストレージシステムに送信することを含む。幾つかの手法において、ストレージシステムは、方法を実行するためのコンピュータのサブシステム、例えば、コンピュータの一部である、及び/又はコンピュータに直接的に結合されているデータストレージドライブなどであり得る。様々な手法において、ウォーターマーク及び/又はウォーターマークキーに関連付けられたメタデータは、ストレージシステムに送信される。ストレージシステムは、本開示を読めば当業者にとって明らかになるような方法で、メタデータに基づき、関連するウォーターマークキーをキーサーバに要求し得る。
図6を参照して以下で更に詳細に説明される通り、好ましい態様において、ストレージシステムは、ウォーターマークキーを用いて暗号化データを検証するように構成されている。ストレージシステムが暗号化データを検証することに応答して、暗号化データ及び暗号化データのウォーターマークは、当技術分野において既知の方法で、ストレージシステムに記憶される。
【0153】
ここで
図6を参照すると、一態様に係る方法600のフローチャートが示されている。方法600は、様々な態様において、とりわけ
図1~
図5で示された環境のいずれかにおいて、本発明に従い実行され得る。当然ながら、本明細書を読めば当業者により理解されるように、
図6において具体的に説明されたものよりも多い又は少ない動作が、方法600に含まれ得る。
【0154】
方法600の各段階は、動作環境の任意の好適なコンポーネントにより実行され得る。例えば、様々な態様において、方法600は、コンピュータ、又はその中に1つ又は複数のプロセッサを有する幾つかの他のデバイスにより、部分的又は全体的に実行され得る。ハードウェア及び/又はソフトウェアにおいて実装され、好ましくは少なくとも1つのハードウェアコンポーネントを有するプロセッサ、例えば、処理回路、チップ、及び/又はモジュールは、任意のデバイスにおいて利用され、方法600の1つ又は複数の段階を遂行し得る。例示的なプロセッサは、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等、それらの組み合わせ、又は、当技術分野において既知の任意の他の好適なコンピューティングデバイスを含むが、これらに限定されない。
【0155】
図6に示される通り、方法600は、動作602を含む。動作602は、暗号化データ、ウォーターマークトークン、メタデータ、及び暗号化データの第1のウォーターマークをストレージシステムで受信することを含む。暗号化データは、ホストシステム内の認証された暗号化層から受信され得る。暗号化データは、暗号化データをストレージシステムに書き込むための、許可されたアプリケーションからの書き込み要求の一部であり得る。好ましい態様において、メタデータは、第1のウォーターマーク、ウォーターマークトークン、及び/又は、第1のウォーターマークを生成するために用いられるウォーターマークキーに関連付けられる。ウォーターマークトークンは、暗号化データのものであり得る。
図5を参照して上述した通り、好ましい態様において、ウォーターマークトークンは、方法500の動作508の通りに生成される。
図5を参照して上述した通り、更に好ましい態様において、ウォーターマークトークンは、方法500の動作510の通りに生成される。更になお好ましい態様において、ストレージシステムは、暗号化データが暗号化される際に用いられる暗号化キーへのアクセスを有しない。
【0156】
動作604は、メタデータに関連付けられたウォーターマークキーを受信することを含む。好ましい手法において、ストレージシステムは、本開示を読めば当業者にとって明らかになるような方法で、暗号化データ及び第1のウォーターマークと共に受信されたメタデータに基づき、ウォーターマークキーをキーサーバに要求する。
【0157】
動作606は、ウォーターマークキーを用いて暗号化データの第2のウォーターマークを生成することを含む。暗号化データのウォーターマークは、
図5の動作510を参照して説明されたのと同様の方法で生成され得る。
【0158】
動作608は、暗号化データの第2のウォーターマークを、暗号化データの第1のウォーターマークと比較することを含む。好ましい態様において、第2のウォーターマークが第1のウォーターマークと一致すると判定することに応答して、方法600は、暗号化データ、ウォーターマークトークン、及び第1のウォーターマークを記憶する段階を備える。幾つかの手法において、第2のウォーターマークは、所定の範囲内で、第1のウォーターマークと一致する。例えば、幾つかの手法において、「一致」とみなされるには、ウォーターマークは同一でなければならない。他の手法においては、ウォーターマークの所定の部分、割合、サブコンポーネント等が一致しなければならない。様々な態様において、方法600は、第2のウォーターマークが第1のウォーターマークと一致しないと判定することに応答して、ユーザに警告を送信する段階を備える。
【0159】
好ましい態様において、方法600は、第2のウォーターマークが第1のウォーターマークと一致しないと判定することに応答して、暗号化データ及び第1のウォーターマークのストレージをブロックする段階を備える。幾つかの態様において、暗号化データ及び第1のウォーターマークのストレージをブロックすることは、検証を保留しているデータの一時的なストレージを妨げない場合がある。本開示を読めば当業者にとって明らかになるように、例えば、ストレージシステムは、検証を保留している暗号化データを受信し、キャッシュで一時的に記憶し得る。
【0160】
ストレージシステムは、好ましくは、ブロックを書き込む前に、及び/又はブロックを読み出した後に、ストレージのために暗号化データを検証するように構成されている。検証に失敗したブロックは、ストレージに書き込まれない、又は同様に、読み出しは要求者に返されない。様々な態様において、ストレージシステムは、第1のウォーターマークと共に受信された暗号化データ及びウォーターマークトークンを用いて、ウォーターマークに関するその独自の独立した計算を行う。暗号化データ及び/又はウォーターマークトークンの関連する値が、認証された暗号化層により生成された値ではない場合、検証は失敗する。少なくとも幾つかの手法において、ストレージシステムは、暗号化データの第2の検証を実行し、ここでストレージシステムは、暗号化データのMACを用い、ウォーターマークトークンを独立して計算する。計算されたウォーターマークトークンが受信されたウォーターマークトークンと一致しない場合、エラーの報告、要求の拒否等がなされ得る。
【0161】
混合キーを用いる好ましい手法において、ストレージシステムは、ウォーターマークトークンを生成するために用いられた混合キーへのアクセスを有せず、それにより、システムのセキュリティを向上させる。ストレージシステムが混合キーへのアクセスを有する他の手法において、本開示を読めば当業者にとって明らかになるように、ストレージシステムは、混合キー及び暗号化データのHMACを用いてウォーターマークトークンを独立して計算することにより、暗号化データの第2の検証を実行し得る。
【0162】
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、及び/又はコンピュータプログラム製品であり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(又は複数のコンピュータ可読記憶媒体)を含み得る。
【0163】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持及び記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は上述のものの任意の好適な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非包括的なリストは、以下、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、パンチカード又は命令が記録されている溝内の隆起構造などの機械的に符号化されたデバイス、及び、上述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書において使用される場合、電波又は他の自由に伝播する電磁波、導波路又は他の伝送媒体を通じて伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通じて伝送される電気信号などの一時的な信号それ自体と解釈されるべきではない。
【0164】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して外部コンピュータ又は外部ストレージデバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含み得る。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体におけるストレージのために転送する。
【0165】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Smalltalk(登録商標)、C++などのようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語などの手続き型プログラミング言語又は同様のプログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで書かれたソースコード又はオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で全体を実行すること、ユーザのコンピュータ上で一部分を実行することができ、ユーザのコンピュータ上で一部分を、リモートコンピュータ上で一部分を実行すること、又は、リモートコンピュータ又はサーバ上で全体を実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてよく、又は、その接続は、外部コンピュータに対して(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)行われてよい。幾つかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによりコンピュータ可読プログラム命令を実行し、電子回路をパーソナライズしてよい。
【0166】
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック及び、フローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令により実装され得ることが理解されるであろう。
【0167】
これらのコンピュータ可読プログラム命令を、コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供して機械を生産してよく、それにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を作成する。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブルデータ処理装置及び/又は他のデバイスに特定の方法で機能するように指示し得るコンピュータ可読記憶媒体にも記憶され得、それにより、命令が記憶されたコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を備えるようになる。
【0168】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、又は、他のデバイス上で一連の動作段階を実行させることによりコンピュータ実装プロセスを生じさせることもでき、それにより、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令は、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するようになる。
【0169】
図面におけるフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、及び動作を示す。これに関し、フローチャート又はブロック図における各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む命令のモジュール、セグメント、又は一部分を表し得る。幾つかの代替的な実装形態において、ブロックに記されている機能は、図面に記されているものとは異なる順序で行われ得る。例えば、連続して示されている2つのブロックは、実際には、1つの段階として実現されても、同時に、実質的に同時に、部分的に又は全体的に時間重複する形で実行されてよく、ブロックは、場合によっては、関与する機能に応じて、逆の順序で実行され得る。ブロック図及び/又はフローチャート図の各ブロック、及び、ブロック図及び/又はフローチャート図におけるブロックの組み合わせは、指定された機能又は動作を実行する、又は専用ハードウェア及びコンピュータ命令の組み合わせを実行する、専用ハードウェアベースシステムにより実装され得ることにも留意されたい。
【0170】
更に、様々な実施形態に係るシステムは、プロセッサと統合される、及び/又はプロセッサによって実行可能であるプロセッサ及びロジックを含んでよく、このロジックは、本明細書に記載されるプロセス段階のうちの1つ又は複数を実行するように構成されている。~と統合された、とは、特定用途向け集積回路(ASIC)、FPGA等のようなハードウェアロジックとして埋め込まれたロジックをプロセッサが有することを意味する。プロセッサによって実行可能、とは、ロジックが、ハードウェアロジック;ファームウェア、オペレーティングシステムの一部、アプリケーションプログラムの一部などのソフトウェアロジック;等である、又は、プロセッサによりアクセス可能であり、プロセッサにより実行されるとプロセッサに何らかの機能を実行させるように構成された、ハードウェア及びソフトウェアロジックの何らかの組み合わせであることを意味する。ソフトウェアロジックは、当技術分野において既知のような任意のメモリタイプのローカルメモリ及び/又はリモートメモリに記憶され得る。ソフトウェアプロセッサモジュール及び/又はASIC、FPGA、中央処理装置(CPU)、集積回路(IC)、画像処理装置(GPU)等のようなハードウェアプロセッサなど、当技術分野において既知の任意のプロセッサが使用され得る。
【0171】
上述のシステム及び/又は方式の様々な特徴を、上記に提示された説明から複数の組み合わせを作成するように、任意の方法で組み合わせてよいことは明確であろう。
【0172】
更に、本発明の実施形態は、オンデマンドでサービスを提供すべく、顧客に代わり展開されるサービスの形式で提供されてよいことが理解されるであろう。
【0173】
本発明の様々な実施形態の説明は、例示の目的で提示されてきたが、包括的であること、又は、開示された実施形態に限定されることは意図されていない。説明された実施形態の範囲から逸脱することなく、多くの修正及び変形が、当業者には明らかであろう。本明細書において使用された専門用語は、実施形態の原理、市場で見られる技術の実際的な適用又はそれに対する技術的改善を最適に説明する、又は、本明細書において開示された実施形態を他の当業者が理解することを可能にするように選択されたものである。
【手続補正書】
【提出日】2023-09-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータに:
暗号化を実行することを許可されたものとしてアプリケーションを認証する手順、
認証された暗号化層でデータを受信する手順、
暗号化キーを用いて前記データを暗号化する手順、ここで前記暗号化キーは、前記アプリケーションにおいて使用できない、
前記暗号化データのウォーターマークトークンを生成する手順、
前記ウォーターマークトークン及びウォーターマークキーを用いて前記暗号化データのウォーターマークを生成する手順;及び
前記暗号化データ、前記ウォーターマークトークン、及び前記ウォーターマークをストレージシステムに送信する手順、ここで前記ストレージシステムは、前記ウォーターマークキーを用いてストレージ用の前記暗号化データを検証するように構成されている
を実行させるためのコンピュータプログラ
ム。
【請求項2】
前記暗号化データのウォーターマークトークンを生成す
る手順は、混合キーを使用する、請求項1に記載のコンピュータプログラ
ム。
【請求項3】
前記ウォーターマークは、キー付きハッシュメッセージ認証コードである、請求項1又は請求項2に記載のコンピュータプログラ
ム。
【請求項4】
前記コンピュータに、
暗号化を実行することを許可されたものとして前記アプリケーションを認証する手順に応答して、前記データに対する前記暗号化キーを要求する手順;及び
前記データに対する前記ウォーターマークキーを要求する手順
を更に実行させる、請求項1又は請求項2に記載のコンピュータプログラム。
【請求項5】
前記コンピュータに、
前記暗号化の前に、プレフィルタ関数により、前記データが未知の暗号化キーで予め暗号化されているかどうかを判定する手順;及び
前記データが予め暗号化されていると判定する手順に応答して、前記暗号化キーを用いた暗号化から前記データをブロックする手順
を更に実行させる、請求項1又は請求項2に記載のコンピュータプログラ
ム。
【請求項6】
前記コンピュータに、
前記アプリケーションが、暗号化を実行することを許可されていないと判定する手順に応答して、前記暗号化キーを用いた暗号化から前記データをブロックする手
順を実行させる、請求項1又は請求項2に記載のコンピュータプログラ
ム。
【請求項7】
コンピュータに:
暗号化データ、ウォーターマークトークン、メタデータ、及び前記暗号化データの第1のウォーターマークをストレージシステムで受信する手
順、
前記メタデータに関連付けられたウォーターマークキーを受信する手
順、
前記ウォーターマークトークン及び前記ウォーターマークキーを用いて前記暗号化データの第2のウォーターマークを生成する手
順;及び
前記暗号化データの前記第2のウォーターマークを、前記暗号化データの前記第1のウォーターマークと比較する手
順
を実行させるためのコンピュータプログラ
ム。
【請求項8】
前記コンピュータに、
前記第2のウォーターマークが前記第1のウォーターマークと一致すると判定する手順に応答して、前記暗号化データ及び前記第1のウォーターマークを記憶する手順
を実行させる、請求項7に記載のコンピュータプログラ
ム。
【請求項9】
前記コンピュータに、
前記第2のウォーターマークが前記第1のウォーターマークと一致しないと判定する手順に応答して、前記暗号化データ及び前記第1のウォーターマークのストレージをブロックする手
順を実行させる、請求項7に記載のコンピュータプログラ
ム。
【請求項10】
前記コンピュータに、
前記第2のウォーターマークが前記第1のウォーターマークと一致しないと判定する手順に応答して、ユーザに警告を送信する手
順を実行させる、請求項9に記載のコンピュータプログラ
ム。
【請求項11】
前記ストレージシステムは、前記暗号化データが暗号化される際に用いられる暗号化キーへのアクセスを有しない、請求項7に記載のコンピュータプログラ
ム。
【請求項12】
暗号化を実行することを許可されたものとしてアプリケーションを認証する段階、
認証された暗号化層でデータを受信する段階、
暗号化キーを用いて前記データを暗号化する段階、ここで前記暗号化キーは、前記アプリケーションにおいて使用できない、
前記暗号化データのウォーターマークトークンを生成する段階、
前記ウォーターマークトークン及びウォーターマークキーを用いて前記暗号化データのウォーターマークを生成する段階;及び
前記暗号化データ、前記ウォーターマークトークン、及び前記ウォーターマークをストレージシステムに送信する段階、ここで前記ストレージシステムは、前記ウォーターマークキーを用いてストレージ用の前記暗号化データを検証するように構成されている
を備える、コンピュータ実装方法。
【請求項13】
混合キーを用いて前記ウォーターマークトークンを生成する段階を備える、請求項12に記載のコンピュータ実装方法。
【請求項14】
前記ウォーターマークは、キー付きハッシュメッセージ認証コードである、請求項12又は請求項13に記載のコンピュータ実装方法。
【請求項15】
暗号化を実行することを許可されたものとして前記アプリケーションを認証する段階に応答して、前記データに対する前記暗号化キーを要求する段階;及び
前記データに対する前記ウォーターマークキーを要求する段階
を備える、請求項12又は請求項13に記載のコンピュータ実装方法。
【請求項16】
前記暗号化の前に、プレフィルタ関数により、前記データが未知の暗号化キーで予め暗号化されているかどうかを判定する段階;及び
前記データが予め暗号化されていると判定する段階に応答して、前記暗号化キーを用いた暗号化から前記データをブロックする段階
を備える、請求項12又は請求項13に記載のコンピュータ実装方法。
【請求項17】
前記アプリケーションが、暗号化を実行することを許可されていないと判定する段階に応答して、前記暗号化キーを用いた暗号化から前記データをブロックする段階を備える、請求項12又は請求項13に記載のコンピュータ実装方法。
【請求項18】
暗号化データ、ウォーターマークトークン、メタデータ、及び前記暗号化データの第1のウォーターマークをストレージシステムで受信する段階、
前記メタデータに関連付けられたウォーターマークキーを受信する段階、
前記ウォーターマークトークン及び前記ウォーターマークキーを用いて前記暗号化データの第2のウォーターマークを生成する段階;及び
前記暗号化データの前記第2のウォーターマークを、前記暗号化データの前記第1のウォーターマークと比較する段階
を備える、コンピュータ実装方法。
【請求項19】
前記第2のウォーターマークが前記第1のウォーターマークと一致すると判定する段階に応答して、前記暗号化データ及び前記第1のウォーターマークを記憶する段階を備える、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記第2のウォーターマークが前記第1のウォーターマークと一致しないと判定する段階に応答して、前記暗号化データ及び前記第1のウォーターマークのストレージをブロックする段階を備える、請求項18に記載のコンピュータ実装方法。
【請求項21】
前記第2のウォーターマークが前記第1のウォーターマークと一致しないと判定する段階に応答して、ユーザに警告を送信する段階を備える、請求項20に記載のコンピュータ実装方法。
【請求項22】
前記ストレージシステムは、前記暗号化データが暗号化される際に用いられる暗号化キーへのアクセスを有しない、請求項19に記載のコンピュータ実装方法。
【国際調査報告】