IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7418093初期プログラムロード機構を用いたセキュア・ゲストの起動
<>
  • 特許-初期プログラムロード機構を用いたセキュア・ゲストの起動 図1
  • 特許-初期プログラムロード機構を用いたセキュア・ゲストの起動 図2
  • 特許-初期プログラムロード機構を用いたセキュア・ゲストの起動 図3
  • 特許-初期プログラムロード機構を用いたセキュア・ゲストの起動 図4
  • 特許-初期プログラムロード機構を用いたセキュア・ゲストの起動 図5
  • 特許-初期プログラムロード機構を用いたセキュア・ゲストの起動 図6
  • 特許-初期プログラムロード機構を用いたセキュア・ゲストの起動 図7
  • 特許-初期プログラムロード機構を用いたセキュア・ゲストの起動 図8
  • 特許-初期プログラムロード機構を用いたセキュア・ゲストの起動 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-11
(45)【発行日】2024-01-19
(54)【発明の名称】初期プログラムロード機構を用いたセキュア・ゲストの起動
(51)【国際特許分類】
   G06F 21/53 20130101AFI20240112BHJP
   G06F 9/455 20180101ALI20240112BHJP
   G06F 21/60 20130101ALI20240112BHJP
   G06F 21/57 20130101ALI20240112BHJP
