JP6092428B2 - 特権付き動作を呼び出すためのセキュアインターフェイス - Google Patents

特権付き動作を呼び出すためのセキュアインターフェイス Download PDF

Info

Publication number
JP6092428B2
JP6092428B2 JP2015555246A JP2015555246A JP6092428B2 JP 6092428 B2 JP6092428 B2 JP 6092428B2 JP 2015555246 A JP2015555246 A JP 2015555246A JP 2015555246 A JP2015555246 A JP 2015555246A JP 6092428 B2 JP6092428 B2 JP 6092428B2
Authority
JP
Japan
Prior art keywords
computing device
host computing
request
public key
computer
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
JP2015555246A
Other languages
English (en)
Other versions
JP2016509725A (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 JP2016509725A publication Critical patent/JP2016509725A/ja
Application granted granted Critical
Publication of JP6092428B2 publication Critical patent/JP6092428B2/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
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • 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
    • 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/2115Third party
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • 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/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Description

ますます多くのアプリケーション及びサービスがインターネットなどのネットワークを介して利用可能となるにつれて、ますます多くのコンテンツ、アプリケーション及び/またはサービスプロバイダがクラウドコンピューティングなどの技術を手掛けるようになっている。クラウドコンピューティングは、概略として、ウェブサービスなどのサービスを介して電子リソースにアクセスを与える手法であり、それらのサービスに対応するのに用いられるハードウェア及び/またはソフトウェアは、いずれの時間においてもサービスのニーズに応えるように動的にスケーラブルとなる。ユーザまたは顧客は、通常、クラウドを介してリソースを借り、リースし、あるいはそれへのアクセスに対して支払うので、必要なハードウェア及び/またはソフトウェアを購入及び維持する必要はない。
多くのクラウドコンピューティングプロバイダは、多数のユーザが基礎的なハードウェア及び/またはソフトウェアリソースを共有できるように仮想化を利用する。仮想化によって、コンピューティングサーバ、記憶装置または他のリソースを、各々が特定のユーザに所有される多数の隔離されたインスタンス(例えば、仮想マシン)に区分けすることができる。これらの仮想マシンは、しばしば、ホストコンピューティング装置上で稼働するハイパーバイザを用いてホスティングされる。この文脈において、ハイパーバイザ及びゲストオペレーティングシステムのカーネルは、セキュリティ実施機構として挙動する。例えば、ハイパーバイザは、通常、ホスト上の種々の仮想マシンを制御し、カーネルは仮想マシン上の種々の処理を制御する。セキュリティ上の理由から、ハイパーバイザ及びカーネルとも修正または改変し難いようになっている。しかし、場合によっては、ソフトウェアパッチの適用、セキュリティ監視の実行などといった理由のため、実行時にハイパーバイザ及びカーネルのコードを修正することが望ましいことがある。
図面を参照して、本開示による種々の実施形態を説明する。
図1は、種々の実施形態による、特権付き動作を実行するためのAPIリクエストに署名するのに非対称暗号法を用いる実施例を示す。 図2は、種々の実施形態による、特権付き動作をカーネルまたはハイパーバイザ上で実行するのに利用できるAPIの実施例を示す。 図3は、種々の実施形態による、サービスプロバイダのリソースセンター環境の実施例を示す。 図4は、種々の実施形態による、ハイパーバイザまたはカーネルにおいて特権付き動作を実行するのに使用できるAPIを提供するための例示の処理を示す。 図5は、種々の実施形態による、公開鍵を用いて暗号化されたリクエストを解読するためのホストコンピューティング装置の例示の処理を示す。 図6は、種々の実施形態によって利用できる例示のコンピューティング装置の一組の概略構成要素の論理構成を示す。 図7は、種々の実施形態による各形態を実施するための環境の実施例を示す。
以降の説明において、種々の実施形態が、添付の図面の図において、限定としてではなく例示される。本開示における種々の実施形態への参照は、必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも1つを意味する。特定の実施例及び他の詳細が述べられるが、これは説明の目的のみでなされることが理解されるべきである。当業者であれば、特許請求の範囲の内容の範疇及び精神を逸脱することなく、他の構成要素及び構成も使用され得ることを認識するはずである。
本開示の種々の実施形態によるシステム及び方法は、オペレーティングシステムカーネル及び/またはハイパーバイザのようなコンピューティングリソースにおいて特権付き動作を実行するとともにソフトウェアコードを修正するための従来の手法において経験された前述及び他の欠点の1以上を克服することができる。特に、種々の実施形態は、オペレーティングシステム(OS)カーネル及び/またはハイパーバイザ上で、特権付き動作が実行されるとともにコードが安全に付加または修正されることを可能とするために、非対称(または対称)暗号法などのセキュリティスキームを用いる一組の形式化されたインターフェイス(例えば、アプリケーション・プログラミング・インターフェイス(API))を提供する。これらのインターフェイスは、実行時に、セキュリティ監視、フォレンジックキャプチャ及び/またはパッチソフトウェアシステムを実行するように呼び出されることができる。
従来的には、カーネル及び/またはハイパーバイザは、種々の処理及び構成要素がどのアクションを実行することを許可されているのか(例えば、アプリケーションがどのメモリ部分にアクセスできるのか)を規定するセキュリティ実施機構として作用する。カーネルまたはハイパーバイザが自由に修正されることが許可されたとすると、潜在的に悪意のあるエージェントが容易に自身にアクセスを付与して事実上あらゆるアクションを実行できてしまうので、システム全体のセキュリティが低下することになる。結果として、カーネル及びハイパーバイザは通常、意図的に、改変し難くされている。しかし、場合によっては、システムが稼働している間にこれらの構成要素を修正することが望ましいことがある。例えば、ハイパーバイザまたはカーネルは、パッチされる必要があるバグまたはエラーを有している場合があり、システム全体を再起動することなくそれらをパッチできれば有利である。これは、あるサービスプロバイダによって提供される単一のホストサーバが様々な顧客についての多数の仮想マシンインスタンスをホスティングし、各仮想マシンが、独立したカーネルなどを有するゲストオペレーティングシステムを含み得るマルチテナント共有型リソース環境(例えば、クラウドコンピューティング環境)において特に有用である。種々の実施形態において、本開示を通じて記載されるインターフェイス(例えば、API)は、他の多数の特権付き動作だけでなく、カーネル/ハイパーバイザのコードに対するアップデート及び他の修正を可能とすることができる。
種々の実施形態によると、APIの組は、アプリケーション及び仮想マシンインスタンスをその顧客に代わってホスティングするマルチテナント共有型リソース環境のサービスプロバイダ(例えば、「クラウド」コンピューティングプロバイダ)によって実施されることができる。アプリケーション及び仮想マシンインスタンスが、サービスプロバイダによって所有及び操作される物理リソース(例えば、ホストコンピューティング装置及び他のネットワークリソース)上でホスティングされる。一実施形態によると、サービスプロバイダは、仮想マシンイメージを取得し、仮想マシンイメージに少なくともある程度基づいて、顧客に対する1以上の仮想マシンインスタンスをプロビジョンすることができる。一実施形態では、各仮想マシンインスタンスは、サービスプロバイダのコンピューティングリソース上にプロビジョンされた、それ自身のカーネル及びドライバを持つゲストオペレーティングシステムを含む。仮想マシンインスタンスは、プロビジョンされると、顧客の種々のアプリケーション及び/または他のサービスを実行する。
一実施形態によると、各仮想マシンインスタンスは、ホストコンピューティング装置上にプロビジョンされる。各ホストコンピューティング装置は、1以上の仮想マシンインスタンスをホスティングすることができる。少なくとも一つの実施形態において、ホストコンピューティング装置は、ハードウェア装置のドライバ及び装置の他の物理リソースにアクセスを与え、1以上の仮想マシンインスタンスがこれらのリソースにアクセスすることを可能とするハイパーバイザをさらに含む。
一実施形態によると、仮想マシンインスタンスがホストコンピューティング装置上でプロビジョンされると、仮想マシンのハイパーバイザ及び/若しくはカーネルのコードを更新し、またはハイパーバイザ若しくはカーネルに対応付けられた他の何らかの特権付き動作を実行するリクエストを提出するのに、ここに記載されるアプリケーション・プログラミング・インターフェイス(API)を使用することができる。許可のない者がこれらのインターフェイスを使用するのを防止するため、APIリクエストを署名するのに署名スキーム(例えば、非対称暗号法)が利用されてもよい。署名スキームは、秘密鍵及び対応する公開鍵を利用することができ、秘密鍵は、秘密鍵の所有者に対応付けられた署名を作成するのに使用されることができ、公開鍵は、リクエストを提出するエンティティが秘密鍵を所有していることを確かめるためにその署名を検証する(すなわち、リクエストを認証する)のに使用されることができる。一実施形態では、公開鍵はホストコンピューティング装置に提供され、秘密鍵はサービスプロバイダのネットワーク上の安全な場所に遠隔に格納される。カーネルまたはハイパーバイザのコードが修正される必要がある場合、特権付き動作がハイパーバイザまたはオペレーティングシステムカーネル上で実行されることを要求するリクエストがAPIを用いて開始されるようにしてもよい。この実施形態では、リクエストは秘密鍵を用いて署名される。ホストコンピューティング装置は、リクエストを受信すると、ホストコンピューティング装置に格納された公開鍵を用いてリクエストの署名を認証することを試みる。署名が正しく認証された場合、ホストコンピューティング装置は特権付き動作をハイパーバイザ及び/またはカーネル上で実行し、一方、公開鍵を用いてもリクエストの署名が正しく認証されない場合には、特権付き動作は失敗となる。
他の実施形態では、APIとともに暗号化スキームが利用されてもよい。この実施形態では、ホストコンピューティング装置は、起動時に非対称鍵のペアを生成することができる。鍵のペアは、公開鍵及び秘密鍵を含んでいればよく、公開鍵は、リクエストを暗号化するのに使用されることができ、秘密鍵は、公開鍵を用いて暗号化されたリクエストを解読するのに使用されることができる。この実施形態では、下記のペアを生成した後、ホストコンピューティング装置が(例えば、証明機関または他の当事者に対して)公開鍵を公開する一方で、秘密鍵はホストコンピューティング装置に残り、ホストコンピューティング装置を離れることはない。この実施形態では、ホストコンピューティング装置は、公開鍵で暗号化されたリクエストを受信すると、その内部に格納された秘密鍵を用いてリクエストを解読することができる。このようにして、リクエストが暗号化されると、何者も、秘密鍵を所有することなくリクエストにおける情報を解読することはできない。さらに、公開鍵がCAに公開されると、いずれの要求元も、認証機関(CA)によって発行された証明書を検査することによって、公開鍵が確かにホストコンピューティング装置に属することを確認することができる。
ある代替の実施形態では、APIに送信されたリクエストを安全化するのに対称暗号法が利用されてもよい。非対称暗号法とは逆に、対称暗号法は、リクエストに署名するのに使用される同じシークレットキーの所有権を署名者及びホストの双方が有していることを要することになる。双方当事者に保持される鍵は同一であってもよいし、または相互に鍵を導出する簡易な変換があってもよい。対称暗号法では、鍵は、ホストコンピューティング装置(例えば、カーネルまたはハイパーバイザ)とハイパーバイザ/カーネルのコードを修正することを望むいずれかの要求元との間の共有の秘密を表す。ある実施形態では、対称暗号法を可能とするために、各要求元が各ホストコンピューティング装置に対して異なる鍵を持つことになり、それはネットワーク上のシークレットキーの組合せの全てを管理する何らかのロジックを必要とすることになる。
図1に、種々の実施形態による、特権付き動作を実行するためのAPIリクエストに署名するのに非対称暗号法を用いる実施例100を示す。図示する実施形態では、ホストコンピューティング装置101は、ハイパーバイザ102として示す仮想化レイヤ及びドメイン0(Dom0)105を含むことができる。Dom0 105及びハイパーバイザ102は、ゲスト111などの複数のゲストに逐次作用する。ゲストは、各々はそれら自身のそれぞれのオペレーティングシステム(OS)、カーネル、デバイス、ドライバ、スケジューラなどを有する仮想マシンインスタンスであればよい。図示される実施形態では、Dom−0 105は、他のゲストドメインをホストコンピューティング装置101上で起動及び管理するのに使用される。図では仮想化レイヤが個別の構成要素として示されているが、仮想化レイヤの他の実施例が可能であり、開示の範囲内である。例えば、Dom0の機能または機能の部分集合は、ハイパーバイザ102によって影響されるものと同様に、単一の構成要素に統合され得る。
一実施形態では、ホストコンピューティング装置101は、ホストコンピューティング装置101のDom−0のカーネル106またはハイパーバイザ102のような仮想化レイヤ上で特権付き動作を実行するための署名及び/または暗号化されたリクエストを提出するのに用いることができる一組のAPI108を提供する。例示の動作は、ハイパーバイザ及び/またはカーネルの稼働メモリイメージを変更するための動作を含む。例えば、特権付き動作は、パッチをハイパーバイザ/カーネルに適用すること、メモリにおける位置を読み出すこと、ホストコンピューティング装置上で稼働する1以上の変数を修正すること、ホストコンピューティング装置上で稼働する仮想マシンインスタンスを起動/停止すること、仮想マシンを他のホストに移行することなどである。APIリクエストが署名及び/または暗号化されることができるので、カーネル/ハイパーバイザの外部の中間当事者は、リクエストを複製し及び/または読み出すことはできない。
一実施形態によると、API108のリクエストは、秘密鍵及び公開鍵を含む非対称鍵のペアを用いて署名されることができる。一実施形態では、APIコールに対するアーギュメントの少なくとも一部(または全部)が標準化及びシリアル化され、署名文字列となる。そして、この文字列が、ハッシュに基づくメッセージ認証コード(HMAC)または非対称暗号法のいずれかを介して署名され、API108に送信される。APIに対するパラメータが署名に含まれるため、リクエスト(例えば、リクエストを作成したコード)を取得した潜在的な攻撃者がリクエストを改変することはできない。
ある実施形態では、タイムウィンドウに基づく再生保護を与えるリクエストがタイムスタンプを含むようにしてもよく、制限された期間にのみリクエストが有効状態となる。ある実施形態では、リクエストは、シリアルナンバーまたはホストコンピューティング装置識別子(ID)のような、ホストコンピューティング装置101に具体的に対応付けられた固有値を含んでいてもよい。これらの値は秘密のものでなくてもよく、これらを含むことによって特定のホストコンピューティング装置108へのリクエストをバインディングすることができる。その場合、潜在的な攻撃者がリクエストを異なる装置に対して再生することが防止される。ある実施形態では、ホストコンピューティング装置に対するバインディングの強度を高めるために、リクエストが、ホストコンピューティング装置101におけるトラステッド・プラットフォーム・モジュール(TPM)(不図示)によって認証されるようにしてもよい。
図示する実施形態によると、APIリクエストに署名するのに用いられる秘密鍵104は、リクエストが宛てられるホストコンピューティング装置101には存在しない。その代りに、秘密鍵104が、サービスプロバイダのネットワーク110上の安全な位置103または他の信用ある場所に格納されるようにしてもよい。結果として、悪意のあるエージェントがホストコンピューティング装置101上に存在していたとしても、それらは秘密鍵104を用いてリクエストを偽造することはできない。
ホストコンピューティング装置101は、秘密鍵104を用いて署名されたリクエストの署名を認証するのに使用できる1以上の公開鍵(107、109)を含むことができる。一実施形態では、公開鍵107が、ホストコンピューティング装置101のカーネル106にコンパイルされるようにしてもよい。他の実施形態では、公開鍵109がハイパーバイザ102にコンパイルされるようにしてもよい。ある実施形態においては、カーネルが、ハイパーバイザに格納された公開鍵109とは異なる公開鍵107を格納するようにしてもよいし、他の実施形態においては、ハイパーバイザ及びカーネルの双方においてリクエストを認証するのに同じ公開鍵が用いられてもよい。さらに他の実施形態では、実際の公開鍵をホストコンピューティング装置101に格納するのではなく、その代わりにホストコンピューティング装置101が、特定の証明機関(CA)によって証明されたいずれかの公開鍵を信用するように構成されてもよい。これらの実施形態では、ホストコンピューティング装置は、要求元から、公開鍵を含む証明書付きのリクエストを受信することができる。ホストコンピューティング装置は、CAの証明書を信用するので、リクエストの一部として受信された公開鍵を信用することになる。公開鍵がホストコンピューティング装置に格納されるのか、証明書とともに提供されるのかにかかわらず、公開鍵は、秘密鍵104を用いて署名されたAPIリクエストの署名を認証するのに使用されることができる。例えば、ユーザ(例えば、顧客、サービスプロバイダの技術者、第三者など)は、カーネル106のコードの一部分にアップデートを適用したい場合、秘密鍵104の使用権を取得し、コードの適切な部分を修正するAPIリクエストに署名するのに秘密鍵104を用いることができる。リクエストを受信すると、カーネル106は、公開鍵を用いてリクエストの署名を認証することを試み、認証が成功した場合には必要な特権付き動作を実行することができる。
代替の実施形態(不図示)では、HMAC及び対称鍵が利用される場合、シークレットキーがカーネルまたはハイパーバイザにコンパイルされるようにしてもよい。その場合、シークレットキーは、各ビルドで不明瞭化及び変更され得るが、鍵はホストコンピューティング装置101上に実際に存在することになる。選択的に、リクエスト自体が、それを発行するコードに対して不透明となるように、リクエスト全体が、カーネルにコンパイルされた鍵に暗号化され得る。
ある実施形態では、リクエストとともに提供された特定の鍵に従って(または鍵を所有する当事者に従って)1以上の制限が課されるようにしてもよい。例えば、あるアクター(すなわち、ある秘密鍵)によって署名されたリクエストが、ゲスト仮想マシンをホスト上で起動/停止することまたはホストコンピューティング装置101を再起動することだけを許可されてもよい。他のアクター(例えば、サービスプロバイダのOSチーム)によって保持される鍵を用いて署名されたリクエストが、ハイパーバイザ102の稼働コードを修正することを許可されてもよい。一実施形態では、ホストコンピューティング装置101は、そこに記憶される複数の異なる公開鍵を有していてもよく、各公開鍵は、異なるエンティティ(例えば、ユーザ、チームなど)に対応付けられた秘密鍵に対応付けられる。どのエンティティの秘密鍵がリクエストの署名に使用されたかに応じて、要求された動作が許可または拒否されるようにしてもよい。代替の実施形態では、ホストコンピューティング装置101は、1つの秘密鍵に対応付けられた1つの公開鍵のみを格納することができるが、リクエストが、リクエストを提出するユーザのアイデンティティを含んでいてもよい。このアイデンティティに基づいて、ホストコンピューティング装置101は、要求された動作の実行について異なる制限を適用してもよい。例えば、ホストコンピューティング装置101が、あるユーザがゲストを起動/停止することを許可する一方で、他のユーザはハイパーバイザのコードを修正または更新することが許可されるようにしてもよい。任意数の(例えば、鍵毎の、または当事者毎の)そのような制限が可能であり、ここに記載される実施形態の範囲内のものとなる。
図2に、種々の実施形態による、特権付き動作を仮想化レイヤ(例えば、ハイパーバイザ202及びDom−0 205)上で実行するのに利用できるAPIの実施例200を示す。実施形態に示すように、ホストコンピューティング装置201(例えば、ホストコンピューティング装置201上のDom−0 205及び/またはハイパーバイザ202)は、起動時間に非対称鍵のペアからなる暗号アイデンティティを生成する。例えば、ホストコンピューティング装置101が起動しているとき、ハイパーバイザ202は、秘密鍵207及び公開鍵209を含む鍵のペアを生成する。同様に、Dom−0 205が読み込まれているときに、カーネル206は、秘密鍵213及び公開鍵214からなる鍵のペアを生成することができる。
種々の実施形態において、公開鍵(209、213)は、何らかの態様で公開されることができる。例えば、公開鍵は、証明機関210に提供されてもよい。代替的に、公開鍵は、要求元に直接提供されてもよい。この公開鍵が収集され、リクエストがこの鍵を用いて暗号化され得る。この実施形態では、ホストコンピューティング装置201によって生成された秘密鍵(207、214)は、ホストコンピューティング装置から離れることはなく、他のどこにも存在しない。要求元211がホスト201から公開鍵を信用のある形で入手できる場合、リクエストはホストコンピューティング装置201から離れることのない秘密鍵(207、213)によってしか解読され得ないため、公開鍵を用いて暗号化されたリクエストがそのホスト201(及びそのホストのみ)によってしか解読され得ないことを保証することができる。なお、図2は、Dom0 205及びハイパーバイザ202の双方がそれら自身のそれぞれの鍵のペアを発行する実施例を示すが、これは全実施形態に対する要件または限定ではない。ある実施形態では、ハイパーバイザのみが鍵のペアを発行する。他の実施形態では、Dom−0のカーネルのみが鍵のペアを発行する。さらに他の実施形態では、ハイパーバイザ及びDom−0のカーネルが鍵のペアを共有できる。
ある実施形態では、ホストコンピューティング装置201は、公開鍵209を証明機関(CA)210に提供することができる。CA210は、1以上のデジタル証明書(212、215)を適切な要求元(例えば、要求元211)に発行するエンティティとなることができる。デジタル証明書は、APIリクエストを暗号化するのに使用できる公開鍵を当事者が適切に所有していることを証明する。この実施形態では、CAの使用によって、秘密鍵が実際にホストコンピューティング装置201に対するものであることを、要求元がある程度の確度をもって信じることが可能となる。一実施形態では、CAは、サービスプロバイダに対するCAであり、サービスプロバイダのリソースセンター内で稼働する。リソースセンターは、以下に図3を参照してより詳細に説明する。他の実施形態では、CA210は、要求元211(例えば、証明書の所有者)及び証明書に依拠するホスト201の双方によって信用される信用ある第三者である。証明機関はこの分野では周知であり、多くの公開鍵インフラ(PKI)スキームにおいて使用されている。
この実施形態では、CA210が証明書212を要求元211に発行すると、要求元211は、証明書を用いて、カーネル206またはハイパーバイザ202のコンテキストにおいて特権付き動作を実行するためのAPIリクエストを作成することができる。そして、ハイパーバイザ202またはカーネル206は、特定の当事者に発行された特定のCAによって署名されたいずれかの証明書が有効であり、それに従って特権付き動作を実行できることを認証することができる。
種々の実施形態において、図2に示す技術が、図1に示す技術との関連において用いられてもよい。例えば、図2の要求元211は、要求元が特権付き動作を実行するリクエストに署名するのに使用できるそれ自身の秘密鍵を有していてもよい。この実施形態では、リクエストは、署名されて信頼性を確実にする(すなわち、ホストは、要求元がそのリクエストを生成したことを確度をもって知ることになる)とともに、暗号化されてプライバシーを確実にする(すなわち、リクエストに含まれる情報を解読し得る外部当事者はない)。
図3に、種々の実施形態による、サービスプロバイダのリソースセンター環境の実施例300を示す。図示する実施形態では、サービスプロバイダ(例えば、クラウドコンピューティングリソースのプロバイダ)は、サービスプロバイダの物理リソース(例えば、ホストサーバなど)を格納する1以上のリソースセンター323(例えば、データセンター、サーバファームなど)を保持していてもよい。これらの物理リソースは、インターネットなどのネットワーク302を介してユーザ301に提供され得る多数のゲスト(例えば、仮想マシンインスタンス)をホスティングするのに使用されることができる。例えば、ユーザが、サービスプロバイダの物理リソースを用いてアプリケーションを実行したい場合に、彼または彼女が、アプリケーションを展開及び実行するのに使用される仮想マシンをユーザにプロビジョンするようサービスプロバイダに要求するようにしてもよい。ユーザのアプリケーションに対する要求が増加すると、ユーザは、負荷のバランスを採るように、より多くの仮想マシンがプロビジョンされることを要求し、1以上の仮想プライベートネットワーク(VPN)などの作成を要求することができる。
図示する実施例では、サービスプロバイダのリソースセンター323は、ホストサーバ(306、307、308、309、310)の1以上のラック321及び322を含んでいてもよく、特定のラックの各ホストコンピューティング装置は、単一のトップ・オブ・ラック(TOR)スイッチ(304、305)に接続される。これらのTORスイッチは、ホストサーバがネットワークに接続されることを可能とする1以上の他のスイッチ(324、325)にさらに接続されもよい。この開示を通じて使用されるように、ネットワークは、相互に通信可能な装置の任意の有線または無線のネットワークであればよく、これらに限定されないが、インターネットまたは他の広域ネットワーク(WAN)、セルラネットワーク、ローカルエリアネットワーク(LAN)、ストレージエリアネットワーク(SAN)、イントラネット、エクストラネットなどを含む。リソースセンターは、データセンター、サーバファーム、コンテンツ配信ネットワーク(CDN)ポイント・オブ・プレゼンス(POP)などのような、リソースの物理的または論理的なグループ分けを含み得る。
一実施形態によると、各ホストコンピューティング装置は、顧客に代わって種々のアプリケーション及びサービスを実行するためにサービスプロバイダの顧客に対してプロビジョンされた1以上のゲスト(例えば、仮想マシンインスタンス(313、314、315、316、317、318、319))をホスティングするのに使用される仮想化レイヤ(例えば、Dom−0との組合せにおけるハイパーバイザ)を含むことができる。各ゲスト(例えば、仮想マシン)は、カーネル、ドライバ、処理管理などを含むそれ自身のオペレーティングシステム(OS)とともにプロビジョンされることができる。
顧客は、仮想マシンインスタンスを取得したいと望む場合、まず、彼らが使用したいゲスト(例えば、仮想マシン(VM))のタイプを示すリクエストをサービスプロバイダに提出すればよい。サービスプロバイダは、サービスプロバイダの物理リソース(例えば、ホストコンピューティング装置)にホスティングされるゲストをプロビジョンする処理を実行することができる。そして、ゲストは、顧客に代わって、サービスプロバイダのリソースを利用する種々のアプリケーション及びサービスを実行するのに用いることができる。
一実施形態によると、ゲストが起動されて稼働すると、仮想化レイヤ(例えば、ハイパーバイザまたはカーネル)のコードに修正が適用されることを要する場合があり、または他の何らかの特権付き動作が実行されることを要する場合がある。例えば、サービスプロバイダは、ホストコンピューティング装置上のVMをホスティングするハイパーバイザのコードにパッチまたはアップデートを適用することを望むことがある。あるいは、顧客(または他の何らかの第三者)が、カーネルまたはハイパーバイザのコードにアップデートを適用することを望むことがある。種々の実施形態では、この開示を通じて記載されるAPIによって、ユーザが非対称(または対称)暗号法を利用することによって安全な態様でコードを修正することが可能となる。
図4に、種々の実施形態による、ハイパーバイザまたはカーネルにおいて特権付き動作を実行するのに使用できるAPIを提供するための例示の処理400を示す。本図は機能的動作を特定のシーケンスで図示するが、処理は必ずしも図示される特定の順序または動作に限定されない。当業者であれば、当該または他の図に描かれた種々の動作が変更され、再構成され、並列に実行され、または種々の態様で適合され得ることを理解するはずである。またさらに、種々の実施形態の範囲から逸脱することなく、特定の動作または動作のシーケンスが処理に対して追加または省略され得ることも理解されるべきである。さらに、ここに含まれる処理の説明は、コード実行の実際のシーケンスを特定するのではなく、当業者に処理フローの概念を示すことを意図するものであり、それは、異なるフローまたはシーケンスとして実施され、実行のために最適化され、または種々の態様で修正され得る。
動作401において、1以上のアプリケーション・プログラミング・インターフェイス(API)が提供され、それは、署名されたリクエストをホストコンピューティング装置に提出するのに使用できる。ホストコンピューティング装置は、仮想化レイヤ(例えば、仮想マシンモニタ、またはハイパーバイザとの組合せにおいて動作するDom0)及び1以上のゲスト(例えば、オペレーティングシステムカーネルを有するゲストオペレーティングシステムを稼働させる仮想マシン)を含んでいればよい。
動作402において、秘密鍵及び対応する公開鍵を含む非対称鍵のペアが生成される。一実施形態では、非対称鍵のペアは、ホストコンピューティング装置上の仮想化レイヤによって生成される。他の実施形態では、非対称鍵のペアは、証明機関のような他のエンティティまたはサービスによって生成されてもよい。秘密鍵は、情報を暗号化するのに使用されることができ、公開鍵は、秘密鍵を用いて暗号化された情報を解読するのに使用されることができる。
動作403において、公開鍵がホストコンピューティング装置に格納される。例えば、公開鍵は、仮想化レイヤ、例えばDom0に、またはハイパーバイザにコンパイルされればよい。あるいは、鍵は、ホストコンピューティング装置のトラステッド・プラットフォーム・モジュール(TPM)に格納されてもよい。
動作404において、秘密鍵が、ホストコンピューティング装置の外部にある安全な場所に格納される。この実施形態では、秘密鍵は、そこに駐在するいずれの悪意あるエージェントも秘密鍵にアクセスすることができないように、ホストコンピューティング装置上には存在しない。
動作405において、ホストコンピューティング装置が、仮想化レイヤ上で特権付き動作を実行することを要求するリクエストをAPI上で受信する。一実施形態によると、受信されたリクエストは秘密鍵を用いて署名される。
動作406において、仮想化レイヤ(例えば、カーネルまたはハイパーバイザ)が、ホストコンピューティング装置に格納された公開鍵を用いてリクエストの署名を有効化することを試みる。リクエストの署名が有効化される場合、処理407に示すように、特権付き動作がハイパーバイザ/カーネル上で実行されることができる。公開鍵を用いても署名が正しく有効化されない場合、特権付き動作は失敗に終わる(すなわち、実行されない)。
図5に、種々の実施形態による、公開鍵を用いて暗号化されたリクエストを解読するためのホストコンピューティング装置の例示の処理500を示す。
動作501において、ホストコンピューティング装置が非対称鍵のペアを生成する。例えば、ホストコンピューティング装置における起動処理が、公開鍵及び対応する秘密鍵を生成することができる。動作502において、公開鍵が、信用あるソースに公開される。一実施形態では、公開鍵を用いてリクエストを暗号化する要求元に公開鍵が直接提供されてもよい。他の実施形態では、公開鍵が証明機関に提供されてもよく、証明機関が、カーネルまたはハイパーバイザ上で特権付き動作を実行することを望む認証された当事者に証明書を付与するようにしてもよい。この実施形態では、証明機関が、証明書に公開鍵を埋め込み、それ自身の秘密鍵を用いて証明書に署名するようにすればよい。したがって、証明書を受信した当事者は、公開鍵がホストコンピューティング装置からのものであることがCAによって実際に証明されることを確認することができる。
動作504において、ホストコンピューティング装置が、特権付き動作を実行するリクエストを受信する。そして、動作505に示すように、ホストコンピューティング装置は、ホストコンピューティング装置に格納された秘密鍵を用いてリクエストを解読することを試みる。秘密鍵を用いてリクエストが解読される場合、動作506に示すように、ホストコンピューティング装置は、特権付き動作をカーネル/ハイパーバイザ上で実行することができる。
本開示の種々の実施形態を、以下の条項を以て説明することができる。
1.仮想化されたコンピューティング環境においてソフトウェア修正を安全にするためにコンピュータで実施される方法であって、
実行可能な命令で構成される1以上のコンピュータシステムの制御下で、
ホストコンピューティング装置に提出されたリクエストを受信するように構成された少なくとも1つのアプリケーション・プログラミング・インターフェイス(API)を提供することを含み、前記ホストコンピューティング装置が、1以上のゲストをホスティングするように構成された仮想化レイヤを含むものであり、
さらに、
情報を解読するのに使用されることができる公開鍵を前記ホストコンピューティング装置に格納することを含み、前記情報を暗号化するのに使用されることができる対応の秘密鍵が前記ホストコンピューティング装置の外部の安全な場所に格納されており、
さらに、
前記ホストコンピューティング装置の前記仮想化レイヤにおいて特権付き動作を実行するためのリクエストであって前記安全な場所に格納された前記秘密鍵を用いて署名された前記リクエストを、前記APIを介して前記ホストコンピューティング装置によって受信すること、及び
前記公開鍵を用いて前記リクエストの署名が正しく有効化される場合に前記特権付き動作を前記仮想化レイヤによって実行し、前記公開鍵を用いても前記リクエストの署名が正しく有効化されない場合に前記特権付き動作が失敗に終わること
を含む、コンピュータで実施される方法。
2.条項1のコンピュータで実施される方法において、前記リクエストが、前記ホストコンピューティング装置に対応付けられた固有値をさらに含み、前記署名を有効化することが、前記リクエストに含まれる前記固有値が前記ホストコンピューティング装置に割り当てられた固有値に一致すると判定することをさらに含む、前記コンピュータで実施される方法。
3.条項1のコンピュータで実施される方法において、前記リクエストが、前記ホストコンピューティング装置の前記仮想化レイヤに対応付けられた暗号アイデンティティの一部である第2の公開鍵を用いて暗号化され、前記暗号アイデンティティが、前記第2の公開鍵及び該第2の公開鍵を用いて暗号化された前記リクエストを解読するのに使用される第2の秘密鍵を含む鍵のペアを含むものである、前記コンピュータで実施される方法。
4.条項1のコンピュータで実施される方法において、前記リクエストが、制限された期間のみ前記リクエストが有効とされるようにするタイムスタンプをさらに含む、前記コンピュータで実施される方法。
5.条項1のコンピュータで実施される方法において、前記公開鍵を前記ホストコンピューティング装置に格納することが、
証明機関によって発行された証明書を受信することをさらに含み、前記証明書が前記公開鍵を含むものである、前記コンピュータで実施される方法。
6.コンピュータで実施される方法であって、
実行可能な命令で構成される1以上のコンピュータシステムの制御下で、
ホストコンピューティング装置の起動動作中に、公開鍵及び秘密鍵を含む非対称鍵のペアを生成すること、
前記公開鍵を公開すること、
前記ホストコンピューティング装置の仮想化レイヤにおいて特権付き動作を実行するためのリクエストであって少なくとも前記公開鍵によって安全化される前記リクエストを受信すること、
前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証すること、及び
前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行すること
を含む、コンピュータで実施される方法。
7.条項6のコンピュータで実施される方法において、前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された第2の秘密鍵を用いて署名され、前記リクエストの署名が、前記ホストコンピューティング装置に利用可能な第2の公開鍵を用いて有効化される、前記コンピュータで実施される方法。
8.条項6のコンピュータで実施される方法であって、
前記ホストコンピューティング装置の前記仮想化レイヤにアクセス可能な揮発性メモリのみに前記秘密鍵を記憶することをさらに含む、前記コンピュータで実施される方法。
9.条項6のコンピュータで実施される方法において、前記公開鍵を公開することが、
前記公開鍵を証明書に埋め込むように構成された証明機関(CA)に証明書署名リクエストを送信することをさらに含む、前記コンピュータで実施される方法。
10.条項6のコンピュータで実施される方法において、前記ホストコンピューティング装置に送信された前記リクエストが前記公開鍵を用いて暗号化され、前記ホストコンピューティング装置が、該ホストコンピューティング装置に格納された前記秘密鍵を用いて前記リクエストを解読するよう動作可能である、前記コンピュータで実施される方法。
11.条項6のコンピュータで実施される方法において、前記特権付き動作が、前記ホストコンピューティング装置の前記仮想化レイヤの稼働メモリイメージを修正するリクエストである、前記コンピュータで実施される方法。
12.条項6のコンピュータで実施される方法において、前記特権付き動作が、
前記ホストコンピューティング装置上のハイパーバイザまたはカーネルの少なくとも一方にパッチを適用すること、
前記ホストコンピューティング装置にホスティングされるゲストのメモリにおける場所を読み出すこと、
前記ホストコンピューティング装置上で稼働する1以上の変数を修正すること、または
前記ホストコンピューティング装置上で稼働するゲストをシャットダウン若しくは再起動すること
のリクエストである、前記コンピュータで実施される方法。
13.条項6のコンピュータで実施される方法において、前記秘密鍵が、前記ホストコンピューティング装置のトラステッド・プラットフォーム・モジュール(TPM)に格納される、前記コンピュータで実施される方法。
14.条項6のコンピュータで実施される方法において、前記リクエストが、
前記リクエストが有効な状態である期間を制限するタイムスタンプ、または
前記ホストコンピューティング装置に対応付けられた固有値
の少なくとも一方をさらに含む、前記コンピュータで実施される方法。
15.条項6のコンピュータで実施される方法において、前記公開鍵が、前記公開鍵を所有する当事者に付与された一組の特権付き動作に対応付けられ、前記リクエストを認証することが、前記特権付き動作が前記組に含まれると判定することを含む、前記コンピュータで実施される方法。
16.コンピューティングシステムであって、
少なくとも1つのプロセッサ、及び
前記プロセッサによって実行されると、前記コンピューティングシステムに、
ホストコンピューティング装置の仮想化レイヤ上で特権付き動作を実行するためのリクエストであって少なくとも1つの鍵を用いて安全化される前記リクエストを、アプリケーション・プログラミング・インターフェイス(API)を介して受信させ、
前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証することを試行させ、
前記リクエストが正しく認証された場合に前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行させる命令
を含むメモリ
を備えたコンピューティングシステム。
17.条項16のコンピューティングシステムにおいて、前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された秘密鍵を用いて生成された署名によって安全化され、前記リクエストが、前記ホストコンピューティング装置に利用可能な公開鍵を用いて認証される、前記コンピューティングシステム。
18.条項17のコンピューティングシステムにおいて、前記ホストコンピューティング装置が、許可された当事者に発行され、前記ホストコンピューティング装置に信用される証明機関によって署名された証明書に前記公開鍵が含まれる場合に前記公開鍵を用いるように構成された、前記コンピューティングシステム。
19.条項16のコンピューティングシステムにおいて、前記ホストコンピューティング装置が、起動すると、
第2の公開鍵及び第2の秘密鍵を含む非対称鍵のペアを生成し、
前記第2の公開鍵を公開し、前記第2の秘密鍵を前記ホストコンピューティング装置の揮発性メモリに記憶する
ように構成された、前記コンピューティングシステム。
20.条項19のコンピューティングシステムにおいて、前記第2の公開鍵を公開することが、
証明書署名リクエストを証明機関に送信して前記第2の公開鍵を証明書にバインディングすることをさらに含む、前記コンピューティングシステム。
21.非一時的コンピュータ可読記憶媒体であって、
少なくとも1つの仮想化レイヤを含むホストコンピューティング装置にリクエストを提出するインターフェイスを提供し、
前記ホストコンピューティング装置の前記仮想化レイヤ上で特権付き動作を実行するためのリクエストであって少なくとも1つの鍵を用いて安全化された前記リクエストを、前記インターフェイスを用いて受信し、前記安全化されたリクエストが前記ホストコンピューティング装置の前記仮想化レイヤで認証されることができるものであり、
前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証することを試行し、
前記リクエストが正しく認証される場合に前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行する、
1以上のプロセッサによって実行可能な命令の1以上のシーケンスを記憶する非一時的コンピュータ可読記憶媒体。
22.条項21の非一時的コンピュータ可読記憶媒体において、前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された署名秘密鍵を用いて署名され、前記リクエストの署名が、前記ホストコンピューティング装置に利用可能な署名公開鍵を用いて有効化される、前記非一時的コンピュータ可読記憶媒体。
23.条項22の非一時的コンピュータ可読記憶媒体において、前記ホストコンピューティング装置が、許可された当事者に発行されて前記ホストコンピューティング装置に信用される証明機関によって署名された証明書に前記署名公開鍵が含まれる場合に前記署名公開鍵を用いるように構成された、前記非一時的コンピュータ可読記憶媒体。
24.条項21の非一時的コンピュータ可読記憶媒体において、前記1以上のプロセッサによって実行可能な前記命令が、
前記1以上のプロセッサに、
公開鍵及び秘密鍵を含む非対称鍵のペアを、前記ホストコンピューティング装置の起動手順中に生成させ、
前記公開鍵を公開させ、前記秘密鍵を前記ホストコンピューティング装置に格納させる
命令をさらに備える、前記非一時的コンピュータ可読記憶媒体。
25.条項24の非一時的コンピュータ可読記憶媒体において、前記公開鍵を公開することが、
証明書署名リクエストを証明機関に送信して前記公開鍵を証明書に添付することをさらに含む、前記非一時的コンピュータ可読記憶媒体。
図6に、例示のコンピューティング装置600の一組の概略構成要素の論理構成を示す。本実施例では、装置は、メモリ装置、すなわち要素604に記憶され得る命令を実行するためのプロセッサ602を含む。当業者には明らかなように、装置は、プロセッサ602による実行のためのプログラム命令のための第1のデータストレージ、画像またはデータのための別個のストレージ、情報を他の装置と共有するためのリムーバブルメモリなどといった多種のメモリ、データストレージまたは非一時的コンピュータ可読記憶媒体を含むことができる。ポータブルメディアプレーヤのような装置は、オーディオスピーカを介するなど、他の手段を介して情報を伝達し得るが、装置は、通常、タッチパネルまたは液晶ディスプレイ(LCD)のような何らかの形式のディスプレイ要素606を含む。上述のように、多数の実施形態における装置は、ユーザからの通常の入力を受けることができる少なくとも1つの入力要素608を含む。この通常の入力は、例えば、押しボタン、タッチパッド、タッチパネル、ホイール、ジョイスティック、キーボード、マウス、キーパッド、またはユーザが指令を装置に入力できるような他のデバイス若しくは要素を含み得る。一方、ある実施形態では、そのようなデバイスはボタンを全く含んでいなくてもよく、ユーザが装置に触れることを要することなく装置を制御できるように、視聴コマンドの組合せを介してのみ制御されるようにしてもよい。ある実施形態では、図5のコンピューティング装置600は、Wi−Fi(登録商標)、Bluetooth(登録商標)、RF、有線または無線通信システムを介して通信するための1以上のネットワークインターフェイス要素608を含むことができる。多数の実施形態における装置は、インターネットのようなネットワークと通信することができ、そのような他の装置と通信するようにしてもよい。
上述のように、記載される実施形態による種々の環境において異なる手法が実施されてもよい。例えば、図7に、種々の実施形態による形態を実施するための環境700の一例を示す。記載から理解できるように、ウェブベースの環境が説明の目的で用いられるが、種々の実施形態を実施するのに異なる環境が適宜用いられてもよい。システムは、電子クライアント装置702を含み、それは、リクエスト、メッセージまたは情報を適宜のネットワーク704を介して送受信して情報を装置のユーザに戻すように動作可能なあらゆる適宜の装置を含むことができる。そのようなクライアント装置の例として、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージング装置、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子書籍リーダなどがある。ネットワークは、イントラネット、インターネット、セルラネットワーク、ローカルエリアネットワーク若しくは他のそのようなネットワークまたはそれらの組合せを含むあらゆる適宜のネットワークを含み得る。このようなシステムに使用される構成要素は、選択されるネットワーク及び/または環境のタイプに少なくともある程度依存していてもよい。そのようなネットワークを介して通信するためのプロトコル及び構成要素は周知であり、ここでは詳細には説明しない。ネットワークを介した通信は、有線または無線接続及びその組合せを介して可能となる。この実施例では、当業者には明らかなように、他のネットワークについては同様の目的を果たす代替の装置が使用され得るが、リクエストを受信してそれに応じてコンテンツを提供するウェブサーバ706が環境に含まれるので、ネットワークはインターネットを含む。
例示の実施形態は、少なくとも1つのアプリケーションサーバ708及びデータストア710を含む。なお、いくつかのアプリケーションサーバ、レイヤまたは他の要素、処理または構成要素があってもよく、これらはつなげられ、あるいは構成されていてもよく、データを適切なデータストアから取得するといったようなタスクを実行するよう相互作用し得ることが理解されるべきである。ここで使用される用語「データストア」とは、データを記憶、利用及び取得することができるあらゆる装置または装置の組合せをいい、それらは、あらゆる標準的な、分散された、または集合化された環境において、あらゆる組合せ及び個数のデータサーバ、データベース、データ記憶装置及びデータ記憶媒体を含み得る。アプリケーションサーバは、クライアント装置についての1以上のアプリケーションの形態を必要に応じて実行するデータストアと統合されるとともにアプリケーションに対するデータアクセス及びビジネスロジックの大部分を扱うためのあらゆる適切なハードウェア及びソフトウェアを含み得る。アプリケーションサーバは、データストアとの協働においてアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィクス、オーディオ及び/またはビデオのようなコンテンツを生成することができ、これらは、HTML、XML、またはこの実施例における他の適切な構造化言語の形態でウェブサーバによってユーザに提供されることができる。クライアント装置702とアプリケーションサーバ708との間の全てのリクエスト及び応答の取扱いは、コンテンツの配信と同様に、ウェブサーバ706によって取り扱われることができる。なお、ここに説明する構造化コードは、いずれかの箇所で説明したあらゆる適切な装置またはホストコンピューティング装置で実行されることができるので、ウェブ及びアプリケーションサーバは、要件ではなく単なる例示の構成要素であることが理解されるべきである。
データストア710は、特定の形態に関係するデータを記憶するための、いくつかの個別のデータテーブル、データベースまたは他のデータ記憶機構及び媒体を含み得る。例えば、図示するデータストアは、製造側に対してコンテンツを提供するのに使用され得る製造データ712及びユーザ情報716を記憶するための機構を含む。データストアはまた、ログまたはセッションデータ714を記憶するための機構を含むように示されている。なお、ページ画像情報及びアクセス権情報のように、データストアに記憶される必要がある他の多くの形態があり、これらは適宜上述の機構のいずれかに、またはデータストア710における追加の機構に記憶され得ることが理解されるべきである。データストア710は、それに対応付けられたロジックを介して、アプリケーションサーバ708から命令を受信し、それに応じてデータを取得、更新または処理するよう動作可能である。一実施例では、ユーザは、特定タイプのアイテムについての検索リクエストを提出し得る。この場合、データストアはユーザ情報にアクセスしてユーザのアイデンティティを認証し、カタログ詳細情報にアクセスしてそのタイプのアイテムについての情報を取得することができる。そして、その情報は、ユーザがユーザ装置702のブラウザを介して見ることができるウェブページ上の結果リストなどにおいて、ユーザに戻されればよい。対象となる特定アイテムについての情報は、ブラウザの専用ページまたはウィンドウにおいて見ることができる。
各サーバは、通常は、そのサーバの一般的な管理及び動作についての実行可能なプログラム命令を提供するオペレーティングシステムを含み、通常は、サーバのプロセッサによって実行されたときに、サーバが意図する機能を実行することを可能とする命令を記憶するコンピュータ可読記憶媒体を含む。サーバのオペレーティングシステムのための適切な実施例及びサーバの一般的な機能は知られており、または市販されており、特に本開示に照らして当業者には容易に実施される。
一実施形態における環境は、1以上のコンピュータネットワークまたは直接の接続を用いて、通信リンクを介して相互接続されるいくつかのコンピュータシステム及び構成要素を利用する分散コンピュータ環境である。しかし、当業者であれば、そのようなシステムが、図7に示すものよりも少ない、または多い構成要素を有するシステムでも同様に動作し得ることを理解するであろう。したがって、図7におけるシステム700の図示は、本質的に例示的なものであって本開示の範囲を限定しないものとして捉えられるべきである。
ここに説明及び提案する種々の実施形態は、広範な動作環境で実施されることができ、場合によっては、多数のアプリケーションのいずれかを動作させるのに使用できる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)に常駐し得る。同様に、コンピュータ、サーバまたは他のネットワーク装置に帰属する機能を実行するために必要なファイルは、ローカルに、及び/または遠隔に適宜記憶される。コンピュータ化された装置をシステムが含む場合、そのような装置の各々は、バスを介して電気的に結合され得るハードウェア要素、例えば少なくとも中央処理装置(CPU)を含む要素、少なくとも1つの入力装置(例えば、マウス、キーボード、コントローラ、タッチパネルまたはキーパッド)及び少なくとも1つの出力装置(例えば、表示装置、プリンタまたはスピーカ)を含むことができる。そのようなシステムは、ディスクドライブ、光学記憶装置、及びランダムアクセスメモリ(RAM)または読出し専用メモリ(ROM)のような固体記憶装置、リムーバブル媒体装置、メモリカード、フラッシュカードなどの1以上の記憶装置を含むこともできる。
そのような装置は、コンピュータ可読記憶媒体リーダ、通信装置(例えば、モデム、ネットワークカード(有線または無線)、赤外通信装置など)及び上述した動作するメモリを含んでいてもよい。コンピュータ可読記憶媒体リーダは、遠隔、ローカル、固定及び/またはリムーバブル記憶装置を代表するコンピュータ可読記憶媒体、同様に一時的に及び/またはより永久的にコンピュータ可読情報を含み、記憶し、送信し、及び取得するための記憶媒体に接続され、またはそれを受けるように構成されていればよい。システム及び種々の装置は、通常は、クライアントアプリケーションまたはウェブブラウザのようなオペレーティングシステム及びアプリケーションプログラムを含む多数のソフトウェアアプリケーション、モジュール、サービスまたは少なくとも1つの動作するメモリ装置内に位置する他の要素も含む。なお、代替の実施形態が、上述したものからの多数の変形例を有し得ることが理解されるべきである。例えば、カスタマイズされたハードウェアが使用されてもよいし、及び/または特定の要素がハードウェア、(アプレットのような可搬のソフトウェアを含む)ソフトウェア若しくはその両方で実施されてもよい。また、ネットワーク入力/出力装置などの他のコンピューティング装置への接続が採用されてもよい。
コードまたはコードの一部分を含む記憶媒体及びコンピュータ可読媒体は、この分野で知られまたは使用される任意の適切な媒体を含むことができ、その媒体は、RAM、ROM、EEPROM(登録商標)、フラッシュメモリ若しくは他のメモリ技術、CD−ROM、デジタル多目的ディスク(DVD)若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶装置、または所望の情報を記憶するのに使用でき、システム装置によってアクセスできる他のあらゆる媒体を含む、コンピュータ可読命令、データ構造体、プログラムモジュールまたは他のデータのような情報の記憶及び/または伝送のためのあらゆる方法または技術において実施される、これらに限定されないが、揮発性の及び不揮発性の、取外し可能な及び取外し可能でない記憶媒体及び通信媒体を含む。ここで与えられる開示及び技術に基づいて、当業者は、種々の実施形態を実施する他の態様及び/または方法を理解するはずである。
したがって、明細書及び図面は、限定的な意味ではなく、例示的なものとしてみなされるべきである。一方、特許請求の範囲に記載される発明の、より広い精神及び範囲から逸脱することなく、種々の変形及び変更がなされ得ることは明らかである。
以下に、本願出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
コンピュータで実施される方法であって、
実行可能な命令で構成される1以上のコンピュータシステムの制御下で
ホストコンピューティング装置の起動動作中に、公開鍵及び秘密鍵を含む非対称鍵のペアを生成すること、
前記公開鍵を公開すること、
前記ホストコンピューティング装置の仮想化レイヤにおいて特権付き動作を実行するためのリクエストであって少なくとも前記公開鍵によって安全化される前記リクエストを受信すること、
前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証すること、及び
前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行すること
を含む、コンピュータで実施される方法。
[C2]
[C1]に記載のコンピュータで実施される方法において、前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された第2の秘密鍵を用いて署名され、前記リクエストの署名が、前記ホストコンピューティング装置に利用可能な第2の公開鍵を用いて有効化される、前記コンピュータで実施される方法。
[C3]
[C1]に記載のコンピュータで実施される方法であって、
前記ホストコンピューティング装置の前記仮想化レイヤにアクセス可能な揮発性メモリのみに前記秘密鍵を記憶することをさらに含む、前記コンピュータで実施される方法。
[C4]
[C1]に記載のコンピュータで実施される方法において、前記公開鍵を公開することが、
前記公開鍵を証明書に埋め込むように構成された証明機関(CA)に証明書署名リクエストを送信することをさらに含む、前記コンピュータで実施される方法。
[C5]
[C1]に記載のコンピュータで実施される方法において、前記ホストコンピューティング装置に送信された前記リクエストが前記公開鍵を用いて暗号化され、前記ホストコンピューティング装置が、該ホストコンピューティング装置に格納された前記秘密鍵を用いて前記リクエストを解読するよう動作可能である、前記コンピュータで実施される方法。
[C6]
[C1]に記載のコンピュータで実施される方法において、前記特権付き動作が、前記ホストコンピューティング装置の前記仮想化レイヤの稼働メモリイメージを修正するリクエストである、前記コンピュータで実施される方法。
[C7]
C1]に記載のコンピュータで実施される方法において、前記特権付き動作が、
前記ホストコンピューティング装置上のハイパーバイザまたはカーネルの少なくとも一方にパッチを適用すること、
前記ホストコンピューティング装置にホスティングされるゲストのメモリにおける場所を読み出すこと、
前記ホストコンピューティング装置上で稼働する1以上の変数を修正すること、または
前記ホストコンピューティング装置上で稼働するゲストをシャットダウン若しくは再起動すること
のリクエストである、前記コンピュータで実施される方法。
[C8]
C1]に記載のコンピュータで実施される方法において、前記秘密鍵が、前記ホストコンピューティング装置のトラステッド・プラットフォーム・モジュール(TPM)に格納される、前記コンピュータで実施される方法。
[C9]
[C1]に記載のコンピュータで実施される方法において、前記リクエストが、
前記リクエストが有効な状態である期間を制限するタイムスタンプ、または
前記ホストコンピューティング装置に対応付けられた固有値
の少なくとも一方をさらに含む、前記コンピュータで実施される方法。
[C10]
[C1]に記載のコンピュータで実施される方法において、前記公開鍵が、前記公開鍵を所有する当事者に付与された一組の特権付き動作に対応付けられ、前記リクエストを認証することが、前記特権付き動作が前記組に含まれると判定することを含む、前記コンピュータで実施される方法。
[C11]
コンピューティングシステムであって、
少なくとも1つのプロセッサ、及び
前記プロセッサによって実行されると、前記コンピューティングシステムに、
ホストコンピューティング装置の仮想化レイヤ上で特権付き動作を実行するためのリクエストであって少なくとも1つの鍵を用いて安全化される前記リクエストを、アプリケーション・プログラミング・インターフェイス(API)を介して受信させ、
前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証することを試行させ、
前記リクエストが正しく認証された場合に前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行させる命令
を含むメモリ
を備えたコンピューティングシステム。
[C12]
[C11]に記載のコンピューティングシステムにおいて、前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された秘密鍵を用いて生成された署名によって安全化され、前記リクエストが、前記ホストコンピューティング装置に利用可能な公開鍵を用いて認証される、前記コンピューティングシステム。
[C13]
[C12]に記載のコンピューティングシステムにおいて、前記ホストコンピューティング装置が、許可された当事者に発行され、前記ホストコンピューティング装置に信用される証明機関によって署名された証明書に前記公開鍵が含まれる場合に前記公開鍵を用いるように構成された、前記コンピューティングシステム。
[C14]
[C11]に記載のコンピューティングシステムにおいて、前記ホストコンピューティング装置が、起動すると、
第2の公開鍵及び第2の秘密鍵を含む非対称鍵のペアを生成し、
前記第2の公開鍵を公開し、前記第2の秘密鍵を前記ホストコンピューティング装置の揮発性メモリに記憶する
ように構成された、前記コンピューティングシステム。
[C15]
[C14]に記載のコンピューティングシステムにおいて、前記第2の公開鍵を公開することが、
証明書署名リクエストを証明機関に送信して前記第2の公開鍵を証明書にバインディングすることをさらに含む、前記コンピューティングシステム。

Claims (15)

  1. コンピュータで実施される方法であって、
    ストコンピューティング装置の起動動作中に、前記ホストコンピューティング装置の仮想化レイヤにおいて、公開鍵及び秘密鍵を含む非対称鍵のペアを生成すること、
    前記公開鍵を公開すること、
    前記ホストコンピューティング装置に、前記ホストコンピューティング装置の前記仮想化レイヤにおいて特権付き動作を実行するためのリクエストを提出するために1以上のアプリケーション・プログラミング・インターフェイス(API)を与えること、
    前記APIを用いて、仮想マシンインスタンスにおけるゲストから、前記公開鍵と前記秘密鍵の内の一方によって暗号化され前記リクエストを受信すること、
    前記ホストコンピューティング装置に格納された、前記公開鍵と前記秘密鍵の内の他方を用いて前記リクエストを解読することによって、前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証すること、及び
    前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行すること
    を含
    前記リクエストを暗号化するために用いられた、前記ゲストの前記公開鍵と前記秘密鍵の前記一方に従って、前記実行に1つ以上の制限が課される、
    コンピュータで実施される方法。
  2. 請求項1に記載のコンピュータで実施される方法において、
    前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された第2の秘密鍵を用いて署名され、
    前記リクエストの署名が、前記ホストコンピューティング装置に利用可能な第2の公開鍵を用いて有効化される、前記コンピュータで実施される方法。
  3. 請求項1に記載のコンピュータで実施される方法であって、
    前記ホストコンピューティング装置の前記仮想化レイヤにアクセス可能な揮発性メモリのみに前記秘密鍵を記憶することをさらに含む、前記コンピュータで実施される方法。
  4. 請求項1に記載のコンピュータで実施される方法において、前記公開鍵を公開することが、
    前記公開鍵を証明書に埋め込むように構成された証明機関(CA)に証明書署名リクエストを送信することをさらに含む、前記コンピュータで実施される方法。
  5. 請求項1に記載のコンピュータで実施される方法において、
    前記ホストコンピューティング装置に送信された前記リクエストが前記公開鍵を用いて暗号化され、
    前記ホストコンピューティング装置が、該ホストコンピューティング装置に格納された前記秘密鍵を用いて前記リクエストを解読するよう動作可能である、前記コンピュータで実施される方法。
  6. 請求項1に記載のコンピュータで実施される方法において、前記特権付き動作が、前記ホストコンピューティング装置の前記仮想化レイヤの稼働メモリイメージを修正するリクエストである、前記コンピュータで実施される方法。
  7. 請求項1に記載のコンピュータで実施される方法において、前記特権付き動作が、
    前記ホストコンピューティング装置上のハイパーバイザまたはカーネルの少なくとも一方にパッチを適用すること、
    前記ホストコンピューティング装置にホスティングされるゲストのメモリにおける場所を読み出すこと、
    前記ホストコンピューティング装置上で稼働する1以上の変数を修正すること、または
    前記ホストコンピューティング装置上で稼働するゲストをシャットダウン若しくは再起動すること
    のリクエストである、前記コンピュータで実施される方法。
  8. 請求項1に記載のコンピュータで実施される方法において、前記リクエストが、前記ホストコンピューティング装置に対するバインディングの強度を高めるために、前記ホストコンピューティング装置のトラステッド・プラットフォーム・モジュール(TPM)において認証される、前記コンピュータで実施される方法。
  9. 請求項1に記載のコンピュータで実施される方法において、前記リクエストが、
    前記リクエストが有効な状態である期間を制限するタイムスタンプ、または
    潜在的な攻撃者が、前記リクエストを異なるコンピューティング装置に対して再生することから防止されるように前記ホストコンピューティング装置に前記リクエストをバインディングするために、特定の前記ホストコンピューティング装置に対応付けられた固有値
    の少なくとも一方をさらに含む、前記コンピュータで実施される方法。
  10. 請求項1に記載のコンピュータで実施される方法において、
    異なる前記公開または秘密鍵が、リクエストされた前記動作に課せられた異なる制限に対応付けられ、
    前記1つ以上の制限が、どのゲストが前記リクエストを発行しているか、または、どのゲストの公開または秘密鍵が前記リクエストを暗号化するために使用されたかに従って課せられる、前記コンピュータで実施される方法。
  11. コンピューティングシステムであって、
    少なくとも1つのプロセッサ、及び
    前記プロセッサによって実行されると、前記コンピューティングシステムに、
    ホストコンピューティング装置の起動動作中に、前記ホストコンピューティング装置の仮想化レイヤにおいて、公開鍵及び秘密鍵を含む非対称鍵のペアを生成させ、
    前記公開鍵を公開させ、
    前記ホストコンピューティング装置に、前記ホストコンピューティング装置の前記仮想化レイヤにおいて特権付き動作を実行するためのリクエストを提出するために1以上のアプリケーション・プログラミング・インターフェイス(API)を与えさせ、
    前記APIを介して、仮想マシンインスタンスにおけるゲストから、前記公開鍵と前記秘密の内の一方を用いて暗号化され前記リクエストを受信させ、
    前記ホストコンピューティング装置に格納された、前記公開鍵と前記秘密鍵の内の他方を用いて前記リクエストを解読することによって、前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証することを試行させ、
    前記リクエストが正しく認証された場合に前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行させる
    命令を含むメモリ
    を備え
    前記リクエストを暗号化するために用いられた、前記ゲストの前記公開鍵と前記秘密鍵の前記一方に従って、前記実行に1つ以上の制限が課される、
    コンピューティングシステム。
  12. 請求項11に記載のコンピューティングシステムにおいて、
    前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された秘密鍵を用いて生成された署名によって暗号化され、
    前記リクエストが、前記ホストコンピューティング装置に利用可能な前記公開鍵を用いて認証される、前記コンピューティングシステム。
  13. 請求項12に記載のコンピューティングシステムにおいて、前記ホストコンピューティング装置が、許可された当事者に発行され、前記ホストコンピューティング装置に信用される証明機関によって署名された証明書に前記公開鍵が含まれる場合に前記公開鍵を用いるように構成された、前記コンピューティングシステム。
  14. 請求項11に記載のコンピューティングシステムにおいて、前記ホストコンピューティング装置が起動すると、
    第2の公開鍵及び第2の秘密鍵を含む非対称鍵のペアを生成し、
    前記第2の公開鍵を公開し、前記第2の秘密鍵を前記ホストコンピューティング装置の揮発性メモリに記憶する
    ように構成された、前記コンピューティングシステム。
  15. 請求項14に記載のコンピューティングシステムにおいて、前記第2の公開鍵を公開することが、
    証明書署名リクエストを証明機関に送信して前記第2の公開鍵を証明書にバインディングすることをさらに含む、前記コンピューティングシステム。
JP2015555246A 2013-01-22 2014-01-22 特権付き動作を呼び出すためのセキュアインターフェイス Active JP6092428B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/746,737 US10063380B2 (en) 2013-01-22 2013-01-22 Secure interface for invoking privileged operations
US13/746,737 2013-01-22
PCT/US2014/012604 WO2014116743A1 (en) 2013-01-22 2014-01-22 Secure interface for invoking privileged operations

Publications (2)

Publication Number Publication Date
JP2016509725A JP2016509725A (ja) 2016-03-31
JP6092428B2 true JP6092428B2 (ja) 2017-03-08

Family

ID=51208708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015555246A Active JP6092428B2 (ja) 2013-01-22 2014-01-22 特権付き動作を呼び出すためのセキュアインターフェイス

Country Status (9)

Country Link
US (2) US10063380B2 (ja)
EP (1) EP2948854B1 (ja)
JP (1) JP6092428B2 (ja)
KR (1) KR101735982B1 (ja)
CN (1) CN104969201B (ja)
AU (1) AU2014209470B2 (ja)
CA (1) CA2898906C (ja)
SG (1) SG11201505651WA (ja)
WO (1) WO2014116743A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11228449B2 (en) 2013-01-22 2022-01-18 Amazon Technologies, Inc. Secure interface for invoking privileged operations

