(57)【要約】  実行環境は、展開された仮想マシンイメージを有する。仮想マシンイメージは、役割によって識別されるサービスを提供する。実行環境は、仮想マシンイメージの測定値を生成し、実行環境内での仮想マシンイメージの動作を可能にする役割鍵を要求するために、その測定値を鍵サービスに供給する。鍵サービスは、仮想マシンイメージが役割にマッピングされるかどうかを判定し、そうである場合には、要求する実行環境に役割鍵を返す。
2019533253.tif 000002
【特許請求の範囲】
【請求項１】
サービスを識別する役割と、実行環境内で展開される仮想マシンイメージを示す仮想マシン（ＶＭ）イメージ測定値とを受け取り、前記ＶＭイメージ測定値が前記役割にマッピングされるかどうかを判定し、前記判定を示す評価信号を生成するポリシ・エンジンと、
前記ＶＭイメージ測定値が前記役割にマッピングされることを示す前記評価信号に基づいて、役割鍵の集合を入手し、ラップする鍵ラッピング暗号エンジンであって、前記役割鍵は、前記役割に対応し、前記実行環境が前記サービスを実行することを可能にする、鍵ラッピング暗号エンジンと、
ラップされた役割鍵の前記集合を前記実行環境に提供する鍵サービスと
を含むコンピューティング・システム。
【請求項２】
前記ポリシ・エンジンは、前記役割、前記ＶＭイメージ測定値、および実行環境識別子を、要求する実行環境から受け取るように構成され、前記実行環境識別子は、前記要求する実行環境を識別する、請求項１に記載のコンピューティング・システム。
【請求項３】
前記ポリシ・エンジンは、前記実行環境識別子に基づいて前記要求する実行環境が前記ＶＭイメージ測定値にマッピングされるかどうかを判定し、前記判定に基づいて前記評価信号を生成するように構成される、請求項２に記載のコンピューティング・システム。
【請求項４】
役割の複数の異なる集合のそれぞれを異なるＶＭイメージ測定値にマッピングする測定値−役割マッピングの集合であって、前記ポリシ・エンジンは、前記測定値−役割マッピングにアクセスすることによって前記ＶＭイメージ測定値が前記役割にマッピングされるかどうかを判定する、測定値−役割マッピングの集合
をさらに含む、請求項２に記載のコンピューティング・システム。
【請求項５】
役割鍵の前記集合を前記鍵ラッピング暗号エンジンに提供するように構成された役割鍵ストア／ジェネレータと、
鍵ラッパー鍵の集合であって、各鍵ラッパー鍵は、所与の役割にマッピングされ、前記鍵ラッピング暗号エンジンは、前記役割にマッピングされた１つまたは複数の鍵ラッパー鍵を識別し、前記識別された１つまたは複数の鍵ラッパー鍵を用いて前記役割鍵を暗号化する、鍵ラッパー鍵の集合と
をさらに含む、請求項４に記載のコンピューティング・システム。
【請求項６】
前記役割を受け取り、前記役割に基づいて前記ＶＭイメージを入手し、前記ＶＭイメージを前記実行環境に展開するように構成された展開エンジン
をさらに含む、請求項１に記載のコンピューティング・システム。
【請求項７】
前記役割を前記ＶＭイメージにマッピングする役割−イメージ・マッピングの集合であって、前記展開エンジンは、前記ＶＭイメージを識別するために役割−イメージ・マッピングの前記集合にアクセスする、役割−イメージ・マッピングの集合
をさらに含む、請求項６に記載のコンピューティング・システム。
【請求項８】
前記ＶＭイメージを記憶するＶＭイメージ・リポジトリであって、前記展開エンジンは、前記ＶＭイメージ・リポジトリから展開のために前記ＶＭイメージを入手する、ＶＭイメージ・リポジトリ
をさらに含む、請求項７に記載のコンピューティング・システム。
【請求項９】
前記実行環境は、
前記ＶＭイメージ測定値を生成し、前記ＶＭイメージ測定値を前記鍵サービスに提供するように構成された測定システム
を含む、請求項６に記載のコンピューティング・システム。
【請求項１０】
前記測定システムは、前記ＶＭイメージ測定値を含むハッシュ値を入手するために前記ＶＭイメージに対してハッシュ関数を実行する、請求項９に記載のコンピューティング・システム。
【請求項１１】
鍵サービスにおいて、実行環境サービスと、実行環境内で展開される仮想マシンイメージを示す仮想マシン（ＶＭ）イメージ測定値とを識別することと、
前記ＶＭイメージ測定値が前記実行環境サービスにマッピングされるかどうかを判定することと、
前記判定を示す評価信号を生成することと、
前記ＶＭイメージ測定値が前記実行環境サービスにマッピングされることを示す前記評価信号に応答して、役割鍵の集合を入手することであって、前記役割鍵は、前記実行環境サービスに対応し、前記実行環境が前記実行環境サービスを実行することを可能にする、役割鍵の集合を入手することと、
役割鍵の前記集合内の前記役割鍵を暗号化することと、
前記実行環境に暗号化された役割鍵の前記集合を提供することと
を含む、コンピュータ実施される方法。
【請求項１２】
前記実行環境サービスを識別する役割を受け取ることと、
前記ＶＭイメージ測定値を受け取ることと、
要求する実行環境から実行環境識別子を受け取ることであって、前記実行環境識別子は、前記要求する実行環境を識別し、前記ＶＭイメージ測定値が前記実行環境サービスにマッピングされるかどうかを判定することは、前記実行環境識別子に基づいて前記要求する実行環境が前記ＶＭイメージ測定値にマッピングされるかどうかを判定することを含み、前記評価信号を生成することは、前記判定に基づいて前記評価信号を生成することを含む、実行環境識別子を受け取ることと
をさらに含む、請求項１１に記載のコンピュータ実施される方法。
【請求項１３】
前記ＶＭイメージ測定値が前記実行環境サービスにマッピングされるかどうかを判定することは、
役割の複数の異なる集合を異なるＶＭイメージ測定値にマッピングする測定値−役割マッピングの資産にアクセスすることによって、前記ＶＭイメージ測定値が前記役割にマッピングされるかどうかを判定すること
を含む、請求項１２に記載のコンピュータ実施される方法。
【請求項１４】
前記役割鍵を暗号化することは、
前記役割にマッピングされた１つまたは複数の鍵ラッパー鍵を識別することと、
前記識別された１つまたは複数の鍵ラッパー鍵を用いて前記役割鍵を暗号化することと
を含む、請求項１３に記載のコンピュータ実施される方法。
【請求項１５】
展開された仮想マシン（ＶＭ）イメージによって表され、役割によって識別されるサービスを実行する実行環境と、
ＶＭイメージ測定値を生成するために前記ＶＭイメージにハッシュ関数を適用し、前記ＶＭイメージ測定値を鍵サービスに提供するように構成された測定システムであって、前記実行環境は、役割鍵の集合を要求するために前記鍵サービスに前記役割および前記ＶＭイメージ測定値を提供する、測定システムと、
役割鍵の前記要求された集合を入手するために、前記鍵サービスからラップされた役割鍵の集合を受け取り、ラップされた役割鍵の前記集合を暗号化解除する暗号化解除システムであって、前記実行環境は、前記要求された役割鍵を使用して前記サービスを実行する、暗号化解除システムと
を含むコンピューティング・システム。
【発明の詳細な説明】
【背景技術】
【０００１】
［0001］  コンピュータ・システムが、現在、広く使用されている。一部のそのようなコンピュータ・システムは、それらがサービスをホスティングするリモート・サーバ環境内（クラウド内など）に展開される。
【０００２】
［0002］  ホスティングされるサービスは、セキュリティが重要であるサービスである場合がある。たとえば、一部のホスティングされるサービスは、支払いサービス、クレジット・カード処理サービス、バンキング・サービス、または機密情報を処理する様々な他のサービスとすることができる。
【０００３】
［0003］  これらのタイプのシステムは、通常は別個のシステム上でホスティングされるインフラストラクチャを有する。たとえば、各ホスティングされるサービスは、別々のまたは別個の物理マシン上でホスティングされ得る。これらのマシンは、物理的セキュリティを提供するために物理的にケージ化された環境内で展開され得る。また、これらのタイプのシステムのコードを記述する開発者または他のプログラマは、やはりそのようなサービスに対して展開される開発されるコードに関するセキュリティを高めるために、相対的に分離されたネットワークで、保護されたまたはケージ化された物理的な施設に入れられることが多い。
【０００４】
［0004］  これは、サービスなどに関する複数の欠点をもたらす可能性がある。たとえば、各サービスが、専用の物理マシン（またはサーバ）上で展開され、仮想化が用いられないことが多く、スケーラビリティが非常に難しくなる可能性がある。そのようなサービスをスケーリングするためには、追加の物理マシンが、追加のサービスまたはサービス・インスタンスに関して追加されなければならない。さらに、開発者またはプログラマが、物理的に安全で厳密に制御された環境内でコードを生成することを要求されるので、これが、変更を行うことが非常に難しくなる可能性があるという点で柔軟性のなさにつながる可能性がある。
【０００５】
［0005］  上の議論は、単に全般的な背景情報として提供され、本発明の請求範囲を判定する際の助けとして使用されることは意図されていない。
【発明の概要】
【０００６】
［0006］  実行環境は、展開された仮想マシンイメージを有する。仮想マシンイメージは、役割によって識別されるサービスを提供する。実行環境は、仮想マシンイメージの尺度を生成し、実行環境内での仮想マシンイメージの動作を可能にする役割鍵を要求するために、その測定値を鍵サービスに供給する。鍵サービスは、仮想マシンイメージが役割にマッピングされるかどうかを判定し、そうである場合には、要求する実行環境に役割鍵を返す。
【０００７】
［0007］  この「発明の概要」は、下の「発明を実施するための形態」でさらに説明される選択概念を簡単に紹介するものである。この「発明の概要」は、本発明請求の主要な特徴または必須の特徴を識別することを意図されたものではなく、本発明の請求範囲を判定する際の助けとして使用されることも意図されていない。本発明は、「背景技術」で注記した不利益のいずれかまたはすべてを解決する実施態様に限定されない。
【図面の簡単な説明】
【０００８】
【図１】［0008］サービスを開発し、サービスに対応する仮想マシンイメージを生成する、開発チャネルの一例を示す流れ図である。
【図２】［0009］クラウド・ケージ・アーキテクチャの一例を示すブロック図である。
【図３】［0010］展開サービスの動作の一例を示す流れ図である。
【図４】［0011］実行環境の動作の一例を示す流れ図である。
【図５】［0012］要求された役割鍵を実行環境に供給する際の鍵サービスの動作の一例を示す流れ図である。
【図６】［0013］図１に示されたアーキテクチャ内で使用され得るコンピューティング環境の一例を示すブロック図である。
【発明を実施するための形態】
【０００９】
［0014］  図１は、開発チャネル１００の動作の一例を示す流れ図である。開発チャネル１００は、実例として、開発者１０２、ビルド・システム１０４、署名システム１０６、仮想マシンイメージ・ジェネレータ１０８、およびイメージ測定システム１１０を含む。図１は、開発チャネル１００が、クラウド・ケージ１２３（それ自体は、信頼される実行環境１２４および１２６を含む）、クラウド・ケージ展開サービス１２８、およびクラウド・ケージ鍵サービス１３０を含むクラウド・アーキテクチャ１２２に結合され得、他の項目１２９を含むことができることをも示す。図１は、１つまたは複数のセキュア・サービス・ユーザ・システム１３１が、ネットワーク１３２を介してアーキテクチャ１２２にアクセスできることをも示す。
【００１０】
［0015］  図１に示された例では、開発者１０２は、実例として、信頼される実行環境１２４〜１２６内などのホスティングされるセキュア・サービス内で走行させられるコードであるソース・コード１１２を開発する。そのようなサービスは、支払いサービス、バンキング・サービス、クレジット・カード処理サービス、または様々な他のサービスのいずれかとすることができる。
【００１１】
［0016］  ビルド・システム１０４は、ソース・コード１１２を受け取り、コードを実行可能バイナリ（または他のビルドされたコード）１１４にビルドする。コード１１４は、実例として、スクリプトおよび様々なデータ・ファイルを含むことができるコンパイルされた実行可能コードである。これは、実例として、署名システム１０６に供給される。署名システム１０６は、実例として、署名された実行可能コード１１６を生成するためにコード１１４に署名する。コード１１６が署名されるので、これは、署名が行われた後にコード１１６が変更されないことを保証することができる。署名は、コード署名者（または署名システム１０６のアイデンティティ）をも示すことができる。
【００１２】
［0017］  その後、仮想マシンイメージ・ジェネレータ１０８は、適当なオペレーティング・システム・イメージと署名された実行可能コード１１６とを組み合わせることによって仮想マシンイメージを生成する。結果の仮想マシン（ＶＭ）イメージ１１８は、１つまたは複数のサービスと、実行環境内でこれらのサービスを実施するために展開され得るデータベースとを含むことができる。一例では、仮想マシンイメージ・ジェネレータ１０８は、仮想マシン用のハード・ディスクとして仮想ハード・ドライブ・フォーマットを使用することができる。これは、複数のオペレーティング・システムが単一のマシン上に常駐することを可能にすることができる。
【００１３】
［0018］  その後、イメージ測定システム１１０は、仮想マシンイメージ１１８に基づいて１つまたは複数の仮想マシンイメージ測定値１２０を生成する。測定値１２０は、実例として、各イメージ１１８を表す再計算可能な強いアイデンティティを含む。一例では、各測定値１２０は、対応するＶＭイメージ１１８に対して計算された暗号ハッシュ値とすることができる。その後、ＶＭイメージ１１８およびそれに対応する測定値１２０は、クラウド環境（またはクラウド・アーキテクチャ）１２２に供給され得、ここで、１つまたは複数の信頼される実行環境１２４〜１２６内の仮想マシンによって実行され得る。
【００１４】
［0019］  ＶＭイメージ１１８は、ＶＭイメージ１１８をそれが実行するサービスに対応する特定の役割にマッピングする役割−ＶＭイメージ・マッピングと一緒に、クラウド・ケージ展開サービス１２８に供給され得る。ＶＭ測定値１２０も、ＶＭイメージ１１８の特定の測定値を役割にマッピングする測定値−役割マッピングと一緒に、クラウド・ケージ鍵サービス１３０に供給され得る。さらに、ＶＭイメージ１１８のうちの１つを実行するのに使用されている特定の信頼される実行環境１２４〜１２６は、ＶＭイメージ測定値１２０によって表されるＶＭイメージ１１８を展開する特定の信頼される実行環境を識別する信頼される実行環境識別子をクラウド・ケージ鍵サービス１３０に送ることができる。
【００１５】
［0020］  短く言うと、動作中に、クラウド・ケージ展開サービス１２８は、信頼される実行環境１２４〜１２６に特定のＶＭイメージを展開することができる。その後、その環境１２４〜１２６は、クラウド・ケージ鍵サービス１３０に役割鍵を要求することができる。クラウド・ケージ鍵サービス１３０は、特定のＶＭイメージが特定の役割に適当であるかどうかと要求する実行環境とを識別し、そうである場合には、要求する実行環境がそのサービスを実行するように動作できるようにするために、要求する実行環境に戻って暗号化された役割鍵を返す。
【００１６】
［0021］  図１は、サービス（支払いサービスまたは他のセキュア・サービスなど）が信頼される実行環境１２４〜１２６に展開された後に、支払い（または他のセキュア・サービス）ユーザ・システム１３１が、ネットワーク１３２およびクラウド１２１を介して信頼される実行環境のうちの１つ内のサービスにアクセスできることをも示す。たとえば、セキュア・サービスが、クレジット・カード処理サービスである場合には、ユーザ・システム１３１を、クレジット・カード処理が必要であるクレジット・カード会社のシステムとすることができる。バンキング・サービスの場合には、システム１３１を、銀行で展開することができる。これらは、例にすぎない。
【００１７】
［0022］  ネットワーク１３２は、広域ネットワーク、ローカル・エリア・ネットワーク、あるいは様々な他の有線もしくは無線のネットワークのいずれかまたはネットワークの組合せなど、様々なネットワークのいずれかとすることができる。一部が、例のために下でリストアップされる。
【００１８】
［0023］  図２は、クラウド１２１内で展開されたクラウド・ケージ・アーキテクチャ１２２の一例をより詳細に示すブロック図である。図２に示された項目の一部は、図１に示された項目に類似し、これらは、同様の番号を付けられている。
【００１９】
［0024］  図２に示されたアーキテクチャ１２２の全体的な動作を説明する前に、図２の項目の一部およびその動作の短い説明をまず提供する。図２に示された例では、クラウド・ケージ１２３は、１つまたは複数のプロセッサまたはサーバ１３６、信頼される実行環境１２４〜１２６を含むことができ、他の項目を含むこともできる。信頼される実行環境１２４は、暗号化解除システム１４１および測定システム１４２と一緒に、ハイパーバイザ１３８および１つまたは複数の仮想マシン１４０を含むことができる。信頼される実行環境１２４は、他の項目１４４をも含むことができる。信頼される実行環境１２６も、ハイパーバイザ１４６を含むことができ、あるいは、ハイパーバイザ１３８および１４６は、仮想マシン１４０〜１４８を生成するための単一のハイパーバイザとして実現され得る。実行環境１２６は、暗号化解除システム１４９、測定システム１５０、および様々な他の項目１５２をも含むことができる。信頼される実行環境１２４〜１２６は、同様のものまたは異なるものとすることができる。この説明において、信頼される実行環境１２４〜１２６は、同様と仮定され、したがって、信頼される実行環境１２４の動作だけが、本明細書で提供される。
【００２０】
［0025］  仮想マシン１４０は、実例として、クラウド・ケージ展開サービス１２８（下でより詳細に説明される）から仮想マシンイメージを受け取り、そのイメージを実行する。測定システム１４２は、仮想マシン１４０上で展開されたイメージを測定することができる。測定値は、イメージに暗号ハッシュ関数を適用することによって生成され得る。たとえば、イメージが、仮想ハード・ディスク・イメージによって表される場合に、測定値は、そのイメージにＳＨＡ−２５６ハッシュを適用することによって生成され得る。これは、一例にすぎず、仮想マシンイメージの測定値を生成する様々な他の形を使用することもできる。ＶＭイメージによって表されたサービスを実行する際に、信頼される実行環境１２４は、ユーザ・システム１３１がサービスを使用するために相互作用することのできるアプリケーション・プログラミング・インターフェース（ＡＰＩ）１５１を公開することができる。
【００２１】
［0026］  仮想マシンイメージを信頼される実行環境１２４に展開するために、クラウド・ケージ展開サービス１２８を使用することができる。一例では、サービス１２８は、１つまたは複数のプロセッサまたはサーバ１５４、展開エンジン１５６、仮想マシンイメージ・リポジトリ１５８、役割−仮想マシンイメージ・マッピング１６０を含むことができ、他の項目１６２を含むことができる。信頼される実行環境１２４は、実例として、展開エンジン１５６に役割（実行すべきサービスを表す）を供給する。その後、展開エンジン１５６は、役割−ＶＭイメージ・マッピング１６０にアクセスして、その役割に対応する特定のＶＭイメージを識別し、ＶＭイメージ・リポジトリ１５８からそのイメージを入手する。その後、展開エンジン１５６は、要求する信頼される実行環境１２４内の仮想マシン１４０上にそのＶＭイメージを展開する。これは、下で図３に関してより詳細に説明される。
【００２２】
［0027］  ＶＭイメージが仮想マシン１４０上に展開された後に、信頼される実行環境１２４は、実例として、それでも、展開された特定のサービス（または役割）を実行するために、それが使用する役割鍵を必要とする。すなわち、展開された仮想マシンイメージは、１つまたは複数のサービスおよびデータベースを表すコードを含むことができるが、その動作を実行するために必要な鍵をまだ有しない。したがって、信頼される実行環境１２４は、仮想マシン１４０上に展開されたＶＭイメージの測定値を生成し、これを、役割（サービスに対応する）と一緒に、動作するために必要な役割鍵を入手するためにクラウド・ケージ鍵サービス１３０に供給する。
【００２３】
［0028］  クラウド・ケージ鍵サービス１３０は、１つまたは複数のプロセッサまたはサーバ１６４、仮想信頼される実行環境（ＶＴＥＥ）鍵サービス１６６、ポリシ・エンジン１６８、鍵ラッピング暗号エンジン１７０、ＶＭイメージ測定値ストア１７２、測定値−役割マッピング１７４、役割鍵ストア／ジェネレータ１７６、鍵ラッパー鍵１７８を含むことができ、様々な他の項目１８０をも含むことができる。ＶＴＥＥ鍵サービス１６６は、要求（仮想マシンイメージ測定値、対応する役割、および要求する信頼される実行環境１２４のアイデンティティ）をポリシ・エンジン１６８に供給する。ポリシ・エンジン１６８は、要求する信頼される実行環境がＶＭイメージによって表される特定の役割を実行するのに適当な環境であることを検証するためにＶＭイメージ測定値１７２にアクセスする。エンジン１６８は、信頼される実行環境１２４によって供給されたＶＭイメージ測定値が、鍵の要求内で信頼される実行環境１２４によって識別された役割にマッピングされるかどうかを識別するために、測定値−役割マッピング１７４にもアクセスする。ポリシ・エンジン１６８が、肯定的に評価する場合には、これは、鍵を要求している信頼される実行環境が、識別された役割を実行するのに適当な環境であることを示す。これは、信頼される実行環境１２４内で展開されたＶＭイメージ内のコード（たとえば、オペレーティング・システム、コード、データベースなど）の測定値が、信頼される実行環境１２４によって識別された役割にマッピングすることをも示す。したがって、これは、信頼される実行環境１２４が適当であることと、コードが変更されておらず、識別された役割にマッピングすることとを示す。
【００２４】
［0029］  その場合に、ＶＴＥＥ鍵サービス１６６は、鍵ラッピング暗号エンジンが、役割鍵ストア／ジェネレータ１７６から識別された役割の役割鍵を入手し、１つまたは複数の鍵ラッパー鍵１７８を用いてこれらの鍵をラップしまたは暗号化することを要求する。その後、ラップされた鍵は、ＶＴＥＥ鍵サービス１６６に戻って供給され、ＶＴＥＥ鍵サービス１６６は、要求する信頼される実行環境１２４にそれらを返す。要求する信頼される実行環境１２４では、それらの鍵は、暗号化解除システム１４１によって暗号化解除され、その環境内でサービス（または役割）を実行するのに使用され得る。
【００２５】
［0030］  図３は、クラウド・ケージ展開サービス１２８の動作の一例をより詳細に示す流れ図である。展開エンジン１５６は、まず、信頼される実行環境１２４内に展開されなければならない役割を識別する役割識別子を受け取る。これは、図３のブロック１９０によって示される。役割は、実例として、支払いサービス、クレジット・カード・サービス、その他など、信頼される実行環境１２４によってホスティングされるセキュア・サービスに対応する。これは、ブロック１９２によって示される。役割識別子は、任意のストリング１９４または他の表現１９６とすることができる。
【００２６】
［0031］  その後、展開エンジン１５６は、役割に対応する特定のＶＭイメージを識別するために役割−ＶＭイメージ・マッピング１６０にアクセスする。役割−ＶＭイメージ・マッピングへのアクセスは、ブロック１９８によって示され、これらのマッピングに基づく、役割がマッピングされるＶＭイメージの識別は、ブロック２００によって示される。一例では、マッピングは、下の式１に示されているように表され、ここで、「イメージ」は、仮想イメージ・フォーマットで表され、「Ｈ」は、暗号ハッシュ関数である。
φ：役割→Ｈ（イメージ）    式１
【００２７】
［0032］  役割マッピングΦは、役割マッピング署名鍵ＫΦを用いて署名され得、展開エンジン１５６は、信頼される実行環境１２４内の展開マシン上にインストールされた（たとえば、ＶＭ  １４０上にインストールされた）公開鍵認証局に対して署名を妥当性検査することができる。役割マッピング署名の妥当性検査は、ブロック２０２によって示される。やはり、ＶＭイメージは、ブロック２０４によって示されるように、適当なオペレーティング・システムのイメージと組み合わされた署名されたコードとすることができる。ＶＭイメージは、ブロック２０６によって示されるように１つまたは複数のサービスおよびデータベースを表すことができ、ＶＭイメージは、ブロック２０８によって示されるように、他の形でも識別され得る。
【００２８】
［0033］  その後、展開エンジン１５６は、識別されたＶＭイメージをＶＭイメージ・リポジトリ１５８から入手する。これは、ブロック２１０によって示される。その後、展開エンジン１５６は、識別されたＶＭイメージをクラウド・ベースの信頼される実行環境１２４に展開する。これは、ブロック２１２によって示される。
【００２９】
［0034］  図４は、クラウド・ケージ鍵サービス１３０に役割鍵を要求し、これらの鍵を受け取り、その作業を実行するためにこれらを使用する際の、信頼される実行環境１２４の動作の一例を示す流れ図である。まず、環境１２４内で実行されるサービスを表すＶＭイメージが、信頼される実行環境１２４内で展開サービス１２８によって展開済みであると仮定する。これは、ブロック２１８によって示される。その後、信頼される実行環境１２４は、それが実行するサービスを表す役割の役割鍵が、動作を実行するのに必要であると判定する。これは、図４の流れ図でブロック２２０によって示される。
【００３０】
［0035］  その後、測定システム１４２は、仮想マシン１４０上で展開された、展開されたＶＭイメージのＶＭイメージ測定値を生成する。これは、ブロック２２２によって示される。やはり、上で短く説明したように、ＶＭイメージ測定値は、ＶＭイメージにハッシュ関数を適用することによって入手され得る。これは、ブロック２２４によって示される。ブロック２２６によって示されるように、これを他の形で入手することもできる。
【００３１】
［0036］  その後、信頼される実行環境１２４は、役割の役割鍵を入手するために、ＶＭイメージ測定値および役割を識別する役割識別子をクラウド・ケージ鍵サービス１３０に送り、その結果、信頼される実行環境１２４は、その動作を実行できるようになる。これは、ブロック２２８によって示される。
【００３２】
［0037］  その後、クラウド・ケージ鍵サービス１３０は、役割が、要求する信頼される実行環境に適当であることと、鍵が役割に適当であることとを検証する。そうである場合には、サービス１３０は、クラウド・ケージ１２３内の要求する信頼される実行環境１２４にラップされた（または暗号化された）役割鍵を返す。クラウド・ケージ鍵サービス１３０の動作は、下で図５に関してより詳細に説明され、信頼される実行環境１２４でのラップされたまたは暗号化された役割鍵の入手は、図４の流れ図のブロック２３０によって示される。
【００３３】
［0038］  その後、信頼される実行環境１２４内の暗号化解除システム１４１は、受け取られた役割鍵をアンラップ（または暗号化解除）し、これらを使用して、それが実行しようとしている役割（またはサービス）内の作業を実行する。これは、図３の流れ図内のブロック２３２および２３４によって示される。信頼される実行環境内で実行される特定の作業は、信頼される実行環境がホスティングしまたは実行している特定のサービスに依存して大幅に変化する。たとえば、ブロック２３６によって示されるように、役割鍵を使用して、クレジット・カード情報を暗号化解除することができる。ブロック２３８によって示されるように、役割鍵を使用して、支払い処理を実行することができる。役割鍵は、もちろん、様々な他の形でも使用され得、これは、ブロック２４０によって示される。
【００３４】
［0039］  図５は、クラウド・ケージ鍵サービス１３０の動作の一例をより詳細に示す流れ図である。ＶＴＥＥ鍵サービス１６６は、まず、実行環境（信頼される実行環境１２４など）から役割鍵を要求する引用を受け取る。これは、図５の流れ図でブロック２５０によって示される。上で短く議論したように、引用は、要求する実行環境によって実行される特定の役割を識別する役割識別子２５２を含むことができる。引用は、実例として、その環境によって生成されたＶＭ測定値をも含む。これは、ブロック２５４によって示される。引用は、要求を行っている特定の信頼される実行環境を識別する信頼される実行環境識別子２５６を含むことができる。要求は、他の項目２５８をも含むことができる。
【００３５】
［0040］  その後、要求は、ポリシ・エンジン１６８に供給され、ここで、引用（または要求）が適当な信頼される実行環境から来たかどうかおよび引用（または要求）が識別された役割に関する正しいオペレーティング・システム、コードなどを有するかどうかを判定するために評価される。これは、図５の流れ図のブロック２６０によって示される。一例では、ポリシ・エンジン１６８は、要求する信頼される実行環境が、要求内で受け取られたＶＭイメージ測定値に対応するかどうかを識別するために、ＶＭイメージ測定値ストア１７２にアクセスする。たとえば、ポリシ・エンジン１６８は、ＶＭイメージが、適当な信頼される実行環境上で正しく展開されたかどうかを判定することができる。これは、ブロック２６２によって示される。
【００３６】
［0041］  ポリシ・エンジン１６８は、要求する信頼される実行環境上で展開された（かつ、ＶＭイメージ測定値によって表される）ＶＭイメージが、識別された役割にマッピングされるかどうかを判定するために測定値−役割マッピング１７４にもアクセスすることができる。これは、ブロック２６４によって示される。したがって、ＶＭイメージ測定値を仮定して、ポリシ・エンジン１６８は、以下のように、ＶＭイメージを役割の集合にマッピングするマッピング１７４にアクセスすることによって役割の集合を作る。
θ：ｈ→ＳＲ
ＳＲ＝｛役割｜φ（役割）＝ｈ｝
ただし、
ｈ＝Ｈ（イメージ）    式２
【００３７】
［0042］  上の式２から、マッピングΦが、イメージｈ（上の式１に示されているように、Ｈ（イメージ）と等しい）を役割の集合ＳＲにマッピングすることがわかる。役割の集合ＳＲは、マッピングΦによってＶＭイメージ測定値にマッピングされる役割である。役割の集合は、イメージ測定値ｈへのマッピングを仮定して役割から構成される。
【００３８】
［0043］  ポリシ・エンジン１６８が、要求する信頼される実行環境がＶＭイメージ測定値によって識別されるＶＭイメージを走行させるのに適当な環境ではないと判定する場合、または、ＶＭイメージ測定値が要求する信頼される実行環境の役割にマッピングしないと判定する場合のいずれかには、ＶＴＥＥ鍵サービス１６６は、ポリシ・エンジン１６８が、引用を肯定的に評価しなかったと判定する。これは、図５のブロック２７０によって示される。したがって、ＶＴＥＥ鍵サービス１６６は、ブロック２７２によって示されるように、役割鍵の要求を否定する。ＶＴＥＥ鍵サービス１６６は、その否定の評価に応答して、通知、警報、または他のメッセージを送るか、他の動作を実行することができる。これは、ブロック２７４によって示される。
【００３９】
［0044］  しかし、ポリシ・エンジン１６８が、要求する信頼される実行環境１２４が、役割を実行するのに適当な感光であると判定すると仮定し、要求する信頼される実行環境によって供給されたＶＭイメージ測定値が、識別された役割にマッピングすると仮定すると、ＶＴＥＥ鍵サービス１６６は、ブロック２７０で、ポリシ・エンジン評価が肯定的または賛成であると判定する。その場合に、ＶＴＥＥ鍵サービス１６６は、要求する信頼される実行環境１２４に役割鍵を供給できるようにするために、役割鍵を入手するために鍵ラッピング暗号エンジンと相互作用する。
【００４０】
［0045］  それを行うために、ＶＴＥＥ鍵サービス１６６は、役割識別子を鍵ラッピング暗号エンジン１７０に供給する。エンジン１７０は、識別された役割の役割鍵を入手しまたは生成するために、役割鍵ストア／ジェネレータ１７６にアクセスする。これは、図５の流れ図のブロック２７６によって示される。その後、エンジン１７０は、鍵ラッパー鍵１７８にアクセスし、１つまたは複数の鍵ラッパー鍵１７８を用いて役割鍵の集合をラップする（または暗号化する）。これは、図５の流れ図のブロック２７８によって示される。役割鍵は、個別にまたは集合としてラップされ得る。鍵ラッパー鍵は、ブロック２８０によって示されるように公開鍵とすることができ、役割鍵のラップは、他の形でも実行され得、これは、ブロック２８２によって示される。
【００４１】
［0046］  役割鍵は、任意の暗号鍵タイプとすることができ、ラップする鍵は、実例として、その特定の役割に関する公開鍵である。ラッパー鍵を入手する際に、エンジン１７０は、下の式３に示されているように、所与の役割をラップする公開鍵
【数１】
2019533253.tif 000003
にマッピングするマップΨにアクセスすることができる。
【数２】
2019533253.tif 000004
【００４２】
［0047］  Ｓｋｒは、次のように役割鍵をラップする公開鍵
【数３】
2019533253.tif 000005
を用いて暗号化されたラップされた役割鍵の集合
【数４】
2019533253.tif 000006
である。
【数５】
2019533253.tif 000007
【００４３】
［0048］  鍵ラッピング暗号エンジン１７０は、役割鍵を入手し、これらを適当な鍵ラッパー鍵１７８を用いてラップした後に、ラップされた役割鍵をＶＴＥＥ鍵サービス１６６に返し、ＶＴＥＥ鍵サービス１６６は、これらを、要求する信頼される実行環境１２４に返す。これは、図５の流れ図のブロック２８４によって示される。
【００４４】
［0049］  したがって、クラウド・ケージが、複数の支払いサービスを役割として扱い、これらの役割を上で定義されたＶＭイメージにマッピングすることを了解されたい。クラウド・ケージ信頼される実行環境内で走行する役割またはサービスのいくつかの例は、とりわけ、仮想ハードウェア・セキュリティ・モジュール（または暗号サービス）、送金エージェント・サービス、送金エージェント・データベースとすることができる。
【００４５】
［0050］  上で説明されたアーキテクチャ内では、一例で、サーバ・ハードウェアのそれぞれが、実例として、ハイ・アシュアランス（ｈｉｇｈ  ａｓｓｕｒａｎｃｅ）暗号プロセッサ、相対的に少量の鍵ストレージ、鍵対、およびクラウド・ケージ展開サービス１２８内の信頼されるハードウェアによってロードされたバイナリ・イメージを測定する能力を有する。ハイ・アシュアランス暗号プロセッサは、検証可能な証明書を有する公開鍵を有することができる。ハイ・アシュアランス暗号プロセッサは、そのハードウェアによって生成された鍵に関するハードウェア内の証明能力をも含むことができる。これは、鍵完全性を特定の鍵証明書に束縛する。さらに、上で議論したように、役割−ＶＭイメージ・マッピングに署名することができる。署名鍵の秘密およびその公開鍵完全性は、別々のシステムによって検証され得、あるいは、これらのシステムは、クラウド・ケージ・アーキテクチャの一部とされ得る。役割鍵およびラッピング鍵は、上で議論したマッピングΦおよびΨに頼る。役割定義コードおよびデータは、署名され、外部機関とすることのできる認証局までさかのぼって検証され得る。
【００４６】
［0051］  したがって、本システムが、開発リソースおよび展開リソースを取り巻く物理的なケージ・セキュリティがない場合であっても、セキュリティを保証することがわかる。本システムは、信頼される実行環境上で展開された仮想マシンイメージが変更されていないことを保証する。本システムは、役割鍵を入手する前に、仮想マシンイメージが、これらの鍵を入手するのに適当な仮想マシンイメージであることと、信頼される実行環境が、その仮想マシンイメージを走行させるのに適当な環境であることとをも保証する。役割鍵は、信頼される実行環境がその動作を実行できるようにするために、信頼される実行環境に返される時に、ラップされまたは暗号化される。
【００４７】
［0052］  上の議論が、様々な異なるシステム、構成要素、および／または論理を説明したことに留意されたい。そのようなシステム、構成要素、および／または論理は、これらのシステム、構成要素、および／または論理に関連する機能を実行するハードウェア項目（その一部が下で説明される、プロセッサおよび関連するメモリまたは他の処理構成要素）からなるものとすることができることを了解されたい。さらに、システム、構成要素、および／または論理は、下で説明するように、メモリにロードされ、その後にプロセッサもしくはサーバまたは他のコンピューティング構成要素によって実行されるソフトウェアからなるものとすることができる。システム、構成要素、および／または論理は、そのいくつかの例が下で説明される、ハードウェア、ソフトウェア、ファームウェアなどの異なる組合せからなるものとすることもできる。これらは、上で説明したシステム、構成要素、および／または論理を形成するのに使用され得る異なる構造のいくつかの例にすぎない。他の構造を使用することもできる。
【００４８】
［0053］  この議論は、プロセッサおよびサーバに言及した。一実施形態では、プロセッサおよびサーバは、別々に図示されてはいない関連するメモリおよびタイミング回路網と共にコンピュータ・プロセッサを含む。これらは、これらが属し、それによってアクティブ化されるシステムまたはデバイスの機能的部分であり、これらのシステム内の他の構成要素または項目の機能性を容易にする。
【００４９】
［0054］  また、複数のユーザ・インターフェース・ディスプレイが議論された。これらは、様々な異なる形態をとることができ、その上に配置された様々な異なるユーザ作動可能な入力機構を有することができる。たとえば、ユーザ作動可能な入力機構は、テキスト・ボックス、チェック・ボックス、アイコン、リンク、ドロップダウン・メニュー、検索ボックスなどとすることができる。これらを、様々な異なる形で作動させることもできる。たとえば、これらを、ポイント・アンド・クリック・デバイス（トラック・ボールまたはマウスなど）を使用して作動させることができる。これらを、ハードウェア・ボタン、スイッチ、ジョイスティックまたはキーボード、サム・スイッチまたサム・パッドなどを使用して作動させることができる。これらを、仮想キーボードまたは他の仮想アクチュエータを使用して作動させることもできる。さらに、これらがその上に表示されるスクリーンがタッチ感知スクリーンである場合に、これらを、タッチ・ジェスチャを使用して作動させることができる。また、これらを表示するデバイスが音声認識構成要素を有する場合に、これらを、音声コマンドを使用して作動させることができる。
【００５０】
［0055］  複数のデータ・ストアも議論された。これらが、それぞれ、複数のデータ・ストアに分解され得ることに留意されたい。すべてを、それらにアクセスするシステムにローカルとすることができ、すべてをリモートとすることができ、あるいは、いくつかをローカルとし、他をリモートすることができる。これらの構成のすべてが、本明細書で企図されている。
【００５１】
［0056］  また、図面は、各ブロックに属する機能性を有する複数のブロックを示す。機能性がより少数の構成要素によって実行されるように、より少数のブロックを使用できることに留意されたい。また、より多数のブロックを使用し、機能性をより多数の構成要素の間で分散させることができる。
【００５２】
［0057］  アーキテクチャ１２２は、本明細書ではクラウド・コンピューティング・アーキテクチャとして説明される。クラウド・コンピューティングは、サービスを配信するシステムの物理位置または物理構成のエンドユーザ知識を要求しない、計算サービス、ソフトウェア・サービス、データ・アクセス・サービス、およびストレージ・サービスを提供する。様々な実施形態では、クラウド・コンピューティングは、適当なプロトコルを使用して、インターネットなどの広域ネットワークを介してサービスを配信する。たとえば、クラウド・コンピューティング・プロバイダは、広域ネットワークを介してアプリケーションを配信し、これらのアプリケーションは、ウェブ・ブラウザまたは任意の他のコンピューティング構成要素を介してアクセスされ得る。アーキテクチャ１２２のソフトウェアまたは構成要素ならびに対応するデータは、リモート位置にあるサーバ上に記憶され得る。クラウド・コンピューティング環境内のコンピューティング・リソースは、リモート・データ・センタ位置で統合され得、あるいは、散在され得る。クラウド・コンピューティング・インフラストラクチャは、ユーザにとって単一のアクセス点に見える場合であっても、共有されるデータ・センタを介してサービスを配信することができる。したがって、本明細書で説明される構成要素および機能は、クラウド・コンピューティング・アーキテクチャを使用して、リモート位置にあるサービス・プロバイダから供給され得る。代替案では、それらは、従来のサーバから供給され得、あるいは、直接にまたは他の形でクライアント・デバイスにインストールされ得る。
【００５３】
［0058］  この説明は、公共クラウド・コンピューティングと私有クラウド・コンピューティングとの両方を含むことが意図されている。クラウド・コンピューティング（公共と私有との両方）は、リソースの実質的にシームレスなプール化ならびに基礎になるハードウェア・インフラストラクチャを管理し構成する必要の削減を提供する。
【００５４】
［0059］  公共クラウドは、ベンダによって管理され、通常は、同一のインフラストラクチャを使用して複数の消費者をサポートする。また、公共クラウドは、私有クラウドとは異なって、ハードウェアの管理からエンド・ユーザを解放することができる。私有クラウドは、組織自体によって管理され得、インフラストラクチャは、通常、他の組織と共有されない。組織は、それでも、インストールおよび修復など、ある程度までハードウェアを保守する。
【００５５】
［0060］  図６は、アーキテクチャ１００またはその一部（たとえば）を展開できるコンピューティング環境の一例である。図６を参照すると、いくつかの実施形態を実施する例のシステムは、コンピュータ８１０の形の汎用コンピューティング・デバイスを含む。コンピュータ８１０の構成要素は、処理ユニット８２０（プロセッサまたはサーバ１３６、１５４、または１６４を含むことができる）、システム・メモリ８３０、およびシステム・メモリを含む様々なシステム構成要素を処理ユニット８２０に結合するシステム・バス８２１を含むことができるが、これに限定はされない。システム・バス８２１は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および様々なバス・アーキテクチャのいずれかを使用するローカル・バスを含む複数のタイプのバス構造のいずれかとすることができる。限定ではなく例として、そのようなアーキテクチャは、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、およびメザニン・バスとも称するＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。図１に関して説明したメモリおよびプログラムを、図６の対応する部分に展開することができる。
【００５６】
［0061］  コンピュータ８１０は、通常は様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ８１０によってアクセスされ得る任意の使用可能な媒体とすることができ、揮発性媒体と不揮発性媒体との両方、取り外し可能媒体と取り外し不能媒体との両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とを含むことができる。コンピュータ記憶媒体は、変調されたデータ信号または搬送波とは異なり、これを含まない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータなどの情報の記憶のための任意の方法または技術で実施された、揮発性と不揮発性との両方で、取り外し可能と取り外し不能との両方の媒体を含むハードウェア記憶媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、もしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、もしくは他の光学ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、もしくは他の磁気ストレージ、または所望の情報を記憶するのに使用でき、コンピュータ８１０によってアクセスできる任意の他の媒体を含むが、これに限定はされない。通信媒体は、通常、トランスポート機構内でコンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータを実施し、すべての情報配信媒体を含む。用語「変調されたデータ信号」は、信号内で情報を符号化する形でその特性のうちの１つまたは複数をセットされまたは変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体とを含む。上記のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれなければならない。
【００５７】
［0062］  システム・メモリ８３０は、読取専用メモリ（ＲＯＭ）８３１およびランダム・アクセス・メモリ（ＲＡＭ）８３２などの揮発性および／または不揮発性のメモリの形のコンピュータ記憶媒体を含む。スタートアップ中などに、コンピュータ８１０内の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム８３３（ＢＩＯＳ）が、通常はＲＯＭ  ８３１内に記憶される。ＲＡＭ  ８３２は、通常、処理ユニット８２０から即座にアクセス可能であり、かつ／または処理ユニット８２０によって現在操作されつつあるデータおよび／またはプログラム・モジュールを含む。限定ではなく例として、図６は、オペレーティング・システム８３４、アプリケーション・プログラム８３５、他のプログラム・モジュール８３６、およびプログラム・データ８３７を示す。
【００５８】
［0063］  コンピュータ８１０は、他の取り外し可能／取り外し不能な揮発性／不揮発性のコンピュータ記憶媒体をも含むことができる。例としてのみ、図６は、取り外し不能な不揮発性磁気媒体から読み取り、またはこれに書き込むハード・ディスク・ドライブ８４１と、ＣＤ  ＲＯＭまたは他の光学媒体などの取り外し可能な不揮発性光ディスク８５６から読み取り、またはこれに書き込む光ディスク・ドライブ８５５とを示す。例示的なオペレーティング環境内で使用され得る他の取り外し可能／取り外し不能な揮発性／不揮発性のコンピュータ記憶媒体は、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、ソリッド・ステートＲＡＭ、ソリッド・ステートＲＯＭ、および類似物を含むが、これに限定はされない。ハード・ディスク・ドライブ８４１は、通常、インターフェース８４０などの取り外し不能メモリ・インターフェースを介してシステム・バス８２１に接続され、光ディスク・ドライブ８５５は、通常、インターフェース８５０などの取り外し可能メモリ・インターフェースによってシステム・バス８２１に接続される。
【００５９】
［0064］  その代わりにまたはそれに加えて、本明細書で説明される機能は、少なくとも部分的に、１つまたは複数のハードウェア論理構成要素によって実行され得る。たとえば、限定なしに、使用され得るハードウェア論理構成要素の実例のタイプは、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、プログラム固有標準製品（ＡＳＳＰ）、システムオンアチップ・システム（ＳＯＣ）、複合プログラム可能論理デバイス（ＣＰＬＤ）などを含む。
【００６０】
［0065］  上で議論され、図６に示されたドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、および他のデータの記憶をコンピュータ８１０に提供する。図６では、たとえば、ハード・ディスク・ドライブ８４１は、オペレーティング・システム８４４、アプリケーション・プログラム８４５、他のプログラム・モジュール８４６、およびプログラム・データ８４７を記憶するものとして図示されている。これらの構成要素が、オペレーティング・システム８３４、アプリケーション・プログラム８３５、他のプログラム・モジュール８３６、およびプログラム・データ８３７と同一または異なるのいずれかとされ得ることに留意されたい。オペレーティング・システム８４４、アプリケーション・プログラム８４５、他のプログラム・モジュール８４６、およびプログラム・データ８４７は、少なくともこれらが異なるコピーであることを示すために、ここでは異なる番号を与えられている。
【００６１】
［0066］  ユーザは、キーボード８６２、マイクロホン８６３、およびマウス、トラックボール、またはタッチパッドなどのポインティング・デバイス８６１などの入力デバイスを介してコンピュータ８１０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）は、ジョイスティック、ゲーム・パッド、衛星パラボラ・アンテナ、スキャナ、または類似物を含むことができる。上記および他の入力デバイスは、しばしば、システム・バスに結合されるユーザ入力インターフェース８６０を介して処理ユニット８２０に接続されるが、パラレル・ポート、ゲーム・ポート、またはｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）などの他のインターフェースおよびバス構造によって接続される場合がある。ビジュアル・ディスプレイ８９１または他のタイプのディスプレイ・デバイスも、ビデオ・インターフェース８９０などのインターフェースを介してシステム・バス８２１に接続される。モニタに加えて、コンピュータは、出力周辺インターフェース８９５を介して接続され得る、スピーカ８９７およびプリンタ８９６などの他の周辺出力デバイスを含むこともできる。
【００６２】
［0067］  コンピュータ８１０は、リモート・コンピュータ８８０などの１つまたは複数のリモート・コンピュータへの論理接続を使用してネットワーク化された環境内で操作される。リモート・コンピュータ８８０は、パーソナル・コンピュータ、ハンドヘルド・デバイス、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、または他の一般的なネットワーク・ノードとすることができ、通常は、コンピュータ８１０に関して上で説明した要素の多くまたはすべてを含む。図６に示された論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）８７１および広域ネットワーク（ＷＡＮ）８７３を含むが、他のネットワークを含むこともできる。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ・ネットワーク、イントラネット、およびインターネットにおいてありふれたものである。
【００６３】
［0068］  ＬＡＮネットワーキング環境内で使用される時に、コンピュータ８１０は、ネットワーク・インターフェースまたはネットワーク・アダプタ８７０を介してＬＡＮ  ８７１に接続される。ＷＡＮネットワーキング環境内で使用される時に、コンピュータ８１０は、通常は、モデム８７２またはインターネットなどのＷＡＮ  ８７３を介する通信を確立する他の手段を含む。モデム８７２は、内蔵または外付けとすることができるが、ユーザ入力インターフェース８６０または他の適当な機構を介してシステム・バス８２１に接続され得る。ネットワーク化された環境では、コンピュータ８１０に関して示されたプログラム・モジュールまたはその部分は、リモート・メモリ・ストレージ・デバイス内に記憶され得る。限定ではなく例として、図６は、リモート・コンピュータ８８０に常駐するものとしてリモート・アプリケーション・プログラム８８５を示す。図示のネットワーク接続が例示的であり、コンピュータの間の通信リンクを確立する他の手段が使用され得ることを了解されたい。
【００６４】
［0069］  本明細書で説明される異なる実施形態が、異なる形で組み合わされ得ることにも留意されたい。すなわち、１つまたは複数の実施形態の諸部分を、１つまたは複数の他の実施形態の諸部分と組み合わせることができる。このすべてが、本明細書で企図されている。
【００６５】
［0070］  例１は、
［0071］  サービスを識別する役割と、実行環境内で展開される仮想マシンイメージを示す仮想マシン（ＶＭ）イメージ測定値とを受け取り、ＶＭイメージ測定値が役割にマッピングされるかどうかを判定し、判定を示す評価信号を生成するポリシ・エンジンと、
［0072］  ＶＭイメージ測定値が役割にマッピングされることを示す評価信号に基づいて、役割鍵の集合を入手し、ラップする鍵ラッピング暗号エンジンであって、役割鍵は、役割に対応し、実行環境がサービスを実行することを可能にする、鍵ラッピング暗号エンジンと、
［0073］  ラップされた役割鍵の集合を実行環境に提供する鍵サービスと
を含むコンピューティング・システムである。
【００６６】
［0074］  例２は、ポリシ・エンジンが、役割、ＶＭイメージ測定値、および実行環境識別子を、要求する実行環境から受け取るように構成され、実行環境識別子が、要求する実行環境を識別する、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００６７】
［0075］  例３は、ポリシ・エンジンが、実行環境識別子に基づいて要求する実行環境がＶＭイメージ測定値にマッピングされるかどうかを判定し、判定に基づいて評価信号を生成するように構成される、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００６８】
［0076］  例４は、
役割の複数の異なる集合のそれぞれを異なるＶＭイメージ測定値にマッピングする測定値−役割マッピングの集合であって、ポリシ・エンジンは、測定値−役割マッピングにアクセスすることによってＶＭイメージ測定値が役割にマッピングされるかどうかを判定する、測定値−役割マッピングの集合
［0077］  をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００６９】
［0078］  例５は、
［0079］  役割鍵の集合を鍵ラッピング暗号エンジンに提供するように構成された役割鍵ストア／ジェネレータと、鍵ラッパー鍵の集合であって、各鍵ラッパー鍵は、所与の役割にマッピングされ、鍵ラッピング暗号エンジンは、役割にマッピングされた１つまたは複数の鍵ラッパー鍵を識別し、識別された１つまたは複数の鍵ラッパー鍵を用いて役割鍵を暗号化する、鍵ラッパー鍵の集合と
をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００７０】
［0080］  例６は、
役割を受け取り、役割に基づいてＶＭイメージを入手し、ＶＭイメージを実行環境に展開するように構成された展開エンジン
［0081］  をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００７１】
［0082］  例７は、
役割をＶＭイメージにマッピングする役割−イメージ・マッピングの集合であって、展開エンジンは、ＶＭイメージを識別するために役割−イメージ・マッピングの集合にアクセスする、役割−イメージ・マッピングの集合
［0083］  をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００７２】
［0084］  例８は、
ＶＭイメージを記憶するＶＭイメージ・リポジトリであって、展開エンジンは、ＶＭイメージ・リポジトリから展開のためにＶＭイメージを入手する、ＶＭイメージ・リポジトリ
［0085］  をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００７３】
［0086］  例９は、実行環境が、
ＶＭイメージ測定値を生成し、ＶＭイメージ測定値を鍵サービスに提供するように構成された測定システム
［0087］  を含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００７４】
［0088］  例１０は、測定システムが、ＶＭイメージ測定値を含むハッシュ値を入手するためにＶＭイメージに対してハッシュ関数を実行する、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００７５】
［0089］  例１１は、
［0090］  鍵サービスにおいて、実行環境サービスと、実行環境内で展開される仮想マシンイメージを示す仮想マシン（ＶＭ）イメージ測定値とを識別することと、
［0091］  ＶＭイメージ測定値が実行環境サービスにマッピングされるかどうかを判定することと、
［0092］  判定を示す評価信号を生成することと、
［0093］  ＶＭイメージ測定値が実行環境サービスにマッピングされることを示す評価信号に応答して、役割鍵の集合を入手することであって、役割鍵は、実行環境サービスに対応し、実行環境が実行環境サービスを実行することを可能にする、入手することと、
［0094］  役割鍵の集合内の役割鍵を暗号化することと、
［0095］  実行環境に暗号化された役割鍵の集合を提供することと
を含む、コンピュータ実施される方法である。
【００７６】
［0096］  例１２は、
実行環境サービスを識別する役割を受け取ることと、
［0097］  ＶＭイメージ測定値を受け取ることと、
［0098］  要求する実行環境から実行環境識別子を受け取ることであって、実行環境識別［0099］子は、要求する実行環境を識別し、ＶＭイメージ測定値が  上  実行環境サービス  マッピングされるかどうかを判定することは、実行環境識別子に基づいて要求する実行環境がＶＭイメージ測定値にマッピングされるかどうかを判定することを含み、評価信号を生成することは、判定に基づいて評価信号を生成することを含む、受け取ることと
をさらに含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
【００７７】
［0100］  例１３は、ＶＭイメージ測定値が実行環境サービスにマッピングされるかどうかを判定することが、
［0101］  役割の複数の異なる集合を異なるＶＭイメージ測定値にマッピングする測定値−役割マッピングの資産にアクセスすることによって、ＶＭイメージ測定値が役割にマッピングされるかどうかを判定すること
を含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
【００７８】
［0102］  例１４は、役割鍵を暗号化することが、
［0103］  役割にマッピングされた１つまたは複数の鍵ラッパー鍵を識別することと、
［0104］  識別された１つまたは複数の鍵ラッパー鍵を用いて役割鍵を暗号化することと
を含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
【００７９】
［0105］  例１５は、
［0106］  展開システムで役割を受け取ることと、
［0107］  展開システムで、役割をＶＭイメージにマッピングする役割−イメージ・マッピングの集合にアクセスすることによって、役割に基づいてＶＭイメージを入手することと、
［0108］  ＶＭイメージを実行環境に展開することと
をさらに含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
【００８０】
［0109］  例１６は、
［0110］  実行環境内の測定システムを用いてＶＭイメージ測定値を生成することと、
［0111］  ＶＭイメージ測定値を鍵サービスに提供することと
をさらに含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
【００８１】
［0112］  例１７は、ＶＭイメージ測定値を生成することが、
［0113］  測定システムを用いて、ＶＭイメージ測定値を含むハッシュ値を入手するためにＶＭイメージに対してハッシュ関数を実行すること
を含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
【００８２】
［0114］  例１８は、
［0115］  展開された仮想マシン（ＶＭ）イメージによって表され、役割によって識別されるサービスを実行する実行環境と、
［0116］  ＶＭイメージ測定値を生成するためにＶＭイメージにハッシュ関数を適用し、ＶＭイメージ測定値を鍵サービスに提供するように構成された測定システムであって、実行環境は、役割鍵の集合を要求するために鍵サービスに役割およびＶＭイメージ測定値を提供する、測定システムと、
［0117］  役割鍵の要求された集合を入手するために、鍵サービスからラップされた役割鍵の集合を受け取り、ラップされた役割鍵の集合を暗号化解除する暗号化解除システムであって、実行環境は、要求された役割鍵を使用してサービスを実行する、暗号化解除システムと
を含むコンピューティング・システムである。
【００８３】
［0118］  例１９は、鍵サービスが、
［0119］  サービスを識別する、実行環境からの役割と、実行環境内で展開される仮想マシンイメージを示すＶＭイメージ測定値とを受け取り、ＶＭイメージ測定値が役割にマッピングされるかどうかを判定し、判定を示す評価信号を生成するポリシ・エンジンと、
［0120］  ＶＭイメージ測定値が役割にマッピングされることを示す評価信号に基づいて、役割鍵の集合を入手し、ラップする鍵ラッピング暗号エンジンであって、鍵サービスは、ラップされた役割鍵の集合を実行環境に提供する、鍵ラッピング暗号エンジンと
を含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００８４】
［0121］  例２０は、
［0122］  役割をＶＭイメージにマッピングする役割−イメージ・マッピングの集合と、ＶＭイメージを記憶するＶＭイメージ・リポジトリとを含む展開システムと、役割に基づいて役割−イメージ・マッピングにアクセスすることによってＶＭイメージ・リポジトリから展開のためにＶＭイメージを入手するように構成され、ＶＭイメージを実行環境に展開するように構成された展開エンジンと
をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
【００８５】
［0123］  本発明を、構造的特徴および／または方法論的行為に固有の言葉で説明されたが、添付の特許請求の範囲で定義される本発明が、必ずしも上で説明された特定の特徴または行為に限定されないことを理解されたい。そうではなく、上で説明された特定の特徴および行為は、特許請求の範囲を実施する例の形として開示される。
【図１】
2019533253.tif 000008
【図２】
2019533253.tif 000009
【図３】
2019533253.tif 000010
【図４】
2019533253.tif 000011
【図５】
2019533253.tif 000012
【図６】
2019533253.tif 000013
【国際調査報告】
2019533253.tif 000014
2019533253.tif 000015
2019533253.tif 000016