JP2008535049A - トラステッドデータのための方法、デバイス、およびデータ構造体 - Google Patents

トラステッドデータのための方法、デバイス、およびデータ構造体 Download PDF

Info

Publication number
JP2008535049A
JP2008535049A JP2008502491A JP2008502491A JP2008535049A JP 2008535049 A JP2008535049 A JP 2008535049A JP 2008502491 A JP2008502491 A JP 2008502491A JP 2008502491 A JP2008502491 A JP 2008502491A JP 2008535049 A JP2008535049 A JP 2008535049A
Authority
JP
Japan
Prior art keywords
platform
data structure
software
trusted
data
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
JP2008502491A
Other languages
English (en)
Other versions
JP4732508B2 (ja
Inventor
プラウドラー・グレーム・ジョン
プラクィーン・デイビッド
バートン・ウィリアム
キュールマン・ダーク
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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
Priority claimed from GB0505746A external-priority patent/GB2424494A/en
Priority claimed from GB0510558A external-priority patent/GB0510558D0/en
Priority claimed from GB0512370A external-priority patent/GB0512370D0/en
Priority claimed from GB0516534A external-priority patent/GB0516534D0/en
Priority claimed from GB0521836A external-priority patent/GB0521836D0/en
Priority claimed from GB0522598A external-priority patent/GB0522598D0/en
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2008535049A publication Critical patent/JP2008535049A/ja
Application granted granted Critical
Publication of JP4732508B2 publication Critical patent/JP4732508B2/ja
Expired - Fee Related 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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

Abstract


【課題】信頼だけでなくソフトウェア機能においても連続性を提供するように、信頼されるソフトウェアを更新または変更する改良された方法を提供する。

【解決手段】本発明にかかるコンピュータプラットフォームの状態の証拠を提供する方法は、プラットフォームの状態の第1のデータ構造体を測定して提供することと、プラットフォームの状態の証拠として第1の測定された状態を使用することと、プラットフォームにおいて第1のデータ構造体を第2のデータ構造体と交換することと、プラットフォームの状態を、第2のデータ構造体によって交換された第1のデータ構造体で測定し、第2の測定された状態を提供することと、第2の測定された状態が第1の測定された状態と同様に信頼できることを検証することと、コンピュータプラットフォームの状態の証拠として、第1の測定された状態の代わりに第2の測定された状態を用いることとを含む。

【選択図】 図7

Description


本発明は、少なくとも1つのトラステッドエンティティ(trusted entity)がデータを保証する準備ができているという意味で、信頼されるデータに関する。

本発明は、詳細には、ソフトウェアを備えるデータ(データ構造体や実行可能命令等)に関連し、実施の形態では、コンピューティングデバイスにおけるソフトウェアの更新または交換に関連している。

コンピューティングエンティティ間の相互作用において考慮すべき重要な事項は、信頼である。

すなわち、異種コンピューティングエンティティが、信頼でき且つ予想可能な方法で振る舞うか否か、または、破壊を受けることがある(若しくはすでに受けている)か否かである。

破壊から少なくとも論理的に保護されているコンポーネントを含むトラステッドシステムは、トラステッドコンピューティンググループ(TCG)を形成する企業によって開発されてきた。

この団体は、この分野の仕様を開発しており、このような仕様は、たとえば、Siani Pearsonによって編集された「Trusted Computing Platforms − TCPA Technology in Context」(2003, Prentice Hall PTR)に解説されている。

トラステッドシステムの暗黙的なトラステッドコンポーネントは、トラステッドシステムの測定を可能にし、さらに、トラステッドシステムとの相互作用を望む適切なエンティティに、完全性メトリックの形でこれらの測定を提供することができる。

受信エンティティは、その後、測定された完全性メトリックが既知の値または予測された値と一致することから、トラステッドシステムが予想通りに動作していると判断することができる。

完全性メトリックは、通常、トラステッドシステムによって使用されるソフトウェアの測定値を含む。

これらの測定は、通常、トラステッドシステムの状態、すなわちトラステッド状態(trusted state)を示すのに組み合わせて使用することができる。

トラステッドコンピューティンググループの仕様では、特定のプラットフォーム状態に対してデータを「シール」するためのメカニズムが教示されている。

これは、シールされているデータを暗号化して、プラットフォーム上のソフトウェアの測定値から少なくとも部分的に導出される値を含む不可解な「オペークブロブ(opaque blob)」にするという結果を有する。

ダイジェスト値は、ソフトウェアに対するあらゆる修正において変化するので、測定値は、ソフトウェアのダイジェストを備える。

このシールされているデータは、トラステッドコンポーネントが現在のプラットフォーム状態を測定し、現在のプラットフォーム状態がオペークブロブにおける値と同じ値によって表されることが分かった場合にのみ回復することができる。

ソフトウェアのどの変更によっても、この特定のプロセスおよびより一般的にはソフトウェアの測定がコンピュータシステムの状態を表すものとみなされる場合の双方に関して、多数の問題が引き起こされることが十分理解されよう。

ソフトウェアに対する変更がどんなに小さくても、測定の有効な形(ダイジェスト等)は、異なる値を与える。

上記「シール」の例では、これは、ソフトウェアに対する変更−これは、たとえば、機能の改良、または、バグおよび弱点の除去に全く望ましい場合がある−が、シールされているデータへの継続したアクセスを妨げるという不利な点を有することを意味する。

これは、1つの例示的な問題にすぎない。

しかしながら、新たなソフトウェアまたは交換ソフトウェアにおいて元のソフトウェアが有していたのと同じ信頼性を有することは、一般に困難である。

この一般的な困難さは、その信頼性に基づいて機能を維持することの実際的な付随した困難さを有する。

米国特許出願公開第2003/037231号 米国特許出願公開第2003/056102号 米国特許出願公開第2003/196083号 TRUSTED COMPUTING GROUP他, 「TCG Specification Architecture Overview passage」 TCG SPECIFICATION ARCHITECTURE OVERVIEW, TRUSTED COMPUTING GROUP, US, no. revision 12, 2004年4月28日 page complete, XP002352046

信頼だけでなくソフトウェア機能においても連続性を提供するように、信頼されるソフトウェアを更新または変更する方法を見つけることが望ましい。

一態様では、本発明は、データ構造体タイプの識別情報を含むデータ構造体、および、そのデータ構造体タイプの2つまたは3つ以上のインスタンスが互いに同様に信頼できるものであるという証明を提供する。

次に、添付図面に関して、本発明の好ましい実施の形態を専ら例としてのみ説明する。

本発明の実施形態を説明する前に、本発明の実施形態を実行するのに一般に適しているタイプのトラステッドコンピューティングプラットフォームを図1〜図4に関して説明することにする。

トラステッドコンピューティングプラットフォームのこの説明は、その構成およびオペレーションの一定の基本要素を説明する。

この文脈における「ユーザ」は、リモートコンピューティングエンティティ等のリモートユーザとすることができる。

トラステッドコンピューティングプラットフォームは、2000年2月15日に出願された本出願人の「Trusted Computing Platform」という発明の名称の国際特許出願第PCT/GB00/00528号にさらに説明されている。

この国際特許出願の内容は、参照により本明細書に援用される。

本発明は、そのオペレーションについて、以下で説明するようなトラステッドコンピューティングプラットフォームの使用に正確に依拠しないことが当業者に十分理解されよう。

すなわち、本発明の実施形態は、このようなトラステッドコンピューティングプラットフォームに関して説明されるが、本発明の態様は、トラステッドコンピューティンググループのトラステッドコンピューティングプラットフォームの機能のすべての態様を使用する必要がない異なるタイプのコンピュータプラットフォームと共に使用できることが当業者には十分理解されよう。

本明細書で説明する種類のトラステッドコンピューティングプラットフォームは、トラステッドデバイスが組み込まれるコンピューティングプラットフォームである。

このトラステッドデバイスの機能は、プラットフォームのアイデンティティを、プラットフォームの1つまたは2つ以上の完全性メトリックを提供する確実に測定されたデータにバインドすることである。

アイデンティティおよび完全性メトリックは、プラットフォームの信頼性を保証する準備ができているトラステッドパーティ(TP)によって提供される予測値と比較される。

一致する場合、それが意味するものは、プラットフォームの少なくとも一部が、完全性メトリックの範囲に応じて正常に動作しているということである。

ユーザは、他のデータをプラットフォームと交換する前にプラットフォームの正常なオペレーションを検証する。

ユーザは、トラステッドデバイスに、そのアイデンティティおよび1つまたは2つ以上の完全性メトリックを提供するように要求することによってこれを行う(オプションとして、トラステッドデバイスは、自身でプラットフォームの正常なオペレーションを検証できなかった場合にアイデンティティの証拠の提供を拒否する)。

ユーザは、アイデンティティの証明および1つまたは複数のアイデンティティメトリックを受信し、それらを、ユーザが真正であると信じる値と比較する。

それらの適切な値は、TPまたはユーザによって信頼されている別のエンティティにより提供される。

トラステッドデバイスによって報告されるデータがTPによって提供されるデータと同じである場合、ユーザはプラットフォームを信頼する。

これは、ユーザがエンティティを信頼するからである。

エンティティは、前もって、アイデンティティを確認し、プラットフォームの適切な完全性メトリックを判断したので、プラットフォームを信頼する。

ユーザは、プラットフォームのトラステッドオペレーションを確立すると、他のデータをプラットフォームと交換する。

ローカルユーザの場合、この交換は、プラットフォーム上で実行される或るソフトウェアアプリケーションとの対話によるものとすることができる。

リモートユーザの場合、この交換は、安全なトランザクションを伴うことができる。

いずれの場合も、交換されたデータは、トラステッドデバイスによって「署名」される。

その後、ユーザは、データが、その振る舞いを信頼できるプラットフォームと交換されているというより大きな確信を有することができる。

交換されるデータは、コンピュータプラットフォーム上で実行されるソフトウェアの一部または全部に関する情報とすることができる。

既存のトラステッドコンピューティンググループのトラステッドコンピュータプラットフォームは、プラットフォーム上のソフトウェアのダイジェストを提供するように適合されている。

これらのダイジェストは、既知のソフトウェアの既知のダイジェストの公に利用可能なリストと比較することができる。

一方、これは、トラステッドコンピューティングプラットフォーム上で実行される特定のソフトウェアの識別情報を提供する。

これは、トラステッドコンピューティングプラットフォームの所有者にとってプライバシーの理由から望ましくない場合がある。

後述するように、本発明の態様は、トラステッドコンピューティングプラットフォームの所有者のこのプライバシーの立場の態様を改善するのに使用することができる。

トラステッドデバイスは、暗号プロセスを使用するが、必ずしも、それらの暗号プロセスへの外部インターフェースを提供しない。

トラステッドデバイスは、他のエンティティから論理的に保護されるべきである。

他のエンティティには、トラステッドデバイス自体がその一部であるプラットフォームの他の部分が含まれる。

また、最も望ましい一実施態様は、機密を他のプラットフォーム機能に対してアクセス不能にすることにより機密を保護し、認可されていない変更に対して実質的に影響を受けない(すなわち、物理的および論理的の双方で保護される)環境を提供するように、トラステッドデバイスをタンパープルーフにすることである。

タンパープルーフは不可能であるので、最も良い近似は、耐タンパ性を有するトラステッドデバイスまたはタンパリングを検出するトラステッドデバイスである。

したがって、トラステッドデバイスは、好ましくは、耐タンパ性を有する1つの物理コンポーネントから成る。

耐タンパ性に関連する技法は、セキュリティの当該技術分野の当業者に既知である。

これらの技法には、タンパリングに影響されない方法(トラステッドデバイスの適切なカプセル化等)、タンパリングを検出するための方法(指定電圧の範囲外の検出、X線の検出、またはトラステッドデバイスのケーシングにおける物理的な完全性の喪失の検出等)、およびタンパリングが検出される時にデータを削除するための方法が含まれる。

トラステッドプラットフォーム10を図1の図に示す。

コンピュータプラットフォーム10は、外見は、完全に従来通りである。

コンピュータプラットフォーム10は、キーボード14、マウス16、および視覚表示ユニット(VDU)18の標準的な特徴を関連付けている。

これらの標準的な特徴は、プラットフォームの物理的な「ユーザインターフェース」を提供する。

図2に示すように、トラステッドコンピューティングプラットフォーム10のマザーボード20は、(他の標準コンポーネントの中でも特に)メインプロセッサ21、メインメモリ22、トラステッドデバイス24、データバス26および各制御ライン27およびライン28、プラットフォーム10および入出力(IO)デバイス23のBIOSプログラムを含むBIOSメモリ29を含む。

入出力デバイス23は、マザーボードのコンポーネントと、キーボード14、マウス16、およびVDU18との間の相互作用を制御する。

メインメモリ22は、通常、ランダムアクセスメモリ(RAM)である。

動作時に、プラットフォーム10は、たとえばWindows(登録商標) XPといったオペレーティングシステムをハードディスク(図示せず)からRAMにロードする。

加えて、動作時に、プラットフォーム10は、プラットフォーム10が実行できるプロセスまたはアプリケーションをハードディスク(図示せず)からRAMにロードする。

通常、パーソナルコンピュータでは、業界全体の標準に従って、BIOSプログラムは、特別な予約メモリエリアである、システムメモリの最初の1メガバイトの上位64K(アドレスF000h〜FFFFh)に配置され、メインプロセッサは、このメモリロケーションを最初に見るように構成されている。

このプラットフォームと従来のプラットフォームとの間の大きな相違は、リセット後、メインプロセッサが、最初に、トラステッドデバイスによって制御され、次に、トラステッドデバイスが、制御をプラットフォーム特有のBIOSプログラムに引き渡し、次に、プラットフォーム特有のBIOSプログラムが、すべての入出力デバイスを通常通り初期化するということである。

BIOSプログラムが実行された後、制御は、通常通り、BIOSプログラムによってWindows(登録商標) XP等のオペレーティングシステムプログラムに引き渡される。

オペレーティングシステムプログラムは、通常、ハードディスクドライブ(図示せず)からメインメモリ212にロードされる。

メインプロセッサは、最初は、トラステッドデバイスによって制御される。

その理由は、トラステッドプラットフォームコンピューティングにおいて実行される最初の測定を信頼することが必要だからである。

この最初の測定の測定エージェントは、測定の信頼ルート(root of trust of measurement)(RTM)と呼ばれ、その出所が信頼されているので、通常、少なくとも部分的に信頼される。

実用的に有用な一実施態様では、RTMはプラットフォームである一方、メインプロセッサはトラステッドデバイスの制御下にある。

簡単に後述するように、RTMの1つの役割は、他の測定エージェントが使用されてそれらの測定値が信頼される前に、これらの他の測定エージェントを測定することである。

RTMは、信頼チェーンの基本である。

RTMおよび後続の測定エージェントは、後続の測定エージェントを検証する必要がなく、単に、それらの後続の測定エージェントが実行される前にそれらの後続の測定エージェントを測定して記録する必要があるだけである。

これは、「認証されたブートプロセス(authenticated boot process)」と呼ばれる。

測定エージェントのダイジェストを有効な測定エージェントのダイジェストのリストと比較することによって有効な測定エージェントを認識することができる。

リストに列挙されていない測定エージェントは認識されず、それらの測定エージェントによって行われた測定および後続の測定エージェントは疑わしい。

トラステッドデバイス24は、図3に示すように、複数のブロックを備える。

システムリセット後、トラステッドデバイス24は、認証されたブートプロセスを実行して、プラットフォーム10の動作状態が安全な方法で確実に記録されるようにする。

認証されたブートプロセスの期間中、トラステッドデバイス24は、コンピューティングプラットフォーム10の完全性メトリックを取得する。

また、トラステッドデバイス24は、自身とスマートカードとの間で暗号化/解読および署名/検証を介して、安全なデータ転送、および、たとえば認証も行うことができる。

また、トラステッドデバイス24は、ユーザインターフェースのロック等、さまざまなセキュリティ制御ポリシーを安全に実施することもできる。

特に好ましい構成では、コンピューティングプラットフォームの表示ドライバは、トラステッドデバイス24内に配置され、その結果として、ローカルユーザは、トラステッドデバイス24によってディスプレイに提供されるデータの表示を信頼することができる。

これは、2000年5月25日に出願された本出願人の「System for Providing a Trustworthy User Interface」という発明の名称の国際特許出願第PCT/GB00/02005号にさらに説明されている。

この国際特許出願の内容は、参照により本明細書に援用される。

具体的には、この実施形態のトラステッドデバイスは、コントローラ30、測定機能31、暗号機能32、認証機能33、およびインターフェース回路部34を備える。

コントローラ30は、トラステッドデバイス24の全体オペレーションを制御し、且つ、トラステッドデバイス24の他の機能およびマザーボード20の他のデバイスと相互作用するようにプログラミングされている。

測定機能31は、直接的な測定を介して、或いは、プラットフォームのメインプロセッサで実行される実行可能命令を介して間接的にプラットフォーム10から第1の完全性メトリックを取得する。

暗号機能32は、指定されたデータの署名、暗号化、または解読を行う。

認証機能33は、スマートカードを認証する。

インターフェース回路部34は、トラステッドデバイス24を、マザーボード20のデータバス26、制御ライン27、およびアドレスライン28にそれぞれ接続するための適切なポート(36、37、および38)を有する。

トラステッドデバイス24のブロックのそれぞれは、トラステッドデバイス24の適切な揮発性メモリエリア4および/または不揮発性メモリエリア3に(通常はコントローラ30を介して)アクセスすることができる。

加えて、トラステッドデバイス24は、既知の方法で、耐タンパ性を有するように設計されている。

性能の理由から、トラステッドデバイス24は、特定用途向け集積回路(ASIC)として実装される場合がある。

しかしながら、柔軟性のために、トラステッドデバイス24は、好ましくは、適切にプログラミングされているマイクロコントローラである。

ASICおよびマイクロコントローラの双方は、マイクロエレクトロニクスの当該技術分野で既知であり、本明細書では、これ以上詳細に検討しないことにする。

トラステッドデバイス24の不揮発性メモリ3に記憶されている1つのデータアイテムは証明書350である。

証明書350は、トラステッドデバイス24の少なくとも公開鍵351、および、トラステッドパーティ(TP)によって測定されるプラットフォーム完全性メトリックの認証値352を含む。

証明書350は、トラステッドデバイス24に記憶される前に、TPの私有鍵を使用してTPにより署名される。

後の通信セッションにおいて、プラットフォーム10のユーザは、証明書のTPの署名を検証することによって、公開鍵がトラステッドデバイスに属することを推論することができる。

また、プラットフォーム10のユーザは、取得された完全性メトリックを真正な完全性メトリック352と比較することによってプラットフォーム10の完全性を検証することもできる。

一致する場合、ユーザは、プラットフォーム10が破壊されていないことを確信することができる。

TPの一般に利用可能な公開鍵を知ることによって、証明書350の簡単な検証が可能になる。

不揮発性メモリ35は、識別(ID)ラベル353も含む。

IDラベル353は、或る状況において一意である、たとえばシリアル番号といった従来のIDラベルである。

IDラベル353は、一般に、トラステッドデバイス24に関連するデータのインデックスおよびラベルに使用されるが、それ自体では、信頼されている状況下でプラットフォーム10のアイデンティティを証明するには不十分である。

トラステッドデバイス24は、関連付けられているコンピューティングプラットフォーム10の完全性メトリックを確実に測定または取得する少なくとも1つの方法を備えている。

本実施形態では、第1の完全性メトリックは、BIOSメモリにおけるBIOS命令のダイジェストの生成を伴うプロセスで、測定機能31によって取得される。

取得されたこのような完全性メトリックは、上述したように検証される場合、プラットフォーム10がハードウェアレベルまたはBIOSプログラムレベルにおいて破壊されていないという高レベルの確信をプラットフォーム10の見込みユーザに与える。

たとえば、ウィルスチェッカといった他の既知のプロセスは、通常、オペレーティングシステムおよびアプリケーションプログラムコードが破壊されていないことを所定の位置でチェックすることである。

測定機能31は、トラステッドデバイス24のハッシュプログラム354および私有鍵355を記憶するための不揮発性メモリ3、並びに、取得された完全性メトリックを記憶するための揮発性メモリ4にアクセスすることができる。

トラステッドデバイスが有するメモリは限られているが、多数の完全性メトリック測定値に関する情報を記憶することが望ましい場合がある。

これは、トラステッドコンピューティンググループにより説明されているようなトラステッドコンピューティングプラットフォームでは、プラットフォーム構成レジスタ(Platform Configuration Register)(PCR)8a〜8nを使用することによって行われる。

トラステッドデバイスは、固定サイズ(ダイジェストと同じサイズ)の複数のPCRを有する。

プラットフォームの初期化の際に、これらのPCRは、一定の初期値に設定される。

完全性メトリックは、次に、図4に示すプロセスによってPCRに「拡張(extend)」される。

PCR8iの値は、入力401と連結される(403)。

この入力401は、PCRに拡張される完全性メトリックの値である。

この連結したものは、次に、ハッシュされて(402)、新しい160ビット値が形成される。

このハッシュは、PCRにフィードバックされて、PCRの新たな値が形成される。

完全性メトリックのPCRへの拡張に加えて、実行された測定の明瞭な履歴を提供するために、測定プロセスも、従来のログファイル(単に、コンピュータプラットフォームのメインメモリとすることができる)に記録することができる。

しかしながら、信頼のために、このログファイルは、依拠されるPCR値であり、ソフトウェアログではない。

明らかに、取得された信頼の範囲に応じて、初期の完全性メトリックを計算できる複数の異なる方法が存在する。

BIOSプログラムの完全性の測定は、プラットフォームの基礎を成す処理環境の完全性の基本的なチェックを提供する。

完全性メトリックは、ブートプロセスの有効性についての理由付けを可能にするような形を有するべきである。

完全性メトリックの値は、プラットフォームが、正しいBIOSを使用してブートしたか否かを検証するのに使用することができる。

オプションとして、BIOS内の個々の機能ブロックは、それらの機能ブロック自体のダイジェスト値を有することができ、調和のとれたBIOSダイジェスト(ensemble BIOS digest)は、これらの個々のダイジェストのダイジェストである。

これによって、ポリシーは、BIOSオペレーションのどの部分が、意図されている目的にとって重要であるか、および、どれが無関係であるかを提示することが可能になる(この場合、このポリシーの下でのオペレーションの有効性を確立できるような方法で個々のダイジェストを記憶しなければならない)。

他の完全性チェックは、プラットフォームに取り付けられているさまざまな他のデバイス、コンポーネント、または装置が存在し、正しい動作順序にあることを確立することを伴うことができる。

一例では、SCSIコントローラに関連するBIOSプログラムを検証して、周辺機器との通信を確実に信頼できるようにすることができる。

別の例では、一定の誰何/応答(challenge/response)相互作用を規定して一貫している結果を確実にすることにより、プラットフォーム上のたとえばメモリデバイスまたはコプロセッサといった他のデバイスの完全性を検証することができる。

上述のように、RTMによって直接または間接に測定される測定エージェントによって、多数の完全性メトリックを収集することができ、これらの完全性メトリックをトラステッドデバイス24のPCRに拡張することができる。

これらの完全性メトリックのいくつか−多く−は、トラステッドプラットフォームのソフトウェア状態に関係する。

好ましくは、BIOSブートプロセスは、ブートプロセス自体の完全性を検証するメカニズムを含む。

このようなメカニズムは、たとえば、Intelの草案「Wired for Management baseline specification v 2.0 - BOOT Integrity Service」からすでに知られており、ソフトウェアまたはファームウェアをロードする前に、そのソフトウェアまたはファームウェアのダイジェストを計算することを伴う。

このような計算されたダイジェストは、トラステッドエンティティによって提供される証明書に記憶されている値と比較される。

この証明書の公開鍵はBIOSに知られている。

次に、ソフトウェア/ファームウェアは、計算された値が証明書から予測された値と一致し、証明書が、トラステッドエンティティの公開鍵を使用することによって有効であると証明される場合にのみロードされる。

そうでない場合、適切な例外ハンドリングルーチンが起動される。

オプションとして、計算されたBIOSダイジェストを受信した後、トラステッドデバイス24は、証明書のBIOSダイジェストの適切な値を検査することができ、計算されたダイジェストがこの適切な値と一致しない場合、BIOSに制御を渡すことができず、適切な例外ハンドリングルーチンを起動することができる。

サードパーティによるトラステッドコンピューティングプラットフォームの製造プロセスおよび検証プロセスを簡単に説明するが、本発明には基本的に重要ではなく、上記に特定した「Trusted Computing Platforms - TCPA Technology in Context」により詳細に解説されている。

第1の例(製造時とすることができる)において、トラステッドプラットフォームを保証するTPは、プラットフォームのタイプを検査して、そのタイプを保証するか否かを決定する。

TPは、トラステッドデバイスのアイデンティティおよび検査結果に関係した証明書に署名する。

これは、その後、トラステッドデバイスに書き込まれる。

プラットフォームの動作中の或る後の時点において、たとえば、プラットフォームが電源投入またはリセットされた時に、トラステッドデバイス24は、プラットフォームの完全性メトリックを取得して記憶する。

ユーザがプラットフォームとの通信を望む場合、ユーザは、誰何/応答ルーチンを使用して、トラステッドデバイス24に誰何する(プラットフォームのオペレーティングシステムまたは適切なソフトウェアアプリケーションは、通常はBIOSタイプのコールを介して適切な方法で、誰何を認識し、誰何をトラステッドデバイス24に渡すように構成されている)。

トラステッドデバイス24は、誰何を受信して、1つまたは複数の測定された完全性メトリックに基づき適切な応答を作成する。

これには、証明書が備えられ、署名される。

これは、ユーザによる検証を可能にする十分な情報を提供する。

PCRによって保持された値は、トラステッドプラットフォームの状態を表示するものとして使用することができる。

異なるPCRには、特定の目的を割り当てることができる(これは、たとえば、トラステッドコンピューティンググループの仕様で行われる)。

トラステッドデバイスには、自身のPCRの一部または全部の値(実際には、これらの値のダイジェスト−TPM_Quoteコマンドにより)を提供して、これらの値に署名するように要求することができる。

上述したように、データ(通常は鍵またはパスワード)を、一部または全部のPCRの値のダイジェストに対して(TPM_Sealコマンドにより)オペークブロブ内にシールすることができる。

これは、プラットフォームがPCRによって表される(トラステッド)状態にある場合にのみシールされているデータを使用できることを確実にするためである。

対応するTPM_Unsealコマンドは、PCRの現在の値に対して同じダイジェストを実行する。

新しいダイジェストがオペークブロブのダイジェストと同じでない場合、ユーザは、TPM_Unsealコマンドによってデータを回復することができない。

PCR値が導出される測定のいずれかが、変更されたプラットフォーム上のソフトウェアに関係している場合、対応するPCRは、異なる値を有する。

したがって、従来のトラステッドプラットフォームは、シールされているデータを回復することができない。

次に、上述したトラステッドコンピューティングプラットフォーム構造を使用した−場合により変更した−実施形態に関して本発明の態様を説明する。

トラステッドコンピューティングプラットフォームが、自身が使用する特定のソフトウェアを明らかにすることなく、自身のソフトウェア機能を示す−そして、自身のトラステッドステータスを検証する−ことを可能にするためのメカニズムと共に、同等の機能および信頼特性の新たなソフトウェアまたは更新されたソフトウェアを提供する一手法を最初に説明する。

機能的に同等の信頼性を有するソフトウェア(functionally and trust equivalent software)とのソフトウェアの交換の前後のPCR値が同等であることをどのように示すことができるかを実証する1つの例示的な手法が説明される。

この手法を使用して、ソフトウェア状態に対してデータをシールする際の上述したような問題が解決される。

既存のトラステッドコンピューティングプラットフォーム構成では、エンティティは、実際には、トラステッドコンピューティングプラットフォームにおけるその信頼を、プラットフォームのインストールされているソフトウェアについての署名されたステートメントに基づいていることに留意されたい。

本発明者らは、トラステッドプラットフォームが、実際のソフトウェア測定を提供するのではなく、ソフトウェアが信頼されるというステートメントの検証の証拠を提供できることを十分認識している。

これは、いくつかの利点を有する。

トラステッドデバイスが、ソフトウェア測定の値をもはや保持していない場合、トラステッドデバイスがソフトウェア測定の値を報告することは物理的に不可能である。

検証プロセスが、ソフトウェア測定の2つの値の同等の信頼性を有する(trust equivalence)証拠を含むことができる場合(且つ、ステートメントが、トラステッド測定エンティティによって作成された場合)、トラステッドデバイスは、ソフトウェアが所定の方法で変更された後に、シールされている平文データへのアクセスを再び可能にするのに(後述するように、1つの例示的な構成で)使用できる情報を含む。

肯定的な結果が、プラットフォームの実際のソフトウェアを用いる代わりに、プラットフォームのソフトウェアを保証するステートメントからの機能(working from statements)により得られる。

既存のソフトウェアを保証したパーティが、交換ソフトウェアが既存のソフトウェアと同様に許容可能であることを保証する準備ができている場合、この目的のために適切なステートメントの使用を、このような交換ソフトウェアがインストールされた後にシールされている平文データへのアクセスを再び可能にすることができるように使用することができる。

実際には、トラステッドプラットフォームの所有者は、自身のプラットフォームを保証してほしいパーティを選ばなければならない。

この所有者は、1つまたは一組のパーティが、プラットフォームと相互作用する者との信用性を有する場合に、そのどのパーティも一組のパーティも選ぶことができる。

所有者は、複数のパーティまたは数組のパーティが、トラステッドピア(trusted peer)として互いに承認し合う意志がある場合、それらのパーティを変更することができる。

これによって、営利会社および非営利組織の双方が、同じトラステッドプラットフォームを保証することが可能になる。

図5は、本発明の実施形態による、測定を行い、それらの測定をTPM507に記録するプロセスの重要なステップを示している。

ステップ5.1において、測定の信頼ルート(RTM)または測定エージェント501は、デジタルオブジェクト502のダイジェストを作成する。

ステップ5.2において、RTMまたは測定エージェント501は、デジタルオブジェクト502に関連する検証ステートメント503を読み出す。

ステップ5.3において、RTMまたは測定エージェント501は、デジタルオブジェクト502を記述するログ504およびその検証ステートメント503を書き込む。

ステップ5.4において、RTMまたは測定エージェント501は、検証ステートメント503を検証し、PCR506に関連するフラグ505に障害がある場合にその障害を記録する。

ステップ5.5において、RTMまたは測定エージェント501は、検証プロセス503を明確に表示するものをPCR506に記録する。

図6は、二組の完全性メトリック601、602(第2のものは、第1のものによって表されたソフトウェア状態と同等の信頼性を有するソフトウェア状態を表す)に加えて、第2の組602の、本発明のこの実施形態で使用されるバージョンである第3の組603を示している。

第1の組の完全性メトリック601は、A、B、およびCのラベルが付されている3つの完全性メトリックから成る。

第2の組の完全性メトリック602も、A、B1、Cのラベルが付されている3つの完全性メトリックから成る。

第1の組601のメトリックAおよびCは、第2の組602のメトリックAおよびCと同じである。

完全性メトリックB1によって表されるソフトウェアが完全性メトリックBによって表されるソフトウェアと同等の信頼性を有する場合に、第2の組602は、第1の組601と同等の信頼性を有する。

第3の組の完全性メトリック603は、本発明のこの実施形態によれば、ソフトウェアA、B1、Cによって生成されたプラットフォーム状態を、ソフトウェアA、B、Cによって生成されたプラットフォーム状態と同等の信頼性を有するものとして認識することを可能にするために記録しなければならない完全性メトリックA、B、B1、Cを示している。

パーティは、特定のプログラムを保証したい場合に、署名されたステートメントを作成する。

パーティは、プログラムがアップグレード品でもなく交換品でもない場合には、新しいステートメントを作成し、プログラムがアップグレード品または交換品である場合には、ステートメントのリストに次のエントリーを作成する。

ステートメントは、1つまたは2つ以上のプログラムを記述することができる。

ステートメントが2つ以上のプログラムを記述する場合、その意味するものは、そのすべてのプログラムが、署名パーティにより、意図されているタスクにとって等しい機能を有し、等しく信頼できるものとみなされるということである。

ステートメントの1つの例示的な形を図7に示す。

ステートメント701は、構造体[programDigestsN, statementID_N, prevStatementDigestN, nextPubKeyN]を有し、補助構造体732[pubKeyN](734)および[signatureValueN](736)を有する。

フィールドpubKeyおよびステートメントIDは、ステートメントに含蓄されている検証プロセスを明確に識別するのに十分である。

次に、ステートメント701の要素を説明する。

programDigests710は、ステートメントによって保証されるプログラムのダイジェストである。

これは、単一のプログラムのダイジェストである必要はなく、ステートメントによって保証される2つ以上のプログラムのダイジェストを含む構造体から成ることができる。

これは、ステートメントによって保証される2つ以上のプログラムのダイジェストを含む構造体のダイジェストとすることもできる。

明らかに、このような一実施態様では、実際のダイジェストはプラットフォームにも利用可能でなければならない。

後述するように、programDigestsで参照される複数のプログラムのユーザには、プライバシーアドバンテージ(privacy advantage)が存在し得る。

statementID720は、ステートメントの目的を記述したものの識別を可能にするタグである。

その記述したものは、プログラム(複数可)を記述したもの、プログラム(複数可)の意図されている使用、プログラム(複数可)の効果、プログラム(複数可)についての別の情報、および乱数または他の数を含むことができる。

statementIDは、そのステートメントを、同じ鍵で署名された他のあらゆるデータと区別する働きをする。

或るプログラムが別のプログラムのアップグレード品でもなく、交換品でもない場合、prevStatementDigest730はNULLであり、pubKeyは、signatureValueを検証するのに使用すべき鍵である。

一方、或るプログラムが既存のプログラムのアップグレード品または交換品である場合、prevStatementDigestは、その前のステートメントのダイジェストであり、その前のステートメントからのnextPubKey740は、signatureValueを検証するのに使用すべき鍵である。

換言すれば、或るステートメントのnextPubKeyは、次のステートメントで使用しなければならないpubKeyである。

nextPubKeyおよびprevStatementによって、それらの間で、関係したステートメントが、後方および前方の双方でリンクされているリストを形成することが可能になることが分かる。

このようなリンケージを図8に示す。

このようなステートメント801、802、803のリストは、pubKey0 734.0、nextPubKey0 740.0、nextPubKey1 740.1、…nextPubKeyN 740.Nに対応する私有鍵を使用して署名値により前方にリンクされる。

このリストは、prevStatementDigest1 730.1、…prevStatementDigestN 730.Nにより後方にリンクされる。

リストの各メンバーは、programDigests 710.0、710.1、710.Nを含むデータ上の署名値736.0、736.1、736.Nにより1つまたは複数のプログラムにリンクされる。

図8に示す一手法では、ステートメントのリストは、pubKey0 734.0から開始し、その後に、[statementID_0 720.0,programDigests0 710.0,NULL 730.0,nextPubKey0 740.0]および[signatureValue0 736.0]が続く。

[signatureValue1 736.0]は、[statementID_0 720.0,programDigests0 710.0,NULL 730.1,nextPubKey0 740.0]に、pubKey0 734.0に対応する私有鍵で署名した結果である。

リストは、[statementID_1 720.1,programDigests1 710.1,prevStatementDigest1 730.1,nestPubKey1 740.1]および[signatureValue1 736.1]を続ける。

[signatureValue1 736.1]は、[statementID_1 720.1,programDigests1 710.1,prevStatementDigest1 730.1,nextPubKey1 740.1]に、nextPubKey0 740.0に対応する私有鍵で署名した結果である。

リストは同様にして続く。

図8の矢印は、nextPubKey0 740.0がpubKey1 734.1と同じであり、nextPubKey1 740.1がpubKeyN 734.Nと同じであり、以下同様に同じであることを示している。

リストのステートメントは、共通して機能の同等性を有し、共通してそのステートメントを発行するパーティによる信頼の証拠を有するが、他の態様では、ステートメントが異なる可能性があることを十分理解すべきである。

たとえば、statementNに関連するプログラムは、必ずしも、statementMに関連するプログラムではない。

したがって、programDigestsNは、必ずしも、programDigestsMと同じではない。

これは、リストのの先頭のステートメントに関連するプログラム(複数可)がリストの任意の中間点またはリストの末尾のステートメントに関連するプログラム(複数可)と異なる(または同じ)場合があることを意味する。

同様に、リストのpubKeyNは、nextPubKeyNと同じ場合もあるし同じでない場合もある。

したがって、signatureValue0を検証するのに使用される鍵は、Nがリストの中間ステートメントであろうと、リストの最後のステートメントであろうと、signatureValueNを検証するのに使用されるのと同じ鍵の場合もあるし、同じ鍵でない場合もある。

したがって、パーティは、(推奨されているセキュリティの実施に従って)ときどき自身の署名鍵を変更することもできるし、異なる署名鍵を有する別のパーティに信頼を引き渡すこともできる。

この手法を修正したものでは、PubKeyおよびnextPubKeyは、鍵のダイジェスト、または、1つ若しくは2つ以上の鍵を含む構造体のダイジェストとすることができる。

明らかに、このような実施態様では、実際の公開鍵はプラットフォームにも利用可能でなければならない。

このような場合、その構造体の任意の公開鍵ダイジェストに対応する任意の私有鍵を使用して、ステートメントに署名することができ、複数のパーティは、プラットフォームの信頼性を同時に保障することができる。

所与のソフトウェアタイプについて、このタイプのステートメントを一貫して使用するか、または、それらのステートメントをまったく使用しない(その代わり、たとえば、従来のTCG手法を使用する)ことが必要である。

ステートメントが或るソフトウェアタイプに使用される場合、プラットフォームによって保証されるそのソフトウェアタイプの第1のインスタンスは、ステートメントを有する必要がある。

従来のTCG手法からステートメントを有するアップグレード品への切り換えは、説明したように、利用可能な手法ではない。

次に、トラステッドプラットフォームが自身のソフトウェアを識別するように依頼される場合にプライバシーの対策を達成することを可能にするメカニズムを説明する。

これは、ステートメントを発行するパーティが、上述したステートメントに加えて、programDigestsフィールドを除外する類似の補助ステートメントの2つのステートメントを実際に発行することを必要とする。

図9は、補助ステートメント910がpubKeyフィールド734、StatementIDフィールド720、prevStatementDigestフィールド730、nextPubKeyフィールド740、signatureValueフィールド736から成り、programDigestsフィールド710を欠いていることを示している。

これらの補助ステートメントは、前述した主ステートメントの代わりに、トラステッドデバイスから署名された完全性メトリックを受信する誰何者に戻すことができる。

これらの補助ステートメントは、プラットフォームにインストールされた実際のプログラムの識別を妨げる可能性がある。

主ステートメントのprogramDigestsフィールドが1つのプログラムしか記述していない場合、このprogramDigestsフィールドは、プラットフォームによって使用されているプログラムを確実に識別する。

したがって、補助ステートメントが誰何応答で使用されるべきである場合、明らかなプライバシーアドバンテージが存在する。

programDigestsフィールドが数個のプログラムを記述する場合であっても、programDigestsフィールドは、プラットフォームについてあまりにも多数の情報を明らかにするものとみなされる場合があり、プライバシーが必要とされる場合には、補助ステートメントが誰何応答に使用されるべきである。

programDigestsフィールドが多数のプログラムを記述する場合のみが、プライバシーとは明らかに無関係な誰何応答における主ステートメントの使用である。

また、主ステートメントを検証するのに使用される公開鍵は、補助ステートメントを検証するのに使用される公開鍵でなければならず、同じstatementIDが双方のステートメントに現れるべきである。

これらの制約条件は、主ステートメントと補助ステートメントとの間の検証可能な関係を提供するのに必要である。

もちろん、主ステートメントの署名値は、補助ステートメントの署名値とは異なる。

次に、検証プロセスの記録となるように、ステートメントに関連する新たなソフトウェアまたは交換ソフトウェアの検証を説明する。

このプロセスの本質は、(プラットフォームの一態様の)単一の拡張オペレーションを1つまたは2つ以上の拡張オペレーションと交換することである。

これらの1つまたは2つ以上の拡張オペレーションのそれぞれは、プラットフォームのその態様についてのステートメントを記述する。

検証を実行して記録するために、以下のものが必要とされる。

すなわち、トラステッド測定エージェントがステートメント検証プロセスを実行すること、並びに、トラステッド測定エンティティがプログラムの検証、ステートメントの検証、およびステートメントのリストが十分にリンクされていることの検証を行わなければならないことが必要とされる。

測定エンティティが、そのエンティティについての構成証明またはトラステッド測定エージェントによるそのエンティティの測定のいずれかによって信頼される。

プログラムを検証するために、測定エンティティは、プログラムのダイジェストを作成し、そのダイジェストをステートメントの(programDigestsフィールドからの)情報と比較する。

測定エンティティは、このプロセスが成功したか否かの表示を記録しなければならない。

一実施態様は、TRUEまたはFALSEのいずれかであるverifiedProgramフラグをトラステッドデバイスに記録することである。

プログラムが、リンクリストに関連付けられている場合、この比較は、そのリストの最後のステートメントを使用してのみ行われるべきである(リストの前のステートメントは、プログラムの進化およびプログラムの構成証明の履歴を単に提供するだけである)。

ステートメントの検証可能な記録を作成するために、測定エンティティは、少なくとも、ステートメントの署名の検証に成功したか否かの記録をトラステッドデバイスに作成しなければならない。

一実施態様は、TRUEまたはFALSEのいずれかに設定されるverifiedStatementフラグをトラステッドデバイスに記録することである。

ステートメントの検証の監査可能な記録を作成するために、測定エージェントは、検証を実行するのに使用される技法の記録を作成しなければならない。

一実施態様は、ステートメント上の署名を検証するのに使用される公開鍵(pubKeyまたはnextPubKey)をトラステッドデバイスに記録することである。

実施可能である場合、測定エージェントは、ステートメント上の署名を検証するのに使用される公開鍵が現存している(無効にされていない)ことも検証するが、これは、おそらく、ほとんどの測定エージェントの能力を越えている。

これを判断することが可能である場合において、公開鍵が現存していないとき、測定エンティティは、常にverifiedStatementフラグをFALSEに設定する。

公開鍵に対応する私有鍵が、単一のタイプのステートメントに署名することのみに使用される場合、その署名の意図についてのステートメントは必要とされない。

そうでない場合、その署名が特定のステートメントに属することを示す情報を公開鍵と共に記録しなければならない。

一実施態様は、statementIDをトラステッドデバイスに記録することである。

単一のステートメントまたはリストの先頭を区別するために、一実施態様は、ステートメントが別のステートメントのnextPubKeyを使用して検証されなかった場合またはステートメントのprevStatementDigestが前のステートメントのダイジェスト値でない場合に、フラグstartstatement==TRUEでステートメントの検証をタグ付けし、それ以外の場合に、フラグstartStatement==FALSEでステートメントの検証をタグ付けすることである。

リンクリストのどのメンバーも前方および後方の双方で検証しなければならない。

リンク試験に合格した場合、ステートメントは、フラグverifiedList==TRUEでタグ付けされる。

そうでない場合、ステートメントは、フラグverifiedList==FALSEでタグ付けされる。

検証されたステートメントのリストの完全な記録を作成するために、測定エンティティは、リストのすべてのステートメントの少なくとも基本的な特性、および、リストのすべてのステートメントがそれらの検証試験に合格したか否かをトラステッドデバイスに記録しなければならない。

好ましい実施態様は、リストのすべてのステートメントの記録をトラステッドデバイスに作成する一方、リストのあらゆるステートメントの検証試験の結果をトラステッドデバイスに別個に記録することである。

この手法に従って、ステートメントを評価した後、測定エンティティは、少なくともデータ構造体STATEMENT_VERIFICATIONをトラステッドデバイスに記録することができる。

このデータ構造体STATEMENT_VERIFICATIONは、少なくとも(1)ステートメントを検証するのに使用された公開鍵と、(2)statementIDが存在する場合に、そのstatementIDとを含む。

各PCRについて、トラステッドデバイスは、upgradesPermittedフラグを保持する。

このupgradesPermittedフラグは、PCR初期化の際にTRUEに設定されるが、プラットフォームが、verifiedProgram==FALSEまたはverifiedStatement==FALSEまたはvefifiedList==FALSEを有するそのPCRに関連するステートメントに遭遇するごとにFALSEに再設定される。

upgradesPermittedがFALSEである場合、関連するPCRの情報コンテンツは信頼できない。

upgradesPermittedがFALSEである場合、トラステッドデバイス(TPM)は、そのPCRに対するデータのシール(たとえば、TCGの「digestAtCreation」パラメータの作成)、データのアンシール(たとえば、TCGの「digestAtRelease」パラメータのチェック)等、そのPCR値の正しさを前提としたセキュリティオペレーションの実行を拒否しなければならない。

upgradesPermittedがFALSEである場合、TPMは、(たとえば、TPM_quoteを使用して)そのPCR値の報告を拒否することもできるし、または代替的に、PCR値と共にupgradesPermittedの値を報告することもできる。

ステートメントの記録またはステートメントのリストの記録で従来のTCG完全性メトリックを代用するためのアルゴリズムを説明する。

測定エンティティ(プログラムのロード前)は、最初に、プログラムのダイジェストを作成することによって通常のTCG手順に従う。

次に、測定エンティティは、1つまたは2つ以上のステートメントがプログラムに関連付けられているか否かを判断する。

ステートメントがプログラムに関連付けられていない場合、測定エンティティは、TPM_Extendを使用してプログラムのダイジェストをトラステッドデバイスに拡張することにより、既存のTCG手順に従う。

ステートメントがプログラムに関連付けられている場合、測定エンティティは、ステートメントを構文解析して単一のステートメントおよびステートメントのチェーンにしなければならない。

単一のステートメントが識別されると、適切なフラグおよびSTATEMENT_VERIFICATIONをトラステッドデバイスに記録しなければならない(しかし、適切なverifiedListは記録されず、計算する必要さえないことに留意されたい)。

チェーンの先頭または中間リンクが識別されると、適切なSTATEMENT_VERIFICATIONおよびフラグがトラステッドデバイスに記録される(しかし、適切なverifiedProgramフラグは記録されず、計算する必要さえないことに留意されたい)。

チェーンの末尾が識別されると、適切なSTATEMENT_VERIFICATION構造体およびフラグがトラステッドデバイスに記録される。

ステートメントを構文解析している間に使用されるいくつかのアルゴリズムは、

(a)常にverifiedStatementを計算するもの、

(b)前のステートメントおよび/または次のステートメントが存在する場合にverifiedListを計算するもの、

(c)(次のステートメントが存在しない)場合または(次のステートメントがstartStatement==TRUEを有する)場合にverifiedProgramを計算するもの、

(d)常にSTATEMENT_VERIFICATIONを記録するもの、および

(e)verifiedProgram==FALSEまたはverifiedStatement==FALSEまたはverifiedList==FALSEであるときは常に、適切なupgradesPermittedフラグをリセットするもの

である。

上述した検証プロセスは、アップグレードされたソフトウェアまたは交換ソフトウェアが旧ソフトウェアと同等の信頼性を有することを確立するのに必要とされる情報を取り込む。

誰何の際にソフトウェア状態を報告することに関連するプライバシーの懸案事項は、したがって、多数のプログラムを記述するステートメントの使用または補助ステートメントの使用によって改善することができる。

旧ソフトウェアを有する旧プラットフォームにシールされているオペークブロブのデータにアクセスする問題を解決するために、さらに別のステップが必要とされる。

後述するように、新しいソフトウェア状態に関連するPCR値にこれらのオペークブロブを再シールすることが可能である。

これには、後のPCR値が、オペークブロブのシールの対象である前のPCR値から合法的に導出されることの有効な証明になる多数の動作が必要とされる。

4つのタイプの動作が必要とされる。

すなわち、或るPCR値が別のPCR値から導出できることを証明すること、或る完全性メトリックが別の完全性メトリックを交換したものであることを証明すること(2つの完全性メトリックがリンクされていることを証明すること)、測定されたダイジェストから成るPCR値の同等性を証明すること、および、複数のPCR値から成る合成PCR値の同等性を証明することが必要とされる。

各動作は前の動作に依拠し、各動作については、以下で1つの例示的な実施形態において説明して、既存のトラステッドコンピューティンググループシステムを補完する新しい機能を提案する。

これらの機能の使用は、シールされているオペークブロブの第1の合成PCR値を、第1の合成PCR値と同等の信頼性を有する第2の合成PCR値と交換する1つの例示的な実施形態で説明することにする。

トラステッドコンピューティンググループの専門用語において、PCR値の設定は、TPM_COMPOSITE_HASH値として説明されることに留意すべきである。

トラステッドコンピューティンググループは、TPM_COMPOSITE_HASH値をTPM_PCR_COMPOSITE構造体のダイジェストとして定義する。

TPM_PCR_COMPOSITE構造体は、

typedef struct tdTPM_PCR_COMPOSITE {

TPM_PCR_SELECTION select;

UINT32 valueSize;

[size_is(valueSize)] TPM_PCRVALUE pcrValue[];

} TPM_PCR_COMPOSITE;

として定義される。

これは、TPM_PCR_COMPOSITE構造体が、(本質的に)TPM_PCR_SELECTION構造体、その後の4バイト値、およびその後の連結される複数のPCR値であることを意味する。

TPM_COMPOSITE_HASH値は、ハッシュアルゴリズムにおいてそれらの構造体をシリアルにハッシュした結果である。

この明細書では、後に完全性メトリックおよびPCR値を説明する時に、特定の用語体系が使用される。

大文字は、完全性メトリック値を表し、波型文字「〜」が続く大文字は、PCR値を表す。

この場合、その大文字は、PCRに拡張される完全性メトリックの最も近時の値を表すものである。

したがって、PCR状態A〜は、PCRに拡張された最も近時の完全性メトリックが値Aを有していたことを意味する。

完全性メトリック値BでA〜のPCR値を拡張するオペレーションは、X(A〜,B)と記述され、このオペレーションの結果、PCR値はB〜となる。

[文字]〜によって表されるPCR値は多値であることを十分理解しなければならない。

実際のPCR値は、PCRの前の履歴に依存する。

この例示的な実施態様全体を通じて使用される手法は、管理プログラムが、一連のステップを通じてトラステッドデバイス(TPM)をガイドするものである。

各ステップは、トラステッドデバイスが検証したアサーションの証拠であるデータを作成する(署名されたステートメントのトラステッドデバイスによるチェックを伴う、同じ目的を達成するための代替的な方法が存在するが、説明する手法は、既存のトラステッドコンピューティンググループの方法論と一貫性を保つために選択されている)。

トラステッドデバイスは、自身がこのような証拠を作成したことを後に認識することができる。

これらの認識方法は、当業者に既知であり、既存のトラステッドコンピューティンググループの技術で使用される。

認識することによって、TPMは、データがTPMに再ロードされた時に、データに提示されたアサーションを信じることが可能になる。

一実施態様では、トラステッドデバイスは、二組のPCR値が同等の信頼性を有することを証明する新たな能力を必要とする。

以下の一組のプロトタイプのトラステッドデバイスコマンドは、その概念を示している。

TPM_upgrade_extend(A~, B)は、或るPCR値を別のPCR値から導出できることの証拠を作成する。

このコマンドは、PCR値B〜をPCR値A〜から導出でき、且つ、最も近時に拡張された完全性メトリックが値Bを有していたことの証拠として、出力データ[Uextend, A~, B~, B] を作成する。

この証拠を作成するために、TPMは、一時的なPCRに値A〜をロードし、完全性メトリックBを使用して値A〜を拡張し、PCR値B〜を作成する。

トラステッドデバイスは、文字列「Uextend」で出力データをタグ付けして、証拠のタイプを示す。

トラステッドデバイスがデータを出力した後、一時的なPCRを廃棄することができる。

TPM_upgrade_concat([Uextend, A~, B~, B], [Uextend, B~, C~, C])は、或るPCR値を別のPCR値から導出できることの証拠を作成する。

これは、PCR値C〜をPCR値A〜から作成でき、且つ、最も近時に拡張された完全性メトリックが値Cを有していたことの証拠として、出力データ[Uextend, A~, C~, C]を作成する。

この証拠を生成するために、TPMには、データ構造体[Uextend, A~, B~, B]および[Uextend, B~, C~, C]がロードされ、TPMは、(1)それが、双方の構造体を作成したこと、(2)[Uextend, A~, B~, B]および[Uextend, B~, C~, C]の双方が文字列Uextendを含むこと、および(3)[Uextend, A~, B~, B]のBの値が[Uextend, B~, C~, C]のBと同じ値であることを検証する。

トラステッドデバイスは、出力データを文字列「Uextend」でタグ付けして、証拠のタイプを示す。

TPM_upgrade_link(SA, SB)は、或る完全性メトリックが別の完全性メトリックと同等の信頼性を有することの証拠を作成する。

これは、完全性メトリック値Bが完全性メトリック値Aと同等の信頼性を有することの証拠として、出力データ[Ulinked, A, B]を作成する。

この証拠を作成するために、TPMには、ステートメントSAおよびSBがロードされる。

ここで、SAは、完全性メトリックA(pubKey-AおよびstatementID-A)を記述し、SBは、完全性メトリックB(pubKey-BおよびstatementID-B)を記述する。

TPMは、SAがSBに前方リンクされて、SBがSAに後方リンクされていることを検証し、出力データ[Ulinked, A, B]を作成する。

文字列「Ulinked」は、証拠のタイプを示す。

TPM_upgrade_forkRoot(Uextend, A~, B~, B)は、完全性メトリックの単一のシーケンスから同等の信頼性を有する2つのシーケンスへの分岐の証拠を作成し、出力データ[Ufork, A~, B~, B, B~, B]を作成する。

文字列「Ufork」は、証拠のタイプを示す。

Uforkデータ構造体の正準表現は、2つのPCR状態[B~,B]、[C~,C]が同等の信頼性を有し、且つ、同じPCR状態A〜から導出されたことを示す[Ufork, A~, B~, B, C~, C]である。

TPM_upgrade_forkRootは、分岐(divergence)の時点で状態の証拠を作成し、2つの同一のPCR状態[B~,B]および[B~,B]が同等の信頼性を有することを意味するデータ構造体[Ufork, A~, B~, B, B~, B]を作成する。

なお、2つの同一のPCR状態[B~,B]および[B~,B]が同等の信頼性を有することは明らかである。

この証拠を作成するために、TPMには、データ構造体[Uextend, A~, B~, B]がロードされる。

TPMは、(1)それがその構造体を作成したこと、および、(2)それが文字列Uextendを含むことを検証する。

TPM_upgrade_forkLink([Ufork, A~, B~, B, C~,C], [Ulinked, E, F], [branch])は、一組の2つの同等の信頼性を有するPCR値[B~,B]および[C~,C]の或る[branch]PCR値をTPMに変更させるが、完全性メトリックFが完全性メトリックEと同等の信頼性を有することの証拠を必要とする。

[branch]パラメータが0であり、且つ、B==Eである場合、このコマンドは、第1のPCR値[B~,B]をFで[F~,F]に拡張するが、第2のPCR値[C~,C]は変更されない。

したがって、このコマンドは、データ[Ufork, A~, F~, F, C~, C]を作成する。

[branch]パラメータが1であり、且つ、C==Eである場合、このコマンドは、第2のPCR値[C~,C]をFで[F~,F]に拡張するが、第1のPCR値[B~,B]は変更されない。

したがって、このコマンドは、データ[Ufork, A~, B~, B, F~, F]を作成する。

TPMには、データ構造体[Ufork, A~, B~, B, C~, C]、[Ulinked, E, F]、[branch]がロードされる。

TPMは、

(1)それが第1の構造体および第2の構造体の双方を作成したこと、

(2)第1の構造体が文字列Uforkを含むこと、および

(3)第2の構造体が文字列Ulinkedを含むこと

を常に検証する。

前述したように、出力データの文字列「Ufork」は、証拠のタイプである。

TPM_upgrade_forkExtend([Ufork, A~, B~, B, C~, C], [D])は、2つの同等の信頼性を有するPCR値[B~,B]および[C~,C]の双方のブランチをTPMに変更させる。

このコマンドは、出力データ[Ufork, A~, X(B~, D), D, X(C~, D), D]を作成する。

TPMには、データ構造体[Ufork, A~, B~, B, C~, C]および完全性メトリックDがロードされる。

TPMは、(1)それが第1の構造体を作成したこと、および、(2)第1の構造体が文字列Uforkを含むことを検証する。

前述したように、出力データの文字列「Ufork」は、証拠のタイプである。

TPM_upgrade_forkPCR([Ufork, A~, B~, B, C~, C], [PCR-index])は、PCR値B〜およびC〜が特定のPCRについて同等の信頼性を有することの証拠を作成する。

TPMには、データ構造体[Ufork, A~, B~, B, C~, C]および[PCR-index]がロードされる。

TPMは、(1)それが第1の構造体を作成したこと、(2)第1の構造体が文字列Uforkを含むこと、および(3)A〜が、インデックス[PCR-index]を有するPCRの初期値であることを検証する。

TPMは、出力データ[uPCR, PCR-index, B~, C~]を作成して、PCR状態B〜およびC〜が、インデックスPCR-indexを有するPCRについて同等の信頼性を有する値であることを示す。

出力データの文字列「uPCR」は、証拠のタイプである。

TPM_upgrade_forkHash([uPCR, PCR-index, A~, B~], [PCR-incex, C~], […], …)は、2つの合成PCRダイジェスト[compHash]および[compHash&]が、リスト[PCR-indexList]に示されたPCRについて同等の信頼性を有することの証拠[Uhash, compHash, compHash&, PCR-indexList]を作成する。

TPMには、形式[uPCR, PCR-index, A~, B~]または[PCR-index, C~]の複数のデータ構造体がロードされる。

TPMは、(1)それが、形式[uPCR, PCR-index, A~, B~]のあらゆるデータ構造体を作成したこと、および(2)このようなデータ構造体が文字列uPCRを含むことを検証する。

このコマンドでは、形式[uPCR, PCR-index, A~, B~]のデータ構造体は、インデックスPCR-indexを有するPCRを、合成ハッシュcompHashのPCR値A〜および合成ハッシュcompHash&のPCR値B〜によって表さなければならないことを示す。

形式[PCR-index, C~]のデータ構造体は、インデックスPCR-indexを有するPCRを、合成ハッシュcompHashおよび合成ハッシュcompHash&の双方のPCR値C〜によって表さなければならないことを示す。

TPMは、PCR-indexListに反映された順序で、関連するPCR値を入力データから抽出し、それらのPCR値を使用して、合成ハッシュcompHashおよびcompHash&を作成する。

出力データの文字列Uhashは、証拠のタイプである。

TPM_upgrade_seal([sealedBlob], [Uhash, compHash, compHash&, PCR-indexList])は、シールされているブロブ[sealedBlob]の合成ハッシュ値compHashを、合成ハッシュ値compHash&と交換する。

TPMには、シールされているブロブ[sealedBlob]および[Uhash, compHash, compHash&, PCR-indexList]がロードされる。

TPMは、それが双方の構造体を作成したこと、および、第2の構造体が文字列Uhashを含むことを検証する。

[sealedBlob]が、PCR-indexListにリストされたものと同じPCRを使用し、且つ、その合成ハッシュ値がcompHashである場合、TPMは、compHashをcompHash&と交換し、変更を受けた、シールされているブロブを出力する。

次に、これらの新しい機能の一使用を単なる一例として説明することにする。

図10は、2つの同等の信頼性を有する完全性メトリック1001、1002を示している。

これらの双方のシーケンスは、同じ完全性メトリックシーケンスA0 B0 C0 D0 E0のアップグレードである。

第1のシーケンス1001は、第2のシーケンス1002とは異なってアップグレードされている。

第1の完全性メトリックシーケンス1001は、A0 B1 C0 D1 E0である。

第2の完全性メトリックシーケンス1002は、A0 B0 C1 D2 E0である。

文字の後の数字は、アップグレードの進化を示している。

すなわち、完全性メトリックA0はアップグレードではない。

完全性メトリックB1はB0からのアップグレードである。

完全性メトリックC1はC0からアップグレードである。

完全性メトリックD1はD0からアップグレードである。

完全性メトリックD2はD1からのアップグレードである。

完全性メトリックE0はアップグレードではない。

これらの関係は、図(figure)1003および図1004に示されている。

ここで、各連続したカラムは、トラステッドプラットフォームの異なる態様の完全性メトリックであり、各カラムは、特定の完全性メトリックの進化を示している。

本発明のこの実施形態による、PCRにロードされた完全性メトリックの実際のシーケンスは、図1005および図1006に示されている。

第1のシーケンス1001と同等の完全性メトリックの実際のシーケンスは、A0 B0 B1 C0 D0 D1 E0 1005である。

第2のシーケンス1002と同等の完全性メトリックの実際のシーケンスは、A0 B0 C0 C1 D0 D1 D2 E0 1006である。

完全性メトリックの結果のシーケンスは、図1007および図1008に示されている。

第1のシーケンス1001と同等のPCR値の実際のシーケンスは、1007 R〜 A0〜 B0〜 B1〜 C0〜 D0〜 D1〜 E0〜である。

ここで、R〜は、特定のPCRのリセット状態である。

第2のシーケンス1002と同等のPCR値の実際のシーケンスは、1008 R〜 A0〜 B0〜 C0〜 C1〜 D0〜 D1〜 D2〜 E0〜である。

この要件は、第1のPCRシーケンス1007が第2のPCRシーケンス1008と同等の信頼性を有することをTPMに証明することである。

上記機能を使用する一実施態様は、以下の通りである。

1.TPM_upgrade_extend(R~, A0) => [Uextend, R~, A0~, A0]

2.TPM_upgrade_extend(A0~, B0) => [Uextend, R~, B0~, B0]

3.TPM_upgrade_concat([Uextend, R~, A0~, A0], [Uextend, A0~, B0~, B0]) => [Uextend, R~, B0~, B0]

4.TPM_upgrade_forkRoot(Uextend, R~, B0~, B0) => [Ufork, R~, B0~, B0, B0~, B0]

5.TPM_upgrade_link(B0, B1) => [Ulinked, B0, B1]

6.TPM_upgrade_forkLink([Ufork, R~, B0~, B0, B0~, B0], [Ulinked, B0, B1], [0]) => [Ufork, R~, B1~, B1, B0~, B0]

7.TPM_upgrade_forkExtend([Ufork, R~, B1~, B1, B0~, B0], [C0]) => [Ufork, A~, C0~, C0, C0~, C0]

8.TPM_upgrade_link(C0, C1) => [Ulinked, C0, C1]

9.TPM_upgrade_forkLink([Ufork, R~, C0~, C0, C0~, C0], [Ulinked, C0, C1], [1]) => [Ufork, R~, C0~, C0, C1~, C1]

10.TPM_upgrade_forkExtend([Ufork, R~, C0~, C0, C1~, C1], [D0]) => [Ufork, R~, D0~, D0, D0~, D0]

11.TPM_upgrade_forkExtend([Ufork, R~, D0~, D0, D0~, D0], [D1]) => [Ufork, R~, D1~, D1, D1~, D1]

12.TPM_upgrade_link(D1, D2) => [Ulinked, D1, D2]

13.TPM_upgrade_forkLink([Ufork, R~, D1~, D1, D1~, D1], [Ulinked, D1, D2], [1]) => [Ufork, R~, D1~, D1, D2~, D2]

14.TPM_upgrade_forkExtend([Ufork, R~, D1~, D1, D2~, D2], [E0]) => [Ufork, R~, E0~, E0, E0~, E0]

15.TPM_upgrade_forkPCR([Ufork, R~, E0~, E0, E0~, E0], P) => [uPCR, P, E0~, E0~]

次に、TPM_upgrade_forkHashと共に構造体[uPCR, P, E0~, E0~]を使用して、同等の信頼性を有する合成PCRダイジェスト値を作成することができる。

次に、これらの値をTPM_upgrade_sealに使用して、シールされているブロブの合成ハッシュ値をアップグレードすることができる。

好ましくは、合成PCRを生成する既存のトラステッドコンピューティンググループの方法が、各後続のPCR値を中間の合成PCR値に拡張することに変更される。

この場合、コマンドTPM_upgrade_forkHashは必要とされない。

補完的な手法では、さらに新しいトラステッドデバイスの能力が、これらの新しい能力によって作成されるデータブロブのコンテンツを含むクレデンシャルを作成してそのクレデンシャルに署名する。

このようなクレデンシャルは、現在のプラットフォーム状態の証拠(TPM_Quoteによって作成されたもの等)と共に、プラットフォームの新しい状態が前の状態と同様に信頼できることの証拠としてサードパーティに供給することができる。

このようなクレデンシャルは、クレデンシャルの意味を示すdigestPairData、compositePairData等のタグを含まなければならない。

このようなクレデンシャルは、プライバシーを保護するために、トラステッドコンピューティンググループの通常の実施に従い、TPMの構成証明アイデンティティの1つを使用して署名されるべきである。

全体としてこの手法により、(関連するPCR値によって立証される)後のソフトウェア状態を旧ソフトウェア状態と関連付けることが可能になる。

したがって、新しいPCR値が古いPCR値から導出可能であることを示すことができ、新しいTPM_COMPOSITE_HASH値が古いTPM_COMPOSITE_HASH値と取って代わることができる場合に、ソフトウェア状態の変化にかかわらず、シールされているブロブにアクセスすることが可能である。

適した手法は、単に、トラステッドプラットフォーム上のソフトウェアをアップグレードまたは交換するプロセスの1つのステップとして、このようなすべての「シールされているブロブ」を更新することである。

プラットフォームが、ステートメント検証プロセスを実行するのに十分な資源を有しないようなものである場合、それらの検証プロセスを実行する能力をトラステッドデバイスに提供することができる。

したがって、新しいトラステッドデバイスの能力は、測定エンティティによる、ステートメント上の署名の検証、ステートメントのリンクリストの検証等に使用することができる。

トラステッドデバイスは、検証プロセスの中間結果を記憶するスクラッチパッドとしても動作することができ、したがって、或る検証プロセスの結果は、トラステッドデバイスの外部に記憶する必要なく、後の検証プロセスが使用することができる。

同様の技法は、ダイジェストの計算およびこのようなダイジェストのPCRへの拡張を行うためにトラステッドコンピューティンググループの技術においてすでに使用されている。

これまでは、同等の信頼性が相互関係を表すものと仮定されてきた。

すなわち、たとえば、完全性メトリックA0によって表されるソフトウェアが、完全性メトリックA1によって表されるソフトウェアと等しく同様に信頼できることが仮定されてきた。

これは、常に当てはまるとは限らない。

ソフトウェアをアップグレードする理由は、ソフトウェアの信頼性を訂正または改善するためである場合がある。

この場合、たとえば、完全性メトリックA1によって表されるソフトウェアは、完全性メトリックA0によって表されるソフトウェアの代わりに使用することができるが、完全性メトリックA0によって表されるソフトウェアは、完全性メトリックA1によって表されるソフトウェアの代わりに使用することができない。

したがって、ステートメント701に特別な情報を追加して、信頼性が相互関係を表すか否かを示すことが必要となる。

これは、署名値736を作成するために書名されるデータの一部として含まれて、新しいTPM機能に反映されなければならず、その結果(必要な場合に)、一方のブランチの完全性メトリックは、他方のブランチのメトリックと常に同じであるか、または、他方のブランチのメトリックに後方リンクしている。

一実施態様では、

reciprocalFlagフィールドがステートメント701に挿入され、前の(前方リンクする)メトリックが現在の(後方リンクする)メトリックの許容可能な交換物である場合にはTRUEに設定され、そうでない場合にはFALSEに設定される。

構造体[Ulinked, A, B]は、[Ulinked, A, B, reciprocalLink]になるように変更され、この構造体は、AはBによって交換できるが、Bは、reciprocalLinkがTRUEである場合にのみAによって交換できることを意味する。

コマンドTPM_upgrade_link(SA, SB)は、reciprocalLinkフラグを作成して、[SBのreciprocalFlagがFALSEである]場合に、reciprocalLinkをFALSEに設定するように変更される。

構造体[Ufork, A~, B~, B, C~, C]は、[Ufork1, A~, B~, B, C~, C, reciprocal0, reciprocal1]になるように変更される。

reciprocal0およびreciprocal0は、共に、TPM_upgrade_forkRootによってTRUEに設定される。

第1の完全性の組[B~, B]が、TPM_upgrade_forkLinkオペレーション中に一度でも拡張され、且つ、そのreciprocalLinkがFALSEであった場合、reciprocal0はFALSEに設定される。

同様に、第2の完全性の組[C~, C]がTPM_upgrade_forkLinkオペレーション中に一度でも拡張され、且つ、そのreciprocalLinkがFALSEであった場合、reciprocal1はFALSEに設定される。

reciprocal0がTPM_upgrade_forkLinkに入力されたUfork1データでFALSEである場合において、[branch]==1であるときは、このコマンドは失敗しなければならない。

同様に、reciprocal1がTPM_upgrade_forkLinkに入力されたUfork1データでFALSEである場合において、[branch]==0であるときは、このコマンドは失敗しなければならない。



コマンドTPM_upgrade_forkPCRは、入力されたUfork構造体のフラグreciprocal0およびreciprocal1を検査するように変更される。

一方のPCR値が、他方のPCR値でシールされているデータをアンシールするのに使用できることをそれらのフラグが示すが、その逆は成り立たない場合、TPMは、X〜にシールされているデータをY〜でアンシールできるように、変更されたuPCR構造体[uPCR, PCR-index, X~, Y~]のPCR値を順序付ける。

実施形態では、本発明は、TPMのステートメントのリンクリストを記録することを伴う。

次に、本発明者らは、このようなリンクリストの長さに関係した本発明の実施形態の態様を説明する。

完全なリンクリストの記録は、プラットフォームの状態の完全な系統(lineage)を明示的に記録するのに望ましい。

あいにく、完全なリストを記録すると、完全性メトリックを記録するのに必要な時間が増加し、検証ステートメントに必要とされるストレージが増加し、そのいずれかまたは双方は望ましくない場合がある。

したがって、より古いステートメントをリンクリストから取り除くことが望ましい場合があり、究極的には、リンクリストを単一のステートメント(最も近時にリンクされたステートメント)に削減することが望ましい場合がある。

任意の個数のステートメント(1つだけのステートメントを含む)が、連続した順序で記録された同じリンクリストの連続的なメンバーである限り、それらのステートメントをTPMに記録することができる。

測定の信頼ルートまたは測定エージェントによって実行される記録プロセスは、リストの長さに容易に適合される。

RTM/MAは、リストの長さがどれ程であろうと、リストを単にウォークスルーして、前述したように、TPMの検証プロセスの結果を記録し、TPMの検証プロセスを記録する。

短縮されたリンクリストが、元の(長い)リンクリストと同等の信頼性を有することをTPMに証明することが残っている。

この証明は、短縮されたリストの先頭ステートメントが長いリストの一部であることの証拠に依存する。

一実施態様では、これは、(前述した)[Ulinked, Slogn, Sstartshort]構造体を伴う。

ここで、Sstartshortは、短縮されたリストの先頭ステートメントであり、Slongは、長いリストのSstartshortの前の或るステートメントである。

このUlinked構造体は、ステートメントSlongおよびSstartshortが同じリンクリストのステートメントであることの証拠であり、SlongがSstartshortの前におけるリストの或る場所に現れることの証拠である。

ステートメントSlongが、リンクリストにおいてステートメントSstartshortと連続していない場合、このUlinked構造体を生成するには、2つのUlinked構造体を結合して単一のUlinked構造体にするさらに新しいコマンド(後述する)が必要とされる。

証拠[Ulinked, Slong, Sstartshort]および任意のUfork構造体[Ufork, A~, B~, B, C~, C]が与えられると、その結果として、B〜をSlongで拡張し、C〜をSstartshortで拡張することによりさらに妥当なUfork構造体を導出することができ、データ構造体[Ufork, A~, Slong~, Slong, Sstartshort~, Sstartshort]が作成される。

これには、さらに新しいコマンド(後述する)が必要とされる。

たとえば、Slongがリンクリストの先頭であり、且つ、Sstartshotがそのリンクリストの短縮バージョンの先頭である場合、[Ufork, A~, Slong~, Slong, Sstartshort~, Sstartshort]は、PCR(その最も近時に記録されたステートメントは第1のリストの先頭である)が、別のPCR(その最も近時に記録されたステートメントはその第1のリストの短縮バージョンの先頭である)と同等の信頼性を有することの証拠である。

データ構造体[Ufork, A~, Slong~, Slong, Sstartshort~, Sstartshort]は、その後、Ufork構造体に対して操作を行う任意のコマンドと共に使用することができる。

所与のリストからの単一のステートメントのみがTPM)に記録される限られた場合に、コマンドTPM_upgrade_forkLinkによって提供される機能は冗長になる。

