特許第6100834号(P6100834)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヴイエムウェア インクの特許一覧

特許6100834マルチ・テナント・クラウドにおける顧客仮想計算機の保護
<>
  • 特許6100834-マルチ・テナント・クラウドにおける顧客仮想計算機の保護 図000002
  • 特許6100834-マルチ・テナント・クラウドにおける顧客仮想計算機の保護 図000003
  • 特許6100834-マルチ・テナント・クラウドにおける顧客仮想計算機の保護 図000004
  • 特許6100834-マルチ・テナント・クラウドにおける顧客仮想計算機の保護 図000005
  • 特許6100834-マルチ・テナント・クラウドにおける顧客仮想計算機の保護 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6100834
(24)【登録日】2017年3月3日
(45)【発行日】2017年3月22日
(54)【発明の名称】マルチ・テナント・クラウドにおける顧客仮想計算機の保護
(51)【国際特許分類】
   G06F 21/62 20130101AFI20170313BHJP
   G06F 21/12 20130101ALI20170313BHJP
   G06F 9/46 20060101ALI20170313BHJP
【FI】
   G06F21/62
   G06F21/12 310
   G06F9/46 350
【請求項の数】21
【全頁数】15
(21)【出願番号】特願2015-118336(P2015-118336)
(22)【出願日】2015年6月11日
(62)【分割の表示】特願2013-513162(P2013-513162)の分割
【原出願日】2011年3月10日
(65)【公開番号】特開2015-181045(P2015-181045A)
(43)【公開日】2015年10月15日
【審査請求日】2015年6月11日
(31)【優先権主張番号】61/350,809
(32)【優先日】2010年6月2日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】510108504
【氏名又は名称】ヴイエムウェア インク
【氏名又は名称原語表記】VMware, Inc.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】アーマド,イルファン
(72)【発明者】
【氏名】グンティ,ムクンドゥ
(72)【発明者】
【氏名】チャトゥルヴェディ,アブヒシェク
(72)【発明者】
【氏名】キリアンスキ,ウラディミール
【審査官】 戸島 弘詩
(56)【参考文献】
【文献】 米国特許出願公開第2009/0172781(US,A1)
【文献】 特開2001−318797(JP,A)
【文献】 特開平11−175475(JP,A)
【文献】 特表2005−527900(JP,A)
【文献】 国際公開第2008/038386(WO,A1)
【文献】 欧州特許出願公開第01271282(EP,A1)
【文献】 国際公開第2009/044461(WO,A1)
【文献】 国際公開第2009/107349(WO,A1)
【文献】 米国特許出願公開第2008/0244569(US,A1)
【文献】 米国特許出願公開第2005/0251867(US,A1)
【文献】 特開2011−048661(JP,A)
【文献】 米国特許第08909928(US,B1)
【文献】 Nuno Santos et al.,Towards Trusted Cloud Computing,[online],Proceedings of the Workshop On Hot Topics in Cloud Computing (HotCloud),2009年 6月30日,[平成26年2月5日検索],URL,http://www.mpi-sws.org/~gummadi/papers/trusted_cloud.pdf
【文献】 須崎 有康,護るが勝ち 仮想マシンに潜むセキュリティ問題,日経コンピュータ,日本,日経BP社,2010年 3月31日,no.753,第144−149頁
【文献】 宮本 久仁男,管理機能を強化したXenの商用版 「XenEnterprise」を試す,Linux WORLD,株式会社IDGジャパン,2006年12月 1日,第5巻,第12号,106頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F21/00,9/46
(57)【特許請求の範囲】
【請求項1】
仮想計算機を保護する方法であって、
認証モジュールを含むサーバ・コンピュータを構成するステップであって、前記サーバ・コンピュータは、複数のサーバ・コンピュータ及び永続的なデータ記憶装置を含むマルチ・テナント・データセンターに設けられている、前記構成するステップと、
ソフトウェア・スタックを前記サーバ・コンピュータにインストールするステップと、
前記認証モジュールで前記ソフトウェア・スタックの静的特性を測定して、前記測定を前記認証モジュール中に格納するステップと、
前記サーバ・コンピュータ上の前記ソフトウェア・スタックを用いて、仮想計算機を始動させるための要求を受信するステップと、
前記仮想計算機を始動させるための前記要求に応答して、前記認証モジュール中に格納された前記測定を前記マルチ・テナント・データセンターの顧客と関連付けたネットワーク位置にある外部実体に送信して、前記測定が前記外部実体における期待値に一致しているとの確認に応答して、前記外部実体から前記ソフトウェア・スタックの上で前記仮想計算機を動作させるためのキーを受信するステップと、
前記キーを使用して前記ソフトウェア・スタックの上で前記仮想計算機を動作させるステップと、
を含み、
前記ソフトウェア・スタックの上で前記仮想計算機を動作させるステップが、
前記仮想計算機の上で管理動作を実行するための要求を受信するステップと、
前記管理動作の報告書を前記外部実体に送ることによって、監査トレイルを生成するステップとを含む、方法。
【請求項2】
前記ソフトウェア・スタックが、選択された管理動作が前記外部実体からの許可なしに前記仮想計算機で実行されることを許可しない、請求項に記載の方法。
【請求項3】
要求された管理動作が、前記選択された管理動作の1つであると決定するステップと、
前記要求された管理動作が、前記選択された管理動作の1つであると決定される時に、前記管理動作を前記外部実体に送ることによって監査トレイルを生成するステップと、を更に含み、
前記選択された管理動作が、前記仮想計算機の別のサーバ・コンピュータへの移行、前記仮想計算機のスナップショットの生成、及び前記仮想計算機のインプレースなアップグレードを含む、請求項に記載の方法。
【請求項4】
前記仮想計算機の仮想ディスクを暗号化された形で永続的なデータ記憶装置に格納するステップと、
前記外部実体から前記仮想ディスクを解読するためのキーを受信するステップと、
を更に含む請求項1に記載の方法。
【請求項5】
前記ソフトウェア・スタックが、前記仮想計算機が暗号化キーなしに別のサーバ・コンピュータで動作する識別した仮想計算機と通信することを阻止する、請求項1に記載の方法。
【請求項6】
前記暗号化キーの要求を前記外部実体に送信するステップであって、前記要求は別のサーバ・コンピュータで動作する前記仮想計算機の識別を含む前記送信するステップを更に含む請求項に記載の方法。
【請求項7】
前記ソフトウェア・スタックが複数の層を有し、そしてソフトウェア層が加えられるたびに、静的特性測定が逐次実行される、請求項1に記載の方法。
【請求項8】
前記認証モジュールが、複数のレジスタを有する高信頼プラットフォーム・モジュール(TPM)であり、そして各逐次静的特性測定が前記TPMの前記レジスタの1つに記録される、請求項に記載の方法。
【請求項9】
仮想計算機を保護するための非一時的機械可読な記憶媒体であって、高信頼仮想化プラットフォームとして構成されたコンピュータに方法を実行させる、機械可読な記憶媒体上にコード化されたコンピュータ命令を有する機械可読な記憶媒体において、
前記方法は、
認証モジュールを含むサーバ・コンピュータで仮想計算機を動作させるキーの要求を受信するステップであって、キー要求が、前記仮想計算機と関連付けた顧客IDを含み、前記キー要求が、前記サーバ・コンピュータ上の前記仮想計算機を始動させるための要求の受信に応答し、前記サーバ・コンピュータが、複数のサーバ・コンピュータ及び永続的なデータ記憶装置を含むマルチ・テナント・データセンターに存在している、前記受信するステップと、
前記キー要求の受信に応答して、前記仮想計算機がその上で動作するソフトウェア・スタックの静的特性測定値を前記サーバ・コンピュータに要求し、前記静的特性測定値が前記サーバ・コンピュータの前記認証モジュール中に格納されるステップと、
前記要求に応答して前記サーバ・コンピュータから前記静的特性測定値を受信するステップと、
受信した前記静的特性測定値が期待値に一致しているとの確認に応答して、前記静的特性測定値から前記ソフトウェア・スタックが高信頼ソフトウェア・スタックであることを確認し、そして前記確認の後に、前記サーバ・コンピュータで前記仮想計算機を動作させるために前記キーを前記サーバ・コンピュータに送信するステップと、
前記仮想計算機で実行される管理動作の報告書を受信し、該報告書を監査トレイルとして記録するステップと、
を含む機械可読な記憶媒体。
【請求項10】
前記方法が、
前記サーバ・コンピュータから前記認証モジュールの公開キーを受信するステップと、
前記マルチ・テナント・データセンターと関連付けた在庫管理において前記公開キーを探索するステップと、
を更に含み、ここで、前記公開キーが前記マルチ・テナント・データセンターと関連付けた前記在庫管理で見つかったことが確認された後に、前記サーバ・コンピュータで前記仮想計算機を動作させる前記キーが前記サーバ・コンピュータに送信される請求項に記載の機械可読な記憶媒体。
【請求項11】
前記方法が、
前記サーバ・コンピュータで動作する前記仮想計算機において動作を実行するための要求を受信するステップと、
前記仮想計算機と関連付けたポリシーを調べ、そして前記ポリシーが前記動作を許可する場合は、前記仮想計算機で前記動作を実行するためのキーを送信し、そして前記ポリシーが前記動作を許可しない場合は、前記要求を拒否するメッセージを送信するステップと、
を更に含む、請求項に記載の機械可読な記憶媒体。
【請求項12】
前記キーの各々が関連するリース期間を有し、その満期後、前記キーはもはや有効ではない、請求項11に記載の機械可読な記憶媒体。
【請求項13】
前記方法が、前記仮想計算機が前記サーバ・コンピュータで動作した後に、前記仮想計算機の仮想ディスクに格納されたデータを暗号化及び解読するためのキーを送信するステップを更に含む、請求項に記載の機械可読な記憶媒体。
【請求項14】
前記方法が、
ネットワーク・パケットを異なるサーバ・コンピュータで動作する別の仮想計算機に送信するための要求を受信するステップと、
前記異なるサーバ・コンピュータが高信頼ソフトウェア・スタックを動作させていて、前記別の仮想計算機が前記高信頼ソフトウェア・スタックの上で動作していることを確認するステップと、
前記確認をすると、前記別の仮想計算機に送信される前記ネットワーク・パケットを暗号化するためのキーを前記サーバ・コンピュータに送信するステップと、
を更に含む、請求項に記載の機械可読な記憶媒体。
【請求項15】
前記方法が、前記サーバ・コンピュータから認証識別キー(AIK)の公開部分を受信するステップを更に含み、ここで、前記静的特性測定値が前記AIKの私用部分によって暗号化されて、前記AIKの前記公開部分を使用して解読される、請求項に記載の機械可読な記憶媒体。
【請求項16】
前記方法が、
ランダムなノンスを前記サーバ・コンピュータに送信するステップと、
前記ランダムなノンスが前記サーバ・コンピュータからも受信されるときに、前記静的特性測定値が前記サーバ・コンピュータによって実際に送信されたことを確認するステップと、
を含む、請求項に記載の機械可読な記憶媒体。
【請求項17】
複数のサーバ・コンピュータであって、その各々は、高信頼プラットフォーム・モジュールと、その上において仮想計算機が実行されることになっている1つ以上のソフトウェア層を有する高信頼仮想化プラットフォームとで構成されるサーバ・コンピュータと、
前記サーバ・コンピュータに結合する永続的な記憶装置であって、前記仮想計算機を起動するためのファイルが格納され、前記ファイルは、暗号化された部分、並びに顧客及び前記顧客と関連付けたネットワーク位置を識別する平文部分を含む記憶装置と、
を備えるマルチ・テナント・データセンターシステムであって、
前記高信頼仮想化プラットフォームは、
(i)前記高信頼仮想化プラットフォームに対するいかなる変更も前記顧客と関連付けた前記ネットワーク位置に報告し、
(ii)仮想計算機を始動させるための要求の受信に応答して、前記仮想計算機を起動するための前記ファイルの前記暗号化された部分を解読するために、前記顧客と関連付けた前記ネットワーク位置にある外部実体から1つ以上のキーを得て、前記1つ以上のキーは、前記高信頼プラットフォーム・モジュール中に格納された測定を前記ネットワーク位置にある前記外部実体に送信することにより得られ、前記測定が期待値に一致している際に前記1つ以上のキーを受信し、
(iii)前記仮想計算機のメモリの直接の検査を禁止し、
(iv)前記仮想計算機の上で管理動作を実行するための要求を受信し、
(v)前記管理動作の報告書を前記顧客と関連したネットワーク位置にある前記外部実体に送ることによって、監査トレイルを生成するようにプログラムされているマルチ・テナント・データセンターシステム。
【請求項18】
前記キーが前記仮想計算機の前記メモリに格納されて、管理人によってアクセスすることができない、請求項17に記載のシステム。
【請求項19】
前記キーが前記サーバ・コンピュータによって永続的に格納されない、請求項18に記載のシステム。
【請求項20】
前記キーのうちの少なくとも1つがリース期間を有する、請求項17に記載のシステム。
【請求項21】
前記ファイルが前記仮想計算機のための構成ファイル及び前記仮想計算機の仮想ディスクを含む、請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
[0001]本願は2010年6月2日に出願された、「マルチ・テナント・クラウドにおける顧客仮想計算機の保護」という名称の米国仮特許出願第61/350809号の利益を主張するものであり、これの内容全体を参照によって本願明細書に引用したものとする。
【背景技術】
【0002】
[0002]何千もの顧客からのホスティング作業負荷による規模の経済並びに負荷の深入りし過ぎ及び統計多重化から結果として生じる利益によって動機付けされて、サービスプロバイダは、大きい仮想化クラウド計算センターを構築している。しかしながら、多くの企業顧客は、機密保護上の問題のために彼らの重要な作業負荷をクラウドへ送るのを嫌がる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
[0003]クラウド計算センターの最新の構成において、顧客は彼らの作業負荷が実行されるところを制御しない。その結果、顧客の仮想計算機がクラウド計算センター内のホストの電源を入れるときに、仮想計算機の情報はいくつかの方法で危険にさらされ得る。例えば、ホストは、仮想計算機のスナップショットを保持し、メモリ検査を行い、そして顧客の潜在的に機密に関するデータについての知識を得ることができる。加えて、クラウド管理人は、すべての顧客のために動作するすべての仮想計算機のデータ及び状態に実質的に無制限にアクセスできる。これは、直接仮想ディスクを読み取ること、及び彼又は彼女の仮想計算機のうちの2台の間で顧客の個人的な仮想ネットワーク・トラフィックを嗅ぎまわることを含む。
【課題を解決するための手段】
【0004】
[0004]本発明の1つ以上の実施形態は、マルチ・テナント・クラウド計算センターで顧客仮想計算機を保護する方法として高信頼仮想化プラットフォームを提供する。高信頼仮想化プラットフォームは、管理人のアクセスをそこで動作する仮想計算機のデータ及び状態に制限し、それになされるいかなる変更も報告して、仮想計算機の管理動作を実行するために、顧客又は顧客の高信頼第三者機関により提供されたキーを要求する。この種の高信頼仮想化プラットフォームを使用することをクラウド計算センターに要求することによって、彼らの仮想計算機をクラウド計算センターにアップロードする顧客は、クラウド管理人が彼らの私用データにアクセスするか、又はそれを変更することができないことを確信できる。更にまた、高信頼仮想化プラットフォームが顧客によってセットされた機密保護ポリシーに従ってすべてのこの種の変更を報告するように構成できるので、顧客は彼らの仮想計算機のすべての重要な状態又は構成の変更を直接監査できる。
【0005】
[0005]本発明の一実施形態によれば、複数のサーバ・コンピュータ及び永続的なデータ記憶装置を含むマルチ・テナント・データセンターにおいて仮想計算機を保護する方法は、認証モジュールを含むサーバ・コンピュータを構成するステップと、ソフトウェア・スタックをサーバ・コンピュータにインストールするステップと、認証モジュールでソフトウェア・スタックの静的特性を測定して、測定を認証モジュール中に格納するステップと、サーバ・コンピュータ上のソフトウェア・スタックを用いて、仮想計算機を始動させるための要求を受信するステップと、仮想計算機を始動させるための要求に応答して、認証モジュール中に格納された測定を外部実体に送信して、測定が外部実体における期待値に一致しているとの確認に応答して、外部実体からソフトウェア・スタックの上で仮想計算機を動作させるためのキーを受信するステップと、キーを使用してソフトウェア・スタックの上で仮想計算機を動作させるステップとを含む。
【0006】
[0006]本発明の別の実施形態によれば、複数のサーバ・コンピュータ及び永続的なデータ記憶装置を含むマルチ・テナント・データセンターにおいて仮想計算機を保護する方法は、高信頼プラットフォーム・モジュールを含むサーバ・コンピュータで仮想計算機を動作させるためにキーの要求を受信し(キーの要求は仮想計算機と関連付けた顧客IDを含む)、キー要求が、サーバ・コンピュータ上の仮想計算機を始動させるための要求の受信に応答するステップと、キー要求の受信に応答して、サーバ・コンピュータに仮想計算機が動作するソフトウェア・スタックの静的特性測定を要求し、静的特性測定値がサーバ・コンピュータの認証モジュール中に格納されるステップと、要求に応答してサーバ・コンピュータから静的特性測定値を受信するステップと、受信した静的特性測定が期待値に一致しているとの確認に応答して、静的特性測定値からソフトウェア・スタックが高信頼ソフトウェア・スタックであることを確認するステップと、確認の後に、サーバ・コンピュータで仮想計算機を動作させるためにキーをサーバ・コンピュータに送信するステップとを含む。別の実施形態では、この方法は、サーバ・コンピュータから高信頼プラットフォーム・モジュールの公開キーを受信するステップと、マルチ・テナント・データセンターと関連付けた在庫管理で公開キーを探索するステップとを更に含み、ここで、公開キーがマルチ・テナント・データセンターと関連付けた在庫管理で見つかったことが確認された後に、サーバ・コンピュータ上で仮想計算機を動作させるキーはサーバ・コンピュータに送信される。
【0007】
[0007]本発明の一実施形態によれば、顧客データを保護するマルチ・テナント・データセンターは複数のサーバ・コンピュータを含み、それの各々は高信頼プラットフォーム・モジュール(認証モジュール)を含み、そして高信頼仮想化プラットフォームは、その上で仮想計算機が実行される1つ以上のソフトウェア層と、サーバ・コンピュータに結合した永続的な記憶装置とを有し、そこでは、顧客仮想計算機のような、顧客アプリケーションを起動するためのファイルが格納され、ファイルは、暗号化された部分と、顧客及び顧客と関連付けたネットワークの位置を識別する平文部分とを含む。一実施形態において、高信頼仮想化プラットフォームは監査を実行して、高信頼仮想化プラットフォームに対するいかなる変更も顧客と関連付けたネットワークの位置に報告するようにプログラムされる。一旦いかなる変更も高信頼仮想化プラットフォームになされなかったことが確認されると、高信頼仮想化プラットフォームは、顧客アプリケーション、例えば顧客の仮想計算機を起動するためのファイルの暗号化された部分を解読するために、顧客と関連付けたネットワークの位置にある外部実体から1つ以上のキーを得ることができ、1つ以上のキーは、高信頼プラットフォーム・モジュール中に格納された測定をネットワーク位置にある外部実体に送信することにより得られ、測定が期待値に一致している際に1つ以上のキーを受信する。
【0008】
[0008]本発明の更なる実施形態は、限定されずに、処理ユニットが上記方法の1つ以上の態様を実施することを可能にする命令を含む非一時的コンピュータ可読の記憶媒体を含む。
【図面の簡単な説明】
【0009】
図1】[0009]本発明の1つ以上の実施形態が実践され得るコンピュータシステムの要素を例示する。
図2】[0010]本発明の1つ以上の実施形態による仮想計算機のための高信頼仮想化プラットフォーム(TVP)を例示する。
図3】[0011]TVPの静的特性がどのように測定されるかについて例示する概念図である。
図4】[0012]本発明の1つ以上の実施形態による仮想計算機の電源を入れる方法を例示するフロー図である。
図5】[0013]本発明の1つ以上の実施形態による、TVP上で動作する仮想計算機で実行される管理動作を処理する方法を例示するフロー図である。
【発明を実施するための形態】
【0010】
[0014]図1は、本発明の1つ以上の実施形態が実践されうるコンピュータシステム100の要素を例示する。コンピュータシステム100は、1つ以上のクラウド計算センター(クラウドX130及びクラウドY170)と、クラウド計算センターのユーザ又は顧客の計算装置(ユーザ計算機110)と、ユーザがクラウド計算センターにより提供された計算サービスに関する特定の責任を委任することができた高信頼第三者機関のサーバ・コンピュータ(高信頼第三者機関サーバ112)とを含む。図1に示される計算実体の間の通信はネットワーク120を通じて行われ、それはインターネットでもよい。
【0011】
[00015]クラウド計算センターは、コンピュータ・ネットワーク、例えばインターネットを通じてそれらの顧客に要求あり次第共有ハードウェア資源、ソフトウェア、及び情報を提供する。図1に示される実施例において、クラウドX130は、ユーザAによってセットされた特定の機密保護ポリシーに従ってネットワーク120を通じてこのサービスをユーザAに提供している。機密保護ポリシーは、直接ユーザAによって、又はユーザAの高信頼第三者機関によって、例えば、高信頼第三者機関サーバ112を経由して実施することができる。高信頼第三者機関サーバ112は、機密保護ポリシーを実施する際に使われる、ユーザAのキーを含む、さまざまなユーザのためのキーを維持する。高信頼第三者機関サーバ112は、TPMと関連付けた証明書の形でいろいろなクラウド計算センターにインストールされた高信頼プラットフォーム・モジュール(TPM)の在庫管理も維持し、各証明書は、対応するTPMのエンドースメント・キー・ペア(EK)の公開部分、及びそれが奉仕しているユーザの各々の監査トレイルを含む。在庫管理及び監査トレイルは、更に後述する機密保護チェックを実行するために用いる。
【0012】
[0016]クラウドX130は、その顧客に奉仕するために仮想計算機(図示せず)を実施し、そしてクラウド・マネージャ137、仮想計算機管理サーバ140、複数の物理的なコンピュータ(例えば、物理的なコンピュータ150、152、154)、及び共有データ記憶装置160を含む。クラウド・マネージャ137は、ユーザに提供されたクラウド計算資源を管理するように構成されたコンピュータであり、そしてネットワーク120に対するインタフェースを含む。ユーザ要求に応じて、又は管理人により促されて、クラウド・マネージャ137は、仮想計算機管理サーバ140により行われる特定の動作、例えば仮想計算機の電源のオンとオフを発行できる。仮想計算機管理サーバ140は、仮想計算機管理動作、例えば、仮想計算機の電源のオンとオフ、仮想計算機を物理的なコンピュータ間で移行させること、仮想計算機の永続的な状態をデータ記憶装置間で移行させること、仮想計算機スナップショットを生成する/元に戻す/破壊すること、仮想計算機から装置を追加/除去すること、処理及びメモリ資源を仮想計算機に割り当てることなどを実行するように構成された計算装置である。これらの仮想計算機管理動作は、クラウド・マネージャ137、ロード・バランシング又はスケジューリング・モジュールによって、あるいは管理人によって開始することができる。
【0013】
[0017]物理的なコンピュータは、仮想化ソフトウェア158及びハードウェア159を各々含み、そして1つ以上の共有データ記憶装置160を含む共有の永続的な記憶装置に連結されている。仮想化ソフトウェア158は、ハードウェア159の上にインストールされて、複数の仮想計算機実行空間をサポートし、それの各々の中で仮想計算機プロセスは対応する仮想計算機のインスタンスを生成するために実行されることができる。インスタンスを生成された仮想計算機の各々に対して、仮想化ソフトウェア158は、エミュレートされたハードウェア装置、例えば仮想プロセッサ、ゲスト物理メモリ、仮想ネットワーク・インターフェイス・カード、仮想ディスクなどを含む対応する仮想ハードウェア・プラットフォームを管理する。
【0014】
[0018]ハードウェア159は、TPM161及びコンピュータシステムの標準構成要素、例えば、プロセッサ(図示せず)、メモリ(図示せず)、データ・ネットワーク131に接続しているネットワーク・インターフェイス・カード(NIC)162、及び記憶ネットワーク132に接続しているディスク・インタフェース163を含む。物理的なコンピュータ150、152、154の各々のための永続的な記憶装置は、共有データ記憶装置160により提供される。
【0015】
[0019]説明のために、図1に示す実施例で、物理的なコンピュータ150及び物理的なコンピュータ152のハードウェアはTPMを含むが、物理的なコンピュータ154のハードウェアはそうではない。TPMによって、高信頼仮想化プラットフォーム(TVP)は物理的なコンピュータにおいて実施されることが可能である。物理的なコンピュータ150のTVPは図2に更に詳細に示される。
【0016】
[0020]図2を参照すると、物理的なコンピュータ150のTVP201は、前実行環境(PXE)ブート画像202、仮想計算機カーネル203、及びアプリケーション204(例えば、VM210の実行をサポートするためのいろいろなアプリケーション)を含む。TVP201は、いかなる変更もそれにもたらすことからルート(管理)ユーザを締め出すように特別に構成されている。例えば、SSHアクセスは使用禁止である。加えて:
(1)インプレース実行可能なアップグレードは許可されない。
【0017】
(2)ルート・プログラムは、仮想計算機のゲスト物理メモリを検査するためにインストールすることができない。
(3)管理人がモジュールをロードするか又は仮想計算機定義ファイルを操作することを可能にするAPI呼出しは提供されない。
【0018】
(4)仮想計算機で実行されるすべての管理人動作は、それらがモニタされることができるように、ユーザの高信頼第三者機関に報告書をトリガーする。
[0021]上記の特性に加えて、TVP201は記憶及びネットワーク通信の保護を提供する。記憶保護は仮想計算機の仮想ディスクを暗号化することによって提供される。図2において、VM210の仮想ディスクはvmdk214として示され、そしてVM220の仮想ディスクはvmdk234として示される。各仮想ディスクは、VMの仮想ディスク毎にディスク画像(又はその部分)を各々含む1つ以上のデータ・ファイル(例えば、vmdk拡張を有するファイル)を含む。仮想ディスク画像ファイルは、暗号化された形でデータ記憶装置160に格納されて、ネットワーク132を通じてホスト・バス・アダプタ(HBA)163、263のそれぞれの1つを通してアクセスされる。仮想計算機が仮想ディスクに格納したデータに作用できる(入出力動作を実行する)前に、暗号化キーを顧客又は顧客の高信頼第三者機関から得る必要がある。解読されたデータがメモリに格納されて、仮想計算機に利用可能となるが、管理人によってアクセスできないままであると認識しなければならない。加えて、顧客又は顧客の高信頼第三者機関によってTVP201に提供されたキー212は、メモリ211に格納されて、管理人によってアクセスできない。仮想ディスクに格納されたデータのインテグラリティはまた、キーの付いたハッシュ、別名MAC(メッセージ認証コード)を使用してモニタされる。
【0019】
[0022]同じ顧客により所有されたVMの間のネットワーク通信の保護は、すべてのこの種の通信が暗号化されることを要求することにより提供される。暗号化キーは顧客又は顧客の高信頼第三者機関から得られる。TVP上で動作する仮想計算機、例えば、TVP221で動作するVM220は、顧客又は顧客の高信頼第三者機関から暗号化キーを得て、そして、ネットワーク131を通じてNIC262によって、VM210と暗号化メッセージの交換をすることによって、VM210と通信に携わることが可能である。一方で、VM210又はVM220とTVPで動作していない仮想計算機(例えば、物理的なコンピュータ154で動作する仮想計算機、又は異なる顧客の仮想計算機)の間のネットワーク通信は、この種の暗号化を被らない。一実施形態において、同じ顧客により所有されたVMの間の通信を保護するために用いる暗号化キーは、その顧客のすべてのアプリケーション又は動作に対して同じである。別の実施形態では、同じ顧客により所有されたVMの間の通信を保護するために用いられる暗号化キーは、その顧客の異なるアプリケーション又は動作に対して異なる。
【0020】
[0023]更なる実施形態において、機密保護要件に応じて、TVP201は、機器として動作する機密保護サービスを無効にする/制限するか、又は修正する必要があり得る。加えて、TVP201に提供されたキーはリース期間を有して構成できる。一実施形態において、リース期間は顧客のポリシーで規定されて、リース期間が期限切れになるときに、リース期間を有して構成されたキーはメモリから自動的に除去される。
【0021】
[0024]図3は、TPMがどのようにTVPの静的特性を測定するために用いられるかについて示す概念図である。TVPの静的特性測定値は、TVPがいかなる形であれ「高信頼」バージョンから変更されなかったことを確実にする。静的特性測定値は、TPMのPCR(プラットフォーム構成レジスタ)のうちの1つ、例えばPCR316―1に格納される。図3において、TPM161はN個のPCRを有することを示す。ソフトウェア層がTVPに加えられるたびに、チェックサムはそのソフトウェア層に対して計算されて、PCRに「拡張される」。「拡張」動作は、計算されたチェックサムを以前に計算されてPCRに格納されたハッシュ値に連結して、連結された値の新しいハッシュを生成する。新しく生成されたハッシュ値は、同じPCRにまた格納される。任意のステップである最終ステップとして、イベント・ログ317はPCRに「拡張される」。メモリに維持されたイベント・ログ317のエントリは、それらがTVPに加えられた順序で、ソフトウェア層、それらのバージョン番号、及び対応するPCRを識別する。イベント・ログ317の最後のエントリは、イベント・ログのためであり、そしてイベント・ログに対応するPCRを識別する。PCRに格納された値のいずれも期待値に一致しないときに、その「高信頼」バージョンからのTVPの変更は検出される。代わりの実施形態では、新しく生成されたハッシュ値はいろいろなPCRに格納されることができて、イベント・ログ3171は静的特性測定値とPCRの間の対応を示す。
【0022】
[0025]図4は、本発明の1つ以上の実施形態による仮想計算機の電源を入れる方法を例示するフロー図である。ステップ410で、ユーザは、彼又は彼女の仮想計算機の電源を入れる要求をクラウド・マネージャに送信し、その人は要求に応じて仮想計算機管理サーバに渡す。ステップ412で、仮想計算機がTVP上で動作することが決定される場合は、方法はステップ416へ進む。一方で、TVPが要求されない場合は、仮想計算機はステップ414で通常電源を入れられる。
【0023】
[0026]ステップ416で、TVPは、記憶装置から要求された仮想計算機に対応するVM構成ファイルを検索する。VM構成ファイルは、暗号化された構成情報を提供して、顧客ID及び顧客(又は「ユーザ」)あるいは顧客の高信頼第三者機関(以下、「キー・プロバイダ」と称する)のドメイン名を含む平文部分を含む。ステップ418で、TVPは、キー・プロバイダとの機密保護関係(例えば、SSL暗号化セッション)を構築する。このステップは、最初に、キー・プロバイダのためのSSL証明書を得ること、そしてその次に、SSL証明書が適当な認証機関により承認されたことを確認することを含む。ステップ420で、TVPは、仮想計算機の電源を入れるために必要な1つ以上のキーをキー・プロバイダに要求する。キーによって、TVPはVM構成ファイル及び関連するデータ・ファイルの剰余、例えば、仮想計算機の仮想ディスクを解読できる。この要求の一部として、それは顧客IDも送る。ステップ422で要求を受け取ると、キー・プロバイダは、認証のために使われるAIK(認証識別キー)を起動する。AIKがない場合は、キー・プロバイダはTVPから1つを要求し、それに応答して、TVPのTPMはAIKの公開及び私用の部分を生成する。TVPは、それからAIKの公開部分をEKの公開部分に結合させ、キー・プロバイダに結合したキーを送る。AIK起動ステップの一部として、キー・プロバイダは、AIKの公開部分を検索して、更にその在庫管理を点検して、AIKの公開部分に結合されたEKの公開部分が顧客のクラウド・プロバイダの在庫管理の一部であることを確認する。
【0024】
[0027]AIKの起動の後、ステップ424で、キー・プロバイダはTPMのPCRの引用符をTVPに要求する。キー・プロバイダはまたランダムなノンスを生成して、ステップ424で要求を付したランダムなノンスを送信する。TVPはPCRの引用符及びランダムなノンスの要求を受信し、そしてステップ426で、TPMはPCRの引用符を生成して、AIKの私用部分を用いてランダムなノンスとともにPCRの引用符を暗号化する。PCRの引用符及びランダムなノンスは、ステップ428でキー・プロバイダに送信される。ランダムなノンスの交換がリプレーアタックから保護することを認識しなければならない。
【0025】
[0028]ステップ430で、キー・プロバイダは、PCRの引用符を確認するステップを実行する。このステップは、AIKの公開部分を使用してTVPから受け取ったデータを解読すること、予想されるPCR値に対してPCRの引用符に含まれるPCR値を比較すること、解読されたランダムなノンスをステップ424で送られたランダムなノンスと比較することを含む。ステップ432で、これらのチェックの全てが合格したと決定される場合は、キー・プロバイダはステップ434でキーを送信し、そしてTVPは、VM構成ファイルを読取るためにキーを使用して、ステップ436で仮想計算機の電源を入れる。一方で、チェックのいずれかが失敗した場合は、キー・プロバイダはステップ438でエラー・メッセージを送信して、TVPによって試みられる仮想計算機の電源投入は不成功である(ステップ440)。
【0026】
[0029]仮想計算機の電源が入れられた後でさえ、TVPは、特定の管理動作が仮想計算機において実行されることを可能にするだけである。図5は、本発明の1つ以上の実施形態による、TVP上で動作する仮想計算機において実行される管理動作を処理する方法を例示するフロー図である。管理動作は、仮想計算機の電源遮断、物理的なコンピュータ間で仮想計算機を移行させること、仮想計算機スナップショットを生成する/元に戻す/破壊すること、仮想計算機から装置を追加/除去すること、及び処理及びメモリ資源を仮想計算機に割り当てることを含む。
【0027】
[0030]ステップ510で、クラウド・マネージャ、仮想計算機管理サーバ、又は管理人は、仮想計算機の管理動作を開始する。特定の管理動作は仮想計算機の機密保護を危うくしない、それで、それらはステップ514で通常の方法で処理される。ステップ512で、ステップ510で開始された管理動作が機密保護関連事項を有し、従って制限された動作であると決定される場合は、TVPは、ステップ516で管理動作を行う許可をキー・プロバイダに要求する。キー・プロバイダは、ステップ518でこの要求を受け取って、ステップ520で、要求された管理動作が顧客のポリシーにより許可されるか否か決定する。それが許可される場合は、要求された管理動作を実行するためのキーはステップ522でTVPに送られて、TVPはステップ528で仮想計算機の管理動作を実行する。それが許可されない場合は、要求の拒否を示すメッセージがステップ522でTVPに送られる。
【0028】
[0031]キー・プロバイダが仮想計算機で実行される管理動作のトレイルを監査できるように、ステップ530はTVPにおいて実施される。一実施形態において、ステップ514及びステップ524が実施された後に、仮想計算機で実行された管理動作はステップ530でキー・プロバイダに報告される。別の実施形態では、報告されるステップ514又はステップ524において実行された管理動作のタイプは、顧客の機密保護ポリシーに規定される。ステップ532で、キー・プロバイダは、報告された動作を格納して、ステップ534で、仮想計算機の機密保護を危うくするかもしれないいかなる動作に対してもそれをモニタする。ありうる機密保護侵害がステップ536で検出される場合は、仮想計算機の電源を切るか、あるいは顧客によって、又は顧客のポリシーに従って予め設定され得るいくつかの他の改善動作を実行する要求は、ステップ538で送られる。実施例は、顧客に送られるか、又はVMを顧客の私用クラウド、すなわち、顧客自身のデータセンターに移行する警報を含むことができる。ステップ540で、仮想計算機は電源を切られるか、あるいは何か他の是正措置は、顧客によって予め設定されるように、又は顧客のポリシーに従って取られる。ありうる機密保護侵害がステップ536で検出されない場合は、フローはステップ534に戻り、そして監査トレイルはモニタされ続けられる。
【0029】
[0032]一つの実施例として、仮想計算機管理サーバ140内で動作するロード・バランシング・モジュールが、物理的なコンピュータ150で動作する仮想計算機の目標物理的なコンピュータへの移行を推奨している場合は、図5に記載されている方法はこの管理動作のためのキーを得るために実施されるだろう。目標物理的なコンピュータが物理的なコンピュータ154である場合は、物理的なコンピュータ154がTVPを動作させないので、要求は拒否される。一方で、目標物理的なコンピュータが物理的なコンピュータ152である場合は、要求は、物理的なコンピュータ152のTPMのPCRの引用符を確認した後に、そして物理的なコンピュータ152のTPMがクラウドX130内のTPMの在庫管理で見つかることを確認した後に与えられる。TVPに送信されるキーは、ネットワークを通じて物理的なコンピュータ150から物理的なコンピュータ152へ動作している仮想計算機のメモリ状態を確実に送信するためのキー、VM構成ファイルを解読するためのキー、及びVMの仮想ディスクを解読するためのキーを含む。代替実施形態では、動作している仮想計算機のメモリ状態が移行した後に、物理的なコンピュータ152のTVPは、図4に関連して記載した方法に従って物理的なコンピュータ152の仮想計算機の電源を入れるためにキーを求めてキー・プロバイダに連絡する。
【0030】
[0033]図5に図示される、TVP上で動作する仮想計算機で実行される管理動作を処理する方法の実施例において、制限された管理動作が行われた後に、監査トレイル・メッセージは送られる。本発明の他の実施形態において、管理動作がステップ512の制限された動作であると決定された後に、そしてこの種の管理動作が実際に行われる前に、例えば、ステップ512と516の間に、監査トレイル・メッセージは送られる。
【0031】
[0034]管理人又はサポート・エンジニアが特定の種類の問題をデバッグすることを可能にするために、新しいシェル・モードをTVPに含ませてもよい。この新しいシェル・モードは、物理的なコンピュータ及びそこにおいて動作するハイパーバイザへのシェル・アクセスを与えるが、TVPがすべてのメモリ及び記憶をスクラブした後にのみであり、それは顧客データを潜在的に漏らす可能性がある。スクラブした後に、PCRの引用符が、サポート・シェルが物理的なコンピュータで開始されたという事実を反映するように、TVPによって、TPMは、TVPのハッシュが記録されたPCRの中へ入るためにシェルのバイナリコードのハッシュを拡張する。この後、仮想計算機は、リブート・プロセスを行わずにこの物理的計算機で再開されることができない。複数の仮想計算機がTVP上で動作している場合は、いずれか1つの仮想計算機のポリシーもサポート・シェルを許可しない場合、それは許可されない。
【0032】
[0035]本発明の別の実施形態において、高信頼ソフトウェア・スタックは高信頼仮想化プラットフォームではないが、通常のユーザアプリケーションを実行できる高信頼プラットフォームである。このような実施形態では、高信頼ソフトウェア・スタックは、仮想計算機カーネルの代わりにオペレーティング・システム・カーネルを含み、そして暗号化されるデータ記憶装置160に格納されるファイルは、アプリケーションのための構成ファイル及びアプリケーションにより作成されて修正されるファイルを含む。
【0033】
[0036]図1に示される本発明の実施形態は、遠隔認証を実行するためのモジュールとしてTPMを含むが、本発明の他の実施形態がいろいろなモジュールを使用して遠隔認証機能を提供できることを認識しなければならない。更にまた、代替の実施形態で、キー・プロバイダは、制限された管理動作を実行するためのキーをあらゆるサーバに送る前に、目標サーバの公開キーを使用してキーを暗号化する。暗号化されたキーは、公開キーと関連付けた私用キー、すなわち、目標サーバの私用キーによってだけ解読することができて、その結果、他のサーバが暗号化されたキーを横取りする場合は、それを解読することができない。更に、高信頼プラットフォームの現在の静的特性が高信頼プラットフォームの前に測定されて記録された静的特性にマッチしないように、目標サーバの高信頼プラットフォームが変化した場合は、暗号化されたキーはその私用キーを使用する目標サーバによってさえも解読することができない。
【0034】
[0037]本発明の更なる実施形態(それは遠隔認証を実行するためのモジュールとしてTPMを用いる本発明の実施形態の拡張である)において、VMで制限された管理動作を実行するための1つ以上のキーは、キー・プロバイダからサーバが受け取った時に暗号化されて、暗号化されたキーはキー・プロバイダへ送り返される。サーバが後で制限された管理動作を実行するためにキーのうちの1つを必要とする場合は、キー・プロバイダは、サーバ上で遠隔認証を実行して、サーバの高信頼プラットフォームが変化しなかったことを確認した後に、暗号化されたキーをサーバに送信する。このように制限された管理動作を実行するためのキーの暗号化がキーのための機密保護の別の層を提供すると認識しなければならない。
【0035】
[0038]本願明細書に記載されているさまざまな実施形態は、コンピュータシステムに格納されたデータを含むさまざまなコンピュータ実行動作を用いることができる。例えば、これらの動作は、通常、しかし必然的にではなく、電気又は磁気信号という形をとる物理的な量の物理的操作を必要とすることがあり、そこではそれら、又はそれらの表現が格納され、移され、結合され、比較されるか、又は操作できる。更に、この種の操作は、生成、識別、決定、又は比較のような用語でしばしば呼ばれる。本発明の1つ以上の実施形態の一部を形成する本願明細書に記載のいかなる動作も、有用な計算機動作であり得る。加えて、本発明の1つ以上の実施形態は、これらの動作を実行する装置又は器具にも関する。器具は特定の必要な目的のために特別に構成されることができるか、あるいは、それはコンピュータに格納されたコンピュータプログラムによって選択的に作動するか又は構成される多目的コンピュータでもよい。特に、さまざまな多目的計算機が、ここに提供されている説明によって記述されるコンピュータプログラムとともに用いられることが可能であるか、又は、必要な動作を実行するためにより専門の器具を構成することがより便利であり得る。
【0036】
[0039]本願明細書に記載されているさまざまな実施形態は、携帯用装置、マイクロプロセッサシステム、マイクロプロセッサ・ベースであるかプログラム可能な家電、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成によって実践できる。
【0037】
[0040]本発明の1つ以上の実施形態は、1つ以上のコンピュータプログラムとして、又は1つ以上の計算機可読の媒体で実現される1つ以上のコンピュータプログラム・モジュールとして実施することができる。用語「計算機可読の媒体」は、その後でコンピュータシステムに入力できるデータを格納できるあらゆるデータ記憶装置を指し、計算機可読の媒体は、コンピュータプログラムをそれらがコンピュータによって読み取られることを可能にする方法で実現するためにいかなる既存又はその後に開発された技術にも基づいてもよい。計算機可読の媒体の例は、ハードディスク、ネットワーク接続ストレージ(NAS)、読出し専用メモリ、ランダムアクセス・メモリ(例えば、フラッシュメモリ装置)、CD―ROM(コンパクトディスク―ROM)、CD―R、又はCD―RW、DVD(デジタル多用途ディスク)、磁気テープ、並びに他の光学及び非光学データ記憶装置を含む。計算機可読のコードが分散方法で格納されて、実行されるように、計算機可読の媒体はネットワーク結合コンピュータシステムにわたって分散することもできる。
【0038】
[0041]本発明の1つ以上の実施形態が、明確に理解するために少し詳細に説明されたけれども、特定の改変と変更態様が請求の範囲内で行われうることは明らかである。したがって、記載されている実施形態は例示的であり、且つ限定的ではないと考えるべきであり、そして請求の範囲は本願明細書に与えられた細部に限定されるべきではなくて、請求の範囲及び相当物の中で変更することができる。請求項において、要素及び/又はステップは、請求項で明確に述べられない限り、動作のいかなる特定の順序も意味しない。
【0039】
[0042]複数の例は、単一の例として本願明細書に記載されている構成要素、動作、又は構造のために提供されることができる。最後に、さまざまな構成要素、動作、及びデータ記憶装置の間の境界はいくぶん任意であり、そして特定の動作は特定の例示的構成との関係において示される。機能の他の配分が構想されて、本発明の範囲内に納まることができる。一般に、例示的な構成において、別々の構成要素として提示される構造及び機能は、複合構造又は構成要素として実施できる。同様に、単一の構成要素として提示される構造及び機能は別々の構成要素として実施できる。これらの、そして他の変形、変更態様、追加、及び改善は、添付の請求の範囲に納まることができる。
図1
図2
図3
図4
図5