(57)【要約】アタッカに攻撃のための情報を与えることなく、プラットフォームが信頼できるものであることを示すことができる技術を提供する。【課題】【解決手段】構成レジスタと、構成レジスタの内容に対し、与えられた付加値を用いて所定の操作を施し、これによって得られる値について、所定のハッシュ関数を適用してハッシュ値を取得し、該ハッシュ値を構成レジスタの新たな内容とする拡張処理を行う手段と、プラットフォームを構成する所定の構成要素について順次、所定の測定を行って該構成要素に対応する測定値を取得し、該測定値を付加値として拡張処理手段により拡張処理を行う測定拡張手段（ステップＳ１〜Ｓ４）とを備えたプラットフォーム構成測定装置において、ランダム値を付加値として拡張処理手段により拡張処理を行うランダム拡張手段（ステップＳ５）を設ける。【選択図】図３
2005301550.tif 000002
【特許請求の範囲】
【請求項１】
レジスタと、
前記レジスタの内容に対し、与えられた付加値を用いて所定の操作を施し、これによって得られる値について、所定のハッシュ関数を適用してハッシュ値を取得し、該ハッシュ値を前記レジスタの新たな内容とする拡張処理を行う手段と、
プラットフォームを構成する所定の構成要素について順次、所定の測定を行って該構成要素に対応する測定値を取得し、該測定値を前記付加値として前記拡張処理手段により拡張処理を行う測定拡張手段とを備えたプラットフォーム構成測定装置において、
ランダム値を前記付加値として前記拡張処理手段により前記拡張処理を行うランダム拡張手段を具備することを特徴とするプラットフォーム構成測定装置。
【請求項２】
前記ランダム拡張手段は、前記ランダム値を付加値とする拡張処理を、所定のタイミングで繰り返し行うものであることを特徴とする請求項１に記載のプラットフォーム構成測定装置。
【請求項３】
前記測定値を付加値とする拡張処理の後、前記ランダム値を付加値とする拡張処理が行われることを特徴とする請求項１に記載のプラットフォーム構成測定装置。
【請求項４】
各拡張処理の履歴を記録したログを作成する手段を有することを特徴とする請求項１に記載のプラットフォーム構成測定装置。
【請求項５】
前記レジスタ、及び測定値による拡張処理は、ＴＣＧの仕様書に規定されているＰＣＲレジスタ及び拡張処理であることを特徴とする請求項１に記載のプラットフォーム構成測定装置。
【請求項６】
コンピュータを、請求項１のプラットフォーム構成測定装置を構成する各手段として機能させることを特徴とするプラットフォーム構成測定プログラム。
【請求項７】
拡張処理手段が、レジスタの内容に対し、与えられた付加値を用いて所定の操作を施し、これによって得られる値について、所定のハッシュ関数を適用してハッシュ値を取得し、該ハッシュ値を前記レジスタの新たな内容とする拡張処理を行う手順と、
測定拡張手段が、プラットフォームを構成する所定の各構成要素について順次、所定の測定を行って該構成要素に対応する測定値を取得し、該測定値を前記付加値として前記拡張処理手順により前記拡張処理を行う手順とを備えたプラットフォーム構成測定方法において、
ランダム拡張手段が、ランダム値を前記付加値として前記拡張処理手順により前記拡張処理を行う手順を具備することを特徴とするプラットフォーム構成測定方法。
【請求項８】
請求項１のプラットフォーム構成測定装置と、
クライアントからのノンスを伴う認証要求に応じ、該装置のレジスタの内容を、該装置における各拡張処理の内容を記録したログとともに、電子署名を付して第三者機関に送信する手段と、
この送信に応じて該第三者機関から送られてくる、付随する前記レジスタの内容に係るプラットフォームの構成が信頼できることを証明する電子署名付きの証明書を受信する手段と、
受信した証明書を、前記ノンス及びレジスタの内容に電子署名を付したものとともに前記クライアントに対して送信する手段とを具備することを特徴とするプラットフォーム構成認証装置。
【請求項９】
コンピュータを、請求項８のプラットフォーム構成認証装置を構成するプラットフォーム構成測定装置及び各手段として機能させることを特徴とするプラットフォーム構成認証プログラム。
【請求項１０】
送信手段が、クライアントからのノンスを伴う認証要求に応じ、請求項１のプラットフォーム構成測定装置のレジスタの内容を、該装置における各拡張処理の内容を記録したログとともに、電子署名を付して第三者機関に送信する手順と、
受信手段が、この送信に応じて該第三者機関から送られてくる、付随する前記レジスタの内容に係るプラットフォームの構成が信頼できることを証明する電子署名付きの証明書を受信する手順と、
送信手段が、この受信した証明書を、前記ノンス及びレジスタの内容に電子署名を付したものとともに前記クライアントに対して送信する手順とを具備することを特徴とするプラットフォーム構成認証方法。
【請求項１１】
請求項８のプラットフォーム構成認証装置から送られてくるレジスタの内容及びログを受信する手段と、
受信したレジスタの内容及びログに基づき、前記レジスタの内容に係るプラットフォームの構成が信頼できることを検証する手段と、
証明書に付随する前記レジスタの内容に係るプラットフォームの構成が信頼できるものであることを証明する証明書を、電子署名を付して前記プラットフォーム構成証明装置に送信する手段とを具備することを特徴とするプラットフォーム構成証明装置。
【請求項１２】
前記検証手段は、前記ログに記録されているプラットフォームの構成が信頼できるものであるか否か、及び、前記ログに記録されている各拡張処理を再現して得たレジスタ値と前記レジスタの内容とが一致するか否かに基づき、前記検証を行うものであることを特徴とする請求項１１に記載のプラットフォーム構成証明装置。
【請求項１３】
コンピュータを、請求項１１のプラットフォーム構成証明装置を構成する各手段として機能させることを特徴とするプラットフォーム構成証明プログラム。
【請求項１４】
受信手段が、請求項８のプラットフォーム構成認証装置から送られてくるレジスタの内容及びログを受信する手順と、
検証手段が、受信したレジスタの内容及びログに基づき、前記レジスタの内容に係るプラットフォームの構成が信頼できることを検証する手順と、
送信手段が、証明書に付随する前記レジスタの内容に係るプラットフォームの構成が信頼できるものであることを証明する証明書を、電子署名を付して前記プラットフォーム構成証認証置に送信する手順とを具備することを特徴とするプラットフォーム構成証明方法。
【請求項１５】
請求項１のプラットフォーム構成測定装置と、
要求に応じ、該装置のレジスタの内容を要求者に送信する手段と、
該装置における各拡張処理を記録したログを、前記要求者の属性に応じた制限を付して、前記要求者に送信する手段とを具備することを特徴とするプラットフォーム構成開示装置。
【請求項１６】
コンピュータを、請求項１５のプラットフォーム構成開示装置を構成する各手段として機能させることを特徴とするプラットフォーム構成開示プログラム。
【請求項１７】
送信手段が、要求に応じ、請求項１のプラットフォーム構成測定装置のレジスタの内容を要求者に送信する手順と、
送信手段が、該装置における各拡張処理を記録したログを、前記要求者の属性に応じた内容的制限を付して、前記要求者に送信する手順とを具備することを特徴とするプラットフォーム構成開示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラットフォームの構成が信頼できることを示すためのプラットフォーム構成測定装置、プログラム及び方法、プラットフォーム構成認証装置、プログラム及び方法、プラットフォーム構成証明装置、プログラム及び方法、並びに、プラットフォーム構成開示装置、プログラム及び方法に関する。
【背景技術】
【０００２】
コンピュータのセキュリティ向上を目的とした法人組織の業界ワーキング・グループであるＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）の仕様書は、不正手段による機密データの読み取りや改ざんを防止する耐タンパー性を有するハードウェアコンポーネントを定義している（非特許文献１〜５参照）。このコンポーネントはトラステッド・プラットフォーム・モジュール（ＴＰＭ：Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ；以下、「ＴＰＭモジュール」という。）と呼ばれているセキュリティ・チップであり、コンピューティング・プラットフォームに関連する種々のセキュリティ・サービスを提供するものである。ＴＰＭモジュールは、既に多くのパーソナル・コンピュータに組み込まれており、サーバやモバイル・デバイスを含む他のプラットフォームに融合されつつある。
【０００３】
ＴＰＭモジュールが提供するサービスの１つとして、ＴＣＧの用語でアテステーション（ａｔｔｅｓｔａｔｉｏｎ）と呼ばれているものがある。このサービスは、コンピュータが、ハードウェア及びソフトウェアの構成を測定し、正確な測定値を、第三者に対し、信頼し得る情報としてレポートするものである。この情報は、サービスを提供するプラットフォームが信頼できるものであるか否かを知りたい者にとって有用なものである。
【０００４】
ＴＰＭモジュールによる構成の測定結果はＴＰＭモジュール内のプラットフォーム構成レジスタ（ＰＣＲｓ：Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｅｒｓ；以下、「ＰＣＲレジスタ」という。）内に、ＰＣＲ値として格納される。アテステーションの要求を受けたとき、ＴＰＭモジュールはＰＣＲ値のディジタル署名を生成し、ＰＣＲ値及びディジタル署名の双方を、要求者に返す。これにより要求者は、そのＴＰＭモジュールを信頼する場合には、プラットフォームに関するいくらかの属性についての非常に正確な信頼できる情報を有することができる。
【０００５】
【非特許文献１】TPM Main, Part 1 Design Principles, Specification Version 1.2,October 2003,インターネット＜ＵＲＬ：http://www.trustedcomputinggroup.org＞
【非特許文献２】TPM Main, Part 2 TPM Structures, Specification Version 1.2, October2003,インターネット＜ＵＲＬ：http://www.trustedcomputinggroup.org＞
【非特許文献３】TPM Main, Part 3 Commands, Specification Version 1.2, October 2003,インターネット＜ＵＲＬ：http://www.trustedcomputinggroup.org＞
【非特許文献４】TCG Software Stack (TSS), Specification, Version 1.1, August 2003,インターネット＜ＵＲＬ：http://www.trustedcomputinggroup.org＞
【非特許文献５】TCG PC Specific, Implementation Specification, Version 1.1, August2003,インターネット＜ＵＲＬ：http://www.trustedcomputinggroup.org＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＴＰＭモジュール内にＰＣＲレジスタは多くは設けられていない。ＴＣＧの仕様書においては、最小個数として１６個のＰＣＲを設けることが規定されているが、その多くは特定の用途のために予約されている。このため、各ＰＣＲレジスタに対して新たな情報を追加的に記録することができるように、記録に際しては、各ＰＣＲレジスタのＰＣＲ値を、ＰＣＲ拡張と呼ばれる特殊な処理により更新するようにしている。この処理を、次式で示す。
【数１】
2005301550.tif 000003
ここで、ｊは各ＰＣＲレジスタを区別するインデックスである。つまり、各ＰＣＲレジスタにおいて新たな付加値により拡張が行われると、新たなＰＣＲ値は、旧ＰＣＲ値と付加値とを連結した値の暗号ハッシュ値となる。ブートシーケンスの間、プラットフォームは、順次実行されるソフトウェアコンポーネントのハッシュ値を付加値として、各ＰＣＲレジスタについて絶えず拡張を行う。この間、プラットフォームは、すべての拡張について、ログを採取する。
【０００７】
しかしながら、このようにしてＰＣＲレジスタに蓄えられる詳細な構成情報はアタッカ（攻撃者）にとって非常に役に立つ。かかる情報から、アタッカはプラットフォームに対してどのようなアタックツールが効果的かということや、プラットフォームはいつ構成が変更されたかということを直ちに知ることができるからである。
【０００８】
本発明の目的は、このような従来技術の問題点に鑑み、アタッカに攻撃のための情報を与えることなく、プラットフォームが信頼できるものであることを示すことができる技術を提供することにある。
【課題を解決するための手段】
【０００９】
この目的を達成するため、本発明に係るプラットフォーム構成測定装置は、構成レジスタと、構成レジスタの内容に対し、与えられた付加値を用いて所定の操作を施し、これによって得られる値について、所定のハッシュ関数を適用してハッシュ値を取得し、該ハッシュ値を構成レジスタの新たな内容とする拡張処理を行う手段と、プラットフォームを構成する所定の各構成要素について順次、所定の測定を行って該構成要素に対応する測定値を取得し、該測定値を付加値として拡張処理手段により拡張処理を行う測定拡張手段とを備える。そして、ランダム値を付加値として拡張処理手段により拡張処理を行うランダム拡張手段を具備することを特徴とする。
【００１０】
また、本発明に係るプラットフォーム構成測定方法は、拡張処理手段が、構成レジスタの内容に対し、与えられた付加値を用いて所定の操作を施し、これによって得られる値について、所定のハッシュ関数を適用してハッシュ値を取得し、該ハッシュ値を構成レジスタの新たな内容とする拡張処理を行う手順と、測定拡張手段が、プラットフォームを構成する所定の各構成要素について順次、所定の測定を行って該構成要素に対応する測定値を取得し、該測定値を付加値として拡張処理手順により拡張処理を行う手順とを備える。そして、ランダム拡張手段が、ランダム値を付加値として拡張処理手順により拡張処理を行う手順を具備することを特徴とする。
【００１１】
また、本発明に係るプラットフォーム構成測定プログラムは、コンピュータを、上記プラットフォーム構成測定装置を構成する各手段として機能させ、又はコンピュータに、上記プラットフォーム構成測定方法を構成する各手順を実行させることを特徴とする。
【００１２】
ここで、プラットフォームとしては、たとえば、コンピュータシステムを構成するハードウェアやソフトウェアの環境が該当する。構成レジスタとしては、たとえば、ＴＣＧ仕様書で規定されているＰＣＲレジスタが該当する。所定の操作としては、たとえば、構成レジスタの内容に対し、付加値を連結する操作が該当する。ハッシュ関数としては、たとえば、ＳＨＡ−１（セキュア・ハッシュ・アルゴリズム１）が該当する。所定の構成要素としては、たとえば、各種ソフトウェアコンポーネントやハードウェアコンポーネントが該当する。所定の測定としては、たとえば、ソフトウェアコンポーネントのハッシュ値を取得することや、ハードウェアコンポーネントのレジスタに記録されている製品名やバージョン番号を取得したり、そのハッシュ値を取得したりすることや、ハードウェアに組み込まれているマイクロコードやファームウェアのハッシュ値を取得することが該当する。
【００１３】
この構成において、プラットフォームの各構成要素について測定が行われ、測定値を付加値とする拡張処理が順次行われる間、各拡張処理では、構成レジスタの内容に対し、付加値を用いた所定の操作が施され、これによって得られる値についてのハッシュ値が構成レジスタの新たな内容とされる。この各構成要素の測定に基づく拡張処理が完了したときの構成レジスタの値は、各構成要素の測定値を正確に反映したものとなる。したがって構成レジスタの値がアタッカに知られることは、アタッカに対し、プラットフォームの攻撃を容易に行うための情報を与えるおそれがある。
【００１４】
これに対し、本発明では、ランダム拡張手段を設けるようにしたため、測定値に基づく拡張処理に加え、ランダム値を付加値として拡張処理を行うことができる。このランダム値による拡張処理は、使用したランダム値を知ることができない場合には、構成レジスタの値を、まったく無意味なものとする。したがって、ランダム値による拡張処理を行った後は、構成レジスタの値のみがアタッカに知られても、アタッカに対して有用な情報を与えることはない。一方、正当権限者に対しては、構成レジスタの値とともに、使用したランダム値を提供することにより、さらにはランダム値による拡張処理を行う前の構成レジスタの値や各拡張処理における付加値に関する情報を含む履歴を記録したログを提供することにより、プラットフォームの各構成要素に関する情報を提供することができる。
【００１５】
本発明の好ましい態様においては、ランダム値を付加値とする拡張処理は、所定のタイミングやランダムなタイミングで繰り返し行われる。また、順次の測定による拡張処理は主にプラットフォームにおけるブートストラップ時に行われ、その後、ランダム値を付加値とする拡張処理が行われる。各拡張処理に際しては、各拡張処理の内容、たとえば処理を行った時刻、測定の対象、付加値、ランダム値による拡張かどうか等を記録したログが作成される。構成レジスタ、及び測定値による拡張処理としては、たとえば、ＴＣＧの仕様書に規定されているＰＣＲレジスタ及び拡張処理を適用することができる。
【００１６】
また、本発明に係るプラットフォーム構成認証装置、方法及びプログラムは、送信手段により、クライアントからのノンスを伴う認証要求に応じ、上述のプラットフォーム構成測定装置のレジスタの内容を、該装置における各拡張処理の内容を記録したログとともに、電子署名を付して第三者機関に送信する手順と、受信手段により、この送信に応じて該第三者機関から送られてくる、付随する前記レジスタの内容に係るプラットフォームの構成が信頼できることを証明する電子署名付きの証明書を受信する手順と、送信手段により、この受信した証明書を、前記ノンス及びレジスタの内容に電子署名を付したものとともに前記クライアントに対して送信する手順とを実行するものであることを特徴とする。これによれば、クライアントに対し、プラットフォームの構成が信頼できることを、構成を特定する情報を提供することなく、示すことができる。
【００１７】
また、本発明に係るプラットフォーム構成証明装置、方法及びプログラムは、受信手段により、上述のプラットフォーム構成認証装置から送られてくるレジスタの内容及びログを受信する手順と、検証手段により、受信したレジスタの内容及びログに基づき、前記レジスタの内容に係るプラットフォームの構成が信頼できることを検証する手順と、送信手段により、証明書に付随する前記レジスタの内容に係るプラットフォームの構成が信頼できるものであることを証明する証明書を、電子署名を付して前記プラットフォーム構成証認証置に送信する手順と行うものであることを特徴とする。検証手段は、前記ログに記録されているプラットフォームの構成が信頼できるものであるか否か、及び、前記ログに記録されている各拡張処理を再現して得たレジスタ値と前記レジスタの内容とが一致するか否かに基づき、前記検証を行うことができる。
【００１８】
また、本発明に係るプラットフォーム構成開示装置、方法及びプログラムは、送信手段により、要求に応じ、上述のプラットフォーム構成測定装置のレジスタの内容を要求者に送信する手順と、送信手段により、該装置における各拡張処理を記録したログを、前記要求者の属性に応じた内容的制限を付して、前記要求者に送信する手順とを行うものであることを特徴とする。このように、要求者に応じてログへのアクセスを制御することによって、たとえば、プラットフォームにおけるウェブサービスを使用することを望んでいる既知のクライアントに対しては、そのウェブサービスに関連する構成レジスタに付随するログ部分を見ることのみを認めるようにすることができる。また、未知の要求者に対してはログへの如何なるアクセスをも拒否することができる。一方、プラットフォーム自身がその構成を検査する場合、ログへは制限なくアクセスできるので、何ら制限なく、構成の確認を行うことができる。
【発明の効果】
【００１９】
本発明によれば、構成レジスタの内容を、それのみでは無意味なものとすることができる。つまり、ログの補助がある場合のみ、構成レジスタの内容を意味のあるものとすることができる。したがって、ログへのアクセスを制御することによって、プラットフォームの構成に関する情報の提供を制御することができる。
【発明を実施するための最良の形態】
【００２０】
図１は本発明の一実施形態に係るプラットフォームの構成を示す。このプラットフォームは同図に示すように、電源装置１、各種アドオンカード２、ケース３、ハードディスク４、フロッピディスク５、及びマザーボード６を備える。マザーボード６はＣＰＵ７、メモリ８、各種エンベッデドデバイス９、ＰＯＳＴ（パワーオンセルフテスト）ＢＩＯＳ、プラットフォームエクステンションその他のエンベッデドファームウェア１０、ＰＳ／２、ＵＳＢ、ＩＤＥ等のインタフェース１１、そして、信頼できる構造区画であるトラステッドビルディングブロック１２を有する。
【００２１】
トラステッドビルディングブロック１２はＴＣＧ仕様書で定義されたＴＰＭモジュール１３及びＣＲＴＭ（Ｃｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  ｆｏｒ  Ｍｅａｓｕｒｅｍｅｎｔ）１４を含んでいる。ＴＰＭモジュール１３はセキュリティの確保やプライバシの保護を実現する基本的機能を提供するセキュリティ・チップであり、内部には、その機能を実現するためのプロセッサ等のほか、プラットフォームを構成する各構成要素に関する測定結果が格納されるＰＣＲレジスタが設けられている。ＣＲＴＭ１４はプラットフォームのリセット時にプラットフォームの制御を獲得する実行可能なコンポーネントである。
【００２２】
図２はプラットフォームにおけるソフトウェアの構成を階層的に示す。この構成は、各種のアプリケーション２５、アプリケーション２５及びデバイス相互間のアクセス機能等を提供するＢＩＯＳ２１、基本的な制御機能を有するＯＳ２３、ＯＳ２３をロードして起動させるためのブートローダ２２、ＯＳ２３及びアプリケーション２５間のインタフェース等を提供するオペレーティングシステムサービス２４を含む。オペレーティングシステムサービス２４はＴＣＧ仕様書で規定されているＴＳＳ（ＴＣＧサポートソフトウェア）３０を含む。ＴＳＳ３０はＴＰＭ１３及びログファイル２９にアクセスするための各種ＡＰＩ（アプリケーションプログラムインタフェース）を提供する。
【００２３】
オペレーティングシステムサービス２４上では、Ｊａｖａ（登録商標）プログラムをＯＳ２３上で実行するためのＪａｖａ(登録商標)仮想マシーン２６が稼動する。Ｊａｖａ(登録商標)仮想マシーン２６上では、ウェブサービスフレームワーク２７及びＪａｖａ（登録商標）用のＴＳＳ−ＡＰＩ（アプリケーションプログラムインタフェース）２８が稼動する。ＴＳＳ−ＡＰＩ２８はＪａｖａ（登録商標）アプリケーションに対し、ＴＳＳ３０と同様の機能を提供する。たとえば、オンライン書籍販売アプリケーションをＪａｖａ（登録商標）で記載し、ウェブサービスとして実装することができる。
【００２４】
ＯＳ２３にはユニックスのデーモンプロセスであるＰＣＲサービス３１が設けられている。ＰＣＲサービス３１は、ＴＰＭ１３内に設けられたＰＣＲレジスタ１９のＰＣＲ値を曖昧化させる機能を有する。
【００２５】
この構成において、ブートシーケンスでは、たとえば、ＢＩＯＳ２１のバイナリイメージ、ＯＳブート・ローダ２２、及びＯＳ２３を対象として測定が行われる。ただし、測定とは、測定対象についてハッシュ値を求めること、あるいはさらにログを採取し、そして該当するＰＣＲレジスタ１９について拡張処理を行うことを意味する。すなわち測定に際し、ＴＰＭ１３内の各ＰＣＲレジスタは、各コンポーネントのハッシュ値によって拡張され、拡張処理に関するデータはログファイル２９内に記録される。
【００２６】
ブートシーケンスが完了して、プラットフォームを構成するシステムが動作を開始すると、ＰＣＲサービス３１はＰＣＲレジスタ１９をランダム値で拡張し、拡張処理に関する情報をログファイル２９に記録する。これにより、通常の認証プロセスによってＰＣＲレジスタ１９の内容が第三者によって知られたとしても、ログの補助がなければ、ランダム値による拡張を行う前の意味のあるＰＣＲ値が知られることはなくなる。
【００２７】
図３はＰＣＲレジスタ１９に対する拡張処理の手順を示す。図４はこの手順によりＰＣＲ値が更新される様子を示す。図５はこの手順において採取されるログの内容を示す。ただしここでは、実際のシステムの場合よりかなり単純化した例について示している。ブートシーケンスにおいてｉ番目に測定されるコンポーネントのハッシュ値をｍｉとすると、ｉ番目の拡張による更新後のＰＣＲ値ｐｉは、次式で示される。ハッシュ関数としては、たとえば、ＳＨＡ−１を用いることができる。
【数２】
2005301550.tif 000004
【００２８】
すなわち、ブートシーケンスが開始されると、まず、ステップＳ１において、ＢＩＯＳ２１のブートブロックがＢＩＯＳ２１を測定し、ｋ番目のＰＣＲレジスタ（ＰＣＲｋ）を対象として拡張処理を行う。ただし、ＰＣＲレジスタの初期値はゼロである。このとき、図４に示すように、測定により得られたＢＩＯＳのハッシュ値ｈがｍ１であるとすれば、ブートブロックは、数２式に従い、ゼロにハッシュ値ｍ１を連結した値のハッシュ値ｐ１を新たな値としてＰＣＲｋに格納する。同時にブートブロックは、図５のように、この１番目の拡張処理について、処理を行った時間、測定値ｍ１、及び測定されたＢＩＯＳ２１を特定する記述をログファイル２９に記録する。
【００２９】
この後、ＢＩＯＳ２１による制御に移行すると、ステップＳ２において、ＢＩＯＳ２１は、ＯＳローダ２２を測定する。つまり、ＢＩＯＳ２１は、ＯＳローダ２２のハッシュ値ｍ２を取得し、これを用いて数２式よりｐ２を取得し、これをＰＣＲｋに格納する。また、この拡張処理の履歴を、ログファイル２９に記録する。
【００３０】
この後、ＯＳローダ２２による制御に移行すると、ステップＳ３において、ＯＳローダ２２は、ＯＳ２３を測定する。つまり、ＯＳローダ２２は、ＯＳ２３のハッシュ値ｍ３を取得し、これを用いて数２式よりｐ３を取得し、これをＰＣＲｋに格納する。また、この拡張処理の履歴をログファイル２９に記録する。
【００３１】
ブートシーケンスが完了すると、ＯＳ２３による制御に移行し、ステップＳ４においてＯＳ２３が制御を開始する。またこれと同時に、ＰＣＲサービス３１が動作を開始する。
【００３２】
次に、ステップＳ５において、ＰＣＲサービス３１は、ランダム値ｒ１を取得し、これを用いてＰＣＲレジスタ（ＰＣＲｋ）について拡張処理を行い、その履歴をログファイル２９に記録する。この後、ＰＣＲサービス３１は、システムが稼動している限り、ランダム値ｒｉを用い、ランダムなタイミングで、ステップＳ５の処理を繰り返す。
【００３３】
ここで、ブートシーケンス完了時点におけるＰＣＲｋの値はｐ３である。この値は、アタッカにとっては、依然として意味のある情報である。しかしながら、ＰＣＲサービス３１によりランダム値ｒ１を用いて拡張され、曖昧化されたときのＰＣＲ値ｐx1は、図５に示すようなログにより補完されない限り、意味のないものとなる。正当な確認者、たとえば後述の図６における信頼できる第三者機関は、ログ中の記録に基づいて各コンポーネントの完全性を確認することができ、かつＰＣＲ値ｐx1が、ランダム値ｒ１による拡張の結果であることを確認することができる。
【００３４】
図６はクライアントが、オンラインサービス提供者が有する図１のプラットフォームが信頼できることを、ログ２９にアクセスすることなく、曖昧化されたＰＣＲ値のみから確認する方法を示す。まず、クライアント６１がノンスｎをサービス提供者６２のプラットフォームに送り、認証要求を行う。するとこれに応じて、サービス提供者６２のプラットフォームは、その署名鍵Ｋｓｅｒを用いて署名したログ２９及びＰＣＲ値を、信頼できる第三者機関（ＴＴＰ：Ｔｒｕｓｔｅｄ  Ｔｈｉｒｄ  Ｐａｒｔｙ）６３の証明装置に送る。なおこの証明装置は、図１に示されるものと同様のプラットフォームを用いて構成することができる。
【００３５】
第三者機関６３の証明装置は受け取ったログ及びＰＣＲ値を評価し、（１）ログにより示されるプラットフォームの構成が信頼できること、及び（２）ＰＣＲ値がログによって予想される値と合致することを確認する。この確認が得られた場合、第三者機関６３の証明装置はサービス提供者６２の署名鍵Ｋｓｅｒ及びＰＣＲ値を保証する、署名鍵ＫＴＴＰで署名した証明書を発行する。サービス提供者６２のプラットフォームは、発行された証明書を、ノンスｎ及びＰＣＲ値を連結し、署名鍵Ｋｓｅｒで署名したものと共に、クライアント６１に送る。クライアント６１は送られてきた証明書等に基づき、サービス提供者６２のプラットフォームが信頼できるものであることを認識することができる。ただし、ＰＣＲ値は曖昧化されているので、クライアント６１はプラットフォームの構成については、何ら情報を得ることはできない。
【００３６】
これによれば、オンラインサービスの提供に当り、権限のある者に対しては使用するプラットフォームの構成を保証するとともに、権限のない者に対しては、かかる情報を曖昧にしておくことができる。たとえば、図６におけるサービス提供者６２がオンライン書籍販売業者であり、クライアント６１がその顧客であるとする。顧客はクレジットカードの番号を送信するに先立ち、（１）書籍販売業者はそれ自身が主張する者に相違ないこと、及び（２）提供されるサービスは、安全であると知られている構成を有するコンピュータ・プラットフォーム上で稼動していることを確認することができる。これにより顧客は、クレジットカードの番号が、書籍販売業者のサーバから盗まれることがないという、より大きな確信を得ることができる。その際、書籍販売業者は、そのプラットフォームのソフトウェア構成の分析を行うことを、権限のある顧客に対しては、ログ２９を提供することにより、許容することができる。一方、未知の者に対してはログ２９を提供しないようにしておくことができる。つまり、書籍販売業者は、その誰もが見ることができるＰＣＲレジスタの値が、権限のない者によって解読されるのを防止することができる。
【００３７】
また、サーバのプラットフォームはリブートなしに長期間稼働する傾向にある。この場合、アタッカが、図６のような認証メカニズムを用いてＰＣＲレジスタの内容を異なる時刻に取得し、単に比較することによって、任意の時間の間にプラットフォームの構成が切り替わったかどうかを確認することができるおそれもある。このことは、ソフトウェアコンポーネントにおいて新たな脆弱性が発見され、かつ認証におけるＰＣＲ値が、セキュリティパッチがリリースされてから変更されていない場合に問題を生じさせる。プラットフォームの構成について如何なる変更も行われていないということは、脆弱性が治癒していないことを示すからである。特に脆弱性が、共通に使用されるソフトウェアコンポーネントにおける重大な欠陥にあるとすれば、アタッカは脆弱性が表面化してから構成が何ら変更されていないサーバのみを攻撃することにより、その脆弱性を狙った攻撃の成功率を高めることができる。アタッカは、ＰＣＲ値の意味を理解する必要なく、異なる時刻に取得したＰＣＲ値を単に比較するだけで、この種のアタックをしかけることができる。
【００３８】
しかしながら、本実施形態によれば、図３のステップＳ５において、ランダムな時間間隔で、ランダム値によるＰＣＲ値の拡張を行うようにしているので、このようなアタックを防止することができる。一方、ランダム値ｒｉによる拡張処理のログは図５のようにして記録されるので、正当な確認者に対してはこのログを提供することができる。これにより、正当な確認者は、最後のＰＣＲ値がランダム値ｒｉによる拡張処理を繰り返した結果としての値であることを確認することができる。
【００３９】
一方、要求に応じ、ＰＣＲレジスタ１９の内容を要求者に送信する際に、各拡張処理を記録したログ２９を、要求者の属性に応じた内容的制限を付して、要求者に送信するようにしてもよい。すなわち、十分な数のＰＣＲレジスタが利用できるならば、プラットフォームを種々の目的で利用するユーザに対し、目的に応じた必要最小限の情報のみを提供するようにすることができる。
【００４０】
たとえば、ある第１のユーザはプラットフォームのウェブサーバを用いることのみを希望し、別の第２のユーザはアプリケーションサーバにのみ関心があるとする。この場合には、第１ユーザはプラットフォームがアプリケーションサーバをも提供していることを知る必要はない。第２ユーザはウェブサーバの存在に気付く必要はない。
【００４１】
ここで、６番目のＰＣＲレジスタであるＰＣＲ６がブート及びカーネルの構成に関する情報を保持し、ＰＣＲ７がウェブサーバ及び関連する構成ファイルの測定値に関する情報を保持し、ＰＣＲ８がアプリケーションサーバの測定値に関する情報を保持するものとする。第１ユーザはまず、プラットフォームにアクセスし、相互認証プロトコルに従った認証手続に参加する。次にプラットフォームは第１ユーザに対し、図６に示されるように、通常の認証情報を付与する。その際、プラットフォームは、ログ２９に基づき、ＰＣＲ６及びＰＣＲ７に関係する情報のみを含む特別のイベントログを生成して送信する。その場合、第１ユーザはＰＣＲ８の現在の値を見ることはできるが、その値の意味を理解する術はなく、必要性もない。
【００４２】
なお、本発明は上述実施形態に限定されることなく、適宜変形して実施することができる。たとえば、上述においては、プラットフォームの構成を測定するに際し、ソフトウェアコンポーネントのハッシュ値を取得するようにしている。しかしこれに限らず、ハードウェアコンポーネントのレジスタに記録されている製品名、バージョン番号等を取得したり、そのハッシュ値を取得したりするようにしてもよい。また、ハードウェアに組み込まれているマイクロコードやファームウェアのハッシュ値を取得するようにしてもよい。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態に係るプラットフォームの構成を示すブロック図である。
【図２】図１のプラットフォームにおけるソフトウェアの構成を階層的に示す図である。
【図３】図１のプラットフォームにおけるＰＣＲレジスタに対する拡張処理の手順を示すフローチャートである。
【図４】図３の手順によりＰＣＲ値が更新される様子を示す図である。
【図５】図３の手順において採取されるログの内容を示す図である。
【図６】図１のプラットフォームが信頼できることを、ログにアクセスすることなく、曖昧化されたＰＣＲ値のみから確認する方法を示す図である。
【符号の説明】
【００４４】
１：パワーサプライ、２：アドオンカード、３：ケース、４：ハードディスク、５：フロッピディスク、６：マザーボード、７：ＣＰＵ、８：メモリ、９：エンベッデドデバイス、１０：エンベッデドファームウェア、１１：インタフェース、１２：トラステッドビルディングブロック、１３：ＴＰＭ、１４：ＣＲＴＭ、１９：ＰＣＲレジスタ、２１：ＢＩＯＳ、２２：ＯＳブートローダ、２３：ＯＳ、２４：ＯＳシステムサービス、２５：アプリケーション、２６：Ｊａｖａ（登録商標）仮想マシーン、２７：ウェブサービスフレームワーク、２８：Ｊａｖａ（登録商標）用ＴＳＳアプリケーションインタフェース、２９：ログ、３０：ＴＣＧサポートソフトウェア、６１：クライアント、６２：サービス提供者、６３：信頼できる第三者機関。
【図１】
2005301550.tif 000005
【図２】
2005301550.tif 000006
【図３】
2005301550.tif 000007
【図４】
2005301550.tif 000008
【図５】
2005301550.tif 000009
【図６】
2005301550.tif 000010