説明

仮想化されたレジスタを有するトラステッド・デバイス

【課題】拡張可能なレジスタを有するトラステッド・デバイス、および、そのトラステッド・デバイスにおける記憶装置の制限を克服すべくレジスタ拡張を保護するための方法を提供する。
【解決手段】トラステッド・デバイスは1つのバッファを含み、そのバッファに対するレジスタが、秘密デバイス鍵DPKを使用してそのレジスタの値を暗号化することによって、外部記憶装置に及び外部記憶装置から仮想化される。レジスタは、プラットフォーム制御レジスタ(PCR)またはそのトラステッド・デバイスにおける別の記憶装置であってもよい。それはトラステッド・プラットフォーム・モジュール(TPM)であってもよい。レジスタはレジスタ番号に従ってアクセスされる。外部に格納された値が検索されるとき、それらは暗号化解除され、バッファに置かれる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、処理システムにおけるセキュリティに関し、特に、トラステッド・デバイスにおいて記憶装置を仮想化するための方法および装置に関するものである。
【背景技術】
【0002】
セキュア・コンピューティング・システムにおけるデータとコードの保護は、益々、トラステッド・コンピューティング機構の統合化を必要としている。特に、プラットフォームからアクセスし得るデータを処理する大規模サーバ・システムは、非常に多数の価値ある情報を漏洩する可能性のある実記憶装置あるいは記憶装置への経路を含むことがある。従って、サーバ・システムは安全保護されなければならず、そのため、それらが外部のネットワークを介した外部攻撃に対して保護されるだけではなく、各コンピューティング・コンポーネントのアイデンティティが、データへのコンポーネントのアクセスを許容する前におよびトラステッド・プラットフォームを必要とするあらゆるコードの実行に先立って、保証されることが理想的である。
【0003】
トラステッド・プラットフォームを実装するための代表的な機構は、各々が除去可能なサブシステムにおいて、トラステッド・コンピューティング・グループ(TrustedComputing Group - TCG)によって推奨された標準ではトラステッド・プラットフォーム・モジュール(TPM)と呼ばれる、トラステッド・デバイスを組込むためのものである。TPMは、そのサブシステムのアイデンティティが特定のトラステッド・アイデンティティと一致していることを検証するために使用され、TPMが正しいサブシステムに実装されていることを検証するためにも使用することができる。トラステッド・デバイスの独自性は、特定のデバイスに特有のデバイス鍵によって保証される。その鍵はデバイスの製造中に配線または実装され、どんなインターフェースによってもそのデバイスから読取ることができない。
【0004】
TPMデバイス鍵は、トラステッド・デバイスを使用して様々なセキュリティ・チェックを行なうために使用される。トラステッド・デバイスは、処理要素、レジスタ、および任意選択的な専用暗号化回路を含み、従って、デバイス鍵を用いて行なわれる検証、暗号化、および暗号化解除は、デバイスに「シール(seal)」される。プラットフォーム制御レジスタ(PCR)として知られているTPMにおける一組のレジスタは、システムにおいて実行されるソフトウェア・モジュールを表すハッシュ値、追加の暗号化キーのような情報、および、TPMの照会がトラステッド・プラットフォームの状態を正確に表わすように信頼されるべく、安全に維持されなければならない他の情報を格納する。
【0005】
しかし、TPMにおける記憶装置はシールされ、しかも、プラットフォームの状態を表わすレジスタはTPM内に含まれるので、格納スペースは必然的に制限される。TPMのアプリケーションは、プラットフォームに存在する安全な要素を記述するために多数のレジスタを必要とする記憶装置および他のアプリケーションを含むために増加するので、TPMのコストも増加する。
【発明の開示】
【発明が解決しようとする課題】
【0006】
従って、本発明の目的は、拡張可能なレジスタを有するトラステッド・デバイス、および、そのトラステッド・デバイスにおける記憶装置の制限を克服すべくレジスタ拡張を保護するための方法を提供することである。
【課題を解決するための手段】
【0007】
上記の目的は、本発明の方法および装置によって達成される。この装置はトラステッド・デバイス集積回路であり、この方法の一部分は、トラステッド・デバイス内の処理コア内で実行されるコンピュータ・プログラムとして具体化することが可能である。
【0008】
トラステッド・デバイスは、格納バッファと、そのバッファおよびそのトラステッド・デバイスの外部にある記憶装置の間で値を安全に格納および検索するための制御ロジックとを含む。値を対称的に暗号化および暗号化解除するためにトラステッド・デバイスに専用の鍵が使用され、従って、その値は、トラステッド・デバイスの外に転送される時でも危険に晒されることはない。外部に格納された値を指標付けするためにレジスタ番号が使用され、従って、指標サイズおよび利用可能な外部記憶装置のサイズによって指定されるように、適宜に多数の仮想レジスタがトラステッド・デバイス内で支援され得る。
【0009】
頻繁に読取られたレジスタが外部フェッチおよび暗号化解除を必要とすることなく検索されるよう、「最新使用(mostrecently used)」ルール又は他のルールに従ってバッファがキャッシュ機構を実装することも可能である。外部に格納され且つ暗号化されたレジスタ値を改ざんすることによりトラステッド・デバイスの整合性が危険にさらされることがないことを保証するために、スタートアップ時に、レジスタ・シャドーイング(register shadowing)技術を使用することも可能である。
【0010】
本発明の上記および他の目的、特徴、および利点は、添付図面に示された本発明の好適な実施例に関する下記の更に詳細な説明から明らかになるであろう。
【発明を実施するための最良の形態】
【0011】
本発明はトラステッド・デバイスに関し、特に、トラステッド・プラットフォーム・モジュール(TPM)のようなトラステッド・デバイスに関するものである。TPMは、一般に、処理ノードまたは他のコンピューター要素のアイデンティティ、および、ソフトウェア・モジュールが処理ノードによって実行されつつあるというようなシステム状態を安全に検証するためのプラットフォーム制御レジスタ(PCR)および他のフィーチャを有する集積回路である。本発明は、レジスタの値が必要に応じて外部記憶装置との間で転送されるよう、PCRセットのような記憶装置の適宜拡張可能なセットおよび/またはトラステッド・デバイス内の他のレジスタを、対称的な暗号化/暗号化解除プロセスを介して提供し得る機構および方法を提供する。本発明の技術は、トラステッド・デバイスのみならず、レジスタあるいは他の記憶装置を安全にインポートおよびエクスポートするために有用であるあらゆる装置に適用するものと考えられる。
【0012】
次に、図面、特に図1を参照すると、本発明の実施例を実践する分散型処理システムのブロック図が示される。図示の実施例は、本発明の方法および技術を適用し得るタイプの処理システムを限定することを意図するものではなく、単にそれを例示するものであることは当然である。図示のシステムは、金融取引サービスのような高レベルのセキュリティを必要とするクライアント・ウェブ・ベースのプロセスを実行するためのラック・サーバの一部を形成し得る複数の分散型処理ノード14A〜14D、或いは未承認のアクセスまたは改ざんから保護されなければならないデータを有する別の分散型コンピューティング・システムを含む。分散型処理ノード14A〜14Dの各々は対応するノード・サービス・プロセッサ12A〜12Dに接続され、それらのノード・サービス・プロセッサは、対応する処理ノード14A〜14Dのスタートアップ/シャットダウンおよび対応する処理ノード14A〜14Dのオペレーションに関連した障害検出のような他のサービスを制御する。システム制御はシステム・サービス・プロセッサ10によって提供される。システム・サービス・プロセッサ10は、トップレベルのシステム制御を行使するためにおよびシステム・レベル・ステータスの合体を行うために、各ノード・サービス・プロセッサ12A〜12Dと通信する。システム・サービス・プロセッサ10は、処理ノード14A〜14Dにより実行されるトップレベルのソフトウェア環境を管理するハイパーバイザによって制御される。処理ノード14A〜14Dは、ハイパーバイザによって仮想化される多数の異なるオペレーティング・システムを含み得る。分散型処理ノード14A〜14Dは、高速のバス又はネットワーク17によって他の分散型処理ノードのグループおよびI/O装置に接続される。
【0013】
図1に示されたシステムにおけるセキュリティは、システム・サービス・プロセッサ10におけるTPN13によって提供される。TPM13は、サービス・プロセッサ集積回路内に統合されてもよく、或いはシステム・サービス・プロセッサ10のサブシステム・モジュールに搭載された個別の集積回路であってもよい。同様に、各ノード・サービス・プロセッサ12A〜12Dはノード・レベルTPM13A〜13Dを含む。TPM13または13A〜13Dの各々は、TPM13または13A〜13Dの外部にあるデバイスによってアクセスし得ない少なくとも1つの秘密デバイス鍵を含む。なお、秘密デバイス・鍵は、外部の装置によって提供された情報およびプログラムを暗号化し、その後それを暗号化解除するために使用され、TPM13又は13A〜13Dが実装されているプラットフォーム・モジュールを一意的に識別するデジタル署名を提供する。TPM13又は13A〜13D内にPCRが設けられ、本発明では仮想化されるので、PCRの適当に大きいセットが、TPM13又は13A〜13D内の各PCRに対する同時記憶装置(例えば、固有のレジスタ)を必要とすることなく提供される。本明細書において開示された発明の実施例は、トラステッド・コンピューティング・グループ(TCG)仕様の要件を満たすように使用し得るPCRをTPM内に設けているが、本発明の技術を他のタイプのトラステッド・デバイスに応用することによって他のタイプのトラステッド・デバイスを機能強化することも可能であるものと考えられる。更に、本発明の技術がトラステッド・デバイスのみならず、レジスタ又は他の記憶装置を安全な方法でインポートおよびエクスポートするためにそれが有用であるあらゆる装置に適用するものと考えられる。従って、安全に仮想化され得る記憶装置は、TPM内のPCR以外のレジスタまたは他の記憶装置であってもよいが、特に、下記の例示的な組合せに適用することが可能である。更に、下記の実施例は、外部デバイスの記憶装置への保存中およびその記憶装置からの検索中にレジスタ値を対称的に暗号化および暗号化解除するために単一のデバイス秘密鍵を使用することを開示しているが、レジスタを仮想化するという特定の目的のために専用のデバイス秘密鍵が提供されてもよいことは当然である。例えば、特定のデバイス秘密鍵は、特定のオペレーティング・システムおよび/またはアプリケーション、および指標によって複数のアプリケーションおよび/またはオペレーティング・システムに関連付けられたそのような鍵のアレイに対して使用されてもよい。更に、実行時の必然的なペナルティを伴って、非対称の暗号化/暗号化解除が、レジスタを仮想化するために使用されてもよい。
【0014】
次に、図2を参照すると、TPM13の詳細が示され、それはTPM13A〜13Dの内部の詳細と同じである。外部バス接続部29は、バス・インターフェース回路22を介してTPM13内の他の回路と通信を行うために使用される。暗号化プロセッサー26は、必要な種々のプロトコルに従って暗号化/暗号化解除サービスを提供し、データ値を一意的に暗号化するための格納されたデバイス秘密鍵(DPK)23をアクセスする。なお、そのデータ値は、その後、TPM13によってのみ暗号化解除され得る。TPM13および13A〜13Dの各々に対するDPK23の値は一意的であるが、TPM13および13A〜13Dの他のハードウェア細部は同じである。本発明は、TPM13の内部にあるプロセッサ・コア実行ファームウェアであってもよい制御ロジック25、および1つまたは複数のPCRに対する一時的記憶装置を提供するバッファ24を介して、仮想化されたPCR記憶装置を提供する。図示の実施例では、バッファ24における各レジスタ格納ロケーションは、タグ・フィールド24A、値フィールド24B、およびキャッシュ制御フィールド24Cを含む。値フィールド24Bは、PCR検索又は格納要求に応答してバス・インターフェース22により読取られおよび書込まれ得る実際のPCR値を保持する。しかし、バッファ24は、バス・インターフェースを介してアクセスし得るすべてのPCRに対する記憶装置を含むのではなく、PCR記憶装置全体のキャッシュされた部分だけを含む。タグ・フィールド24Aは、TPMにとって必要なPCRの最大数を表わすことができるよう、或る範囲のレジスタ番号を提供するための大きさにされる。
【0015】
タグ・フィールド24Aは、バッファ24に現在キャッシュされているPCRを識別し、値フィールド24Bに含まれた対応する値のPCRレジスタ番号を含むために使用される。特定のPCRを読取るまたは書込むための要求が行われるとき、制御ロジック25はバッファ24内の各ロケーションのタグ・フィールド24Aをチェックし、要求されたPCRが存在しない場合、それはバッファ24内のフリー・ロケーションにロードされる。そのローディングは、暗号化されたバッファ値を、外部記憶装置からバス・インターフェース22を介して検索すること、並びに、DPK23および暗号化プロセッサ26を使用してそのバッファ値を暗号化解除することにより行なわれる。フリー・ロケーションがバッファ24内で得られない場合、最低使用頻度(LRU)キャストアウトのようなキャッシュ・アルゴリズムが使用される。本明細書に開示された実施例が必要に応じて単一のキャッシュ値に関して作動している間、バッファ24がプリフェッチ・バッファとして作動するかまたはプリフェッチ・バッファを含み得ること、および複数の仮想レジスタ値が単一の要求に応答して検索され得ること、例えば、近辺又はバンクにおける他のレジスタもアクセスされそうであるということを期待して、仮想化されたレジスタの近辺又はバンクが同時にロードされ得ることは当然である。制御ロジック25は、バッファ24における少なくとも最近使用されたロケーションを決定するためにMRUフィールド24Cをスキャンし、暗号化プロセッサ26およびDPK23を使用してその値を暗号化することおよびバス・インターフェースを介して外部記憶装置にその値を格納することによってその値を外部記憶装置にフラッシュする。バッファに存在しないレジスタに対するレジスタ書込み要求が受取られると、同様のキャストアウト・ロード・オペレーションを遂行するか、或いは、暗号化されて外部記憶装置にその値を直接書込むことが可能である。そのどちらが行われるかは、どちらのレジスタ値がバッファ24においてキャッシュされるべきかを決定するという目的で、制御ロジック25により実施される特定のアルゴリズムがレジスタ書込みを「レジスタ使用」イベントとして扱うかどうかに依存する。更に、書込みキャッシングは、バッファ24が書込まれる場合、書込まれた値のような時間がフラッシュされるまで、仮想レジスタの外部記憶装置が更新および/または無効化されるか又はされないかということで使用され得るかまたは使用され得ない。より簡単なMRU/LRU方式を使用するというのではなく、アクセス・カウントを介してレジスタ・アクセス頻度を測定するというような、種々のキャッシング・アルゴリズムを使用し得るということが考えられる。
【0016】
図2に示された回路は、システム・メモリを記憶装置として使用し得るように、主なTPMバス・インターフェース22を使って暗号化された仮想化されたPCRレジスタを格納するが、専用の且つ個別のバスが二者択一的に使用され得るものと考えられる。例えば、仮想化された暗号化されたレジスタ情報がシステムにおける他の装置にとってアクセスし得ないものであるように、外部フラッシュ・メモリに対する専用のインターフェースを実装することも可能である。そのような実施態様は、外部メモリ・サイズを選定し得る融通性のある解決策をシステム・インテグレータに提供するが、オンチップ記憶装置の縮小および設計の普遍性によって低コストのTPM13を提供することができた。一般に、本発明の仮想化の安全な性質およびシステム・メモリの一般に大きなサイズおよび入手の容易性により、図示の実施例は、仮想化されたPCRの大きなセットを提供するための普遍的で低コストの解決策を提供する。
【0017】
リブート中のPCR仮想化を保証するために、シャドー・レジスタの完全なセットを使用することも可能である。シャドー・レジスタは完全に仮想化され得るし、暗号化されると同じイメージのPCRを表すことができる。TPM13に関連したプラットフォームまたは特定のモジュールがリブートされるとき、正規のPCR記憶装置はリセットされるが、仮想化されたシャドー・レジスタ値は保持される。そこで、リブート後に、シャドーPCRが実際のPCRと比較され、そして、不一致が生じると、適切なセキュリティ・アクションがとられる。一旦トラステッド・リブートが生じると、シャドーPCRは、実際のPCRと一致させるためにリセットされてもよい。
【0018】
次に図3を参照すると、本発明の実施例によるPCR読取り方法がフローチャートで示される。本発明を具現化するために様々なアルゴリズムを使用することが可能であることは明らかであり、従って、図示の方法は本発明を実行するために使用し得る単なる一例に過ぎない。これは、コンピュータ・システム内のプロセッサによる実行のための符号化されたプログラム命令を含むコンピュータ・プログラムとして実現され得る。指定されたレジスタ番号(ロケーション)からのレジスタ値を求める要求を受取るとき(ステップ30)、バッファ24のタグ値24Aがレジスタ番号に関してスキャンされる(ステップ31)。そのレジスタ値が既にバッファにある場合(判断ステップ32)、その値が要求の結果として提供され、そのレジスタがMRUとしてマークされる(ステップ38)。そのレジスタ価値がバッファに存在しない場合(判断ステップ32)、LRUレジスタ値が検索され(ステップ33)、暗号化され(ステップ34)、外部の正規のレジスタおよびシャドー・レジスタ記憶装置に書込まれる(ステップ35)。要求されたレジスタ値の暗号化バージョンが検索され(ステップ36)、バッファ24へ暗号化解除され(ステップ37)、しかる後、要求の結果として提供され、その値に対するバッファ24における格納ロケーションがMRUとしてマークされる(ステップ38)。
【0019】
次に図4を参照すると、本発明の実施例によるPCR書込み方法がフローチャートで示される。本発明を具現化するために様々なアルゴリズムを使用することが可能であることは明らかであり、従って、図示の方法は、本発明を実行するために使用し得る方法の単なる1つの例である。指定されたレジスタ番号(ロケーション)にレジスタ値を書込むための要求が受取られるとき(ステップ40)、バッファ24のタグ値24Aがそのレジスタ番号に関してスキャンされる(ステップ41)。そのレジスタ値が既にバッファにある場合(判断ステップ42)、その値は更新され、そのレジスタはMRCとしてマークされる(ステップ48)。そのレジスタ値がバッファに存在しない場合(判断ステップ42)、LRUレジスタ値が検索され(ステップ43)、暗号化され(ステップ44)、そして外部の正規のレジスタおよびシャドー記憶装置に書込まれる(ステップ45)。しかる後、そのフリーにされたLRUレジスタ・ロケーションが、書込み要求によって供給されたレジスタ値を上書きされ、そのロケーションがMRUとしてマークされる(ステップ46)。更に、その供給された値は暗号化され、正規の外部PCRおよびシャドー・レジスタ記憶装置に書込まれる(ステップ47)。
【0020】
上記の実施例はレジスタ仮想化によってTPMにPCRの大きなセットを設けるための完全なハードウェアベースの解決策を提供するが、本発明の代替実施例による別の実施態様が考えられる。それは、PCRの任意に大きなセット提供するのみならず、PCRの仮想化を提供するために既存のハードウェアおよびサービスにてこ入れし得るものである。その代替の実施例では、TPM要求を管理するデバイス・ドライバが、要求元によりそのデバイス・ドライバに送られたレジスタ値を暗号化および暗号化解除するようにTPMに要求することによって、レジスタ記憶装置を仮想化するように修正される。限られた数のPCRを有する既存のTPMが拡張されてもよく、あるいは、TPMの内のPCRが無視されてもよく、従って、デバイス・ドライバは、仮想化されたレジスタ値に暗号化サービスおよび暗号化解除サービスを提供するためにTPMを使用する。
【0021】
次に図5を参照すると、そのようなデバイス・ドライバのオペレーションが示される。仮想化されたPCRレジスタ値に関連した要求をそのデバイス・ドライバが受取るとき、プロセスが始まる(ステップ50)。TPMの一定数のPCRが任意選択的に使用される場合、レジスタ番号が、TPMにより支援されたPCRの数と比較され(判断ステップ51)、その要求が、供給された要求に対する正規の方法で処理される(ステップ52)。仮想化されたレジスタに関して、その要求が読取り要求である場合(判断ステップ53)、デバイス・ドライバは仮想化されたPCRの暗号化された値をメモリから検索し(ステップ54)、そしてその暗号化された値を暗号化解除ためにTPMに供給する(ステップ55)。次に、暗号化解除された結果が要求元に供給される(ステップ56)。要求が書込み要求である場合(判断ステップ53)、デバイス・ドライバはレジスタ値を暗号化のためにTPMに供給し(ステップ57)、そしてその暗号化された結果を正規の且つシャドー仮想化された格納ロケーションに保存する。デバイス・ドライバ技術と上述のハードウェア技術との結合を行うことが可能であることは明らかである。例えば、1つの実施例はキャッシュ・ベースのPCR記憶装置を有するTPMを含み得るが、PCR値がバッファ24に存在しないことをTPMが表わすことに応答して、仮想化されたPCRのみを検索および暗号化解除するデバイス・ドライバによって管理される。
【0022】
本発明の好適な実施例に関して本発明を詳細に図示および説明したが、形式における上記およびその他の変更が本発明の真意および範囲から逸脱することなく行われ得ることは明らかであろう。
【図面の簡単な説明】
【0023】
【図1】本発明の実施例を実施する分散型コンピューティング・システムのブロック図である。
【図2】本発明の実施例によるトラステッド・デバイスのブロック図である。
【図3】本発明の実施例による仮想レジスタ読取り方法を示すフローチャートである。
【図4】本発明の実施例による仮想レジスタ書込み方法を示すフローチャートである。
【図5】本発明の実施例による仮想レジスタ方法を示すフローチャートである。