前述したこの新しい構造体は、ステートメント値を除外するように変更することができる。

このような場合、たとえば、Ufork構造体[Ufork, A~, B~, B, C~, C]は[Ufork, A~, B~, C~]になる。

2つのUlinked構造体を結合して単一のUlinked構造体にするさらに新しいコマンドが必要とされ得ることを前述した。

そのさらに新しいコマンドの一例は、TPM_upgrade_link_concat([Ulinked, A, B], [Ulinked, C, D])である。

このコマンドは、完全性メトリックDが完全性メトリックAにリンクされることの証拠を作成する。

この証拠は、データ構造体[Ulinked, A, D]の形を取る。

この証拠を作成するために、TPMには、ステートメント([Ulinked, A, B]および[Ulinked, C, D])がロードされる。

TPMは、これらの双方のUlinked構造体がTPMによって作成されたことを検証し、B==Cであることを検証する。

その後、TPMは、出力構造体[Ulinked, A, D]を作成する。

第1のPCR値を第1のステートメントで拡張し、第1のPCRと同等の信頼性を有する第2のPCRを、第1のステートメントにリンクされる第2のステートメントで拡張するさらに新しいコマンドが必要とされ得ることを前述した。

そのさらに新しいコマンドの一例は、TPM_upgrade_forkLink1([Ufork, A~, B~, B, C~, C], [Ulinked, E, F], [branch])である。

