JP2009509373A - 信頼性のある移動電話のための簡単で、拡張可能で且つ構成可能なセキュアなブート - Google Patents

信頼性のある移動電話のための簡単で、拡張可能で且つ構成可能なセキュアなブート Download PDF

Info

Publication number
JP2009509373A
JP2009509373A JP2008530639A JP2008530639A JP2009509373A JP 2009509373 A JP2009509373 A JP 2009509373A JP 2008530639 A JP2008530639 A JP 2008530639A JP 2008530639 A JP2008530639 A JP 2008530639A JP 2009509373 A JP2009509373 A JP 2009509373A
Authority
JP
Japan
Prior art keywords
event
secure
certificate
event certificate
enforcement function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008530639A
Other languages
English (en)
Other versions
JP5061110B2 (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.)
Nokia Oyj
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of JP2009509373A publication Critical patent/JP2009509373A/ja
Application granted granted Critical
Publication of JP5061110B2 publication Critical patent/JP5061110B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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

Abstract

セキュアなブートフレームワークを使用してシステムをブートアップするための方法、装置、システム及びコンピュータプログラム製品が提供される。より詳細には、無制限の数の許可されたブート構成を有する一方、最小量のセキュアな/機密の記憶装置しか必要としないセキュアなブートメカニズム(即ち、認証されたプログラム及び/又は事象しか特定プラットホームにおいて実行されないことを強要するメカニズム)が提供される。このセキュアなブートメカニズムは、更に、ランタイムとマネージメント機能との分離を与え、これは、他の許可メカニズムを後でプラグインするのを許す。更に、許可されたセキュアなブート構成(即ち、セキュアなブート状態の定義)は、システムディスク(例えば、フラッシュメモリ)のような非セキュアな記憶装置に保持することができる。最後に、ここに開示するセキュアなブートメカニズムは、既存のTCG技術で構築され、TCG技術が実施される最小限の実施しか要求しないので、更に有益である。
【選択図】図1

Description

