特許第6321041号(P6321041)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アマゾン・テクノロジーズ、インコーポレイテッドの特許一覧

特許6321041特権的コンピューティングオペレーションの結果の保護
<>
  • 特許6321041-特権的コンピューティングオペレーションの結果の保護 図000002
  • 特許6321041-特権的コンピューティングオペレーションの結果の保護 図000003
  • 特許6321041-特権的コンピューティングオペレーションの結果の保護 図000004
  • 特許6321041-特権的コンピューティングオペレーションの結果の保護 図000005
  • 特許6321041-特権的コンピューティングオペレーションの結果の保護 図000006
  • 特許6321041-特権的コンピューティングオペレーションの結果の保護 図000007
  • 特許6321041-特権的コンピューティングオペレーションの結果の保護 図000008
  • 特許6321041-特権的コンピューティングオペレーションの結果の保護 図000009
  • 特許6321041-特権的コンピューティングオペレーションの結果の保護 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6321041
(24)【登録日】2018年4月13日
(45)【発行日】2018年5月9日
(54)【発明の名称】特権的コンピューティングオペレーションの結果の保護
(51)【国際特許分類】
   G06F 21/60 20130101AFI20180423BHJP
   H04L 9/08 20060101ALI20180423BHJP
   H04L 9/32 20060101ALI20180423BHJP
   G06F 11/30 20060101ALI20180423BHJP
【FI】
   G06F21/60 320
   H04L9/00 601B
   H04L9/00 601F
   H04L9/00 675D
   G06F11/30 140C
