JP5443498B2 - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP5443498B2
JP5443498B2 JP2011529398A JP2011529398A JP5443498B2 JP 5443498 B2 JP5443498 B2 JP 5443498B2 JP 2011529398 A JP2011529398 A JP 2011529398A JP 2011529398 A JP2011529398 A JP 2011529398A JP 5443498 B2 JP5443498 B2 JP 5443498B2
Authority
JP
Japan
Prior art keywords
booted
programs
information
sequence
certificate
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.)
Active
Application number
JP2011529398A
Other languages
English (en)
Other versions
JP2012518213A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2011529398A priority Critical patent/JP5443498B2/ja
Publication of JP2012518213A publication Critical patent/JP2012518213A/ja
Application granted granted Critical
Publication of JP5443498B2 publication Critical patent/JP5443498B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、複数のプログラムを実行する情報処理装置であって、特に、互いに異なるシーケンスで実行される複数のプログラムを信頼できる方法で起動する情報処理装置に関する。
例えば、「the Trusted Computing Group’s (TCG) Mobile Trusted Module (MTM) documents TCG Mobile Reference Architecture version 1.0 12 June 2007」(非特許文献1)、および、「TCG Mobile Trusted Module Specification version 1.0 12 June 2007」(非特許文献2)のような先導的な先行文献は、装置をどのようにして、保証、また、信頼できる方法で起動するかを記述している。これらの方法は、信頼性や安全性がブートプロセスの間保持されるということを保証するため徹底的に見直されてきており、その結果、安全にブートができる装置の実装を要求する人々に有用な基準を提供している。このセキュアブートプロセスのキーコンポーネントは、RIM(Reference Integrity Metrics)証明書である。これは、現在期待されるプラットフォームの状態がどのようなものであるべきかを定義する署名つきの構造体である。プラットフォーム状態は、プラットフォーム設定レジスタ(PCRs)の集合に対するハッシュによって表され、各PCRは一般に定義されたハッシュ値を含む。これらのPCRは、完全性測定(integrity measurement)情報として用いられるものであり、期待される装置の状態を定義するためにRIM証明書に記録されていてもよい。さらに、RIM証明書はまた、現在の状態が検証される場合に、拡張されるべきPCRを特定する。この拡張の処理では、特定されたPCRの値を取得し、RIM証明書内で定義される新たな既知の値に連結された前のPCR値に基づいて新たなハッシュ値を算出する。TCGによって定義される典型的なセキュアブートシーケンスは、コアコンポーネントの初期化および自己検証から開始する。ここで、コアコンポーネントとは、検証および測定の信頼性のルート(RTV+RTM)、MTM自体、および関連するコアMTMインターフェースコンポーネント等である。次に、ファームウェアの他の部分をサポートする追加コンポーネントが、信頼できる方法で起動される。ここで信頼できる方法とは、各コンポーネントが信頼性のあるコンポーネントから立ち上げられたものであることを保証するために、制御が渡される前に信頼済みのコンポーネントにより各コンポーネントを検証してから、自分自身を検証するような方法である。検証→実行→自己検証というこのシーケンスには、システム内において信頼性のルートから各コンポーネントへ動的に信頼性の境界を拡張するという効果がある。そして、最後に、オペレーティングシステムを起動して、MTMサービスへとアクセスするクライアントアプリケーションに対し、安全で信頼性のあるパスを提供する。
上記イベントシーケンス内に出現の可能性がある追加関数が存在する。TCGでは、装置はMTMを1以上有することが可能であり、そのMTMのうちいくつかはセキュアブート中に開始されなければならず、その他のMTMはアプリケーション空間内にロードされても構わないと明記している。あるいは、特願2008−264530号において記載したように一時的PCRを定義するか、または、米国特許出願公開第2006/0212939号明細書(特許文献1)において記載したように仮想PCRを定義してもよい。PCRセットを管理(かつ、先行技術において定義されたような他のサービスを提供)するこれらの関数およびモジュールを、1つのPCR領域が1つのPCRセットを管理する1対1の関係がある「PCR領域」として本願でまとめて記述する。また、「PCR領域状態」は、任意の時点におけるPCR領域1つからの1以上のPCRの値の集合として定義される。特定PCRの値を示すことにより、領域状態は、どのコンポーネントがその領域内ですでにアクティブであるかを表す。上述したとおり、PCR領域ごとに、拡張動作の特定期待シーケンスが存在するので、任意のPCR領域状態を見ることにより、拡張動作の期待シーケンスを介してその進展を判断することができる。このように、コンポーネント実行の期待シーケンスを介して進展を間接的に判断できる。TCG仕様書では、この状態を、参照用領域のPCRを示すTPM_PCR_SELECTIONと、TPM_PCR_SELECTIONで示されたPCRの合成ハッシュを格納するTPM_COMPOSITE_HASHとで表してもよい。RIM証明書はこのようなPCR領域状態を含み、有効とみなされる証明書の領域に設定しなければならないPCR値を示す。
米国特許出願公開第2006/0212939号明細書
the Trusted Computing Group’s (TCG) Mobile Trusted Module (MTM) documents TCG Mobile Reference Architecture version 1.0 12 June 2007 TCG Mobile Trusted Module Specification version 1.0 12 June 2007
しかしながら、「TCG Mobile Reference Architecture」によると、第1PCR領域が第2PCR領域の親である場合、その第2PCR領域は、信頼性の推移チェーンを壊すことなく、自分自身を評価した測定に基づき、自身の領域にPCRを設定することができない。ゆえに、先行技術で述べたように、各領域は独立した信頼性のチェーンを有する必要があり、その結果、第2領域のクライアントは第2PCR領域のPCR値のみを調べることによって第1領域の信頼性を検証することができない。
したがって、第2PCR領域のクライアントが第2PCR領域のPCR値のみを調べることによって第1領域の信頼性の検証が可能な、両PCR領域を統合する信頼性の単一チェーンを形成するため、これら2つの信頼性のチェーンをつなぎ合わせる装置が必要である。
2つの信頼性のチェーンをつなぎ合わせる場合、つなぎ合わせの行為が、2つの信頼性のチェーンの両所有者が相互に同意することによって承認され、かつ、どちらか一方の所有者がこの同意を一方的に無効にできることは有益であろう。
ゆえに、本願では、領域ごとの信頼性のチェーンをつなぎ合わせることによって信頼性を維持したまま、2つのPCR領域間における信頼性のブリッジを実現する方法、システムおよびコンピュータプログラム製品を提案する。
上記課題を解決するために、本発明における情報処理装置は、第1シーケンスでブートされることが期待される複数のプログラムである第1プログラムと第2シーケンスでブートされることが期待される複数のプログラムである第2プログラムとを含む複数のプログラムを格納するプログラム格納手段と、前記第1プログラムのうちブートされた1以上のプログラムを示す第1蓄積情報を管理する第1管理手段と、前記第2プログラムのうちブートされた1以上のプログラムを示す第2蓄積情報を管理する、前記第1管理手段とは異なる第2管理手段と、全ての前記第1プログラムを前記第1シーケンスでブートしたことを示す第1期待蓄積情報と第2設定情報と同じであることが期待される第1設定情報とを含む第1証明書および、前記第2プログラムのいずれもブートされていないことを示す第2期待蓄積情報と前記第2蓄積情報に蓄積される値である前記第2設定情報とを含む第2証明書を格納する証明書格納手段と、前記第1シーケンスの最後のプログラムがブートされた場合で、かつ、前記第2シーケンスの最初のプログラムがブートされる前に、(i)前記第1蓄積情報が前記第1期待蓄積情報と一致した場合、全ての前記第1プログラムが前記第1シーケンスでブートされたことを検証するよう、前記第1管理手段を制御し、(ii)前記第2蓄積情報が前記第2期待蓄積情報と一致した場合、前記第2プログラムのいずれもブートされていないことを検証するよう、前記第2管理手段を制御し、(iii)前記第1設定情報が前記第2設定情報と一致することを検証し、かつ、(iv)(a)全ての前記第1プログラムが前記第1シーケンスでブートされたこと、(b)前記第2プログラムのいずれもブートされていないこと、および(c)前記第1設定情報が前記第2設定情報と一致することを検証する場合、全ての前記第1プログラムが前記第1シーケンスでブートされ、かつ、前記第2プログラムのいずれもブートされていないことを示すために、前記第2設定情報を前記第2蓄積情報に蓄積するよう、前記第2管理手段を制御する、制御手段とを備えることを特徴とする情報処理装置である。
この構成によると、情報処理装置は、2つの証明書を用いて第1のプログラムと第2のプログラムとの関連付けを強化する。
ここで、情報処理装置が次の検証を行う場合、その情報処理装置は第2設定情報を第2蓄積情報に蓄積する。(i)第1蓄積情報が第1期待蓄積情報と一致する場合、全ての第1プログラムが第1シーケンスでブートされたことを検証する。(ii)第2蓄積情報が第2期待蓄積情報と一致する場合、第2プログラムのいずれもブートされていないことを検証する。(iii)第1設定情報が第2設定情報と一致することを検証する。
ゆえに、情報処理装置は、第1プログラムと第2プログラムとのブート状態が適切であることを検証することによって領域ごとの信頼性のチェーンをつなぎ合わせることにより信頼性を維持したまま、第2設定情報を蓄積することによって、2つの領域(つまり、第1プログラムおよび第2プログラム)間の信頼性をブリッジすることができる。
本発明によれば、複数のプログラムをより信頼性の高い方法で起動することができる。
後述の好ましい実施形態の詳細な説明を以下の図面と共に考察することで、本発明のよりよい理解が得られる。
図1Aは、先行技術を表すブロック図である。 図1Bは、先行技術を表すブロック図である。 図2は、先行技術に係るRIM証明書である。 図3は、先行技術に従って信頼性のチェーンがどのように形成されたかを示す。 図4Aは、本発明に係る情報処理装置の構成の一例を示すブロック図である。 図4Bは、本発明に係る第1証明書および第2証明書の一例を示す模式図である。 図5は、本発明に従って信頼性のチェーンがどのように形成されたかを示す。 図6Aは、PCR領域間のブリッジを構築する間のモジュール間通信を示す。 図6Bは、PCR領域間のブリッジを構築する間のモジュール間通信の他の実施形態である。 図7は、PCR領域を初期化するフローチャートである。 図8Aは、PCR領域を初期化するフローチャートである。 図8Bは、PCR領域を初期化するフローチャートの他の実施形態である。 図9は、PCR領域のPCRを初期化するフローチャートである。 図10は、親領域用のRIM証明書を検証するフローチャートである。 図11は、先行技術に係る仮想PCRである。 図12は、本発明に係る仮想PCRおよびRIM証明書である。
本発明の第1の形態における情報処理装置は、第1シーケンスでブートされることが期待される複数のプログラムである第1プログラムと第2シーケンスでブートされることが期待される複数のプログラムである第2プログラムとを含む複数のプログラムを格納するプログラム格納手段と、前記第1プログラムのうちブートされた1以上のプログラムを示す第1蓄積情報を管理する第1管理手段と、前記第2プログラムのうちブートされた1以上のプログラムを示す第2蓄積情報を管理する、前記第1管理手段とは異なる第2管理手段と、全ての前記第1プログラムを前記第1シーケンスでブートしたことを示す第1期待蓄積情報と第2設定情報と同じであることが期待される第1設定情報とを含む第1証明書および、前記第2プログラムのいずれもブートされていないことを示す第2期待蓄積情報と前記第2蓄積情報に蓄積される値である前記第2設定情報とを含む第2証明書を格納する証明書格納手段と、前記第1シーケンスの最後のプログラムがブートされた場合で、かつ、前記第2シーケンスの最初のプログラムがブートされる前に、(i)前記第1蓄積情報が前記第1期待蓄積情報と一致した場合、全ての前記第1プログラムが前記第1シーケンスでブートされたことを検証するよう、前記第1管理手段を制御し、(ii)前記第2蓄積情報が前記第2期待蓄積情報と一致した場合、前記第2プログラムのいずれもブートされていないことを検証するよう、前記第2管理手段を制御し、(iii)前記第1設定情報が前記第2設定情報と一致することを検証し、かつ、(iv)(a)全ての前記第1プログラムが前記第1シーケンスでブートされたこと、(b)前記第2プログラムのいずれもブートされていないこと、および(c)前記第1設定情報が前記第2設定情報と一致することを検証する場合、全ての前記第1プログラムが前記第1シーケンスでブートされ、かつ、前記第2プログラムのいずれもブートされていないことを示すために、前記第2設定情報を前記第2蓄積情報に蓄積するよう、前記第2管理手段を制御する、制御手段とを備えることを特徴とする情報処理装置である。
この構成によると、情報処理装置は、2つのブリッジング証明書を用いて、(第1プログラムおよび第2プログラムに対応する)これら2つのPCR領域のリンクを行う。ここで、領域とは、上で定義したように、PCRを管理する関数およびモジュールの集合のことである。そして、本発明では、これら2つの証明書に含まれる情報を用いることによって、2つのPCR領域により構築された2つの信頼性のチェーンをつなぎ合わせ、本発明における信頼性の保証を高める。
さらに、この構成により、情報処理装置では、信頼性のチェーンごとのオーナーが、独立してそれら自身の証明書を無効にできて、上記つなぎ合わせを承認する証明書を生成することが可能になる。
本発明の第2の形態における情報処理装置は、前記制御手段が、さらに、(a)全ての前記第1プログラムが前記第1シーケンスでブートされたこと、(b)前記第2プログラムのいずれもブートされていないこと、および(c)前記第1設定情報が前記第2設定情報と一致することを検証する場合、全ての前記第1プログラムが前記第1シーケンスでブートされ、かつ、前記第2プログラムのいずれもブートされていないことを示すために、前記第1設定情報を前記第1蓄積情報に蓄積するよう、前記第1管理手段を制御することを特徴とする情報処理装置である。
この構成によると、情報処理装置は、第1設定情報を第1蓄積情報に蓄積することによって、検証の成功を第1プログラムの領域に反映する。したがって、情報処理装置は、第1プログラムの領域からも検証が成功したかどうかを確認することができる。
本発明の第3の形態における情報処理装置は、前記第1管理手段が、前記第1シーケンスでブートされた複数のプログラムのそれぞれを表す複数の第1代表情報を蓄積することにより前記第1蓄積情報を生成し、かつ、生成された前記第1蓄積情報を格納し、前記第2管理手段は、前記第1管理手段とは異なる方法で、前記第2シーケンスでブートされた複数のプログラムのそれぞれを表す複数の第2代表情報を蓄積することにより前記第2蓄積情報を生成し、かつ、生成された前記第2蓄積情報を格納することを特徴とする情報処理装置である。
この構成によると、情報処理装置は、互いに異なる方法で第1蓄積情報および第2蓄積情報それぞれを管理することができる。したがって、情報処理装置は、第1蓄積情報と第2蓄積情報とをより柔軟に管理することができる。
本発明の第4の形態における情報処理装置は、前記第2証明書が、前記第2期待蓄積情報と比較される前記第2蓄積情報をどのレジスタに格納すべきかを示すレジスタ識別子を含み、前記第2管理手段は、(i)前記レジスタの代わりに、仮想識別子によって特定される格納場所へ前記第2蓄積情報を格納し、(ii)前記仮想識別子と前記レジスタ識別子との対応付けを示すマッピングテーブルを管理し、かつ、(iii)前記第2プログラムのいずれもブートされていないことを検証するために前記第2管理手段を制御する場合、前記第2証明書に含まれるレジスタ識別子と前記マッピングテーブルとを用いて前記第2蓄積情報を格納している前記格納場所を検索することを特徴とする情報処理装置である。
米国特許出願公開第2006/0212939号明細書(特許文献1)において記載したような先行技術によると、識別子としてGUIDを用いて仮想PCRを名付ける。しかしながら、TCGが定義したRIM証明書の構造体では、互換性のない小さな整数インデックスが用いられる。ゆえに、従来の仮想PCRでは、TCGが定義したRIM証明書の構造体を用いることができない。この構成によると、情報処理装置は、第2証明書に含まれるレジスタ識別子とマッピングテーブルとを用いて第2蓄積情報を格納する格納場所を検索する。ゆえに、この構成により、情報処理装置では、TCGがすでに定義している小さな整数形式を用いてこれらの仮想PCRにインデックスを付けることが可能になる。すなわち、たとえ証明書が、(小さな整数インデックスに対応する)レジスタ識別子を用いて蓄積情報を格納している場所を示す従来の形式であったとしても、情報処理装置は蓄積情報を見つけることができる。
本発明の第5の形態における情報処理装置は、前記第1代表情報のそれぞれが、前記第1シーケンスでブートされた1以上のプログラムそれぞれから算出されたハッシュ値であるか、または、前記第1シーケンスでブートされた1以上のプログラムのうちの1つを示す文字列のハッシュ値であることを特徴とする情報処理装置である。
本発明の第6の形態における情報処理装置は、前記第2代表情報のそれぞれが、前記第2シーケンスでブートされた1以上のプログラムそれぞれから算出されたハッシュ値であるか、または、前記第2シーケンスでブートされた1以上のプログラムのうちの1つを示す文字列のハッシュ値であることを特徴とする情報処理装置である。
本発明の第7の形態における情報処理装置は、前記第1管理手段が、PCRと一時的PCRと仮想PCRとのいずれか1つを用いて前記第1蓄積情報を管理し、かつ、前記第2管理手段は、PCRと一時的PCRと仮想PCRとのいずれか1つを用いて前記第2蓄積情報を管理することを特徴とする情報処理装置である。
この構成によると、情報処理装置は、第1蓄積情報および第2蓄積情報として、PCR体系の任意の組み合わせを用いることができる。したがって、情報処理装置は、第1蓄積情報と第2蓄積情報とをより柔軟に管理することができる。
以下に、本発明の好ましい実施形態を説明する。
図1Aに、当該システムがMRTM(Mobile Remote Trusted Module)およびMLTM(Mobile Local Trusted Module)を含む場合の「TCG Mobile Reference Architecture」における実施例に係る先行技術を示す。まず最初に、後述するコンポーネントから構成されるモバイル装置100がある。この図の下から始めると、「TCG Mobile Reference Architecture」で定義されたようなRoT(信頼性のルート)118と、PCRセット120とを含むMRTM116がある。122に示したように、このPCRセットは複数の個別PCRを含んでおり、この図では、0から15の計16個ある。MRTM116の上には、様々なハードウェアおよびファームウェアの初期化関数を実行し、かつ、他のコンポーネントにサービスを提供する第1ブートコンポーネント114および第2ブートコンポーネント112がある。これらのコンポーネントの後にMLTM104があり、このMLTMもまた、「TCG Mobile Reference Architecture」で定義されたようなRoT(信頼性のルート)106と、PCRセット108とを含む。110に示したように、このPCRセットは複数の個別PCRを含んでおり、この図では、0から15の計16個ある。先行技術によると、MLTM104はいくつかの関数をMRTM116に任せることが可能であるが、2つのPCRセット108および120と2つのRoT106および118とは独立して動作する。そして、第1アプリケーション102をモバイル装置100上で実行し、MLTM104によって提供される「TCG Mobile Trusted Module Specification」で定義されたような機能性にアクセスしたい場合は第1アプリケーションがMLTM104と通信を行っても構わない。
図1Bに、当該システムがMRTM(Mobile Remote Trusted Module)およびtPCR(一時的PCR)マネージャーを含む場合の特願2008−264530号における実施形態に係る先行技術の他の形態を示す。当該システムの下層は図1Aと同様である。まず最初に、後述するコンポーネントから構成されるモバイル装置100がある。この図の下から始めると、「TCG Mobile Reference Architecture」で定義されたようなRoT(信頼性のルート)118と、PCRセット120とを含むMRTM116がある。122に示したように、このPCRセットは複数の個別PCRを含んでおり、この図では、0から15の計16個ある。MRTM116の上には、様々なハードウェアおよびファームウェアの初期化関数を実行し、かつ、他のコンポーネントにサービスを提供する第1ブートコンポーネント114および第2ブートコンポーネント112がある。先行技術では、これらのコンポーネントは別個のコンポーネントとして図示されていないが、単一のセキュアブートコンポーネントオブジェクトとしてまとめてグループ化されている。これらのコンポーネントの後にtPCR(一時的PCR)マネージャー200があり、このマネージャーもまた、「TCG Mobile Reference Architecture」で定義されたようなRoT(信頼性のルート)106と、一時的PCRセット202とを含む。204に示したように、この一時的PCRセットは複数の個別tPCRを含んでおり、この図では、0から15の計16個ある。先行技術によると、これらの値はtPCRマネージャー200の作成時点で定義されたtPCRの基準値であり、tPCRマネージャー200の動作中はtPCR値の変化が別の方法で記録されることに注意されたい。2つのPCRセット120および202と2つのRoT106および118は独立して動作し、先行技術によると、tPCRマネージャー200はいくつかの関数をMRTM116に任せることが可能である。そして、第1アプリケーション102をモバイル装置100上で実行し、tPCRマネージャー200によって提供される特願2008−264530号で定義されたような機能性にアクセスしたい場合は第1アプリケーションがtPCRマネージャー200と通信を行っても構わない。
図2に、先行技術の他の形態、つまり、PCR領域の期待状態と状態変化とを定義するために用いられるRIM(Reference Integrity Metrics)証明書の構造体300を示す。状態の検証が成功した上で実行するために、期待状態は、PCR領域に格納されたPCRセットの値の代表値によって表され、状態変化は、同じPCR領域内の指名PCRへの拡張用値によって表される。当該構造体のフォーマットは「TCG Mobile Trusted Module Specification」で詳しく述べられているため、簡単な説明のみすると、各構造体は、この構造体のタイプがRIM証明書であることを示すtag 302で始まる。label 304はRIM証明書の識別子を含み、rimVersion 306はバージョン番号を保持する。referenceCounter 308はロールバックやリフラッシュ等の攻撃からシステムを保護する単調カウンタを参照する。state 310は、証明書を使用する時点でなくてはならないPCRの状態を表す値およびフラグを含み、measurementPCRIndex 312 および measurementValue 314は共に、state 310がシステムの状態を正確に表している場合に成立する状態変化を定義している。また、先行技術によると、一部の証明書に対しては、measurementValue 314は検証が必要なモジュールのハッシュ値を含む。parentID 316はRIM証明書の完全性を検証するために用いられるキー識別子を含み、extensionDigestSize 318およびextensionDigest 320は証明書で定義された拡張データのハッシュおよびその長さを表し、そして、integrityCheckSize 322およびintegrityCheck 324は構造体が改ざんされていないことを検証する役目を果たす構造体の暗号ハッシュを表している。本発明では、label 304、state 310、measurementPCRIndex 312およびmeasurementValue 314のフィールド使用法について特に注目する。その他のフィールドは、先行技術のとおりに設定および使用するとしても構わない。
図3に、当該システムがMRTM(Mobile Remote Trusted Module)およびtPCR(一時的PCR)マネージャーを含む場合における先行技術の他の形態を示す。図1Bを基に、先行技術に係るRIM証明書の使用について図示する。前述したように、当該システムの下層は図1Aと同様である。まず最初に、後述するコンポーネントから構成されるモバイル装置100がある。この図の下から始めると、「TCG Mobile Reference Architecture」で定義されたようなRoT(信頼性のルート)118と、PCRセット120を含むMRTM116がある。MRTM 116の上には、様々なハードウェアおよびファームウェアの初期化関数を実行し、かつ、他のコンポーネントにサービスを提供する第1ブートコンポーネント114および第2ブートコンポーネント112がある。これらのコンポーネントの後にtPCR(一時的PCR)マネージャー200があり、このマネージャーもまた、「TCG Mobile Reference Architecture」で定義されたようなRoT(信頼性のルート)106と、一時的PCRセット202を含む。先行技術によると、tPCRマネージャー200はいくつかの関数をMRTM116に任せることが可能である。そして、第1アプリケーション102をモバイル装置100上で実行し、tPCRマネージャー200によって提供される機能性にアクセスしたい場合は第1アプリケーションがtPCRマネージャー200と通信を行っても構わない。
先行技術によると、RIM証明書の検証および拡張を利用することによって異なる別個の信頼性のチェーンが2つ当該システム内に構築される。信頼性の第1チェーン418を構築するために、RIM証明書である第1証明書400、第2証明書402、第3証明書404、第4証明書406、第5証明書408および第6証明書410を用いてMRTM116内のPCR120をテストおよび拡張する。先行技術によると、第1証明書400はMRTM116の自己検証用であり、第2証明書402は、起動前に第1ブートコンポーネント114を検証するためMRTM116が用いる。前記コンポーネントを起動する際には第3証明書404が自己検証用に用いられ、検証―起動―自己検証のパターンが第2ブートコンポーネント112に対しても第4証明書406および第5証明書408を用いて繰り返される。そして、第6証明書410を用いてtPCRマネージャー200を起動前に検証する。このシーケンスにより、PCR120から全てのコンポーネントを介して第2ブートコンポーネント112まで拡張する信頼性の第1チェーン418が構築される。この信頼性のチェーンを強調するために、MRTM116、RoT118およびPCR120を左下から右上への斜線で陰を付け、また、第1証明書400、第2証明書402、第3証明書404、第4証明書406、第5証明書408および第6証明書410の証明書も同様に陰を付けて、それらがMRTMのPCR120で定義された状態を検証かつ拡張することを示している。
信頼性の第2チェーン420を構築するために、RIM証明書である第10証明書412、第11証明書414および第12証明書416を用いてtPCRマネージャー200内のtPCR202をテストおよび拡張する。tPCRマネージャー200は、tPCR202を実行してそれらの初期値に初期化してから、第10証明書412を用いて自身を検証する。要求が第1アプリケーション102の起動に及ぶ場合は、第11証明書414を用いて第1アプリケーション102の完全性とtPCR202の状態とを検証した後に、証明書が拡張され、アプリケーションが実行される。そして、第1アプリケーション102は、tPCR202の状態をテストおよび拡張する第12証明書416を用いて自身を検証する。このシーケンスにより、tPCR202から全てのコンポーネントを介して第1アプリケーション102まで拡張する、未結合の信頼性の第2チェーン420が構築される。この信頼性のチェーンを強調するために、tPCRマネージャー200、RoT 106およびtPCR202を左上から右下への斜線で陰を付け、また、第10証明書412、第11証明書414および第12証明書416の証明書も同様に陰を付けて、それらがtPCRマネージャーのtPCR202で定義された状態を検証かつ拡張することを示している。
ここで、本発明に係る情報処理装置について説明する。
図4Aは、本発明に係る情報処理装置10の構成の一例を示すブロック図である。なお、情報処理装置10は、例えば、モバイル装置100である。
図4Aに示す情報処理装置10は、プログラム格納部20と、第1管理部30と、第2管理部40と、証明書格納部50と、制御部60とを備える。
プログラム格納部20は、複数の第1プログラム21と複数の第2プログラム22とを格納するメモリなどである。例えば、プログラム格納部20は、モバイル装置100が備える内部メモリなどである。なお、プログラム格納部20は、後述する図5には示されていない。なお、図5は、本発明の情報処理装置10によって、信頼性のチェーンがどのようにして形成されるかを説明するための模式図である。
第1プログラム21は、第1シーケンスでブートされることが期待される複数のプログラムである。例えば、第1プログラム21は、図5に示す第1ブートコンポーネント114および第2ブートコンポーネント112に相当する。
第2プログラム22は、第2シーケンスでブートされることが期待される複数のプログラムである。例えば、第2プログラム22は、図5に示す第1アプリケーション102に相当する。
第1管理部30は、複数の第1プログラム21のうちブートされた1以上のプログラムを示す第1蓄積情報を管理する。例えば、第1管理部30は、図5に示すPCRセット120を管理するMRTM116に相当する。
例えば、第1管理部30は、複数の第1代表情報を蓄積することで第1蓄積情報を生成し、生成した第1蓄積情報をPCRセット120に格納する。複数の第1代表情報はそれぞれ、第1シーケンスでブートされるプログラムを表している。例えば、第1代表情報は、第1シーケンスでブートされた1以上のプログラムのそれぞれから算出されたハッシュ値、または、第1シーケンスでブートされた1以上のプログラムを示す文字列のハッシュ値である。
第2管理部40は、複数の第2プログラム22のうちブートされた1以上のプログラムを示す第2蓄積情報を管理する。例えば、第2管理部40は、図5に示すtPCRセット202を管理するtPCRマネージャー200に相当する。
例えば、第2管理部40は、複数の第2代表情報を蓄積することで第2蓄積情報を生成し、生成した第2蓄積情報をtPCRセット202に格納する。複数の第2代表情報はそれぞれ、第2シーケンスでブートされるプログラムを表している。例えば、第2代表情報は、第2シーケンスでブートされた1以上のプログラムのそれぞれから算出されたハッシュ値、または、第2シーケンスでブートされた1以上のプログラムを示す文字列のハッシュ値である。
証明書格納部50は、第1証明書51と第2証明書52とを格納するメモリなどである。第1証明書51および第2証明書52は、第1シーケンスと第2シーケンスとの間の信頼性のチェーンをつなぎ合わせるために用いられる証明書である。つまり、第1証明書51および第2証明書52は、全ての第1プログラム21が第1シーケンスでブートされた後、第2プログラム22がブートされる前に用いられる証明書である。なお、証明書格納部50は、図5には示されていない。
図4Bは、第1証明書51および第2証明書52の一例を示す模式図である。
図4Bに示すように第1証明書51は、第1期待蓄積情報51aと第1設定情報51bとを含んでいる。第1証明書51は、全ての第1プログラム21が正しくブートされたことを検証するために用いられる。例えば、第1証明書51は、図5に示す第1ブリッジング証明書502に相当する。なお、第1証明書51の具体的な構造は、図2に示すRIM証明書と同じ構造である。
第1期待蓄積情報51aは、第1シーケンスで全ての第1プログラム21がブートされたことを示す情報である。例えば、第1期待蓄積情報51aは、図2に示すRIM証明書の構造では、state310に格納される、PCRセット120の状態を示す値である。第1期待蓄積情報51aは、PCRセット120の状態を検証するために、すなわち、第1シーケンスで第1プログラム120が正しくブートされたか否かを検証するために用いられる情報である。
第1設定情報51bは、第2証明書52に含まれる第2設定情報52bと等しいことが期待される情報である。つまり、第1証明書51および第2証明書52が共に改竄されていない適切な証明書である場合、第1設定情報51bと第2設定情報52bとは一致する。すなわち、第1設定情報51bは、第1証明書51と第2証明書52とが適切な証明書であるか否かを検証するために用いられる情報である。例えば、第1設定情報51bは、図2に示すRIM証明書の構造では、measurementPCRindex312およびmesurementValue314に格納される値であり、例えば、ハッシュ値である。
また、図4Bに示すように、第2証明書52は、第2期待蓄積情報52aと第2設定情報52bとを含んでいる。第2証明書52は、第2プログラム22のいずれもブートされていないことを検証するために用いられる。例えば、第2証明書52は、図5に示す第2ブリッジング証明書506に相当する。なお、第2証明書52の具体的な構造は、図2に示すRIM証明書と同じ構造である。
第2期待蓄積情報52aは、第2プログラム22のいずれもブートされていないことを示す情報である。例えば、第2期待蓄積情報52aは、図2に示すRIM証明書の構造では、state310に格納される、tPCRセット202の状態を示す値である。第2期待蓄積情報52aは、tPCRセット202の状態を検証するために、すなわち、第2プログラム22がいずれもブートされていないか否かを検証するために用いられる情報である。
第2設定情報52bは、第2蓄積情報に蓄積される値を示す情報である。例えば、第2設定情報52bは、図2に示すRIM証明書の構造では、measurementPCRindex312およびmesurementValue314に格納される値であり、例えば、ハッシュ値である。
図4Aに戻り、制御部60は、本実施の形態の情報処理装置10の動作を制御する。具体的には、第1シーケンスの最後のプログラムがブートされた場合で、かつ、第2シーケンスの最初のプログラムがブートされる前に、第1管理部30および第2管理部40を制御することで、検証と情報の蓄積とを行う。例えば、制御部60は、後述する図6Aなどのセキュアブート600に相当する(図5には図示されていない)。制御部60の具体的な処理は以下の通りである。
制御部60は、第1シーケンスの最後のプログラムがブートされた場合で、かつ、第2シーケンスの最初のプログラムがブートされる前に、まず、第1管理部30を制御することで、第1蓄積情報が第1期待蓄積情報と一致するか否かを判定する。つまり、制御部60は、PCRセット120の状態が第1証明書51に含まれる第1期待蓄積情報51aに一致するかを判定することで、全ての第1プログラム21が第1シーケンスで正しくブートされたことを検証する。PCRセット120の状態が第1期待蓄積情報51aに一致する場合が、全ての第1プログラム21が第1シーケンスで正しくブートされたことを示す。
また、制御部60は、第2管理部40を制御することで、第2蓄積情報が第2期待蓄積情報と一致するか否かを判定する。つまり、制御部60は、tPCRセット202の状態が第2証明書52に含まれる第2期待蓄積情報52aに一致するかを判定することで、第2プログラム22のいずれもブートされていないことを検証する。tPCRセット202の状態が第2期待蓄積情報52aに一致する場合が、第2プログラム22のいずれもブートされていないことを示す。
さらに、制御部60は、第1設定情報と第2設定情報とが一致するか否かを検証する。つまり、制御部60は、第1証明書51に含まれる第1設定情報51bと第2証明書52に含まれる第2設定情報52bとが一致するか否かを検証することで、第1証明書51と第2証明書52とが、改竄などされていない適切な証明書であることを検証する。第1設定情報51bと第2設定情報52bとが一致した場合が、第1証明書51と第2証明書52とが適切な証明書であることを示す。
また、制御部60は、全ての第1プログラム21が第1シーケンスでブートされたこと、第2プログラム22のいずれもブートされていないこと、および、第1設定情報51bと第2設定情報52bとが一致することが検証された場合、第2設定情報52bを第2蓄積情報に蓄積するように、第2管理部40を制御する。これにより、第2蓄積情報は、全ての第1プログラム21が第1シーケンスでブートされ、かつ、第2プログラム22のいずれもがブートされていないことを示すようになる。つまり、制御部60は、第2管理部40を制御することで、第2設定情報52bを第2蓄積情報に蓄積することで、すなわち、第2設定情報52bをtPCRセット202に拡張することで、全ての第1プログラム21が第1シーケンスでブートされ、かつ、第2プログラム22のいずれもがブートされていないことをtPCRセット202の状態に反映させる。
なお、制御部60は、全ての第1プログラム21が第1シーケンスでブートされたこと、第2プログラム22のいずれもブートされていないこと、および、第1設定情報51bと第2設定情報52bとが一致することが検証された場合、第1設定情報51bを第1蓄積情報に蓄積するように、第1管理部30を制御してもよい。これにより、第1蓄積情報は、全ての第1プログラム21が第1シーケンスでブートされ、かつ、第2プログラム22のいずれもがブートされていないことを示すようになる。つまり、制御部60は、第1管理部30を制御することで、第1設定情報51bを第1蓄積情報に蓄積することで、すなわち、第1設定情報52bをPCRセット120に拡張することで、全ての第1プログラム21が第1シーケンスでブートされ、かつ、第2プログラム22のいずれもがブートされていないことをPCRセット120の状態に反映させてもよい。
以上の構成により、本実施の形態に係る情報処理装置10は、第1証明書51と第2証明書52とを用いることで、第1シーケンスと第2シーケンスとの間の信頼性のチェーンをつなげることができるので、第1シーケンスと第2シーケンスとの間の独立性を保ちつつ、信頼性をより高めることができる。
図5に、図3で説明した先行技術に基づく本発明におけるRIM証明書の使用法を示す。2つの図を比較すると、すぐに目を引く違いは、前述の第10証明書412が第10’証明書508になり、かつ、その陰の付け方がMRTM116内の状態を検証かつ拡張する証明書であることを示すように変更されている点である。また、2つの新たな証明書、第1ブリッジング証明書502および第2ブリッジング証明書506が存在する。これらの変更によって新たな信頼性の第1チェーン500が本発明に基づいてどのように構築されるかについて、以下に詳細を述べる。
図3で述べたように、当該システムの下層は図1Aと同様である。まず最初に、後述するコンポーネントから構成されるモバイル装置100がある。この図の下から始めると、「TCGMobile Reference Architecture」で定義されたようなRoT(信頼性のルート)118と、PCRセット120とを含むMRTM116がある。MRTM 116の上には、様々なハードウェアおよびファームウェアの初期化関数を実行し、かつ、他のコンポーネントにサービスを提供する第1ブートコンポーネント114および第2ブートコンポーネント112がある。これらのコンポーネントの後にtPCR(一時的PCR)マネージャー200があり、このマネージャーもまた、「TCG Mobile Reference Architecture」で定義されたようなRoT(信頼性のルート)106と、一時的PCRセット202を含む。先行技術によると、tPCRマネージャー200はいくつかの関数をMRTM116に任せることが可能である。そして、第1アプリケーション102をモバイル装置100上で実行し、tPCRマネージャー200によって提供される機能性にアクセスしたい場合は第1アプリケーションがtPCRマネージャー200と通信を行っても構わない。
次に、RIM証明書である第1証明書400 、第2証明書402、第3証明書404、第4証明書406 、第5証明書408および第6証明書410を用いてMRTM116内のPCR120をテストおよび拡張する。先行技術によると、第1証明書400はMRTM116の自己検証用であり、第2証明書402は、起動前に第1ブートコンポーネント114を検証するためMRTM116によって用いられる。前記コンポーネントを起動する際には第3証明書404が自己検証用に用いられ、検証―起動―自己検証のパターンが第2ブートコンポーネント112に対しても第4証明書406および第5証明書408を用いて繰り返される。そして、第6証明書410を用いてtPCRマネージャー200を起動前に検証する。
ここで、tPCRマネージャー200は、第10’証明書508を用いて自分自身を実行かつ検証して、MRTM116に検証を要求し、MRTM116のPCR120から拡張する信頼性のチェーンにtPCRマネージャー200自身を加える。tPCRマネージャー200は、初期tPCR202を規定の初期値に設定するなど他の初期化を行う。好ましい実施形態において、tPCR0の初期値はtPCRマネージャー200を実行しているプラットフォームを表す値に設定され、tPCR1の初期値はtPCRマネージャー200のRoT106のハッシュに、その他全てのtPCR初期値は0に設定される。
信頼性のチェーンがPCR120からtPCR202へブリッジ可能であって、結果的に2つのPCR領域を介した単一の連続チェーンとなるためには、2つのRIM証明書、第1ブリッジング証明書502および第2ブリッジング証明書506が必要である。これらのRIM証明書のフォーマットは図2で示したものと同じである。他のRIM証明書とこれらのRIM証明書とを区別するのは、これらのRIM証明書の使用法と、measurementPCRIndex312およびmeasurementValue314フィールドの特定値である。第1ブリッジング証明書502には、MRTM116内で検証されるPCR状態、すなわち、PCR120で生じる状態変化が記載され、MRTM116により検証される先行技術で説明したような完全性チェック値によって保護される。第2ブリッジング証明書506には、tPCRマネージャー200内で検証されるtPCR状態、すなわち、tPCR202で生じる状態変化が記載され、tPCRマネージャー200により検証される先行技術で説明したような完全性チェック値によって保護される。第2ブリッジング証明書506が先行技術で定義したような内部RIM証明書であり、かつ、tPCRマネージャー200がキー情報用の格納空間を保護しなかった場合の好ましい実施形態では、第2ブリッジング証明書506の完全性チェック値の検証をMRTM116コンポーネントに任せる。
また、別々の領域2つのブリッジはこれらの2つの証明書内で定義され、2つのブリッジング証明書をつなげる線504で図式的に示される。図2で図示したように、RIM証明書300内には、成立する状態変化を共に定義するmeasurementPCRIndex 312およびmeasurementValue314がある。先行技術で説明したような証明書発行機関は、それら自身の間でこれらのフィールド2つに対するある値について同意を行い、それぞれが自身の証明書を生成して装置に証明書を配信する。ゆえに、初期化中に、tPCRマネージャー200は、第1ブリッジング証明書502および第2ブリッジング証明書506の両方を検索し、第1ブリッジング証明書502に現在のMRTMのPCR120状態が記載されているという検証をMRTM116に要求し、第2ブリッジング証明書506に現在のtPCRマネージャーのtPCR202状態が記載されているかを自分自身で検証し、measurementPCRIndex312およびmeasurementValue314の値が第1ブリッジング証明書502および第2ブリッジング証明書506の両方において同じであることを検証することによって、ブリッジ504を構築できることを確立し、そして、第2ブリッジング証明書506においてmeasurementValue314をmeasurementPCRIndex312へ拡張して、tPCR202の初期状態として新たな値を設定する。このようにして、MRTMのPCR120とtPCR202とのブリッジが構築され、信頼性の第1チェーン500はtPCR202まで拡張される。
アプリケーション空間における証明書およびtPCRの使用法は、図3で説明したとおりに進展する。例えば、要求が第1アプリケーション102の起動に及ぶ場合は、第11証明書414を用いて第1アプリケーション102の完全性とtPCR202の状態とを検証した後に、証明書が拡張され、アプリケーションが実行される。そして、第1アプリケーション102は、tPCR202の状態をテストする第12証明書416を用いて自身を検証する。このシーケンスにより、tPCR202から全てのコンポーネントを介して第1アプリケーション102まで拡張する、未結合の信頼性の第2チェーン420が構築される。このように、第1アプリケーション102がいったん実行されると、信頼性の第1チェーン500は、図示したようにMRTMのPCR120からずっと第1アプリケーション102へ伸びている。
図6Aに、図1Bに基づいた、PCR領域間のブリッジを構築する間のモジュール間通信を示す。関連モジュールは、セキュアブート600とMRTMのPCR120とtPCRマネージャー200と一時的PCR202である。セキュアブート600は、MRTM116、第1ブートコンポーネント114および第2ブートコンポーネント112が提供する機能を網羅する。本図の右側に、先行技術602の部分と本発明604の部分とである当該通信の区分を示す。
先行技術によると、まず、tPCRマネージャーモジュール200の起動前に、セキュアブート600モジュールが、tPCRマネージャーの起動前検証RIM証明書(このRIM証明書は図5の第6証明書410である)を取得し606、RIM証明書の値を用いてtPCRマネージャーのイメージのハッシュを算出かつ検証し608、そのRIM証明書を検証してMRTMのPCR120に拡張する610。そして、制御をtPCRマネージャーに渡す612。次に、tPCRマネージャー200は、先行技術に従って自己検証を行う必要があるため、後にロードする自分自身のRIM証明書(このRIM証明書は図5の第10’証明書508である)を検索する614。ここで先行技術に係る通信は終了するので、次からが本発明に係る通信である。
図5で図示したように、自己検証のRIM証明書である第10’証明書508は親領域、ここではセキュアブート600からのPCRを用いるため、RIM証明書を検証してその値を拡張する要求がセキュアブートに送信される616。そして、セキュアブート600は自身のMRTMのPCR120を用いてRIM証明書を検証かつ拡張する618。ここで、tPCRマネージャー200は期待された信頼できる環境に存在すると証明されたことになり、図3の説明において述べたように自身の一時的PCRを初期化することができる620。次に、tPCRマネージャーは、セキュアブートにブリッジングRIM証明書を要求し622、自分自身のブリッジングRIM証明書を検索する624。これらはそれぞれ、図5の第1ブリッジング証明書502と第2ブリッジング証明書506とに対応している。そして、tPCRマネージャー200は、measurementPCRIndex312およびmeasurementValue314の値が2つのRIM証明書で同じであることを検証し626、622で検索されたRIM証明書が有効であることを確認するようセキュアブートに要求する628。後ほどより詳しく説明するが、tPCRマネージャー200とセキュアブート600との通信チャネルが改ざんされることを防ぐため、この動作622はセキュアなチャネル上で行われる。先行技術によると、好ましい実装では、「Trusted Computing Group」が定義したOSAPプロトコルが用いられる。そして、セキュアブートは、MRTMのPCR120に格納された値に対して第1ブリッジング証明書502のPCR値を検証する630。好ましい実装では、tPCRマネージャー200はMRTMのPCR120の拡張された値をテストせず、ブリッジングRIM証明書の拡張用値は拡張されない点に注意されたい。しかしながら、MRTM116の子でもある第2PCR領域がMRTMのPCR120を介して第1PCR領域が存在するか否かをテストしたい場合のような他の実装では、値をMRTMのPCR120に拡張してもよい。
セキュアブートのブリッジングRIM証明書が正常に検証されると、MRTMのPCR120から一時的PCR202へ信頼性のチェーンを拡張する最終ステップは、第2ブリッジング証明書506を検証して一時的PCR202へ拡張することであり632、ブリッジングRIM証明書のmeasurementPCRIndex312とmeasurementValue314との値に記述されたPCRを介して2つの領域間にブリッジが構築される。tPCRマネージャーの使用を希望するアプリケーションはこの拡張された値をテストすることができ、さらに、これらのアプリケーションへ信頼性のチェーンを拡張する。
図6Bに、図1Bに基づいた、PCR領域間のブリッジを構築する間のモジュール間通信のその他の実施形態を示す。この図に示されたフローは、上記図6Aのフローを再現したものであり、ブリッジング動作の成功の証明として親領域のブリッジングRIM証明書を親領域に拡張するという最終ステップが付け加わる。第2ブリッジング証明書506を検証して一時的PCR202へ拡張する632ことによってMRTMのPCR120から一時的PCR202へ信頼性のチェーンが構築された後に、tPCRマネージャー200は、622で検索されたRIM証明書が有効であることを再確認するようセキュアブートに要求し650、有効であれば、652に示すように、親領域のPCR120へ、すなわち、指示されたmeasurementValue314の値を指示されたmeasurementPCRIndex312へ拡張する。
図7および図8Aに、図6Aで図示したモジュール間通信に基づく、PCR領域を初期化するフローチャートを示す。本フローチャートはtPCRマネージャー200の初期化だけを説明するのではなく、同じプロセスを用いてMLTM104などを初期化してもよいことに注意されたい。本プロセスは、図6Aにおける本発明604の線の始点で図示されたポイント、すなわち、領域の初期化開始700から始まる。まず、PCRは、後述するプロセスにおいて基準初期値に初期化され702、ブリッジングRIM証明書を親領域に要求する704。これを図5と関連付けると、要求された証明書とは第1ブリッジング証明書502であり、親領域とはMRTM116および関連モジュールである。証明書が正しく受信されなかった場合706、エラーが返され720、領域の初期化は失敗となる。OKの場合はモジュール自身のRIM証明書が検索され(第2ブリッジング証明書506)、前記証明書が見つからなかった場合710はエラーが返され720、領域の初期化は失敗となる。次に、2つの証明書のmeasurementPCRIndex312およびmeasurementValue314フィールドを比較し712、等しくなければエラーが返され720、領域の初期化は失敗となる。等しい場合は、次に、親領域へのセキュアな通信チャネルを開く714。先行技術によると、好ましい実装では、「Trusted Computing Group」が定義したOSAPプロトコルが用いられる。そして、親領域からのブリッジングRIM証明書が後述するプロセスにおいて検証され716、714で開かれたセキュアなチャネルを閉じる718。
フローチャートは図8Aに続き、716における先の親PCR領域のRIM証明書の検証結果をチェックする800。チェックが失敗であればエラーが返され720、領域の初期化は失敗となる。チェックが成功した場合は、新たな領域用のブリッジングRIM証明書を検証して新たな領域内に拡張する802。― 図5によると、第2ブリッジング証明書506はtPCRマネージャー200によって検証され、結果として得られた拡張された値をtPCR202に格納される一時的PCR基準値として用いる。特願2008−264530号で記載したような先行技術によると、tPCRマネージャー200自身は第2ブリッジング証明書506のintegrityCheck324の検証を許可するキーを有していないが、その代わりに、完全性検証を親領域に任せる。子領域がMLTM104である図1Aで図示した好ましい実施形態では、本検証をMLTM104自体で行っても構わない。
検証および拡張動作が失敗した場合804、前述のとおりエラーが返され720、領域の初期化は失敗となる。そうでない場合は、領域の初期化ルーチンは成功ステータスコードを返す806。
その他の好ましい実施形態では、新たな領域用のブリッジングRIM証明書の検証および拡張802が成功した証明を親領域に付け加える。図7および図8Bに、図6Bで図示したモジュール間通信に基づく、PCR領域を初期化するフローチャートを示す。フローチャートは、上述したとおり、検証および拡張動作が成功したかどうかのチェックへ進むが804、図8Aのようにすぐに成功コードを返すのではなく、親領域へのセキュアな通信チャネルを開く850。先行技術によると、好ましい実装では、「Trusted Computing Group」が定義したOSAPプロトコルが用いられる。そして、親領域からのブリッジングRIM証明書が、好ましい実装では「Trusted Computing Group」のモバイルトラステッドモジュールのMTM_VerifyRIMCertAndExtend APIを用いて検証かつ拡張され852、850で開かれたセキュアなチャネルを閉じる854。検証および拡張動作が失敗した場合856、前述したようにエラーが返され720、領域の初期化は失敗となる。そうでない場合は、領域の初期化ルーチンは成功ステータスコードを返す806。
図9に、PCR領域のPCRを初期化するフローチャートを示す。PCRを初期化する単純な本プロセス900は、PCR領域を表す値にPCR0を設定する902ことで開始する。先行技術によると、これは「HWプラットフォームの関連特性」である。ソフトウェアに実装されたMLTMまたはtPCRマネージャーに対し、このような値は適合していなくてもよいため、例えば、「Panasonic tPCR Manager v1」など、アプリケーションおよびリビジョンレベルを識別する文字列のハッシュで置き換えることが可能である。次に、PCR1はRoT、つまり、図1Aおよび図1Bで図示されたRoTブロック106のハッシュに初期化される904。そして、残りのPCRは0に初期化され906、本プロセスは呼び出し側へリターンする908。
図10に、図7の716で説明したプロセスを実装した、親領域用のRIM証明書を検証するフローチャートを示す。本プロセスの要件は、実PCR値のハッシュ値を算出し、その値を保存ハッシュ値と比較することである。本ルーチンは1000から始まり、まず、親領域にRIM証明書の検証を要求する1002。好ましい実装では、これはAPI MTM_VerifyRIMCertを用いて、RIM証明書の構造体300のフィールドが正しく構成されているか、および、integrityCheckSize322とintegrityCheckData324とがその構造体に対して有効な署名を含んでいるかをチェックする。本ステップは、stateフィールド310によって定義された実PCR値のいかなる妥当性チェックも行わないことに注意されたい。この検証が成功しなかった場合1004、プロセスは検証失敗エラーを呼び出し側のプロセスに返す1022。そうでない場合は、実PCR120が期待値に設定されているかどうか把握するために、stateフィールド310に定義された個々のフィールドのハッシュをチェックする必要がある。これを行うには、まず、ハッシュ算出を初期化し1006、そして、state.pcrSelectionフィールド310に設定されたビットごとに1008、このビットに対応するPCRインデックスの値を親領域に要求する1010。
そのデータの検索に失敗した場合1012、プロセスは検証失敗エラーを呼び出し側のプロセスに返し1022、そうでない場合は、返されたPCR値をPCR値全ての合成ハッシュに付け加える1014。PCRを表すstate.pcrSelection310のビット全てがテストされるまで、本ループを繰り返す。最終検証を行うために、ハッシュ算出を終了させ1016、算出したハッシュをstate.digestAtRelease310に格納されているハッシュと比較する。フィールドが等しくない場合1018、プロセスは検証失敗エラーを呼び出し側のプロセスに返し1022、そうでない場合は、親RIM証明書が有効であると分かるため、成功検証コードを呼び出し側のプロセスに返す1020。
図11に、米国特許出願公開第2006/0212939号明細書(特許文献1)に係る先行技術の他の形態を示す。モバイル装置100内に、2列のテーブル1102を管理する仮想PCRマネージャー1100がある。第1列目は仮想PCR用の識別子であって、1つの具体例であるGUID(Global Unique Identifiers)1104 を有し、第2列目は実仮想PCR値1106である。
図12に、本発明に係る仮想PCRとRIM証明書とを示す。図11で図示したように、第1列目が仮想PCR用の識別子であって、1つの具体例であるGUID(Global Unique Identifiers)1104を有する2列のテーブル1102を管理する仮想PCRマネージャー1100がある。この第2列目は実仮想PCR値1106である。任意のRIM証明書1200のPCR参照をインデックス番号からGUIDに変換するため、インデックスをGUIDにマッピングする新たなテーブル1202を定義する。このテーブルは、仮想PCRマネージャー1100によってそのコンポーネントの初期化中に作成され、2つの列を含む。第1列目にはテーブル1102を評価するGUID内のGUID1104を参照するGUID1204を含む。このテーブル1202の順序は、本テーブルの第1行目がRIM証明書1200のPCR0に対応するため、(特定の順序がない先行技術に係るテーブル1102とは違って)重要である。ゆえに、本テーブル1202に格納されたGUIDを検索することによって、対応するPCR値をテーブル1102から検索することができる。本テーブル1202の第2列目1206にはこの行のPCRが検証済みかどうかを示す指示子が含まれる。この列は、「TCG Mobile Trusted Module Specification」で定義されているMTM_PERMANENT_DATA−>verifiedPCRsを具体化したものである。当業者であれば、先行技術に係る上述のものと同類のビットマップなど、この列1206の他の実装が可能であると分かるであろう。
さらに、クライアントがテーブル1102の仮想PCRの変換を行うよう仮想PCRマネージャーに要求すればいつでも、要求された仮想PCRのGUIDが検証済みの仮想PCRでないことを保証するため、本テーブル1202をチェックしなければならない。好ましい実施形態では、仮想PCRマネージャー1100の初期化時にGUID列1204をランダムに生成するため、クライアントにそのGUID列を知られることはない。図示したテーブル1202において、GUID11に対する列1206の空白は、未検証のPCRであることを示している。
このように、本実施の形態に係る情報処理装置10では、第2証明書52は、第2期待蓄積情報52aと比較される第2蓄積情報を、tPCRセット202のどのレジスタに格納すべきかを示すレジスタ識別子を含んでいてもよい。つまり、ここでいうレジスタ識別子とは、例えば、図12に示す例では、RIM証明書1200における「PCR 0」および「PCR 15」などの「0」および「15」に相当する。
そして、第2管理部40は、仮想識別子とレジスタ識別子との対応付けを示すマッピングテーブル(図12に示すテーブル1202)を管理すればよい。仮想識別子は、図12に示す例では、GUID1204に相当する。そして、第2管理部40は、レジスタの代わりに、仮想識別子によって特定される格納場所へ第2蓄積情報を格納する。
また、第2管理部40は、第2プログラムのいずれもブートされていないことを検証するように制御される際には、第2証明書52に含まれるレジスタ識別子とマッピングテーブルとを利用することで第2蓄積情報を格納している格納場所を検索する。
このように、GUIDなどの仮想識別子とマッピングテーブルを用いた場合にも、本発明は適用することができる。
本発明は上記の実施形態に基づいて述べられているが、本発明は明らかにそのような実施の形態に限定されるものではない。下記のケースもまた本発明に含まれる。
(1)上述の実施形態は、モバイルトラステッドモジュールおよびセキュアブートの仕様の要件に従う。しかしながら、本発明を、「Trusted Computing Group’s TCG Infrastructure Working Group Architecture Part II − Integrity Management Specification Version 1.0.」で定義したような、トラステッドプラットフォームモジュールを備え、かつ/または、トラステッドブート仕様をサポートするシステムに適用してもよい。
(2)上述の実施形態では、MTM仕様書と同様の方法で検証は行われた。しかしながら、本発明を他の検証システムに適用してもよい。ただし、コンポーネントをチェーンのように検証する検証方法で検証システムがシステムのコンポーネントを検証できる場合(例えば、あるコンポーネントがそのコンポーネントの後に起動する他のコンポーネントを検証する)に限る。例えば、ハッシュ値のMTMへの拡張などの動作はTCG仕様書に固有なものであるため、省略してもよい。
(3)上述の実施形態では、証明書(RIM証明書)内でハッシュ値を使用することにより検証は行われた。しかしながら、ハッシュ値を使用しない他の検証方法が本発明に適用されてもよい。
従来のチェックサムや、コンポーネントから抽出される別のデータ(例えば、コンポーネントから抽出される第1所定ビット)が、検証を行うために使用されてもよい。また、証明書は、完全性チェック値を含むデータの集合に置き換えられてもよい。
さらに、検証方法は、コンポーネントから抽出される値と期待される値が等しいか否かをチェックすることに限定されない。例えば、コンポーネントのサイズを確認し、もしサイズが所定量より大きいか、または小さいなら、コンポーネントは検証されたと判断されるとしてもよい。これらの検証方法は、ハッシュ値と、その期待値とを比較するほど厳密なものではないが、それよりも高速に行われる。
(4)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(5)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
さらに、各装置を構成する構成部品の各ユニットは、別個の個別チップとして、または、一部もしくは全てを含む単一のチップとして作られてもよい。
さらに、ここでは、LSIが述べられているが、集積化の程度の違いにより、指定IC、LSI、スーパーLSI、ウルトラLSIが使用される場合もある。
さらに、回路の集積化の手段は、LSIに限定されるものではなく、専用回路、もしくは汎用プロセッサによる実装も利用できる。さらに、LSIが製造された後にプログラム可能なフィールドプログラムゲートアレイ(FPGA)を使用することもまた可能であり、またLSI内で回路セルの接続および設定を再構成可能なリコンフィギュラブルプロセッサも使用可能である。
さらに、もしLSIに置き換わる集積回路技術が半導体技術もしくは他の派生する技術の進歩を通じて現われるのであれば、その技術は当然に構成要素の集積化を実現するために使用することができる。バイオ技術の適用が予想される。
(6)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIに含まれるとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(7)本発明は、上記に示す方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムなどのデジタル信号であるとしてもよい。
また、本発明は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
また、本発明は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記憶しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(8)本技術分野の当業者にとっては、説明した実施形態の、本発明固有の教示および利点から原理的に離れることのない多くの変形がありえることを容易に理解することができるだろう。また、上記変更および実施形態の任意の組み合わせは、本発明の範囲内に含まれる。
本発明は、パーソナルコンピュータ、携帯電話、オーディオプレーヤ、テレビ、ビデオレコーダなどの、プログラムデータの更新を行う情報通信機器、および、家電機器などに利用することができる。
10 情報処理装置
20 プログラム格納部
21 第1プログラム
22 第2プログラム
30 第1管理部
40 第2管理部
50 証明書格納部
51 第1証明書
51a 第1期待蓄積情報
51b 第1設定情報
52 第2証明書
52a 第2期待蓄積情報
52b 第2設定情報
60 制御部
100 モバイル装置
102 第1アプリケーション
104 MLTM
106、118 RoT
108、120 PCRセット
110、122 PCR
112 第2ブートコンポーネント
114 第1ブートコンポーネント
116 MRTM
200 tPCRマネージャー
202 tPCRセット

