(57)【要約】【課題】高信頼仮想化プラットフォームは、マルチ・テナント・クラウド計算センターの仮想計算機の動作中に機密に関する顧客データを保護する。【解決手段】高信頼仮想化プラットフォームは、そこにおいて動作する仮想計算機のデータ及び状態への管理人のアクセスを制限し、それになされるいかなる変更も報告し、そして仮想計算機において管理動作を実行するために、顧客又は顧客の高信頼第三者機関により提供されるキーを要求する。この種の高信頼仮想化プラットフォームを使用することをクラウド計算センターに要求することによって、彼らの仮想計算機をクラウド計算センターにアップロードする顧客は、クラウド管理人が彼らの私用データにアクセスしたり、改ざんしたりすることが可能でないと確信できる。更に、高信頼仮想化プラットフォームが、顧客によってセットされた機密保護ポリシーに従って全てのこの種の変更を報告するように構成することができるので、顧客は彼らの仮想計算機の全ての重要な状態又は構成の変更を直接監査できる。【選択図】  図４
2015181045.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバ・コンピュータ及び永続的なデータ記憶装置を含むマルチ・テナント・データセンターの仮想計算機を保護する方法であって、
認証モジュールを含むサーバ・コンピュータを構成するステップと、
ソフトウェア・スタックを前記サーバ・コンピュータにインストールするステップと、
前記認証モジュールで前記ソフトウェア・スタックの静的特性を測定して、前記測定を前記認証モジュール中に格納するステップと、
前記サーバ・コンピュータ上の前記ソフトウェア・スタックを用いて、仮想計算機を始動させるための要求を受信するステップと、
前記仮想計算機を始動させるための前記要求に応答して、前記認証モジュール中に格納された前記測定を外部実体に送信して、前記測定が前記外部実体における期待値に一致しているとの確認に応答して、前記外部実体から前記ソフトウェア・スタックの上で前記仮想計算機を動作させるためのキーを受信するステップと、
前記キーを使用して前記ソフトウェア・スタックの上で前記仮想計算機を動作させるステップと、
を含む方法。
【請求項２】
前記ソフトウェア・スタックの上で前記仮想計算機を動作させるステップが、
前記仮想計算機の上で管理動作を実行するための要求を受信するステップと、
前記管理動作を前記外部実体に送ることによって、監査トレイルを生成するステップとを含む、請求項１に記載の方法。
【請求項３】
前記ソフトウェア・スタックが、選択された管理動作が前記外部実体からの許可なしに前記仮想計算機で実行されることを許可しない、請求項２に記載の方法。
【請求項４】
要求された管理動作が、前記選択された管理動作の１つであると決定するステップと、
前記要求された管理動作が、前記選択された管理動作の１つであると決定される時に、前記管理動作を前記外部実体に送ることによって監査トレイルを生成するステップと、を更に含み、
前記選択された管理動作が、前記仮想計算機の別のサーバ・コンピュータへの移行、前記仮想計算機のスナップショットの生成、及び前記仮想計算機のインプレースなアップグレードを含む、請求項３に記載の方法。
【請求項５】
前記仮想計算機の仮想ディスクを暗号化された形で永続的なデータ記憶装置に格納するステップと、
前記外部実体から前記仮想ディスクを解読するためのキーを受信するステップと、
を更に含む請求項１に記載の方法。
【請求項６】
前記ソフトウェア・スタックが、前記仮想計算機が暗号化キーなしに別のサーバ・コンピュータで動作する識別した仮想計算機と通信することを阻止する、請求項１に記載の方法。
【請求項７】
前記暗号化キーの要求を前記外部実体に送信するステップであって、前記要求は別のサーバ・コンピュータで動作する前記仮想計算機の識別を含む前記送信するステップを更に含む請求項６に記載の方法。
【請求項８】
前記ソフトウェア・スタックが複数の層を有し、そしてソフトウェア層が加えられるたびに、静的特性測定が逐次実行される、請求項１に記載の方法。
【請求項９】
前記認証モジュールが、複数のレジスタを有する高信頼プラットフォーム・モジュール（ＴＰＭ）であり、そして各逐次静的特性測定が前記ＴＰＭの前記レジスタの１つに記録される、請求項８に記載の方法。
【請求項１０】
複数のサーバ・コンピュータ及び永続的なデータ記憶装置を含むマルチ・テナント・データセンターの仮想計算機を保護するための非一時的機械可読な記憶媒体であって、高信頼仮想化プラットフォームとして構成されたコンピュータに方法を実行させる、機械可読な記憶媒体上にコード化されたコンピュータ命令を有する機械可読な記憶媒体において、
前記方法は、
認証モジュールを含むサーバ・コンピュータで仮想計算機を動作させるキーの要求を受信するステップであって、キー要求が、前記仮想計算機と関連付けた顧客ＩＤを含み、前記キー要求が、前記サーバ・コンピュータ上の前記仮想計算機を始動させるための要求の受信に応答する、前記受信するステップと、
前記キー要求の受信に応答して、前記仮想計算機がその上で動作するソフトウェア・スタックの静的特性測定値を前記サーバ・コンピュータに要求し、前記静的特性測定値が前記サーバ・コンピュータの前記認証モジュール中に格納されるステップと、
前記要求に応答して前記サーバ・コンピュータから前記静的特性測定値を受信するステップと、
受信した前記静的特性測定値が期待値に一致しているとの確認に応答して、前記静的特性測定値から前記ソフトウェア・スタックが高信頼ソフトウェア・スタックであることを確認し、そして前記確認の後に、前記サーバ・コンピュータで前記仮想計算機を動作させるために前記キーを前記サーバ・コンピュータに送信するステップと、
を含む機械可読な記憶媒体。
【請求項１１】
前記方法が、
前記サーバ・コンピュータから前記認証モジュールの公開キーを受信するステップと、
前記マルチ・テナント・データセンターと関連付けた在庫管理において前記公開キーを探索するステップと、
を更に含み、ここで、前記公開キーが前記マルチ・テナント・データセンターと関連付けた前記在庫管理で見つかったことが確認された後に、前記サーバ・コンピュータで前記仮想計算機を動作させる前記キーが前記サーバ・コンピュータに送信される請求項１０に記載の機械可読な記憶媒体。
【請求項１２】
前記方法が、
前記サーバ・コンピュータで動作する前記仮想計算機において動作を実行するための要求を受信するステップと、
前記仮想計算機と関連付けたポリシーを調べ、そして前記ポリシーが前記動作を許可する場合は、前記仮想計算機で前記動作を実行するためのキーを送信し、そして前記ポリシーが前記動作を許可しない場合は、前記要求を拒否するメッセージを送信するステップと、
を更に含む、請求項１０に記載の機械可読な記憶媒体。
【請求項１３】
前記キーの各々が関連するリース期間を有し、その満期後、前記キーはもはや有効ではない、請求項１２に記載の機械可読な記憶媒体。
【請求項１４】
前記方法が、前記仮想計算機で監査トレイルとして実行される管理動作の報告書を受信して記録するステップを更に含む、請求項１０に記載の機械可読な記憶媒体。
【請求項１５】
前記方法が、前記仮想計算機が前記サーバ・コンピュータで動作した後に、前記仮想計算機の仮想ディスクに格納されたデータを暗号化及び解読するためのキーを送信するステップを更に含む、請求項１０に記載の機械可読な記憶媒体。
【請求項１６】
前記方法が、
ネットワーク・パケットを異なるサーバ・コンピュータで動作する別の仮想計算機に送信するための要求を受信するステップと、
前記異なるサーバ・コンピュータが高信頼ソフトウェア・スタックを動作させていて、前記別の仮想計算機が前記高信頼ソフトウェア・スタックの上で動作していることを確認するステップと、
前記確認をすると、前記別の仮想計算機に送信される前記ネットワーク・パケットを暗号化するためのキーを前記サーバ・コンピュータに送信するステップと、
を更に含む、請求項１０に記載の機械可読な記憶媒体。
【請求項１７】
前記方法が、前記サーバ・コンピュータから認証識別キー（ＡＩＫ）の公開部分を受信するステップを更に含み、ここで、前記静的特性測定値が前記ＡＩＫの私用部分によって暗号化されて、前記ＡＩＫの前記公開部分を使用して解読される、請求項１０に記載の機械可読な記憶媒体。
【請求項１８】
前記方法が、
ランダムなノンスを前記サーバ・コンピュータに送信するステップと、
前記ランダムなノンスが前記サーバ・コンピュータからも受信されるときに、前記静的特性測定値が前記サーバ・コンピュータによって実際に送信されたことを確認するステップと、
を含む、請求項１０に記載の機械可読な記憶媒体。
【請求項１９】
複数のサーバ・コンピュータであって、その各々は、高信頼プラットフォーム・モジュールと、その上において仮想計算機が実行されることになっている１つ以上のソフトウェア層を有する高信頼仮想化プラットフォームとで構成されるサーバ・コンピュータと、
前記サーバ・コンピュータに結合する永続的な記憶装置であって、前記仮想計算機を起動するためのファイルが格納され、前記ファイルは、暗号化された部分、並びに顧客及び前記顧客と関連付けたネットワーク位置を識別する平文部分を含む記憶装置と、
を備えるマルチ・テナント・データセンターシステムであって、
前記高信頼仮想化プラットフォームは、
（ｉ）前記高信頼仮想化プラットフォームに対するいかなる変更も前記顧客と関連付けた前記ネットワーク位置に報告し、
（ｉｉ）仮想計算機を始動させるための要求の受信に応答して、前記仮想計算機を起動するための前記ファイルの前記暗号化された部分を解読するために、前記顧客と関連付けた前記ネットワーク位置にある外部実体から１つ以上のキーを得て、前記１つ以上のキーは、前記高信頼プラットフォーム・モジュール中に格納された測定を前記ネットワーク位置にある前記外部実体に送信することにより得られ、前記測定が期待値に一致している際に前記１つ以上のキーを受信し、
（ｉｉｉ）前記仮想計算機のメモリの直接の検査を禁止するようにプログラムされているマルチ・テナント・データセンターシステム。
【請求項２０】
前記キーが前記仮想計算機の前記メモリに格納されて、管理人によってアクセスすることができない、請求項１９に記載のシステム。
【請求項２１】
前記キーが前記サーバ・コンピュータによって永続的に格納されない、請求項２０に記載のシステム。
【請求項２２】
前記キーのうちの少なくとも１つがリース期間を有する、請求項１９に記載のシステム。
【請求項２３】
前記ファイルが前記仮想計算機のための構成ファイル及び前記仮想計算機の仮想ディスクを含む、請求項１９に記載のシステム。
【請求項２４】
前記高信頼仮想化プラットフォームは、
（ｉｖ）前記仮想計算機の上で管理動作を実行するための要求を受信し、
（ｖ）前記管理動作を前記顧客と関連したネットワーク位置に送ることによって、監査トレイルを生成するようにプログラムされている、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
[0001]本願は２０１０年６月２日に出願された、「マルチ・テナント・クラウドにおける顧客仮想計算機の保護」という名称の米国仮特許出願第６１／３５０８０９号の利益を主張するものであり、これの内容全体を参照によって本願明細書に引用したものとする。
【背景技術】
【０００２】
[0002]何千もの顧客からのホスティング作業負荷による規模の経済並びに負荷の深入りし過ぎ及び統計多重化から結果として生じる利益によって動機付けされて、サービスプロバイダは、大きい仮想化クラウド計算センターを構築している。しかしながら、多くの企業顧客は、機密保護上の問題のために彼らの重要な作業負荷をクラウドへ送るのを嫌がる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0003]クラウド計算センターの最新の構成において、顧客は彼らの作業負荷が実行されるところを制御しない。その結果、顧客の仮想計算機がクラウド計算センター内のホストの電源を入れるときに、仮想計算機の情報はいくつかの方法で危険にさらされ得る。例えば、ホストは、仮想計算機のスナップショットを保持し、メモリ検査を行い、そして顧客の潜在的に機密に関するデータについての知識を得ることができる。加えて、クラウド管理人は、すべての顧客のために動作するすべての仮想計算機のデータ及び状態に実質的に無制限にアクセスできる。これは、直接仮想ディスクを読み取ること、及び彼又は彼女の仮想計算機のうちの２台の間で顧客の個人的な仮想ネットワーク・トラフィックを嗅ぎまわることを含む。
【課題を解決するための手段】
【０００４】
[0004]本発明の１つ以上の実施形態は、マルチ・テナント・クラウド計算センターで顧客仮想計算機を保護する方法として高信頼仮想化プラットフォームを提供する。高信頼仮想化プラットフォームは、管理人のアクセスをそこで動作する仮想計算機のデータ及び状態に制限し、それになされるいかなる変更も報告して、仮想計算機の管理動作を実行するために、顧客又は顧客の高信頼第三者機関により提供されたキーを要求する。この種の高信頼仮想化プラットフォームを使用することをクラウド計算センターに要求することによって、彼らの仮想計算機をクラウド計算センターにアップロードする顧客は、クラウド管理人が彼らの私用データにアクセスするか、又はそれを変更することができないことを確信できる。更にまた、高信頼仮想化プラットフォームが顧客によってセットされた機密保護ポリシーに従ってすべてのこの種の変更を報告するように構成できるので、顧客は彼らの仮想計算機のすべての重要な状態又は構成の変更を直接監査できる。
【０００５】
[0005]本発明の一実施形態によれば、複数のサーバ・コンピュータ及び永続的なデータ記憶装置を含むマルチ・テナント・データセンターにおいて仮想計算機を保護する方法は、認証モジュールを含むサーバ・コンピュータを構成するステップと、ソフトウェア・スタックをサーバ・コンピュータにインストールするステップと、認証モジュールでソフトウェア・スタックの静的特性を測定して、測定を認証モジュール中に格納するステップと、サーバ・コンピュータ上のソフトウェア・スタックを用いて、仮想計算機を始動させるための要求を受信するステップと、仮想計算機を始動させるための要求に応答して、認証モジュール中に格納された測定を外部実体に送信して、測定が外部実体における期待値に一致しているとの確認に応答して、外部実体からソフトウェア・スタックの上で仮想計算機を動作させるためのキーを受信するステップと、キーを使用してソフトウェア・スタックの上で仮想計算機を動作させるステップとを含む。
【０００６】
[0006]本発明の別の実施形態によれば、複数のサーバ・コンピュータ及び永続的なデータ記憶装置を含むマルチ・テナント・データセンターにおいて仮想計算機を保護する方法は、高信頼プラットフォーム・モジュールを含むサーバ・コンピュータで仮想計算機を動作させるためにキーの要求を受信し（キーの要求は仮想計算機と関連付けた顧客ＩＤを含む）、キー要求が、サーバ・コンピュータ上の仮想計算機を始動させるための要求の受信に応答するステップと、キー要求の受信に応答して、サーバ・コンピュータに仮想計算機が動作するソフトウェア・スタックの静的特性測定を要求し、静的特性測定値がサーバ・コンピュータの認証モジュール中に格納されるステップと、要求に応答してサーバ・コンピュータから静的特性測定値を受信するステップと、受信した静的特性測定が期待値に一致しているとの確認に応答して、静的特性測定値からソフトウェア・スタックが高信頼ソフトウェア・スタックであることを確認するステップと、確認の後に、サーバ・コンピュータで仮想計算機を動作させるためにキーをサーバ・コンピュータに送信するステップとを含む。別の実施形態では、この方法は、サーバ・コンピュータから高信頼プラットフォーム・モジュールの公開キーを受信するステップと、マルチ・テナント・データセンターと関連付けた在庫管理で公開キーを探索するステップとを更に含み、ここで、公開キーがマルチ・テナント・データセンターと関連付けた在庫管理で見つかったことが確認された後に、サーバ・コンピュータ上で仮想計算機を動作させるキーはサーバ・コンピュータに送信される。
【０００７】
[0007]本発明の一実施形態によれば、顧客データを保護するマルチ・テナント・データセンターは複数のサーバ・コンピュータを含み、それの各々は高信頼プラットフォーム・モジュール（認証モジュール）を含み、そして高信頼仮想化プラットフォームは、その上で仮想計算機が実行される１つ以上のソフトウェア層と、サーバ・コンピュータに結合した永続的な記憶装置とを有し、そこでは、顧客仮想計算機のような、顧客アプリケーションを起動するためのファイルが格納され、ファイルは、暗号化された部分と、顧客及び顧客と関連付けたネットワークの位置を識別する平文部分とを含む。一実施形態において、高信頼仮想化プラットフォームは監査を実行して、高信頼仮想化プラットフォームに対するいかなる変更も顧客と関連付けたネットワークの位置に報告するようにプログラムされる。一旦いかなる変更も高信頼仮想化プラットフォームになされなかったことが確認されると、高信頼仮想化プラットフォームは、顧客アプリケーション、例えば顧客の仮想計算機を起動するためのファイルの暗号化された部分を解読するために、顧客と関連付けたネットワークの位置にある外部実体から１つ以上のキーを得ることができ、１つ以上のキーは、高信頼プラットフォーム・モジュール中に格納された測定をネットワーク位置にある外部実体に送信することにより得られ、測定が期待値に一致している際に１つ以上のキーを受信する。
【０００８】
[0008]本発明の更なる実施形態は、限定されずに、処理ユニットが上記方法の１つ以上の態様を実施することを可能にする命令を含む非一時的コンピュータ可読の記憶媒体を含む。
【図面の簡単な説明】
【０００９】
【図１】[0009]本発明の１つ以上の実施形態が実践され得るコンピュータシステムの要素を例示する。
【図２】[0010]本発明の１つ以上の実施形態による仮想計算機のための高信頼仮想化プラットフォーム（ＴＶＰ）を例示する。
【図３】[0011]ＴＶＰの静的特性がどのように測定されるかについて例示する概念図である。
【図４】[0012]本発明の１つ以上の実施形態による仮想計算機の電源を入れる方法を例示するフロー図である。
【図５】[0013]本発明の１つ以上の実施形態による、ＴＶＰ上で動作する仮想計算機で実行される管理動作を処理する方法を例示するフロー図である。
【発明を実施するための形態】
【００１０】
[0014]図１は、本発明の１つ以上の実施形態が実践されうるコンピュータシステム１００の要素を例示する。コンピュータシステム１００は、１つ以上のクラウド計算センター（クラウドＸ１３０及びクラウドＹ１７０）と、クラウド計算センターのユーザ又は顧客の計算装置（ユーザ計算機１１０）と、ユーザがクラウド計算センターにより提供された計算サービスに関する特定の責任を委任することができた高信頼第三者機関のサーバ・コンピュータ（高信頼第三者機関サーバ１１２）とを含む。図１に示される計算実体の間の通信はネットワーク１２０を通じて行われ、それはインターネットでもよい。
【００１１】
[00015]クラウド計算センターは、コンピュータ・ネットワーク、例えばインターネットを通じてそれらの顧客に要求あり次第共有ハードウェア資源、ソフトウェア、及び情報を提供する。図１に示される実施例において、クラウドＸ１３０は、ユーザＡによってセットされた特定の機密保護ポリシーに従ってネットワーク１２０を通じてこのサービスをユーザＡに提供している。機密保護ポリシーは、直接ユーザＡによって、又はユーザＡの高信頼第三者機関によって、例えば、高信頼第三者機関サーバ１１２を経由して実施することができる。高信頼第三者機関サーバ１１２は、機密保護ポリシーを実施する際に使われる、ユーザＡのキーを含む、さまざまなユーザのためのキーを維持する。高信頼第三者機関サーバ１１２は、ＴＰＭと関連付けた証明書の形でいろいろなクラウド計算センターにインストールされた高信頼プラットフォーム・モジュール（ＴＰＭ）の在庫管理も維持し、各証明書は、対応するＴＰＭのエンドースメント・キー・ペア（ＥＫ）の公開部分、及びそれが奉仕しているユーザの各々の監査トレイルを含む。在庫管理及び監査トレイルは、更に後述する機密保護チェックを実行するために用いる。
【００１２】
[0016]クラウドＸ１３０は、その顧客に奉仕するために仮想計算機（図示せず）を実施し、そしてクラウド・マネージャ１３７、仮想計算機管理サーバ１４０、複数の物理的なコンピュータ（例えば、物理的なコンピュータ１５０、１５２、１５４）、及び共有データ記憶装置１６０を含む。クラウド・マネージャ１３７は、ユーザに提供されたクラウド計算資源を管理するように構成されたコンピュータであり、そしてネットワーク１２０に対するインタフェースを含む。ユーザ要求に応じて、又は管理人により促されて、クラウド・マネージャ１３７は、仮想計算機管理サーバ１４０により行われる特定の動作、例えば仮想計算機の電源のオンとオフを発行できる。仮想計算機管理サーバ１４０は、仮想計算機管理動作、例えば、仮想計算機の電源のオンとオフ、仮想計算機を物理的なコンピュータ間で移行させること、仮想計算機の永続的な状態をデータ記憶装置間で移行させること、仮想計算機スナップショットを生成する／元に戻す／破壊すること、仮想計算機から装置を追加／除去すること、処理及びメモリ資源を仮想計算機に割り当てることなどを実行するように構成された計算装置である。これらの仮想計算機管理動作は、クラウド・マネージャ１３７、ロード・バランシング又はスケジューリング・モジュールによって、あるいは管理人によって開始することができる。
【００１３】
[0017]物理的なコンピュータは、仮想化ソフトウェア１５８及びハードウェア１５９を各々含み、そして１つ以上の共有データ記憶装置１６０を含む共有の永続的な記憶装置に連結されている。仮想化ソフトウェア１５８は、ハードウェア１５９の上にインストールされて、複数の仮想計算機実行空間をサポートし、それの各々の中で仮想計算機プロセスは対応する仮想計算機のインスタンスを生成するために実行されることができる。インスタンスを生成された仮想計算機の各々に対して、仮想化ソフトウェア１５８は、エミュレートされたハードウェア装置、例えば仮想プロセッサ、ゲスト物理メモリ、仮想ネットワーク・インターフェイス・カード、仮想ディスクなどを含む対応する仮想ハードウェア・プラットフォームを管理する。
【００１４】
[0018]ハードウェア１５９は、ＴＰＭ１６１及びコンピュータシステムの標準構成要素、例えば、プロセッサ（図示せず）、メモリ（図示せず）、データ・ネットワーク１３１に接続しているネットワーク・インターフェイス・カード（ＮＩＣ）１６２、及び記憶ネットワーク１３２に接続しているディスク・インタフェース１６３を含む。物理的なコンピュータ１５０、１５２、１５４の各々のための永続的な記憶装置は、共有データ記憶装置１６０により提供される。
【００１５】
[0019]説明のために、図１に示す実施例で、物理的なコンピュータ１５０及び物理的なコンピュータ１５２のハードウェアはＴＰＭを含むが、物理的なコンピュータ１５４のハードウェアはそうではない。ＴＰＭによって、高信頼仮想化プラットフォーム（ＴＶＰ）は物理的なコンピュータにおいて実施されることが可能である。物理的なコンピュータ１５０のＴＶＰは図２に更に詳細に示される。
【００１６】
[0020]図２を参照すると、物理的なコンピュータ１５０のＴＶＰ２０１は、前実行環境（ＰＸＥ）ブート画像２０２、仮想計算機カーネル２０３、及びアプリケーション２０４（例えば、ＶＭ２１０の実行をサポートするためのいろいろなアプリケーション）を含む。ＴＶＰ２０１は、いかなる変更もそれにもたらすことからルート（管理）ユーザを締め出すように特別に構成されている。例えば、ＳＳＨアクセスは使用禁止である。加えて：
（１）インプレース実行可能なアップグレードは許可されない。
【００１７】
（２）ルート・プログラムは、仮想計算機のゲスト物理メモリを検査するためにインストールすることができない。
（３）管理人がモジュールをロードするか又は仮想計算機定義ファイルを操作することを可能にするＡＰＩ呼出しは提供されない。
【００１８】
（４）仮想計算機で実行されるすべての管理人動作は、それらがモニタされることができるように、ユーザの高信頼第三者機関に報告書をトリガーする。
[0021]上記の特性に加えて、ＴＶＰ２０１は記憶及びネットワーク通信の保護を提供する。記憶保護は仮想計算機の仮想ディスクを暗号化することによって提供される。図２において、ＶＭ２１０の仮想ディスクはｖｍｄｋ２１４として示され、そしてＶＭ２２０の仮想ディスクはｖｍｄｋ２３４として示される。各仮想ディスクは、ＶＭの仮想ディスク毎にディスク画像（又はその部分）を各々含む１つ以上のデータ・ファイル（例えば、ｖｍｄｋ拡張を有するファイル）を含む。仮想ディスク画像ファイルは、暗号化された形でデータ記憶装置１６０に格納されて、ネットワーク１３２を通じてホスト・バス・アダプタ（ＨＢＡ）１６３、２６３のそれぞれの１つを通してアクセスされる。仮想計算機が仮想ディスクに格納したデータに作用できる（入出力動作を実行する）前に、暗号化キーを顧客又は顧客の高信頼第三者機関から得る必要がある。解読されたデータがメモリに格納されて、仮想計算機に利用可能となるが、管理人によってアクセスできないままであると認識しなければならない。加えて、顧客又は顧客の高信頼第三者機関によってＴＶＰ２０１に提供されたキー２１２は、メモリ２１１に格納されて、管理人によってアクセスできない。仮想ディスクに格納されたデータのインテグラリティはまた、キーの付いたハッシュ、別名ＭＡＣ（メッセージ認証コード）を使用してモニタされる。
【００１９】
[0022]同じ顧客により所有されたＶＭの間のネットワーク通信の保護は、すべてのこの種の通信が暗号化されることを要求することにより提供される。暗号化キーは顧客又は顧客の高信頼第三者機関から得られる。ＴＶＰ上で動作する仮想計算機、例えば、ＴＶＰ２２１で動作するＶＭ２２０は、顧客又は顧客の高信頼第三者機関から暗号化キーを得て、そして、ネットワーク１３１を通じてＮＩＣ２６２によって、ＶＭ２１０と暗号化メッセージの交換をすることによって、ＶＭ２１０と通信に携わることが可能である。一方で、ＶＭ２１０又はＶＭ２２０とＴＶＰで動作していない仮想計算機（例えば、物理的なコンピュータ１５４で動作する仮想計算機、又は異なる顧客の仮想計算機）の間のネットワーク通信は、この種の暗号化を被らない。一実施形態において、同じ顧客により所有されたＶＭの間の通信を保護するために用いる暗号化キーは、その顧客のすべてのアプリケーション又は動作に対して同じである。別の実施形態では、同じ顧客により所有されたＶＭの間の通信を保護するために用いられる暗号化キーは、その顧客の異なるアプリケーション又は動作に対して異なる。
【００２０】
[0023]更なる実施形態において、機密保護要件に応じて、ＴＶＰ２０１は、機器として動作する機密保護サービスを無効にする／制限するか、又は修正する必要があり得る。加えて、ＴＶＰ２０１に提供されたキーはリース期間を有して構成できる。一実施形態において、リース期間は顧客のポリシーで規定されて、リース期間が期限切れになるときに、リース期間を有して構成されたキーはメモリから自動的に除去される。
【００２１】
[0024]図３は、ＴＰＭがどのようにＴＶＰの静的特性を測定するために用いられるかについて示す概念図である。ＴＶＰの静的特性測定値は、ＴＶＰがいかなる形であれ「高信頼」バージョンから変更されなかったことを確実にする。静的特性測定値は、ＴＰＭのＰＣＲ（プラットフォーム構成レジスタ）のうちの１つ、例えばＰＣＲ３１６―１に格納される。図３において、ＴＰＭ１６１はＮ個のＰＣＲを有することを示す。ソフトウェア層がＴＶＰに加えられるたびに、チェックサムはそのソフトウェア層に対して計算されて、ＰＣＲに「拡張される」。「拡張」動作は、計算されたチェックサムを以前に計算されてＰＣＲに格納されたハッシュ値に連結して、連結された値の新しいハッシュを生成する。新しく生成されたハッシュ値は、同じＰＣＲにまた格納される。任意のステップである最終ステップとして、イベント・ログ３１７はＰＣＲに「拡張される」。メモリに維持されたイベント・ログ３１７のエントリは、それらがＴＶＰに加えられた順序で、ソフトウェア層、それらのバージョン番号、及び対応するＰＣＲを識別する。イベント・ログ３１７の最後のエントリは、イベント・ログのためであり、そしてイベント・ログに対応するＰＣＲを識別する。ＰＣＲに格納された値のいずれも期待値に一致しないときに、その「高信頼」バージョンからのＴＶＰの変更は検出される。代わりの実施形態では、新しく生成されたハッシュ値はいろいろなＰＣＲに格納されることができて、イベント・ログ３１７１は静的特性測定値とＰＣＲの間の対応を示す。
【００２２】
[0025]図４は、本発明の１つ以上の実施形態による仮想計算機の電源を入れる方法を例示するフロー図である。ステップ４１０で、ユーザは、彼又は彼女の仮想計算機の電源を入れる要求をクラウド・マネージャに送信し、その人は要求に応じて仮想計算機管理サーバに渡す。ステップ４１２で、仮想計算機がＴＶＰ上で動作することが決定される場合は、方法はステップ４１６へ進む。一方で、ＴＶＰが要求されない場合は、仮想計算機はステップ４１４で通常電源を入れられる。
【００２３】
[0026]ステップ４１６で、ＴＶＰは、記憶装置から要求された仮想計算機に対応するＶＭ構成ファイルを検索する。ＶＭ構成ファイルは、暗号化された構成情報を提供して、顧客ＩＤ及び顧客（又は「ユーザ」）あるいは顧客の高信頼第三者機関（以下、「キー・プロバイダ」と称する）のドメイン名を含む平文部分を含む。ステップ４１８で、ＴＶＰは、キー・プロバイダとの機密保護関係（例えば、ＳＳＬ暗号化セッション）を構築する。このステップは、最初に、キー・プロバイダのためのＳＳＬ証明書を得ること、そしてその次に、ＳＳＬ証明書が適当な認証機関により承認されたことを確認することを含む。ステップ４２０で、ＴＶＰは、仮想計算機の電源を入れるために必要な１つ以上のキーをキー・プロバイダに要求する。キーによって、ＴＶＰはＶＭ構成ファイル及び関連するデータ・ファイルの剰余、例えば、仮想計算機の仮想ディスクを解読できる。この要求の一部として、それは顧客ＩＤも送る。ステップ４２２で要求を受け取ると、キー・プロバイダは、認証のために使われるＡＩＫ（認証識別キー）を起動する。ＡＩＫがない場合は、キー・プロバイダはＴＶＰから１つを要求し、それに応答して、ＴＶＰのＴＰＭはＡＩＫの公開及び私用の部分を生成する。ＴＶＰは、それからＡＩＫの公開部分をＥＫの公開部分に結合させ、キー・プロバイダに結合したキーを送る。ＡＩＫ起動ステップの一部として、キー・プロバイダは、ＡＩＫの公開部分を検索して、更にその在庫管理を点検して、ＡＩＫの公開部分に結合されたＥＫの公開部分が顧客のクラウド・プロバイダの在庫管理の一部であることを確認する。
【００２４】
[0027]ＡＩＫの起動の後、ステップ４２４で、キー・プロバイダはＴＰＭのＰＣＲの引用符をＴＶＰに要求する。キー・プロバイダはまたランダムなノンスを生成して、ステップ４２４で要求を付したランダムなノンスを送信する。ＴＶＰはＰＣＲの引用符及びランダムなノンスの要求を受信し、そしてステップ４２６で、ＴＰＭはＰＣＲの引用符を生成して、ＡＩＫの私用部分を用いてランダムなノンスとともにＰＣＲの引用符を暗号化する。ＰＣＲの引用符及びランダムなノンスは、ステップ４２８でキー・プロバイダに送信される。ランダムなノンスの交換がリプレーアタックから保護することを認識しなければならない。
【００２５】
[0028]ステップ４３０で、キー・プロバイダは、ＰＣＲの引用符を確認するステップを実行する。このステップは、ＡＩＫの公開部分を使用してＴＶＰから受け取ったデータを解読すること、予想されるＰＣＲ値に対してＰＣＲの引用符に含まれるＰＣＲ値を比較すること、解読されたランダムなノンスをステップ４２４で送られたランダムなノンスと比較することを含む。ステップ４３２で、これらのチェックの全てが合格したと決定される場合は、キー・プロバイダはステップ４３４でキーを送信し、そしてＴＶＰは、ＶＭ構成ファイルを読取るためにキーを使用して、ステップ４３６で仮想計算機の電源を入れる。一方で、チェックのいずれかが失敗した場合は、キー・プロバイダはステップ４３８でエラー・メッセージを送信して、ＴＶＰによって試みられる仮想計算機の電源投入は不成功である（ステップ４４０）。
【００２６】
[0029]仮想計算機の電源が入れられた後でさえ、ＴＶＰは、特定の管理動作が仮想計算機において実行されることを可能にするだけである。図５は、本発明の１つ以上の実施形態による、ＴＶＰ上で動作する仮想計算機において実行される管理動作を処理する方法を例示するフロー図である。管理動作は、仮想計算機の電源遮断、物理的なコンピュータ間で仮想計算機を移行させること、仮想計算機スナップショットを生成する／元に戻す／破壊すること、仮想計算機から装置を追加／除去すること、及び処理及びメモリ資源を仮想計算機に割り当てることを含む。
【００２７】
[0030]ステップ５１０で、クラウド・マネージャ、仮想計算機管理サーバ、又は管理人は、仮想計算機の管理動作を開始する。特定の管理動作は仮想計算機の機密保護を危うくしない、それで、それらはステップ５１４で通常の方法で処理される。ステップ５１２で、ステップ５１０で開始された管理動作が機密保護関連事項を有し、従って制限された動作であると決定される場合は、ＴＶＰは、ステップ５１６で管理動作を行う許可をキー・プロバイダに要求する。キー・プロバイダは、ステップ５１８でこの要求を受け取って、ステップ５２０で、要求された管理動作が顧客のポリシーにより許可されるか否か決定する。それが許可される場合は、要求された管理動作を実行するためのキーはステップ５２２でＴＶＰに送られて、ＴＶＰはステップ５２８で仮想計算機の管理動作を実行する。それが許可されない場合は、要求の拒否を示すメッセージがステップ５２２でＴＶＰに送られる。
【００２８】
[0031]キー・プロバイダが仮想計算機で実行される管理動作のトレイルを監査できるように、ステップ５３０はＴＶＰにおいて実施される。一実施形態において、ステップ５１４及びステップ５２４が実施された後に、仮想計算機で実行された管理動作はステップ５３０でキー・プロバイダに報告される。別の実施形態では、報告されるステップ５１４又はステップ５２４において実行された管理動作のタイプは、顧客の機密保護ポリシーに規定される。ステップ５３２で、キー・プロバイダは、報告された動作を格納して、ステップ５３４で、仮想計算機の機密保護を危うくするかもしれないいかなる動作に対してもそれをモニタする。ありうる機密保護侵害がステップ５３６で検出される場合は、仮想計算機の電源を切るか、あるいは顧客によって、又は顧客のポリシーに従って予め設定され得るいくつかの他の改善動作を実行する要求は、ステップ５３８で送られる。実施例は、顧客に送られるか、又はＶＭを顧客の私用クラウド、すなわち、顧客自身のデータセンターに移行する警報を含むことができる。ステップ５４０で、仮想計算機は電源を切られるか、あるいは何か他の是正措置は、顧客によって予め設定されるように、又は顧客のポリシーに従って取られる。ありうる機密保護侵害がステップ５３６で検出されない場合は、フローはステップ５３４に戻り、そして監査トレイルはモニタされ続けられる。
【００２９】
[0032]一つの実施例として、仮想計算機管理サーバ１４０内で動作するロード・バランシング・モジュールが、物理的なコンピュータ１５０で動作する仮想計算機の目標物理的なコンピュータへの移行を推奨している場合は、図５に記載されている方法はこの管理動作のためのキーを得るために実施されるだろう。目標物理的なコンピュータが物理的なコンピュータ１５４である場合は、物理的なコンピュータ１５４がＴＶＰを動作させないので、要求は拒否される。一方で、目標物理的なコンピュータが物理的なコンピュータ１５２である場合は、要求は、物理的なコンピュータ１５２のＴＰＭのＰＣＲの引用符を確認した後に、そして物理的なコンピュータ１５２のＴＰＭがクラウドＸ１３０内のＴＰＭの在庫管理で見つかることを確認した後に与えられる。ＴＶＰに送信されるキーは、ネットワークを通じて物理的なコンピュータ１５０から物理的なコンピュータ１５２へ動作している仮想計算機のメモリ状態を確実に送信するためのキー、ＶＭ構成ファイルを解読するためのキー、及びＶＭの仮想ディスクを解読するためのキーを含む。代替実施形態では、動作している仮想計算機のメモリ状態が移行した後に、物理的なコンピュータ１５２のＴＶＰは、図４に関連して記載した方法に従って物理的なコンピュータ１５２の仮想計算機の電源を入れるためにキーを求めてキー・プロバイダに連絡する。
【００３０】
[0033]図５に図示される、ＴＶＰ上で動作する仮想計算機で実行される管理動作を処理する方法の実施例において、制限された管理動作が行われた後に、監査トレイル・メッセージは送られる。本発明の他の実施形態において、管理動作がステップ５１２の制限された動作であると決定された後に、そしてこの種の管理動作が実際に行われる前に、例えば、ステップ５１２と５１６の間に、監査トレイル・メッセージは送られる。
【００３１】
[0034]管理人又はサポート・エンジニアが特定の種類の問題をデバッグすることを可能にするために、新しいシェル・モードをＴＶＰに含ませてもよい。この新しいシェル・モードは、物理的なコンピュータ及びそこにおいて動作するハイパーバイザへのシェル・アクセスを与えるが、ＴＶＰがすべてのメモリ及び記憶をスクラブした後にのみであり、それは顧客データを潜在的に漏らす可能性がある。スクラブした後に、ＰＣＲの引用符が、サポート・シェルが物理的なコンピュータで開始されたという事実を反映するように、ＴＶＰによって、ＴＰＭは、ＴＶＰのハッシュが記録されたＰＣＲの中へ入るためにシェルのバイナリコードのハッシュを拡張する。この後、仮想計算機は、リブート・プロセスを行わずにこの物理的計算機で再開されることができない。複数の仮想計算機がＴＶＰ上で動作している場合は、いずれか１つの仮想計算機のポリシーもサポート・シェルを許可しない場合、それは許可されない。
【００３２】
[0035]本発明の別の実施形態において、高信頼ソフトウェア・スタックは高信頼仮想化プラットフォームではないが、通常のユーザアプリケーションを実行できる高信頼プラットフォームである。このような実施形態では、高信頼ソフトウェア・スタックは、仮想計算機カーネルの代わりにオペレーティング・システム・カーネルを含み、そして暗号化されるデータ記憶装置１６０に格納されるファイルは、アプリケーションのための構成ファイル及びアプリケーションにより作成されて修正されるファイルを含む。
【００３３】
[0036]図１に示される本発明の実施形態は、遠隔認証を実行するためのモジュールとしてＴＰＭを含むが、本発明の他の実施形態がいろいろなモジュールを使用して遠隔認証機能を提供できることを認識しなければならない。更にまた、代替の実施形態で、キー・プロバイダは、制限された管理動作を実行するためのキーをあらゆるサーバに送る前に、目標サーバの公開キーを使用してキーを暗号化する。暗号化されたキーは、公開キーと関連付けた私用キー、すなわち、目標サーバの私用キーによってだけ解読することができて、その結果、他のサーバが暗号化されたキーを横取りする場合は、それを解読することができない。更に、高信頼プラットフォームの現在の静的特性が高信頼プラットフォームの前に測定されて記録された静的特性にマッチしないように、目標サーバの高信頼プラットフォームが変化した場合は、暗号化されたキーはその私用キーを使用する目標サーバによってさえも解読することができない。
【００３４】
[0037]本発明の更なる実施形態（それは遠隔認証を実行するためのモジュールとしてＴＰＭを用いる本発明の実施形態の拡張である）において、ＶＭで制限された管理動作を実行するための１つ以上のキーは、キー・プロバイダからサーバが受け取った時に暗号化されて、暗号化されたキーはキー・プロバイダへ送り返される。サーバが後で制限された管理動作を実行するためにキーのうちの１つを必要とする場合は、キー・プロバイダは、サーバ上で遠隔認証を実行して、サーバの高信頼プラットフォームが変化しなかったことを確認した後に、暗号化されたキーをサーバに送信する。このように制限された管理動作を実行するためのキーの暗号化がキーのための機密保護の別の層を提供すると認識しなければならない。
【００３５】
[0038]本願明細書に記載されているさまざまな実施形態は、コンピュータシステムに格納されたデータを含むさまざまなコンピュータ実行動作を用いることができる。例えば、これらの動作は、通常、しかし必然的にではなく、電気又は磁気信号という形をとる物理的な量の物理的操作を必要とすることがあり、そこではそれら、又はそれらの表現が格納され、移され、結合され、比較されるか、又は操作できる。更に、この種の操作は、生成、識別、決定、又は比較のような用語でしばしば呼ばれる。本発明の１つ以上の実施形態の一部を形成する本願明細書に記載のいかなる動作も、有用な計算機動作であり得る。加えて、本発明の１つ以上の実施形態は、これらの動作を実行する装置又は器具にも関する。器具は特定の必要な目的のために特別に構成されることができるか、あるいは、それはコンピュータに格納されたコンピュータプログラムによって選択的に作動するか又は構成される多目的コンピュータでもよい。特に、さまざまな多目的計算機が、ここに提供されている説明によって記述されるコンピュータプログラムとともに用いられることが可能であるか、又は、必要な動作を実行するためにより専門の器具を構成することがより便利であり得る。
【００３６】
[0039]本願明細書に記載されているさまざまな実施形態は、携帯用装置、マイクロプロセッサシステム、マイクロプロセッサ・ベースであるかプログラム可能な家電、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成によって実践できる。
【００３７】
[0040]本発明の１つ以上の実施形態は、１つ以上のコンピュータプログラムとして、又は１つ以上の計算機可読の媒体で実現される１つ以上のコンピュータプログラム・モジュールとして実施することができる。用語「計算機可読の媒体」は、その後でコンピュータシステムに入力できるデータを格納できるあらゆるデータ記憶装置を指し、計算機可読の媒体は、コンピュータプログラムをそれらがコンピュータによって読み取られることを可能にする方法で実現するためにいかなる既存又はその後に開発された技術にも基づいてもよい。計算機可読の媒体の例は、ハードディスク、ネットワーク接続ストレージ（ＮＡＳ）、読出し専用メモリ、ランダムアクセス・メモリ（例えば、フラッシュメモリ装置）、ＣＤ―ＲＯＭ（コンパクトディスク―ＲＯＭ）、ＣＤ―Ｒ、又はＣＤ―ＲＷ、ＤＶＤ（デジタル多用途ディスク）、磁気テープ、並びに他の光学及び非光学データ記憶装置を含む。計算機可読のコードが分散方法で格納されて、実行されるように、計算機可読の媒体はネットワーク結合コンピュータシステムにわたって分散することもできる。
【００３８】
[0041]本発明の１つ以上の実施形態が、明確に理解するために少し詳細に説明されたけれども、特定の改変と変更態様が請求の範囲内で行われうることは明らかである。したがって、記載されている実施形態は例示的であり、且つ限定的ではないと考えるべきであり、そして請求の範囲は本願明細書に与えられた細部に限定されるべきではなくて、請求の範囲及び相当物の中で変更することができる。請求項において、要素及び／又はステップは、請求項で明確に述べられない限り、動作のいかなる特定の順序も意味しない。
【００３９】
[0042]複数の例は、単一の例として本願明細書に記載されている構成要素、動作、又は構造のために提供されることができる。最後に、さまざまな構成要素、動作、及びデータ記憶装置の間の境界はいくぶん任意であり、そして特定の動作は特定の例示的構成との関係において示される。機能の他の配分が構想されて、本発明の範囲内に納まることができる。一般に、例示的な構成において、別々の構成要素として提示される構造及び機能は、複合構造又は構成要素として実施できる。同様に、単一の構成要素として提示される構造及び機能は別々の構成要素として実施できる。これらの、そして他の変形、変更態様、追加、及び改善は、添付の請求の範囲に納まることができる。
【図１】
2015181045.tif 000003
【図２】
2015181045.tif 000004
【図３】
2015181045.tif 000005
【図４】
2015181045.tif 000006
【図５】
2015181045.tif 000007