(57)【特許請求の範囲】
【請求項１】
信頼できるホスト環境が仮想計算機（ＶＭ）の要件に準拠しているという妥当性確認を提供するためのシステムであって、前記システムが、
前記信頼できるホスト環境に関連する構成データであって、前記信頼できるホスト環境における前記ＶＭの呼び出し中に生成される構成データを少なくとも１つの暗号データ構造に暗号で保管するための保管コンポーネントと、
前記保管コンポーネントが前記構成データを保管したことに応答して、前記少なくとも１つの暗号データ構造を制御コンポーネントに送信するための送信コンポーネントと、
前記制御コンポーネントが前記少なくとも１つの暗号データ構造を受信したことに応答して、前記少なくとも１つの暗号データ構造を分析し、前記ＶＭの呼び出しのイベント詳細および構成レジスタ値を含む構成データを決定するための分析コンポーネントと、
前記イベント詳細を用いてイベントをシミュレートすることにより、シミュレートされた前記イベントに対応する構成レジスタ値を確立するためのリプレイ・コンポーネントと、
前記分析コンポーネントが前記構成データを決定したことに応答して、前記構成データを前記要件と比較するための比較コンポーネントであって、前記構成データに含まれる構成レジスタ値を前記イベントに対応する構成レジスタ値と比較し、一致しなければ前記ホスト環境が信頼できないことを示すための比較コンポーネントと、
前記構成データが前記要件と一致すると前記比較コンポーネントが判断したことに応答して、前記信頼できるホスト環境内の前記ＶＭの検証を可能にするための検証コンポーネントと
を含む、システム。
【請求項２】
前記構成データが前記要件と一致しないと前記比較コンポーネントが判断したことに応答して、前記信頼できるホスト環境内の前記ＶＭの検証を否定するために前記検証コンポーネントがさらに動作可能である、請求項１記載のシステム。
【請求項３】
前記保管コンポーネントがハイパーバイザである、請求項１ないし２のいずれか一方に記載のシステム。
【請求項４】
前記保管コンポーネントが前記ＶＭと通信状態にある、請求項１ないし３のいずれかに記載のシステム。
【請求項５】
前記少なくとも１つの暗号データ構造が少なくとも１つのプラットフォーム構成レジスタ（ＰＣＲ）である、請求項１ないし４のいずれかに記載のシステム。
【請求項６】
前記少なくとも１つの暗号データ構造が前記ＶＭの他の信頼できるホスト環境に関連付けられる、請求項１ないし５のいずれかに記載のシステム。
【請求項７】
前記信頼できるホスト環境がトラステッド・プラットフォーム・モジュールを含む、請求項１ないし６のいずれかに記載のシステム。
【請求項８】
前記システムが、前記信頼できるホスト環境を含む第１のサーバと前記制御コンポーネントを含む第２のサーバとをさらに含む、請求項１ないし７のいずれかに記載のシステム。
【請求項９】
信頼できるホスト環境が仮想計算機（ＶＭ）の要件に準拠しているという妥当性確認を提供するための方法であって、前記方法が、
前記信頼できるホスト環境に関連する構成データであって、前記信頼できるホスト環境における前記ＶＭの呼び出し中に生成される構成データを少なくとも１つの暗号データ構造に暗号で保管するステップと、
前記構成データを保管する前記ステップに応答して、前記少なくとも１つの暗号データ構造を制御コンポーネントに送信するステップと、
前記少なくとも１つの暗号データ構造を受信する前記ステップに応答して、前記少なくとも１つの暗号データ構造を分析し、前記ＶＭの呼び出しのイベント詳細および構成レジスタ値を含む構成データを決定するステップと、
前記イベント詳細を用いてイベントをシミュレートすることにより、シミュレートされた前記イベントに対応する構成レジスタ値を確立するステップと、
前記構成データを決定する前記ステップに応答して、前記構成データを前記要件と比較するステップであって、前記構成データに含まれる構成レジスタ値を前記イベントに対応する構成レジスタ値と比較し、一致しなければ前記ホスト環境が信頼できないことを示すステップと、
前記構成データが前記要件と一致すると判断する前記ステップに応答して、前記信頼できるホスト環境内の前記ＶＭの検証を可能にするステップと
を含む、方法。
【請求項１０】
前記方法が、前記構成データが前記要件と一致しないと判断する前記ステップに応答して、前記信頼できるホスト環境内の前記ＶＭの検証を否定することをさらに含む、請求項９記載の方法。
【請求項１１】
前記信頼できるホスト環境に関連する構成データを少なくとも１つの暗号データ構造に暗号で保管する前記ステップが、前記信頼できるホスト環境に関連する構成データを少なくとも１つのプラットフォーム構成レジスタ（ＰＣＲ）に暗号で保管するステップを含む、請求項９ないし１０のいずれかに記載の方法。
【請求項１２】
前記方法が、前記少なくとも１つの暗号データ構造を前記ＶＭの他の信頼できるホスト環境に関連付けるステップをさらに含む、請求項９ないし１１のいずれかに記載の方法。
【請求項１３】
前記信頼できるホスト環境がトラステッド・プラットフォーム・モジュールを含む、請求項９ないし１２のいずれかに記載の方法。
【請求項１４】
前記信頼できるホスト環境を含む第１のサーバを提供するステップと、前記制御コンポーネントを含む第２のサーバを提供するステップとをさらに含む、請求項９ないし１３のいずれかに記載の方法。
【請求項１５】
請求項９ないし１４のいずれかに記載の方法の各ステップをコンピュータに実行させるコンピュータ・プログラム。
【請求項１６】
請求項１５に記載のコンピュータ・プログラムをコンピュータ可読媒体上に記録した、コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ仮想計算機（virtual machine）に関する。特に、本発明は、仮想計算機の妥当性確認（validation）のための装置および方法に関する。
【背景技術】
【０００２】
仮想計算機（ＶＭ）は、物理的コンピュータをソフトウェアで実現したものである。物理計算機（physical machine）上で実行するように設計されたコンピュータ・プログラムは、ＶＭ上で実行されたときに同じように実行する。ＶＭは、完全なオペレーティング・システム（ＯＳ）をサポートするための完全なシステム・プラットフォームを提供する。物理計算機は、それぞれが異なるＯＳを実行する異なるＶＭを使用する複数のユーザ間で共用することができる。
【０００３】
現代のプロセッサ・アーキテクチャは、複数のオペレーティング・システムおよびＶＭが単一の物理計算機上で実行できるようにする仮想化技法を使用可能にした。これらの技法は、物理的ハードウェアのすぐ上で実行され、それぞれの仮想計算機内で実行されるオペレーティング・システムに仮想ハードウェア層を提供することにより物理的ハードウェアへのアクセスを仲介する、ハイパーバイザ層を使用する。ハイパーバイザは、「ネイティブＶＭ（native VM）」と連携して物理計算機上で動作することができる。代わって、ハイパーバイザは、より高いソフトウェア・レベルで動作する「ホスト型ＶＭ（hosted VM）」と連携して、物理計算機上で実行されるオペレーティング・システム内で動作することができる。
【０００４】
ＶＭ技術の例は以下の通りである。
●Ｌｉｎｕｘ（Ｒ）カーネルベース仮想計算機（ＫＶＭ）：  ＫＶＭを実行する基本的なＬｉｎｕｘの上で１つまたは複数のＬｉｎｕｘまたはＭｉｃｒｏｓｏｆｔ（Ｒ）Ｗｉｎｄｏｗｓ（Ｒ）の仮想計算機を実行できるようにするものである。
●Ｘｅｎ：  Ｌｉｎｕｘの上でゲスト（仮想化）Ｌｉｎｕｘを実行できるようにするものである。
●Ｐａｒａｌｌｅｌｓ：  Ｍａｃ  ＯＳ  Ｘの上でＬｉｎｕｘおよびＷｉｎｄｏｗｓを可能にするものである。
●ＶＭＷａｒｅ：  Ｍａｃ  ＯＳ  Ｘ、Ｗｉｎｄｏｗｓ、およびＬｉｎｕｘシステムの上でＬｉｎｕｘおよびＷｉｎｄｏｗｓシステムを可能にするものである。
（Ｌｉｎｕｘは、米国、その他の国、またはその両方におけるＬｉｎｕｓ  Ｔｏｒｖａｌｄｓ氏の登録商標である。ＭｉｃｒｏｓｏｆｔおよびＷｉｎｄｏｗｓは、米国、その他の国、またはその両方におけるＭｉｃｒｏｓｏｆｔ社の商標である。）
【０００５】
トラステッド・プラットフォーム・モジュール（ＴＰＭ：Trusted Platform Module）は、Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ（ＴＣＧ）によって定義されたセキュリティ規格に準拠しているシステムである。これは典型的に、情報を保護する暗号鍵を提供するコンピュータ・システムのコンポーネントとして実現される。また、ＴＰＭは、コンピュータ・システムに対する変更を認定当事者によって検出できるようにする遠隔証明（remote attestation）を提供することもできる。ＴＰＭは、ハードウェア、ソフトウェア、または組み合わせとして実現することができる。
【０００６】
仮想ＴＰＭ（ｖＴＰＭ）は、ハイパーバイザ上で実行されるＶＭにＴＰＭサービスを提供する。ｖＴＰＭはソフトウェアで実現されたＴＰＭとして定義され、これはＶＭだけでなく何に対してもＴＰＭサービスを提供することができる。ＶＭおよびそれに関連するｖＴＰＭは、ＶＭがある物理計算機から他の物理計算機に移行する場合でも、ＶＭの有効期間の間、安全に維持される。ｖＴＰＭは、それが関係する信頼できるコンピューティング・ベースに対する安全な関連付けも維持しなければならない。
【０００７】
ｖＴＰＭは、ＶＭ内のユーザ・スペース内でホストとして処理されるか、安全なコプロセッサ内にあるか、またはそれ自体の個別のＶＭ内でホストとして処理される可能性がある。
【０００８】
データセンタ内に配備されたＶＭは、それが実行される環境について多くの要件を有することになる。これらの要件は、ハードウェアのタイプから、ＶＭの視界および制御から外れた何らかの低レベル・システム構成に及ぶ可能性がある。このような要件は、サービス・レベル・アグリーメント（ＳＬＡ）に指定される可能性があり、業界規制の一部を形成する可能性がある。ＶＭはシステムからシステムへ移行するので、このような要件の１つに反することは容易である。また、管理者は自分のシステムに対して変更を行うので、ＶＭの要件に気付かない可能性があり、この場合も要件に反することになる。
【０００９】
リモート・データセンタ内にＶＭを配備したシステム所有者の場合、これらの要件が満たされていることを妥当性確認する際に大変な困難が発生することになる。データセンタ・システムを見ることができるシステム所有者でも、依然として、その要件が満たされていることを妥当性確認するのは不便なことであると気付く可能性がある。
【００１０】
ＶＭの使用はプラットフォーム所有者に対してコスト上の利益をもたらすが、悪意のある攻撃からＶＭを保護する必要がある。手法の１つは、ハードウェアベースのトラステッド・プラットフォーム・モジュール（ＴＰＭ）などのルート・オブ・トラスト（root of trust）を使用することであり、これは、オペレーティング・システム、ハイパーバイザ、およびＶＭ内で実行されるアプリケーションを含む、プラットフォーム上で実行されるすべてのソフトウェアの保全性を査定するものである。ＴＰＭは、ソフトウェア・コンポーネントの暗号ハッシュにデジタル署名することにより、遠隔証明を可能にする。これに関連して、「証明」はブートされた正確なソフトウェア／ハードウェア・コンポーネントの証拠を提供することを意味し、「検証」はこれらの値が適切であるかどうかを判断することを意味し、「妥当性確認」は証明、検証、またはそれらの組み合わせの結果を意味する。
【００１１】
ＴＰＭおよびＴｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇは、サービス・レベル・アグリーメント（ＳＬＡ）に反する可能性のある状況に対する保護は行わない。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
したがって、当技術分野では、既知の信頼できるコンピューティング・システムの短所に対処する必要がある。
【課題を解決するための手段】
【００１３】
第１の態様から見ると、本発明は、信頼できるホスト環境（trusted host environment）が仮想計算機（ＶＭ）の要件に準拠しているという妥当性確認を提供するためのシステムを提供し、このシステムは、信頼できるホスト環境に関連する構成データを少なくとも１つの暗号データ構造に暗号で保管するための保管コンポーネントと、保管コンポーネントが構成データを保管したことに応答して、少なくとも１つの暗号データ構造を制御コンポーネントに送信するための送信コンポーネントと、制御コンポーネントが少なくとも１つの暗号データ構造を受信したことに応答して、少なくとも１つの暗号データ構造を分析するための分析コンポーネントと、分析コンポーネントが構成データを決定したことに応答して、構成データを要件と比較するための比較コンポーネントと、構成データが要件と一致すると比較コンポーネントが判断したことに応答して、信頼できるホスト環境内のＶＭの検証を可能にするための検証コンポーネントとを含む。
【００１４】
好ましくは、本発明は、構成データが要件と一致しないと比較コンポーネントが判断したことに応答して、信頼できるホスト環境内のＶＭの検証を否定するために検証コンポーネントがさらに動作可能である、システムを提供する。
【００１５】
好ましくは、本発明は、保管コンポーネントがハイパーバイザであり、少なくとも１つの暗号データ構造が少なくとも１つのプラットフォーム構成レジスタ（ＰＣＲ）であり、少なくとも１つの暗号データ構造がＶＭの他の信頼できるホスト環境に関連付けられ、信頼できるホスト環境がトラステッド・プラットフォーム・モジュールを含み、このシステムが、信頼できるホスト環境を含む第１のサーバと制御コンポーネントを含む第２のサーバとをさらに含む、システムを提供する。
【００１６】
第２の態様から見ると、本発明は、信頼できるホスト環境が仮想計算機（ＶＭ）の要件に準拠しているという妥当性確認を提供するための方法を提供し、この方法は、信頼できるホスト環境に関連する構成データを少なくとも１つの暗号データ構造に暗号で保管するステップと、構成データを保管するステップに応答して、少なくとも１つの暗号データ構造を制御コンポーネントに送信するステップと、少なくとも１つの暗号データ構造を受信するステップに応答して、少なくとも１つの暗号データ構造を分析するステップと、構成データを決定するステップに応答して、構成データを要件と比較するステップと、構成データが要件と一致すると判断するステップに応答して、信頼できるホスト環境内のＶＭの検証を可能にするステップとを含む。
【００１７】
好ましくは、本発明は、この方法が、構成データが要件と一致しないと判断するステップに応答して、信頼できるホスト環境内のＶＭの検証を否定することをさらに含む、方法を提供する。
【００１８】
好ましくは、本発明は、信頼できるホスト環境に関連する構成データを少なくとも１つの暗号データ構造に暗号で保管するステップが、信頼できるホスト環境に関連する構成データを少なくとも１つのプラットフォーム構成レジスタ（ＰＣＲ）に暗号で保管するステップを含み、この方法が、少なくとも１つの暗号データ構造をＶＭの他の信頼できるホスト環境に関連付けるステップをさらに含み、信頼できるホスト環境がトラステッド・プラットフォーム・モジュールを含み、この方法が、信頼できるホスト環境を含む第１のサーバを提供するステップと、制御コンポーネントを含む第２のサーバを提供するステップとをさらに含む、方法を提供する。
【００１９】
他の態様から見ると、本発明は、信頼できるホスト環境が仮想計算機（ＶＭ）の要件に準拠しているという妥当性確認を提供するためのコンピュータ・プログラム製品（computer program product）を提供し、このコンピュータ・プログラム製品は、処理回路によって読み取り可能であり、本発明の諸ステップを実行するための方法を実行するために処理回路による実行のための命令を保管するコンピュータ可読記憶媒体を含む。
【００２０】
他の態様から見ると、本発明は、コンピュータ可読媒体上に保管され、デジタル・コンピュータの内部メモリにロード可能であり、コンピュータ上で実行されるときに、本発明の諸ステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【００２１】
有利なことに、本発明は、その要件が満たされていることを検証するためにシステム所有者が遠隔検証を使用できるようにする方法を提供する。本発明は、仮想トラステッド・プラットフォーム・モジュール（ｖＴＰＭ）の使用を拡張して、ＶＭソフトウェア構成だけでなくそれ以上を報告する。
【００２２】
有利なことに、遠隔検証の既存の方法は、依然として、システムのトラステッド・ブート（Trusted Boot）を使用して行うことができ、したがって、既知で信頼できるソフトウェア構成を実行していることを確信することができる。
【００２３】
有利なことに、ＶＭ所有者は、システム・ハイパーバイザによる使用のためにプラットフォーム構成レジスタ（ＰＣＲ）を予約することにより、システムの環境要件をチェックすることもできる。ハイパーバイザは、仮想計算機の下に位置し、システムのハードウェアを直接制御できる。ハイパーバイザは、ＶＭ環境要件に関するシステム状況および構成について報告するのに最良の立場にある。ｖＴＰＭデバイスが仮想であり、ハイパーバイザからロードされている場合、解決策は、その環境を反映するためにハイパーバイザが１つまたは複数のＰＣＲを設定できるようにすることである。ＶＭが実行され、検証が実行されると、ＶＭ所有者は、ＰＣＲにより環境の状態を見ることができ、したがって、その要件が満たされていることをチェックすることができる。有利なことに、ＶＭ所有者の所有者は、システム上で実行されているＶＭにアクセスできるときにのみ、システム設定をチェックすることができる。
【００２４】
有利なことに、ｖＴＰＭとハイパーバイザは互いに通信する。ＰＣＲ（複数も可）は、ＶＭから見えない項目の測定値を保管するために割り当てられる。有利なことに、ＶＭの下のコンポーネントは、関心のある項目を測定するために協力し、その測定値をｖＴＰＭのＰＣＲ（複数も可）内に伝搬する。遠隔検証は、割り当てられたＰＣＲ（複数も可）をポリシーと照らし合わせて妥当性確認することもできる。ＶＭが証明されると、それはブートされたソフトウェアの状態だけでなく、ＶＭが実行されているサーバに関する何らかの情報についても報告する。
【００２５】
有利なことに、システムがフレキシブル・サービス・プロセッサ（ＦＳＰ）の「ｄｅｖ」ユーザなどの環境要件に準拠していることを保証するために、証明機構が、たとえば、ＰＣＲ８の妥当性確認機能を含むことができるように既知のツールを拡張することができる。これは、このような要件を備えた多くのＶＭの管理を容易にするものである。ＦＳＰは、ＩＢＭ（Ｒ）のＰＯＷＥＲ６（Ｒ）システム上に常駐する小型の制御コンピュータ・システムである。（ＩＢＭおよびＰＯＷＥＲ６は、米国、その他の国、またはその両方におけるＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ社の商標である。）
【００２６】
現在の最新技術では、ＶＭにはこのような構成についてＦＳＰをチェックする方法がない。ＦＳＰ、ハイパーバイザ、およびｖＴＰＭはすべて接続され、互いに測定し、割り当てられたＰＣＲを介して測定値を報告することができるので、本発明はこの点について対処するものである。
【００２７】
有利なことに、そのＶＭが特定のタイプの中央演算処理装置（ＣＰＵ）上で実行されることを要求するサービス・レベル・アグリーメント（ＳＬＡ）により、ＰＣＲおよび証明を介してこのようなデータを報告することは顧客にとって価値のあることである。証明およびその後の検証は、特にＶＭが任意の時点で他の物理システムに移行される場合にＳＬＡを満たしていることを証明するのに役立つであろう。
【００２８】
有利なことに、ＶＭ所有者は、システム上で実行されているＶＭにアクセスできるときにのみ、システム設定をチェックすることができる。項目の測定値を保管するために割り当てられたＰＣＲはＶＭから見えない。ＶＭの下のコンポーネントは、関心のある項目を測定するために協力し、たとえば、ｖＴＰＭとハイパーバイザが互いに通信することにより、その測定値をｖＴＰＭのＰＣＲ内に伝搬する。証明および検証は、割り当てられたＰＣＲをポリシーと照らし合わせて妥当性確認することができる。
【００２９】
次に、以下の図に例示されているように、好ましい諸実施形態に関連して、例としてのみ、本発明について説明する。
【図面の簡単な説明】
【００３０】
【図１】本発明の好ましい一実施形態を実現可能である、従来技術によるデータ処理システムを描写するブロック図である。
【図２】本発明の好ましい一実施形態を実現可能である、従来技術による２つの物理的サーバを描写するブロック図である。
【図３】本発明の好ましい一実施形態により、仮想計算機（ＶＭ）の信頼できるデータを提供するための動作方法ステップを描写する高レベルで模範的な概略流れ図である。
【図４】本発明の好ましい一実施形態により、信頼できるホスト環境がＶＭの要件に準拠しているという妥当性確認を提供するための動作方法ステップを描写する高レベルで模範的な概略流れ図である。
【図５】本発明の好ましい一実施形態によるプラットフォーム構成レジスタ（ＰＣＲ）を描写するブロック図である。
【図６】本発明の好ましい一実施形態によるサーバを描写するブロック図である。
【図７】本発明の好ましい一実施形態により、サーバと通信状態にあるワークステーション上で動作可能な制御プログラムを描写するブロック図である。
【発明を実施するための形態】
【００３１】
図１は、本発明の好ましい一実施形態を実現可能である、従来技術によるデータ処理システム１００を描写するブロック図である。データ処理システムは、ワークステーション１２０と、サーバ１５０、１６０とを含む。ワークステーション１２０およびサーバ１５０、１６０はネットワーク１１０により接続可能である。
【００３２】
サーバ１５０は、異なるオペレーティング・システムを実行している２つの仮想計算機（ＶＭ）１５２、１５６を含む。アプリケーション１５４、１５８は、それぞれ、ＶＭ１５２、１５６上で動作可能である。サーバ１６０は１つのＶＭ１６６を含む。アプリケーション１６８はＶＭ１６６上で動作可能である。ユーザ１１４は、ワークステーション１２０上のアプリケーション・クライアント・プログラム１３４と対話することにより、アプリケーション１５４、１５８、１６８にアクセスする。管理者１１４は、ワークステーション１２０上で動作可能な制御プログラム１１８によりデータ処理システム１００を制御する。
【００３３】
図２は、本発明の好ましい一実施形態を実現可能である、従来技術による２つのサーバ１５０、１６０を描写するブロック図である。ハイパーバイザ２５６は、物理的サーバ１５０の物理的ハードウェア２５２上で動作可能であり、ネイティブＶＭ１５２、１５６がその上で実行できるようにする。ＶＭ１５２、１５６は、それぞれ、互いに隔離され、実システム全体で実行されている場合のように動作可能である。ハイパーバイザ２５６は、ＶＭ１５２、１５６がその仮想化ハードウェア装置（たとえば、イーサネット・カード、または小型コンピュータ・システム・インターフェース（ＳＣＳＩ）コントローラ）にアクセスしたいと希望するときに、ハイパーバイザ２５６がこれらの命令をインターセプトして、それを物理的ハードウェア２５２へのアクセスに変換するように、それぞれのＶＭ１５２、１５６に関するハードウェアをエミュレートする。
【００３４】
オペレーティング・システム（ＯＳ）２６４は物理的サーバ１６０の物理的ハードウェア２６２上で動作可能である。ハイパーバイザ２６６はＯＳ２６４上で動作可能である。ゲストＶＭ１６６はハイパーバイザ２６６上で動作可能である。ＶＭ２８０はＯＳ２６４上で動作可能である。
【００３５】
システム・トランスレータ（ＳＴ）２６８は、ある命令セット・アーキテクチャ（ＩＳＡ）（たとえば、ＳｕｎのＳＰＡＲＣ）のために設計されたシステム全体（ＯＳ２６４およびアプリケーション１５４、１５８）が異なるＩＳＡシステム（たとえば、ＩＢＭ（Ｒ）のＰＯＷＥＲ６（Ｒ））上で実行できるようにするソフトウェア・コンポーネントである。（ＩＢＭおよびＰＯＷＥＲ６は、米国、その他の国、またはその両方におけるインターナショナル・ビジネス・マシーンズ社の商標である。）ＳＴ２６８は、ＶＭ２８０と物理的ハードウェア２６２との間の層として位置する。
【００３６】
図２に描写されているように、ＳＴ２６８はゲストＶＭ２８０内のオペレーティング・システム（図示せず）内で動作可能である。この場合、システム変換機能を提供するＯＳ２６４およびユーザスペース・プログラムが始動する。ＳＴ２６８は、物理計算機１５０、１６０上で実行される複数のＶＭ１５２、１５６、１６６のためにハイパーバイザ２５６、２６６が提供する同様のサービスを単一のＶＭ２８０に提供する。ＳＴ２６８はハイパーバイザ２５６、２６６と同じようにハードウェアをエミュレートするが、異なるアーキテクチャ用のハードウェアは除く。加えて、ＳＴ２６８は、ＶＭ２８０が実行したいと希望する命令を変換する。システム・トランスレータは典型的に、あるＩＳＡから他のＩＳＡに機械命令を変換するために動的バイナリ変換（dynamic binary translation）を使用する。また、ハードウェア・エミュレーションは、計算機全体をエミュレートし、システム・イメージ全体を変更なしで実行できるように使用される。
【００３７】
代替の一実施形態では、ＳＴ２６８はハイパーバイザ２６６の一部として動作可能である。代替の一実施形態では、ＳＴ２６８はハイパーバイザ２６６のすぐ上で動作可能である。この実施形態では、ＳＴ２６８は、ＶＭ１５２、１５６、１６６、２８０内で実行されるＯＳのように動作する。代替の諸実施形態では、ＳＴ２６８は、ネイティブＯＳ２６４内で動作可能であるか、ネイティブＯＳ２６４の上の層として動作可能であるか、またはＶＭ１５２、１５６、１６６、２８０と物理的ハードウェア２５２、２６２との間で動作可能である。
【００３８】
通常動作におけるＳＴ２６８の諸機能は、命令を変換することと、ハードウェアをエミュレートすることを含む。命令の変換は、異なる物理アーキテクチャ上でＶＭ２８０が必要とする命令を実行するために、動的バイナリ変換を使用する。ハードウェアのエミュレーションは、変換されたＯＳが存在することが期待されるハードウェアをエミュレートするためのメカニズムを提供する。これは、たとえば、ネットワーク・カード、メモリ・コントローラ、割り込みコントローラ、読み取り専用メモリ（ＲＯＭ）、およびランダム・アクセス・メモリ（ＲＡＭ）を含む。
【００３９】
図３は、図４、図５、図６、および図７に併せて読むべきものであり、本発明の好ましい一実施形態により、仮想計算機（ＶＭ）の信頼できるデータを提供するための動作方法ステップを描写する高レベルで模範的な概略流れ図３００である。図４は、本発明の好ましい一実施形態により、信頼できるホスト環境がＶＭの要件７２０に準拠しているという妥当性確認を提供するための動作方法ステップを描写する高レベルで模範的な概略流れ図４００である。図５は、本発明の好ましい一実施形態によるプラットフォーム構成レジスタ（ＰＣＲ）５０５、５５５を描写するブロック図である。図６は、本発明の好ましい一実施形態によるサーバ１５０を描写するブロック図６００である。図７は、本発明の好ましい一実施形態により、サーバ１５０と通信状態にあるワークステーション１２０上で動作可能な制御プログラム１１８を描写するブロック図である。
【００４０】
一例としてのみＩＢＭのＰＯＷＥＲ６仮想化アーキテクチャを使用して、本発明について説明する。当業者であれば、本発明が他の仮想化アーキテクチャにも等しく適用可能であることを認識するであろう。
【００４１】
本発明を例示するための一例として、遠隔証明は、「サンプル」ユーザ・アカウントが基本的なサーバ上で使用可能になっているかどうかという状況に関心がある。当業者であれば、遠隔証明が基本的なサーバに関する任意の数の情報項目に関心がある可能性があることを認識するであろう。たとえば、本発明によって記載されたメカニズムを介して、デバッグ・モード、ダンピング・モード、障害フラグ、ファームウェア・バージョン、ハードウェア設定、およびその他多数などのその他の構成フラグを報告することができる。
【００４２】
この方法はステップ３０１から始まり、サーバ１５０に電力が加えられる。ステップ３０５では、基本入出力システム（ＢＩＯＳ）がサーバ１５０のハードウェアを呼び出す。サーバ１５０は、サーバのハイパーバイザ（ＰＨＹＰとしても知られている）６４５用のコード６３５および構成６３５が常駐する、不揮発性記憶装置（ＮＶＲＡＭ）６３０も含む。フレキシブル・サービス・プロセッサ（ＦＳＰ）６０５という小型の制御コンピュータ・システムはＰＯＷＥＲシステム上に常駐する。ＦＳＰ６０５は、ＮＶＲＡＭ６３０を制御し、ローダ・コード６１０を使用してハイパーバイザ６４５をロードし更新する責任がある。ハイパーバイザ６４５に対する制御および更新は限定的なものと見なされ（デジタル署名付き更新のみを適用することができる）、したがって、ハイパーバイザ６４５はコアルート・オブ・トラスト（ＣＲＴ）の一部を形成し、信頼できるものと見なされる。ステップ３１０では、ハイパーバイザ・コード６３５がロードされ、ハイパーバイザ６４５がサーバ１５０のために始動する。
【００４３】
サーバ１５０が呼び出されると、トラステッド・プラットフォーム・モジュール（ＴＰＭ）プロセス３１５が始動し、ホスト・データベース６２２にイベントを記録し、測定した結果を１組のＰＣＲ５０５内のＴＰＭ６２８に暗号で保管する。ＴＰＭ６２８は、サーバ・ハードウェア６２０上の安全な位置に保管される。トラステッド・ブートは、コンピューティング・システム内で信頼の連鎖（chain of trust）をブートして確立するための手順である。ＴＰＭプロセス３１５を使用すると、ブートのコンポーネントを暗号で測定し、結果をＴＰＭ６２８のＰＣＲ５０５に暗号で保管することができる。ＰＣＲ５０５は電源投入時に初期設定され、拡張機能を使用して変更される。それぞれのブート・コンポーネントは、次のブート・コンポーネントを表すバイト・アレイのハッシュ値を計算することにより、次のブート・コンポーネントを測定する。その結果の値は既存のＰＣＲ５０５と暗号で連結される。この呼び出しが完了すると、最終組のＰＣＲ５０５は信頼の連鎖を表す。システムが実行されると、制御プログラム１１８内の遠隔証明手順、たとえば、ＤＡＡ（直接匿名証明）を使用してリモート・システムによる検査のために信頼の連鎖を抽出することができる。ＰＣＲ５０５の値は、サーバを信頼できるかどうかを判断するために使用される。ＰＣＲ拡張プロセスが、たとえば、ＢＩＯＳ、ブート・ローダ（たとえば、ハイパーバイザ・ロード）、任意のネイティブ・オペレーティング・システム（ＯＳ）２６４のスタートアップ、および任意のネイティブ・アプリケーションの起動を含む、ブート・プロセス全体を通過するようなプロセスが存在する。図５は、呼び出しプロセスのための異なるハッシュ値の位置を示す、模範的な１組のＰＣＲ５０５を描写している。たとえば、ＰＣＲ＿０は、フィールド５１０内に測定用のコアルート・オブ・トラスト（ＣＲＴＭ）のハッシュ値を含む。ＣＲＴＭは、ＢＩＯＳブート・ブロック・コードを表し、永続的に信頼できるものと見なされる。
【００４４】
ステップ３２０では、ハイパーバイザがＶＭ１５２のうちの１つを呼び出す。ＮＶＲＡＭ６３０は、仮想トラステッド・プラットフォーム・モジュール（ｖＴＰＭ）コード６４０も含む。それぞれのＶＭ１５２、１５６はハイパーバイザ６４５の上で実行され、関連のｖＴＰＭ５５５によりＶＭ１５２、１５６はトラステッド・ブートおよびその後の遠隔証明を実行できるようになる。ステップ３２５では、ｖＴＰＭコード６４０がロードされる。ＶＭ１５２はＶＭデータベース６６５内に呼び出しイベントを記録し、その呼び出し中にそのｖＴＰＭ６５５内に１組の仮想ＰＣＲ（ｖＰＣＲ）５５５も構築する。ステップ３０５、３１０、および３１５における初期システムの呼び出しと同様に、ソフトウェア・コンポーネントがロードされ（ステップ３３０）、次に続くコンポーネントが暗号で測定され（ステップ３３５）、結果がｖＰＣＲ５５５に保管される（ステップ３４０）。ステップ３４５では、ＶＭ１５２が完全に呼び出されたかどうかの判断が行われる。ロードすべき追加のコンポーネントがある場合、ステップ３３０に制御が返される。追加のコンポーネントは、アプリケーション１５４、１５８、１６８を含むことができるであろう。好ましい一実施形態では、ｖＰＣＲ５５５の更新に関する責任がハイパーバイザ６４５に渡される。代替の一実施形態では、ＶＭ１５２がそのｖＰＣＲ５５５を更新する。この例では、８段階のＶＭ１５２の呼び出しが存在するので、ｖＰＣＲ＿０〜ｖＰＣＲ＿７が更新される。
【００４５】
ｖＴＰＭは様々な位置に保管することができる。好ましい一実施形態では、それぞれのＶＭ１５２、１５６はそれ自体の関連ｖＴＰＭ６５５を制御する。代替の一実施形態では、すべてのｖＴＰＭ６５５が管理ＶＭによって制御され、アクセスは対応するＶＭ１５２、１５６から適切なｖＴＰＭ６５５に対して行われる。当業者であれば、ｖＴＰＭ６５５を制御するためにいくつかの異なる設計を提供できることを認識するであろう。
【００４６】
ロードすべき追加のコンポーネントがない場合、ＶＭ１５２の呼び出し後、制御はステップ３５０に移行する。ステップ３５０では、ハイパーバイザ６４５がｖＰＣＲ＿８  ５６５へのアクセスを許可される。ｖＰＣＲ＿８  ５６５はステップ３２０によって使用されない。ステップ３５５では、ＦＳＰ６０５がサーバ１５０の「／ｅｔｃ／ｐａｓｓｗｄ」ファイルのセキュア・ハッシュ・アルゴリズム−１（ＳＨＡ−１）というハッシュ関数を記録し、これはデフォルト構成では既知の測定値を有する。当業者であれば、他の暗号アルゴリムを使用できることを認識するであろう。ステップ３６０では、ＦＳＰ６０５とハイパーバイザ６４５が協力してこの測定値を渡し、ハッシュでＰＣＲ＿８  ５６５を拡張する。信頼できるホスト環境に関連する構成データを保存するために識別されたＰＣＲ５６５は、この使用のみのために予約される。ステップ３６５では、その信頼性を危険にさらすような不注意なアクセスを行わないように保証するために、ｖＴＰＭ６５５へのアクセスが保護される。
【００４７】
代替の一実施形態では、ハイパーバイザ６４５は、ＶＭ呼び出しステップ３２０によって使用されない２つ以上のｖＰＣＲ位置にシステム情報を記録する。
【００４８】
ステップ３７０では、サーバ１５０の「／ｅｔｃ／ｐａｓｓｗｄ」ファイルに対する更新が存在する場合、制御がステップ３５０に戻される。たとえば、管理者１１４は、ＦＳＰ６０５に対する変更を行って、「ｄｅｖ」ユーザ・アカウントを使用可能にする。「／ｅｔｃ／ｐａｓｓｗｄ」ファイルのＳＨＡ−１ハッシュは、他の既知の値になるように変化する。この実施形態では、ハイパーバイザ６４５は、この新しい測定値でもう一度ＰＣＲ＿８  ５６５を拡張するようｖＴＰＭ６５５に指示し、仮想データベース６６５にその更新を記録するようＶＭ１５２に指示し、ＦＳＰの「／ｅｔｃ／ｐａｓｓｗｄ」ファイルの状態を反映する新しくかつ固有であるが既知で予測可能な値をＰＣＲ＿８  ５６５に提供する。
【００４９】
ステップ３９９では、この方法が図４の妥当性確認方法に移行する。
【００５０】
ステップ４０５では、ＶＭ１５２に対する遠隔証明を実行するための要求が制御プログラム１１８によって受信される。ステップ４１０では、制御プログラム１１８がＶＭ１５２へのアクセスを要求する。ステップ４１５では、制御プログラム１１８がＶＭ１５２へのアクセスを認可されることを保証するために、制御プログラム１１８のリモート・マネージャ７３５とＶＭ１５２のリモート・クライアント７５５との間で暗号鍵交換が行われる。
【００５１】
ステップ４２０では、ＶＭ１５２が制御プログラム１１８にメッセージ７８０を送信する。メッセージ７８０は、ＰＣＲ＿０〜ＰＣＲ＿７内の値に対応する第１の値７８２と、ＰＣＲ＿８  ５６５に関する第２の値７８４と、ＶＭ１５２の呼び出しに対応する第１のイベントの詳細７８６と、「／ｅｔｃ／ｐａｓｓｗｄ」ファイル値の記録に対応する第２のイベント（複数も可）７８８の詳細７８８とを含む。ステップ４２５では、制御プログラム１１８がメッセージ７８０を受信する。ステップ４３０では、分析コンポーネント７１５がメッセージ７８０を分析して、第１の値７８２と、第２の値７８４と、第１のイベント詳細７８６と、第２のイベント詳細７８８を決定する。第１および第２の値７８２、７８４と、第１および第２のイベント詳細７８６、７８８は制御プログラム・データベース７３０に保管される。ステップ４３５では、リプレイ・コンポーネント７１０が第１のイベント詳細７８６を使用して第１のイベントをシミュレートし、シミュレートされた第１のイベントに対応する１組のＰＣＲ値７１４を確立する。また、リプレイ・コンポーネント７１０は第２のイベント詳細７８８を使用して第２のイベントをシミュレートし、シミュレートされた第２のイベントに対応するＰＣＲ値７１６を確立する。
【００５２】
ＰＣＲ値は、その値を生成するために実行された１組のイベントに固有のものである。同じイベントのシミュレーションは、その結果、必ず、同じ１組のＰＣＲ結果が得られることになる。異なるイベントのシミュレーションは、その結果、必ず、異なる１組のＰＣＲ結果が得られることになる。したがって、２組のイベントに対するＰＣＲ結果の比較を使用して、そのイベントが同じであるかどうかについて判断することができる。両方のイベントが同じではない場合、これは、１組が改ざんされていることと、したがって、そのシステムを信頼できないことを示す可能性がある。
【００５３】
ステップ４４０では、比較コンポーネント７２５が、ＶＭ１５２から受信したＰＣＲ５５５のＰＣＲ＿０〜ＰＣＲ＿７に対応する第１の値７８２を、１組のＰＣＲ値７１４と比較する。また、比較コンポーネント７２５は、ＶＭ１５２から受信したＰＣＲ５５５のＰＣＲ＿８  ５６５に対応する第２の値７８４を、１組のＰＣＲ値７１６と比較する。ステップ４４５では、１組のＰＣＲ値７１４が予想される第１の値７８２と一致しない場合、このシステムは信頼することができず、この方法はステップ４７０に移行する。ステップ４７０では、管理者１１４が信頼できないシステムに関連する任意のアクション、たとえば、ＶＭ１５２を使用不可にすることを実行する。
【００５４】
代わって、１組のＰＣＲ値７１４が予想される第１の値７８２と一致する場合、このシステムは条件付きで信頼することができ、この方法はステップ４５０に移行する。ステップ４５０では、第２の値７８４が測定される。第２の値７８４がゼロである場合、これは、いかなるシステム値も設定されていないことと、システムが信頼できることを示し、制御はステップ４７５に渡される。ステップ４７５では、管理者１１４が信頼できるシステムに関連する任意のアクション、たとえば、監査目的のために結果を記録することを実行する。第２の値７８４が非ゼロである場合、これは、システム値が設定されていることを示し、制御はステップ４５５に渡される。
【００５５】
ステップ４５５では、制御プログラム１１８が要件７２０をロードし、対応する暗号値を計算する。ステップ４６０では、比較コンポーネント７２５が暗号値を第２の値７８４と比較する。この暗号値と第２の値７８４を突き合わせることは、システム１５０が要件７２０を満たしていることを示す。ステップ４６５では、暗号値が第２の値７８４と一致する場合、要件７２０が満たされ、制御はステップ４８０に渡される。ステップ４８０では、検証コンポーネント７２８が呼び出され、ＶＭ１５２の満足のいく状況を把握し、ＳＬＡ要件を満たす際に信頼できるホスト環境におけるＶＭ１５２の満足のいく状況に関連するアクション、たとえば、監査ログに結果をロギングすることに限定されないアクションを実行することにより検証を可能にする。しかし、暗号値が第２の値７８４と一致しない場合、要件７２０が満たされず、制御はステップ４８５に渡される。ステップ４８５では、検証コンポーネント７２８が呼び出され、ＶＭ１５２の不満足な状況を把握し、ＳＬＡ要件を満たすのに失敗したことに関連するアクションを実行することにより検証を否定する。たとえば、ステップ４８５では、管理者１１４がＦＳＰ６０５に対する変更を行って、「ｄｅｖ」ユーザ・アカウントを使用可能にするが、ＶＭ１５２は「ｄｅｖ」を使用不可にした状態で実行されなければならないという要件７２０が存在し、遠隔証明の結果としてアクション、たとえば、「ｄｅｖ」ユーザ・アカウントを使用不可にすることを実行することができる。これは、ＶＭ１５２をリブートせずにＦＳＰ「ｄｅｖ」ユーザが使用可能になっていることを実行済みの任意の証明が示すようにＶＭ１５２が実行されている間に行われる。
【００５６】
この方法はステップ４９９で終了する。
【００５７】
代替の諸実施形態では、より多くの環境および構成項目が測定され、ｖＰＣＲ５５５を介して遠隔証明に報告される。
【００５８】
代替の一実施形態では、ハイパーバイザ６４５は、下位システム内のより多くのユーザ・アカウントについて報告する。測定可能な有用な項目の１つは、ハードウェアの実際の構成（たとえば、中央演算処理装置（ＣＰＵ）の識別番号（ＩＤ）、タイプ、速度、メモリ量、ハードウェア製造番号）である。
【００５９】
代替の一実施形態では、ハイパーバイザ６４５は、バージョンまたはパッチ・レベルについて報告し、これらは、たとえば、何らかのセキュリティ修復が適用されたことを証明できるものである。
【００６０】
本発明の代替の一実施形態では、この方法は図２に記載されているシステム・アーキテクチャに使用され、ハイパーバイザの代わりにまたはハイパーバイザと連携してシステム・トランスレータによりｖＴＰＭが維持され更新される。
【００６１】
本発明の好ましい一実施形態では、第１のサーバ１５０から第２のサーバ１６０にＶＭ１５２、１５６を移行するときにもこの方法を使用することができる。ＶＭ１５２、１５６の移行後（移行されたＶＭ１５２、１５６のｖＴＰＭ６５５とともに）、第２のサーバ１６０上で実行されているハイパーバイザ６４５は第２のサーバ１６０からのシステム値でＰＣＲ＿８  ５６５を拡張する。
【００６２】
好ましい一実施形態では、ハイパーバイザ６４５は、信頼できるホスト環境に関連する構成データを少なくとも１つの暗号データ構造に暗号で保管するための保管コンポーネントとして動作する。代替の一実施形態では、保管コンポーネントはＶＭ１５２の外部の他のコンポーネントを含み、これはＶＭ１５２のｖＴＰＭ６５５のＰＣＲ５５５内に構成データを保管するためにＶＭ１５２と通信する。
【００６３】
本発明の諸態様は、本発明の諸実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図あるいはブロック図またはその両方に関連して記載されている。流れ図あるいはブロック図またはその両方の各ブロックおよび流れ図あるいはブロック図またはその両方内の複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実現可能であることが理解されるであろう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに提供し、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行された命令が流れ図あるいはブロック図またはその両方の１つまたは複数のブロックに指定された機能／行為を実現するための手段を作成するようなマシンを生産することができる。
【００６４】
当業者によって認識されるように、本発明の諸態様は、システム、方法またはコンピュータ・プログラム、あるいはコンピュータ・プログラム製品として実施することができる。したがって、本発明の諸態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェアとハードウェアの諸態様を組み合わせる実施形態の形を取ることができ、いずれも本明細書では一般に「回路」、「モジュール」、または「システム」と呼ぶことができる。さらに、本発明の諸態様は、その上にコンピュータ可読プログラム・コードが実施されている１つまたは複数のコンピュータ可読媒体に実施されたコンピュータ・プログラム製品の形を取ることができる。
【００６５】
１つまたは複数のコンピュータ可読媒体の任意の組み合わせを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体にすることができる。コンピュータ可読記憶媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいは上記のものの任意の適切な組み合わせにすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例（非網羅的リスト）としては、１つまたは複数のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学記憶装置、磁気記憶装置、あるいは上記のものの任意の適切な組み合わせを含むであろう。本明細書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによりあるいはそれに関連して使用するためのプログラムを収容または保管することができる任意の有形媒体にすることができる。
【００６６】
コンピュータ可読信号媒体は、たとえば、ベースバンド内でまたは搬送波の一部として、そこにコンピュータ可読プログラム・コードが実施されている伝搬データ信号を含むことができる。このような伝搬信号は、電磁、光、またはそれらの任意の適切な組み合わせを含むがこれらに限定されない様々な形のうちのいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、またはデバイスによりあるいはそれに関連して使用するためのプログラムを通信、伝搬、または輸送することができる任意のコンピュータ可読媒体にすることができる。
【００６７】
コンピュータ可読媒体上に実施されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、無線周波数（ＲＦ）など、あるいは上記のものの任意の適切な組み合わせを含むがこれらに限定されない任意の適切な媒体を使用して伝送することができる。
【００６８】
本発明の諸態様に関する動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語ならびに「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせで作成することができる。プログラム・コードは、完全にユーザのコンピュータ上で、一部分はユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、一部分はユーザのコンピュータ上でしかも一部分はリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行することができる。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してリモート・コンピュータがユーザのコンピュータに接続される場合もあれば、（たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに接続が行われる場合もある。
【００６９】
疑義を回避するため、説明および特許請求の範囲全体を通して本明細書で使用される「含む（comprising）」という用語は、「のみからなる（consisting onlyof）」を意味するものと解釈してはならない。
【図１】
0005957004.tif 000002
【図２】
0005957004.tif 000003
【図３】
0005957004.tif 000004
【図４】
0005957004.tif 000005
【図５】
0005957004.tif 000006
【図６】
0005957004.tif 000007
【図７】
0005957004.tif 000008