(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-01
(54)【発明の名称】セキュア・ゲスト・イメージおよびセキュア・ゲスト・メタデータの更新
(51)【国際特許分類】
G06F 21/57 20130101AFI20240725BHJP
G06F 21/60 20130101ALI20240725BHJP
【FI】
G06F21/57
G06F21/60 320
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024502491
(86)(22)【出願日】2022-08-02
(85)【翻訳文提出日】2024-01-16
(86)【国際出願番号】 EP2022071764
(87)【国際公開番号】W WO2023012198
(87)【国際公開日】2023-02-09
(32)【優先日】2021-08-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
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ブエントゲン、ラインハルト
(72)【発明者】
【氏名】ブラッドベリー、ジョナサン
(57)【要約】
セキュア・ゲストは、セキュア・ゲストの更新されたイメージを生成し、更新されたイメージの1つまたは複数の測定結果を計算する。セキュア・ゲストは、1つまたは複数の測定結果を信頼できる実行環境に提供し、信頼できる実行環境から、更新されたイメージのメタデータを取得する。このメタデータは、セキュア・ゲストのメタデータ、および1つまたは複数の測定結果を取得することに基づいて生成される。
【特許請求の範囲】
【請求項1】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
1つまたは複数のコンピュータ可読ストレージ媒体と、前記1つまたは複数のコンピュータ可読ストレージ媒体に集合的に格納されたプログラム命令とを備え、前記プログラム命令が、
セキュア・ゲストによって、前記セキュア・ゲストの更新されたイメージを生成することと、
前記更新されたイメージの1つまたは複数の測定結果を計算することと、
前記セキュア・ゲストによって、前記1つまたは複数の測定結果を信頼できる実行環境に提供することと、
前記信頼できる実行環境から、前記更新されたイメージのメタデータを取得することであって、前記メタデータが、前記セキュア・ゲストのメタデータ、および前記1つまたは複数の測定結果を取得することに基づいて生成される、前記取得することとを含む方法を実行する、コンピュータ・プログラム製品。
【請求項2】
前記方法が、
前記セキュア・ゲストによって、前記更新されたイメージが生成されるべきであることを示すイメージ更新要求構造体を取得することと、
前記イメージ更新要求構造体を前記信頼できる実行環境に提供することと、
前記イメージ更新要求構造体に基づいて、前記信頼できる実行環境から要求ハンドルを取得することであって、前記要求ハンドルが前記更新されたイメージを生成することにおいて使用される、前記取得することとをさらに含む、請求項1に記載のコンピュータ・プログラム製品。
【請求項3】
前記更新されたイメージを前記生成することが、
前記要求ハンドルを使用して、前記信頼できる実行環境に対して暗号鍵を要求することと、
前記セキュア・ゲストの更新されたプレーン・テキスト・イメージを構築することと、
前記暗号鍵を使用して前記更新されたプレーン・テキスト・イメージを暗号化し、暗号化されたイメージを取得することであって、前記暗号化されたイメージが前記更新されたイメージである、前記取得することとを含み、
前記1つまたは複数の測定結果を前記計算することが、前記暗号化されたイメージに基づいて、前記更新されたプレーン・テキスト・イメージの1つまたは複数の初期の測定結果を更新し、前記信頼できる実行環境に提供される前記1つまたは複数の測定結果を取得することを含み、前記要求ハンドルを使用して前記1つまたは複数の測定結果が提供される、請求項2に記載のコンピュータ・プログラム製品。
【請求項4】
前記暗号鍵が、前記信頼できる実行環境から取得された、保護された鍵であり、前記保護された鍵が、前記信頼できる実行環境を呼び出す前記セキュア・ゲストのインスタンスによって排他的に使用され得、前記暗号鍵のプレーン・テキスト値が、前記セキュア・ゲストに知られていない、請求項3に記載のコンピュータ・プログラム製品。
【請求項5】
前記更新されたプレーン・テキスト・イメージが、メモリの複数のページを含み、前記更新されたプレーン・テキスト・イメージを前記暗号化することが、前記保護された鍵を使用してメモリの前記複数のページを暗号化することを含む、請求項4に記載のコンピュータ・プログラム製品。
【請求項6】
前記更新されたイメージの前記メタデータを前記取得することが、前記信頼できる実行環境で機能を呼び出して前記更新されたイメージの前記メタデータを作成することに基づき、前記呼び出しが、前記要求ハンドルおよび前記1つまたは複数の測定結果を引数として提供する、請求項2に記載のコンピュータ・プログラム製品。
【請求項7】
前記引数が、前記更新されたイメージの他のメタデータをさらに含む、請求項6に記載のコンピュータ・プログラム製品。
【請求項8】
前記イメージ更新要求構造体が完全性保護され、暗号化された部分を含み、及び前記信頼できる実行環境によって排他的に解釈可能である、請求項2に記載のコンピュータ・プログラム製品。
【請求項9】
前記イメージ更新要求構造体の前記暗号化された部分が、イメージ更新要求を発行している前記セキュア・ゲストの前記メタデータの暗号化された部分内の機密データから導出されたデータを含む、請求項8に記載のコンピュータ・プログラム製品。
【請求項10】
前記方法が、
前記イメージ更新要求構造体を前記信頼できる実行環境に提供することに基づいて、前記イメージ更新要求構造体に対する課題を前記信頼できる実行環境から取得することであって、前記課題が、前記イメージ更新要求構造体の暗号化された部分から取得された機密データに基づく、前記取得することと、
前記セキュア・ゲストによって、前記課題に対する応答を選択された実体から取得することと、
前記セキュア・ゲストから前記信頼できる実行環境に、前記課題に対する前記応答を提供することと、
前記課題に対する前記応答を提供することに基づいて、前記課題が成功したかどうかの指示を前記信頼できる実行環境から取得することと、
前記課題が成功することに基づいて、前記更新されたイメージの生成を続行することとをさらに含む、請求項2に記載のコンピュータ・プログラム製品。
【請求項11】
前記イメージ更新要求構造体が、前記更新されたイメージの前記メタデータを計算するために使用される、以前のセキュア・ゲスト・メタデータに対する1つまたは複数の変更を指定する1つまたは複数の指示およびデータを含む、請求項2に記載のコンピュータ・プログラム製品。
【請求項12】
前記方法が、前記セキュア・ゲストの前記更新されたイメージおよび前記更新されたイメージの前記メタデータをブート・デバイスに格納することをさらに含む、請求項1ないし11のいずれかに記載のコンピュータ・プログラム製品。
【請求項13】
コンピューティング環境内の処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリと通信する少なくとも1つのプロセッサとを備え、前記コンピュータ・システムが方法を実行するように構成されており、前記方法が、
セキュア・ゲストによって、前記セキュア・ゲストの更新されたイメージを生成することと、
前記更新されたイメージの1つまたは複数の測定結果を計算することと、
前記セキュア・ゲストによって、前記1つまたは複数の測定結果を信頼できる実行環境に提供することと、
前記信頼できる実行環境から、前記更新されたイメージのメタデータを取得することであって、前記メタデータが、前記セキュア・ゲストのメタデータ、および前記1つまたは複数の測定結果を取得することに基づいて生成される、前記取得することとを含む、コンピュータ・システム。
【請求項14】
前記方法が、
前記セキュア・ゲストによって、前記更新されたイメージが生成されるべきであることを示すイメージ更新要求構造体を取得することと、
前記イメージ更新要求構造体を前記信頼できる実行環境に提供することと、
前記イメージ更新要求構造体に基づいて、前記信頼できる実行環境から要求ハンドルを取得することであって、前記要求ハンドルが前記更新されたイメージを生成することにおいて使用される、前記取得することとをさらに含む、請求項13に記載のコンピュータ・システム。
【請求項15】
前記更新されたイメージを前記生成することが、
前記要求ハンドルを使用して、前記信頼できる実行環境に対して暗号鍵を要求することと、
前記セキュア・ゲストの更新されたプレーン・テキスト・イメージを構築することと、
前記暗号鍵を使用して前記更新されたプレーン・テキスト・イメージを暗号化し、暗号化されたイメージを取得することであって、前記暗号化されたイメージが前記更新されたイメージである、前記取得することとを含み、
前記1つまたは複数の測定結果を前記計算することが、前記暗号化されたイメージに基づいて、前記更新されたプレーン・テキスト・イメージの1つまたは複数の初期の測定結果を更新し、前記信頼できる実行環境に提供される前記1つまたは複数の測定結果を取得することを含み、前記要求ハンドルを使用して前記1つまたは複数の測定結果が提供される、請求項14に記載のコンピュータ・システム。
【請求項16】
前記更新されたイメージの前記メタデータを前記取得することが、前記信頼できる実行環境で機能を呼び出して前記更新されたイメージの前記メタデータを作成することに基づき、前記呼び出しが、前記要求ハンドルおよび前記1つまたは複数の測定結果を引数として提供する、請求項14に記載のコンピュータ・システム。
【請求項17】
コンピューティング環境内の処理を容易にするコンピュータ実装方法であって、前記コンピュータ実装方法が、
セキュア・ゲストによって、前記セキュア・ゲストの更新されたイメージを生成することと、
前記更新されたイメージの1つまたは複数の測定結果を計算することと、
前記セキュア・ゲストによって、前記1つまたは複数の測定結果を信頼できる実行環境に提供することと、
前記信頼できる実行環境から、前記更新されたイメージのメタデータを取得することであって、前記メタデータが、前記セキュア・ゲストのメタデータ、および前記1つまたは複数の測定結果を取得することに基づいて生成される、前記取得することとを含む、コンピュータ実装方法。
【請求項18】
前記セキュア・ゲストによって、前記更新されたイメージが生成されるべきであることを示すイメージ更新要求構造体を取得することと、
前記イメージ更新要求構造体を前記信頼できる実行環境に提供することと、
前記イメージ更新要求構造体に基づいて、前記信頼できる実行環境から要求ハンドルを取得することであって、前記要求ハンドルが前記更新されたイメージを生成することにおいて使用される、前記取得することとをさらに含む、請求項17に記載のコンピュータ実装方法。
【請求項19】
前記更新されたイメージを前記生成することが、
前記要求ハンドルを使用して、前記信頼できる実行環境に対して暗号鍵を要求することと、
前記セキュア・ゲストの更新されたプレーン・テキスト・イメージを構築することと、
前記暗号鍵を使用して前記更新されたプレーン・テキスト・イメージを暗号化し、暗号化されたイメージを取得することであって、前記暗号化されたイメージが前記更新されたイメージである、前記取得することとを含み、
前記1つまたは複数の測定結果を前記計算することが、前記暗号化されたイメージに基づいて、前記更新されたプレーン・テキスト・イメージの1つまたは複数の初期の測定結果を更新し、前記信頼できる実行環境に提供される前記1つまたは複数の測定結果を取得することを含み、前記要求ハンドルを使用して前記1つまたは複数の測定結果が提供される、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記更新されたイメージの前記メタデータを前記取得することが、前記信頼できる実行環境で機能を呼び出して前記更新されたイメージの前記メタデータを作成することに基づき、前記呼び出しが、前記要求ハンドルおよび前記1つまたは複数の測定結果を引数として提供する、請求項18に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【0001】
1つまたは複数の態様は、一般に、コンピューティング環境内の処理を容易にすることに関連しており、特に、そのような処理を改善することに関連している。
【背景技術】
【0002】
コンピューティング環境は、仮想化をサポートすることがあり、仮想化では、コンピューティング環境のハイパーバイザまたは仮想マシン・マネージャが、コンピューティング環境の仮想マシンまたは仮想サーバなどの、さまざまなゲストをホストする。仮想マシンは、システム・リソースに対するアクセス権限を持ち、ゲスト・オペレーティング・システムなどのオペレーティング・システムを実行することができる。さまざまな所有者によって、さまざまなゲストが所有されることが可能であり、これらのゲストのうちの一部は、セキュア・ゲストであることができる。
【0003】
従来のハイパーバイザは、ホストされたゲストを完全に制御する。特に、ハイパーバイザは、ホストされたゲストのメモリを検査し、変更する能力さえも有する。しかし、セキュア・ゲストは、完全には信頼できないハイパーバイザによってホストされ得るゲストである。そのようなセキュア・ゲストのイメージは、読み込まれるときに保護され、ゲストに割り当てられたリソース(例えば、メモリ、CPUレジスタ)の内容の保護は、ゲストの存続期間全体を通じて維持される。ゲストの保護は、少なくとも完全性保護を含み(例えば、ハイパーバイザは、どのゲストの状態も悪意を持って変更することができない)、加えて、セキュア・ゲストにおいて実行されている初期のイメージ、コード、およびデータの機密性を維持することを含むことができる。
【0004】
セキュア・ゲストのイメージまたはメタデータあるいはその両方を含んでいるセキュア・ゲストに関連付けられた処理が、容易にされるべきである。
【発明の概要】
【0005】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラム製品の提供によって、従来技術の欠点が克服され、追加の利点がもたらされる。コンピュータ・プログラム製品は、1つまたは複数のコンピュータ可読ストレージ媒体と、方法を実行するために1つまたは複数のコンピュータ可読ストレージ媒体に集合的に格納されたプログラム命令とを含む。この方法は、セキュア・ゲストによって、セキュア・ゲストの更新されたイメージを生成することと、更新されたイメージの1つまたは複数の測定結果を計算することとを含む。セキュア・ゲストは、1つまたは複数の測定結果を信頼できる実行環境に提供し、信頼できる実行環境から、更新されたイメージのメタデータを取得する。このメタデータは、セキュア・ゲストのメタデータ、および1つまたは複数の測定結果を取得することに基づいて生成される。実行中のセキュア・ゲストに関して、更新されたセキュア・ゲスト・イメージを生成すること、およびそのセキュア・ゲスト・イメージに関連付けられたメタデータを取得することによって、(例えば、セキュリティ修正を適用すること、構成を更新することなどの)セキュア・ゲストに対する変更が行われてよく、この変更は、次回のブート時に、セキュア・ゲストによって使用可能になり、柔軟性または改良あるいはその両方をもたらす。
【0006】
1つの例では、セキュア・ゲストは、更新されたイメージが生成されるべきであることを示すイメージ更新要求構造体を取得する。イメージ更新要求構造体は、信頼できる実行環境に提供され、イメージ更新要求構造体に基づいて、要求ハンドルが信頼できる実行環境から取得される。要求ハンドルは、更新されたイメージを生成することにおいて使用される。
【0007】
1つの例では、更新されたイメージを生成することは、要求ハンドルを使用して、信頼できる実行環境に対して暗号鍵を要求することと、セキュア・ゲストの更新されたプレーン・テキスト・イメージを構築することと、暗号鍵を使用して更新されたプレーン・テキスト・イメージを暗号化し、暗号化されたイメージを取得することとを含む。暗号化されたイメージは、更新されたイメージである。
【0008】
例として、1つまたは複数の測定結果を計算することは、暗号化されたイメージに基づいて、更新されたプレーン・テキスト・イメージの1つまたは複数の初期の測定結果を更新し、信頼できる実行環境に提供される1つまたは複数の測定結果を取得することを含む。例えば、要求ハンドルを使用して1つまたは複数の測定結果が提供される。
【0009】
1つの例では、暗号鍵は、信頼できる実行環境から取得された、保護された鍵である。保護された鍵は、例えば、信頼できる実行環境を呼び出すセキュア・ゲストのインスタンスによって排他的に使用され得、暗号鍵のプレーン・テキスト値は、セキュア・ゲストに知られていない。保護された鍵を使用することは、データおよび処理にセキュリティをもたらす。
【0010】
例として、更新されたプレーン・テキスト・イメージは、メモリの複数のページを含み、更新されたプレーン・テキスト・イメージを暗号化することは、保護された鍵を使用してメモリの複数のページを暗号化することを含む。
【0011】
1つの例では、更新されたイメージのメタデータを取得することは、信頼できる実行環境で機能を呼び出して更新されたイメージのメタデータを作成することに基づき、この呼び出しは、要求ハンドルおよび1つまたは複数の測定結果を引数として提供する。例として、引数は、更新されたイメージの他のメタデータをさらに含む。
【0012】
例として、イメージ更新要求構造体は、完全性保護され、暗号化された部分を含み、及び信頼できる実行環境によって排他的に解釈可能である。この保護は、セキュア・ゲストから信頼できる実行環境への送信中に、要求構造体が変更され得ないこと、送信中に、要求構造体の暗号化された部分内のデータが機密のままであること、および暗号化されたデータのプレーン・テキスト値が、信頼できる実行環境によってのみアクセスされ得ることを保証する。
【0013】
1つの例では、イメージ更新要求構造体の暗号化された部分は、イメージ更新要求を発行しているセキュア・ゲストのメタデータの暗号化された部分内の機密データから導出されたデータを含む。信頼できる実行環境は、イメージ更新要求構造体からのこのデータを使用して、要求構造体の作成者が、セキュア・ゲスト・イメージの所有者だけに限定されていると仮定される知識を有するということを、検証することができる。
【0014】
さらに、1つの例では、イメージ更新要求構造体を信頼できる実行環境に提供することに基づいて、イメージ更新要求構造体に対する課題が、信頼できる実行環境から取得される。この課題は、例えば、イメージ更新要求構造体の暗号化された部分から取得された機密データに基づく。セキュア・ゲストは、選択された実体から課題に対する応答を取得し、課題に対する応答を信頼できる実行環境に提供する。課題に対する応答を提供することに基づいて、課題が成功したかどうかの指示が、信頼できる実行環境から取得される。課題が成功することに基づいて、更新されたイメージの生成を続行する。この課題は、イメージ更新要求構造体を脆弱性から保護する。
【0015】
1つの例では、イメージ更新要求構造体は、更新されたイメージのメタデータを計算するために使用される、以前のセキュア・ゲスト・メタデータに対する1つまたは複数の変更を指定する、1つまたは複数の指示およびデータを含む。
【0016】
例として、セキュア・ゲストの更新されたイメージおよび更新されたイメージのメタデータが、ブート・デバイスに格納される。これによって、ブート・プロセス中に、更新されたイメージおよびメタデータが使用可能になることを可能にする。
【0017】
1つまたは複数の態様に関連するコンピュータ実装方法およびシステムも本明細書に記載され、請求される。さらに、1つまたは複数の態様に関連するサービスも本明細書に記載され、請求されてよい。
【0018】
さらなる特徴および利点が、本明細書に記載された技術によって実現される。他の実施形態および態様は、本明細書において詳細に説明され、請求される態様の一部と見なされる。
【0019】
1つまたは複数の態様は、本明細書の最後にある特許請求の範囲において例として具体的に指摘され、明確に請求される。前述の内容、ならびに1つまたは複数の態様の目的、特徴、および利点は、添付の図面と併せて行われる以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【0020】
【
図1】本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の1つの例を示す図である。
【
図2】本発明の1つまたは複数の態様に従って、セキュア・ゲストを開始するために使用されるセキュア・ゲスト・イメージおよびセキュア・ゲスト・メタデータの1つの例を示す図である。
【
図3】本発明の1つまたは複数の態様に従って使用されるイメージ更新要求構造体に関連する記述の1つの例を示す図である。
【
図4】本発明の1つまたは複数の態様に従って、セキュア・ゲストの更新されたイメージおよび関連するメタデータを生成する1つの例を示す図である。
【
図5A】本発明の1つまたは複数の態様に従って、更新されたセキュア・ゲスト・イメージおよび更新されたセキュア・ゲスト・メタデータを生成するための生成プロセスの1つの例を示す図である。
【
図5B】本発明の1つまたは複数の態様に従って、更新されたセキュア・ゲスト・イメージおよび更新されたセキュア・ゲスト・メタデータを生成するための生成プロセスの1つの例を示す図である。
【
図6A】本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にする1つの例を示す図である。
【
図6B】本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にする1つの例を示す図である。
【
図6C】本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にする1つの例を示す図である。
【
図7A】本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の別の例を示す図である。
【
図7B】本発明の1つまたは複数の態様に従って、
図7Aのメモリのさらなる詳細を示す図である。
【
図8】本発明の1つまたは複数の態様に従って、クラウド・コンピューティング環境の1つの実施形態を示す図である。
【
図9】本発明の1つまたは複数の態様に従って、抽象モデル・レイヤの1つの例を示す図である。
【発明を実施するための形態】
【0021】
本発明の1つまたは複数の態様に従って、コンピューティング環境内の処理を容易にするための能力が提供される。例として、この能力は、セキュア・ゲストが、セキュア・ゲストの更新されたイメージに加えて、更新されたセキュア・ゲスト・イメージの更新されたメタデータを作成することを可能にすることを含む。これは、例えば、セキュア・ゲスト・イメージに影響を与えるセキュリティ修正を適用することにおいて、カスタマイズされたセキュア・ゲスト・イメージの新しい所有者に属する機密データを使用して、一般的なセキュア・ゲスト・イメージをカスタマイズすることにおいて、または他の理由のため、あるいはその組合せに、役立つことがある。本明細書において使用されるとき、更新されたイメージまたは更新されたメタデータとは、更新されたイメージまたは新しいイメージもしくはメタデータのことを指す。「更新された」という用語は、便宜のために使用される。
【0022】
本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の1つの実施形態が、
図1を参照して説明される。例として、コンピューティング環境は、International Business Machines Corporation(ニューヨーク州アーモンク市)によって提供されるz/Architecture(R)命令セット・アーキテクチャに基づく。z/Architecture命令セット・アーキテクチャの1つの実施形態は、“z/Architecture Principles of Operation," IBM Publication No.SA22-7832-12, Thirteenth Edition, September 2019という公開文献に記載されている。しかし、z/Architecture命令セット・アーキテクチャは1つの例示的なアーキテクチャにすぎず、International Business Machines Corporationまたは他の実体あるいはその両方の、他のアーキテクチャまたは他の種類のコンピューティング環境あるいはその両方が、本発明の1つまたは複数の態様を含むか、または使用するか、あるいはその両方であってよい。z/ArchitectureおよびIBMは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。
【0023】
図1を参照すると、1つの例では、コンピューティング環境100は中央処理装置複合体(CPC:central processor complex)102を含む。中央処理装置複合体102は、例えば、IBM Z(R)サーバ(または、International Business Machines Corporationもしくは他の実体によって提供される他のサーバもしくはマシン)であり、例えば、1つまたは複数のプロセッサ・ユニット(プロセッサとも呼ばれる)110および入出力(I/O:input/output)サブシステム111に結合されたメモリ104(システム・メモリ、メイン・メモリ、主記憶装置、中央記憶装置、ストレージとも呼ばれる)などの、複数のコンポーネントを含んでいる。プロセッサ・ユニット110の例としては、1つまたは複数の汎用プロセッサ(セントラル・プロセッサまたは中央処理装置(CPU:central processing units)としても知られている)または1つまたは複数の他のプロセッサあるいはその両方が挙げられる。IBM Zは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。
【0024】
I/Oサブシステム111は、中央処理装置複合体の一部であるか、または中央処理装置複合体から分離することができる。I/Oサブシステム111は、主記憶装置104と、中央処理装置複合体に結合された入出力制御ユニット108および入出力(I/O)デバイス106との間の情報の流れを方向付ける。
【0025】
多くの種類のI/Oデバイスが使用されてよい。1つの特定の種類は、データ・ストレージ・デバイス140である。データ・ストレージ・デバイス140は、1つまたは複数のプログラム142、1つまたは複数のコンピュータ可読プログラム命令144、またはデータ、あるいはその組合せなどを格納することができる。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成され得る。
【0026】
中央処理装置複合体102は、取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体を含むか、またはそのようなコンピュータ・システム・ストレージ媒体に結合されるか、あるいはその両方であることができる。例えば、中央処理装置複合体102は、取り外し不可、不揮発性の磁気媒体(通常は、「ハード・ドライブ」と呼ばれる)、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、あるいはCD-ROM、DVD-ROM、または他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りまたは書き込みを行うための光ディスク・ドライブ、あるいはその組合せを含むか、またはこれらに結合されるか、あるいはその両方であることができる。他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、中央処理装置複合体102と併用できるということが理解されるべきである。その例として、マイクロコードまたはミリコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
【0027】
さらに、中央処理装置複合体102は、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用され得る。中央処理装置複合体102での使用に適し得る周知のコンピューティング・システム、環境、または構成、あるいはその組合せの例としては、パーソナル・コンピュータ(PC:personal computer)システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらのシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが挙げられるが、これらに限定されない。
【0028】
中央処理装置複合体102は、1つまたは複数の実施形態では仮想化をサポートし、仮想化のサポートでは、例えば、メモリ104が、1つまたは複数の仮想マシン112(ゲストとも呼ばれる)、仮想マシンを管理するハイパーバイザ114などの仮想マシン・マネージャ、信頼できる実行環境115(ウルトラバイザとも呼ばれる)、およびプロセッサ・ファームウェア116を含む。ハイパーバイザ114の1つの例は、International Business Machines Corporation(ニューヨーク州アーモンク市)によって提供されるz/VM(R)ハイパーバイザである。ハイパーバイザは、ホストと呼ばれることがある。z/VMは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。
【0029】
1つまたは複数の実施形態では、信頼できる実行環境115は、例えば、本明細書に記載されているようなプロセスを実行するように構成されたハードウェアまたはファームウェアあるいはその両方において少なくとも部分的に実装されてよい。信頼できる実行環境は、メモリ保護ハードウェアを利用してメモリ保護を実施する、信頼できるファームウェアまたはハードウェアあるいはその両方である。ゲストの所有者は、ホスト鍵文書に埋め込まれた公開ホスト鍵を使用することによって、(例えば、IBM Secure Executionを使用して)情報を信頼できる実行環境に安全に渡すことができる。機密情報を処理するために、信頼できる実行環境は、一致する秘密ホスト鍵を使用する。秘密ホスト鍵は、サーバ(例えば、IBM Z(R)サーバ)に固有であり、ハードウェア保護される。
【0030】
プロセッサ・ファームウェア116は、例えば、プロセッサのマイクロコードまたはミリコードを含む。プロセッサ・ファームウェア116は、例えば、上位レベルのマシン・コードの実装において使用される、ハードウェア・レベルの命令またはデータ構造あるいはその両方を含む。1つの実施形態では、プロセッサ・ファームウェア116は、例えば、信頼できるソフトウェアを含んでいるマイクロコードまたはミリコード、基盤になるハードウェアに固有のマイクロコードまたはミリコードとして通常は提供され、システムのハードウェアへのオペレーティング・システムのアクセスを制御する、独自のコードを含む。
【0031】
中央処理装置複合体の仮想マシンのサポートは、多数の仮想マシン112を操作する能力を提供し、各仮想マシン112は、異なるプログラム120と共に動作し、Linux(R)オペレーティング・システムなどのゲスト・オペレーティング・システム122を実行することができる。各仮想マシン112は、別々のシステムとして機能することができる。すなわち、各仮想マシンは、独立してリセットされ、ゲスト・オペレーティング・システムを実行し、異なるプログラムと共に動作することができる。仮想マシン内で実行されるオペレーティング・システムまたはアプリケーション・プログラムは、完全なシステム全体にアクセスできるように見えるが、実際は、その一部のみが利用可能である。z/VM(R)およびLinuxが例として提供されているが、本発明の1つまたは複数の態様に従って、他の仮想マシン・マネージャまたはオペレーティング・システムあるいはその両方が使用されてよい。Linux Foundation(世界規模での商標の所有者であるLinus Torvaldsの専用実施権者)からのサブライセンスに従って、登録商標Linux(R)が使用される。
【0032】
1つの実施形態では、1つまたは複数のゲスト112がセキュア・ゲストである。
図2を参照すると、セキュア・ゲスト200は、ハイパーバイザがセキュア・ゲストの状態(例えば、メモリ、レジスタなど)を観察できない方法で、ハイパーバイザ(例えば、ハイパーバイザ114)によって開始される。例えば、機密コンピューティングの1つの実施形態では、ハイパーバイザは、セキュア・ゲストを開始/停止することができ、ハイパーバイザは、セキュア・ゲストを開始するために使用されるデータがどこにあるかを識別するが、実行中のセキュア・ゲストの中を見ることはできない。セキュア・ゲストを読み込む/開始するために使用されるデータは、ハイパーバイザがセキュア・ゲストを見ることができない方法で暗号化されてよい。セキュア・ゲスト・イメージの所有者は、機密データをセキュア・ゲスト・メタデータ内に配置し、その後、セキュア・ゲスト・イメージをセキュア・ゲスト・メタデータと共に生成する。セキュア・ゲストが読み込まれた後に、セキュア・ゲストの状態とのすべての情報のやりとりが、信頼できる実行環境115などの信頼できる実行環境によって処理される。
【0033】
1つの実施形態では、セキュア・ゲストを開始するために、ハイパーバイザは、セキュア・ゲスト・イメージ210およびセキュア・ゲスト・メタデータ220を信頼できる実行環境115に渡す。このメタデータは、完全性保護され、少なくとも部分的に機密保護され、信頼できる実行環境のみによって解釈される。次に、信頼できる実行環境は、セキュア・ゲスト・メタデータ内の情報に基づいて、メモリに読み込まれたセキュア・ゲスト・イメージの完全性を強制し、読み込まれたイメージを含んでいるセキュア・ゲストのメモリを、ハイパーバイザによってアクセス可能になることから保護し、および場合によっては、セキュア・ゲストを開始する前に、セキュア・ゲスト・イメージを復号することができる。
【0034】
セキュア・ゲスト・イメージおよびセキュア・ゲスト・メタデータは、例えば、セキュア・ゲスト・メタデータによって保護されている機密データの知識を有する対象者のみが、セキュア・ゲスト・イメージの有効な変更を実行できるように、暗号によってリンクされる。セキュア・ゲスト・メタデータは、信頼できる実行環境によって排他的に解釈可能であるように設計される。
【0035】
本発明の1つまたは複数の態様に従って、(例えば、セキュア・ゲストをブートするために使用される)セキュア・ゲスト・イメージおよびそれに関連付けられたメタデータが更新されてよい。例として、イメージおよびメタデータは、セキュア・ゲスト・イメージが、次回、修正が適用されてブートされ得るように、セキュア・ゲスト・イメージに影響を与える修正(例えば、セキュリティ修正)を適用するため、カスタマイズされたセキュア・ゲスト・イメージがブートされ得るように、カスタマイズされたセキュア・ゲスト・イメージの新しい所有者に属する機密データを使用して一般的なセキュア・ゲスト・イメージをカスタマイズするため、などのために更新されてよい。セキュア・ゲスト・イメージおよびそれに関連付けられたメタデータの更新に関する例が提供されるが、追加の例、より少ない例、または他の例、あるいはその組合せが提供されてよい。
【0036】
1つの例では、セキュア・ゲスト・イメージおよびそれに関連付けられたメタデータの更新は、例えば、更新要求構造体を介して提供された要求に基づき、その例が下でさらに説明される。更新要求構造体(本明細書では、イメージ更新要求構造体または要求構造体とも呼ばれる)は、例えば、完全性保護され、要求構造体の1つまたは複数の部分が、例えば要求構造体保護鍵によって、機密保護されてよい。例えば、要求構造体は、要求構造体保護鍵によってAES-GCM(Advanced Encryption Standard-Galois Counter Mode:高度暗号化標準ガロア・カウンタ・モード)保護される。要求構造体は、要求構造体保護鍵、例えば、顧客によって選択されたCPK(customer public key:顧客公開鍵)(一時鍵のペアからの公開EDCH(Elliptic-curve Diffie-Hellman:楕円曲線ディフィー・ヘルマン)鍵)、および顧客によって選択された同じ要求構造体保護鍵(例えば、要求構造体をAES-GCM保護するために使用される要求構造体保護鍵)を表す鍵スロットのセットによって、完全性保護される。
【0037】
要求構造体は、信頼できる実行環境によって排他的に解釈可能である(例えば、信頼できる実行環境は、要求構造体の完全性を排他的に検証し、要求構造体の暗号化された部分が、信頼できる実行環境によって排他的に復号される)。要求構造体は、例えば、対象のホストのホスト鍵/信頼できる実行環境によって保護された要求構造体保護鍵(RPK:request structure protection key)をそれぞれ含む、1つまたは複数の鍵スロット、元の(更新の前の)セキュア・ゲスト・イメージを暗号化するために使用された鍵を使用するか、新しいランダムな鍵を使用する(元の鍵を使用するための選択肢が、イメージ暗号化のための保護された鍵を使用することを選択した要求に制限されてよい)、信頼できる実行環境機能によって提供されるイメージ暗号鍵が、プレーン・テキストの鍵であるべきか、または保護された鍵(例えば、セキュア・ゲストには見えないプレーン・テキスト値を含むが、システムの信頼できるハードウェア/ファームウェアによって提供された機能によって暗号鍵として解釈され得る鍵トークン)であるべきかの指示、またはどのセキュア・ゲスト・メタデータの属性もしくは機密データが変更されるべきか、およびどのように変更されるべきかに関する情報、あるいはその組合せを含んでよい。要求構造体は、追加のデータ/属性、より少ないデータ/属性、または他のデータ/属性、あるいはその組合せを含んでよい。多くの可能性が存在する。
【0038】
イメージ更新要求構造体に関連する記述の1つの特定の例が、
図3を参照して説明される。
図3に示されているように、1つの例では、要求構造体に関連する記述300(本明細書では、要求構造体記述300とも呼ばれる)は、複数のエントリ302を含み、各エントリ302は、例えば、名前310、略語(略語)312、およびエントリの簡単な説明(内容)314に加えて、内容(例えば、内容314)が完全性保護されるのか、または例えば、対象のシステムのみによって取得され得る要求保護鍵によって、完全性保護および機密保護の両方を行われる(例えば、暗号化される)のかの保護の指示(保護)316を含む。1つの例では、内容314は、要求構造体のデータ/属性を含み、名前310、略語312、および保護の指示316は、内容314に関連する情報を提供する。
【0039】
例として、要求構造体の記述の1つのエントリ318は、(要求している実体によって提供された)顧客公開鍵を含み、1つまたは複数の他のエントリ320は、対象のホストのホスト鍵/信頼できる実行環境によって保護された要求構造体保護鍵をそれぞれ含んでいる鍵スロット1~Nを含む。顧客公開鍵および鍵スロットは、可能性のある対象のシステムのセットの(例えば、(楕円曲線)ディフィー・ヘルマン技術を使用する)要求保護鍵を信頼できる実行環境に安全に伝達するために使用され、各鍵スロットが、1つの対象のシステムのアドレスを指定する。
【0040】
1つまたは複数の他のエントリ302は、例えば、要求保護鍵によって暗号化された以下のデータ(エントリ322、324及び326)を含む。
【0041】
エントリ322は、課題の指示(下で説明される)などの特定の指示を提供できる、1つまたは複数の要求フラグ(RFと略される)を含む。1つの例では、要求の暗号化された部分は、認証データ(例えば、セキュア・ゲスト・メタデータの暗号化された部分からの機密データに基づいて生成されたデータ)を含む。
【0042】
エントリ324は、1つまたは複数の変更の種類(例えば、新しいランダムなイメージ暗号鍵を使用する、元の(事前に更新された)セキュア・ゲスト・メタデータの他の機密データを置き換える、元のセキュア・ゲスト・メタデータの制御フラグを変更するなど)を提供する1つまたは複数の変更の指示(例えば、ビットマップ内の1つまたは複数のビット)を含む。
【0043】
エントリ326は、変更の指示(例えば、元のセキュア・ゲスト・メタデータからの鍵を置き換えるべきである鍵)に応じて、特定の暗号化されたデータを提供する変更データを含む。
【0044】
追加の情報、より少ない情報、または他の情報、あるいはその組合せが、イメージ更新要求構造体記述300に含まれてよい。追加のエントリ、より少ないエントリ、もしくは他のエントリ、またはその組合せが提供されてよく、または各エントリが、追加の情報、より少ない情報、もしくは他の情報、またはその組合せを含んでよく、あるいはその両方であってよい。さらに、更新要求構造体(例えば、内容314)は、追加のデータ/属性、より少ないデータ/属性、または他のデータ/属性、あるいはその組合せを含んでよい。多くの可能性が存在する。
【0045】
要求構造体は、本発明の1つまたは複数の態様に従って、更新されたセキュア・ゲスト・イメージおよび関連する更新されたメタデータを生成するために使用される。この処理の1つの例が、
図4を参照して説明される。1つの例では、セキュア・ゲスト400は、更新されるイメージに関連付けられたメタデータの更新を初期化するために、セキュア・ゲスト・メタデータ生成初期化呼び出し(generate secure guest metadata-initialize call)402などの呼び出しを、信頼できる実行環境に対して発行する。この初期化呼び出しは、例えば、(例えば、内容314に類似する内容を含んでいる)要求構造体404を含み、要求構造体404は、例えばセキュア・ゲスト所有者410によって、セキュア・ゲストの外部で準備され、セキュア・ゲストによって取得された(例えば、提供された、受信された、引き出された、取り出された、などである)。信頼できる実行環境に対する呼び出しは、要求ハンドルをセキュア・ゲスト400に返し、任意選択的に、要求の有効性の課題を返してよい。セキュア・ゲストによって信頼できる実行環境から受信された課題が、セキュア・ゲスト所有者に転送される(412)。セキュア・ゲスト所有者は、下で説明されるように、セキュア・ゲスト・メタデータおよび要求構造体の所有者の知識に基づいて課題に対する応答414を計算し、この応答をセキュア・ゲストに送信する。セキュア・ゲストは、セキュア・ゲスト所有者から応答を受信し、信頼できる実行環境を呼び出して、課題に応答する(416)。課題が失敗した場合、更新が取り消される。例えば、セキュア・ゲストは、例えば、メタデータ生成取り消し呼び出し440を使用して信頼できる実行環境を呼び出し、更新を取り消す。しかし、課題が成功した場合、信頼できる実行環境は、要求ハンドルに関連付けられたさらなるイメージ更新要求機能を処理することを許可する状態に変化し、イメージおよびメタデータの更新が、検証された要求ハンドルを使用しながら続行する。
【0046】
更新を続けるために、1つの例では、セキュア・ゲスト400は、要求ハンドルのために、信頼できる実行環境に対してイメージ暗号鍵(例えば、保護された鍵)を要求する(418)。信頼できる実行環境は、例えば、信頼できる実行環境を呼び出しているセキュア・ゲストのインスタンスによって排他的に使用される保護された鍵を提供する。この例では、暗号鍵のプレーン・テキスト値は、セキュア・ゲストに知られていない。
【0047】
さらに、1つの例では、更新されたイメージがセキュア・ゲストの内部で生成され、このイメージが、更新されたイメージ暗号鍵を使用して暗号化される。イメージを更新するために、1つの例では、セキュア・ゲストは、更新技術を使用して(例えば、Red Hatパッケージ・マネージャ(RPM:Red Hat Package Manager)更新機能を使用して)セキュア・ゲストに対する更新(例えば、セキュリティ修正、構成変更など)を提供し、その後、標準的なイメージ生成ツール(例えば、Dracut)を使用して、更新されたイメージを抽出する。更新されたイメージは、更新されたセキュア・ゲスト・イメージに基づいてセキュア・ゲストをブートするために使用され得るように、例として、暗号化されてディスクまたはブート・パーティションに書き込まれる。
【0048】
更新の一部として、1つの例では、更新されたセキュア・ゲスト・イメージの一部であるメモリのページ422(または他の単位)ごとに、パック動作420が実行される。ページごとに、パック動作は、例えば、イメージ暗号鍵(例えば、保護された鍵)を使用してページを暗号化すること、更新されたセキュア・ゲスト・イメージの測定結果(例えば、現在知られているか、または今後開発される技術に基づいて計算された、ハッシュ、検証コード(例えば、メッセージ認証コード)、署名などの完全性測定結果)を累積すること、および更新されたセキュア・ゲスト・イメージの他のメタデータ(例えば、更新されたセキュア・ゲスト・イメージの開始アドレス、更新されたセキュア・ゲスト・イメージのページ数など)を更新することを含む。
【0049】
さらに、セキュア・ゲストは、信頼できる実行環境に対して、新規セキュア・ゲスト・メタデータ生成終了呼び出し430を発行し、この呼び出しは、更新されたセキュア・ゲスト・イメージの測定結果およびセキュア・ゲスト・イメージの他のメタデータ432を含んでいる選ばれたデータを入力として含み、更新されたセキュア・ゲスト・メタデータ434を返す。
【0050】
1つの例では、更新されたセキュア・ゲスト・イメージは、更新されたセキュア・ゲスト・メタデータと共に、ブート・デバイスに格納され、古いイメージおよびメタデータを置き換える。
【0051】
更新されたイメージおよび更新されたメタデータを生成する1つの実施形態のさらなる詳細が、
図5A~
図5Bを参照して説明される。最初に
図5Aを参照すると、セキュア・ゲスト所有者が、例えば、内容314に類似する内容を含む、セキュア・ゲスト・イメージ更新要求構造体を生成し、この要求構造体をセキュア・ゲストに送信する(500)。セキュア・ゲストは、要求構造体を受信し、要求構造体を引数として使用して、セキュア・ゲスト・メタデータ生成初期化呼び出しと呼ばれる信頼できる実行環境機能を呼び出す。信頼できる実行環境は、この呼び出しを取得し(例えば、受信する、提供される、取り出す、引き出すなど)、要求ハンドルを返す(502)。任意選択的に、信頼できる実行環境は、セキュア・ゲストの所有者が要求の有効性を示すことができるようにするために、要求ハンドルの有効性に影響を与えることができる課題を返してもよい。
【0052】
さらに説明するために、1つの実施形態では、初期化機能が、セキュア・ゲスト(例えば、セキュア・ゲストのみ)から呼び出し可能であり、示されるように、セキュア・ゲスト・イメージ更新要求構造体を引数として受け取る。この呼び出しは、信頼できる実行環境に対するものであり、この呼び出しに基づいて、例えば、要求構造体の(例えば、エントリ318に記述されている)顧客公開鍵および(例えば、エントリ320に記述されている)1つまたは複数の鍵スロットを使用して、要求構造体をアンパック(例えば、復号)する。この呼び出しは、要求構造体保護鍵を導出し、要求構造体保護鍵を使用して要求構造体を復号し、(例えば、ハッシュ、メッセージ認証コード、暗号署名などを計算することなどの、1つまたは複数の測定を使用して)要求構造体の完全性を検証する。元のイメージが、セキュア・ゲスト・メタデータの計算のために認証を必要とする場合、元の(例えば、更新前の)セキュア・ゲスト・メタデータからの機密データ(例えば、鍵、パスワードなど)を使用して認証データが検証される。
【0053】
初期化機能が、課題が実行されるべきだということを示す場合、課題機能が要求される(504)。課題が任意選択的に選択される場合、信頼できる実行環境によって、課題の指示が返され、課題の状態の待機が、要求ハンドルに関連付けられる。課題は、例えば、ノンス、ホストの公開ホスト鍵のハッシュ、要求のタイムスタンプ、セキュア・ゲストのブート時間(アンパックされたイメージの検証)のタイムスタンプ、およびセキュア・ゲスト・イメージまたはセキュア・ゲストに固有のデータを含んでよい。課題を実行する1つの実施形態が、
図5Bを参照して説明される。
【0054】
図5Bを参照すると、1つの実施形態では、課題処理プロセス550は、例えば、セキュア・ゲスト所有者がセキュア・ゲストから課題を受信することを含む(552)。セキュア・ゲスト所有者は、元の(例えば、更新前の)セキュア・ゲスト・メタデータの機密データ(例えば、鍵、パスワードなど)を使用して、課題に対する応答を計算する(554)。セキュア・ゲスト所有者は、課題に対する応答をセキュア・ゲストに送信する(556)。セキュア・ゲストは、課題に対する応答を受信し、課題に対する応答と呼ばれる信頼できる実行環境機能を呼び出し、この機能は、課題が信頼できる実行環境によって検証されることに成功したかどうかを示す復帰コードをもたらす(558)。1つの例では、課題に対する応答機能はゲストから呼び出し可能であり、この呼び出しは、要求ハンドルおよび課題に対する応答を引数として含む。信頼できる実行環境は、元のセキュア・ゲスト・メタデータの機密データを使用して、応答が課題の暗号化に等しいかどうかを評価し、等しい場合、初期化された状態が要求ハンドルに関連付けられる。
【0055】
セキュア・ゲストは、課題が失敗したかどうかを判定し、失敗した場合、セキュア・ゲスト・イメージの更新を取り消す(560)。例えば、セキュア・ゲストは、セキュア・ゲスト・メタデータ生成取り消しと呼ばれる信頼できる実行環境機能を呼び出す。1つの例では、この機能は、セキュア・ゲストから呼び出し可能であり、要求ハンドルを引数として含む。取り消し動作は、要求ハンドルを無効化する。
【0056】
課題がもしあれば、その実行に成功した後に、処理が、
図5Aのセキュア・ゲスト・イメージおよびセキュア・ゲスト・メタデータを生成することに戻る。課題の実行に成功することに基づいて、または課題が選択されない場合、初期化された状態が要求ハンドルに関連付けられる。
【0057】
セキュア・ゲストは、要求ハンドルを使用して、イメージ暗号鍵取得と呼ばれる信頼できる実行環境機能を呼び出し、この機能は、例えば、保護されたイメージ暗号鍵が提供されることを引き起こす。1つの例では、イメージ暗号鍵取得機能は、セキュア・ゲストから呼び出し可能であり、要求ハンドルを引数として含む。信頼できる実行環境は、要求ハンドルによって参照されている要求が、保護されたイメージ暗号鍵が返され得る(例えば、課題が合格した)状態にあるかどうかを評価する。要求に応じて、信頼できる実行環境は、古いイメージ暗号鍵をフェッチするか、または新しいイメージ暗号鍵(例えば、ランダムな鍵)を生成する。保護された鍵(例えば、IBM Zコンピュータで使用できるCPACF(Central Processor Assist for Cryptographic Functions)保護された鍵としての鍵)が使用されるべきである場合、イメージ暗号鍵が、呼び出しているセキュア・ゲストによって使用できる保護された鍵に変換されるべきである。イメージ暗号鍵(例えば、保護された鍵)が返される。
【0058】
セキュア・ゲストは、更新されたプレーン・テキストのセキュア・ゲスト・イメージを構築し(510)、更新されたセキュア・ゲスト・イメージの測定を初期化する(512)。セキュア・ゲスト・イメージは、メモリの1つまたは複数のページ(または他の単位)を含み、ページごとに、セキュア・ゲストが、保護されたイメージ暗号鍵を使用して、更新されたセキュア・ゲスト・イメージのページを暗号化し、更新されたセキュア・ゲスト・イメージの測定結果を更新する(514)。
【0059】
セキュア・ゲストは、新規セキュア・ゲスト・メタデータ生成終了と呼ばれる信頼できる実行環境機能を呼び出し、この機能は、要求ハンドル、更新されたセキュア・ゲスト・イメージの測定結果、および任意選択的な他のセキュア・ゲスト・イメージのメタデータを引数として含み、更新されたセキュア・ゲスト・メタデータを返す(516)。更新されたセキュア・ゲスト・メタデータは、例えば、要求された場合は新しいバージョン、新しいランダムな初期化値、セキュア・ゲスト・イメージ測定結果の置き換え、要求された場合はイメージ鍵の置き換え、および以前の他のセキュア・ゲスト・メタデータの置き換えを含む。
【0060】
セキュア・ゲストは、更新されたセキュア・ゲスト・イメージおよびセキュア・ゲスト・メタデータをブート・デバイスに格納し(518)、すべての古いイメージおよびメタデータを置き換える。
【0061】
本明細書において説明されているように、1つまたは複数の態様では、セキュア・ゲストのイメージを更新するためのプロセスは、例えば、セキュア・ゲストによって、セキュア・ゲスト・イメージ所有者から更新要求を受信することと、セキュア・ゲストによって、信頼できる実行環境機能を呼び出して、イメージ更新要求を初期化することと、任意選択的に、セキュア・ゲストによって、信頼できる実行環境機能から、セキュア・ゲスト所有者に提供されるイメージ更新要求に対する課題を受信することと、セキュア・ゲストによって、セキュア・ゲスト所有者から応答を受信し、この応答を信頼できる実行環境機能に提供し、信頼できる実行環境機能が、この応答に基づいてイメージ更新要求を検証することと、セキュア・ゲストによって、イメージ更新要求の検証に成功することに基づいて、更新されたセキュア・ゲスト・イメージを生成することと、更新されたセキュア・ゲスト・イメージの測定を実行することと、暗号鍵を使用して、更新されたセキュア・ゲスト・イメージを暗号化することと、信頼できる実行環境を呼び出して、更新されたセキュア・ゲストの測定結果に基づいて、更新されたセキュア・ゲスト・メタデータを生成することと、暗号化されている更新されたセキュア・ゲスト・イメージおよび更新されたメタデータをブート・デバイスに格納し、古いイメージを置き換えることとを含む。
【0062】
1つの例では、更新要求において提供されるイメージ更新要求構造体は、完全性保護され、暗号化された部分を含む。対象となる信頼できる実行環境のみが要求構造体の完全性を検証することができ、対象となる信頼できる実行環境のみが要求構造体の暗号化された部分を復号することができるように、イメージ更新要求構造体は、信頼できる実行ドメインを含む1つまたは複数のシステムを対象とする。
【0063】
1つの例では、セキュア・ゲストの完全性保護されたメタデータは、セキュア・ゲストのイメージの更新が許可されるかどうかを判定することにおいて、および許可されるイメージの更新の種類を示すために使用できる制御情報を含む。
【0064】
本発明の1つまたは複数の態様は、コンピュータ技術に密接に関係しており、コンピュータ内の処理を容易にし、その性能を改善する。処理は、実行中のセキュア・ゲスト内からのセキュア・ゲスト・イメージの更新を可能にし、更新されたセキュア・ゲスト・イメージのセキュア・ゲスト・メタデータを生成することによって容易にされる。
【0065】
コンピューティング環境内の処理が、本発明の1つまたは複数の態様に関連しているため、その処理を容易にする1つの実施形態のさらなる詳細が、
図6A~
図6Cを参照して説明される。
【0066】
図6Aを参照すると、1つの実施形態では、セキュア・ゲストが、セキュア・ゲストの更新されたイメージを生成し(600)、更新されたイメージの1つまたは複数の測定結果が計算される(602)。セキュア・ゲストは、1つまたは複数の測定結果を信頼できる実行環境に提供し(604)、信頼できる実行環境から、更新されたイメージのメタデータを取得し、このメタデータは、セキュア・ゲストのメタデータ、および1つまたは複数の測定結果を取得することに基づいて生成される(606)。実行中のセキュア・ゲストに関して、更新されたセキュア・ゲスト・イメージを生成すること、およびそのセキュア・ゲスト・イメージに関連付けられたメタデータを取得することによって、(例えば、セキュリティ修正を適用すること、構成を更新することなどの)セキュア・ゲストに対する変更が行われてよく、この変更は、次回のブート時に、セキュア・ゲストによって使用可能になり、柔軟性または改良あるいはその両方をもたらす。
【0067】
1つの例では、セキュア・ゲストは、更新されたイメージが生成されるべきであることを示すイメージ更新要求構造体を取得する(608)。イメージ更新要求構造体が、信頼できる実行環境に提供され(610)、イメージ更新要求構造体に基づいて、要求ハンドルが信頼できる実行環境から取得される(612)。要求ハンドルは、更新されたイメージを生成することにおいて使用される(614)。
【0068】
1つの例では、更新されたイメージを生成することは、要求ハンドルを使用して、信頼できる実行環境に対して暗号鍵を要求することと(616)、セキュア・ゲストの更新されたプレーン・テキスト・イメージを構築することと(618)、暗号鍵を使用して更新されたプレーン・テキスト・イメージを暗号化し、暗号化されたイメージを取得することであって、暗号化されたイメージが更新されたイメージである、取得することと(620)を含む。
【0069】
例として、1つまたは複数の測定結果を計算することは、暗号化されたイメージに基づいて、更新されたプレーン・テキスト・イメージの1つまたは複数の初期の測定結果を更新し、信頼できる実行環境に提供される1つまたは複数の測定結果を取得することを含む(622)。例えば、要求ハンドルを使用して1つまたは複数の測定結果が提供される(624)。
【0070】
1つの例では、
図6Bを参照すると、暗号鍵は、信頼できる実行環境から取得された、保護された鍵である(630)。保護された鍵は、例えば、信頼できる実行環境を呼び出すセキュア・ゲストのインスタンスによって排他的に使用され得、暗号鍵のプレーン・テキスト値は、セキュア・ゲストに知られていない(632)。保護された鍵を使用することは、データおよび処理にセキュリティをもたらす。
【0071】
例として、更新されたプレーン・テキスト・イメージは、メモリの複数のページを含み(634)、更新されたプレーン・テキスト・イメージを暗号化することは、保護された鍵を使用してメモリの複数のページを暗号化することを含む(636)。
【0072】
1つの例では、更新されたイメージのメタデータを取得することは、信頼できる実行環境で機能を呼び出し、更新されたイメージのメタデータを作成することに基づき(638)、この呼び出しは、要求ハンドルおよび1つまたは複数の測定結果を引数として提供する(640)。例として、引数は、更新されたイメージの他のメタデータをさらに含む(642)。
【0073】
例として、イメージ更新要求構造体は、完全性保護され、暗号化された部分を含み、信頼できる実行環境によって排他的に解釈可能である(644)。この保護は、セキュア・ゲストから信頼できる実行環境への送信中に、要求構造体が変更され得ないこと、送信中に、要求構造体の暗号化された部分内のデータが機密のままであること、および暗号化されたデータのプレーン・テキスト値が、信頼できる実行環境によってのみアクセスされ得ることを保証する。
【0074】
1つの例では、
図6Cを参照すると、イメージ更新要求構造体の暗号化された部分は、イメージ更新要求を発行しているセキュア・ゲストのメタデータの暗号化された部分内の機密データから導出されたデータを含む(660)。信頼できる実行環境は、イメージ更新要求構造体からのこのデータを使用して、要求構造体の作成者が、セキュア・ゲスト・イメージの所有者だけに限定されていると仮定される知識を有するということを、検証することができる。
【0075】
さらに、1つの例では、イメージ更新要求構造体を信頼できる実行環境に提供することに基づいて、イメージ更新要求構造体に対する課題が、信頼できる実行環境から取得される(662)。この課題は、例えば、イメージ更新要求構造体の暗号化された部分から取得された機密データに基づく(664)。セキュア・ゲストは、選択された実体から課題に対する応答を取得し(666)、課題に対する応答を信頼できる実行環境に提供する(668)。課題に対する応答を提供することに基づいて、課題が成功したかどうかの指示が、信頼できる実行環境から取得される(670)。課題が成功することに基づいて、更新されたイメージの生成を続行する(672)。1つの例では、応答を提供するための信頼できる実行環境に対する呼び出しは、要求ハンドルを追加の引数として含んでよい。この課題は、イメージ更新要求構造体を脆弱性から保護する。例えば、課題が失敗した場合、または有効な応答によって課題が回答されていない限り、信頼できる実行環境は、更新されたイメージのメタデータを生成するための最終的な呼び出しを受け入れない。
【0076】
1つの例では、イメージ更新要求構造体は、更新されたイメージのメタデータを計算するために使用される、以前のセキュア・ゲスト・メタデータに対する1つまたは複数の変更を指定する、1つまたは複数の指示およびデータを含む(674)。
【0077】
例として、セキュア・ゲストの更新されたイメージおよび更新されたイメージのメタデータが、ブート・デバイスに格納される(676)。これによって、ブート・プロセス中に、更新されたイメージおよびメタデータが使用可能になることを可能にする。
【0078】
他の変形および実施形態が可能である。
【0079】
本発明の態様は、多くの種類のコンピューティング環境によって使用されてよい。本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の別の実施形態が、
図7Aを参照して説明される。この例では、コンピューティング環境36は、例えば、1つまたは複数のバス40または他の接続あるいはその両方を介して互いに結合された、ネイティブ中央処理装置(CPU)37、メモリ38、および1つまたは複数の入出力デバイスまたはインターフェイスあるいはその両方39を含む。例として、コンピューティング環境36は、International Business Machines Corporation(ニューヨーク州アーモンク市)によって提供されるPowerPC(R)プロセッサ、ヒューレット・パッカード社(カリフォルニア州パロアルト市)によって提供されるインテル(R)Itanium(R)IIプロセッサ内蔵HP Superdome、あるいはInternational Business Machines Corporation、ヒューレット・パッカード社、インテル社、Oracle社、もしくは他の企業、またはその組合せによって提供されるアーキテクチャに基づく他のマシン、あるいはその組合せを含んでよい。PowerPCは、少なくとも1つの管轄区域内のInternational Business Machines Corporationの商標または登録商標である。インテルおよびItaniumは、米国および他の国における、インテル社またはその子会社の商標または登録商標である。
【0080】
ネイティブ中央処理装置37は、環境内で処理中に使用される1つまたは複数の汎用レジスタまたは1つまたは複数の専用レジスタあるいはその両方などの、1つまたは複数のネイティブ・レジスタ41を含む。これらのレジスタは、いずれかの特定の時点での環境の状態を表す情報を含む。
【0081】
さらに、ネイティブ中央処理装置37は、メモリ38に格納された命令およびコードを実行する。1つの特定の例では、中央処理装置は、メモリ38に格納されたエミュレータ・コード42を実行する。このコードは、あるアーキテクチャで構成されたコンピューティング環境が、別のアーキテクチャをエミュレートできるようにする。例えば、エミュレータ・コード42は、z/Architecture命令セット・アーキテクチャ以外のアーキテクチャに基づくマシン(PowerPCプロセッサ、HP Superdomeサーバなど)が、z/Architecture命令セット・アーキテクチャをエミュレートし、z/Architecture命令セット・アーキテクチャに基づいて開発されたソフトウェアおよび命令を実行できるようにする。
【0082】
エミュレータ・コード42に関連するさらなる詳細が、
図7Bを参照して説明される。メモリ38に格納されたゲスト命令43は、ネイティブCPU37のアーキテクチャ以外のアーキテクチャにおいて実行されるように開発された(例えば、マシン命令と相互関係がある)ソフトウェア命令を含む。例えば、ゲスト命43は、z/Architecture命令セット・アーキテクチャに基づくプロセッサ上で実行するように設計されていてよいが、代わりに、例えばインテルItanium IIプロセッサであってよい、ネイティブCPU37上でエミュレートされる。1つの例では、エミュレータ・コード42は、メモリ38から1つまたは複数のゲスト命令43を取得するため、および取得された命令のローカル・バッファリングを任意選択的に提供するための命令フェッチ・ルーチン44を含む。エミュレータ・コード42は、取得されたゲスト命令の種類を決定するため、およびゲスト命令を、1つまたは複数の対応するネイティブ命令46に変換するための命令変換ルーチン45も含む。この変換は、例えば、ゲスト命令によって実行される機能を識別すること、およびこの機能を実行するためのネイティブ命令を選択することを含む。
【0083】
さらに、エミュレータ・コード42は、ネイティブ命令の実行を引き起こすためのエミュレーション制御ルーチン47を含む。エミュレーション制御ルーチン47は、ネイティブCPU37に、1つまたは複数のすでに取得されたゲスト命令をエミュレートするネイティブ命令のルーチンを実行させ、そのような実行の終了時に、次のゲスト命令またはゲスト命令のグループの取得をエミュレートするために、制御を命令フェッチ・ルーチンに返してよい。ネイティブ命令46の実行は、データをメモリ38からレジスタに読み込むこと、データをレジスタからメモリに再び格納すること、あるいは変換ルーチンによって決定されたとおりに、何らかの種類の算術演算または論理演算を実行することを含んでよい。
【0084】
例えば、各ルーチンは、メモリに格納されてネイティブ中央処理装置37によって実行されるソフトウェアにおいて実装される。他の例では、ルーチンまたは動作のうちの1つまたは複数は、ファームウェア、ハードウェア、ソフトウェア、またはこれらの何らかの組合せにおいて実装される。エミュレートされたプロセッサのレジスタは、ネイティブCPUのレジスタ41を使用して、またはメモリ38内の位置を使用することによって、エミュレートされてよい。実施形態では、ゲスト命令43、ネイティブ命令46、およびエミュレータ・コード42は、同じメモリ内に存在してよく、または異なるメモリ・デバイス間で分配されてよい。
【0085】
エミュレートされ得る命令、コマンド、または呼び出しは、本発明の1つまたは複数の態様に従って、本明細書に記載された信頼できる実行環境呼び出しを含む。さらに、他の命令、コマンド、機能、動作、または本発明の1つまたは複数の態様、あるいはその組合せが、本発明の1つまたは複数の態様に従ってエミュレートされてよい。
【0086】
前述のコンピューティング環境は、使用可能なコンピューティング環境の例にすぎない。分割されない環境、分割された環境、クラウド環境、またはエミュレートされた環境、あるいはその組合せを含むが、これらに限定されない、他の環境が使用されてよく、実施形態はいずれか1つの環境に限定されない。本明細書ではコンピューティング環境のさまざまな例が説明されるが、本発明の1つまたは複数の態様が、多くの種類の環境と共に使用されてよい。本明細書で提供されるコンピューティング環境は、例にすぎない。
【0087】
各コンピューティング環境は、本発明の1つまたは複数の態様を含むように構成されることが可能である。
【0088】
1つまたは複数の態様がクラウド・コンピューティングに関連してよい。
【0089】
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において列挙された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意の他の種類のコンピューティング環境と組み合わせて実装され得る。
【0090】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含んでよい。
【0091】
特徴は、次のとおりである。
【0092】
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間およびネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
【0093】
幅広いネットワーク・アクセス:能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを通じてアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
【0094】
リソース・プール:プロバイダの計算リソースは、プールされて、マルチテナント・モデルを使用して複数の利用者に提供され、さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高いレベルの抽象化では、場所(例えば、国、州、またはデータセンター)を指定できることがある。
【0095】
迅速な順応性:能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
【0096】
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用状況は、監視、制御、および報告されることが可能であり、利用されるサービスのプロバイダと利用者の両方に透明性を提供する。
【0097】
サービス・モデルは、次のとおりである。
【0098】
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【0099】
サービスとしてのプラットフォーム(PaaS):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
【0100】
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選ばれたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0101】
デプロイメント・モデルは、次のとおりである。
【0102】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0103】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0104】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【0105】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0106】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【0107】
ここで
図8を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示されているように、クラウド・コンピューティング環境50は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード52を含んでいる。ノード52は、互いに通信してよい。ノード52は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組合せなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境50は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして提供できる。
図8に示されたコンピューティング・デバイス54A~Nの種類は、例示のみが意図されており、コンピューティング・ノード52およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0108】
ここで
図9を参照すると、クラウド・コンピューティング環境50(
図8)によって提供される機能的抽象レイヤのセットが示されている。
図9に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0109】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーク・コンポーネント66が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0110】
仮想化レイヤ70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75などの仮想的実体を提供できる抽象レイヤを備える。
【0111】
1つの例では、管理レイヤ80は、以下で説明される機能を提供してよい。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよび他のリソースの動的調達を行う。計測および価格設定82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書またはインボイスの送付を行う。1つの例では、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよび他のリソースの保護を行う。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行85は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0112】
ワークロード・レイヤ90は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育の配信93、データ解析処理94、トランザクション処理95、ならびにセキュア・ゲスト・イメージおよびセキュア・ゲスト・メタデータ更新処理96が挙げられる。
【0113】
本発明の態様は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる1つまたは複数のコンピュータ可読ストレージ媒体を含んでよい。
【0114】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-onlymemory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されているパンチカードまたは溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、電波または他の自由に伝搬する電磁波、導波管または他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの、それ自体が一過性の信号であると解釈されるべきではない。
【0115】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、あるいはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、またはワイヤレス・ネットワーク、あるいはその組合せ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0116】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行し、電子回路をカスタマイズしてよい。
【0117】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0118】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【0119】
コンピュータ可読プログラム命令は、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成する他のデバイス上で実行させる。
【0120】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、1つのステップとして実現されるか、同時に実行されるか、時間的に部分的または完全に重複する方法で実質的に同時に実行されるか、あるいは場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0121】
上記に加えて、顧客の環境の管理を提供するサービス・プロバイダによって、1つまたは複数の態様が提供されること、提示されること、デプロイされること、管理されること、サービス提供されることなどが行われてよい。例えば、サービス・プロバイダは、1人または複数の顧客のために1つまたは複数の態様を実行するコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方を作成すること、維持すること、サポートすることなどを行うことができる。その見返りとして、サービス・プロバイダは、例えばサブスクリプションまたは料金契約あるいはその両方に従って、顧客から支払いを受け取ってよい。追加または代替として、サービス・プロバイダは、1つまたは複数のサード・パーティへの広告コンテンツの販売から支払いを受け取ってよい。
【0122】
1つの態様では、1つまたは複数の実施形態を実行するために、アプリケーションがデプロイされてよい。1つの例として、アプリケーションのデプロイは、1つまたは複数の実施形態を実行するよう機能するコンピュータ・インフラストラクチャを提供することを含む。
【0123】
さらなる態様として、コンピュータ可読コードをコンピューティング・システムに統合することを含むコンピューティング・インフラストラクチャがデプロイされてよく、このコンピューティング・インフラストラクチャでは、コンピューティング・システムと組み合わせたコードが、1つまたは複数の実施形態を実行できる。
【0124】
さらなる態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含んでいる、コンピューティング・インフラストラクチャを統合するためのプロセスが提供されてよい。コンピュータ・システムは、コンピュータ可読媒体を備え、このコンピュータ可読媒体では、コンピュータ媒体が1つまたは複数の実施形態を含む。コンピュータ・システムと組み合わせたコードは、1つまたは複数の実施形態を実行できる。
【0125】
上ではさまざまな実施形態が説明されたが、それらは単なる例である。例えば、1つまたは複数の態様を組み込むため、または1つまたは複数の態様を使用するため、あるいはその両方のために、他のアーキテクチャのコンピューティング環境が使用され得る。さらに、さまざまな命令、コマンド、機能、呼び出し、または動作、あるいはその組合せが使用されてよい。さらに、さまざまな種類の構造体が使用されてよい。多くの変形が可能である。
【0126】
本明細書では、さまざまな態様が説明される。さらに、本発明の態様の思想を逸脱することなく、多くの変形が可能である。本明細書に記載された各態様または特徴およびその変形を、特に矛盾しない限り、任意の他の態様または特徴と組み合わせることができるということに、注意するべきである。
【0127】
さらに、他の種類のコンピューティング環境が、恩恵を受けることができ、使用され得る。例として、プログラム・コードの格納または実行あるいはその両方を行うのに適した、システム・バスを介して直接的または間接的にメモリ素子に結合された少なくとも2つのプロセッサを含んでいる、データ処理システムを使用できる。これらのメモリ素子は、例えば、プログラム・コードの実際の実行時に使用されるローカル・メモリ、バルク・ストレージ、および実行時にバルク・ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリを含む。
【0128】
入出力デバイスまたはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、および他の記憶媒体などを含むが、これらに限定されない)は、直接的に、または介在するI/Oコントローラを通じて、システムに結合され得る。ネットワーク・アダプタがシステムに結合され、介在するプライベート・ネットワークまたはパブリック・ネットワークを通じて、データ処理システムを、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにしてもよい。モデム、ケーブル・モデム、およびイーサネット(R)・カードは、使用可能なネットワーク・アダプタのうちの、ごくわずかの種類にすぎない。
【0129】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、制限することを意図していない。本明細書において使用されるとき、単数形「a」、「an」、および「the」は、文脈で特に明示的に示されない限り、複数形も含むよう意図されている。「備える」または「備えている」あるいはその両方の用語は、本明細書で使用される場合、記載された機能、整数、ステップ、動作、要素、またはコンポーネント、あるいはその組合せの存在を示すが、1つまたは複数の他の機能、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはその組合せの存在または追加を除外していないということが、さらに理解されるであろう。
【0130】
下の特許請求の範囲内のすべての手段またはステップおよび機能要素の対応する構造、材料、動作、および等価なものは、もしあれば、具体的に請求されるとき、他の請求される要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図されている。1つまたは複数の実施形態の説明は、例示および説明の目的で提示されているが、網羅的であることは意図されておらず、開示された形態に限定されない。多くの変更および変形が、当業者にとって明らかであろう。さまざまな態様および実際的な適用を最も適切に説明するため、および他の当業者が、企図されている特定の用途に適しているようなさまざまな変更を伴う多様な実施形態を理解できるようにするために、実施形態が選択されて説明された。
【手続補正書】
【提出日】2024-04-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピューティング環境内の処理を容易にするためのコンピュータ・プログラ
ムであって、前記コンピュータ・プログラ
ムはコンピュータ・システムに、
セキュア・ゲストによって、前記セキュア・ゲストの更新されたイメージを生成することと、
前記更新されたイメージの1つまたは複数の測定結果を計算することと、
前記セキュア・ゲストによって、前記1つまたは複数の測定結果を信頼できる実行環境に提供することと、
前記信頼できる実行環境から、前記更新されたイメージのメタデータを取得することであって、前記メタデータが、前記セキュア・ゲストのメタデータ、および前記1つまたは複数の測定結果を取得することに基づいて生成される、前記取得することとを含む方法を実行
させる、コンピュータ・プログラ
ム。
【請求項2】
前記方法が、
前記セキュア・ゲストによって、前記更新されたイメージが生成されるべきであることを示すイメージ更新要求構造体を取得することと、
前記イメージ更新要求構造体を前記信頼できる実行環境に提供することと、
前記イメージ更新要求構造体に基づいて、前記信頼できる実行環境から要求ハンドルを取得することであって、前記要求ハンドルが前記更新されたイメージを生成することにおいて使用される、前記取得することとをさらに
前記コンピュータ・システムに実行させる、請求項1に記載のコンピュータ・プログラ
ム。
【請求項3】
前記更新されたイメージを前記生成することが、
前記要求ハンドルを使用して、前記信頼できる実行環境に対して暗号鍵を要求することと、
前記セキュア・ゲストの更新されたプレーン・テキスト・イメージを構築することと、
前記暗号鍵を使用して前記更新されたプレーン・テキスト・イメージを暗号化し、暗号化されたイメージを取得することであって、前記暗号化されたイメージが前記更新されたイメージである、前記取得することとを含み、
前記1つまたは複数の測定結果を前記計算することが、前記暗号化されたイメージに基づいて、前記更新されたプレーン・テキスト・イメージの1つまたは複数の初期の測定結果を更新し、前記信頼できる実行環境に提供される前記1つまたは複数の測定結果を取得することを含み、前記要求ハンドルを使用して前記1つまたは複数の測定結果が提供される、請求項2に記載のコンピュータ・プログラ
ム。
【請求項4】
前記暗号鍵が、前記信頼できる実行環境から取得された、保護された鍵であり、前記保護された鍵が、前記信頼できる実行環境を呼び出す前記セキュア・ゲストのインスタンスによって排他的に使用され得、前記暗号鍵のプレーン・テキスト値が、前記セキュア・ゲストに知られていない、請求項3に記載のコンピュータ・プログラ
ム。
【請求項5】
前記更新されたプレーン・テキスト・イメージが、メモリの複数のページを含み、前記更新されたプレーン・テキスト・イメージを前記暗号化することが、前記保護された鍵を使用してメモリの前記複数のページを暗号化することを含む、請求項4に記載のコンピュータ・プログラ
ム。
【請求項6】
前記更新されたイメージの前記メタデータを前記取得することが、前記信頼できる実行環境で機能を呼び出して前記更新されたイメージの前記メタデータを作成することに基づき、前記呼び出しが、前記要求ハンドルおよび前記1つまたは複数の測定結果を引数として提供する、請求項2に記載のコンピュータ・プログラ
ム。
【請求項7】
前記引数が、前記更新されたイメージの他のメタデータをさらに含む、請求項6に記載のコンピュータ・プログラ
ム。
【請求項8】
前記イメージ更新要求構造体が完全性保護され、暗号化された部分を含み、及び前記信頼できる実行環境によって排他的に解釈可能である、請求項2に記載のコンピュータ・プログラ
ム。
【請求項9】
前記イメージ更新要求構造体の前記暗号化された部分が、イメージ更新要求を発行している前記セキュア・ゲストの前記メタデータの暗号化された部分内の機密データから導出されたデータを含む、請求項8に記載のコンピュータ・プログラ
ム。
【請求項10】
前記方法が、
前記イメージ更新要求構造体を前記信頼できる実行環境に提供することに基づいて、前記イメージ更新要求構造体に対する課題を前記信頼できる実行環境から取得することであって、前記課題が、前記イメージ更新要求構造体の暗号化された部分から取得された機密データに基づく、前記取得することと、
前記セキュア・ゲストによって、前記課題に対する応答を選択された実体から取得することと、
前記セキュア・ゲストから前記信頼できる実行環境に、前記課題に対する前記応答を提供することと、
前記課題に対する前記応答を提供することに基づいて、前記課題が成功したかどうかの指示を前記信頼できる実行環境から取得することと、
前記課題が成功することに基づいて、前記更新されたイメージの生成を続行することとをさらに
前記コンピュータ・システムに実行させる、請求項2に記載のコンピュータ・プログラ
ム。
【請求項11】
前記イメージ更新要求構造体が、前記更新されたイメージの前記メタデータを計算するために使用される、以前のセキュア・ゲスト・メタデータに対する1つまたは複数の変更を指定する1つまたは複数の指示およびデータを含む、請求項2に記載のコンピュータ・プログラ
ム。
【請求項12】
前記方法が、前記セキュア・ゲストの前記更新されたイメージおよび前記更新されたイメージの前記メタデータをブート・デバイスに格納することをさらに
前記コンピュータ・システムに実行させる、請求項1ないし11のいずれかに記載のコンピュータ・プログラ
ム。
【請求項13】
コンピューティング環境内の処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリと通信する少なくとも1つのプロセッサとを備え、前記コンピュータ・システムが方法を実行するように構成されており、前記方法が、
セキュア・ゲストによって、前記セキュア・ゲストの更新されたイメージを生成することと、
前記更新されたイメージの1つまたは複数の測定結果を計算することと、
前記セキュア・ゲストによって、前記1つまたは複数の測定結果を信頼できる実行環境に提供することと、
前記信頼できる実行環境から、前記更新されたイメージのメタデータを取得することであって、前記メタデータが、前記セキュア・ゲストのメタデータ、および前記1つまたは複数の測定結果を取得することに基づいて生成される、前記取得することとを含む、コンピュータ・システム。
【請求項14】
前記方法が、
前記セキュア・ゲストによって、前記更新されたイメージが生成されるべきであることを示すイメージ更新要求構造体を取得することと、
前記イメージ更新要求構造体を前記信頼できる実行環境に提供することと、
前記イメージ更新要求構造体に基づいて、前記信頼できる実行環境から要求ハンドルを取得することであって、前記要求ハンドルが前記更新されたイメージを生成することにおいて使用される、前記取得することとをさらに含む、請求項13に記載のコンピュータ・システム。
【請求項15】
前記更新されたイメージを前記生成することが、
前記要求ハンドルを使用して、前記信頼できる実行環境に対して暗号鍵を要求することと、
前記セキュア・ゲストの更新されたプレーン・テキスト・イメージを構築することと、
前記暗号鍵を使用して前記更新されたプレーン・テキスト・イメージを暗号化し、暗号化されたイメージを取得することであって、前記暗号化されたイメージが前記更新されたイメージである、前記取得することとを含み、
前記1つまたは複数の測定結果を前記計算することが、前記暗号化されたイメージに基づいて、前記更新されたプレーン・テキスト・イメージの1つまたは複数の初期の測定結果を更新し、前記信頼できる実行環境に提供される前記1つまたは複数の測定結果を取得することを含み、前記要求ハンドルを使用して前記1つまたは複数の測定結果が提供される、請求項14に記載のコンピュータ・システム。
【請求項16】
前記更新されたイメージの前記メタデータを前記取得することが、前記信頼できる実行環境で機能を呼び出して前記更新されたイメージの前記メタデータを作成することに基づき、前記呼び出しが、前記要求ハンドルおよび前記1つまたは複数の測定結果を引数として提供する、請求項14に記載のコンピュータ・システム。
【請求項17】
コンピューティング環境内の処理を容易にするコンピュータ実装方法であって、前記コンピュータ実装方法が、
セキュア・ゲストによって、前記セキュア・ゲストの更新されたイメージを生成することと、
前記更新されたイメージの1つまたは複数の測定結果を計算することと、
前記セキュア・ゲストによって、前記1つまたは複数の測定結果を信頼できる実行環境に提供することと、
前記信頼できる実行環境から、前記更新されたイメージのメタデータを取得することであって、前記メタデータが、前記セキュア・ゲストのメタデータ、および前記1つまたは複数の測定結果を取得することに基づいて生成される、前記取得することとを含む、コンピュータ実装方法。
【請求項18】
前記セキュア・ゲストによって、前記更新されたイメージが生成されるべきであることを示すイメージ更新要求構造体を取得することと、
前記イメージ更新要求構造体を前記信頼できる実行環境に提供することと、
前記イメージ更新要求構造体に基づいて、前記信頼できる実行環境から要求ハンドルを取得することであって、前記要求ハンドルが前記更新されたイメージを生成することにおいて使用される、前記取得することとをさらに含む、請求項17に記載のコンピュータ実装方法。
【請求項19】
前記更新されたイメージを前記生成することが、
前記要求ハンドルを使用して、前記信頼できる実行環境に対して暗号鍵を要求することと、
前記セキュア・ゲストの更新されたプレーン・テキスト・イメージを構築することと、
前記暗号鍵を使用して前記更新されたプレーン・テキスト・イメージを暗号化し、暗号化されたイメージを取得することであって、前記暗号化されたイメージが前記更新されたイメージである、前記取得することとを含み、
前記1つまたは複数の測定結果を前記計算することが、前記暗号化されたイメージに基づいて、前記更新されたプレーン・テキスト・イメージの1つまたは複数の初期の測定結果を更新し、前記信頼できる実行環境に提供される前記1つまたは複数の測定結果を取得することを含み、前記要求ハンドルを使用して前記1つまたは複数の測定結果が提供される、請求項18に記載のコンピュータ実装方法。
【請求項20】
前記更新されたイメージの前記メタデータを前記取得することが、前記信頼できる実行環境で機能を呼び出して前記更新されたイメージの前記メタデータを作成することに基づき、前記呼び出しが、前記要求ハンドルおよび前記1つまたは複数の測定結果を引数として提供する、請求項18に記載のコンピュータ実装方法。
【国際調査報告】