このコマンドは、TPMに、[branch]PCR値をステートメントEで拡張させ、他方のPCR値をステートメントFで拡張させる。TPMは、それが、あらゆる出力を作成する前に、Ufork構造体およびUlinked構造体の双方を作成したことを常に検証する。

[branch]パラメータが0である場合、このコマンドは、PCR値B〜をEで[E~, E]に拡張し、PCR値C〜をFで[F~, F]に拡張する。

したがって、このコマンドは、出力データ[Ufork, A~, E~, E, F~, F]を作成する。

[branch]パラメータが1である場合、そのコマンドは、PCR値B〜をFで[F~, F]に拡張し、PCR値C〜をEで[E~, E]に拡張する。

したがって、このコマンドは、出力データ[Ufork, A~, F~, F, E~, E]を作成する。

次に、本発明者らは、単なる一例として、リンクリストの単一のステートメントしかTPMに記録されていない場合のPCRのアップグレードを説明する。

本発明者らは、完全性メトリックシーケンスA0 B0が完全性メトリックシーケンスA0 B1と同等の信頼性を有することを証明する必要があるものと仮定する。

この例は、上述したように、ステートメントフィールドを除外する、変更されたデータ構造体を使用する。

一実施態様は、以下の通りである。

1.TPM_upgrade_extend(R~, A0) => [Uextend, R~, A0~]

