(57)【要約】      （修正有）【課題】拡張可能なレジスタを有するトラステッド・デバイス、および、そのトラステッド・デバイスにおける記憶装置の制限を克服すべくレジスタ拡張を保護するための方法を提供する。【解決手段】トラステッド・デバイスは１つのバッファを含み、そのバッファに対するレジスタが、秘密デバイス鍵ＤＰＫを使用してそのレジスタの値を暗号化することによって、外部記憶装置に及び外部記憶装置から仮想化される。レジスタは、プラットフォーム制御レジスタ（ＰＣＲ）またはそのトラステッド・デバイスにおける別の記憶装置であってもよい。それはトラステッド・プラットフォーム・モジュール（ＴＰＭ）であってもよい。レジスタはレジスタ番号に従ってアクセスされる。外部に格納された値が検索されるとき、それらは暗号化解除され、バッファに置かれる。【選択図】図２
2008123513.tif 000002
【特許請求の範囲】
【請求項１】
安全保護された処理システムにおけるトラステッド・デバイス集積回路内の記憶装置を仮想化する方法であって、
レジスタ番号に関連した第１の値を求める要求を受取るステップと、
前記レジスタ番号を使用して前記トラステッド・デバイス集積回路の外部にある記憶装置から前記第１の値の暗号化バージョンを検索するステップと、
前記第１の値を得るために秘密デバイス鍵を使って前記第１の値の検索された暗号化バージョンを暗号化解除するステップであって、該暗号化解除することによって、前記第１の値が前記トラステッド・デバイス集積回路におけるバッファに格納される、前記暗号化解除するステップと、
前記バッファから前記第１の値を供給することによって前記要求に応答するステップと、
を含む、方法。
【請求項２】
前記バッファに格納された第２の値を暗号化するステップと、
前記トラステッド・デバイス集積回路の外部にある前記暗号化の結果を、前記レジスタ番号に従ってアクセスし得る前記記憶装置に格納するステップであって、該格納することによって、その後、前記暗号化の結果を前記レジスタ番号に従って検索し得るようにする、前記格納するステップと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記受取るステップ、前記検索するステップ、前記応答するステップ、および前記格納するステップは、前記安全保護された処理システムにおいて実行されるデバイス・ドライバによって遂行され、前記暗号化解除するステップおよび前記暗号化するステップは、前記トラステッド・デバイスへの前記デバイス・ドライバによる要求に応答して前記トラステッド・デバイスによって遂行される、請求項２に記載の方法。
【請求項４】
前記レジスタ番号に従ってアクセスし得るシャドー・レジスタに前記暗号化の結果を格納するステップであって、該格納することによって、前記暗号化の格納された結果が、前記シャドー・レジスタに格納されていたシャドー値との比較によりその後のブート・プロセス中に検証され得る、ステップを更に含む、請求項２に記載の方法。
【請求項５】
前記暗号化するステップおよび前記格納するステップは、前記受取るステップに応答して遂行され、該遂行されることによって、前記第２の値が前記外部にある記憶装置へフラッシュされて、前記第１の値の格納のために前記バッファを使用可能にする、請求項２に記載の方法。
【請求項６】
前記バッファが複数の格納ロケーションを含み、
キャッシュ・アルゴリズムに従って前記格納ロケーションの１つを選択するステップを更に含み、
前記暗号化するステップおよび前記格納するステップは、前記選択するステップで選択された格納ロケーションにおいて遂行され、前記暗号化解除するステップは、前記第１の値の前記検索された暗号化バージョンを前記選択された格納ロケーションへ暗号化解除する、請求項５に記載の方法。
【請求項７】
前記要求は、前記トラステッド・デバイス内の多数の物理的レジスタよりも少なくとも一桁大きい大きさの一連の仮想レジスタから前記レジスタ番号を指定する、請求項１に記載の方法。
【請求項８】
前記バッファにおける各ロケーションは、前記値を格納するための値レジスタおよび前記レジスタ番号を格納するためのタグ・レジスタを含み、前記暗号化解除するステップは、前記第１の値の前記検索された暗号化バージョンを前記値レジスタへ暗号化解除し、
前記方法は前記レジスタ番号を前記タグ・レジスタに書込むステップを更に含む、請求項１に記載の方法。
【請求項９】
前記受取るステップ、前記検索するステップ、および前記応答するステップは、前記安全保護された処理システム内で実行されるデバイス・ドライバによって遂行され、前期暗号化解除するステップは、前記トラステッド・デバイスへの前記デバイス・ドライバによる要求に応答して前記トラステッド・デバイスによって遂行される、請求項１に記載の方法。
【請求項１０】
トラステッド・デバイス集積回路であって、
前記トラステッド・デバイス集積回路のレジスタの値を格納するためのバッファと、
前記レジスタの値を対称的に暗号化および暗号化解除するための暗号処理回路と、
レジスタ番号に従ってレジスタをアクセスする要求を受取るための制御ロジックと、
を含み、
前記制御ロジックは、前記要求に応答して、前記暗号処理回路および前記バッファに関連して外部にある記憶装置に格納された暗号化されたレジスタの値をアクセスするために、前記トラステッド・デバイス集積回路の前記外部記憶装置へのアクセスを生じさせ、従って、前記暗号化されたレジスタの値が前記バッファにおける暗号化されてないレジスタの値にマップされる、トラステッド・デバイス集積回路。
【請求項１１】
前記制御ロジックは、前記レジスタ番号に従って前記レジスタの値に関連した読取り要求を受取り、前記制御ロジックは、前記外部記憶装置から前記暗号化されたレジスタの値を検索し、前記暗号化されたレジスタの値を前記バッファにおけるロケーションへ暗号化プロセッサに暗号化解除させる、請求項１０に記載のトラステッド・デバイス集積回路。
【請求項１２】
前記制御ロジックは、前記レジスタ番号に従って、供給された値を書込むための書込み要求を受取り、前記制御ロジックは、前記暗号化されたレジスタの値を提供するためにおよび前記暗号化されたレジスタの値を前記外部にある記憶装置に格納するために、前記供給された値を前記暗号処理回路に暗号化させる、請求項１０に記載のトラステッド・デバイス集積回路。
【請求項１３】
前記バッファは複数の格納レジスタを含み、前記格納レジスタの各々はタグ値およびプラットフォーム制御レジスタにおける前記値の対応する１つを格納し、前記制御ロジックは、前記タグ値を使用して前記レジスタ番号に対応する特定のレジスタのロケーションを識別する、請求項１０に記載のトラステッド・デバイス集積回路。
【請求項１４】
前記格納レジスタの各々は前記格納レジスタの各々へのアクセスの頻度の表示を更に格納する、請求項１３に記載のトラステッド・デバイス集積回路。
【請求項１５】
前記制御ロジックは、読取り要求に応答して、前記バッファに自由ロケーションが存在するかどうかを決定し、自由ロケーションが存在しない場合、前記制御ロジックは前記バッファに格納された前記値の１つを前記外部にある記憶装置へ書込ませる、請求項１０に記載のトラステッド・デバイス集積回路。
【請求項１６】
前記制御ロジックは、更に、前記レジスタに応答して行われる前記レジスタの修正に基づいて修正される仮想シャドー・レジスタのセットを前記外部にある記憶装置に維持する、請求項１０に記載のトラステッド・デバイス集積回路。
【請求項１７】
コンピュータ・システム内のプロセッサによる実行のための符号化されたプログラム命令を含み、前記プログラム命令が前記コンピュータ・システム内のトラステッド・デバイスに対するソフトウェア・インターフェースを提供するためのデバイス・ドライバのプログラム命令を含む、コンピュータ・プログラムであって、
前記トラステッド・デバイスの外部にある記憶装置への、仮想化された前記トラステッド装置のレジスタに関連した要求を、前記レジスタの値の暗号化バージョンで受取るためのプログラム命令と、
前記要求を満たすために前記値の前記暗号化バージョンを暗号法的に処理するように前記トラステッド・デバイスに要求するためのプログラム命令と、
を含む、コンピュータ・プログラム。
【請求項１８】
前記要求が前記トラステッド・デバイスにおける物理的レジスタに対応するかどうかを決定するためのプログラム命令を更に含み、前記要求するためのプログラム命令は、前記要求が前記トラステッド・デバイスにおける前記物理的レジスタに対応しないという決定にのみ応答して遂行される、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記要求がレジスタ読取り要求であるかどうかを決定するためのプログラム命令と、
前記要求がレジスタ読取り要求であるという決定に応答して、前記レジスタの前記値の前記暗号化バージョンを前記外部にある記憶装置から検索するためのプログラム命令と、
前記検索するためのプログラム命令の完了に応答して、前記トラステッド・デバイスが前記レジスタの前記値の前記検索された暗号化バージョンを暗号化解除することを要求するために前記要求するためのプログラム命令を遂行するためのプログラム命令と、
を更に含む、請求項１７に記載のコンピュータ・プログラム。
【請求項２０】
前記要求がレジスタ書込み要求であるかどうかを決定するためのプログラム命令と、
前記要求がレジスタ書込み要求であるという決定に応答して、前記レジスタ書込み要求を供給された前記レジスタに対する値を前記トラステッド・デバイスが暗号化することを要求するために、前記要求するためのプログラム命令を遂行するためのプログラム命令と、
前記暗号化の完了に応答して、前記暗号化の結果を、前記レジスタの前記値の前記暗号化バージョンとして、前記外部にある記憶装置に格納するためのプログラム命令と、
を更に含む、請求項１７に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、処理システムにおけるセキュリティに関し、特に、トラステッド・デバイスにおいて記憶装置を仮想化するための方法および装置に関するものである。
【背景技術】
【０００２】
セキュア・コンピューティング・システムにおけるデータとコードの保護は、益々、トラステッド・コンピューティング機構の統合化を必要としている。特に、プラットフォームからアクセスし得るデータを処理する大規模サーバ・システムは、非常に多数の価値ある情報を漏洩する可能性のある実記憶装置あるいは記憶装置への経路を含むことがある。従って、サーバ・システムは安全保護されなければならず、そのため、それらが外部のネットワークを介した外部攻撃に対して保護されるだけではなく、各コンピューティング・コンポーネントのアイデンティティが、データへのコンポーネントのアクセスを許容する前におよびトラステッド・プラットフォームを必要とするあらゆるコードの実行に先立って、保証されることが理想的である。
【０００３】
トラステッド・プラットフォームを実装するための代表的な機構は、各々が除去可能なサブシステムにおいて、トラステッド・コンピューティング・グループ（TrustedComputing Group - ＴＣＧ）によって推奨された標準ではトラステッド・プラットフォーム・モジュール（ＴＰＭ）と呼ばれる、トラステッド・デバイスを組込むためのものである。ＴＰＭは、そのサブシステムのアイデンティティが特定のトラステッド・アイデンティティと一致していることを検証するために使用され、ＴＰＭが正しいサブシステムに実装されていることを検証するためにも使用することができる。トラステッド・デバイスの独自性は、特定のデバイスに特有のデバイス鍵によって保証される。その鍵はデバイスの製造中に配線または実装され、どんなインターフェースによってもそのデバイスから読取ることができない。
【０００４】
ＴＰＭデバイス鍵は、トラステッド・デバイスを使用して様々なセキュリティ・チェックを行なうために使用される。トラステッド・デバイスは、処理要素、レジスタ、および任意選択的な専用暗号化回路を含み、従って、デバイス鍵を用いて行なわれる検証、暗号化、および暗号化解除は、デバイスに「シール（seal）」される。プラットフォーム制御レジスタ（ＰＣＲ）として知られているＴＰＭにおける一組のレジスタは、システムにおいて実行されるソフトウェア・モジュールを表すハッシュ値、追加の暗号化キーのような情報、および、ＴＰＭの照会がトラステッド・プラットフォームの状態を正確に表わすように信頼されるべく、安全に維持されなければならない他の情報を格納する。
【０００５】
しかし、ＴＰＭにおける記憶装置はシールされ、しかも、プラットフォームの状態を表わすレジスタはＴＰＭ内に含まれるので、格納スペースは必然的に制限される。ＴＰＭのアプリケーションは、プラットフォームに存在する安全な要素を記述するために多数のレジスタを必要とする記憶装置および他のアプリケーションを含むために増加するので、ＴＰＭのコストも増加する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、拡張可能なレジスタを有するトラステッド・デバイス、および、そのトラステッド・デバイスにおける記憶装置の制限を克服すべくレジスタ拡張を保護するための方法を提供することである。
【課題を解決するための手段】
【０００７】
上記の目的は、本発明の方法および装置によって達成される。この装置はトラステッド・デバイス集積回路であり、この方法の一部分は、トラステッド・デバイス内の処理コア内で実行されるコンピュータ・プログラムとして具体化することが可能である。
【０００８】
トラステッド・デバイスは、格納バッファと、そのバッファおよびそのトラステッド・デバイスの外部にある記憶装置の間で値を安全に格納および検索するための制御ロジックとを含む。値を対称的に暗号化および暗号化解除するためにトラステッド・デバイスに専用の鍵が使用され、従って、その値は、トラステッド・デバイスの外に転送される時でも危険に晒されることはない。外部に格納された値を指標付けするためにレジスタ番号が使用され、従って、指標サイズおよび利用可能な外部記憶装置のサイズによって指定されるように、適宜に多数の仮想レジスタがトラステッド・デバイス内で支援され得る。
【０００９】
頻繁に読取られたレジスタが外部フェッチおよび暗号化解除を必要とすることなく検索されるよう、「最新使用（mostrecently used）」ルール又は他のルールに従ってバッファがキャッシュ機構を実装することも可能である。外部に格納され且つ暗号化されたレジスタ値を改ざんすることによりトラステッド・デバイスの整合性が危険にさらされることがないことを保証するために、スタートアップ時に、レジスタ・シャドーイング（register shadowing）技術を使用することも可能である。 
【００１０】
本発明の上記および他の目的、特徴、および利点は、添付図面に示された本発明の好適な実施例に関する下記の更に詳細な説明から明らかになるであろう。 
【発明を実施するための最良の形態】
【００１１】
本発明はトラステッド・デバイスに関し、特に、トラステッド・プラットフォーム・モジュール（ＴＰＭ）のようなトラステッド・デバイスに関するものである。ＴＰＭは、一般に、処理ノードまたは他のコンピューター要素のアイデンティティ、および、ソフトウェア・モジュールが処理ノードによって実行されつつあるというようなシステム状態を安全に検証するためのプラットフォーム制御レジスタ（ＰＣＲ）および他のフィーチャを有する集積回路である。本発明は、レジスタの値が必要に応じて外部記憶装置との間で転送されるよう、ＰＣＲセットのような記憶装置の適宜拡張可能なセットおよび／またはトラステッド・デバイス内の他のレジスタを、対称的な暗号化/暗号化解除プロセスを介して提供し得る機構および方法を提供する。本発明の技術は、トラステッド・デバイスのみならず、レジスタあるいは他の記憶装置を安全にインポートおよびエクスポートするために有用であるあらゆる装置に適用するものと考えられる。 
【００１２】
次に、図面、特に図１を参照すると、本発明の実施例を実践する分散型処理システムのブロック図が示される。図示の実施例は、本発明の方法および技術を適用し得るタイプの処理システムを限定することを意図するものではなく、単にそれを例示するものであることは当然である。図示のシステムは、金融取引サービスのような高レベルのセキュリティを必要とするクライアント・ウェブ・ベースのプロセスを実行するためのラック・サーバの一部を形成し得る複数の分散型処理ノード１４Ａ〜１４Ｄ、或いは未承認のアクセスまたは改ざんから保護されなければならないデータを有する別の分散型コンピューティング・システムを含む。分散型処理ノード１４Ａ〜１４Ｄの各々は対応するノード・サービス・プロセッサ１２Ａ〜１２Ｄに接続され、それらのノード・サービス・プロセッサは、対応する処理ノード１４Ａ〜１４Ｄのスタートアップ／シャットダウンおよび対応する処理ノード１４Ａ〜１４Ｄのオペレーションに関連した障害検出のような他のサービスを制御する。システム制御はシステム・サービス・プロセッサ１０によって提供される。システム・サービス・プロセッサ１０は、トップレベルのシステム制御を行使するためにおよびシステム・レベル・ステータスの合体を行うために、各ノード・サービス・プロセッサ１２Ａ〜１２Ｄと通信する。システム・サービス・プロセッサ１０は、処理ノード１４Ａ〜１４Ｄにより実行されるトップレベルのソフトウェア環境を管理するハイパーバイザによって制御される。処理ノード１４Ａ〜１４Ｄは、ハイパーバイザによって仮想化される多数の異なるオペレーティング・システムを含み得る。分散型処理ノード１４Ａ〜１４Ｄは、高速のバス又はネットワーク１７によって他の分散型処理ノードのグループおよびＩ／Ｏ装置に接続される。
【００１３】
図１に示されたシステムにおけるセキュリティは、システム・サービス・プロセッサ１０におけるＴＰＮ１３によって提供される。ＴＰＭ１３は、サービス・プロセッサ集積回路内に統合されてもよく、或いはシステム・サービス・プロセッサ１０のサブシステム・モジュールに搭載された個別の集積回路であってもよい。同様に、各ノード・サービス・プロセッサ１２Ａ〜１２Ｄはノード・レベルＴＰＭ１３Ａ〜１３Ｄを含む。ＴＰＭ１３または１３Ａ〜１３Ｄの各々は、ＴＰＭ１３または１３Ａ〜１３Ｄの外部にあるデバイスによってアクセスし得ない少なくとも１つの秘密デバイス鍵を含む。なお、秘密デバイス・鍵は、外部の装置によって提供された情報およびプログラムを暗号化し、その後それを暗号化解除するために使用され、ＴＰＭ１３又は１３Ａ〜１３Ｄが実装されているプラットフォーム・モジュールを一意的に識別するデジタル署名を提供する。ＴＰＭ１３又は１３Ａ〜１３Ｄ内にＰＣＲが設けられ、本発明では仮想化されるので、ＰＣＲの適当に大きいセットが、ＴＰＭ１３又は１３Ａ〜１３Ｄ内の各ＰＣＲに対する同時記憶装置（例えば、固有のレジスタ）を必要とすることなく提供される。本明細書において開示された発明の実施例は、トラステッド・コンピューティング・グループ（ＴＣＧ）仕様の要件を満たすように使用し得るＰＣＲをＴＰＭ内に設けているが、本発明の技術を他のタイプのトラステッド・デバイスに応用することによって他のタイプのトラステッド・デバイスを機能強化することも可能であるものと考えられる。更に、本発明の技術がトラステッド・デバイスのみならず、レジスタ又は他の記憶装置を安全な方法でインポートおよびエクスポートするためにそれが有用であるあらゆる装置に適用するものと考えられる。従って、安全に仮想化され得る記憶装置は、ＴＰＭ内のＰＣＲ以外のレジスタまたは他の記憶装置であってもよいが、特に、下記の例示的な組合せに適用することが可能である。更に、下記の実施例は、外部デバイスの記憶装置への保存中およびその記憶装置からの検索中にレジスタ値を対称的に暗号化および暗号化解除するために単一のデバイス秘密鍵を使用することを開示しているが、レジスタを仮想化するという特定の目的のために専用のデバイス秘密鍵が提供されてもよいことは当然である。例えば、特定のデバイス秘密鍵は、特定のオペレーティング・システムおよび／またはアプリケーション、および指標によって複数のアプリケーションおよび／またはオペレーティング・システムに関連付けられたそのような鍵のアレイに対して使用されてもよい。更に、実行時の必然的なペナルティを伴って、非対称の暗号化/暗号化解除が、レジスタを仮想化するために使用されてもよい。
【００１４】
次に、図２を参照すると、ＴＰＭ１３の詳細が示され、それはＴＰＭ１３Ａ〜１３Ｄの内部の詳細と同じである。外部バス接続部２９は、バス・インターフェース回路２２を介してＴＰＭ１３内の他の回路と通信を行うために使用される。暗号化プロセッサー２６は、必要な種々のプロトコルに従って暗号化／暗号化解除サービスを提供し、データ値を一意的に暗号化するための格納されたデバイス秘密鍵（ＤＰＫ）２３をアクセスする。なお、そのデータ値は、その後、ＴＰＭ１３によってのみ暗号化解除され得る。ＴＰＭ１３および１３Ａ〜１３Ｄの各々に対するＤＰＫ２３の値は一意的であるが、ＴＰＭ１３および１３Ａ〜１３Ｄの他のハードウェア細部は同じである。本発明は、ＴＰＭ１３の内部にあるプロセッサ・コア実行ファームウェアであってもよい制御ロジック２５、および１つまたは複数のＰＣＲに対する一時的記憶装置を提供するバッファ２４を介して、仮想化されたＰＣＲ記憶装置を提供する。図示の実施例では、バッファ２４における各レジスタ格納ロケーションは、タグ・フィールド２４Ａ、値フィールド２４Ｂ、およびキャッシュ制御フィールド２４Ｃを含む。値フィールド２４Ｂは、ＰＣＲ検索又は格納要求に応答してバス・インターフェース２２により読取られおよび書込まれ得る実際のＰＣＲ値を保持する。しかし、バッファ２４は、バス・インターフェースを介してアクセスし得るすべてのＰＣＲに対する記憶装置を含むのではなく、ＰＣＲ記憶装置全体のキャッシュされた部分だけを含む。タグ・フィールド２４Ａは、ＴＰＭにとって必要なＰＣＲの最大数を表わすことができるよう、或る範囲のレジスタ番号を提供するための大きさにされる。 
【００１５】
タグ・フィールド２４Ａは、バッファ２４に現在キャッシュされているＰＣＲを識別し、値フィールド２４Ｂに含まれた対応する値のＰＣＲレジスタ番号を含むために使用される。特定のＰＣＲを読取るまたは書込むための要求が行われるとき、制御ロジック２５はバッファ２４内の各ロケーションのタグ・フィールド２４Ａをチェックし、要求されたＰＣＲが存在しない場合、それはバッファ２４内のフリー・ロケーションにロードされる。そのローディングは、暗号化されたバッファ値を、外部記憶装置からバス・インターフェース２２を介して検索すること、並びに、ＤＰＫ２３および暗号化プロセッサ２６を使用してそのバッファ値を暗号化解除することにより行なわれる。フリー・ロケーションがバッファ２４内で得られない場合、最低使用頻度（ＬＲＵ）キャストアウトのようなキャッシュ・アルゴリズムが使用される。本明細書に開示された実施例が必要に応じて単一のキャッシュ値に関して作動している間、バッファ２４がプリフェッチ・バッファとして作動するかまたはプリフェッチ・バッファを含み得ること、および複数の仮想レジスタ値が単一の要求に応答して検索され得ること、例えば、近辺又はバンクにおける他のレジスタもアクセスされそうであるということを期待して、仮想化されたレジスタの近辺又はバンクが同時にロードされ得ることは当然である。制御ロジック２５は、バッファ２４における少なくとも最近使用されたロケーションを決定するためにＭＲＵフィールド２４Ｃをスキャンし、暗号化プロセッサ２６およびＤＰＫ２３を使用してその値を暗号化することおよびバス・インターフェースを介して外部記憶装置にその値を格納することによってその値を外部記憶装置にフラッシュする。バッファに存在しないレジスタに対するレジスタ書込み要求が受取られると、同様のキャストアウト・ロード・オペレーションを遂行するか、或いは、暗号化されて外部記憶装置にその値を直接書込むことが可能である。そのどちらが行われるかは、どちらのレジスタ値がバッファ２４においてキャッシュされるべきかを決定するという目的で、制御ロジック２５により実施される特定のアルゴリズムがレジスタ書込みを「レジスタ使用」イベントとして扱うかどうかに依存する。更に、書込みキャッシングは、バッファ２４が書込まれる場合、書込まれた値のような時間がフラッシュされるまで、仮想レジスタの外部記憶装置が更新および／または無効化されるか又はされないかということで使用され得るかまたは使用され得ない。より簡単なＭＲＵ／ＬＲＵ方式を使用するというのではなく、アクセス・カウントを介してレジスタ・アクセス頻度を測定するというような、種々のキャッシング・アルゴリズムを使用し得るということが考えられる。
【００１６】
図２に示された回路は、システム・メモリを記憶装置として使用し得るように、主なＴＰＭバス・インターフェース２２を使って暗号化された仮想化されたＰＣＲレジスタを格納するが、専用の且つ個別のバスが二者択一的に使用され得るものと考えられる。例えば、仮想化された暗号化されたレジスタ情報がシステムにおける他の装置にとってアクセスし得ないものであるように、外部フラッシュ・メモリに対する専用のインターフェースを実装することも可能である。そのような実施態様は、外部メモリ・サイズを選定し得る融通性のある解決策をシステム・インテグレータに提供するが、オンチップ記憶装置の縮小および設計の普遍性によって低コストのＴＰＭ１３を提供することができた。一般に、本発明の仮想化の安全な性質およびシステム・メモリの一般に大きなサイズおよび入手の容易性により、図示の実施例は、仮想化されたＰＣＲの大きなセットを提供するための普遍的で低コストの解決策を提供する。
【００１７】
リブート中のＰＣＲ仮想化を保証するために、シャドー・レジスタの完全なセットを使用することも可能である。シャドー・レジスタは完全に仮想化され得るし、暗号化されると同じイメージのＰＣＲを表すことができる。ＴＰＭ１３に関連したプラットフォームまたは特定のモジュールがリブートされるとき、正規のＰＣＲ記憶装置はリセットされるが、仮想化されたシャドー・レジスタ値は保持される。そこで、リブート後に、シャドーＰＣＲが実際のＰＣＲと比較され、そして、不一致が生じると、適切なセキュリティ・アクションがとられる。一旦トラステッド・リブートが生じると、シャドーＰＣＲは、実際のＰＣＲと一致させるためにリセットされてもよい。
【００１８】
次に図３を参照すると、本発明の実施例によるＰＣＲ読取り方法がフローチャートで示される。本発明を具現化するために様々なアルゴリズムを使用することが可能であることは明らかであり、従って、図示の方法は本発明を実行するために使用し得る単なる一例に過ぎない。これは、コンピュータ・システム内のプロセッサによる実行のための符号化されたプログラム命令を含むコンピュータ・プログラムとして実現され得る。指定されたレジスタ番号(ロケーション)からのレジスタ値を求める要求を受取るとき（ステップ３０）、バッファ２４のタグ値２４Ａがレジスタ番号に関してスキャンされる（ステップ３１）。そのレジスタ値が既にバッファにある場合（判断ステップ３２）、その値が要求の結果として提供され、そのレジスタがＭＲＵとしてマークされる（ステップ３８）。そのレジスタ価値がバッファに存在しない場合（判断ステップ３２）、ＬＲＵレジスタ値が検索され（ステップ３３）、暗号化され（ステップ３４）、外部の正規のレジスタおよびシャドー・レジスタ記憶装置に書込まれる（ステップ３５）。要求されたレジスタ値の暗号化バージョンが検索され（ステップ３６）、バッファ２４へ暗号化解除され（ステップ３７）、しかる後、要求の結果として提供され、その値に対するバッファ２４における格納ロケーションがＭＲＵとしてマークされる（ステップ３８）。
【００１９】
次に図４を参照すると、本発明の実施例によるＰＣＲ書込み方法がフローチャートで示される。本発明を具現化するために様々なアルゴリズムを使用することが可能であることは明らかであり、従って、図示の方法は、本発明を実行するために使用し得る方法の単なる１つの例である。指定されたレジスタ番号（ロケーション）にレジスタ値を書込むための要求が受取られるとき（ステップ４０）、バッファ２４のタグ値２４Ａがそのレジスタ番号に関してスキャンされる（ステップ４１）。そのレジスタ値が既にバッファにある場合（判断ステップ４２）、その値は更新され、そのレジスタはＭＲＣとしてマークされる（ステップ４８）。そのレジスタ値がバッファに存在しない場合（判断ステップ４２）、ＬＲＵレジスタ値が検索され（ステップ４３）、暗号化され（ステップ４４）、そして外部の正規のレジスタおよびシャドー記憶装置に書込まれる（ステップ４５）。しかる後、そのフリーにされたＬＲＵレジスタ・ロケーションが、書込み要求によって供給されたレジスタ値を上書きされ、そのロケーションがＭＲＵとしてマークされる（ステップ４６）。更に、その供給された値は暗号化され、正規の外部ＰＣＲおよびシャドー・レジスタ記憶装置に書込まれる（ステップ４７）。
【００２０】
上記の実施例はレジスタ仮想化によってＴＰＭにＰＣＲの大きなセットを設けるための完全なハードウェアベースの解決策を提供するが、本発明の代替実施例による別の実施態様が考えられる。それは、ＰＣＲの任意に大きなセット提供するのみならず、ＰＣＲの仮想化を提供するために既存のハードウェアおよびサービスにてこ入れし得るものである。その代替の実施例では、ＴＰＭ要求を管理するデバイス・ドライバが、要求元によりそのデバイス・ドライバに送られたレジスタ値を暗号化および暗号化解除するようにＴＰＭに要求することによって、レジスタ記憶装置を仮想化するように修正される。限られた数のＰＣＲを有する既存のＴＰＭが拡張されてもよく、あるいは、ＴＰＭの内のＰＣＲが無視されてもよく、従って、デバイス・ドライバは、仮想化されたレジスタ値に暗号化サービスおよび暗号化解除サービスを提供するためにＴＰＭを使用する。
【００２１】
次に図５を参照すると、そのようなデバイス・ドライバのオペレーションが示される。仮想化されたＰＣＲレジスタ値に関連した要求をそのデバイス・ドライバが受取るとき、プロセスが始まる（ステップ５０）。ＴＰＭの一定数のＰＣＲが任意選択的に使用される場合、レジスタ番号が、ＴＰＭにより支援されたＰＣＲの数と比較され（判断ステップ５１）、その要求が、供給された要求に対する正規の方法で処理される（ステップ５２）。仮想化されたレジスタに関して、その要求が読取り要求である場合（判断ステップ５３）、デバイス・ドライバは仮想化されたＰＣＲの暗号化された値をメモリから検索し（ステップ５４）、そしてその暗号化された値を暗号化解除ためにＴＰＭに供給する（ステップ５５）。次に、暗号化解除された結果が要求元に供給される（ステップ５６）。要求が書込み要求である場合（判断ステップ５３）、デバイス・ドライバはレジスタ値を暗号化のためにＴＰＭに供給し（ステップ５７）、そしてその暗号化された結果を正規の且つシャドー仮想化された格納ロケーションに保存する。デバイス・ドライバ技術と上述のハードウェア技術との結合を行うことが可能であることは明らかである。例えば、１つの実施例はキャッシュ・ベースのＰＣＲ記憶装置を有するＴＰＭを含み得るが、ＰＣＲ値がバッファ２４に存在しないことをＴＰＭが表わすことに応答して、仮想化されたＰＣＲのみを検索および暗号化解除するデバイス・ドライバによって管理される。
【００２２】
本発明の好適な実施例に関して本発明を詳細に図示および説明したが、形式における上記およびその他の変更が本発明の真意および範囲から逸脱することなく行われ得ることは明らかであろう。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施例を実施する分散型コンピューティング・システムのブロック図である。
【図２】本発明の実施例によるトラステッド・デバイスのブロック図である。
【図３】本発明の実施例による仮想レジスタ読取り方法を示すフローチャートである。
【図４】本発明の実施例による仮想レジスタ書込み方法を示すフローチャートである。
【図５】本発明の実施例による仮想レジスタ方法を示すフローチャートである。
【図１】
2008123513.tif 000003
【図２】
2008123513.tif 000004
【図３】
2008123513.tif 000005
【図４】
2008123513.tif 000006
【図５】
2008123513.tif 000007