(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-05
(45)【発行日】2023-12-13
(54)【発明の名称】セキュア実行ゲスト所有者環境制御
(51)【国際特許分類】
G06F 21/51 20130101AFI20231206BHJP
G06F 21/62 20130101ALI20231206BHJP
【FI】
G06F21/51
G06F21/62 309
(21)【出願番号】P 2021549839
(86)(22)【出願日】2020-02-27
(86)【国際出願番号】 EP2020055155
(87)【国際公開番号】W WO2020182482
(87)【国際公開日】2020-09-17
【審査請求日】2022-07-25
(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)【発明者】
【氏名】ブラッドベリー、ジョナサン
(72)【発明者】
【氏名】ヘラー、リサ
【審査官】平井 誠
(56)【参考文献】
【文献】米国特許出願公開第2015/0178504(US,A1)
【文献】米国特許出願公開第2016/0132345(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実施される方法であって、
コンピューティング・システム内のセキュア・インターフェース・コントロールによってメタデータを取得することであって、前記セキュア・インターフェース・コントロールは、ハイパーバイザに通信可能に結合され、前記ハイパーバイザは、
1つまたは複数のゲストを管理し、前記メタデータは、所有者のセキュア・ゲストのイメージに結び付けられ、前記ハイパーバイザによって管理され、前記メタデータは、1つまたは複数のコントロールを備え、前記1つまたは複数のコントロールの各コントロールは、前記セキュア・インターフェース・コントロールに、前記コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如に基づいて、前記コンピューティング・システム内の前記イメージを用いて生成されたセキュア・ゲストのインスタンスを前記ハイパーバイザが実行することが許可されるかどうかを示す、前記取得することと、
前記セキュア・インターフェース・コントロールによって、前記ハイパーバイザによる、前記セキュア・ゲストの前記イメージからの前記セキュア・ゲストの前記インスタンスを起動するコマンドを傍受することと、
前記セキュア・インターフェース・コントロールによって、前記コンピューティング・システム内の前記1つまたは複数のシステム設定の前記存在または前記欠如を決定することと、
前記セキュア・インターフェース・コントロールによって、前記1つまたは複数のコントロールと、前記1つまたは複数のシステム設定の前記存在または前記欠如とに基づいて、前記ハイパーバイザが前記インスタンスを実行することが許可されるかどうかを決定することと、
前記ハイパーバイザが前記インスタンスを実行することが許可されるとの決定に基づいて、前記セキュア・インターフェース・コントロールによって
、
前記傍受されたコマンドを前記ハイパーバイザに中継することに基づいて、前記コンピューティング・システムにおいて、前記ハイパーバイザによる前記インスタンスの起動を可能にすること
、および、
前記インスタンスの実行時の間に前記1つまたは複数のシステム設定の少なくとも1つの設定が変化したことに応答して、前記ハイパーバイザが前記インスタンスを実行することが許可されるかどうかを決定すること
を実行することと、
前記ハイパーバイザが前記インスタンスを実行することが許可されないとの決定に基づいて、前記セキュア・インターフェース・コントロールによって、前記コマンドを無視することと
を含む方法。
【請求項2】
前記メタデータを取得することは、
前記セキュア・インターフェース・コントロールによって、前記セキュア・ゲストの前記イメージに結び付けられた前記メタデータの一部分を復号することであって、前記メタデータは完全性が保護され、前記セキュア・ゲストのブートイメージの暗号化対策を備えた前記一部分は、秘密鍵を用いて導き出された鍵によって暗号化されている、前記復号すること
をさらに含む、請求項1に記載のコンピュータによって実施される方法。
【請求項3】
前記メタデータの
前記一部分は、前記1つまたは複数のコントロールを備える、
請求項2に記載のコンピュータによって実施される方法。
【請求項4】
前記1つまたは複数のコントロールの各コントロールは、環境的制約を備える、請求項1ないし3のいずれか一項に記載のコンピュータによって実施される方法。
【請求項5】
前記環境的制約は、ハードウェア測定を行うように構成されたシステム、および非システム固有ホスト鍵を用いるように構成されたシステムからなる群から選択される、請求項4に記載のコンピュータによって実施される方法。
【請求項6】
前記秘密鍵は、前記セキュア・インターフェース・コントロールによって所有され、前記セキュア・インターフェース・コントロールによって排他的に用いられる、請求項2に記載のコンピュータによって実施される方法。
【請求項7】
前記秘密鍵を用いて導き出された前記鍵は、前記セキュア・インターフェース・コントロールと前記所有者との間で共有される、請求項6に記載のコンピュータによって実施される方法。
【請求項8】
前記メタデータは、耐衝突性一方向関数を利用して計算された、前記セキュア・ゲストのブートイメージから導き出された値を備える、請求項1ないし7のいずれか一項に記載のコンピュータによって実施される方法。
【請求項9】
前記1つまたは複数のコントロールはそれぞれ、所与のシステム設定に対してポジティブ指定またはネガティブ指定を備え、前記ポジティブ指定は、前記セキュア・ゲストの前記インスタンスが前記所与のシステム設定を備えた前記コンピューティング・システム内で実行することが許可されたことを示し、前記ネガティブ指定は、前記セキュア・ゲストの前記インスタンスが前記所与のシステム設定を備えた前記コンピューティング・システム内で実行することが許可されないことを示す、請求項1ないし8のいずれか一項に記載のコンピュータによって実施される方法。
【請求項10】
前記メタデータは、前記セキュア・ゲストの前記インスタンスにはアクセス不可能である、請求項1ないし9のいずれか一項に記載のコンピュータによって実施される方法。
【請求項11】
前記ハイパーバイザが前記インスタンスを実行することが許可されるかどうかを決定することは、前記コンピュータに、
前記セキュア・インターフェース・コントロールによって、前記1つまたは複数のコントロールのうちの、前記1つまたは複数のシステム設定の設定に関連したコントロールを識別することと、
前記セキュア・インターフェース・コントロールによって、前記コントロールに基づいて、前記コントロールが、前記インスタンスを実行することを可能にするかそれとも制限するかを決定することと
をさらに実行させる、請求項1ないし10のいずれか一項に記載のコンピュータによって実施される方法。
【請求項12】
コンピュータによって実施される方法であって、
コンピューティング・システム内のセキュア・インターフェース・コントロールによってメタデータを取得することであって、前記セキュア・インターフェース・コントロールは、ハイパーバイザに通信可能に結合され、前記ハイパーバイザは、1つまたは複数のゲストを管理し、前記メタデータは、所有者のセキュア・ゲストのイメージに結び付けられ、前記ハイパーバイザによって管理され、前記メタデータは、1つまたは複数のコントロールを備え、前記1つまたは複数のコントロールの各コントロールは、前記セキュア・インターフェース・コントロールに、前記コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如に基づいて、前記コンピューティング・システム内の前記イメージを用いて生成されたセキュア・ゲストのインスタンスを前記ハイパーバイザが実行することが許可されるかどうかを示す、前記取得することと、
前記セキュア・インターフェース・コントロールによって、前記ハイパーバイザによる、前記セキュア・ゲストの前記イメージからの前記セキュア・ゲストの前記インスタンスを起動するコマンドを傍受することと、
前記セキュア・インターフェース・コントロールによって、前記コンピューティング・システム内の前記1つまたは複数のシステム設定の前記存在または前記欠如を決定することと、
前記セキュア・インターフェース・コントロールによって、前記1つまたは複数のコントロールと、前記1つまたは複数のシステム設定の前記存在または前記欠如とに基づいて、前記ハイパーバイザが前記インスタンスを実行することが許可されるかどうかを決定することと、
前記ハイパーバイザが前記インスタンスを実行することが許可されるとの決定に基づいて、前記セキュア・インターフェース・コントロールによって、前記傍受されたコマンドを前記ハイパーバイザに中継することに基づいて、前記コンピューティング・システムにおいて、前記ハイパーバイザによる前記インスタンスの起動を可能にすることと、
前記ハイパーバイザが前記インスタンスを実行することが許可されないとの決定に基づいて、前記セキュア・インターフェース・コントロールによって、前記コマンドを無視することと
を含み、前記方法は、
前記コンピュータに、
前記セキュア・インターフェース・コントロールによって、前記インスタンスの実行時の間に前記1つまたは複数のシステム設定を監視することと、
前記セキュア・インターフェース・コントロールによって、前記1つまたは複数の
システム設定の少なくとも1つの設定が前記実行時の間に変化したと決定することと、
前記セキュア・インターフェース・コントロールによって、前記少なくとも1つの設定に関連した前記1つまたは複数のコントロールの所与のコントロールを識別することと、
前記セキュア・インターフェース・コントロールによって、前記少なくとも1つの設定および前記所与のコントロールに基づいて、前記ハイパーバイザが前記インスタンスを実行することが許可されたかどうかを決定することと
をさらに実行させる
、コンピュータによって実施される方法。
【請求項13】
前記コンピュータに、
前記ハイパーバイザが前記インスタンスを実行することが許可されないとの決定に基づいて、前記セキュア・インターフェース・コントロールによって、前記ハイパーバイザを通じて、前記インスタンスを終了させること
をさらに含む、請求項12に記載のコンピュータによって実施される方法。
【請求項14】
前記ハイパーバイザによって前記セキュア・ゲストの前記イメージからの前記セキュア・ゲストの前記インスタンスを起動する前記コマンドを傍受することは、前記コンピュータに、
セキュア・インターフェース・コントロールによって、前記メタデータに対して完全性チェックを行うことと、
前記完全性チェックが成功裏に完了したことに基づいて、前記セキュア・インターフェース・コントロールによって、前記メタデータ内の前記1つまたは複数のコントロールを読み出すことと
をさらに実行させる、請求項1ないし13のいずれか一項に記載のコンピュータによって実施される方法。
【請求項15】
コンピュータ・プログラムであって、コンピュータに、
コンピューティング・システム内の1つまたは複数のプロセッサによってメタデータを取得することであって、前記1つまたは複数のプロセッサは、ハイパーバイザに通信可能に結合され、前記ハイパーバイザは、
1つまたは複数のゲストを管理し、前記メタデータは、所有者のセキュア・ゲストのイメージに結び付けられ、前記ハイパーバイザによって管理され、前記メタデータは、1つまたは複数のコントロールを備え、前記1つまたは複数のコントロールの各コントロールは、前記1つまたは複数のプロセッサに、前記コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如に基づいて、前記コンピューティング・システム内の前記イメージを用いて生成されたセキュア・ゲストのインスタンスを前記ハイパーバイザが実行することが許可されるかどうかを示す、前記取得することと、
前記1つまたは複数のプロセッサによって、前記ハイパーバイザによる、前記セキュア・ゲストの前記イメージからの前記セキュア・ゲストの前記インスタンスを起動するコマンドを傍受することと、
前記1つまたは複数のプロセッサによって、前記コンピューティング・システム内の前記1つまたは複数のシステム設定の前記存在または前記欠如を決定することと、
前記1つまたは複数のプロセッサによって、前記1つまたは複数のコントロールと、前記1つまたは複数のシステム設定の前記存在または前記欠如とに基づいて、前記ハイパーバイザが前記インスタンスを実行することが許可されるかどうかを決定することと、
前記ハイパーバイザが前記インスタンスを実行することが許可されるとの決定に基づいて、前記1つまたは複数のプロセッサによって
、
前記傍受されたコマンドを前記ハイパーバイザに中継することに基づいて、前記コンピューティング・システムにおいて、前記ハイパーバイザによる前記インスタンスの起動を可能にすること
、および、
前記インスタンスの実行時の間に前記1つまたは複数のシステム設定の少なくとも1つの設定が変化したことに応答して、前記ハイパーバイザが前記インスタンスを実行することが許可されるかどうかを決定すること
を実行することと、
前記ハイパーバイザが前記インスタンスを実行することが許可されないとの決定に基づいて、前記1つまたは複数のプロセッサによって、前記コマンドを無視することと
を実行させるためのコンピュータ・プログラム。
【請求項16】
前記メタデータを取得することは、前記コンピュータに、
前記1つまたは複数のプロセッサによって、前記セキュア・ゲストの前記イメージに結び付けられた前記メタデータの一部分を復号することであって、前記メタデータは完全性が保護され、前記セキュア・ゲストのブートイメージの暗号化対策を備えた前記一部分は、秘密鍵を用いて導き出された鍵によって暗号化されている、前記復号すること
をさらに実行させる、請求項15に記載のコンピュータ・プログラム。
【請求項17】
前記メタデータの前記暗号化された部分は、前記1つまたは複数のコントロールを備える、請求項16に記載のコンピュータ・プログラム。
【請求項18】
前記1つまたは複数のコントロールの各コントロールは、環境的制約を備える、請求項15ないし17のいずれか一項に記載のコンピュータ・プログラム。
【請求項19】
前記環境的制約は、ハードウェア測定を行うように構成されたシステム、および非システム固有ホスト鍵を用いるように構成されたシステムからなる群から選択される、請求項18に記載のコンピュータ・プログラム。
【請求項20】
コンピュー
ティング・システムであって、
メモリと、
前記メモリと通信する1つまたは複数のプロセッサと、
方法を行うために、前記メモリを通じて前記1つまたは複数のプロセッサによって実行可能なプログラム命令と
を備え、前記方法は、
前記コンピューティング・システム内の1つまたは複数のプロセッサによってメタデータを取得することであって、前記1つまたは複数のプロセッサは、ハイパーバイザに通信可能に結合され、前記ハイパーバイザは、
1つまたは複数のゲストを管理し、前記メタデータは、所有者のセキュア・ゲストのイメージに結び付けられ、前記ハイパーバイザによって管理され、前記メタデータは、1つまたは複数のコントロールを備え、前記1つまたは複数のコントロールの各コントロールは、前記1つまたは複数のプロセッサに、前記コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如に基づいて、前記コンピューティング・システム内の前記イメージを用いて生成されたセキュア・ゲストのインスタンスを前記ハイパーバイザが実行することが許可されるかどうかを示す、前記取得することと、
前記1つまたは複数のプロセッサによって、前記ハイパーバイザによる、前記セキュア・ゲストの前記イメージからの前記セキュア・ゲストの前記インスタンスを起動するコマンドを傍受することと、
前記1つまたは複数のプロセッサによって、前記コンピューティング・システム内の前記1つまたは複数のシステム設定の前記存在または前記欠如を決定することと、
前記1つまたは複数のプロセッサによって、前記1つまたは複数のコントロールと、前記1つまたは複数のシステム設定の前記存在または前記欠如とに基づいて、前記ハイパーバイザが前記インスタンスを実行することが許可されるかどうかを決定することと、
前記ハイパーバイザが前記インスタンスを実行することが許可されるとの決定に基づいて、前記1つまたは複数のプロセッサによって
、
前記傍受されたコマンドを前記ハイパーバイザに中継することに基づいて、前記コンピューティング・システムにおいて、前記ハイパーバイザによる前記インスタンスの起動を可能にすること
、および、
前記インスタンスの実行時の間に前記1つまたは複数のシステム設定の少なくとも1つの設定が変化したことに応答して、前記ハイパーバイザが前記インスタンスを実行することが許可されるかどうかを決定すること
を実行することと、
前記ハイパーバイザが前記インスタンスを実行することが許可されないとの決定に基づいて、前記1つまたは複数のプロセッサによって、前記コマンドを無視することと
を含む、コンピュー
ティング・システム。
【発明の詳細な説明】
【背景技術】
【0001】
今日のコンピュータ・システムおよび情報移送ネットワークにおいて、暗号学的要素は重要な技術的構成要素である。情報は、記憶されるまたは送信される情報に対する無許可のアクセスを回避するために、暗号学的にセキュリティ保護された形で記憶されまたは送信され得る。いくつかの場合において、純粋なソフトウェア・ベースの技法が用いられることができ、他の場合において、このようなデータ保護を行うために、ハードウェア・サポートおよびセキュリティ固有の要素が用いられ得る。
【0002】
ハイパーバイザまたは仮想マシン・マネージャは、システム・リソースに対するアクセスを有する様々なゲスト(例えば、仮想マシン、仮想サーバ)を制御することができる。共通のハイパーバイザによって管理される異なるゲストは、異なる所有者によって生成され得る。これらのゲストのうち、いくつかはセキュア・ゲストとすることができる。従来のハイパーバイザは、ホストされるすべてのゲストにわたる完全な制御を有する。特に、ハイパーバイザは、ホストされるゲストのすべてのメモリを検査する、さらには変更する能力を有する。クラウド環境ではこのようなセットアップは、ハイパーバイザおよびその管理者が完全に信頼できることが必要である。
【0003】
セキュア・ゲストは、(完全には)信頼できないハイパーバイザによってホストされ得るゲストである。このようなゲストのイメージは、ロードされたときに保護されるようになり、ゲストに割り当てられたリソース(例えば、メモリ、CPUレジスタ)のコンテンツの保護は、ゲストの存続期間にわたって維持されるようになる。ゲストの保護は、少なくとも完全性保護(例えば、ハイパーバイザは、いずれのゲスト状態をも、悪意をもって変更することはできない)、および加えて、初期イメージと、ゲストにおいて実行するコードおよびデータの機密性とを維持することを含み得る。これらのサービスは、安全なエンティティと、別の信頼できないエンティティとの間の任意のインターフェースに適用されることができ、この別の信頼できないエンティティは従来、この他のエンティティによる安全なリソースへのアクセスを可能にしている。
【発明の概要】
【0004】
所有者が、所与の技術環境におけるセキュア・ゲストの実行を制御することを可能にする方法をもたらすことによって、従来技術の欠点は克服され、追加の利点がもたらされる。方法は、例えば、コンピューティング・システム内のセキュア・インターフェース・コントロールによってメタデータを取得することであって、セキュア・インターフェース・コントロールは、ハイパーバイザに通信可能に結合され、ハイパーバイザは、1人または複数のゲストを管理し、メタデータは、所有者のセキュア・ゲストのイメージに結び付けられ、ハイパーバイザによって管理され、メタデータは、1つまたは複数のコントロールを備え、1つまたは複数のコントロールの各コントロールは、セキュア・インターフェース・コントロールに、コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如に基づいて、コンピューティング・システム内のイメージを用いて生成されたセキュア・ゲストのインスタンスをハイパーバイザが実行することが許可されるかどうかを示す、取得することと、セキュア・インターフェース・コントロールによって、ハイパーバイザによる、セキュア・ゲストのイメージからのセキュア・ゲストのインスタンスを起動するコマンドを傍受することと、セキュア・インターフェース・コントロールによって、コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如を決定することと、セキュア・インターフェース・コントロールによって、1つまたは複数のコントロールと、1つまたは複数のシステム設定の存在または欠如とに基づいて、ハイパーバイザがインスタンスを実行することが許可されるかどうかを決定することと、ハイパーバイザがインスタンスを実行することが許可されるとの決定に基づいて、セキュア・インターフェース・コントロールによって、傍受されたコマンドをハイパーバイザに中継することに基づいて、コンピューティング・システムにおいて、ハイパーバイザによるインスタンスの起動を可能にすることと、ハイパーバイザがインスタンスを実行することが許可されないとの決定に基づいて、セキュア・インターフェース・コントロールによって、コマンドを無視することとを含む。
【0005】
所有者が、所与の技術環境におけるセキュア・ゲストの実行を制御することを可能にするコンピュータ・プログラム製品をもたらすことによって、従来技術の欠点は克服され、追加の利点がもたらされる。コンピュータ・プログラム製品は、処理回路によって読み出し可能であり、方法を行うための処理回路による実行のための命令を記憶した記憶媒体を備える。方法は、例えば、コンピューティング・システム内の1つまたは複数のプロセッサによってメタデータを取得することであって、1つまたは複数のプロセッサは、ハイパーバイザに通信可能に結合され、ハイパーバイザは、1人または複数のゲストを管理し、メタデータは、所有者のセキュア・ゲストのイメージに結び付けられ、ハイパーバイザによって管理され、メタデータは、1つまたは複数のコントロールを備え、1つまたは複数のコントロールの各コントロールは、1つまたは複数のプロセッサに、コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如に基づいて、コンピューティング・システム内のイメージを用いて生成されたセキュア・ゲストのインスタンスをハイパーバイザが実行することが許可されるかどうかを示す、取得することと、1つまたは複数のプロセッサによって、ハイパーバイザによる、セキュア・ゲストのイメージからのセキュア・ゲストのインスタンスを起動するコマンドを傍受することと、1つまたは複数のプロセッサによって、コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如を決定することと、1つまたは複数のプロセッサによって、1つまたは複数のコントロールと、1つまたは複数のシステム設定の存在または欠如とに基づいて、ハイパーバイザがインスタンスを実行することが許可されるかどうかを決定することと、ハイパーバイザがインスタンスを実行することが許可されるとの決定に基づいて、1つまたは複数のプロセッサによって、傍受されたコマンドをハイパーバイザに中継することに基づいて、コンピューティング・システムにおいて、ハイパーバイザによるインスタンスの起動を可能にすることと、ハイパーバイザがインスタンスを実行することが許可されないとの決定に基づいて、1つまたは複数のプロセッサによって、コマンドを無視することとを含む。
【0006】
所有者が、所与の技術環境におけるセキュア・ゲストの実行を制御することを可能にするためのシステムをもたらすことによって、従来技術の欠点は克服され、追加の利点がもたらされる。システムは、メモリと、メモリと通信する1つまたは複数のプロセッサと、方法を行うために、メモリを通じて1つまたは複数のプロセッサによって実行可能なプログラム命令とを備える。方法は、例えば、システム内の1つまたは複数のプロセッサによってメタデータを取得することであって、1つまたは複数のプロセッサは、ハイパーバイザに通信可能に結合され、ハイパーバイザは、1人または複数のゲストを管理し、メタデータは、所有者のセキュア・ゲストのイメージに結び付けられ、ハイパーバイザによって管理され、メタデータは、1つまたは複数のコントロールを備え、1つまたは複数のコントロールの各コントロールは、1つまたは複数のプロセッサに、コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如に基づいて、コンピューティング・システム内のイメージを用いて生成されたセキュア・ゲストのインスタンスをハイパーバイザが実行することが許可されるかどうかを示す、取得することと、1つまたは複数のプロセッサによって、ハイパーバイザによる、セキュア・ゲストのイメージからのセキュア・ゲストのインスタンスを起動するコマンドを傍受することと、1つまたは複数のプロセッサによって、コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如を決定することと、1つまたは複数のプロセッサによって、1つまたは複数のコントロールと、1つまたは複数のシステム設定の存在または欠如とに基づいて、ハイパーバイザがインスタンスを実行することが許可されるかどうかを決定することと、ハイパーバイザがインスタンスを実行することが許可されるとの決定に基づいて、1つまたは複数のプロセッサによって、傍受されたコマンドをハイパーバイザに中継することに基づいて、コンピューティング・システムにおいて、ハイパーバイザによるインスタンスの起動を可能にすることと、ハイパーバイザがインスタンスを実行することが許可されないとの決定に基づいて、1つまたは複数のプロセッサによって、コマンドを無視することとを含む。
【0007】
また、1つまたは複数の態様に関連して方法およびシステムが述べられ、本明細書で特許請求される。さらにまた、1つまたは複数の態様に関連してサービスが述べられ、本明細書で特許請求され得る。
【0008】
さらなる特徴は、本明細書で述べられる技法を通して実現される。他の実施形態および態様は本明細書で詳しく述べられ、特許請求される態様の一部と考えられる。例えば、本発明のいくつかの実施形態において、1つまたは複数のプロセッサまたはセキュア・インターフェース・コントロールがメタデータを取得することは、1つまたは複数のプロセッサまたはセキュア・インターフェース・コントロールによって、セキュア・ゲストのイメージに結び付けられたメタデータの一部分を復号することであって、メタデータは完全性が保護され、セキュア・ゲストのブートイメージの暗号化対策を備えた一部分は、秘密鍵を用いて導き出された鍵によって暗号化されている、復号することをさらに含む。
【0009】
本発明のいくつかの実施形態において、メタデータの暗号化された部分は、1つまたは複数のコントロールを備える。
【0010】
本発明のいくつかの実施形態において、1つまたは複数のコントロールの各コントロールは、環境的制約を備える。
【0011】
本発明のいくつかの実施形態において、環境的制約は、ハードウェア測定を行うように構成されたシステム、および非システム固有ホスト鍵を用いるように構成されたシステムからなる群から選択される。
【0012】
本発明のいくつかの実施形態において、秘密鍵は、セキュア・インターフェース・コントロールによって所有され、セキュア・インターフェース・コントロールによって排他的に用いられる。
【0013】
本発明のいくつかの実施形態において、秘密鍵を用いて導き出された鍵は、セキュア・インターフェース・コントロールと所有者との間で共有される。
【0014】
本発明のいくつかの実施形態において、メタデータは、耐衝突性一方向関数を利用して計算された、セキュア・ゲストのブートイメージから導き出された値を備える。
【0015】
本発明のいくつかの実施形態において、1つまたは複数のコントロールはそれぞれ、所与のシステム設定に対してポジティブ指定またはネガティブ指定を備え、ポジティブ指定は、セキュア・ゲストのインスタンスが所与のシステム設定を備えたコンピューティング・システム内で実行することが許可されたことを示し、ネガティブ指定は、セキュア・ゲストのインスタンスが所与のシステム設定を備えたコンピューティング・システム内で実行することが許可されないことを示す。
【0016】
本発明のいくつかの実施形態において、メタデータは、セキュア・ゲストのインスタンスにアクセス不可能である。
【0017】
本発明のいくつかの実施形態において、ハイパーバイザがインスタンスを実行することが許可されるかどうかを決定することは、1つまたは複数のプロセッサ、またはセキュア・インターフェース・コントロールあるいはその両方によって、1つまたは複数のコントロールのうちの、1つまたは複数のシステム設定の設定に関連したコントロールを識別することと、1つまたは複数のプロセッサ、またはセキュア・インターフェース・コントロールあるいはその両方によって、コントロールに基づいて、コントロールが、インスタンスを実行することを可能にするかそれとも制限するかを決定することとをさらに含む。
【0018】
本発明のいくつかの実施形態において、方法は、1つまたは複数のプロセッサ、またはセキュア・インターフェース・コントロールあるいはその両方によって、インスタンスの実行時の間に1つまたは複数のシステム設定を監視することと、1つまたは複数のプロセッサ、またはセキュア・インターフェース・コントロールあるいはその両方によって、1つまたは複数の設定の少なくとも1つの設定が実行時の間に変化したと決定することと、1つまたは複数のプロセッサ、またはセキュア・インターフェース・コントロールあるいはその両方によって、少なくとも1つの設定に関連した1つまたは複数のコントロールの所与のコントロールを識別することと、1つまたは複数のプロセッサ、またはセキュア・インターフェース・コントロールあるいはその両方によって、少なくとも1つの設定および所与のコントロールに基づいて、ハイパーバイザがインスタンスを実行することが許可されたかどうかを決定することとをさらに含む。ハイパーバイザがインスタンスを実行することが許可されないとの決定に基づいて、1つまたは複数のプロセッサ、またはセキュア・インターフェース・コントロールあるいはその両方によって、ハイパーバイザを通じて、インスタンスを終了させる。
【0019】
本発明のいくつかの実施形態において、ハイパーバイザによってセキュア・ゲストのイメージからのセキュア・ゲストのインスタンスを起動するコマンドを傍受することは、1つまたは複数のプロセッサ、またはセキュア・インターフェース・コントロールあるいはその両方によって、メタデータに対して完全性チェックを行うことと、完全性チェックの完了に成功したことに基づいて、1つまたは複数のプロセッサ、またはセキュア・インターフェース・コントロールあるいはその両方によって、メタデータ内の1つまたは複数のコントロールを読み出すこととをさらに含む。
【0020】
1つまたは複数の態様は、本明細書の結びにおける「特許請求の範囲」において、例として具体的に指摘され明瞭に請求される。1つまたは複数の態様の上記および他の目的、特徴、および利点は、以下の詳細な説明を添付の図面と併せ読めば、明らかとなる。
【図面の簡単な説明】
【0021】
【
図1】本発明のいくつかの実施形態のいくつかの態様を例示するワークフローの図である。
【
図2】本発明のいくつかの実施形態の様々な態様を例示する図である。
【
図3】本発明のいくつかの実施形態のいくつかの態様を例示するワークフローの図である。
【
図4】クラウド・コンピューティング環境において利用され得るコンピューティング・ノードの一実施形態を示す図である。
【
図5】本発明の実施形態によるクラウド・コンピューティング環境を示す図である。
【
図6】本発明の実施形態による抽象化モデル・レイヤを示す図である。
【発明を実施するための形態】
【0022】
個別の図の全体にわたって類似の参照番号は同一または機能的に同様な要素を指し、また、本明細書に組み込まれその一部となる添付の図面は、本発明をさらに例示し、本発明の詳しい説明と共に、本発明の原理を説明する役割を果たす。当業者には理解されるように、添付の図は理解を容易にするため、および本発明のいくつかの実施形態の態様を例示するために示される。本発明は、図に示される実施形態に限定されない。
【0023】
当業者には理解されるように、本明細書の全体にわたって言及されるプログラム・コードとは、ソフトウェアおよびハードウェアの両方を含む。例えば、本発明のいくつかの実施形態におけるプログラム・コードは、固定の機能のハードウェアを含み、他の実施形態は、述べられる機能のソフトウェア・ベースの実装形態を利用する。いくつかの実施形態は、両方のタイプのプログラム・コードを組み合わせる。1つまたは複数のプログラムとも呼ばれる、プログラム・コードの一例は、
図4でプログラム・モジュール42の(少なくとも1つの)セットを有するプログラム/ユーティリティ40として示され、メモリ28に記憶され得る。
【0024】
ホスト・ハイパーバイザの制御のもとでゲストとして実行する仮想マシン(VM)は、そのハイパーバイザがそのゲストに対して仮想化サービスを透過的にもたらすことに依存する。これらのサービスは、安全なエンティティと、別の信頼できないエンティティとの間の任意のインターフェースに適用されることができ、この他のエンティティは従来、この他のエンティティによる安全なリソースへのアクセスを可能にしている。「ゲスト・システム」または「ゲスト」という用語は、例えば、ハイパーバイザ上で仮想マシン(virtual machine;VM)内で実行されるオペレーティング・システムを示すことができる。ユーザは、ゲスト・システムに割り当てられ得る。特定の暗号学的鍵は、ゲスト・システムに割り当てられ得ることが可能である。述べられたハイパーバイザは、このような割り当てを行うことにおいて用いられ得る。ゲスト・システムは、例えば、ゲスト・オペレーティング・システムを動作させるまたは実行する仮想マシン、すなわちVMとすることができる。
【0025】
「コンテンツ」という用語は、任意の文字ベースの文字列を示すことができる。文字列は、可読テキストまたは任意の他のバイナリ・データを備え得る。
【0026】
第1の構成要素が第2の構成要素に暗号学的に結び付けられることを表すために用いられる「暗号学的に結び付けられる」という用語は、第1の構成要素は完全性が保護され、第2の構成要素に含まれたすべてのデータの対策(measure)を含むことを意味する。対策は耐衝突性一方向関数によって作成される。このような対策の例は、暗号学的ハッシュ、メッセージ認証コード、または暗号学的署名あるいはその組み合わせを含むが、それらに限定されない。
【0027】
本発明の実施形態は、コンピュータによって実施される方法、コンピュータ・プログラム製品、およびコンピュータ・システムを含み、これらは、セキュア実行(SE)ゲストの所有者が、セキュア・ゲストが特定のホスト環境において実行することを許可するまたは許可しないようにセキュア・インターフェース・コントロールに命令するために、ハードウェア、ファームウェア、またはそれらの組み合わせであるセキュア・インターフェース・コントロールに命令することを可能にする、少なくとも1つの処理回路上で実行されるプログラム・コードまたはプログラム・コードを備えたハードウェアあるいはその両方を含む。本発明の実施形態において、ゲスト所有者の命令は、特定のゲスト・イメージに特有である。従って、所有者は、セキュア・インターフェース・コントロールが、所与のシステムにおいて1つまたは複数の制約を強制できるように、1つまたは複数の環境的制約を各ゲストのセキュアインターフェース・コントロールに通信する。本発明の実施形態において、所有者は、セキュア・ゲストのブートイメージに暗号学的に結び付けられたメタデータを通じて、所与のイメージに対する特定の環境的制約を通信し、セキュア・インターフェース・コントロールは、本発明の実施形態において、所与のセキュア・ゲストに対して、指定された詳細を強制する。本発明のいくつかの実施形態において、セキュア・ゲストに関連付けられたメタデータは、完全性が保護される(例えば、メタデータの少なくとも一部は暗号化され得る)。メタデータは、プログラム・コードが耐衝突性一方向関数(例えば、暗号学的ハッシュ関数)を用いて計算する、セキュア・ゲストのブートイメージからプログラム・コードによって導き出された値を含むことができる。耐衝突性関数は値にセキュリティをもたらし、なぜならそれの適用は、同じ値を導出できる代替イメージの構築を計算上実行不可能にするからである。本発明のいくつかの実施形態において、メタデータは、様々な環境的制約に関連した特定のポジティブおよびネガティブ指定を備える。本発明のいくつかの実施形態において、メタデータは、セキュア・ゲストのインストール・データ(例えば、セキュア実行(secure execution:SE)ヘッダ)を備える。
【0028】
本発明の実施形態において、セキュア・インターフェース・コントロールは、システム設定と競合するセキュア・ゲストを実行することから(ホスト)システムを保護する。セキュア・インターフェース・コントロールは、セキュア・ゲストのイメージに暗号学的に結び付けられたメタデータ内のコントロールが、システムに適合しないセキュア・ゲストを指定しているとの決定に基づいてセキュア・ゲストを起動する要求を拒絶することと、セキュア・ゲストを実行した後に技術環境を監視し、技術環境の変化によりセキュア・ゲストがもはや技術環境に適合していないと決定することとの両方によってこの競合を防止する。実行時の間に、セキュア・ゲストが実行している技術環境に対する変化が、コントロールとの競合を作り出した場合(セキュア・ゲストのイメージに暗号学的に結び付けられたメタデータ内のコントロールが初期にセキュア・インターフェース・コントロールがセキュア・ゲストを起動することを許可したとき)、セキュア・インターフェース・コントロールは、ハイパーバイザによってセキュア・ゲストの終了を開始する。例えば、本発明の実施形態において、セキュア・インターフェース・コントロールが、セキュア・ゲストを開始するかどうかを評価するとき、1)セキュア・インターフェース・コントロールは、セキュア・ゲストのイメージに暗号学的に結び付けられたメタデータ内の環境的制約を示す個々のコントロールを読み出す、2)セキュア・インターフェース・コントロールは、コントロールを、開始された場合にイメージがその中で実行するようになるホスト・システムのシステム設定と比較する、3)セキュア・インターフェース・コントロールは、システム設定がメタデータ内の環境コントロールと一致する場合、セキュア・ゲストを開始する、4)セキュア・インターフェース・コントロールは、セキュア・ゲストが実行される技術環境のシステム設定を監視し、実行時の間に、セキュア・インターフェース・コントロールが、システム設定がコントロールと競合する形で変化したと決定した場合、セキュア・インターフェース・コントロールはセキュア・ゲストを終了させる。メタデータ内の環境的制約を備えたコントロール内に具体化され得るシステム設定の例は、1)ハードウェア測定を行うように構成されたシステム、および2)非システム固有ホスト鍵を用いるように構成されたシステムを含むことができるが、それらに限定されない。
【0029】
図1は、本発明のいくつかの実施形態のいくつかの機能を例示するワークフロー100である。
図1に例示されるように、本発明の実施形態において、セキュア実行を可能にするために、セキュア・ゲストのイメージはメタデータから暗号学的に結び付けられ、これは、セキュア・インターフェース・コントロールに対してのみアクセス可能な秘密ホスト鍵に基づいて、セキュア・インターフェース・コントロール(例えば、信頼できるハードウェアまたはソフトウェア構成要素あるいはその両方、信頼できるファームウェア)に安全に通信される。本発明の実施形態において、セキュア・ゲストの所有者は、セキュア・インターフェース・コントロールの挙動を決定し、いくつかの技術環境においてセキュア・ゲストの実行を許可または禁止する。セキュア・ゲストのセキュリティに対する既存の手法と比べた本発明の実施形態の利点は、セキュア・インターフェース・コントロールによって強制されるのに従って、メタデータにおける細かい制御が、特定のセキュリティの関心事に対処するために、所有者がセキュア・ゲストの実行を制限することを可能とすることである。例えば、所有者は、セキュア・インターフェース・コントロールが、ハードウェア測定を行うように構成されたホスト・システム上、または非システム固有ホスト鍵を用いるように構成されたホスト・システム上あるいはその両方で、セキュア・ゲストを起動できるかどうかを制御することができる。本発明のいくつかの実施形態において、少なくとも1つの処理回路上で実行するまたはハードウェアによってもたらされるあるいはその両方のプログラム・コードは、セキュア・ゲストの実行を制約する。
【0030】
図1を参照すると、本発明のいくつかの実施形態において、セキュア・インターフェース・コントロール(例えば、ハードウェア、ソフトウェア、ファームウェア、組み合わせなど)は、セキュア・ゲストのイメージに基づいてセキュア・ゲストを起動する要求を傍受する(105)。セキュア・インターフェース・コントロールは、セキュア・ゲストの所有者から、開始されることになるセキュア・ゲストに結び付けられたメタデータを取得する(110)。本発明のいくつかの実施形態において、メタデータは完全性が保護され、(SE)所有者によって開始されることになるセキュア・ゲストのブートイメージに暗号学的に結び付けられる。メタデータはコントロールを備え、各コントロールはセキュア・ゲストに対する制限を示し、これらの制限は環境的制約を含む。
【0031】
図1に戻ると、本発明の実施形態において、セキュア・インターフェース・コントロールは、メタデータに対して完全性チェックを行う(120)。セキュア・インターフェース・コントロールが、メタデータは完全性チェックに合格しないと決定した場合、セキュア・コントロール・インターフェースは、所有者(または、セキュア・ゲストのインスタンスに対する他の要求者)にエラーを返す(125)。不合格になった完全性チェックに基づいて所有者にエラーを返すことによって、セキュア・インターフェース・コントロールは、セキュア・ゲストの要求された起動を排除する。たとえメタデータが完全性チェックに合格したとしても、セキュア・インターフェース・コントロールは依然としてセキュア・ゲストの起動を打ち切ることができる。
【0032】
セキュア・インターフェース・コントロールが、メタデータは完全性チェックに合格したと決定した場合、セキュア・インターフェース・コントロールは、メタデータ内のコントロールを取得する(130)。セキュア・インターフェース・コントロールは、ホスト・システムのシステム設定を分析して、システム設定がメタデータ内のコントロールに適合するかどうかを決定し、セキュア・ゲストがシステム内で開始されることが許されるかどうかを決定する(140)。セキュア・インターフェース・コントロールが、メタデータに基づいて、セキュア・ゲストを開始することは許されないと決定した場合、セキュア・インターフェース・コントロールは、所有者、またはセキュア・ゲストの起動を要求したエンティティあるいはその両方にエラーを返す(145)。エラーを返すことによって、セキュア・インターフェース・コントロールは、セキュア・ゲストを開始する試みを打ち切っている。本発明のいくつかの実施形態において、セキュア・インターフェース・コントロールは、セキュア・ゲストを開始する要求を無視する。セキュア・インターフェース・コントロールの構成に依存して、コントロールがシステム設定に適合しないことに基づいて、イメージに結び付けられたメタデータがセキュア・ゲストは所与のシステムにおいて許可されないことを示す場合、セキュア・ゲスト(イメージから)を開始する、ハイパーバイザからのコマンドに対する応答は変わり得る。セキュア・インターフェース・コントロールが、メタデータおよびシステム設定に基づいて、セキュア・ゲストは許可されると決定した場合、セキュア・インターフェース・コントロールは、イメージに基づいて、ハイパーバイザがセキュア・ゲストを起動することを可能にする(150)。セキュア・インターフェース・コントロールは、セキュア・ゲストを開始する試みを傍受するので、セキュア・インターフェース・コントロールは、セキュア・ゲストが開始され得る前に、セキュア・ゲストを開始するコマンドを中断する。従って、セキュア・インターフェース・コントロールは、メタデータ内のコントロールに基づいて、システム設定と競合する要求を有効に拒絶する。様々なセキュア・ゲストの防止および許可は、システムのいずれかの他の構成要素がセキュア・ゲストを起動できる前に、セキュア・インターフェース・コントロールによって達成される。例えば、本発明のいくつかの実施形態において、セキュア・ゲストのイメージに結び付けられたメタデータ内のコントロールは、ホスト・システムがハードウェア測定を行うように構成されること、またはホスト・システムが非システム固有ホスト鍵を用いるように構成されること、あるいはその両方に基づいて、セキュア・インターフェース・コントロールにセキュア・ゲストを制約するように命令することができる。
【0033】
図1に戻ると、上記で論じられたようにセキュア・ゲストの実行時の間に、セキュア・インターフェース・コントロールはシステム設定を監視することができ(160)、セキュア・インターフェース・コントロールは、システム設定がコントロールと競合する形で変化したと決定した場合、これは、セキュア・ゲストが環境において実行することが許可されていたことを示すが、セキュア・インターフェース・コントロールは、実行時の間に、セキュア・ゲストを終了させる(またはハイパーバイザにセキュア・ゲストを終了させることあるいはその両方)ができる(170)。セキュア・インターフェース・コントロールは、このタイプの変化の出現の場合には、システム設定を監視し続けることができる(165)。本発明のいくつかの実施形態において、セキュア・インターフェース・コントロールは、セキュア・ゲストを終了させるようにハイパーバイザに命令する(例えば、強制する)。
【0034】
図2は、本発明のいくつかの実施形態の様々な態様を含む技術環境200である。
図2の技術環境200を備える構成要素は、どのように、セキュア・インターフェース・コントロールは、ゲスト所有者が、各所有者に対する固有の暗号化を通じて、ゲスト・イメージの機能性を制御することを可能にするか、およびセキュア・インターフェース・コントロールは、所与のイメージに基づいて、セキュア・ゲストが特定のホスト環境において実行することを可能/無効にするかを例示する。セキュア実行のために、セキュア・ゲスト210は、メタデータ240に暗号学的に結び付けられ、これは、セキュア・インターフェース・コントロール230に対してのみアクセス可能な秘密ホスト鍵に基づいて、セキュア・インターフェース・コントロール230(例えば、信頼できるファームウェア、信頼できる構成要素など)に安全に通信される。セキュア・ゲスト210の所有者は、セキュア・インターフェース・コントロール230を制御して、所有者によって課された環境的制約に基づいて、セキュア・ゲスト210の実行を許可または禁止する。例えば、所有者によって課された環境的制約は、セキュア・インターフェース・コントロール230を通して、ハードウェア測定を行うように構成されたホスト・システム内、または非システム固有ホスト鍵を用いるように構成されたホスト・システム上あるいはその両方で、セキュア・ゲストの実行を制限し得る。本発明のいくつかの実施形態において、メタデータの複数の部分を暗号化するための鍵は、セキュア・インターフェース・コントロール230にのみアクセス可能な秘密鍵を用いて導き出される。セキュア・ゲスト210に関連付けられたメタデータ240に示される所有者の優先に基づいて、セキュア・インターフェース・コントロール230は、システム設定270に基づいて、セキュア・ゲスト210の起動を制御する。セキュア・インターフェース・コントロール230はまた実行時の間にシステム設定270を監視し、それにより、セキュア・インターフェース・コントロール230は、セキュア・ゲスト210が技術環境200に適合することをコントロール260がもはや示さないようにシステム設定270が変化した場合、そしてそのとき、ハイパーバイザ220にセキュア・ゲスト210を終了させることができる。
【0035】
本発明のいくつかの実施形態において、セキュア・ゲスト210(例えば、仮想マシン、仮想サーバ)は、ハイパーバイザ220(例えば、仮想マシン・マネージャ)によって制御される。セキュア・インターフェース・コントロール250は、セキュア・ゲスト210の所有者から、ハイパーバイザ220を通じて、セキュア・ゲスト240に関連付けられたメタデータを取得する。このメタデータ240は、完全性が保護される(およびメタデータ240の一部、すなわち、セキュア・ゲスト250の秘密も機密性が保護される(すなわち、暗号化される))。本発明のいくつかの実施形態において、メタデータ240は、セキュア・ゲスト210のブートイメージに暗号学的に結び付けられる。本発明のいくつかの実施形態において、セキュア・ゲスト250の秘密は、セキュア・ゲストのインストール・データ(例えば、セキュア実行(SE)ヘッダ)に含まれ、これはセキュア・インターフェース・コントロール230が所有者から取得する。本発明のいくつかの実施形態において、メタデータ240は、同じ値を導き出し得る代替イメージを構築することが計算上実行不可能となるように、耐衝突性一方向関数(例えば、暗号学的ハッシュ関数)を用いて計算される、セキュア・ゲスト210のブートイメージから導き出された値を含む。
【0036】
図2に例示されるように、セキュア・ゲスト240に結び付けられたメタデータは、秘密250を備える。本発明のいくつかの実施形態において、ゲストのメタデータは完全性が保護され、秘密は、セキュア・インターフェース・コントロール230によって所有される秘密鍵を用いて導き出された鍵によって暗号化される。鍵によって暗号化されたデータは、所与のゲストのブートイメージの暗号化対策を備えることができる。従って、本発明のいくつかの実施形態において、秘密250を含むメタデータ240の一部分は、セキュア・インターフェース・コントロール230のみが計算できる鍵によって暗号化される。メタデータ240は、それ自体がセキュア・ゲスト210にアクセス可能である必要はない。
【0037】
メタデータ240はセキュア・ゲスト210のイメージに結び付けられ、秘密250はセキュア・ゲストのイメージに暗号学的に結び付けられるが、それはゲストの一部ではない。むしろ、本明細書で述べられるように、それはセキュア・インターフェース・コントロール(例えば、ファームウェア、信頼できる構成要素、ソフトウェア、ハードウェアなど)に、独立して移送される(例えば、
図1の110)。本発明の実施形態において、秘密250は、ゲスト・メタデータの一部として安全なチャネルを通して(すなわち、暗号化されて)移送され、ゲストに暗号学的に結び付けられる。本発明のいくつかの実施形態において、メタデータ240は、ゲストに暗号学的に結び付けられ(例えば、ゲスト・イメージの署名を含む)、それにより1人のゲストのメタデータは、他のゲストのメタデータとして誤用され得ない。従って、セキュア・インターフェース・コントロール230は、ゲスト・イメージと、メタデータ/秘密とが一緒に属することを検証することができる(例えば、
図1、120)。セキュア・インターフェース・コントロール230に(例えば、独立して、安全なチャネルを通して)移送されたメタデータ240は、完全性および機密性が保護される。
【0038】
秘密250を含むことに加えて、メタデータ240はまたコントロール260を含み、これはセキュア・インターフェース・コントロール230が、ハイパーバイザ220がセキュア・ゲスト210を起動/実行することを可能にするおよび禁止するために利用する。セキュア・ゲスト210が、技術環境200において起動すること(および、いくつかの場合において、実行を継続すること)を許されるかどうかは、メタデータ240内のコントロール260を、システム設定270と比較することに基づいて、セキュア・インターフェース・コントロール230によって決定される。セキュア・インターフェース・コントロール230は、システム設定270に基づいて、技術環境200との不適合性を示すメタデータ240(例えば、コントロール260)によって記述される制限に基づいて、ハイパーバイザ220がセキュア・ゲスト210を起動することを可能にせず、実行時の間に、ハイパーバイザ220にセキュア・ゲスト210を終了させることができる。本発明のいくつかの実施形態において、メタデータ240は、コントロールがポジティブの場合は、所与の技術環境の態様との適合性を、またはコントロールがネガティブの場合は、所与の技術環境における実行に対する制約を示すコントロール260を含む。従前のシステム設定270の値に基づいてセキュア・ゲスト210が前もって起動された後に、システム設定270が変化したとき、セキュア・インターフェース・コントロール230は、実行時の間に、セキュア・インターフェース・コントロール230が、変化後のシステム設定270がコントロール260に適合しないと決定し、それによりコントロール260がセキュア・ゲスト210は技術環境200において実行することが制約されることを示すことを理由として、ハイパーバイザ220にセキュア・ゲスト210を終了させることができる。
【0039】
本発明の実施形態において、セキュア・ゲスト210のイメージに結び付けられたメタデータ240内のコントロール260は、1つまたは複数の環境的制約を示す。本発明のいくつかの実施形態において、コントロール260の所与のコントロールの設定に応じて、セキュア・ゲスト210は、関連のある環境的制約が満たされる場合(例えば、システム設定270によって)に、開始されることができ、または開始され得ない。例えば、このようなコントロールがネガティブのとき、セキュア・インターフェース・コントロール230は、関連した環境的制約が満たされるとき、(例えば、ハイパーバイザ220によって)セキュア・ゲストの開始を抑止することができる。そうでなければコントロールがポジティブの場合、関連した環境的制約が満たされるとき、セキュア・インターフェース・コントロール230は、(例えば、ハイパーバイザ220によって)セキュア・ゲスト210の開始を許可することができる。セキュア・ゲスト210に対してメタデータ240を評価するとき、セキュア・インターフェース・コントロール230は、コントロール260を読み出すことができ、各コントロールに対して、セキュア・ゲスト210は、システム設定270に基づいて、コンピューティング環境200が各コントロールに対する関連した環境的制約を満たすかどうかを決定する。
【0040】
図3は、本発明のいくつかの実施形態の様々な態様を例示するワークフロー300である。
図3に例示されるように、本発明の様々な実施形態の態様は、セキュア実行ゲストの所有者がセキュア・インターフェース・コントロールに対して、特定のホスト環境において所有者のセキュア・ゲストが実行することを許可するまたは許可しないように命令することを可能にする。ゲスト所有者の決定は、特定のゲスト・イメージに固有のものとすることができ、ゲスト所有者は、セキュア・ゲストに暗号学的に結び付けられたメタデータを利用して、一般に、システムによって(すなわち、セキュア・インターフェース・コントロールによって)強制されるように、決定をシステムに通信する。
【0041】
図3に戻ると、本発明の実施形態において、コンピューティング・システム内のセキュア・インターフェース・コントロールはハイパーバイザに通信可能に結合され、ハイパーバイザは1人または複数のゲストを管理するとして、セキュア・インターフェース・コントロールは、ハイパーバイザによって開始されることになるセキュア・ゲストのイメージに結び付けられたメタデータを取得し、メタデータは1つまたは複数のコントロールを備え、1つまたは複数のコントロールの各コントロールは、セキュア・インターフェース・コントロールに、セキュア・ゲストが特定の技術環境において実行することが許可されるかどうかを示す(310)。メタデータ自体は、セキュア・ゲストに対してアクセス不可能とすることができる。メタデータを取得することの一部として、本発明のいくつかの実施形態において、セキュア・インターフェース・コントロールは、セキュア・ゲストのイメージに結び付けられたメタデータの一部分を復号する。メタデータは完全性が保護され、本発明のいくつかの実施形態において、この部分はセキュア・ゲストのブートイメージの暗号化対策を備えた秘密鍵を用いて導き出された鍵によって暗号化されている。秘密鍵は、セキュア・インターフェース・コントロールによって所有され、セキュア・インターフェース・コントロールによって排他的に用いられ得る。秘密鍵を用いて導き出された鍵は、セキュア・インターフェース・コントロールと所有者との間で(例えば、それらのみで)共有され得る。本発明のいくつかの実施形態において、メタデータは、耐衝突性一方向関数を利用して計算された、セキュア・ゲストのブートイメージから導き出された値を含む。
【0042】
図2に例示されるように、1つまたは複数のコントロール(例えば、
図2、260)は、メタデータ(例えば、
図2、240)の一部である。本発明のいくつかの実施形態において、1つまたは複数のコントロールは、メタデータの暗号化された部分に含まれる。セキュア・インターフェース・コントロールは、セキュア・ゲストのイメージに結び付けられた、メタデータのこの部分を復号することができ、メタデータは完全性が保護され、暗号化された部分は、セキュア・ゲストのブートイメージの暗号化対策を備え、暗号化された部分は、秘密鍵を用いて導き出された鍵によって暗号化される。本発明のいくつかの実施形態において、秘密鍵は、セキュア・ゲストのブートイメージの暗号化対策を備えた秘密鍵を用いて導き出された鍵による。コントロールはそれぞれ、様々なシステム設定に対してポジティブ指定またはネガティブ指定を備え、ポジティブ指定は、セキュア・ゲストが所与のシステム設定に基づいて実行することが許可されることを示し、ネガティブ指定は、ゲストが所与のシステム設定に基づいて実行することが許可されないことを示す。
【0043】
図3を参照すると、セキュア・インターフェース・コントロールは、イメージに基づいて、セキュア・ゲストを開始するコマンドを傍受する(320)。本発明のいくつかの実施形態において、コマンドは、ホスト・システムのゲスト実行を管理するハイパーバイザ(例えば、安全ではないエンティティ)による。セキュア・インターフェース・コントロールは、1つまたは複数のコントロールに基づいて、セキュア・ゲストが、システム設定によって規定されるのに従って、技術環境において実行することが許可されるかどうかを決定する(330)。本発明のいくつかの実施形態において、セキュア・ゲストが実行することが許可されるかどうかを決定するために、セキュア・インターフェース・コントロールは、1つまたは複数のコントロールにおいて、システム設定の1つまたは複数に関連したコントロールを識別する(334)。セキュア・インターフェース・コントロールは、システム設定に基づいて、コントロールがセキュア・ゲストを実行することを可能にするかそれとも制限するかを決定する(336)。
【0044】
セキュア・ゲストが実行することが許可されるとの決定に基づいて、セキュア・インターフェース・コントロールは、ハイパーバイザが、コンピューティング・システム内で、イメージに基づいて、セキュア・ゲストの実行を始めることを可能にする(340)。セキュア・ゲストが実行することが許可されないとの決定に基づいて、セキュア・インターフェース・コントロールは、セキュア・ゲストを開始するコマンドを無視する(345)。コマンドを無視することによって、セキュア・コントロール・インターフェースは、ハイパーバイザがセキュア・ゲストの実行を始めることを防止する。
【0045】
本発明のいくつかの実施形態において、セキュア・インターフェース・コントロールは、セキュア・ゲストの実行時の間に、設定に変更がなされたと決定する(350)。セキュア・インターフェース・コントロールは、1つまたは複数のコントロールに基づいて、システム設定によって定義されるように(変更に基づいて)、セキュア・ゲストが技術環境内で実行することが許可されるかどうかを決定する(330)。セキュア・ゲストが実行することが許可されるかどうかを決定するために、本発明のいくつかの実施形態において、セキュア・インターフェース・コントロールは、1つまたは複数のコントロールにおいて、システム設定の1つまたは複数に関連したコントロールを識別する(334)。セキュア・インターフェース・コントロールは、システム設定に基づいて、コントロールが、セキュア・ゲストが実行することを可能にするかそれとも制限するかを決定する(336)。セキュア・ゲストが実行することが許可されるとの決定に基づいて、セキュア・インターフェース・コントロールは、コンピューティング・システム内で、イメージに基づいて、ハイパーバイザがセキュア・ゲストの実行を継続することを可能にする(340)。セキュア・ゲストが実行することが許可されないとの決定に基づいて、セキュア・インターフェース・コントロールは、ハイパーバイザにセキュア・ゲストを終了させる(335)。
【0046】
本発明の実施形態は、コンピュータによって実施される方法、コンピュータ・プログラム製品、およびコンピュータ・システムを含み、コンピューティング・システム内のセキュア・インターフェース・コントロールは、ファームウェア、ハードウェア、およびソフトウェアの任意の1つまたはそれらの組み合わせとすることができるとして、セキュア・インターフェース・コントロールは、所有者によって開始されることになるセキュア・ゲストのイメージに結び付けられ、ハイパーバイザによって管理されるメタデータを取得する。ハイパーバイザは1人または複数のゲストを管理し、メタデータは1つまたは複数のコントロールを備える。1つまたは複数のコントロールの各コントロールは、セキュア・インターフェース・コントロールに、イメージを用いて生成されたセキュア・ゲストが、システム設定に基づいて、セキュア・インターフェース・コントロールによって起動される(または維持される)ことが許可されるかどうかを示す。例えば、本発明のいくつかの実施形態において、コンピューティング・システム内のセキュア・インターフェース・コントロール(ソフトウェア、ハードウェア、またはファームウェアあるいはその組み合わせなど)のプログラム・コードは、所有者のセキュア・ゲストのイメージに結び付けられ、ハイパーバイザによって管理されるメタデータを取得し、セキュア・インターフェース・コントロールは、ハイパーバイザに通信可能に結合され、ハイパーバイザは1人または複数のゲストを管理し、1つまたは複数のコントロールの各コントロールは、セキュア・インターフェース・コントロールに、コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如に基づいて、コンピューティング・システム内のイメージを用いて生成されたセキュア・ゲストのインスタンスをハイパーバイザが実行することが許可されるかどうかを示す。プログラム・コードは、ハイパーバイザによる、セキュア・ゲストのイメージからのセキュア・ゲストのインスタンスを起動するコマンドを傍受する。プログラム・コードは、コンピューティング・システム内の1つまたは複数のシステム設定の存在または欠如を決定する。プログラム・コードは、1つまたは複数のコントロールと、1つまたは複数のシステム設定の存在または欠如とに基づいて、ハイパーバイザがインスタンスを実行することが許可されるかどうかを決定する。ハイパーバイザがインスタンスを実行することが許可されるとの決定に基づいて、プログラム・コードは、傍受されたコマンドをハイパーバイザに中継することに基づいて、コンピューティング・システムにおいて、ハイパーバイザによるインスタンスの起動を可能にする。ハイパーバイザがインスタンスを実行することが許可されないとの決定に基づいて、プログラム・コードはコマンドを無視する。
【0047】
本発明のいくつかの実施形態において、プログラム・コードがメタデータを取得したとき、プログラム・コードは、セキュア・ゲストのイメージに結び付けられたメタデータの一部分を復号し、メタデータは完全性が保護され、セキュア・ゲストのブートイメージの暗号化対策を備えた一部分は、秘密鍵を用いて導き出された鍵によって暗号化されている。本発明のいくつかの実施形態において、メタデータの暗号化された部分は、1つまたは複数のコントロールを備える。1つまたは複数のコントロールの各コントロールは、環境的制約を備えることができる。本発明のいくつかの実施形態において、環境的制約は、ハードウェア測定を行うように構成されたシステム、および非システム固有ホスト鍵を用いるように構成されたシステムからなる群から選択される。
【0048】
本発明のいくつかの実施形態において、秘密鍵は、セキュア・インターフェース・コントロールによって所有され、セキュア・インターフェース・コントロールによって排他的に用いられる。
【0049】
本発明のいくつかの実施形態において、秘密鍵を用いて導き出された鍵は、セキュア・インターフェース・コントロールと所有者との間で共有される。
【0050】
本発明のいくつかの実施形態において、メタデータは、耐衝突性一方向関数を利用して計算された、セキュア・ゲストのブートイメージから導き出された値を備える。
【0051】
本発明のいくつかの実施形態において、1つまたは複数のコントロールはそれぞれ、所与のシステム設定に対してポジティブ指定またはネガティブ指定を備え、ポジティブ指定は、セキュア・ゲストのインスタンスが所与のシステム設定を備えたコンピューティング・システム内で実行することが許可されたことを示し、ネガティブ指定は、セキュア・ゲストのインスタンスが所与のシステム設定を備えたコンピューティング・システム内で実行することが許可されないことを示す。
【0052】
本発明のいくつかの実施形態において、メタデータは、セキュア・ゲストのインスタンスにアクセス不可能である。
【0053】
本発明のいくつかの実施形態において、ハイパーバイザがインスタンスを実行することが許可されるかどうかを、プログラム・コードが決定することは、1つまたは複数のコントロールのうちの、1つまたは複数のシステム設定の設定に関連したコントロールを、プログラム・コードが識別することと、コントロールに基づいて、コントロールが、インスタンスを実行することを可能にするかそれとも制限するかを、プログラム・コードが決定することとをさらに含む。
【0054】
本発明のいくつかの実施形態において、プログラム・コードは、インスタンスの実行時の間に、1つまたは複数のシステム設定を監視する。プログラム・コードは、1つまたは複数の設定の少なくとも1つの設定が、実行時の間に変化したことを決定する。プログラム・コードは、少なくとも1つの設定に関連した1つまたは複数のコントロールの所与のコントロールを識別する。プログラム・コードは、少なくとも1つの設定および所与のコントロールに基づいて、ハイパーバイザがインスタンスを実行することが許可されたかどうかを決定する。ハイパーバイザがインスタンスを実行することが許可されないとの決定に基づいて、プログラム・コードは、ハイパーバイザを通じて、インスタンスを終了させることができる。
【0055】
本発明のいくつかの実施形態において、プログラム・コードが、ハイパーバイザによってセキュア・ゲストのイメージからのセキュア・ゲストのインスタンスを起動するコマンドを傍受することは、プログラム・コードが、メタデータに対して完全性チェックを行うことと、完全性チェックの完了に成功したことに基づいて、プログラム・コードが、メタデータ内の1つまたは複数のコントロールを読み出すこととをさらに含む。
【0056】
次に
図4を参照すると、コンピューティング・ノードの例の概略図であり、これはクラウド・コンピューティング・ノード10とすることができる。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で述べられる本発明の実施形態の使用または機能の範囲に関して何らかの限定を示唆するものではない。それに関わらず、クラウド・コンピューティング・ノード10は、本明細書の上記で記述された機能の任意のものが実施されることまたは行うことあるいはその両方の能力を有する。本発明の実施形態において、セキュア・ゲスト210(
図2)、セキュア・インターフェース・コントロール230(
図2)、またはハイパーバイザ220(
図2)あるいはその組み合わせは、それぞれ、クラウド・コンピューティング・ノード10(
図4)、およびクラウド・コンピューティング・ノード10でなければ、クラウド・コンピューティング・ノード10の態様を含む1つまたは複数の汎用コンピューティング・ノード上で実行するものと理解され得る。
【0057】
クラウド・コンピューティング・ノード10にはコンピュータ・システム/サーバ12があり、これは数多くの他の汎用または専用コンピューティング・システム環境もしくは構成と共に動作できる。コンピュータ・システム/サーバ12と共に用いるのに適し得る、よく知られたコンピューティング・システム、環境、または構成あるいはその組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブルな民生用電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスの任意のものを含んだ分散型クラウド・コンピューティング環境などを含むがそれらに限定されない。
【0058】
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行される、プログラム・モジュールなどの、コンピュータ・システム実行可能命令との一般的な関連において述べられ得る。一般にプログラム・モジュールは、特定のタスクを行う、または特定の抽象データ・タイプを実施する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造体などを含み得る。コンピュータ・システム/サーバ12は、通信ネットワークを通して結び付けられたリモート処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境において実施され得る。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ記憶デバイスを含むローカルおよびリモート・コンピュータ・システム記憶媒体内に配置され得る。
【0059】
図4に示されるように、クラウド・コンピューティング・ノード10として利用され得るコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ12の構成要素は、1つまたは複数のプロセッサまたは処理ユニット16、システム・メモリ28、およびシステム・メモリ28を含む様々なシステム構成要素をプロセッサ16に結合するバス18を含み得るが、それらに限定されない。
【0060】
バス18は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、およびアクセラレイテッド・グラフィックス・ポート、および多様なバス・アーキテクチャのいずれかを用いたプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。例として限定せずに、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスを含む。
【0061】
コンピュータ・システム/サーバ12は、通常多様なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12によってアクセス可能な任意の入手可能な媒体とすることができ、これは共に揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体を含む。
【0062】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30またはキャッシュ・メモリ32あるいはその両方などの、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12はさらに、リムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ・システム記憶媒体を含み得る。例のみとして、記憶システム34には、非リムーバブル、不揮発性磁気媒体(図示されず、通常「ハード・ドライブ」と呼ばれる)からの読み出しおよびそれへの書き込みがもたらされ得る。図示されないが、リムーバブル、不揮発性磁気ディスク(例えば「フロッピ・ディスク(登録商標)」)からの読み出しおよびそれへの書き込みのための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、または他の光媒体などのリムーバブル、不揮発性光ディスクからの読み出しまたはそれへの書き込みのための光ディスク・ドライブがもたらされ得る。このような場合、それぞれは1つまたは複数のデータ媒体インターフェースによってバス18に接続され得る。以下でさらに示され、述べられるようにメモリ28は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの(例えば少なくとも1つの)セットを有する少なくとも1つのプログラム製品を含み得る。
【0063】
プログラム・モジュール42の(少なくとも1つの)セットを有する、プログラム/ユーティリティ40は、例としておよび限定せずに、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと共に、メモリ28に記憶され得る。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはそれらの何らかの組み合わせのそれぞれは、ネットワーク化環境の実装形態を含むことができる。プログラム・モジュール42は一般に、本明細書で述べられる本発明の実施形態の機能または方法論あるいはその両方を実行する。
【0064】
コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイス、ディスプレイ24などの1つまたは複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ12が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えばネットワーク・カード、モデムなど)あるいはその組み合わせと、通信することができる。このような通信は、入力/出力(I/O)インターフェース22を経由して生じることができる。さらにコンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を経由して、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、またはパブリック・ネットワーク(例えばインターネット)あるいはその組み合わせなどの、1つまたは複数のネットワークと通信することができる。示されるように、ネットワーク・アダプタ20は、バス18を通じてコンピュータ・システム/サーバ12の他の構成要素と通信する。図示されないが、コンピュータ・システム/サーバ12と共に、他のハードウェアまたはソフトウェア構成要素あるいはその両方が用いられ得ることが理解されるべきである。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ記憶システムなどを含むが、それらに限定されない。
【0065】
本開示はクラウド・コンピューティングについての詳しい説明を含むが、本明細書に記載される教示の実施は、クラウド・コンピューティング環境に限定されないことが理解されるべきである。むしろ本発明の実施形態は、現在知られているまたは後に開発される任意の他のタイプのコンピューティング環境と共に実施される能力を有する。
【0066】
クラウド・コンピューティングは、最小の管理努力またはサービスのプロバイダとの対話により迅速に用意され、リリースされ得る、構成可能なコンピューティング・リソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有されたプールへの便利な、オンデマンド・ネットワーク・アクセスを可能にするためのサービス供給のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
【0067】
特徴は以下の通りである。
【0068】
オンデマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの人的対話を必要とせずに、自動的に必要に応じて、サーバ時間およびネットワーク・ストレージなどの、コンピューティング能力を一方的に用意することができる。
【0069】
広いネットワーク・アクセス:能力はネットワークを通して使用可能であり、標準の機構を通じてアクセスされ、これは異種のシンまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を促進する。リソース・プーリング:プロバイダのコンピューティング・リソースは、異なる物理および仮想リソースが需要に従って動的に割り当ておよび再割り当てされながら、マルチ・テナント・モデルを用いて複数の消費者にサービスするようにプールされる。消費者は一般に、もたらされるリソースの正確な位置に対する制御または知識をもたないが、抽象化のより高いレベルにおいて位置を指定する(例えば国、州、またはデータセンタ)ことが可能になり得るという点で、位置からの独立性の感覚がある。迅速な融通性:能力は、いくつかの場合において自動的に、速やかにスケール・アウト、および速やかにスケール・インするように迅速にリリースされるように、迅速におよび弾力的に用意され得る。消費者には、用意するために使用可能な能力は無限であるように見え、任意の時点で任意の量において購入され得る。
【0070】
対策されたサービス:クラウド・システムは、サービスのタイプ(例えばストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に対して適した、何らかのレベルの抽象化における計量能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用量は監視され、制御され、および報告されて、利用されるサービスのプロバイダおよび消費者の両方に対して透明性をもたらす。
【0071】
サービス・モデルは以下の通りである。
【0072】
サービスとしてのソフトウェア(SaaS):消費者にもたらされる能力は、クラウド・インフラストラクチャ上で実行するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えばウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通して、様々なクライアント・デバイスからアクセス可能である。限られたユーザ固有のアプリケーション構成設定を可能性のある例外として、消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション能力を含む、基礎をなすクラウド・インフラストラクチャを管理または制御しない。
【0073】
サービスとしてのプラットフォーム(PaaS):消費者にもたらされる能力は、プロバイダによってサポートされるプログラミング言語およびツールを用いて作り出された、消費者により作り出されたまたは取得されたアプリケーションを、クラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎をなすクラウド・インフラストラクチャを管理または制御しないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションに対する制御を有する。
【0074】
サービスとしてのインフラストラクチャ(IaaS):消費者にもたらされる能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースを用意することであり、消費者は任意のソフトウェアを展開および実行することができ、これはオペレーティング・システムおよびアプリケーションを含むことができる。消費者は、基礎をなすクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対する制御、および場合によっては選ばれたネットワーク化構成要素(例えばホスト・ファイアウォール)の限られた制御を有する。
【0075】
展開モデルは以下の通りである。
【0076】
プライベート・クラウド:クラウド・インフラストラクチャは、専ら組織のために運用される。これは組織またはサード・パーティによって管理されることができ、構内または構外に存在し得る。
【0077】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共通の関心(例えばミッション、セキュリティ要件、ポリシー、およびコンプライアンス配慮)を有する特定のコミュニティをサポートする。これは組織またはサード・パーティによって管理されることができ、構内または構外に存在し得る。
【0078】
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大きな業界グループに対して使用可能とされ、クラウド・サービスを販売する組織によって所有される。
【0079】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーション可搬性(例えばクラウドの間の負荷バランスのためのクラウド・バースティング)を可能にする標準化されたまたは独自開発の技術によって一緒に結び付けられた、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成である。
【0080】
クラウド・コンピューティング環境は、ステートレス性、低いカップリング、モジュール性、およびセマンティック相互運用性に焦点を当てて方向付けられたサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0081】
次に
図5を参照すると、例示的クラウド・コンピューティング環境50が示される。示されるように、クラウド・コンピューティング環境50は、例えば携帯情報端末(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54Nあるいはその組み合わせなどの、クラウド消費者によって用いられるローカル・コンピューティング・デバイスがそれと通信することができる、1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は互いに通信することができる。それらは、本明細書において上記で述べられたようなプライベート、コミュニティ、パブリック、またはハイブリッド・クラウド、またはそれらの組み合わせなどの、1つまたは複数のネットワークにおいて物理的または仮想的にグループ化(図示せず)され得る。これはクラウド・コンピューティング環境50が、クラウド消費者はそのためにローカル・コンピューティング・デバイス上にリソースを維持する必要がない、サービスとしてのインフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組み合わせを提供することを可能にする。
図5に示されるコンピューティング・デバイス54A~Nのタイプは例示のためのみであること、ならびにコンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続(例えばウェブ・ブラウザを用いた)あるいはその両方を通して、任意のタイプのコンピュータ化されたデバイスと通信できることが理解される。
【0082】
次に
図6を参照すると、クラウド・コンピューティング環境50(
図5)によってもたらされる、機能抽象化レイヤのセットが示される。前もって、
図6に示される構成要素、レイヤ、および機能は、例示のためのみであり、本発明の実施形態はそれらに限定されないことが理解されるべきである。示されるように、以下のレイヤおよび対応する機能がもたらされる。
【0083】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、記憶デバイス65、ならびにネットワークおよびネットワーク化構成要素66を含む。いくつかの実施形態において、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0084】
仮想化レイヤ70は抽象化レイヤをもたらし、それから以下の仮想エンティティの例、すなわち仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75がもたらされ得る。
【0085】
一例において管理レイヤ80は、以下に述べられる機能をもたらすことができる。リソース供給81は、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソースおよび他のリソースの動的調達をもたらす。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されるのに従ってコスト追跡、およびこれらのリソースの消費に対する請求書作成または送付をもたらす。一例においてこれらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクに対する識別情報検証、ならびにデータおよび他のリソースに対する保護をもたらす。ユーザ・ポータル83は、消費者およびシステム管理者のために、クラウド・コンピューティング環境へのアクセスをもたらす。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割り振りおよび管理をもたらす。サービス・レベル・アグリーメント(SLA)計画および履行85は、SLAに従って将来の要求が予想されるクラウド・コンピューティング・リソースの事前準備および調達をもたらす。
【0086】
作業負荷レイヤ90は、クラウド・コンピューティング環境が利用され得る機能性の例をもたらす。このレイヤからもたらされ得る作業負荷および機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、およびセキュア・インターフェース・コントロール96を通じた、環境要因に基づく、セキュア・ゲストの実行の制御を含む。
【0087】
本発明は、統合の任意の可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組み合わせとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有する、コンピュータ可読記憶媒体を含み得る。
【0088】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば電子的記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁的記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組み合わせとすることができるが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードまたはその上に記録された命令を有する溝状の隆起構造などの機械的エンコード型デバイス、および上記の任意の適切な組み合わせを含む。本明細書で用いられるコンピュータ可読記憶媒体とは、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を通して伝搬する電磁波(例えば光ファイバ・ケーブルを通過する光パルス)、または線材を通して送信される電気信号など、それ自体が一時的信号であると解釈されるものではない。
【0089】
本明細書で述べられるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークまたは無線ネットワークあるいはその組み合わせを経由して外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組み合わせを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【0090】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様なプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書かれた、ソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンド・アロン・ソフトウェア・パッケージとして、専らユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは専らリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通してユーザのコンピュータに接続されることができ、あるいは外部コンピュータへの接続がなされ得る(例えばインターネット・サービス・プロバイダを用いてインターネットを通して)。いくつかの実施形態において、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行し得る。
【0091】
本明細書において本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【0092】
これらのコンピュータ可読プログラム命令は、マシンを生じるように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサにもたらされることができ、それにより、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置によって実行する命令は、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定された機能/動作を実施するための手段を作り出す。これらのコンピュータ可読プログラム命令はまた、特定のやり方で機能するようにコンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組み合わせに指示することができる、コンピュータ可読記憶媒体に記憶されることができ、それにより命令が記憶されたコンピュータ可読記憶媒体は、フローチャートまたはブロック図あるいはその両方のブロックにおいて規定された機能/動作の態様を実施する命令を含んだ製品を備える。
【0093】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされて、コンピュータによって実施されるプロセスを生じるように、一連の動作ステップが、コンピュータ、他のプログラマブル装置、または他のデバイス上で行われるようにさせることができ、それにより、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令は、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定された機能/動作を実施する。
【0094】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を例示する。この関連において、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える、モジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で生じ得る。例えば連続して示される2つのブロックは、実際は、実質的に並行して実行されることができ、またはブロックは時には関わる機能に応じて、逆の順序で実行され得る。またブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能または動作を行う、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する、専用ハードウェア・ベースのシステムによって実施され得ることが留意されるであろう。
【0095】
本明細書で用いられる専門用語は、特定の実施形態を述べるためのみであり、限定するものではない。本明細書で用いられる単数形「a」、「an」、および「the」は、文脈が異なる解釈を明らかに示す場合を除き、複数形も含むものである。さらに本明細書で用いられるとき、用語「備える(comprises)」または「備える(comprising)」あるいはその両方は、記載された特徴、整数値、ステップ、動作、要素、または構成要素あるいはその組み合わせの存在を明記するものであるが、1つまたは複数の他の特徴、整数値、ステップ、動作、要素、構成要素、またはそれらのグループあるいはその組み合わせの存在または追加を除外するものではないことが理解されるであろう。
【0096】
以下の「特許請求の範囲」における対応する構造、材料、動作、およびすべての手段またはステップおよび機能要素の等価物は、具体的に特許請求されるものとして、他の特許請求される要素との組み合わせにおいて機能を行うための、構造、材料、または動作を含むことが意図される。1つまたは複数の実施形態の説明は、例示および説明のために示されたが、網羅的であること、または開示された形に限定されることを意図するものではない。当業者には、多くの変更および変形が明らかになるであろう。実施形態は、様々な態様、および実際の応用例を最もよく説明するように、ならびに他の当業者が、企図される特定の使用に適するように様々な変更を有する様々な実施形態を理解することを可能にするように選ばれ、述べられた。