Claims (10)

  1. 情報処理装置であって、
    第1シーケンスでブートされることが期待される複数のプログラムである第1プログラムと第2シーケンスでブートされることが期待される複数のプログラムである第2プログラムとを含む複数のプログラムを格納するプログラム格納手段と、
    前記第1プログラムのうちブートされた1以上のプログラムを示す第1蓄積情報を管理する第1管理手段と、
    前記第2プログラムのうちブートされた1以上のプログラムを示す第2蓄積情報を管理する、前記第1管理手段とは異なる第2管理手段と、
    全ての前記第1プログラムを前記第1シーケンスでブートしたことを示す第1期待蓄積情報と第2設定情報と同じであることが期待される第1設定情報とを含む第1証明書および、前記第2プログラムのいずれもブートされていないことを示す第2期待蓄積情報と前記第2蓄積情報に蓄積される値である前記第2設定情報とを含む第2証明書を格納する証明書格納手段と、
    前記第1シーケンスの最後のプログラムがブートされた場合で、かつ、前記第2シーケンスの最初のプログラムがブートされる前に、
    (i)前記第1蓄積情報が前記第1期待蓄積情報と一致した場合、全ての前記第1プログラムが前記第1シーケンスでブートされたことを検証するよう、前記第1管理手段を制御し、
    (ii)前記第2蓄積情報が前記第2期待蓄積情報と一致した場合、前記第2プログラムのいずれもブートされていないことを検証するよう、前記第2管理手段を制御し、
    (iii)前記第1設定情報が前記第2設定情報と一致することを検証し、かつ、
    (iv)(a)全ての前記第1プログラムが前記第1シーケンスでブートされたこと、(b)前記第2プログラムのいずれもブートされていないこと、および(c)前記第1設定情報が前記第2設定情報と一致することを検証する場合、全ての前記第1プログラムが前記第1シーケンスでブートされ、かつ、前記第2プログラムのいずれもブートされていないことを示すために、前記第2設定情報を前記第2蓄積情報に蓄積するよう、前記第2管理手段を制御する、制御手段とを備える
    ことを特徴とする情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記制御手段は、さらに、(a)全ての前記第1プログラムが前記第1シーケンスでブートされたこと、(b)前記第2プログラムのいずれもブートされていないこと、および(c)前記第1設定情報が前記第2設定情報と一致することを検証する場合、全ての前記第1プログラムが前記第1シーケンスでブートされ、かつ、前記第2プログラムのいずれもブートされていないことを示すために、前記第1設定情報を前記第1蓄積情報に蓄積するよう、前記第1管理手段を制御する
    ことを特徴とする情報処理装置。
  3. 請求項1に記載の情報処理装置であって、
    前記第1管理手段は、前記第1シーケンスでブートされた複数のプログラムのそれぞれを表す複数の第1代表情報を蓄積することにより前記第1蓄積情報を生成し、かつ、生成された前記第1蓄積情報を格納し、
    前記第2管理手段は、前記第1管理手段とは異なる方法で、前記第2シーケンスでブートされた複数のプログラムのそれぞれを表す複数の第2代表情報を蓄積することにより前記第2蓄積情報を生成し、かつ、生成された前記第2蓄積情報を格納する
    ことを特徴とする情報処理装置。
  4. 請求項3に記載の情報処理装置であって、
    前記第2証明書は、前記第2期待蓄積情報と比較される前記第2蓄積情報をどのレジスタに格納すべきかを示すレジスタ識別子を含み、
    前記第2管理手段は、(i)前記レジスタの代わりに、仮想識別子によって特定される格納場所へ前記第2蓄積情報を格納し、(ii)前記仮想識別子と前記レジスタ識別子との対応付けを示すマッピングテーブルを管理し、かつ、(iii)前記第2プログラムのいずれもブートされていないことを検証するために前記第2管理手段を制御する場合、前記第2証明書に含まれるレジスタ識別子と前記マッピングテーブルとを用いて前記第2蓄積情報を格納している前記格納場所を検索する
    ことを特徴とする情報処理装置。
  5. 請求項3に記載の情報処理装置であって、
    前記第1代表情報のそれぞれは、前記第1シーケンスでブートされた1以上のプログラムそれぞれから算出されたハッシュ値であるか、または、前記第1シーケンスでブートされた1以上のプログラムのうちの1つを示す文字列のハッシュ値である
    ことを特徴とする情報処理装置。
  6. 請求項3に記載の情報処理装置であって、
    前記第2代表情報のそれぞれは、前記第2シーケンスでブートされた1以上のプログラムそれぞれから算出されたハッシュ値であるか、または、前記第2シーケンスでブートされた1以上のプログラムのうちの1つを示す文字列のハッシュ値である
    ことを特徴とする情報処理装置。
  7. 請求項1に記載の情報処理装置であって、
    前記第1管理手段は、PCRと一時的PCRと仮想PCRとのいずれか1つを用いて前記第1蓄積情報を管理し、かつ、
    前記第2管理手段は、PCRと一時的PCRと仮想PCRとのいずれか1つを用いて前記第2蓄積情報を管理する
    ことを特徴とする情報処理装置。
  8. 情報処理装置用の情報処理方法であって、
    前記情報処理装置は、
    第1シーケンスでブートされることが期待される複数のプログラムである第1プログラムと第2シーケンスでブートされることが期待される複数のプログラムである第2プログラムとを含む複数のプログラムを格納するプログラム格納手段と、
    前記第1プログラムのうちブートされた1以上のプログラムを示す第1蓄積情報を管理する第1管理手段と、
    前記第2プログラムのうちブートされた1以上のプログラムを示す第2蓄積情報を管理する、前記第1管理手段とは異なる第2管理手段と、
    全ての前記第1プログラムを前記第1シーケンスでブートしたことを示す第1期待蓄積情報と第2設定情報と同じであることが期待される第1設定情報とを含む第1証明書および、前記第2プログラムのいずれもブートされていないことを示す第2期待蓄積情報と前記第2蓄積情報に蓄積される値である前記第2設定情報とを含む第2証明書を格納する証明書格納手段とを備え、
    前記情報処理方法は、
    前記第1シーケンスの最後のプログラムがブートされた場合で、かつ、前記第2シーケンスの最初のプログラムがブートされる前に、
    (i)前記第1蓄積情報が前記第1期待蓄積情報と一致した場合、全ての前記第1プログラムが前記第1シーケンスでブートされたことを検証するよう、前記第1管理手段を制御し、
    (ii)前記第2蓄積情報が前記第2期待蓄積情報と一致した場合、前記第2プログラムのいずれもブートされていないことを検証するよう、前記第2管理手段を制御し、
    (iii)前記第1設定情報が前記第2設定情報と一致することを検証し、かつ、
    (iv)(a)全ての前記第1プログラムが前記第1シーケンスでブートされたこと、(b)前記第2プログラムのいずれもブートされていないこと、および(c)前記第1設定情報が前記第2設定情報と一致することを検証する場合、全ての前記第1プログラムが前記第1シーケンスでブートされ、かつ、前記第2プログラムのいずれもブートされていないことを示すために、前記第2設定情報を前記第2蓄積情報に蓄積するよう、前記第2管理手段を制御する、制御ステップを含む
    ことを特徴とする情報処理方法。
  9. 情報処理装置用の情報処理プログラムを記録している記録媒体であって、
    前記情報処理装置は、
    第1シーケンスでブートされることが期待された複数のプログラムである第1プログラムと第2シーケンスでブートされることが期待された複数のプログラムである第2プログラムとを含む複数のプログラムを格納するプログラム格納手段と、
    前記第1プログラムのうちブートされた1以上のプログラムを示す第1蓄積情報を管理する第1管理手段と、
    前記第2プログラムのうちブートされた1以上のプログラムを示す第2蓄積情報を管理する、前記第1管理手段とは異なる第2管理手段と、
    全ての前記第1プログラムを前記第1シーケンスでブートしたことを示す第1期待蓄積情報と第2設定情報と同じであることが期待される第1設定情報とを含む第1証明書および、前記第2プログラムのいずれもブートされていないことを示す第2期待蓄積情報と前記第2蓄積情報に蓄積される値である前記第2設定情報とを含む第2証明書を格納する証明書格納手段とを備え、
    前記情報処理プログラムは、
    前記第1シーケンスの最後のプログラムがブートされた場合で、かつ、前記第2シーケンスの最初のプログラムがブートされる前に、
    (i)前記第1蓄積情報が前記第1期待蓄積情報と一致した場合、全ての前記第1プログラムが前記第1シーケンスでブートされたことを検証するよう、前記第1管理手段を制御し、
    (ii)前記第2蓄積情報が前記第2期待蓄積情報と一致した場合、前記第2プログラムのいずれもブートされていないことを検証するよう、前記第2管理手段を制御し、
    (iii)前記第1設定情報が前記第2設定情報と一致することを検証し、かつ、
    (iv)(a)全ての前記第1プログラムが前記第1シーケンスでブートされたこと、(b)前記第2プログラムのいずれもブートされていないこと、および(c)前記第1設定情報が前記第2設定情報と一致することを検証する場合、全ての前記第1プログラムが前記第1シーケンスでブートされ、かつ、前記第2プログラムのいずれもブートされていないことを示すために、前記第2設定情報を前記第2蓄積情報に蓄積するよう、前記第2管理手段を制御することを、前記情報処理装置に実行させる
    ことを特徴とする記録媒体。
  10. 情報処理装置に用いられる集積回路デバイスであって、
    前記情報処理装置は、
    第1シーケンスでブートされることが期待された複数のプログラムである第1プログラムと第2シーケンスでブートされることが期待された複数のプログラムである第2プログラムとを含む複数のプログラムを格納するプログラム格納手段と、
    前記第1プログラムのうちブートされた1以上のプログラムを示す第1蓄積情報を管理する第1管理手段と、
    前記第2プログラムのうちブートされた1以上のプログラムを示す第2蓄積情報を管理する、前記第1管理手段とは異なる第2管理手段と、
    全ての前記第1プログラムを前記第1シーケンスでブートしたことを示す第1期待蓄積情報と第2設定情報と同じであることが期待される第1設定情報とを含む第1証明書および、前記第2プログラムのいずれもブートされていないことを示す第2期待蓄積情報と前記第2蓄積情報に蓄積される値である前記第2設定情報とを含む第2証明書を格納する証明書格納手段とを備え、
    前記集積回路デバイスは、
    第1シーケンスの最後のプログラムがブートされた場合で、かつ、第2シーケンスの最初のプログラムがブートされる前に、
    (i)前記第1蓄積情報が前記第1期待蓄積情報と一致した場合、全ての前記第1プログラムが前記第1シーケンスでブートされたことを検証するよう、前記第1管理手段を制御し、
    (ii)前記第2蓄積情報が前記第2期待蓄積情報と一致した場合、前記第2プログラムのいずれもブートされていないことを検証するよう、前記第2管理手段を制御し、
    (iii)前記第1設定情報が前記第2設定情報と一致することを検証し、かつ、
    (iv)(a)全ての前記第1プログラムが前記第1シーケンスでブートされたこと、(b)前記第2プログラムのいずれもブートされていないこと、および(c)前記第1設定情報が前記第2設定情報と一致することを検証する場合、全ての前記第1プログラムが前記第1シーケンスでブートされ、かつ、前記第2プログラムのいずれもブートされていないことを示すために、前記第2設定情報を前記第2蓄積情報に蓄積するよう、前記第2管理手段を制御する
    ことを特徴とする集積回路デバイス。