2.TPM_upgrade_forkRoot(Uextend, R~, A0~) => [Ufork, R~, A0~, A0~]

3.TPM_upgrade_link(B0, B1) => [Ulinked, B0, B1]

4.TPM_upgrade_forkLink([Ufork, R~, A0~, A0~], [Ulinked, B0, B1], [0]) => [Ufork, R~, B0~, B1~]

5.TPM_upgrade_forkPCR([Ufork, R~, B0~, B1~], P) => [uPCR, P, B0~, B1~]

その後、構造体[uPCR, P, B0~, B1~]をTPM_upgrade_forkHashと共に使用して、同等の信頼性を有する合成PCRダイジェスト値を作成することができる。

その後、これらの値をTPM_upgrade_sealに使用して、シールされているブロブの合成ハッシュ値をアップグレードすることができる。

本発明の前の実施形態は、リンクリストを1つのプログラムのみの実行に関連付けていた(リンクリストの複数のステートメントに関係した態様がTPMに記録されていても、リンクリストごとに1つのプログラムしか、TPMをホスティングするコンピュータ上で実際には実行されない)。

本発明のさらなる実施形態は、リンクリストの連続的なステートメントのセクションの識別を伴い、これには、そのセクションにおけるステートメントごとに1つのプログラムのコンピュータ上での実行が付随する。

これは、同じエンティティが、同等の信頼性を維持しながら、プラットフォーム上で実行される複数のプログラムを保証することを可能にするという利益を有する。

好ましくは、たとえセクションが1つのステートメントしか含まない場合であっても、図7に示すステートメント構造体は、リンクリストのセクションを区別する特別なデータを含むように変更される。

このデータは、たとえば、同じセクションのすべてのメンバーについては同じ値であるが、リストの異なる連続したセクションについては異なる値とすることができる。

このデータによって、リストを構文解析してセクションにすることが可能になる。

RTMまたは測定エージェントが、リンクリストをウォークスルーして、ステートメントを検証し、TPMの結果を記録すると、RTMまたは測定エージェントは、リンクリストのセクションを識別することができる。

セクションの各ステートメントは、別個のプログラムを実際に検証するのに使用することができ、このような各プログラムはコンピュータが実行することができる。

これによって、エンティティは、それぞれの個々のプログラムごとに別個のリンクリストを作成する必要なく、同じリンクリストを使用して、プラットフォーム上に実行される複数の連続したプログラムを保証することが可能になる。

また、これによって、エンティティは、単一のプログラムを、その単一のプログラムと同等の信頼性を有する複数のプログラムと交換することが可能になる。

これを行うために、エンティティは、元の単一のプログラムに関連するリストにリンクされる、交換プログラムの個数と等しい個数の連続的なリンクされるステートメントを含むリンクリストのセクションを提供する。

プラットフォームのRTMまたは測定エージェントは、セクションの各ステートメントを検証し、セクションの各ステートメントに対応する各プログラムを検証し、TPMに検証結果を記録し、そして、それらのステートメントによって検証されるプログラムを実行する。

本発明の実施形態に関して前述した技法を次に使用して、複数のプログラムでブートされたプラットフォームが、元の単一のプラットフォームでブートされたプラットフォームと同等の信頼性を有することの証明を通じてTPMをガイドすることができる。

リンクリストの同じセクションの複数のステートメントが、プラットフォームで実行される複数のプログラムを保証するのに使用される場合、そのセクションのステートメントは、別個のリンクリストのブランチのステム(stem)として動作することができる。

各ブランチは、セクションの別個のステートメントにリンクされている。

このようなブランチを使用して、リンクリストのセクションごとに1つのプログラムのみを実行することをサポートすることもできるし、ちょうど説明したように、リンクリストのセクションごとに複数のプログラムの実行をサポートすることもできる。

したがって、ステートメントのリンクツリーを作成することができる。

本発明のさらなる実施形態では、プログラムが、コンピュータプラットフォームでもはや実行されない場合に、エンティティは、検証ステートメントを使用して、プラットフォームの信頼状態が変更されないことを保証することができる。

この手法によって、同等の信頼性を有する状態が、前の状態よりも少ないプログラムを含むことが可能になる。

本発明のこの実施形態では、programDigests710フィールドは、NULL指示子を含むことが可能である。

NULL指示子は、関連するプログラムを実行する必要がないこと、検証結果をTPMに記録する必要がないこと、および、検証値をTPMに記録する必要がないことを暗に意味するので、RTMまたは測定エージェントは、NULL指示子を含むステートメントに決して遭遇すべきではない。

NULL指示子を含むステートメントは、TPMが、2つのPCR値が同等の信頼性を有することを証明するプロセスを通じてガイドされる時に使用される。

コマンドTPM_upgrade_link(SA, SB)は、ステートメントSAのprogramDigests710フィールドがNULLフラグしか含まない場合には、出力データ[Ulinked, NULL, B]を作成し、ステートメントSBのprogramDigests710フィールドがNULLフラグしか含まない場合には、出力データ[Ulinked, A, NULL] を作成するように変更される。

コマンドTPM_upgrade_forkLink([Ufork, A~, B~, B, C~, C], [Ulinked, E, F], [branch])は、EがNULLである場合に、Eで更新されることになっているブランチが不変とされるように変更され、FがNULLである場合に、Fで更新されることになっているブランチが不変とされるように変更される。

