(57)【特許請求の範囲】
【請求項１】
データ処理システム内で、トラスティッド・コンピューティング環境を実現化するための方法であって、コンピュータが、
前記データ処理システム内でハイパーバイザを初期化するステップと、
トラスティッド・プラットフォーム・モジュール（以下、ＨＴＰＭという）についての論理区画を予約するステップであって、前記ＨＴＰＭは、デバイス・インターフェースを介して仮想デバイスとして表される、前記予約するステップと、
前記ハイパーバイザによって、前記データ処理システム内に論理区画を作成するステップと、
前記予約された論理区画内の複数の論理トラスティッド・プラットフォーム・モジュール（以下、論理ＴＰＭという）をインスタンス化するステップであって、前記論理ＴＰＭが前記ＨＴＰＭに固定される、前記インスタンス化するステップと
を実行することを含む、前記方法。
【請求項２】
前記コンピュータが、
各論理ＴＰＭが論理区画と一意的に関連付けられるように、前記予約された区画内の前記複数の論理ＴＰＭを管理するステップ
を実行することをさらに含む、請求項１に記載の方法。
【請求項３】
前記コンピュータが、前記インスタンス化するステップの後に、ソフトウェア構成要素からの機能呼出しに応答して、
前記複数の論理区画の一つ内にあるＴＰＭデバイス・ドライバから、前記デバイス・インターフェースの入力待ち行列上に、ＴＰＭ機能要求を受信するステップと、
前記ハイパーバイザによって、前記待ち行列に入れられたＴＰＭ機能要求を前記ＨＴＰＭに転送するステップと
を実行することさらに含む、請求項１に記載の方法。
【請求項４】
前記コンピュータが、前記ＴＰＭ機能要求を転送するステップの後に、
前記ＨＴＰＭから、前記デバイス・インターフェースの出力待ち行列上に、ＴＰＭ機能応答を受信するステップと、
前記ハイパーバイザによって、前記待ち行列に入れられたＴＰＭ機能応答を前記複数の論理区画の一つ内にあるＴＰＭデバイス・ドライバに転送するステップと
を実行することをさらに含む、請求項１に記載の方法。
【請求項５】
データ処理システム内で、トラスティッド・コンピューティング環境を実現化するための装置であって、
前記データ処理システム内でハイパーバイザを初期化するための手段と、
トラスティッド・プラットフォーム・モジュール（以下、ＨＴＰＭという）についての論理区画を予約するための手段であって、前記ＨＴＰＭは、デバイス・インターフェースを介して仮想デバイスとして表される、前記予約するための手段と、
前記ハイパーバイザによって、前記データ処理システム内に論理区画を作成するための手段と、
前記予約された論理区画内の複数の論理トラスティッド・プラットフォーム・モジュール（以下、論理ＴＰＭという）をインスタンス化するための手段であって、前記論理ＴＰＭが前記ＨＴＰＭに固定される、前記インスタンス化する手段と
を有する、前記装置。
【請求項６】
各論理ＴＰＭが論理区画と一意的に関連付けられるように、前記予約された区画内の前記複数の論理ＴＰＭを管理するための手段と
をさらに有する、請求項５に記載のシステム。
【請求項７】
ソフトウェア構成要素からの機能呼出しに応答して、
前記複数の論理区画の一つ内にあるＴＰＭデバイス・ドライバから、前記デバイス・インターフェースの入力待ち行列上に、ＴＰＭ機能要求を受信するための手段と、
前記ハイパーバイザによって、前記待ち行列に入れられたＴＰＭ機能要求を前記ＨＴＰＭに転送するための手段と
をさらに有する、請求項５に記載の装置。
【請求項８】
前記ＴＰＭ機能要求の転送後に、
前記ＨＴＰＭから、前記デバイス・インターフェースの出力待ち行列上に、ＴＰＭ機能応答を受信するための手段と、
前記ハイパーバイザによって、前記待ち行列に入れられたＴＰＭ機能応答を前記複数の論理区画の一つ内にあるＴＰＭデバイス・ドライバに転送するための手段と
をさらに有する、請求項５に記載の装置。
【請求項９】
データ処理システム内で、トラスティッド・コンピューティング環境を実現化するためのコンピュータ・プログラムであって、コンピュータに、請求項１〜４のいずれか一項に記載の方法の各ステップを実行させる前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は改良データ処理システムに関し、具体的に言えば、暗号化を使用したデータ・ストレージ保護のための方法および装置に関する。
【背景技術】
【０００２】
ほとんどのデータ処理システムは、保護が必要な機密データおよび機密オペレーションを含む。たとえば、構成情報の完全性は不正な修正から保護される必要があり、パスワード・ファイルなどの他の情報は不正な開示から保護される必要がある。他の例として、データ処理システムはそれ自体を他のデータ処理システムに対して確実に識別できるようにする必要がある。
【０００３】
所与のデータ処理システムのオペレータは、多くの異なるタイプのセキュリティ・メカニズムを採用してデータ処理システムを保護することができる。たとえば、データ処理システム上のオペレーティング・システムは、様々な認証および許可方式などの様々なソフトウェア・メカニズムを提供して機密データを保護することが可能であり、ある特定のハードウェア・デバイスおよびソフトウェア・アプリケーションは、ハードウェア・セキュリティ・トークンおよび生体情報感知デバイスなどのハードウェア・メカニズムに依拠して機密情報を保護することが可能である。
【０００４】
しかしながら、データ処理システムのデータおよびそのオペレーションの完全性は、信頼性の問題に集約される。他のエンティティ（主体）が特定のデータ項目または特定のオペレーションに関してデータ処理システムとの信頼関係を確立するための何らかの方法を有する場合、そのエンティティはデータ処理システムのデータおよびオペレーションを検証または受諾することができる。
【０００５】
したがってデータ処理システムを保護する機能は、データ処理システム内で信頼を生成または定着させる方法によって制限される。データ処理システムの保護の問題に対処するために、企業連合はトラステッド・コンピューティング・グループ（Trusted Computing Group：ＴＣＧ）を結成し、信頼されるコンピューティングに関するオープン・スタンダードおよび仕様を開発および公表した。トラステッド・コンピューティング・グループの仕様によれば、所与のデータ処理システム内の信頼、またはデータ処理システムと他のエンティティとの間の信頼は、信頼されるプラットフォーム・モジュール（Trusted Platform Module：ＴＰＭ）と名付けられたデータ処理システム内のハードウェア構成要素の存在に基づくものである。
【０００６】
信頼されるプラットフォームとは、エンティティがそのプラットフォームでのソフトウェア環境の状態を決定できるようにするもの、およびそのプラットフォームで特定のソフトウェア環境にデータを封止できるようにするものである。エンティティは、そのプラットフォームでトランザクションを実行する前に、そのプラットフォームでのコンピューティング環境の状態が受け入れ可能であるかどうかを推断する。これを可能にするために、信頼されるプラットフォームは、完全性測定とも呼ばれる完全性メトリクスを信頼されるプラットフォームのソフトウェア状態の完全性を反映するエンティティに対して提供し、完全性測定はコンピューティング・プラットフォーム内に信頼ルートを必要とする。システムを信頼されるプラットフォームとするためには、完全性測定を実行しなければならない。完全性測定は測定用信頼コア・ルート（Core Root of Trust for Measurements）から行い、オペレーティング・システムが初期設定される時点まで所期プログラム・ロード（ＩＰＬ）プロセスを通じて延長しなければならない。
【０００７】
信頼されるプラットフォーム・モジュールについては、一般にプラットフォームに依存しない方法で記述されているが、パーソナル・コンピュータ（ＰＣ）などのある特定クラスのシステムについては、プラットフォーム特有の記述も作成されている。信頼されるコンピューティング用の既存のハードウェアは、単一のシステム用の単一の信頼されるプラットフォーム・モジュールに関する実現化に的を絞ったものである。この状況は、独立型の計算環境またはクライアント側処理環境のニーズに合致した比較的性能の低いコンピュータの傾向がある単純なサーバおよびＰＣにとっては十分である。
【０００８】
しかしながら高性能サーバは、複数のスレッド上で同時に信頼されるプラットフォーム・モジュールにアクセスすることが必要な場合がある区画化可能なマルチスレッド環境をサポートしている。こうした環境のニーズを満たすために、信頼されるプラットフォーム・モジュールは高性能を提供する必要もある。
【特許文献１】米国特許出願（代理人整理番号ＡＵＳ９２００３１０３９ＵＳ１）、「Method and System for Virtualization of trusted platform modules」
【非特許文献１】Internet Engineering Task Force（ＩＥＴＦ）Request for Comment （ＲＦＣ）２１０４、「HMAC : Keyed Hashing for Message Authentication」、Krawczyk他、１９９７年２月
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、区画化可能な環境で高性能の信頼されるプラットフォーム・モジュールを実行可能にするためのメカニズムを有することが有利となろう。
【課題を解決するための手段】
【００１０】
データ処理システム内で信頼されるコンピューティング環境を実現化するための方法、システム、装置、およびコンピュータ・プログラムが提示される。データ処理システム内でハイパーバイザが初期化され、このハイパーバイザがデータ処理システム内の複数の論理的で区画化可能な実行時環境を監視する。ハイパーバイザは、ハイパーバイザに基づく信頼されるプラットフォーム・モジュール（ＴＰＭ）用の論理区画を予約し、このハイパーバイザに基づく信頼されるプラットフォーム・モジュールを、デバイス・インターフェースを介して他の論理区画に仮想デバイスとして提示する。ハイパーバイザは、ハイパーバイザがデータ処理システム内に論理区画を作成するたびに、論理ＴＰＭがハイパーバイザに基づくＴＰＭに固定されるように、予約された区画内の論理ＴＰＭもインスタンス化する。ハイパーバイザは、各論理ＴＰＭが一意的に論理区画と関連付けられるように、予約された区画内の複数の論理ＴＰＭを管理する。
【００１１】
本発明の特徴と考えられる新しい機能は、添付の特許請求の範囲に記載される。本発明それ自体、他の目的、およびその利点は、添付の図面と共に読む以下の詳細な説明を参照すると最もよく理解されるであろう。
【発明を実施するための最良の形態】
【００１２】
一般に、本発明を備えるかまたはこれに関することが可能なデバイスは、多種多彩なデータ処理技術を含む。したがって本発明をより詳細に説明する前に、背景として分散データ処理システム内のハードウェアおよびソフトウェア構成要素の典型的な編成について説明する。
【００１３】
次に図を参照すると、図１は、それぞれが本発明の一部を実現化可能なデータ処理システムの典型的なネットワークを示す図である。分散データ処理システム１００はネットワーク１０１を含み、これは分散データ処理システム１００内で互いに接続された様々なデバイスとコンピュータとの間に通信リンクを提供するために使用可能な媒体である。ネットワーク１０１は、電線または光ファイバ・ケーブルなどの永久接続、あるいは電話または無線通信を介して行われる一時接続を含むことができる。記載された例では、サーバ１０２およびサーバ１０３がストレージ・ユニット１０４と共にネットワーク１０１に接続される。さらに、クライアント１０５〜１０７もネットワーク１０１に接続される。クライアント１０５〜１０７およびサーバ１０２〜１０３は、メインフレーム、パーソナル・コンピュータ、携帯情報端末（ＰＤＡ）などの様々なコンピューティング・デバイスで表すことができる。分散データ処理システム１００は、追加のサーバ、クライアント、ルータ、他のデバイス、および図示されていないピアツーピア・アーキテクチャを含むことができる。
【００１４】
記載された例では、分散データ処理システム１００は、軽量ディレクトリ・アクセス・プロトコル（Lightweight Directory Access Protocol：ＬＤＡＰ）、伝送制御プロトコル／インターネット・プロトコル（Transmission Control Protocol/Internet Protocol：ＴＣＰ／ＩＰ）、ハイパーテキスト転送プロトコル（Hypertext TransportProtocol：ＨＴＴＰ）、無線アプリケーション・プロトコル（WirelessApplication Protocol：ＷＡＰ）、その他などの、様々なプロトコルを使用して互いに通信するネットワークおよびゲートウェイの世界的な集まりを表す、ネットワーク１０１を備えたインターネットを含むことができる。もちろん、分散データ処理システム１００は、たとえばイントラネット、ローカル・エリア・ネットワーク（Local Area Network：ＬＡＮ）、またはワイド・エリア・ネットワーク（Wide Area Network：ＷＡＮ）などの、いくつかの異なるタイプのネットワークを含むこともできる。たとえばサーバ１０２は、クライアント１０９および無線通信リンクを組み込んだネットワーク１１０を直接サポートする。ネットワーク実行可能電話１１１は無線リンク１１２を介してネットワーク１１０に接続し、ＰＤＡ１１３は無線リンク１１４を介してネットワーク１１０に接続する。電話１１１およびＰＤＡ１１３は、ブルートゥース（商標）無線技術などの適切な技術を使用する無線リンク１１５を横切ってそれらの間で直接データを転送し、いわゆるパーソナル・エリア・ネットワーク（Personal Area Network：ＰＡＮ）またはパーソナル・アドホック・ネットワークを作成することもできる。同様の方法で、ＰＤＡ１１３は無線通信リンク１１６を介してＰＤＡ１０７にデータを転送することができる。
【００１５】
次に図２を参照すると、本発明が実現化可能な、図１に示されたようなデータ処理システムの典型的なコンピュータ・アーキテクチャが示されている。データ処理システム１２０は、内部システム・バス１２３に接続された１つまたは複数の中央処理ユニット（ＣＰＵ）１２２を含み、内部システム・バス１２３は、ランダム・アクセス・メモリ（ＲＡＭ）１２４と、読取り専用メモリ１２６と、プリンタ１３０、ディスク・ユニット１３２、またはオーディオ出力システムなどの図示されていない他のデバイスなどの様々なＩ／Ｏデバイスをサポートする入力／出力アダプタ１２８とを相互に接続する。システム・バス１２３は、通信リンク１３６へのアクセスを提供する通信アダプタ１３４も接続する。ユーザ・インターフェース・アダプタ１４８は、キーボード１４０およびマウス１４２、またはタッチ・スクリーン、スタイラス、マイクロフォン、その他などの図示されていない他のデバイスなどの、様々なユーザ・デバイスを接続する。ディスプレイ・アダプタ１４４は、システム・バス１２３をディスプレイ・デバイス１４６に接続する。
【００１６】
当業者であれば、図２中のハードウェアがシステムの実現化に応じて変わる場合があることを理解されよう。たとえばシステムは、Ｉｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）に基づくプロセッサおよびデジタル信号プロセッサ（Digital Signal Processor：ＤＳＰ）などの１つまたは複数のプロセッサと、１つまたは複数タイプの揮発性および不揮発性メモリとを有することができる。図２に記載されたハードウェアに加えて、またはこれらの代わりに、他の周辺デバイスを使用することができる。記載された例は、本発明に関するアーキテクチャ上の制限を示唆することを意味するものではない。
【００１７】
次に図３を参照すると、従来技術の分散データ処理システムの一例を示すブロック図である。分散データ処理システム１５０は複数のノード１５２〜１５６を含み、このそれぞれが、通信スイッチまたはネットワークに接続されたシングルプロセッサまたはマルチプロセッサのデバイスまたはカードを表すことが可能であって、ノード１５２〜１５６は中央電子複合システム（Central Electronic Complex：ＣＥＣ）ユニットとして実現化することができる。ハイパーバイザ１６０は、システム１５０の分散データ処理ノードの共有コンピュータ・リソース上で、１つまたは複数のオペレーティング・システムおよび／またはオペレーティング・システム区画１６２〜１６８の複数のインスタンスをサポートする。ハイパーバイザ１６０は、システム１５０のブートおよび共有リソースの可用性の監視の責務を負う、システムレベル・サービス・プロセッサ１７０と通信する。それぞれの分散データ処理ノードがサービス・プロセッサに関連付けられており、たとえばサービス・プロセッサ１７２〜１７６は、それぞれがその関連するノードのブートとそれぞれのノードを監視する際のシステムレベル・サービス・プロセッサ１７０の支援との責務を負うものであって、サービス・プロセッサは、その関連するノードへの様々な物理接続を介してノードと関連付けることが可能であり、たとえばサービス・プロセッサのハードウェア・カードをＰＣＩバスに取り付けることができる。各ノードは複数のサービス・プロセッサを有することが可能であるが、その関連するノードのブートの責務を負うサービス・プロセッサは１つだけであることに留意されたい。
【００１８】
本発明は、様々なハードウェア・プラットフォームおよび計算環境で実現化可能であり、図１、図２、および図３は異種コンピューティング環境の一例であって、本発明のアーキテクチャ上の制限として意図されるものではない。本発明は様々なハードウェア・プラットフォームおよび計算環境上で実現化可能であることに加えて、様々なソフトウェア環境でも実現化可能である。典型的なオペレーティング・システムを使用して、各データ処理システム内でのプログラムの実行を制御することができる。たとえば、１つのデバイスがＵｎｉｘ（登録商標）のオペレーティング・システムを実行する一方で、他のデバイスが単純なＪａｖａ（登録商標）実行時環境を含むことができる。代表的なコンピュータ・プラットフォームは、グラフィック・ファイル、ワード・プロセッシング・ファイル、拡張可能マークアップ言語（Extensible Markup Language：ＸＭＬ）、ハイパーテキスト・マークアップ言語（Hypertext Markup Language：ＨＴＭＬ）、ハンドヘルド・デバイス・マークアップ言語（Handheld Device Markup Language：ＨＤＭＬ）、無線マークアップ言語（Wireless Markup Language：ＷＭＬ）、ならびに様々な他のフォーマットおよびタイプのファイルなどの、様々なフォーマットのハイパーテキスト文書にアクセスするための良く知られたソフトウェア・アプリケーションである、ブラウザを含むことができる。
【００１９】
本発明は、前述のように様々なハードウェアおよびソフトウェア・プラットフォームで実現化することができる。しかしながらより具体的に言えば、本発明は信頼されるコンピューティング・プラットフォームを対称にしたものである。本発明についてより詳細に説明する前に、本発明のオペレーション効率および他の利点を評価するための、信頼されるコンピューティング・プラットフォームに関する何らかの背景情報が図４および図５に示されている。本発明は、おそらく１つまたは複数の標準に従った様々な信頼されるコンピューティング・プラットフォームに関して実現化可能であるが、以下に記載する本発明の例は、トラステッド・コンピューティング・グループ（Trusted Computing Group：ＴＣＧ）によって公表されてきた標準および／または仕様からの用語および例を採用しており、これらの例は、本発明の実施形態に対するアーキテクチャ、機能、または定義上の制限を示唆することを意味するものでないことに留意されたい。
【００２０】
次に図４を参照すると、信頼されるプラットフォーム・アーキテクチャのモデルを使用して構築されたデータ処理システム内のいくつかの構成要素を示すブロック図が示されている。信頼されるプラットフォーム・アーキテクチャは、特定の計算環境または特定クラスのデバイス用に実現化可能であり、図４はＴＣＧのＰＣ特有の実現化仕様に従った信頼されるプラットフォーム・アーキテクチャを示している。
【００２１】
システム２００は、そのプラットフォーム２０８上での、オペレーティング・システム２０２、アプリケーション２０４、およびドライバ２０６などのソフトウェア構成要素の実行をサポートする。ソフトウェア構成要素は、図１に示されたネットワーク１０１などのネットワークを介して受信可能であるか、または、たとえばハード・ディスク２１０上に格納することができる。プラットフォーム２０８は、アドオン・カード２１４および、ＣＰＵ２１８およびメモリ２２０などのソフトウェアを実行するための典型的な構成要素を含むマザーボード２１６上で、ソフトウェア構成要素を実行するための電力を電源２１２から受け取るが、マザーボード２１６は複数のＣＰＵを含むことができる。インターフェース２２２はマザーボードをシステム２００内の他のハードウェア構成要素に接続し、ファームウェア２２４はＰＯＳＴ  ＢＩＯＳ（Power-On Self-Test Basic Input/Output System：電源オン自己診断テスト基本入出力システム）２２６を含む。
【００２２】
マザーボード２１６は信頼される構築ブロック（Trusted Building Block：ＴＢＢ）２２８も備え、さらにマザーボード２１６は、ＴＢＢ２２８と製造業者によって物理的または論理的に取り付けおよび供給された他の構成要素と共に、製造業者によって供給される。ＴＢＢ２２８は、測定用信頼コア・ルート（Core Root of Trust for Measurement：ＣＲＴＭ）構成要素２３０、信頼されるプラットフォーム・モジュール（Trusted Platform Module：ＴＰＭ）２３２、ＣＲＴＭとマザーボード２１６との接続、およびＴＰＭとマザーボード２１６との接続の組み合わせを備える。
【００２３】
ＴＰＭ２３２については、図５に関して以下でより詳細に説明する。ＣＲＴＭ２３０は、プラットフォームのリセット時に実行されるプラットフォームの初期設定コードの不変部分であり、プラットフォームの実行はいかなるプラットフォーム・リセット・イベント時にもＣＲＴＭで開始されなければならない。この方法では、プラットフォームにおける信頼はＣＲＴＭおよびＴＰＭの挙動に基づくものであり、すべての測定における信頼はＣＲＴＭの完全性に基づくものである。図４に示された例では、ＢＩＯＳはＢＩＯＳブート・ブロックおよびＰＯＳＴ  ＢＩＯＳ２２６を含むものと想定することが可能であり、これらはそれぞれ互いに無関係に更新可能な独立構成要素であって、製造業者はＢＩＯＳブート・ブロックの更新、修正、および保守を管理しなければならないが、第三者の供給業者がＰＯＳＴ  ＢＩＯＳ構成要素を更新、修正、または保守することも可能である。図４に示された例では、ＣＲＴＭはＢＩＯＳブート・ブロックであると想定することが可能であり、ＰＯＳＴ  ＢＩＯＳは信頼チェーンの測定済み構成要素である。
【００２４】
次に図５を参照すると、ＴＣＧ仕様に従った信頼されるプラットフォーム・モジュールの主要な構成要素の一部を示すブロック図が示されている。信頼されるプラットフォーム・モジュール３００は入力／出力構成要素３０２を備え、これが、適切なプロトコル符号化／復号オペレーションの実行および適切な構成要素へのメッセージのルーティングによって、通信バス３０４を介した情報の流れを管理する。暗号化コプロセッサ３０６は、信頼されるプラットフォーム・モジュール内で暗号化オペレーションを実行する。鍵生成プログラム３０８は、対称鍵およびＲＳＡ非対称暗号鍵のペアを作成する。たとえば、１９９７年２月、Internet Engineering Task Force（ＩＥＴＦ）のクラウチック（Krawczyk）等による「ＨＭＡＣ：メッセージ認証のための鍵付きハッシュ（Keyed-Hashing for Message Authentication）」と題するRequest for Comments（ＲＦＣ）２１０４によれば、ＨＭＡＣエンジン３１０はＨＭＡＣ（メッセージ認証のための鍵付きハッシュ）計算を実行し、これによって２者間で伝送される情報の妥当性を検査するために完全性チェックとして秘密鍵を使用してメッセージ認証コードが算出される。
【００２５】
乱数発生器３１２は、ｎｏｎｃｅ、キー、または他の値などの様々な値の計算用のランダム性のソースとして働く。ＳＨＡ−１エンジン３１４はＳＨＡ−１ハッシュ・アルゴリズムを実現化する。パワー検出器３１６は、プラットフォームのパワー状態と関連して信頼されるプラットフォーム・モジュールのパワー状態を管理する。Ｏｐｔ−ｉｎ構成要素３１８は、持続および揮発性フラグの状態を維持し、信頼されるプラットフォーム・モジュールをイネーブルおよびディスエーブルにできるようにそれらのフラグに関連付けられたセマンティクスを強制する。実行エンジン３２０はプログラム・コードを実行して、信頼されるプラットフォーム・モジュールが入力／出力構成要素３０２を通じて受け取るコマンドを実行する。不揮発性メモリ３２２は信頼されるプラットフォーム・モジュールに関連付けられた持続的なＩＤおよび状態を格納するものであり、この不揮発性メモリは静的データ項目を格納できるが、信頼されるプラットフォーム・モジュール所有者によって許可されたエンティティごとに動的データ項目を格納するために利用することも可能であり、一方、揮発性メモリ３２４は動的データ項目を格納する。
【００２６】
図４および図５に関して説明してきた信頼されるコンピューティング・プラットフォームに関する背景情報を考慮しながら、以下では残りの図面に関して本発明を詳細に説明する。前述のように、典型的な信頼されるプラットフォームは、信頼されるプラットフォーム・アーキテクチャ内に単一の信頼されるプラットフォーム・モジュールが存在するように設計されており、これは、高性能サーバまたは図３に示されたシステム１５０などの同様の分散データ処理システムにおいて受け入れがたい制約を必要とするものである。他方で高性能サーバは、リソースの効率的な使用および共有を必要とする区画化可能なマルチスレッド環境をサポートする。本発明は、以下でより詳細に説明するように、区画化可能な環境において仮想化された信頼されるプラットフォーム・モジュールを実行可能にするためのメカニズムを提供することによってこの問題に対処し、これによって本発明の実施形態では、それ自体では仮想化が不可能なソフトウェアまたはハードウェアにおいて、信頼されるプラットフォーム・モジュールの仮想化を可能にしている。
【００２７】
次に図６を参照すると、本発明の実施形態に従ったデータ処理システム内のハイパーバイザに基づく実行環境における、高性能の信頼されるプラットフォーム・モジュール用の論理編成を示すブロック図が示されている。データ処理システム４００は、データ処理システム４００の共有コンピュータ・リソース上で１つまたは複数のオペレーティング・システムおよび／または論理区画（ＬＰＡＲ）４０４および４０６の複数インスタンスをサポートする、ハイパーバイザ４０２を含む。ＬＰＡＲ４０４はＴＣＧソフトウェア・スタック（ＴＳＳ）４０８およびＴＰＭデバイス・ドライバ（ＴＰＭＤＤ）４１０を含み、ＬＰＡＲ４０６はＴＳＳ４１２およびＴＰＭＤＤ４１４を含む。ＴＳＳ４０８およびＴＳＳ４１２は、オペレーティング・システム、アプリケーション、または他のソフトウェア構成要素がＴＰＭとインターフェースするために使用する、ホスト・プログラミング・インターフェースの指定を実現化する。ＴＳＳは、エンティティが通常のアプリケーション・プログラミング・インターフェース（Application Programming Interfaces：ＡＰＩ）を介してインターフェースできるＴＳＳサービス・プロバイダと、キー・ストレージ、コンテキストの中央管理を提供し、ホスト上のＴＰＭとの直接対話を処理する、ＴＳＳコア・サービスと、ＴＰＭデバイス・ドライバ・ライブラリおよびＴＰＭＤＤ４１０またはＴＰＭＤＤ４１４などのＴＰＭＤＤとを備える。通常、ＴＰＭへのすべてのインターフェースは、ＴＳＳサービス・プロバイダ・インターフェース（ＴＳＰＩ）またはＴＳＰＩ上のＡＰＩを介して行われる。
【００２８】
ＴＰＭでのスループットを向上させるために、本発明では、ハイパーバイザ４０２内のＨＴＰＭインターフェース・ユニット４１８を介してアクセスされるハイパーバイザに基づくＴＰＭ（ＨＴＰＭ）４１６として、システム４００内にＴＰＭを提示しており、ＨＴＰＭ４１６はシステム４００にＴＰＭの機能を提供するものである。
【００２９】
ＴＰＭは、それへのオペレーションが非同期であるＩ／Ｏデバイスとして指定され、本発明では、ＨＴＰＭ４１６は仮想Ｉ／Ｏデバイス、すなわち論理Ｉ／Ｏデバイスとして表される。ＨＴＰＭ４１６に対するオペレーション、たとえばＬＰＡＲ４０４からＨＴＰＭ４１６への機能呼出しまたは要求は入力待ち行列４２０に配置され、これによってハイパーバイザ４０２へのトラップが生じる。ハイパーバイザ４０２はＨＴＰＭ４１６へのオペレーションを再度待ち行列に入れ、ここでのＴＰＭ機能は先入れ先出しベースで実行される。ＴＰＭ機能が完了するとＨＴＰＭ４１６はその結果を出力待ち行列４２２に配置し、ここでもハイパーバイザ４０２へのトラップが発生して、その後ハイパーバイザ４０２は結果を呼出し側エンティティに戻す。
【００３０】
代替実施形態では、ＨＴＰＭ４１６をハイパーバイザ４０２内に実現化することができる。好ましい実施形態では、ＨＴＰＭ４１６は、論理的にはハイパーバイザの一部であるＨＴＰＭ区画４２４として示された予約された論理区画内で、ハイパーバイザ４０２によって管理され、たとえばそのコードは認定済みハイパーバイザの一部として維持されるものであって、ハイパーバイザはリブートごとにＨＴＰＭ区画を作成する。
【００３１】
分離区画にあるＨＴＰＭを管理することで、追加の利点が与えられる。ＴＰＭオペレーションの多くが計算上は高価なＲＳＡアルゴリズムを使用しており、ＨＴＰＭをハイパーバイザに組み込むと、実行パスが許容できないほど長くなってしまう。したがってハイパーバイザは、ＨＴＰＭを区画内に配置することで、ＴＰＭ機能の優先度を下げながらも、その実行特性を維持する。さらにＨＴＰＭを分離区画内に配置することで、ハイパーバイザに影響を与えることなくＨＴＰＭによって使用されるメモリを保護することにおいて、ハイパーバイザにより高い柔軟性が与えられる。
【００３２】
次に図７を参照すると、本発明の実施形態に従ったデータ処理システム内のハイパーバイザに基づく実行環境における、論理的な信頼されるプラットフォーム・モジュールを含む高性能の信頼されるプラットフォーム・モジュール用の論理編成を示すブロック図が示されている。図７に示されたシステム４００は、図６に示されたシステム４００と同様であり、同じ参照番号は同じ要素を表すものである。しかしながらＨＴＰＭ区画４２４は、複数の仮想化されたＴＰＭ、たとえば論理ＴＰＭ（ＬＴＰＭ）４２６およびＬＴＰＭ４２８をサポートする方法で実現化される。論理区画などの仮想化環境のための仮想化されたＬＴＰＭの実現化の一例は、「信頼されるプラットフォーム・モジュールを仮想化するための方法およびシステム（Method and system for virtualization of trusted platform modules）」という名称の米国出願（代理人整理番号ＡＵＳ９２００３１０３９ＵＳ１）に見ることができる。ハイパーバイザは論理区画を作成したときにＨＴＰＭ区画内でＬＴＰＭをインスタンス化し、論理区画を終了したときにその関連するＬＴＰＭを破棄する。システム４００内の各ＬＰＡＲはＬＴＰＭと一意的に関連付けられており、そのそれぞれがＨＴＰＭ４１６に固定される。好ましい実施形態では、ＬＴＰＭはＨＴＰＭ４１６と共にＨＴＰＭ区画４２４内に維持される。ＨＴＰＭインターフェース・ユニット４１８は、各ＬＴＰＭが関連する入力待ち行列および関連する出力待ち行列を有するように、複数の入力待ち行列４３０および複数の出力待ち行列４３２をサポートする。
【００３３】
次に図８〜１０を参照すると、本発明の実施形態に従った、ハイパーバイザに基づく信頼されるプラットフォーム・モジュールがＴＰＭ機能へのアクセスをサポートする際に使用するプロセスを示す流れ図が示されている。図８を参照すると、ハイパーバイザは初期化されると（ステップ５０２）、ハイパーバイザに基づく信頼されるプラットフォーム・モジュール（ＨＴＰＭ）をサポートする特別の分離区画、すなわちＨＴＰＭ区画を作成する（ステップ５０４）。図９を参照すると、ハイパーバイザは何らかの後の時点で論理区画を作成すると（ステップ５１２）、ＨＴＰＭ区画内で論理的なまたは仮想化された信頼されるプラットフォームをインスタンス化し、これがＨＴＰＭに固定される（ステップ５１４）。図１０を参照すると、ＴＰＭデバイス・ドライバは何らかの後の時点でソフトウェア構成要素からの機能呼出しに応答すると、ＴＰＭ機能要求を適切なＨＴＰＭインターフェース入力待ち行列に配置する（ステップ５２２）。ハイパーバイザは、ＴＰＭ機能要求を適切なＬＴＰＭの待ち行列に再度入れることによって、この待ち行列オペレーションに応答する（ステップ５２４）。ＬＴＰＭはＴＰＭ機能を実行すると、ＴＰＭ機能応答を適切なＨＴＰＭインターフェース出力待ち行列に配置する（ステップ５２６）。その後ハイパーバイザは、ＴＰＭ機能応答を要求元のＴＰＭデバイス・ドライバに戻す（ステップ５２８）。ハイパーバイザが他の作業を実行している間に、複数の同時ＬＴＰＭはアクティブに要求を処理することができる。
【００３４】
以上、本発明について、完全に機能しているデータ処理システムとの関連において説明してきたが、当業者であれば本発明のプロセスが、配布の実施に実際に使用される特定タイプの信号搬送媒体に関わりなく、コンピュータ読取り可能媒体における命令の形および様々な他の形で配布可能なことを理解されるであろうということに留意されたい。コンピュータ読取り可能媒体の例には、ＥＰＲＯＭ、ＲＯＭ、テープ、用紙、フロッピィ・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、およびＣＤ−ＲＯＭ、ならびに、デジタルおよびアナログの通信リンクなどの伝送タイプ媒体などの媒体が含まれる。
【００３５】
方法は、通常、望ましい結果につながる自己矛盾のない一連のステップであると考えられる。これらのステップは、物理量の物理的操作が必要である。通常、これらの量は格納、転送、組み合わせ、比較、およびその他の操作が可能な電気または磁気信号の形を取るが、必ずしもそうである必要はない。主として一般的に使用されるという理由で、時にはこれらの信号をビット、値、パラメータ、項目、要素、オブジェクト、記号、文字、項、数、またはその他と呼ぶことが便利な場合がある。しかしながら、これらの用語および同様の用語はすべて適切な物理量に関連付けられるものであり、これらの量に適用される単なる便利なラベルであることに留意されたい。
【００３６】
以上、本発明について例示の目的で提示してきたが、開示された実施形態を網羅的であるかまたはこれらに限定されるものであることを意図するものではない。当業者であれば、多くの修正および変形形態が明らかとなろう。これらの実施形態は、本発明の諸原理およびその実際の応用例を説明するため、および様々な実施形態を他の企図された用途に好適であるような様々な修正と共に実現化するために他の当業者が本発明を理解できるようにするために、選択されたものである。
【図面の簡単な説明】
【００３７】
【図１】それぞれが本発明を実現化可能なデータ処理システムの典型的なネットワークを示す図である。
【図２】本発明が実現化可能なデータ処理システム内で使用することのできる、典型的なコンピュータ・アーキテクチャを示す図である。
【図３】従来技術の分散データ処理システムの一例を示すブロック図である。
【図４】典型的な信頼されるプラットフォーム・アーキテクチャの一例を示すブロック図である。
【図５】典型的な信頼されるプラットフォーム・モジュールの主要な構成要素の一部を示すブロック図である。
【図６】データ処理システム内のハイパーバイザに基づく実行環境における、高性能の信頼されるプラットフォーム・モジュール用の論理編成を示すブロック図である。
【図７】データ処理システム内のハイパーバイザに基づく実行環境における、論理的な信頼されるプラットフォーム・モジュールを含む高性能の信頼されるプラットフォーム・モジュール用の論理編成を示すブロック図である。
【図８】ハイパーバイザに基づく信頼されるプラットフォーム・モジュールが、ＴＰＭ機能へのアクセスをサポートする際に使用するプロセスを示す流れ図である。
【図９】ハイパーバイザに基づく信頼されるプラットフォーム・モジュールが、ＴＰＭ機能へのアクセスをサポートする際に使用するプロセスを示す流れ図である。
【図１０】ハイパーバイザに基づく信頼されるプラットフォーム・モジュールが、ＴＰＭ機能へのアクセスをサポートする際に使用するプロセスを示す流れ図である。
【符号の説明】
【００３８】
４０２    ハイパーバイザ
４０４    論理区画ＬＰＡＲ（０）
４０６    論理区画ＬＰＡＲ（Ｎ）
４０８    ＴＣＧソフトウェア・スタック（ＴＳＳ）
４１０    ＴＰＭデバイス・ドライバ（ＴＰＭＤＤ）
４１２    ＴＳＳ
４１４    ＴＰＭＤＤ
４１６    ハイパーバイザＴＰＭ（ＨＴＰＭ）
４１８    ＨＴＰＭインターフェース・ユニット
４２０    入力待ち行列
４２２    出力待ち行列
４２４    ＨＴＰＭ区画
【図１】
0004776268.tif 000002
【図２】
0004776268.tif 000003
【図３】
0004776268.tif 000004
【図４】
0004776268.tif 000005
【図５】
0004776268.tif 000006
【図６】
0004776268.tif 000007
【図７】
0004776268.tif 000008
【図８】
0004776268.tif 000009
【図９】
0004776268.tif 000010
【図１０】
0004776268.tif 000011