【請求項の数】15
【全頁数】25
(21)【出願番号】特願2015-555247(P2015-555247)
(86)(22)【出願日】2014年1月22日
(65)【公表番号】特表2016-509726(P2016-509726A)
(43)【公表日】2016年3月31日
(86)【国際出願番号】US2014012605
(87)【国際公開番号】WO2014116744
(87)【国際公開日】20140731
【審査請求日】2015年8月18日
(31)【優先権主張番号】13/746,780
(32)【優先日】2013年1月22日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】506223509
【氏名又は名称】アマゾン・テクノロジーズ、インコーポレイテッド
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(72)【発明者】
【氏名】ブランドワイン、エリック・ジェイソン
(72)【発明者】
【氏名】ウィルソン、マシュー・シャウン
【審査官】 金木 陽一
(56)【参考文献】
【文献】 特開2002−073358(JP,A)
【文献】 特開2003−006306(JP,A)
【文献】 特表2005−529392(JP,A)
【文献】 特開2007−122303(JP,A)
【文献】 特開2007−214767(JP,A)
【文献】 特開2011−211255(JP,A)
【文献】 特開2011−227766(JP,A)
【文献】 特開2012−194710(JP,A)
【文献】 特開2013−058006(JP,A)
【文献】 特表2013−508833(JP,A)
【文献】 国際公開第2011/047912(WO,A1)
【文献】 米国特許出願公開第2003/0101322(US,A1)
【文献】 米国特許出願公開第2009/0293057(US,A1)
【文献】 米国特許出願公開第2010/0169948(US,A1)
【文献】 米国特許出願公開第2010/0281273(US,A1)
【文献】 米国特許出願公開第2011/0208908(US,A1)
【文献】 米国特許出願公開第2013/0013921(US,A1)
【文献】 米国特許出願公開第2014/0040997(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
G06F 11/30
H04L 9/08
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
仮想化されたコンピューティング環境においてデータを保護するためのコンピュータ実現方法において、
ホストコンピューティングデバイスの仮想化層で特権操作を行うための要求を生成することと、ここにおいて、前記仮想化層はハイパーバイザーまたはカーネルの少なくとも1つを含み、前記仮想化層で前記特権操作を行うための前記要求は、信頼できる関係者から受信され、アプリケーションプログラミングインターフェースを介して前記仮想化層に提出され、
情報を暗号化するために使用することができる公開鍵であって、前記公開鍵を使用して暗号化された前記情報を解読するために使用することができる対応する秘密鍵を有する、前記公開鍵を取得し、かつ前記公開鍵を前記要求内に含めることと、
前記公開鍵を含む前記要求を前記ホストコンピューティングデバイスの前記仮想化層であって、前記特権操作を実行して結果を生成するように構成される、前記仮想化層に提出することと、を含み、
前記仮想化層が、前記要求と共に提供された前記公開鍵を使用することにより、前記結果が前記ホストコンピューティングデバイスの前記仮想化層の外部に送信される前に、前記特権操作の前記結果を暗号化するように構成され、前記結果は異常状態の情報を含むハイパーバイザーまたはカーネルの情報を備える
コンピュータ実現方法。
【請求項2】
前記ホストコンピューティングデバイスの前記仮想化層の外部に前記結果が通信される前に、前記仮想化層が、前記結果を暗号化するように構成される、請求項1に記載のコンピュータ実現方法。
【請求項3】
前記仮想化層が、前記暗号化された結果を前記ホストコンピューティングデバイスに対して外部にある場所に通信するように構成され、前記暗号化された結果が、秘密鍵を使用することにより前記場所で解読される、請求項1に記載のコンピュータ実現方法。
【請求項4】
前記特権操作を行うための前記要求が、第2の鍵を使用して暗号化され、前記要求が、前記仮想化層によって解読可能である、請求項1に記載のコンピュータ実現方法。
【請求項5】
前記特権操作を行うための前記要求が、サービスの秘密鍵を使用して署名され、前記要求の署名が、サービス公開鍵を使用して前記仮想化層によって確認可能である、請求項1に記載のコンピュータ実現方法。
【請求項6】
証明機関(CA)から前記サービス公開鍵を含む証明書を取得することをさらに含む、請求項5に記載のコンピュータ実現方法。
【請求項7】
前記公開鍵を取得することが、
前記公開鍵の所有権を証明する少なくとも1つの証明書を、証明機関(CA)を使用して取得することをさらに含む、請求項1に記載のコンピュータ実現方法。
【請求項8】
前記要求が、複数のホストコンピューティングデバイスを監視する監視サービスによって生成される、請求項1に記載のコンピュータ実現方法。
【請求項9】
前記複数のホストコンピューティングデバイスの少なくとも1つに関連付けられたプロファイルに少なくとも部分的に基づいて、前記複数のホストコンピューティングデバイスの前記少なくとも1つが異常に動作していることを、前記監視サービスによって検出することをさらに含む、請求項8に記載のコンピュータ実現方法。
【請求項10】
前記要求が、指定された期間に拘束される、請求項1に記載のコンピュータ実現方法。
【請求項11】
前記特権操作が、前記ホストコンピューティングデバイスの前記仮想化層の実行中のメモリイメージを変更する、請求項1に記載のコンピュータ実現方法。
【請求項12】
前記特権操作が、
前記ホストコンピューティングデバイスのメモリ内の場所であって、前記仮想化層に関連付けられた場所を読み取ることを、さらに含む、請求項1に記載のコンピュータ実現方法。
【請求項13】
仮想化されたコンピューティング環境においてデータを保護するためのコンピューティングシステムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されると、
ホストコンピューティングデバイスの仮想化層で特権操作を行うための要求を信頼できる関係者から受け取ることと、ここにおいて、前記仮想化層はハイパーバイザーまたはカーネルの少なくとも1つを含み、前記仮想化層で前記特権操作を行うための前記要求はアプリケーションプログラミングインターフェースを介して前記仮想化層に提出され、前記要求は公開鍵を含み、前記公開鍵が、情報を暗号化するために使用することができ、前記公開鍵を使用して暗号化された前記情報を解読するために使用することができる対応する秘密鍵を有し、
前記ホストコンピューティングデバイスのアプリケーションプログラミングインターフェース(API)に前記要求を発行することと、を前記少なくとも1つのプロセッサに行わせる命令を含むメモリと、を備え、
前記仮想化層が、前記特権操作を実行して、結果を生成し、前記結果が前記ホストコンピューティングデバイスの前記仮想化層の外部に送信される前に、前記要求と共に提供された前記公開鍵を使用して前記結果を暗号化するように構成され、前記結果は異常状態の情報を含むハイパーバイザーまたはカーネルの情報を備える
コンピューティングシステム。
【請求項14】
前記ホストコンピューティングデバイスであって、少なくとも1つのプロセッサと、実行されると、
前記特権操作を実行することと、
前記要求と共に提供される前記公開鍵を使用して前記結果を暗号化することと、
前記暗号化された結果を所定の場所に格納することと、を前記ホストコンピューティングデバイスに行わせる命令を含むメモリと、を備える前記ホストコンピューティングデバイスをさらに備える、請求項13に記載のコンピューティングシステム。
【請求項15】
前記特権操作を行うための要求が、第2の鍵を使用して暗号化され、前記要求が、前記仮想化層によって解読される、請求項13に記載のコンピューティングシステム。
【発明の詳細な説明】
【背景技術】
【0001】
インターネットのようなネットワーク上で利用可能となるアプリケーション及びサービスの数が増加するにつれて、クラウドコンピューティングのような技術に目を向けるコンテンツ、アプリケーション、及び/またはサービスプロバイダの数が増加している。クラウドコンピューティングは、概して、ウェブサービスのようなサービスを介して電子リソースへのアクセスを提供する手法であり、そのようなサービスをサポートするために使用されるハードウェア及び/またはソフトウェアは、任意の所与の時点でサービスのニーズを満たすために、動的にスケラーブルである。ユーザまたは顧客は、一般に、クラウドを介するリソースへのアクセスをレンタルする、リースする、またはその他の方法で支払うので、必要とされるハードウェア及び/またはソフトウェアを購入し、維持する必要がない。
【0002】
多くのクラウドコンピューティングプロバイダは、仮想化を利用して、基礎となるハードウェア及び/またはソフトウェアリソースを複数のユーザが共有することを可能にする。仮想化は、コンピューティングサーバー、ストレージデバイス、または他のリソースを、特定のユーザによってそれぞれが所有される複数の分離されたインスタンス(例えば、仮想マシン)に分割することを可能にすることができる。これらの仮想マシンは、多くの場合、ホストコンピューティングデバイスで実行されるハイパーバイザーを使用してホストされる。このような場合には、ハイパーバイザー及びゲストオペレーティングシステムのカーネルは、セキュリティ実施機構として動作する。例えば、ハイパーバイザーは、一般に、ホスト上の様々な仮想マシンを制御し、カーネルは、仮想マシン上の様々なプロセスを制御する。セキュリティ上の理由から、ハイパーバイザー及びカーネルの両方は、変更または改変することが困難である。しかしながら、時には、ソフトウェアパッチを適用する、セキュリティ監視を行う、などの理由で、ハイパーバイザーまたはカーネルのコードを実行時に変更することが望まれる場合がある。
【0003】
本開示に従った様々な実施形態を、図面を参照して説明する。
【図面の簡単な説明】
【0004】
図1】様々な実施形態に従って、ハイパーバイザーまたはカーネルの特権操作の結果を保護する例示を示す。
図2】様々な実施形態に従って、非対称の暗号を使用してカーネルまたはハイパーバイザーに提出される要求を暗号化する例示を示す。
図3】様々な実施形態に従って、証明機関を利用する例示を示す。
図4】様々な実施形態に従って、サービスプロバイダのリソースセンタ環境の例示を示す。
図5】様々な実施形態に従って、ハイパーバイザーまたはカーネルで特権操作を実行するための要求の結果を保護するための例示のプロセスを示す。
図6】様々な実施形態に従って、ハイパーバイザーまたはカーネルで、特権操作を実行するために使用することができるAPIを提供するための例示のプロセスを示す。
図7】様々な実施形態に従って、要求の暗号化を利用するための例示のプロセスを示す。
図8】様々な実施形態に従って、利用することができる例示のコンピューティングデバイスの一般的な構成要素のセットの論理的配設を示す。
図9】様々な実施形態に従って、態様を実現するための環境の例示を示す。
【発明を実施するための形態】
【0005】
以下の説明では、様々な実施形態が、添付の図面の図において、限定としてでなく、例示として示される。本開示における様々な実施形態への参照は、必ずしも同じ実施形態に対してではなく、そのような参照は、少なくとも1つを意味する。特定の実現形態及び他の詳細が説明されるが、これは実例の目的のみのために行われることを理解されたい。関連技術の当業者は、特許請求の主題の範囲及び趣旨から逸脱することなく、他の構成要素及び構成が使用できることを認識するであろう。
【0006】
本開示の様々な実施形態によるシステム及び方法は、特権的システム(例えば、オペレーティングシステムのカーネル、ハイパーバイザーなど)でオペレーションを行うことによって取得される結果などのデータを保護するために、従来の手法で経験する上記のまたは他の欠点の1つ以上を克服することができる。具体的には、様々な実施形態は、非対称(または対称)の暗号などのセキュリティスキームを利用し、ハイパーバイザー及び/またはカーネルの特権操作を行うための要求に鍵(例えば、公開鍵)を含めることにより、データを保護する。カーネル及び/またはハイパーバイザーは、要求に含まれる鍵を使用して特権操作の結果を暗号化することができる。いくつかの実施形態では、要求自体もまた、暗号化する、または署名する、ことができ、一切の中間の関係者は、それらの関係者が、要求を見ること、及び/または要求を解読する、またはそうでなければ要求を改ざんする、ために使用される鍵のコピーまたは他の機構を有することが承認されない限り、要求のパラメータ及び他の情報を読むことができない。実施形態によれば、要求は、コードがオペレーティングシステム(OS)のカーネル及び/またはハイパーバイザーに確実に追加される、かつ/または変更される、ことを可能にするインターフェース(例えば、アプリケーションプログラミングインターフェース(API))の正式なセットを使用して、カーネル/ハイパーバイザーに提出される。これらのインターフェースは、起動されて、実行時にセキュリティ監視、フォレンシックキャプチャ、及び/パッチソフトウェアシステムを行うことができる。様々な実施形態では、API要求の結果は、API要求にパラメータとして含まれていた公開鍵を使用して暗号化される。
【0007】
様々な実施形態では、本明細書に記載のセキュリティスキームは、ホストコンピューティングデバイスのハイパーバイザー及び/またはOSのカーネルで特権操作を行うとき、マルチテナント共有リソース環境(例えば、クラウドコンピューティング環境)で利用することができる。従来、このタイプの環境では、ホストコンピューティングデバイスは、仮想化技術を利用し、サービスプロバイダ(例えば、クラウドコンピューティングプロバイダ)の異なる顧客に関連する1つ以上の仮想マシンのインスタンスをプロビジョニングする。これらの仮想マシンのインスタンスは、ハイパーバイザー(または、他の仮想化技術)を使用してコンピューティングデバイスでホストされ、各仮想マシンのインスタンスは、カーネル、デバイスドライバ、及び他のOS構成要素を備えるゲストオペレーティングシステムを含むことができる。仮想マシンをホストするためのホストコンピューティングデバイス及び他の物理リソースは、通常、サービスプロバイダによって提供され、データセンタ、サーバーファーム、コンテンツ配信ネットワーク(CDN)ポイントオブプレゼンス(POP)などのリソースセンタに存在する。
【0008】
そのようなマルチタレント共有リソース環境では、様々なホストマシン及びその上で動作する仮想マシンインスタンスの間で、イントロスペクション及び/または他のデータ収集を行うのにしばしば有用である。例えば、ハイパーバイザーまたはカーネルを異常状態にする原因となるソフトウェアバグまたは他の異常が存在する場合がある。いくつかの場合では、この異常状態は潜在的不良の可能性があり、この状況を解決するために何も行われない場合、ホストデバイスまたは仮想マシンのインスタンスは最終的に不良となる。これらのエラーの一部を検出すること、または解決することは、ホストデバイスの実行されているハイパーバイザー及び/またはカーネルのメモリを検査することを要求し得る。しかしながら、これらの構成要素(例えば、ハイパーバイザー/カーネル)は、通常、リソースの所有者に対して安全かつ私的に維持することが重要である非常に機密性の高い情報を含む。
【0009】
様々な実施形態において、そのような機密性の高い情報へのアクセスを保護するために、本明細書に記載のアプリケーションプログラミングインターフェース(API)を使用して、仮想マシンのハイパーバイザー及び/またはカーネルの特権操作(例えば、機密性の高いデータを抽出する、更新を行う、など)を行うための要求を提出することができる。承認されていない関係者(例えば、データ技術者など)が要求へのアクセスを獲得することを防ぐために、要求は、署名する、かつ/または暗号化する、ことができる。また、要求は、要求の任意の結果を暗号化するためにハイパーバイザー/カーネルが使用することができる公開鍵を(例えば、パラメータとして)含むことができる。したがって、公開鍵に対応する秘密鍵を有する関係者は、要求の結果を解読することができる。その結果、要求を扱う、または傍受する、ことができる一切の中間の関係者(例えば、データ技術者)は、要求を読む、または要求の結果を解読する、ことができなくなる。要求が署名されている場合、要求する者の公開鍵は、要求に対するパラメータであり、署名でカバーされており、公開鍵は、要求を仲介者として扱う何人によっても、削除される、または交換される、ことができない。
【0010】
いくつかの実施形態では、結果を解読できる秘密鍵を有する関係者は、要求を遂行し、かつ結果を収集することを中間の関係者に元々命令した関係者である。例えば、管理者は、技術者に要求を起動して、結果を収集することを命令することができ、管理者は、結果を解読することができる秘密鍵を所有する(すなわち、技術者は、結果を読むことができない)。代替の実施形態では、秘密鍵を有する関係者は、結果を収集することを中間の関係者に承認した関係者と異なる関係者である。例えば、サービスプロバイダの管理者は、技術者が要求を発行し、結果を収集することを承認することができる。別のパーティ(例えば、調査者)は、結果を解読するために使用される秘密鍵を所有することができる。技術者は、要求を発行することができるが、技術者は、結果を解読するための秘密鍵を所有していないので、結果を読むことができない。同様に、この例示では、管理者は、要求を実行することも、その要求の結果を読むことも、承認されない。そのような鍵の所有権についての様々な他の例示は、様々な実施形態の範囲内であることが可能である。
【0011】
いくつかの実施形態では、セキュリティスキームは、サービスプロバイダのネットワーク上で実行される様々な仮想マシンのインスタンスに関する機密性の高いデータを収集するために使用することができる。一実施形態では、信頼できる中央のサービスは、リソースセンタ内のホストデバイスの全てについての要求を生成することができ、中央のサービスは、それらの要求内にその公開鍵を含めることができる。信頼されていない構成要素(例えば、中間の関係者)は、次にそれらの要求をホストデバイスに配信し、要求をローカルで発行することができる。いくつかの実施形態では、信頼されていない同じ構成要素は、結果を収集し、それらを中央のサービスへの配信のために受け取ることができる。この結果は、それらが中央のサービスに到達すると、解読することができる。
【0012】
一実施形態では、サービスプロバイダは、セキュリティスキームを利用してスペキュレーティブデータ収集を行う、例えば、顧客の信頼を侵害せずに、不正行為または不正使用のケースを検出する、ことができる。例えば、不正行為の調査者は、特定のホストマシンを疑わしいものとしてフラグ付けし、そのマシンの監視を開始することができる。監視が開始されると、要求は、詳細なカーネルまたはハイパーバイザー情報(すなわち、結果)の収集を開始することをハイパーバイザーに行わせることができる。次に、結果は、要求内に含まれる公開鍵を使用して暗号化することができる。続いて、秘密鍵を所有する承認された関係者は、収集されたデータを解読し、分析を行ってサービスなどの不正行為、不正使用を決定することができる。
【0013】
別の実施形態では、セキュリティスキームを利用して、連続的なヘルスチェックサービスを実現することができる。例えば、特定のホストマシンが性能の異常を示しているとき、ヘルスサービスは、機密性の高い顧客データを含み、オペレーションの結果を暗号化することができるカーネル/ハイパーバイザーのメモリのスナップショットをキャプチャするための要求を提出することができる。要求の結果が暗号化されるので、情報が不正にアクセスされる可能性が少なくなる。いくつかの実施形態では、ヘルスサービスはまた、ホストマシンまたは仮想マシンのインスタンスをランダムに、サンプリングする、かつ/またはプロファイリングする、ことができる。例えば、サービスは、性能データのベースラインを取得し、後でそのベースラインに少なくとも部分的に基づいて、異常を検出することができる。様々な実施形態では、プロファイルは、顧客ベースまたはマシンベースであることができ、絶対的な閾値を含むことができる、またはランダム化することができる(例えば、周期的に複数のホストマシンをスナップショットのためにランダムに選択することができる)。
【0014】
様々な実施形態では、解読鍵(例えば、秘密鍵)は、安全な場所に格納される。例えば、鍵は、サービスプロバイダのセキュリティチームによって維持することができる。このように、データを収集する人及び収集の結果を読むことができる人は、異なる関係者であり、さらには秘密鍵へのアクセス権を持たないこともある。一実施形態では、データが暗号化される鍵(例えば、公開鍵)は、要求の一部である。代替の実施形態では、全てのホストマシンが信頼する単一の鍵が存在する場合もあり、この鍵は、カーネル内にコンパイルすることができる。別の実施形態では、信頼できる証明機関(CA)が存在することができ、各ホストマシンは、信頼できるCAから証明をフェッチする。
【0015】
いくつかの実施形態では、顧客は、鍵を指定し、この鍵を使用して顧客のVMインスタンスのメモリの暗号化された画像化ダンプを顧客に提供することをサービスプロバイダに命令することができる。メモリのダンプを取り出すための要求は、ウェブサービスAPIのようなAPIを使用して、ホストコンピューティングデバイス(例えば、ホストコンピューティングデバイスのカーネルまたはハイパーバイザー)に提出することができる。一実施形態では、API要求は、顧客指定鍵を含むことができる。ホストコンピューティングデバイスのカーネルまたはハイパーバイザーが、ホストコンピューティングデバイスの外部にメモリのダンプを通信する前に、メモリのダンプは、顧客が指定した鍵を使用して暗号化される。
【0016】
図1は、様々な実施形態に従って、ハイパーバイザーまたはカーネルの特権操作の結果を保護する例示100を示す。示された実施形態では、要求107は、ホストコンピューティングデバイス101のカーネル106またはハイパーバイザー102上の特権操作を行うために、アプリケーションプログラミングインターフェース(API)108のセットを使用して、提出することができる。この実施形態では、ホストコンピューティングデバイス101は、ハイパーバイザー102及び特権的ドメイン(DOM−0)105の組合せとして示された仮想化層を含む。次に、Dom0 105及びハイパーバイザー102は、ゲスト115のような複数のゲストに作用することができる。ゲストは、仮想マシンのインスタンスであることができ、各々が独自のそれぞれのオペレーティングシステム(OS)、カーネル、デバイスドライバ、スケジューラなどを有する。Dom−0 105は、ホストコンピューティングデバイス101上の他のゲストドメインを起動し、管理するために使用される。仮想化層は、この図では別々の構成要素として示されているが、仮想化層の他の実現形態も、可能であり、かつ本開示の範囲内である。例えば、Dom0の機能、またはその機能のサブセット、ならびにハイパーバイザー102によって影響されるものは、単一の構成要素に統合することができる。
【0017】
実施形態によれば、要求107は、例えばハイパーバイザー/カーネルのメモリ位置を読み取る、ハイパーバイザー/カーネルのコードのセクションを変更するなどの任意の特権操作を実行するために、データ技術者、監視サービス、アプリケーション、顧客、または他の構成要素によって、開始することができる。以下の図2及び3を参照して説明されるように、要求は、署名する、かつ/または暗号化する、ことができる。
【0018】
実施形態によれば、要求107は、情報、ならびに例えば、要求及びデジタル署名を提出する原則の識別子、を暗号化するために使用することができる公開鍵104を(例えば、パラメータとして)含む。要求がカーネル106に向けられると、カーネルは、特権操作を実行し、結果を生成した後、結果109を要求に含まれる公開鍵104を使用して暗号化することができる。結果109は、カーネル106及び/またはホストコンピューティングデバイス101の外部に通信される前に、暗号化される。同様に、要求がハイパーバイザーに向けられると、ハイパーバイザーは、特権操作を実行して、結果を生成し、結果がハイパーバイザーを出る前に、結果110を公開鍵194を使用して暗号化することができる。
【0019】
いくつかの実施形態では、要求は、特定のホストマシンに拘束される必要がない。しかしながら、他の実施形態では、要求は、選択されたマシンに拘束されてもよい。少なくとも1つの実施形態では、要求は、特定の時間窓(例えば、日、週など)に拘束することができ、サービスプロバイダは、その期間中に、要求を様々なホストマシンに発行することができる複数の人を採用することができる。データは、それがカーネルまたはハイパーバイザーを出る前に暗号化される、またはそれがホストコンピューティングデバイス101上に永続的な方法で格納されている場合に暗号化される、ので、セキュリティスキームは、データ技術者または他の中間の関係者112(信頼できない可能性がある人)が非常に機密性の高いコールを発行し、高度に機密性の高い情報をハイパーバイザー/カーネル及び/または他の保護された構成要素から収集することを可能にする。これらの要求の結果は、それらがカーネル/ハイパーバイザーを出る前に、暗号化されるので、中間の関係者112は、それらの結果に含めることができる機密性の高い情報へのアクセス権を持たない。様々な実施形態では、得られたデータの全ては、安全に収集され、格納することができ、安全な場所103内の承認された、または信頼された、関係者のみが、安全に維持された秘密鍵111を使用することにより、その情報を解読することができる。
【0020】
図2は、様々な実施形態に従って、非対称な暗号を使用してカーネルまたはハイパーバイザーに提出された要求を署名する例示200を示す。この実施形態では、ホストコンピューティングデバイス201は、少なくとも1つの仮想化層(ハイパーバイザー202及びDom0 205の組合せとして示されている)及び1つ以上のゲスト211を備える。ゲストは、仮想マシンのインスタンスであることができ、各々がそれら独自のそれぞれのオペレーティングシステム(OS)、カーネル、デバイスドライバ、スケジューラなどを有する。
【0021】
実施形態によれば、ホストコンピューティングデバイス201は、カーネル(例えば、Dom−0カーネル)またはハイパーバイザー202上の特権操作を行うために、署名された、かつ/または暗号化された、要求を提出するために使用することができるAPI208のセットを提供する。特権操作は、メモリ内の位置を読むことができ、1つ以上の結果を生成することをハイパーバイザー202及び/またはカーネル206に行わせることができる。API要求は暗号化することができるので、カーネル/ハイパーバイザーの外部の中間の関係者は、暗号化された要求を秘密鍵を所有せずに読むことができず、要求が行うことを意図しているものを知ることがない。また、暗号化された要求は、結果がカーネル/ハイパーバイザーの外部に送信される前に、要求の結果を暗号化するために使用することができる公開鍵を含むことができる。
【0022】
示された実施形態によれば、APIの要求は、秘密鍵及び公開鍵を含む非対称の鍵対を使用して、署名される、かつ確認する、ことができる。一実施形態では、APIコール(例えば、結果を暗号化するための公開鍵を含む)に対する引数の少なくとも一部(または全部)は、標準化され、かつシリアル化されて、署名文字列を得る。この文字列は、次にハッシュベースメッセージ承認コード(HMAC)または非対称の暗号のいずれかを介して署名され、API208に送ることができる。APIへのパラメータが署名内に含まれているので、要求(例えば、要求を行ったコード)を取得した潜在的攻撃者は、要求を変えることができない、また要求から公開鍵を取り出すこと、またはそれを別の鍵と交換すること、ができない。
【0023】
いくつかの実施形態によれば、要求は、タイムスタンプを含むことができ、時間窓ベース再生保護を提供し、要求は、制限された期間のみにわたって有効である。いくつかの実施形態では、要求は、ホストコンピューティングデバイス201に特別に関連付けられた一意の値、例えばシリアル番号、またはホストマシン識別子(ID)、を含むことができる。これらの値は、秘密ではないかもしれないが、それらを含むことは、要求を特定のホストコンピューティングデバイス201に拘束することができる。その場合、潜在的攻撃者が異なるホストコンピューティングデバイスに対する要求を再生することを防止する。いくつかの実施形態では、要求は、ホストコンピューティングデバイス201への拘束の強度を増加するために、ホストコンピューティングデバイス201内のトラステッドプラットフォームモジュール(TPM)(図示せず)によって承認することができる。
【0024】
示された実施形態では、API要求に署名するために使用される秘密鍵204は、要求がアドレス指定されるホストコンピューティングデバイス201に存在しない。その代わりに、秘密鍵204は、サービスプロバイダのネットワーク202の安全な場所203に、または別の信頼できる場所に、格納することができる。結果として、悪意のあるエージェントがホストコンピューティングデバイス201に存在した場合、それらは、秘密鍵204を使用して要求を偽造することができない。
【0025】
ホストコンピューティングデバイス201は、秘密鍵204を使用して署名された要求の署名を確認するために使用することができる公開鍵を含むことができる。一実施形態では、公開鍵207は、ホストコンピューティングデバイス201のカーネル206にコンパイルすることができる。別の実施形態では、公開鍵209は、ハイパーバイザー202にコンパイルすることができる。いくつかの実施形態では、カーネル206は、ハイパーバイザー202に格納された公開鍵209と異なる公開鍵207を格納することができる、一方、他の実施形態では、同じ公開鍵を使用してハイパーバイザー202及びカーネル206の両方で要求を確認することができる。さらに他の実施形態では、ホストコンピューティングデバイス201に実際の公開鍵を格納するのではなく、ホストコンピューティングデバイス201は、代わりに特定の証明機関(CA)によって証明される任意の公開鍵を信頼するように構成することができる。これらの実施形態では、ホストコンピューティングデバイス201は、要求を要求者から受け取ることができ、要求は、公開鍵を含む証明を伴う。ホストコンピューティングデバイス201は、CAの証明を信頼し、したがって要求の一部として受け取る公開鍵を信頼する。公開鍵が、ホストコンピューティングデバイスに格納されているか、または証明と一緒に提供されているか、に関わらずに、公開鍵を使用して、秘密鍵204を使用して署名されたAPI要求を確認することができる。例えば、ユーザ(例えば、顧客、サービスプロバイダの技術者、第三者など)が、カーネル206上のコードの一部に更新を適用することを望んだ場合、彼らは、秘密鍵204へのアクセスを取得し、その秘密鍵を使用してAPI要求に署名し、コードの適当な部分を変更することができる。要求を受け取ると、カーネル206は、公開鍵を使用して要求を確認することを試み、確認が成功した場合、必要な特権操作を実行することができる。
【0026】
代替の実施形態(図示せず)では、HMAC及び対称な鍵が利用された場合、秘密鍵は、カーネル206またはハイパーバイザー202にコンパイルすることができる。その場合、秘密鍵は、難読化して、ビルド毎に変えることができるが、この鍵は、実際には、ホストコンピューティングデバイス201に存在することができる。任意選択的に、要求全体は、カーネルにコンパイルされる鍵に暗号化することができ、要求自体は、それを発行するコードに対して不透明である。
【0027】
いくつかの実施形態では、1つ以上の制約は、要求に設けられた特定の鍵に従って(または、鍵を所有する関係者に従って)適用することができる。例えば、いくつかのアクターによって署名された要求は、ホストコンピューティングデバイスでゲスト仮想マシンを開始/停止することを可能にすることができるだけである。他のアクター(例えば、サービスプロバイダのOSチーム)によって保持された鍵を使用して署名された要求は、仮想マシンまたはハイパーバイザーのメモリを読み取ることを可能にすることができる。一実施形態では、ホストコンピューティングデバイス201は、そこに格納された複数の異なる公開鍵を有することができ、各公開鍵は、異なるエンティティ(例えば、ユーザ、チームなど)に関連付けられた秘密鍵に関連付けられる。どのエンティティの秘密鍵が要求に署名するために使用されたかに依存して、要求されたオペレーションが、許可される、または拒否される、場合がある。代替の実施形態では、ホストコンピューティングデバイス201は、1つの秘密鍵に関連付けられた1つだけの公開鍵を格納することができ、しかしながら、要求は、要求を提出するユーザの識別を含むことができる。この識別に基づいて、ホストコンピューティングデバイス201は、要求されたオペレーションの実行に異なる制約を適用することができる。例えば、ホストコンピューティングデバイス201は、1人のユーザがゲストを停止/開始することを可能にすることができ、一方、別のユーザは、ハイパーバイザーのコードの変更または更新をすることができる。そのような制約(例えば、鍵毎または関係者毎の基準で)の任意の数が可能であり、本明細書に記載の実施形態の範囲内である。
【0028】
図3は、様々な実施形態に従って、証明機関を利用する例示300を示す。示された実施形態では、ホストコンピューティングデバイス(例えば、ホストコンピューティングデバイス301上のカーネル306及び/またはハイパーバイザー302)は、ブート時に非対称の鍵対からなる暗号化識別を生成する。例えば、ホストコンピューティングデバイス301がブートするとき、ハイパーバイザー302は、秘密鍵307及び公開鍵309を含む鍵対を生成する。同様に、Dom0 305がロードされると、カーネル306は、秘密鍵313及び公開鍵314からなる鍵対を生成する。
【0029】
様々な実施形態では、公開鍵(309、313)は、同じ様式で発行することができる。例えば、公開鍵は、証明機関310に提供することができる。あるいは、公開鍵は、要求する関係者に直接提供することができる。この公開鍵は、収集することができ、要求は、この鍵を使用して暗号化することができる。この実施形態では、ホストコンピューティングデバイス301によって生成された秘密鍵(307、314)は、決してホストコンピューティングデバイスから離れることがなく、他のどこにも存在しない。要求する関係者が、公開鍵をホストコンピューティングデバイス301から確実に得ることができる場合、それは、公開鍵を使用して署名された要求が、そのホストコンピューティングデバイス301(かつ、そのホストコンピューティングデバイスのみ)に向かうことを保証することができ、その理由は、要求が、ホストコンピューティングデバイスを決して離れない秘密鍵(307、313)によって唯一解読することができる公開鍵(309、314)を使用することによって、署名されているからである。図3は、カーネル306及び仮想化層302の両方がそれら自体のそれぞれの鍵対を発行する例示を示しているが、これは全ての実施形態に対する要件または制限ではないことに留意されたい。いくつかの実施形態では、ハイパーバイザーだけが鍵対を発行する。他の実施形態では、カーネルだけが鍵対を発行する。さらに他の実施形態では、ハイパーバイザー及びカーネルが、鍵対を共有することができる。
【0030】
いくつかの実施形態では、ホストコンピューティングデバイス301は、証明機関(CA)310への要求に署名するために使用される公開鍵309を提供することができる。CA310は、1つ以上のデジタル証明(312、315)を適切な要求する関係者(例えば、署名する関係者311)に発行するエンティティであることができる。デジタル証明は、関係者が、API要求に署名するために使用することができる公開鍵を適切に所有することを証明する。この実施形態では、CAの使用により、要求する関係者が、秘密鍵が実際にホストコンピューティングデバイス301のためのものであることを信じることが、ある確実性の程度で可能になる。一実施形態では、CAは、サービスプロバイダのためのCAであり、サービスプロバイダのリソースセンタ内で実行される。リソースセンタは、以下の図4を参照してさらに詳細に説明する。別の実施形態では、CA310は、証明に依存している要求する関係者311及びホストコンピューティングデバイス301の両方によって信頼される信頼できる第三者機関である。証明機関は、従来技術で公知であり、多くの公開鍵インフラストラクチャ(PKI)スキームで使用されている。
【0031】
この実施形態では、CA310が証明312を要求する関係者311に一旦発行すると、要求する関係者311は、証明を使用して、カーネル306またはハイパーバイザー302との関連で特権操作を実行するためのAPI要求を行うことができる。ハイパーバイザー302またはカーネル306は、次に、特定の関係者に発行された特定のCAによって署名された任意の証明が有効であることを確認することができ、それに応じて特権操作を実行することができる。
【0032】
いくつかの実施形態では、証明機関310はまた、前述のように、要求の結果に署名するために使用される公開鍵のための証明を提供することができる。例えば、サービスプロバイダの従業員(例えば、データ技術者)は、ホストコンピューティングデバイス301上のカーネル/ハイパーバイザーに機密性の高い要求を提出する必要があるとき、データ技術者は、証明をCA310から最初に取得することができる。この証明は、次にデータ技術者によって公開鍵の所有権を証明するために使用することができる。同様な様式で、監視サービスのような自動化構成要素はまた、本明細書に記載のように、CA310を利用して1つ以上の証明を取得することができる。
【0033】
その様々な実施形態では、図3に示された技術は、図2に示された技術と一緒に使用することができる。例えば、図3の要求する関係者311は、それ自身の秘密鍵を有することができ、要求する関係者が、それを使用して特権操作を実行するための要求に署名することができる。この実施形態では、要求は、真正性を保証するために署名される(すなわち、ホストコンピューティングデバイスは、要求する関係者が要求を生成したことを確実に知ることになる)だけではなく、プライバシーを保証するために暗号化される(すなわち、外部の関係者は要求に含まれる情報を解読することができない)。
【0034】
図4は、様々な実施形態に従う、サービスプロバイダのリソースセンタ環境の例示400を示す。示された実施形態では、サービスプロバイダ(例えば、クラウドコンピューティングリソースプロバイダ)は、サービスプロバイダの物理的リソース(例えば、ホストサーバーなど)を記憶する1つ以上のリソースセンタ423(例えば、データセンタ、サーバーファームなど)を維持することができる。それらの物理的リソースは、インターネットのようなネットワーク402を介してユーザ401に提供することができる複数の仮想マシンのインスタンスまたは仮想サーバーをホストするために使用することができる。例えば、ユーザが、サービスプロバイダの物理的リソースを使用してアプリケーションを実行したい場合、彼または彼女は、アプリケーションを展開して実行するために使用されるユーザのための仮想マシンをプロビジョニングすることを、サービスプロバイダに要求することができる。ユーザのアプリケーションに対する要求が高まるにつれて、ユーザは、負荷のバランスをとるためにより多くの仮想マシンがプロビジョニングされることを要求し、1つ以上の仮想プライベートネットワーク(VPN)などの作成を要求することができる。
【0035】
示された例示では、サービスプロバイダのリソースセンタ423は、特定のラック上の各ホストコンピューティングデバイスが、単一のトップオブラック(TOR)スイッチ(404、405)に接続されたホストコンピューティングデバイス(406、407、408、409、410)の1つ以上のラック421、422を備えることができる。これらのTORスイッチは、ホストコンピューティングデバイスをネットワークに接続することを可能にする1つ以上の他のスイッチ(424、425)にさらに接続することができる。本開示全体を通して使用されるように、ネットワークは、互いに通信することができるデバイスの任意の有線または無線のネットワークであることができ、制限するものではないが、インターネットまたは他のワイドエリアネットワーク(WAN)、セルラーネットワーク、ローカルエリアネットワーク(LAN)、ストレージエリアネットワーク(SAN)、イントラネット、エクストラネットなどを含む。リソースセンタは、任意の物理的または論理的リソースのグループ、例えばデータセンタ、サーバーファーム、コンテンツ配信ネットワーク(CDN)ポイントオブプレゼンス(POP)などを含むことができる。
【0036】
実施形態によれば、各ホストコンピューティングデバイスは、顧客に代わって様々なアプリケーション及びサービスを実行するためにサービスプロバイダの顧客にプロビジョニングされた1つ以上の仮想マシンのインスタンス(413、414、415、416、417、418、419)をホストすることができる。各仮想マシンは、カーネル、ドライバ、プロセス管理などを含む独自のオペレーティングシステム(OS)をプロビジョニングすることができる。
【0037】
顧客が、仮想マシンのインスタンスを取得したいとき、顧客は、最初に彼らが使用したいVMのタイプを示す要求をサービスプロバイダに提出することができる。サービスプロバイダは、プロセスを遂行し、サービスプロバイダの物理的リソース(例えば、ホストコンピューティングデバイス)でホストされる仮想マシンのインスタンスをプロビジョニングすることができる。仮想マシンのインスタンスは、次に、サービスプロバイダのリソースを利用し、顧客に代わって、様々なアプリケーション及びサービスを実行するために使用することができる。
【0038】
実施形態によれば、仮想マシンのインスタンスが一旦アップされて実行されると、変更は、VMのハイパーバイザーまたはカーネルのコードに適用する必要がある場合がある。例えば、サービスプロバイダは、ホストマシン上でVMをホストするハイパーバイザーのコードにパッチまたは更新を適用したい場合がある。あるいは、顧客(またはある他の第三者)は、VMのカーネルのコードに更新を適用したい場合がある。様々な実施形態では、本開示を通して説明されるAPIは、非対称(または対称)の暗号を利用することにより、ユーザが安全な様式でコードを変更することを可能にする。さらに、そのようなAPI要求の結果は、本明細書に記載の方式のセキュリティを使用することにより、結果がカーネル/ハイパーバイザーの外部に通信される前に、暗号化することができる。
【0039】
図5は、様々な実施形態に従って、ハイパーバイザーまたはカーネルで特権操作を実行するための要求の結果を保護するための例示のプロセス500を示す。この図は、特定のシーケンスで機能的オペレーションを示しているが、プロセスは、示された特定の順序またはオペレーションに必ずしも限定されるものではない。当業者は、この図または他の図に描かれた様々なオペレーションが、変えられる、再配列される、並列で実行される、または様々な方法で適合化される、ことができることを理解するであろう。さらに、特定のオペレーションまたはオペレーションのシーケンスは、様々な実施形態の範囲から逸脱することなく、プロセスに追加する、またはそこから省略する、ことができる。また、本明細書に含まれるプロセスの実例は、コードの実行の実際のシーケンスを指定することではなく、当業者にプロセスフローの概念を実証することを意図し、異なるフローまたはシーケンスとして実現される、性能が最適化される、またはそうでなければ様々な仕方で変更される場合もある。
【0040】
オペレーション501では、インターフェース(例えば、API)が、ホストコンピューティングデバイスによって設けられる。インターフェースは、署名されたかつ/または暗号化された要求を、ハイパーバイザー及びカーネルを有する1つ以上の仮想マシンのインスタンスのような保護された構成要素を含むことができるホストコンピューティングデバイスに、提出するために使用することができる。
【0041】
オペレーション502では、公開鍵は、ハイパーバイザー及び/またはカーネルで特権操作を行うための要求(例えば、API要求)にパラメータとして含められる。公開鍵は、要求の結果を暗号化するために使用される。いくつかの実施形態では、要求は、それ自体が暗号化される。要求全体が暗号化されるこれらの実施形態では、鍵は、実際の要求を暗号化するために使用される公開鍵と異なることができる。他の実施形態では、鍵は、要求を暗号化するために使用される鍵と同じ鍵であることができる。いずれの場合でも、要求に含まれる鍵は、カーネル/ハイパーバイザーによって実行される特権操作の結果を暗号化するために使用することができる。
【0042】
オペレーション503では、パラメータとして含まれる鍵を有する要求は、ホストコンピューティングデバイスのハイパーバイザーまたはカーネルに提出される。オペレーション504では、ハイパーバイザー及び/またはカーネルは、要求を解読し、特権操作を実行し、ホストコンピューティングデバイスに結果のセットを生成する。例えば、APIがウェブサービスAPIである実施形態では、ホストコンピューティングデバイスで、例えば仮想化層で、実行されるウェブサーバーは、この特定の例ではウェブサービスAPIコールであるAPIコールを受け取ることができる。ウェブサーバーは、要求を承認し、特権操作を起動することができる。
【0043】
オペレーション505では、カーネル/ハイパーバイザーによって生成される結果は、その結果がカーネル/ハイパーバイザーの外部に通信される前に、要求に含まれる公開鍵を使用して暗号化される。例えば、結果がデータ技術者または監視サービスに提供される前に、結果は暗号化され、それにより、データ技術者または監視サービスは、それらが正しい秘密鍵へのアクセス権を持たない限り、要求の結果を読むことが妨げられる。
【0044】
オペレーション506では、結果は、サービスプロバイダの内部ネットワーク上の遠隔のネットワーク場所のような保護された場所に配信される。実施形態によれば、保護された場所は、公開鍵を使用して暗号化された結果を解読するために使用することができる秘密鍵を格納する。オペレーション507では、結果は、秘密鍵を使用する承認された関係者によって、解読される。
【0045】
図5では、要求が暗号化されているが、これは、本明細書に記載の実施形態の全てに対して限定するものではないことに留意されたい。いくつかの代替の実施形態では、要求は、承認されたエンティティの秘密鍵を使用して唯一署名することができる。これらの実施形態では、要求に含まれる公開鍵は、要求に関連付けられた署名の一部であり、したがって、承認されていないエンティティによって除去することができない。他の実施形態では、要求は、証明されない、または暗号化されない。
【0046】
図6は、様々な実施形態に従って、ハイパーバイザーまたはカーネルで特権操作を行うために使用することができるAPIを提供するための例示のプロセス600を示す。
【0047】
オペレーション601では、1つ以上のアプリケーションプログラミングインターフェース(API)が設けられ、これは、署名された要求をホストコンピューティングデバイスに提出するために使用することができる。ホストコンピューティングデバイスは、仮想化層(例えば、仮想マシンモニター、またはハイパーバイザーと一緒に動作するDom0)及び1つ以上のゲスト(例えば、オペレーティングシステムのカーネルを有する仮想マシンが実行されているゲストオペレーティングシステム)を備えることができる。
【0048】
オペレーション602では、秘密鍵及び対応する公開鍵を備える非対称の鍵対が生成される。秘密鍵は、情報を暗号化するために使用することができ、公開鍵は、秘密鍵を使用して暗号化された情報を解読するために使用することができる。
【0049】
オペレーション603では、公開鍵をホストコンピューティングデバイスに格納する。例えば、公開鍵は、オペレーティングシステムのカーネル、またはハイパーバイザーにコンパイルすることができる。あるいは、鍵は、ホストコンピューティングデバイスのトラステッドプラットフォームモジュール(TPM)に格納することができる。
【0050】
オペレーション604では、秘密鍵は、ホストコンピューティングデバイスに対して外部にある安全な場所に格納する。この実施形態では、秘密鍵は、ホストコンピューティングデバイスに存在せず、その上に存在する一切の悪意のあるエージェントは、秘密鍵へのアクセス権を持っていない。
【0051】
オペレーション605では、ホストコンピューティングデバイスは、ハイパーバイザー及び/またはオペレーティングシステムのカーネルで特権操作を実行することを要求する要求を、APIを介して受け取る。実施形態によれば、受け取った要求に秘密鍵を使用して署名する。
【0052】
オペレーション606では、ホストコンピューティングデバイス(例えば、カーネルまたはハイパーバイザー)が、ホストコンピューティングデバイスに格納された公開鍵を使用して、要求の署名を確認することを試みる。オペレーション607に示されるように、要求の署名が正常に確認される場合、特権操作は、ハイパーバイザー/カーネルで実行することができる。署名が公開鍵を使用して正常に確認されない場合、特権操作が失敗する(すなわち、実行されない)。
【0053】
図7は、様々な実施形態に従って、要求の暗号化を利用するための例示のプロセス700を示す。オペレーション701では、ホストコンピューティングデバイスは、非対称の鍵対を生成する。例えば、ホストコンピューティングデバイスのブートプロセスは、公開鍵及び対応する秘密鍵を生成することができる。オペレーション702では、公開鍵は、信頼できるソースに公開されている。一実施形態では、公開鍵は、要求を暗号化するために公開鍵を使用する要求する関係者に直接提供することができる。別の実施形態では、公開鍵は、証明機関に提供することができ、証明機関は、カーネルまたはハイパーバイザーで特権操作を行うことを望む承認された関係者に証明を与えることができる。この実施形態では、証明機関は、証明に公開鍵を埋め込み、それ自体の秘密鍵を使用して証明に署名することができる。したがって、証明を受け取る関係者は、公開鍵が、実際にホストコンピューティングデバイスからのものであるとCAによって証明されていることを確認することができる。
【0054】
オペレーション703では、ホストコンピューティングデバイスは、特権操作を行うための要求を受け取ることができる。オペレーション704に示されるように、ホストコンピューティングデバイスは、次にホストコンピューティングデバイスに格納された秘密鍵を使用して要求を解読することを試みる。オペレーション705に示されるように、要求が、秘密鍵を使用することにより解読される場合、ホストコンピューティングデバイスは、カーネル/ハイパーバイザーで特権操作を実行することができる。
【0055】
本開示の種々の実施形態は、以下の付記を考慮して説明することができる。
付記1.仮想化コンピューティング環境でデータを保護するためのコンピュータ実現方法であって、
実行可能な命令で構成される1つ以上のコンピュータシステムの制御下で、
ホストコンピューティングデバイスであって、ハイパーバイザーまたはカーネルの少なくとも1つを備えるホストコンピューティングデバイスにAPI要求を受け取るインターフェースを設けることと、
ホストコンピューティングデバイスによって、ハイパーバイザーまたはカーネルで特権操作を行うための要求であって、第1の鍵を使用して暗号化されており、第2の鍵をパラメータとして要求と共に含み、第2の鍵が情報を暗号化するために使用され、ハイパーバイザーまたはカーネルが、要求を解読し、特権操作を実行してホストコンピューティングデバイスで結果のセットを生成するように構成される、要求を受け取ることと、
ハイパーバイザーまたはカーネルによって、要求と共に提供された第2の鍵を使用することにより、結果のセットであって、ハイパーバイザーまたはカーネルの外の外部の場所に通信される前に暗号化される結果のセットを暗号化することと、を含む、方法。
付記2.第2の鍵を使用して暗号化された結果のセットを、ホストコンピューティングデバイスに対して外部にある場所に通信することと、
秘密鍵を使用して結果のセットを解読することと、をさらに含む、付記1に記載のコンピュータ実現方法。
付記3.要求が、複数のホストコンピューティングデバイスを監視するように構成された監視サービスによって発行され、各ホストコンピューティングデバイスが、1つ以上の仮想マシンのインスタンスを管理するハイパーバイザーを含む、付記1に記載のコンピュータ実現方法。
付記4.特権操作が、
ホストコンピューティングデバイスのメモリ内の場所を読み取り、その場所が仮想マシンマネージャーまたはカーネルのうちの少なくとも1つに関連付けられている、ことを含む、付記1に記載のコンピュータ実現方法。
付記5.実行可能な命令で構成された1つ以上のコンピュータシステムの制御下で、
ホストコンピューティングデバイスの仮想化層で特権操作を行うための要求を生成することと、
情報を暗号化するために使用することができる公開鍵であって、公開鍵を使用して暗号化された情報を解読するために使用することができる対応する秘密鍵を有する、公開鍵を取得し、かつ公開鍵を要求内に含めることと、
公開鍵を含む要求をホストコンピューティングデバイスの仮想化層であって、特権操作を実行して結果を生成するように構成される、仮想化層に提出することと、を含み、
前記仮想化層が、前記要求と共に提供された前記公開鍵を使用することにより、前記特権操作の前記結果を暗号化するように構成される、コンピュータ実現方法。
付記6.ホストコンピューティングデバイスの前記仮想化層の外部に結果が通信される前に、仮想化層が、結果を暗号化するように構成される、付記5に記載のコンピュータ実現方法。
付記7.仮想化層が、暗号化された結果をホストコンピューティングデバイスに対して外部にある場所に通信するように構成され、暗号化された結果が、秘密鍵を使用することによりその場所で解読される、付記5に記載のコンピュータ実現方法。
付記8.特権操作を行うための要求が、第2の鍵を使用して暗号化され、要求が、仮想化層によって解読可能である、付記5に記載のコンピュータ実現方法。
付記9.特権操作を行うための要求が、サービスの秘密鍵を使用して署名され、要求の署名が、サービス公開鍵を使用する仮想化層によって確認可能である、付記5に記載のコンピュータ実現方法。
付記10.サービス公開鍵を含む証明を証明機関(CA)から取得することをさらに含む、付記9に記載のコンピュータ実現方法。
付記11.公開鍵を取得することが、
証明機関(CA)を使用して、公開鍵の所有権を証明する少なくとも1つの証明を取得することをさらに含む、付記5に記載のコンピュータ実現方法。
付記12.要求が、複数のホストコンピューティングデバイスを監視する監視サービスによって生成される、付記5に記載のコンピュータ実現方法。
付記13.監視サービスによって、複数のホストコンピューティングデバイスの少なくとも1つに関連するプロファイルに少なくとも部分的に基づいて、複数のホストコンピューティングデバイスのうちの少なくとも1つが、異常に動作していることを検出することをさらに含む、付記12に記載のコンピュータ実現方法。
付記14.要求が、指定された期間に拘束される、付記5に記載のコンピュータ実現方法。
付記15.特権操作が、ホストコンピューティングデバイスの仮想化層の実行中のメモリイメージを変更する、付記5に記載のコンピュータ実現方法。
付記16.特権操作が、
ホストコンピューティングデバイスのメモリ内の場所を読み取り、その場所が仮想化層に関連付けられている、ことをさらに含む、付記5に記載のコンピュータ実現方法。
付記17.少なくとも1つのプロセッサを備える第1のコンピュータシステムと、
前記少なくとも1つのプロセッサによって実行されると、
ホストコンピューティングデバイスの仮想化層で特権操作を行うための要求であって、公開鍵を含み、公開鍵が、情報を暗号化するために使用することができ、公開鍵を使用して暗号化された情報を解読するために使用することができる対応する秘密鍵を有する、要求を信頼できる関係者から受け取ることと、
要求をホストコンピューティングデバイスのアプリケーションプログラミングインターフェース(API)に発行し、仮想化層が、特権操作を実行して、結果を生成し、かつその結果を要求と共に提供された公開鍵を使用して暗号化するように構成される、ことと、をコンピューティングシステムに行わせる命令を含むメモリと、を備える、システム。
付記18.ホストコンピューティングデバイスであって、少なくとも1つのプロセッサと、実行されると、
特権操作を実行することと、
要求と共に提供される公開鍵を使用して結果を暗号化することと、
暗号化された結果を所定の場所に格納することと、をホストコンピューティングデバイスに行わせる命令を含むメモリと、を備えるホストコンピューティングデバイスをさらに備える、付記17に記載のシステム。
付記19.ホストコンピューティングデバイスが、仮想化層の外に結果が通信される前に、仮想化層内で結果を暗号化するように構成される、付記18に記載のシステム。
付記20.特権操作を行うための要求が、第2の鍵を使用して暗号化され、要求が、仮想化層によって解読される、付記17に記載のコンピューティングシステム。
付記21.少なくとも1つのプロセッサと、
少なくとも1つのプロセッサによって実行されると、
ホストコンピューティングデバイスの仮想化層で特権操作を行うための要求であって、公開鍵を含み、公開鍵が、情報を暗号化するために使用することができ、公開鍵を使用して暗号化された情報を解読するために使用することができる対応する秘密鍵を有する、要求を受け取ることと、
ホストコンピューティングデバイスの仮想化層で要求を実行して結果を生成することと、
要求と共に提供された公開鍵を使用することにより特権操作の結果を暗号化することと、をコンピューティングシステムに行わせる命令を含むメモリと、を備えるコンピューティングシステム。
付記22.メモリが、
暗号化された結果を、ホストコンピューティングデバイスに対して外部にある場所であって、秘密鍵を格納する場所に通信すること、をコンピューティングシステムに行わせる命令をさらに含み、
結果が、秘密鍵を使用することにより解読可能である、付記21に記載のコンピューティングシステム。
付記23.特権操作を行うための要求が、第2の鍵を使用して暗号化され、要求が、仮想化層によって解読される、付記21に記載のコンピューティングシステム。
付記24.1つ以上のプロセッサによって、
ホストコンピューティングデバイスの仮想化層で特権操作を行うための要求であって、公開鍵を含み、公開鍵が、情報を暗号化するために使用することができ、公開鍵を使用して暗号化された情報を解読するために使用することができる対応する秘密鍵を有する、要求を受け取ることと、ホストコンピューティングデバイスの仮想化層で要求を実行して結果を生成することと、
要求と共に提供された公開鍵を使用することにより特権操作の結果を暗号化することと、が実行可能である命令の1つ以上のシーケンスを格納する非一時的コンピュータ可読記憶媒体。
付記25.1つ以上のプロセッサに、
暗号化された結果を、ホストコンピューティングデバイスに対して外部の場所であって、秘密鍵を格納する場所に通信することと、
結果をその場所で秘密鍵を使用することにより解読することと、を行わせる命令をさらに含む、付記24に記載の非一時的コンピュータ可読記憶媒体。
付記26.特権操作を行うための要求が、第2の鍵を使用して暗号化され、要求が、仮想化層によって解読可能である、付記24に記載の非一時的コンピュータ可読記憶媒体。
付記27.結果がホストコンピューティングデバイスから外部の場所に通信される前に、結果が仮想化層で暗号化される、付記24に記載の非一時的コンピュータ可読記憶媒体。
【0056】
図8は、例示のコンピューティングデバイス800の一般的な構成要素のセットの論理的配設を示す。この例示では、デバイスは、メモリデバイスまたは要素804に格納することができる命令を実行するためのプロセッサ802を備える。当業者には明らかであるが、このデバイスは、多くのタイプのメモリ、データストレージ、または非一時的コンピュータ可読記憶媒体、例えば、プロセッサ802によって実行されるプログラム命令のための第1のデータストレージ、画像またはデータのための別個のストレージ、他のデバイスと情報を共有するための取り外し可能なメモリなどを備えることができる。このデバイスは、通常、タッチスクリーンまたは液晶ディスプレイ(LCD)のようなあるタイプの表示要素806を備えることができるが、携帯型メディアプレーヤーのようなデバイスは、オーディオスピーカーを介するような他の手段によって、情報を搬送することができる。記載のように、多くの実施形態において、デバイスは、従来の入力をユーザから受け取ることができる少なくとも1つの入力要素808を含む。この従来の入力は、例えば、プッシュボタン、タッチパッド、タッチスクリーン、ホイール、ジョイスティック、キーボード、マウス、キーパッド、または任意の他のそのようなデバイスもしくは要素を含むことができ、それによって、ユーザは、コマンドをデバイスに入力することができる。しかしながら、いくつかの実施形態では、そのようなデバイスは、一切のボタンを備えることがなく、視覚的コマンド及び音声コマンドの組合せを介してのみ制御することができ、ユーザは、デバイスに接触することなく、デバイスを制御することができる。いくつかの実施形態では、図8のコンピューティングデバイス800は、Wi−Fi(登録商標)、ブルートゥース、RF、有線または無線通信システムのような様々なネットワークを介して通信するための1つ以上のネットワークインターフェース808を備えることができる。多くの実施形態において、デバイスは、インターネットなどのネットワークと通信することができ、他のそのようなデバイスと通信することができる。
【0057】
記載のように、記載された実施形態に従って、異なる手法を様々な環境で実現することができる。例えば、図9は、様々な実施形態に従って、態様を実現するための環境900の例示を示す。理解されることであるが、ウェブベースの環境は、説明の目的のために使用されたが、異なる環境は、様々な実施形態を実現するために、適宜、使用することができる。このシステムは、電子クライアントデバイス902を備え、これは、適切なネットワーク904上で要求、メッセージ、または情報を送信及び受信し、情報をデバイスのユーザに搬送して戻すように動作可能な任意の適切なデバイスを備えることができる。このようなクライアントデバイスの例示は、パーソナルコンピュータ、携帯電話、携帯型メッセージングデバイス、ラップトップ型コンピュータ、セットトップボックス、個人データ端末、電子ブックリーダ等を含む。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のそのようなネットワークもしくはそれらの組合せを含む、任意の適切なネットワークを含むことができる。そのようなシステムに用いられる構成要素は、ネットワークのタイプ及び/または選択された環境に少なくとも部分的に依存することができる。そのようなネットワークを介する通信のためのプロトコル及び構成要素は、公知であり、本明細書では詳細に議論されない。ネットワークを介した通信は、有線または無線接続、及びそれらの組合せによって可能にすることができる。この例示では、ネットワークは、インターネットを含み、環境は、要求を受信し、かつそれに応答してコンテンツを提供するためのウェブサーバー906を含むが、他のネットワークの場合、当業者には明らかであるように、同様の目的を果たす代替のデバイスを使用することができる。
【0058】
実例の環境は、少なくとも1つのアプリケーションサーバー908及びデータストア910を含む。適切なデータストアからデータを取得する等のタスクを行うように相互作用することが可能である、連結またはそうでなければ構成することができる、複数のアプリケーションサーバー、層もしくは他の要素、プロセス、または構成要素が存在できることを理解されたい。本明細書で使用されるように、「データストア」という用語は、データを記憶し、それにアクセスし、それを取り出すことが可能な任意のデバイスまたはデバイスの組合せを指し、これは、任意の標準的な分散型またはクラスタ型環境において、データサーバー、データベース、データ記憶デバイス、及びデータ記憶媒体の任意の組合せ及び数を備えることができる。アプリケーションサーバーは、必要に応じてデータストアと統合してクライアントデバイスの1つ以上のアプリケーションの態様を実行し、アプリケーションのデータアクセス及びビジネス論理の大部分を処理するための任意の好適なハードウェア及びソフトウェアを備えることができる。アプリケーションサーバーは、データストアと連携してアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィックス、オーディオ及び/またはビデオのようなコンテンツを生成することができ、この例示では、これらは、HTML、XML、または別の適切な構造化言語の形態でウェブサーバーによってユーザに提供することができる。全ての要求及び応答の処理、ならびにクライアントデバイス902とアプリケーションサーバー908との間のコンテンツの配信は、ウェブサーバー906によって処理することができる。本明細書で議論される構造化されたコードは、本明細書の他の箇所で議論される任意の適切なデバイスまたはホストマシンで実行することができるので、ウェブサーバー及びアプリケーションサーバーは、必須ではなく、単に例示の構成要素であることを理解されたい。
【0059】
データストア910は、複数の別個のデータテーブル、データベースまたは他のデータ記憶機構、及び特定の態様に関するデータを記憶するための媒体を含むことができる。例えば、示されたデータストアは、製造データ912及びユーザ情報916を格納する機構を備え、製造側にコンテンツを提供するために使用することができる。データストアはまた、ログまたはセッションデータ914を格納するための機構を備えるように示される。ページの画像情報及びアクセス権情報等、データストアに格納する必要もある多くの他の態様が存在することができ、これは、必要に応じて上に列挙された機構のいずれか、またはデータストア910内の追加の機構に記憶することができることを理解されたい。データストア910は、それに関連する論理を介して動作可能であり、アプリケーションサーバー908から命令を受け取り、それに応じて、データを取得し、更新するまたはそうでなければ処理する。一例示では、ユーザは、あるタイプのアイテムのための検索の要求を提出することもある。この場合、データストアは、ユーザ情報にアクセスしてユーザの識別を確認することができ、カタログの詳細情報にアクセスして、そのタイプのアイテムについての情報を取得することができる。この情報は、次に、ユーザがユーザデバイス902のブラウザを介して見ることができるウェブページ上の結果一覧等で、ユーザに返すことができる。関心のある特定のアイテムの情報を、ブラウザの専用ページまたはウィンドウで見ることができる。
【0060】
各サーバーは、サーバーの全般的な管理及び操作のための実行可能なプログラム命令を提供するオペレーティングシステムを備え、またサーバーのプロセッサによって実行されると、意図された機能をサーバーが行うことを可能にする命令を格納するコンピュータ可読媒体を備える。サーバーのオペレーティングシステム及び全体的な機能のための適切な実現形態は、公知であり、または市販されており、具体的に本明細書の本開示に照らして、当業者によって容易に実現される。
【0061】
一実施形態における環境は、1つ以上のコンピュータネットワークまたは直接接続を使用し、通信リンクを介して相互接続された複数のコンピュータシステム及び構成要素を利用する、分散型コンピューティング環境である。しかしながら、当業者であれば、そのようなシステムが、図9に示されたよりも少ない数または多い数の構成要素を有するシステムで同等にうまく動作できることを理解されたい。したがって、図9のシステム900の図示は、本質的に実例としてみなされるべきであり、本開示の範囲を制限するものではない。
【0062】
本明細書で議論された、または示唆された、様々な実施形態は、多種多様の動作環境で実現することができ、これらは、ある場合には、いくつかのアプリケーションのうちのいずれかを動作するために使用することができる1つ以上のユーザコンピュータ、コンピューティングデバイス、またはプロセッシングデバイスを含むことができる。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップ型またはラップトップ型コンピュータ、ならびに、モバイルソフトウェアを実行し、多数のネットワーク及びメッセージプロトコルをサポートすることが可能な携帯電話、無線、及び携帯型デバイスなどの、任意の多数の汎用パーソナルコンピュータを備えることができる。このようなシステムはまた、開発及びデータベース管理などの目的のために、様々な市販のオペレーティングシステム及び他の公知のアプリケーションのうちのいずれかを実行する多数のワークステーションを備えることができる。これらのデバイスはまた、ダミーターミナル、シンクライアント、ゲーミングシステム、及びネットワークを介して通信することができる他のデバイスなどの他の電子デバイスを備えることができる。
【0063】
ほとんどの実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、及びAppleTalkなどの、多様な市販のプロトコルのいずれかを使用して通信をサポートするために、当業者によく知られているであろう少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及びそれらの任意の組合せであることができる。
【0064】
ウェブサーバーを利用する実施形態においては、ウェブサーバーは、HTTPサーバー、FTPサーバー、CGIサーバー、データサーバー、Java(登録商標)サーバー、及びビジネスアプリケーションサーバーを含む、あらゆる種類のサーバーまたは中間層アプリケーションを実行することができる。サーバー(複数可)はまた、例えば、Java(登録商標)、C、C#、もしくはC++等の任意のプログラミング言語、またはPerl、Python、もしくはTCLなどの任意のスクリプト言語、ならびにそれらの組合せで書かれる1つ以上のスクリプトまたはプログラムとして実現することができる1つ以上のウェブアプリケーションを実行することなどによって、ユーザデバイスからの要求に応答してプログラムまたはスクリプトを実行することができる。サーバー(複数可)はまた、制限するものではないが、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)から市販のものを含むデータベースサーバーも備えることができる。
【0065】
環境は、上述のように様々なデータストアと、他のメモリと、記憶媒体と、を備えることができる。これらは、様々な場所、例えば、コンピュータのうちの1つ以上に対してローカルである(かつ/もしくはそこに存在する)、またはネットワーク上のコンピュータのうちのいずれかもしくは全てから遠隔である、記憶媒体上に存在することができる。実施形態の特定のセットにおいて、情報は、当業者に熟知されたストレージエリアネットワーク(「SAN」)内に存在することができる。同様に、コンピュータ、サーバー、または他のネットワークデバイスに属する機能を行うために必要な任意のファイルを、必要に応じてローカル及び/または遠隔で格納することができる。システムがコンピュータ化されたデバイスを含む場合、それぞれのそのようなデバイスは、バスを介して電気的に結合することができるハードウェア要素を備えることができ、これらの要素は、例えば、少なくとも1つの中央処理ユニット(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタ、またはスピーカー)を含む。このようなシステムはまた、ディスクドライブ、光学的記憶デバイス、及びランダムアクセスメモリ(RAM)または読み出し専用メモリ(ROM)などのソリッドステート記憶デバイス、ならびに取り外し可能記憶デバイス、メモリカード、フラッシュカードなどのような1つ以上の記憶デバイスを備えることができる。
【0066】
そのようなデバイスはまた、上述のように、コンピュータ可読記憶媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、及びワーキングメモリを備えることができる。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的及び/またはより恒久的に収容し、格納し、送信し、かつ読み出すための、遠隔、ローカル、固定、及び/または取り外し可能な記憶デバイスならびに記憶媒体を表すコンピュータ可読記憶媒体に、接続する、またはそれを受け取るように構成する、ことができる。システム及び様々なデバイスはまた、通常、多数のソフトウェアアプリケーション、モジュール、サービス、またはクライアントアプリケーションまたはウェブブラウザなどのオペレーティングシステム及びアプリケーションプログラムを含む少なくとも1つのワーキングメモリデバイス内に位置する他の要素を備える。代替の実施形態が、上述のものからの多数の変形を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され得、かつ/または特定の要素が、ハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、もしくはこれらの両方に実装され得る。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続を用いることができる。
【0067】
コードまたはコードの部分を収容するための記憶媒体及びコンピュータ可読媒体は、限定するものではないが、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶及び/または送信のための任意の方法または技術で実現される、揮発性及び不揮発性、取り外し可能及び取り外し不能の媒体などの記憶媒体及び通信媒体を含む、従来技術で公知である、または使用されている任意の適切な媒体を含むことができ、RAM、ROM、EEPROM(登録商標)、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光学的記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、かつシステムデバイスによってアクセスすることができる任意の他の媒体を含む。本明細書に提供される本開示及び教示に基づいて、当業者であれば、様々な実施形態を実現する他の仕方及び/または方法を理解するであろう。
【0068】
明細書及び図面は、したがって、限定的な意味ではなく実例としてみなされるべきである。しかしながら、特許請求の範囲に記載のように本発明のより広い趣旨及び範囲から逸脱することなく、様々な変更及び改変を行うことができることは明らかであろう。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
〔1〕
実行可能な命令で構成された1つ以上のコンピュータシステムの制御下で、
ホストコンピューティングデバイスの仮想化層で特権操作を行うための要求を生成することと、
情報を暗号化するために使用することができる公開鍵であって、前記公開鍵を使用して暗号化された前記情報を解読するために使用することができる対応する秘密鍵を有する、前記公開鍵を取得し、かつ前記公開鍵を前記要求内に含めることと、
前記公開鍵を含む前記要求を前記ホストコンピューティングデバイスの前記仮想化層であって、前記特権操作を実行して結果を生成するように構成される、前記仮想化層に提出することと、を含み、
前記仮想化層が、前記要求と共に提供された前記公開鍵を使用することにより、前記特権操作の前記結果を暗号化するように構成される、コンピュータ実現方法。
〔2〕
前記ホストコンピューティングデバイスの前記仮想化層の外部に前記結果が通信される前に、前記仮想化層が、前記結果を暗号化するように構成される、〔1〕に記載のコンピュータ実現方法。
〔3〕
前記仮想化層が、前記暗号化された結果を前記ホストコンピューティングデバイスに対して外部にある場所に通信するように構成され、前記暗号化された結果が、秘密鍵を使用することにより前記場所で解読される、〔1〕に記載のコンピュータ実現方法。
〔4〕
前記特権操作を行うための前記要求が、第2の鍵を使用して暗号化され、前記要求が、前記仮想化層によって解読可能である、〔1〕に記載のコンピュータ実現方法。
〔5〕
前記特権操作を行うための前記要求が、サービスの秘密鍵を使用して署名され、前記要求の署名が、サービス公開鍵を使用して前記仮想化層によって確認可能である、〔1〕に記載のコンピュータ実現方法。
〔6〕
証明機関(CA)から前記サービス公開鍵を含む証明書を取得することをさらに含む、〔5〕に記載のコンピュータ実現方法。
〔7〕
前記公開鍵を取得することが、
前記公開鍵の所有権を証明する少なくとも1つの証明書を、証明機関(CA)を使用して取得することをさらに含む、〔1〕に記載のコンピュータ実現方法。
〔8〕
前記要求が、複数のホストコンピューティングデバイスを監視する監視サービスによって生成される、〔1〕に記載のコンピュータ実現方法。
〔9〕
前記複数のホストコンピューティングデバイスの少なくとも1つに関連付けられたプロファイルに少なくとも部分的に基づいて、前記複数のホストコンピューティングデバイスの前記少なくとも1つが異常に動作していることを、前記監視サービスによって検出することをさらに含む、〔8〕に記載のコンピュータ実現方法。
〔10〕
前記要求が、指定された期間に拘束される、〔1〕に記載のコンピュータ実現方法。
〔11〕
前記特権操作が、前記ホストコンピューティングデバイスの前記仮想化層の実行中のメモリイメージを変更する、〔1〕に記載のコンピュータ実現方法。
〔12〕
前記特権操作が、
前記ホストコンピューティングデバイスのメモリ内の場所であって、前記仮想化層に関連付けられた場所を読み取ることを、さらに含む、〔1〕に記載のコンピュータ実現方法。
〔13〕
少なくとも1つのプロセッサを備える第1のコンピュータシステムと、
前記少なくとも1つのプロセッサによって実行されると、
ホストコンピューティングデバイスの仮想化層で特権操作を行うための要求であって、公開鍵を含み、前記公開鍵が、情報を暗号化するために使用することができ、前記公開鍵を使用して暗号化された前記情報を解読するために使用することができる対応する秘密鍵を有する、要求を信頼できる関係者から受け取ることと、
前記ホストコンピューティングデバイスのアプリケーションプログラミングインターフェース(API)に前記要求を発行することと、を前記コンピューティングシステムに行わせる命令を含むメモリと、を備え、前記仮想化層が、前記特権操作を実行して、結果を生成し、かつ前記要求と共に提供された前記公開鍵を使用して前記結果を暗号化する、システム。
〔14〕
前記ホストコンピューティングデバイスであって、少なくとも1つのプロセッサと、実行されると、
前記特権操作を実行することと、
前記要求と共に提供される前記公開鍵を使用して前記結果を暗号化することと、
前記暗号化された結果を所定の場所に格納することと、を前記ホストコンピューティングデバイスに行わせる命令を含むメモリと、を備える前記ホストコンピューティングデバイスをさらに備える、〔13〕に記載のシステム。
〔15〕
前記特権操作を行うための要求が、第2の鍵を使用して暗号化され、前記要求が、前記仮想化層によって解読される、〔13〕に記載のコンピューティングシステム。
図1
図2
図3
図4
図5
図6
図7
図8
図9