(57)【特許請求の範囲】
【請求項１】
ハイバネーションの状態に入り、当該ハイバネーションの状態から復帰する機能を有し、機器証明を行うサーバ装置と通信可能な情報処理装置であって、
ソフトウェアモジュールを起動させた場合、当該起動させたソフトウェアモジュールのハッシュ値を揮発性のメモリに記憶させる記憶手段と、
前記揮発性のメモリに記憶されているハッシュ値に基づく機器証明を前記サーバ装置に対して要求する要求手段と、
前記ハイバネーションの状態から復帰した後に前記機器証明を要求する場合、前記ハイバネーション状態に入る前に起動したソフトウェアモジュールを前記機器証明の対象から除外させる除外手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記ハッシュ値の改竄を防ぐ機能を有するセキュリティチップを有し、前記揮発性のメモリは当該セキュリティチップに備えられていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記起動させたソフトウェアモジュールの内、前記ハイバネーション状態に入る前に起動したソフトウェアモジュールを識別する識別情報を保持する保持手段を更に有し、
前記除外手段は、前記機器証明を要求する際に前記識別情報を前記サーバに送信することによって、前記ハイバネーション状態に入る前に起動したソフトウェアモジュールを前記機器証明の対象から除外させることを特徴とする請求項１もしくは２のいずれか１項に記載の情報処理装置。
【請求項４】
前記サーバ装置から、前記機器証明が成功したか否かを示す情報を受信する受信手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記要求手段は、前記サーバ装置による前記機器証明が行われた後、前記除外手段で除外されたソフトウェアモジュールのハッシュ値を取得し、当該取得されたハッシュ値に基づく第二の機器証明を前記サーバ装置に対して要求することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記揮発性のメモリに記憶されているハッシュ値は、起動させたすべてのソフトウェアモジュールのハッシュ値を連結させたアグリゲートハッシュ値であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記セキュリティチップは、任意のデータを不揮発に記憶する領域を有し、
前記ハイバネーションの状態に入る場合、前記情報処理装置の状態を示すハイバネーションイメージを用いて前記任意のデータを暗号化する暗号化手段と、
前記ハイバネーションの状態から復帰する際に、前記ハイバネーションイメージに基づき前記任意のデータを復号出来るか否かに基づき、前記ハイバネーションイメージに対して改竄がなされたか否かを検知する検知手段と、を更に有することを特徴とする請求項２に記載の情報処理装置。
【請求項８】
ハイバネーションの状態に入り、当該ハイバネーションの状態から復帰する機能を有する情報処理装置と通信可能なサーバ装置であって、
前記情報処理装置で起動されたソフトウェアモジュールのハッシュ値に基づく機器証明の要求を受信する受信手段と、
前記要求を受信した場合、前記ハッシュ値に基づく機器証明を行う検証手段と、
前記情報処理装置が前記ハイバネーションの状態から復帰した後に前記要求がなされた場合、前記ハイバネーション状態に入る前に起動したソフトウェアモジュールを前記機器証明の対象から除外する除外手段と、を有することを特徴とするサーバ装置。
【請求項９】
ハイバネーションの状態に入り、当該ハイバネーションの状態から復帰する機能を有し、機器証明を行うサーバ装置と通信可能な情報処理装置の制御方法であって、
記憶手段が、ソフトウェアモジュールを起動させた場合、当該起動させたソフトウェアモジュールのハッシュ値を揮発性のメモリに記憶させる記憶工程と、
要求手段が、前記揮発性のメモリに記憶されているハッシュ値に基づく機器証明を前記サーバ装置に対して要求する要求工程と、
除外手段が、前記ハイバネーションの状態から復帰した後に前記機器証明を要求する場合、前記ハイバネーション状態に入る前に起動したソフトウェアモジュールを前記機器証明の対象から除外させる除外工程と、を有することを特徴とする制御方法。
【請求項１０】
ハイバネーションの状態に入り、当該ハイバネーションの状態から復帰する機能を有する情報処理装置と通信可能なサーバ装置の制御方法であって、
受信手段が、前記情報処理装置で起動されたソフトウェアモジュールのハッシュ値に基づく機器証明の要求を受信する受信工程と、
検証手段が、前記要求を受信した場合、前記ハッシュ値に基づく機器証明を行う検証工程と、
除外手段が、前記情報処理装置が前記ハイバネーションの状態から復帰した後に前記要求がなされた場合、前記ハイバネーション状態に入る前に起動したソフトウェアモジュールを前記機器証明の対象から除外する除外工程と、を有することを特徴とする制御方法。
【請求項１１】
機器証明を行うサーバ装置と、ハイバネーションの状態に入り、当該ハイバネーションの状態から復帰する機能を有し、前記サーバ装置と通信可能な情報処理装置とから構成される情報処理システムであって、
前記情報処理装置は、
ソフトウェアモジュールを起動させた場合、当該起動させたソフトウェアモジュールのハッシュ値を揮発性のメモリに記憶させる記憶手段と、
前記揮発性のメモリに記憶されているハッシュ値に基づく機器証明を前記サーバ装置に対して要求する要求手段と、
前記ハイバネーションの状態から復帰した後に前記機器証明を要求する場合、前記ハイバネーション状態に入る前に起動したソフトウェアモジュールを前記機器証明の対象から除外させる除外手段と、を有し、
前記サーバ装置は、
前記情報処理装置で起動されたソフトウェアモジュールのハッシュ値に基づく機器証明の要求を受信する受信手段と、
前記要求を受信した場合、前記ハッシュ値に基づく機器証明を行う検証手段と、を有することを特徴とする情報処理システム。
【請求項１２】
コンピュータを、
ハイバネーションの状態に入り、当該ハイバネーションの状態から復帰する機能を有し、機器証明を行うサーバ装置と通信可能な情報処理装置であって、
ソフトウェアモジュールを起動させた場合、当該起動させたソフトウェアモジュールのハッシュ値を揮発性のメモリに記憶させる記憶手段と、
前記揮発性のメモリに記憶されているハッシュ値に基づく機器証明を前記サーバ装置に対して要求する要求手段と、
前記ハイバネーションの状態から復帰した後に前記機器証明を要求する場合、前記ハイバネーション状態に入る前に起動したソフトウェアモジュールを前記機器証明の対象から除外させる除外手段と、を有することを特徴とする情報処理装置として機能させるためのコンピュータプログラム。
【請求項１３】
コンピュータを、
ハイバネーションの状態に入り、当該ハイバネーションの状態から復帰する機能を有する情報処理装置と通信可能なサーバ装置であって、
前記情報処理装置で起動されたソフトウェアモジュールのハッシュ値に基づく機器証明の要求を受信する受信手段と、
前記要求を受信した場合、前記ハッシュ値に基づく機器証明を行う検証手段と、
前記情報処理装置が前記ハイバネーションの状態から復帰した後に前記要求がなされた場合、前記ハイバネーション状態に入る前に起動したソフトウェアモジュールを前記機器証明の対象から除外する除外手段と、を有することを特徴とするサーバ装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器証明を行うサーバ装置と通信可能な情報処理装置、機器証明を行うサーバ装置、情報処理システム、制御方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの情報処理装置にはＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）と呼ばれるセキュリティチップが搭載されてきている。ＴＰＭは、暗号処理や、安全に管理された鍵ペアの生成などのいくつかのセキュリティ機能を持つ。
【０００３】
また、ＴＰＭは、ソフトウェアモジュールなどのハッシュ値を記憶するレジスタを有する。当該レジスタはＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）と呼ばれている。ＰＣＲの利用方法として、あらかじめ取得しておいた各ソフトウェアモジュールのハッシュ値とＰＣＲ内のハッシュ値とを比較し、各ソフトウェアモジュールの正当性（改竄の有無）を検証することが出来る。
【０００４】
より具体的な利用方法としては、まず、情報処理装置は、ＢＩＯＳ、ブートローダー、更にアプリケーションなどのコンポーネントを起動した際に、各コンポーネントのハッシュ値を起動順にＰＣＲに記憶させる。そして、情報処理装置をネットワークに接続する際に、各ソフトウェアモジュールのハッシュ値を保持している管理サーバに対してＰＣＲ内のハッシュ値を送信する。ハッシュ値を受信した管理サーバは、ハッシュ値の比較によって情報処理装置内のソフトウェアが改竄されていないか否かを検証することが出来る。
【０００５】
上記処理によって、管理サーバはソフトウェアの検証を行うことが出来る。必ずしも検証に管理サーバを用いる必要はないが、ネットワークに接続された管理サーバによって情報処理装置内のソフトウェアの改竄有無を検証する技術を、一般的に機器証明という。
【０００６】
特許文献１は、ブート時に計測したソフトウェアモジュールのハッシュ値をＰＣＲに保持し、ＰＣＲの値に基づいて検証データを生成し、管理サーバが機器証明を実行する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−２６６６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＰＣＲは揮発性メモリであるため、特許文献１に記載されている技術を用いた情報処理装置の電源を落とした場合、ＰＣＲ内に記憶されているハッシュ値は消失してしまう。通常の電源断の場合には問題にならないが、ハイバネーション機能を用いた電源断を実施した場合、問題になることがある。
【０００９】
ハイバネーション機能とは、電源断の実施前に、メインメモリが保持している内容を不揮発性の記憶装置に記憶させ、次に情報処理装置を起動させた際には、不揮発性の記憶装置の情報をメインメモリに展開し、電源断の実施前の状態に復帰させる機能である。ハイバネーション機能を用いた復帰は、通常の起動よりも高速な起動が可能であるなどのメリットがあり、多くの情報処理装置に実装されている。
【００１０】
しかしながら、上述の通り、ハイバネーション機能によって情報処理装置の電源断が実施された場合、メインメモリの内容は退避されるが、ＰＣＲ内に記憶されているハッシュ値は消失してしまう。よって、仮に、ハイバネーション状態から復帰した後に機器証明を行おうとしても、復帰後に起動したソフトウェアモジュールのハッシュ値のみが管理サーバに送信されることになる。
【００１１】
その結果、ハイバネーション状態に入る前に起動したソフトウェアモジュールのハッシュ値の確認を行うことが出来ず、ソフトウェアモジュールの改竄がなされていないにも関わらず、管理サーバは改竄がなされたと見なしてしまう。よって、従来技術においては、ハイバネーションの状態から復帰した後は、正常な機器証明を行うことが出来なかった。
【００１２】
本発明は、上記課題を鑑みてなされたものであり、ハイバネーションの状態から復帰した情報処理装置の機器証明を可能とすることを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明の情報処理装置は、ハイバネーションの状態に入り、当該ハイバネーションの状態から復帰する機能を有し、機器証明を行うサーバ装置と通信可能な情報処理装置であって、ソフトウェアモジュールを起動させた場合、当該起動させたソフトウェアモジュールのハッシュ値を揮発性のメモリに記憶させる記憶手段と、前記揮発性のメモリに記憶されているハッシュ値に基づく機器証明を前記サーバ装置に対して要求する要求手段と、前記ハイバネーションの状態から復帰した後に前記機器証明を要求する場合、前記ハイバネーション状態に入る前に起動したソフトウェアモジュールを前記機器証明の対象から除外させる除外手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ハイバネーションの状態から復帰した情報処理装置の機器証明をすることが出来る。
【図面の簡単な説明】
【００１５】
【図１】情報処理装置の構成を説明する図である。
【図２】情報処理システムの構成を説明する図である。
【図３】クライアントがハイバネーション状態に入る処理フローを説明する図である。
【図４】機器証明においてクライアントが行う処理フローを説明する図である。
【図５】機器認証においてサーバが行う処理フローを説明する図である。
【図６】ＰＣＲの状態を説明する図である。
【図７】起動ログの状態を説明する図である。
【図８】サーバとクライアントによる機器証明処理フローの概要を説明する図である。
【図９】クライアントがハイバネーション状態に入る処理フローを説明する図である。
【図１０】クライアントがハイバネーション状態に入る処理フローを説明する図である。
【図１１】デバイス初期化処理フローを説明する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について図面を用いて説明する。
【００１７】
（第１の実施形態）
（情報処理装置の構成）
図１は、本実施形態におけるクライアントもしくは、サーバとして機能する情報処理装置の構成を示す図である。図１に示す通り、情報処理装置１１０は、一般に普及しているパーソナルコンピュータと同様の構成であり、ＲＯＭ１１、ＨＤＤ１２、ＴＰＭ１３、ＲＡＭ１４、及びＣＰＵ１９から構成される。
【００１８】
ＲＯＭ１１は、物理的、或いは論理的な書き換えが不可能な不揮発性メモリである。ＲＯＭ１１には、ＢＩＯＳ１５、不図示の各種プログラム、及びその他のデータが記憶されている。ＢＩＯＳ１５は情報処理装置１１０全体を制御するプログラムである。ＢＩＯＳ１５は、情報処理装置１１０の電源投入時における各種機能を制御であり、情報処理装置１１０に電源が投入された際、情報処理装置内部で最初に起動されるプログラムである。
【００１９】
ＨＤＤ１２は、ｂｏｏｔ  ｌｏａｄｅｒ１６、ｋｅｒｎｅｌ１７、ソフトウェアモジュール群１８、及び種々のデータを記憶可能な補助記憶部である。ここで、ｂｏｏｔ  ｌｏａｄｅｒ１６は起動するｋｅｒｎｅｌ１７の制御をするプログラムである。ｋｅｒｎｅｌ１７は、種々のソフトウェアモジュールのロード、ＲＡＭ１４のメモリ管理、及び不図示のキーボードや画面出力などの入出力機能を制御する基本的なプログラムである。ソフトウェアモジュール群１８は、ワードプロセッサ、表計算、データベース管理、ネットワークブラウジング、映像・音声再生、印刷、通信など、情報処理装置１１０の利用者が実行したい作業を機能として提供するプログラム群である。本実施形態ではソフトウェアモジュール群１８が３つのソフトウェアモジュール、ｍｏｄｕｌｅ  Ａ、ｍｏｄｕｌｅ  Ｂ、及びｍｏｄｕｌｅ  Ｃから構成されているものとして説明する。しかし、本実施形態はこれに限定されることなく、より多くのソフトウェアモジュールから構成されていても良い。
【００２０】
ＴＰＭ１３は、耐タンパー性を有するセキュリティチップである。耐タンパー性とは、外部からの解析を困難にすると共に、外部から解析しようとした場合に内部に記憶されているプログラム、或いはデータを破壊することにより自己防衛する特性である。また、ＴＰＭ１３は、ＮｖＲＡＭ１１１、ＰＣＲ１１２、及び制御部１１３から構成されている。ＮｖＲＡＭ１１１は不揮発性メモリであり、後述するデジタル署名の生成に必要な秘密鍵（クライアント秘密鍵、及びサーバ秘密鍵）、公開鍵（クライアント公開鍵、及びサーバ公開鍵）、及び公開鍵証明書が記憶されている。尚、本実施形態では、セキュリティチップとしてＴＰＭを用いているが、耐タンパー性を有し、ソフトウェアモジュールのハッシュ値を格納することが出来る他のセキュリティチップを利用することも可能である。
【００２１】
ＰＣＲ１１２は揮発性メモリであり、前述した、ＢＩＯＳ１５、ｂｏｏｔ  ｌｏａｄｅｒ１６、ｋｅｒｎｅｌ１７、及びソフトウェアモジュール群１８の検証値であるハッシュ値が、起動順に記憶される。制御部１１３は後述する電子署名生成処理、及びＰＣＲ１１２への登録処理などを実行する。ここで登録処理とは、ＴＰＭ１３の外部から入力されたデータのハッシュ値を式（１）に従って計算し、計算した値を所定のＰＣＲに記憶する機能である。
ＤＡＴＡ＿ｉ＋１＝Ｈ（ＤＡＴＡ＿ｉ｜ＩＮＰＵＴ）            （１）
【００２２】
ここで、ＩＮＰＵＴは、ＴＰＭ１３外部から入力されたデータ、或いはそのハッシュ値である。ＤＡＴＡ＿ｉはＴＰＭ１３に登録する時点で既にＰＣＲに記録されている値である。Ｈ（ｘ）は値ｘに対するハッシュ関数（圧縮関数）である。「ｘ｜ｙ」は値ｘと値ｙの連結である。ＤＡＴＡ＿ｉ＋１は外部から値ＩＮＰＵＴが入力された場合に計算される結果値であり、ＤＡＴＡ＿ｉ＋１が所定のＰＣＲに記憶されることになる。本実施形態では、ＴＰＭ１３にはＰＣＲ０、ＰＣＲ１、ＰＣＲ２、及びＰＣＲ３という４つのＰＣＲが搭載されているものとして説明する。また、ＰＣＲ０はＢＩＯＳ１５、ＰＣＲ１はｂｏｏｔ  ｌｏａｄｅｒ１６のハッシュ値をＩＮＰＵＴとして登録する。また、ＰＣＲ２はｋｅｒｎｅｌ１７、そしてＰＣＲ３はソフトウェアモジュール群１８（ｍｏｄｕｌｅ  Ａ、ｍｏｄｕｌｅ  Ｂ、及びｍｏｄｕｌｅ  Ｃ）のハッシュ値をＩＮＰＵＴとして登録するものとする。
【００２３】
以上説明したＰＣＲへの登録処理は、情報処理装置１１０が起動する際に実行される。ここで、情報処理装置１１０の起動処理について説明する。情報処理装置１１０に電源が投入されると、まずＢＩＯＳ１５が実行される。その後、ＢＩＯＳ１５、ｂｏｏｔ  ｌｏａｄｅｒ１６、ｋｅｒｎｅｌ１７、ソフトウェアモジュール群１８の順にロード・実行する。ここで、ソフトウェアモジュール群１８に含まれるｍｏｄｕｌｅ  Ａ、ｍｏｄｕｌｅ  Ｂ、及びｍｏｄｕｌｅ  Ｃは選択的にロード・実行することも可能である。即ち、ロード・実行されないソフトウェアモジュールもある。また、ｍｏｄｕｌｅ  Ａ、ｍｏｄｕｌｅ  Ｂ、及びｍｏｄｕｌｅ  Ｃのロード・実行の順序は特に定める必要はなく、必要な時に必要なソフトウェアモジュールがロード・実行される。
【００２４】
本実施形態では、以上説明した起動処理中に、前述したＰＣＲへのハッシュ値の登録処理を実行する。即ち、ＢＩＯＳ１５は自分自身のハッシュ値を算出し、算出したハッシュ値を式（１）に従ってＰＣＲ０へ登録する。そして、ＢＩＯＳ１５はｂｏｏｔ  ｌｏａｄｅｒ１６のハッシュ値を算出し、算出したハッシュ値を式（１）に従ってＰＣＲ１へ登録する。その後、ｂｏｏｔ  ｌｏａｄｅｒ１６を起動する。起動したｂｏｏｔ  ｌｏａｄｅｒ１６はｋｅｒｎｅｌ１７のハッシュ値を算出し、算出したハッシュ値を式（１）に従ってＰＣＲ２へ登録する。その後、ｋｅｒｎｅｌ１７を起動する。起動したｋｅｒｎｅｌ１７は、ソフトウェアモジュール（ｍｏｄｕｌｅ  Ａ、ｍｏｄｕｌｅＢ、或いはｍｏｄｕｌｅ  Ｃ）が必要となった場合にソフトウェアモジュールのハッシュ値を算出し、算出したハッシュ値を式（１）に従ってＰＣＲ３へ登録する。ｋｅｒｎｅｌ１７は、ソフトウェアモジュールが必要になる毎に登録処理を繰り返し実行する。
【００２５】
以上説明した一連の登録処理により、情報処理装置１１０への電源投入後の所定の時点において、情報処理装置１１０で実行している全てのプログラムに基づくハッシュ値がＰＣＲ内に記憶されていることになる。
【００２６】
上記説明では、ＰＣＲ０からＰＣＲ３までの４つのレジスタを例示したが、ＴＰＭ仕様では１６個のレジスタを規格化している。また、ＴＰＭ仕様はＰＣＲの利用方法も規格化している。図１では、ＢＩＯＳ１５、ｂｏｏｔ  ｌｏａｄｅｒ１６、ｋｅｒｎｅｌ１７、ソフトウェアモジュール群１８を想定し、それぞれ順にＰＣＲ０、ＰＣＲ１、ＰＣＲ２、ＰＣＲ３へ登録することを想定している。一方、一部のＴＰＭサブ仕様では以下のように規格化している。例えば、ＢＩＯＳ１５はＰＣＲ０、Ｐｌａｔｆｏｒｍ  ＣｏｎｆｉｇｕｒａｔｉｏｎはＰＣＲ１、Ｏｐｔｉｏｎ  ＲＯＭ  ＣｏｄｅはＰＣＲ２、Ｏｐｔｉｏｎａｌ  ＲＯＭ  Ｃｏｎｆｉｇｕｒａｔｉｏｎｓ  ａｎｄ  ＤａｔａはＰＣＲ３等である。同様に、一部のＴＰＭサブ仕様には、ｋｅｒｎｅｌ１７はＰＣＲ１０へ登録すると規格化している。つまり、準拠しなければいけない仕様に従い、登録するＰＣＲ１１２を選択する必要がある。また、ｋｅｒｎｅｌ１７における各ソフトウェアモジュールのハッシュ値算出と登録は、ソフトウェアモジュールが必要になったタイミングで行われる。
【００２７】
ＲＡＭ１４は揮発性メモリであり、ＣＰＵ１９にて処理を行うために、プログラムや各種データ（動作状態）が一時的に記憶される主記憶部である。
【００２８】
ＣＰＵ１９は、情報処理装置１１０内の各部の動作を制御、或いはＲＡＭ１４にロードされたプログラムを実行することのできる電子回路である。以上が、本実施形態における情報処理装置１１０の各構成である。
【００２９】
（システム構成）
次に、図２を用いて本実施形態における情報処理システム構成について説明する。図２は本実施形態における情報処理システムの概要の一例を示す図である。図２（Ａ）におけるシステムはサーバ２１、及びクライアントＡ２２から構成される。サーバ２１とクライアントＡ２２とは、有線、或いは無線の通信回線を用いて接続されており、互いにデータを通信可能となっている。本実施形態ではサーバ２１とクライアントＡ２２とが通信する際に、クライアントＡ２２のソフトウェアが改竄されていないか否かをサーバ２１が確認するものとする。この処理は、サーバ２１によるクライアントＡ２２の機器証明になる。尚、本実施形態は当該処理に限定されるものではく、クライアントＡ２２がサーバ２１の機器証明を実行したり、サーバ２１、及びクライアントＡ２２が夫々互いに機器証明を実行するようにしてもよい。
【００３０】
また、図２（Ｂ）に示すように、クライアントＡ２２とは異なるクライアントＢ２３をサーバ２１と接続するようにしてもよい。この場合、ユーザはクライアントＢ２３を用いて、クライアントＡ２２との接続処理、データ送信処理、サービス利用処理、機器証明をサーバ２１に対して指示することが可能となる。
【００３１】
（サーバ２１とクライアントＡ２２とによる機器証明処理フローの概要）
以下、図８を用いて本実施形態における機器証明の処理フローの概要を説明する。以下の処理フローは、主に前述した情報処理装置１１０内のコンピュータプログラムをＣＰＵ１９が処理することによって実現される。
【００３２】
本処理フローは、ハイバネーションからの復帰時における機器証明の処理フローであって、前述のサーバ２１がクライアントＡ２２の機器証明を実施するものとして説明する。
【００３３】
Ｓ８０１では、クライアントＡ２２の電源が入力される。Ｓ８０２では、電源入力されたクライアントＡ２２の起動がハイバネーション状態からの復帰であるかどうか否かをＢＩＯＳ１５によって判定する。Ｓ８０２でクライアントＡ２２の起動がハイバネーション状態からの復帰であると判定された場合（Ｓ８０２のＹＥＳの場合）、Ｓ８０３に処理を進める。ハイバネーション状態からの復帰でないと判定された場合（Ｓ８０２のＮＯの場合）、Ｓ８０４に処理を進める。
【００３４】
Ｓ８０３では、後述するハイバネーション状態に入る前の前処理で保存されたＴＰＭ１３の内部状態をＮｖＲＡＭ１１１からＴＰＭ１３に復帰させる。復帰の際には、ＴＰＭ  Ｓｔａｒｔｕｐコマンドが発行され、ＰＣＲ１１２の値を除くＴＰＭの内部状態が復帰される。
【００３５】
尚、本実施形態は、ハイバネーションからの復帰後も機器証明を実施することを可能とするものである。しかしながら、例えば、ユーザからの指示に基づき、ハイバネーションからの復帰時には機器証明が利用できないようにしたり、警告メッセージを表示する等の処理をしてもよい。Ｓ８０４では、デバイス初期化を実施する。本ステップにおけるデバイス初期化は、通常の初期化とハイバネーションからの復帰の初期化との二種類がある。通常の初期化は、前述したとおりＢＩＯＳ１５、ｂｏｏｔ  ｌｏａｄｅｒ１６、ｋｅｒｎｅｌ１７の順に起動していく。ハイバネーションからの復帰の場合は、ＢＩＯＳ１５が発行したＴＰＭ  Ｓｔａｒｔｕｐコマンドの結果を受信した後、ｂｏｏｔ  ｌｏａｄｅｒ１６を起動し、更にｋｅｒｎｅｌ１７によってハイバネーションから復帰する。デバイス初期化後は、Ｓ８０５に処理を進める。
【００３６】
Ｓ８０５では、クライアントＡ２２の利用者によってクライアントＡ２２の通常使用がなされる。通常使用の後、機器証明が必要になった場合、Ｓ８０６に処理を進める。
【００３７】
Ｓ８０６では、クライアントＡ２２の利用者の指示もしくは自動制御プロセスに基づき、クライアントＡ２２からサーバ２１に対して機器証明を要求するか否かを判定する。機器証明を要求すると判定された場合（Ｓ８０６でＹＥＳの場合）、Ｓ８０７に処理を進める。機器証明を要求しないと判定された場合（Ｓ８０６でＮＯの場合）、Ｓ８１１に処理を進める。Ｓ８０７では、クライアントＡ２２はサーバ２１に対して検証データを送信する。そして、検証データを受信したサーバ２１は、クライアントＡ２２の機器証明を行う。尚、本実施形態における機器証明の具体的な処理については後述する。Ｓ８０８では、Ｓ８０７において機器証明が成功したか否かを判定する。成功したと判定された場合（Ｓ８０８でＹＥＳの場合）、Ｓ８０９に処理を進める。成功したと判定されなかった場合（Ｓ８０８でＮＯの場合）、Ｓ８１０に処理を進める。
【００３８】
Ｓ８０９では、機器証明に成功したと判定されたため、機器証明が必要な各処理を実行する。Ｓ８１０では、機器証明に成功したと判定されなかったため、エラーメッセージを表示する。Ｓ８０９もしくはＳ８１０の処理が行われた後は、Ｓ８１１に処理を進める。
【００３９】
Ｓ８１１では、そのままクライアントＡ２２の使用を継続するか否かを、クライアントＡ２２の利用者の指示もしくは自動制御プロセスに基づき判断する。使用継続すると判定された場合（Ｓ８１１でＹＥＳの場合）、Ｓ８０５に戻り、通常使用を継続する。使用継続しないと判定された場合（Ｓ８１１でＮＯの場合）、Ｓ８１２に処理を進める。
【００４０】
Ｓ８１２では、クライアントＡ２２の利用者の指示もしくは自動制御プロセスに基づき、クライアントＡ２２をハイバネーション状態に入らせるか否かを判定する。ハイバネーション状態に入ると判定された場合（Ｓ８１２でＹＥＳの場合）、Ｓ８１３に処理を進める。また、ハイバネーション状態に入らないと判定された場合（Ｓ８１２でＮＯの場合）、Ｓ８１４に処理を進める。Ｓ８１３では、クライアントＡ２２がハイバネーション状態に入る処理を実施する。ハイバネーション状態に入る処理は、例えば、クライアントＡ２２の利用者によってキーボード等の入出力機能を介して指示する場合と、一定時間クライアントＡ２２に対する操作がないときに実施される。尚、前述したようにハイバネーションからの復帰後に機器証明を利用させないような処理を実施する場合は、例えばハイバネーション状態に入る前に、ハイバネーションからの復帰後は機器証明が利用できない旨のメッセージを表示させるようにしてもよい。Ｓ８１４では、クライアントＡ２２の電源を切断して処理を終了する。以上が本実施形態における機器証明の処理フローの概要である。
【００４１】
次に、Ｓ８１３においてクライアントＡ２２がハイバネーション状態に入る処理、Ｓ８０における機器証明でクライアントＡ２２およびサーバ２１が行うそれぞれの処理について説明する。
【００４２】
（クライアントがハイバネーション状態に入る処理フロー）
図３は、クライアントＡ２２がハイバネーション状態に入る処理フローを説明する図である。図３における各処理は、主に前述した情報処理装置１１０内のコンピュータプログラム（Ｋｅｒｎｅｌ１７など）をＣＰＵ１９が処理することによって実現される。
【００４３】
Ｓ３１では、ハイバネーション状態に入る処理を開始後、ハイバネーション状態に入る前までに起動したソフトウェアモジュールの識別情報を取得する。識別情報は、例えば、図７に示すＩＤで取得される。図７は、本実施形態における起動ログを説明する図である。図７（Ａ）に示すように、ハイバネーション状態に入る前までにＭｏｄｕｌｅＡおよび、ＭｏｄｕｌｅＢが起動していたとすると、それぞれのソフトウェアモジュールを識別するためのＩＤ情報が本処理では取得される。取得された識別情報は、ハイバネーション状態に入る前とハイバネーション状態から復帰した後とを識別するために用いられる。よって、ソフトウェアモジュール名や起動したソフトウェアモジュール数などの情報を識別情報として利用することも可能である。
【００４４】
Ｓ３２では、取得した識別情報を保護する。ｋｅｒｎｅｌ１７は、ＴＰＭの機能を利用して、取得したソフトウェアモジュール情報をハイバネーション状態に入る前に起動した一連のＰＣＲを書き込み条件として、ＮｖＲＡＭ１１１に保存する。このように一連のＰＣＲを書き込み条件としているため、識別情報を改竄から保護することができる。
【００４５】
Ｓ３３では、クライアントＡ２２によってサーバ２１に対して機器証明を要求する。Ｓ３４では、サーバ２１に対する機器証明の要求後、サーバ２１に完全性レポートを送付する。完全性レポート（検証データ）は、図６（Ａ）に示すようなＰＣＲ１１２の情報、及び送信するＰＣＲ１１２の署名値、起動ログ５１から構成される。図６（Ａ）で示す通り、ＰＣＲ１１２には、ＢＩＯＳ１５、Ｂｏｏｔ  Ｌｏａｄｅｒ１６、ｋｅｒｎｅｌ１７、ＭｏｄｕｌｅＡ、ＭｏｄｕｌｅＢが登録されている。ＭｏｄｕｌｅＡ、ＭｏｄｕｌｅＢに関しては、それぞれのハッシュ値を連結した値が登録されている。サーバ２１では、送付された完全性レポートに基づき検証（機器証明）を行う。尚、機器証明の詳細な処理については後述する。Ｓ３５では、機器証明後のサーバ２１からの応答に基づき、検証が成功したか否かをクライアントＡ２２が判定する。検証に成功した場合（Ｓ３５でＹＥＳの場合）、Ｓ３７に処理を進める。検証に成功しなかった場合（Ｓ３５でＮＯの場合）、Ｓ３６に処理を進める。Ｓ３７では、サーバ２１から検証成功情報を取得する。検証成功情報は、サーバ２１が機器証明の検証に成功した場合に送信する情報であり、アグリゲートハッシュ値として算出する。アグリゲートハッシュ値の詳細については後述する。尚、取得した検証成功情報は、識別情報と同様にＴＰＭの機能を利用して取得したソフトウェアモジュール情報をハイバネーション状態に入る前に起動した一連のＰＣＲを書き込み条件として、ＮｖＲＡＭ１１１に保存する。一方、Ｓ３６では、クライアントＡ２２は、検証に成功しなかったとして、エラーメッセージを出力する。Ｓ３７もしくはＳ３６の処理後、Ｓ３８では、ＴＰＭ１３の状態を保存する。ＴＰＭ１３の状態を保存した後、ハイバネーション状態に入る処理は終了する。
【００４６】
（機器証明においてクライアントが行う処理フロー）
次に、図４を用いて、機器証明においてクライアントＡ２２が行う処理フローについて説明する。図４における各処理は、主に前述した情報処理装置１１０内のコンピュータプログラム（Ｋｅｒｎｅｌ１７など）をＣＰＵ１９が処理することによって実現される。Ｓ６１は、ハイバネーション状態からの復帰であるか否かを判定する処理である。ハイバネーション状態からの復帰であると判定された場合（Ｓ６１でＹＥＳの場合）、Ｓ６２に処理を進める。ハイバネーションからの復帰でないと判定された場合（Ｓ６１でＮＯの場合）、Ｓ６３に処理を進める。Ｓ６２では、クライアントＡ２２は、ＮｖＲＡＭ１１１に保存してある識別情報を取得する。
【００４７】
Ｓ６１もしくはＳ６２の処理後、Ｓ６３では、クライアントＡ２２はＰＣＲ１１２の情報を取得する。Ｓ６３の処理後、Ｓ６４では、クライアントＡ２２は起動ログを取得する。
【００４８】
ここで、ハイバネーション状態からの復帰である場合の識別情報、ＰＣＲ１１２の情報、起動ログそれぞれについて説明する。まず、ハイバネーション状態に入る前のＰＣＲ１１２の状態が図６（Ａ）の状態だとすると、識別情報には、Ｍｏｄｕｌｅ  ＡおよびＭｏｄｕｌｅ  Ｂを示す情報が格納されている。また、ハイバネーション状態から復帰した後に、Ｍｏｄｕｌｅ  Ｃを起動したとすると、ＰＣＲ１１２の状態は、Ｍｏｄｕｌｅ  Ｃの起動を示す値４３が登録された図６（Ｃ）の状態となる。また、起動ログは、ハイバネーション状態に入る前に起動したＭｏｄｕｌｅ  ＡおよびＭｏｄｕｌｅ  Ｂと、ハイバネーション状態から復帰した後に起動したＭｏｄｕｌｅ  Ｃとを含む図７（Ｂ）の５２に示すようになる。図から明らかなように、ハイバネーション状態に入る際の電源断でＰＣＲ１１２に記録されていた値は消失しているため、ＰＣＲ１１２の状態が示す起動ソフトウェアモジュールと起動ログが示す起動ソフトウェアモジュールとは異なるものになる。このままでは、機器証明をしようとしても検証は成功しないが、本実施形態においては、両者の区別を示す識別情報を用いることにより機器証明を行うことが可能になる。
【００４９】
すなわち、Ｓ６５では、ハイバネーション状態からの復帰である場合、ＰＣＲ１１２の情報、起動ログおよび両者の区別を示す識別情報を含む完全性レポート（検証データ）を作成する。尚、ハイバネーション状態からの復帰でない場合は、ＰＣＲ１１２の情報、起動ログを含む完全性レポート（検証データ）を作成する。Ｓ６６では、通常の機器証明における処理と同様に、作成された完全性レポートをサーバ２１に送付する。以上が、機器証明において本実施形態のクライアントＡ２２が行う処理である。
【００５０】
（機器認証においてサーバが行う処理フロー）
次に、図５を用いて、機器認証において本実施形態のサーバ２１が行う処理フローを説明する。図５における各処理は、主に前述した情報処理装置１１０内のコンピュータプログラム（Ｋｅｒｎｅｌ１７など）をＣＰＵ１９が処理することによって実現される。
【００５１】
Ｓ７０１では、サーバ２１は、クライアントＡ２２からの機器証明の要求に基づき、クライアントＡ２２から完全性レポート（検証データ）を受信する。Ｓ７０２では、サーバ２１は、クライアントＡ２２から検証データを受信すると、検証データに含まれているＰＣＲ１１２の署名値を利用して、ＰＣＲ１１２の情報の完全性を検証する。本検証によって、ＰＣＲ１１２の情報自体に改竄がなされていないか否かを検証することが出来る。検証に成功した場合（Ｓ７０３でＹＥＳの場合）、Ｓ７０５に処理を進める。検証に成功しなった場合（Ｓ７０３でＮＯの場合）、Ｓ７０４に処理を進める。
【００５２】
Ｓ７０４では、エラーメッセージを生成し、クライアントＡ２２に対して検証失敗の旨を通知する。Ｓ７０５では、サーバ２１内にあらかじめ保持しているクライアントＡ２２のＢＩＯＳ１５、Ｂｏｏｔ  Ｌｏａｄｅｒ１６、Ｋｅｒｎｅｌ１７の計測を実施する。本計測により、ＢＩＯＳ１５、Ｂｏｏｔ  Ｌｏａｄｅｒ１６、Ｋｅｒｎｅｌ１７それぞれのハッシュ値を取得することが出来る。Ｓ７０６では、クライアントＡ２２から送付されてきた検証データに識別情報が含まれているか否かを判定する。識別情報が含まれていると判定された場合（Ｓ７０６でＹＥＳの場合）、Ｓ７０７に処理を進める。識別情報が含まれていないと判定された場合（Ｓ７０６でＮＯの場合）、Ｓ７０８に処理を進める。
【００５３】
Ｓ７０７では、サーバ２１は、検証データに含まれる識別情報を確認し、ハイバネーション状態に入る前に起動されたソフトウェアモジュール群は完全性検証に含めないように設定する。Ｓ７０８では、サーバ２１は、取得された検証データを用いて完全性検証を行う。完全性検証において、例えば、識別情報がＩＤ＝２を示す場合、ＩＤ＝２まではハイバネーション状態に入る前に起動したソフトウェアモジュールであるため、完全性検証には含めない。よって、ＩＤ＝３からのソフトウェアモジュールについて完全性検証を行う。一方、検証データに識別情報が含まれていなかった場合は、起動ログ５２に記録されているすべての起動ソフトウェアモジュールについて完全性検証を行う。完全性検証では、起動ログ５２に記録されているソフトウェアモジュールのハッシュ値とＳ７０５で取得したハッシュ値とを比較する。ハッシュ値が同一であれば検証成功とし、同一でなければ、ソフトウェアモジュールが改竄されている可能性があるため検証不成功とする。
【００５４】
また、検証の際には、ソフトウェアモジュールごとの検証以外にもソフトウェアモジュールの起動順を考慮した検証を行っても良い。具体的には、起動ログ５２に記録されている順番に連結したソフトウェアモジュールのハッシュ値を計測し、受信したＰＣＲ１１２に含まれるハッシュ値と比較する。ハッシュ値が一致すれば、検証に成功したとみなすことが出来る。
【００５５】
Ｓ７０９では、Ｓ７０８における検証が成功したか否かを判定する。検証に成功したと判定された場合（Ｓ７０９でＹＥＳの場合）、Ｓ７１０に処理を進める。検証に成功していないと判定された場合（Ｓ７０９でＮＯの場合）、Ｓ７０４に処理を進め、ＰＣＲ１１２の情報自体に改竄がなされていると判定した場合と同様に、エラーメッセージを出力する。
【００５６】
Ｓ７１０では、アグリゲートハッシュ値にサーバ２１の署名を付与し、検証成功情報としてクライアントＡ２２に送信すると共に、機器証明に成功した場合に行う処理を実施する。アグリゲートハッシュ値とは、起動ログ５２に記載の全てのソフトウェアモジュールのハッシュ値を連結したものである。尚、ソフトウェアモジュールの起動順を考慮した検証を行った場合は、アグリゲートハッシュ値を送付するが、ソフトウェアモジュールの起動順を考慮した検証を行わなかった場合は、アグリゲートハッシュ値を含まない検証成功情報を送付しても良い。以上が本実施形態におけるサーバ２１の機器証明処理フローである。
【００５７】
以上説明したように、本実施形態によれば、ハイバネーションに状態から復帰した場合、ハイバネーション前後に起動したコンポーネントそれぞれを識別する処理を行う。そして、識別した情報に基づいて機器証明を実施することにより、ハイバネーション状態から復帰した後であっても、機器証明を実現することができる。
【００５８】
尚、本実施形態においては、ハイバネーション状態に入る前に起動したソフトウェアモジュールについては、検証の対象から除外した。しかしながら、ハイバネーション状態に入る前に起動したコンポーネントについても、バックグラウンドプロセスによって再起動するなどしてハッシュ値を順次取得し、完全性を検証しても良い。バックグラウンドプロセスによって完全性を検証することによって、時間差はあるが、起動済みのすべてのソフトウェアモジュールについての第二の機器証明を行うことが可能になる。
【００５９】
（第２の実施形態）
以上に説明した第１の実施形態では、情報処理装置１１０のｋｅｒｎｅｌ１７が、識別情報に基づき、対象のコンポーネントがハイバネーション状態からの復帰前に起動されたものであるか否かの識別をしていた。本実施形態では、ソフトウェアモジュールが、当該コンポーネントの識別を行う手法について説明する。
【００６０】
（情報処理装置の構成）
本実施形態における情報処理装置１１０の構成、及びシステム構成は、第１の実施形態と同様であるため、詳細な説明は省略する。また、本実施形態に適用可能な機器証明処理フローの概要、ハイバネーションからの復帰処理フロー、及び検証処理に関しても第１の実施形態と同様であるため、詳細な説明は省略する。
【００６１】
以下、図９を用いてクライアントがハイバネーション状態に入る処理フローを説明する。本実施形態では、ハイバネーション状態に入る前のＰＣＲ１１２の状態は図６（Ａ）の状態であり、起動ログの状態は図７（Ａ）の状態であるものとする。
【００６２】
Ｓ９０１では、上記の状態からクライアントＡ２２がハイバネーション状態に入ると、ｋｅｒｎｅｌ１７はハイバネーションのための専用ソフトウェアモジュールを起動する。
【００６３】
この専用ソフトウェアモジュールは、ｋｅｒｎｅｌ１７に代わって、第１の実施形態で説明したハイバネーション前後に起動したコンポーネントの識別情報の取得、及び識別情報の保護処理を実施する。
【００６４】
Ｓ９０２では、専用ソフトウェアモジュールが起動するとｋｅｒｎｅｌ１７は他のソフトウェアモジュールと同様に専用ソフトウェアモジュールを計測し、計測値をＰＣＲ１１２に登録する（Ｓ９０１）。計測した結果は、図６（Ｄ）に示すようになる。同時に、ｋｅｒｎｅｌ１７が管理する起動ログは、図７（Ｃ）に示す状態となる。専用ソフトウェアモジュールが計測されると、識別情報を取得する（Ｓ３１）。
【００６５】
識別情報の取得方法を含めた以降の処理に関しては、第１の実施例と同様であるため詳細な説明は省略する。ただし、識別情報の取得を含むハイバネーション状態に入る処理に関する以降の処理において、ｋｅｒｎｅｌ１７ではなく、専用ソフトウェアモジュールが実施することとなる。
【００６６】
以上説明したように、本実施形態では、対象のコンポーネントがハイバネーション状態からの復帰前に起動されたものであるか否かの識別をソフトウェアモジュールが行う。よって、本実施形態によれば、識別情報に基づくコンポーネントの識別を行う機能を持たせるためにｋｅｒｎｅｌ１７を変更することなく、アプリケーションを利用して実装することが可能となる。
【００６７】
（第３の実施形態）
以上で説明した第１及び第２の実施形態では、情報処理装置１１０は、識別情報に基づき、ハイバネーション状態に入る前に起動したソフトウェアモジュールについては完全性の検証を行っていない。よって、ハイバネーションの状態に入り、ハイバネーションの状態から復帰する前に起動済みのソフトウェアモジュールが改竄された場合、サーバ２１はその改竄を検知することができなかった。本実施形態では、ハイバネーションに入った後になされた改竄の検知も含めた機器証明を実施する手法について説明する。
【００６８】
（情報処理装置の構成）
本実施形態における情報処理装置１１０の構成、及びシステム構成は、第１、及び第２の実施形態と同様であるため、詳細な説明は省略する。また、本実施形態に適用可能な機器証明処理フローの概要、及び検証処理に関しても第１の実施形態と同様であるため、詳細な説明は省略する。
【００６９】
以下、図１０を用いて本実施形態におけるクライアントがハイバネーション状態に入る処理フローを説明する。図１０に示すように、本実施形態では、第１の実施形態の処理に加えてハイバネーションイメージの計測、ハイバネーションイメージを用いたＴＰＭのＳＥＡＬ機能を実施する。ハイバネーションイメージとは、一時的にＮｖＲＡＭに記録している機器の作動状態を示すデータのことである。ハイバネーション状態からの復帰時に記録したハイバネーションイメージを展開することで、元の作業状態を復元することが可能になる。また、ＴＰＭのＳＥＡＬ機能とは、ＴＰＭに不揮発に記録されている任意のデータを暗号化する処理である。本実施形態においては暗号化の鍵情報にハイバネーションイメージを用いる。よって、仮に、ハイバネーション状態に入った後にハイバネーションイメージに対して改竄がなされると、ＴＰＭに不揮発に記録されている任意のデータを復号することが出来なくなり、容易に改竄検知をすることが出来る。
【００７０】
Ｓ１００１では、クライアントＡ２２は、ハイバネーション状態に入る処理が開始されると、ハイバネーションイメージを計測する。計測されたハイバネーションイメージのハッシュ値は、ＰＣＲ１１２に登録される。
【００７１】
ハイバネーションイメージの計測が終了すると、Ｓ１００２では、クライアントＡ２２が、登録済みのＢＩＯＳ１５、ｂｏｏｔ  ｌｏａｄｅｒ１６、ｋｅｒｎｅｌ１７、及びハイバネーションイメージのＰＣＲ１１２の値を条件として、前記任意のデータを暗号化する。ここでの暗号化とは、前述のＴＰＭのＳＥＡＬ機能のことである。
【００７２】
本実施形態においては、ＢＩＯＳ１５、ｂｏｏｔ  ｌｏａｄｅｒ１６、ｋｅｒｎｅｌ１７のＰＣＲ１１２の値も用いて暗号化処理を行っている。しかし、ハイバネーションイメージのＰＣＲ１１２の値だけを条件として、暗号化処理を行ってもよい。尚、任意のデータを暗号化した後の処理については、第１の実施形態と同様であるため説明は省略する。
【００７３】
次に、ハイバネーションからの復帰後の処理に関して説明する。ハイバネーションからの復帰後の処理は、第１の実施形態における図８で説明した処理とほぼ同様である。ただし、図８のＳ８０４におけるデバイス初期化の処理内容が異なる。尚、デバイス初期化の処理を除いた機器証明処理フローの概要は、第１の実施形態と同様であるため、説明は省略する。
【００７４】
図１１を用いて、本実施形態におけるデバイス初期化の処理を説明する。
【００７５】
Ｓ１１０１では、第１の実施形態で説明したように、ＢＩＯＳ１５、ｂｏｏｔ  ｌｏａｄｅｒ１６、ｋｅｒｎｅｌ１７の順に起動し、再度ＰＣＲ１１２に登録する。Ｓ１１０２では、更にハイバネーションイメージを計測し、ＰＣＲ１１２に登録する。
【００７６】
ハイバネーションイメージの計測が終了すると、Ｓ１１０３では、前述したハイバネーション状態に入る処理フローで暗号化した任意のデータを復号する。復号は、Ｓ１１０１、及び１１０２で計測したＰＣＲ１１２の情報に基づいて行われる。
【００７７】
Ｓ１１０４では、Ｓ１１０３において復号に成功したか否かを判定する。復号に成功した場合（Ｓ１１０４でＹＥＳの場合）、Ｓ１１０６に処理を進める。復号に成功しなかった場合（Ｓ１１０４でＮＯの場合）、Ｓ１１０５に処理を進める。
【００７８】
ハイバネーションからの復帰後のＰＣＲ１１２を条件として復号するため、ハイバネーション状態に入る前のＰＣＲ１１２の値とハイバネーションからの復帰後のＰＣＲ１１２の値が同じである場合は、復号に成功する。一方、ハイバネーション状態に入る前のＰＣＲ１１２の値とハイバネーションからの復帰後のＰＣＲ１１２の値が同じでない場合は復号に失敗する。
【００７９】
Ｓ１１０５では、エラーメッセージを表示する。Ｓ１１０６では、通常起動し、デバイス初期化処理を終了する。つまり、復号の成功は、ハイバネーションの状態に入った後にハイバネーションイメージが変化していないことを示しているため、ハイバネーション状態に入る前にコンポーネントに対して改竄されていないことを確認することが出来る。
【００８０】
以上説明したように、ハイバネーションイメージを利用した処理を行うことにより、機器証明に加えて、ハイバネーション状態に入った後の電源断時におこなわれた改竄を検知することができる。
【００８１】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８２】
６２  識別情報取得
６５  完全性レポート生成
６６  完全性レポート送付
７０８  完全性検証
【図１】
0006391439.tif 000002
【図２】
0006391439.tif 000003
【図３】
0006391439.tif 000004
【図４】
0006391439.tif 000005
【図５】
0006391439.tif 000006
【図６】
0006391439.tif 000007
【図７】
0006391439.tif 000008
【図８】
0006391439.tif 000009
【図９】
0006391439.tif 000010
【図１０】
0006391439.tif 000011
【図１１】
0006391439.tif 000012