説明

改ざん監視システム、管理装置及び管理方法

【課題】演算量を大きく増やすことなく、改ざんされた監視モジュールを特定することができる改ざん監視システムを提供する。
【解決手段】情報セキュリティ装置100cは、改ざんを監視する複数の監視モジュールを有する。管理装置200cは、情報セキュリティ装置100cから、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信部230c、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出部220c、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定部210cを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報セキュリティ装置などの機器内部で動作するモジュール等の改ざんを監視し管理する技術に関する。
【背景技術】
【0002】
従来、認証鍵等の秘匿データを有しているアプリケーションプログラムが、悪意のある第三者(以下、「攻撃者」という)に解析されないようにするため、当該アプリケーションプログラムを耐タンパモジュールにより保護することが知られている。耐タンパモジュールは、通常、ハードウェアとして機器上に実装され、アプリケーションプログラムを保護している。しかし、日々新たな攻撃手法が考案される昨今の現状を踏まえると、新たな攻撃手法に柔軟に対応するためにも、更新が容易なコンピュータプログラムであるソフトウェアにより、アプリケーションプログラムを保護することが望ましい。
【0003】
ソフトウェアによってアプリケーションプログラムを保護する技術として、例えば、ハッシュ値を用いた改ざん検証や、アプリケーションプログラムを利用しない時にはプログラムを暗号化して保存しておき、利用する時にのみ暗号化されたプログラムを復号してメモリへロードする復号ロード機能等がある。
【0004】
ところが、このような技術を利用しても、アプリケーションプログラムを保護するソフトウェア(以下、「保護制御モジュール」という)自体が攻撃者により攻撃され得る。保護制御モジュールが改ざんされると、アプリケーションプログラムが攻撃者の攻撃にさらされることになる。
【0005】
特許文献1は、プログラムの改変の有無をチェックするチェックプログラム自体の改変が行われた場合でも、改変されたプログラムの実行を確実に阻止することが可能なプログラムの改変防止のための技術を開示している。この技術によると、コンピュータシステムにおいて、プログラムの改変の有無を監視するためのチェックプログラムを複数用意し、各チェックプログラムが他のチェックプログラムのうちのいずれかを監視する。以下にこの技術について簡単に説明する。
【0006】
この技術によると、2つの監視モジュールA、Bが相互に監視を行う。監視モジュールA、Bはそれぞれ、攻撃者による改ざんから保護すべきプログラム(本体プログラムA、B)、他のモジュールが改ざんされているかを検出するためのプログラム(チェックプログラムA、B)、及びそれぞれのチェックプログラムが改ざん検出を行うために必要な情報(チェック情報A、B)から構成される。チェックプログラムAは、監視モジュールBの本体プログラムBとチェックプログラムBの改ざん検出を、チェック情報Aを用いて行う。また、チェックプログラムBは、監視モジュールAの本体プログラムAとチェックプログラムAの改ざん検出を、チェック情報Bを用いて行う。この様に、それぞれの監視モジュールが、相手の監視モジュールの本体プログラム及びチェックプログラムの改ざん検出を行う。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】日本国特許第3056732号公報
【特許文献2】WO2008/099682
【特許文献3】WO2009/118800
【非特許文献】
【0008】
【非特許文献1】岡本龍明、山本博資、「現代暗号」、産業図書(1997年)
【非特許文献2】ITU−T Recommendation X.509 (1997 E): Information Technology − Open Systems Interconnection − The Directory: Authentication Framework,1997
【非特許文献3】F.Preparata,G. Metze and R.T. Chien,"On The Connection Assignment Problem of Diagnosable Systems," IEEE Trans. Electronic Computers,vol. 16,pp.848−854,1968.
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1に記載されているように、複数の監視モジュールが相互に監視を行うようにすると、何れかの監視モジュールが改ざんされた場合であっても、改ざんされずに残っている監視モジュールを用いて、他のモジュールの改ざん検出を行うことができ、コンピュータシステムの安全性を高めることができる。
【0010】
しかし、監視モジュールの数が増えると、監視モジュールの数に依存して監視結果の数が増える。例えば、n個の監視モジュールが完全に相互に監視を行う場合には、その監視結果の数は、n(n−1)/2で表現される。この場合には、監視モジュールの数の増加に比べて、監視結果の数の増加は急激である。このため、監視モジュールの数が増加した場合に、監視結果を用いて改ざんの状況を分析しようとすると、その分析のための演算量が多大となり、機器の処理の負荷が高くなるという問題がある。
【0011】
上記のような問題を解決するために、本発明は、監視結果の分析のための演算量を大きく増やすことなく、改ざんされた監視モジュールを特定することができる改ざん監視システム、管理装置、管理方法、集積回路、プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記の目的を達成するために、本発明の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出手段と、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定手段とを備えることを特徴とする。
【発明の効果】
【0013】
この構成によると、一部の監視結果を用いて異常を検出し、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定するので、監視結果の分析のための演算量を大きく増やすことなく、改ざんされた監視モジュールを特定することができるという優れた効果を奏する。
【0014】
本発明の目的、効果及び特徴は、以下の説明を添付図面と併せて読めば明らかとなろう。添付図面は、本発明の一態様を例示している。
【図面の簡単な説明】
【0015】
【図1】本発明に係る実施の形態1における検知システム10の全体構成図である。
【図2】機器100における検知モジュール群130の構成図である。
【図3】機器100における保護制御モジュール120の構成図である。
【図4】検知モジュール群130内の検知モジュール131の構成図である。
【図5】機器100におけるアクセス制御モジュール140の構成図である。
【図6】機器100のハードウェア構成図である。
【図7】機器100のソフトウェア構成図である。
【図8】管理装置200における判断部210の構成図である。
【図9】管理装置200におけるモジュール無効化部220の構成図である。
【図10】検知システム10全体の動作を示すフローチャートである。
【図11】機器100における初期設定処理を示すシーケンス図である。
【図12】機器100における初期設定処理(検知モジュール初期化処理)を示すフローチャートである。
【図13】機器100における検知処理を示すフローチャートである。
【図14】機器100における検知処理(保護制御モジュール検知処理)を示すシーケンス図である。
【図15】機器100の検知モジュール群130における監視パターンについて説明するための図である。
【図16】検知システム10における検知処理(検知モジュール検知処理)を示すシーケンス図である。図17へ続く。
【図17】検知システム10における検知処理(検知モジュール検知処理)を示すシーケンス図である。図18へ続く。
【図18】検知システム10における検知処理(検知モジュール検知処理)のシーケンス図である。図17から続く。
【図19】判断部210が受信した検出結果について説明するための図である。
【図20】管理装置200における検証処理を示すフローチャートである。
【図21】検知モジュール群130における検出結果について説明するための図である。
【図22】検出結果リスト6051のデータ構造の一例を示す図である。
【図23】検出結果について説明するための図である。
【図24】検知システム10における無効化処理を示すシーケンス図である。
【図25】本発明に係る実施の形態2における検知システム11の全体構成図である。
【図26】監視パターン更新部230の構成図である。
【図27】管理装置200aにおける検証処理を示すフローチャートである。図28へ続く。
【図28】管理装置200aにおける検証処理を示すフローチャートである。図27から続く。
【図29】正常モジュール特定処理の動作を示すシーケンス図である。図30へ続く。
【図30】正常モジュール特定処理の動作を示すシーケンス図である。図29から続く。
【図31】循環監視パターンについて説明するための図である。
【図32】特定処理を示すフローチャートである。
【図33】循環監視パターンによる検出結果について説明するための図である。
【図34】本発明に係る実施の形態3におけるソフトウェア更新システム12の全体構成図である。
【図35】保護制御モジュール120aの構成図である。
【図36】検知モジュール131aの構成図である。
【図37】更新用ソフトウェア配布部240の構成図である。
【図38】ソフトウェア更新システム12の動作を示すフローチャートである。
【図39】初期設定処理を示すシーケンス図である。
【図40】初期設定処理(検知モジュール初期化処理)を示すフローチャートである。
【図41】解析・判断処理を示すシーケンス図である。
【図42】相互認証処理を示すシーケンス図であり、検知モジュール131aが更新用ソフトウェア配布部240を認証するときのシーケンスを示す。
【図43】相互認証処理を示すシーケンス図であり、更新用ソフトウェア配布部240が各検知モジュールを認証するときのシーケンスを示す。
【図44】回復処理を示すフローチャートである。
【図45】回復処理(相互監視処理)を示すシーケンス図である。
【図46】回復処理(更新処理)を示すシーケンス図である。図47へ続く。
【図47】回復処理(更新処理)を示すシーケンス図である。図48へ続く。
【図48】回復処理(更新処理)を示すシーケンス図である。図49へ続く。
【図49】回復処理(更新処理)を示すシーケンス図である。図48から続く。
【図50】本発明の実施の形態3における相互監視処理と更新処理との連携動作について説明するための図である。
【図51】回復処理(再暗号化処理)を示すシーケンス図である。
【図52】次ラウンド準備処理を示すシーケンス図である。
【図53】検知モジュール群130における検出結果について説明するための図である。
【図54】本発明のその他の変形例としての改ざん監視システム10cの構成を示すブロック図である。
【図55】情報セキュリティ装置100cから受信した監視結果の一例を示す。
【図56】情報セキュリティ装置100cから受信した監視結果の集合C112のデータ構造の一例を示す。
【図57】特定部210cの動作を示すフローチャートである。
【図58】情報セキュリティ装置100cから受信した別の監視結果の一例を示す。
【0016】
(a)時刻t=kのときの監視結果を示す。(b)時刻t=k+iのときの監視結果を示す。
【図59】情報セキュリティ装置100cから受信した別の監視結果の集合C120のデータ構造の一例を示す。
【図60】情報セキュリティ装置100cから受信したさらに別の監視結果の一例を示す。
【0017】
(a)時刻t=kのときの監視結果を示す。(b)時刻t=k+iのときの監視結果を示す。
【図61】情報セキュリティ装置100cから受信したさらに別の監視結果の集合C130のデータ構造の一例を示す。
【図62】本発明のその他の変形例としての改ざん監視システム10dの構成を示すブロック図である。
【図63】監視結果の集合D100aと監視パターンの集合D100bの一例を示す。
【図64】循環型の監視パターンD101、D102、・・・、D106のデータ構造の一例を示す。
【発明を実施するための形態】
【0018】
本発明の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出手段と、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定手段とを備える。
【0019】
ここで、前記検出手段は、一の監視モジュールに対する複数の監視結果を用いて、前記複数の監視結果の不一致を検出し、前記特定手段は、前記複数の監視結果のそれぞれを用いて、監視先の監視モジュールから監視元の監視モジュールへ遡ることにより、改ざんされた前記監視モジュールを特定してもよい。
【0020】
ここで、前記情報セキュリティ装置の各監視モジュールは、一の時点において、他の監視モジュールの改ざんを監視し、その監視結果を送信し、前記受信手段は、前記一の時点における前記監視結果を受信し、前記検出手段は、受信した前記監視結果のうち、一の監視モジュールに対する第1の監視結果と第2の監視結果とが一致するか否かを判断することにより、前記第1の監視結果と前記第2の監視結果の不一致を検出し、前記特定手段は、前記第1の監視結果及び前記第2の監視結果のそれぞれを用いて、監視先の監視モジュールから監視元の監視モジュールへ遡り、前記第1の監視結果及び前記第2の監視結果毎に、正常であるとするその他の前記監視結果を用いて監視先の監視モジュールから監視元の監視モジュールへ遡ることを繰り返すことにより、同一の監視モジュールに到達するか否かを判断し、同一の監視モジュールに到達すると判断する場合に、当該同一の監視モジュールを改ざんされた監視モジュールとして特定してもよい。
【0021】
ここで、前記情報セキュリティ装置の各監視モジュールは、第1の時点において、他の監視モジュールの改ざんを監視し、その監視結果を送信し、前記第1の時点より後の第2の時点において、他の監視モジュールの改ざんを監視し、その監視結果を送信し、前記受信手段は、前記第1の時点における前記監視結果及び前記第2の時点における前記監視結果を受信し、前記検出手段は、受信した前記監視結果のうち、前記第1の時点における第1監視モジュールによる第2監視モジュールに対する第1の監視結果が前記第2監視モジュールが改ざんされていることを示し、前記第2の時点における前記第1監視モジュールによる前記第2監視モジュールに対する第2の監視結果が前記第2監視モジュールが改ざんされていないことを示すという不一致を検出し、前記特定手段は、前記不一致が検出された場合に、前記第1監視モジュールを改ざんされた監視モジュールとして特定してもよい。
【0022】
ここで、前記情報セキュリティ装置の各監視モジュールは、第1の時点において、他の監視モジュールの改ざんを監視し、その監視結果を送信し、前記第1の時点より後の第2の時点において、他の監視モジュールの改ざんを監視し、その監視結果を送信し、前記受信手段は、前記第1の時点における前記監視結果及び前記第2の時点における前記監視結果を受信し、前記検出手段は、受信した前記監視結果のうち、前記第1の時点における第1監視モジュールによる第2監視モジュールに対する第1の監視結果が前記第2監視モジュールが改ざんされていることを示し、前記第2の時点における前記第2監視モジュールによる前記第1監視モジュールに対する第2の監視結果が前記第1監視モジュールが改ざんされていないことを示すという異常を検出し、前記特定手段は、前記第1の監視結果が前記第2監視モジュールが改ざんされたことを示し、前記第2の監視結果が前記第1監視モジュールが改ざんされていないことを示す場合に、前記第2監視モジュールを改ざんされた監視モジュールとして特定してもよい。
【0023】
また、本発明の別の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理方法であって、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出ステップと、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定ステップとを含む。
【0024】
また、本発明の別の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、コンピュータである管理装置に、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出ステップと、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定ステップとを実行させるための前記コンピュータプログラムを記録している。
【0025】
また、本発明の別の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する集積回路であって、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出手段と、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定手段とを備える。
【0026】
また、本発明の別の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置と、前記情報セキュリティ装置を管理する管理装置とから構成される監視システムであって、前記管理装置は、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出手段と、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定手段とを備える。
【0027】
また、本発明の別の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定手段と、複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成手段と、生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信手段とを備え、前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する。
【0028】
ここで、前記生成手段により生成される前記複数の監視パターンは、循環型の監視パターンを構成するとしてもよい。
また、本発明の別の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理方法であって、前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定ステップと、複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成ステップと、生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信ステップとを含み、前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する。
【0029】
また、本発明の別の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、コンピュータである管理装置に、前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定ステップと、複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成ステップと、生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信ステップとを実行させるためのコンピュータプログラムを記録しており、前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する。
【0030】
また、本発明の別の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する集積回路であって、前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定手段と、複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成手段と、生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信手段とを備え、前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する。
【0031】
また、本発明の別の一実施態様は、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置と、前記情報セキュリティ装置を管理する管理装置とから構成される監視システムであって、前記管理装置は、前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定手段と、複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成手段と、生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信手段とを備え、前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する。
(実施の形態)
1.実施の形態1
本発明に係る実施の形態1としての検知システム10について、図面に基づき説明する。
【0032】
1.1.検知システム10の構成
(1)全体構成
図1は、検知システム10の全体構成図である。検知システム10は、図1に示すように、情報処理装置としての機器100と、管理装置200とから構成される。機器100と管理装置200とは、ネットワークを介して接続されている。
【0033】
(2)機器100の構成
機器100は、ネットワークを介して、例えば、コンテンツ配信サーバから音楽や映像等のコンテンツを購入し再生したり、金融機関のシステムにアクセスし、ネットバンキング(預金の残高照会や口座振り込み等)を行ったりするなど、ユーザに対してネットワークを利用した様々な機能を提供するデータ処理装置である。
【0034】
(a)機器100のソフトウェア構成
機器100は、アプリケーションソフト(以下、「アプリ」という)110、111と、保護制御モジュール120と、検知モジュール群130とを含んで構成される。
【0035】
アプリ110及び111は、機器100を使用するユーザに対して、ネットワークを利用した機能を提供するソフトウェアであり、例えば、ネットワーク上のコンテンツ配信サーバ(不図示)から音楽や映像等のコンテンツを購入し、購入したコンテンツを再生するソフトウェアや、ネットワークを介して金融機関のシステム(不図示)にアクセスし、預金の残高照会や口座振り込み等のネットバンキングを行うソフトウェア等である。
【0036】
アプリ110及び111は、一例として、コンテンツ配信サーバや金融機関のシステムと認証を行うための認証鍵等の秘匿データを有している。この秘匿データは、悪意のある第三者(以下、「攻撃者」という)によりアプリから抜き取られ、不正に利用されないよう、保護される必要がある。
【0037】
このように、機器100は、秘匿データを扱うので、情報セキュリティ装置と呼ぶこともある。
保護制御モジュール120は、攻撃者によりアプリ110及び111が解析され、認証鍵等の秘匿データが抜き取られないようにアプリ110及び111を保護するための機能を有するモジュールである。アプリを保護するための機能としては、例えば、アプリを利用しない時には、アプリを暗号化して保存しておき、アプリを利用する時にのみ暗号化アプリを復号してメモリへロードする復号ロード機能や、アプリが改ざんされていないかをチェックする改ざん検出機能、デバッガなどの解析ツールが動作していないかをチェックする解析ツール検出機能などがある。保護制御モジュール120は、これらの機能の動作を制御し、アプリ110及び111を保護する。
【0038】
保護制御モジュール120は、改ざん検出機能や解析ツール検出機能により、攻撃者による攻撃を検出した場合には、アプリ110及び111の動作を停止し、アプリ110及び111が利用していたメモリ領域、特に秘匿データが記憶されたメモリ領域のクリア処理等を行い、秘匿データの漏洩を防止する。
【0039】
検知モジュール群130は、複数の検知モジュール131、132、133、134、135(ここでは、一例として、5つ)から構成される。図2は、検知モジュール群130の構成を示す図である。検知モジュール131、132、133、134、135は、それぞれ、機器100内部のソフトウェア(ここでは保護制御モジュール120)が改ざんされていないかを検出する機能を持つ。
【0040】
そして、検知モジュール群130の各検知モジュールは、攻撃者によって各検知モジュールが改ざんされ、各検知モジュールを不正に利用されることを防止するために、検知モジュール同士が相互に改ざん検出を実施する。そして、各検知モジュールは、改ざん検出結果を、管理装置200へ送信する。管理装置200により、ある検知モジュールが改ざんされていると判断された場合には、他の正常な検知モジュールは、管理装置200からの無効化指示を受け、改ざんされた検知モジュールを無効化する。
【0041】
これにより、検知モジュール群130に含まれる一部の検知モジュールが攻撃され、改ざんされた場合であっても、それを検出し、攻撃に対処することが可能となる。
アクセス制御モジュール140は、各検知モジュールが他のモジュールを消去するために必要なアクセス情報を保持する。アクセス情報は、例えば、消去対象であるモジュールが配置されているアドレスや、消去に必要な手順が書かれた手順書などである。なお、アクセス情報は、消去対象であるモジュール毎に、それぞれ個別のアクセス情報取得鍵で暗号化されている。
【0042】
(b)保護制御モジュール120の構成
ここでは、保護制御モジュール120の詳細について説明する。
図3は、保護制御モジュール120の機能的な構成を示す機能ブロック図である。保護制御モジュール120は、保護制御モジュール本体と、改ざん検出用証明書とを含む。改ざん検出用証明書は、保護制御モジュール本体を改ざん検出するための証明書であり、管理装置200で保持する署名秘密鍵(署名私有鍵とも呼ぶ)を用いて生成したものである。
【0043】
同図に示すように、保護制御モジュール120の本体は、受信部301、送信部302、制御部303、復号ロード部304、改ざん検出部305、解析ツール検出部306及び暗復号鍵保持部307から構成される。
【0044】
受信部301は、検知モジュール131、132、133、134、135から、各種依頼などを受信する。
送信部302は、検知モジュール131、132、133、134、135へ、各種依頼などを送信する。
【0045】
制御部303は、復号ロード部304、改ざん検出部305、及び解析ツール検出部306を制御することにより、アプリ110、111が攻撃者により攻撃されている場合に、それを検出する。
【0046】
復号ロード部304は、暗号化されているアプリ110、111を実行するときに、暗復号鍵を用いて復号し、メモリ上にロードする処理を行う。また、アプリ110、111の実行中に、他のアプリへのコンテキストスイッチ(context switch) が発生すると、復号ロード部304は、メモリ上のデータを、暗復号鍵を用いて暗号化する。そして、再びアプリ110、111へコンテキストスイッチしたときに、暗号化したデータを復号する処理を行う。なお、コンテキストスイッチとは、複数のモジュールが1つのCPUを共有できるように、CPUの状態(コンテキスト)を保存したり復元したりする過程のことである。
【0047】
改ざん検出部305は、アプリ110、111の改ざん検出処理を実行する。改ざん検出処理は、アプリ110、111に付加されている検証用証明書を用いる方法と、MAC値を比較する方法とがある。
【0048】
解析ツール検出部306は、デバッガなどの解析ツールがインストールされたり、動作したときにそれを検出する。不正な攻撃者がアプリ110、111を攻撃するために、解析ツールをインストールしたり、動作させることが想定されるからである。検出方法としては、例えば、ファイル名を検索する方法や、デバッガが使用する特殊なレジスタが使用されているかを調べる方法や、デバッガが設定する割り込みを検出する方法などを用いる。
【0049】
暗復号鍵保持部307は、アプリ110、111を暗復号するための暗復号鍵を保持する。
(c)検知モジュールの構成
次に、検知モジュール131、132、133、134、135の詳細について説明する。
【0050】
図4は、検知モジュール131の機能的な構成を示す機能ブロック図である。検知モジュール132、133、134及び135も同様の構成を有する。検知モジュール131は、検知モジュール本体と、改ざん検出用証明書と、MAC値テーブルとを含む。改ざん検出用証明書は、検知モジュール本体の改ざんを検出するための証明書であり、管理装置200で保持する署名秘密鍵を用いて生成したものである。
【0051】
検知モジュール本体は、受信部401、送信部402、制御部403、検証部404、MAC値生成部405、及びMAC値テーブル更新部406から構成される。
受信部401は、管理装置200から、各種指示を受信する。また、受信部401は、他の検知モジュールから、改ざん検出を行うために必要な検知モジュール本体や検知モジュール改ざん検出用証明書などを受信する。さらに、受信部401は、他の検知モジュールから、依頼した処理の結果や、当該他の検知モジュールによる保護制御モジュール120の監視結果などを受信する。
【0052】
送信部402は、管理装置200、保護制御モジュール120、他の検知モジュール、及びアクセス制御モジュール140へ、各種処理結果や証明書などのデータを送信する。
制御部403は、受信部401が受信した各種指示や通知に基づいて、検証部404を制御することにより各種の処理を行う。
【0053】
具体的には、制御部403は、保護制御モジュール120の改ざん検出処理、検知モジュール132、133、134、135の改ざん検出処理、保護制御モジュール120の無効化処理、検知モジュール132、133、134、135の無効化処理、監視パターンの更新処理などを行う。
【0054】
検証部404は、制御部403の制御に基づき、保護制御モジュール120、検知モジュール132、133、134、135の改ざん検出処理を行う。
検証部404は、各モジュールに付加されている改ざん検出用証明書を用いて改ざん検出処理を行うとしてもよい。または、予め計算されたメッセージ認証コード(Message Authentication Code)(以下、「MAC値」という。)を用いてもよい。
【0055】
検証部404が、どのタイミングでどのモジュールの改ざん検出処理を行うのかを示す情報は、予め、管理装置200から与えられている。検証部404は、管理装置200から改ざん検出対象のモジュールの変更や改ざん検出を行うタイミングの変更の指示があった場合には、指示に従い変更する。
【0056】
MAC値生成部405は、検証鍵を保持している。MAC値生成部405は、検証部404が改ざん検出処理にMAC値を用いる場合、検証鍵を用いてMAC値を生成する。
MAC値テーブル更新部406は、各モジュールのMAC値が格納されているMAC値テーブルを更新する。MAC値テーブルには、モジュールを識別するためのモジュール識別子と、そのモジュールに対応するMAC値とが対になって格納されている。
【0057】
MAC値生成部405は、改ざん検出処理の対象であるモジュールを取得し、取得したモジュールのMAC値を計算する。検証部404は、計算されたMAC値とMAC値テーブルに格納されている対象モジュールのMAC値とを比較することにより改ざん検出を行う。検証部404は、計算されたMAC値とMAC値テーブルに格納されている対象モジュールのMAC値とが一致しない場合には、対象モジュールの改ざんを検出したとみなす。一致する場合には、改ざんを検出しなかったとみなす。
【0058】
(d)アクセス制御モジュール140の構成
図5は、アクセス制御モジュール140の構成を機能的に示す機能ブロック図である。同図に示すように、アクセス制御モジュール140は、受信部501、送信部502、及びアクセス情報保持部503から構成される。
【0059】
受信部501は、検知モジュール131、132、133、134、135から、改ざんされた検知モジュールを消去するために必要な情報であるアクセス情報の取得依頼を受信する。
【0060】
送信部502は、アクセス情報取得依頼に応じて、アクセス情報取得を依頼してきた検知モジュールへアクセス情報を送信する。
アクセス情報保持部503は、検知モジュール131、132、133、134、135毎に、そのモジュールを消去するためのアクセス情報を保持する。
【0061】
各アクセス情報には、消去対象となる検知モジュールを識別するための検知モジュール識別子が付されている。また、各アクセス情報は、アクセス情報取得鍵で暗号化されている。
【0062】
検知モジュール131、132、133、134、135からアクセス情報取得依頼を受け付けると、送信部502は、アクセス情報保持部503に記憶され、消去対象の検知モジュールの識別子が付されたアクセス情報を、依頼元の検知モジュールへ送信する。
【0063】
(e)機器100のハードウェア構成
続いて、図6を用いて、機器100のハードウェア構成について説明する。
図6に示すように、機器100は、CPU(Central Processing Unit)171、不揮発性メモリであるEEPROM(Electrically Erasable and Programmable Read Only Memory)172、RAM(Random Access Memory)173、及びNIC(Network Interface Card)174などを含んで構成される。また、これらはバスを介して、相互に通信可能に接続されている。
【0064】
EEPROM172には、保護制御モジュール120、検知モジュール群130及びアプリ110、111などが格納されている。
EEPROM172に格納されている各種モジュールをCPU171が実行することにより、各種モジュールの各機能部が実現される。各機能部は、具体的には、コンピュータプログラムによって記述されている。
【0065】
RAM173は、CPU171のワークエリアとして用いられる。RAM173には検知モジュール群130及び、アプリ110、111がロードされる。改ざん検出処理及び無効化処理の対象となる検知モジュールは、RAM173上で動作している検知モジュールである。
【0066】
NIC174は、ネットワークに接続するための拡張カードである。
(f)ソフトウェア階層
続いて、図7を用いて、機器100のソフトウェア階層について説明する。
【0067】
図7に示すように、アクセス制御モジュール140及び検知モジュール群130は、OS150の中に組み込まれている。アプリ110及びアプリ111は、OS150上で動作し、保護制御モジュール120及びブートローダ160は、OS150の管理外にある。
【0068】
機器100の起動の際には、まず保護制御モジュール120及び検知モジュール群130が起動された上で各アプリが実行される。
(3)管理装置200の構成
管理装置200は、機器100の検知モジュール群130から、改ざん検出結果を受信して、受信した改ざん検出結果を基に、無効化すべき異常な検知モジュールを特定する異常モジュール特定装置として機能する。
【0069】
(a)全体構成
図1に示すように、管理装置200は、判断部210、モジュール無効化部220、及び通信部250から構成される。管理装置200は、具体的には、CPU、ROM、RAM、ハードディスクユニットなどを備えるコンピュータシステムである。CPUが、ROMまたはハードディスクユニットに記憶されているコンピュータプログラムにしたがって動作することにより、管理装置200は、上記の機能を発揮する。
【0070】
判断部210は、機器100の検知モジュール群130から、改ざん検出結果を受信して、受信した改ざん検出結果を基に、無効化すべき異常な検知モジュールを特定する。
モジュール無効化部220は、検知モジュール131、132、133、134、135からアクセス情報取得鍵の取得要求を受け付けると、要求元の検知モジュールへ、アクセス情報取得鍵を送信する。
【0071】
通信部250は、機器100と、管理装置200内部の各部との間で情報の送受信を行う。例えば、通信部250は、機器100から受信した改ざん検出結果を判断部210に送信する。なお、機器100と管理装置200との間の通信には、データを暗号化するなど、セキュリティの確保された通信路を用いてもよい。
【0072】
続いて、管理装置200の各構成要素について説明する。
(b)判断部210の構成
図8は、判断部210の構成を機能的に示す機能ブロック図である。
【0073】
同図に示すように、判断部210は、受信部601、送信部602、指示生成部603、モジュール特定部604及び検出結果保持部605から構成される。
受信部601は、検知モジュール131、132、133、134、135から、改ざん検出結果、各種依頼などを受信し、それらを指示生成部603へ出力する。また、受信部601は、管理装置200内の各部から、処理が完了した旨の通知を受け取り、それを指示生成部603へ出力する。
【0074】
送信部602は、指示生成部603によって生成された指示を、管理装置200内の各部へ出力する。
指示生成部603は、検知モジュール131、132、133、134、135から受信した改ざん検出結果(以下、「相互監視結果」又は単に「監視結果」ということがある。)を、モジュール特定部604へ出力する。また、指示生成部603は、モジュール特定部604から、改ざんされている異常な検知モジュールを識別する情報を取得し、取得した情報を基に、管理装置200内の各部に対する指示を生成する。
【0075】
モジュール特定部604は、検知モジュール131、132、133、134、135から受信した相互監視結果を用いて、各検知モジュールが改ざんされているか否かを判断し、改ざんされている異常な検知モジュールを特定する。モジュール特定部604は、異常な検知モジュールを識別する情報を指示生成部603へ出力する。
【0076】
検出結果保持部605は、検知モジュール131、132、133、134、135から受信した相互監視結果のうち、改ざんされていると判定することにより得られた改ざん検出結果を記憶する。
【0077】
(c)モジュール無効化部220
図9は、モジュール無効化部220の機能的な構成を示す機能ブロック図である。
同図に示すように、モジュール無効化部220は、受信部701、送信部702、アクセス情報取得鍵保持部703、及び検知モジュール選択部704から構成される。
【0078】
受信部701は、判断部210から改ざんされた異常な検知モジュールを無効化する指示を受信する。また、受信部701は、検知モジュール131、132、133、134、135からアクセス情報取得鍵の取得依頼を受信する。
【0079】
送信部702は、アクセス情報取得鍵の取得依頼に応じて、アクセス情報取得鍵を依頼元の検知モジュールへ送信する。
アクセス情報取得鍵保持部703は、アクセス制御モジュール140が保持するアクセス情報を復号するための鍵であるアクセス情報取得鍵を保持する。
【0080】
検知モジュール選択部704は、改ざんされた異常な検知モジュールの無効化処理を行う検知モジュールを選択し、選択した検知モジュールに、異常な検知モジュールの無効化を指示する。判断部210からどの検知モジュールを選択するかの指示を受けて、無効化処理を行う検知モジュールを選択するとしてもよい。
【0081】
なお、検知モジュール選択部704が選択した検知モジュールからアクセス情報取得鍵の取得依頼があった場合には、送信部702は、アクセス情報取得鍵に、消去対象となる検知モジュールの識別子を付して、選択した検知モジュールへ送信する。
【0082】
1.2 検知システム10の動作
続いて、検知システム10の動作を説明する。
(1)全体動作
図10は、検知システム10全体の処理の流れを示したフローチャートである。
【0083】
検知システム10は、先ず、初期設定処理を行う(S100)。
初期設定処理とは、ソフトウェア(保護制御モジュール120や検知モジュール群)のインストールや、ソフトウェアを検知するために必要となるデータを検知モジュール131、132、133、134、135のそれぞれに埋め込む処理である。なお、初期設定処理は、機器100が工場で製造される際に行われる。その後、機器100は、工場から出荷され、ユーザの利用に供される。
【0084】
ユーザにより機器100が利用される際には、機器100内部では、保護制御モジュール120がアプリ110、111を攻撃者による攻撃から保護する。これと同時に、検知モジュール131、132、133、134、135が保護制御モジュール120の改ざん検出を実施し、保護制御モジュール120が攻撃されていないかをチェックする検知処理を行う。また、各検知モジュールは、攻撃者によって各検知モジュールが改ざんされ、各検知モジュールを不正に利用されることを防止するために、検知モジュール同士が相互に改ざん検出を実施する(ステップS200)。
【0085】
検知処理を行った結果、保護制御モジュール120が改ざんされたと判明した場合には、改ざんされた旨を機器100が備える表示部(図示していない)に表示したり、管理装置200へ通知したりする。
【0086】
続いて、上記2つの処理について、その詳細を順に説明する。
(2)初期設定処理の動作
ここでは、図11から図12を用いて、検知システム10の初期設定処理(図10のS100)の詳細について説明する。
【0087】
図11は、検知システム10における初期設定処理の流れを示すシーケンス図である。本シーケンスにおいて、検知モジュール131、132、133、134、135の各々が個別に行う処理を、検知モジュール群130としてまとめて記載している。
【0088】
検知システム10は、機器100の工場製造時に、機器100の不揮発メモリへアプリ(110、111)、保護制御モジュール120、検知モジュール(131、132、133、134、135)などをインストールする(S1001)。
【0089】
これらのソフトウェアには、ソフトウェアが改ざんされているか否かを検証するための改ざん検出用証明書が付加されている。この改ざん検出用証明書は、管理装置200が保持する署名秘密鍵により署名が施されている。なお、S1001では、上記のソフトウェア以外にも、機器100の動作に必要なソフトウェアがインストールされる。
【0090】
ここで、初期設定処理の際に機器100に埋め込まれる鍵について説明する。
保護制御モジュール120には暗復号鍵が埋め込まれ、検知モジュール131、132、133、134、135には署名公開鍵及び検証鍵が埋め込まれる。更に、検知モジュール131、132、133、134、135には、それぞれの検知モジュールを識別するための検知モジュール識別子が埋め込まれ、保護制御モジュール120及び検知モジュール131、132、133、134、135は、それぞれ、その状態で機器100にインストールされる。
【0091】
暗復号鍵は、アプリ110、111を暗号化及び復号するための鍵である。アプリ110、111は、暗復号鍵を用いて暗号化された状態で不揮発メモリへ記憶され、実行時に保護制御モジュール120により、暗号化されたアプリ110、111が暗復号鍵を用いて復号された後、アプリ110、111が実行される。
【0092】
機器100が、コンテキストを切り替えながら複数のアプリを実行する場合には、コンテキスト切り替えのタイミングで、暗復号鍵を用いて、アプリ110、111が使用しているデータの暗号化及び復号を行うことにより、アプリ110、111の実行時に、デバッガなどの解析ツールによって、データが抜き取られることを防止する。
【0093】
検知モジュール131、132、133、134、135に埋め込まれる鍵のうち、署名公開鍵は、すべての検知モジュールに共通の鍵である。検証鍵は、それぞれの検知モジュールで異なる鍵である。図11に戻り説明を続ける。S1001で各ソフトウェアをインストールした後、機器100は、初期設定を行うソフトウェア、及び、正常に動作するかテストするためのソフトウェアなどを実行して、初期化する(S1002)。また、機器100は、検知モジュール131、132、133、134、135に対して、初期化指示を出力する(S1003)。
【0094】
指示を受信した検知モジュール群130は、検知モジュール初期化処理を実行する(S1004)。
(a)検知モジュール初期化処理の動作
図12は、検知モジュール初期化処理(図11のS1004)の動作を示すフローチャートである。
【0095】
なお、ここでは、検知モジュール131についてのみ説明するが、検知モジュール132、133、134及び135の動作も基本的に検知モジュール131と同一であるので、これらの説明を省略する。
【0096】
検知モジュール131は、改ざん検出対象である検知モジュール132、133、134、135及び保護制御モジュール120の改ざん検出用証明書の検証を行う(S1101)。この検証は、各検知モジュールから検証値を生成し、生成した検証値とそれぞれの改ざん検出用証明書に記述されている検証値とを比較することにより行われる。上記検証値は、ハッシュ値や署名である。署名の場合、署名が正しいか否かの検証を行う。
【0097】
生成した各検証値がそれぞれの改ざん検出用証明書に記述されている検証値と一致するか否かを判定する(ステップS1102)。各検証値がそれぞれの改ざん検出用証明書に記述されている検証値と一致すれば(ステップS1102でYES)、他の検知モジュール及び保護制御モジュール120それぞれに対してMAC値を生成し、MAC値テーブルとして、他の検知モジュール及び保護制御モジュール120が有するMAC値保持部に保持する(ステップS1103)。少なくともいずれか一方の検証値が改ざん検出用証明書に記述されている検証値と一致しなければ(ステップS1102でNO)、エラーを出力して機器を停止する(ステップS1104)。
【0098】
(3)検知処理の動作
続いて、検知処理について説明する。
機器100は、初期設定処理を終えると工場から出荷され、ユーザの元へ送られ、ユーザの元で機器100が使用される。
【0099】
機器100でアプリ110、111が動作しているとき、機器100内部では、保護制御モジュール120が復号ロード機能、改ざん検出機能、解析ツール検出機能などの機能を制御し、アプリ110、111を攻撃者による攻撃から保護する。
【0100】
図13は検知処理(図10のS200)のフローチャートである。検知処理は、保護制御モジュール120が改ざんされているかを検知する保護制御モジュール検知処理(S201)と、検知モジュールが改ざんされているかを検知する検知モジュール検知処理(S202)とからなる。
【0101】
(a)保護制御モジュール検知処理の動作
図14のシーケンス図を用いて、保護制御モジュール検知処理の詳細について説明する。
【0102】
保護制御モジュール検知処理においては、先ず、検知モジュール131、132、133、134、135が、保護制御モジュール120の改ざん検出を実施する。改ざん検出は、検証鍵を使用して保護制御モジュール120のMAC値を計算し(S2000)、計算したMAC値とMAC値テーブルに保持されているMAC値とを比較する(S2001)ことにより行う。
【0103】
MAC値が一致すれば(S2001で「改ざんされていない」)、保護制御モジュール120は改ざんされていないと判定し、MAC値が一致しなければ(S2001で「改ざんされている」)、保護制御モジュール120は改ざんされていると判定する。
【0104】
なお、図14では記載を簡略化し、検知モジュール131のみが保護制御モジュール120の改ざん検出を行っているように記載されているが、当然ながら、検知モジュール132、133、134、135でも同様の処理が行われる。
【0105】
保護制御モジュール120が改ざんされているか否か、即ち、MAC値が一致するか否かを判定し(S2001)、保護制御モジュール120が改ざんされていると判定した場合(S2001で「改ざんされている」)、検知モジュール131は、その旨を、管理装置200の判断部210へ通知する(S2002)。
【0106】
保護制御モジュール120が改ざんされていないと判定した場合(S2001で「改ざんされていない」)、検知モジュール131は、判断部210へ通知を行わず、改ざん検出処理へ戻る。
【0107】
判断部210は、検知モジュール131、132、133、134、135から改ざん検出結果を受信する(S2002)。
(b)検知モジュール検知処理の動作
続いて、図15から図24を用いて検知モジュール検知処理の詳細について説明する。
【0108】
検知モジュール検知処理では、攻撃者によって各検知モジュールが改ざんされ、各検知モジュールを不正に利用されることを防止するために、検知モジュール同士が相互に改ざん検出を実施する。各検知モジュールについては、監視パターンによって、どの検知モジュールの改ざん検出をするかが決まっている。
【0109】
実施の形態1における監視パターンについて、図15に示す具体例を用いて説明する。図15では、監視パターンの説明を容易にするため、監視パターンを有向グラフで表している。矢印は、監視元(検証元)の検知モジュールから監視先(検証先)の検知モジュールへ向いている。
【0110】
たとえば、矢印A2000は、検知モジュール131から検知モジュール132へ向いていることから、検知モジュール131が、検知モジュール132の改ざん検出処理を行うことを示している。また、矢印A2006は、検知モジュール131から検知モジュール135へ向いていることから、検知モジュール131が、さらに、検知モジュール135の改ざん検出処理を行うことを示している。他の矢印も同様の改ざん検出処理を行うことを示している。
【0111】
まず、図16から図18のシーケンス図を用いて、検知モジュール検知処理の詳細について説明する。
検知モジュール131は、一例として図15に示す監視パターンに従って、検知モジュール132の改ざん検出を行う(S2101)。検知モジュール131は検出結果を判断部210へ送信する(S2102)。
【0112】
図19は、判断部210が受信した検出結果を示す図である。図19では、「改ざんされていない」という検出結果を、矢印と対応して記載された○印で表している。「改ざんされている」という検出結果では、矢印と対応して記載された×印で表す。
【0113】
例えば、○印2010は、検知モジュール131が、検知モジュール132の改ざん検出処理を行った結果、「改ざんされていない」と判定されたことを表している。
判断部210は、検出結果を受信し、検証処理を行う(S2103)。検証処理の動作については後述する。
【0114】
次に、検知モジュール132は、一例として図15に示す監視パターンに従って、検知モジュール133の改ざん検出を行う(S2104)。検知モジュール132は検出結果を判断部210へ送信する(S2105)。
【0115】
判断部210は、検出結果を受信し、検証処理を行う(S2106)。
次に、検知モジュール133は、一例として図15に示す監視パターンに従って、検知モジュール131の改ざん検出を行う(S2107)。検知モジュール133は検出結果を判断部210へ送信する(S2108)。
【0116】
判断部210は、検出結果を受信し、検証処理を行う(S2109)。
次に、検知モジュール134は、一例として図15に示す監視パターンに従って、検知モジュール135の改ざん検出を行う(S2110)。検知モジュール134は検出結果を判断部210へ送信する(S2111)。
【0117】
判断部210は、検出結果を受信し、検証処理を行う(S2112)。
次に、検知モジュール135は、一例として図15に示す監視パターンに従って、検知モジュール132の改ざん検出を行う(S2113)。検知モジュール135は検出結果を判断部210へ送信する(S2114)。
【0118】
判断部210は、検出結果を受信し、検証処理を行う(S2115)。
次に、検知モジュール131は、一例として図15に示す監視パターンに従って、検知モジュール135の改ざん検出を行う(S2116)。検知モジュール131は検出結果を判断部210へ送信する(S2117)。
【0119】
判断部210は、検出結果を受信し、検証処理を行う(S2118)。
次に、検知モジュール133は、一例として図15に示す監視パターンに従って、検知モジュール134の改ざん検出を行う(S2119)。検知モジュール132は検出結果を判断部210へ送信する(S2120)。
【0120】
判断部210は、検出結果を受信し、検証処理を行う(S2121)。
次に、検知モジュール135は、一例として図15に示す監視パターンに従って、検知モジュール134の改ざん検出を行う(S2122)。検知モジュール135は検出結果を判断部210へ送信する(S2123)。
【0121】
判断部210は、検出結果を受信し、検証処理を行う(S2124)。
(c)検証処理の動作
検証処理では、検知モジュール検知処理において、判断部210が各検知モジュールから検出結果を受信し、改ざんされた異常な検知モジュールを特定する。
【0122】
検証処理の動作について、図20に示すフローチャートを用いて説明する。
判断部210は、各検知モジュールから受信した改ざん検出結果が正常であるかを判断する(S2201)。検出結果が異常であった場合(S2201でNO)、検出結果を記憶する(S2202)。
【0123】
図21は、一例として、判断部210が検知モジュール134から受信した検出結果を示す図である。図21では、×印2014は、検知モジュール134が、検知モジュール135の改ざん検出処理を行った結果、「改ざんされている」と判定したことを表している。このとき、判断部210は、検知モジュール134が、検知モジュール135の改ざん検出処理を行った結果得られた「改ざんされている」という検出結果を、検出結果リスト6051として検出結果保持部605へ記憶する。図22は、検出結果リスト6051のデータ構造の一例を示す図である。検知モジュール134が検知モジュール135の改ざん検出を行った結果、「改ざんされている」という検出結果を送信してきた場合、検出結果リスト6051の検証元が検知モジュール134であり、検証先が検知モジュール135の欄に、改ざんされていることを示す検出結果6052(この図において、×印により示している)を記憶する。
【0124】
図20に戻り、判断部210は、受信した検出結果とすでに記憶している検出結果保持部605の検出結果に矛盾があるかを判断する(S2203)。矛盾がなかった場合(S2203でNO)には、検証処理を終了する。矛盾があった場合(S2203でYES)には、異常な検知モジュールを特定する(S2204)。
【0125】
次に、ステップS2203において判断する矛盾について、説明する。
判断部210は、すでに図22に示すように、S2111において受信した検知モジュール134による検出結果6052(検知モジュール135が改ざんされている)を保持しているとする。その後、S2122において、検知モジュール135が検知モジュール134の改ざん検出を行った結果、図23に示すように、検知モジュール134が「改ざんされていない」という検出結果2018を受信する。言い換えると、検知モジュール135は、検知モジュール135が「改ざんされている」と判定した検知モジュール134に対し、「改ざんされていない」と判定している。
【0126】
このとき、判断部210は検知モジュール135の改ざん検出結果は矛盾していると判定する。改ざん検出結果に矛盾があるため、判断部210は、検知モジュール135は異常な検知モジュールであると特定する。
【0127】
このようにして異常な検知モジュールを特定できる理由は、以下の通りである。
ここで、仮に、S2110の時点で、検知モジュール134が改ざんされていないと仮定した場合には、検知モジュール134による改ざん検出結果は正しいため、判断部210は、検知モジュール135は改ざんされていると断定できる。
【0128】
一方、S2110の時点で、検知モジュール134がすでに攻撃者によって改ざんされていたと仮定し、検知モジュール134が異常な検出結果を判断部210に送信していた場合に、S2122において検知モジュール135が検知モジュール134の改ざん検出したとき、検知モジュール135が改ざんされていない正常な検知モジュールであれば、検知モジュール134が「改ざんされている」という改ざん検出結果を送信するはずである。これは、一度改ざんされた検知モジュール(検知モジュール134)は、改ざんされていない正常な検知モジュールに戻ることはないからである。しかし、検知モジュール135は、検知モジュール134が「改ざんされていない」とする改ざん検出結果を送信している。よって、検知モジュール135は改ざんされていると断定できる。
【0129】
このように、検知モジュール135は、改ざんされた異常な検知モジュールであると断定できる。
図20に戻り、判断部210は、異常な検知モジュールと特定した検知モジュールの無効化処理を実行するかを判断する(S2205)。無効化処理を実行しないと判断した場合(S2205でNO)、検証処理を終了する。無効化処理を実行すると判断した場合(S2205でYES)、異常な検知モジュールの無効化処理を実行する(S2206)。
【0130】
(d)無効化処理の動作
図24のシーケンス図を用いて、無効化処理の詳細について説明する。
ここでは、検知モジュール135が改ざんされ、それを検知モジュール134が検出した場合の処理を例に、無効化処理の動作の詳細を説明する。
【0131】
判断部210は、改ざんされた検知モジュールの識別情報と共に、モジュール無効化部220へ無効化の指示を出力する(S2901)。
モジュール無効化部220は、検知モジュール134へ、改ざんされた検知モジュール135の無効化を依頼する(S2902)。
【0132】
検知モジュール134は、モジュール無効化部220から、検知モジュール135の無効化依頼を受信すると(S2902)、モジュール無効化部220に対し、検知モジュール135を無効化するためのアクセス情報取得鍵の送付を依頼する(S2903)。更に、検知モジュール134は、アクセス制御モジュール140へ、検知モジュール135を無効化するためのアクセス情報の取得を依頼する(S2904)。
【0133】
モジュール無効化部220は、アクセス情報取得鍵の送付依頼を受信すると(S2903)、検知モジュール134が改ざんされたと判定されていない検知モジュールか否か、及び、依頼されたアクセス情報取得鍵が不正な(改ざんされた)検知モジュール135を無効化するためのアクセス情報取得鍵か否かを確認する(S2905)。この確認は、判断部210からモジュール無効化部220へ通知された検知モジュールの情報を利用して行う。
【0134】
確認した結果、改ざんされた検知モジュール135からの依頼であったり、或いは、改ざんされていない検知モジュール131、132、133に対するアクセス情報取得鍵の取得依頼であったりする場合には(S2905で「正しくない」)、モジュール無効化部220は、無効化処理を停止する。
【0135】
確認した結果、正しい依頼であれば(S2905で「正しい」)、モジュール無効化部220は、依頼してきた検知モジュール134へ検知モジュール135を無効化するためのアクセス情報取得鍵を送付する(S2906)。
【0136】
検知モジュール134は、モジュール無効化部220からアクセス情報取得鍵を受信し(S2906)、さらに、アクセス制御モジュール140から暗号化されたアクセス情報を受信する(S2907)。検知モジュール134は、アクセス情報取得鍵と暗号化されたアクセス情報とから、アクセス情報を取得する(S2908)。取得したアクセス情報は、検知モジュール135を消去するための専用ドライバである。検知モジュール134は、専用ドライバを利用して、改ざんされた異常な検知モジュール135を消去する(S2909)。
【0137】
検知モジュール134は、無効化処理が終了すると、アクセス情報取得鍵、暗号化されたアクセス情報、及び、アクセス情報等を消去し、モジュール無効化部220へ完了通知を送信する(S2910)。モジュール無効化部220は、検知モジュール134から完了通知を受信したら(S2910)、判断部210へ無効化処理の完了通知を送信する(S2911)。
【0138】
上記実施の形態により、検知モジュール群130内の複数の検知モジュールが相互に改ざん検出を行うので、改ざんされた異常な検知モジュールを検出することが可能となり、検知システムの信頼性を高めることができる。また、改ざんされた異常な検知モジュールを無効化するので、改ざんされた異常な検知モジュールによる不正動作を防止することができる。これにより、検知モジュールが不正動作をしたとしても、保護制御モジュール120の情報を漏洩することがないため、システムの安全性を一層高めることができる。また、検出結果保持部605で改ざんされたという検出結果を保持することにより、検知モジュール群130内のすべての検知モジュールが一度に改ざん検出を行わなくても、矛盾があるか否かで異常な検知モジュールを特定することができるため、機器内の処理の負荷を軽減することができる。
【0139】
2.実施の形態2
本発明に係る別の実施の形態2における検知システム11を説明する。
上記の実施の形態1では、異常な検知モジュールを無効化するために、改ざんされていると判定されていない検知モジュールを使用した。しかし、改ざんされていると判定されていない検知モジュールであっても、異常である可能性があるため、正しく異常な検知モジュールを無効化できるとは限らない。
【0140】
そこで、実施の形態2では、検証処理において、異常な検知モジュールを特定するだけでなく、正常な検知モジュールを特定する。
る。
【0141】
2.1 検知システム11の構成
ここでは、検知システム11について、より具体的に説明する。
(1)全体構成
実施の形態2に係る検知システム11の構成について、図25を用いて説明する。
【0142】
同図に示すように、検知システム11は、情報処理装置としての機器100と、管理装置200aとから構成される。そして、機器100及び管理装置200aは、ネットワークを介して接続されている。
【0143】
管理装置200aは、判断部210、モジュール無効化部220、監視パターン更新部230及び通信部250から構成される。
図25において、実施の形態1と同様の機能を有する構成要素には、図1と同一の符号を付し、詳細な説明を省略する。以下では、検知システム11の特徴的な構成要素及び処理について詳細に説明する。
【0144】
(2)監視パターン更新部230の構成
監視パターン更新部230は、機器100内部の検知モジュール群130の監視パターンを更新する場合に、判断部210による監視パターン更新の指示に応じて、検知モジュール群130内の各検知モジュールの監視パターンを更新するために、無効化処理のための監視パターンを生成し、生成した監視パターンを各検知モジュールへ送信する。
【0145】
監視パターン更新部230は、図26に示すように、受信部801、送信部802、監視パターン生成部803及び制御部804から構成されている。
(a)受信部801
受信部801は、判断部210から、監視パターンの生成を示す生成指示及び指示した時点での検知モジュールリストを受信する。検知モジュールリストは、機器100が有する検知モジュール群130に含まれる全ての検知モジュールをそれぞれ識別する識別番号を含んでいる。また、無効化すべき検知モジュールを識別する識別番号を受信する。
【0146】
受信部801は、受信した監視パターンの生成指示を制御部804へ出力する。また、受信した検知モジュールリストを、制御部804を介して、監視パターン生成部803へ出力する。また、無効化すべき検知モジュールを識別する識別番号を、制御部804を介して、監視パターン生成部803へ出力する。
【0147】
(b)監視パターン生成部803
監視パターン生成部803は、受信部801から、制御部804を介して、検知モジュールリストを受信する。
【0148】
検知モジュールリストを受信すると、監視パターン生成部803は、受信した検知モジュールリストを用いて、どの検知モジュールがどの検知モジュールを監視するかを決定し、機器100が有する検知モジュール群130における全体の監視パターンを生成する。
【0149】
特に、監視パターン生成部803は、受信した無効化すべきモジュールを識別する識別番号を用いて、無効化すべき検知モジュール以外の検知モジュールが一方向に循環して監視をするように、循環監視パターン(循環型の監視パターンとも呼ぶ)を生成する。
【0150】
なお、循環監視パターンの具体例については、後述する。
なお、監視パターン生成部803は、全体の監視パターンとして、例えば、すべての検知モジュールが他のすべての検知モジュールを監視するように、決定してもよい。
【0151】
(c)送信部802
送信部802は、通信部250及びネットワークを介して、機器100へ検知モジュール毎の監視パターンを送信する。また、判断部210へ監視パターンの生成及び送信の終了を通知する。
【0152】
(d)制御部804
制御部804は、受信部801から、監視パターンの生成指示を受信する。
監視パターンの生成指示を受信すると、制御部804は、監視パターン生成部803に対して、機器100が有する検知モジュール群130における全体の監視パターンを生成し、検知モジュール毎の監視パターンを生成し、機器100へ検知モジュール毎の監視パターンを送信して、機器100において監視パターンの更新処理をさせるように、制御する。
【0153】
(3)検証処理の動作
図27及び図28は、検証処理の動作を示すフローチャートである。
図27のS2211からS2215までの動作は、実施の形態1における図20のS2201からS2205までの動作にそれぞれ対応し同様の動作であり、無効化処理(S2217)は、実施の形態1の無効化処理(S2206)と同様の動作であるため、説明を省略する。以下で、ステップS2216の処理について説明する。
【0154】
判断部210は、異常な検知モジュールと特定した検知モジュールの無効化処理を実行するかを判断する(S2215)。無効化処理を実行しないと判断した場合(S2215でNO)、検証処理を終了する。無効化処理を実行すると判断した場合(S2215でYES)、正常な検知モジュールを特定する正常モジュール特定処理を行う(S2216)。
【0155】
(4)正常モジュール特定処理
図29及び図30は、正常モジュール特定処理の動作を示すフローチャートである。
判断部210は、無効化処理を実行すると判断し、監視パターン更新部230へ監視パターン生成指示を、検知モジュールリスト及び無効化すべき検知モジュールの識別番号と共に送信する(S2301)。ここでは、検知モジュール135を無効化すると判断した例を用いて説明する。
【0156】
監視パターン更新部230は、判断部210から、監視パターンの生成を示す生成指示、検知モジュールリスト及び無効化すべき検知モジュールを識別する識別番号(ここでは、検知モジュール135の識別番号)を受信する。検知モジュールリスト及び検知モジュール135の識別番号から、検知モジュール135以外の検知モジュール内での循環監視パターンを生成する(S2302)。
【0157】
循環監視パターンとは、一方向に循環して改ざん検出処理を行う複数の検知モジュールについて、監視対象(検証対象)のモジュールに関する情報を記述したものである。具体的には、循環監視パターンには、モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等が記述されている。
【0158】
図31に示す具体例を用いて説明する。
一方向に循環して改ざん検出処理を行う一群の検知モジュールとは、図31に示す具体例においては、検知モジュール131、検知モジュール132、検知モジュール133及び検知モジュール134である。図31の矢印A2100、A2101、A2102及びA2103が示すように、検知モジュール131が検知モジュール132を検証し、検知モジュール132が検知モジュール133を検証し、検知モジュール133が検知モジュール134を検証し、検知モジュール134が検知モジュール131を検証する関係を有している。
【0159】
これらの検知モジュール131、132、133及び134における監視の形態の情報を記述したものが、循環監視パターンである。
図29に戻り、監視パターン更新部230は、各検知モジュールへ監視パターンを送信する(S2303)。
【0160】
各検知モジュールは監視パターンを受信する(S2304)。さらに、各検知モジュールは受信した監視パターンを保持している監視パターンに上書きすることにより更新する(S2305)。更新が完了すると、完了通知を監視パターン更新部230へ送信する(S2306)。
【0161】
監視パターン更新部230は、各検知モジュールから完了通知を受信すると(S2306)、判断部210へ監視パターン更新の完了通知を送信する(S2307)。
監視パターンを更新した、各検知モジュールは、更新された監視パターンにしたがって、改ざん検出を実行する。
【0162】
検知モジュール131は、検知モジュール132の改ざん検出を行い(S2308)、改ざん検出結果を判断部210へ送信する(S2309)。
検知モジュール132は、検知モジュール133の改ざん検出を行い(S2310)、改ざん検出結果を判断部210へ送信する(S2311)。
【0163】
検知モジュール133は、検知モジュール134の改ざん検出を行い(S2312)、改ざん検出結果を判断部210へ送信する(S2313)。
検知モジュール134は、検知モジュール131の改ざん検出を行い(S2314)、改ざん検出結果を判断部210へ送信する(S2315)。
【0164】
判断部210は各検知モジュールから、改ざん検出結果を受信し、特定処理を行う(S2316)。
(a)特定処理の動作
図32は、特定処理の動作を示すフローチャートである。
【0165】
判断部210は、各検知モジュールから受信したすべての改ざん検出結果が「改ざんされていない(正常)」であるかを判断する(S2401)。すべての改ざん検出結果が「改ざんされていない(正常)」である場合(S2401でYES)、すべての検知モジュールは改ざんされていない正常な検知モジュールであると特定し(S2402)、特定処理を終了する。
【0166】
すべての改ざん検出結果が「改ざんされていない(正常)」でない場合(S2401でNO)、改ざん検出結果に矛盾があるかを判定する(S2403)。改ざん検出結果に矛盾がない場合(S2403でNO)、機器を停止する。改ざん検出結果に矛盾がある場合(S2403でYES)、改ざん検出結果に矛盾がある検知モジュールを異常な検知モジュールと特定する(S2404)。
【0167】
ここで、改ざん検出結果の矛盾について、図33に示す例を用いて説明する。
図33によれば、○印2110、○印2111及び○印2112に表されるように、検知モジュール131は検知モジュール132を、検知モジュール132は検知モジュール133を、検知モジュール133は検知モジュール134を「改ざんされていない(正常)」と判定している。しかし、×印2113に表されるように、検知モジュール134は検知モジュール131を「改ざんされている(異常)」と判定している。
【0168】
ここで、検知モジュール131が正常な検知モジュールであると仮定すると、正常な検知モジュール131が「改ざんされていない(正常)」と判定している検知モジュール132は正常であり、正常な検知モジュール132が「改ざんされていない(正常)」と判定している検知モジュール133は正常であり、正常な検知モジュール133が「改ざんされていない(正常)」と判定している検知モジュール134は正常であるはずである。しかし、正常な検知モジュール134が、正常な検知モジュール131に対して、「改ざんされている(異常)」と判定しているため、検知モジュール131は正常であるという仮定に矛盾が発生する。このため、検知モジュール131が正常な検知モジュールであるとする仮定は、誤りであり、検知モジュール131は改ざんされている異常な検知モジュールであると特定することができる。
【0169】
異常な検知モジュールと特定した後、再び、正常モジュール特定処理を行う。
以上説明したように、循環監視パターンを用いて、すべての改ざん検出結果が「改ざんされていない(正常)」であると判定された場合に、すべての検知モジュールは改ざんされていない正常な検知モジュールであると特定することができる。また、循環監視パターンを用いることにより、最小限の監視数により、検知モジュールの監視を行うことができる。
【0170】
3.実施の形態3
本発明に係る実施の形態3としてのソフトウェア更新システム12について説明する。
ソフトウェア更新システム12においては、検知処理で保護制御モジュール120の改ざんを検出した場合、保護制御モジュール120を新しい保護制御モジュール121へ更新する。ソフトウェア更新システムにおける保護制御モジュール120の更新の方法は、特許文献3に詳しく記載されている方法に本発明を適用した方法である。ここでは、特許文献3における更新モジュールの更新機能を検知モジュールに含める。
【0171】
3.1 ソフトウェア更新システム12の構成
(1)全体構成
ソフトウェア更新システム12の構成について、図34を用いて説明する。
【0172】
同図に示すように、ソフトウェア更新システム12は、情報処理装置としての機器100aと、管理装置200bとから構成される。そして、機器100a及び管理装置200bは、ネットワークを介して接続されている。
【0173】
管理装置200bは、判断部210、モジュール無効化部220、監視パターン更新部230、更新用ソフトウェア配布部240及び通信部250から構成される。また、機器100aは、検知モジュール群130a、保護制御モジュール120a、アクセス制御モジュール140、アプリ110及びアプリ111を含んで構成されている。
【0174】
図34において、実施の形態2と同様の機能を有する構成要素には、図2と同一の符号を付し、詳細な説明を省略する。以下では、ソフトウェア更新システム12の特徴的な構成要素及び処理について詳細に説明する。
【0175】
(2)機器100aの構成
(a)保護制御モジュール120aの構成
ここでは、保護制御モジュール120aの詳細について説明する。
【0176】
図35は、保護制御モジュール120aの機能的な構成を示す機能ブロック図である。
同図に示すように、保護制御モジュール120aは、図3の保護制御モジュール120の構成に加え、暗復号鍵分散部308、証明書生成部309、暗復号鍵復元部310、及び暗復号鍵生成部311から構成される。
【0177】
暗復号鍵分散部308は、初期設定時や次ラウンド準備時に、暗復号鍵から秘密分散法を用いて分散情報を生成する。
証明書生成部309は、暗復号鍵から生成された分散情報を復元したときに、正しく復元できたか否かを検証するために用いられる証明書を生成する。
【0178】
暗復号鍵復元部310は、配置情報に基づいて、各検知モジュールから、各検知モジュールに配布されていた分散情報を取得する。そして、暗復号鍵復元部310は、取得した分散情報から暗復号鍵を復元し、復元した暗復号鍵を復号ロード部304に送信する。
【0179】
暗復号鍵生成部311は、アプリ110、111を暗復号するための暗復号鍵を生成する。
(b)検知モジュール群130aの構成
検知モジュール群130aは、検知モジュール131a、132a、133a、134a、135aから構成されている。ここでは、検知モジュール131aの詳細について説明し、その他の検知モジュール132a、133a、134a、135aについての説明を省略する。
【0180】
図36は、検知モジュール131aの機能的な構成を示す機能ブロック図である。他の検知モジュールも同様の構成を有する。
同図に示すように、検知モジュール131aは、図4の検知モジュール131の構成に加え、更新部407、認証部408、分散情報保持部409から構成される。
【0181】
更新部407は、制御部403の制御に基づき、管理装置200bと連携して、機器100a内部のソフトウェア、具体的には、アプリ110及び111、保護制御モジュール120a、検知モジュール131a、132a、133a、134a、135aを更新する。
【0182】
認証部408は、検知モジュールの認証鍵対(認証秘密鍵(認証私有鍵と呼ぶ事もある。)及び認証公開鍵)を保持し、他のモジュールとの認証を行う。
分散情報保持部409は、保護制御モジュール120aがアプリ110、111の暗復号処理に利用する暗復号鍵から生成した分散情報(share)と、保護制御モジュール120aが分散情報を配布したときの配置情報を保持する。配置情報は、どの分散情報をどの検知モジュールに配布したかを記述した情報である。
【0183】
署名方式に関しては非特許文献1の171ページから187ページに、証明書に関しては非特許文献2に詳しく説明されている。また、分散情報に関しては特許文献2に詳しく説明されている。
【0184】
(c)更新用ソフトウェア配布部240
図37は、更新用ソフトウェア配布部240の機能的な構成を示す機能ブロック図である。
【0185】
同図に示すように、更新用ソフトウェア配布部240は、受信部901、送信部902、制御部903、認証部904、暗号鍵生成部905、暗号処理部906、検知モジュール選択部907、証明書生成部908、署名秘密鍵保持部909、更新用ソフトウェア保持部910及び暗号鍵保持部911から構成される。
【0186】
受信部901は、検知モジュール131a、132a、133a、134a、135aから保護制御モジュール120aに対する改ざん検出結果、及び検知モジュール間の相互監視結果を受信する。
【0187】
送信部902は、機器100aのアプリ110、111、保護制御モジュール120aを更新する必要がある場合に、検知モジュール131a、132a、133a、134a、135aへ、更新処理の依頼、更新用ソフトウェア、復号に必要な鍵などのデータを送信する。
【0188】
制御部903は、更新用ソフトウェア配布部240の各構成要素を制御する。
認証部904は、検知モジュール131a、132a、133a、134a、135a、及び保護制御モジュール120aと相互認証を行う。
【0189】
暗号鍵生成部905は、更新用ソフトウェアを検知モジュール131a、132a、133a、134a、135aへ送信するときに使用する暗号鍵を生成する。
暗号処理部906は、暗号鍵生成部905が生成した暗号鍵を用いて、更新用ソフトウェアを暗号化する。また、暗号処理部906は、各検知モジュール固有の鍵を用いて、暗号鍵を暗号化する。
【0190】
暗号鍵及び更新用ソフトウェアは、検知モジュール131a、132a、133a、134a、135aへ一度にすべてが送信されるのではなく、更新処理の中で、それぞれのデータが必要になったタイミングで、それぞれ各検知モジュールへ送信される。
【0191】
検知モジュール選択部907は、保護制御モジュール120aを更新する場合に、更新処理に使用する検知モジュールを選択する。暗号処理部906は、更新用の保護制御モジュールの暗号化に使用した暗号鍵を、検知モジュール選択部907が選択した検知モジュール固有の鍵を用いて暗号化する。そして、送信部902は、検知モジュール選択部907が選択した検知モジュールへ、暗号鍵及び更新用の保護制御モジュールを送付する。
【0192】
証明書生成部908は、検知モジュール131a、132a、133a、134a、135aの認証公開鍵に対して署名秘密鍵(署名私有鍵とも呼ぶ)を用いて認証証明書を生成する。また、証明書生成部908は、更新用の保護制御モジュールに対して署名秘密鍵を用いて、機器100にて、保護制御モジュールが正しく更新されたか否かを検証するための更新検証証明書を生成する。
【0193】
署名秘密鍵保持部909は、証明書生成部908が証明書を生成するときに用いる署名秘密鍵を保持する。
更新用ソフトウェア保持部910は、保護制御モジュール120aが攻撃された場合に更新するための更新用の保護制御モジュールを保持する。
【0194】
暗号鍵保持部911は、暗号鍵生成部905が生成した暗号鍵及び暗号処理部906により暗号化された暗号鍵を保持する。
3.2 ソフトウェア更新システム12の動作
続いて、ソフトウェア更新システム12の動作を説明する。
【0195】
(1)全体動作
ソフトウェア更新システム12は、上記実施の形態の初期設定処理(図10のS100)、検知処理(図10のS200)に加えて、次に示す4つの処理−解析・判断処理、相互認証処理、回復処理、次ラウンド準備処理を行う。図38はソフトウェア更新システム12の動作を示すフローチャートである。
【0196】
ソフトウェア更新システム12は、初期設定処理(S101)を行い、検知処理(S200)を行う。
次に、ソフトウェア更新システム12は、図13のS201で保護制御モジュール120aの改ざんが検出された場合に、保護制御モジュール120aを解析し、更新する必要があるか否か判断する解析・判断処理を行う(S300)。
【0197】
次に、ソフトウェア更新システム12は、検知モジュール131a、132a、133a、134a、135aと更新用ソフトウェア配布部240とが互いに正しいソフトウェアであるか否かを確認するための相互認証処理を行う(S400)。
【0198】
次に、ソフトウェア更新システム12は、回復処理を行う(S500)。
回復処理とは、検知モジュール群130aに含まれる検知モジュール間で相互に改ざん検出処理を行った後、更新用の保護制御モジュールを機器100aへインストールし、そして、機器100aにおいて、検知モジュール131a、132a、133a、134a、135aへ埋め込まれた分散情報を用いて、保護制御モジュールを更新する処理である。
【0199】
その後、ソフトウェア更新システム12は、次に保護制御モジュールの更新が必要となる場合に備えて、更新に必要な鍵データや分散情報を生成し、各検知モジュールに埋め込む次ラウンド準備処理を行う(S600)。その後、ソフトウェア更新システム12は、S200の検知処理へ戻り、処理を続ける。
【0200】
(2)初期設定処理の動作
ここでは、図39に示すシーケンス図及び図40に示すフローチャートを用いて、ソフトウェア更新システム12の初期設定処理(図38のS101)の詳細について説明する。
【0201】
図39におけるS1201からS1202の動作は、実施の形態1における図11のS1001からS1002の動作にそれぞれ対応し同様の動作であるため、説明を省略する。
【0202】
機器100aは、機器の初期化後、保護制御モジュール120a、及び、検知モジュール131a、132a、133a、134a、135aに対して、初期化指示を出力する(S1203、S1204)。
【0203】
保護制御モジュール120aは、暗復号鍵から秘密分散法を用いて分散情報を生成する(S1205)。なお、保護制御モジュール120aは、分散情報保持部409を備える検知モジュールの数と同数の分散情報を生成する。検知モジュール131a、132a、133a、134a、135aがすべて分散情報保持部409を備えている場合、保護制御モジュール120aは、5つの分散情報を生成する。
【0204】
更に、保護制御モジュール120aは、署名秘密鍵を用いて、暗復号鍵証明書を生成する(S1206)。暗復号鍵証明書は、暗復号鍵の復元時に、暗復号鍵が正しく復元できたか否かを確認するための証明書である。
【0205】
保護制御モジュール120aは、生成した分散情報と暗復号鍵証明書とを、検知モジュール131a、132a、133a、134a、135aへ送信する(S1207、S1208)。
【0206】
なお、保護制御モジュール120aは、検知モジュール131a、132a、133a、134a、135aが、それぞれ異なる分散情報の組を保持するように、各検知モジュールに分散情報の組を送信する。更に、保護制御モジュール120aは、どの検知モジュールへどの分散情報を送信したかを示す配置情報を、各検知モジュールへ送信する。各検知モジュールに送信される配置情報は、同一の情報である。
【0207】
暗復号鍵から秘密分散法を用いて分散情報を生成する方法や、分散情報を検知モジュールへ送信する方法については、特許文献2の47ページから49ページに詳しく説明されている。特許文献2における秘密鍵dを本実施の形態の暗復号鍵に対応させ、認証局装置を保護制御モジュール120aに対応させ、分散情報保持装置を検知モジュール131a、132a、133a、134a、135aに対応させることで、特許文献2と同じ方法を用いることができる。
【0208】
保護制御モジュール120aから分散情報、配置情報及び暗復号鍵証明書を受信した各検知モジュールは、検知モジュール初期化処理を行う(S1209)。
(a)検知モジュール初期化処理の動作
図40は、検知モジュール初期化処理(図39のS1209)の動作を示すフローチャートである。
【0209】
図40のS1302からS1305の動作は、実施の形態1における図12のS1101からS1104の動作にそれぞれ対応し同様の動作であるため、説明を省略する。
検知モジュール131aは、保護制御モジュール120aから分散情報、配置情報及び暗復号鍵証明書を受信し、受信した各情報を分散情報保持部409に保持する(S1301)。
【0210】
(3)検知処理の動作
図38のS200の検知処理は、実施の形態1や実施の形態2の検知処理の動作と同様であるので、ここでは省略する。
【0211】
(4)解析・判断処理の動作
続いて、図41のシーケンス図を用いて、解析・判断処理(図38のS300)の詳細について説明する。なお、図41では、検知モジュール131a、132a、133a、134a、135aのそれぞれが個別に行う処理を、検知モジュール群130aが行う処理としてまとめて記載している。
【0212】
検知処理において、判断部210が各検知モジュールから保護制御モジュール120aの改ざん検出結果を受信すると、判断部210は、受信した改ざん検出結果に基づいて、保護制御モジュール120aが正常であるか異常であるか(改ざんされているか否か)を判定する(S3001)。
【0213】
判定方法の一例として、例えば、所定数の又は所定数以上の検知モジュールが改ざんを検出した場合には、保護制御モジュール120aは異常である(改ざんされている)と判定し、また、所定数未満の検知モジュールが改ざんを検出した場合には、保護制御モジュール120aは正常である(改ざんされていない)と判定する。前記所定数は、検知モジュール群130aに含まれる検知モジュールの過半数としてもよい。また、検知処理のS2216と同様の正常モジュール特定処理を行い、正常と特定した検知モジュールが保護制御モジュール120aの改ざんを検出した場合、保護制御モジュール120aは異常である(改ざんされている)と判定し、正常と特定した検知モジュールが保護制御モジュール120aの改ざんを検出しなかった場合には、保護制御モジュール120aは正常である(改ざんされていない)と判定するとしてもよい。
【0214】
保護制御モジュール120aが改ざんされていると判定した場合(S3001で「改ざんされている」)、判断部210は、保護制御モジュール120aを回復する必要があるか否かを判断するために、検知モジュール群130aに対して、保護制御モジュール120aのどの部分が改ざんされたかなどの改ざん情報の通知を依頼する(S3002)。
【0215】
検知モジュール群130aは、改ざん情報の通知を依頼されると、改ざん情報を収集して(S3003)、判断部210へ通知する(S3004)。
判断部210は、改ざん情報に基づいて、保護制御モジュール120aを回復するか、機器100aをリボークするか、または、何もしないかを判断する(S3005)。
【0216】
保護制御モジュール120aを回復する場合(S3005で「回復する」)、判断部210は、更新用の保護制御モジュールを準備し(S3006)、検知モジュール群130aに、更新処理の開始を指示する(S3007)。また、機器100aをリボークする場合には(S3005で「リボーク依頼」)、アプリ110、111にサービスを提供しているサーバに対して、機器100aをリボークするように依頼する(S3008)。何もしない場合(S3005で「何もしない」)、検知処理へ戻る。
【0217】
保護制御モジュール120aが正常である(改ざんされていない)と判定した場合(S3001で「改ざんされていない」)は、検知処理へ戻る。
(5)相互認証処理の動作
次に、図42及び図43のシーケンス図を用いて、ソフトウェア更新システム12による相互認証処理(図38のS400)の詳細について説明する。
【0218】
管理装置200bの判断部210が、解析・判断処理において、保護制御モジュール120aを回復する必要があると判断した場合、判断部210は、更新用ソフトウェア配布部240へ、保護制御モジュール120aの回復を指示する。
【0219】
更新用ソフトウェア配布部240は、検知モジュール131a、132a、133a、134a、135aへ更新処理の開始を指示した後、各検知モジュールとの間で、それぞれ1対1の相互認証処理を行う。これにより、機器100aが不正な管理装置と接続したり、管理装置200bが不正な機器と接続することを防止する。なお、相互認証処理において、更新用ソフトウェア配布部240は、署名秘密鍵及び署名公開鍵を使用し、各検知モジュールは、認証鍵対(認証秘密鍵及び認証公開鍵)を使用する。
【0220】
図42は、検知モジュール131aが更新用ソフトウェア配布部240を認証するときのシーケンス図である。なお、検知モジュール132a、133a、134a、135aも、図42の検知モジュール131aと同様に動作し、更新用ソフトウェア配布部240を認証する。
【0221】
検知モジュール131aは、乱数生成器を用いて乱数(チャレンジデータ)を生成し(S4001)、生成したチャレンジデータを更新用ソフトウェア配布部240へ送信する(S4002)。この時、検知モジュール131aを識別するための検知モジュールの識別子を、チャレンジデータと共に送信する。更新用ソフトウェア配布部240は、受信したチャレンジデータに署名秘密鍵を用いて署名データを生成し(S4003)、生成した署名データをレスポンスデータとして、検知モジュール131aへ返信する(S4004)。
【0222】
検知モジュール131aは、更新用ソフトウェア配布部240からレスポンスデータを受信すると(S4005)、署名公開鍵を用いて、レスポンスデータが、チャレンジデータの署名データと一致するか否か検証する(S4006)。
【0223】
検証の結果、レスポンスデータが正しく、更新用ソフトウェア配布部240が正当なモジュールである場合(S4007で「正しい」)、検知モジュール131aは、処理を継続する。レスポンスデータが正しくなく、更新用ソフトウェア配布部240が不正なモジュールである場合(S4007で「正しくない」)、検知モジュール131aは、エラーを出力し、処理を停止する(S4008)。
【0224】
次に、更新用ソフトウェア配布部240が、検知モジュール131a、132a、133a、134a、135aを認証する。
図43は、更新用ソフトウェア配布部240が各検知モジュール(一例として、検知モジュール131a)を認証するときのシーケンス図である。
【0225】
更新用ソフトウェア配布部240は、チャレンジデータを送信してきた各検知モジュールに対して、乱数生成器を用いてそれぞれ異なる乱数(チャレンジデータ)を生成し(S4101)、生成したチャレンジデータを、各検知モジュールへ個別に送信する(S4102)。
【0226】
各検知モジュールは、受信したチャレンジデータに認証秘密鍵を用いて署名データを生成し(S4103)、生成した署名データをレスポンスデータとして更新用ソフトウェア配布部240へ返信する(S4104)。
【0227】
このとき、各検知モジュールは、レスポンスデータと共に認証公開鍵と認証鍵証明書とを更新用ソフトウェア配布部240へ送信する。
更新用ソフトウェア配布部240は、それぞれの検知モジュールからレスポンスデータ、認証公開鍵及び認証鍵証明書を受信する(S4104)。更新用ソフトウェア配布部240は、認証鍵証明書が、自身が発行した証明書であるか否か検証し、更に、認証鍵証明書を用いて、認証公開鍵の正当性を検証する(S4105)。
【0228】
認証鍵証明書及び認証公開鍵が不正である場合(S4105で「鍵が正しくない」)、更新用ソフトウェア配布部240は、処理を停止する(S4106)。
認証鍵証明書及び認証公開鍵が正当であれば(S4105で「証明書及び鍵が正しい」)、更新用ソフトウェア配布部240は、認証公開鍵を用いて、受信したレスポンスデータがチャレンジデータの署名データと一致するか否か検証する(S4107)。
【0229】
次に、更新用ソフトウェア配布部240は、正しいレスポンスデータを返した検知モジュール(正当な検知モジュール)を用いて回復処理を行うかを判断する(S4108)。ここでは、正しいレスポンスデータを返した検知モジュール(正当な検知モジュール)の数が、予め設定されている回復処理に必要な数以上であるかを判断する。
【0230】
回復処理を行わない場合(S4108でNO)、更新用ソフトウェア配布部240は、処理を停止する(S4106)。回復処理を行う場合(S4108でYES)、相互認証処理を終了し、回復処理に移る。
【0231】
また、更新用ソフトウェア配布部240は、相互認証処理において、正当性が確認されたすべての検知モジュールの検知モジュール識別子を記載した認証リストを作成する。そして、これ以降の回復処理では、認証リストに識別子が記載されている検知モジュールのみを利用する。
【0232】
(6)回復処理の動作
続いて、図44から51を用いて、回復処理(図38のS500)の詳細について説明する。回復処理は、上述した相互認証処理において、相互認証が成功した場合に、改ざんされた保護制御モジュール120aを、新しい更新用の保護制御モジュールへ更新する処理である。
【0233】
図44は、回復処理時の動作を示すフローチャートである。
先ず、各検知モジュール131a、132a、133a、134a、135aが、相互監視処理を行う(S5000)。相互監視処理では、各検知モジュールが、他の検知モジュールの改ざん検出処理を実行する。
【0234】
さらに、更新用保護制御モジュールを用いて、保護制御モジュール120aを更新する更新処理を行う(S5100)。
そして、暗号化されたアプリ110、111を再暗号化する再暗号化処理を行う(S5200)。
【0235】
(a)相互監視処理
ここでは、図45のシーケンス図を用いて、相互監視処理(図44のS5000)の詳細について説明する。
【0236】
相互監視処理では、検知モジュール131a、132a、133a、134a、135aが、検知モジュール群130a内の他の検知モジュールに対して改ざん検出処理を実行する。相互監視処理において、どの検知モジュールに対して改ざん検出処理を実行するかは、検知モジュールが保持する監視パターンに記述されている。監視パターンには、改ざん検出対象であるモジュールに関する情報(モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等)が記述されている。
【0237】
相互監視処理の監視パターンは、循環監視パターンを用いる。ここでは、検知モジュール131aが検知モジュール132aを検証し、検知モジュール132aが検知モジュール133aを検証し、検知モジュール133aが検知モジュール134aを検証し、検知モジュール134aが検知モジュール135aし、検知モジュール135aが検知モジュール131aを検証する循環監視パターンを例に説明する。
【0238】
検知モジュール131aは、検知モジュール132aの改ざん検出を行う(S5001)。改ざん検出結果を判断部210へ送信する(S5002)。
検知モジュール132aは、検知モジュール133aの改ざん検出を行う(S5003)。改ざん検出結果を判断部210へ送信する(S5004)。
【0239】
検知モジュール133aは、検知モジュール134aの改ざん検出を行う(S5005)。改ざん検出結果を判断部210へ送信する(S5006)。
検知モジュール134aは、検知モジュール135aの改ざん検出を行う(S5007)。改ざん検出結果を判断部210へ送信する(S5008)。
【0240】
検知モジュール135aは、検知モジュール131aの改ざん検出を行う(S5009)。改ざん検出結果を判断部210へ送信する(S5010)。
判断部210は各検知モジュールから、改ざん検出結果を受信する(S5011)。判断部210は、改ざんを検出した検知モジュールが存在するかを判定する(S5012)。改ざんを検出した検知モジュールが存在する場合(S5012でYES)、回復処理を停止する(S5013)。改ざんを検出した検知モジュールが存在しない場合(S5012でNO)、すべての検知モジュールは改ざんされていない正常な検知モジュールと特定し、処理を継続する。
【0241】
上記循環監視パターンで、検知モジュール間で相互監視をすることにより、すべての改ざん検出結果が「改ざんされていない(正常)」である場合、すべての検知モジュールが正常であると一度に特定することができる。これにより、効率的に相互監視処理を行うことができる。
【0242】
(b)更新処理
続いて、図46から図49のシーケンス図を用いて、更新処理(図44のS5100)の詳細について説明する。
【0243】
先ず、更新用ソフトウェア配布部240の証明書生成部908は、署名秘密鍵を用いて、更新検証証明書を生成する(S5101)。更新検証証明書は、新しい保護制御モジュールが正しくインストールできたか否か、各検知モジュール131a、132a、133a、134a、135aが確認するための証明書である。更新用ソフトウェア配布部240は、生成した証明書を、各検知モジュールへ送信する(S5102)。
【0244】
次に、更新用ソフトウェア配布部240の暗号鍵生成部905は、新しい保護制御モジュールを多重に暗号化するための暗号鍵を2つ(第1の鍵及び第2の鍵)生成する(S5103)。暗号処理部906は、第2の鍵を用いて新しい保護制御モジュールを暗号化し、暗号化新保護制御モジュールを生成する(S5104)。暗号処理部906は、暗号化新保護制御モジュールに対して、第1の鍵を用いてさらに暗号化し、多重暗号化新保護制御モジュールを生成する(S5105)。
【0245】
更新用ソフトウェア配布部240は、検知モジュール群130aから検知モジュールを一つ選択し(S5106)、選択した検知モジュールの識別子を判断部210に通知する。ここでは、一例として、検知モジュール131aを選択するものとする。
【0246】
更新用ソフトウェア配布部240は、選択した検知モジュール131aへ多重暗号化新保護制御モジュールを送信し(S5107)、更に、第1の鍵を送信する(S5108)。
【0247】
検知モジュール131aは、多重暗号化新保護制御モジュールと第1の鍵とを受信する(S5109)。検知モジュール131aは、第1の鍵を用いて、多重暗号化新保護制御モジュールを復号し、暗号化新保護制御モジュールを取得する(S5110)。そして、復号が終了すると、その旨を更新用ソフトウェア配布部240へ通知する(S5111)。
【0248】
更新用ソフトウェア配布部240は、復号終了通知を受信すると、検知モジュール群130aから、S5106で選択した検知モジュール131aとは異なる検知モジュールを一つ選択する(S5112)。ここでは、一例として、検知モジュール132aを選択するものとする。
【0249】
更新用ソフトウェア配布部240は、選択した検知モジュール132aに、第2の鍵を送信する(S5113)。さらに、更新用ソフトウェア配布部240は、検知モジュール131aに対して、S5110で取得した暗号化新保護制御モジュールを検知モジュール132aへ送信するよう依頼する(S5114)。
【0250】
検知モジュール131aは、更新用ソフトウェア配布部240からの依頼を受けて、暗号化新保護制御モジュールを検知モジュール132aへ送信する(S5115)。
検知モジュール132aは、更新用ソフトウェア配布部240から第2の鍵を受信し、検知モジュール131aから暗号化新保護制御モジュールを受信する(S5116)。そして、第2の鍵を用いて、暗号化新保護制御モジュールを復号し、新しい保護制御モジュールを取得する(S5117)。
【0251】
検知モジュール132aは、S5117で取得した新しい保護制御モジュールを保護制御モジュール120aに上書きし、更新する(S5118)。そして、検知モジュール132aは、更新の終了を他の検知モジュールへ通知する(S5119)。
【0252】
続いて、各検知モジュール131a、132a、133a、134a、135aのそれぞれは、事前に受信した更新検証証明書を用いて、保護制御モジュールが正しく更新されたか否か検証する(S5120)。さらに、検証結果を更新用ソフトウェア配布部240へ通知する(S5121)。
【0253】
更新用ソフトウェア配布部240は、各検知モジュールから送信された検証結果通知を受信する(S5121)。さらに、更新用ソフトウェア配布部240は、保護制御モジュールが正しく更新されたかを判定する(S5122)。正しく更新されていないと判定する場合(S5122でNO)、更新用ソフトウェア配布部240は、機器100を停止させる(S5123)。
【0254】
正しく更新されている場合(S5122でYES)、更新用ソフトウェア配布部240は、更新処理終了を各検知モジュールへ通知する(S5124)。
各検知モジュールは、更新処理終了通知を受信すると(S5124)、新しい保護制御モジュールのMAC値を生成し、生成したMAC値と保護制御モジュールの識別子との組を、MAC値テーブルに書き込む(S5125)。
【0255】
以上説明したように、更新処理では、更新用ソフトウェア配布部240が更新用の新保護制御モジュールを複数の鍵を用いて多重に暗号化し、検知モジュール群130aへ送信する。検知モジュール群130aは、受信した新保護制御モジュールで、保護制御モジュール120aを更新する。
【0256】
このとき、更新用ソフトウェア配布部240は、多重に暗号化された新保護制御モジュールを復号するための複数の鍵を、検知モジュール群130aに送信するタイミングを制御することにより、攻撃者が暗号化されていない新保護制御モジュールを入手することを困難にする。
【0257】
(c)相互監視処理と更新処理との関係
上述した相互監視処理と更新処理とは、互いに連携しながら実行される。
相互監視処理は、更新用ソフトウェア配布部240から、検知モジュール群130aに含まれる検知モジュールを送信先として、複数の鍵(第1の鍵及び第2の鍵)がそれぞれ送られる第1の時間帯、及び、検知モジュール群130aに含まれる検知モジュールにより、多重暗号化新保護制御モジュール及び暗号化新保護制御モジュールがそれぞれ復号される第2の時間帯において、それぞれ、定期的に実施される。
【0258】
相互監視処理を定期的に実施する際の時間間隔は、例えば、更新用の新保護制御モジュールが通信路を通して、管理装置200bから機器100aへ、完全に出力されるまでに要する時間より短い間隔である。完全に出力されるまでに1秒かかるのであれば、例えば、それより短い500ミリ秒間隔のタイミングで監視処理を実行する。
【0259】
ここでは、図50を用いて、相互監視処理と更新処理との連携動作について説明する。
先ず、機器100aは、管理装置200bから多重暗号化新保護制御モジュールが送付される前に(S5150の前に)、相互監視処理(相互監視1(S5160))を実施する。改ざんされた異常な検知モジュールを選択して、更新処理を行わないようにするためである。
【0260】
その後、機器100aは、管理装置200bにより送信された第1の鍵を検知モジュール131が受信する前に(S5151の前に)、相互監視処理(相互監視2(S5161))を実施し、機器100aが第1の鍵を受信する時に、異常な検知モジュールを選択していないことを確認する。
【0261】
さらに、検知モジュール131aが第1の鍵を受信し(S5151)、第1の鍵を用いて多重暗号化新保護制御モジュールを復号する間(S5152)、定期的に、検知モジュール131aによる復号処理を中断して、相互監視処理(相互監視3−1(S5162)、3−2(S5163))を実施する。これにより、復号処理中に、検知モジュール131a、132a、133a、134a、135aが攻撃されたとしても、暗号化新保護制御モジュールがすべて漏洩する前に検知モジュールが攻撃されたことを検出し、漏洩を防止することが可能となる。
【0262】
これ以降の処理は、上記と同様である。即ち、機器100aは、管理装置200bにより送信された第2の鍵を検知モジュール132aが受信する前に(S5154の前に)、相互監視処理(相互監視4(S5164))を実施し、機器100aが第2の鍵を受信する時に、異常な検知モジュールを更新処理において、選択していないことを確認する。
【0263】
さらに、検知モジュール132aが第2の鍵を受信し(S5154)、第2の鍵を用いて暗号化新保護制御モジュールを復号する間(S5155)、定期的に、検知モジュール132aによる復号処理を中断し、相互監視処理(相互監視5−1(S5165)、5−2(S5166))を実施する。最後に、相互監視処理(相互監視6(S5167))を実施する。その後、各検知モジュールから更新用ソフトウェア配布部240へ、検証結果通知が送信される(S5156)。
【0264】
これにより、新保護制御モジュールがすべて漏洩する前に検知モジュールが攻撃されたことを検出し、漏洩を防止することが可能となる。
ここで、相互監視処理において、検知モジュールに改ざんが検出された場合には、回復処理を停止する。これにより、管理装置200bは、第1の鍵や第2の鍵の送信を中止することが可能となり、攻撃者は、多重暗号化新保護制御モジュールを復号するための鍵を入手することが不可能となる。
【0265】
(d)再暗号化処理
続いて、図51のシーケンス図を用いて、再暗号化処理(図44のS5200)の詳細について説明する。
【0266】
ここでは、各検知モジュール131a、132a、133a、134a、135aをまとめて、検知モジュール群130aとしている。
先ず、更新された保護制御モジュール(図51の説明においては、更新前の保護制御モジュール120aと区別するために、「保護制御モジュール121」という。)が、各検知モジュール131a、132a、133a、134a、135aに対して、それぞれが保持している分散情報及び暗復号鍵証明書の送信を依頼する(S5201)。
【0267】
各検知モジュール131a、132a、133a、134a、135aは、保護制御モジュール121からの依頼を受けて、分散情報及び暗復号鍵証明書を送信する(S5202)。
【0268】
保護制御モジュール121は、各検知モジュール131a、132a、133a、134a、135aから分散情報及び暗復号鍵証明書を受信し(S5203)、受信した分散情報から更新前の保護制御モジュール120が使用していた暗復号鍵(ここでは、「旧暗復号鍵」という。)を復元する(S5204)。更に、保護制御モジュール121は、暗復号鍵証明書を用いて、旧暗復号鍵が正しく復元されたか否か検証する(S5205)。
【0269】
旧暗復号鍵が正しく復元されなかった場合(S5205でNO)、保護制御モジュール121は、異常な検知モジュールを炙り出す(言い換えると、どの検知モジュールが不正な分散情報を送信したか特定する)(S5206)。特定された異常な検知モジュールは、管理装置200bへ通知される。
【0270】
旧暗復号鍵が正しく復元された場合(S5205でYES)、保護制御モジュール121の暗復号鍵生成部311は、新しい暗復号鍵(ここでは、「新暗復号鍵」という。)を生成する(S5207)。そして、復号ロード部304は、旧暗復号鍵を用いて暗号化されたアプリ(110、111)を復号し、新暗復号鍵を用いてアプリ(110、111)を再暗号化する(S5208)。
【0271】
分散情報から旧暗復号鍵を復元する方法や異常な検知モジュールの特定方法については、特許文献2の50ページから52ページに詳しく説明されている。特許文献2における秘密鍵dを本実施形態の暗復号鍵に対応させ、認証局装置を本実施形態の保護制御モジュール121に対応させ、分散情報保持装置を検知モジュール131a、132a、133a、134a、135aに対応させることで、特許文献2と同じ方法が利用可能である。
【0272】
また、S5206において、異常な検知モジュールを特定するための方法として、実施の形態1における検知モジュール検知処理を用いてもよい。
(7)次ラウンド準備処理の動作
続いて、図52のシーケンス図を用いて、次ラウンド準備処理(図38のS600)の詳細について説明する。次ラウンド準備処理では、回復処理(図38のS500)の終了後、次の回復処理のための準備を行う。以下、具体的に説明する。
【0273】
まず、保護制御モジュール121は、新暗復号鍵から、秘密分散法を用いて分散情報を生成し(S6001)、更に、署名秘密鍵を用いて、新暗復号鍵証明書を生成する(S6002)。そして、保護制御モジュール121は、生成した分散情報と暗復号鍵証明書とを各検知モジュール131a、132a、133a、134a、135aへ送信する(S6003)。
【0274】
ここで、初期設定処理時と同様に、分散情報は、検知モジュールの数と同数が生成され、それぞれの検知モジュールが、異なる分散情報のペアを保持するように送信される。新暗復号鍵証明書は、各検知モジュール131a、132a、133a、134a、135aへ同じ証明書が送信される。
【0275】
各検知モジュール131a、132a、133a、134a、135aは、保護制御モジュール121から分散情報と新暗復号鍵証明書とを受信し、受信した分散情報と新暗復号鍵証明書とを分散情報保持部409に保持する(S6004)。
【0276】
上記実施の形態により、検知処理において保護制御モジュール120aの改ざんが検出された場合、改ざんされた保護制御モジュールを新しい保護制御モジュールに更新することで、システムの安全性を高めることができる。
【0277】
(その他の変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【0278】
(1)上記各実施の形態では、検知モジュールが5つの場合を説明しているが、これに限定するものではなく、複数の検知モジュールであればよい。
(2)上記各実施の形態では、検知処理の動作として、保護制御モジュール検知処理や検知モジュール検知処理を、複数回行うとしてもよい。
【0279】
(3)上記実施の形態では、検知モジュール検知処理の検証処理の動作として、図22に示す検出結果リスト6051を保持している場合、さらに、検知モジュール135により、検知モジュール134が「改ざんされていない」という改ざん検出結果が得られたとき、矛盾していると判定しているが、次のような場合も矛盾していると判定してもよい。
【0280】
図22に示す検出結果リスト6051は、検知モジュール134が、検知モジュール135の改ざん検出処理を行った結果、検知モジュール135が「改ざんされている」と判定したことを示している。その後、検知モジュール134が検知モジュール135の改ざん検出処理を行った結果、判断部210は、検出結果を受信する。図53は、再度、検知モジュール134が検知モジュール135の改ざん検出処理を行った検出結果を示している。この図に示す検出結果は、検知モジュール134が、検知モジュール135の改ざん検出処理を行った結果、検知モジュール135が「改ざんされていない」と判定していることを示している。このとき、判断部210は、検出結果リスト6051に検知モジュール134が、検知モジュール135の改ざん検出処理を行った結果、「改ざんされている」と判定したことを記憶しているため、検知モジュール134に対する改ざん検出結果は矛盾となる。つまり、監視元と監視先が同じである場合、以前の改ざん検出結果において、「改ざんされている」と判定し、新たに受信した改ざん検出結果が「改ざんされていない」と判定している場合、矛盾であると判定する。
【0281】
(4)上記実施の形態2では、正常モジュール特定処理の監視パターンとして、検知モジュール131が検知モジュール132を検証し、検知モジュール132が検知モジュール133を検証し、検知モジュール133が検知モジュール134を検証し、検知モジュール134が検知モジュール131を検証しているが、これに限定するものではなく、一方向に循環して改ざん検出処理を行えばよい。
【0282】
(5)上記実施の形態2では、特定処理の動作として、図32のS2403で検出結果に矛盾がない場合、機器停止としているが、これに限定するものではなく、検知モジュール検知処理を行うとしてもよい。このとき、検知モジュール検知処理では、監視パターンを更新するとしてもよい。
【0283】
(6)上記実施の形態3では、検知モジュールが他のモジュールを更新する更新機能を備え、更新モジュールであるとしてもよい。このとき、管理装置から、更新用のモジュールを受信し、機器内のモジュールを更新する。更新対象のモジュールは、保護制御モジュールであってもよいし、他の検知モジュールであってもよいし、アプリであってもよい。これにより、機器内のモジュールが改ざんされたとしても、更新することが可能となり、機器の信頼性を向上することができる。
【0284】
(7)次のように構成してもよい。
(a)本発明の別の変形例としての改ざん監視システム10cは、図54に示すように、管理装置200c及び情報セキュリティ装置100cから構成されている。
【0285】
情報セキュリティ装置100cは、複数の監視モジュール131c、132c、・・・、137cを有している。監視モジュール131c、132c、・・・、137cのそれぞれは、他の監視モジュールの改ざんを監視する。
【0286】
管理装置200cは、情報セキュリティ装置100cを管理する。管理装置200cは、図54に示すように、受信部230c、検出部220c及び特定部210cを備える。
受信部230cは、情報セキュリティ装置100cから、各監視モジュールによる他の監視モジュールに対する監視結果を受信する。
【0287】
検出部220cは、受信した監視結果のうち、一部の監視結果を用いて異常を検出する。
特定部210cは、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する。
【0288】
ここで、改ざん監視システム10cは、上記の実施の形態又は変形例の検知システムに相当し、管理装置200cは、管理装置に相当し、情報セキュリティ装置100cは、機器に相当し、各監視モジュールは、機器が保持する各検知モジュールに相当する。
【0289】
(b)管理装置200cの受信部230cが、情報セキュリティ装置100cから受信した監視結果の一例を図55に示す。
上述したように、監視モジュール131c、132c、・・・、137cのそれぞれは、一の時点において、他の監視モジュールの改ざんを監視する。ここで、一の時点は、一瞬の時点のみならず、幅のある時間帯を含む概念であり、その時間帯内において、監視モジュールの改ざんがされることがないであろうと考えられる程度のものであればよい。例えば、1秒間、10秒間、1分間、1時間などである。また、さらに長い時間であるとしてもよい。各監視モジュールは、監視対象の監視モジュールが改ざんされているか否かを示す監視結果を、情報セキュリティ装置100cを介して、管理装置200cへ送信する。
【0290】
本明細書に記載の改ざんされたモジュールの特定において、以下に述べるように、前提条件がある。
検知モジュール(又は監視モジュール)による監視の開始から、全ての監視結果が取得されるまでの時間帯において、各モジュールは変化しないものとする。つまり、各モジュールがこの時間帯内において、改ざんされることはないものとする。この時間帯内に各モジュールが改ざんされるとすれば、改ざんされたモジュールの特定が困難になるからである。
【0291】
また、全ての検知モジュール(又は監視モジュール)が改ざんされることはないものとしている。全ての検知モジュール(又は監視モジュール)が改ざんされたのであれば、改ざんされたモジュールの特定が困難になるからである。
【0292】
図55に示すように、監視モジュール131cによる監視モジュール132cに対する監視結果C100は、監視モジュール132cが改ざんされていないことを示し、監視モジュール132cによる監視モジュール134cに対する監視結果C103は、監視モジュール134cが改ざんされていないことを示し、監視モジュール131cによる監視モジュール133cに対する監視結果C101は、監視モジュール133cが改ざんされていないことを示し、監視モジュール134cによる監視モジュール136cに対する監視結果C107は、監視モジュール136cが改ざんされていないことを示す。また、監視モジュール133cによる監視モジュール136cに対する監視結果C106は、監視モジュール136cが改ざんされていることを示す。
【0293】
さらに、監視モジュール132cによる監視モジュール135cに対する監視結果C104、監視モジュール134cによる監視モジュール135cに対する監視結果C105、監視モジュール135cによる監視モジュール137cに対する監視結果C109、監視モジュール137cによる監視モジュール134cに対する監視結果C108、監視モジュール137cによる監視モジュール136cに対する監視結果C111、監視モジュール136cによる監視モジュール137cに対する監視結果C110についても、図55に示している。
【0294】
情報セキュリティ装置100cから受信する監視結果のデータ構造の一例を図56に示す。
図56に示すように、情報セキュリティ装置100cから受信する監視結果の集合C112は、監視結果C100、C101、C103、C106、C107、・・・から構成されている。各監視結果は、ID、監視元、監視先、結果、監視時刻を含む。
【0295】
IDは、当該監視結果を一意に識別するための識別番号である。
監視元は、当該監視結果を出力する監視元の監視モジュールを識別するモジュール識別子である。
【0296】
監視先は、当該監視結果における監視先の監視モジュールを識別するモジュール識別子である。
結果は、当該監視結果を示す。結果「○」は、監視先の監視モジュールが改ざんされていないという判断結果を示し、結果「×」は、監視先の監視モジュールが改ざんされているという判断結果を示す。しかし、監視元の監視モジュールが改ざんされている場合には、改ざんされていない監視モジュールについて、結果「×」を出力したり、改ざんされている監視モジュールについて、結果「○」を出力したりする場合もありうる。
【0297】
監視時刻は、監視元の監視モジュールにより、監視先の監視モジュールの改ざんチェックが行われた時刻を、年月日時分で示している。図56に示すように、監視結果の集合C112に含まれる全ての監視結果は、同一の時刻「2011.1.31 13:00」を含むので、同一の時刻、2011年1月31日13時00分において、改ざんチェックが行われたことを示している。
【0298】
受信部230cは、一例として、図55に示す全ての監視結果を受信し、受信した全ての監視結果を検出部220cへ出力する。
検出部220cは、受信部230cから監視結果を受け取り、受け取った監視結果のうちの一部の監視結果を用いて、つまり、一の監視モジュールに対する複数の監視結果を用いて、前記複数の監視結果の不一致を検出することにより、異常を検出する。一の監視モジュールに対する監視結果が2個存在する場合には、検出部220cは、受信した前記監視結果のうち、一の監視モジュールに対する第1の監視結果及び前記一の監視モジュールに対する第2の監視結果を用い、前記第1の監視結果と前記第2の監視結果が一致するか否かを判断することにより、前記第1の監視結果と前記第2の監視結果の不一致を検出する。
【0299】
図55に示す例の場合には、検出部220cは、監視モジュール136cに対する監視結果C106と監視モジュール136cに対する監視結果C107を用いる。監視結果C106及び監視結果C107は、いずれも、同一の監視モジュール136cに対する監視結果であるが、監視結果C106は、監視モジュール136cが改ざんされていることを示し、監視結果C107は、監視モジュール136cが改ざんされていないことを示しており、監視結果C106と、監視結果C107とは一致していない。検出部220cは、監視結果C106と監視結果C107とが一致するか否かを判断し、監視結果C106と監視結果C107とは一致していないので、異常を検出する。
【0300】
検出部220cは、このように、一の監視モジュールに対する一の監視結果と前記監視モジュールに対する他の監視結果との不一致を異常として検出する。
以上説明したように、検出部220cは、受信した全ての監視結果を用いることなく、受信した監視結果の一部を用いて、つまり、同一の監視モジュールに対する複数の監視結果のみを用いて、異常を検出する。
【0301】
異常が検出された場合に、検出部220cは、同一の監視モジュールに対する複数の監視結果が一致していない旨を特定部210cへ通知する。図55に示す例の場合には、検出部220cは、監視結果C106と監視結果C107とが一致していない旨を、特定部210cへ通知する。
【0302】
特定部210cは、検出部220cから、同一の監視モジュールに対する第1の監視結果と第2の監視結果とが一致していない旨の通知を受け取り、前記通知を受け取った場合には、受信部230cから全ての監視結果を受け取る。次に、特定部210cは、以下に示すようにして、前記複数の監視結果のそれぞれを用いて、監視先の監視モジュールから監視元の監視モジュールへ遡ることにより、改ざんされた前記監視モジュールを特定する。つまり、特定部210cは、前記通知に係る前記第1の監視結果及び前記第2の監視結果のそれぞれを用いて、監視先の監視モジュールから監視元の監視モジュールへ遡り、前記第1の監視結果及び前記第2の監視結果毎に、その他の正常であるとする前記監視結果を用いて監視先の監視モジュールから監視元の監視モジュールへ遡ることを繰り返すことにより、同一の監視モジュールに到達するか否かを判断し、同一の監視モジュールに到達すると判断する場合に、当該同一の監視モジュールを改ざんされた監視モジュールとして特定する。
【0303】
図55に示す例を用いて、さらに詳細に説明する。
同一の監視モジュール136cに対する第1の監視結果C106と第2の監視結果C107とが一致していない旨の通知を受け取ると、特定部210cは、第1の監視結果C106を用いて、監視元の監視モジュール133cを特定する。次に、特定した監視モジュール133cに対して正常であるとする監視結果を検索する。図55に示す例においては、監視結果C101は、監視モジュール131cによる監視モジュール133cに対する監視結果であり、監視モジュール133cが正常であることを示しているので、監視モジュール133cの監視元の監視モジュールとして、監視モジュール131cを特定する。同様にして、監視モジュール131cに対して正常であるとする監視結果の検索を試みる。図55に示す例においては、監視モジュール131cを監視する監視モジュールによる監視結果は存在しないので、監視結果の検索は、ここで終了する。こうして、特定部210cは、監視モジュール131cを特定する。
【0304】
また、特定部210cは、第2の監視結果C107を用いて、監視元の監視モジュール134cを特定する。次に、特定した監視モジュール134cに対して正常であるとする監視結果を検索する。図55に示す例においては、監視結果C103は、監視モジュール132cによる監視モジュール134cに対する監視結果であり、監視モジュール134cが正常であることを示しているので、監視モジュール134cの監視元の監視モジュールとして、監視モジュール132cを特定する。同様にして、監視モジュール132cに対して正常であるとする監視結果の検索を試みる。図55に示す例においては、監視結果C100は、監視モジュール131cによる監視モジュール132cに対する監視結果であり、監視モジュール132cが正常であることを示しているので、監視モジュール132cの監視元の監視モジュールとして、監視モジュール131cを特定する。さらに、同様にして、監視モジュール131cに対して正常であるとする監視結果の検索を試みる。図55に示す例においては、監視モジュール131cを監視する監視モジュールによる監視結果は存在しないので、監視結果の検索は、ここで終了する。こうして、特定部210cは、監視モジュール131cを特定する。
【0305】
次に、特定部210cは、別々の検索経路において、特定した複数の監視モジュールが同一であるか否かを判断する。ここでは、特定部210cは、同一の監視モジュール131cを特定している。
【0306】
従って、特定部210cは、監視モジュール131cが改ざんされた監視モジュールであると特定する。
仮に、監視モジュール131cが改ざんされていないと仮定すると、監視モジュール131cによる監視結果C101は、正しく、監視結果C101により、監視モジュール133cは、改ざんされていないこととなる。また、監視モジュール133cによる監視結果C106によると、監視モジュール136cは、改ざんされている。一方、上記の仮定に基づいて、監視結果C100により、監視モジュール132cは、改ざんされておらず、監視結果C103により、監視モジュール134cは、改ざんされておらず、監視結果C107により、監視モジュール136cは、改ざんされていない。
【0307】
そうすると、監視モジュール136cに対する2個の監視結果C106とC107とが一致しない。従って、上記の仮定が誤りであったと考えられる。即ち、監視モジュール131cが改ざんされていないとする仮定は、誤りであり、監視モジュール131cは改ざんされていると結論付けることができる。
【0308】
特定部210cの動作について、図57に示すフローチャートを用いて説明する。
特定部210cは、検出部220cから同一の監視モジュールに対する第1の監視結果と第2の監視結果とが一致していない旨の通知を受け取る(ステップS501)。
【0309】
前記通知を受け取ると、特定部210cは、受信部230cから全ての監視結果を受け取る(ステップS502)。
特定部210cは、第1の監視結果を用いて、第1の監視結果を出力した監視元の監視モジュールを特定する(ステップS503)。次に、特定部210cは、特定した監視モジュールに対して正常であるとする監視結果を検索し、監視結果が存在しない場合(ステップS504で「無し」)、ステップS509へ制御を移す。監視結果が存在する場合(ステップS504で「有り」)、この監視結果を用いて、当該監視結果を出力した監視元の監視モジュールを特定し(ステップS505)、ステップS504へ戻って、処理を繰り返す。
【0310】
また、特定部210cは、第2の監視結果を用いて、第2の監視結果を出力した監視元の監視モジュールを特定する(ステップS506)。次に、特定部210cは、特定した監視モジュールに対して正常であるとする監視結果を検索し、監視結果が存在しない場合(ステップS507で「無し」)、ステップS509へ制御を移す。監視結果が存在する場合(ステップS507で「有り」)、この監視結果を用いて、当該監視結果を出力した監視元の監視モジュールを特定し(ステップS508)、ステップS507へ戻って、処理を繰り返す。
【0311】
次に、第1の監視結果による検索の経路(ステップS503〜S505)により、最終的に特定された監視モジュールと、第2の監視結果による検索の経路(ステップS506〜S508)により、最終的に特定された監視モジュールとが一致するか否かを判断し(ステップS509)、一致する場合に(ステップS509で「YES」)、当該特定された監視モジュールが、改ざんされた監視モジュールであると特定する(ステップS510)。
【0312】
(c)管理装置200cの受信部230cが、情報セキュリティ装置100cから受信した監視結果の別の一例を図58に示す。
上述したように、監視モジュール131c、132c、・・・、137cのそれぞれは、第1の時点において、他の監視モジュールの改ざんを監視する。ここで、第1の時点は、一瞬の時点のみならず、幅のある時間帯を含む概念である。各監視モジュールは、監視対象の監視モジュールが改ざんされているか否かを示す第1の時点における監視結果を、情報セキュリティ装置100cを介して、管理装置200cへ送信する。
【0313】
また、監視モジュール131c、132c、・・・、137cのそれぞれは、第2の時点において、他の監視モジュールの改ざんを監視する。ここで、第2の時点は、第1の時点と同様に、一瞬の時点のみならず、幅のある時間帯を含む概念である。第2の時点は、第1の時点より遅い時点である。例えば、第1の時点が「2011年1月31日13時00分」であるとすると、第2の時点は、第2の時点より遅い「2011年2月5日9時00分」である。各監視モジュールは、監視対象の監視モジュールが改ざんされているか否かを示す第2の時点における監視結果を、情報セキュリティ装置100cを介して、管理装置200cへ送信する。
【0314】
なお、情報セキュリティ装置100cは、第1の時点における監視結果を送信し、その後に、第2の時点における監視結果を送信しているが、これには限定されない。情報セキュリティ装置100cは、第1の時点における監視結果と第2の時点における監視結果を、第2の時点の後に送信してもよい。
【0315】
受信部230cは、第1の時点の直後に、第1の時点における監視結果を受信し、第2の時点の直後に、第2の時点における監視結果を受信する。なお、受信部230cは、第2の時点の直後に、第1の時点における監視結果と、第2の時点における監視結果とを受信してもよい。
【0316】
図58(a)に示すように、時刻tがkのときに、監視モジュール131cによる監視モジュール132cに対する監視結果C121は、監視モジュール132cが改ざんされていることを示している。また、図58(b)に示すように、時刻tがk+iのときに、監視モジュール131cによる監視モジュール132cに対する監視結果C121は、監視モジュール132cが改ざんされていないことを示している。
【0317】
図59に監視結果のデータ構造の一例を示す。この図に示すように、監視結果の集合C120は、監視結果C121及びC122を含み、各監視結果は、ID、監視元、監視先、結果及び監視時刻を含む。ID、監視元、監視先、結果及び監視時刻については、上述したとおりである。
【0318】
検出部220cは、受信した前記監視結果のうち、前記第1の時点における第1監視モジュールによる第2監視モジュールに対する第1の監視結果が前記第2監視モジュールが改ざんされていることを示し、前記第2の時点における前記第1監視モジュールによる前記第2監視モジュールに対する第2の監視結果が前記第2監視モジュールが改ざんされていないことを示すという不一致を検出する。不一致を検出すると、検出部220cは、特定部210cに対して、その旨を通知する。
【0319】
図58(a)及び(b)に示す例によると、検出部220cは、受信した前記監視結果のうち、時刻tがkのときに、監視モジュール131cによる監視モジュール132cに対する監視結果C121が監視モジュール132cが改ざんされていることを示し、時刻tがk+iのときに、監視モジュール131cによる監視モジュール132cに対する監視結果C122が監視モジュール132cが改ざんされていないことを示すという不一致を検出する。
【0320】
特定部210cは、検出部220cから不一致の旨の通知を受け取ると、第1監視モジュールが改ざんされている監視モジュールであると特定する。図58(a)及び(b)に示す例の場合には、特定部210cは、監視モジュール131cが改ざんされた監視モジュールであると特定する。
【0321】
特定部210cにより改ざんされた監視モジュールを特定できるのは、次のような理由による。
図58(a)及び(b)に示す例の場合に、監視モジュール131cが改ざんされておらず、正常であると仮定する。時刻tがkのときに、監視モジュール131cは、監視モジュール132cが改ざんされていると判定しているが、時刻tがk+iのときに、監視モジュール131cは、監視モジュール132cが正常であると判定している。監視モジュール132cが時刻tがkからk+iの間において、正常に戻ることはあり得ないので、監視結果C121とC122との間に矛盾が生じている。従って、監視モジュール131cが正常であるとした仮定が誤りであり、監視モジュール131cは、改ざんされた監視モジュールであると結論付けることができる。
【0322】
(d)管理装置200cの受信部230cが、情報セキュリティ装置100cから受信した監視結果の別の一例を図60に示す。
上述したように、監視モジュール131c、132c、・・・、137cのそれぞれは、第1の時点において、他の監視モジュールの改ざんを監視する。ここで、第1の時点は、上述したように、幅のある時間帯を含む概念である。各監視モジュールは、監視対象の監視モジュールが改ざんされているか否かを示す第1の時点における監視結果を、情報セキュリティ装置100cを介して、管理装置200cへ送信する。
【0323】
また、監視モジュール131c、132c、・・・、137cのそれぞれは、第2の時点において、他の監視モジュールの改ざんを監視する。ここで、第2の時点は、第1の時点と同様に、一瞬の時点のみならず、幅のある時間帯を含む概念である。第2の時点は、上述したように、第1の時点より遅い時点である。各監視モジュールは、監視対象の監視モジュールが改ざんされているか否かを示す第2の時点における監視結果を、情報セキュリティ装置100cを介して、管理装置200cへ送信する。
【0324】
なお、情報セキュリティ装置100cは、第1の時点における監視結果を送信し、その後に、第2の時点における監視結果を送信しているが、これには限定されない。情報セキュリティ装置100cは、第1の時点における監視結果と第2の時点における監視結果を、第2の時点の後に送信してもよい。
【0325】
受信部230cは、第1の時点の直後に、第1の時点における監視結果を受信し、第2の時点の直後に、第2の時点における監視結果を受信する。なお、受信部230cは、第2の時点の直後に、第1の時点における監視結果と、第2の時点における監視結果とを受信してもよい。
【0326】
図60(a)に示すように、時刻tがkのときに、監視モジュール131cによる監視モジュール132cに対する監視結果C131は、監視モジュール132cが改ざんされていることを示している。また、図60(b)に示すように、時刻tがk+iのときに、監視モジュール132cによる監視モジュール131cに対する監視結果C133は、監視モジュール131cが改ざんされていないことを示している。
【0327】
図61に監視結果のデータ構造の一例を示す。この図に示すように、監視結果の集合C130は、監視結果C131及びC133を含み、各監視結果は、ID、監視元、監視先、結果及び監視時刻を含む。ID、監視元、監視先、結果及び監視時刻については、上述したとおりである。
【0328】
検出部220cは、受信した前記監視結果のうち、前記第1の時点における第1監視モジュールによる第2監視モジュールに対する第1の監視結果が前記第2監視モジュールが改ざんされていることを示し、前記第2の時点における第2監視モジュールによる第1監視モジュールに対する第2の監視結果が前記第1監視モジュールが改ざんされていないことを示すという異常を検出する。
【0329】
図60(a)及び(b)に示す例によると、検出部220cは、受信した前記監視結果のうち、時刻tがkのときに、監視モジュール131cによる監視モジュール132cに対する監視結果C131が監視モジュール132cが改ざんされていることを示し、時刻tがk+iのときに、監視モジュール132cによる監視モジュール131cに対する監視結果C133が監視モジュール131cが改ざんされていないことを示すという異常を検出する。
【0330】
特定部210cは、前記第1の監視結果が前記第2監視モジュールが改ざんされたことを示し、前記第2の監視結果が第1監視モジュールが改ざんされていないことを示す場合に、前記第2監視モジュールを改ざんされた監視モジュールとして特定する。
【0331】
図60(a)及び(b)に示す例によると、特定部210cは、監視結果C131が監視モジュール132cが改ざんされていることを示し、監視結果C133が監視モジュール131cが改ざんされていないことを示すという異常が検出された場合に、監視モジュール132cが改ざんされた監視モジュールであると特定する。
【0332】
特定部210cにより改ざんされた監視モジュールを特定できるのは、次のような理由による。
図60(a)及び(b)に示す例の場合に、時刻tがkのときに、監視モジュール131cは、監視モジュール132cが改ざんされていると判定し、時刻tがk+iのときに、監視モジュール132cは、監視モジュール131cが正常であると判定している。
【0333】
ここで、監視モジュール131cが正常な監視モジュールであるとする場合、監視結果C131により、監視モジュール132cは、改ざんされた監視モジュールである。
また、監視モジュール131cが改ざんされた監視モジュールであるとする場合、監視結果C133により、改ざんされた監視モジュールを正常と判断しているので、監視モジュール132cは、改ざんされた監視モジュールである。
【0334】
従って、監視モジュール132cは、改ざんされた監視モジュールであると結論付けることができる。
(8)次のように構成してもよい。
【0335】
管理装置及び情報セキュリティ装置(機器)は、通常モードと異常モードとの切り替えを行って動作する。
通常モードにおいて、管理装置及び情報セキュリティ装置(機器)は、異常なつまり改ざんされた検知モジュール(又は監視モジュール)を特定することを目的として動作する。通常モードは、言わば、異常モジュール特定モードである。通常モードにおいては、第1に、検知モジュール(監視モジュール)は、保護制御モジュールへの攻撃、つまり、保護制御モジュールの改ざんを検知する。第2に、複数の検知モジュール(複数の監視モジュール)は、相互に、異常つまり改ざんの検知(又は監視)を行う。
【0336】
通常モードにおいて、異常なモジュールが検出されると、管理装置及び情報セキュリティ装置(機器)は、通常モードから異常モードへ切り替えられる。
異常モードにおいて、第1に、管理装置及び情報セキュリティ装置(機器)は、保護制御モジュールの危殆化、つまり、改ざんを検知した場合、情報セキュリティ装置(機器)の保護制御モジュールを正常な保護制御モジュールに更新する。第2に、異常なモジュールを検出した場合に、異常なモジュールを無効化する。第3に、検知モジュール(又は監視モジュール)が有する監視パターンを新たな監視パターンに更新する。監視パターンの更新については、次にその一例を説明する。
【0337】
(9)次のように構成してもよい。
(a)本発明の別の変形例としての改ざん監視システム10dは、図62に示すように、管理装置200d及び情報セキュリティ装置100dから構成されている。
【0338】
情報セキュリティ装置100dは、複数の監視モジュール131d、132d、・・・、137dを有している。監視モジュール131d、132d、・・・、137dのそれぞれは、他の監視モジュールの改ざんを監視する。
【0339】
管理装置200dは、情報セキュリティ装置100dを管理する。管理装置200dは、図62に示すように、送信部250d、生成部240c及び特定部210dを備える。
特定部210dは、複数の監視モジュール131d、132d、・・・、137dのうち、改ざんされた監視モジュールを特定する。
【0340】
生成部240dは、複数の監視モジュール131d、132d、・・・、137dのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する。
【0341】
送信部250dは、生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する。
情報セキュリティ装置100dは、正常監視モジュール毎の監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する。
【0342】
送信部250dにより生成される前記複数の監視パターンは、循環監視パターンを構成する。
(b)管理装置200dについて、さらに詳細に説明する。
【0343】
管理装置200dは、一例として図63に示す監視結果の集合D100aを受信し、特定部210dは、上記の実施の形態や変形例において説明したように、監視モジュール131dが改ざんされた監視モジュールであると特定するものとする。監視結果の集合D100aは、図55に示すものと同一であるので、詳細の説明を省略する。
【0344】
生成部240dは、複数の監視モジュール131d、132d、・・・、137dのうち、改ざんされた監視モジュール131dを除き、他の残りの監視モジュール132d、・・・、137dを選択する。これらの監視モジュールを正常監視モジュールと呼ぶこととする。
【0345】
生成部240dは、図63の監視パターンの集合D100bに示すように、監視モジュール132dが監視モジュール134dを監視するように監視パターンD106を生成し、監視モジュール134dが監視モジュール133dを監視するように監視パターンD101を生成し、監視モジュール133dが監視モジュール136dを監視するように監視パターンD102を生成し、監視モジュール136dが監視モジュール137dを監視するように監視パターンD103を生成し、監視モジュール137dが監視モジュール135dを監視するように監視パターンD104を生成し、監視モジュール135dが監視モジュール132dを監視するように監視パターンD105を生成する。
【0346】
監視パターンのデータ構造の一例を図64に示す。監視パターンD101、D102、・・・、D106は、それぞれ、ID、監視元、監視先から構成されている。IDは、当該監視パターンを一意に識別する識別子である。監視元は、当該監視パターンが配布される監視モジュールを識別するモジュール識別子である。当該監視パターンは、監視元により示される監視モジュール内に記憶され、当該監視モジュールは、当該監視パターンに従って、外の監視モジュールの改ざんを監視する。監視先は、当該監視パターンが配布される監視モジュールにより監視の対象となる監視モジュールを識別するモジュール識別子である。
【0347】
このようにして生成された監視パターンD101、D102、・・・、D106を用いることにより、監視モジュール132dが監視モジュール134dを監視し、監視モジュール134dが監視モジュール133dを監視し、監視モジュール133dが監視モジュール136dを監視し、監視モジュール136dが監視モジュール137dを監視し、監視モジュール137dが監視モジュール135dを監視し、監視モジュール135dが監視モジュール132dを監視することとなる。
【0348】
図63の監視パターンの集合D100bに示すように、監視の経路は、監視モジュール132dから始まり、全ての監視モジュール(改ざんされた監視モジュールを除く)を一巡して、監視モジュール132dに戻っている。このように、複数の監視の経路が閉路を形成しているので、図63の監視パターンの集合D100bを循環監視パターンと呼ぶ。
【0349】
上記のように、生成部240dにより生成される複数の監視パターンは、循環型の監視パターンを構成している。循環型の監視パターンでは、各監視モジュールが他のただ一つの監視モジュールのみを監視し、各監視モジュールが他のただ一つの監視モジュールのみから監視されるようになる。監視元の監視モジュールから監視先の監視モジュールへの監視の経路は、複数存在し、これらの複数の経路を接続すると閉路が完成する。
【0350】
このような循環監視パターンを生成することにより、各監視モジュールが他のただ一つの監視モジュールのみを監視し、各監視モジュールが他のただ一つの監視モジュールのみから監視されるようになる。このため、循環監視パターンを用いると、監視モジュールによる監視の回数を最小にすることができる。
【0351】
監視モジュールの数をnとすると、n個の監視モジュールにより、完全グラフを構成するように監視パターンを生成した場合と比較して、循環監視パターンを用いた場合の監視数は、1/(n−1)となる。
【0352】
(10)次のように構成してもよい。
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信回路と、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出回路と、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定回路とを備える。
【0353】
また、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する集積回路であって、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信回路と、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出回路と、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定回路とを備える。
【0354】
また、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、複数のコンピュータ命令が組み合わされて構成されるコンピュータプログラムを記憶しているメモリ部と、前記メモリ部に記憶されている前記コンピュータプログラムから1個ずつコンピュータ命令を読み出し、解読し、その解読結果に応じて動作するプロセッサとを備える。前記コンピュータプログラムは、コンピュータである管理装置に、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出ステップと、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定ステップとを実行させる。
【0355】
また、次のように構成してもよい。
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定回路と、複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成回路と、生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信回路とを備える。前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する。
【0356】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する集積回路であって、前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定回路と、複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成回路と、生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信回路とを備える。前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する。
【0357】
また、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、複数のコンピュータ命令が組み合わされて構成されるコンピュータプログラムを記憶しているメモリ部と、前記メモリ部に記憶されている前記コンピュータプログラムから1個ずつコンピュータ命令を読み出し、解読し、その解読結果に応じて動作するプロセッサとを備える。前記コンピュータプログラムは、コンピュータである管理装置に、前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定ステップと、複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成ステップと、生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信ステップとを実行させる。前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する。
【0358】
(11)次のように構成してもよい。
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理用のコンピュータプログラムを記録しているコンピュータ読み取り可能な非一時的なプログラム記録媒体であるとしてもよい。前記コンピュータプログラムは、コンピュータである管理装置に、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出ステップと、異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定ステップとを実行させることを特徴とする。
【0359】
また、改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理用のコンピュータプログラムを記録しているコンピュータ読み取り可能な非一時的なプログラム記録媒体であるとしてもよい。前記コンピュータプログラムは、コンピュータである管理装置に、前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定ステップと、複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成ステップと、生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信ステップとを実行させることを特徴とする。前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する。
【0360】
(12)上記の各モジュールは、具体的には、それぞれ個別のコンピュータプログラムであってもよいし、オペレーティングシステムに組み込まれるモジュールであってもよいし、オペレーティングシステムから呼ばれるドライバであってもよいし、アプリケーションプログラムであってもよい。
【0361】
(13)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0362】
(14)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0363】
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0364】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0365】
(15)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0366】
(16)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0367】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0368】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0369】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【0370】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0371】
(17)次のように構成してもよい。
本発明の一実施態様は、ネットワークを介して接続されている情報処理装置上で動作する検知モジュールのうち改ざんされた異常な検知モジュールを特定する管理装置であって、前記管理装置は、前記情報処理装置内の複数の検知モジュールから改ざん検出結果を受信する受信手段と、前記改ざん検出結果のうち、異常と判定した結果を保持する改ざん検出結果保持手段と、前記複数の検知モジュールのうちの一つを正常な検知モジュールと仮定し、前記仮定に基づいて、前記改ざん検出結果保持手段で保持する改ざん検出結果と、新たに受信した改ざん検出結果に矛盾の有無を判断し、矛盾がある場合に、正常と仮定した前記検知モジュールを異常な検知モジュールと特定する異常モジュール特定手段を備えることを特徴とする。
【0372】
この構成によると、改ざんされたという検出結果を保持することにより、複数の検知モジュールのすべての検知モジュールが一度に改ざん検出を行わなくても、矛盾があるか否かで異常な検知モジュールを特定することができるため、機器内の処理の負荷を軽減することができる。
【0373】
また、前記管理装置は、さらに、特定された異常な検知モジュールの無効化指示を出力する無効化指示手段を備えるとしてもよい。
これにより、検出した異常な検知モジュールを無効化することにより、異常な検知モジュールに妨害されることなく情報処理装置が動作することができ、情報処理装置の信頼性をより高めることができる。
【0374】
また、前記管理装置は、さらに、複数の検知モジュールのうち、異常な検知モジュールと特定した検知モジュール以外のすべての検知モジュールの改ざん検出を一方向に循環して改ざん検出を行う循環パターンへ更新させる監視パターン更新指示手段と、前記循環パターンの複数の検知モジュールが一方向に循環して改ざん検出を行った結果がすべて正常である場合に、前記複数の検知モジュールを正常な検知モジュールと特定する正常モジュール特定手段を備えるとしてもよい。
【0375】
これにより、情報処理装置において正常なモジュールを用いた処理を実行することができ、情報処理装置の信頼性を高めることができる。
また、前記情報処理装置が有する少なくとも1個の検知モジュールは、他のモジュールを更新する機能を備える更新モジュールであり、前記管理装置は、さらに、複数の検知モジュールのうち、異常な検知モジュールと特定した検知モジュール以外のすべての検知モジュールの改ざん検出を一方向に循環して改ざん検出を行う循環パターンへ更新させる監視パターン更新指示手段と、前記循環パターンの複数の検知モジュールが一方向に循環して改ざん検出を行った結果がすべて正常である場合に、前記複数の検知モジュールを正常な検知モジュールと特定するする正常モジュール特定手段を備え、正常な検知モジュールと特定された前記検知モジュールが、他のモジュールを更新する機能を有する前記更新モジュールである場合に、更新モジュールである当該検知モジュールに対して、他のモジュールを更新するように、制御する制御手段を備えるとしてもよい。
【0376】
これにより、前記正常な検知モジュールを用いて、確実に他のモジュールを更新することができ、情報処理装置の信頼性を高めることができる。
また、前記情報処理装置は、さらに、アプリケーションプログラム及び当該アプリケーションプログラムを保護する保護制御モジュールを有し、前記他のモジュールは、前記検知モジュール、前記アプリケーションプログラム、又は前記保護制御モジュールであるとしてもよい。
【0377】
また、本発明の実施態様である検知システムは、改ざんを監視する複数の検知モジュールを有する情報処理装置と、当該情報処理装置を管理する管理装置とから構成される検知システムであって、前記管理装置は、前記情報処理装置内の複数の検知モジュールから改ざん検出結果を受信する受信手段と、前記改ざん検出結果のうち、異常と判定した結果を保持する改ざん検出結果保持手段と、前記複数の検知モジュールのうちの一つを正常な検知モジュールと仮定し、前記仮定に基づいて、前記改ざん検出結果保持手段で保持する改ざん検出結果と、新たに受信した改ざん検出結果に矛盾の有無を判断し、矛盾がある場合に、正常と仮定した前記検知モジュールを異常な検知モジュールと特定する異常モジュール特定手段を備える。
【0378】
ここで、前記検知システムにおいて、前記管理装置は、さらに、特定された異常な検知モジュールの無効化指示を出力する無効化指示手段を備えるとしてもよい。
ここで、前記検知システムにおいて、前記管理装置は、さらに、複数の検知モジュールのうち、異常な検知モジュールと特定した検知モジュール以外のすべての検知モジュールの改ざん検出を一方向に循環して改ざん検出を行う循環パターンへ更新させる監視パターン更新指示手段と、前記循環パターンの複数の検知モジュールが一方向に循環して改ざん検出を行った結果がすべて正常である場合に、前記複数の検知モジュールを正常な検知モジュールと特定する正常モジュール特定手段を備えるとしてもよい。
【0379】
ここで、前記検知システムにおいて、前記情報処理装置が有する少なくとも1個の検知モジュールは、他のモジュールを更新する機能を備える更新モジュールであり、前記管理装置は、さらに、複数の検知モジュールのうち、異常な検知モジュールと特定した検知モジュール以外のすべての検知モジュールの改ざん検出を一方向に循環して改ざん検出を行う循環パターンへ更新させる監視パターン更新指示手段と、前記循環パターンの複数の検知モジュールが一方向に循環して改ざん検出を行った結果がすべて正常である場合に、前記複数の検知モジュールを正常な検知モジュールと特定するする正常モジュール特定手段を備え、正常な検知モジュールと特定された前記検知モジュールが、他のモジュールを更新する機能を有する前記更新モジュールである場合に、更新モジュールである当該検知モジュールに対して、他のモジュールを更新するように、制御する制御手段を備えるとしてもよい。
【0380】
本発明の実施態様である集積回路は、改ざんを監視する複数の検知モジュールを有する情報処理装置を管理する機能を有する集積回路であって、前記情報処理装置内の複数の検知モジュールから改ざん検出結果を受信する受信手段と、前記改ざん検出結果のうち、異常と判定した結果を保持する改ざん検出結果保持手段と、前記複数の検知モジュールのうちの一つを正常な検知モジュールと仮定し、前記仮定に基づいて、前記改ざん検出結果保持手段で保持する改ざん検出結果と、新たに受信した改ざん検出結果に矛盾の有無を判断し、矛盾がある場合に、正常と仮定した前記検知モジュールを異常な検知モジュールと特定する異常モジュール特定手段を備える。
【0381】
本発明の実施態様である管理方法は、改ざんを監視する複数の検知モジュールを有する情報処理装置を管理する管理方法であって、前記情報処理装置内の複数の検知モジュールから改ざん検出結果を受信する受信ステップと、前記改ざん検出結果のうち、異常と判定した結果を保持する改ざん検出結果保持ステップと、前記複数の検知モジュールのうちの一つを正常な検知モジュールと仮定し、前記仮定に基づいて、前記改ざん検出結果保持手段で保持する改ざん検出結果と、新たに受信した改ざん検出結果に矛盾の有無を判断し、矛盾がある場合に、正常と仮定した前記検知モジュールを異常な検知モジュールと特定する異常モジュール特定ステップを含む。
【0382】
本発明の実施態様である記録媒体は、改ざんを監視する複数の検知モジュールを有する情報処理装置を管理する管理用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、コンピュータに、前記情報処理装置内の複数の検知モジュールから改ざん検出結果を受信する受信ステップと、前記改ざん検出結果のうち、異常と判定した結果を保持する改ざん検出結果保持ステップと、前記複数の検知モジュールのうちの一つを正常な検知モジュールと仮定し、前記仮定に基づいて、前記改ざん検出結果保持手段で保持する改ざん検出結果と、新たに受信した改ざん検出結果に矛盾の有無を判断し、矛盾がある場合に、正常と仮定した前記検知モジュールを異常な検知モジュールと特定する異常モジュール特定ステップとを実行させるためのコンピュータプログラムを記録している。
【0383】
本発明の実施態様であるコンピュータプログラムは、改ざんを監視する複数の検知モジュールを有する情報処理装置を管理する管理用のコンピュータプログラムであって、コンピュータに、前記情報処理装置内の複数の検知モジュールから改ざん検出結果を受信する受信ステップと、前記改ざん検出結果のうち、異常と判定した結果を保持する改ざん検出結果保持ステップと、前記複数の検知モジュールのうちの一つを正常な検知モジュールと仮定し、前記仮定に基づいて、前記改ざん検出結果保持手段で保持する改ざん検出結果と、新たに受信した改ざん検出結果に矛盾の有無を判断し、矛盾がある場合に、正常と仮定した前記検知モジュールを異常な検知モジュールと特定する異常モジュール特定ステップとを実行させる。
【0384】
(18)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
以上、本発明を添付図面を用いて詳細に説明したが、種々の改良や変形が当業者に明らかとなり得ることは言うまでもない。したがって、かかる改良や変形が本発明の範囲を逸脱しない限り、これらも本発明に含まれると理解されるべきである。
【産業上の利用可能性】
【0385】
本発明は、情報処理装置に対してソフトウェアを提供する管理装置を製造及び販売する産業において、前記管理装置が、情報処理装置上で動作する不正なソフトウェアを特定し、安全にソフトウェアを更新する技術として利用することができる。
【符号の説明】
【0386】
10、11 検知システム
12 ソフトウェア更新システム
100、100a 機器
110、111 アプリ
120、120a 保護制御モジュール
121 新しい保護制御モジュール
130、130a 検知モジュール群
131、132、133、134、135 検知モジュール
131a、132a、133a、134a、135a 検知モジュール
140 アクセス制御モジュール
150 OS
160 ブートローダ
171 CPU
172 EEPROM
173 RAM
174 NIC
200、200a、200b 管理装置
210 判断部
220 モジュール無効化部
230 監視パターン更新部
240 更新用ソフトウェア配布部
250 通信部
301 受信部
302 送信部
303 制御部
304 復号ロード部
305 改ざん検出部
306 解析ツール検出部
307 暗復号鍵保持部
308 暗復号鍵分散部
309 証明書生成部
310 暗復号鍵復元部
311 暗復号鍵生成部
401 受信部
402 送信部
403 制御部
404 検証部
405 MAC値生成部
406 MAC値テーブル更新部
407 更新部
408 認証部
409 分散情報保持部
501 受信部
502 送信部
503 アクセス情報保持部
601 受信部
602 送信部
603 指示生成部
604 モジュール特定部
605 検出結果保持部
701 受信部
702 送信部
703 アクセス情報取得鍵保持部
704 検知モジュール選択部
801 受信部
802 送信部
803 監視パターン生成部
804 制御部
901 受信部
902 送信部
903 制御部
904 認証部
905 暗号鍵生成部
906 暗号処理部
907 検知モジュール選択部
908 証明書生成部
909 署名秘密鍵保持部
910 更新用ソフトウェア保持部
911 暗号鍵保持部

【特許請求の範囲】
【請求項1】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、
前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出手段と、
異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定手段と
を備えることを特徴とする管理装置。
【請求項2】
前記検出手段は、一の監視モジュールに対する複数の監視結果を用いて、前記複数の監視結果の不一致を検出し、
前記特定手段は、前記複数の監視結果のそれぞれを用いて、監視先の監視モジュールから監視元の監視モジュールへ遡ることにより、改ざんされた前記監視モジュールを特定する
ことを特徴とする請求項1に記載の管理装置。
【請求項3】
前記情報セキュリティ装置の各監視モジュールは、一の時点において、他の監視モジュールの改ざんを監視し、その監視結果を送信し、
前記受信手段は、前記一の時点における前記監視結果を受信し、
前記検出手段は、受信した前記監視結果のうち、一の監視モジュールに対する第1の監視結果と第2の監視結果とが一致するか否かを判断することにより、前記第1の監視結果と前記第2の監視結果の不一致を検出し、
前記特定手段は、前記第1の監視結果及び前記第2の監視結果のそれぞれを用いて、監視先の監視モジュールから監視元の監視モジュールへ遡り、前記第1の監視結果及び前記第2の監視結果毎に、正常であるとするその他の前記監視結果を用いて監視先の監視モジュールから監視元の監視モジュールへ遡ることを繰り返すことにより、同一の監視モジュールに到達するか否かを判断し、同一の監視モジュールに到達すると判断する場合に、当該同一の監視モジュールを改ざんされた監視モジュールとして特定する
ことを特徴とする請求項2に記載の管理装置。
【請求項4】
前記情報セキュリティ装置の各監視モジュールは、第1の時点において、他の監視モジュールの改ざんを監視し、その監視結果を送信し、前記第1の時点より後の第2の時点において、他の監視モジュールの改ざんを監視し、その監視結果を送信し、
前記受信手段は、前記第1の時点における前記監視結果及び前記第2の時点における前記監視結果を受信し、
前記検出手段は、受信した前記監視結果のうち、前記第1の時点における第1監視モジュールによる第2監視モジュールに対する第1の監視結果が前記第2監視モジュールが改ざんされていることを示し、前記第2の時点における前記第1監視モジュールによる前記第2監視モジュールに対する第2の監視結果が前記第2監視モジュールが改ざんされていないことを示すという不一致を検出し、
前記特定手段は、前記不一致が検出された場合に、前記第1監視モジュールを改ざんされた監視モジュールとして特定する
ことを特徴とする請求項2に記載の管理装置。
【請求項5】
前記情報セキュリティ装置の各監視モジュールは、第1の時点において、他の監視モジュールの改ざんを監視し、その監視結果を送信し、前記第1の時点より後の第2の時点において、他の監視モジュールの改ざんを監視し、その監視結果を送信し、
前記受信手段は、前記第1の時点における前記監視結果及び前記第2の時点における前記監視結果を受信し、
前記検出手段は、受信した前記監視結果のうち、前記第1の時点における第1監視モジュールによる第2監視モジュールに対する第1の監視結果が前記第2監視モジュールが改ざんされていることを示し、前記第2の時点における前記第2監視モジュールによる前記第1監視モジュールに対する第2の監視結果が前記第1監視モジュールが改ざんされていないことを示すという異常を検出し、
前記特定手段は、前記第1の監視結果が前記第2監視モジュールが改ざんされたことを示し、前記第2の監視結果が前記第1監視モジュールが改ざんされていないことを示す場合に、前記第2監視モジュールを改ざんされた監視モジュールとして特定する
ことを特徴とする請求項1に記載の管理装置。
【請求項6】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理方法であって、
前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、
受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出ステップと、
異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定ステップと
を含むことを特徴とする管理方法。
【請求項7】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
コンピュータである管理装置に、
前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、
受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出ステップと、
異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定ステップとを実行させるための前記コンピュータプログラムを記録している記録媒体。
【請求項8】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する集積回路であって、
前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出手段と、
異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定手段と
を備えることを特徴とする集積回路。
【請求項9】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置と、前記情報セキュリティ装置を管理する管理装置とから構成される監視システムであって、
前記管理装置は、
前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
受信した監視結果のうち、一部の監視結果を用いて異常を検出する検出手段と、
異常が検出された場合に、検出された異常に係る監視結果の生成元の監視モジュール、及び、当該監視モジュールを起点として、連鎖的に監視結果を生成元へ辿ることにより、特定される監視モジュールの中から、改ざんされた監視モジュールを特定する特定手段と
を備えることを特徴とする監視システム。
【請求項10】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、
前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定手段と、
複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成手段と、
生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信手段とを備え、
前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する
ことを特徴とする管理装置。
【請求項11】
前記生成手段により生成される前記複数の監視パターンは、循環型の監視パターンを構成する
ことを特徴とする請求項10に記載の管理装置。
【請求項12】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理方法であって、
前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定ステップと、
複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成ステップと、
生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信ステップとを含み、
前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する
ことを特徴とする管理方法。
【請求項13】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置で用いられる管理用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
コンピュータである管理装置に、
前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定ステップと、
複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成ステップと、
生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信ステップとを実行させるためのコンピュータプログラムを記録しており、
前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する
ことを特徴とする記録媒体。
【請求項14】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置を管理する集積回路であって、
前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定手段と、
複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成手段と、
生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信手段とを備え、
前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する
ことを特徴とする集積回路。
【請求項15】
改ざんを監視する複数の監視モジュールを有する情報セキュリティ装置と、前記情報セキュリティ装置を管理する管理装置とから構成される監視システムであって、
前記管理装置は、
前記複数の監視モジュールのうち、改ざんされた監視モジュールを特定する特定手段と、
複数の監視モジュールのうち、改ざんされた監視モジュールを除く残りの正常監視モジュール毎に、各正常監視モジュールが他のただ一つの正常監視モジュールのみを監視し、各正常監視モジュールが他のただ一つの正常監視モジュールのみから監視されるように、監視先の正常監視モジュールを示す監視パターンを生成する生成手段と、
生成した正常監視モジュール毎の監視パターンを前記情報セキュリティ装置へ送信する送信手段とを備え、
前記情報セキュリティ装置は、正常監視モジュール毎の前記監視パターンを受信し、各正常監視モジュールに対して、受信した監視パターンに書き換えるように制御する
ことを特徴とする監視システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate

【図49】
image rotate

【図50】
image rotate

【図51】
image rotate

【図52】
image rotate

【図53】
image rotate

【図54】
image rotate

【図55】
image rotate

【図56】
image rotate

【図57】
image rotate

【図58】
image rotate

【図59】
image rotate

【図60】
image rotate

【図61】
image rotate

【図62】
image rotate

【図63】
image rotate

【図64】
image rotate


【公開番号】特開2011−248865(P2011−248865A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2011−89302(P2011−89302)
【出願日】平成23年4月13日(2011.4.13)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】