(57)【要約】【課題】文書作成装置が、ログ文書等、複数の時刻情報を記載する電子文書にタイムスタンプを利用する場合、トラフィックの増加や、各装置の内部リソース消費が増大する。【解決手段】文書作成装置1が、起動時に自装置内の各ソフトウェアのハッシュ値を計算し、ハッシュ値保持部71及び計測ログ文書保持部44内に同ハッシュ値を格納する。文書作成装置1は、複数回、時刻配信装置に接続して時刻情報を入手し、ログ文書及び計測ログ文書に記載する。文書作成装置1は、ログ文書及び計測ログ文書及び耐タンパデバイス63内の電子署名付きハッシュ値情報（計測補助文書）、を文書受信装置に送信する。文書受信装置は、文章群内のハッシュ値や電子署名の整合性を検証し、ハッシュ値から文書作成装置1内のソフトウェア動作環境を確認し、装置内で時刻情報が正しく管理されているかを判定する。【選択図】図7
2009010911.tif 000002
【特許請求の範囲】
【請求項１】
処理部と記憶部と耐タンパデバイスとを有する文書作成装置と、時刻配信装置と、文書受信装置とが通信路を介して接続される認証システムであって、
前記文書作成装置の前記処理部は、
前記文書作成装置の起動時において内部で起動するすべてのソフトウェアモジュールのハッシュ値を計算し、前記記憶部に前記ハッシュ値及び前記ハッシュ値を識別する情報を格納し、前記耐タンパデバイスの記憶領域に前記ハッシュ値を格納させるため前記耐タンパデバイスに送信し、
前記記憶部に一定の間隔で増加する時刻情報を記憶し、電子文書を作成した場合、記憶中の前記時刻情報を前記電子文書に追記し、
前記時刻配信装置から最新時刻情報を受信し、記憶中の前記時刻情報を前記最新時刻情報で上書き記憶し、前記最新時刻情報を前記電子文書に追記し、
前記最新時刻情報を前記電子文書に追記した直後に前記耐タンパデバイスに電子署名の実行を要求し、
要求を受けた前記耐タンパデバイスは、
前記記憶領域に格納された前記ハッシュ値を結合して一つの計測補助情報とし、前記計測補助情報を含む情報に対し、保有する鍵を用いて電子署名を実行して電子署名値を得、当該計測補助情報と、当該電子署名値と、前記鍵に対応する公開鍵証明書とを前記処理部に出力し、
前記処理部は、受信した前記計測補助情報、前記電子署名値、及び前記最新時刻情報とから計測補助文書を作成する
認証システム。
【請求項２】
請求項１記載の認証システムであって、
前記処理部は、前記耐タンパデバイスに電子署名の実行を要求する際に、前記記憶部に格納したログ情報を前記耐タンパデバイスに送信し、
前記耐タンパデバイスは、前記ログ情報と前記計測補助情報とを結合した情報に対し前記電子署名を実行する
認証システム。
【請求項３】
請求項１記載の認証システムであって、
前記文書作成装置は、前記ログ情報を結合したログ文書と、前記記憶部に格納された前記ハッシュ値及び前記ハッシュ値を識別する情報を結合した計測ログ文書とを作成し、
前記ログ文書、前記計測ログ文書、前記計測補助文書、及び前記公開鍵証明書を前記文書受信装置に送信し、
前記文書受信装置は、ネットワークに接続される通信部を有し、前記文書作成装置より前記通信部を介して、前記ログ文書、前記計測ログ文書、前記計測補助文書、及び前記公開鍵証明書を受信する
認証システム。
【請求項４】
請求項３記載の認証システムであって、
前記文書受信装置は、電子署名の真正性を検証する機能、公開鍵証明書の真正性を検証する機能、ハッシュ値を計算・比較する機能、及びセキュリティポリシ適合性を検証する機能を実行する制御部を更に有し、
前記制御部は、
前記計測補助文書に付与されている前記電子署名値の真正性を検証し、受信した前記公開鍵証明書の真正性を検証し、前記計測ログ文書に記載されている複数の前記ハッシュ値と前記計測補助文書に記載されている複数の前記ハッシュ値の間に矛盾がないかどうかを検証し、前記文書受信装置内に記憶された参照計測文書に記載されている複数のハッシュ値と前記計測ログ文書に記載されている複数の前記ハッシュ値がすべて一致するかを検証し、且つ前記文書受信装置内に記憶されたセキュリティポリシに対して前記計測ログ文書が違反していないかを検証する
認証システム。
【請求項５】
処理部と記憶部と耐タンパデバイスと通信部とを有する文書作成装置であって、
前記処理部は、
電子文書を作成し、
前記処理部内で起動するすべてのソフトウェアモジュールのハッシュ値を計算し、前記耐タンパデバイスの記憶領域に前記ハッシュ値を格納し、前記記憶部に前記ハッシュ値及び前記ハッシュ値を識別する情報を格納し、
前記記憶部に一定の間隔で増加する時刻情報を記憶し、
前記記憶部で記憶中の前記時刻情報を前記電子文書に追記し、
前記通信部を介して、時刻配信装置から最新時刻情報を受信し、
前記記憶部に記憶中の前記時刻情報を、取得した前記最新時刻情報で上書き記憶し、
前記最新時刻情報を前記電子文書に追記し、
前記最新時刻情報を前記電子文書に追記した直後に前記耐タンパデバイスに電子署名実行を要求し、
前記電子署名実行によって得られる電子署名付き文書を、前記耐タンパデバイスから受信する
文書作成装置。
【請求項６】
請求項５記載の文書作成装置であって、
前記処理部は、前記耐タンパデバイスに対し、前記電子署名実行を要求する際、前記電子文書に係わるログ情報を前記耐タンパデバイスに送信し、
前記耐タンパデバイスは、前記耐タンパデバイスの前記記憶領域に格納された全ての前記ハッシュ値を結合した計測補助情報と前記ログ情報とを結合した情報に対して前記電子署名実行を行う
文書作成装置。
【請求項７】
請求項６記載の文書作成装置であって、
前記処理部は、前記耐タンパデバイスから、前記電子署名付き文書として、前記計測補助情報、前記電子署名実行で得られた電子署名値、及び前記電子署名実行に対応する公開鍵証明書とを受信する
文書作成装置。
【請求項８】
請求項７記載の文書作成装置であって、
前記処理部は、前記記憶部に格納された前記ハッシュ値及び前記ハッシュ値を識別する情報を結合して計測ログ文書を作成し、前記耐タンパデバイスから受信した前記計測補助情報と前記電子署名値と前記最新時刻情報とから計測補助文書を作成し、
前記ログ情報を結合したログ文書、前記計測ログ文書、前記計測補助文書、及び前記公開鍵証明書を、前記通信部を介してネットワークに送信する
文書作成装置。
【請求項９】
制御部と記憶部と通信部とを有し、前記通信部を介して電子文書を受信する文書受信装置であって、
前記制御部は、
電子署名の真正性を検証し、
公開鍵証明書の真正性を検証し、
複数のハッシュ値が記載されている第一の電子文書に対して、前記ハッシュ値を結合した情報を引数としてハッシュ関数を施し、第二の電子文書に記載されているハッシュ値を再現できるかどうかを検証し、
複数のハッシュ値が記載されている前記第一、第二の電子文書に対して、記載されている複数の前記ハッシュ値がすべて一致するか否かを確認する
文書受信装置。
【請求項１０】
請求項９記載の文書受信装置であって、
前記制御部は、前記通信部を介して、文書作成装置が作成した前記第一の電子文書を受信し、前記記憶部に予め保持された前記第二の電子文書との間で、記載されている複数の前記ハッシュ値がすべて一致するか否かを確認する
文書受信装置。
【請求項１１】
被管理装置と管理装置とが通信路を介して接続される認証システムであって、
前記被管理装置は、処理部と記憶部と通信部と耐タンパデバイスとを有し、
前記被管理装置の前記処理部は、
前記被管理装置起動時において自身内部で起動するすべてのソフトウェアモジュールのハッシュ値を計算し、
前記耐タンパデバイスの記憶領域に前記ハッシュ値を格納し、
前記記憶部に前記ハッシュ値および前記ハッシュ値を識別する情報を格納し、
前記記憶部及び前記耐タンパデバイスの前記記憶領域に保持する情報種別、及び、前記被管理装置が前記管理装置に送信する情報種別に関し、通信前に前記管理装置と情報共有し、
起動時に前記情報共有に従う情報を、前記記憶部及び前記耐タンパデバイスの前記記憶領域に保持し、保持された前記情報共有に従う情報のみを前記管理装置に送信し、
前記管理装置は、制御部と記憶部と通信部とを有し、
前記管理装置の前記制御部は、
前記被管理装置からネットワーク接続要求を受信した後、前記被管理装置との前回通信時において受信した前記耐タンパデバイスの前記記憶領域内の情報を、保持しているかどうかを確認する
ことを特徴とする認証システム。
【請求項１２】
請求項１１記載の認証システムであって、
前記管理措置の前記制御部は、
前記被管理装置との前回通信時において受信した前記耐タンパデバイスの前記記憶領域内の情報を保持している場合には、前記被管理装置に対し、前記耐タンパデバイスの前記記憶領域が有する情報、及び前記被管理装置が作成した文書を、前記管理装置に送るよう要求し、
保持していない場合には、前記被管理装置に対し、前記被管理装置の前記記憶部が有する情報、及び前記耐タンパデバイスの前記記憶領域が有する情報及び前記被管理装置が作成した文書を、前記管理装置に送るよう要求する、
ことを特徴とする認証システム。
【請求項１３】
請求項１２記載の認証システムであって、
前記管理装置が、前記被管理装置との前回通信時において受信した前記耐タンパデバイスの前記記憶領域内の情報を保持している場合において、
前記管理装置の前記制御部は、
保持している前記情報と、新たに前記被管理装置より受信した前記耐タンパデバイスの前記記憶領域が有する情報の同一性を検証し、
同一である場合には、前記被管理装置が作成した文書を受理し、
同一でない場合には、前記被管理装置に対して、前記耐タンパデバイスの前記記憶領域が保持する情報、前記被管理装置の前記記憶部が保持する情報、及び前記被管理装置が作成した文書を送信するよう要求する、
ことを特徴とする認証システム。
【請求項１４】
耐タンパデバイスを有する被管理装置を管理する管理装置であって、
前記被管理装置の耐タンパデバイスの記憶領域が有する情報を受信する通信部、前記通信部が受信した前記情報を記憶する記憶部、及び制御部を有し、
前記制御部は、
前記記憶部が、前記被管理装置との前回通信時において受信した耐タンパデバイスの前記記憶領域内の情報を記憶している場合には、前記耐タンパデバイスの前記記憶領域内の情報、及び前記被管理装置が作成した文書を前記被管理装置に要求し、
前記情報を記憶していない場合には、前記被管理装置の前記記憶部内の情報、及び前記耐タンパデバイスの前記記憶領域内の情報、及び前記被管理装置が作成した前記文書を前記被管理装置に要求する、
ことを特徴とする管理装置。
【請求項１５】
請求項１４記載の管理装置であって、
前記制御部は、
前記管理装置の前記記憶部が、前記被管理装置との前回通信時において受信した前記耐タンパデバイスの記憶領域内の情報を記憶している場合に、前記管理装置の前記記憶部に記憶している情報と、新たに前記被管理装置から受信した情報の同一性を検証し、前記検証が成功した場合には、前記被管理装置からログ文書を受理し、前記検証が失敗した場合には、前記被管理装置の前記記憶部内の情報、前記耐タンパデバイスの前記記憶領域内の情報、及び前記被管理装置が作成した前記文書を前記被管理装置に要求する、
ことを特徴とする管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻配信装置より時刻を受信した、文書作成装置などの被管理装置が、時刻を追記した文書を管理装置に送信する際の、時刻の真正性を示す技術、並びに文書を受信した管理装置が、システム管理者の意図した通りに被管理装置が動作しているかを確認する技術に関する。
【背景技術】
【０００２】
現在の多くの端末が、時刻情報を保持し、時刻情報をあらゆる種類のデータに自動的に組み込んでいるため、ほぼすべての電子文書に時刻情報が記載されている。しかし、現状のシステムにおいて、端末を使用するユーザもしくはユーザの意図しないソフトウェアが端末上の時刻情報や文書に記載された時刻情報を改ざんすることは容易であるため、電子文書作成者が電子文書受信者に対して時刻の真正性を保証することが難しい、という問題が存在した。
【０００３】
非特許文献1において、上記課題を解決するタイムスタンプと呼ばれる技術が説明されている。この技術によれば、電子文書作成者と電子文書受信者間で電子文書をやり取りする際において、電子文書作成者が当該電子文書を、タイムスタンプサービスを提供する第三者に送信し、当該第三者が当該電子文書に時刻情報を追記し、当該電子文書に電子署名を施し、当該電子文書を電子文書作成者に返信することにより、電子文書作成者が電子文書受信者に対して当該電子文書がその時刻に存在したことを示すとともに、当該電子文書が改ざんされていないことを保証することが可能になる。なお、電子文書受信者は、この第三者が上記電子文書に付与する時刻は正しい情報であることを、あらかじめ知っておく必要がある。
【０００４】
また、システム管理者が、自分の管理下にある装置が想定どおりに動作しているかを遠隔地から確認しなければならない場合が多々存在する。例えば、管理者がある装置によって作成されたログ情報を信用するためには、管理者は、ログ情報を作成するソフトウェアモジュール群が正しく動作しているということを確認しなければならない。それを実現する手段の一つが、TPM（Trusted Platform Module）を用いたTrusted Computing技術である。例えば、TPMを用いて、装置内のソフトウェアが改ざんされていないことを検証する手段に関する文献としては特許文献1が存在する。当文献によれば、ある装置が自身内部で動作するすべてのソフトウェアのハッシュ値をハードディスクドライブ(HDD)等の補助記憶装置及びTPM内に格納した後、管理者最寄の別の装置に当該ハッシュ値情報すべてを送ることにより、管理者は遠隔地にある装置の信頼性を検証することが可能となる。
【０００５】
【非特許文献１】RFC3161 タイムスタンププロトコル
【特許文献１】特開2005-301550号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のタイムスタンプサービスにおいては、電子文書作成者の作成する電子文書が、ログ文書等、複数の時刻情報が記載される電子文書である場合、一つの時刻情報を記載しようとする度に文書作成装置が第三者装置に接続する必要がある。そのため、電子文書内に記載される時刻情報の数が増えるごとに文書作成装置と第三者装置間のトラフィックが増大し、他の通信の伝送効率が低下する。また、文書作成装置が通信を頻繁に行うため、文書作成装置は他のアプリケーションを正常な速度で動作させることができなくなる。更に、第三者が電子署名を頻繁に行うため、第三者装置から文書作成装置への返信が遅くなり、電子文書作成者は電子文書作成に多量の時間を要する。
【０００７】
更に、上記の特許文献１では、装置は内部に存在するすべてのソフトウェアモジュールのハッシュ値を取得し、保存しなければならない。そのため、特定用途の専用装置や特定の携帯電話やHDDを持たないパーソナルコンピュータ（PC）など、書き込み可能な記憶容量が潤沢にない端末の場合では、それらのハッシュ値情報すべてを保存することが難しい場合がある。また、同装置が帯域の非常に小さいネットワークに接続されている場合、ハッシュ値情報すべてを対向装置に送信すると非常に時間を要してしまうという可能性がある。
【０００８】
本発明の目的は、電子文書作成者が時刻情報を電子文書に記載する度に第三者装置に接続することなく、また、第三者装置が上記電子文書に電子署名を施すことなく、電子文書作成者が、電子文書に記載された時刻情報の真正性を、電子文書受信者に対して保証する認証システム及び装置を提供することにある。
【０００９】
本発明の他の目的は、書き込み可能記憶容量を潤沢に持たない装置を用いる場合や、帯域の非常に小さいネットワークに接続されている装置を用いる場合であっても、同装置が正しく動作していることを管理者が検証する認証システム及び装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明においては、その好適な一例としての認証システムを、データの読み・書き・記憶の機能、及び、電子署名の機能、及び、耐タンパ機能、を有する耐タンパデバイスを搭載し、更にネットワーク接続機能、データ及び時刻情報の読み・書き・記憶の機能、記憶中の時刻情報を一定の間隔で増加する機能、自身起動時において自身内部で起動するすべてのソフトウェアモジュールのハッシュ値を計算する機能、耐タンパデバイスの記憶領域にこのハッシュ値を格納する機能、及び、自身の記憶領域にこのハッシュ値およびハッシュ値を識別する情報を格納する機能を有する被管理装置と、ネットワーク接続機能、データの読み・書き・記憶の機能、電子署名の真正性を検証する機能、公開鍵証明書の真正性を検証する機能、ハッシュ値を計算する機能、及び、2つの文書内容の相違を比較する機能を有する管理装置と、ネットワーク接続機能及びデータの記憶の機能を有する時刻配信装置とから構成する。
【００１１】
そして、この被管理装置は、同装置起動時において内部で起動するすべてのソフトウェアモジュールのハッシュ値を計算し、耐タンパデバイスの記憶領域にこのハッシュ値を格納し、内部の記憶領域にこのハッシュ値及びこのハッシュ値を識別する情報を格納し、一定の間隔で増加する時刻情報を記憶し、電子文書を作成し、記憶中の時刻情報を作成した電子文書に追記し、時刻配信装置に接続して最新時刻情報を受信し、記憶中の時刻情報をこの最新時刻情報で上書き記憶し、この最新時刻情報を電子文書に追記し、この最新時刻情報を電子文書に追記した直後に耐タンパデバイスにログ情報を送信して、電子署名実行を要求する。
【００１２】
この要求を受けた耐タンパデバイスが、内部の記憶領域にある複数のハッシュ値情報を結合して一つの計測補助情報とし、受信したログ情報とこの計測補助情報を結合した情報に対して保有する鍵を用いて電子署名を実行し、この計測補助情報と、電子署名値と、上述の鍵に対応する公開鍵証明書とを被管理装置に返す。
【００１３】
また、被管理装置は、耐タンパデバイスから受信した計測補助情報と電子署名値、及び最新時刻情報とから電子署名付きハッシュ値情報である計測補助文書を作成する。そして、ログ情報を結合したログ文書、記憶領域に格納されているハッシュ値及びハッシュ値を識別する情報を結合した計測ログ文書、計測補助文書、及び公開鍵証明書を管理装置に送信する。
【００１４】
更に、管理装置がネットワークを介して、これらログ文書、計測ログ文書、計測補助文書、及び公開鍵証明書を受信する。この管理装置は、受信した計測補助文書に付与されている電子署名の真正性を検証し、公開鍵証明書の真正性を検証し、計測ログ文書に記載されている複数のハッシュ値と電子署名付きハッシュ値情報である計測補助文書に記載されている複数のハッシュ値の間に矛盾がないかどうかを検証し、管理装置の記憶領域内に記憶された参照計測文書に記載されている複数のハッシュ値と、計測ログ文書に記載されている複数のハッシュ値がすべて一致するかを検証し、管理装置の記憶領域内に記憶されたセキュリティポリシに対して計測ログ文書が違反していないかを検証することにより、計測ログ文書の完全性検証を行う。
【００１５】
上記他の目的を達成するため、本発明においては、その好適な他の一例としての認証システムを、データの読み・書き・記憶の機能、及び、電子署名の機能、及び、耐タンパ機能、を有する耐タンパハードウェア装置を搭載し、ネットワーク接続機能、及び、データ及び時刻情報の読み・書き・記憶の機能、及び、自身起動時において自身内部で起動するすべてのソフトウェアモジュールのハッシュ値を計算する機能、及び、耐タンパデバイスの記憶領域にこのハッシュ値を格納する機能、及び、自身の記憶領域にハッシュ値およびハッシュ値を識別する情報を格納する機能を有する被管理装置と、ネットワーク接続機能、及び、データの読み・書き・記憶の機能、及び、電子署名の真正性を検証する機能、及び、公開鍵証明書の真正性を検証する機能、及び、ハッシュ値を計算する機能、及び、2つの文書内容の相違を比較する機能、を有する管理装置とから構成する。
【００１６】
そして、この認証システムにおいて、被管理装置が、同装置内の記憶領域及び耐タンパデバイス内の記憶領域に保持する情報の種別、及び、被管理装置が管理装置に送信する情報の種別に関し、通信前に管理装置と情報を共有し、被管理装置が、起動時に情報共有に従う情報を記憶領域及び前記耐タンパデバイス内の記憶領域に保持し、同情報のみを管理装置に送信する。
【００１７】
さらに、この認証システムでは、管理装置が、被管理装置からネットワーク接続要求を受信した後、被管理装置との前回通信時において受信した耐タンパデバイス内の記憶領域内の情報を、保持しているかどうかを確認し、保持している場合には、管理装置は被管理装置に対し、耐タンパデバイス内の記憶領域が有する情報及び被管理装置が作成した文書を、管理装置に送るよう要求し、
保持していない場合には、管理装置は被管理装置に対し、被管理装置自身の記憶領域が有する情報及び耐タンパデバイス内の記憶領域が有する情報及び被管理装置が作成した文書を、管理装置に送るよう要求する。
【００１８】
更にまた、この認証システムにおいては、管理装置が、被管理装置との前回通信時において受信した耐タンパデバイス内の記憶領域内の情報を、保持している場合において、管理装置が、保持している情報と、新たに被管理装置より受信した前記耐タンパデバイス内の記憶領域が有する情報の同一性を検証し、同一である場合には、被管理装置が作成した文書を受理し、同一でない場合には、管理装置が被管理装置に対して、耐タンパデバイス内の記憶領域が保持する情報及び被管理装置自身の記憶領域が保持する情報及び被管理装置が作成した文書を送信するよう要求する。
【発明の効果】
【００１９】
本発明によれば、電子文書に複数の時刻情報が記載される場合であっても、被管理装置である文書作成装置発の通信のトラフィックを増大させることがない。更に、第三者装置に電子署名を施してもらうことなく、文書作成装置の負荷を上昇させることなく、文書作成装置が電子文書に記載された時刻情報の真正性を文書受信装置に保証することが可能になる。
【００２０】
また、本発明によれば、書き込み可能な記憶容量を潤沢に持たない被管理装置に対して、同装置の管理者は同装置が正しく動作していることを検証することができる。更に、帯域が小さいネットワークに接続されている装置に対して、管理者は同装置が正しく動作していることを検証することができる。また更に、同装置が正しく動作していることを検証する管理装置において、同検証プロセス実行に要する時間を従来よりも短縮することが可能になる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面を用いて詳細に説明する。
【実施例１】
【００２２】
第一の実施例は、文書作成装置が装置内の各ファイルに対するアクセスログを作成する場合において、このログ文書を安全に文書受信装置に送信することのできる時刻認証システムに関する。
【００２３】
図１は、時刻認証システムの全体構成図である。図中、１はログ文書を作成し、このログ文書を文書受信装置に送信する文書作成装置であり、2は、正確な時刻情報を配信する時刻配信装置であり、3は、文書作成装置1から送信されるログ文書を受信し、ログ文書中の時刻情報の真正性を検証する文書受信装置であり、4はインターネットである。文書作成装置1は、例えば24時間ごとに時刻配信装置2にアクセスし、正しい時刻を受信し、最新時刻情報とする。
【００２４】
図２は、文書作成装置1が作成するログ文書の一例を示す図である。図中の6がログ文書を示す。文書作成装置1は、ユーザ名、ユーザがアクセスしたファイル名、アクセス日時をログ文書6の各行に記載する。また、文書作成装置1は、時刻配信装置2から正しい時刻を受け取った直後に当該時刻をログ文書6中に追記する。図２の7は、2006年12月2日12時00分00秒から2006年12月3日12時00分00秒の間のログ情報を示す。図２に示した例の場合、ログ情報7には時刻配信装置2から受け取った最新時刻情報が含まれている。
【００２５】
図３は、文書作成装置1が作成する計測ログ文書の一例を示す図であり、8が計測ログ文書を示す。計測文書作成装置1は、文書作成装置1内で起動した各ソフトウェアの識別情報（会社名、製品名）と、当該ソフトウェア内のすべてのモジュールの絶対パス情報と、当該モジュールのハッシュ値と、当該ハッシュ値が格納されたPCRの番号と、そのPCRに当該ハッシュ値が格納された順序を示す番号、を計測ログ文書8の各行に記載する。
【００２６】
この各行に記載される、各ソフトウェアの識別情報（会社名、製品名）と、当該ソフトウェア内のすべてのモジュールの絶対パス情報と、当該モジュールのハッシュ値と、当該ハッシュ値が格納されたPCRの番号と、そのPCRに当該ハッシュ値が格納された順序を示す番号が、ハッシュ値を識別する情報となる。例えば、図３において、"PCR[16],1  B社  表計算  /usr/lib/App1/module1.so"
等がハッシュ値を識別する情報に該当する。
【００２７】
なお、このPCRは、TCGの技術要素の一つであり、プラットフォーム・コンフィギュレーション・レジスタ（Platform Configuration Register）の略語であり、情報を保管する機能を有する。本実施例におけるPCRの機能の詳細は後述する。また、文書作成装置1は、時刻配信装置2から正しい時刻を受け取った直後に当該時刻を計測ログ文書8中に追加して記載する。図3中の9は、2006年12月2日12時00分00秒から2006年12月3日12時00分00秒の間の計測ログ情報を示す。図３に示した例の場合は、計測ログ情報9には時刻配信装置2から取得した最新時刻情報が含まれる。
【００２８】
図４は、文書作成装置1が作成する電子署名付きハッシュ値情報である計測補助文書の一例を示す図であり、10が計測補助文書である。文書作成装置1は、各PCRの番号と同番号のPCR中に格納されるハッシュ値を計測補助文書10の各行に記載する。また、文書作成装置1は、時刻配信装置2から正しい時刻を受け取った直後に、後述する方法により計算された電子署名値と、当該時刻を計測補助文書10に追加して記載する。図中の11は、2006年12月2日12時00分00秒から2006年12月3日12時00分00秒の間の計測補助情報を示す。図中の12は、ログ情報7と計測補助情報１１とを結合した連結情報に対する電子署名値を示す。この電子署名値については、後で詳述する。
【００２９】
図５は、後で詳述する図１０の文書受信装置3の補助記憶部208にあらかじめ保存されており、必要に応じて主記憶部211の参照計測文書保持部215に記憶される参照計測文書を示す図であり、図中の13が参照計測文書である。この参照計測文書13は、アプリケーション名、アプリケーションのバージョン、リリース日、出荷企業名、アプリケーションに含まれる各モジュールのフルパス名と当該モジュールのハッシュ値、上記出荷企業による電子署名、から構成される。
【００３０】
図6は、同様に図１０の文書受信装置3の補助記憶部208にあらかじめ保存されおり、必要に応じて主記憶部211のセキュリティポリシ保持部215に記憶されるセキュリティポリシの一例を示す。同図中の14がセキュリティポリシを示し、このセキュリティポリシ14は、文書作成装置1が起動しておくべきソフトウェアの識別子と、文書作成装置が起動しておくべきではないソフトウェアの識別子、の各一覧が記載された文書である。
【００３１】
図７は、文書作成装置1の構成の一実施例を示し、文書作成装置１中に格納されているモジュール構成を示した図である。図中、41はダイナミック・ランダム・アクセス・メモリ（DRAM）等の主記憶部であり、42はログ文書6を記憶する文書保持部であり、43は時刻取得部52が時刻配信装置2から入手した時刻情報を記憶する時刻保持部であり、44は計測ログ文書8を記憶する計測ログ文書保持部であり、45は計測補助文書10と署名鍵に対応する公開鍵証明書を記憶する計測補助文書・証明書保持部である。
【００３２】
46はハード・ディスク・ドライブ(HDD)等の補助記憶装置であり、47はログ文書6を記憶する文書保持部であり、48は時刻取得部52が時刻配信装置2から入手した時刻情報を記憶する時刻保持部であり、49は計測ログ文書8を記憶する計測ログ文書保持部であり、50は計測補助文書10と署名鍵に対応する公開鍵証明書を記憶する計測補助文書・証明書保持部である。
【００３３】
51は中央処理部（CPU）等の制御部であり、52は時刻配信装置2にアクセスして時刻情報を取得する時刻取得部であり、53は時刻保持部43に記憶されている時刻情報を取り出して時刻を一秒ずつ増加させていく時刻カウント部であり、54はログ文書6と計測ログ文書8を作成する文書作成部であり、55は耐タンパデバイス63内の署名実行部68にアクセスして計測補助文書10を作成するための情報を取得する計測補助文書作成部である。56は与えられたコードのハッシュ値を計算し、ハッシュ値を計測ログ文書保持部44及びハッシュ値保持部71に格納するハッシュ値計算・格納部である。なお、後で式を用いて詳述するように、ハッシュ値保持部71に保持されるハッシュ値は、更新により非可逆で圧縮された情報となるため、計測ログ文書保持部44に保持されるオリジナルのハッシュ値は異なるものとなる。これら制御部51の各機能はCPUで実行されるプログラムなどで構成される。
【００３４】
57はネットワークインタフェースカードなどの通信部であり、58はバイオス(BIOS)等のリードオンリーメモリ（ROM）であり、このROM58は、与えられたコードのハッシュ値を計算し、ハッシュ値を計測ログ文書保持部44及びハッシュ値保持部71に格納するハッシュ値計算・格納部59と、文書作成装置1を起動した際に最初に起動するブート・ブロック(Boot Block) 60と、与えられたコードのハッシュ値を計算し、ハッシュ値を計測ログ文書保持部44及びハッシュ値保持部71に格納するハッシュ値計算・格納部61の機能を有する。また、62はキーボードやマウス、ディスプレイ等の入出力部である。なお、ハッシュ値計算・格納部56の機能が制御部51で、ハッシュ値計算・格納部59、61の機能がROM58で実行されるため、制御部51とROM58とを処理部と総称する場合がある。
【００３５】
63はTPMのように物理的攻撃に対する防御機能を持ち、内部の秘密鍵の漏洩を防ぐことを可能にする耐タンパデバイスである。耐タンパデバイス63中、64は不揮発性メモリなどの補助記憶部である。この補助記憶部４６中、65は鍵や公開鍵証明書を記憶する鍵・証明書保持部であり、66は制御部51から送られてくる実行文の種類を解釈する入出力部であり、67は耐タンパデバイス中にあるCPU等の制御部である。
【００３６】
この制御部67中、68は署名対象データ保持部72内のデータに対して鍵・証明書保持部73内の鍵と公開鍵証明書を用いて署名する署名実行部であり、69は署名対象データ保持部72に格納する署名対象データを作成する署名対象データ作成部であり、制御部67で実行されるプログラム等で構成される。
【００３７】
また、70は揮発性メモリ等の主記憶部であり、71はハッシュ値の値を記憶するハッシュ値保持部であり、72は署名対象データ作成部69で作成された署名対象データを記憶する署名対象データ保持部であり、73は鍵・証明書保持部65から取り出した鍵と公開鍵証明書を保持する鍵・証明書保持部である。
【００３８】
図8は、ハッシュ値保持部71の構成の具体例を示した図である。ハッシュ値保持部71は、20バイトの記憶領域24個から構成されている。20バイトは、SHA-1関数を用いて計算されたハッシュ値と同じ大きさなので、SHA-1関数の結果24個をハッシュ値保持部71の各PCRに格納することができる。この24個をそれぞれPCR[0], PCR[1], PCR[2],,,,,,,PCR[23]とラベルする。24個のすべてのPCRの値は、文書作成装置1の再起動と同時に0にリセットされる。文書作成装置1の起動後は、ハッシュ値計算・格納部56、ハッシュ値計算・格納部59及びハッシュ値計算・格納部61は、下記式に従ってハッシュ値保持部71のPCRの値を古い値から新しい値に更新する。
【００３９】
（Ａ）  更新後のPCR[i]の値 ＝ SHA-1( 追加する値 | 更新前のPCR[i]の値 ) 
( i = 0,1,……, 23)
上記のSHA-1（X）は、引数Xに対してSHA-1のハッシュ関数を実行することを意味する。
【００４０】
後で詳述するように、このハッシュ値保持部71内の各PCRの値をもとに計測補助情報１１が作成され、署名対象データ作成部69が、この計測補助情報１１をログ情報7と連結し、連結情報を署名対象データとして署名対象データ保持部72に記憶する。
【００４１】
図9は、時刻配信装置2の構成の一例を示し、その内部に格納されているモジュール構成を表した図である。図中、101はネットワークインタフェースカードなどの通信部であり、102はCPU等の制御部であり、103は時刻を配信する時刻配信部であり、例えば制御部102で実行されるプログラムで構成される。104はメモリ等の主記憶部であり、105は時刻を記憶する時刻保持部である。
【００４２】
図10は、文書受信装置3の構成の一実施例を示し、内部に格納されているモジュール構成を表した図である。図中、201はネットワークインタフェースカードなどの通信部であり、202はCPU等の制御部であり、203は計測補助文書10に付与された署名を検証する署名検証部であり、204は公開鍵証明書が文書受信装置3にとって信頼できる公開鍵証明書であるかどうかを検証する証明書検証部であり、205は計測ログ文書8の完全性を検証する計測ログ文書完全性検証部Aであり、206は、計測ログ文書8と参照計測文書13に書かれているハッシュ値を比較することにより、計測ログ文書8の内容が正しいかどうかを確認するための計測ログ文書完全性検証部Bであり、207は計測ログ文書8から収集したソフトウェア情報がセキュリティポリシ14に合致するかどうかを検証するセキュリティポリシ適合性検証部である。これらの各部は、例えば制御部202で実行されるプログラムとして提供される。
【００４３】
208はHDD等の補助記憶部であり、209は参照計測文書13を記憶する参照計測文書保持部であり、210はセキュリティポリシ14を記憶するセキュリティポリシ保持部である。また、211はメモリ等の主記憶部であり、212はログ文書6を記憶する文書保持部であり、213は計測ログ文書8を記憶する計測ログ文書保持部であり、214は計測補助文書10とその署名鍵に対応する公開鍵証明書を記憶する計測補助文書・証明書保持部であり、215は参照計測文書13を記憶する参照計測文書保持部であり、216はセキュリティポリシ14を記憶するセキュリティポリシ保持部である。なお、文書受信装置3は、文書作成装置1と通信する前に、あらかじめ参照計測文書13を複数のソフトウェアベンダのWebサイトから取得し、当該参照計測文書を参照計測文書保持部209に格納しておく。
【００４４】
本実施例では、図1の4をインターネットとしたが、一組織内の場合、4はイントラネットであっても良い。なお、便宜上、両者を通信路、或いはネットワークと呼ぶことがある。
【００４５】
本実施例では、文書作成装置1は、24時間ごとに時刻配信装置2にアクセスしているが、アクセス頻度は文書作成装置1のユーザもしくは装置管理者の設定によって変更可能であり、必ずしも24時間に一度のアクセスに限られるものではない。
【００４６】
本実施例では、ログ文書の例としてログ文書6を取り上げているが、文書作成装置1が時刻配信装置2にアクセスした時刻の時刻情報すべてが含まれていればよく、その条件を満たす限りにおいて、フォーマットはログ文書6のフォーマットに限られるものではない。
【００４７】
本実施例では、ログ文書の例として、文書作成装置1内のファイルへのアクセスログを取り上げているが、必ずしもこれに限られるものではない。
【００４８】
本実施例では、文書作成装置1が作成する文書としてログ文書を例示したが、時刻情報が一回以上記載されている文書であれば、契約文書等のその他の文書であってもかまわない。なお、ログ文書を含め、時刻情報が一回以上記載される文書を、電子文書と呼ぶ場合がある。
【００４９】
本実施例では、計測ログ文書の例として計測ログ文書8を取り上げているが、計測ログ文書8に記載されている内容と同等の内容が記載されている文書であれば、そのフォーマットは計測ログ文書8のフォーマットに限られるものではない。
【００５０】
本実施例では、計測補助文書の例として計測補助文書10を取り上げているが、計測補助文書10に記載されている内容と同等の内容が記載されている文書であれば、そのフォーマットは計測補助文書10のフォーマットに限られるものではない。
【００５１】
本実施例では、参照計測文書の例として参照計測文書13を取り上げているが、参照計測文書13に記載されている内容と同等の内容が記載されている文書であれば、そのフォーマットは参照計測文書13のフォーマットに限られるものではない。
【００５２】
本実施例では、ROM58が文書作成装置1に含まれているが、1つ以上であれば何個存在してもよい。
【００５３】
本実施例では、ハッシュ値保持部71内はPCR24個から構成されるとしているが、文書受信装置3が計測補助文書10を用いて計測ログ文書8の完全性を検証可能である、という条件を満たす限りにおいて、PCRは何個あってもかまわない。
【００５４】
本実施例では、24個のPCRの値は、再起動と同時に0にリセットされるとしたが、他の値にリセットされても良い。またPCRの番号によって異なる値にリセットされても良い。
【００５５】
本実施例では、ハッシュ値計算・格納部56及びハッシュ値計算・格納部59及びハッシュ値計算・格納部61が使用するハッシュ関数として、SHA-1を想定しているが、それ以外のハッシュ関数を用いてもよい。ただし、その場合には、ハッシュ値保持部71内のPCR一つあたりのメモリの大きさは、20バイトではなく、使用するハッシュ関数の値の大きさと等しくなければならない。
【００５６】
本実施例では、耐タンパデバイス63はTPMのバージョン1.2を想定しているが、耐タンパデバイス63に含まれる機能と同等の機能を実装しているものであれば必ずしもTPMではなくてよい。
【００５７】
本実施例では、文書受信装置3による参照計測文書13の取得先を複数のソフトウェアベンダのWebサイトと特定したが、参照計測文書13の取得方法はこれに限定されるものではない。例えば、文書作成装置1と文書受信装置3が同じイントラネット環境にある場合において、イントラネット管理者が、すべてのソフトウェアが全く改ざんされていない状態にあるクリーンな文書作成装置1を作成し、当該文書作成装置から必要なハッシュ値データを入手し、当該ハッシュ値データを元に参照計測文書13を作成し、当該参照計測文書を参照計測文書保持部209に格納する、ことにより上記を実現することは可能である。
【００５８】
次に、第一の実施例における時刻認証システム全体の動作を説明する。
【００５９】
最初に文書作成装置1が、起動し、ハッシュ値計算・格納部56及びハッシュ値計算・格納部59及びハッシュ値計算・格納部61が、後述する方法により、ROM58及び補助記憶部46の内部に存在するすべての実行コードのハッシュ値を計算し、それら全てのハッシュ値を識別する情報であるハッシュ値識別子およびハッシュ値を計測ログ文書保持部44に格納し、それらすべてのハッシュ値をハッシュ値保持部71に格納する。文書作成部54は、ログ文書6を作成し、文書保持部42に記憶する。
【００６０】
時刻取得部52が、通信部57を介して時刻配信装置2に接続して正確な時刻情報を取得する度において、計測補助文書作成部55が、耐タンパデバイスにログ情報7を入力し、図４に示した計測補助情報１１と電子署名値12のような計測補助情報と電子署名値を、耐タンパデバイス63に作成させる。そして、耐タンパデバイス63から作成された計測補助情報と電子署名値と公開鍵証明書を受け取り、計測補助文書・証明書保持部45内の計測補助文書10に、受け取った計測補助情報と電子署名値と時刻情報を追記し、公開鍵証明書を計測補助文書・証明書保持部45に追加格納する。
【００６１】
また、文書作成装置1は、通信部57を介して、ログ文書6と計測ログ文書8と計測補助文書10と公開鍵証明書を文書受信装置3に送信する。図１０の文書受信装置3は、通信部201を介して、これらログ文書6と計測ログ文書8と計測補助文書10と公開鍵証明書を受信し、当該文書をそれぞれ文書保持部212、計測ログ文書保持部213、計測補助文書・証明書保持部214に記憶する。
【００６２】
そして、図１１に示すように、文書受信装置3の制御部202の署名検証部203が、計測補助文書・証明書保持部214内の計測補助文書10の署名検証（ステップ111）を行い、証明書検証部204が、計測補助文書・証明書保持部214内の公開鍵証明書の証明書検証を行い（ステップ113）、計測ログ文書完全性検証部A205が、後述する方法により、計測補助文書・証明書保持部214内の計測補助文書10を用いて計測ログ文書保持部213内の計測ログ文書8の完全性検証Aを行う（ステップ115）。
【００６３】
次に、計測ログ文書完全性検証部B206が、計測ログ文書保持部213内の計測ログ文書8に記載されているソフトウェアの識別子（会社名、製品名）を用いて、参照計測文書保持部209に記憶されている複数の参照計測文書の中から同一のソフトウェア識別子を持つものを検索し、計測ログ文書完全性検証部B206が、上記検索結果に該当する参照計測文書を参照計測文書保持部215にロードし、計測ログ文書完全性検証部Bが、計測ログ文書8内に記載されているモジュール一覧とそれらのハッシュ値が、参照計測文書中に記載されている情報と同一であるかどうかを、参照計測文書保持部215中の参照計測文書すべてに対して完全性検証Bを行う（ステップ117）。
【００６４】
更に、セキュリティポリシ適合性検証部207が、セキュリティポリシ保持部210に存在するセキュリティポリシ14をセキュリティポリシ保持部216にロードし、セキュリティポリシ適合性検証部207は、計測ログ文書8に記載されているすべてのソフトウェア情報がセキュリティポリシに合致するかどうかのセキュリティポリシ適合性検証を行う（ステップ119）。すなわち、セキュリティポリシ14中の含むべきソフトウェアに関する情報すべてを計測ログ文書8が含んでおり、かつ、セキュリティポリシ14中の含んではいけないソフトウェアに関する情報を計測ログ文書8が一切含んでいないかどうかを確認する。
【００６５】
なお、図１１に示すとおり、上記の複数の検証プロセスにおいて、一つでも検証に失敗した場合（ステップ112、114、116、118、120の何れかでNo）には、文書受信装置3は、ログ文書6及び記載されている時刻情報は信頼できない情報であるとみなし、ログ文書6を破棄し（ステップ121）、ログ文書6を受け付けない理由を記したメッセージを文書作成装置1に送信する（ステップ122）。上述した複数の検証の全てについて成功した場合（ステップ112、114、116、118、120の全てがYes）に、検証成功となる（ステップ123）。
【００６６】
また、鍵・証明書保持部65内の公開鍵証明書を発行する認証局（なお、この認証局は、図示していないが、通常、図１のインターネット4に接続されている。）は、鍵ペアが耐タンパデバイス63内部で生成されていること、耐タンパデバイス63から秘密鍵が取り出せないこと、PCRが関係するすべてのプロセスにおいて耐タンパデバイスが期待通りに動作すること、の3つの条件を確認した上で公開鍵証明書を発行する必要がある。さらに、文書受信装置3内の証明書検証部204は、受信した公開鍵証明書が、上記条件を満たす認証局から発行されていることを確認する方法を持つ必要がある。
【００６７】
以上の一連のプロセスを持って、文書作成装置1によるログ文書と計測ログ文書と計測補助文書の作成、及び、文書作成装置1から文書受信装置3への上記文書群と公開鍵証明書の送信、及び、文書受信装置3による上記文書群と公開鍵証明書の完全性検証とセキュリティポリシ適合性の検証、のすべての処理は完了する。これにより、ログ文書に記載されている時刻情報が改ざんされている可能性は十分に低いという理由から、文書受信装置3は、ログ文書6の信頼性を確認することができる。
【００６８】
本実施例では、文書受信装置3が、計測ログ文書8及び計測補助文書10の完全性を検証しているが、必ずしも文書受信装置3が上記の検証プロセスを行わなくても良い。例えば、文書受信装置3は、上記の検証プロセスの一部もしくは全部を、文書受信装置3が信頼するインターネット上もしくはイントラネット上の他の装置に委託しても良い。
【００６９】
本実施例では、図６に示したセキュリティポリシ14をセキュリティポリシの設定例としてとりあげているが、文書受信装置3の管理者はいかなるセキュリティポリシを設定しても良い。
【００７０】
次に、図１２を用い、上記全体動作のうち、ハッシュ値計算・格納部56及びハッシュ値計算・格納部59及びハッシュ値計算・格納部61が、ROM58及び補助記憶部46の内部に存在するすべての実行コードのハッシュ値を計算し、すべてのハッシュ値及びそれらハッシュ値の識別子を計測ログ文書保持部44に格納し、前述の式（Ａ）で更新された全てのハッシュ値をハッシュ値保持部71に格納する、までの動作の詳細を説明する。なお、ハッシュ値計算・格納部56の機能、ハッシュ値計算・格納部59、61の機能が、制御部51とROM58で実行されるため、これらを処理部と総称する場合があることは上述の通りである。
【００７１】
文書作成装置1のユーザが、文書作成装置1の電源をオンにすると、最初にROM58内のBoot Block60が起動する。Boot Block60は、ハッシュ値計算・格納部61を用いて、自分自身の実行コードのハッシュ値を計算し、計測ログ文書保持部44中の計測ログ文書8に当該実行コードの識別子と当該ハッシュ値を記載し、ハッシュ値保持部71のPCR[0]に当該ハッシュ値を格納する。ハッシュ値保持部71では、上記実行コードが複数個のファイルに分割されている場合、前述の式（Ａ）に従ってPCR[0]の値が更新される。
【００７２】
次に、ハッシュ値計算・格納部61は、ROM58内にあるBoot Block60以外の実行コードのハッシュ値を計算し、計測ログ文書保持部44中の計測ログ文書8に当該実行コードの識別子と当該ハッシュ値を記載し、ハッシュ値保持部71のPCR[1]に当該ハッシュ値を格納する。上記実行コードが複数個のファイルに分割されている場合、前述の式（Ａ）に従ってPCR[1]の値が更新される。
【００７３】
次に、Boot Block60は、上記実行コードを実行する。
【００７４】
次に、ハッシュ値計算・格納部59は、補助記憶部46内に格納されているOS及びアプリケーションソフトウェアの各ファイルのうち、OS Loaderに相当する部分の実行コードのハッシュ値を計算し、計測ログ文書保持部44中の計測ログ文書8に当該実行コードの識別子と当該ハッシュ値を記載し、ハッシュ値保持部71のPCR[2]に当該ハッシュ値を格納する。上記実行コードが複数個のファイルに分割されている場合には、前述の式（Ａ）に従ってPCR[2]の値が更新される。
【００７５】
次に、ROM58は、上記実行コードを実行する。
【００７６】
次に、OS Loaderは、補助記憶部46内に格納されているOS及びアプリケーションソフトウェアの各ファイルのうち、OS kernelに相当する部分の実行コードのハッシュ値を計算し、計測ログ文書保持部44中の計測ログ文書8に当該実行コードの識別子と当該ハッシュ値を記載し、ハッシュ値保持部71のPCR[3]に当該ハッシュ値を格納する。上記実行コードが複数個のファイルに分割されている場合には、前述の式（Ａ）に従ってPCR[3]の値が更新される。
【００７７】
次に、OS Loaderは、OS Kernelの実行コードを実行する。
【００７８】
次に、OS Kernelは、補助記憶部46内に格納されているOS及びアプリケーションソフトウェアの各ファイルのうち、PTS(Platform Trust Services)と呼ばれるソフトウェアの実行コードのハッシュ値を計算し、計測ログ文書保持部44中の計測ログ文書8に当該実行コードの識別子と当該ハッシュ値を記載し、PCR[4]に当該ハッシュ値を格納する。上記実行コードが複数個のファイルに分割されている場合には、前述の式（Ａ）に従ってPCR[4]の値が更新される。なお、PTSは、OS Kernelの上位ソフトウェアスタックに存在するすべてのアプリケーションソフトウェアの起動を監視するソフトウェアである。
【００７９】
次に、OS Kernelは、PTSの実行コードを実行する。
【００８０】
次に、PTSは、アプリケーションソフトウェアを呼び出すシステムコールを監視し、該当するシステムコールが発生するごとに、対象のアプリケーションソフトウェアの実行コードのハッシュ値を計算し、計測ログ文書保持部44中の計測ログ文書8に当該実行コードと当該ハッシュ値を記載し、PCR[5]に当該ハッシュ値を格納する。上記実行コードが複数個のファイルに分割されている場合には、前述の式（Ａ）に従ってPCR[5]の値が更新される。また、アプリケーションソフトウェアは、通常、文書作成装置1内に複数存在するため、2つ目以降に起動するアプリケーションソフトウェアの実行コードのハッシュ値が計算された場合であっても、前述の式（Ａ）に従ってPCR[5]の値が更新される。
【００８１】
以上の一連のプロセスを持って、ハッシュ値計算・格納部56及びハッシュ値計算・格納部59及びハッシュ値計算・格納部61が、ROM58及び補助記憶部46の内部に存在するすべての実行コードのハッシュ値を計算し、すべてのハッシュ値及びそれらハッシュ値の識別子を計測ログ文書保持部44に格納し、すべてのハッシュ値をハッシュ値保持部71に格納する、までの動作が完了する。
【００８２】
なお、文書作成装置1内に入り込んだウィルスやスパイウェア等の意図しないソフトウェア等が、アプリケーションソフトウェア起動後に計測ログ文書保持部44中の計測ログ文書8を改ざんすることは容易である。ただし、ハッシュ値保持部71内のPCRの計算式は常に前述した式（Ａ）に従っているため、同ウィルスやスパイウェアがPCRの値を不特定の値に変更することはできても、意図した特定の値に変更することは不可能である。
【００８３】
本実施例では、文書作成装置1の複数のソフトウェアモジュールの起動順序を図12で特定しているが、各ソフトウェアモジュールは必ずしも図12の順序で起動する必要はないことは言うまでもない。
【００８４】
本実施例では、文書作成装置1内で起動するソフトウェアモジュールを図12の通りに特定しているが、起動時に計測されるソフトウェアモジュールの数やROM Boot Blockから各アプリケーションまでの計測ステップの段数は、必ずしも図12の場合と一致しなくてもよい。例えば、ROM がOS Loaderの代わりにPTSやアプリケーションを直接計測してもよい。
【００８５】
本実施例では、PCR[0]、PCR[1]、PCR[2]、PCR[3]、PCR[4]、PCR[5]に、それぞれBoot Block、ROM、OS Loader、OS Kernel、PTS、アプリケーションのハッシュ値が格納されているが、以下の条件を満たす限りにおいて、他の番号のPCRにハッシュ値を格納してもかまわないし、PCRを5つ以上使用してもかまわないし、すべてのハッシュ値を前述の式（Ａ）に従って一つのPCRに格納してもかまわない。すなわち、文書受信装置3が、受信した計測ログ文書8に記載されているハッシュ値を識別する情報であるハッシュ値識別子及びハッシュ値から、後述する方法により、計測補助文書10に記載されているハッシュ値を再現できる、ことが条件となる。
【００８６】
次に、上記全体動作の中で、文書作成装置1が計測補助文書10を作成する際の動作の詳細を説明する。
【００８７】
最初に、計測補助文書作成部55は、文書保持部42内のログ文書6から2006年12月2日12時00分00秒から2006年12月3日12時00分00秒に対応するログ情報7を抽出し、それを署名対象データ作成部69に送信する。次に、署名対象データ作成部69は、ハッシュ値保持部71内の各PCRの値をもとに計測補助情報１１を作成し、当該計測補助情報１１を上記ログ情報7と連結し、当該連結情報を署名対象データとして署名対象データ保持部72に記憶する。次に、署名実行部68は、鍵・証明書保持部65に記憶されている署名用の鍵と公開鍵証明書を、鍵・証明書保持部73にロードする。次に、署名実行部68は、同鍵を用いて署名対象データ保持部72内の署名対象データに対して電子署名を実行し、電子署名値12を作成する。最後に、署名実行部68は、計測補助情報１１と、電子署名値12と、公開鍵証明書を計測補助文書作成部55に送信する。
【００８８】
次に、上記全体動作の中で、文書受信装置3の計測ログ文書完全性検証部A205が、計測補助文書・証明書保持部214内の計測補助文書10を用いて計測ログ文書保持部213内の計測ログ文書8の完全性検証（完全性検証A）を行う際の動作の詳細を、図13を用いて説明する。
【００８９】
図13では、図11に示した文書受信装置3における動作フロー中、計測ログ文書完全性検証部A205による、PCR[16]の値に関する上記2つの文書間の整合性の検証プロセス（ステップ115）が説明されている。
【００９０】
最初に、計測ログ文書完全性検証部Ａ205は、下記計算式に従い、Hash16_calを計算する。
【００９１】
（B）Hash16_cal = SHA(Hash16,N | SHA(Hash16,N-1 | 
…… SHA(Hash16,3 | SHA(Hash16,2 | Hash16,1))…)
次に、計測ログ文書完全性検証部A205は、上記Hash16_calと計測補助情報１１に記載されているPCR[16]の値を比較し、等しいかどうかを確認する。
【００９２】
同様にして、計測ログ文書完全性検証部A205は、PCR[16]以外の他のPCRについても同一の計算及び比較を行い、計測ログ情報9から計算した値と計測補助情報１１に記載されているPCRの値が等しいかどうかを確認し、すべてのPCRの値が等しければ計測ログ情報9は完全であると判断する。
【００９３】
同様にして、計測ログ文書完全性検証部A205は、2006年12月2日12時00分00秒から2006年12月3日12時00分00秒までの期間以外の期間についても同様の計算及び比較を行い、すべて等しければ計測ログ文書8が完全であると判断する。
【００９４】
以上の一連のプロセスを持って、文書受信装置3において、計測ログ文書完全性検証部A205が計測補助文書10を用いて計測ログ文書8の完全性検証を行う、までの動作が完了する。
【実施例２】
【００９５】
次に第二の実施例として、文書作成装置などの被管理装置内のWebサーバモジュールが、装置内のファイルに対するアクセスログを作成する場合において、装置がログ文書を安全に文書受信装置などの管理装置に送信するシステムについて説明する。
【００９６】
システム構成は、実施例１と同様であり、文書作成装置１である被管理装置がログ文書を通信相手である管理装置、すなわち文書受信装置3に送信するシステムである。図中、１はログ文書を作成し、同文書を管理装置に送信する被管理装置であり、なお、本実施例においては、図１における文書作成装置1を被管理装置、文書受信装置2を管理装置と呼ぶ。管理装置3は、被管理装置1から送信されるログ文書及び被管理装置1が保持するソフトウェアのハッシュ値情報を受信し、被管理装置1のソフトウェアが正しく動作していることを検証した上で、同ログ文書を受理する。被管理装置1は、管理装置3へのログ文書を送信する直前にインターネット4を介して時刻配信装置2にアクセスし、正しい時刻を受信する。時刻配信装置2は、第一の実施例同様、図9に示す構成を持ち、インターネット4は、一組織内のイントラネットであっても良いことは言うまでもない。
【００９７】
図14の130は、被管理装置1中で起動しているWebサーバが作成するログ文書である。被管理装置1は、ユーザ名、ユーザがアクセスしたファイル名、アクセス日時をログ文書130の各行に記載する。また、被管理装置1は、時刻配信装置2から正しい時刻を受け取った直後に当該時刻をログ文書130中に追記する。
【００９８】
図15中の131は、被管理装置1が作成する計測ログ文書である。被管理装置1は、被管理装置1内で起動した各ソフトウェアの識別情報（会社名、製品名）と、当該ソフトウェア内のすべてのモジュールの絶対パス情報と、当該モジュールのハッシュ値と、当該ハッシュ値が格納されたPCRの番号と、そのPCRに当該ハッシュ値が格納された順序を示す番号、を計測ログ文書131の各行に記載する。なお、PCRの詳細は上述した。また、本実施例では、被管理装置1はPCR[0]〜PCR[4]及びPCR[16]に関する情報に限って、それらを計測ログとして保存している。
図16中の134は、被管理装置1が作成する計測補助文書である。計測補助文書134は、PCRの番号と、同番号のPCR中に格納されるハッシュ値と、後述の方法により計算された電子署名値、から構成される。
【００９９】
図17中の135は、管理装置3の記憶部に保存されている参照計測文書である。参照計測文書135は、アプリケーション名、アプリケーションのバージョン、リリース日、出荷企業名、アプリケーションに含まれる各モジュールのフルパス名と当該モジュールのハッシュ値、上記出荷企業によって施された電子署名、から構成される。
【０１００】
図18は、被管理装置1の中に格納されているモジュール構成を表した図である。図中、141はDRAMやHDD等の記憶部であり、142は時刻取得・管理部152が時刻配信装置2から入手した時刻情報を記憶する時刻保持部であり、143はログ文書130を記憶する文書保持部であり、144は計測ログ文書131を記憶する計測ログ文書保持部であり、151はCPU等の制御部であり、152は時刻配信装置2にアクセスして時刻情報を取得し、時刻情報のカウントを行う時刻取得・管理部であり、153は、Webサーバ内のモジュールであって、ログ文書130を作成する文書作成部であり、154はファイルのハッシュ値を計算し、ハッシュ値を計測ログ文書保持部144及びハッシュ値保持部171に格納するハッシュ値計算・格納部であり、155は後述のフローチャートに従って必要な書類を作成し、管理装置3との間で情報の送受信を行う文書送信部であり、156は署名実行部168にアクセスして計測補助文書134を取得する計測補助文書作成部であり、157はネットワークインタフェースカードなどの通信部であり、158はBIOS等のROMであり、159は与えられたコードのハッシュ値を計算し、ハッシュ値を計測ログ文書保持部144及びハッシュ値保持部171に格納するハッシュ値計算・格納部であり、160は被管理装置1を起動した際に最初に起動するBoot Blockであり、161は与えられたコードのハッシュ値を計算し、ハッシュ値を計測ログ文書保持部144及びハッシュ値保持部171に格納するハッシュ値計算・格納部であり、162はキーボードやマウス、ディスプレイ等の入出力部である。
【０１０１】
次に、163は物理攻撃に対する防御機能を持ち、内部の秘密鍵の漏洩を防ぐことを可能にする、TPMのような耐タンパデバイスであり、166は制御部151から送られてくる実行文の種類を解釈する入出力部であり、167は耐タンパデバイス中にある制御部であり、168は署名対象データ保持部172内のデータに対して鍵・証明書保持部173内の鍵と公開鍵証明書を用いて署名する署名実行部であり、169 は署名対象データ保持部172に格納する署名対象データを作成する署名対象データ作成部であり、170は揮発性メモリや不揮発性メモリ等の記憶部であり、171はハッシュ値の値を記憶するハッシュ値保持部であり、172は署名対象データを記憶する署名対象データ保持部であり、173は鍵と公開鍵証明書を保持する鍵・証明書保持部である。
【０１０２】
なお、ハッシュ値保持部171の構成は、第一の実施例の図8に示したハッシュ値保持部71と同様の構成を持ち、20バイトの記憶領域24個から構成されている。
【０１０３】
図19は、管理装置3の中に格納されているモジュール構成を表した図である。図中、201はネットワークインタフェースカードなどの通信部であり、202はCPU等の制御部であり、203は計測補助文書14に付与された署名を検証する署名検証部であり、204は被管理装置1より受信した公開鍵証明書が管理装置3にとって信頼できる公開鍵証明書であるかどうかを検証する証明書検証部であり、205は後述する完全性検証部Aであり、206は後述する完全性検証部Bであり、216は後述する完全性検証部Cであり、219は被管理装置1が送信する書類を受信し、後述のフローチャートに従って当該文書を完全性検証部A〜完全性検証部Cに振り分ける文書受信部であり、211はメモリやHDD等の記憶部であり、212はログ文書10を記憶する文書保持部であり、213は計測ログ文書11を記憶する計測ログ文書保持部であり、214は計測補助文書14と公開鍵証明書を記憶する計測補助文書・証明書保持部であり、215は参照計測文書15を記憶する参照計測文書保持部である。なお、管理装置3は、被管理装置1と通信する前に、あらかじめ参照計測文書15を複数のソフトウェアベンダのWebサイトから取得し、当該参照計測文書を参照計測文書保持部215に格納しておく。
【０１０４】
以上の本実施例では、ログ文書の例としてログ文書130を取り上げているが、被管理装置1が時刻配信装置2にアクセスした時刻の時刻情報が含まれていればよく、その条件を満たす限りにおいて、フォーマットはログ文書130のフォーマットに限られるものではない。
【０１０５】
本実施例では、ログ文書130は、被管理装置1内のWebサーバが作成するアクセスログとしているが、ログ文書を作成するアプリケーションは必ずしもWebサーバに限られるものではない。さらに同文書は、契約文書等、時刻情報が記載されている他の文書であってもかまわない。
【０１０６】
本実施例では、計測ログ文書の例として計測ログ文書131を取り上げているが、当該計測ログ文書に記載されている内容と同等の内容が記載されている文書であれば、そのフォーマットは計測ログ文書131のフォーマットに限られるものではない。
【０１０７】
本実施例では、計測ログ文書131は、PCR[0]〜PCR[4]及びPCR[16]に関する計測ログを保持しているが、一般には任意の番号のPCR情報を含んでよい。ただし計測ログ文書131は、管理装置3が要求するPCR情報を含んでいなければならない。また、計測補助文書134に記載されるPCR番号リストは、計測ログ文書131に記載されるPCR番号リストと一致しなくてはならない。なお、本実施例において、計測ログ文書保持部144に記載されるPCRの番号、及び、各番号に記載されるアプリケーション名のリスト、を定義したものを情報種別と呼ぶこととし、被管理装置1と管理装置3はステップ401実行前にこの情報種別を情報共有しておく必要がある。
【０１０８】
本実施例では、計測補助文書の例として計測補助文書134を取り上げているが、計測補助文書134に記載されている内容と同等の内容が記載されている文書であれば、そのフォーマットは計測補助文書134のフォーマットに限られるものではない。
【０１０９】
本実施例では、参照計測文書の例として参照計測文書135を取り上げているが、参照計測文書135に記載されている内容と同等の内容が記載されている文書であれば、そのフォーマットは参照計測文書135のフォーマットに限られるものではない。
【０１１０】
本実施例では、ROM158が被管理装置1に含まれているが、1つ以上であれば何個存在してもよい。ただし、その場合には、被管理装置1起動時にすべてのROM内のハッシュ値が計算され、計測ログ文書保持部144及びハッシュ値保持部171にその値が格納される必要がある。
【０１１１】
本実施例では、ハッシュ値保持部171内はPCR24個から構成されるとしているが、PCRは何個あってもかまわない。
【０１１２】
本実施例では、24個のPCRの値は、再起動と同時に0にリセットされるとしたが、再起動時に他の値にリセットされても良い。また、再起動時に、PCRの番号によって異なる値にリセットされても良い。
【０１１３】
本実施例では、ハッシュ値計算・格納部154及びハッシュ値計算・格納部159及びハッシュ値計算・格納部161が使用するハッシュ関数として、SHA1を想定しているが、それ以外のハッシュ関数を用いてもよい。ただし、その場合には、ハッシュ値保持部171内のPCR一つあたりのメモリの大きさは、20バイトではなく、使用するハッシュ関数の値の大きさと等しくなければならない。
【０１１４】
本実施例では、耐タンパデバイス163はTPM（Trusted Platform Module）のバージョン1.2を想定しているが、耐タンパデバイス163に含まれる機能と同等の機能を実装しているものであれば必ずしもTPMではなくてよい。
【０１１５】
本実施例では、管理装置3による参照計測文書135の取得先を複数のソフトウェアベンダのWebサイトと特定したが、参照計測文書135の取得方法はこれに限定されるものではない。例えば、被管理装置1と管理装置3が同じイントラネット環境にある場合において、イントラネット管理者が、すべてのソフトウェアが全く改ざんされていない状態にある安全な被管理装置を作成し、当該被管理装置から必要なハッシュ値データを入手し、当該ハッシュ値データを元に参照計測文書135を作成し、当該参照計測文書を参照計測文書保持部215に格納する、ことにより上記を実現することは可能である。
【０１１６】
次に、本実施例における被管理装置1の起動プロセスを図20で説明する。
【０１１７】
被管理装置1のユーザが、被管理装置1の電源をオンにすると、ハッシュ値保持部171内のすべてのPCRの値は0にリセットされる。次に、最初にROM158内のBoot Block160が起動し、ハッシュ値計算・格納部161がBoot Block160中のすべてのファイルのハッシュ値を計算し（ステップ301）、計測ログ文書保持部144中の計測ログ文書131に当該ファイルの識別子と当該ハッシュ値を記載し、ハッシュ値保持部171のPCR[0]に当該ハッシュ値を格納する（ステップ302）。当該ファイルが複数個ある場合、下記の式（Ａ）に従ってPCR[0]の値が更新される。
（Ａ）  更新後のPCR[i]の値 ＝ SHA1( 追加する値 | 更新前のPCR[i]の値 ) 
( i = 0,1,……, 23)
上記のSHA1（X）は、引数Xに対してSHA1のハッシュ関数を実行することを意味する。
【０１１８】
次に、ハッシュ値計算・格納部161は、ROM158内にあるBoot Block160以外のすべてのファイルのハッシュ値を計算し（ステップ303）、計測ログ文書保持部144中の計測ログ文書131に当該ファイルの識別子と当該ハッシュ値を記載し、ハッシュ値保持部171のPCR[1]に当該ハッシュ値を格納する（ステップ304）。当該ファイルが複数個ある場合、前述の式（Ａ）に従ってPCR[1]の値が更新される。
【０１１９】
次に、Boot Block160は、当該ファイル群をメインメモリ上にロードし、当該ファイルの実行コードを実行する。
【０１２０】
次に、ハッシュ値計算・格納部159は、記憶部141の不揮発性領域に格納されているファイルのうち、OSの Loaderに相当するすべてのファイルのハッシュ値を計算し（ステップ305）、計測ログ文書保持部144中の計測ログ文書131に当該ファイルの識別子と当該ハッシュ値を記載し、ハッシュ値保持部171のPCR[2]に当該ハッシュ値を格納する（ステップ306）。当該ファイルが複数個ある場合、前述の式（Ａ）に従ってPCR[2]の値が更新される。
【０１２１】
次に、ROM158は、当該ファイル群をメインメモリ上にロードし、OS Loaderを起動する。
【０１２２】
次に、OS Loaderは、記憶部141の不揮発性領域に格納されているファイルのうち、OS kernelに相当するすべてのファイルのハッシュ値を計算し（ステップ307）、計測ログ文書保持部144中の計測ログ文書131に当該ファイルの識別子と当該ハッシュ値を記載し、ハッシュ値保持部171のPCR[3]に当該ハッシュ値を格納する（ステップ308）。当該ファイルが複数個ある場合、前述の式（Ａ）に従ってPCR[3]の値が更新される。
【０１２３】
次に、OS Loaderは、当該ファイル群をメインメモリ上にロードし、OS Kernelを起動する。
【０１２４】
次に、OS Kernelは、記憶部141の不揮発性領域に格納されているファイルのうち、PTS(Platform Trust Services)と呼ばれるソフトウェアに属するすべてのファイルのハッシュ値を計算し（ステップ309）、計測ログ文書保持部144中の計測ログ文書131に当該ファイルの識別子と当該ハッシュ値を記載し、PCR[4]に当該ハッシュ値を格納する（ステップ310）。当該ファイルが複数ある場合、前述の式（Ａ）に従ってPCR[4]の値が更新される。
【０１２５】
次に、OS Kernelは、当該ファイル群をメインメモリ上にロードし、PTSを実行する。
【０１２６】
次に、PTSは、アプリケーションソフトウェアが起動するごとに、当該アプリケーションソフトウェアに属するすべてのファイルのハッシュ値を計算し（ステップ311）、計測ログ文書保持部144中の計測ログ文書131に当該ファイルの識別子と当該ハッシュ値を記載し、ハッシュ値保持部171に当該ハッシュ値を格納する（ステップ312）。
【０１２７】
なお、以上の説明では、PCR[0]、PCR[1]、PCR[2]、PCR[3]、PCR[4]、PCR[16]のみが使用され、それ以外の番号のPCRは使用されていないが、これは先に述べたように被管理装置1と管理装置3の間でステップ401以前に情報共有された情報種別に従う。また、PCR[0]、PCR[1]、PCR[2]、PCR[3]、PCR[4]、PCR[16]のそれぞれにどのような情報が格納されているかに関する定義も情報種別に従う。例えば、Webサーバ及びWebアプリケーションサーバ及びデータベースといったWebアプリケーション関連のソフトウェアのみをPCR[16]に格納する、という具合にアプリケーションソフトウェアが連動して動作するものに関しては同一番号のPCRに前述の式（Ａ）に従ってハッシュ値を格納する。
【０１２８】
上記の情報種別に従えば、他の番号PCR[5]〜PCR[15]、PCR[17]〜PCR[23]に関する情報を計測ログ文書保持部144及びハッシュ値保持部171が保持する必要がなくなり、計測ログ文書保持部144及びハッシュ値保持部171が保持するPCR[0]、PCR[1]、PCR[2]、PCR[3]、PCR[4]、PCR[16]の情報の量も管理装置3が要求する最低限必要なものに限定可能となる。従来は、計測ログ文書保持部144には情報種別に従わない情報まで格納されていたが、情報種別に従う情報のみを計測ログ文書144に記憶することにより、被管理装置1が特定の専用端末や記憶容量の小さい携帯電話などの書き込み可能な記憶容量を潤沢にもたない装置の場合であっても、本実施例の構成を実現可能となる。
【０１２９】
以上の一連のプロセスを持って、ハッシュ値計算・格納部154及びハッシュ値計算・格納部159及びハッシュ値計算・格納部161が、PTSが起動するまでのソフトウェア及びPTS及び管理者が事前指定したアプリケーションソフトウェアのハッシュ値を計算し、当該ファイルの識別値及び当該ハッシュ値を計測ログ文書保持部144に格納し、当該ハッシュ値をハッシュ値保持部171に格納する、までの動作が完了する。
【０１３０】
なお、被管理装置1内に入り込んだウィルスやスパイウェア等のマルウェアが、アプリケーションソフトウェア起動後に計測ログ文書保持部144中の計測ログ文書131を改ざんすることは容易である。ただし、ハッシュ値保持部171内のPCRの計算式は常に前述した式（Ａ）に従っているため、同ウィルスやスパイウェアが意図的にPCRの値を特定の値に変更することは不可能である。
【０１３１】
本実施例では、被管理装置1内にある複数のソフトウェアモジュールの起動順序を図20で特定しているが、各ソフトウェアモジュールは必ずしも図20の順序で起動する必要はない。
【０１３２】
本実施例では、被管理装置1内で起動するソフトウェアモジュールを図20の通りに特定しているが、起動時に計測されるソフトウェアモジュールの数やROM Boot Blockから各アプリケーションまでの計測ステップの段数は、必ずしも図20の場合と一致しなくてもよい。例えば、ROM がOS Loaderの代わりにPTSやアプリケーションのハッシュ値を計算し、計測ログ文書保持部144やハッシュ値保持部171に格納してよい。
【０１３３】
本実施例では、PCR[0]、PCR[1]、PCR[2]、PCR[3]、PCR[4]に、それぞれBoot Block、ROM、OS Loader、OS Kernel、PTSのハッシュ値が格納されているが、管理装置3が被管理装置1より受信する計測ログ文書と計測補助文書を用いて後述の完全性検証A及び完全性検証B及び完全性検証Cを実施可能である限りにおいて、被管理装置1は他の番号のPCRに上記のハッシュ値を格納してもよい。
【０１３４】
本実施例では、PTSが起動するすべてのアプリケーションソフトウェアのハッシュ値を計算し、計測ログ文書保持部144に格納しているが、被管理装置1が特定の専用端末や記憶容量の小さい携帯電話など、書き込み可能な記憶容量を潤沢にもたない装置の場合、被管理装置1は管理装置3が要求する情報以外の情報を計測ログ文書保持部144に保存する必要はない。すなわち、PTSがハッシュ値計算対象とするアプリケーションソフトウェアの種類を限定することは可能である。例えば、上記のWebサーバシステムの動作状況を管理装置3が検証したい場合、PTSは、Webサーバシステムに属するアプリケーションソフトウェアのみに関し、そのハッシュ値を計算し、計測ログ文書保持部144及びハッシュ値保持部171のPCR[16]にその値を保存するようにすればよい。
【０１３５】
次に、被管理装置1が管理装置3にログ文書を送信し、管理装置3が当該ログ文書を受信した後、管理装置3が当該ログ文書の内容を信頼し、受理するまでのプロセスを、管理装置3上でのワークフロー図である図21及び図22を用いて説明する。
【０１３６】
文書送信部155は、管理装置3の文書受信部219に接続要求を送信する（ステップ401）。次に、管理装置3は、当該接続要求を受信する（ステップ402）。次に、文書受信部219は、計測補助文書・証明書保持部214を検索することにより、過去に被管理装置1から受信した計測補助文書を記憶しているかどうかを確認する（ステップ403）。管理装置3が同文書を記憶していない場合（ステップ403でNo）、ステップ416へ進む。
【０１３７】
管理装置3が同文書を記憶している場合（ステップ403でYes）、文書受信部219は、乱数を生成し、文書送信部155に当該乱数を送信すると同時に、ログ文書及び計測補助文書の送信を要求する（ステップ404）。次に、文書送信部155は、当該乱数と当該要求を受信する（ステップ405）。次に、文書送信部155は、ログ文書と計測補助文書を作成する（ステップ406）。
【０１３８】
ログ文書と計測補助文書の作成プロセス（ステップ406）の詳細は次の通りである。最初に文書送信部155は、文書保持部143に記憶されているログ文書130を取り出し、当該文書とステップ405で受信した乱数を連結し、計測補助文書作成部156に当該文書を渡す。次に、計測補助文書作成部156は、当該連結文書を署名実行部68経由で署名対象データ作成部169に送信する。次に、署名対象データ作成部169は、ハッシュ値保持部171内より、ROM Boot Block及びROM及びOS Loader及びOS Kernel及びPTSのハッシュ値情報が格納されているPCR[0]〜PCR[4]の情報と、Webサーバシステムに関係するファイルのハッシュ値情報が格納されているPCR[16]の情報を取り出し、当該情報を上記連結文書と連結し、当該連結情報を署名対象データとして署名対象データ保持部172に記憶する。次に、署名実行部168は、鍵・証明書保持部173に格納されている鍵を用いて署名対象データ保持部172内の署名対象データに対して電子署名を実行し、電子署名値を作成する。最後に、署名実行部168は、当該署名対象データと当該電子署名値を連結して計測補助文書134とし、当該計測補助文書及び公開鍵証明書を計測補助文書作成部156経由で文書送信部155に送信する。以上が、文書送信部155によるログ文書と計測補助文書の作成プロセスの詳細である。
【０１３９】
次に、文書送信部155は、ログ文書130及び計測補助文書134及び公開鍵証明書を文書受信部219へ送信する（ステップ407）。文書受信部219は、当該ログ文書及び当該計測補助文書及び当該公開鍵証明書を受信する（ステップ408）。次に、署名検証部203が、ステップ404において生成された乱数を文書受信部219により受け取った後、計測補助文書・証明書保持部214内の計測補助文書134の署名検証を行う（ステップ409）。署名検証に失敗した場合（ステップ409のNo）、署名検証に失敗したこと及びマルウェア対策を行うことを記載した文書を被管理装置1へ送信し（ステップ410）、ステップ432へ進む。
【０１４０】
署名検証に成功した場合（ステップ409のYes）、証明書検証部204は、計測補助文書・証明書保持部214内の公開鍵証明書の証明書検証を行う（ステップ411）。証明書検証に失敗した場合（ステップ411のNo）、証明書検証に失敗したこと及びマルウェア対策を行うことを記載した文書を被管理装置1へ送信し（ステップ412）、ステップ432へ進む。
【０１４１】
証明書検証に成功した場合（ステップ411のYes）、完全性検証部A205は、完全性検証Aを実施する。完全性検証Aとは（図23参照）、管理装置3が被管理装置1の前回接続時以降保持している計測補助文書231と、管理装置3がステップ408により受信した計測補助文書232に関し、完全性検証部A205が、双方のPCR[0]〜PCR[4]及びPCR[16]に関するハッシュ値がそれぞれ一致するかどうかを確認することである。完全性検証Ａに成功した場合（ステップ413のYes）、前回接続時に受信した計測補助文書を削除し、ステップ408において受信した計測補助文書を保存し（ステップ414）、ステップ430へ進む。
【０１４２】
完全性検証Ａに失敗した場合（ステップ413のNo）、前回接続時に受信した計測補助文書、及び、ステップ408により受信したログ文書及び計測補助文書を削除する（ステップ415）。
【０１４３】
次に、文書受信部219は、乱数を生成し、当該乱数を生成すると同時に、文書送信部155にログ文書及び計測ログ文書及び計測補助文書の送信を要求する（ステップ416）。次に、文書送信部155は、当該要求を受信する（ステップ417）。次に、文書送信部155は、ログ文書及び計測ログ文書及び計測補助文書を作成する（ステップ418）。ステップ418のうち、ログ文書及び計測補助文書の作成方法は、ステップ406と同一である。計測ログ文書作成のプロセスは、文書送信部155が計測ログ文書保持部144内に格納されている計測ログ文書131を取り出すことに等しい。
【０１４４】
次に、文書送信部155は、ログ文書130及び計測ログ文書131及び計測補助文書134及び公開鍵証明書を文書受信部219へ送信する（ステップ419）。文書受信部219は、当該ログ文書及び当該計測ログ文書及び当該計測補助文書及び当該公開鍵証明書を受信する（ステップ420）。次に、署名検証部203が、ステップ416で生成された乱数を文書受信部219より受け取った後、計測補助文書・証明書保持部214内の計測補助文書134の署名検証を行う（ステップ421）。署名検証に失敗した場合（ステップ421のNo）、署名検証に失敗したこと及びマルウェア対策を行うことを記載した文書を被管理装置1へ送信し（ステップ422）、ステップ432へ進む。
【０１４５】
署名検証に成功した場合（ステップ421のYes）、証明書検証部204は、計測補助文書・証明書保持部214内の公開鍵証明書の証明書検証を行う（ステップ423）。証明書検証に失敗した場合（ステップ423のNo）、証明書検証に失敗したこと及びマルウェア対策を行うことを記載した文書を被管理装置1へ送信し（ステップ424）、ステップ432へ進む。
【０１４６】
証明書検証に成功した場合（ステップ423のYes）、完全性検証部B206は完全性検証Bを実施する。完全性検証Bとは（図24参照）、計測ログ文書131内に記載されたハッシュ値情報を用いて、計測補助文書134内のハッシュ値を再現できるかどうかを確認するプロセスである。例えばPCR[16]の場合、完全性検証部B206は、計測ログ文書11内のハッシュ値情報を用いて下記の計算式を実行し、Hash16_calの値を求める。
（B）Hash16_cal = SHA(Hash16,N | SHA(Hash16,N-1 | 
…… SHA(Hash16,3 | SHA(Hash16,2 | Hash16,1))…)
次に、完全性検証部B206は、上記Hash16_calと計測補助文書244に記載されているPCR[16]の値を比較し、等しいかどうかを確認する。以上の検証を、計測ログ文書131内のすべてのPCR番号に関して同様に行う。すべての値が等しければ検証成功となる。完全性検証Bに失敗した場合（ステップ425のNo）、完全性検証B失敗の事実及び検証が失敗したPCR番号、を記載した文書を被管理装置1へ送信し（ステップ426）、ステップ432へ進む。
【０１４７】
完全性検証部B206に成功した場合（ステップ425のYes）、完全性検証部C217は完全性検証Cを実施する。完全性検証Cとは、計測ログ文書131内のハッシュ値と参照計測文書内のハッシュ値がすべて一致するかどうかを確認するプロセスである。例えば、被管理装置1内のアプリケーションソフトウェアであるTimeClientに関し、計測ログ文書241内に記載されているハッシュ値情報とTimeClientの参照計測文書245に記載されているハッシュ値情報が一致すれかどうかを確認する（図25参照）。同様に、参照計測文書保持部215が保持している他のすべての参照計測文書245に関し、上記プロセスを実行し、ハッシュ値がすべて一致するかどうかを確認する。完全性検証Cが失敗した場合（ステップ427のNo）、完全性検証C失敗の事実及び検証が失敗したアプリケーション名を記載した文書を被管理装置1へ送信し（ステップ428）、ステップ432へ進む。
【０１４８】
完全性検証Cに成功した場合（ステップ427のYes）、ステップ420で受信した計測補助文書244を計測補助文書・証明書保持部214に上書き記録する（ステップ429）。次に、文書受信部219は、すべての検証が成功し、ログ文書受理を完了した由を記載した文書を、文書送信部155へ送信する（ステップ430）。最後に、文書送信部155は、同文書を受信する（ステップ431）。以上の一連のプロセスを持って、管理装置3による被管理装置1の完全性検証及びログ文書受理が完了する。
【０１４９】
本実施例では、管理装置3が、ログ文書130及び計測ログ文書131及び計測補助文書134の完全性を検証しているが、必ずしも管理装置3が上記の検証プロセスを行わなくても良い。例えば、管理装置3は、上記の検証プロセスの一部もしくは全部を、管理装置3が信頼するインターネット上もしくはイントラネット上の他の装置に委託しても良いことは言うまでもない。
【図面の簡単な説明】
【０１５０】
【図１】第一の実施例におけるシステム全体の構成図である。
【図２】第一の実施例の文書作成装置1が作成するログ文書（電子文書）を示す図である。
【図３】第一の実施例の文書作成装置1が作成する計測ログ文書を示す図である。
【図４】第一の実施例の文書作成装置1が作成する計測補助文書を示す図である。
【図５】第一の実施例の文書受信装置3が記憶している参照計測文書を表す図である。
【図６】第一の実施例の文書受信装置3の管理者もしくは使用者が設定したセキュリティポリシを表す図である。
【図７】第一の実施例の文書作成装置1の内部のモジュール構成の図である。
【図８】第一の実施例のハッシュ値保持部71の詳細構造を示す図である。
【図９】第一の実施例の時刻配信装置2の内部のモジュール構成の図である。
【図１０】第一の実施例の文書受信装置3の内部のモジュール構成の図である。
【図１１】第一の実施例の文書受信装置3が、計測ログ文書及び計測補助文書の完全性を検証し、セキュリティポリシ適合性検証を行う際のフローチャート図である。
【図１２】第一の実施例の文書作成装置1が起動した際のハッシュ値計算・格納の様子を説明するための図である。
【図１３】第一の実施例の文書受信装置3における計測ログ文書の完全性検証を行う様子を説明するための図である。
【図１４】第二の実施例の文書作成装置である被管理装置1が作成するログ文書を表す図である。
【図１５】第二の実施例の被管理装置1が作成する計測ログ文書を表す図である。
【図１６】第二の実施例の被管理装置1が作成する計測補助文書を表す図である。
【図１７】第二の実施例の文書受信装置である管理装置3が記憶している複数の参照計測文書を表す図である。
【図１８】第二の実施例の被管理装置1の内部のモジュール構成図である。
【図１９】第二の実施例の管理装置3の内部のモジュール構成図である。
【図２０】第二の実施例の被管理装置1が起動した際に、被管理装置1内の各モジュールのハッシュ値が計算され、計測ログ文書保持部44及びハッシュ値保持部71に格納されていく様子を表す図である。
【図２１】第二の実施例の管理装置3が被管理装置1より接続要求を受けた後のフローチャートの前半を表す図である。
【図２２】第二の実施例の管理装置3が被管理装置1より接続要求を受けた後のフローチャートの後半を表す図である。
【図２３】第二の実施例の完全性検証Ａの内容を表す図である。
【図２４】第二の実施例の完全性検証Ｂの内容を表す図である。
【図２５】第二の実施例の完全性検証Ｃの内容を表す図である。
【符号の説明】
【０１５１】
1…被管理装置である文書作成装置、2…時刻配信装置、3…管理装置である文書受信装置、４…インターネット、6…ログ情報、7…ログ情報、8…計測ログ情報、9…計測ログ情報、10…計測補助情報１１…計測補助情報、12…電子署名値、13…参照計測文書、14…セキュリティポリシ、41…主記憶部、42…文書保持部、43…時刻保持部、44…計測ログ文書保持部、45…計測補助文書・証明書保持部、46…補助記憶部、47…文書保持部、48…時刻保持部、49…計測ログ文書保持部、50…計測補助文書・証明書保持部、51…制御部、52…時刻取得部、53…時刻カウント部、54…文書作成部、55…計測補助文書作成部、56…ハッシュ値計算・格納部、57…通信部、58…ROM、59…ハッシュ値計算・格納部61…Boot Block、61…ハッシュ値計算・格納部、62…入出力部、63…耐タンパデバイス、64…補助記憶部、65…鍵・証明書保持部、66…入出力部、67…制御部、68…署名実行部、69…署名対象データ作成部、70…主記憶部、71…ハッシュ値保持部、72…署名対象データ保持部、73…鍵・証明書保持部、101…通信部、102…制御部、103…時刻配信部、104…主記憶部、105…時刻保持部、130…ログ文書、131…計測ログ文書、134…計測補助文書、135…参照計測文書、141…記憶部、142…時刻保持部、143…文書保持部、144…計測ログ文書保持部、151…制御部、152…時刻取得・管理部、153…文書作成部、154…ハッシュ値計算・格納部、155…文書送信部、156…計測補助文書作成部、157…通信部、158…ROM、159…ハッシュ値計算・格納部、160…Boot Block、161…ハッシュ値計算・格納部、162…入出力部、163…耐タンパデバイス、166…入出力部、167…制御部、168…署名実行部、169…署名対象データ作成部、170…記憶部、171…ハッシュ値保持部、172…署名対象データ保持部、173…鍵・証明書保持部、201…通信部、202…制御部、203…署名検証部、204…証明書検証部、205…（計測ログ文書）完全性検証部A、206…（計測ログ文書）完全性検証部B、207…セキュリティポリシ適合性検証部、208…補助記憶部、209…参照計測文書保持部、210…セキュリティポリシ保持部、211…（主）記憶部、212…文書保持部、213…計測ログ文書保持部、214…計測補助文書・証明書保持部、215…参照計測文書保持部、216…セキュリティポリシ保持部、217…完全性検証部C、219…文書受信部。
【図１】
2009010911.tif 000003
【図２】
2009010911.tif 000004
【図３】
2009010911.tif 000005
【図４】
2009010911.tif 000006
【図５】
2009010911.tif 000007
【図６】
2009010911.tif 000008
【図７】
2009010911.tif 000009
【図８】
2009010911.tif 000010
【図９】
2009010911.tif 000011
【図１０】
2009010911.tif 000012
【図１１】
2009010911.tif 000013
【図１２】
2009010911.tif 000014
【図１３】
2009010911.tif 000015
【図１４】
2009010911.tif 000016
【図１５】
2009010911.tif 000017
【図１６】
2009010911.tif 000018
【図１７】
2009010911.tif 000019
【図１８】
2009010911.tif 000020
【図１９】
2009010911.tif 000021
【図２０】
2009010911.tif 000022
【図２１】
2009010911.tif 000023
【図２２】
2009010911.tif 000024
【図２３】
2009010911.tif 000025
【図２４】
2009010911.tif 000026
【図２５】
2009010911.tif 000027