本発明は、最小で、頑丈で、融通性があり、拡張可能で且つ簡単なセキュアなブートメカニズムに係る。
一般的に、セキュリティを与えるために、既存のブートフレームワークは、通常、パブリックキーと、「ルート・ツー・トラスト・フォア・エンフォースメント(Root-to-Trust for Enforcement)」とを不変記憶装置に配している。これらは、システム(例えば、オペレーティングシステム)がブートするところの映像に、パブリックキーに対応するプライベートキーを使用して、デジタル署名でサインすることを必要とする。パブリックキー及びプライベートキーは、グローバルである。
このシステムの欠点は、融通性がないことである。これは、ブートプロセスの微粒度制御を許さず、又、第三者のマネージメントシステムと共に機能するように適応させることができない。というのは、新たな映像/事象を装置においてセキュアに許可できないからである。更に、映像は、装置特有ではない。例えば、ある映像をある装置から別の装置へ転送して、依然、同じ署名で検証することができる。というのは、映像が、ある装置で実行するように許可されても、署名が別の装置でもその映像を検証するからである。
いわゆる「デバイス・インテグリティ・レジスタ」を使用するTCG技術に基づくセキュアなブートメカニズムが、Siani Pearson氏等により“Trusted Computing Platforms: TCPA Technology in Context”(ISBN 0-13-009220-7)(“[TPCA]”)に簡単に紹介されている。一般に、[TCPA]に紹介されたメカニズムは、拡張性も融通性もないという点で、制約がある。このメカニズムは、ブートプロセスの微粒度制御も許さず、又、大量のセキュアな構成を指定することも許さない。更に、TCGは、プラットホーム識別情報を、「プラットホーム構成レジスタ(PCR)」(以下に述べる)に入れないことを要求する。この要求に従う場合には、[TCPA]に示唆された解決策は、セキュアなブート構成を個々のシステムに結合することを許さない。
それ故、依然として簡単に構成できる改良されたセキュアなブートメカニズムを生成する方法が要望される。特に、「信頼性コンピューティンググループ(TCG)」技術(例えば、信頼性プラットホームモジュール(TPM))が使用される設定においてこのようなセキュアなブートメカニズムを生成するための必要性が存在する。
一般に述べると、本発明の実施形態は、とりわけ、要注意の情報(例えば、暗号キー)及び/又は測定システム状態及び履歴を信頼できる仕方で取り扱うための特徴を既に含んでいるかもしれないセルラー電話、パーソナルデジタルアシスタント(PDA)、パーソナルコンピュータ(PC)、パーソナルコンピュータ(PC)、ラップトップ、ページャー、等の移動装置に、簡単で、拡張可能で、構成可能で且つセキュアなブートメカニズムを追加するための手段を提供することにより、従来技術に勝る改良を提供する。前記特徴は、https://www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62_Part1_Design_Principles.pdf (“[TPM1]”)において入手できる2003年10月のTCG“TPM Main Part 1: Design Principles Version 1.2 Revision 62”;https://www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62_Part2_TPN_Structures.pdf (“[TPM2]”)において入手できる2003年10月のTCG“TPM Main Part 2: TPM Structures Specification Version 1.2 Revision 62”;及びhttps://www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62_Part3_Command.pdf (“[TPM3]”)において入手できる2003年10月のTCG“TPM Main Part 3: Command Specification Version 1.2 Revision 62”において、TCGにより指定されたものを含む。
現在知られているセキュアなブートメカニズムとは異なり、本発明の実施形態は、無制限の数の許可されたブート構成を有する一方、最小量のセキュアな/機密の記憶装置しか必要としないセキュアなブートメカニズム(即ち、認証されたプログラム及び/又は事象しか特定プラットホームにおいて実行されないことを強要するメカニズム)を提供する。更に、この実施形態は、ランタイムとマネージメント機能との分離を与え、これは、他の許可メカニズムを後でプラグインするのを許す。更に、この実施形態によれば、許可されたセキュアなブート構成(即ち、セキュアなブート状態の定義)は、システムディスク(例えば、フラッシュメモリ)のような非セキュアな記憶装置に保持することができる。本発明の実施形態は、既存のTCG技術で構築され、TCG技術が実施される最小限の実施しか要求しないので、更に有益である。
本発明の1つの態様によれば、セキュアなブートフレームワークを使用してシステムをブートアップするための方法が提供される。一実施形態によれば、このシステムは、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する1つ以上のプログラム、ファンクション、及びリソースから分離されたセキュアな環境とを備えている。この実施形態の方法は、(1)セキュアな環境の外部に位置するセキュアな施行ファンクションを実行するステップであって、該セキュアな施行ファンクションは、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されているステップと、(2)実行の前にプログラムモジュールが許可された場合には、セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行するステップと、を備えることができる。
一実施形態において、セキュアな施行ファンクションを実行する前記ステップは、セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成する段階と、その事象に関連した事象証明書を探索する段階とを含み、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含む。セキュアな施行ファンクションを実行する前記ステップは、更に、事象証明書が本物であるかどうか最初に決定する段階と、事象証明書に少なくとも一部分基づいて事象が許可されたかどうか決定する段階とを含む。更に、一実施形態によれば、事象証明書が探索され、本物であり、且つ事象が許可された場合には、セキュアな施行ファンクションへ制御が移される。
別の実施形態では、事象証明書は、更に、この事象証明書をセキュアな環境に結合し、特に、セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む。この実施形態では、事象証明書が本物であるかどうか決定する段階は、キー記憶装置にアクセスし、そして事象証明書の完全性及び真正性をキー記憶装置結合に少なくとも一部分基づいて決定することを含む。
更に別の実施形態では、前記方法は、更に、システムの現在状態を決定するステップを備えている。この実施形態によれば、事象が許可されたかどうか決定する前記段階は、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定することを含む。
一実施形態において、セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行する前記ステップは、同様に、プログラムモジュールの実行に関連した事象であって、プログラムモジュールの実行に対応するコードを含む事象を生成する段階と、事象に関連した事象証明書を探索する段階であって、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものである段階と、事象証明書が本物であるかどうか決定する段階と、事象が許可されたかどうか決定する段階と、事象証明書が探索され、本物であり、且つ事象が許可された場合に、プログラムモジュールを実行する段階と、を含む。
本発明の別の態様によれば、セキュアなブートフレームワークを使用してブートアップするように構成された装置が提供される。一実施形態において、この装置は、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する1つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備えている。この装置は、更に、プロセッサと、該プロセッサに通信するメモリとを備え、メモリは、プロセッサにより実行可能なアプリケーションを記憶する。このアプリケーションは、実行時に、(1)セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしか装置で実行されないように保証するよう構成されたセキュアな施行ファンクションを実行し、(2)実行の前にプログラムモジュールが許可された場合には、セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行する、というように構成される。
本発明の更に別の態様によれば、セキュアなブートフレームワークを使用してブートアップするように構成されたシステムが提供される。一実施形態において、このシステムは、システムのセキュアな環境の外部で動作するセキュアな施行ファンクションであって、プログラムモジュールがシステムでの実行を許可されたかどうか決定し、そしてプログラムモジュールが許可された場合にはプログラムモジュールを実行するように構成されたセキュアな施行ファンクションを備えている。
本発明の別の態様によれば、セキュアなブートフレームワークを使用してシステムをブートアップするコンピュータプログラム製品が提供される。一実施形態のシステムは、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する1つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備えている。この実施形態のコンピュータプログラム製品は、コンピュータ読み取り可能なプログラムコード部分が記憶された少なくとも1つのコンピュータ読み取り可能な記憶媒体を備えている。一実施形態において、コンピュータ読み取り可能なプログラムコード部分は、(1)セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されたセキュアな施行ファンクションを実行するための第1の実行可能な部分と、(2)実行の前にプログラムモジュールが許可された場合には、セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行するための第2の実行可能な部分と、を含むことができる。
本発明の更に別の態様によれば、セキュアなブートフレームワークを使用してブートアップするように構成された装置が提供される。一実施形態において、この装置は、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する1つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備えている。この実施形態の装置は、更に、セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されたセキュアな施行ファンクションを実行するための手段と、実行の前にプログラムモジュールが許可された場合には、セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行するための手段と、を備えている。
以上、本発明を一般的に説明したが、必ずしも正しい縮尺で描かれていない添付図面を参照して本発明を詳細に説明する。
本発明の全部ではなく幾つかの実施形態が示された添付図面を参照して、本発明を以下に詳細に説明する。実際に、本発明は、多数の異なる形態で実施することができ、ここに述べる実施形態に限定されるものではなく、むしろ、これらの実施形態は、この開示が、適用し得る法的な要求を満足するために設けられている。全体を通じて、同じ要素が同じ参照番号で示される。
パートI:一般的な説明
セキュアなブートフレームワーク
図1は、本発明の実施形態によりセキュアなブートアッププロセスを提供する目的で、例えば、移動装置において実施できるセキュアなブートフレームワークの主たる構造要素を示す。図示されたように、このアーキテクチャーは、揮発性又は不揮発性のメモリ(例えば、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリ、ハードディスク、等)、中央処理ユニット(CPU)、及び当業者により必要又は有用と認識されている他のリソースを有する汎用コンピュータを本質的に含む「計算エンジン」を備えることができる。
この計算エンジン内には、「セキュアな環境」があり、これは、このセキュアな環境の外部に位置するか又は外部で動作するプログラム、ファンクション又はリソースから分離されている。ここで使用する「セキュアな」という語は、修飾語として使用されるときには、修飾されるプログラム、ファンクション、メモリ又は他のオブジェクトが不変であり及び/又は機密であることを指示する。TCGにより生成されるセキュアな環境は、本質的に、信頼性のある計算特徴を可能にするために計算装置と共に含ませることのできる付加的なチップである「信頼性のあるプラットホームモジュール(TPM)」である。ここに例示する実施形態では、分離は、ハードウェアのみに基づいてもよいし、ソフトウェアのみに基づいてもよいし、或いはその何らかの組み合せでもよい。計算エンジン内で動作するファンクション及びプログラムは、セキュアな環境内で動作する幾つかの定義されたファンクションをコールし、そしてセキュアな環境は、計算エンジン内のプログラムとでCPUを共有することができる。しかしながら、CPUを共有する場合には、セキュアな環境内のリソースは、そのCPUがセキュアな環境内からのプログラムコードを実行するときだけファンクション及びプログラムにアクセスできねばならない。この場合、CPUを共有するときには、セキュアな環境の外部のプログラム及びファンクションは、良好に定義されたファンクションによるものを除いて、セキュアな環境の内部のリソース及びプログラムに影響を及ぼし得ないように、分離を実施しなければならない。
セキュアな環境には、「ルート・オブ・トラスト・フォア・エンフォースメント(Root-of-Trust for Enforcement)(RTE)」が含まれる。このRTEは、全システム内で実行すべき第1プログラムであり、本物でなければならないが、機密でなくてもよい。換言すれば、RTEは、誰でも見ることができるが、誰もそれを変更できないように設定されねばならない。本物であることを保証するために、RTEは、不変にされねばならない。一実施形態では、これは、RTEプログラムをリードオンリメモリ(ROM)に記憶することにより達成される。一般的に、RTEの目的は、以下に詳細に述べるセキュアな施行ファンクションがセキュアな環境の外部で実行されるよう保証することである。
又、セキュアな環境には、「事象」が許されるかどうかを「事象証明書」及び現在システム状態に基づいてチェックする「事象ベリファイア」も含まれる。一般に、事象とは、ブートプロセスのセキュリティに影響を及ぼす事象の記述である。特に、事象とは、システムに配されたセキュリティに衝撃を及ぼし得る事象を表わすコードである。このような事象は、例えば、プログラム、装置ドライバ又はオペレーティングシステムをロードすることや、システムをデバッグ又はメンテナンスモードに入れることである。通常のケースでは、事象は、コード映像のロード及び実行のコード化表現である。例えば、事象は、実行されるべきコード映像の暗号ハッシュ(例えば、セキュアなハッシュアルゴリズム1(SHA1))の前におそらく「load」のようなストリングを付したものでよい。コードのある断片がロードされる場合には、コード(及びしばしばその構成)が事象のシンタックスに含まれる。しかしながら、デバッグモードに入るような他の場合には、事象が、例えば、SHA1(“entering debug mode”)で表わされてもよい。デバッグモードに入るような事象は、「システム履歴」に記録されるので、事象証明書のセットを有効なものにさせると共に、「封印」データ(以下に述べる)を解読不能にさせる。
「事象証明書」とは、あるシステム状態においてある事象の実行を許す認証されたデータ構造体であり、その両方が証明書内で定義される(図4及び以下の関連説明を参照されたい)。一般に、事象証明書とは、セキュアな環境の単一のインスタンスに結合されることが予想される。
事象証明書が事象を許すかどうかチェックするために、事象ベリファイアは、事象証明書の真正性をチェックし、次いで、現在システム状態(以下に述べるシステム履歴に示される)、事象、及び事象証明書を分析する。事象が許される場合には、「事象レコーダー」(以下に述べる)を経て施行ファンクションへ制御が戻される。事象が許されない場合には、システムが停止(例えば、シャットダウン)されるか、又は施行ファンクションに、事象を実行又は許すことのないように伝えることができる。事象を許すべきかどうかの判断は、一実施形態では、事象ベリファイアにより使用される事象証明書に基づく。事象証明書は、一般に、許可された映像しかブートを許さないように設定される。例えば、行なおうとする無許可の事象(即ち、本物の事象証明書が存在しない)は、無許可のオペレーティングシステムをブートするか又はオペレーティングシステムを無許可の仕方でブートする試みを表わすことができる。
セキュアな環境は、更に、「キー記憶装置」及び「システム履歴」を含む。キー記憶装置は、事象証明書及びおそらく事象許可証の真正性及び完全性をチェックするのに使用される。事象証明書及び事象許可証の真正性及び完全性は、事象を認証するのに使用できるデジタル署名、メッセージ認証コード、等のメッセージ認証メカニズムを使用してチェックすることができる。システム履歴は、現在システム状態及び履歴の表現を含む。これは、「事象レコーダー」(以下に述べる)により更新され、そして事象が許されるかどうか判断するときに事象ベリファイアにより使用される。
本発明の実施形態においてセキュアな環境には「事象レコーダー」も含まれる。事象レコーダーは、事象ベリファイアが許した事象を記録する。事象は、システム経歴に記録され、そして事象レコーダーは、施行ファンクションへ制御を戻す。
ここに例示する実施形態では、「施行ファンクション」、「事象証明書記憶装置」、及び「事象マネージャー」は、各々、セキュアな環境の外部に位置され、一方、「事象オーソライザー」は、セキュアな環境内に位置されてもよいし(図示されたように)、セキュアな環境の外部に位置されてもよい(図示せず)。施行ファンクションは、セキュアな環境の外部で実行されるプログラムで、事象が生成される前に、事象ベリファイアを使用して、それらを許可するように保証するプログラムである。事象及び事象証明書を許可のために事象ベリファイアへ渡す前に、施行ファンクションは、事象証明書記憶装置から正しい事象証明書をルックアップすることができる。又、施行ファンクションは、セキュアな環境からの復帰も取り扱い(即ち、事象ベリファイア及び/又は事象レコーダー)、そして任意の承認/拒絶判断に従うことができる。事象が受け容れられる場合には、施行ファンクションは、その事象を発生した発呼者に制御を戻す。或いは又、事象が拒絶される場合には、施行ファンクションは、事象を発生する全システム又はサブシステムを停止するよう判断してもよいし、或いは事象ジェネレータと一緒に、事象が中止されるよう保証してもよい。事象が発生されるときに施行ファンクションに利用できるオプションは、事象ジェネレータと施行ファンクションとの間の協働のレベルに依存する。一般的に、施行ファンクション、RTE、及び事象証明書は、施行ファンクションと正しく協働するコードモジュールしか実行されないように保証すると仮定する。更に、RTEは、正しく動作する施行ファンクションだけが、システムのスタート時にブートされるように保証する。システムは、例えば、オペレーティングシステムに対して1つ、Java(登録商標)のようなバーチャルマシンについて1つというように多数の施行ファンクションをもつことができる。
1つの実施形態において、事象証明書記憶装置は、計算エンジン内の事象証明書のための記憶装置を含む。各個々の事象証明書は、セキュアな環境の外部にこれを記憶できるようにする「キー記憶装置」により認証される。施行ファンクション及びRTEは、次いで、事象証明書記憶装置にアクセスして、個々の事象証明書を得ることができる。
1つの実施形態において、事象オーソライザーは、事象マネージャーからの事象許可証を受け容れ、それらが本物のソースからのものであることを検証し、次いで、それらを記憶のために事象証明書記憶装置へ渡す。事象オーソライザーは、システム履歴を調べることにより、認証された事象マネージャーにより事象許可証が与えられた(例えば、施行ファンクション及び事象証明書記憶装置を使用して承認された)ことをチェックする。或いは又、事象オーソライザーは、例えば、デジタル署名又はメッセージ認証コードを使用して、事象許可証が第三者により許可されたことをチェックしてもよい。キー記憶装置は、事象ベリファイアがRTE又は施行ファンクションによりそれに与えられた事象をチェックするときに、真正性及び完全性をキー記憶装置により後でチェックできるように、事象認証をセキュアな環境に結合するのに使用できる。
本発明の実施形態によれば、事象マネージャーは、事象許可証を受け取り、それらが本物であるかどうかチェックし、そしてもしそうであれば、それらを、事象証明書記憶装置に加えて事象オーソライザーへ渡す。事象マネージャーは、オーバー・ジ・エア(OTA)装置マネージメントプロトコル、例えば、OMA装置マネージメントを経て、事象許可証を受け取ることができる。
事象許可証は、事象証明書と同様であるが、事象証明書とは異なり、セキュアな環境の単一のインスタンスには結合されない。対照的に、事象許可証は、例えば、第三者マネージメントエージェントに結合される。この場合、事象マネージャーは、事象許可証をチェックし、そして事象オーソライザーを使用してそれを事象証明書へ変換する。ある場合には、事象許可証は、有効な事象証明書でもよい。
一般的なブート及びマネージメントプロセス
上述したセキュアなブートメカニズムフレームワークが使用される本発明の実施形態によるブートプロセスについて以下に説明する。このブートプロセスは、2つの段階、即ち(1)施行ファンクションのブーティング、及び(2)システムの寿命全体にわたる施行ファンクションの実行、に分割することができる。
第1の施行ファンクションのブーティング:
本発明の一実施形態によりブートプロセスの第1段階において施行ファンクションをブーティングするときに行なわれるステップを示すフローチャートである図2を参照する。図示されたように、プロセスは、ステップ201で始まり、計算エンジン及びセキュアな環境がパワーアップされる。ステップ202において、システムが丁度パワーアップされたことを表わすために、システム履歴(SH)が初期化される。次いで、セキュアな環境の状況の中でRTEファンクションが実行される(ステップ203及び204)。
特に、RTEは、最初に、実行されるべき施行ファンクションを検査し、次いで、その実行の事象(例えば、EF1_BOOT)を生成する(ステップ203)。ステップ204において、RTEは、その事象(EF1_BOOT)に対応する事象証明書記憶装置(EC)において事象証明書(例えば、EF1_CRED)をルックアップする。事象証明書(EF1_CRED)がECにおいて見つからない(ステップ205で行なわれる判断に基づき)場合には、システムのブートが中止される(ステップ206)。対照的に、事象証明書(EF1_CRED)がECに見つかった場合には、RTEは、事象証明書(EF1_CRED)をキー記憶装置(KS)へ渡し、事象証明書が本物であるかどうか決定する(ステップ207、208及び209)。
事象証明書(EF1_CRED)が本物でない場合には、システムブートが再び中止される(ステップ210)。或いは又、事象証明書がKSにより認証された場合には、事象ベリファイア(EV)は、SHに現在システム状態が与えられていれば、事象証明書(EF1_CRED)が事象(EF1_BOOT)を許可するかどうか決定する(ステップ211)。事象(EF1_BOOT)が許可されない場合(即ち、EF1_CREDが現在状態においてEF1_BOOTを許さない場合)、システムブートは、ステップ212において中止される。或いは又、EF1_CRED(事象証明書)が本物であり(ステップ209で決定される)、そしてEF1_BOOT(事象)を許す場合には、制御が事象レコーダー(ER)へ移され、これが事象(EF1_BOOT)をSHに記録する(ステップ213)。最終的に、ステップ214において、ERは、制御をEFへ移し、セキュアな環境内のリソースは、セキュアな環境が実行されるまで、アクセスできない。
施行ファンクションの実行:
施行ファンクションは、上述したセキュアな環境の要素と一緒に、施行ファンクションからの事象に対する許可を正しく要求するプログラムしかブートされないことを保証する。これを行なわないプログラムは、例えば、オペレーティングシステムにより分離され、計算環境のセキュリティ又は信頼性に影響し得る微妙なリソースにそれらがアクセスしないようにしなければならない。施行ファンクション及びオペレーティングシステムは、バーチャルメモリ及びCPU特典レベルのような標準的な技術を使用して、施行ファンクションと協働しないプログラム及びコードが微妙なリソース又はファンクションにアクセスしないように保証する。
施行ファンクションが最初にブートアップする(例えば、上述したように)ときには、それが、ブートすべきプログラムのセット(例えば、ブートストラップローダー又はブートローダー、オペレーティングシステム、等)で構成される。施行ファンクションは、次いで、各ロードに対する事象を発生し、そしてセキュアなブートに影響するコードを実行するという責任を果たす。図3は、本発明の実施形態によりコードモジュール“X”をロードして実行するか又は事象“X”(例えば、デバッグモードに入る)を実行するときに行なわれるステップを示すフローチャートである。換言すれば、図3は、ブートプロセスの第2段階を示し、システムの寿命全体にわたり施行ファンクションがいかに実行されるか示す。
ステップ301において、施行ファンクション(EF)は、最初に、モジュールXをロードし実行するための事象(例えば、EV_X)を生成する。次いで、EFは、事象(EV_X)に対応する事象証明書記憶装置(EC)において事象証明書(例えば、X_CRED)をルックアップする(ステップ302)。事象証明書(X_CRED)が見つからない場合には、モジュールXの実行が拒絶される(ステップ303で行なわれた決定に基づき、ステップ304)。或いは又、事象証明書(X_CRED)がECにおいて見つかった場合には、プロセスがステップ305へ続き、EFが事象証明書(X_CRED)をキー記憶装置(KS)へ渡し、事象証明書が本物であるかどうか決定する(ステップ306)。事象証明書(X_CRED)が本物でない場合には、モジュールXの実行が再び拒絶される(ステップ307)。
事象証明書(X_CRED)が本物であることをKSが決定した場合には、事象ベリファイア(EV)は、システム状態がシステム経歴(SH)に与えられると、事象証明書が事象を許可するかどうかチェックする(即ち、EVは、システム状態が与えられると、X_CREDがEV_Xを許可するかどうか決定する)(ステップ308)。状態が与えられて、事象証明書(X_CRED)が事象(EV_X)を許さない場合には、Xの実行が拒絶される(ステップ309)。しかしながら、X_CREDが本物であり(ステップ306で決定される)、そしてEV_Xを許す場合には、制御が事象レコーダー(ER)へ移され、これが事象(EV_X)をSHに記録する(ステップ310)。
ステップ311において、制御が施行ファンクション(EF)に戻され、これが、モジュールXをロードして実行する(ステップ312)。EFは、別の事象が許可を要求するときにステップ301において実行を再開することができる。事象が拒絶された場合に(例えば、ステップ304、307又は309において)、EFがコードの実行に使用できる代替手段をもたなければ、おそらく、選択肢がなく、それ自身シャットダウンするか、又は将来の事象を待機し始める。将来の事象が期待されない場合には、EFは、ここでも、おそらく、選択肢がなく、それ自身シャットダウンする。実際上、これは、システムをシャットダウンするか又はそれを使用不能にすることを意味する。
事象証明書の管理
図4は、本発明の実施形態による事象証明書410及び事象許可証420のブロック図である。図示されたように、事象証明書410は、事象必須条件フィールド412、事象フィールド414、及びキー記憶装置(KS)結合フィールド416を含む。一実施形態において、事象フィールドは、事象の定義を与える。上述したように、事象は、コード映像のロード及び実行のコード化表現である(例えば、実行されるべきコード映像の暗号ハッシュ)。事象必須条件フィールドは、事象が許される条件を記述し(例えば、この事象は、他の幾つかの事象が既に実行された場合しか許されない)、そして一実施形態では、事象フィールドに一体化することができる。KS結合フィールドは、事象証明書及びそのコンテンツをキー記憶装置に結合する。上述したように、これは、KSが事象証明書の完全性及び真正性をチェックするのを許す。当業者に理解されるように、多数のプロトコル及び方法を使用して、この結合特徴を与えることができる。
事象許可証420は、主として、構造体の真正性及び完全性をいかにチェックするかについて、事象証明書410とは異なる。この目的のためにセキュアな装置マネージメント解決策を配備できることが予想されるので、事象許可証の形式は、事象マネージャーがいかにインスタンス生成されるかに強く依存する。例えば、アドレッシングのために(即ち移動電話を識別するために)、あるシステムは、国際移動装置識別(IMEI)コードを使用して装置をアドレスすることができ、別のシステムは、所有権コードを使用することができる。セキュアなブート構成を保護するために、あるシステムは、パブリックキーインフラストラクチャー(PKI)に基づいてデジタル署名を使用することができ、一方、別のシステムは、不正防止記憶装置に記憶された共有機密情報を使用することができる。
セキュアなブートフレームワークを含むことのできる移動装置
本発明の実施形態から利益を得る移動装置の一形式を示す図5を参照して説明する。特に、図5は、上述したセキュアなブートフレームワークを動作することのできる移動装置を示す。しかしながら、図示して以下に説明する移動装置は、本発明から利益を得る移動装置の一形式を単に例示するもので、それ故、本発明の範囲を限定するものではないことを理解されたい。移動装置の幾つかの実施形態を図示して、例示のために以下に説明するが、他の形式の移動装置、例えば、パーソナルデジタルアシスタント(PDA)や、ページャーや、ラップトップコンピュータや、移動ワイヤレス装置及び固定ワイヤライン装置の両方を含む他の形式の電子システムも、本発明の実施形態を容易に使用することができよう。
移動装置は、より詳細に示してここに説明するものを含めて、本発明の実施形態による1つ以上のファンクションを遂行する種々の手段を備えている。しかしながら、1つ以上のエンティティは、本発明の精神及び範囲から逸脱せずに、1つ以上の同様のファンクションを遂行するための別の手段を含むことを理解されたい。より詳細には、例えば、図5に示すように、アンテナ12に加えて、移動装置10は、送信器204と、受信器206と、これら送信器204及び受信器206へ信号を供給し及びそれらから信号を受信するプロセッサ、コントローラー、等の手段、例えば、処理装置208とを備えている。これら信号は、適用セルラーシステムのエアインターフェイス規格に基づくシグナリング情報と、ユーザスピーチ及び/又はユーザ発生データも含む。この点に関して、移動装置は、1つ以上のエアインターフェイス規格、通信プロトコル、変調形式、及びアクセス形式で動作することができる。より詳細には、移動装置は、多数の第二世代(2G)、2.5G及び/又は第三世代(3G)通信プロトコル等に基づいて動作することができる。更に、例えば、移動装置は、ブルーツース、IEEE802.11 WLAN(又はWi−Fi(登録商標))、IEEE802.16 WiMAX、ウルトラワイドバンド(UWB)、等を含む多数の異なるワイヤレスネットワーク技術のいずれかに基づいて動作することができる。
プロセッサ、コントローラー又は他の計算装置のような処理装置208は、移動装置のビデオ、オーディオ、及びロジックファンクションを実施するのに必要な回路を備え、そしてここに述べる機能を実施するためのアプリケーションプログラムを実行できることを理解されたい。例えば、処理装置は、デジタル信号プロセッサ装置、マイクロプロセッサ装置、種々のアナログ/デジタルコンバーター、デジタル/アナログコンバーター、及び他のサポート回路を含む種々の手段で構成することができる。移動装置の制御及び信号処理ファンクションは、これらの装置間に各々の能力に基づいて割り当てられる。従って、処理装置208は、変調及び送信の前にメッセージ及びデータをコンボリューションエンコード及びインターリーブするための機能も含む。処理装置は、更に、内部ボイスコーダー(VC)208Aを含むことができ、そして内部データモデム(DM)208Bを含んでもよい。更に、処理装置208は、メモリに記憶できる1つ以上のソフトウェアアプリケーションを動作する機能を含んでもよい。例えば、コントローラーは、従来のウェブブラウザのような接続性プログラムを動作することができる。接続性プログラムは、移動装置が、例えば、HTTP及び/又はワイヤレスアプリケーションプロトコル(WAP)に基づいて、ウェブコンテンツを送信及び受信できるようにする。
又、移動装置は、例えば、従来のイヤホン又はスピーカ210、リンガー212、マイクロホン214、ディスプレイ216を含むユーザインターフェイスのような手段を含んでもよく、それらは、全て、コントローラー208に結合される。移動装置がデータを受信できるようにするユーザ入力インターフェイスは、移動装置がデータを受信できるようにする多数の装置、例えば、キーパッド218、タッチディスプレイ(図示せず)、マイクロホン214、又は他の入力装置を備えることができる。キーパッドを含む実施形態では、キーパッドは、従来の数字(0−9)及び関連キー(#、*)と、移動装置の動作に使用できる他のキーとを含むことができ、そしてフルセットのアルファニューメリックキー、或いはフルセットのアルファニューメリックキーを与えるようにアクチベートできる1セットのキーを含んでもよい。図示されていないが、移動装置は、移動装置を動作するのに必要な種々の回路を付勢し且つ機械的な振動を検出可能な出力として任意に与えるための振動バッテリーパックのようなバッテリーを含む。
又、移動装置は、移動加入者に関係した情報エレメントを典型的に記憶する、例えば、加入者アイデンティティモジュール(SIM)220、取り外し可能なユーザアイデンティティモジュール(R−UIM)(図示せず)、等を含むメモリのような手段を備えることもできる。SIMに加えて、移動装置は、他のメモリを含むこともできる。この点に関して、移動装置は、埋設でき及び/又は取り外し可能でもよい揮発性メモリ222及び他の不揮発性メモリ224を含むことができる。例えば、他の不揮発性メモリは、埋設又は取り外し可能なマルチメディアメモリカード(MMC)、ソニーコーポレーションにより製造されたメモリスティック、EEPROM、フラッシュメモリ、ハードディスク、等でよい。メモリは、移動装置のファンクションを実施するために移動装置により使用される情報及びデータの多数の断片又は任意の量を記憶することができる。例えば、メモリは、移動装置を独特に識別することのできる識別子、例えば、国際移動装置識別(IMEI)コード、国際移動加入者識別(IMSI)コード、移動装置サービス総合デジタル網(MSISDN)コード、等を記憶することができる。又、メモリは、コンテンツを記憶することもできる。メモリは、例えば、アプリケーション及び他のコンピュータプログラムのためのコンピュータプログラムコードを記憶してもよい。例えば、本発明の一実施形態では、メモリは、上述した事象オーソライザー、事象ベリファイア、事象レコーダー、ルート・オブ・トラスト・フォア・エンフォースメント、事象マネージャー、及び/又は施行ファンクションの機能を遂行するためのコンピュータプログラムコードを記憶することができる。
ここに例示する実施形態では、移動装置は、更に、ここに述べるセキュアな環境を実施するための分離されたセキュアな環境を実施してもよい。この分離されたセキュアな環境は、専用のハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合せを使用して実施されてもよい。このような環境は、例えば、種々の製造者(例えば、Infineon及びAtmel)、又はARM TrustZone解決策に存在するような「セキュアなモード」のバーチャル化技術により構築されたTPMを含む。
本発明の実施形態の移動装置は、移動通信用途に関連して主として説明した。しかしながら、本発明の実施形態の移動装置は、移動通信産業及び移動通信産業以外の両方における種々の他の用途に関連して利用できることが理解されよう。例えば、本発明の実施形態の移動装置は、ワイヤライン及び/又はワイヤレスネットワーク(例えばインターネット)用途に関連して利用することもできる。
パートII:信頼性のあるワーキンググループ(TCG)に適合する実施形態
例えば、TCG信頼性プラットホームモジュール(TPM)を含むTCGのような特徴を有する移動装置において上述したセキュアなブートフレームワークが実施される本発明の実施形態を以下に説明する。
TCG定義のシステム履歴
一般に、TCG TPMは、TPMに含まれる160ビットレジスタである「プラットホームコンフィギュレーションレジスタ(PCR)」のセットを使用してシステムの状態を測定する。TPMに含まれるPCRの数(例えば、16又は24)は、実施されるTPMのバージョンに依存する。各PCRは、事象の「セキュアなハッシュアルゴリズム1(SHA1)」を含み、これは、いわゆるTPM_Extendコマンドを使用して更新することができる。TPM_Extendコマンドについて以下に説明する。
PCR[]は、TPMの内部に記憶されるPCRのアレーを表わすものとする(例えば、PCR[0]は、PCRレジスタ0であり、PCR[1]は、レジスタ1であり、等々である)。SHA1(x)は、ビットストリングxのSHA1ハッシュを表わすものとする。iは、有効なPCRインデックスであるとし、そしてevは、記録されるべき事象を表わす160ビット値であるとする。old=PCR[i]は、PCRレジスタiの現在値であるとする。TPM_Extendは、PCR[i]に値SHA1(old‖ev)を指定し、即ちPCR[i]:=SHA1(old‖ev)である。
SHA1ファンクションは、強力な暗号ハッシュ関数であると仮定する。これに基づいて、次の2つの特性が仮定される。即ち、(1)PCRレジスタ状態PCR[i]及び160ビット値xが与えられると、TPM_ExtendがxをPCR[i]に指定するようにさせる値evを見出すことが不可能となり、(2)TPM_Extend()で繰り返すことによりPCRレジスタに同じ値を指定するようにさせる2つの事象シーケンスを見出すことが不可能になる。
以上に基づき、PCRレジスタのセットは、TPM_Extendオペレーション(即ち、記録された事象のシーケンス)に関してシステム状態を記述することが暗示される。その意図は、システムの異なる観点により発生されるか又はそれに関連した事象を異なるPCRへと拡張することであるが、これは、システムソフトウェアまでである。
TCG適合の事象、システム履歴及び事象証明書
PCRレジスタの数はnであると仮定する。セキュアなブートフレームワーク内のオブジェクトは、今や、次のようになる。即ち、(1)システム履歴は、n個のPCRレジスタ(例えば、16又は24)のセットであり、(2)事象は対であり(即ち、PCRインデックスi、160ビット整数ev)、(3)事象証明書も対であり、即ち、状態記述子及びキー記憶装置(KS)結合、そして(4)事象許可証は、状態記述子及び許可者を含む対である。状態記述子は、n個のPCRレジスタ値のアレーPCR[]及びn個の比較オペレーション定義のPCR_CMP[]のアレーである。PCR_CMP[i]は、インデックスiをもつPCRに対応する。PCR_CMP[]の値は、“equals”又は“don't care”である。
前の章で述べたTPM_Extend()オペレーションに課せられた仮定(例えば、SHA1ファンクションが強力な暗号ハッシュ関数であるという仮定)のために、個別の事象必須条件を事象証明書又は事象許可証に記憶する必要はない。というのは、システム履歴を識別するように状態記述子が仮定されるからである。
図6は、上述したTCG適合の事象証明書及び事象許可証を示す。
TCG適合のRTE、事象ベリファイア及び施行ファンクション
事象証明書記憶装置:
上述したように、事象は、対<PCRインデックス、160ビット整数>で構成され、事象証明書は、<状態記述子、KS結合>で構成され、そして状態記述子は、PCRのアレー及び比較オペレーションのアレーで構成されると仮定する。EC_LOOKUP(事象、システム履歴)オペレーションは、事象証明書の許可を見出すように試みる。本質的に、この手順は、PCR[]アレーで遂行されているTPM_Extend()オペレーションを模擬し、次いで、その結果を、PCR_CMP[]アレーのインストラクションに基づく状態記述子PCR値と比較する。
一実施形態において、EC_LOOKUP()は、以下に述べるように進行する。第1に、事象は、<i、事象>であるとし、そしてシステム履歴は、サイズnのアレーPCR[]であるとする。事象証明書において各事象証明書EC=<状態記述子、KS結合>に対して、次のことを行なう。即ち、(1)ECの状態記述子が、PCR値のアレーSD_PCR[]及び比較オペレーションのアレーSD_CMP[]より成るものとし、(2)一時的アレーTMP_PCR[]:=PCR[]を現在システム履歴のコピーとして生成し、(3)TMP_PCR[i]:=SHA1(PCR[i])‖事象)とし、(4)インデックス:=0ないしn−1に対して、SD_CMP[index]=“equal”、及びSD_PCR[index]!=TMP_PCR[index]の場合には、次の証明書へと進みそして(1)へ進み、更に、(5)前記チェックが(1)へのジャンプを生じさせない場合には証明書ECを返送する。最終的に、チェックすべき事象証明書がそれ以上なく、一致するものが返送されなかった場合には、欠陥が返送される。明瞭化のために、SD_CMP[index]が“equals”に等しい場合には、状態記述子は、インデックス“index”をもつPCRが、事象の始動後に値SD_PCR[index]で終わることを要求する。SD_CMP[index]が“equal”に等しくない場合には、“don't care”の値を暗示し(2つの選択肢しかないので)、それ故、インデックス“index”をもつPCRは、次のものへ進むようにスキップすることができる。
施行ファンクションのTCG適合のブート:
本発明の一実施形態により、TCGに適合する仕方で、RTEが施行ファンクション(EF)をどのようにブートするかについて以下に説明する。このプロセスのステップが図7に示されている。一般に、RTEは、適当な証明書を探索し、次いで、ブートの進行を許すだけでよい。
より詳細には、このプロセスは、ステップ701において、計算エンジン及びセキュアな環境がパワーアップされたときに始まる。次いで、システム履歴(SH)が初期化され、そして全てのPCR値が0にセットされる(ステップ702)。次いで、セキュアな環境の状況の中でRTEファンクションを実行することができる。特に、ステップ703において、RTEは、EFのブートを表わす事象EF1_BOOTを生成する。この事象は、例えば、EFコード映像と連結されたストリング「ブート」のPCRインデックス0及びSHA1ハッシュであり、例えば、<0、SHA1(「ブート」‖EFコード)>である。
次いで、RTEは、ステップ704において、SHからPCR[]アレーをルックアップし、そしてステップ705において、事象証明書EF1_CRED:=EC_LOOKUP(EF1_BOOT、PCR[])をルックアップする。EC_LOOKUPが欠陥を返送する場合には、システムブートが中止される(ステップ707)。或いは又、EF1_CREDが見つかり、そしてEF1_BOOTを許す場合には、キー記憶装置(KS)及びKS結合を使用して、EF1_BOOT証明書が本物であることをチェックする(ステップ708)。事象証明書が本物でない場合には、システムブートが再び中止され(ステップ710)、そしてRTEは、事象証明書記憶装置(EC)から証明書を除去することができる。事象証明書が本物である場合には、事象証明書及びシステム状態に基づいて事象が許されるかどうか決定される(ステップ711)。事象が許されず又は許可されない場合には、システムブートがステップ712において中止される。しかしながら、EF1_CREDが見つかり、本物であり、そしてEF1_BOOTを許す場合には、制御が事象レコーダー(ER)へ移され、該レコーダーは、EF1_BOOTをシステム履歴(SH)に記録する(ステップ713)。最終的に、ステップ714において、ERは、制御をEFへ移し、そしてセキュアな環境内のリソースにはもはやアクセスできない。
施行ファンクションのオペレーション:
一般に、本発明の実施形態の施行ファンクション(EF)は、簡単な仕方で動作する。しかしながら、2つの注目すべき点は、真正性のチェックが事象ベリファイア(EV)の内部で行なわれることと、状態履歴及び状態記述子の比較がセキュアな環境の外部(EFにより)及びセキュアな環境の内部(EVにより)の両方で行なわれることである。
本発明の実施例によりEFを動作するときに行われるステップについて以下に述べる。第1に、ステップ801において、EFは、モジュールXのロード/実行のための事象(EV_X)を生成する。次いで、ステップ802において、EFは、SHからPCR[]をルックアップする。次いで、EFは、事象証明書X_CRED:=EC_LOOKUP(EV_X、PCR[])をルックアップする(ステップ803)。EC_LOOKUPが欠陥を返送する場合には、Xの実行が拒絶される(ステップ805)。或いは又、X_CREDが見つかった場合には、EFは、X_CREDをKSに渡して、X_CREDが本物であるかどうかチェックする(ステップ806)。X_CREDが本物でない場合には、Xの実行が再び拒絶される(ステップ808)。X_CREDがKSにより認証された場合には、事象ベリファイア(EV)は、事象証明書がEV_Xを許すかどうかチェックする(ステップ809)。
事象証明書(X_CRED)が事象(EV_X)を許すかどうかチェックするために、次のことが実施される。即ち、X_CREDの状態記述子が、PCR値のアレーSD_PCR[]及び比較オペレーションのアレーSD_CMP[]より成るものとし、一時的アレーTMP_PCR[]:=PCR[]を現在SHのコピーとして生成し、TMP_PCR[i]:=SHA1(PCR[i]‖事象)とし、index:=0ないしn−1に対して、SD_CMP[index]=“equals”及びSD_PCR[index]!=TMP_PCR[index]である場合には、Xの実行が拒絶される。明瞭化のために、EC_LOOKUPオペレーションがセキュアな環境の外部で遂行されるので、EVファンクションは、事象証明書が、本物であることに加えて、事象を許可することもチェックしなければならない。これは、システムが事象の実行から希望の状態を生じることをチェックすることを意味する。上記ループは、これを行い、そして本質的に、EC_LOOKUP()プリミティブの中の機能のコピーである。X_CREDが本物であって、EV_Xを許すと仮定すれば、制御が事象レコーダー(ER)へ移され、該レコーダーは、EV_Xをシステム履歴に記録する(ステップ811)。最終的に、ERは、制御をEFへ戻し(ステップ812)、そしてEFは、コードモジュールXをロードして実行する(ステップ813)。EFは、次の事象が許可を要求するときにステップ801へ戻る。
KS結合及び事象オーセンチケーター
本発明の実施形態により、上述したKS結合及び事象オーセンチケーター(Authenticator)を実施するための幾つかの態様について以下に述べる。
KS結合:
上述したように、本発明の実施形態のKS結合は、事象証明書記憶装置(EC)の証明書を、セキュアな環境及びキー記憶装置の単一インスタンスに結合するものと仮定する。これとは対照的に、事象許可証のオーセンチケーターは、事象許可証を、セキュアなブートファンクションの管理を許された特権を持つ第三者へ結合すると仮定する。
KS結合を与える1つの態様は、SHA1に基づくキー型ハッシングメッセージ認証コード(HMAC)を使用して、KS結合を生成し検証することである。この実施形態では、(1)事象証明書EC=<状態記述子、ks結合>とし、そして(2)ECの状態記述子が、PCR値のアレーSD_PCR[]及び比較オペレーションのアレーSD_CMP[]より成るものとする。SD_PCR[]及びSD_CMP[]より成るビットストリングを生成する。このシーケンシングをマーシャリングMARSHAL(EC)と呼ぶ。HMAC_SHA1(key、string)は、ビットストリングstringにわたってキーkeyを使用して計算されたHMAC_SHA1()より成るものとする。160ビット機密である機密キーROOT_EC_KEYがあるとする。このキーは、機密を保持しなければならない。ECのKS結合は、ここで、HMAC_SHA1(ROOT_EC_KEY、MARSHAL(EC))と定義することができる。ECの真正性は、TMP:=HMAC_SHA1(ROOT_EC_KEY、MARSHAL(EC))を計算し、次いで、TMPとKS結合をECにおいて比較することにより、検証することができる。それらが等しい場合には、ECが本物である。
別のKS結合は、デジタル署名に基づくKS結合である。この実施形態では、(1)Sign{SecretKey}(x)を、セキュアなデジタル署名機構に対してxにわたるパブリックキーベースのデジタル署名オペレーションであるとし、(2)Verify{PublicKey}(x、signature)を、対応する検証オペレーションであるとし、そして(3)MARSHAL(EC)を、前の章と同様に定義するものとする。KS結合は、ここでは、Sign{SecretKey}(MARSHAL(ec))と定義することができる。検証は、Veryfy{PublicKey}(MARSHAL(ec)、ks binding)となる。
この方法において、機密キーをセキュアな環境の中に記憶する必要がなく、パブリックキーのオペレーションは、より複雑で且つ費用がかかる。又、デジタル署名は、HMAC_SHA1メッセージ認証コードよりもビット長さが長い傾向となる。
事象オーセンチケーター:
事象許可証におけるオーセンチケーターは、セキュアなブートファンクションの管理が許された特権をもつ第三者に事象許可証を結合すると仮定する。これに対して、KS結合は、セキュアな環境及びキー記憶装置の単一インスタンスにEC証明書を結合すると仮定する。アーキテクチャーレベルにおけるこのデカップリングは、意図的である。というのは、任意の第三者マネージメントフレームワークへのプラグインをそれらのアドレス及びキー配布メカニズムとは独立して許すからである。
この章では、本発明の一実施形態によりこのフレームワーク及びTCG TPMベースのシーリングを使用して任意の第三者メカニズムをどのように実施できるかの一例を説明する。
一実施形態において、TCG TPMは、プラットホームのある状態に対してデータへのアクセスをシールすることを許し、ここで、プラットホームは、上述した事象証明書における状態記述子と同様のメカニズムで定義される。シーリングは、TPMがデータを暗号化するようにさせ、次いで、暗号化されたデータを状態記述子に結合することで遂行できる。データは、PCR[]アレーが、暗号化されたデータに結合された状態記述子に一致する場合にのみ、アンシール(解読)することができる。
マネージメント/コンフィギュレーションファンクションを実際に実施する仕方は多数存在する。あるものは、事象オーソライザーがセキュアな環境の内部にある(実際には事象マネージャー及び事象オーソライザーを結合する)ことを要求し、一方、あるものは、それを要求しない。ほとんどの場合に、これは、キー記憶装置におけるキーの取り扱いに対してどんなレベルの不正防止が要求されるかを意味する。
この方法は、この章では、事象マネージャー及び事象オーソライザーの両方がセキュアな環境の外部で実行されるが、TCG TPMにより与えられるシーリングを使用して、キーが妥協されないよう保証する例示的なケースについて説明する。この章では、事象マネージャー及び事象オーソライザーの両方を説明するのに、事象オーソライザーという語を使用する。この場合に、セキュアな環境は、[TPM1][TPM2][TPM3]に述べたシーリング及びキーマネージメントファンクションを含む。
各々のセキュアなブートマネージメントシステムXに対して、プラットホームに次のものが存在すると仮定する。即ち、(1)到来する事象許可証及び状態を、a)エージェントが実行されるシステムにそれらがアドレスされたかどうか、及びb)事象許可証が有効であるかどうかについて検証することのできるエージェントAGENT_X、及び(2)定義されたコンフィギュレーションでこのエージェントを実行するための事象証明書EV_AGENT_X。更に、対応する事象証明書が生成されるまで、保留中の事象許可証を入れることのできる記憶装置(事象許可証記憶装置)が存在し、且つHMAC_SHA1ベースのKS結合が使用されると仮定するが、他のシステムも同様に機能する。
一実施形態によれば、ブートストラップ時に、RTEは、事象許可証記憶装置が空であるかどうかチェックしなければならない。もし空であれば、EFのブートは、希望の通りに進行する。事象許可証記憶装置が空でない場合には、RTEは、EFに代わって事象オーソライザーのファンクションを実行する。RTEは、もちろん、事象許可ファンクションを実行するために有効な事象証明書を必要とする。
事象証明書に対する有効なKS結合を生成するのに必要な機密キー(この場合はROOT_EC_KEY)は、事象オーソライザーファンクションがRTEにより測定及び実行され、そして全てのマネージメントエージェント(EV_AGENT_X)が事象オーソライザーによりロードされた後に存在するPCR値のセットに対してシールされる(TPM_Sealを使用して)。従って、これは、システムが他の状態にある場合にはTPMにより解読されない。このシールされたオブジェクトをSEALED_EC_KEYと呼ぶ。
一実施形態では、事象オーソライザーファンクション(EA)は、次のように動作する。第1に、プラットホームに存在する各EV_AGENTに対して、EAは、これらエージェントを実行し、ロードする。エージェント及びそれらのコンフィギュレーションをロードするために有効な事象証明書が存在しなければならず、各ロードが測定される。この意味で、EAは、EFに非常に良く似た動作をする。セキュアな環境におけるPCR[]アレーは、ここで、ROOT_EC_KEYがシールされた状態になければならない。EAは、ここで、SEALED_EC_KEYにTPM_Unsealを使用してROOT_EC_KEYをアンシールする。
各事象許可証E_AUTHに対し、次のことが生じる。即ち、(1)EAは、E_AUTHを処理するのに必要なEV_AGENT_Xをルックアップし、(2)EV_AGENT_Xは、E_AUTHを確認し、(3)EV_AGENT_Xが、E_AUTHが本物で且つ有効であることを返送する場合に、EAは、オーセンチケーターフィールドを、ROOT_EC_KEYを使用して生成されたKS結合に置き換えることにより、E_AUTHから事象証明書を生成する。次いで、EAは、ROOT_EC_KEYをメモリから拭き取り、システムが再スタートされ、そしてRTEが実行される。
システムは、キー配布及びアドレッシング方法をEAエージェントに使用するのを許す。事象証明書及びシーリングを使用して、EV_AGENT_Xにより使用される検証キーを保護することができる。
結論
上述したように、本発明の実施形態は、最小で、頑丈で、融通性があって、拡張可能で且つ簡単なセキュアなブートメカニズムを提供する。1つの機密事項しか要求されないので(即ち、KS結合に対して)、フレームワークは最小である(それ故、コスト効率が良い)。更に、セキュアなブート状態の定義は、非セキュアな記憶装置(例えば、ハードドライブ又はフラッシュメモリ)に保持することができ、そして機密事項は、対称的暗号化のためのキーであり、従って、パブリックキーに基づく機構より高速にすることができる。コストを減少すると共に、フレームワークを更に最小にするために、一実施形態では、事象許可及び事象マネージメントファンクションを未実施のままとすることができる。唯一重要なことは、事象証明書を更新不能にすることである。
事象証明書記憶装置(EC)は、それがセキュアな環境の外部に位置されるために、通常のバックアップメカニズムを使用してバックアップすることができ、付加的なバックアップメカニズムの必要性を排除できる。少なくともこの理由で、本発明の実施形態のセキュアなブートフレームワークは、頑丈である。更に、ここに述べる実施形態によれば、セキュアなブートフレームワークのマネージメント及びランタイム振舞いは、デカップルされる。その結果、セキュアな環境の性質とは独立して、アドレッシング及びキー配布フレームワークを使用してセキュアな仕方でマネージメントを行うことができる。これにより、フレームワークは、既存のフレームワークより融通性の高いものとなる。好都合なことに、ここに示す実施形態のセキュアなブートフレームワークは、拡張性もある。というのは、ブートすべき任意の量の許可されたコンフィギュレーションを取り扱うようにスケールアップできるからである。最後に、ここに示す実施形態のフレームワークは、セキュアな環境内に必要とされる特徴があまり複雑でないという点で、簡単である。
又、ブートプロセスの微粒度は、誰もが個々の事象証明書をキーKで暗号化するのを許す。これは、キーKが装置に配布されるまで事象証明書の使用を阻止する。これは、幾つかのコンフィギュレーションへブートすることのできる人々の数を制限するように実施できる。更に、システムは、事象証明書を装置自体においてインスタンス生成するのを許すので、これは、ユーザがセキュアなブートコンフィギュレーションを制御するのを許すソフトウェアを後で構築できるようにする。ユーザは、例えば、ウイルス防止エージェントが存在しない限り完全にブートしないようにシステムを構成するよう試みることができる。最後に、ここに提案する解決策は、システム履歴を単一プラットホームに特有のものにせずに、誰もが個々の事象証明書を単一プラットホームに結合できるようにする。これは、リモート立証([TPM3]に定義されたTPM_QUOTEオペレーションによりなされるもののような)を、依然として、匿名又はプライバシーを妥協せずに実行できることを意味する。
上述したように、そして当業者に明らかなように、本発明の実施形態は、システム、方法、移動装置又は他の装置として構成されてもよい。従って、本発明の実施形態は、完全にハードウェア、完全にソフトウェア、又はソフトウェア及びハードウェアの組み合せを含む種々の手段で構成されてもよい。更に、本発明の実施形態は、コンピュータ読み取り可能なプログラムインストラクション(例えば、コンピュータソフトウェア)が実施されたコンピュータ読み取り可能な記憶媒体におけるコンピュータプログラム製品の形態をとってもよい。ハードディスク、CD−ROM、光学的記憶装置、又は磁気記憶装置を含む適当なコンピュータ読み取り可能な記憶媒体を使用することができる。
本発明の実施形態は、方法、装置(即ち、システム)及びコンピュータプログラム製品を示すブロック図及びフローチャートを参照して以上に説明した。ブロック図及びフローチャートの各ブロック、並びにブロック図及びフローチャートのブロックの組み合せは、各々、コンピュータプログラムインストラクションを含む種々の手段により実施できることを理解されたい。これらコンピュータプログラムインストラクションは、汎用コンピュータ、特殊目的コンピュータ、又は他のプログラマブルデータ処理装置にロードされて、マシンを形成し、コンピュータ又は他のプログラマブルデータ処理装置で実行されるインストラクションは、フローチャートのブロックで指定されたファンクションを実施するための手段を生成する。
又、これらのコンピュータプログラムインストラクションは、コンピュータ又は他のプログラマブルデータ処理装置が特定の仕方で機能するように指令できるコンピュータ読み取り可能なメモリに記憶され、このコンピュータ読み取り可能なメモリに記憶されたインストラクションは、フローチャートのブロックに指定されたファンクションを実施するためのコンピュータ読み取り可能なインストラクションを含む製造物品を形成する。又、コンピュータプログラムインストラクションは、コンピュータ又は他のプログラマブルデータ処理装置にロードされ、コンピュータ又は他のプログラマブル装置において一連の動作ステップを遂行させて、コンピュータ実施プロセスを形成し、コンピュータ又は他のプログラマブル装置で実行されるインストラクションが、フローチャートのブロックで指定されたファンクションを遂行するためのステップを与えるようにする。
従って、ブロック図及びフローチャートのブロックは、指定のファンクションを遂行するための手段の組み合せ、指定のファンクションを遂行するためのステップの組み合せ、及び指定のファンクションを遂行するためのプログラムインストラクション手段をサポートする。又、ブロック図及びフローチャートの各ブロック、並びにブロック図及びフローチャートのブロックの組み合せは、指定のファンクション又はステップを遂行する特殊目的ハードウェアベースのコンピュータシステム、或いは特殊目的ハードウェア及びコンピュータインストラクションの組み合せによって実施できることを理解されたい。
本発明に関する当業者であって、前記説明及び関連図面に表わされた技術の利益を受ける当業者であれば、ここに述べる本発明の多数の変更や他の実施形態が明らかであろう。それ故、本発明は、ここに開示した特定の実施形態に限定されず、変更や他の実施形態が請求の範囲に包含されることを理解されたい。ここでは、特定の用語を使用したが、それらは、一般的な且つ説明上の意味で使用されたに過ぎず、限定のためではない。
本発明の実施形態によるセキュアなブートフレームワークを示すブロック図である。 本発明の実施形態によりセキュアなブートアッププロセスの第1段階を実施するときに行うことのできるステップを示すフローチャートである。 本発明の実施形態によりセキュアなブートアッププロセスの第2段階を実施するときに行うことのできるステップを示すフローチャートである。 本発明の実施形態による事象証明書及び事象許可証のブロック図である。 本発明の実施形態により動作できる移動装置のブロック図である。 本発明の実施形態によるTCG適合の事象許可証及び証明書のブロック図である。 本発明の実施形態による施行ファンクションのTCG適合のブートを示す図である。 本発明の実施形態によりTCG適合環境において施行ファンクションを動作するときに行うことのできるステップを示す図である。

