JP5411282B2 - 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路 - Google Patents

情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路 Download PDF

Info

Publication number
JP5411282B2
JP5411282B2 JP2011531791A JP2011531791A JP5411282B2 JP 5411282 B2 JP5411282 B2 JP 5411282B2 JP 2011531791 A JP2011531791 A JP 2011531791A JP 2011531791 A JP2011531791 A JP 2011531791A JP 5411282 B2 JP5411282 B2 JP 5411282B2
Authority
JP
Japan
Prior art keywords
data
verification
module
detection
protection control
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
JP2011531791A
Other languages
English (en)
Other versions
JPWO2011033773A1 (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 JP2011531791A priority Critical patent/JP5411282B2/ja
Publication of JPWO2011033773A1 publication Critical patent/JPWO2011033773A1/ja
Application granted granted Critical
Publication of JP5411282B2 publication Critical patent/JP5411282B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Description

本発明は、不正動作を行う可能性のあるモジュールを特定する技術に関する。
近年、秘匿データを有しているアプリケーションプログラムが、悪意のある第三者(以下、「攻撃者」という)に解析されないようにするため、ソフトウェアによってアプリケーションプログラムを保護する技術が開発されつつある。
ソフトウェアによってアプリケーションプログラムを保護する技術として、例えば、ハッシュ値を用いた改ざん検証や、アプリケーションプログラムを利用しない時には暗号化して保存しておき、利用する時にのみ復号してメモリへロードする復号ロード機能等がある。
ところが、このような技術を利用しても、アプリケーションプログラムを保護するソフトウェア(以下、「保護制御モジュール」という)自体が攻撃者により改ざんされる可能性がある。保護制御モジュールが改ざんされると、アプリケーションプログラムが攻撃者の攻撃にさらされることになる。そこで、保護制御モジュールの改ざん検出を行う検知モジュールを用いて、保護制御モジュールの改ざん検出を行っている。
検知モジュールは、保護制御モジュールのすべてデータを読み込み、MAC(Message Authentication Code)値を計算することにより、保護制御モジュールの改ざん検出を行う。
日本国特許第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 AssignmentProblem of Diagnosable Systems," IEEE Trans. Electronic Computers,vol.16,pp.848−854,1968.
しかしながら、保護制御モジュールの改ざん検出を行う検知モジュールが改ざんされセキュリティが劣化している場合、保護制御モジュールに含まれる鍵データや保護制御モジュールの機能自体を、検知モジュールに不正利用される危険性がある。そうすると、検知モジュールによって、不正なアプリケーションがインストールされ、当該アプリケーションによって、ユーザの個人情報やコンテンツなどが漏えいする可能性がある。
本発明は、上記の問題点に鑑みなされたものであって、保護制御モジュールの鍵データや機能を検知モジュールに知られることなく、保護制御モジュールの改ざん検出を行うことができる情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路を提供することを目的とする。
上記の目的を達成するために、本発明は、アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置であって、前記保護制御モジュールは、暗号化された前記アプリケーションが入力データとして入力され、前記入力データを復号し、復号結果を出力データとして出力する復号手段と、前記出力データを、少なくともk(k≧2)個の分割データに分割する分割手段と、分割されたk個の分割データを、いずれかの検知モジュールに分配する分配手段と、前記複数の検知モジュールのそれぞれは、分配された分割データ、前記入力データと前記復号手段が正常動作を行った場合に期待される分割データの値とに基づいて生成された検証データ、および、入力データを用いて、分配された分割データが正しいか否かを判断する検証手段を備えることを特徴とする。
本発明によれば、各検知モジュールは、保護制御モジュール自体のデータを用いた検証を行わず、保護制御モジュールが実行するアプリケーションの復号処理を検証するので、各検知モジュールに対して、保護制御モジュールが有する秘匿データが漏洩するのを防止することができる。
また、本発明によれば、複数の検知モジュールが、それぞれ異なる分割データについて検証を行うので、各検知モジュールに対して、アプリケーションのデータが漏洩するのを防止することができる。
実施の形態1における不正モジュール検知システム1の全体構成図である。 実施の形態1における保護制御モジュール120のブロック図である。 実施の形態1における検知モジュール131のブロック図である。 実施の形態1における機器100のハードウェア構成図である。 実施の形態1における機器100のソフトウェア階層図である。 実施の形態1における判断部210のブロック図である。 実施の形態1における検証基データ配布部220のブロック図である。 実施の形態1における不正モジュール検知システム1の全体の動作を示すフローチャートである。 実施の形態1における初期設計処理のシーケンス図である。 実施の形態1における検知モジュール初期化処理のフローチャートである。 実施の形態1における検証基データ生成処理のフローチャートである。 実施の形態1におけるデータ分割を説明するための図である。 実施の形態1における分割データ1の検証データ(証明書)701のデータ構成を示す図である。 実施の形態1における分割データ2の検証データ(証明書)702のデータ構成を示す図である。 実施の形態1における分割データ3の検証データ(証明書)703のデータ構成を示す図である。 実施の形態1における検知処理のシーケンス図である。 実施の形態1における検知処理のシーケンス図である。 実施の形態1における検証基データ更新処理のシーケンス図である。 実施の形態1における相互監視処理のシーケンス図である。 実施の形態2における検知処理のシーケンス図である。 実施の形態2における検知処理のシーケンス図である。 実施の形態2における検知処理のシーケンス図である。 実施の形態3における保護制御モジュール120aのブロック図である。 実施の形態3における検知モジュール131aのブロック図である。 実施の形態3における検証基データ配布部220aのブロック図である。 実施の形態3における不正モジュール検知システムの全体の動作を示すフローチャートである。 実施の形態3における初期設計処理のシーケンス図である。 実施の形態3における初期設計処理のシーケンス図である。 実施の形態3における検知モジュール初期化処理のフローチャートである。 実施の形態3における解析・判断処理のシーケンス図である。 実施の形態3における相互認証処理のシーケンス図である。 実施の形態3における相互認証処理のシーケンス図である。 実施の形態3における回復処理のフローチャートである。 実施の形態3における相互監視処理のシーケンス図である。 実施の形態3における更新処理のシーケンス図である。 実施の形態3における更新処理のシーケンス図である。 実施の形態3における相互監視処理と更新処理との連携動作について説明するための図である。 実施の形態3における再暗号化処理のシーケンス図である。 実施の形態3における次ラウンド準備処理のシーケンス図である。 実施の形態4における不正モジュール検知システム2の全体構成図である。 実施の形態4における更新モジュール141のブロック図である。 実施の形態4における保護制御モジュール120bのブロック図である。 実施の形態4におけるアクセス制御モジュール140のブロック図である。 実施の形態4における機器100bのハードウェア構成図である。 実施の形態4における機器100bのソフトウェア階層図である。 実施の形態4における判断部210bのブロック図である。 実施の形態4における更新用ソフトウェア配布部240のブロック図である。 実施の形態4におけるモジュール無効化部250のブロック図である。 実施の形態4における不正モジュール検知システム2の全体の動作を示すフローチャートである。 実施の形態4における初期設計処理を説明するための図である。 実施の形態4における初期設計処理のシーケンス図である。 実施の形態4における更新モジュール初期化処理のフローチャートである。 実施の形態4における検知処理のシーケンス図である。 実施の形態4における解析・判断処理のシーケンス図である。 実施の形態4における相互認証処理のシーケンス図である。 実施の形態4における相互認証処理のシーケンス図である。 実施の形態4における回復処理のフローチャートである。 実施の形態4における相互監視処理のシーケンス図である。 実施の形態4における更新処理のシーケンス図である。 実施の形態4における更新処理のシーケンス図である。 実施の形態4における相互監視処理と更新処理との連携動作について説明するための図である。 実施の形態4における再暗号化処理のシーケンス図である。 実施の形態4における次ラウンド準備処理のシーケンス図である。 実施の形態4における無効化処理のシーケンス図である。 実施の形態5における保護制御モジュール120cのブロック図である。 実施の形態5における更新モジュール141cのブロック図である。 実施の形態5における更新用ソフトウェア配布部240cのブロック図である。 実施の形態5における初期設計処理のシーケンス図である。 実施の形態5における初期設計処理のシーケンス図である。 実施の形態5における更新モジュール初期化処理のフローチャートである。 実施の形態5における検証基データ生成処理のフローチャートである。 実施の形態5における検証基データ1200のデータ構成を示す図である。 実施の形態5における検知処理のシーケンス図である。 実施の形態5における再暗号化処理のシーケンス図である。 実施の形態5における次ラウンド準備処理のシーケンス図である。 実施の形態5における検証基データ更新処理のシーケンス図である。 実施の形態6において、復号処理を複数の復号部分処理に分割する具体例を説明するための図である。 実施の形態6における検証基データ1300のデータ構成を示す図である。 実施の形態6における検証基データ生成処理のフローチャートである。 実施の形態6における検知処理のシーケンス図である。 実施の形態6における検知処理のシーケンス図である。 実施の形態6における復号部分処理1の検証データ1301のデータ構成を示す図である。 実施の形態6における復号部分処理2の検証データ1302のデータ構成を示す図である。 実施の形態6における復号部分処理3の検証データ1303のデータ構成を示す図である。 実施の形態7における検証基データ1400のデータ構成を示すである。 実施の形態7における検証データ1401のデータ構成を示す図である。 実施の形態8における検知処理のシーケンス図である。 実施の形態8における検知処理のシーケンス図である。 実施の形態9における検証データ1500のデータ構成を示す図である。 実施の形態9における初期設計処理のシーケンス図である。 実施の形態9における初期設計処理のシーケンス図である。 実施の形態9における検証データ生成処理のフローチャートである。 実施の形態9における検知処理のシーケンス図である。 実施の形態9における検知処理のシーケンス図である。 実施の形態9における次ラウンド準備処理のシーケンス図である。 実施の形態9における検証データ更新処理のシーケンス図である。 実施の形態10における検知処理のシーケンス図である。 実施の形態10における検知処理のシーケンス図である。 実施の形態10における検知処理のシーケンス図である。 変形例8におけるアプリの分割方法の具体例を説明するための図である。 変形例41における検証基データ1600のデータ構成を示す図である。
請求項1に記載の態様は、アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置であって、前記保護制御モジュールは、暗号化された前記アプリケーションが入力データとして入力され、前記入力データを復号し、復号結果を出力データとして出力する復号手段と、前記出力データを、少なくともk(k≧2)個の分割データに分割する分割手段と、分割されたk個の分割データを、いずれかの検知モジュールに分配する分配手段と、前記複数の検知モジュールのそれぞれは、分配された分割データ、前記入力データと前記復号手段が正常動作を行った場合に期待される分割データの値とに基づいて生成された検証データ、および、入力データを用いて、分配された分割データが正しいか否かを判断する検証手段を備えることを特徴とする。
請求項2に記載の態様は、前記保護制御モジュールは、前記出力データの分割方法を記述した分割情報を保持しており、前記分割手段は、前記分割情報を用いて前記出力データを分割し、前記分配手段は、さらに、各検知モジュールに分配される分割データそれぞれに対する検証データと前記入力データとを、各検知モジュールへ送信することを特徴とする。
この構成によると、保護制御モジュールは、前記複数の検知モジュールに分配するための分割データを生成することができる。
請求項3に記載の態様は、前記各検知モジュールは、さらに、他の検知モジュールから、当該他の検知モジュールに分配された分割情報を取得し、予め与えられた判定情報に基づいて、他の検知モジュールの検証手段により検証処理が行われたか否かを確認する検証確認手段を備えることを特徴とする。
この構成によると、各検知モジュールは、前記出力データから生成されたk個の分割データがすべて検証されているかを確認することができるので、保護制御モジュールの不正をより正確に検知することができる。
請求項4に記載の態様は、前記検知モジュールのそれぞれは、前記検証手段による検証後、分配された分割データを消去し、他の検知モジュールが、分配された分割データを消去したか否かを確認することを特徴とする。
この構成によると、検知モジュール内に分割データが蓄積されないので、分割データから保護制御モジュールの情報やアプリケーションの情報が漏洩するのを防止することができる。
請求項5に記載の態様は、前記検知モジュールのそれぞれは、他の検知モジュールの改ざん検証を行う相互監視手段を備え、前記相互監視手段により、改ざんが検出された場合に、前記他の検知モジュールが分割データを消去していないと判断し、改ざんが検出されない場合に、前記他の検知モジュールが分割データを消去したと判断することを特徴とする。
検知モジュールは分割データを消去する機能(消去プログラム)を有する。そこで、相互監視処理により、検知モジュール自体が改ざんされていないことが確認できれば、前記消去プログラムが正常に動作し、分割データが消去されたことを保証することができる。
請求項6に記載の態様は、前記分割手段は、前記出力データに対して、互いに素であるk個の法を取ることにより、k個の分割データに分割し、前記分割情報は、分割数kおよびk個の法の値を示し、前記判定情報は、k個の法の値を乗算した値を示すことをと特徴とする。
この構成によると、中国人の剰余定理を用いることにより、k個の分割データから基の出力データを復元することが可能となる。
請求項7に記載の態様は、前記検知モジュールのそれぞれは、検証結果を外部の管理装置へ送信する送信手段を備え、前記複数の検知モジュールのうち、少なくとも1つは、前記外部の管理装置により前記保護制御モジュールが改ざんされていると判断された場合に、前記保護制御モジュールを更新する更新手段を備えることを特徴とする。
この構成によると、外部の正当な管理装置が、各検知モジュールによる検証処理を用いて、保護制御モジュールが改ざんされていると判断する場合には、改ざんされた保護制御モジュールを新しい保護制御モジュールに更新することができるので、アプリケーションが保持する秘匿データが漏洩するのを防止することができる。
請求項8に記載の態様は、アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置であって、前記保護制御モジュールは、暗号化された前記アプリケーションプログラムに対し、k個の処理工程から成る復号処理を実行する復号手段と、前記k個の処理工程それぞれの出力データであるk個の被検証データを、前記複数の検知モジュールへ分配する分配手段とを備え、前記複数の検知モジュールのそれぞれは、分配された被検証データ、前記被検証データに対応する処理工程への入力データ、および、前記入力データと前記復号手段が正常動作を行った場合に期待される出力データとに基づいて生成された検証データを用いて、前記被検証データが正しいか否かを判断する検証手段を備えることを特徴とする。
この構成によると、各検知モジュールは、保護制御モジュール自体のデータを用いた検証を行わず、保護制御モジュールが実行するアプリケーションの復号処理を検証するので、各検知モジュールに対して、保護制御モジュールが有する秘匿データが漏洩するのを防止することができる。
また、本発明によれば、複数の検知モジュールが、それぞれ異なる処理工程についての検証を行うので、各検知モジュールに対して、アプリケーションのデータが漏洩するのを防止することができる。
また、本発明によれば、復号処理のうち、どの処理工程が改ざんされているかを検知することもできる。
請求項9に記載の態様は、前記保護制御モジュールは、複数のアプリケーションとk個の検証基データを保持する検証基データ保持手段と、前記k個の検証基データから各検知モジュールへ配布するk個の検証データを生成する検証データ生成手段とを備え、前記k個の検証基データは、前記k個の処理工程のそれぞれに対応し、前記複数のアプリケーションのそれぞれについて、暗号化されたアプリケーションと、前記復号手段が正常動作を行った場合に期待される各処理工程の入力データと出力データとの対応関係を示す検証値と、複数の前記検証値を結合したデータから生成された結合データ検証値とを含み、前記検証データ生成手段は、前記k個の検証基データから、前記復号手段が復号するアプリケーションに対応する検証値、および、当該アプリケーション以外の暗号化されたアプリケーションのデータを削除することにより、k個の検証データを生成することを特徴とする。
請求項10に記載の態様は、各検知モジュールの検証手段は、前記被検証データと受信した前記検証データに含まれる暗号化されたアプリケーションのデータとから検証値を生成し、生成した前記検証値と受信した前記検証データに含まれる複数の検証値とを結合して結合データを生成し、前記結合データから結合データ検証値を生成し、生成した結合データ検証値と前記受信した検証データに含まれる前記結合データ検証値とが一致するか否かを検証することを特徴とする。
この構成によると、保護制御モジュールから各検知モジュールへ、保護制御モジュールが復号したアプリケーションに関する情報のみが開示された検証データが分配されるので、検証に不要な情報(他のアプリケーションに関する情報)が、検知モジュールが開示されるのを防止することができる。
各検知モジュールは、与えられた検証データを用いて、保護制御モジュールの検証を行うことができる。
請求項11に記載の態様は、前記検知モジュールのそれぞれは、前記検証手段による検証後、受信した検証データを消去し、他の検知モジュールが、受信した検証データを消去したか否かを確認することを特徴とする。
この構成によると、検知モジュール内に検証データが蓄積されないので、検証データから保護制御モジュールの情報やアプリケーションの情報が漏洩するのを防止することができる。
請求項12に記載の態様は、前記検知モジュールのそれぞれは、他の検知モジュールの改ざん検証を行う相互監視手段を備え、前記相互監視手段により、改ざんが検出された場合に、前記他の検知モジュールが検証データを消去していないと判断し、改ざんが検出されない場合に、前記他の検知モジュールが前記検証データを消去したと判断することを特徴とする。
この構成によると、検知モジュールは検証データを消去する機能(消去プログラム)を有する。そこで、相互監視処理により、検知モジュール自体が改ざんされていないことが確認できれば、前記消去プログラムが正常に動作し、検証データが消去されたことを保証することができる。
請求項13に記載の態様は、アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置であって、前記保護制御モジュールは、入力データに対して所定の処理を施し、出力データを出力する処理手段と、前記複数の検知モジュールのそれぞれからチャレンジデータを受信するチャレンジデータ受信手段と、前記処理手段にチャレンジデータを入力したときの出力データであるレスポンスデータを、各検知モジュールへ送信する送信手段とを備え、前記複数の検知モジュールのそれぞれは、複数のチャレンジデータについて、各チャレンジデータを入力データとしたときに前記処理手段が正常動作を行った場合に期待される出力データと前記チャレンジデータとの対応関係を示す検証データを保持する保持手段と、1のチャレンジデータを前記保護制御モジュールへ送信するチャレンジデータ送信手段と、前記保護制御モジュールから前記レスポンスデータを受信するレスポンスデータ受信手段と、前記検証データを用いて、受信した前記レスポンスデータを検証する検証手段とを備え、少なくとも2つの検知モジュールは、同一のレスポンスデータに基づいて前記保護制御モジュールを検証することを特徴とする。
請求項14に記載の態様は、前記検証データは、複数のチャレンジデータを含み、前記チャレンジデータ送信手段は、前記検証データに含まれる前記複数のチャレンジデータから1のチャレンジデータを選択し、前記保護制御モジュールへ送信することを特徴とする。
この構成によると、各検知モジュールは、保護制御モジュール自体のデータを用いた検証を行わず、保護制御モジュールが実行する処理を検証するので、各検知モジュールに対して、保護制御モジュールが有する秘匿データが漏洩するのを防止することができる。また、本発明によれば、各検知モジュールに対して、アプリケーションのデータが漏洩するのを防止することができる。
請求項15に記載の態様は、前記保護制御モジュールは、前記k個の処理工程の処理順序を示す順序情報を生成し、各検知モジュールへ、生成した前記順序情報を送信し、各検知モジュールの検証手段は、受信した前記順序情報が示す処理順序にしたがい、前記被検証データを検証することを特徴とする。
請求項16に記載の態様は、各検知モジュールは、当該検知モジュールが検証する処理工程の直前の処理工程に係る検証処理を行った検知モジュールから、前記被検証データを受信する被検証データ受信手段と、前記検証手段による検証に成功すると、前記順序情報を参照し、次の処理工程に係る検証処理を行う検知モジュールを特定し、特定した前記検知モジュールへ被検証データを送信する被検証データ送信手段とを備え、前記検証手段は、前記被検証データ受信手段が受信した前記被検証データを用いて、検証処理を行うことを特徴とする。
請求項17に記載の態様は、各検知モジュールは、さらに、前記受信手段が受信した前記被検証データと、前記入力データとが一致するか否かを検証する入力データ検証手段と、前記被検証データと前記入力データとが一致しない場合、外部にその旨を通知する通知手段とを備える特徴とする。
この構成によると、前記復号手段が、k個の処理工程を正しい順序で実行したかいなかを検証することができる。
また、各処理工程が正しい順序で実行されていなければ、保護制御モジュールが不正動作を行っているとみなして、その旨を正当な管理装置へ通知することができる。
請求項18に記載の態様は、前記検証データは、外部の管理装置のデジタル署名を含むことを特徴とする。
請求項19に記載の態様は、前記検証データは、前記入力データと前記復号手段が正常動作を行った場合に期待される出力データとに対する外部の管理装置のデジタル署名であることを特徴とする。
この構成により、検証データの正当性を保証することができる。
請求項20に記載の態様は、前記検知モジュールのそれぞれは、検証結果を外部の管理装置へ送信する送信手段を備え、前記複数の検知モジュールのうち、少なくとも1つは、前記管理装置により前記保護制御モジュールが改ざんされていると判断された場合に、前記保護制御モジュールを更新する更新手段を備えることを特徴とする。
この構成によると、外部の正当な管理装置が、各検知モジュールによる検証処理を用いて、保護制御モジュールが改ざんされていると判断する場合には、改ざんされた保護制御モジュールを新しい保護制御モジュールに更新することができるので、アプリケーションが保持する秘匿データが漏洩するのを防止することができる。
請求項21に記載の態様によると、入力された暗号化データ復号し、復号結果を出力データとして出力する復号手段と、前記出力データを複数の分割データに分割する分割手段とを備え、各分割データを検証する情報処理装置と接続された管理装置であって、前記入力データと前記復号手段が正常動作を行った場合に期待される各分割データとから、検証基データを生成する検証基データ生成手段と、前記検証基データを前記情報処理装置へ送信する送信手段とを備えることを特徴とする。
この構成によると、情報処理層装置は、管理装置によって生成された検証基データを用いて、分割データ(復号手段の処理)を検証することができるので、検証の正当性を保証することができる。
請求項22に記載の態様は、前記管理装置は、さらに、前記情報処理装置から各分割データの検証結果を受信する受信手段と、受信した前記複数の検証結果から、前記復号手段が改ざんされているか否かを判断する判断手段と、前記判断手段により改ざんされていると判断された場合、前記情報処理装置へ前記復号手段の更新を指示する更新指示手段とを備えることを特徴とする。
この構成によると、改ざんされた復号手段を更新することができるので、情報処理装置が保持する秘匿データが漏洩するのを防止することができる。
請求項23に記載の態様は、入力された暗号化データを複数の処理工程を経て復号する復号手段を備え、各処理工程を検証する情報処理装置と接続された管理装置であって、前記複数の処理工程への入力データと前記復号手段が正常動作を行った場合に期待される各処理工程からの出力データとから、検証基データを生成する検証基データ生成手段と、生成した前記検証基データを前記情報処理装置へ送信する送信手段とを備えることを特徴とする。
請求項24に記載の態様は、前記情報処理装置の前記復号手段は、暗号化された複数のアプリケーションを復号し、前記検証基データ生成手段は、前記複数の処理工程のそれぞれに対応し、前記複数のアプリケーションのそれぞれについて、暗号化されたアプリケーションと、前記復号手段が正常動作を行った場合に期待される各処理工程の入力データと出力データとの対応関係を示す検証値と、複数の前記検証値を結合したデータから生成された結合データ検証値とを含む複数個の前記検証基データを生成することを特徴とする。
請求項25に記載の態様は、複数のチャレンジデータを生成するチャレンジデータ生成手段と、各チャレンジデータを入力データとして、所定の処理が正常動作した場合に期待される出力データとの対応関係を示す検証データを生成する検証データ生成手段と、情報処理装置へ前記チャレンジデータと前記検証データとを送信する送信手段とを備えることを特徴とする。
この構成によると、情報処理層装置は、管理装置によって生成された検証基データを用いて、各処理工程を検証することができるので、検証の正当性を保証することができる。
以下では、本発明の実施の形態について、図面を参照しながら詳細に説明する。
<実施の形態1>
ここでは、実施の形態1として、本発明に係る情報処理装置および管理装置が適用された不正モジュール検知システム1について説明する。
1.不正モジュール検知システム1の構成
図1は、不正モジュール検知システム1の全体構成図である。
不正モジュール検知システム1は、図1に示すように、本発明に係る情報処理装置である機器100、および、本発明の管理装置に係る管理装置200から構成される。機器100と管理装置200とは、ネットワークを介して接続されている。
(1)機器100の構成
機器100は、ネットワークを介した様々なサービスをユーザに提供する機器である。例えば、機器100は、コンテンツ配信サーバにアクセスし、音楽や映像などのコンテンツを購入して再生したり、金融機関のシステムにアクセスし、ネットバンキング(預金の残高照会や口座振り込みなど)を利用したりする。
図1に示すように、機器100は、アプリケーションソフト(以下、「アプリ」という。)110、アプリ111、アプリ112、アプリ113、アプリ114、保護制御モジュール120、および、検知モジュール群130を含む。
アプリ110、111、112、113、114は、それぞれ、ネットワークを介して、機器100を使用するユーザに、様々な機能を提供するためのソフトウェアである。例えば、コンテンツ配信サーバ(不図示)から音楽コンテンツや映像コンテンツを購入し、その購入したコンテンツを再生するソフトウェアや、金融機関のシステム(不図示)にアクセスし、残高確認や振り込みなどのネットバンキングを利用するためのソフトウェアである。
各アプリは、コンテンツ配信サーバや金融機関のシステムと認証を行うための認証鍵など、秘匿データを有している。秘匿データは、悪意のある第三者(以下、「攻撃者」という。)によりアプリから抜き取られ、不正に利用されないようにするために保護される必要があるデータである。
保護制御モジュール120は、攻撃者により各アプリが解析され、認証鍵などの秘匿データが抜き取られないように各アプリを保護するための機能を制御するモジュールである。アプリを保護するための機能としては、アプリを利用しない時には暗号化して保存しておき、アプリを利用する時にのみ復号してメモリへロードする復号ロード機能や、アプリが改ざんされていないかをチェックする改ざん検出機能、デバッガなどの解析ツールが動作しないかをチェックする解析ツール検出機能などがある。
保護制御モジュール120は、これらの機能の動作を制御し、各アプリが攻撃者によって解析されていないかなどをチェックする。攻撃者による攻撃を検出したときには、保護制御モジュール120は、攻撃が検出されたアプリの動作を停止し、当該アプリが利用していたメモリ、特に秘匿データが記録されたメモリ領域のクリア(例えば、メモリ領域を「0」で埋める)などの処理を行い、秘匿データの漏洩を防止する。
検知モジュール群130は、図1に示すように、3つの検知モジュール131、検知モジュール132、および、検知モジュール133から構成される。
検知モジュール131、132、133は、保護制御モジュール120が改ざんされているか否かを検証するために、保護制御モジュール120による暗号化コンテンツ復号処理の結果が正しいか否かを判断する。
また、検知モジュール131、132、133は、攻撃者によって検知モジュールが改ざんされ、改ざんされた検知モジュールが不正に利用されることを防止するために、相互監視処理を実施する。相互監視処理とは、検知モジュールが相互に改ざん検出処理を実施することである。これにより、検知モジュール群130に含まれる一部の検知モジュールが攻撃された場合であっても、それを検出することができるので、機器100の信頼性が向上する。
各検知モジュールは、保護制御モジュール120についての検証結果、および、検知モジュール間の相互監視処理の結果を、ネットワークを介して管理装置200へ送信する。
なお、以下では、アプリ110、111、112、113、114について、特にいずれかを特定しないで説明するときには、符号を省略することがある。
同様に、検知モジュール131、132、133について、特にいずれかを特定しないで説明するときには、符号を省略することがある。
(保護制御モジュール120の詳細な構成)
図2は、保護制御モジュール120の機能的な構成を示す機能ブロック図である。
同図に示すように、保護制御モジュール120は、受信部301、送信部302、制御部303、復号ロード部304、改ざん検出部305、解析ツール検出部306、暗復号鍵保持部307、検証基データ保持部308、検証データ生成部309、および、アプリ分割部310から構成される。
受信部301は、各検知モジュールから、分散情報や各種依頼などを受信する。
送信部302は、各検知モジュールへ、各種依頼などを送信する。
制御部303は、復号ロード部304、改ざん検出部305、および解析ツール検出部306を制御し、各アプリが攻撃者により攻撃されている場合に、それを検出する。
復号ロード部304は、暗号化されているアプリ110、111,112、113、114を実行するときに、暗復号鍵を用いて復号し、メモリ上にロードする処理を行う。また、アプリ110、111,112、113、114の実行中に、他のアプリへのコンテキストスイッチが発生すると、復号ロード部304は、メモリ上のデータを、暗復号鍵を用いて暗号化する。そして、再びアプリ110、111,112、113、114へコンテキストスイッチしたときに、暗号化したデータを復号する処理を行う。
改ざん検出部305は、各アプリが改ざんされているかどうか改ざん検出処理を実行する。改ざん検出処理には、各アプリに付加されている改ざん検出用の証明書を用いる方法と、MAC値を比較する方法とがある。
解析ツール検出部306は、デバッガなどの解析ツールがインストールされたり、動作したときにそれを検出する。不正な攻撃者が各アプリを攻撃するために、解析ツールをインストールしたり、動作させることが想定されるからである。検出方法としては、例えば、ファイル名を検索する方法や、デバッガが使用する特殊なレジスタが使用されているかを調べる方法や、デバッガが設定する割り込みを検出する方法などを用いる。
暗復号鍵保持部307は、各アプリを暗復号するための暗復号鍵を保持する。
検証基データ保持部308は、管理装置200から受信した検証基データを保持する。検証基データの構成は後述する。
検証データ生成部309は、検証基データ保持部308に保持している検証基データから検証データを生成する。検証データ生成処理は後述する。
アプリ分割部310は、復号ロード部304で復号した各アプリのデータを分割する。
(検知モジュール131の詳細な構成)
次に、検知モジュール131、132、133の詳細について説明する。
図3は、検知モジュール131の機能的な構成を示す機能ブロック図である。検知モジュール132、133も同様の構成を有する。
検知モジュール131は、受信部401、送信部402、制御部403、検証部404、MAC値生成部405、MAC値テーブル更新部406、および、検証データ保持部407から構成される。
受信部401は、管理装置200から各種指示を受信する。また、受信部401は、他の検知モジュールから相互監視を行うために必要な、当該他の検知モジュールの本体を受信する。さらに、受信部401は、他のモジュールへ依頼した処理の結果や、他の検知モジュールによる保護制御モジュール120の検証結果などを受信する。
送信部402は、管理装置200、保護制御モジュール120、および、他の検知モジュールへ、各種処理結果や証明書などのデータを送信する。
制御部403は、受信部401が受信した各種指示に基づいて、検証部404を制御し、保護制御モジュール120および他の検知モジュールの検証処理を行う。
検証部404は、検証データ保持部407に保持されている検証データを用いて、保護制御モジュール120が正常に動作しているかを検証する。
また、検証部404は、各検知モジュールに付加されている証明書や、事前に算出された検証用のMAC値などを用いて、各検知モジュールが改ざんされていないかを検証する。検証部404が、どのタイミングでどのモジュールの改ざん検出処理を行うのかは、予め、管理装置200から与えられている。検証部404は、管理装置200から改ざん検出対象のモジュールの変更や改ざん検出を行うタイミングの変更の指示があった場合には、指示に従って変更する。
MAC値生成部405は、検証鍵を保持している。MAC値生成部405は、検証部404が改ざん検出処理にMAC値を用いる場合、検証鍵を用いてMAC値を生成する。
MAC値テーブル更新部406は、各モジュールのMAC値が格納されているMAC値テーブルを更新する。MAC値テーブルには、モジュールを識別するためのモジュール識別子と、そのモジュールに対応するMAC値とが対になって格納されている。MAC値生成部405は、改ざん検出処理の対象であるモジュールを取得し、MAC値を計算する。検証部404は、計算されたMAC値とMAC値テーブルに格納されている対象モジュールのMAC値とを比較することにより改ざん検出を行う。
検証データ保持部407は、保護制御モジュール120の復号ロード部304が正常に動作するか否かを検証するための検証データを保持する。検証データは、保護制御モジュール120から与えられたものである。
なお、署名方式に関しては非特許文献1に詳しく説明されている。証明書に関しては非特許文献2に詳しく説明されている。また、分散情報に関しては特許文献2に詳しく説明されている。
(機器100のハードウェア構成)
続いて、図4を用いて、機器100のハードウェア構成について説明する。
図4に示すように、機器100は、CPU(Central Processing Unit)171、不揮発性メモリであるEEPROM(Electrically Erasableand Programmable ReadOnly Memory)172、RAM(Random AccessMemory)173、およびNIC(Network Interface Card)174などを含んで構成される。また、これらはバスを介して、相互に通信可能に接続されている。
EEPROM172には、保護制御モジュール120、検知モジュール131、132、133、および、各アプリなどが格納されている。
EEPROM172に格納されている各種モジュールをCPU171が実行することにより、各種モジュールの各機能部が実現される。各機能部は、具体的には、コンピュータプログラムによって記述されている。
RAM173は、CPU171のワークエリアとして用いられる。RAM173には各検知モジュールおよび各アプリがロードされる。改ざん検出処理の対象となる検知モジュールは、RAM173上で動作している更新モジュールである。
NIC174は、ネットワークに接続するための拡張カードである。
(機器100のソフトウェア階層)
続いて、図5を用いて、機器100のソフトウェア階層について説明する。
図5に示すように、検知モジュール群130は、OS180の中に組み込まれている。アプリ110、111、112、113、114は、OS180上で動作し、保護制御モジュール120及びブートローダ150は、OS180の管理外にある。
機器100の起動の際には、まず保護制御モジュール120および検知モジュール群130が起動された上でアプリが実行される。
(2)管理装置200の構成
次に、図1に戻り、管理装置200の構成について説明する。
管理装置200は、保護制御モジュール120が正しく動作しているか否かを検証するために必要な検証基データを生成し、機器100へ配布する装置である。管理装置200は、判断部210、検証基データ配布部220、および通信部230から構成される。通信部230は、ネットワークを介して機器100と通信を行う。なお、機器100と管理装置200との通信には、通信データを暗号化するセキュアな通信路を用いてもよい。
管理装置200は、具体的には、CPU、ROM、RAM、ハードディスクユニットなどを備えるコンピュータシステムである。CPUが、ROMまたはハードディスクユニットに記憶されているコンピュータプログラムにしたがって動作することにより、管理装置200は、上記の機能を発揮する。
(判断部210の詳細な構成)
図6は、判断部210の構成を機能的に示す機能ブロック図である。同図に示すように、判断部210は、受信部501、送信部502、指示生成部503、およびモジュール特定部504から構成される。
受信部501は、各検知モジュールから、検証結果や各種依頼などを受信し、指示生成部503へ出力する。さらに、受信部501は、検証基データ配布部220から処理が完了した通知を受けると、指示生成部503にその旨を通知する。
送信部502は、指示生成部503によって生成された指示を、検証基データ配布部220へ送信する。
指示生成部503は、各検知モジュールから受信した改ざん検出結果(以下、「相互監視結果」ということがある。)を、モジュール特定部504に出力する。また、指示生成部503は、モジュール特定部504から、改ざんされている不正な検知モジュールを識別する情報を取得し、取得した情報を基に検証基データ配布部220に対する指示を生成する。また、指示生成部503は、各検知モジュールから検証データ生成依頼を受信すると、検証基データ配布部220に対する指示を生成する。
モジュール特定部504は、各検知モジュールから受信した相互監視結果を用いて、不正な検知モジュールを特定する。モジュール特定部504は、不正な検知モジュール識別する情報を指示生成部503へ出力する。
モジュール特定部504は、例えば、2つの検知モジュールが「改ざんされている」と判断した検知モジュールを、不正な更新モジュールであると特定する。
(検証基データ配布部220の詳細な構成)
図7は、検証基データ配布部220の構成を機能的に示す機能ブロック図である。
同図に示すように、検証基データ配布部220は、受信部601、送信部602、制御部603、認証部604、証明書生成部605、署名秘密鍵保持部606、暗号鍵保持部607、データ分割部608、アプリ保持部609、検証基データ生成部610、および保護制御モジュール保持部611から構成される。
受信部601は、各検知モジュールによる保護制御モジュールの検証結果、および、検知モジュール間の相互監視結果を受信する。
送信部602は、機器100に対し、各アプリおよび保護制御モジュール120の改ざん検証の依頼や検知モジュール群130の相互監視処理の依頼、検証に必要な検証基データなどを送信する。
制御部603は、検証基データ配布部220内部の各構成要素を制御する。
認証部604は、各検知モジュール、および、保護制御モジュール120との間で相互認証を行う。
証明書生成部605は、署名秘密鍵保持部606に保持されている署名秘密鍵を用いて、保護制御モジュール120の復号ロード部304による暗号化アプリの復号処理に対する署名データを生成する。
署名秘密鍵保持部606は、証明書生成部605により署名データを生成するときに利用する管理装置200の署名秘密鍵を保持する。
暗号鍵保持部607は、保護制御モジュール120と共有している暗号鍵を保持する。
データ分割部608は、保護制御モジュール120の復号ロード部304で実行される暗号化アプリの復号処理の出力データ(復号された平文のアプリのデータ)を、複数個の分割データに分割する。
アプリ保持部609は、機器100にインストールする各アプリを保持する。
検証基データ生成部610は、復号ロード部304に入力される暗号化された各アプリのデータ(入力データ)と、復号ロード部304が正常に動作した場合に出力される平文の各アプリのデータをデータ分割部608により分割した各分割データとから検証基データを生成する。検証基データ生成部610は、生成した検証基データを機器100へ送信する。検証基データの構成については後述する。
保護制御モジュール保持部611は、機器100にインストールする保護制御モジュール120を保持する。
2.不正モジュール検知システム1の動作
(1)全体の動作概要
図8は、不正モジュール検知システム1全体の動作概要を示すフローチャートである。
先ず、機器100が工場で製造される際に初期設計処理が行われる(ステップS1)。初期設計処理では、保護制御モジュール120を更新するために必要となる各種鍵データや、ソフトウェア更新後に必要となるデータ(秘密分散法を用いて分散した分散情報)などを検知モジュール131、132、133のそれぞれに埋め込む。
その後、機器100が工場から出荷され、ユーザの利用に供される。
ユーザにより機器100が利用される際には、機器100内部では、保護制御モジュール120が、各アプリを攻撃者による攻撃から保護する。そして、検知モジュール131、132、133が保護制御モジュール120の検知処理を行う(ステップS2)。
また、不正モジュール検知システム1は、検知モジュール131、132、133が相互に改ざん検出を実行する相互監視処理を行う。相互監視処理は、ステップS2の検知処理の中で、定期的に実行される。
(2)初期設計処理の動作
ここでは、ステップS1の初期設計処理について説明する。
図9は、初期設計処理の動作を示すシーケンス図である。なお、ここでは、各検知モジュールがそれぞれ個別に行う処理を、検知モジュール群130が行う処理として記載している。
機器100の工場製造時に、管理装置200は、保護制御モジュール保持部611に保持されている保護制御モジュール120と、アプリ保持部609に保持されている各アプリを、機器100に送信する(ステップS11)。
機器100は、受信したアプリや保護制御モジュール120をインストールする(ステップS12)。また、機器100は、アプリ、保護制御モジュール120に加えて、検知モジュール131、132、133や、機器100の動作に必要なソフトウェアをインストールする。インストールされるソフトウェアには、改ざんの有無を検証するための証明書(改ざん検出用証明書)が付加されている。この改ざん検出用証明書は、管理装置200の署名秘密鍵により署名が施されている。
ソフトウェアのインストールが終了すると、機器100はソフトウェアが正常に動作するかをテストする初期化処理を行う(ステップS13)。
検知モジュール群130は、検知モジュール初期化処理を行う(ステップS14)。
保護制御モジュール120は、管理装置200へ検証基データの送付を依頼する(ステップS15)。管理装置200は、保護制御モジュール120から依頼を受信すると、検証基データ生成処理を行う(ステップS16)。その後、管理装置200は、検証基データを保護制御モジュール120へ送信する(ステップS17)。保護制御モジュール120は、管理装置200から検証基データを受信し、受信した検証基データを記憶する(ステップS18)。
(3)検知モジュール初期化処理の動作
ここでは、ステップS14の検知モジュール初期化処理について説明する。
図10は、検知モジュール131の初期化処理の動作を示すフローチャートである。
検知モジュール131は、改ざん検出対象となる他の検知モジュールに付加されている改ざん検出用証明書を検証する(ステップS21)。
改ざん検出量証明書の検証は、検知モジュールのデータから検証値を生成し、生成した検証値と改ざん検出用証明書に記述されている検証値とを比較することにより行われる。なお、検証値は、ハッシュ値や署名などを用いる。
生成した検証値が改ざん検出用証明書に記述されている検証値と一致する場合(ステップS22でY)、検知モジュール131は、他の検知モジュールと保護制御モジュール120それぞれに対してMAC値を生成し、MAC値保持部に保持する(ステップS23)。
生成した検証値が改ざん検出用証明書に記述されている検証値と一致しない場合(ステップS22でN)、エラーを出力して停止する(ステップS24)。
(4)検証基データ生成処理の動作
ここでは、ステップS16の検証基データ生成処理について説明する。
図11は、検証基データ生成処理の動作を示すフローチャートである。
検証基データ生成部610は、アプリ保持部609に保持している複数のアプリを、暗号鍵保持部607に保持している暗号鍵を用いて暗号化する(ステップS31)。
一方、データ分割部608は、図12に示すように、各アプリのデータを分割する(ステップS32)。
分割方法は、メモリ上にロードされるアプリのデータを一定サイズで分割してもよいし、それぞれ異なるサイズに分割してもよい。また、アプリのデータの法を取ってもよい。分割されたアプリのデータを復元できるように、中国人剰余定理を用いて分割するとしてもよい。中国人剰余定理は、非特許文献1の15ページに記載されている。
ここでは、アプリのデータを3分割した例を用いて説明する。
検証基データ生成部610は、暗号化アプリと、データ分割部608によって分割された各分割データ(分割データ1、分割データ2、分割データ3)との対応を示す証明書を生成する(ステップS33)。さらに、検証基データ生成部610は、ステップS33で生成した証明を含む検証基データを生成する(ステップS34)。
図13、図14、および図15を用いて、検証基データについて説明する。
図13に記載の証明書701は、暗号化アプリと分割データ1との対応を示す証明書である。図14に記載の証明書702は、暗号化アプリと分割データ2との対応を示す証明書である。図15に記載の証明書703は、暗号化アプリと分割データ3との対応を示す証明書である。
各証明書は、分割情報、判定情報、アプリのそれぞれについて各アプリの識別情報、識別情報に対応する暗号化アプリのデータおよび検証値、ならびに、復号処理証明書から構成される。
分割情報は、当該分割データが、全ての分割データのうちのどの部分に該当するのかを示す情報である。
例えば、アプリのデータを一定のサイズで3分割した場合は、分割情報1は(3,1)のように記載される。これは、分割数が3であり、でそのうちの1番目のデータであることを示す。同様に、分割情報2は、(3,2)、分割情報3は、(3,3)となる。また、アプリのデータの法を取った場合、分割情報は、(3,17)のように記載される。これは、分割数3であり、法の値が17であることを示す。
なお、分割情報は、これに限定されず、それぞれの分割データが区別可能となる情報を用いればよい。
判定情報は、分割したデータのすべてが検証されたか判定するために用いられる情報である。例えば、アプリのデータを一定のサイズで3分割した場合、分割数の「3」が記載される。これにより、異なる分割データが3つ揃えば、すべての分割データが検証されたことがわかる。また、アプリのデータを7、11、17のそれぞれで法を取った場合、7、11、および17を掛け合わせた値「1309」が記載される。これにより、中国人剰余定理が成り立っていることがわかる。
また、中国人剰余定理が成り立つために、アプリの暗号化および復号に公開鍵暗号方式のRSA暗号を用いる場合には、判定情報は、RSA暗号の公開鍵であるn(=p×q)(p、qは素数)の値より大きい値であればよい。また、共通鍵暗号方式のAES暗号を用いる場合には、判定情報は、128ビットより大きい値であればよい。RSA暗号に関しては非特許文献1の110ページから113ページに記載されている。
なお、判定情報は証明書に含めずに、予め各検知モジュールが保持するとしてもよい。また、いずれかの検知モジュールが保持しており、他の検知モジュールに送信するとしてもよい。
検証値は、暗号化したアプリのデータと分割データとを結合したデータのハッシュ値である。なお、ハッシュ値を計算する対象データとして、アプリの識別情報や保護制御モジュール120の識別情報などを含めてもよい。
復号処理証明書は、5つの検証値を結合したデータのハッシュ値を計算し、計算されたハッシュ値に対し、管理装置200の署名秘密鍵を用いて生成された署名データである。
図13、図14、および図15に記載の3つの証明書を含めて検証基データとする。
(5)検知処理の動作
ここでは、ステップS2の検知処理について説明する。
図16および図17は、検知処理を示すシーケンス図である。
保護制御モジュール120は、アプリ110を実行するコマンドを受け付けると、暗号化されたアプリ110を復号ロード部304で復号する(ステップS41)。
次に、アプリ分割部310は、検証基データ保持部308に保持されている検証基データに含まれる分割情報に基づいて、復号したアプリ110を分割する(ステップS42)。分割情報に、3分割することが記載されていれば、アプリを3分割する。以下、アプリを3分割した場合について説明する。
保護制御モジュール120は、アプリの識別情報と、分割データと、分割データに対応する検証データとを、各検知モジュールへ分配する。ここで、検証データとは、図13〜15に示した証明書のことである。検証データ生成部309は、検証基データ保持部308に保持されている検証基データから、分割データに対応する証明書を選択し、選択した証明書を検証データとする。
ここでは、保護制御モジュール120は、検知モジュール131へアプリ識別情報、分割データ1、および検証データ(図13の証明書701)を送信し(ステップS43)、検知モジュール132へアプリ識別情報、分割データ2、および検証データ(図14の証明書702)を送信し(ステップS44)、検知モジュール133へアプリ識別情報、分割データ3、および検証データ(図15の証明書703)を送信する(ステップS45)。
各検知モジュールは、保護制御モジュール120によるアプリの復号結果が正しいか否か受信した検証データを用いて検証する(ステップS46)。
具体的に、各検知モジュールは、検証データに含まれる暗号化アプリのデータと分割データとから検証値を生成する。そして、生成した検証値と検証データに含まれる検証値とを比較し、両者が一致するか判断する。さらに、各検知モジュールは、復号処理証明書の署名検証を行う。
各検知モジュールは、検証値が一致しない、または、署名が正しくない場合には、保護制御モジュール120が改ざんされていると判定し(ステップS47でY)、判断部210へ検出結果を送信する(ステップS48)。
各検知モジュールは、検証値が一致し、かつ、署名が正しい場合には、保護制御モジュール120が改ざんされていない判定し(ステップS47でN)、検証データに含まれる分割情報を、他の検知モジュールへ送信する(ステップS49)。
そして、各検知モジュールは、保護制御モジュール120から送信されたすべての分割データが検証されたか否かを確認する。以下、具体的に説明する。
検知モジュール131は、分割情報1を検知モジュール132および検知モジュール133へ送信する。分割情報1は、分割数が3であり、そのうちの1番目のデータであることを示した情報である。
検知モジュール131は、検知モジュール132から分割情報2を受信し、検知モジュール133から分割情報3を受信する。検知モジュール131は、検証データに含まれる判定情報を参照することにより、アプリのデータが3分割されていることがわかる。そして、検知モジュール131は、受信した分割情報2および分割情報3の内容を確認することにより、2番目のデータと3番目のデータがそれぞれ検知モジュール132および133により検証されたことを知ることができる。
よって、各検知モジュールは、保護制御モジュール120から送信されたすべての分割データがいずれかの検知モジュールにより検証されたことを確認することができる。
すべての分割データが検証されていない場合、または、すべての分割データが1つの検知モジュールに送信されていた場合には、保護制御モジュール120が不正な動作を行ったとし、保護制御モジュール120が改ざんされていると判定し(ステップS50でY)、判断部210へ検出結果を送信する(ステップS51)。
(6)検証基データ更新処理の動作
不正モジュール検知システム1では、機器100に新たなアプリを追加する場合、保護制御モジュール120が保持している検証基データを更新する必要がある。
ここでは、図18のシーケンス図を用いて、機器100に新たなアプリ(「アプリ115」と記載する。)を追加する場合を具体例として用い、検証基データ更新処理の動作について説明する。
機器100に新たなアプリ115がダウンロードされると、保護制御モジュール120は、アプリ115を受信する(ステップS61)。保護制御モジュール120は、暗復号鍵保持部307に保持されている暗復号鍵を用いてアプリ115を暗号化する(ステップS62)。そして、保護制御モジュール120は、アプリ115の識別情報と暗号化されたアプリ115と検証基データの送付依頼とを管理装置200へ送信する(ステップS63)。
管理装置200は、暗号化されたアプリ115を保護制御モジュール保持部611で保持している保護制御モジュール120の暗復号鍵で復号する。そして、復号したアプリ115を含む新たな検証基データを生成する(ステップS64)。管理装置200は、新たな検証基データを保護制御モジュール120へ送信する(ステップS65)。保護制御モジュール120は、新たな検証基データを受信し、記憶する(ステップS66)。
(7)相互監視処理の動作
次に、図19のシーケンス図を用いて、検知モジュール群130の相互監視処理について説明する。
検知モジュール131は、検知モジュール132の改ざん検出処理を行い(ステップS71)、検知モジュール132は、検知モジュール133の改ざん検出処理を行い(ステップS72)、検知モジュール133は、検知モジュール131の改ざん検出処理を行う(ステップS73)。
ステップS71〜73の改ざん検出処理は、検証鍵を用いて各検知モジュールのMAC値を算出し、算出したMAC値と、MAC値テーブルに保持されているMAC値とを比較することにより行う。また、MAC値の替わりに、各検知モジュールのハッシュ値を用いてもよい。
各検知モジュールは、改ざんを検出した場合(ステップS74でY)、検出結果を判断部210へ送信する(ステップS75)。
判断部210は、各検知モジュールから検出結果を受信し(ステップS76)、改ざんされた検知モジュールがあるか否かを判定する(ステップS77)。改ざんされた検知モジュールがある場合(ステップS77でY)、判断部210は、機器100の各検知モジュールに、検知処理(ステップS2)の停止を通知する(ステップS78)。改ざんされた検知モジュールがない場合(ステップS77でN)、処理を継続する。
ここでは、判断部210は、相互監視処理の結果を用いて、各検知モジュールが改ざんされているか否かを判定した。しかし、これに限定されず、判断部210は、上述した分割データの検証結果を送信しない場合に、当該検知モジュールを改ざんされたと判定してもよい。
3.実施の形態1の効果
実施の形態1では、保護制御モジュール120による暗号化アプリの復号処理を検証するので、保護制御モジュール120が保持する暗復号鍵を用いることなく、保護制御モジュールが改ざんされているか否かを判定することができる。
また、各検知モジュールは、分割データを検証するので、各検知モジュールがアプリのすべてのデータを知ることなく検証することができる。
これにより、検知モジュールが改ざんされ不正動作をしたとしても、保護制御モジュール120の情報やアプリの情報が漏洩することがないので、システムの安全性を高めることができる。
<実施の形態2>
ここでは、本発明の実施の形態2について説明する。
1.概要
実施の形態1では、各検知モジュールがアプリの分割データを収集すると、アプリのデータが漏洩する可能性がある。そこで、実施の形態2では、分割データの検証が完了した後に、分割データおよび検証データを消去することにより、アプリのデータが漏洩するのを防止する。また、実施の形態2では、分割データおよび検証データの消去後に相互監視処理を行うことにより、分割データおよび検証データが消去されたか否かを相互に確認する。
2.検知処理の動作
実施の形態2の検知処理の動作について、図20から図22のシーケンス図を用いて説明する。各構成要素の符号は、実施の形態1と同一の符号を用いる。
ステップS81からステップS91までの動作は、実施の形態1のステップS41からステップS51までの動作と同様のため、説明を省略する。
ここでは、図22のステップS92から説明する。
各検知モジュールは、受信した分割データおよび検証データ保持部407に記憶している検証データを消去する(ステップS92)。
次に、各検知モジュールは、分割データおよび検証データを消去したか否かを確認するため、相互に改ざん検出を実行する。
具体的に、検知モジュール131は、検知モジュール132の改ざん検出処理を行い(ステップS93)、検知モジュール132は、検知モジュール133の改ざん検出処理を行い(ステップS94)、検知モジュール133は、検知モジュール131の改ざん検出処理を行う(ステップS95)。各検知モジュールによる改ざん検出処理は、相互監視処理の改ざん検出処理と同様である。
各検知モジュールは、改ざんを検出した場合(ステップS96でY)、検出結果を判断部210へ送信する(ステップS97)。判断部210は、各検知モジュールから検出結果を受信し(ステップS98)、各検知モジュールが改ざんされているか否かを判定する。
検知モジュールが改ざんされていると判定した場合、判断部210は、保護制御モジュールの検知処理が正しく行われていないとみなし、保護制御モジュール120の再検知を行うことを決定する(ステップS99でY)。そして、保護制御モジュール120に対し、再検知処理を行う旨を通知する(ステップS100)。
検知モジュールが改ざんされていないと判定した場合、判断部210は、分割データおよび検証データが消去されたと判断する。
3.実施の形態2の効果
実施の形態2では、分割データおよび検証データを消去したことを確認するので、1つの検知モジュールが不正動作を行ったとしても、1つの分割データの漏洩だけで済み、それ以上の分割データの漏洩、さらに、アプリの全体のデータの漏洩を防止することができる。
<実施の形態3>
ここでは、本発明に係る実施の形態3としてソフトウェア更新システムについて説明する。
1.概要
実施の形態3のソフトウェア更新システムは、保護制御モジュールの改ざんが検出された場合に、改ざんされた保護制御モジュールを新しい保護制御モジュールへ更新する。
2.構成
(1)保護制御モジュール120aの詳細な構成
図23は、実施の形態3に係る保護制御モジュール120aの構成を機能的に示す機能ブロック図である。
保護制御モジュール120aは、実施の形態1に係る保護制御モジュール120(図2)の構成要素に加えて、暗復号鍵分散部321、証明書生成部322、および暗復号鍵復元部323を含む。
暗復号鍵分散部321は、初期設計時および次ラウンド準備時に、秘密分散法を用いて、暗復号鍵から分散情報を生成する。
証明書生成部322は、保護制御モジュール120aの署名秘密鍵を保持する。そして、証明書生成部322は、暗復号鍵から生成された分散情報を復元したときに、正しく復元できたか否かを検証するために用いられる証明書を、署名秘密鍵を用いて生成する。
暗復号鍵復元部323は、配置情報に基づいて、各更新モジュールから、各更新モジュールに配布されていた分散情報を取得する。そして、暗復号鍵復元部323は、取得した分散情報から暗復号鍵を復元し、復元した暗復号鍵を復号ロード部304に送信する。
(2)検知モジュールの詳細な構成
図24は、実施の形態3に係る検知モジュール131aの構成を機能的に示す機能ブロック図である。
検知モジュール131aは、実施の形態1に係る検知モジュール131(図3)の構成要素に加えて、更新部410および分散情報保持部411を含む。
更新部410は、管理装置200と連携して、機器100のソフトウェア(各アプリ、保護制御モジュール120a、各検知モジュール)を更新する。
分散情報保持部411は、保護制御モジュール120aが各アプリの暗復号処理に用いる暗復号鍵から生成した分散情報と、保護制御モジュール120aが分散情報を配布したときの配置情報とを保持する。配置情報は、どの分散情報がどの検知モジュールに配布されたか記述した情報である。
認証部412は、認証鍵対(認証秘密鍵および認証公開鍵)を保持しており、他のモジュールと認証処理を行う。
(3)検証基データ配布部220aの詳細な構成
図25は、実施の形態3に係る検証基データ配布部220aの構成を機能的に示す機能ブロック図である。
検証基データ配布部220aは、実施の形態1に係る検証基データ配布部220(図7)の構成要素に加えて、暗号鍵生成部620、暗号処理部621、および検知モジュール選択部622を含む。
暗号鍵生成部620は、更新用ソフトウェアを何れかの検知モジュールへ送信するときに使用する暗号鍵を生成する。
暗号処理部621は、暗号鍵生成部620が生成した暗号鍵を用いて、更新用ソフトウェアを暗号化する。また、暗号処理部621は、検知モジュール選択部622が選択した検知モジュールに固有の鍵を用いて、前記暗号鍵を暗号化する。
検知モジュール選択部622は、保護制御モジュール120aを更新するときに、更新に使用する検知モジュールを選択する。
3.動作
ここでは、実施の形態3に係るソフトウェア更新システムの動作について説明する。
(1)全体の動作概略
図26は、ソフトウェア更新システム全体の処理の流れを示したフローチャートである。
ソフトウェア更新システムは、先ず、初期設計処理を行う(S101)。その後、各検知モジュールによる保護制御モジュール120aの検証処理を行い、保護制御モジュール120aが改ざんされているか否かを判断する検知処理を行う(ステップS102)。
次に、ソフトウェア更新システムは、ステップS102で保護制御モジュール120aの改ざんが検出された場合に、保護制御モジュール120aを解析し、更新する必要があるか否か判断する解析・判断処理を行う(ステップS103)。
次に、ソフトウェア更新システムは、各検知モジュールと検証基データ配布部220aとが互いに正しいソフトウェアであるか否かを確認するための相互認証処理を行う(ステップS104)。
次に、ソフトウェア更新システムは、回復処理を行う(ステップS105)。回復処理とは、検知モジュール間で相互に改ざん検出処理を行った後、更新用の保護制御モジュールを機器100へインストールする処理、および、機器100において、各検知モジュールに埋め込まれた分散情報を用いて、保護制御モジュールを更新する処理である。
その後、ソフトウェア更新システムは、次に保護制御モジュールの更新が必要となる場合に備えて、更新に必要な鍵データや分散情報を生成し、各検知モジュールに埋め込む次ラウンド準備処理を行う(ステップS106)。その後、ソフトウェア更新システムは、ステップS102の検知処理へ戻り、処理を続ける。
(2)初期設計処理の動作
ここでは、ステップS101の期設計処理の動作について、図27および図28のシーケンス図を用いて説明する。なお、ステップS111からステップS113までの動作は、実施の形態1で既に説明した動作と同様のため、説明を省略する。
保護制御モジュール120aは、暗復号鍵から秘密分散法を用いて分散情報を生成する(ステップS114)。更に、保護制御モジュール120aは、署名秘密鍵を用いて、暗復号鍵証明書を生成する(ステップS115)。保護制御モジュール120aは、生成した分散情報と暗復号鍵証明書とを、各検知モジュールへ送信する(ステップS116)。
なお、保護制御モジュール120aは、検知モジュール131、132、133が、それぞれ異なる分散情報の組を保持するように、各検知モジュールに分散情報の組を送信する。更に、保護制御モジュール120aは、どの検知モジュールへどの分散情報を送信したかを示す配置情報を、各検知モジュールへ送信する。各検知モジュールに送信される配置情報は、同一の情報である。
暗復号鍵から秘密分散法を用いて分散情報を生成する方式や分散情報を検知モジュールへ送信する方法については、特許文献2の47ページから49ページに詳しく説明されているので、ここでの説明は省略する。
保護制御モジュール120aから分散情報、配置情報、および暗復号鍵証明書を受信した検知モジュール群は、検知モジュール初期化処理を行う(ステップS117)。
ステップS118〜ステップS121の保護制御モジュール120a初期化処理は、実施の形態1で説明した動作と同様のため、説明を省略する。
(3)検知モジュール初期化処理の動作
ここでは、図29に示すフローチャートを用いて、ステップS117の検知モジュール初期化処理について説明する。
検知モジュール131aは、保護制御モジュール120aから分散情報、配置情報、および暗復号鍵証明書を受信し、分散情報保持部411に保持する(ステップS131)。その後の動作は、実施の形態1と同様のため、説明を省略する。
(4)検知処理の動作
実施の形態3の検知処理(ステップS102)は、実施の形態1および実施の形態2の検知処理の動作と同様のため、説明を省略する。
(5)解析・判断処理の動作
ここでは、図30に示すシーケンス図を用いて、ステップS103の解析・判断処理の動作について説明する。各検知モジュールがそれぞれ個別に行う処理を、図30では、検知モジュール群130の動作として記載している。
検知処理において、各検知モジュールから保護制御モジュールについての改ざん検出結果を受信すると、判断部210は、受信した改ざん検出結果に基づいて、保護制御モジュール120aが改ざんされているか判定する(ステップS141)。
判定方法の一例として、所定数の検知モジュールが改ざんを検出した場合には、保護制御モジュール120aは改ざんされていると判定し、また、所定数未満の検知モジュールが改ざんを検出した場合には、保護制御モジュール120aは改ざんされていないと判定する。前記所定数は、検知モジュール群130に含まれる検知モジュールの過半数としてもよい。また、各検知モジュールから分割データおよび検証データを受信して、分割データおよび検証データを用いて保護制御モジュール120aの改ざんの有無を判定してもよい。
保護制御モジュール120aが改ざんされていると判定した場合(ステップS141でY)、判断部210は、保護制御モジュール120aを回復する必要があるか否かを判断するために、検知モジュール群130に対して、保護制御モジュール120aのどの部分が改ざんされたかなどの改ざん情報の通知を依頼する(ステップS142)。
検知モジュール群130は、改ざん情報の通知を依頼されると、改ざん情報を収集して(ステップS143)、判断部210へ通知する。
判断部210は、改ざん情報に基づいて、保護制御モジュール120aを回復するか、機器100をリボークするか、または、何もしないかを判断する(ステップS144)。
保護制御モジュール120aを回復する場合(ステップS144でY)、判断部210は、更新用の保護制御モジュールを準備し(ステップS145)、検知モジュール群130に、更新処理の開始を指示する(ステップS146)。
また、機器100をリボークする場合には、各アプリにサービスを提供しているサーバに対して、機器100をリボークするように依頼する。何もしない場合(ステップS144でN)、検知処理へ戻る。
ステップS141で保護制御モジュール120aが改ざんされていないと判定した場合(ステップS141でN)は、検知処理へ戻る。
(6)相互認証処理の動作
続いて、図31および図32に示すシーケンス図を用いて、ステップS104の相互認証処理について説明する。
判断部210が、解析・判断処理において、保護制御モジュール120aを回復する必要があると判断した場合、判断部210は、検証基データ配布部220aへ、保護制御モジュール120aの回復を指示する。
検証基データ配布部220aは、各検知モジュールへ更新処理の開始を指示した後、各検知モジュールとの間で、それぞれ1対1の相互認証処理を行う。これにより、機器100が不正なサーバと接続したり、管理装置200が不正な機器と接続することを防止する。なお、相互認証処理において、検証基データ配布部220aは、署名秘密鍵および署名公開鍵を使用し、各更新モジュールは、認証鍵対(認証秘密鍵及び認証公開鍵)を使用する。
図31は、検知モジュール131aが検証基データ配布部220aを認証するときのシーケンス図である。なお、検知モジュール132a、133aも、図31の検知モジュール131aと同様に動作し、検証基データ配布部220aを認証する。
検知モジュール131aは、乱数生成器を用いて乱数(チャレンジデータ)を生成し(ステップS151)、生成したチャレンジデータを検証基データ配布部220aへ送信する(ステップS152)。この時、検知モジュール131aを識別するための検知モジュール識別子を、チャレンジデータと共に送信する。
検証基データ配布部220aは、受信したチャレンジデータに署名秘密鍵を用いて署名データを生成し(ステップS153)、生成した署名データをレスポンスデータとして、検知モジュール131aへ返信する(ステップS154)。
検知モジュール131aは、検証基データ配布部220aからレスポンスデータを受信すると、署名公開鍵を用いて、レスポンスデータが、チャレンジデータの署名データと一致するか否か検証する(ステップS155)。
検証の結果、レスポンスデータが正しく、検証基データ配布部220aが正当なモジュールである場合(ステップS156でY)、検知モジュール131aは、処理を継続する。レスポンスデータが正しくなく、更新用ソフトウェア配布部220が不正なモジュールである場合(ステップS156でN)、検知モジュール131aは、エラーを出力し、処理を停止する。
次に、検証基データ配布部220aが、検知モジュール131a、132a、133aを認証する。
図32は、検証基データ配布部220aが各検知モジュールを認証するときのシーケンス図である。
検証基データ配布部220aは、チャレンジデータを送信してきた各検知モジュールに対して、乱数生成器を用いてそれぞれ異なる乱数(チャレンジデータ)を生成し(ステップS161)、生成したチャレンジデータを、各更新モジュールへ個別に送信する(ステップS162)。
各検知モジュールは、受信したチャレンジデータに認証秘密鍵を用いて署名データを生成し(ステップS163)、生成した署名データをレスポンスデータとして更新用ソフトウェア配布部220へ返信する。
このとき、各検知モジュールは、レスポンスデータと共に認証公開鍵と認証鍵証明書とを検証基データ配布部220aへ送信する(ステップS164)。
検証基データ配布部220aは、それぞれの検知モジュールからレスポンスデータ、認証公開鍵、および認証鍵証明書を受信する。検証基データ配布部220aは、認証鍵証明書が、自身が発行した証明書であるか否か検証し、更に、認証鍵証明書を用いて、認証公開鍵の正当性を検証する(ステップS165)。
認証鍵証明書および認証公開鍵が不正であれば(ステップS165でN)、検証基データ配布部220aは、処理を停止する。
認証鍵証明書および認証公開鍵が正当であれば、検証基データ配布部220aは、認証公開鍵を用いて、受信したレスポンスデータがチャレンジデータの署名データと一致するか否か検証する(ステップS166)。
次に、検証基データ配布部220aは、正しいレスポンスデータを返した検知モジュール(正当な検知モジュール)の数が、予め設定されている回復処理に必要な数以上であるかを判断する(ステップS167)。
正当な検知モジュールの数が、回復処理に必要な数に満たない場合(ステップS167でN)、回復処理が実行できないため、検証基データ配布部220aは、処理を停止する。正当な更新モジュールの数が、回復処理に必要な数を満たしている場合(ステップS167でY)、相互認証処理を終了し、回復処理に移る。
また、検証基データ配布部220aは、相互認証処理において、正当性が確認されたすべての検知モジュールの検知モジュール識別子を記載した認証リストを作成する。そして、これ以降の回復処理では、認証リストに識別子が記載されている検知モジュールのみを利用する。
(7)回復処理の動作
続いて、図33〜37を用いて、ステップS105の回復処理の詳細について説明する。回復処理は、上述した相互認証処理において、相互認証が成功した場合に、改ざんされた保護制御モジュール120aを、新しい更新用の保護制御モジュールへ更新する処理である。
図33は、回復処理の動作を示すフローチャートである。
先ず、各検知モジュールが、相互監視処理を行う(ステップS171)。相互監視処理では、各検知モジュールが、他の検知モジュールの改ざん検出処理を実行する。
さらに、更新用保護制御モジュールを用いて、保護制御モジュール120aを更新する更新処理を行う(ステップS172)。
そして、暗号化されたアプリ110、111、112、113、114を再暗号化する再暗号化処理を行う(ステップS173)。
(8)相互監視処理
図34は、ステップS171の相互監視処理の詳細なシーケンス図である。
実施の形態3の相互監視処理は、実施の形態1の相互監視処理とほぼ同様であるが、 実施の形態3の相互監視処理は、各検知モジュールが、改ざん検出結果を常に判断部210へ送信する点が、実施の形態1と異なる(ステップS184)。
また、実施の形態3の相互監視処理では、改ざんされた検知モジュールが存在する場合、ステップS187で回復処理を停止する。
(9)更新処理
続いて、図35および図36のシーケンス図を用いて、ステップS172の更新処理の詳細について説明する。
先ず、検証基データ配布部220aの証明書生成部605は、署名秘密鍵を用いて、更新検証証明書を生成する(ステップS191)。更新検証証明書は、新しい保護制御モジュールが正しくインストールできたか否か、各検知モジュールが確認するための証明書である。検証基データ配布部220aは、生成した証明書を、各検知モジュールへ送信する(ステップS192)。
次に、検証基データ配布部220aの暗号鍵生成部620は、新しい保護制御モジュールを多重に暗号化するための暗号鍵を2つ(第1の鍵及び第2の鍵)生成する(ステップS193)。暗号処理部621は、第2の鍵を用いて新しい保護制御モジュールを暗号化し、暗号化新保護制御モジュールを生成する(ステップS194)。暗号処理部621は、暗号化新保護制御モジュールに対して、第1の鍵を用いてさらに暗号化し、多重暗号化新保護制御モジュールを生成する(ステップS195)。
検証基データ配布部220aは、検知モジュール群130から正当な検知モジュールを一つ選択し(ステップS196)、選択した検知モジュールの識別子を判断部210に通知する。ここでは、一例として、検知モジュール131aを選択するものとする。
検証基データ配布部220aは、選択した検知モジュール131aへ多重暗号化新保護制御モジュールを送信し(ステップS197)、更に、第1の鍵を送信する(ステップS198)。
検知モジュール131aは、多重暗号化新保護制御モジュールと第1の鍵とを受信する。検知モジュール131は、第1の鍵を用いて、多重暗号化新保護制御モジュールを復号し、暗号化新保護制御モジュールを取得する(ステップS199)。そして、復号が終了すると、その旨を検証基データ配布部220aへ通知する(ステップS200)。
検証基データ配布部220aは、復号終了通知を受信すると、検知モジュール群130から、正当なモジュールであって、且つ、ステップS196で選択した検知モジュールとは異なる検知モジュールを一つ選択する(ステップS201)。ここでは、一例として、検知モジュール132aを選択するものとする。
検証基データ配布部220aは、選択した検知モジュール132aに、第2の鍵を送信する(ステップS202)。このように、検証基データ配布部220aは、多重に暗号化された新保護制御モジュールを復号するための複数の鍵を、検知モジュール群130に送信するタイミングを制御することにより、攻撃者が暗号化されていない新保護制御モジュールを入手することを困難にする。
また、検証基データ配布部220aは、検知モジュール131aに対して、ステップS199で取得した暗号化新保護制御モジュールを検知モジュール132aへ送信するよう依頼する(ステップS203)。
検知モジュール131aは、検証基データ配布部220aからの依頼を受けて、暗号化新保護制御モジュールを検知モジュール132aへ送信する(ステップS204)。
検知モジュール132aは、検証基データ配布部220aから第2の鍵を受信し、検知モジュール131aから暗号化新保護制御モジュールを受信する。そして、第2の鍵を用いて、暗号化新保護制御モジュールを復号し、新しい保護制御モジュールを取得する(ステップS205)。
検知モジュール132aは、ステップS205で取得した新しい保護制御モジュールを保護制御モジュール120aに上書きし、更新する(ステップS206)。そして、検知モジュール132aは、更新の終了を他の検知モジュールへ通知する(ステップS207)。
その後、各検知モジュールは、保護制御モジュールの更新が完了したことを確認する処理を行う。実施の形態3では、特許文献3に記載されている検証とは異なり、更新後の新たな保護制御モジュールに復号処理を実行させることにより、更新の完了を確認する。
各検知モジュールは、予め受信した確認用検証データを用いる。確認用検証データは、検証値と暗号化乱数とから構成される。暗号化乱数は、乱数を新たな保護制御モジュールの暗号化鍵で暗号化して生成されたデータである。検証値は、乱数および暗号化された乱数に対し、署名秘密鍵を用いて生成された署名データである。
各検知モジュールはそれぞれ、確認用検証データ内の暗号化した乱数を更新後の保護制御モジュールへ送信する(ステップS208)。保護制御モジュールは、受信した暗号化乱数を復号し(ステップS209)、復号したデータを各検知モジュールへ送信する(ステップS210)。
各検知モジュールは、保護制御モジュールから復号したデータを受信し、確認用検証データの検証値を用いて、受信したデータの検証を行う(ステップS211)。各検知モジュールは、検証結果を検証基データ配布部220aへ通知する(ステップS212)。
検証基データ配布部220aは、各検知モジュールから送信された検証結果を受信すると、受信した検証結果から保護制御モジュールが正しく更新されたか否か判定する(ステップS213)。正しく更新されていないと判定する場合(ステップS213でN)、検証基データ配布部220aは、機器100を停止させる。
正しく更新されている場合(ステップS213でY)、検証基データ配布部220aは、更新処理終了を各検知モジュールへ通知する(ステップS214)。
(10)相互監視処理と更新処理との関係
上述した相互監視処理と更新処理とは、互いに連携しながら実行される。
相互監視処理は、検証基データ配布部220aから、検知モジュール群130に含まれる検知モジュールを送信先として、複数の鍵が送られる時と、暗号化された更新用保護制御モジュールの検知モジュール群130に含まれる検知モジュールでの復号処理中に定期的に実施される。定期的に実施する際の時間間隔は、例えば、更新用保護制御モジュールが通信路を通して完全に外部に出力されるまでの時間より短い間隔である。完全に外部に出力されるまでに1秒かかるのであれば、例えば、それより短い500ミリ秒間隔のタイミングで監視処理を実行する。
ここでは、図37を用いて、相互監視処理と更新処理との連携動作について説明する。
先ず、機器100は、管理装置200から多重暗号化新保護制御モジュールが送付される前に、相互監視処理(相互監視1)を実施する。不正な検知モジュールを選択して、更新処理を行わないようにするためである。
その後、機器100は、管理装置200により送信された第1の鍵を検知モジュール131aが受信する前に、相互監視処理(相互監視2)を実施し、機器100が第1の鍵を受信する時に、不正な検知モジュールを選択していないことを確認する。
さらに、検知モジュール131aが第1の鍵を受信し、第1の鍵を用いて多重暗号化新保護制御モジュールを復号する間、定期的に、検知モジュール131aによる復号処理を中断して、相互監視処理(相互監視3−1、3−2)を実施する。これにより、復号処理中に、検知モジュール131a、132a、133aが攻撃されたとしても、暗号化新保護制御モジュールがすべて漏洩する前に検知モジュールが攻撃されたことを検出し、漏洩を防止することが可能となる。
これ以降の処理は、上記と同様である。即ち、機器100は、管理装置200により送信された第2の鍵を検知モジュール132aが受信する前に、監視処理(相互監視4)を実施し、機器100が鍵を受信する時に、不正な検知モジュールを更新処理において、選択していないことを確認する。
さらに、検知モジュール132aが第2の鍵を受信し、第2の鍵を用いて暗号化新保護制御モジュールを復号する間、定期的に、検知モジュール132aによる復号処理を中断し、相互監視処理(相互監視5−1、5−2)を実施する。最後に、相互監視処理(相互監視6)を実施する。
これにより、新保護制御モジュールがすべて漏洩する前に検知モジュールが攻撃されたことを検出し、漏洩を防止することが可能となる。
ここで、相互監視処理において、検知モジュールに改ざんが検出された場合には、回復処理を停止する。これにより、管理装置200は、第1の鍵や第2の鍵の送信を中止することが可能となり、攻撃者は、多重暗号化新保護制御モジュールを復号するための鍵を入手することが不可能となる。
(11)再暗号化処理
続いて、図38のシーケンス図を用いて、ステップS173の再暗号化処理の詳細について説明する。
先ず、更新された保護制御モジュールが、検知モジュール131a、132a、133aに対して、それぞれが保持している分散情報および暗復号鍵証明書の送信を依頼する(ステップS221)。
各検知モジュールは、保護制御モジュールからの依頼を受けて、分散情報および暗復号鍵証明書を送信する(ステップS222)。
保護制御モジュールは、各更新モジュールから分散情報および暗復号鍵証明書を受信し、受信した分散情報から更新前の保護制御モジュール120aが使用していた暗復号鍵(ここでは、「旧暗復号鍵」という。)を復元する(ステップS223)。更に、保護制御モジュールは、暗復号鍵証明書を用いて、旧暗復号鍵が正しく復元されたか否か検証する(ステップS224)。
旧暗復号鍵が正しく復元されなかった場合(ステップS224でN)、保護制御モジュールは、不正な検知モジュールを炙り出す(どの検知モジュールが不正な分散情報を送信したか特定する)(ステップS225)。特定された不正な検知モジュールは、管理装置200へ通知される。
旧暗復号鍵が正しく復元された場合(ステップS224でY)、保護制御モジュールは、新しい暗復号鍵(ここでは、「新暗復号鍵」という。)を生成する。そして、復号ロード部は、旧暗復号鍵を用いて暗号化された各アプリを復号し、新暗復号鍵を用いて各アプリを再暗号化する(ステップS226)。
ここで、ステップS225おいて、不正な検知モジュールを特定するための方法について説明する。先ず、保護制御モジュールは、各検知モジュールから分散情報の組を集め、集めた分散情報に各検知モジュールを識別するための識別情報を付加する。
その後、初期設計時に同じ値に設定されて配布された分散情報同士をグループにまとめる。そして、各グループに含まれる分散情報同士の値を比較し、同じ値になる分散情報同士を更に1つのサブグループにまとめる。そして、すべてのグループの中からサブグループを1つずつ選び出す組み合わせを全て生成する。
生成した組み合わせそれぞれに対して旧暗復号鍵を生成し、正しい旧暗復号鍵が生成できたかを検証する。検証OKの場合、その組み合わせに含まれるサブグループに、検証OKを表す検証通過識別情報を付加する。
すべての組み合わせについて、旧暗復号鍵の生成・検証を行った後、検証通過識別情報の付いているサブグループに含まれる分散情報を取り除く。
取り除かれずに残っている分散情報は、不正な値となっている。そこで、この分散情報に付加された識別情報により、不正な値となっている分散情報を送信してきた検知モジュールを特定することができる。識別情報により特定された検知モジュールが不正な更新モジュールであると特定される。
分散情報から旧暗復号鍵を復元する方法や不正な検知モジュールの特定方法については、特許文献2の50ページから52ページに詳しく説明されている。
(12)次ラウンド準備処理の動作
続いて、図39のシーケンス図を用いて、ステップS106の次ラウンド準備処理の詳細について説明する。次ラウンド準備処理では、回復処理の終了後、次の回復処理のための準備を行う。以下、具体的に説明する。
まず、更新後の保護制御モジュールは、新暗復号鍵から、秘密分散法を用いて分散情報を生成し(ステップS231)、更に、署名秘密鍵を用いて、新暗復号鍵証明書を生成する(ステップS232)。そして、保護制御モジュールは、生成した分散情報と暗復号鍵証明書とを検知モジュール131a、132a、133aへ送信する(ステップS233)。
ここで、初期設計処理時と同様に、分散情報は、検知モジュールの数と同数が生成され、それぞれの検知モジュールが、異なる分散情報のペアを保持するように送信される。新暗復号鍵証明書は、各検知モジュールへ同じ証明書が送信される。
検知モジュール131a、132a、133aは、保護制御モジュールから分散情報と新暗復号鍵証明書とを受信し、受信した分散情報と新暗復号鍵証明書とを分散情報保持部411に保持する(ステップS234)。
保護制御モジュールは、ステップS233で分散情報と暗復号鍵証明書とを検知モジュールへ送信した後、アプリの識別情報と暗号化されたアプリと検証基データの送付依頼とを管理装置200へ送信する(ステップS235)。そして、管理装置200は、検証基データ生成処理を行う(ステップS236)。
次ラウンド準備処理の検証基データ生成処理は、初期設計処理の検証基データ生成処理と若干異なる。
次ラウンド準備処理の検証基データ生成処理では、更新処理で生成した新暗復号鍵を用いて、受信した暗号化アプリを復号する。その後、暗号化アプリと復号したアプリとから検証基データを生成する処理は、初期設計処理の検証基データ生成処理と同様であるので、ここでは省略する。
管理装置200は、生成した検証基データを保護制御モジュールへ送信し(ステップS237)、保護制御モジュールは、受信した検証基データを記憶する(ステップS238)。
4.実施の形態3の効果
実施の形態3では、検知処理において保護制御モジュール120aの改ざんが検出された場合、保護制御モジュールを更新するので、システムの安全性を高めることができる。
<実施の形態4>
ここでは、本発明に係る実施の形態4として、不正モジュール検知システム2について説明する。実施の形態4では、不正であることが検知された保護制御モジュールを新たな保護制御モジュールに更新する仕組み、および、不正であることが検知された更新モジュールを無効化する仕組みについて詳しく説明する。実施の形態1〜3と重複する部分については、説明を省略または簡略化する。
1.不正モジュール検知システム2の構成
図40は、不正モジュール検知システム2の全体構成図である。同図に示すように、不正モジュール検知システム2は、機器100bと更新サーバ200bとから構成される。機器100bと更新サーバ200bとは、ネットワークを介して接続されている。
(1)機器100bの構成
機器100bは、実施の形態1の機器100と同様に、ネットワークを介した様々なサービスをユーザに提供する機器である。
機器100bは、アプリ110、アプリ111、保護制御モジュール120b、更新モジュール群130b、およびアクセス制御モジュール140を含む。アプリ110、アプリ111、および保護制御モジュール120bの概要は、上述した実施の形態1〜3と同様である。
更新モジュール群130bは、複数の更新モジュールから構成される。実施の形態4では、更新モジュール群130bは、更新モジュール141、更新モジュール142、および更新モジュール143の3つの更新モジュールから構成される。
各更新モジュールは、それぞれ、保護制御モジュール120bの改ざんの有無を検出する。各更新モジュールは、保護制御モジュール120bが改ざんされている場合、更新サーバ200から更新用の保護制御モジュールをダウンロードし、改ざんされている保護制御モジュールを更新する機能を有する。
また、更新モジュール141、142、143は、アプリ110およびアプリ111を更新する機能を有していてもよい。
そして、更新モジュール群130bは、攻撃者によって各更新モジュールが改ざんされ、各更新モジュールを不正に利用されることを防止するために、更新モジュール同士が相互に改ざん検出を実施する。そして、改ざん検出結果を、更新サーバ200へ送信する。更新サーバ200により、ある更新モジュールが改ざんされていると判断された場合には、他の正常な更新モジュールは、更新サーバ200からの無効化指示を受け、改ざんされた更新モジュールを無効化する。
これにより、更新モジュール群130に含まれる一部の更新モジュールが攻撃され、改ざんされた場合であっても、それを検出し、攻撃に対処することが可能となる。
アクセス制御モジュール140は、各更新モジュールが他のモジュールを消去するために必要なアクセス情報を保持する。アクセス情報は、例えば、消去対象であるモジュールが配置されているアドレスや、消去に必要な手順が書かれた手順書などである。なお、アクセス情報は、消去対象であるモジュール毎に、それぞれ個別のアクセス情報取得鍵で暗号化されている。
(更新モジュールの詳細な構成)
ここでは、更新モジュール141、142、143の詳細について説明する。
図41は、更新モジュール141の機能的な構成を示す機能ブロック図である。更新モジュール142および143も同様の構成を有する。
更新モジュール141は、受信部801、送信部802、制御部803、更新部804、検証部805、MAC値生成部806、MAC値テーブル更新部807、および分散情報保持部808から構成される。
更新モジュール141の各構成要素は、実施の形態3の検知モジュール131a(図24)に含まれる各構成要素と同様の機能を有する。
(保護制御モジュール120bの詳細な構成)
図42は、保護制御モジュール120bの機能ブロック図である。同図に示すように、保護制御モジュール120bは、受信部901、送信部902、制御部903、復号ロード部904、改ざん検出部905、解析ツール検出部906、暗復号鍵保持部907、暗復号鍵生成部908、暗復号鍵分散部909、証明書生成部910、および暗復号鍵復元部911から構成される。
保護制御モジュール120bの各構成要素は、実施の形態3の保護制御モジュール120a(図23)に含まれる各構成要素と同様の機能を有する。なお、図23に記載されていない暗復号鍵生成部908は、アプリ110およびアプリ111を暗復号化するための暗復号鍵を生成する。
(アクセス制御モジュール140の詳細な構成)
図43は、アクセス制御モジュール140の構成を機能的に示す機能ブロック図である。同図に示すように、アクセス制御モジュール140は、受信部1001、送信部1002、およびアクセス情報保持部1003から構成される。
受信部1001は、更新モジュール141、142、143から、改ざんされた更新モジュールを消去するために必要な情報であるアクセス情報の取得依頼を受信する。
送信部1002は、アクセス情報取得依頼に応じて、アクセス情報取得を依頼してきた更新モジュールへアクセス情報を送信する。
アクセス情報保持部1003は、更新モジュール141、142、143毎に、そのモジュールを消去するためのアクセス情報を保持する。
各アクセス情報は、消去対象となる更新モジュールを識別するための更新モジュール識別子が付されている。また、各アクセス情報は、アクセス情報取得鍵で暗号化されている。
更新モジュール141、142、143からアクセス情報取得依頼を受け付けると、アクセス情報保持部1003は、消去対象の更新モジュールの識別子が付されたアクセス情報を、依頼元の更新モジュールへ送信する。
(機器100bのハードウェア構成)
続いて、図44を用いて、機器100bのハードウェア構成について説明する。
図44に示すように、機器100bは、CPU171、不揮発性メモリであるEEPROM172、RAM173、およびNIC174などを含む。また、これらはバスを介して、相互に通信可能に接続されている。
EEPROM172には、保護制御モジュール120b、更新モジュール141、142、143、およびアプリ110、アプリ111などが格納されている。
EEPROM172に格納されている各種モジュールをCPU171が実行することにより、各種モジュールの各機能部が実現される。各機能部は、具体的には、コンピュータプログラムによって記述されている。
RAM173は、CPU171のワークエリアとして用いられる。RAM173には更新モジュール141、142、143、および、アプリ110、アプリ111がロードされる。改ざん検出処理および無効化処理の対象となる更新モジュールは、RAM173上で動作している更新モジュールである。
NIC174は、ネットワークに接続するための拡張カードである。
(ソフトウェア階層)
続いて、図45を用いて、機器100bのソフトウェア階層について説明する。
図45に示すように、アクセス制御モジュール140および更新モジュール群130bは、OS180の中に組み込まれている。アプリ110およびアプリ111は、OS180上で動作し、保護制御モジュール120bおよびブートローダ160は、OS180の管理外にある。
機器100bの起動の際には、まず保護制御モジュール120bおよび更新モジュール群130bが起動された上でアプリケーションが実行される。
(2)更新サーバ200bの構成
図40に戻り、更新サーバ200bについて説明する。
更新サーバ200bは、機器100bの更新モジュール群130bから、改ざん検出結果を受信して、受信した改ざん検出結果を基に、無効化すべき不正な更新モジュールを特定する不正モジュール特定装置として機能する。さらに、更新サーバ200bは、機器100b上で動作するソフトウェア(例えば、保護制御モジュール120b)を更新するために必要な更新用のソフトウェアを機器100bに配布するソフトウェア配布装置として機能する。
(全体構成)
図40に示すように、更新サーバ200bは、判断部210b、通信部230、更新用ソフトウェア配布部240、およびモジュール無効化部250から構成される。更新サーバ200bは、具体的には、CPU、ROM、RAM、ハードディスクユニットなどを備えるコンピュータシステムである。CPUが、ROMまたはハードディスクユニットに記憶されているコンピュータプログラムにしたがって動作することにより、更新サーバ200bは、上記の機能を発揮する。
判断部210bは、機器100bの更新モジュール群130bから、改ざん検出結果を受信して、受信した改ざん検出結果を基に、無効化すべき不正な更新モジュールを特定する。
通信部230は、機器100bと、更新サーバ200b内部の各部との間で情報の送受信を行う。例えば、通信部230は、機器100bから受信した改ざん検出結果を判断部210bに送信する。なお、機器100bと更新サーバ200bとの間の通信には、データを暗号化するなど、セキュリティの確保された通信路を用いてもよい。
更新用ソフトウェア配布部240は、保護制御モジュール120bを更新する際に、更新モジュール141、142、143と連携して動作し、更新用のソフトウェアを機器100bへ安全に送信する。
モジュール無効化部250は、更新モジュール141、142、143からアクセス情報取得鍵取得要求を受け付けると、要求元の更新モジュールへ、アクセス情報取得鍵を送信する。
続いて、更新サーバ200bの各構成要素について説明する。
(判断部210bの詳細な構成)
図46は、判断部210bの構成を機能的に示す機能ブロック図である。
同図に示すように、判断部210bは、受信部1101、送信部1102、指示生成部1103、およびモジュール特定部1104とから構成される。
判断部210bの各構成要素は、実施の形態1の判断部210(図6)に含まれる各構成要素と同様の機能を有する。
(更新用ソフトウェア配布部240の詳細な構成)
図47は、更新用ソフトウェア配布部240の機能的な構成を示す機能ブロック図である。
同図に示すように、更新用ソフトウェア配布部240は、受信部1201、送信部1202、暗号鍵生成部1203、暗号処理部1204、認証部1205、更新モジュール選択部1206、制御部1207、証明書生成部1208、署名秘密鍵保持部1209、更新用ソフトウェア保持部1210、および暗号鍵保持部1211から構成される。
更新用ソフトウェア配布部240の各構成要素は、実施の形態3の検証基データ配布部220a(図25)に含まれる各構成要素と同様の機能を有する。更新用ソフトウェア保持部1210は、保護制御モジュール120bが攻撃された場合に更新するための更新用の保護制御モジュールを保持する。
(モジュール無効化部250の詳細な構成)
図48は、モジュール無効化部250の機能的な構成を示す機能ブロック図である。
同図に示すように、モジュール無効化部250は、受信部1301、送信部1302、アクセス情報取得鍵保持部1303、および更新モジュール選択部1304から構成される。
受信部1301は、判断部210bから改ざんされた不正な更新モジュールを無効化する指示を受信する。また、受信部1301は、更新モジュール141、142、143からアクセス情報取得鍵の取得依頼を受信する。
送信部1302は、アクセス情報取得鍵の取得依頼に応じて、アクセス情報取得鍵を依頼元の更新モジュールへ送信する。
アクセス情報取得鍵保持部1303は、アクセス制御モジュール140が保持するアクセス情報を復号するための鍵であるアクセス情報取得鍵を保持する。
更新モジュール選択部1304は、改ざんされた不正な更新モジュールの無効化処理を行う更新モジュールを選択し、選択した更新モジュールに、不正な更新モジュールの無効化を指示する。
なお、モジュール選択部1304が選択した更新モジュールからアクセス情報取得鍵の取得依頼があった場合には、送信部1302は、アクセス情報取得鍵に、消去対象となる更新モジュールの識別子を付して、前記更新モジュールへ送信する。
2.不正モジュール検知システム2の動作
続いて、不正モジュール検知システム2の動作を説明する。
(1)全体の動作概要
図49は、不正モジュール検知システム2全体の処理の流れを示すフローチャートである。不正モジュール検知システム2全体の処理は、実施の形態3(図26)と同様である。
(2)初期設計処理の動作
図51は、初期設計処理のシーケンス図である。
不正モジュール検知システム2は、機器100bの工場製造時に、機器100bの不揮発メモリへ各種ソフトウェアをインストールする(ステップS261)。
ここで、図50を用いて、初期設計処理の際に機器100bに埋め込まれる鍵について説明する。図50は、機器100bに埋め込まれる鍵を模式的に示す図である。ここでは、更新モジュール群130の内部に更新モジュール141のみ含まれている。実際には、更新モジュール142および143も含まれるが、ここでは省略する。
図50に示すように、保護制御モジュール120bには暗復号鍵が埋め込まれ、更新モジュール141には署名公開鍵、検証鍵および認証鍵対が埋め込まれる(この時点では、まだ、更新モジュールに分散情報の組は埋め込まれてない)。更に、更新モジュール141には、それぞれの更新モジュールを識別するための更新モジュール識別子が埋め込まれ、その状態で機器100bにインストールされる。
暗復号鍵は、アプリ110およびアプリ111を暗号化および復号するための鍵である。各アプリは、暗復号鍵を用いて暗号化された状態で不揮発メモリへ記憶され、実行時に保護制御モジュール120bにより暗復号鍵を用いて復号された後、実行される。
機器100bが、コンテキストを切り替えながら複数のアプリを実行する場合には、コンテキスト切り替えのタイミングで、暗復号鍵を用いて、各アプリが使用しているデータの暗号化および復号を行うことにより、各アプリの実行時に、デバッガなどの解析ツールによって、データが抜き取られることを防止する。
各更新モジュールに埋め込まれる鍵のうち、署名公開鍵は、すべての更新モジュールに共通の鍵である。検証鍵と認証鍵対とは、それぞれの更新モジュールで異なる鍵である。
ステップS261〜ステップS267までの処理は、実施の形態3のステップS113〜ステップS117(図27)と同様である。
(3)更新モジュール初期化処理
図52は更新モジュール初期化処理(図51のステップS267)の動作を示すフローチャートである。図52では、更新モジュール141についてのみ記載しているが、更新モジュール142および143の動作も基本的に同一である。
更新モジュール初期化処理の動作は、実施の形態3(図29)と同様である。
(4)検知処理の動作
続いて、図53のシーケンス図を用いて不正モジュール検知システム2の検知処理(図49のステップS252)の詳細について説明する。
機器100bは、初期設定処理を終えると工場から出荷され、ユーザの元へ送られ、ユーザの元で機器100bが使用される。
機器100bで各アプリが動作しているとき、機器100b内部では、保護制御モジュール120bが復号ロード機能、改ざん検出機能、解析ツール検出機能などの機能を制御し、各アプリを攻撃者による攻撃から保護する。
実施の形態4の検知処理は、実施の形態1〜3の検知処理と異なる。
先ず、各更新モジュールが、保護制御モジュール120bの改ざん検出を実施する(ステップS281)。改ざん検出は、検証鍵を使用して保護制御モジュール120bのMAC値を計算し、計算したMAC値とMAC値テーブルに保持されているMAC値とを比較することにより行う。
MAC値が一致すれば、保護制御モジュール120bは改ざんされていないと判定し、MAC値が一致しなければ、保護制御モジュール120bは改ざんされていると判定する。
なお、図53では記載を簡略化し、更新モジュール141のみが保護制御モジュール120の改ざん検出を行っているように記載されているが、当然ながら、更新モジュール142および143でも同様の処理が行われる。
保護制御モジュール120bが改ざんされているか否か、即ち、MAC値が一致するか否かを判定し(ステップS282)、保護制御モジュール120bが改ざんされていると判定した場合(ステップS282でY)、更新モジュール141は、その旨を、更新サーバ200bの判断部210bおよび他の更新モジュールへ通知する(ステップS283)。
保護制御モジュール120bが改ざんされていないと判定した場合(ステップS282でN)、更新モジュール141は、判断部210bや他の更新モジュールへ通知を行わず、改ざん検出処理へ戻る。
他の更新モジュールから保護制御モジュール120bが改ざんされている旨の通知を受けた更新モジュールは、検証鍵およびMAC値を用いて、保護制御モジュール120bの改ざん検出を実施する(ステップS284およびステップS286)。そして、改ざん検出結果を、判断部210bおよび他の更新モジュールへ通知する(ステップS285およびステップS287)。
(5)解析・判断処理の動作
図54は、解析・判断処理(図49のステップS253)の動作を示すシーケンス図である。図54では、更新モジュール141、142、143のそれぞれが個別に行う処理を、更新モジュール群130bが行う処理としてまとめて記載している。
解析・判断処理の動作は、実施の形態3(図30)と同様である。
(6)相互認証処理の動作
図55および図56は、不正モジュール検知システム2による相互認証処理の動作の流れを示すシーケンス図である。
実施の形態3と同様に、解析・判断処理において、判断部210bが保護制御モジュール120を回復する必要があると判断した場合、判断部210bは更新用ソフトウェア配布部240へ回復指示を行う。更新用ソフトウェア配布部240は、各更新モジュールへ更新処理の開始を指示した後、更新用ソフトウェア配布部240と各更新モジュール間で、それぞれ1対1の相互認証処理を行う。
図55は、更新モジュール141が、更新用ソフトウェア配布部240を認証する処理の動作を示す。ここでは、更新モジュール141について記載しているが、他の更新モジュールの動作も同一である。
更新モジュール141が、更新用ソフトウェア配布部240を認証する動作は、図31に示した実施の形態3の検知モジュール131aが、検証基データ配布部220aを認証する動作と同様である。
次に、更新用ソフトウェア配布部240が、更新モジュール141、142、143を認証する。図56は、更新用ソフトウェア配布部220が各更新モジュールを認証する処理の動作を示す。
更新用ソフトウェア配布部240が、各更新モジュールを認証する動作は、図32に示した実施の形態3の検証基データ配布部220aが、各更新モジュールを認証する動作と同様である。
(7)回復処理の動作
図57は、不正モジュール検知システム2の回復処理(図49のステップS255)の動作を示すフローチャートである。回復処理は、上述した相互認証処理において、相互認証が成功した場合に、改ざんされた保護制御モジュール120bを、新しい更新用の保護制御モジュールへ更新する処理である。
回復処理は、実施の形態3(図33)と同様に、相互監視処理(ステップS321)、更新処理(ステップS322)、および再暗号化処理(ステップS323)を含む。
(8)相互監視処理
図58は、相互監視処理(図57のステップS321)の動作を示すシーケンス図である。
相互監視処理では、更新モジュール141、142、143が、更新モジュール群130b内の他の更新モジュールに対して改ざん検出処理を実行する。相互監視処理において、どの更新モジュールに対して改ざん検出処理を実行するかは、更新モジュールが保持する監視パターンに記述されている。監視パターンには、改ざん検出対象であるモジュールに関する情報(モジュール識別子、メモリ上の位置、サイズ、アドレス、ファイル名等)が記述されている。
実施の形態4の相互監視処理の動作は、実施の形態3の相互監視処理(図34)の動作と同様である。
(9)更新処理
続いて、図59および図60のシーケンス図を用いて、更新処理(図57のステップS322)について説明する。
ステップS341〜ステップS357は、実施の形態3(図35および図36)のステップS191〜ステップS207と同様である。
更新モジュール141、142、143はそれぞれ、事前に受信した更新検証証明書を用いて、保護制御モジュールが正しく更新されたかを検証し(ステップS582)、検証結果を更新用ソフトウェア配布部240へ通知する(ステップS359)。
更新用ソフトウェア配布部240は、各更新モジュールから送信された検証結果を受信すると、受信した検証結果から保護制御モジュールが正しく更新されたかを判定する(ステップS360)。
正しく更新されていないと判定する場合(ステップS360でN)、更新用ソフトウェア配布部240は、機器100bを停止させる。
正しく更新されている場合(ステップS360Y)、更新用ソフトウェア配布部240は、更新処理終了を各更新モジュールへ通知する(ステップS361)。
各更新モジュールは、更新処理終了通知を受信すると、新しい保護制御モジュールのMAC値を生成し(ステップS362)、生成したMAC値と保護制御モジュールの識別子との組を、MAC値テーブルに書き込む。
(10)相互監視処理と更新処理との関係
実施の形態4に係る相互監視処理と更新処理とは、実施の形態3と同様に、互いに連携しながら実行される。
図61は、相互監視処理と更新処理との連携動作の流れを模式的に示す図である。詳細は既に実施の形態3(図37)で説明しているので、ここでは説明を省略する。
(11)再暗号化処理
図62は、再暗号化処理(図57のステップS323)の動作を示すシーケンス図である。実施の形態4の再暗号化処理は、実施の形態3(図38)と同様である。
(12)次ラウンド準備処理の動作
図63は、次ラウンド準備処理(図49のステップS256)の動作を示すシーケンス図である。次ラウンド準備処理では、回復処理の終了後、次の回復処理のための準備を行う。
まず、更新後の保護制御モジュールは、新暗復号鍵から、秘密分散法を用いて分散情報を生成し(ステップS381)、更に、署名秘密鍵を用いて、新暗復号鍵証明書を生成する(ステップS382)。そして、保護制御モジュールは、生成した分散情報と暗復号鍵証明書とを各更新モジュール141、142、143へ送信する(ステップS383)。
ここで、初期設計処理時と同様に、分散情報は、更新モジュールの数と同数が生成され、それぞれの更新モジュールが、異なる分散情報のペアを保持するように送信される。新暗復号鍵証明書は、各更新モジュール141、142、143へ同じ証明書が送信される。
各更新モジュール141、142、143は、保護制御モジュールから分散情報と新暗復号鍵証明書とを受信し、受信した分散情報と新暗復号鍵証明書とを保持する(ステップS384)。
(13)無効化処理の動作
続いて、図64のシーケンス図を用いて、無効化処理の詳細について説明する。
無効化処理は、相互認証時に認証に失敗した更新モジュールが存在する場合、回復処理内の監視処理において改ざんされた更新モジュールを検出した場合、回復処理内の再暗号化処理において不正な更新モジュールを炙り出した場合など、機器100b内部に存在する不正な(改ざんされた)モジュールを無効化する処理である。
ここでは、更新モジュール143が改ざんされ、それを更新モジュール141および142が検出した場合の処理を例に、無効化処理の動作の詳細を説明する。
判断部210bは、更新モジュール141、142、143から受信した、相互監視結果を基に、どの更新モジュールが改ざんされているかを判定する(ステップS391)。判定方法としては、例えば、過半数の更新モジュールが「改ざんされている」と判断した更新モジュールを不正な更新モジュールであると判定する。
判断部210bは、改ざんされた更新モジュールの識別情報と共に、モジュール無効化部250へ無効化の指示を出力する(ステップS392)。
モジュール無効化部250は、改ざんされていないと判定した更新モジュール141および142のいずれか(ここでは、更新モジュール141とする。)へ、改ざんされた更新モジュール143の無効化を依頼する(ステップS393)。
更新モジュール141は、モジュール無効化部250から、更新モジュール143の無効化依頼を受信すると、モジュール無効化部250に対し、更新モジュール143を無効化するためのアクセス情報取得鍵の送付を依頼する(ステップS394)。更に、更新モジュール141は、アクセス制御モジュール140へ、更新モジュール143を無効化するためのアクセス情報の取得を依頼する(ステップS395)。
モジュール無効化部250は、アクセス情報取得鍵の送付依頼を受信すると、更新モジュール141が改ざんされていない正当な更新モジュールか否か、および、依頼されたアクセス情報取得鍵が改ざんされた不正な更新モジュール143を無効化するためのアクセス情報取得鍵か否かを確認する(ステップS396)。この確認は、判断部210bからモジュール無効化部250へ通知された更新モジュールの情報を利用して行う。
確認した結果、改ざんされた更新モジュール143からの依頼であったり、或いは、改ざんされていない更新モジュール141、142に対するアクセス情報取得鍵の取得依頼であったりする場合には(ステップS396でN)、無効化処理を停止する。
確認した結果、問題なければ(ステップS396でY)、依頼してきた更新モジュール141へ更新モジュール143を無効化するためのアクセス情報取得鍵を送付する(ステップS397)。
更新モジュール141は、モジュール無効化部250からアクセス情報取得鍵を受信し、さらに、アクセス制御モジュール140から暗号化されたアクセス情報を受信する(ステップS398)。更新モジュール141は、アクセス情報取得鍵と暗号化されたアクセス情報とから、アクセス情報を取得する(ステップS399)。取得したアクセス情報は、更新モジュール143を消去するための専用ドライバである。更新モジュール141は、専用ドライバを利用して、改ざんされた不正な更新モジュール143を消去する(ステップS400)。
更新モジュール141は、無効化処理が終了すると、アクセス情報取得鍵、暗号化されたアクセス情報、およびアクセス情報等を消去し、モジュール無効化部250へ完了通知を送信する(ステップS401)。モジュール無効化部250は、更新モジュール141から完了通知を受信したら、判断部210bへ無効化の完了通知を送信する(ステップS402)。
なお、無効化処理により、分散情報を保持している更新モジュールが無効化された場合、その更新モジュールが保持していた分散情報も消去される。そこで、分散情報を保持している更新モジュールを無効化する場合は、分散情報の消去を考慮した無効化処理を行う必要がある。
分散情報の消去を考慮した無効化処理については、特許文献2の56ページから64ページに、「脱退処理」として詳しく説明されている。
<実施の形態5>
次に、本発明の実施の形態5について説明する。
実施の形態4は、保護制御モジュールが改ざんされているかの検証にMAC値を用いた。
これに対し、実施の形態5は、アプリ実行時に保護制御モジュールから出力される検証データを用いて、保護制御モジュールが改ざんされているか否かを検証する。
1.構成
実施の形態5に係る不正モジュール検知システムは、実施の形態4と同様に機器100bおよび更新サーバ200bから構成される。以下では、実施の形態4と異なる部分を中心に説明する。
(1)保護制御モジュール120cの構成
図65は、実施の形態5に係る保護制御モジュール120cの機能的な構成を示す機能ブロック図である。実施の形態4と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
実施の形態4の保護制御モジュール120bと比較すると、保護制御モジュール120cは、暗復号鍵生成部908を備えていない。また、保護制御モジュール120bには存在しない検証データ生成部912および検証基データ保持部913を新たに備える。
検証基データ保持部913は、更新サーバ200bから受信した検証基データを保持する。
検証データ生成部912は、検証基データ保持部913に保持されている検証基データから検証データを生成し、更新モジュールへ送信する。
(2)更新モジュール141cの構成
図66は、実施の形態5に係る更新モジュール141cの構成を機能的に示す機能ブロック図である。実施の形態4と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
実施の形態4の更新モジュール141と比較すると、更新モジュール141cは、新たに検知部810および検証データ保持部811を備える。
検証部805は、保護制御モジュール120cと各更新モジュールとが正常に動作するか検証を行う。検証部805は、事前に計算されたMAC値やハッシュ値を用いて、各更新モジュールを検証する。
検証部805は、保護制御モジュール120cの検証では、検知部810を用いる。検証部805は、保護制御モジュール120cから検証データを受け取ると、検証データを、検証データ保持部811に格納する。また、検証部805は、保護制御モジュール120cからアプリの復号処理の出力データを受け取ると、当該出力データを検知部810に出力する。そして、検証部805は、保護制御モジュール120cが正常に動作するか否かを示す検証結果を検知部810から受信する。
検知部810は、検証部805から受け取った出力データと検証データ保持部811に記憶されている検証データとを用いて、検証データに含まれる署名を検証する。署名を検証することにより、保護制御モジュール120cのアプリ復号処理の入出力の対応関係が正しいか否かを検証する。検知部810は、検証結果を検証部805に送信する。
検証データ保持部811は、検証部805から受け付けた検証データを記憶する。
(3)更新ソフトウェア配布部240cの構成
図67は、実施の形態5に係る更新用ソフトウェア配布部240cの構成を機能的に示す機能ブロック図である。実施の形態4と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
実施の形態4の更新用ソフトウェア配布部240と比較すると、更新用ソフトウェア配布部240cは、新たに、更新用ソフトウェア実行部1220、アプリ保持部1221、および検証基データ生成部1222とを備える。
更新用ソフトウェア実行部1220は、更新用ソフトウェア保持部1210に保持されている更新用の保護制御モジュールを用いて暗号化アプリを実行し、復号処理の入出力データを取得する。
アプリ保持部1221は、機器100bにインストールされるアプリを保持する。
検証基データ生成部1222は、保護制御モジュール120cの復号ロード部904が正常動作した際の、暗号化アプリの復号処理の入出力データの対応関係を保証する検証基データを生成し、生成した検証基データを機器100bへ送信する。検証基データの詳細は後述する。
2.動作
(1)初期設計処理の動作
ここでは、実施の形態5に係る初期設計処理の動作について説明する。
図68および図69は、初期設定処理の動作を示すフローチャートである。なお、ここでは、実施の形態4と異なる部分を説明する。
更新サーバ200bは、更新用ソフトウェア保持部1210に保持されている保護制御モジュール120cを、機器100bに送信する(ステップS501)。
ステップS502〜ステップS511までは、実施の形態4と同様である。
保護制御モジュール120cは、ステップS509およびステップS510で更新モジュール群130へ分散情報と暗復号鍵証明書とを送信した後、更新サーバ200bへ、検証基データの送付を依頼する(ステップS512)。
更新サーバ200bは、検証基データを生成する(ステップS513)。そして、更新サーバ200bは、生成した検証基データを、保護制御モジュール120cへ送信する(ステップS514)。
保護制御モジュール120cは、検証基データを受信して、記憶する(ステップS515)。
(2)更新モジュール初期化処理
図70は、更新モジュール初期化処理の動作を示すフローチャートである。
更新モジュール141cは、ステップS522で更新モジュール142cおよび更新モジュール143cの改ざん検出用証明書の検証を行う。
実施の形態5では、保護制御モジュール120cの改ざん検出を行う際、MAC値を用いた検証は行わない。そのため、ステップS522で、更新モジュール141cは、保護制御モジュール120cの改ざん検出用証明書の検証を行わない。
(3)検証基データ生成処理
図71は、検証基データ生成処理の動作を示すフローチャートである。
検証基データ生成部1222は、機器100bにインストールされる複数のアプリを保護制御モジュール120cの暗復号鍵で暗号化する(ステップS531)。
次に、検証基データ生成部1222は、証明書(対応関係証明書)を生成する(ステップS532)。
証明書は、保護制御モジュール120cが正常動作した際の入力データおよび出力データに対して、更新サーバ200の署名秘密鍵保持部1209の署名秘密鍵を用いて生成された署名である。保護制御モジュール120cに入力されるデータは、暗号化されたアプリであり、保護制御モジュール120cから出力されるデータは、復号された平文アプリである。なお、署名生成の対象となるデータは、保護制御モジュール120cの入力データおよび出力データだけでなく、アプリの識別情報やアプリの内容を示す情報(DVDやBDの再生アプリ、ネットバンキングのアプリなど)を含んでもよい。また、保護制御モジュール120cの識別情報を含んでもよい。
最後に検証基データ生成部1222は、アプリの識別情報、暗号化されたアプリのデータと証明書とから成る検証基データを生成する(ステップS533)。
図72は、検証基データのデータ構成を示す図である。
検証基データ1200は、複数のアプリについて、アプリ毎にアプリの識別情報と当該識別情報に対応する暗号化アプリのデータと証明書とが記載されて構成される。
(4)検知処理の動作
図73は、検知処理の動作を示すシーケンス図である。
保護制御モジュール120cは、各アプリを暗号化して保護している。実施の形態5の検知処理は、アプリの実行時に保護制御モジュール120cの検証を行うことが特徴である。
ここでは、保護制御モジュール120cがアプリ110を実行する場面を具体例として用い説明する。他のアプリの実行時に保護制御モジュール120cを検証する場合も同様である。
保護制御モジュール120cは、アプリ110を実行するコマンドを受け付けると、検証データ生成部912が生成した検証データと、アプリ110の識別情報と、復号結果であるアプリ110のデータとを、更新モジュール141cへ送信する(ステップS541)。図73では、記載を簡略化し、更新モジュール141cのみが保護制御モジュール120cの検証をしているが、更新モジュール142cおよび143cでも同様の処理が行われる。
その後の処理についても、更新モジュール142cおよび143cについて省略しているが、基本的には、更新モジュール141cと同様の処理が行われる。
更新モジュール141cは、検証データを用いて、保護制御モジュール120cによるアプリ110の復号処理の入出力対応が正しいか否かを検証する(ステップS542)。更新モジュール141cは、検証データに含まれる暗号化されたアプリ110のデータ(入力データ)と、受信した復号結果(出力データ)とを用いて検証する。
保護制御モジュール120cによる復号処理の入出力が正しくない場合(ステップS542で「正しくない」)、更新モジュール141cは、保護制御モジュール120cが改ざんされていると判定し、検証結果を判断部210bおよび他の更新モジュールへ通知する(ステップS543)。
保護制御モジュール120cによる復号処理の入出力が正しい場合(ステップS542で「正しい」)、検証モジュール141cは、判断部210bや他の更新モジュールへの通知を行わず、次のアプリ実行時に再度保護制御モジュール120cの検証を行う。
更新モジュール142cおよび143cは、更新モジュール141cから保護制御モジュール120cが改ざんされているとの検証結果を通知された場合、保護制御モジュール120cへアプリの識別情報と復号したアプリのデータと検証データとの送信を依頼する(ステップS544)。
保護制御モジュール120cは、更新モジュール142cおよび143cから送信依頼を受け付けると、アプリの識別情報と復号したアプリのデータと検証データとを送信する(ステップS545)。
更新モジュール142cおよび143cは、それぞれ、受信したアプリの識別情報と復号したアプリのデータと検証データとから、保護制御モジュール120cによるアプリ110の復号処理の入出力対応が正しいか否かを検証する(ステップS546)。そして、更新モジュール142cおよび143cは、判断部210bへ検証結果を送信し(ステップS547)、判断部210bは、検証結果を受信する。
(5)更新処理の動作
保護制御モジュール120cを更新用の新たな保護制御モジュールへ更新する場合、実施の形態5では、新たな保護制御モジュールの暗復号鍵保持部が、更新用ソフトウェア配布部240cによって生成された新暗復号鍵を保持している状態で、機器100bにインストールされる。
(6)再暗号化処理の動作
図74は、再暗号化処理の動作を示すシーケンス図である。
実施の形態5では、新たな保護制御モジュールの暗復号鍵保持部には、既に新暗復号鍵は保持されている。そこで、図74に示す再暗号化処理では、実施の形態4(図62)のステップS376のように新暗復号鍵の生成は行わない。
そして、保護制御モジュールは、旧暗復号鍵を復元し、旧暗復号鍵を用いて暗号化されたアプリを復号し、既に保持している新暗復号鍵を用いて、アプリを再暗号化する(ステップS556)。
(7)次ラウンド準備処理の動作
図75は、次ラウンド準備処理の動作を示すシーケンス図である。
保護制御モジュール120cは、ステップS563で各更新モジュールへ分散情報と暗復号鍵証明書とを送信した後、アプリの識別情報と暗号化されたアプリと検証基データの送付依頼とを、更新サーバ200bへ送信する(ステップS567)。その後、更新サーバ200bは、検証基データ生成処理を行う(ステップS568)。
次ラウンド準備処理における検証基データ生成処理は、初期設計処理における検証基データ生成処理と若干異なる。
更新サーバ200bは、更新処理で生成した新暗復号鍵を用いて、受信した暗号化アプリを復号する。そして、暗号化されたアプリおよび復号したアプリに対して、証明書(対応関係証明書)を生成する。証明書は、更新サーバ200bの署名秘密鍵を用いて生成された署名である。また、検証基データの構成は、図72に示した構成と同様である。
更新サーバ200bは、生成した検証基データを保護制御モジュールへ送信する(ステップS569)。保護制御モジュールは、検証基データを受信して、記憶する(ステップS570)。
(8)検証基データ更新処理
図76は、検証基データ更新処理の動作を示すシーケンス図である。
機器100bにアプリが追加される場合、検証基データも追加する必要がある。ここでは、機器100bに新たなアプリ(「アプリ115」という。)を追加する場合を例に説明する。
ユーザが、機器100bにアプリを追加する場合、機器100b内の保護制御モジュール120cは、ダウンロードしたアプリ115を受信する(ステップS581)。次に、保護制御モジュール120cは、暗復号鍵を用いて受信したアプリ115を暗号化する(ステップS582)。そして、保護制御モジュール120cは、アプリの識別情報と暗号化されたアプリと検証基データの送付依頼とを更新サーバ200bへ送信する(ステップS583)。
更新サーバ200bは、検証基データ生成処理を行う(ステップS584)。
検証基データ更新処理における検証基データ生成処理は、上述した次ラウンド準備処理における検証基データ生成処理と同様である。
更新サーバ200bは、更新処理で生成した新暗復号鍵を用いて、受信した暗号化アプリを復号する。そして、更新サーバ200bは、暗号化されたアプリおよび復号したアプリに対して、証明書(対応関係証明書)を生成する。証明書は、更新サーバ200bの署名秘密鍵を用いて生成された署名である。また、検証基データの構成は、図72に示した構成である。
更新サーバ200bは、生成した検証基データを、保護制御モジュール120cへ送信する(ステップS585)。保護制御モジュール120は、受信した検証基データを検証基データ保持部420へ記憶する(ステップS586)。
3.実施の形態5の効果
実施の形態5では、保護制御モジュール120cが行うアプリの復号処理が正しく実行されるか検証することにより、保護制御モジュール120cの改ざんの有無を検証した。
これにより、各更新モジュールが、保護制御モジュール120cのデータを知ることなく、保護制御モジュール120cを検証することができる。そのため、仮に更新モジュールが不正動作をしたとしても、保護制御モジュール120cのデータが漏洩するのを防止することができ、システムの安全性を一層高めることができる。
<実施の形態6>
次に、本発明の実施の形態6について説明する。ここでは、実施の形態5と同じ符号を用いて説明する。
1.概要
実施の形態6は、保護制御モジュール120cが行うアプリの復号処理を複数の処理に分割し、各処理の入出力の対応を検証することにより、保護制御モジュール120cの改ざん検出を行うことを特徴とする。
図77は、保護制御モジュール120cの復号処理を複数の処理に分割する概要を示す図である。実施の形態6では、一例として、復号処理を、復号部分処理1、復号部分処理2、および復号部分処理3の3つに分割する。
各更新モジュールは、復号部分処理ごとに生成された検証データを用いて、各復号部分処理の入出力の対応を検証する。なお、安全性の観点から、1つの更新モジュールが3つの復号部分処理をすべて検証するのではなく、3つの更新モジュールが、それぞれ異なる復号部分処理を検証することが望ましい。
2.構成
ここでは、実施の形態5と異なる構成について説明する。
実施の形態6では、検証基データ生成部1222が生成する検証基データの構成が異なる。
図78は、実施の形態6における検証基データのデータ構成を示す図である。
検証基データ1300は、復号部分処理1に関するデータ1300a、復号部分処理2に関するデータ1300b、および、復号部分処理3に関するデータ1300cを含む。
データ1300aは、アプリ110〜114のすべてのアプリについて、各アプリの識別情報、当該識別情報に対応する暗号化アプリのデータ、および、暗号化アプリのデータと復号部分処理1の出力データである中間値1とから生成した対応関係証明書を含む。
データ1300bは、アプリ110〜114のすべてのアプリについて、各アプリの識別情報、当該識別情報に対応する中間値1のデータ、および、中間値1と復号部分処理2の出力データである中間値2とから生成した対応関係証明書を含む。
データ1300cは、アプリ110〜114のすべてのアプリについて、各アプリの識別情報、当該識別情報に対応する中間値2のデータ、および、中間値2と復号部分処理3の出力データである復号したアプリのデータとから生成した対応関係証明書を含む。
なお、中間値1、中間値2、および復号したアプリのデータは、更新用ソフトウェア実行部1220が、アプリの復号処理を実行することにより取得する。
また、各対応関係証明書は、保護制御モジュール120cが正常動作した際のそれぞれの復号部分処理の入力データおよび出力データに対して、更新サーバ200bの署名秘密鍵を用いて生成する。
復号部分処理1の対応関係証明書は、暗号化された各アプリのデータをそれぞれ入力データとしたときの、入力データと保護制御モジュール120cが正常動作した際の出力データとに対して、更新サーバ200bの署名秘密鍵を用いて生成した署名である。
復号部分処理2の対応関係証明書は、各アプリの中間値1をそれぞれ入力データとしたときの、入力データと保護制御モジュール120cが正常動作した際の出力データとに対して、更新サーバ200bの署名秘密鍵を用いて生成した署名である。
復号部分処理3の対応関係証明書は、各アプリの中間値2をそれぞれ入力データとしたときの、入力データと保護制御モジュール120cが正常動作した際の出力データとに対して、更新サーバ200bの署名秘密鍵を用いて生成した署名である。
3.動作
(1)初期設計処理の動作
実施の形態6における初期設計処理の動作は、実施の形態5(図68および図69)と同様である。実施の形態6では、ステップS501で更新サーバ200bから機器100bに送信される保護制御モジュール120cは、図77に示すように、3つの復号部分処理により暗号化アプリを復号する復号プログラムを含む。
また、ステップS513の検証基データ生成処理の詳細は後述する。
(2)検証基データ生成処理
図79は、実施の形態6に係る検証基データ生成処理の動作を示すフローチャートである。
検証基データ生成部1222は、アプリ保持部1221に保持されている複数のアプリを、保護制御モジュール120cの暗復号鍵で暗号化する(ステップS601)。
次に、更新用ソフトウェア実行部1220は、保護制御モジュール120cの復号処理を実行し、複数の暗号化アプリを復号して、各復号部分処理の出力データである中間値および復号したアプリを取得する(ステップS602)。
次に、証明書生成部1208は、暗号化アプリのデータおよび中間値1の組、中間値1および中間値2組、ならびに、中間値2および復号したアプリのデータの組に対し、署名秘密鍵保持部1209に保持されている署名秘密鍵を用いて、証明書(対応関係証明書)を生成する(ステップS603)。
最後に、検証基データ生成部1222は、アプリの識別情報と各復号部分処理に対する入力データと、対応関係証明書とから成る検証基データを生成する(ステップS604)。
(3)検知処理の動作
図80および図81は、実施の形態6に係る検知処理の動作を示すシーケンス図である。
ここでは、具体例として、機器100bがアプリ110を実行する時に、保護制御モジュール120cの検知処理を行う場合について説明する。
保護制御モジュール120cは、アプリ110を実行するコマンドを受信すると、検証基データ保持部913に保持されている検証基データ(図78)から検証データを生成する(ステップS611)。
検証データ生成部912は、図82に示す復号部分処理1の検証データ1301と、図83に示す復号部分処理2の検証データ1302と、図84に示す復号部分処理3の検証データ1303とを生成する。
検証データ生成後、保護制御モジュール120cは、暗号化されたアプリ110を復号する(ステップS612)。
保護制御モジュール120cは、一つの更新モジュールを選択し(ここでは、更新モジュール141cとする。)、選択した更新モジュール141cへ、アプリ110の識別情報と中間値1と復号部分処理1の検証データとを送信する(ステップS613)。
保護制御モジュール120cは、先に選択した更新モジュールとは異なる更新モジュールを選択し(ここでは、更新モジュール142cとする。)、選択した更新モジュール142cへ、アプリ110の識別情報と中間値2と復号部分処理2の検証データとを送信する(ステップS614)。
さらに、保護制御モジュール120cは、先に選択した2つの更新モジュールとは異なる更新モジュールを選択し(ここでは、更新モジュール143cとする。)、選択した更新モジュール143cへ、アプリ110の識別情報と復号したアプリのデータと復号部分処理3の検証データとを送信する(ステップS615)。
そして、各更新モジュールは、受信した検証データを用いて、復号部分処理の入出力対応が正しいか否かを検証する(ステップS616、617、618)。
各更新モジュールは、復号部分処理の入出力が正しくないと判定した場合、保護制御モジュール120が改ざんされていると判定し(ステップS619、620、621でY)、検証結果を、判断部210bおよび他の更新モジュールへ通知する(ステップS622)。なお、図81では、更新モジュール141cのみが検証結果を通知するように記載しているが、更新モジュール142cおよび143cも、同様に検証結果を通知する。
各更新モジュールは、復号部分処理の入出力が正しく、保護制御モジュール120cが改ざんされていないと判定する場合(ステップS619、620、621でN)、判断部210bや他の更新モジュールへの通知を行わず、次のアプリ実行時に再度保護制御モジュール120cの検証を行う。
(4)次ラウンド準備処理の動作
実施の形態6における次ラウンド準備処理の動作は、実施の形態5(図75)と同様である。ただし、実施の形態6では、更新サーバ200bが生成する検証基データは、図78に示した検証基データ1300である。
(5)検証基データ更新処理の動作
実施の形態6における検証基データ更新処理の動作は、実施の形態5(図76)と同様の動作である。ただし、実施の形態6における検証基データ更新処理の検証基データ生成処理では、更新用ソフトウェア実行部1220は、暗号化アプリから中間値1、中間値2、および、復号したアプリのデータを取得する。そして、検証基データ生成部1222は、取得したデータを基に図78に示す検証基データ1300を生成する。
4.実施の形態6の効果
実施の形態6では、保護制御モジュール120cが実行する復号処理を部分処理に分割し、部分処理ごとに入出力データの対応関係を検証する。そのため、仮に更新モジュールが不正動作をしたとしても、保護制御モジュール120cが実行する復号処理の全体が漏洩するのを防止することができる。さらに、保護制御モジュール120cによる復号処理の全体のうち、どの部分が改ざんされたかを知ることができる。こ
<実施の形態7>
次に、本発明の実施の形態7について説明する。ここでは、実施の形態5と同じ符号を用いて説明する。
1.構成
実施の形態7は、検証基データ生成部1222が生成する検証基データの構成が、実施の形態5と異なる。
図85は、実施の形態7における検証基データのデータ構成を示す図である。
検証基データ1400は、各アプリについてのアプリの識別情報と当該識別情報に対応する暗号化アプリのデータと検証値、および、復号処理証明書から構成される。
暗号化アプリのデータは、更新用ソフトウェア実行部1220が保護制御モジュール120cを実行し、アプリ保持部1221に保持されている各アプリを暗復号鍵を用いて暗号化することにより生成される。
検証値は、暗号化したアプリのデータを入力データとしたときの、入力データと保護制御モジュール120cが正常動作した際の復号結果である出力データとを結合したデータのハッシュ値である。なお、検証値は、ハッシュ値を用いる代わりに、署名を用いてもよい。また、ハッシュ値を計算する対象データは、入力データおよび出力データだけでなく、アプリの識別情報やアプリの内容を示す情報(DVDやBDの再生アプリ、ネットバンキングのアプリなど)を含んでもよい。さらに、保護制御モジュール120cの識別情報を含んでもよい。
復号処理証明書は、以下のように生成される。先ず、アプリ110の検証値、アプリ111の検証値、アプリ112の検証値、アプリ113の検証値、およびアプリ114の検証値をすべて結合し、結合した値からハッシュ値を計算する。次に、計算したハッシュ値に対して、更新サーバ200bの署名秘密鍵を用いて署名を生成する。生成された署名が復号処理証明書となる。
また、実施の形態7は、保護制御モジュール120cの検証データ生成部912が生成する検証データが、実施の形態5と異なる。検証データ生成部912は、検証基データ保持部913に保持されている検証基データ(図85の検証基データ1400)から、検証データを生成し、各更新モジュールへ送信する。
ここでは、具体例として、アプリ110の実行時に検証データ生成部912が生成する検証データについて説明する。
図86は、アプリ110の実行時に検証データ生成部912が生成する検証データ1401のデータ構成を示す図である。
検証データ生成部912は、検証基データ1400から、アプリ110以外のアプリ111、112、113、114の識別情報および暗号化アプリのデータと、アプリ110の検証値とを削除することにより、検証データ1401を生成する。
なお、検証データ生成部912は、他のアプリについても同様の方法により検証データを生成する。すなわち、検証データ生成部912は、検証基データ1400から、実行するアプリ以外のアプリの識別情報と暗号化アプリのデータと実行するアプリの検証値とを削除することにより、検証データを生成する。
2.動作
(検知処理)
実施の形態7における検知処理の動作は、概ね、実施の形態5(図73)と同様である。
実施の形態7では、ステップS542の検証方法が異なる。
ステップS542において、更新モジュール141cは、検証データに含まれる暗号化アプリのデータと受信した復号アプリのデータとからハッシュ値を計算する。そして、計算したハッシュ値と検証データに含まれる他のアプリの検証値とを結合した データから、さらにハッシュ値を計算する。最後に、更新モジュール141cは、検証データに含まれる復号処理証明書と計算されたハッシュ値とを用いて、アプリの復号処理の入出力が正しいか否かを検証する。
3.実施の形態7の効果
実施の形態7の検証データは、保護制御モジュール120cが復号したアプリに関する情報のみが開示されている。これにより、更新モジュールが不正動作をしたとしても、検証データから他のアプリに関する情報が漏洩することがない。
また、実施の形態7では、検証基データを、暗号化アプリのデータ、検証値(ハッシュ値)、および、復号処理証明書(結合ハッシュ値から生成されたハッシュ値に対する署名)で構成することにより、保護制御モジュール120cが正しく復号処理を行っていることを検証することができる。
<実施の形態8>
次に、本発明の実施の形態8について説明する。ここでは、実施の形態5と同じ符号を用いて説明する。
1.概要
実施の形態8は、各更新モジュールが検知処理に用いる検証データを、検証後に消去することが特徴である。さらに、実施の形態8は、各更新モジュールがお互いに改ざん検出処理を行い、相互に検証データを消去したことを確認し合うことが特徴である。なお、各装置の構成は、実施の形態5と同様である。
2.動作
(検知処理)
図87および図88は、実施の形態8に係る検知処理の動作を示すシーケンス図である。
図87のステップS651〜ステップS657までは、実施の形態5(図73)と同様である。ここでは、図88のステップS661から説明する。
各更新モジュールは、検証データ保持部811に記憶されている検証データを消去する(ステップS661)。次に、各更新モジュールは、検証データを消去したか否かを確認するため、相互に改ざん検出処理を行う。
更新モジュール141cは、更新モジュール142cの改ざん検出処理を行い(ステップS662)、更新モジュール142cは、更新モジュール143cの改ざん検出処理を行い(ステップS663)、更新モジュール143cは、更新モジュール141cの改ざん検出処理を行う(ステップS664)。
なお、改ざん検出処理は、検証鍵を用いて各更新モジュールのMAC値を計算し、MAC値テーブルに保持されているMAC値と、計算されたMAC値とを比較することにより行われる。また、MAC値を用いる代わりに、各更新モジュールのハッシュ値を算出し、各更新モジュールに予め付加されている証明書に記述されているハッシュ値と、算出されたハッシュ値とを比較することにより行われるとしてもよい。
各更新モジュールは、改ざん検出結果を判断部210bへ送信する(ステップS665)。
判断部210bは、各更新モジュールから改ざん検出結果を受信し(ステップS667)、保護制御モジュール120cの検知処理を行った更新モジュールが改ざんされているか否か判定する(ステップS668)。
更新モジュールが改ざんされていると判定した場合(ステップS668でY)、判断部210bは、保護制御モジュール120cの検知処理が正しく行われていないと判断し、改ざんされた更新モジュールの無効化処理を行う(ステップS669)。その後、判断部210bは、保護制御モジュール120cに対して、再度検知処理を行う旨を通知する(ステップS670)。
更新モジュールが改ざんされていないと判定した場合(ステップS668でN)、ステップS661において検証データの消去が正しく行われたものとみなすことができる。
3.実施の形態8の効果
実施の形態8では、各更新モジュールが、検知処理に用いた検証データを消去したことを相互に確認することにより、更新モジュールにおいて検証データが蓄積されるのを防止することができる。これにより、1つの更新モジュールが不正動作をしたとしても、1つのアプリの検証データの漏洩だけで済み、それ以上の検証データの漏洩を防止することができる。
<実施の形態9>
次に、本発明の実施の形態9について説明する。ここでは、実施の形態5と同じ符号を用いて説明する。
1.概要
実施の形態9は、保護制御モジュールの検知処理において、アプリのデータを用いず、更新サーバ200bから予め受信した検証データを用いることが特徴である。
2.構成
図89を用いて、実施の形態9における検証データについて説明する。
検証データ1500は、更新サーバ200bが生成した5つのデータのそれぞれについて、各データ識別する識別情報と、当該識別情報が示す暗号化データと、暗号化データおよび復号データに対して生成された証明書(対応関係証明書)とから構成される。
なお、対応関係証明書は、暗号化データを入力データとしたときの、入力データと保護制御モジュール120cが正常動作した際の出力データとに対し、更新サーバ200bの署名秘密鍵を用いて生成した署名である。
3.動作
(1)初期設計処理の動作
図90および図91は、実施の形態9に係る初期設計処理の動作を示すシーケンス図である。
実施の形態9に係る初期設計処理の動作は、実施の形態5(図68)と同様である。ステップS713の更新サーバ200bによる検証データ生成処理が実施の形態5と異なる。
(2)検証データ生成処理
図92は、実施の形態9に係る検証データ生成処理の動作を示すフローチャートである。
更新サーバ200bは、任意の複数のデータを生成し、生成したデータをそれぞれ保護制御モジュール120cの暗復号鍵で暗号化する(ステップS721)。
そして、更新サーバ200bは、生成した前記複数のデータのそれぞれについて、平文のデータおよび暗号化データを対応付けたデータに対して、対応関係証明書を生成する(ステップS722)。
最後に、更新サーバ200bは、各データの識別情報と暗号化データと対応関係証明書とから構成される検証データを生成する(ステップS723)。
(3)検知処理の動作
図93および図94は、実施の形態9に係る検知処理の動作を示すシーケンス図である。
更新モジュール141cは、既に保持している検証データから1つの暗号化データを選択して保護制御モジュール120cへ送信する(ステップS731)。
保護制御モジュール120bは、受信した暗号化データを、暗復号鍵を用いて復号する(ステップS732)。保護制御モジュール120cは、復号したデータを更新モジュール141cへ送信する(ステップS733)。
なお、図93および図94では、更新モジュール141cのみが保護制御モジュール120cの検知処理を行っているが、更新モジュール142cおよび143cにおいても同様の処理が行われる。
更新モジュール141cは、検証データと受信した復号データとを用いて、保護制御モジュール120cの復号処理の入出力の対応が正しいか否かを(ステップS734)。
復号処理の入出力が正しくない場合(ステップS734で「正しくない」)、更新モジュール141cは、保護制御モジュール120cが改ざんされていると判定し、判断部210b、更新モジュール142c、および更新モジュール143cへ検証結果を通知する(ステップS735)。
復号処理の入出力が正しい場合(ステップS734で「正しい」)、更新モジュール141cは、判断部210bや他の更新モジュールへ検証結果を通知しない。
その後、更新モジュール141cは、任意のタイミングで保護制御モジュール120cの検証を行う。更新モジュール141cは、定期的に保護制御モジュール120bの検証を行ってもよいし、保護制御モジュール120cによるアプリの実行時に行ってもよい。また、検証を行うタイミングが記載された情報を、予め更新サーバ200bから更新モジュール141cに与えるとしてもよい。
更新モジュール141cおよび143cは、保護制御モジュール120cが改ざんされている旨の検証結果を受け付けると、既に保持している検証データから1つの暗号化データを選択して保護制御モジュール120cへ送信する(ステップS736およびステップS737)。
保護制御モジュール120cは、受信した暗号化データを、それぞれ、暗復号鍵を用いて復号し(ステップS738)、復号したデータを対応する更新モジュール142cおよび143cへ送信する(ステップS739およびステップS740)。
更新モジュール142cおよび143cは、検証データと受信した検証データとを用いて、保護制御モジュール120cの復号処理の入出力の対応が正しいか否かを検証する(ステップS741およびステップS742)。
更新モジュール142cおよび143cは、検証結果を判断部210bへ送信し(ステップS743およびステップS744)、判断部210bは、検証結果を受信する。
(4)次ラウンド準備処理の動作
図95は、実施の形態9に係る次ラウンド準備処理の動作を示すシーケンス図である。
ステップS801〜ステップS814までの処理は、実施の形態5(図75)と同様である。ここでは、ステップS802以降について説明する。
各更新モジュールは、分散情報の保持した後、更新サーバ200bへ検証データの送付依頼を送信する(ステップS805、ステップS806およびステップS807)。
更新サーバ200bは、検証データ生成処理を行う(ステップS808)。次ラウンド準備処理の検証データ生成処理では、初期設計処理の検証データ生成処理と若干異なる。更新サーバ200bは、更新処理で生成した新暗復号鍵を用いて、任意のデータを暗号化する。そして、平文のデータおよび暗号化データを対応付けたデータに対して、対応関係証明書を生成する。なお、検証データの構成は、図89に示した検証データ1500と同様である。
更新サーバ200bは、生成した検証データを各更新モジュールへ送信する(ステップS809)。各更新モジュールは、検証データを受信して、記憶する(ステップS810)。
(5)検証データ更新処理の動作
実施の形態9では、更新サーバ200bが任意のデータから生成した検証データを用いて、保護制御モジュール120cの検知処理を行う。
そこで、検知処理を繰り返し行った場合、保護制御モジュール120cが復号処理の入出力データを記憶し、それを、更新モジュールへ送信するような不正を行う可能性もある。そうすると、各更新モジュールは、保護制御モジュール120cの検知処理を正しく行うことができない。
そこで、実施の形態9では、検証データを更新することにより、検証に使用する暗号化データの種類が増やし、より安全性の高いシステムを構築することができる。なお、検証データ更新処理は、定期的に行ってもよいし、不定期に行うとしてもよい。
図96は、検証データ更新処理の動作を示すシーケンス図である。ここでは、具体例として、更新モジュール141cについて説明するが、更新モジュール142cおよび143cについても同様である。
更新モジュール141cは、検証データを更新するため、検証データの送付依頼を更新サーバ200bへ送信する(ステップS831)。
更新サーバ200bは、検証データ生成処理を行う(ステップS832)。
検証データ更新処理の検証基データ生成処理は、次ラウンド準備処理の検証データ生成処理と同様である。更新サーバ200bは、生成した検証データを更新モジュール141cへ送信する(ステップS833)。
更新モジュール141cは、検証データを受信し、記憶する(ステップS834)。
4.実施の形態9の効果
実施の形態9では、更新モジュールが、検証データの中から任意に、検証に用いる暗号化データを選択する。そのため、保護制御モジュール120cでは、不正動作を行うことが困難となる。これにより、システムの安全性を高めることができる。
<実施の形態10>
最後に、本発明の実施の形態10について説明する。ここでは、実施の形態5と同じ符号を用いて説明する。
1.概要
実施の形態10では、実施の形態6と同様、保護制御モジュール120cによるアプリの復号処理を複数の復号部分処理に分割して検知処理を行う。実施の形態10は、さらに、復号部分処理が実行された順序についても検証することが特徴である。
2.構成
実施の形態10では、復号部分処理の順番を示す順序情報を用いる。順序情報は、復号部分処理の順番と、部分処理が最後の処理でなければ次の順番の復号部分処理の検証する更新モジュールを示す情報である。
例えば、更新モジュール141c、142c,143cの識別情報をそれぞれID1、ID2、ID3とし、更新モジュール141c、142c、143cの順番で復号部分処理を行う場合、順序情報を(ID1、ID2,ID3)と記載してもよい。
3.動作
(検知処理の動作)
図97から図99は、実施の形態10に係る検知処理の動作を示すシーケンス図である。
ステップS901〜ステップS902は、実施の形態6(図80)の処理と同様である。ステップS903から説明する。
保護制御モジュール120cは、一つの更新モジュールを選択し(ここでは、更新モジュール141cとする。)、選択した更新モジュール141cへ、アプリ110の識別情報と中間値1と復号部分処理1の検証データと順序情報とを送信する(ステップS903)。
保護制御モジュール120cは、先に選択した更新モジュールとは異なる更新モジュールを選択し(ここでは、更新モジュール142cとする。)、選択した更新モジュール142cへ、アプリ110の識別情報と中間値2と復号部分処理2の検証データと順序情報とを送信する(ステップS904)。
さらに、保護制御モジュール120cは、先に選択した2つの更新モジュールとは異なる更新モジュールを選択し(ここでは、更新モジュール143cとする。)、選択した更新モジュール143cへ、アプリ110の識別情報と復号したアプリのデータと復号部分処理3の検証データと順序情報とを送信する(ステップS905)。
更新モジュール141cは、受信した検証データを用いて、復号部分処理1の入出力対応が正しいか否かを検証する(ステップS906)。復号部分処理の入出力対応が正しくないと判定した場合、保護制御モジュール120cが改ざんされていると判定し(ステップS907でY)、判断部210bへ通知する(ステップS908)。
保護制御モジュール120cが改ざんされていないと判定する場合(ステップS907でN)、更新モジュール141cは、判断部210bへの通知を行わず、順序情報に含まれる更新モジュール識別情報にしたがい、次の更新モジュール142cへ、中間値1を送信する(ステップS909)。
更新モジュール142cは、更新モジュール141cから受信した中間値1が、保護制御モジュール120cから受信した検証データに含まれる中間値1と一致するか否かを検証する(ステップS910)。
次に、更新モジュール142cは、保護制御モジュール120cから受信した中間値2と検証データを用いて、復号部分処理2の入出力対応が正しいか否かを検証する(ステップS911)。ステップS901で中間値1が一致しない場合、または、ステップS911で復号部分処理2の入出力が正しくない場合、更新モジュール142cは、保護制御モジュール120cが改ざんされていると判定する。
保護制御モジュール120cが改ざんされている場合(ステップS912でY)、更新モジュール142cは、判断部210bへ通知する(ステップS913)。保護制御モジュール120cが改ざんされていない場合(ステップS912でN)、更新モジュール142cは、判断部210bへの通知を行わず、順序情報に含まれる更新モジュール識別情報にしたがい、次の更新モジュール143cへ、中間値2を送信する(ステップS914)。
更新モジュール143cは、更新モジュール142cから受信した中間値2が、保護制御モジュール120cから受信した検証データに含まれる中間値2と一致するか否かを検証する(ステップS915)。
次に、更新モジュール142cは、保護制御モジュール120cから受信した中間値2と検証データを用いて、復号部分処理3の入出力対応が正しいか否かを検証する(ステップS916)。ステップS915で中間値2が一致しない場合、または、ステップS916で復号部分処理3の入出力が正しくない場合、更新モジュール143cは、保護制御モジュール120cが改ざんされていると判定する。
保護制御モジュール120cが改ざんされている場合(ステップS917でY)、更新モジュール143cは、判断部210bへ通知する(ステップS918)。保護制御モジュール120cが改ざんされていない場合(ステップS917でN)、判断部210bへの通知を行わず、検知処理を終了する。
3.実施の形態10の効果
実施の形態10では、順序情報を用いて、復号部分処理が正しい順序で行われているかを検証することができる。
また、各更新モジュールは、復号部分処理の出力データと検証データに含まれるデータとが一致するか否かを検証することで、保護制御モジュール120cまたは他の更新モジュールが不正動作を行っていることを知ることができる。
<その他の変形例>
なお、本発明を上記の実施の形態に基づき説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記実施の形態では、検知モジュール群、および、更新モジュール群による相互監視処理改ざんされた検知モジュールまたは更新モジュールがあると判定した場合には、判断部は、直ちに検知処理の停止を検知モジュールへ通知するとした。
しかし、本発明はこれに限定するものではなく、改ざんされた検知モジュールまたは更新モジュールを無効化してもよいし、改ざんされた検知モジュールまたは更新モジュールを、それ以降の保護制御モジュール検知処理では用いないようにしてもよい。
(2)上記実施の形態の検知処理では、アプリ実行時に保護制御モジュールの復号処理を検証している。しかし、本発明はこれに限定するものではなく、アプリを暗号化する処理で検証するとしてもよい。この場合、図16の検知処理のシーケンス図におけるステップS41およびステップS42に替えて、暗号化する前のアプリをアプリ分割部で分割し、分割したアプリを復号ロード部で暗号化する。ステップS43以降の処理は同様である。これにより、保護制御モジュールが正しく暗号化処理を行い、アプリを保護していることを確認することができる。
また、アプリの追加時に行うアプリの暗号化処理や、アプリの再暗号化時に行う暗号化処理で保護制御モジュールを検証するとしてもよい。
(3)上記実施の形態の検知処理では、検知モジュールが他の検知モジュールへ分割情報を送信し、すべての分割データが検証されているか否かを確認している。しかし、本発明はこれに限定するのではなく、検知モジュールは予めすべての分割情報を保持していてもよい。
検知モジュールは、分割情報を選択し、検知モジュールから保護制御モジュールへ選択した分割情報に対応する分割データを送信するように依頼するとしてもよい。
また、各検知モジュールはそれぞれがどの分割情報を選択したのかを共有し、他の検知モジュールが選択した分割情報に対応する分割データが保護制御モジュールから送信されているか否かを確認するとしてもよい。
(4)上記実施の形態の検知処理では、アプリが実行される毎に、保護制御モジュールから検知モジュールへ分割データおよび対応する検証データを送信し、検知モジュールが検証していた。しかし、本発明はこれに限定されない。保護制御モジュールは、ステップS42の後、分割データを蓄積しておき、検知モジュールから依頼を受けた時点で、蓄積された分割データおよび対応する検証データを送信するとしてもよい。
この構成により、検知モジュールによる検知処理の実行回数へ減らすことができる。
また、検知処理の前に検知モジュール群において相互監視処理を行うことで、正当な検知モジュールと判断された検知モジュールを用いて、保護制御モジュールの検知処理を実行することができる。
また、保護制御モジュール内で分割データを蓄積するとき、保護制御モジュールは、各検知モジュールと鍵を共有し、各検知モジュールの共有鍵を用いて分割データを暗号化して保持しておくとしてもよい。また、保護制御モジュールの認証部が保持する公開鍵を用いて、分割データを暗号化するとしてもよい。
また、一つの分割データに対し、複数の検知モジュールの鍵を用いて暗号化するとしてもよい。また、保護制御モジュールが、どの検知モジュールの鍵を用いるか選択してもよいし、管理装置が選択し、保護制御モジュールに指示するとしてもよい。さらに、管理装置が選択したことを証明するための証明書を付加してもよい。
(5)上記実施の形態の解析・判断処理では、保護制御モジュールの改ざんの有無を検知モジュールによる検出結果を用いて判断した。
しかし、本発明はこれに限定するものではなく。検知モジュール群が相互監視処理を実行し、正当な検知モジュールの検出結果のみを用いて、保護制御モジュール改ざんの有無を判断するとしてもよい。また、相互監視処理で不正な検知モジュールが検出された場合、正当な検知モジュールのみに検知処理を再度実行させるとしてもよい。
(6)上記実施の形態では、保護制御モジュールと検知モジュールとは、同一機器内にインストールされているとしたが、それぞれが別の機器にインストールされてもよい。その場合、例えば、保護制御モジュールは、証明書を発行する認証局の装置にインストールされ、検知モジュールは、監査装置にインストールされてもよい。監査装置が、証明書の発行が正しいか否かを検知するシステムで用いてもよい。
(7)上記実施の形態では、具体例として、復号した平文アプリのデータを3つに分割し、それぞれの分割データの1つを検知モジュールが検証するとした。
しかし、本発明はこれに限定するものではなく、アプリのデータをk個に分割し、各検知モジュールにk−1個以下の分割データを送信し、検証させるとしてもよい。
k個の分割データを取得しない限り、アプリのデータを復元することはできないので、一つの検知モジュールから分割データが漏洩しても、アプリのデータが漏洩することはない。
(8)上記実施の形態では、復号した平文アプリのデータを3つに分割し、3つの分割データからアプリのデータが復元できるようにしている。
しかし、本発明はこれに限定するものではなく、アプリのデータをm個に分割し、m個のうちk個の分割データからアプリのデータが復元できるようにするとしてもよい。
このとき、保護制御モジュールは、分割データを送信する検知モジュールを選択し、選択した各検知モジュールにk−1個以下の分割データと対応する検証データとを送信する。検知モジュールは受信したk−1個以下の分割データと検証データを用いて検証する。
具体的に例を用いて説明する。分割方法として、(k、m)しきい値法を用いて、アプリのデータをm個に分割し、k個で復元できるようにしてもよい。(k、m)しきい値法は非特許文献1の214ページから216ページに記載されている。
(k、m)しきい値法では、y軸切片がアプリのデータとなるk−1次の多項式f(x)を用いる。多項式f(x)で、x=1,・・・,mとしたときのm個の情報が分割データとなる。m個の分割データのうち、k個の分割データから多項式f(x)が一意に定まるため、y軸切片のアプリのデータも一意に定まる。このときの判定情報は、kとなる。また、RSA暗号における公開鍵n(=pq)を、1189(=29×41)とした場合、判定情報は、1189となる。このとき、アプリのデータを7,11,13,17,19で法を取った5つに分割した場合、1189を超えるように、例えば(7,11,17)や(7,13,19)のように、中国人剰余定理を用いるとアプリのデータが復元できる。
アプリのデータを一定サイズ(たとえば、5バイト)ごとに分割する場合には、図100に示すように分割してもよい。分割データ1は、0バイト目から5バイト分、分割データ2は、5バイト目から5バイト分、分割データ3は、10バイト目から5バイト分、分割データ4は、3バイト目から5バイト分、分割データ5は、8バイト目から5バイト分となる。
このときの判定情報の構成は、((1,2,3)、(1,3,4,5))となる。
保護制御モジュールは判定情報から、どの分割データを検知モジュールに送信するかを決定する。例えば、保護制御モジュールが判定情報(1,3,4,5)を用いて検証させると決定した場合、アプリ分割部で分割された分割データのうち、分割データ1,3,4,5を選択し、それぞれの分割データと対応する検証データとを、いずれかの検知モジュールへ送信する。検知モジュールは、受信した分割データと検証データとを用いて検証を行う。さらに、検知モジュールは、判定情報に基づいて、分割データ1,2,3または、分割データ1,3,4,5が検証されたことを、他の検知モジュールの分割情報を用いて確認する。
(9)上記実施の形態の検知処理において、どの検知モジュールにどの分割データを送信するか、管理装置が予め決定して制御情報として生成し、管理装置から保護制御モジュールへ、生成した制御情報を送信してもよい。
また、検知モジュールが、所定の決定アルゴリズムを用いて決定してもよい。決定アルゴリズムは、例えば、乱数を発生させて、その乱数に基づいて検知処理を行う検知モジュールを決定する。このとき、すべての検知モジュールで同一の決定アルゴリズムを共有し、同じタイミングで同じ値の乱数を生成するものとする。決定した検知モジュールは、保護制御モジュールに、分割データおよび検証データの送信を依頼する。
(10)上記実施の形態では、保護制御モジュールのアプリ復号処理またはアプリ暗号化処理ではなく、署名生成処理、署名検証処理、著作権保護の機能を実現する処理(コンテンツの権利更新などの権利管理)、ネットバンキングを実現する処理(電子マネーをはじめとする電子的価値の管理)などを検証するとしてもよい。
その場合、管理装置は、あらかじめこれらの処理に対する検証基データを生成し、保護制御モジュールに送信しておく。
(11)上記実施の形態では、検証データに全てのアプリに対する復号処理証明書を含めていたが、これに限定するものではなく、検証するアプリに対する復号処理証明書のみを検証データに含めるとしてもよい。
(12)上記実施の形態2では、相互監視処理により改ざん検出されなかった場合、分割データが消去されたとみなした。しかし、分割データの消去を確認する方法はこれに限定されない。例えば、検証データ保持部にデータが記憶されているか否かを確認することで、分割データが消去されたことを確認してもよい。
また、検知モジュールは、分割データを消去するプログラムが検知モジュール内で動作したときに立ち上がるフラグを保持しておき、当該フラグを確認することで、分割データが消去されたことを確認してもよい。
(13)上記実施の形態の検証基データ更新処理では、検証基データを生成する際に、追加アプリを保持している管理装置から保護制御モジュールへ、追加アプリを送信し、保護制御モジュールにおいて、暗号化アプリを生成してもよい。そして、保護制御モジュールは、暗号化アプリを管理装置に返送して、管理装置が検証基データを生成してもよい。
また、機器は、記録媒体から追加アプリをインストールして、インストールしたアプリを暗復号鍵で暗号化し、暗号化アプリを管理装置に送信するとしてもよい。
(14)上記実施の形態では、アプリを機器に追加するときに、検証基データの更新処理行うとしているが、本発明はこれに限定するものではなく、定期的、または、不定期に検証基データを更新するとしてもよい。
例えば、アプリをダウンロードするサーバにアプリが追加されたときに、その追加アプリが機器にインストールされるのに先立って検証基データ更新処理を行うとしてもよい。これにより、追加アプリを機器にインストールするときには、機器を管理装置に接続する必要がなくなる。
(15)上記実施の形態では、検証基データの更新処理の動作として、アプリを機器に追加するときに行うとしているが、これに限定するものではなく、予め機器に追加される取りうるアプリのデータの検証基データを生成しておくとしてもよい。
(16)上記実施の形態における検証基データの更新処理のなかで、管理装置が、保護制御モジュールを認証してもよい。認証方法としては、保護制御モジュールの復号処理を検証してもよいし、チャレンジ・レスポンスを用いてもよい。
(17)上記実施の形態にプログラムの難読化技術を組み合わせて、復号処理や復号部分処理に難読化を施してもよい。これにより、仮に検知モジュールが不正動作を行ったとしても、保護制御モジュールの情報がいっそう漏洩しにくくなる。
(18)上記実施の形態の初期設計処理では、保護制御モジュールを機器にインストールした後に、管理装置で検証基データを生成し、保護制御モジュールへ送信している。
しかし、本発明はこれに限定するものではなく、保護制御モジュールを機器にインストールする際、保護制御モジュールの検証基データ保持部に予め検証基データが埋め込まれた状態でインストールしてもよい。
また、更新処理のなかで、更新後の新たな保護制御モジュールを機器に送信するときも、同様に、新たな保護制御モジュールの検証基データ保持部に予め検証基データが埋め込まれた状態で送信してもよい。
(19)上記実施の形態の検知処理では、アプリの実行時に、保護制御モジュールから検知モジュールへ、検証データとアプリの識別情報と復号したアプリのデータとを送信するとしているが、本発明はこれに限定するものではない。
例えば、ユーザがアプリを実行する際の実行コマンドを管理する管理モジュールを機器にインストールしておき、管理モジュールが実行コマンドを検知したときに、管理モジュールから検知モジュールへ、アプリが実行される旨を通知し、通知を受信した検知モジュールは、保護制御モジュールへ検証データと復号したアプリのデータとを送信するように依頼してもよい。
また、検知モジュール側でアプリの実行を監視し、アプリ実行時に保護制御モジュールへ検証データと復号したアプリのデータとを送信するように依頼してもよい。
(20)上記実施の形態の検知処理では、保護制御モジュールから検知モジュールへ、アプリの識別情報、分割データ、および検証データが送信されなかった場合、検知モジュールは、保護制御モジュールが改ざんされていると判定してもよい。
(21)上記実施の形態では、保護制御モジュールは、アプリのデータを復元できる最小の分割データのうち、1ビット以上の情報量を削減した分割データを被検証データとして検知モジュールへ送信してもよい。
このとき、保護制御モジュールは、被検証データを一つの検知モジュールに送信してもよい。また、保護制御モジュールは、すべての検知モジュールに送信した被検証データを用いるとアプリのデータが復元できるように、各検知モジュールに被検証データを送信するとしてもよい。
(22)上記実施の形態では、検知モジュールは、保護制御モジュールを検証する機能のみをもつプログラムであってもよい。
(23)上記実施の形態では、保護制御モジュールを更新するとしたが、本発明は、保護制御モジュール以外のモジュールを更新するとしてもよい。
ここでは、検知モジュール133を更新する場合を例に挙げ、検知モジュールの更新処理を説明する。
更新用ソフトウェア配布部は、更新用の新たな更新モジュールを複数の鍵を用いて多重に暗号化し、検知モジュール群に含まれる他の検知モジュールへ送信する。更新用の新たな検知モジュールを受信した検知モジュールは、検知モジュール133を更新する。
(24)上記実施の形態における更新モジュールは、監視処理に必要な構成要素(制御部および検証部のみで構成してもよいし、更新処理に必要な構成要素(制御部および更新部)のみで構成してもよいし、無効化処理に必要な構成要素(制御部303および更新部304)のみで構成してもよい。
(25)上記実施の形態では、更新モジュールが他の更新モジュールや保護制御モジュールの改ざん検出を行う際に、モジュール全体の改ざん検出を行うのではなく、モジュール内の一部、例えば、特定の機能や関数、鍵等の改ざん検出を行ってもよい。
また、改ざん検出対象のデータを、一定サイズに分割した分割データ毎に改ざん検出を行ってもよいし、機能や関数単位で分割した分割データ毎に改ざん検出を行ってもよい。さらに、改ざん検出対象の分割データを、データの先頭から順にチェックしてよいし、ランダムな順序でチェックしてもよい。
(26)上記実施の形態では、更新モジュールおよび保護制御モジュールを、耐タンパ化された領域に格納し、攻撃者による攻撃から保護された領域で動作するとしてもよい。
監視処理に必要な構成要素のみで構成される更新モジュールが、耐タンパ化された領域に格納されている場合、他のモジュールは、当該更新モジュールから受け付けた通知を無条件に受け入れて、更新処理や無効化処理を実施してもよい。または、当該更新モジュールから受け付けた通知を、他のモジュールからの通知よりも重要度の高い通知として扱い、更新処理や無効化処理の判断を行ってもよい。
また、保護制御モジュールを保護モード(耐タンパ化された領域)で実行し、更新モジュールを通常モード(耐タンパ化されていない領域)で実行してもよい。
(27)上記実施の形態では、モジュール無効化部は、更新サーバ内に存在し、アクセス制御モジュールは、機器内に存在していた。しかし、本発明はこれに限定されず、モジュール無効化部およびアクセス制御モジュールは、いずれも機器内に存在してもよいし、いずれも更新サーバ内に存在してもよい。機器内に存在する場合には、耐タンパ化された領域に格納されてもよい。
(28)上記実施の形態では、機器の初期設計処理を、工場出荷後に行ってもよい。また、機器の初期化設計処理は1度だけでなく、2度以上行ってもよい。
(29)上記実施の形態では、検証用証明書、認証鍵証明書、および対応関係証明書は、いずれも更新用ソフトウェア配布部が保持する署名秘密鍵を用いて生成された。しかし、本発明はこれに限定されず、それぞれの証明書は、それぞれ別の鍵を用いて生成されてもよい。また、それぞれの証明書は、更新用ソフトウェア配布部以外の証明書発行装置により発行された証明書でもよい。
(30)上記実施の形態における初期設計処理や次ラウンド準備処理では、更新モジュールが分散情報を保持する構成であった。しかし、分散情報は、アプリが保持する構成でもよいし、更新モジュールおよびアプリが保持する構成でもよい。
(31)上記実施の形態の検知処理では、更新モジュールが保護制御モジュールの改ざんを検出した場合、判断部および他のすべての更新モジュールへ、その旨を通知するとした。しかし、本発明はこれに限定されず、判断部のみに通知してもよいし、と他の更新モジュールのうち、どれか1つの更新モジュールにのみ通知してもよい。
また、上記実施の形態では、更新モジュールが、保護制御モジュールの改ざんを検出しなかった場合、判断部へ通知を行わないとしたが、改ざんを検出しなかった旨を判断部へ通知してもよい。
(32)上記実施の形態の検知処理において、各更新モジュールが、他の更新モジュールで検出結果を共有するとしてもよい。また、検出結果を共有しない更新モジュールがあった場合に、当該更新モジュールを不正な更新モジュールと判断して、無効化するとしてもよい。
(33)上記実施の形態では、解析・判断処理の動作として、改ざん情報に基づいて保護制御モジュール120を更新するかどうか判定するとしたが、これに限定するものではなく、改ざんされていると通知してきた更新モジュールの数によって更新するかどうかを判定してもよい。また、解析・判断時の動作として、保護制御モジュール120を更新するか否か、及び保護制御モジュール120を無効化するか否かを判断したが、これに限定するものではなく、機器100を停止するか否かを判断するとしてもよい。
(34)上記実施の形態における相互認証処理では、更新モジュールが、更新用ソフトウェア配布部を認証し、その後、更新用ソフトウェア配布部がそれぞれの更新モジュールを認証した。しかし、認証の順序は逆でもよい。更新用ソフトウェア配布部が、それぞれの更新モジュール認証し、その後、更新モジュールが、更新用ソフトウェア配布部を認証してもよい。
また、相互認証処理で用いるチャレンジデータは、すべての更新モジュールで同じ値としてもよいし、更新モジュールを複数のグルーブに分け、それぞれのグループで異なる値にしてもよい。
(35)上記実施の形態における相互認証処理では、各更新モジュールは、それぞれ個別に更新用ソフトウェア配布部を認証する構成を有していた。
しかし、本発明はこれに限定されず、各更新モジュールが署名検証した結果を、他の更新モジュールへ通知し、更新モジュール間で検証結果を共有するとしてもよい。自更新モジュールの認証結果と他の更新モジュールから受信した認証結果とを用いて、たとえば、過半数等の更新モジュールが認証に成功した場合には更新用ソフトウェア配布部が正当であると判定し、そうでない場合には、正当ではないと判定してもよい。
(36)上記実施の形態における相互認証処理では、正当な更新モジュールの数が、回復処理に必要な数以上あるか否かに応じて、回復処理を行うか判断した。
これに替えて、不正な更新モジュールの数が、予め設定されている許容数未満か否かに応じて、回復処理を行うか判断してもよい。
また、正当な更新モジュールの数が、回復処理に必要な数に満たないと判定した場合には、機器を停止する替わりに、不正な更新モジュールを無効化してもよい。
(37)上記実施の形態における相互認証処理では、各更新モジュールは、レスポンスデータと共に、認証公開鍵および認証鍵証明書を更新用ソフトウェア配布部へ送信した。しかし、レスポンスデータと、認証公開鍵および認証鍵証明書とは、それぞれ別のタイミングで送信してもよい。また、認証公開鍵および認証鍵証明書は、更新用ソフトウェア配布部から要求があった場合に、送信するとしてもよい。
更新用ソフトウェア配布部は、すべての更新モジュールから認証公開鍵および認証鍵証明書を受信してもよいし、回復処理に必要な数の更新モジュールから認証公開鍵および認証鍵証明書を受信してもよい。
(38)上記実施の形態では、1回の復号処理中に、2回の監視処理を実行した(監視3−1、3−2、5−1、5−2)。しかし、監視処理は2回に限定されず、復号処理にかかる時間に応じて、何回行ってもよい。
また、復号処理中に監視処理を行う場合に限定されず、鍵や更新用保護制御モジュールの受信処理時や検知処理時、相互認証処理時に行ってもよい。
また、監視処理は、一定時間間隔で定期的に実施してもよいし、ランダムな時間間隔で実施してもよいし、更新サーバから指定された時間間隔で実施してもよい。
また、各更新モジュールは、監視処理を実行するタイミングを示す同期情報を外部のサーバから取得し、取得した同期情報にしたがって監視処理を実行するとしてもよい。これにより、各更新モジュールは、他の更新モジュールと同じタイミングで監視処理を実行することができるので、不正な更新モジュールの検出精度を向上させることができる。
(39)上記実施の形態6では、復号処理を複数の復号部分処理に分割しているが、本発明は、これに限定するものではなく、アプリを多重に暗号化し、多重に暗号化されたアプリを復号するとしてもよい。
アプリを三重に暗号化した場合を例に説明する。復号部分処理1は、三重暗号化アプリを二重暗号化アプリに復号する処理である。復号部分処理2は、二重暗号化アプリを暗号化アプリに復号する処理である。復号部分処理3は、暗号化アプリを平文のアプリに復号する処理である。
(40)上記実施の形態6における検知処理では、各復号部分処理の検証を1つの更新モジュールが行っているが、これに限定されず、各復号部分処理の検証を複数の更新モジュールが行ってもよい。
(41)上記実施の形態5および実施の形態6における検証基データは、各アプリの対応関係証明書を含む構成であった。しかし、検証基データの構成は、これに限定するものではない。例えば、実施の形態5および実施の形態6で用いる検証基データは、図101に示す構成であってもよい。
検証基データ1600は、各アプリについてのアプリの識別情報と当該識別情報に対応する暗号化アプリのデータ、および、証明書から構成される。
複数の暗号化アプリのデータは、更新用ソフトウェア実行部が保護制御モジュールを実行して各アプリを暗号化することにより生成される。
証明書は、各暗号化アプリのデータを入力データとし、保護制御モジュールが正常動作した際に出力される各出力データを結合し、結合したデータに更新サーバの署名秘密鍵を用いて生成された署名である。
(42)上記実施の形態8における検知処理では、保護制御モジュールを一つのプログラムデータとみなし、所定の一部分のデータについて改ざん検出を行うとしてもよい。そのとき、各更新モジュールは、保護制御モジュールの異なる一部分のデータについて改ざん検出を行うとしてもよい。
また、保護制御モジュールのデータを分割し、分割されたすべてのデータが、必ず一つ以上の更新モジュールによって、改ざん検出されるようにしてもよい。
また、改ざん検出後に、各更新モジュールでは、改ざん検出対象のデータを消去し、各更新モジュールが相互に改ざん検出を行うことで、改ざん検出対象のデータが消去されていることを確認してもよい。
(43)上記実施の形態4〜10では、更新モジュールは、保護制御モジュールを検証する機能のみをもつ、検知モジュールであってもよい。
(44)上記実施の形態では、復号処理を3つの復号部分処理に分割した。しかし、本発明はこれに限定するものではなく、復号処理を2つに分割してもよいし、4つ以上に分割してもよい。また、復号処理を分割する単位はどのようなものであってもよい。復号処理に含まれる関数ごとに分割してもよいし、演算命令ごとに分割してもよい。関数や命令のブロック毎に分割してもよい。
(45)上記実施の形態6における検知処理では、更新モジュールが検証データを保持する替わりに、保護制御モジュールが検証データを保持してもよい。保護制御モジュールは、更新モジュールから送信される暗号化データを復号し、復号したデータとともに保持している前記検証データを、更新モジュールに送信するとしてもよい。
(46)上記実施の形態をそれぞれ組み合わせることにより、保護制御モジュールの検知処理を、(a)アプリの復号処理についての検証と、(b)更新サーバが生成した任意のデータを用いた検証とを組み合わせてもよい。
(47)上記の各モジュールは、具体的には、それぞれ個別のコンピュータプログラムであってもよいし、オペレーティングシステムに組み込まれるモジュールであってもよいし、オペレーティングシステムから呼び出されるドライバであってもよいし、アプリケーションプログラムであってもよい。
(48)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(49)上記の各装置を構成する構成要素の一部または全部は、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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(50)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(51)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよい。
また、本発明は、前記コンピュータプログラムをコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。
また、本発明は、前記コンピュータプログラムを、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムを前記記録媒体に記録して移送することにより、または前記プログラムを前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(52)上記の実施形態および上記の変形例をそれぞれ組み合わせた場合も、本発明に含まれる。
<まとめ>
上述したように、本発明は、所定のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、複数の検知モジュールと、を含む情報処理装置であって、前記保護制御モジュールは、前記アプリケーションを復号する復号手段と、前記復号手段の出力データである被検証データを送信する送信手段を備え、前記複数の検知モジュールのうちの少なくとも2つの検知モジュールの各々は、前記保護制御モジュールから前記被検証データを受信する受信手段と、検証データを保持する検証データ保持手段と、前記被検証データと前記検証データに基づいて前記保護制御モジュールを検証する第1の検証手段とを備え、前記検証データは、前記復号手段が正常動作を行った際の入力データと出力データの対応関係を示すデータであり、前記少なくとも2つの検知モジュールは、同一の被検証データに基づいて前記保護制御モジュールを検証することを特徴とする。
また、本発明は、少なくとも第1のアプリケーションと第2のアプリケーションを含む複数のアプリケーションが改ざんされていないかを検証する保護制御モジュールと、検知モジュールと、を含む情報処理装置であって、前記保護制御モジュールは、検証基データを保持する保持手段と、暗号化した前記第1のアプリケーションと暗号化した前記第2のアプリケーションを復号する復号手段と、検証データを生成する検証データ生成手段と、前記検証データと前記復号手段の出力データである被検証データを送信する送信手段とを備え、前記検知モジュールは、前記保護制御モジュールから前記被検証データと前記検証データを受信する受信手段と、前記被検証データと前記検証データに基づいて前記保護制御モジュールを検証する第1の検証手段とを備え、前記検証基データは、前記第1のアプリケーションと前記第2のアプリケーションの各々を暗号化したデータと、前記第1のアプリケーションと前記第2のアプリケーションの各々を暗号化したデータを入力データとしたときの、前記復号手段が正常動作を行った際の入力データと出力データの対応関係を示す第1の検証値と第2の検証値と、少なくとも前記第1の検証値と前記第2の検証値を含む複数の検証値の全てを結合した結合データから生成した結合データ検証値とを含み、前記検証データは、前記第1のアプリケーションを前記保護制御モジュールが復号する場合は、前記検証基データから前記第1の検証値及び、前記第1のアプリケーション以外の暗号化したアプリケーションのデータを削除したデータで構成され、前記第2のアプリケーションを前記保護制御モジュールが復号する場合は、前記検証基データから前記第2の検証値及び、前記第2のアプリケーション以外の暗号化したアプリケーションのデータを削除したデータで構成されることを特徴とする。
本発明は、情報処理装置および前記情報処理装置に対してソフトウェアを提供する管理装置または更新サーバを製造および販売する産業において、情報処理装置上で動作する不正なソフトウェアを検知する技術および不正なソフトウェアを安全に更新する技術として利用することができる。
1 不正モジュール検知システム
2 不正モジュール検知システム
100、100b 機器
120、120a、120b、120c 保護制御モジュール
130 検知モジュール群
130b 更新モジュール群
131、131a、132、132a、133、133a 検知モジュール
140 アクセス制御モジュール
141、141c、142、142c、143、143c 更新モジュール
200 管理装置
200b 更新サーバ
210、210b 判断部
220、220a 検証基データ配布部
230 通信部
240、240c 更新ソフトウェア配布部
250 モジュール無効化部
301 受信部
302 送信部
303 制御部
304 更新部
304 復号ロード部
305 改ざん検出部
306 解析ツール検出部
307 暗復号鍵保持部
308 検証基データ保持部
309 検証データ生成部
310 アプリ分割部
321 暗復号鍵分散部
322 証明書生成部
323 暗復号鍵復元部
401 受信部
402 送信部
403 制御部
404 検証部
405 MAC値生成部
406 MAC値テーブル更新部
407 検証データ保持部
410 更新部
411 分散情報保持部
412 認証部
420 検証基データ保持部
501 受信部
502 送信部
503 指示生成部
504 モジュール特定部
601 受信部
602 送信部
603 制御部
604 認証部
605 証明書生成部
606 署名秘密鍵保持部
607 暗号鍵保持部
608 データ分割部
609 アプリ保持部
610 検証基データ生成部
611 保護制御モジュール保持部
620 暗号鍵生成部
621 暗号処理部
622 検知モジュール選択部
801 受信部
802 送信部
803 制御部
804 更新部
805 検証部
806 MAC値生成部
807 MAC値テーブル更新部
808 分散情報保持部
810 検知部
811 検証データ保持部
901 受信部
902 送信部
903 制御部
904 復号ロード部
905 検出部
906 解析ツール検出部
907 暗復号鍵保持部
908 暗復号鍵生成部
909 暗復号鍵分散部
910 証明書生成部
911 暗復号鍵復元部
912 検証データ生成部
913 検証基データ保持部
1001 受信部
1002 送信部
1003 アクセス情報保持部
1101 受信部
1102 送信部
1103 指示生成部
1104 モジュール特定部
1201 受信部
1202 送信部
1203 暗号鍵生成部
1204 暗号処理部
1205 認証部
1206 更新モジュール選択部
1207 制御部
1208 証明書生成部
1209 署名秘密鍵保持部
1210 更新用ソフトウェア保持部
1211 暗号鍵保持部
1220 更新用ソフトウェア実行部
1221 アプリ保持部
1222 検証基データ生成部
1301 受信部
1302 送信部
1303 アクセス情報取得鍵保持部
1304 更新モジュール選択部

Claims (39)

  1. アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置であって、
    前記保護制御モジュールは、
    暗号化された前記アプリケーションが入力データとして入力され、前記入力データを復号し、復号結果を出力データとして出力する復号手段と、
    前記出力データを、少なくともk(k≧2)個の分割データに分割する分割手段と、
    分割されたk個の分割データを、いずれかの検知モジュールに分配する分配手段と、
    前記複数の検知モジュールのそれぞれは、
    分配された分割データ、前記入力データと前記復号手段が正常動作を行った場合に期待される分割データの値とに基づいて生成された検証データ、および、入力データを用いて、分配された分割データが正しいか否かを判断する検証手段を備える
    ことを特徴とする情報処理装置。
  2. 前記保護制御モジュールは、前記出力データの分割方法を記述した分割情報を保持しており、
    前記分割手段は、前記分割情報を用いて前記出力データを分割し、
    前記分配手段は、さらに、各検知モジュールに分配される分割データそれぞれに対する検証データと前記入力データとを、各検知モジュールへ送信する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記各検知モジュールは、さらに、
    他の検知モジュールから、当該他の検知モジュールに分配された分割情報を取得し、 予め与えられた判定情報に基づいて、他の検知モジュールの検証手段により検証処理が行われたか否かを確認する検証確認手段を備える
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記検知モジュールのそれぞれは、
    前記検証手段による検証後、分配された分割データを消去し、
    他の検知モジュールが、分配された分割データを消去したか否かを確認する
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記検知モジュールのそれぞれは、
    他の検知モジュールの改ざん検証を行う相互監視手段を備え、
    前記相互監視手段により、改ざんが検出された場合に、前記他の検知モジュールが分割データを消去していないと判断し、改ざんが検出されない場合に、前記他の検知モジュールが分割データを消去したと判断する
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 前記分割手段は、前記出力データに対して、互いに素であるk個の法を取ることにより、k個の分割データに分割し、
    前記分割情報は、分割数kおよびk個の法の値を示し、
    前記判定情報は、k個の法の値を乗算した値を示す
    ことをと特徴とする請求項3に記載の情報処理装置。
  7. 前記検知モジュールのそれぞれは、
    検証結果を外部の管理装置へ送信する送信手段を備え、
    前記複数の検知モジュールのうち、少なくとも1つは、
    前記外部の管理装置により前記保護制御モジュールが改ざんされていると判断された場合に、前記保護制御モジュールを更新する更新手段を備える
    ことを特徴とする請求項1に記載の情報処理装置。
  8. アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置であって、
    前記保護制御モジュールは、
    暗号化された前記アプリケーションプログラムに対し、k個の処理工程から成る復号処理を実行する復号手段と、
    前記k個の処理工程それぞれの出力データであるk個の被検証データを、前記複数の検知モジュールへ分配する分配手段とを備え、
    前記複数の検知モジュールのそれぞれは、
    分配された被検証データ、前記被検証データに対応する処理工程への入力データ、および、前記入力データと前記復号手段が正常動作を行った場合に期待される出力データとに基づいて生成された検証データを用いて、前記被検証データが正しいか否かを判断する検証手段を備える
    ことを特徴とする請求項1に記載の情報処理装置。
  9. 前記保護制御モジュールは、
    複数のアプリケーションと
    k個の検証基データを保持する検証基データ保持手段と、
    前記k個の検証基データから各検知モジュールへ配布するk個の検証データを生成する検証データ生成手段とを備え、
    前記k個の検証基データは、前記k個の処理工程のそれぞれに対応し、前記複数のアプリケーションのそれぞれについて、暗号化されたアプリケーションと、前記復号手段が正常動作を行った場合に期待される各処理工程の入力データと出力データとの対応関係を示す検証値と、複数の前記検証値を結合したデータから生成された結合データ検証値とを含み、
    前記検証データ生成手段は、前記k個の検証基データから、前記復号手段が復号するアプリケーションに対応する検証値、および、当該アプリケーション以外の暗号化されたアプリケーションのデータを削除することにより、k個の検証データを生成する
    ことを特徴とする請求項8に記載の情報処理装置。
  10. 各検知モジュールの検証手段は、
    前記被検証データと受信した前記検証データに含まれる暗号化されたアプリケーションのデータとから検証値を生成し、
    生成した前記検証値と受信した前記検証データに含まれる複数の検証値とを結合して結合データを生成し、
    前記結合データから結合データ検証値を生成し、生成した結合データ検証値と前記受信した検証データに含まれる前記結合データ検証値とが一致するか否かを検証する
    ことを特徴とする請求項9に記載の情報処理装置。
  11. 前記検知モジュールのそれぞれは、
    前記検証手段による検証後、受信した検証データを消去し、
    他の検知モジュールが、受信した検証データを消去したか否かを確認する
    ことを特徴とする請求項10に記載の情報処理装置。
  12. 前記検知モジュールのそれぞれは、
    他の検知モジュールの改ざん検証を行う相互監視手段を備え、
    前記相互監視手段により、改ざんが検出された場合に、前記他の検知モジュールが検証データを消去していないと判断し、改ざんが検出されない場合に、前記他の検知モジュールが前記検証データを消去したと判断する
    ことを特徴とする請求項11に記載の情報処理装置。
  13. アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置であって、
    前記保護制御モジュールは、
    入力データに対して所定の処理を施し、出力データを出力する処理手段と、
    前記複数の検知モジュールのそれぞれからチャレンジデータを受信するチャレンジデータ受信手段と、
    前記処理手段にチャレンジデータを入力したときの出力データであるレスポンスデータを、各検知モジュールへ送信する送信手段とを備え、
    前記複数の検知モジュールのそれぞれは、
    複数のチャレンジデータについて、各チャレンジデータを入力データとしたときに前記処理手段が正常動作を行った場合に期待される出力データと前記チャレンジデータとの対応関係を示す検証データを保持する保持手段と、
    1のチャレンジデータを前記保護制御モジュールへ送信するチャレンジデータ送信手段と、
    前記保護制御モジュールから前記レスポンスデータを受信するレスポンスデータ受信手段と、
    前記検証データを用いて、受信した前記レスポンスデータを検証する検証手段とを備え、
    少なくとも2つの検知モジュールは、同一のレスポンスデータに基づいて前記保護制御モジュールを検証すること
    を特徴とする請求項8に記載の情報処理装置。
  14. 前記検証データは、複数のチャレンジデータを含み、
    前記チャレンジデータ送信手段は、前記検証データに含まれる前記複数のチャレンジデータから1のチャレンジデータを選択し、前記保護制御モジュールへ送信する
    ことを特徴とする請求項13に記載の情報処理装置。
  15. 前記保護制御モジュールは、
    前記k個の処理工程の処理順序を示す順序情報を生成し、
    各検知モジュールへ、生成した前記順序情報を送信し、
    各検知モジュールの検証手段は、
    受信した前記順序情報が示す処理順序にしたがい、前記被検証データを検証する
    ことを特徴とする請求項8に記載の情報処理装置。
  16. 各検知モジュールは、
    当該検知モジュールが検証する処理工程の直前の処理工程に係る検証処理を行った検知モジュールから、前記被検証データを受信する被検証データ受信手段と、
    前記検証手段による検証に成功すると、前記順序情報を参照し、次の処理工程に係る検証処理を行う検知モジュールを特定し、特定した前記検知モジュールへ被検証データを送信する被検証データ送信手段とを備え、
    前記検証手段は、前記被検証データ受信手段が受信した前記被検証データを用いて、検証処理を行う
    ことを特徴とする請求項15に記載の情報処理装置。
  17. 各検知モジュールは、さらに、
    前記受信手段が受信した前記被検証データと、前記入力データとが一致するか否かを検証する入力データ検証手段と、
    前記被検証データと前記入力データとが一致しない場合、外部にその旨を通知する通知手段と
    を備える特徴とする請求項16に記載の情報処理装置。
  18. 前記検証データは、外部の管理装置のデジタル署名を含む
    ことを特徴とする請求項8に記載の情報処理装置。
  19. 前記検証データは、前記入力データと前記復号手段が正常動作を行った場合に期待される出力データとに対する外部の管理装置のデジタル署名である
    ことを特徴とする請求項8に記載の情報処理装置。
  20. 前記検知モジュールのそれぞれは、
    検証結果を外部の管理装置へ送信する送信手段を備え、
    前記複数の検知モジュールのうち、少なくとも1つは、
    前記管理装置により前記保護制御モジュールが改ざんされていると判断された場合に、前記保護制御モジュールを更新する更新手段を備える
    ことを特徴とする請求項8に記載の情報処理装置。
  21. 入力された暗号化データ復号し、復号結果を出力データとして出力する復号手段と、前記出力データを複数の分割データに分割する分割手段とを備え、各分割データを検証する情報処理装置と接続された管理装置であって、
    前記入力データと前記復号手段が正常動作を行った場合に期待される各分割データとから、検証基データを生成する検証基データ生成手段と、
    前記検証基データを前記情報処理装置へ送信する送信手段と
    を備えることを特徴とする管理装置。
  22. 前記管理装置は、さらに、
    前記情報処理装置から各分割データの検証結果を受信する受信手段と、
    受信した前記複数の検証結果から、前記復号手段が改ざんされているか否かを判断する判断手段と、
    前記判断手段により改ざんされていると判断された場合、前記情報処理装置へ前記復号手段の更新を指示する更新指示手段と
    を備えることを特徴とする請求項21に記載の管理装置。
  23. 入力された暗号化データを複数の処理工程を経て復号する復号手段を備え、各処理工程を検証する情報処理装置と接続された管理装置であって、
    前記複数の処理工程への入力データと前記復号手段が正常動作を行った場合に期待される各処理工程からの出力データとから、検証基データを生成する検証基データ生成手段と、
    生成した前記検証基データを前記情報処理装置へ送信する送信手段と
    を備えることを特徴とする請求項21に記載の管理装置。
  24. 前記情報処理装置の前記復号手段は、暗号化された複数のアプリケーションを復号し、
    前記検証基データ生成手段は、
    前記複数の処理工程のそれぞれに対応し、前記複数のアプリケーションのそれぞれについて、暗号化されたアプリケーションと、前記復号手段が正常動作を行った場合に期待される各処理工程の入力データと出力データとの対応関係を示す検証値と、複数の前記検証値を結合したデータから生成された結合データ検証値とを含む複数個の前記検証基データを生成する
    ことを特徴とする請求項23に記載の管理装置。
  25. 複数のチャレンジデータを生成するチャレンジデータ生成手段と、
    各チャレンジデータを入力データとして、所定の処理が正常動作した場合に期待される出力データとの対応関係を示す検証データを生成する検証データ生成手段と、
    情報処理装置へ前記チャレンジデータと前記検証データとを送信する送信手段と
    を備えることを特徴とする請求項23に記載の管理装置。
  26. 情報処理装置と管理装置とから構成される不正モジュール検知システムであって、
    前記情報処理装置は、
    アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含み、
    前記保護制御モジュールは、
    暗号化された前記アプリケーションが入力データとして入力され、前記入力データを復号し、復号結果を出力データとして出力する復号手段と、
    前記出力データを、少なくともk(k≧2)個の分割データに分割する分割手段と、
    分割されたk個の分割データを、いずれかの検知モジュールに分配する分配手段とを備え、
    前記複数の検知モジュールのそれぞれは、
    分配された分割データ、前記入力データと前記復号手段が正常動作を行った場合に期待される分割データの値とに基づいて生成された検証データ、および、入力データを用いて、分配された分割データが正しいか否かを判断する検証手段を備え、
    前記管理装置は、
    前記入力データと前記復号手段が正常動作を行った場合に期待される各分割データとから、前記検証データを含む検証基データを生成する検証基データ生成手段と、
    前記検証基データを前記情報処理装置へ送信する送信手段とを備える
    ことを特徴とする不正モジュール検知システム。
  27. 情報処理装置と管理装置とから構成される不正モジュール検知システムであって、
    前記情報処理装置は、
    アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含み、
    前記保護制御モジュールは、
    暗号化された前記アプリケーションプログラムに対し、k個の処理工程から成る復号処理を実行する復号手段と、
    前記k個の処理工程それぞれの出力データであるk個の被検証データを、前記複数の検知モジュールへ分配する分配手段とを備え、
    前記複数の検知モジュールのそれぞれは、
    分配された被検証データ、前記被検証データに対応する処理工程への入力データ、および、前記入力データと前記復号手段が正常動作を行った場合に期待される出力データとに基づいて生成された検証データを用いて、前記被検証データが正しいか否かを判断する検証手段を備え、
    前記管理装置は、
    前記複数の処理工程への入力データと前記復号手段が正常動作を行った場合に期待される各処理工程からの出力データとから、前記検証データを含む検証基データを生成する検証基データ生成手段と、
    生成した前記検証基データを前記情報処理装置へ送信する送信手段とを備える
    ことを特徴とする不正モジュール検知システム。
  28. アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置で用いられる不正モジュール検知方法であって、
    前記保護制御モジュールにより、
    暗号化された前記アプリケーションが入力データとして入力され、前記入力データを復号し、復号結果を出力データとして出力する復号ステップと、
    前記出力データを、少なくともk(k≧2)個の分割データに分割するステップと、
    分割されたk個の分割データを、いずれかの検知モジュールに分配するステップとを行い、
    前記複数の検知モジュールのそれぞれにより、
    分配された分割データ、前記入力データと前記復号ステップが正常動作を行った場合に期待される分割データの値とに基づいて生成された検証データ、および、入力データを用いて、分配された分割データが正しいか否かを判断するステップを行う
    ことを特徴とする不正モジュール検知方法。
  29. アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置で用いられる不正モジュール検知プログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
    前記不正モジュール検知プログラムは、
    前記保護制御モジュールに、
    暗号化された前記アプリケーションが入力データとして入力され、前記入力データを復号し、復号結果を出力データとして出力する復号ステップと、
    前記出力データを、少なくともk(k≧2)個の分割データに分割する分割ステップと、
    分割されたk個の分割データを、いずれかの検知モジュールに分配する分配ステップとを実行させ、
    前記複数の検知モジュールのそれぞれに、
    分配された分割データ、前記入力データと前記復号ステップが正常動作を行った場合に期待される分割データの値とに基づいて生成された検証データ、および、入力データを用いて、分配された分割データが正しいか否かを判断する検証ステップを実行させる
    ことを特徴とする記録媒体。
  30. アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置で用いられる集積回路であって、
    前記保護制御モジュールは、
    暗号化された前記アプリケーションプログラムに対し、k個の処理工程から成る復号処理を実行する復号手段と、
    前記k個の処理工程それぞれの出力データであるk個の被検証データを、前記複数の検知モジュールへ分配する分配手段とを備え、
    前記複数の検知モジュールのそれぞれは、
    分配された被検証データ、前記被検証データに対応する処理工程への入力データ、および、前記入力データと前記復号手段が正常動作を行った場合に期待される出力データとに基づいて生成された検証データを用いて、前記被検証データが正しいか否かを判断する検証手段を備える
    ことを特徴とする集積回路。
  31. アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置で用いられる不正モジュール検知方法であって、
    前記保護制御モジュールにより、
    暗号化された前記アプリケーションプログラムに対し、k個の処理工程から成る復号処理を実行するステップと、
    前記k個の処理工程それぞれの出力データであるk個の被検証データを、前記複数の検知モジュールへ分配するステップとを行い、
    前記複数の検知モジュールのそれぞれにより、
    分配された被検証データ、前記被検証データに対応する処理工程への入力データ、および、前記入力データと前記復号手段が正常動作を行った場合に期待される出力データとに基づいて生成された検証データを用いて、前記被検証データが正しいか否かを判断するステップを行う
    ことを特徴とする不正モジュール検知方法。
  32. アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置で用いられる不正モジュール検知プログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
    前記不正モジュール検知プログラムは、
    前記保護制御モジュールに、
    暗号化された前記アプリケーションプログラムに対し、k個の処理工程から成る復号処理を実行する復号ステップと、
    前記k個の処理工程それぞれの出力データであるk個の被検証データを、前記複数の検知モジュールへ分配する分配ステップとを実行させ、
    前記複数の検知モジュールのそれぞれに、
    分配された被検証データ、前記被検証データに対応する処理工程への入力データ、および、前記入力データと前記復号手段が正常動作を行った場合に期待される出力データとに基づいて生成された検証データを用いて、前記被検証データが正しいか否かを判断する検証ステップを実行させる
    ことを特徴とする記録媒体。
  33. アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置で用いられる集積回路であって、
    前記保護制御モジュールは、
    暗号化された前記アプリケーションプログラムに対し、k個の処理工程から成る復号処理を実行する復号手段と、
    前記k個の処理工程それぞれの出力データであるk個の被検証データを、前記複数の検知モジュールへ分配する分配手段とを備え、
    前記複数の検知モジュールのそれぞれは、
    分配された被検証データ、前記被検証データに対応する処理工程への入力データ、および、前記入力データと前記復号手段が正常動作を行った場合に期待される出力データとに基づいて生成された検証データを用いて、前記被検証データが正しいか否かを判断する検証手段を備える
    ことを特徴とする集積回路。
  34. 入力された暗号化データ復号し、復号結果を出力データとして出力する復号手段と、前記出力データを複数の分割データに分割する分割手段を備え、各分割データを検証する情報処理装置と接続された管理装置で用いられる管理方法であって、
    前記入力データと前記復号手段が正常動作を行った場合に期待される各分割データとから、検証基データを生成するステップと、
    前記検証基データを前記情報処理装置へ送信するステップと
    を含むことを特徴とする管理方法。
  35. 入力された暗号化データ復号し、復号結果を出力データとして出力する復号手段と、前記出力データを複数の分割データに分割する分割手段とを備え、各分割データを検証する情報処理装置と接続された管理装置で用いられる管理プログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
    前記管理プログラムは、前記管理装置に
    前記入力データと前記復号手段が正常動作を行った場合に期待される各分割データとから、検証基データを生成するステップと、
    前記検証基データを前記情報処理装置へ送信するステップとを実行させる
    ことを特徴とする記録媒体。
  36. 入力された暗号化データ復号し、復号結果を出力データとして出力する復号手段と、前記出力データを複数の分割データに分割する分割手段とを備え、各分割データを検証する情報処理装置と接続された管理装置で用いられる集積回路であって、 前記入力データと前記復号手段が正常動作を行った場合に期待される各分割データとから、検証基データを生成する検証基データ生成手段と、
    前記検証基データを前記情報処理装置へ送信する送信手段と
    を備えることを特徴とする集積回路。
  37. 入力された暗号化データを複数の処理工程を経て復号する復号手段を備え、各処理工程を検証する情報処理装置と接続された管理装置で用いられる管理方法であって、
    前記複数の処理工程への入力データと前記復号手段が正常動作を行った場合に期待される各処理工程からの出力データとから、検証基データを生成するステップと、
    生成した前記検証基データを前記情報処理装置へ送信するステップと
    を含むことを特徴とする管理方法。
  38. 入力された暗号化データを複数の処理工程を経て復号する復号手段を備え、各処理工程を検証する情報処理装置と接続された管理装置で用いられる管理プログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
    前記管理プログラムは、前記管理装置に、
    前記複数の処理工程への入力データと前記復号手段が正常動作を行った場合に期待される各処理工程からの出力データとから、検証基データを生成するステップと、
    生成した前記検証基データを前記情報処理装置へ送信するステップと
    を含むことを特徴とする記録媒体。
  39. 入力された暗号化データを複数の処理工程を経て復号する復号手段を備え、各処理工程を検証する情報処理装置と接続された管理装置で用いられる集積回路であって、
    前記複数の処理工程への入力データと前記復号手段が正常動作を行った場合に期待される各処理工程からの出力データとから、検証基データを生成する検証基データ生成手段と、
    生成した前記検証基データを前記情報処理装置へ送信する送信手段と
    を備えることを特徴とする集積回路。
JP2011531791A 2009-09-17 2010-09-16 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路 Active JP5411282B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011531791A JP5411282B2 (ja) 2009-09-17 2010-09-16 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2009215972 2009-09-17
JP2009215972 2009-09-17
JP2010027611 2010-02-10
JP2010027611 2010-02-10
PCT/JP2010/005644 WO2011033773A1 (ja) 2009-09-17 2010-09-16 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路
JP2011531791A JP5411282B2 (ja) 2009-09-17 2010-09-16 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路

Publications (2)

Publication Number Publication Date
JPWO2011033773A1 JPWO2011033773A1 (ja) 2013-02-07
JP5411282B2 true JP5411282B2 (ja) 2014-02-12

Family

ID=43758387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011531791A Active JP5411282B2 (ja) 2009-09-17 2010-09-16 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路

Country Status (5)

Country Link
US (1) US8683214B2 (ja)
EP (1) EP2479701B1 (ja)
JP (1) JP5411282B2 (ja)
CN (1) CN102265285B (ja)
WO (1) WO2011033773A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7581103B2 (en) 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
GB201008888D0 (en) * 2010-05-27 2010-07-14 Qinetiq Ltd Network security
WO2012056656A1 (ja) * 2010-10-28 2012-05-03 パナソニック株式会社 改ざん監視システム、保護制御モジュール及び検知モジュール
US8782491B2 (en) * 2011-08-17 2014-07-15 Cleversafe, Inc. Detecting intentional corruption of data in a dispersed storage network
FR2979443B1 (fr) * 2011-08-30 2013-09-27 Maxim Integrated Products Microcontroleur securise a base de mode
US9634999B1 (en) 2013-11-04 2017-04-25 Mobile Iron, Inc. Mobile device key management
US20160267273A1 (en) * 2013-11-06 2016-09-15 Mitsubishi Electric Corporation Software update apparatus and computer-readable storage medium storing software update program
JP2017511095A (ja) * 2014-04-09 2017-04-13 アイシーティーケー カンパニー リミテッド 認証装置及び方法
US9961056B2 (en) * 2015-01-07 2018-05-01 Cyph, Inc. Method of deniable encrypted communications
GB2551813B (en) * 2016-06-30 2020-01-08 Sophos Ltd Mobile device policy enforcement
US11010614B2 (en) * 2017-01-26 2021-05-18 Matias Klein Total property intelligence system
WO2020153454A1 (ja) * 2019-01-23 2020-07-30 株式会社Scalar 改ざん検知性を有するシステム
JP7334492B2 (ja) * 2019-01-28 2023-08-29 オムロン株式会社 セーフティシステムおよびメンテナンス方法
US11765131B2 (en) * 2019-10-07 2023-09-19 Schlumberger Technology Corporation Security system and method for pressure control equipment
CN111260440B (zh) * 2020-01-15 2023-07-18 中国铁道科学研究院集团有限公司电子计算技术研究所 一种订单处理方法、装置、存储介质和计算机设备
WO2022091231A1 (ja) * 2020-10-28 2022-05-05 日本電気株式会社 改ざん検知機能組み込み装置、改ざん検知機能組み込み方法、及びコンピュータ可読媒体

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3056732B1 (ja) * 1999-04-09 2000-06-26 コナミ株式会社 コンピュ―タシステム、コンピュ―タプログラムの実行方法及びコンピュ―タプログラム記録媒体

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2837446B2 (ja) 1989-07-21 1998-12-16 カヤバ工業株式会社 二段作動ステーダンパ
CA2093094C (en) * 1992-04-06 2000-07-11 Addison M. Fischer Method and apparatus for creating, supporting, and using travelling programs
JPH11122240A (ja) * 1997-10-17 1999-04-30 Fuji Xerox Co Ltd 復号装置および方法ならびにアクセス資格認証装置および方法
JP2948814B1 (ja) 1998-09-08 1999-09-13 株式会社高度移動通信セキュリティ技術研究所 べき乗剰余演算軽減方法
CN101145177B (zh) * 2002-08-01 2011-06-15 松下电器产业株式会社 加密程序生成方法和设备
CN100440140C (zh) * 2003-02-11 2008-12-03 Vi实验室有限公司 用于调节计算机软件的执行的系统和方法
US8225290B2 (en) * 2003-02-11 2012-07-17 V. i. Laboratories, Inc. Systems and methods for regulating execution of computer software
CN101271471B (zh) * 2003-09-15 2011-08-17 起元科技有限公司 数据处理方法、软件和数据处理系统
KR100922141B1 (ko) * 2003-09-15 2009-10-19 아브 이니티오 소프트웨어 엘엘시 데이터 프로파일링 방법 및 시스템
JP5259150B2 (ja) 2006-09-22 2013-08-07 三栄源エフ・エフ・アイ株式会社 機能性素材及び/又はエキス含有組成物
JP5214474B2 (ja) 2007-02-16 2013-06-19 パナソニック株式会社 分散情報配布装置、保持装置、認証局装置及びシステム
EP2259205B1 (en) 2008-03-28 2018-04-25 Panasonic Corporation Software updating apparatus, software updating system, alteration verification method and alteration verification program
WO2010054369A1 (en) * 2008-11-10 2010-05-14 Oxford William V Method and system for controling code execution on a computing device using recursive security protocol

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3056732B1 (ja) * 1999-04-09 2000-06-26 コナミ株式会社 コンピュ―タシステム、コンピュ―タプログラムの実行方法及びコンピュ―タプログラム記録媒体

Also Published As

Publication number Publication date
CN102265285B (zh) 2014-11-12
CN102265285A (zh) 2011-11-30
WO2011033773A1 (ja) 2011-03-24
EP2479701B1 (en) 2019-07-03
EP2479701A1 (en) 2012-07-25
US20110246783A1 (en) 2011-10-06
US8683214B2 (en) 2014-03-25
JPWO2011033773A1 (ja) 2013-02-07
EP2479701A4 (en) 2017-03-29

Similar Documents

Publication Publication Date Title
JP5411282B2 (ja) 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路
JP5281074B2 (ja) 情報セキュリティ装置および情報セキュリティシステム
JP4932033B2 (ja) ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム
JP4932034B2 (ja) ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム
US9311487B2 (en) Tampering monitoring system, management device, protection control module, and detection module
TWI567579B (zh) 用於對硬體裝置提供金鑰的方法和設備
JP5815525B2 (ja) 情報処理装置、コントローラ、鍵発行局、無効化リスト有効性判定方法および鍵発行方法
US8769312B2 (en) Tampering monitoring system, protection control module, and detection module
EP2172868A1 (en) Information security device and information security system
JP6720581B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US8707430B2 (en) Tampering monitoring system, management apparatus, and management method
JP2006203564A (ja) マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
JPWO2011152065A1 (ja) コントローラ、制御方法、コンピュータプログラム、プログラム記録媒体、記録装置及び記録装置の製造方法
CN113434853A (zh) 一种将固件烧录至存储设备的方法及控制器
JP2021519452A (ja) 保護されたコンテナ間のセキュア通信方法およびそのシステム
JP2016129403A (ja) 暗号化プロトコルの難読化された初期値に対するシステムおよび方法
JP2008033512A (ja) セキュリティチップ及びプラットフォーム
JP2011150524A (ja) ソフトウェア実行システム
JPWO2004068350A1 (ja) データ改ざん検出方法、データ改ざん検出装置及びデータ改ざん検出プログラム
JP4843587B2 (ja) 情報記録媒体のセキュリティ方法、情報処理装置、プログラム及び記録媒体
JP2011164858A (ja) ライセンス設定システムおよびライセンス設定方法
JP2004252578A (ja) 提供元のicカード、提供先のicカード、情報授受媒介装置、icカード間情報授受システム、icカードプログラム、プログラム及びicカード間情報授受方法
JP2023182383A (ja) データ保持証明システム及びデータ保持証明方法
JP2010226276A (ja) 半導体メモリ、当該半導体メモリと結合されるコンピュータマシン、及び、そのデータ処理方法
JP2004220436A (ja) Icカード及びicカードプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130208

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131107

R150 Certificate of patent or registration of utility model

Ref document number: 5411282

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150