(57)【要約】  セキュアなブートフレームワークを使用してシステムをブートアップするための方法、装置、システム及びコンピュータプログラム製品が提供される。より詳細には、無制限の数の許可されたブート構成を有する一方、最小量のセキュアな／機密の記憶装置しか必要としないセキュアなブートメカニズム（即ち、認証されたプログラム及び／又は事象しか特定プラットホームにおいて実行されないことを強要するメカニズム）が提供される。このセキュアなブートメカニズムは、更に、ランタイムとマネージメント機能との分離を与え、これは、他の許可メカニズムを後でプラグインするのを許す。更に、許可されたセキュアなブート構成（即ち、セキュアなブート状態の定義）は、システムディスク（例えば、フラッシュメモリ）のような非セキュアな記憶装置に保持することができる。最後に、ここに開示するセキュアなブートメカニズムは、既存のＴＣＧ技術で構築され、ＴＣＧ技術が実施される最小限の実施しか要求しないので、更に有益である。【選択図】図１
2009509373.tif 000002
【特許請求の範囲】
【請求項１】
セキュアなブートフレームワークを使用してシステムをブートアップするための方法において、前記システムは、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する１つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備え、前記方法は、
前記セキュアな環境の外部に位置するセキュアな施行ファンクションを実行するステップであって、該セキュアな施行ファンクションは、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されているステップと、
実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するステップと、
を備えた方法。
【請求項２】
前記セキュアな施行ファンクションを実行する前記ステップは、
前記セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成する段階と、
前記事象に関連した事象証明書を探索する段階であって、この事象証明書が、事象の指示と、事象が許可されるシステム状態の指示とを含むような段階と、
前記事象証明書が本物であるかどうか決定する段階と、
前記事象証明書に少なくとも一部分基づき事象が許可されたかどうか決定する段階と、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合には、前記セキュアな施行ファンクションへ制御を移す段階と、
を含む請求項１に記載の方法。
【請求項３】
事象証明書を探索する前記段階は、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスすることを含み、前記事象証明書記憶装置は、複数の事象証明書を含む、請求項２に記載の方法。
【請求項４】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項２に記載の方法。
【請求項５】
前記事象証明書が本物であるかどうか決定する前記段階は、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定することを含む、請求項４に記載の方法。
【請求項６】
システムの現在状態を決定するステップを更に備え、事象が許可されたかどうか決定する前記段階は、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定することを含む、請求項２に記載の方法。
【請求項７】
セキュアな施行ファンクションを実行する前記ステップは、前記セキュアな施行ファンクションを実行するルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを含む、請求項１に記載の方法。
【請求項８】
前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行する前記ステップは、
前記プログラムモジュールの実行に関連した事象であって、前記プログラムモジュールの実行に対応するコードを含む事象を生成する段階と、
事象に関連した事象証明書を探索する段階であって、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものである段階と、
前記事象証明書が本物であるかどうか決定する段階と、
前記事象が許可されたかどうか決定する段階と、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合に、前記プログラムモジュールを実行する段階と、
を含む請求項１に記載の方法。
【請求項９】
事象証明書を探索する前記段階は、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスすることを含み、この事象証明書記憶装置は、複数の事象証明書を含む、請求項８に記載の方法。
【請求項１０】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項８に記載の方法。
【請求項１１】
前記事象証明書が本物であるかどうか決定する前記段階は、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定することを含む、請求項１０に記載の方法。
【請求項１２】
システムの現在状態を決定するステップを更に備え、事象が許可されたかどうか決定する前記段階は、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定することを含む、請求項８に記載の方法。
【請求項１３】
セキュアなブートフレームワークを使用してブートアップするように構成された装置であって、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する１つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備えた装置において、更に、
プロセッサと、
前記プロセッサに通信するメモリと、
を備え、前記メモリは、前記プロセッサにより実行可能なアプリケーションを記憶し、該アプリケーションは、実行時に、
前記セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしか装置で実行されないように保証するよう構成されたセキュアな施行ファンクションを実行し、
実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行する、
というように構成された、装置。
【請求項１４】
前記セキュアな施行ファンクションを実行するために、前記アプリケーションは、更に、実行時に、
前記セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成し、
前記事象に関連した事象証明書を探索し、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものであり、
前記事象証明書が本物であるかどうか決定し、
前記事象証明書に少なくとも一部分基づき事象が許可されたかどうか決定し、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合には、前記セキュアな施行ファンクションへ制御を移す、
というように構成される請求項１３に記載の装置。
【請求項１５】
事象証明書を探索するために、前記アプリケーションは、更に、実行時に、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、前記事象証明書記憶装置は、複数の事象証明書を含む、請求項１４に記載の装置。
【請求項１６】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項１４に記載の装置。
【請求項１７】
前記事象証明書が本物であるかどうか決定するために、前記アプリケーションは、更に、実行時に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するように構成された、請求項１６に記載の装置。
【請求項１８】
前記アプリケーションは、更に、実行時に、装置の現在状態を決定するように構成され、事象が許可されたかどうかの決定は、事象が許可されたかどうかを装置の現在状態に少なくとも一部分基づいて決定することを含む、請求項１４に記載の装置。
【請求項１９】
セキュアな施行ファンクションを実行するために、前記アプリケーションは、前記セキュアな施行ファンクションを実行するように構成されたルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを含み、このルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールは、前記セキュアな環境内で動作する、請求項１３に記載の装置。
【請求項２０】
前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するために、前記アプリケーションは、更に、実行時に、
前記プログラムモジュールの実行に関連した事象であって、前記プログラムモジュールの実行に対応するコードを含む事象を生成し、
事象に関連した事象証明書を探索し、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものであり、
前記事象証明書が本物であるかどうか決定し、
前記事象が許可されたかどうかを前記事象証明書に少なくとも一部分基づいて決定し、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合に、前記プログラムモジュールを実行する、
というように構成された請求項１３に記載の装置。
【請求項２１】
事象証明書を探索するために、前記アプリケーションは、更に、実行時に、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、この事象証明書記憶装置は、複数の事象証明書を含む、請求項２０に記載の装置。
【請求項２２】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項２０に記載の装置。
【請求項２３】
前記事象証明書が本物であるかどうか決定するために、前記アプリケーションは、更に、実行時に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するように構成された、請求項２２に記載の装置。
【請求項２４】
前記アプリケーションは、更に、実行時に、装置の現在状態を決定するように構成され、そして事象が許可されたかどうか決定するために、前記アプリケーションは、更に、実行時に、事象が許可されたかどうかを装置の現在状態に少なくとも一部分基づいて決定するように構成された、請求項２０に記載の装置。
【請求項２５】
セキュアなブートフレームワークを使用してブートアップするように構成されたシステムにおいて、
プログラムモジュールがシステムでの実行について許可されたかどうか決定し、そしてプログラムモジュールが許可された場合にプログラムモジュールを実行するように構成されたセキュアな施行ファンクションを備え、このセキュアな施行ファンクションがシステムのセキュアな環境の外部で動作するようにしたシステム。
【請求項２６】
前記セキュアな環境の外部で動作し、そして複数の事象証明書を含んでいる事象証明書記憶装置を更に備え、プログラムモジュールが許可されたかどうか決定するために、前記セキュアな施行ファンクションは、更に、プログラムモジュールの実行に関連した事象であって、実行に対応するコードを含むような事象を生成し、且つ前記事象証明書記憶装置の複数の事象証明書において事象に関連した事象証明書を探索するように構成された、請求項２６に記載のシステム。
【請求項２７】
プログラムモジュールが許可されるかどうか決定するために、前記セキュアな施行ファンクションは、更に、事象証明書が本物であるかどうか決定するように構成され、前記システムは、更に、
前記セキュアな環境の内部に配置されて、前記セキュアな施行ファンクションによりアクセスできるキー記憶装置を備え、前記事象証明書記憶装置の各事象証明書は、対応する事象の指示と、事象が許可されるシステム状態の指示と、事象証明書を前記セキュアな環境、特に、キー記憶装置に結合するように構成されたキー記憶装置結合とを含み、更に、事象証明書が本物であるかどうかの前記決定は、前記キー記憶装置にアクセスし、そして前記キー記憶装置結合に少なくとも一部分基づいて事象証明書の完全性及び真正性を決定することを含む、請求項２６に記載のシステム。
【請求項２８】
前記セキュアな環境の内部で動作し、前記セキュアな施行ファンクションによりアクセス可能な状態履歴データベースを更に備え、この状態履歴データベースは、現在システム状態の指示及び１つ以上の以前のシステム状態の指示を含み、前記セキュアな施行ファンクションは、更に、現在システム状態を決定するためにこの状態履歴データベースにアクセスするように構成される、請求項２７に記載のシステム。
【請求項２９】
前記セキュアな環境の内部で動作し、前記セキュアな施行ファンクションによりアクセス可能な事象ベリファイアを更に備え、この事象ベリファイアは、事象が許可されるかどうかを、対応する事象証明書及び現在システム状態に少なくとも一部分基づいて決定するように構成される、請求項２８に記載のシステム。
【請求項３０】
前記セキュアな環境の内部で動作し、前記セキュアな施行ファンクションによりアクセス可能な事象レコーダーを更に備え、この事象レコーダーは、前記プログラムモジュールの実行を前記状態履歴データベースに記録するように構成される、請求項２９に記載のシステム。
【請求項３１】
前記セキュアな環境の内部で動作するルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを更に備え、このルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールは、前記セキュアな施行ファンクションを実行するように構成される、請求項２５に記載のシステム。
【請求項３２】
セキュアなブートフレームワークを使用してシステムをブートアップするコンピュータプログラム製品において、前記システムは、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する１つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備え、前記コンピュータプログラム製品は、コンピュータ読み取り可能なプログラムコード部分が記憶された少なくとも１つのコンピュータ読み取り可能な記憶媒体を備え、前記コンピュータ読み取り可能なプログラムコード部分は、
前記セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されたセキュアな施行ファンクションを実行するための第１の実行可能な部分と、
実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するための第２の実行可能な部分と、
を備えたコンピュータプログラム製品。
【請求項３３】
前記第１の実行可能な部分は、更に、
前記セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成するための第３の実行可能な部分と、
前記事象に関連した事象証明書を探索するための第４の実行可能な部分であって、この事象証明書が、事象の指示と、事象が許可されるシステム状態の指示とを含むような第４の実行可能な部分と、
前記事象証明書が本物であるかどうか決定するための第５の実行可能な部分と、
前記事象証明書に少なくとも一部分基づき事象が許可されたかどうか決定するための第６の実行可能な部分と、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合には、前記セキュアな施行ファンクションへ制御を移すための第７の実行可能な部分と、
を含む請求項３２に記載のコンピュータプログラム製品。
【請求項３４】
前記第４の実行可能な部分は、事象証明書を探索するために、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、前記事象証明書記憶装置は、複数の事象証明書を含む、請求項３３に記載のコンピュータプログラム製品。
【請求項３５】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項３３に記載のコンピュータプログラム製品。
【請求項３６】
前記第５の実行可能な部分は、更に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するように構成された、請求項３５に記載のコンピュータプログラム製品。
【請求項３７】
前記コンピュータ読み取り可能なプログラムコード部分は、更に、
システムの現在状態を決定するための第８の実行可能な部分を備え、前記第６の実行可能な部分は、更に、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定するように構成された、請求項３３に記載のコンピュータプログラム製品。
【請求項３８】
前記第１の実行可能な部分は、前記セキュアな施行ファンクションを実行するように構成されたルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを含み、このルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールは、前記セキュアな環境の内部で動作する、請求項３２に記載のコンピュータプログラム製品。
【請求項３９】
前記第２の実行可能な部分は、更に、
前記プログラムモジュールの実行に関連した事象であって、前記プログラムモジュールの実行に対応するコードを含む事象を生成するための第３の実行可能な部分と、
事象に関連した事象証明書を探索するための第４の実行可能な部分であって、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものである第４の実行可能な部分と、
前記事象証明書が本物であるかどうか決定するための第５の実行可能な部分と、
前記事象が許可されたかどうか決定するための第６の実行可能な部分と、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合に、前記プログラムモジュールを実行するための第７の実行可能な部分と、
を含む請求項３２に記載のコンピュータプログラム製品。
【請求項４０】
前記第４の実行可能な部分は、前記事象証明書を探索するために前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、この事象証明書記憶装置は、複数の事象証明書を含む、請求項３９に記載のコンピュータプログラム製品。
【請求項４１】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項３９に記載のコンピュータプログラム製品。
【請求項４２】
前記第５の実行可能な部分は、更に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するように構成された、請求項４１に記載のコンピュータプログラム製品。
【請求項４３】
前記コンピュータ読み取り可能なプログラムコード部分は、更に、
システムの現在状態を決定するための第８の実行可能な部分を備え、前記第６の実行可能な部分は、更に、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定するように構成された、請求項３９に記載のコンピュータプログラム製品。
【請求項４４】
セキュアなブートフレームワークを使用してブートアップするように構成された装置であって、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する１つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備えた装置において、
前記セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されたセキュアな施行ファンクションを実行するための手段と、
実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するための手段と、
を備えた装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最小で、頑丈で、融通性があり、拡張可能で且つ簡単なセキュアなブートメカニズムに係る。
【背景技術】
【０００２】
一般的に、セキュリティを与えるために、既存のブートフレームワークは、通常、パブリックキーと、「ルート・ツー・トラスト・フォア・エンフォースメント(Root-to-Trust for Enforcement)」とを不変記憶装置に配している。これらは、システム（例えば、オペレーティングシステム）がブートするところの映像に、パブリックキーに対応するプライベートキーを使用して、デジタル署名でサインすることを必要とする。パブリックキー及びプライベートキーは、グローバルである。
【０００３】
このシステムの欠点は、融通性がないことである。これは、ブートプロセスの微粒度制御を許さず、又、第三者のマネージメントシステムと共に機能するように適応させることができない。というのは、新たな映像／事象を装置においてセキュアに許可できないからである。更に、映像は、装置特有ではない。例えば、ある映像をある装置から別の装置へ転送して、依然、同じ署名で検証することができる。というのは、映像が、ある装置で実行するように許可されても、署名が別の装置でもその映像を検証するからである。
【０００４】
いわゆる「デバイス・インテグリティ・レジスタ」を使用するＴＣＧ技術に基づくセキュアなブートメカニズムが、Siani Pearson氏等により“Trusted Computing Platforms: TCPA Technology in Context”(ISBN 0-13-009220-7)（“[TPCA]”)に簡単に紹介されている。一般に、［ＴＣＰＡ］に紹介されたメカニズムは、拡張性も融通性もないという点で、制約がある。このメカニズムは、ブートプロセスの微粒度制御も許さず、又、大量のセキュアな構成を指定することも許さない。更に、ＴＣＧは、プラットホーム識別情報を、「プラットホーム構成レジスタ（ＰＣＲ）」（以下に述べる）に入れないことを要求する。この要求に従う場合には、［ＴＣＰＡ］に示唆された解決策は、セキュアなブート構成を個々のシステムに結合することを許さない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
それ故、依然として簡単に構成できる改良されたセキュアなブートメカニズムを生成する方法が要望される。特に、「信頼性コンピューティンググループ（ＴＣＧ）」技術（例えば、信頼性プラットホームモジュール（ＴＰＭ））が使用される設定においてこのようなセキュアなブートメカニズムを生成するための必要性が存在する。
【課題を解決するための手段】
【０００６】
一般に述べると、本発明の実施形態は、とりわけ、要注意の情報（例えば、暗号キー）及び／又は測定システム状態及び履歴を信頼できる仕方で取り扱うための特徴を既に含んでいるかもしれないセルラー電話、パーソナルデジタルアシスタント（ＰＤＡ）、パーソナルコンピュータ（ＰＣ）、パーソナルコンピュータ（ＰＣ）、ラップトップ、ページャー、等の移動装置に、簡単で、拡張可能で、構成可能で且つセキュアなブートメカニズムを追加するための手段を提供することにより、従来技術に勝る改良を提供する。前記特徴は、https://www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62_Part1_Design_Principles.pdf （“[TPM1]”)において入手できる２００３年１０月のＴＣＧ“TPM Main Part 1: Design Principles Version 1.2 Revision 62”；https://www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62_Part2_TPN_Structures.pdf （“[TPM2]”)において入手できる２００３年１０月のＴＣＧ“TPM Main Part 2: TPM Structures Specification Version 1.2 Revision 62”；及びhttps://www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62_Part3_Command.pdf （“[TPM3]”)において入手できる２００３年１０月のＴＣＧ“TPM Main Part 3: Command Specification Version 1.2 Revision 62”において、ＴＣＧにより指定されたものを含む。
【０００７】
現在知られているセキュアなブートメカニズムとは異なり、本発明の実施形態は、無制限の数の許可されたブート構成を有する一方、最小量のセキュアな／機密の記憶装置しか必要としないセキュアなブートメカニズム（即ち、認証されたプログラム及び／又は事象しか特定プラットホームにおいて実行されないことを強要するメカニズム）を提供する。更に、この実施形態は、ランタイムとマネージメント機能との分離を与え、これは、他の許可メカニズムを後でプラグインするのを許す。更に、この実施形態によれば、許可されたセキュアなブート構成（即ち、セキュアなブート状態の定義）は、システムディスク（例えば、フラッシュメモリ）のような非セキュアな記憶装置に保持することができる。本発明の実施形態は、既存のＴＣＧ技術で構築され、ＴＣＧ技術が実施される最小限の実施しか要求しないので、更に有益である。
【０００８】
本発明の１つの態様によれば、セキュアなブートフレームワークを使用してシステムをブートアップするための方法が提供される。一実施形態によれば、このシステムは、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する１つ以上のプログラム、ファンクション、及びリソースから分離されたセキュアな環境とを備えている。この実施形態の方法は、（１）セキュアな環境の外部に位置するセキュアな施行ファンクションを実行するステップであって、該セキュアな施行ファンクションは、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されているステップと、（２）実行の前にプログラムモジュールが許可された場合には、セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するステップと、を備えることができる。
【０００９】
一実施形態において、セキュアな施行ファンクションを実行する前記ステップは、セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成する段階と、その事象に関連した事象証明書を探索する段階とを含み、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含む。セキュアな施行ファンクションを実行する前記ステップは、更に、事象証明書が本物であるかどうか最初に決定する段階と、事象証明書に少なくとも一部分基づいて事象が許可されたかどうか決定する段階とを含む。更に、一実施形態によれば、事象証明書が探索され、本物であり、且つ事象が許可された場合には、セキュアな施行ファンクションへ制御が移される。
【００１０】
別の実施形態では、事象証明書は、更に、この事象証明書をセキュアな環境に結合し、特に、セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む。この実施形態では、事象証明書が本物であるかどうか決定する段階は、キー記憶装置にアクセスし、そして事象証明書の完全性及び真正性をキー記憶装置結合に少なくとも一部分基づいて決定することを含む。
【００１１】
更に別の実施形態では、前記方法は、更に、システムの現在状態を決定するステップを備えている。この実施形態によれば、事象が許可されたかどうか決定する前記段階は、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定することを含む。
【００１２】
一実施形態において、セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行する前記ステップは、同様に、プログラムモジュールの実行に関連した事象であって、プログラムモジュールの実行に対応するコードを含む事象を生成する段階と、事象に関連した事象証明書を探索する段階であって、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものである段階と、事象証明書が本物であるかどうか決定する段階と、事象が許可されたかどうか決定する段階と、事象証明書が探索され、本物であり、且つ事象が許可された場合に、プログラムモジュールを実行する段階と、を含む。
【００１３】
本発明の別の態様によれば、セキュアなブートフレームワークを使用してブートアップするように構成された装置が提供される。一実施形態において、この装置は、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する１つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備えている。この装置は、更に、プロセッサと、該プロセッサに通信するメモリとを備え、メモリは、プロセッサにより実行可能なアプリケーションを記憶する。このアプリケーションは、実行時に、（１）セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしか装置で実行されないように保証するよう構成されたセキュアな施行ファンクションを実行し、（２）実行の前にプログラムモジュールが許可された場合には、セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行する、というように構成される。
【００１４】
本発明の更に別の態様によれば、セキュアなブートフレームワークを使用してブートアップするように構成されたシステムが提供される。一実施形態において、このシステムは、システムのセキュアな環境の外部で動作するセキュアな施行ファンクションであって、プログラムモジュールがシステムでの実行を許可されたかどうか決定し、そしてプログラムモジュールが許可された場合にはプログラムモジュールを実行するように構成されたセキュアな施行ファンクションを備えている。
【００１５】
本発明の別の態様によれば、セキュアなブートフレームワークを使用してシステムをブートアップするコンピュータプログラム製品が提供される。一実施形態のシステムは、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する１つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備えている。この実施形態のコンピュータプログラム製品は、コンピュータ読み取り可能なプログラムコード部分が記憶された少なくとも１つのコンピュータ読み取り可能な記憶媒体を備えている。一実施形態において、コンピュータ読み取り可能なプログラムコード部分は、（１）セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されたセキュアな施行ファンクションを実行するための第１の実行可能な部分と、（２）実行の前にプログラムモジュールが許可された場合には、セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するための第２の実行可能な部分と、を含むことができる。
【００１６】
本発明の更に別の態様によれば、セキュアなブートフレームワークを使用してブートアップするように構成された装置が提供される。一実施形態において、この装置は、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する１つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備えている。この実施形態の装置は、更に、セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されたセキュアな施行ファンクションを実行するための手段と、実行の前にプログラムモジュールが許可された場合には、セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するための手段と、を備えている。
【００１７】
以上、本発明を一般的に説明したが、必ずしも正しい縮尺で描かれていない添付図面を参照して本発明を詳細に説明する。
【発明を実施するための最良の形態】
【００１８】
本発明の全部ではなく幾つかの実施形態が示された添付図面を参照して、本発明を以下に詳細に説明する。実際に、本発明は、多数の異なる形態で実施することができ、ここに述べる実施形態に限定されるものではなく、むしろ、これらの実施形態は、この開示が、適用し得る法的な要求を満足するために設けられている。全体を通じて、同じ要素が同じ参照番号で示される。
【００１９】
パートＩ：一般的な説明
セキュアなブートフレームワーク
図１は、本発明の実施形態によりセキュアなブートアッププロセスを提供する目的で、例えば、移動装置において実施できるセキュアなブートフレームワークの主たる構造要素を示す。図示されたように、このアーキテクチャーは、揮発性又は不揮発性のメモリ（例えば、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、ハードディスク、等）、中央処理ユニット（ＣＰＵ）、及び当業者により必要又は有用と認識されている他のリソースを有する汎用コンピュータを本質的に含む「計算エンジン」を備えることができる。
【００２０】
この計算エンジン内には、「セキュアな環境」があり、これは、このセキュアな環境の外部に位置するか又は外部で動作するプログラム、ファンクション又はリソースから分離されている。ここで使用する「セキュアな」という語は、修飾語として使用されるときには、修飾されるプログラム、ファンクション、メモリ又は他のオブジェクトが不変であり及び／又は機密であることを指示する。ＴＣＧにより生成されるセキュアな環境は、本質的に、信頼性のある計算特徴を可能にするために計算装置と共に含ませることのできる付加的なチップである「信頼性のあるプラットホームモジュール（ＴＰＭ）」である。ここに例示する実施形態では、分離は、ハードウェアのみに基づいてもよいし、ソフトウェアのみに基づいてもよいし、或いはその何らかの組み合せでもよい。計算エンジン内で動作するファンクション及びプログラムは、セキュアな環境内で動作する幾つかの定義されたファンクションをコールし、そしてセキュアな環境は、計算エンジン内のプログラムとでＣＰＵを共有することができる。しかしながら、ＣＰＵを共有する場合には、セキュアな環境内のリソースは、そのＣＰＵがセキュアな環境内からのプログラムコードを実行するときだけファンクション及びプログラムにアクセスできねばならない。この場合、ＣＰＵを共有するときには、セキュアな環境の外部のプログラム及びファンクションは、良好に定義されたファンクションによるものを除いて、セキュアな環境の内部のリソース及びプログラムに影響を及ぼし得ないように、分離を実施しなければならない。
【００２１】
セキュアな環境には、「ルート・オブ・トラスト・フォア・エンフォースメント(Root-of-Trust for Enforcement)（ＲＴＥ）」が含まれる。このＲＴＥは、全システム内で実行すべき第１プログラムであり、本物でなければならないが、機密でなくてもよい。換言すれば、ＲＴＥは、誰でも見ることができるが、誰もそれを変更できないように設定されねばならない。本物であることを保証するために、ＲＴＥは、不変にされねばならない。一実施形態では、これは、ＲＴＥプログラムをリードオンリメモリ（ＲＯＭ）に記憶することにより達成される。一般的に、ＲＴＥの目的は、以下に詳細に述べるセキュアな施行ファンクションがセキュアな環境の外部で実行されるよう保証することである。
【００２２】
又、セキュアな環境には、「事象」が許されるかどうかを「事象証明書」及び現在システム状態に基づいてチェックする「事象ベリファイア」も含まれる。一般に、事象とは、ブートプロセスのセキュリティに影響を及ぼす事象の記述である。特に、事象とは、システムに配されたセキュリティに衝撃を及ぼし得る事象を表わすコードである。このような事象は、例えば、プログラム、装置ドライバ又はオペレーティングシステムをロードすることや、システムをデバッグ又はメンテナンスモードに入れることである。通常のケースでは、事象は、コード映像のロード及び実行のコード化表現である。例えば、事象は、実行されるべきコード映像の暗号ハッシュ（例えば、セキュアなハッシュアルゴリズム１（ＳＨＡ１））の前におそらく「load」のようなストリングを付したものでよい。コードのある断片がロードされる場合には、コード（及びしばしばその構成）が事象のシンタックスに含まれる。しかしながら、デバッグモードに入るような他の場合には、事象が、例えば、ＳＨＡ１（“entering debug mode”）で表わされてもよい。デバッグモードに入るような事象は、「システム履歴」に記録されるので、事象証明書のセットを有効なものにさせると共に、「封印」データ（以下に述べる）を解読不能にさせる。
【００２３】
「事象証明書」とは、あるシステム状態においてある事象の実行を許す認証されたデータ構造体であり、その両方が証明書内で定義される（図４及び以下の関連説明を参照されたい）。一般に、事象証明書とは、セキュアな環境の単一のインスタンスに結合されることが予想される。
【００２４】
事象証明書が事象を許すかどうかチェックするために、事象ベリファイアは、事象証明書の真正性をチェックし、次いで、現在システム状態（以下に述べるシステム履歴に示される）、事象、及び事象証明書を分析する。事象が許される場合には、「事象レコーダー」（以下に述べる）を経て施行ファンクションへ制御が戻される。事象が許されない場合には、システムが停止（例えば、シャットダウン）されるか、又は施行ファンクションに、事象を実行又は許すことのないように伝えることができる。事象を許すべきかどうかの判断は、一実施形態では、事象ベリファイアにより使用される事象証明書に基づく。事象証明書は、一般に、許可された映像しかブートを許さないように設定される。例えば、行なおうとする無許可の事象（即ち、本物の事象証明書が存在しない）は、無許可のオペレーティングシステムをブートするか又はオペレーティングシステムを無許可の仕方でブートする試みを表わすことができる。
【００２５】
セキュアな環境は、更に、「キー記憶装置」及び「システム履歴」を含む。キー記憶装置は、事象証明書及びおそらく事象許可証の真正性及び完全性をチェックするのに使用される。事象証明書及び事象許可証の真正性及び完全性は、事象を認証するのに使用できるデジタル署名、メッセージ認証コード、等のメッセージ認証メカニズムを使用してチェックすることができる。システム履歴は、現在システム状態及び履歴の表現を含む。これは、「事象レコーダー」（以下に述べる）により更新され、そして事象が許されるかどうか判断するときに事象ベリファイアにより使用される。
【００２６】
本発明の実施形態においてセキュアな環境には「事象レコーダー」も含まれる。事象レコーダーは、事象ベリファイアが許した事象を記録する。事象は、システム経歴に記録され、そして事象レコーダーは、施行ファンクションへ制御を戻す。
【００２７】
ここに例示する実施形態では、「施行ファンクション」、「事象証明書記憶装置」、及び「事象マネージャー」は、各々、セキュアな環境の外部に位置され、一方、「事象オーソライザー」は、セキュアな環境内に位置されてもよいし（図示されたように）、セキュアな環境の外部に位置されてもよい（図示せず）。施行ファンクションは、セキュアな環境の外部で実行されるプログラムで、事象が生成される前に、事象ベリファイアを使用して、それらを許可するように保証するプログラムである。事象及び事象証明書を許可のために事象ベリファイアへ渡す前に、施行ファンクションは、事象証明書記憶装置から正しい事象証明書をルックアップすることができる。又、施行ファンクションは、セキュアな環境からの復帰も取り扱い（即ち、事象ベリファイア及び／又は事象レコーダー）、そして任意の承認／拒絶判断に従うことができる。事象が受け容れられる場合には、施行ファンクションは、その事象を発生した発呼者に制御を戻す。或いは又、事象が拒絶される場合には、施行ファンクションは、事象を発生する全システム又はサブシステムを停止するよう判断してもよいし、或いは事象ジェネレータと一緒に、事象が中止されるよう保証してもよい。事象が発生されるときに施行ファンクションに利用できるオプションは、事象ジェネレータと施行ファンクションとの間の協働のレベルに依存する。一般的に、施行ファンクション、ＲＴＥ、及び事象証明書は、施行ファンクションと正しく協働するコードモジュールしか実行されないように保証すると仮定する。更に、ＲＴＥは、正しく動作する施行ファンクションだけが、システムのスタート時にブートされるように保証する。システムは、例えば、オペレーティングシステムに対して１つ、Ｊａｖａ（登録商標）のようなバーチャルマシンについて１つというように多数の施行ファンクションをもつことができる。
【００２８】
１つの実施形態において、事象証明書記憶装置は、計算エンジン内の事象証明書のための記憶装置を含む。各個々の事象証明書は、セキュアな環境の外部にこれを記憶できるようにする「キー記憶装置」により認証される。施行ファンクション及びＲＴＥは、次いで、事象証明書記憶装置にアクセスして、個々の事象証明書を得ることができる。
【００２９】
１つの実施形態において、事象オーソライザーは、事象マネージャーからの事象許可証を受け容れ、それらが本物のソースからのものであることを検証し、次いで、それらを記憶のために事象証明書記憶装置へ渡す。事象オーソライザーは、システム履歴を調べることにより、認証された事象マネージャーにより事象許可証が与えられた（例えば、施行ファンクション及び事象証明書記憶装置を使用して承認された）ことをチェックする。或いは又、事象オーソライザーは、例えば、デジタル署名又はメッセージ認証コードを使用して、事象許可証が第三者により許可されたことをチェックしてもよい。キー記憶装置は、事象ベリファイアがＲＴＥ又は施行ファンクションによりそれに与えられた事象をチェックするときに、真正性及び完全性をキー記憶装置により後でチェックできるように、事象認証をセキュアな環境に結合するのに使用できる。
【００３０】
本発明の実施形態によれば、事象マネージャーは、事象許可証を受け取り、それらが本物であるかどうかチェックし、そしてもしそうであれば、それらを、事象証明書記憶装置に加えて事象オーソライザーへ渡す。事象マネージャーは、オーバー・ジ・エア（ＯＴＡ）装置マネージメントプロトコル、例えば、ＯＭＡ装置マネージメントを経て、事象許可証を受け取ることができる。
【００３１】
事象許可証は、事象証明書と同様であるが、事象証明書とは異なり、セキュアな環境の単一のインスタンスには結合されない。対照的に、事象許可証は、例えば、第三者マネージメントエージェントに結合される。この場合、事象マネージャーは、事象許可証をチェックし、そして事象オーソライザーを使用してそれを事象証明書へ変換する。ある場合には、事象許可証は、有効な事象証明書でもよい。
【００３２】
一般的なブート及びマネージメントプロセス
上述したセキュアなブートメカニズムフレームワークが使用される本発明の実施形態によるブートプロセスについて以下に説明する。このブートプロセスは、２つの段階、即ち（１）施行ファンクションのブーティング、及び（２）システムの寿命全体にわたる施行ファンクションの実行、に分割することができる。
【００３３】
第１の施行ファンクションのブーティング：
本発明の一実施形態によりブートプロセスの第１段階において施行ファンクションをブーティングするときに行なわれるステップを示すフローチャートである図２を参照する。図示されたように、プロセスは、ステップ２０１で始まり、計算エンジン及びセキュアな環境がパワーアップされる。ステップ２０２において、システムが丁度パワーアップされたことを表わすために、システム履歴（ＳＨ）が初期化される。次いで、セキュアな環境の状況の中でＲＴＥファンクションが実行される（ステップ２０３及び２０４）。
【００３４】
特に、ＲＴＥは、最初に、実行されるべき施行ファンクションを検査し、次いで、その実行の事象（例えば、ＥＦ１＿ＢＯＯＴ）を生成する（ステップ２０３）。ステップ２０４において、ＲＴＥは、その事象（ＥＦ１＿ＢＯＯＴ）に対応する事象証明書記憶装置（ＥＣ）において事象証明書（例えば、ＥＦ１＿ＣＲＥＤ）をルックアップする。事象証明書（ＥＦ１＿ＣＲＥＤ）がＥＣにおいて見つからない（ステップ２０５で行なわれる判断に基づき）場合には、システムのブートが中止される（ステップ２０６）。対照的に、事象証明書（ＥＦ１＿ＣＲＥＤ）がＥＣに見つかった場合には、ＲＴＥは、事象証明書（ＥＦ１＿ＣＲＥＤ）をキー記憶装置（ＫＳ）へ渡し、事象証明書が本物であるかどうか決定する（ステップ２０７、２０８及び２０９）。
【００３５】
事象証明書（ＥＦ１＿ＣＲＥＤ）が本物でない場合には、システムブートが再び中止される（ステップ２１０）。或いは又、事象証明書がＫＳにより認証された場合には、事象ベリファイア（ＥＶ）は、ＳＨに現在システム状態が与えられていれば、事象証明書（ＥＦ１＿ＣＲＥＤ）が事象（ＥＦ１＿ＢＯＯＴ）を許可するかどうか決定する（ステップ２１１）。事象（ＥＦ１＿ＢＯＯＴ）が許可されない場合（即ち、ＥＦ１＿ＣＲＥＤが現在状態においてＥＦ１＿ＢＯＯＴを許さない場合）、システムブートは、ステップ２１２において中止される。或いは又、ＥＦ１＿ＣＲＥＤ（事象証明書）が本物であり（ステップ２０９で決定される）、そしてＥＦ１＿ＢＯＯＴ（事象）を許す場合には、制御が事象レコーダー（ＥＲ）へ移され、これが事象（ＥＦ１＿ＢＯＯＴ）をＳＨに記録する（ステップ２１３）。最終的に、ステップ２１４において、ＥＲは、制御をＥＦへ移し、セキュアな環境内のリソースは、セキュアな環境が実行されるまで、アクセスできない。
【００３６】
施行ファンクションの実行：
施行ファンクションは、上述したセキュアな環境の要素と一緒に、施行ファンクションからの事象に対する許可を正しく要求するプログラムしかブートされないことを保証する。これを行なわないプログラムは、例えば、オペレーティングシステムにより分離され、計算環境のセキュリティ又は信頼性に影響し得る微妙なリソースにそれらがアクセスしないようにしなければならない。施行ファンクション及びオペレーティングシステムは、バーチャルメモリ及びＣＰＵ特典レベルのような標準的な技術を使用して、施行ファンクションと協働しないプログラム及びコードが微妙なリソース又はファンクションにアクセスしないように保証する。
【００３７】
施行ファンクションが最初にブートアップする（例えば、上述したように）ときには、それが、ブートすべきプログラムのセット（例えば、ブートストラップローダー又はブートローダー、オペレーティングシステム、等）で構成される。施行ファンクションは、次いで、各ロードに対する事象を発生し、そしてセキュアなブートに影響するコードを実行するという責任を果たす。図３は、本発明の実施形態によりコードモジュール“Ｘ”をロードして実行するか又は事象“Ｘ”（例えば、デバッグモードに入る）を実行するときに行なわれるステップを示すフローチャートである。換言すれば、図３は、ブートプロセスの第２段階を示し、システムの寿命全体にわたり施行ファンクションがいかに実行されるか示す。
【００３８】
ステップ３０１において、施行ファンクション（ＥＦ）は、最初に、モジュールＸをロードし実行するための事象（例えば、ＥＶ＿Ｘ）を生成する。次いで、ＥＦは、事象（ＥＶ＿Ｘ）に対応する事象証明書記憶装置（ＥＣ）において事象証明書（例えば、Ｘ＿ＣＲＥＤ）をルックアップする（ステップ３０２）。事象証明書（Ｘ＿ＣＲＥＤ）が見つからない場合には、モジュールＸの実行が拒絶される（ステップ３０３で行なわれた決定に基づき、ステップ３０４）。或いは又、事象証明書（Ｘ＿ＣＲＥＤ）がＥＣにおいて見つかった場合には、プロセスがステップ３０５へ続き、ＥＦが事象証明書（Ｘ＿ＣＲＥＤ）をキー記憶装置（ＫＳ）へ渡し、事象証明書が本物であるかどうか決定する（ステップ３０６）。事象証明書（Ｘ＿ＣＲＥＤ）が本物でない場合には、モジュールＸの実行が再び拒絶される（ステップ３０７）。
【００３９】
事象証明書（Ｘ＿ＣＲＥＤ）が本物であることをＫＳが決定した場合には、事象ベリファイア（ＥＶ）は、システム状態がシステム経歴（ＳＨ）に与えられると、事象証明書が事象を許可するかどうかチェックする（即ち、ＥＶは、システム状態が与えられると、Ｘ＿ＣＲＥＤがＥＶ＿Ｘを許可するかどうか決定する）（ステップ３０８）。状態が与えられて、事象証明書（Ｘ＿ＣＲＥＤ）が事象（ＥＶ＿Ｘ）を許さない場合には、Ｘの実行が拒絶される（ステップ３０９）。しかしながら、Ｘ＿ＣＲＥＤが本物であり（ステップ３０６で決定される）、そしてＥＶ＿Ｘを許す場合には、制御が事象レコーダー（ＥＲ）へ移され、これが事象（ＥＶ＿Ｘ）をＳＨに記録する（ステップ３１０）。
【００４０】
ステップ３１１において、制御が施行ファンクション（ＥＦ）に戻され、これが、モジュールＸをロードして実行する（ステップ３１２）。ＥＦは、別の事象が許可を要求するときにステップ３０１において実行を再開することができる。事象が拒絶された場合に（例えば、ステップ３０４、３０７又は３０９において）、ＥＦがコードの実行に使用できる代替手段をもたなければ、おそらく、選択肢がなく、それ自身シャットダウンするか、又は将来の事象を待機し始める。将来の事象が期待されない場合には、ＥＦは、ここでも、おそらく、選択肢がなく、それ自身シャットダウンする。実際上、これは、システムをシャットダウンするか又はそれを使用不能にすることを意味する。
【００４１】
事象証明書の管理
図４は、本発明の実施形態による事象証明書４１０及び事象許可証４２０のブロック図である。図示されたように、事象証明書４１０は、事象必須条件フィールド４１２、事象フィールド４１４、及びキー記憶装置（ＫＳ）結合フィールド４１６を含む。一実施形態において、事象フィールドは、事象の定義を与える。上述したように、事象は、コード映像のロード及び実行のコード化表現である（例えば、実行されるべきコード映像の暗号ハッシュ）。事象必須条件フィールドは、事象が許される条件を記述し（例えば、この事象は、他の幾つかの事象が既に実行された場合しか許されない）、そして一実施形態では、事象フィールドに一体化することができる。ＫＳ結合フィールドは、事象証明書及びそのコンテンツをキー記憶装置に結合する。上述したように、これは、ＫＳが事象証明書の完全性及び真正性をチェックするのを許す。当業者に理解されるように、多数のプロトコル及び方法を使用して、この結合特徴を与えることができる。
【００４２】
事象許可証４２０は、主として、構造体の真正性及び完全性をいかにチェックするかについて、事象証明書４１０とは異なる。この目的のためにセキュアな装置マネージメント解決策を配備できることが予想されるので、事象許可証の形式は、事象マネージャーがいかにインスタンス生成されるかに強く依存する。例えば、アドレッシングのために（即ち移動電話を識別するために）、あるシステムは、国際移動装置識別（ＩＭＥＩ）コードを使用して装置をアドレスすることができ、別のシステムは、所有権コードを使用することができる。セキュアなブート構成を保護するために、あるシステムは、パブリックキーインフラストラクチャー（ＰＫＩ）に基づいてデジタル署名を使用することができ、一方、別のシステムは、不正防止記憶装置に記憶された共有機密情報を使用することができる。
【００４３】
セキュアなブートフレームワークを含むことのできる移動装置
本発明の実施形態から利益を得る移動装置の一形式を示す図５を参照して説明する。特に、図５は、上述したセキュアなブートフレームワークを動作することのできる移動装置を示す。しかしながら、図示して以下に説明する移動装置は、本発明から利益を得る移動装置の一形式を単に例示するもので、それ故、本発明の範囲を限定するものではないことを理解されたい。移動装置の幾つかの実施形態を図示して、例示のために以下に説明するが、他の形式の移動装置、例えば、パーソナルデジタルアシスタント（ＰＤＡ）や、ページャーや、ラップトップコンピュータや、移動ワイヤレス装置及び固定ワイヤライン装置の両方を含む他の形式の電子システムも、本発明の実施形態を容易に使用することができよう。
【００４４】
移動装置は、より詳細に示してここに説明するものを含めて、本発明の実施形態による１つ以上のファンクションを遂行する種々の手段を備えている。しかしながら、１つ以上のエンティティは、本発明の精神及び範囲から逸脱せずに、１つ以上の同様のファンクションを遂行するための別の手段を含むことを理解されたい。より詳細には、例えば、図５に示すように、アンテナ１２に加えて、移動装置１０は、送信器２０４と、受信器２０６と、これら送信器２０４及び受信器２０６へ信号を供給し及びそれらから信号を受信するプロセッサ、コントローラー、等の手段、例えば、処理装置２０８とを備えている。これら信号は、適用セルラーシステムのエアインターフェイス規格に基づくシグナリング情報と、ユーザスピーチ及び／又はユーザ発生データも含む。この点に関して、移動装置は、１つ以上のエアインターフェイス規格、通信プロトコル、変調形式、及びアクセス形式で動作することができる。より詳細には、移動装置は、多数の第二世代（２Ｇ）、２．５Ｇ及び／又は第三世代（３Ｇ）通信プロトコル等に基づいて動作することができる。更に、例えば、移動装置は、ブルーツース、ＩＥＥＥ８０２．１１  ＷＬＡＮ（又はＷｉ−Ｆｉ（登録商標））、ＩＥＥＥ８０２．１６  ＷｉＭＡＸ、ウルトラワイドバンド（ＵＷＢ）、等を含む多数の異なるワイヤレスネットワーク技術のいずれかに基づいて動作することができる。
【００４５】
プロセッサ、コントローラー又は他の計算装置のような処理装置２０８は、移動装置のビデオ、オーディオ、及びロジックファンクションを実施するのに必要な回路を備え、そしてここに述べる機能を実施するためのアプリケーションプログラムを実行できることを理解されたい。例えば、処理装置は、デジタル信号プロセッサ装置、マイクロプロセッサ装置、種々のアナログ／デジタルコンバーター、デジタル／アナログコンバーター、及び他のサポート回路を含む種々の手段で構成することができる。移動装置の制御及び信号処理ファンクションは、これらの装置間に各々の能力に基づいて割り当てられる。従って、処理装置２０８は、変調及び送信の前にメッセージ及びデータをコンボリューションエンコード及びインターリーブするための機能も含む。処理装置は、更に、内部ボイスコーダー（ＶＣ）２０８Ａを含むことができ、そして内部データモデム（ＤＭ）２０８Ｂを含んでもよい。更に、処理装置２０８は、メモリに記憶できる１つ以上のソフトウェアアプリケーションを動作する機能を含んでもよい。例えば、コントローラーは、従来のウェブブラウザのような接続性プログラムを動作することができる。接続性プログラムは、移動装置が、例えば、ＨＴＴＰ及び／又はワイヤレスアプリケーションプロトコル（ＷＡＰ）に基づいて、ウェブコンテンツを送信及び受信できるようにする。
【００４６】
又、移動装置は、例えば、従来のイヤホン又はスピーカ２１０、リンガー２１２、マイクロホン２１４、ディスプレイ２１６を含むユーザインターフェイスのような手段を含んでもよく、それらは、全て、コントローラー２０８に結合される。移動装置がデータを受信できるようにするユーザ入力インターフェイスは、移動装置がデータを受信できるようにする多数の装置、例えば、キーパッド２１８、タッチディスプレイ（図示せず）、マイクロホン２１４、又は他の入力装置を備えることができる。キーパッドを含む実施形態では、キーパッドは、従来の数字（０−９）及び関連キー（＃、＊）と、移動装置の動作に使用できる他のキーとを含むことができ、そしてフルセットのアルファニューメリックキー、或いはフルセットのアルファニューメリックキーを与えるようにアクチベートできる１セットのキーを含んでもよい。図示されていないが、移動装置は、移動装置を動作するのに必要な種々の回路を付勢し且つ機械的な振動を検出可能な出力として任意に与えるための振動バッテリーパックのようなバッテリーを含む。
【００４７】
又、移動装置は、移動加入者に関係した情報エレメントを典型的に記憶する、例えば、加入者アイデンティティモジュール（ＳＩＭ）２２０、取り外し可能なユーザアイデンティティモジュール（Ｒ−ＵＩＭ）（図示せず）、等を含むメモリのような手段を備えることもできる。ＳＩＭに加えて、移動装置は、他のメモリを含むこともできる。この点に関して、移動装置は、埋設でき及び／又は取り外し可能でもよい揮発性メモリ２２２及び他の不揮発性メモリ２２４を含むことができる。例えば、他の不揮発性メモリは、埋設又は取り外し可能なマルチメディアメモリカード（ＭＭＣ）、ソニーコーポレーションにより製造されたメモリスティック、ＥＥＰＲＯＭ、フラッシュメモリ、ハードディスク、等でよい。メモリは、移動装置のファンクションを実施するために移動装置により使用される情報及びデータの多数の断片又は任意の量を記憶することができる。例えば、メモリは、移動装置を独特に識別することのできる識別子、例えば、国際移動装置識別（ＩＭＥＩ）コード、国際移動加入者識別（ＩＭＳＩ）コード、移動装置サービス総合デジタル網（ＭＳＩＳＤＮ）コード、等を記憶することができる。又、メモリは、コンテンツを記憶することもできる。メモリは、例えば、アプリケーション及び他のコンピュータプログラムのためのコンピュータプログラムコードを記憶してもよい。例えば、本発明の一実施形態では、メモリは、上述した事象オーソライザー、事象ベリファイア、事象レコーダー、ルート・オブ・トラスト・フォア・エンフォースメント、事象マネージャー、及び／又は施行ファンクションの機能を遂行するためのコンピュータプログラムコードを記憶することができる。
【００４８】
ここに例示する実施形態では、移動装置は、更に、ここに述べるセキュアな環境を実施するための分離されたセキュアな環境を実施してもよい。この分離されたセキュアな環境は、専用のハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合せを使用して実施されてもよい。このような環境は、例えば、種々の製造者（例えば、Ｉｎｆｉｎｅｏｎ及びＡｔｍｅｌ）、又はＡＲＭ  ＴｒｕｓｔＺｏｎｅ解決策に存在するような「セキュアなモード」のバーチャル化技術により構築されたＴＰＭを含む。
【００４９】
本発明の実施形態の移動装置は、移動通信用途に関連して主として説明した。しかしながら、本発明の実施形態の移動装置は、移動通信産業及び移動通信産業以外の両方における種々の他の用途に関連して利用できることが理解されよう。例えば、本発明の実施形態の移動装置は、ワイヤライン及び／又はワイヤレスネットワーク（例えばインターネット）用途に関連して利用することもできる。
【００５０】
パートII：信頼性のあるワーキンググループ（ＴＣＧ）に適合する実施形態
例えば、ＴＣＧ信頼性プラットホームモジュール（ＴＰＭ）を含むＴＣＧのような特徴を有する移動装置において上述したセキュアなブートフレームワークが実施される本発明の実施形態を以下に説明する。
【００５１】
ＴＣＧ定義のシステム履歴
一般に、ＴＣＧ  ＴＰＭは、ＴＰＭに含まれる１６０ビットレジスタである「プラットホームコンフィギュレーションレジスタ（ＰＣＲ）」のセットを使用してシステムの状態を測定する。ＴＰＭに含まれるＰＣＲの数（例えば、１６又は２４）は、実施されるＴＰＭのバージョンに依存する。各ＰＣＲは、事象の「セキュアなハッシュアルゴリズム１（ＳＨＡ１）」を含み、これは、いわゆるＴＰＭ＿Ｅｘｔｅｎｄコマンドを使用して更新することができる。ＴＰＭ＿Ｅｘｔｅｎｄコマンドについて以下に説明する。
【００５２】
ＰＣＲ［］は、ＴＰＭの内部に記憶されるＰＣＲのアレーを表わすものとする（例えば、ＰＣＲ［０］は、ＰＣＲレジスタ０であり、ＰＣＲ［１］は、レジスタ１であり、等々である）。ＳＨＡ１（ｘ）は、ビットストリングｘのＳＨＡ１ハッシュを表わすものとする。ｉは、有効なＰＣＲインデックスであるとし、そしてｅｖは、記録されるべき事象を表わす１６０ビット値であるとする。ｏｌｄ＝ＰＣＲ［ｉ］は、ＰＣＲレジスタｉの現在値であるとする。ＴＰＭ＿Ｅｘｔｅｎｄは、ＰＣＲ［ｉ］に値ＳＨＡ１（ｏｌｄ‖ｅｖ）を指定し、即ちＰＣＲ［ｉ］：＝ＳＨＡ１（ｏｌｄ‖ｅｖ）である。
【００５３】
ＳＨＡ１ファンクションは、強力な暗号ハッシュ関数であると仮定する。これに基づいて、次の２つの特性が仮定される。即ち、（１）ＰＣＲレジスタ状態ＰＣＲ［ｉ］及び１６０ビット値ｘが与えられると、ＴＰＭ＿ＥｘｔｅｎｄがｘをＰＣＲ［ｉ］に指定するようにさせる値ｅｖを見出すことが不可能となり、（２）ＴＰＭ＿Ｅｘｔｅｎｄ（）で繰り返すことによりＰＣＲレジスタに同じ値を指定するようにさせる２つの事象シーケンスを見出すことが不可能になる。
【００５４】
以上に基づき、ＰＣＲレジスタのセットは、ＴＰＭ＿Ｅｘｔｅｎｄオペレーション（即ち、記録された事象のシーケンス）に関してシステム状態を記述することが暗示される。その意図は、システムの異なる観点により発生されるか又はそれに関連した事象を異なるＰＣＲへと拡張することであるが、これは、システムソフトウェアまでである。
【００５５】
ＴＣＧ適合の事象、システム履歴及び事象証明書
ＰＣＲレジスタの数はｎであると仮定する。セキュアなブートフレームワーク内のオブジェクトは、今や、次のようになる。即ち、（１）システム履歴は、ｎ個のＰＣＲレジスタ（例えば、１６又は２４）のセットであり、（２）事象は対であり（即ち、ＰＣＲインデックスｉ、１６０ビット整数ｅｖ）、（３）事象証明書も対であり、即ち、状態記述子及びキー記憶装置（ＫＳ）結合、そして（４）事象許可証は、状態記述子及び許可者を含む対である。状態記述子は、ｎ個のＰＣＲレジスタ値のアレーＰＣＲ［］及びｎ個の比較オペレーション定義のＰＣＲ＿ＣＭＰ［］のアレーである。ＰＣＲ＿ＣＭＰ［ｉ］は、インデックスｉをもつＰＣＲに対応する。ＰＣＲ＿ＣＭＰ［］の値は、“equals”又は“don't care”である。
【００５６】
前の章で述べたＴＰＭ＿Ｅｘｔｅｎｄ（）オペレーションに課せられた仮定（例えば、ＳＨＡ１ファンクションが強力な暗号ハッシュ関数であるという仮定）のために、個別の事象必須条件を事象証明書又は事象許可証に記憶する必要はない。というのは、システム履歴を識別するように状態記述子が仮定されるからである。
【００５７】
図６は、上述したＴＣＧ適合の事象証明書及び事象許可証を示す。
【００５８】
ＴＣＧ適合のＲＴＥ、事象ベリファイア及び施行ファンクション
事象証明書記憶装置：
上述したように、事象は、対＜ＰＣＲインデックス、１６０ビット整数＞で構成され、事象証明書は、＜状態記述子、ＫＳ結合＞で構成され、そして状態記述子は、ＰＣＲのアレー及び比較オペレーションのアレーで構成されると仮定する。ＥＣ＿ＬＯＯＫＵＰ（事象、システム履歴）オペレーションは、事象証明書の許可を見出すように試みる。本質的に、この手順は、ＰＣＲ［］アレーで遂行されているＴＰＭ＿Ｅｘｔｅｎｄ（）オペレーションを模擬し、次いで、その結果を、ＰＣＲ＿ＣＭＰ［］アレーのインストラクションに基づく状態記述子ＰＣＲ値と比較する。
【００５９】
一実施形態において、ＥＣ＿ＬＯＯＫＵＰ（）は、以下に述べるように進行する。第１に、事象は、＜ｉ、事象＞であるとし、そしてシステム履歴は、サイズｎのアレーＰＣＲ［］であるとする。事象証明書において各事象証明書ＥＣ＝＜状態記述子、ＫＳ結合＞に対して、次のことを行なう。即ち、（１）ＥＣの状態記述子が、ＰＣＲ値のアレーＳＤ＿ＰＣＲ［］及び比較オペレーションのアレーＳＤ＿ＣＭＰ［］より成るものとし、（２）一時的アレーＴＭＰ＿ＰＣＲ［］：＝ＰＣＲ［］を現在システム履歴のコピーとして生成し、（３）ＴＭＰ＿ＰＣＲ［ｉ］：＝ＳＨＡ１（ＰＣＲ［ｉ］）‖事象）とし、（４）インデックス：＝０ないしｎ−１に対して、ＳＤ＿ＣＭＰ［index］＝“equal”、及びＳＤ＿ＰＣＲ［index］！＝ＴＭＰ＿ＰＣＲ［index］の場合には、次の証明書へと進みそして（１）へ進み、更に、（５）前記チェックが（１）へのジャンプを生じさせない場合には証明書ＥＣを返送する。最終的に、チェックすべき事象証明書がそれ以上なく、一致するものが返送されなかった場合には、欠陥が返送される。明瞭化のために、ＳＤ＿ＣＭＰ［index］が“equals”に等しい場合には、状態記述子は、インデックス“index”をもつＰＣＲが、事象の始動後に値ＳＤ＿ＰＣＲ［index］で終わることを要求する。ＳＤ＿ＣＭＰ［index］が“equal”に等しくない場合には、“don't care”の値を暗示し（２つの選択肢しかないので）、それ故、インデックス“index”をもつＰＣＲは、次のものへ進むようにスキップすることができる。
【００６０】
施行ファンクションのＴＣＧ適合のブート：
本発明の一実施形態により、ＴＣＧに適合する仕方で、ＲＴＥが施行ファンクション（ＥＦ）をどのようにブートするかについて以下に説明する。このプロセスのステップが図７に示されている。一般に、ＲＴＥは、適当な証明書を探索し、次いで、ブートの進行を許すだけでよい。
【００６１】
より詳細には、このプロセスは、ステップ７０１において、計算エンジン及びセキュアな環境がパワーアップされたときに始まる。次いで、システム履歴（ＳＨ）が初期化され、そして全てのＰＣＲ値が０にセットされる（ステップ７０２）。次いで、セキュアな環境の状況の中でＲＴＥファンクションを実行することができる。特に、ステップ７０３において、ＲＴＥは、ＥＦのブートを表わす事象ＥＦ１＿ＢＯＯＴを生成する。この事象は、例えば、ＥＦコード映像と連結されたストリング「ブート」のＰＣＲインデックス０及びＳＨＡ１ハッシュであり、例えば、＜０、ＳＨＡ１（「ブート」‖ＥＦコード）＞である。
【００６２】
次いで、ＲＴＥは、ステップ７０４において、ＳＨからＰＣＲ［］アレーをルックアップし、そしてステップ７０５において、事象証明書ＥＦ１＿ＣＲＥＤ：＝ＥＣ＿ＬＯＯＫＵＰ（ＥＦ１＿ＢＯＯＴ、ＰＣＲ［］）をルックアップする。ＥＣ＿ＬＯＯＫＵＰが欠陥を返送する場合には、システムブートが中止される（ステップ７０７）。或いは又、ＥＦ１＿ＣＲＥＤが見つかり、そしてＥＦ１＿ＢＯＯＴを許す場合には、キー記憶装置（ＫＳ）及びＫＳ結合を使用して、ＥＦ１＿ＢＯＯＴ証明書が本物であることをチェックする（ステップ７０８）。事象証明書が本物でない場合には、システムブートが再び中止され（ステップ７１０）、そしてＲＴＥは、事象証明書記憶装置（ＥＣ）から証明書を除去することができる。事象証明書が本物である場合には、事象証明書及びシステム状態に基づいて事象が許されるかどうか決定される（ステップ７１１）。事象が許されず又は許可されない場合には、システムブートがステップ７１２において中止される。しかしながら、ＥＦ１＿ＣＲＥＤが見つかり、本物であり、そしてＥＦ１＿ＢＯＯＴを許す場合には、制御が事象レコーダー（ＥＲ）へ移され、該レコーダーは、ＥＦ１＿ＢＯＯＴをシステム履歴（ＳＨ）に記録する（ステップ７１３）。最終的に、ステップ７１４において、ＥＲは、制御をＥＦへ移し、そしてセキュアな環境内のリソースにはもはやアクセスできない。
【００６３】
施行ファンクションのオペレーション：
一般に、本発明の実施形態の施行ファンクション（ＥＦ）は、簡単な仕方で動作する。しかしながら、２つの注目すべき点は、真正性のチェックが事象ベリファイア（ＥＶ）の内部で行なわれることと、状態履歴及び状態記述子の比較がセキュアな環境の外部（ＥＦにより）及びセキュアな環境の内部（ＥＶにより）の両方で行なわれることである。
【００６４】
本発明の実施例によりＥＦを動作するときに行われるステップについて以下に述べる。第１に、ステップ８０１において、ＥＦは、モジュールＸのロード／実行のための事象（ＥＶ＿Ｘ）を生成する。次いで、ステップ８０２において、ＥＦは、ＳＨからＰＣＲ［］をルックアップする。次いで、ＥＦは、事象証明書Ｘ＿ＣＲＥＤ：＝ＥＣ＿ＬＯＯＫＵＰ（ＥＶ＿Ｘ、ＰＣＲ［］）をルックアップする（ステップ８０３）。ＥＣ＿ＬＯＯＫＵＰが欠陥を返送する場合には、Ｘの実行が拒絶される（ステップ８０５）。或いは又、Ｘ＿ＣＲＥＤが見つかった場合には、ＥＦは、Ｘ＿ＣＲＥＤをＫＳに渡して、Ｘ＿ＣＲＥＤが本物であるかどうかチェックする（ステップ８０６）。Ｘ＿ＣＲＥＤが本物でない場合には、Ｘの実行が再び拒絶される（ステップ８０８）。Ｘ＿ＣＲＥＤがＫＳにより認証された場合には、事象ベリファイア（ＥＶ）は、事象証明書がＥＶ＿Ｘを許すかどうかチェックする（ステップ８０９）。
【００６５】
事象証明書（Ｘ＿ＣＲＥＤ）が事象（ＥＶ＿Ｘ）を許すかどうかチェックするために、次のことが実施される。即ち、Ｘ＿ＣＲＥＤの状態記述子が、ＰＣＲ値のアレーＳＤ＿ＰＣＲ［］及び比較オペレーションのアレーＳＤ＿ＣＭＰ［］より成るものとし、一時的アレーＴＭＰ＿ＰＣＲ［］：＝ＰＣＲ［］を現在ＳＨのコピーとして生成し、ＴＭＰ＿ＰＣＲ［ｉ］：＝ＳＨＡ１（ＰＣＲ［ｉ］‖事象）とし、ｉｎｄｅｘ：＝０ないしｎ−１に対して、ＳＤ＿ＣＭＰ［index］＝“equals”及びＳＤ＿ＰＣＲ［index］！＝ＴＭＰ＿ＰＣＲ［index］である場合には、Ｘの実行が拒絶される。明瞭化のために、ＥＣ＿ＬＯＯＫＵＰオペレーションがセキュアな環境の外部で遂行されるので、ＥＶファンクションは、事象証明書が、本物であることに加えて、事象を許可することもチェックしなければならない。これは、システムが事象の実行から希望の状態を生じることをチェックすることを意味する。上記ループは、これを行い、そして本質的に、ＥＣ＿ＬＯＯＫＵＰ（）プリミティブの中の機能のコピーである。Ｘ＿ＣＲＥＤが本物であって、ＥＶ＿Ｘを許すと仮定すれば、制御が事象レコーダー（ＥＲ）へ移され、該レコーダーは、ＥＶ＿Ｘをシステム履歴に記録する（ステップ８１１）。最終的に、ＥＲは、制御をＥＦへ戻し（ステップ８１２）、そしてＥＦは、コードモジュールＸをロードして実行する（ステップ８１３）。ＥＦは、次の事象が許可を要求するときにステップ８０１へ戻る。
【００６６】
ＫＳ結合及び事象オーセンチケーター
本発明の実施形態により、上述したＫＳ結合及び事象オーセンチケーター(Authenticator)を実施するための幾つかの態様について以下に述べる。
【００６７】
ＫＳ結合：
上述したように、本発明の実施形態のＫＳ結合は、事象証明書記憶装置（ＥＣ）の証明書を、セキュアな環境及びキー記憶装置の単一インスタンスに結合するものと仮定する。これとは対照的に、事象許可証のオーセンチケーターは、事象許可証を、セキュアなブートファンクションの管理を許された特権を持つ第三者へ結合すると仮定する。
【００６８】
ＫＳ結合を与える１つの態様は、ＳＨＡ１に基づくキー型ハッシングメッセージ認証コード（ＨＭＡＣ）を使用して、ＫＳ結合を生成し検証することである。この実施形態では、（１）事象証明書ＥＣ＝＜状態記述子、ｋｓ結合＞とし、そして（２）ＥＣの状態記述子が、ＰＣＲ値のアレーＳＤ＿ＰＣＲ［］及び比較オペレーションのアレーＳＤ＿ＣＭＰ［］より成るものとする。ＳＤ＿ＰＣＲ［］及びＳＤ＿ＣＭＰ［］より成るビットストリングを生成する。このシーケンシングをマーシャリングＭＡＲＳＨＡＬ（ＥＣ）と呼ぶ。ＨＭＡＣ＿ＳＨＡ１（key、string）は、ビットストリングｓｔｒｉｎｇにわたってキーｋｅｙを使用して計算されたＨＭＡＣ＿ＳＨＡ１（）より成るものとする。１６０ビット機密である機密キーＲＯＯＴ＿ＥＣ＿ＫＥＹがあるとする。このキーは、機密を保持しなければならない。ＥＣのＫＳ結合は、ここで、ＨＭＡＣ＿ＳＨＡ１（ＲＯＯＴ＿ＥＣ＿ＫＥＹ、ＭＡＲＳＨＡＬ（ＥＣ））と定義することができる。ＥＣの真正性は、ＴＭＰ：＝ＨＭＡＣ＿ＳＨＡ１（ＲＯＯＴ＿ＥＣ＿ＫＥＹ、ＭＡＲＳＨＡＬ（ＥＣ））を計算し、次いで、ＴＭＰとＫＳ結合をＥＣにおいて比較することにより、検証することができる。それらが等しい場合には、ＥＣが本物である。
【００６９】
別のＫＳ結合は、デジタル署名に基づくＫＳ結合である。この実施形態では、（１）Ｓｉｇｎ｛ＳｅｃｒｅｔＫｅｙ｝（ｘ）を、セキュアなデジタル署名機構に対してｘにわたるパブリックキーベースのデジタル署名オペレーションであるとし、（２）Ｖｅｒｉｆｙ｛ＰｕｂｌｉｃＫｅｙ｝（ｘ、ｓｉｇｎａｔｕｒｅ）を、対応する検証オペレーションであるとし、そして（３）ＭＡＲＳＨＡＬ（ＥＣ）を、前の章と同様に定義するものとする。ＫＳ結合は、ここでは、Ｓｉｇｎ｛ＳｅｃｒｅｔＫｅｙ｝（ＭＡＲＳＨＡＬ（ｅｃ））と定義することができる。検証は、Ｖｅｒｙｆｙ｛ＰｕｂｌｉｃＫｅｙ｝（ＭＡＲＳＨＡＬ（ｅｃ）、ｋｓ  ｂｉｎｄｉｎｇ）となる。
【００７０】
この方法において、機密キーをセキュアな環境の中に記憶する必要がなく、パブリックキーのオペレーションは、より複雑で且つ費用がかかる。又、デジタル署名は、ＨＭＡＣ＿ＳＨＡ１メッセージ認証コードよりもビット長さが長い傾向となる。
【００７１】
事象オーセンチケーター：
事象許可証におけるオーセンチケーターは、セキュアなブートファンクションの管理が許された特権をもつ第三者に事象許可証を結合すると仮定する。これに対して、ＫＳ結合は、セキュアな環境及びキー記憶装置の単一インスタンスにＥＣ証明書を結合すると仮定する。アーキテクチャーレベルにおけるこのデカップリングは、意図的である。というのは、任意の第三者マネージメントフレームワークへのプラグインをそれらのアドレス及びキー配布メカニズムとは独立して許すからである。
【００７２】
この章では、本発明の一実施形態によりこのフレームワーク及びＴＣＧ  ＴＰＭベースのシーリングを使用して任意の第三者メカニズムをどのように実施できるかの一例を説明する。
【００７３】
一実施形態において、ＴＣＧ  ＴＰＭは、プラットホームのある状態に対してデータへのアクセスをシールすることを許し、ここで、プラットホームは、上述した事象証明書における状態記述子と同様のメカニズムで定義される。シーリングは、ＴＰＭがデータを暗号化するようにさせ、次いで、暗号化されたデータを状態記述子に結合することで遂行できる。データは、ＰＣＲ［］アレーが、暗号化されたデータに結合された状態記述子に一致する場合にのみ、アンシール（解読）することができる。
【００７４】
マネージメント／コンフィギュレーションファンクションを実際に実施する仕方は多数存在する。あるものは、事象オーソライザーがセキュアな環境の内部にある（実際には事象マネージャー及び事象オーソライザーを結合する）ことを要求し、一方、あるものは、それを要求しない。ほとんどの場合に、これは、キー記憶装置におけるキーの取り扱いに対してどんなレベルの不正防止が要求されるかを意味する。
【００７５】
この方法は、この章では、事象マネージャー及び事象オーソライザーの両方がセキュアな環境の外部で実行されるが、ＴＣＧ  ＴＰＭにより与えられるシーリングを使用して、キーが妥協されないよう保証する例示的なケースについて説明する。この章では、事象マネージャー及び事象オーソライザーの両方を説明するのに、事象オーソライザーという語を使用する。この場合に、セキュアな環境は、［ＴＰＭ１］［ＴＰＭ２］［ＴＰＭ３］に述べたシーリング及びキーマネージメントファンクションを含む。
【００７６】
各々のセキュアなブートマネージメントシステムＸに対して、プラットホームに次のものが存在すると仮定する。即ち、（１）到来する事象許可証及び状態を、ａ）エージェントが実行されるシステムにそれらがアドレスされたかどうか、及びｂ）事象許可証が有効であるかどうかについて検証することのできるエージェントＡＧＥＮＴ＿Ｘ、及び（２）定義されたコンフィギュレーションでこのエージェントを実行するための事象証明書ＥＶ＿ＡＧＥＮＴ＿Ｘ。更に、対応する事象証明書が生成されるまで、保留中の事象許可証を入れることのできる記憶装置（事象許可証記憶装置）が存在し、且つＨＭＡＣ＿ＳＨＡ１ベースのＫＳ結合が使用されると仮定するが、他のシステムも同様に機能する。
【００７７】
一実施形態によれば、ブートストラップ時に、ＲＴＥは、事象許可証記憶装置が空であるかどうかチェックしなければならない。もし空であれば、ＥＦのブートは、希望の通りに進行する。事象許可証記憶装置が空でない場合には、ＲＴＥは、ＥＦに代わって事象オーソライザーのファンクションを実行する。ＲＴＥは、もちろん、事象許可ファンクションを実行するために有効な事象証明書を必要とする。
【００７８】
事象証明書に対する有効なＫＳ結合を生成するのに必要な機密キー（この場合はＲＯＯＴ＿ＥＣ＿ＫＥＹ）は、事象オーソライザーファンクションがＲＴＥにより測定及び実行され、そして全てのマネージメントエージェント（ＥＶ＿ＡＧＥＮＴ＿Ｘ）が事象オーソライザーによりロードされた後に存在するＰＣＲ値のセットに対してシールされる（ＴＰＭ＿Ｓｅａｌを使用して）。従って、これは、システムが他の状態にある場合にはＴＰＭにより解読されない。このシールされたオブジェクトをＳＥＡＬＥＤ＿ＥＣ＿ＫＥＹと呼ぶ。
【００７９】
一実施形態では、事象オーソライザーファンクション（ＥＡ）は、次のように動作する。第１に、プラットホームに存在する各ＥＶ＿ＡＧＥＮＴに対して、ＥＡは、これらエージェントを実行し、ロードする。エージェント及びそれらのコンフィギュレーションをロードするために有効な事象証明書が存在しなければならず、各ロードが測定される。この意味で、ＥＡは、ＥＦに非常に良く似た動作をする。セキュアな環境におけるＰＣＲ［］アレーは、ここで、ＲＯＯＴ＿ＥＣ＿ＫＥＹがシールされた状態になければならない。ＥＡは、ここで、ＳＥＡＬＥＤ＿ＥＣ＿ＫＥＹにＴＰＭ＿Ｕｎｓｅａｌを使用してＲＯＯＴ＿ＥＣ＿ＫＥＹをアンシールする。
【００８０】
各事象許可証Ｅ＿ＡＵＴＨに対し、次のことが生じる。即ち、（１）ＥＡは、Ｅ＿ＡＵＴＨを処理するのに必要なＥＶ＿ＡＧＥＮＴ＿Ｘをルックアップし、（２）ＥＶ＿ＡＧＥＮＴ＿Ｘは、Ｅ＿ＡＵＴＨを確認し、（３）ＥＶ＿ＡＧＥＮＴ＿Ｘが、Ｅ＿ＡＵＴＨが本物で且つ有効であることを返送する場合に、ＥＡは、オーセンチケーターフィールドを、ＲＯＯＴ＿ＥＣ＿ＫＥＹを使用して生成されたＫＳ結合に置き換えることにより、Ｅ＿ＡＵＴＨから事象証明書を生成する。次いで、ＥＡは、ＲＯＯＴ＿ＥＣ＿ＫＥＹをメモリから拭き取り、システムが再スタートされ、そしてＲＴＥが実行される。
【００８１】
システムは、キー配布及びアドレッシング方法をＥＡエージェントに使用するのを許す。事象証明書及びシーリングを使用して、ＥＶ＿ＡＧＥＮＴ＿Ｘにより使用される検証キーを保護することができる。
【００８２】
結論
上述したように、本発明の実施形態は、最小で、頑丈で、融通性があって、拡張可能で且つ簡単なセキュアなブートメカニズムを提供する。１つの機密事項しか要求されないので（即ち、ＫＳ結合に対して）、フレームワークは最小である（それ故、コスト効率が良い）。更に、セキュアなブート状態の定義は、非セキュアな記憶装置（例えば、ハードドライブ又はフラッシュメモリ）に保持することができ、そして機密事項は、対称的暗号化のためのキーであり、従って、パブリックキーに基づく機構より高速にすることができる。コストを減少すると共に、フレームワークを更に最小にするために、一実施形態では、事象許可及び事象マネージメントファンクションを未実施のままとすることができる。唯一重要なことは、事象証明書を更新不能にすることである。
【００８３】
事象証明書記憶装置（ＥＣ）は、それがセキュアな環境の外部に位置されるために、通常のバックアップメカニズムを使用してバックアップすることができ、付加的なバックアップメカニズムの必要性を排除できる。少なくともこの理由で、本発明の実施形態のセキュアなブートフレームワークは、頑丈である。更に、ここに述べる実施形態によれば、セキュアなブートフレームワークのマネージメント及びランタイム振舞いは、デカップルされる。その結果、セキュアな環境の性質とは独立して、アドレッシング及びキー配布フレームワークを使用してセキュアな仕方でマネージメントを行うことができる。これにより、フレームワークは、既存のフレームワークより融通性の高いものとなる。好都合なことに、ここに示す実施形態のセキュアなブートフレームワークは、拡張性もある。というのは、ブートすべき任意の量の許可されたコンフィギュレーションを取り扱うようにスケールアップできるからである。最後に、ここに示す実施形態のフレームワークは、セキュアな環境内に必要とされる特徴があまり複雑でないという点で、簡単である。
【００８４】
又、ブートプロセスの微粒度は、誰もが個々の事象証明書をキーＫで暗号化するのを許す。これは、キーＫが装置に配布されるまで事象証明書の使用を阻止する。これは、幾つかのコンフィギュレーションへブートすることのできる人々の数を制限するように実施できる。更に、システムは、事象証明書を装置自体においてインスタンス生成するのを許すので、これは、ユーザがセキュアなブートコンフィギュレーションを制御するのを許すソフトウェアを後で構築できるようにする。ユーザは、例えば、ウイルス防止エージェントが存在しない限り完全にブートしないようにシステムを構成するよう試みることができる。最後に、ここに提案する解決策は、システム履歴を単一プラットホームに特有のものにせずに、誰もが個々の事象証明書を単一プラットホームに結合できるようにする。これは、リモート立証（［ＴＰＭ３］に定義されたＴＰＭ＿ＱＵＯＴＥオペレーションによりなされるもののような）を、依然として、匿名又はプライバシーを妥協せずに実行できることを意味する。
【００８５】
上述したように、そして当業者に明らかなように、本発明の実施形態は、システム、方法、移動装置又は他の装置として構成されてもよい。従って、本発明の実施形態は、完全にハードウェア、完全にソフトウェア、又はソフトウェア及びハードウェアの組み合せを含む種々の手段で構成されてもよい。更に、本発明の実施形態は、コンピュータ読み取り可能なプログラムインストラクション（例えば、コンピュータソフトウェア）が実施されたコンピュータ読み取り可能な記憶媒体におけるコンピュータプログラム製品の形態をとってもよい。ハードディスク、ＣＤ−ＲＯＭ、光学的記憶装置、又は磁気記憶装置を含む適当なコンピュータ読み取り可能な記憶媒体を使用することができる。
【００８６】
本発明の実施形態は、方法、装置（即ち、システム）及びコンピュータプログラム製品を示すブロック図及びフローチャートを参照して以上に説明した。ブロック図及びフローチャートの各ブロック、並びにブロック図及びフローチャートのブロックの組み合せは、各々、コンピュータプログラムインストラクションを含む種々の手段により実施できることを理解されたい。これらコンピュータプログラムインストラクションは、汎用コンピュータ、特殊目的コンピュータ、又は他のプログラマブルデータ処理装置にロードされて、マシンを形成し、コンピュータ又は他のプログラマブルデータ処理装置で実行されるインストラクションは、フローチャートのブロックで指定されたファンクションを実施するための手段を生成する。
【００８７】
又、これらのコンピュータプログラムインストラクションは、コンピュータ又は他のプログラマブルデータ処理装置が特定の仕方で機能するように指令できるコンピュータ読み取り可能なメモリに記憶され、このコンピュータ読み取り可能なメモリに記憶されたインストラクションは、フローチャートのブロックに指定されたファンクションを実施するためのコンピュータ読み取り可能なインストラクションを含む製造物品を形成する。又、コンピュータプログラムインストラクションは、コンピュータ又は他のプログラマブルデータ処理装置にロードされ、コンピュータ又は他のプログラマブル装置において一連の動作ステップを遂行させて、コンピュータ実施プロセスを形成し、コンピュータ又は他のプログラマブル装置で実行されるインストラクションが、フローチャートのブロックで指定されたファンクションを遂行するためのステップを与えるようにする。
【００８８】
従って、ブロック図及びフローチャートのブロックは、指定のファンクションを遂行するための手段の組み合せ、指定のファンクションを遂行するためのステップの組み合せ、及び指定のファンクションを遂行するためのプログラムインストラクション手段をサポートする。又、ブロック図及びフローチャートの各ブロック、並びにブロック図及びフローチャートのブロックの組み合せは、指定のファンクション又はステップを遂行する特殊目的ハードウェアベースのコンピュータシステム、或いは特殊目的ハードウェア及びコンピュータインストラクションの組み合せによって実施できることを理解されたい。
【００８９】
本発明に関する当業者であって、前記説明及び関連図面に表わされた技術の利益を受ける当業者であれば、ここに述べる本発明の多数の変更や他の実施形態が明らかであろう。それ故、本発明は、ここに開示した特定の実施形態に限定されず、変更や他の実施形態が請求の範囲に包含されることを理解されたい。ここでは、特定の用語を使用したが、それらは、一般的な且つ説明上の意味で使用されたに過ぎず、限定のためではない。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施形態によるセキュアなブートフレームワークを示すブロック図である。
【図２】本発明の実施形態によりセキュアなブートアッププロセスの第１段階を実施するときに行うことのできるステップを示すフローチャートである。
【図３】本発明の実施形態によりセキュアなブートアッププロセスの第２段階を実施するときに行うことのできるステップを示すフローチャートである。
【図４】本発明の実施形態による事象証明書及び事象許可証のブロック図である。
【図５】本発明の実施形態により動作できる移動装置のブロック図である。
【図６】本発明の実施形態によるＴＣＧ適合の事象許可証及び証明書のブロック図である。
【図７】本発明の実施形態による施行ファンクションのＴＣＧ適合のブートを示す図である。
【図８】本発明の実施形態によりＴＣＧ適合環境において施行ファンクションを動作するときに行うことのできるステップを示す図である。
【図１】
2009509373.tif 000003
【図２】
2009509373.tif 000004
【図３】
2009509373.tif 000005
【図４】
2009509373.tif 000006
【図５】
2009509373.tif 000007
【図６】
2009509373.tif 000008
【図７】
2009509373.tif 000009
【図８】
2009509373.tif 000010
【手続補正書】
【提出日】平成20年5月8日(2008.5.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
セキュアなブートフレームワークを使用してシステムをブートアップするための方法において、前記システムは、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する１つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備え、前記方法は、
前記セキュアな環境の外部に位置するセキュアな施行ファンクションを実行するステップであって、該セキュアな施行ファンクションは、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されているステップと、
実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するステップと、
を備えた方法。
【請求項２】
前記セキュアな施行ファンクションを実行する前記ステップは、
前記セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成する段階と、
前記事象に関連した事象証明書を探索する段階であって、この事象証明書が、事象の指示と、事象が許可されるシステム状態の指示とを含むような段階と、
前記事象証明書が本物であるかどうか決定する段階と、
前記事象証明書に少なくとも一部分基づき事象が許可されたかどうか決定する段階と、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合には、前記セキュアな施行ファンクションへ制御を移す段階と、
を含む請求項１に記載の方法。
【請求項３】
事象証明書を探索する前記段階は、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスすることを含み、前記事象証明書記憶装置は、複数の事象証明書を含む、請求項２に記載の方法。
【請求項４】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項２に記載の方法。
【請求項５】
前記事象証明書が本物であるかどうか決定する前記段階は、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定することを含む、請求項４に記載の方法。
【請求項６】
システムの現在状態を決定するステップを更に備え、事象が許可されたかどうか決定する前記段階は、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定することを含む、請求項２に記載の方法。
【請求項７】
セキュアな施行ファンクションを実行する前記ステップは、前記セキュアな施行ファンクションを実行するルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを含む、請求項１に記載の方法。
【請求項８】
前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行する前記ステップは、
前記プログラムモジュールの実行に関連した事象であって、前記プログラムモジュールの実行に対応するコードを含む事象を生成する段階と、
事象に関連した事象証明書を探索する段階であって、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものである段階と、
前記事象証明書が本物であるかどうか決定する段階と、
前記事象が許可されたかどうか決定する段階と、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合に、前記プログラムモジュールを実行する段階と、
を含む請求項１に記載の方法。
【請求項９】
事象証明書を探索する前記段階は、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスすることを含み、この事象証明書記憶装置は、複数の事象証明書を含む、請求項８に記載の方法。
【請求項１０】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項８に記載の方法。
【請求項１１】
前記事象証明書が本物であるかどうか決定する前記段階は、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定することを含む、請求項１０に記載の方法。
【請求項１２】
システムの現在状態を決定するステップを更に備え、事象が許可されたかどうか決定する前記段階は、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定することを含む、請求項８に記載の方法。
【請求項１３】
セキュアなブートフレームワークを使用してブートアップするように構成された装置において、
プロセッサを備え、このプロセッサは、
セキュアな環境の外部に位置するセキュアな施行ファンクションを実行し、前記セキュアな環境は、そのセキュアな環境の外部で動作する１つ以上のプログラム、ファンクション又はリソースから分離されており、前記セキュアな施行ファンクションは、許可されたプログラムモジュールしか装置で実行されないように保証するよう構成され、更に、
実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行する、
というように構成された、装置。
【請求項１４】
前記セキュアな施行ファンクションを実行するために、前記プロセッサは、更に、
前記セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成し、
前記事象に関連した事象証明書を探索し、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものであり、
前記事象証明書が本物であるかどうか決定し、
前記事象証明書に少なくとも一部分基づき事象が許可されたかどうか決定し、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合には、前記セキュアな施行ファンクションへ制御を移す、
というように構成される請求項１３に記載の装置。
【請求項１５】
事象証明書を探索するために、前記プロセッサは、更に、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、前記事象証明書記憶装置は、複数の事象証明書を含む、請求項１４に記載の装置。
【請求項１６】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項１４に記載の装置。
【請求項１７】
前記事象証明書が本物であるかどうか決定するために、前記プロセッサは、更に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するよう構成された、請求項１６に記載の装置。
【請求項１８】
前記プロセッサは、更に、装置の現在状態を決定するように構成され、事象が許可されたかどうかの決定は、事象が許可されたかどうかを装置の現在状態に少なくとも一部分基づいて決定することを含む、請求項１４に記載の装置。
【請求項１９】
セキュアな施行ファンクションを実行するために、前記プロセッサは、前記セキュアな施行ファンクションを実行するように構成されたルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを実行するように構成され、このルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールは、前記セキュアな環境内で動作する、請求項１３に記載の装置。
【請求項２０】
前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するために、前記プロセッサは、更に、
前記プログラムモジュールの実行に関連した事象であって、前記プログラムモジュールの実行に対応するコードを含む事象を生成し、
事象に関連した事象証明書を探索し、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものであり、
前記事象証明書が本物であるかどうか決定し、
前記事象が許可されたかどうかを前記事象証明書に少なくとも一部分基づいて決定し、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合に、前記プログラムモジュールを実行する、
というように構成された請求項１３に記載の装置。
【請求項２１】
事象証明書を探索するために、前記プロセッサは、更に、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、この事象証明書記憶装置は、複数の事象証明書を含む、請求項２０に記載の装置。
【請求項２２】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項２０に記載の装置。
【請求項２３】
前記事象証明書が本物であるかどうか決定するために、前記プロセッサは、更に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するよう構成された、請求項２２に記載の装置。
【請求項２４】
前記プロセッサは、更に、装置の現在状態を決定するように構成され、そして事象が許可されたかどうか決定するために、前記プロセッサは、更に、事象が許可されたかどうかを装置の現在状態に少なくとも一部分基づいて決定するように構成された、請求項２０に記載の装置。
【請求項２５】
セキュアなブートフレームワークを使用してブートアップするように構成されたシステムにおいて、
プログラムモジュールがシステムでの実行について許可されたかどうか決定し、そしてプログラムモジュールが許可された場合にプログラムモジュールを実行するように構成されたセキュアな施行ファンクションを備え、このセキュアな施行ファンクションがシステムのセキュアな環境の外部で動作するようにしたシステム。
【請求項２６】
前記セキュアな環境の外部で動作し、そして複数の事象証明書を含んでいる事象証明書記憶装置を更に備え、プログラムモジュールが許可されたかどうか決定するために、前記セキュアな施行ファンクションは、更に、プログラムモジュールの実行に関連した事象であって、実行に対応するコードを含むような事象を生成し、且つ前記事象証明書記憶装置の複数の事象証明書において事象に関連した事象証明書を探索するように構成された、請求項２５に記載のシステム。
【請求項２７】
プログラムモジュールが許可されるかどうか決定するために、前記セキュアな施行ファンクションは、更に、事象証明書が本物であるかどうか決定するように構成され、前記システムは、更に、
前記セキュアな環境の内部に配置されて、前記セキュアな施行ファンクションによりアクセスできるキー記憶装置を備え、前記事象証明書記憶装置の各事象証明書は、対応する事象の指示と、事象が許可されるシステム状態の指示と、事象証明書を前記セキュアな環境、特に、キー記憶装置に結合するように構成されたキー記憶装置結合とを含み、更に、事象証明書が本物であるかどうかの前記決定は、前記キー記憶装置にアクセスし、そして前記キー記憶装置結合に少なくとも一部分基づいて事象証明書の完全性及び真正性を決定することを含む、請求項２６に記載のシステム。
【請求項２８】
前記セキュアな環境の内部で動作し、前記セキュアな施行ファンクションによりアクセス可能な状態履歴データベースを更に備え、この状態履歴データベースは、現在システム状態の指示及び１つ以上の以前のシステム状態の指示を含み、前記セキュアな施行ファンクションは、更に、現在システム状態を決定するためにこの状態履歴データベースにアクセスするように構成される、請求項２７に記載のシステム。
【請求項２９】
前記セキュアな環境の内部で動作し、前記セキュアな施行ファンクションによりアクセス可能な事象ベリファイアを更に備え、この事象ベリファイアは、事象が許可されるかどうかを、対応する事象証明書及び現在システム状態に少なくとも一部分基づいて決定するように構成される、請求項２８に記載のシステム。
【請求項３０】
前記セキュアな環境の内部で動作し、前記セキュアな施行ファンクションによりアクセス可能な事象レコーダーを更に備え、この事象レコーダーは、前記プログラムモジュールの実行を前記状態履歴データベースに記録するように構成される、請求項２９に記載のシステム。
【請求項３１】
前記セキュアな環境の内部で動作するルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを更に備え、このルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールは、前記セキュアな施行ファンクションを実行するように構成される、請求項２５に記載のシステム。
【請求項３２】
セキュアなブートフレームワークを使用してシステムをブートアップするコンピュータプログラム製品において、前記システムは、計算エンジンと、この計算エンジン内で動作するセキュアな環境であって、該セキュアな環境の外部で動作する１つ以上のプログラム、ファンクション及びリソースから分離されたセキュアな環境とを備え、前記コンピュータプログラム製品は、コンピュータ読み取り可能なプログラムコード部分が記憶された少なくとも１つのコンピュータ読み取り可能な記憶媒体を備え、前記コンピュータ読み取り可能なプログラムコード部分は、
前記セキュアな環境の外部に位置するセキュアな施行ファンクションであって、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成されたセキュアな施行ファンクションを実行するための第１の実行可能な部分と、
実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するための第２の実行可能な部分と、
を備えたコンピュータプログラム製品。
【請求項３３】
前記第１の実行可能な部分は、更に、
前記セキュアな施行ファンクションの実行に関連した事象であって、その実行に対応するコードを含むような事象を生成するための第３の実行可能な部分と、
前記事象に関連した事象証明書を探索するための第４の実行可能な部分であって、この事象証明書が、事象の指示と、事象が許可されるシステム状態の指示とを含むような第４の実行可能な部分と、
前記事象証明書が本物であるかどうか決定するための第５の実行可能な部分と、
前記事象証明書に少なくとも一部分基づき事象が許可されたかどうか決定するための第６の実行可能な部分と、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合には、前記セキュアな施行ファンクションへ制御を移すための第７の実行可能な部分と、
を含む請求項３２に記載のコンピュータプログラム製品。
【請求項３４】
前記第４の実行可能な部分は、事象証明書を探索するために、前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、前記事象証明書記憶装置は、複数の事象証明書を含む、請求項３３に記載のコンピュータプログラム製品。
【請求項３５】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項３３に記載のコンピュータプログラム製品。
【請求項３６】
前記第５の実行可能な部分は、更に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するように構成された、請求項３５に記載のコンピュータプログラム製品。
【請求項３７】
前記コンピュータ読み取り可能なプログラムコード部分は、更に、
システムの現在状態を決定するための第８の実行可能な部分を備え、前記第６の実行可能な部分は、更に、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定するように構成された、請求項３３に記載のコンピュータプログラム製品。
【請求項３８】
前記第１の実行可能な部分は、前記セキュアな施行ファンクションを実行するように構成されたルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールを含み、このルート・オブ・トラスト・フォア・エンフォースメントプログラムモジュールは、前記セキュアな環境の内部で動作する、請求項３２に記載のコンピュータプログラム製品。
【請求項３９】
前記第２の実行可能な部分は、更に、
前記プログラムモジュールの実行に関連した事象であって、前記プログラムモジュールの実行に対応するコードを含む事象を生成するための第３の実行可能な部分と、
事象に関連した事象証明書を探索するための第４の実行可能な部分であって、この事象証明書は、事象の指示と、事象が許可されるシステム状態の指示とを含むものである第４の実行可能な部分と、
前記事象証明書が本物であるかどうか決定するための第５の実行可能な部分と、
前記事象が許可されたかどうか決定するための第６の実行可能な部分と、
前記事象証明書が探索され、本物であり、且つ事象が許可された場合に、前記プログラムモジュールを実行するための第７の実行可能な部分と、
を含む請求項３２に記載のコンピュータプログラム製品。
【請求項４０】
前記第４の実行可能な部分は、前記事象証明書を探索するために前記セキュアな環境の外部に位置する事象証明書記憶装置にアクセスするように構成され、この事象証明書記憶装置は、複数の事象証明書を含む、請求項３９に記載のコンピュータプログラム製品。
【請求項４１】
前記事象証明書は、更に、この事象証明書を、前記セキュアな環境に及び前記セキュアな環境内に位置するキー記憶装置に結合するように構成されたキー記憶装置結合を含む、請求項３９に記載のコンピュータプログラム製品。
【請求項４２】
前記第５の実行可能な部分は、更に、前記キー記憶装置にアクセスし、そして前記事象証明書の完全性及び真正性を前記キー記憶装置結合に少なくとも一部分基づいて決定するように構成された、請求項４１に記載のコンピュータプログラム製品。
【請求項４３】
前記コンピュータ読み取り可能なプログラムコード部分は、更に、
システムの現在状態を決定するための第８の実行可能な部分を備え、前記第６の実行可能な部分は、更に、事象が許可されたかどうかをシステムの現在状態に少なくとも一部分基づいて決定するように構成された、請求項３９に記載のコンピュータプログラム製品。
【請求項４４】
セキュアなブートフレームワークを使用してブートアップするように構成された装置において、
セキュアな環境の外部に位置するセキュアな施行ファンクションを実行するための手段を備え、前記セキュアな環境は、そのセキュアな環境の外部で動作する１つ以上のプログラム、ファンクション又はリソースから分離されており、前記セキュアな施行ファンクションは、許可されたプログラムモジュールしかシステムで実行されないように保証するよう構成され、更に、
実行の前にプログラムモジュールが許可された場合には、前記セキュアな施行ファンクションを使用して少なくとも１つのプログラムモジュールを実行するための手段を備えた、装置。
【国際調査報告】
2009509373.tif 000011
2009509373.tif 000012
2009509373.tif 000013
2009509373.tif 000014