Claims (44)

  1. セキュアなブートフレームワークを使用してシステムをブートアップするための方法において、前記システムは、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する1つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備え、前記方法は、
    前記セキュアな環境の外部に位置するセキュアな施行ファンクションを実行するステップであって、該セキュアな施行ファンクションは、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されているステップと、
    実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行するステップと、
    を備えた方法。
  2. 前記セキュアな施行ファンクションを実行する前記ステップは、
    前記セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成する段階と、
    前記事象に関連した事象証明書を探索する段階であって、この事象証明書が、事象の指示と、事象が許可されるシステム状態の指示とを含むような段階と、
    前記事象証明書が本物であるかどうか決定する段階と、
    前記事象証明書に少なくとも一部分基づき事象が許可されたかどうか決定する段階と、
    前記事象証明書が探索され、本物であり、且つ事象が許可された場合には、前記セキュアな施行ファンクションへ制御を移す段階と、
    を含む請求項1に記載の方法。
  3. 事象証明書を探索する前記段階は、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスすることを含み、前記事象証明書記憶装置は、複数の事象証明書を含む、請求項2に記載の方法。
  4. 前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項2に記載の方法。
  5. 前記事象証明書が本物であるかどうか決定する前記段階は、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定することを含む、請求項4に記載の方法。
  6. システムの現在状態を決定するステップを更に備え、事象が許可されたかどうか決定する前記段階は、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定することを含む、請求項2に記載の方法。
  7. セキュアな施行ファンクションを実行する前記ステップは、前記セキュアな施行ファンクションを実行するルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを含む、請求項1に記載の方法。
  8. 前記セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行する前記ステップは、
    前記プログラムモジュールの実行に関連した事象であって、前記プログラムモジュールの実行に対応するコードを含む事象を生成する段階と、
    事象に関連した事象証明書を探索する段階であって、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものである段階と、
    前記事象証明書が本物であるかどうか決定する段階と、
    前記事象が許可されたかどうか決定する段階と、
    前記事象証明書が探索され、本物であり、且つ事象が許可された場合に、前記プログラムモジュールを実行する段階と、
    を含む請求項1に記載の方法。
  9. 事象証明書を探索する前記段階は、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスすることを含み、この事象証明書記憶装置は、複数の事象証明書を含む、請求項8に記載の方法。
  10. 前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項8に記載の方法。
  11. 前記事象証明書が本物であるかどうか決定する前記段階は、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定することを含む、請求項10に記載の方法。
  12. システムの現在状態を決定するステップを更に備え、事象が許可されたかどうか決定する前記段階は、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定することを含む、請求項8に記載の方法。
  13. セキュアなブートフレームワークを使用してブートアップするように構成された装置であって、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する1つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備えた装置において、更に、
    プロセッサと、
    前記プロセッサに通信するメモリと、
    を備え、前記メモリは、前記プロセッサにより実行可能なアプリケーションを記憶し、該アプリケーションは、実行時に、
    前記セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしか装置で実行されないように保証するよう構成されたセキュアな施行ファンクションを実行し、
    実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行する、
    というように構成された、装置。
  14. 前記セキュアな施行ファンクションを実行するために、前記アプリケーションは、更に、実行時に、
    前記セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成し、
    前記事象に関連した事象証明書を探索し、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものであり、
    前記事象証明書が本物であるかどうか決定し、
    前記事象証明書に少なくとも一部分基づき事象が許可されたかどうか決定し、
    前記事象証明書が探索され、本物であり、且つ事象が許可された場合には、前記セキュアな施行ファンクションへ制御を移す、
    というように構成される請求項13に記載の装置。
  15. 事象証明書を探索するために、前記アプリケーションは、更に、実行時に、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、前記事象証明書記憶装置は、複数の事象証明書を含む、請求項14に記載の装置。
  16. 前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項14に記載の装置。
  17. 前記事象証明書が本物であるかどうか決定するために、前記アプリケーションは、更に、実行時に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するように構成された、請求項16に記載の装置。
  18. 前記アプリケーションは、更に、実行時に、装置の現在状態を決定するように構成され、事象が許可されたかどうかの決定は、事象が許可されたかどうかを装置の現在状態に少なくとも一部分基づいて決定することを含む、請求項14に記載の装置。
  19. セキュアな施行ファンクションを実行するために、前記アプリケーションは、前記セキュアな施行ファンクションを実行するように構成されたルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを含み、このルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールは、前記セキュアな環境内で動作する、請求項13に記載の装置。
  20. 前記セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行するために、前記アプリケーションは、更に、実行時に、
    前記プログラムモジュールの実行に関連した事象であって、前記プログラムモジュールの実行に対応するコードを含む事象を生成し、
    事象に関連した事象証明書を探索し、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものであり、
    前記事象証明書が本物であるかどうか決定し、
    前記事象が許可されたかどうかを前記事象証明書に少なくとも一部分基づいて決定し、
    前記事象証明書が探索され、本物であり、且つ事象が許可された場合に、前記プログラムモジュールを実行する、
    というように構成された請求項13に記載の装置。
  21. 事象証明書を探索するために、前記アプリケーションは、更に、実行時に、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、この事象証明書記憶装置は、複数の事象証明書を含む、請求項20に記載の装置。
  22. 前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項20に記載の装置。
  23. 前記事象証明書が本物であるかどうか決定するために、前記アプリケーションは、更に、実行時に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するように構成された、請求項22に記載の装置。
  24. 前記アプリケーションは、更に、実行時に、装置の現在状態を決定するように構成され、そして事象が許可されたかどうか決定するために、前記アプリケーションは、更に、実行時に、事象が許可されたかどうかを装置の現在状態に少なくとも一部分基づいて決定するように構成された、請求項20に記載の装置。
  25. セキュアなブートフレームワークを使用してブートアップするように構成されたシステムにおいて、
    プログラムモジュールがシステムでの実行について許可されたかどうか決定し、そしてプログラムモジュールが許可された場合にプログラムモジュールを実行するように構成されたセキュアな施行ファンクションを備え、このセキュアな施行ファンクションがシステムのセキュアな環境の外部で動作するようにしたシステム。
  26. 前記セキュアな環境の外部で動作し、そして複数の事象証明書を含んでいる事象証明書記憶装置を更に備え、プログラムモジュールが許可されたかどうか決定するために、前記セキュアな施行ファンクションは、更に、プログラムモジュールの実行に関連した事象であって、実行に対応するコードを含むような事象を生成し、且つ前記事象証明書記憶装置の複数の事象証明書において事象に関連した事象証明書を探索するように構成された、請求項26に記載のシステム。
  27. プログラムモジュールが許可されるかどうか決定するために、前記セキュアな施行ファンクションは、更に、事象証明書が本物であるかどうか決定するように構成され、前記システムは、更に、
    前記セキュアな環境の内部に配置されて、前記セキュアな施行ファンクションによりアクセスできるキー記憶装置を備え、前記事象証明書記憶装置の各事象証明書は、対応する事象の指示と、事象が許可されるシステム状態の指示と、事象証明書を前記セキュアな環境、特に、キー記憶装置に結合するように構成されたキー記憶装置結合とを含み、更に、事象証明書が本物であるかどうかの前記決定は、前記キー記憶装置にアクセスし、そして前記キー記憶装置結合に少なくとも一部分基づいて事象証明書の完全性及び真正性を決定することを含む、請求項26に記載のシステム。
  28. 前記セキュアな環境の内部で動作し、前記セキュアな施行ファンクションによりアクセス可能な状態履歴データベースを更に備え、この状態履歴データベースは、現在システム状態の指示及び1つ以上の以前のシステム状態の指示を含み、前記セキュアな施行ファンクションは、更に、現在システム状態を決定するためにこの状態履歴データベースにアクセスするように構成される、請求項27に記載のシステム。
  29. 前記セキュアな環境の内部で動作し、前記セキュアな施行ファンクションによりアクセス可能な事象ベリファイアを更に備え、この事象ベリファイアは、事象が許可されるかどうかを、対応する事象証明書及び現在システム状態に少なくとも一部分基づいて決定するように構成される、請求項28に記載のシステム。
  30. 前記セキュアな環境の内部で動作し、前記セキュアな施行ファンクションによりアクセス可能な事象レコーダーを更に備え、この事象レコーダーは、前記プログラムモジュールの実行を前記状態履歴データベースに記録するように構成される、請求項29に記載のシステム。
  31. 前記セキュアな環境の内部で動作するルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを更に備え、このルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールは、前記セキュアな施行ファンクションを実行するように構成される、請求項25に記載のシステム。
  32. セキュアなブートフレームワークを使用してシステムをブートアップするコンピュータプログラム製品において、前記システムは、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する1つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備え、前記コンピュータプログラム製品は、コンピュータ読み取り可能なプログラムコード部分が記憶された少なくとも1つのコンピュータ読み取り可能な記憶媒体を備え、前記コンピュータ読み取り可能なプログラムコード部分は、
    前記セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されたセキュアな施行ファンクションを実行するための第1の実行可能な部分と、
    実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行するための第2の実行可能な部分と、
    を備えたコンピュータプログラム製品。
  33. 前記第1の実行可能な部分は、更に、
    前記セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成するための第3の実行可能な部分と、
    前記事象に関連した事象証明書を探索するための第4の実行可能な部分であって、この事象証明書が、事象の指示と、事象が許可されるシステム状態の指示とを含むような第4の実行可能な部分と、
    前記事象証明書が本物であるかどうか決定するための第5の実行可能な部分と、
    前記事象証明書に少なくとも一部分基づき事象が許可されたかどうか決定するための第6の実行可能な部分と、
    前記事象証明書が探索され、本物であり、且つ事象が許可された場合には、前記セキュアな施行ファンクションへ制御を移すための第7の実行可能な部分と、
    を含む請求項32に記載のコンピュータプログラム製品。
  34. 前記第4の実行可能な部分は、事象証明書を探索するために、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、前記事象証明書記憶装置は、複数の事象証明書を含む、請求項33に記載のコンピュータプログラム製品。
  35. 前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項33に記載のコンピュータプログラム製品。
  36. 前記第5の実行可能な部分は、更に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するように構成された、請求項35に記載のコンピュータプログラム製品。
  37. 前記コンピュータ読み取り可能なプログラムコード部分は、更に、
    システムの現在状態を決定するための第8の実行可能な部分を備え、前記第6の実行可能な部分は、更に、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定するように構成された、請求項33に記載のコンピュータプログラム製品。
  38. 前記第1の実行可能な部分は、前記セキュアな施行ファンクションを実行するように構成されたルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを含み、このルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールは、前記セキュアな環境の内部で動作する、請求項32に記載のコンピュータプログラム製品。
  39. 前記第2の実行可能な部分は、更に、
    前記プログラムモジュールの実行に関連した事象であって、前記プログラムモジュールの実行に対応するコードを含む事象を生成するための第3の実行可能な部分と、
    事象に関連した事象証明書を探索するための第4の実行可能な部分であって、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものである第4の実行可能な部分と、
    前記事象証明書が本物であるかどうか決定するための第5の実行可能な部分と、
    前記事象が許可されたかどうか決定するための第6の実行可能な部分と、
    前記事象証明書が探索され、本物であり、且つ事象が許可された場合に、前記プログラムモジュールを実行するための第7の実行可能な部分と、
    を含む請求項32に記載のコンピュータプログラム製品。
  40. 前記第4の実行可能な部分は、前記事象証明書を探索するために前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、この事象証明書記憶装置は、複数の事象証明書を含む、請求項39に記載のコンピュータプログラム製品。
  41. 前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項39に記載のコンピュータプログラム製品。
  42. 前記第5の実行可能な部分は、更に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するように構成された、請求項41に記載のコンピュータプログラム製品。
  43. 前記コンピュータ読み取り可能なプログラムコード部分は、更に、
    システムの現在状態を決定するための第8の実行可能な部分を備え、前記第6の実行可能な部分は、更に、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定するように構成された、請求項39に記載のコンピュータプログラム製品。
  44. セキュアなブートフレームワークを使用してブートアップするように構成された装置であって、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する1つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備えた装置において、
    前記セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されたセキュアな施行ファンクションを実行するための手段と、
    実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも1つのプログラムモジュールを実行するための手段と、
    を備えた装置。
