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

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

Info

Publication number
JP2008123513A
JP2008123513A JP2007279797A JP2007279797A JP2008123513A JP 2008123513 A JP2008123513 A JP 2008123513A JP 2007279797 A JP2007279797 A JP 2007279797A JP 2007279797 A JP2007279797 A JP 2007279797A JP 2008123513 A JP2008123513 A JP 2008123513A
Authority
JP
Japan
Prior art keywords
register
value
request
trusted device
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007279797A
Other languages
English (en)
Other versions
JP4876053B2 (ja
Inventor
Tomar Bipin
ビピン・トマール
Pruthvi P Nataraj
プルスビ・パニャム・ナタライ
Arun P Anbalagan
アルン・ピー・アンバラガン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008123513A publication Critical patent/JP2008123513A/ja
Application granted granted Critical
Publication of JP4876053B2 publication Critical patent/JP4876053B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

本発明は、一般に、処理システムにおけるセキュリティに関し、特に、トラステッド・デバイスにおいて記憶装置を仮想化するための方法および装置に関するものである。
セキュア・コンピューティング・システムにおけるデータとコードの保護は、益々、トラステッド・コンピューティング機構の統合化を必要としている。特に、プラットフォームからアクセスし得るデータを処理する大規模サーバ・システムは、非常に多数の価値ある情報を漏洩する可能性のある実記憶装置あるいは記憶装置への経路を含むことがある。従って、サーバ・システムは安全保護されなければならず、そのため、それらが外部のネットワークを介した外部攻撃に対して保護されるだけではなく、各コンピューティング・コンポーネントのアイデンティティが、データへのコンポーネントのアクセスを許容する前におよびトラステッド・プラットフォームを必要とするあらゆるコードの実行に先立って、保証されることが理想的である。
トラステッド・プラットフォームを実装するための代表的な機構は、各々が除去可能なサブシステムにおいて、トラステッド・コンピューティング・グループ(TrustedComputing Group - TCG)によって推奨された標準ではトラステッド・プラットフォーム・モジュール(TPM)と呼ばれる、トラステッド・デバイスを組込むためのものである。TPMは、そのサブシステムのアイデンティティが特定のトラステッド・アイデンティティと一致していることを検証するために使用され、TPMが正しいサブシステムに実装されていることを検証するためにも使用することができる。トラステッド・デバイスの独自性は、特定のデバイスに特有のデバイス鍵によって保証される。その鍵はデバイスの製造中に配線または実装され、どんなインターフェースによってもそのデバイスから読取ることができない。
TPMデバイス鍵は、トラステッド・デバイスを使用して様々なセキュリティ・チェックを行なうために使用される。トラステッド・デバイスは、処理要素、レジスタ、および任意選択的な専用暗号化回路を含み、従って、デバイス鍵を用いて行なわれる検証、暗号化、および暗号化解除は、デバイスに「シール(seal)」される。プラットフォーム制御レジスタ(PCR)として知られているTPMにおける一組のレジスタは、システムにおいて実行されるソフトウェア・モジュールを表すハッシュ値、追加の暗号化キーのような情報、および、TPMの照会がトラステッド・プラットフォームの状態を正確に表わすように信頼されるべく、安全に維持されなければならない他の情報を格納する。
しかし、TPMにおける記憶装置はシールされ、しかも、プラットフォームの状態を表わすレジスタはTPM内に含まれるので、格納スペースは必然的に制限される。TPMのアプリケーションは、プラットフォームに存在する安全な要素を記述するために多数のレジスタを必要とする記憶装置および他のアプリケーションを含むために増加するので、TPMのコストも増加する。
従って、本発明の目的は、拡張可能なレジスタを有するトラステッド・デバイス、および、そのトラステッド・デバイスにおける記憶装置の制限を克服すべくレジスタ拡張を保護するための方法を提供することである。
上記の目的は、本発明の方法および装置によって達成される。この装置はトラステッド・デバイス集積回路であり、この方法の一部分は、トラステッド・デバイス内の処理コア内で実行されるコンピュータ・プログラムとして具体化することが可能である。
トラステッド・デバイスは、格納バッファと、そのバッファおよびそのトラステッド・デバイスの外部にある記憶装置の間で値を安全に格納および検索するための制御ロジックとを含む。値を対称的に暗号化および暗号化解除するためにトラステッド・デバイスに専用の鍵が使用され、従って、その値は、トラステッド・デバイスの外に転送される時でも危険に晒されることはない。外部に格納された値を指標付けするためにレジスタ番号が使用され、従って、指標サイズおよび利用可能な外部記憶装置のサイズによって指定されるように、適宜に多数の仮想レジスタがトラステッド・デバイス内で支援され得る。
頻繁に読取られたレジスタが外部フェッチおよび暗号化解除を必要とすることなく検索されるよう、「最新使用(mostrecently used)」ルール又は他のルールに従ってバッファがキャッシュ機構を実装することも可能である。外部に格納され且つ暗号化されたレジスタ値を改ざんすることによりトラステッド・デバイスの整合性が危険にさらされることがないことを保証するために、スタートアップ時に、レジスタ・シャドーイング(register shadowing)技術を使用することも可能である。
本発明の上記および他の目的、特徴、および利点は、添付図面に示された本発明の好適な実施例に関する下記の更に詳細な説明から明らかになるであろう。
本発明はトラステッド・デバイスに関し、特に、トラステッド・プラットフォーム・モジュール(TPM)のようなトラステッド・デバイスに関するものである。TPMは、一般に、処理ノードまたは他のコンピューター要素のアイデンティティ、および、ソフトウェア・モジュールが処理ノードによって実行されつつあるというようなシステム状態を安全に検証するためのプラットフォーム制御レジスタ(PCR)および他のフィーチャを有する集積回路である。本発明は、レジスタの値が必要に応じて外部記憶装置との間で転送されるよう、PCRセットのような記憶装置の適宜拡張可能なセットおよび/またはトラステッド・デバイス内の他のレジスタを、対称的な暗号化/暗号化解除プロセスを介して提供し得る機構および方法を提供する。本発明の技術は、トラステッド・デバイスのみならず、レジスタあるいは他の記憶装置を安全にインポートおよびエクスポートするために有用であるあらゆる装置に適用するものと考えられる。
次に、図面、特に図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装置に接続される。
図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以外のレジスタまたは他の記憶装置であってもよいが、特に、下記の例示的な組合せに適用することが可能である。更に、下記の実施例は、外部デバイスの記憶装置への保存中およびその記憶装置からの検索中にレジスタ値を対称的に暗号化および暗号化解除するために単一のデバイス秘密鍵を使用することを開示しているが、レジスタを仮想化するという特定の目的のために専用のデバイス秘密鍵が提供されてもよいことは当然である。例えば、特定のデバイス秘密鍵は、特定のオペレーティング・システムおよび/またはアプリケーション、および指標によって複数のアプリケーションおよび/またはオペレーティング・システムに関連付けられたそのような鍵のアレイに対して使用されてもよい。更に、実行時の必然的なペナルティを伴って、非対称の暗号化/暗号化解除が、レジスタを仮想化するために使用されてもよい。
次に、図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の最大数を表わすことができるよう、或る範囲のレジスタ番号を提供するための大きさにされる。
タグ・フィールド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方式を使用するというのではなく、アクセス・カウントを介してレジスタ・アクセス頻度を測定するというような、種々のキャッシング・アルゴリズムを使用し得るということが考えられる。
図2に示された回路は、システム・メモリを記憶装置として使用し得るように、主なTPMバス・インターフェース22を使って暗号化された仮想化されたPCRレジスタを格納するが、専用の且つ個別のバスが二者択一的に使用され得るものと考えられる。例えば、仮想化された暗号化されたレジスタ情報がシステムにおける他の装置にとってアクセスし得ないものであるように、外部フラッシュ・メモリに対する専用のインターフェースを実装することも可能である。そのような実施態様は、外部メモリ・サイズを選定し得る融通性のある解決策をシステム・インテグレータに提供するが、オンチップ記憶装置の縮小および設計の普遍性によって低コストのTPM13を提供することができた。一般に、本発明の仮想化の安全な性質およびシステム・メモリの一般に大きなサイズおよび入手の容易性により、図示の実施例は、仮想化されたPCRの大きなセットを提供するための普遍的で低コストの解決策を提供する。
リブート中のPCR仮想化を保証するために、シャドー・レジスタの完全なセットを使用することも可能である。シャドー・レジスタは完全に仮想化され得るし、暗号化されると同じイメージのPCRを表すことができる。TPM13に関連したプラットフォームまたは特定のモジュールがリブートされるとき、正規のPCR記憶装置はリセットされるが、仮想化されたシャドー・レジスタ値は保持される。そこで、リブート後に、シャドーPCRが実際のPCRと比較され、そして、不一致が生じると、適切なセキュリティ・アクションがとられる。一旦トラステッド・リブートが生じると、シャドーPCRは、実際のPCRと一致させるためにリセットされてもよい。
次に図3を参照すると、本発明の実施例によるPCR読取り方法がフローチャートで示される。本発明を具現化するために様々なアルゴリズムを使用することが可能であることは明らかであり、従って、図示の方法は本発明を実行するために使用し得る単なる一例に過ぎない。これは、コンピュータ・システム内のプロセッサによる実行のための符号化されたプログラム命令を含むコンピュータ・プログラムとして実現され得る。指定されたレジスタ番号(ロケーション)からのレジスタ値を求める要求を受取るとき(ステップ30)、バッファ24のタグ値24Aがレジスタ番号に関してスキャンされる(ステップ31)。そのレジスタ値が既にバッファにある場合(判断ステップ32)、その値が要求の結果として提供され、そのレジスタがMRUとしてマークされる(ステップ38)。そのレジスタ価値がバッファに存在しない場合(判断ステップ32)、LRUレジスタ値が検索され(ステップ33)、暗号化され(ステップ34)、外部の正規のレジスタおよびシャドー・レジスタ記憶装置に書込まれる(ステップ35)。要求されたレジスタ値の暗号化バージョンが検索され(ステップ36)、バッファ24へ暗号化解除され(ステップ37)、しかる後、要求の結果として提供され、その値に対するバッファ24における格納ロケーションがMRUとしてマークされる(ステップ38)。
次に図4を参照すると、本発明の実施例によるPCR書込み方法がフローチャートで示される。本発明を具現化するために様々なアルゴリズムを使用することが可能であることは明らかであり、従って、図示の方法は、本発明を実行するために使用し得る方法の単なる1つの例である。指定されたレジスタ番号(ロケーション)にレジスタ値を書込むための要求が受取られるとき(ステップ40)、バッファ24のタグ値24Aがそのレジスタ番号に関してスキャンされる(ステップ41)。そのレジスタ値が既にバッファにある場合(判断ステップ42)、その値は更新され、そのレジスタはMRCとしてマークされる(ステップ48)。そのレジスタ値がバッファに存在しない場合(判断ステップ42)、LRUレジスタ値が検索され(ステップ43)、暗号化され(ステップ44)、そして外部の正規のレジスタおよびシャドー記憶装置に書込まれる(ステップ45)。しかる後、そのフリーにされたLRUレジスタ・ロケーションが、書込み要求によって供給されたレジスタ値を上書きされ、そのロケーションがMRUとしてマークされる(ステップ46)。更に、その供給された値は暗号化され、正規の外部PCRおよびシャドー・レジスタ記憶装置に書込まれる(ステップ47)。
上記の実施例はレジスタ仮想化によってTPMにPCRの大きなセットを設けるための完全なハードウェアベースの解決策を提供するが、本発明の代替実施例による別の実施態様が考えられる。それは、PCRの任意に大きなセット提供するのみならず、PCRの仮想化を提供するために既存のハードウェアおよびサービスにてこ入れし得るものである。その代替の実施例では、TPM要求を管理するデバイス・ドライバが、要求元によりそのデバイス・ドライバに送られたレジスタ値を暗号化および暗号化解除するようにTPMに要求することによって、レジスタ記憶装置を仮想化するように修正される。限られた数のPCRを有する既存のTPMが拡張されてもよく、あるいは、TPMの内のPCRが無視されてもよく、従って、デバイス・ドライバは、仮想化されたレジスタ値に暗号化サービスおよび暗号化解除サービスを提供するためにTPMを使用する。
次に図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のみを検索および暗号化解除するデバイス・ドライバによって管理される。
本発明の好適な実施例に関して本発明を詳細に図示および説明したが、形式における上記およびその他の変更が本発明の真意および範囲から逸脱することなく行われ得ることは明らかであろう。
本発明の実施例を実施する分散型コンピューティング・システムのブロック図である。 本発明の実施例によるトラステッド・デバイスのブロック図である。 本発明の実施例による仮想レジスタ読取り方法を示すフローチャートである。 本発明の実施例による仮想レジスタ書込み方法を示すフローチャートである。 本発明の実施例による仮想レジスタ方法を示すフローチャートである。

Claims (20)

  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に記載のコンピュータ・プログラム。
JP2007279797A 2006-11-09 2007-10-29 トラステッド・デバイス集積回路 Active JP4876053B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/558,024 US9171161B2 (en) 2006-11-09 2006-11-09 Trusted device having virtualized registers
US11/558,024 2006-11-09

Publications (2)

Publication Number Publication Date
JP2008123513A true JP2008123513A (ja) 2008-05-29
JP4876053B2 JP4876053B2 (ja) 2012-02-15

Family

ID=39370568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007279797A Active JP4876053B2 (ja) 2006-11-09 2007-10-29 トラステッド・デバイス集積回路

Country Status (3)

Country Link
US (1) US9171161B2 (ja)
JP (1) JP4876053B2 (ja)
CN (1) CN101178759B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010113266A1 (ja) * 2009-03-31 2010-10-07 富士通株式会社 情報処理装置,情報処理装置の起動制御方法及び起動プログラム
JP2018537785A (ja) * 2015-12-07 2018-12-20 アマゾン・テクノロジーズ、インコーポレイテッド チェーン接続セキュリティシステム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840801B2 (en) * 2007-01-19 2010-11-23 International Business Machines Corporation Architecture for supporting attestation of a virtual machine in a single step
US9020146B1 (en) * 2007-09-18 2015-04-28 Rockwell Collins, Inc. Algorithm agile programmable cryptographic processor
DE102007045743A1 (de) * 2007-09-25 2009-04-02 Siemens Ag Verfahren und System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes
CN101488176B (zh) * 2009-02-20 2010-06-02 北京交通大学 一种针对tpm可信计算的toctou攻击响应方法
US9015078B2 (en) * 2010-03-28 2015-04-21 Lenovo (Singapore) Pte. Ltd. Audit trails for electronic financial transactions
EP3467671B1 (en) * 2011-04-12 2020-07-15 Amadeus S.A.S. Cache memory structure and method
EP2710509A4 (en) 2011-05-18 2015-02-25 Nokia Corp SECURE PRIMER WITH TRUSTED COMPUTER GROUP PLATFORM REGISTERS
WO2014072579A1 (en) * 2012-11-08 2014-05-15 Nokia Corporation Partially virtualizing pcr banks in mobile tpm
CN104539622B (zh) * 2014-12-31 2018-01-23 华为技术有限公司 虚拟机的深度证明方法、计算设备和计算机系统
CN106648544B (zh) * 2015-11-02 2019-03-26 龙芯中科技术有限公司 寄存器的分配方法和装置
US10721067B2 (en) * 2016-08-10 2020-07-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure processor for multi-tenant cloud workloads
US10417433B2 (en) 2017-01-24 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Encryption and decryption of data owned by a guest operating system
CN107943715B (zh) * 2017-10-12 2021-10-01 记忆科技(深圳)有限公司 一种提升NVMe固态硬盘读缓存命中的方法
CN109997140B (zh) * 2018-09-10 2023-03-24 深圳市汇顶科技股份有限公司 使用一次写入寄存器从设备的睡眠状态加速安全启动的低功耗嵌入式设备
CN113420299A (zh) * 2021-04-15 2021-09-21 麒麟软件有限公司 一种基于国密算法sm3的计算机系统安全启动引导方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2173225C (en) * 1993-10-12 2006-07-18 Stephen W. Olson Virtual address translation hardware assist circuit and method
US5619711A (en) * 1994-06-29 1997-04-08 Motorola, Inc. Method and data processing system for arbitrary precision on numbers
US5825878A (en) * 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
US6233599B1 (en) * 1997-07-10 2001-05-15 International Business Machines Corporation Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
US6798884B1 (en) 1998-09-16 2004-09-28 Murata Kikai Kabushiki Kaisha Encryption method, decryption method, encryption/decryption method, cryptographic communications system, and computer usable medium
US6735310B1 (en) 1999-09-17 2004-05-11 International Business Machines Corporation Technique of password encryption and decryption for user authentication in a federated content management system
US6766435B1 (en) * 2000-05-31 2004-07-20 Hewlett-Packard Development Company, L.P. Processor with a general register set that includes address translation registers
US6772288B1 (en) * 2000-09-06 2004-08-03 Stmicroelectronics, Inc. Extended cache memory system and method for caching data including changing a state field value in an extent record
TW546936B (en) 2000-10-27 2003-08-11 Synq Technology Inc Data encrypting/decrypting system in client/server structure and the method thereof
US8626821B2 (en) * 2001-04-17 2014-01-07 Hewlett-Packard Development Company, L.P. Limiting access to information corresponding to a context
GB2376764B (en) * 2001-06-19 2004-12-29 Hewlett Packard Co Multiple trusted computing environments
US6996725B2 (en) * 2001-08-16 2006-02-07 Dallas Semiconductor Corporation Encryption-based security protection for processors
US7191464B2 (en) * 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
TW567702B (en) 2002-04-22 2003-12-21 Taiwan Semiconductor Mfg System and method integrating e-mail encryption/decryption
US7313797B2 (en) * 2002-09-18 2007-12-25 Wind River Systems, Inc. Uniprocessor operating system design facilitating fast context switching
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
US6907494B2 (en) * 2002-10-10 2005-06-14 International Business Machines Corporation Method and system of managing virtualized physical memory in a memory controller and processor system
DE10260606B4 (de) * 2002-12-23 2006-03-30 Infineon Technologies Ag Vorrichtung zur Übersetzung mehrerer virtueller Adressen auf eine einzige physikalische Adresse
TW595183B (en) 2003-03-14 2004-06-21 Acer Labs Inc Crypto-system with an inverse key evaluation circuit
US7346344B2 (en) * 2003-05-30 2008-03-18 Aol Llc, A Delaware Limited Liability Company Identity-based wireless device configuration
US7243208B2 (en) * 2003-08-13 2007-07-10 Renesas Technology Corp. Data processor and IP module for data processor
US7313679B2 (en) * 2003-10-17 2007-12-25 Intel Corporation Extended trusted computing base
US7636858B2 (en) * 2003-12-11 2009-12-22 Intel Corporation Management of a trusted cryptographic processor
US7552419B2 (en) * 2004-03-18 2009-06-23 Intel Corporation Sharing trusted hardware across multiple operational environments
US8271783B2 (en) * 2004-04-19 2012-09-18 Hewlett-Packard Development Company, L.P. Subordinate trusted platform module
US7380119B2 (en) * 2004-04-29 2008-05-27 International Business Machines Corporation Method and system for virtualization of trusted platform modules
US7484091B2 (en) * 2004-04-29 2009-01-27 International Business Machines Corporation Method and system for providing a trusted platform module in a hypervisor environment
US7480804B2 (en) * 2004-04-29 2009-01-20 International Business Machines Corporation Method and system for hierarchical platform boot measurements in a trusted computing environment
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US7099477B2 (en) * 2004-10-21 2006-08-29 International Business Machines Corporation Method and system for backup and restore of a context encryption key for a trusted device within a secured processing system
US7143287B2 (en) * 2004-10-21 2006-11-28 International Business Machines Corporation Method and system for verifying binding of an initial trusted device to a secured processing system
US7836299B2 (en) * 2005-03-15 2010-11-16 Microsoft Corporation Virtualization of software configuration registers of the TPM cryptographic processor
US7587595B2 (en) * 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
US20070079120A1 (en) * 2005-10-03 2007-04-05 Bade Steven A Dynamic creation and hierarchical organization of trusted platform modules

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010113266A1 (ja) * 2009-03-31 2010-10-07 富士通株式会社 情報処理装置,情報処理装置の起動制御方法及び起動プログラム
JP5287980B2 (ja) * 2009-03-31 2013-09-11 富士通株式会社 情報処理装置,情報処理装置の起動制御方法及び起動プログラム
US9037839B2 (en) 2009-03-31 2015-05-19 Fujitsu Limited Secure startup of information processing apparatus including determining whether configuration information for hardware resources of the information processing apparatus have been modified
JP2018537785A (ja) * 2015-12-07 2018-12-20 アマゾン・テクノロジーズ、インコーポレイテッド チェーン接続セキュリティシステム

Also Published As

Publication number Publication date
US9171161B2 (en) 2015-10-27
CN101178759B (zh) 2010-04-21
US20080114989A1 (en) 2008-05-15
CN101178759A (zh) 2008-05-14
JP4876053B2 (ja) 2012-02-15

Similar Documents

Publication Publication Date Title
JP4876053B2 (ja) トラステッド・デバイス集積回路
US11520906B2 (en) Cryptographic memory ownership table for secure public cloud
US10325118B2 (en) Cryptographic cache lines for a trusted execution environment
US20200278937A1 (en) Convolutional memory integrity
US9141558B2 (en) Secure memory control parameters in table look aside buffer data fields and support memory array
US10684945B2 (en) System, apparatus and method for providing key identifier information in a non-canonical address space
KR101880075B1 (ko) 중복 제거 기반 데이터 보안
CN112148642A (zh) 针对核中的所有权访问的存储器写入
US11775177B2 (en) Integrity tree for memory integrity checking
US20190215160A1 (en) Managing a set of cryptographic keys in an encrypted system
US11748490B2 (en) Computer system with moving target defenses against vulnerability attacks
US20220121447A1 (en) Hardening cpu predictors with cryptographic computing context information
US11216592B2 (en) Dynamic cryptographic key expansion
US20240080193A1 (en) Counter integrity tree

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111019

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111108

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111128

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4876053

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150