(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-26
(45)【発行日】2025-07-04
(54)【発明の名称】ハイパーバイザ保護鍵
(51)【国際特許分類】
H04L 9/08 20060101AFI20250627BHJP
【FI】
H04L9/08 B
(21)【出願番号】P 2022577133
(86)(22)【出願日】2021-06-24
(86)【国際出願番号】 IB2021055594
(87)【国際公開番号】W WO2022003505
(87)【国際公開日】2022-01-06
【審査請求日】2023-11-14
(32)【優先日】2020-07-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ブエントゲン、ラインハルト
(72)【発明者】
【氏名】ボーントレーガー、クリスチャン
【審査官】平井 誠
(56)【参考文献】
【文献】特表2008-541279(JP,A)
【文献】特開2012-190441(JP,A)
【文献】米国特許出願公開第2017/0171179(US,A1)
【文献】米国特許出願公開第2019/0260718(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00- 5/00
H04L 9/00-40
(57)【特許請求の範囲】
【請求項1】
暗号演算において使用するために暗号鍵オブジェクトをゲスト仮想サーバに提供するコンピュータ実施方法であって、
前記ゲスト仮想サーバによって、信頼できるハイパーバイザに登録することであって、前記登録することがゲスト証明書を使用することを含む、前記登録することと、
前記信頼できるハイパーバイザによって、ゲスト・ラッピング鍵を生成すること、および前記ゲスト・ラッピング鍵を前記ゲスト証明書に関連付けることと、
前記ゲスト仮想サーバから引数として前記ゲスト証明書と共に要求を受信すると、前記信頼できるハイパーバイザによって、前記ゲスト仮想サーバに対して前記ゲスト仮想サーバからの仮想サーバ固有データで構成されるサテライト仮想サーバ・インスタンスを生成することであって、前記サテライト仮想サーバ・インスタンスが、前記ゲスト
仮想サーバとマスタ鍵を共有し、前記マスタ鍵には、前記信頼できるハイパーバイザまたは任意のゲスト仮想サーバによるアクセスができない、前記生成することと、
前記信頼できるハイパーバイザによって、前記ゲスト・ラッピング鍵のコピーを前記サテライト仮想サーバ・インスタンスに受け渡すことと、
前記信頼できるハイパーバイザによって、ランダム・ゲスト鍵を生成することと、
前記信頼できるハイパーバイザによって、前記ランダム・ゲスト鍵を前記ゲスト・ラッピング鍵でラップすることにより、ラップされたゲスト鍵を作り出すことと、
前記ゲスト仮想サーバから変換要求を受信すると、前記ラップされたゲスト鍵の変換を実行して前記ラップされたゲスト鍵を保護鍵に変更することであって、前記変換が、前記ラップされたゲスト鍵を前記マスタ鍵で再ラップして保護ゲスト鍵を形成することを含み、前記保護ゲスト鍵が、前記暗号鍵オブジェクトの役割をする、前記変更することと、
を含む、コンピュータ実施方法。
【請求項2】
前記変換が、前記サテライト仮想サーバ・インスタンスが前記ゲスト・ラッピング鍵を用いて前記ラップされたゲスト鍵をアンラップすることをさらに含む、請求項1に記載の方法。
【請求項3】
前記変換要求が、前記ゲスト証明書を変換引数として含む、請求項1または2に記載の方法。
【請求項4】
前記信頼できるハイパーバイザが、前記ゲスト証明書を検証するために必要なデータに関連付けられた鍵リポジトリを維持する、請求項1ないし3のいずれか一項に記載の方法。
【請求項5】
前記信頼できるハイパーバイザが、前記ゲスト証明書を検証するために必要な前記データを計算するために暗号化一方向性関数を使用する、請求項4に記載の方法。
【請求項6】
前記鍵リポジトリが、パスフレーズで保護される、請求項
4に記載の方法。
【請求項7】
前記ゲスト・ラッピング鍵が、ハードウェア・セキュリティ・モジュールによって保護される、請求項1ないし6のいずれか一項に記載の方法。
【請求項8】
前記仮想サーバ固有データが、仮想機械の暗号制御ブロックに記憶されるデータである、請求項1ないし7のいずれか一項に記載の方法。
【請求項9】
前記サテライト仮想サーバ・インスタンスが、単独インターフェースを有し、
前記単独インターフェースが、前記信頼できるハイパーバイザに接続する、請求項1ないし8のいずれか一項に記載の方法。
【請求項10】
前記信頼できるハイパーバイザが、ランダム鍵を生成するため、および前記ランダム鍵を前記ゲスト・ラッピング鍵でラップするために、前記サテライト仮想サーバ・インスタンスからのサービスを使用する、請求項1ないし9のいずれか一項に記載の方法。
【請求項11】
前記信頼できるハイパーバイザによって、前記登録することに続いて各要求を認可することをさらに含み、
前記認可することが、前記登録することに続いてそれぞれの要求と共に提供される追加ゲスト証明書を使用することを含む、請求項1ないし10のいずれか一項に記載の方法。
【請求項12】
前記信頼できるハイパーバイザによって、前記登録することに続い
てゲスト仮想サーバ要求のさらなる要求を認可することをさらに含み、
前記ゲスト仮想サーバ要求を前記認可することが、ゲスト固有データを使用することを含む、請求項1ないし11のいずれか一項に記載の方法。
【請求項13】
暗号演算において使用するために暗号鍵オブジェクトをゲスト仮想サーバに提供するコンピュータ・システムであって、前記コンピュータ・システムが、
プロセッサと、コンピュータ可読有形記憶媒体と、前記プロセッサによる実行のために前記コンピュータ可読有形記憶媒体に記憶されるプログラム命令と、を備え、前記コンピュータ・システムが、
前記ゲスト仮想サーバによって、信頼できるハイパーバイザに登録することであって、前記登録することがゲスト証明書を使用することを含む、前記登録することと、
前記信頼できるハイパーバイザによって、ゲスト・ラッピング鍵を生成すること、および前記ゲスト・ラッピング鍵を前記ゲスト証明書に関連付けることと、
前記ゲスト仮想サーバから引数として前記ゲスト証明書と共に要求を受信すると、前記信頼できるハイパーバイザによって、前記ゲスト仮想サーバに対して前記ゲスト仮想サーバからの仮想サーバ固有データで構成されるサテライト仮想サーバ・インスタンスを生成することであって、前記サテライト仮想サーバ・インスタンスが、前記ゲスト仮
想サーバとマスタ鍵を共有し、前記マスタ鍵には、前記信頼できるハイパーバイザまたは任意のゲスト仮想サーバによるアクセスができない、前記生成することと、
前記信頼できるハイパーバイザによって、前記ゲスト・ラッピング鍵のコピーを前記サテライト仮想サーバ・インスタンスに受け渡すことと、
前記信頼できるハイパーバイザによって、ランダム・ゲスト鍵を生成することと、
前記信頼できるハイパーバイザによって、前記ランダム・ゲスト鍵を前記ゲスト・ラッピング鍵でラップすることにより、ラップされたゲスト鍵を作り出すことと、
前記ゲスト仮想サーバから変換要求を受信すると、前記ラップされたゲスト鍵の変換を実行して前記ラップされたゲスト鍵を保護鍵に変更することであって、前記変換が、前記ラップされたゲスト鍵を前記マスタ鍵で再ラップして保護ゲスト鍵を形成することを含み、前記保護ゲスト鍵が、前記暗号鍵オブジェクトの役割をする、前記変更することと、
を含む方法を実行可能な、コンピュータ・システム。
【請求項14】
請求項1ないし12のいずれか一項に記載の方法の各ステップを実行させるためのプログラム。
【請求項15】
請求項14に記載のプログラムを記憶するコンピュータ可読有形記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、暗号化、および暗号演算(cryptographic operation)に使用するために暗号鍵オブジェクト(cryptographic key object)をゲスト仮想サーバ(guest virtual server)に提供することに関する。
【背景技術】
【0002】
世界は、デジタル社会の方向に動いている。ますます多くのプロセス、製品、およびサービスが、デジタル形式で供給される。並行して、プライバシー要件が増大しており、企業および政府組織は、それらのデジタル資産を保護することに努めている。暗号学は、デジタル・プライバシーのためのコア技術であり、認可されていないシステムまたは人の手に決して渡ってはならない秘密鍵に基づいている。加えて、サイバー攻撃の数および高度化が増している。このように、機密データを保護する必要性は、時間が経つにつれて著しく増大している。
【0003】
暗号アルゴリズムに欠陥がないと仮定した場合、暗号のセキュリティは、使用される鍵の秘密保持に依存する。鍵は、暗号化関数において使用されるユーザ・システムのメモリ内にあることが非常によくあり得る。よって、そのような鍵は、「クリア鍵暗号(clear key crypto)」の形態で使用される。その鍵へのアクセスは、暗号化データへのアクセスも可能にするため、鍵の暴露は、秘密保持状態を破ることになる。
【0004】
したがって、関係する暗号化関数のユーザのメモリ・システムにおいて利用可能でない鍵を用いて暗号化を行う他の方法が存在する。例えば、ユーザ・システムが、ハードウェア・セキュリティ・モジュール(HSM)内に呼び出してもよい。ユーザ・システムは、その際、トークン、ラップされた鍵、またはどの鍵が使用されるかをハードウェア・セキュリティ・モジュールに伝える別の方法を有する。関係者がハードウェア・セキュリティ・モジュールへのアクセス権も有しない限り、トークンまたはラップされた鍵は、暗号化されたデータへのいかなるアクセス権も提供しないため、HSMを使用することによって、追加のセキュリティがもたらされ得る。そのようなHSMソリューションの既知の欠点は、多くの場合帯域幅が制限され、演算のレイテンシが増大することである。
【0005】
「保護鍵(protected key)」の概念として示される第3の変形が、IBM Z(R)システムのようなメインフレーム・コンピュータに加えられている。この変形は、ラップされた鍵を使用し、ラップされた鍵は、ラッピング鍵が別の鍵を暗号化することによって形成される。ラッピング鍵は、(信頼できる)ファームウェアによって知られている。このラッピングは、ハードウェア・セキュリティ・モジュール、例えばクリプト・エクスプレス・アダプタ(crypto express adapter)によって開始される。ラップされた鍵のユーザ・システムは、ラップされた鍵へのアクセス権を有するだけであってもよいが、CPUは、アンラップされた鍵を用いて暗号演算を行うことができる。そのような手法は、クリア鍵暗号の速度と保護鍵のセキュリティ・レベルとを結合する。
【0006】
保護鍵は、仮想サーバの実行中インスタンスに固有であり、かつ仮想サーバにアクセス可能でない仮想サーバ(VS)固有マスタ鍵(VS-MK)で暗号化されていてもよい。仮想サーバ・マスタ鍵VS-MKは、ファームウェアに隠されていてもよい。
【0007】
仮想サーバ・マスタ鍵(VS-MK)は、ホスト・マスタ鍵(host-MK)から、かつ仮想サーバが構成されるときはホストによって提供される仮想サーバ固有パターンから、導出される。各仮想サーバの内部で、ファームウェアは、呼び出す仮想サーバに固有のマスタ鍵によってラップされた保護鍵に平文鍵を変換するインターフェースを提供し得る。この手法の実施態様は、現在IBM Z(R)のようなメインフレーム・システム上に存在する。
【0008】
仮想サーバ・マスタ鍵が仮想サーバの実行中インスタンスに固有である場合、かつ保護鍵が仮想サーバのその固有の実行中インスタンスに対してのみ有効である場合に、この手法には問題がある。仮想サーバがリブートされ、ディスクに一時中断され、かつ再開されるかまたは別のシステムに移行される場合に保護鍵がもはや有効でないとすると、この手法には問題がある。
【0009】
ゆえに、ここで提案される方法およびシステムの根本的な問題は、テキスト形式で鍵を開示するために使用され得るデータを仮想サーバが記憶する必要がないように、鍵が仮想サーバの複数の(ブート)インスタンスにおいて保護鍵として使用され得る方法において見られ得る。これは、ホストへのアクセス権がなく、ホストされるデータが安全に記憶され得る境界条件下で実現され得る。
【0010】
この文脈において、いくつかの文献が発行されている。文献、米国特許出願公開第2017/0277898(A1)号は、プロセッサのための認証および暗号化鍵を管理するセキュリティ・モジュールを採用するプロセッサを開示する。セキュリティ・モジュールは、他の処理システムに対してそれ自体を認証することができ、それによって、プロセッサにおいて実行されるソフトウェアを提供する処理システムとして、提供されるソフトウェアのためのアドレス空間を暗号化する鍵を生成することができ、暗号化されたアドレス空間において情報を安全に処理システムにインポートし、かつ処理システムからエクスポートすることができる。
【0011】
さらに、文献、米国特許第8,996,887(B2)号は、データを提供する方法を開示する。方法は、データを記憶する第1の仮想機械(VM)から第1の要求を受信することと、データおよび認可されたユーザのアクセス制御リスト(ACL)を取得することと、データ鍵識別子を有するデータ鍵を取得することと、ラッピング鍵を用いてデータ鍵およびACLを暗号化して、ラップされたブロブ(blob)を生成することと、データを暗号化することと、ラップされたブロブおよび暗号化されたデータを記憶することと、データ鍵識別子をACL上のユーザに提供することと、を含む。
【0012】
しかしながら、これらの手法もまた、ハードウェア・セキュリティ・モジュールが利用可能でないか、または実用的でないときに保護鍵を使用することについての上述した問題を解決しない。
【発明の概要】
【0013】
本発明の実施形態は、暗号演算に使用するために暗号鍵オブジェクトをゲスト仮想サーバに提供する、コンピュータ実施方法、コンピュータ・システム、およびコンピュータ・プログラム製品を含み得る。ゲスト仮想サーバは、信頼できるハイパーバイザ(trusted hypervisor)に登録し得る。登録することは、ゲスト証明書(guest credential)を使用することを含み得る。信頼できるハイパーバイザが、ゲスト・ラッピング鍵(guest wrapping key)を生成し、ゲスト・ラッピング鍵をゲスト証明書に関連付け得る。ゲスト仮想サーバから引数としてゲスト証明書と共に要求を受信すると、信頼できるハイパーバイザは、ゲスト仮想サーバに対してサテライト仮想サーバ・インスタンス(satellite virtual server instance)を生成し得る。サテライト仮想サーバ・インスタンスは、ゲスト仮想サーバからの仮想サーバ固有データ(virtual server specific data)で構成され得る。サテライト仮想サーバ・インスタンスは、仮想ゲスト・サーバとマスタ鍵を共有し得る。マスタ鍵には、信頼できるハイパーバイザまたはゲスト仮想サーバによるアクセスができない。
【0014】
信頼できるハイパーバイザは、ゲスト・ラッピング鍵のコピーをサテライト仮想サーバ・インスタンスに受け渡し得る。信頼できるハイパーバイザは、ランダム・ゲスト鍵(random guest key)を生成し得る。信頼できるハイパーバイザは、ランダム・ゲスト鍵をゲスト・ラッピング鍵でラップし、それによって、ラップされたゲスト鍵(wrapped guest key)を作り出し得る。ゲスト仮想サーバから変換要求を受信すると、ラップされたゲスト鍵を保護鍵に変更するためのラップされたゲスト鍵の変換が実行され得る。変換は、ラップされたゲスト鍵をマスタ鍵で再ラップして保護ゲスト鍵を形成することを含み得る。保護ゲスト鍵は、暗号鍵オブジェクトの役割をする。
【0015】
暗号演算において使用するために暗号鍵オブジェクトをゲスト仮想サーバに提供する、コンピュータ実施方法、コンピュータ・システム、およびコンピュータ・プログラム製品は、複数の利点、技術効果、貢献、または改善、あるいはそれらの組合せを提示し得る。
【0016】
開示される発明は、HSMに必要なオーバヘッドまたはコストあるいはその両方を回避することを可能にするため、ハードウェア・セキュリティ・モジュール(HSM)に対する要件なしに保護鍵の概念を使用するオプションは、既存のソリューションを超える著しい利点である。発明は、ハードウェア・セキュリティ・モジュールを必要とするそれらのソリューションと同一の、または少なくとも等価なレベルの、暗号化鍵のためのセキュリティを提供し得る。発明のソリューションは、完全にソフトウェアベースであってもよく、いかなる追加的に必要なハードウェアもなくてもよい。このように、発明のソリューションは、今までハードウェアベースのセキュリティ・モジュールベース・ソリューションによってのみ供給された、同一の、または等価なセキュリティ・レベルの暗号化ソリューションについてのより低いプライス・ポイントを可能にし得る。
【0017】
本発明の1つの有用な利点は、保護鍵がハイパーバイザ上で実行中の仮想システムのインスタンスよりも「長く生存する」ことである。追加的に実施されるサテライト仮想サーバは、ハイパーバイザ上で典型的に実行される莫大な数の仮想機械を考慮した性能劣化の点から無視されてもよい。さらに、サテライト仮想サーバの機能性は、1つまたはほんのわずかの機能またはサービスに限定され得る。例えば、サテライト仮想サーバは、単一のトランザクション、即ちラップされたゲスト鍵の保護鍵への変換を実行し得る。ハイパーバイザは、信頼できるハイパーバイザであるべきである。保護鍵が必要とされ得る典型的なコンピューティング環境、例えばメインフレーム・コンピューティング環境では、典型的にはハードウェアにおいて実施される、一連のファームウェア・コンポーネントが、ハイパーバイザの機能をサポートしてもよく、または統合されてもよいため、ハイパーバイザは、トラステッド・バイ・デザイン(trusted-by-design)として見られ得る。
【0018】
追加のハードウェアが全くインストールされなくてもよいため、ここで提案される発明は、メインフレーム・コンピューティング・システムの実行時間の間にも実施され得る。したがって、オペレーティング・システムのダウンタイムがないこと、およびそのようなダウンタイムからの生産時間の減少がないことは、提案される発明ソリューションのさらなる有利な結果である。
【0019】
以下では、本発明の追加的実施形態について説明する。
【0020】
本発明の1つの高度な実施形態によれば、変換は、サテライト仮想サーバ・インスタンスがゲスト・ラッピング鍵を用いてラップされたゲスト鍵をアンラップすることをさらに含む。ゆえに、サテライト仮想サーバによる保護鍵の供給は、ハードウェア・セキュリティ・モジュールがなくても発生し得る。
【0021】
本発明の別の実施形態によれば、変換要求は、引数、例えば変換引数として、ゲスト証明書を含む。ゆえに、サテライト仮想サーバによる保護鍵の供給は、ハードウェア・セキュリティ・モジュールがなくても完全に発生し得る。
【0022】
本発明の別の実施形態によれば、信頼できるハイパーバイザは、ゲスト証明書を検証する必要があるデータに関連付けられたゲスト・ラッピング鍵のリポジトリを維持し得る。ゆえに、異なるゲスト仮想機械のゲスト・ラッピング鍵は、永続的に維持されてもよく、即ち、関連するゲスト仮想機械のシャットダウンを免れてもよく、異なるゲスト仮想サーバからの証明書は検証可能なままであってもよい。
【0023】
本発明のさらなる実施形態によれば、信頼できるハイパーバイザは、ゲスト証明書を検証する必要があるデータを計算するための暗号化一方向性関数(cryptographic one-way function)を使用し得る。そのような暗号化一方向性関数は、暗号ハッシュ関数であってもよい。本実施形態は、それによってゲストの証明書を記憶する必要性がなくなるため、ハイパーバイザのセキュリティを改善する。
【0024】
本発明の1つの有利な実施形態によれば、鍵リポジトリ(key repository)は、パスフレーズで保護され得る。ゆえに、本実施形態では、鍵ストアへの非制御アクセスが許可されない。鍵リポジトリは、許可されないアクセスに対して保護され得る。
【0025】
本発明の1つの強化された実施形態によれば、リポジトリ内のゲスト・ラッピング鍵は、ハードウェア・セキュリティ・モジュールによって保護され得る。本実施形態は、ハードウェア・セキュリティ・モジュールがハイパーバイザに利用可能であるが、ハイパーバイザによってホストされる全てのゲストに対して利用可能ではないときの、ゲスト・ラッピング鍵の強化された保護のための高度なオプションを表し得る。
【0026】
本発明の有利な実施形態によれば、仮想サーバ固有データは、仮想機械の暗号制御ブロック(CRYCB:crypto control block)に記憶されるデータであってもよい。このデータ特徴は、ゲスト仮想サーバにもサテライト仮想サーバにも適用し得る。ゆえに、本実施形態では、信頼できるハイパーバイザは、セキュリティ要件に依存した構成データを共有する、または共有しない2つのゲストを構成し得る。言い換えると、2つの標準ゲストは、セキュリティ関連データを共有しないが、ゲストおよびそのサテライト・ゲストは共有する。
【0027】
本発明の別の有利な実施形態によれば、サテライト仮想サーバは、単独インターフェースを有してもよく、その単独インターフェースは、信頼できるハイパーバイザに接続し得る。ゆえに、本実施形態では、サテライト仮想サーバの他のインターフェースまたはAPIが利用可能または使用可能でない場合があり、サテライト仮想サーバは、ここで提案されるセキュリティ発明を損なうように悪用されることを防止され得る。
【0028】
代替的に、または追加的に、本発明のさらなる実施形態によれば、信頼できるハイパーバイザはまた、ランダム鍵を生成するため、およびランダム鍵をゲスト・ラッピング鍵でラップするためにサテライト仮想サーバからのサービス、例えば追加サービスを使用し得る。よって、本実施形態の場合、ここで提案されるセキュリティ発明のための全ての高い機密コア機能が、信頼できるハイパーバイザとサテライト仮想サーバとの間でハンドリングされ得る。
【0029】
1つの許容的な実施形態によれば、本発明は、信頼できるハイパーバイザによって登録後に各要求を認可することも含み得る。認可することは、登録することに続いてそれぞれの要求と共に提供される追加ゲスト証明書を使用することを含み得る。これらの特徴は、鍵生成およびラッピング鍵変換演算が複数の独立した鍵空間上で動作し得るように、複数の証明書に関連付けられた複数のラッピング鍵をゲストが登録することを可能にする。
【0030】
方法の別の高度な実施形態によれば、ハイパーバイザは、登録後のゲスト仮想サーバ要求のさらなる要求を認可し得る。認可することは、追加的にゲスト固有データに基づき得る。本実施形態のためのゲスト固有データは、例えば、登録要求中に記録されている場合がある、ブート・ボリューム・データまたはゲスト・オーナ・データであってもよい。ゆえに、これらの特徴と共に、提案されるセキュリティ発明を損なう可能性が、さらに低下し得る。
【0031】
通知のない限り、本明細書に記載された方法、システム、またはコンピュータ・プログラム製品に属する特徴の任意の組合せが、この文書内で開示されると考えられるということを、当業者であれば上記の記載および下記の記載から理解することに留意されたい。
【0032】
上記で定義される態様および本発明のさらなる態様は、以下に記載される実施形態の例から明らかであり、実施形態の例を参照して説明されるが、本発明はそれに限定されない。
【0033】
本発明の好適な実施形態は、単なる例として、以下の図面を参照して説明される。
【図面の簡単な説明】
【0034】
【
図1】暗号演算において使用するために暗号鍵オブジェクトをゲスト仮想サーバに提供する、発明のコンピュータ実施方法の実施形態のブロック図である。
【
図2】ゲスト・ラッピング鍵を生成することについての例示的フローチャートである。
【
図3】ゲスト・ラッピング鍵を生成する手段となるコンポーネントのブロック図である。
【
図4】サテライト仮想サーバの開始についての例示的フローチャートである。
【
図5】サテライト仮想サーバを開始するプロセスに関係するコンポーネントのブロック図である。
【
図6】ランダムなラップされた鍵を生成することについての例示的フローチャートである。
【
図7】ランダム鍵の生成に関するコンポーネントを含むコンポーネントのブロック図である。
【
図8】ラップされたランダム鍵の生成に関連するコンポーネントを含むコンポーネントのブロック図である。
【
図9】ラップされた鍵の保護鍵への転換についての例示的フローチャートである。
【
図10】保護鍵の生成をサポートする全てのコンポーネントのブロック図である。
【
図11】暗号演算において使用するために暗号鍵オブジェクトをゲスト仮想サーバに提供する、発明の保護鍵提供システムの実施形態のブロック図である。
【
図12】
図11による保護鍵提供システムを含むコンピューティング・システムについてのブロック図である。
【
図13】本開示の実施形態による、
図12に示されるコンピュータ・システムを含む例示的クラウド・コンピューティング環境のブロック図である。
【
図14】本開示の実施形態による、
図13の例示的クラウド・コンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0035】
この説明の文脈において、以下の用語または表現あるいはその両方が使用され得る。
【0036】
「暗号鍵オブジェクト」という用語は、ゲスト仮想サーバによる暗号演算において使用されるデータ・シーケンスを意味し得る。ゲスト仮想サーバは、暗号鍵オブジェクトを保護鍵として使用し得る。
【0037】
「ゲスト仮想サーバ」という用語は、完全なコンピュータ・システムを模倣し、ハイパーバイザの中または上で実行される仮想機械を意味し得る。ハイパーバイザは、実ハードウェア・システムと、互いに隔離され得る複数の仮想機械との間の層を表し得る。仮想機械が互いに隔離されているとき、仮想機械のうちの1つの中または上の致命的なエラーは、仮想機械のうちの別の1つに影響を及ぼさない。
【0038】
「暗号演算」という用語は、認可されていないアクセスに対してデータを保護するデータの暗号化または復号を意味し得る。追加的に、「暗号演算」は、データの完全性の証明を行うためのサインまたは検証動作にも関連し得る。
【0039】
「信頼できるハイパーバイザ」という用語は、構築され実ハードウェア・システムに組み込まれ得る、かつ認可されていない人による危険にさらされない方法でファームウェアと通信可能に交換し得る、ハイパーバイザを意味し得る。ハイパーバイザに対するこのセキュリティを実現するために、組織的提供が行われ得る。例えば、信頼できるハイパーバイザのインストールまたは管理のための端末へのアクセスは、制限され得る。代替的に、セキュリティ鍵およびハイパーバイザによって管理される他の機密データへの認可されていないアクセスからハイパーバイザを保護するために組織的測定が行われる限り、ソフトウェアのみのハイパーバイザが、信頼できるハイパーバイザとして使用され得る。
【0040】
さらに、信頼できるハイパーバイザ、即ち要するに「ハイパーバイザ」は、ゲスト仮想サーバにハイパーコールを提供して、(a)ゲスト・ラッピング鍵によってラップされたランダム鍵であるランダム鍵トークンを生成し、(b)鍵トークンを保護鍵に転換し得る。これらのコールの両方が、信頼できるハイパーバイザが正しいサテライト仮想サーバを関連付けることを可能にする引数として、ゲスト秘密(guest secret)をとり得る。
【0041】
上述したハイパーコール(a)は、ハイパーバイザによって実行され得るが、ゲスト・ラッピング鍵は、その動作の間に暴露される。ハイパーコール(a)は、好ましくは、ゲスト・ラッピング鍵で初期化されると、ゲスト・ラッピング鍵を保護鍵に転換し得るサテライト仮想サーバのサービスによって実行されてもよく、したがって、ゲスト・ラッピング鍵を用いてランダム鍵をラップしながら、ゲスト・ラッピング鍵を保護し得る。
【0042】
ハイパーコール(b)は、コールしているゲスト仮想サーバに関連付けられるサテライト仮想サーバのサービスによって実行され得る。サテライト仮想サーバは、その際、ゲスト・ラッピング鍵(保護鍵であってもよい)のコピーを使用して鍵トークンをアンラップしてもよく、アンラップされた鍵を、サテライト仮想サーバがハイパーバイザに返す保護鍵に直ちに変換してもよい。
【0043】
「ゲスト証明書」という用語は、ゲスト仮想サーバに固有の任意のコード・データを意味し得る。ゲスト証明書は、ユーザによって入力もしくは提供されてもよく、またはゲスト仮想サーバによってアクセス可能な永続ストレージ、例えば、USBスティックの形態の鍵ストレージに記憶されてもよい。
【0044】
「サテライト仮想サーバ・インスタンス」という用語は、ゲスト仮想機械に並列して信頼できるハイパーバイザ上で実行中の隠れ仮想機械を意味し得る。ゲスト仮想サーバとサテライト仮想サーバとの間には、1:1の相関関係が存在し得る。サテライト仮想サーバは、ゲスト仮想サーバに保護鍵を提供する目的のみのために、ゲスト仮想サーバの要求に対して生成され得る。サテライト仮想サーバは、機能が制限されることがあり、要求を開始することが可能でない場合があり、したがって、それ自体のゲスト秘密を有しない。サテライト仮想サーバは、ゲストの秘密、例えば、その対応するゲスト仮想機械からのゲスト秘密に関連付けられ得る。
【0045】
「仮想サーバ」という用語は、ハイパーバイザ上でソフトウェアとして実行される仮想機械という用語の同義語として使用され得る。この用語は、ゲスト仮想サーバにもサテライト仮想サーバにも適用し得る。
【0046】
「マスタ鍵」という用語は、例えばハードウェア・ホスト機械に固有で、ハードウェア機械のファームウェアに組み込まれる秘密コードを意味し得る。代替的には、この用語は、仮想サーバ・マスタ鍵(VS-MK)、即ち特定のゲスト仮想システムに関連付けられたマスタ鍵を意味し得る。2つのゲスト仮想システムは、1つがもう1つのサテライト仮想サーバでない限り、同一のVS-MKを有することはない。
【0047】
「ランダム・ゲスト鍵」という用語は、ゲスト証明書に関連付けられたゲスト・ラッピング鍵でラップされる、ハイパーバイザによって生成されたコードを意味し得る。
【0048】
「ゲスト・ラッピング鍵」という用語は、ランダム・ゲスト鍵をラップするため、即ち認可されていないアクセスからランダム・ゲスト鍵を保護するために、ハイパーバイザによって使用される鍵、例えばデジタル・データのシーケンスを意味し得る。
【0049】
「サテライト仮想サーバ」という用語は、ハイパーバイザにサービスを提供する、例えば、(a)鍵が関連ゲスト仮想サーバのための保護鍵になるように、関連ゲスト仮想サーバのゲスト・ラッピング鍵によってラップされた鍵を変換し、かつ任意選択で(b)関連ゲスト仮想サーバのゲスト・ラッピング鍵によってラップされたランダム鍵を生成する、仮想機械を意味し得る。
【0050】
「暗号制御ブロック」(CRYCB)という用語は、仮想機械に固有の、例えばゲスト仮想サーバまたはサテライト仮想サーバに固有のデータ構造を意味し得る。CRYCBは、ハイパーバイザの制御下で、ハイパーバイザ上での仮想機械のインスタンス化の間に生成され得る。ここで提案される発明では、ゲスト仮想サーバおよび関連するサテライト仮想サーバのためのCRYCBは、同一であってもよく、またはいくつかの同一データを含んでもよい。
【0051】
以下では、図面の詳細な説明が与えられる。図面内の全ての指示は、概略的である。最初に、暗号演算において使用するために暗号鍵オブジェクトをゲスト仮想サーバに提供するための、発明のコンピュータ実施方法の実施形態のブロック図が与えられる。その後、暗号演算において使用するためにゲスト仮想サーバに暗号鍵オブジェクトを提供する保護鍵提供システムの実施形態だけでなく、さらなる実施形態が記載される。
【0052】
図1は、暗号演算において使用するために暗号鍵オブジェクト、特に保護鍵をゲスト仮想サーバに提供するコンピュータ実施方法100の好適な実施形態のブロック図を示す。方法100は、ゲスト仮想サーバがゲスト証明書を用いて信頼できるハイパーバイザに登録するステップ102を含み得る。ゲスト証明書は、ユーザによって入力されてもよく、ファイルによって入力されていてもよく、または別のソースからのものであってもよい、ゲスト仮想サーバ固有秘密であってもよい。別のステップ104において、信頼できるハイパーバイザは、登録されたゲスト仮想サーバのためにゲスト・ラッピング鍵を生成する。信頼できるハイパーバイザは、信頼できるハイパーバイザへのゲスト仮想サーバの登録に使用されたゲスト証明書に、ゲスト・ラッピング鍵を関連付けてもよい。
【0053】
別のステップ106では、引数としてゲスト証明書と共に要求、例えば初期化要求をゲスト仮想サーバから受信すると、信頼できるハイパーバイザは、ゲスト仮想サーバに対するサテライト仮想サーバ・インスタンスを生成する。要求および生成は、1つの統合されたアクティビティと見なされてもよい。サテライト仮想サーバは、ゲスト仮想サーバからの仮想サーバ固有データ、特にCRYCB内の同一データで構成される。サテライト仮想サーバおよびゲスト仮想サーバは、マスタ鍵を共有してもよく、例えばVS-MKを共有してもよい。したがって、ゲスト仮想サーバおよびサテライト仮想サーバのCRYCB(暗号制御ブロック)内のデータは、原則として同一である。さらなる制約は、信頼できるハイパーバイザまたは任意のゲスト仮想サーバによってマスタ鍵にアクセスすることができないということである。この保護は、ファームウェアにマスタ鍵を隠すことによって実現され得る。その結果、ゲスト仮想サーバは、それ自体のマスタ鍵に直接アクセスできない。
【0054】
追加的に、方法100は、信頼できるハイパーバイザがゲスト・ラッピング鍵のコピーをサテライト・サーバ・インスタンスに受け渡すステップ108を含み得る。この受け渡しは、任意の初期化ステップにおいて、または変換要求の一部として実行され得る。ゲスト・ラッピング鍵は、要求、即ち初期化のための要求、または代替としてラップされた鍵生成のための要求のゲスト証明書に関連付けられたゲスト・ラッピング鍵である。
【0055】
方法100はまた、ゲスト仮想サーバがゲスト・ラッピング鍵によってラップされるランダム・ゲスト鍵を要求するステップ110を含み得る。さらに、方法100は、信頼できるハイパーバイザがランダム・ゲスト鍵を生成するステップ112を含み得る。方法100は、信頼できるハイパーバイザが、ゲスト証明書に関連付けられたゲスト・ラッピング鍵でランダム・ゲスト鍵をラップするステップ114を含み得る。
【0056】
方法100はまた、ラップされたゲスト鍵を保護鍵に変換するステップ116を含み得る。変換は、変換要求をゲスト仮想サーバから受信すると発生してもよく、ハイパーバイザから送信されたラップされたゲスト鍵が、ゲスト仮想サーバによって使用される前に発生してもよい。この変換することまたは変換は、サテライト仮想サーバが、ゲスト仮想サーバおよびサテライト仮想サーバの両方に固有のそのマスタ鍵で、ラップされたゲスト鍵を再ラップすることを含み得る。ゆえに、ラップされたゲスト鍵は、暗号鍵オブジェクトの役割をする保護ゲスト鍵に変換され得る。
【0057】
図2は、ゲスト・ラッピング鍵を生成するための例示的フローチャート200を示す。これは、ゲスト仮想サーバの最初のロードにおいて発生し得る。ステップ202において、ゲスト仮想サーバは、ゲスト・ラッピング鍵を生成するように、かつゲスト・ラッピング鍵をゲスト証明書、例えばゲスト秘密に関連付けるように、ハイパーバイザに要求し得る。ステップ204において、要求に基づいて、ハイパーバイザは、新たなランダム鍵を生成し、ゲスト秘密の暗号ハッシュに新たなランダム鍵を関連付け得る。さらにステップ206において、ハイパーバイザは、ハッシュとランダム鍵とのこの関連付けをリポジトリに記憶し得る。
【0058】
図3は、ゲスト・ラッピング鍵を生成する手段となるコンポーネントのブロック
図300を示す。ハイパーバイザ302は、ファームウェア304と協調し、それによって信頼できるハイパーバイザを形成し得る。ソフトウェアのみのハイパーバイザの場合、環境の動作制限は、ハイパーバイザの動作を保護する所にあり、それによって、それが信頼できるハイパーバイザを構成する。ファームウェア304に組み込まれるのは、ホスト・マスタ鍵(ホストMK)306である。ホストMK306は、暗号制御ブロック(CRYCB)308、およびゲスト仮想サーバ暗号制御ブロック314からのゲスト・マスタ鍵パターンと共に使用されて、ゲスト・マスタ鍵310を生成し得る。
【0059】
ゲスト仮想サーバ(GVS)312の初期化または最初の使用において、ゲスト仮想サーバ312は、ゲスト秘密316であり得るゲスト証明書にアクセスし得る。ゲスト秘密316は、例えばユーザ入力であってもよく、または別のソースからのものであってもよい。ゲスト秘密316は、パスワードであってもよく、またはパスワードのようなものであってもよい。ゲスト秘密316は、ハッシュ値322に一方向性の形態で転換され得る。追加的に、ハイパーバイザ302は、ゲスト・ラッピング鍵320を生成し得る。ハイパーバイザ302は、ゲスト秘密316のハッシュ値322とゲスト・ラッピング鍵320との間の二重矢印によって示されるように、ゲスト・ラッピング鍵320をハッシュ値322に関連付け得る。ゲスト秘密316のハッシュ値322およびゲスト・ラッピング鍵320の両方が、リポジトリ318に永続的に記憶される。このストレージによって、ゲスト仮想サーバ312がリブートされ、ディスクに一時中断され、または再開され、もしくは別のハイパーバイザを用いてシステムの別の部分に移行され、あるいはそれらの組合せが行われるとしても、ゲスト・ラッピング鍵320が存在し続けることが可能となる。
【0060】
図4は、サテライト仮想サーバの開始のためのステップの少なくとも1つの実施形態についての例示的フローチャート400を示す。ステップ402において、ゲスト仮想サーバ312は、要求をハイパーバイザ302に送信して、サテライト仮想サーバを開始または初期化し、サテライト仮想サーバをゲスト仮想サーバ秘密に関連付ける。ゲスト仮想サーバ固有秘密は、ユーザによって入力されてもよく、ファイルによって入力されてもよく、または別の秘密ソースからくるものであってもよい。ゲスト仮想サーバ312は、前のステップで使用されるものと同一であるため、秘密は、ゲスト・ラッピング鍵320を生成するために使用されたゲスト秘密316と同一になる。この要求の後、ステップ404において、ハイパーバイザ302は、呼び出しクライアントが使用した同一のラッピング鍵構成を用いて、即ち、ゲスト仮想サーバ312が使用した同一のラッピング鍵構成を用いて、サテライト仮想サーバ・インスタンスを開始する。言い換えると、ハイパーバイザ302は、ゲスト仮想サーバ312をインスタンス化するために既に使用した暗号制御ブロックCRYCB314を使用する。
【0061】
ステップ406において、ハイパーバイザ302は、ゲスト秘密316のハッシュ値322を決定し、ハッシュ値322に関連付けられたゲスト・ラッピング鍵320をサテライト仮想サーバに記憶する。ゲスト秘密が同一であったため、ステップ406において決定されたハッシュは、ステップ200において使用されたものと同一になる。ハッシュは、確定関数である。ステップ408において、ハイパーバイザ302は、サテライト仮想サーバをハッシュ値322に関連付ける。
【0062】
ゲスト仮想サーバ秘密は、データベース、例えばリポジトリ318における特定のラッピング鍵を参照することを意味する。引数としてゲスト仮想サーバ秘密を有する後続の要求がハイパーバイザ302に発行されるときにはいつでも、作成されたばかりのサテライト・サーバが使用されることを、ハイパーバイザ302は、ゲストの存続期間の間(即ち、ゲストが実行中である限り)記憶していなければならない。
【0063】
実行中のゲストの寿命は、そのホストの寿命(即ち、ハイパーバイザ302の寿命)を超えることがないため、その関連付け(例えば、ハッシュおよびサテライト仮想サーバへの参照から構成される対)は、外部のデータベースに記憶されなくてもよいが、ハイパーバイザのメモリ内のどこかに記憶されるべきである。例えば、初期化要求を発行したゲスト毎に、ハイパーバイザ302は、(初期化中に使用される)秘密のハッシュとサテライト仮想サーバへの参照との対を維持する。例えば、LinuxKVM(カーネルベース仮想機械)では、この参照は、サテライト仮想サーバを実行するQEMU(オープン・ソース・マシン・エミュレータおよびバーチャライザ)プロセスのプロセスIDであってもよい。
【0064】
図5は、サテライト仮想サーバを開始するプロセスに関係するコンポーネントのブロック
図500を示す。既に前述したコンポーネントは、再度記載されることはなく、同一オブジェクトのための以前の図の参照番号が再使用される。
【0065】
サテライト・ゲスト仮想サーバ502(ゲスト仮想サーバ312の隣に示される)は、ハイパーバイザ302が同一マスタ鍵構成またはゲスト仮想サーバ312が使用したラッピング鍵構成を用いることによって、例えば、ゲスト仮想サーバ312をインスタンス化するために使用された暗号制御ブロック314を用いることによって、開始される。ゲスト・ラッピング鍵320のコピーは、サテライト・ゲスト仮想サーバ502のシステムに記憶される(320の2つのインスタンス間の矢印で示される)。
図4にフローチャートとして示されるプロセスの結果として、ゲスト秘密316のハッシュ値322もまた、サテライト・ゲスト仮想サーバ502に存在する(リポジトリ318からサテライト・ゲスト仮想サーバ502への矢印によって示される)。
【0066】
サテライト・ゲスト仮想サーバ502の単独タスクは、ゲスト・ラッピング鍵によってラップされる鍵を保護鍵に変換するための関数を提供するものであり得る。ゆえに、他のどの関数も、サテライト・ゲスト仮想サーバ502の中で利用可能でなくてもよく、したがって、サテライト・ゲスト仮想サーバ502は、任意のサイバー攻撃のために悪用されることはない。
【0067】
図6は、ランダムなラップされた鍵を生成する方法を示す例示的フローチャート600を示す。ステップ602において、ゲスト仮想サーバ312は、ハイパーバイザ302に要求を送信してもよく、ゲスト秘密をハイパーバイザ302に提供してもよい。要求は、ハイパーバイザ302がゲスト秘密に関連付けられたゲスト・ラッピング鍵320によってラップされるランダム鍵を返すためのものである。仮想ゲスト・サーバ312は、前のステップ200および400において使用されるのと同一であるため、システムがリポジトリ318内の正しく保存された情報を識別可能であるように、ここでのゲスト秘密は、以前使用したゲスト秘密316と同一である。ゲストは、例えば2つの異なる秘密をハイパーバイザ302に登録してもよく、その際、2つの異なるラッピング鍵および2つの異なるサテライト・サーバを有し得る。要求において使用される秘密によっては、いずれか一方のラッピング鍵およびサテライト・サーバが、要求を遂行する際にハイパーバイザ302によって使用される。ステップ604に戻ると、ハイパーバイザ302は、ゲスト秘密のハッシュを決定し、そのゲスト・ラッピング鍵によってラップされたランダム鍵を生成する。ゆえに、ゲスト仮想サーバとサテライト仮想サーバとの間には、直接的な通信は発生しない。ステップ606において、ハイパーバイザは、ゲスト・ラッピング鍵によってラップされたランダム鍵をゲスト仮想サーバに返す。
【0068】
図7は、
図6のアクティビティ・フローチャートによって記載されたように、ランダム鍵の生成に関わるコンポーネントのブロック
図700を示す。
図7は、ハイパーバイザ302がランダム鍵702を生成したことを示す。
【0069】
図8は、
図7に示されたコンポーネントの類似のブロック
図800を示しているが、ラップされたランダム鍵を完成するためのさらなるアクションを示す。
図8は、ランダム鍵702(
図7)が、サテライト・ゲスト仮想サーバ・インスタンス502からのゲスト・ラッピング鍵320を用いてここでラップされ、それによってラップされたゲスト鍵802を形成することを示す。ゲスト・ラッピング鍵320によってラップされる、ラップされたゲスト鍵802は、ゲスト仮想サーバ(GVS)312に利用可能にされる。
【0070】
ラップされたゲスト鍵802がゲスト仮想サーバ312に移動し、またはゲスト仮想サーバ312によって受信されると、ランダム鍵702(
図7)の最初のバージョンおよびラップされたゲスト鍵802の最初のバージョン、即ち、
図8の左に示されるラップされたゲスト鍵802は、もはや存在しなくてもよく、例えば削除されてもよい。
【0071】
図9は、ラップされたゲスト鍵802の保護鍵への転換のための例示的フローチャート900を示す。ステップ902において、ゲスト仮想サーバ312は、要求をハイパーバイザ302に送信して、要求で提供されるゲスト秘密に関連付けられたゲスト・ラッピング鍵320によってラップされた、ラップされたゲスト鍵802から始まるゲスト仮想サーバ・マスタ鍵310(VS-MK)によってラップされた鍵を返す。別のステップ904において、ハイパーバイザ302は、この要求のゲスト秘密のハッシュ値を決定し、ゲスト・ラッピング鍵320によってラップされた、ラップされたゲスト鍵802をそのゲスト・マスタ鍵310によってラップされた鍵に転換するように、関連するサテライト仮想サーバに要求する。
【0072】
ステップ906において、サテライト・ゲスト仮想サーバ502は、ゲスト・ラッピング鍵320を用いてラップされたゲスト鍵802をアンラップする。ステップ908において、サテライト・ゲスト仮想サーバ502は、アンラップされた鍵をそのマスタ鍵310でラップするように、ファームウェア304から(ハイパーバイザ302を介して)要求し、その結果をハイパーバイザ302に返す。別のステップ910において、ハイパーバイザ302は、ゲスト・マスタ鍵310によってラップされた、受信した鍵をゲスト仮想サーバ312に返す。これと共にループが閉じ、ゲスト仮想サーバ312は、ハードウェア・セキュリティ・モジュールを使用する必要なしに、ゲスト仮想サーバ312によってさらなる暗号関数のために使用される保護鍵、即ち暗号鍵オブジェクトを受信している。
【0073】
図10は、
図9に示されるステップの文脈において記載されたように、保護鍵の生成をサポートする全てのコンポーネントのブロック
図1000を示す。ゲスト・ラッピング鍵320によってラップされてラップされたゲスト鍵802になるランダム鍵702は、サテライト・ゲスト仮想サーバ502においてアンラップされ、ハイパーバイザ302を介してファームウェア304に送信される。ここで、アンラップされたゲスト鍵1002は、マスタ鍵310でラップされ、ハイパーバイザ302を介して保護鍵1004としてゲスト仮想サーバ312に返される。
【0074】
ここで、ラップされたゲスト鍵802のコピーが、ゲスト仮想サーバ312およびサテライト・ゲスト仮想サーバ502に見られ得る。しかしながら、ラップされたゲスト鍵802がアンラップされてアンラップされたゲスト鍵1002になった後、ラップされたゲスト鍵802は、「忘れられ」てもよく、即ちサテライト・ゲスト仮想サーバ502において削除されてもよい。よって、アンラップされたゲスト鍵1002は、トランジションにおいてのみ存在し得る。また、ファームウェア304への要求が遂行された後は、アンラップされたゲスト鍵1002は、サテライト・ゲスト仮想サーバ502において削除されてもよい。アンラップされたゲスト鍵1002は、もはや必要ない。同じことが、保護鍵1004がゲスト仮想サーバ312に移送された後で、ファームウェア内にある保護鍵1004のバージョンに発生する。
【0075】
図11は、暗号演算において使用するために暗号鍵オブジェクトをゲスト仮想サーバ312に提供する、発明の保護鍵提供システム1100の実施形態のブロック図を示す。システム1100は、ゲスト仮想サーバ312がゲスト証明書を用いて信頼できるハイパーバイザ302に登録することを可能にする登録ユニット1102を含み得る。システム1100はまた、信頼できるハイパーバイザ302がゲスト・ラッピング鍵320を生成すること、およびゲスト・ラッピング鍵320をゲスト証明書に関連付けることを可能にする、第1の生成器モジュール1104を含み得る。
【0076】
システム1100はまた、引数としてゲスト証明書と共にゲスト仮想サーバ312から要求を受信するとアクティブになる第2の生成器モジュール1106を含み得る。その場合、信頼できるハイパーバイザ302によってトリガされ、またはアクティブ化される第2の生成器モジュール1106が、ゲスト仮想サーバ312に対して、ゲスト仮想サーバ312からの仮想サーバ固有データで構成されるサテライト・ゲスト仮想サーバ・インスタンス502を生成するように適合される。ゲスト仮想サーバ312は、そのマスタ鍵310をサテライト・ゲスト仮想サーバ・インスタンス502と共有する。いずれにせよ、マスタ鍵310には、信頼できるハイパーバイザ302または任意のゲスト仮想サーバによりアクセスすることができない。
【0077】
ゲスト仮想サーバ312は、マスタ鍵へのアクセス権を有することなくマスタ鍵310を共有し得る。暗号要求は、保護鍵(マスタ鍵によってラップされた鍵)と共にシステムに送信される。システムは、どの仮想サーバから暗号要求が来ているかを知っており、その仮想サーバのためのマスタ鍵を使用して、保護鍵をアンラップする。次いで、暗号演算は、CPU内の平文鍵に基づいて実行される。したがって、暗号演算は、仮想サーバが実際の暗号鍵を決して知ることなく実行され得る。
【0078】
さらに、システム1100は、信頼できるハイパーバイザ302が、要求のゲスト証明書に関連付けられたゲスト・ラッピング鍵320のコピーをサテライト・ゲスト仮想サーバ・インスタンス502へ受け渡すことを可能にする、受け渡しモジュール1108を含み得る。システム1100はまた、信頼できるハイパーバイザ302がランダム鍵702を生成することを可能にする、第3の生成器モジュール1110を含み得る。
【0079】
追加的に、システム1100は、信頼できるハイパーバイザ302がゲスト証明書に関連付けられたゲスト・ラッピング鍵320でランダム鍵702をラップすることを可能にし、それによってラップされたゲスト鍵802を作り出す、ラッピング・モジュール1112を含み得る。
【0080】
また、システム1100は、ラップされたゲスト鍵802を使用する前に、ラップされたゲスト鍵802の保護鍵への変換を要求する、要求ユニット1114を含み得る。変換は、サテライト・ゲスト仮想サーバ・インスタンス502が、ラップされたゲスト鍵802をマスタ鍵310で再ラップすることを含み得る。マスタ鍵310は、ゲスト仮想サーバ312およびサテライト・ゲスト仮想サーバ502の両方に固有であってもよく、またはゲスト仮想サーバ312およびサテライト・ゲスト仮想サーバ502によって共有されてもよい。再ラッピングでは、ラップされたゲスト鍵802は、保護ゲスト鍵1004に変換されて、暗号鍵オブジェクトとして機能し得る。
【0081】
言及されたユニットおよびモジュールが、情報または信号あるいはその両方の交換のために直接的または間接的に相互接続され得ることに留意されたい。代替的には、登録ユニット1102、第1の生成器モジュール1104、第2の生成器モジュール1106、受け渡しモジュール1108、第3の生成器モジュール1110、ラッピング・モジュール1112、および要求ユニット1114は、保護鍵提供システム1100の内部バス・システム1116を介して相互接続され得る。これらのユニットおよびモジュールは、ソフトウェアを介して形成され得る。
【0082】
本発明の実施形態は、プログラム・コードを記憶または実行あるいはその両方を行うのに適当なプラットフォームにかかわらず、事実上任意の種類のコンピュータと共に実施され得る。
図12は、一例として、提案される方法に関するプログラム・コードを実行するのに適当なコンピュータ・システム1200を示す。
【0083】
コンピュータ・システム1200が実施されること、または上記で述べられた機能性のいずれかを実行すること、あるいはその両方が可能であるかどうかにかかわらず、コンピュータ・システム1200は、適当なコンピュータ・システムの単なる一例であり、本明細書に記載された発明の実施形態の使用または機能性の範囲に関していかなる制限も示唆することを意図するものではない。コンピューティング・システム1200には、コンポーネントが存在し、コンポーネントは、多数の他の汎用または専用コンピューティング・システム環境または構成と共に動作可能である。コンピュータ・システム/サーバ1200を伴う使用に適当であり得る周知のコンピューティング・システム、環境、または構成、あるいはそれらの組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式またはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル家電、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などを含むが、それらに限定されない。コンピュータ・システム/サーバ1200は、コンピュータ・システム1200によって実行されている、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的文脈において説明され得る。概して、プログラム・モジュールは、特定のタスクを実行し、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ1200は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において実施され得る。分散型クラウド・コンピューティング環境では、プログラム・モジュールが、メモリ記憶デバイスを含む、ローカルおよびリモート両方のコンピュータ・システム記憶媒体内に位置し得る。
【0084】
図に示されるように、コンピュータ・システム/サーバ1200は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ1200のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット1202、システム・メモリ1204、およびシステム・メモリ1204を含む様々なシステム・コンポーネントをプロセッサ1202に連結するバス1206を含み得るが、それらに限定されない。バス1206は、メモリ・バスまたはメモリ・コントローラ、周辺バス、高速グラフィック・ポート、および多様なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、複数種類のバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA:Industry Standard Architecture)・バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)・バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:Video Electronics Standards Association)・ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI:Peripheral Component Interconnects)・バスを含み得る。コンピュータ・システム/サーバ1200は、典型的には多様なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ1200によってアクセス可能な任意の利用可能な媒体であってもよく、それは、揮発性媒体および不揮発性媒体の両方、リムーバブル媒体および非リムーバブル媒体の両方を含む。
【0085】
システム・メモリ1204は、コンピュータ・システム可読媒体を、ランダム・アクセス・メモリ(RAM)1208またはキャッシュ・メモリ1210あるいはその両方などの揮発性メモリの形態で含み得る。コンピュータ・システム/サーバ1200は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単なる例として、記憶システム1212は、非リムーバブル不揮発性磁気媒体(図示せず、かつ典型的には「ハード・ドライブ」と呼ばれる)から読み出し、かつ書き込むために提供され得る。図示されないが、リムーバブル不揮発性磁気ディスク(例えば、「フロッピー(R)・ディスク」)からの読み出しおよび書き込みのための磁気ディスク・ドライブ、ならびにCD-ROM、DVD-ROM、または他の光学媒体などのリムーバブル不揮発性光ディスクからの読み出しまたは書き込みのための光学ディスク・ドライブが、提供され得る。このような事例では、それぞれが、1つまたは複数のデータ媒体インターフェースによってバス1206に接続され得る。さらに図示され、後述されるように、メモリ1204は、本発明の実施形態の機能を実行するように構成されるプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
【0086】
プログラム・モジュール1216のセット(少なくとも1つ)を有するプログラム/ユーティリティは、例えば、メモリ1204に記憶され得る。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データはまた、メモリ1204に記憶され得る。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそれらの何らかの組合せは、ネットワーキング環境の実施態様を含み得る。プログラム・モジュール1216は、概して、本明細書に説明されるように、発明の実施形態の機能または方法論あるいはその両方を実行する。
【0087】
コンピュータ・システム/サーバ1200はまた、キーボード、ポインティング・デバイス、ディスプレイ1220などの1つもしくは複数の外部デバイス1218、ユーザがコンピュータ・システム/サーバ1200と対話することを可能にする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ1200が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはそれらの組合せと通信し得る。このような通信は、入力/出力(I/O)インターフェース1214を介して発生し得る。さらに、コンピュータ・システム/サーバ1200は、ネットワーク・アダプタ1222を介して、ローカル・エリア・ネットワーク(LAN)、汎用ワイド・エリア・ネットワーク(WAN)、または公衆ネットワーク(例えば、インターネット)、あるいはそれらの組合せなどの1つまたは複数のネットワークと通信し得る。図示されるように、ネットワーク・アダプタ1222は、バス1206を介してコンピュータ・システム/サーバ1200の他のコンポーネントと通信し得る。図示されないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネント、あるいはその両方が、コンピュータ・システム/サーバ1200と併せて使用され得ると理解されたい。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ記憶システムなどを含むが、それらに限定されない。
【0088】
追加的に、暗号演算において使用するために暗号鍵オブジェクトをゲスト仮想サーバに提供するための保護鍵提供システム1100は、バス・システム1206にアタッチされ得る。
【0089】
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定されることを意図するものではない。多くの変更および変形が、説明された実施形態の範囲および思想から逸脱することなく当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実際の用途、もしくは市場で見出される技術に対する技術的改善を最もよく説明するため、または本明細書で開示された実施形態を他の当業者が理解可能にするために、選択された。
【0090】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せとして具現化され得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0091】
媒体は、伝播媒体のための電子的、磁気的、光学的、電磁的、赤外線、または半導体システムであってもよい。コンピュータ可読媒体の例は、半導体またはソリッド・ステート・メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、硬質磁気ディスク、および光ディスクを含み得る。光ディスクの現在の例は、コンパクトディスク読み取り専用メモリ(CD-ROM)、コンパクトディスク読み取り/書き込み(CD-R/W)、DVD、およびBlu-Rayディスクを含む。
【0092】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持し、記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述したものの任意の適当な組合せであってもよいが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令をその上に記録させる溝内の隆起構造などの機械的に符号化されたデバイス、および前述したものの任意の適当な組合せを含む。本明細書で用いられるコンピュータ可読記憶媒体は、電波もしくは他の自由伝播する電磁波、導波管もしくは他の伝送媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を通って伝送される電気信号などの、一過性信号それ自体であると解釈されるべきではない。
【0093】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらの組合せを介して外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体の記憶用にコンピュータ可読プログラム命令を転送する。
【0094】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通してユーザのコンピュータに接続されてもよく、または、接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通して)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
【0095】
本発明の態様は、発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書に記載される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せが、コンピュータ可読プログラム命令によって実施され得ると理解されたい。
【0096】
コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施する手段を生成するように、これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または機械を製造するための他のプログラマブル・データ処理装置のプロセッサに提供されてもよい。命令がその中に記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む製品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはそれらの組合せに特定の方式で機能するように指示し得る、コンピュータ可読記憶媒体に記憶されてもよい。
【0097】
コンピュータ、他のプログラマブル装置、または別のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ可読プログラム命令はまた、コンピュータ実施プロセスを作り出すために、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるコンピュータ、他のプログラマブル・データ処理装置、または別のデバイス上にロードされてもよい。
【0098】
図面中のフローチャートまたはブロック図あるいはその両方は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施態様のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。いくつかの代替実施態様において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能性次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組合せを実行する専用ハードウェア・ベース・システムによって実施され得ることにも留意されたい。
【0099】
関連するコンピュータ・プログラム製品の形態を取る実施形態の場合、プログラム・コードは、コンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能であってもよく、コンピュータもしくは任意の命令実行システムによる、またはコンピュータもしくは任意の命令実行システムに関連する、使用に適当であってもよい。この説明のために、コンピュータ使用可能媒体、またはコンピュータ可読媒体は、命令実行システム、装置、もしくはデバイスによる、または命令実行システム、装置、もしくはデバイスに関連する、使用のためのプログラムを記憶し、通信し、伝播し、または移送するための、あるユニットまたはモジュールであり得る任意の装置であってもよい。
【0100】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に挙げる教示の実施態様は、クラウド・コンピューティング環境に限定されないと理解されたい。むしろ、本発明の実施形態は、現在既知の、または後に開発される任意の他の種類のコンピューティング環境と併せて実施されることが可能である。
【0101】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速に供給され、リリースされ得る、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの配備モデルを含み得る。
【0102】
特性は、以下の通りである。
オンデマンド・セルフサービス:クラウド消費者は、サービス・プロバイダと人との対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング・ケイパビリティを一方的に供給し得る。
幅広いネットワーク・アクセス:ケイパビリティは、ネットワーク上で利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを通してアクセスされる。
リソースの共用:プロバイダのコンピューティング・リソースが、マルチテナント型モデルを使用して複数の消費者にサービスするためにプールされ、異なる物理リソースおよび仮想リソースが要求に従って動的に割り当ておよび再割り当てされる。消費者が、概して、提供されるリソースの正確な場所に対する制御または知識を有しないが、より高い抽象レベル(例えば、国、州、またはデータセンタ)において場所を指定することが可能であり得るという点において、位置独立の意味がある。
スピーディな拡張性:ケイパビリティは、場合によっては自動的に、即座にスケール・アウトするようにスピーディかつ弾力的に供給され、即座にスケール・インするようにスピーディに解放され得る。消費者に対しては、供給に利用可能なケイパビリティが、多くの場合無制限であるように見え、いつでも任意の量で購入可能である。
サービスが計測可能であること:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブ・ユーザ・アカウント)に適したある抽象レベルにおいて計測ケイパビリティを活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、モニタリングされ、制御され、報告されて、利用サービスのプロバイダおよび消費者の両方に透明性をもたらし得る。
【0103】
サービス・モデルは、以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供されるケイパビリティは、クラウド・インフラ上で実行中のプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通して、様々なクライアント・デバイスからアクセス可能である。消費者は、限定されたユーザ固有アプリケーションの構成設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション・ケイパビリティでさえも含む、基礎的なクラウド・インフラを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供されるケイパビリティは、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成したアプリケーションまたは消費者が取得したアプリケーションを、クラウド・インフラ上に配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎的なクラウド・インフラを管理または制御しないが、配備されたアプリケーション、および、可能な限りアプリケーション・ホスティング環境構成に対して制御を行う。
サービスとしてのインフラ(IaaS):消費者に提供されるケイパビリティは、処理、ストレージ、ネットワーク、ならびに消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを配備および実行することが可能な、他の基本コンピューティング・リソースを供給することである。消費者は、基礎となるクラウド・インフラを管理または制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対して制御を行い、かつ可能な限り選択ネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)の限定的な制御を行う。
【0104】
配備モデルは、以下の通りである。
プライベート・クラウド:クラウド・インフラは、組織のためだけに動作される。クラウド・インフラは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
コミュニティ・クラウド:クラウド・インフラは、複数の組織によって共有され、共有の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラは、組織または第三者によって管理されてもよく、構内または構外に存在し得る。
パブリック・クラウド:クラウド・インフラは、一般公衆または大きな業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラは、一意なエンティティのままであるが、データおよびアプリケーション・ポータビリティを可能にする標準化技術または独自技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成物である。
【0105】
クラウド・コンピューティング環境は、無国籍、低結合、モジュール性、および意味相互運用性を中心としたサービス指向型である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラである。
【0106】
ここで
図13を参照すると、例示的なクラウド・コンピューティング環境1300が示されている。図示するように、クラウド・コンピューティング環境1300は、例えば、携帯情報端末(PDA)もしくは携帯電話1300A、デスクトップ・コンピュータ1300B、ラップトップ・コンピュータ1300C、または自動車コンピュータ・システム1300N、あるいはそれらの組合せなどのクラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信し得る、1つまたは複数のクラウド・コンピューティング・ノード1200を含む。ノード1200は、互いに通信し得る。それらは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、またはそれらの組合せなどの、1つまたは複数のネットワーク内で物理的または仮想的にグループ化され得る(図示せず)。これによって、クラウド・コンピューティング環境1300が、インフラ、プラットフォーム、またはソフトウェア、あるいはそれらの組合せを、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提案することが可能となる。
図13に示されるコンピューティング・デバイス1300A~Nの種類は、単なる例示であるように意図され、コンピューティング・ノード1200およびクラウド・コンピューティング環境1300は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続あるいはその両方を経て(例えば、ウェブ・ブラウザを用いて)、任意の種類のコンピュータ化デバイスと通信し得ると理解されたい。
【0107】
ここで
図14を参照すると、クラウド・コンピューティング環境1300によって提供される機能抽象層1400のセットが示されている。
図14に示されるコンポーネント、層、および機能は、単なる例示であるように意図され、発明の実施形態はそれらに限定されないと、予め理解されたい。図示されるように、以下の層および対応する機能が提供される。
【0108】
ハードウェアおよびソフトウェア層1402は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム1404、RISC(Reduced Instruction Set Computer)アーキテクチャ・ベース・サーバ1406、サーバ1408、ブレード・サーバ1410、記憶デバイス1412、ならびにネットワークおよびネットワーキング・コンポーネント1414を含む。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1416およびデータベース・ソフトウェア1418を含む。
【0109】
仮想化層1420は、仮想エンティティの以下の例、仮想サーバ1422、仮想ストレージ1424、仮想プライベート・ネットワークを含む仮想ネットワーク1426、仮想アプリケーションおよびオペレーティング・システム1428、ならびに仮想クライアント1430が提供され得る、抽象層を提供する。
【0110】
一例では、管理層1432は、後述する機能を提供し得る。リソース供給1434は、クラウド・コンピューティング環境内でタスクを実行するために利用される、コンピューティング・リソースおよび他のリソースの動的な調達を提供する。測定および価格設定1436は、リソースが、クラウド・コンピューティング環境内で利用され、これらのリソースの消費に対して課金または請求されるときに、コスト追跡を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、データおよび他のリソースについての保護だけでなく、クラウド消費者およびタスクのための本人確認を提供する。ユーザ・ポータル1438は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理1440は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行1442は、SLAに従って将来の要件が予期されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【0111】
ワークロード層1444は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション1446、ソフトウェア開発およびライフサイクル管理1448、仮想クラスルーム教育配信1450、データ解析処理1452、トランザクション処理1454、ならびに暗号鍵オブジェクト処理および保護鍵提供処理1456を含む。暗号鍵オブジェクト処理および保護鍵提供処理の機能は、本発明の前述した実施形態において説明された。
【0112】
本明細書で使用される専門用語は、特定の実施形態のみを説明するためのものであり、発明を限定することを意図するものではない。本明細書で使用される、単数形「a」、「an」、および「the」は、文脈が特段明示していない限り、複数形も同様に含むことを意図するものである。「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、「含んでいる(including)」、「有する(has)」、「有する(have)」、「有している(having)」、「伴う(with)」などの用語は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはそれらの組合せの存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはそれらの集合、あるいはそれらの組合せの存在または追加を排除するものではないとさらに理解されたい。
【0113】
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定されることを意図するものではない。多くの変更および変形が、説明された実施形態の範囲から逸脱することなく当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実際の用途、もしくは市場で見出される技術に対する技術的改善を最もよく説明するため、または本明細書で開示された実施形態を他の当業者が理解可能にするために、選択された。