JP5530460B2 - セキュアブート方法およびセキュアブート装置 - Google Patents

セキュアブート方法およびセキュアブート装置 Download PDF

Info

Publication number
JP5530460B2
JP5530460B2 JP2011548454A JP2011548454A JP5530460B2 JP 5530460 B2 JP5530460 B2 JP 5530460B2 JP 2011548454 A JP2011548454 A JP 2011548454A JP 2011548454 A JP2011548454 A JP 2011548454A JP 5530460 B2 JP5530460 B2 JP 5530460B2
Authority
JP
Japan
Prior art keywords
software component
certificate
integrity measurement
component
verification
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
JP2011548454A
Other languages
English (en)
Other versions
JP2012532358A (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 JP2011548454A priority Critical patent/JP5530460B2/ja
Publication of JP2012532358A publication Critical patent/JP2012532358A/ja
Application granted granted Critical
Publication of JP5530460B2 publication Critical patent/JP5530460B2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (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証明書である。これは、現在期待されるプラットフォームの状態がどのようなものであるべきかを定義する署名付きの構造体である。プラットフォームの状態は、プラットフォーム設定レジスタ(PCRs)の集合に対するハッシュによって表され、各PCRは一般に定義されたハッシュ値を含む。これらのPCRは、完全性測定(integrity measurement)情報として用いられるものであり、期待される装置の状態を定義するためにRIM証明書に記録されていてもよい。さらに、RIM証明書はまた、現在の状態が検証される場合に、拡張されるべきPCRを特定する。この拡張の処理では、指定されたPCRの値を取得し、RIM証明書内で定義される新たな既知の値と以前のPCR値とを連結させた値に基づいて新たなハッシュ値を算出する。TCGによって定義される典型的なセキュアブートシーケンスは、コアコンポーネントの初期化および自己検証から開始する。ここで、コアコンポーネントとは、検証および測定の信頼性のルート(RTV+RTM)、MTM自体、および関連するコアMTMインタフェースコンポーネント等である。次に、ファームウェアの他の部分をサポートする追加コンポーネントが、信頼された方法で起動される。ここで信頼された方法とは、例えば、各追加コンポーネントの起動時に、先にブートされた他のコンポーネントによって検証されることである。そして、最後に、オペレーティングシステムが、クライアントアプリケーションに対して、MTMサービスへとアクセスする安全で信頼されたパスを提供するために起動される。
しかし、仕様書は、ブートプロセスを通して、完全に成功するか失敗するかのどちらかの結果にしかならない単一の制御パスのみを提供しており、融通の利かない内容となっている。言い換えると、もし1つのコンポーネントのブートプロセスが失敗すると、他のコンポーネントの全ては、たとえ、そのコンポーネント自身のブートプロセスが成功していたとしても使用されないこととなる。
TCG仕様書は、携帯電話などの携帯端末ではリソースが限られていることを認識した上での監査機能を提供している。仕様書では、これらの監査の形態はMTMではオプショナルであると定義されているが、これは下記に示す問題を生じる。上述したように、この機構はオプショナルに過ぎないが、この機構に対するブートプロセスが失敗すると、携帯電話の全てのコンポーネントが使用できなくなる。さらに、この形態は実装される必要がないことに関わらず(というのもオプショナルなため)、この形態を実装しなくては、検証が常に失敗することとなる。これにより、他のプロセスに対して、ブートプロセス中でなぜ、またはどこで失敗があったのかを検出することがより難しくなる。さらに、装置製造者は、所定の信頼されたコンポーネントをオプションとして提供することを望むことがある。
ここでオプショナルコンポーネントとは、例えば、ユーザが追加契約した後に有効化できるシステムまたはアプリケーションソフトウェアのことである。ここで、「有効な(またはアクティブな)」とは、そのアプリケーションソフトウェアの状態を、ユーザが実行可能な状態に変化させることである。そのソフトウェアが有効化されていなければ、たとえそのシステムまたはアプリケーションソフトウェア自体がコンピュータに事前にインストールされているか、またはサーバからダウンロードされていても、ユーザはそのシステムまたはアプリケーションソフトウェアを使用することができない。
上述のように、オプショナルコンポーネントが有効化されているか否かは、各ユーザが決定してもよい。よって、更新されたRIM証明書を装置に送信するサーバは、有効化されたコンポーネントに対応する更新された証明書を送信するために、各装置においてどのコンポーネントが有効であるかを知ると思われる。
さらに多くの市場では、ユーザが現在サービス契約していないか、または現在のサービス契約のエリア外にある携帯電話からでも緊急電話をできるようにするという、サービスプロバイダへの法的な要求がある。MTMを備えた電話では、証明書が無効化されたり、重要でないコンポーネントのデータが破損したりした場合に、全く操作できなくなってしまうため、この法的な要求を満たすことができない。
Zimmerらによる米国特許出願公開第2005/0138414号明細書(特許文献1)には、オプショナルコンポーネントを伴う検証されたブート方法が開示されているが、そのオプショナルコンポーネントは、明示的なスイッチに応じて実装されており、コンポーネントプログラムファイルの破損、またはハードウェアの初期化の失敗のようなオプショナルコンポーネントを処理するときに生じるエラーをどのように処理するかということを考慮していない。
Schellらによる米国特許第6477648号明細書(特許文献2)には、検証に失敗する可能性のあるオプショナルコンポーネントを伴う検証されたブート方法が開示されているが、この課題の解決方法は教示されていない。
したがって、必要なことは、TCG携帯電話ワーキンググループによって定義されるセキュアブートの状況内でオプショナルコンポーネントをサポートする方法であり、たとえいくつかのRIM証明書が無効化されるか、またはコンポーネントが機能していなくても、少ない機能で動作する方法であり、また、セキュアブートが終了した後、MTMの状態を決定する、より簡単な、リソース負荷のより少ない方法である。
したがって、さらに、更新された証明書のセットを装置毎にカスタマイズして作成することなく、有効化または無効化されたコンポーネントを更新するための装置およびサーバが必要である。
米国特許出願公開第2005/0138414号明細書 米国特許第6477648号明細書
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
従来技術では、単一の定められたシーケンスに応じてブートする方法を述べているが、そこでは、もし1つの必須でないコンポーネントが失敗するか、または存在しない場合に、どうするのかを提案していない。さらに、失敗の状態は、セキュアブートプロセス全体で記録されるのみであり、各個別のコンポーネントごとに記録されていない。結果として、RIM証明書が必要とされる各役割のうち、たった1つしか用いることができない。
そのため、ブートされている装置の安全性や信頼性を保持しつつ、セキュアブートに関する複数の実行シーケンスを定義することで、オプショナルかつ失敗したコンポーネントのために装置をサポートすることのできるシステムや方法については、満たされないニーズがあり、このようなシステムや方法を得ることは大いに役立つことである。
さらに、上記に加えて、セキュアブートシステム内の各個別のコンポーネントの成功または失敗を記録することで、セキュアブートが完了した後にユーザが安全な環境の状態を決定できるシステムや方法に関して満たされていない要求があり、このようなシステムや方法を得ることは大いに役立つことである。
さらに、上記に加えて、各役割ごとに複数のRIM証明書を使用することで装置の安全性や信頼性を保持する一方、オプショナルコンポーネントをサポートできるようにするシステムや方法については、満たされていない要求があり、このようなシステムや方法を得ることは大いに役立つことである。
本発明の一態様に係るセキュアブート方法は、完全性測定によって検証されるソフトウェアコンポーネントを実行する方法であって、a)論理識別子からソフトウェアコンポーネントの有効状態フラグへの第1マッピングを提供するステップと、b)前記論理識別子と、前のソフトウェアコンポーネントの状態情報とから、検証データを含む実際の完全性測定証明書への第2マッピングを提供するステップと、c)前記ソフトウェアコンポーネントを識別する所定の論理識別子を前記第1マッピングから検索することで、前記ソフトウェアコンポーネントが有効であるか否かを示す状態フラグを得るステップ(2122)と、d)前記ソフトウェアコンポーネントの検証証明書を識別する所定の論理識別子と、前記前のコンポーネントの状態とを前記第2マッピングから検索することで、完全性測定証明書を得るステップ(2122)と、e)実行すべき前記ソフトウェアコンポーネントのチェック値を算出するステップ(2126)と、f)前記完全性測定値が前記完全性測定証明書内の完全性測定値に一致することと、前記算出されたチェック値が前記完全性測定証明書内のチェック値に一致することとを検証するステップ(2128)と、g)前記状態フラグによって、前記ソフトウェアコンポーネントが有効であることを示し、かつ前記検証が成功していれば、前記完全性測定証明書内の前記チェック値の指示を含むように現在の完全性測定値を更新するステップ(2200)と、h)前記ソフトウェアコンポーネントが有効であり、かつ前記検証が成功していれば、前記ソフトウェアコンポーネントを実行するステップ(2206)とを含む。
また、前記方法は、さらに、a)前記コンポーネントが有効でなければ、前記コンポーネントの検証失敗証明書を識別する所定の論理識別子と、前記前のコンポーネントの状態とを前記第2マッピングから検索することで、無効な完全性測定証明書を得るステップ(2134)と、b)前記無効な完全性測定証明書内に格納されている、コンポーネントの状態が無効である旨の指示を示すように現在の完全性測定値を更新するステップ(2134)とを含んでもよい。
また、前記方法は、さらに、a)前記検証が不成功であれば、前記コンポーネントの検証失敗証明書を識別する所定の論理識別子と、前記前のコンポーネントの状態とを前記第2マッピングから検索することで、失敗完全性測定証明書を得るステップ(2136)と、b)前記失敗完全性測定証明書内に格納されている、完全性測定が不成功である旨の指示を含むように現在の完全性測定値を更新するステップ(2136)とを含んでもよい。
また、前記方法は、さらに、a)前記コンポーネントが有効でないか、または前記検証が不成功であれば、論理識別子と、前のソフトウェアコンポーネントの状態情報とからコンポーネント識別子への第3マッピングを提供するステップ(2404)と、b)前記コンポーネントを識別する所定の論理識別子と、前記前のコンポーネントの状態とを前記第3マッピングから検索することで、実行すべき別のソフトウェアコンポーネントを得るステップ(2404)とを含んでもよい。
本発明に係る好ましい実施の形態においては、各個別のコンポーネントの成功または失敗は、他の全ての信頼されたコンポーネントによって利用できるテーブル内に記録される。
本発明の別の好ましい実施の形態においては、複数の実行シーケンスは、所定のコンポーネントが失敗した後に実行すべき別のコンポーネントを記述するテーブル内に記述される。このテーブルは、失敗したモジュールや、以前に実行したか、または失敗したコンポーネントの状態に関する識別子の組み合わせを用いて索引が付けられる。
本発明の別の好ましい実施の形態においては、オプショナルコンポーネントは、そのコンポーネントが有効化されているか否かを示すフラグを含むテーブル内に記述される。このテーブルは、オプショナルコンポーネントがブートされるか否かを制御するためにセキュアブート中に参照されるため、そのオプショナルコンポーネントの好ましい実行シーケンスを明示的に記述している。
本発明の別の好ましい形態においては、各個別のコンポーネントが以前に実行したか、または失敗したコンポーネントの状態に応じて正確に検証するために、各コンポーネントは、コンポーネントを実行する前に明らかにしなくてはならない様々な有効な前提条件を記述する複数のRIM証明書を有する。
この課題を解決するために、本発明によると、サーバに接続可能な装置は、各々が1つの証明書に割り当てられる複数のソフトウェア、および前記複数のソフトウェアに関連し、かつ各々が前記複数のソフトウェア各々の検証に用いられる複数の証明書を格納する格納手段と、前記複数のソフトウェアの1つを、前記装置で実行可能な前記複数のソフトウェアのうちの有効な1つのソフトウェアとして、前記装置に対し設定する設定手段と、前記複数のソフトウェアのうちの前記有効な1つのソフトウェアに関連する証明書を用いて、前記複数のソフトウェアのうちの前記有効な1つのソフトウェアを検証し、前記検証の後に、前記複数のソフトウェアのうちの前記有効かつ検証されたソフトウェアを実行する実行手段と、前記複数の証明書のうち、サーバによって、何れが前記複数のソフトウェアのうちの前記有効な1つのソフトウェアに対応するかを検出することなく更新すると判定された、所定の証明書に対応する複数の更新された証明書をサーバから受信する受信手段と、前記複数のソフトウェアのうちの前記有効な1つのソフトウェアに関連する証明書に対応する1つの更新された証明書を、前記受信した複数の更新された証明書から選択する選択手段とを備え、前記実行手段は前記1つの最新かつ選択された証明書を用いて前記複数のソフトウェアのうちの前記有効な1つのソフトウェアを検証する。
この構成により、装置は、どの更新された証明書が有効なコンポーネントに対応するかを検出することなく、サーバ上にある更新された証明書を受信する。よって、発明の本態様によると、サーバが送信する証明書のセットをカスタマイズすることなく、有効なコンポーネント用に適切な証明書を更新することが可能であり、よって、複数の更新された証明書の発行に必要な潜在的に秘密性の高い鍵をサーバに置く必要がなく、安全なオフラインの設備において管理される。
図1は、先行技術を表すブロック図である。 図2は、先行技術のセキュアブートシーケンスを示す。 図3は、オプショナルコンポーネント制御構造体に係る携帯装置のライフタイムおよび外部との相互関係を示す。 図4は、オプショナルコンポーネント制御テーブルおよび関連データを維持するためのキーコンポーネントを表すブロック図である。 図5は、オプショナルコンポーネントをサポートするために必要とされるテーブルを表す付加的なデータを含むRIM証明書を示す。 図6は、ラベル−証明書対応テーブルを示す。 図7は、次コンポーネントテーブルを示す。 図8は、カウンタ値、証明書の識別子および証明書の状態を示すテーブル、およびオプショナルコンポーネントの状態を表す暗号署名を含むオプショナルコンポーネント制御テーブルを示す。 図9は、本発明のオプショナルコンポーネント制御テーブルを初期化するプロセスを示すフローチャートである。 図10は、内部RIM証明書の無効化プロセスと、本発明のオプショナルコンポーネント制御テーブルに必要な相互作用を示すフローチャートである。 図11は、本発明のオプショナルコンポーネント制御テーブルを更新するための、サーバとの交信プロセスを示すシーケンス線図である。 図12は、証明書の識別子および証明書の状態を示すテーブルを含むオプショナルコンポーネント制御テーブルを示しており、オプショナルコンポーネントの状態を表す。 図13は、図12のテーブルを保護するオプショナルコンポーネント制御テーブルRIM証明書を示す。 図14は、本発明の初期ブート中にオプショナルコンポーネント制御テーブルを初期化するプロセスを示すフローチャートである。 図15は、本発明のオプショナルコンポーネント制御テーブルを用いた、内部RIM証明書の無効化プロセスを示すフローチャートである。 図16は、本発明のオプショナルコンポーネント制御テーブルを更新するための、サーバとの交信プロセスを示すシーケンス線図である。 図17は、サーバから携帯装置へ送られるオプショナルコンポーネント更新テーブルを示す。 図18は、顧客機器によるオプショナルコンポーネント制御テーブルの維持をサポートするために用いられる、サーバ内のキーコンポーネントを表すブロック図である。 図19は、オプショナルコンポーネントを伴うセキュアブートを表すブロック図である。 図20は、エラー検出およびオプショナルコンポーネントを伴うセキュアブートの追加的なシーケンスを示す。 図21Aは、本発明のオプショナルコンポーネントを伴うセキュアブートを実行するプロセスを示すフローチャートである。 図21Bは、本発明のオプショナルコンポーネントを伴うセキュアブートを実行するプロセスを示すフローチャートである。 図21Cは、本発明のオプショナルコンポーネントを伴うセキュアブートを実行するプロセスを示すフローチャートである。 図22は、本発明のオプショナルコンポーネントを伴うセキュアブートを実行するプロセスを示すフローチャートである。 図23は、本発明のオプショナルコンポーネントを伴うセキュアブートを実行するプロセスを示すフローチャートである。 図24は、本発明のオプショナルコンポーネントを伴うセキュアブートを実行するプロセスを示すフローチャートである。
本発明の第1の態様によると、サーバに接続可能な装置は、各々が1つの証明書に割り当てられる複数のソフトウェアと、前記複数のソフトウェアに関連付けられ、かつ各々が前記複数のソフトウェア各々の検証に用いられる複数の証明書とを格納する格納手段と、前記複数のソフトウェアの1つを、前記装置で実行可能な前記複数のソフトウェアのうちの有効な1つのソフトウェアとして、前記装置に設定する設定手段と、前記複数のソフトウェアのうちの前記有効な1つのソフトウェアに関連する証明書を用いて、前記複数のソフトウェアのうちの前記有効な1つのソフトウェアを検証し、前記検証の後に、前記複数のソフトウェアのうちの前記有効かつ検証されたソフトウェアを実行する実行手段と、前記複数の証明書のうち、何れが前記複数のソフトウェアのうちの前記有効な1つのソフトウェアに対応するかを検出することなく、更新すべきと前記サーバによって判定された所定の証明書に対応する複数の更新された証明書を前記サーバから受信する受信手段と、前記複数のソフトウェアのうちの前記有効な1つのソフトウェアに関連する証明書に対応する1つの更新された証明書を、前記受信した複数の更新された証明書から選択する選択手段とを備え、前記実行手段は前記1つの更新され選択された証明書を用いて前記複数のソフトウェアのうちの前記有効な1つのソフトウェアを検証する。
本発明の第2の態様によると、前記サーバは、前記複数の更新された証明書を前記装置およびもう1つの別の装置に共通して送信する。
本発明の第3の態様によると、前記複数の更新された証明書は、前記複数のソフトウェアのうちの前記1つの有効なソフトウェアとは異なる、前記複数のソフトウェアのうちの1つのソフトウェアに関連する証明書に対応する更新された証明書を含む。
本発明の第4の態様によると、前記装置はさらに、前記1つの更新された証明書に基づき、前記複数のソフトウェアのうちの前記1つの有効なソフトウェアに関連する証明書を更新する更新手段を備え、前記実行手段は、前記更新手段が更新した証明書を用いて前記複数のソフトウェアのうちの前記有効な1つのソフトウェアを検証する。
本発明の第5の態様によると、前記装置はさらに、前記装置の固有鍵である装置鍵を格納する装置鍵格納手段を備え、前記更新手段は、前記装置鍵を用いて前記1つの更新された証明書を変換し、前記変換された1つの更新された証明書で前記複数のソフトウェアのうちの前記有効な1つのソフトウェアに関連する証明書を上書きすることにより、前記複数のソフトウェアのうちの前記有効な1つのソフトウェアに関連する証明書を更新する。
本発明の第6の態様によると、前記装置はさらに、前記設定手段が前記装置に、前記複数のソフトウェアのうちの1つを前記複数のソフトウェアのうちの前記有効な1つのソフトウェアとして設定したとき、前記複数のソフトウェアのうちの前記有効な1つのソフトウェアを示す許可フラグを格納するフラグ格納手段を備え、前記選択手段は、前記複数のソフトウェアのうちの前記有効な1つのソフトウェアに関連する証明書に対応する1つの更新された証明書を、前記フラグ格納手段に格納されている前記許可フラグに基づいて、前記受信した複数の更新された証明書から選択する。
本発明の第7の態様によると、前記装置はさらに、前記無効化手段が前記格納手段に格納されている前記1つの証明書を無効化するときに、カウンタ値をインクリメントするカウンタと、カウンタ値がインクリメントされたとき、前記許可フラグを含む管理情報に前記インクリメントされたカウンタ値を設定するカウンタ値設定手段と、前記管理情報に設定された前記カウンタ値を用いて前記管理情報が改竄されているか否かを判定する判定手段とを備える。
本発明の第8の態様によると、前記装置はさらに、前記許可フラグと前記カウンタ値とを含む前記管理情報の暗号技術的ハッシュ値を算出する算出手段と、前記算出された暗号技術的ハッシュ値に対応する検証値を格納する値格納手段と、前記選択手段が前記1つの更新された証明書を選択するために前記管理情報を用いる前に、前記格納された検証値と前記算出された暗号技術的ハッシュ値とを比較することにより、前記管理情報が改竄されているか否かを検証する検証手段を備える。
本発明の第9の態様によると、前記装置はさらに、前記複数のソフトウェアと前記複数の証明書の間のマッピングを示すマッピングデータを格納するマッピングデータ格納手段と、前記マッピングデータの暗号技術的ハッシュ値を算出する算出手段と、前記算出された暗号技術的ハッシュ値に対応する検証値を格納する値格納手段と、前記選択手段が前記1つの更新された証明書を選択する前に、前記格納された検証値と前記算出された暗号技術的ハッシュ値とを比較することにより、前記マッピングデータが改竄されているか否かを検証する検証手段を備え、前記選択手段は、前記マッピングデータに基づき前記1つの更新された証明書を選択する。
本発明の第10の態様によると、前記装置はさらに、前記無効化手段が前記格納手段に格納されている前記1つの証明書を無効化するときに、カウンタ値をインクリメントするカウンタと、カウンタ値がインクリメントされたとき、前記マッピングデータに前記インクリメントされたカウンタ値を割り当てるカウンタ値割り当て手段とを備え、前記算出手段は、前記マッピングデータと前記マッピングデータに割り当てられた前記カウンタ値とを用いて前記暗号技術的ハッシュ値を算出する。
<本実施形態の概要>
本実施形態は、ソフトウェアの検証に用いられる証明書を更新することができるシステムに関する。装置が1つ以上のオプショナルコンポーネントを有する場合、どのコンポーネントを有効化するかは、ユーザの決定次第である。よって通常、サーバは、有効なコンポーネントに対応する更新された証明書を送信するために、各装置においてどのコンポーネントが有効であるかの情報を知っている必要がある。そしてサーバは、各装置の有効なコンポーネントに対応する、更新された証明書のカスタマイズされたセットを、各装置に送信する。
しかし、装置毎にカスタマイズされたセットを作成するのは煩雑で、費用もかかる。よって、本実施形態は、装置毎にカスタマイズされたセットを作成することなく、証明書を更新するシステムを示す。
本発明は、セキュアブートを実行するシステム内でオプショナルまたは失敗のコンポーネントをサポートするためのシステムに関する。後述する追加のRIM証明書およびデータテーブルを提供することにより、セキュアブートをサポートする装置の開発者は、起動に失敗したコンポーネント、または無効であると示されたコンポーネントを柔軟に扱うシステムや、セキュアブートによってもたらされる信頼された環境内で、コンポーネントの状態を報告できる装置を生産できる。さらに、有効なオプショナルコンポーネントのリストを備えることで、システムが、外部関係者によって有効化および無効化される可能性のあるコンポーネントも処理できるようになる。本実施形態は、装置内の少なくとも1つのコンポーネントがオプショナルコンポーネントであり、そのコンポーネントおよびそのコンポーネントのブート時よりも前にブートした他のコンポーネントを検証するために証明書を用いるシステムを想定している。よって、通常のシステムでは、あるコンポーネントのブートプロセスの失敗、または無効であるためブートされなかったコンポーネントが、その失敗したコンポーネントの後にブートする他のコンポーネントに影響を与える。これは、その失敗したコンポーネントがオプショナルコンポーネントであり、他のコンポーネント自体は有効だとしても起こることである。この問題を避けるために、本実施形態では、以下に説明するように、失敗RIM証明書および成功RIM証明書を用いている。
この構成もまた、従来技術よりも新しい技術である。しかしながら、証明書の無効化に関する本発明の一部は、上記に示した課題を扱わないシステムにも適用できる。
セキュアブートをサポートする装置の、オプショナルコンポーネントの取り扱いを含む、コンポーネントを無効化するための新しいシステムおよび方法を説明する。本願を完全に理解するため、以下、具体的な詳細を多数挙げて説明する。他の例では、周知の構造および装置をブロック図に示し、説明を簡単にするため、具体的な詳細は説明していない。しかしながら、当業者であれば、改良により、またはそのような具体的な説明がなくとも、本願を実施することができるのは明らかである。好適な実施形態の説明により、クレームの範囲が限定されるものではない。
<本実施形態の詳細>
本発明は、セキュアブートを実行するシステム内でオプショナルまたは失敗のコンポーネントをサポートするためのシステムに関する。後述する追加のRIM証明書およびデータテーブルを提供することにより、セキュアブートをサポートする装置の開発者は、起動に失敗したコンポーネントを柔軟に扱うシステムや、セキュアブートによってもたらされる信頼された環境内で、コンポーネントの状態を報告できる装置を生産できる。
図1は、先行技術を示す。この図は、RTV+RTM、および信頼エリア100内のMTMインタフェース等のコアエレメントが自己検証を終えた時点でのセキュアブートプロセスの状態をとらえたものである。MTM102は、この信頼エリア100のコアであるが、他の重要な構成要素として、セキュアブートが正しく進んできたか否かを示すフラグであるシステムの状態104、システムの状態104を設定するシステムエラーレコーダ106、信頼エリア100に追加される次コンポーネントを立ち上げるランチャ108、および必要な成功RIM証明書114を検索する証明書データベース110がある。これらの成功RIM証明書114は、セキュアブートが完全に成功した時の期待されるプラットフォームの状態を記述している。RIM証明書は、セキュアブートが成功するか否かを正しくチェックするために、変更できないように保護されなければならないので、完全性が保護され、完全性保護112のデータ項目の集合内に置かれている。TCGに定義されているように、この完全性の保護は、署名されたハッシュをRIM証明書内に埋め込むことで達成でき、それによりMTM102による改竄の検出が可能になる。
セキュアブートの目的は、信頼エリア100を拡大し、信頼コンポーネント1 116、信頼コンポーネント2 118、および信頼コンポーネント3 120のような追加的コンポーネントを包含することである。122、124および126とラベル付けされた、ランチャ108から、信頼コンポーネント1 116、信頼コンポーネント2 118、および信頼コンポーネント3 120への点線は、先行技術の一態様における通常の実行パスを示す。先行技術の他の態様においては、最終的な信頼コンポーネントとしてのオペレーティングシステム(図示せず)に伴って、さらなる信頼コンポーネントが存在してもよい。信頼コンポーネントを立ち上げるための特定のシーケンスは、その特定のセキュアブートシステムの設計によって決まる。
図2は、図1に示す方法における先行技術のセキュアブートプロセスの結果を示す。ここで、標準的なブートシーケンスはMTM102から開始し、その後信頼コンポーネント1 116が動作し、信頼コンポーネント2 118、さらに信頼コンポーネント3 120、信頼コンポーネント4 200、信頼コンポーネント5 202、そして最後にオペレーティングシステム204へと制御が移る。信頼コンポーネント2 118、信頼コンポーネント4 200、および信頼コンポーネント5 202は、信頼コンポーネント1 116および信頼コンポーネント3 120が提供する基本的なサービスに加えて、さらにオプショナルサービスを提供するコンポーネントである。成功の場合は、フロー206のように、全コンポーネントが動作に成功し、完全に動作している信頼エリア208が利用できる。しかしながら、フロー210においては、信頼コンポーネント4 200がロードに失敗した結果、失敗した状態であるため信頼エリア212全体が利用できなくなる。信頼エリアの図208および212において、MTMはMTM102、TC1は信頼コンポーネント1 116、TC2は信頼コンポーネント2 118、TC3は信頼コンポーネント3 120、TC4は信頼コンポーネント4 200、TC5は信頼コンポーネント5 202、OSはオペレーティングシステム204を表している。全コンポーネントはMTM102に依存し、加えて、信頼コンポーネント2 118は信頼コンポーネント1 116に依存し、信頼コンポーネント4 200および信頼コンポーネント5 202は信頼コンポーネント3 120に依存する。オペレーティングシステム204は信頼コンポーネント1 116および信頼コンポーネント3 120に依存する。陰付きの部分は、使用できないコンポーネントを示す。
図3は、セキュアブートを特徴とする携帯装置のライフサイクルを示す。工場300で、初期化プロセス302において、各装置でどのオプショナルコンポーネントが利用可能であるかを示す情報と共にオプショナルコンポーネントのセットをインストールする。携帯装置が携帯電話販売店304またはオンラインストア等の他の販売業者に出荷されると、顧客はオプショナルコンポーネントに対応する様々なオプション306を購入または契約することができる。これで携帯装置308が使用できる状態になり、TCG Mobile Reference Architectureに定義されているように、その装置の使用期間中に、オプショナルコンポーネントおよび必須のコンポーネント用の証明書310の全装置への送信312等が行われる。さらに、その装置の所有者は、携帯通信事業者または他の装置管理団体が提供するサーバ316を介して契約オプション314のセットを明示的に更新し、ある特定の装置で利用可能なオプショナルコンポーネントを更新することが可能である。オプショナルコンポーネントの管理に係る各プロセスの動作を以下に説明する。
図4は、本発明の一態様、具体的には、システム内のオプショナルコンポーネントを生成および維持する方法を示す。重要な機能上の構成要素およびデータの項目は以下の通りである。まず、データ構造は全て、完全性保護400されており、好適な実施形態において、これは署名されたハッシュを用いることで達成されている。このデータ構造は、まず、成功RIM証明書402および失敗RIM証明書404である。成功RIM証明書は、全てのコンポーネントが適切に動作している場合の、セキュアブート中に期待されるプラットフォームの状態を記述したものであり、失敗RIM証明書は、1つ以上のコンポーネントが適切に動作しなかった場合の、セキュアブート中に期待されるプラットフォームの状態を記述したものである。ラベル−証明書対応テーブル406は、信頼されたコンポーネントの状態を特定の成功RIM証明書402または失敗RIM証明書404に対してマッピングし、オプショナルコンポーネント制御テーブル408は、どのオプショナル信頼コンポーネントが有効で、どれが無効かを記述し、デフォルトオプショナルコンポーネント制御テーブル410は、携帯電話の初回ブート時、または万一オプショナルコンポーネント制御テーブル408が破損した場合等に、オプショナルコンポーネント制御テーブル408を初期化する際に用いられる。好適な実施形態において、このテーブルの構成はオプショナルコンポーネント制御テーブル408の構成と同様である。このオプショナルコンポーネント制御テーブル408を初期化するため、初期化部426が、デフォルトオプショナルコンポーネント制御テーブル410に基づいて、オプショナルコンポーネント制御テーブル408を作成する。このプロセスの詳細は後に説明する。
証明書更新部412は、携帯電話通信塔から無線ネットワーク416を通じて送出され、更新受信部414により装置が受信する証明書リストを処理することにより、成功RIM証明書402および失敗RIM証明書404を最新の状態に保つ。このプロセスの詳細は後に説明する。当業者であれば、メモリカードやその他の有線または無線の送信手段を介する等、他にも更新を可能にする方法があることがわかるであろう。
契約更新部418は、機器上のウェブブラウザ420に、サーバ424にあるオプショナルコンポーネントの維持ページにアクセスするよう要求することで、オプショナルコンポーネント制御テーブル408を有効な状態または無効な状態に保つ。好適な実施形態において、ウェブブラウザ420からサーバ424への接続422には、通信路を攻撃から守るためにセキュアソケットレイヤ(SSL)を用いる。このプロセスの詳細は後に説明する。
図5は、RIM証明書500、TCG Mobile Trusted Module仕様書により定義されるRIM証明書に基づく、成功RIM証明書402および失敗RIM証明書404の詳細を示す。オプショナルコンポーネントへの対応を可能にするため、mapIDtoCertTableSize 506、mapIDtoCertTable 508、nextComponentTableSize510およびnextComponentTable 512が証明書に加えられ、extensionDigest 504のエントリは、これらの追加されたデータの暗号技術的ハッシュ値を含む。この拡張されたRIM証明書の例は1つだけでよく、また実施の形態ではこれらのテーブルをRTV+RTMが自己検証に使用する単一のRIM証明書に付加する。しかし、従来技術のこの態様は、ここでは述べない。
加えて、RIM証明書500は、RIM証明書を特定するラベルフィールド502を有する。
技術分野の当業者は、RIM証明書500を使用することなく、mapIDtoCertTable 508およびnextComponentTable 512の完全性を利用可能にし、かつ維持する他の方法、例えば、署名者および信頼エリア100の両方が知っている秘密鍵を使用して、各テーブルに対し個々にまたは一度にデジタル署名するなど、他の方法があることを理解できるであろう。
図6は、コンポーネントを識別する識別子となる論理証明書ラベルおよび1つ前に起動するソフトウェアコンポーネントから、実際のRIM証明書までのマッピングを示すデータエントリを持つID−証明書対応テーブル508のフォーマットを示す。ID−証明書対応テーブル508は、論理識別子と、前のソフトウェアコンポーネントの状態情報とから、検証データを含む実際の完全性測定証明書への第2マッピングの一例である。第1列の論理証明書ラベル600は、論理識別子の一例であって、特定の成功RIM証明書、および、ゼロまたは1つ以上の失敗RIM証明書の特定の役割を示す識別ラベルであり、かつ、システムの他の部分がRIM証明書を要求するために使用するラベルである。第2列の、依存する信頼コンポーネントの状態602には、どの信頼コンポーネントエラー状態のセットに対して各行が有効であるかを示すフラグが並べられている。第3列の、依存する信頼コンポーネントのマスク604には、どのコンポーネントの状態をチェックするべきかを示すフラグが並べられている。実施の形態では、これらの2つの列は、ビットマップを使用して実装される。最後に、RIM証明書ラベル606の列には、RIM証明書データベースから成功RIM証明書402または失敗RIM証明書404を検索するために用いられる実際のRIM証明書ラベルが保持されている。RIM証明書ラベル606は、検証データを含む実際の完全性測定証明書の一例である。この値は、TCGで定義されるRIM証明書ラベルフィールド502の例を表す。
図7は、サンプルデータのエントリを持つ次コンポーネントテーブル512のフォーマットを示す。次コンポーネントテーブル512は、論理識別子と、前のソフトウェアコンポーネントの状態情報とからコンポーネント識別子への第3マッピングの一例である。第1列の失敗信頼コンポーネント700は、論理識別子の一例であって、失敗したコンポーネントを示す識別子である。第2列の依存する信頼コンポーネントの状態702には、前のソフトウェアコンポーネントの状態情報の一例であって、どの信頼コンポーネントエラー状態のセットに対して現在の行が有効であるかを示すフラグが並べられている。第3列の、依存する信頼コンポーネントマスク704には、どのコンポーネントの状態をチェックするべきかを示すフラグが並べられている。実施の形態では、これらの2つの列は、ビットマップを使用して実装される。最後に、立ち上げるべき信頼コンポーネント706の列は、コンポーネント識別子の一例であって、所定の失敗信頼コンポーネント700と、依存する信頼コンポーネントの状態702のセットとに対して、次にどのモジュールを立ち上げるべきか、またはセキュアブートが回復不可能な状態に陥ったためにブートを中止すべきか否かを記述する識別子である。図4を参照すると、信頼コンポーネント1 116または信頼コンポーネント3 120がロードに失敗した場合、次に立ち上げるべき信頼コンポーネント706が、実際にブート中止の指示を示してもよい。これは、これら2つのコンポーネントが、完全な信頼システムの動作に必要不可欠な基本コンポーネントであるからである。信頼コンポーネント2 118、信頼コンポーネント4 200、または信頼コンポーネント5 202が失敗した場合、例えば、信頼コンポーネント3 120、信頼コンポーネント5 202、およびオペレーティングシステム204の各々が次に立ち上げるべき信頼コンポーネント706であることを示すエントリが存在してもよい。
ID−証明書対応テーブル508および次コンポーネントテーブル512の内容は、ある特定の機器に必要なセキュアブートシーケンスの設計によって決まる。RTV+RTMが自己検証に使用するRIM証明書にこれらのテーブルを付加する上述の実施形態において、TCGが定めるRIM証明書発行機関(ほとんどの場合、装置の製造者)は、これらのテーブルを生成し、特定のRIM証明書にそのデータを追加し、その後証明書に署名して、装置での利用を可能にする。しかしながら、これらのテーブルは他者によって生成され、RIM証明書とは別に送信されてもよい。さらに、セキュアブートシステムが自身のセキュアブートシーケンスを分析できれば、そのセキュアブートシステム自身がそれらのテーブルを生成してもよい。
これらのテーブルは、どのコンポーネントが他のコンポーネントに依存するかを示す情報に従って生成される。コンポーネントAが他のコンポーネントBに依存する場合、コンポーネントBのブート手順が失敗すれば、コンポーネントAのブートは行われるべきではない。そしてコンポーネントAがコンポーネントBから独立していれば、コンポーネントBのブートが成功しなかった場合でも、ブートプロセスをコンポーネントAのブート手順から再開することができる。もちろん、これらのテーブルはより多くの情報に従って生成されてもよい。例えば、これらのテーブルは、他の独立コンポーネントのブート手順が失敗すればブートされるべきではないコンポーネントを示す情報に従って生成されてもよい。この情報は、各信頼コンポーネントの作成者によって生成され、提供されてもよい。
携帯装置の所有者、プロバイダー、製造業者等の外部関係者によって選択的に有効にされる可能性のあるこれらの信頼コンポーネントを管理するため、その装置は、どのオプショナル信頼コンポーネントが有効で、どれが無効であるかを示すリストを維持する。図8は、オプショナルコンポーネント制御テーブル408におけるこのデータの好適な実施形態を示す。オプショナルコンポーネント制御テーブル408は、論理識別子からソフトウェアコンポーネントの有効状態フラグへの第1マッピングの一例である。RIMProtectValue 802は、ロールバックまたはリフラッシュの攻撃からの構造体の保護を支援するための、構造体作成時または更新時のTCG Mobile Trusted Module仕様書が定義するcounterRIMProtect単調カウンタのコピーである。その下に来るのは各行が2つのフィールドをもつテーブルである。最初のフィールドは、オプショナル信頼コンポーネントの論理証明書ラベル804であり、ここではmapIDtoCertTable 508内の論理証明書ID 600に用いられるものと同一のコンポーネント識別子が用いられている。なお、論理証明書ラベル804は、論理識別子の一例である。次は、論理証明書ID 804が特定したオプショナル信頼コンポーネントが有効か否かを示すフラグ806であり、当該フラグを、有効である場合はTRUEに、無効である場合はFALSEに設定する。フラグ806は、ソフトウェアコンポーネントの有効状態フラグの一例である。この値のペアは、システム内の各オプショナル信頼コンポーネントに対し繰り返され、−1の論理証明書ID 808、および無効にするために通常はFALSEに設定されるフラグ810によりテーブルを終了する。この値のペアのセットの集合は、論理証明書ラベルテーブル814として知られている。最後に、オプショナルコンポーネント制御構造内の上記データ全てを改竄から保護するために、PKCS #1 v1.5仕様書に従って生成され、下記図9で説明する通りに作成された外部プロセスからは利用できない秘密鍵を使って署名された暗号署名812がある。当該技術分野の当業者は、各オプショナルコンポーネントの状態の完全性を利用可能にし、維持できる他の方法や、HMACのような他のデジタル署名アルゴリズムを用いてもよいことを理解するだろう。
図9は、本発明のオプショナルコンポーネント制御テーブルの、初期作成を示す。図示されたプロセスは、TCG Mobile Trusted Module仕様書に初期ブート用に詳述されている通り、ひとたびMTMが初期起動すると起こる、装置を初めてブートする時のプロセスである。また、そのドキュメントに詳述されているように、初期ブートは携帯装置のライフサイクルにおいて他の時点でも起こりえるため、図9は必要に応じた構造体の再作成も示す。まず、一連の初期ブートにおいてMTMおよび信頼性のルートを確立して初期化するために十分な初期化を行った後に、MTMからのオプショナルコンポーネント制御構造体に署名するための秘密鍵が要求される900。好適な実施形態において、秘密鍵はRSAキーペアの私有鍵を示す。この要求の成功または失敗がチェックされ902、MTMが要求された鍵を発見できなかったときは、MTM内で秘密鍵を作成する904。この鍵は、TPMメイン仕様書パート2に定義されている使用法タイプであるTPM_KEY_SIGNINGで作成されなければならない。また、好適な実施例において、この鍵のアルゴリズムは1024ビット長のTPM_ALG_RSAであり、TPM_SS_RSASSAPKCSA1v15_SHA1署名スキームとともに使用できる。しかし、秘密鍵が見つかったときは、鍵を作成する必要がなく、その代わりに、既存の、有効に署名されたオプショナルコンポーネント制御テーブルがあるか否かを確認する906。既存の、有効に署名されたオプショナルコンポーネント制御テーブルがある場合は、構造体を再作成すると例えば変更されたオプションを上書きする可能性があることから、再作成する必要がなく、TCG Mobile Reference Architectureに定められているように、初期ブート手順が他の処理と共に進む920。オプショナルコンポーネント制御テーブルがない場合(または秘密鍵が見つからなかったので作成しなければならなかった場合904)、RIM証明書を保護するためにMTMによって管理される単調カウンタが要求され910、オプショナルコンポーネントのデフォルト状態情報が要求される912。新たなオプショナルコンポーネント制御テーブルが作成され914、単調カウンタがRIMProtectValueフィールド802に、また、オプショナルコンポーネントおよびその状態がフィールド804およびフィールド806に挿入され、テーブル終了信号値808および810が作成される。次に、この新たな構造体が、先に作成または取得された鍵を用いた暗号署名の要求と共に、MTMに送られる916。この署名プロセスにより、暗号署名812が作成される。これで、公にアクセス可能な位置においてさえ、改竄防止オプショナルコンポーネント制御テーブル408が、望む通りに格納できる。これで、オプショナルコンポーネント制御テーブルの作成プロセスが完了し、初期ブート手順が、TCG Mobile Reference Architectureに定められている通り、他の処理と共に進む920。
図10は、TCG Mobile Reference Architectureのセクション6.3.4.5に記載されているRIM無効化のタスクに必要な、本発明の追加的な処理を示す。その仕様書には、RIM_Authがどのように検証されるか、RIM_Cert有効性リストがどのようにチェックされ、新たな有効性リスト上の対応する外部RIM_Certを有しない全ての内部RIM_Certが削除されるか、残りの全ての内部RIM_Certがどのように再有効化されるか、また、counterRIMProtect単調カウンタがどのように更新されるかが説明されている。図10が示すプロセスにより、counterRIMProtect単調カウンタが更新され、残りの全ての内部RIM_Certが再有効化される。まず、オプショナルコンポーネント制御構造体を取得する1000。次に、データが依然として有効で、かつ改竄されていないことの検証を可能にするために、暗号署名512の作成に用いられる秘密鍵の公開部分をMTMから取得し(1002)、かつ現在のcounterRIMProtect単調カウンタをMTMから取得する(1004)。署名を検証して当該データが改竄されていないことを確かめ(1006)、現在のcounterRIMProtect単調カウンタを、オプショナルコンポーネント制御構造体(408)に格納されているRIMProtectValue802と比較する。その格納された値が、現在の単調カウンタ値よりも大きいか、または同じである場合、オプショナルコンポーネント制御構造体は最新であり、その構造体にリフラッシュやロールバック攻撃が起こっていないことを示している。その2つのチェックの結果が、署名が正しくない(1008)か、または現在の単調カウンタの値がオプショナルコンポーネント制御構造体(408)内のRIMProtectValue802よりも大きいことを示す場合は、このRIM無効化プロセスは失敗し(1010)、インストールされたプログラムも、RIM証明書も変更されない。しかしながら、そのチェック結果が、オプショナルコンポーネント制御構造体が有効であることを示す場合は、オプショナルコンポーネント制御構造体(408)内のRIMProtectValue802を、1004で取得したcounterRIMProtect単調カウンタの現在の値に1を足したものに設定する(1012)。暗号署名は、1002で取得した秘密鍵で署名されたPKCS v1.5アルゴリズムに従って生成される(1014)。次に、TCG Mobile Reference Architecture仕様書に説明されているタスクを実行する。既存の内部RIM証明書が、インクリメントされたRIMProtectカウンタ値で再有効化され(1016)、RIM証明書およびオプショナルコンポーネント制御構造体(408)をロールバックやリフラッシュの攻撃から保護するために、counterRIMProtect単調カウンタの値がインクリメントされる(1018)。最後に、残りの無効化機能をTCG Mobile Reference Architecture仕様書に説明されているように実行する(1020)。
図11は、オプショナルコンポーネントの有効化および無効化を制御する携帯装置1100とサーバ1104の間の通信処理を示す。加えて、携帯装置1100のMobile Trusted Module 1102から、携帯装置1100が要求するサービスも示す。まず、ユーザが、サーバに格納されている契約維持オプションを要求する1106。好適な実施形態において、これは、サーバとSSL(セキュアソケットレイヤ)セッションを確立することによって実行する。そしてサーバは、装置のIDおよび信頼性を検証するために、TCG仕様書アーキテクチャの概要で定義されているような装置の認証を行う1108。装置は、MTMからサーバへのレポートを可能にするために、MTMへ認証の要求を転送する1110。MTM1102から、装置を介してサーバへ確認メッセージを返す1112、1114。認証が成功し完了すると、好適な実施形態においては、顧客はDiffie−Hellman鍵交換によってサーバとの間で共有秘密を確立する1116、1118。次にサーバが、特定された携帯電話に適した、カスタマイズされたオプショナルコンポーネントのページを送信する1120。好適な実施形態において、これは、HTMLベースのページであり、どのオプションを装置に追加するか、または削除するかを選択するために、装置のユーザが交信を行う1122。所望の変更がなされた後、装置は、各オプショナルコンポーネントの新しい有効な状態または無効な状態を含む、交信完了を示すメッセージを送信する1124。好適な実施形態において、これはPOSTによって、先に送信されカスタマイズされたオプションページ1120内に記述されているHTTPSページに実行される。他の好適な実施形態において、装置は、装置のユーザが行った変更毎に別々のメッセージを送信する。他の好適な実施形態において、装置は、AJAXベースのメカニズムを用いて変更が行われる毎にすぐに、別々のメッセージを送信し、ユーザは、一旦変更を終えると完了メッセージを送信するオプションを選択する。サーバは、サーバの顧客データベースを適切に更新してから、装置に、1116および1118で確立された鍵で暗号化された、更新されたオプショナルコンポーネントの状態フラグの新たなセットを送信する1126。これらのステップは、図18の項目1814、1816、1818、1820および1822に対応する。好適な実施例において、そのデータは論理証明書ラベルテーブル814と類似のフォーマットで記述される。つまり、論理証明書ラベル804と有効フラグ806との複数のペアを有し、−1 808とFALSE 810との一組のペアで終了する。これは図17に示されており、オプショナルコンポーネント更新テーブル1700は、上述のような論理証明書ラベルテーブル814と、およびデータが送信中に破損していないことを保証するテーブルのハッシュ1702とを有する。装置はオプショナルコンポーネント更新構造体を復号して検証し1128、それが成功すると、有効なコンポーネントおよび無効なコンポーネントを確実に正しく構成できるようにオプションの処理を開始する。
次のタスクは、この装置による各RIM証明書の再インストールである1130。このインストールは、装置に、成功RIM証明書と失敗RIM証明書との何れも含む全ての内部RIM証明書に対して繰り返される1132。この動作により、RIM Protectカウンタがインクリメントされる1146前に、証明書内に保持されるRIM Protectカウンタ値が確実にインクリメントされる。それとは逆にカウンタが先にインクリメントされると、再インストールプロセスの完了前にシステムが機能停止し、装置はブートできない状態のままになる可能性がある。全ての既存の内部RIM証明書が更新されると、現在のRIMProtectカウンタ値がMTMから要求され1134、この値が返される1136。新たなオプショナルコンポーネント制御テーブルが、1134で取得されたRIMProtectカウンタ値よりも1つ大きな値と、1128からの更新されたオプション情報とを用いて作成される1138。MTM1102に対し、図9に示した方法により生成された署名鍵を用いてデータに署名するよう要求する1140。MTM 1102が署名を返し1142、装置が、新たなオプショナルコンポーネント制御テーブルで以前のテーブルを上書きして格納する1144。
ロールバックやリフラッシュの攻撃から保護するために、装置はMTM1102に対しRIMProtect単調カウンタのインクリメントを要求し1146、MTM1102は動作の成功を応答する1148。これで、オプショナルコンポーネントに関連する、装置の全ての情報、具体的には、オプショナルコンポーネント制御構造体408、適切な成功RIM証明書402および失敗RIM証明書404、ならびにcounterRIMProtect単調カウンタが成功裏に更新され、装置がサーバに対し、処理の完了を通知する1150。最後に、確実に新たに有効化されたコンポーネントが動作し、無効なコンポーネントが動作を停止するように、装置が再ブートする1152。
上述のように、図8〜図11はオプショナルコンポーネント制御テーブル408がRIMProtectValue802および暗号署名812を有する場合の好適な実施例を示しているが、以下に、オプショナルコンポーネントの、有効な状態、または無効な状態
を維持するための他の好適な実施形態を説明する。
図12は、上記に説明したオプショナルコンポーネント制御テーブル808の簡易版であるオプショナルコンポーネント制御テーブル1200における、このデータの好適な実施形態を示す。オプショナルコンポーネント制御テーブル1200は、第1マッピングの一例である。上述のように、各行に2つのフィールドをもつテーブルがあり、最初のフィールドは、オプショナル信頼コンポーネントの論理証明書ラベル804であり、ここではmapIDtoCertTable 508内の論理証明書ラベル600に用いられるものと同一のコンポーネント識別子が用いられている。次は、論理証明書ラベルによって特定されるオプショナル信頼コンポーネントが有効か否かを示すフラグ806であり、有効な場合はTRUEに、無効な場合はFALSEに設定される。この値のペアは、システム内の各オプショナル信頼コンポーネントに対し繰り返され、−1の論理証明書ラベル808と、無効にするために通常はFALSEに設定されるフラグ810とによりテーブルを終了する。この値のペアのセットの集合は、論理証明書ラベルテーブル814として知られている。
図13は、オプショナルコンポーネント制御テーブル1200の完全性を維持するために用いられるオプショナルコンポーネント制御RIM証明書の好適な実施形態を示す。このRIM証明書1300は、装置内で作成されることから、TCG Mobile Trusted Module仕様書に定義されるように、常に内部RIM証明書である。単一の装置の中に、そのような証明書は1つのみしかないことから、label 1302は固定ストリングであり、好適な実施形態において「OCC_RIMC」に設定される。先の実施形態において、ロールバックまたはリフラッシュの攻撃からの保護にはRIMProtectValue 802が用いられたが、ここではreferenceCounter 1304が用いられる。このフィールドは、TCG Mobile Trusted Module仕様書に定義されるように、MTMにより管理される。このRIM証明書は、決してMTM API MTM_VerifyRIMCertAndExtendには送られないため、state 1306はTPM_PCR_SELECTIONが空になるように設定され、measurementPCRIndex 1308の値は0に設定される。measurementValue 1310は、オプショナルコンポーネント制御テーブル1200のハッシュを格納する。好適な実施形態では、この値の生成にSHA−1アルゴリズムを用いる。このハッシュに署名する必要はない。フィールドextensionDigestSize 1312は0に設定され、extentionDigest 1314は表示されない。他の好適な実施形態において、フィールドを0に設定したmeasurementValue 1310のハッシュを格納する代わりに、extentionDigest 1314がオプショナルコンポーネント制御テーブル1200のハッシュを格納し、extensionDigestSize 1312がこのハッシュの大きさをバイト単位で保持する。最後に、integrityCheckSize 1316およびintegrityCheck 1318が、TCG Mobile Trusted Module仕様書に定義されるように、完全性チェック情報を格納する。
図14は、本発明のオプショナルコンポーネント制御テーブルの、初期作成を示す。図示されたプロセスは、初期ブート用のTCG Mobile Trusted Module仕様書に詳述されている通り、ひとたびMTM 102が初期起動すると起こる、装置を初めてブートする時のプロセスである。また、そのドキュメントに詳述されているように、初期ブートは携帯装置のライフサイクルにおいて他の時点でも起こりえるため、図14は必要に応じた構造体の再作成も示す。まず、初期ブートシーケンスにおいてMTMおよび信頼性のルートを確立して初期化するために十分な初期化を行った後に、既存のオプショナルコンポーネント制御テーブル1200が存在するか否かを確認する1400。存在する場合1402、その構造体のハッシュを算出し1404、オプショナルコンポーネント制御RIM証明書1300を呼び出す1406。呼び出しが成功し、measurementValue 1310に格納されたハッシュ値が1404で算出したハッシュ値と等しい場合、MTM_VerifyRIMCertがTPM_SUCCESSを返し、構造体が最新でかつ改竄されていないことを確認した場合は、TCG Mobile Reference Architectureに定義されているように、他の処理と共にその初期ブート手順を続ける1420。1402または1408における何れかのチェック結果が失敗である場合は、オプショナルコンポーネント制御テーブル1200およびオプショナルコンポーネント制御RIM証明書を再作成するか、または初めて作成する。まず、デフォルトのオプショナルコンポーネント制御テーブル1200を作成し1410、その構造体のハッシュを算出する1412。次に、measurementValue 1310を1412で算出したハッシュ値に設定して、署名されていないオプショナルコンポーネント制御RIM証明書1300を作成する1414。この署名されていない証明書を用いてMTM API MTM_InstallRIMを呼び出すことにより1416、MTMは、MTM API MTM_InstallRIMを、有効な内部RIM証明書を作成するためのテンプレートとして用いる。有効な内部RIM証明書は、現在のcounterRIMProtect値をreferenceCounterフィールド1304に挿入し、TCG Mobile Trusted Module仕様書に定義されているように秘密内部鍵を用いてintegrityCheckData 1318を生成することで作成される。これら2つの新たな構造体が格納され1418、初期ブート手順が、TCG Mobile Reference Architectureで指定されている通り、他の処理と共に続く1420。
図15は、TCG Mobile Reference Architectureのセクション6.3.4.5で説明されているRIM無効化のタスクに必要な、本発明の追加の処理を示す。その仕様書には、RIM_Authがどのように検証されるか、RIM_Cert有効性リストがどのようにチェックされ、新しい有効性リスト上に対応する外部RIM_Certを有しない全ての内部RIM_Certがどのように削除されるか、残りの全ての内部RIM_Certがどのように再有効化されるか、また、counterRIMProtect単調カウンタがどのように更新されるかが説明されている。図15が示すプロセスにより、counterRIMProtect単調カウンタが更新され、残りの全ての内部RIM_Certが再有効化される。まず、オプショナルコンポーネント制御テーブル1200を取得し1500、その構造体のハッシュを算出し1502、オプショナルコンポーネント制御RIM証明書1300を呼び出す1504。この呼び出しに失敗した場合、つまり、measurementValue 1310に格納されたハッシュ値が1502で算出したハッシュ値と等しくない場合、またはMTM_VerifyRIMCertがTPM_SUCCESS以外の値を返し、この構造体が最新でないか、または改竄されていることを示す場合は1506、RIM無効化処理は失敗であり1508、インストールされたプログラムもRIM証明書も変更されない。
一方、チェックの結果がオプショナルコンポーネント制御テーブル1200が有効であることを示している場合は、MTMは、1504で取得した既存の証明書を用いてMTM API MTM_InstallRIMを呼び出して1510、referenceCounter フィールド1304に挿入され、インクリメントされたcounterRIMProtect値を伴う新しい内部RIM証明書を作成するためのテンプレートとして使用し、TCG Mobile Trusted Module 仕様書に説明されているように、秘密内部鍵を用いてintegrityCheckData 1318を生成する。
次に、TCG Mobile Reference Architecture仕様書に説明されているタスクを実行する。既存の内部RIM証明書はインクリメントされたRIMProtectカウンタ値で再有効化され1512、counterRIMProtect単調カウンタがインクリメントされ1514、信頼されたコンポーネントのRIM証明書およびオプショナルコンポーネント制御RIM証明書1300の両方をロールバックまたはリフラッシュの攻撃から保護する。最後に、残りの無効化機能をTCG Mobile Reference Architecture仕様書に説明されている通りに実行する1516。
図16は、オプショナルコンポーネントの有効化および無効化を制御する携帯装置1600とサーバ1604の間の通信処理を示す。加えて、携帯装置1600のMobile Trusted Module 1602から、携帯装置1600が要求するサービスも示す。
まず、ユーザが、サーバに格納されている契約維持オプションを要求する1606。好適な実施形態において、これは、サーバとSSL(セキュアソケットレイヤ)セッションを確立することによって実行する。そしてサーバは、装置のIDおよび信頼性を検証するために、TCG仕様書アーキテクチャの概要で定義されているような装置の認証を行う1608。装置は、MTMからサーバへのレポートを可能にするために、MTMへ要求を転送する1610。MTM1602から、装置を介してサーバへ確認メッセージを返す1612、1614。認証が成功し完了すると、好適な実施形態においては、顧客はDiffie−Hellman鍵交換によってサーバとの間で共有秘密を確立する1616、1618。次にサーバが、特定された携帯電話に適した、カスタマイズされたオプショナルコンポーネントのページを送信する1620。好適な実施形態において、これは、HTMLベースのページであり、どのオプションを装置に追加するか、または削除するかを選択するために装置のユーザが交信する1622。所望の変更がなされた後、装置は、各オプショナルコンポーネントの新しい有効な状態または無効な状態を含む、交信完了を示すメッセージを送信する1624。好適な実施形態において、これはPOSTによって先に送信されカスタマイズされたオプションページ1620内に記述されているHTTPSページに実行される。他の好適な実施形態において、装置は、装置のユーザが行った変更毎に別々のメッセージを送信する。他の好適な実施形態において、装置は、AJAXベースのメカニズムを用いて変更が行われる毎にすぐに、別々のメッセージを送信し、ユーザは、一旦変更を終えると完了メッセージを送信するオプションを選択する。サーバは、サーバの顧客データベースを適切に更新してから、装置に、1616および1618で確立された鍵で暗号化された、更新されたオプショナルコンポーネントの状態フラグの新たなセットを送信する1626。これらのステップは、図18の項目1814、1816、1818、1820および1822に対応する。好適な実施例において、そのデータは論理証明書ラベルテーブル814と類似のフォーマットで記述される。つまり、論理証明書ラベル804と有効フラグ806との複数のペアを有し、−1 808とFALSE 810との一組のペアで終了する。これは図17に示されており、オプショナルコンポーネント更新テーブル1700は、上述のような論理証明書ラベルテーブル814、およびデータが送信中に破損していないことを保証するテーブルのハッシュ1702を有する。装置はオプショナルコンポーネント更新構造体を復号して検証し1628、それが成功すると、有効なコンポーネントおよび無効なコンポーネントを確実に正しく構成できるようにオプションの処理を開始する。
次のタスクは、装置が各RIM証明書を、装置に存在する成功RIM証明書と失敗RIM証明書の両方の、全ての内部RIM証明書に対して繰り返し再インストールすることである1630、1632。この動作により、RIM Protectカウンタがインクリメントされる1646前に、証明書内に保持されるRIM Protectカウンタ値が確実にインクリメントされる。それとは逆にカウンタが先にインクリメントされると、再インストールプロセスの完了前にシステムが機能停止し、装置はブートできない状態のままになるかも知れない。全ての既存の内部RIM証明書が更新されると、1628で得られたオプショナルコンポーネント更新構造体からの状態フラグを用いて、新しいオプショナルコンポーネント制御テーブル1200を作成し1634、このテーブルのハッシュを算出する1636。次に、measurementValue 1310を1636で算出したハッシュ値に設定して、署名されていないオプショナルコンポーネント制御RIM証明書1300を作成する1638。この署名されていない証明書を用いてMTM API MTM_InstallRIMを呼び出すことにより1640、MTMはMTM API MTM_InstallRIMを、有効な内部RIM証明書を作成するためのテンプレートとして用いる。有効な内部RIM証明書は、現在のcounterRIMProtect値をreferenceCounterフィールド1304に挿入し、TCG Mobile Trusted Module仕様書に定義されているように秘密内部鍵を用いてintegrityCheckData 1318を生成することで作成される。そして、MTMは携帯装置に署名された構造体を返す1642。この新しい構造体は格納される1644。
ロールバックやリフラッシュの攻撃から保護するために、装置はMTM1602に対しRIMProtect単調カウンタのインクリメントを要求し1646、MTM1602は動作の成功を応答する1648。これで、オプショナルコンポーネントに関連する、装置の全ての情報、具体的には、オプショナルコンポーネント制御構造体408、適切な成功RIM証明書402および失敗RIM証明書404、ならびにcounterRIMProtect単調カウンタが成功裏に更新され、装置がサーバに対し、処理の完了を通知する1650。最後に、確実に新たに有効化されたコンポーネントが動作し、無効なコンポーネントが動作を停止するように、装置が再ブートする1652。
図18は、本発明の別の態様、つまり、装置のユーザによるオプショナルコンポーネントの維持を可能にするサーバ316の構造体が、その装置上で有効化または無効化されることを示す。重要な機能上の構成要素およびデータの項目は以下の通りである。秘密生成部1802、ページ生成部1808、オプション処理部1816、暗号化部1820、およびトランザクションコミッタ1826の5つのブロックは、外部装置へのインタフェースポイントであり、情報の伝達は左から右へ進む。まず、秘密生成部1802が、Diffe−Hellman等の、双方向通信プロトコル1800を用いて共有鍵1804を確立する。次に、携帯装置が契約維持ウェブページを要求する1806。その結果、ページ生成部1808がページを作成し、ページ生成部1808が現在のオプショナルコンポーネントの状態を顧客オプション維持部1810に要求し、顧客オプション維持部1810が現在の状態を知るために顧客オプションデータベース1812に問い合わせを行う。装置のユーザが生成されたウェブページとの交信を終えると、完了メッセージがサーバに送信され1814、オプション処理部1816が、顧客オプション維持部1810にその新たなオプションを通知し、顧客オプションデータベース1812内でトランザクションを開始する。そのオプションはオプショナルコンポーネント制御テーブル生成部1818に送られ、そこでオプショナルコンポーネント更新テーブル1700にフォーマットされる。暗号化部1820が、共有鍵1804でこの構造体を暗号化し、その構造体を携帯装置に返す1822。最後に、携帯装置が全ての内部構造体を更新し終えると、トランザクションコミッタ1826が完了メッセージを受信し1824、顧客オプション維持部1810に、顧客オプションデータベース1812内で進行中のトランザクションを完了しなければならないことを通知する。
上記の図は、オプショナルコンポーネント制御テーブルがどのように管理されるかを説明しており、以下の項では、それがマルチパスセキュアブート中にどのように使用されるかを説明する。
図19は、図1の先行技術に基づいて、本発明を示すものである。この図は、RTV+RTM、および信頼エリア100内のMTMインタフェース等のコアエレメントが自己検証を終えた時点でのセキュアブートプロセスの状態をとらえたものである。MTM 102は、この信頼エリア100のコアであるが、他の重要な構成要素としては、セキュアブートにおいて各コンポーネントが正しく開始し、動作しているか否かを示すフラグであるコンポーネントエラー状態1900と、適切なコンポーネントに対しコンポーネントエラー状態1900を設定するコンポーネントエラーレコーダ1902と、信頼エリア100に追加される次のコンポーネントを立ち上げるランチャ108と、ラベル−証明書対応テーブル1908に従って必要な成功RIM証明書114または失敗RIM証明書1906を検索する証明書検索部1904と、オプショナルコンポーネント制御テーブル1910と、コンポーネントエラー状態1900とがある。証明書検索部1904は、検索手段の一例である。また、ランチャ108は、信頼コンポーネント1 116を実行する場合において、算出手段、検証手段、更新手段および実行手段の一例である。また、実行されたコンポーネント(例えば、実行が成功した信頼コンポーネント1 116)が、次のコンポーネントを実行する場合において、算出手段、検証手段、更新手段および実行手段の一例である。ラベル−証明書対応テーブル1908は、第2マッピングの一例である。オプショナルコンポーネント制御テーブル1910は、第1マッピングの一例である。失敗RIM証明書1906は、1つ以上のコンポーネントが正しく動作しなかった場合の、セキュアブート中に期待されるプラットフォームの状態を記述したものである。オプショナルコンポーネント制御テーブル1910は、図8および図12に示されるように、論理証明書ラベルテーブル814によって記述されたデータを有し、完全性が保護されたコンテナに格納されている。すなわち、提供手段(又は記憶手段、図示せず)によって、第2マッピングの一例であるラベル−証明書対応テーブル1908および第1マッピングの一例であるオプショナルコンポーネント制御テーブル1910が提供(格納)される。
失敗シーケンサ1918は、次コンポーネントテーブル1912およびコンポーネントエラー状態1900を用いて、どのコンポーネントを次に立ち上げるかを選択する。失敗シーケンサ1918は、コンポーネントの実行が失敗した場合において、算出手段、検証手段、更新手段および実行手段の一例である。これは図24に詳細に説明されている。これらのRIM証明書114および1906、次コンポーネントテーブル1912、オプショナルコンポーネント制御テーブル1910、ならびにラベル−証明書対応テーブル1908は、完全性が保護されるべきであることから、完全性保護112されたデータ項目の集合内に置かれる。次コンポーネントテーブル1912は、第3マッピングの一例である。なお、図1と同様に、完全性保護はデータの外的特性ではなく、固有特性である。また、成功RIM証明書114および失敗RIM証明書1906のフォーマットは内容的に同じであり、重要な違いは、ID−証明書対応テーブル1908に従ってそれらに割り当てられた役割である。そのテーブルに基づく以外には、2つを区別することは不可能であり、区別する必要もない。
オプショナルコンポーネントを伴うセキュアブートの目的は、信頼エリア100を拡大し、可能であれば全ての追加的コンポーネント、つまり信頼コンポーネント1 116、信頼コンポーネント2 118、および信頼コンポーネント3 120を包含することであるが、何れかのコンポーネントが起動に失敗した場合、信頼エリア100は拡大してそれらをカバーすることはない。122、124および126とラベル付けされた、ランチャ108から、信頼コンポーネント1 116、信頼コンポーネント2 118、および信頼コンポーネント3 120への点線は、先行技術の一態様による通常の実行パスを示す。先行技術の他の態様においては、最終的な信頼コンポーネントとしてのオペレーティングシステム(図示せず)に伴って、さらなる信頼コンポーネントが存在してもよい。1914および1916とラベル付けされた、信頼コンポーネント1 116から、失敗シーケンサ1918、および信頼コンポーネント3 120への太線は、本発明の一態様による、信頼コンポーネント2 118が起動に失敗した場合、またはオプショナルコンポーネント制御テーブル1910において無効であると印付けられている場合は、別の実行パスが利用可能であることを示す。
図20は、本発明から得られる新たなセキュアブートの結果を示す。利用可能なコンポーネントは図2の通りであり、期待される成功結果208は、当然、1つの有効な結果である。しかしながら、失敗の状態212の代わりに、新しいフロー2000は、失敗または無効な信頼コンポーネント4 200をスキップし、信頼コンポーネント5 202まで継続することで、機能する信頼エリア2002を作成することができるが、その機能は限られている。同様に、フロー2004は、信頼コンポーネント2 118および信頼コンポーネント5 202が正しく動作しないか、またはオプショナルコンポーネント制御テーブル1910において無効であると印付けられている場合に、別の機能する信頼エリア2006を作成することを示しているが、その機能もまた限られている。信頼エリアの図208、2002、および2006において、TC1は信頼コンポーネント1 116、TC2は信頼コンポーネント2 118、TC3は信頼コンポーネント3 120、TC4は信頼コンポーネント4 200、TC5は信頼コンポーネント5 202、OSはオペレーティングシステム204を表している。全コンポーネントはMTM102に依存し、加えて、信頼コンポーネント2 118は信頼コンポーネント1 116に依存し、信頼コンポーネント4 200および信頼コンポーネント5 202は信頼コンポーネント3 120に依存する。オペレーティングシステム204は、信頼コンポーネント1 116および信頼コンポーネント3 120に依存する。陰付きの部分は、使用できないコンポーネントを示す。
図21Aから図24は、本発明のセキュアブートシステムの重要な構成要素間の制御フローシーケンスを示す。本発明のセキュアブートシステムは、完全性測定によって検証されるソフトウェアコンポーネントを実行する方法を実行する。まず、先行技術に係る図21Aにおいて、システムは電源オン2100から開始し、システムの基本ブート実行2102に進み、RTV、RTM、MTM等を初期化し2104、信頼エリアの自己検証に用いるRIM証明書を要求し2108、見つからない場合は、致命的エラーがあるので、装置は失敗の状態へ移行する2132しかない。RIM証明書が見つかった場合2110、RIM証明書内で特定されているPCRのサブセットを連結させることで、そのRIM証明書をMTM内に拡張する2112。拡張動作が失敗した場合2114は、致命的エラーがあるので、装置は失敗の状態へ移行する2132しかない。そうでなければ、重要なデータテーブルの完全性を検証する必要がある。次コンポーネントテーブル1912およびラベル−証明書対応テーブル1908は、RIM証明書500のextensionDigestフィールド504によって保護されているので、ハッシュの有効性をチェック可能であり、MTM API MTM_VerifyRIMCertが、RIM証明書500自体の完全性を検証する2116ために用いられる。オプショナルコンポーネント制御テーブル1910の2つの実施形態は、異なる検証手順を要するため、その検証プロセス2118は、図21Bおよび図21Cにおいて説明する。何れかの検証動作が失敗した場合2120は、致命的エラーがあるので、装置は失敗の状態へ移行する2132しかない。当業者は、この検証プロセスには、後続のシーケンスにおいてテーブルを使用する毎に、先だって検証を実行する等、他にも可能な実施方法があることを理解すると思われる。
次に、信頼コンポーネント1の検証のためのRIM証明書を要求する2122ことにより、期待される現在の状態と、信頼コンポーネント1 116の期待される状態とを記述したRIM証明書が得られる。つまり、ソフトウェアコンポーネント(信頼コンポーネント1 116)を識別する所定の論理識別子を第1マッピング(オプショナルコンポーネント制御テーブル408または1200)から検索することで、ソフトウェアコンポーネントが有効であるか否かを示す状態フラグを取得する。そして、ソフトウェアコンポーネントの検証証明書を識別する所定の論理識別子と前のコンポーネントの状態とを第2マッピング(ID−証明書対応テーブル508)から検索することで、完全性測定証明書(RIM証明書)を取得する(2126)。RIM証明書が返されないと2124、CPUは、信頼コンポーネント1に用いられるRIM証明書を取得する際にエラーがあったことを示すインジケータを伴って、制御を失敗シーケンサに引き渡し2134、失敗シーケンサがそのエラーを処理できるようにする。つまり、コンポーネントが有効でなければ、失敗シーケンサがエラー処理を行う。この処理は、下記図24に示されている。失敗の理由として考えられることは、2122でRIM証明書を要求する際に、証明書検索プロセス1904でオプショナルコンポーネント制御テーブル1910を参照し、要求されたRIM証明書に対応するコンポーネントが無効であることが分かると、独特のエラーコードを返し、要求されたRIM証明書が無効なコンポーネントに対応することを示すことである。
この信頼コンポーネントのハッシュ値を算出し2126、その算出値がRIM証明書に格納されている値と等しいか否かを確認する2128。つまり、実行すべきソフトウェアコンポーネント(信頼コンポーネント1 116)のチェック値(ハッシュ値)を算出する(2126)。そして、完全性測定値が完全性測定証明書内の完全性測定値に一致することと、算出されたチェック値が完全性測定証明書(取得したRIM証明書)内のチェック値に一致することとを検証する(2128)。ハッシュ値が等しくない場合、偶発的または意図的な破損等の問題がコンポーネントにあることを示している。その後、CPUが、信頼コンポーネント1にハッシュエラーがあったことを示すインジケータを伴って、制御を失敗シーケンサに引き渡し2136、失敗シーケンサがそのエラーを処理できるようにする。つまり、検証が不成功であれば、失敗シーケンサがエラー処理を行う。この処理は、下記図24に示されている。ハッシュ値が等しければ、コンポーネントエラーレコーダが、このコンポーネントに対するハッシュのチェックが成功したことを記録する2130。処理が図22へ続く。
図21Bは、オプショナルコンポーネント制御テーブルの実施形態が図8に示す通りである場合に、オプショナルコンポーネント制御テーブル1910が有効であることを検証するための、オプショナルコンポーネント制御テーブルを検証するステップ2118の詳細を示す。まず、オプショナルコンポーネント制御テーブル上の署名を検証するための秘密鍵の公開部分を取得する2150。鍵が見つからなければ2152、エラーが起こり、エラーコードが呼び出しプロセスに返される2154。鍵がある場合は、次のオプショナルコンポーネント制御テーブルを探す2156。テーブルが存在しなければ2158、エラーが起こり、エラーコードが呼び出しプロセスに返される2154。ここで、counterRIMProtect単調カウンタ値を取得し2160、オプショナルコンポーネント制御テーブルを検証する2162。この検証とは、算出された署名と格納されている署名とが一致することを確認して改竄を検知すること、および、格納されているRIMProtectValue 802が呼び出された単調カウンタ値よりも大きいかまたは同じであることを確認することの両方を含む。検証が失敗すれば2164、エラーが起こり、エラーコードが呼び出しプロセスに返される2154。検証が成功すれば、オプショナルコンポーネント制御テーブルは有効であり、成功コードが呼び出しプロセスに返され2166、図21Aに示されているようにセキュアブートプロセスを継続する。
図21Cは、オプショナルコンポーネント制御テーブルを検証するステップ2118の詳細を示す。ここでオプショナルコンポーネント制御テーブルの実施形態は図12および図13に示す通りであり、オプショナルコンポーネント制御テーブル1910が有効であることを検証するためのものである。まず、オプショナルコンポーネント制御テーブルを保護するRIM証明書を探す2170。RIM証明書が見つからなければ2172、エラーが起こり、エラーコードが呼び出しプロセスに返される2174。次に、オプショナルコンポーネント制御テーブルを探す2176。テーブルが存在しなければ2178、エラーが起こり、エラーコードが呼び出しプロセスに返される2174。そうでなければ、オプショナルコンポーネント制御テーブル1200のハッシュを算出し2180、その結果をオプショナルコンポーネント制御テーブルのRIM証明書内に格納されている参照ハッシュ値と比較する2182。一致しなければ2184、エラーが起こり、エラーコードが呼び出しプロセスに返される2174。次に、証明書自体が有効であることを確かめるために、MTMに対し、MTMのAPI MTM_VerifyRIMCertをオプショナルコンポーネント制御テーブルのRIM証明書に対して実行するよう要求する2186。APIがエラーコードを返せば2188、エラーが起こり、エラーコードが呼び出しプロセスに返される2174。これが成功すれば、オプショナルコンポーネント制御テーブルは有効であり、成功コードが呼び出しプロセスに返され2190、図21Aに示されているようにセキュアブートプロセスを継続する。
図22は、セキュアブートシーケンスのさらなる動作を示す。先行技術に従って、このRIM証明書に定義されているPCRに、このRIM証明書に定義されている値を付加することによって、以前に取得されたRIM証明書をMTM内に拡張する2200。つまり、状態フラグによってソフトウェアコンポーネントが有効であることを示し、かつ、検証(2128)が成功していれば、完全性測定証明書内のチェック値の指示を含むように、現在の完全性測定値を更新する(2200)。この拡張が正しく機能したか否かを確認するために、拡張動作の結果をチェックする2202。正しく機能していなければ、CPUは、制御を失敗シーケンサに引き渡し2204、失敗シーケンサがそのエラーを処理できるようにする。この処理は、下記図24に示されている。ハッシュ値が正しく拡張された場合は、コンポーネントが信頼エリアによって完全に信頼できることを示し、その結果、信頼コンポーネント1が立ち上げられ2206、制御がこの新たなコンポーネントに渡される。つまり、ソフトウェアコンポーネントが有効であり、かつ、検証が成功していれば、ソフトウェアコンポーネントを実行する(2206)。
最初の処理は、信頼コンポーネントを初期化する2208ことであり、これにより当該コンポーネントや当該コンポーネントが制御できる他のハードウェア等が必要とする初期化を実行することができる。コンポーネントは、初期化に成功したことをセルフチェックし2210、エラーがあれば、信頼コンポーネントは、現在の信頼コンポーネントが初期化に失敗したことを示すエラーコードを伴って、制御を失敗シーケンサに引き渡し2212、失敗シーケンサがそのエラーを処理できるようにする。この処理は、下記図24に示されている。エラーがなければ、コンポーネントエラーレコーダが、このコンポーネントの初期化が成功したことを記録する2214。次に、信頼コンポーネントは、自己検証に用いるRIM証明書を要求し2216、期待される現在の状態と、所定のPCRに拡張される所定の値とを記述したRIM証明書を得る。必要なRIM証明書が見つからなければ2217、信頼コンポーネントは、現在の信頼コンポーネントが初期化に失敗したことを示すエラーコードを伴って、制御を失敗シーケンサに引き渡し2212、失敗シーケンサがそのエラーを処理できるようにする。この処理は、下記図24に示されている。そうでなければ、先行技術に従ってRIM証明書がMTM内に拡張され2218、拡張動作が成功したか否かがチェックされる2220。拡張動作が失敗すれば、信頼コンポーネントは、現在の信頼コンポーネントが自己検証に失敗したことを示すエラーコードを伴って、制御を失敗シーケンサに引き渡し2222、失敗シーケンサがそのエラーを処理できるようにする。この処理は、下記図24に示されている。値が正しく拡張されれば、現在の信頼コンポーネントは、必要に応じ他のタスクの実行を継続する2224。処理が図23へ続く。
図23は、セキュアブートシーケンスのさらなる動作を示す。まず、他にロードすべき信頼コンポーネントがあるか否かを確認し2300、なければ、セキュアブートは成功裏に完了している2302。なお、この実施形態において、オプショナルコンポーネントの検証が失敗していれば、このオプショナルコンポーネントはブートされていない。よって、ステップ2302において、セキュアブートが成功裏に完了していても、ブートされていないオプショナルコンポーネントがあるかも知れない。1の実施形態において、これは本当の確認ではない。つまり、1の実施形態のオペレーティングシステムにおいて、実行が定義されている他のタスクが完了した2224後には、他のコンポーネントを探さないように、ロードシーケンスの最後のコンポーネントが実装される。他に立ち上げるべきコンポーネントがあれば、次の信頼コンポーネントの検証に用いられるRIM証明書が要求される2304。ここで、次の信頼コンポーネントとは、次にブートされるべき信頼コンポーネントを意味する。RIM証明書が返されないと2305、CPUは、次の信頼コンポーネントに用いられるRIM証明書を取得する際にエラーがあったことを示すインジケータを伴って、制御を失敗シーケンサに引き渡し2322、失敗シーケンサがそのエラーを処理できるようにする。この処理は、下記図24に示されている。失敗の理由として考えられることは、2304でRIM証明書を要求する際に、証明書検索プロセス1904でオプショナルコンポーネント制御テーブル1910を参照し、要求されたRIM証明書に対応するコンポーネントが無効であることが分かると、独特のエラーコードを返し、要求されたRIM証明書が無効なコンポーネントに対応することを示すことである。
次の信頼コンポーネントに用いるためのハッシュの算出におけるRIM証明書に記述されているものと同じ方法で、信頼コンポーネントのハッシュ値を計算する2306。その後、この算出されたハッシュ値が次の信頼コンポーネントのRIM証明書に格納されているハッシュ値と等しいか否かを確認する2308。等しくなければ、偶発的または意図的な破損等の問題がコンポーネントにあることを示しており、信頼コンポーネントは、次の信頼コンポーネントのハッシュが有効化されなかったことを示すエラーコードを伴って、制御を失敗シーケンサに引き渡し2310、失敗シーケンサがそのエラーを処理できるようにする。この処理は、下記図24に示されている。ハッシュ値が等しければ、コンポーネントエラーレコーダが、次の信頼コンポーネントに対するハッシュのチェックが成功したことを記録する2312。次に、先行技術に従ってこのRIM証明書がMTM内に拡張され2314、拡張動作が成功したか否かを確認する2316。拡張動作が失敗すれば、信頼コンポーネントは、次の信頼コンポーネントのMTMへの拡張に失敗したことを示すエラーコードを伴って、制御を失敗シーケンサの開始時点に引き渡し2318、失敗シーケンサがそのエラーを処理できるようにする。この処理は、下記図24に示されている。その代わりにハッシュ値が正しく拡張された場合は、次の信頼コンポーネントは信頼エリアによって完全に信頼できることを示しているので、次の信頼コンポーネントを立ち上げ2320、ステップ2208からの処理を繰り返す。
図24は、本発明の失敗シーケンサの動作を示す。まず、渡されたエラーコードを、コンポーネントエラー状態1900に記録する2400。例えば、状態フラグによってコンポーネントが有効でないと示されていれば(2134)、コンポーネントの検証失敗証明書を識別する所定の論理識別子と、前のコンポーネントの状態とを第2マッピング(ID−証明書対応テーブル508)から検索することで、無効な完全性測定証明書(失敗RIM証明書404)を取得する。そして、無効な完全性測定証明書内に格納されている、コンポーネントの状態が無効である旨の指示を示すように現在の完全性測定値を更新する。また、検証が不成功であれば(2136)、コンポーネントの検証失敗証明書を識別する所定の論理識別子と、前のコンポーネントの状態とを第2マッピング(ID−証明書対応テーブル508)から検索することで、失敗完全性測定証明書(失敗RIM証明書404)を取得する。そして、失敗完全性測定証明書内に格納されている、完全性測定が不成功である旨の指示を含むように現在の完全性測定値を更新する。
次に、現在のコンポーネントエラー状態全てをコンポーネントエラー状態1900から取得する2402。これらは、後に、立ち上げるべき次の信頼コンポーネントを見つけるための、次のコンポーネントテーブル1912の検索2404に用いられる。つまり、コンポーネントを識別する所定の論理識別子と、前のコンポーネントの状態とを第3マッピング(次コンポーネントテーブル1912)から検索することで、実行すべき別のソフトウェアコンポーネントを取得する。定められた次コンポーネントがあるか否かを確認し2406、なければ、セキュアブートは失敗の状態に入り2408、装置は通常の安全な方法での起動に失敗することになる。次の信頼コンポーネントがあれば、次の信頼コンポーネント検証に用いるRIM証明書を要求し2410、期待される現在の状態および次の信頼コンポーネントの期待される状態を記述した失敗RIM証明書を取得する。ここで、次の信頼コンポーネントとは、次にブートされるべき信頼コンポーネントを意味する。RIM証明書が返されないと2411、CPUは、次の信頼コンポーネントに用いられるRIM証明書を取得する際にエラーがあったことを示すインジケータを伴って、制御を失敗シーケンサに引き渡し2428、失敗シーケンサがそのエラーを処理できるようにする。RIM証明書が正しく返された場合、次の信頼コンポーネントのハッシュ値を算出し2412、その算出されたハッシュ値をRIM証明書内のハッシュ値と比較する2414。等しくなければ、偶発的または意図的な破損等の問題がコンポーネントにあることを示しており、信頼コンポーネントは、次の信頼コンポーネントのハッシュが有効化されなかったことを示すエラーコードを伴って、制御を失敗シーケンサの開始時点に戻し2416、失敗シーケンサがそのエラーを処理できるようにする。ハッシュ値が等しければ、コンポーネントエラーレコーダが、次の信頼コンポーネントに対するハッシュのチェックが成功したことを記録する2418。次に、このRIM証明書は、先行技術に従ってMTM内に拡張され2420、拡張動作が成功したか否かが確認される2422。拡張動作が失敗すれば、失敗シーケンサは、次の信頼コンポーネントのMTMへの拡張に失敗したことを示すエラーコードを伴って、制御を失敗シーケンサの開始時点に戻し2426、失敗シーケンサがそのエラーを処理できるようにする。ハッシュ値が正しく拡張された場合は、次の信頼コンポーネントは信頼エリアによって完全に信頼できることを示しているので、次の追加的信頼コンポーネントを立ち上げ2424、示されているとおり、制御フローが上記信頼コンポーネントの初期化2208から継続する。
本発明は上記の実施の形態に基づいて説明されているが、本発明がそのような実施の形態に限定されるものでないことは明らかである。下記のケースもまた本発明に含まれる。
(1)仮想化環境の場合、1の実施形態において、ハイパーバイザが、実行すべき最後の信頼コンポーネントとなる。他の実施形態では、ハイパーバイザ信頼コンポーネントが実行された後に、オペレーティングシステム等の他の信頼コンポーネントが実行される。
(2)上記実施形態において、各コンポーネントは、立ち上げの前に検証される。しかしながら、本発明は、各コンポーネントが立ち上げの後に検証されるシステムにも適用できる。その場合、各コンポーネントの検証に失敗すれば、システムはそのコンポーネントを停止させる。
(3)上述の実施の形態では、TCG仕様書に類似の方法で検証が行われる。しかしながら、本発明は、コンポーネントが鎖のように連鎖して検証される(つまり、あるコンポーネントがその後に立ち上がるコンポーネントを検証する)検証方法を用いてシステムのコンポーネントを検証することが可能な検証システムである限り、他の検証システムにも適用できる。例えば、ハッシュ値をMTM内に拡張することは、TCG仕様書に特有の動作であるため省略してもよい。
(4)上述の実施の形態では、検証は証明書(RIM証明書)内でハッシュ値を使用することにより実行された。しかしながら、ハッシュ値を使用しない他の検証方法が本発明に適用されてもよい。
従来のチェックサムや、コンポーネントから抽出される別のデータ(例えば、コンポーネントから抽出される第1所定ビット)が、検証を実行するために使用されてもよい。また、証明書は、完全性チェック値を含むデータグループに置き換えられてもよい。
さらに、検証方法は、コンポーネントから抽出される値と期待される値が等しいか否かをチェックすることに限定されない。例えば、コンポーネントのサイズを確認し、もしサイズが所定量より大きいか、または小さいなら、コンポーネントは検証されたと判断されるとしてもよい。これらの検証方法は、ハッシュ値と、その期待値とを比較するほど厳密なものではないが、高速に実行される。
(5)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(6)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
さらに、各装置を構成する構成部品の各ユニットは、個別のチップとして、又は、一部若しくは全てを含む単一のチップとして作られてもよい。
さらに、ここでは、LSIが述べられているが、集積化の程度の違いにより、指定IC、LSI、スーパLSI、ウルトラLSIが使用される場合もある。
さらに、回路の集積化の手段は、LSIに限定されるものではなく、専用回路、若しくは汎用プロセッサによる実装も利用できる。さらに、LSIが製造された後にプログラム可能なフィールドプログラムゲートアレイ(FPGA)を使用することもまた可能であり、またLSI内で回路セルの接続及び設定を再構成可能なリコンフィギュアラブルプロセッサも使用可能である。
さらに、もしLSIに置き換わる集積回路技術が半導体技術若しくは他の派生する技術の進歩を通じて現われるのであれば、その技術は当然に構成要素の集積化を実現するために使用することができる。バイオ技術の適用が予想される。
(7)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIに含まれるとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(8)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(9)本技術分野の当業者にとっては、説明した実施の形態の、本発明固有の教示及び利点から原理的に離れることのない多くの変形がありえることを容易に理解することができるだろう。また、上記変更及び実施の形態の任意の組み合わせは、本発明の範囲内に含まれる。
本発明は、パーソナルコンピュータ、携帯電話、オーディオプレーヤ、テレビ、ビデオレコーダなどの、プログラムデータの更新を行う情報通信機器、および、家電機器などに利用することができる。
100 信頼エリア
102 MTM
108 ランチャ
112、400 完全性保護
114、402 成功RIM証明書
116 信頼コンポーネント1
118 信頼コンポーネント2
120 信頼コンポーネント3
404、1906 失敗RIM証明書
406、1908 ラベル−証明書対応テーブル
408、1200、1910 オプショナルコンポーネント制御テーブル
410 デフォルトオプショナルコンポーネント制御テーブル
1900 コンポーネントエラー状態
1902 コンポーネントエラーレコーダ
1904 証明書検索部
1912 次コンポーネントテーブル
1918 失敗シーケンサ

Claims (7)

  1. 装置が、完全性測定によって検証されるソフトウェアコンポーネントを実行する方法であって、
    前記装置は、提供手段と、検索手段と、算出手段と、検証手段と、更新手段と、実行手段とを備え、
    前記方法は、
    a)前記提供手段が、論理識別子からソフトウェアコンポーネントの有効状態フラグへの第1マッピングを提供するステップと、
    b)前記提供手段が、前記論理識別子と、前のソフトウェアコンポーネントの状態情報とから、検証データを含む実際の完全性測定証明書への第2マッピングを提供するステップと、
    c)前記検索手段が、前記ソフトウェアコンポーネントを識別する所定の論理識別子を前記第1マッピングから検索することで、前記ソフトウェアコンポーネントが有効であるか否かを示す状態フラグを得るステップとを含み、
    d)前記ソフトウェアコンポーネントが有効でないことを前記状態フラグが示す場合に、
    i)前記検索手段が、前記ソフトウェアコンポーネントの検証失敗証明書を識別する所定の論理識別子と、前記前のソフトウェアコンポーネントの状態とを前記第2マッピングから検索することで、無効な完全性測定証明書を得るステップと、
    ii)前記更新手段が、前記無効な完全性測定証明書内に格納されている、ソフトウェアコンポーネントの状態が無効である旨の指示を示すように現在の完全性測定値を更新するステップとを含み、
    e)前記ソフトウェアコンポーネントが有効であることを前記状態フラグが示す場合に、
    i)前記検索手段が、前記ソフトウェアコンポーネントの検証証明書を識別する所定の論理識別子と、前記前のソフトウェアコンポーネントの状態とを前記第2マッピングから検索することで、完全性測定証明書を得るステップと、
    ii)前記算出手段が、実行すべき前記ソフトウェアコンポーネントのチェック値を算出するステップと、
    iii)前記検証手段が、前記完全性測定値が前記完全性測定証明書内の完全性測定値に一致することと、前記算出されたチェック値が前記完全性測定証明書内のチェック値に一致することとを検証するステップと、
    iv)前記更新手段が、前記検証が成功していれば、前記完全性測定証明書内の前記チェック値の指示を含むように現在の完全性測定値を更新するステップと、
    v)前記実行手段が、前記検証が成功していれば、前記ソフトウェアコンポーネントを実行するステップと
    を含む方法。
  2. 装置が、完全性測定によって検証されるソフトウェアコンポーネントを実行する方法であって、
    前記装置は、提供手段と、検索手段と、算出手段と、検証手段と、更新手段と、実行手段とを備え、
    前記方法は、
    a)前記提供手段が、論理識別子からソフトウェアコンポーネントの有効状態フラグへの第1マッピングを提供するステップと、
    b)前記提供手段が、前記論理識別子と、前のソフトウェアコンポーネントの状態情報とから、検証データを含む実際の完全性測定証明書への第2マッピングを提供するステップと、
    c)前記検索手段が、前記ソフトウェアコンポーネントを識別する所定の論理識別子を前記第1マッピングから検索することで、前記ソフトウェアコンポーネントが有効であるか否かを示す状態フラグを得るステップと、
    d)前記検索手段が、前記ソフトウェアコンポーネントの検証証明書を識別する所定の論理識別子と、前記前のソフトウェアコンポーネントの状態とを前記第2マッピングから検索することで、完全性測定証明書を得るステップと、
    e)前記算出手段が、実行すべき前記ソフトウェアコンポーネントのチェック値を算出するステップと、
    f)前記検証手段が、前記完全性測定値が前記完全性測定証明書内の完全性測定値に一致することと、前記算出されたチェック値が前記完全性測定証明書内のチェック値に一致することとを検証するステップと、
    g)前記検証が不成功であれば、
    i)前記検索手段が、前記ソフトウェアコンポーネントの検証失敗証明書を識別する所定の論理識別子と、前記前のソフトウェアコンポーネントの状態とを前記第2マッピングから検索することで、失敗完全性測定証明書を得るステップと、
    ii)前記更新手段が、前記失敗完全性測定証明書内に格納されている、完全性測定が不成功である旨の指示を含むように現在の完全性測定値を更新するステップとを含み、
    h)前記検証が成功であれば、
    i)前記更新手段が、前記ソフトウェアコンポーネントが有効であることを前記状態フラグが示していれば、前記完全性測定証明書内の前記チェック値の指示を含むように現在の完全性測定値を更新するステップと、
    ii)前記実行手段が、前記ソフトウェアコンポーネントが有効であることを前記状態フラグが示していれば、前記ソフトウェアコンポーネントを実行するステップと
    を含む方法。
  3. 前記方法は、さらに、
    前記ソフトウェアコンポーネントが有効でないか、または前記検証が不成功である場合に、
    i)前記提供手段が、論理識別子と、前のソフトウェアコンポーネントの状態情報とからコンポーネント識別子への第3マッピングを提供するステップと、
    ii)前記検索手段が、前記ソフトウェアコンポーネントを識別する所定の論理識別子と、前記前のソフトウェアコンポーネントの状態とを前記第3マッピングから検索することで、実行すべき別のソフトウェアコンポーネントを識別する論理識別子を得るステップと、
    iii)前記検索手段が、前記実行すべき別のソフトウェアコンポーネントを識別する論理識別子と、前記前のソフトウェアコンポーネントの状態情報とを前記第2マッピングから検索することで、別のソフトウェアコンポーネントの完全性測定証明書を取得し、
    iv)前記算出手段が、前記実行すべき別のソフトウェアコンポーネントのチェック値を算出し、
    v)前記検証手段が、前記完全性測定値が前記別のソフトウェアコンポーネントの完全性測定証明書内の完全性測定値に一致すること、前記別のソフトウェアコンポーネントの算出されたチェック値が前記別のソフトウェアコンポーネントの完全性測定証明書内のチェック値に一致することとを検証し、
    vi)前記更新手段が、前記別のソフトウェアコンポーネントの検証が成功である場合に、前記別のソフトウェアコンポーネントの完全性測定値内の前記別のソフトウェアコンポーネントのチェック値の指示を含むように現在の完全性測定値を更新し、
    vii)前記実行手段が、前記別のソフトウェアコンポーネントの検証が成功である場合に、前記別のソフトウェアコンポーネントを実行する
    を含む請求項1又は2に記載の方法。
  4. 請求項1又は2記載の完全性測定によって検証されるソフトウェアコンポーネントを実行する方法を、コンピュータに実行させるためのコンピュータソフトウェアコードを格納するコンピュータ読み取り可能な記録媒体。
  5. 完全性測定によって検証されるソフトウェアコンポーネントを実行する装置であって、
    a)論理識別子からソフトウェアコンポーネントの有効状態フラグへの第1マッピングと、前記論理識別子と前のソフトウェアコンポーネントの状態情報とから、検証データを含む実際の完全性測定証明書への第2マッピングとを提供する提供手段と、
    b)前記ソフトウェアコンポーネントを識別する所定の論理識別子を前記第1マッピングから検索することで、前記ソフトウェアコンポーネントが有効であるか否かを示す状態フラグを取得し、かつ、前記ソフトウェアコンポーネントが有効であることを前記状態フラグが示す場合に、前記ソフトウェアコンポーネントの検証証明書を識別する所定の論理識別子と前記前のソフトウェアコンポーネントの状態とを前記第2マッピングから検索することで完全性測定証明書を得る検索手段と、
    c)前記ソフトウェアコンポーネントが有効であることを前記状態フラグが示す場合に、実行すべき前記ソフトウェアコンポーネントのチェック値を算出する算出手段と、
    d)前記ソフトウェアコンポーネントが有効であることを前記状態フラグが示す場合に、前記完全性測定値が前記完全性測定証明書内の完全性測定値に一致し、かつ前記算出されたチェック値が前記完全性測定証明書内のチェック値に一致することを検証する検証手段と、
    e)前記ソフトウェアコンポーネントが有効であることを前記状態フラグが示す場合に、前記検証が成功していれば、前記完全性測定証明書内の前記チェック値の指示を含むように現在の完全性測定値を更新する更新手段と、
    f)前記ソフトウェアコンポーネントが有効であることを前記状態フラグが示す場合に、前記検証が成功していれば、前記コンポーネントを実行する実行手段と
    を備え、
    前記ソフトウェアコンポーネントが有効でないことを前記状態フラグが示す場合、
    i)前記検索手段は、前記ソフトウェアコンポーネントの検証失敗証明書を識別する所定の論理識別子と、前記前のソフトウェアコンポーネントの状態とを前記第2マッピングから検索することで、無効な完全性測定証明書を取得し、
    ii)前記更新手段は、前記無効な完全性測定証明書に格納されている、ソフトウェアコンポーネントの状態が無効である旨の指示を示すように現在の完全性測定値を更新する
    装置。
  6. 完全性測定によって検証されるソフトウェアコンポーネントを実行する装置であって、
    a)論理識別子からソフトウェアコンポーネントの有効状態フラグへの第1マッピングと、前記論理識別子と前のソフトウェアコンポーネントの状態情報とから、検証データを含む実際の完全性測定証明書への第2マッピングとを提供する提供手段と、
    b)前記ソフトウェアコンポーネントを識別する所定の論理識別子を前記第1マッピングから検索することで、前記ソフトウェアコンポーネントが有効であるか否かを示す状態フラグを取得し、かつ、前記ソフトウェアコンポーネントの検証証明書を識別する所定の論理識別子と前記前のソフトウェアコンポーネントの状態とを前記第2マッピングから検索することで完全性測定証明書を得る検索手段と、
    c)実行すべき前記コンポーネントのチェック値を算出する算出手段と、
    d)前記完全性測定値が前記完全性測定証明書内の完全性測定値に一致し、かつ前記算出されたチェック値が前記完全性測定証明書内のチェック値に一致することを検証する検証手段と、
    e)前記検証が成功していれば、前記ソフトウェアコンポーネントが有効であることを前記状態フラグが示していれば、前記完全性測定証明書内の前記チェック値の指示を含むように現在の完全性測定値を更新する更新手段と、
    f)前記検証が成功していれば、前記ソフトウェアコンポーネントが有効であることを前記状態フラグが示していれば、前記ソフトウェアコンポーネントを実行する実行手段と
    を備え、
    前記検証が不成功である場合、
    i)前記検索手段は、前記ソフトウェアコンポーネントの検証失敗証明書を識別する所定の論理識別子と、前記前のソフトウェアコンポーネントの状態とを前記第2マッピングから検索することで、失敗完全性測定証明書を取得し、
    ii)前記更新手段は、前記失敗完全性測定証明書内に格納されている、完全性測定が不成功である旨の指示を含むように現在の完全性測定値を更新する
    装置。
  7. 請求項5又は6記載の装置は、集積回路として構成されている
    装置。