JP2008530639A 2005-09-16 2006-09-07 信頼性のある移動電話のための簡単で、拡張可能で且つ構成可能なセキュアなブート Active JP5061110B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US71826605P 2005-09-16 2005-09-16
US60/718,266 2005-09-16
PCT/IB2006/002472 WO2007031834A2 (en) 2005-09-16 2006-09-07 Simple scalable and configurable secure boot for trusted mobile phones

Publications (2)

Publication Number Publication Date
JP2009509373A true JP2009509373A (ja) 2009-03-05
JP5061110B2 JP5061110B2 (ja) 2012-10-31

Family

ID=37865311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008530639A Active JP5061110B2 (ja) 2005-09-16 2006-09-07 信頼性のある移動電話のための簡単で、拡張可能で且つ構成可能なセキュアなブート

Country Status (6)

Country Link
US (1) US8201240B2 (ja)
EP (1) EP1934882B1 (ja)
JP (1) JP5061110B2 (ja)
KR (1) KR100998344B1 (ja)
CN (1) CN101300583B (ja)
WO (1) WO2007031834A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010113282A1 (ja) * 2009-03-31 2010-10-07 富士通株式会社 構成変更の検証機能を有した情報処理装置及びその制御方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008094452A2 (en) * 2007-01-26 2008-08-07 Interdigital Technology Corporation Method and apparatus for securing location information and access control using the location information
CN101282258B (zh) * 2007-04-04 2011-12-07 中兴通讯股份有限公司 兼容不同频段Wimax系统的演进系统、帧及其生成方法
US8209550B2 (en) * 2007-04-20 2012-06-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for protecting SIMLock information in an electronic device
GB2454641A (en) * 2007-07-05 2009-05-20 Vodafone Plc Security in a telecommunications network
JP4872875B2 (ja) * 2007-09-28 2012-02-08 ブラザー工業株式会社 ログ管理装置、及びログ管理プログラム
JP5399397B2 (ja) * 2008-01-30 2014-01-29 パナソニック株式会社 セキュアブート方法、セキュアブート装置、プログラムおよび集積回路
DE102008029636A1 (de) * 2008-06-23 2009-12-24 Giesecke & Devrient Gmbh Freischalten eines Dienstes auf einem elektronischen Gerät
EP2449499B1 (en) * 2009-07-01 2014-11-26 Panasonic Corporation Secure boot method and secure boot apparatus
US8615788B2 (en) * 2009-08-12 2013-12-24 International Business Machines Corporation Method and apparatus for scalable integrity attestation in virtualization environments
US10177934B1 (en) 2009-09-04 2019-01-08 Amazon Technologies, Inc. Firmware updates inaccessible to guests
US9565207B1 (en) 2009-09-04 2017-02-07 Amazon Technologies, Inc. Firmware updates from an external channel
US8214653B1 (en) 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US8887144B1 (en) 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US8971538B1 (en) 2009-09-08 2015-03-03 Amazon Technologies, Inc. Firmware validation from an external channel
US8959611B1 (en) 2009-09-09 2015-02-17 Amazon Technologies, Inc. Secure packet management for bare metal access
US8300641B1 (en) 2009-09-09 2012-10-30 Amazon Technologies, Inc. Leveraging physical network interface functionality for packet processing
US8381264B1 (en) * 2009-09-10 2013-02-19 Amazon Technologies, Inc. Managing hardware reboot and reset in shared environments
EP2334025A1 (en) * 2009-12-08 2011-06-15 Gemalto SA Proactive commands over secure channel between a mobile equipment and a UICC
CN101765101B (zh) * 2009-12-15 2013-08-21 大唐微电子技术有限公司 一种空中个人化写卡的方法和系统
US20120246470A1 (en) * 2010-02-16 2012-09-27 Nicolson Kenneth Alexander Information processing device, information processing system, software routine execution method, and remote attestation method
US8996851B2 (en) 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
US8782389B2 (en) 2011-07-19 2014-07-15 Sandisk Technologies Inc. Storage device and method for updating a shadow master boot record
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
US9075995B2 (en) 2013-03-11 2015-07-07 Microsoft Technology Licensing, Llc Dynamically loaded measured environment for secure code launch
US9195831B1 (en) 2014-05-02 2015-11-24 Google Inc. Verified boot
US9842212B2 (en) * 2014-11-03 2017-12-12 Rubicon Labs, Inc. System and method for a renewable secure boot
US9639700B2 (en) 2015-03-20 2017-05-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Unified extensible firmware interface (UEFI) database for secure bootstrap of a computer
CN105578469B (zh) * 2015-04-30 2018-04-10 宇龙计算机通信科技(深圳)有限公司 基于终端的通信方法、通信终端及通信系统
US20160350534A1 (en) * 2015-05-29 2016-12-01 Intel Corporation System, apparatus and method for controlling multiple trusted execution environments in a system
US10482258B2 (en) * 2017-09-29 2019-11-19 Nxp Usa, Inc. Method for securing runtime execution flow
US11615188B2 (en) 2018-05-02 2023-03-28 Hewlett-Packard Development Company, L.P. Executing software
EP3929784A1 (de) * 2020-06-23 2021-12-29 Siemens Aktiengesellschaft Booteinrichtung für ein computerelement und verfahren zum booten eines computerelements

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333902A (ja) * 1997-05-27 1998-12-18 N Ii C Joho Syst:Kk 改ざん検知機能付きコンピュータシステム
JP2003006027A (ja) * 2001-06-21 2003-01-10 Hitachi Ltd アクセス制御ポリシーの自動設定方法およびそのシステム
JP2003108253A (ja) * 2001-09-28 2003-04-11 Hitachi Software Eng Co Ltd アプリケーションの監視方法およびプログラム
JP2003271254A (ja) * 2002-03-08 2003-09-26 Internatl Business Mach Corp <Ibm> 認証システム、ファームウェア装置、電気機器、及び認証方法
US20040003288A1 (en) * 2002-06-28 2004-01-01 Intel Corporation Trusted platform apparatus, system, and method
JP2004046307A (ja) * 2002-07-09 2004-02-12 Fujitsu Ltd データ保護プログラムおよびデータ保護方法
WO2004053664A1 (ja) * 2002-12-12 2004-06-24 Fujitsu Limited プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム
JP2004265026A (ja) * 2003-02-28 2004-09-24 Matsushita Electric Ind Co Ltd アプリケーション認証システムと装置
JP2004265286A (ja) * 2003-03-04 2004-09-24 Fujitsu Ltd 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3288A (en) * 1843-09-28 Improvement in cotton and hay presses
US172542A (en) * 1876-01-18 Improvement in cheese-cutters
US53664A (en) * 1866-04-03 Improvement in horse-powers
CA2170633A1 (en) * 1993-08-27 1995-03-02 Christopher Russell Byrne Super keno
US6557104B2 (en) * 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6330670B1 (en) * 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
EP1076279A1 (en) 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
EP1085396A1 (en) * 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US6757824B1 (en) * 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
GB0020441D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Performance of a service on a computing platform
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
GB2378272A (en) * 2001-07-31 2003-02-05 Hewlett Packard Co Method and apparatus for locking an application within a trusted environment
US7243230B2 (en) * 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US20030182561A1 (en) * 2002-03-25 2003-09-25 International Business Machines Corporation Tamper detection mechanism for a personal computer and a method of use thereof
US7082507B1 (en) * 2002-04-18 2006-07-25 Advanced Micro Devices, Inc. Method of controlling access to an address translation data structure of a computer system
US7530103B2 (en) * 2003-08-07 2009-05-05 Microsoft Corporation Projection of trustworthiness from a trusted environment to an untrusted environment
US7398390B2 (en) * 2003-08-08 2008-07-08 Hewlett-Packard Development Company, L.P. Method and system for securing a computer system
US20050091496A1 (en) * 2003-10-23 2005-04-28 Hyser Chris D. Method and system for distributed key management in a secure boot environment
US7464406B2 (en) * 2004-04-22 2008-12-09 Lenovo (Singapore) Pte. Ltd. System and method for user determination of secure software
US20050283826A1 (en) * 2004-06-22 2005-12-22 Sun Microsystems, Inc. Systems and methods for performing secure communications between an authorized computing platform and a hardware component
US7774619B2 (en) * 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7908483B2 (en) * 2005-06-30 2011-03-15 Intel Corporation Method and apparatus for binding TPM keys to execution entities

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333902A (ja) * 1997-05-27 1998-12-18 N Ii C Joho Syst:Kk 改ざん検知機能付きコンピュータシステム
JP2003006027A (ja) * 2001-06-21 2003-01-10 Hitachi Ltd アクセス制御ポリシーの自動設定方法およびそのシステム
JP2003108253A (ja) * 2001-09-28 2003-04-11 Hitachi Software Eng Co Ltd アプリケーションの監視方法およびプログラム
JP2003271254A (ja) * 2002-03-08 2003-09-26 Internatl Business Mach Corp <Ibm> 認証システム、ファームウェア装置、電気機器、及び認証方法
US20040003288A1 (en) * 2002-06-28 2004-01-01 Intel Corporation Trusted platform apparatus, system, and method
JP2004046307A (ja) * 2002-07-09 2004-02-12 Fujitsu Ltd データ保護プログラムおよびデータ保護方法
WO2004053664A1 (ja) * 2002-12-12 2004-06-24 Fujitsu Limited プログラム実行制御装置、os、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラム
JP2004265026A (ja) * 2003-02-28 2004-09-24 Matsushita Electric Ind Co Ltd アプリケーション認証システムと装置
JP2004265286A (ja) * 2003-03-04 2004-09-24 Fujitsu Ltd 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010113282A1 (ja) * 2009-03-31 2010-10-07 富士通株式会社 構成変更の検証機能を有した情報処理装置及びその制御方法
JP4947239B2 (ja) * 2009-03-31 2012-06-06 富士通株式会社 構成変更の検証機能を有した情報処理装置及びその制御方法
US8838952B2 (en) 2009-03-31 2014-09-16 Fujitsu Limited Information processing apparatus with secure boot capability capable of verification of configuration change

