JP5453324B2 - 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 - Google Patents
不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 Download PDFInfo
- Publication number
- JP5453324B2 JP5453324B2 JP2010550475A JP2010550475A JP5453324B2 JP 5453324 B2 JP5453324 B2 JP 5453324B2 JP 2010550475 A JP2010550475 A JP 2010550475A JP 2010550475 A JP2010550475 A JP 2010550475A JP 5453324 B2 JP5453324 B2 JP 5453324B2
- Authority
- JP
- Japan
- Prior art keywords
- module
- update
- modules
- unit
- unauthorized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 329
- 230000010365 information processing Effects 0.000 title claims description 30
- 238000012544 monitoring process Methods 0.000 claims description 888
- 238000001514 detection method Methods 0.000 claims description 307
- 230000008569 process Effects 0.000 claims description 245
- 238000012795 verification Methods 0.000 claims description 169
- 238000012545 processing Methods 0.000 claims description 147
- 238000003860 storage Methods 0.000 claims description 63
- 230000004075 alteration Effects 0.000 claims description 38
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 81
- 230000005540 biological transmission Effects 0.000 description 51
- 238000000605 extraction Methods 0.000 description 39
- 238000011084 recovery Methods 0.000 description 30
- 230000006870 function Effects 0.000 description 28
- 238000004891 communication Methods 0.000 description 25
- 238000004590 computer program Methods 0.000 description 21
- 238000004458 analytical method Methods 0.000 description 18
- 230000005856 abnormality Effects 0.000 description 15
- 230000004044 response Effects 0.000 description 15
- 230000004048 modification Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 10
- 238000009826 distribution Methods 0.000 description 9
- 238000002360 preparation method Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- IHPDTPWNFBQHEB-UHFFFAOYSA-N hydrobenzoin Chemical compound C=1C=CC=CC=1C(O)C(O)C1=CC=CC=C1 IHPDTPWNFBQHEB-UHFFFAOYSA-N 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Description
ところが、このような技術を利用しても、アプリケーションプログラムを保護するソフトウェア(以下、「保護制御モジュール」という)自体が攻撃者により攻撃され得る。保護制御モジュールが改ざんされると、アプリケーションプログラムが攻撃者の攻撃にさらされることになる。
上記のような問題を解決するために、本発明は、従来よりも高い確率で改ざんされている不正モジュールを特定することができる不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュールー特定プログラム、集積回路、ソフトウェア更新システム、およびソフトウェア更新方法を提供することを目的とする。
請求項3に記載の態様である不正モジュール特定装置において、前記仮定手段は、第1モジュールを前記正常モジュールと仮定し、前記矛盾検出手段は、前記第1モジュールと、前記第1モジュールによる改ざん検出結果が正常である第2モジュールとが改ざん検出を行なった第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記第1モジュールを不正モジュールと特定することを特徴とする。
請求項4に記載の態様である不正モジュール特定装置において、前記判断手段は、
一方向に循環して改ざん検出を行うモジュール群である循環パターンに含まれる複数のモジュールの識別情報を記憶している循環記憶手段と、前記循環パターンに含まれる複数のモジュールが一方向に循環して改ざん検出を行った結果がすべて正常である場合に、前記循環パターンに含まれる複数のモジュールを正常モジュールと仮定する仮定手段と、前記循環パターンに含まれる2以上のモジュールによる他のモジュールへの改ざん検出結果に矛盾があるか否か判断する矛盾検出手段と、矛盾がある場合、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定する特定手段とを備えることを特徴とする。
請求項5に記載の態様である不正モジュール特定装置において、前記矛盾検出手段は、前記循環パターンに含まれる第1モジュールと第2モジュールとが改ざん検出を行った前記循環パターンに含まれない第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定することを特徴とする。
請求項8に記載の態様である不正モジュール特定装置は、検証元のモジュールと検証先のモジュールとの組み合わせである監視パターンを記憶している監視パターン記憶手段を備え、前記循環記憶手段は、前記監視パターン記憶手段に記憶されている監視パターンから、一方向に循環して改ざん検出を行うモジュール群である循環パターンを検出し、検出した前記循環パターンに含まれる複数のモジュールの識別情報を記憶することを特徴とする。
請求項9に記載の態様である不正モジュール特定装置において、前記判断手段は、前記循環記憶手段に複数の循環パターンが記憶されている場合、循環パターンに含まれるモジュール数が少ない循環パターンから順に、前記仮定手段、前記矛盾検出手段、および前記特定手段の処理を行うこと特徴とする。
そこで、循環パターンが複数存在する場合には、モジュール数の少ない循環パターンから優先的に不正モジュール特定処理を行うことにより、不正な更新モジュールを効率的に発見し、無効化することができる。
そこで、循環パターンに含まれるモジュール数が同じである循環パターンが複数存在する場合には、循環パターン内の更新モジュールに対して改ざん検出処理を行っている循環パターン外のモジュールの数が多い循環パターンから、優先的に不正モジュール特定処理を行うことにより、全体の不正モジュール特定処理を効率的に行うことができる。
請求項12に記載の態様である不正モジュール特定装置において、前記循環記憶手段に記憶されている前記循環パターンリストは、各循環パターンに含まれるモジュール数が少ない順に、各循環パターンに含まれるモジュール数、および、当該循環パターンに含まれるモジュールに対する改ざん検出処理を行う当該循環パターンに含まれないモジュールの数を配置していることを特徴とする。
請求項13に記載の態様である不正モジュール特定装置は、前記情報処理装置で動作し、相互に改ざん検出処理を行う複数のモジュールについて、検証元のモジュールと検証先のモジュールとの組み合わせである監視パターンを生成する監視パターン生成手段と、生成した前記監視パターンを、前記情報処理装置へ送信する監視パターン送信手段とを備え、前記監視パターン生成手段は、複数のモジュールが一方向に循環して改ざん検出を行う循環パターンを含む前記監視パターンを生成すること特徴とする。
請求項14に記載の態様である情報処理装置は、秘匿データを含み、且つ、暗号化されているアプリケーションプログラムと、前記秘匿データを保護する機能を有する保護制御モジュールと、ソフトウェアを更新する機能を有し、相互に改ざんの有無を検証し合い、前記暗号化されているアプリケーションプログラムを復号するための復号鍵から所定の鍵分散法に従って生成された複数の分散鍵のうち、自身に割り当てられた分散鍵を保持する複数のモジュールとを備える情報処理装置であって、前記複数のモジュールが一方向に循環して改ざん検出を行うモジュール群である循環パターンを含む場合、前記循環パターンに含まれるモジュールに割り当てられる分散情報は、前記循環パターンに含まれないモジュールにも重複して割り当てられることを特徴とする。
そこで、循環パターンに含まれるモジュールに割り当てられる分散情報を、前記循環パターンに含まれないモジュールにも重複して割り当てることにより、前記復号鍵の復元が不能となる事態を防止することができる。
1.実施の形態1
ここでは、本発明に係る不正モジュール無効化システムの実施の形態として、ソフトウェア更新システム10について図面を参照しながら説明する。
1.1 ソフトウェア更新システム10の構成
(1)全体構成
図1は、ソフトウェア更新システム10の全体構成図である。
(2)機器100の構成
次に、機器100について説明する。
(a)機器100のソフトウェア構成
図1に示すように、機器100は、アプリケーションソフト(以下、「アプリ」という。)110、アプリ111、保護制御モジュール120、更新モジュール群130、およびアクセス制御モジュール140を含む。
保護制御モジュール120は、攻撃者によりアプリ110およびアプリ111が解析され、認証鍵などの秘匿データが抜き取られないようにアプリ110およびアプリ111を保護するための機能を制御するモジュールである。アプリを保護するための機能としては、アプリを利用しない時には暗号化して保存しておき、アプリを利用する時にのみ復号してメモリへロードする復号ロード機能や、アプリが改ざんされていないかをチェックする改ざん検出機能、デバッガなどの解析ツールが動作しないかをチェックする解析ツール検出機能などがある。
更新モジュール131、132、133は、それぞれ、保護制御モジュール120の改ざんの有無を検出する。各更新モジュールは、保護制御モジュール120が改ざんされている場合、更新サーバ200から更新用の保護制御モジュールをダウンロードし、改ざんされている保護制御モジュールを更新する機能を有する。
そして、更新モジュール群130は、攻撃者によって各更新モジュールが改ざんされ、各更新モジュールを不正に利用されることを防止するために、更新モジュール同士が相互に改ざん検出を実施する。そして、改ざん検出結果を、更新サーバ200へ送信する。更新サーバ200により、ある更新モジュールが改ざんされていると判断された場合には、他の正常な更新モジュールは、更新サーバ200からの無効化指示を受け、改ざんされた更新モジュールを無効化する。
アクセス制御モジュール140は、各更新モジュールが他のモジュールを消去するために必要なアクセス情報を保持する。アクセス情報は、例えば、消去対象であるモジュールが配置されているアドレスや、消去に必要な手順が書かれた手順書などである。なお、アクセス情報は、消去対象であるモジュール毎に、それぞれ個別のアクセス情報取得鍵で暗号化されている。
(b)更新モジュールの構成
次に、更新モジュール131、132、133の詳細について説明する。
更新モジュール本体は、受信部301、送信部302、制御部303、更新部304、検証部305、MAC値生成部306、MAC値テーブル更新部307、および分散情報保持部308から構成される。
制御部303は、受信部301が受信した各種指示や通知に基づいて、更新部304や検証部305を制御することにより各種の処理を行う。
更新部304は、制御部303の制御に基づき、更新サーバ200と連携して、機器100内部のソフトウェア、具体的には、アプリ110および111、保護制御モジュール120、更新モジュール131.132および133を更新する。
検証部305は、各モジュールに付加されている検証用証明書を用いて改ざん検出処理を行うとしてもよい。または、予め計算されたメッセージ認証コード(Message Authentication Code)(以下、「MAC値」という。)を用いてもよい。
MAC値生成部306は、検証鍵を保持している。MAC値生成部306は、検証部305が改ざん検出処理にMAC値を用いる場合、検証鍵を用いてMAC値を生成する。
MAC値生成部306は、改ざん検出処理の対象であるモジュールを取得し、MAC値を計算する。検証部305は、計算されたMAC値とMAC値テーブルに格納されている対象モジュールのMAC値とを比較することにより改ざん検出を行う。
なお、署名方式に関しては非特許文献1に詳しく説明されている。証明書に関しては非特許文献2に詳しく説明されている。また、分散情報に関しては特許文献2に詳しく説明されている。
(c)保護制御モジュール120の構成
ここでは、保護制御モジュール120の詳細について説明する。
同図に示すように、保護制御モジュール120は、受信部401、送信部402、制御部403、復号ロード部404、改ざん検出部405、解析ツール検出部406、暗復号鍵保持部407、暗復号鍵生成部408、暗復号鍵分散部409、証明書生成部410、および暗復号鍵復元部411から構成される。
送信部402は、更新モジュール131、132、133へ、各種依頼などを送信する。
制御部403は、復号ロード部404、改ざん検出部405、および解析ツール検出部406を制御することにより、アプリ110、111が攻撃者により攻撃されている場合に、それを検出する。
改ざん検出部405は、アプリ110、111の改ざん検出処理を実行する。改ざん検出処理は、アプリ110、111に付加されている検証用証明書を用いる方法と、MAC値を比較する方法とがある。
暗復号鍵生成部408は、アプリ110、111を暗復号するための暗復号鍵を生成する。
暗復号鍵分散部409は、初期設定時や次ラウンド準備時に、暗復号鍵から秘密分散法を用いて分散情報を生成する。
暗復号鍵復元部411は、配置情報に基づいて、各更新モジュールから、各更新モジュールに配布されていた分散情報を取得する。そして、暗復号鍵復元部411は、取得した分散情報から暗復号鍵を復元し、復元した暗復号鍵を復号ロード部404に送信する。
(d)アクセス制御モジュール140の構成
図4は、アクセス制御モジュール140の構成を機能的に示す機能ブロック図である。同図に示すように、アクセス制御モジュール140は、受信部501、送信部502、およびアクセス情報保持部503から構成される。
送信部502は、アクセス情報取得依頼に応じて、アクセス情報取得を依頼してきた更新モジュールへアクセス情報を送信する。
アクセス情報保持部503は、更新モジュール131、132、133毎に、そのモジュールを消去するためのアクセス情報を保持する。
更新モジュール131、132、133からアクセス情報取得依頼を受け付けると。アクセス情報保持部503は、消去対象の更新モジュールの識別子が付されたアクセス情報を、依頼元の更新モジュールへ送信する。
(e)機器100のハードウェア構成
続いて、図5を用いて、機器100のハードウェア構成について説明する。
EEPROM172に格納されている各種モジュールをCPU171が実行することにより、各種モジュールの各機能部が実現される。各機能部は、具体的には、コンピュータプログラムによって記述されている。
NIC174は、ネットワークに接続するための拡張カードである。
(f)ソフトウェア階層
続いて、図6を用いて、機器100のソフトウェア階層について説明する。
機器100の起動の際には、まず保護制御モジュール120及び更新モジュール群130が起動された上でアプリケーションが実行される。
(3)更新サーバ200の構成
次に、更新サーバ200の構成について説明する。
(a)全体構成
図1に示すように、更新サーバ200は、判断部210、更新用ソフトウェア配布部220、モジュール無効化部230、および通信部240から構成される。更新サーバ200は、具体的には、CPU、ROM、RAM、ハードディスクユニットなどを備えるコンピュータシステムである。CPUが、ROMまたはハードディスクユニットに記憶されているコンピュータプログラムにしたがって動作することにより、更新サーバ200は、上記の機能を発揮する。
更新用ソフトウェア配布部220は、保護制御モジュール120を更新する際に、更新モジュール131、132、133と連携して動作し、更新用のソフトウェアを機器100へ安全に送信する。
通信部240は、機器100と、更新サーバ200内部の各部との間で情報の送受信を行う。例えば、通信部240は、機器100から受信した改ざん検出結果を判断部210に送信する。なお、機器100と更新サーバ200との間の通信には、データを暗号化するなど、セキュリティの確保された通信路を用いてもよい。
(b)判断部210の構成
図7は、判断部210の構成を機能的に示す機能ブロック図である。
同図に示すように、判断部210は、受信部601、送信部602、指示生成部603、およびモジュール特定部604とから構成される。
送信部602は、指示生成部603によって生成された指示を、更新サーバ200内の各部へ出力する。
実施の形態1のモジュール特定部604は、例えば、各更新モジュールから受信した複数の改ざん検出結果を用いて、過半数の更新モジュールが「改ざんされている」と判断した更新モジュールを不正な更新モジュールであると特定する。具体的には、いま更新モジュール群130には、3つの更新モジュール131、132、133が含まれているので、2つの更新モジュールが「改ざんされている」と判断した更新モジュールを、不正な更新モジュールと特定する。
(c)更新用ソフトウェア配布部220
図8は、更新用ソフトウェア配布部220の機能的な構成を示す機能ブロック図である。
受信部701は、更新モジュール131、132、133から保護制御モジュール120に対する改ざん検出結果、および更新モジュール間の相互監視結果を受信する。
暗号鍵生成部703は、更新用ソフトウェアを更新モジュール131、132、133へ送信するときに使用する暗号鍵を生成する。
暗号鍵および更新用ソフトウェアは、更新モジュール131、132、133へ一度にすべてが送信されるのではなく、更新処理の中で、それぞれのデータが必要になったタイミングで、それぞれ各更新モジュールへ送信される。
更新モジュール選択部706は、保護制御モジュール120を更新する場合に、更新処理に使用する更新モジュールを選択する。暗号処理部704は、更新用の保護制御モジュールの暗号化に使用した暗号鍵を、更新モジュール選択部706が選択した更新モジュール固有の鍵を用いて暗号化する。そして、送信部702は、更新モジュール選択部706が選択した更新モジュールへ、暗号鍵および更新用の保護制御モジュールを送付する。
証明書生成部708は、更新モジュール131、132、133の認証公開鍵に対して署名秘密鍵を用いて認証証明書を生成する。また、証明書生成部708は、更新用の保護制御モジュールに対して署名秘密鍵を用いて、機器100にて、保護制御モジュールが正しく更新されたか否かを検証するための更新検証証明書を生成する。
更新用ソフトウェア保持部710は、保護制御モジュール120が攻撃された場合に更新するための更新用の保護制御モジュールを保持する。
暗号鍵保持部711は、暗号鍵生成部703が生成した暗号鍵および暗号処理部704により暗号化された暗号鍵を保持する。
(d)モジュール無効化部230
図9は、モジュール無効化部230の機能的な構成を示す機能ブロック図である。
受信部801は、判断部210から改ざんされた不正な更新モジュールを無効化する指示を受信する。また、受信部801は、更新モジュール131、132、133からアクセス情報取得鍵の取得依頼を受信する。
アクセス情報取得鍵保持部803は、アクセス制御モジュール140が保持するアクセス情報を復号するための鍵であるアクセス情報取得鍵を保持する。
更新モジュール選択部804は、改ざんされた不正な更新モジュールの無効化処理を行う更新モジュールを選択し、選択した更新モジュールに、不正な更新モジュールの無効化を指示する。
1.2 ソフトウェア更新システム10の動作
続いて、ソフトウェア更新システム10の動作を説明する。
(1)全体動作
図10は、ソフトウェア更新システム10全体の処理の流れを示したフローチャートである。
初期設定処理とは、保護制御モジュール120を更新するために必要となる各種の鍵データや、ソフトウェア更新後に必要となるデータ(秘密分散法を用いて分散した分散情報)などを更新モジュール131、132、133のそれぞれに埋め込む処理である。なお、初期設定処理は、機器100が工場で製造される際に行われる。その後、機器100は、工場から出荷され、ユーザの利用に供される。
これと同時に、更新モジュール131、132、133は、保護制御モジュール120の改ざん検出処理を実行し、保護制御モジュール120が攻撃されているか否かをチェックする検知処理を行う(S200)。
次に、ソフトウェア更新システム10は、更新モジュール131、132、133と更新用ソフトウェア配布部220とが互いに正しいソフトウェアであるか否かを確認するための相互認証処理を行う(S400)。
回復処理とは、更新モジュール群130に含まれる更新モジュール間で相互に改ざん検出処理を行った後、更新用の保護制御モジュールを機器100へインストールする。そして、機器100において、更新モジュール131、132、133へ埋め込まれた分散情報を用いて、保護制御モジュールを更新する処理である。
ここで、ソフトウェア更新システム10は、ステップS400の相互認証処理、および、ステップS400の回復処理において、更新モジュール131、132、133の改ざんが検出された場合には、改ざんされた不正な更新モジュールを消去する無効化処理を行う。
(2)初期設定処理の動作
ここでは、図11から図13を用いて、ソフトウェア更新システム10の初期設定処理(図10のS100)の詳細について説明する。
ソフトウェア更新システム10は、機器100の工場製造時に、機器100の不揮発メモリへアプリ(110、111)、保護制御モジュール120、更新モジュール(131、132、133)などをインストールする(S1000)。
これらのソフトウェアには、ソフトウェアが改ざんされているか否かを検証するための改ざん検出用証明書が付加されている。この改ざん検出用証明書は、更新サーバ200の更新用ソフトウェア配布部220が保持する署名秘密鍵により署名が施されている。なお、S1000では、上記のソフトウェア以外にも、機器100の動作に必要なソフトウェアがインストールされる。
図11に示すように、保護制御モジュール120には暗復号鍵が埋め込まれ、更新モジュール131、132、133には署名公開鍵、検証鍵及び認証鍵対が埋め込まれる(この時点では、まだ、更新モジュールに分散情報の組は埋め込まれてない)。更に、更新モジュール131、132、133には、それぞれの更新モジュールを識別するための更新モジュール識別子が埋め込まれ、その状態で機器100にインストールされる。
機器100が、コンテキストを切り替えながら複数のアプリを実行する場合には、コンテキスト切り替えのタイミングで、暗復号鍵を用いて、アプリ110、111が使用しているデータの暗号化及び復号を行うことにより、アプリ110、111の実行時に、デバッガなどの解析ツールによって、データが抜き取られることを防止する。
保護制御モジュール120は、生成した分散情報と暗復号鍵証明書とを、更新モジュール131、132、133へ送信する(S1004)。
(3)更新モジュール初期化処理
図13は、更新モジュール初期化処理(図12のS1005)の動作を示すフローチャートである。
更新モジュール131は、保護制御モジュール120から分散情報、配置情報及び暗復号鍵証明書を受信し、受信した各情報を分散情報保持部308に保持する(S1006)。
生成したハッシュ値が、それぞれの改ざん検出用証明書に記述されているハッシュ値と一致すれば(S1008でY)、更新モジュール132、133、保護制御モジュール120のそれぞれに対してMAC値を生成する。そして、生成したMAC値を、MAC値テーブルとして保持する(S1009)。
(4)検知処理の動作
続いて、図14のシーケンス図を用いて、ソフトウェア更新システム10の検知処理(図10のS200)の詳細について説明する。
機器100でアプリ110、111が動作しているとき、機器100内部では、保護制御モジュール120が復号ロード機能、改ざん検出機能、解析ツール検出機能などの機能を制御し、アプリ110、111を攻撃者による攻撃から保護する。
MAC値が一致すれば、保護制御モジュール120は改ざんされていないと判定し、MAC値が一致しなければ、保護制御モジュール120は改ざんされていると判定する。
その後の処理についても、更新モジュール131が保護制御モジュール120の改ざんを検出した場合を中心に記載しているが、更新モジュール132、133が保護制御モジュール120の改ざんを検出した場合も基本的には同様の処理が行われる。
保護制御モジュール120が改ざんされていないと判定した場合(S2000でN)、更新モジュール131は、判断部210や他の更新モジュールへ通知を行わず、改ざん検出処理へ戻る。
判断部210は、更新モジュール131、132、133から改ざん検出結果を受信する。
相互監視処理および無効化処理の詳細については後述する。なお、相互監視処理では、本発明に係る実施の形態2で説明する方法を用いて、不正モジュール特定処理を行ってもよい。
(5)解析・判断処理の動作
続いて、図15のシーケンス図を用いて、解析判断処理(図10のS300)の詳細について説明する。なお、図15では、更新モジュール131、132、133のそれぞれが個別に行う処理を、更新モジュール群130が行う処理としてまとめて記載している。
判定方法の一例として、例えば、所定数の更新モジュールが改ざんを検出した場合には、保護制御モジュール120は不正である(改ざんされている)と判定し、また、所定数未満の更新モジュールが改ざんを検出した場合には、保護制御モジュール120は正常である(改ざんされていない)と判定する。前記所定数は、更新モジュール群130に含まれる更新モジュールの過半数としてもよい。
更新モジュール群130は、改ざん情報の通知を依頼されると、改ざん情報を収集して(S3002)、判断部210へ通知する(S3003)。
保護制御モジュール120を回復する場合(S3004でY)、判断部210は、更新用の保護制御モジュールを準備し(S3006)、更新モジュール群130に、更新処理の開始を指示する(S3007)。また、機器100をリボークする場合には、アプリ110、111にサービスを提供しているサーバに対して、機器100をリボークするように依頼する(S3005)。何もしない場合(S3004でN)、検知処理へ戻る。
(6)相互認証処理の動作
次に、図16および図17のシーケンス図を用いて、ソフトウェア更新システム10による相互認証処理(図10のS400)の詳細について説明する。
更新用ソフトウェア配布部220は、更新モジュール131、132、133へ更新処理の開始を指示した後、各更新モジュールとの間で、それぞれ1対1の相互認証処理を行う。これにより、機器100が不正なサーバと接続したり、更新サーバ200が不正な機器と接続することを防止する。なお、相互認証処理において、更新用ソフトウェア配布部220は、署名秘密鍵および署名公開鍵を使用し、各更新モジュールは、認証鍵対(認証秘密鍵及び認証公開鍵)を使用する。
更新モジュール131は、乱数生成器を用いて乱数(チャレンジデータ)を生成し(S4000)、生成したチャレンジデータを更新用ソフトウェア配布部220へ送信する(S4001)。この時、更新モジュール131を識別するための更新モジュール識別子を、チャレンジデータと共に送信する。 更新用ソフトウェア配布部220は、受信したチャレンジデータに署名秘密鍵を用いて署名データを生成し(S4002)、生成した署名データをレスポンスデータとして、更新モジュール131へ返信する(S4003)。
検証の結果、レスポンスデータが正しく、更新用ソフトウェア配布部220が正当なモジュールである場合(S4005でY)、更新モジュール131は、処理を継続する。レスポンスデータが正しくなく、更新用ソフトウェア配布部220が不正なモジュールである場合(S4005でN)、更新モジュール131は、エラーを出力し、処理を停止する(S4006)。
図17は、更新用ソフトウェア配布部220が各更新モジュールを認証するときのシーケンス図である。
更新用ソフトウェア配布部220は、チャレンジデータを送信してきた各更新モジュールに対して、乱数生成器を用いてそれぞれ異なる乱数(チャレンジデータ)を生成し(S4100)、生成したチャレンジデータを、各更新モジュールへ個別に送信する(S4101)。
このとき、各更新モジュールは、レスポンスデータと共に認証公開鍵と認証鍵証明書とを更新用ソフトウェア配布部220へ送信する。
認証鍵証明書及び認証公開鍵が不正であれば、更新用ソフトウェア配布部220は、処理を停止する(S4106)。
次に、更新用ソフトウェア配布部220は、正しいレスポンスデータを返した更新モジュール(正当な更新モジュール)の数が、予め設定されている回復処理に必要な数以上であるかを判断する(S4108)。
また、更新用ソフトウェア配布部220は、相互認証処理において、正当性が確認されたすべての更新モジュールの更新モジュール識別子を記載した認証リストを作成する。そして、これ以降の回復処理では、認証リストに識別子が記載されている更新モジュールのみを利用する。
(7)回復処理の動作
続いて、図18〜23を用いて、回復処理(図10のS500)の詳細について説明する。回復処理は、上述した相互認証処理において、相互認証が成功した場合に、改ざんされた保護制御モジュール120を、新しい更新用の保護制御モジュールへ更新する処理である。
先ず、各更新モジュール131、132、133が、相互監視処理を行う(S5000)。相互監視処理では、各更新モジュールが、他の更新モジュールの改ざん検出処理を実行する。
さらに、更新用保護制御モジュールを用いて、保護制御モジュール120を更新する更新処理を行う(S5100)。
なお、本発明のソフトウェア更新システムは、上記のすべての処理は必須ではない。ソフトウェア更新システムは、外部から更新のトリガを与えられて、新しい保護制御モジュールを用いて、改ざんされた保護制御モジュール120を更新する更新処理(S5000)、及び、更新モジュールが相互に改ざん検出を実施する回復時相互監視処理(S5100)があればよい。
(8)相互監視処理
ここでは、図19のシーケンス図を用いて、相互監視処理(図18のS5000)の詳細について説明する。
各更新モジュールは、各更新モジュール131、132、133のMAC値を、検証鍵を用いて算出し、MAC値テーブルに保持されている、初期設定時に算出されたMAC値と比較することにより改ざん検出処理を行う。
各更新モジュールは、改ざん検出結果を判断部210へ通知する(S5002)。
判断部210は、各更新モジュールから改ざん検出結果を受信し(S5003)、改ざんされた更新モジュールがあるか否かを判定する(S5004)。
改ざんされた更新モジュールがないと判定した場合には(S5004でN)、処理を継続する。
(9)更新処理
続いて、図20および図21のシーケンス図を用いて、更新処理(図18のS5100)の詳細について説明する。
更新モジュール131は、多重暗号化新保護制御モジュールと第1の鍵とを受信する。更新モジュール131は、第1の鍵を用いて、多重暗号化新保護制御モジュールを復号し、暗号化新保護制御モジュールを取得する(S5109)。そして、復号が終了すると、その旨を更新用ソフトウェア配布部220へ通知する(S5110)。
更新モジュールの選択は、上記と同様に判断部210内の不正モジュール特定部604に記憶されている不正な更新モジュール以外の更新モジュールを選択する。
更新モジュール131は、更新用ソフトウェア配布部220からの依頼を受けて、暗号化新保護制御モジュールを更新モジュール132へ送信する(S5115)。
更新モジュール132は、S5117で取得した新しい保護制御モジュールを保護制御モジュール120に上書きし、更新する(S5118)。そして、更新モジュール132は、更新の終了を他の更新モジュールへ通知する(S5119)。 続いて、各更新モジュール131、132、133のそれぞれは、事前に受信した更新検証証明書を用いて、保護制御モジュールが正しく更新されたか否か検証し(S5120)、検証結果を更新用ソフトウェア配布部220へ通知する(S5121)。
正しく更新されている場合(S5121でY)、更新用ソフトウェア配布部220は、更新処理終了を各更新モジュールへ通知する(S5124)。
以上説明したように、更新処理では、更新用ソフトウェア配布部220が更新用の新保護制御モジュールを複数の鍵を用いて多重に暗号化し、更新モジュール群130へ送信する。更新モジュール群130は、受信した新保護制御モジュールで、保護制御モジュール120を更新する。
(10)相互監視処理と更新処理との関係
上述した相互監視処理と更新処理とは、互いに連携しながら実行される。
先ず、機器100は、更新サーバ200から多重暗号化新保護制御モジュールが送付される前に、相互監視処理(相互監視1)を実施する。不正な更新モジュールを選択して、更新処理を行わないようにするためである。
その後、機器100は、更新サーバ200により送信された第1の鍵を更新モジュール131が受信する前に、相互監視処理(相互監視2)を実施し、機器100が第1の鍵を受信する時に、不正な更新モジュールを選択していないことを確認する。
さらに、更新モジュール132が第2の鍵を受信し、第2の鍵を用いて暗号化新保護制御モジュールを復号する間、定期的に、更新モジュール132による復号処理を中断し、相互監視処理(相互監視5−1、5−2)を実施する。最後に、相互監視処理(相互監視6)を実施する。
ここで、相互監視処理において、更新モジュールに改ざんが検出されたた場合には、回復処理を停止する。これにより、更新サーバ200は、第1の鍵や第2の鍵の送信を中止することが可能となり、攻撃者は、多重暗号化新保護制御モジュールを復号するための鍵を入手することが不可能となる。
(11)再暗号化処理
続いて、図23のシーケンス図を用いて、再暗号化処理(図18のS5200)の詳細について説明する。
各更新モジュール131、132、133は、保護制御モジュール121からの依頼を受けて、分散情報及び暗復号鍵証明書を送信する(S5202)。
旧暗復号鍵が正しく復元された場合(S5205でY)、保護制御モジュール121の暗復号鍵生成部408は、新しい暗復号鍵(ここでは、「新暗復号鍵」という。)を生成する(S5207)。そして、復号ロード部404は、旧暗復号鍵を用いて暗号化されたアプリ(110、111)を復号し、新暗復号鍵を用いてアプリ(110、111)を再暗号化する(S5208)。
その後、初期設計時に同じ値に設定されて配布された分散情報同士をグループにまとめる。そして、各グループに含まれる分散情報同士の値を比較し、同じ値になる分散情報同士を更に1つのサブグループにまとめる。そして、すべてのグループの中からサブグループを1つずつ選び出す組み合わせを全て生成する。
すべての組み合わせについて、旧暗復号鍵の生成・検証を行った後、検証通過識別情報の付いているサブグループに含まれる分散情報を取り除く。
分散情報から旧暗復号鍵を復元する方法や不正な更新モジュールの特定方法については、特許文献2の50ページから52ページに詳しく説明されている。特許文献2における秘密鍵dを本実施形態の暗復号鍵に対応させ、認証局装置を本実施形態の保護制御モジュール121に対応させ、分散情報保持装置を更新モジュール131、132、133に対応させることで、特許文献2と同じ方法が利用可能である。
(12)次ラウンド準備処理の動作
続いて、図24のシーケンス図を用いて、次ラウンド準備処理(図10のS600)の詳細について説明する。次ラウンド準備処理では、回復処理の終了後、次の回復処理のための準備を行う。以下、具体的に説明する。
ここで、初期設計処理時と同様に、分散情報は、更新モジュールの数と同数が生成され、それぞれの更新モジュールが、異なる分散情報のペアを保持するように送信される。新暗復号鍵証明書は、各更新モジュール131、132、133へ同じ証明書が送信される。
(13)無効化処理の動作
続いて、図25のシーケンス図を用いて、無効化処理の詳細について説明する。
ここでは、更新モジュール133が改ざんされ、それを更新モジュール131および132が検出した場合の処理を例に、無効化処理の動作の詳細を説明する。
判断部210は、改ざんされた更新モジュールの識別情報と共に、モジュール無効化部230へ無効化の指示を出力する(S7002)。
更新モジュール131は、モジュール無効化部230から、更新モジュール133の無効化依頼を受信すると、モジュール無効化部230に対し、更新モジュール133を無効化するためのアクセス情報取得鍵の送付を依頼する(S7004)。更に、更新モジュール131は、アクセス制御モジュール140へ、更新モジュール133を無効化するためのアクセス情報の取得を依頼する(S7005)。
確認した結果、問題なければ(S7006でY)、依頼してきた更新モジュール131へ更新モジュール133を無効化するためのアクセス情報取得鍵を送付する(S7008)。
ここで、ステップS7003では、更新モジュール131に対して、改ざんされた更新モジュール133の無効化処理を依頼しているが、正当な更新モジュールを1つ選択する方法としては、本発明に係る不正モジュール特定処理の結果を用いて、正当なモジュールを1つ選択するとしてもよい。
分散情報の消去を考慮した無効化処理については、特許文献2の56ページから64ページに、「脱退処理」として詳しく説明されている。特許文献2における秘密鍵dを、本実施形態の暗復号鍵に対応させ、分散情報保持装置を、本実施形態の更新モジュール131、132、133に対応させることで、特許文献2と同じ方法が利用可能である。なお、分散情報の消去を考慮した無効化処理を行いには、無効化する不正な更新モジュール以外に、正当な更新モジュールが最低3つ必要である。無効化処理に保護制御モジュール120を使用する場合は、初期設計時と同じ方法で再度分散情報を生成し、配布すればよい。
2.実施の形態2
ここでは、本発明に係る不正モジュール無効化システムの実施の形態2について、図面を参照しながら説明する。
しかし、更新モジュールが改ざんされている場合には、実際には改ざんされていないモジュールを「改ざんされている」と誤判断したり、実際には改ざんされているモジュールを「改ざんされていない」と誤判断する可能性がある。
2.1 ソフトウェア更新システム10aの構成
実施の形態2に係るソフトウェア更新システム10aの構成について、図79を用いて説明する。
情報処理装置100aは、モジュール131、モジュール132、モジュール133を含む。これらのモジュールは、相互に改ざん検出処理を行い、改ざん検出結果を、ネットワークを介して不正モジュール特定装置200aへ送信する。なお、情報処理装置100aは、さらに多くのモジュールを含むように構成してもよい。
受信手段2310は、情報処理装置100aのモジュール131、132、133から、改ざん検出結果を受信する。
判断手段210aは、前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する。
仮正常モジュール群記憶手段2330は、正常モジュールと仮定したモジュールの識別情報を記憶する。
仮正常モジュール群生成手段2350は、仮定手段2340により正常モジュールと仮定された前記モジュールを起点として、改ざん検出処理の結果、改ざんが検出されないモジュールを正常モジュールと仮定し、識別情報を仮正常モジュール群記憶手段2330に記録する手順を繰り返す。
特定手段2370は、矛盾検出手段2360により矛盾が検出された場合に、仮定手段2340において正常モジュールと仮定した前記モジュールを不正モジュールと特定する。
2.2 ソフトウェア更新システム10bの構成
ここでは、本発明に係る実施の形態2について、より具体的に説明する。
(1)全体構成
図80は、実施の形態2をより具体的に説明するための実施例であるソフトウェア更新システム10bの構成を示すブロック図である。
機器100bは、アプリ110、アプリ111、保護制御モジュール120、更新モジュール群130b、およびアクセス制御モジュール140から構成される。
図80において、実施の形態1と同様の機能を有する構成要素には、図1と同一の符号を付し、詳細な説明を省略する。以下では、実施の形態2の特徴的な構成要素および処理について詳細に説明する。
(2)更新モジュール群130bの構成
図26は、実施の形態2の更新モジュール群130bの構成を示す図である。
(3)判断部210bの構成
図27は、実施の形態2に係る判断部210bの構成を機能的に示す機能ブロック図である。
実施の形態1の判断部210との相違点は、モジュール特定部604の内部に、不正モジュール特定部605を備える点、および、循環検出部606を備える点である。
(a)不正モジュール特定部605の構成
ここでは、実施の形態2の特徴的な構成要素である不正モジュール特定部605の詳細な構成について説明する。
特定結果送信部652は、矛盾検出部656から不正な更新モジュールの特定結果を受け付けると、特定結果を、指示生成部603に出力する。
仮正常更新モジュール群は、正常モジュール仮定部653により、正常なモジュールと仮定された更新モジュールで構成される概念上のグループである。具体的には、正常モジュール仮定部653は、正常であると仮定したすべての更新モジュールの識別情報を含む仮正常更新モジュール群構成情報を生成する。
正常モジュール仮定部653は、循環監視パターン取得の指示を循環監視パターン取得部657へ出力する。循環監視パターン取得部657から特定結果を受け付けると、正常モジュール仮定部653は、循環監視パターン内の更新モジュール以外の更新モジュールを正常な更新モジュールと仮定する。なお、循環監視パターンの詳細については後述する。
検証結果判定部654は、仮正常更新モジュール群内の更新モジュールによる他の更新モジュールに対する改ざん検出結果が正常の場合、検証された更新モジュールは正常な更新モジュールであるとみなす。つまり、正常な更新モジュールが「正常である」と判断した更新モジュールは、正常な更新モジュールとみなすことができる。
正常とみなすことができる更新モジュールが存在しない場合、検証結果判定部654は、その旨を仮正常更新モジュール群抽出部655へ出力する。
仮正常更新モジュール群抽出部655は、正常とみなすことができる更新モジュールの識別番号と仮正常更新モジュール群構成情報を受け取る。そして、受け取った識別番号を、受け取った仮正常更新モジュール群構成情報へ追加して、構成情報を更新する。仮正常更新モジュール群抽出部655は、更新した仮正常更新モジュール群構成情報を、検証結果判定部654へ出力する。
矛盾検出部656は、仮正常更新モジュール群抽出部655から仮正常更新モジュール群構成情報を受け取ると、矛盾検出処理を行う。詳細については後述する。
そして、循環監視パターンに含まれるすべての更新モジュールが不正モジュールであると特定されたら、矛盾検出部656は、その旨を特定結果送信部652および正常モジュール仮定部653へ出力する。
(b)循環検出部606の構成
ここでは、実施の形態2の特徴的な構成要素である循環検出部606の詳細な構成について説明する。
取得指示受信部661は、不正モジュール特定部605から循環監視パターンの取得指示を受け付けると、循環監視パターン取得部663へ指示を出力する。
循環監視パターン取得部663は、循環監視パターン記憶部666から循環監視パターンを読み出し、読み出した循環監視パターンに含まれる一群の更新モジュールが一方向に循環して行う改ざん検出処理の結果がすべて正常であるか判断する。すべて正常である場合、循環監視パターン取得部663は、循環監視パターン記憶部666から読み出した当該循環監視パターンを、循環監視パターン送信部662へ出力する。また、当該循環監視パターンを、取得済み循環監視パターン記憶部664へ出力する。
監視パターン記憶部665は、更新モジュール群130bに含まれる更新モジュール間の監視パターンを記憶している。監視パターンとは、更新モジュール群130bに含まれる更新モジュール131〜137が相互に改ざん検出処理を行うときの、監視対象(検証対象)のモジュールに関する情報を記述したものである。具体的には、監視パターンには、モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等が記述されている。
たとえば、矢印2000は、更新モジュール131から更新モジュール132へ向いていることから、更新モジュール131は、更新モジュール132の改ざん検証処理を行う。矢印2001は、更新モジュール131から更新モジュール134へ向いていることから、更新モジュール131は、さらに、更新モジュール134の改ざん検証処理を行う。矢印2003は、更新モジュール133から更新モジュール131へ向いていることから、更新モジュール133は、更新モジュール131の改ざん検出処理を行う。
循環監視パターンとは、一方向に循環して改ざん検出処理を行う複数の更新モジュールについて、監視対象(検証対象)のモジュールに関する情報を記述したものである。具体的には、循環監視パターンには、モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等が記述されている。
一方向に循環して改ざん検出処理を行う一群の更新モジュールとは、例えば、更新モジュール131、更新モジュール132、および更新モジュール133である。図30の矢印が示すように、更新モジュール131が更新モジュール132を検証し、更新モジュール132が更新モジュール133を検証し、更新モジュール133が更新モジュール131を検証する関係を有している。
また、図30では、更新モジュール131、更新モジュール132、更新モジュール135、更新モジュール137、更新モジュール133も一方向に循環して改ざん検出処理を行っており、更新モジュール133、更新モジュール136、更新モジュール137も一方向に循環して改ざん検出処理を行っている。
(b)相互監視結果(改ざん検出結果)の矛盾
ここでは、改ざん検出結果の矛盾について説明する。
更新モジュール群130bが、図30に示した監視パターンで相互に改ざん検出処理を行った場合、更新モジュール131〜137は、それぞれの改ざん検出結果を、更新サーバ200bの判断部210bへ送信する。
例えば、○印2010は、更新モジュール131が、更新モジュール132の改ざん検出処理を行った結果、「改ざんされていない」と判定されたことを表している。
また、○印2012は、更新モジュール133が、更新モジュール131の改ざん検出処理を行った結果、「改ざんされていない」と判定されたことを表している。
また、×印2013は、更新モジュール134が、更新モジュール136の改ざん検出処理を行った結果、「改ざんされている」と判定されたことを表している。
なお、図31では、すべての矢印に対応して検出結果が記載されている。これは、判断部210bが、すべての改ざん検出結果の受信が完了していることを表している。
次に、図32を用いて、矛盾について説明する。先ず、更新モジュール132を正常な更新モジュールであると仮定する。そして、更新モジュール133および135は、○印2015および○印2016により表されるように、何れも更新モジュール132によって、「改ざんされていない」と判定されている。正常な更新モジュール132によって、「改ざんされていない」と判定された更新モジュール133および135は、共に正常なモジュールであると仮定することができる。
(4)不正モジュール特定処理の動作
ここでは、図33および図42を用いて、ソフトウェア更新システム10bにおける不正な更新モジュールの特定処理の動作について説明する。
(a)通常の監視パターンの場合
図33は、不正モジュール特定処理の動作を示すフローチャートである。
以下では、図34に示した改ざん検出結果を具体例として用い、更新モジュール131に対する不正モジュール特定処理の動作について説明する。
まず、正常モジュール仮定部653は、更新モジュール131を正常な更新モジュールであると仮定し、更新モジュール131のみを含む仮正常更新モジュール群を生成する(S8001)。
図34によれば、○印2021および○印2022に表されるように、更新モジュール132および更新モジュール134が正常と判定された。
仮正常更新モジュール群抽出部655は、受け取った識別情報を仮正常更新モジュール群に追加する。これにより、正常と判定された更新モジュール132および更新モジュール134が仮正常更新モジュール群に追加される(S8003)。
このとき、図34に示す仮正常更新モジュール群2031が形成されている。仮正常更新モジュール群2031に含まれる更新モジュールの検証結果を見ると、更新モジュール133による、更新モジュール136に対する検証結果は、○印2025であるのに対して、更新モジュール134による更新モジュール136に対する検証結果は×印2026であるから、検証結果に矛盾がある。
仮正常更新モジュール内に矛盾がない場合(S8004でN)、ステップS8001において、正常と仮定した更新モジュール131についての特定は行なわない(S8006)。
更新モジュール群130bに含まれるすべての更新モジュールについてステップS8001からステップS8006までの処理が終了するまで繰り返す(S8007)。
このように、実施の形態2における不正モジュール特定処理は、判断対象として一つの更新モジュールに着目し、当該更新モジュールを正常なモジュールと仮定した上で、その仮定に基づいて各更新モジュールの改ざん検出結果に矛盾があるか否か検証する。そして、矛盾がある場合に、判断対象の更新モジュールを、不正なモジュールであると特定する。
(b)循環監視パターンの場合
次に、更新モジュール群130bに含まれる更新モジュール間の監視パターンに、循環監視パターンが含まれる場合の不正モジュール特定処理について説明する。
このような場合、不正モジュール特定処理において、更新モジュール133、更新モジュール136、更新モジュール137を一群として扱うことができる。
以下では、図36および図37を用いて、より具体的に説明する。
図36において、更新モジュール133、136、137から成る循環監視パターンは、改ざん検出結果がすべて正常である。このため、更新モジュール133、136、137を、一群として扱うことができる。
また、図36の例では、更新モジュール136および更新モジュール137が、相互に改ざん検出処理を行っている。更新モジュール136は、更新モジュール137を「改ざんされている」と判断しており、更新モジュール137は、更新モジュール136を「改ざんされていない」と判断している。このように、循環監視パターン内の一組の更新モジュールの相互監視結果に矛盾がある場合にも、更新モジュール133、136,137を一群として、すべて不正な更新モジュールであると特定することができる。
ここで、更新モジュール132による更新モジュール135の改ざん検出結果(○印2061)と、更新モジュール133による更新モジュール135の改ざん検出結果(×印2062)とに矛盾がある。このように、循環監視パターン外の更新モジュールに対する改ざん検出結果が矛盾している場合にも、更新モジュール131、132、133を一群として、すべて不正な更新モジュールであると特定することができる。
続いて、図38のフローチャートを用いて、循環監視パターンを考慮した不正モジュール特定処理の動作について説明する。
循環監視パターンが存在する場合(S8101でY)、当該循環監視パターンの改ざん検出結果がすべて正常であるか否か判断する(S8102)。
当該循環監視パターンの改ざん検出結果がすべて正常である場合(S8102でY)、循環監視パターン内の更新モジュールが、改ざん検出処理を行う同一の更新モジュールについて、検証結果が一致するか否か判断する(S8103)。
循環監視パターンの監視結果がすべて正常でない場合(S8102でN)、および、循環監視パターン内の更新モジュールが、改ざん検出処理を行う同一の更新モジュールについて、検証結果が一致する場合(S8103でY)、更新モジュール群130bの監視パターンの中に、他の循環監視パターンが存在するか判断する(S8105)。
(c)循環監視パターン選択方法
次に、循環監視パターン選択方法について説明する。
ここで、循環監視パターンに含まれる更新モジュールの数(以下では、「循環のサイズ」と表現する。)が大きい場合、循環監視パターンに含まれるすべての更新モジュールが同時に改ざんされている可能性は低いと考えられる。また、循環のサイズが大きいほど、すべての検証結果が正常となる可能性は低くなる。
また、循環のサイズが同じである循環監視パターンが複数存在する場合には、循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールの数を基に、不正モジュール特定処理を行う場合の優先順位を決定する。
そこで、循環のサイズが同じである循環監視パターンが複数存在する場合には、循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールの数が多い循環監視パターンから、優先的に不正モジュール特定処理を行う。
同図に示すように、循環監視パターンリスト2100は、各循環監視パターンについて、循環のサイズ、当該循環監視パターンを構成する更新モジュールの識別情報、および当該循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールの数(ここでは、「循環への入力」という。)を対応付けて記憶している。
図40は、循環監視パターンリスト2200のデータ構成を示す図である。
次に、図41および図42のフローチャートを用いて、循環監視パターンが複数存在する場合の不正モジュール特定処理の動作について説明する。
循環監視パターンが存在する場合(S8111でY)、循環監視パターン取得部663は、循環監視パターン記憶部666に記憶されている循環監視パターンリストから、循環のサイズが最小である循環監視パターンを探す(S8112)。さらに、循環のサイズが同一である循環監視パターンが複数存在する場合には、循環監視パターン取得部663は、循環監視パターン内の更新モジュールを検証する外部の更新モジュールの数が多い循環監視パターンを選択する(S8113)。
すべて正常でない場合(S8114でN)、ステップS8118へ進む。
すべて正常である場合(S8114でY)、矛盾検出部656は、循環監視パターン内の更新モジュールが、循環監視パターン内の他の更新モジュールの改ざん検出処理を行った結果、不正と判定された更新モジュールが存在するか確認する(S8115)。
不正と判定された更新モジュールが存在しない場合(S8115でN)、矛盾検出部656は、循環監視パターン内の更新モジュールが、循環監視パターン外の同一の更新モジュールに対して行なった改ざん検出結果に、矛盾があるか否か判断する(S8117)。
検証結果が一致する場合(S8117でY)、循環監視パターン取得部663は、循環監視パターン記憶部666に記憶されている循環監視パターンリストを参照し、他に循環監視パターンが存在するかを判断する(S8118)。
他に循環監視パターンが存在しない場合(S8118でN)、不正モジュール特定処理を終了する。
(5)分散情報について
ここでは、循環監視パターンと更新モジュールが保持する分散情報との関係について説明する。
特許文献2に記載されている方法を用いる場合、同一の分散情報を複数の更新モジュールへ送信する。これにより、ある更新モジュールが無効化され、当該更新モジュールから分散情報が取得できない場合であっても、同一の分散情報を保持する他の更新モジュールから分散情報を取得することにより、暗復号鍵を復元することができる。
そこで、実施の形態2の保護制御モジュール120は、暗復号鍵の復元が不能となる事態を防止するために、循環監視パターンが存在する場合には、循環監視パターンの構成に基づいて、各更新モジュールに分散情報を送信する。
図43は、監視パターンの一例を示す図である。同図によれば、更新モジュール131、132、133、および、更新モジュール133、136、137が循環監視パターンである。
このとき、循環監視パターン内の更新モジュール131、132、133のみが保持し、他の更新モジュールが保持しない分散情報がある場合、更新モジュール131、132、133のすべてが無効化されると、保護制御モジュール120は、暗復号鍵を復元できなくなる。
そこで、保護制御モジュール120は、図44に示すように、分散情報1、分散情報2、分散情報3、分散情報4、分散情報5、分散情報6、および分散情報7のすべてについて、更新モジュール131、132、133のみが保持する分散情報、および、更新モジュール133、136、137のみが保持する分散情報が存在しないように、各分散情報を、各更新モジュールへ送信する。
3.実施の形態3
ここでは、別の実施の形態について説明する。
3.1 改竄監視システム10ca
別の実施の形態としての改竄監視システム10caについて、図77に示す構成図を用いて、説明する。
情報セキュリティ装置100caは、改竄を監視する複数の監視モジュール131ca、132ca、133ca、134caを有する。
管理装置200caは、情報セキュリティ装置100caから、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信部240caと、受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出部678caと、前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第一仮定部673caと、改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第二仮定部679caと、前記第二仮定部679caによる手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断部676caとから構成されている。
これに対して、判断部676caにより、全ての監視モジュールに対して改竄されていると仮定されたと判断された場合には、この判断結果は、検出部678caの検出の結果と矛盾している。これは、第一仮定部673caによる仮定に誤りがあったためである。
以上のようにして、正常な監視モジュールを決定することができるので、正常な監視モジュールの監視結果は信頼できるものであり、有効に利用することができる。
なお、以上のようにして、正常な監視モジュールが決定できた場合には、上記において不正とした仮定を全て取り消す。
3.2 ソフトウェア更新システム10cb
別の実施の形態としてのソフトウェア更新システム10cb(図示していない)について、説明する。
(1)ソフトウェア更新システム10cbの構成
ソフトウェア更新システム10cbは、更新サーバ200cb(図示していない)及び機器100から構成される。機器100は、実施の形態1の機器100と同一の構成を有している。更新サーバ200cbは、実施の形態1の更新サーバ200と類似の構成を有しており、更新サーバ200の判断部210に代えて、図45に示す判断部210cbを有している。その他の構成は、更新サーバ200と同一である。以下において、更新サーバ200との相違点を中心として説明する。
(2)判断部210cbの構成
判断部210cbは、図27に示す判断部210bと類似の構成を有している。判断部210cbは、判断部210bのモジュール特定部604bに代えて、図45に示すように、モジュール特定部604cbを有している。モジュール特定部604cbは、この図に示すように、不正モジュール特定部605及び正常モジュール特定部607を有している。不正モジュール特定部605は、図27に示す不正モジュール特定部605と同一である。以下に正常モジュール特定部607について説明する。
(3)正常モジュール特定部607
正常モジュール特定部607は、以下に示すようにして、機器100における各更新モジュールの相互監視結果を用いて、改竄されていない正常な更新モジュールを特定する。
(a)特定指示受信部671
特定指示受信部671は、指示生成部603から正常な更新モジュールの特定の指示を示す正常モジュール特定指示を受信する。正常モジュール特定指示を受信すると、正常モジュール特定指示を異常検出部678へ出力する。
(b)異常検出部678
異常検出部678は、以下に示すようにして、受信した前記監視結果を用いて、改竄されていない正常な更新モジュールの存在を検出する。簡単に説明すると、異常検出部678は、前回受信した監視結果と、今回受信した監視結果とを用い、前回受信した監視結果により、全ての更新モジュールが正常であると判定され、今回受信した監視結果により、全ての更新モジュールが正常であると判定されなかった場合に、改竄されていない正常な更新モジュールの存在を検出する。ここで、前回の監視と今回の監視との時間間隔は、所定の閾値より小さいものとする。
異常検出部678は、特定指示受信部671から正常モジュール特定指示を受信する。
正常モジュール特定指示を受信すると、異常検出部678は、特定指示受信部671から機器100における更新モジュール群130の監視の結果(最新の監視の結果)を受信する。また、特定指示受信部671から、機器100における更新モジュール群130の前回の監視の結果を受信する。
上記のように、機器100は、定期的に又は不定期に、密な間隔により、監視を繰り返しているので、第1の監視時点から、その次の第2の監視時点までの間において、全ての更新モジュールが改竄されてしまうという事態は、避けられると仮定できる。
つまり、第1の監視時点において、全ての更新モジュールが改竄されていない場合において、第1の監視時点の次の第2の監視時点において、少なくとも1個の更新モジュールが改竄されていないものと仮定することができる。
(c)循環監視パターン判定部677
循環監視パターン判定部677は、異常検出部678から不正モジュール特定指示を受信し、特定指示受信部671から更新モジュール群130の監視の結果を受信する。不正モジュール特定指示を受信すると、循環監視パターン判定部677は、循環検出部606へ循環監視パターンの取得指示を送信する。循環検出部606は、存在すれば、1個以上の循環監視パターンを循環監視パターン判定部677へ送信する。次に、循環監視パターン判定部677は、循環検出部606から循環監視パターンを受信する。
更新モジュールに対して、循環監視パターンにより、監視対象の更新モジュールが定められている。循環監視パターンは、第1の更新モジュールによる監視対象である第2の更新モジュールが、前記第1の更新モジュールを監視し、又は、1個以上の更新モジュールを介在して、前記第1の更新モジュールを監視することを示している。
なお、次のようにして、不正な更新モジュールを特定するとしてもよい。すなわち、不正モジュール特定部は、1個の更新モジュールが正常であると仮定する場合に、受信する監視結果を用いて、複数の監視結果に不一致があるか否かを判断し、不一致がある場合に、正常であると仮定した前記更新モジュールを、不正な更新モジュールとして、特定する。
(d)不正モジュール仮定部673
不正モジュール仮定部673は、以下に示すようにして、更新モジュールの中から選択した1個の更新モジュールに対して改竄されていると仮定する。
次に、不正モジュール仮定部673は、更新モジュールリストに含まれる更新モジュールの識別番号の内、受信した不正識別番号以外の更新モジュールの識別番号を一つ選択し、選択した識別番号により示される更新モジュールを不正な更新モジュールと仮定する。この選択した識別番号を仮定識別番号と呼ぶ。不正モジュール仮定部673は、空集合の仮不正更新モジュール群を定め、次に、仮定識別番号を仮不正更新モジュール群に含める。この時点において、仮不正更新モジュール群には、選択した更新モジュールを識別する仮定識別番号のみが含まれる。なお、仮不正更新モジュール群を、仮定不正グループと呼ぶとしてもよい。このように、不正モジュール仮定部673は、仮定識別番号を含む仮定不正グループを生成する。
また、不正モジュール仮定部673は、抽出結果判断部676から正常な更新モジュールを特定できない旨の特定不可通知を受信する。特定不可通知を受信した場合、不正モジュール仮定部673は、更新モジュールリストに含まれる更新モジュールの識別番号の内、受信した不正識別番号以外の更新モジュールであって、選択した更新モジュールとは別の更新モジュールの識別番号を新たに選択し、選択した更新モジュールを不正な正常モジュールと仮定し、選択した当該更新モジュールを識別する仮定識別番号のみを仮不正更新モジュール群に含め、仮不正更新モジュール群の仮不正構成情報を検証結果判定部674へ送信する。
(e)第二仮定部679
第二仮定部679は、上述したように、検証結果判定部674及び仮不正更新モジュール群抽出部675から構成されている。
第二仮定部679は、簡単に説明すると、監視結果を用いて、前記仮定不正グループに含まれている識別番号により識別される更新モジュールを正常と判断する更新モジュールが存在するか否かを判定し、存在すると判定された場合に、当該更新モジュールを識別する識別番号を前記仮定不正グループに追加し、未処理の更新モジュールについて、前記判定と前記追加とを繰り返し行うように制御する。
(i)検証結果判定部674
検証結果判定部674は、特定指示受信部671から、機器100における更新モジュール群130の監視の結果を受信する。また、不正モジュール仮定部673から仮不正構成情報を受信する。
ここでは、図47に示す例を用いて、検証結果判定部674による判定方法について説明する。
このとき、検証結果判定部674は、受信した監視の結果を用いて、仮不正更新モジュール群3002内に含まれる更新モジュール132を正常と判定する更新モジュールを探す。図47に示す例では、更新モジュール131が更新モジュール132を正常(3003)と判定している。そこで、検証結果判定部674は、更新モジュール132を正常と判定する更新モジュール131を仮不正更新モジュールとみなす。
検証結果判定部674は、仮不正更新モジュール群内の更新モジュールへの監視の結果として、正常と判定する更新モジュールを識別する識別番号(以下、仮不正識別番号と呼ぶ。)と、受信した仮不正更新モジュール群の構成情報を仮不正更新モジュール群抽出部675へ送信する。仮不正更新モジュール群内の更新モジュールへの監視の結果として、正常とする更新モジュールが存在しない場合は、その旨を仮不正更新モジュール群抽出部675へ送信する。仮不正更新モジュール群抽出部675から仮不正更新モジュール群の構成情報を受信した場合も、同様の動作を行う。
(ii)仮不正更新モジュール群抽出部675
仮不正更新モジュール群抽出部675は、検証結果判定部674から仮不正更新モジュール群内の更新モジュールへの監視の結果として、正常と判定する更新モジュールの識別番号(仮不正識別番号)と、仮不正更新モジュール群の構成情報を受信する。次に、受信した更新モジュールの識別番号(仮不正識別番号)を受信した仮不正更新モジュール群へ追加する。
次に、仮不正更新モジュール群抽出部675は、識別番号が追加された新たな仮不正更新モジュール群の構成情報を検証結果判定部674へ送信する。検証結果判定部674から更新モジュールが存在しない旨の通知を受信した場合には、抽出結果判断部676へ仮不正更新モジュール群の構成情報を送信する。
(f)抽出結果判断部676
抽出結果判断部676は、特定指示受信部671から更新モジュールリストを受信する。また、仮不正更新モジュール群抽出部675から仮不正更新モジュール群の仮不正構成情報及び仮定識別番号を受信する。さらに、循環監視パターン判定部677から不正な更新モジュールを識別する不正識別番号を受信する。
また、不正な更新モジュールが存在しない場合には、抽出結果判断部676は、全ての更新モジュールが仮不正更新モジュール群に含まれているか否かを判断する。さらに、不正な更新モジュールが存在を検出しない場合にも、全ての更新モジュールが仮不正更新モジュール群に含まれているか否かを判断する。言い換えると、全ての更新モジュールに対して、改竄されていると仮定されたかを判断する。さらに、言い換えると、抽出結果判断部676は、仮定不正グループに、全ての更新モジュールを識別する識別番号が含まれるか否かを判断する。
また、不正な更新モジュールが存在しない場合には、抽出結果判断部676は、更新モジュールリストに含まれる識別番号から、仮不正構成情報に含まれる識別番号を取り除いた結果、更新モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。さらに、不正な更新モジュールが存在を検出しない場合にも、更新モジュールリストに含まれる識別番号から、仮不正構成情報に含まれる識別番号を取り除いた結果、更新モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。
(g)特定結果送信部672
特定結果送信部672は、抽出結果判断部676から正常な更新モジュールの特定結果を受信し、受信した特定結果を指示生成部603に送信する。
(4)正常モジュール特定処理の動作
ソフトウェア更新システム10cbにおける正常な更新モジュールの特定処理の動作を、図48、図49及び図50〜図52を用いて説明する。
以下に、正常モジュール特定処理の動作について、図50〜図52に示すフローチャートを用いて説明する。
異常検出部678は、最新の全ての監視結果を受信することにより取得し(ステップS9001)、最新の全ての監視結果が、正常であるか否かを判定する(ステップS9002)。すべての監視結果が正常である場合(ステップS9002でY)、全ての更新モジュールは正常であると特定し、モジュール特定部604cbは、正常モジュール特定処理を終了する。全ての監視結果が正常であると判断されない場合(ステップS9002でN)、直前の、つまり、前回の全ての監視結果を受信することにより取得し(ステップS9003)、直前の監視結果が全て正常であるかを判定する(ステップS9004)。直前の監視結果が全て正常である判断されない場合(ステップS9004でN)、モジュール特定部604cbは、正常モジュール特定処理を終了する。直前の監視結果が全て正常であった場合(ステップS9004でY)、更新モジュール群130の少なくとも一つの更新モジュールが正常であると判断する。これは、直前の相互監視では全ての更新モジュールが正常であった場合、相互監視の間隔が狭いため、その間隔で全ての更新モジュールが不正な更新モジュールへ改竄されることはないと判断するためである。
次に、直前の相互監視処理の監視結果が全て正常であった場合(ステップS9004でY)、循環監視パターン判定部677は、循環監視パターンが存在するかを判断する(ステップS9005)。この判断は、循環検出部606内の循環監視パターン記憶部666に循環監視パターンが記憶されているか否かを確認することにより行う。循環監視パターンが存在しない場合には(ステップS9005でN)、ステップS9014へ移行する。
検証結果判定部674は、仮不正更新モジュール群内に含まれる識別番号により識別される更新モジュールを正常と判定する更新モジュールが、仮不正更新モジュール群以外に、一個でも存在するかを判定する(ステップS9015)。仮不正更新モジュール群内のモジュールを正常と判定する仮不正更新モジュール群以外の更新モジュールが一個でも存在する場合(ステップS9015でY)、仮不正更新モジュール群抽出部675は、この更新モジュールを識別する識別番号を仮不正更新モジュール群に含める(ステップS9016)。次に、ステップS9015へ制御を移す。仮不正更新モジュール群内の更新モジュールを正常と判定する仮不正更新モジュール群以外の更新モジュールが一個でも存在しなかった場合(ステップS9015でN)、ステップS9010又はステップS9012で不正な更新モジュールと特定された不正な更新モジュールと、仮不正更新モジュール群以外の更新モジュールが存在するか判断する(ステップS9017)。存在しない場合(ステップS9017でN)、ステップS9014で仮定した更新モジュールを正常な更新モジュールと特定する(ステップS9018)。こうして、正常な更新モジュールが特定できた場合には、その後に、上記において不正とした仮定を全て取り消し、仮不正更新モジュール群に含まれる識別番号を消去する。
上記、正常モジュール特定処理では、まず、複数の更新モジュールの中のいずれか一つの更新モジュールが不正な更新モジュールであるという仮定を行う。その上で、更新モジュールの中から正常である更新モジュールを論理的な検証方法を用いて効果的に特定できるので、特定した正常な更新モジュールを用いて、保護制御モジュールを安全に更新できる。
(5)正常モジュール特定の例
(a)正常モジュール特定の第1の例
次に、図48に示す例を用いて、正常モジュール特定処理の一例について説明する。
図48に示すように、機器100が有する更新モジュール群130は、更新モジュール131〜137を含む。
このように、更新モジュールに対して、循環監視パターンにより、監視対象の更新モジュールが定められている。循環監視パターンは、第1の更新モジュールによる監視対象である第2の更新モジュールが、前記第1の更新モジュールを監視し、又は、1個以上の更新モジュールを介在して、前記第1の更新モジュールを監視することを示している。
(b)正常モジュール特定の第2の例
次に、図49に示す例を用いて、正常モジュール特定処理の一例について説明する。
更新モジュール131は、更新モジュール132及び134を監視し、その監視結果は、それぞれ、正常(3052)及び不正であり、更新モジュール132は、更新モジュール131、133及び135を監視し、その監視結果は、それぞれ、正常(3051)、正常(3053)及び正常(3060)であり、更新モジュール133は、更新モジュール131、135及び136を監視し、その監視結果は、それぞれ、正常(3054)、正常(3059)及び正常(3055)であり、更新モジュール134は、更新モジュール136を監視し、その監視結果は、正常(3056)であり、更新モジュール135は、更新モジュール137を監視し、その監視結果は、正常(3058)であり、更新モジュール136は、更新モジュール137を監視し、その監視結果は、正常(3057)であり、更新モジュール137は、更新モジュール133を監視し、その監視結果は、正常であるとする。
まず、循環監視パターン判定部677は、循環監視パターンが存在するか判断し(ステップS9005)、監視する同一モジュールの監視結果が一致しているため(ステップS9009でY)、ステップS9014へ制御を移す。図49によると、循環監視パターン3041が存在し、循環監視パターン3041における監視結果は、全て正常(3052、3053、3054)であり、更新モジュール132による更新モジュール131の監視結果(3051)と、更新モジュール133による更新モジュール131の監視結果(3054)とが一致するからである。また、その他に矛盾する監視結果が存在しないからである。
次に、図49によると、不正と判定されていない更新モジュール135及び136が更新モジュール137を正常と判定(3058、3057)しているので(ステップS9015)、仮不正更新モジュール群3042内の更新モジュール137を正常と判定する更新モジュール135、更新モジュール136を仮不正更新モジュール群に含める(ステップS9016)。この結果、新たな仮不正更新モジュール群3043が生成される。また、図49によると、不正と判定されていない更新モジュール134が更新モジュール136(仮不正更新モジュール群3043に含まれる)を正常と判定(3056)しているので、また、不正と判定されていない更新モジュール132が更新モジュール135(仮不正更新モジュール群3043に含まれる)を正常と判定(3060)しているので、(ステップS9015)、仮不正更新モジュール群3043内の更新モジュール136及び135をそれぞれ正常と判定する更新モジュール134及び132を仮不正更新モジュール群に含める(ステップS9016)。この結果、新たな仮不正更新モジュール群3044が生成される。さらに、不正と判定されていない更新モジュール131が更新モジュール132(仮不正更新モジュール群3044に含まれる)を正常と判定(3052)しているので、(ステップS9015)、仮不正更新モジュール群3044内の更新モジュール132を正常と判定する更新モジュール131を仮不正更新モジュール群に含める(ステップS9016)。この結果、新たな仮不正更新モジュール群3045が生成される。
このようにして、複数の更新モジュールの中から正常である更新モジュール137を論理的な検証方法を用いて効果的に特定できるので、特定した更新モジュール137を用いて保護制御モジュールを安全に更新できる。
4.実施の形態4
ここでは、別の実施の形態について説明する。
4.1 実施の形態3について
上記の実施の形態3のソフトウェア更新システム10cbでは、更新処理における更新モジュールの選択において、改竄されていない正常な更新モジュールを特定している。
ここで、正常モジュールの特定を妨害する更新モジュールの一例は、その更新モジュールによる監視結果の全てを不正と判定するものである。図57にその一例を示す。
この図においては、更新モジュール132は、更新モジュール131、133及び135を監視しており、更新モジュール132による更新モジュール131、133及び135に対する監視結果は、全て不正(4001、4003、4004)である。
また、このケースにおいて、実施の形態3のソフトウェア更新システム10cbにおいて説明した正常モジュールの特定処理を用いて、図50のステップS9001からS9013までの手順を適用しても、いずれの更新モジュールも不正な更新モジュールと判定されない。
4.2 改竄監視システム10da
改竄監視システム10daでは、上記の問題を解決するために、全ての監視対象の監視モジュールに対して、不正と判定する監視モジュール(以下、妨害候補モジュールと呼ぶ。)を抽出し、抽出した妨害候補モジュールの中から、真の妨害モジュールを特定し、特定した妨害モジュールを予め排除する。このように、改竄され不正動作を行っている妨害モジュールを予め排除することにより、残りの複数の監視モジュールの中から正常である監視モジュールを効果的に特定することができ、特定した正常な監視モジュールを有効に用いることができる。
改竄監視システム10daは、この図に示すように、情報セキュリティ装置100da及び管理装置200daから構成されている。
情報セキュリティ装置100daは、改竄を監視する複数の監視モジュール131da、132da、133da、134daを有する。
ここで、判定部683daは、さらに、受信した新たな監視結果を用いて、2個の妨害候補モジュールのうち、第1の妨害候補モジュールが第2の妨害候補モジュールに対して正常と判定し、第2の妨害候補モジュールが第1の妨害候補モジュールに対して不正と判定する場合に、第1の妨害候補モジュールを、改竄された不正な更新モジュールであると特定してもよい。
4.3 ソフトウェア更新システム10db
別の実施の形態としてのソフトウェア更新システム10dbについて、説明する。
(1)ソフトウェア更新システム10dbの構成
ソフトウェア更新システム10dbは、図53に示すように、更新サーバ200db及び機器100dbから構成されている。機器100dbは、実施の形態1の機器100と同一の構成を有している。また、更新サーバ200dbは、実施の形態1の更新サーバ200と類似の構成を有しており、判断部210db、更新用ソフトウェア配布部220、モジュール無効化部230、通信部240及び監視パターン更新部250から構成されている。
ここでは、判断部210db及び監視パターン更新部250を中心として説明する。
(2)監視パターン更新部250の構成
監視パターン更新部250は、機器100db内部の更新モジュール群130の監視パターンを更新する場合に、判断部210dbによる監視パターン更新の指示に応じて、更新モジュール群130内の各更新モジュールの監視パターンを更新するために、更新のための監視パターンを生成し、生成した監視パターンを各更新モジュールへ送信する。
(a)受信部901
受信部901は、判断部210dbから、監視パターンの生成を示す生成指示及び指示した時点での更新モジュールリストを受信する。更新モジュールリストは、機器100dbが有する更新モジュール群130に含まれる全ての更新モジュールをそれぞれ識別する識別番号を含んでいる。また、妨害候補モジュールが存在する場合には、全ての妨害候補モジュールを識別する識別番号を受信する。
(b)監視パターン生成部903
監視パターン生成部903は、受信部901から、制御部905を介して、更新モジュールリストを受信する。また、妨害候補モジュールが存在する場合には、全ての妨害候補モジュールを識別する識別番号を受信する。
特に、監視パターン生成部903は、受信した妨害候補モジュールを識別する識別番号を用いて、複数の妨害候補モジュールの各々が、他の全ての妨害候補モジュールを監視するように、つまり、複数の妨害候補モジュール間での相互監視をするように、全体の監視パターンを生成する。
なお、監視パターン生成部903は、全体の監視パターンとして、例えば、すべての更新モジュールが他のすべての更新モジュールを監視するように、決定してもよい。
監視パターン生成部903は、生成した全体の監視パターンを監視パターン分割部904へ出力する。
(c)監視パターン分割部904
監視パターン分割部904は、監視パターン生成部903から、全体の監視パターンを受信する。
(d)送信部902
送信部902は、通信部240及びネットワーク5を介して、機器100dbへ更新用の更新モジュール毎の監視パターンを送信する。また、判断部210dbへ更新用の監視パターンの生成及び送信の終了を通知する。
(e)制御部905
制御部905は、受信部901から、監視パターンの生成指示を受信する。
(3)判断部210dbの構成
判断部210dbは、図55に示すように、受信部601、送信部602、指示生成部603、モジュール特定部604db及び循環検出部606から構成されている。また、モジュール特定部604dbは、不正モジュール特定部605、正常モジュール特定部607及び妨害モジュール特定部608から構成されている。
指示生成部603は、監視パターンの生成を示す生成指示を、送信部602を介して、監視パターン更新部250へ送信する。
次に、妨害モジュール特定部608について、説明する。
(4)妨害モジュール特定部608の構成
妨害モジュール特定部608は、改竄され、不正動作を行っている可能性のある更新モジュールがいるか否かを判断する。
(a)特定指示受信部681
特定指示受信部681は、指示生成部603から、正常モジュールの特定を妨害する更新モジュールを特定する指示を示す妨害特定指示及び機器100dbにおける更新モジュールの監視の結果を受信し、受信した監視の結果を検証結果判定部683へ送信する。
(b)検証結果受信部685
検証結果受信部685は、指示生成部603から、機器100dbにおいて、更新モジュール群130の監視パターンが更新された後の監視の結果を受信し、受信した更新後の監視の結果を検証結果判定部683へ送信する。
(c)検証結果判定部683
検証結果判定部683は、特定指示受信部681から監視の結果を受信し、受信した監視の結果を用いて、正常モジュールの特定を妨害する更新モジュールが存在する可能性があるか否かを判断する。つまり、妨害候補モジュールが存在するか否かを判断する。妨害候補モジュールは、その全ての監視対象の更新モジュールに対して、不正と判断する更新モジュールである。なお、妨害候補モジュールが存在するか否かの判断の詳細ついては、後述する。
妨害候補モジュールが存在すると判断した場合、検証結果判定部683は、妨害候補モジュールが、真に妨害モジュールであるか否かを判断するため、監視パターン更新指示生成部684へ、全ての候補妨害モジュールの識別番号を送信し、監視パターンの更新を依頼する。これは、妨害候補モジュールが、不正に改竄され正常モジュールの特定を妨害しているのか、又は、正常な更新モジュールが不正な更新モジュールに対して、正常に監視しているのかを判断するためである。詳細については、後述する。
(d)監視パターン更新指示生成部684
監視パターン更新指示生成部684は、検証結果判定部683から、不正の可能性があるとされた更新モジュールの識別情報と監視パターンの更新依頼を受信し、受信した識別情報により識別される各更新モジュールが、自更新モジュール以外の全ての更新モジュールを監視する監視パターンになるように、指示生成部603へ監視パターンの更新指示を送信する。また、監視パターンの更新の依頼のみを受信した場合は、指示生成部603へ監視パターンの更新指示を送信する。
(e)特定結果送信部682
特定結果送信部682は、検証結果判定部683から正常モジュールの特定を妨害する更新モジュールの特定結果を受信し、特定結果を指示生成部603に送信する。
(4)ソフトウェア更新システム10dbにおける動作
ここでは、ソフトウェア更新システム10dbにおける動作について、図58に示す動作図を用いて、説明する。特に、妨害モジュール特定処理から正常モジュール特定処理までの処理の遷移について説明する。
また、更新サーバ200dbのモジュール無効化部230は、上記の条件を満たす妨害候補モジュールが存在しない場合には、全ての妨害候補モジュールが妨害モジュールであるので、特定した妨害モジュールを無効化するように、機器100dbに対して指示を出力する(ステップS10006)。
上記において、ステップS10001からステップS10006までが妨害モジュール特定処理である。
ここでは、妨害モジュール特定処理及び正常モジュール特定処理のシーケンスについて、図59〜図60に示すシーケンス図を用いて説明する。
判断部210dbの指示生成部603は、監視パターン更新部250へ監視パターンの生成指示を送信し、監視パターン更新部250は、監視パターン生成指示を受信する(ステップS11001)。監視パターン更新部250の監視パターン生成部903は、全体の新たな監視パターンを生成し、監視パターン分割部904は、全体の新たな監視パターンを更新モジュール毎の監視パターンに分割する(ステップS11002)。監視パターン更新部250は、通信部240及びネットワーク5を介して、機器100dbの各更新モジュールへ、更新モジュール毎の監視パターンを送信し、機器100dbの更新モジュール群130内の各更新モジュールは、更新モジュール毎の監視パターンを受信する(ステップS11003)。
判断部210dbは、正常モジュールの特定処理を行う(ステップS11017)。なお、正常モジュールの特定処理の詳細は、実施の形態3と同様であるので省略する。
(6)相互監視の監視パターンの一例
相互監視の監視パターンの一例について、図65に示す相互監視の監視パターンの例を用いて、説明する。
また、更新モジュール131、132、136及び137は、それぞれ、妨害候補モジュールとして抽出されているので、監視パターン更新部250により、更新モジュール131及び132は、相互に監視をし、更新モジュール132及び137は、相互に監視をし、更新モジュール137及び136は、相互に監視をし、更新モジュール136及び131は、相互に監視をし、更新モジュール137及び131は、相互に監視をするように、更新モジュール毎の監視パターンが生成されている。また、監視パターン更新部250により、更新モジュール毎の監視パターンが、更新モジュール131、132、136及び137に送信され、更新モジュール131、132、136及び137は、新たに受信した監視パターンにより、古い監視パターンを変更し、新たな監視パターンにより、相互の監視を行うものとする。
(7)相互監視の監視パターンによる相互監視の結果の例
図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の例について、図66〜図69を用いて説明する。
(a)相互監視の結果の第1の例
図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第1の例を図66に示す。
(b)相互監視の結果の第2の例
図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第2の例を図67に示す。
つまり、更新モジュール131は、更新モジュール132に対して正常(4051)と判定し、更新モジュール132は、更新モジュール131に対して不正と判定している。また、更新モジュール131及び137の間の相互監視、更新モジュール132及び137の間の相互監視、更新モジュール132及び136の間の相互監視、更新モジュール131及び136の間の相互監視及び更新モジュール136及び137の間の相互監視において、不正と判定している。
(c)相互監視の結果の第3の例
図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第3の例を図68に示す。
つまり、更新モジュール131は、更新モジュール132に対して正常(4061)と判定し、更新モジュール132は、更新モジュール131に対して不正と判定している。また、更新モジュール131は、更新モジュール137に対して正常(4063)と判定し、更新モジュール137は、更新モジュール131に対して正常(4062)と判定している。さらに、更新モジュール132及び137の間の相互監視、更新モジュール132及び136の間の相互監視、更新モジュール131及び136の間の相互監視及び更新モジュール136及び137の間の相互監視において、不正と判定している。
(d)相互監視の結果の第4の例
図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第4の例を図69に示す。
つまり、更新モジュール131は、更新モジュール137に対して正常(4072)と判定し、更新モジュール137は、更新モジュール131に対して正常(4071)と判定している。また、更新モジュール131及び132の間の相互監視、更新モジュール132及び137の間の相互監視、更新モジュール132及び136の間の相互監視、更新モジュール131及び136の間の相互監視及び更新モジュール136及び137の間の相互監視において、不正と判定している。
(8)妨害モジュールの特定処理の詳細な動作
次に、妨害モジュールの特定処理の動作について、図61〜図63に示すフローチャートを用いて、説明する。
検証結果判定部683は、全ての監視対象の更新モジュールに対する監視結果を全て不正と判定する更新モジュールが存在するか否か、言い換えると、妨害候補モジュールが存在するか否かを判断する(ステップS12001)。
妨害候補モジュールが存在する場合には(ステップS12001でY)、検証結果判定部683は、全ての妨害候補モジュールをそれぞれ識別する識別番号を監視パターン更新部250へ出力する。監視パターン更新部250は、受信した全ての妨害候補モジュールをそれぞれ識別する識別番号を用いて、全ての妨害候補モジュールが相互に監視をするように、更新モジュール毎の監視パターンを生成する(ステップS12002)。
検証結果判定部683は、妨害候補モジュール間の全ての相互監視の結果が全て不正であり、相互監視の結果に全く正常が存在しない場合(ステップS12005でN)には、全ての妨害候補モジュールを妨害モジュールと特定する(ステップS12006)。図66に示す例の場合には、妨害候補モジュールである更新モジュール131、132、136及び137において、全ての相互監視の結果が全て不正(図66において、「×」)であり、相互監視の結果に正常(「○」)が存在しないので、検証結果判定部683は、更新モジュール131、132、136及び137を妨害モジュールと特定する。次に、ステップS12011へ制御を移す。
図67、図68及び図69に示す例の場合には、それぞれ、妨害候補モジュールの監視の結果に少なくとも1個の正常が存在する。また、図67に示す例の場合には、相互に正常と判定する2個の妨害候補モジュールは存在しない。さらに、図68に示す例の場合には、更新モジュール131及び137は、相互に相手を正常と判定する妨害候補モジュールである。また、図69に示す例の場合にも、更新モジュール131及び137は、相互に相手を正常と判定する妨害候補モジュールである。
相互に正常と判定する2個の妨害候補モジュールが存在しないと判断される場合(ステップS12007でN)、図67の例に示す更新モジュール131のように、監視結果を正常(4051「○」)と判定する妨害候補モジュールが存在すると、更新モジュール131による更新モジュール132に対する判定結果は、正常であるが、更新モジュール132による更新モジュール131に対する判定結果は、不正である。このように、監視結果に矛盾が発生する。よって、検証結果判定部683は、更新モジュール131を、不正な更新モジュールと特定する。ここで説明したケースは、相互に監視を行う2個の妨害候補モジュールのうち、第1の妨害候補モジュールが、第2の妨害候補モジュールに対して、正常と判定するが、第2の妨害候補モジュールが、第1の妨害候補モジュールに対して、不正と判定する場合である。このような場合に、相手の妨害候補モジュールを正常と判定する妨害候補モジュールを不正な更新モジュールと特定する(ステップS12008a)。
次に、図67の例に示す場合において、更新モジュール132、136及び137は、妨害候補モジュールに対する全ての監視結果を不正(「×」)と判定しているため、検証結果判定部683は、更新モジュール132、136及び137を妨害モジュールであると特定する。つまり、検証結果判定部683は、全ての監視対象の妨害候補モジュールに対する全ての監視結果を不正と判定する妨害候補モジュールを、妨害モジュールと特定する(ステップS12008c)。
相互に正常と判定する2個の妨害候補モジュールが存在する場合(ステップS12007でY)、検証結果判定部683は、さらに、相互に正常(「○」)と判定する妨害候補モジュール群が、監視結果を全て不正とする妨害候補モジュール群の中で、相互に正常(「○」)と判定する妨害候補モジュール群以外の妨害候補モジュールへ不正(「×」)と判定しているかを判断する(ステップS12009)。相互に正常(「○」)と判定する更新モジュール群が、監視結果を全て不正とする更新モジュール群の中で更新モジュール群以外の更新モジュールへ不正(「×」)と判定している場合(ステップS12009でY)、図68に示す例の場合のように、更新モジュール131と更新モジュール137が相互に正常と(「○」)と判定しているが、更新モジュール131と更新モジュール132の相互監視の結果から、更新モジュール131の監視結果に矛盾が発生する(更新モジュール132は、更新モジュール131を不正と判定し、更新モジュール137は、更新モジュール131を正常と判定している)。さらに、更新モジュール137の監視結果にも矛盾が発生する。よって、更新モジュール131と更新モジュール137を不正な更新モジュールと特定する(ステップS12010a)。
次に、検証結果判定部683は、更新モジュール132及び136は、常に全ての監視結果を不正(「×」)と判定しているため、更新モジュール132及び136を妨害モジュールであると特定する(ステップS12010c)。
図69に示す例の場合のように、更新モジュール131と更新モジュール137が相互に正常(「○」)と判定する妨害候補モジュール群であり、それ以外に更新モジュール132と更新モジュール136が存在する。このとき、更新モジュール132と更新モジュール136は、常に全ての監視結果を不正(「×」)と判定しているため、検証結果判定部683は、妨害モジュールであると特定する。妨害モジュールが存在する場合(ステップS12011でY)、判断部210dbは、妨害モジュールを無効化する指示を送信する(ステップS12012)。妨害モジュールが存在しない場合(ステップS12011でN)又は無効化指示の送信後(ステップS12012)、判断部210dbは、監視パターン更新部250に対して、更新モジュール群130全体の新しい監視パターンを生成するように指示し、監視パターン更新部250は、更新モジュール群130全体の新しい監視パターンを生成し、新たな監視パターンを機器100dbに対して送信する(ステップS12013)。判断部210dbは、機器100dbの更新モジュール群130に対して、新しい監視パターンによる相互監視の指示を送信する(ステップS12014)。
なお、上記において、更新モジュールは、監視モジュールであるとしてもよい。
5.その他の変形例
なお、本発明を上記各実施の形態に基づいて説明してきたが、本発明は、上記各実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記各実施の形態では、保護制御モジュール120を更新するとしているが、これに限定するものではない。
更新モジュールの更新処理では、保護制御モジュールを更新する場合と同様に、更新用ソフトウェア配布部220は、更新モジュール133を更新するための更新用更新モジュールを複数の鍵を用いて多重に暗号化し、更新モジュール群130に含まれる更新モジュール(更新モジュール133を除く)を送信先として送信する。更新モジュール群130に含まれる更新モジュール(更新モジュール133を除く)は、更新モジュール133を更新用更新モジュールに更新する。
(2)上記各実施の形態では、各更新モジュールは、受信部301、送信部302、制御部303、更新部304、検証部305、MAC値生成部306、MAC値テーブル更新部307、分散情報保持部308を含んで構成されるとしている。しかし、これに限定するものではない。
この場合に、更新モジュール群130に含まれる複数の更新モジュールが、全体として、監視処理と更新処理に必要な構成要素を含むように、構成されていればよい。
(3)上記各実施の形態では、各更新モジュールの検証部305は、他の更新モジュールや保護制御モジュール120の改竄チェックを実行するとしているが、改竄チェックの対象は、当該モジュール全体に限定するものではない。
(4)上記各実施の形態では、各更新モジュールや保護制御モジュール120は、耐タンパ化された領域等、攻撃者による攻撃から保護されている領域で動作するとしてもよい。
(5)上記各実施の形態では、モジュール無効化部230は、更新サーバ内に存在し、アクセス制御モジュール140は、機器内に存在するとしているが、これに限定するものではない。
また、モジュール無効化部230とアクセス制御モジュール140とは、別々のモジュールではなく、機器内部において、又は更新サーバ内部において、1つのモジュールであってもよい。
さらに、モジュール無効化部230やアクセス制御モジュール140が機器内に存在する場合には、耐タンパ化などにより、攻撃から保護される領域に存在するとしてもよい。
(6)各実施の形態では、更新サーバは、判断部、更新用ソフトウェア配布部、モジュール無効化部、通信部及び監視パターン更新部などから構成されるとしているが、これに限定するものではない。判断部、更新用ソフトウェア配布部、モジュール無効化部、通信部及び監視パターン更新部などが1個のモジュールにより構成されているとしてもよい。また、上記の部の組み合わせから構成されるとしてもよい。
(7)上記各実施の形態では、ソフトウェア更新システムは、機器の工場製造時に初期設定処理を行うとしているが、これに限定するものではない。販売後など工場出荷後のどこかで初期化処理を実施してもよい。また、初期化処理は1度だけでなく、2度以上実施してもよい。
(8)上記各実施の形態では、初期設定処理において、検証用証明書及び認証鍵証明書は、更新用ソフトウェア配布部220が保持する署名秘密鍵を用いて生成された証明書であるとしたが、これに限定するものではなく、それぞれ別の鍵を用いて生成されてもよいし、更新用ソフトウェア配布部220以外の証明書発行装置により発行された証明書でもよい。
(9)上記各実施の形態では、初期設定処理や次ラウンド準備処理の動作として、暗復号鍵から生成する分散情報を更新モジュール13xへ送信し、更新モジュール13xが分散情報を保持するとしているが、これに限定するものではない。
(10)上記各実施の形態では、検知処理の動作として、更新モジュール13xが保護制御モジュール120の改竄検出を行うときに、検証鍵を使用して計算したMAC値を用いて改竄検出処理を行うとしている、これに限定するものではない。
(11)上記各実施の形態では、検知処理の動作として、各更新モジュールが保護制御モジュール120の改竄を検出した場合、判断部210と他の更新モジュールへ通知するとしたが、これに限定するものではない。
さらに、各更新モジュールが保護制御モジュール120の改竄を検出しなかった場合、判断部210へ通知を行わないとしているが、これに限定するものではない。改竄検出処理を実施した結果として、改竄を検出しなかった旨を通知するとしてもよい。
(12)上記各実施の形態では、検知処理の動作として、各更新モジュールは、他の更新モジュールに保護制御モジュールの改竄検出結果を送信しないとしているが、それぞれの更新モジュールで検出結果を共有するとしてもよい。
(13)上記各実施の形態では、解析・判断処理の動作として、改竄情報に基づいて保護制御モジュール120を更新するかどうか判定するとしているが、これに限定するものではない。
また、解析・判断時の動作として、保護制御モジュール120を更新するか否か、及び保護制御モジュール120を無効化するか否かを判断したが、これに限定するものではなく、機器100を停止するか否かを判断するとしてもよい。
(14)上記各実施の形態では、相互認証処理の動作として、各更新モジュールが、更新用ソフトウェア配布部220を認証し、その後、更新用ソフトウェア配布部220が各更新モジュールを認証するとしているが、これに限定するものではない。
(15)上記各実施の形態では、相互認証処理の動作として、更新用ソフトウェア配布部220が各更新モジュールを認証する処理において、チャレンジデータをそれぞれの更新モジュールで異なる値にするとしているが、これに限定するものではない。チャレンジデータとして全ての更新モジュールで同じ値としてもよいし、全ての更新モジュールを複数のグループに分け、チャレンジデータをそれぞれのグループで異なる値にしてもよい。
(16)上記各実施の形態では、相互認証処理の動作として、各更新モジュールが、更新用ソフトウェア配布部220を認証する処理において、各更新モジュールが個別に更新用ソフトウェア配布部220を認証するとしているが、これに限定するものではない。
判定方法としては、例えば、一定数(例えば、過半数等)の更新モジュールが認証に成功した場合には正当であると判定し、そうでない場合には、正当ではないと判定する方法がある。
(17)上記各実施の形態では、相互認証処理の動作として、更新サーバ200は署名秘密鍵と署名公開鍵とを使用して相互認証処理を実施するとしているが、これに限定するものではない。署名秘密鍵と署名公開鍵とは別に、相互認証に使用する認証鍵対を用いるとしてもよい。
(18)上記各実施の形態では、相互認証処理の動作として、正当なモジュールであると検証できた更新モジュールの数が、回復処理に必要な数以上あるかどうかで、その後の回復処理を実施するかどうかを判定しているが、これに限定するものではない。
また、相互認証処理において、回復処理に必要な数に満たないと判定された場合には、機器を停止するとしたが、この場合に、更新モジュールを無効化してもよい。
(19)上記各実施の形態では、相互認証処理の動作として、更新用ソフトウェア配布部220が各更新モジュールを認証する時に、各更新モジュールは、レスポンスデータと一緒に認証公開鍵と認証鍵証明書とを更新用ソフトウェア配布部220へ送信するとしているが、これに限定するものではない。
また、認証公開鍵や認証鍵証明書は、更新用ソフトウェア配布部220から要求があったときにのみそれぞれ送信するとしてもよい。このとき、更新用ソフトウェア配布部220は、全ての更新モジュールの認証公開鍵や認証鍵証明書を受信してもよいし、予め設定されており、回復処理に必要な数以上の数の更新モジュールの認証公開鍵や認証鍵証明書を受信してもよいし、また予め設定されており、不正な更新モジュールの許容数未満の更新モジュールの認証公開鍵と認証鍵証明書とを受信してもよい。
(20)上記各実施の形態では、回復処理の動作として、監視処理時を、1回の復号中(監視3−1、3−2、5−1、5−2)に2回実施するとしているが、これに限定するものではない。復号処理の時間にあわせて何回監視処理を行ってもよいし、復号処理以外であっても、鍵や更新用保護制御モジュールの受信処理時や検知処理時、相互認証処理時に監視処理を行ってもよい。
また、各更新モジュールは、監視処理を実行するタイミングを示す同期情報を外部のサーバから取得し、取得した同期情報にしたがって監視処理を実行するとしてもよい。これにより、各更新モジュールは、他の更新モジュールと同じタイミングで監視処理を実行することができるので、不正な更新モジュールの検出精度を向上させることができる。
(21)上記実施の形態2や実施の形態3では、循環監視パターン内の更新モジュールの数が3個であるとして、説明をしているが、これに限定するものではない。4個以上の更新モジュールが一方向に循環して検証していてもよい。
(22)上記実施の形態2や実施の形態3では、一方向に循環検証する結果が全て正常である場合、循環監視パターン内の複数の更新モジュールを一群として扱うとしているが、これに限定するものではない。一組の更新モジュールが相互に監視しており、検証結果がともに正常である場合においても、一組の更新モジュールを一群として扱うとしてもよい。このとき、相互に監視している更新モジュールによる同一の更新モジュールへの検証結果が一致しない場合、一組の更新モジュールは全て不正な更新モジュールと特定する。
(23)上記実施の形態2や実施の形態3では、循環監視パターンの選択において、循環のサイズをもとに、選択をしているが、これに限定するものではない。
(24)上記実施の形態2や実施の形態3では、循環のサイズが同じ循環監視パターンが複数個存在する場合、循環監視パターン外の更新モジュールが循環監視パターン内の更新モジュールを検証する数をもとに、複数の循環監視パターンから循環監視パターンを選択するとしているが、これに限定するものではない。
(25)上記実施の形態2では、一回の相互監視処理の監視結果において、不正な更新モジュールを特定しているが、これに限定するものではない。複数回の相互監視処理の監視結果をもとに、不正な更新モジュールを特定してもよい。
更新サーバ200bbは、相互監視処理において、図71の監視結果を受信し、さらに、次の相互監視処理において、図72の監視結果を受信するものとする。
図71に示す例においては、更新モジュール137による更新モジュール136への監視結果は、不正(3112)であり、更新モジュール136による更新モジュール137への監視結果も、不正(3111)である。その他の監視結果は、正常である。
(26)上記実施の形態2では、一回の相互監視処理の監視結果において、不正な更新モジュールを特定しているが、これに限定するものではない。
更新サーバ200bbは、相互監視処理において、図73に示す監視結果を受信し、さらに、次の相互監視処理において、図74に示す監視結果を受信するものとする。
図73に示す例においては、更新モジュール137による更新モジュール136への監視結果は、不正(3121)であり、更新モジュール136による更新モジュール137への監視結果も、不正(3122)である。また、更新モジュール135による更新モジュール137への監視結果は、不正(3126)であり、更新モジュール137による更新モジュール133への監視結果も、不正(3123)である。その他の監視結果は、正常である。
(27)上記実施の形態2では、正常モジュール仮定部653は、更新モジュール群130内の更新モジュールをランダムに一つ選択しているが、これに限定するものではない。
(28)上記実施の形態2では、図33に示すステップS8006で不正モジュール特定処理を終了し、他の更新モジュールを正常と仮定し、再度不正モジュール特定処理をする。このとき、不正モジュール特定処理において、正常モジュール仮定部653は、更新モジュール群130内の更新モジュールをランダムに一つ選択しているが、これに限定するものではない。
(29)上記実施の形態3では、正常モジュールの特定処理において、循環監視パターンが存在するかを判断し、循環監視パターンに矛盾があるか否かを判定しているが、これに限定するものではない。循環監視パターンに矛盾があるか否かを判定する代わりに、及び、循環監視パターンに矛盾があるか否かを判定するとともに、不正モジュール特定処理を実行してもよい。不正モジュール特定処理を実行することで、不正な更新モジュールを特定するとしてもよい。
(30)上記実施の形態3では、不正モジュール仮定部673は、更新モジュール群130内の更新モジュールをランダムに一つ選択しているが、これに限定するものではない。不正モジュール仮定部673は、多くの他の更新モジュールから正常と判定される更新モジュールを選択するとしてもよい。他の更新モジュールから正常と判定されていることで、仮不正更新モジュール群に含まれる更新モジュールが多くなる。これにより、ステップS9014において、選択する更新モジュールの数が少なくなり、処理効率を向上することができる。
(31)上記実施の形態3では、ステップS9020で全ての更新モジュールを選択していない場合、ステップS9014で他の更新モジュールをランダムに一つ選択しているが、これに限定するものではない。前回の正常モジュール特定処理のステップS9016の仮不正更新モジュール群内の更新モジュール以外を選択するとしてもよい。前回の正常モジュール特定処理では、仮不正更新モジュール群内の更新モジュールにおいて、矛盾がないことがわかっているため、仮不正更新モジュール群内の更新モジュールをステップS9014で選択をしたとしても、正常な更新モジュールと特定できない。これにより、正常な更新モジュールと特定できない更新モジュールを選択しないことにより、処理効率を向上することができる。
(32)上記実施の形態3では、ステップS9005からステップS9013において、循環監視パターンが存在するかを判断し、不正な更新モジュールを特定してから、ステップS9014からステップS9016において、更新モジュールを選択し、仮不正更新モジュール群とするとしているが、これに限定するものではなく、ステップS9004のあと、ステップS9014からステップS9016の処理を行い、その後、ステップS9005からステップS9013の処理をしたうえで、ステップS9017の判断をおこなってもよい。また、この場合、正常な更新モジュールを特定できない場合は、ステップS9014に戻り、ステップS9005からステップS9013において、不正な更新モジュールと特定された更新モジュール以外の更新モジュールを選択する。
(33)上記実施の形態2及び実施の形態3では、相互監視処理において、各モジュールから監視結果を受信するが、更新モジュールが監視結果を送信しない場合、監視結果を送信しない更新モジュールを不正な更新モジュールと特定するとしてもよい。また、監視結果を送信しない更新モジュールを正常と判定する更新モジュールを不正な更新モジュールと特定するとしてもよい。これにより、不正モジュール特定処理を行う前に、不正な更新モジュールを特定でき、不正な更新モジュールを効率的かつ迅速に排除できる。
(34)上記実施の形態4では、ステップS11017において、実施の形態3の正常モジュール特定処理を行うとしているが、これに限定するものではなく、変形例(29)に記載の正常モジュール特定処理をするとしてもよい。
(35)上記実施の形態4では、対象の更新モジュールへの監視結果を全て不正と判定する更新モジュール(つまり、妨害候補モジュール)が存在した場合、ステップS12002において、監視パターンを更新する。監視パターンを更新後に、監視結果から妨害モジュールがいるか否かを判断するが、これに限定するものではない。対象の更新モジュールへの監視結果を全て不正と判定する更新モジュール(つまり、妨害候補モジュール)が複数存在した場合、対象の更新モジュールへの監視結果を全て不正と判定する更新モジュールが相互に不正と判定していれば、相互に不正と判定している更新モジュールの無効化指示を送信するとしてもよい。
また、改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であるとしてもよい。前記管理装置は、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信部と、受信した前記監視結果を用いて、前記監視モジュールから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定部と、1個の妨害候補モジュールのみが抽出された場合に、抽出された前記妨害候補モジュールを無効化するよう、前記情報セキュリティ装置を制御する無効化部と、1個の妨害候補モジュールのみが検出された場合に、当該妨害候補モジュールを除いて、新たに監視パターンを作成し、作成した監視パターンを前記情報セキュリティ装置へ送信し、新たな監視パターンに置き換えさせる更新部とを備える。前記受信部は、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、前記判定部は、さらに、受信した新たな監視結果を用いて、正常な監視モジュールを特定する。
(36)上記実施の形態4では、ステップS12007において、妨害候補モジュールである更新モジュールが相互に正常(「○」)と判定する妨害候補モジュール群が存在するかを判断する。相互に正常と判定する妨害候補モジュール群が存在した場合、相互に正常と判定する妨害候補モジュール群のステップS12001の監視結果において、相互に不正と判断していた場合、当該妨害候補モジュールを不正な更新モジュールと特定し、無効化指示を送信するとしてもよい。
(37)上記実施の形態4では、正常モジュールの特定を妨害する更新モジュールを特定するとしているが、これに限定するものではない。不正モジュールの特定を妨害する更新モジュールを特定するとしてもよい。
(38)上記実施の形態4では、ステップS12002において、監視対象の更新モジュールへの監視結果を全て不正と判定する妨害候補モジュール群内で全ての妨害候補モジュールを監視する監視パターンを生成するとしているが、これに限定するものではない。更新モジュール群130の更新モジュール全てを監視する監視パターンを生成するとしてもよい。この場合、監視パターンを更新後に、妨害候補モジュールが全ての更新モジュールに対して不正と判定する場合、当該妨害モジュールを妨害モジュールと特定する。
(39)上記の各モジュールは、具体的には、それぞれ個別のコンピュータプログラムであってもよいし、オペレーティングシステムに組み込まれるコンピュータプログラムであってもよいし、オペレーティングシステムから呼ばれるドライバプログラムであってもよいし、アプリケーションプログラムであってもよい。
(40)各システムの適用例(1)
上記の各実施の形態の各システムは、図75に示すように、コンテンツ再生システム10eであるとしてもよい。
ホームサーバ装置200eは、インターネット40eを介して、インターネット40eに接続されているコンテンツサーバ装置(図示していない)からコンテンツを取得する。コンテンツは、一例として、映像データ及び音声データが圧縮され、さらに暗号化されて構成されたものである。ホームサーバ装置200eは、ホームネットワーク30eを介して、取得したコンテンツをBD再生装置100eへ送信する。
(41)各システムの適用例(2)
上記の各実施の形態の各システムは、図76に示すように、モバイルバンキングシステム10fであるとしてもよい。
銀行サーバ装置40fは、銀行の利用者の口座に相当する口座ファイルを記憶している。口座ファイルは、取引データを含む。取引データは、取引の種別、金額、日付、相手先の識別情報などを含む。
携帯電話100fは、銀行サーバ装置40fとの間でデータを送受信する際に、デジタル署名を用いた相互の機器認証を行う。また、データの暗号化を要求する。銀行サーバ装置40fは、振替えの要求に従って、操作者の口座から取引先の口座への振替えを実行する。
(42)上記の実施の形態1および実施の形態2で説明した更新サーバ200、200a、200bは、それぞれ、機器100、100a、100bの更新モジュール群が相互監視処理を行うときの監視パターンを生成する監視パターン生成部を有する構成であってもよい。そして、更新サーバ200、200a、200bは、生成した監視パターンを、機器100、100a、100bに送信し、機器100、100a、100bは、監視パターンを受信する。機器100、100a、100bは、受信した監視パターンに基づき相互監視処理を行う。
(43)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(44)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
(45)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(46)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
(47)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
<まとめ>
本発明の一実施態様であるソフトウェア更新システムは、所定のアプリケーションを格納するソフトウェア更新装置と、このソフトウェア更新装置と接続される管理装置とを含み、前記ソフトウェア更新装置は、前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、前記保護制御モジュールを更新する複数の更新モジュールとを含み、前記複数の更新モジュールは、他の更新モジュールが不正動作を行わないかの検証を行って、前記検証結果を前記管理装置に送信し、前記管理装置は、前記複数の更新モジュールから前記検証結果を受信する通信部と、前記受信した検証結果に基づいて不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を前記ソフトウェア更新装置に送信する制御部と、を含み、前記制御部は、前記複数の更新モジュールの中の第1更新モジュールを判断対象とし、前記第1更新モジュールが正常であると仮定し、この仮定を前提に前記第1更新モジュールと前記第1更新モジュールが正常と検証した第2更新モジュールとが共通の第3更新モジュールを検証した場合であって、前記第1更新モジュールの検証結果と前記第2更新モジュールの検証結果とが一致しない場合、前記仮定を誤判断として前記第1更新モジュールは不正動作を行う可能性のあると判断する。
また、本発明の一実施態様であるソフトウェア更新システムは、所定のアプリケーションを格納するソフトウェア更新装置と、このソフトウェア更新装置と接続される管理装置とを含み、前記ソフトウェア更新装置は、前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、前記保護制御モジュールを更新する複数の更新モジュールとを含み、前記複数の更新モジュールの各々は、他の更新モジュールが不正動作を行わないかの検証を行って、前記検証結果を前記管理装置に送信し、前記管理装置は、前記複数の更新モジュールから前記検証結果を受信する通信部と、前記受信した検証結果に基づいて不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を前記ソフトウェア更新装置に送信する制御部と、を含み、前記制御部は、前記複数の更新モジュールの間でどの更新モジュールについて検証を行うかの組合せを決め、この組合せを示した組合情報を前記ソフトウェア更新装置に送信し、前記組合せの中に、前記複数の更新モジュールの中の一部の複数の更新モジュールが一方向に循環して順次検証する所定の関係を含め、前記検証結果に基づいて前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断する。
そして、前記所定の関係に含まれる複数の更新モジュールが一方向に循環して検証した結果、前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断され、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合には、前記所定の関係にある複数の更新モジュールを一群として扱い、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断することができる。
ここで、前記制御部は、前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果、いずれかの更新モジュールが不正動作を行う可能性があると判断した場合、前記所定の関係に含まれる複数の更新モジュールについては不正動作を行う可能性があるか否かの判断は行わない。
ここで、前記制御部は、前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果、前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がない場合、前記所定の関係に含まれる複数の更新モジュールについては不正動作を行う可能性があるか否かの判断は行わない。
ここで、前記所定の関係とは、第1更新モジュール、第2更新モジュール及び第3更新モジュールの3個の更新モジュールがある場合、第1更新モジュールが第2更新モジュールの改ざん検出を行い、第2更新モジュールが第3更新モジュールの改ざん検出を行い、第3更新モジュールが第1更新モジュールの改ざん検出を行う関係である。すなわち、第1更新モジュール、第2更新モジュール及び第3更新モジュールが、一方向に循環して順次改ざん検出処理を行う関係をいう。
このような場合に、前記所定の関係に含まれる複数の更新モジュールがした判断の矛盾を見つけることができる。
これにより、前記所定の関係に含まれる複数の更新モジュール以外に更新モジュールが存在しない場合であっても、前記所定の関係に含まれる複数の更新モジュールがした判断の矛盾を見つけることができる。
これにより、前記所定の関係に含まれる複数の更新モジュール以外の更新モジュールを用いて、前記所定の関係に含まれる複数の更新モジュールがした判断の矛盾を見つけることも可能である。
このように、複数の更新モジュールがした判断の矛盾の検出に、一組の更新モジュールが相互に検証を行う関係を用いることもできる。そのため、前記所定の関係に含まれる複数の更新モジュール以外の更新モジュールが存在しない場合にも、前記所定の関係に含まれる複数の更新モジュールがした判断の矛盾を見つけることができる。
所定の関係に含まれる更新モジュールの数が少ない方が、そこに含まれるすべての更新モジュールが正常であると判断される可能性が高い。そこで、前記所定の関係に含まれる更新モジュールの数が最小のものから優先的に処理を行うことにより、不正動作を行う可能性のある更新モジュールを効率的に排除できる。
この構成によると、所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断された後に、前記所定の関係に含まれない更新モジュールについて不正動作を行う可能性があるか否かを判断する際に、より多くの更新モジュールについて判断を行うことができる。
ここで、前記ソフトウェア更新装置において、前記所定のアプリケーションは、所定の暗号鍵を用いて暗号化されており、前記所定の暗号鍵に対応する復号鍵は、所定の分散法に従って複数の分散鍵に分散され、前記複数の分散鍵の各々は前記更新モジュールに割り当てられ、前記複数の更新モジュールの各々は、仮想の多角形の端点になるように配置され、自更新モジュールに割り当てられた分散鍵を保有すると共に、隣接する他の2の更新モジュールに割り当てられた分散鍵を保有し、前記保護制御モジュールは、前記分散鍵の少なくとも3個を前記更新モジュールから取得して前記復号鍵を復元し、前記所定の関係に含まれる複数の更新モジュールは、3個の更新モジュールから構成され、前記所定の関係に含まれる3個の更新モジュールは、一の更新モジュールと前記一の更新モジュールが保有する分散鍵に対応する隣接する他の2の更新モジュールとからなる3個の更新モジュールとは別の3個の更新モジュールであることを特徴とする。
また、前記複数の更新モジュールの各々を、仮想の多角形の端点になるように配置し、各更新モジュールは、自更新モジュールに割り当てられた分散鍵を保有すると共に隣接する他の2の更新モジュールに割り当てられた分散鍵を保有するので、一部の更新モジュールが無効化された場合であっても、復号鍵を再現することができる。
また、本発明の一実施態様である管理装置は、所定のアプリケーションが改ざんされていないかを検証する保護制御モジュール及び前記保護制御モジュールを更新する複数の更新モジュールを格納し、前記複数の更新モジュールは他の更新モジュールが不正動作を行わないかの検証を行うソフトウェア更新装置と接続可能であり、前記ソフトウェア更新装置から前記検証結果を受信する通信部と、前記受信した検証結果に基づいて不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を前記ソフトウェア更新装置に送信する制御部とを含み、前記制御部は、前記複数の更新モジュールの間でどの更新モジュールについて検証を行うかの組合せを決め、この組合せを示した組合情報を前記ソフトウェア更新装置に送信し、前記組合せの中に、前記複数の更新モジュールの中の一部の複数の更新モジュールが一方向に循環して順次検証する所定の関係を含め、前記検証結果に基づいて前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断する。
100、100b 機器
100a 情報処理装置
110、111 アプリ
120 保護制御モジュール
130、130b 更新モジュール群
131〜137 更新モジュール
140 アクセス制御モジュール
200、200b 更新サーバ
200a 不正モジュール特定装置
210、210b 判断部
210a 判断手段
220 更新用ソフトウェア配布部
230 モジュール無効化部
240 通信部
301 受信部
302 送信部
303 制御部
304 更新部
305 検証部
306 値生成部
307 MAC値テーブル更新部
308 分散情報保持部
401 受信部
402 送信部
403 制御部
404 復号ロード部
405 検出部
406 解析ツール検出部
407 暗復号鍵保持部
408 暗復号鍵生成部
409 暗復号鍵分散部
410 証明書生成部
411 暗復号鍵復元部
501 受信部
502 送信部
503 アクセス情報保持部
561 特定指示受信部
601 受信部
602 送信部
603 指示生成部
604、604b モジュール特定部
605 不正モジュール特定部
606 循環検出部
651 特定指示受信部
652 特定結果送信部
653 正常モジュール仮定部
654 検証結果判定部
654 証結果判定部
655 仮正常更新モジュール群抽出部
656 矛盾検出部
657 循環監視パターン取得部
661 取得指示受信部
662 循環監視パターン送信部
663 循環監視パターン取得部
664 取得済み循環監視パターン記憶部
665 監視パターン記憶部
666 循環監視パターン記憶部
701 受信部
702 送信部
703 暗号鍵生成部
704 暗号処理部
705 認証部
706 更新モジュール選択部
707 制御部
708 証明書生成部
709 署名秘密鍵保持部
710 更新用ソフトウェア保持部
711 暗号鍵保持部
801 受信部
802 送信部
803 アクセス情報取得鍵保持部
804 モジュール選択部
804 更新モジュール選択部
2320 無効化手段
2330 仮正常モジュール群記憶手段
2340 仮定手段
2350 仮正常モジュール群生成手段
2360 矛盾検出手段
2370 特定手段
Claims (18)
- ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置であって、
改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信手段と、
前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断手段と、
特定された不正モジュールの無効化指示を出力する無効化手段と
を備えることを特徴とする不正モジュール特定装置。 - 前記判断手段は、
正常モジュールと仮定したモジュールの識別情報を記憶する仮正常モジュール群記憶手段と、
前記複数のモジュールから一つを選択し、正常モジュールと仮定し、識別情報を前記仮正常モジュール群記憶手段に記録する仮定手段と、
前記仮定手段により正常モジュールと仮定された前記モジュールを起点として、改ざん検出処理の結果、改ざんが検出されないモジュールを正常モジュールと仮定し、識別情報を前記仮正常モジュール群記憶手段に記録する手順を繰り返す仮正常モジュール群生成手段と、
前記仮正常モジュール群記憶手段に記憶されている識別情報に対応するモジュールによる改ざん検出結果に矛盾があるか否か判断する矛盾検出手段と、
矛盾が検出された場合に、前記仮定手段において正常モジュールと仮定した前記モジュールを不正モジュールと特定する特定手段と
を備えることを特徴とする請求項1に記載の不正モジュール特定装置。 - 前記仮定手段は、第1モジュールを前記正常モジュールと仮定し、
前記矛盾検出手段は、前記第1モジュールと、前記第1モジュールによる改ざん検出結果が正常である第2モジュールとが改ざん検出を行なった第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、
前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記第1モジュールを不正モジュールと特定する
ことを特徴とする請求項2に記載の不正モジュール特定装置。 - 前記判断手段は、
一方向に循環して改ざん検出を行うモジュール群である循環パターンに含まれる複数のモジュールの識別情報を記憶している循環記憶手段と、
前記循環パターンに含まれる複数のモジュールが一方向に循環して改ざん検出を行った結果がすべて正常である場合に、前記循環パターンに含まれる複数のモジュールを正常モジュールと仮定する仮定手段と、
前記循環パターンに含まれる2以上のモジュールによる他のモジュールへの改ざん検出結果に矛盾があるか否か判断する矛盾検出手段と、
矛盾がある場合、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定する特定手段と
を備えることを特徴とする請求項1に記載の不正モジュール特定装置。 - 前記矛盾検出手段は、
前記循環パターンに含まれる第1モジュールと第2モジュールとが改ざん検出を行った前記循環パターンに含まれない第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、
前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定する
ことを特徴とする請求項4に記載の不正モジュール特定装置。 - 前記矛盾検出手段は、
前記循環パターンに含まれる第1モジュールと第2モジュールとが改ざん検出を行った前記循環パターンに含まれる第3モジュールについて、前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾するか判断し、
前記第1モジュールによる改ざん検出結果と前記第2モジュールによる改ざん検出結果とが矛盾する場合、前記特定手段は、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定する
ことを特徴とする請求項4に記載の不正モジュール特定装置。 - 前記矛盾検出手段は、
前記循環パターンに含まれる第1モジュールと第2モジュールとが相互に改ざん検出を行った結果が矛盾するか否か判断し、
相互に改ざん検出を行った結果が矛盾する場合、前記特定手段は、前記循環パターンに含まれるすべてのモジュールを不正モジュールと特定する
ことを特徴とする請求項4に記載の不正モジュール特定装置。 - 前記不正モジュール特定装置は、さらに、
検証元のモジュールと検証先のモジュールとの組み合わせである監視パターンを記憶している監視パターン記憶手段を備え、
前記循環記憶手段は、前記監視パターン記憶手段に記憶されている監視パターンから、一方向に循環して改ざん検出を行うモジュール群である循環パターンを検出し、検出した前記循環パターンに含まれる複数のモジュールの識別情報を記憶する
ことを特徴とする請求項4に記載の不正モジュール特定装置。 - 前記判断手段は、
前記循環記憶手段に複数の循環パターンが記憶されている場合、循環パターンに含まれるモジュール数が少ない循環パターンから順に、前記仮定手段、前記矛盾検出手段、および前記特定手段の処理を行う
こと特徴とする請求項4に記載の不正モジュール特定装置。 - 前記判断手段は、
前記循環記憶手段に複数の循環パターンが記憶されており、かつ、各循環パターンに含まれるモジュール数が同数である場合、各循環パターンに含まれるモジュールに対する改ざん検出処理を行う当該循環パターンに含まれないモジュールの数が多い循環パターンから順に、前記仮定手段、前記矛盾検出手段、および前記特定手段の処理を行う
こと特徴とする請求項9に記載の不正モジュール特定装置。 - 前記循環記憶手段は、さらに、
循環パターン毎に、各循環パターンに含まれるモジュール数、および、当該循環パターンに含まれるモジュールに対する改ざん検出処理を行う当該循環パターンに含まれないモジュールの数を含む循環パターンリストを記憶しており、
前記判断手段は、前記循環パターンリストを参照して、前記仮定手段、前記矛盾検出手段、および前記特定手段により処理を行う循環パターンの順序を決定する
ことを特徴とする請求項10記載の不正モジュール特定装置。 - 前記循環記憶手段に記憶されている前記循環パターンリストは、各循環パターンに含まれるモジュール数が少ない順に、各循環パターンに含まれるモジュール数、および、当該循環パターンに含まれるモジュールに対する改ざん検出処理を行う当該循環パターンに含まれないモジュールの数を配置している
ことを特徴とする請求項11に記載の不正モジュール特定装置。 - 前記不正モジュール特定装置は、さらに、
前記情報処理装置で動作し、相互に改ざん検出処理を行う複数のモジュールについて、検証元のモジュールと検証先のモジュールとの組み合わせである監視パターンを生成する監視パターン生成手段と、
生成した前記監視パターンを、前記情報処理装置へ送信する監視パターン送信手段とを備え、
前記監視パターン生成手段は、複数のモジュールが一方向に循環して改ざん検出を行う循環パターンを含む前記監視パターンを生成する
こと特徴とする請求項1に記載の不正モジュール特定装置。 - ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置で用いられる不正モジュール特定方法であって、
改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信ステップと、
前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断ステップと、
特定された不正モジュールの無効化指示を出力する無効化ステップと
を含むことを特徴とする不正モジュール特定方法。 - ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定プログラムであって、
不正モジュール特定装置に、
改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信ステップと、
前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断ステップと、
特定された不正モジュールの無効化指示を出力する無効化ステップと
を実行させることを特徴とする不正モジュール特定プログラム。 - ネットワークを介して接続されている情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置で用いられる集積回路であって、
改ざん検出を行う複数のモジュールから、改ざん検出結果を受信する受信手段と、
前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する判断手段と、
特定された不正モジュールの無効化指示を出力する無効化手段と
を備えることを特徴とする集積回路。 - 情報処理装置と、前記情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置とから構成される不正モジュール無効化システムであって、
前記情報処理装置は、
秘匿データを含み、且つ、暗号化されているアプリケーションプログラムと、
前記秘匿データを保護する機能を有する保護制御モジュールと、
ソフトウェアを更新する機能を有し、相互に改ざんの有無を検証する複数の更新モジュールと、
前記不正モジュール特定装置は、
前記複数の更新モジュールから、改ざん検出結果を受信する受信手段と、
前記複数の更新モジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記更新モジュールを不正モジュールと特定する判断手段と、
特定された不正モジュールの無効化指示を前記情報処理装置へ出力する無効化手段とを備える
ことを特徴とする不正モジュール無効化システム。 - 情報処理装置と、前記情報処理装置上で動作する不正モジュールを特定して無効化する不正モジュール特定装置とから構成される不正モジュール無効化システムで用いられる不正モジュール無効化方法であって、
前記情報処理装置は、
秘匿データを含み、且つ、暗号化されているアプリケーションプログラムと、
前記秘匿データを保護する機能を有する保護制御モジュールと、
ソフトウェアを更新する機能を有し、相互に改ざんの有無を検証する複数の更新モジュールとを備え、
前記不正モジュール無効化方法は、
前記複数の更新モジュールにより、相互に改ざん検出を行う改ざん検出ステップと、
前記複数の更新モジュールから、改ざん検出結果を受信する受信ステップと、
前記複数の更新モジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記更新モジュールを不正モジュールと特定する判断ステップと、
特定された不正モジュールの無効化指示を出力する無効化ステップと
を含むことを特徴とする不正モジュール無効化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010550475A JP5453324B2 (ja) | 2009-02-16 | 2010-02-15 | 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009032372 | 2009-02-16 | ||
JP2009032372 | 2009-02-16 | ||
PCT/JP2010/000906 WO2010092832A1 (ja) | 2009-02-16 | 2010-02-15 | 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 |
JP2010550475A JP5453324B2 (ja) | 2009-02-16 | 2010-02-15 | 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010092832A1 JPWO2010092832A1 (ja) | 2012-08-16 |
JP5453324B2 true JP5453324B2 (ja) | 2014-03-26 |
Family
ID=42561680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010550475A Expired - Fee Related JP5453324B2 (ja) | 2009-02-16 | 2010-02-15 | 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8544093B2 (ja) |
EP (1) | EP2397964A4 (ja) |
JP (1) | JP5453324B2 (ja) |
CN (1) | CN102301374B (ja) |
WO (1) | WO2010092832A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11190647B2 (en) | 2018-07-18 | 2021-11-30 | Canon Kabushiki Kaisha | Information processing apparatus stopping power supply to hardware connected to a socket |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888311B (zh) * | 2009-05-11 | 2013-02-06 | 北京神州绿盟信息安全科技股份有限公司 | 一种防止网络内容被篡改的设备、方法和系统 |
JP2011165134A (ja) | 2010-02-15 | 2011-08-25 | Sony Corp | コンテンツ再生装置、携帯機器、及び異常検知方法 |
US8769312B2 (en) * | 2010-10-28 | 2014-07-01 | Panasonic Corporation | Tampering monitoring system, protection control module, and detection module |
WO2012124270A1 (ja) * | 2011-03-15 | 2012-09-20 | パナソニック株式会社 | 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール |
US9003519B2 (en) * | 2011-05-16 | 2015-04-07 | At&T Intellectual Property I, L.P. | Verifying transactions using out-of-band devices |
US9419994B2 (en) * | 2012-05-25 | 2016-08-16 | Nec Corporation | Method for identifying potentially malicious network elements within a network using cross-domain collaborative data sharing |
US9208325B2 (en) * | 2012-07-26 | 2015-12-08 | International Business Machines Corporation | Protecting data on a mobile device |
US9940446B2 (en) * | 2013-07-25 | 2018-04-10 | Siemens Healthcare Diagnostics Inc. | Anti-piracy protection for software |
KR101519845B1 (ko) * | 2013-11-14 | 2015-05-13 | (주)잉카엔트웍스 | 안티디버깅 방법 |
US9909333B2 (en) | 2015-01-26 | 2018-03-06 | Hayward Industries, Inc. | Swimming pool cleaner with hydrocyclonic particle separator and/or six-roller drive system |
US9885196B2 (en) | 2015-01-26 | 2018-02-06 | Hayward Industries, Inc. | Pool cleaner power coupling |
JP2017022654A (ja) * | 2015-07-14 | 2017-01-26 | 株式会社東芝 | 記憶装置及び方法 |
JP6741559B2 (ja) * | 2016-01-18 | 2020-08-19 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 評価装置、評価システム及び評価方法 |
KR101862348B1 (ko) * | 2016-02-09 | 2018-05-29 | 지멘스 악티엔게젤샤프트 | 프로그램 명령들의 안전한 실행을 위한 방법 및 실행 환경 |
US10241847B2 (en) | 2016-07-19 | 2019-03-26 | 2236008 Ontario Inc. | Anomaly detection using sequences of system calls |
US10156083B2 (en) | 2017-05-11 | 2018-12-18 | Hayward Industries, Inc. | Pool cleaner power coupling |
US9885194B1 (en) | 2017-05-11 | 2018-02-06 | Hayward Industries, Inc. | Pool cleaner impeller subassembly |
US9896858B1 (en) | 2017-05-11 | 2018-02-20 | Hayward Industries, Inc. | Hydrocyclonic pool cleaner |
CN111512593B (zh) * | 2018-01-19 | 2023-08-29 | 瑞萨电子株式会社 | 半导体设备、提供更新数据的方法、接收更新数据的方法以及介质 |
JP7321795B2 (ja) * | 2019-06-27 | 2023-08-07 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
CN112541186B (zh) * | 2020-12-21 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 一种基于运动状态感知的密码抗失控系统及方法 |
US11196558B1 (en) * | 2021-03-09 | 2021-12-07 | Technology Innovation Institute | Systems, methods, and computer-readable media for protecting cryptographic keys |
US11087017B1 (en) | 2021-03-09 | 2021-08-10 | Technology Innovation Institute | Systems, methods, and computer-readable media for utilizing anonymous sharding techniques to protect distributed data |
EP4422119A1 (en) * | 2023-02-22 | 2024-08-28 | Sebastien Armleder | Method for issuance of a personalized user device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000293370A (ja) * | 1999-04-09 | 2000-10-20 | Konami Co Ltd | コンピュータシステム、コンピュータプログラムの実行方法及びコンピュータプログラム記録媒体 |
WO2008099682A1 (ja) * | 2007-02-16 | 2008-08-21 | Panasonic Corporation | 分散情報配布装置、保持装置、認証局装置及びシステム |
JP2009003853A (ja) * | 2007-06-25 | 2009-01-08 | Panasonic Corp | 複数のソフトウェアを正しい順番で起動する情報端末およびセキュリティモジュール |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3964841B2 (ja) * | 2003-08-29 | 2007-08-22 | 株式会社東芝 | 半導体集積回路装置 |
US7831838B2 (en) * | 2004-03-05 | 2010-11-09 | Microsoft Corporation | Portion-level in-memory module authentication |
US20090249085A1 (en) * | 2004-06-29 | 2009-10-01 | Nagracard S.A. | Security module and personalization method for such a security module |
US7770785B2 (en) * | 2005-06-13 | 2010-08-10 | Qualcomm Incorporated | Apparatus and methods for detection and management of unauthorized executable instructions on a wireless device |
-
2010
- 2010-02-15 WO PCT/JP2010/000906 patent/WO2010092832A1/ja active Application Filing
- 2010-02-15 EP EP10741112.6A patent/EP2397964A4/en not_active Withdrawn
- 2010-02-15 CN CN201080006212.0A patent/CN102301374B/zh not_active Expired - Fee Related
- 2010-02-15 US US13/143,594 patent/US8544093B2/en active Active
- 2010-02-15 JP JP2010550475A patent/JP5453324B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000293370A (ja) * | 1999-04-09 | 2000-10-20 | Konami Co Ltd | コンピュータシステム、コンピュータプログラムの実行方法及びコンピュータプログラム記録媒体 |
WO2008099682A1 (ja) * | 2007-02-16 | 2008-08-21 | Panasonic Corporation | 分散情報配布装置、保持装置、認証局装置及びシステム |
JP2009003853A (ja) * | 2007-06-25 | 2009-01-08 | Panasonic Corp | 複数のソフトウェアを正しい順番で起動する情報端末およびセキュリティモジュール |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11190647B2 (en) | 2018-07-18 | 2021-11-30 | Canon Kabushiki Kaisha | Information processing apparatus stopping power supply to hardware connected to a socket |
Also Published As
Publication number | Publication date |
---|---|
EP2397964A1 (en) | 2011-12-21 |
CN102301374B (zh) | 2014-06-25 |
JPWO2010092832A1 (ja) | 2012-08-16 |
US20110271344A1 (en) | 2011-11-03 |
CN102301374A (zh) | 2011-12-28 |
US8544093B2 (en) | 2013-09-24 |
WO2010092832A1 (ja) | 2010-08-19 |
EP2397964A4 (en) | 2014-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5453324B2 (ja) | 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法 | |
JP5453323B2 (ja) | 改竄監視システム、管理装置及び改竄管理方法 | |
JP5390532B2 (ja) | 監視システム、プログラム実行装置、監視プログラム、記録媒体及び集積回路 | |
JP5405986B2 (ja) | ソフトウェア更新システム、管理装置、記録媒体及び集積回路 | |
JP5681028B2 (ja) | 改ざん監視システム、管理装置及び管理方法 | |
JP5744855B2 (ja) | 改ざん監視システム、管理装置及び改ざん管理方法 | |
US9594909B2 (en) | Software updating apparatus, software updating system, invalidation method, and invalidation program | |
US8438402B2 (en) | Electronic terminal, control method, computer program and integrated circuit | |
US8683214B2 (en) | Method and device that verifies application program modules | |
US8769312B2 (en) | Tampering monitoring system, protection control module, and detection module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131022 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131119 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140106 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5453324 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |