(57)【要約】  仮想化レイヤに送信されたリクエストを許可及び認証するために、非対称（または対称）暗号法などのセキュリティスキームを用いる一組の形式化されたインターフェイス（例えば、アプリケーション・プログラミング・インターフェイス（ＡＰＩ））が記載される。インターフェイスは、実行時に、セキュリティ監視、フォレンジックキャプチャ及び／またはパッチソフトウェアシステムを実行するように呼び出されることができる。上記に加えて、他の形態が特許請求の範囲、詳細な説明及び図面に記載される。【選択図】  図１
2016509725.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
実行可能な命令で構成される１以上のコンピュータシステムの制御下で、
ホストコンピューティング装置の起動動作中に、公開鍵及び秘密鍵を含む非対称鍵のペアを生成すること、
前記公開鍵を公開すること、
前記ホストコンピューティング装置の仮想化レイヤにおいて特権付き動作を実行するためのリクエストであって少なくとも前記公開鍵によって安全化される前記リクエストを受信すること、
前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証すること、及び
前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行すること
を含む、コンピュータで実施される方法。
【請求項２】
請求項１に記載のコンピュータで実施される方法において、前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された第２の秘密鍵を用いて署名され、前記リクエストの署名が、前記ホストコンピューティング装置に利用可能な第２の公開鍵を用いて有効化される、前記コンピュータで実施される方法。
【請求項３】
請求項１に記載のコンピュータで実施される方法であって、
前記ホストコンピューティング装置の前記仮想化レイヤにアクセス可能な揮発性メモリのみに前記秘密鍵を記憶することをさらに含む、前記コンピュータで実施される方法。
【請求項４】
請求項１に記載のコンピュータで実施される方法において、前記公開鍵を公開することが、
前記公開鍵を証明書に埋め込むように構成された証明機関（ＣＡ）に証明書署名リクエストを送信することをさらに含む、前記コンピュータで実施される方法。
【請求項５】
請求項１に記載のコンピュータで実施される方法において、前記ホストコンピューティング装置に送信された前記リクエストが前記公開鍵を用いて暗号化され、前記ホストコンピューティング装置が、該ホストコンピューティング装置に格納された前記秘密鍵を用いて前記リクエストを解読するよう動作可能である、前記コンピュータで実施される方法。
【請求項６】
請求項１に記載のコンピュータで実施される方法において、前記特権付き動作が、前記ホストコンピューティング装置の前記仮想化レイヤの稼働メモリイメージを修正するリクエストである、前記コンピュータで実施される方法。
【請求項７】
請求項１に記載のコンピュータで実施される方法において、前記特権付き動作が、
前記ホストコンピューティング装置上のハイパーバイザまたはカーネルの少なくとも一方にパッチを適用すること、
前記ホストコンピューティング装置にホスティングされるゲストのメモリにおける場所を読み出すこと、
前記ホストコンピューティング装置上で稼働する１以上の変数を修正すること、または
前記ホストコンピューティング装置上で稼働するゲストをシャットダウン若しくは再起動すること
のリクエストである、前記コンピュータで実施される方法。
【請求項８】
請求項１に記載のコンピュータで実施される方法において、前記秘密鍵が、前記ホストコンピューティング装置のトラステッド・プラットフォーム・モジュール（ＴＰＭ）に格納される、前記コンピュータで実施される方法。
【請求項９】
請求項１に記載のコンピュータで実施される方法において、前記リクエストが、
前記リクエストが有効な状態である期間を制限するタイムスタンプ、または
前記ホストコンピューティング装置に対応付けられた固有値
の少なくとも一方をさらに含む、前記コンピュータで実施される方法。
【請求項１０】
請求項１に記載のコンピュータで実施される方法において、前記公開鍵が、前記公開鍵を所有する当事者に付与された一組の特権付き動作に対応付けられ、前記リクエストを認証することが、前記特権付き動作が前記組に含まれると判定することを含む、前記コンピュータで実施される方法。
【請求項１１】
コンピューティングシステムであって、
少なくとも１つのプロセッサ、及び
前記プロセッサによって実行されると、前記コンピューティングシステムに、
ホストコンピューティング装置の仮想化レイヤ上で特権付き動作を実行するためのリクエストであって少なくとも１つの鍵を用いて安全化される前記リクエストを、アプリケーション・プログラミング・インターフェイス（ＡＰＩ）を介して受信させ、
前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証することを試行させ、
前記リクエストが正しく認証された場合に前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行させる命令
を含むメモリ
を備えたコンピューティングシステム。
【請求項１２】
請求項１１に記載のコンピューティングシステムにおいて、前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された秘密鍵を用いて生成された署名によって安全化され、前記リクエストが、前記ホストコンピューティング装置に利用可能な公開鍵を用いて認証される、前記コンピューティングシステム。
【請求項１３】
請求項１２に記載のコンピューティングシステムにおいて、前記ホストコンピューティング装置が、許可された当事者に発行され、前記ホストコンピューティング装置に信用される証明機関によって署名された証明書に前記公開鍵が含まれる場合に前記公開鍵を用いるように構成された、前記コンピューティングシステム。
【請求項１４】
請求項１１に記載のコンピューティングシステムにおいて、前記ホストコンピューティング装置が、起動すると、
第２の公開鍵及び第２の秘密鍵を含む非対称鍵のペアを生成し、
前記第２の公開鍵を公開し、前記第２の秘密鍵を前記ホストコンピューティング装置の揮発性メモリに記憶する
ように構成された、前記コンピューティングシステム。
【請求項１５】
請求項１４に記載のコンピューティングシステムにおいて、前記第２の公開鍵を公開することが、
証明書署名リクエストを証明機関に送信して前記第２の公開鍵を証明書にバインディングすることをさらに含む、前記コンピューティングシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
ますます多くのアプリケーション及びサービスがインターネットなどのネットワークを介して利用可能となるにつれて、ますます多くのコンテンツ、アプリケーション及び／またはサービスプロバイダがクラウドコンピューティングなどの技術を手掛けるようになっている。クラウドコンピューティングは、概略として、ウェブサービスなどのサービスを介して電子リソースにアクセスを与える手法であり、それらのサービスに対応するのに用いられるハードウェア及び／またはソフトウェアは、いずれの時間においてもサービスのニーズに応えるように動的にスケーラブルとなる。ユーザまたは顧客は、通常、クラウドを介してリソースを借り、リースし、あるいはそれへのアクセスに対して支払うので、必要なハードウェア及び／またはソフトウェアを購入及び維持する必要はない。
【０００２】
多くのクラウドコンピューティングプロバイダは、多数のユーザが基礎的なハードウェア及び／またはソフトウェアリソースを共有できるように仮想化を利用する。仮想化によって、コンピューティングサーバ、記憶装置または他のリソースを、各々が特定のユーザに所有される多数の隔離されたインスタンス（例えば、仮想マシン）に区分けすることができる。これらの仮想マシンは、しばしば、ホストコンピューティング装置上で稼働するハイパーバイザを用いてホスティングされる。この文脈において、ハイパーバイザ及びゲストオペレーティングシステムのカーネルは、セキュリティ実施機構として挙動する。例えば、ハイパーバイザは、通常、ホスト上の種々の仮想マシンを制御し、カーネルは仮想マシン上の種々の処理を制御する。セキュリティ上の理由から、ハイパーバイザ及びカーネルとも修正または改変し難いようになっている。しかし、場合によっては、ソフトウェアパッチの適用、セキュリティ監視の実行などといった理由のため、実行時にハイパーバイザ及びカーネルのコードを修正することが望ましいことがある。
【０００３】
図面を参照して、本開示による種々の実施形態を説明する。
【図面の簡単な説明】
【０００４】
【図１】図１は、種々の実施形態による、特権付き動作を実行するためのＡＰＩリクエストに署名するのに非対称暗号法を用いる実施例を示す。
【図２】図２は、種々の実施形態による、特権付き動作をカーネルまたはハイパーバイザ上で実行するのに利用できるＡＰＩの実施例を示す。
【図３】図３は、種々の実施形態による、サービスプロバイダのリソースセンター環境の実施例を示す。
【図４】図４は、種々の実施形態による、ハイパーバイザまたはカーネルにおいて特権付き動作を実行するのに使用できるＡＰＩを提供するための例示の処理を示す。
【図５】図５は、種々の実施形態による、公開鍵を用いて暗号化されたリクエストを解読するためのホストコンピューティング装置の例示の処理を示す。
【図６】図６は、種々の実施形態によって利用できる例示のコンピューティング装置の一組の概略構成要素の論理構成を示す。
【図７】図７は、種々の実施形態による各形態を実施するための環境の実施例を示す。
【発明を実施するための形態】
【０００５】
以降の説明において、種々の実施形態が、添付の図面の図において、限定としてではなく例示される。本開示における種々の実施形態への参照は、必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも１つを意味する。特定の実施例及び他の詳細が述べられるが、これは説明の目的のみでなされることが理解されるべきである。当業者であれば、特許請求の範囲の内容の範疇及び精神を逸脱することなく、他の構成要素及び構成も使用され得ることを認識するはずである。
【０００６】
本開示の種々の実施形態によるシステム及び方法は、オペレーティングシステムカーネル及び／またはハイパーバイザのようなコンピューティングリソースにおいて特権付き動作を実行するとともにソフトウェアコードを修正するための従来の手法において経験された前述及び他の欠点の１以上を克服することができる。特に、種々の実施形態は、オペレーティングシステム（ＯＳ）カーネル及び／またはハイパーバイザ上で、特権付き動作が実行されるとともにコードが安全に付加または修正されることを可能とするために、非対称（または対称）暗号法などのセキュリティスキームを用いる一組の形式化されたインターフェイス（例えば、アプリケーション・プログラミング・インターフェイス（ＡＰＩ））を提供する。これらのインターフェイスは、実行時に、セキュリティ監視、フォレンジックキャプチャ及び／またはパッチソフトウェアシステムを実行するように呼び出されることができる。
【０００７】
従来的には、カーネル及び／またはハイパーバイザは、種々の処理及び構成要素がどのアクションを実行することを許可されているのか（例えば、アプリケーションがどのメモリ部分にアクセスできるのか）を規定するセキュリティ実施機構として作用する。カーネルまたはハイパーバイザが自由に修正されることが許可されたとすると、潜在的に悪意のあるエージェントが容易に自身にアクセスを付与して事実上あらゆるアクションを実行できてしまうので、システム全体のセキュリティが低下することになる。結果として、カーネル及びハイパーバイザは通常、意図的に、改変し難くされている。しかし、場合によっては、システムが稼働している間にこれらの構成要素を修正することが望ましいことがある。例えば、ハイパーバイザまたはカーネルは、パッチされる必要があるバグまたはエラーを有している場合があり、システム全体を再起動することなくそれらをパッチできれば有利である。これは、あるサービスプロバイダによって提供される単一のホストサーバが様々な顧客についての多数の仮想マシンインスタンスをホスティングし、各仮想マシンが、独立したカーネルなどを有するゲストオペレーティングシステムを含み得るマルチテナント共有型リソース環境（例えば、クラウドコンピューティング環境）において特に有用である。種々の実施形態において、本開示を通じて記載されるインターフェイス（例えば、ＡＰＩ）は、他の多数の特権付き動作だけでなく、カーネル／ハイパーバイザのコードに対するアップデート及び他の修正を可能とすることができる。
【０００８】
種々の実施形態によると、ＡＰＩの組は、アプリケーション及び仮想マシンインスタンスをその顧客に代わってホスティングするマルチテナント共有型リソース環境のサービスプロバイダ（例えば、「クラウド」コンピューティングプロバイダ）によって実施されることができる。アプリケーション及び仮想マシンインスタンスが、サービスプロバイダによって所有及び操作される物理リソース（例えば、ホストコンピューティング装置及び他のネットワークリソース）上でホスティングされる。一実施形態によると、サービスプロバイダは、仮想マシンイメージを取得し、仮想マシンイメージに少なくともある程度基づいて、顧客に対する１以上の仮想マシンインスタンスをプロビジョンすることができる。一実施形態では、各仮想マシンインスタンスは、サービスプロバイダのコンピューティングリソース上にプロビジョンされた、それ自身のカーネル及びドライバを持つゲストオペレーティングシステムを含む。仮想マシンインスタンスは、プロビジョンされると、顧客の種々のアプリケーション及び／または他のサービスを実行する。
【０００９】
一実施形態によると、各仮想マシンインスタンスは、ホストコンピューティング装置上にプロビジョンされる。各ホストコンピューティング装置は、１以上の仮想マシンインスタンスをホスティングすることができる。少なくとも一つの実施形態において、ホストコンピューティング装置は、ハードウェア装置のドライバ及び装置の他の物理リソースにアクセスを与え、１以上の仮想マシンインスタンスがこれらのリソースにアクセスすることを可能とするハイパーバイザをさらに含む。
【００１０】
一実施形態によると、仮想マシンインスタンスがホストコンピューティング装置上でプロビジョンされると、仮想マシンのハイパーバイザ及び／若しくはカーネルのコードを更新し、またはハイパーバイザ若しくはカーネルに対応付けられた他の何らかの特権付き動作を実行するリクエストを提出するのに、ここに記載されるアプリケーション・プログラミング・インターフェイス（ＡＰＩ）を使用することができる。許可のない者がこれらのインターフェイスを使用するのを防止するため、ＡＰＩリクエストを署名するのに署名スキーム（例えば、非対称暗号法）が利用されてもよい。署名スキームは、秘密鍵及び対応する公開鍵を利用することができ、秘密鍵は、秘密鍵の所有者に対応付けられた署名を作成するのに使用されることができ、公開鍵は、リクエストを提出するエンティティが秘密鍵を所有していることを確かめるためにその署名を検証する（すなわち、リクエストを認証する）のに使用されることができる。一実施形態では、公開鍵はホストコンピューティング装置に提供され、秘密鍵はサービスプロバイダのネットワーク上の安全な場所に遠隔に格納される。カーネルまたはハイパーバイザのコードが修正される必要がある場合、特権付き動作がハイパーバイザまたはオペレーティングシステムカーネル上で実行されることを要求するリクエストがＡＰＩを用いて開始されるようにしてもよい。この実施形態では、リクエストは秘密鍵を用いて署名される。ホストコンピューティング装置は、リクエストを受信すると、ホストコンピューティング装置に格納された公開鍵を用いてリクエストの署名を認証することを試みる。署名が正しく認証された場合、ホストコンピューティング装置は特権付き動作をハイパーバイザ及び／またはカーネル上で実行し、一方、公開鍵を用いてもリクエストの署名が正しく認証されない場合には、特権付き動作は失敗となる。
【００１１】
他の実施形態では、ＡＰＩとともに暗号化スキームが利用されてもよい。この実施形態では、ホストコンピューティング装置は、起動時に非対称鍵のペアを生成することができる。鍵のペアは、公開鍵及び秘密鍵を含んでいればよく、公開鍵は、リクエストを暗号化するのに使用されることができ、秘密鍵は、公開鍵を用いて暗号化されたリクエストを解読するのに使用されることができる。この実施形態では、下記のペアを生成した後、ホストコンピューティング装置が（例えば、証明機関または他の当事者に対して）公開鍵を公開する一方で、秘密鍵はホストコンピューティング装置に残り、ホストコンピューティング装置を離れることはない。この実施形態では、ホストコンピューティング装置は、公開鍵で暗号化されたリクエストを受信すると、その内部に格納された秘密鍵を用いてリクエストを解読することができる。このようにして、リクエストが暗号化されると、何者も、秘密鍵を所有することなくリクエストにおける情報を解読することはできない。さらに、公開鍵がＣＡに公開されると、いずれの要求元も、認証機関（ＣＡ）によって発行された証明書を検査することによって、公開鍵が確かにホストコンピューティング装置に属することを確認することができる。
【００１２】
ある代替の実施形態では、ＡＰＩに送信されたリクエストを安全化するのに対称暗号法が利用されてもよい。非対称暗号法とは逆に、対称暗号法は、リクエストに署名するのに使用される同じシークレットキーの所有権を署名者及びホストの双方が有していることを要することになる。双方当事者に保持される鍵は同一であってもよいし、または相互に鍵を導出する簡易な変換があってもよい。対称暗号法では、鍵は、ホストコンピューティング装置（例えば、カーネルまたはハイパーバイザ）とハイパーバイザ／カーネルのコードを修正することを望むいずれかの要求元との間の共有の秘密を表す。ある実施形態では、対称暗号法を可能とするために、各要求元が各ホストコンピューティング装置に対して異なる鍵を持つことになり、それはネットワーク上のシークレットキーの組合せの全てを管理する何らかのロジックを必要とすることになる。
【００１３】
図１に、種々の実施形態による、特権付き動作を実行するためのＡＰＩリクエストに署名するのに非対称暗号法を用いる実施例１００を示す。図示する実施形態では、ホストコンピューティング装置１０１は、ハイパーバイザ１０２として示す仮想化レイヤ及びドメイン０（Ｄｏｍ０）１０５を含むことができる。Ｄｏｍ０  １０５及びハイパーバイザ１０２は、ゲスト１１１などの複数のゲストに逐次作用する。ゲストは、各々はそれら自身のそれぞれのオペレーティングシステム（ＯＳ）、カーネル、デバイス、ドライバ、スケジューラなどを有する仮想マシンインスタンスであればよい。図示される実施形態では、Ｄｏｍ−０  １０５は、他のゲストドメインをホストコンピューティング装置１０１上で起動及び管理するのに使用される。図では仮想化レイヤが個別の構成要素として示されているが、仮想化レイヤの他の実施例が可能であり、開示の範囲内である。例えば、Ｄｏｍ０の機能または機能の部分集合は、ハイパーバイザ１０２によって影響されるものと同様に、単一の構成要素に統合され得る。
【００１４】
一実施形態では、ホストコンピューティング装置１０１は、ホストコンピューティング装置１０１のＤｏｍ−０のカーネル１０６またはハイパーバイザ１０２のような仮想化レイヤ上で特権付き動作を実行するための署名及び／または暗号化されたリクエストを提出するのに用いることができる一組のＡＰＩ１０８を提供する。例示の動作は、ハイパーバイザ及び／またはカーネルの稼働メモリイメージを変更するための動作を含む。例えば、特権付き動作は、パッチをハイパーバイザ／カーネルに適用すること、メモリにおける位置を読み出すこと、ホストコンピューティング装置上で稼働する１以上の変数を修正すること、ホストコンピューティング装置上で稼働する仮想マシンインスタンスを起動／停止すること、仮想マシンを他のホストに移行することなどである。ＡＰＩリクエストが署名及び／または暗号化されることができるので、カーネル／ハイパーバイザの外部の中間当事者は、リクエストを複製し及び／または読み出すことはできない。
【００１５】
一実施形態によると、ＡＰＩ１０８のリクエストは、秘密鍵及び公開鍵を含む非対称鍵のペアを用いて署名されることができる。一実施形態では、ＡＰＩコールに対するアーギュメントの少なくとも一部（または全部）が標準化及びシリアル化され、署名文字列となる。そして、この文字列が、ハッシュに基づくメッセージ認証コード（ＨＭＡＣ）または非対称暗号法のいずれかを介して署名され、ＡＰＩ１０８に送信される。ＡＰＩに対するパラメータが署名に含まれるため、リクエスト（例えば、リクエストを作成したコード）を取得した潜在的な攻撃者がリクエストを改変することはできない。
【００１６】
ある実施形態では、タイムウィンドウに基づく再生保護を与えるリクエストがタイムスタンプを含むようにしてもよく、制限された期間にのみリクエストが有効状態となる。ある実施形態では、リクエストは、シリアルナンバーまたはホストコンピューティング装置識別子（ＩＤ）のような、ホストコンピューティング装置１０１に具体的に対応付けられた固有値を含んでいてもよい。これらの値は秘密のものでなくてもよく、これらを含むことによって特定のホストコンピューティング装置１０８へのリクエストをバインディングすることができる。その場合、潜在的な攻撃者がリクエストを異なる装置に対して再生することが防止される。ある実施形態では、ホストコンピューティング装置に対するバインディングの強度を高めるために、リクエストが、ホストコンピューティング装置１０１におけるトラステッド・プラットフォーム・モジュール（ＴＰＭ）（不図示）によって認証されるようにしてもよい。
【００１７】
図示する実施形態によると、ＡＰＩリクエストに署名するのに用いられる秘密鍵１０４は、リクエストが宛てられるホストコンピューティング装置１０１には存在しない。その代りに、秘密鍵１０４が、サービスプロバイダのネットワーク１１０上の安全な位置１０３または他の信用ある場所に格納されるようにしてもよい。結果として、悪意のあるエージェントがホストコンピューティング装置１０１上に存在していたとしても、それらは秘密鍵１０４を用いてリクエストを偽造することはできない。
【００１８】
ホストコンピューティング装置１０１は、秘密鍵１０４を用いて署名されたリクエストの署名を認証するのに使用できる１以上の公開鍵（１０７、１０９）を含むことができる。一実施形態では、公開鍵１０７が、ホストコンピューティング装置１０１のカーネル１０６にコンパイルされるようにしてもよい。他の実施形態では、公開鍵１０９がハイパーバイザ１０２にコンパイルされるようにしてもよい。ある実施形態においては、カーネルが、ハイパーバイザに格納された公開鍵１０９とは異なる公開鍵１０７を格納するようにしてもよいし、他の実施形態においては、ハイパーバイザ及びカーネルの双方においてリクエストを認証するのに同じ公開鍵が用いられてもよい。さらに他の実施形態では、実際の公開鍵をホストコンピューティング装置１０１に格納するのではなく、その代わりにホストコンピューティング装置１０１が、特定の証明機関（ＣＡ）によって証明されたいずれかの公開鍵を信用するように構成されてもよい。これらの実施形態では、ホストコンピューティング装置は、要求元から、公開鍵を含む証明書付きのリクエストを受信することができる。ホストコンピューティング装置は、ＣＡの証明書を信用するので、リクエストの一部として受信された公開鍵を信用することになる。公開鍵がホストコンピューティング装置に格納されるのか、証明書とともに提供されるのかにかかわらず、公開鍵は、秘密鍵１０４を用いて署名されたＡＰＩリクエストの署名を認証するのに使用されることができる。例えば、ユーザ（例えば、顧客、サービスプロバイダの技術者、第三者など）は、カーネル１０６のコードの一部分にアップデートを適用したい場合、秘密鍵１０４の使用権を取得し、コードの適切な部分を修正するＡＰＩリクエストに署名するのに秘密鍵１０４を用いることができる。リクエストを受信すると、カーネル１０６は、公開鍵を用いてリクエストの署名を認証することを試み、認証が成功した場合には必要な特権付き動作を実行することができる。
【００１９】
代替の実施形態（不図示）では、ＨＭＡＣ及び対称鍵が利用される場合、シークレットキーがカーネルまたはハイパーバイザにコンパイルされるようにしてもよい。その場合、シークレットキーは、各ビルドで不明瞭化及び変更され得るが、鍵はホストコンピューティング装置１０１上に実際に存在することになる。選択的に、リクエスト自体が、それを発行するコードに対して不透明となるように、リクエスト全体が、カーネルにコンパイルされた鍵に暗号化され得る。
【００２０】
ある実施形態では、リクエストとともに提供された特定の鍵に従って（または鍵を所有する当事者に従って）１以上の制限が課されるようにしてもよい。例えば、あるアクター（すなわち、ある秘密鍵）によって署名されたリクエストが、ゲスト仮想マシンをホスト上で起動／停止することまたはホストコンピューティング装置１０１を再起動することだけを許可されてもよい。他のアクター（例えば、サービスプロバイダのＯＳチーム）によって保持される鍵を用いて署名されたリクエストが、ハイパーバイザ１０２の稼働コードを修正することを許可されてもよい。一実施形態では、ホストコンピューティング装置１０１は、そこに記憶される複数の異なる公開鍵を有していてもよく、各公開鍵は、異なるエンティティ（例えば、ユーザ、チームなど）に対応付けられた秘密鍵に対応付けられる。どのエンティティの秘密鍵がリクエストの署名に使用されたかに応じて、要求された動作が許可または拒否されるようにしてもよい。代替の実施形態では、ホストコンピューティング装置１０１は、１つの秘密鍵に対応付けられた１つの公開鍵のみを格納することができるが、リクエストが、リクエストを提出するユーザのアイデンティティを含んでいてもよい。このアイデンティティに基づいて、ホストコンピューティング装置１０１は、要求された動作の実行について異なる制限を適用してもよい。例えば、ホストコンピューティング装置１０１が、あるユーザがゲストを起動／停止することを許可する一方で、他のユーザはハイパーバイザのコードを修正または更新することが許可されるようにしてもよい。任意数の（例えば、鍵毎の、または当事者毎の）そのような制限が可能であり、ここに記載される実施形態の範囲内のものとなる。
【００２１】
図２に、種々の実施形態による、特権付き動作を仮想化レイヤ（例えば、ハイパーバイザ２０２及びＤｏｍ−０  ２０５）上で実行するのに利用できるＡＰＩの実施例２００を示す。実施形態に示すように、ホストコンピューティング装置２０１（例えば、ホストコンピューティング装置２０１上のＤｏｍ−０  ２０５及び／またはハイパーバイザ２０２）は、起動時間に非対称鍵のペアからなる暗号アイデンティティを生成する。例えば、ホストコンピューティング装置１０１が起動しているとき、ハイパーバイザ２０２は、秘密鍵２０７及び公開鍵２０９を含む鍵のペアを生成する。同様に、Ｄｏｍ−０  ２０５が読み込まれているときに、カーネル２０６は、秘密鍵２１３及び公開鍵２１４からなる鍵のペアを生成することができる。
【００２２】
種々の実施形態において、公開鍵（２０９、２１３）は、何らかの態様で公開されることができる。例えば、公開鍵は、証明機関２１０に提供されてもよい。代替的に、公開鍵は、要求元に直接提供されてもよい。この公開鍵が収集され、リクエストがこの鍵を用いて暗号化され得る。この実施形態では、ホストコンピューティング装置２０１によって生成された秘密鍵（２０７、２１４）は、ホストコンピューティング装置から離れることはなく、他のどこにも存在しない。要求元２１１がホスト２０１から公開鍵を信用のある形で入手できる場合、リクエストはホストコンピューティング装置２０１から離れることのない秘密鍵（２０７、２１３）によってしか解読され得ないため、公開鍵を用いて暗号化されたリクエストがそのホスト２０１（及びそのホストのみ）によってしか解読され得ないことを保証することができる。なお、図２は、Ｄｏｍ０  ２０５及びハイパーバイザ２０２の双方がそれら自身のそれぞれの鍵のペアを発行する実施例を示すが、これは全実施形態に対する要件または限定ではない。ある実施形態では、ハイパーバイザのみが鍵のペアを発行する。他の実施形態では、Ｄｏｍ−０のカーネルのみが鍵のペアを発行する。さらに他の実施形態では、ハイパーバイザ及びＤｏｍ−０のカーネルが鍵のペアを共有できる。
【００２３】
ある実施形態では、ホストコンピューティング装置２０１は、公開鍵２０９を証明機関（ＣＡ）２１０に提供することができる。ＣＡ２１０は、１以上のデジタル証明書（２１２、２１５）を適切な要求元（例えば、要求元２１１）に発行するエンティティとなることができる。デジタル証明書は、ＡＰＩリクエストを暗号化するのに使用できる公開鍵を当事者が適切に所有していることを証明する。この実施形態では、ＣＡの使用によって、秘密鍵が実際にホストコンピューティング装置２０１に対するものであることを、要求元がある程度の確度をもって信じることが可能となる。一実施形態では、ＣＡは、サービスプロバイダに対するＣＡであり、サービスプロバイダのリソースセンター内で稼働する。リソースセンターは、以下に図３を参照してより詳細に説明する。他の実施形態では、ＣＡ２１０は、要求元２１１（例えば、証明書の所有者）及び証明書に依拠するホスト２０１の双方によって信用される信用ある第三者である。証明機関はこの分野では周知であり、多くの公開鍵インフラ（ＰＫＩ）スキームにおいて使用されている。
【００２４】
この実施形態では、ＣＡ２１０が証明書２１２を要求元２１１に発行すると、要求元２１１は、証明書を用いて、カーネル２０６またはハイパーバイザ２０２のコンテキストにおいて特権付き動作を実行するためのＡＰＩリクエストを作成することができる。そして、ハイパーバイザ２０２またはカーネル２０６は、特定の当事者に発行された特定のＣＡによって署名されたいずれかの証明書が有効であり、それに従って特権付き動作を実行できることを認証することができる。
【００２５】
種々の実施形態において、図２に示す技術が、図１に示す技術との関連において用いられてもよい。例えば、図２の要求元２１１は、要求元が特権付き動作を実行するリクエストに署名するのに使用できるそれ自身の秘密鍵を有していてもよい。この実施形態では、リクエストは、署名されて信頼性を確実にする（すなわち、ホストは、要求元がそのリクエストを生成したことを確度をもって知ることになる）とともに、暗号化されてプライバシーを確実にする（すなわち、リクエストに含まれる情報を解読し得る外部当事者はない）。
【００２６】
図３に、種々の実施形態による、サービスプロバイダのリソースセンター環境の実施例３００を示す。図示する実施形態では、サービスプロバイダ（例えば、クラウドコンピューティングリソースのプロバイダ）は、サービスプロバイダの物理リソース（例えば、ホストサーバなど）を格納する１以上のリソースセンター３２３（例えば、データセンター、サーバファームなど）を保持していてもよい。これらの物理リソースは、インターネットなどのネットワーク３０２を介してユーザ３０１に提供され得る多数のゲスト（例えば、仮想マシンインスタンス）をホスティングするのに使用されることができる。例えば、ユーザが、サービスプロバイダの物理リソースを用いてアプリケーションを実行したい場合に、彼または彼女が、アプリケーションを展開及び実行するのに使用される仮想マシンをユーザにプロビジョンするようサービスプロバイダに要求するようにしてもよい。ユーザのアプリケーションに対する要求が増加すると、ユーザは、負荷のバランスを採るように、より多くの仮想マシンがプロビジョンされることを要求し、１以上の仮想プライベートネットワーク（ＶＰＮ）などの作成を要求することができる。
【００２７】
図示する実施例では、サービスプロバイダのリソースセンター３２３は、ホストサーバ（３０６、３０７、３０８、３０９、３１０）の１以上のラック３２１及び３２２を含んでいてもよく、特定のラックの各ホストコンピューティング装置は、単一のトップ・オブ・ラック（ＴＯＲ）スイッチ（３０４、３０５）に接続される。これらのＴＯＲスイッチは、ホストサーバがネットワークに接続されることを可能とする１以上の他のスイッチ（３２４、３２５）にさらに接続されもよい。この開示を通じて使用されるように、ネットワークは、相互に通信可能な装置の任意の有線または無線のネットワークであればよく、これらに限定されないが、インターネットまたは他の広域ネットワーク（ＷＡＮ）、セルラネットワーク、ローカルエリアネットワーク（ＬＡＮ）、ストレージエリアネットワーク（ＳＡＮ）、イントラネット、エクストラネットなどを含む。リソースセンターは、データセンター、サーバファーム、コンテンツ配信ネットワーク（ＣＤＮ）ポイント・オブ・プレゼンス（ＰＯＰ）などのような、リソースの物理的または論理的なグループ分けを含み得る。
【００２８】
一実施形態によると、各ホストコンピューティング装置は、顧客に代わって種々のアプリケーション及びサービスを実行するためにサービスプロバイダの顧客に対してプロビジョンされた１以上のゲスト（例えば、仮想マシンインスタンス（３１３、３１４、３１５、３１６、３１７、３１８、３１９））をホスティングするのに使用される仮想化レイヤ（例えば、Ｄｏｍ−０との組合せにおけるハイパーバイザ）を含むことができる。各ゲスト（例えば、仮想マシン）は、カーネル、ドライバ、処理管理などを含むそれ自身のオペレーティングシステム（ＯＳ）とともにプロビジョンされることができる。
【００２９】
顧客は、仮想マシンインスタンスを取得したいと望む場合、まず、彼らが使用したいゲスト（例えば、仮想マシン（ＶＭ））のタイプを示すリクエストをサービスプロバイダに提出すればよい。サービスプロバイダは、サービスプロバイダの物理リソース（例えば、ホストコンピューティング装置）にホスティングされるゲストをプロビジョンする処理を実行することができる。そして、ゲストは、顧客に代わって、サービスプロバイダのリソースを利用する種々のアプリケーション及びサービスを実行するのに用いることができる。
【００３０】
一実施形態によると、ゲストが起動されて稼働すると、仮想化レイヤ（例えば、ハイパーバイザまたはカーネル）のコードに修正が適用されることを要する場合があり、または他の何らかの特権付き動作が実行されることを要する場合がある。例えば、サービスプロバイダは、ホストコンピューティング装置上のＶＭをホスティングするハイパーバイザのコードにパッチまたはアップデートを適用することを望むことがある。あるいは、顧客（または他の何らかの第三者）が、カーネルまたはハイパーバイザのコードにアップデートを適用することを望むことがある。種々の実施形態では、この開示を通じて記載されるＡＰＩによって、ユーザが非対称（または対称）暗号法を利用することによって安全な態様でコードを修正することが可能となる。
【００３１】
図４に、種々の実施形態による、ハイパーバイザまたはカーネルにおいて特権付き動作を実行するのに使用できるＡＰＩを提供するための例示の処理４００を示す。本図は機能的動作を特定のシーケンスで図示するが、処理は必ずしも図示される特定の順序または動作に限定されない。当業者であれば、当該または他の図に描かれた種々の動作が変更され、再構成され、並列に実行され、または種々の態様で適合され得ることを理解するはずである。またさらに、種々の実施形態の範囲から逸脱することなく、特定の動作または動作のシーケンスが処理に対して追加または省略され得ることも理解されるべきである。さらに、ここに含まれる処理の説明は、コード実行の実際のシーケンスを特定するのではなく、当業者に処理フローの概念を示すことを意図するものであり、それは、異なるフローまたはシーケンスとして実施され、実行のために最適化され、または種々の態様で修正され得る。
【００３２】
動作４０１において、１以上のアプリケーション・プログラミング・インターフェイス（ＡＰＩ）が提供され、それは、署名されたリクエストをホストコンピューティング装置に提出するのに使用できる。ホストコンピューティング装置は、仮想化レイヤ（例えば、仮想マシンモニタ、またはハイパーバイザとの組合せにおいて動作するＤｏｍ０）及び１以上のゲスト（例えば、オペレーティングシステムカーネルを有するゲストオペレーティングシステムを稼働させる仮想マシン）を含んでいればよい。
【００３３】
動作４０２において、秘密鍵及び対応する公開鍵を含む非対称鍵のペアが生成される。一実施形態では、非対称鍵のペアは、ホストコンピューティング装置上の仮想化レイヤによって生成される。他の実施形態では、非対称鍵のペアは、証明機関のような他のエンティティまたはサービスによって生成されてもよい。秘密鍵は、情報を暗号化するのに使用されることができ、公開鍵は、秘密鍵を用いて暗号化された情報を解読するのに使用されることができる。
【００３４】
動作４０３において、公開鍵がホストコンピューティング装置に格納される。例えば、公開鍵は、仮想化レイヤ、例えばＤｏｍ０に、またはハイパーバイザにコンパイルされればよい。あるいは、鍵は、ホストコンピューティング装置のトラステッド・プラットフォーム・モジュール（ＴＰＭ）に格納されてもよい。
【００３５】
動作４０４において、秘密鍵が、ホストコンピューティング装置の外部にある安全な場所に格納される。この実施形態では、秘密鍵は、そこに駐在するいずれの悪意あるエージェントも秘密鍵にアクセスすることができないように、ホストコンピューティング装置上には存在しない。
【００３６】
動作４０５において、ホストコンピューティング装置が、仮想化レイヤ上で特権付き動作を実行することを要求するリクエストをＡＰＩ上で受信する。一実施形態によると、受信されたリクエストは秘密鍵を用いて署名される。
【００３７】
動作４０６において、仮想化レイヤ（例えば、カーネルまたはハイパーバイザ）が、ホストコンピューティング装置に格納された公開鍵を用いてリクエストの署名を有効化することを試みる。リクエストの署名が有効化される場合、処理４０７に示すように、特権付き動作がハイパーバイザ／カーネル上で実行されることができる。公開鍵を用いても署名が正しく有効化されない場合、特権付き動作は失敗に終わる（すなわち、実行されない）。
【００３８】
図５に、種々の実施形態による、公開鍵を用いて暗号化されたリクエストを解読するためのホストコンピューティング装置の例示の処理５００を示す。
【００３９】
動作５０１において、ホストコンピューティング装置が非対称鍵のペアを生成する。例えば、ホストコンピューティング装置における起動処理が、公開鍵及び対応する秘密鍵を生成することができる。動作５０２において、公開鍵が、信用あるソースに公開される。一実施形態では、公開鍵を用いてリクエストを暗号化する要求元に公開鍵が直接提供されてもよい。他の実施形態では、公開鍵が証明機関に提供されてもよく、証明機関が、カーネルまたはハイパーバイザ上で特権付き動作を実行することを望む認証された当事者に証明書を付与するようにしてもよい。この実施形態では、証明機関が、証明書に公開鍵を埋め込み、それ自身の秘密鍵を用いて証明書に署名するようにすればよい。したがって、証明書を受信した当事者は、公開鍵がホストコンピューティング装置からのものであることがＣＡによって実際に証明されることを確認することができる。
【００４０】
動作５０４において、ホストコンピューティング装置が、特権付き動作を実行するリクエストを受信する。そして、動作５０５に示すように、ホストコンピューティング装置は、ホストコンピューティング装置に格納された秘密鍵を用いてリクエストを解読することを試みる。秘密鍵を用いてリクエストが解読される場合、動作５０６に示すように、ホストコンピューティング装置は、特権付き動作をカーネル／ハイパーバイザ上で実行することができる。
【００４１】
本開示の種々の実施形態を、以下の条項を以て説明することができる。  
１．仮想化されたコンピューティング環境においてソフトウェア修正を安全にするためにコンピュータで実施される方法であって、
実行可能な命令で構成される１以上のコンピュータシステムの制御下で、
ホストコンピューティング装置に提出されたリクエストを受信するように構成された少なくとも１つのアプリケーション・プログラミング・インターフェイス（ＡＰＩ）を提供することを含み、前記ホストコンピューティング装置が、１以上のゲストをホスティングするように構成された仮想化レイヤを含むものであり、
さらに、
情報を解読するのに使用されることができる公開鍵を前記ホストコンピューティング装置に格納することを含み、前記情報を暗号化するのに使用されることができる対応の秘密鍵が前記ホストコンピューティング装置の外部の安全な場所に格納されており、
さらに、
前記ホストコンピューティング装置の前記仮想化レイヤにおいて特権付き動作を実行するためのリクエストであって前記安全な場所に格納された前記秘密鍵を用いて署名された前記リクエストを、前記ＡＰＩを介して前記ホストコンピューティング装置によって受信すること、及び
前記公開鍵を用いて前記リクエストの署名が正しく有効化される場合に前記特権付き動作を前記仮想化レイヤによって実行し、前記公開鍵を用いても前記リクエストの署名が正しく有効化されない場合に前記特権付き動作が失敗に終わること
を含む、コンピュータで実施される方法。  
２．条項１のコンピュータで実施される方法において、前記リクエストが、前記ホストコンピューティング装置に対応付けられた固有値をさらに含み、前記署名を有効化することが、前記リクエストに含まれる前記固有値が前記ホストコンピューティング装置に割り当てられた固有値に一致すると判定することをさらに含む、前記コンピュータで実施される方法。  
３．条項１のコンピュータで実施される方法において、前記リクエストが、前記ホストコンピューティング装置の前記仮想化レイヤに対応付けられた暗号アイデンティティの一部である第２の公開鍵を用いて暗号化され、前記暗号アイデンティティが、前記第２の公開鍵及び該第２の公開鍵を用いて暗号化された前記リクエストを解読するのに使用される第２の秘密鍵を含む鍵のペアを含むものである、前記コンピュータで実施される方法。  
４．条項１のコンピュータで実施される方法において、前記リクエストが、制限された期間のみ前記リクエストが有効とされるようにするタイムスタンプをさらに含む、前記コンピュータで実施される方法。  
５．条項１のコンピュータで実施される方法において、前記公開鍵を前記ホストコンピューティング装置に格納することが、
証明機関によって発行された証明書を受信することをさらに含み、前記証明書が前記公開鍵を含むものである、前記コンピュータで実施される方法。  
６．コンピュータで実施される方法であって、
実行可能な命令で構成される１以上のコンピュータシステムの制御下で、
ホストコンピューティング装置の起動動作中に、公開鍵及び秘密鍵を含む非対称鍵のペアを生成すること、
前記公開鍵を公開すること、
前記ホストコンピューティング装置の仮想化レイヤにおいて特権付き動作を実行するためのリクエストであって少なくとも前記公開鍵によって安全化される前記リクエストを受信すること、
前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証すること、及び
前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行すること
を含む、コンピュータで実施される方法。  
７．条項６のコンピュータで実施される方法において、前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された第２の秘密鍵を用いて署名され、前記リクエストの署名が、前記ホストコンピューティング装置に利用可能な第２の公開鍵を用いて有効化される、前記コンピュータで実施される方法。  
８．条項６のコンピュータで実施される方法であって、
前記ホストコンピューティング装置の前記仮想化レイヤにアクセス可能な揮発性メモリのみに前記秘密鍵を記憶することをさらに含む、前記コンピュータで実施される方法。  
９．条項６のコンピュータで実施される方法において、前記公開鍵を公開することが、
前記公開鍵を証明書に埋め込むように構成された証明機関（ＣＡ）に証明書署名リクエストを送信することをさらに含む、前記コンピュータで実施される方法。  
１０．条項６のコンピュータで実施される方法において、前記ホストコンピューティング装置に送信された前記リクエストが前記公開鍵を用いて暗号化され、前記ホストコンピューティング装置が、該ホストコンピューティング装置に格納された前記秘密鍵を用いて前記リクエストを解読するよう動作可能である、前記コンピュータで実施される方法。  
１１．条項６のコンピュータで実施される方法において、前記特権付き動作が、前記ホストコンピューティング装置の前記仮想化レイヤの稼働メモリイメージを修正するリクエストである、前記コンピュータで実施される方法。  
１２．条項６のコンピュータで実施される方法において、前記特権付き動作が、
前記ホストコンピューティング装置上のハイパーバイザまたはカーネルの少なくとも一方にパッチを適用すること、
前記ホストコンピューティング装置にホスティングされるゲストのメモリにおける場所を読み出すこと、
前記ホストコンピューティング装置上で稼働する１以上の変数を修正すること、または
前記ホストコンピューティング装置上で稼働するゲストをシャットダウン若しくは再起動すること
のリクエストである、前記コンピュータで実施される方法。  
１３．条項６のコンピュータで実施される方法において、前記秘密鍵が、前記ホストコンピューティング装置のトラステッド・プラットフォーム・モジュール（ＴＰＭ）に格納される、前記コンピュータで実施される方法。  
１４．条項６のコンピュータで実施される方法において、前記リクエストが、
前記リクエストが有効な状態である期間を制限するタイムスタンプ、または
前記ホストコンピューティング装置に対応付けられた固有値
の少なくとも一方をさらに含む、前記コンピュータで実施される方法。  
１５．条項６のコンピュータで実施される方法において、前記公開鍵が、前記公開鍵を所有する当事者に付与された一組の特権付き動作に対応付けられ、前記リクエストを認証することが、前記特権付き動作が前記組に含まれると判定することを含む、前記コンピュータで実施される方法。  
１６．コンピューティングシステムであって、
少なくとも１つのプロセッサ、及び
前記プロセッサによって実行されると、前記コンピューティングシステムに、
ホストコンピューティング装置の仮想化レイヤ上で特権付き動作を実行するためのリクエストであって少なくとも１つの鍵を用いて安全化される前記リクエストを、アプリケーション・プログラミング・インターフェイス（ＡＰＩ）を介して受信させ、
前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証することを試行させ、
前記リクエストが正しく認証された場合に前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行させる命令
を含むメモリ
を備えたコンピューティングシステム。  
１７．条項１６のコンピューティングシステムにおいて、前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された秘密鍵を用いて生成された署名によって安全化され、前記リクエストが、前記ホストコンピューティング装置に利用可能な公開鍵を用いて認証される、前記コンピューティングシステム。  
１８．条項１７のコンピューティングシステムにおいて、前記ホストコンピューティング装置が、許可された当事者に発行され、前記ホストコンピューティング装置に信用される証明機関によって署名された証明書に前記公開鍵が含まれる場合に前記公開鍵を用いるように構成された、前記コンピューティングシステム。  
１９．条項１６のコンピューティングシステムにおいて、前記ホストコンピューティング装置が、起動すると、
第２の公開鍵及び第２の秘密鍵を含む非対称鍵のペアを生成し、
前記第２の公開鍵を公開し、前記第２の秘密鍵を前記ホストコンピューティング装置の揮発性メモリに記憶する
ように構成された、前記コンピューティングシステム。  
２０．条項１９のコンピューティングシステムにおいて、前記第２の公開鍵を公開することが、
証明書署名リクエストを証明機関に送信して前記第２の公開鍵を証明書にバインディングすることをさらに含む、前記コンピューティングシステム。  
２１．非一時的コンピュータ可読記憶媒体であって、
少なくとも１つの仮想化レイヤを含むホストコンピューティング装置にリクエストを提出するインターフェイスを提供し、
前記ホストコンピューティング装置の前記仮想化レイヤ上で特権付き動作を実行するためのリクエストであって少なくとも１つの鍵を用いて安全化された前記リクエストを、前記インターフェイスを用いて受信し、前記安全化されたリクエストが前記ホストコンピューティング装置の前記仮想化レイヤで認証されることができるものであり、
前記ホストコンピューティング装置の前記仮想化レイヤによって前記リクエストを認証することを試行し、
前記リクエストが正しく認証される場合に前記ホストコンピューティング装置の前記仮想化レイヤにおいて前記特権付き動作を実行する、
１以上のプロセッサによって実行可能な命令の１以上のシーケンスを記憶する非一時的コンピュータ可読記憶媒体。  
２２．条項２１の非一時的コンピュータ可読記憶媒体において、前記リクエストが、前記ホストコンピューティング装置の遠隔に格納された署名秘密鍵を用いて署名され、前記リクエストの署名が、前記ホストコンピューティング装置に利用可能な署名公開鍵を用いて有効化される、前記非一時的コンピュータ可読記憶媒体。  
２３．条項２２の非一時的コンピュータ可読記憶媒体において、前記ホストコンピューティング装置が、許可された当事者に発行されて前記ホストコンピューティング装置に信用される証明機関によって署名された証明書に前記署名公開鍵が含まれる場合に前記署名公開鍵を用いるように構成された、前記非一時的コンピュータ可読記憶媒体。  
２４．条項２１の非一時的コンピュータ可読記憶媒体において、前記１以上のプロセッサによって実行可能な前記命令が、
前記１以上のプロセッサに、
公開鍵及び秘密鍵を含む非対称鍵のペアを、前記ホストコンピューティング装置の起動手順中に生成させ、
前記公開鍵を公開させ、前記秘密鍵を前記ホストコンピューティング装置に格納させる
命令をさらに備える、前記非一時的コンピュータ可読記憶媒体。  
２５．条項２４の非一時的コンピュータ可読記憶媒体において、前記公開鍵を公開することが、
証明書署名リクエストを証明機関に送信して前記公開鍵を証明書に添付することをさらに含む、前記非一時的コンピュータ可読記憶媒体。
【００４２】
図６に、例示のコンピューティング装置６００の一組の概略構成要素の論理構成を示す。本実施例では、装置は、メモリ装置、すなわち要素６０４に記憶され得る命令を実行するためのプロセッサ６０２を含む。当業者には明らかなように、装置は、プロセッサ６０２による実行のためのプログラム命令のための第１のデータストレージ、画像またはデータのための別個のストレージ、情報を他の装置と共有するためのリムーバブルメモリなどといった多種のメモリ、データストレージまたは非一時的コンピュータ可読記憶媒体を含むことができる。ポータブルメディアプレーヤのような装置は、オーディオスピーカを介するなど、他の手段を介して情報を伝達し得るが、装置は、通常、タッチパネルまたは液晶ディスプレイ（ＬＣＤ）のような何らかの形式のディスプレイ要素６０６を含む。上述のように、多数の実施形態における装置は、ユーザからの通常の入力を受けることができる少なくとも１つの入力要素６０８を含む。この通常の入力は、例えば、押しボタン、タッチパッド、タッチパネル、ホイール、ジョイスティック、キーボード、マウス、キーパッド、またはユーザが指令を装置に入力できるような他のデバイス若しくは要素を含み得る。一方、ある実施形態では、そのようなデバイスはボタンを全く含んでいなくてもよく、ユーザが装置に触れることを要することなく装置を制御できるように、視聴コマンドの組合せを介してのみ制御されるようにしてもよい。ある実施形態では、図５のコンピューティング装置６００は、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＲＦ、有線または無線通信システムを介して通信するための１以上のネットワークインターフェイス要素６０８を含むことができる。多数の実施形態における装置は、インターネットのようなネットワークと通信することができ、そのような他の装置と通信するようにしてもよい。
【００４３】
上述のように、記載される実施形態による種々の環境において異なる手法が実施されてもよい。例えば、図７に、種々の実施形態による形態を実施するための環境７００の一例を示す。記載から理解できるように、ウェブベースの環境が説明の目的で用いられるが、種々の実施形態を実施するのに異なる環境が適宜用いられてもよい。システムは、電子クライアント装置７０２を含み、それは、リクエスト、メッセージまたは情報を適宜のネットワーク７０４を介して送受信して情報を装置のユーザに戻すように動作可能なあらゆる適宜の装置を含むことができる。そのようなクライアント装置の例として、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージング装置、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子書籍リーダなどがある。ネットワークは、イントラネット、インターネット、セルラネットワーク、ローカルエリアネットワーク若しくは他のそのようなネットワークまたはそれらの組合せを含むあらゆる適宜のネットワークを含み得る。このようなシステムに使用される構成要素は、選択されるネットワーク及び／または環境のタイプに少なくともある程度依存していてもよい。そのようなネットワークを介して通信するためのプロトコル及び構成要素は周知であり、ここでは詳細には説明しない。ネットワークを介した通信は、有線または無線接続及びその組合せを介して可能となる。この実施例では、当業者には明らかなように、他のネットワークについては同様の目的を果たす代替の装置が使用され得るが、リクエストを受信してそれに応じてコンテンツを提供するウェブサーバ７０６が環境に含まれるので、ネットワークはインターネットを含む。
【００４４】
例示の実施形態は、少なくとも１つのアプリケーションサーバ７０８及びデータストア７１０を含む。なお、いくつかのアプリケーションサーバ、レイヤまたは他の要素、処理または構成要素があってもよく、これらはつなげられ、あるいは構成されていてもよく、データを適切なデータストアから取得するといったようなタスクを実行するよう相互作用し得ることが理解されるべきである。ここで使用される用語「データストア」とは、データを記憶、利用及び取得することができるあらゆる装置または装置の組合せをいい、それらは、あらゆる標準的な、分散された、または集合化された環境において、あらゆる組合せ及び個数のデータサーバ、データベース、データ記憶装置及びデータ記憶媒体を含み得る。アプリケーションサーバは、クライアント装置についての１以上のアプリケーションの形態を必要に応じて実行するデータストアと統合されるとともにアプリケーションに対するデータアクセス及びビジネスロジックの大部分を扱うためのあらゆる適切なハードウェア及びソフトウェアを含み得る。アプリケーションサーバは、データストアとの協働においてアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィクス、オーディオ及び／またはビデオのようなコンテンツを生成することができ、これらは、ＨＴＭＬ、ＸＭＬ、またはこの実施例における他の適切な構造化言語の形態でウェブサーバによってユーザに提供されることができる。クライアント装置７０２とアプリケーションサーバ７０８との間の全てのリクエスト及び応答の取扱いは、コンテンツの配信と同様に、ウェブサーバ７０６によって取り扱われることができる。なお、ここに説明する構造化コードは、いずれかの箇所で説明したあらゆる適切な装置またはホストコンピューティング装置で実行されることができるので、ウェブ及びアプリケーションサーバは、要件ではなく単なる例示の構成要素であることが理解されるべきである。
【００４５】
データストア７１０は、特定の形態に関係するデータを記憶するための、いくつかの個別のデータテーブル、データベースまたは他のデータ記憶機構及び媒体を含み得る。例えば、図示するデータストアは、製造側に対してコンテンツを提供するのに使用され得る製造データ７１２及びユーザ情報７１６を記憶するための機構を含む。データストアはまた、ログまたはセッションデータ７１４を記憶するための機構を含むように示されている。なお、ページ画像情報及びアクセス権情報のように、データストアに記憶される必要がある他の多くの形態があり、これらは適宜上述の機構のいずれかに、またはデータストア７１０における追加の機構に記憶され得ることが理解されるべきである。データストア７１０は、それに対応付けられたロジックを介して、アプリケーションサーバ７０８から命令を受信し、それに応じてデータを取得、更新または処理するよう動作可能である。一実施例では、ユーザは、特定タイプのアイテムについての検索リクエストを提出し得る。この場合、データストアはユーザ情報にアクセスしてユーザのアイデンティティを認証し、カタログ詳細情報にアクセスしてそのタイプのアイテムについての情報を取得することができる。そして、その情報は、ユーザがユーザ装置７０２のブラウザを介して見ることができるウェブページ上の結果リストなどにおいて、ユーザに戻されればよい。対象となる特定アイテムについての情報は、ブラウザの専用ページまたはウィンドウにおいて見ることができる。
【００４６】
各サーバは、通常は、そのサーバの一般的な管理及び動作についての実行可能なプログラム命令を提供するオペレーティングシステムを含み、通常は、サーバのプロセッサによって実行されたときに、サーバが意図する機能を実行することを可能とする命令を記憶するコンピュータ可読記憶媒体を含む。サーバのオペレーティングシステムのための適切な実施例及びサーバの一般的な機能は知られており、または市販されており、特に本開示に照らして当業者には容易に実施される。
【００４７】
一実施形態における環境は、１以上のコンピュータネットワークまたは直接の接続を用いて、通信リンクを介して相互接続されるいくつかのコンピュータシステム及び構成要素を利用する分散コンピュータ環境である。しかし、当業者であれば、そのようなシステムが、図７に示すものよりも少ない、または多い構成要素を有するシステムでも同様に動作し得ることを理解するであろう。したがって、図７におけるシステム７００の図示は、本質的に例示的なものであって本開示の範囲を限定しないものとして捉えられるべきである。
【００４８】
ここに説明及び提案する種々の実施形態は、広範な動作環境で実施されることができ、場合によっては、多数のアプリケーションのいずれかを動作させるのに使用できる１以上のユーザコンピュータ、コンピューティング装置または処理装置を含んでいればよい。ユーザまたはクライアント装置は、標準的なオペレーティングシステムを稼働させるデスクトップまたはラップトップコンピュータのような多数の汎用パーソナルコンピュータのいずれか、同様にモバイルソフトウェアを稼働させるとともに多数のネットワーキング及びメッセージングプロトコルに対応できるセルラ、無線及びハンドヘルド装置を含むことができる。そのようなシステムは、開発及びデータベース管理といった目的のための様々な市販のオペレーティングシステム及び他の周知のアプリケーションのいずれかを稼働させる多数のワークステーションも含むことができる。これらの装置は、ダミー端末、シンクライアント、ゲームシステム、及びネットワークを介して通信することができる他の装置といったような他の電子装置も含むことができる。
【００４９】
ほとんどの実施形態は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ及びＡｐｐｌｅＴａｌｋのような様々な市販のプロトコルのいずれかを用いる通信に対応するために、当業者にはよく知られた少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外ネットワーク、無線ネットワーク、及びこれらのいずれかの組合せであればよい。
【００５０】
ウェブサーバを用いる実施形態では、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、Ｊａｖａ（登録商標）サーバ及びビジネスアプリケーションサーバを含む様々なサーバまたはミッドティアアプリケーションのいずれかを稼働させることができる。サーバは、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃若しくはＣ＋＋のような任意のプログラミング言語またはＰｅｒｌ、Ｐｙｔｈｏｎ若しくはＴＣＬのような任意のスクリプティング言語、またそれらの組合せで書かれた１以上のスクリプトまたはプログラムとして実施できる１以上のウェブアプリケーションを実行するなどして、ユーザ装置からのリクエストに応じてプログラムまたはスクリプトを実行することもできる。サーバは、限定することなく、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）及びＩＢＭ（登録商標）から市販されているデータベースサーバを含んでいればよい。
【００５１】
環境は、上述した様々なデータストア並びに他のメモリ及び記憶媒体を含むことができる。これらは、１以上のコンピュータにローカルな（及び／または常駐する）またはネットワークにわたるいずれか若しくは全てのコンピュータから遠隔にある記憶媒体上など、様々な場所に常駐することができる。特定の組の実施形態では、情報は、当業者にはよく知られた記憶エリアネットワーク（ＳＡＮ）に常駐し得る。同様に、コンピュータ、サーバまたは他のネットワーク装置に帰属する機能を実行するために必要なファイルは、ローカルに、及び／または遠隔に適宜記憶される。コンピュータ化された装置をシステムが含む場合、そのような装置の各々は、バスを介して電気的に結合され得るハードウェア要素、例えば少なくとも中央処理装置（ＣＰＵ）を含む要素、少なくとも１つの入力装置（例えば、マウス、キーボード、コントローラ、タッチパネルまたはキーパッド）及び少なくとも１つの出力装置（例えば、表示装置、プリンタまたはスピーカ）を含むことができる。そのようなシステムは、ディスクドライブ、光学記憶装置、及びランダムアクセスメモリ（ＲＡＭ）または読出し専用メモリ（ＲＯＭ）のような固体記憶装置、リムーバブル媒体装置、メモリカード、フラッシュカードなどの１以上の記憶装置を含むこともできる。
【００５２】
そのような装置は、コンピュータ可読記憶媒体リーダ、通信装置（例えば、モデム、ネットワークカード（有線または無線）、赤外通信装置など）及び上述した動作するメモリを含んでいてもよい。コンピュータ可読記憶媒体リーダは、遠隔、ローカル、固定及び／またはリムーバブル記憶装置を代表するコンピュータ可読記憶媒体、同様に一時的に及び／またはより永久的にコンピュータ可読情報を含み、記憶し、送信し、及び取得するための記憶媒体に接続され、またはそれを受けるように構成されていればよい。システム及び種々の装置は、通常は、クライアントアプリケーションまたはウェブブラウザのようなオペレーティングシステム及びアプリケーションプログラムを含む多数のソフトウェアアプリケーション、モジュール、サービスまたは少なくとも１つの動作するメモリ装置内に位置する他の要素も含む。なお、代替の実施形態が、上述したものからの多数の変形例を有し得ることが理解されるべきである。例えば、カスタマイズされたハードウェアが使用されてもよいし、及び／または特定の要素がハードウェア、（アプレットのような可搬のソフトウェアを含む）ソフトウェア若しくはその両方で実施されてもよい。また、ネットワーク入力／出力装置などの他のコンピューティング装置への接続が採用されてもよい。
【００５３】
コードまたはコードの一部分を含む記憶媒体及びコンピュータ可読媒体は、この分野で知られまたは使用される任意の適切な媒体を含むことができ、その媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多目的ディスク（ＤＶＤ）若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶装置、または所望の情報を記憶するのに使用でき、システム装置によってアクセスできる他のあらゆる媒体を含む、コンピュータ可読命令、データ構造体、プログラムモジュールまたは他のデータのような情報の記憶及び／または伝送のためのあらゆる方法または技術において実施される、これらに限定されないが、揮発性の及び不揮発性の、取外し可能な及び取外し可能でない記憶媒体及び通信媒体を含む。ここで与えられる開示及び技術に基づいて、当業者は、種々の実施形態を実施する他の態様及び／または方法を理解するはずである。
【００５４】
したがって、明細書及び図面は、限定的な意味ではなく、例示的なものとしてみなされるべきである。一方、特許請求の範囲に記載される発明の、より広い精神及び範囲から逸脱することなく、種々の変形及び変更がなされ得ることは明らかである。
【図１】
2016509725.tif 000003
【図２】
2016509725.tif 000004
【図３】
2016509725.tif 000005
【図４】
2016509725.tif 000006
【図５】
2016509725.tif 000007
【図６】
2016509725.tif 000008
【図７】
2016509725.tif 000009
【国際調査報告】
2016509725.tif 000010