JP2011548454A 2009-07-01 2010-07-01 セキュアブート方法およびセキュアブート装置 Active JP5530460B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011548454A JP5530460B2 (ja) 2009-07-01 2010-07-01 セキュアブート方法およびセキュアブート装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009157363 2009-07-01
JP2009157363 2009-07-01
PCT/JP2010/004331 WO2011001685A1 (en) 2009-07-01 2010-07-01 Secure boot method and secure boot apparatus
JP2011548454A JP5530460B2 (ja) 2009-07-01 2010-07-01 セキュアブート方法およびセキュアブート装置

Publications (2)

Publication Number Publication Date
JP2012532358A JP2012532358A (ja) 2012-12-13
JP5530460B2 true JP5530460B2 (ja) 2014-06-25

Family

ID=42727617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011548454A Active JP5530460B2 (ja) 2009-07-01 2010-07-01 セキュアブート方法およびセキュアブート装置

Country Status (6)

Country Link
US (1) US8892862B2 (ja)
EP (1) EP2449499B1 (ja)
JP (1) JP5530460B2 (ja)
CN (1) CN102449634B (ja)
RU (1) RU2011148523A (ja)
WO (1) WO2011001685A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8490177B2 (en) * 2011-03-15 2013-07-16 Lenovo (Singapore) Pte. Ltd. Apparatus and method for variable authentication requirements
US9450759B2 (en) * 2011-04-05 2016-09-20 Apple Inc. Apparatus and methods for controlling distribution of electronic access clients
KR101897605B1 (ko) * 2012-02-24 2018-09-12 삼성전자 주식회사 휴대 단말기의 무결성 보호 방법 및 장치
US9280359B2 (en) * 2012-12-11 2016-03-08 Cisco Technology, Inc. System and method for selecting a least cost path for performing a network boot in a data center network environment
US9465943B2 (en) * 2013-01-31 2016-10-11 Red Hat, Inc. Extension of a platform configuration register with a known value
US9870474B2 (en) * 2013-04-08 2018-01-16 Insyde Software Corp. Detection of secure variable alteration in a computing device equipped with unified extensible firmware interface (UEFI)-compliant firmware
CN104408206A (zh) * 2014-12-23 2015-03-11 许昌学院 分布式支持向量聚类的方法及***
US10402566B2 (en) * 2016-08-01 2019-09-03 The Aerospace Corporation High assurance configuration security processor (HACSP) for computing devices
US10528765B2 (en) * 2016-09-16 2020-01-07 Intel Corporation Technologies for secure boot provisioning and management of field-programmable gate array images
US10685121B2 (en) 2017-10-17 2020-06-16 Quanta Computer Inc. Secure environment examination
CN110362416B (zh) * 2018-03-26 2022-03-25 腾讯科技(深圳)有限公司 页面组件加载方法及装置、电子设备、存储介质
CN108600201B (zh) * 2018-04-09 2021-11-02 东华大学 一种云存储完整性验证的数据标签的远程安全更换方法
JP7100502B2 (ja) * 2018-06-13 2022-07-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
GB2579034B (en) * 2018-11-15 2021-05-05 Trustonic Ltd Software installation method
US10965551B2 (en) * 2018-11-21 2021-03-30 Microsoft Technology Licensing, Llc Secure count in cloud computing networks
CN114830117A (zh) * 2019-12-17 2022-07-29 日本电信电话株式会社 验证信息修正装置、验证信息修正方法和验证信息修正程序
CN112231777A (zh) * 2020-12-14 2021-01-15 武汉新芯集成电路制造有限公司 一种单调计数器及其单调计数方法
FR3118504B1 (fr) * 2020-12-28 2024-05-17 St Microelectronics Rousset Système électronique comprenant plusieurs microprocesseurs
FR3126572B1 (fr) * 2021-08-26 2023-08-25 Stmicroelectronics Grand Ouest Sas Démarrage sécurisé d’une unité de traitement

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477648B1 (en) 1997-03-23 2002-11-05 Novell, Inc. Trusted workstation in a networked client/server computing 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
US6754855B1 (en) 1999-12-01 2004-06-22 Microsoft Corporation Automated recovery of computer appliances
WO2001080007A2 (en) * 2000-04-14 2001-10-25 Stratus Technologies International, S.A.R.L. Methods and apparatus for robust startup of a computer system having redundant components
US6691225B1 (en) 2000-04-14 2004-02-10 Stratus Technologies Bermuda Ltd. Method and apparatus for deterministically booting a computer system having redundant components
US7216369B2 (en) * 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US7322042B2 (en) 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US20050138414A1 (en) 2003-12-17 2005-06-23 Zimmer Vincent J. Methods and apparatus to support the storage of boot options and other integrity information on a portable token for use in a pre-operating system environment
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US20060294595A1 (en) * 2005-06-27 2006-12-28 Check Point Software Technologies Ltd. Component selector
US8201240B2 (en) 2005-09-16 2012-06-12 Nokia Corporation Simple scalable and configurable secure boot for trusted mobile phones
US8261253B2 (en) * 2006-01-25 2012-09-04 The Boeing Company Method for restoring software applications on desktop computers
WO2007124091A1 (en) 2006-04-21 2007-11-01 Interdigital Technology Corporation Apparatus and methods for performing trusted computing integrity measurement reporting
US20080005806A1 (en) * 2006-06-30 2008-01-03 Nokia Corporation Apparatus, network entity and associated methods and computer program products for selectively enabling features subject to digital rights management
US8082442B2 (en) * 2006-08-10 2011-12-20 Microsoft Corporation Securely sharing applications installed by unprivileged users
JP2008077548A (ja) * 2006-09-25 2008-04-03 Matsushita Electric Ind Co Ltd 移動体通信端末、移動体通信方法、移動体通信プログラム、移動体通信システム
US8392724B2 (en) * 2006-12-27 2013-03-05 Panasonic Corporation Information terminal, security device, data protection method, and data protection program
US20080301672A1 (en) * 2007-05-30 2008-12-04 Google Inc. Installation of a Software Product on a Device with Minimal User Interaction
US8555049B2 (en) * 2007-10-05 2013-10-08 Panasonic Corporation Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit
JP5085287B2 (ja) 2007-11-21 2012-11-28 株式会社リコー 情報処理装置、正当性検証方法および正当性検証プログラム
EA201070673A1 (ru) 2008-01-30 2011-02-28 Панасоник Корпорэйшн Безопасная начальная загрузка с помощью способа необязательных компонентов
EP2259205B1 (en) * 2008-03-28 2018-04-25 Panasonic Corporation Software updating apparatus, software updating system, alteration verification method and alteration verification program
CN102037473A (zh) * 2008-06-23 2011-04-27 松下电器产业株式会社 信息处理装置、信息处理方法、实现它们的计算机程序及集成电路
US8032742B2 (en) * 2008-12-05 2011-10-04 Unisys Corporation Dynamic updating of trusted certificates and certificate revocation lists in a computing system
US8768843B2 (en) * 2009-01-15 2014-07-01 Igt EGM authentication mechanism using multiple key pairs at the BIOS with PKI

