JP4775744B2 - 信頼できる共存環境をラウンチする方法およびプログラム - Google Patents

信頼できる共存環境をラウンチする方法およびプログラム Download PDF

Info

Publication number
JP4775744B2
JP4775744B2 JP2007273185A JP2007273185A JP4775744B2 JP 4775744 B2 JP4775744 B2 JP 4775744B2 JP 2007273185 A JP2007273185 A JP 2007273185A JP 2007273185 A JP2007273185 A JP 2007273185A JP 4775744 B2 JP4775744 B2 JP 4775744B2
Authority
JP
Japan
Prior art keywords
runtime environment
environment
trusted
processing system
runtime
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.)
Expired - Fee Related
Application number
JP2007273185A
Other languages
English (en)
Other versions
JP2009104258A (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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to JP2007273185A priority Critical patent/JP4775744B2/ja
Publication of JP2009104258A publication Critical patent/JP2009104258A/ja
Application granted granted Critical
Publication of JP4775744B2 publication Critical patent/JP4775744B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、コンピュータセキュリティの分野に関する。より具体的には、本発明は、2つ以上の信頼できる、別個の共存環境をラウンチする方法および装置に関する。
コンピュータ上に保存されるデータは、金銭的な意味合いにおいて、および/または競争するまたはビジネスを行う能力に関連して高い価値を有しうる。データは、復号化コードおよび秘密処理といった業務上の秘密、および社会保障番号およびクレジットカード番号といったその他の機密ビジネスデータまたは個人情報を含みうる。本質的に異なる処理システムにおいてこのようなデータのセキュリティを高めることを目的として、非営利の業界規格組織であるトラステッドコンピューティンググループ(TCG)は、より安全なコンピューティング環境のための仕様を作成および採用した。TCG仕様は、たとえば、TCGトラステッドプラットフォームモジュール(TPM)仕様バージョン1.2リビジョン94、パートIデザイン原理(2006年3月29日)、およびTCG主仕様バージョン1.1b(TCG主仕様バージョン1.1bの日付)を含む。
TCG仕様は、信頼できる処理システム、またはプラットフォームを、一般的に、特定目的のために特定の方法で挙動する処理システムとして定義する。信頼できる処理システムは、データ暗号化、復号化、および保存といったデータセキュリティ機能を供給しうる。信頼できる処理システムの重要な構成要素はTPMであり、これは、インテグリティの喪失を検出するための暗号化ハッシング、非認可のデータ開示を防止するための公開および秘密鍵暗号化、および伝送情報を認証するためのデジタル署名を行いうるモジュールである。ハードウェア内にルートされうるTCG保護ストレージメカニズムは、鍵、秘密、およびハッシュ値を保護しうる。
信頼できる処理システムのインテグリティのメトリクスは、処理システムが、機密データへのアクセスを有する場合に、安全または「信頼できる」ハードウェアおよびソフトウェア設定で動作するか否かに関する判断を容易にする。インテグリティメトリクスは、製造時、および機密データをその設定に封印する時点といった設定が信頼できる時点における処理システムのランタイム設定を計測することによって確立しうる。さらに、信頼性の計測および証明は、認証されたまたは信頼できるコードを使用してハードウェアにおいて実施される。プロセッサ、チップセット、およびTPMといったハードウェアは、特定のトランザクションは認証コードによってのみ開始され、また、インテグリティメトリクスの計測によってそのコードが改ざんされていないまたは侵害されていないことを検証(verify)しうることを保証する機能を含みうる。信頼性は、一般的に、OSをブートする前にデータおよびコードの保護コアを確立することによって処理システムのブートまたはリセット時に確立される。処理システムの電源が落とされるまたはリセットされる度に、保護コアは、処理システムの電源が落とされるまたはリセットされるときにコードを変更することによって保護データを侵害する攻撃者の能力を最小限にするよう再初期化または認証される。OSをブートする前に保護コアを確立することも、セキュリティプロトコルを改ざんする攻撃者の能力を最小限にするセキュリティ手段である。
一般的な処理システムにおいて、ファームウェアは、処理システムの電源オン/リセットと処理システム上のオペレーティングシステム(OS)のブートとの間のシステムのプレOSまたはプレブート、オペレーションを制御する機械命令を供給する。次にOSは、処理システムの主な機能を引き継ぐ。たとえば、一部のシステムでは、仮想マシンモニタ(VMM)またはハイパーバイザコードは、中央演算処理ユニット(CPU)、メモリ、ハードドライブ、および他のコンポーネントといったシステムのリソース全体の制御を行いうる。VMMは、仮想環境をラウンチおよび管理し、また、各仮想環境においてマイクロソフト(登録商標)Windows(登録商標)、Linux(登録商標)、Unix(登録商標)などの高レベルOSをラウンチすることができる。
ファームウェアはさらに、OSがロードされた後に、特定のハードウェアイベントおよび/またはシステムインタラプトを処理するオペレーションといったポストブートオペレーションと呼ばれる特定のオペレーションを制御しうる。より具体的には、ファームウェアは、集合的に基本入力/出力システム(BIOS)と呼ばれるルーチンのセットによってプレブートおよびポストブートオペレーションを処理しうる。従って、BIOSは、システムのハードウェアコンポーネントと、OSといったソフトウェアコンポーネントとの間のインタフェースを供給する。BIOSに代わる幾つかの新しい代替品には、拡張可能ファームウェアインタフェース(EFI)仕様のバージョン1.10(2002年12月1日)、および統合EFI(UFEI)仕様のバージョン2.0(2006年1月31日)が含まれる。
保護コアを確立した後、BIOS、EFI、またはUEFIといったファームウェアは、処理システムの現在のランタイム設定を計測し、現在のランタイム設定をTPM内にある信頼できる設定のランタイムと比較することができる。現在のランタイム設定のインテグリティが侵害またはそうでなければ変更されている場合、機密データへのアクセスは、拒否または無視されることができる。さらに、信頼できる処理システムは、アクセス時のランタイム設定が信頼できる設定のランタイムに十分に類似して信頼できる場合、機密データへのアクセスを許可しうる。
保護コアは、データおよびコードに対しハードウェアに基づいたセキュリティを提供するが、より強いセキュリティが求められている。ネットワークおよびインターネットを介して提供されるサービスが浸透することによって、不正ユーザやソフトウェアウィルスだけでなく互いからの処理の保護および実行がますます必要となってきている。換言すれば、処理システムにおける単一の保護コアまたはパーティションは不十分である。さらに、現在、処理システムにおけるプロセッサコアの数は多くなる傾向に動いているが、現在のOSソフトウェアは、8個のプロセッサコア以上に容易に拡張することができない。
現在のソリューションでは、ファームウェアにより管理される保護コアをラウンチし、次に、VMMを介して追加パーティションをラウンチおよび確保している。VMMは、論理レベルでのプラットフォームパーティショニングの制御を提供する低レベルOSである。VMMは、幾つかのプロセッサコアにわたっての多くのOSランタイムを利用することができ、これは、異なるパーティションでの幾つかのランタイム環境を提供する。しかし、VMMは、最大で8つのコアだけを処理することができ、追加パーティションのセキュリティは、ファームウェアではなく低レベルOSであるVMMに依存する。VMMは、ファームウェアおよびたとえばTPMではなく追加パーティションに対するソフトウェアロードを制御する。従って、機密データは、攻撃者がハードディスクを奪いVMMにハッキングした場合、侵害されうる。
[先行技術文献]
[特許文献]
[特許文献1]韓国特許 第100989977号
[特許文献2]米国特許出願公開 第2003−0061494号明細書
[特許文献3]米国特許出願公開 第2005−210467号明細書
[特許文献4]米国特許出願公開 第2005−0138370号明細書
[特許文献5]米国特許出願公開 第2006−0026418号明細書
[特許文献6]米国特許出願公開 第2006−0256106号明細書
[特許文献7]米国特許出願公開 第2007−0094719号明細書
[特許文献8]米国特許出願公開 第2007−0168913号明細書
[特許文献9]米国特許出願公開 第2008−0077993号明細書
[特許文献10]米国特許 第7,266,810号
[特許文献11]米国特許 第7,543,283号
[特許文献12]米国特許 第7,774,588号
本発明の複数の面は、以下の詳細な説明を読み、同様の参照符号は同様の要素を示しうる添付図面を参照することにより明らかになろう。
以下は、添付図面に示す本発明の実施形態の詳細な説明である。実施形態は、本発明を明白に伝えるよう詳細に示してある。しかし、提供する詳細の度合いは、予想される実施形態の変形を制限することを意図しておらず、むしろ、請求項に定義する本発明の精神および範囲内のすべての変形、等価物、および代替案を対象とすることを意図する。以下の詳細な説明は、当業者にそのような実施形態を明らかにすることを目的とする。
一般的に、2つ以上の信頼できる本質的に異なる共存環境をラウンチする方法および装置を検討している。実施形態は、2つ以上の信頼できる共存環境をプレOS空間に高い確実さでラウンチしうる。各信頼できる環境またはパーティションは、コードおよびデータの保存および実行を容易にするようハードウェアにより実行される分離スキームを介して他の処理システムリソースから分離される指定ハードウェアリソースでありうる。多くの実施形態では、システムは、組み込みおよびメインパーティションを確立するためにパーティションマネジャをラウンチしうる。組み込みまたは隔離されたパーティションは、メインOSには可視ではなく、また、ホスト側で重要なオペレーション、I/Oオフローディング、ソフトの周辺装置、プラットフォーム管理容易性、および/またはエラー予測といった様々なアプリケーションに使用されうる。たとえば、組み込みパーティションは、プレミウムコンテンツダウンロードを検査しなければならない個人ビデオレコーダまたはセットトップボックスといった重要なオペレーションをホストするために、たとえば、EFI、組み込みLinux(登録商標)、マイクロソフト(登録商標)Windows(登録商標)コンパクトエディション(WinCE)、他のリアルタイムオペレーティングシステム(RTOS)などのランタイムを含みうる。組み込みパーティションのラウンチにおける信頼性は、ランタイム環境のインテグリティメトリクスを、その組み込みパーティションの信頼できるランタイム環境のインテグリティ計測値と比較することによって確立される。
信頼性の確立後、組み込みパーティションのコンテンツは開封され、追加の組み込みパーティションは、メインパーティションの起動の前にラウンチされうる。メインパーティションは、汎用OS(たとえば、様々なWindows(登録商標)ベースのOS、Linux(登録商標)ベースのOSなどのうちの1つ)と、1つ以上のユーザアプリケーション(たとえば、ウェブサーバ、ビジネスアプリケーションなど)をホストしうる。信頼性は、たとえば、ファームウェアを介して認証コードを実行し、また、たとえば、トラステッドプラットフォームモジュール(TPM)を介してオペレーション時に認証コードおよび信頼できるハードウェアを使用して重要なコマンドの信頼性を計測することによって、メインパーティションのラウンチにおいても確立されうる。
一部の実施形態では、組み込みパーティションおよびメインパーティションは、インタラクとしない場合がある。すなわち、組み込みパーティションにより実行されるオペレーションは、メインパーティションにおけるオペレーションとは無関係でありうる。たとえば、組み込みパーティションは、ネットワーク回路遮断器またはハードウェアファイアウォールといった「ハードウェアデバイス」のように動作しうる。
しかし、他の実施形態では、メインパーティションは、パーティション間ブリッジ(IPB)といった通信路を介して組み込みパーティションと通信可能に結合されうる。IPBは、2つの信頼できるパーティションまたはサブシステムが、暗号化鍵といった期待されるセキュリティポリシーに従って通信することを可能にする信頼できる通信路でありうる。幾つかの実施形態では、IPBは、共有メモリバッファを含みうる。
幾つかの実施形態は、パーティションを設定するようパーティションマネジャを介してプラットフォームリソースレイヤ(PRL)を実施し、プロセッサユニット、ランダムアクセスメモリ(RAM)ユニット、周辺デバイス、集積デバイスなどといったリソースを他のパーティションから隠す。一部の実施形態では、パーティションマネジャは、たとえば、BIOS、EFI、UEFI、または他のファームウェアにより生成される詳細設定および電源インタフェース(ACPI)表を変更することによってハードウェアにより実行される分離スキームに従ってリソースを隠しうる。更なる実施形態では、パーティションマネジャは、たとえば、デバイスハイドレジスタまたはシステムの入力/出力(I/O)コントローラハブ(ICH)における他のロケーションを更新することによりOSからリソースを隠しうる。他の実施形態では、組み込みパーティションローダ(EPローダ)コードがパーティションマネジャにより実行され、EPローダコードは必要に応じてリソースを隠しうる。また、EPローダコードの認証後、保護データを隠されたリソース内にロードする。
以下の詳細な説明の一部は、バス、ハードウェア、ソフトウェア、および他の論理に関して特定の設定およびプロトコルを参照して実施形態を説明するが、当業者は、実施形態は実質的に同じ機能を達成するために他の設定で、また、他のプロトコルに従って実施されうることを認識しよう。
図面を参照するに、図1は、ランタイム環境を有するソフトウェアレイヤ110と、様々なハードウェアリソースを有するハードウェアレイヤ150の形の処理システム100の実施形態を示す。システム100は、分散型コンピュータシステム、スーパーコンピュータ、高性能コンピュータシステム、コンピュータクラスタ、メインフレームコンピュータ、ミニコンピュータ、クライアント−サーバシステム、パーソナルコンピュータ(PC)、ワークステーション、サーバ、ポータブルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末(PDA)といった手持ち式デバイス、または情報を処理または伝送するための他のデバイスといったコンピュータシステムである。同様の実施形態は、たとえば、ポータブル音楽プレイヤまたはポータブルビデオプレイヤといったエンターテインメントデバイス、スマートフォンまたは他のセルラ式電話機、電話機、デジタルビデオカメラ、デジタルスチルカメラ、外部ストレージデバイスなどとして実施されうる。更なる実施形態は、サーバシステムといった大規模のサーバ構成を実施する。
ソフトウェアレイヤ110に関して、システム100は、パーティションマネジャ180または159を介して、組み込みパーティション138、140、および142といった1つ以上の信頼できる共存組み込みパーティションを確立しうる。パーティションマネジャ180または159は、システムブートまたはリセットに応答して、メインパーティション111内に仮想マシンモニタ(VMM)136をラウンチする前に組み込みパーティションを確立しうる。
組み込みパーティション138、140、および142といった組み込みパーティションは、組み込みパーティションが使用しなければ使用されないまたはあまり効率よくなくVMM136により使用されうるプロセッサコアを使用しうる。たとえば、プロセッサコアの数が8を超える処理システムでは、VMM136は、8つのコアがVMM136に対してメインパーティション111に割り当てられ、残りのコアは組み込みパーティションに割り当てられうるよう8を超えるコアを効率よく使用することができない場合がある。
多くの実施形態では、パーティションマネジャ159または180は、メインパーティション111から組み込みパーティション138、140、および142を隠しうる、または隔離しうる。特に、パーティションマネジャ159または180は、組み込みパーティション138、140、および142のハードウェアリソースを隠し、それにより、これらのリソースがVMM136によって発見できないようにしうる。
組み込みパーティション138、140、および142は、メインパーティション111から独立して動作しうるが、一部の実施形態は、1つ以上の組み込みパーティションとメインパーティション111との間に通信路を提供する。本実施形態では、組み込みパーティション138といった組み込みパーティションが、パーティション間ブリッジ(IPB)139を介してメインパーティション111と通信可能に結合されうる。IPB139は、セキュアされたまたはセキュアされない通信路でありえ、また、入力/出力(I/O)およびメモリコントローラハブといったハードウェアを介して実施されるか、または、共有メモリバッファ173でありうる。
組み込みパーティション138、140、および142といった組み込みパーティションは、様々な機能を実行しうる。たとえば、一部の実施形態では、組み込みパーティション142は隔離され、また、プレミウムコンテンツダウンロードを検査しなければならない個人ビデオレコーダまたはセットトップボックスといった重要なオペレーションをホストしうる。そのような実施形態では、組み込みパーティション142内で実行する保護コンテンツ144の処理は、そのプレミウムコンテンツを認可しうる。このような処理は、ホスト保護されたアクセス(HPA)186のコンテンツを介して、または、ネットワークインタフェースカード(NIC)182を介するリモートシステムとの安全な通信を介して内部でプレミウムコンテンツを認可しうる。
組み込みパーティション142は、組み込みパーティションに存在しうるソフトウェアレイヤのタイプの例を示す。具体的には、組み込みパーティション142は、保護コンテンツ144、組み込みシステム145、およびEPローダ146を含む。保護コンテンツ144は、組み込みパーティション142のランタイム環境のインテグリティメトリクスの検証後にHPA186から復号化されるコンテンツでありうる。組み込みパーティション142のランタイム環境は、組み込みパーティション142に関連付けられるハードウェア設定およびソフトウェア設定を含みうる。たとえば、組み込みパーティション142のランタイム環境は、EPローダ146、および、組み込みパーティション142に排他的に割り当てられるプロセッサユニット(PU)157およびEPメモリ170といったハードウェアリソースを含みうる。一部の実施形態では、パーティションマネジャ180またはパーティションマネジャ159といったパーティションマネジャは、別個のEPローダ146が必要でないように組み込みシステム145をロードする。
EPローダ146は、I/Oデバイス184から組み込みシステム145をロードし、組み込みシステム145に制御を引き渡ししうる。組み込みシステム145は、組み込みパーティション142内のオペレーションをホストする組み込みLinux(登録商標)、マイクロソフト(登録商標)Windows(登録商標)コンパクトエディション(WinCE)、他のリアルタイムオペレーティングシステム(RTOS)を含みうる。他の実施形態では、組み込みシステム145は、特定の機能を実行するよう設計される特殊ソフトウェアを含みうる。たとえば、組み込みシステム145は、グラフィクスアクセレレータカードをエミュレートするソフトウェアを含みうる。
組み込みシステム145は、組み込みパーティション142にロードされ、組み込みパーティション142により実行されるすべてのまたは実質的にすべてのサービスまたは機能を供給する命令のモノリシックパッケージから構成されうる。この開示の目的として、組み込みシステムは、従来のOSにより一般的に供給される種類のサービス(たとえば、タスクスケジューリング、エラー処理、I/Oサービスなど)、およびシステムファームウェアにより一般的に供給されるサービス(たとえば、ハードウェアコンポーネントの発見および初期化、これらのコンポーネントに対するソフトウェアインタフェースの提供など)を供給するソフトウェアである。組み込みシステムはさらに、OS上で実行されるプログラムまたはアプリケーションにより一般的に供給されるサービスも供給しうる。
組み込みシステム145がロードされると、EPローダ146は、HPA186または他の保護データストレージ内の保存されうる保護コンテンツ144へのアクセスをリクエストしうる。トラステッドプラットフォームモジュール(TPM)190は、HPA186内に保存される保護コンテンツ144にアクセスするための暗号化鍵を保持し、また、暗号化鍵を引き渡す前に組み込みパーティション142のランタイム環境のインテグリティメトリクスを検証しうる。TPM190は、システム100の各組み込みパーティションに対する暗号化鍵と、メインパーティション111内の保護コア130の確立に関連付けられる1つ以上の鍵を含みうる。
多くの実施形態では、TPM190は、組み込みパーティション142のランタイム環境のインテグリティメトリクスを計測することによって組み込みパーティション142用の鍵のリクエストに対して応答しうる。一部の実施形態では、TPM190は、システム100のインテグリティメトリクスの追加の計測も行いうる。インテグリティメトリクスは、たとえば、組み込みパーティション142およびより一般的にはシステム100のランタイム環境のイメージのハッシュを含みうる。組み込みパーティション142の計測されたまたは現在のインテグリティメトリクスは、プラットフォーム設定レジスタ7(PCR7)内に与えられうる。PCR7は、多くの実施形態に使用されうる。なぜならPCR7は、そのコンテンツは、製造制御または使用に設計されるレジスタだからである。TPM190は、PCR7のコンテンツを使用してインテグリティメトリクスをハッシングすることによって付与に応答しうる。
PCR7は、組み込みパーティション142用のランタイム環境の信頼できるイメージのハッシュを含みうる。たとえば、ハードウェアレイヤ150は、製造業者により承認された環境(MAE)であることを示しうる信号またはショートを識別するようMAE識別子162を含みうる。TPM190は、製造業者により承認された環境の存在を認識し、また、PCR7内への組み込みパーティション142のインテグリティメトリクスの付与に応答して鍵を開封するのではなく、TPM190は、インテグリティメトリクスを使用して組み込みパーティション142の鍵を生成および封印しうる。一部の実施形態では、EPローダ146は、その鍵または対応する非対称鍵を使用してHPA186内の保護コンテンツ144を暗号化しうる。
MAE識別子162が、システム100は製造業者により承認された環境であることを示さない場合、組み込みパーティション142のインテグリティメトリクスは、組み込みパーティション142のランタイム環境が信頼にたるか、または、そうでなければ認証されるべきかを決定するようPCR7のコンテンツを使用してハッシングされうる。組み込みパーティション142のランタイム環境のハッシュが環境のインテグリティを検証すると、TPM190はHPA186内の保護コンテンツ144の鍵をEPローダ146に供給する。EPローダ146は、次に、HPA186内に保存されるデータおよび処理の一部または全部をEPメモリ170内にロードしうる。その一方で、ハッシュが、ランタイム環境は侵害されていることを示すと、TPM190は、鍵を開封しない。さらに、パーティションマネジャ159または180は、組み込みパーティション138および140を実質的に同時に同様に、または、所定のシーケンスに従ってラウンチしうる。
メインパーティション111は、VMM136といった信頼できるOSカーネルを有する保護されたコア130と、VM112および114といった1つ以上の仮想マシン(VM)をホストしうる。他の実施形態では、信頼できるOSカーネルは、OS118の信頼できる一部分でありえ、また、メインパーティション111内にはOSランタイム環境は1つしかない場合もある。
パーティションマネジャ159または180は、TPM190を介してVMM136のコードを認証するか、または、ランタイム環境のインテグリティメトリクスを計測して、そのインテグリティメトリクスをTPM190内に保存される信頼できるインテグリティメトリクスと比較することによって、メインパーティション111の保護コア130のランタイム環境のラウンチにおいて信頼性を確立しうる。たとえば、メインパーティション111のハードウェア環境は、組み込みパーティションにリソースを割り当てした後に利用可能な残りのハードウェアリソースでありうる。パーティションマネジャ159または180は、TPM190を介してVMM136を認証し、データ132および処理134を復号化するためにTPM190から鍵を受信しうる。データ132および処理134は、復号化されMPメモリ172内にロードされるまでHPA186内に存在しうる。
VMM136は、論理レベルでのプラットフォームパーティショニングの制御を提供する低レベルOSである。具体的には、VMM136は、VM112および114といった多数のVMを確立し管理しうる。VMM136は、追加のパーティションに対するソフトウェアロードを制御する。多くの実施形態では、VMM136は、仮想TPMを介してコードおよびランタイム環境を認証することによりVMにおけるセキュリティを提供しうる。仮想TPMは、データ132および処理134として保護コア130内に存在しうる。一部の実施形態では、組み込みパーティション140といった1つ以上の組み込みパーティションは、1つ以上のVMを有するVMMをホストしうる。そのような実施形態では、組み込みパーティション140は、システム100内において共存するメインパーティション111からは別個の信頼できる処理システムのようにみえうるが、ハードウェアに基づいた分離スキームによってメインパーティション111からは分離される。このような実施形態は、OS118といった汎用OSが容易に拡張できる処理コア数より多くの処理コア数を効率よく使用しうる。
VM114を設定後、VMM136は、基本入力−出力システム(BIOS)120をロードしうる。VMM136は、VM114のインテグリティを検証し、ソフトウェアローディングに関する制御をBIOS120に渡しうる。BIOS120は、OS118をラウンチしうる。各VMは、幾つかのコア158にわたってのOSランタイムを使用することができ、これは、異なるパーティションにおける幾つかのランタイム環境を提供する。たとえば、VM114は、汎用OS118(たとえば、Windows(登録商標)ベースのOS、Linux(登録商標)ベースのOSなどのうちの1つ)と、1つ以上のユーザアプリケーション116(たとえば、ウェブサーバ、ビジネスアプリケーションなど)をホストしうる。VM112は、同様のソフトウェアをホストしうる。
ハードウェアレイヤ150は、プロセッサ152と、ランダムアクセスメモリ(RAM)164、読み出し専用メモリ(ROM)174、ネットワークインタフェースカード(NIC)182、入力/出力(I/O)デバイス184、およびTPM190に結合されるコントローラハブ160を含む。プロセッサ152は、インテル(登録商標)のPentium(登録商標)プロセッサ、Xeon(登録商標)プロセッサ、Itanium(登録商標)プロセッサ、Celeron(登録商標)プロセッサなどのシステム用の1つ以上のプロセッサを表しうる。本実施形態では、プロセッサ152は、処理ユニット(PU)154、処理ユニット156、および処理ユニット157といった複数の処理ユニットを含む。処理ユニット154、156、および157は、組み込みパーティション138、140、および142への物理的または論理的な処理能力の割り当てである。一部の実施形態では、たとえば、処理ユニット154は、組み込みパーティション138により使用される専用の1つ以上のコアを表しうる。処理ユニット156は、ハイパースレッドといった論理ユニットを表しうる。メインパーティション111は一般的に、コアが組み込みパーティション138、140、および142に対して隠されないまたは隔離されない範囲でコア158を管理しうる。
コア158は、パーティションマネジャ159をマイクロコードとして含みうる。なお、多くの実施形態は、パーティションマネジャ180といったシステム100のファームウェア176におけるパーティションマネジャか、または、パーティションマネジャ159といったプロセッサのマイクロコードにおけるパーティションマネジャのいずれかを含む。一方で、一部の実施形態は両方を含みうる。パーティションマネジャ180の使用は、計測の信頼性の静的ルート(Static Root of Trust for Measurement:SRTM)としばしば呼ばれ、パーティションマネジャ159の使用は、計測の信頼性の動的ルート(Dynamic Root of Trust for Measurement:DRTM)としばしば呼ばれる。
SRTMについて、コンピュータシステムまたはリブートにより開始される信頼の連鎖(a chain of trust)。システムのプロセッサ152は既知の状態にある。第1のコードが実行され、パーティションマネジャローダ178といった計測の信頼性のコアルート(Core Root of Trust for Measurement:CRTM)は、パーティションマネジャ180である実行されるべき次のコードを計測する。侵害されたまたは未知のコードの認識といったことにより信頼が失われた場合、システム100は、システム100内の信頼を再び得るためにリブートまたはリセットされうる。
その一方で、DRTMは、プロセッサ152のコアを既知状態におくために新しいプロセッサ命令を使用する。実行されるコードは、特殊プラットフォーム設定レジスタ(PCR)に適応されるべきTPMに送信される。このレジスタは、DRTM初期化状態にある場合にだけ、また、プロセッサ152の1つ以上のコアだけによってアクセス可能である。最初の計測DRTMコードは、ハードウェアにより保護される。さらに、DRTMでは、信頼が失われた場合、システム100は、リブートなしで信頼の連鎖を再スタートすることができる。
プロセッサ152は、バスおよびコントローラハブ160を介してRAM164、ROM174、NIC182、I/Oデバイス184、およびTPM190に通信可能に結合する。プロセッサ152は、1つ以上のビデオコントローラ、SCSIコントローラ、ネットワークコントローラ、汎用シリアルバス(USB)コントローラ、I/Oポート、カメラなどの入力デバイスといったハードウェアレイヤ150の追加のコンポーネント(図示せず)とも通信可能に結合されうる。さらに、ハードウェアレイヤ150は、複数のシステムコンポーネントを通信可能に結合するための周辺コンポーネントインターコネクト(PCI)ルートブリッジなどといった1つ以上のブリッジを含みうる。本願で使用するように「バス」という用語は、2つ以上のデバイスにより共有される径路、およびポイントツーポイント径路を含みうる。
コントローラハブ160は、インテル(登録商標)の975X Expressチップセット、865Pチップセット、845Gチップセット、855GMチップセット、E7525チップセット、E8870チップセット、852GMEチップセット、537EPチップセット、854チップセットなどといったチップセットを表しうる。たとえば、コントローラハブ160は、メモリコントローラハブおよびI/Oコントローラハブを含みうる。
本実施形態では、コントローラハブ160は、隠しレジスタ161およびMAE識別子162を含む。隠しレジスタ161は、組み込みパーティションに対しハードウェアレイヤ150のハードウェアリソースを隠すよう使用されるレジスタを含みうる。たとえば、各組み込みパーティション用のランダムアクセスメモリ(EPメモリ166、168、および170)は、隠しレジスタ161内に1ビットまたは他の指示子を保存することにより隠されうる。他の機能に使用されるIPB173およびハードウェアも隠されうる。たとえば、EPメモリ166を隠すことは、組み込みパーティション138以外の任意のパーティションが、RAM164のその部分の存在を認識することを阻止しうる。
一部の実施形態では、コントローラハブ160は、特定のデバイスに対して、これらのデバイスを隠すために設定サイクルを阻止する設定構成を使用しうる。更なる実施形態では、メインパーティション111用のACPIパラメータが、OS118から処理ユニットおよびRAM164の1つ以上の部分を隠すよう使用されうる一方で、組み込みパーティション138、140、および142といった組み込みパーティション用のACPIパラメータは、組み込みシステム145といった組み込みシステムから処理ユニットおよびRAM164の他の部分を隠すよう使用されうる。デバイス隠しレジスタおよび関連のトピックについての更なる詳細は、インテル(登録商標)のI/Oコントローラハブ6(ICH6)ファミリーデータシート(2004年1月(「ICH6データシート」))から入手しうる。ICH6データシートは、http://www.intel.com/design/chipset/datashts/301473.htmから入手しうる。ACPIパラメータおよび関連のトピックについての更なる詳細は、詳細設定および電源インタフェース仕様のリビジョン3.0a(2005年12月30日、(「ACPI仕様」))から入手しうる。ACPI仕様は、www.acpi.info/spec.htmから入手しうる。
代替実施形態では、1つ以上のコンポーネント内の他のデータストレージ構成を使用して、処理システムにおけるデバイスを無効にするまたは隠しうる。また、他の技術を使用して処理ユニット154、156、および157、およびRAM164の一部を隠しうる。
RAM164は、アプリケーション、ドライバ、および他のコードといったアプリケーションに関連するデータおよび命令を保存することによってプロセッサ152による命令の実行をサポートするシステムメモリでありうる。RAM164は、1つ以上のメモリモジュールから構成されうる。また、コントローラハブ160は、RAM164の特定の領域にアドレスをマッピングする論理を有するメモリコントローラを含みうる。RAM164は、EPメモリ166、168、および170、MPメモリ172、およびIPB173を含む。RAM164はさらに、他の機能のために用意されるまたは専用のメモリを含みうる。
ROM174は、ファームウェア176、および一部の実施形態では他の機能用の保護ストレージの1つ以上のメモリモジュールでありうる。ROM174は、フラッシュメモリ、電気的に消去可能なプログラマブル読み出し専用メモリ(EEPROM)、磁気RAM(MRAM)、強誘電体RAM(FeRAM)などといったメモリまたはストレージを含みうる。ファームウェア176は、パーティションマネジャローダ178およびパーティションマネジャ180といったコードを保存しうる。パーティションマネジャローダ178は、パーティションマネジャ180のインテグリティをロードしおよび検証するようシステム100のブートまたはリセット時に起動される信頼できるコアローダを含みうる。
TPM190は、セキュアされた情報を保存できるマイクロコントローラでありうる。TPM190は、ハードウェアデバイスまたはコードを認証するよう使用できるシステム100のマザーボード上に組み込みされるチップを含みうる。TPM190は、暗号化鍵の安全な生成のための設備、鍵の使用を(署名/検証または暗号化/復号化に)制限する能力、およびハードウェアに基づく乱数生成器を提供する。TPM190の特徴は、リモート認証(remote attestation)、バインディング、および封印を含みうる。リモート認証は、プレミウムコンテンツプロバイダといった第三者がランタイム環境は侵害されていないことを検証することを可能にするよう実質的に偽造不可能なランタイム環境のサマリを作成するためのランタイム環境の計測を含みうる。封印は、ランタイム環境が復号化の時点において実質的に同じでない限りデータは復号化されないような方法でデータを暗号化しうる。バインディングは、製造時にチップ内に入れられる一意のRSA鍵でありうるTPMエンドースメント鍵、または別の「信頼できる」鍵を使用してデータを暗号化しうる。RSAは、このアルゴリズムを公開したRon Rivest、Adi Shamir、およびLen Adlemanの姓を表す。
本実施形態では、TPM190は、幾つかのプラットフォーム設定レジスタ(PCR)を含む。説明目的のために2つのレジスタPCR4およびPCR7を有するTPM190を示す。他の実施形態では、TPM190は、2つのレジスタだけを有しうる。更なる実施形態では、TPMは、TPM190の外部にあるレジスタにアクセスしうる。
システム100は、少なくとも部分的に、キーボード、マウスなどのポインティングデバイスといった従来の入力デバイスからの入力により制御されうる。入力デバイスは、たとえば、I/Oデバイス184を介してシステム100と通信しうる。I/Oデバイス184は、外部I/Oデバイスとの通信のための1つ以上のポートでありえ、また、モデム、ドライブコントローラ、コンパクトディスクドライブ、ハードディスクドライブ、追加のマスストレージデバイスなどといったI/Oデバイスを含みうる。ストレージデバイスは、たとえば、集積ドライブ電子部品(IDE)、小型コンピュータシステムインタフェース(SCSI)、およびシリアル高度技術アーキテクチャ(SATA)ハードドライブを含みうる。ストレージデバイスはさらに、フロッピー(登録商標)ディスク、光学ストレージ、テープ、フラッシュメモリ、メモリスティック、コンパクトフラッシュ(登録商標)(CF)カード、デジタルビデオディスク(DVD)といった他のデバイスまたは媒体を含みうる。
システム100は、他の処理システムまたは他の入力ソースまたは信号から受信したディレクティブまたは他のタイプの情報にも応答しうる。システム100は、たとえば、ネットワークインタフェースコントローラ(NIC)182、モデム、または他の通信ポートまたはカップリングを介して1つ以上の遠隔処理システムへの1つ以上の接続を使用しうる。システム100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イントラネット、インターネットなどといった物理および/または論理ネットワークを介して他のシステムに相互接続しうる。通信には、無線周波数(RF)、衛星、マイクロ波、電気電子技術者協会(IEEE)802.11、802.16、802.20、ブルートゥース、光学、赤外線、ケーブル、レーザなどを含む様々な有線および/または無線短距離または長距離搬送波およびプロトコルを使用しうる。
たとえば、NIC182といった一部のコンポーネントは、バスと通信するためのインタフェース(たとえば、PCIコネクタ)を有するアダプタカードとして実装されうる。或いは、NIC182および他のデバイスは、プログラマブルまたは非プログラマブル論理デバイスまたはアレイ、特殊用途向け集積回路(ASIC)、組み込みプロセッサ、スマートカードなどといったコンポーネントを使用してオンボードまたは組み込みコントローラとして実装されうる。
本開示の目的として、「コード」という用語は、アプリケーション、ドライバ、処理、ルーチン、メソッド、モジュール、ファームウェア、マイクロコード、およびサブプログラムを含む広い範囲のソフトウェアコンポーネントおよび構成体を対象とする。したがって、「コード」という用語は、処理システムにより実行されると、所望の一のオペレーションまたは複数のオペレーションを実行する命令の任意の集まりを意味するよう使用されうる。たとえば、RAM164、ROM174、およびI/Oデバイス184は、実行されると、様々なオペレーションを実行する様々な命令セットを含みうる。このような命令セットは、一般的にソフトウェアまたはコードと称されうる。
図2は、メインランタイム環境においてOSをラウンチする前に保護コアを有するメインランタイム環境と共存する1つ以上の信頼できるランタイム環境をラウンチするシステム200の実施形態を示す。システム200は、パーティションマネジャ210、割り当て可能リソース230、および信頼検証モジュール250を含みうる。パーティションマネジャ210は、システム200の計測のための信頼のコアルートを供給するよう設計されるコードおよび/またはステートマシーンといった論理を含みうる。具体的には、パーティションマネジャ210は、信頼検証モジュール250により認証されることのできる信頼にたるコードを含みうる。さらに、パーティションマネジャ210は、ランタイム環境および続けてラウンチされるコードのための信頼の連鎖のインテグリティを維持するために信頼することができる。
パーティションマネジャ210は、ラウンチ順序論理215および環境ランチャ220を含みうる。ラウンチ順序論理215は、組み込み環境232およびメイン環境234といったランタイム環境をラウンチするオペレーションの順序を定義するハードウェアおよび/またはソフトウェアといった論理を含みうる。環境ランチャ220は、環境にメモリユニットおよび処理ユニットといったハードウェアリソースを割り当てする論理と、ファームウェアまたはOSを環境内にロードするコードローダを含みうる。たとえば、ラウンチ順序論理215は、割り当て可能リソース230を組み込み環境232に割り当てることによって組み込み環境232を設定するオペレーションを開始しうる。具体的に、ラウンチ順序論理215は、環境ランチャ220のリソースアサイナ222を起動して、メモリユニット、プロセッサユニット、および他のハードウェアリソースを組み込み環境232に割り当てうる。環境ランチャ220は、次に、OSを組み込み環境232内にロードする、または、OSを組み込み環境232内にロードするようファームウェアをロードしうる。多くの実施形態において、リソースハイダ224は、組み込み環境のハードウェアリソースを隠しうる。一部の実施形態では、リソースハイダ224は、ファームウェアまたはOSを組み込み環境232内にロードした後にリソースを隠しうる一方で、更なる実施形態では、リソースハイダ224は、ローディングと組み込み環境232の現在のインテグリティメトリクスを検証する前にリソースを隠しうる。リソースハイダ224は、たとえば、OSの初期化の間にリソースを発見するOSの能力を阻止することによってなど、ハードウェアにおいて利用可能なスキームを介してリソースを隠しうる。
ファームウェアまたはOSを組み込み環境232内にロードした後、信頼検証モジュール250は、組み込み環境232のファームウェアまたはOSに保護ストレージ260からの鍵263を供給する前に、組み込み環境232の現在のインテグリティメトリクスをインテグリティメトリクス262に対して検証しうる。信頼検証モジュール250が、組み込み環境232の現在のインテグリティメトリクスを検証すると、組み込み環境232のファームウェアまたはOSは、鍵263を使用して組み込み環境232内で使用するための保護コンテンツ242を復号化しうる。一部の実施形態では、鍵263は、データおよび/または処理を暗号化し、保護コンテンツ242内に保存するのにも有用でありうる。他の実施形態では、組み込み環境232は、信頼検証モジュール250を介して保護コンテンツ242内のコンテンツを変更するかまたは保護コンテンツ242に対して新しいコンテンツを暗号化しうる。
幾つかの実施形態では、ラウンチ順序論理215は、組み込み環境232を設定またはラウンチしている間にメイン環境234のラウンチを少なくとも開始しうる。たとえば、ラウンチ順序論理215は、組み込みパーティション232の設定と実質的に同時にメイン環境234を設定しうる。更なる実施形態では、ラウンチ順序論理215は、組み込み環境232の現在のインテグリティメトリクスの検証後にメイン環境234の設定を開始しうる。幾つかの実施形態では、組み込み環境232といった1つ以上の組み込み環境は、メイン環境234におけるOSのラウンチの前に設定および/またはラウンチされうる。
ラウンチ順序論理215は、組み込み環境232のラウンチと同様の方法でメイン環境234のランチを開始しうる。たとえば、ラウンチ順序論理215は、環境ランチャ220に、メイン環境234のハードウェアリソースを設定し、次に、メイン環境234内で信頼の連鎖を開始できるよう認証されることのできるコードをロードするよう命令しうる。信頼の連鎖は、信頼できるOSカーネルおよび保護コンテンツ244からの信頼できる処理および/またはデータを含むメイン環境234内の保護コアを取り囲みうる。
保護コアを確立および隠した後、OSは、保護コア以外のリソースにおいてメイン環境234内にラウンチされうる。たとえば、OSは、汎用OSでありうる。他の実施形態では、OSは、デジタルビデオレコーダ(DVR)の機械機能を制御するOSといった特殊用途向けOSでありうる。たとえば、DVRは、テレビ番組を記録するハードドライブと、プレミウムビデオコンテンツへのアクセスを容易にする機能を有する保護コアを含みうる。特殊用途向けOSは、デジタルビデオコンテンツを再生および記録するようユーザからの命令を受信および解釈する論理を含みうる一方で、保護コアにおけるOSカーネルは、プレミウムデジタルビデオコンテンツを購入および再生するよう特殊用途向けOSとインタラクとする機能を含みうる。このような実施形態において、組み込み環境232は、たとえば、プレミウムデジタルビデオコンテンツを、保護コアに対してダウンロードし、解釈し、また、ストリーミングする論理を含みうる。
割り当て可能なリソース230は、組み込み環境232およびメイン環境234といったランタイム環境に割り当てられうる論理的および/または物理的ハードウェアリソースを表しうる。割り当て可能なリソース230は、プロセッサコア、RAM、ROM、メモリコントローラハブ、I/Oコントローラハブ、バス、I/Oインタフェースなどを含みうる。
割り当て可能なリソース230は、組み込み環境232、メイン環境234、保護コンテンツ242、および保護コンテンツ244を含む。組み込み環境232は、組み込みランタイム環境を含むハードウェアおよびコードを表しうる。同様に、メイン環境234は、システム200のメインパーティションを構成するハードウェアおよびコードを含みうる。保護コンテンツ242は、組み込み環境232の現在のインテグリティメトリクスの検証後に組み込み環境232により使用されるデータおよび/またはデータを含みうる。保護コンテンツ242は暗号化されており、また、鍵263を介して復号化されうる。保護コンテンツ244は、メイン環境234または少なくともメイン環境234の保護コアの現在のインテグリティメトリクスの検証後にメイン環境234により使用されるデータおよび/または処理を含みうる。保護コンテンツ244は暗号化されており、また、鍵265を介して復号化されうる。
信頼検証モジュール250は、鍵263および265といった鍵を引き渡す前に環境の現在のインテグリティメトリクスを検証するハードウェアおよび/またはソフトウェアといった論理を含む。鍵263および265といった鍵は、対応する環境が、たとえば、ハードディスク、RAM、フラッシュメモリ、または他の不揮発性および揮発性メモリの保護データストレージ領域内に保存される、保護コンテンツ242および保護コンテンツ244といったデータおよび/または処理にアクセスすることを可能にする。一部の実施形態では、信頼検証モジュールは、図1に関連して説明したTPMといったTPMを含む。
信頼検証モジュール250は、インテグリティメトリクス計測器252、保護ストレージアクセサ254、保護ストレージ260、承認環境識別子270、および鍵生成器272を含む。インテグリティメトリクス計測器252は、組み込み環境232といったランタイム環境の現在のインテグリティメトリクスを計測し、そのインテグリティメトリクスを保護ストレージアクセサ254に渡しうる。インテグリティメトリクス計測器252は、実質的に一意な方法でランタイム環境を識別するランタイム環境のサマリを生成するようランタイム環境に関連付けられるソフトウェアおよびハードウェア割り当てといったインテグリティメトリクスを計測しうる。インテグリティメトリクスの計測処理は、環境へのウィルスまたはハードウェアの導入といったことによってランタイム環境のコードまたはハードウェア設定が変更する場合に、異なる計測値をもたらすよう設計される。一部の実施形態では、計測値は、異なるメモリの物理または論理ブロック、異なる通信路などの割り当てといった環境への重要ではない変更には対応する。
保護ストレージアクセサ254は、インテグリティメトリクス計測器252からインテグリティメトリクスを受信し、そのメトリクスを保護ストレージ260内のメトリクスに対して検証するか、または、そのメトリクスを保護ストレージ260内に保存しうる。たとえば、承認環境(AE)識別子270が、組み込み環境232といったランタイム環境は、信頼できるインテグリティメトリクス262を保存するための承認環境であることを示すと、鍵生成器272は、保護コンテンツ242を暗号化するための鍵263を生成し、保護ストレージアクセサ254の暗号化モジュール258は、インテグリティメトリクス262を使用して鍵263を暗号化しうる。保護ストレージアクセサ254は、次に鍵263を保護ストレージ260内に保存しうる。
その一方で、AE識別子270が、組み込み環境232を、信頼できるインテグリティメトリクス262を計測するための承認環境と示さない場合、保護ストレージアクセサ254の復号化モジュール256は、組み込み環境に鍵263を供給するか否かを判断するために、組み込み環境232の計測されたインテグリティメトリクスを、インテグリティメトリクス262と比較する。現在のインテグリティメトリクスが、インテグリティメトリクス262に一致しない場合、鍵263は、組み込み環境232に戻されない。
保護ストレージ260は、インテグリティメトリクスに対して封印される鍵を保存するレジスタまたは他のメモリを含みうる。多くの実施形態では、保護ストレージ260は、信頼検証モジュール250の外部にあるハードウェアにはアクセスできない。更なる実施形態では、保護ストレージ260へのアクセスは、保護ストレージアクセサ254を介するアクセスに実質的に制限される。
保護ストレージ260は、インテグリティメトリクス262および264により表されるレジスタを含みうる。多くの実施形態では、少なくとも1つのレジスタは、製造業者によって使用されるよう、および/または、OSまたは他のそのようなソフトウェアによって使用されないよう設計される。
AE識別子270は、図1に関連して説明したMAEといった承認環境を識別する論理を含みうる。承認環境は、ハードウェア、1つ以上の信号などの導入により作成されうる環境でありうる。多くの実施形態では、承認環境は、システム200の製造時においてのみ実現されうる。他の実施形態では、承認環境は、製造後またはシステム200のデプロイメント後に実現されうる。
鍵生成器272は、暗号化鍵を作成する生成器を含みうる。たとえば、鍵生成器272は、保護コンテンツ242および244のデータおよび処理を暗号化するよう40ビット鍵、128ビット鍵、512ビット鍵などを生成しうる。鍵は、多くの現在の暗号化アプリケーションにおいて行われている公開鍵および秘密鍵といったように対称または非対称でありうる。
図3は、1つ以上の信頼できる共存パーティションをラウンチする一実施形態のフローチャート300を示す。より具体的には、フローチャート300は、信頼できる方法でパーティションにランタイム環境を設定し、図1に関連して説明したような処理システムといった処理システムのパーティションにおいてオペレーティングシステムをラウンチするためのプロセスを説明する。フローチャート300は、組み込み環境の設定から開始する(工程310)。組み込み環境の設定には、ハードウェアリソースをパーティションに指定するまたは割り当てること、ファームウェアまたはソフトウェアをパーティションにロードすること、および、一部の実施形態では、パーティションに対してハードウェアリソースを隠すことが伴いうる。たとえば、組み込み環境の設定は、RAMの一部を物理的または論理的なユニットで組み込みシステムに割り当てすること、処理サイクルの一部を物理的または論理的なユニットで組み込みシステムに割り当てすること、通信のために幾つかの物理的および/または論理的ポートを指定すること、および他のリソースを組み込み環境に指定することを含みうる。
組み込み環境の設定後、TPMといった信頼検証モジュールは、組み込み環境の現在のインテグリティメトリクスを計測する(工程315)。組み込み環境の計測は、環境のサマリを作成するよう環境のソフトウェアおよびハードウェアリソースをハッシングすることを含みうる。
現在のインテグリティメトリクスの計測後、信頼検証モジュールは、組み込み環境の現在のインテグリティメトリクスを、信頼検証モジュールのレジスタ内に与えうる(工程320)。現在のインテグリティメトリクスのレジスタ内への付与は、レジスタのコンテンツを使用して現在のインテグリティメトリクスをハッシングしうる。現在のインテグリティメトリクスが、組み込み環境の信頼できるインテグリティメトリクスと一致する場合(工程325)、信頼検証モジュールは、鍵を引き渡しし、組み込み環境は次に、組み込み環境内での使用のために保護コンテンツを復号化しうる(工程330)。
その一方で、現在のインテグリティメトリクスは、組み込み環境の信頼できるインテグリティメトリクスと一致しない場合(工程325)、信頼検証モジュールは、鍵を引き渡しせず、組み込み環境は、保護コンテンツを復号化することができない。本実施形態は、鍵へのリクエストは無視され、組み込み環境は、処理システムがリブートまたはリセットされるまで保護コンテンツをアクセスすることができない。他の実施形態では、組み込み環境は、再確立または再設定され、また、信頼できるインテグリティメトリクスに一致させるよう1回または可能ならば複数回の試みを行いうる。
本実施形態では、組み込み環境のインテグリティメトリクスが検証されると、または検証できないと、パーティションマネジャは、複数の組み込み環境がラウンチされる予定がある場合(工程335)に、工程310から処理を再開しうる。ラウンチが予定される組み込み環境がない場合は、パーティションマネジャは、メイン環境の設定を開始する(工程340)。他の実施形態では、複数の組み込み環境は、実質的に同時に設定および/またはラウンチされうる。更なる実施形態では、メインパーティションも実質的に同時に設定されうる。しかし、一部の実施形態では、メイン環境用のOSは、組み込み環境がラウンチされるまでラウンチされない場合もある。
メイン環境、または、少なくともメイン環境の保護コアが設定されると、TPMといった信頼検証モジュールは、メイン環境の現在のインテグリティメトリクスを計測しうる(工程345)。メイン環境の計測には、環境のサマリを作成するよう環境のソフトウェアおよびハードウェアリソースをハッシングすることが含まれうる。
現在のインテグリティメトリクスの計測後、信頼検証モジュール(TVM)は、現在のインテグリティメトリクスをレジスタ内に与えうる(工程350)。現在のインテグリティメトリクスのレジスタ内への付与は、レジスタのコンテンツを使用して現在のインテグリティメトリクスをハッシングしうる。現在のインテグリティメトリクスが、メイン環境の信頼できるインテグリティメトリクスと一致する場合、信頼検証モジュールは、鍵を引き渡しし、メイン環境は次に、メイン環境の保護コア内での使用のために保護コンテンツを復号化し、メイン環境内にOSをラウンチしうる(工程355)。
図4は、1つ以上の信頼できる同時パーティションのラウンチを容易にする一実施形態のフローチャート400を示す。フローチャート400は、処理システム上で共存するために様々な環境に対して信頼できるインテグリティメトリクスを確立するよう処理システム上および/または処理システムによって実行されるオペレーションを説明しうる。フローチャート400は、製造業者により承認される環境をアクティブにすることで開始する(工程410)。たとえば、製造業者承認環境をアクティブにすることは、処理システムのマザーボード上の2つ以上の接点を電気的に相互接続すること、マザーボード上の特定のポイントに特定の信号または信号パターンを導入すること、または他の処理を含みうる。
MAEをアクティブにした後、または、MAEの確立と実質的に同時に、処理システムは、第1のランタイム環境の信頼できるバージョンをラウンチしうる(工程415)。たとえば、コンパクトディスク(CD)を処理システムのドライブに挿入して、第1の環境を設定し、第1の環境用のソフトウェアのクリーンな信頼できるバージョンをインストールしうる。処理システムのTPMは次に、第1の環境のインテグリティメトリクスを計測し(工程420)、第1の環境用の第1の鍵を生成しうる。第1の鍵の生成後、TPMは、PCR7といったプラットフォーム設定レジスタ(PCR)内に第1の環境のインテグリティメトリクスを使用して第1の鍵を封印しうる(工程425)。第1の環境のインテグリティメトリクスは、一部の実施形態ではPCR7内に保存されうる。なぜなら、PCR7のコンテンツは、処理システム、または、少なくとも、プロセッサおよびチップセットといった処理システムの重要なコンポーネントの製造者の制御に実質的に任されているからである。
MAEをアクティブにした後、または、MAEの確立と実質的に同時に、処理システムは、第2のランタイム環境の信頼できるバージョンもラウンチしうる(工程430)。たとえば、コンパクトディスク(CD)がさらに第2の環境を設定し、第2の環境用のソフトウェアのクリーンな信頼できるバージョンをインストールしうる。処理システムのTPMは次に、第2の環境のインテグリティメトリクスを計測し(工程435)、第2の環境用の第2の鍵を生成しうる。第2の鍵の生成後、TPMは、PCR4といったプラットフォーム設定レジスタ(PCR)内に第2の環境のインテグリティメトリクスを使用して第2の鍵を封印しうる(工程440)。
本発明の別の実施形態は、図1に示すシステム100、または図2−4に説明する他の実施形態と関連して説明した処理といった処理を実行するようシステムとともに使用するプログラムプロダクトとして実施される。プログラムプロダクトのプログラムは、実施形態の機能(本願に説明する方法を含む)を定義し、しばしば、機械アクセス可能媒体と呼ばれる様々なデータおよび/または信号担持媒体上に含まれることができる。例示的なデータおよび/または信号担持媒体は、以下に限定されないが、(i)書込み不可のストレージ媒体(たとえば、CD−ROMドライブにより読出し可能なCD−ROMディスクといったコンピュータ内の読出し専用メモリデバイス)上に永久的に保存される情報、(ii)書込み可能なストレージ媒体(たとえば、汎用シリアルバス(USB)フラッシュドライブ、ハードディスクドライブ)上に保存される変更可能な情報、および(iii)ワイヤレス通信を含む、コンピュータまたは電話網を介するといった通信媒体によりコンピュータに伝達された情報を含む。後者の実施形態は特に、インターネットおよび他のネットワークからダウンロードされた情報を含む。このようなデータおよび/または信号担持媒体は、本発明の機能を導くコンピュータ可読命令を担持する場合、本発明の実施形態を表す。
一般的に、本発明の実施形態を実施するよう実行されるルーチンは、オペレーティングシステムの一部、または、特定のアプリケーション、コンポーネント、プログラム、モジュール、オブジェクト、または一連の命令でありうる。本発明のコンピュータプログラムは一般的に、コンピュータによって機械可読な形式、したがって、実行可能な命令に翻訳される複数の命令から構成される。さらにプログラムは、プログラムに対してローカルに存在するか、または、メモリ内またはストレージデバイス上に見つけられる変数およびデータ構造から構成される。また、本願に記載する様々なプログラムは、本発明の特定の実施形態においてそれらが実施されうるアプリケーションに基づいて識別されうる。以下に続く任意の特定のプログラム用語は便宜的に使用されているに過ぎず、したがって、本発明は、そのような用語により識別されるおよび/または示唆される任意の特定のアプリケーションにおける使用だけに限定されるべきではないことを理解すべきである。
この開示内容の利益を得た当業者には、本発明は処理システム上に複数の信頼できる共存ランタイム環境をラウンチするシステムおよび装置を検討することは明らかであろう。詳細な説明および図面に示し且つ説明した本発明の形は、単なる例であると解釈すべきであることを理解するものとする。請求項は、開示した実施形態のすべての変形を包含するよう広く解釈すべきであることを意図する。
本発明の一部の実施形態は、詳細に説明しているが、請求項により定義される本発明の精神および範囲から逸脱することなく様々な変更、代入、および修正できることを理解すべきである。本発明の実施形態は、複数の目的を達成しうるが、請求項の範囲内にある実施形態のすべてが、すべての目標を達成するとは限らない。さらに、本願の範囲は、明細書に説明する処理、機械、製造、合成物、手段、方法、および段階の特定の実施形態に限定されることを意図しない。当業者は本発明の開示内容から容易に理解できるように、本願に説明する対応実施形態と実質的に同じ機能を実行するまたは実質的に同じ結果を実現する現在存在するまたは後に開発される処理、機械、製造、合成物、手段、方法、または段階は、本発明にしたがって使用しうる。したがって、請求項はその範囲内に、そのような処理、機械、製造、合成物、手段、方法、または段階を含むことを意図する。
信頼できるメイン環境のラウンチの前に1つ以上の信頼できる組み込み環境をラウンチするよう1つ以上のプロセッサ、メモリ、TPM、およびファームウェア/マイクロコードを有する他のハードウェアリソースを含むシステムを示す実施形態である。
保護コアを有するメインパーティション内でOSをラウンチする前に1つ以上の信頼できる組み込み環境をラウンチするシステムの一実施形態を示す。
1つ以上の信頼できる共存パーティションをラウンチするための実施形態のフローチャートを示す。
1つ以上の信頼できる同時のパーティションのラウンチを容易にする一実施形態のフローチャートを示す。
符号の説明
100 処理システム
110 ソフトウェアレイヤ
111 メインパーティション
112、114 VM
116 アプリケーション
118 オペレーティングシステム
120 BIOS
130 保護コア
132 データ
134 処理
136 VMM
138、140、142 組み込みパーティション
139 IPB
144 保護コンテンツ
145 組み込みシステム
146 EPローダ
150 ハードウェアレイヤ
152 プロセッサ
154、156、157 処理ユニット
158 コア
159 パーティションマネジャ
160 コントローラハブ
161 隠しレジスタ
162 MAE識別子
164 ランダムアクセスメモリ
166、168、170 EPメモリ
172 MPメモリ
173 IPB
174 読出し専用メモリ
176 ファームウェア
178 パーティションマネジャローダ
180 パーティションマネジャ
182 ネットワークインタフェースカード
184 I/Oデバイス
186 ホスト保護されたアクセス
190 TPM
200 システム
210 パーティションマネジャ
215 ラウンチ順序論理
220 環境ランチャ
222 リソースアサイナ
224 リソースハイダ
230 割り当て可能なリソース
232 組み込み環境
234 メイン環境
242、244 保護コンテンツ
250 信頼検証モジュール
252 インテグリティメトリクス計測器
254 保護ストレージアクセサ
256 復号化モジュール
258 暗号化モジュール
260 保護ストレージ
262、264 インテグリティメトリクス
263、265 鍵
270 AE識別子
272 鍵生成器

Claims (29)

  1. 理システム上に複数のランタイム環境をラウンチする方法であって、
    前記処理システムがパーティションマネジャを実行して、所定のインテグリティメトリクスに基づいて第1のランタイム環境の保護コンテンツへのアクセスを管理する前記第1のランタイム環境をプレOS空間に設定する工程と、
    前記処理システムの信用検証モジュールが、前記第1のランタイム環境の信頼できるインテグリティメトリクスに対して前記第1のランタイム環境の現在のインテグリティメトリクスを検証する工程と、
    前記処理システム上で実行される前記第1のランタイム環境が、前記検証に応答して前記第1のランタイム環境の前記保護コンテンツを復号化する工程と、
    前記処理システムが、前記第1のランタイム環境の前記現在のインテグリティメトリクスの前記検証後に、第2のランタイム環境をプレOS空間にラウンチする工程と、
    を含み、
    前記信用検証モジュールによる前記第2のランタイム環境の現在のインテグリティメトリクスの検証後、前記第2のランタイム環境は前記処理システム上に前記第1のランタイム環境と共存する、方法。
  2. 前記第1のランタイム環境を設定する工程は、
    前記第1のランタイム環境にリソースを割り当てる工程と、
    前記第1のランタイム環境に割り当てられた前記リソースを隠す工程と、
    を含む請求項1に記載の方法。
  3. 前記第1のランタイム環境を設定する工程は、前記第1のランタイム環境への信頼できる通信路を確立する工程を含む請求項1または2に記載の方法。
  4. 前記第1のランタイム環境の信頼できるインテグリティメトリクスに対して前記第1のランタイム環境の現在のインテグリティメトリクスを検証する工程は、
    前記第1のランタイム環境の前記現在のインテグリティメトリクスを計測する工程と、
    前記信頼できるインテグリティメトリクスに対して前記現在のインテグリティメトリクスを比較するよう信頼できるプラットフォームモジュールのプラットフォーム設定レジスタ7(PCR7)内に前記現在のインテグリティメトリクスを与える工程と、
    を含む請求項1から3のいずれか1項に記載の方法。
  5. 前記保護コンテンツを復号化する工程は、
    を復号化する工程と、
    前記鍵を介して前記保護コンテンツを復号化する工程と、
    を含む請求項1から4のいずれか1項に記載の方法。
  6. 前記第2のランタイム環境をラウンチする工程は、
    前記第2のランタイム環境を設定する工程と、
    前記第2のランタイム環境の信頼できるインテグリティメトリクスに対して前記第2のランタイム環境の前記現在のインテグリティメトリクスを検証する工程と、
    前記第2のランタイム環境の前記現在のインテグリティメトリクスの前記検証に応答して前記第2のランタイム環境の複数の保護要素を復号化する工程と、
    を含む請求項1から5のいずれか1項に記載の方法。
  7. 前記第2のランタイム環境をラウンチする工程は、前記第2のランタイム環境のオペレーティングシステムに前記処理システムのリソースの制御を引き渡す工程を含む請求項1から6のいずれか1項に記載の方法。
  8. 前記第2のランタイム環境をラウンチする工程は、
    前記第1のランタイム環境と共存するよう前記第2のランタイム環境を設定する工程と、
    前記第2のランタイム環境を計測する工程と、
    頼できるプラットフォームモジュールのPCR4内に前記第2のランタイム環境のハッシュを与える工程と、
    を含む請求項1から7のいずれか1項に記載の方法。
  9. 前記第2のランタイム環境をラウンチする工程は、
    前記第1のランタイム環境と共存するよう前記第2のランタイム環境を設定する工程と、
    前記第2のランタイム環境を計測する工程と、
    PCR7内に前記第2のランタイム環境のハッシュを与える工程と、
    を含む請求項1から7のいずれか1項に記載の方法。
  10. 2つ以上のランタイム環境をラウンチするよう処理システムを初期化する方法であって、
    前記処理システムが、承認環境アクティブ化を受ける工程と、
    前記処理システムがパーティションマネジャを実行して、第1のランタイム環境の信頼できるバージョンをプレOS空間にラウンチする工程と、
    前記処理システムの信頼できるプラットフォームモジュールが、前記第1のランタイム環境の前記信頼できるバージョンの信頼できるインテグリティメトリクスを計測する工程と、
    前記信頼できるプラットフォームモジュールが、信頼できるプラットフォームモジュールの第1のプラットフォーム設定レジスタ内に前記信頼できるインテグリティメトリクスを使用して第1の鍵を封印する工程と、
    前記信頼できるプラットフォームモジュールが、前記信頼できるプラットフォームモジュールのもう1つのプラットフォーム設定レジスタ内に第2のランタイム環境のプレOS空間にインテグリティメトリクスを使用して第2の鍵を封印する工程と、
    を含み、
    前記信頼できるバージョンの信頼性は、前記承認環境のアクティベーションに基づく、方法。
  11. 前記信頼できるプラットフォームモジュールが、1つ以上の追加のランタイム環境について前記第1のプラットフォーム設定レジスタ内に1つ以上の追加鍵を封印する工程をさらに含み、
    前記第1のプラットフォーム設定レジスタのコンテンツに関する制御は、前記処理システムに関連付けられる製造業者用に設計される請求項10に記載の方法。
  12. 前記承認環境をアクティブにする工程は、前記処理システムのボード上の複数の接点を接続する工程を含む請求項10または11に記載の方法。
  13. 前記第1の鍵を封印する工程は、前記第1のランタイム環境の前記信頼できるバージョンのハッシュを使用して前記第1の鍵を暗号化する工程を含む請求項10から12のいずれか1項に記載の方法。
  14. 前記第1の鍵を封印する工程は、プラットフォーム設定レジスタ7(PCR7)内に前記第1のランタイム環境の前記信頼できるバージョンの前記ハッシュを与える工程を含む請求項13に記載の方法。
  15. 前記第2の鍵を封印する工程は、プラットフォーム設定レジスタ4(PCR4)内に前記第2のランタイム環境の前記信頼できるバージョンの前記ハッシュを与える工程を含む請求項13または14に記載の方法。
  16. 前記信頼できるバージョンをラウンチする工程は、前記第1のランタイム環境に割り当てられたリソースに対し、ハードウェアにより実行される分離スキームを実施する工程を含む請求項10から15のいずれか1項に記載の方法。
  17. 複数の信頼できる共存環境をラウンチするシステムであって、
    少なくとも第1のランタイム環境のプレOS空間と第2のランタイム環境のプレOS空間のための複数のパーティションをサポートし、第1の保護領域および第2の保護領域を有するデータストレージを含むリソースと、
    1のレジスタおよび第2のレジスタを含み、第1のランタイム環境の計測値の検証に応答して第1の鍵を開封し、また、第2のランタイム環境の計測値の検証に応答して第2の鍵を開封する信用検証モジュールと、
    前記第1の鍵を使用して前記第1の保護領域におけるデータを復号化するよう前記第1のレジスタ内への前記第1のランタイム環境の前記計測値の付与をリクエストし、前記第2の鍵を使用して前記第2の保護領域におけるデータを復号化するよう前記第2のレジスタ内への前記第2のランタイム環境の前記計測値の付与をリクエストするパーティションマネジャと、
    を含むシステム。
  18. 前記データストレージは、ハードディスクのホスト保護されたアクセス(HPA)領域を含む請求項17に記載のシステム。
  19. 前記信用検証モジュールは、複数のプラットフォーム設定レジスタを有する信頼できるプラットフォームモジュールを含み、
    前記第1のレジスタは、プラットフォーム設定レジスタ7(PCR7)を含む請求項17または18に記載のシステム。
  20. 前記第2のレジスタは、プラットフォーム設定レジスタ4(PCR4)を含む請求項19に記載のシステム。
  21. 前記パーティションマネジャは、ファームウェアを含む請求項17から20のいずれか1項に記載のシステム。
  22. 前記パーティションマネジャは、前記システムにおけるプロセッサのマイクロコードを含む請求項17から21のいずれか1項に記載のシステム。
  23. 前記パーティションマネジャは、前記第2のランタイム環境内のオペレーティングシステムに残りのリソースの制御を引き渡しする前に、前記第1のランタイム環境および1つ以上の追加の共存環境をラウンチする論理を含む請求項17から22のいずれか1項に記載のシステム。
  24. 複数のオペレーションを含む処理システムを実行させるプログラムであって、
    前記処理システムがパーティションマネジャを実行し、前記処理システム上に、第1のランタイム環境の保護コンテンツへのアクセスを管理する前記第1のランタイム環境をプレOS空間に設定することと、
    前記処理システムの信用検証モジュールが、前記第1のランタイム環境の現在のインテグリティメトリクスを計測することと、
    前記信用検証モジュールが、前記第1のランタイム環境の前記現在のインテグリティメトリクスの検証後、第1の鍵へのアクセスのために、前記第1のランタイム環境の信頼できるインテグリティメトリクスに対して前記第1のランタイム環境の前記現在のインテグリティメトリクスを比較するよう第1のレジスタ内に前記第1のランタイム環境の前記現在のインテグリティメトリクスを与えることと、
    前記処理システム上で実行される前記第1のランタイム環境が、前記第1の鍵を介して前記第1のランタイム環境の前記保護コンテンツを復号化することと、
    前記処理システムが、前記第1のランタイム環境の前記現在のインテグリティメトリクスの前記検証後に第2のランタイム環境をプレOS空間にラウンチすることと、
    を含み、
    前記信用検証モジュールによる前記第2のランタイム環境の現在のインテグリティメトリクスの検証後、前記第2のランタイム環境は前記処理システム上に前記第1のランタイム環境と共存する、プログラム
  25. 前記複数のオペレーションは、1つ以上の追加のランタイム環境の現在のインテグリティメトリクスを与えた後、1つ以上の追加のランタイム環境の1つ以上の追加の鍵を受信することをさらに含む請求項24に記載のプログラム
  26. 前記第1のランタイム環境を設定することは、前記第1のランタイム環境に割り当てられたリソースを隠すことを含む請求項24または25に記載のプログラム
  27. 前記第1のランタイム環境の前記現在のインテグリティメトリクスを与えることは、信頼できるプラットフォームモジュールのプラットフォーム設定レジスタ7(PCR7)内に前記現在のインテグリティマトリクスを与えることを含む請求項24から26のいずれか1項に記載のプログラム
  28. 前記第2のランタイム環境をラウンチすることは、
    前記第1のランタイム環境と共存するよう前記第2のランタイム環境を設定することと、
    前記第2のランタイム環境を計測することと、
    頼できるプラットフォームモジュールのPCR4内に前記第2のランタイム環境のハッシュを与えることと、
    を含む請求項24から27のいずれか1項に記載のプログラム
  29. 前記第2のランタイム環境をラウンチすることは、
    前記第1のランタイム環境と共存するよう前記第2のランタイム環境を設定することと、
    前記第2のランタイム環境を計測することと、
    PCR7内に前記第2のランタイム環境のハッシュを与えることと、
    を含む請求項24から27のいずれか1項に記載のプログラム
JP2007273185A 2007-10-19 2007-10-19 信頼できる共存環境をラウンチする方法およびプログラム Expired - Fee Related JP4775744B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007273185A JP4775744B2 (ja) 2007-10-19 2007-10-19 信頼できる共存環境をラウンチする方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007273185A JP4775744B2 (ja) 2007-10-19 2007-10-19 信頼できる共存環境をラウンチする方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2009104258A JP2009104258A (ja) 2009-05-14
JP4775744B2 true JP4775744B2 (ja) 2011-09-21

Family

ID=40705891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007273185A Expired - Fee Related JP4775744B2 (ja) 2007-10-19 2007-10-19 信頼できる共存環境をラウンチする方法およびプログラム

Country Status (1)

Country Link
JP (1) JP4775744B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101138999B1 (ko) 2008-12-08 2012-04-25 한국전자통신연구원 보안신뢰장치 및 데이터 관리 방법
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US9058183B2 (en) * 2009-12-29 2015-06-16 Advanced Micro Devices, Inc. Hypervisor isolation of processor cores to enable computing accelerator cores
JP5493946B2 (ja) 2010-02-08 2014-05-14 株式会社リコー 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体
US20120036308A1 (en) * 2010-08-06 2012-02-09 Swanson Robert C Supporting a secure readable memory region for pre-boot and secure mode operations
WO2012092706A1 (en) * 2011-01-04 2012-07-12 Motorola Mobility, Inc. Hybrid operating system media integration
SG10201602449PA (en) * 2016-03-29 2017-10-30 Huawei Int Pte Ltd System and method for verifying integrity of an electronic device
CN111259401B (zh) * 2018-11-30 2023-05-02 阿里巴巴集团控股有限公司 可信度量方法、装置、系统、存储介质及计算机设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222062B2 (en) * 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
US7552419B2 (en) * 2004-03-18 2009-06-23 Intel Corporation Sharing trusted hardware across multiple operational environments
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US8074262B2 (en) * 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
JP4769608B2 (ja) * 2006-03-22 2011-09-07 富士通株式会社 起動検証機能を有する情報処理装置

Also Published As

Publication number Publication date
JP2009104258A (ja) 2009-05-14

Similar Documents

Publication Publication Date Title
US9235707B2 (en) Methods and arrangements to launch trusted, coexisting environments
US20090007104A1 (en) Partitioned scheme for trusted platform module support
US10152600B2 (en) Methods and systems to measure a hypervisor after the hypervisor has already been measured and booted
US20200301764A1 (en) Operating system on a computing system
EP1944712B1 (en) Methods and apparatus for protecting data
US7222062B2 (en) Method and system to support a trusted set of operational environments using emulated trusted hardware
US8201239B2 (en) Extensible pre-boot authentication
US8522018B2 (en) Method and system for implementing a mobile trusted platform module
US8209542B2 (en) Methods and apparatus for authenticating components of processing systems
US7590867B2 (en) Method and apparatus for providing secure virtualization of a trusted platform module
US7962738B2 (en) Hypervisor runtime integrity support
US7836299B2 (en) Virtualization of software configuration registers of the TPM cryptographic processor
EP2798559B1 (en) Methods and apparatus for trusted boot optimization
US8068614B2 (en) Methods and apparatus for batch bound authentication
JP4775744B2 (ja) 信頼できる共存環境をラウンチする方法およびプログラム
US8332604B2 (en) Methods to securely bind an encryption key to a storage device
US20080235754A1 (en) Methods and apparatus for enforcing launch policies in processing systems
US20100023739A1 (en) Method and apparatus for booting a processing system
US11748520B2 (en) Protection of a secured application in a cluster
KR100917290B1 (ko) 신뢰 플랫폼 모듈의 보안 가상화를 위한 방법 및 장치
WO2019209893A1 (en) Operating system on a computing system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110418

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: 20110531

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: 20110617

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4775744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140708

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

LAPS Cancellation because of no payment of annual fees