【FI】
G06F21/53
G06F9/455 150
G06F21/60 320
G06F21/57 350
【請求項の数】 12
(21)【出願番号】P 2021547735
(86)(22)【出願日】2020-03-06
(65)【公表番号】
(43)【公表日】2022-04-20
(86)【国際出願番号】 EP2020055971
(87)【国際公開番号】W WO2020182642
(87)【国際公開日】2020-09-17
【審査請求日】2022-08-24
(31)【優先権主張番号】16/296,304
(32)【優先日】2019-03-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ミハイロフスキー、ビクトル
(72)【発明者】
【氏名】インブレンダ、クラウディオ
【審査官】宮司 卓佳
(56)【参考文献】
【文献】米国特許出願公開第2011/0302400(US,A1)
【文献】米国特許出願公開第2015/0154031(US,A1)
【文献】特表2014-505286(JP,A)
【文献】特開2012-190441(JP,A)
【文献】G.Hunt, et.al.,Supporting protected computing on IBM Power Architecture,IBM Developer,米国,2018年03月22日
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/53
G06F 9/455
G06F 21/60
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
ホストサーバ上で実行されているハイパーバイザによって、仮想マシン(VM)を前記ホストサーバ上にディスパッチする要求を受け取ることと、
前記ハイパーバイザによって、前記VMを前記ホストサーバ上に非セキュア・モードでディスパッチすることであって、前記VMの暗号化されたイメージ及び暗号化されていないブートストラップ・コンポーネントを前記ホストサーバのメモリにロードすることと、前記暗号化されていないブートストラップ・コンポーネントに制御を移行することとを含み、前記暗号化されていないブートストラップ・コンポーネントはIPLパラメータを指定する命令及び初期プログラムロード(IPL)機構を利用するリブート命令を含み、前記IPLパラメータは前記VMの前記暗号化されたイメージの場所及び復号情報を含む、ディスパッチすることと、
IPLパラメータを指定する前記命令の実行に応答して、前記ハイパーバイザによって、指定されたIPLパラメータが妥当であるか否かを判断することと、
前記リブート命令の実行に応答して、前記ハイパーバイザによって、前記IPLパラメータが指定されたこと及び指定された前記IPLパラメータが妥当であると判断されたことに基づいて、前記ホストサーバ上の前記VMをセキュア・モードで再起動するように、前記IPLパラメータからの情報を用いてセキュア・インタフェース制御を呼び出すことと、
を含む、方法。
【請求項2】
前記再起動は、前記セキュア・インタフェース制御によって、前記VMの前記暗号化されたコンポーネントを復号することを含む、請求項1に記載の方法。
【請求項3】
前記ハイパーバイザによって前記VMがディスパッチされて非セキュア・モードにあるときには、前記VMのデータは前記ハイパーバイザによってアクセス可能である、請求項1から請求項2までのいずれか一項に記載の方法。
【請求項4】
前記VMが前記セキュア・モードにあるという判断に基づいて、前記ハイパーバイザが前記VMのあらゆるデータにアクセスすることを防止する、請求項1から請求項3までのいずれか一項に記載の方法。
【請求項5】
前記再起動を行うことは、
前記セキュア・インタフェース制御によって、前記復号情報に基づいて前記暗号化されたイメージを復号することと、
復号されたイメージに基づいて前記VMを再起動することと、
を含み、前記再起動の後、前記ハイパーバイザによる前記VMのあらゆるデータへのアクセスが防止される、
請求項1から請求項4までのいずれか一項に記載の方法。
【請求項6】
メモリと、
セキュア・インタフェース制御と、
前記メモリと前記セキュア・インタフェース制御とに結合された処理ユニットと、
を含むシステムであって、前記処理ユニットは、複数の仮想マシン(VM)をホストするハイパーバイザを実行するように構成され、前記ハイパーバイザは、VMがセキュア・モードにあるときには前記VMのあらゆるデータへの直接アクセスが禁じられており、前記ハイパーバイザは、
ホストサーバ上で実行されているハイパーバイザによって、VMを前記ホストサーバ上にディスパッチする要求を受け取ることと、
前記ハイパーバイザによって、前記VMを前記ホストサーバ上に非セキュア・モードでディスパッチすることであって、前記VMの暗号化されたイメージ及び暗号化されていないブートストラップ・コンポーネントを前記ホストサーバのメモリにロードすることと、前記暗号化されていないブートストラップ・コンポーネントに制御を移行することとを含み、前記暗号化されていないブートストラップ・コンポーネントはIPLパラメータを指定する命令及び初期プログラムロード(IPL)機構を利用するリブート命令を含み、前記IPLパラメータは前記VMの前記暗号化されたイメージの場所及び復号情報を含む、ディスパッチすることと、
IPLパラメータを指定する前記命令の実行に応答して、前記ハイパーバイザによって、指定されたIPLパラメータが妥当であるか否かを判断することと、
前記リブート命令の実行に応答して、前記ハイパーバイザによって、前記IPLパラメータが指定されたこと及び指定された前記IPLパラメータが妥当であると判断されたことに基づいて、前記ホストサーバ上の前記VMをセキュア・モードで再起動するように、前記IPLパラメータからの情報を用いて前記セキュア・インタフェース制御を呼び出すことと、
を行うように構成される、
システム。
【請求項7】
前記再起動は、前記セキュア・インタフェース制御によって、前記VMの前記暗号化されたコンポーネントを復号することを含む、請求項6に記載のシステム。
【請求項8】
前記ハイパーバイザによって前記VMがディスパッチされて非セキュア・モードにあるときには、前記VMのデータは前記ハイパーバイザによってアクセス可能である、請求項6から請求項7までのいずれか一項に記載のシステム。
【請求項9】
前記VMが前記セキュア・モードにあるという判断に基づいて、前記ハイパーバイザが前記VMのあらゆるデータにアクセスすることを防止する、請求項6から請求項8までのいずれか一項に記載のシステム。
【請求項10】
前記再起動を行うことは、
前記セキュア・インタフェース制御によって、前記復号情報に基づいて前記暗号化されたイメージを復号することと、
復号されたイメージに基づいて前記VMを再起動することと、
を含み、前記再起動の後、前記ハイパーバイザによる前記VMのあらゆるデータへのアクセスが防止される、
請求項6から請求項9までのいずれか一項に記載のシステム。
【請求項11】
処理ユニットにより実行されたときに、前記処理ユニットに、請求項1から請求項5までのいずれか一項に記載の方法を行わせる、コンピュータ・プログラム。
【請求項12】
請求項11に記載のコンピュータ・プログラムを格納した、コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にコンピュータ技術に関し、より具体的には、初期プログラムロード(IPL)機構を用いてセキュア・ゲストを起動することに関する。
【背景技術】
【0002】
クラウド・コンピューティング及びストレージは、サードパーティのデータセンタにおいてデータを格納及び処理する能力をユーザに提供する。クラウド・コンピューティングは、顧客がハードウェアを購入したり、又は物理的なサーバのための床面積を設けたりする必要なく、迅速かつ容易に仮想マシン(VM)をプロビジョニングできるようにする。顧客は、顧客の好み又は要求の変化に応じて、VMを拡張又は縮小することができる。典型的には、クラウド・コンピューティング・プロバイダが、プロバイダのデータセンタのサーバに物理的に常駐しているVMをプロビジョニングする。顧客は、多くの場合、VM内のデータのセキュリティを懸念するが、それはとりわけ、コンピューティングプロバイダが2以上の顧客のデータを同一のサーバに格納することが多いためである。顧客は、自分のコード/データとクラウド・コンピューティング・プロバイダとの間のセキュリティ、並びに、自分のコード/データとプロバイダのサイトで稼働している他のVMのコード/データとの間のセキュリティを望むことがある。さらに、顧客は、プロバイダの管理者からのセキュリティ、並びに、マシン上で稼働している他のコードの潜在的なセキュリティ違反に対するセキュリティを求めることがある。
【0003】
このようなセンシティブな状況に対応するために、クラウド・サービス・プロバイダは、セキュリティ制御を実装して、適切なデータ隔離及び論理的なストレージ分離を確実にすることができる。クラウド・インフラストラクチャの実装に仮想化が広範に使用されることで、クラウド・サービスの顧客に特有のセキュリティ上の懸念がもたらされるが、それは仮想化が、オペレーティングシステム(OS)と、コンピューティングであれ、ストレージであれ、さらにはネットワーキングであれ、基礎をなすハードウェアと間の関係を変えるためである。これは、仮想化を、それ自体が適切に構成され、管理され、保護されなければならない付加的な層として導入する。
【発明の概要】
【0004】
本発明の1つ又は複数の実施形態によれば、非限定的な例示的方法は、ホストサーバ上で実行されているハイパーバイザによって、仮想マシン(VM)をホストサーバ上にディスパッチする要求を受け取ることを含む。VMは、ハイパーバイザによってホストサーバ上にディスパッチされる。VMはリブート命令を含む。リブート命令は、ハイパーバイザによってトリガされて、VMをセキュア・モードで再起動する。1つ又は複数の実施形態の技術的効果及び利益は、非セキュアVMによって実行されているリブート命令を用いてセキュアVMを起動する能力を含み得る。
【0005】
本発明の付加的又は代替的な実施形態によれば、リブート命令は、初期プログラムロード(IPL)機構を利用する。技術的効果及び利益は、標準的なIPL機構を用いてセキュアVMを起動する能力を含み得る。
【0006】
本発明の付加的又は代替的な実施形態によれば、ディスパッチすることは、VMの暗号化されたイメージをホストサーバのメモリにロードすること、及び、リブート命令を含む暗号化されていないブートストラップ・コンポーネントをメモリにロードすることを含む。技術的な効果及び利益は、ハイパーバイザが、最初にVMのイメージを復号することなく、非セキュア・モードでVMを起動する能力を含み得る。
【0007】
本発明の付加的又は代替的な実施形態によれば、ディスパッチすることは、暗号化されていないブートストラップ・コンポーネントに制御を移行することをさらに含む。技術的効果及び利益は、ハイパーバイザが、最初にVMのイメージを復号することなく、非セキュア・モードでVMを起動し、その後、ブートストラップ・コンポーネントに制御を移行し、セキュア・モードでVMを再起動する能力を含み得る。
【0008】
本発明の付加的又は代替的な実施形態によれば、VMは、ディスパッチすることの後、暗号化されたコンポーネントを含む。技術的効果及び利益は、ハイパーバイザが、最初にVMのイメージを復号することなく、非セキュア・モードでVMを起動する能力を含み得る。
【0009】
本発明の付加的又は代替的な実施形態によれば、再起動は、VMの暗号化されたコンポーネントを復号することを含む。技術的効果及び利益は、再起動プロセスの一部として、暗号化されたVMイメージを復号することを含み得る。
【0010】
本発明の付加的又は代替的な実施形態によれば、ハイパーバイザによってディスパッチされたVMは、非セキュア・モードにあり、VMのデータはハイパーバイザによってアクセス可能である。技術的効果及び利益は、ハイパーバイザが、最初にVMのイメージを復号することなく、非セキュア・モードでVMを起動する能力を含み得る。
【0011】
本発明の付加的又は代替的な実施形態によれば、VMがセキュア・モードにあるという判断に基づいて、ハイパーバイザがVMのあらゆるデータにアクセスすることを防止する。技術的な効果及び利点は、セキュアVM環境を提供する能力を含み得る。
【0012】
本発明の付加的又は代替的な実施形態によれば、ホストサーバ上のVMは、VMの暗号化されたイメージを含む。さらに、リブート命令をトリガすることは、ハイパーバイザがセキュア・インタフェース制御を呼び出し、セキュア・モードで再起動を行うことを含み、ハイパーバイザは、ホストサーバ上のVMの暗号化されたイメージの場所及び復号情報を指定する。
【0013】
本発明の付加的又は代替的な実施形態によれば、再起動を行うことは、セキュア・インタフェース制御によって、復号情報に基づいてVMを復号することを含む。また、復号されたVMに基づいてVMを再起動することも含み、再起動の後、ハイパーバイザによるVMのあらゆるデータへのアクセスが防止される。
【0014】
本発明の他の実施形態では、上述した方法の特徴をコンピュータ・システム及びコンピュータ・プログラム製品において実装する。
【0015】
付加的な特徴及び利点は、本開示の技術によって実現される。本発明の他の実施形態及び態様は、本明細書で詳細に説明され、本発明の一部とみなされる。本発明を利点及び特徴とともにより良く理解するために、説明及び図面を参照されたい。
【図面の簡単な説明】
【0016】
本明細書に記載された排他的権利の詳細は、本明細書の最後にある特許請求の範囲において具体的に指摘され、明確に主張されている。本発明の実施形態の前述及び他の特徴及び利点は、添付の図面と併せて解釈される以下の詳細な説明から明らかになる。
【0017】
図1】本発明の1つ又は複数の実施形態による、初期プログラムロード(IPL)機構を用いてゲストを起動するシステムの概略図を示す。
図2】本発明の1つ又は複数の実施形態による、初期プログラムロード(IPL)機構を用いてセキュア・ゲストを起動するプロセスのフロー図を示す。
図3】本発明の1つ又は複数の実施形態による、ホストサーバ上にロードされたセキュア・ゲストを含むシステムの概略図を示す。
図4】本発明の1つ又は複数の実施形態によるセキュア・ゲストを起動するためのIPL情報ブロックを示す。
図5】本発明の1つ又は複数の実施形態によるセキュア・ゲストを起動するためのプロセスフローを示す。
図6】本発明の1つ又は複数の実施形態によるクラウド・コンピューティング環境を示す。
図7】本発明の1つ又は複数の実施形態による抽象化モデル層を示す。
図8】本発明の1つ又は複数の実施形態によるシステムを示す。
図9】本発明の1つ又は複数の実施形態による処理システムを示す。
【0018】
本明細書に描かれている図は例示的なものである。本発明の精神から逸脱することなく、図又はそこに描かれた動作に対する多くのバリエーションが可能である。例えば、動作を異なる順序で行うことができ、又は、動作を追加、削除又は修正することができる。また、「結合」という用語及びそのバリエーションは、2つの要素の間に通信経路があることを表しており、要素間に介在する要素/接続を有さない直接的な接続を意味するものではない。これらのバリエーションはすべて本明細書の一部とみなされる。
【発明を実施するための形態】
【0019】
本発明の1つ又は複数の実施形態によれば、ホストサーバ上で実行されるゲスト、すなわち仮想マシン(VM)が、セキュア・モード(secure mode)への移行を要求できるようにする、新規な初期プログラムロード(IPL)機構が提供される。セキュア・モードでは、ハイパーバイザはVMのデータに対するアクセス権を有さない。本発明の1つ又は複数の実施形態によれば、VMがセキュア・モードで実行されているとき、ハードウェアもしくはファームウェア又はその両方において実装されたセキュア・インタフェース制御を用いて、ホストサーバ上で実行されているセキュア・ゲストと他のゲストとの間の隔離が提供される。
【0020】
本発明の1つ又は複数の実施形態によれば、VMの暗号化されたイメージが、暗号化されていないブートストラップ・コンポーネントとともにホストサーバのVMメモリにロードされる。ブートストラップ・コンポーネントは、VMの暗号化されたイメージのすべてのメモリページに関する情報、並びに、イメージを復号してVMをセキュア・モードで(すなわち、セキュア・ゲストとして)再起動する際に用いるメタデータ構造に対するアクセス権を有する。本発明の1つ又は複数の実施形態によれば、メタデータ構造は、使用することができるオペレーティング・システム・イメージの連続した領域のリストも含む。当該分野で知られるように、オペレーティング・システムのすべてのメモリページを個別にリスト化するのに代わり、それぞれが開始ページとページ数とを含む領域のリストは、空き領域を節約し、処理を高速化することができる。例えば、仮定的なオペレーティング・システム・イメージが0、1、2、3、6及び7ページに存在する場合、これを(0,4)及び(6,2)と特定することができる。
【0021】
本発明の1つ又は複数の実施形態によれば、ブートストラップ・コンポーネントは、新規フォーマットのIPL情報ブロックを準備し、例えば「Diagnose308 Subcode5」を用いてIPL情報ブロックを設定し、例えば「Diagnose308 Subcode3」又は新たなコードを用いてIPLを行うことによって、リブート、すなわち再起動の動作をトリガする。IPL情報ブロックは、イメージ鍵及び完全性の値(integrity value)を有するセキュア実行(SE)ヘッダと、復号が必要なメモリ領域のリストと、イメージのすべてのページの暗号化に用いられた初期化ベクトル(IV)とを含むことができる。従来の環境では、IPL情報ブロックにはブートソースの識別が含まれており、これはディスクデバイスのアドレスやCDROMのような名称などとすることができる。本発明の1つ又は複数の実施形態によって実装されるセキュア環境の場合、ブートソース識別情報は、暗号化鍵と、復号が必要なメモリ領域とを含む。用いられる暗号化方法に応じて、本発明の1つ又は複数の実施形態は、IVを実装して、暗号化にランダム性を付加する。メモリ領域の各々に対して一意のIVを提供することができる。IVを利用するこのタイプの暗号化方法を用いて、暗号化の質を向上させることができる。例えば、2つの同一のメモリページが同じ秘密鍵を用いて、しかし異なるIVを用いて暗号化された場合、暗号化されたコンテンツは異なるものとなり、敵対者はコンテンツが同一のものであると知ることはできなくなる。
【0022】
「Diagnose」は、ゲスト・オペレーティング・システムがハイパーバイザと対話できるようにする命令の一例である。Diagnose命令は、IBM z Systems(登録商標)で用いられており、Diagnose308は、特に、プログラムに向けられた(program-directed)IPL(ゲストがリブートを要求できる)動作に用いられる。Subcode5を用いてIPLパラメータ(例えば、用いるブートデバイス)を設定し、Subcode3を用いて、Subcode5によって事前に指定されたブートデバイスからのリブートをトリガする。オペレーティング・システム内からのリブートを要求する機構は、アーキテクチャに依存する。一部のx86マシンでは、市販のソフトウェアツールを用いてブートデバイスを変更することができる。
【0023】
本発明の1つ又は複数の実施形態によれば、ハイパーバイザは、SEヘッダを含むIPL情報ブロックからの情報を用いて、セキュア・インタフェース制御(本明細書では「ウルトラバイザ」とも呼ばれる)を呼び出し、セキュア・ゲスト構成を作成し、暗号化されたVMイメージのアンパック、すなわち復号を行う。アンパックが成功した場合、アンパックされたVMが制御を獲得し、セキュア・モードで実行される。アンパックが失敗した場合、VMは非セキュア・モードでディスエーブルにされた待機状態に入る。
【0024】
ホスト・ハイパーバイザの制御下でゲストとして稼働しているVMは、そのハイパーバイザに依存して、そのゲストに対して透過的に仮想化サービスを提供する。これらのサービスは、セキュア・エンティティと信頼されていない別のエンティティとの間の、従来はこの別のエンティティによるセキュア・リソースへのアクセスを許容する、あらゆるインタフェースに適用することができる。これらのサービスには、メモリ管理、命令エミュレーション、及び割込み処理が含まれるが、これらに限定されるものではない。例えば、割込み及び例外インジェクション(interrupt and exception injection)の場合、ハイパーバイザは典型的には、ゲストのプレフィックス・エリア(ローコア)で読出しもしくは書込み又はその両方を行う。本明細書で用いられる「仮想マシン」又は「VM」という用語は、物理的マシン(コンピューティング・デバイス、プロセッサなど)及びその処理環境(オペレーティング・システム(OS)、ソフトウェア・リソースなど)の論理的表現を指す。VMは、基礎をなすホストマシン(物理的プロセッサ又はプロセッサの組)上で実行されるソフトウェアとして維持される。ユーザ又はソフトウェア・リソースの視点からは、VMはそれ自体の独立した物理的マシンのように見える。本明細書で用いられる「ハイパーバイザ」及び「VMモニタ(VMM)」という用語は、複数のVMが同一のホストマシン上で複数の(場合によっては異なる)OSを用いて実行することを管理及び許可する処理環境又はプラットフォームサービスのことを指す。VMのデプロイには、VMのインストールプロセス及びVMのアクティベーション(又は起動)プロセスが含まれることを理解すべきである。別の例では、VMのデプロイには、VMのアクティベーション(又は起動)プロセスが含まれる(例えば、VMが事前にインストールされている場合又は既に存在している場合)。
【0025】
しかしながら、セキュア・ゲストを促進にするには、ハイパーバイザとセキュア・ゲストとの間に、ハイパーバイザがVMからのデータにアクセスできないように付加的なセキュリティが必要とされるので、上述のようなサービスを提供できないという技術的課題が存在する。
【0026】
現在利用可能な技術的解決法では、ハイパーバイザ(例えば、IBM(登録商標)によるz/VM(登録商標)又はオープンソースソフトウェアであるKernel Based Virtual machine(KVM))は、Start-Interpretive-Execution(SIE)命令を発行することによって、物理的処理ユニット又はホストサーバ上で新たなVMを起動する。VMの状態とその特性の一部は、SIE命令のオペランド(典型的には第2オペランド)によって指示される制御ブロックに(状態記述(state description)すなわち「SD」として)保存される。こうした場合、ハイパーバイザはVMに対するデータの制御権を有し、場合によって、こうした制御権は、VM上で実行されている命令を解釈するために必要とされる。既存のハイパーバイザは、SIE命令を通じてこのようなインタフェースを用いることに依存して、VMを起動する。
【0027】
本明細書に記載のセキュア実行は、セキュア・ストレージと非セキュア・ストレージとの間、並びに、異なるセキュア・ユーザに属するセキュア・ストレージ間の隔離を保証するハードウェア機構を提供する。セキュア・ゲストには、「信頼できない(untrusted)」ハイパーバイザとセキュア・ゲストとの間の付加的なセキュリティが提供される。そのためには、ハイパーバイザが通常はゲストに代わって行う機能の多くをマシンに組み込む必要がある。セキュア・インタフェース制御は、ハイパーバイザとセキュア・ゲストとの間にセキュア・インタフェースを提供する。セキュア・インタフェース制御は、ハードウェアと連携してこの付加的なセキュリティを提供する。ウルトラバイザ(UV)という用語は、本明細書において、本発明の1つ又は複数の実施形態によって実装することができるセキュア・インタフェース制御の一例を指すために用いられる。
【0028】
セキュア・インタフェース制御は、一例では、内部の、セキュアな信頼できるハードウェアもしくはファームウェア又はその両方で実装される。セキュア・ゲスト又はエンティティのために、セキュア・インタフェース制御は、セキュア環境の初期化及び維持、並びにハードウェア上のこれらのセキュア・エンティティのディスパッチの協調を提供する。セキュア・ゲストがデータをアクティブに使用し、それがホストストレージに常駐している間、そのデータはセキュア・ストレージに「平文で(in the clear)」保持される。セキュア・ストレージにアクセスできるのは、その単一のセキュア・ゲストだけであり、このことはハードウェアによって厳密に強制されている。すなわち、セキュア・インタフェース制御は、あらゆる非セキュア・エンティティ(ハイパーバイザ又は他の非セキュア・ゲストを含む)又は別のセキュア・ゲストがそのデータにアクセスすることを防ぐ。この例では、セキュア・インタフェース制御は、ファームウェアの最下位レベルの信頼された部分として稼働する。最下位レベル、又はミリコードは、実際にはハードウェアの拡張であり、z/architectureで定義された複雑な命令及び機能を実装するために用いられる。ミリコードは、ストレージのすべての部分に対するアクセス権を有し、そのストレージは、セキュア実行という文脈において、それ自体のセキュアUVストレージ、非セキュア・ハイパーバイザ・ストレージ、セキュア・ゲストストレージ、及び共有ストレージを含む。これにより、セキュア・ゲスト又はそのゲストをサポートするハイパーバイザが必要とするあらゆる機能を提供することができる。また、セキュア・インタフェース制御はハードウェアに対する直接アクセス権を有するので、セキュア・インタフェース制御によって確立された条件の制御下で、ハードウェアが効率的にセキュリティチェックを提供することができる。
【0029】
本発明の1つ又は複数の実施形態は、暗号化されたVMイメージを利用する既存のシステムに対する技術的改善を提供する。既存のシステムは、ホストマシン上でVMを起動する前に、暗号化されたVMイメージを復号する。この手法の欠点は、VMイメージが暗号化されているかどうかを判断し、ホストマシン上でVMをディスパッチ又は起動する前に復号を行うために、ハイパーバイザにおいて専用のコンピュータ命令が必要とされることである。本発明の1つ又は複数の実施形態では、ハイパーバイザのディスパッチコードの更新も必要とせず、また、VMがホストマシン上で起動される前に、VMイメージが暗号化されていることをハイパーバイザが認識することも必要としない。さらに、ひとたびセキュアVMが起動され、ハイパーバイザがそのセキュアVMのいずれのデータに対してもアクセス権を有さない場合であっても、ハイパーバイザを利用してセキュアVMを起動することができる。
【0030】
本発明の1つ又は複数の実施形態は、複数のVMをホストするホストサーバ上でVMを実行するためのセキュア環境を提供することによって、既存のシステムに対する技術的改善を提供する。本発明の1つ又は複数の実施形態の実用的なアプリケーションは、ホストマシン上で実行されるセキュア・ゲストのあらゆるデータへの(意図的又は非意図的な)無許可アクセスを防止する機能を含む。
【0031】
ここで図1を参照すると、本発明の1つ又は複数の実施形態による、IPL機構を用いてセキュア・ゲストを起動するためのシステム100の概略図が全般的に示される。図1に示すシステム100は、ホストサーバのゲストアドレス空間102と、基本入力/出力システム(BIOS)104、すなわちローダを含むホストディスクと、セキュア・ゲストのオペレーティング・システム・コンポーネントを格納するゲストディスクとを含む。本明細書では、「ゲスト」と「仮想マシン」又は「VM」という用語は、互換的に使用される。図1に示すセキュア・ゲストのオペレーティング・システム・コンポーネントは、暗号化されていないブートストラップ・コンポーネント106と、ゲストの暗号化されたイメージ108とを含む。本発明の1つ又は複数の実施形態によれば、ホストサーバ上で実行されているハイパーバイザは、ゲストをゲストアドレス空間102にロードするように命令される。ハイパーバイザは、ゲストのイメージがこの場合はゲストディスク上のどこにあるか、という情報を受け取り、BIOS104を始動してオペレーティング・システム・コンポーネントをゲストアドレス空間102にロードする。
【0032】
BIOS104がオペレーティング・システム・コンポーネントをゲストアドレス空間102にロードし終わると、ゲストはハイパーバイザには非セキュア・ゲストに見える。ハイパーバイザは、ゲストのイメージが暗号化されており、現在、実行可能(operational)ではないことに気付かない。ハイパーバイザは、アドレスが指定されているブートストラップ・コンポーネント106に制御を移行し、これがウルトラバイザによるセキュア・モードでのゲストの初期プログラムロード(IPL)、すなわち再起動をトリガする。IBM Z(登録商標)実装では、オペレーティング・システム・コンポーネントを有するディスクには、コンポーネントがディスク上のどこに存在するか、どのメモリ位置にロードしなければならないか、及び初期ロードが完了した後に実行すべき最初の命令のアドレス(すなわち、ブートストラップ・コンポーネントの起動アドレス)を記述した隠しブートマップ・ファイルが収容されている。1つ又は複数の実施形態は、オペレーティング・システムの実行を起動するために用いられる固定メモリアドレスを有することができる他のアーキテクチャによって、実装することができる。
【0033】
図1に示すように、ブートストラップ・コンポーネント106は、ハイパーバイザによって実行され、セキュア・モードへの遷移をトリガするブートストラップコード、並びに、ウルトラバイザによって用いられ、ゲストの暗号化されたイメージ108を復号するメタデータを含むSEヘッダを含む。
【0034】
ここで図2を参照すると、本発明の1つ又は複数の実施形態による、初期プログラムロード(IPL)機構を用いてセキュア・ゲストを起動するためのプロセス200のフロー図が全般的に示される。図2に示す処理は、ホストマシン上で実行されるハイパーバイザとウルトラバイザとの組合せによって行うことができる。図2に示す処理は、図1のゲストの暗号化されたイメージ108及びブートストラップ・コンポーネント106などのオペレーティング・システム・コンポーネントが、図1のゲストアドレス空間102などのホストサーバのメモリにロードされ、制御がブートストラップ・コンポーネントに移行された後に行われる。
【0035】
ブロック202において、ゲスト(例えば、ゲスト内で稼働しているブートストラップコード)は、ハイパーバイザを呼び出し、IPLパラメータを設定する。IPLパラメータは、SEヘッダ、メモリ領域、及び復号に用いられる初期化ベクトル(IV)を含むことができるが、これらに限定されない。本明細書では、「SEヘッダ」という用語は、オペレーティング・システム・イメージの復号に用いられる鍵など、オペレーティング・システムに関するセンシティブな情報を含むデータ構造を指す。この情報はセンシティブなので、SEヘッダの一部を暗号化し、セキュア制御インタフェースのみがSEヘッダ内のこのデータを復号できるようにする必要がある。メモリ領域は、暗号化されたイメージの中で、どのメモリ領域の復号が必要かを指定する。本発明の1つ又は複数の実施形態によれば、秘密鍵/公開鍵の対を用いて暗号化及び復号が行われる。暗号化を行う人物又はエンティティに知られている公開鍵を用いてVMイメージを暗号化することができ、ウルトラバイザに知られている秘密鍵を用いてVMイメージを復号することができる。本発明の1つ又は複数の実施形態は、当該技術分野で知られている任意の暗号化/復号スキームを実装することができ、秘密鍵/公開鍵の対は、実装することができるスキームの一例に過ぎない。SEヘッダに含まれる鍵は保護されているので、イメージ暗号化鍵は対称鍵(復号にも用いられる)であってもよい。
【0036】
図2のブロック204において、ハイパーバイザは、IPLパラメータが妥当かどうかを判断する。この妥当性検査(validation)は、SEヘッダの存在及び少なくとも1つのメモリ領域の存在をチェックすることと、複数のメモリ領域が重複していないことを確認することとを含むことができる。ブロック204において、ハイパーバイザは、妥当性チェック(validity check)を行い、パラメータを、ハイパーバイザが所有するメモリ位置であってゲストはアクセスできないメモリ位置に格納する。したがって、パラメータの存在は、その妥当性の十分な指標となる。
【0037】
ブロック204においてIPLパラメータが妥当でないと判断された場合、処理はブロック206で続き、ゲストは非セキュア・モードでの実行を継続する。ブロック204においてIPLパラメータが妥当であると判断された場合、処理はブロック208で続き、ゲストはハイパーバイザを呼び出してリブートを行う。ブロック210で、ハイパーバイザは、IPLパラメータが供給され、かつチェックされたかどうか検証する。
【0038】
図2のブロック210において、IPLパラメータが供給されておらず、かつチェックされていないと判断された場合、処理はブロック206で続き、ゲストは非セキュア・モードでの実行を継続する。ブロック210において、IPLパラメータが供給されかつチェックされたと判断された場合、処理はブロック212で続く。ブロック212において、ハイパーバイザはウルトラバイザを呼び出して、セキュア・ゲスト構成を作成し、暗号化されたイメージをアンパック(例えば、復号)し、ゲストのセキュア実行を起動する。ブロック214において、イメージが正常に復号されたかどうかが判断され、オプションで検証される。本発明の1つ又は複数の実施形態によれば、復号は、イメージに対して計算されたチェックサム又はハッシュをSEヘッダに格納されたチェックサムと比較することによって検証される。イメージが復号され、検証された場合、処理はブロック216で続き、ゲストはウルトラバイザの制御下で、セキュア・モードで(すなわち、セキュア・ゲストとして)稼働する。イメージが復号及び検証されなかった場合、処理はブロック218で続き、ゲストは非セキュア・モードでディスエーブルにされた待機状態に入る。
【0039】
ここで図3を参照すると、本発明の1つ又は複数の実施形態による、ホストサーバ上にロードされたセキュア・ゲストを含むシステム300の概略図が全般的に示される。図3に示すシステム300は、暗号化されたイメージが復号され、図2に示すようなプロセスを用いてホストマシン上でセキュア・システムが起動された後の、図1のシステム100の状態を示す。図3に示すように、イメージの暗号化されていないバージョン308がゲストアドレス空間102にロードされ、ゲストのカーネルに制御が与えられてセキュア・ゲストが起動される。
【0040】
ここで図4を参照すると、本発明の1つ又は複数の実施形態による、セキュア・ゲストを起動するためのIPL情報ブロック400の概略図が全般的に示されている。ブロック402に示すIPL情報ブロックの全体的なレイアウトは、典型的なIPLブロックのレイアウトであり、ブロックの長さ(例えば、バイト単位)と、バージョン番号と、ディスクデバイスアドレス、「CDROM」のような一般的なブートデバイスの名称、又はネットワークアドレスといった、ロードデバイス情報のためのパラメータブロックと、ブート方法が情報ブロックの最初の部分に収まらないパラメータを必要とする場合に用いることができる付加的なシステム制御パラメータ(SCP)データのためのパラメータブロックと、を指定するためのフィールドを含む。ロードデバイス情報のためのパラメータブロック404もまたタイプフィールド以外は典型的なIPLブロックのレイアウトであり、タイプフィールドは、本発明の1つ又は複数の実施形態によれば、行われている新規タイプのIPLとしてメモリも(ディスク、ネットワークなどとともに)含む。これにより、IPLは、暗号化されたVMイメージが配置されているホストサーバのメモリからデータをロードすることができる。さらに、ロードデバイス固有パラメータブロックは、ハイパーバイザによって復号を行うために用いられる新たなタイプの情報、すなわち復号を行うために用いられる情報を有するSEヘッダ406と、メモリ内のイメージの構造を記述する情報を含むことができるイメージ情報408とを含む。
【0041】
ここで図5を参照すると、本発明の1つ又は複数の実施形態による、セキュア・ゲストを起動するためのプロセスフロー500が全般的に示される。図5に示す処理は、ホストサーバ上で実行されるハイパーバイザによって行うことができる。ブロック502において、ホストサーバ上で実行されているハイパーバイザは、VMをホストサーバ上にディスパッチする要求を受け取る。ブロック504において、VMは、非セキュア・モードでホストサーバ上にディスパッチされる。VMが非セキュア・モードにあるとき、VMのデータはハイパーバイザによってアクセス可能である。VMは、VMの再起動に用いられるリブート命令を含むブートストラップ・コンポーネントを含む。本発明の1つ又は複数の実施形態によれば、ディスパッチすることは、VMの暗号化されたイメージをホストサーバのメモリにロードすることと、リブート命令を含む暗号化されていないブートストラップ・コンポーネントをメモリにロードすることとを含む。ディスパッチすることは、制御をブートストラップ・コンポーネントに移行することも含む。
【0042】
ブロック506において、本発明の1つ又は複数の実施形態により、ブートストラップ・コンポーネントによってセキュアリブートが開始される。ブートストラップ・コンポーネントは、(1)IPL情報を設定し、(2)リブートを要求する。(1)及び(2)の両方がハイパーバイザによってインターセプトされ、ハイパーバイザは(2)に応答して、復号を行う制御をウルトラバイザに渡す。復号が完了すると、ウルトラバイザはハイパーバイザをバイパスして、いまやセキュアなゲストに制御を移行する。本発明の1つ又は複数の実施形態によれば、再起動は、VMの暗号化されたコンポーネントを復号することを含む。VMがセキュア・モードにあるとき、ハイパーバイザはVMのいかなるデータにもアクセスできないようになっている。
【0043】
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書に記載される教示の実施は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在既知の又は後で開発される他のあらゆるタイプのコンピューティング環境とともに実施することができる。
【0044】
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及び解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つのデプロイメント・モデルを含むことができる。
【0045】
特徴は、以下の通りである。
【0046】
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
【0047】
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
【0048】
リソース・プール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、複数のコンシューマにサービスを提供するためにプールされ、異なる物理及び仮想リソースが、要求に応じて動的に割り当て及び再割り当てされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないという点で位置とは独立しているといえるが、より抽象化レベルの高い位置(例えば、国、州、又はデータセンタ)を特定できる場合がある。
【0049】
迅速な弾力性:機能を、迅速かつ弾力的に、場合によっては自動的に、プロビジョニングしてすばやくスケールアウトし、迅速に解放してすばやくスケールインすることができる。コンシューマにとって、プロビジョニングに利用可能な機能は、多くの場合、無制限であるように見え、いつでもどんな量でも購入できる。
【0050】
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告して、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
【0051】
サービス・モデルは以下の通りである。
【0052】
Software as a Service(SaaS):コンシューマに提供される機能は、クラウド・インフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。これらのアプリケーションには、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インタフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を想定される例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
【0053】
Platform as a Service(PaaS):コンシューマに提供される機能は、プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが作成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対する制御を有する。
【0054】
Infrastructure as a Service(IaaS):コンシューマに提供される機能は、コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアをデプロイして動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングすることである。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択に対する限定された制御を有する。
【0055】
デプロイメント・モデルは以下の通りである。
【0056】
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。これは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
【0057】
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。これは、それらの組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
【0058】
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループによって利用可能であり、クラウド・サービスを販売する組織によって所有される。
【0059】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は専用技術(例えば、クラウド間の負荷平衡のためのクラウド・バースティング)によって互いに結び付けられた、2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)の組合せである。
【0060】
クラウド・コンピューティング環境は、サービス指向であり、ステートレス性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置く。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0061】
ここで図6を参照すると、例示的なクラウド・コンピューティング環境50を示す。図示されるように、クラウド・コンピューティング環境50は、クラウド・コンシューマによって用いられる例えば携帯情報端末(PDA)又は携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、もしくは自動車コンピュータ・システム54N又はそれらの組合せ等のローカル・コンピューティング・デバイスが通信することができる1つ又は複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。これらを物理的又は仮想的にグループ化(図示せず)して、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウドもしくはハイブリッド・クラウド又はこれらの組合せ等の1つ又は複数のネットワークにすることができる。これによりクラウド・コンピューティング環境50は、インフラストラクチャ、プラットフォームもしくはソフトウェア又はそれらの組合せを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして提供することができるようになる。図6に示されるコンピューティング・デバイス54A-Nのタイプは単なる例示として意図されており、コンピューティング・ノード10及びクラウド・コンピューティング環境50は、あらゆるタイプのネットワークもしくはネットワークアドレス指定可能な接続(例えば、ウェブ・ブラウザを用いて)又はその両方を介して、あらゆるタイプのコンピュータ化された装置と通信することができることが理解される。
【0062】
ここで図7を参照すると、図6のクラウド・コンピューティング環境50によって提供される機能抽象化層の組を示す。図7に示されるコンポーネント、層及び機能は、単なる例証を意図したものであり、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
【0063】
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレードサーバ64、ストレージデバイス65、並びにネットワーク及びネットワーキング・コンポーネント66を含む。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67及びデータベース・ソフトウェア68を含む。
【0064】
仮想化層70は、仮想エンティティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティング・システム74、並びに仮想クライアント75を提供することができる抽象層を提供する。
【0065】
一例において、管理層80は、以下で説明される機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格設定82は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別検証、並びにデータ及び他のリソースに対する保護を提供する。ユーザ・ポータル83は、コンシューマ及びシステム管理者に対してクラウド・コンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるようにクラウド・コンピューティング・リソースの割当て及び管理を提供する。サービスレベル・アグリーメント(SLA)計画及び履行85は、SLAに従って将来的な必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【0066】
ワークロード層90は、クラウド・コンピューティング環境をそのために利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例は、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室教育配信93、データ解析処理94、トランザクション処理95、並びにセキュア・ゲストのディスパッチ96を含む。これらは単にいくつかの例に過ぎず、他の実施形態において、層は、異なるサービスを含むことができることが理解される。
【0067】
ここで図8を参照すると、本発明の1つ又は複数の実施形態によるシステム800が示されている。システム800は、ネットワーク165を介して1つ又は複数のクライアント・デバイス20A~20Cと通信する例示的なノード10(例えば、ホスティング・ノード)を含む。ノード10は、クラウド・コンピューティング・プロバイダの、データセンタ又はホストサーバとすることができる。ノード10は、1つ又は複数のVM15(15A~15N)のデプロイを容易にするハイパーバイザ12を実行する。ノード10は、ハイパーバイザ12が1つ又は複数のサービスをVM15に提供することを容易にするハードウェア/ファームウェア層11をさらに含む。既存の技術的解決策では、ハイパーバイザ12とハードウェア/ファームウェア層11との間の通信、ハードウェア/ファームウェア層11と1つ又は複数のVM15との間の通信、ハイパーバイザ12と1つ又は複数のVM15との間の通信、及びハードウェア/ファームウェア層11を介したハイパーバイザ12からVM15への通信が存在する。セキュアなVM環境を促進するために、本発明の1つ又は複数の実施形態によるホスティング・ノード10は、ハイパーバイザ12と1つ又は複数のVM15との間にいかなる直接的な通信も含まない。
【0068】
例えば、ノード10は、クライアント・デバイス20AがVM15A~15Nのうちの1つ又は複数をデプロイするのを容易にすることができる。VM15A~15Nを個別のクライアント・デバイス20A~20Cからのそれぞれの要求に応じてデプロイすることができる。例えば、VM15Aは、クライアント・デバイス20Aによってデプロイすることができ、VM15Bは、クライアント・デバイス20Bによってデプロイすることができ、VM15Cは、クライアント・デバイス20Cによってデプロイすることができる。ノード10は、クライアントが(VMとして稼働するのではなく)物理サーバをプロビジョニングすることを容易にすることもできる。本明細書で記載した例は、ノード10内のリソースをVMの一部としてプロビジョニングすることを具体化したものであるが、記載した技術的解決策は、リソースを物理サーバの一部としてプロビジョニングすることにも適用することができる。
【0069】
一例では、クライアント・デバイス20A~20Cは、個人、事業、政府機関、企業内の部署などの同一のエンティティ又はそれ以外のエンティティに属する場合があり、ノード10は、そのエンティティのプライベート・クラウドとして運用されることができる。この場合、ノード10は、そのエンティティに属するクライアント・デバイス20A~20CによってデプロイされるVM15A~15Nを単独でホストする。別の例では、クライアント・デバイス20A~20Cは、別個のエンティティに属する場合がある。例えば、第1のエンティティがクライアント・デバイス20Aを所有し、一方、第2のエンティティがクライアント・デバイス20Bを所有してもよい。この場合、ノード10は、異なるエンティティ由来のVMをホストするパブリック・クラウドとして運用されることができる。例えば、VM15A~15Nを、VM15AがVM15Bへのアクセスを容易にしない覆い隠された形(shrouded manner)でデプロイすることができる。例えば、ノード10は、IBM z Systems(登録商標)Processor Resource/Systems Manager(PR/SM)Logical Partition(LPAR)機能を用いて、VM15A~15Nを覆い隠すことができる。PR/SM LPARなどのこれらの機能は、パーティション間の隔離を提供するので、ノード10は、異なる論理パーティションにおいて、同一の物理ノード10上で異なるエンティティのための2以上のVM15A~15Nをデプロイすることを容易にする。
クライアント・デバイス20A~20Cの中のクライアント・デバイス20Aは、ノード10のハイパーバイザ12によるVMのデプロイを要求する、コンピュータ、スマートフォン、タブレット・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバ・コンピュータ又はその他のいずれかの通信装置である。クライアント・デバイス20Aは、ネットワーク165を介して、ハイパーバイザが受け取る要求を送ることができる。VM15A~15Nの中のVM15Aは、クライアント・デバイス20A~20Cの中のクライアント・デバイス20Aからの要求に応答してハイパーバイザ12がデプロイするVMイメージである。ハイパーバイザ12は、VMモニタ(VMM)であり、これは、VMを作成して稼働させるソフトウェア、ファームウェア、又はハードウェアとすることができる。ハイパーバイザ12は、VM15Aがノード10のハードウェア・コンポーネントを用いてプログラムを実行することもしくはデータを格納すること又はその両方を容易にする。適切な機能及び改造を伴って、ハイパーバイザ12は、IBM z Systems(登録商標)、OracleのVM Server、CitrixのXenServer、VMwareのESX、Microsoft Hyper-Vハイパーバイザ、又はその他のいずれかのハイパーバイザとすることができる。ハイパーバイザ12は、ノード10上で直接実行されるネイティブ・ハイパーバイザであってもよく、又は、別のハイパーバイザ上で実行されるホストされたハイパーバイザであってもよい。ここで図9を参照すると、本明細書の教示を実施するためのノード10が、本発明の1つ又は複数の実施形態により示されている。ノード10は、本明細書に記載されているように、様々な通信技術を利用する任意の数及び組合せのコンピューティング・デバイス及びネットワークを含むもしくは利用する又はその両方である、電子的なコンピュータ・フレームワークとすることができる。ノード10は、容易に拡大縮小可能な、拡張可能な、モジュール式のものとすることができ、異なるサービスに変わる能力又はいくつかの機能を他とは独立して再構成する能力を備える。
【0070】
本実施形態では、ノード10はプロセッサ901を有し、これは1つ又は複数の中央処理ユニット(CPU)901a、901b、901c等を含むことができる。プロセッサ901は、処理回路、マイクロプロセッサ、コンピューティングユニットとも呼ばれ、システムバス902を介して、システムメモリ903及び他の様々なコンポーネントに結合されている。システムメモリ903は、読み出し専用メモリ(ROM)904及びランダム・アクセス・メモリ(RAM)905を含む。ROM904は、システムバス902に結合されており、ノード10の特定の基本機能を制御する基本インプット/アウトプットシステム(BIOS)を含むことができる。RAMは、プロセッサ901が用いるためにシステムバス902に結合された読み出し-書き込み可能なメモリである。
【0071】
図9のノード10は、プロセッサ901によって読出し可能かつ実行可能な有形記憶媒体の一例であるハードディスク907を含む。ハードディスク907は、ソフトウェア908及びデータ909を格納する。ソフトウェア908は、プロセッサ901が(図1~9のプロセスフローなどのプロセスを行うために)ノード10上で実行するための命令として格納されている。データ909は、ソフトウェア908の動作をサポートし、ソフトウェア908の動作によって用いられるように様々なデータ構造で編成された定性的又は定量的な変数の値の組を含む。
【0072】
図9のノード10は、プロセッサ901、システムメモリ903、ハードディスク907、及びノード10のその他の構成要素(例えば、周辺装置及び外部装置)の間を相互接続し、それらの間の通信をサポートする1つ又は複数のアダプタ(例えば、ハードディスクコントローラ、ネットワークアダプタ、グラフィックスアダプタなど)を含む。本発明の1つ又は複数の実施形態において、1つ又は複数のアダプタは、中間バスブリッジを介してシステムバス902に接続される1つ又は複数のI/Oバスに接続することができ、1つ又は複数のI/Oバスは、Peripheral Component Interconnect(PCI)などの共通プロトコルを利用することができる。
【0073】
図示するように、ノード10は、キーボード921、マウス922、スピーカ923、及びマイクロフォン924をシステムバス902に相互接続するインタフェース・アダプタ920を含む。ノード10は、システムバス902をディスプレイ931に相互接続するディスプレイ・アダプタ930を含む。ディスプレイ・アダプタ930(もしくはプロセッサ901又はその両方)は、GUI932の表示及び管理などのグラフィックス性能を提供するために、グラフィックスコントローラを含むことができる。通信アダプタ941は、システムバス902をネットワーク950と相互接続し、ノード10が、サーバ951及びデータベース952などの他のシステム、デバイス、データ、及びソフトウェアと通信できるようにする。本発明の1つ又は複数の実施形態において、ソフトウェア908及びデータ909の動作は、サーバ951及びデータベース952によってネットワーク950上で実装することができる。例えば、ネットワーク950、サーバ951、及びデータベース952を組み合わせて、ソフトウェア908及びデータ909の内部反復(internal iteration)を、platform as a service、software as a service、もしくはinfrastructure as a service又はそれらの組合せとして(例えば、分散システムにおけるウェブアプリケーションとして)提供することができる。
【0074】
このように、図9において構成されているように、ソフトウェア908及びデータ909(例えば、ノード10)の動作は、必然的にプロセッサ901もしくはサーバ951又はその両方の計算能力が根底にあり、VMの暗号化されたイメージからVMをディスパッチする従来の方法の本明細書に記載された欠点を克服し、これに対処する。
【0075】
本明細書に記載の実施形態は、必然的にコンピュータ技術、特にVMをホストするコンピュータサーバが根底にある。さらに、本発明の1つ又は複数の実施形態は、ハイパーバイザが、セキュアVMに関連付けられたメモリ、レジスタ、及びその他のそうしたデータへのアクセスが禁止されている場合であっても、VMをホストするコンピュータサーバがセキュアVMをホストするのを容易にすることによって、コンピューティング技術自体、特にVMをホストするコンピュータサーバの動作の改善を促進する。さらに、本発明の1つ以上の実施形態は、ハードウェア、ファームウェア(例えば、ミリコード)、又はそれらの組合せを含むセキュア・インタフェース制御を用いて、セキュアVMとハイパーバイザとの分離を容易にし、それによりコンピューティングサーバによってホストされるVMのセキュリティを維持することによって、VMをホストするコンピューティングサーバの改善に向けた有意義なステップを提供する。セキュア・インタフェース制御は、本明細書に記載されているように、VMの初期化/終了時にVMの状態をセキュリティ保護するための実質的なオーバーヘッドを追加することなく、セキュリティを促進するための軽量な中間動作を提供する。
【0076】
本明細書に開示されている本発明の実施形態は、IPL機構を用いてセキュア・ゲストを起動するシステム、方法、もしくはコンピュータ・プログラム製品(本明細書ではシステム)又はそれらの組合せを含むことができる。説明のそれぞれについて、要素の符号は、異なる図の他の同様の要素に再利用されていることに留意されたい。
【0077】
本発明の種々の実施形態をここで関連する図を参照して説明する。本発明の代替的な実施形態は、本発明の範囲から逸脱することなく考案することができる。要素間の種々の接続及び位置的関係(例えば、上、下、隣接、等)が以下の説明及び図中で記述されている。これらの接続もしくは位置的関係又はその両方は、特段の断りがない限り、直接であっても間接であってもよく、本発明は、この点に関して限定することを意図していない。したがって、実体の結合は、直接結合又は間接結合のいずれをも意味し得るものであり、実体間の位置関係は、直接的又は間接的な位置関係とすることができる。さらに、本明細書に記載された種々のタスク及びプロセスは、本明細書に記載されていない付加的なステップ又は機能を有する、より包括的な手順又はプロセスに組み入れることができる。
【0078】
以下の定義及び略語は、特許請求の範囲及び明細書を解釈するために用いるものである。ここで用いる場合、「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」、「含有する」又は「含有している」又は任意のその他の変形は、非排他的な包含をカバーすることが意図される。例えば、要素のリストを含む、組成物、混合物、プロセス、方法、物品、又は装置は、必ずしもそれらの要素に限定されるものではなく、明示的にリストに挙げられていない他の要素、又はそうした組成物、混合物、プロセス、方法、物品、もしくは装置に固有の他の要素を含むことができる。
【0079】
さらに、「例示的」という用語は、本明細書において「例、事例、例証として役立つ」を意味するものとして用いられている。ここで「例示的」として記載されるいずれの実施形態又は設計も、必ずしも他の実施形態又は設計と比べて好ましい又は有利であると解釈されるべきではない。「少なくとも1つの」及び「1つ又は複数の」という用語は、1以上の任意の整数、すなわち、1、2、3、4等を含むと理解することができる。「複数の」という用語は、2以上の任意の整数、すなわち、2、3、4、5等を含むと理解することができる。「接続」という用語は、間接「接続」及び直接「接続」の両方を含むことができる。
【0080】
「約」、「実質的に」、「およそ」という用語及びそれらの変形は、出願時に利用可能な装置に基づく特定の量の測定に付随する誤差の程度を含むことを意図する。例えば、「約」は、所与の値の±8%又は5%、又は2%の範囲を含むことができる。
【0081】
本発明は、実装の任意の可能な技術的詳細レベルの、システム、方法、もしくはコンピュータ・プログラム製品又はそれらの組合せとすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する1つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。
【0082】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、又は上記のものの任意の適切な組合せとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、フロッピーディスク、記録された命令を有するパンチカードもしくは溝内に隆起した構造等の機械式コード化デバイス、及び上記のものの任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で用いられる場合、無線波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバケーブルを通る光パルス)、又は電線を通って伝送される電気信号のような一時的な信号自体と解釈すべきではない。
【0083】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることも、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくは無線ネットワーク又はそれらの組合せを経由して、外部コンピュータもしくは外部ストレージデバイスにダウンロードすることもできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバ又はそれらの組合せを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体にストレージのために転送する。
【0084】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、又は、Smalltalk、もしくはC++などのオブジェクト指向プログラミング言語及び「C」プログラミング言語もしくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続が行われる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲートアレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行することができる。
【0085】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。
【0086】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイス又はそれらの組合せを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読媒体が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。
【0087】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作を実装するようにすることもできる。
【0088】
図面内のフローチャート及びブロック図は、本開示の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方の中のブロックの組合せは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組合せを実行することもできることにも留意されたい。
【0089】
本明細書で用いられる用語は、特定の実施形態を説明することのみを目的としたものであり、本発明を限定することを意図したものではない。本明細書で使用される単数形「a」、「an」及び「the」は、前後関係から明らかに別の意味を示さない限り、複数形態も含むことを意図する。更に、本明細書内で使用する場合に、「備える、含む」もしくは「備えている、含んでいる」又はその両方の用語は、そこに述べた特徴、整数、ステップ、動作、要素もしくはコンポーネント又はそれらの組合せの存在を明示しているが、1つ又は複数のその他の特徴、整数、ステップ、動作、要素、コンポーネントもしくはそれらの群又はそれらの組合せの存在又は付加を排除するものではないことは理解されるであろう。
【0090】
本発明の種々の実施形態の説明は、例証の目的で提示したものであるが、網羅的であることも、又は開示された実施形態に限定することも意図しない。説明した実施形態の範囲から逸脱することなく、多くの修正及び変形が当業者には明らかであろう。本明細書で用いる用語は、実施形態の原理、実際的な用途、もしくは市場において見いだされる技術に優る技術的改善を最も良く説明するように、又は当業者が本明細書で開示される実施形態を理解することを可能にするように、選択されたものである。

図1
図2
図3
図4
図5
図6
図7
図8
図9