(57)【要約】【課題】  起動プロセスの際に対話型コンポーネントの使用を認証するための方法及び装置を提供する。【解決手段】  対話型コンポーネントの使用を判断することに応答して、関連した対話型入力を読み取るステップと、入力を信頼すべきかどうかを判断するステップと、入力を信頼すべきであると判断することに応答して、入力を処理して信頼できる暗号値を作成するステップとを含み、後続の対話型入力を読み取ることに応答して、後続の対話型入力を信頼できる暗号値の１つ又は複数と照合して、後続の対話型入力が信頼できるかどうかを判断するステップをさらに含む、起動プロセスの際に対話型コンポーネントの使用を認証するための方法が提供される。【選択図】      図４
2013538404.tif 000002
【特許請求の範囲】
【請求項１】
起動プロセスの際に対話型コンポーネントの使用を認証するための方法であって、
前記対話型コンポーネントの使用を判断することに応答して、関連した対話型入力を読み取るステップと、
前記入力を信頼すべきかどうかを判断するステップと、
前記入力を信頼すべきであると判断することに応答して、前記入力を処理して信頼できる暗号値を作成するステップと
を含み、
後続の対話型入力を読み取ることに応答して、前記後続の対話型入力を前記信頼できる暗号値の１つ又は複数と照合して、前記後続の対話型入力が信頼できるかどうかを判断するステップをさらに含む方法。
【請求項２】
ＰＣＲを前記入力に割り当てるステップと、
前記入力を前記割り当てられたＰＣＲにｅｘｔｅｎｄ命令を用いて書き込むステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記信頼できる暗号値と関連したメタデータを生成するステップをさらに含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記後続する対話型入力が信頼できる暗号値に一致することに応答して、前記対話型コンポーネントと関連したシステムが信頼できると判断するステップ
をさらに含む、前記請求項のいずれかに記載の方法。
【請求項５】
前記後続の対話型入力が信頼できる暗号値に一致しないことに応答して、関連したイベント・ログ・エントリを構文解析するステップと、
前記イベント・ログ・エントリを既知の入力のデータ構造と照合するステップと、
をさらに含む、前記請求項のいずれかに記載の方法。
【請求項６】
前記イベント・ログ・エントリが前記既知の入力のデータ構造に一致しないことに応答して、前記対話型コンポーネントと関連したシステムが信頼できないと判断するステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記イベント・ログ・エントリが前記既知の信頼できる入力のデータ構造に一致することに応答して、前記後続の対話型入力と関連した暗号値を、前記信頼できる暗号値を含むデータ構造に付加するステップをさらに含む、請求項５に記載の方法。
【請求項８】
前記入力を信頼すべきかどうかを判断するステップは、
前記入力を既知の入力のデータ構造と比較するステップをさらに含む、前記請求項のいずれかに記載の方法。
【請求項９】
起動プロセスの際に対話型コンポーネントの使用を認証するための装置であって、
前記対話型コンポーネントの使用の判断に応答して、関連した対話型入力を読み取るための手段と、
前記入力を信頼すべきであるかどうかを判断するための手段と、
入力を信頼すべきであるという判断に応答して、前記入力を処理して信頼できる暗号値を作成するための手段と、
を備え、
後続の対話型入力を読み取ることに応答して、前記後続の対話型入力を前記信頼できる暗号値の１つ又は複数と照合して、前記後続の対話型入力が信頼できるかどうかを判断するための手段
をさらに備える装置。
【請求項１０】
コンピュータ・システムにロードされ、そこで実行されたときに、前記コンピュータ・システムに、請求項１から請求項８までのいずれかに記載の方法の全てのステップを実行させる、コンピュータ可読媒体上に格納されたコンピュータ・プログラム・コードを含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動（boot）プロセスの際に対話型コンポーネントの使用を認証するための方法に関する。
【背景技術】
【０００２】
信頼できる起動（trusted  boot）とは、コンピューティング・システムを起動し、コンピューティング・システムにおいて信用の連鎖（chain  of  trust）を確立するためのプロセスである。例えば、図１の環境（１００）を参照すると、システム管理者がサーバ（管理されるシステム（１２０））を受け取り、続いてシステム・ソフトウェアのインストールを行う。管理されるシステム（１２０）は、例えばＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）などのセキュア・デバイス（１２５）を含む。ひとたびシステム（１２０）が構成されて起動すると、管理されるシステム（１２０）の各コンポーネント（ハードウェア及び／又はソフトウェア）は、別のコンポーネントを暗号計測し（cryptographically measure）、計測値をＴＰＭ（１２５）のＰｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ（ＰＣＲ）内に直接書き込まず、ｅｘｔｅｎｄと呼ばれる特殊な命令でレジスタに書き込むことができる。各コンポーネントはまた、イベント・ログにアクセスして、コンポーネントの計測と関連したデータを、イベント・ログと関連したエントリに書き込むように動作可能である。
【０００３】
管理者は、構成を信頼し、これらの初期計測を信頼できるものと受け取る。インストール／構成の後、計測が記録される前に、システムが誰にも侵害されていないと仮定する。
【０００４】
計測は、各々の管理されるシステムのコンポーネントについての期待される認証値を格納するデータベース（１１５）を有する管理システム（１０５）によって遠隔認証することができる。この値は、典型的には、値が何を意味するかを記述する何らかのメタデータと共に格納される。管理システム（１０５）は、例えば計測を値と比較するためのＴＰＭエミュレータ（１１０）を含む。遠隔認証プロセス自体は、管理システム又は管理されるシステムのいずれかによって開始することができる。
【０００５】
管理されるシステム（１２０）に対する変更は、後続の信頼できる起動プロセス及び遠隔認証プロセスによって検出することができる。
【０００６】
上記のプロセスは、例えば、非特許文献１の第４節及び非特許文献２の第２節章において説明される。
【０００７】
上述の信頼できる起動プロセス及び遠隔認証プロセスは、起動プロセスが明確に定められている場合には、例えば簡単な非対話型起動プロセスを有するゲーム・コンソールにおいてうまく機能する。より高度なコンピューティング・システム、例えばＰＯＷＥＲ（ＰＯＷＥＲは、インターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である）サーバなどにおいては、対話型コンポーネントを随意的に含ませることにより、低レベル・ファームウェアが対話型コンポーネントに方向転換される（divert）場合があるため、起動プロセスが複雑になることがある。多くのサーバ・システムにおいて、対話型コンポーネントは、典型的には、ＯＦ（Ｏｐｅｎ  Ｆｉｒｍｗａｒｅ）プロンプトを含み、Ｉｎｔｅｌ（Ｉｎｔｅｌ、Ｉｎｔｅｌロゴ、Ｉｎｔｅｌ  Ｉｎｓｉｄｅ、Ｉｎｔｅｌ  Ｉｎｓｉｄｅロゴ、Ｉｎｔｅｌ  Ｃｅｎｔｒｉｎｏ、Ｉｎｔｅｌ  Ｃｅｎｔｒｉｎｏロゴ、Ｃｅｌｅｒｏｎ、Ｉｎｔｅｌ  Ｘｅｏｎ、Ｉｎｔｅｌ  ＳｐｅｅｄＳｔｅｐ、Ｉｔａｎｉｕｍ、及びＰｅｎｔｉｕｍは、米国及び他の国におけるＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ又はその子会社の商標又は登録商標である）システムにおいて、対話型コンポーネントは、典型的には、ＥＦＩ（Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）プロンプトを含む。対話型コンポーネントは物理的システムに特有のものではなく、仮想マシンも対話型コンポーネントを有することができる。
【０００８】
例えば、システムのユーザは、起動時に例えばファンクション・キーを押すことによって、対話型コンポーネントに入力するための選択肢を有することができる。対話型コンポーネントは、典型的には、コマンド・プロンプト又はメニューとして提示され、次の計測される起動コンポーネントに制御が移される前に、ユーザが設定を変更し、コードを実行するのを可能にすることができる。対話型コンポーネントの使用は、例えば、管理者が対話型コンポーネントを使用し、例えばシステムの構成及び診断を行うために所定のコマンドを実行する、実行されるコードを入力するといったタスクを実行できるといった、正当な管理のためのものであり得る。従って、対話型コンポーネントの使用を信頼できないと考えるべきであるという一般的な判断は、実際にはうまくいかない。しかしながら、対話型コンポーネントの使用は、悪意のある攻撃を受けやすく、例えば、典型的には、メモリを対話型コンポーネントから読み出し、これに書き込むことが可能であり、ファームウェアが常駐するメモリを書き換えることさえ可能である。
【０００９】
信頼できる起動プロセスをセキュリティ保護することは、特定の環境、例えば銀行業務アプリケーションなどのアプリケーション（及び、関連した仮想マシン）がクラウド内の共有リソースに移動されることがあるクラウド・コンピューティング環境において、特に重要であることに留意されたい。信頼できる起動プロセスは、仮想マシンにより使用されるのに加えて、共有リソースに適用することができる。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】「Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ（ＴＣＧ）  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｏｖｅｒｖｉｅｗ」、Ｓｐｅｃｉｆｉｃａｔｉｏｎ、Ｒｅｖｉｓｉｏｎ  １．４；２００７年８月２日
【非特許文献２】「ＴＣＧ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｗｏｒｋｉｎｇ  ｇｒｏｕｐ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｐａｒｔ  ＩＩ―Ｉｎｔｅｇｒｉｔｙ  Ｍａｎａｇｅｍｅｎｔ」、Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．０、Ｒｅｖｉｓｉｏｎ１．０、２００６年１１月１７日
【発明の概要】
【発明が解決しようとする課題】
【００１１】
起動プロセスの際に対話型コンポーネントの使用を認証するための方法及び装置を提供する。
【課題を解決するための手段】
【００１２】
信頼できる起動プロセスは、変更が仮にあったとしても稀である所与のシステム、及び、各コンポーネントが厳密な実行経路をたどり、コンポーネント（例えば、オペレーティング・システム）に対するいかなる変更も、コンポーネントの所有者からの変更されたコンポーネントの信頼できる計測値（例えば、オペレーティング・システムへの更新を生成する企業が、その更新と関連した１つ又は複数の信用できる値も提供する）が付随する所与のシステムにおいて、うまく機能することに留意されたい。これにより、種々のコンポーネント（従って、例えばシステム全体）についての信頼できる計測値のデータベースを前もって生成することが可能になる。従って、管理されるシステムのいずれのコンポーネントも、信頼できる計測値と関連した既存のエントリに一致しなければならず、そうでない場合には、コンポーネントは暗黙的に信頼できない。
【００１３】
好ましい実施形態は、信頼できる起動プロセスの際の対話型コンポーネントの使用を検出し、対話型コンポーネントの使用の際に実行された動作が信頼できるかどうかの判断を可能にする解決策を開示する。
【００１４】
好ましい実施形態は、不変の起動コンポーネントを用いた場合でさえ、悪意のあるユーザがシステムを危険にさらすのを可能にし得る対話型コンポーネント（コマンド・プロンプトなど）が存在するという事実に対処するものである。好ましい実施形態は、管理システムによって特別に扱われる割り当てられたＰＣＲを用いて、対話型コンポーネントの使用の際のユーザの動作を記録するための機構を提供する。実際上、割り当てられたＰＣＲは他のＰＣＲよりも揮発性が高いと考えられ、多数の信頼できる値のいずれを担うこともできる。有利なことに、たとえコンポーネントと関連した計測値が信頼できる値に一致しなくても、その計測値と関連した入力を、新しい信頼できる入力と関連付け、それを将来の参照のために受け入れて記録することができる。
【００１５】
第１の態様によると、対話型コンポーネントの使用の判断に応答して、関連した対話型入力を読み取るステップと、入力を信頼すべきかどうかを判断するステップと、入力を信頼すべきであるとの判断に応答して、入力を処理して信頼できる暗号値を作成するステップとを含み、後続の対話型入力を読み取ることに応答して、後続の対話型入力を信頼できる暗号値の１つ又は複数と照合して、後続の対話型入力が信頼できるかどうかを判断するステップをさらに含む、起動プロセスの際に対話型コンポーネントの使用を認証するための方法が提供される。
【００１６】
第２の態様によると、対話型コンポーネントの使用の判断に応答して、関連した対話型入力を読み取るための手段と、入力を信頼すべきかどうかを判断するための手段と、入力を信頼すべきであるとの判断に応答して、入力を処理して信頼できる暗号値を作成するための手段とを含み、後続の対話型入力を読み取ることに応答して、後続の対話型入力を、信頼できる暗号値の１つ又は複数と照合して、後続の対話型入力が信頼できるかどうかを判断するための手段をさらに含む、起動プロセスの際に対話型コンポーネントの使用を認証するための装置が提供される。
【００１７】
第３の態様によると、コンピュータ・システムにロードされてそこで実行されたときに、コンピュータ・システムに、上記方法の全てのステップを実行させる、コンピュータ可読媒体上に格納されたプログラム・コードを含むコンピュータ・プログラムが提供される。
【００１８】
ここで本発明を、以下の図面に示されるような本発明の好ましい実施形態を参照して、単なる例として説明する。
【図面の簡単な説明】
【００１９】
【図１】信頼できる起動プロセス及び遠隔認証プロセスを実行するための既知のシステムを示すブロック図である。
【図２】既知の管理されるシステムのコンポーネントを示すブロック図である。
【図３】信頼できる起動プロセス及び遠隔認証プロセスを実行するための既知のシステムのより詳細な図を示すブロック図である。
【図４】既知の遠隔認証プロセスに関与する動作ステップを示すフローチャートである。
【図５】好ましい実施形態による、信頼できる起動プロセスに関与する動作ステップを示すフローチャートである。
【図６】好ましい実施形態による、遠隔認証プロセスに関与する動作ステップを示すフローチャートである。
【発明を実施するための形態】
【００２０】
ここで既知の信頼できる起動プロセス及び遠隔認証プロセスをさらに詳細に説明する。
【００２１】
図２を参照すると、管理されるシステム（２００）がさらに詳細に示される。信頼できる起動プロセスの際、管理されるシステム（２００）の各コンポーネントは、別の起動コンポーネントを暗号計測する（例えば、セキュア・ハッシュ・アルゴリズム（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ、ＳＨＡを用いて、ソフトウェア・ファイル、モデル、メイク（make）、コンポーネントのシリアル番号などの情報のハッシュを作成し、計測値を作成する）。
【００２２】
一例として、例えばＢＩＯＳなどのＣｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  ｆｏｒ  Ｍｅａｓｕｒｅｍｅｎｔ（ＣＲＴＭ）コンポーネント（２２０）は、起動の際に制御を与えられる最初のコード片であり、これは不変のものであるので暗黙的に信頼できるはずである。ＣＲＴＭ（２２０）は、起動プロセスにおける次のコンポーネント（例えば、ファームウェア（２１５））を暗号計測し、続いて、ファームウェア（２１５）は、起動プロセスにおける次のコンポーネント（例えば、オペレーティング・システム（２１０））を計測し、続いて、オペレーティング・システム（２１０）は、任意のユーザ空間プログラム（２０５）を、そのユーザ空間プログラム（２０５）に制御が移される前に計測する。
【００２３】
各コンポーネントは、計測されるコンポーネントに制御が移される前に、計測値をＴＰＭ（２２５）のＰｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ（ＰＣＲ）（２３０）内に直接書き込まず、特殊なｅｘｔｅｎｄ命令によりレジスタへの書込み操作を行う（以下、extend操作と呼ぶ）。このextend操作は、ＰＣＲの値と計測値の暗号の組み合わせを含む。
【００２４】
各コンポーネントはまた、イベント・ログ（２３５）にアクセスして、コンポーネントの計測（例えば、コンポーネント識別子及びイベントなどのメタデータ、並びに関連した計測値）と関連したデータを、イベント・ログ（２３５）と関連したエントリ内に書き込むようにも動作可能である。
【００２５】
ＣＲＴＭ（２２０）は、典型的には、イベント・ログ（２３５）にアクセスできない制限された環境において実行されることに留意されたい。また、ユーザ空間プログラム（２０５）は、ＴＰＭ（２２５）及びイベント・ログ（２３５）を用いるように動作可能であるが、ユーザ空間プログラム（２０５）は他のソフトウェア・コンポーネント自体をロードしない傾向があるため、ユーザ空間プログラム（２０５）がそれを行うかどうかは任意であることにも留意されたい。
【００２６】
対話型コンポーネント（コマンド・プロンプト又はメニュー等）（２１７）が利用可能である場合、制御は、オペレーティング・システム（２１０）に移されるまで、無期限にファームウェア（２１５）に留まるであろうことに留意されたい。
【００２７】
ひとたび管理されるシステム（２００）が実行されると、例えば本明細書で説明されるようなＤＡＡ（Ｄｉｒｅｃｔ  Ａｎｏｎｙｍｏｕｓ  Ａｔｔｅｓｔａｔｉｏｎ、直接匿名認証）などの遠隔認証手続を用いて、遠隔システム（３０５）による検査のために、「信頼の連鎖」と関連したデータを抽出することができる。
【００２８】
図３のシステム（３００）を参照すると、管理されるシステム（２００）並びに関連したＴＰＭ（２５５）、ＰＣＲ（２３０）、及び１つ又は複数の計測値及び関連したメタデータを含むイベント・ログ（２３５）が示される。認証プロセスは、典型的には、管理されるシステム（２００）が、計測されるコンポーネントについての現在のＰＣＲ値（２３０）（即ち、ｅｘｔｅｎｄ操作の結果として得られる）を、イベント・ログ（２３５）と一緒に管理システム（３０５）に送ることを含む。
【００２９】
ここで、管理システム（３０５）上で実行される認証プロセスの簡単化された例を、図４を参照しながら説明する。
【００３０】
ステップ４００において、イベント・ログ（２３５）と一緒に受け取った現在のＰＣＲ値（２３０）が取得される。ステップ４０５において、管理されるシステム（２００）のコンポーネントと関連した期待される認証値が、データベース（３２５）から取得される。ステップ４１０において、管理されるシステム（３０５）のエミュレータ（３１０）が、受け取った現在のＰＣＲ値（２３０）を期待される認証値と比較する。管理システム（３０５）の多数の他のコンポーネントが比較論理を実行できることを理解すべきである。
【００３１】
各ＰＣＲ値について一致が発生した場合には、管理されるシステム（２００）は信頼できるものとみなされ（ステップ４１５）、それ以上の作業は行われない。
【００３２】
各ＰＣＲ値について一致が発生しない場合には、管理システム（３０５）はイベント・ログ（２３５）を構文解析し（ステップ４２０）、各エントリを順に検査して、当該計測されるコンポーネントと関連したエントリ内に含まれる計測値が有効であるかどうかを判断する。
【００３３】
各イベント・ログ（２３５）エントリが有効であると思われる場合には（ステップ４２５に対する肯定的な結果）、管理されるシステム（２００）は信頼できるものとみなされ（ステップ４１５）、それ以上の作業は行われない。
【００３４】
イベント・ログ・エントリが有効でないと思われる場合には（ステップ４２５に対する否定的な結果）、管理されるシステム（２００）は信頼できるものとみなされない（ステップ４３０）−「システムを信頼できない」の終了状態に移る前に、セキュリティ警告が発せられることが好ましい。
【００３５】
ここで、上記のプロセスの例示的な実施を説明する。
【００３６】
典型的には、管理されるシステム（２００）のコンポーネントの製造者は、コンポーネントと関連した計測値の（大きな）リスト（例えば、参照マニフェスト）を提供する−これらの計測値は「信頼できる」ものととらえることができる。さらに、典型的には、信頼できる起動プロセスは非常に決定論的であり、イベント・ログ（２３５）内に現れる関連したイベントは厳密なパターンに従う。ＣＲＴＭ（２２０）がファームウェア（２１５）を計測し、次いでオペレーティング・システム（２１０）を計測する例においては、イベント・ログ（２３５）は、典型的には、２つのイベント、即ち「ファームウェア計測済み」及び「オペレーティング・システム計測済み」を含む。ファームウェア（２１５）及び／又はオペレーティング・システム（２１０）が変更された（例えば、更新された）場合であっても、将来の起動プロセスの際、同じ２つのイベントは同じ順序で行われ、関連した計測値だけが異なる。
【００３７】
一例において、各計測値が同じＰＣＲと関連付けられる。この例において、管理システム（３０５）は、管理されるシステム（２００）が前回起動したときに、管理されるシステム（２００）が例えばＭ１の計測値を伴うバージョンＸを有するファームウェア、及び、例えばＭ２の計測値を伴うバージョンＹを有するオペレーティング・システムを用いていたことを示す記録を保持し、ここでＭ１及びＭ２は、それぞれファームウェア起動コンポーネント及びオペレーティング・システム起動コンポーネントのＳＨＡダイジェストである。計測値、即ち「ファームウェア計測済み：ＳＨＡ（Ｍ１）」及び「オペレーティング・システム計測済み：ＳＨＡ（Ｍ２）」を伴った２つのイベントがＰＣＲにｅｘｔｅｎｄ操作されると、現在のＰＣＲ値「Ｚ」が与えられる。現在のＰＣＲ値「Ｚ」は、ファームウェア（２１５）及びオペレーティング・システム（２１０）についての期待される認証値として、管理システム（３０５）のデータベース（３２５）内に記録される。
【００３８】
後続の認証プロセスの際、管理システム（３０５）は、イベント・ログ（２３５）を伴った受け取った現在のＰＣＲ値（２３０）を取得し（ステップ４００）、データベース（３２５）から期待される認証値を取得する（ステップ４０５）。
【００３９】
ステップ４１０において、エミュレータ（３１０）は、受け取った現在のＰＣＲ値を期待される認証値と比較する−一致が発生した場合には、管理されるシステム（２００）は、予想されるファームウェア（２１５）及びオペレーティング・システム（２１０）を用いていると判断される（ステップ４１５）。
【００４０】
一致が発生しない（即ち、受け取った現在のＰＣＲ値が「Ｚ」ではない）場合には、管理システム（３０５）は、イベント・ログ（２３５）を構文解析して（ステップ４２０）、関連したエントリを見つけ出す。管理システム（３０５）は、第１のイベント及び計測値、即ち「ファームウェア計測済み：ＳＨＡ（Ｍ１）」をファームウェアの特定の製造者により提供された信頼できる値のリストと比較し、第２のイベント及び計測値、即ち「オペレーティング・システム計測済み：ＳＨＡ（Ｍ２）」をオペレーティング・システムの特定の製造者により提供された信頼できる値のリストと比較する。
【００４１】
いずれかのコンポーネントが、製造作者が「信頼できる」として列挙していない計測値を有する場合には、管理されるシステム（２００）が危険にさらされると仮定される（ステップ４３０）。
【００４２】
両方のコンポーネントが、製造者が「信頼できる」として列挙した計測値を有する場合には、管理されるシステム（２００）は信頼できるものと仮定され（ステップ４１５）、その計測値を、管理されるシステム（２００）の次回の認証プロセスの際に用いられる新しい期待される認証値と関連付けることができる。
【００４３】
ここで、対話型コンポーネントをサポートするための、好ましい実施形態の信頼できる起動プロセス及び遠隔認証プロセスを、図５及び図６を参照しながら説明する。
【００４４】
ＰＣＲ（例えば、「７」）が、対話型コンポーネントに対するユーザ入力（例えば、キーストローク）と関連した計測値を受け取るように予約されることが好ましい。いずれの他の値も対話型コンポーネントが使用されたことを示すとき、このＰＣＲ（７）は、典型的には、初期「電源オン」状態（例えば、ゼロ）を有すると考えられる。
【００４５】
ここで、対話型コンポーネントが使用される際に入力と関連した値を捕捉する方法を、図５を参照しながら説明する。
【００４６】
ステップ５００において、例えば、ファームウェア（２１５）が、ＣＲＴＭ（２２０）から制御を受け取る。起動プロセスが対話型コンポーネントに方向転換されない場合（ステップ５０５に対する否定的な結果）、ファームウェア（２１５）は、信頼できる起動プロセスにおける次のコンポーネント（例えば、オペレーティング・システム（２１０））を計測する（ステップ５１０）。計測値がファームウェア（２１５）によってＰＣＲ内にｅｘｔｅｎｄ操作され、関連したメタデータがファームウェア（２１５）によってイベント・ログ（２３５）に付加され（ステップ５１５）、制御がオペレーティング・システム（２１０）に移される（ステップ５２０）。
【００４７】
信頼できる起動プロセスが対話型コンポーネントに方向転換される場合（ステップ５０５に対する肯定的な結果）、ステップ５２５において、ファームウェア（２１５）は、ユーザが行った入力（例えば、キーストローク、メニュー選択、コマンド）を読み取る。ファームウェア（２１５）は、各々の入力をハッシュし（例えば、個々の文字をハッシュし又は各々の離散シーケンスをハッシュし）（ステップ５３０）、入力と関連したメタデータ（例えば、入力の識別子、入力の型式）を作成する（ステップ５３０）。ファームウェア（２１５）によってハッシュ値がＰＣＲ（７）にｅｘｔｅｎｄ操作され（ステップ５３５）、ファームウェア（２１５）によってメタデータがイベント・ログ（２３５）に付加される（ステップ５３５）。
【００４８】
ステップ５４０において、入力（例えば、特定のキーストローク）が実行され、続いて、いずれかのさらなる入力が行われたかどうかの判断がなされる（ステップ５４５）。さらなる入力が行われた場合には、プロセスはステップ５２５に進む。さらなる入力が行われなかった場合には、プロセスはステップ５１０に進み、これによりファームウェア（２１５）がオペレーティング・システム（２１０）を計測する。
【００４９】
有利なことに、入力された入力と関連した固有のハッシュ値を提供するようにＰＣＲ（７）にｅｘｔｅｎｄ操作することができ、さらに、関連したメタデータをイベント・ログ（２３５）内に格納することができる−入力及び関連したハッシュ値の例が下記の表１に示される。
【表１】
2013538404.tif 000003
【００５０】
本発明のシステムを使用する前に、どの入力を「信頼できる」とみなすべきかについての判断がなされることが好ましい。例えば、管理者は、特定の入力（従って、特定のハッシュ値）を信頼できるものとして受け入れるかどうかを（例えば、他の信頼できるシステムからの既知の入力と関連したメタデータを用いることによって）判断する。管理者は、入力と関連した信頼できるハッシュ値のリストを他の管理システムに配布できることが好ましい。
【００５１】
他の実施において、対話型コンポーネントを提供するファームウェア（２１５）が、イベント・ログ（２３５）を用いるように動作可能でないことがあり、その場合には、入力と関連したイベントをイベント・ログ（２３５）内に格納できないことに留意されたい。従って、例えば、管理システム（３０５）は、管理されるシステム（２００）上で入力された入力を判断することができない。
【００５２】
この場合、管理者は、起動プロセスとは非同期的に、（例えば、バッチにおいて）手作業で入力を取得することが好ましい。或いは、管理者は、管理されるシステム（２００）のユーザに連絡して、起動プロセスの際にユーザが使用しようとする入力を要求することができる。管理者は、（例えば、他の信頼できるシステムからの既知の入力と関連したメタデータを用いることによって）特定の入力を信頼できるものとして受け入れるかどうかを判断し、管理システム（３０５）のエミュレータ（３１０）を用いて、入力についての信頼できるハッシュ値を計算する。
【００５３】
ここで、好ましい実施形態の遠隔認証プロセスを、図６を参照しながら説明する。
【００５４】
ステップ６００において、イベント・ログ（２３５）を伴った現在のＰＣＲ値（２３０）が取得される。ステップ６０５において、期待される認証値が、データベース（３２５）から取得される。ステップ６１０において、管理システム（３０５）のエミュレータ（３１０）が、受け取った現在のＰＣＲ値（２３０）を期待される認証値と比較する。
【００５５】
各ＰＣＲ値について一致が発生した場合には、管理されるシステム（２００）は信頼できるものとみなされ（ステップ６３０）、それ以上の作業は行われない。
【００５６】
各ＰＣＲ値について一致が発生しない場合には、ステップ６１５において、チェックを行い、ＰＣＲ（７）の値が非ゼロであるかどうかを判断する。
【００５７】
ＰＣＲ（７）の値が非ゼロではない（対話型コンポーネントの不使用を示す）場合には、管理システム（３０５）は、各エントリを順に（参照マニフェストを参照しながら）検査することによって、イベント・ログ（２３５）を構文解析して（ステップ６２０）、当該計測されるコンポーネントが有効であるかどうかを判断する（図４を参照して実施が上述される）。
【００５８】
各イベント・ログ・エントリが有効であると思われる場合には（ステップ６２５に対する肯定的な結果）、管理されるシステム（２００）は信頼できるものとみなされ（ステップ６３０）、それ以上の作業は行われない。
【００５９】
イベント・ログ・エントリが有効でないと思われる場合には（ステップ６２５に対する否定的な結果）、管理されるシステム（２００）は信頼できるものとみなされない（ステップ６３５）
【００６０】
ＰＣＲ（７）の値が非ゼロである（対話型コンポーネントの使用を示す）場合には、入力と関連した信頼できるハッシュ値が取得され（ステップ６４０）、ＰＣＲ（７）の値が信頼できるハッシュ値と比較される（ステップ６４５）。
【００６１】
ＰＣＲ（７）の値が信頼できるハッシュ値のいずれかと一致する場合には、ＰＣＲ（７）はゼロに設定され（ステップ６５５）、いずれの他のＰＣＲ値も異なる場合に備えて、値比較論理（ステップ６１０）が再試行される。
【００６２】
ステップ６４５において、ＰＣＲ（７）の値が信頼できるハッシュ値のいずれとも一致しなかったと判断された場合には、イベント・ログ（２３５）を用いて、入力と関連したメタデータを分析する（例えば、どの特定のキーストローク又はメニュー選択が用いられたかを判断する）（ステップ６５０）。これは、ＰＣＲ（７）についてのイベントの読み取りを必要とするだけなので、イベント・ログ（２３５）全体の構文解析よりずっと簡単なプロセスである。
【００６３】
ステップ６６０において、入力が信頼できるかどうかの判断が行われる。例えば、判断は、入力を、信頼できない入力の既知のリスト又は信頼できる入力の既知のリストと照合することによって行われる。
【００６４】
例えば、管理されるシステム（２００）と関連した厳格なポリシーが、対話型コマンド・プロンプトを決して使用しないこと、及び、メニュー・ナビゲーションだけが有効であることを要求することがある。このような場合には、信頼できる入力は、例えば対話型コマンド・プロンプトの呼び出しをもたらさない１組のキーストロークを含む。例えば、数字「９」を用いて対話型コマンド・プロンプトの呼び出しが行われる場合、メタデータが数字「９」以外のキーストロークと関連付けられていれば、ステップ６６０において、入力は信頼できるものと判断される。
【００６５】
別の例においては、ユーザがメモリに値を書き込もうとしなければ、管理されるシステム（２００）と関連したあまり厳格でないポリシーが、対話型コマンド・プロンプトの使用を許可することがある。値が典型的に「！」の文字を用いてメモリ内に格納された場合であって、メタデータが「！」の文字と関連付けられていない場合には、ステップ６６０において、入力は信頼できるものと判断される。
【００６６】
入力が信頼できると判断された場合には、ＰＣＲ（７）と関連した入力の計測値が、信頼できるハッシュ値のリストに付加される（ステップ６６５）−従って、将来において、その特定の入力の使用により、必要以上に警告が発せられることはない。その後、ＰＣＲ（７）はゼロに設定され（ステップ６５５）、いずれかの他のＰＣＲ値も異なる場合に備え、値比較論理（ステップ６１０）が再試行される。
【００６７】
入力が信頼できないと判断された場合には、管理されるシステム（２００）は信頼できないものとみなされる（ステップ６３５）。
【００６８】
本発明の好ましい実施形態の方法の全て又は一部は、方法のステップを実行するように構成された論理要素を含む論理装置又は複数の論理装置において適切かつ有用に具体化できること、及び、こうした論理要素は、ハードウェア・コンポーネント、ファームウェア・コンポーネント、又はこれらの組み合わせを含むことができることが、当業者には明らかであろう。
【００６９】
同様に、本発明の好ましい実施形態による論理構成の全て又は一部は、方法のステップを実行するための論理要素を含む論理装置において適切に具体化できること、及び、こうした論理要素は、例えば、プログラム可能な論理アレイ又は特定用途向け集積回路における論理ゲートのようなコンポーネントを含むことができることも、当業者には明らかであろう。このような論理構成は、例えば、固定の又は伝送可能なキャリア媒体を用いて格納及び伝送することができる仮想ハードウェア記述言語を用いて、論理構造体をこうしたアレイ又は回路内に一時的又は永続的に確立するための使用可能化要素（enabling element）においてさらに具体化することもできる。
【００７０】
上述の方法及び構成はまた、１つ又は複数のプロセッサ（図示せず）上で実行されているソフトウェアにおいて完全に又は部分的に適切に実行することもできること、及び、ソフトウェアは、磁気ディスク又は光学ディスク等のような、あらゆる適切なデータ・キャリア（同様に図示せず）上に支持される１つ又は複数のコンピュータ・プログラム要素の形態で提供できることが理解されるであろう。同様に、データ伝送のためのチャネルは、全ての記述のストレージ媒体、並びに、有線又は無線信号搬送媒体のような信号搬送媒体を含むことができる。
【００７１】
本発明は、コンピュータ・システムと共に用いるためのコンピュータ・プログラム製品としてさらに適切に具体化することができる。こうした実装は、例えば、ディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、又はハードディスクなどのコンピュータ可読媒体のような有形媒体上に固定された、又は、モデム若しくは他のインターフェース・デバイスを介して、これらに限定されるものではないが、光学若しくはアナログ通信回線を含む有形媒体上で、又はこれらに限定されるものではないが、マイクロ波、赤外線若しくは他の伝送技術を含む無線技術を用いて明白にコンピュータ・システムに伝送可能な、一連のコンピュータ可読命令を含むことができる。一連のコンピュータ可読命令は、ここで既述した機能の全て又は一部を具体化する。
【００７２】
当業者であれば、このようなコンピュータ可読命令は、多くのコンピュータ・アーキテクチャ又はオペレーティング・システムと共に用いるための多数のプログラミング言語で書くことができることを理解するであろう。さらに、このような命令は、これらに限定されるものではないが、半導体、磁気、又は光学を含む現在若しくは将来のあらゆるメモリ技術を用いて格納することができ、或いは、これらに限定されるものではないが、光学、赤外線、又はマイクロ波を含む現在若しくは将来のあらゆる通信技術を用いて伝送することができる。このようなコンピュータ・プログラムは、例えば収縮包装された（shrink-wrapped）ソフトウェアなどの、添付の印刷文書又は電子文書を有する取り外し可能媒体として配布することができ、例えばシステムＲＯＭ又は固定ディスク上などにコンピュータ・システムを予めインストールすることができ、或いは、例えばインターネット又はワールド・ワイド・ウェブのようなネットワーク上のサーバ又は電子掲示板から配布することができると考えられる。
【００７３】
代替案においては、本発明の好ましい実施形態は、コンピュータ・インフラストラクチャ内に配備され、そこで実行されるときに、コンピュータ・システムに、説明した方法の全てのステップを実行させるように動作可能なコンピュータ・プログラム・コードを配備するステップを含む、サービスを配備するコンピュータ実施の方法の形態で実現することができる。
【００７４】
当業者には、本発明の範囲から逸脱することなく、上記の例示的な実施形態に多くの改善及び変更をなし得ることが明らかであろう。
【符号の説明】
【００７５】
１００：環境
１０５、３０５：管理システム
１１０、３１０：エミュレータ
１１５、３２５：データベース
１２０、２００：管理されるシステム
１２５、２２５：ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）
２０５：ユーザ空間プログラム
２１０：オペレーティング・システム
２１５：ファームウェア
２１７：対話型コンポーネント
２２０：Ｃｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  ｆｏｒ  Ｍｅａｓｕｒｅｍｅｎｔ（ＣＲＴＭ）
２３０：ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）
２３５：イベント・ログ
【図１】
2013538404.tif 000004
【図２】
2013538404.tif 000005
【図３】
2013538404.tif 000006
【図４】
2013538404.tif 000007
【図５】
2013538404.tif 000008
【図６】
2013538404.tif 000009
【手続補正書】
【提出日】平成25年3月25日(2013.3.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
起動プロセスの際に対話型コンポーネントの使用を認証するための方法であって、
前記対話型コンポーネントの使用を判断することに応答して、関連した対話型入力を読み取るステップと、
前記入力を信頼すべきかどうかを判断するステップと、
前記入力を信頼すべきであると判断することに応答して、前記入力を処理して信頼できる暗号値を作成するステップと
を含み、
後続の対話型入力を読み取ることに応答して、前記後続の対話型入力を前記信頼できる暗号値の１つ又は複数と照合して、前記後続の対話型入力が信頼できるかどうかを判断するステップをさらに含む方法。
【請求項２】
ＰＣＲを前記入力に割り当てるステップと、
前記入力を前記割り当てられたＰＣＲにｅｘｔｅｎｄ命令を用いて書き込むステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記信頼できる暗号値と関連したメタデータを生成するステップをさらに含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記後続する対話型入力が信頼できる暗号値に一致することに応答して、前記対話型コンポーネントと関連したシステムが信頼できると判断するステップ
をさらに含む、前記請求項のいずれかに記載の方法。
【請求項５】
前記後続の対話型入力が信頼できる暗号値に一致しないことに応答して、関連したイベント・ログ・エントリを構文解析するステップと、
前記イベント・ログ・エントリを既知の入力のデータ構造と照合するステップと、
をさらに含む、前記請求項のいずれかに記載の方法。
【請求項６】
前記イベント・ログ・エントリが前記既知の入力のデータ構造に一致しないことに応答して、前記対話型コンポーネントと関連したシステムが信頼できないと判断するステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記イベント・ログ・エントリが前記既知の信頼できる入力のデータ構造に一致することに応答して、前記後続の対話型入力と関連した暗号値を、前記信頼できる暗号値を含むデータ構造に付加するステップをさらに含む、請求項５に記載の方法。
【請求項８】
前記入力を信頼すべきかどうかを判断するステップは、
前記入力を既知の入力のデータ構造と比較するステップをさらに含む、前記請求項のいずれかに記載の方法。
【請求項９】
起動プロセスの際に対話型コンポーネントの使用を認証するための装置であって、
前記対話型コンポーネントの使用の判断に応答して、関連した対話型入力を読み取るための手段と、
前記入力を信頼すべきであるかどうかを判断するための手段と、
入力を信頼すべきであるという判断に応答して、前記入力を処理して信頼できる暗号値を作成するための手段と、
を備え、
後続の対話型入力を読み取ることに応答して、前記後続の対話型入力を前記信頼できる暗号値の１つ又は複数と照合して、前記後続の対話型入力が信頼できるかどうかを判断するための手段
をさらに備える装置。
【請求項１０】
請求項１から請求項８のいずれか１項に記載の方法の全てのステップをコンピュータに実行させる、コンピュータ・プログラム。
【国際調査報告】
2013538404.tif 000010
2013538404.tif 000011
2013538404.tif 000012