Also Published As

Publication number Publication date
JP2012532358A (ja) 2012-12-13
RU2011148523A (ru) 2013-08-20
EP2449499A1 (en) 2012-05-09
CN102449634A (zh) 2012-05-09
CN102449634B (zh) 2015-05-27
WO2011001685A1 (en) 2011-01-06
US8892862B2 (en) 2014-11-18
EP2449499B1 (en) 2014-11-26
US20120102313A1 (en) 2012-04-26

Similar Documents

Publication Publication Date Title
JP5530460B2 (ja) セキュアブート方法およびセキュアブート装置
JP5178341B2 (ja) オプショナルなコンポーネントを伴うセキュアブートの方法
US10931451B2 (en) Securely recovering a computing device
US8479000B2 (en) Information processing device, authentication system, authentication device, information processing method, information processing program, recording medium, and integrated circuit
KR101066727B1 (ko) 컴퓨팅 장치의 보안 부팅
JP5399397B2 (ja) セキュアブート方法、セキュアブート装置、プログラムおよび集積回路
KR101190479B1 (ko) 티켓 인증 보안 설치 및 부트
US20080165971A1 (en) Trusting an Unverified Code Image in a Computing Device
JP2013519929A (ja) 情報処理装置、情報処理システム、ソフトウェアルーチン実行方法およびリモート認証方法
CN114021106B (zh) 一种可信度量的远程认证方法、装置及***
US8732444B2 (en) Information processing device and information processing method
CN108595981B (zh) 加密安卓***的方法
US12019752B2 (en) Security dominion of computing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140418

R151 Written notification of patent or utility model registration

Ref document number: 5530460

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151