JP5453323B2 - 改竄監視システム、管理装置及び改竄管理方法 - Google Patents

改竄監視システム、管理装置及び改竄管理方法 Download PDF

Info

Publication number
JP5453323B2
JP5453323B2 JP2010550474A JP2010550474A JP5453323B2 JP 5453323 B2 JP5453323 B2 JP 5453323B2 JP 2010550474 A JP2010550474 A JP 2010550474A JP 2010550474 A JP2010550474 A JP 2010550474A JP 5453323 B2 JP5453323 B2 JP 5453323B2
Authority
JP
Japan
Prior art keywords
monitoring
module
update
modules
normal
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.)
Active
Application number
JP2010550474A
Other languages
English (en)
Other versions
JPWO2010092830A1 (ja
Inventor
勇二 海上
学 前田
裕一 布田
なつめ 松崎
真佐男 野仲
啓樹 静谷
正夫 酒井
秀司 磯辺
英介 小泉
真吾 長谷川
誠 カルロス 宮内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2010550474A priority Critical patent/JP5453323B2/ja
Publication of JPWO2010092830A1 publication Critical patent/JPWO2010092830A1/ja
Application granted granted Critical
Publication of JP5453323B2 publication Critical patent/JP5453323B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44236Monitoring of piracy processes or activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00838Preventing unauthorised reproduction
    • H04N1/0088Detecting or preventing tampering attacks on the reproduction system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/0014Carrier regulation
    • H04L2027/0024Carrier regulation at the receiver end
    • H04L2027/0026Correction of carrier offset
    • H04L2027/0034Correction of carrier offset using hypothesis testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、機器内部で動作するモジュール等の改竄を監視し管理する技術に関する。
従来、認証鍵等の秘匿データを有しているアプリケーションプログラムが、悪意のある第三者(以下、「攻撃者」という)に解析されないようにするため、耐タンパモジュールによる保護が知られている。耐タンパモジュールは、通常、ハードウェアとして機器上に実装され、アプリケーションプログラムを保護している。しかし、日々新たな攻撃手法が考案される昨今の現状を踏まえると、新たな攻撃手法に柔軟に対応するためにも、更新が容易なコンピュータプログラムであるソフトウェアにより、アプリケーションプログラムを保護することが望ましい。
ソフトウェアによってアプリケーションプログラムを保護する技術として、例えば、ハッシュ値を用いた改竄検証や、アプリケーションプログラムを利用しない時にはプログラムを暗号化して保存しておき、利用する時にのみ暗号化されたプログラムを復号してメモリへロードする復号ロード機能等がある。
ところが、このような技術を利用しても、アプリケーションプログラムを保護するソフトウェア(以下、「保護制御モジュール」という)自体が攻撃者により攻撃され得る。保護制御モジュールが改竄されると、アプリケーションプログラムが攻撃者の攻撃にさらされることになる。
特許文献1は、プログラムの改変の有無をチェックするチェックプログラム自体の改変が行われた場合でも、改変されたプログラムの実行を確実に阻止することが可能なプログラムの改変防止のための技術を開示している。この技術によると、プログラムの改変の有無を監視するためのチェックプログラムを複数用意し、各チェックプログラムが他のチェックプログラムのうちのいずれかを監視する。以下にこの技術について簡単に説明する。
2つの監視モジュールA、Bが相互に監視を行うものとする。監視モジュールA、Bはそれぞれ、攻撃者による改竄から保護すべきプログラム(本体プログラムA、B)、他のモジュールが改竄されているかを検出するためのプログラム(チェックプログラムA、B)、及びそれぞれのチェックプログラムが改竄検出を行うために必要な情報(チェック情報A、B)から構成される。チェックプログラムAは、監視モジュールBの本体プログラムBとチェックプログラムBの改竄検出を、チェック情報Aを用いて行う。さらにチェックプログラムBは、監視モジュールAの本体プログラムAとチェックプログラムAの改竄検出を、チェック情報Bを用いて行う。この様に、それぞれの監視モジュールが、相手の監視モジュールの本体プログラム及びチェックプログラムの改竄検出を行う。
日本国特許第3056732号公報 WO2008/099682
岡本龍明、山本博資、「現代暗号」、産業図書(1997年) ITU−T Recommendation X.509 (1997 E): Information Technology − Open Systems Interconnection − The Directory: Authentication Framework,1997 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.
このようにして改竄検出を行い、改竄を検出した場合には、例えば、ネットワークを介して、外部のサーバ装置から正常な保護制御モジュールを取得し、改竄された保護制御モジュールを正常な保護制御モジュールに更新すればよい。しかしながら、保護制御モジュールを更新する機能を担うモジュール(以下、「更新モジュール」という)も攻撃者により攻撃され得る。
更新モジュールが改竄されると、保護制御モジュールが正しく更新されず、アプリケーションプログラムが有する秘匿データが漏洩する恐れがある。更新モジュールの改竄検出を行うモジュールをさらに備えることにより、更新モジュールの改竄を検出することは可能となるが、当該モジュール自体もやはり改竄される恐れがあるため、根本的な解決には至らない。
上記においては、保護制御モジュールの更新例を用いて説明したが、保護制御モジュールの更新以外に、アプリケーションプログラムや更新モジュール自身を更新する場合においても、これらが正しく更新されないことにより同様の問題が生じる。
上記のような問題を解決するために、本発明は、複数の監視モジュールのうち、一部の監視モジュールが改竄された場合であっても、改竄されていない正常な監視モジュールを高い確率で特定することができる改竄監視システム、管理装置、管理方法、集積回路、プログラム及び記録媒体を提供することを目的とする。
上記目的を達成するために、本発明は、改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出手段と、前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第1仮定手段と、改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第2仮定手段と、前記第2仮定手段による手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断手段とを備える。
この構成によると、検出手段は、改竄されていない正常な監視モジュールの存在を検出しているので、少なくとも1個の監視モジュールは、正常である。これに対して、判断手段により、全ての監視モジュールに対して改竄されていると仮定されたと判断された場合には、この判断結果は、検出手段の検出の結果と矛盾している。これは、第1仮定手段による仮定に誤りがあったためである。従って、第1仮定手段による仮定を覆し、第1仮定手段により、改竄されていると仮定された監視モジュールを正常な監視モジュールと決定する。
以上のようにして、正常な監視モジュールを決定することができるので、正常な監視モジュールの監視結果は信頼できるものであり、有効に利用することができる。
実施の形態1におけるソフトウェア更新システム10の全体構成図である。 実施の形態1における更新モジュール131のブロック図である。 実施の形態1における保護制御モジュール120のブロック図である。 実施の形態1におけるアクセス制御モジュール140のブロック図である。 実施の形態1における機器100のハードウェア構成図である。 実施の形態1における機器100のソフトウェア構成図である。 実施の形態1における判断部210のブロック図である。 実施の形態1における更新用ソフトウェア配布部220のブロック図である。 実施の形態1におけるモジュール無効化部230のブロック図である。 実施の形態1におけるソフトウェア更新システム10全体の動作を示すフローチャートである。 実施の形態1における初期設定処理の動作を説明するための図である。 実施の形態1における初期設定処理のシーケンス図である。 実施の形態1における更新モジュール初期化処理のフローチャートである。 実施の形態1における検知処理のシーケンス図である。 実施の形態1における解析・判断処理のシーケンス図である。 実施の形態1における相互認証処理のシーケンス図である。 実施の形態1における相互認証処理のシーケンス図である。 実施の形態1における回復処理のフローチャートである。 実施の形態1における相互監視処理のシーケンス図である。 実施の形態1における更新処理のシーケンス図である。 実施の形態1における更新処理のシーケンス図である。 実施の形態1における相互監視処理と更新処理との連携動作について説明するための図である。 実施の形態1における再暗号化処理のシーケンス図である。 実施の形態1における次ラウンド準備処理のシーケンス図である。 実施の形態1における無効化処理のシーケンス図である。 実施の形態2における更新モジュール群130bの構成を説明するための図である。 実施の形態2における判断部210bのブロック図である。 実施の形態2における不正モジュール特定部605のブロック図である。 実施の形態2における循環検出部606のブロック図である。 実施の形態2における監視パターンについて説明するための図である。 実施の形態2における相互監視結果について説明するための図である。 実施の形態2における相互監視結果の矛盾について説明するための図である。 実施の形態2における不正モジュール特定処理のフローチャートである。 実施の形態2における不正モジュール特定処理を説明するための図である。 実施の形態2における循環監視パターンについて説明するための図である。 実施の形態2における循環監視パターンの矛盾について説明するための図である。 実施の形態2における循環監視パターンの矛盾について説明するための図である。 実施の形態2における循環監視パターンを考慮した不正モジュール特定処理のフローチャートである。 実施の形態2における循環監視パターンリスト2100のデータ構成を示す図である。 実施の形態2における循環監視パターンリスト2200のデータ構成を示す図である。 実施の形態2における循環監視パターンを考慮した不正モジュール特定処理のフローチャートである。 実施の形態2における循環監視パターンを考慮した不正モジュール特定処理のフローチャートである。 循環監視パターンを考慮して分散情報を配布する具体例を説明するための図である。 循環監視パターンを考慮して分散情報を配布する具体例を説明するための図である。 ソフトウェア更新システム10cbにおける判断部210cbの構成を示す構成図である。 ソフトウェア更新システム10cbにおける正常モジュール特定部607の構成を示す構成図である。 ソフトウェア更新システム10cbにおける検証結果判定部674による判定方法について説明するための監視パターン及び監視の結果の一例である。 ソフトウェア更新システム10cbにおける各更新モジュールの改竄検出の監視の結果の一例を示す。 ソフトウェア更新システム10cbにおける各更新モジュールの改竄検出の監視の結果の別の一例を示す。 ソフトウェア更新システム10cbにおける正常な更新モジュールの特定処理の動作を示すフローチャートである。図51へ続く。 ソフトウェア更新システム10cbにおける正常な更新モジュールの特定処理の動作を示すフローチャートである。図52へ続く。 ソフトウェア更新システム10cbにおける正常な更新モジュールの特定処理の動作を示すフローチャートである。図51から続く。 ソフトウェア更新システム10dbの構成を示す構成図である。 ソフトウェア更新システム10dbにおける監視パターン更新部250の構成を示す構成図である。 ソフトウェア更新システム10dbにおける判断部210cbの構成を示す構成図である。 ソフトウェア更新システム10dbにおける妨害モジュール特定部608の構成を示す構成図である。 監視の結果の一例を示す。 ソフトウェア更新システム10dbにおける動作を示す動作図である。特に、妨害モジュール特定処理と正常モジュール特定処理との関係を表している。 ソフトウェア更新システム10dbにおける妨害モジュールの特定処理と正常モジュールの特定処理の動作を示すシーケンス図である。図60へ続く。 ソフトウェア更新システム10dbにおける妨害モジュールの特定処理と正常モジュールの特定処理の動作を示すシーケンス図である。図59から続く。 ソフトウェア更新システム10dbにおける妨害モジュールの特定処理を示すフローチャートである。図62へ続く。 ソフトウェア更新システム10dbにおける妨害モジュールの特定処理を示すフローチャートである。図63へ続く。 ソフトウェア更新システム10dbにおける妨害モジュールの特定処理を示すフローチャートである。図62から続く。 ソフトウェア更新システム10dbの変形例における監視の結果の一例を示す。 ソフトウェア更新システム10dbにおける監視パターンの一例を示す。 ソフトウェア更新システム10dbにおける相互の監視の結果の一例を示す。 ソフトウェア更新システム10dbにおける相互の監視の結果の別の一例を示す。 ソフトウェア更新システム10dbにおける相互の監視の結果のさらに別の一例を示す。 ソフトウェア更新システム10dbにおける相互の監視の結果のさらに別の 変形例(22)における監視結果の一例を示す。 変形例(25)における監視結果の一例を示す。 変形例(25)における監視結果の一例を示す。 変形例(26)における監視結果の一例を示す。 変形例(26)における監視結果の一例を示す。 コンテンツ再生システム10eの構成を示す構成図である。 モバイルバンキングシステム10fの構成を示す構成図である。 本発明の実施の形態3における改竄監視システム10caの構成を示すブロック図である。 本発明の実施の形態4における改竄監視システム10daの構成を示すブロック図である。 実施の形態2に係るソフトウェア更新システム10aの全体構成図である。 実施の形態2に係るソフトウェア更新システム10bの全体構成図である。
請求項1に記載の態様である改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出手段と、前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第1仮定手段と、改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第2仮定手段と、前記第2仮定手段による手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断手段とを備えることを特徴とする。
ここで、前記検出手段は、前回受信した監視結果と、今回受信した監視結果とを用い、前回受信した監視結果により、全ての監視モジュールが正常であると判定され、今回受信した監視結果により、全ての監視モジュールが正常であると判定されなかった場合に、改竄されていない正常な監視モジュールの存在を検出し、前回の監視と今回の監視との時間間隔は、所定の閾値より小さいとしてもよい。
この構成によると、前回の監視と今回の監視との時間間隔は、所定の閾値より小さいので、前回の監視と今回の監視との間において、全ての監視モジュールが改竄されることは考えにくい。このため、今回の監視の後において、正常な監視モジュールが存在する可能性が高い。
ここで、前記第1仮定手段は、選択した前記監視モジュールを識別する識別番号を含む仮定不正グループを生成し、前記第2仮定手段は、前記監視結果を用いて、前記仮定不正グループに含まれている識別番号により識別される監視モジュールを正常と判断する監視モジュールが存在するか否かを判定し、存在すると判定された場合に、当該監視モジュールを識別する識別番号を前記仮定不正グループに追加し、未処理の監視モジュールについて、前記判定と前記追加とを繰り返し行うように制御し、前記判断手段は、前記仮定不正グループに、全ての監視モジュールを識別する識別番号が含まれるか否かを判断し、前記仮定不正グループに、全ての監視モジュールを識別する識別番号が含まれると判断される場合に、正常な監視モジュールを決定するとしてもよい。
この構成によると、識別番号を用いて、監視モジュールを識別できる。
ここで、前記管理装置は、さらに、前記監視モジュールの中から改竄された不正な監視モジュールを特定する不正モジュール特定手段を備え、前記第1仮定手段は、不正な監視モジュールを除いて、前記監視モジュールを選択し、前記第2仮定手段は、不正な監視モジュールを除く未処理の監視モジュールについて、前記手順を適用し、前記判断手段は、不正な監視モジュールを除いて、その他の全ての監視モジュールが改竄されている仮定されたか判断し、前記判断がされる場合に、正常な監視モジュールを特定するとしてもよい。
この構成によると、不正な監視モジュールを特定し、特定した不正な監視モジュールを除いて、正常な監視モジュールを特定するので、正常な監視モジュールの特定がさらに、容易になる。
ここで、前記不正モジュール特定手段は、1個の監視モジュールが正常であると仮定する場合に、受信する監視結果を用いて、複数の監視結果に不一致があるか否かを判断し、不一致がある場合に、前記監視モジュールを、不正な監視モジュールとして、特定するとしてもよい。
また、前記監視モジュールに対して、循環監視パターンにより、監視対象の監視モジュールが定められ、前記循環監視パターンは、第1の監視モジュールによる監視対象である第2の監視モジュールが、前記第1の監視モジュールを監視し、又は、1個以上の監視モジュールを介在して、前記第1の監視モジュールを監視することを示し、前記不正モジュール特定手段は、前記循環監視パターンに係る複数の監視モジュールによる他の1の監視モジュールに対する複数の監視結果が一致しない場合に、当該循環監視パターンに係る複数の監視モジュールを、不正な監視モジュールとして、特定するとしてもよい。
これらの構成によると、不正な監視モジュールを確実に特定することができる。
ここで、前記情報セキュリティ装置が有する少なくとも1個の監視モジュールは、他のモジュールを更新する機能を備える更新モジュールであり、前記管理装置は、さらに、正常な監視モジュールと決定された監視モジュールが、他のモジュールを更新する機能を有する前記更新モジュールである場合に、更新モジュールである当該監視モジュールに対して、他のモジュールを更新するように、制御する制御手段を備えるとしてもよい。
この構成によると、正常と特定された更新モジュールにより、他のモジュールを確実に更新することができる。
ここで、前記情報セキュリティ装置は、さらに、アプリケーションプログラム及び当該アプリケーションプログラムを保護する保護制御モジュールを有し、前記他のモジュールは、前記監視モジュール、前記アプリケーションプログラム、又は前記保護制御モジュールであるとしてもよい。
請求項9に記載の態様である改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した前記監視結果を用いて、前記監視モジュールのうちから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定手段と、複数の妨害候補モジュールが検出された場合に、複数の妨害候補モジュール間で、相互に相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせる更新手段とを備え、前記受信手段は、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、前記判定手段は、さらに、受信した新たな監視結果を用いて、前記妨害候補モジュールから、相互に正常と判定し、他の妨害候補モジュールに対して不正と判定する2個の妨害候補モジュールを除く他の妨害候補モジュールを妨害モジュールと特定することを特徴とする。
この構成によると、妨害モジュールを特定することができるので、特定された妨害モジュールを無効化すればよい。
ここで、前記判定手段は、さらに、受信した新たな監視結果を用いて、2個の妨害候補モジュールのうち、第1の妨害候補モジュールが第2の妨害候補モジュールに対して正常と判定し、第2の妨害候補モジュールが第1の妨害候補モジュールに対して不正と判定する場合に、第1の妨害候補モジュールを、改竄された不正な監視モジュールであると特定するとしてもよい。
この構成によると、不正な監視モジュールを確実に特定することができる。
ここで、前記更新手段は、全ての監視モジュール間で、相互に相手を監視するように、新たな前記監視パターンを生成するとしてもよい。
ここで、前記管理装置は、さらに、特定された前記妨害モジュールを無効化するよう、前記情報セキュリティ装置を制御する無効化手段を含むとしてもよい。
ここで、前記更新手段は、さらに、無効化された前記妨害モジュールを除く前記監視モジュールにより、相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせ、前記受信手段は、さらに、前記情報セキュリティ装置から、無効化された前記妨害モジュールを除く各監視モジュールによる他の監視モジュールに対する監視結果を受信し、前記管理装置は、さらに、受信した監視結果を用いて、正常な監視モジュールを特定する正常モジュール特定手段を含むとしてもよい。
この構成によると、妨害モジュールを除いて、正常な監視モジュールを特定するので、正常な監視モジュールの特定が容易になる。
ここで、改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した前記監視結果を用いて、前記監視モジュールから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定手段と、1個の妨害候補モジュールのみが抽出された場合に、抽出された前記妨害候補モジュールを無効化するよう、前記情報セキュリティ装置を制御する無効化手段と、1個の妨害候補モジュールのみが検出された場合に、当該妨害候補モジュールを除いて、新たに監視パターンを作成し、作成した監視パターンを前記情報セキュリティ装置へ送信し、新たな監視パターンに置き換えさせる更新手段とを備え、前記受信手段は、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、前記判定手段は、さらに、受信した新たな監視結果を用いて、正常な監視モジュールを特定するとしてもよい。
この構成によると、1個だけの妨害候補モジュールを除くので、正常な監視モジュールを特定することが容易になる。
また、請求項15に記載の態様は、改竄を監視する複数の監視モジュールを有する情報セキュリティ装置と、当該情報セキュリティ装置を管理する管理装置とから構成される改竄監視システムであって、前記管理装置は、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出手段と、前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第1仮定手段と、改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第2仮定手段と、前記第2仮定手段による手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断手段とを備えることを特徴とする。
ここで、前記情報セキュリティ装置が有する少なくとも1個の監視モジュールは、他のモジュールを更新する機能を備える更新モジュールであり、前記管理装置は、さらに、正常な監視モジュールと決定された監視モジュールが、他のモジュールを更新する機能を有する前記更新モジュールである場合に、更新モジュールである当該監視モジュールに対して、他のモジュールを更新するように、制御する制御手段を備えるとしてもよい。
ここで、改竄を監視する複数の監視モジュールを有する情報セキュリティ装置と、前記情報セキュリティ装置とから構成される改竄監視システムであって、前記管理装置は、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、受信した前記監視結果を用いて、前記監視モジュールのうちから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定手段と、複数の妨害候補モジュールが検出された場合に、複数の妨害候補モジュール間で、相互に相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせる更新手段とを備え、前記受信手段は、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、前記判定手段は、さらに、受信した新たな監視結果を用いて、前記妨害候補モジュールから、相互に正常と判定し、他の妨害候補モジュールに対して不正と判定する2個の妨害候補モジュールを除く他の妨害候補モジュールを妨害モジュールと特定するとしてもよい。
ここで、前記情報セキュリティ装置が有する少なくとも1個の監視モジュールは、他のモジュールを更新する機能を備える更新モジュールであり、前記管理装置は、さらに、正常な監視モジュールと決定された監視モジュールが、他のモジュールを更新する機能を有する更新モジュールである場合に、更新モジュールである当該監視モジュールに対して、他のモジュールを更新するように、制御する制御手段を備えるとしてもよい。
1.実施の形態1
ここでは、本発明に係る不正モジュール無効化システムの実施の形態として、ソフトウェア更新システム10について図面を参照しながら説明する。
1.1 ソフトウェア更新システム10の構成
(1)全体構成
図1は、ソフトウェア更新システム10の全体構成図である。
同図に示すように、ソフトウェア更新システム10は、本発明に係る情報処理装置である機器100と、本発明に係る不正モジュール特定装置である更新サーバ200とから構成される。機器100と更新サーバ200とは、ネットワークを介して接続されている。
(2)機器100の構成
次に、機器100について説明する。
機器100は、ネットワークを介した様々なサービスをユーザに提供する機器である。例えば、機器100は、コンテンツ配信サーバにアクセスし、音楽や映像などのコンテンツを購入して再生したり、金融機関のシステムにアクセスし、ネットバンキング(預金の残高照会や口座振り込みなど)を利用したりする。
(a)機器100のソフトウェア構成
図1に示すように、機器100は、アプリケーションソフト(以下、「アプリ」という。)110、アプリ111、保護制御モジュール120、更新モジュール群130、およびアクセス制御モジュール140を含む。
アプリ110およびアプリ111は、ネットワークを介して、機器100を使用するユーザに、様々な機能を提供するためのソフトウェアである。例えば、コンテンツ配信サーバ(不図示)から音楽コンテンツや映像コンテンツを購入し、その購入したコンテンツを再生するソフトウェアや、金融機関のシステム(不図示)にアクセスし、残高確認や振り込みなどのネットバンキングを利用するためのソフトウェアである。
アプリ110及びアプリ111は、コンテンツ配信サーバや金融機関のシステムと認証を行うための認証鍵など、秘匿データを有している。秘匿データは、悪意のある第三者(以下、「攻撃者」という。)によりアプリから抜き取られ、不正に利用されないようにするために保護される必要があるデータである。
保護制御モジュール120は、攻撃者によりアプリ110およびアプリ111が解析され、認証鍵などの秘匿データが抜き取られないようにアプリ110およびアプリ111を保護するための機能を制御するモジュールである。アプリを保護するための機能としては、アプリを利用しない時には暗号化して保存しておき、アプリを利用する時にのみ復号してメモリへロードする復号ロード機能や、アプリが改ざんされていないかをチェックする改ざん検出機能、デバッガなどの解析ツールが動作しないかをチェックする解析ツール検出機能などがある。
保護制御モジュール120は、これらの機能の動作を制御し、アプリ110およびアプリ111が攻撃者によって解析されていないかなどをチェックする。攻撃者による攻撃を検出したときには、保護制御モジュール120は、アプリ110およびアプリ111の動作を停止し、アプリ110およびアプリ111が利用していたメモリ、特に秘匿データが記録されたメモリ領域のクリアなどの処理を行い、秘匿データの漏洩を防止する。
更新モジュール群130は、複数の更新モジュールから構成される。実施の形態1では、更新モジュール群130は、図1に示すように、更新モジュール131、更新モジュール132、および更新モジュール133の3つの更新モジュールから構成される。
更新モジュール131、132、133は、それぞれ、保護制御モジュール120の改ざんの有無を検出する。各更新モジュールは、保護制御モジュール120が改ざんされている場合、更新サーバ200から更新用の保護制御モジュールをダウンロードし、改ざんされている保護制御モジュールを更新する機能を有する。
また、更新モジュール131、132、133は、アプリ110およびアプリ111を更新する機能を有していてもよい。
そして、更新モジュール群130は、攻撃者によって各更新モジュールが改ざんされ、各更新モジュールを不正に利用されることを防止するために、更新モジュール同士が相互に改ざん検出を実施する。そして、改ざん検出結果を、更新サーバ200へ送信する。更新サーバ200により、ある更新モジュールが改ざんされていると判断された場合には、他の正常な更新モジュールは、更新サーバ200からの無効化指示を受け、改ざんされた更新モジュールを無効化する。
これにより、更新モジュール群130に含まれる一部の更新モジュールが攻撃され、改ざんされた場合であっても、それを検出し、攻撃に対処することが可能となる。
アクセス制御モジュール140は、各更新モジュールが他のモジュールを消去するために必要なアクセス情報を保持する。アクセス情報は、例えば、消去対象であるモジュールが配置されているアドレスや、消去に必要な手順が書かれた手順書などである。なお、アクセス情報は、消去対象であるモジュール毎に、それぞれ個別のアクセス情報取得鍵で暗号化されている。
(b)更新モジュールの構成
次に、更新モジュール131、132、133の詳細について説明する。
図2は、更新モジュール131の機能的な構成を示す機能ブロック図である。更新モジュール132および133も同様の構成を有する。更新モジュール131は、更新モジュール本体と、検証用証明書と、MAC値テーブルとを含む。
更新モジュール本体は、受信部301、送信部302、制御部303、更新部304、検証部305、MAC値生成部306、MAC値テーブル更新部307、および分散情報保持部308から構成される。
受信部301は、更新サーバ200から、各種指示や更新用ソフトウェアを受信する。また、受信部301は、他の更新モジュールから、相互監視を行うために必要な更新モジュール本体や更新モジュール検証用証明書などを受信する。さらに、受信部301は、他の更新モジュールから、依頼した処理の結果や、当該他の更新モジュールによる保護制御モジュール120の監視結果などを受信する。
送信部302は、更新サーバ200、保護制御モジュール120、他の更新モジュール、およびアクセス制御モジュール140へ、各種処理結果や証明書などのデータを送信する。
制御部303は、受信部301が受信した各種指示や通知に基づいて、更新部304や検証部305を制御することにより各種の処理を行う。
具体的には、制御部303は、保護制御モジュール120、更新モジュール132.および更新モジュール133の改ざん検証処理、保護制御モジュール120、更新モジュール132、および更新モジュール133の更新処理、監視パターンの更新処理などを行う。
更新部304は、制御部303の制御に基づき、更新サーバ200と連携して、機器100内部のソフトウェア、具体的には、アプリ110および111、保護制御モジュール120、更新モジュール131.132および133を更新する。
検証部305は、制御部303の制御に基づき、保護制御モジュール120、更新モジュール132および更新モジュール133の改ざん検出処理を行う。
検証部305は、各モジュールに付加されている検証用証明書を用いて改ざん検出処理を行うとしてもよい。または、予め計算されたメッセージ認証コード(Message Authentication Code)(以下、「MAC値」という。)を用いてもよい。
検証部305が、どのタイミングでどのモジュールの改ざん検出処理を行うのかは、予め、更新サーバ200から与えられている。検証部305は、更新サーバ200から改ざん検出対象のモジュールの変更や改ざん検出を行うタイミングの変更の指示があった場合には、指示にしたがい変更する。
MAC値生成部306は、検証鍵を保持している。MAC値生成部306は、検証部305が改ざん検出処理にMAC値を用いる場合、検証鍵を用いてMAC値を生成する。
MAC値テーブル更新部307は、各モジュールのMAC値が格納されているMAC値テーブルを更新する。MAC値テーブルには、モジュールを識別するためのモジュール識別子と、そのモジュールに対応するMAC値とが対になって格納されている。
MAC値生成部306は、改ざん検出処理の対象であるモジュールを取得し、MAC値を計算する。検証部305は、計算されたMAC値とMAC値テーブルに格納されている対象モジュールのMAC値とを比較することにより改ざん検出を行う。
分散情報保持部308は、分散情報および配置情報を保持している。分散情報は、保護制御モジュール120がアプリ110および111の暗復号処理に用いる暗復号鍵から秘密分散法に基づいて生成された情報である。配置情報は、どの分散情報をどの更新モジュールに配布したかを記述した情報である。
なお、署名方式に関しては非特許文献1に詳しく説明されている。証明書に関しては非特許文献2に詳しく説明されている。また、分散情報に関しては特許文献2に詳しく説明されている。
(c)保護制御モジュール120の構成
ここでは、保護制御モジュール120の詳細について説明する。
図3は、保護制御モジュール120の機能的な構成を示す機能ブロック図である。
同図に示すように、保護制御モジュール120は、受信部401、送信部402、制御部403、復号ロード部404、改ざん検出部405、解析ツール検出部406、暗復号鍵保持部407、暗復号鍵生成部408、暗復号鍵分散部409、証明書生成部410、および暗復号鍵復元部411から構成される。
受信部401は、更新モジュール131、132、133から、分散情報や各種依頼などを受信する。
送信部402は、更新モジュール131、132、133へ、各種依頼などを送信する。
制御部403は、復号ロード部404、改ざん検出部405、および解析ツール検出部406を制御することにより、アプリ110、111が攻撃者により攻撃されている場合に、それを検出する。
復号ロード部404は、暗号化されているアプリ110、111を実行するときに、暗復号鍵を用いて復号し、メモリ上にロードする処理を行う。また、アプリ110、111の実行中に、他のアプリへのコンテキストスイッチが発生すると、復号ロード部404は、メモリ上のデータを、暗復号鍵を用いて暗号化する。そして、再びアプリ110、111へコンテキストスイッチしたときに、暗号化したデータを復号する処理を行う。
さらに、後述する再暗号化処理において、復号ロード部404は、暗復号鍵復元部411から入力される復元された旧暗復号鍵を用いて、アプリ110、111を復号した後、暗復号鍵保持部407に保持されている新たな暗復号鍵を用いて、アプリ110、111を再暗号化する。
改ざん検出部405は、アプリ110、111の改ざん検出処理を実行する。改ざん検出処理は、アプリ110、111に付加されている検証用証明書を用いる方法と、MAC値を比較する方法とがある。
解析ツール検出部406は、デバッガなどの解析ツールがインストールされたり、動作したときにそれを検出する。不正な攻撃者がアプリ110、111を攻撃するために、解析ツールをインストールしたり、動作させることが想定されるからである。検出方法としては、例えば、ファイル名を検索する方法や、デバッガが使用する特殊なレジスタが使用されているかを調べる方法や、デバッガが設定する割り込みを検出する方法などを用いる。
暗復号鍵保持部407は、アプリ110、111を暗復号するための暗復号鍵を保持する。
暗復号鍵生成部408は、アプリ110、111を暗復号するための暗復号鍵を生成する。
暗復号鍵分散部409は、初期設定時や次ラウンド準備時に、暗復号鍵から秘密分散法を用いて分散情報を生成する。
証明書生成部410は、暗復号鍵から生成された分散情報を復元したときに、正しく復元できたか否かを検証するために用いられる証明書を生成する。
暗復号鍵復元部411は、配置情報に基づいて、各更新モジュールから、各更新モジュールに配布されていた分散情報を取得する。そして、暗復号鍵復元部411は、取得した分散情報から暗復号鍵を復元し、復元した暗復号鍵を復号ロード部404に送信する。
(d)アクセス制御モジュール140の構成
図4は、アクセス制御モジュール140の構成を機能的に示す機能ブロック図である。同図に示すように、アクセス制御モジュール140は、受信部501、送信部502、およびアクセス情報保持部503から構成される。
受信部501は、更新モジュール131、132、133から、改ざんされた更新モジュールを消去するために必要な情報であるアクセス情報の取得依頼を受信する。
送信部502は、アクセス情報取得依頼に応じて、アクセス情報取得を依頼してきた更新モジュールへアクセス情報を送信する。
アクセス情報保持部503は、更新モジュール131、132、133毎に、そのモジュールを消去するためのアクセス情報を保持する。
各アクセス情報は、消去対象となる更新モジュールを識別するための更新モジュール識別子が付されている。また、各アクセス情報は、アクセス情報取得鍵で暗号化されている。
更新モジュール131、132、133からアクセス情報取得依頼を受け付けると。アクセス情報保持部503は、消去対象の更新モジュールの識別子が付されたアクセス情報を、依頼元の更新モジュールへ送信する。
(e)機器100のハードウェア構成
続いて、図5を用いて、機器100のハードウェア構成について説明する。
図5に示すように、機器100は、CPU(Central Processing Unit)171、不揮発性メモリであるEEPROM(Electrically Erasableand Programmable ReadOnly Memory)172、RAM(Random Access Memory)173、およびNIC(Network Interface Card)174などを含んで構成される。また、これらはバスを介して、相互に通信可能に接続されている。
EEPROM172には、保護制御モジュール120、更新モジュール131、132、133、及びアプリ110、111などが格納されている。
EEPROM172に格納されている各種モジュールをCPU171が実行することにより、各種モジュールの各機能部が実現される。各機能部は、具体的には、コンピュータプログラムによって記述されている。
RAM173は、CPU171のワークエリアとして用いられる。RAM173には更新モジュール131、132、133、および、アプリ110、111がロードされる。改ざん検出処理および無効化処理の対象となる更新モジュールは、RAM173上で動作している更新モジュールである。
NIC174は、ネットワークに接続するための拡張カードである。
(f)ソフトウェア階層
続いて、図6を用いて、機器100のソフトウェア階層について説明する。
図6に示すように、アクセス制御モジュール140及び更新モジュール群130は、OS150の中に組み込まれている。アプリ110及びアプリ111は、OS150上で動作し、保護制御モジュール120及びブートローダ160は、OS150の管理外にある。
機器100の起動の際には、まず保護制御モジュール120及び更新モジュール群130が起動された上でアプリケーションが実行される。
(3)更新サーバ200の構成
次に、更新サーバ200の構成について説明する。
更新サーバ200は、機器100の更新モジュール群130から、改ざん検出結果を受信して、受信した改ざん検出結果を基に、無効化すべき不正な更新モジュールを特定する不正モジュール特定装置として機能する。さらに、更新サーバ200は、機器100上で動作するソフトウェア(例えば、保護制御モジュール120)を更新するために必要な更新用のソフトウェアを機器100に配布するソフトウェア配布装置として機能する。
(a)全体構成
図1に示すように、更新サーバ200は、判断部210、更新用ソフトウェア配布部220、モジュール無効化部230、および通信部240から構成される。更新サーバ200は、具体的には、CPU、ROM、RAM、ハードディスクユニットなどを備えるコンピュータシステムである。CPUが、ROMまたはハードディスクユニットに記憶されているコンピュータプログラムにしたがって動作することにより、更新サーバ200は、上記の機能を発揮する。
判断部210は、機器100の更新モジュール群130から、改ざん検出結果を受信して、受信した改ざん検出結果を基に、無効化すべき不正な更新モジュールを特定する。
更新用ソフトウェア配布部220は、保護制御モジュール120を更新する際に、更新モジュール131、132、133と連携して動作し、更新用のソフトウェアを機器100へ安全に送信する。
モジュール無効化部230は、更新モジュール131、132、133からアクセス情報取得鍵取得要求を受け付けると、要求元の更新モジュールへ、アクセス情報取得鍵を送信する。
通信部240は、機器100と、更新サーバ200内部の各部との間で情報の送受信を行う。例えば、通信部240は、機器100から受信した改ざん検出結果を判断部210に送信する。なお、機器100と更新サーバ200との間の通信には、データを暗号化するなど、セキュリティの確保された通信路を用いてもよい。
続いて、更新サーバ200の各構成要素について説明する。
(b)判断部210の構成
図7は、判断部210の構成を機能的に示す機能ブロック図である。
同図に示すように、判断部210は、受信部601、送信部602、指示生成部603、およびモジュール特定部604とから構成される。
受信部601は、更新モジュール131、132、133から、改ざん検出結果、分散情報、各種依頼などを受信し、それらを指示生成部603へ出力する。また、受信部601は、更新サーバ200内の各部から、処理が完了した旨の通知を受け取り、それを指示生成部603へ出力する。
送信部602は、指示生成部603によって生成された指示を、更新サーバ200内の各部へ出力する。
指示生成部603は、更新モジュール131、132、133から受信した改ざん検出結果(以下、「相互監視結果」ということがある。)を、モジュール特定部604へ出力する。また、指示生成部603は、モジュール特定部604から、改ざんされている不正な更新モジュールを識別する情報を取得し、取得した情報を基に、更新サーバ200内の各部に対する指示を生成する。
モジュール特定部604は、更新モジュール131、132、133から受信した相互監視結果を用いて、各更新モジュールが改ざんされているか否かを判断し、改ざんされている不正な更新モジュールを特定する。モジュール特定部604は、不正な更新モジュールを識別する情報を指示生成部603へ出力する。
実施の形態1のモジュール特定部604は、例えば、各更新モジュールから受信した複数の改ざん検出結果を用いて、過半数の更新モジュールが「改ざんされている」と判断した更新モジュールを不正な更新モジュールであると特定する。具体的には、いま更新モジュール群130には、3つの更新モジュール131、132、133が含まれているので、2つの更新モジュールが「改ざんされている」と判断した更新モジュールを、不正な更新モジュールと特定する。
(c)更新用ソフトウェア配布部220
図8は、更新用ソフトウェア配布部220の機能的な構成を示す機能ブロック図である。
同図に示すように、更新用ソフトウェア配布部220は、受信部701、送信部702、暗号鍵生成部703、暗号処理部704、認証部705、更新モジュール選択部706、制御部707、証明書生成部708、署名秘密鍵保持部709、更新用ソフトウェア保持部710、および暗号鍵保持部711から構成される。
受信部701は、更新モジュール131、132、133から保護制御モジュール120に対する改ざん検出結果、および更新モジュール間の相互監視結果を受信する。
送信部702は、機器100のアプリ110、111、保護制御モジュール120を更新する必要がある場合に、更新モジュール131、132、133へ、更新処理の依頼、更新用ソフトウェア、復号に必要な鍵などのデータを送信する。
暗号鍵生成部703は、更新用ソフトウェアを更新モジュール131、132、133へ送信するときに使用する暗号鍵を生成する。
暗号処理部704は、暗号鍵生成部703が生成した暗号鍵を用いて、更新用ソフトウェアを暗号化する。また、暗号処理部704は、各更新モジュール固有の鍵を用いて、暗号鍵を暗号化する。
暗号鍵および更新用ソフトウェアは、更新モジュール131、132、133へ一度にすべてが送信されるのではなく、更新処理の中で、それぞれのデータが必要になったタイミングで、それぞれ各更新モジュールへ送信される。
認証部705は、更新モジュール131、132、133、および保護制御モジュール120と相互認証を行う。
更新モジュール選択部706は、保護制御モジュール120を更新する場合に、更新処理に使用する更新モジュールを選択する。暗号処理部704は、更新用の保護制御モジュールの暗号化に使用した暗号鍵を、更新モジュール選択部706が選択した更新モジュール固有の鍵を用いて暗号化する。そして、送信部702は、更新モジュール選択部706が選択した更新モジュールへ、暗号鍵および更新用の保護制御モジュールを送付する。
制御部707は、更新用ソフトウェア配布部220の各構成要素を制御する。
証明書生成部708は、更新モジュール131、132、133の認証公開鍵に対して署名秘密鍵を用いて認証証明書を生成する。また、証明書生成部708は、更新用の保護制御モジュールに対して署名秘密鍵を用いて、機器100にて、保護制御モジュールが正しく更新されたか否かを検証するための更新検証証明書を生成する。
署名秘密鍵保持部709は、証明書生成部708が証明書を生成するときに用いる署名秘密鍵を保持する。
更新用ソフトウェア保持部710は、保護制御モジュール120が攻撃された場合に更新するための更新用の保護制御モジュールを保持する。
暗号鍵保持部711は、暗号鍵生成部703が生成した暗号鍵および暗号処理部704により暗号化された暗号鍵を保持する。
(d)モジュール無効化部230
図9は、モジュール無効化部230の機能的な構成を示す機能ブロック図である。
同図に示すように、モジュール無効化部230は、受信部801、送信部802、アクセス情報取得鍵保持部803、および更新モジュール選択部804から構成される。
受信部801は、判断部210から改ざんされた不正な更新モジュールを無効化する指示を受信する。また、受信部801は、更新モジュール131、132、133からアクセス情報取得鍵の取得依頼を受信する。
送信部802は、アクセス情報取得鍵の取得依頼に応じて、アクセス情報取得鍵を依頼元の更新モジュールへ送信する。
アクセス情報取得鍵保持部803は、アクセス制御モジュール140が保持するアクセス情報を復号するための鍵であるアクセス情報取得鍵を保持する。
更新モジュール選択部804は、改ざんされた不正な更新モジュールの無効化処理を行う更新モジュールを選択し、選択した更新モジュールに、不正な更新モジュールの無効化を指示する。
なお、モジュール選択部804が選択した更新モジュールからアクセス情報取得鍵の取得依頼があった場合には、送信部802は、アクセス情報取得鍵に、消去対象となる更新モジュールの識別子を付して、前記更新モジュールへ送信する。
1.2 ソフトウェア更新システム10の動作
続いて、ソフトウェア更新システム10の動作を説明する。
(1)全体動作
図10は、ソフトウェア更新システム10全体の処理の流れを示したフローチャートである。
ソフトウェア更新システム10は、先ず、初期設定処理を行う(S100)。
初期設定処理とは、保護制御モジュール120を更新するために必要となる各種の鍵データや、ソフトウェア更新後に必要となるデータ(秘密分散法を用いて分散した分散情報)などを更新モジュール131、132、133のそれぞれに埋め込む処理である。なお、初期設定処理は、機器100が工場で製造される際に行われる。その後、機器100は、工場から出荷され、ユーザの利用に供される。
ユーザにより機器100が利用される際には、機器100内部では、保護制御モジュール120がアプリ110、111を攻撃者による攻撃から保護する。
これと同時に、更新モジュール131、132、133は、保護制御モジュール120の改ざん検出処理を実行し、保護制御モジュール120が攻撃されているか否かをチェックする検知処理を行う(S200)。
次に、ソフトウェア更新システム10は、ステップS200で保護制御モジュール120の改ざんが検出された場合に、保護制御モジュール120を解析し、更新する必要があるか否か判断する解析・判断処理を行う(S300)。
次に、ソフトウェア更新システム10は、更新モジュール131、132、133と更新用ソフトウェア配布部220とが互いに正しいソフトウェアであるか否かを確認するための相互認証処理を行う(S400)。
次に、ソフトウェア更新システム10は、回復処理を行う(S500)。
回復処理とは、更新モジュール群130に含まれる更新モジュール間で相互に改ざん検出処理を行った後、更新用の保護制御モジュールを機器100へインストールする。そして、機器100において、更新モジュール131、132、133へ埋め込まれた分散情報を用いて、保護制御モジュールを更新する処理である。
その後、ソフトウェア更新システム10は、次に保護制御モジュールの更新が必要となる場合に備えて、更新に必要な鍵データや分散情報を生成し、各更新モジュールに埋め込む次ラウンド準備処理を行う(S600)。その後、ソフトウェア更新システム10は、ステップS200の検知処理へ戻り、処理を続ける。
ここで、ソフトウェア更新システム10は、ステップS400の相互認証処理、および、ステップS400の回復処理において、更新モジュール131、132、133の改ざんが検出された場合には、改ざんされた不正な更新モジュールを消去する無効化処理を行う。
なお、本発明のソフトウェア更新システムは、上記のすべての処理は必須ではない。ソフトウェア更新システムは、外部から更新のトリガを与えられて、更新を行う処理(回復処理)があればよい。
(2)初期設定処理の動作
ここでは、図11から図13を用いて、ソフトウェア更新システム10の初期設定処理(図10のS100)の詳細について説明する。
図12は、初期設定処理のシーケンス図である。
ソフトウェア更新システム10は、機器100の工場製造時に、機器100の不揮発メモリへアプリ(110、111)、保護制御モジュール120、更新モジュール(131、132、133)などをインストールする(S1000)。
これらのソフトウェアには、ソフトウェアが改ざんされているか否かを検証するための改ざん検出用証明書が付加されている。この改ざん検出用証明書は、更新サーバ200の更新用ソフトウェア配布部220が保持する署名秘密鍵により署名が施されている。なお、S1000では、上記のソフトウェア以外にも、機器100の動作に必要なソフトウェアがインストールされる。
ここで、図11を用いて、初期設定処理の際に機器100に埋め込まれる鍵について説明する。図11は、機器100に埋め込まれる鍵を模式的に示す図である。ここでは、更新モジュール群130の内部に更新モジュール131のみ含まれている。実際には、更新モジュール132及び133も含まれるが、ここでは省略する。
図11に示すように、保護制御モジュール120には暗復号鍵が埋め込まれ、更新モジュール131、132、133には署名公開鍵、検証鍵及び認証鍵対が埋め込まれる(この時点では、まだ、更新モジュールに分散情報の組は埋め込まれてない)。更に、更新モジュール131、132、133には、それぞれの更新モジュールを識別するための更新モジュール識別子が埋め込まれ、その状態で機器100にインストールされる。
暗復号鍵は、アプリ110、111を暗号化及び復号するための鍵である。アプリ110、111は、暗復号鍵を用いて暗号化された状態で不揮発メモリへ記憶され、実行時に保護制御モジュール120により暗復号鍵を用いて復号された後、実行される。
機器100が、コンテキストを切り替えながら複数のアプリを実行する場合には、コンテキスト切り替えのタイミングで、暗復号鍵を用いて、アプリ110、111が使用しているデータの暗号化及び復号を行うことにより、アプリ110、111の実行時に、デバッガなどの解析ツールによって、データが抜き取られることを防止する。
更新モジュール131、132、133に埋め込まれる鍵のうち、署名公開鍵は、すべての更新モジュールに共通の鍵である。検証鍵と認証鍵対とは、それぞれの更新モジュールで異なる鍵である。 図12に戻り説明を続ける。S1000で各ソフトウェアをインストールした後、機器100は、初期設定を行うソフトウェア、および、正常に動作するかテストするためのソフトウェアなどを実行して、初期化する(S1001)。また、機器100は、保護制御モジュール120、および、更新モジュール131、132、133に対して、初期化指示を出力する。
保護制御モジュール120は、暗復号鍵から秘密分散法を用いて分散情報を生成する(S1002)。なお、保護制御モジュール120は、分散情報保持部308を備える更新モジュールの数と同数の分散情報を生成する。更新モジュール131、132、133がすべて分散情報保持部308を備えている場合、保護制御モジュール120は、3つの分散情報を生成する。
更に、保護制御モジュール120は、署名秘密鍵を用いて、暗復号鍵証明書を生成する(S1003)。暗復号鍵証明書は、暗復号鍵の復元時に、暗復号鍵が正しく復元できたか否かを確認するための証明書である。
保護制御モジュール120は、生成した分散情報と暗復号鍵証明書とを、更新モジュール131、132、133へ送信する(S1004)。
なお、保護制御モジュール120は、更新モジュール131、132、133が、それぞれ異なる分散情報の組を保持するように、各更新モジュールに分散情報の組を送信する。更に、保護制御モジュール120は、どの更新モジュールへどの分散情報を送信したかを示す配置情報を、各更新モジュールへ送信する。各更新モジュールに送信される配置情報は、同一の情報である。
暗復号鍵から秘密分散法を用いて分散情報を生成する方法や、分散情報を更新モジュールへ送信する方法については、特許文献2の47ページから49ページに詳しく説明されている。特許文献2における秘密鍵dを本実施の形態の暗復号鍵に対応させ、認証局装置を保護制御モジュール120に対応させ、分散情報保持装置を更新モジュール131、132、133に対応させることで、特許文献2と同じ方法を用いることができる。
保護制御モジュール120から分散情報、配置情報及び暗復号鍵証明書を受信した各更新モジュールは、更新モジュール初期化処理を行う(S1005)。
(3)更新モジュール初期化処理
図13は、更新モジュール初期化処理(図12のS1005)の動作を示すフローチャートである。
なお、ここでは、更新モジュール131についてのみ説明するが、更新モジュール132、および133の動作も基本的に同一である。
更新モジュール131は、保護制御モジュール120から分散情報、配置情報及び暗復号鍵証明書を受信し、受信した各情報を分散情報保持部308に保持する(S1006)。
更に、更新モジュール131は、改ざん検出対象である更新モジュール132、133及び保護制御モジュール120の改ざん検出用証明書の検証を行う(S1007)。この検証は、各モジュールからハッシュ値を生成し、生成したハッシュ値とそれぞれの改ざん検出用証明書に記述されているハッシュ値とを比較することにより行う。
生成したハッシュ値が、それぞれの改ざん検出用証明書に記述されているハッシュ値と一致すれば(S1008でY)、更新モジュール132、133、保護制御モジュール120のそれぞれに対してMAC値を生成する。そして、生成したMAC値を、MAC値テーブルとして保持する(S1009)。
少なくとも1のハッシュ値が、改ざん検出用証明書に記述されているハッシュ値と一致しなければ(S1008でN)、更新モジュール131は、エラーを出力して停止する(S1010)。
(4)検知処理の動作
続いて、図14のシーケンス図を用いて、ソフトウェア更新システム10の検知処理(図10のS200)の詳細について説明する。
機器100は、初期設定処理を終えると工場から出荷され、ユーザの元へ送られ、ユーザの元で機器100が使用される。
機器100でアプリ110、111が動作しているとき、機器100内部では、保護制御モジュール120が復号ロード機能、改ざん検出機能、解析ツール検出機能などの機能を制御し、アプリ110、111を攻撃者による攻撃から保護する。
検知処理においては、先ず、更新モジュール131、132、133が、保護制御モジュール120の改ざん検出を実施する。改ざん検出は、検証鍵を使用して保護制御モジュール120のMAC値を計算し、計算したMAC値とMAC値テーブルに保持されているMAC値とを比較することにより行う。
MAC値が一致すれば、保護制御モジュール120は改ざんされていないと判定し、MAC値が一致しなければ、保護制御モジュール120は改ざんされていると判定する。
なお、図14では記載を簡略化し、更新モジュール131のみが保護制御モジュール120の改ざん検出を行っているように記載されているが、当然ながら、更新モジュール132、133でも同様の処理が行われる。
その後の処理についても、更新モジュール131が保護制御モジュール120の改ざんを検出した場合を中心に記載しているが、更新モジュール132、133が保護制御モジュール120の改ざんを検出した場合も基本的には同様の処理が行われる。
保護制御モジュール120が改ざんされているか否か、即ち、MAC値が一致するか否かを判定し、保護制御モジュール120が改ざんされていると判定した場合(S2000でY)、更新モジュール131は、その旨を、更新サーバ200の判断部210及び他の更新モジュールへ通知する(S2001)。
保護制御モジュール120が改ざんされていないと判定した場合(S2000でN)、更新モジュール131は、判断部210や他の更新モジュールへ通知を行わず、改ざん検出処理へ戻る。
他の更新モジュールから保護制御モジュール120が改ざんされている旨の通知を受けた更新モジュールは、検証鍵及びMAC値を用いて、保護制御モジュール120の改ざん検出を実施する(S2002)。そして、改ざん検出結果を、判断部210及び他の更新モジュールへ通知する(S2003)。
判断部210は、更新モジュール131、132、133から改ざん検出結果を受信する。
なお、ステップS2000の検知処理時にも、更新モジュール群130が、相互に改ざん検出処理を行い、不正な更新モジュールを特定する相互監視処理を行ってもよい。そして、不正な更新モジュールが特定された場合には、特定された更新モジュールを無効化する無効化処理を行ってもよい。
相互監視処理および無効化処理の詳細については後述する。なお、相互監視処理では、本発明に係る実施の形態2で説明する方法を用いて、不正モジュール特定処理を行ってもよい。
(5)解析・判断処理の動作
続いて、図15のシーケンス図を用いて、解析判断処理(図10のS300)の詳細について説明する。なお、図15では、更新モジュール131、132、133のそれぞれが個別に行う処理を、更新モジュール群130が行う処理としてまとめて記載している。
図14のS2001およびS2003において、判断部210が各更新モジュールから保護制御モジュール120の改ざん検出結果を受信すると、判断部210は、受信した改ざん検出結果に基づいて、保護制御モジュール120が正常であるか不正であるか(改ざんされているか否か)を判定する。
判定方法の一例として、例えば、所定数の更新モジュールが改ざんを検出した場合には、保護制御モジュール120は不正である(改ざんされている)と判定し、また、所定数未満の更新モジュールが改ざんを検出した場合には、保護制御モジュール120は正常である(改ざんされていない)と判定する。前記所定数は、更新モジュール群130に含まれる更新モジュールの過半数としてもよい。
保護制御モジュール120が改ざんされていると判定した場合(S3000でY)、判断部210は、保護制御モジュール120を回復する必要があるか否かを判断するために、更新モジュール群130に対して、保護制御モジュール120のどの部分が改ざんされたかなどの改ざん情報の通知を依頼する(S3001)。
更新モジュール群130は、改ざん情報の通知を依頼されると、改ざん情報を収集して(S3002)、判断部210へ通知する(S3003)。
判断部210は、改ざん情報に基づいて、保護制御モジュール120を回復するか、機器100をリボークするか、または、何もしないかを判断する(S3004)。
保護制御モジュール120を回復する場合(S3004でY)、判断部210は、更新用の保護制御モジュールを準備し(S3006)、更新モジュール群130に、更新処理の開始を指示する(S3007)。また、機器100をリボークする場合には、アプリ110、111にサービスを提供しているサーバに対して、機器100をリボークするように依頼する(S3005)。何もしない場合(S3004でN)、検知処理へ戻る。
保護制御モジュール120が正当である(改ざんされていない)と判定した場合(S3000でN)は、検知処理へ戻る。
(6)相互認証処理の動作
次に、図16および図17のシーケンス図を用いて、ソフトウェア更新システム10による相互認証処理(図10のS400)の詳細について説明する。
更新サーバ200の判断部210が、解析・判断処理において、保護制御モジュール120を回復する必要があると判断した場合、判断部210は、更新用ソフトウェア配布部220へ、保護制御モジュール120の回復を指示する。
更新用ソフトウェア配布部220は、更新モジュール131、132、133へ更新処理の開始を指示した後、各更新モジュールとの間で、それぞれ1対1の相互認証処理を行う。これにより、機器100が不正なサーバと接続したり、更新サーバ200が不正な機器と接続することを防止する。なお、相互認証処理において、更新用ソフトウェア配布部220は、署名秘密鍵および署名公開鍵を使用し、各更新モジュールは、認証鍵対(認証秘密鍵及び認証公開鍵)を使用する。
図16は、更新モジュール131が更新用ソフトウェア配布部220を認証するときのシーケンス図である。なお、更新モジュール132、133も、図16の更新モジュール131と同様に動作し、更新用ソフトウェア配布部220を認証する。
更新モジュール131は、乱数生成器を用いて乱数(チャレンジデータ)を生成し(S4000)、生成したチャレンジデータを更新用ソフトウェア配布部220へ送信する(S4001)。この時、更新モジュール131を識別するための更新モジュール識別子を、チャレンジデータと共に送信する。 更新用ソフトウェア配布部220は、受信したチャレンジデータに署名秘密鍵を用いて署名データを生成し(S4002)、生成した署名データをレスポンスデータとして、更新モジュール131へ返信する(S4003)。
更新モジュール131は、更新用ソフトウェア配布部220からレスポンスデータを受信すると、署名公開鍵を用いて、レスポンスデータが、チャレンジデータの署名データと一致するか否か検証する(S4004)。
検証の結果、レスポンスデータが正しく、更新用ソフトウェア配布部220が正当なモジュールである場合(S4005でY)、更新モジュール131は、処理を継続する。レスポンスデータが正しくなく、更新用ソフトウェア配布部220が不正なモジュールである場合(S4005でN)、更新モジュール131は、エラーを出力し、処理を停止する(S4006)。
次に、更新用ソフトウェア配布部220が、更新モジュール131、132、133を認証する。
図17は、更新用ソフトウェア配布部220が各更新モジュールを認証するときのシーケンス図である。
更新用ソフトウェア配布部220は、チャレンジデータを送信してきた各更新モジュールに対して、乱数生成器を用いてそれぞれ異なる乱数(チャレンジデータ)を生成し(S4100)、生成したチャレンジデータを、各更新モジュールへ個別に送信する(S4101)。
各更新モジュールは、受信したチャレンジデータに認証秘密鍵を用いて署名データを生成し(S4102)、生成した署名データをレスポンスデータとして更新用ソフトウェア配布部220へ返信する。
このとき、各更新モジュールは、レスポンスデータと共に認証公開鍵と認証鍵証明書とを更新用ソフトウェア配布部220へ送信する。
更新用ソフトウェア配布部220は、それぞれの更新モジュールからレスポンスデータ、認証公開鍵及び認証鍵証明書を受信する(S4104)。更新用ソフトウェア配布部220は、認証鍵証明書が、自身が発行した証明書であるか否か検証し、更に、認証鍵証明書を用いて、認証公開鍵の正当性を検証する(S4105)。
認証鍵証明書及び認証公開鍵が不正であれば、更新用ソフトウェア配布部220は、処理を停止する(S4106)。
認証鍵証明書及び認証公開鍵が正当であれば、更新用ソフトウェア配布部220は、認証公開鍵を用いて、受信したレスポンスデータがチャレンジデータの署名データと一致するか否か検証する(S4107)。
次に、更新用ソフトウェア配布部220は、正しいレスポンスデータを返した更新モジュール(正当な更新モジュール)の数が、予め設定されている回復処理に必要な数以上であるかを判断する(S4108)。
正当な更新モジュールの数が、回復処理に必要な数に満たない場合、回復処理が実行できないため、更新用ソフトウェア配布部220は、処理を停止する(S4106)。正当な更新モジュールの数が、回復処理に必要な数を満たしている場合、相互認証処理を終了し、回復処理に移る。
また、更新用ソフトウェア配布部220は、相互認証処理において、正当性が確認されたすべての更新モジュールの更新モジュール識別子を記載した認証リストを作成する。そして、これ以降の回復処理では、認証リストに識別子が記載されている更新モジュールのみを利用する。
(7)回復処理の動作
続いて、図18〜23を用いて、回復処理(図10のS500)の詳細について説明する。回復処理は、上述した相互認証処理において、相互認証が成功した場合に、改ざんされた保護制御モジュール120を、新しい更新用の保護制御モジュールへ更新する処理である。
図18は、回復処理時の動作を示すフローチャートである。
先ず、各更新モジュール131、132、133が、相互監視処理を行う(S5000)。相互監視処理では、各更新モジュールが、他の更新モジュールの改ざん検出処理を実行する。
さらに、更新用保護制御モジュールを用いて、保護制御モジュール120を更新する更新処理を行う(S5100)。
そして、暗号化されたアプリ110、111を再暗号化する再暗号化処理を行う(S5200)。
なお、本発明のソフトウェア更新システムは、上記のすべての処理は必須ではない。ソフトウェア更新システムは、外部から更新のトリガを与えられて、新しい保護制御モジュールを用いて、改ざんされた保護制御モジュール120を更新する更新処理(S5000)、及び、更新モジュールが相互に改ざん検出を実施する回復時相互監視処理(S5100)があればよい。
(8)相互監視処理
ここでは、図19のシーケンス図を用いて、相互監視処理(図18のS5000)の詳細について説明する。
相互監視処理では、更新モジュール131、132、133が、更新モジュール群130内の他の更新モジュールに対して改ざん検出処理を実行する。相互監視処理において、どの更新モジュールに対して改ざん検出処理を実行するかは、更新モジュールが保持する監視パターンに記述されている。監視パターンには、改ざん検出対象であるモジュールに関する情報(モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等)が記述されている。
先ず、更新モジュール131は、更新モジュール132の改ざん検出処理を行い、(S5001a)、更新モジュール132は、更新モジュール133の改ざん検出処理を行い(S5001b)、更新モジュール133は、更新モジュール131の改ざん検出処理を行う(S5001c)。
各更新モジュールは、各更新モジュール131、132、133のMAC値を、検証鍵を用いて算出し、MAC値テーブルに保持されている、初期設定時に算出されたMAC値と比較することにより改ざん検出処理を行う。
また、各更新モジュールは、更新モジュール131、132、133のハッシュ値を算出し、算出したハッシュ値と、各更新モジュールに予め付加されている証明書に記述されているハッシュ値とを比較することにより改ざん検出処理を行ってもよい。
各更新モジュールは、改ざん検出結果を判断部210へ通知する(S5002)。
判断部210は、各更新モジュールから改ざん検出結果を受信し(S5003)、改ざんされた更新モジュールがあるか否かを判定する(S5004)。
改ざんされた更新モジュールがあると判定した場合には(S5004でY)、判断部210は、直ちに回復処理を停止する(S5005)。
改ざんされた更新モジュールがないと判定した場合には(S5004でN)、処理を継続する。
(9)更新処理
続いて、図20および図21のシーケンス図を用いて、更新処理(図18のS5100)の詳細について説明する。
先ず、更新用ソフトウェア配布部220の証明書生成部708は、署名秘密鍵を用いて、更新検証証明書を生成する(S5101)。更新検証証明書は、新しい保護制御モジュールが正しくインストールできたか否か、各更新モジュール131、132、133が確認するための証明書である。更新用ソフトウェア配布部220は、生成した証明書を、各更新モジュールへ送信する(S5102)。
次に、更新用ソフトウェア配布部220の暗号鍵生成部703は、新しい保護制御モジュールを多重に暗号化するための暗号鍵を2つ(第1の鍵及び第2の鍵)生成する(S5103)。暗号処理部704は、第2の鍵を用いて新しい保護制御モジュールを暗号化し、暗号化新保護制御モジュールを生成する(S5104)。暗号処理部704は、暗号化新保護制御モジュールに対して、第1の鍵を用いてさらに暗号化し、多重暗号化新保護制御モジュールを生成する(S5105)。
更新用ソフトウェア配布部220は、更新モジュール群130から正当な更新モジュールを一つ選択し(S5106)、選択した更新モジュールの識別子を判断部210に通知する。S5106では、判断部210内の不正モジュール特定部604に記憶されている不正な更新モジュール以外の更新モジュールを選択する。ここでは、一例として、更新モジュール131を選択するものとする。
更新用ソフトウェア配布部220は、選択した更新モジュール131へ多重暗号化新保護制御モジュールを送信し(S5107)、更に、第1の鍵を送信する(S5108)。
更新モジュール131は、多重暗号化新保護制御モジュールと第1の鍵とを受信する。更新モジュール131は、第1の鍵を用いて、多重暗号化新保護制御モジュールを復号し、暗号化新保護制御モジュールを取得する(S5109)。そして、復号が終了すると、その旨を更新用ソフトウェア配布部220へ通知する(S5110)。
更新用ソフトウェア配布部220は、復号終了通知を受信すると、更新モジュール群130から、正当なモジュールであって、且つ、S5106で選択した更新モジュールとは異なる更新モジュールを一つ選択する(S5112)。ここでは、一例として、更新モジュール132を選択するものとする。
更新モジュールの選択は、上記と同様に判断部210内の不正モジュール特定部604に記憶されている不正な更新モジュール以外の更新モジュールを選択する。
更新用ソフトウェア配布部220は、選択した更新モジュール132に、第2の鍵を送信する(S5113)。さらに、更新用ソフトウェア配布部220は、更新モジュール131に対して、S5109で取得した暗号化新保護制御モジュールを更新モジュール132へ送信するよう依頼する(S5114)。
更新モジュール131は、更新用ソフトウェア配布部220からの依頼を受けて、暗号化新保護制御モジュールを更新モジュール132へ送信する(S5115)。
更新モジュール132は、更新用ソフトウェア配布部220から第2の鍵を受信し、更新モジュール131から暗号化新保護制御モジュールを受信する。そして、第2の鍵を用いて、暗号化新保護制御モジュールを復号し、新しい保護制御モジュールを取得する(S5117)。
更新モジュール132は、S5117で取得した新しい保護制御モジュールを保護制御モジュール120に上書きし、更新する(S5118)。そして、更新モジュール132は、更新の終了を他の更新モジュールへ通知する(S5119)。 続いて、各更新モジュール131、132、133のそれぞれは、事前に受信した更新検証証明書を用いて、保護制御モジュールが正しく更新されたか否か検証し(S5120)、検証結果を更新用ソフトウェア配布部220へ通知する(S5121)。
更新用ソフトウェア配布部220は、各更新モジュールから送信された検証結果通知を受信すると、保護制御モジュールが正しく更新されたかを判定する(S5122)。正しく更新されていないと判定する場合(S5121でN)、更新用ソフトウェア配布部220は、機器100を停止させる(S5123)。
正しく更新されている場合(S5121でY)、更新用ソフトウェア配布部220は、更新処理終了を各更新モジュールへ通知する(S5124)。
各更新モジュールは、更新処理終了通知を受信すると、新しい保護制御モジュールのMAC値を生成し、生成したMAC値と保護制御モジュールの識別子との組を、MAC値テーブルに書き込む(S5125)。
以上説明したように、更新処理では、更新用ソフトウェア配布部220が更新用の新保護制御モジュールを複数の鍵を用いて多重に暗号化し、更新モジュール群130へ送信する。更新モジュール群130は、受信した新保護制御モジュールで、保護制御モジュール120を更新する。
この時、更新用ソフトウェア配布部220は、多重に暗号化された新保護制御モジュールを復号するための複数の鍵を、更新モジュール群130に送信するタイミングを制御することにより、攻撃者が暗号化されていない新保護制御モジュールを入手することを困難にする。
(10)相互監視処理と更新処理との関係
上述した相互監視処理と更新処理とは、互いに連携しながら実行される。
相互監視処理は、更新用ソフトウェア配布部220から、更新モジュール群130に含まれる更新モジュールを送信先として、複数の鍵が送られる時と、暗号化された更新用保護制御モジュールの更新モジュール群130に含まれる更新モジュールでの復号処理中に定期的に実施される。定期的に実施する際の時間間隔は、例えば、更新用保護制御モジュールが通信路を通して完全に外部に出力されるまでの時間より短い間隔である。完全に外部に出力されるまでに1秒かかるのであれば、例えば、それより短い500ミリ秒間隔のタイミングで監視処理を実行する。
ここでは、図22を用いて、相互監視処理と更新処理との連携動作について説明する。
先ず、機器100は、更新サーバ200から多重暗号化新保護制御モジュールが送付される前に、相互監視処理(相互監視1)を実施する。不正な更新モジュールを選択して、更新処理を行わないようにするためである。
その後、機器100は、更新サーバ200により送信された第1の鍵を更新モジュール131が受信する前に、相互監視処理(相互監視2)を実施し、機器100が第1の鍵を受信する時に、不正な更新モジュールを選択していないことを確認する。
さらに、更新モジュール131が第1の鍵を受信し、第1の鍵を用いて多重暗号化新保護制御モジュールを復号する間、定期的に、更新モジュール131による復号処理を中断して、相互監視処理(相互監視3−1、3−2)を実施する。これにより、復号処理中に、更新モジュール131、132、133が攻撃されたとしても、暗号化新保護制御モジュールがすべて漏洩する前に更新モジュールが攻撃されたことを検出し、漏洩を防止することが可能となる。
これ以降の処理は、上記と同様である。即ち、機器100は、更新サーバ200により送信された第2の鍵を更新モジュール132が受信する前に、監視処理(相互監視4)を実施し、機器100が鍵を受信する時に、不正な更新モジュールを更新処理において、選択していないことを確認する。
さらに、更新モジュール132が第2の鍵を受信し、第2の鍵を用いて暗号化新保護制御モジュールを復号する間、定期的に、更新モジュール132による復号処理を中断し、相互監視処理(相互監視5−1、5−2)を実施する。最後に、相互監視処理(相互監視6)を実施する。
これにより、新保護制御モジュールがすべて漏洩する前に更新モジュールが攻撃されたことを検出し、漏洩を防止することが可能となる。
ここで、相互監視処理において、更新モジュールに改ざんが検出されたた場合には、回復処理を停止する。これにより、更新サーバ200は、第1の鍵や第2の鍵の送信を中止することが可能となり、攻撃者は、多重暗号化新保護制御モジュールを復号するための鍵を入手することが不可能となる。
(11)再暗号化処理
続いて、図23のシーケンス図を用いて、再暗号化処理(図18のS5200)の詳細について説明する。
先ず、更新された保護制御モジュール(図23および図24の説明においては、更新前の保護制御モジュール120と区別するために、「保護制御モジュール121」という。)が、各更新モジュール131、132、133に対して、それぞれが保持している分散情報及び暗復号鍵証明書の送信を依頼する(S5201)。
各更新モジュール131、132、133は、保護制御モジュール121からの依頼を受けて、分散情報及び暗復号鍵証明書を送信する(S5202)。
保護制御モジュール121は、各更新モジュール131、132、133から分散情報及び暗復号鍵証明書を受信し(S5203)、受信した分散情報から更新前の保護制御モジュール120が使用していた暗復号鍵(ここでは、「旧暗復号鍵」という。)を復元する(S5204)。更に、保護制御モジュール121は、暗復号鍵証明書を用いて、旧暗復号鍵が正しく復元されたか否か検証する(S5205)。
旧暗復号鍵が正しく復元されなかった場合(S5205でN)、保護制御モジュール121は、不正な更新モジュールを炙り出す(どの更新モジュールが不正な分散情報を送信したか特定する)(S5206)。特定された不正な更新モジュールは、更新サーバ200へ通知される。
旧暗復号鍵が正しく復元された場合(S5205でY)、保護制御モジュール121の暗復号鍵生成部408は、新しい暗復号鍵(ここでは、「新暗復号鍵」という。)を生成する(S5207)。そして、復号ロード部404は、旧暗復号鍵を用いて暗号化されたアプリ(110、111)を復号し、新暗復号鍵を用いてアプリ(110、111)を再暗号化する(S5208)。
ここで、S5206において、不正な更新モジュールを特定するための方法について説明する。先ず、保護制御モジュール121は、各更新モジュールから分散情報の組を集め、集めた分散情報に各更新モジュールを識別するための識別情報を付加する。
その後、初期設計時に同じ値に設定されて配布された分散情報同士をグループにまとめる。そして、各グループに含まれる分散情報同士の値を比較し、同じ値になる分散情報同士を更に1つのサブグループにまとめる。そして、すべてのグループの中からサブグループを1つずつ選び出す組み合わせを全て生成する。
生成した組み合わせそれぞれに対して旧暗復号鍵を生成し、正しい旧暗復号鍵が生成できたかを検証する。検証OKの場合、その組み合わせに含まれるサブグループに、検証OKを表す検証通過識別情報を付加する。
すべての組み合わせについて、旧暗復号鍵の生成・検証を行った後、検証通過識別情報の付いているサブグループに含まれる分散情報を取り除く。
取り除かれずに残っている分散情報は、不正な値となっている。そこで、この分散情報に付加された識別情報により、不正な値となっている分散情報を送信してきた更新モジュールを特定することができる。識別情報により特定された更新モジュールが不正な更新モジュールであると特定される。
分散情報から旧暗復号鍵を復元する方法や不正な更新モジュールの特定方法については、特許文献2の50ページから52ページに詳しく説明されている。特許文献2における秘密鍵dを本実施形態の暗復号鍵に対応させ、認証局装置を本実施形態の保護制御モジュール121に対応させ、分散情報保持装置を更新モジュール131、132、133に対応させることで、特許文献2と同じ方法が利用可能である。
また、S5206において、不正な更新モジュールを特定するための方法として、後述する実施の形態2で詳細に説明する不正モジュール特定方法を用いてもよい。
(12)次ラウンド準備処理の動作
続いて、図24のシーケンス図を用いて、次ラウンド準備処理(図10のS600)の詳細について説明する。次ラウンド準備処理では、回復処理の終了後、次の回復処理のための準備を行う。以下、具体的に説明する。
まず、保護制御モジュール121は、新暗復号鍵から、秘密分散法を用いて分散情報を生成し(S6000)、更に、署名秘密鍵を用いて、新暗復号鍵証明書を生成する(S6001)。そして、保護制御モジュール121は、生成した分散情報と暗復号鍵証明書とを各更新モジュール131、132、133へ送信する(S6002)。
ここで、初期設計処理時と同様に、分散情報は、更新モジュールの数と同数が生成され、それぞれの更新モジュールが、異なる分散情報のペアを保持するように送信される。新暗復号鍵証明書は、各更新モジュール131、132、133へ同じ証明書が送信される。
各更新モジュール131、132、133は、保護制御モジュール121から分散情報と新暗復号鍵証明書とを受信し、受信した分散情報と新暗復号鍵証明書とを分散情報保持部308に保持する(S6003)。
(13)無効化処理の動作
続いて、図25のシーケンス図を用いて、無効化処理の詳細について説明する。
無効化処理は、相互認証時に認証に失敗した更新モジュールが存在する場合、回復処理内の監視処理において改ざんされた更新モジュールを検出した場合、回復処理内の再暗号化処理において不正な更新モジュールを炙り出した場合など、機器100内部に存在する不正な(改ざんされた)モジュールを無効化する処理である。
ここでは、更新モジュール133が改ざんされ、それを更新モジュール131および132が検出した場合の処理を例に、無効化処理の動作の詳細を説明する。
判断部210は、更新モジュール131、132、133から受信した、相互監視結果を基に、どの更新モジュールが改ざんされているかを判定する(S7001)。判定方法としては、例えば、過半数の更新モジュールが「改ざんされている」と判断した更新モジュールを不正な更新モジュールであると判定する。
判断部210は、改ざんされた更新モジュールの識別情報と共に、モジュール無効化部230へ無効化の指示を出力する(S7002)。
モジュール無効化部230は、改ざんされていないと判定した更新モジュール131及び132のいずれか(ここでは、更新モジュール131とする。)へ、改ざんされた更新モジュール133の無効化を依頼する(S7003)。
更新モジュール131は、モジュール無効化部230から、更新モジュール133の無効化依頼を受信すると、モジュール無効化部230に対し、更新モジュール133を無効化するためのアクセス情報取得鍵の送付を依頼する(S7004)。更に、更新モジュール131は、アクセス制御モジュール140へ、更新モジュール133を無効化するためのアクセス情報の取得を依頼する(S7005)。
モジュール無効化部230は、アクセス情報取得鍵の送付依頼を受信すると、更新モジュール131が正当な(改ざんされていない)更新モジュールか否か、及び、依頼されたアクセス情報取得鍵が不正な(改ざんされた)更新モジュール133を無効化するためのアクセス情報取得鍵か否かを確認する(S7006)。この確認は、判断部210からモジュール無効化部230へ通知された更新モジュールの情報を利用して行なう。
確認した結果、改ざんされた更新モジュール133からの依頼であったり、或いは、改ざんされていない更新モジュール131、132に対するアクセス情報取得鍵の取得依頼であったりする場合には(S7006でN)、無効化処理を停止する。
確認した結果、問題なければ(S7006でY)、依頼してきた更新モジュール131へ更新モジュール133を無効化するためのアクセス情報取得鍵を送付する(S7008)。
更新モジュール131は、モジュール無効化部230からアクセス情報取得鍵を受信し、さらに、アクセス制御モジュール140から暗号化されたアクセス情報を受信する(S7009)。更新モジュール131は、アクセス情報取得鍵と暗号化されたアクセス情報とから、アクセス情報を取得する(S7010)。取得したアクセス情報は、更新モジュール133を消去するための専用ドライバである。更新モジュール131は、専用ドライバを利用して、改ざんされた不正な更新モジュール133を消去する(S7011)。
更新モジュール131は、無効化処理が終了すると、アクセス情報取得鍵、暗号化されたアクセス情報、及び、アクセス情報等を消去し、モジュール無効化部230へ完了通知を送信する(S7012)。モジュール無効化部230は、更新モジュール131から完了通知を受信したら、判断部210へ無効化の完了通知を送信する(S7013)。
ここで、ステップS7003では、更新モジュール131に対して、改ざんされた更新モジュール133の無効化処理を依頼しているが、正当な更新モジュールを1つ選択する方法としては、本発明に係る不正モジュール特定処理の結果を用いて、正当なモジュールを1つ選択するとしてもよい。
なお、無効化処理により、分散情報保持部308を備える更新モジュールが無効化された場合、その更新モジュールが保持していた分散情報も消去される。そこで、分散情報保持部308を備える更新モジュールを無効化する場合は、分散情報の消去を考慮した無効化処理を行う必要がある。
分散情報の消去を考慮した無効化処理については、特許文献2の56ページから64ページに、「脱退処理」として詳しく説明されている。特許文献2における秘密鍵dを、本実施形態の暗復号鍵に対応させ、分散情報保持装置を、本実施形態の更新モジュール131、132、133に対応させることで、特許文献2と同じ方法が利用可能である。なお、分散情報の消去を考慮した無効化処理を行いには、無効化する不正な更新モジュール以外に、正当な更新モジュールが最低3つ必要である。無効化処理に保護制御モジュール120を使用する場合は、初期設計時と同じ方法で再度分散情報を生成し、配布すればよい。
以上説明したように、更新モジュール群130内の複数の更新モジュールが相互監視処理を行うので、改ざんされた更新モジュールを検出することが可能となり、ソフトウェア更新システムの信頼性を高めることができる。また、改ざんされた更新モジュールを無効化するので、改ざんされた更新モジュールによる不正動作を防止することができる。
2.実施の形態2
ここでは、本発明に係る不正モジュール無効化システムの実施の形態2について、図面を参照しながら説明する。
上記の実施の形態1では、改ざんされている不正な更新モジュールを特定する方法として、例えば、過半数など一定数の更新モジュールが「改ざんされている」と判定した場合、当該判定された更新モジュールを不正な更新モジュールと判断した。
しかし、更新モジュールが改ざんされている場合には、実際には改ざんされていないモジュールを「改ざんされている」と誤判断したり、実際には改ざんされているモジュールを「改ざんされていない」と誤判断する可能性がある。
そうすると、無効化すべき更新モジュールを無効化できない場合や、無効化すべきでないモジュールを無効化してしまう事態が想定される。なお、非特許文献3には、モジュールの相互監視により故障診断をするため技術が記載されている。しかし、この技術では、システム内の故障数を制限しているため、実施の形態1の場合と同様に誤判断をする可能性がある。
そこで、実施の形態2では、改ざん検出結果の矛盾から不正な更新モジュールを特定する。
2.1 ソフトウェア更新システム10aの構成
実施の形態2に係るソフトウェア更新システム10aの構成について、図79を用いて説明する。
同図に示すように、ソフトウェア更新システム10aは、情報処理装置100aと不正モジュール特定装置200aとが、ネットワークを介して接続されて構成される。
情報処理装置100aは、モジュール131、モジュール132、モジュール133を含む。これらのモジュールは、相互に改ざん検出処理を行い、改ざん検出結果を、ネットワークを介して不正モジュール特定装置200aへ送信する。なお、情報処理装置100aは、さらに多くのモジュールを含むように構成してもよい。
不正モジュール特定装置200aは、受信手段2310、判断手段210a、および無効化手段2320から構成される。
受信手段2310は、情報処理装置100aのモジュール131、132、133から、改ざん検出結果を受信する。
判断手段210aは、前記複数のモジュールのうちの一つを正常モジュールと仮定し、前記仮定に基づいて、受信した複数の改ざん検出結果における矛盾の有無を判断し、矛盾が有る場合に、正常モジュールと仮定した前記モジュールを不正モジュールと特定する。
判断手段210aは、図79に示すように、仮正常モジュール群記憶手段2330、仮定手段2340、仮正常モジュール群生成手段2350、矛盾検出手段2360、および特定手段2370から構成される。
仮正常モジュール群記憶手段2330は、正常モジュールと仮定したモジュールの識別情報を記憶する。
仮定手段2340は、モジュール131、132、133から一つを選択し、正常モジュールと仮定し、識別情報を仮正常モジュール群記憶手段2330に記録する。
仮正常モジュール群生成手段2350は、仮定手段2340により正常モジュールと仮定された前記モジュールを起点として、改ざん検出処理の結果、改ざんが検出されないモジュールを正常モジュールと仮定し、識別情報を仮正常モジュール群記憶手段2330に記録する手順を繰り返す。
矛盾検出手段2360は、仮正常モジュール群記憶手段2330に記憶されている識別情報に対応するモジュールによる改ざん検出結果に矛盾があるか否か判断する。
特定手段2370は、矛盾検出手段2360により矛盾が検出された場合に、仮定手段2340において正常モジュールと仮定した前記モジュールを不正モジュールと特定する。
無効化手段2320は、特定された不正モジュールの無効化指示を出力する。
2.2 ソフトウェア更新システム10bの構成
ここでは、本発明に係る実施の形態2について、より具体的に説明する。
(1)全体構成
図80は、実施の形態2をより具体的に説明するための実施例であるソフトウェア更新システム10bの構成を示すブロック図である。
同図に示すように、ソフトウェア更新システム10bは、本発明に係る情報処理装置としての機器100bと、本発明に係る不正モジュール特定装置としての更新サーバ200bとから構成される。そして、機器100bおよび更新サーバ200bは、ネットワークを介して接続されている。
機器100bは、アプリ110、アプリ111、保護制御モジュール120、更新モジュール群130b、およびアクセス制御モジュール140から構成される。
更新サーバ200bは、判断部210b、更新用ソフトウェア配布部220、モジュール無効化部230、および通信部240から構成される。
図80において、実施の形態1と同様の機能を有する構成要素には、図1と同一の符号を付し、詳細な説明を省略する。以下では、実施の形態2の特徴的な構成要素および処理について詳細に説明する。
(2)更新モジュール群130bの構成
図26は、実施の形態2の更新モジュール群130bの構成を示す図である。
同図に示すように、実施の形態2の更新モジュール群130bは、更新モジュール131、132、133、134、135、136、および137の7つの更新モジュールが含まれ。各更新モジュールの構成は、実施の形態1と同様である(図2参照)。
(3)判断部210bの構成
図27は、実施の形態2に係る判断部210bの構成を機能的に示す機能ブロック図である。
同図に示すように、判断部210bは、受信部601、送信部602、指示生成部603、モジュール特定部604b、および循環検出部606から構成される。そして、モジュール特定部604の内部に、不正モジュール特定部605を備える。
実施の形態1の判断部210との相違点は、モジュール特定部604の内部に、不正モジュール特定部605を備える点、および、循環検出部606を備える点である。
(a)不正モジュール特定部605の構成
ここでは、実施の形態2の特徴的な構成要素である不正モジュール特定部605の詳細な構成について説明する。
図28は、不正モジュール特定部605の機能的な構成を示す機能ブロック図である。同図に示すように、不正モジュール特定部605は、特定指示受信部651、特定結果送信部652、正常モジュール仮定部653、検証結果判定部654、仮正常更新モジュール群抽出部655、矛盾検出部656、および循環監視パターン取得部657から構成される。
特定指示受信部651は、指示生成部603から、不正な更新モジュールの特定の指示と更新モジュール群130bの相互監視結果(改ざん検出結果)とを受け付けると、特定指示受信部561は、正常モジュール仮定部653に前記指示を出力する。
特定結果送信部652は、矛盾検出部656から不正な更新モジュールの特定結果を受け付けると、特定結果を、指示生成部603に出力する。
正常モジュール仮定部653は、特定指示受信部651から指示を受け付けると、更新モジュール群130内の更新モジュールを一つ選択し、選択した更新モジュールを正常な更新モジュールと仮定する。そして、選択した更新モジュールを、仮正常更新モジュール群とする。
仮正常更新モジュール群は、正常モジュール仮定部653により、正常なモジュールと仮定された更新モジュールで構成される概念上のグループである。具体的には、正常モジュール仮定部653は、正常であると仮定したすべての更新モジュールの識別情報を含む仮正常更新モジュール群構成情報を生成する。
正常モジュール仮定部653は、選択した更新モジュールの識別番号を矛盾検出部656へ出力する。また、仮正常更新モジュール群構成情報を検証結果判定部654へ出力する。
正常モジュール仮定部653は、循環監視パターン取得の指示を循環監視パターン取得部657へ出力する。循環監視パターン取得部657から特定結果を受け付けると、正常モジュール仮定部653は、循環監視パターン内の更新モジュール以外の更新モジュールを正常な更新モジュールと仮定する。なお、循環監視パターンの詳細については後述する。
矛盾検出部656から矛盾がない旨の通知を受け付けると、正常モジュール仮定部653は、選択した更新モジュールとは別の更新モジュールを正常な更新モジュールと仮定し、仮正常更新モジュール群に含める。そして、仮正常更新モジュール群構成情報を更新する。正常モジュール仮定部653は、更新した仮正常更新モジュール群構成情報を、検証結果判定部654へ出力する。
検証結果判定部654は、正常モジュール仮定部653から仮正常更新モジュール群構成情報を受け付けると、仮正常更新モジュール群内の更新モジュールによる他の更新モジュールに対する改ざん検出結果を判定する。
検証結果判定部654は、仮正常更新モジュール群内の更新モジュールによる他の更新モジュールに対する改ざん検出結果が正常の場合、検証された更新モジュールは正常な更新モジュールであるとみなす。つまり、正常な更新モジュールが「正常である」と判断した更新モジュールは、正常な更新モジュールとみなすことができる。
そして、検証結果判定部654は、正常とみなした更新モジュールの識別情報と、正常モジュール仮定部653から受け付けた仮正常更新モジュール群構成情報とを、仮正常更新モジュール群抽出部655へ出力する。
正常とみなすことができる更新モジュールが存在しない場合、検証結果判定部654は、その旨を仮正常更新モジュール群抽出部655へ出力する。
また、検証結果判定部654は、仮正常更新モジュール群抽出部655から仮正常更新モジュール群構成情報を受信した場合も、同様の処理を行う。
仮正常更新モジュール群抽出部655は、正常とみなすことができる更新モジュールの識別番号と仮正常更新モジュール群構成情報を受け取る。そして、受け取った識別番号を、受け取った仮正常更新モジュール群構成情報へ追加して、構成情報を更新する。仮正常更新モジュール群抽出部655は、更新した仮正常更新モジュール群構成情報を、検証結果判定部654へ出力する。
検証結果判定部654から正常とみなすことができる更新モジュールが存在しない旨の通知を受け付けると、仮正常更新モジュール群抽出部655は、矛盾検出部656へ仮正常更新モジュール群構成情報を出力する。
矛盾検出部656は、仮正常更新モジュール群抽出部655から仮正常更新モジュール群構成情報を受け取ると、矛盾検出処理を行う。詳細については後述する。
矛盾が検出された場合、正常モジュール仮定部653において、正常であると仮定した更新モジュールは不正な更新モジュールであると特定することができる。そこで、矛盾検出部656は、不正な更新モジュールが特定された旨を特定結果送信部652へ通知する。矛盾が検出されない場合、矛盾検出部656は、正常モジュール仮定部653へ矛盾がない旨を通知する。
また、矛盾検出部656は、循環監視パターン取得部657から循環監視パターンを受け付けた場合、循環監視パターン内の更新モジュールが、循環監視パターン内の他の更新モジュールに対して改ざん検出処理を行った結果、不正と判定された更新モジュールが存在するか判断する。不正な更新モジュールが存在する場合、循環監視パターンに含まれるすべての更新モジュールは、不正モジュールであると特定する。
さらに、矛盾検出部656は、循環監視パターン内の更新モジュールが改ざん検出処理を行った循環監視パターン外の同一更新モジュールの検出結果に矛盾があるか否かを検証する。矛盾がある場合、循環監視パターンに含まれるすべての更新モジュールは不正モジュールであると特定する。
そして、循環監視パターンに含まれるすべての更新モジュールが不正モジュールであると特定されたら、矛盾検出部656は、その旨を特定結果送信部652および正常モジュール仮定部653へ出力する。
循環監視パターン取得部657は、正常モジュール仮定部653から取得指示を受け付けると、循環検出部606へ循環監視パターンの取得指示を出力する。また、循環検出部606から循環監視パターンを受け付けると、矛盾検出部656へ、循環監視パターンを出力する。
(b)循環検出部606の構成
ここでは、実施の形態2の特徴的な構成要素である循環検出部606の詳細な構成について説明する。
図29は、循環検出部606の機能的な構成を示す機能ブロック図である。同図に示すように、循環検出部606は、取得指示受信部661、循環監視パターン送信部662、循環監視パターン取得部663、取得済み循環監視パターン記憶部664、監視パターン記憶部665、および循環監視パターン記憶部666から構成される。
取得指示受信部661は、不正モジュール特定部605から循環監視パターンの取得指示を受け付けると、循環監視パターン取得部663へ指示を出力する。
循環監視パターン送信部662は、循環監視パターン取得部663から、循環監視パターンを取得すると、取得した循環監視パターンを、不正モジュール特定部605へ出力する。
循環監視パターン取得部663は、循環監視パターン記憶部666から循環監視パターンを読み出し、読み出した循環監視パターンに含まれる一群の更新モジュールが一方向に循環して行う改ざん検出処理の結果がすべて正常であるか判断する。すべて正常である場合、循環監視パターン取得部663は、循環監視パターン記憶部666から読み出した当該循環監視パターンを、循環監視パターン送信部662へ出力する。また、当該循環監視パターンを、取得済み循環監視パターン記憶部664へ出力する。
取得済み循環監視パターン記憶部664は、循環監視パターン取得部663から取得した循環監視パターンを記憶する。
監視パターン記憶部665は、更新モジュール群130bに含まれる更新モジュール間の監視パターンを記憶している。監視パターンとは、更新モジュール群130bに含まれる更新モジュール131〜137が相互に改ざん検出処理を行うときの、監視対象(検証対象)のモジュールに関する情報を記述したものである。具体的には、監視パターンには、モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等が記述されている。
図30に示す具体例を用いて説明する。図30では、監視パターンの説明を容易にするため、監視パターンを有向グラフで表している。矢印は、監視元(検証元)の更新モジュールから監視先(検証先)の更新モジュールへ向いている。
たとえば、矢印2000は、更新モジュール131から更新モジュール132へ向いていることから、更新モジュール131は、更新モジュール132の改ざん検証処理を行う。矢印2001は、更新モジュール131から更新モジュール134へ向いていることから、更新モジュール131は、さらに、更新モジュール134の改ざん検証処理を行う。矢印2003は、更新モジュール133から更新モジュール131へ向いていることから、更新モジュール133は、更新モジュール131の改ざん検出処理を行う。
循環監視パターン記憶部666は、監視パターン記憶部665に記憶されている監視パターンを取得し、全体の監視パターンから、一方向に循環して改ざん検出処理を行う一群の更新モジュールを検出し、循環監視パターンを生成する。そして、循環監視パターン記憶部666は、生成した循環監視パターンを記憶する。
循環監視パターンとは、一方向に循環して改ざん検出処理を行う複数の更新モジュールについて、監視対象(検証対象)のモジュールに関する情報を記述したものである。具体的には、循環監視パターンには、モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等が記述されている。
図30に示す具体例を用いて説明する。
一方向に循環して改ざん検出処理を行う一群の更新モジュールとは、例えば、更新モジュール131、更新モジュール132、および更新モジュール133である。図30の矢印が示すように、更新モジュール131が更新モジュール132を検証し、更新モジュール132が更新モジュール133を検証し、更新モジュール133が更新モジュール131を検証する関係を有している。
これらの更新モジュール131、132、および133の情報を記述したものが、循環監視パターンである。
また、図30では、更新モジュール131、更新モジュール132、更新モジュール135、更新モジュール137、更新モジュール133も一方向に循環して改ざん検出処理を行っており、更新モジュール133、更新モジュール136、更新モジュール137も一方向に循環して改ざん検出処理を行っている。
このように、循環監視パターン記憶部666は、図30の監視パターンから、複数の循環監視パターンを生成することができる。
(b)相互監視結果(改ざん検出結果)の矛盾
ここでは、改ざん検出結果の矛盾について説明する。
更新モジュール群130bが、図30に示した監視パターンで相互に改ざん検出処理を行った場合、更新モジュール131〜137は、それぞれの改ざん検出結果を、更新サーバ200bの判断部210bへ送信する。
図31は、判断部210bが受信した検出結果を示す図である。図31では、「改ざんされていない」という検出結果を、矢印と対応して記載された○印で表し、「改ざんされている」という検出結果を、矢印と対応して記載された×印で表している。
例えば、○印2010は、更新モジュール131が、更新モジュール132の改ざん検出処理を行った結果、「改ざんされていない」と判定されたことを表している。
また、○印2011は、更新モジュール131が、更新モジュール134の改ざん検出処理を行った結果、「改ざんされていない」と判定されたことを表している。
また、○印2012は、更新モジュール133が、更新モジュール131の改ざん検出処理を行った結果、「改ざんされていない」と判定されたことを表している。
また、×印2013は、更新モジュール134が、更新モジュール136の改ざん検出処理を行った結果、「改ざんされている」と判定されたことを表している。
また、×印2014は、更新モジュール133が、更新モジュール136の改ざん検出処理を行った結果、「改ざんされている」と判定されたことを表している。
なお、図31では、すべての矢印に対応して検出結果が記載されている。これは、判断部210bが、すべての改ざん検出結果の受信が完了していることを表している。
次に、図32を用いて、矛盾について説明する。先ず、更新モジュール132を正常な更新モジュールであると仮定する。そして、更新モジュール133および135は、○印2015および○印2016により表されるように、何れも更新モジュール132によって、「改ざんされていない」と判定されている。正常な更新モジュール132によって、「改ざんされていない」と判定された更新モジュール133および135は、共に正常なモジュールであると仮定することができる。
しかし、×印2017により表されるように、正常なモジュールであると仮定された更新モジュール133は、更新モジュール135を「改ざんされている」と判定しており、正常なモジュールである更新モジュール132による改ざん検出結果と、正常なモジュールである更新モジュール133による改ざん検出結果とが一致していない。このような場合を、改ざん検出結果の矛盾という。
(4)不正モジュール特定処理の動作
ここでは、図33および図42を用いて、ソフトウェア更新システム10bにおける不正な更新モジュールの特定処理の動作について説明する。
(a)通常の監視パターンの場合
図33は、不正モジュール特定処理の動作を示すフローチャートである。
不正モジュール特定部605は、すべての更新モジュールについて、ステップS8001からステップS8006までの処理を繰り返す(S8000)。
以下では、図34に示した改ざん検出結果を具体例として用い、更新モジュール131に対する不正モジュール特定処理の動作について説明する。
まず、正常モジュール仮定部653は、更新モジュール131を正常な更新モジュールであると仮定し、更新モジュール131のみを含む仮正常更新モジュール群を生成する(S8001)。
次に、検証結果判定部654は、仮正常更新モジュール群に含まれる更新モジュール131による改ざん検出処理において、「改ざんされていない(正常)」と判定された更新モジュールが存在するか否か判断する(S8002)。
図34によれば、○印2021および○印2022に表されるように、更新モジュール132および更新モジュール134が正常と判定された。
正常と判定された更新モジュールが存在する場合(S8002でY)、検証結果判定部654は、正常と判定された更新モジュール132および更新モジュール134識別情報を、仮正常更新モジュール群抽出部655へ出力する。
仮正常更新モジュール群抽出部655は、受け取った識別情報を仮正常更新モジュール群に追加する。これにより、正常と判定された更新モジュール132および更新モジュール134が仮正常更新モジュール群に追加される(S8003)。
同様に、検証結果判定部654は、仮正常更新モジュール群に含まれる更新モジュール132および更新モジュール134による改ざん検出処理において、正常と判定された更新モジュールが存在するか否か判断する(S8002)。○印2023に表されるように、更新モジュール133が正常と判定されたので、更新モジュール133が、仮正常更新モジュール群に追加される(S8003)。
同様に、検証結果判定部654は、仮正常更新モジュール群に含まれる更新モジュール133による改ざん検出処理において、正常と判定された更新モジュールが存在するか否か判断する(S8002)。○印2024および○印2025に表されるように、更新モジュール131および更新モジュール136が正常と判定されたので、更新モジュール136が、仮正常更新モジュール群に追加される(S8003)。
仮正常更新モジュール群に含まれる更新モジュールが、正常であると判定する更新モジュールが存在しなくなった場合(S8002でN)、矛盾検出部656は、仮正常更新モジュール群に含まれる更新モジュールの検証結果に矛盾があるか否か判断する(S8004)。
このとき、図34に示す仮正常更新モジュール群2031が形成されている。仮正常更新モジュール群2031に含まれる更新モジュールの検証結果を見ると、更新モジュール133による、更新モジュール136に対する検証結果は、○印2025であるのに対して、更新モジュール134による更新モジュール136に対する検証結果は×印2026であるから、検証結果に矛盾がある。
仮正常更新モジュール内に矛盾がある場合(S8004でY)、ステップS8001において、正常であると仮定した更新モジュール131は、仮定が誤っていたことになる。すなわち、更新モジュール131は、不正な更新モジュールであると特定される(S8005)。
仮正常更新モジュール内に矛盾がない場合(S8004でN)、ステップS8001において、正常と仮定した更新モジュール131についての特定は行なわない(S8006)。
次に、ステップS8000に戻って他の更新モジュールを正常と仮定し、ステップS8001からステップS8006までの処理を行う。
更新モジュール群130bに含まれるすべての更新モジュールについてステップS8001からステップS8006までの処理が終了するまで繰り返す(S8007)。
このように、実施の形態2における不正モジュール特定処理は、判断対象として一つの更新モジュールに着目し、当該更新モジュールを正常なモジュールと仮定した上で、その仮定に基づいて各更新モジュールの改ざん検出結果に矛盾があるか否か検証する。そして、矛盾がある場合に、判断対象の更新モジュールを、不正なモジュールであると特定する。
これにより、判断部210bは、改ざん検出結果を偽って通知してきた不正な更新モジュールを論理的な検証方法を用いて効果的に特定することができる。そして、判断部210bは、特定された不正な更新モジュールの無効化指示を出力することにより、不正な更新モジュールを適切に排除することができる。
(b)循環監視パターンの場合
次に、更新モジュール群130bに含まれる更新モジュール間の監視パターンに、循環監視パターンが含まれる場合の不正モジュール特定処理について説明する。
例えば、図35において、更新モジュール133、更新モジュール136、更新モジュール137は、矢印2041、2042、2043が示すように、一方向に循環して改ざん検出処理を行っている。そして、○印2045、2046、2047が示すように、改ざん検出結果は、すべて正常である。
このような場合、不正モジュール特定処理において、更新モジュール133、更新モジュール136、更新モジュール137を一群として扱うことができる。
例えば、更新モジュール133が不正な更新モジュールであると特定された場合、更新モジュール137による、更新モジュール133の改ざん検出結果(図35の○印2047)は、誤りであったことになる。そうすると、更新モジュール137は、正しく改ざん検出を行うことができない、不正な更新モジュールである可能性が高い。さらに、更新モジュール137が不正な更新モジュールである場合には、更新モジュール136による更新モジュール137の改ざん検出結果(図35の○印2046)は、誤りであったことになる。そうすると、更新モジュール136もまた、正しく改ざん検出を行うことが出来ない、不正な更新モジュールである可能性が高い。
すなわち、すべての改ざん検出結果が正常である循環監視パターンにおいては、その内の一つの更新モジュールが不正であると特定された場合には、循環監視パターン内のすべての更新モジュールが不正であるとみなすことができる。
以下では、図36および図37を用いて、より具体的に説明する。
図36において、更新モジュール133、136、137から成る循環監視パターンは、改ざん検出結果がすべて正常である。このため、更新モジュール133、136、137を、一群として扱うことができる。
ここで、更新モジュール133による更新モジュール136の改ざん検出結果と、更新モジュール137による更新モジュール136の改ざん検出結果とに矛盾がある。そこで、更新モジュール133、136、137を一群として、すべて不正な更新モジュールであると特定することができる。
また、図36の例では、更新モジュール136および更新モジュール137が、相互に改ざん検出処理を行っている。更新モジュール136は、更新モジュール137を「改ざんされている」と判断しており、更新モジュール137は、更新モジュール136を「改ざんされていない」と判断している。このように、循環監視パターン内の一組の更新モジュールの相互監視結果に矛盾がある場合にも、更新モジュール133、136,137を一群として、すべて不正な更新モジュールであると特定することができる。
図37において、更新モジュール131、132、133から成る循環監視パターンは、改ざん検出結果がすべて正常である。このため、更新モジュール131、132、133を、一群として扱うことができる。
ここで、更新モジュール132による更新モジュール135の改ざん検出結果(○印2061)と、更新モジュール133による更新モジュール135の改ざん検出結果(×印2062)とに矛盾がある。このように、循環監視パターン外の更新モジュールに対する改ざん検出結果が矛盾している場合にも、更新モジュール131、132、133を一群として、すべて不正な更新モジュールであると特定することができる。
このように、循環監視パターンに含まれる更新モジュールを一群として扱うことにより、個々の更新モジュール毎に不正であるか否かを判断する場合と比較して、処理効率を格段に向上させることができる。
続いて、図38のフローチャートを用いて、循環監視パターンを考慮した不正モジュール特定処理の動作について説明する。
先ず、循環監視パターン取得部663は、循環監視パターン記憶部666を参照することにより、更新モジュール群130bの監視パターンの中に、循環監視パターンが存在するか否かを判断する(S8101)。循環監視パターンが存在しない場合(S8101でN)、不正モジュール特定処理を終了する。
循環監視パターンが存在する場合(S8101でY)、当該循環監視パターンの改ざん検出結果がすべて正常であるか否か判断する(S8102)。
すべてが正常でない場合(S8102でN)、当該循環監視パターン内の更新モジュールを一群として扱うことはできない。そこで、ステップS8105へ進む。
当該循環監視パターンの改ざん検出結果がすべて正常である場合(S8102でY)、循環監視パターン内の更新モジュールが、改ざん検出処理を行う同一の更新モジュールについて、検証結果が一致するか否か判断する(S8103)。
一致しない場合(S8103でN)、循環監視パターン内の更新モジュールは全て不正な更新モジュールであると特定する(S8104)。
循環監視パターンの監視結果がすべて正常でない場合(S8102でN)、および、循環監視パターン内の更新モジュールが、改ざん検出処理を行う同一の更新モジュールについて、検証結果が一致する場合(S8103でY)、更新モジュール群130bの監視パターンの中に、他の循環監視パターンが存在するか判断する(S8105)。
他の循環監視パターンが存在する場合(S8105でY)、ステップS8102へ戻り処理を続ける。他の循環監視パターンが存在しない場合(S8105でN)、不正モジュール特定処理を終了する。
(c)循環監視パターン選択方法
次に、循環監視パターン選択方法について説明する。
上述したように、不正モジュール特定処理において、循環監視パターンの改ざん検出結果がすべて正常である場合には、循環監視パターンに含まれるすべての更新モジュールを一群として扱うことができる。
ここで、循環監視パターンに含まれる更新モジュールの数(以下では、「循環のサイズ」と表現する。)が大きい場合、循環監視パターンに含まれるすべての更新モジュールが同時に改ざんされている可能性は低いと考えられる。また、循環のサイズが大きいほど、すべての検証結果が正常となる可能性は低くなる。
これらのことから、実施の形態2では、循環監視パターンが複数存在する場合には、循環のサイズが小さい循環監視パターンから優先的に不正モジュール特定処理を行うことにより、不正な更新モジュールを効率的に発見し、無効化する。
また、循環のサイズが同じである循環監視パターンが複数存在する場合には、循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールの数を基に、不正モジュール特定処理を行う場合の優先順位を決定する。
循環監視パターン内の更新モジュールがすべて不正モジュールと判断された後に、循環監視パターン外の更新モジュールが、循環監視パターンに含まれるいずれかの更新モジュールを正常と判定している場合、当該循環監視パターン外の更新モジュールは、不正な更新モジュールであると判断できる。
そこで、循環のサイズが同じである循環監視パターンが複数存在する場合には、循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールの数が多い循環監視パターンから、優先的に不正モジュール特定処理を行う。
上記の処理を実現するために、循環監視パターン記憶部666は、監視パターン記憶部665から、複数の循環監視パターンを検出すると、上述した循環監視パターンに加え、図39または図40に示す循環監視パターンリストを生成して、記憶する。循環監視パターンリストは、監視パターンに含まれる複数の循環監視パターンについて、循環監視パターン毎に、当該循環監視パターンに係る情報を記述したリストである。
図39は、循環監視パターンリスト2100のデータ構成を示す図である。
同図に示すように、循環監視パターンリスト2100は、各循環監視パターンについて、循環のサイズ、当該循環監視パターンを構成する更新モジュールの識別情報、および当該循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールの数(ここでは、「循環への入力」という。)を対応付けて記憶している。
たとえば、No.1の循環監視パターンは、循環のサイズが3であり、更新モジュール131、132、133から構成される。また、当該循環監視パターン内の更新モジュールに対して改ざん検出処理を行っている循環監視パターン外の更新モジュールが、1つ存在する。
図40は、循環監視パターンリスト2200のデータ構成を示す図である。
循環監視パターンリスト2200は、図39の循環監視パターンリスト2100と比較すると、各循環監視パターンについての情報が、循環のサイズが小さい順に並べられている。さらに、循環のサイズが同一である循環監視パターンが複数ある場合には、循環監視パターン内の更新モジュールを検証する外部の更新モジュールの数(循環への入力)が大きい順に並べられている。
そこで、図40のリスト2200を用いれば、複数の循環監視パターンのうち、何れの循環監視パターンから優先的に処理を行えば良いのかを判断しやすくなり、図39のリスト2100を用いる場合と比較して、不正な更新モジュールをより効率的に発見し、無効化することができる。
次に、図41および図42のフローチャートを用いて、循環監視パターンが複数存在する場合の不正モジュール特定処理の動作について説明する。
先ず、循環監視パターン取得部663は、循環監視パターン記憶部666を参照することにより、更新モジュール群130bの監視パターンの中に、循環監視パターンが存在するか否かを判断する(S8111)。循環監視パターンが存在しない場合(S8111でN)、不正モジュール特定処理を終了する。
循環監視パターンが存在する場合(S8111でY)、循環監視パターン取得部663は、循環監視パターン記憶部666に記憶されている循環監視パターンリストから、循環のサイズが最小である循環監視パターンを探す(S8112)。さらに、循環のサイズが同一である循環監視パターンが複数存在する場合には、循環監視パターン取得部663は、循環監視パターン内の更新モジュールを検証する外部の更新モジュールの数が多い循環監視パターンを選択する(S8113)。
次に、循環監視パターン取得部663は、選択した循環監視パターンの監視結果がすべて正常であるか否か判断する(S8114)。
すべて正常でない場合(S8114でN)、ステップS8118へ進む。
すべて正常である場合(S8114でY)、矛盾検出部656は、循環監視パターン内の更新モジュールが、循環監視パターン内の他の更新モジュールの改ざん検出処理を行った結果、不正と判定された更新モジュールが存在するか確認する(S8115)。
不正と判定された更新モジュールが存在する場合(S8115でY)、循環監視パターン内の更新モジュールは全て不正な更新モジュールであると特定し(S8116)、ステップSS8118へ進む。
不正と判定された更新モジュールが存在しない場合(S8115でN)、矛盾検出部656は、循環監視パターン内の更新モジュールが、循環監視パターン外の同一の更新モジュールに対して行なった改ざん検出結果に、矛盾があるか否か判断する(S8117)。
検証結果が矛盾する場合(S8117でN)、循環監視パターン内の更新モジュールは全て不正な更新モジュールであると特定し(S8116)、ステップS8118へ進む。
検証結果が一致する場合(S8117でY)、循環監視パターン取得部663は、循環監視パターン記憶部666に記憶されている循環監視パターンリストを参照し、他に循環監視パターンが存在するかを判断する(S8118)。
循環監視パターンが存在する場合(S8118でY)、循環監視パターン取得部663は、循環のサイズが、前回対象とした循環監視パターンの循環のサイズ以上であり、かつ、最小である循環監視パターンを選択する(S8119)。そして、ステップS8113へ戻り処理を続ける。
他に循環監視パターンが存在しない場合(S8118でN)、不正モジュール特定処理を終了する。
(5)分散情報について
ここでは、循環監視パターンと更新モジュールが保持する分散情報との関係について説明する。
上述した初期設定処理では、保護制御モジュール120が暗復号鍵から秘密分散法を用いて分散情報を作成し、生成した分散情報を各更新モジュールへ送信する。
特許文献2に記載されている方法を用いる場合、同一の分散情報を複数の更新モジュールへ送信する。これにより、ある更新モジュールが無効化され、当該更新モジュールから分散情報が取得できない場合であっても、同一の分散情報を保持する他の更新モジュールから分散情報を取得することにより、暗復号鍵を復元することができる。
循環監視パターンでは、一つの更新モジュールが不正モジュールと特定されると、循環監視パターンに含まれるすべての更新モジュールが不正モジュールと特定され、無効化される。
そこで、実施の形態2の保護制御モジュール120は、暗復号鍵の復元が不能となる事態を防止するために、循環監視パターンが存在する場合には、循環監視パターンの構成に基づいて、各更新モジュールに分散情報を送信する。
以下、図43および図44を用いて具体的に説明する。
図43は、監視パターンの一例を示す図である。同図によれば、更新モジュール131、132、133、および、更新モジュール133、136、137が循環監視パターンである。
このとき、循環監視パターン内の更新モジュール131、132、133のみが保持し、他の更新モジュールが保持しない分散情報がある場合、更新モジュール131、132、133のすべてが無効化されると、保護制御モジュール120は、暗復号鍵を復元できなくなる。
同様に、更新モジュール133、136、137のみが保持し、他の更新モジュールが保持しない分散情報がある場合、更新モジュール133、136、137のすべてが無効化されると、保護制御モジュール120は、暗復号鍵を復元できなくなる。
そこで、保護制御モジュール120は、図44に示すように、分散情報1、分散情報2、分散情報3、分散情報4、分散情報5、分散情報6、および分散情報7のすべてについて、更新モジュール131、132、133のみが保持する分散情報、および、更新モジュール133、136、137のみが保持する分散情報が存在しないように、各分散情報を、各更新モジュールへ送信する。
これにより、更新モジュール131、132、133のすべてが無効化された場合であっても、または、更新モジュール133、136、137のすべてが無効化された場合であっても、保護制御モジュール120は、暗復号鍵を復元することができる。
3.実施の形態3
ここでは、別の実施の形態について説明する。
3.1 改竄監視システム10ca
別の実施の形態としての改竄監視システム10caについて、図77に示す構成図を用いて、説明する。
改竄監視システム10caは、図77に示すように、情報セキュリティ装置100ca及び管理装置200caから構成されている。
情報セキュリティ装置100caは、改竄を監視する複数の監視モジュール131ca、132ca、133ca、134caを有する。
管理装置200caは、情報セキュリティ装置100caから、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信部240caと、受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出部678caと、前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第一仮定部673caと、改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第二仮定部679caと、前記第二仮定部679caによる手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断部676caとから構成されている。
管理装置200caによると、検出部678caは、改竄されていない正常な監視モジュールの存在を検出しているので、少なくとも1個の監視モジュールは、正常である。
これに対して、判断部676caにより、全ての監視モジュールに対して改竄されていると仮定されたと判断された場合には、この判断結果は、検出部678caの検出の結果と矛盾している。これは、第一仮定部673caによる仮定に誤りがあったためである。
従って、第一仮定部673caによる仮定を覆し、第一仮定部673caにより、改竄されていると仮定された監視モジュールを正常な監視モジュールと決定する。
以上のようにして、正常な監視モジュールを決定することができるので、正常な監視モジュールの監視結果は信頼できるものであり、有効に利用することができる。
なお、以上のようにして、正常な監視モジュールが決定できた場合には、上記において不正とした仮定を全て取り消す。
3.2 ソフトウェア更新システム10cb
別の実施の形態としてのソフトウェア更新システム10cb(図示していない)について、説明する。
ソフトウェア更新システム10cbでは、更新処理における更新モジュールの選択(図20のステップS5106及び図21のステップS5112)において、改竄されていない、つまり、正常な更新モジュールを特定する方式を用いる。この方式を用いると、複数の更新モジュールの中から正常である更新モジュールを、論理的に特定できるので、特定した正常な更新モジュールを用いて、保護制御モジュールを安全に更新することができる。
なお、ソフトウェア更新システム10cbでは、実施の形態2と同様に更新モジュールが7個の場合について、説明する。しかし、更新モジュールは、8個以上であってもよいし、6個以下であってもよい。
(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における各更新モジュールの相互監視結果を用いて、改竄されていない正常な更新モジュールを特定する。
正常モジュール特定部607は、図46に示すように、特定指示受信部671、特定結果送信部672、不正モジュール仮定部(第一仮定部とも呼ぶ。)673、検証結果判定部674、仮不正更新モジュール群抽出部675、抽出結果判断部676、循環監視パターン判定部677及び異常検出部678から構成されている。また、検証結果判定部674及び仮不正更新モジュール群抽出部675は、第二仮定部679を構成している。
第二仮定部679は、不正モジュール仮定部673により、改竄されていると仮定された更新モジュールを起点として、受信した監視結果を用いて、改竄されていると仮定された更新モジュールを正常と判定する更新モジュールに対して改竄されていると仮定する手順を、未処理の更新モジュールについて、連鎖的に適用する。
(a)特定指示受信部671
特定指示受信部671は、指示生成部603から正常な更新モジュールの特定の指示を示す正常モジュール特定指示を受信する。正常モジュール特定指示を受信すると、正常モジュール特定指示を異常検出部678へ出力する。
また、特定指示受信部671は、指示生成部603から更新モジュールリストを受信する。更新モジュールリストは、機器100における更新モジュール群130を構成する全ての更新モジュールを識別する識別番号を含んでいる。次に、特定指示受信部671は、受信した更新モジュールリストを不正モジュール仮定部673及び抽出結果判断部676へ出力する。
また、特定指示受信部671は、機器100から、ネットワーク5、通信部240、受信部601及び指示生成部603を介して、機器100における更新モジュール群130の監視の結果を受信する。また、受信した更新モジュール群130の監視の結果を異常検出部678、不正モジュール仮定部673、循環監視パターン判定部677及び検証結果判定部674へ出力する。
(b)異常検出部678
異常検出部678は、以下に示すようにして、受信した前記監視結果を用いて、改竄されていない正常な更新モジュールの存在を検出する。簡単に説明すると、異常検出部678は、前回受信した監視結果と、今回受信した監視結果とを用い、前回受信した監視結果により、全ての更新モジュールが正常であると判定され、今回受信した監視結果により、全ての更新モジュールが正常であると判定されなかった場合に、改竄されていない正常な更新モジュールの存在を検出する。ここで、前回の監視と今回の監視との時間間隔は、所定の閾値より小さいものとする。

以下に、さらに詳細に異常検出部678について説明する。
異常検出部678は、特定指示受信部671から正常モジュール特定指示を受信する。
正常モジュール特定指示を受信すると、異常検出部678は、特定指示受信部671から機器100における更新モジュール群130の監視の結果(最新の監視の結果)を受信する。また、特定指示受信部671から、機器100における更新モジュール群130の前回の監視の結果を受信する。
前回の監視とは、最新の監視を行う1回前における監視を示している。機器100は、定期的に又は不定期に、密な間隔により(例えば、1月に10〜20回、1週間に5〜6回、1日に2〜3回、1時間に1回など)、監視を繰り返している。前回の監視と今回の監視との時間間隔は、所定の閾値より小さい。ここで、所定の閾値の例は、5日、3日、1日、12時間、6時間、3時間、1時間などである。
更新サーバ200cbは、各監視における監視の結果を累積的に記憶している。
上記のように、機器100は、定期的に又は不定期に、密な間隔により、監視を繰り返しているので、第1の監視時点から、その次の第2の監視時点までの間において、全ての更新モジュールが改竄されてしまうという事態は、避けられると仮定できる。
つまり、第1の監視時点において、全ての更新モジュールが改竄されていない場合において、第1の監視時点の次の第2の監視時点において、少なくとも1個の更新モジュールが改竄されていないものと仮定することができる。
異常検出部678は、受信した最新の監視の結果を用いて、最新の監視の結果が全て正常であるか否かを判断する。最新の監視の結果が全て正常である場合には、最新の監視の結果が全て正常であることを示す正常結果を、特定結果送信部672を介して、指示生成部603へ出力し、モジュール特定部604cbは、処理を終了する。この場合には、全ての更新モジュールが正常であるので、正常な更新モジュールの特定処理を行う必要はない。
異常検出部678は、最新の監視の結果が全て正常であると判断されない場合、次に、受信した前回の監視の結果を用いて、前回の監視の結果が全て正常であるか否かを判断する。前回の監視の結果が全て正常であると判断されない場合には、その旨を示す結果を、特定結果送信部672を介して、指示生成部603へ出力し、モジュール特定部604cbは、処理を終了する。この場合には、全ての更新モジュールが正常でない可能性があるので、正常な更新モジュールの特定処理を行わない。
前回の監視の結果が全て正常である場合には、異常検出部678は、正常モジュール特定部607を構成するその他の構成部に対して、正常モジュールの特定処理をするように、制御する。また、循環監視パターン判定部677に対して、不正な更新モジュールを特定する旨を示す不正モジュール特定指示を出力する。
(c)循環監視パターン判定部677
循環監視パターン判定部677は、異常検出部678から不正モジュール特定指示を受信し、特定指示受信部671から更新モジュール群130の監視の結果を受信する。不正モジュール特定指示を受信すると、循環監視パターン判定部677は、循環検出部606へ循環監視パターンの取得指示を送信する。循環検出部606は、存在すれば、1個以上の循環監視パターンを循環監視パターン判定部677へ送信する。次に、循環監視パターン判定部677は、循環検出部606から循環監視パターンを受信する。
次に、循環監視パターン判定部677は、受信した監視の結果を用いて、受信した循環監視パターンにより示される複数の更新モジュールの監視の結果に矛盾があるかを検証する。矛盾がある場合には、受信した循環監視パターン内に含まれる更新モジュールはすべて不正な更新モジュールであると特定し、不正であると特定した全ての更新モジュールをそれぞれ識別する不正識別番号を、不正モジュール仮定部673へ送信する。
なお、循環監視パターンについて、簡単に説明すると、以下の通りである。
更新モジュールに対して、循環監視パターンにより、監視対象の更新モジュールが定められている。循環監視パターンは、第1の更新モジュールによる監視対象である第2の更新モジュールが、前記第1の更新モジュールを監視し、又は、1個以上の更新モジュールを介在して、前記第1の更新モジュールを監視することを示している。
要するに、循環監視パターン判定部677は、循環監視パターンに係る複数の更新モジュールによる他の1の更新モジュールに対する複数の監視結果が一致しない場合に、当該循環監視パターンに係る複数の更新モジュールを、不正な更新モジュールとして、特定する。
なお、次のようにして、不正な更新モジュールを特定するとしてもよい。すなわち、不正モジュール特定部は、1個の更新モジュールが正常であると仮定する場合に、受信する監視結果を用いて、複数の監視結果に不一致があるか否かを判断し、不一致がある場合に、正常であると仮定した前記更新モジュールを、不正な更新モジュールとして、特定する。
(d)不正モジュール仮定部673
不正モジュール仮定部673は、以下に示すようにして、更新モジュールの中から選択した1個の更新モジュールに対して改竄されていると仮定する。
不正モジュール仮定部673は、特定指示受信部671から更新モジュールリストを受信し、機器100における更新モジュール群130の監視の結果を受信する。また、循環監視パターン判定部677から不正であると特定された全ての更新モジュールをそれぞれ識別する不正識別番号を受信する。
次に、不正モジュール仮定部673は、更新モジュールリストに含まれる更新モジュールの識別番号の内、受信した不正識別番号以外の更新モジュールの識別番号を一つ選択し、選択した識別番号により示される更新モジュールを不正な更新モジュールと仮定する。この選択した識別番号を仮定識別番号と呼ぶ。不正モジュール仮定部673は、空集合の仮不正更新モジュール群を定め、次に、仮定識別番号を仮不正更新モジュール群に含める。この時点において、仮不正更新モジュール群には、選択した更新モジュールを識別する仮定識別番号のみが含まれる。なお、仮不正更新モジュール群を、仮定不正グループと呼ぶとしてもよい。このように、不正モジュール仮定部673は、仮定識別番号を含む仮定不正グループを生成する。
次に、不正モジュール仮定部673は、選択した更新モジュールの仮定識別番号を抽出結果判断部676へ送信し、仮不正更新モジュール群の仮不正構成情報を検証結果判定部674へ送信する。仮不正更新モジュール群の仮不正構成情報は、仮不正更新モジュール群に含まれる全ての識別番号から構成されている。
また、不正モジュール仮定部673は、抽出結果判断部676から正常な更新モジュールを特定できない旨の特定不可通知を受信する。特定不可通知を受信した場合、不正モジュール仮定部673は、更新モジュールリストに含まれる更新モジュールの識別番号の内、受信した不正識別番号以外の更新モジュールであって、選択した更新モジュールとは別の更新モジュールの識別番号を新たに選択し、選択した更新モジュールを不正な正常モジュールと仮定し、選択した当該更新モジュールを識別する仮定識別番号のみを仮不正更新モジュール群に含め、仮不正更新モジュール群の仮不正構成情報を検証結果判定部674へ送信する。
(e)第二仮定部679
第二仮定部679は、上述したように、検証結果判定部674及び仮不正更新モジュール群抽出部675から構成されている。
第二仮定部679は、以下に説明するように、不正モジュール仮定部673により、改竄されていると仮定された更新モジュールを起点として、受信した監視結果を用いて、改竄されていると仮定された更新モジュールを正常と判定する更新モジュールに対して改竄されていると仮定する手順を、未処理の更新モジュールについて、連鎖的に適用する。
第二仮定部679は、簡単に説明すると、監視結果を用いて、前記仮定不正グループに含まれている識別番号により識別される更新モジュールを正常と判断する更新モジュールが存在するか否かを判定し、存在すると判定された場合に、当該更新モジュールを識別する識別番号を前記仮定不正グループに追加し、未処理の更新モジュールについて、前記判定と前記追加とを繰り返し行うように制御する。
(i)検証結果判定部674
検証結果判定部674は、特定指示受信部671から、機器100における更新モジュール群130の監視の結果を受信する。また、不正モジュール仮定部673から仮不正構成情報を受信する。
検証結果判定部674は、特定指示受信部671から受信した機器100における更新モジュール群130の監視の結果、及び、不正モジュール仮定部673から受信した仮不正更新モジュール群の仮不正構成情報を用いて、仮不正更新モジュール群内の更新モジュールへの検証結果を判定する。
ここでは、図47に示す例を用いて、検証結果判定部674による判定方法について説明する。
図47に示すように、更新モジュール131は、更新モジュール132を監視(3004)し、更新モジュール131による更新モジュール132に対する監視結果は、正常(3003)であるものとする。また、更新モジュール132は、仮不正更新モジュール群3002内に含まれる更新モジュールであるものとする。
このとき、検証結果判定部674は、受信した監視の結果を用いて、仮不正更新モジュール群3002内に含まれる更新モジュール132を正常と判定する更新モジュールを探す。図47に示す例では、更新モジュール131が更新モジュール132を正常(3003)と判定している。そこで、検証結果判定部674は、更新モジュール132を正常と判定する更新モジュール131を仮不正更新モジュールとみなす。
後述するように、更新モジュール131は、仮不正更新モジュールとして、仮不正更新モジュール群に追加して含まれるようになる。その結果、更新モジュール132及び131は、新たな仮不正更新モジュール群3001に含まれることになる。
検証結果判定部674は、仮不正更新モジュール群内の更新モジュールへの監視の結果として、正常と判定する更新モジュールを識別する識別番号(以下、仮不正識別番号と呼ぶ。)と、受信した仮不正更新モジュール群の構成情報を仮不正更新モジュール群抽出部675へ送信する。仮不正更新モジュール群内の更新モジュールへの監視の結果として、正常とする更新モジュールが存在しない場合は、その旨を仮不正更新モジュール群抽出部675へ送信する。仮不正更新モジュール群抽出部675から仮不正更新モジュール群の構成情報を受信した場合も、同様の動作を行う。
(ii)仮不正更新モジュール群抽出部675
仮不正更新モジュール群抽出部675は、検証結果判定部674から仮不正更新モジュール群内の更新モジュールへの監視の結果として、正常と判定する更新モジュールの識別番号(仮不正識別番号)と、仮不正更新モジュール群の構成情報を受信する。次に、受信した更新モジュールの識別番号(仮不正識別番号)を受信した仮不正更新モジュール群へ追加する。
図47に示す例の場合には、更新モジュール131は、仮不正更新モジュールとして、仮不正更新モジュール群に追加して含まれるようになる。その結果、更新モジュール132及び131は、新たな仮不正更新モジュール群3001に含まれることになる。
次に、仮不正更新モジュール群抽出部675は、識別番号が追加された新たな仮不正更新モジュール群の構成情報を検証結果判定部674へ送信する。検証結果判定部674から更新モジュールが存在しない旨の通知を受信した場合には、抽出結果判断部676へ仮不正更新モジュール群の構成情報を送信する。
(f)抽出結果判断部676
抽出結果判断部676は、特定指示受信部671から更新モジュールリストを受信する。また、仮不正更新モジュール群抽出部675から仮不正更新モジュール群の仮不正構成情報及び仮定識別番号を受信する。さらに、循環監視パターン判定部677から不正な更新モジュールを識別する不正識別番号を受信する。
次に、抽出結果判断部676は、仮不正更新モジュール群の仮不正構成情報及び不正な更新モジュールを識別する不正識別番号を用いて、循環監視パターン判定部677で特定した不正な更新モジュール以外の全ての更新モジュールが仮不正更新モジュール群に含まれているか否かを判断する。
また、不正な更新モジュールが存在しない場合には、抽出結果判断部676は、全ての更新モジュールが仮不正更新モジュール群に含まれているか否かを判断する。さらに、不正な更新モジュールが存在を検出しない場合にも、全ての更新モジュールが仮不正更新モジュール群に含まれているか否かを判断する。言い換えると、全ての更新モジュールに対して、改竄されていると仮定されたかを判断する。さらに、言い換えると、抽出結果判断部676は、仮定不正グループに、全ての更新モジュールを識別する識別番号が含まれるか否かを判断する。
言い換えると、抽出結果判断部676は、更新モジュールリストに含まれる識別番号から、不正識別番号を取り除き、さらに、仮不正構成情報に含まれる識別番号を取り除いた結果、更新モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。
また、不正な更新モジュールが存在しない場合には、抽出結果判断部676は、更新モジュールリストに含まれる識別番号から、仮不正構成情報に含まれる識別番号を取り除いた結果、更新モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。さらに、不正な更新モジュールが存在を検出しない場合にも、更新モジュールリストに含まれる識別番号から、仮不正構成情報に含まれる識別番号を取り除いた結果、更新モジュールリストが空集合となるか、又は、空集合ではなく、識別番号を含んでいるかを判断する。
循環監視パターン判定部677で特定した不正な更新モジュール以外の全ての更新モジュールが仮不正更新モジュール群に含まれている場合、抽出結果判断部676は、不正モジュール仮定部673で仮定した更新モジュールを正常な更新モジュールと特定し、受信した仮定識別番号を正常モジュールを示す識別番号とし、正常モジュール識別番号を、特定結果として、特定結果送信部672へ出力する。
全ての更新モジュールが仮不正更新モジュール群に含まれない場合、抽出結果判断部676は、不正モジュール仮定部673で仮定した更新モジュール以外の更新モジュールを仮定するように、不正モジュール仮定部673へ指示(正常な更新モジュールを特定できない旨の特定不可通知)を送信する。
(g)特定結果送信部672
特定結果送信部672は、抽出結果判断部676から正常な更新モジュールの特定結果を受信し、受信した特定結果を指示生成部603に送信する。
また、特定結果送信部672は、最新の監視の結果が全て正常であることを示す正常結果を指示生成部603へ送信する。また、最新の監視の結果が全て正常ではなく(つまり、少なくとも一部は、不正)、また、前回の監視の結果が全て正常ではない(つまり、少なくとも一部は、不正)旨を示す結果を、指示生成部603へ送信する。
(4)正常モジュール特定処理の動作
ソフトウェア更新システム10cbにおける正常な更新モジュールの特定処理の動作を、図48、図49及び図50〜図52を用いて説明する。
なお、図48及び図49は、それぞれ、各更新モジュールの改竄検出の監視の結果の一例を示し、図50〜図52は、正常モジュール特定処理の動作を示すフローチャートである。
以下に、正常モジュール特定処理の動作について、図50〜図52に示すフローチャートを用いて説明する。
異常検出部678は、少なくとも1個の更新モジュールが正常か否かを判断する。言い換えると、改竄されていない正常な更新モジュールの存在を検出する(ステップS9000)。ステップS9000の詳細は、次の通り(ステップS9001〜S9004)である。
異常検出部678は、最新の全ての監視結果を受信することにより取得し(ステップS9001)、最新の全ての監視結果が、正常であるか否かを判定する(ステップS9002)。すべての監視結果が正常である場合(ステップS9002でY)、全ての更新モジュールは正常であると特定し、モジュール特定部604cbは、正常モジュール特定処理を終了する。全ての監視結果が正常であると判断されない場合(ステップS9002でN)、直前の、つまり、前回の全ての監視結果を受信することにより取得し(ステップS9003)、直前の監視結果が全て正常であるかを判定する(ステップS9004)。直前の監視結果が全て正常である判断されない場合(ステップS9004でN)、モジュール特定部604cbは、正常モジュール特定処理を終了する。直前の監視結果が全て正常であった場合(ステップS9004でY)、更新モジュール群130の少なくとも一つの更新モジュールが正常であると判断する。これは、直前の相互監視では全ての更新モジュールが正常であった場合、相互監視の間隔が狭いため、その間隔で全ての更新モジュールが不正な更新モジュールへ改竄されることはないと判断するためである。
このようにして、更新モジュール群130の少なくとも一つの更新モジュールが正常であると確認することにより、後に説明するように、論理的に正常モジュールを特定することができる。
次に、直前の相互監視処理の監視結果が全て正常であった場合(ステップS9004でY)、循環監視パターン判定部677は、循環監視パターンが存在するかを判断する(ステップS9005)。この判断は、循環検出部606内の循環監視パターン記憶部666に循環監視パターンが記憶されているか否かを確認することにより行う。循環監視パターンが存在しない場合には(ステップS9005でN)、ステップS9014へ移行する。
循環監視パターンが存在する場合(ステップS9005でY)には、循環監視パターン判定部677は、循環監視パターンを用いた不正な更新モジュールの特定を行う(ステップS9006)。ステップS9006の詳細は、次の通り(ステップS9007〜S9013)である。なお、循環監視パターンを用いた不正な更新モジュールの特定を行わないとしてもよい。つまり、別の方法により、不正な更新モジュールの特定を行うとしてもよい。また、不正な更新モジュールの特定を行わないとしてもよい。
循環監視パターン判定部677は、循環検出部606内の循環監視パターン記憶部666に記憶されている1個の循環監視パターンを選択し(ステップS9007)、選択した循環監視パターン内における監視結果が全て正常であるかを判断する(ステップS9008)。循環監視パターンの監視結果が全て正常である場合(ステップS9008でY)、循環監視パターン内の複数の更新モジュールの監視対象である同一モジュールに対する複数の監視結果が一致するかを検証する(ステップS9009)。一致しない場合には(ステップS9009でN)、循環監視パターン内の更新モジュールは全て不正な更新モジュールであると特定する(ステップS9010)。さらに、ステップS9010で不正な更新モジュールであると特定された更新モジュールを正常と判定している更新モジュールが存在するかを判断する(ステップS9011)。存在する場合には(ステップS9011でY)、正常と判定する更新モジュールを不正な更新モジュールであると特定する(ステップS9012)。これにより、不正な更新モジュールであるか否かの判断がされずに残存する更新モジュールの数を減らすことができる。その結果、保護制御モジュールを更新する正常な更新モジュールを一層効果的に特定できる。次に、ステップS9013へ制御を移す。
循環監視パターン判定部677は、循環監視パターンの監視結果が全て正常でない場合(ステップS9008でN)、循環監視パターン内の複数の更新モジュールの監視対象である同一モジュールに対する複数の監視結果が一致する場合(ステップS9009でY)、又は、不正な更新モジュールであると特定された更新モジュールを正常と判定している更新モジュールが存在しない場合(ステップS9011でN)、さらに、循環検出部606内の循環監視パターン記憶部666に循環監視パターンが他に存在するかを判断する(ステップS9013)。他に循環監視パターンが存在する場合には(ステップS9013でY)、ステップS9007へ制御を移す。他に循環監視パターンが存在しない場合には(ステップS9013でN)、循環監視パターン判定部677は、循環監視パターンを用いた不正な更新モジュールの特定の処理を終了する。
次に、不正モジュール仮定部673は、ステップS9010又はステップS9012で不正な更新モジュールと特定された更新モジュール以外の更新モジュールを選択し、選択した更新モジュールを不正な更新モジュールと仮定し、仮不正更新モジュール群がこの不正と仮定した更新モジュールの識別番号のみを含むとする(ステップS9014)。
検証結果判定部674は、仮不正更新モジュール群内に含まれる識別番号により識別される更新モジュールを正常と判定する更新モジュールが、仮不正更新モジュール群以外に、一個でも存在するかを判定する(ステップS9015)。仮不正更新モジュール群内のモジュールを正常と判定する仮不正更新モジュール群以外の更新モジュールが一個でも存在する場合(ステップS9015でY)、仮不正更新モジュール群抽出部675は、この更新モジュールを識別する識別番号を仮不正更新モジュール群に含める(ステップS9016)。次に、ステップS9015へ制御を移す。仮不正更新モジュール群内の更新モジュールを正常と判定する仮不正更新モジュール群以外の更新モジュールが一個でも存在しなかった場合(ステップS9015でN)、ステップS9010又はステップS9012で不正な更新モジュールと特定された不正な更新モジュールと、仮不正更新モジュール群以外の更新モジュールが存在するか判断する(ステップS9017)。存在しない場合(ステップS9017でN)、ステップS9014で仮定した更新モジュールを正常な更新モジュールと特定する(ステップS9018)。こうして、正常な更新モジュールが特定できた場合には、その後に、上記において不正とした仮定を全て取り消し、仮不正更新モジュール群に含まれる識別番号を消去する。
また、存在する場合(ステップS9017でY)、ステップS9014で仮定した更新モジュールを正常な更新モジュールと特定しない(ステップS9019)。ステップS9014において、ステップS9010やステップS9012で不正な更新モジュールと特定された更新モジュール以外の全ての更新モジュールを選択していない場合には(ステップS9020でN)、ステップS9014へ制御を移す。全ての更新モジュールを仮定した場合(ステップS9020でY)、正常モジュール特定処理を終了する。
以上説明したように、ステップS9019において、仮定した更新モジュールを正常な更新モジュールと特定しないことにより、不正な更新モジュールを、正常な更新モジュールと誤判断するのを防止できる。これにより、不正な更新モジュールを介して保護制御モジュールが不正な保護制御モジュールに更新されるのを防止できる。
上記、正常モジュール特定処理では、まず、複数の更新モジュールの中のいずれか一つの更新モジュールが不正な更新モジュールであるという仮定を行う。その上で、更新モジュールの中から正常である更新モジュールを論理的な検証方法を用いて効果的に特定できるので、特定した正常な更新モジュールを用いて、保護制御モジュールを安全に更新できる。
なお、上記において、更新モジュールは、監視モジュールであるとしてもよい。
(5)正常モジュール特定の例
(a)正常モジュール特定の第1の例
次に、図48に示す例を用いて、正常モジュール特定処理の一例について説明する。
図48に示すように、機器100が有する更新モジュール群130は、更新モジュール131〜137を含む。
更新モジュール131は、更新モジュール132及び134を監視し、その監視結果は、それぞれ、正常(3022)及び不正であり、更新モジュール132は、更新モジュール131、133及び135を監視し、その監視結果は、それぞれ、不正(3021)、正常(3023)及び不正であり、更新モジュール133は、更新モジュール131、135及び136を監視し、その監視結果は、それぞれ、正常(3024)、不正及び不正であり、更新モジュール134は、更新モジュール136を監視し、その監視結果は、正常(3027)であり、更新モジュール135は、更新モジュール137を監視し、その監視結果は、正常(3025)であり、更新モジュール136は、更新モジュール137を監視し、その監視結果は、正常(3026)であり、更新モジュール137は、更新モジュール133を監視し、その監視結果は、不正であるとする。
また、更新モジュール131は、更新モジュール132を監視し(3028)、更新モジュール132は、更新モジュール133を監視し(3029)、更新モジュール133は、更新モジュール131を監視(3030)しているものとする。従って、循環監視パターン3014が存在する。
このように、更新モジュールに対して、循環監視パターンにより、監視対象の更新モジュールが定められている。循環監視パターンは、第1の更新モジュールによる監視対象である第2の更新モジュールが、前記第1の更新モジュールを監視し、又は、1個以上の更新モジュールを介在して、前記第1の更新モジュールを監視することを示している。
まず、循環監視パターン判定部677は、循環監視パターンが存在するか判断し(ステップS9005)、循環監視パターンの全ての更新モジュール131、132及び133は、全て不正な更新モジュールであると特定する(ステップS9010)。図48によると、循環監視パターン3014が存在し、循環監視パターン3014における監視結果は、全て正常(3022、3023、3024)であり、更新モジュール132による更新モジュール131に対する監視結果(3021)と、更新モジュール133による更新モジュール131に対する監視結果(3024)とが異なるからである。
次に、不正モジュール仮定部673は、更新モジュール137を選択し、更新モジュール137を不正な更新モジュールと仮定し、更新モジュール137を識別する識別番号を仮不正更新モジュール群3011に含める(ステップS9014)。次に、図48によると、不正と判定された更新モジュール131〜133以外の更新モジュール135及び136が更新モジュール137を正常と判定(3025、3026)しているので(ステップS9015)、仮不正更新モジュール群3011内の更新モジュール137を正常と判定する更新モジュール135、更新モジュール136を仮不正更新モジュール群に含める(ステップS9016)。この結果、新たな仮不正更新モジュール群3012が生成される。また、図48によると、不正と判定された更新モジュール131〜133以外の更新モジュール134が更新モジュール136(仮不正更新モジュール群3012に含まれる)を正常と判定(3027)しているので(ステップS9015)、仮不正更新モジュール群3012内の更新モジュール136を正常と判定する更新モジュール134を仮不正更新モジュール群に含める(ステップS9016)。この結果、新たな仮不正更新モジュール群3013が生成される。
次に、抽出結果判断部676は、ステップS9010で不正な更新モジュールと特定された不正な更新モジュール131〜133と、仮不正更新モジュール群(更新モジュール134〜137)以外の更新モジュールが存在するか判断する(ステップS9017)。図48によると、全ての更新モジュールが不正な更新モジュールまたは仮不正更新モジュールであるので(ステップS9017でN)、抽出結果判断部676は、更新モジュール137が正常な更新モジュールであると特定する(ステップS9018)。
このようにして、更新モジュールの中から正常である更新モジュール137を論理的な検証方法を用いて効果的に特定できるので、特定した正常である更新モジュール137を用いて、保護制御モジュールを安全に更新できる。
(b)正常モジュール特定の第2の例
次に、図49に示す例を用いて、正常モジュール特定処理の一例について説明する。
図49に示すように、機器100が有する更新モジュール群130は、更新モジュール131〜137を含む。
更新モジュール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を監視し、その監視結果は、正常であるとする。
また、更新モジュール131は、更新モジュール132を監視し(3061)、更新モジュール132は、更新モジュール133を監視し(3062)、更新モジュール133は、更新モジュール131を監視(3063)しているものとする。従って、循環監視パターン3041が存在する。
まず、循環監視パターン判定部677は、循環監視パターンが存在するか判断し(ステップS9005)、監視する同一モジュールの監視結果が一致しているため(ステップS9009でY)、ステップS9014へ制御を移す。図49によると、循環監視パターン3041が存在し、循環監視パターン3041における監視結果は、全て正常(3052、3053、3054)であり、更新モジュール132による更新モジュール131の監視結果(3051)と、更新モジュール133による更新モジュール131の監視結果(3054)とが一致するからである。また、その他に矛盾する監視結果が存在しないからである。
次に、不正モジュール仮定部673は、更新モジュール137を選択し、更新モジュール137を不正な更新モジュールと仮定し、更新モジュール137を識別する識別番号を仮不正更新モジュール群3042に含める(ステップS9014)。
次に、図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が生成される。
こうして、更新モジュール131〜137の全てが仮不正更新モジュール群3045に含まれることになる。従って、仮不正更新モジュール群以外の更新モジュールが存在しないので(ステップS9017でN)、抽出結果判断部676は、更新モジュール137が正常な更新モジュールであると特定する(ステップS9018)。
このようにして、複数の更新モジュールの中から正常である更新モジュール137を論理的な検証方法を用いて効果的に特定できるので、特定した更新モジュール137を用いて保護制御モジュールを安全に更新できる。
4.実施の形態4
ここでは、別の実施の形態について説明する。
4.1 実施の形態3について
上記の実施の形態3のソフトウェア更新システム10cbでは、更新処理における更新モジュールの選択において、改竄されていない正常な更新モジュールを特定している。
しかし、ソフトウェア更新システム10cbにおける正常モジュールを特定する方法においては、正常モジュールの特定を妨害する更新モジュールが存在すると、正常な更新モジュールが特定できないケースがある。
ここで、正常モジュールの特定を妨害する更新モジュールの一例は、その更新モジュールによる監視結果の全てを不正と判定するものである。図57にその一例を示す。
図57は、更新モジュール群130に含まれる更新モジュール131〜137による監視の結果を示している。
この図においては、更新モジュール132は、更新モジュール131、133及び135を監視しており、更新モジュール132による更新モジュール131、133及び135に対する監視結果は、全て不正(4001、4003、4004)である。
また、更新モジュール131は、更新モジュール134を監視し、その監視の結果は、正常(4006)であり、更新モジュール133は、更新モジュール131、135及び136を監視し、その監視の結果は、それぞれ、正常(4005、4012及び4008)であり、更新モジュール134は、更新モジュール136を監視し、その監視の結果は、正常(4007)であり、更新モジュール135は、更新モジュール137を監視し、その監視の結果は、正常(4011)であり、更新モジュール136は、更新モジュール137を監視し、その監視の結果は、正常(4010)であり、更新モジュール137は、更新モジュール133を監視し、その監視の結果は、正常(4009)である。
このケースにおいて、上記の各実施の形態において説明した方法によって、不正モジュールを特定しようとしても、各更新モジュールの監視結果には、矛盾が生じないため、いずれの更新モジュールも不正な更新モジュールと特定されない。
また、このケースにおいて、実施の形態3のソフトウェア更新システム10cbにおいて説明した正常モジュールの特定処理を用いて、図50のステップS9001からS9013までの手順を適用しても、いずれの更新モジュールも不正な更新モジュールと判定されない。
次に、ステップS9014の手順を適用して、1個の更新モジュールを選択し、ステップS9015からS9016の手順を適用して、不正と仮定した更新モジュールを仮不正更新モジュール群に追加する。この場合、図57に示す監視の結果によると、更新モジュール132は仮不正更新モジュール群に含まれない。これは、更新モジュール132が更新モジュール131、133、135への監視を全て不正(4001、4003、4004)と判定しているためである。この結果、図57に示す更新モジュール131〜137を、仮不正更新モジュール群及び不正な更新モジュール群のみに分けることができない。このため、実施の形態3のソフトウェア更新システム10cbにおいて説明した正常モジュールの特定処理を適用できず、いずれの更新モジュールも正常な更新モジュールと特定できない。
このように、ソフトウェア更新システム10cbにおける正常モジュールを特定する方法を用いても、更新モジュール132は、不正な更新モジュールと判定されないし、また、不正仮更新モジュール群に分類されない。このため、このケースに対して、ソフトウェア更新システム10cbにおける正常モジュールを特定する方式を適用して、正常モジュールを特定することができない。
正常な更新モジュールを特定するためには、監視パターンを変更して、新たに監視の結果を受け取り、再度正常モジュール特定処理を行えばよいかもしれない。しかし、監視パターンを変更して再度監視を行ったとしても、更新モジュール132が対象の更新モジュールへの監視において全て不正と判定した場合には、同様に正常な更新モジュールが特定できない。
このように、監視パターンを更新して再度監視を行っても、常に対象の更新モジュールへの監視結果を全て不正とする更新モジュールは、改竄されており、正常モジュールの特定を妨害する更新モジュール(以下、妨害モジュールと呼ぶ。)である。
4.2 改竄監視システム10da
改竄監視システム10daでは、上記の問題を解決するために、全ての監視対象の監視モジュールに対して、不正と判定する監視モジュール(以下、妨害候補モジュールと呼ぶ。)を抽出し、抽出した妨害候補モジュールの中から、真の妨害モジュールを特定し、特定した妨害モジュールを予め排除する。このように、改竄され不正動作を行っている妨害モジュールを予め排除することにより、残りの複数の監視モジュールの中から正常である監視モジュールを効果的に特定することができ、特定した正常な監視モジュールを有効に用いることができる。
別の実施の形態としての改竄監視システム10daについて、図78に示す構成図を用いて、説明する。
改竄監視システム10daは、この図に示すように、情報セキュリティ装置100da及び管理装置200daから構成されている。
情報セキュリティ装置100daは、改竄を監視する複数の監視モジュール131da、132da、133da、134daを有する。
管理装置200daは、情報セキュリティ装置100daから、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信部240daと、受信した前記監視結果を用いて、前記監視モジュールのうちから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定部683daと、複数の妨害候補モジュールが検出された場合に、複数の妨害候補モジュール間で、相互に相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせる更新部250daとから構成されている。受信部240daは、さらに、情報セキュリティ装置100daから新たな監視パターンによる新たな監視結果を受信する。判定部683daは、さらに、受信した新たな監視結果を用いて、前記妨害候補モジュールから、相互に正常と判定し、他の妨害候補モジュールに対して不正と判定する2個の妨害候補モジュールを除く他の妨害候補モジュールを妨害モジュールと特定する。
このようにして、妨害モジュールを特定することができるので、特定された妨害モジュールを無効化すればよい。
ここで、判定部683daは、さらに、受信した新たな監視結果を用いて、2個の妨害候補モジュールのうち、第1の妨害候補モジュールが第2の妨害候補モジュールに対して正常と判定し、第2の妨害候補モジュールが第1の妨害候補モジュールに対して不正と判定する場合に、第1の妨害候補モジュールを、改竄された不正な更新モジュールであると特定してもよい。
4.3 ソフトウェア更新システム10db
別の実施の形態としてのソフトウェア更新システム10dbについて、説明する。
ソフトウェア更新システム10dbでは、実施の形態3における問題を解決するために、全ての監視対象の更新モジュールに対して、不正と判定する更新モジュール(以下、妨害候補モジュールと呼ぶ。)を抽出し、抽出した妨害候補モジュールの中から、真の妨害モジュールを特定し、特定した妨害モジュールを予め排除する。このように、改竄され不正動作を行っている妨害モジュールを予め排除することにより、残りの複数の更新モジュールの中から正常である更新モジュールを効果的に特定することができ、特定した正常な更新モジュールを用いて、保護制御モジュールを安全に更新できる。
なお、ソフトウェア更新システム10dbでは、実施の形態2及び実施の形態3と同様に更新モジュールが7個の場合について、説明する。しかし、更新モジュールは、8個以上であってもよいし、6個以下であってもよい。
(1)ソフトウェア更新システム10dbの構成
ソフトウェア更新システム10dbは、図53に示すように、更新サーバ200db及び機器100dbから構成されている。機器100dbは、実施の形態1の機器100と同一の構成を有している。また、更新サーバ200dbは、実施の形態1の更新サーバ200と類似の構成を有しており、判断部210db、更新用ソフトウェア配布部220、モジュール無効化部230、通信部240及び監視パターン更新部250から構成されている。
更新用ソフトウェア配布部220、モジュール無効化部230及び通信部240は、更新サーバ200が有する更新用ソフトウェア配布部220、モジュール無効化部230及び通信部240と同一である。判断部210dbは、ソフトウェア更新システム10cbの更新サーバ200cbが有する判断部210cbと類似の構成を有している。
ここでは、判断部210db及び監視パターン更新部250を中心として説明する。
(2)監視パターン更新部250の構成
監視パターン更新部250は、機器100db内部の更新モジュール群130の監視パターンを更新する場合に、判断部210dbによる監視パターン更新の指示に応じて、更新モジュール群130内の各更新モジュールの監視パターンを更新するために、更新のための監視パターンを生成し、生成した監視パターンを各更新モジュールへ送信する。
監視パターン更新部250は、図54に示すように、受信部901、送信部902、監視パターン生成部903、監視パターン分割部904及び制御部905から構成されている。
(a)受信部901
受信部901は、判断部210dbから、監視パターンの生成を示す生成指示及び指示した時点での更新モジュールリストを受信する。更新モジュールリストは、機器100dbが有する更新モジュール群130に含まれる全ての更新モジュールをそれぞれ識別する識別番号を含んでいる。また、妨害候補モジュールが存在する場合には、全ての妨害候補モジュールを識別する識別番号を受信する。
受信部901は、受信した監視パターンの生成指示を制御部905へ出力する。また、受信した更新モジュールリストを、制御部905を介して、監視パターン生成部903へ出力する。また、妨害候補モジュールを識別する識別番号を受信した場合には、受信した識別番号を、制御部905を介して、監視パターン生成部903へ出力する。
(b)監視パターン生成部903
監視パターン生成部903は、受信部901から、制御部905を介して、更新モジュールリストを受信する。また、妨害候補モジュールが存在する場合には、全ての妨害候補モジュールを識別する識別番号を受信する。
更新モジュールリストを受信すると、監視パターン生成部903は、受信した更新モジュールリストを用いて、どの更新モジュールがどの更新モジュールを監視するかを決定し、機器100dbが有する更新モジュール群130における全体の監視パターンを生成する。
特に、監視パターン生成部903は、受信した妨害候補モジュールを識別する識別番号を用いて、複数の妨害候補モジュールの各々が、他の全ての妨害候補モジュールを監視するように、つまり、複数の妨害候補モジュール間での相互監視をするように、全体の監視パターンを生成する。
なお、複数の妨害候補モジュール間での相互監視の監視パターンの具体例については、後述する。
なお、監視パターン生成部903は、全体の監視パターンとして、例えば、すべての更新モジュールが他のすべての更新モジュールを監視するように、決定してもよい。
監視パターン生成部903は、生成した全体の監視パターンを監視パターン分割部904へ出力する。
(c)監視パターン分割部904
監視パターン分割部904は、監視パターン生成部903から、全体の監視パターンを受信する。
全体の監視パターンを受信すると、監視パターン分割部904は、受信した全体の監視パターンを、それぞれの更新モジュール毎の監視パターンに分割する。次に、分割して得られた更新モジュール毎の監視パターンを、更新用の監視パターンとして、制御部905、送信部902、通信部240及びネットワーク5を介して、機器100dbのそれぞれの更新モジュールに送信する。
(d)送信部902
送信部902は、通信部240及びネットワーク5を介して、機器100dbへ更新用の更新モジュール毎の監視パターンを送信する。また、判断部210dbへ更新用の監視パターンの生成及び送信の終了を通知する。
(e)制御部905
制御部905は、受信部901から、監視パターンの生成指示を受信する。
監視パターンの生成指示を受信すると、制御部905は、監視パターン生成部903及び監視パターン分割部904に対して、機器100dbが有する更新モジュール群130における全体の監視パターンを生成し、更新用の更新モジュール毎の監視パターンを生成し、機器100dbへ更新用の更新モジュール毎の監視パターンを送信して、機器100dbにおいて監視パターンの更新処理をさせるように、制御する。
(3)判断部210dbの構成
判断部210dbは、図55に示すように、受信部601、送信部602、指示生成部603、モジュール特定部604db及び循環検出部606から構成されている。また、モジュール特定部604dbは、不正モジュール特定部605、正常モジュール特定部607及び妨害モジュール特定部608から構成されている。
受信部601、送信部602、指示生成部603及び循環検出部606は、それぞれ、ソフトウェア更新システム10cbの更新サーバ200cbの判断部210cbが有する受信部601、送信部602、指示生成部603及び循環検出部606と同一である。
指示生成部603は、監視パターンの生成を示す生成指示を、送信部602を介して、監視パターン更新部250へ送信する。
また、不正モジュール特定部605及び正常モジュール特定部607は、それぞれ、ソフトウェア更新システム10cbの更新サーバ200cbの判断部210cbのモジュール特定部604cbが有する不正モジュール特定部605及び正常モジュール特定部607と同一である。
次に、妨害モジュール特定部608について、説明する。
(4)妨害モジュール特定部608の構成
妨害モジュール特定部608は、改竄され、不正動作を行っている可能性のある更新モジュールがいるか否かを判断する。
妨害モジュール特定部608は、図56に示すように、特定指示受信部681、特定結果送信部682、検証結果判定部683、監視パターン更新指示生成部684及び検証結果受信部685から構成されている。
(a)特定指示受信部681
特定指示受信部681は、指示生成部603から、正常モジュールの特定を妨害する更新モジュールを特定する指示を示す妨害特定指示及び機器100dbにおける更新モジュールの監視の結果を受信し、受信した監視の結果を検証結果判定部683へ送信する。
(b)検証結果受信部685
検証結果受信部685は、指示生成部603から、機器100dbにおいて、更新モジュール群130の監視パターンが更新された後の監視の結果を受信し、受信した更新後の監視の結果を検証結果判定部683へ送信する。
(c)検証結果判定部683
検証結果判定部683は、特定指示受信部681から監視の結果を受信し、受信した監視の結果を用いて、正常モジュールの特定を妨害する更新モジュールが存在する可能性があるか否かを判断する。つまり、妨害候補モジュールが存在するか否かを判断する。妨害候補モジュールは、その全ての監視対象の更新モジュールに対して、不正と判断する更新モジュールである。なお、妨害候補モジュールが存在するか否かの判断の詳細ついては、後述する。
妨害候補モジュールが存在しないと判断した場合、検証結果判定部683は、妨害候補モジュールが存在しない旨を特定結果送信部682へ送信する。
妨害候補モジュールが存在すると判断した場合、検証結果判定部683は、妨害候補モジュールが、真に妨害モジュールであるか否かを判断するため、監視パターン更新指示生成部684へ、全ての候補妨害モジュールの識別番号を送信し、監視パターンの更新を依頼する。これは、妨害候補モジュールが、不正に改竄され正常モジュールの特定を妨害しているのか、又は、正常な更新モジュールが不正な更新モジュールに対して、正常に監視しているのかを判断するためである。詳細については、後述する。
機器100dbにおいて、更新モジュール群130の監視パターンが更新された後、検証結果判定部683は、検証結果受信部685から、監視パターンの更新後の監視の結果を受信し、不正の可能性があるとされた更新モジュールが、不正な更新モジュールであるか否かを判断する。判断した結果を特定結果送信部682に送信し、更新モジュール群130の監視パターンを更新するため、監視パターン更新指示生成部684へ監視パターンの更新を依頼する。
(d)監視パターン更新指示生成部684
監視パターン更新指示生成部684は、検証結果判定部683から、不正の可能性があるとされた更新モジュールの識別情報と監視パターンの更新依頼を受信し、受信した識別情報により識別される各更新モジュールが、自更新モジュール以外の全ての更新モジュールを監視する監視パターンになるように、指示生成部603へ監視パターンの更新指示を送信する。また、監視パターンの更新の依頼のみを受信した場合は、指示生成部603へ監視パターンの更新指示を送信する。
(e)特定結果送信部682
特定結果送信部682は、検証結果判定部683から正常モジュールの特定を妨害する更新モジュールの特定結果を受信し、特定結果を指示生成部603に送信する。
(4)ソフトウェア更新システム10dbにおける動作
ここでは、ソフトウェア更新システム10dbにおける動作について、図58に示す動作図を用いて、説明する。特に、妨害モジュール特定処理から正常モジュール特定処理までの処理の遷移について説明する。
正常な更新モジュールを特定するために、更新モジュール群130内の複数の更新モジュールが相互に監視を行い、機器100dbは、監視の結果を更新サーバ200dbへ送信する。更新サーバ200dbは、監視の結果を受信し、監視対象の全ての更新モジュールへの監視結果を全て不正とする更新モジュール(上述したように、このような更新モジュールを妨害候補モジュールと呼ぶ。)が存在するか否かを判断する(ステップS10001)。妨害候補モジュールが存在する場合に、更新サーバ200dbは、更新モジュール群130から、全ての妨害候補モジュールを抽出する(ステップS10002)。次に、更新サーバ200dbは、抽出した妨害候補モジュールが妨害モジュールであるか否かを判断するため、各妨害候補モジュールが他の全ての妨害候補モジュールを監視するように、新たな監視パターンを生成する。次に、機器100dbの各更新モジュールに対して新たな監視パターンを送信し、新たな監視パターンに更新するように、機器100dbを制御する(ステップS10003)。
機器100dbの各更新モジュールは、新たな監視パターンを用いて、相互に監視を行う。特に、各妨害候補モジュールは、他の全ての妨害候補モジュールの監視を行う。更新サーバ200dbは、機器100dbから、新たな監視パターンによる監視の結果を受信し、受信した監視の結果を用いて、妨害候補モジュールが妨害モジュールであるか否かを判断する。妨害モジュールは、常に、監視対象の全ての更新モジュールに対して不正と判定するが、正常な更新モジュールは、正常な更新モジュールに対して正常と判定する。このため、妨害候補モジュール群内に正常な更新モジュールが複数存在している場合、正常な妨害候補モジュール間での相互監視の結果は正常となる。一方、妨害候補モジュールによる、正常な妨害候補モジュール以外の妨害候補モジュールへの監視結果は全て不正となる。よって、妨害候補モジュールが妨害モジュールであるかの判断においては、(i )2個の妨害候補モジュール間の相互監視の結果が正常であり、さらに、(ii)相互に正常と判定する当該2個の妨害候補モジュールにより、当該2個の妨害候補モジュール以外の妨害候補モジュールへの監視において、不正と判定する場合、当該2個の妨害候補モジュールは、妨害モジュールではないと決定する。この条件を満たさない妨害候補モジュールは、自妨害候補モジュール以外の妨害候補モジュールに対して、常に不正と判定するため、妨害モジュールと特定する(ステップS10004)。
更新サーバ200dbは、上記の条件を満たす妨害候補モジュールが存在する場合に、条件を満たさない妨害候補モジュールを抽出して、妨害モジュールと特定し(ステップS10005)、モジュール無効化部230は、特定した妨害モジュールを無効化するように、機器100dbに対して指示を出力する(ステップS10006)。
また、更新サーバ200dbのモジュール無効化部230は、上記の条件を満たす妨害候補モジュールが存在しない場合には、全ての妨害候補モジュールが妨害モジュールであるので、特定した妨害モジュールを無効化するように、機器100dbに対して指示を出力する(ステップS10006)。
次に、更新サーバ200dbは、全ての更新モジュールの監視パターンを更新し(ステップS10007)、更新モジュール全体で相互監視を行う(ステップS10001)。更新サーバ200dbは、更新モジュール群130による監視の結果を受信し、妨害候補モジュールが存在しない場合には、正常モジュール特定処理を実行し(ステップS10008)、正常な更新モジュールを特定する(ステップS10009)。
以上説明したように、正常モジュールの特定を妨害する妨害モジュールを無効化して排除することにより、正常モジュール特定処理において、正常な更新モジュールを特定するための効率が向上する。
上記において、ステップS10001からステップS10006までが妨害モジュール特定処理である。
(5)妨害モジュール特定処理及び正常モジュール特定処理のシーケンス
ここでは、妨害モジュール特定処理及び正常モジュール特定処理のシーケンスについて、図59〜図60に示すシーケンス図を用いて説明する。
判断部210dbの指示生成部603は、監視パターン更新部250へ監視パターンの生成指示を送信し、監視パターン更新部250は、監視パターン生成指示を受信する(ステップS11001)。監視パターン更新部250の監視パターン生成部903は、全体の新たな監視パターンを生成し、監視パターン分割部904は、全体の新たな監視パターンを更新モジュール毎の監視パターンに分割する(ステップS11002)。監視パターン更新部250は、通信部240及びネットワーク5を介して、機器100dbの各更新モジュールへ、更新モジュール毎の監視パターンを送信し、機器100dbの更新モジュール群130内の各更新モジュールは、更新モジュール毎の監視パターンを受信する(ステップS11003)。
更新モジュール群130内の各更新モジュールは、古い監視パターンを受信した新たな監視パターンに置き換えることにより、監視パターンを更新する(ステップS11004)。新たな監視パターンへ更新後、更新モジュール群130内の各更新モジュールは、新たな監視パターンにより、監視処理を実行し、実施の形態1の相互監視処理と同様に監視パターンに従って、改竄検出処理を行う(ステップS11005)。なお、実施の形態1の改竄された更新モジュールがあるか否かの判断(図19のステップS5004)は行わない。次に、機器100dbは、監視の結果を、ネットワーク5及び通信部240を介して、判断部210dbへ送信し、判断部210dbは、監視の結果を受信する(ステップS11006)。
判断部210dbは、妨害モジュールの特定処理を行う(ステップS11007)。妨害モジュール特定処理の詳細については、後述する。妨害モジュール処理の特定において、妨害モジュールを特定した場合、判断部210dbは、特定した妨害モジュールを識別する識別番号とともに、モジュール無効化部230へ無効化指示を送信する(ステップS11008)。モジュール無効化部230は、特定した妨害モジュールを識別する識別番号とともに、更新モジュール群130内の更新モジュールへ無効化の依頼を送信する(ステップS11009)。無効化の依頼を受信した更新モジュールは、アクセス制御モジュール140と連携して、受信した妨害モジュールを識別する識別番号により、妨害モジュールを無効化する(ステップS11010)。なお、無効化処理の詳細は、実施の形態1の無効化処理と同様であるので省略する。妨害モジュールの特定処理において、判断部210dbは、監視パターンの生成指示を送信し、監視パターン更新部250は、監視パターンの生成指示を受信する(ステップS11011)。
監視パターン更新部250の監視パターン生成部903は、受信した監視パターンの生成指示に基づいて、全体の新たな監視パターンを生成し、監視パターン分割部904は、全体の新たな監視パターンを更新モジュール毎の監視パターンに分割する(ステップS11012)。監視パターン更新部250は、通信部240及びネットワーク5を介して、機器100dbの各更新モジュールへ、更新モジュール毎の監視パターンを送信し、機器100dbの更新モジュール群130内の各更新モジュールは、更新モジュール毎の監視パターンを受信する(ステップS11013)。
機器100dbの更新モジュール群130内の各更新モジュールは、新しい監視パターンへ更新する(ステップS11014)。新しい監視パターンへ更新後、各更新モジュールは、相互監視処理を実行する(ステップS11015)。機器100dbは、監視の結果を送信し、判断部210dbは、監視の結果を受信する(ステップS11016)。
判断部210dbは、正常モジュールの特定処理を行う(ステップS11017)。なお、正常モジュールの特定処理の詳細は、実施の形態3と同様であるので省略する。
(6)相互監視の監視パターンの一例
相互監視の監視パターンの一例について、図65に示す相互監視の監視パターンの例を用いて、説明する。
4個の妨害候補モジュールにより相互に監視をする場合の例を図65に示している。この図に示すように、更新モジュール131、132、136及び137が、それぞれ、妨害候補モジュールとして抽出されたものとする。
また、更新モジュール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を用いて説明する。
なお、図65において説明したように、一例として、妨害候補モジュールである更新モジュール131、132、136及び137が、それぞれ、相互に監視している。
(a)相互監視の結果の第1の例
図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第1の例を図66に示す。
図66に示す第1の例においては、全ての監視の結果が不正である。つまり、更新モジュール131、132、136及び137は、それぞれ、監視相手の更新モジュールを全て不正と判定している。
(b)相互監視の結果の第2の例
図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第2の例を図67に示す。
図67に示す第2の例においては、更新モジュール131による更新モジュール132に対する監視の結果(4051)を除いて、その他の全ての監視の結果が不正である。
つまり、更新モジュール131は、更新モジュール132に対して正常(4051)と判定し、更新モジュール132は、更新モジュール131に対して不正と判定している。また、更新モジュール131及び137の間の相互監視、更新モジュール132及び137の間の相互監視、更新モジュール132及び136の間の相互監視、更新モジュール131及び136の間の相互監視及び更新モジュール136及び137の間の相互監視において、不正と判定している。
(c)相互監視の結果の第3の例
図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第3の例を図68に示す。
図68に示す第3の例においては、更新モジュール131による更新モジュール132に対する監視の結果(4061)、更新モジュール131による更新モジュール137に対する監視の結果(4063)及び更新モジュール137による更新モジュール131に対する監視の結果(4062)を除いて、その他の全ての監視の結果が不正である。
つまり、更新モジュール131は、更新モジュール132に対して正常(4061)と判定し、更新モジュール132は、更新モジュール131に対して不正と判定している。また、更新モジュール131は、更新モジュール137に対して正常(4063)と判定し、更新モジュール137は、更新モジュール131に対して正常(4062)と判定している。さらに、更新モジュール132及び137の間の相互監視、更新モジュール132及び136の間の相互監視、更新モジュール131及び136の間の相互監視及び更新モジュール136及び137の間の相互監視において、不正と判定している。
(d)相互監視の結果の第4の例
図65に示す相互監視の監視パターンの例を用いた場合の相互監視の結果の第4の例を図69に示す。
図69に示す第4の例においては、更新モジュール131による更新モジュール137に対する監視の結果(4072)及び更新モジュール137による更新モジュール131に対する監視の結果(4072)を除いて、その他の全ての監視の結果が不正である。
つまり、更新モジュール131は、更新モジュール137に対して正常(4072)と判定し、更新モジュール137は、更新モジュール131に対して正常(4071)と判定している。また、更新モジュール131及び132の間の相互監視、更新モジュール132及び137の間の相互監視、更新モジュール132及び136の間の相互監視、更新モジュール131及び136の間の相互監視及び更新モジュール136及び137の間の相互監視において、不正と判定している。
(8)妨害モジュールの特定処理の詳細な動作
次に、妨害モジュールの特定処理の動作について、図61〜図63に示すフローチャートを用いて、説明する。
判断部210dbは、以下に示すように、更新モジュール群130の各更新モジュールによる監視の結果をもとに、妨害モジュールの特定処理を行う。
検証結果判定部683は、全ての監視対象の更新モジュールに対する監視結果を全て不正と判定する更新モジュールが存在するか否か、言い換えると、妨害候補モジュールが存在するか否かを判断する(ステップS12001)。
妨害候補モジュールが存在しない場合には(ステップS12001でN)、検証結果判定部683は、妨害モジュールの特定処理を終了する。
妨害候補モジュールが存在する場合には(ステップS12001でY)、検証結果判定部683は、全ての妨害候補モジュールをそれぞれ識別する識別番号を監視パターン更新部250へ出力する。監視パターン更新部250は、受信した全ての妨害候補モジュールをそれぞれ識別する識別番号を用いて、全ての妨害候補モジュールが相互に監視をするように、更新モジュール毎の監視パターンを生成する(ステップS12002)。
一例として、更新モジュール群130のうちの、更新モジュール131、132、136及び137が、それぞれ、全ての監視の対象である更新モジュールに対して、不正と判定しているなら、更新モジュール131、132、136及び137は、それぞれ、妨害候補モジュールであり、更新モジュール131、132、136及び137が、相互に監視するように、監視パターンが生成される。この場合の監視パターンを図65に示している。
次に、機器100dbが有する更新モジュールが相互監視を実行するように、生成した監視パターンを機器100dbへ送信し、機器100dbが有する更新モジュールに相互監視を実行させる。機器100dbは、監視パターンを受信する。更新モジュール群130の各更新モジュールは、受信した監視パターンにより、古い監視パターンを更新し、新たに更新された監視パターンを用いて、相互に監視を行う(ステップS12003)。機器100dbは、その監視の結果を、更新サーバ200dbへ送信する。更新サーバ200dbの判断部210dbの妨害モジュール特定部608の検証結果判定部683は、相互監視の結果を受信する(ステップS12004)。
次に、検証結果判定部683は、妨害候補モジュール間の監視の結果に少なくとも1個の正常が存在するかを判断する(ステップS12005)。
検証結果判定部683は、妨害候補モジュール間の全ての相互監視の結果が全て不正であり、相互監視の結果に全く正常が存在しない場合(ステップS12005でN)には、全ての妨害候補モジュールを妨害モジュールと特定する(ステップS12006)。図66に示す例の場合には、妨害候補モジュールである更新モジュール131、132、136及び137において、全ての相互監視の結果が全て不正(図66において、「×」)であり、相互監視の結果に正常(「○」)が存在しないので、検証結果判定部683は、更新モジュール131、132、136及び137を妨害モジュールと特定する。次に、ステップS12011へ制御を移す。
妨害候補モジュールの監視の結果に少なくとも1個の正常が存在する場合(ステップS12005でY)、検証結果判定部683は、さらに、相互に正常と判定する2個の妨害候補モジュールが存在するかを判断する(ステップS12007)。
図67、図68及び図69に示す例の場合には、それぞれ、妨害候補モジュールの監視の結果に少なくとも1個の正常が存在する。また、図67に示す例の場合には、相互に正常と判定する2個の妨害候補モジュールは存在しない。さらに、図68に示す例の場合には、更新モジュール131及び137は、相互に相手を正常と判定する妨害候補モジュールである。また、図69に示す例の場合にも、更新モジュール131及び137は、相互に相手を正常と判定する妨害候補モジュールである。
従って、図67に示す例の場合には、ステップS12007の条件を満たさない。一方、図68及び図69に示す例の場合には、ステップS12007の条件を満たしている。
相互に正常と判定する2個の妨害候補モジュールが存在しないと判断される場合(ステップS12007でN)、図67の例に示す更新モジュール131のように、監視結果を正常(4051「○」)と判定する妨害候補モジュールが存在すると、更新モジュール131による更新モジュール132に対する判定結果は、正常であるが、更新モジュール132による更新モジュール131に対する判定結果は、不正である。このように、監視結果に矛盾が発生する。よって、検証結果判定部683は、更新モジュール131を、不正な更新モジュールと特定する。ここで説明したケースは、相互に監視を行う2個の妨害候補モジュールのうち、第1の妨害候補モジュールが、第2の妨害候補モジュールに対して、正常と判定するが、第2の妨害候補モジュールが、第1の妨害候補モジュールに対して、不正と判定する場合である。このような場合に、相手の妨害候補モジュールを正常と判定する妨害候補モジュールを不正な更新モジュールと特定する(ステップS12008a)。
次に、判断部210dbは、不正な更新モジュールと特定した更新モジュールを無効化するため、無効化指示を送信する(ステップS12008b)。
次に、図67の例に示す場合において、更新モジュール132、136及び137は、妨害候補モジュールに対する全ての監視結果を不正(「×」)と判定しているため、検証結果判定部683は、更新モジュール132、136及び137を妨害モジュールであると特定する。つまり、検証結果判定部683は、全ての監視対象の妨害候補モジュールに対する全ての監視結果を不正と判定する妨害候補モジュールを、妨害モジュールと特定する(ステップS12008c)。
次に、ステップS12011へ制御を移す。
相互に正常と判定する2個の妨害候補モジュールが存在する場合(ステップS12007でY)、検証結果判定部683は、さらに、相互に正常(「○」)と判定する妨害候補モジュール群が、監視結果を全て不正とする妨害候補モジュール群の中で、相互に正常(「○」)と判定する妨害候補モジュール群以外の妨害候補モジュールへ不正(「×」)と判定しているかを判断する(ステップS12009)。相互に正常(「○」)と判定する更新モジュール群が、監視結果を全て不正とする更新モジュール群の中で更新モジュール群以外の更新モジュールへ不正(「×」)と判定している場合(ステップS12009でY)、図68に示す例の場合のように、更新モジュール131と更新モジュール137が相互に正常と(「○」)と判定しているが、更新モジュール131と更新モジュール132の相互監視の結果から、更新モジュール131の監視結果に矛盾が発生する(更新モジュール132は、更新モジュール131を不正と判定し、更新モジュール137は、更新モジュール131を正常と判定している)。さらに、更新モジュール137の監視結果にも矛盾が発生する。よって、更新モジュール131と更新モジュール137を不正な更新モジュールと特定する(ステップS12010a)。
次に、判断部210dbは、不正な更新モジュールと特定した更新モジュール131と更新モジュール137を無効化するため、無効化指示を送信する(ステップS12010b)。
次に、検証結果判定部683は、更新モジュール132及び136は、常に全ての監視結果を不正(「×」)と判定しているため、更新モジュール132及び136を妨害モジュールであると特定する(ステップS12010c)。
次に、検証結果判定部683は、妨害候補モジュールが相互に正常(「○」)と判定する妨害候補モジュール群以外の更新モジュールが存在するかを判断する。つまり、妨害モジュールが存在するか否かを判断する(ステップS12011)。
図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を更新するとしているが、これに限定するものではない。
更新モジュールやアプリケーションプログラム等、保護制御モジュール120以外のモジュールを更新するとしてもよい。以下に、更新モジュール133を更新する場合を例に挙げ、更新モジュールの更新処理について説明する。
更新モジュールの更新処理では、保護制御モジュールを更新する場合と同様に、更新用ソフトウェア配布部220は、更新モジュール133を更新するための更新用更新モジュールを複数の鍵を用いて多重に暗号化し、更新モジュール群130に含まれる更新モジュール(更新モジュール133を除く)を送信先として送信する。更新モジュール群130に含まれる更新モジュール(更新モジュール133を除く)は、更新モジュール133を更新用更新モジュールに更新する。
このとき、多重に暗号化された更新用更新モジュールを復号するための複数の鍵を、更新モジュール群130に含まれる更新モジュールへ送信するタイミングを更新用ソフトウェア配布部220が制御することにより、攻撃者が暗号化されていない更新用更新モジュールを入手することを不可能にする。
(2)上記各実施の形態では、各更新モジュールは、受信部301、送信部302、制御部303、更新部304、検証部305、MAC値生成部306、MAC値テーブル更新部307、分散情報保持部308を含んで構成されるとしている。しかし、これに限定するものではない。
各更新モジュールは、監視処理に必要な構成要素(制御部303、検証部305)のみで構成されるとしてもよい。また、各更新モジュールは、更新処理に必要な構成要素(制御部303、更新部304)のみで構成されるとしてもよい。また、各更新モジュールは、無効化処理に必要な構成要素(制御部303、更新部304)のみで構成されるとしてもよい。
さらに、各更新モジュールは、上記の組み合わせから構成されるとしてもよい。
この場合に、更新モジュール群130に含まれる複数の更新モジュールが、全体として、監視処理と更新処理に必要な構成要素を含むように、構成されていればよい。
(3)上記各実施の形態では、各更新モジュールの検証部305は、他の更新モジュールや保護制御モジュール120の改竄チェックを実行するとしているが、改竄チェックの対象は、当該モジュール全体に限定するものではない。
改竄チェックの対象は、更新モジュール内の一部分、例えば、更新モジュールに含まれる特定の機能や関数、鍵等のデータであってもよい。また、一度に改竄対象全てを改竄チェックするのではなく、改竄対象の一部を改竄チェックするだけでもよい。このとき、改竄対象を一定のサイズに分割して得られた部分毎に改竄チェックしてもよいし、機能や関数単位で分割して得られた部分毎に改竄チェックしてもよい。さらに、改竄チェックの度に、改竄対象の複数の部分から一の部分を順番に選択し、選択した部分に対して改竄チェックするとしてもよい。また、改竄チェックの度に改竄チェックする部分をランダムに決定してもよい。また、他のモジュールや機器100の外部の装置から、どの部分を改竄チェックするかの指示が与えられ、この指示により示される部分に対して改竄チェックをしてもよい。
(4)上記各実施の形態では、各更新モジュールや保護制御モジュール120は、耐タンパ化された領域等、攻撃者による攻撃から保護されている領域で動作するとしてもよい。
監視処理に必要な構成要素のみで構成される更新モジュールが、攻撃者による攻撃から保護されている領域で動作する場合、他の更新モジュールや判断部210は、その保護された領域に存在する更新モジュールから、他の更新モジュールや保護制御モジュール120が攻撃されたことを検知した旨の通知を受けたときに、その通知を無条件に受け入れ、更新処理や無効化処理を実施してもよいし、その通知を他のモジュールからの通知よりも重要な通知として扱い、更新処理や無効化処理の判断を行ってもよい。
また、保護制御モジュールが保護モードで動作し、つまり、耐タンパ化された領域等に存在して動作する。また、更新モジュールが通常モードで動作し、つまり、耐タンパ化されていない領域等に存在して動作するとしてもよい。
(5)上記各実施の形態では、モジュール無効化部230は、更新サーバ内に存在し、アクセス制御モジュール140は、機器内に存在するとしているが、これに限定するものではない。
モジュール無効化部230及びアクセス制御モジュール140は、それぞれ、機器内部に存在してもよいし、更新サーバに存在してもよい。また、各更新モジュール内に存在してもよい。
また、モジュール無効化部230とアクセス制御モジュール140とは、別々のモジュールではなく、機器内部において、又は更新サーバ内部において、1つのモジュールであってもよい。
モジュール無効化部230とアクセス制御モジュール140とが1つのモジュールである場合には、更新モジュールへアクセス情報取得鍵と暗号化アクセス情報とを送信するのではなく、アクセス情報を、無効化を実行する更新モジュールへ、直接送信してもよい。
さらに、モジュール無効化部230やアクセス制御モジュール140が機器内に存在する場合には、耐タンパ化などにより、攻撃から保護される領域に存在するとしてもよい。
(6)各実施の形態では、更新サーバは、判断部、更新用ソフトウェア配布部、モジュール無効化部、通信部及び監視パターン更新部などから構成されるとしているが、これに限定するものではない。判断部、更新用ソフトウェア配布部、モジュール無効化部、通信部及び監視パターン更新部などが1個のモジュールにより構成されているとしてもよい。また、上記の部の組み合わせから構成されるとしてもよい。
(7)上記各実施の形態では、ソフトウェア更新システムは、機器の工場製造時に初期設定処理を行うとしているが、これに限定するものではない。販売後など工場出荷後のどこかで初期化処理を実施してもよい。また、初期化処理は1度だけでなく、2度以上実施してもよい。
(8)上記各実施の形態では、初期設定処理において、検証用証明書及び認証鍵証明書は、更新用ソフトウェア配布部220が保持する署名秘密鍵を用いて生成された証明書であるとしたが、これに限定するものではなく、それぞれ別の鍵を用いて生成されてもよいし、更新用ソフトウェア配布部220以外の証明書発行装置により発行された証明書でもよい。
(9)上記各実施の形態では、初期設定処理や次ラウンド準備処理の動作として、暗復号鍵から生成する分散情報を更新モジュール13xへ送信し、更新モジュール13xが分散情報を保持するとしているが、これに限定するものではない。
更新モジュールの代わりに、アプリケーションプログラムが分散情報を保持するとしてもよいし、更新モジュール13xとアプリケーションプログラムとが分散情報を保持するとしてもよい。
(10)上記各実施の形態では、検知処理の動作として、更新モジュール13xが保護制御モジュール120の改竄検出を行うときに、検証鍵を使用して計算したMAC値を用いて改竄検出処理を行うとしている、これに限定するものではない。
保護制御モジュール120の改竄検出用証明書を用いて検証するとしてもよい。また、MAC値や証明書のようにハッシュ値を利用した改竄検証を行うのではなく、ログをチェックすることで改竄検証を行うとしてもよい。
(11)上記各実施の形態では、検知処理の動作として、各更新モジュールが保護制御モジュール120の改竄を検出した場合、判断部210と他の更新モジュールへ通知するとしたが、これに限定するものではない。
判断部210と他の更新モジュールのうち、どれか1つ以上のモジュールに通知するとしてもよい。また、保護制御モジュール120の改竄を検出した場合、更新モジュールを停止するとしてもよいし、機器100や保護制御モジュール120を停止するとしてもよい。更に、改竄された保護制御モジュールを消去するとしてもよい。
さらに、各更新モジュールが保護制御モジュール120の改竄を検出しなかった場合、判断部210へ通知を行わないとしているが、これに限定するものではない。改竄検出処理を実施した結果として、改竄を検出しなかった旨を通知するとしてもよい。
(12)上記各実施の形態では、検知処理の動作として、各更新モジュールは、他の更新モジュールに保護制御モジュールの改竄検出結果を送信しないとしているが、それぞれの更新モジュールで検出結果を共有するとしてもよい。
また、検出結果を共有しない更新モジュールがあった場合に、当該更新モジュールを不正な更新モジュールと判断して、無効化するとしてもよい。
(13)上記各実施の形態では、解析・判断処理の動作として、改竄情報に基づいて保護制御モジュール120を更新するかどうか判定するとしているが、これに限定するものではない。
改竄されていると通知してきた更新モジュールの数によって更新するかどうかを判定してもよい。例えば、改竄されていると通知してきた更新モジュールの数が、所定の数よりも多いか等しい場合に、更新すると判定し、少ない場合に更新しないと判定してもよい。ここで、所定の数は、更新モジュール群に含まれる全ての更新モジュールの数である。
また、解析・判断時の動作として、保護制御モジュール120を更新するか否か、及び保護制御モジュール120を無効化するか否かを判断したが、これに限定するものではなく、機器100を停止するか否かを判断するとしてもよい。
(14)上記各実施の形態では、相互認証処理の動作として、各更新モジュールが、更新用ソフトウェア配布部220を認証し、その後、更新用ソフトウェア配布部220が各更新モジュールを認証するとしているが、これに限定するものではない。
更新用ソフトウェア配布部220が各更新モジュールを認証し、その後、各更新モジュールが、更新用ソフトウェア配布部220を認証してもよい。また、各更新モジュールと更新用ソフトウェア配布部220とが個別に認証処理を行ってもよい。
(15)上記各実施の形態では、相互認証処理の動作として、更新用ソフトウェア配布部220が各更新モジュールを認証する処理において、チャレンジデータをそれぞれの更新モジュールで異なる値にするとしているが、これに限定するものではない。チャレンジデータとして全ての更新モジュールで同じ値としてもよいし、全ての更新モジュールを複数のグループに分け、チャレンジデータをそれぞれのグループで異なる値にしてもよい。
(16)上記各実施の形態では、相互認証処理の動作として、各更新モジュールが、更新用ソフトウェア配布部220を認証する処理において、各更新モジュールが個別に更新用ソフトウェア配布部220を認証するとしているが、これに限定するものではない。
署名検証した結果を他の更新モジュールへ通知し、更新モジュール間で検証結果を共有し、自更新モジュールの認証結果と他の更新モジュールから受信した認証結果とから、更新用ソフトウェア配布部220が正当かどうかをそれぞれ判定してもよい。
判定方法としては、例えば、一定数(例えば、過半数等)の更新モジュールが認証に成功した場合には正当であると判定し、そうでない場合には、正当ではないと判定する方法がある。
(17)上記各実施の形態では、相互認証処理の動作として、更新サーバ200は署名秘密鍵と署名公開鍵とを使用して相互認証処理を実施するとしているが、これに限定するものではない。署名秘密鍵と署名公開鍵とは別に、相互認証に使用する認証鍵対を用いるとしてもよい。
このとき、更新サーバの認証鍵対のうちの認証公開鍵は、予め1個の更新モジュールが保持するとしてもよいし、相互認証処理時に更新サーバから当該更新モジュールへ送信するとしてもよい。
(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では、一方向に循環検証する結果が全て正常である場合、循環監視パターン内の複数の更新モジュールを一群として扱うとしているが、これに限定するものではない。一組の更新モジュールが相互に監視しており、検証結果がともに正常である場合においても、一組の更新モジュールを一群として扱うとしてもよい。このとき、相互に監視している更新モジュールによる同一の更新モジュールへの検証結果が一致しない場合、一組の更新モジュールは全て不正な更新モジュールと特定する。
図70に示す監視結果の例を用いて説明する。更新モジュール131と更新モジュール132の一組の更新モジュールが相互に監視しており、検証結果がともに正常(3101、3102)である。このとき、更新モジュール131による更新モジュール133に対する検証結果(3103)と、更新モジュール132による更新モジュール133に対する検証結果(3104)が一致しないため、更新モジュール131と更新モジュール132は、不正な更新モジュールであると特定される。
(23)上記実施の形態2や実施の形態3では、循環監視パターンの選択において、循環のサイズをもとに、選択をしているが、これに限定するものではない。
循環監視パターン内の更新モジュールが同一の更新モジュールを検証する数が多い順に選択してもよい。例えば、第1、第2及び第3の循環監視パターンが存在し、第1の循環監視パターンにおいて、20個の更新モジュールにより、第1の更新モジュールに対する監視がされ、第2の循環監視パターンにおいて、10個の更新モジュールにより、第2の更新モジュールに対する監視がされ、第3の循環監視パターンにおいて、5個の更新モジュールにより、第3の更新モジュールに対する監視がされるとする。この場合に、第1、第2及び第3の循環監視パターンの順に、循環監視パターンを選択する。
このようにすることにより、同一の更新モジュールを検証する数が多いほど矛盾があるか否かの検証を多く行うことができるため、矛盾が存在する場合、矛盾を速く見つけやすくなる。その結果、不正な更新モジュールを速く特定することができ、不正な更新モジュールを効率的かつ迅速に排除できる。
(24)上記実施の形態2や実施の形態3では、循環のサイズが同じ循環監視パターンが複数個存在する場合、循環監視パターン外の更新モジュールが循環監視パターン内の更新モジュールを検証する数をもとに、複数の循環監視パターンから循環監視パターンを選択するとしているが、これに限定するものではない。
循環監視パターン内の更新モジュールが同一の更新モジュールを検証する数が多い順に選択してもよい。これにより、同一の更新モジュールを検証する数が多いほど矛盾があるか否かの検証を多く行うことができるため、矛盾が存在する場合、矛盾を速く見つけやすくなる。その結果、不正な更新モジュールを速く特定することができ、不正な更新モジュールを効率的かつ迅速に排除できる。
(25)上記実施の形態2では、一回の相互監視処理の監視結果において、不正な更新モジュールを特定しているが、これに限定するものではない。複数回の相互監視処理の監視結果をもとに、不正な更新モジュールを特定してもよい。
図71及び図72に示す監視結果の例を用いて具体的に説明する。
更新サーバ200bbは、相互監視処理において、図71の監視結果を受信し、さらに、次の相互監視処理において、図72の監視結果を受信するものとする。
図71に示す例においては、更新モジュール137による更新モジュール136への監視結果は、不正(3112)であり、更新モジュール136による更新モジュール137への監視結果も、不正(3111)である。その他の監視結果は、正常である。
また、図72に示す例においては、更新モジュール132による更新モジュール135への監視結果は、不正(3115)であり、更新モジュール133による更新モジュール135への監視結果も、不正(3114)である。また、更新モジュール137による更新モジュール133への監視結果は、不正(3113)である。さらに、更新モジュール137による更新モジュール136への監視結果は、不正(3112)であり、更新モジュール136による更新モジュール137への監視結果も、不正(3111)である。その他の監視結果は、正常である。

図71に一例として示す監視結果において、不正モジュールの特定処理を実行すると、更新モジュール137が不正な更新モジュールであると特定できる。不正な更新モジュールは、無効化処理で機器100内から消去をしない限り、不正な更新モジュールとして存在し続ける。そのため、次の相互監視処理において、一度不正な更新モジュールと特定された更新モジュールを、正常な更新モジュールと判定する更新モジュールは、不正な更新モジュールである。よって、図72に示す更新モジュール135も不正な更新モジュールであると特定できる。更新モジュール135は、不正と特定された更新モジュール137を正常と判定しているからである。
(26)上記実施の形態2では、一回の相互監視処理の監視結果において、不正な更新モジュールを特定しているが、これに限定するものではない。
複数回の相互監視処理の監視結果をもとに、不正な更新モジュールを特定してもよい。図73及び図74に示す監視結果の例を用いて具体的に説明する。
更新サーバ200bbは、相互監視処理において、図73に示す監視結果を受信し、さらに、次の相互監視処理において、図74に示す監視結果を受信するものとする。
図73に示す例においては、更新モジュール137による更新モジュール136への監視結果は、不正(3121)であり、更新モジュール136による更新モジュール137への監視結果も、不正(3122)である。また、更新モジュール135による更新モジュール137への監視結果は、不正(3126)であり、更新モジュール137による更新モジュール133への監視結果も、不正(3123)である。その他の監視結果は、正常である。
図74に示す例においては、更新モジュール137による更新モジュール136への監視結果は、不正(3121)であり、更新モジュール136による更新モジュール137への監視結果も、不正(3122)である。また、更新モジュール133による更新モジュール135への監視結果は、不正(3124)であり、更新モジュール132による更新モジュール135への監視結果は、不正(3125)であり、更新モジュール137による更新モジュール133への監視結果も、不正(3123)である。その他の監視結果は、正常である。
図73に示す例によると、更新モジュール135は、更新モジュール137を不正(3126)な更新モジュールと判定している。その後に、図74に示す例によると、更新モジュール135は、更新モジュール137を正常(3127)な更新モジュールと判定している。このように、図73に示す例と、図74に示す例とでは、更新モジュール135による更新モジュール137に対する判定結果が一致していない。従って、更新モジュール135が不正な更新モジュールであると特定できる。
(27)上記実施の形態2では、正常モジュール仮定部653は、更新モジュール群130内の更新モジュールをランダムに一つ選択しているが、これに限定するものではない。
正常モジュール仮定部653は、多くの他の更新モジュールを正常と判定する更新モジュールを選ぶとしてもよい。これにより、他の更新モジュールを正常と判定することで、仮正常更新モジュール群に含まれる更新モジュールが多くなり、矛盾があるか否かの検証を多くすることができるため、矛盾を速く見つけやすくなる。その結果、不正な更新モジュールを速く特定することができ、不正な更新モジュールを効率的かつ迅速に排除できる。
(28)上記実施の形態2では、図33に示すステップS8006で不正モジュール特定処理を終了し、他の更新モジュールを正常と仮定し、再度不正モジュール特定処理をする。このとき、不正モジュール特定処理において、正常モジュール仮定部653は、更新モジュール群130内の更新モジュールをランダムに一つ選択しているが、これに限定するものではない。
前回の不正モジュール特定処理のステップS8003の仮正常更新モジュール群内の更新モジュール以外を選択するとしてもよい。前回の不正モジュール特定処理では、仮正常更新モジュール群内の更新モジュールに矛盾がないことがわかっているため、仮正常更新モジュール群内の更新モジュールをステップS8001で選択をしたとしても、不正な更新モジュールと特定できない。これにより、不正な更新モジュールと特定できない更新モジュールを選択しないことにより、処理効率を向上することができる。
(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において、監視パターンを更新する。監視パターンを更新後に、監視結果から妨害モジュールがいるか否かを判断するが、これに限定するものではない。対象の更新モジュールへの監視結果を全て不正と判定する更新モジュール(つまり、妨害候補モジュール)が複数存在した場合、対象の更新モジュールへの監視結果を全て不正と判定する更新モジュールが相互に不正と判定していれば、相互に不正と判定している更新モジュールの無効化指示を送信するとしてもよい。
また、上記実施の形態4では、対象の更新モジュールへの監視結果を全て不正と判定する更新モジュール(つまり、妨害候補モジュール)が1個だけ存在した場合、この妨害候補モジュールの無効化指示を送信するとしてもよい。その後、この妨害候補モジュールを排除した後において、正常モジュール特定処理をするとしてもよい。
また、改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であるとしてもよい。前記管理装置は、前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信部と、受信した前記監視結果を用いて、前記監視モジュールから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定部と、1個の妨害候補モジュールのみが抽出された場合に、抽出された前記妨害候補モジュールを無効化するよう、前記情報セキュリティ装置を制御する無効化部と、1個の妨害候補モジュールのみが検出された場合に、当該妨害候補モジュールを除いて、新たに監視パターンを作成し、作成した監視パターンを前記情報セキュリティ装置へ送信し、新たな監視パターンに置き換えさせる更新部とを備える。前記受信部は、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、前記判定部は、さらに、受信した新たな監視結果を用いて、正常な監視モジュールを特定する。
(36)上記実施の形態4では、ステップS12007において、妨害候補モジュールである更新モジュールが相互に正常(「○」)と判定する妨害候補モジュール群が存在するかを判断する。相互に正常と判定する妨害候補モジュール群が存在した場合、相互に正常と判定する妨害候補モジュール群のステップS12001の監視結果において、相互に不正と判断していた場合、当該妨害候補モジュールを不正な更新モジュールと特定し、無効化指示を送信するとしてもよい。
これは、一つの更新モジュールから他の一つの更新モジュールに対する監視結果において、ステップS12001では、監視対象の更新モジュールを不正と判定しており、ステップS12007では同じ監視対象の更新モジュールを正常と判定している場合、それぞれのステップにおける監視結果に矛盾が発生するため、判定した更新モジュールを不正な更新モジュールと特定できる。
(37)上記実施の形態4では、正常モジュールの特定を妨害する更新モジュールを特定するとしているが、これに限定するものではない。不正モジュールの特定を妨害する更新モジュールを特定するとしてもよい。
このとき、図58に示す動作図のステップS10008において、正常モジュール特定処理に代えて、不正モジュール特定処理を行う。また、図64に示す例の場合において、不正モジュール特定処理を行ったとき、更新モジュール131、132、136及び137は、不正な更新モジュールであるとは特定されない。つまり、更新モジュール131、132、136及び137の各更新モジュールが自身の不正モジュール特定を妨害していることになる。この場合、妨害モジュール特定処理を行うことにより、不正モジュール特定処理では、特定できなかった不正モジュールを、妨害モジュールとして特定し、特定した妨害モジュールを予め排除し、その後に、不正モジュール特定処理を実行することで、不正な更新モジュールを効率的かつ迅速に排除できる。
(38)上記実施の形態4では、ステップS12002において、監視対象の更新モジュールへの監視結果を全て不正と判定する妨害候補モジュール群内で全ての妨害候補モジュールを監視する監視パターンを生成するとしているが、これに限定するものではない。更新モジュール群130の更新モジュール全てを監視する監視パターンを生成するとしてもよい。この場合、監視パターンを更新後に、妨害候補モジュールが全ての更新モジュールに対して不正と判定する場合、当該妨害モジュールを妨害モジュールと特定する。
(39)上記の各モジュールは、具体的には、それぞれ個別のコンピュータプログラムであってもよいし、オペレーティングシステムに組み込まれるコンピュータプログラムであってもよいし、オペレーティングシステムから呼ばれるドライバプログラムであってもよいし、アプリケーションプログラムであってもよい。
(40)各システムの適用例(1)
上記の各実施の形態の各システムは、図75に示すように、コンテンツ再生システム10eであるとしてもよい。
コンテンツ再生システム10eは、この図に示すように、BD再生装置100e、モニタ20e及びホームサーバ装置200eから構成され、BD再生装置100e、モニタ20e及びホームサーバ装置200eは、ホームネットワーク30eを介して、相互に接続されている。
ホームサーバ装置200eは、インターネット40eを介して、インターネット40eに接続されているコンテンツサーバ装置(図示していない)からコンテンツを取得する。コンテンツは、一例として、映像データ及び音声データが圧縮され、さらに暗号化されて構成されたものである。ホームサーバ装置200eは、ホームネットワーク30eを介して、取得したコンテンツをBD再生装置100eへ送信する。
BD再生装置100eは、ホームサーバ装置200eからコンテンツを受信し、受信したコンテンツをBD(Blu−ray Disc)に記録する。また、BD再生装置100eは、BDに記録されているコンテンツの暗号化され、圧縮された映像データ及び音声データを伸張して、映像信号及び音声信号を生成し、生成した映像信号及び音声信号をホームネットワーク30eを介して、モニタ20eへ出力する。モニタ20eは、映像信号及び音声信号を受信し、受信した映像信号及び音声信号により、映像を表示し、音声を出力する。
BD再生装置100eは、上記の各実施の形態の各ソフトウェア更新システムの機器に相当し、又は、各改竄監視システムの情報セキュリティ装置に相当し、当該機器又は当該情報セキュリティ装置と同様の構成を有している。BD再生装置100eが有しているアプリケーションプログラムの一例は、暗号化されたデータを復号するためのコンピュータプログラムであり、また、他の一例は、圧縮された映像データ及び音声データを伸張するためのコンピュータプログラムである。
また、ホームサーバ装置200eは、各ソフトウェア更新システムの更新サーバに相当し、又は、各改竄監視システムの管理装置に相当し、更新サーバ又は管理装置と同様の構成を有している。
(41)各システムの適用例(2)
上記の各実施の形態の各システムは、図76に示すように、モバイルバンキングシステム10fであるとしてもよい。
モバイルバンキングシステム10fは、この図に示すように、携帯電話100f、無線基地局50f、銀行サーバ装置40f及び更新サーバ装置200fから構成されている。携帯電話100fは、無線基地局50f、携帯電話網20f及びインターネット30fを介して、更新サーバ装置200f及び銀行サーバ装置40fに接続されている。
銀行サーバ装置40fは、銀行の利用者の口座に相当する口座ファイルを記憶している。口座ファイルは、取引データを含む。取引データは、取引の種別、金額、日付、相手先の識別情報などを含む。
携帯電話100fは、一例として、操作者の指示により、無線基地局50f、携帯電話網20f及びインターネット30fを介して、銀行サーバ装置40fに対して、操作者の口座から取引先の口座への振替えを要求する。銀行サーバ装置40fは、振替えの要求に従って、操作者の口座から取引先の口座への振替えを実行する。
携帯電話100fは、銀行サーバ装置40fとの間でデータを送受信する際に、デジタル署名を用いた相互の機器認証を行う。また、データの暗号化を要求する。銀行サーバ装置40fは、振替えの要求に従って、操作者の口座から取引先の口座への振替えを実行する。
携帯電話100fと銀行サーバ装置40fとの間で通信する際に、携帯電話100f及び銀行サーバ装置40fは、それぞれ、デジタル署名を用いた相互の機器認証を行う。また、携帯電話100fと銀行サーバ装置40fとの間でデータの送受信を行う際に、携帯電話100f及び銀行サーバ装置40fは、データの暗号化及び暗号化されたデータの復号を行う。
携帯電話100fは、各実施の形態の各ソフトウェア更新システムの機器に相当し、又は、各改竄監視システムの情報セキュリティ装置に相当し、機器又は情報セキュリティ装置と同様の構成を有している。携帯電話100fが有しているアプリケーションプログラムの一例は、データを暗号化するためのコンピュータプログラム又は暗号化されたデータを復号するためのコンピュータプログラムであり、また、他の一例は、通信相手の装置との間で、デジタル署名を用いて機器認証をするためのコンピュータプログラムである。
更新サーバ装置200fは、各実施の形態の各ソフトウェア更新システムの更新サーバに相当し、又は、各改竄監視システムの管理装置に相当する。
(42)上記の実施の形態1および実施形態2で説明した更新サーバ200、200a、200bは、それぞれ、機器100、100a、100bの更新モジュール群が相互監視処理を行うときの監視パターンを生成する監視パターン生成部を有する構成であってもよい。そして、更新サーバ200、200a、200bは、生成した監視パターンを、機器100、100a、100bに送信し、機器100、100a、100bは、監視パターンを受信する。機器100、100a、100bは、受信した監視パターンに基づき相互監視処理を行う。
特に、実施の形態2の更新サーバ200aおよび200bは、循環監視パターンを含む監視パターンを生成するとよい。機器100aおよび100bは、循環監視パターンを含む監視パターンを用いて相互監視処理を行うことにより、後に行なわれる更新サーバ200aおよび200bによる不正モジュール特定処理の処理効率を向上させることができる。
(43)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(44)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(45)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(46)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。(47)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
(48)本発明の一態様であるソフトウェア更新システムは、所定のアプリケーションを格納するソフトウェア更新装置と、このソフトウェア更新装置と接続される管理装置とを含むシステムである。前記ソフトウェア更新装置は、前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、前記保護制御モジュールを更新する更新用の保護制御モジュールを前記管理装置から受信し、前記保護制御モジュールを更新する更新モジュールを複数含む更新モジュール群と、を含み、前記更新モジュール群に含まれる複数の更新モジュールの各々は他の更新モジュールが不正動作を行わないかを相互に検証し、前記管理装置は、前記複数の更新モジュールの各々から検証結果を受信し、前記受信した検証結果に基づいて不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を前記ソフトウェア更新装置に送信する。
この構成によると、前記保護制御モジュールを更新するための更新モジュールを複数の更新モジュールを含む更新モジュール群として、複数の更新モジュールが不正動作を行わないかを相互に検証することにより、前記更新モジュールの改ざんを前記更新モジュール群の内部で自己検証するので、前記更新モジュールの改ざんや前記更新モジュールの正常な動作が妨害されるのを防止できる。その結果、不正動作を行う更新モジュールを介して保護制御モジュールが不正な保護制御モジュールに更新されるのを防止し、前記不正な保護制御モジュールによって前記所定のアプリケーションが攻撃されるのを防止できる。
また、前記管理装置は、前記複数の更新モジュールの各々から検証結果に基づいて、不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を行うことにより、改ざんされた更新モジュールが改ざんされていない他の更新モジュールを改ざんされていると偽って管理装置に通知した場合でも、管理装置側で他の更新モジュールからの検証結果を勘案して判断するので、いずれの更新モジュールが不正動作を行う可能性のある更新モジュールかを適切に判断できる。
さらに、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を管理装置から更新ソフトウェア装置に対して行うことにより、前記不正動作を行う可能性があると適切に判断された更新モジュールが無効化されるので、改ざんされた更新モジュールが改ざんされていない更新モジュールを改ざんされたと偽って検証した場合であっても、改ざんされていない更新モジュールを無効化することを防止し、また、改ざんされた更新モジュールを無効化しないまま更新モジュール群内に残すのを防止できる。
また、本発明の一態様であるソフトウェア更新システムは、所定のアプリケーションを格納するソフトウェア更新装置と、このソフトウェア更新装置と接続される管理装置と、を含むソフトウェア更新システムである。前記ソフトウェア更新装置は、前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、前記保護制御モジュールを更新する複数の更新モジュールと、を含み、前記複数の更新モジュールの各々は前記保護制御モジュールが不正動作を行わないかの第1の検証を行い、また、前記複数の更新モジュールの各々は他の更新モジュールが不正動作を行わないかの第2の検証を行って、前記第1の検証結果及び前記第2の検証結果を前記管理装置に送信する。前記管理装置は、前記複数の更新モジュールの各々から前記第1の検証結果及び前記第2の検証結果を受信する通信部と、前記第1の検証結果に基づいて前記保護制御モジュールが不正動作を行う可能性があると判断した場合、前記第2の検証結果に基づいて前記保護制御モジュールを更新する更新モジュールを前記複数の更新モジュールの中から特定して前記保護制御モジュールを更新させる制御部と、を含む。前記制御部は、前記複数の更新モジュールの間でどの更新モジュールについて第2の検証を行うかの組合せを決め、この組合せを示した組合情報を前記ソフトウェア更新装置に送信し、前記組合せの中に、前記複数の更新モジュールの中の一部の複数の更新モジュールが一方向に循環して順次検証する所定の関係を含め、先ず、定期的に前記第2の検証結果を確認し、前回の第2の検証結果が不正動作を行う可能性のある更新モジュールが存在しないことを示し、且つ、今回の第2の検証結果に不正動作を行う可能性のある更新モジュールが現れたことを示す場合、前記複数の更新モジュールの中に正常な更新モジュールが少なくとも1つ存在すると判断し、次に、前記第2の検証結果に基づいて前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断して、前記保護制御モジュールを更新する更新モジュールから外し、次に、残存する更新モジュールの中のいずれか一つの第1更新モジュールが不正動作を行う可能性があると仮定し、前記第1の更新モジュールを不正更新モジュール群に含め、前記不正更新モジュール群内のいずれかの更新モジュールを判断対象としている第2更新モジュールが存在する場合、前記不正更新モジュール群内のいずれかの更新モジュールを前記第2更新モジュールが正常と判断しているか否かを判断し、前記不正更新モジュール群内のいずれかの更新モジュールを前記第2更新モジュールが正常と判断している場合、前記第2更新モジュールも不正動作を行う可能性があると判断して前記不正更新モジュール群に含め、一方、前記不正更新モジュール群以外に他に判断していない更新モジュールが存在しなくなった場合、前記仮定を誤認定として前記第1更新モジュールを正常な更新モジュールと判断し、前記保護制御モジュールを更新する更新モジュールに前記第1の更新モジュールを特定する。
これにより、先ず、前記複数の更新モジュールの中のいずれか一つの更新モジュールが正常であるという確認を行う。次に、判断対象の第1更新モジュールを、不正動作を行う可能性があると仮定し、この仮定に基づいて判断対象の第1更新モジュールを正当と判断する第2更新モジュールが存在すれば、前記第2更新モジュール不正動作を行う可能性があると判断し、他に判断していない更新モジュールが存在しなくなった場合、前記仮定を誤認定として前記第1更新モジュールを正常な更新モジュールと判断し、前記保護制御モジュールを更新する更新モジュールに前記第1の更新モジュールを特定する。これにより、複数の更新モジュールの中から本当に正常である更新モジュールを論理的な検証方法を用いて効果的に特定できるので、不正動作を行う可能性のない更新モジュールを適切に選択して前記保護制御モジュールを安全に更新できる。
ここで、前記ソフトウェア更新システムにおいて、所定の関係は、前記所定の関係に含まれる第1更新モジュール、第2更新モジュール及び第3更新モジュールの3個の更新モジュールである場合、前記第1更新モジュールが前記第2更新モジュールを検証し、前記第2更新モジュールが前記第3更新モジュールを検証し、前記3更新モジュールが前記第1更新モジュールを検証し、前記第1更新モジュール、前記第2更新モジュール及び前記第3更新モジュールの間で一方向に循環して順次検証する関係である。
これにより、所定の関係は、前記所定の関係に含まれる第1更新モジュール、第2更新モジュール及び第3更新モジュールの3個の更新モジュールである場合、前記第1更新モジュールが前記第2更新モジュールを検証し、前記第2更新モジュールが前記第3更新モジュールを検証し、前記3更新モジュールが前記第1更新モジュールを検証し、前記第1更新モジュール、前記第2更新モジュール及び前記第3更新モジュールの間で一方向に循環して順次検証する関係とすることができる。
ここで、前記ソフトウェア更新システムにおいて、前記制御部は、定期的に前記第2の検証結果を確認し、前回の第2の検証結果が不正動作を行う可能性のある更新モジュールが存在することを示していた場合、前記複数の更新モジュールの中に正常な更新モジュールが少なくとも1つ存在するか否かを判断せず、前記保護制御モジュールを更新する更新モジュールを特定する判断を行わない。
これにより、定期的に前記第2の検証結果を確認し、前回の第2の検証結果が不正動作を行う可能性のある更新モジュールが存在することを示していた場合、前記複数の更新モジュールの中に正常な更新モジュールが少なくとも1つ存在するか否かを判断しない。この場合には、前記保護制御モジュールを更新する更新モジュールを特定する判断は行わない。即ち、前記第1更新モジュールが不正動作を行う可能性があるとの仮定を定立できない場合には、前記保護制御モジュールを更新する更新モジュールを特定する判断は行わない。これにより、不正動作を行う可能性がある更新モジュールを、正常な更新モジュールと誤判断するのを防止できる。その結果、不正動作を行う更新モジュールを介して保護制御モジュールが不正な保護制御モジュールに更新されるのを防止でき、前記不正な保護制御モジュールによって前記所定のアプリケーションが攻撃されるのを防止できる。
ここで、前記ソフトウェア更新システムにおいて、前記制御部は、前記不正更新モジュール群以外に他に判断していない更新モジュールが存在し、前記判断していない更新モジュールが前記不正更新モジュール群に含まれるいずれかの更新モジュールを不正動作行う可能性があると判断している場合、前記保護制御モジュールを更新する更新モジュールを特定する判断は行わない。
これにより、前記不正更新モジュール群以外に他に判断していない更新モジュールが存在し、前記判断していない更新モジュールが前記不正更新モジュール群に含まれるいずれかの更新モジュールを不正動作行う可能性があると判断している場合、前記保護制御モジュールを更新する更新モジュールを特定する判断は行わない。即ち、前記第1更新モジュールが不正動作を行う可能性があるとの仮定を誤判断と認定できない場合は、前記保護制御モジュールを更新する更新モジュールを特定する判断は行わない。これにより、不正動作を行う可能性がある更新モジュールを、正常な更新モジュールと誤判断するのを防止できる。その結果、不正動作を行う更新モジュールを介して保護制御モジュールが不正な保護制御モジュールに更新されるのを防止でき、前記不正な保護制御モジュールによって前記所定のアプリケーションが攻撃されるのを防止できる。
ここで、前記ソフトウェア更新システムにおいて、前記制御部は、前記不正更新モジュール群以外に他に判断していない更新モジュールが存在し、前記判断していない更新モジュールが前記不正更新モジュール群に含まれるいずれかの更新モジュールに対しても正常か否かの判断をしていない場合、前記保護制御モジュールを更新する更新モジュールを特定する判断は行わない。
これにより、前記不正更新モジュール群以外に他に判断していない更新モジュールが存在し、前記判断していない更新モジュールが前記不正更新モジュール群に含まれるいずれかの更新モジュールに対しても正常か否かの判断をしていない場合、前記保護制御モジュールを更新する更新モジュールを特定する判断は行わない。即ち、前記第1更新モジュールが不正動作を行う可能性があるとの仮定を誤判断と認定できない場合は、前記保護制御モジュールを更新する更新モジュールを特定する判断は行わない。これにより、不正動作を行う可能性がある更新モジュールを、正常な更新モジュールと誤判断するのを防止できる。その結果、不正動作を行う更新モジュールを介して保護制御モジュールが不正な保護制御モジュールに更新されるのを防止でき、前記不正な保護制御モジュールによって前記所定のアプリケーションが攻撃されるのを防止できる。
ここで、前記ソフトウェア更新システムにおいて、前記制御部は、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断した場合、前記所定の関係に含まれる複数の更新モジュールの全てを第2不正更新モジュール群に含め、前記第2不正更新モジュール群に含まれない所定の更新モジュールが前記第2不正更新モジュール群内のいずれかを正常と判断した場合、前記所定の更新モジュールを、不正動作を行う可能性がある更新モジュールと判断し、前記第2不正更新モジュール群に含め、前記第2不正更新モジュール群のいずれかを正常と判断する前記第2不正更新モジュール群以外の更新モジュールが存在しなくなった場合、前記第2不正更新モジュール群に含まれる全ての更新モジュールを、前記保護制御モジュールを更新する更新モジュールから外す。
これにより、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断した場合、前記所定の関係に含まれる複数の更新モジュールの全てを第2不正更新モジュール群に含め、前記第2不正更新モジュール群に含まれない所定の更新モジュールが前記第2不正更新モジュール群内に含まれる複数の更新モジュールのいずれかを正常と判断した場合、前記所定の更新モジュールを、不正動作を行う可能性がある更新モジュールと判断し、前記第2不正更新モジュール群に含める。前記第2不正更新モジュール群のいずれかを正常と判断する前記第2不正更新モジュール群以外の更新モジュールが存在しなくなった場合、前記第2不正更新モジュール群に含まれる全ての更新モジュールを、前記保護制御モジュールを更新する更新モジュールから外す。これにより、前記所定の関係に含まれない所定の更新モジュールについても不正動作を行う可能性があるか否かの判断が可能となる。そのため、不正動作を行う可能性があるか否かの判断がされずに残存する更新モジュールの数を減らすことができる。その結果、前記保護制御モジュールを更新する正常な更新モジュールを一層効果的に特定できる。
また、本発明の一態様であるソフトウェア更新装置は、所定のアプリケーションが改ざんされていないかを検証する保護制御モジュール及び前記保護制御モジュールを更新する複数の更新モジュールを格納し、前記複数の更新モジュールの各々は前記保護制御モジュールが不正動作を行わないかの第1の検証を行い、前記複数の更新モジュールの各々は他の更新モジュールが不正動作を行わないかの第2の検証を行うソフトウェア更新装置と接続し、前記ソフトウェア更新装置から前記第1の検証結果及び前記第2の検証結果を受信する通信部と、前記第1の検証結果に基づいて前記保護制御モジュールが不正動作を行う可能性があると判断した場合、前記第2の検証結果に基づいて前記保護制御モジュールを更新する更新モジュールを前記複数の更新モジュールの中から特定して前記保護制御モジュールを更新させる制御部と、を含み、前記制御部は、前記複数の更新モジュールの間でどの更新モジュールについて第2の検証を行うかの組合せを決め、この組合せを示した組合情報を前記ソフトウェア更新装置に送信し、前記組合せの中に、前記複数の更新モジュールの中の一部の複数の更新モジュールが一方向に循環して順次検証する所定の関係を含め、先ず、定期的に前記第2の検証結果を確認し、前回の第2の検証結果が不正動作を行う可能性のある更新モジュールが存在しないことを示し、且つ、今回の第2の検証結果に不正動作を行う可能性のある更新モジュールが現れたことを示す場合、前記複数の更新モジュールの中に正常な更新モジュールが少なくとも1つ存在すると判断し、次に、前記第2の検証結果に基づいて前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断して、前記保護制御モジュールを更新する更新モジュールから外し、次に、残存する更新モジュールの中のいずれか一つの第1更新モジュールが不正動作を行う可能性があると仮定し、前記第1の更新モジュールを不正更新モジュール群に含め、前記不正更新モジュール群内のいずれかの更新モジュールを判断対象としている第2更新モジュールが存在する場合、前記不正更新モジュール群内のいずれかの更新モジュールを前記第2更新モジュールが正常と判断しているか否かを判断し、前記不正更新モジュール群内のいずれかの更新モジュールを前記第2更新モジュールが正常と判断している場合、前記第2更新モジュールも不正動作を行う可能性があると判断して前記不正更新モジュール群に含め、一方、前記不正更新モジュール群以外に他に判断していない更新モジュールが存在しなくなった場合、前記仮定を誤認定として前記第1更新モジュールを正常な更新モジュールと判断し、前記保護制御モジュールを更新する更新モジュールに前記第1の更新モジュールを特定する。
また、本発明の一態様であるソフトウェア更新方法は、所定のアプリケーション、前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュール、及び前記保護制御モジュールを更新する複数の更新モジュールを格納する記憶手段と、前記複数の更新モジュールの各々は前記保護制御モジュールが不正動作を行わないかの第1の検証を行い、また、前記複数の更新モジュールの各々は他の更新モジュールが不正動作を行わないかの第2の検証を行って、前記第1の検証結果及び前記第2の検証結果を前記管理装置に送信する制御を行う制御手段とを有するソフトウェア更新装置と、前記複数の更新モジュールの各々から前記第1の検証結果及び前記第2の検証結果を受信する通信部と、前記第1の検証結果に基づいて前記保護制御モジュールが不正動作を行う可能性があると判断した場合、前記第2の検証結果に基づいて前記保護制御モジュールを更新する更新モジュールを前記複数の更新モジュールの中から特定して前記保護制御モジュールを更新させる制御部とを有する管理装置と、を含むソフトウェア更新システムにおいて、前記管理装置で、前記複数の更新モジュールの中から不正動作を行う可能性がある更新モジュールを特定する方法であって、前記複数の更新モジュールの間でどの更新モジュールについて第2の検証を行うかの組合せを決め、この組合せを示した組合情報を前記ソフトウェア更新装置に送信し、前記組合せの中に、前記複数の更新モジュールの中の一部の複数の更新モジュールが一方向に循環して順次検証する所定の関係を含め、先ず、定期的に前記第2の検証結果を確認し、前回の第2の検証結果が不正動作を行う可能性のある更新モジュールが存在しないことを示し、且つ、今回の第2の検証結果に不正動作を行う可能性のある更新モジュールが現れたことを示す場合、前記複数の更新モジュールの中に正常な更新モジュールが少なくとも1つ存在すると判断し、次に、前記第2の検証結果に基づいて前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断して、前記保護制御モジュールを更新する更新モジュールから外し、次に、残存する更新モジュールの中のいずれか一つの第1更新モジュールが不正動作を行う可能性があると仮定し、前記第1の更新モジュールを不正更新モジュール群に含め、前記不正更新モジュール群内のいずれかの更新モジュールを判断対象としている第2更新モジュールが存在する場合、前記不正更新モジュール群内のいずれかの更新モジュールを前記第2更新モジュールが正常と判断しているか否かを判断し、前記不正更新モジュール群内のいずれかの更新モジュールを前記第2更新モジュールが正常と判断している場合、前記第2更新モジュールも不正動作を行う可能性があると判断して前記不正更新モジュール群に含め、一方、前記不正更新モジュール群以外に他に判断していない更新モジュールが存在しなくなった場合、前記仮定を誤認定として前記第1更新モジュールを正常な更新モジュールと判断し、前記保護制御モジュールを更新する更新モジュールに前記第1の更新モジュールを特定する。
また、本発明の一態様であるソフトウェア更新システムは、所定のアプリケーションを格納するソフトウェア更新装置と、このソフトウェア更新装置と接続される管理装置とを含むシステムである。前記ソフトウェア更新装置は、前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、前記保護制御モジュールを更新する更新用の保護制御モジュールを前記管理装置から受信し、前記保護制御モジュールを更新する更新モジュールを複数含む更新モジュール群と、を含み、前記更新モジュール群に含まれる複数の更新モジュールの各々は他の更新モジュールが不正動作を行わないかを相互に検証し、前記管理装置は、前記複数の更新モジュールの各々から検証結果を受信し、前記受信した検証結果に基づいて不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を前記ソフトウェア更新装置に送信する。
この構成によると、前記保護制御モジュールを更新するための更新モジュールを複数の更新モジュールを含む更新モジュール群として、複数の更新モジュールが不正動作を行わないかを相互に検証することにより、前記更新モジュールの改ざんを前記更新モジュール群の内部で自己検証するので、前記更新モジュールの改ざんや前記更新モジュールの正常な動作が妨害されるのを防止できる。その結果、不正動作を行う更新モジュールを介して保護制御モジュールが不正な保護制御モジュールに更新されるのを防止し、前記不正な保護制御モジュールによって前記所定のアプリケーションが攻撃されるのを防止できる。
また、前記管理装置は、前記複数の更新モジュールの各々から検証結果に基づいて、不正動作を行う可能性のある更新モジュールを判断し、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を行うことにより、改ざんされた更新モジュールが改ざんされていない他の更新モジュールを改ざんされていると偽って管理装置に通知した場合でも、管理装置側で他の更新モジュールからの検証結果を勘案して判断するので、いずれの更新モジュールが不正動作を行う可能性のある更新モジュールかを適切に判断できる。
さらに、前記不正動作を行う可能性があると判断した更新モジュールを無効化する指示を管理装置から更新ソフトウェア装置に対して行うことにより、前記不正動作を行う可能性があると適切に判断された更新モジュールが無効化されるので、改ざんされた更新モジュールが改ざんされていない更新モジュールを改ざんされたと偽って検証した場合であっても、改ざんされていない更新モジュールを無効化することを防止し、また、改ざんされた更新モジュールを無効化しないまま更新モジュール群内に残すのを防止できる。
また、本発明の一態様であるソフトウェア更新システムは、所定のアプリケーションを格納するソフトウェア更新装置と、このソフトウェア更新装置と接続される管理装置と、を含むソフトウェア更新システムである。前記ソフトウェア更新装置は、前記所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、前記保護制御モジュールを更新する複数の更新モジュールと、を含み、前記複数の更新モジュールの各々は前記保護制御モジュールが不正動作を行わないかの第1の検証を行い、前記第1の検証結果を前記管理装置に送信し、前記管理装置は、前記複数の更新モジュールの各々から前記第1の検証結果を受信する通信部と、前記第1の検証結果に基づいて前記保護制御モジュールが不正動作を行う可能性があると判断した場合、前記保護制御モジュールを更新する更新モジュールを前記複数の更新モジュールの中から特定して前記保護制御モジュールを更新させる制御部と、を含む。前記管理装置は、前記複数の更新モジュールの全てからなる第1のグループの中で、各更新モジュールが、他のどの更新モジュールについて不正動作を行う可能性があるかを判断するかの組合せを示した第1の監視パターンを生成して、前記ソフトウェア更新装置に送信する。前記ソフトウェア更新装置は、前記第1の監視パターンに基づいて、各更新モジュールが不正動作を行わないかの第2の検証を行って、この第2の検証結果を前記管理装置に送信する。前記管理装置は、前記第2の検証結果に基づいて、自己が判断する対象となっている更新モジュールの全てを、不正動作を行う可能性があると判断する更新モジュールを、改ざんされた可能性がある更新モジュールとして第2グループに含め、前記第1のグループから前記第2のグループを抜き出し、次に、この抜き出された第2のグループ内において、各更新モジュールが、自更新モジュール以外の他の更新モジュールの全てを相互に監視し合うように第2の監視パターンを生成し、次に、前記生成された第2の監視パターンを前記ソフトウェア更新装置に送信する。前記ソフトウェア更新装置は、前記第2の監視パターンに基づいて、前記第2の監視パターンに含まれる更新モジュールの相互について、不正動作を行わないかの第3の検証を行って、この第3の検証結果を前記管理装置に送信する。前記管理装置は、前記第3の検証結果に基づいて、前記第2のグループに属する更新モジュールの中で、相互に不正動作を行う可能性がないと判断し合う更新モジュールからなる第3のグループであって、この第3のグループに属する更新モジュールの各々が前記第3のグループ以外の更新モジュールを、不正動作を行う可能性があると判断する第3のグループを、前記第1のグループに戻し、前記第2のグループの中で前記第3のグループに含まれない更新モジュールを削除する。
これにより、前記第1グループに戻されない更新モジュールを削除することにより、前記第1グループに戻されない更新モジュールの中には不正動作を行う可能性が高い更新モジュールが含まれ、これを更新モジュールの中から積極的に排除するので、前記保護制御モジュールを一層効果的に救済でき、システムの安全性を一層高めることができる。
ここで、前記ソフトウェア更新システムにおいて、前記管理装置は、前記第3の検証結果に基づいて、前記第2のグループに属する更新モジュールの中で、相互に不正動作を行う可能性がないと判断し合う更新モジュールからなる第3のグループであって、この第3のグループに属する更新モジュールの各々が前記第3のグループ以外の更新モジュールを、不正動作を行う可能性があると判断する第3のグループを、前記第1のグループに戻し、次に、前記第3のグループが戻された後の第1のグループを第4のグループとし、この第4のグループに属する各更新モジュールが、他のどの更新モジュールについて不正動作を行う可能性があるか否かを判断するかの組合せを示した第3の監視パターンを生成し、次に、前記生成された第3の監視パターンを前記ソフトウェア更新装置に送信する。前記ソフトウェア更新装置は、前記第3の監視パターンに基づいて、前記第3の監視パターンに含まれる更新モジュールの相互について、不正動作を行わないかの第4の検証を行って、この第4の検証結果を前記管理装置に送信する。前記管理装置は、前記第4の検証結果に基づいて、前記保護制御モジュールを更新する更新モジュールを前記複数の更新モジュールの中から特定して前記保護制御モジュールを更新させ、前記第3の監視パターンの中には、前記第4のグループに属する複数の更新モジュールの中の一部の複数の更新モジュールが一方向に循環して順次検証する所定の関係を含め、先ず、定期的に前記第4の検証結果を確認し、前回の第4の検証結果が不正動作を行う可能性のある更新モジュールが存在しないことを示し、且つ、今回の第4の検証結果に不正動作を行う可能性のある更新モジュールが現れたことを示す場合、前記複数の更新モジュールの中に正常な更新モジュールが少なくとも1つ存在すると判断し、次に、前記第4の検証結果に基づいて前記所定の関係に含まれる複数の更新モジュールを一方向に循環して検証した結果前記所定の関係に含まれる複数の更新モジュールの全てが正常であると判断し、且つ、前記所定の関係に含まれる複数の更新モジュールの判断のいずれかに矛盾がある場合、前記所定の関係に含まれる複数の更新モジュールの全てが不正動作を行う可能性があると判断して、前記保護制御モジュールを更新する更新モジュールから外し、次に、残存する更新モジュールの中のいずれか一つの第1更新モジュールが不正動作を行う可能性があると仮定し、前記第1の更新モジュールを不正更新モジュール群に含め、前記不正更新モジュール群内のいずれかの更新モジュールを判断対象としている第2更新モジュールが存在する場合、前記不正更新モジュール群内のいずれかの更新モジュールを前記第2更新モジュールが正常と判断しているか否かを判断し、前記不正更新モジュール群内のいずれかの更新モジュールを前記第2更新モジュールが正常と判断している場合、前記第2更新モジュールも不正動作を行う可能性があると判断して前記不正更新モジュール群に含め、一方、前記不正更新モジュール群以外に他に判断していない更新モジュールが存在しなくなった場合、前記仮定を誤認定として前記第1更新モジュールを正常な更新モジュールと判断し、前記保護制御モジュールを更新する更新モジュールに前記第1の更新モジュールを特定する。
これにより、先ず、前記複数の更新モジュールの中のいずれか一つの更新モジュールが正常であるという確認を行う。次に、判断対象の第1更新モジュールを、不正動作を行う可能性があると仮定し、この仮定に基づいて判断対象の第1更新モジュールを正当と判断する第2更新モジュールが存在すれば、前記第2更新モジュール不正動作を行う可能性があると判断し、他に判断していない更新モジュールが存在しなくなった場合、前記仮定を誤認定として前記第1更新モジュールを正常な更新モジュールと判断し、前記保護制御モジュールを更新する更新モジュールに前記第1の更新モジュールを特定する。これにより、複数の更新モジュールの中から本当に正常である更新モジュールを論理的な検証方法を用いて効果的に特定できるので、不正動作を行う可能性のない更新モジュールを適切に選択して前記保護制御モジュールを安全に更新できる。
また、上記判断を行う場合、複数の更新モジュールの中に、自己が判断する対象となっている更新モジュールの全てを、不正動作を行う可能性があると判断するタイプの更新モジュールが存在すると、不正動作を行う可能性のない更新モジュールを特定できない場合が存在する。
そこで、本態様によると、まず、自己が判断する対象となっている更新モジュールの全てを、不正動作を行う可能性があると判断するタイプの更新モジュールを、前記複数の更新モジュールの中から抜き出して、そのタイプの更新モジュールだけを集めて、相互に不正動作を行う可能性があるか否かを判断させる。その結果、前記タイプの更新モジュールにおいて、相互に不正動作を行う可能性がないと判断し合う更新モジュールからなるグループであって、このグループに属する更新モジュールの各々が前記グループ以外の更新モジュールを、不正動作を行う可能性があると判断するような更新モジュールのグループについては、改ざんされていないと判断して、元の複数の更新モジュールに戻す。そして、戻された後の複数の更新モジュールの中で、上記判断を行うようにした。これにより、上記判断を行えない可能性が少なくなるので、不正動作を行う可能性のない更新モジュールを特定して、前記保護制御モジュールを可能な限り救済できる。
本発明は、複数の監視モジュールのうち、一部の監視モジュールが改竄された場合であっても、改竄されていない正常な監視モジュールを高い確率で特定することができる改竄監視システム及び管理装置において、広く適用することができる。
10ca、10da 改竄監視システム
10cb、10db ソフトウェア更新システム
10e コンテンツ再生システム
10f モバイルバンキングシステム
40f 銀行サーバ装置
100、100db 機器
100ca、100da 情報セキュリティ装置
100e BD再生装置
100f 携帯電話
200、200bb、200cb、200db 更新サーバ
200ca、200da 管理装置
200e ホームサーバ装置
200f 更新サーバ装置

Claims (26)

  1. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、
    前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
    受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出手段と、
    前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第1仮定手段と、
    改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第2仮定手段と、
    前記第2仮定手段による手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断手段と
    を備えることを特徴とする管理装置。
  2. 前記検出手段は、前回受信した監視結果と、今回受信した監視結果とを用い、前回受信した監視結果により、全ての監視モジュールが正常であると判定され、今回受信した監視結果により、全ての監視モジュールが正常であると判定されなかった場合に、改竄されていない正常な監視モジュールの存在を検出し、
    前回の監視と今回の監視との時間間隔は、所定の閾値より小さい
    ことを特徴とする請求項1に記載の管理装置。
  3. 前記第1仮定手段は、選択した前記監視モジュールを識別する識別番号を含む仮定不正グループを生成し、
    前記第2仮定手段は、前記監視結果を用いて、前記仮定不正グループに含まれている識別番号により識別される監視モジュールを正常と判断する監視モジュールが存在するか否かを判定し、存在すると判定された場合に、当該監視モジュールを識別する識別番号を前記仮定不正グループに追加し、未処理の監視モジュールについて、前記判定と前記追加とを繰り返し行うように制御し、
    前記判断手段は、前記仮定不正グループに、全ての監視モジュールを識別する識別番号が含まれるか否かを判断し、前記仮定不正グループに、全ての監視モジュールを識別する識別番号が含まれると判断される場合に、正常な監視モジュールを決定する
    ことを特徴とする請求項1に記載の管理装置。
  4. 前記管理装置は、さらに、前記監視モジュールの中から改竄された不正な監視モジュールを特定する不正モジュール特定手段を備え、
    前記第1仮定手段は、不正な監視モジュールを除いて、前記監視モジュールを選択し、
    前記第2仮定手段は、不正な監視モジュールを除く未処理の監視モジュールについて、前記手順を適用し、
    前記判断手段は、不正な監視モジュールを除いて、その他の全ての監視モジュールが改竄されている仮定されたか判断し、前記判断がされる場合に、正常な監視モジュールを特定する
    ことを特徴とする請求項1に記載の管理装置。
  5. 前記不正モジュール特定手段は、1個の監視モジュールが正常であると仮定する場合に、受信する監視結果を用いて、複数の監視結果に不一致があるか否かを判断し、不一致がある場合に、前記監視モジュールを、不正な監視モジュールとして、特定する
    ことを特徴とする請求項4に記載の管理装置。
  6. 前記監視モジュールに対して、循環監視パターンにより、監視対象の監視モジュールが定められ、前記循環監視パターンは、第1の監視モジュールによる監視対象である第2の監視モジュールが、前記第1の監視モジュールを監視し、又は、1個以上の監視モジュールを介在して、前記第1の監視モジュールを監視することを示し、
    前記不正モジュール特定手段は、前記循環監視パターンに係る複数の監視モジュールによる他の1の監視モジュールに対する複数の監視結果が一致しない場合に、当該循環監視パターンに係る複数の監視モジュールを、不正な監視モジュールとして、特定する
    ことを特徴とする請求項4に記載の管理装置。
  7. 前記情報セキュリティ装置が有する少なくとも1個の監視モジュールは、他のモジュールを更新する機能を備える更新モジュールであり、
    前記管理装置は、さらに、正常な監視モジュールと決定された監視モジュールが、他のモジュールを更新する機能を有する前記更新モジュールである場合に、更新モジュールである当該監視モジュールに対して、他のモジュールを更新するように、制御する制御手段を備える
    ことを特徴とする請求項1に記載の管理装置。
  8. 前記情報セキュリティ装置は、さらに、アプリケーションプログラム及び当該アプリケーションプログラムを保護する保護制御モジュールを有し、
    前記他のモジュールは、前記監視モジュール、前記アプリケーションプログラム、又は前記保護制御モジュールである
    ことを特徴とする請求項7に記載の管理装置。
  9. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、
    前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
    受信した前記監視結果を用いて、前記監視モジュールのうちから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定手段と、
    複数の妨害候補モジュールが検出された場合に、複数の妨害候補モジュール間で、相互に相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせる更新手段とを備え、
    前記受信手段は、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、
    前記判定手段は、さらに、受信した新たな監視結果を用いて、前記妨害候補モジュールから、相互に正常と判定し、他の妨害候補モジュールに対して不正と判定する2個の妨害候補モジュールを除く他の妨害候補モジュールを妨害モジュールと特定する
    ことを特徴とする請求項1に記載の管理装置。
  10. 前記判定手段は、さらに、受信した新たな監視結果を用いて、2個の妨害候補モジュールのうち、第1の妨害候補モジュールが第2の妨害候補モジュールに対して正常と判定し、第2の妨害候補モジュールが第1の妨害候補モジュールに対して不正と判定する場合に、第1の妨害候補モジュールを、改竄された不正な監視モジュールであると特定する
    ことを特徴とする請求項9に記載の管理装置。
  11. 前記更新手段は、全ての監視モジュール間で、相互に相手を監視するように、新たな前記監視パターンを生成する
    ことを特徴とする請求項9に記載の管理装置。
  12. 前記管理装置は、さらに、特定された前記妨害モジュールを無効化するよう、前記情報セキュリティ装置を制御する無効化手段を含む
    ことを特徴とする請求項9に記載の管理装置。
  13. 前記更新手段は、さらに、無効化された前記妨害モジュールを除く前記監視モジュールにより、相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせ、
    前記受信手段は、さらに、前記情報セキュリティ装置から、無効化された前記妨害モジュールを除く各監視モジュールによる他の監視モジュールに対する監視結果を受信し、
    前記管理装置は、さらに、受信した監視結果を用いて、正常な監視モジュールを特定する正常モジュール特定手段を含む
    ことを特徴とする請求項12に記載の管理装置。
  14. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理装置であって、
    前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
    受信した前記監視結果を用いて、前記監視モジュールから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定手段と、
    1個の妨害候補モジュールのみが抽出された場合に、抽出された前記妨害候補モジュールを無効化するよう、前記情報セキュリティ装置を制御する無効化手段と、
    1個の妨害候補モジュールのみが検出された場合に、当該妨害候補モジュールを除いて、新たに監視パターンを作成し、作成した監視パターンを前記情報セキュリティ装置へ送信し、新たな監視パターンに置き換えさせる更新手段とを備え、
    前記受信手段は、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、
    前記判定手段は、さらに、受信した新たな監視結果を用いて、正常な監視モジュールを特定する
    ことを特徴とする請求項1に記載の管理装置。
  15. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置と、当該情報セキュリティ装置を管理する管理装置とから構成される改竄監視システムであって、
    前記管理装置は、
    前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
    受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出手段と、
    前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第1仮定手段と、
    改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第2仮定手段と、
    前記第2仮定手段による手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断手段と
    を備えることを特徴とする改竄監視システム。
  16. 前記情報セキュリティ装置が有する少なくとも1個の監視モジュールは、他のモジュールを更新する機能を備える更新モジュールであり、
    前記管理装置は、さらに、正常な監視モジュールと決定された監視モジュールが、他のモジュールを更新する機能を有する前記更新モジュールである場合に、更新モジュールである当該監視モジュールに対して、他のモジュールを更新するように、制御する制御手段を備える
    ことを特徴とする請求項15に記載の改竄監視システム。
  17. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置と、前記情報セキュリティ装置とから構成される改竄監視システムであって、
    前記管理装置は、
    前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信手段と、
    受信した前記監視結果を用いて、前記監視モジュールのうちから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定手段と、
    複数の妨害候補モジュールが検出された場合に、複数の妨害候補モジュール間で、相互に相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせる更新手段とを備え、
    前記受信手段は、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、
    前記判定手段は、さらに、受信した新たな監視結果を用いて、前記妨害候補モジュールから、相互に正常と判定し、他の妨害候補モジュールに対して不正と判定する2個の妨害候補モジュールを除く他の妨害候補モジュールを妨害モジュールと特定する
    ことを特徴とする請求項15に記載の改竄監視システム。
  18. 前記情報セキュリティ装置が有する少なくとも1個の監視モジュールは、他のモジュールを更新する機能を備える更新モジュールであり、
    前記管理装置は、さらに、正常な監視モジュールと決定された監視モジュールが、他のモジュールを更新する機能を有する更新モジュールである場合に、更新モジュールである当該監視モジュールに対して、他のモジュールを更新するように、制御する制御手段を備える
    ことを特徴とする請求項17に記載の改竄監視システム。
  19. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する機能を有する集積回路であって、
    前記情報セキュリティ装置から受信した、各監視モジュールによる他の監視モジュールに対する監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出手段と、
    前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第1仮定手段と、
    改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第2仮定手段と、
    前記第2仮定手段による手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断手段と
    を備えることを特徴とする集積回路。
  20. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する機能を有する集積回路であって、
    前記情報セキュリティ装置から受信した、各監視モジュールによる他の監視モジュールに対する監視結果を用いて、前記監視モジュールのうちから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定手段と、
    複数の妨害候補モジュールが検出された場合に、複数の妨害候補モジュール間で、相互に相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせる更新手段とを備え
    前記判定手段は、さらに、前記情報セキュリティ装置から受信した、新たな監視パターンによる新たな監視結果を用いて、前記妨害候補モジュールから、相互に正常と判定し、他の妨害候補モジュールに対して不正と判定する2個の妨害候補モジュールを除く他の妨害候補モジュールを妨害モジュールと特定する
    ことを特徴とする請求項19に記載の集積回路。
  21. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理方法であって、
    前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、
    受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出ステップと、
    前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第1仮定ステップと、
    改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第2仮定ステップと、
    前記第2仮定ステップによる手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断ステップと
    を含むことを特徴とする管理方法。
  22. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理方法であって、
    前記情報セキュリティ装置から受信した、各監視モジュールによる他の監視モジュールに対する監視結果を用いて、前記監視モジュールのうちから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定ステップと、
    複数の妨害候補モジュールが検出された場合に、複数の妨害候補モジュール間で、相互に相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせる更新ステップとを備え、
    前記受信ステップは、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、
    前記判定ステップは、さらに、受信した新たな監視結果を用いて、前記妨害候補モジュールから、相互に正常と判定し、他の妨害候補モジュールに対して不正と判定する2個の妨害候補モジュールを除く他の妨害候補モジュールを妨害モジュールと特定する
    ことを特徴とする請求項21に記載の管理方法。
  23. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
    コンピュータに、
    前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、
    受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出ステップと、
    前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第1仮定ステップと、
    改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第2仮定ステップと、
    前記第2仮定ステップによる手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断ステップと
    を実行させるためコンピュータプログラムを記録している記録媒体。
  24. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
    前記コンピュータプログラムは、コンピュータに、
    前記情報セキュリティ装置から受信した、各監視モジュールによる他の監視モジュールに対する監視結果を用いて、前記監視モジュールのうちから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定ステップと、
    複数の妨害候補モジュールが検出された場合に、複数の妨害候補モジュール間で、相互に相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせる更新ステップとを実行させるためのコンピュータプログラムであり、
    前記受信ステップは、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、
    前記判定ステップは、さらに、受信した新たな監視結果を用いて、前記妨害候補モジュールから、相互に正常と判定し、他の妨害候補モジュールに対して不正と判定する2個の妨害候補モジュールを除く他の妨害候補モジュールを妨害モジュールと特定する
    コンピュータプログラムを記録している請求項23に記載の記録媒体。
  25. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理用のコンピュータプログラムであって、
    コンピュータに、
    前記情報セキュリティ装置から、各監視モジュールによる他の監視モジュールに対する監視結果を受信する受信ステップと、
    受信した前記監視結果を用いて、改竄されていない正常な監視モジュールの存在を検出する検出ステップと、
    前記検出がされた場合に、前記監視モジュールから選択した1個の監視モジュールに対して改竄されていると仮定する第1仮定ステップと、
    改竄されていると仮定された前記監視モジュールを起点として、受信した前記監視結果を用いて、改竄されていると仮定された監視モジュールを正常と判定する監視モジュールに対して改竄されていると仮定する手順を、未処理の監視モジュールについて、連鎖的に適用する第2仮定ステップと、
    前記第2仮定ステップによる手順の適用の結果、全ての監視モジュールが改竄されていると仮定されたか判断し、前記判断がされた場合に、最初に改竄されていると仮定された前記監視モジュールを正常な監視モジュールと決定する判断ステップと
    を実行させることを特徴とするコンピュータプログラム。
  26. 改竄を監視する複数の監視モジュールを有する情報セキュリティ装置を管理する管理用のコンピュータプログラムであって、
    前記コンピュータプログラムは、コンピュータに、
    前記情報セキュリティ装置から受信した、各監視モジュールによる他の監視モジュールに対する監視結果を用いて、前記監視モジュールのうちから、全ての監視対象の監視モジュールに対して改竄されていると判定する妨害候補モジュールを抽出する判定ステップと、
    複数の妨害候補モジュールが検出された場合に、複数の妨害候補モジュール間で、相互に相手を監視するように、新たな監視パターンを生成し、生成した新たな監視パターンを前記情報セキュリティ装置に対して送信し、新たな監視パターンに置き換えさせる更新ステップとを実行させ、
    前記受信ステップは、さらに、前記情報セキュリティ装置から新たな監視パターンによる新たな監視結果を受信し、
    前記判定ステップは、さらに、受信した新たな監視結果を用いて、前記妨害候補モジュールから、相互に正常と判定し、他の妨害候補モジュールに対して不正と判定する2個の妨害候補モジュールを除く他の妨害候補モジュールを妨害モジュールと特定する
    ことを特徴とする請求項25に記載のコンピュータプログラム。
JP2010550474A 2009-02-16 2010-02-15 改竄監視システム、管理装置及び改竄管理方法 Active JP5453323B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010550474A JP5453323B2 (ja) 2009-02-16 2010-02-15 改竄監視システム、管理装置及び改竄管理方法

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2009032373 2009-02-16
JP2009032373 2009-02-16
JP2009102526 2009-04-21
JP2009102526 2009-04-21
PCT/JP2010/000903 WO2010092830A1 (ja) 2009-02-16 2010-02-15 改竄監視システム、管理装置及び改竄管理方法
JP2010550474A JP5453323B2 (ja) 2009-02-16 2010-02-15 改竄監視システム、管理装置及び改竄管理方法

Publications (2)

Publication Number Publication Date
JPWO2010092830A1 JPWO2010092830A1 (ja) 2012-08-16
JP5453323B2 true JP5453323B2 (ja) 2014-03-26

Family

ID=42561678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010550474A Active JP5453323B2 (ja) 2009-02-16 2010-02-15 改竄監視システム、管理装置及び改竄管理方法

Country Status (5)

Country Link
US (1) US8726374B2 (ja)
EP (1) EP2397963A1 (ja)
JP (1) JP5453323B2 (ja)
CN (1) CN102272770B (ja)
WO (1) WO2010092830A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5681028B2 (ja) * 2010-04-26 2015-03-04 パナソニック株式会社 改ざん監視システム、管理装置及び管理方法
EP2901612A4 (en) * 2012-09-28 2016-06-15 Level 3 Communications Llc APPARATUS, SYSTEM AND METHOD FOR IDENTIFYING AND MITIGATING MALICIOUS THREATS ON A NETWORK
US9729309B2 (en) 2012-12-19 2017-08-08 Intel Corporation Securing data transmission between processor packages
US9383989B1 (en) 2014-06-16 2016-07-05 Symantec Corporation Systems and methods for updating applications
EP3566169B1 (de) * 2017-01-04 2021-06-30 SCHWARTZ, Gerhard Asymmetrische system- und netzwerkarchitektur
US11095670B2 (en) * 2018-07-09 2021-08-17 Cisco Technology, Inc. Hierarchical activation of scripts for detecting a security threat to a network using a programmable data plane
US10447475B1 (en) * 2018-11-08 2019-10-15 Bar Ilan University System and method for managing backup of cryptographic keys
JP7138043B2 (ja) * 2018-12-28 2022-09-15 日立Astemo株式会社 情報処理装置
WO2022254519A1 (ja) * 2021-05-31 2022-12-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 監視装置、監視システムおよび監視方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293370A (ja) * 1999-04-09 2000-10-20 Konami Co Ltd コンピュータシステム、コンピュータプログラムの実行方法及びコンピュータプログラム記録媒体
JP2009003853A (ja) * 2007-06-25 2009-01-08 Panasonic Corp 複数のソフトウェアを正しい順番で起動する情報端末およびセキュリティモジュール

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4608049A (en) 1982-06-28 1986-08-26 Kelman Charles D Intraocular lens and method of inserting an intraocular lens into an eye
JP2837446B2 (ja) 1989-07-21 1998-12-16 カヤバ工業株式会社 二段作動ステーダンパ
US20060265746A1 (en) 2001-04-27 2006-11-23 Internet Security Systems, Inc. Method and system for managing computer security information
US7587763B2 (en) * 2002-12-12 2009-09-08 Finite State Machine Labs, Inc. Systems and methods for detecting a security breach in a computer system
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
JP4643204B2 (ja) 2004-08-25 2011-03-02 株式会社エヌ・ティ・ティ・ドコモ サーバ装置
JP4288292B2 (ja) 2006-10-31 2009-07-01 株式会社エヌ・ティ・ティ・ドコモ オペレーティングシステム監視設定情報生成装置及びオペレーティングシステム監視装置
WO2008099682A1 (ja) 2007-02-16 2008-08-21 Panasonic Corporation 分散情報配布装置、保持装置、認証局装置及びシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293370A (ja) * 1999-04-09 2000-10-20 Konami Co Ltd コンピュータシステム、コンピュータプログラムの実行方法及びコンピュータプログラム記録媒体
JP2009003853A (ja) * 2007-06-25 2009-01-08 Panasonic Corp 複数のソフトウェアを正しい順番で起動する情報端末およびセキュリティモジュール

Also Published As

Publication number Publication date
EP2397963A1 (en) 2011-12-21
CN102272770B (zh) 2015-07-01
JPWO2010092830A1 (ja) 2012-08-16
CN102272770A (zh) 2011-12-07
US8726374B2 (en) 2014-05-13
US20110239297A1 (en) 2011-09-29
WO2010092830A1 (ja) 2010-08-19

Similar Documents

Publication Publication Date Title
JP5453324B2 (ja) 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法
JP5453323B2 (ja) 改竄監視システム、管理装置及び改竄管理方法
JP5390532B2 (ja) 監視システム、プログラム実行装置、監視プログラム、記録媒体及び集積回路
JP5405986B2 (ja) ソフトウェア更新システム、管理装置、記録媒体及び集積回路
JP5681028B2 (ja) 改ざん監視システム、管理装置及び管理方法
US9594909B2 (en) Software updating apparatus, software updating system, invalidation method, and invalidation program
JP5744855B2 (ja) 改ざん監視システム、管理装置及び改ざん管理方法
JP4932033B2 (ja) ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム
US8683214B2 (en) Method and device that verifies application program modules

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: 20131008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131114

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: 5453323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150