JP2011529398A 2009-02-18 2010-02-18 情報処理装置および情報処理方法 Active JP5443498B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011529398A JP5443498B2 (ja) 2009-02-18 2010-02-18 情報処理装置および情報処理方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009035530 2009-02-18
JP2009035530 2009-02-18
JP2011529398A JP5443498B2 (ja) 2009-02-18 2010-02-18 情報処理装置および情報処理方法
PCT/JP2010/001020 WO2010095432A1 (en) 2009-02-18 2010-02-18 Information processing device and information processing method

Publications (2)

Publication Number Publication Date
JP2012518213A JP2012518213A (ja) 2012-08-09
JP5443498B2 true JP5443498B2 (ja) 2014-03-19

Family

ID=42173642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011529398A Active JP5443498B2 (ja) 2009-02-18 2010-02-18 情報処理装置および情報処理方法

Country Status (5)

Country Link
US (1) US8732444B2 (ja)
EP (1) EP2399217B1 (ja)
JP (1) JP5443498B2 (ja)
CN (1) CN102282564B (ja)
WO (1) WO2010095432A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2482652B (en) 2010-05-21 2016-08-24 Hewlett Packard Development Co Lp Extending integrity measurements in a trusted device using a policy register
WO2012156586A2 (en) * 2011-05-18 2012-11-22 Nokia Corporation Secure boot with trusted computing group platform registers
JP2014089652A (ja) 2012-10-31 2014-05-15 Toshiba Corp 情報処理装置
FR3024915B1 (fr) * 2014-08-18 2016-09-09 Proton World Int Nv Dispositif et procede pour assurer des services de module de plateforme securisee
GB2553376A (en) * 2016-09-06 2018-03-07 Trustonic Ltd Future constraints for hierarchical chain of trust
US10771264B2 (en) 2018-10-10 2020-09-08 Hewlett Packard Enterprise Development Lp Securing firmware

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US7103771B2 (en) 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
JP4144880B2 (ja) * 2004-04-09 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション プラットフォーム構成測定装置、プログラム及び方法、プラットフォーム構成認証装置、プログラム及び方法、プラットフォーム構成証明装置、プログラム及び方法、並びに、プラットフォーム構成開示装置、プログラム及び方法
US7725703B2 (en) 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7836299B2 (en) 2005-03-15 2010-11-16 Microsoft Corporation Virtualization of software configuration registers of the TPM cryptographic processor
EP1866825A1 (en) 2005-03-22 2007-12-19 Hewlett-Packard Development Company, L.P. Methods, devices and data structures for trusted data
GB2424494A (en) 2005-03-22 2006-09-27 Hewlett Packard Development Co Methods, devices and data structures for trusted data
WO2007124091A1 (en) * 2006-04-21 2007-11-01 Interdigital Technology Corporation Apparatus and methods for performing trusted computing integrity measurement reporting
US8117429B2 (en) * 2006-11-01 2012-02-14 Nokia Corporation System and method for a distributed and flexible configuration of a TCG TPM-based local verifier
US20080242988A1 (en) 2007-03-28 2008-10-02 Tetsuya Yoshida Ultrasound diagnostic apparatus, ultrasound image processing apparatus, and ultrasound image processing method
CN102246179A (zh) 2008-10-10 2011-11-16 松下电器产业株式会社 在安全处理系统的应用空间中使用瞬时pcr来实现信任

