【文献】
大内明,ホストOS型とハイパーバイザ型の違いを知る,[online],日本,ASCII.jp,2009年 5月 8日,[平成29年1月5日検索],インターネット,URL,http://ascii.jp/elem/000/000/414/414625/index-3.html
【文献】
飯島徹,第5回 仮想マシンが動く物理サーバーを動的に切り替える,[online],日本,日経BP,2006年10月25日,[平成29年1月5日検索],URL,http://itpro.nikkeibp.co.jp/article/COLUMN/20061017/250858/?rt=nocnt
【文献】
阿部純一郎,大澤隆,中井悦司,KVMで始めるプライベート・クラウドへの第一歩 第6回 KVMでライブマイグレーションに挑戦,[online],日本,株式会社技術評論社,2011年 6月13日,[平成28年8月31日検索],URL,http://gihyo.jp/admin/serial/01/ibm_kvm/0006
(58)【調査した分野】(Int.Cl.,DB名)
保護された情報を送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための要求であって、前記送信先ホストコンピューティングデバイスに対する送信先鍵を含む要求を、前記送信元ホストコンピューティングデバイスによって、承認された関係者から受け取ることと、
前記送信元ホストコンピューティングデバイスと前記送信先ホストコンピューティングデバイスとの間の相互認証を実行することであって、
前記送信元ホストコンピューティングデバイスによって、前記送信先鍵を使用して、前記送信先ホストコンピューティングデバイスを認証し、
前記送信先ホストコンピューティングデバイスが前記送信元ホストコンピューティングデバイスに関連する送信元鍵を使用して前記送信元ホストコンピューティングデバイスを認証したことの表示を、前記送信元ホストコンピューティングデバイスが受け取り、ここにおいて、前記送信元鍵は、前記承認された関係者により前記送信先ホストコンピューティングデバイスに提供され、
前記送信元ホストコンピューティングデバイスと前記送信先ホストコンピューティングデバイスによって、前記送信先鍵と送信元鍵を使用して移行鍵を確立し、および、
前記移行鍵を使用して、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに、前記保護された情報を移行させることにより、相互認証を実行すること、
を備えた、コンピュータにより実現される方法。
承認されていない関係者が少なくとも1つの前記要求を提出することを防ぐために、前記保護された情報を移行するための前記要求が署名される、請求項1に記載のコンピュータにより実現される方法。
前記要求が、前記送信元ホストコンピューティングデバイス、または、前記送信先ホストコンピューティングデバイス、のうちの少なくとも1つに対する証明をさらに含む、請求項1に記載のコンピュータにより実現される方法。
【発明を実施するための形態】
【0004】
以下の説明では、様々な実施形態が、添付の図面の図において、限定としてでなく、例示として示される。本開示における様々な実施形態への参照は、必ずしも同じ実施形態に対してではなく、そのような参照は、少なくとも1つを意味する。特定の実現形態及び他の詳細が説明されるが、これは実例の目的のみのために行われることを理解されたい。関連技術の当業者は、特許請求の主題の範囲及び趣旨から逸脱することなく、他の構成要素及び構成が使用できることを認識するであろう。
【0005】
本開示の様々な実施形態によるシステム及び方法は、仮想マシン及び他の保護された情報(例えば、キーストアなど)などのコンピューティングリソースを移行するための従来の手法で経験する上記のまたは他の欠点の1つ以上を克服することができる。具体的には、様々な実施形態は、非対称(または、対称)の暗号などのセキュリティスキームを利用し、様々なホストコンピューティングデバイス間の仮想マシンの安全な(または、暗号化された)移行を可能にする。
【0006】
様々な実施形態では、仮想マシン(VM)または他の保護された情報を移行するためのプロセスは、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスを選択して開始することができる。一実施形態では、インスタンスを移行するための単一の要求は、2つの異なるホストデバイス(送信元ホスト及び送信先ホスト)にアドレス指定することができる。この要求は、両方のホストコンピューティングデバイスの鍵を含むことができる。別の実施形態では、2つの要求を発行することができ、一方の要求が送信元ホストに、他方が送信先ホストに、発行される。各要求は、他のホストのための公開鍵を(例えば、パラメータとして)含む。このように、送信元ホストコンピューティングデバイスへの要求は、送信先ホストコンピューティングデバイスの公開鍵を含み、一方送信先ホストコンピューティングデバイスへの要求は、送信元ホストコンピューティングデバイスのための公開鍵を含む。
【0007】
一旦要求が送信元ホストコンピューティングデバイスによって受け取られると、送信元ホストコンピューティングデバイスは、送信先ホストコンピューティングデバイスに接触し、相互認証が行われる。実施形態によれば、2つのホストコンピューティングデバイスは、安全なセッションを確立し、移行のために使用される移行鍵(例えば、セッション鍵)に同意する。安全なセッションは、移行のための要求の一部として、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスに提供された鍵を使用して確立される。仮想マシンの移行は、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへの状態情報(例えば、ディスク状態、RAM状態など)の転送を含む。状態データは、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへの安全なセッションを介して送信することができ、状態データは、ネゴシエートされた移行鍵を使用して暗号化することができる。送信の暗号化は、送信されたデータを信頼できない関係者が読む、変更する、またはそうでなければアクセスすることを防ぐことができる。
【0008】
いくつかの実施形態では、移行を開始するための最初の要求は、全ての中間の関係者が要求のパラメータ及び他の情報を読むことを防ぐために、また要求の真正性を保証するために、それ自体を暗号化する、かつ/または署名することができる。VMを移行するための要求は、要求がホストコンピューティングデバイスのカーネル及び/または仮想化層に安全に提供されることを可能にするインターフェース(例えば、アプリケーションプログラミングインターフェース(API))の正式なセットを使用して、カーネルまたは仮想化層(例えば、ハイパーバイザー)に提出することができる。
【0009】
様々な実施形態では、本明細書に記載のセキュリティスキームは、ホストコンピューティングデバイスのハイパーバイザー及び/またはOSのカーネルなどの場所で特権操作を行うとき、マルチテナント共有リソース環境(例えば、クラウドコンピューティング環境)で利用することができる。従来、このタイプの環境では、ホストコンピューティングデバイスは、仮想化技術を利用し、サービスプロバイダ(例えば、クラウドコンピューティングプロバイダ)の異なる顧客に関連する1つ以上の仮想マシンのインスタンスをプロビジョニングする。これらの仮想マシンのイスタンスは、ハイパーバイザー(または、他の仮想化技術)を使用してコンピューティングデバイスでホストされ、各仮想マシンのインスタンスは、カーネル、デバイスドライバ、及び他のOS構成要素を備えるゲストオペレーティングシステムを含むことができる。仮想マシンをホストするためのホストコンピューティングデバイス及び他の物理リソースは、通常、サービスプロバイダによって提供され、データセンタ、サーバファーム、コンテンツ配信ネットワーク(CDN)ポイントオブプレゼンス(POP)などのリソースセンタに存在する。様々な実施形態では、本明細書に記載のセキュリティスキームは、仮想マシンのインスタンスが複数のホストコンピューティングデバイス間で安全に移行することを可能にすることができ、したがって、サービスプロバイダが移行プロセス中にデータのセキュリティを損なうことなく、リソース利用を改善することを可能にする。移行要求は署名されるので、承認されていない関係者は、不正な移行の一部として読み取りまたは書き込みを発行することができない。送信元と送信先との間のデータの送信が暗号化されるので、信頼できない関係者は、送信されているブロックデータを読むことができない。
【0010】
一実施形態によれば、サービスは、サービスが移行プロセスを開始するマルチテナントコンピューティング環境で提供することができる。この実施形態では、サービスは、移行対象となる仮想マシンを識別し、仮想マシンの送信先ホストを決定し、APIコール(複数可)を発行して移行プロセスを開始することができる。例えば、サービスは、移行要求を適切な鍵と共にAPIコールを介してホストコンピューティングデバイス及び送信先ホストに提出することができる。次に、前述のように、鍵を使用して安全な移行セッションを確立することにより、移行を遂行することができる。
【0011】
いくつかの実施形態では、仮想マシンを移行するのではなく、本明細書に記載のセキュリティスキームを使用して、仮想マシンのメモリを遠隔で読み取る、または後に検査するために(例えば、フォレンシックエキスパートによって)仮想マシンをストレージにコピーする、ことができる。例えば、サービスは、仮想マシンをホストするホストコンピューティングデバイスにAPIコールを提出することができ、APIコールは、仮想マシンのメモリがサービスに提供されることを要求する。あるいは、サービスは、ホストコンピューティングデバイスが仮想マシンを、後に分析されるように、メモリ内の指定された場所にコピーすることを要求することができる。要求は、1つ以上の鍵を含むことができる。要求の受け取りに応答して、VMをホストするホストコンピューティングデバイスは、1つ以上の鍵を使用して要求するコンピューティングデバイスとの安全なセッションを確立し、その後、仮想マシンのメモリにアクセスするか、または仮想マシンのメモリを指定された場所に書き込むか、のいずれかが可能である。
【0012】
図1Aは、様々な実施形態に従って、仮想マシンを複数の移行要求を使用して2つのホストコンピューティングデバイス間で安全に移行することの例示100を示す。示されるように、承認されたエンティティ107は、送信元ホストコンピューティングデバイス101及び送信先ホストコンピューティングデバイス102を選択し、送信元ホストコンピューティングデバイス101から送信先ホストコンピューティングデバイス102への仮想マシン108の移行を開始することができる。承認されたエンティティは、移行を行うための特権アクセスを有するサービスプロバイダのネットワーク管理者または他の技術者などの移行要求を行うことが許可された任意の関係者(例えば、ユーザ、アプリケーション、サービスなど)であることができる。
【0013】
示された実施形態では、移行を開始するために、承認されたエンティティ107は、2つの要求(103、105)を、1つの要求を関係するホストコンピューティングデバイスの各々に、発行する。各要求は、他方のための公開鍵を含む。具体的には、送信元ホストデバイス101にアドレス指定された要求103は、送信先ホストコンピューティングデバイス102のための公開鍵104を含み、一方要求105は、送信元ホストコンピューティングデバイス101のための公開鍵106を含む。一実施形態では、各要求は、要求の真正性を保証するために署名される。要求は、
図2を参照して説明されるように、承認されたエンティティ107の秘密鍵を使用することによって署名することができる。移行要求の署名は、要求が、偽物ではなく、適切な承認されたエンティティ107によって開始されたことをホストコンピューティングデバイスが確認することを可能にすることができる。
【0014】
一旦要求がそれぞれのホストコンピューティングデバイスによって受け取られると、送信元ホストコンピューティングデバイス101は、送信先ホストコンピューティングデバイス102に接触し、相互認証が行われて安全なセッションを確立する。様々な実施形態では、相互認証は、トランスポートレイヤセキュリティ(TLS)及びセキュアソケットレイヤ(SSL)と同様な技術を使用することにより行うことができる。具体的には、相互認証は、2つのホストの秘密鍵及び公開鍵をクライアント及びサーバの証明として効果的に使用し、安全なセッションのためのセッション鍵112をネゴシエートする送信元ホストコンピューティングデバイス101及び送信先ホストコンピューティングデバイス102によって行うことができる。一実施形態では、送信元ホストコンピューティングデバイス101は、送信先ホストコンピューティングデバイス102に接触し、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスは、要求内に提供されていた鍵を使用することにより、互いに認証する。一旦認証されると、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスは、状態情報を送信するために使用されるセッション鍵に同意する。一実施形態では、鍵共有は、前方秘匿性を保証するためにディフィ・ヘルマンである。状態情報を送信するために利用されるバルクの暗号は、認証付暗号セキュリティガロア/カウンタモード(AES−GCM)であることができる。代替の実施形態では、鍵は、他の技術を使用してネゴシエートすることができる。さらに他の実施形態では、セッション鍵はまた、元の移行要求(103、105)の一部として含めることができる。
【0015】
実施形態によれば、送信元ホストコンピューティングデバイス101から送信先ホストコンピューティングデバイス102へ送信されるデータは、安全なセッションを確立することの一部としてネゴシエートされたセッション鍵112で暗号化される。鍵を有していない関係者は、このデータを解読することができない、したがって、2つのホスト間の安全なデータ転送が保証される。様々な実施形態では、送信先ホストコンピューティングデバイス102への仮想マシン(108、111)の移行は、状態情報(109、110)を送信先ホストコンピューティングデバイス102にコピーすることを含むことができる。一実施形態では、送信元ホストコンピューティングデバイス101の読取インターフェースは、送信先ホストコンピューティングデバイス102の書込みインターフェースに接続し、仮想マシンの移行に使用することができる。関連する移行のタイプに依存して、コピーする必要がある状態情報109は、ディスク状態、ランダムアクセスメモリ(RAM)の状態、VMの外部のネットワークファイアウォール状態などを含むことができる。いくつかの実施形態では、ネットワーク入力/出力(I/O)操作などの状態情報のいくつかは、順番にコピーする必要がある場合がある。
【0016】
代替の実施形態では、鍵の代わりに、1つ以上の証明を使用して仮想マシンを安全に移行することができる。この実施形態では、送信元ホストコンピューティングデバイス101への要求103は、送信先ホストコンピューティングデバイス102のための証明を含むことができる、またはホストコンピューティングデバイス102のための識別子だけを含むことができる。要求を受け取ると、ホストコンピューティングデバイス101は、ホストコンピューティングデバイス102に接触することができ、ホストコンピューティングデバイス102は、署名された証明を待ち、標準的な証明の確認を行う。証明及び証明機関の全般的な使用は、
図3及び関連するテキストを参照して、より詳細に説明する。
【0017】
一実施形態では、送信元ホストコンピューティングデバイス101は、送信先ホストコンピューティングデバイス102への仮想マシンのライブ移行を行うことができる。ライブ移行は、最初に一方のホストコンピューティングデバイスの仮想マシンをシャットダウンし、その後他方のホストコンピューティングデバイスの仮想マシンを開始することを伴うコールド移行または再起動移行とは対照的に、移行が完了する間、仮想マシンが送信元ホストコンピューティングデバイス101で継続して実行されることを意味する。しかしながら、本明細書に記載の実施形態の多くは、ライブ移行に限定されるものではなく、任意の他のタイプの移行を本開示の範囲内で実現され得ることに留意されたい。
【0018】
ライブ移行が行われると、送信元ホストコンピューティングデバイス101は、仮想マシンが送信元ホストコンピューティングデバイス101で実行されている間、RAM状態などのデータを最初から最後まで送信先ホストコンピューティングデバイス102へコピーすることを開始することができる。送信元ホストコンピューティングデバイス101のRAMは、実質的に大きい(例えば、ギガバイト)場合があるので、RAM状態全体のコピーは、かなりの時間量を取る場合がある。結果として、一旦コピーが完了すると、RAM状態が送信先ホストコンピューティングデバイス102へ送信されていた間、状態データが実行中の仮想マシンによって連続して変異されていたので、状態のいくつかの部分が無効となる可能性がある。これらの無効部分を解決するために、一旦RAM状態全体が転送されると、送信元ホストコンピューティングデバイス101は、再び最初から開始することができるが、今度は、RAM状態に対する変更のみをコピーする。このプロセスは、その後、送信元ホストコンピューティングデバイス101と送信先ホストコンピューティングデバイス102との間の無効な状態データの量を最小限にするために、複数回繰り返すことができる。プロセスが繰り返されるにつれて、送信先ホストコンピューティングデバイス102にコピーする必要がある状態データの量は、変更をコピーするためにかかる時間が減少するので、サイズが段々と小さくなり続ける。例えば、RAM状態全体をコピーするために、ギガバイトのデータを送る必要がある場合があり、変更の第1のセットをコピーするために、100メガバイトを送る必要がある場合があり、変更の次のセットをコピーするために、10メガバイトを送る必要がある場合などがある。このプロセスは、仮想マシンが送信元ホストコンピューティングデバイス101で停止することができ、送信先ホストコンピューティングデバイス102にコピーされる変更、及び仮想マシン111の新しいインスタンスが、送信先ホストコンピューティングデバイス102で開始される時点である所定の閾値に達するまで、繰り返すことができる、様々な実施形態では、ライブ移行を通して、送信元ホストコンピューティングデバイス101と送信先ホストコンピューティングデバイス102との間で送信されるかなりの量のデータは、前述のように、送信元と送信先との間でネゴシエートされたセッション鍵を使用して暗号化することができる。このようにして、2つのホスト間で送られる機密性の高いデータは、保護され、送信元ホストコンピューティングデバイス101及び送信先ホストコンピューティングデバイス102の外部の全ての他の関係者による読み取りが不能である。
【0019】
図1Bは、様々な実施形態に従って、仮想マシンを単一の移行要求を使用して2つのホストコンピューティングデバイス間で安全に移行することの例示120を示す。示されるように、承認されたエンティティ107は、
図1Aを参照して前述したものと同様な方法で、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへの仮想マシンのインスタンスの移行を開始することができる。
図1Bの実施形態では、しかしながら、承認されたエンティティ107は、2つの異なるホスト、送信元ホストコンピューティングデバイス101及び送信先ホストコンピューティングデバイス102、にアドレス指定された1つの要求103を生成することができる。要求103は、両方のデバイスの鍵を含むことができる。例えば、移行要求103は、ホストコンピューティングデバイス101からホストコンピューティングデバイス102へ仮想マシン108を移行することを要求でき、この要求は、ホスト101のための鍵104及びホスト102のための鍵106を(例えば、パラメータとして)含むことができる。要求は、承認されたエンティティの秘密鍵を使用して署名することができる。
【0020】
実施形態によれば、要求は、送信元ホストコンピューティングデバイス101及び送信先ホストコンピューティングデバイス102の両方に提供される。鍵は署名された要求103に含められるので、各ホストコンピューティングデバイスは、要求の署名者を信頼するのと同様に鍵を信頼する。一旦要求が受け取られると、送信元ホストコンピューティングデバイス101と送信先コンピューティングデバイス102は、前述のように、安全なセッションを確立し、セッション鍵112をネゴシエートして、仮想マシン108を移行し、状態情報109を送信先ホストコンピューティングデバイス102にコピーする。
【0021】
図面及び関連するテキストは、仮想マシンを移行するための様々な技術を説明しているが、これは、本明細書に記載の実施形態の全てに対する限定ではないことに留意されたい。様々な代替の実施形態では、任意の他の保護された情報を、本明細書に記載のセキュリティスキームを使用して、送信元ホストコンピューティングデバイス101から送信先ホストコンピューティングデバイス102へ移行する、または転送する、ことができる。例えば、複数の鍵を含むキーストアは、送信元ホストコンピューティングデバイス101から送信先ホストコンピューティングデバイス102へ安全に移行することができる。同様に、送信元ホストコンピューティングデバイス101のトラステッドプラットホームモジュール(TPM)の状態は、送信先ホストコンピューティングデバイスに移行することができる。同じ方法で、IPテーブル、ルール、及び他の情報は、本明細書に記載の様々な実施形態に従って、安全にすることができる。
【0022】
図2は、様々な実施形態に従って、非対称の暗号を使用してホストコンピューティングデバイスに提出された移行要求に署名することの例示200を示す。この実施形態では、ホストコンピューティングデバイス201は、少なくとも1つの仮想化層(ハイパーバイザー202及びDom0 205の組合せとして示されている)及び1つ以上のゲスト211を備える。ゲストは、仮想マシンのインスタンスであることができ、各々がそれら独自のそれぞれのオペレーティングシステム(OS)、カーネル206、デバイスドライバ、スケジューラなどを有する。Dom−0 205は、ホストコンピューティングデバイス201の他のゲストドメインを起動し、管理するために使用される。仮想化層は、この図では別々の構成要素として示されているが、仮想化層の他の実現形態も、可能であり、かつ本開示の範囲内である。例えば、Dom0 205の機能、またはその機能のサブセット、ならびにハイパーバイザー202によって影響されるものは、単一の構成要素に統合することができる。様々な実施形態では、仮想化層は、ハードウェアで直接実行されるタイプ1のハイパーバイザーか、またはオペレーティングシステム内で実行されるタイプ2のハイパーバイザーか、のいずれかを備えることができる。
【0023】
実施形態によれば、ホストコンピューティングデバイス201は、ホストコンピューティングデバイス201のカーネル206(例えば、Dom−0カーネル)またはハイパーバイザー202で特権操作を行うために、署名された、かつ/または暗号化された、要求を提出するために使用することができるAPI108のセットを提供する。特権操作は、ハイパーバイザー及び/またはカーネルの実行中のメモリイメージを変更することができます。例えば、特権操作は、パッチをハイパーバイザー/カーネルに適用する、メモリ内の場所を読み取る、ホストコンピューティングデバイスで実行されている1つ以上の変数を変更する、ホストコンピューティングデバイスで実行されている仮想マシンのインスタンスを開始/停止する、仮想マシンを別のホストコンピューティングデバイスに移行する、などが可能である。API要求は暗号化することができるので、カーネル/ハイパーバイザーの外部の中間の関係者は、要求を読みことができない、また要求が行うことを意図しているものを知ることがない。
【0024】
ある実施形態によれば、APIの要求は、秘密鍵及び公開鍵を含む非対称の鍵対を使用して、署名される、かつ確認する、ことができる。一実施形態では、APIコールに対する引数の少なくとも一部(または全部)は、標準化され、かつシリアル化されて、署名文字列を得る。この文字列は、次にハッシュベースメッセージ認証コード(HMAC)または非対称の暗号のいずれかを介して署名され、API208に送ることができる。APIへのパラメータが署名内に含まれているので、要求(例えば、要求を作ったコード)を取得した潜在的攻撃者は、要求を変えることができない。
【0025】
いくつかの実施形態によれば、要求は、タイムスタンプを含むことができ、時間窓ベース応答保護を提供し、要求は、制限された期間のみにわたって有効である。いくつかの実施形態では、要求は、ホストコンピューティングデバイス201に特別に関連付けられた一意の値、例えばシリアル番号、またはホストマシン識別子(ID)、を含むことができる。これらの値は、秘密ではない場合もあるが、それらを含むことは、要求を特定のホストコンピューティングデバイス201に拘束することができる。その場合、潜在的攻撃者が異なるホストコンピューティングデバイスに対する要求を再生することを防止する。いくつかの実施形態では、要求は、ホストコンピューティングデバイス201への拘束の強度を増加するために、ホストコンピューティングデバイス201内のトラステッドプラットフォームモジュール(TPM)(図示せず)によって認証することができる。
【0026】
示された実施形態では、API要求に署名するために使用される秘密鍵204は、要求がアドレス指定されるホストコンピューティングデバイス201に存在しない。その代わりに、秘密鍵204は、サービスプロバイダのネットワーク210の安全な場所203に、または別の信頼できる場所に、格納することができる。結果として、悪意のあるエージェントがホストコンピューティングデバイス201に存在した場合、それらは、秘密鍵204を使用して要求を偽造することができない。
【0027】
ホストコンピューティングデバイス201は、秘密鍵204を使用して署名された要求の署名を確認するために使用することができる公開鍵を含むことができる。一実施形態では、公開鍵207は、ホストコンピューティングデバイス201のカーネル206にコンパイルすることができる。別の実施形態では、公開鍵209は、ハイパーバイザー202にコンパイルすることができる。いくつかの実施形態では、カーネル206は、ハイパーバイザー202に格納された公開鍵209と異なる公開鍵207を格納することができる、一方、他の実施形態では、同じ公開鍵を使用してハイパーバイザー202及びカーネル206の両方で要求を確認することができる。さらに他の実施形態では、ホストコンピューティングデバイス201に実際の公開鍵を格納するのではなく、ホストコンピューティングデバイス201は、代わりに特定の証明機関(CA)によって証明される任意の公開鍵を信頼するように構成することができる。これらの実施形態では、ホストコンピューティングデバイス201は、要求を要求者から受け取ることができ、要求は、公開鍵を含む証明を伴う。ホストコンピューティングデバイスは、CAの証明を信頼し、したがって要求の一部として受け取る公開鍵を信頼する。公開鍵が、ホストコンピューティングデバイスに格納されているか、または証明と一緒に提供されているか、に関わらずに、公開鍵を使用して、秘密鍵204を使用して署名されたAPI要求を確認することができる。例えば、ユーザ(例えば、顧客、サービスプロバイダの技術者、第三者など)が、カーネル206のコードの一部に更新を適用することを望んだ場合、彼らは、秘密鍵204へのアクセスまたはその使用を取得し、API要求に署名してコードの適切な部分を変更することができる。要求を受け取ると、カーネル206は、公開鍵を使用して要求を確認することを試み、確認が成功した場合、必要な特権操作を実行することができる。
【0028】
代替の実施形態(図示せず)では、HMAC及び対称な鍵が利用された場合、鍵は、カーネル206またはハイパーバイザー202にコンパイルすることができる。その場合、鍵は、難読化して、ビルド毎に変えることができるが、この鍵は、実際には、ホストコンピューティングデバイス201に存在することができる。任意選択的に、要求全体は、カーネルにコンパイルされる鍵に暗号化することができ、要求自体は、それを発行するコードに対して不透明である。
【0029】
いくつかの実施形態では、1つ以上の制約は、要求に設けられた特定の鍵に従って(または、鍵を所有する関係者に従って)適用することができる。例えば、いくつかのアクターによって署名された要求は、ホストコンピューティングデバイス201でゲスト仮想マシンを開始/停止すること、またはホストコンピューティングデバイス201を再起動させること、を可能にすることができるだけである。他のアクター(例えば、サービスプロバイダのOSチーム)によって保持された鍵を使用して署名された要求は、ハイパーバイザーの実行コードを変更することを可能にすることができる。一実施形態では、ホストコンピューティングデバイス201は、そこに格納された複数の異なる公開鍵を有することができ、各公開鍵は、異なるエンティティ(例えば、ユーザ、チームなど)に関連付けられた秘密鍵に関連付けられる。どのエンティティの秘密鍵が要求に署名するために使用されたかに依存して、要求されたオペレーションが、許可される、または拒否される、場合がある。代替の実施形態では、ホストコンピューティングデバイス201は、1つの秘密鍵に関連付けられた1つだけの公開鍵を格納することができる、しかしながら、要求は、要求を提出するユーザの識別を含むことができる。この識別に基づいて、ホストコンピューティングデバイス201は、要求されたオペレーションの実行に異なる制約を適用することができる。例えば、ホストコンピューティングデバイス201は、1人のユーザがゲストを停止/開始することを可能にすることができ、一方別のユーザは、ハイパーバイザーのコードの変更または更新をすることができる。そのような制約(例えば、鍵毎または関係者毎の基準で)の任意の数が可能であり、本明細書に記載の実施形態の範囲内である。
【0030】
図3は、様々な実施形態に従って、証明機関を利用する例示300を示す。示された実施形態では、ホストコンピューティングデバイス(例えば、ホストコンピューティングデバイス301上のカーネル306及び/またはハイパーバイザー302)は、ブート時に非対称の鍵対からなる暗号化識別を生成する。例えば、ホストコンピューティングデバイス301がブートするとき、ハイパーバイザー302は、秘密鍵307及び公開鍵309を含む鍵対を生成する。同様に、Dom0 305がロードされると、カーネル306は、秘密鍵313及び公開鍵314からなる鍵対を生成する。
【0031】
様々な実施形態では、公開鍵(309、313)は、同じ様式で発行することができる。例えば、公開鍵は、証明機関310に提供することができる。あるいは、公開鍵は、要求する関係者に直接に提供することができる。この公開鍵は、収集することができ、要求は、この鍵を使用して暗号化することができる。この実施形態では、ホストデバイス301によって生成された秘密鍵(307,314)は、決してホストデバイスから離れることがなく、他のどこにも存在しない。要求する関係者が、公開鍵をホストコンピューティングデバイス301から確実に得ることができる場合、それは、公開鍵を使用して署名された要求が、そのホストコンピューティングデバイス301(かつ、そのホストコンピューティングデバイスのみ)に向かうことを保証することができ、その理由は、要求が、ホストコンピューティングデバイス301を決して離れない秘密鍵(307、313)によって唯一解読することができる公開鍵(309,314)を使用することによって、署名されているからである。
図3は、カーネル306及びハイパーバイザー302の両方がそれら自体のそれぞれの鍵対を発行する例示を示しているが、これは全ての実施形態に対する要件または制限ではないことに留意されたい。いくつかの実施形態では、ハイパーバイザー302だけが鍵対を発行する。他の実施形態では、カーネル306だけが鍵対を発行する。さらに他の実施形態では、ハイパーバイザー302及びカーネル306が、鍵対を共有することができる。
【0032】
いくつかの実施形態では、ホストコンピューティングデバイス301は、証明機関(CA)310に公開鍵309を提供することができる。CA310は、1つ以上のデジタル証明(312、315)を適切な要求する関係者(例えば、署名する関係者311)に発行するエンティティであることができる。デジタル証明は、関係者が、API要求に署名するために使用することができる公開鍵を適切に所有することを証明する。この実施形態では、CAの使用により、要求する関係者が、秘密鍵が実際にホストコンピューティングデバイス301のためのものであることを信じることを、ある確実性の程度で可能になる。一実施形態では、CAは、サービスプロバイダのためのCAであり、サービスプロバイダのリソースセンタで実行される。リソースセンタは、以下の
図4を参照してさらに詳細に説明する。代替の実施形態では、CA310は、署名する関係者311及び証明に依存するホストコンピューティングデバイス301の両方によって信頼される信頼できる第3者である。証明機関は、従来技術で公知であり、多くの公開鍵インフラストラクチャ(PKI)スキームで使用されている。
【0033】
この実施形態では、CA310が証明312を要求する関係者311に一旦発行すると、要求する関係者311は、証明を使用して、カーネル306またはハイパーバイザー302のコンテキストで特権操作を実行するためのAPI要求を作ることができる。ハイパーバイザー302またはカーネル306は、次に、特定の関係者に発行された特定のCAによって署名された任意の証明が有効であることを確認することができ、それに応じて特権操作を実行することができる。
【0034】
その様々な実施形態、
図3に示された技術は、
図2に示された技術と一緒に使用することができる。例えば、
図3の要求する関係者311は、それ自身の秘密鍵を有することができ、要求する関係者が、それを使用して特権操作を実行するための要求に署名することができる。この実施形態では、要求は、真正性を保証するために署名される(すなわち、ホストコンピューティングデバイスは、要求する関係者が要求を生成したことを確実に知ることになる)だけではなく、プライバシーを保証するために暗号化される(すなわち、外部の関係者は要求に含まれる情報を解読することができない)。
【0035】
図4は、様々な実施形態に従う、サービスプロバイダのリソースセンタ環境の例示400を示す。示された実施形態では、サービスプロバイダ(例えば、クラウドコンピューティングリソースプロバイダ)は、サービスプロバイダの物理的リソース(例えば、ホストサーバなど)を格納する1つ以上のリソースセンタ423(例えば、データセンタ、サーバファームなど)を維持することができる。それらの物理的リソースは、インターネットのようなネットワーク402を介してユーザ401に提供することができる複数の仮想マシンのインスタンスまたは仮想サーバをホストするために使用することができる。例えば、ユーザが、サービスプロバイダの物理的リソースを使用してアプリケーションを実行したい場合、彼または彼女は、アプリケーションを展開して実行するために使用されるユーザのための仮想マシンをプロビジョニングすることを、サービスプロバイダに要求することができる。ユーザのアプリケーションに対する要求が高まるにつれて、ユーザは、負荷のバランスをとるためにより多くの仮想マシンがプロビジョニングされることを要求し、1つ以上の仮想プライベートネットワーク(VPN)などの作成を要求することができる。
【0036】
示された例示では、サービスプロバイダのリソースセンタ423は、特定のラック上の各ホストコンピューティングデバイスが、単一のトップオブラック(TOR)スイッチ(404、405)に接続されたホストコンピューティングデバイス(406、407、408、409、410)の1つ以上のラック421、422を備えることができる。これらのTORスイッチは、ホストコンピューティングデバイスをネットワークに接続することを可能にする1つ以上の他のスイッチ(424、425)にさらに接続することができる。本開示全体を通して使用されるように、ネットワークは、互いに通信することができるデバイスの任意の有線または無線のネットワークであることができ、制限するものではないが、インターネットまたは他のワイドエリアネットワーク(WAN)、セルラーネットワーク、ローカルエリアネットワーク(LAN)、ストレージエリアネットワーク(SAN)、イントラネット、エクストラネットなどを含む。リソースセンタは、任意の物理的または論理的リソースのグループ、例えばデータセンタ、サーバファーム、コンテンツ配信ネットワーク(CDN)ポイントオブプレゼンス(POP)などを含むことができる。
【0037】
実施形態によれば、各ホストコンピューティングデバイスは、顧客に代わって様々なアプリケーション及びサービスを実行するためにサービスプロバイダの顧客にプロビジョニングされた1つ以上の仮想マシンのインスタンス(413、414、415、416、417、418、419)をホストすることができる。各仮想マシンは、カーネル、ドライバ、プロセス管理などを含む独自のオペレーティングシステム(OS)をプロビジョニングすることができる。
【0038】
顧客が、仮想マシンのインスタンスを取得したいとき、顧客は、最初に彼らが使用したいVMのタイプを示す要求をサービスプロバイダに提出することができる。サービスプロバイダは、プロセスを遂行し、サービスプロバイダの物理的リソース(例えば、ホストコンピューティングデバイス)でホストされる仮想マシンのインスタンスをプロビジョニングすることができる。仮想マシンのインスタンスは、次に、サービスプロバイダのリソースを利用し、顧客に代わって、様々なアプリケーション及びサービスを実行するために使用することができる。
【0039】
実施形態では、一旦仮想マシンのインスタンスが稼働すると、仮想マシンのインスタンスをホストコンピューティングデバイスから別のホストコンピューティングデバイスに移動することが望ましい状況が存在する場合がある。例えば、サービスプロバイダは、同じホストコンピューティングデバイスにホストされている他の仮想マシンのインスタンスが原因で、仮想マシンがホストされているホストコンピューティングデバイスが、要求でオーバーロードしていること、を決定することができる。本明細書に記載の様々な実施形態では、本開示を通して記載されたセキュリティスキームは、サービスプロバイダが非対称(または対称)の暗号を使用して、データ(及びVM)を、ホストコンピューティングデバイスから別のホストコンピューティングデバイスに、暗号化かつ保護された様式で、移行することを可能にする。
【0040】
図5は、様々な実施形態に従って、仮想マシンのインスタンスを複数のホストコンピューティングデバイス間で安全に移行するための例示のプロセス500を示す。この図は、特定のシーケンスで機能的オペレーションを示しているが、プロセスは、示された特定の順序またはオペレーションに必ずしも限定されるものではない。当業者は、この図または他の図に描かれた様々なオペレーションが、変えられる、再配列される、並列で実行される、または様々な方法で適合化される、ことができることを理解するであろう。さらに、特定のオペレーションまたはオペレーションのシーケンスは、様々な実施形態の範囲から逸脱することなく、プロセスに追加する、またはそこから省略する、ことができる。また、本明細書に含まれるプロセスの実例は、当業者にプロセスフローの概念を実証することを意図し、異なるフローまたはシーケンスとして実現される、性能が最適化される、またはそうでなければ様々な仕方で変更される場合もある、コードの実行の実際のシーケンスを指定することではない。
【0041】
オペレーション501では、承認された関係者が、仮想マシンを1つのホストコンピューティングデバイスから別のホストコンピューティングデバイスへ移行するための要求を生成する。この要求は、前述のように、アプリケーションプログラミングインターフェース(API)を使用して、生成することができる。一実施形態によれば、要求は、送信元ホストコンピューティングデバイスのための鍵及び送信先ホストコンピューティングデバイスのための別の鍵を含むことができる。代替の実施形態では、承認された関係者は、2つの要求、すなわち、送信先ホストコンピューティングデバイスのための鍵を含む送信元ホットコンピューティングデバイスのための1つの移行要求と、送信元ホストコンピューティングデバイスのための鍵を含む送信先ホストコンピューティングデバイスのための別の移行要求と、を生成することができる。
【0042】
オペレーション502では、要求は、前述のように、承認された関係者の秘密鍵を使用して署名される。要求の署名は、要求の真正性を保証する。つまり、要求のいずれの受信者も、承認された関係者が実際に要求を生成した関係者であったことが保証される。
【0043】
オペレーション503では、要求(複数可)は、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスに提供される。要求は、APIを使用して、または従来技術で公知であるいくつかの他の技術によって、ホストデバイスに提出することができる。オペレーション504では、一旦デバイスが要求を受け取ると、送信元ホストコンピューティングデバイスは、送信先ホストコンピューティングデバイスに接触する。オペレーション505では、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスは、要求の一部として提供された鍵を使用することにより、安全なセッションを確立し、送信元及び送信先のマシンを認証する。一実施形態では、安全なセッションを確立することは、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスの間で送信されるデータを暗号化するために使用されるセッション鍵をネゴシエートすることを含むことができる。
【0044】
オペレーション506では、仮想マシンのインスタンスは、安全なセッションを使用して、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへ移行される。一実施形態では、仮想マシンを移行することは、状態情報を、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへ、コピーすることを含む。2つのデバイス間で送信される状態情報は、安全なセッションを確立することの一部としてネゴシエートされたセッション鍵を使用して、暗号化することができる。このように、送信を傍受する、または盗聴する可能性があるいずれの関係者も、そこに含まれる潜在的な機密性の高い情報を解読することができない。
【0045】
図6は、様々な実施形態に従って、ハイパーバイザーまたはカーネルで特権操作を行うために使用することができるAPIを提供するための例示のプロセス600を示す。
【0046】
オペレーション601では、1つ以上のアプリケーションプログラミングインターフェース(API)が設けられ、これは、署名された、及び/または、暗号化された要求をホストコンピューティングデバイスに提出するために使用することができる。ホストコンピューティングデバイスは、仮想化層(例えば、仮想マシンモニター、またはハイパーバイザーと一緒に動作するDom0)及びオペレーティングシステムのカーネルを有する1つ以上の仮想マシンを含むことができる。
【0047】
オペレーション602では、秘密鍵及び対応する公開鍵を備える非対称の鍵対が生成される。秘密鍵は、情報を暗号化するために使用することができ、公開鍵は、秘密鍵を使用して暗号化された情報を解読するために使用することができる。
【0048】
オペレーション603では、公開鍵をホストコンピューティングデバイスに格納する。例えば、公開鍵は、オペレーティングシステムのカーネル、またはハイパーバイザーにコンパイルすることができる。あるいは、鍵は、ホストコンピューティングデバイスのトラステッドプラットフォームモジュール(TPM)に格納することができる。
【0049】
オペレーション604では、秘密鍵は、ホストコンピューティングデバイスに対して外部にある安全な場所に格納する。この実施形態では、秘密鍵は、ホストコンピューティングデバイスに存在せず、その上に存在する一切の悪意のあるエージェントは、秘密鍵へのアクセス権を持っていない。
【0050】
オペレーション605では、ホストマシンは、ハイパーバイザー及び/またはオペレーティングシステムのカーネルで特権操作を実行する(例えば、移行要求を行う)ことを要求する要求を、APIを介して受け取る。実施形態によれば、受け取った要求に秘密鍵を使用して署名する。
【0051】
オペレーション606では、ホストコンピューティングデバイス(例えば、カーネルまたはハイパーバイザー)が、ホストコンピューティングデバイスに格納された公開鍵を使用して、要求の署名を確認することを試みる。オペレーション607に示されるように、要求の署名が確認される場合、特権操作は、ハイパーバイザー/カーネルで実行することができる。署名が公開鍵を使用して確認されない場合、特権操作が失敗する(すなわち、実行されない)。
【0052】
図7は、様々な実施形態に従って、要求の暗号化を利用する例示のプロセス700を示す。オペレーション701では、ホストコンピューティングデバイスは、非対称の鍵対を生成する。例えば、ホストコンピューティングデバイスのブートプロセスは、公開鍵及び対応する秘密鍵を生成することができる。オペレーション702では、公開鍵は、信頼できるソースに公開されている。一実施形態では、公開鍵は、要求を暗号化するために公開鍵を使用する要求する関係者に直接に提供することができる。別の実施形態では、公開鍵は、証明機関に提供することができ、証明機関は、カーネルまたはハイパーバイザーで特権操作を行うことを望む認証された関係者に証明を与えることができる。この実施形態では、証明機関は、証明に公開鍵を埋め込み、それ自体の秘密鍵を使用して証明に署名することができる。したがって、証明を受け取る関係者は、公開鍵が、実際にホストコンピューティングデバイスからのものであるとCAによって証明されていることを確認することができる。
【0053】
オペレーション703では、ホストコンピューティングデバイスは、特権操作を行うための要求を受け取ることができる。オペレーション704に示されるように、ホストコンピューティングデバイスは、次にホストコンピューティングデバイスに格納された秘密鍵を使用して要求を解読することを試みる。オペレーション705に示されるように、要求が、秘密鍵を使用することにより解読される場合、ホストコンピューティングデバイスは、カーネル/ハイパーバイザーで特権操作を実行することができる。
【0054】
本開示の種々の実施形態は、以下の付記を考慮して説明することができる。
1.コンピューティング操作を保護するためのコンピュータ実現方法であって
実行可能な命令で構成された1つ以上のコンピュータシステムの制御下で、
仮想化層をそれぞれ含む送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスにおいて、仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスへ移行するための少なくとも1つの要求であって、仮想マシンを移行するための許可を有する承認された関係者によって署名され、送信先ホストコンピューティングデバイスのための第1の鍵を含む少なくとも1つの要求、を受け取ることと、
要求が承認された関係者によって署名されたことを確認することと、
仮想化層内に移行鍵であって、少なくとも第1の鍵と、送信元ホストコンピューティングデバイスを送信先ホストコンピューティングデバイスに対して認証するために送信先ホストコンピューティングデバイスに送られる送信元ホストコンピューティングデバイスのための第2の鍵と、を使用することによって確立される移行鍵、を確立することと、
仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行することであって、
送信元ホストコンピューティングデバイスの仮想化層の外部に状態情報が通信される前に、ネゴシエートされた移行鍵を使用して仮想マシンに関連する状態情報を暗号化することと、
暗号化された状態情報であって、送信先ホストコンピューティングデバイスによって解読可能である暗号化された状態情報、を送信先ホストコンピューティングデバイスに送信することと、によって、仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行することと、を含む、方法。
2.仮想マシンを移行するための少なくとも1つの要求を受け取ることが、
第1の要求を送信元ホストコンピューティングデバイスによって受け取ること、をさらに含み、
送信先ホストコンピューティングデバイスが、第2の要求内の第2の鍵を受け取るように構成される、付記1に記載のコンピュータ実現方法。
3.仮想マシンを移行することが、
送信元ホストコンピューティングデバイスによって、送信先ホストコンピューティングデバイスに接触することと、
少なくとも第1の鍵及び第2の鍵を使用して、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスによって、相互認証を行うことと、をさらに含む、付記1に記載のコンピュータ実現方法。
4.ホストコンピューティングデバイスによって、保護された情報を送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための要求であって、送信先ホストコンピューティングデバイスのための送信先鍵を含む要求を、受け取ることと、
送信先鍵を使用して送信先ホストコンピューティングデバイスを認証し、かつ送信先ホストコンピューティングデバイスが、送信元ホストコンピューティングデバイスのための送信元鍵を使用して、送信元ホストコンピューティングデバイスを認証したことの指示を受け取る送信元ホストコンピューティングデバイスによって確立される鍵を、ホストコンピューティングデバイスによって、確立することと、
確立された鍵を使用し、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに、保護された情報を移行させることと、を含む、コンピュータ実現方法。
5.保護された情報が、送信元ホストコンピューティングデバイスで実行される仮想マシンである、付記4に記載のコンピュータ実現方法。
6.保護された情報を移行させることが、
確立された鍵を使用し、ランダムアクセスメモリ(RAM)の状態情報の少なくとも一部を、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに、コピーすることと、
送信元ホストコンピューティングデバイスの仮想マシンを停止させることと、
送信先ホストコンピューティングデバイスで仮想マシンを実行するための指示を送信先ホストコンピューティングデバイスに送ることと、をさらに含む、付記5に記載のコンピュータ実現方法。
7.送信元鍵が、送信元ホストコンピューティングデバイスの起動時に生成された鍵対の一部である公開鍵であり、送信元ホストコンピューティングデバイスが、公開鍵を管理サーバに送り、管理サーバが、公開鍵を使用し、保護された情報を移行するための要求を開始するように動作可能である、付記4に記載のコンピュータ実現方法。
8.鍵を確立することが、ディフィ・ヘルマンの鍵交換プロセスに従って、行われる、付記4に記載のコンピュータ実現方法。
9.保護された情報を移行させることが、
ランダムアクセスメモリ(RAM)の状態情報のセットを、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスにコピーすることであって、完了するまでに継続時間を要する、コピーすることと、
RAMの状態情報の変更であって、コピーすることを完了するまでに要する継続時間中に送信元ホストコンピューティングデバイスで行われた変更、のセットを、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに送信することと、をさらに含む、付記4に記載のコンピュータ実現方法。
10.承認されていない関係者が少なくとも1つの要求を提出することを防ぐために、保護された情報を移行するための要求が署名される、付記4のコンピュータ実現方法。
11.要求が、送信元ホストコンピューティングデバイス、または送信先ホストコンピューティングデバイスのうちの少なくとも1つのための証明をさらに含む、付記4に記載のコンピュータ実現方法。
12.実行可能な命令で構成された1つ以上のコンピュータシステムの制御下で、
送信元ホストコンピューティングデバイスで実行される仮想マシンであって、送信先ホストコンピューティングデバイスに移行される仮想マシン、を選択することと、
アプリケーションプログラミングインターフェース(API)を使用し、仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための少なくとも1つの要求であって、少なくとも1つの鍵を含む少なくとも1つの要求を提出することと、を含み、
少なくとも1つの要求に応じて、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスが、送信元ホストコンピューティングデバイス及び送信先ホストコンピューティングデバイスを認証するための少なくとも1つの鍵を使用することにより、安全なセッションを確立し、
仮想マシンが、少なくとも1つの要求に応じ、安全なセッションを使用して、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行される、コンピュータ実現方法。
13.少なくとも1つの要求が、
送信元ホストコンピューティングデバイスに関連する第1の鍵であって、送信先ホストコンピューティングデバイスに提供される第1の鍵と、
送信先ホストコンピューティングデバイスに関連する第2の鍵であって、送信元ホストコンピューティングデバイスに提供される第2の鍵と、をさらに含む、付記12に記載のコンピュータ実現方法。
14.少なくとも1つの要求を提出することが、
第1の要求であって、第2の鍵を含む第1の要求を、送信元コンピューティングデバイスに提出することと、
第2の要求であって、第1の鍵を含む第2の要求を送信先ホストコンピューティングデバイスに提出することと、をさらに含む、付記13に記載のコンピュータ実現方法。
15.少なくとも1つのプロセッサと、
少なくとも1つのプロセッサによって実行されると、
仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための少なくとも1つの要求であって、第1の鍵及び第2の鍵を含む少なくとも1つの要求、を受け取ることと、
安全なセッションであって、少なくとも第1の鍵及び第2の鍵を使用することによって確立される安全なセッションを、送信元ホストコンピューティングデバイスと送信先ホストコンピューティングデバイスとの間に、確立することと、
少なくとも1つの要求に応じ、安全なセッションを使用して、仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行することと、をコンピューティングシステムに行わせる命令を含むメモリと、を備える、コンピューティングシステム。
16.仮想マシンを移行することが、
安全なセッションを使用し、ランダムアクセスメモリ(RAM)の状態情報の少なくとも一部を、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに、コピーすることと、
送信元ホストコンピューティングデバイスの仮想マシンを停止させることと、
仮想マシンの新しいインスタンスを送信先ホストコンピューティングデバイスで開始することと、をさらに含む、付記15に記載のコンピューティングシステム。
17.仮想マシンを移行するための要求を受け取ることが、
第1の要求であって、第2の鍵を含む第1の要求を、送信元ホストコンピューティングデバイスによって受け取ることと、
第2の要求であって、第1の鍵を含む第2の要求を送信先ホストコンピューティングデバイスによって受け取ることと、をさらに含む、付記15に記載のコンピューティングシステム。
18.安全なセッションを確立することが、
安全なセッション中に、状態情報を送信元ホストコンピューティングデバイスと送信先ホストコンピューティングデバイスとの間で送信するために使用されるセッション鍵をネゴシエートすることと、
セッション鍵を使用し、送信元ホストコンピューティングデバイスと送信先ホストコンピューティングデバイスとの間で送信される情報を暗号化することと、をさらに含む、付記15に記載のコンピューティングシステム。
19.セッション鍵をネゴシエートすることが、ディフィ・ヘルマンの鍵交換プロセスに従って行われる、付記18に記載のコンピューティングシステム。
20.仮想マシンを移行することが、
ランダムアクセスメモリ(RAM)の状態情報のセットを、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスにコピーすることであって、完了するまでに継続時間を要する、コピーすることと、
RAMの状態情報の変更であって、コピーすることを完了するまでに要する継続時間中に仮想マシンによって送信元デバイスで行われた変更、のセットを、送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに送信することと、をさらに含む、付記15に記載のコンピューティングシステム。
21.第1のコンピューティングデバイスの仮想マシンに対応するメモリを読み取る、またはコピーするための少なくとも1つの要求であって、第2のコンピューティングデバイスから受け取られ、少なくとも1つの鍵を含む少なくとも1つの要求、を受け取ることと、
安全なセッションであって、少なくとも1つの鍵を使用することによって確立される安全なセッションを、第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間に、確立することと、
第1のコンピューティングデバイスと第2のコンピューティングデバイスとの間に確立された安全なセッションを使用し、第1のコンピューティングデバイスの仮想マシンに対応するメモリを、読み取る、またはコピーする、のうちの少なくとも1つをおこなうことと、を含む操作のセットを行うために、1つ以上のプロセッサによって実行可能な1つ以上の一連の命令を格納する非一時的コンピュータ可読記憶媒体。
22.第1のホストコンピューティングデバイスから第2のコンピューティングデバイスに仮想マシンに対応するメモリをコピーすることと、
仮想マシンに対応するメモリを第2のコンピューティングデバイスで分析することと、をさらに含む、付記21に記載の非一時的コンピュータ可読記憶媒体。
23.少なくとも1つの要求を受け取ることが、
第1のコンピューティングデバイスによって、第1の要求であって、第2のコンピューティングデバイスに関連する鍵を含む第1の要求を受け取ることと、
第2のコンピューティングデバイスによって、第2の要求であって、第1のコンピューティングデバイスに関連する鍵を含む第2の要求を受け取ることと、を含む、付記21に記載の非一時的コンピュータ可読記憶媒体。
24.少なくとも1つの要求が、第1のコンピューティングデバイスで実行される仮想マシンに対応するメモリを読み取るためのサービスによって提出される、付記21に記載の非一時的コンピュータ可読記憶媒体。
25.安全なセッションを確立することが、ディフィ・ヘルマンの鍵交換プロセスに従って、行われる、付記21に記載の非一時的コンピュータ可読記憶媒体。
【0055】
図8は、例示のコンピューティングデバイス800の全体的な構成要素のセットの論理的配設を示す。この例示では、デバイスは、メモリデバイスまたは要素804に格納することができる命令を実行するための少なくとも1つのプロセッサ802を備える。当業者には明らかであるが、このデバイスは、多くのタイプのメモリ、データストレージ、または非一時的コンピュータ可読記憶媒体、例えば、プロセッサ802によって実行されるプログラム命令のための第1のデータストレージ、画像またはデータのための別個のストレージ、他のデバイスと情報を共有するための取り外し可能なメモリなどを備えることができる。このデバイスは、通常、タッチスクリーンまたは液晶ディスプレイ(LCD)のようなあるタイプの表示要素806を備えることができるが、携帯型メディアプレーヤーのようなデバイスは、オーディオスピーカーを介するような他の手段によって、情報を搬送することができる。記載のように、多くの実施形態において、デバイスは、従来の入力をユーザから受け取ることができる少なくとも1つの入力要素808を含む。この従来の入力は、例えば、プッシュボタン、タッチパッド、タッチスクリーン、ホイール、ジョイスティック、キーボード、マウス、キーパッド、または任意の他のそのようなデバイスもしくは要素を含むことができ、それによって、ユーザは、コマンドをデバイスに入力することができる。しかしながら、いくつかの実施形態では、そのようなデバイスは、一切のボタンを備えることがなく、視覚的コマンド及び音声コマンドの組合せを介してのみ制御することができ、ユーザは、デバイスに接触することなく、デバイスを制御することができる。いくつかの実施形態では、
図8のコンピューティングデバイス800は、Wi−Fi(登録商標)、ブルートゥース、RF、有線または無線通信システムのような様々なネットワークを介して通信するための1つ以上のネットワークインターフェース構成要素808を備えることができる。多くの実施形態において、デバイスは、インターネットなどのネットワークと通信することができ、他のそのようなデバイスと通信することができる。
【0056】
記載のように、記載された実施形態に従って、異なる手法を様々な環境で実現することができる。例えば、
図9は、様々な実施形態に従って、態様を実現するための環境900の例示を示す。理解されることであるが、ウェブベースの環境は、説明の目的のために使用されたが、異なる環境は、様々な実施形態を実現するために、適宜、使用することができる。このシステムは、電子クライアントデバイス902を備え、これは、適切なネットワーク904上で要求、メッセージ、または情報を送信及び受信し、情報をデバイスのユーザに搬送して戻すように動作可能な任意の適切なデバイスを備えることができる。このようなクライアントデバイスの例示は、パーソナルコンピュータ、携帯電話、携帯型メッセージングデバイス、ラップトップ型コンピュータ、セットトップボックス、個人データ端末、電子ブックリーダ等を含む。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のそのようなネットワークもしくはそれらの組合せを含む、任意の適切なネットワークを含むことができる。そのようなシステムに用いられる構成要素は、ネットワークのタイプ及び/または選択された環境に少なくとも部分的に依存することができる。そのようなネットワークを介する通信のためのプロトコル及び構成要素は、公知であり、本明細書では詳細に議論されない。ネットワークを介した通信は、有線または無線接続、及びそれらの組合せによって可能にすることができる。この例示では、ネットワークは、インターネットを含むので、環境は、要求を受信し、かつそれに応答してコンテンツを提供するためのウェブサーバ906を含むが、他のネットワークの場合、当業者には明らかであるように、同様の目的を果たす代替のデバイスを使用することができる。
【0057】
実例の環境は、少なくとも1つのアプリケーションサーバ908及びデータストア910を含む。適切なデータストアからデータを取得する等のタスクを行うように相互作用することが可能である、連結またはそうでなければ構成することができる、複数のアプリケーションサーバ、層もしくは他の要素、プロセス、または構成要素が存在できることを理解されたい。本明細書で使用されるように、「データストア」という用語は、データを記憶し、それにアクセスし、それを取り出すことが可能な任意のデバイスまたはデバイスの組合せを指し、これは、任意の標準的な分散型またはクラスタ型環境において、データサーバ、データベース、データ記憶デバイス、及びデータ記憶媒体の任意の組合せ及び数を備えることができる。アプリケーションサーバは、必要に応じてデータストアと統合してクライアントデバイスの1つ以上のアプリケーションの態様を実行し、アプリケーションのデータアクセス及びビジネス論理の大部分を処理するための任意の好適なハードウェア及びソフトウェアを備えることができる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィックス、オーディオ及び/またはビデオのようなコンテンツを生成することができ、この例示では、これらは、HTML、XML、または別の適切な構造化言語の形態でウェブサーバによってユーザに提供することができる。全ての要求及び応答の処理、ならびにクライアントデバイス902とアプリケーションサーバ908との間のコンテンツの配信は、ウェブサーバ906によって処理することができる。本明細書で議論される構造化されたコードは、本明細書の他の箇所で議論される任意の適切なデバイスまたはホストマシンで実行することができるので、ウェブサーバ及びアプリケーションサーバは、必須ではなく、単に例示の構成要素であることを理解されたい。
【0058】
データストア910は、複数の別個のデータテーブル、データベースまたは他のデータ記憶機構、及び特定の態様に関するデータを記憶するための媒体を含むことができる。例えば、示されたデータストアは、製造データ912及びユーザ情報916を格納する機構を備え、製造側にコンテンツを提供するために使用することができる。データストアはまた、ログまたはセッションデータ914を格納するための機構を備えるように示される。ページの画像情報及びアクセス権情報等、データストアに格納する必要もある多くの他の態様が存在することができ、これは、必要に応じて上に列挙された機構のいずれか、またはデータストア910内の追加の機構に記憶することができることを理解されたい。データストア910は、それに関連する論理を介して動作可能であり、アプリケーションサーバ908から命令を受け取り、それに応じて、データを取得し、更新するまたはそうでなければ処理する。一例示では、ユーザは、あるタイプのアイテムのための検索の要求を提出することもある。この場合、データストアは、ユーザ情報にアクセスしてユーザの識別を確認することができ、カタログの詳細情報にアクセスして、そのタイプのアイテムについての情報を取得することができる。この情報は、次に、ユーザがユーザデバイス902のブラウザを介して見ることができるウェブページ上の結果一覧等で、ユーザに返すことができる。関心のある特定のアイテムの情報を、ブラウザの専用ページまたはウィンドウで見ることができる。
【0059】
各サーバは、サーバの全般的な管理または操作のための実行可能なプログラム命令を提供するオペレーティングシステムを備え、またサーバのプロセッサによって実行されると、意図された機能をサーバが行うことを可能にする命令を格納するコンピュータ可読媒体を備える。サーバのオペレーティングシステム及び全体的な機能のための適切な実現形態は、公知であり、または市販されており、具体的に本明細書の本開示に照らして、当業者によって容易に実現される。
【0060】
一実施形態における環境は、1つ以上のコンピュータネットワークまたは直接接続を使用し、通信リンクを介して相互接続された複数のコンピュータシステム及び構成要素を利用する、分散型コンピューティング環境である。しかしながら、当業者であれば、そのようなシステムが、
図9に示されたよりも少ない数または多い数の構成要素を有するシステムで同等にうまく動作できることを理解されたい。したがって、
図9のシステム900の図示は、本質的に実例としてみなされるべきであり、本開示の範囲を制限するものではない。
【0061】
本明細書で議論された、または示唆された、様々な実施形態は、多種多様の動作環境で実現することができ、これらは、ある場合には、いくつかのアプリケーションのうちのいずれかを動作するために使用することができる1つ以上のユーザコンピュータ、コンピューティングデバイス、またはプロセッシングデバイスを含むことができる。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップ型またはラップトップ型コンピュータ、ならびに、モバイルソフトウェアを実行し、多数のネットワーク及びメッセージプロトコルをサポートすることが可能な携帯電話、無線、及び携帯型デバイスなどの、任意の多数の汎用パーソナルコンピュータを備えることができる。このようなシステムはまた、開発及びデータベース管理などの目的のために、様々な市販のオペレーティングシステム及び他の公知のアプリケーションのうちのいずれかを実行する多数のワークステーションを備えることができる。これらのデバイスはまた、ダミーターミナル、シンクライアント、ゲーミングシステム、及びネットワークを介して通信することができる他のデバイスなどの他の電子デバイスを備えることができる。
【0062】
ほとんどの実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、及びAppleTalkなどの、多様な市販のプロトコルのいずれかを使用して通信をサポートするために、当業者によく知られているであろう少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及びそれらの任意の組合せであることができる。
【0063】
ウェブサーバを利用する実施形態においては、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Java(登録商標)サーバ、及びビジネスアプリケーションサーバを含む、あらゆる種類のサーバまたは中間層アプリケーションを実行することができる。サーバ(複数可)はまた、例えば、Java(登録商標)、C、C#、もしくはC++等の任意のプログラミング言語、またはPerl、Python、もしくはTCLなどの任意のスクリプト言語、ならびにそれらの組み合わせで書かれる1つ以上のスクリプトまたはプログラムとして実現することができる1つ以上のウェブアプリケーションを実行することなどによって、ユーザデバイスからの要求に応答してプログラムまたはスクリプトを実行することができる。サーバ(複数可)はまた、制限するものではないが、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)から市販のものを含むデータベースサーバも備えることができる。
【0064】
環境は、上述のように様々なデータストアと、他のメモリと、記憶媒体と、を備えることができる。これらは、様々な場所、例えば、コンピュータのうちの1つ以上に対してローカルである(かつ/もしくはそこに存在する)、またはネットワーク上のコンピュータのうちのいずれかもしくは全てから遠隔である、記憶媒体上に存在することができる。実施形態の特定のセットにおいて、情報は、当業者に熟知されたストレージエリアネットワーク(「SAN」)内に存在することができる。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を行うために必要な任意のファイルを、必要に応じてローカル及び/または遠隔で格納することができる。システムがコンピュータ化されたデバイスを含む場合、それぞれのそのようなデバイスは、バスを介して電気的に結合することができるハードウェア要素を備えることができ、これらの要素は、例えば、少なくとも1つの中央処理ユニット(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタ、またはスピーカー)を含む。このようなシステムはまた、ディスクドライブ、光学的記憶デバイス、及びランダムアクセスメモリ(RAM)または読み出し専用メモリ(ROM)などのソリッドステート記憶デバイス、ならびに取り外し可能記憶デバイス、メモリカード、フラッシュカードなどのような1つ以上の記憶デバイスを備えることができる。
【0065】
そのようなデバイスはまた、上述のように、コンピュータ可読記憶媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス)、及びワーキングメモリを備えることができる。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的及び/またはより恒久的に収容し、格納し、送信し、かつ読み出すための、遠隔、ローカル、固定、及び/または取り外し可能な記憶デバイスならびに記憶媒体を表すコンピュータ可読記憶媒体に、接続する、またはそれを受け取るように構成する、ことができる。システム及び様々なデバイスはまた、通常、多数のソフトウェアアプリケーション、モジュール、サービス、またはクライアントアプリケーションまたはウェブブラウザなどのオペレーティングシステム及びアプリケーションプログラムを含む少なくとも1つのワーキングメモリデバイス内に位置する他の要素を備える。代替の実施形態が、上述のものからの多数の変形を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され得、かつ/または特定の要素が、ハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、もしくはこれらの両方に実装され得る。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続を用いることができる。
【0066】
コードまたはコードの部分を収容するための記憶媒体及びコンピュータ可読媒体は、限定するものではないが、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶及び/または送信のための任意の方法または技術で実現される、揮発性及び不揮発性、取り外し可能及び取り外し不能の媒体などの記憶媒体及び通信媒体を含む、従来技術で公知である、または使用されている任意の適切な媒体を含むことができ、RAM、ROM、EEPROM(登録商標)、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光学的記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、かつシステムデバイスによってアクセスすることができる任意の他の媒体を含む。本明細書に提供される本開示及び教示に基づいて、当業者であれば、様々な実施形態を実現する他の仕方及び/または方法を理解するであろう。
【0067】
明細書及び図面は、したがって、限定的な意味ではなく実例としてみなされるべきである。しかしながら、特許請求の範囲に記載のように本発明のより広い精神及び範囲から逸脱することなく、様々な変更及び改変を行うことができることは明らかであろう。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]ホストコンピューティングデバイスによって、保護された情報を送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための要求であって、前記送信先ホストコンピューティングデバイスのための送信先鍵を含む要求を、受け取ることと、
前記送信先鍵を使用して前記送信先ホストコンピューティングデバイスを認証し、かつ前記送信先ホストコンピューティングデバイスが、前記送信元ホストコンピューティングデバイスのための送信元鍵を使用して、前記送信元ホストコンピューティングデバイスを認証したことの指示を受け取る前記送信元ホストコンピューティングデバイスによって確立される鍵を、ホストコンピューティングデバイスによって、確立することと、
前記確立された鍵を使用し、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに、前記保護された情報を移行させることと、を含む、コンピュータ実現方法。
[2]前記保護された情報が、前記送信元ホストコンピューティングデバイスで実行される仮想マシンである、[1]に記載のコンピュータ実現方法。
[3]前記保護された情報を移行させることが、
前記確立された鍵を使用し、ランダムアクセスメモリ(RAM)の状態情報の少なくとも一部を、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに、コピーすることと、
前記送信元ホストコンピューティングデバイスの前記仮想マシンを停止させることと、
前記送信先ホストコンピューティングデバイスで前記仮想マシンを実行するための指示を前記送信先ホストコンピューティングデバイスに送ることと、をさらに含む、[2]に記載のコンピュータ実現方法。
[4]前記送信元鍵が、前記送信元ホストコンピューティングデバイスの起動時に生成された鍵対の一部である公開鍵であり、前記送信元ホストコンピューティングデバイスが、前記公開鍵を管理サーバに送り、前記管理サーバが、前記公開鍵を使用し、前記保護された情報を移行するための前記要求を開始するように動作可能である、[1]に記載のコンピュータ実現方法。
[5]前記鍵を確立することが、ディフィ・ヘルマンの鍵交換プロセスに従って、行われる、[1]に記載のコンピュータ実現方法。
[6]前記保護された情報を移行させることが、
ランダムアクセスメモリ(RAM)の状態情報のセットを、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスにコピーすることであって、完了するまでに継続時間を要する、コピーすることと、
前記RAMの状態情報の変更であって、前記コピーすることを完了するまでに要する前記継続時間中に前記送信元ホストコンピューティングデバイスで行われた変更、のセットを、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに送信することと、をさらに含む、[1]に記載のコンピュータ実現方法。
[7]承認されていない関係者が少なくとも1つの前記要求を提出することを防ぐために、前記保護された情報を移行するための前記要求が署名される、[1]に記載のコンピュータ実現方法。
[8]前記要求が、前記送信元ホストコンピューティングデバイス、または前記送信先ホストコンピューティングデバイスのうちの少なくとも1つのための証明をさらに含む、[1]に記載のコンピュータ実現方法。
[9]少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されると、
仮想マシンを送信元ホストコンピューティングデバイスから送信先ホストコンピューティングデバイスに移行するための少なくとも1つの要求であって、第1の鍵及び第2の鍵を含む少なくとも1つの要求、を受け取ることと、
安全なセッションであって、少なくとも前記第1の鍵及び前記第2の鍵を使用することによって確立される安全なセッションを、前記送信元ホストコンピューティングデバイスと前記送信先ホストコンピューティングデバイスとの間に、確立することと、
前記少なくとも1つの要求に応じ、前記安全なセッションを使用して、前記仮想マシンを前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに移行することと、をコンピューティングシステムに行わせる命令を含むメモリと、を備える、コンピューティングシステム。
[10]前記仮想マシンを移行することが、
前記安全なセッションを使用し、ランダムアクセスメモリ(RAM)の状態情報の少なくとも一部を、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに、コピーすることと、
前記送信元ホストコンピューティングデバイスの前記仮想マシンを停止させることと、
前記仮想マシンの新しいインスタンスを前記送信先ホストコンピューティングデバイスで開始することと、をさらに含む、[9]に記載のコンピューティングシステム。
[11]前記仮想マシンを移行するための前記要求を受け取ることが、
第1の要求であって、前記第2の鍵を含む第1の要求を、前記送信元ホストコンピューティングデバイスによって受け取ることと、
第2の要求であって、前記第1の鍵を含む第2の要求を、前記送信先ホストコンピューティングデバイスによって受け取ることと、をさらに含む、[9]に記載のコンピューティングシステム。
[12]前記安全なセッションを確立することが、
前記安全なセッション中に、状態情報を前記送信元ホストコンピューティングデバイスと前記送信先ホストコンピューティングデバイスとの間で送信するために使用されるセッション鍵をネゴシエートすることと、
前記セッション鍵を使用し、前記送信元ホストコンピューティングデバイスと前記送信先ホストコンピューティングデバイスとの間で送信される情報を暗号化することと、をさらに含む、[9]に記載のコンピューティングシステム。
[13]前記セッション鍵をネゴシエートすることが、ディフィ・ヘルマンの鍵交換プロセスに従って行われる、[12]に記載のコンピューティングシステム。
[14]前記仮想マシンを移行することが、
ランダムアクセスメモリ(RAM)の状態情報のセットを、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスにコピーすることであって、完了するまでに継続時間を要する、コピーすることと、
前記RAMの状態情報の変更であって、前記コピーすることを完了するまでに要する継続時間中に前記仮想マシンによって前記送信元デバイスで行われた変更、のセットを、前記送信元ホストコンピューティングデバイスから前記送信先ホストコンピューティングデバイスに送信することと、をさらに含む、[9]に記載のコンピューティングシステム。
[15]第2のコンピューティングデバイスであって、少なくとも1つの第2のプロセッサと、前記少なくとも1つの第2のプロセッサによって実行されると、
前記送信元ホストコンピューティングデバイスで実行される前記仮想マシンであって、前記送信先ホストコンピューティングデバイスに移行される前記仮想マシン、を選択することと、
アプリケーションプログラミングインターフェース(API)を使用して、前記仮想マシンを移行するための前記少なくとも1つの要求であって、前記第1の鍵及び前記第2の鍵を含む前記少なくとも1つの要求を提出することと、を前記第2のものに行わせる第2の命令を含む第2のメモリと、を備える第2のコンピューティングデバイスをさらに備える、[9]に記載のコンピューティングシステム。