(57)【特許請求の範囲】
【請求項１】
以下を備えるコンピュータシステム：
プロセッサを備え、仮想マシンをサポートするために動作するホストコンピュータクラウド；
ネットワークを介して前記クラウドと通信し、ユーザーのコントロールの下にあるエージェント；及び
ネットワークを介して前記クラウドと通信するキー管理サーバー。
ここで、前記クラウドは、
不揮発性の記憶媒体上に暗号化された仮想ディスクの形態で前記仮想マシンを保存するために動作し、
前記エージェントによる命令を受けたときに、前記キー管理サーバーからのディスクラッピングキーを要求するために動作し、及び
前記ディスクラッピングキーを用いて前記暗号化されたディスクを復号化するために動作する。
【請求項２】
請求項１に記載のコンピュータシステムであって、
前記暗号化された仮想ディスクが非暗号化プリブート環境を含み、そして、前記キー管理サーバーからの前記ディスクラッピングキーを要求するのが該プリブート環境であるシステム。
【請求項３】
請求項１に記載のコンピュータシステムであって、前記ディスクラッピングキーの要求が、前記エージェントによって前記クラウドに提供される認証情報を含むシステム。
【請求項４】
請求項１に記載のコンピュータシステムであって、
前記クラウドは、前記エージェントとの第一のプライベート通信チャンネルと確立するために動作し、
前記エージェントは、前記クラウドに認証情報を提供するために前記第一のプライベート通信チャンネルを使用するために動作し、
前記クラウドは、前記仮想マシンのプリブート環境に前記認証情報を提供するために動作し、
前記プリブート環境は、前記クラウドと共有しない第二のプライベート通信チャンネルを確立するために動作し、及び
前記プリブート環境は、前記第二のプライベートチャンネルを使用して前記キー管理サーバーに前記認証情報を提示し、そして、前記ディスクラッピングキーを要求するために動作するシステム。
【請求項５】
請求項１に記載のコンピュータシステムであって、
前記クラウドのインフラは、ハードウェアであるセキュリティ上信頼された装置を備え、
該装置は、前記仮想マシンのプリブート環境の完全性（ｉｎｔｅｇｒｉｔｙ）を認証するために動作し、
前記プリブート環境は、前記ディスクラッピングキー要求の一部として前記セキュリティ上信頼された装置からの認証を前記キー管理サーバーに提示するために動作し、及び
前記キー管理サーバーは、前記提示された認証を確認した後のみ、前記要求されたディスクラッピングキーを提供するために動作するシステム。
【請求項６】
クラウド内に仮想マシンのセキュリティを確保するための方法であって、以下のステップを含む方法：
暗号化されたディスクイメージをサーバー上に前記クラウドが設けるステップであって、前記サーバーは、前記暗号化されたディスクイメージを復号化するためのキーを有さないステップ；
前記ディスクイメージから仮想マシンを起動するための命令を、ネットワークを介して、エージェントから前記クラウドが受け取るステップであって、前記命令は、前記エージェントを認証するための情報を含むステップ；
前記暗号化されたディスクイメージを復号化するためのディスクラッピングキーを、ネットワークを介して、キーマネージャーから前記クラウドが要求するステップであって、前記要求は、前記サーバー又は前記ディスクイメージを認証するための情報、及び前記エージェントを認証するための少なくとも幾つかの情報を含むステップ；並びに
動作する仮想マシンを形成するために前記暗号化されたディスクイメージを前記クラウドが復号化するステップ。
【請求項７】
請求項６に記載の方法であって、前記サーバーから前記ディスクラッピングキーを前記クラウドが削除するステップを更に含む方法。
【請求項８】
請求項６に記載の方法であって、更に以下のステップを含む方法：
暗号化されたディスクイメージとして前記仮想マシンを暗号化するためのキーを前記ネットワークを介して前記キーマネージャーから前記クラウドが要求するステップであって、前記要求は、前記サーバー又は前記ディスクイメージを認証するための情報を含むステップ；
前記キーを用いて、前記暗号化されたディスクイメージを前記クラウドが生成するステップ；
前記サーバーから前記キーを前記クラウドが削除するステップ；及び
前記仮想マシンを前記クラウドがシャットダウンするステップ。
【請求項９】
請求項６に記載の方法であって、更に以下のステップを含む方法：
前記クラウドによって、前記エージェントとの第一のプライベート通信チャンネルを確立するステップ；
前記第一のプライベート通信チャンネルを介して前記エージェントから認証情報を前記クラウドにおいて受け取るステップ；
前記仮想マシンのプリブート環境に前記認証情報を前記クラウドが提供し、第二のプライベート通信チャンネルを前記プリブート環境によって確立するステップ；並びに、
前記第二のプライベートチャンネルを用いて、前記プリブート環境が、前記キーマネージャーに対して、前記認証情報を提示し、及び前記ディスクラッピングキーを要求するステップ。
【請求項１０】
請求項６に記載の方法であって、前記クラウドのインフラが、ハードウェアであるセキュリティ上信頼された装置を備え、
該装置は、前記仮想マシンのプリブート環境の完全性（ｉｎｔｅｇｒｉｔｙ）を認証するために動作し、
該マシンは前記プリブート環境を備え、該環境は、
前記ディスクラッピングキーの要求の一部として、前記セキュリティ上信頼された装置からの認証を前記キーマネージャーへ提示し、
前記キーマネージャーが前記提示された認証を確認した後のみ、前記要求されたディスクラッピングキーを受け取る方法。
【請求項１１】
クラウド内の仮想マシンのセキュリティを確保するための方法であって、以下のステップを含む方法：
暗号化されたディスクイメージから仮想マシンを起動するための命令をネットワークを介して、ユーザーのコントロールの下にあるエージェントが送るステップであって、前記命令が認証情報を含むステップ；
前記命令に関連する情報をキーマネージャーに前記エージェントが提供し、前記暗号化されたディスクイメージを復号化するためのキーを、対応する認証情報を含む要求に応答して、ネットワークを介して提供することを前記キーマネージャーが行うことを許可するステップ。
【請求項１２】
請求項１１に記載の方法であって、以下のステップを含む方法：
前記クラウドとの第一のプライベート通信チャンネルを前記エージェントが確立するステップ；
前記第一のプライベート通信チャンネルを用いて前記クラウドに認証情報を前記エージェントが提供するステップ；
前記仮想マシンのプリブート環境と直接通信する第二のプライベート通信チャンネルを前記エージェントが確立するステップ；並びに
前記第二のプライベートチャンネルを用いて、前記認証情報と及び前記キーの要求とを前記キーマネージャーにおいて受け取るステップ。
【請求項１３】
請求項１１に記載の方法であって、
前記クラウドのインフラは、ハードウェアであるセキュリティ上信頼された装置を備え、該装置は、前記仮想マシンのプリブート環境の完全性を認証するために動作し、
以下のステップを含む方法：
前記キーの要求の一部として、前記セキュリティ上信頼された装置からの認証を、前記プリブート環境から前記エージェントが受け取るステップ；及び
前記提示された認証を確認した後のみ、前記要求されたキーを前記エージェントが提供するステップ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願へのクロスリファレンス
本出願はＤｕｎｎらによる米国仮特許出願の利益を主張するものである（出願番号６１／４３１，６８７、出願日２０１１年１月１１日）。
【背景技術】
【０００２】
プログラム及び／又はデータを許可なしでコピーを行うことからコンピュータシステムを保護する目的で、「フルディスク暗号化」を利用することが提案されてきた。コンピュータがアクティブ状態になっていないとき、完全な長期不揮発性ストレージ（典型的にはハードディスク）は、小さなプリブート環境（ｐｒｅ−ｂｏｏｔ  ｅｎｖｉｒｏｎｍｅｎｔ、ＰＢＥ）を除いて暗号化される。通常、前記プリブート環境は、ブートストラップローダと充分な機能コードを有しており、実行して１以上のデータ暗号化鍵（ＤＥＫ）又は「ディスク・ラッピング・キー」（ＤＷＫ）を手に入れて使用し、ハードディスクの残り部分を復号化することを認証する。前記プリブート環境は、ハードディスクの第二のセクションのみを代わりに復号化することができ、該セクションでは、典型的には、前記ディスクの更なる部位に対してより精巧なアクセスコントロールを伴って起動する完全なオペレーティングシステムが含まれる。
【０００３】
例えば、前記認証には、コンソールインターフェースにおいてパスワードを入力することを要求したり、また前記パスワードが正しいことを確認したりすることを含むことができる。前記認証は、ＵＳＢデバイス、スマートカード、若しくは他のハードウェアトークンの存在を検出したり、並びに前記トークンが正しいことを確認したり、並びに／又は前記トークンからの実際のＤＥＫをフェッチしたりすることを含むことができる。前記認証は人間のオペレーターの生体データを入手したり確認したりすることを含むことができる。そして、典型的には、前記認証は、必要なハードウェアインターフェースをアクティブにして、認証入力を入手することを含む。他の認証機構を用いることもでき、ネットワークを用いた認証機構も含まれ、例えば、ケルベロス認証プロトコル、又はＬＤＡＰ及びＲＡＤＩＵＳ等のアクセスプロトコルでの認証等が挙げられる。
【０００４】
上述した手順により、物理的コンピュータを電源が入っていない状態から起動する際の安全性を高めることができる。その理由としては、パスワードやキーを読み取るか盗むかに関係なく、或いは以前盗んだ又は偽造したパスワードやキーを提示することによって認可されていない起動を獲得するかどうかに関係なく、マルウェアやハッカーにしてみれば、プリブート認証プロセスに侵入する機会がほとんどないからである。
【０００５】
しかし、仮想マシンの場合、外的なセキュリティを保証することはできない。「仮想マシン」は、ホストコンピュータ上で稼動する「ハイパーバイザ」のコントロールの下で、「ホスト」コンピュータの一部分内で稼動する巨大な自己含有（ｓｅｌｆ−ｃｏｎｔａｉｎｅｄ）環境である。ハイパーバイザーは、仮想マシンからホストコンピュータのハードウェアリソースへのアクセスを提供し、コントロールし、及び管理する。仮想マシンは、オペレーティングシステム、又は物理的なコンピュータの環境とは異なる他の環境をエミュレートするために使用することができる。仮想マシンは、セキュリティ又はリソース割り当て目的で、仮想マシン内で稼動しているプロセスを、他の仮想マシン内、又はホストコンピュータで本来稼動しているプロセスから分離するために使用することができる。仮想マシンは、複合的な理由により使用することができる。
【０００６】
ホストコンピュータはアクティブでなくてはならず、そして、ハイパーバイザは、仮想マシンが作成可能になる前であっても稼動していなければならない。こうした理由から、ハイパーバイザのセキュリティ及び完全性（ｉｎｔｅｇｒｉｔｙ）並びにホストコンピュータレベルでの他の機能性については常に保証されているわけではない。特に、近年、「クラウド」コンピューティング内で仮想マシンを使用することが提案されてきている。クラウドコンピューティングでは、リソースプロバイダが、インターネット、又は他のリモート経路を介してアクセス可能なサーバーを管理することができ、様々なクライアントに該サーバー上のリソースを割り当てる。或いは、リソースプロバイダーは、サードパーティから入手したリソースを収集して再配分することができる。提供されるリソースは、プロバイダーのプログラムを用いたクライアントのデータの保存及び／又は処理から、クライアントが仮想マシン全体を実行させることができる範囲の空間や処理能力を供給することまで多岐にわたることができる。そして、仮想マシンの所有者は、ホスト環境又は該環境上でプロセスを実行している他のクライアントに対するコントロールをほとんど行わず、そして実際これらについてほとんど知ることもない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
これらの条件の下、仮想マシン全体のコピーが消失したり盗まれたりする事態に陥ったり、あるいはこうしたことも含めて、対象となる仮想マシンのセキュリティが破られるリスクは相当なものとなる。
【課題を解決するための手段】
【０００８】
本発明の概要
本発明の一実施形態によれば、仮想マシンとして起動されるディスクイメージのフルディスク暗号化のためのシステム、方法、及びコンピュータプログラムを提供する。プリブート環境は、ウェブ若しくは他のネットワーク、又は他のリモートアクセスインターフェースを備えており、これらは、安全なプロトコル（例えば、ＨＴＴＰＳ、ＳＳＨ、又はＩＰＳＥＣ）を用いて、好ましくはクラウドインフラの一部として提供された安全な管理用インターフェースを介して、ユーザーのローカル端末と通信をしている。プリブート環境は、自分自身に関してユーザーに認証を行い、並びにユーザーも前記プリブート環境に認証を行う。両者が他方に対して十分に認証された場合のみ、ディスクイメージを復号化するためのディスクラッピングキー（ＤＷＫ）が仮想マシンのプリブート環境にアップロードされる。ディスクラッピングキーは、ユーザーのローカルコンピュータ、又は別のキー管理サーバー若しくは装置からアップロードすることができる。
【０００９】
更なる実施形態において、プリブート環境は、認証プロセス中にユーザーが提供した情報を用いて、キー管理サーバーからのディスクラッピングキーを要求する。プリブート環境−ユーザー間とプリブート環境−キー管理サーバー間で別の通信経路が使用されている。そのため、認証プロセス及び復号化プロセスに関する完全な情報を手に入れるためには、攻撃者は両方の経路を傍受することが必要になるだろう。
【００１０】
本発明の他の態様では、方法、コンピューター及びコンピューターシステム、コンピュータープログラム、並びにコンピュータープログラムを含む非一時的コンピュータ読取可能記憶媒体が含まれる。
【００１１】
本発明に係る上述の及び他の態様、特徴、及び利点については、以下の図面に関連して提示される、本発明のより具体的な以下の実施形態の記述からさらに明らかにすることができる。
【図面の簡単な説明】
【００１２】
【図１】コンピューターシステムの実施形態の概念図である。
【図２】フローチャートである。
【発明を実施するための形態】
【００１３】
好ましい実施形態の詳細な説明
本発明の例示的な実施形態に関する下記の詳細な説明及び添付した図面を参照することにより、本発明の方法及び装置に関する様々な特性及び利点をより深く理解することができるであろう。これらの図面は、企図した方法及び装置の実施形態を描写しているが、対象分野における当業者にとって明白な代替手段や等価の実施形態を排除するものとして解釈するべきものではない。
【００１４】
まずは、図１を参照されたい。クラウドコンピューティングシステムに係る一実施形態が参照番号２０として本明細書に表されている。該システムは、クラウド（２２）を備えており、該クラウドは、複数のサーバー（２４）を備えており、各サーバーは、上記以外の装置のうち以下を備えている：プロセッサー（２６）、入出力装置（２８、３０）、ランダムアクセスメモリ（ＲＡＭ）（３２）、リードオンリメモリ（ＲＯＭ）（３４）、及び磁気ディスク又は他の長期ストレージ（３６）。サーバー（２４）は、クラウドコントローラー（３８）を介して、外部のネットワーク又は他の通信媒体（４０）と接続されている。
【００１５】
また、外部ネットワーク（４０）には、エンタープライズ（ｅｎｔｅｒｐｒｉｓｅ、４６）のエンタープライスエージェント（ｅｎｔｅｒｐｒｉｓｅ  ａｇｅｎｔ、４２）及びエンタープライスキーマネージャー（４４）が接続されている。前記エンタープライスエージェント（４２）自身は、サーバー（２４）と一般的に構造が類似したコンピュータであってもよいが、入出力装置（２８、３０）を備えるコンソール（４８）を介して人間の管理者による直接のコントロールの下に置かれる。キーマネージャー（４４）自身は、サーバー（２４）と一般的に構造が類似したコンピュータであってもよいが、コンソール（４８）での人間の管理者による直接又は間接のコントロールの下に置かれる。典型的なクラウド（２２）は数多くの独立したエンタープライスエージェント（４２）と接続することができる。そして、該エージェントのうちの幾つか又は全ては自身のキーマネージャー（４４）を所有することができる。しかし、簡明にする目的で、本明細書では、単一のエンタープライスエージェント（４２）及びキーマネージャー（４４）について詳細に記載・図示する。
【００１６】
クラウド（２２）の動作において、クラウドコントローラー（３８）はクラウド（２２）内の利用可能なリソースを追跡する。そして、エージェント（４２）を介したエンタープライズ（４６）からの要求を満たすためにリソースを割り当てる。また、クラウドコントローラー（３８）は、エンタープライス（４６）に既に割り当てられたリソースを追跡する。そして、エンタープライスエージェント（４２）が、透過的に利用可能にした前記リソースを要求したときに、確認したうえで、特定の割り当てられたリソースにアクセスする資格を特定のエンタープライスエージェント（４２）に与えることを保証する。また、エンタープライスエージェント（４２）が属しているエンタープライス（４６）のクラウド動作が、第三者にサービスや情報を提供することを含む場合には、クラウドコントローラー（３８）は、前記第三者とエンタープライスエージェント（４２）に割り当てられたリソースとの間での通信も管理することができる。クラウドコントローラー（３８）自身は、１以上のサーバー（２４）又は構造的に類似したコンピュータデバイスであってもよい。クラウド（２２）用の様々な構造及びそれらの操作方法が周知となっている。簡略化を目的としてこれ以上の説明は割愛する。
【００１７】
次に図２を参照されたい。クラウドコンピューティングの方法の一例において、ステップ（１０２）では、クラウド（２２）が構築され、組織化され、そして、稼動する。これらは複雑な手続ではあるが、当業者に知られた態様で実行することができる。そこで、簡略化を目的としてこれ以上の詳細な説明は割愛する。
【００１８】
ステップ（１０４）では、エンタープライス（４６）は、エンタープライスエージェント（４２）を介して、クラウド（２２）からの仮想マシン（ＶＭ、５０）用のリソースを要求する。クラウド（２２）は、クラウドコントローラー（３８）の動作を介して、以下の操作を行う：使用していないときに仮想マシンをディスクイメージとして保存することができるストレージ（３６）を割り当てること；使用しているときに仮想マシンを実行するためのプロセッサー容量（２６）及びＲＡＭ（３２）の割り当てを許可すること。ステップ（１０６）では、エンタープライスエージェント（４２）の管理者が仮想マシン（５０）のディスクイメージ（５２）をクラウドストレージ（３６）にアップロードする。ディスクイメージ（５２）は、小さなプリブート環境（ＰＢＥ、５４）を除いて強力な暗号化が行われる。周知ではあるが、暗号化の強度は状況に応じて選択することができる。一般的に、暗号化の強度は、典型的なパスワード（典型的には数十ビット以下）と比べて、少なくともかなり強力であるべきである。また、暗号化の強度は、攻撃者にとっての価値を上回る、又は復号化に成功することにより生じるエンタープライス（４６）への被害を上回るリソースを消費することなくブルートフォースアタックを実行することがコンピューター的に不可能であるようにするのに少なくとも充分であってもよい。書込みの際に、１２８ビットの対称暗号化又はその均等物は、多くの目的に適する可能性がある。しかし、ブルートフォースアタックに利用可能なコンピュータ処理能力は時代と共に増加することが予想される。そこで、暗号化の強度を挙げて補強することができる。ディスクイメージ（５２）は、たとえ暗号化された形態や難読化された形態であっても復号鍵（キー）を含まない。また、エンタープライスエージェント（４２）の管理者は、証明キー（例えば、ディスクイメージ（５２）用のチェックサム、ハッシュ、又は他の認証データ）をクラウドコントローラー（３８）にアップロードする。
【００１９】
或いは、暗号化されたディスクイメージ（５２）は、クリーンな仮想マシン（５０）をクラウド（２２）内で起動し、エンタープライスエージェント（４２）から必要なソフトウェア及びデータを該マシンに提供することにより作成することができる。そして、仮想マシン（５０）は、エンタープライスエージェント（４２）により提供された証明書を用い、そして、安全な接続を用いて、キーマネージャー（４４）と接続し、自身のマシンを暗号化するためのキーを入手する。こうしたアプローチは、仮想マシン（５０）のセットアップの一部として該マシンを拡張して構築することが必要な場合には、好ましい可能性がある。暗号化されたディスクイメージの形態で、仮想マシン（５０）が最初から設けられている場合には、仮想マシン（５０）が最初に起動されるときに構築作業が行われるであろう。
【００２０】
ステップ（１０８）では、エンタープライスエージェント（４２）の管理者は、仮想マシン（５０）を稼動させることを望んでいる。エンタープライスエージェント（４２）は、クラウドコントローラー（３８）との安全な接続を確立する。典型的には、本発明の方法及びシステムとは独立して既に確立されたプライベートチャンネルシステムを用いる。こうしたチャンネルでは、セキュアソケットレイヤー（ＳＳＬ）又はＩＰＳｅｃ等の一般的に利用可能な通信保護プロトコルを用いることができる。或いは、エンタープライスエージェント（４２）の管理者とクラウドコントローラー（３８）との間で事前に合意された別の保護形態を用いることができる。現在商業用に稼動している、あるクラウドコンピューティングシステムでは、クラウドコントローラーによって発行された（又は証明された）証明書を用いたＨＴＴＰＳ及び／又はＳＳＨを利用している。このようにして、エンタープライスエージェント（４２）とクラウドコントローラー（３８）とが該チャンネルを用いて互いに通信することができる。エンタープライスエージェント（４２）は、クラウドコントローラー（３８）に命令（コマンド）を送り、仮想マシン（５０）を起動するようクラウドコントローラー（３８）を変更する。前記命令には、エンタープライスエージェント（４２）の証明書を認証することも含まれる。前記命令には、前記通信上でのレコードアンドリプレイ攻撃（ｒｅｃｏｒｄ−ａｎｄ−ｒｅｐｌａｙ  ａｔｔａｃｋｓ）を防ぐために、ノンス（ｎｏｎｃｅ、ｎｕｍｂｅｒ  ｕｓｅｄ  ｏｎｃｅ）、又は他のセッション識別子を含めることができる。ノンスのほかに、エンタープライスエージェント（４２）は、一度だけ使用可能なＳＳＬクライアント証明書（及び秘密鍵）を提供することができる。そして、キーマネージャー（４４）は、前記証明書が以降のステップ（１１６）において提示されることを予想し、一度だけ使用することを許可する。クラウドコントローラー（３８）が完全には信頼されていない場合の予防策として、これらの最初の認証データを暗号化形態で提供することができる。そして、復号鍵は、非暗号化形態で（任意では難読化形態でもよいが）、仮想マシン（５０）のプリブート環境内に存在しなければならない。
【００２１】
その後、ＶＭ（５０）は、第二のプライベートチャンネルをセットアップし、該チャンネルはエンタープライスエージェント（４２）と直接につながっており、例えクラウドコントローラー（３８）であっても該コントローラーから保護されている。該実施形態において、エンタープライスエージェント（４２）とゲストＶＭ（５０）とのチャンネルはＨＴＴＰＳリンクである。ＳＳＬのクライアント側がゲストＶＭ（５０）から開始されると仮定して、クライアント証明は、静的に（ゲストごとに）割り当てられたキーペアか、上述したような一度限りのキーペアの何れかであってよい。
【００２２】
ＳＳＬ認証に加えて、ゲストＶＭ（５０）は、該マシンが稼動している環境の「測定値」（ｍｅａｓｕｒｅｍｅｎｔ）を収集する。該測定値は、マシン環境のサイン証明として提示される。まず、測定値として、仮想化環境に関するメタデータが含まれ、例えばＶＭのＩＰアドレス、クラウドインフラ名称、場所、及びＶＭインスタンスＩＤが挙げられる。これらは、全て、仮想化メタデータインターフェースを介して集められる。
【００２３】
前記メタデータを介して提供された測定値は、どこでゲストＶＭ（５０）が起動中であるかについての証明となる。即ち、ゲストＶＭの下で稼動しているハードウェアプラットホーム、ＢＩＯＳコード、及びハイパーバイザを測定している。このことにより、予想外のものがインフラの一部として稼動していないこと、そして、インフラの単一かつ特定のバージョンが稼動していることを暗号的に保証している。サインされた証明をキーマネージャーが受け取ると、最初に、該キーマネージャーは、署名を確認して、該署名が信頼できる筋（インフラの認証局）から来たことを確認する。次に、ホワイトリスト内にある一群の知られた良好なフィンガープリントと測定値（最終的にはハッシュフィンガープリント）とを比較する。前記測定値は、ＴＰＭ測定と等しい（又は結果的に等しい）ものを意図する。そして、別の実施形態では、実際、環境の暗号的な測定値について、仮想化サーバーのＴＰＭチップによってサインすることができる。
【００２４】
こうして確認された測定値により、ＶＭ（５０）がどこで稼動しているかに関するハードウェア・ルート・オブ・トラスト・バック（ｈａｒｄｗａｒｅ−ｒｏｏｔ−ｏｆ−ｔｒｕｓｔ  ｂａｃｋ）がエンタープライスエージェント（４２）に正確に提供される。その後、レポートされた環境が、エンタープライスエージェントが予想した環境のあるべき状態と一致しない場合には、エンタープライスエージェント（４２）は、ＶＭ（５０）の起動をキャンセルし、または他の防衛手段を講じる。
【００２５】
ステップ（１１０）において、クラウドコントローラー（３８）は、ディスクイメージ（５２）用の証明キーを確認し、適切なプロセッサ（２６）及びＲＡＭ（３２）リソースを割り当て、仮想マシン（５０）を初期化し、並びにプリブート環境（５４）を起動する。この段階では、プリブート環境（５４）は別として、仮想マシン（５０）は依然として暗号化されている。ディスクイメージ（５２）の暗号化された部分は、クラウドコントローラー（３８）によって仮想マシン（５０）にマッピングされた関連ストレージを用いて、ディスクストレージ（３６）上で物理的に維持することができる。また、クラウドコントローラー（３８）は、ステップ（１０８）で受け取った命令の少なくとも一部をプリブート環境（５４）に渡す。
【００２６】
ステップ（１１２）では、エンタープライスエージェント（４２）が、第二のプライベートチャンネルを用いて新たに起動された仮想マシン（５０）を呼び出し、ＶＭ（５０）のＩＰアドレス及び他の特定情報を手に入れる。一旦、第二のプライベートチャンネルが確立されると、通信は、たとえクラウドコントローラー（３８）であっても該コントローラに対して保護される。
【００２７】
ステップ（１１４）では、エンタープライスエージェント（４２）によって提供された証明書をプリブート環境（５４）が確認して、適切に起動されたことを保証する。プリブート環境（５４）は、その後、キーマネージャー（４４）と接続して、自分自身の身元証明書と、ノンスを含むエンタープライスエージェント（４２）から受け取った起動命令の少なくとも一部とを提示する。また、プリブート環境（５４）は、前記メッセージに自分自身のノンスを追加することもできる。
【００２８】
プリブート環境は、概ね従来のものであってよく、簡略化を目的として不必要な詳述は割愛する。当業者が読めば明らかではあろうが、適切なカスタマイズが幾つかある。例えば、任意のユーザー入力が第二のプライベートチャンネルを介して到着するため、プリブート環境は、ローカルユーザーインターフェースデバイス用のハードウェアデバイスドライバを必要としないが、第二のプライベートチャンネル用の適切なインターフェースを有しており、第二のプライベートチャンネルを介して特定のデータを回収するようにプログラムされている。
【００２９】
ステップ（１１６）において、キーマネージャー（４４）は、プリブート環境（５４）によって提示された証明書を確認する。キーマネージャー（４４）は、ノンスのコピー又は更なるワンタイムパスワードのコピーをエンタープライスエージェント（４２）から直接受け取ったり、要求したりすることができる。或いは、前記ノンスが擬似乱数である場合には、キーマネージャー（４４）は、確認目的で同一のノンスを生成することができる。また、キーマネージャー（４４）は、仮想マシン（５０）のインスタンスの起動を許可する旨の通知をエンタープライスエージェント（４２）から受け取ったり、又は要求することができる。
【００３０】
ステップ（１１８）では、キーマネージャー（４４）がプリブート環境（５４）に正しいディスクラッピングキーを提供する。そして、プリブート環境（５４）がディスクイメージ（５２）を復号化すること、及び仮想マシン（５０）の稼動インスタンスを起動することを可能にする。ディスクイメージ（５２）復号後すぐにディスクラッピングキーは削除される。
【００３１】
ステップ（１２０）では、リモートコンソールとして作用するエンタープライスエージェント（４２）とともに仮想マシン（５０）が実行される段階に進む。一旦仮想マシン（５０）が起動して実行されると、エンタープライスエージェント（４２）から仮想マシン（５０）への安全なプライベート接続を確立することができる。
【００３２】
ステップ（１２２）では、仮想マシン（５０）がシャットダウン命令をうける。そして、仮想マシン（５０）は、安全な接続を介して、キーマネージャー（４４）と接続し、自身を暗号化するためのディスクラッピングキーを要求する。該キーについては、仮想マシン（５０）が最後に復号化された際に使用したものと同じキーである必要はない。セキュリティを最大限高めるために、仮想マシン（５０）がシャットダウンされて暗号化されたディスクイメージ（５２）として保存される度に、新たなキーを生成することができる。そして、キーマネージャー（４４）は、暗号化されたディスクイメージが次回復号化されるまで新たに生成されたキーを保持する（又は、非対称暗号を使用する場合には、少なくとも同ペアの他方のキー）。
【００３３】
仮想マシン（５０）によって使用されるデータが別途暗号化されている場合には、データ暗号化キーは、仮想マシン（５０）が実行されている限りアクティブな使用状態を維持し、従って、通常は、仮想マシン（５０）内で非暗号化形態を維持する。そして、キーを変更する場合には、慎重に復号化し、その後、暗号化されていたデータ全体を再度暗号化するか、又は前記データの各部分用に使用された最後のキーバージョンを追跡するかのいずれかが必要である。これらのシナリオにおいて、仮想マシン（５０）が予期せぬクラッシュを起こした場合の問題リスクを軽減するため、仮想マシン（５０）起動後、すぐにデータ暗号化キーの変更を行うことが好ましい場合がある。しかし、いずれにしろ、任意のキーがキーマネージャー（４４）に由来しない場合には、クラッシュによってキーが失われ、データが読めない状態のままになってしまうリスクを最小限にするために、使用する前に該キーをキーマネージャー（４４）に保存することが一般的には望ましい。
【００３４】
簡略化を目的として、上述した内容では、仮想マシン（５０）が起動した際にディスクイメージ（５２）全体が復号化されることを概ね想定している。しかし、実際のシステムにおいては、実際のディスクイメージ（５２）は完全に復号化されかつロードされなくてもよく、個々のブロックが、仮想マシン（５０）のアクティブなメモリ空間にページイン及びページアウトするだけでよい。その後、各ブロックは、ロードされる際に復号化することができ、アンロードされる際に再度暗号化されるか（もし変更がない場合には）廃棄することができる。該シナリオにおいて、仮想マシン（５０）がアクティブである限り、ディスクラッピングキーは使用状態を維持する。そして、データ暗号化キーの管理に関する上記議論した内容は、概ねディスクラッピングキーにあてはまる。１以上の別のデータ暗号化キーを更に使用することができ、第二レベルのセキュリティを提供し、及び／又はデータをインポートするための更にきめ細やかなアクセスコントロールを提供する。
【００３５】
ディスク暗号化が完了してキーが削除された後でしか、ステップ（１２４）では、クラウドコントローラー（３８）は、シャットダウンの通知及び仮想マシン（５０）に割り当てられたリソース（暗号化されたディスクイメージを含有するハードディスクスペース以外）の開放の通知を受けとらない。
【００３６】
上記記載から分かるように、本発明の方法、プログラム、及び装置によって、仮想マシン（５０）が実際に起動作業を行っている間の非常に短い期間を除いて、クラウド（２２）中に存在するディスクイメージ（５２）用のディスクラッピングキーを持つことを避けることが可能になる。ディスクラッピングキー（典型的には難読化された形態か、又はパスワードによって脆弱に暗号化されている）がクラウド内に永久的に存在する従来のシステムと比べると、キーの脆弱性が大幅に減少する。たとえ、クラウドコントローラー（３８）が悪意のあるものであっても、脆弱性を大幅に減らすことができる。復号化の際、クラウドコントローラー（３８）は、用済みになりかけているキーしか見ることができない。暗号化の際には、クラウドコントローラー（３８）にディスク暗号化が行われることが知らされる前に、キーは削除される。従って、クラウドコントローラー（３８）は、仮想マシン（５０）の動作を継続的にモニターしない限り、有用なディスクラッピングキーを入手することができない。
【００３７】
メモリブロックのスワッピングを伴うシステム中のデータ暗号化キー、又はキーラッピングキーは、更に脆弱である。なぜならば、通常、これらのキーは、仮想マシンが稼動している限り、非暗号化状態を仮想マシン（５０）内で維持されているからである。しかし、該データ暗号化キーであっても、仮想マシン（５０）によって専有されるスペースのメモリダンプ又はそれに等しい測定物（ｍｅａｓｕｒｅ）を介するくらいでしか通常はキャプチャできない。また、仮想マシン（５０）が稼動していない場合には、プリブート環境（５４）中にキーはやはり存在せず、大半の脆弱性は排除されている。
【００３８】
仮想マシンがアクティブである間、仮想マシン（５０）又はメモリダンプを監視することにより、通常は、どんな場合であっても、非暗号化されている状態でクラウドコントローラー（３８）がプログラム及びデータのコピーを集めることが可能になる。従って、ディスク暗号化キーのセキュリティが更に高まることは悪意あるクラウドコントローラー（３８）にとっては不便になる可能性がある。こうした攻撃に対する最良の予防策は、クラウドインフラのセキュリティ監査であり、たとえクラウド（２２）を管理する職員であってもメモリダンプ用のツールが使用できないことを保証する。しかし、こうしたツールは、仮想マシン（５０）やエンタープライス管理者（４２）には見えないクラウドレベルで典型的に動作することができる。従って、こうした監査を実行・実施して、該監査が十分に行われたことによってエンタープライス（４６）にとって満足のいくようにすることは、クラウド（２２）所有者の責任となるだろう。
【００３９】
非暗号化プリブート環境（５４）は、その完全性を既存の技術で確認できるほど十分に小さくそして静的である。例えば、Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ  （ＴＣＧ）は、ハードウェアデバイスであるＴｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ（ＴＰＭ）チップを用いることを提唱しており、該チップは、署名を確認して、信頼されていないコード又は不適切に改変されたコードがロードされることを防止する。こうした監視には、ホストコンピュータの所有するコードと、ゲスト仮想マシン内で実行されるオペレーティングシステム及びアプリケーションのコードの両方を確認することを含めることができる。プリブート環境（５４）自身とクラウドインフラの両方に関する暗号的な測定を、ＴＰＭチップ及びＧＲＣ監査ツールを用いて行い、エンタープライスエージェント（４２）が、起動過程の一部として、クラウドインフラの暗号証明書を受け取ることを可能にする。プロセスのコントロール及び証明書はプリブート環境（５４）に渡され、エンタープライスエージェント（４２）及び／又はキーマネージャー（４４）に測定ホーム（ｍｅａｓｕｒｅｍｅｎｔ  ｈｏｍｅ）を報告する。一回限定で前記測定及び証明書が有効になり、ディスクラッピングキーがゲスト仮想マシン（５０）にリリースされる。
【００４０】
一実施形態において、プリブート環境（５４）は、スタンドアロンで実行可能である。しかし、該環境は小さく、自身とホストオペレーティングシステムとの間で非常に限られたインターフェースしか持たない。該オペレーティングシステムとのインターフェースが行う必要がある唯一の事といえば、ステップ（１１８）において、ホストオペレーティングシステムの暗号化ドライバコンポーネントにディスクラッピングキーを渡すことぐらいである。暗号化ドライバは、仮想マシン（５０）の初期セットアップの一部として設けることができるため、プリブート環境を作成するプログラマーのコントロールの下にあってもよく、そして、プログラマーは、多くのオペレーティングシステム用に共通のインターフェースを作成することができる。その結果、多くの種類及びバージョンのオペレーティングシステムにわたって、プリブート環境（５４）を共有することが可能となる。たとえ、ホストオペレーティングシステムの違いが大きすぎて、実行可能なプリブート環境（５４）を共有することができないとしても、ソースコードに関しては、更に広範なホストオペレーティングシステムにわたって、ほとんど又は全く変更することなく、共有可能にすることができる。
【００４１】
特定の実施形態について述べてきたが、本発明の思想又は添付した特許請求の範囲に係る範囲から離れることなく様々な改変を行うことが可能である。そして、異なる実施形態の特徴を一の実施形態と組み合せることができる。
【００４２】
例えば、記述したように、クラウドコントローラー（３８）は、様々な機能を組み合せることができ、該機能としては、クラウド（２２）用のファイヤーウォール及びゲートウェイとしての動作、クラウド（２２）用のリソースマネージャーとしての動作、及び仮想マシン（５０）のハイパーバイザー等が含まれる。こうした機能や他の機能については、様々な物理的コンピューター及び／又は論理エンティティの間で様々な方法でグループ化したり又は分散させたりすることができる。エンタープライスエージェント（４２）及びキーマネージャー（４４）は別のデバイスとして記述してきた。これらは、代わりとして、単一の物理的ハードウェア装置の機能であってもよい。しかし、クラウド（２２）−エンタープライスエージェント（４２）間の通信、及びクラウド（２２）−キーマネージャー機能（４４）間の通信については、完全な一群のメッセージを盗聴者が傍受するリスクを軽減するために別のチャンネルを介する方がなお好ましい。
【００４３】
実施形態を述べるにあたって、話を簡潔にするために、各主要なコンポーネントは、特定目的でプログラムされた通常の汎用目的コンピューターであると仮定してきた。しかし、特殊化したハードウェアも商業的には利用可能である。例えば、以下のような専用のキーマネージャーが利用可能である。即ち、汎用目的コンピュータのシステムユニットと似ているが、入出力機能に制限があり、時にはセキュリティを更に高めており、そして、時には、システムユニット内の別の拡張カード上によりセキュリティの高い暗号化ユニットを備えているキーマネージャーである。様々なセキュリティレベルでの適切な予防策の例として、ＦＩＰＳ  １４０−２規格が挙げられる。ＳａｆｅＮｅｔ  Ｌｕｎａ  ＳＡ  プロダクトライン等のハードウェアセキュリティモジュールを使用して、キー管理システムのセキュリティを強化することができる。別の例としては、キーはポータブルデバイス上に保存することができ、例えば、ＵＳＢデバイスやスマートカードが挙げられ、キーがアクティブ使用でないときに物理的に安全な場所に保存することができる。
【００４４】
図面を参照しながら記述してきたように、１つの暗号化されたディスクイメージ（５２）は、１つの仮想マシン（５０）に対応しており、シャットダウンされると新たな暗号化されたディスクイメージ（５２）として保存される。或いは、仮想マシン（５０）がシャットダウンされる際に新たなデータを保存する必要がないのであれば、暗号化されたディスクイメージ（５２）は、クラウド（２２）内に永続的に維持することができる。そして、仮想マシン（５０）を起動するたびに新たに復号化されたコピーを生成し、仮想マシン（５０）がシャットダウンされた場合には単純に廃棄することができる。こうした別の形態において、暗号化キーを変更した場合、暗号化されたディスクイメージ（５２）を明示的に削除し、新たなキー（図示しない）とともに新たなディスクイメージ（５２）を明示的に作成することが必要になる。或いは、ディスクイメージを明示的に復号化して、新たなキーを用いて再度暗号化することが必要になる。上述した別の形態を用いる巨大なシステムでは、幾つかの類似の仮想マシン（５０）が並行して実行されており、単一の暗号化されたディスクイメージ（５２）から起動することが効率的である可能性がある。
【００４５】
上述の実施形態において、仮想マシンの起動は、エンタープライスエージェント（４２）のコンソールにおける人間の管理者によって開始される。しかし、起動プロセスは、システム上に安全に保存することができない脆弱なパスワードを使用しないので、必ずしも人間が関与する必要はない。仮想マシンの起動は、スケジュールされた時間で開始してもよく、外部のイベント（例えば、仮想マシン（５０）の以前のインスタンス又は並行するインスタンスをシャットダウンする必要性等）に応答して開始しても良い。
【００４６】
もし、現在メモリ中にロードされていないディスクイメージ（５２）のブロックに関してディスクレベルの暗号化がされている状態で仮想マシン（５０）が実行されている間、暗号化形態でデータを維持したい場合、公知の態様で行うことができ、以下の態様が含まれるがこれらに限定されない：
仮想マシン（５０）において、以下のキーの何れかを用いた暗号化：
（使用していないときはディスクラッピングキーによって暗号化されている）ローカル保存されているデータ暗号化キー；若しくは、
キーマネージャー（４４）若しくは別のソースから入手したデータ暗号化キー；又は、
データ暗号化装置としてのキーマネージャー（４４）又は別のリースを用いたリモート暗号化。
ＳａｆｅＮｅｔ  ＤａｔａＳｅｃｕｒｅプロダクトライン等のデータ暗号化装置は、キー管理システムのセキュリティを強化するために使用することができる。特にかなり影響を受けやすいデータが少量存在する場合に使用することができる。その結果、ディスクラッピング暗号化よりも質的に強力なレベルのセキュリティを正当化する。データの暗号化装置において実際のデータの暗号化が行われる場合、データ暗号化キーは、仮想マシン（５０）のメモリ中に曝されることは決して無い。そして、適切な管理の下、実際のデータは、該データを処理するのに必要な最小限の時間だけ非暗号化形態で曝される。従って、非暗号化されたデータを意義ある量だけ集めるのに、かなりの期間にわたって仮想マシンを継続的にモニターすることが必要になる。そして、そのようなことをすれば、クラウドインフラのセキュリティ監査で、比較的容易に検出されるであろう。
【００４７】
更なる別の実施形態において、上述のＳａｆｅＮｅｔ  Ｌｕｎａ  ＳＡ又はＳａｆｅＮｅｔ  ＤａｔａＳｅｃｕｒｅ装置等のハードウェアセキュリティモジュールは、クラウド（２２）中でホスト管理することができる。ハードウェアセキュリティモジュールの共有、又はハードウェアセキュリティモジュールのサードパーティのコントロールに関する信頼性の問題が十分にコントロールできるのであれば、これらのモジュールは著しい効率改善をもたらすことができる。
【００４８】
従って、本発明の範囲を表すものとしては、上記明細書よりも添付した特許請求の範囲を参照すべきである。
【図１】
0005635539.tif 000002
【図２】
0005635539.tif 000003