Also Published As

Publication number Publication date
US20070067617A1 (en) 2007-03-22
US8201240B2 (en) 2012-06-12
JP5061110B2 (ja) 2012-10-31
WO2007031834A3 (en) 2007-05-18
CN101300583A (zh) 2008-11-05
KR100998344B1 (ko) 2010-12-06
KR20080045757A (ko) 2008-05-23
WO2007031834A2 (en) 2007-03-22
CN101300583B (zh) 2013-04-10
EP1934882A4 (en) 2010-12-22
EP1934882A2 (en) 2008-06-25
EP1934882B1 (en) 2019-01-23

Similar Documents

Publication Publication Date Title
JP5061110B2 (ja) 信頼性のある移動電話のための簡単で、拡張可能で且つ構成可能なセキュアなブート
US7577839B2 (en) Transferring application secrets in a trusted operating system environment
US7305553B2 (en) Manifest-based trusted agent management in a trusted operating system environment
US8560823B1 (en) Trusted modular firmware update using digital certificate
US7159240B2 (en) Operating system upgrades in a trusted operating system environment
US8938618B2 (en) Device booting with an initial protection component
JP4854677B2 (ja) 処理デバイスのメモリコンテンツの更新
US8239688B2 (en) Securely recovering a computing device
US8789037B2 (en) Compatible trust in a computing device
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
KR20030082484A (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색
KR20060108710A (ko) 신뢰성 있는 이동 플랫폼 구조
CN112511306A (zh) 一种基于混合信任模型的安全运行环境构建方法
WO2023102757A1 (zh) 一种基于面向risc-v架构的启动验证方案
CN117610083A (zh) 文件校验方法、装置、电子设备及计算机存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110516

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110816

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120611

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120806

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5061110

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250