単に例として、本発明者らは、プログラムB0の削除前のコンピュータ状態が、プログラムB0の削除後のコンピュータ状態と同等の信頼性を有することの証明を通じてTPMをガイドする一方法を説明する。

プラットフォームがブートして、第1の組の完全性メトリック[A0]、[B0]、[C0]、[D0]を生成するものと仮定する。

その後、プラットフォームは、リブートして、第2の組の完全性メトリック[A0]、[C0]、[D0]を生成する。

この第2の組は、B1==NULLである場合に、[A0]、[B1]、[C0]、[D0]と同じである。

目標は、第1の組の完全性メトリック[A0]、[B0]、[C0]、[D0]が第2の組の完全性メトリック[A0]、[NULL]、 [C0]、[D0]と同等の信頼性を有することをTPMに証明することである。

一実施態様は、以下のシーケンスを含む。

1.TPM_upgrade_forkRoot(Uextend, R~, A0~, A0) => [Ufork, R~, A0~, A0, A0~, A0]

2.TPM_upgrade_link(B0, B1) => [Ulinked, B0, NULL]

3.TPM_upgrade_forkLink([Ufork, R~, A0~, A0, A0~, A0], [Ulinked, B0, NULL], [0]) => [Ufork, R~, B0~, B0, A0~, A0]

4.TPM_upgrade_forkExtend([Ufork, R~, B0~, B0, A0~, A0], [C0]) => [Ufork, R~, X(B0~, C0), C0, X(A0~, C0), C0]

証明の残りは、前述の通り進む。

本発明の実施形態は、3つのタイプのアップグレードを可能にしている。

「substitute(代用)」、この場合、1つのプログラムが、1つの同等の信頼性を有するプログラムと交換される。

「more(より多い)」、この場合、1つのプログラムが、2つ以上の同等の信頼性を有するプログラムと交換される。

「less(より少ない)」、この場合、1つのプログラムが削除されるが、その結果の状態は、それでも同等の信頼性を有する。

本発明のさらなる実施形態では、シールされているデータを作成するエンティティは、シールされているデータの自動的な合成ハッシュアップグレードが許可された場合、アップグレードのタイプを明示的に提示し、データ構造体は、行われた完全性メトリックアップグレードのタイプを示す指示子を記録する。

これによって、エンティティは、シールされているデータの合成ハッシュ値の自動的なアップグレードを引き起こすことができるアップグレードのタイプを明示的に提示できる。

これは、たとえば、データ所有者が、プログラムの簡単なアップグレードは喜んで受け付けるが、プログラムの追加若しくは削除は受け付けない場合、または、どのアップグレードも自動的に受け付けたくない場合に有益である。

データのシール、データのアンシール、および、或る合成ハッシュ値が別の合成ハッシュ値と同等の信頼性を有することを証明するプロセスを通じたTPMのガイドのプロセスは、上述したものと同じであるが、以下の変更点を有する。

データ構造体[Ufork, A~, B~, B, C~, C], [uPCR, PCR-index, A~, B~], [Uhash, compHash, compHash&, PCR-indexList]は、フラグ「substitute」、「more」、および「less」を含むように変更される。

コマンドTPM_upgrade_forkRootは、出力Ufork構造体の「substitute」フラグ、「more」フラグ、および「less」フラグをFALSEに設定するように変更される。

コマンドTPM_upgrade_forkLinkは、以下のように変更される。

そのコマンドは、或るステートメントを1つの同等の信頼性を有するステートメントと交換する時に、出力Ufork構造体においてsubstituteをTRUEに設定する。

そのコマンドは、或るステートメントを2つ以上の同等の信頼性を有するステートメントと交換する時に、出力Ufork構造体においてmore=TRUEに設定する。

そのコマンドは、或るステートメントを削除する時、出力Ufork構造体においてless=TRUEに設定する。

コマンドTPM_upgrade_forkPCRは、当該コマンドが、「substitute」フラグ、「more」フラグ、および「less」フラグの状態を入力Ufork構造体から出力uPCR構造体にコピーするように変更される。

コマンドTPM_upgrade_forkHashは、当該コマンドが、入力uPCR構造体の「substitute」フラグ、「more」フラグ、および「less」フラグの状態を出力Uhash構造体にコピーするように変更される。

既存のTCG構造体TPM_STORED_DATAおよび/またはTPM_STORED_DATA12は、フラグ「substitute」、「more」、および「less」を含む新しいupgradeOptionsフィールドの追加によって変更される。

upgradeOptions=>substituteがFALSE(デフォルト値)である場合において、プログラムの1対1の交換が合成ハッシュの変更に貢献したときは、TPM_STORED_DATA_UFLAGSの合成ハッシュ値を自動的に更新してはならない。

upgradeOptions=>moreがFALSE(デフォルト値)である場合において、プログラムの1対多の交換が合成ハッシュの変更に貢献したときは、TPM_STORED_DATA_UFLAGSの合成ハッシュ値を自動的に更新してはならない。

upgradeOptions=>lessがFALSE(デフォルト値)である場合において、プログラムの削除が合成ハッシュの変更に貢献したときは、TPM_STORED_DATA_UFLAGSの合成ハッシュ値を自動的に更新してはならない。

既存のTCGコマンドTPM_SealおよびTPM_Unseal並びに新しいコマンドTPM_upgrade_sealは、それらのコマンドが、変更されたTPM_STORED_DATA構造体に対して操作を行うように変更される。

TPM_Sealは、特別な入力パラメータ「substitute」、「more」、および「less」を含むように変更される。

これらの特別な入力パラメータの状態は、出力TPM_STORED_DATA構造体の同じ名前を有するパラメータにコピーされる。

TPM_Unsealのオペレーションは変更されない。

TPM_upgrade_sealは、以下のように変更される。

upgradeOptions=>substituteがFALSEであるが、Uhash=>substituteがTRUEである場合、そのコマンドは失敗する。

upgradeOptions=>moreがFALSEであるが、Uhash=>moreがTRUEである場合、そのコマンドは失敗する。

upgradeOptions=>lessがFALSEであるが、Uhash=>trueがTRUEである場合、そのコマンドは失敗する。

本発明のさらなる実施形態では、シールされているデータを作成するエンティティは、シールされているデータの合成ハッシュ値の変更を強制することを選ぶことができる。

これによってエンティティは、たとえば、アップグレードされたプログラムによる、現存しているシールされているデータへのアクセスを明示的に承認することが可能になる。

データのシールおよびアンシールのプロセスには、以下の変更が必要とされる。

既存のTCG構造体TPM_STORED_DATAおよび/またはTPM_STORED_DATA12は、標準的なTCG認可値を含む新しいupgradeAuthフィールドの追加によって変更される。

既存のTCGコマンドTPM_SealおよびTPM_Unsealは、変更されたTPM_STORED_DATA構造体に対して操作を行うように変更される。

既存のTCGコマンドTPM_Sealは、(通常通り暗号化されている)特別な入力パラメータupgradeAuthを含むように変更される。

TPM_Unsealのオペレーションは変更されない。

新しいTPMコマンドTPM_upgrade_SealForce([selaedBlob], compHash)は、sealedBlobのupgradeAuthと同じ値の所有を証明する標準的なTCG認可プロトコルを使用して認可される。

TPMは、既存のsealedBlobをオープンし、既存の合成ハッシュ値を値compHashと交換し、変更された、シールされているブロブを出力する。

自動的な合成ハッシュアップグレードは、現在、TCG技術では可能でなく、幾人かのデータ所有者は、シールされているブロブを自動的にアップグレードできないことを了解した上で、シールされているブロブを使用していたことがある。

TCGは、可能な限り、下位互換性を維持する意図を提示してきた。

したがって、既存のコマンドおよび構造体を使用して、シールされているブロブの自動的なアップグレードを可能にすることは望ましくない。

データ構造体およびコマンドの新しいバージョンを作成して、本発明の実施形態について説明した技法を実施することが望ましい。

データ所有者は、自動的なアップグレードを可能にしたい場合には、これらの新しい構造体およびコマンドを使用すべきであり、自動的なアップグレードを可能にしたくない場合には、既存の構造体およびコマンドを使用し続けるべきである。

また、TCGは、単に今後のTPMに対して、既存のTPM_STORED_DATA構造体並びにTPM_SealコマンドおよびTPM_Unsealコマンドを軽視(deprecate)したい場合もある。

したがって、自動的なアップグレードを可能にするように設計されるどの新しい構造体およびコマンドも、自動的なアップグレードを無効にすることを可能にすべきでもある。

自動的なアップグレードの一部または全部の形式を信頼しないデータ所有者は、明示的なアップグレードを使用したい場合がある。

この明示的なアップグレードは本質的に新しいデータ構造体を必要とする。

したがって、どの新しい構造体およびコマンドも、明示的なアップグレードを可能にすべきである。

したがって、好ましくは、

既存のTPM_STORED_DATA構造体および/またはTPM_STORED_DATA12構造体は、上述したように変更されないが、TPM_STORED_DATA構造体および/またはTPM_STORED_DATA12構造体をフィールドupgradeOptionsフィールドおよびupgradeAuthフィールドで増大させることによって、新しい構造体(たとえば、TPM_STORED_DATA_UPGRADE)が作成される。

TPM_SEALおよびTPM_Unsealは、上述したように変更されないが、TPM_SEALおよびTPM_UnsealをupgradeOptionsフィールドupgradeAuthフィールドで増大させることによって、新しいコマンドが作成される。

この新しいコマンドは、TPM_STORED_DATA_UPGRADE構造体に対して操作を行うべきである。

コマンドTPM_upgrade_sealおよびTPM_upgrade_SealForce([sealedBlob], compHash)は、TPM_STORED_DATA_UPGRADE構造体に対してのみ操作を行うべきである。

次に、完全性メトリックおよびPCR値のアップグレードの一例を説明する。

これは、或るホストトラステッドプラットフォームから別のホストトラステッドプラットフォームへの仮想プラットフォームのマイグレーション中に行われる。

この例は、仮想プラットフォームが、ホストプラットフォームのプロパティを表すPCR値にシールされているデータブロブを使用するものと仮定する。

本発明の実施形態によって、これらのシールされているデータブロブに記録されたPCR値を、それらのデータブロブを現在アンシールすることができる環境なしでアップグレードすることが可能になる。

したがって、本発明の実施形態を使用する利点は、異なるホストプラットフォームへのマイグレーションの前後のいずれかにおいて、異なるホストプラットフォーム上で機能するように仮想プラットフォームをカスタマイズできることである。

顧客が仮想プラットフォームを信頼する意志がある場合、その顧客は、ホストプラットフォームを管理するエンティティを信頼すべきである。

これは、その管理エンティティが、仮想プラットフォームを異なるホストプラットフォームへ移動させる能力を有するからである。

管理エンティティは、等しく信頼できるホストプラットフォーム上に仮想プラットフォームをインスタンス化することを引き受けるべきであることが望ましい。

これは、ローグホストプラットフォーム(rogue host platform)が、自身がホスティングするどの仮想プラットフォームも破壊でき、仮想プラットフォームがローグホストプラットフォームまたはローグ管理エンティティから自身を保護することを何も行えないからである。

したがって、仮想プラットフォームを使用する顧客は、ホストプラットフォームの知識を必要としない。

管理エンティティは、等しく信頼できるホストプラットフォーム上で仮想プラットフォームをインスタンス化するか、または、それを行わない。

サードパーティは、完全性の誰何を行って、返されるPCR値、イベントログ、および証明書を検査することにより、プラットフォームの信頼プロパティを発見する。

プラットフォームが仮想であるか否か(さらには、それ自体が仮想である場合があるホストプラットフォームの性質)を明らかにする情報は、仮想プラットフォームのPCRに存在することができ、且つ/または、仮想プラットフォームの証明書に存在することができる。

ホスト管理エンティティに対して、セキュリティサービス同意についての情報を仮想プラットフォームのPCRスタックに入れることからの利点が存在する。

この利点は、そうすることによって、同意されたセキュリティレベルを維持しつつ、コンピューティング負荷をバランスさせることが容易になるということである。

仮想プラットフォームのユーザは、当該ユーザが同意したセキュリティサービスレベル同意(SSLA)を示すPCRにユーザのデータをシールすることができる。

SSLAの制限が少ないほど、ユーザをサポートできるホストプラットフォームの範囲が大きくなり、ホストエンティティがサービスを提供し、ホストプラットフォーム間で仮想プラットフォームを交換することが容易になる。

仮想プラットフォームの実際のSSLA PCR値が、シールされているデータブロブのユーザのSLA値と一致する場合、ユーザは、自身のデータにアクセスすることができ、プラットフォームの資源を消費することができる。

そうでない場合、ユーザはそれらを行うことができない。

したがって、ホスト管理エンティティが、ユーザのSSLAを満たさないホストに顧客を移動させた場合、ユーザのデータが不適切な環境で使用されることが自動的に防止される。

SSLAで表すことができるファクタは以下のものを含む。

仮想TPMのタイプ

IPアドレス

起動時間

地理的ロケーション

仮想LANの存在

仮想LANのタイプ

仮想プラットフォームをクローン化できるか否か

プラットフォームアルゴリズムアジリティ(platform algorithm agility)

顧客に対して、ホストプラットフォームについての情報を仮想プラットフォームのPCRスタック内に入れることからの不利な点が存在する。

これは、仮想プラットフォームのPCRスタックが、専用(非仮想)プラットフォームのPCRスタックとは異なり、したがって、専用プラットフォームと共に動作するように構成されるソフトウェアが、仮想プラットフォームで通常通り動作しないからである。

設計者の中には、ホスティングされた仮想プラットフォームの証明書にホストプラットフォームについての情報を入れることにする者、ホスティングされた仮想プラットフォーム上のPCRにホスト情報を入れることにする者、およびその双方を行うことを選ぶ者もいるであろう。

設計者が、ホスティングされた仮想プラットフォーム上のPCRにホスト情報を入れ、且つ、ユーザがそれらのPCRにシールされているデータブロブを作成する場合において、デスティネーションのホストプラットフォームのプロパティが、ソースのホストプラットフォームのプロパティと少なくとも同等であるとき、それらのPCR値をアップグレードすることが望ましい。

これは、前述した技法の使用によって行うことができる。

前述したPCRおよび完全性メトリックのアップグレード技法は、シールされているデータによって現在記述されている環境の存在を必要としないので、特に好都合である。

したがって、仮想プラットフォームを、新しいホストにマイグレーションすることができ、仮想プラットフォームがその新しいホストに達した時に再作成することができ、その逆も同様である。

ホスト管理エンティティに対するこの利点の1つの効果は、条項(terms)が、プラットフォームのPCRスタックに存在している仮想プラットフォームの許可されたインスタンス化についての情報に同意している場合に、ホスト管理エンティティが、当該ホスト管理エンティティによって提供される仮想プラットフォームを使用して顧客に好ましい条項を提供できるということである。

したがって、ユーザのシールされているデータブロブが、その値がプラットフォームの許可されたインスタンス化についての情報を表すPCRを常に含む場合に、たとえプラットフォームが専用プラットフォームであっても、ユーザは、すべてのプラットフォーム上で同じソフトウェア構成を使用することができ、仮想プラットフォームを使用する時に好ましい条項を利用することができる。

もちろん、この技法は、顧客が、異なるタイプの専用プラットフォーム上で自身のシールされているデータを使用することも可能にする。

次に、単に一例として、本発明者らは、或るホストトラステッドプラットフォームP1から別のホストトラステッドプラットフォームP2への仮想プラットフォームVPのマイグレーションを説明する。

示されるプラットフォームの要素を図11に概略的に示す。

プラットフォームP1は、物理プラットフォームまたは仮想プラットフォームとすることができる。

プラットフォームP2は、物理プラットフォームまたは仮想プラットフォームとすることができる。

ホストプラットフォームは、TPM(P1上のTPM−P1およびP2上のTPM−P2と呼ばれる)を含む。

仮想プラットフォームVPは、主仮想プラットフォームコンピューティング環境VPCEおよび仮想トラステッドプラットフォームモジュール(VTPM)を備える。

そのホストプラットフォームの少なくとも1つのプロパティは、VTPMのPCRに記録される。

VPCEは、VTPMによって保護され、且つホストプラットフォームのプロパティに依存したPCR値にシールすることができるデータブロブを含む。

ホストプラットフォームは、VPCEおよびVTPMを互いに分離し、且つ、ホストプラットフォームの他の部分から分離する。

ホストプラットフォームは、別の分離されたコンピューティング環境で実行されるマイグレーションプロセスMP(P1上のMP−P1およびP2上のMP−P2と呼ばれる)を含む。

分離を提供するホストプラットフォームのコンポーネントは、仮想化コンポーネント(VC)(P1上のVC−P1およびP2上のVC−P2と呼ばれる)である。

ホストプラットフォームのTPMのPCR値は、そのMPおよびVCの状態を表すのに必要なすべてのデータを含む。

VPは、最初に、P1上でインスタンス化される(ユーザの要求に応じて、または、プロバイダからのメンテナンスオペレーションとして)。

VPをマイグレーションする必要がある場合、マイグレーションプロセスMP−P1は、まず、P1上のVPCEの実行をサスペンドし、次に、対応するVTPMをサスペンドする。

VPCEのサスペンドが、いかなる追加ステップをも必要としない場合があるのに対して、VTPMのサスペンドは、VTPMによって使用されるあらゆる機密VTPM-Secretsをメモリから確実に削除して、TPM−P1によって確実に保護されるようにしなければならない。

MP−P1は、次に、図12に示すように、以下のステップを実行することによって、VPをP1からP2にマイグレーションする。

1)デスティネーションプラットフォームP2が、適した真正のトラステッドプラットフォームであることをチェックして(1210)、構成証明アイデンティティ鍵の1つを得る。

MP−P1がまだP2を信頼しておらず、そのTPM鍵の1つを知らない場合、P1は、P2との誰何応答プロトコルを使用して、P2が妥当なトラステッドプラットフォームであるか否か(すなわち、TPM−P2およびP2の構成がMP−P1によって信頼されるか否か)を判断する。

この誰何応答プロセスは、P2が特定のタイプの真正なトラステッドプラットフォームであることの証拠およびP2の特定のTPM鍵の詳細をMP−P1に提供する。

2)VTPMによって保護されている、シールされているブロブの完全性メトリックをアップグレードする(1220)。

P2によって提供されるプロパティが、VTPMにシールされている個々のデータブロブのPCR値に記録されるホストプロパティと同等である(またはホストプロパティのスーパーセットである)場合、MP−P1は、それらの個々のVTPMのシールされているブロブをアップグレードし、P2によって提供されるプロパティを示すPCR値を含む新しいシールされているブロブを作成する。

これは、アップグレード方法に応じて、シールされているブロブに関連するアップグレードエンティティからの明示的な認可を必要とする場合もあるし、必要としない場合もある。

3)VTPM-SecretsをP1からP2へマイグレーションする(1230)。

MP−P1は、VTPM-Secretsに対してTPM−P1からTPM−P2へのマイグレーションコマンドを実行し、その結果のデータをMP−P2へ送信する。

MP−P2は、受信データをTPM−P2に提供することによってマイグレーションプロセスを終了する。

P2がMP−P2およびVC−P2の所望のバージョンを実行していない限り、標準的なTCG技法を使用して、VTPM-SecretsがP2で利用可能でないことが確実にされる。

4)MP−P1は、VPCEおよびVTPMを表すデータをP2へ送信する(1240)(且つ、MP−P2はVTPMを実行する)。

MP−P2は、このデータを使用して、VPCEおよびVTPMのインスタンスを作成することにより、P2においてVPの同一のインスタンスを作成する。

次に、MP−P2はVTPM実行を再開する。

再開時において、VTPMは、VTPM-Secretsをメモリ内に再ロードすることを試みる。

再ロードの失敗は、P2のVP環境が受け付けることができないことを示す。

再ロードが成功した場合、MP−P2はVPCEを再開し、VPCEは、次に、VTPMを使用して、P1に存在する場合にVTPMによって保護される機密にアクセスすることができる。

最後に、VP上のアプリケーションは、VTPMによって保護されている、シールされているブロブに記憶されているデータのアンシールを試みる。

失敗は、P2が、その特定のシールされているデータを明らかにするのに適していないことを示す。

ステップ2および3は、逆の順序で実行できることに留意されたい。

