(57)【要約】  複数の監視モジュールのうち、改ざんされた監視モジュールを特定することができる改ざん監視システムを提供する。管理装置は、改ざんされていない監視モジュールを新たに取得する取得部と、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成部と、生成した前記おとり監視モジュールを情報セキュリティ装置へ送信してインストールさせる送信部と、前記おとり監視モジュールがインストールされた後、情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信部と、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定部とを備える。
2011135797.tif 000002
【特許請求の範囲】
【請求項１】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、
改ざんされていない監視モジュールを新たに取得する取得手段と、
取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成手段と、
生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信手段と、
前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定手段と
を備えることを特徴とする管理装置。
【請求項２】
前記生成手段は、正常でない検証用証明書を含む前記おとり監視モジュールを生成し、
前記送信手段は、前記情報セキュリティ装置へ、正常でない前記検証用証明書を含む前記おとり監視モジュールを送信してインストールさせ、
前記情報セキュリティ装置において、各監視モジュールは、前記おとり監視モジュールに含まれる検証用証明書を用いて、当該おとり監視モジュールが改ざんされているか否かを判断する
ことを特徴とする請求項１に記載の管理装置。
【請求項３】
前記取得手段により取得される前記監視モジュールは、当該監視モジュールの正当性を証明するための検証用証明書を含み、
前記生成手段は、前記監視モジュールに含まれる前記検証用証明書を改変して、改変された検証用証明書を含む前記おとり監視モジュールを生成し、
前記送信手段は、前記情報セキュリティ装置へ、改変された前記検証用証明書を含む前記おとり監視モジュールを送信してインストールさせ、
前記情報セキュリティ装置において、各監視モジュールは、前記おとり監視モジュールに含まれる検証用証明書を用いて、当該おとり監視モジュールが改ざんされているか否かを判断する
ことを特徴とする請求項１に記載の管理装置。
【請求項４】
前記生成手段は、ランダムなデータを生成し、生成した前記データを、前記改変された前記検証用証明書とする
を特徴とする請求項３記載の管理装置。
【請求項５】
前記生成手段は、ランダムなデータを生成し、生成した前記データを、前記取得手段により取得された前記監視モジュールに含まれる前記検証用証明書の一部に上書きすることにより、改変された前記検証用証明書を生成する
を特徴とする請求項３記載の管理装置。
【請求項６】
前記管理装置は、さらに、
受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出手段と、
前記検出がされた場合に、前記監視モジュールから選択した１個の監視モジュールに対して改竄されていると仮定する第１仮定手段と、
改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第２仮定手段と、
前記第２仮定手段による手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断手段と
を備えることを特徴とする請求項１に記載の管理装置。
【請求項７】
前記管理装置は、さらに、
異常であると判定された監視モジュールの無効化指示を出力する無効化手段
を備えることを特徴とする請求項１記載の管理装置。
【請求項８】
改ざん監視システムであって、
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置と、前記情報セキュリティ装置を管理する管理装置とから構成され、
前記管理装置は、
改ざんされていない監視モジュールを新たに取得する取得手段と、
取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成手段と、
生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信手段と、
前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定手段と
を備えることを特徴とする改ざん監視システム。
【請求項９】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する集積回路であって、
改ざんされていない監視モジュールを新たに取得する取得手段と、
取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成手段と、
生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信手段と、
前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定手段と
を備えることを特徴とする集積回路。
【請求項１０】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理方法であって、
改ざんされていない監視モジュールを新たに取得する取得ステップと、
取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成ステップと、
生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信ステップと、
前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、
受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定ステップと
を含むことを特徴とする管理方法。
【請求項１１】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられるコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
コンピュータである前記管理装置に、
改ざんされていない監視モジュールを新たに取得する取得ステップと、
取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成ステップと、
生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信ステップと、
前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、
受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定ステップと
を実行させるためのコンピュータプログラムを記録している記録媒体。
【請求項１２】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられるコンピュータプログラムであって、
コンピュータである前記管理装置に、
改ざんされていない監視モジュールを新たに取得する取得ステップと、
取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成ステップと、
生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信ステップと、
前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、
受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定ステップと
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティ装置などの機器内部で動作するモジュール等の改ざんを監視し管理する技術に関する。
【背景技術】
【０００２】
従来、認証鍵等の秘匿データを有しているアプリケーションプログラムが、悪意のある第三者（以下、「攻撃者」という）に解析されないようにするため、当該アプリケーションプログラムを耐タンパモジュールにより保護することが知られている。耐タンパモジュールは、通常、ハードウェアとして機器上に実装され、アプリケーションプログラムを保護している。しかし、日々新たな攻撃手法が考案される昨今の現状を踏まえると、新たな攻撃手法に柔軟に対応するためにも、更新が容易なコンピュータプログラムであるソフトウェアにより、アプリケーションプログラムを保護することが望ましい。【０００３】
ソフトウェアによってアプリケーションプログラムを保護する技術として、例えば、ハッシュ値を用いた改ざん検証や、アプリケーションプログラムを利用しない時にはプログラムを暗号化して保存しておき、利用する時にのみ暗号化されたプログラムを復号してメモリへロードする復号ロード機能等がある。【０００４】
ところが、このような技術を利用しても、アプリケーションプログラムを保護するソフトウェア（以下、「保護制御モジュール」という）自体が攻撃者により攻撃され得る。保護制御モジュールが改ざんされると、アプリケーションプログラムが攻撃者の攻撃にさらされることになる。【０００５】
特許文献１は、プログラムの改変の有無をチェックするチェックプログラム自体の改変が行われた場合でも、改変されたプログラムの実行を確実に阻止することが可能なプログラムの改変防止のための技術を開示している。この技術によると、コンピュータプログラムにおいて、プログラムの改変の有無を監視するためのチェックプログラムを複数用意し、各チェックプログラムが他のチェックプログラムのうちのいずれかを監視する。以下にこの技術について簡単に説明する。【０００６】
この技術によると、２つの監視モジュールＡ、Ｂが相互に監視を行う。監視モジュールＡ、Ｂはそれぞれ、攻撃者による改ざんから保護すべきプログラム（本体プログラムＡ、Ｂ）、他のモジュールが改ざんされているかを検出するためのプログラム（チェックプログラムＡ、Ｂ）、及びそれぞれのチェックプログラムが改ざん検出を行うために必要な情報（チェック情報Ａ、Ｂ）から構成される。チェックプログラムＡは、監視モジュールＢの本体プログラムＢとチェックプログラムＢの改ざん検出を、チェック情報Ａを用いて行う。また、チェックプログラムＢは、監視モジュールＡの本体プログラムＡとチェックプログラムＡの改ざん検出を、チェック情報Ｂを用いて行う。この様に、それぞれの監視モジュールが、相手の監視モジュールの本体プログラム及びチェックプログラムの改ざん検出を行う。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】日本国特許第３０５６７３２号公報
【特許文献２】ＷＯ２００８／０９９６８２
【特許文献３】ＷＯ２００９／１１８８００
【非特許文献】
【０００８】
【非特許文献１】岡本龍明、山本博資、「現代暗号」、産業図書（１９９７年）
【非特許文献２】ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｘ．５０９  （１９９７  Ｅ）：  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  −  Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ  −  Ｔｈｅ  Ｄｉｒｅｃｔｏｒｙ：  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ，１９９７
【非特許文献３】Ｆ．Ｐｒｅｐａｒａｔａ，Ｇ．  Ｍｅｔｚｅ  ａｎｄ  Ｒ．Ｔ．  Ｃｈｉｅｎ，"Ｏｎ  Ｔｈｅ  Ｃｏｎｎｅｃｔｉｏｎ  Ａｓｓｉｇｎｍｅｎｔ  Ｐｒｏｂｌｅｍ  ｏｆ  Ｄｉａｇｎｏｓａｂｌｅ  Ｓｙｓｔｅｍｓ，"  ＩＥＥＥ  Ｔｒａｎｓ．  Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｍｐｕｔｅｒｓ，ｖｏｌ．  １６，ｐｐ．８４８−８５４，１９６８．
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載されているように、複数の監視モジュールが相互に監視を行うようにすると、何れかの監視モジュールが改ざんされた場合であっても、改ざんされずに残っている監視モジュールを用いて、他のモジュールの改ざん検出を行うことができ、コンピュータシステムの安全性を高めることができる。【００１０】
しかしながら、改ざん検出の技術の進歩に合わせて、モジュールを不正に改ざんする技術も進歩しており、新たな改ざん技術に対抗するため、様々な改ざん検出のための技術の開発が要望されている。【００１１】
上記のような要望に応えるために、本発明は、複数の監視モジュールのうち、改ざんされた監視モジュールを特定することができる改ざん監視システム、管理装置、管理方法、集積回路、プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために、本発明は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、改ざんされていない監視モジュールを新たに取得する取得手段と、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成手段と、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信手段と、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定手段とを備えることを特徴とする。
【発明の効果】
【００１３】
この構成によると、おとり監視モジュールを各監視モジュールが監視し、その監視結果を管理装置で判断することにより、異常な監視モジュールを検出することが可能となるという優れた効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１における検知システム１０の構成を示す全体構成図である。
【図２】保護制御モジュール１２０の構成を示すブロック図である。
【図３】検知モジュール群１３０の構成を示すブロック図である。
【図４】検知モジュール１３１の構成を示すブロック図である。
【図５】アクセス制御モジュール１４０の構成を示すブロック図である。
【図６】判断部２１０の構成を示すブロック図である。
【図７】検出対象モジュール配布部２２０の構成を示すブロック図である。
【図８】モジュール無効化部２３０の構成を示すブロック図である。
【図９】機器１００の構成を示すハードウェア構成図である。
【図１０】機器１００のソフトウェア構成を示す構成図である。
【図１１】検知システム１０全体の動作を示すフローチャートである。
【図１２】初期設定処理を示すシーケンス図である。
【図１３】検知モジュール初期化処理を示すフローチャートである。
【図１４】検知処理を示すシーケンス図である。
【図１５】モジュール特定処理を示すシーケンス図である。
【図１６】相互監視処理を示すシーケンス図である。
【図１７】検出対象モジュール配布処理を示すシーケンス図である。
【図１８】検出対象モジュール監視処理を示すシーケンス図である。
【図１９】異常モジュール判定処理を示すフローチャートである。
【図２０】無効化処理を示すシーケンス図である。
【図２１】検出対象モジュール９００のデータ構成を説明するための図である。
【図２２】各検知モジュールによる検出対象モジュール９００の監視を説明するための図である。
【図２３】各検知モジュールによる検出対象モジュール９００の監視結果の一例を示す図である。
【図２４】実施の形態２における検知システム１０ａの構成を示す全体構成図である。
【図２５】判断部２１０ａの構成を示すブロック図である。
【図２６】一例としてのモジュール特定情報６２１を説明するための図である。
【図２７】正常モジュール特定部６０７の構成を示すブロック図である。
【図２８】正常モジュール特定処理を説明するための図である。
【図２９】監視パターン更新部２５０の構成を示すブロック図である。
【図３０】検知システム１０ａ全体の動作を示すフローチャートである。
【図３１】モジュール特定処理を示すシーケンス図である。図３２へ続く。
【図３２】モジュール特定処理を示すシーケンス図である。図３１から続く。
【図３３】正常モジュール特定処理を示すフローチャートである。
【図３４】相互監視の一例を説明するための図である。
【図３５】一例としてのモジュール特定情報６３１を説明するための図である。
【図３６】一例としての監視パターン７５２を説明するための図である。
【図３７】一例としての相互監視結果７５３を説明するための図である。
【図３８】一例としての相互監視結果７５４を説明するための図である。
【図３９】一例としての検出対象モジュールの改ざん検出結果７５５を説明するための図である。
【図４０】実施の形態３におけるソフトウェア更新システム１２の構成を示す全体構成図である。
【図４１】保護制御モジュール１２０ａの構成を示すブロック図である。
【図４２】検知モジュール１３１ａの構成を示すブロック図である。
【図４３】検出対象モジュール配布部２２０ａの構成を示すブロック図である。
【図４４】ソフトウェア更新システム１２全体の動作を示すフローチャートである。
【図４５】初期設定処理を示すシーケンス図である。
【図４６】検知モジュール初期化処理を示すフローチャートである。
【図４７】解析・判断処理を示すシーケンス図である。
【図４８】相互認証処理を示すシーケンス図である。検知モジュールによる認証を示す。
【図４９】相互認証処理を示すシーケンス図である。検出対象モジュール配布部による認証を示す。
【図５０】回復処理を示すフローチャートである。
【図５１】更新処理を示すシーケンス図である。図５２へ続く。
【図５２】更新処理を示すシーケンス図である。図５３へ続く。
【図５３】更新処理を示すシーケンス図である。図５４へ続く。
【図５４】更新処理を示すシーケンス図である。図５３から続く。
【図５５】モジュール特定処理と更新処理との連携動作について説明するための図である。
【図５６】再暗号化処理を示すシーケンス図である。
【図５７】次ラウンド準備処理を示すシーケンス図である。
【図５８】一例として、変形例（２３）における各検知モジュールによる検出対象モジュール９００ａの監視結果７５６を示す図である。
【図５９】一例として、変形例（２３）におけるモジュール特定情報６４１を説明するための図である。
【図６０】一例として、変形例（２３）における各検知モジュールによる検出対象モジュール９００ａの監視結果７５７を示す図である。
【図６１】一例として、変形例（２３）におけるモジュール特定情報６５１を説明するための図である。
【図６２】一例として、変形例（２３）における各検知モジュールによる検出対象モジュール９００ａの監視結果７５８を示す図である。
【図６３】一例として、変形例（２４）における検出対象モジュール９００ａのデータ構造を説明するための図である。
【図６４】改ざん監視システム１０ｃの構成を示す全体構成図である。
【発明を実施するための形態】
【００１５】
本発明の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、改ざんされていない監視モジュールを新たに取得する取得手段と、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成手段と、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信手段と、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定手段とを備える。
【００１６】
ここで、前記取得手段により取得される前記監視モジュールは、当該監視モジュールの正当性を証明するための検証用証明書を含み、前記生成手段は、前記監視モジュールに含まれる前記検証用証明書を改変して、改変された検証用証明書を含む前記おとり監視モジュールを生成し、前記送信手段は、前記情報セキュリティ装置へ、改変された前記検証用証明書を含む前記おとり監視モジュールを送信してインストールさせ、前記情報セキュリティ装置において、各監視モジュールは、前記おとり監視モジュールに含まれる検証用証明書を用いて、当該おとり監視モジュールが改ざんされているか否かを判断するとしてもよい。
【００１７】
ここで、前記生成手段は、ランダムなデータを生成し、生成した前記データを、前記改変された前記検証用証明書とするとしてもよい。
【００１８】
ここで、前記生成手段は、ランダムなデータを生成し、生成した前記データを、前記取得手段により取得された前記監視モジュールに含まれる前記検証用証明書の一部に上書きすることにより、改変された前記検証用証明書を生成するとしてもよい。
【００１９】
ここで、前記管理装置は、さらに、受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出手段と、前記検出がされた場合に、前記監視モジュールから選択した１個の監視モジュールに対して改竄されていると仮定する第１仮定手段と、改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第２仮定手段と、前記第２仮定手段による手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断手段とを備えるとしてもよい。
【００２０】
ここで、前記管理装置は、さらに、異常であると判定された監視モジュールの無効化指示を出力する無効化手段を備えるとしてもよい。
【００２１】
また、本発明の別の実施態様は、改ざん監視システムであって、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置と、前記情報セキュリティ装置を管理する管理装置とから構成され、前記管理装置は、改ざんされていない監視モジュールを新たに取得する取得手段と、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成手段と、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信手段と、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定手段とを備える。
【００２２】
また、本発明の別の実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する集積回路であって、改ざんされていない監視モジュールを新たに取得する取得手段と、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成手段と、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信手段と、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定手段とを備える。
【００２３】
また、本発明の別の実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理方法であって、改ざんされていない監視モジュールを新たに取得する取得ステップと、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成ステップと、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信ステップと、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定ステップとを含む。
【００２４】
また、本発明の別の実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられるコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、コンピュータである前記管理装置に、改ざんされていない監視モジュールを新たに取得する取得ステップと、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成ステップと、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信ステップと、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定ステップとを実行させるためのコンピュータプログラムを記録している。
【００２５】
また、本発明の別の実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられるコンピュータプログラムであって、コンピュータである前記管理装置に、改ざんされていない監視モジュールを新たに取得する取得ステップと、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成ステップと、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信ステップと、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定ステップとを実行させる。
【００２６】
１．実施の形態１
ここでは、本発明に係る実施の形態１としての検知システム１０について図面を参照しながら説明する。
【００２７】
１．１  検知システム１０の構成
（１）全体構成
図１は、検知システム１０の全体構成図である。同図に示すように、検知システム１０は、情報処理装置としての機器１００と、監視装置としての管理装置２００とから構成される。機器１００と管理装置２００とは、ネットワークを介して接続されている。
【００２８】
（２）機器１００の構成
次に、機器１００について説明する。
【００２９】
機器１００は、ネットワークを介した様々なサービスをユーザに提供する機器である。例えば、機器１００は、コンテンツ配信サーバにアクセスし、音楽や映像などのコンテンツを購入して再生したり、金融機関のシステムにアクセスし、ネットバンキング（預金の残高照会や口座振り込みなど）を利用したりする。
【００３０】
（ａ）機器１００のソフトウェア構成
図１に示すように、機器１００は、アプリケーションソフト（以下、「アプリ」という。）１１０、アプリ１１１、保護制御モジュール１２０、検知モジュール群１３０及びアクセス制御モジュール１４０を含む。
【００３１】
アプリ１１０及びアプリ１１１は、ネットワークを介して、機器１００を使用するユーザに、様々な機能を提供するためのソフトウェアである。例えば、コンテンツ配信サーバ（不図示）から音楽コンテンツや映像コンテンツを購入し、その購入したコンテンツを再生するソフトウェアや、金融機関のシステム（不図示）にアクセスし、残高確認や振り込みなどのネットバンキングを利用するためのソフトウェアである。
【００３２】
アプリ１１０及びアプリ１１１は、コンテンツ配信サーバや金融機関のシステムと認証を行うための認証鍵など、秘匿データを有している。秘匿データは、悪意のある第三者（以下、「攻撃者」という。）によりアプリから抜き取られ、不正に利用されないようにするために保護される必要があるデータである。
【００３３】
このように、機器１００は、秘匿データを扱うので、情報セキュリティ装置と呼ぶこともある。
【００３４】
保護制御モジュール１２０は、攻撃者によりアプリ１１０及びアプリ１１１が解析され、認証鍵などの秘匿データが抜き取られないようにアプリ１１０及びアプリ１１１を保護するための機能を制御するモジュールである。アプリを保護するための機能としては、アプリを利用しない時には、アプリを暗号化して保存しておき、アプリを利用する時にのみ暗号化アプリを復号してメモリへロードする復号ロード機能や、アプリが改ざんされていないかをチェックする改ざん検出機能、デバッガなどの解析ツールが動作しないかをチェックする解析ツール検出機能などがある。
【００３５】
保護制御モジュール１２０は、これらの機能の動作を制御し、アプリ１１０及びアプリ１１１が攻撃者によって解析されていないかなどをチェックする。攻撃者による攻撃を検出したときには、保護制御モジュール１２０は、アプリ１１０及びアプリ１１１の動作を停止し、アプリ１１０及びアプリ１１１が利用していたメモリ、特に秘匿データが記録されたメモリ領域のクリアなどの処理を行い、秘匿データの漏洩を防止する。
【００３６】
検知モジュール群１３０は、複数の検知モジュールから構成される。実施の形態１では、検知モジュール群１３０は、図３に示すように、検知モジュール１３１、検知モジュール１３２、・・・、及び検知モジュール１３７の７つの検知モジュールから構成される。
【００３７】
検知モジュール１３１、１３２、・・・、１３７は、それぞれ、保護制御モジュール１２０の改ざんの有無を検出する。各検知モジュールは、保護制御モジュール１２０が改ざんされている場合、管理装置２００に通知する。
【００３８】
また、検知モジュール１３１、１３２、・・・、１３７は、アプリ１１０及びアプリ１１１を更新する機能を有していてもよい。
【００３９】
そして、検知モジュール群１３０は、攻撃者によって各検知モジュールが改ざんされ、各検知モジュールを不正に利用されることを防止するために、検知モジュール同士が相互に改ざん検出を実施する。そして、改ざん検出結果を、管理装置２００へ送信する。管理装置２００により、ある検知モジュールが改ざんされていると判断された場合には、他の正常な検知モジュールは、管理装置２００からの無効化指示を受け、改ざんされた検知モジュールを無効化する。
【００４０】
これにより、検知モジュール群１３０に含まれる一部の検知モジュールが攻撃され、改ざんされた場合であっても、それを検出し、攻撃に対処することが可能となる。
【００４１】
また、管理装置２００は、検知モジュール同士の改ざん検出結果において改ざんされている検知モジュールが存在していると判断した場合、さらに詳しい検知モジュールの状況を確認するために、検出対象モジュール９００を機器１００に送信する。機器１００は、内部に検出対象モジュール９００を取り込む。機器１００内の検知モジュール１３１、１３２、・・・、１３７は、検出対象モジュール９００の改ざん検出を実行し、改ざん検出結果を、管理装置２００へ送信する。管理装置２００により、ある検知モジュールが改ざんされていると判断された場合には、他の正常な検知モジュールは、管理装置２００からの無効化指示を受け、改ざんされた検知モジュールを無効化する。
【００４２】
これにより、改ざんされた検知モジュールを早期に検出し、攻撃に対処することが可能になる。
【００４３】
アクセス制御モジュール１４０は、各検知モジュールが他のモジュールを消去するために必要なアクセス情報を保持する。アクセス情報は、例えば、消去対象であるモジュールが配置されているアドレスや、消去に必要な手順が書かれた手順書などである。なお、アクセス情報は、消去対象であるモジュール毎に、それぞれ個別のアクセス情報取得鍵で暗号化されている。
【００４４】
（ｂ）検知モジュールの構成
次に、検知モジュール１３１、１３２、・・・、１３７の詳細について説明する。
【００４５】
図４は、検知モジュール１３１の機能的な構成を示す機能ブロック図である。検知モジュール１３２、・・・、及び１３７も同様の構成を有する。検知モジュール１３１は、検知モジュール本体と、改ざん検出用証明書４２１と、ＭＡＣ値テーブル４２２とを含む。改ざん検出用証明書４２１は、検知モジュール本体の改ざんを検出するための証明書であり、管理装置２００にて検出対象モジュール配布部２２０で保持する署名秘密鍵（署名私有鍵とも呼ぶ）を用いて生成したものである。
【００４６】
具体的には、検知モジュール本体に対して、署名秘密鍵を用いて、デジタル署名を施して、署名データを生成し、生成した署名データを改ざん検出用証明書４２１とする。
【００４７】
検知モジュール本体は、受信部４０１、送信部４０２、制御部４０３、検証部４０４、ＭＡＣ値生成部４０５、ＭＡＣ値テーブル更新部４０６、及び検出対象モジュールインストール部４０７から構成される。
【００４８】
受信部４０１は、管理装置２００から、各種指示や検出対象モジュール９００を受信する。また、受信部４０１は、他の検知モジュールから、相互監視を行うために必要な検知モジュール本体や検知モジュール検証用証明書などを受信する。さらに、受信部４０１は、他の検知モジュールから、依頼した処理の結果や、当該他の検知モジュールによる保護制御モジュール１２０の監視結果などを受信する。
【００４９】
送信部４０２は、管理装置２００、保護制御モジュール１２０、他の検知モジュール、及びアクセス制御モジュール１４０へ、各種処理結果や証明書などのデータを送信する。
【００５０】
制御部４０３は、受信部４０１が受信した各種指示や通知に基づいて、検証部４０４や検出対象モジュールインストール部４０７を制御することにより各種の処理を行う。
【００５１】
具体的には、制御部４０３は、保護制御モジュール１２０、検知モジュール１３２、・・・、及び検知モジュール１３７の改ざん検証処理、保護制御モジュール１２０、検出対象モジュール９００のインストール処理、監視パターンの更新処理などを行う。
【００５２】
検証部４０４は、制御部４０３の制御に基づき、保護制御モジュール１２０、検知モジュール１３２、・・・、及び検知モジュール１３７、検出対象モジュール９００の改ざん検出処理を行う。
【００５３】
検証部４０４は、各モジュールに付加されている検証用証明書を用いて改ざん検出処理を行うとしてもよい。または、予め計算されたメッセージ認証コード（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）（以下、「ＭＡＣ値」という。）を用いてもよい。なお、検出対象モジュール９００については、検出対象モジュール９００に付加されている検証用証明書を用いて改ざん検出処理を行う。
【００５４】
検証部４０４が、どのタイミングでどのモジュールの改ざん検出処理を行うのかを示す情報は、予め、管理装置２００から与えられている。検証部４０４は、管理装置２００から改ざん検出対象のモジュールの変更や改ざん検出を行うタイミングの変更の指示があった場合には、指示に従い変更する。
【００５５】
ＭＡＣ値生成部４０５は、検証鍵を保持している。ＭＡＣ値生成部４０５は、検証部４０４が改ざん検出処理にＭＡＣ値を用いる場合、検証鍵を用いてＭＡＣ値を生成する。
【００５６】
ＭＡＣ値テーブル更新部４０６は、各モジュールのＭＡＣ値が格納されているＭＡＣ値テーブル４２２を更新する。ＭＡＣ値テーブル４２２には、モジュールを識別するためのモジュール識別子と、そのモジュールに対応するＭＡＣ値とが対になって格納されている。
【００５７】
ＭＡＣ値生成部４０５は、改ざん検出処理の対象であるモジュールを取得し、ＭＡＣ値を計算する。検証部４０４は、計算されたＭＡＣ値とＭＡＣ値テーブル４２２に格納されている対象モジュールのＭＡＣ値とを比較することにより改ざん検出を行う。
【００５８】
検出対象モジュールインストール部４０７は、制御部４０３の制御に基づき、管理装置２００から送信された検出対象モジュール９００を機器１００内にインストールする。
【００５９】
なお、署名方式に関しては非特許文献１に詳しく説明されている。証明書に関しては非特許文献２に詳しく説明されている。
【００６０】
（ｃ）保護制御モジュール１２０の構成
ここでは、保護制御モジュール１２０の詳細について説明する。
【００６１】
図２は、保護制御モジュール１２０の機能的な構成を示す機能ブロック図である。保護制御モジュール１２０は、保護制御モジュール本体と、改ざん検出用証明書３３１とを含む。改ざん検出用証明書３３１は、保護制御モジュール本体を改ざん検出するための証明書であり、管理装置２００にて検出対象モジュール配布部２２０で保持する署名秘密鍵を用いて生成したものである。
【００６２】
同図に示すように、保護制御モジュール１２０は、受信部３０１、送信部３０２、制御部３０３、復号ロード部３０４、改ざん検出部３０５、解析ツール検出部３０６及び暗復号鍵保持部３０７から構成される。
【００６３】
受信部３０１は、検知モジュール１３１、１３２、・・・、１３７から、各種依頼などを受信する。
【００６４】
送信部３０２は、検知モジュール１３１、１３２、・・・、１３７へ、各種依頼などを送信する。
【００６５】
制御部３０３は、復号ロード部３０４、改ざん検出部３０５、及び解析ツール検出部３０６を制御することにより、アプリ１１０、１１１が攻撃者により攻撃されている場合に、それを検出する。
【００６６】
復号ロード部３０４は、暗号化されているアプリ１１０、１１１を実行するときに、暗復号鍵を用いて復号し、メモリ上にロードする処理を行う。また、アプリ１１０、１１１の実行中に、他のアプリへのコンテキストスイッチが発生すると、復号ロード部３０４は、メモリ上のデータを、暗復号鍵を用いて暗号化する。そして、再びアプリ１１０、１１１へコンテキストスイッチしたときに、暗号化したデータを復号する処理を行う。なお、コンテキストスイッチとは、複数のモジュールが１つのＣＰＵを共有できるように、ＣＰＵの状態（コンテキスト）を保存したり復元したりする過程のことである。
【００６７】
改ざん検出部３０５は、アプリ１１０、１１１の改ざん検出処理を実行する。改ざん検出処理は、アプリ１１０、１１１に付加されている検証用証明書を用いる方法と、ＭＡＣ値を比較する方法とがある。
【００６８】
解析ツール検出部３０６は、デバッガなどの解析ツールがインストールされたり、動作したりしたときにそれを検出する。不正な攻撃者がアプリ１１０、１１１を攻撃するために、解析ツールをインストールしたり、動作させたりすることが想定されるからである。検出方法としては、例えば、ファイル名を検索する方法や、デバッガが使用する特殊なレジスタが使用されているかを調べる方法や、デバッガが設定する割り込みを検出する方法などを用いる。
【００６９】
暗復号鍵保持部３０７は、アプリ１１０、１１１を暗復号するための暗復号鍵を保持する。
【００７０】
（ｄ）アクセス制御モジュール１４０の構成
図５は、アクセス制御モジュール１４０の構成を機能的に示す機能ブロック図である。同図に示すように、アクセス制御モジュール１４０は、受信部５０１、送信部５０２、及びアクセス情報保持部５０３から構成される。
【００７１】
受信部５０１は、検知モジュール１３１、１３２、・・・、１３７から、改ざんされた検知モジュールを消去するために必要な情報であるアクセス情報の取得依頼を受信する。
【００７２】
送信部５０２は、アクセス情報取得依頼に応じて、アクセス情報取得を依頼してきた検知モジュールへアクセス情報を送信する。
【００７３】
アクセス情報保持部５０３は、検知モジュール１３１、１３２、・・・、１３７毎に、そのモジュールを消去するためのアクセス情報を保持する。
【００７４】
各アクセス情報は、消去対象となる検知モジュールを識別するための検知モジュール識別子が付されている。また、各アクセス情報は、アクセス情報取得鍵で暗号化されている。
【００７５】
検知モジュール１３１、１３２、・・・、１３７からアクセス情報取得依頼を受け付けると、アクセス情報保持部５０３は、消去対象の検知モジュールの識別子が付されたアクセス情報を、依頼元の検知モジュールへ送信する。
【００７６】
（ｅ）機器１００のハードウェア構成
続いて、図９を用いて、機器１００のハードウェア構成について説明する。
【００７７】
図９に示すように、機器１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１７１、不揮発性メモリであるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１７２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１７３、及びＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１７４などを含んで構成される。また、これらはバスを介して、相互に通信可能に接続されている。
【００７８】
ＥＥＰＲＯＭ１７２には、保護制御モジュール１２０、検知モジュール１３１、１３２、・・・、１３７、及びアプリ１１０、１１１などが格納されている。
【００７９】
ＥＥＰＲＯＭ１７２に格納されている各種モジュールをＣＰＵ１７１が実行することにより、各種モジュールの各機能部が実現される。各機能部は、具体的には、コンピュータプログラムによって記述されている。
【００８０】
ＲＡＭ１７３は、ＣＰＵ１７１のワークエリアとして用いられる。ＲＡＭ１７３には検知モジュール１３１、１３２、・・・、１３７、及び、アプリ１１０、１１１がロードされる。改ざん検出処理及び無効化処理の対象となる検知モジュールは、ＲＡＭ１７３上で動作している検知モジュールである。なお、図９では、３つの検知モジュール１３１、１３２、１３３のみを図示しているが、図面上のスペースの関係のためであり、実際にはＥＥＰＲＯＭ１７２及びＲＡＭ１７３には、７つの検知モジュール１３１、１３２、・・・、１３７が存在する。
【００８１】
ＮＩＣ１７４は、ネットワークに接続するための拡張カードである。
【００８２】
（ｆ）ソフトウェア階層
続いて、図１０を用いて、機器１００のソフトウェア階層について説明する。
【００８３】
図１０に示すように、アクセス制御モジュール１４０及び検知モジュール群１３０は、ＯＳ１５０の中に組み込まれている。アプリ１１０及びアプリ１１１は、ＯＳ１５０上で動作し、保護制御モジュール１２０及びブートローダ１６０は、ＯＳ１５０の管理外にある。
【００８４】
機器１００の起動の際には、まず保護制御モジュール１２０及び検知モジュール群１３０が起動された上でアプリケーションが実行される。
【００８５】
（３）管理装置２００の構成
次に、管理装置２００の構成について説明する。
【００８６】
管理装置２００は、機器１００の検知モジュール群１３０から、改ざん検出結果を受信して、受信した改ざん検出結果を基に、無効化すべき異常な検知モジュールを特定する不正モジュール特定装置として機能する。
【００８７】
（ａ）全体構成
図１に示すように、管理装置２００は、判断部２１０、検出対象モジュール配布部２２０、モジュール無効化部２３０、及び通信部２４０から構成される。管理装置２００は、具体的には、ＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどを備えるコンピュータシステムである。ＣＰＵが、ＲＯＭまたはハードディスクユニットに記憶されているコンピュータプログラムにしたがって動作することにより、管理装置２００は、上記の機能を発揮する。
【００８８】
判断部２１０は、機器１００の検知モジュール群１３０から、改ざん検出結果を受信して、受信した改ざん検出結果を基に、無効化すべき異常な検知モジュールを特定する。
【００８９】
検出対象モジュール配布部２２０は、検知モジュール群１３０からの改ざん検出結果において、改ざんされている検知モジュールが存在する場合に、検出対象モジュール９００を機器１００に送信する。
【００９０】
モジュール無効化部２３０は、検知モジュール１３１、１３２、・・・、１３７からアクセス情報取得鍵取得要求を受け付けると、要求元の検知モジュールへ、アクセス情報取得鍵を送信する。
【００９１】
通信部２４０は、機器１００と、管理装置２００内部の各部との間で情報の送受信を行う。例えば、通信部２４０は、機器１００から受信した改ざん検出結果を判断部２１０に送信する。なお、機器１００と管理装置２００との間の通信には、データを暗号化するなど、セキュリティの確保された通信路を用いてもよい。
【００９２】
続いて、管理装置２００の各構成要素について説明する。
【００９３】
（ｂ）判断部２１０の構成
図６は、判断部２１０の構成を機能的に示す機能ブロック図である。
【００９４】
同図に示すように、判断部２１０は、受信部６０１、送信部６０２、指示生成部６０３、及びモジュール特定部６０４とから構成される。そして、モジュール特定部６０４の内部に、異常モジュール特定部６０５を備える。
【００９５】
受信部６０１は、検知モジュール１３１、１３２、・・・、１３７から、改ざん検出結果、各種依頼などを受信し、それらを指示生成部６０３へ出力する。また、受信部６０１は、管理装置２００内の各部から、処理が完了した旨の通知を受け取り、それを指示生成部６０３へ出力する。
【００９６】
送信部６０２は、指示生成部６０３によって生成された指示を、管理装置２００内の各部へ出力する。
【００９７】
指示生成部６０３は、検知モジュール１３１、１３２、・・・、１３７から受信した改ざん検出結果（以下、「相互監視結果」又は単に「監視結果」ということがある。）を、モジュール特定部６０４へ出力する。また、指示生成部６０３は、モジュール特定部６０４から、改ざんされている不正な検知モジュールを識別する情報を取得し、取得した情報を基に、管理装置２００内の各部に対する指示を生成する。
【００９８】
モジュール特定部６０４は、検知モジュール１３１、１３２、・・・、１３７から受信した相互監視結果を用いて、各検知モジュールが改ざんされているか否かを判断し、改ざんされている異常な検知モジュールを特定する。さらに、モジュール特定部６０４は、検知モジュール１３１、１３２、・・・１３７から受信した検出対象モジュールの監視結果を用いて、各検知モジュールが改ざんされているか否かを判断し、改ざんされている異常な検知モジュールを特定する。モジュール特定部６０４は、異常な検知モジュールを識別する情報を指示生成部６０３へ出力する。
【００９９】
異常モジュール特定部６０５は、各検知モジュールから受信した検出対象モジュール９００の改ざん検出結果（監視結果）を用いて、各検知モジュールが異常な検知モジュールであるか否かを特定する。具体的には、検出対象モジュール９００を「改ざんされていない」すなわち、正常と判断した検知モジュールを異常な検知モジュールと特定する。
【０１００】
（ｃ）検出対象モジュール配布部２２０
図７は、検出対象モジュール配布部２２０の機能的な構成を示す機能ブロック図である。
【０１０１】
同図に示すように、検出対象モジュール配布部２２０は、受信部７０１、送信部７０２、制御部７０３、証明書生成部７０４、署名秘密鍵保持部７０５、検知モジュール選択部７０６、及び検出対象モジュール保持部７０７から構成される。
【０１０２】
受信部７０１は、検知モジュール１３１、１３２、・・・、１３７から保護制御モジュール１２０に対する改ざん検出結果、及び検知モジュール間の相互監視結果を受信する。
【０１０３】
送信部７０２は、機器１００のアプリ１１０、１１１、保護制御モジュール１２０を更新する必要がある場合に、検知モジュール１３１、１３２、・・・、１３７へ、検出対象モジュール９００、検出対象モジュール９００のインストールの依頼、復号に必要な鍵などのデータを送信する。
【０１０４】
制御部７０３は、検出対象モジュール配布部２２０の各構成要素を制御する。
【０１０５】
証明書生成部７０４は、検知モジュール１３１、１３２、・・・、１３７の認証公開鍵に対して署名秘密鍵を用いて認証鍵証明書を生成する。また、保護制御モジュール１２０や検知モジュール１３１、１３２、・・・、１３７を改ざん検証するための改ざん検証用証明書を生成する。さらに、証明書生成部７０４は、検出対象モジュール９００に対して署名秘密鍵を用いて、機器１００内の検知モジュール１３１、１３２、・・・１３７が、検出対象モジュール９００の改ざん検出を実行する際に使用する検証用証明書を生成する。具体的には、検証用証明書は図２１に示すとおり、検出対象モジュール９００のデータ部分９２１に対応する署名である。ここで生成する検証用証明書は、図２１に示すとおり、署名の一部９２３を改ざんしたものであり、不正な証明書である。なお、署名を改ざんせず、データ部分９２１を改ざんしてもよい。また、署名秘密鍵を使用せず、乱数や所定の値を署名として検証用証明書を生成するとしてもよい。その場合は、署名秘密鍵保持部７０５を検出対象モジュール配布部２２０に含めなくてもよい。
【０１０６】
署名秘密鍵保持部７０５は、証明書生成部７０４が証明書を生成するときに用いる署名秘密鍵を保持する。
【０１０７】
検知モジュール選択部７０６は、検出対象モジュール９００を配布する場合に、検出対象モジュール配布処理に使用する検知モジュールを選択する。送信部７０２は、検知モジュール選択部７０６が検知した検知モジュールへ、暗号鍵及び検出対象モジュール９００を送付する。
【０１０８】
検出対象モジュール保持部７０７は、機器１００内の検知モジュール１３１、１３２、・・・、１３７が改ざん検出を実行する対象である、検出対象モジュールを保持する。
【０１０９】
（ｄ）モジュール無効化部２３０
図８は、モジュール無効化部２３０の機能的な構成を示す機能ブロック図である。
【０１１０】
同図に示すように、モジュール無効化部２３０は、受信部８０１、送信部８０２、アクセス情報取得鍵保持部８０３及び検知モジュール選択部８０４から構成される。
【０１１１】
受信部８０１は、判断部２１０から改ざんされた異常な検知モジュールを無効化する指示を受信する。また、受信部８０１は、検知モジュール１３１、１３２、・・・、１３７からアクセス情報取得鍵の取得依頼を受信する。
【０１１２】
送信部８０２は、アクセス情報取得鍵の取得依頼に応じて、アクセス情報取得鍵を依頼元の検知モジュールへ送信する。
【０１１３】
アクセス情報取得鍵保持部８０３は、アクセス制御モジュール１４０が保持するアクセス情報を復号するための鍵であるアクセス情報取得鍵を保持する。
【０１１４】
検知モジュール選択部８０４は、改ざんされた異常な検知モジュールの無効化処理を行う検知モジュールを選択し、選択した検知モジュールに、異常な検知モジュールの無効化を指示する。
【０１１５】
なお、検知モジュール選択部８０４が選択した検知モジュールからアクセス情報取得鍵の取得依頼があった場合には、送信部８０２は、アクセス情報取得鍵に、消去対象となる検知モジュールの識別子を付して、前記検知モジュールへ送信する。
【０１１６】
１．２  検知システム１０の動作
続いて、検知システム１０の動作を説明する。
【０１１７】
（１）全体動作
図１１は、検知システム１０全体の処理の流れを示したフローチャートである。
【０１１８】
検知システム１０は、先ず、初期設定処理を行う（Ｓ１００）。
【０１１９】
初期設定処理とは、保護制御モジュール１２０を検知するために必要となる各種のデータや、検知モジュール１３１、１３２、・・・、１３７が相互監視するために必要データなどを検知モジュール１３１、１３２、・・・、１３７のそれぞれに埋め込む処理である。なお、初期設定処理は、機器１００が工場で製造される際に行われる。その後、機器１００は、工場から出荷され、ユーザの利用に供される。
【０１２０】
ユーザにより機器１００が利用される際には、機器１００内部では、保護制御モジュール１２０がアプリ１１０、１１１を攻撃者による攻撃から保護する。
【０１２１】
これと同時に、検知モジュール１３１、１３２、・・・、１３７は、保護制御モジュール１２０の改ざん検出処理を実行し、保護制御モジュール１２０が攻撃されているか否かをチェックする検知処理を行う（Ｓ２００）。
【０１２２】
さらにこの処理と並行して、検知モジュール１３１、１３２、・・・、１３７間で相互監視することで異常モジュールを特定するモジュール特定処理を行う（Ｓ３００）。
【０１２３】
なお、本発明の改ざん監視システムは、上記のすべての処理は必須ではない。改ざん監視システムは、複数の検知モジュール間で相互監視することにより異常モジュールを特定する処理（モジュール特定処理）があればよい。
【０１２４】
（２）初期設定処理の動作
ここでは、図１２、図１３を用いて、検知システム１０の初期設定処理（図１１のＳ１００）の詳細について説明する。
【０１２５】
図１２は、初期設定処理のシーケンス図である。
【０１２６】
検知システム１０は、機器１００の工場製造時に、機器１００の不揮発メモリへアプリ（１１０、１１１）、保護制御モジュール１２０、検知モジュール（１３１、１３
２、・・・、１３７）などをインストールする（Ｓ１０００）。
【０１２７】
これらのソフトウェアには、ソフトウェアが改ざんされているか否かを検証するための改ざん検出用証明書が付加されている。この改ざん検出用証明書は、管理装置２００の検出対象モジュール配布部２２０が保持する署名秘密鍵により署名が施されている。なお、Ｓ１０００では、上記のソフトウェア以外にも、機器１００の動作に必要なソフトウェアがインストールされる。
【０１２８】
ここで、初期設定処理の際に機器１００に埋め込まれる鍵について説明する。保護制御モジュール１２０には暗復号鍵が埋め込まれ、検知モジュール１３１、１３２、・・・、１３７には署名公開鍵、検証鍵及び認証鍵対が埋め込まれる。更に、検知モジュール１３１、１３２、・・・、１３７には、それぞれの検知モジュールを識別するための検知モジュール識別子が埋め込まれ、その状態で機器１００にインストールされる。
【０１２９】
保護制御モジュール１２０の暗復号鍵は、アプリ１１０、１１１を暗号化及び復号するための鍵である。アプリ１１０、１１１は、暗復号鍵を用いて暗号化された状態で不揮発メモリへ記憶され、実行時に保護制御モジュール１２０により暗復号鍵を用いて復号された後、実行される。
【０１３０】
機器１００が、コンテキストを切り替えながら複数のアプリを実行する場合には、コンテキスト切り替えのタイミングで、暗復号鍵を用いて、アプリ１１０、１１１が使用しているデータの暗号化及び復号を行うことにより、アプリ１１０、１１１の実行時に、デバッガなどの解析ツールによって、データが抜き取られることを防止する。
【０１３１】
検知モジュール１３１、１３２、・・・、１３７に埋め込まれる鍵のうち、署名公開鍵は、すべての検知モジュールに共通の鍵である。検証鍵と認証鍵対とは、それぞれの検知モジュールで異なる鍵である。
【０１３２】
図１２に戻り説明を続ける。Ｓ１０００で各ソフトウェアをインストールした後、機器１００は、初期設定を行うソフトウェア、及び、正常に動作するかテストするためのソフトウェアなどを実行して、初期化する（Ｓ１００１）。また、機器１００は、検知モジュール１３１、１３２、・・・、１３７に対して、初期化指示を出力する（Ｓ１００２）。各検知モジュールは、検知モジュール初期化処理を行う（Ｓ１００３）。
【０１３３】
（３）検知モジュール初期化処理
図１３は、検知モジュール初期化処理（図１２のＳ１００３）の動作を示すフローチャートである。
【０１３４】
なお、ここでは、検知モジュール１３１についてのみ説明するが、検知モジュール１３２、・・・、及び１３７の動作も基本的に同一である。
【０１３５】
検知モジュール１３１は、改ざん検出対象である検知モジュール１３２、・・・、１３７及び保護制御モジュール１２０の改ざん検出用証明書の検証を行う（Ｓ１００４）。この検証は、各モジュールに対する改ざん検出用証明書が、改ざん検出用証明書に対応するモジュールのデータを対象とした署名データであるか否かを、署名公開鍵を用いて署名検証アルゴリズムを実行することにより行われる。
【０１３６】
生成したハッシュ値が、それぞれの改ざん検出用証明書に記述されているハッシュ値と一致すれば（Ｓ１００５でＹ）、検知モジュール１３２、・・・、１３７、保護制御モジュール１２０のそれぞれに対してＭＡＣ値を生成する。そして、生成したＭＡＣ値を、ＭＡＣ値テーブルとして保持する（Ｓ１００６）。
【０１３７】
署名検証アルゴリズムを用いた検証で、改ざん検出用証明書が不正と判定されれば（Ｓ１００５でＮ）、検知モジュール１３１は、エラーを出力して機器を停止する（Ｓ１００７）。
【０１３８】
（４）検知処理の動作
続いて、図１４のシーケンス図を用いて、検知システム１０の検知処理（図１１のＳ２００）の詳細について説明する。
【０１３９】
機器１００は、初期設定処理を終えると工場から出荷され、ユーザの元へ送られ、ユーザの元で機器１００が使用される。
【０１４０】
機器１００でアプリ１１０、１１１が動作しているとき、機器１００内部では、保護制御モジュール１２０が復号ロード機能、改ざん検出機能、解析ツール検出機能などの機能を制御し、アプリ１１０、１１１を攻撃者による攻撃から保護する。
【０１４１】
検知処理においては、先ず、検知モジュール１３１、１３２、・・・、１３７が、保護制御モジュール１２０の改ざん検出を実施する。例えば、検知モジュール１３１が、保護制御モジュール１２０の改ざん検出を実施する（ステップＳ２０００）。改ざん検出は、検証鍵を使用して保護制御モジュール１２０のＭＡＣ値を計算し、計算したＭＡＣ値とＭＡＣ値テーブルに保持されているＭＡＣ値とを比較することにより行う。なお、図１４では検知モジュール１３１、１３２、１３３のみを記載しているが、スペースの関係で簡略化した記載になっており、実際は、検知モジュール１３４、・・・、１３７も存在する。
【０１４２】
ＭＡＣ値が一致すれば、保護制御モジュール１２０は改ざんされていないと判定し、ＭＡＣ値が一致しなければ、保護制御モジュール１２０は改ざんされていると判定する。
【０１４３】
なお、図１４では記載を簡略化し、検知モジュール１３１のみが保護制御モジュール１２０の改ざん検出を行っているように記載されているが、当然ながら、検知モジュール１３２、・・・、１３７でも同様の処理が行われる。
【０１４４】
その後の処理についても、検知モジュール１３１が保護制御モジュール１２０の改ざんを検出した場合を中心に記載しているが、検知モジュール１３２、・・・、１３７が保護制御モジュール１２０の改ざんを検出した場合も基本的には同様の処理が行われる。
【０１４５】
保護制御モジュール１２０が改ざんされているか否か、即ち、ＭＡＣ値が一致するか否かを判定し、保護制御モジュール１２０が改ざんされていると判定した場合（Ｓ２００１でＹ」）、検知モジュール１３１は、その旨を、管理装置２００の判断部２１０及び他の検知モジュールへ通知する（Ｓ２００２、Ｓ２００３、Ｓ２００４）。
【０１４６】
保護制御モジュール１２０が改ざんされていないと判定した場合（Ｓ２００１でＮ）、検知モジュール１３１は、判断部２１０や他の検知モジュールへ通知を行わず、改ざん検出処理へ戻る。
【０１４７】
他の検知モジュールから保護制御モジュール１２０が改ざんされている旨の通知を受けた検知モジュールは、検証鍵及びＭＡＣ値を用いて、保護制御モジュール１２０の改ざん検出を実施する（Ｓ２００５、Ｓ２００６）。そして、改ざん検出結果を、判断部２１０及び他の検知モジュールへ通知する（Ｓ２００７、Ｓ２００８）。
【０１４８】
判断部２１０は、検知モジュール１３１、１３２、・・・、１３７から改ざん検出結果を受信する（Ｓ２００７、Ｓ２００８）。
【０１４９】
（５）モジュール特定処理の動作
続いて、図１５のシーケンス図を用いて、モジュール特定処理（図１１のＳ３００）の詳細について説明する。図１５では、検知モジュール１３１、１３２、・・・、１３７のそれぞれが個別に行う処理を、検知モジュール群１３０が行う処理としてまとめて記載している。
【０１５０】
検知モジュール群１３０は、各検知モジュール間で改ざん検出を行う相互監視処理を実行する（Ｓ３００１）。
【０１５１】
具体的には、図１６に示すとおり、まず、検知モジュール１３１が検知モジュール１３２の、検知モジュール１３２が検知モジュール１３３の、検知モジュール１３３が検知モジュール１３１の改ざん検出を行う（Ｓ３１０１、３１０２、３１０３）。ここで、図１６ではスペースの関係上、検知モジュール１３１、１３２、１３３のみを記載しているが、実際には、検知モジュール１３４、・・・、１３７の処理も存在する。また、図１６では上記のように検知モジュール１３１、１３２、１３３間で改ざん検出を実行するよう記載しているが、実際には検知モジュール１３４、・・・、１３７も含めた間で改ざん検出を実行する。なお、どの検知モジュールがどの検知モジュールを改ざん検出するかの情報（監視パターンと呼ぶ）にしたがって、各検知モジュールは改ざん検出を実行する。
【０１５２】
各検知モジュールは改ざん検出を実行した検知モジュールが改ざんされているか否かを判定する（Ｓ３１０４）。改ざんされていると判定した場合（Ｓ３１０４でＹ）、検出結果を管理装置２００の判断部２１０に送信する（Ｓ３１０５）。改ざんされていないと判定した場合（Ｓ３１０４でＮ）、何もせずに処理を継続する。管理装置２００の判断部２１０は、各検知モジュールから検出結果が送信された場合に、検出結果を受信する（Ｓ３１０６）。図１５に戻り説明を続ける。
【０１５３】
管理装置２００の判断部２１０は、各検知モジュールから受信した検出結果に基づき、改ざんされた検知モジュールが存在するか否かを判定する（Ｓ３００２）。具体的には、検知モジュール群１３０の検知モジュールの内、一つ以上の検知モジュールから検出結果を受信した場合に、改ざんされた検知モジュールが存在すると判定する。改ざんされた検知モジュールが存在しないと判定した場合（Ｓ３００２でＮ）、何もせず、モジュール特定処理を終了する。改ざんされた検知モジュールが存在すると判定した場合（Ｓ３００２でＹ）、検出対象モジュール９００を配布する検出対象モジュール配布処理を実行する（Ｓ３００３）。
【０１５４】
具体的には、図１７に示すとおり、まず、管理装置２００の検出対象モジュール配布部２２０が、検出対象モジュール９００に対応する検証用証明書として、不正な証明書を生成する（Ｓ３２０１）。次に検出対象モジュール配布部２２０は、検出対象モジュール９００をインストールさせる検知モジュールを選択する（Ｓ３２０２）。検出対象モジュール配布部２２０は、検出対象モジュール９００に生成した検証用証明書を付加して、選択した検知モジュールに送信する（Ｓ３２０３）。
【０１５５】
図１７では、検出対象モジュール配布部２２０が検知モジュール１３２を選択した場合について記載している。他の検知モジュールを選択した場合も、同様の動作を行う。選択された検知モジュール１３２は、検出対象モジュール配布部２２０から検出対象モジュール９００を受信する（Ｓ３２０４）。さらに、検知モジュール１３２は、検出対象モジュール９００を機器１００内部にインストールする（Ｓ３２０５）。図１５に戻り説明を続ける。
【０１５６】
次に機器１００内部にインストールした検出対象モジュール９００を、各検知モジュールが改ざん検出する検出対象モジュール監視処理を実行する（Ｓ３００４）。
【０１５７】
具体的には、図１８や図２２に示すとおり、まず、検知モジュール１３１、１３２、・・・、１３７が検出対象モジュール９００の改ざん検出を実行する（Ｓ３３０１、３３０２、３３０３）。ここで、図１８では検知モジュール１３１、１３２、１３３のみ記載しているが、実際は検知モジュール１３４、・・・、１３７も同様の処理を実行する。各検知モジュールは、改ざん検出した結果を検出対象モジュール配布部２２０に送信する（Ｓ３３０４）。判断部２１０は、検出結果を受信する（Ｓ３３０５）。図１５に戻り説明を続ける。
【０１５８】
判断部２１０は検出対象モジュール監視処理の結果、検出対象モジュールを正常と判定する検知モジュールが存在するか否かを判定する（Ｓ３００５）。検出対象モジュールを正常と判定する検知モジュールが存在しないと判定した場合（Ｓ３００５でＮ）、何もせず、モジュール特定処理を終了する。検出対象モジュールを正常と判定する検知モジュールが存在すると判定した場合（Ｓ３００５でＹ）、異常モジュール判定処理を実行する（Ｓ３００６）。
【０１５９】
具体的には、図１９に示すとおり、まず、管理装置２００の判断部２１０は、検出対象モジュールを正常と判定する検知モジュールを、異常モジュールとして抽出する（Ｓ３４０１）。例えば、図２３のように検知モジュール１３３、１３６、１３７が検出対象モジュールを正常と判定しているため、これらを異常モジュールとして抽出する。次に、判断部は機器１００内の検知モジュールすべてが異常モジュールであるか否かを判定する（Ｓ３４０２）。検知モジュールすべてが異常でないと判定した場合（Ｓ３４０２でＮ）、何もせず、モジュール特定処理を終了する。検知モジュールすべてが異常であると判定した場合（Ｓ３４０２でＹ）、機器１００においてエラーを出力して停止させる（Ｓ３４０３）。
【０１６０】
（６）無効化処理の動作
続いて、図２０のシーケンス図を用いて、無効化処理の詳細について説明する。
【０１６１】
無効化処理は、モジュール特定処理において改ざんされた検知モジュールを検出した場合に、機器１００内部に存在する異常な（改ざんされた）モジュールを無効化する処理である。
【０１６２】
ここでは、検知モジュール１３３が改ざんされ、それを検知モジュール１３１及び１３２が検出した場合の処理を例に、無効化処理の動作の詳細を説明する。
【０１６３】
判断部２１０は、モジュール特定処理において抽出した、異常な検知モジュールの識別情報と共に、モジュール無効化部２３０へ無効化の指示を出力する（Ｓ４００１）。
【０１６４】
モジュール無効化部２３０は、改ざんされたと判定されていない検知モジュール１３１、１３２及び１３４から１３７のいずれか（ここでは、検知モジュール１３１とする。）へ、改ざんされた検知モジュール１３３の無効化を依頼する（Ｓ４００２）。
【０１６５】
検知モジュール１３１は、モジュール無効化部２３０から、検知モジュール１３３の無効化依頼を受信すると、モジュール無効化部２３０に対し、検知モジュール１３３を無効化するためのアクセス情報取得鍵の送付を依頼する（Ｓ４００３）。更に、検知モジュール１３１は、アクセス制御モジュール１４０へ、検知モジュール１３３を無効化するためのアクセス情報の取得を依頼する（Ｓ４００４）。
【０１６６】
モジュール無効化部２３０は、アクセス情報取得鍵の送付依頼を受信すると、検知モジュール１３１が正常な（改ざんされていない）検知モジュールか否か、及び、依頼されたアクセス情報取得鍵が異常な（改ざんされた）検知モジュール１３３を無効化するためのアクセス情報取得鍵か否かを確認する（Ｓ４００５）。この確認は、判断部２１０からモジュール無効化部２３０へ通知された検知モジュールの情報を利用して行なう。
【０１６７】
確認した結果、改ざんされた検知モジュール１３３からの依頼であったり、あるいは、改ざんされていない検知モジュール１３１、１３２に対するアクセス情報取得鍵の取得依頼であったりする場合には（Ｓ４００５でＮ）、無効化処理を停止する（Ｓ４００６）。
【０１６８】
確認した結果、問題なければ（Ｓ４００５でＹ）、依頼してきた検知モジュール１３１へ検知モジュール１３３を無効化するためのアクセス情報取得鍵を送付する（Ｓ４００７）。
【０１６９】
検知モジュール１３１は、モジュール無効化部２３０からアクセス情報取得鍵を受信し、さらに、アクセス制御モジュール１４０から暗号化されたアクセス情報を受信する（Ｓ４００８）。検知モジュール１３１は、アクセス情報取得鍵と暗号化されたアクセス情報とから、アクセス情報を取得する（Ｓ４００９）。取得したアクセス情報は、検知モジュール１３３を消去するための専用ドライバである。検知モジュール１３１は、専用ドライバを利用して、改ざんされた異常な検知モジュール１３３を消去する（Ｓ４０１０）。
【０１７０】
検知モジュール１３１は、無効化処理が終了すると、アクセス情報取得鍵、暗号化されたアクセス情報、及び、アクセス情報等を消去し、モジュール無効化部２３０へ完了通知を送信する（Ｓ４０１１）。モジュール無効化部２３０は、検知モジュール１３１から完了通知を受信したら、判断部２１０へ無効化の完了通知を送信する（Ｓ４０１２）。
【０１７１】
ここで、ステップＳ４００２では、検知モジュール１３１に対して、改ざんされた検知モジュール１３３の無効化処理を依頼しているが、正常な検知モジュールを１つ選択する方法としては、本実施の形態１に係るモジュール特定処理の結果を用いて、正常なモジュールを１つ選択するとしてもよい。
【０１７２】
１．３  実施の形態１の効果
以上説明したように、検知モジュール群１３０内の複数の検知モジュールが相互監視処理を行うので、改ざんされた検知モジュールが存在するか否かが判定可能になる。
【０１７３】
さらに、検出対象モジュール９００を各検知モジュールが改ざん検出し、その結果を管理装置２００の判断部２１０が判断することにより、改ざんされた異常な検知モジュールを検出することが可能となり、検知システムの信頼性を高めることができる。以下でこれについて詳細に説明する。
【０１７４】
検出対象モジュール９００は、図２１に示すように、検出対象モジュール９００のデータ部分９２１に対する検証用証明書９２２が付加されている。この検証用証明書９２２は改ざんされており、不正な証明書である。そのため、正常な検知モジュールが検証用証明書９２２を用いて、検出対象モジュール９００のデータを改ざん検出すると、検証用証明書が不正であるため、検出対象モジュール９００が異常（改ざんされている）と判定することになる。したがって、もし、ある検知モジュールが検出対象モジュール９００を正常（改ざんされていない）と判定した場合、この検知モジュールは正常でなく異常である。そのため、管理装置２００の判断部２１０において、各検知モジュールの検出対象モジュール９００の監視結果を確認することで、異常な検知モジュールを抽出することが可能になる。具体的には、監視結果が検出対象モジュール９００が正常であることを示している場合、判断部２１０はその監視結果を送信した検知モジュールが異常であると判断するため、異常な検知モジュールの抽出が可能である。したがって、判断部２１０は異常な検知モジュールを検出可能であり、検知システムの信頼性を高めることができる。
【０１７５】
また、本実施の形態１では、異常な検知モジュールを無効化するので、異常な検知モジュールによる不正動作を防止することができる。
【０１７６】
なお、非特許文献３には、モジュールの相互監視により故障診断をするため技術が記載されている。しかし、この技術では、システム内の故障数を制限しているため、システム内の故障数を超えたときに誤判断をする可能性がある。本発明に係る改ざん監視システムである実施の形態１の検知システムでは、検出対象モジュール９００の監視結果により、異常な検知モジュールを検出することができるため、判断は異常な検知モジュールの数に依らず、誤判断することがない。
【０１７７】
２．実施の形態２
ここでは、本発明に係る別の改ざん監視システムの実施の形態２について、図面を参照しながら説明する。
【０１７８】
上記の実施の形態１では、検出対象モジュールを使用して異常な検知モジュールを特定している。さらに、異常な検知モジュールを無効化するために、異常でないと判断された検知モジュールを使用する。しかし、異常でないと判断された検知モジュールであっても、異常である可能性があるため、正しく異常な検知モジュールを無効化できるとは限らない。
そこで、実施の形態２では、異常な検知モジュールを特定するだけでなく、正常な検知モジュールを特定し、それを用いて異常な検知モジュールを無効化する。
【０１７９】
２．１  検知システム１０ａの構成
実施の形態２に係る検知システム１０ａの構成について、図２４を用いて説明する。
【０１８０】
（１）全体構成
図２４に示すように、検知システム１０ａは、情報処理装置としての機器１００と管理装置としての管理装置２００ａとが、ネットワークを介して接続されて構成される。図２４において、実施の形態１と同様の機能を有する構成要素には、図１と同一の符号を付し、詳細な説明を省略する。以下では、実施の形態２の特徴的な構成要素及び処理について詳細に説明する。
【０１８１】
管理装置２００ａは、判断部２１０ａ、検出対象モジュール配布部２２０、モジュール無効化部２３０、通信部２４０及び監視パターン更新部２５０から構成される。
【０１８２】
（２）判断部２１０ａの構成
図２５は、実施の形態２に係る判断部２１０ａの構成を機能的に示す機能ブロック図である。
【０１８３】
同図に示すように、判断部２１０ａは、受信部６０１、送信部６０２、指示生成部６０３及びモジュール特定部６０４ａから構成される。そして、モジュール特定部６０４ａの内部に、異常モジュール特定部６０５、正常モジュール特定部６０７とモジュール特定情報保持部６０６とを備える。
【０１８４】
実施の形態１の判断部２１０との相違点は、モジュール特定部６０４ａの内部に、正常モジュール特定部６０７及びモジュール特定情報保持部６０６を備える点である。
【０１８５】
（３）モジュール特定情報保持部６０６
モジュール特定情報保持部６０６は、異常モジュール特定部６０５及び正常モジュール特定部６０７が異常モジュールもしくは正常モジュールと特定した結果を格納する。具体的には、例えば、図２６のように、検知モジュールの識別情報とそのモジュールが正常または異常であるかのリスト（モジュール特定情報）６２１を格納する。図２６は、検知モジュール１３３と１３６が異常（６２４、６２７）、検知モジュール１３２と１３７が正常（６２３、６２８）と特定され、それ以外の検知モジュールの状態は不明（異常、正常のどちらにも特定されていない）（６２２、６２５、６２６）であることを示している。
【０１８６】
（４）正常モジュール特定部６０７
正常モジュール特定部６０７は、以下に示すようにして、機器１００における各検知モジュールの相互監視結果を用いて、改ざんされていない正常な検知モジュールを特定する。
【０１８７】
正常モジュール特定部６０７は、図２７に示すように、特定指示受信部６７１、特定結果送信部６７２、異常モジュール仮定部（第一仮定部とも呼ぶ。）６７３、検証結果判定部６７４、仮異常検知モジュール群抽出部６７５及び抽出結果判断部６７６から構成されている。また、検証結果判定部６７４及び仮異常検知モジュール群抽出部６７５は、第二仮定部６７７を構成している。
【０１８８】
第二仮定部６７７は、異常モジュール仮定部６７３により、改ざんされていると仮定された検知モジュールを起点として、受信した監視結果を用いて、改ざんされていると仮定された検知モジュールを正常と判定する検知モジュールに対して改ざんされていると仮定する手順を、未処理の検知モジュールについて、連鎖的に適用する。
【０１８９】
（ａ）特定指示受信部６７１
特定指示受信部６７１は、指示生成部６０３から正常な検知モジュールの特定の指示を示す正常モジュール特定指示を受信する。正常モジュール特定指示を受信すると、正常モジュール特定指示を異常モジュール仮定部６７３へ出力する。
【０１９０】
また、特定指示受信部６７１は、指示生成部６０３から検知モジュールリストを受信する。検知モジュールリストは、機器１００における検知モジュール群１３０を構成するすべての検知モジュールを識別する識別番号を含んでいる。次に、特定指示受信部６７１は、受信した検知モジュールリストを異常モジュール仮定部６７３及び抽出結果判断部６７６へ出力する。
【０１９１】
また、特定指示受信部６７１は、機器１００から、ネットワーク、通信部２４０、受信部６０１及び指示生成部６０３を介して、機器１００における検知モジュール群１３０の監視の結果を受信する。また、受信した検知モジュール群１３０の監視の結果を異常モジュール仮定部６７３及び検証結果判定部６７４へ出力する。
【０１９２】
（ｂ）異常モジュール仮定部６７３
異常モジュール仮定部６７３は、以下に示すようにして、検知モジュールの中から選択した１個の検知モジュールに対して異常（改ざんされている）と仮定する。
【０１９３】
異常モジュール仮定部６７３は、特定指示受信部６７１から検知モジュールリストを受信し、機器１００における検知モジュール群１３０の監視の結果を受信する。また、モジュール特定情報保持部６０６に格納されている異常であると特定されたすべての検知モジュールの識別番号である異常識別番号を受信する。
【０１９４】
次に、異常モジュール仮定部６７３は、検知モジュールリストに含まれる検知モジュールの識別番号の内、受信した異常識別番号以外の検知モジュールの識別番号を一つ選択し、選択した識別番号により示される検知モジュールを異常な検知モジュールと仮定する。この選択した識別番号を仮定識別番号と呼ぶ。異常モジュール仮定部６７３は、空集合の仮異常検知モジュール群を定め、次に、仮定識別番号を仮異常検知モジュール群に含める。この時点において、仮異常検知モジュール群には、選択した検知モジュールを識別する仮定識別番号のみが含まれる。このように、異常モジュール仮定部６７３は、仮定識別番号を含む仮異常検知モジュール群を生成する。
【０１９５】
次に、異常モジュール仮定部６７３は、選択した検知モジュールの仮定識別番号を抽出結果判断部６７６へ送信し、仮異常検知モジュール群の仮異常構成情報を検証結果判定部６７４へ送信する。仮異常検知モジュール群の仮異常構成情報は、仮異常検知モジュール群に含まれるすべての識別番号から構成されている。
【０１９６】
また、異常モジュール仮定部６７３は、抽出結果判断部６７６から正常な検知モジュールを特定できない旨の特定不可通知を受信する。特定不可通知を受信した場合、異常モジュール仮定部６７３は、検知モジュールリストに含まれる検知モジュールの識別番号の内、受信した異常識別番号以外の検知モジュールであって、選択した検知モジュールとは別の検知モジュールの識別番号を新たに選択し、選択した検知モジュールを異常な検知モジュールと仮定し、選択した当該検知モジュールを識別する仮定識別番号のみを仮異常検知モジュール群に含め、仮異常検知モジュール群の仮異常構成情報を検証結果判定部６７４へ送信する。
【０１９７】
（ｃ）第二仮定部６７７
第二仮定部６７７は、上述したように、検証結果判定部６７４及び仮異常検知モジュール群抽出部６７５から構成されている。
【０１９８】
第二仮定部６７７は、以下に説明するように、異常モジュール仮定部６７３により、改ざんされていると仮定された検知モジュールを起点として、受信した監視結果を用いて、改ざんされていると仮定された検知モジュールを正常と判定する検知モジュールに対して改ざんされていると仮定する手順を、未処理の検知モジュールについて、連鎖的に適用する。
【０１９９】
第二仮定部６７７は、簡単に説明すると、監視結果を用いて、前記仮異常検知モジュール群に含まれている識別番号により識別される検知モジュールを正常と判断する検知モジュールが存在するか否かを判定し、存在すると判定された場合に、当該検知モジュールを識別する識別番号を前記仮異常検知モジュール群に追加し、未処理の検知モジュールについて、前記判定と前記追加とを繰り返し行うように制御する。
【０２００】
（ｉ）検証結果判定部６７４
検証結果判定部６７４は、特定指示受信部６７１から、機器１００における検知モジュール群１３０の監視の結果を受信する。また、異常モジュール仮定部６７３から仮異常構成情報を受信する。
【０２０１】
検証結果判定部６７４は、特定指示受信部６７１から受信した機器１００における検知モジュール群１３０の監視の結果、及び、異常モジュール仮定部６７３から受信した仮異常検知モジュール群の仮異常構成情報を用いて、仮異常検知モジュール群内の検知モジュールへの検証結果を判定する。
【０２０２】
ここでは、図２８に示す例を用いて、検証結果判定部６７４による判定方法について説明する。
【０２０３】
図２８に示すように、検知モジュール１３１は、検知モジュール１３２を監視（Ａ２０００）し、図２８に示すように検知モジュール１３１による検知モジュール１３２に対する監視結果は、正常（Ｒ２０００）であるものとする。また、検知モジュール１３２は、仮異常検知モジュール群３００２内に含まれる検知モジュールであるものとする。
【０２０４】
このとき、検証結果判定部６７４は、受信した監視の結果を用いて、仮異常検知モジュール群３００２内に含まれる検知モジュール１３２を正常と判定する検知モジュールを探す。図２８に示す例では、検知モジュール１３１が検知モジュール１３２を正常（Ｒ２０００）と判定している。そこで、検証結果判定部６７４は、検知モジュール１３２を正常と判定する検知モジュール１３１を仮異常検知モジュールとみなす。
【０２０５】
後述するように、検知モジュール１３１は、仮異常検知モジュールとして、仮異常検知モジュール群に追加して含まれるようになる。その結果、検知モジュール１３２及び１３１は、新たな仮異常検知モジュール群３００１に含まれることになる。
【０２０６】
検証結果判定部６７４は、仮異常検知モジュール群内の検知モジュールへの監視の結果として、正常と判定する検知モジュールを識別する識別番号（以下、仮異常識別番号と呼ぶ。）と、受信した仮異常検知モジュール群の構成情報を仮異常検知モジュール群抽出部６７５へ送信する。仮異常検知モジュール群内の検知モジュールへの監視の結果として、正常とする検知モジュールが存在しない場合は、その旨を仮異常検知モジュール群抽出部６７５へ送信する。仮異常検知モジュール群抽出部６７５から仮異常検知モジュール群の構成情報を受信した場合も、同様の動作を行う。
【０２０７】
（ｉｉ）仮異常検知モジュール群抽出部６７５
仮異常検知モジュール群抽出部６７５は、検証結果判定部６７４から仮異常検知モジュール群内の検知モジュールへの監視の結果として、正常と判定する検知モジュールの識別番号（仮異常識別番号）と、仮異常検知モジュール群の構成情報を受信する。次に、受信した検知モジュールの識別番号（仮異常識別番号）を受信した仮異常検知モジュール群へ追加する。
【０２０８】
図２８に示す例の場合には、検知モジュール１３１は、仮異常検知モジュールとして、仮異常検知モジュール群に追加して含まれるようになる。その結果、検知モジュール１３２及び１３１は、新たな仮異常検知モジュール群３００１に含まれることになる。
【０２０９】
次に、仮異常検知モジュール群抽出部６７５は、識別番号が追加された新たな仮異常検知モジュール群の構成情報を検証結果判定部６７４へ送信する。検証結果判定部６７４から検知モジュールが存在しない旨の通知を受信した場合には、抽出結果判断部６７６へ仮異常検知モジュール群の構成情報を送信する。
【０２１０】
（ｄ）抽出結果判断部６７６
抽出結果判断部６７６は、特定指示受信部６７１から検知モジュールリストを受信する。また、仮異常検知モジュール群抽出部６７５から仮異常検知モジュール群の仮異常構成情報及び仮定識別番号を受信する。さらに、モジュール特定情報保持部６０６から異常な検知モジュールを識別する異常識別番号を受信する。
【０２１１】
次に、抽出結果判断部６７６は、仮異常検知モジュール群の仮異常構成情報及び異常な検知モジュールを識別する異常識別番号を用いて、モジュール特定情報保持部６０６に格納されている異常識別情報に対応する検知モジュール以外のすべての検知モジュールが仮異常検知モジュール群に含まれているか否かを判断する。
【０２１２】
また、モジュール特定情報保持部６０６に格納されている識別情報が示す異常な検知モジュールが存在しない場合には、抽出結果判断部６７６は、すべての検知モジュールが仮異常検知モジュール群に含まれているか否かを判断する。さらに、異常な検知モジュールの存在を検出しない場合にも、すべての検知モジュールが仮異常検知モジュール群に含まれているか否かを判断する。言い換えると、すべての検知モジュールに対して、改ざんされていると仮定されたかを判断する。さらに、言い換えると、抽出結果判断部６７６は、仮異常検知モジュール群に、すべての検知モジュールを識別する識別番号が含まれるか否かを判断する。
【０２１３】
言い換えると、抽出結果判断部６７６は、検知モジュールリストに含まれる識別番号から、異常識別番号を取り除き、さらに、仮異常構成情報に含まれる識別番号を取り除いた結果、検知モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。
【０２１４】
また、異常な検知モジュールが存在しない場合には、抽出結果判断部６７６は、検知モジュールリストに含まれる識別番号から、仮異常構成情報に含まれる識別番号を取り除いた結果、検知モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。さらに、異常な検知モジュールの存在を検出しない場合にも、検知モジュールリストに含まれる識別番号から、仮異常構成情報に含まれる識別番号を取り除いた結果、検知モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。
【０２１５】
モジュール特定情報保持部６０６に格納されている異常識別情報に対応する検知モジュール以外のすべての検知モジュールが仮異常検知モジュール群に含まれている場合、抽出結果判断部６７６は、異常モジュール仮定部６７３で仮定した検知モジュールを正常な検知モジュールと特定し、受信した仮定識別番号を正常モジュールを示す識別番号とし、正常モジュール識別番号を、特定結果として、特定結果送信部６７２へ出力する。
【０２１６】
すべての検知モジュールが仮異常検知モジュール群に含まれない場合、抽出結果判断部６７６は、異常モジュール仮定部６７３で仮定した検知モジュール以外の検知モジュールを仮定するように、異常モジュール仮定部６７３へ指示（正常な検知モジュールを特定できない旨の特定不可通知）を送信する。
【０２１７】
（ｅ）特定結果送信部６７２
特定結果送信部６７２は、抽出結果判断部６７６から正常な検知モジュールの特定結果を受信し、受信した特定結果を指示生成部６０３に送信する。
【０２１８】
また、特定結果送信部６７２は、最新の監視の結果がすべて正常であることを示す正常結果を指示生成部６０３へ送信する。また、最新の監視の結果がすべて正常ではなく（つまり、少なくとも一部は、異常）、また、前回の監視の結果がすべて正常ではない（つまり、少なくとも一部は、異常）旨を示す結果を、指示生成部６０３へ送信する。
【０２１９】
（５）監視パターン更新部２５０の構成
監視パターン更新部２５０は、機器１００内部の検知モジュール群１３０の監視パターンを更新する場合に、判断部２１０ａによる監視パターン更新の指示に応じて、検知モジュール群１３０内の各検知モジュールの監視パターンを更新するために、更新のための監視パターンを生成し、生成した監視パターンを各検知モジュールへ送信する。
【０２２０】
監視パターン更新部２５０は、図２９に示すように、受信部９０１、送信部９０２、監視パターン生成部９０３、監視パターン分割部９０４及び制御部９０５から構成されている。
【０２２１】
（ａ）受信部９０１
受信部９０１は、判断部２１０ａから、監視パターンの生成を示す生成指示及び指示した時点での検知モジュールリストを受信する。検知モジュールリストは、機器１００ａが有する検知モジュール群１３０に含まれるすべての検知モジュールをそれぞれ識別する識別番号を含んでいる。
【０２２２】
受信部９０１は、受信した監視パターンの生成指示を制御部９０５へ出力する。また、受信した検知モジュールリストを、制御部９０５を介して、監視パターン生成部９０３へ出力する。
【０２２３】
（ｂ）監視パターン生成部９０３
監視パターン生成部９０３は、受信部９０１から、制御部９０５を介して、検知モジュールリストを受信する。
【０２２４】
検知モジュールリストを受信すると、監視パターン生成部９０３は、受信した検知モジュールリストを用いて、どの検知モジュールがどの検知モジュールを監視するかを決定し、機器１００が有する検知モジュール群１３０における全体の監視パターンを生成する。
【０２２５】
なお、監視パターン生成部９０３は、全体の監視パターンとして、例えば、すべての検知モジュールが他のすべての検知モジュールを監視するように、決定してもよい。
【０２２６】
監視パターン生成部９０３は、生成した全体の監視パターンを監視パターン分割部９０４へ出力する。
【０２２７】
（ｃ）監視パターン分割部９０４
監視パターン分割部９０４は、監視パターン生成部９０３から、全体の監視パターンを受信する。
【０２２８】
全体の監視パターンを受信すると、監視パターン分割部９０４は、受信した全体の監視パターンを、それぞれの検知モジュール毎の監視パターンに分割する。次に、分割して得られた検知モジュール毎の監視パターンを、更新用の監視パターンとして、制御部９０５、送信部９０２、通信部２４０及びネットワークを介して、機器１００のそれぞれの検知モジュールに送信する。
【０２２９】
（ｄ）送信部９０２
送信部９０２は、通信部２４０及びネットワーク５を介して、機器１００へ更新用の検知モジュール毎の監視パターンを送信する。また、判断部２１０ａへ更新用の監視パターンの生成及び送信の終了を通知する。
【０２３０】
（ｅ）制御部９０５
制御部９０５は、受信部９０１から、監視パターンの生成指示を受信する。
【０２３１】
監視パターンの生成指示を受信すると、制御部９０５は、監視パターン生成部９０３及び監視パターン分割部９０４に対して、機器１００が有する検知モジュール群１３０における全体の監視パターンを生成し、更新用の検知モジュール毎の監視パターンを生成し、機器１００へ更新用の検知モジュール毎の監視パターンを送信して、機器１００において監視パターンの更新処理をさせるように、制御する。
【０２３２】
２．２  検知システム１０ａの動作
続いて、検知システム１０ａの動作を説明する。
【０２３３】
（１）全体動作
図３０は、検知システム１０ａ全体の処理の流れを示したフローチャートである。図３０において、実施の形態１と同様の機能を有する処理には、図１１と同一の符号を付し、詳細な説明を省略する。検知システム１０の全体の処理との相違点は、モジュール特定処理Ｓ３００がＳ３００ａに置き換わっている点である。その他は同じであるので、以下ではモジュール特定処理Ｓ３００ａの処理について詳しく説明する。
【０２３４】
（２）モジュール特定処理の動作
図３１、３２のシーケンス図を用いて、モジュール特定処理（図３０のＳ３００ａ）の詳細について説明する。図３１、３２では、検知モジュール１３１、１３２、・・・、１３７のそれぞれが個別に行う処理を、検知モジュール群１３０が行う処理としてまとめて記載している。
【０２３５】
検知モジュール群１３０及び判断部２１０ａは、各検知モジュール間で改ざん検出を行う相互監視処理を実行する（Ｓ５００１）。この相互監視処理は、実施の形態１における相互監視処理（図１６）と同じであるので、説明は省略する。
【０２３６】
管理装置２００ａの判断部２１０ａは、各検知モジュールから受信した検出結果に基づき、改ざんされた検知モジュールが存在するか否かを判定する（Ｓ５００２）。具体的には、検出結果を受信した場合に、改ざんされた検知モジュールが存在すると判定する。改ざんされた検知モジュールが存在しないと判定した場合（Ｓ５００２でＮ）、何もせず、モジュール特定処理を終了する。改ざんされた検知モジュールが存在すると判定した場合（Ｓ５００２でＹ）、検出対象モジュール９００を配布する検出対象モジュール配布処理を実行する（Ｓ５００３）。この検出対象モジュール配布処理は、実施の形態１における検出対象モジュール配布処理（図１７）と同じであるので、説明は省略する。
【０２３７】
次に機器１００内部にインストールした検出対象モジュール９００を、各検知モジュールが改ざん検出する検出対象モジュール監視処理を実行する（Ｓ５００４）。この検出対象モジュール監視処理は、実施の形態１における検出対象モジュール監視処理（図１８）と同じであるので、説明は省略する。
【０２３８】
判断部２１０ａは検出対象モジュール監視処理の結果、検出対象モジュールを正常と判定する検知モジュールが存在するか否かを判定する（Ｓ５００５）。検出対象モジュールを正常と判定する検知モジュールが存在しないと判定した場合（Ｓ５００５でＮ）、何もせず、モジュール特定処理を終了する。検出対象モジュールを正常と判定する検知モジュールが存在すると判定した場合（Ｓ５００５でＹ）、異常モジュール判定処理を実行する（Ｓ５００６）。この異常モジュール判定処理は、実施の形態１における検出対象モジュール配布処理（図１７）と同じであるので、説明は省略する。
【０２３９】
判断部２１０ａは、異常モジュール判定処理により抽出した異常モジュールの識別情報を、モジュール特定情報保持部６０６に格納する（Ｓ５００７）。さらに、判断部２１０ａは監視パターン生成指示を、監視パターン更新部２５０へ送信する（Ｓ５００８）。
【０２４０】
監視パターン更新部２５０は、監視パターン生成指示にしたがって、監視パターンを生成し（Ｓ５００９）、検知モジュール群１３０の各検知モジュールへ生成した監視パターンを送信する（Ｓ５０１０）。
【０２４１】
検知モジュール群１３０の各検知モジュールは、監視パターンを受信し、自身の検知モジュールの監視パターンを更新する（Ｓ５０１１）。
【０２４２】
検知モジュール群１３０及び判断部２１０ａは、相互監視処理を実行する（Ｓ５０１２）。
【０２４３】
判断部２１０ａは、正常モジュール特定処理を実行する（Ｓ５０１３）。正常モジュール特定処理については、後で詳しく説明する。
【０２４４】
判断部２１０ａは、正常モジュール特定処理により特定した正常モジュールの識別情報を、モジュール特定情報保持部６０６に格納する（Ｓ５０１４）。
（２）正常モジュール特定処理の動作
検知システム１０ａにおける正常な検知モジュールの特定処理の動作を、図３３に示すフローチャートを用いて説明する。
【０２４５】
異常モジュール仮定部６７３は、モジュール特定情報保持部６０６に格納されている異常な検知モジュールの識別情報をもつ、異常な検知モジュール以外の検知モジュールを選択し、選択した検知モジュールを異常な検知モジュールと仮定し、仮異常検知モジュール群がこの異常と仮定した検知モジュールの識別番号のみを含むとする（ステップＳ５１０１）。
【０２４６】
検証結果判定部６７４は、仮異常検知モジュール群内に含まれる識別番号により識別される検知モジュールを正常と判定する検知モジュールが、仮異常検知モジュール群以外に、一個でも存在するかを判定する（ステップＳ５１０２）。仮異常検知モジュール群内のモジュールを正常と判定する仮異常検知モジュール群以外の検知モジュールが一個でも存在する場合（ステップＳ５１０２でＹ）、仮異常検知モジュール群抽出部６７５は、この検知モジュールを識別する識別番号を仮異常検知モジュール群に含める（ステップＳ５１０３）。次に、ステップＳ５１０２へ制御を移す。仮異常検知モジュール群内の検知モジュールを正常と判定する仮異常検知モジュール群以外の検知モジュールが一個でも存在しなかった場合（ステップＳ５１０２でＮ）、モジュール特定情報保持部６０６に格納されている異常な検知モジュールの識別情報をもつ異常な検知モジュールと、仮異常検知モジュール群以外の検知モジュールが存在するか判断する（ステップＳ５１０４）。存在しない場合（ステップＳ５１０４でＮ）、ステップＳ５１０１で仮定した検知モジュールを正常な検知モジュールと特定する（ステップＳ５１０５）。こうして、正常な検知モジュールが特定できた場合には、その後に、上記において異常とした仮定をすべて取り消し、仮異常検知モジュール群に含まれる識別番号を消去する。
【０２４７】
また、存在する場合（ステップＳ５１０４でＹ）、ステップＳ５１０１で仮定した検知モジュールを正常な検知モジュールと特定しない（ステップＳ５１０６）。ステップＳ５１０１において、モジュール特定情報保持部６０６に格納されている異常な検知モジュールの識別情報をもつ異常な検知モジュールのすべてを選択していない場合には（ステップＳ５１０７でＮ）、ステップＳ５１０１へ制御を移す。すべての検知モジュールを仮定した場合（ステップＳ５１０７でＹ）、正常モジュール特定処理を終了する。
【０２４８】
２．３  モジュール特定処理の例
２．３．１  第１の例（正常モジュール特定が成功する場合）
以下で、図３１及び３２のフローチャート、図２２及び図２３と図３４から図３７とを用いて、モジュール特定処理の例を説明する。
【０２４９】
（ａ）相互監視
図３４は、一例として、ステップＳ５００１の相互監視処理の結果、判断部２１０ａが受信した相互監視結果７５１を示している。図３４では、例えば、検知モジュール１３２が検知モジュール１３３を異常と判定している。そのため、ステップＳ５００２で改ざんされた検知モジュールが存在すると判定し、ステップＳ５００３へ進む。
【０２５０】
（ｂ）検出対象モジュール監視処理
ステップＳ５００３では検出対象モジュール配布処理を実行し、その後、ステップＳ５００４で検出対象モジュール監視処理を実行する。図２２は、検出対象モジュールへの改ざん検出（監視）の監視パターン５５１を示している。図２３は、その改ざん検出結果５５２を示している。図２３では、検知モジュール１３３、１３６及び１３７が、検出対象モジュール９００を正常と判定している。そのため、Ｓ５００５で検出対象モジュールを正常と判定する検知モジュールが存在すると判定し、ステップＳ５００６に進む。
【０２５１】
（ｃ）異常モジュール判定処理
ステップＳ５００６では、図２３の改ざん検出結果に基づいて、検知モジュール１３３、１３６及び１３７を異常モジュールとして抽出する。ステップＳ５００７でその抽出結果を、モジュール特定情報保持部６０６に格納する。図３５は、格納した直後のモジュール特定情報保持部６０６に格納されているモジュール特定情報６３１を示している。このモジュール特定情報６３１は、検知モジュール１３３、１３６及び１３７が異常（６３４、６３７、６３８）、それ以外の検知モジュールが不明（６３２、６３３、６３５、６３６）であることを示している。
【０２５２】
（ｄ）監視パターンの更新
ステップＳ５００８からＳ５０１１で、監視パターンを更新する。図３６は、更新するための監視パターン７５２、つまり、更新後の監視パターンを示している。Ａ２２００からＡ２２０３が、それぞれの監視を示している。
【０２５３】
（ｅ）相互監視処理Ｓ５０１２及び正常モジュール特定処理Ｓ５０１３の例
ステップＳ５０１２で、相互監視処理を実行する。図３７は、相互監視処理の結果７５３を示している。この場合は、すべての検知モジュールが監視先を正常と判定している。
【０２５４】
ステップＳ５０１３で、相互監視結果を用いて、正常モジュール特定処理を実行する。まず、ステップＳ５１０１にて、検知モジュール１３１を異常と仮定し、仮異常検知モジュール群とする。次にステップＳ５１０２で、仮異常検知モジュール群内のモジュールを正常と判定する仮異常検知モジュール群以外のモジュールがひとつでも存在するか否かを判定し、存在するためステップＳ５１０３の処理に移る。
【０２５５】
ステップＳ５１０３で、検知モジュール１３１を正常と判定する（Ｒ２２０２）検知モジュール１３４を異常な検知モジュールであると仮定し、仮異常検知モジュール群に追加する。再び、ステップＳ５１０２で、仮異常検知モジュール群内のモジュールを正常と判定する仮異常検知モジュール群以外のモジュールがひとつでも存在するか否かを判定し、存在するためステップＳ５１０３の処理に移る。
【０２５６】
ステップＳ５１０３で、検知モジュール１３４を正常と判定する（Ｒ２２０１）検知モジュール１３２を異常な検知モジュールであると仮定し、仮異常検知モジュール群に追加
する。再び、ステップＳ５１０２で、仮異常検知モジュール群内のモジュールを正常と判定する仮異常検知モジュール群以外のモジュールがひとつでも存在するか否かを判定し、存在するためステップＳ５１０３の処理に移る。
【０２５７】
ステップＳ５１０３で、検知モジュール１３２を正常と判定する（Ｒ２２０３）検知モジュール１３５を異常な検知モジュールであると仮定し、仮異常検知モジュール群に追加する。再び、ステップＳ５１０２で、仮異常検知モジュール群内のモジュールを正常と判定する仮異常検知モジュール群以外のモジュールがひとつでも存在するか否かを判定し、存在しないためステップＳ５１０４の処理に移る。
【０２５８】
ステップＳ５１０４で、異常と特定した検知モジュール（検知モジュール１３３、１３６、１３７）と仮異常検知モジュール群（検知モジュール１３１、１３２、１３４、１３５）以外のモジュールが存在するか否かを判定する。検知モジュール１３１から１３７は、異常と特定した検知モジュールまたは仮異常検知モジュール群に含まれ、ステップＳ５１０４の判定はＮ（否）であるため、ステップＳ５１０５の処理に移る。
【０２５９】
ステップＳ５１０５で検知モジュール１３１を異常とした仮定を誤りとし、検知モジュール１３１が正常と特定する。
【０２６０】
２．３．２  第２の例（正常モジュール特定が成功しない場合）
以下で、図３１及び３２のフローチャート、図２２及び図２３、図３４から図３６と図３８を用いて、モジュール特定処理の例を説明する。
【０２６１】
第２の例は、（ａ）から（ｄ）までが第１の例と同じであり、（ｅ）が第１の例と異なる。そのため、（ａ）から（ｄ）までの説明を省略し、（ｅ）のみ説明する。
【０２６２】
（ｅ）相互監視処理Ｓ５０１２及び正常モジュール特定処理Ｓ５０１３の例
ステップＳ５０１２で、相互監視処理を実行する。図３８は、相互監視処理の結果７５４を示している。この場合は、検知モジュール１３５が検知モジュール１３２を監視した結果は異常と判定しており、その他のすべての検知モジュールが監視先を正常と判定している。
【０２６３】
ステップＳ５０１３で、相互監視結果を用いて、正常モジュール特定処理を実行する。まず、ステップＳ５１０１にて、検知モジュール１３１を異常と仮定し、仮異常検知モジュール群とする。次にステップＳ５１０２で、仮異常検知モジュール群内のモジュールを正常と判定する仮異常検知モジュール群以外のモジュールがひとつでも存在するか否かを判定し、存在するためステップＳ５１０３の処理に移る。
【０２６４】
ステップＳ５１０３で、検知モジュール１３１を正常と判定する（Ｒ２３０２）検知モジュール１３４を異常な検知モジュールであると仮定し、仮異常検知モジュール群に追加する。再び、ステップＳ５１０２で、仮異常検知モジュール群内のモジュールを正常と判定する仮異常検知モジュール群以外のモジュールがひとつでも存在するか否かを判定し、存在するためステップＳ５１０３の処理に移る。
【０２６５】
ステップＳ５１０３で、検知モジュール１３４を正常と判定する（Ｒ２３０１）検知モジュール１３２を異常な検知モジュールであると仮定し、仮異常検知モジュール群に追加する。再び、ステップＳ５１０２で、仮異常検知モジュール群内のモジュールを正常と判定する仮異常検知モジュール群以外のモジュールがひとつでも存在するか否かを判定する。仮異常検知モジュール群に含まれる検知モジュール１３１、１３２及び１３４以外の検知モジュール１３５は、検知モジュール１３２を正常ではなく異常と判定（Ｒ２３０３）しているため、ステップＳ５１０２ではＮと判定され、ステップＳ５１０４の処理に移る。
【０２６６】
ステップＳ５１０４で、異常と特定した検知モジュール（検知モジュール１３３、１３６、１３７）と仮異常検知モジュール群（検知モジュール１３１、１３２、１３４）以外のモジュールが存在するか否かを判定する。検知モジュール１３５は、異常と特定した検知モジュールと仮異常検知モジュール群のどちらにも含まれないため、ステップＳ５１０４の判定はＹであるため、ステップＳ５１０６の処理に移る。
【０２６７】
ステップＳ５１０６で仮定した検知モジュール１３１の正常／異常の特定を行わず、ステップＳ５１０７ですべての検知モジュールを仮定しているか否かを判定する。検知モジュール１３２、１３４、１３５を仮定していないため、これらの検知モジュールもそれぞれ異常と仮定し、同様の処理を続ける。図３８の監視結果を用いると、他の検知モジュール１３２、１３４、１３５もいずれも最終的にステップＳ５１０６の処理に移り、特定を行わない。そのため、図３８の監視結果が出た場合は、正常モジュール特定を行わない。
【０２６８】
２．３．３  第３の例（検出対象モジュール抽出部ですべての検知モジュールを抽出した場合）
以下で、図１９、図３１及び３２のフローチャート、図２２と図３４を用いて、モジュール特定処理の例を説明する。
【０２６９】
第３の例は、（ａ）が第２の例と同じであり、（ｂ）以降が第１の例と異なる。そのため、（ａ）の説明を省略し、（ｂ）以降を説明する。
【０２７０】
（ｂ）検出対象モジュール監視処理
ステップＳ５００３では検出対象モジュール配布処理を実行し、その後、ステップＳ５００４で検出対象モジュール監視処理を実行する。図２２は、検出対象モジュールへの改ざん検出（監視）の監視パターン５５１を示している。図３９は、その改ざん検出結果７５５を示している。図３９では、すべての検知モジュールが、検出対象モジュール９００を正常と判定している。そのため、Ｓ５００５で検出対象モジュールを正常と判定する検知モジュールが存在すると判定し、ステップＳ５００６に進む。
【０２７１】
（ｃ）異常モジュール判定処理
ステップＳ５００６の異常モジュール判定処理では、図３９の改ざん検出結果７５５に基づいて、すべての検知モジュールを異常モジュールとして抽出する。具体的には、図１９のステップＳ３４０１で異常モジュールを抽出する。さらに、ステップＳ３４０２にて、機器１００内の検知モジュールすべてが異常であるか否かを判定する。すべての検知モジュールが異常であるため、ステップＳ３４０３にてエラーを出力して機器を停止させる。
【０２７２】
２．４  実施の形態２の効果
以上説明したように、ステップＳ５１０６において、仮定した検知モジュールを正常な検知モジュールと特定しないことにより、異常な検知モジュールを、正常な検知モジュールと誤判断するのを防止できる。異常な検知モジュールを介して、異常と特定された検知モジュールの無効化処理を不正に実行されるのを防止できる。
【０２７３】
上記、正常モジュール特定処理では、まず、複数の検知モジュールの中のいずれか一つの検知モジュールが異常な検知モジュールであるという仮定を行う。その上で、検知モジュールの中から正常である検知モジュールを論理的な検証方法を用いて効果的に特定できるので、特定した正常な検知モジュールを用いて、異常と特定された検知モジュールの無効化処理を正しく実行できる。
【０２７４】
また、異常モジュール判定処理において、検出対象モジュールを正常と判定する異常モジュールをすべて特定した後に正常モジュール特定処理を実行することで、異常モジュールができるだけ少ない状態で、正常モジュール特定処理を実行することができ、正常モジュールを特定できる可能性が高くなる。
【０２７５】
さらに、異常モジュール判定処理を示す図１９のステップＳ３４０２にて、機器１００内の検知モジュールすべてが異常であるか否かを判定している。第３の例では、すべての検知モジュールが異常であるため、ステップＳ３４０２でＹとなり、ステップＳ３４０３にて機器を停止する。そのため、すべての検知モジュールが異常でない場合のみで正常モジュール特定処理を実行することで、異常モジュールが存在しない状態で正常モジュール特定処理を実行することができ、正常モジュールを特定できる可能性が高くなる。
【０２７６】
３．実施の形態３
実施の形態３では、検知処理で保護制御モジュール１２０の改ざんを検出した場合、保護制御モジュール１２０を新しい保護制御モジュール１２１へ更新するソフトウェア更新システムについて説明する。ソフトウェア更新システムにおける保護制御モジュール１２０の更新の方法は、特許文献３に詳しく記載されている方法に本発明を適用した方法である。ここでは、特許文献３における更新モジュールの更新機能を検知モジュールに含める。
【０２７７】
３．１  ソフトウェア更新システム１２の構成
（１）全体構成
実施の形態３に係るソフトウェア更新システム１２の構成について、図４０を用いて説明する。
【０２７８】
同図に示すように、ソフトウェア更新システム１２は、情報処理装置としての機器１００ａと、管理装置としての管理装置２００ｂとから構成される。そして、機器１００ａ及び管理装置２００ｂは、ネットワークを介して接続されている。
【０２７９】
管理装置２００ｂは、判断部２１０ａ、検出対象モジュール配布部２２０ｂ、モジュール無効化部２３０、通信部２４０及び監視パターン更新部２５０から構成される。
【０２８０】
図４０において、実施の形態１及び２と同様の機能を有する構成要素には、図１及び図２４と同一の符号を付し、詳細な説明を省略する。以下では、実施の形態３の特徴的な構成要素及び処理について詳細に説明する。
【０２８１】
（２）機器１００ａの構成
（ａ）保護制御モジュール１２０ａの構成
ここでは、保護制御モジュール１２０ａの詳細について説明する。
【０２８２】
図４１は、保護制御モジュール１２０ａの機能的な構成を示す機能ブロック図である。
【０２８３】
同図に示すように、保護制御モジュール１２０ａは、図２の保護制御モジュール１２０の構成に加え、暗復号鍵分散部３０８、証明書生成部３０９、暗復号鍵復元部３１０及び暗復号鍵生成部３１１から構成される。
【０２８４】
暗復号鍵分散部３０８は、初期設定時や次ラウンド準備時に、暗復号鍵から秘密分散法を用いて分散情報を生成する。
【０２８５】
証明書生成部３０９は、暗復号鍵から生成された分散情報を復元したときに、正しく復元できたか否かを検証するために用いられる証明書を生成する。
【０２８６】
暗復号鍵復元部３１０は、配置情報に基づいて、各検知モジュールから、各検知モジュールに配布されていた分散情報を取得する。そして、暗復号鍵復元部３１０は、取得した分散情報から暗復号鍵を復元し、復元した暗復号鍵を復号ロード部３０４に送信する。
【０２８７】
暗復号鍵生成部３１１は、アプリ１１０、１１１を暗復号するための暗復号鍵を生成する。
【０２８８】
（ｂ）検知モジュール１３１ａの構成
ここでは、検知モジュール１３１ａの詳細について説明する。
【０２８９】
図４２は、検知モジュール１３１ａの機能的な構成を示す機能ブロック図である。他の検知モジュールも同様の構成を有する。
【０２９０】
同図に示すように、検知モジュール１３１ａは、図４の検知モジュール１３１の構成に加え、更新部４０８、認証部４０９、分散情報保持部４１０から構成される。
【０２９１】
更新部４０８は、制御部４０３の制御に基づき、管理装置２００ｂと連携して、機器１００ａ内部のソフトウェア、具体的には、アプリ１１０及び１１１、保護制御モジュール１２０ａ、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａを更新する。
【０２９２】
認証部４０９は、検知モジュールの認証鍵対（認証秘密鍵、認証公開鍵）を保持し、他のモジュールとの認証を行う。
【０２９３】
分散情報保持部４１０は、保護制御モジュール１２０ａがアプリ１１０、１１１の暗復号処理に利用する暗復号鍵から生成した分散情報（ｓｈａｒｅ）と、保護制御モジュール１２０ａが分散情報を配布したときの配置情報を保持する。配置情報は、どの分散情報をどの検知モジュールに配布したかを記述した情報である。
【０２９４】
署名方式に関しては非特許文献１の１７１ページから１８７ページに、証明書に関しては非特許文献２に詳しく説明されている。また、分散情報に関しては特許文献２に詳しく説明されている。
【０２９５】
（ｃ）検出対象モジュール配布部２２０ａ
図４３は、検出対象モジュール配布部２２０ａの機能的な構成を示す機能ブロック図である。
【０２９６】
同図に示すように、検出対象モジュール配布部２２０ａは、図７の検出対象モジュール配布部２２０の構成に加え、暗号鍵生成部７０８、暗号処理部７０９、認証部７１０、暗号鍵保持部７１１、更新用ソフトウェア保持部７１２から構成される。なお、この構成における証明書生成部７０４については、後述する追加の機能を加えた証明書生成部７０４ａとする。
【０２９７】
証明書生成部７０４ａは、実施の形態１における証明書生成部７０４の処理に加えて、更新用ソフトウェアに対して署名秘密鍵を用いて、機器１００にて、保護制御モジュールが正しく更新されたか否かを検証するための更新検証証明書を生成する。
【０２９８】
暗号鍵生成部７０８は、更新用ソフトウェアを検知モジュール１３１ａ、１３２ａ、・・・、１３７ａへ送信するときに使用する暗号鍵を生成する。
【０２９９】
暗号処理部７０９は、暗号鍵生成部７０８が生成した暗号鍵を用いて、更新用ソフトウェアを暗号化する。また、暗号処理部７０９は、各検知モジュール固有の鍵を用いて、暗号鍵を暗号化する。
【０３００】
暗号鍵及び更新用ソフトウェアは、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａへ一度にすべてが送信されるのではなく、更新処理の中で、それぞれのデータが必要になったタイミングで、それぞれ各検知モジュールへ送信される。
【０３０１】
認証部７１０は、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａ、及び保護制御モジュール１２０ａと相互認証を行う。
【０３０２】
暗号鍵保持部７１１は、暗号鍵生成部７０８が生成した暗号鍵及び暗号処理部７０９により暗号化された暗号鍵を保持する。
【０３０３】
更新用ソフトウェア保持部７１２は、保護制御モジュール１２０ａが攻撃された場合に更新するための更新用の保護制御モジュールを保持する。
【０３０４】
３．２  ソフトウェア更新システム１２の動作
続いて、ソフトウェア更新システム１２の動作を説明する。
【０３０５】
（１）全体動作
ソフトウェア更新システム１２は、上記実施の形態の初期設定処理、検知処理、モジュール特定処理に加えて、４つの処理がある。図４４はソフトウェア更新システム１２の動作を示すフローチャートである。
【０３０６】
ソフトウェア更新システム１２は、初期設定処理（Ｓ１００ａ）を実行し、その後に検知処理（Ｓ２００）とモジュール特定処理（Ｓ３００ａ）を並行して実行する。検知処理において保護制御モジュール１２０ａの改ざんが検出された場合に、保護制御モジュール１２０ａを解析し、更新する必要があるか否か判断する解析・判断処理を行う（Ｓ４００）。
【０３０７】
次に、ソフトウェア更新システム１２は、検知モジュール１３１ａ、１３２ａ、１３３ａ、・・・、１３７ａと検出対象モジュール配布部２２０ａとが互いに正しいソフトウェアであるか否かを確認するための相互認証処理を行う（Ｓ５００）。
【０３０８】
次に、ソフトウェア更新システム１２は、回復処理を行う（Ｓ６００）。  
【０３０９】
回復処理とは、検知モジュール群１３０ａに含まれる検知モジュール間で相互に改ざん検出処理を行った後、更新用の保護制御モジュールを機器１００ａへインストールする。そして、機器１００ａにおいて、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａへ埋め込まれた分散情報を用いて、保護制御モジュールを更新する処理である。
【０３１０】
その後、ソフトウェア更新システム１２は、次に保護制御モジュールの更新が必要となる場合に備えて、更新に必要な鍵データや分散情報を生成し、各検知モジュールに埋め込む次ラウンド準備処理を行う（Ｓ７００）。その後、ソフトウェア更新システム１２は、Ｓ２００の検知処理及びＳ３００ａのモジュール特定処理へ戻り、処理を続ける。
【０３１１】
（２）初期設定処理の動作
ここでは、図４５と図４６を用いて、ソフトウェア更新システム１２の初期設定処理（図４４のＳ１００ａ）の詳細について説明する。
【０３１２】
実施の形態３におけるＳ１０００からＳ１００１の動作と、実施の形態１におけるＳ１０００からＳ１００１の動作にそれぞれ対応し同様の動作であるため、説明を省略する。
【０３１３】
機器１００ａは、機器の初期化後、保護制御モジュール１２０ａ、及び、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａに対して、初期化指示を出力する（Ｓ１１００、Ｓ１１０１）。
【０３１４】
保護制御モジュール１２０ａは、暗復号鍵から秘密分散法を用いて分散情報を生成する（Ｓ１１０２）。なお、保護制御モジュール１２０ａは、分散情報保持部４１０を備える検知モジュールの数と同数の分散情報を生成する。検知モジュール１３１ａ、１３２ａ、・・・、１３７ａがすべて分散情報保持部４１０を備えている場合、保護制御モジュール１２０ａは、７つの分散情報を生成する。
【０３１５】
更に、保護制御モジュール１２０ａは、署名秘密鍵を用いて、暗復号鍵証明書を生成する（Ｓ１１０３）。暗復号鍵証明書は、暗復号鍵の復元時に、暗復号鍵が正しく復元できたか否かを確認するための証明書である。
【０３１６】
保護制御モジュール１２０ａは、生成した分散情報と暗復号鍵証明書とを、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａへ送信する（Ｓ１１０４、Ｓ１１０５）。
【０３１７】
なお、保護制御モジュール１２０ａは、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａが、それぞれ異なる分散情報の組を保持するように、各検知モジュールに分散情報の組を送信する。更に、保護制御モジュール１２０ａは、どの検知モジュールへどの分散情報を送信したかを示す配置情報を、各検知モジュールへ送信する。各検知モジュールに送信される配置情報は、同一の情報である。
【０３１８】
暗復号鍵から秘密分散法を用いて分散情報を生成する方法や、分散情報を検知モジュールへ送信する方法については、特許文献２の４７ページから４９ページに詳しく説明されている。特許文献２における秘密鍵ｄを本実施の形態の暗復号鍵に対応させ、認証局装置を保護制御モジュール１２０ａに対応させ、分散情報保持装置を検知モジュール１３１ａ、１３２ａ、・・・、１３７ａに対応させることで、特許文献２と同じ方法を用いることができる。
【０３１９】
保護制御モジュール１２０ａから分散情報、配置情報及び暗復号鍵証明書を受信した各検知モジュールは、検知モジュール初期化処理を行う（Ｓ１１０６）。
【０３２０】
（ａ）検知モジュール初期化処理の動作
図４６は、検知モジュール初期化処理（図４５のＳ１１０６）の動作を示すフローチャートである。
【０３２１】
実施の形態３におけるＳ１１０８からＳ１１１１の動作と、実施の形態１におけるＳ１００４からＳ１００７の動作にそれぞれ対応し同様の動作であるため、説明を省略する。
【０３２２】
検知モジュール１３１ａは、保護制御モジュール１２０ａから分散情報、配置情報及び暗復号鍵証明書を受信し、受信した各情報を分散情報保持部４１０に保持する（Ｓ１１０７）。
【０３２３】
（３）検知処理の動作
実施の形態３の検知処理は、実施の形態１や実施の形態２の検知処理の動作と同様であるので、ここでは省略する。
【０３２４】
（４）モジュール特定処理の動作
実施の形態３のモジュール特定処理は、実施の形態２のモジュール特定処理と同様であるので、ここでは省略する。なお、実施の形態３のモジュール特定処理を、実施の形態１のモジュール特定処理と同じであるとしてもよい。
【０３２５】
（５）解析・判断処理の動作
続いて、図４７のシーケンス図を用いて、解析判断処理（図４４のＳ４００）の詳細について説明する。なお、図４７では、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａのそれぞれが個別に行う処理を、検知モジュール群１３０ａが行う処理としてまとめて記載している。
【０３２６】
検知処理において、判断部２１０ａが各検知モジュールから保護制御モジュール１２０ａの改ざん検出結果を受信すると、判断部２１０ａは、受信した改ざん検出結果に基づいて、保護制御モジュール１２０ａが正常であるか異常であるか（改ざんされているか否か
）を判定する（Ｓ６００１）。
【０３２７】
判定方法の一例として、例えば、所定数の検知モジュールが改ざんを検出した場合には、保護制御モジュール１２０ａは異常である（改ざんされている）と判定し、また、所定数未満の検知モジュールが改ざんを検出した場合には、保護制御モジュール１２０ａは正常である（改ざんされていない）と判定する。前記所定数は、検知モジュール群１３０ａに含まれる検知モジュールの過半数としてもよい。また、検知処理のＳ３００ａと同様のモジュール特定処理を行い、正常と特定した検知モジュールが保護制御モジュール１２０ａの改ざんを検出した場合、保護制御モジュール１２０ａは異常である（改ざんされている）と判定し、正常と特定した検知モジュールが保護制御モジュール１２０ａの改ざんを検出しなかった場合には、保護制御モジュール１２０ａは正常である（改ざんされていない）と判定するとしてもよい。
【０３２８】
保護制御モジュール１２０ａが改ざんされていると判定した場合（Ｓ６００１でＹ）、判断部２１０ａは、保護制御モジュール１２０ａを回復する必要があるか否かを判断するために、検知モジュール群１３０ａに対して、保護制御モジュール１２０ａのどの部分が改ざんされたかなどの改ざん情報の通知を依頼する（Ｓ６００２）。
【０３２９】
検知モジュール群１３０ａは、改ざん情報の通知を依頼されると、改ざん情報を収集して（Ｓ６００３）、改ざん情報を判断部２１０ａへ通知する（Ｓ６００４）。
【０３３０】
判断部２１０ａは、改ざん情報に基づいて、保護制御モジュール１２０ａを回復するか、機器１００ａをリボークするか、または、何もしないかを判断する（Ｓ６００５）。
【０３３１】
保護制御モジュール１２０ａを回復する場合（Ｓ６００５で「回復する」）、判断部２１０ａは、更新用の保護制御モジュールを準備し（Ｓ６００６）、検知モジュール群１３０ａに、更新処理の開始を指示する（Ｓ６００７）。また、機器１００ａをリボークする場合には（Ｓ６００５で「リボーク」）、アプリ１１０、１１１にサービスを提供しているサーバに対して、機器１００ａをリボークするように依頼する（Ｓ６００８）。何もしない場合（Ｓ６００５で「何もしない」）、検知処理へ戻る。
【０３３２】
保護制御モジュール１２０ａが正常である（改ざんされていない）と判定した場合（Ｓ６００１でＮ）は、検知処理へ戻る。
【０３３３】
（５）相互認証処理の動作
次に、図４８及び図４９のシーケンス図を用いて、ソフトウェア更新システム１２による相互認証処理（図４４のＳ５００）の詳細について説明する。
【０３３４】
管理装置２００ｂの判断部２１０ａが、解析・判断処理において、保護制御モジュール１２０ａを回復する必要があると判断した場合、判断部２１０ａは、検出対象モジュール配布部２２０ａへ、保護制御モジュール１２０ａの回復を指示する。
【０３３５】
検出対象モジュール配布部２２０ａは、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａへ更新処理の開始を指示した後、各検知モジュールとの間で、それぞれ１対１の相互認証処理を行う。これにより、機器１００ａが不正な管理装置と接続したり、管理装置２００ｂが不正な機器と接続したりすることを防止する。なお、相互認証処理において、検出対象モジュール配布部２２０ａは、署名秘密鍵及び署名公開鍵を使用し、各検知モジュールは、認証鍵対（認証秘密鍵及び認証公開鍵）を使用する。
【０３３６】
図４８は、検知モジュール１３１ａが検出対象モジュール配布部２２０ａを認証するときのシーケンス図である。なお、検知モジュール１３２ａ、・・・、１３７ａも、図４８の検知モジュール１３１ａと同様に動作し、検出対象モジュール配布部２２０ａを認証す
る。
【０３３７】
検知モジュール１３１ａは、乱数生成器を用いて乱数（チャレンジデータ）を生成し（Ｓ７００１）、生成したチャレンジデータを検出対象モジュール配布部２２０ａへ送信する（Ｓ７００２）。この時、検知モジュール１３１ａを識別するための検知モジュールの識別子を、チャレンジデータと共に送信する。検出対象モジュール配布部２２０ａは、受信したチャレンジデータに署名秘密鍵を用いて署名データを生成し（Ｓ７００３）、生成した署名データをレスポンスデータとして、検知モジュール１３１ａへ返信する（Ｓ７００４）。
【０３３８】
検知モジュール１３１ａは、検出対象モジュール配布部２２０ａからレスポンスデータを受信すると（Ｓ７００４）、署名公開鍵を用いて、レスポンスデータが、チャレンジデータの署名データと一致するか否か検証する（Ｓ７００６）。
【０３３９】
検証の結果、レスポンスデータが正しく、検出対象モジュール配布部２２０ａが正当なモジュールである場合（Ｓ７００７でＹ）、検知モジュール１３１ａは、処理を継続する。レスポンスデータが正しくなく、検出対象モジュール配布部２２０ａが不正なモジュールである場合（Ｓ７００７でＮ）、検知モジュール１３１ａは、エラーを出力し、処理を停止する（Ｓ７００８）。
【０３４０】
次に、検出対象モジュール配布部２２０ａが、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａを認証する。
【０３４１】
図４９は、検出対象モジュール配布部２２０ａが各検知モジュールを認証するときのシーケンス図である。
【０３４２】
検出対象モジュール配布部２２０ａは、チャレンジデータを送信してきた各検知モジュールに対して、乱数生成器を用いてそれぞれ異なる乱数（チャレンジデータ）を生成し（Ｓ７１０１）、生成したチャレンジデータを、各検知モジュールへ個別に送信する（Ｓ７１０２）。
【０３４３】
各検知モジュールは、受信したチャレンジデータに認証秘密鍵を用いて署名データを生成し（Ｓ７１０３）、生成した署名データをレスポンスデータとして検出対象モジュール配布部２２０ａへ返信する（Ｓ７１０４）。
【０３４４】
このとき、各検知モジュールは、レスポンスデータと共に認証公開鍵と認証鍵証明書とを検出対象モジュール配布部２２０ａへ送信する。
【０３４５】
検出対象モジュール配布部２２０ａは、それぞれの検知モジュールからレスポンスデータ、認証公開鍵及び認証鍵証明書を受信する（Ｓ７１０４）。検出対象モジュール配布部２２０ａは、認証鍵証明書が、自身が発行した証明書であるか否か検証し、更に、認証鍵証明書を用いて、認証公開鍵の正当性を検証する（Ｓ７１０５）。
【０３４６】
認証鍵証明書又は認証公開鍵が不正である場合（Ｓ７１０５で「証明書又は鍵が正しくない」）、検出対象モジュール配布部２２０ａは、処理を停止する（Ｓ７１０６）。
【０３４７】
認証鍵証明書及び認証公開鍵が正当であれば（Ｓ７１０５で「証明書及び鍵が正し
い」）、検出対象モジュール配布部２２０ａは、認証公開鍵を用いて、受信したレスポンスデータがチャレンジデータの署名データと一致するか否か検証する（Ｓ７１０７）。
【０３４８】
次に、検出対象モジュール配布部２２０ａは、正しいレスポンスデータを返した検知モジュール（正当な検知モジュール）を用いて回復処理を行うかを判断する（Ｓ７１０８）。このとき、正しいレスポンスデータを返した検知モジュール（正当な検知モジュール）の数が、予め設定されている回復処理に必要な数以上であるかを判断する。ここで、正しいレスポンスデータを返した検知モジュール（正当な検知モジュール）の数が、予め設定されている回復処理に必要な数以上である場合には、回復処理を行うと判断する。正しいレスポンスデータを返した検知モジュール（正当な検知モジュール）の数が、予め設定されている回復処理に必要な数未満である場合には、回復処理を行わないと判断する。
【０３４９】
回復処理を行わない場合（Ｓ７１０８でＮ）、検出対象モジュール配布部２２０ａは、処理を停止する（Ｓ７１０６）。回復処理を行う場合（Ｓ７１０８でＹ）、相互認証処理を終了し、回復処理に移る。
【０３５０】
また、検出対象モジュール配布部２２０ａは、相互認証処理において、正当性が確認されたすべての検知モジュールの検知モジュール識別子を記載した認証リストを作成する。そして、これ以降の回復処理では、認証リストに識別子が記載されている検知モジュールのみを利用する。
【０３５１】
（６）回復処理の動作
続いて、図５０〜５４を用いて、回復処理（図４４のＳ６００）の詳細について説明する。回復処理は、上述した相互認証処理において、相互認証が成功した場合に、改ざんされた保護制御モジュール１２０ａを、新しい更新用の保護制御モジュールへ更新する処理である。
【０３５２】
図５０は、回復処理時の動作を示すフローチャートである。
【０３５３】
先ず、モジュール特定処理（Ｓ３００ａ）と更新処理（Ｓ８１００）を並行して実行する。
【０３５４】
さらに、暗号化されたアプリ１１０、１１１を再暗号化する再暗号化処理を行う（Ｓ８２００）。
【０３５５】
（ａ）モジュール特定処理
回復処理におけるモジュール特定処理は、実施の形態２のモジュール特定処理と同様であるので、ここでは省略する。なお、このモジュール特定処理を、実施の形態１のモジュール特定処理と同じであるとしてもよい。
【０３５６】
（ｂ）更新処理
続いて、図５１〜５４のシーケンス図を用いて、更新処理（図５０のＳ８１００）の詳細について説明する。ここで、図５１〜５４では、図面の記載スペースの関係上、検知モジュール１３１ａ、１３２ａ、１３３ａ、１３４ａ、１３５ａのみを記載しているが、実際には、検知モジュール１３６ａ、１３７ａの処理も存在する。
【０３５７】
先ず、検出対象モジュール配布部２２０ａの証明書生成部７０４は、署名秘密鍵を用いて、更新検証証明書を生成する（Ｓ８１０１）。更新検証証明書は、新しい保護制御モジュールが正しくインストールできたか否かを、各検知モジュール１３１ａ、１３２ａ、・・・、１３７ａが確認するための証明書である。検出対象モジュール配布部２２０ａは、生成した証明書を、各検知モジュールへ送信する（Ｓ８１０２）。
【０３５８】
次に、検出対象モジュール配布部２２０ａの暗号鍵生成部７０８は、新しい保護制御モジュールを多重に暗号化するための暗号鍵を２つ（第１の鍵及び第２の鍵）生成する（Ｓ８１０３）。暗号処理部７０９は、第２の鍵を用いて新しい保護制御モジュールを暗号化し、暗号化新保護制御モジュールを生成する（Ｓ８１０４）。暗号処理部７０９は、暗号化新保護制御モジュールを、第１の鍵を用いてさらに暗号化し、多重暗号化新保護制御モジュールを生成する（Ｓ８１０５）。
【０３５９】
検出対象モジュール配布部２２０ａの検知モジュール選択部７０６は、検知モジュール群１３０ａから検知モジュールを一つ選択し（Ｓ８１０６）、選択した検知モジュールの識別子を判断部２１０ａに通知する。ここでは、一例として、検知モジュール１３１ａを
選択するものとする。
【０３６０】
検出対象モジュール配布部２２０ａは、選択した検知モジュール１３１ａへ多重暗号化新保護制御モジュールを送信し（Ｓ８１０７）、更に、第１の鍵を送信する（Ｓ８１０８）。
【０３６１】
検知モジュール１３１ａは、多重暗号化新保護制御モジュールと第１の鍵とを受信する（Ｓ８１０９）。検知モジュール１３１ａは、第１の鍵を用いて、多重暗号化新保護制御モジュールを復号し、暗号化新保護制御モジュールを取得する（Ｓ８１１０）。そして、復号が終了すると、その旨を検出対象モジュール配布部２２０ａへ通知する（Ｓ８１１１）。
【０３６２】
検出対象モジュール配布部２２０ａは、復号終了通知を受信すると（Ｓ８１１１）、検知モジュール群１３０ａから、Ｓ８１０６で選択した検知モジュールとは異なる検知モジュールを一つ選択する（Ｓ８１１２）。ここでは、一例として、検知モジュール１３２ａを選択するものとする。
【０３６３】
検出対象モジュール配布部２２０ａは、選択した検知モジュール１３２ａに、第２の鍵を送信する（Ｓ８１１３）。さらに、検出対象モジュール配布部２２０ａは、検知モジュール１３１ａに対して、Ｓ８１１０で取得した暗号化新保護制御モジュールを検知モジュール１３２ａへ送信するよう依頼する（Ｓ８１１４）。
【０３６４】
検知モジュール１３１ａは、検出対象モジュール配布部２２０ａからの依頼を受けて、暗号化新保護制御モジュールを検知モジュール１３２ａへ送信する（Ｓ８１１５）。
【０３６５】
検知モジュール１３２ａは、検出対象モジュール配布部２２０ａから第２の鍵を受信し、検知モジュール１３１から暗号化新保護制御モジュールを受信する（Ｓ８１１６）。そして、第２の鍵を用いて、暗号化新保護制御モジュールを復号し、新しい保護制御モジュールを取得する（Ｓ８１１７）。
【０３６６】
検知モジュール１３２ａは、Ｓ８１１７で取得した新しい保護制御モジュールを保護制御モジュール１２０ａに上書きし、更新する（Ｓ８１１８）。そして、検知モジュール１３２ａは、更新の終了を他の検知モジュールへ通知する（Ｓ８１１９）。
【０３６７】
続いて、各検知モジュール１３１ａ、１３２ａ、・・・、１３７ａのそれぞれは、事前に受信した更新検証証明書を用いて、保護制御モジュールが正しく更新されたか否か検証（Ｓ８１２０）する。さらに、検証結果を検出対象モジュール配布部２２０ａへ通知する（Ｓ８１２１）。
【０３６８】
検出対象モジュール配布部２２０ａは、各検知モジュールから送信された検証結果通知を受信する（Ｓ８１２１）。さらに、検出対象モジュール配布部２２０ａは、保護制御モジュールが正しく更新されたかを判定する（Ｓ８１２２）。正しく更新されていないと判定する場合（Ｓ８１２１でＮ）、検出対象モジュール配布部２２０ａは、機器１００を停止させる（Ｓ８１２３）。
【０３６９】
正しく更新されている場合（Ｓ８１２２でＹ）、検出対象モジュール配布部２２０ａは、更新処理終了を各検知モジュールへ通知する（Ｓ８１２４）。
【０３７０】
各検知モジュールは、更新処理終了通知を受信すると（Ｓ８１２４）、新しい保護制御モジュールのＭＡＣ値を生成し、生成したＭＡＣ値と保護制御モジュールの識別子との組を、ＭＡＣ値テーブルに書き込む（Ｓ８１２５）。
【０３７１】
以上説明したように、更新処理では、検出対象モジュール配布部２２０ａが更新用の新保護制御モジュールを複数の鍵を用いて多重に暗号化し、検知モジュール群１３０ａへ送信する。検知モジュール群１３０ａは、受信した新保護制御モジュールで、保護制御モジュール１２０ａを更新する。
【０３７２】
この時、検出対象モジュール配布部２２０ａは、多重に暗号化された新保護制御モジュールを復号するための複数の鍵を、検知モジュール群１３０ａに送信するタイミングを制御することにより、攻撃者が暗号化されていない新保護制御モジュールを入手することを困難にする。
【０３７３】
（ｃ）モジュール特定処理と更新処理との関係
上述したモジュール特定処理と更新処理とは、互いに連携しながら実行される。
【０３７４】
モジュール特定処理は、検出対象モジュール配布部２２０ａから、検知モジュール群１３０ａに含まれる検知モジュールを送信先として、複数の鍵が送られる時と、暗号化された更新用保護制御モジュールの検知モジュール群１３０ａに含まれる検知モジュールでの復号処理中に定期的に実施される。定期的に実施する際の時間間隔は、例えば、更新用保護制御モジュールが通信路を通して完全に外部に出力されるまでの時間より短い間隔である。完全に外部に出力されるまでに１秒かかるのであれば、例えば、それより短い５００ミリ秒間隔のタイミングで監視処理を実行する。
【０３７５】
ここでは、図５５を用いて、モジュール特定処理と更新処理との連携動作について説明する。
【０３７６】
先ず、機器１００ａは、管理装置２００ｂから多重暗号化新保護制御モジュールが送付される（Ｓ８１５１）前に、モジュール特定処理（モジュール特定１）を実施する（Ｓ８１６１）。改ざんされた異常な検知モジュールを選択して、更新処理を行わないようにするためである。
【０３７７】
その後、機器１００ａは、管理装置２００ｂにより送信された第１の鍵を検知モジュール１３１ａが受信する（Ｓ８１５２）前に、モジュール特定処理（モジュール特定２）を実施し（Ｓ８１６２）、機器１００ａが第１の鍵を受信する時に、異常な検知モジュールを選択していないことを確認する。
【０３７８】
さらに、検知モジュール１３１ａが第１の鍵を受信（Ｓ８１５２）した後、第１の鍵を用いて多重暗号化新保護制御モジュールを復号する間（Ｓ８１５３）、定期的に、検知モジュール１３１による復号処理を中断して、モジュール特定処理（モジュール特定３−１、３−２）を実施する（Ｓ８１６３、Ｓ８１６４）。これにより、復号処理中に、検知モジュール１３１ａ、１３２ａ、・・・、１３７ａが攻撃されたとしても、暗号化新保護制御モジュールがすべて漏洩する前に検知モジュールが攻撃されたことを検出し、漏洩を防止することが可能となる。
【０３７９】
これ以降の処理は、上記と同様である。即ち、機器１００ａは、管理装置２００ｂにより送信された第２の鍵を検知モジュール１３２ａが受信する（Ｓ８１５５）前に、モジュール特定処理（モジュール特定４）を実施し（Ｓ８１６５）、機器１００ａが第２の鍵を受信する時に、異常な検知モジュールを更新処理において、選択していないことを確認する。
【０３８０】
さらに、検知モジュール１３２ａが第２の鍵を受信した（Ｓ８１５５）後、第２の鍵を用いて暗号化新保護制御モジュールを復号する間（Ｓ８１５６）、定期的に、検知モジュール１３２ａによる復号処理を中断し、モジュール特定処理（モジュール特定５−１、５−２）を実施する（Ｓ８１６６、Ｓ８１６７）。最後に、モジュール特定処理（モジュール特定６）を実施する（Ｓ８１６８）。
【０３８１】
次に、機器１００ａは、検証結果を管理装置２００ｂへ通知する（Ｓ８１５７）。
【０３８２】
これにより、新保護制御モジュールがすべて漏洩する前に検知モジュールが攻撃されたことを検出し、漏洩を防止することが可能となる。
【０３８３】
ここで、モジュール特定処理において、検知モジュールに改ざんが検出された場合には、回復処理を停止する。これにより、管理装置２００ｂは、第１の鍵や第２の鍵の送信を中止することが可能となり、攻撃者は、多重暗号化新保護制御モジュールを復号するための鍵を入手することが不可能となる。なお、モジュール特定処理において、正常モジュールを特定できた場合は、再度、特定した正常モジュールを用いて回復処理するとしてもよい。
【０３８４】
（ｄ）再暗号化処理
続いて、図５６のシーケンス図を用いて、再暗号化処理（図５０のＳ８２００）の詳細について説明する。
【０３８５】
ここでは、各検知モジュール１３１ａ、１３２ａ、・・・、１３７ａをまとめて、検知モジュール群１３０ａとしている。
【０３８６】
先ず、更新された保護制御モジュール（図５６の説明においては、更新前の保護制御モジュール１２０ａと区別するために、「保護制御モジュール１２１」という。）が、各検知モジュール１３１ａ、１３２ａ、・・・、１３７ａに対して、それぞれが保持している分散情報及び暗復号鍵証明書の送信を依頼する（Ｓ８２０１）。
【０３８７】
各検知モジュール１３１ａ、１３２ａ、・・・、１３７ａは、保護制御モジュール１２１からの依頼を受けて、分散情報及び暗復号鍵証明書を送信する（Ｓ８２０２）。
【０３８８】
保護制御モジュール１２１は、各検知モジュール１３１ａ、１３２ａ、・・・、１３７ａから分散情報及び暗復号鍵証明書を受信し（Ｓ８２０３）、受信した分散情報から更新前の保護制御モジュール１２０が使用していた暗復号鍵（ここでは、「旧暗復号鍵」という。）を復元する（Ｓ８２０４）。更に、保護制御モジュール１２１は、暗復号鍵証明書を用いて、旧暗復号鍵が正しく復元されたか否か検証する（Ｓ８２０５）。
【０３８９】
旧暗復号鍵が正しく復元されなかった場合（Ｓ８２０５でＮ）、保護制御モジュール１２１は、異常な検知モジュールを炙り出す（どの検知モジュールが不正な分散情報を送信したか特定する）（Ｓ８２０６）。特定された異常な検知モジュールは、管理装置２００ｂへ通知される。
【０３９０】
旧暗復号鍵が正しく復元された場合（Ｓ８２０５でＹ）、保護制御モジュール１２１の暗復号鍵生成部３１１は、新しい暗復号鍵（ここでは、「新暗復号鍵」という。）を生成する（Ｓ８２０７）。そして、復号ロード部３０４は、旧暗復号鍵を用いて暗号化されたアプリ（１１０、１１１）を復号し、新暗復号鍵を用いてアプリ（１１０、１１１）を再暗号化する（Ｓ８２０８）。
【０３９１】
分散情報から旧暗復号鍵を復元する方法や異常な検知モジュールの特定方法については、特許文献２の５０ページから５２ページに詳しく説明されている。特許文献２における秘密鍵ｄを本実施形態の暗復号鍵に対応させ、認証局装置を本実施形態の保護制御モジュール１２１に対応させ、分散情報保持装置を検知モジュール１３１ａ、１３２ａ、・・・、１３７ａに対応させることで、特許文献２と同じ方法が利用可能である。
【０３９２】
また、Ｓ８２０６において、異常な検知モジュールを特定するための方法として、実施の形態１または２におけるモジュール特定処理を用いてもよい。
【０３９３】
（７）次ラウンド準備処理の動作
続いて、図５７のシーケンス図を用いて、次ラウンド準備処理（図４４のＳ７００）の詳細について説明する。次ラウンド準備処理では、回復処理の終了後、次の回復処理のための準備を行う。以下、具体的に説明する。
【０３９４】
まず、保護制御モジュール１２１は、新暗復号鍵から、秘密分散法を用いて分散情報を
生成し（Ｓ９００１）、更に、署名秘密鍵を用いて、新暗復号鍵証明書を生成する（Ｓ９００２）。そして、保護制御モジュール１２１は、生成した分散情報と暗復号鍵証明書とを各検知モジュール１３１ａ、１３２ａ、・・・、１３７ａへ送信する（Ｓ９００３）。
【０３９５】
ここで、初期設定処理時と同様に、分散情報は、検知モジュールの数と同数が生成され、それぞれの検知モジュールが、異なる分散情報のペアを保持するように送信される。新暗復号鍵証明書は、各検知モジュール１３１ａ、１３２ａ、・・・、１３７ａへ同じ証明書が送信される。
【０３９６】
各検知モジュール１３１ａ、１３２ａ、・・・、１３７ａは、保護制御モジュール１２１から分散情報と新暗復号鍵証明書とを受信し（Ｓ９００３）、受信した分散情報と新暗復号鍵証明書とを分散情報保持部４１０に保持する（Ｓ９００４）。
【０３９７】
３．４  実施の形態３の効果
上記実施の形態により、検知処理において保護制御モジュール１２０ａの改ざんが検出された場合、改ざんされた保護制御モジュールを新しい保護制御モジュールに更新することで、システムの安全性を高めることができる。
【０３９８】
また、モジュール特定処理Ｓ３００ａを用いて正常なモジュールを特定し、特定した正常モジュールを用いて保護制御モジュールを新しい保護制御モジュールに更新することで、より安全に保護制御モジュールを更新することができる。これにより、システムの安全性をさらに高めることができる。
【０３９９】
４．その他の変形例
なお、本発明を上記各実施の形態に基づいて説明してきたが、本発明は、上記各実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０４００】
（１）上記実施の形態３では、保護制御モジュール１２０ａを更新するとしているが、これに限定するものではない。
【０４０１】
検知モジュールやアプリケーションプログラム等、保護制御モジュール１２０ａ以外のモジュールを更新するとしてもよい。以下に、検知モジュール１３３ａを更新する場合を例に挙げ、検知モジュールの更新処理について説明する。
【０４０２】
検知モジュールの更新処理では、保護制御モジュールを更新する場合と同様に、検出対象モジュール配布部２２０ａは、検知モジュール１３３ａを更新するための更新用検知モジュールを複数の鍵を用いて多重に暗号化し、検知モジュール群１３０ａに含まれる検知モジュール（検知モジュール１３３ａを除く）を送信先として送信する。検知モジュール群１３０ａに含まれる検知モジュール（検知モジュール１３３ａを除く）は、検知モジュール１３３ａを更新用検知モジュールに更新する。
【０４０３】
このとき、多重に暗号化された更新用検知モジュールを復号するための複数の鍵を、検知モジュール群１３０ａに含まれる検知モジュールへ送信するタイミングを検出対象モジュール配布部２２０ａが制御することにより、攻撃者が暗号化されていない更新用検知モジュールを入手することを不可能にする。
【０４０４】
（２）上記各実施の形態では、各検知モジュールは、受信部４０１、送信部４０２、制御部４０３、検証部４０４、ＭＡＣ値生成部４０５、ＭＡＣ値テーブル更新部４０６、検出対象モジュールインストール部４０７、更新部４０８などから構成されるとしている。しかし、これに限定するものではない。
【０４０５】
各検知モジュールは、監視処理に必要な構成要素（制御部４０３、検証部４０４）のみで構成されるとしてもよい。また、各検知モジュールは、更新処理に必要な構成要素（制御部４０３、更新部４０８）のみで構成されるとしてもよい。また、各検知モジュールは、無効化処理に必要な構成要素（制御部４０３、更新部４０８）のみで構成されるとしてもよい。
【０４０６】
さらに、各検知モジュールは、上記の組み合わせから構成されるとしてもよい。
【０４０７】
この場合に、検知モジュール群に含まれる複数の検知モジュールが、全体として、監視処理と更新処理に必要な構成要素を含むように、構成されていればよい。
【０４０８】
（３）上記各実施の形態では、各検知モジュールの検証部は、他の検知モジュールや保護制御モジュールの改ざんチェックを実行するとしているが、改ざんチェックの対象は、当該モジュール全体に限定するものではない。
【０４０９】
改ざんチェックの対象は、検知モジュール内の一部分、例えば、検知モジュールに含まれる特定の機能や関数、鍵等のデータであってもよい。また、一度に改ざん対象すべてを改ざんチェックするのではなく、改ざん対象の一部を改ざんチェックするだけでもよい。このとき、改ざん対象を一定のサイズに分割して得られた部分毎に改ざんチェックしてもよいし、機能や関数単位で分割して得られた部分毎に改ざんチェックしてもよい。さらに、改ざんチェックの度に、改ざん対象の複数の部分から一の部分を順番に選択し、選択した部分に対して改ざんチェックするとしてもよい。また、改ざんチェックの度に改ざんチェックする部分をランダムに決定してもよい。また、他のモジュールや機器の外部の装置から、どの部分を改ざんチェックするかの指示が与えられ、この指示により示される部分に対して改ざんチェックをしてもよい。
【０４１０】
（４）上記各実施の形態では、各検知モジュールや保護制御モジュールは、耐タンパ化された領域等、攻撃者による攻撃から保護されている領域で動作するとしてもよい。
【０４１１】
監視処理に必要な構成要素のみで構成される検知モジュールが、攻撃者による攻撃から保護されている領域で動作する場合、他の検知モジュールや管理装置の判断部は、その保護された領域に存在する検知モジュールから、他の検知モジュールや保護制御モジュールが攻撃されたことを検知した旨の通知を受けたときに、その通知を無条件に受け入れ、更新処理や無効化処理を実施してもよいし、その通知を他のモジュールからの通知よりも重要な通知として扱い、更新処理や無効化処理の判断を行ってもよい。
【０４１２】
また、保護制御モジュールが保護モードで動作し、つまり、耐タンパ化された領域等に存在して動作する。また、検知モジュールが通常モードで動作し、つまり、耐タンパ化されていない領域等に存在して動作するとしてもよい。
【０４１３】
（５）上記各実施の形態では、モジュール無効化部は、管理装置内に存在し、アクセス制御モジュールは、機器内に存在するとしているが、これに限定するものではない。
【０４１４】
モジュール無効化部及びアクセス制御モジュールは、それぞれ、機器内部に存在してもよいし、管理装置に存在してもよい。また、各検知モジュール内に存在してもよい。
【０４１５】
また、モジュール無効化部とアクセス制御モジュールとは、別々のモジュールではなく、機器内部において、又は管理装置内部において、１つのモジュールであってもよい。
【０４１６】
モジュール無効化部とアクセス制御モジュールとが１つのモジュールである場合には、検知モジュールへアクセス情報取得鍵と暗号化アクセス情報とを送信するのではなく、アクセス情報を、無効化を実行する検知モジュールへ、直接送信してもよい。
【０４１７】
さらに、モジュール無効化部やアクセス制御モジュールが機器内に存在する場合には、耐タンパ化などにより、攻撃から保護される領域に存在するとしてもよい。
【０４１８】
（６）各実施の形態では、管理装置は、判断部、検出対象モジュール配布部、モジュール無効化部、通信部及び監視パターン更新部などから構成されるとしているが、これに限定するものではない。判断部、検出対象モジュール配布部、モジュール無効化部、通信部及び監視パターン更新部などが１個のモジュールにより構成されているとしてもよい。また、上記の部の組み合わせから構成されるとしてもよい。
【０４１９】
（７）上記各実施の形態では、検知システムもしくはソフトウェア更新システムは、機器の工場製造時に初期設定処理を行うとしているが、これに限定するものではない。販売後など工場出荷後のどこかで初期化処理を実施してもよい。また、初期化処理は１度だけでなく、２度以上実施してもよい。
【０４２０】
（８）上記各実施の形態では、保護制御モジュールや検知モジュールの改ざん検出用証明書、検出対象モジュールの検証用証明書、更新検証証明書及び認証公開鍵の認証鍵証明書は、検出対象モジュール配布部が保持する署名秘密鍵を用いて生成された証明書であるとしたが、これに限定するものではなく、それぞれ別の鍵を用いて生成されてもよいし、検出対象モジュール配布部２２０以外の証明書発行装置により発行された証明書でもよい。
【０４２１】
（９）上記実施の形態３では、初期設定処理や次ラウンド準備処理の動作として、暗復号鍵から生成する分散情報を検知モジュールへ送信し、当該検知モジュールが分散情報を保持するとしているが、これに限定するものではない。
【０４２２】
検知モジュールの代わりに、アプリケーションプログラムが分散情報を保持するとしてもよいし、検知モジュールとアプリケーションプログラムとが分散情報を保持するとしてもよい。
【０４２３】
（１０）上記各実施の形態では、検知処理の動作として、検知モジュールが保護制御モジュールの改ざん検出を行うときに、検証鍵を使用して計算したＭＡＣ値を用いて改ざん検出処理を行うとしている、これに限定するものではない。
【０４２４】
保護制御モジュールの改ざん検出用証明書を用いて検証するとしてもよい。また、ＭＡＣ値や証明書のようにハッシュ値を利用した改ざん検証を行うのではなく、ログをチェックすることで改ざん検証を行うとしてもよい。
【０４２５】
（１１）上記各実施の形態では、検知処理の動作として、各検知モジュールが保護制御モジュールの改ざんを検出した場合、管理装置の判断部と他の検知モジュールへ通知するとしたが、これに限定するものではない。
【０４２６】
判断部と他の検知モジュールのうち、どれか１つ以上のモジュールに通知するとしてもよい。また、保護制御モジュールの改ざんを検出した場合、検知モジュールを停止するとしてもよいし、機器や保護制御モジュールを停止するとしてもよい。更に、改ざんされた保護制御モジュールを消去するとしてもよい。
【０４２７】
さらに、各検知モジュールが保護制御モジュールの改ざんを検出しなかった場合、判断部へ通知を行わないとしているが、これに限定するものではない。改ざん検出処理を実施した結果として、改ざんを検出しなかった旨を通知するとしてもよい。
【０４２８】
（１２）上記各実施の形態では、検知処理の動作として、各検知モジュールは、他の検知モジュールに保護制御モジュールの改ざん検出結果を送信しないとしているが、それぞれの検知モジュールで検出結果を共有するとしてもよい。
【０４２９】
また、検出結果を共有しない検知モジュールがあった場合に、当該検知モジュールを異常な検知モジュールと判断して、無効化するとしてもよい。
【０４３０】
（１３）上記実施の形態３では、解析・判断処理の動作として、改ざん情報に基づいて保護制御モジュールを更新するかどうか判定するとしているが、これに限定するものではない。
【０４３１】
改ざんされていると通知してきた検知モジュールの数によって更新するかどうかを判定してもよい。例えば、改ざんされていると通知してきた検知モジュールの数が、所定の数よりも多いか等しい場合に、更新すると判定し、少ない場合に更新しないと判定してもよい。ここで、所定の数は、検知モジュール群に含まれるすべての検知モジュールの数である。
【０４３２】
また、解析・判断時の動作として、保護制御モジュールを更新するか否か、及び保護制御モジュールを無効化するか否かを判断したが、これに限定するものではなく、機器を停止するか否かを判断するとしてもよい。
【０４３３】
（１４）上記実施の形態３では、相互認証処理の動作として、各検知モジュールが、検出対象モジュール配布部を認証し、その後、検出対象モジュール配布部が各検知モジュールを認証するとしているが、これに限定するものではない。
【０４３４】
検出対象モジュール配布部が各検知モジュールを認証し、その後、各検知モジュールが、検出対象モジュール配布部を認証してもよい。また、各検知モジュールと検出対象モジュール配布部とが個別に認証処理を行ってもよい。
【０４３５】
（１５）上記実施の形態３では、相互認証処理の動作として、検出対象モジュール配布部が各検知モジュールを認証する処理において、チャレンジデータをそれぞれの検知モジュールで異なる値にするとしているが、これに限定するものではない。チャレンジデータとしすべての検知モジュールで同じ値としてもよいし、すべての検知モジュールを複数のグループに分け、チャレンジデータをそれぞれのグループで異なる値にしてもよい。
【０４３６】
（１６）上記実施の形態３では、相互認証処理の動作として、各検知モジュールが、検出対象モジュール配布部を認証する処理において、各検知モジュールが個別に検出対象モジュール配布部を認証するとしているが、これに限定するものではない。
【０４３７】
署名検証した結果を他の検知モジュールへ通知し、検知モジュール間で検証結果を共有し、自検知モジュールの認証結果と他の検知モジュールから受信した認証結果とから、検出対象モジュール配布部が正当かどうかをそれぞれ判定してもよい。
【０４３８】
判定方法としては、例えば、一定数（例えば、過半数等）の検知モジュールが認証に成功した場合には正当であると判定し、そうでない場合には、正当ではないと判定する方法がある。
【０４３９】
（１７）上記実施の形態３では、相互認証処理の動作として、管理装置は署名秘密鍵と署名公開鍵とを使用して相互認証処理を実施するとしているが、これに限定するものではない。署名秘密鍵と署名公開鍵とは別に、相互認証に使用する認証鍵対を用いるとしてもよい。
【０４４０】
このとき、管理装置の認証鍵対のうちの認証公開鍵は、予め１個の検知モジュールが保持するとしてもよいし、相互認証処理時に管理装置から当該検知モジュールへ送信するとしてもよい。
【０４４１】
（１８）上記実施の形態３では、相互認証処理の動作として、正当なモジュールであると検証できた検知モジュールの数が、回復処理に必要な数以上あるかどうかで、その後の回復処理を実施するかどうかを判定しているが、これに限定するものではない。
【０４４２】
異常な検知モジュールの数が、予め設定されている許容数未満かどうかで回復処理を実施するかどうかを判定してもよい。
【０４４３】
また、相互認証処理において、回復処理に必要な数に満たないと判定された場合には、機器を停止するとしたが、この場合に、検知モジュールを無効化してもよい。
【０４４４】
（１９）上記実施の形態３では、相互認証処理の動作として、検出対象モジュール配布部が各検知モジュールを認証する時に、各検知モジュールは、レスポンスデータと一緒に認証公開鍵と認証鍵証明書とを検出対象モジュール配布部へ送信するとしているが、これに限定するものではない。
【０４４５】
各検知モジュールは、レスポンスデータと一緒に認証公開鍵と認証鍵証明書とをそれぞれ別のタイミングで送信してもよい。
【０４４６】
また、認証公開鍵や認証鍵証明書は、検出対象モジュール配布部から要求があったときにのみそれぞれ送信するとしてもよい。このとき、検出対象モジュール配布部は、すべての検知モジュールの認証公開鍵や認証鍵証明書を受信してもよいし、予め設定されており、回復処理に必要な数以上の数の検知モジュールの認証公開鍵や認証鍵証明書を受信してもよいし、また予め設定されており、異常な検知モジュールの許容数未満の検知モジュールの認証公開鍵と認証鍵証明書とを受信してもよい。
【０４４７】
（２０）上記実施の形態３では、回復処理の動作として、モジュール特定処理時を、１回の復号中に２回実施する（モジュール特定３−１及び３−２又はモジュール特定５−１及び５−２）としているが、これに限定するものではない。復号処理の時間にあわせて何回モジュール特定処理を行ってもよいし、復号処理以外であっても、鍵や更新用保護制御モジュールの受信処理時や検知処理時、相互認証処理時にモジュール特定処理を行ってもよい。
【０４４８】
また、モジュール特定処理を一定時間間隔で定期的に実施するとしているが、これに限定するものではない。更新処理を複数のブロックに分割し、そのブロックの処理が終わるごとに実施してもよいし、ランダムな時間間隔で実施してもよいし、管理装置から指定された時間間隔で実施してもよい。
【０４４９】
また、各検知モジュールは、モジュール特定処理を実行するタイミングを示す同期情報を外部のサーバから取得し、取得した同期情報にしたがってモジュール特定処理を実行するとしてもよい。これにより、各検知モジュールは、他の検知モジュールと同じタイミングでモジュール特定処理を実行することができるので、異常な検知モジュールの検出精度を向上させることができる。
【０４５０】
さらに、通常時と回復処理時とにおける検知頻度を変更するとしてもよい。検知頻度の変更は、回復処理中であってもよい。
【０４５１】
（２１）上記実施の形態３では、異常モジュール仮定部６７３は、検知モジュール群１３０ａ内の検知モジュールをランダムに一つ選択しているが、これに限定するものではない。異常モジュール仮定部６７３は、多くの他の検知モジュールから正常と判定される検知モジュールを選択するとしてもよい。他の検知モジュールから正常と判定されていることで、仮異常検知モジュール群に含まれる検知モジュールが多くなる。これにより、ステップＳ９０１４において、選択する検知モジュールの数が少なくなり、処理効率を向上することができる。
【０４５２】
（２２）上記実施の形態２及び３では、ステップＳ５１０７ですべての検知モジュールを選択していない場合、ステップＳ５１０１で他の検知モジュールをランダムに一つ選択しているが、これに限定するものではない。
【０４５３】
前回の正常モジュール特定処理のステップＳ５１０３の仮異常検知モジュール群内の検知モジュール以外を選択するとしてもよい。前回の正常モジュール特定処理では、仮異常検知モジュール群内の検知モジュールにおいて、矛盾がないことがわかっているため、仮異常検知モジュール群内の検知モジュールをステップＳ５１０１で選択をしたとしても、正常な検知モジュールと特定できない。
【０４５４】
これにより、正常な検知モジュールと特定できない検知モジュールを選択しないことにより、処理効率を向上することができる。
【０４５５】
（２３）上記各実施の形態では、検出対象モジュール監視処理にて、検出対象モジュールを１回のみ改ざん検出して、その検出結果に基づいて判断部にて異常モジュールを抽出しているが、これに限定するものではない。
【０４５６】
複数回、検出対象モジュールを改ざん検出し、複数回の検出結果に基づいて判断部にて異常モジュールを抽出するとしてもよい。
【０４５７】
以下では、３回改ざん検出する例について説明する。
【０４５８】
図５８は、１回目の検出対象モジュールに対する改ざん検出結果７５６を示している。この結果、検知モジュール１３２、１３４、１３５、１３７を異常モジュールとして抽出する。判断部はこの結果に基づき、図５９に示すモジュール特定情報６４１をモジュール特定情報保持部に格納する。
【０４５９】
次に、モジュール特定情報６４１に基づき、判断部は異常モジュールと特定されていない検知モジュール１３１、１３３、１３６に対し、検出対象モジュールの改ざん検出をするよう指示する（２回目の改ざん検出）。
【０４６０】
図６０は、２回目の検出対象モジュールに対する改ざん検出結果７５７を示している。この結果、検知モジュール１３３、１３６を新たに異常モジュールとして抽出する。判断部はこの結果に基づき、図６１に示すモジュール特定情報６５１をモジュール特定情報保持部に格納する。次に、モジュール特定情報６５１に基づき、判断部は異常モジュールと特定されていない検知モジュール１３１に対し、検出対象モジュールの改ざん検出をするよう指示する（３回目の改ざん検出）。
【０４６１】
図６２は、２回目の検出対象モジュールに対する改ざん検出結果７５８を示している。この結果、検知モジュール１３１を新たに異常モジュールとして抽出するが、すべての検知モジュールを異常であるため、ステップＳ３４０２でＹとなり、エラーを出力して機器を停止させる。
【０４６２】
以上のように、複数回、検出対象モジュールの改ざん検出を実行することで、異常モジュールの抽出する精度が向上する。さらに、すべての検知モジュールが異常であるか否かの判定の精度も向上するため、正常モジュールが存在しない場合に正常モジュール特定処理を実行する事態を避けることが可能になる。このように、システムの安全性をさらに高めることができる。
【０４６３】
（２４）上記各実施の形態では、図２１のように検出対象モジュール９００には一つの検証用証明書を付加しているが、これに限らない。複数の検証用証明書を付加するとしてもよい。
【０４６４】
以下で、２つの検証用証明書を付加する場合について説明する。
【０４６５】
図６３は、検出対象モジュール９００ａのデータの構成を示す図である。同図では、検出対象モジュール９００ａに、第１の検証用証明書９２２ａと第２の検証用証明書９２４ａを付加している。ここで、第１の検証用証明書９２２ａは検出対象モジュール９００ａのデータ部分９２１ａと対応しないように、第１の検証用証明書９２２ａの一部分９２３ａが改ざんされており、第２の検証用証明書９２４ａは検出対象モジュール９００ａのデータ部分９２１ａと対応するよう正しく生成された証明書である。
【０４６６】
検出対象モジュール配布部は、検知モジュール群に第１の検証用証明書９２２ａと第２の検証用証明書９２４ａのどちらが対応関係が取れている正しい証明書であるかを通知しないで、検出対象モジュール９００ａを機器内にインストールさせる。さらに、判断部が各検知モジュールに、それぞれの検証用証明書を用いた改ざん検出を実行させ、改ざん検出結果を受信する。判断部は、それぞれの検証用証明書を用いた改ざん検出結果に基づき、検知モジュールが異常であるか否かを判断する。
【０４６７】
例えば、改ざん検出結果が、対応関係が取れている検証用証明書（この場合は、第２の検証用証明書９２４ａ）を用いた結果が「正常」、対応関係が取れていない検証用証明書（この場合は、第１の検証用証明書９２２ａ）を用いた結果が「異常」である場合に、その改ざん検出結果を送信した検知モジュールを「正常」と判断し、それ以外の場合は「異常」と判断してもよい。
【０４６８】
また、対応関係が取れている検証用証明書（第２の検証用証明書９２４ａ）が異常な検知モジュールの妨害により、正しくインストールできていない場合も考慮してもよい。すなわち、第１の検証用証明書９２２ａを用いた結果が「異常」であっても、第２の検証用証明書９２４ａを用いた結果が「異常」である場合は、その改ざん検出結果を送信した検知モジュールを「異常の可能性あり」とし、管理装置で識別番号を記録するなどして管理するとしてもよい。
【０４６９】
また、今後のモジュール特定処理において、「異常の可能性あり」という判断に基づいて、異常モジュール特定もしくは正常モジュール特定を実行するとしてもよい。
【０４７０】
なお、上記変形例では、第１の検証用証明書９２２ａを改ざんしたものとしているが、これに限らない。検知モジュール群に、一方が検証用証明書と対応関係が取れており、もう一方が対応関係が取れていない二つの検出対象モジュールを機器内にインストールさせ、各検知モジュールに改ざん検出させるとしてもよい。また、検証用証明書を改ざんせず、検出対象モジュールのデータ部分を改ざんするとしてもよい。
【０４７１】
さらに、二つの検証用証明書ではなく、三つ以上の検証用証明書としてもよい。複数回、検出対象モジュールを改ざんさせる場合、その複数回の改ざん検出時に改ざん検出するための検証用証明書を変えるよう、判断部が検知モジュールに指示するとしてもよい。また、複数回の改ざん検出の間に、追加で検証用証明書を送信し、追加の検証用証明書を用いて、検知モジュールに改ざん検出させるとしてもよい。
【０４７２】
複数回、検出対象モジュールを改ざんさせる場合、各回で使用する検証用証明書の対応関係を取れている（以下では正規）・取れていない（以下では不正）の組み合わせを変えていくとしてもよい。例えば、検証用証明書を三つとする場合、各回で使用する三つの検証用証明書は、（正規、正規、正規）、（正規、正規、不正）、（正規、不正、正規）、（正規、不正、不正）、（不正、正規、正規）、（不正、正規、不正）、（不正、不正、正規）、（不正、不正、不正）の８パターンの中から選択するとしてもよい。ここで、（正規、不正、正規）は、第１の検証用証明書が正規、第２の検証用証明書が不正、第３の検証用証明書が正規であるパターンを意味する。
【０４７３】
（２５）上記実施の形態２及び３では、正常モジュール特定処理において、異常モジュール判定処理にて異常と特定した異常検知モジュールを相互監視の監視パターンに含めていないが、これに限らない。
【０４７４】
異常検知モジュールを、異常と特定されていない検知モジュールが監視し、その監視結果を判定するとしてもよい。この場合、監視結果が、異常検知モジュールを正常と判定している場合、異常検知モジュールを監視した検知モジュールを異常と特定してもよい。その後、図３３の正常モジュール特定処理を実行するとしてもよい。このようにすることで、異常であるか否かが不明であった異常モジュールを特定することができ、正常モジュールを特定する精度が向上する。
【０４７５】
（２６）次に示すように構成してもよい。
【０４７６】
（ａ）改ざん監視システム１０ｃは、図６４に示すように、管理装置２００ｃ及び情報セキュリティ装置１００ｃから構成されている。
【０４７７】
情報セキュリティ装置１００ｃは、図６４に示すように、改ざんを監視する複数の監視モジュール１３１ｃ、１３２ｃ、・・・、１３７ｃを有する。
【０４７８】
管理装置２００ｃは、情報セキュリティ装置１００ｃを管理する。
【０４７９】
管理装置２００ｃは、図６４に示すように、取得部２６１、生成部２６２、送信部２６３、受信部２６４及び判定部２６５から構成されている。
【０４８０】
取得部２６１は、改ざんされていない監視モジュールを新たに取得する。
【０４８１】
生成部２６２は、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する。
【０４８２】
送信部２６３は、生成した前記おとり監視モジュールを情報セキュリティ装置１００ｃへ送信してインストールさせる。
【０４８３】
受信部２６４は、前記おとり監視モジュールがインストールされた後、情報セキュリティ装置１００ｃから、各監視モジュールによる他の監視モジュールに対する監視結果を受信する。
【０４８４】
判定部２６５は、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する。
【０４８５】
（ｂ）改ざん監視システム１０ｃにおいて、次に示すようにしてもよい。
【０４８６】
生成部２６２は、正常でない検証用証明書を含む前記おとり監視モジュールを生成する。
【０４８７】
送信部２６３は、情報セキュリティ装置１００ｃへ、正常でない前記検証用証明書を含む前記おとり監視モジュールを送信してインストールさせる。
【０４８８】
情報セキュリティ装置１００ｃにおいて、各監視モジュールは、前記おとり監視モジュールに含まれる検証用証明書を用いて、当該おとり監視モジュールが改ざんされているか否かを判断する。
【０４８９】
また、次に示すようにしてもよい。
【０４９０】
取得部２６１により取得される前記監視モジュールは、当該監視モジュールの正当性を証明するための検証用証明書を含む。
【０４９１】
生成部２６２は、前記監視モジュールに含まれる前記検証用証明書を改変して、改変された検証用証明書を含む前記おとり監視モジュールを生成する。
【０４９２】
送信部２６３は、情報セキュリティ装置１００ｃへ、改変された前記検証用証明書を含む前記おとり監視モジュールを送信してインストールさせる。
【０４９３】
情報セキュリティ装置１００ｃにおいて、各監視モジュールは、前記おとり監視モジュールに含まれる検証用証明書を用いて、当該おとり監視モジュールが改ざんされているか否かを判断する。
【０４９４】
（ｃ）改ざん監視システム１０ｃにおいて、次に示すようにしてもよい。
【０４９５】
生成部２６２は、ランダムなデータを生成し、生成した前記データを、前記改変された前記検証用証明書とする。
【０４９６】
（ｄ）改ざん監視システム１０ｃにおいて、次に示すようにしてもよい。
【０４９７】
生成部２６２は、ランダムなデータを生成し、生成した前記データを、取得部２６１により取得された前記監視モジュールに含まれる前記検証用証明書の一部に上書きすることにより、改変された前記検証用証明書を生成する。
【０４９８】
（ｅ）改ざん監視システム１０ｃにおいて、次に示すようにしてもよい。
【０４９９】
管理装置２００ｃは、さらに、検出部、第１仮定部、第２仮定部及び判断部を含むとしてもよい。
【０５００】
ここで、検出部は、受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する。
【０５０１】
第１仮定部は、前記検出がされた場合に、前記監視モジュールから選択した１個の監視モジュールに対して改竄されていると仮定する。
【０５０２】
第２仮定部は、改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する。
【０５０３】
判断部は、前記第２仮定部による手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する。
【０５０４】
（ｆ）改ざん監視システム１０ｃにおいて、次に示すようにしてもよい。
【０５０５】
管理装置２００ｃは、さらに、無効化部を含む。
【０５０６】
無効化部は、異常であると判定された監視モジュールの無効化指示を出力する。
【０５０７】
（ｇ）改ざん監視システム１０ｃにおいて、次に示すようにしてもよい。
【０５０８】
管理装置２００ｃは、さらに、記憶部を備え、記憶部は、予め、改ざんされていない監視モジュールを記憶している。取得部２６１は、記憶部から改ざんされていない監視モジュールを読み出すことにより、当該監視モジュールを取得する。
【０５０９】
また、次に示すようにしてもよい。
【０５１０】
管理装置２００ｃは、記憶部を備えるサーバ装置に接続されている。サーバ装置の記憶部は、予め、改ざんされていない監視モジュールを記憶している。取得部２６１は、サーバ装置から、監視モジュールを取得する。
【０５１１】
（ｈ）管理装置２００ｃは、実施の形態１の管理装置２００に対応し、情報セキュリティ装置１００ｃは、機器１００に対応する。
【０５１２】
また、管理装置２００ｃは、実施の形態２の管理装置２００ａに対応し、情報セキュリティ装置１００ｃは、機器１００に対応する。
【０５１３】
さらに、管理装置２００ｃは、実施の形態３の管理装置２００ｂに対応し、情報セキュリティ装置１００ｃは、機器１００ａに対応する。
【０５１４】
（２７）次に示すように構成してもよい。
【０５１５】
本発明の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、改ざんされていない監視モジュールを新たに取得する取得回路と、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成回路と、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信回路と、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信回路と、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定回路とを備える。
【０５１６】
本発明の別の実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する集積回路であって、改ざんされていない監視モジュールを新たに取得する取得回路と、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成回路と、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信回路と、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信回路と、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定回路とを備える。
【０５１７】
また、本発明の別の実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、複数のコンピュータ命令が組み合わされて構成されるコンピュータプログラムを記憶しているメモリ部と、前記メモリ部に記憶されている前記コンピュータプログラムから１個ずつコンピュータ命令を読み出し、解読し、その解読結果に応じて動作するプロセッサとを備える。前記コンピュータプログラムは、コンピュータに、改ざんされていない監視モジュールを新たに取得する取得ステップと、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成ステップと、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信ステップと、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定ステップとを実行させる。
【０５１８】
また、本発明の別の実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置において用いられるコンピュータプログラムを記録しているコンピュータ読み取り可能な非一時的記録媒体である。前記コンピュータプログラムは、コンピュータに、改ざんされていない監視モジュールを新たに取得する取得ステップと、取得した前記監視モジュールを改変して、おとり監視モジュールを生成する生成ステップと、生成した前記おとり監視モジュールを前記情報セキュリティ装置へ送信してインストールさせる送信ステップと、前記おとり監視モジュールがインストールされた後、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、受信した監視結果を用いて、前記おとり監視モジュールを正常であると判定する監視モジュールを特定し、特定した監視モジュールを異常と判定する判定ステップとを実行させる。
【０５１９】
（２８）次に示すように構成してもよい。
【０５２０】
本発明の一実施態様は、ネットワークを介して接続されている情報処理装置上で動作する複数の検知モジュールから異常モジュールを特定する管理装置であって、検出対象モジュールとそのモジュールの検証用データを送信する送信手段と、前記検出対象モジュールを検証する前記複数の検知モジュールのそれぞれから、前記検出対象モジュールと前記検証用データの対応関係に基づき検証した検証結果を受信する受信手段と、前記検証結果において、前記対応関係を正しいと検証した検知モジュールを異常モジュールと特定する異常モジュール特定手段と、を備え、前記検証用データは前記検出対象モジュールに対応しないデータであることを特徴とする。
【０５２１】
この構成によると、検出対象モジュールを各検知モジュールが検証し、その結果を管理装置で判断することにより、異常な検知モジュールを検出することが可能となり、検知システムの信頼性を高めることができる。
【０５２２】
ここで、前記管理装置は、さらに、特定された異常モジュールの無効化指示を出力する無効化手段を備えるとしてもよい。
【０５２３】
これにより、検出した異常な検知モジュールを無効化することにより、異常な検知モジュールに妨害されることなく情報処理装置が動作することができ、情報処理装置の信頼性をより高めることができる。
【０５２４】
ここで、検証用データは、前記検出対象モジュールの証明書である検証用証明書であり、前記管理装置はさらに、前記検証用証明書を生成する検証用証明書生成手段を備えるとしてもよい。
【０５２５】
これにより、管理装置で生成した検証用証明書にしたがって、検知モジュールが検証することになり、管理装置の管理の下で情報処理装置の信頼性を高めることができる。
【０５２６】
ここで、前記検証用証明書生成手段は、前記検出対象モジュールに対応する正規の証明書を改ざんしたものを、検証用証明書として生成するとしてもよい。
【０５２７】
これにより、管理装置で対応しない検証用データを容易に生成することができる。
【０５２８】
ここで、前記検証用証明書生成手段は、ランダムなデータを発生し、前記ランダムなデータを検証用証明書として生成するとしてもよい。
【０５２９】
これにより、管理装置で対応しない検証用データを容易に生成することができる。
【０５３０】
ここで、前記管理装置は、さらに、特定した異常な検知モジュールの識別情報を記憶する異常モジュール群記憶手段と、前記複数の検知モジュールのうちの一つを異常モジュールと仮定し、前記仮定に基づいて、前記情報装置内の正常な検知モジュールを特定する正常モジュール特定手段とを備え、前記異常モジュール特定手段は、前記情報処理装置内の異常な検知モジュールをすべて特定し、特定したモジュールの識別情報を前記異常モジュール群記憶手段に記録し、前記正常モジュール特定手段は、異常モジュールと仮定した検知モジュールの識別情報を記憶する仮異常モジュール群記憶手段と、前記複数の検知モジュールから一つを選択し、異常モジュールと仮定し、識別情報を前記仮異常モジュール群記憶手段に記録する仮定手段と、前記仮定手段により異常モジュールと仮定された前記モジュールを起点として、改ざん検出処理の結果、前記起点のモジュールを正常と判定したモジュールを異常モジュールと仮定し、そのモジュールの識別情報を前記仮異常モジュール群記憶手段に記録する手順を繰り返す仮異常モジュール群生成手段と、前記異常モジュール群記憶手段と前記仮異常モジュール群記憶手段とに記録されているすべての識別情報の中に、前記情報処理装置内のすべての前記検知モジュールの識別情報が含まれるような矛盾が発生しているか否かを判定する矛盾検出手段と、前記矛盾が検出された場合に、前記仮定手段において異常モジュールと仮定した前記モジュールを正常モジュールと特定する特定手段とを備えるとしてもよい。
【０５３１】
これにより、情報処理装置において正常なモジュールを用いた処理を実行することができ、情報処理装置の信頼性を高めることができる。
【０５３２】
本発明の別の実施態様は、改ざんを監視する複数の検知モジュールを有する情報処理装置と、当該情報処理装置を管理する管理装置とから構成される改ざん監視システムであって、前記管理装置は、検出対象モジュールとそのモジュールの検証用データを送信する送信手段と、前記検出対象モジュールを検証する前記複数の検知モジュールのそれぞれから、前記検出対象モジュールと前記検証用データの対応関係に基づき検証した検証結果を受信する受信手段と、前記検証結果において、前記対応関係を正しいと検証した検知モジュールを異常モジュールと特定する異常モジュール特定手段と、を備え、前記検証用データは前記検出対象モジュールに対応しないデータであることを特徴とする。
【０５３３】
ここで、前記管理装置は、さらに、特定された異常モジュールの無効化指示を出力する無効化手段を備えるとしてもよい。
【０５３４】
ここで、検証用データは、前記検出対象モジュールの証明書である検証用証明書であり、前記管理装置は、さらに、前記検証用証明書を生成する検証用証明書生成手段を備えるとしてもよい。
【０５３５】
ここで、前記検証用証明書生成手段は、前記検出対象モジュールに対応する正規の証明書を改ざんしたものを、検証用証明書として生成するとしてもよい。
【０５３６】
ここで、前記検証用証明書生成手段は、ランダムなデータを発生し、前記ランダムなデータを検証用証明書として生成するとしてもよい。
【０５３７】
ここで、前記管理装置は、さらに、特定した異常な検知モジュールの識別情報を記憶する異常モジュール群記憶手段と、前記複数の検知モジュールのうちの一つを異常モジュールと仮定し、前記仮定に基づいて、前記情報装置内の正常な検知モジュールを特定する正常モジュール特定手段とを備え、前記異常モジュール特定手段は、前記情報処理装置内の異常な検知モジュールをすべて特定し、特定したモジュールの識別情報を前記異常モジュール群記憶手段に記録し、前記正常モジュール特定手段は、異常モジュールと仮定した検知モジュールの識別情報を記憶する仮異常モジュール群記憶手段と、前記複数の検知モジュールから一つを選択し、異常モジュールと仮定し、識別情報を前記仮異常モジュール群記憶手段に記録する仮定手段と、前記仮定手段により異常モジュールと仮定された前記モジュールを起点として、改ざん検出処理の結果、前記起点のモジュールを正常と判定したモジュールを異常モジュールと仮定し、そのモジュールの識別情報を前記仮異常モジュール群記憶手段に記録する手順を繰り返す仮異常モジュール群生成手段と、前記異常モジュール群記憶手段と前記仮異常モジュール群記憶手段とに記録されているすべての識別情報の中に、前記情報処理装置内のすべての前記検知モジュールの識別情報が含まれるような矛盾が発生しているか否かを判定する矛盾検出手段と、前記矛盾が検出された場合に、前記仮定手段において異常モジュールと仮定した前記モジュールを正常モジュールと特定する特定手段とを備えるとしてもよい。
【０５３８】
また、本発明の別の実施態様は、改ざんを監視する複数の検知モジュールを有する情報処理装置を管理する機能を有する集積回路であって、検出対象モジュールとそのモジュールの検証用データを送信する送信手段と、前記検出対象モジュールを検証する前記複数の検知モジュールのそれぞれから、前記検出対象モジュールと前記検証用データの対応関係に基づき検証した検証結果を受信する受信手段と、前記検証結果において、前記対応関係を正しいと検証した検知モジュールを異常モジュールと特定する異常モジュール特定手段と、を備え、前記検証用データは前記検出対象モジュールに対応しないデータであるとしてもよい。
【０５３９】
また、本発明の別の実施態様は、改ざんを監視する複数の検知モジュールを有する情報処理装置を管理する管理方法であって、検出対象モジュールとそのモジュールの検証用データを送信する送信ステップと、前記検出対象モジュールを検証する前記複数の検知モジュールのそれぞれから、前記検出対象モジュールと前記検証用データの対応関係に基づき検証した検証結果を受信する受信ステップと、前記検証結果において、前記対応関係を正しいと検証した検知モジュールを異常モジュールと特定する異常モジュール特定ステップと、を含み、前記検証用データは前記検出対象モジュールに対応しないデータであるとしてもよい。
【０５４０】
また、本発明の別の実施態様は、改ざんを監視する複数の検知モジュールを有する情報処理装置を管理する管理用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、前記コンピュータプログラムは、コンピュータに、検出対象モジュールとそのモジュールの検証用データを送信する送信ステップと、前記検出対象モジュールを検証する前記複数の検知モジュールのそれぞれから、前記検出対象モジュールと前記検証用データの対応関係に基づき検証した検証結果を受信する受信ステップと、前記検証結果において、前記対応関係を正しいと検証した検知モジュールを異常モジュールと特定する異常モジュール特定ステップと、を実行させるためのコンピュータプログラムであり、前記検証用データは前記検出対象モジュールに対応しないデータであることを特徴とする。
【０５４１】
また、本発明の別の実施態様は、改ざんを監視する複数の検知モジュールを有する情報処理装置を管理する管理用のコンピュータプログラムであって、コンピュータに、検出対象モジュールとそのモジュールの検証用データを送信する送信ステップと、前記検出対象モジュールを検証する前記複数の検知モジュールのそれぞれから、前記検出対象モジュールと前記検証用データの対応関係に基づき検証した検証結果を受信する受信ステップと、前記検証結果において、前記対応関係を正しいと検証した検知モジュールを異常モジュールと特定する異常モジュール特定ステップと、実行させ、前記検証用データは前記検出対象モジュールに対応しないデータであることを特徴とする。
【０５４２】
（２９）上記の各モジュールは、具体的には、それぞれ個別のコンピュータプログラムであってもよいし、オペレーティングシステムに組み込まれるコンピュータプログラムであってもよいし、オペレーティングシステムから呼ばれるドライバプログラムであってもよいし、アプリケーションプログラムであってもよい。
【０５４３】
（３０）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０５４４】
（３１）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０５４５】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又はすべてを含むように１チップ化されてもよい。
【０５４６】
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０５４７】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０５４８】
（３２）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０５４９】
（３３）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０５５０】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０５５１】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０５５２】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０５５３】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０５５４】
（３４）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。  
【産業上の利用可能性】
【０５５５】
本発明は、情報処理装置に対してソフトウェアを提供する管理装置を製造及び販売する産業において、前記管理装置が、情報処理装置上で動作する不正なソフトウェアを特定し、安全にソフトウェアを更新する技術として利用することができる。
【符号の説明】
【０５５６】
１０、１０ａ        検知システム
１００、１００ａ    機器
１１０、１１１      アプリ
１２    ソフトウェア更新システム
１２０、１２０ａ    保護制御モジュール
１３０、１３０ａ    検知モジュール群
１３１〜１３７、１３１ａ〜１３７ａ      検知モジュール
１４０              アクセス制御モジュール
１５０              ＯＳ
１６０              ブートローダ
１７１              ＣＰＵ
１７２              ＥＥＰＲＯＭ
１７３              ＲＡＭ
１７４              ＮＩＣ
２００、２００ａ、２００ｂ      管理装置
２１０、２１０ａ    判断部
２２０、２２０ａ    検出対象モジュール配布部
２３０              モジュール無効化部
２４０              通信部
２５０              監視パターン更新部
３０１              受信部
３０２              送信部
３０３              制御部
３０４              復号ロード部
３０５              改ざん検出部
３０６              解析ツール検出部
３０７              暗復号鍵保持部
３０８              暗復号鍵分散部
３０９              証明書生成部
３１０              暗復号鍵復元部
４０１              受信部
４０２              送信部
４０３              制御部
４０４              検証部
４０５              ＭＡＣ値生成部
４０６              ＭＡＣ値テーブル更新部
４０７              検出対象モジュールインストール部
４０８              更新部
４０９              認証部
４１０              分散情報保持部
５０１              受信部
５０２              送信部
５０３              アクセス情報保持部
６０１              受信部
６０２              送信部
６０３              指示生成部
６０４、６０４ａ    モジュール特定部
６０５              異常モジュール特定部
６０６              モジュール特定情報保持部
６０７              正常モジュール特定部
６７１              特定指示受信部
６７２              特定結果送信部
６７３              異常モジュール仮定部
６７４              検証結果判定部
６７５              仮異常検知モジュール群抽出部
６７６              抽出結果判断部
６７７              第二仮定部
７０１              受信部
７０２              送信部
７０３              制御部
７０４              証明書生成部
７０５              署名秘密鍵保持部
７０６              検知モジュール選択部
７０７              検出対象モジュール保持部
７０８              暗号鍵生成部
７０９              暗号処理部
７１０              認証部
７１１              暗号鍵保持部
７１２              更新用ソフトウェア保持部
８０１              受信部
８０２              送信部
８０３              アクセス情報取得鍵保持部
８０４              検知モジュール選択部
９００、９００ａ    検出対象モジュール
９０１              受信部
９０２              送信部
９０３              監視パターン生成部
９０４              監視パターン分割部
９０５              制御部
【図１】
2011135797.tif 000003
【図２】
2011135797.tif 000004
【図３】
2011135797.tif 000005
【図４】
2011135797.tif 000006
【図５】
2011135797.tif 000007
【図６】
2011135797.tif 000008
【図７】
2011135797.tif 000009
【図８】
2011135797.tif 000010
【図９】
2011135797.tif 000011
【図１０】
2011135797.tif 000012
【図１１】
2011135797.tif 000013
【図１２】
2011135797.tif 000014
【図１３】
2011135797.tif 000015
【図１４】
2011135797.tif 000016
【図１５】
2011135797.tif 000017
【図１６】
2011135797.tif 000018
【図１７】
2011135797.tif 000019
【図１８】
2011135797.tif 000020
【図１９】
2011135797.tif 000021
【図２０】
2011135797.tif 000022
【図２１】
2011135797.tif 000023
【図２２】
2011135797.tif 000024
【図２３】
2011135797.tif 000025
【図２４】
2011135797.tif 000026
【図２５】
2011135797.tif 000027
【図２６】
2011135797.tif 000028
【図２７】
2011135797.tif 000029
【図２８】
2011135797.tif 000030
【図２９】
2011135797.tif 000031
【図３０】
2011135797.tif 000032
【図３１】
2011135797.tif 000033
【図３２】
2011135797.tif 000034
【図３３】
2011135797.tif 000035
【図３４】
2011135797.tif 000036
【図３５】
2011135797.tif 000037
【図３６】
2011135797.tif 000038
【図３７】
2011135797.tif 000039
【図３８】
2011135797.tif 000040
【図３９】
2011135797.tif 000041
【図４０】
2011135797.tif 000042
【図４１】
2011135797.tif 000043
【図４２】
2011135797.tif 000044
【図４３】
2011135797.tif 000045
【図４４】
2011135797.tif 000046
【図４５】
2011135797.tif 000047
【図４６】
2011135797.tif 000048
【図４７】
2011135797.tif 000049
【図４８】
2011135797.tif 000050
【図４９】
2011135797.tif 000051
【図５０】
2011135797.tif 000052
【図５１】
2011135797.tif 000053
【図５２】
2011135797.tif 000054
【図５３】
2011135797.tif 000055
【図５４】
2011135797.tif 000056
【図５５】
2011135797.tif 000057
【図５６】
2011135797.tif 000058
【図５７】
2011135797.tif 000059
【図５８】
2011135797.tif 000060
【図５９】
2011135797.tif 000061
【図６０】
2011135797.tif 000062
【図６１】
2011135797.tif 000063
【図６２】
2011135797.tif 000064
【図６３】
2011135797.tif 000065
【図６４】
2011135797.tif 000066
【国際調査報告】
2011135797.tif 000067
2011135797.tif 000068