(57)【特許請求の範囲】
【請求項１】
検証される装置である検証対象装置において作動するようにインストールされた完全性検証モジュールと、前記検証対象装置の完全性を検証する完全性検証装置とを備える遠隔完全性検証システムであって、
前記完全性検証装置は、
検査に用いるための乱数情報を含む検査要求を前記検証対象装置に送信する要求送信手段を備え、
前記検証対象装置は、
前記完全性検証モジュールを起動する起動手段を備え、
前記完全性検証モジュールは、
前記起動手段が前記完全性検証モジュールを起動する際に記録された分岐情報を分岐情報記憶手段に記憶させる分岐情報記憶制御部と、
前記起動手段によって起動されたか否かを前記分岐情報記憶手段に記憶された前記分岐情報に基づいて判定する起動判定部と、
前記起動手段によって起動されていないと前記起動判定部によって判定された場合に、異常な起動を示す情報を通知する異常起動通知部と、
前記起動手段によって起動されたと前記起動判定部によって判定された場合に、前記要求送信手段によって送信された前記検査要求を受信する要求受信部と、
前記要求受信部によって受信された前記乱数情報に基づくコードを含めた、前記完全性検証モジュール自身のプログラムコードのチェックサムを計算するチェックサム計算部と、
前記検証対象装置における検査情報を前記完全性検証装置に送信する検査情報送信部と、を有し、
前記検査情報送信部は、前記異常起動通知部によって通知された異常な起動を示す情報、又は前記チェックサム計算部によって計算された前記チェックサムを含む前記検査情報を前記完全性検証装置に送信し、
前記完全性検証装置は、
前記検証対象装置の前記完全性検証モジュールから前記検査情報を受信する検査情報受信手段と、
受信した前記検査情報が異常な起動を示す情報を含む場合に、前記検証対象装置が完全ではないと判定する検査情報判定手段と、
受信した前記検査情報が前記チェックサムを含む場合に、計算された前記チェックサムを検証するチェックサム検証手段と、を備え、
前記検査情報判定手段は、前記検査情報が異常な起動を示す情報を含まない場合に、前記チェックサム検証手段によって検証された情報に基づいて、前記検証対象装置が完全であるか否かをさらに判定する、
遠隔完全性検証システム。
【請求項２】
前記完全性検証装置は、
前記検査情報送信部による前記検査要求の送信から、前記検査情報受信手段による前記検査情報の受信までの所要時間を測定する時間測定手段と、
前記時間測定手段によって測定された所要時間が所定値よりも小さいか否かを判定する所要時間判定手段と、をさらに備え、
前記検査情報判定手段は、前記チェックサム検証手段によって検証された情報に基づいて前記検証対象装置が完全であると判定した場合に、さらに、前記所要時間判定手段による判定に基づいて、前記検証対象装置が完全であるか否かを判定する、
請求項１に記載の遠隔完全性検証システム。
【請求項３】
前記完全性検証モジュールは、
検査対象となるプラットフォームのプログラムコードからハッシュ値を計算するハッシュ値計算部をさらに有し、
前記検査情報送信部は、前記ハッシュ値計算部によって計算された前記ハッシュ値をさらに検査情報に含めて送信し、
前記完全性検証装置は、
前記検査情報受信手段によって受信された前記ハッシュ値を検証するハッシュ値検証手段をさらに備え、
前記検査情報判定手段は、前記所要時間判定手段による判定に基づいて、前記検証対象装置が完全であると判定した場合に、さらに、前記ハッシュ値検証手段によって検証された情報に基づいて、前記検証対象装置が完全であるか否かを判定する、
請求項２に記載の遠隔完全性検証システム。
【請求項４】
前記チェックサム計算部は、前記検査情報に含まれる乱数情報に基づいて、前記完全性検証モジュール自身のプログラムコードのうち選択したプログラムコードに基づいて、前記チェックサムを計算する、請求項１から３のいずれか一項に記載する遠隔完全性検証システム。
【請求項５】
前記チェックサム計算部は、前記検査情報に含まれる乱数情報に基づいて、
前記分岐情報記憶手段に記憶された前記分岐情報を選択し、選択した前記分岐情報を含めて、前記チェックサムを計算する、請求項１から４のいずれか一項に記載する遠隔完全性検証システム。
【請求項６】
請求項１に記載の遠隔完全性検証システムが実行する方法であって、
前記完全性検証装置において、
前記要求送信手段が、検査に用いるための乱数情報を含む検査要求を前記検証対象装置に送信する要求送信ステップと、
前記検証対象装置において、
前記起動手段が、前記完全性検証モジュールを起動する起動ステップと、
前記完全性検証モジュールにおいて、
前記分岐情報記憶制御部が、前記起動手段が前記完全性検証モジュールを起動する際に記録された分岐情報を分岐情報記憶手段に記憶させる分岐情報記憶制御ステップと、
前記起動判定部が、前記起動ステップによって起動されたか否かを前記分岐情報記憶手段に記憶された前記分岐情報に基づいて判定する起動判定ステップと、
前記異常起動通知部が、前記起動ステップによって起動されていないと前記起動判定ステップによって判定された場合に、異常な起動を示す情報を通知する異常起動通知ステップと、
前記要求受信部が、前記起動手段によって起動されたと前記起動判定部によって判定された場合に、前記要求送信手段によって送信された前記検査要求を受信する要求受信ステップと、
前記チェックサム計算部が、前記要求受信ステップによって受信された前記乱数情報に基づくコードを含めた、前記完全性検証モジュール自身のプログラムコードのチェックサムを計算するチェックサム計算ステップと、
前記検査情報送信部が、前記異常起動通知ステップによって通知された異常な起動を示す情報、又は前記チェックサム計算ステップによって計算された前記チェックサムを含む前記検査情報を前記完全性検証装置に送信するステップと、
前記完全性検証装置において、
前記検査情報受信手段が、前記検証対象装置の前記完全性検証モジュールから前記検査情報を受信する検査情報受信ステップと、
前記検査情報判定手段が、受信した前記検査情報が異常な起動を示す情報を含む場合に、前記検証対象装置が完全ではないと判定する検査情報判定ステップと、
前記チェックサム検証手段が、受信した前記検査情報が前記チェックサムを含む場合に、計算された前記チェックサムを検証するチェックサム検証ステップと、
前記検査情報判定手段が、前記検査情報が異常な起動を示す情報を含まない場合に、前記チェックサム検証ステップによって検証された情報に基づいて、前記検証対象装置が完全であるか否かをさらに判定するステップと、を備える方法。
【請求項７】
請求項１に記載の遠隔完全性検証システムにおいて、前記完全性検証装置のコンピュータ及び前記検証対象装置のコンピュータに、請求項６に記載の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遠隔完全性検証システム、方法及びプログラムに関する。
【背景技術】
【０００２】
従来より、コンピュータのセキュリティ対策として様々な手法が提案されている。例えば、特許文献１から４や、非特許文献１から５などが知られている。
【０００３】
特許文献１は、コンピュータ機器に搭載されたモジュールを利用して当該コンピュータにインストールされたＯＳ、アプリケーションなどのソフトウェアの完全性を検証する技術である。
【０００４】
特許文献２は、コンピュータなど情報処理装置にインストールされたアプリケーションの完全性を検証する技術である。当該技術は、まず当該装置に搭載されたＴＰＭ（Ｔｒｕｓｔ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）など完全性検証の信頼性の根幹（Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ）となるモジュールをベースに、当該装置にインストールされたＯＳの完全性検証を行う。その後、完全性が検証された当該ＯＳがアプリケーションの完全性を検証し、完全性が保証された形で当該アプリケーションを起動することで、当該アプリケーションの完全性を保証する。
【０００５】
特許文献３は、コンピュータ機器にインストールされたＯＳの完全性を検証する技術である。当該ＯＳのシャットダウン時に当該機器のＢＩＯＳ、ブートローダ、当該ＯＳの完全性を検証することで、再起動時の検証に係る処理を軽減し、起動速度を向上させている。当該技術においても完全性検証の信頼性の根幹はＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）など特別なハードウェアに委ねている。
【０００６】
特許文献４は、装置のＯＳの完全性を検証する際に必要となる鍵を、当該装置とは別のサーバ装置に保存することで、当該鍵の漏えいによる完全性検証の偽装を防止する技術である。
【０００７】
非特許文献１及び非特許文献２は、検証対象装置内のＯＳなどプラットフォームソフトウェアの検証を、当該プラットフォームソフトウェア内にインストールされたソフトウェアモジュールによって行う技術である。当該技術は、当該ソフトウェアモジュールと検証サーバで構成される。検証を実施する際には、まず当該検証サーバから当該モジュールへ乱数を送信する。当該モジュールは当該乱数と当該モジュール自身のコード、及び検証用署名生成関数のコードから検証用署名を生成し、当該検証サーバに送信する。当該モジュールは、さらに検証用署名生成関数を用いてＯＳのコードから検証用署名を生成し、当該検証サーバに送信する。当該検証サーバは送信された検証用署名を検証し、当該署名が正しい値の場合のみ当該検証対象装置内のＯＳは改ざんされていないと判定する。
【０００８】
非特許文献３は、ソフトウェアモジュールをもとに検証対象装置内のＯＳの完全性を検証する技術である。当該技術は、複数のプロセッサをもつ装置において、攻撃者が複数のプロセッサを用いて当該モジュールよりも先に偽装した検証用署名を生成することで検出を回避する攻撃への対策が施されている。
【０００９】
非特許文献４は、検証対象装置内の仮想プラットフォームソフトウェア（ハイパーバイザ）を、当該装置に搭載されたハードウェアモジュールを用いて検証する技術である。さらに当該技術は、検証対象装置に検証用に改修された独自のＢＩＯＳを導入することで完全性検証を実現している。
【００１０】
非特許文献５は、仮想環境上のＯＳの検証を、ハイパーバイザ内で当該ＯＳを監視することで実施する技術である。当該技術は、攻撃者が当該技術の機能をもつソフトウェアモジュールを改ざんできないなど、攻撃者に制約がある環境下でのみ正しい検証を実施することができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特表２００８−５３７２２４号公報
【特許文献２】特開２０１０−１８２１９６号公報
【特許文献３】特開２０１２−３２９２５号公報
【特許文献４】特開２０１１−３０２０号公報
【非特許文献】
【００１２】
【非特許文献１】Ｓｅｓｈａｄｒｉ，Ａｒｖｉｎｄ，Ｍａｒｋ  Ｌｕｋ，Ｅｌａｉｎｅ  Ｓｈｉ，Ａｄｒｉａｎ  Ｐｅｒｒｉｇ，Ｌｅｅｎｄｅｒｔ  ｖａｎ  Ｄｏｏｒｎ，ａｎｄ  Ｐｒａｄｅｅｐ  Ｋｈｏｓｌａ．  ”Ｐｉｏｎｅｅｒ：ｖｅｒｉｆｙｉｎｇ  ｃｏｄｅ  ｉｎｔｅｇｒｉｔｙ  ａｎｄ  ｅｎｆｏｒｃｉｎｇ  ｕｎｔａｍｐｅｒｅｄ  ｃｏｄｅ  ｅｘｅｃｕｔｉｏｎ  ｏｎ  ｌｅｇａｃｙ  ｓｙｓｔｅｍｓ．”  Ｉｎ  ＡＣＭ  ＳＩＧＯＰＳ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍｓ  Ｒｅｖｉｅｗ，ｖｏｌ．３９，ｎｏ．５，ｐｐ．１−１６．ＡＣＭ，２００５．
【非特許文献２】Ｋｏｖａｈ，Ｘｅｎｏ，Ｃｏｒｅｙ  Ｋａｌｌｅｎｂｅｒｇ，Ｃｈｒｉｓ  Ｗｅａｔｈｅｒｓ，Ａｍｙ  Ｈｅｒｚｏｇ，Ｍａｔｔｈｅｗ  Ａｌｂｉｎ，ａｎｄ  Ｊｏｈｎ  Ｂｕｔｔｅｒｗｏｒｔｈ．  ”Ｎｅｗ  ｒｅｓｕｌｔｓ  ｆｏｒ  Ｔｉｍｉｎｇ−Ｂａｓｅｄ  ａｔｔｅｓｔａｔｉｏｎ．”  Ｉｎ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｒｉｖａｃｙ  （ＳＰ），２０１２  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ，ｐｐ．２３９−２５３．ＩＥＥＥ，２０１２．
【非特許文献３】Ｙａｎ，Ｑｉａｎｇ，Ｊｉｎ  Ｈａｎ，Ｙｉｎｇｊｉｕ  Ｌｉ，Ｒｏｂｅｒｔ  Ｈ．  Ｄｅｎｇ，ａｎｄ  Ｔｉｅｙａｎ  Ｌｉ．  ”Ａ  ｓｏｆｔｗａｒｅ−ｂａｓｅｄ  ｒｏｏｔ−ｏｆ−ｔｒｕｓｔ  ｐｒｉｍｉｔｉｖｅ  ｏｎ  ｍｕｌｔｉｃｏｒｅ  ｐｌａｔｆｏｒｍｓ．”  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ６ｔｈ  ＡＣＭ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ，Ｃｏｍｐｕｔｅｒ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｅｃｕｒｉｔｙ，ｐｐ．３３４−３４３．ＡＣＭ，２０１１．
【非特許文献４】Ａｚａｂ，Ａｈｍｅｄ  Ｍ．，Ｐｅｎｇ  Ｎｉｎｇ，Ｚｈｉ  Ｗａｎｇ，Ｘｕｘｉａｎ  Ｊｉａｎｇ，Ｘｉａｏｌａｎ  Ｚｈａｎｇ，ａｎｄ  Ｎａｔｈａｎ  Ｃ．  Ｓｋａｌｓｋｙ．  ”ＨｙｐｅｒＳｅｎｔｒｙ：  ｅｎａｂｌｉｎｇ  ｓｔｅａｌｔｈｙ  ｉｎ−ｃｏｎｔｅｘｔ  ｍｅａｓｕｒｅｍｅｎｔ  ｏｆ  ｈｙｐｅｒｖｉｓｏｒ  ｉｎｔｅｇｒｉｔｙ．”  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １７ｔｈ  ＡＣＭ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  ａｎｄ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｓｅｃｕｒｉｔｙ，ｐｐ．３８−４９．ＡＣＭ，２０１０．
【非特許文献５】Ｓｈａｒｉｆ，Ｍｏｎｉｒｕｌ  Ｉ．，Ｗｅｎｋｅ  Ｌｅｅ，Ｗｅｉｄｏｎｇ  Ｃｕｉ，ａｎｄ  Ａｎｄｒｅａ  Ｌａｎｚｉ．  ”Ｓｅｃｕｒｅ  ｉｎ−ｖｍ  ｍｏｎｉｔｏｒｉｎｇ  ｕｓｉｎｇ  ｈａｒｄｗａｒｅ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ．”  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １６ｔｈ  ＡＣＭ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  ａｎｄ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｓｅｃｕｒｉｔｙ，ｐｐ．４７７−４８７．ＡＣＭ，２００９．
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、特許文献１から特許文献４、非特許文献４では、ＴＰＭなどのハードウェアモジュールの利用を前提においている。そのため、当該モジュールを搭載していない装置に対しては適用できない。また、ハードウェアモジュールに搭載されている暗号アルゴリズム、ハッシュアルゴリズムの危殆化、さらに当該モジュールの実装に脆弱性が見つかった際は、当該技術による検証自体を信頼できなくなる。その際、信頼性の維持のためには当該モジュールの置換が必要となるが、それには新しいモジュールの購入、置換作業など金銭面、作業面のコストがかかる。
また、非特許文献１から非特許文献３は、上記のハードウェアモジュールを利用する際の欠点を鑑み、ソフトウェアで実現されたモジュールをベースに完全性検証を実施している。しかしながら、攻撃者が検証処理の開始を検知して自身の攻撃コードを隠ぺいするような検証を回避する行動を行う場合に対して対策がなされていない。
さらに、非特許文献５は、攻撃者に制約下がある環境下でのみ有効となる技術である。そのため、上記のような検証回避を行う攻撃者、及び検証を行うソフトウェアモジュールの改ざんを行う攻撃者に対して耐性がない。
【００１４】
そこで、上述のような従来の技術の欠点を鑑み、ＴＰＭなど特殊なハードウェアモジュールの搭載を前提とせず、攻撃者の検証回避攻撃の検出が可能な、プラットフォームの完全性検証を実現するシステムが求められている。
【００１５】
本発明は、特殊なハードウェアモジュールの搭載を前提とせず、攻撃者の検証回避攻撃の検出が可能な、プラットフォームの完全性検証を実現する遠隔完全性検証システム、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
具体的には、以下のような解決手段を提供する。
（１）  検証される装置である検証対象装置において作動するようにインストールされた完全性検証モジュールと、前記検証対象装置の完全性を検証する完全性検証装置とを備える遠隔完全性検証システムであって、前記完全性検証装置は、検査に用いるための乱数情報を含む検査要求を前記検証対象装置に送信する要求送信手段を備え、前記検証対象装置は、前記完全性検証モジュールを起動する起動手段を備え、前記完全性検証モジュールは、前記起動手段が前記完全性検証モジュールを起動する際に記録された分岐情報を分岐情報記憶手段に記憶させる分岐情報記憶制御部と、前記起動手段によって起動されたか否かを前記分岐情報記憶手段に記憶された前記分岐情報に基づいて判定する起動判定部と、前記起動手段によって起動されていないと前記起動判定部によって判定された場合に、異常な起動を示す情報を通知する異常起動通知部と、前記起動手段によって起動されたと前記起動判定部によって判定された場合に、前記要求送信手段によって送信された前記検査要求を受信する要求受信部と、前記要求受信部によって受信された前記乱数情報に基づくコードを含めた、前記完全性検証モジュール自身のプログラムコードのチェックサムを計算するチェックサム計算部と、前記検証対象装置における検査情報を前記完全性検証装置に送信する検査情報送信部と、を有し、前記検査情報送信部は、前記異常起動通知部によって通知された異常な起動を示す情報、又は前記チェックサム計算部によって計算された前記チェックサムを含む前記検査情報を前記完全性検証装置に送信し、前記完全性検証装置は、前記検証対象装置の前記完全性検証モジュールから前記検査情報を受信する検査情報受信手段と、受信した前記検査情報が異常な起動を示す情報を含む場合に、前記検証対象装置が完全ではないと判定する検査情報判定手段と、受信した前記検査情報が前記チェックサムを含む場合に、計算された前記チェックサムを検証するチェックサム検証手段と、を備え、前記検査情報判定手段は、前記検査情報が異常な起動を示す情報を含まない場合に、前記チェックサム検証手段によって検証された情報に基づいて、前記検証対象装置が完全であるか否かをさらに判定する、遠隔完全性検証システム。
【００１７】
（１）の構成によれば、遠隔完全性検証システムにおいて、完全性検証装置は、検査に用いるための乱数情報を含む検査要求を検証対象装置に送信する。次に、検証対象装置は、完全性検証モジュールを起動し、完全性検証モジュールは、起動手段が完全性検証モジュールを起動する際に記録された分岐情報を分岐情報記憶手段に記憶させ、起動手段によって起動されたか否かを分岐情報記憶手段に記憶された分岐情報に基づいて判定する。完全性検証モジュールは、起動手段によって起動されていないと判定した場合に、異常な起動を示す情報を通知し、起動手段によって起動されたと判定した場合に、送信された検査要求を受信し、受信した乱数情報に基づくコードを含めた、完全性検証モジュール自身のプログラムコードのチェックサムを計算し、計算したチェックサムを含む検査情報を完全性検証装置に送信する。完全性検証装置は、検証対象装置の完全性検証モジュールから検査情報を受信し、受信した検査情報が異常な起動を示す情報を含む場合に、検証対象装置が完全ではないと判定し、受信した検査情報がチェックサムを含む場合に、計算されたチェックサムを検証し、検証した情報に基づいて、検証対象装置が完全であるか否かをさらに判定する。
【００１８】
したがって、（１）に係る遠隔完全性検証システムは、特殊なハードウェアモジュールの搭載を前提とせずに、攻撃者の検証回避攻撃の検出を可能にし、プラットフォームの完全性検証を実現する。
【００１９】
（２）  前記完全性検証装置は、前記検査情報送信手段による前記検査要求の送信から、前記検査情報受信手段による前記検査情報の受信までの所要時間を測定する時間測定手段と、前記時間測定手段によって測定された所要時間が所定値よりも小さいか否かを判定する所要時間判定手段と、をさらに備え、前記検査情報判定手段は、前記チェックサム検証手段によって検証された情報に基づいて前記検証対象装置が完全であると判定した場合に、さらに、前記所要時間判定手段による判定に基づいて、前記検証対象装置が完全であるか否かを判定する、（１）に記載の遠隔完全性検証システム。
【００２０】
したがって、（２）に係る遠隔完全性検証システムは、検証対象装置による所要時間をさらに判定することによって、攻撃者の検証回避攻撃の検出をさらに可能にし、プラットフォームの完全性検証を実現する。
【００２１】
（３）  前記完全性検証モジュールは、検査対象となるプラットフォームのプログラムコードからハッシュ値を計算するハッシュ値計算部をさらに有し、前記検査情報送信部は、前記ハッシュ値計算部によって計算された前記ハッシュ値をさらに検査情報に含めて送信し、前記完全性検証装置は、前記検査情報受信手段によって受信された前記ハッシュ値を検証するハッシュ値検証手段をさらに備え、前記検査情報判定手段は、前記所要時間判定手段による判定に基づいて、前記検証対象装置が完全であると判定した場合に、さらに、前記ハッシュ値検証手段によって検証された情報に基づいて、前記検証対象装置が完全であるか否かを判定する、（２）に記載の遠隔完全性検証システム。
【００２２】
したがって、（３）に係る遠隔完全性検証システムは、検証対象装置により計算されたハッシュ値をさらに判定することによって、攻撃者の検証回避攻撃の検出をさらに可能にし、プラットフォームの完全性検証を実現する。
【００２３】
（４）  前記チェックサム計算部は、前記検査情報に含まれる乱数情報に基づいて、前記完全性検証モジュール自身のプログラムコードのうち選択したプログラムコードに基づいて、前記チェックサムを計算する、（１）から（３）のいずれか一項に記載する遠隔完全性検証システム。
【００２４】
したがって、（４）に係る遠隔完全性検証システムは、選択したプログラムコードにより計算したチェックサム値をさらに判定することによって、攻撃者の検証回避攻撃の検出をさらに可能にし、プラットフォームの完全性検証を実現する。
【００２５】
（５）  前記チェックサム計算部は、前記検査情報に含まれる乱数情報に基づいて、前記分岐情報記憶手段に記憶された前記分岐情報を選択し、選択した前記分岐情報を含めて、前記チェックサムを計算する、（１）から（４）のいずれか一項に記載する遠隔完全性検証システム。
【００２６】
したがって、（５）に係る遠隔完全性検証システムは、分岐情報の履歴情報を含めて計算されたチェックサム値をさらに判定することによって、攻撃者の検証回避攻撃の検出をさらに可能にし、プラットフォームの完全性検証を実現する。
【００２７】
（６）  （１）に記載の遠隔完全性検証システムが実行する方法であって、前記完全性検証装置において、前記要求送信手段が、検査に用いるための乱数情報を含む検査要求を前記検証対象装置に送信する要求送信ステップと、前記検証対象装置において、前記起動手段が、前記完全性検証モジュールを起動する起動ステップと、前記完全性検証モジュールにおいて、前記分岐情報記憶制御部が、前記起動手段が前記完全性検証モジュールを起動する際に記録された分岐情報を分岐情報記憶手段に記憶させる分岐情報記憶制御ステップと、前記起動判定部が、前記起動ステップによって起動されたか否かを前記分岐情報記憶手段に記憶された前記分岐情報に基づいて判定する起動判定ステップと、前記異常起動通知部が、前記起動ステップによって起動されていないと前記起動判定ステップによって判定された場合に、異常な起動を示す情報を通知する異常起動通知ステップと、前記要求受信部が、前記起動手段によって起動されたと前記起動判定部によって判定された場合に、前記要求送信手段によって送信された前記検査要求を受信する要求受信ステップと、前記チェックサム計算部が、前記要求受信ステップによって受信された前記乱数情報に基づくコードを含めた、前記完全性検証モジュール自身のプログラムコードのチェックサムを計算するチェックサム計算ステップと、前記検査情報送信部が、前記異常起動通知ステップによって通知された異常な起動を示す情報、又は前記チェックサム計算ステップによって計算された前記チェックサムを含む前記検査情報を前記完全性検証装置に送信するステップと、前記完全性検証装置において、前記検査情報受信手段が、前記検証対象装置の前記完全性検証モジュールから前記検査情報を受信する検査情報受信ステップと、前記検査情報判定手段が、受信した前記検査情報が異常な起動を示す情報を含む場合に、前記検証対象装置が完全ではないと判定する検査情報判定ステップと、前記チェックサム検証手段が、受信した前記検査情報が前記チェックサムを含む場合に、計算された前記チェックサムを検証するチェックサム検証ステップと、前記検査情報判定手段が、前記検査情報が異常な起動を示す情報を含まない場合に、前記チェックサム検証ステップによって検証された情報に基づいて、前記検証対象装置が完全であるか否かをさらに判定するステップと、を備える方法。
【００２８】
したがって、（６）に係る方法は、特殊なハードウェアモジュールの搭載を前提とせずに、攻撃者の検証回避攻撃の検出を可能にし、プラットフォームの完全性検証を実現することができる。
【００２９】
（７）  （１）に記載の遠隔完全性検証システムにおいて、前記完全性検証装置のコンピュータ及び前記検証対象装置のコンピュータに、（６）に記載の各ステップを実行させるためのプログラム。
【００３０】
したがって、（７）に係るプログラムは、コンピュータに実行させて、特殊なハードウェアモジュールの搭載を前提とせずに、攻撃者の検証回避攻撃の検出を可能にし、プラットフォームの完全性検証を実現するようにすることができる。
【発明の効果】
【００３１】
本発明によれば、ＴＰＭなど特殊なハードウェアモジュールの搭載を前提とせずに、攻撃者の検証回避攻撃の検出を可能にし、プラットフォームの完全性検証を実現することができる。
すなわち、本発明によれば、以下のように攻撃を検知することができる。
（１）攻撃者が完全性検証モジュールのコードを改ざんしようと攻撃しても、完全性検証モジュールのコードのチェックサムを計算、照合することで検知できる。
（２）攻撃者がプラットフォームソフトウェアのコードを改ざんしようと攻撃しても、プラットフォームソフトウェアのコードのハッシュ値を計算、照合することで検知できる。
（３）攻撃者が割り込み処理、メモリ上の分岐元アドレス、分岐先アドレスの書換によって検証手順の途中に介在し、改ざん、挿入コードを隠ぺいし、検証手順終了後に当該コードをメモリ上に再ロードする攻撃をしても、割り込みの無効化によって割り込みによる検証手順への介在を防止できる。また、命令分岐の履歴情報を加味したチェックサムの計算により、攻撃者の介在を検知できる。さらに、所要時間の検査によって改ざん、挿入コードの隠ぺい処理によって発生する所要時間の遅延を検知できる。
（４）攻撃者が事前にチェックサムを計算し、それを検査結果として送信することで検証処理を成功させようと攻撃しても、チェックサムの計算時に、チェックサムの計算に利用するコードをランダムに選択することで、事前計算が不可能となる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態に係る遠隔完全性検証システムの構成を示す図である。
【図２】本発明の一実施形態に係る遠隔完全性検証システムにおける完全性検証装置の構成を示す図である。
【図３】本発明の一実施形態に係る遠隔完全性検証システムにおける完全性検証モジュールの構成を示す図である。
【図４】本発明の一実施形態に係る遠隔完全性検証システムの処理を示すフローチャートである。
【発明を実施するための形態】
【００３３】
以下、本発明の実施形態について、図を参照しながら説明する。
図１は、本発明の一実施形態に係る遠隔完全性検証システム１の構成を示す図である。遠隔完全性検証システム１は、検証される装置である検証対象装置３０において作動するようにインストールされた完全性検証モジュール３１と、検証対象装置３０の完全性を検証する完全性検証装置１０とを備える。以下の実施形態では、検証対象となるプラットフォームとしてハイパーバイザ（仮想化環境プラットフォームソフトウェア）を想定する。
【００３４】
図２は、本発明の一実施形態に係る遠隔完全性検証システム１における完全性検証装置１０の構成を示す図である。図３は、本発明の一実施形態に係る遠隔完全性検証システム１における完全性検証モジュール３１の構成を示す図である。
遠隔完全性検証システム１における完全性検証装置１０は、検査情報検証手段１１として検査情報判定手段１１１と、チェックサム検証手段１１２と、時間測定手段１１３と、所要時間判定手段１１４と、ハッシュ値検証手段１１５とを備え、通信手段１２として要求送信手段１２１と、検査情報受信手段１２２とを備える。
遠隔完全性検証システム１における検証対象装置３０は、起動手段３２を備え、検証対象装置３０においてインストールされた完全性検証モジュール３１は、通信部３１３として要求受信部３１３１と、検査情報送信部３１３２とを有し、自己検証情報生成部３１１として分岐情報記憶制御部３１１１と、起動判定部３１１２と、異常起動通知部３１１３と、チェックサム計算部３１１４とを有し、プラットフォーム検証情報生成部３１２としてハッシュ値計算部３１２１を有し、分岐情報記憶手段３２０を有する。
【００３５】
完全性検証モジュール３１による分岐情報及びチェックサム計算情報に基づく、完全性検証装置１０による完全性の検証について説明する。
【００３６】
完全性検証装置１０の要求送信手段１２１は、検査に用いるための乱数情報を含む検査要求を、検証対象装置３０に送信する。
【００３７】
検証対象装置３０の起動手段３２は、完全性検証モジュール３１を起動する。具体的には、起動手段３２は、例えば、検証対象装置３０と完全性検証装置１０との通信媒体としてシリアルケーブルを用いた構成の場合、シリアルケーブルを介した検査要求の受信により発生する割り込みのハンドラとして登録された完全性検証モジュール３１を起動する。
【００３８】
完全性検証モジュール３１の分岐情報記憶制御部３１１１は、起動手段３２が完全性検証モジュール３１を起動する際に記録された分岐情報（例えば、分岐元レコード及び分岐先レコードのアドレス情報）を分岐情報記憶手段３２０に記憶させる。具体的には、分岐情報記憶制御部３１１１は、命令分岐の履歴情報として、例えばＣＰＵのアーキテクチャーに搭載されている最後の分岐レコードを記憶するアーキテクチャー（例えば、ＬＢＲ（Ｌａｓｔ  Ｂｒａｎｃｈ  Ｒｅｃｏｒｄ）機構など）を利用し、命令分岐の履歴情報を分岐情報として分岐情報記憶手段３２０に記憶させる。
【００３９】
完全性検証モジュール３１の起動判定部３１１２は、起動手段３２によって起動されたか否かを分岐情報記憶手段３２０に記憶された分岐情報（例えば、分岐元レコード及び分岐先レコードのアドレス情報）に基づいて判定する。具体的には、起動判定部３１１２は、完全性検証モジュール３１の起動後に命令分岐の履歴情報である分岐情報記憶手段３２０に記憶された情報に基づいて、最も新しい分岐の分岐元と分岐先のアドレス情報を参照し、完全性検証モジュール３１が検査要求の受信によって起動されたかどうかを判定する。
【００４０】
完全性検証モジュール３１の異常起動通知部３１１３は、起動手段３２によって起動されていない（例えば、検査要求の受信以外の契機によって起動された）と起動判定部３１１２によって判定された場合に、異常な起動を示す情報を通知する。
【００４１】
完全性検証モジュール３１の要求受信部３１３１は、起動手段３２によって起動されたと起動判定部３１１２によって判定された場合に、完全性検証装置１０の要求送信手段１２１によって送信された検査要求を受信する。
【００４２】
完全性検証モジュール３１は、起動手段３２によって起動されたと起動判定部３１１２によって判定された場合に、検証対象装置３０のすべての割り込みを無効にするとしてもよい。例えば、マスク可能な割り込みについては割り込みを禁止（Ｄｉｓａｂｌｅ）するように設定し、マスク不可能な割り込み（ＮＭＩ：Ｎｏｎ−Ｍａｓｋａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ）については、当該割り込みのハンドラを変更し、別のソフトウェアに処理が移行しないようにするとしてもよい。
【００４３】
完全性検証モジュール３１のチェックサム計算部３１１４は、要求受信部３１３１によって受信された乱数情報に基づくコードを含めた、完全性検証モジュール３１自身のプログラムコードのチェックサムを計算する。なお、完全性検証モジュール３１は、検証対象装置３０において固定のアドレスにロードされて作動するとしてよい。また、完全性検証モジュール３１が検証対象装置３０において可変のアドレスにロードされて作動する場合には、完全性検証装置１０において完全性検証モジュール３１がロードされている状態を復元可能としてよい。
【００４４】
その際、チェックサム計算部３１１４は、検査情報に含まれる乱数情報に基づいて、完全性検証モジュール３１自身のプログラムコードのうち選択したプログラムコードに基づいて、チェックサムを計算するとしてもよい。具体的には、チェックサム計算部３１１４は、完全性検証装置１０より送信された乱数情報を基に、例えば、乱数情報が５ｂｆ・・・の場合に、プログラムコードの最初から５番目のコードと、そのコードから１１番目のコードと、さらにそのコードから１５番目のコードとのように、ランダムに選択するとしてもよい。チェックサム計算部３１１４は、選択したコードに基づくチェックサムの計算を、乱数情報に基づくランダムな選択を含めて所定回数繰り返して実行し、最終的なチェックサムを得る。
【００４５】
さらに、チェックサム計算部３１１４は、命令分岐の履歴情報をチェックサムの計算に加味してもよい。すなわち、チェックサム計算部３１１４は、検査情報に含まれる乱数情報に基づいて、分岐情報記憶手段３２０に記憶された分岐情報を選択し、選択した分岐情報を含めて、チェックサムを計算する。
例えば、チェックサム計算部３１１４は、チェックサムの計算における各繰り返し処理のはじめに、命令分岐の履歴情報をチェックサムの計算に加えるかどうかを判断する。チェックサム計算部３１１４は、この判断を当該乱数情報に基づき行う。命令分岐の履歴情報をチェックサムの計算に加える場合、チェックサム計算部３１１４は、計算に加味する履歴情報を、分岐情報記憶手段３２０から、乱数情報に基づきランダムに選択する（例えば、乱数情報が５ｂｆ・・・の場合に、分岐情報の記憶数（例えば、１６個）以内の値のうち最初の値である「５」に基づいて、最新から５番目の分岐情報を選択する）。そして、チェックサム計算部３１１４は、選択された分岐情報と、上述のように別途選択されたコードとからチェックサムを計算する。
【００４６】
検査情報送信部３１３２は、異常起動通知部３１１３によって通知された異常な起動を示す情報、又はチェックサム計算部３１１４によって計算されたチェックサムを含む検査情報を完全性検証装置１０に送信する。
【００４７】
完全性検証装置１０の検査情報受信手段１２２は、検証対象装置３０の完全性検証モジュール３１から検査情報を受信する。
【００４８】
完全性検証装置１０の検査情報判定手段１１１は、受信した検査情報が異常な起動を示す情報を含む場合に、検証対象装置３０が完全ではないと判定する。
【００４９】
完全性検証装置１０のチェックサム検証手段１１２は、受信した検査情報がチェックサムを含む場合に、計算されたチェックサムを検証する。具体的には、チェックサム検証手段１１２は、要求送信手段１２１によって送信された乱数情報と、完全性検証モジュール３１のコードとから、完全性検証モジュール３１で実行されるチェックサムの計算処理を復元し、チェックサムを計算する。そして、チェックサム検証手段１１２は、復元して計算されたチェックサムの値を検証用情報として、完全性検証モジュール３１より送信された検査情報と照合する。
【００５０】
完全性検証装置１０の検査情報判定手段１１１は、検査情報が異常な起動を示す情報を含まない場合に、チェックサム検証手段１１２によって検証された情報に基づいて、検証対象装置３０が完全であるか否かをさらに判定する。具体的には、検査情報判定手段１１１は、チェックサム検証手段１１２によって計算されたチェックサムの情報と、完全性検証モジュール３１により送信されたチェックサム情報とが一致する場合に、検証対象装置３０が完全であると判定する。
【００５１】
さらに、検証対象装置３０からの応答時間に基づく、完全性検証装置１０による完全性の検証について説明する。
【００５２】
時間測定手段１１３は、検査情報送信手段による検査要求の送信から、検査情報受信手段１２２による検査情報の受信までの所要時間を測定する。
【００５３】
所要時間判定手段１１４は、時間測定手段１１３によって測定された所要時間が所定値よりも小さいか否かを判定する。具体的には、所要時間判定手段１１４は、当該所要時間を所定値と比較し、差が所定の範囲内である場合（例えば、差≦所定値±所定範囲である場合）に、所要時間が所定値よりも小さいと判定する。
【００５４】
検査情報判定手段１１１は、チェックサム検証手段１１２によって検証された情報に基づいて検証対象装置３０が完全であると判定した場合に、さらに、所要時間判定手段１１４による判定に基づいて、検証対象装置３０が完全であるか否かを判定する。
【００５５】
さらに、完全性検証モジュール３１によるハッシュ値計算に基づく、完全性検証装置１０による完全性の検証について説明する。
【００５６】
完全性検証モジュール３１のハッシュ値計算部３１２１は、検査対象となるプラットフォームのプログラムコードからハッシュ値を計算する。具体的には、ハッシュ値計算部３１２１は、ハイパーバイザのハッシュ値（例えば、ハイパーバイザのコードに基づくハッシュ値）を計算する。ハッシュ値計算部３１２１は、例えばＳＨＡ−１などのハッシュ関数を用いて、ハッシュ値の計算を行う。
【００５７】
検査情報送信部３１３２は、ハッシュ値計算部３１２１によって計算されたハッシュ値をさらに検査情報に含めて送信する。
完全性検証装置１０のハッシュ値検証手段１１５は、検査情報受信手段１２２によって受信されたハッシュ値を検証する。具体的には、ハッシュ値検証手段１１５は、受信された検査情報に含まれるハッシュ値と、完全性検証装置１０において保持するプラットフォーム検証用情報に含まれる検証用ハッシュ値とを照合する。
検査情報判定手段１１１は、所要時間判定手段１１４による判定に基づいて、検証対象装置３０が完全であると判定した場合に、さらに、ハッシュ値検証手段１１５によって検証された情報に基づいて、検証対象装置３０が完全であるか否かを判定する。
検査情報判定手段１１１は、ハッシュ値検証手段１１５による照合が一致する場合に、ハイパーバイザは攻撃されていないと判断し、検証対象装置３０が完全であると判定する。
【００５８】
図４は、本発明の一実施形態に係る遠隔完全性検証システム１の処理を示すフローチャートである。本発明の一実施形態に係る遠隔完全性検証システム１における、完全性検証装置１０は、コンピュータ及びその周辺装置が備えるハードウェア並びに該ハードウェアを制御するソフトウェアによって構成され、以下の処理は、制御部（例えば、ＣＰＵ）が、ＯＳの下で所定のソフトウェアに従い実行する処理である。また、完全性検証モジュール３１は、コンピュータ及びその周辺装置を備える検証対象装置３０においてインストールされ、以下の処理は、検証対象装置３０の制御部（例えば、ＣＰＵ）によって実行される処理である。
【００５９】
ステップＳ１０１において、完全性検証装置１０のＣＰＵ（要求送信手段１２１）は、検査に用いるための乱数情報を含む検査要求を、検証対象装置３０に送信する。
【００６０】
ステップＳ２０１において、検証対象装置３０のＣＰＵ（起動手段３２）は、完全性検証モジュール３１を起動する。
【００６１】
ステップＳ３０１において、完全性検証モジュール３１（分岐情報記憶制御部３１１１、起動判定部３１１２、異常起動通知部３１１３、検査情報送信部３１３２）は、起動手段３２が完全性検証モジュール３１を起動する際に記録された分岐情報（例えば、分岐元レコード及び分岐先レコードのアドレス情報）を分岐情報記憶手段３２０に記憶させ、起動手段３２によって起動されたか否かを分岐情報記憶手段３２０に記憶された分岐情報（例えば、分岐元レコード及び分岐先レコードのアドレス情報）に基づいて判断する。この判断が、ＹＥＳの場合、ＣＰＵは、処理をステップＳ３０２に移し、ＮＯの場合、ＣＰＵは、異常な起動を示す情報を含む検査情報を完全性検証装置１０に送信し、完全性検証モジュール３１の処理を終了し、遠隔完全性検証システム１の処理は、完全性検証装置１０のステップＳ１０２に移行する。ステップＳ１０２において、完全性検証装置１０（検査情報判定手段１１１）は、検査情報を受信し、受信した検査情報が異常な起動を示す情報を含む場合に、検証対象装置３０が完全ではないと判定し、検証対象装置３０が攻撃を受けていることを報知して、処理を終了する。
【００６２】
ステップＳ３０２において、完全性検証モジュール３１（要求受信部３１３１）は、送信された検査要求を受信し、検証対象装置３０の割り込みを無効にし、別のソフトウェアに処理が移行しないようにする。
【００６３】
ステップＳ３０３において、完全性検証モジュール３１（チェックサム計算部３１１４）は、要求受信部３１３１によって受信された乱数情報に基づくコードを含めた、完全性検証モジュール３１自身のプログラムコードのチェックサムを計算する。
【００６４】
ステップＳ３０４において、完全性検証モジュール３１（検査情報送信部３１３２）は、チェックサム計算部３１１４によって計算されたチェックサムを含む検査情報を完全性検証装置１０に送信する。
【００６５】
ステップＳ３０５において、完全性検証モジュール３１（ハッシュ値計算部３１２１）は、検査対象となるプラットフォームのプログラムコードからハッシュ値を計算する。
【００６６】
ステップＳ３０６において、完全性検証モジュール３１（検査情報送信部３１３２）は、ハッシュ値計算部３１２１によって計算されたハッシュ値を含む検査情報を完全性検証装置１０に送信する。
【００６７】
ステップＳ１０３において、完全性検証装置１０のＣＰＵ（検査情報受信手段１２２）は、検証対象装置３０の完全性検証モジュール３１からチェックサム値を含む検査情報を受信する。
【００６８】
ステップＳ１０４において、完全性検証装置１０のＣＰＵ（検査情報受信手段１２２）は、検証対象装置３０の完全性検証モジュール３１からハッシュ値を含む検査情報を受信する。
【００６９】
ステップＳ１０５において、完全性検証装置１０のＣＰＵ（チェックサム検証手段１１２、検査情報判定手段１１１）は、完全性検証モジュール３１で実行されるチェックサムの計算処理を復元し計算したチェックサムと、受信したチェックサムとを照合する。照合の結果が一致する場合（ＹＥＳの場合）、ＣＰＵは、処理をステップＳ１０６に移し、照合の結果が一致しない場合（ＮＯの場合）、ＣＰＵは、検証対象装置３０が完全ではないと判定し、検証対象装置３０が攻撃を受けていることを報知して、処理を終了する。
【００７０】
ステップＳ１０６において、完全性検証装置１０のＣＰＵ（時間測定手段１１３、所要時間判定手段１１４、検査情報判定手段１１１）は、ステップＳ１０１における検査要求の送信時に開始し、ステップＳ１０３における受信時に終了していた時間測定による測定時間が、所定値よりも小さいか否かを判断する。この判断が、ＹＥＳの場合、ＣＰＵは、処理をステップＳ１０７に移し、この判断が、ＮＯの場合、ＣＰＵは、検証対象装置３０が完全ではないと判定し、検証対象装置３０が攻撃を受けていることを報知して、処理を終了する。
【００７１】
ステップＳ１０７において、完全性検証装置１０のＣＰＵ（ハッシュ値検証手段１１５、検査情報判定手段１１１）は、受信された検査情報に含まれるハッシュ値と、完全性検証装置１０において保持するプラットフォーム検証用情報に含まれる検証用ハッシュ値とを照合する。照合の結果が一致しない場合（ＮＯの場合）、ＣＰＵは、検証対象装置３０が完全ではないと判定し、検証対象装置３０が攻撃を受けていることを報知して、処理を終了し、照合の結果が一致する場合（ＹＥＳの場合）、ＣＰＵは、検証対象装置３０が完全であると判定し、検証対象装置３０が攻撃を受けていないことを報知して、処理を終了する。
【００７２】
本実施形態によれば、遠隔完全性検証システム１において、完全性検証装置１０は、検査に用いるための乱数情報を含む検査要求を検証対象装置３０に送信する。次に、検証対象装置３０は、完全性検証モジュール３１を起動し、完全性検証モジュール３１は、起動手段３２が完全性検証モジュール３１を起動する際に記録された分岐情報を分岐情報記憶手段３２０に記憶させ、起動手段３２によって起動されたか否かを分岐情報記憶手段３２０に記憶された分岐情報に基づいて判定する。完全性検証モジュール３１は、起動手段３２によって起動されていないと判定した場合に、異常な起動を示す情報を通知し、完全性検証装置１０は、検証対象装置３０が完全ではないと判定する。完全性検証モジュール３１は、起動手段３２によって起動されたと判定した場合に、送信された検査要求を受信し、受信した乱数情報に基づくコードを含めた、完全性検証モジュール３１自身のプログラムコードのチェックサムを計算し、計算したチェックサムを含む検査情報を完全性検証装置１０に送信する。完全性検証装置１０は、検証対象装置３０の完全性検証モジュール３１から検査情報を受信し、受信したチェックサムを検証し、検証した情報に基づいて、検証対象装置３０が完全であるか否かを判定する。
さらに、完全性検証装置１０は、チェックサムによって検証された情報に基づいて検証対象装置３０が完全であると判定した場合に、検査要求の送信から、検査情報の受信までの測定した所要時間が所定値よりも小さいか否かを判定し、検証対象装置３０が完全であるか否かを判定する。
さらに、完全性検証装置１０は、所要時間による判定に基づいて、検証対象装置３０が完全であると判定した場合に、完全性検証モジュール３１によってプラットフォームのプログラムコードから計算されたハッシュ値を検証し、検証対象装置３０が完全であるか否かを判定する。
したがって、遠隔完全性検証システム１は、特殊なハードウェアモジュールの搭載を前提とせずに、攻撃者の検証回避攻撃の検出を可能にし、プラットフォームの完全性検証を実現することができる。
【００７３】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【００７４】
例えば、本実施形態では、チェックサムにより検証対象装置３０を検証した後に、ハッシュ値により検証対象装置３０を検証するとしたが、ハッシュ値により検証対象装置３０を検証した後に、チェックサムにより検証対象装置３０を検証するとしてもよい。
【符号の説明】
【００７５】
１        遠隔完全性検証システム
１０      完全性検証装置
１１      検査情報検証手段
１１１    検査情報判定手段
１１２    チェックサム検証手段
１１３    時間測定手段
１１４    所要時間判定手段
１１５    ハッシュ値検証手段
１２      通信手段
１２１    要求送信手段
１２２    検査情報受信手段
３０      検証対象装置
３１      完全性検証モジュール
３１１    自己検証情報生成部
３１１１  分岐情報記憶制御部
３１１２  起動判定部
３１１３  異常起動通知部
３１１４  チェックサム計算部
３１２    プラットフォーム検証情報生成部
３１２１  ハッシュ値計算部
３１３    通信部
３１３１  要求受信部
３１３２  検査情報送信部
３２０    分岐情報記憶手段
３２      起動手段
【図１】
0006257460.tif 000002
【図２】
0006257460.tif 000003
【図３】
0006257460.tif 000004
【図４】
0006257460.tif 000005