この場合、VTPM-sealedブロブは、P2上でアップグレードされる前に、P2へマイグレーションされる。

上述した方法は、明らかに、完全性メトリックを含むかまたは完全性メトリックから導出されるどのデータ構造体のアップグレードにも適用および適合することができる。

このような方法は、或る完全性メトリックが別の完全性メトリックと同等の信頼性を有すること、或るPCR値が別のPCR値と同等の信頼性を有すること、および或るPCR_COMPOSITE値が別のPCR_COMPOSITE値と同等の信頼性を有することの証拠を提供するのに使用することができる。

したがって、これらの方法は、完全性メトリック、PCR値、およびPCR_COMPOSITE値に依存する任意のデータ構造体をアップグレードするのに使用することができる。

アップグレードできる他のデータ構造体のいくつかの例は、TCG鍵構造体TPM_KEY、TPM-KEY12、およびそれらの補助構造体等、PCR_COMPOSITE値に依存するTCG構造体である。

TPM_upgrade_sealに類似したTPMコマンドは、たとえば、TPM-KEY構造体のPCR_COMPOSITE値をアップグレードするのに使用することができる。

鍵構造体のアップグレードは、たとえば、元の環境が利用不能である場合、データがバックアップから復元された場合、または、データが異なるシステムで複製された場合に望ましい場合がある。

詳細には、マイグレーション可能な鍵を、バックアップおよび復元を容易にするのに使用することができ、且つ(異なるプラットフォームまたは異なるオペレーティングシステムにおける)データの複製に使用することができる。

TPM_CreateMIgrationBlobおよびTPM_CMK_CreateBlob等の現在のTCG鍵マイグレーションコマンドは、PCR_COMPOSITE値を明示的に無視する。

したがって、TCGトラステッドプラットフォーム技術は、本発明の実施形態で説明した、TPM鍵構造体の合成PCR値を変更する方法から利益を得ることができる。

本発明の実施形態と共に使用するのに適した1つの例示的な従来技術のコンピュータプラットフォームの図である。 本発明の実施形態と共に使用するのに適した従来技術のトラステッドコンピュータプラットフォームのマザーボード上に存在する機能要素を示す。 本発明の実施形態と共に使用するのに適した図2のトラステッドコンピュータプラットフォームのトラステッドデバイスの機能要素を示す。 本発明の実施形態と共に使用するのに適した図2のトラステッドコンピュータプラットフォームのプラットフォーム構成レジスタに値を拡張するプロセスを示す。 本発明の実施形態による完全性メトリックを記録するプロセスを示す。 本発明の実施形態による同等の信頼性を有する二組の完全性メトリックおよび第2の組の実施形態を示す。 本発明の実施形態による新しいソフトウェアまたは交換ソフトウェアを保証するステートメントを示す。 本発明の実施形態による、図5に示すタイプのステートメントのリンクリストを示す。 本発明の実施形態による、図8に示すタイプのステートメントのプライバシー強化バージョンを示す。 本発明の実施形態による、同等の信頼性を有する二組の完全性メトリックの構成およびその結果の数組のPCR値の構成を示す。 本発明の実施形態による、或る物理トラステッドプラットフォームから別の物理トラステッドプラットフォームへの仮想トラステッドプラットフォームのマイグレーションの概略図である。 本発明の実施形態による、或る物理トラステッドプラットフォームから別の物理トラステッドプラットフォームへ仮想トラステッドプラットフォームをマイグレーションする方法を示す。
符号の説明

10・・・トラステッドプラットフォーム,

14・・・キーボード,

16・・・マウス

18・・・視覚表示ユニット(VDU),

20・・・マザーボード,

21・・・メインプロセッサ,

22・・・メインメモリ,

23・・・入出力(IO)デバイス,

24・・・トラステッドデバイス,

26・・・データバス,

27・・・制御ライン,

29・・・BIOSメモリ,

212・・・メインメモリ,

31・・・測定機能,

34・・・インターフェース回路部,

4・・・揮発性メモリ,

350・・・証明書,

352・・・完全性メトリック,

353・・・識別(ID)ラベル,

354・・・ハッシュプログラム,

355・・・私有鍵,

36,37,38・・・ポート,

501・・・測定エージェント,

502・・・デジタルオブジェクト,

503・・・検証ステートメント,

506・・・PCR,

505・・・フラグ,

601,602・・・完全性メトリック,

701,801、802、803・・・ステートメント,

732・・・補助構造体,

9・・・プラットフォーム構成レジスタ,

910・・・補助ステートメント,

1001,1002・・・完全性メトリック,

Claims (52)


  1. コンピュータプラットフォームの状態の証拠を提供する方法であって、

    前記コンピュータプラットフォームの状態を測定することであって、前記コンピュータプラットフォームの第1のデータ構造体の測定を含み、第1の測定された状態を提供することと、

    前記コンピュータプラットフォームの前記状態の証拠として、前記第1の測定された状態を使用することと、

    前記コンピュータプラットフォームにおいて、前記第1のデータ構造体を第2のデータ構造体と交換すること、

    前記コンピュータプラットフォームの前記状態を、前記第2のデータ構造体によって交換された前記第1のデータ構造体で測定し、第2の測定された状態を提供することと、

    前記第2の測定された状態が前記第1の測定された状態と同様に信頼できることを検証することと、

    前記コンピュータプラットフォームの状態の証拠として、前記第1の測定された状態の代わりに前記第2の測定された状態を用いることと

    を含む方法。

  2. 前記コンピュータプラットフォームは、

    破壊から保護されているトラステッドデバイス

    を備え、前記測定するステップ、

    前記検証するステップおよび前記代わりに用いるステップは、前記トラステッドデバイスによって実行される

    請求項1に記載の方法。

  3. 前記トラステッドデバイスは、1つ以上のプラットフォーム構成レジスタであって、

    現在のプラットフォーム構成レジスタ値を測定データと連結し、その結果をハッシュし、前記現在のプラットフォーム構成レジスタ値を前記ハッシュされた結果と交換することにより測定値が置かれる1つ以上のプラットフォーム構成レジスタ

    を備え、

    前記第1の測定された状態は、前記第1のデータ構造体のプラットフォーム構成レジスタ値から導出され、

    前記第2の測定された状態は、前記第1のデータ構造体を前記第2のデータ構造体によって交換した後のプラットフォーム構成レジスタ値から導出され、

    前記検証するステップは、

    前記第1のデータ構造体の前記プラットフォーム構成レジスタ値が、該第1のデータ構造体を前記第2のデータ構造体によって交換した後の前記プラットフォーム構成レジスタ値に関係していることを判断すること

    を含む

    請求項2に記載の方法。

  4. 前記第1の測定された状態および前記第2の測定された状態それぞれは、

    複数のプラットフォーム構成レジスタから導出された値

    を備え、

    前記検証するステップは、

    前記第1の測定された状態値が前記第2の測定された状態値に関係していることを判断すること

    を含む

    請求項3に記載の方法。

  5. 前記値は、前記複数のプラットフォーム構成レジスタの前記値を連結してハッシュすることにより、それらのプラットフォーム構成レジスタから導出される

    請求項4に記載の方法。

  6. 前記トラステッドデバイスは、プラットフォーム構成レジスタ値の或るシーケンスが、プラットフォーム構成レジスタ値の別のシーケンスと同等の信頼性を有することを確立する

    請求項3に記載の方法。

  7. 前記証拠は、

    前記コンピュータプラットフォームの前記測定された状態の現在の値が前記測定された値に対応する場合にのみ、前記測定された状態から導出された値に対してシールされている(seal)データにアクセスできるように、前記測定された状態から導出された値に対してシールされているデータ

    を備える

    請求項1〜6いずれかに記載の方法。

  8. 前記第2のデータ構造体は、複数のデータ構造体である

    請求項1〜7のいずれかに記載の方法。

  9. 前記第2のデータ構造体はヌルデータ構造体である

    請求項1〜7のいずれかに記載の方法。

  10. 前記第1のデータ構造体および前記第2のデータ構造体それぞれは、

    共通の機能上の目的で提供される第1のソフトウェアおよび第2のソフトウェア

    を備える

    請求項1〜9のいずれかに記載の方法。

  11. 前記第2のソフトウェアは、前記第1のソフトウェアよりも信頼性が高い

    請求項11に記載の方法。

  12. 前記第1の測定された状態および前記第2の測定された状態は、前記第1のソフトウェアのダイジェストおよび前記第2のソフトウェアのダイジェストそれぞれを備えるか、または、前記第1のソフトウェアのダイジェストおよび前記第2のソフトウェアのダイジェストそれぞれから導出されるかし、

    前記検証するステップは、

    前記第2のソフトウェアの前記ダイジェストが前記第1のソフトウェアの前記ダイジェストに関係していることを判断すること

    を含む

    請求項10または11に記載の方法。

  13. 前記第1のソフトウェアの前記ダイジェストと前記第2のソフトウェアの前記ダイジェストとの間の前記関係は、トラステッドソフトウェアプロバイダによって構成証明された(attest)ステートメントにより提供され、

    前記検証するステップは、

    前記ステートメントを検証すること

    を含む

    請求項12に記載の方法。

  14. 前記第1のデータ構造体および前記第2のデータ構造体それぞれは、

    共通の目的で提供される第1の鍵および第2の鍵

    を備える、

    請求項1〜9のいずれかに記載の方法。

  15. 前記第1のデータ構造体および前記第2のデータ構造体それぞれは、

    共通の目的で提供される第1の鍵および第2の鍵

    を備え、

    前記共通の目的は、前記トラステッドデバイスの構成証明(attestation)鍵としての目的である

    請求項2に記載の方法。

  16. 破壊から保護されているトラステッドデバイスを備えるコンピュータプラットフォームであって、このコンピュータプラットフォーム上のデータ構造体を測定して保証し、

    前記トラステッドデバイスは、前記コンピュータプラットフォーム上の第1のデータ構造体が、第2のデータ構造体により交換されるときに、前記第2のデータ構造体が前記第1のデータ構造体と同様に信頼できることを判断する

    コンピュータプラットフォーム。

  17. 前記トラステッドデバイスは、前記第1のデータ構造体または前記第2のデータ構造体に関する測定を含む測定から、前記コンピューティングプラットフォームの状態を測定する

    請求項16に記載のコンピュータプラットフォーム。

  18. 前記トラステッドデバイスは、

    現在のプラットフォーム構成レジスタ値を測定データと連結し、その結果をハッシュし、前記現在のプラットフォーム構成レジスタ値を前記ハッシュされた結果と交換することにより測定値が置かれる1つ以上のプラットフォーム構成レジスタ

    を備え、

    前記トラステッドデバイスは、前記第1のデータ構造体に関する測定を含む測定によって求められたプラットフォーム構成レジスタ値により表される第1のプラットフォーム状態が、前記第2のデータ構造体に関する測定を含む測定によって求められたプラットフォーム構成レジスタ値により表される第2のプラットフォーム状態と同等であるときを判断する

    請求項17に記載のコンピュータプラットフォーム。

  19. 前記トラステッドデバイスは、プラットフォーム状態の証拠を提供する

    請求項17または18に記載のコンピュータプラットフォーム。

  20. 前記トラステッドデバイスは、測定されたプラットフォーム状態から導出された値に対してデータをシールして、前記プラットフォーム状態の現在の値が前記測定された値に対応するときにのみ、前記データにアクセスできる

    請求項17〜19のいずれかに記載のコンピュータプラットフォーム。

  21. 前記第1のデータ構造体は、

    第1のソフトウェア

    を備え、

    前記第2のデータ構造体は、

    第2のソフトウェア

    を備え、

    前記第1のソフトウェアおよび前記第2のソフトウェアそれぞれは、共通の機能上の目的で提供され、これらの機能は一致している

    請求項16〜20のいずれかに記載のコンピュータプラットフォーム。

  22. 前記トラステッドデバイスは、トラステッドソフトウェアプロバイダによって構成証明されたステートメントを検証することにより、前記ステートメントから、機能的な一致および信頼を判断する

    請求項21に記載のコンピュータプラットフォーム。

  23. 識別されたソフトウェアのアップグレード品または交換品を提供する方法であって、

    前記アップグレード品または交換品について、前記ソフトウェアの性質を示すステートメント、および、前記アップグレード品または交換品が前記識別されたソフトウェアと同様に信頼できることの証明を判断することと、

    前記アップグレード品または交換品に前記ステートメントを提供することと

    を含む方法。

  24. 前記証明は、

    前記アップグレード品または交換品のトラステッドプロバイダからの構成証明

    を含む

    請求項23に記載の方法。

  25. 前記証明は、

    前記識別されたソフトウェアに関するステートメントのリンクリストの一部として前記ステートメントを識別すること、および、前記リンクリストが有効なリンクリストであることを検証すること

    を含む

    請求項23または24に記載の方法。

  26. 第2のステートメントを提供すること

    をさらに含み、

    前記ステートメントは、

    前記アップグレードソフトウェアまたは交換ソフトウェアの1つ以上のダイジェスト、または、ダイジェストから導出されたデータ

    を含み、

    前記第2のステートメントは、

    前記1つ以上の第1のダイジェストを除く前記ソフトウェアの性質の同じ表示および前記アップグレード品または交換品が前記識別されたソフトウェアと同様に信頼できることの証明

    を前記ステートメントとして有する

    請求項23〜25のいずれかに記載の方法。

  27. データ構造体タイプの識別情報と、

    前記データ構造体タイプの2つ以上のインスタンスが互いに同様に信頼できることの証明と

    を備えるデータ構造体。

  28. 前記証明は、

    前記アップグレード品または交換品のトラステッドプロバイダからの構成証明

    を含む

    請求項27に記載のデータ構造体。

  29. 前記証明は、

    前記識別されたデータ構造体タイプに関するステートメントのリンクリストの一部として前記ステートメントの識別情報

    を備える

    請求項27または28に記載のデータ構造体。

  30. 前記データ構造体は、

    前記データ構造体タイプのインスタンスの1つ以上のダイジェスト、または、ダイジェストから導出されたデータ

    をさらに備える

    請求項27〜29のいずれかに記載のデータ構造体。

  31. 前記データ構造体は、

    前記データ構造体タイプのインスタンスのダイジェストおよびダイジェストから導出されたデータ以外

    を備える

    請求項27〜30のいずれかに記載のデータ構造体。

  32. 一対のデータ構造体であって、

    前記データ構造体それぞれは、

    前記データ構造体タイプのインスタンスのダイジェストおよびダイジェストから導出されたデータ以外の前記データ構造体タイプのインスタンスの1つ以上のダイジェスト、または、ダイジェストから導出されたデータ

    を備え、

    前記データ構造体は、

    データ構造体タイプの同じ識別情報と、

    前記データ構造体タイプの2つ以上のインスタンスが互いに同様に信頼できることの証明と

    を有する

    一対のデータ構造体。

  33. 請求項27〜32のいずれか1項に記載のデータ構造体または一対のデータ構造体であって、

    前記データ構造体タイプは、同等の機能のソフトウェアである

    データ構造体または一対のデータ構造体。

  34. 請求項27〜32のいずれか1項に記載のデータ構造体または一対のデータ構造体であって、

    前記データ構造体タイプは鍵である

    データ構造体または一対のデータ構造体。

  35. 破壊から保護されているトラステッドデバイスを備えるコンピューティングプラットフォーム上の完全性メトリックを提供する方法であって、

    請求項27〜34のいずれかに記載のデータ構造体の少なくとも一部を測定することと、

    前記測定を前記トラステッドデバイスに記録することと

    を含む方法。

  36. 前記トラステッドデバイスは、

    1つ以上のプラットフォーム構成レジスタであって、現在のプラットフォーム構成レジスタ値を測定データと連結し、その結果をハッシュし、前記現在のプラットフォーム構成レジスタ値を前記ハッシュされた結果と交換することにより測定値が置かれる、1つ以上のプラットフォーム構成レジスタ

    を備え、

    前記トラステッドデバイスは、プラットフォーム構成レジスタ値の或るシーケンスが、プラットフォーム構成レジスタ値の別のシーケンスと同等の信頼性を有することを確立する

    請求項35に記載の方法。

  37. 前記データ構造体は、データ構造体のリンクリストの一部を形成し、

    前記測定するステップは、

    前記リンクリストの最初のデータ構造体および最後のデータ構造体について、前記データ構造体の少なくとも一部を測定すること

    を含む

    請求項35または36に記載の方法。

  38. データ構造体の部分的なリンクリストを提供することと、

    前記部分的なリンクリストがデータ構造体の全リンクリストと同等の信頼性を有することを実証することと

    をさらに含む請求項37に記載の方法。

  39. 前記データ構造体が、

    そのデータ構造体タイプの2つ以上のインスタンスが互いに同様に信頼できることの有効な証明であることの検証が成功したか否かを別々に記録すること

    をさらに含む

    請求項35〜38のいずれかに記載の方法。

  40. コンピューティングプラットフォームによって使用されるソフトウェア状態を決定する方法であって、

    前記コンピューティングプラットフォームにソフトウェア状態の表示を要求することと、

    ソフトウェアプロバイダによって構成証明され、前記コンピューティングプラットフォームによって検証されたソフトウェアタイプの1つ以上の表示を受信することと

    を含む方法。

  41. ソフトウェアタイプの表示について、前記ソフトウェアタイプのインスタンスの複数のダイジェストまたはダイジェストの導出物を受信することによって、プライバシーが保護される

    請求項40に記載の方法。

  42. ソフトウェアタイプの表示について、前記ソフトウェアタイプのインスタンスの複数のダイジェストも該ソフトウェアタイプのインスタンスから直接導出された他の資料も受信しないことによって、プライバシーが保護される

    請求項40に記載の方法。

  43. コンピューティングプラットフォームがソフトウェア状態を報告するための方法であって、

    前記コンピューティングプラットフォームのソフトウェア状態の表示の要求を受け取ることと、

    ソフトウェアプロバイダによって構成証明され、前記コンピューティングプラットフォームによって検証されたソフトウェアタイプの1つ以上の表示を受信することと

    を含む方法。

  44. ソフトウェアタイプの表示について、前記ソフトウェアタイプのインスタンスの複数のダイジェストまたはダイジェストの導出物を提供することによって、プライバシーが保護される

    請求項43に記載の方法。

  45. ソフトウェアタイプの表示について、前記ソフトウェアタイプのインスタンスのダイジェストも前記ソフトウェアタイプのインスタンスから直接導出された他の資料も提供しないことによって、プライバシーが保護される

    請求項43に記載の方法。

  46. 仮想トラステッドコンピューティングプラットフォームを第1のトラステッドコンピューティングプラットフォームから、第2のトラステッドコンピューティングプラットフォームへマイグレーションする方法であって、

    前記第1のトラステッドコンピューティングプラットフォームおよび前記第2のトラステッドコンピューティングプラットフォームはそれぞれ、

    破壊から保護されているトラステッドデバイス

    を備え、

    前記トラステッドコンピューティングプラットフォームのコンピューティング環境の態様を測定し、

    前記仮想トラステッドコンピューティングプラットフォームは、

    仮想トラステッドデバイスと、

    前記仮想トラステッドデバイスが保護される仮想コンピューティング環境と

    を備え、

    前記仮想トラステッドプラットフォームの信頼は、前記仮想トラステッドプラットフォームをホスティングする前記トラステッドプラットフォームの前記トラステッドデバイスに起源を有し、

    前記方法は、

    前記第2のトラステッドコンピューティングプラットフォームがトラステッドコンピューティングプラットフォームであることを判断する、前記第1のトラステッドコンピューティングプラットフォームにおける第1のマイグレーションプロセスと、

    前記仮想トラステッドプラットフォームのデータ構造体を、前記第2のトラステッドコンピューティングプラットフォームの特性で更新する前記第1のマイグレーションプロセスと、

    前記仮想トラステッドプラットフォームの機密を、前記第1のトラステッドコンピューティングプラットフォームから前記第2のトラステッドコンピューティングプラットフォームへマイグレーションする前記第1のマイグレーションプロセスと、

    前記仮想トラステッドを前記第2のトラステッドコンピューティングプラットフォームへ転送して、前記仮想トラステッドプラットフォームのオペレーションを再開することと

    を含む方法。

  47. 前記第1のトラステッドコンピューティングプラットフォームおよび前記第2のトラステッドコンピューティングプラットフォームの少なくとも一方は、それ自体が仮想トラステッドコンピューティングプラットフォームである

    請求項46に記載の方法。

  48. 前記仮想トラステッドプラットフォームのデータ構造体を更新する前記プロセスは、請求項35〜39のいずれか1項に記載の方法に従って実行される、

    請求項46または47に記載の方法。

  49. コンピュータプラットフォームの状態の証拠を提供する方法であって、

    前記コンピュータプラットフォーム上に存在する1つまたは2つ以上のデータ構造体を検証して、前記検証の証拠を取得することと、

    前記1つ以上のデータ構造体の前記検証の前記証拠を、前記コンピュータプラットフォームの前記状態の証拠として提供することと

    を含む方法。

  50. 前記1つ以上のデータ構造体は、

    前記コンピュータプラットフォーム上で実行される1つ以上のプログラム

    を備える

    請求項49に記載の方法。

  51. 前記1つ以上のデータ構造体は、

    前記コンピュータプラットフォーム上で保持される1つまたは2つ以上のプログラム

    を備える

    請求項49に記載の方法。

  52. 前記コンピュータプラットフォームは、破壊から保護されているトラステッドデバイスを備えるトラステッドコンピュータプラットフォームであり、

    前記トラステッドデバイスは、データ構造体の前記検証並びに証拠の前記取得および提供を行う

    請求項49〜51のいずれかに記載の方法。