【特許請求の範囲】
【請求項1】
安全保護された処理システムにおけるトラステッド・デバイス集積回路内の記憶装置を仮想化する方法であって、
レジスタ番号に関連した第1の値を求める要求を受取るステップと、
前記レジスタ番号を使用して前記トラステッド・デバイス集積回路の外部にある記憶装置から前記第1の値の暗号化バージョンを検索するステップと、
前記第1の値を得るために秘密デバイス鍵を使って前記第1の値の検索された暗号化バージョンを暗号化解除するステップであって、該暗号化解除することによって、前記第1の値が前記トラステッド・デバイス集積回路におけるバッファに格納される、前記暗号化解除するステップと、
前記バッファから前記第1の値を供給することによって前記要求に応答するステップと、
を含む、方法。
【請求項2】
前記バッファに格納された第2の値を暗号化するステップと、
前記トラステッド・デバイス集積回路の外部にある前記暗号化の結果を、前記レジスタ番号に従ってアクセスし得る前記記憶装置に格納するステップであって、該格納することによって、その後、前記暗号化の結果を前記レジスタ番号に従って検索し得るようにする、前記格納するステップと、
を更に含む、請求項1に記載の方法。
【請求項3】
前記受取るステップ、前記検索するステップ、前記応答するステップ、および前記格納するステップは、前記安全保護された処理システムにおいて実行されるデバイス・ドライバによって遂行され、前記暗号化解除するステップおよび前記暗号化するステップは、前記トラステッド・デバイスへの前記デバイス・ドライバによる要求に応答して前記トラステッド・デバイスによって遂行される、請求項2に記載の方法。
【請求項4】
前記レジスタ番号に従ってアクセスし得るシャドー・レジスタに前記暗号化の結果を格納するステップであって、該格納することによって、前記暗号化の格納された結果が、前記シャドー・レジスタに格納されていたシャドー値との比較によりその後のブート・プロセス中に検証され得る、ステップを更に含む、請求項2に記載の方法。
【請求項5】
前記暗号化するステップおよび前記格納するステップは、前記受取るステップに応答して遂行され、該遂行されることによって、前記第2の値が前記外部にある記憶装置へフラッシュされて、前記第1の値の格納のために前記バッファを使用可能にする、請求項2に記載の方法。
【請求項6】
前記バッファが複数の格納ロケーションを含み、
キャッシュ・アルゴリズムに従って前記格納ロケーションの1つを選択するステップを更に含み、
前記暗号化するステップおよび前記格納するステップは、前記選択するステップで選択された格納ロケーションにおいて遂行され、前記暗号化解除するステップは、前記第1の値の前記検索された暗号化バージョンを前記選択された格納ロケーションへ暗号化解除する、請求項5に記載の方法。
【請求項7】
前記要求は、前記トラステッド・デバイス内の多数の物理的レジスタよりも少なくとも一桁大きい大きさの一連の仮想レジスタから前記レジスタ番号を指定する、請求項1に記載の方法。
【請求項8】
前記バッファにおける各ロケーションは、前記値を格納するための値レジスタおよび前記レジスタ番号を格納するためのタグ・レジスタを含み、前記暗号化解除するステップは、前記第1の値の前記検索された暗号化バージョンを前記値レジスタへ暗号化解除し、
前記方法は前記レジスタ番号を前記タグ・レジスタに書込むステップを更に含む、請求項1に記載の方法。
【請求項9】
前記受取るステップ、前記検索するステップ、および前記応答するステップは、前記安全保護された処理システム内で実行されるデバイス・ドライバによって遂行され、前期暗号化解除するステップは、前記トラステッド・デバイスへの前記デバイス・ドライバによる要求に応答して前記トラステッド・デバイスによって遂行される、請求項1に記載の方法。
【請求項10】
トラステッド・デバイス集積回路であって、
前記トラステッド・デバイス集積回路のレジスタの値を格納するためのバッファと、
前記レジスタの値を対称的に暗号化および暗号化解除するための暗号処理回路と、
レジスタ番号に従ってレジスタをアクセスする要求を受取るための制御ロジックと、
を含み、
前記制御ロジックは、前記要求に応答して、前記暗号処理回路および前記バッファに関連して外部にある記憶装置に格納された暗号化されたレジスタの値をアクセスするために、前記トラステッド・デバイス集積回路の前記外部記憶装置へのアクセスを生じさせ、従って、前記暗号化されたレジスタの値が前記バッファにおける暗号化されてないレジスタの値にマップされる、トラステッド・デバイス集積回路。
【請求項11】
前記制御ロジックは、前記レジスタ番号に従って前記レジスタの値に関連した読取り要求を受取り、前記制御ロジックは、前記外部記憶装置から前記暗号化されたレジスタの値を検索し、前記暗号化されたレジスタの値を前記バッファにおけるロケーションへ暗号化プロセッサに暗号化解除させる、請求項10に記載のトラステッド・デバイス集積回路。
【請求項12】
前記制御ロジックは、前記レジスタ番号に従って、供給された値を書込むための書込み要求を受取り、前記制御ロジックは、前記暗号化されたレジスタの値を提供するためにおよび前記暗号化されたレジスタの値を前記外部にある記憶装置に格納するために、前記供給された値を前記暗号処理回路に暗号化させる、請求項10に記載のトラステッド・デバイス集積回路。
【請求項13】
前記バッファは複数の格納レジスタを含み、前記格納レジスタの各々はタグ値およびプラットフォーム制御レジスタにおける前記値の対応する1つを格納し、前記制御ロジックは、前記タグ値を使用して前記レジスタ番号に対応する特定のレジスタのロケーションを識別する、請求項10に記載のトラステッド・デバイス集積回路。
【請求項14】
前記格納レジスタの各々は前記格納レジスタの各々へのアクセスの頻度の表示を更に格納する、請求項13に記載のトラステッド・デバイス集積回路。
【請求項15】
前記制御ロジックは、読取り要求に応答して、前記バッファに自由ロケーションが存在するかどうかを決定し、自由ロケーションが存在しない場合、前記制御ロジックは前記バッファに格納された前記値の1つを前記外部にある記憶装置へ書込ませる、請求項10に記載のトラステッド・デバイス集積回路。
【請求項16】
前記制御ロジックは、更に、前記レジスタに応答して行われる前記レジスタの修正に基づいて修正される仮想シャドー・レジスタのセットを前記外部にある記憶装置に維持する、請求項10に記載のトラステッド・デバイス集積回路。
【請求項17】
コンピュータ・システム内のプロセッサによる実行のための符号化されたプログラム命令を含み、前記プログラム命令が前記コンピュータ・システム内のトラステッド・デバイスに対するソフトウェア・インターフェースを提供するためのデバイス・ドライバのプログラム命令を含む、コンピュータ・プログラムであって、
前記トラステッド・デバイスの外部にある記憶装置への、仮想化された前記トラステッド装置のレジスタに関連した要求を、前記レジスタの値の暗号化バージョンで受取るためのプログラム命令と、
前記要求を満たすために前記値の前記暗号化バージョンを暗号法的に処理するように前記トラステッド・デバイスに要求するためのプログラム命令と、
を含む、コンピュータ・プログラム。
【請求項18】
前記要求が前記トラステッド・デバイスにおける物理的レジスタに対応するかどうかを決定するためのプログラム命令を更に含み、前記要求するためのプログラム命令は、前記要求が前記トラステッド・デバイスにおける前記物理的レジスタに対応しないという決定にのみ応答して遂行される、請求項17に記載のコンピュータ・プログラム。
【請求項19】
前記要求がレジスタ読取り要求であるかどうかを決定するためのプログラム命令と、
前記要求がレジスタ読取り要求であるという決定に応答して、前記レジスタの前記値の前記暗号化バージョンを前記外部にある記憶装置から検索するためのプログラム命令と、
前記検索するためのプログラム命令の完了に応答して、前記トラステッド・デバイスが前記レジスタの前記値の前記検索された暗号化バージョンを暗号化解除することを要求するために前記要求するためのプログラム命令を遂行するためのプログラム命令と、
を更に含む、請求項17に記載のコンピュータ・プログラム。
【請求項20】
前記要求がレジスタ書込み要求であるかどうかを決定するためのプログラム命令と、
前記要求がレジスタ書込み要求であるという決定に応答して、前記レジスタ書込み要求を供給された前記レジスタに対する値を前記トラステッド・デバイスが暗号化することを要求するために、前記要求するためのプログラム命令を遂行するためのプログラム命令と、
前記暗号化の完了に応答して、前記暗号化の結果を、前記レジスタの前記値の前記暗号化バージョンとして、前記外部にある記憶装置に格納するためのプログラム命令と、
を更に含む、請求項17に記載のコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2008−123513(P2008−123513A)
【公開日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願番号】特願2007−279797(P2007−279797)
【出願日】平成19年10月29日(2007.10.29)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】