Also Published As

Publication number Publication date
JP2012518213A (ja) 2012-08-09
WO2010095432A1 (en) 2010-08-26
US8732444B2 (en) 2014-05-20
US20110276795A1 (en) 2011-11-10
EP2399217B1 (en) 2018-05-30
CN102282564B (zh) 2014-10-15
CN102282564A (zh) 2011-12-14
EP2399217A1 (en) 2011-12-28

Similar Documents

Publication Publication Date Title
JP5411122B2 (ja) 情報処理装置
JP5398824B2 (ja) セキュア処理システムのアプリケーション空間において信頼性を実現するための一時的pcr利用
JP5385148B2 (ja) セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
JP5443498B2 (ja) 情報処理装置および情報処理方法
US7788730B2 (en) Secure bytecode instrumentation facility
EP2449499B1 (en) Secure boot method and secure boot apparatus
JP4732508B2 (ja) トラステッドデータのための方法、デバイス、およびデータ構造体
JP5437550B2 (ja) ファームウェアの必要なメモリ容量を減らすシステム及び方法
US8219827B2 (en) Secure boot with optional components
CN103081399B (zh) 认证设备和系统
US20090259855A1 (en) Code Image Personalization For A Computing Device
US20090257595A1 (en) Single Security Model In Booting A Computing Device
KR20110075050A (ko) 컴퓨팅 장치의 보안 부팅
US9639700B2 (en) Unified extensible firmware interface (UEFI) database for secure bootstrap of a computer
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
CN103914658A (zh) 终端设备的安全启动方法及终端设备
JP2013519929A (ja) 情報処理装置、情報処理システム、ソフトウェアルーチン実行方法およびリモート認証方法
CN114021106A (zh) 一种可信度量的远程认证方法、装置及系统
CN113448681B (zh) 一种虚拟机监控器公钥的注册方法、设备和存储介质
CN100578457C (zh) 使用类库足迹文件的java应用认证方法
JP5712842B2 (ja) 情報処理装置及びパスワードの入力規則更新方法
CN109766671A (zh) ipk插件安全管控方法和系统、电子装置及存储介质
JP2012078990A (ja) 認証装置、認証方法および認証プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131219

R150 Certificate of patent or registration of utility model

Ref document number: 5443498

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150