JP2008502491A 2005-03-22 2006-03-22 トラステッドデータのための方法、デバイス、およびデータ構造体 Expired - Fee Related JP4732508B2 (ja)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
GB0505746.8 2005-03-22
GB0505746A GB2424494A (en) 2005-03-22 2005-03-22 Methods, devices and data structures for trusted data
GB0510558.0 2005-05-25
GB0510558A GB0510558D0 (en) 2005-05-25 2005-05-25 Methods, devices and data structures for trusted data
GB0512370.8 2005-06-17
GB0512370A GB0512370D0 (en) 2005-06-17 2005-06-17 Methods, devices and data structures for trusted data
GB0516534A GB0516534D0 (en) 2005-08-12 2005-08-12 Methods, devices and data structures for trusted data
GB0516534.5 2005-08-12
GB0521836A GB0521836D0 (en) 2005-10-27 2005-10-27 Methods, devices and data structures for trusted data
GB0521836.7 2005-10-27
GB0522598A GB0522598D0 (en) 2005-11-07 2005-11-07 Methods, devices and data structures for trusted data
GB0522598.2 2005-11-07
PCT/GB2006/050063 WO2006100522A1 (en) 2005-03-22 2006-03-22 Methods, devices and data structures for trusted data

Publications (2)

Publication Number Publication Date
JP2008535049A true JP2008535049A (ja) 2008-08-28
JP4732508B2 JP4732508B2 (ja) 2011-07-27

Family

ID=36540193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008502491A Expired - Fee Related JP4732508B2 (ja) 2005-03-22 2006-03-22 トラステッドデータのための方法、デバイス、およびデータ構造体

Country Status (4)

Country Link
US (2) US8539587B2 (ja)
EP (2) EP2194476B1 (ja)
JP (1) JP4732508B2 (ja)
WO (1) WO2006100522A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226158A (ja) * 2007-03-15 2008-09-25 Ricoh Co Ltd 情報処理装置、ソフトウェア更新方法及び画像処理装置
JP2009301429A (ja) * 2008-06-16 2009-12-24 Ricoh Co Ltd ソフトウェア改ざん検知方法、機器及び画像処理装置
WO2010041462A1 (ja) * 2008-10-10 2010-04-15 パナソニック株式会社 情報処理装置、情報処理方法、情報処理プログラム及び集積回路
JP2012501120A (ja) * 2008-11-04 2012-01-12 西安西▲電▼捷通▲無▼綫▲網▼絡通信股▲分▼有限公司 三要素のピア認証(TePA)に基づくトラステッドプラットフォームの検証方法
JP2012508931A (ja) * 2008-11-14 2012-04-12 マイクロソフト コーポレーション モバイル装置とコンピュータを組み合わせ、安全な個人ごとの環境を生成する装置および方法
JP2013054769A (ja) * 2012-11-14 2013-03-21 Ricoh Co Ltd 情報処理装置、ソフトウェア更新方法及びプログラム
JP2013254506A (ja) * 2013-07-18 2013-12-19 Ricoh Co Ltd 情報処理装置、真正性確認方法、及び記録媒体
JP2016509806A (ja) * 2013-01-22 2016-03-31 アマゾン・テクノロジーズ、インコーポレイテッド 安全な仮想マシン移行
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613921B2 (en) 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US8074262B2 (en) * 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US8108668B2 (en) * 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
US8385551B2 (en) * 2006-12-22 2013-02-26 Telefonaktiebolaget L M Ericsson (Publ) Highly available cryptographic key storage (HACKS)
US8572400B2 (en) * 2007-03-26 2013-10-29 Intel Corporation Enhanced digital right management framework
GB0707150D0 (en) * 2007-04-13 2007-05-23 Hewlett Packard Development Co Dynamic trust management
US8249257B2 (en) * 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM
US8259948B2 (en) * 2007-12-29 2012-09-04 Intel Corporation Virtual TPM key migration using hardware keys
US8161285B2 (en) * 2008-09-26 2012-04-17 Microsoft Corporation Protocol-Independent remote attestation and sealing
FR2941804A1 (fr) * 2009-01-30 2010-08-06 Proton World Internat Nv Verification d'authenticite d'une mise a jour d'un circuit electronique
JP5443498B2 (ja) 2009-02-18 2014-03-19 パナソニック株式会社 情報処理装置および情報処理方法
US9026803B2 (en) * 2009-11-30 2015-05-05 Hewlett-Packard Development Company, L.P. Computing entities, platforms and methods operable to perform operations selectively using different cryptographic algorithms
GB2482652B (en) * 2010-05-21 2016-08-24 Hewlett Packard Development Co Lp Extending integrity measurements in a trusted device using a policy register
US8516551B2 (en) 2010-07-28 2013-08-20 Intel Corporation Providing a multi-phase lockstep integrity reporting mechanism
CN103124973B (zh) 2010-09-22 2015-09-30 国际商业机器公司 证明引导过程期间交互式组件的使用
US8869264B2 (en) * 2010-10-01 2014-10-21 International Business Machines Corporation Attesting a component of a system during a boot process
US20120131334A1 (en) 2010-11-18 2012-05-24 International Business Machines Corporation Method for Attesting a Plurality of Data Processing Systems
GB2521101B (en) 2010-11-18 2019-01-30 Ibm A method for attesting a plurality of data processing systems
US20120159634A1 (en) * 2010-12-15 2012-06-21 International Business Machines Corporation Virtual machine migration
US9690941B2 (en) * 2011-05-17 2017-06-27 Microsoft Technology Licensing, Llc Policy bound key creation and re-wrap service
WO2012156586A2 (en) * 2011-05-18 2012-11-22 Nokia Corporation Secure boot with trusted computing group platform registers
US20130061328A1 (en) * 2011-09-06 2013-03-07 Broadcom Corporation Integrity checking system
WO2013101236A1 (en) * 2011-12-31 2013-07-04 Intel Corporation Securing device environment for trust provisioning
US9245143B2 (en) * 2012-02-09 2016-01-26 Microsoft Technology Licensing, Llc Security policy for device data
JP5998566B2 (ja) * 2012-03-27 2016-09-28 富士通株式会社 移動制御プログラム、移動制御方法および制御装置
US9367688B2 (en) 2012-06-22 2016-06-14 Intel Corporation Providing geographic protection to a system
US8973095B2 (en) 2012-06-25 2015-03-03 Intel Corporation Authenticating a user of a system via an authentication image mechanism
GB2513826A (en) 2012-06-29 2014-11-12 Ibm Trusted boot of a virtual machine
US9064109B2 (en) 2012-12-20 2015-06-23 Intel Corporation Privacy enhanced key management for a web service provider using a converged security engine
US9503268B2 (en) 2013-01-22 2016-11-22 Amazon Technologies, Inc. Securing results of privileged computing operations
CN105247528B (zh) 2013-06-27 2018-05-18 英特尔公司 连续多因素认证
US10073964B2 (en) 2015-09-25 2018-09-11 Intel Corporation Secure authentication protocol systems and methods
US10057223B2 (en) 2015-09-26 2018-08-21 Intel Corporation Data protection keys
CN107689938A (zh) * 2016-08-04 2018-02-13 捷而思股份有限公司 伪造指令自动过滤系统、协同运作系统、与相关的指令核实电路
US10177910B2 (en) * 2016-08-31 2019-01-08 Microsoft Technology Licensing, Llc Preserving protected secrets across a secure boot update
WO2019177563A1 (en) 2018-03-12 2019-09-19 Hewlett-Packard Development Company, L.P. Hardware security
US10936722B2 (en) * 2018-04-18 2021-03-02 Nuvoton Technology Corporation Binding of TPM and root device
WO2020139513A1 (en) * 2018-12-28 2020-07-02 Apple Inc. Providing verified claims of user identity
EP4014052A4 (en) * 2019-08-12 2023-08-23 Voyomotive, LLC METHOD AND APPARATUS FOR DETECTION AND NEUTRALIZATION OF INTRUSIONS ON A NETWORK BUS IN A CONTROLLER ZONE
US11954236B2 (en) 2019-08-20 2024-04-09 Hewlett-Packard Development Company, L.P. Authenticity verification
CN115001766B (zh) * 2022-05-24 2023-07-04 四川大学 一种高效的多节点批量远程证明方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013899A (ja) * 2002-06-03 2004-01-15 Internatl Business Mach Corp <Ibm> トラステッド・コンピューティング・プラットフォーム・システムの記憶装置に格納されたデータへのアクセス制御
JP2004164491A (ja) * 2002-11-15 2004-06-10 Matsushita Electric Ind Co Ltd プログラム更新方法およびサーバ
JP2004280284A (ja) * 2003-03-13 2004-10-07 Sony Corp 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
JP2005527019A (ja) * 2002-02-22 2005-09-08 インテル コーポレイション マルチトークンのシール及びシール解除
JP2005527900A (ja) * 2002-04-15 2005-09-15 インテル コーポレイション データセンタへのプラットフォームの内包検証
JP2005301550A (ja) * 2004-04-09 2005-10-27 Internatl Business Mach Corp <Ibm> プラットフォーム構成測定装置、プログラム及び方法、プラットフォーム構成認証装置、プログラム及び方法、プラットフォーム構成証明装置、プログラム及び方法、並びに、プラットフォーム構成開示装置、プログラム及び方法