Families Citing this family (26)

* 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
US9729517B2 (en) 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration
US9503268B2 (en) 2013-01-22 2016-11-22 Amazon Technologies, Inc. Securing results of privileged computing operations
US8978122B1 (en) * 2013-03-29 2015-03-10 Emc Corporation Secure cross-tenancy federation in software-as-a-service system
GB2515536A (en) * 2013-06-27 2014-12-31 Ibm Processing a guest event in a hypervisor-controlled system
GB2518367B (en) * 2013-09-18 2020-07-22 Ibm Authorized remote access to an operating system hosted by a virtual machine
US9563419B2 (en) * 2014-02-20 2017-02-07 International Business Machines Corporation Managing deployment of application pattern based applications on runtime platforms
CN112422291B (zh) * 2014-08-12 2022-01-28 艾高特有限责任公司 基于零知识环境的社交网络引擎
GB2532415A (en) 2014-11-11 2016-05-25 Ibm Processing a guest event in a hypervisor-controlled system
US9787478B2 (en) 2015-06-10 2017-10-10 Qualcomm Incorporated Service provider certificate management
US10110566B2 (en) * 2015-07-21 2018-10-23 Baffle, Inc. Systems and processes for executing private programs on untrusted computers
CN105262592A (zh) * 2015-09-18 2016-01-20 浪潮(北京)电子信息产业有限公司 一种数据交互的方法及api接口
US9794292B2 (en) * 2015-10-26 2017-10-17 Amazon Technologies, Inc. Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment
CN106991298B (zh) * 2016-01-21 2021-02-02 斑马智行网络(香港)有限公司 应用程序对接口的访问方法、授权请求方法及装置
US10044701B2 (en) * 2016-05-24 2018-08-07 Vantiv, Llc Technologies for token-based authentication and authorization of distributed computing resources
US10318311B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Memory allocation techniques at partially-offloaded virtualization managers
WO2018027059A1 (en) 2016-08-03 2018-02-08 KryptCo, Inc. Systems and methods for delegated cryptography
WO2019005103A1 (en) * 2017-06-30 2019-01-03 Nokia Solutions And Networks Oy SECURE CONNECTION CONTEXT SHARING THROUGH A TRUSTED AUTHORITY
US11093624B2 (en) 2017-09-12 2021-08-17 Sophos Limited Providing process data to a data recorder
KR102515891B1 (ko) * 2018-06-11 2023-03-29 삼성전자주식회사 전자장치, 그 제어방법 및 기록매체
US10853494B2 (en) * 2018-07-23 2020-12-01 Vmware, Inc. Binding a trusted virtual machine to a trusted host computer
CN112292678A (zh) * 2019-01-04 2021-01-29 百度时代网络技术(北京)有限公司 用于验证将要由主机系统的数据处理加速器执行的内核对象的方法与系统
US10574466B1 (en) * 2019-07-11 2020-02-25 Clover Network, Inc. Authenticated external biometric reader and verification device
US11336635B2 (en) * 2019-11-18 2022-05-17 Ciot Systems and methods for authenticating device through IoT cloud using hardware security module
CN111125597B (zh) * 2019-12-18 2023-10-27 百度在线网络技术(北京)有限公司 网页加载方法、浏览器、电子设备及存储介质
KR20210112923A (ko) 2020-03-06 2021-09-15 삼성전자주식회사 시스템 온 칩 및 이의 동작 방법

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0692428A (ja) 1992-09-11 1994-04-05 Sony Corp 搬送方法
US5410602A (en) 1993-09-27 1995-04-25 Motorola, Inc. Method for key management of point-to-point communications
KR0172003B1 (ko) 1995-03-28 1999-03-30 김광호 컴퓨터 시스템 및 그 제어방법
US5638541A (en) 1995-08-25 1997-06-10 Intel Corporation System and method for managing power on desktop systems
US7020880B2 (en) 1997-01-08 2006-03-28 International Business Machines Corporation Modular application collaborator for providing inter-operability between applications and monitoring errors to trigger execution of required compensating actions to undo interrupted transaction
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
US6826715B1 (en) 1999-10-28 2004-11-30 Hewlett-Packard Development Company, L.P. Automatic capture and comparison of computer configuration data
US6826690B1 (en) 1999-11-08 2004-11-30 International Business Machines Corporation Using device certificates for automated authentication of communicating devices
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
JP2003051838A (ja) 2001-08-07 2003-02-21 Sony Corp アドレス管理システム、インタフェースid設定処理装置、通信端末装置、およびアドレス管理方法、並びにコンピュータ・プログラム
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
US7418596B1 (en) * 2002-03-26 2008-08-26 Cellco Partnership Secure, efficient, and mutually authenticated cryptographic key distribution
EP1520217A2 (en) 2002-06-06 2005-04-06 Dick C. Hardt Distributed hierarchical identity management
US20040064691A1 (en) * 2002-09-26 2004-04-01 International Business Machines Corporation Method and system for processing certificate revocation lists in an authorization system
JP2004254027A (ja) 2003-02-19 2004-09-09 Toshiba Corp サーバ装置、鍵管理装置、暗号通信方法及びプログラム
US20050044363A1 (en) * 2003-08-21 2005-02-24 Zimmer Vincent J. Trusted remote firmware interface
JP2005122561A (ja) 2003-10-17 2005-05-12 Canon Inc アプリケーションプロテクトシステム
US8295484B2 (en) * 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
EP2194476B1 (en) 2005-03-22 2014-12-03 Hewlett-Packard Development Company, L.P. Method and apparatus for creating a record of a software-verification attestation
US7636442B2 (en) 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US8364638B2 (en) 2005-09-15 2013-01-29 Ca, Inc. Automated filer technique for use in virtualized appliances and applications
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US7797545B2 (en) * 2005-09-29 2010-09-14 Research In Motion Limited System and method for registering entities for code signing services
JP2007122303A (ja) 2005-10-27 2007-05-17 Hitachi Ltd 論理区画式計算機システム
JP5054317B2 (ja) 2006-02-08 2012-10-24 株式会社アイ・オー・データ機器 暗号鍵設定方法、ネットワークシステム、管理装置、情報処理端末、および暗号鍵設定プログラム
US9166782B2 (en) 2006-04-25 2015-10-20 Stephen Laurence Boren Dynamic distributed key system and method for identity management, authentication servers, data security and preventing man-in-the-middle attacks
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
US20080134321A1 (en) * 2006-12-05 2008-06-05 Priya Rajagopal Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US7913086B2 (en) * 2007-06-20 2011-03-22 Nokia Corporation Method for remote message attestation in a communication system
US9112681B2 (en) 2007-06-22 2015-08-18 Fujitsu Limited Method and apparatus for secure information transfer to support migration
US8453143B2 (en) 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
KR100953092B1 (ko) 2007-11-06 2010-04-19 한국전자통신연구원 Sso서비스 방법 및 시스템
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
US8259948B2 (en) 2007-12-29 2012-09-04 Intel Corporation Virtual TPM key migration using hardware keys
US7882070B2 (en) 2007-12-31 2011-02-01 Sap Ag System and method for UDDI data migration using standard UDDI v3 API
US8353015B2 (en) * 2008-01-09 2013-01-08 Microsoft Corporation Trusted internet identity
JP5281074B2 (ja) 2008-02-25 2013-09-04 パナソニック株式会社 情報セキュリティ装置および情報セキュリティシステム
WO2009151445A1 (en) * 2008-06-10 2009-12-17 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
US9075957B2 (en) 2008-08-04 2015-07-07 Sandisk Il Ltd. Backing up digital content that is stored in a secured storage device
US9715401B2 (en) 2008-09-15 2017-07-25 International Business Machines Corporation Securing live migration of a virtual machine from a secure virtualized computing environment, over an unsecured network, to a different virtualized computing environment
US9559842B2 (en) * 2008-09-30 2017-01-31 Hewlett Packard Enterprise Development Lp Trusted key management for virtualized platforms
US20100082960A1 (en) * 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
US8336079B2 (en) 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US8768843B2 (en) * 2009-01-15 2014-07-01 Igt EGM authentication mechanism using multiple key pairs at the BIOS with PKI
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
US8392709B1 (en) * 2009-04-28 2013-03-05 Adobe Systems Incorporated System and method for a single request—single response protocol with mutual replay attack protection
US9768965B2 (en) * 2009-05-28 2017-09-19 Adobe Systems Incorporated Methods and apparatus for validating a digital signature
US8438256B2 (en) 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices
US20120117624A1 (en) 2009-07-03 2012-05-10 Telefonaktiebolaget Lm Ericsson (Publ) Method and Apparatus for use in an IP Multimedia Subsystem
US9565207B1 (en) * 2009-09-04 2017-02-07 Amazon Technologies, Inc. Firmware updates from an external channel
US8478725B2 (en) 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
KR20110035573A (ko) 2009-09-30 2011-04-06 주식회사 케이티 클라우드 컴퓨팅 환경에서 안전한 가상 머신 설치를 제공하는 방법
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)
JPWO2011114476A1 (ja) * 2010-03-17 2013-06-27 富士通株式会社 マルチコアプロセッサシステム、通知プログラム、および通知方法
JP2011211255A (ja) 2010-03-26 2011-10-20 Kyocera Corp データ転送システム、通信機器及びデータ転送方法
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
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
US8832447B2 (en) * 2011-08-10 2014-09-09 Sony Corporation System and method for using digital signatures to assign permissions
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
US8694786B2 (en) * 2011-10-04 2014-04-08 International Business Machines Corporation Virtual machine images encryption using trusted computing group sealing
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8788843B2 (en) * 2011-10-28 2014-07-22 LogMeln, Inc. Storing user data in a service provider cloud without exposing user-specific secrets to the service provider
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
US8909939B1 (en) * 2012-04-04 2014-12-09 Google Inc. Distribution of cryptographic host keys in a cloud computing environment
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
US8924720B2 (en) * 2012-09-27 2014-12-30 Intel Corporation Method and system to securely migrate and provision virtual machine images and content
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9503268B2 (en) 2013-01-22 2016-11-22 Amazon Technologies, Inc. Securing results of privileged computing operations
US9729517B2 (en) 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11228449B2 (en) 2013-01-22 2022-01-18 Amazon Technologies, Inc. Secure interface for invoking privileged operations

Also Published As

Publication number Publication date
CN104969201A (zh) 2015-10-07
US20190068379A1 (en) 2019-02-28
CN104969201B (zh) 2019-06-28
CA2898906C (en) 2017-10-31
US11228449B2 (en) 2022-01-18
AU2014209470A1 (en) 2015-08-27
KR101735982B1 (ko) 2017-05-15
SG11201505651WA (en) 2015-08-28
US20140208096A1 (en) 2014-07-24
CA2898906A1 (en) 2014-07-31
KR20150110652A (ko) 2015-10-02
US10063380B2 (en) 2018-08-28
EP2948854B1 (en) 2017-11-29
JP2016509725A (ja) 2016-03-31
EP2948854A1 (en) 2015-12-02
AU2014209470B2 (en) 2017-04-06
EP2948854A4 (en) 2016-09-28
WO2014116743A1 (en) 2014-07-31

Similar Documents

Publication Publication Date Title
JP6092428B2 (ja) 特権付き動作を呼び出すためのセキュアインターフェイス
US10621366B2 (en) Chained security systems
JP6462103B2 (ja) 特権的コンピューティングオペレーションの結果の保護
JP6165883B2 (ja) 安全な仮想マシン移行
US20160070929A1 (en) Trusted computing host

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161202

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: 20170110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170208

R150 Certificate of patent or registration of utility model

Ref document number: 6092428

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250