JP6462103B2 - 特権的コンピューティングオペレーションの結果の保護 - Google Patents

特権的コンピューティングオペレーションの結果の保護 Download PDF

Info

Publication number
JP6462103B2
JP6462103B2 JP2017239323A JP2017239323A JP6462103B2 JP 6462103 B2 JP6462103 B2 JP 6462103B2 JP 2017239323 A JP2017239323 A JP 2017239323A JP 2017239323 A JP2017239323 A JP 2017239323A JP 6462103 B2 JP6462103 B2 JP 6462103B2
Authority
JP
Japan
Prior art keywords
request
virtualization layer
public key
host computing
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017239323A
Other languages
English (en)
Other versions
JP2018081705A (ja
Inventor
エリック・ジェイソン・ブランドワイン
マシュー・シャウン・ウィルソン
Original Assignee
アマゾン・テクノロジーズ、インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アマゾン・テクノロジーズ、インコーポレイテッド filed Critical アマゾン・テクノロジーズ、インコーポレイテッド
Publication of JP2018081705A publication Critical patent/JP2018081705A/ja
Application granted granted Critical
Publication of JP6462103B2 publication Critical patent/JP6462103B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Description

インターネットのようなネットワーク上で利用可能となるアプリケーション及びサービスの数が増加するにつれて、クラウドコンピューティングのような技術に目を向けるコンテンツ、アプリケーション、及び/またはサービスプロバイダの数が増加している。クラウドコンピューティングは、概して、ウェブサービスのようなサービスを介して電子リソースへのアクセスを提供する手法であり、そのようなサービスをサポートするために使用されるハードウェア及び/またはソフトウェアは、任意の所与の時点でサービスのニーズを満たすために、動的にスケラーブルである。ユーザまたは顧客は、一般に、クラウドを介するリソースへのアクセスをレンタルする、リースする、またはその他の方法で支払うので、必要とされるハードウェア及び/またはソフトウェアを購入し、維持する必要がない。
多くのクラウドコンピューティングプロバイダは、仮想化を利用して、基礎となるハードウェア及び/またはソフトウェアリソースを複数のユーザが共有することを可能にする。仮想化は、コンピューティングサーバー、ストレージデバイス、または他のリソースを、特定のユーザによってそれぞれが所有される複数の分離されたインスタンス(例えば、仮想マシン)に分割することを可能にすることができる。これらの仮想マシンは、多くの場合、ホストコンピューティングデバイスで実行されるハイパーバイザーを使用してホストされる。このような場合には、ハイパーバイザー及びゲストオペレーティングシステムのカーネルは、セキュリティ実施機構として動作する。例えば、ハイパーバイザーは、一般に、ホスト上の様々な仮想マシンを制御し、カーネルは、仮想マシン上の様々なプロセスを制御する。セキュリティ上の理由から、ハイパーバイザー及びカーネルの両方は、変更または改変することが困難である。しかしながら、時には、ソフトウェアパッチを適用する、セキュリティ監視を行う、などの理由で、ハイパーバイザーまたはカーネルのコードを実行時に変更することが望まれる場合がある。
本開示に従った様々な実施形態を、図面を参照して説明する。
様々な実施形態に従って、ハイパーバイザーまたはカーネルの特権操作の結果を保護する例示を示す。 様々な実施形態に従って、非対称の暗号を使用してカーネルまたはハイパーバイザーに提出される要求を暗号化する例示を示す。 様々な実施形態に従って、証明機関を利用する例示を示す。 様々な実施形態に従って、サービスプロバイダのリソースセンタ環境の例示を示す。 様々な実施形態に従って、ハイパーバイザーまたはカーネルで特権操作を実行するための要求の結果を保護するための例示のプロセスを示す。 様々な実施形態に従って、ハイパーバイザーまたはカーネルで、特権操作を実行するために使用することができるAPIを提供するための例示のプロセスを示す。 様々な実施形態に従って、要求の暗号化を利用するための例示のプロセスを示す。 様々な実施形態に従って、利用することができる例示のコンピューティングデバイスの一般的な構成要素のセットの論理的配設を示す。 様々な実施形態に従って、態様を実現するための環境の例示を示す。
以下の説明では、様々な実施形態が、添付の図面の図において、限定としてでなく、例示として示される。本開示における様々な実施形態への参照は、必ずしも同じ実施形態に対してではなく、そのような参照は、少なくとも1つを意味する。特定の実現形態及び他の詳細が説明されるが、これは実例の目的のみのために行われることを理解されたい。関連技術の当業者は、特許請求の主題の範囲及び趣旨から逸脱することなく、他の構成要素及び構成が使用できることを認識するであろう。
本開示の様々な実施形態によるシステム及び方法は、特権的システム(例えば、オペレーティングシステムのカーネル、ハイパーバイザーなど)でオペレーションを行うことによって取得される結果などのデータを保護するために、従来の手法で経験する上記のまたは他の欠点の1つ以上を克服することができる。具体的には、様々な実施形態は、非対称(または対称)の暗号などのセキュリティスキームを利用し、ハイパーバイザー及び/またはカーネルの特権操作を行うための要求に鍵(例えば、公開鍵)を含めることにより、データを保護する。カーネル及び/またはハイパーバイザーは、要求に含まれる鍵を使用して特権操作の結果を暗号化することができる。いくつかの実施形態では、要求自体もまた、暗号化する、または署名する、ことができ、一切の中間の関係者は、それらの関係者が、要求を見ること、及び/または要求を解読する、またはそうでなければ要求を改ざんする、ために使用される鍵のコピーまたは他の機構を有することが承認されない限り、要求のパラメータ及び他の情報を読むことができない。実施形態によれば、要求は、コードがオペレーティングシステム(OS)のカーネル及び/またはハイパーバイザーに確実に追加される、かつ/または変更される、ことを可能にするインターフェース(例えば、アプリケーションプログラミングインターフェース(API))の正式なセットを使用して、カーネル/ハイパーバイザーに提出される。これらのインターフェースは、起動されて、実行時にセキュリティ監視、フォレンシックキャプチャ、及び/パッチソフトウェアシステムを行うことができる。様々な実施形態では、API要求の結果は、API要求にパラメータとして含まれていた公開鍵を使用して暗号化される。
様々な実施形態では、本明細書に記載のセキュリティスキームは、ホストコンピューティングデバイスのハイパーバイザー及び/またはOSのカーネルで特権操作を行うとき、マルチテナント共有リソース環境(例えば、クラウドコンピューティング環境)で利用することができる。従来、このタイプの環境では、ホストコンピューティングデバイスは、仮想化技術を利用し、サービスプロバイダ(例えば、クラウドコンピューティングプロバイダ)の異なる顧客に関連する1つ以上の仮想マシンのインスタンスをプロビジョニングする。これらの仮想マシンのインスタンスは、ハイパーバイザー(または、他の仮想化技術)を使用してコンピューティングデバイスでホストされ、各仮想マシンのインスタンスは、カーネル、デバイスドライバ、及び他のOS構成要素を備えるゲストオペレーティングシステムを含むことができる。仮想マシンをホストするためのホストコンピューティングデバイス及び他の物理リソースは、通常、サービスプロバイダによって提供され、データセンタ、サーバーファーム、コンテンツ配信ネットワーク(CDN)ポイントオブプレゼンス(POP)などのリソースセンタに存在する。
そのようなマルチタレント共有リソース環境では、様々なホストマシン及びその上で動作する仮想マシンインスタンスの間で、イントロスペクション及び/または他のデータ収集を行うのにしばしば有用である。例えば、ハイパーバイザーまたはカーネルを異常状態にする原因となるソフトウェアバグまたは他の異常が存在する場合がある。いくつかの場合では、この異常状態は潜在的不良の可能性があり、この状況を解決するために何も行われない場合、ホストデバイスまたは仮想マシンのインスタンスは最終的に不良となる。これらのエラーの一部を検出すること、または解決することは、ホストデバイスの実行されているハイパーバイザー及び/またはカーネルのメモリを検査することを要求し得る。しかしながら、これらの構成要素(例えば、ハイパーバイザー/カーネル)は、通常、リソースの所有者に対して安全かつ私的に維持することが重要である非常に機密性の高い情報を含む。
様々な実施形態において、そのような機密性の高い情報へのアクセスを保護するために、本明細書に記載のアプリケーションプログラミングインターフェース(API)を使用して、仮想マシンのハイパーバイザー及び/またはカーネルの特権操作(例えば、機密性の高いデータを抽出する、更新を行う、など)を行うための要求を提出することができる。承認されていない関係者(例えば、データ技術者など)が要求へのアクセスを獲得することを防ぐために、要求は、署名する、かつ/または暗号化する、ことができる。また、要求は、要求の任意の結果を暗号化するためにハイパーバイザー/カーネルが使用することができる公開鍵を(例えば、パラメータとして)含むことができる。したがって、公開鍵に対応する秘密鍵を有する関係者は、要求の結果を解読することができる。その結果、要求を扱う、または傍受する、ことができる一切の中間の関係者(例えば、データ技術者)は、要求を読む、または要求の結果を解読する、ことができなくなる。要求が署名されている場合、要求する者の公開鍵は、要求に対するパラメータであり、署名でカバーされており、公開鍵は、要求を仲介者として扱う何人によっても、削除される、または交換される、ことができない。
いくつかの実施形態では、結果を解読できる秘密鍵を有する関係者は、要求を遂行し、かつ結果を収集することを中間の関係者に元々命令した関係者である。例えば、管理者は、技術者に要求を起動して、結果を収集することを命令することができ、管理者は、結果を解読することができる秘密鍵を所有する(すなわち、技術者は、結果を読むことができない)。代替の実施形態では、秘密鍵を有する関係者は、結果を収集することを中間の関係者に承認した関係者と異なる関係者である。例えば、サービスプロバイダの管理者は、技術者が要求を発行し、結果を収集することを承認することができる。別のパーティ(例えば、調査者)は、結果を解読するために使用される秘密鍵を所有することができる。技術者は、要求を発行することができるが、技術者は、結果を解読するための秘密鍵を所有していないので、結果を読むことができない。同様に、この例示では、管理者は、要求を実行することも、その要求の結果を読むことも、承認されない。そのような鍵の所有権についての様々な他の例示は、様々な実施形態の範囲内であることが可能である。
いくつかの実施形態では、セキュリティスキームは、サービスプロバイダのネットワーク上で実行される様々な仮想マシンのインスタンスに関する機密性の高いデータを収集するために使用することができる。一実施形態では、信頼できる中央のサービスは、リソースセンタ内のホストデバイスの全てについての要求を生成することができ、中央のサービスは、それらの要求内にその公開鍵を含めることができる。信頼されていない構成要素(例えば、中間の関係者)は、次にそれらの要求をホストデバイスに配信し、要求をローカルで発行することができる。いくつかの実施形態では、信頼されていない同じ構成要素は、結果を収集し、それらを中央のサービスへの配信のために受け取ることができる。この結果は、それらが中央のサービスに到達すると、解読することができる。
一実施形態では、サービスプロバイダは、セキュリティスキームを利用してスペキュレーティブデータ収集を行う、例えば、顧客の信頼を侵害せずに、不正行為または不正使用のケースを検出する、ことができる。例えば、不正行為の調査者は、特定のホストマシンを疑わしいものとしてフラグ付けし、そのマシンの監視を開始することができる。監視が開始されると、要求は、詳細なカーネルまたはハイパーバイザー情報(すなわち、結果)の収集を開始することをハイパーバイザーに行わせることができる。次に、結果は、要求内に含まれる公開鍵を使用して暗号化することができる。続いて、秘密鍵を所有する承認された関係者は、収集されたデータを解読し、分析を行ってサービスなどの不正行為、不正使用を決定することができる。
別の実施形態では、セキュリティスキームを利用して、連続的なヘルスチェックサービスを実現することができる。例えば、特定のホストマシンが性能の異常を示しているとき、ヘルスサービスは、機密性の高い顧客データを含み、オペレーションの結果を暗号化することができるカーネル/ハイパーバイザーのメモリのスナップショットをキャプチャするための要求を提出することができる。要求の結果が暗号化されるので、情報が不正にアクセスされる可能性が少なくなる。いくつかの実施形態では、ヘルスサービスはまた、ホストマシンまたは仮想マシンのインスタンスをランダムに、サンプリングする、かつ/またはプロファイリングする、ことができる。例えば、サービスは、性能データのベースラインを取得し、後でそのベースラインに少なくとも部分的に基づいて、異常を検出することができる。様々な実施形態では、プロファイルは、顧客ベースまたはマシンベースであることができ、絶対的な閾値を含むことができる、またはランダム化することができる(例えば、周期的に複数のホストマシンをスナップショットのためにランダムに選択することができる)。
様々な実施形態では、解読鍵(例えば、秘密鍵)は、安全な場所に格納される。例えば、鍵は、サービスプロバイダのセキュリティチームによって維持することができる。このように、データを収集する人及び収集の結果を読むことができる人は、異なる関係者であり、さらには秘密鍵へのアクセス権を持たないこともある。一実施形態では、データが暗号化される鍵(例えば、公開鍵)は、要求の一部である。代替の実施形態では、全てのホストマシンが信頼する単一の鍵が存在する場合もあり、この鍵は、カーネル内にコンパイルすることができる。別の実施形態では、信頼できる証明機関(CA)が存在することができ、各ホストマシンは、信頼できるCAから証明をフェッチする。
いくつかの実施形態では、顧客は、鍵を指定し、この鍵を使用して顧客のVMインスタンスのメモリの暗号化された画像化ダンプを顧客に提供することをサービスプロバイダに命令することができる。メモリのダンプを取り出すための要求は、ウェブサービスAPIのようなAPIを使用して、ホストコンピューティングデバイス(例えば、ホストコンピューティングデバイスのカーネルまたはハイパーバイザー)に提出することができる。一実施形態では、API要求は、顧客指定鍵を含むことができる。ホストコンピューティングデバイスのカーネルまたはハイパーバイザーが、ホストコンピューティングデバイスの外部にメモリのダンプを通信する前に、メモリのダンプは、顧客が指定した鍵を使用して暗号化される。
図1は、様々な実施形態に従って、ハイパーバイザーまたはカーネルの特権操作の結果を保護する例示100を示す。示された実施形態では、要求107は、ホストコンピューティングデバイス101のカーネル106またはハイパーバイザー102上の特権操作を行うために、アプリケーションプログラミングインターフェース(API)108のセットを使用して、提出することができる。この実施形態では、ホストコンピューティングデバイス101は、ハイパーバイザー102及び特権的ドメイン(DOM−0)105の組合せとして示された仮想化層を含む。次に、Dom0 105及びハイパーバイザー102は、ゲスト115のような複数のゲストに作用することができる。ゲストは、仮想マシンのインスタンスであることができ、各々が独自のそれぞれのオペレーティングシステム(OS)、カーネル、デバイスドライバ、スケジューラなどを有する。Dom−0 105は、ホストコンピューティングデバイス101上の他のゲストドメインを起動し、管理するために使用される。仮想化層は、この図では別々の構成要素として示されているが、仮想化層の他の実現形態も、可能であり、かつ本開示の範囲内である。例えば、Dom0の機能、またはその機能のサブセット、ならびにハイパーバイザー102によって影響されるものは、単一の構成要素に統合することができる。
実施形態によれば、要求107は、例えばハイパーバイザー/カーネルのメモリ位置を読み取る、ハイパーバイザー/カーネルのコードのセクションを変更するなどの任意の特権操作を実行するために、データ技術者、監視サービス、アプリケーション、顧客、または他の構成要素によって、開始することができる。以下の図2及び3を参照して説明されるように、要求は、署名する、かつ/または暗号化する、ことができる。
実施形態によれば、要求107は、情報、ならびに例えば、要求及びデジタル署名を提出する原則の識別子、を暗号化するために使用することができる公開鍵104を(例えば、パラメータとして)含む。要求がカーネル106に向けられると、カーネルは、特権操作を実行し、結果を生成した後、結果109を要求に含まれる公開鍵104を使用して暗号化することができる。結果109は、カーネル106及び/またはホストコンピューティングデバイス101の外部に通信される前に、暗号化される。同様に、要求がハイパーバイザーに向けられると、ハイパーバイザーは、特権操作を実行して、結果を生成し、結果がハイパーバイザーを出る前に、結果110を公開鍵194を使用して暗号化することができる。
いくつかの実施形態では、要求は、特定のホストマシンに拘束される必要がない。しかしながら、他の実施形態では、要求は、選択されたマシンに拘束されてもよい。少なくとも1つの実施形態では、要求は、特定の時間窓(例えば、日、週など)に拘束することができ、サービスプロバイダは、その期間中に、要求を様々なホストマシンに発行することができる複数の人を採用することができる。データは、それがカーネルまたはハイパーバイザーを出る前に暗号化される、またはそれがホストコンピューティングデバイス101上に永続的な方法で格納されている場合に暗号化される、ので、セキュリティスキームは、データ技術者または他の中間の関係者112(信頼できない可能性がある人)が非常に機密性の高いコールを発行し、高度に機密性の高い情報をハイパーバイザー/カーネル及び/または他の保護された構成要素から収集することを可能にする。これらの要求の結果は、それらがカーネル/ハイパーバイザーを出る前に、暗号化されるので、中間の関係者112は、それらの結果に含めることができる機密性の高い情報へのアクセス権を持たない。様々な実施形態では、得られたデータの全ては、安全に収集され、格納することができ、安全な場所103内の承認された、または信頼された、関係者のみが、安全に維持された秘密鍵111を使用することにより、その情報を解読することができる。
図2は、様々な実施形態に従って、非対称な暗号を使用してカーネルまたはハイパーバイザーに提出された要求を署名する例示200を示す。この実施形態では、ホストコンピューティングデバイス201は、少なくとも1つの仮想化層(ハイパーバイザー202及びDom0 205の組合せとして示されている)及び1つ以上のゲスト211を備える。ゲストは、仮想マシンのインスタンスであることができ、各々がそれら独自のそれぞれのオペレーティングシステム(OS)、カーネル、デバイスドライバ、スケジューラなどを有する。
実施形態によれば、ホストコンピューティングデバイス201は、カーネル(例えば、Dom−0カーネル)またはハイパーバイザー202上の特権操作を行うために、署名された、かつ/または暗号化された、要求を提出するために使用することができるAPI208のセットを提供する。特権操作は、メモリ内の位置を読むことができ、1つ以上の結果を生成することをハイパーバイザー202及び/またはカーネル206に行わせることができる。API要求は暗号化することができるので、カーネル/ハイパーバイザーの外部の中間の関係者は、暗号化された要求を秘密鍵を所有せずに読むことができず、要求が行うことを意図しているものを知ることがない。また、暗号化された要求は、結果がカーネル/ハイパーバイザーの外部に送信される前に、要求の結果を暗号化するために使用することができる公開鍵を含むことができる。
示された実施形態によれば、APIの要求は、秘密鍵及び公開鍵を含む非対称の鍵対を使用して、署名される、かつ確認する、ことができる。一実施形態では、APIコール(例えば、結果を暗号化するための公開鍵を含む)に対する引数の少なくとも一部(または全部)は、標準化され、かつシリアル化されて、署名文字列を得る。この文字列は、次にハッシュベースメッセージ承認コード(HMAC)または非対称の暗号のいずれかを介して署名され、API208に送ることができる。APIへのパラメータが署名内に含まれているので、要求(例えば、要求を行ったコード)を取得した潜在的攻撃者は、要求を変えることができない、また要求から公開鍵を取り出すこと、またはそれを別の鍵と交換すること、ができない。
いくつかの実施形態によれば、要求は、タイムスタンプを含むことができ、時間窓ベース再生保護を提供し、要求は、制限された期間のみにわたって有効である。いくつかの実施形態では、要求は、ホストコンピューティングデバイス201に特別に関連付けられた一意の値、例えばシリアル番号、またはホストマシン識別子(ID)、を含むことができる。これらの値は、秘密ではないかもしれないが、それらを含むことは、要求を特定のホストコンピューティングデバイス201に拘束することができる。その場合、潜在的攻撃者が異なるホストコンピューティングデバイスに対する要求を再生することを防止する。いくつかの実施形態では、要求は、ホストコンピューティングデバイス201への拘束の強度を増加するために、ホストコンピューティングデバイス201内のトラステッドプラットフォームモジュール(TPM)(図示せず)によって承認することができる。
示された実施形態では、API要求に署名するために使用される秘密鍵204は、要求がアドレス指定されるホストコンピューティングデバイス201に存在しない。その代わりに、秘密鍵204は、サービスプロバイダのネットワーク202の安全な場所203に、または別の信頼できる場所に、格納することができる。結果として、悪意のあるエージェントがホストコンピューティングデバイス201に存在した場合、それらは、秘密鍵204を使用して要求を偽造することができない。
ホストコンピューティングデバイス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は、公開鍵を使用して要求を確認することを試み、確認が成功した場合、必要な特権操作を実行することができる。
代替の実施形態(図示せず)では、HMAC及び対称な鍵が利用された場合、秘密鍵は、カーネル206またはハイパーバイザー202にコンパイルすることができる。その場合、秘密鍵は、難読化して、ビルド毎に変えることができるが、この鍵は、実際には、ホストコンピューティングデバイス201に存在することができる。任意選択的に、要求全体は、カーネルにコンパイルされる鍵に暗号化することができ、要求自体は、それを発行するコードに対して不透明である。
いくつかの実施形態では、1つ以上の制約は、要求に設けられた特定の鍵に従って(または、鍵を所有する関係者に従って)適用することができる。例えば、いくつかのアクターによって署名された要求は、ホストコンピューティングデバイスでゲスト仮想マシンを開始/停止することを可能にすることができるだけである。他のアクター(例えば、サービスプロバイダのOSチーム)によって保持された鍵を使用して署名された要求は、仮想マシンまたはハイパーバイザーのメモリを読み取ることを可能にすることができる。一実施形態では、ホストコンピューティングデバイス201は、そこに格納された複数の異なる公開鍵を有することができ、各公開鍵は、異なるエンティティ(例えば、ユーザ、チームなど)に関連付けられた秘密鍵に関連付けられる。どのエンティティの秘密鍵が要求に署名するために使用されたかに依存して、要求されたオペレーションが、許可される、または拒否される、場合がある。代替の実施形態では、ホストコンピューティングデバイス201は、1つの秘密鍵に関連付けられた1つだけの公開鍵を格納することができ、しかしながら、要求は、要求を提出するユーザの識別を含むことができる。この識別に基づいて、ホストコンピューティングデバイス201は、要求されたオペレーションの実行に異なる制約を適用することができる。例えば、ホストコンピューティングデバイス201は、1人のユーザがゲストを停止/開始することを可能にすることができ、一方、別のユーザは、ハイパーバイザーのコードの変更または更新をすることができる。そのような制約(例えば、鍵毎または関係者毎の基準で)の任意の数が可能であり、本明細書に記載の実施形態の範囲内である。
図3は、様々な実施形態に従って、証明機関を利用する例示300を示す。示された実施形態では、ホストコンピューティングデバイス(例えば、ホストコンピューティングデバイス301上のカーネル306及び/またはハイパーバイザー302)は、ブート時に非対称の鍵対からなる暗号化識別を生成する。例えば、ホストコンピューティングデバイス301がブートするとき、ハイパーバイザー302は、秘密鍵307及び公開鍵309を含む鍵対を生成する。同様に、Dom0 305がロードされると、カーネル306は、秘密鍵313及び公開鍵314からなる鍵対を生成する。
様々な実施形態では、公開鍵(309、313)は、同じ様式で発行することができる。例えば、公開鍵は、証明機関310に提供することができる。あるいは、公開鍵は、要求する関係者に直接提供することができる。この公開鍵は、収集することができ、要求は、この鍵を使用して暗号化することができる。この実施形態では、ホストコンピューティングデバイス301によって生成された秘密鍵(307、314)は、決してホストコンピューティングデバイスから離れることがなく、他のどこにも存在しない。要求する関係者が、公開鍵をホストコンピューティングデバイス301から確実に得ることができる場合、それは、公開鍵を使用して署名された要求が、そのホストコンピューティングデバイス301(かつ、そのホストコンピューティングデバイスのみ)に向かうことを保証することができ、その理由は、要求が、ホストコンピューティングデバイスを決して離れない秘密鍵(307、313)によって唯一解読することができる公開鍵(309、314)を使用することによって、署名されているからである。図3は、カーネル306及び仮想化層302の両方がそれら自体のそれぞれの鍵対を発行する例示を示しているが、これは全ての実施形態に対する要件または制限ではないことに留意されたい。いくつかの実施形態では、ハイパーバイザーだけが鍵対を発行する。他の実施形態では、カーネルだけが鍵対を発行する。さらに他の実施形態では、ハイパーバイザー及びカーネルが、鍵対を共有することができる。
いくつかの実施形態では、ホストコンピューティングデバイス301は、証明機関(CA)310への要求に署名するために使用される公開鍵309を提供することができる。CA310は、1つ以上のデジタル証明(312、315)を適切な要求する関係者(例えば、署名する関係者311)に発行するエンティティであることができる。デジタル証明は、関係者が、API要求に署名するために使用することができる公開鍵を適切に所有することを証明する。この実施形態では、CAの使用により、要求する関係者が、秘密鍵が実際にホストコンピューティングデバイス301のためのものであることを信じることが、ある確実性の程度で可能になる。一実施形態では、CAは、サービスプロバイダのためのCAであり、サービスプロバイダのリソースセンタ内で実行される。リソースセンタは、以下の図4を参照してさらに詳細に説明する。別の実施形態では、CA310は、証明に依存している要求する関係者311及びホストコンピューティングデバイス301の両方によって信頼される信頼できる第三者機関である。証明機関は、従来技術で公知であり、多くの公開鍵インフラストラクチャ(PKI)スキームで使用されている。
この実施形態では、CA310が証明312を要求する関係者311に一旦発行すると、要求する関係者311は、証明を使用して、カーネル306またはハイパーバイザー302との関連で特権操作を実行するためのAPI要求を行うことができる。ハイパーバイザー302またはカーネル306は、次に、特定の関係者に発行された特定のCAによって署名された任意の証明が有効であることを確認することができ、それに応じて特権操作を実行することができる。
いくつかの実施形態では、証明機関310はまた、前述のように、要求の結果に署名するために使用される公開鍵のための証明を提供することができる。例えば、サービスプロバイダの従業員(例えば、データ技術者)は、ホストコンピューティングデバイス301上のカーネル/ハイパーバイザーに機密性の高い要求を提出する必要があるとき、データ技術者は、証明をCA310から最初に取得することができる。この証明は、次にデータ技術者によって公開鍵の所有権を証明するために使用することができる。同様な様式で、監視サービスのような自動化構成要素はまた、本明細書に記載のように、CA310を利用して1つ以上の証明を取得することができる。
その様々な実施形態では、図3に示された技術は、図2に示された技術と一緒に使用することができる。例えば、図3の要求する関係者311は、それ自身の秘密鍵を有することができ、要求する関係者が、それを使用して特権操作を実行するための要求に署名することができる。この実施形態では、要求は、真正性を保証するために署名される(すなわち、ホストコンピューティングデバイスは、要求する関係者が要求を生成したことを確実に知ることになる)だけではなく、プライバシーを保証するために暗号化される(すなわち、外部の関係者は要求に含まれる情報を解読することができない)。
図4は、様々な実施形態に従う、サービスプロバイダのリソースセンタ環境の例示400を示す。示された実施形態では、サービスプロバイダ(例えば、クラウドコンピューティングリソースプロバイダ)は、サービスプロバイダの物理的リソース(例えば、ホストサーバーなど)を記憶する1つ以上のリソースセンタ423(例えば、データセンタ、サーバーファームなど)を維持することができる。それらの物理的リソースは、インターネットのようなネットワーク402を介してユーザ401に提供することができる複数の仮想マシンのインスタンスまたは仮想サーバーをホストするために使用することができる。例えば、ユーザが、サービスプロバイダの物理的リソースを使用してアプリケーションを実行したい場合、彼または彼女は、アプリケーションを展開して実行するために使用されるユーザのための仮想マシンをプロビジョニングすることを、サービスプロバイダに要求することができる。ユーザのアプリケーションに対する要求が高まるにつれて、ユーザは、負荷のバランスをとるためにより多くの仮想マシンがプロビジョニングされることを要求し、1つ以上の仮想プライベートネットワーク(VPN)などの作成を要求することができる。
示された例示では、サービスプロバイダのリソースセンタ423は、特定のラック上の各ホストコンピューティングデバイスが、単一のトップオブラック(TOR)スイッチ(404、405)に接続されたホストコンピューティングデバイス(406、407、408、409、410)の1つ以上のラック421、422を備えることができる。これらのTORスイッチは、ホストコンピューティングデバイスをネットワークに接続することを可能にする1つ以上の他のスイッチ(424、425)にさらに接続することができる。本開示全体を通して使用されるように、ネットワークは、互いに通信することができるデバイスの任意の有線または無線のネットワークであることができ、制限するものではないが、インターネットまたは他のワイドエリアネットワーク(WAN)、セルラーネットワーク、ローカルエリアネットワーク(LAN)、ストレージエリアネットワーク(SAN)、イントラネット、エクストラネットなどを含む。リソースセンタは、任意の物理的または論理的リソースのグループ、例えばデータセンタ、サーバーファーム、コンテンツ配信ネットワーク(CDN)ポイントオブプレゼンス(POP)などを含むことができる。
実施形態によれば、各ホストコンピューティングデバイスは、顧客に代わって様々なアプリケーション及びサービスを実行するためにサービスプロバイダの顧客にプロビジョニングされた1つ以上の仮想マシンのインスタンス(413、414、415、416、417、418、419)をホストすることができる。各仮想マシンは、カーネル、ドライバ、プロセス管理などを含む独自のオペレーティングシステム(OS)をプロビジョニングすることができる。
顧客が、仮想マシンのインスタンスを取得したいとき、顧客は、最初に彼らが使用したいVMのタイプを示す要求をサービスプロバイダに提出することができる。サービスプロバイダは、プロセスを遂行し、サービスプロバイダの物理的リソース(例えば、ホストコンピューティングデバイス)でホストされる仮想マシンのインスタンスをプロビジョニングすることができる。仮想マシンのインスタンスは、次に、サービスプロバイダのリソースを利用し、顧客に代わって、様々なアプリケーション及びサービスを実行するために使用することができる。
実施形態によれば、仮想マシンのインスタンスが一旦アップされて実行されると、変更は、VMのハイパーバイザーまたはカーネルのコードに適用する必要がある場合がある。例えば、サービスプロバイダは、ホストマシン上でVMをホストするハイパーバイザーのコードにパッチまたは更新を適用したい場合がある。あるいは、顧客(またはある他の第三者)は、VMのカーネルのコードに更新を適用したい場合がある。様々な実施形態では、本開示を通して説明されるAPIは、非対称(または対称)の暗号を利用することにより、ユーザが安全な様式でコードを変更することを可能にする。さらに、そのようなAPI要求の結果は、本明細書に記載の方式のセキュリティを使用することにより、結果がカーネル/ハイパーバイザーの外部に通信される前に、暗号化することができる。
図5は、様々な実施形態に従って、ハイパーバイザーまたはカーネルで特権操作を実行するための要求の結果を保護するための例示のプロセス500を示す。この図は、特定のシーケンスで機能的オペレーションを示しているが、プロセスは、示された特定の順序またはオペレーションに必ずしも限定されるものではない。当業者は、この図または他の図に描かれた様々なオペレーションが、変えられる、再配列される、並列で実行される、または様々な方法で適合化される、ことができることを理解するであろう。さらに、特定のオペレーションまたはオペレーションのシーケンスは、様々な実施形態の範囲から逸脱することなく、プロセスに追加する、またはそこから省略する、ことができる。また、本明細書に含まれるプロセスの実例は、コードの実行の実際のシーケンスを指定することではなく、当業者にプロセスフローの概念を実証することを意図し、異なるフローまたはシーケンスとして実現される、性能が最適化される、またはそうでなければ様々な仕方で変更される場合もある。
オペレーション501では、インターフェース(例えば、API)が、ホストコンピューティングデバイスによって設けられる。インターフェースは、署名されたかつ/または暗号化された要求を、ハイパーバイザー及びカーネルを有する1つ以上の仮想マシンのインスタンスのような保護された構成要素を含むことができるホストコンピューティングデバイスに、提出するために使用することができる。
オペレーション502では、公開鍵は、ハイパーバイザー及び/またはカーネルで特権操作を行うための要求(例えば、API要求)にパラメータとして含められる。公開鍵は、要求の結果を暗号化するために使用される。いくつかの実施形態では、要求は、それ自体が暗号化される。要求全体が暗号化されるこれらの実施形態では、鍵は、実際の要求を暗号化するために使用される公開鍵と異なることができる。他の実施形態では、鍵は、要求を暗号化するために使用される鍵と同じ鍵であることができる。いずれの場合でも、要求に含まれる鍵は、カーネル/ハイパーバイザーによって実行される特権操作の結果を暗号化するために使用することができる。
オペレーション503では、パラメータとして含まれる鍵を有する要求は、ホストコンピューティングデバイスのハイパーバイザーまたはカーネルに提出される。オペレーション504では、ハイパーバイザー及び/またはカーネルは、要求を解読し、特権操作を実行し、ホストコンピューティングデバイスに結果のセットを生成する。例えば、APIがウェブサービスAPIである実施形態では、ホストコンピューティングデバイスで、例えば仮想化層で、実行されるウェブサーバーは、この特定の例ではウェブサービスAPIコールであるAPIコールを受け取ることができる。ウェブサーバーは、要求を承認し、特権操作を起動することができる。
オペレーション505では、カーネル/ハイパーバイザーによって生成される結果は、その結果がカーネル/ハイパーバイザーの外部に通信される前に、要求に含まれる公開鍵を使用して暗号化される。例えば、結果がデータ技術者または監視サービスに提供される前に、結果は暗号化され、それにより、データ技術者または監視サービスは、それらが正しい秘密鍵へのアクセス権を持たない限り、要求の結果を読むことが妨げられる。
オペレーション506では、結果は、サービスプロバイダの内部ネットワーク上の遠隔のネットワーク場所のような保護された場所に配信される。実施形態によれば、保護された場所は、公開鍵を使用して暗号化された結果を解読するために使用することができる秘密鍵を格納する。オペレーション507では、結果は、秘密鍵を使用する承認された関係者によって、解読される。
図5では、要求が暗号化されているが、これは、本明細書に記載の実施形態の全てに対して限定するものではないことに留意されたい。いくつかの代替の実施形態では、要求は、承認されたエンティティの秘密鍵を使用して唯一署名することができる。これらの実施形態では、要求に含まれる公開鍵は、要求に関連付けられた署名の一部であり、したがって、承認されていないエンティティによって除去することができない。他の実施形態では、要求は、証明されない、または暗号化されない。
図6は、様々な実施形態に従って、ハイパーバイザーまたはカーネルで特権操作を行うために使用することができるAPIを提供するための例示のプロセス600を示す。
オペレーション601では、1つ以上のアプリケーションプログラミングインターフェース(API)が設けられ、これは、署名された要求をホストコンピューティングデバイスに提出するために使用することができる。ホストコンピューティングデバイスは、仮想化層(例えば、仮想マシンモニター、またはハイパーバイザーと一緒に動作するDom0)及び1つ以上のゲスト(例えば、オペレーティングシステムのカーネルを有する仮想マシンが実行されているゲストオペレーティングシステム)を備えることができる。
オペレーション602では、秘密鍵及び対応する公開鍵を備える非対称の鍵対が生成される。秘密鍵は、情報を暗号化するために使用することができ、公開鍵は、秘密鍵を使用して暗号化された情報を解読するために使用することができる。
オペレーション603では、公開鍵をホストコンピューティングデバイスに格納する。例えば、公開鍵は、オペレーティングシステムのカーネル、またはハイパーバイザーにコンパイルすることができる。あるいは、鍵は、ホストコンピューティングデバイスのトラステッドプラットフォームモジュール(TPM)に格納することができる。
オペレーション604では、秘密鍵は、ホストコンピューティングデバイスに対して外部にある安全な場所に格納する。この実施形態では、秘密鍵は、ホストコンピューティングデバイスに存在せず、その上に存在する一切の悪意のあるエージェントは、秘密鍵へのアクセス権を持っていない。
オペレーション605では、ホストコンピューティングデバイスは、ハイパーバイザー及び/またはオペレーティングシステムのカーネルで特権操作を実行することを要求する要求を、APIを介して受け取る。実施形態によれば、受け取った要求に秘密鍵を使用して署名する。
オペレーション606では、ホストコンピューティングデバイス(例えば、カーネルまたはハイパーバイザー)が、ホストコンピューティングデバイスに格納された公開鍵を使用して、要求の署名を確認することを試みる。オペレーション607に示されるように、要求の署名が正常に確認される場合、特権操作は、ハイパーバイザー/カーネルで実行することができる。署名が公開鍵を使用して正常に確認されない場合、特権操作が失敗する(すなわち、実行されない)。
図7は、様々な実施形態に従って、要求の暗号化を利用するための例示のプロセス700を示す。オペレーション701では、ホストコンピューティングデバイスは、非対称の鍵対を生成する。例えば、ホストコンピューティングデバイスのブートプロセスは、公開鍵及び対応する秘密鍵を生成することができる。オペレーション702では、公開鍵は、信頼できるソースに公開されている。一実施形態では、公開鍵は、要求を暗号化するために公開鍵を使用する要求する関係者に直接提供することができる。別の実施形態では、公開鍵は、証明機関に提供することができ、証明機関は、カーネルまたはハイパーバイザーで特権操作を行うことを望む承認された関係者に証明を与えることができる。この実施形態では、証明機関は、証明に公開鍵を埋め込み、それ自体の秘密鍵を使用して証明に署名することができる。したがって、証明を受け取る関係者は、公開鍵が、実際にホストコンピューティングデバイスからのものであるとCAによって証明されていることを確認することができる。
オペレーション703では、ホストコンピューティングデバイスは、特権操作を行うための要求を受け取ることができる。オペレーション704に示されるように、ホストコンピューティングデバイスは、次にホストコンピューティングデバイスに格納された秘密鍵を使用して要求を解読することを試みる。オペレーション705に示されるように、要求が、秘密鍵を使用することにより解読される場合、ホストコンピューティングデバイスは、カーネル/ハイパーバイザーで特権操作を実行することができる。
本開示の種々の実施形態は、以下の付記を考慮して説明することができる。
付記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に記載の非一時的コンピュータ可読記憶媒体。
図8は、例示のコンピューティングデバイス800の一般的な構成要素のセットの論理的配設を示す。この例示では、デバイスは、メモリデバイスまたは要素804に格納することができる命令を実行するためのプロセッサ802を備える。当業者には明らかであるが、このデバイスは、多くのタイプのメモリ、データストレージ、または非一時的コンピュータ可読記憶媒体、例えば、プロセッサ802によって実行されるプログラム命令のための第1のデータストレージ、画像またはデータのための別個のストレージ、他のデバイスと情報を共有するための取り外し可能なメモリなどを備えることができる。このデバイスは、通常、タッチスクリーンまたは液晶ディスプレイ(LCD)のようなあるタイプの表示要素806を備えることができるが、携帯型メディアプレーヤーのようなデバイスは、オーディオスピーカーを介するような他の手段によって、情報を搬送することができる。記載のように、多くの実施形態において、デバイスは、従来の入力をユーザから受け取ることができる少なくとも1つの入力要素808を含む。この従来の入力は、例えば、プッシュボタン、タッチパッド、タッチスクリーン、ホイール、ジョイスティック、キーボード、マウス、キーパッド、または任意の他のそのようなデバイスもしくは要素を含むことができ、それによって、ユーザは、コマンドをデバイスに入力することができる。しかしながら、いくつかの実施形態では、そのようなデバイスは、一切のボタンを備えることがなく、視覚的コマンド及び音声コマンドの組合せを介してのみ制御することができ、ユーザは、デバイスに接触することなく、デバイスを制御することができる。いくつかの実施形態では、図8のコンピューティングデバイス800は、Wi−Fi(登録商標)、ブルートゥース(登録商標)、RF、有線または無線通信システムのような様々なネットワークを介して通信するための1つ以上のネットワークインターフェース808を備えることができる。多くの実施形態において、デバイスは、インターネットなどのネットワークと通信することができ、他のそのようなデバイスと通信することができる。
記載のように、記載された実施形態に従って、異なる手法を様々な環境で実現することができる。例えば、図9は、様々な実施形態に従って、態様を実現するための環境900の例示を示す。理解されることであるが、ウェブベースの環境は、説明の目的のために使用されたが、異なる環境は、様々な実施形態を実現するために、適宜、使用することができる。このシステムは、電子クライアントデバイス902を備え、これは、適切なネットワーク904上で要求、メッセージ、または情報を送信及び受信し、情報をデバイスのユーザに搬送して戻すように動作可能な任意の適切なデバイスを備えることができる。このようなクライアントデバイスの例示は、パーソナルコンピュータ、携帯電話、携帯型メッセージングデバイス、ラップトップ型コンピュータ、セットトップボックス、個人データ端末、電子ブックリーダ等を含む。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のそのようなネットワークもしくはそれらの組合せを含む、任意の適切なネットワークを含むことができる。そのようなシステムに用いられる構成要素は、ネットワークのタイプ及び/または選択された環境に少なくとも部分的に依存することができる。そのようなネットワークを介する通信のためのプロトコル及び構成要素は、公知であり、本明細書では詳細に議論されない。ネットワークを介した通信は、有線または無線接続、及びそれらの組合せによって可能にすることができる。この例示では、ネットワークは、インターネットを含み、環境は、要求を受信し、かつそれに応答してコンテンツを提供するためのウェブサーバー906を含むが、他のネットワークの場合、当業者には明らかであるように、同様の目的を果たす代替のデバイスを使用することができる。
実例の環境は、少なくとも1つのアプリケーションサーバー908及びデータストア910を含む。適切なデータストアからデータを取得する等のタスクを行うように相互作用することが可能である、連結またはそうでなければ構成することができる、複数のアプリケーションサーバー、層もしくは他の要素、プロセス、または構成要素が存在できることを理解されたい。本明細書で使用されるように、「データストア」という用語は、データを記憶し、それにアクセスし、それを取り出すことが可能な任意のデバイスまたはデバイスの組合せを指し、これは、任意の標準的な分散型またはクラスタ型環境において、データサーバー、データベース、データ記憶デバイス、及びデータ記憶媒体の任意の組合せ及び数を備えることができる。アプリケーションサーバーは、必要に応じてデータストアと統合してクライアントデバイスの1つ以上のアプリケーションの態様を実行し、アプリケーションのデータアクセス及びビジネス論理の大部分を処理するための任意の好適なハードウェア及びソフトウェアを備えることができる。アプリケーションサーバーは、データストアと連携してアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィックス、オーディオ及び/またはビデオのようなコンテンツを生成することができ、この例示では、これらは、HTML、XML、または別の適切な構造化言語の形態でウェブサーバーによってユーザに提供することができる。全ての要求及び応答の処理、ならびにクライアントデバイス902とアプリケーションサーバー908との間のコンテンツの配信は、ウェブサーバー906によって処理することができる。本明細書で議論される構造化されたコードは、本明細書の他の箇所で議論される任意の適切なデバイスまたはホストマシンで実行することができるので、ウェブサーバー及びアプリケーションサーバーは、必須ではなく、単に例示の構成要素であることを理解されたい。
データストア910は、複数の別個のデータテーブル、データベースまたは他のデータ記憶機構、及び特定の態様に関するデータを記憶するための媒体を含むことができる。例えば、示されたデータストアは、製造データ912及びユーザ情報916を格納する機構を備え、製造側にコンテンツを提供するために使用することができる。データストアはまた、ログまたはセッションデータ914を格納するための機構を備えるように示される。ページの画像情報及びアクセス権情報等、データストアに格納する必要もある多くの他の態様が存在することができ、これは、必要に応じて上に列挙された機構のいずれか、またはデータストア910内の追加の機構に記憶することができることを理解されたい。データストア910は、それに関連する論理を介して動作可能であり、アプリケーションサーバー908から命令を受け取り、それに応じて、データを取得し、更新するまたはそうでなければ処理する。一例示では、ユーザは、あるタイプのアイテムのための検索の要求を提出することもある。この場合、データストアは、ユーザ情報にアクセスしてユーザの識別を確認することができ、カタログの詳細情報にアクセスして、そのタイプのアイテムについての情報を取得することができる。この情報は、次に、ユーザがユーザデバイス902のブラウザを介して見ることができるウェブページ上の結果一覧等で、ユーザに返すことができる。関心のある特定のアイテムの情報を、ブラウザの専用ページまたはウィンドウで見ることができる。
各サーバーは、サーバーの全般的な管理及び操作のための実行可能なプログラム命令を提供するオペレーティングシステムを備え、またサーバーのプロセッサによって実行されると、意図された機能をサーバーが行うことを可能にする命令を格納するコンピュータ可読媒体を備える。サーバーのオペレーティングシステム及び全体的な機能のための適切な実現形態は、公知であり、または市販されており、具体的に本明細書の本開示に照らして、当業者によって容易に実現される。
一実施形態における環境は、1つ以上のコンピュータネットワークまたは直接接続を使用し、通信リンクを介して相互接続された複数のコンピュータシステム及び構成要素を利用する、分散型コンピューティング環境である。しかしながら、当業者であれば、そのようなシステムが、図9に示されたよりも少ない数または多い数の構成要素を有するシステムで同等にうまく動作できることを理解されたい。したがって、図9のシステム900の図示は、本質的に実例としてみなされるべきであり、本開示の範囲を制限するものではない。
本明細書で議論された、または示唆された、様々な実施形態は、多種多様の動作環境で実現することができ、これらは、ある場合には、いくつかのアプリケーションのうちのいずれかを動作するために使用することができる1つ以上のユーザコンピュータ、コンピューティングデバイス、またはプロセッシングデバイスを含むことができる。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップ型またはラップトップ型コンピュータ、ならびに、モバイルソフトウェアを実行し、多数のネットワーク及びメッセージプロトコルをサポートすることが可能な携帯電話、無線、及び携帯型デバイスなどの、任意の多数の汎用パーソナルコンピュータを備えることができる。このようなシステムはまた、開発及びデータベース管理などの目的のために、様々な市販のオペレーティングシステム及び他の公知のアプリケーションのうちのいずれかを実行する多数のワークステーションを備えることができる。これらのデバイスはまた、ダミーターミナル、シンクライアント、ゲーミングシステム、及びネットワークを介して通信することができる他のデバイスなどの他の電子デバイスを備えることができる。
ほとんどの実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、及びAppleTalkなどの、多様な市販のプロトコルのいずれかを使用して通信をサポートするために、当業者によく知られているであろう少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及びそれらの任意の組合せであることができる。
ウェブサーバーを利用する実施形態においては、ウェブサーバーは、HTTPサーバー、FTPサーバー、CGIサーバー、データサーバー、Java(登録商標)サーバー、及びビジネスアプリケーションサーバーを含む、あらゆる種類のサーバーまたは中間層アプリケーションを実行することができる。サーバー(複数可)はまた、例えば、Java(登録商標)、C、C#、もしくはC++等の任意のプログラミング言語、またはPerl、Python、もしくはTCLなどの任意のスクリプト言語、ならびにそれらの組合せで書かれる1つ以上のスクリプトまたはプログラムとして実現することができる1つ以上のウェブアプリケーションを実行することなどによって、ユーザデバイスからの要求に応答してプログラムまたはスクリプトを実行することができる。サーバー(複数可)はまた、制限するものではないが、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)から市販のものを含むデータベースサーバーも備えることができる。
環境は、上述のように様々なデータストアと、他のメモリと、記憶媒体と、を備えることができる。これらは、様々な場所、例えば、コンピュータのうちの1つ以上に対してローカルである(かつ/もしくはそこに存在する)、またはネットワーク上のコンピュータのうちのいずれかもしくは全てから遠隔である、記憶媒体上に存在することができる。実施形態の特定のセットにおいて、情報は、当業者に熟知されたストレージエリアネットワーク(「SAN」)内に存在することができる。同様に、コンピュータ、サーバー、または他のネットワークデバイスに属する機能を行うために必要な任意のファイルを、必要に応じてローカル及び/または遠隔で格納することができる。システムがコンピュータ化されたデバイスを含む場合、それぞれのそのようなデバイスは、バスを介して電気的に結合することができるハードウェア要素を備えることができ、これらの要素は、例えば、少なくとも1つの中央処理ユニット(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタ、またはスピーカー)を含む。このようなシステムはまた、ディスクドライブ、光学的記憶デバイス、及びランダムアクセスメモリ(RAM)または読み出し専用メモリ(ROM)などのソリッドステート記憶デバイス、ならびに取り外し可能記憶デバイス、メモリカード、フラッシュカードなどのような1つ以上の記憶デバイスを備えることができる。
そのようなデバイスはまた、上述のように、コンピュータ可読記憶媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、及びワーキングメモリを備えることができる。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的及び/またはより恒久的に収容し、格納し、送信し、かつ読み出すための、遠隔、ローカル、固定、及び/または取り外し可能な記憶デバイスならびに記憶媒体を表すコンピュータ可読記憶媒体に、接続する、またはそれを受け取るように構成する、ことができる。システム及び様々なデバイスはまた、通常、多数のソフトウェアアプリケーション、モジュール、サービス、またはクライアントアプリケーションまたはウェブブラウザなどのオペレーティングシステム及びアプリケーションプログラムを含む少なくとも1つのワーキングメモリデバイス内に位置する他の要素を備える。代替の実施形態が、上述のものからの多数の変形を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され得、かつ/または特定の要素が、ハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、もしくはこれらの両方に実装され得る。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続を用いることができる。
コードまたはコードの部分を収容するための記憶媒体及びコンピュータ可読媒体は、限定するものではないが、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶及び/または送信のための任意の方法または技術で実現される、揮発性及び不揮発性、取り外し可能及び取り外し不能の媒体などの記憶媒体及び通信媒体を含む、従来技術で公知である、または使用されている任意の適切な媒体を含むことができ、RAM、ROM、EEPROM(登録商標)、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光学的記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、かつシステムデバイスによってアクセスすることができる任意の他の媒体を含む。本明細書に提供される本開示及び教示に基づいて、当業者であれば、様々な実施形態を実現する他の仕方及び/または方法を理解するであろう。
明細書及び図面は、したがって、限定的な意味ではなく実例としてみなされるべきである。しかしながら、特許請求の範囲に記載のように本発明のより広い趣旨及び範囲から逸脱することなく、様々な変更及び改変を行うことができることは明らかであろう。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[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]に記載のコンピューティングシステム。

Claims (15)

  1. ンピュータ実現方法において、
    ホストコンピューティングデバイスの仮想化層で特権操作を行うための要求を生成することと、ここにおいて、前記仮想化層はハイパーバイザーまたはカーネルの少なくとも1つを含み、前記仮想化層で前記特権操作を行うための前記要求は、ユーザによって開始され、アプリケーションプログラミングインターフェースを使用して前記仮想化層に提出され、
    公開鍵を取得し、かつ前記公開鍵を前記要求内に含めることであって、前記公開鍵は、前記仮想化層によって情報を暗号化するために使用することができ、前記公開鍵は、前記仮想化層によって前記公開鍵を使用して暗号化された前記情報を解読するために使用することができる対応する秘密鍵を有ここにおいて、前記特権操作を行うための前記要求は第2のカギを使用して暗号化され
    前記公開鍵を含む前記要求を前記ホストコンピューティングデバイスの前記仮想化層に提出すること、を含み、前記仮想化層は、結果を生成するために前記特権操作を実行するように構成され
    ここにおいて、前記仮想化層が、前記要求と共に提供された前記公開鍵を使用することにより、前記結果が前記ホストコンピューティングデバイスの前記仮想化層の外部に送信される前に、前記特権操作を行うための前記要求を解読し、および、前記特権操作の前記結果を暗号化するように構成され、前記結果は異常状態の情報を含むハイパーバイザーまたはカーネルの情報を備える、
    コンピュータ実現方法。
  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に記載のコンピューティングシステム。
JP2017239323A 2013-01-22 2017-12-14 特権的コンピューティングオペレーションの結果の保護 Active JP6462103B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/746,780 US9503268B2 (en) 2013-01-22 2013-01-22 Securing results of privileged computing operations
US13/746,780 2013-01-22

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015555247A Division JP6321041B2 (ja) 2013-01-22 2014-01-22 特権的コンピューティングオペレーションの結果の保護

Publications (2)

Publication Number Publication Date
JP2018081705A JP2018081705A (ja) 2018-05-24
JP6462103B2 true JP6462103B2 (ja) 2019-01-30

Family

ID=51208709

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015555247A Active JP6321041B2 (ja) 2013-01-22 2014-01-22 特権的コンピューティングオペレーションの結果の保護
JP2017239323A Active JP6462103B2 (ja) 2013-01-22 2017-12-14 特権的コンピューティングオペレーションの結果の保護

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2015555247A Active JP6321041B2 (ja) 2013-01-22 2014-01-22 特権的コンピューティングオペレーションの結果の保護

Country Status (9)

Country Link
US (1) US9503268B2 (ja)
EP (1) EP2948855B1 (ja)
JP (2) JP6321041B2 (ja)
KR (1) KR101704329B1 (ja)
CN (1) CN105027096B (ja)
AU (1) AU2014209471B2 (ja)
CA (1) CA2898907C (ja)
SG (1) SG11201505654YA (ja)
WO (1) WO2014116744A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860274B2 (en) 2006-09-13 2018-01-02 Sophos Limited Policy management
US8494585B2 (en) 2011-10-13 2013-07-23 The Boeing Company Portable communication devices with accessory functions and related methods
US9729517B2 (en) 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
GB2515536A (en) * 2013-06-27 2014-12-31 Ibm Processing a guest event in a hypervisor-controlled system
US10064240B2 (en) 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
US9819661B2 (en) * 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US9497221B2 (en) 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US9225529B1 (en) * 2013-12-10 2015-12-29 Emc Corporation Encrypted virtual machines in a cloud
IN2013CH06052A (ja) * 2013-12-23 2015-06-26 Cognizant Technology Solutions India Pvt Ltd
US9652276B2 (en) 2014-09-17 2017-05-16 International Business Machines Corporation Hypervisor and virtual machine protection
US10628406B1 (en) 2014-09-30 2020-04-21 EMC IP Holding Company LLC Method and system for secure data replication data integrity verification
GB2531770A (en) * 2014-10-30 2016-05-04 Ibm Confidential Extracting System Internal Data
US10110566B2 (en) * 2015-07-21 2018-10-23 Baffle, Inc. Systems and processes for executing private programs on untrusted computers
CN105931042A (zh) * 2015-09-22 2016-09-07 中国银联股份有限公司 一种应用权限管理方法以及智能pos终端
US9894061B2 (en) 2015-10-16 2018-02-13 International Business Machines Corporation Method for booting and dumping a confidential image on a trusted computer system
US9792143B1 (en) * 2015-10-23 2017-10-17 Amazon Technologies, Inc. Platform secure execution modes
US20170277903A1 (en) * 2016-03-22 2017-09-28 Qualcomm Incorporated Data Protection Using Virtual Resource Views
JP6603632B2 (ja) * 2016-08-16 2019-11-06 日本電信電話株式会社 Apiシステム及びデータ暗号化方法
CN106372497B (zh) * 2016-08-31 2020-01-03 北京深思数盾科技股份有限公司 一种应用编程接口api保护方法和保护装置
US10270596B2 (en) * 2016-09-16 2019-04-23 International Business Machnines Corporation Generating memory dumps
US10467416B2 (en) * 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US10878110B2 (en) 2017-09-12 2020-12-29 Sophos Limited Dashboard for managing enterprise network traffic
US10757082B2 (en) * 2018-02-22 2020-08-25 International Business Machines Corporation Transforming a wrapped key into a protected key
US11362824B2 (en) * 2018-05-25 2022-06-14 Intertrust Technologies Corporation Content management systems and methods using proxy reencryption
US11151254B2 (en) 2018-09-11 2021-10-19 Amari.Ai Incorporated Secure communications gateway for trusted execution and secure communications
KR102156174B1 (ko) * 2019-06-25 2020-09-15 아주대학교산학협력단 클라우드 기반의 IoT 시스템에 대한 디지털 포렌식 장치 및 방법
US20210281561A1 (en) * 2020-03-09 2021-09-09 International Business Machines Corporation Certification for connection of virtual communication endpoints
KR20220052007A (ko) * 2020-10-20 2022-04-27 삼성전자주식회사 전자 장치 및 그 제어 방법
US11829493B2 (en) * 2020-10-27 2023-11-28 Dell Products L.P. Device access control system
US11537705B2 (en) * 2020-10-27 2022-12-27 Dell Products L.P. Device access control system

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410602A (en) * 1993-09-27 1995-04-25 Motorola, Inc. Method for key management of point-to-point communications
US6704871B1 (en) 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
CA2255285C (en) 1998-12-04 2009-10-13 Certicom Corp. Enhanced subscriber authentication protocol
US6826690B1 (en) 1999-11-08 2004-11-30 International Business Machines Corporation Using device certificates for automated authentication of communicating devices
JP2002073358A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 仮想計算機主記憶のアクセス制御方法
JP3938852B2 (ja) 2001-06-20 2007-06-27 富士通株式会社 監視サービス価格提示方法,監視サービス価格提示プログラム,監視サービス価格提示装置
US6944300B2 (en) 2001-06-22 2005-09-13 International Business Machines Corporaton Method for migrating a base chip key from one computer system to another
US7272832B2 (en) 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
CA2431311C (en) 2002-06-06 2004-05-04 Dick C. Hardt Distributed hierarchical identity management
JP2004254027A (ja) * 2003-02-19 2004-09-09 Toshiba Corp サーバ装置、鍵管理装置、暗号通信方法及びプログラム
US8295484B2 (en) 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
US8539587B2 (en) 2005-03-22 2013-09-17 Hewlett-Packard Development Company, L.P. Methods, devices and data structures for trusted data
US7636442B2 (en) 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8364638B2 (en) 2005-09-15 2013-01-29 Ca, Inc. Automated filer technique for use in virtualized appliances and applications
JP2007122303A (ja) 2005-10-27 2007-05-17 Hitachi Ltd 論理区画式計算機システム
JP5054317B2 (ja) 2006-02-08 2012-10-24 株式会社アイ・オー・データ機器 暗号鍵設定方法、ネットワークシステム、管理装置、情報処理端末、および暗号鍵設定プログラム
US8130959B2 (en) * 2006-09-07 2012-03-06 International Business Machines Corporation Rekeying encryption for removable storage media
US8407699B2 (en) * 2008-03-10 2013-03-26 Citrix Systems, Inc. System and method for managing code isolation
US8453143B2 (en) * 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
US8208637B2 (en) 2007-12-17 2012-06-26 Microsoft Corporation Migration of computer secrets
US9363258B2 (en) * 2007-12-17 2016-06-07 International Business Machines Corporation Secure digital signature system
US8353015B2 (en) 2008-01-09 2013-01-08 Microsoft Corporation Trusted internet identity
US8595723B2 (en) 2008-06-10 2013-11-26 Hewlett-Packard Development Company, L.P. Method and apparatus for configuring a hypervisor during a downtime state
AU2009259876A1 (en) 2008-06-19 2009-12-23 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US8336079B2 (en) 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US8738932B2 (en) 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US9158912B2 (en) 2009-04-01 2015-10-13 Dell Products L.P. Method and apparatus for a virtual machine hosting network with user devices
US8478725B2 (en) 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
US8635632B2 (en) * 2009-10-21 2014-01-21 International Business Machines Corporation High performance and resource efficient communications between partitions in a logically partitioned system
US8631404B2 (en) * 2010-02-18 2014-01-14 Red Hat Israel, Ltd. Mechanism for downloading hypervisor updates via a virtual hardware device using existing virtual machine-host channels
US8417885B2 (en) * 2010-02-24 2013-04-09 Avaya Inc. Method and apparatus for high availability (HA) protection of a running virtual machine (VM)
JP5467461B2 (ja) 2010-03-17 2014-04-09 曙ブレーキ工業株式会社 ブリーダプラグ
JP2011211255A (ja) 2010-03-26 2011-10-20 Kyocera Corp データ転送システム、通信機器及びデータ転送方法
JP5444104B2 (ja) * 2010-04-21 2014-03-19 株式会社日立製作所 記憶手段の管理方法、仮想計算機システムおよびプログラム
US8300831B2 (en) * 2010-04-26 2012-10-30 International Business Machines Corporation Redundant key server encryption environment
US8473557B2 (en) 2010-08-24 2013-06-25 At&T Intellectual Property I, L.P. Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network
US9304867B2 (en) * 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
US8800050B2 (en) 2010-11-09 2014-08-05 Microsoft Corporation Security system for computing resources pre-releases
KR20120050742A (ko) * 2010-11-11 2012-05-21 삼성에스디에스 주식회사 커널 네이티브 에이피아이의 후킹 처리를 통한 디지털 저작권 관리 장치 및 방법
US8880667B2 (en) 2011-02-09 2014-11-04 Microsoft Corporation Self regulation of the subject of attestation
JP5648544B2 (ja) 2011-03-15 2015-01-07 富士通株式会社 スケジューリングプログラム、および情報処理装置
US20120324446A1 (en) 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing
US8732462B2 (en) * 2011-07-07 2014-05-20 Ziptr, Inc. Methods and apparatus for secure data sharing
JP2013058006A (ja) * 2011-09-07 2013-03-28 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
EP2587715B1 (en) 2011-09-20 2017-01-04 BlackBerry Limited Assisted certificate enrollment
US9069586B2 (en) * 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US8914629B2 (en) * 2012-01-30 2014-12-16 The Nielsen Company (Us), Llc Intercepting encrypted network traffic for internet usage monitoring
US8688984B2 (en) 2012-04-27 2014-04-01 Google Inc. Providing content to a user across multiple devices
US10255089B2 (en) * 2012-07-31 2019-04-09 Ca, Inc. Self-deleting virtual machines
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9729517B2 (en) 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration

Also Published As

Publication number Publication date
JP2016509726A (ja) 2016-03-31
WO2014116744A1 (en) 2014-07-31
CN105027096A (zh) 2015-11-04
KR101704329B1 (ko) 2017-02-08
CA2898907C (en) 2018-08-14
CN105027096B (zh) 2018-03-16
AU2014209471A1 (en) 2015-08-27
KR20150106923A (ko) 2015-09-22
JP6321041B2 (ja) 2018-05-09
SG11201505654YA (en) 2015-08-28
AU2014209471B2 (en) 2017-04-06
US20140208097A1 (en) 2014-07-24
US9503268B2 (en) 2016-11-22
JP2018081705A (ja) 2018-05-24
EP2948855B1 (en) 2019-07-10
EP2948855A1 (en) 2015-12-02
CA2898907A1 (en) 2014-07-31
EP2948855A4 (en) 2016-09-14

Similar Documents

Publication Publication Date Title
JP6462103B2 (ja) 特権的コンピューティングオペレーションの結果の保護
US11228449B2 (en) Secure interface for invoking privileged operations
JP6165883B2 (ja) 安全な仮想マシン移行
US10409985B2 (en) Trusted computing host

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181226

R150 Certificate of patent or registration of utility model

Ref document number: 6462103

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250