Family Cites Families (224)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4747040A (en) 1985-10-09 1988-05-24 American Telephone & Telegraph Company Dual operating system computer
US5038281A (en) 1986-09-19 1991-08-06 International Business Machines Corporation Acceleration of system interrupts between operating systems in guest-host relationship
US4799156A (en) 1986-10-01 1989-01-17 Strategic Processing Corporation Interactive market management system
EP0304033A3 (de) 1987-08-19 1990-07-04 Siemens Aktiengesellschaft Verfahren zum Diagnostizieren einer von Computerviren befallenen Datenverarbeitungsanlage
US4918653A (en) 1988-01-28 1990-04-17 International Business Machines Corporation Trusted path mechanism for an operating system
GB2222899B (en) 1988-08-31 1993-04-14 Anthony Morris Rose Securing a computer against undesired write operations or from a mass storage device
US4984272A (en) 1988-11-30 1991-01-08 At&T Bell Laboratories Secure file handling in a computer operating system
US4926476A (en) 1989-02-03 1990-05-15 Motorola, Inc. Method and apparatus for secure execution of untrusted software
US4962533A (en) 1989-02-17 1990-10-09 Texas Instrument Incorporated Data protection for computer systems
US5278973A (en) 1989-03-27 1994-01-11 Unisys Corporation Dual operating system computer
US6044205A (en) 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US5048085A (en) 1989-10-06 1991-09-10 International Business Machines Corporation Transaction system security method and apparatus
US5029206A (en) 1989-12-27 1991-07-02 Motorola, Inc. Uniform interface for cryptographic services
US6507909B1 (en) 1990-02-13 2003-01-14 Compaq Information Technologies Group, L.P. Method for executing trusted-path commands
US5261104A (en) 1990-03-22 1993-11-09 International Business Machines Flexible computer initialization
US5325529A (en) 1990-05-18 1994-06-28 Compaq Computer Corporation External boot information loading of a personal computer
US5032979A (en) 1990-06-22 1991-07-16 International Business Machines Corporation Distributed security auditing subsystem for an operating system
US5204961A (en) 1990-06-25 1993-04-20 Digital Equipment Corporation Computer network operating with multilevel hierarchical security with selectable common trust realms and corresponding security protocols
US5136711A (en) 1990-10-17 1992-08-04 Ast Research System for multiple access hard disk partitioning
US5414860A (en) 1991-01-29 1995-05-09 International Business Machines Incorporated Power management initialization for a computer operable under a plurality of operating systems
US5283828A (en) 1991-03-01 1994-02-01 Hughes Training, Inc. Architecture for utilizing coprocessing systems to increase performance in security adapted computer systems
EP0510244A1 (en) 1991-04-22 1992-10-28 Acer Incorporated Method and apparatus for protecting a computer system from computer viruses
JPH06214670A (ja) 1991-04-29 1994-08-05 Intel Corp コンピュータ装置およびそれを初期化する方法
US5504814A (en) 1991-07-10 1996-04-02 Hughes Aircraft Company Efficient security kernel for the 80960 extended architecture
US5694590A (en) 1991-09-27 1997-12-02 The Mitre Corporation Apparatus and method for the detection of security violations in multilevel secure databases
JPH0736175B2 (ja) 1991-10-11 1995-04-19 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムのシステム構成設定方法、データ処理システム、及びデータ処理システム用拡張ユニット
AU3777593A (en) 1992-02-26 1993-09-13 Paul C. Clark System for protecting computers via intelligent tokens or smart cards
JP2986299B2 (ja) 1992-04-15 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション 周辺装置接続検出システム
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5359659A (en) 1992-06-19 1994-10-25 Doren Rosenthal Method for securing software against corruption by computer viruses
US5235642A (en) 1992-07-21 1993-08-10 Digital Equipment Corporation Access control subsystem and method for distributed computer system using locally cached authentication credentials
US5361359A (en) 1992-08-31 1994-11-01 Trusted Information Systems, Inc. System and method for controlling the use of a computer
US5341422A (en) 1992-09-17 1994-08-23 International Business Machines Corp. Trusted personal computer system with identification
US5379342A (en) 1993-01-07 1995-01-03 International Business Machines Corp. Method and apparatus for providing enhanced data verification in a computer system
US5440723A (en) 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
US5497494A (en) 1993-07-23 1996-03-05 International Business Machines Corporation Method for saving and restoring the state of a CPU executing code in protected mode
US5548763A (en) 1993-07-26 1996-08-20 International Business Machines Corporation Desk top computer system having multi-level power management
US5444850A (en) 1993-08-04 1995-08-22 Trend Micro Devices Incorporated Method and apparatus for controlling network and workstation access prior to workstation boot
US5680452A (en) 1993-10-18 1997-10-21 Tecsec Inc. Distributed cryptographic object method
US5771354A (en) 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
US5404532A (en) 1993-11-30 1995-04-04 International Business Machines Corporation Persistent/impervious event forwarding discriminator
US5666516A (en) 1993-12-16 1997-09-09 International Business Machines Corporation Protected programmable memory cartridge having selective access circuitry
US5491750A (en) 1993-12-30 1996-02-13 International Business Machines Corporation Method and apparatus for three-party entity authentication and key distribution using message authentication codes
US5504910A (en) 1994-02-02 1996-04-02 Advanced Micro Devices, Inc. Power management unit including software configurable state register and time-out counters for protecting against misbehaved software
WO1995027249A1 (en) 1994-04-05 1995-10-12 Intel Corporation Method and appartus for monitoring and controlling programs in a network
US5572590A (en) 1994-04-12 1996-11-05 International Business Machines Corporation Discrimination of malicious changes to digital information using multiple signatures
GB9408405D0 (en) 1994-04-28 1994-06-22 Int Computers Ltd High availibilty computer system
CA2191331C (en) 1994-05-26 2005-12-20 Mark Stephen Anderson Secure computer architecture
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5530758A (en) 1994-06-03 1996-06-25 Motorola, Inc. Operational methods for a secure node in a computer network
US5483649A (en) 1994-07-01 1996-01-09 Ybm Technologies, Inc. Personal computer security system
US6091835A (en) 1994-08-31 2000-07-18 Penop Limited Method and system for transcribing electronic affirmations
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US5870723A (en) 1994-11-28 1999-02-09 Pare, Jr.; David Ferrin Tokenless biometric transaction authorization method and system
US5748964A (en) 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
US5495569A (en) 1994-12-30 1996-02-27 Compaq Computer Corp. Circuit for ensuring that a local interrupt controller in a microprocessor is powered up active
US5555373A (en) 1995-02-06 1996-09-10 International Business Machines Corporation Inactivity monitor for trusted personal computer system
DE19604803A1 (de) 1995-02-10 1996-10-10 Meidensha Electric Mfg Co Ltd Vorrichtung zur Systemzustandsüberwachung
ATE441897T1 (de) 1995-02-13 2009-09-15 Intertrust Tech Corp Systeme und verfahren zur verwaltung von gesicherten transaktionen und zum schutz von elektronischen rechten
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6157719A (en) 1995-04-03 2000-12-05 Scientific-Atlanta, Inc. Conditional access system
US6246767B1 (en) 1995-04-03 2001-06-12 Scientific-Atlanta, Inc. Source authentication of download information in a conditional access system
US5619571A (en) 1995-06-01 1997-04-08 Sandstrom; Brent B. Method for securely storing electronic records
NO302388B1 (no) 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
US5754646A (en) 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
US5757915A (en) 1995-08-25 1998-05-26 Intel Corporation Parameterized hash functions for access control
US5787175A (en) 1995-10-23 1998-07-28 Novell, Inc. Method and apparatus for collaborative document control
CA2187855A1 (en) 1995-12-12 1997-06-13 Albert Joseph Marcel Bissonnette Method and device for securing computers
US5943423A (en) 1995-12-15 1999-08-24 Entegrity Solutions Corporation Smart token system for secure electronic transactions and identification
US5774717A (en) 1995-12-15 1998-06-30 International Business Machines Corporation Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts
JPH09186570A (ja) 1995-12-28 1997-07-15 Fujitsu Ltd 差動型電流スイッチ回路及びこれを用いたd/a変換回路並びに過渡応答低減方法
US5706431A (en) 1995-12-29 1998-01-06 At&T System and method for distributively propagating revisions through a communications network
CA2242596C (en) 1996-01-11 2012-06-19 Mrj, Inc. System for controlling access and distribution of digital property
US6012080A (en) 1996-03-27 2000-01-04 Lucent Technologies Inc. Method and apparatus for providing enhanced pay per view in a video server
US5815665A (en) 1996-04-03 1998-09-29 Microsoft Corporation System and method for providing trusted brokering services over a distributed network
KR100198382B1 (ko) 1996-05-07 1999-06-15 윤종용 멀티-부팅 기능을 갖는 컴퓨터 장치
US5809145A (en) 1996-06-28 1998-09-15 Paradata Systems Inc. System for distributing digital information
US5903732A (en) 1996-07-03 1999-05-11 Hewlett-Packard Company Trusted gateway agent for web server programs
US5867646A (en) 1996-07-12 1999-02-02 Microsoft Corporation Providing secure access for multiple processes having separate directories
US5819087A (en) 1996-07-19 1998-10-06 Compaq Computer Corporation Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events
US5815702A (en) 1996-07-24 1998-09-29 Kannan; Ravi Method and software products for continued application execution after generation of fatal exceptions
FR2752655B1 (fr) 1996-08-20 1998-09-18 France Telecom Procede et equipement pour affecter a un programme de television deja en acces conditionnel un acces conditionnel complementaire
US5841869A (en) 1996-08-23 1998-11-24 Cheyenne Property Trust Method and apparatus for trusted processing
US5692124A (en) 1996-08-30 1997-11-25 Itt Industries, Inc. Support of limited write downs through trustworthy predictions in multilevel security of computer network communications
US6510418B1 (en) 1996-09-04 2003-01-21 Priceline.Com Incorporated Method and apparatus for detecting and deterring the submission of similar offers in a commerce system
US5889989A (en) 1996-09-16 1999-03-30 The Research Foundation Of State University Of New York Load sharing controller for optimizing monetary cost
US5844986A (en) 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5825879A (en) 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
US6006332A (en) 1996-10-21 1999-12-21 Case Western Reserve University Rights management system for digital media
IL119486A0 (en) 1996-10-24 1997-01-10 Fortress U & T Ltd Apparatus and methods for collecting value
US6519623B1 (en) 1996-10-31 2003-02-11 International Business Machines Corporation Generic semaphore for concurrent access by multiple operating systems
US5969632A (en) 1996-11-22 1999-10-19 Diamant; Erez Information security method and apparatus
US5966732A (en) 1996-12-02 1999-10-12 Gateway 2000, Inc. Method and apparatus for adding to the reserve area of a disk drive
US6367012B1 (en) 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
US6023765A (en) 1996-12-06 2000-02-08 The United States Of America As Represented By The Secretary Of Commerce Implementation of role-based access control in multi-level secure systems
US6400823B1 (en) 1996-12-13 2002-06-04 Compaq Computer Corporation Securely generating a computer system password by utilizing an external encryption algorithm
GB9626241D0 (en) 1996-12-18 1997-02-05 Ncr Int Inc Secure data processing method and system
US5845068A (en) 1996-12-18 1998-12-01 Sun Microsystems, Inc. Multilevel security port methods, apparatuses, and computer program products
DE69734968T2 (de) 1996-12-20 2006-07-27 International Business Machines Corp. Vermittlungssystem mit verteilten Elementen zur Verbindung mit Leitungsanpassern und mit Mehrfachübertragungsmöglichkeit
US6374250B2 (en) 1997-02-03 2002-04-16 International Business Machines Corporation System and method for differential compression of data from a plurality of binary sources
US5953502A (en) 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
US5922074A (en) 1997-02-28 1999-07-13 Xcert Software, Inc. Method of and apparatus for providing secure distributed directory services and public key infrastructure
US5903721A (en) 1997-03-13 1999-05-11 cha|Technologies Services, Inc. Method and system for secure online transaction processing
EP0970411B1 (en) 1997-03-27 2002-05-15 BRITISH TELECOMMUNICATIONS public limited company Copy protection of data
US5937159A (en) 1997-03-28 1999-08-10 Data General Corporation Secure computer system
WO1998044415A1 (fr) 1997-04-02 1998-10-08 Matsushita Electric Industrial Co., Ltd. Equipement servant a ajouter des informations de detection d'erreurs
US5887163A (en) 1997-04-04 1999-03-23 Compaq Computer Corporation Method and apparatus for providing dual booting capabilities to a computer system
US6028933A (en) 1997-04-17 2000-02-22 Lucent Technologies Inc. Encrypting method and apparatus enabling multiple access for multiple services and multiple transmission modes over a broadband communication network
US6275848B1 (en) 1997-05-21 2001-08-14 International Business Machines Corp. Method and apparatus for automated referencing of electronic information
US6091956A (en) 1997-06-12 2000-07-18 Hollenberg; Dennis D. Situation information system
US6513156B2 (en) 1997-06-30 2003-01-28 Sun Microsystems, Inc. Interpreting functions utilizing a hybrid of virtual and native machine instructions
US6272631B1 (en) 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
US5958016A (en) 1997-07-13 1999-09-28 Bell Atlantic Network Services, Inc. Internet-web link for access to intelligent network service control
EP0893751A1 (en) 1997-07-18 1999-01-27 Irdeto B.V. Integrated circuit and method for secure data processing by means of this integrated circuit
EP0895148B1 (en) 1997-07-31 2003-09-17 Siemens Aktiengesellschaft Software rental system and method for renting software
US6304970B1 (en) 1997-09-02 2001-10-16 International Business Mcahines Corporation Hardware access control locking
US6185678B1 (en) 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6081894A (en) 1997-10-22 2000-06-27 Rvt Technologies, Inc. Method and apparatus for isolating an encrypted computer system upon detection of viruses and similar data
EP0926605A1 (en) 1997-11-19 1999-06-30 Hewlett-Packard Company Browser system
US6098133A (en) 1997-11-28 2000-08-01 Motorola, Inc. Secure bus arbiter interconnect arrangement
US5991399A (en) 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
GB2336918A (en) 1998-01-22 1999-11-03 Yelcom Limited Apparatus and method for allowing connection to a network
US6378072B1 (en) 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
US5987605A (en) 1998-02-28 1999-11-16 Hewlett-Packard Co. Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device
US6360282B1 (en) 1998-03-25 2002-03-19 Network Appliance, Inc. Protected control of devices by user applications in multiprogramming environments
US6175917B1 (en) 1998-04-23 2001-01-16 Vpnet Technologies, Inc. Method and apparatus for swapping a computer operating system
US6408391B1 (en) 1998-05-06 2002-06-18 Prc Inc. Dynamic system defense for information warfare
US6219788B1 (en) 1998-05-14 2001-04-17 International Business Machines Corporation Watchdog for trusted electronic content distributions
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6505300B2 (en) 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6473800B1 (en) 1998-07-15 2002-10-29 Microsoft Corporation Declarative permission requests in a computer system
US6100738A (en) 1998-12-22 2000-08-08 Philips Electronics North America Corporation High-speed current switch with complementary stages
US6289462B1 (en) 1998-09-28 2001-09-11 Argus Systems Group, Inc. Trusted compartmentalized computer operating system
US6308264B1 (en) 1998-09-30 2001-10-23 Phoenix Technologies Ltd. Dual use master boot record
US6591229B1 (en) 1998-10-09 2003-07-08 Schlumberger Industries, Sa Metrology device with programmable smart card
FI106823B (fi) 1998-10-23 2001-04-12 Nokia Mobile Phones Ltd Tiedonhakujärjestelmä
US7194092B1 (en) 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6330670B1 (en) * 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6609199B1 (en) 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6820063B1 (en) 1998-10-26 2004-11-16 Microsoft Corporation Controlling access to content based on certificates and access predicates
US6393556B1 (en) 1998-10-30 2002-05-21 Intel Corporation Apparatus and method to change processor privilege without pipeline flush
US6799270B1 (en) 1998-10-30 2004-09-28 Citrix Systems, Inc. System and method for secure distribution of digital information to a chain of computer system nodes in a network
US6138239A (en) 1998-11-13 2000-10-24 N★Able Technologies, Inc. Method and system for authenticating and utilizing secure resources in a computer system
US6530024B1 (en) 1998-11-20 2003-03-04 Centrax Corporation Adaptive feedback security system and method
US6330669B1 (en) 1998-11-30 2001-12-11 Micron Technology, Inc. OS multi boot integrator
US6266774B1 (en) 1998-12-08 2001-07-24 Mcafee.Com Corporation Method and system for securing, managing or optimizing a personal computer
US6343280B2 (en) 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
US6694434B1 (en) 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
EP1026641B1 (en) 1999-02-01 2013-04-24 International Business Machines Corporation Method and system for establishing a trustworthy connection between a user and a terminal
EP1030237A1 (en) 1999-02-15 2000-08-23 Hewlett-Packard Company Trusted hardware device in a computer
WO2000048063A1 (en) 1999-02-15 2000-08-17 Hewlett-Packard Company Trusted computing platform
US20030191957A1 (en) 1999-02-19 2003-10-09 Ari Hypponen Distributed computer virus detection and scanning
US6405318B1 (en) 1999-03-12 2002-06-11 Psionic Software, Inc. Intrusion detection system
US20020012432A1 (en) 1999-03-27 2002-01-31 Microsoft Corporation Secure video card in computing device having digital rights management (DRM) system
US7136838B1 (en) 1999-03-27 2006-11-14 Microsoft Corporation Digital license and method for obtaining/providing a digital license
US6775779B1 (en) 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US6889325B1 (en) 1999-04-28 2005-05-03 Unicate Bv Transaction method and system for data networks, like internet
US7716109B1 (en) 1999-04-29 2010-05-11 Citibank, N.A. System and method for web trading
EP1050803B1 (en) 1999-05-03 2007-01-17 STMicroelectronics S.A. Guarded computer instruction execution
US6697948B1 (en) 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
US6678827B1 (en) 1999-05-06 2004-01-13 Watchguard Technologies, Inc. Managing multiple network security devices from a manager device
US6772331B1 (en) 1999-05-21 2004-08-03 International Business Machines Corporation Method and apparatus for exclusively pairing wireless devices
US6446203B1 (en) 1999-05-24 2002-09-03 International Business Machines Corporation Method and system for selecting from multiple boot code images to be loaded in a data processing system
US6618769B1 (en) 1999-05-27 2003-09-09 Sun Microsystems, Inc. Module-by-module verification
EP1055990A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company Event logging in a computing platform
EP1056010A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company Data integrity monitoring in trusted computing entity
EP1056014A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company System for providing a trustworthy user interface
US6609248B1 (en) 1999-06-30 2003-08-19 Microsoft Corporation Cross module representation of heterogeneous programs
US6463474B1 (en) 1999-07-02 2002-10-08 Cisco Technology, Inc. Local authentication of a client at a network device
US6948069B1 (en) 1999-07-02 2005-09-20 Time Certain, Llc Method and system for determining and maintaining trust in digital image files with certifiable time
US6539425B1 (en) 1999-07-07 2003-03-25 Avaya Technology Corp. Policy-enabled communications networks
US6892307B1 (en) 1999-08-05 2005-05-10 Sun Microsystems, Inc. Single sign-on framework with trust-level mapping to authentication requirements
EP1076279A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US6211583B1 (en) 1999-09-13 2001-04-03 Motorola, Inc. High speed current switch
EP1085396A1 (en) 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US6853988B1 (en) 1999-09-20 2005-02-08 Security First Corporation Cryptographic server with provisions for interoperability between cryptographic systems
US6393412B1 (en) 1999-09-23 2002-05-21 Peter Deep Method for allowing users to purchase professional services in a private chat room through a service brokerage via the internet
US6487601B1 (en) 1999-09-30 2002-11-26 International Business Machines Corporation Dynamic mac allocation and configuration
US6697944B1 (en) 1999-10-01 2004-02-24 Microsoft Corporation Digital content distribution, transmission and protection system and method, and portable device for use therewith
US6868406B1 (en) 1999-10-18 2005-03-15 Stamps.Com Auditing method and system for an on-line value-bearing item printing system
US6785015B1 (en) 1999-11-12 2004-08-31 Hewlett-Packard Development Company, L.P. System and method for monitoring a computer system process or peripheral
US6650902B1 (en) 1999-11-15 2003-11-18 Lucent Technologies Inc. Method and apparatus for wireless telecommunications system that provides location-based information delivery to a wireless mobile unit
US7213005B2 (en) 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
US6757824B1 (en) 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US6701440B1 (en) 2000-01-06 2004-03-02 Networks Associates Technology, Inc. Method and system for protecting a computer using a remote e-mail scanning device
US7181608B2 (en) 2000-02-03 2007-02-20 Realtime Data Llc Systems and methods for accelerated loading of operating systems and application programs
US6529728B1 (en) 2000-02-10 2003-03-04 Motorola, Inc. Method and apparatus in a wireless communication system for selectively providing information specific to a location
US20010037450A1 (en) 2000-03-02 2001-11-01 Metlitski Evgueny A. System and method for process protection
US6654800B1 (en) 2000-03-14 2003-11-25 Rieger, Iii Charles J. System for communicating through maps
GB2361153A (en) 2000-04-04 2001-10-10 Global Knowledge Network Ltd User security, privacy and anonymity on the Internet
US6622018B1 (en) 2000-04-24 2003-09-16 3Com Corporation Portable device control console with wireless connection
US6671248B2 (en) 2000-05-18 2003-12-30 Matsushita Electric Industrial Co., Ltd. Apparatus and method of controlling laser power
US6931550B2 (en) 2000-06-09 2005-08-16 Aramira Corporation Mobile application security system and method
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US7669238B2 (en) 2000-06-21 2010-02-23 Microsoft Corporation Evidence-based application security
US6716101B1 (en) 2000-06-28 2004-04-06 Bellsouth Intellectual Property Corporation System and method for monitoring the location of individuals via the world wide web using a wireless communications network
US6678833B1 (en) 2000-06-30 2004-01-13 Intel Corporation Protection of boot block data and accurate reporting of boot block contents
US6681304B1 (en) 2000-06-30 2004-01-20 Intel Corporation Method and device for providing hidden storage in non-volatile memory
GB0020441D0 (en) 2000-08-18 2000-10-04 Hewlett Packard Co Performance of a service on a computing platform
GB0020371D0 (en) 2000-08-18 2000-10-04 Hewlett Packard Co Apparatus and method for establishing trust
US6931545B1 (en) 2000-08-28 2005-08-16 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments
US6757830B1 (en) 2000-10-03 2004-06-29 Networks Associates Technology, Inc. Detecting unwanted properties in received email messages
US6414635B1 (en) 2000-10-23 2002-07-02 Wayport, Inc. Geographic-based communication service system with more precise determination of a user's known geographic location
GB0102515D0 (en) 2001-01-31 2001-03-21 Hewlett Packard Co Network adapter management
GB2372595A (en) 2001-02-23 2002-08-28 Hewlett Packard Co Method of and apparatus for ascertaining the status of a data processing environment.
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US7676430B2 (en) 2001-05-09 2010-03-09 Lenovo (Singapore) Ptd. Ltd. System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset
US7076804B2 (en) 2001-05-11 2006-07-11 International Business Machines Corporation Automated program resource identification and association
US20020184520A1 (en) 2001-05-30 2002-12-05 Bush William R. Method and apparatus for a secure virtual machine
US7280658B2 (en) 2001-06-01 2007-10-09 International Business Machines Corporation Systems, methods, and computer program products for accelerated dynamic protection of data
US6948073B2 (en) 2001-06-27 2005-09-20 Microsoft Corporation Protecting decrypted compressed content and decrypted decompressed content at a digital rights management client
US20030018892A1 (en) 2001-07-19 2003-01-23 Jose Tello Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer
EP1282027A1 (en) 2001-07-30 2003-02-05 Hewlett-Packard Company Trusted platform evaluation
US6993648B2 (en) 2001-08-16 2006-01-31 Lenovo (Singapore) Pte. Ltd. Proving BIOS trust in a TCPA compliant system
US7093132B2 (en) 2001-09-20 2006-08-15 International Business Machines Corporation Method and apparatus for protecting ongoing system integrity of a software product using digital signatures
US6965816B2 (en) 2001-10-01 2005-11-15 Kline & Walker, Llc PFN/TRAC system FAA upgrades for accountable remote and robotics control to stop the unauthorized use of aircraft and to improve equipment management and public safety in transportation
US20030084436A1 (en) 2001-10-30 2003-05-01 Joubert Berger System and method for installing applications in a trusted environment
EP1509830A2 (en) * 2002-05-02 2005-03-02 Shieldip, Inc. Method and apparatus for protecting information and privacy
US7634807B2 (en) 2003-08-08 2009-12-15 Nokia Corporation System and method to establish and maintain conditional trust by stating signal of distrust
EP1738321A4 (en) 2004-04-01 2009-01-21 Waverules Llc SYSTEMS AND METHODS FOR ELECTRONIC TRANSACTION USING AUTOMATIC BOOK UPDATES
US8006100B2 (en) * 2004-06-10 2011-08-23 Oracle America, Inc. Enhancing trusted platform module performance
US20060026417A1 (en) * 2004-07-30 2006-02-02 Information Assurance Systems L.L.C. High-assurance secure boot content protection

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527019A (ja) * 2002-02-22 2005-09-08 インテル コーポレイション マルチトークンのシール及びシール解除
JP2005527900A (ja) * 2002-04-15 2005-09-15 インテル コーポレイション データセンタへのプラットフォームの内包検証
JP2004013899A (ja) * 2002-06-03 2004-01-15 Internatl Business Mach Corp <Ibm> トラステッド・コンピューティング・プラットフォーム・システムの記憶装置に格納されたデータへのアクセス制御
JP2004164491A (ja) * 2002-11-15 2004-06-10 Matsushita Electric Ind Co Ltd プログラム更新方法およびサーバ
JP2004280284A (ja) * 2003-03-13 2004-10-07 Sony Corp 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
JP2005301550A (ja) * 2004-04-09 2005-10-27 Internatl Business Mach Corp <Ibm> プラットフォーム構成測定装置、プログラム及び方法、プラットフォーム構成認証装置、プログラム及び方法、プラットフォーム構成証明装置、プログラム及び方法、並びに、プラットフォーム構成開示装置、プログラム及び方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226158A (ja) * 2007-03-15 2008-09-25 Ricoh Co Ltd 情報処理装置、ソフトウェア更新方法及び画像処理装置
JP2009301429A (ja) * 2008-06-16 2009-12-24 Ricoh Co Ltd ソフトウェア改ざん検知方法、機器及び画像処理装置
JP5457362B2 (ja) * 2008-10-10 2014-04-02 パナソニック株式会社 情報処理装置、情報処理方法、情報処理プログラム及び集積回路
WO2010041462A1 (ja) * 2008-10-10 2010-04-15 パナソニック株式会社 情報処理装置、情報処理方法、情報処理プログラム及び集積回路
US8732445B2 (en) 2008-10-10 2014-05-20 Panasonic Corporation Information processing device, information processing method, information processing program, and integrated circuit
JP2012501120A (ja) * 2008-11-04 2012-01-12 西安西▲電▼捷通▲無▼綫▲網▼絡通信股▲分▼有限公司 三要素のピア認証(TePA)に基づくトラステッドプラットフォームの検証方法
US8533806B2 (en) 2008-11-04 2013-09-10 China Iwncomm Co., Ltd. Method for authenticating a trusted platform based on the tri-element peer authentication(TEPA)
JP2012508931A (ja) * 2008-11-14 2012-04-12 マイクロソフト コーポレーション モバイル装置とコンピュータを組み合わせ、安全な個人ごとの環境を生成する装置および方法
JP2013054769A (ja) * 2012-11-14 2013-03-21 Ricoh Co Ltd 情報処理装置、ソフトウェア更新方法及びプログラム
JP2016509806A (ja) * 2013-01-22 2016-03-31 アマゾン・テクノロジーズ、インコーポレイテッド 安全な仮想マシン移行
US9729517B2 (en) 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US11228449B2 (en) 2013-01-22 2022-01-18 Amazon Technologies, Inc. Secure interface for invoking privileged operations
JP2013254506A (ja) * 2013-07-18 2013-12-19 Ricoh Co Ltd 情報処理装置、真正性確認方法、及び記録媒体

Also Published As

Publication number Publication date
US8539587B2 (en) 2013-09-17
US20080282348A1 (en) 2008-11-13
JP4732508B2 (ja) 2011-07-27
EP1866825A1 (en) 2007-12-19
EP2194476A1 (en) 2010-06-09
US20130239222A1 (en) 2013-09-12
EP2194476B1 (en) 2014-12-03
WO2006100522A1 (en) 2006-09-28
US9111119B2 (en) 2015-08-18

Similar Documents

Publication Publication Date Title
JP4732508B2 (ja) トラステッドデータのための方法、デバイス、およびデータ構造体
US8850212B2 (en) Extending an integrity measurement
JP5455318B2 (ja) 動的信頼管理
Datta et al. A logic of secure systems and its application to trusted computing
JP4732513B2 (ja) ソフトウェア・ベースのセキュリティ・コプロセッサを提供する方法および装置
CN101523401B (zh) 用户秘密在计算平台上的安全使用
US8689318B2 (en) Trusted computing entities
Kühn et al. Realizing property-based attestation and sealing with commonly available hard-and software
US20100115625A1 (en) Policy enforcement in trusted platforms
CN101147154B (zh) 用于可信数据的方法、设备和数据结构
EP4283498A2 (en) Virtual environment type validation for policy enforcement
Sailer et al. The role of TPM in enterprise security
Yao et al. Building Secure Firmware
AT&T
Sisinni Verification of Software Integrity in Distributed Systems
Bajer Securing and Hardening Embedded Linux Devices-case study based on NXP i. MX6 Platform
Yao et al. Configuration
WO2020027159A1 (ja) 情報処理装置、検証方法および検証プログラム
Lioy et al. Trusted computing
Cabiddu et al. Building a Trusted Environment for Security Applications

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

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: 20110405

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: 20110420

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

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4732508

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees