JP5960678B2 - 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール - Google Patents

改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール Download PDF

Info

Publication number
JP5960678B2
JP5960678B2 JP2013504541A JP2013504541A JP5960678B2 JP 5960678 B2 JP5960678 B2 JP 5960678B2 JP 2013504541 A JP2013504541 A JP 2013504541A JP 2013504541 A JP2013504541 A JP 2013504541A JP 5960678 B2 JP5960678 B2 JP 5960678B2
Authority
JP
Japan
Prior art keywords
decryption
verification
control module
protection control
key
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
JP2013504541A
Other languages
English (en)
Other versions
JPWO2012124270A1 (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
Publication of JPWO2012124270A1 publication Critical patent/JPWO2012124270A1/ja
Application granted granted Critical
Publication of JP5960678B2 publication Critical patent/JP5960678B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/2125Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、情報処理装置等の機器内部で動作するモジュール等の改ざんを監視する技術に関する。
近年、秘匿データを有しているアプリケーションプログラムが、悪意のある第三者(以下、「攻撃者」という)に不正に解析されないようにするため、ソフトウェアによってアプリケーションプログラムを保護する技術が開発されつつある(特許文献2、特許文献3)。
ソフトウェアによってアプリケーションプログラムを保護する技術として、例えば、アプリケーションプログラムに対するハッシュ値を用いた改ざん検証や、アプリケーションプログラムを利用しないときには、当該アプリケーションプログラムを暗号化して保存しておき、利用するときにのみ、暗号化アプリケーションプログラムを復号してメモリへロードする復号ロード機能等がある。
ところが、このような技術を利用しても、アプリケーションプログラムを保護するソフトウェア(以下、「保護制御モジュール」という)自体が攻撃者により改ざんされると、アプリケーションプログラムが攻撃者の攻撃を受けることになる。そこで、保護制御モジュールに対する改ざん検出を行う検知モジュールを用いて、保護制御モジュールの改ざん検出を行っている(特許文献2、特許文献3)。
検知モジュールは、保護制御モジュールを構成する全てのデータを読み込み、MAC(Message Authentication Code)値を計算することにより、保護制御モジュールの改ざん検出を行う。
国際公開第2008/099682号 国際公開第2009/118800号 国際公開第2010/092832号 日本国特許第2948814号明細書
岡本龍明、山本博資、「現代暗号」、産業図書(1997年)
しかしながら、保護制御モジュールの改ざん検出を行う検知モジュールが改ざんされている場合、保護制御モジュールに含まれているアプリケーションプログラムの復号鍵が、改ざんされた検知モジュールにより不正に取得される危険性がある。そうすると、不正に取得された復号鍵を用いて、暗号化されたアプリケーションプログラムが復号され、不正なアプリケーションプログラムが情報処理装置にインストールされ、この不正なアプリケーションプログラムによって、利用者の個人情報やコンテンツなどが漏えいする可能性がある。
本発明は、上記の問題点に鑑みなされたものであって、保護制御モジュールからアプリケーションプログラムの復号鍵が不正に取得される可能性を低くすることができる改ざん監視システム、管理装置、保護制御モジュール、検知モジュール、集積回路、方法、コンピュータプログラム及びコンピュータプログラムを記憶している記録媒体を提供することを目的とする。
上記目的を達成するために、本発明は、アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールと、管理装置とを含む改ざん監視システムであって、前記管理装置は、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成手段と、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力手段とを備え、各検知モジュールは、前記分散鍵を取得して内部に記憶し、前記保護制御モジュールは、複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得手段と、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元手段と、前記復元手段により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号手段と、前記復号手段による復号が終了した後、前記復号鍵を消去する消去手段とを備えることを特徴とする。
上記構成によれば、保護制御モジュールは、常時、復号鍵を保持することなく、暗号化されたアプリケーションプログラムを復号する時間帯においてのみ、復号鍵を保持し、復号終了後には、当該復号鍵を消去するので、保護制御モジュールから、前記復号鍵が不正に漏洩する可能性を低くすることができる。
こうして、改ざん監視システムの安全性を高めることができる。
本発明に係る実施の形態1としての改ざん監視システム10dの全体構成を示す。 本発明に係る実施の形態2としての検知システム10の全体構成を示す。 管理装置200の判断部210の構成を示すブロック図である。 管理装置200のソフトウェア配布部220の構成を示すブロック図である。 検証基データ640のデータ構造の一例を示す。 複数の第一復号部分処理651、第二復号部分処理652及び第三復号部分処理653から構成される復号処理650を示す概念図である。 暗復号鍵631の分解及び検知モジュール群130への分散を示す概念図である。 機器100のハードウェア構成の一例を示す。 機器100のソフトウェア階層構造の一例を示す。 保護制御モジュール120の構成を示すブロック図である。 検知モジュール群130からの分散鍵の収集及び暗復号鍵631の復元を示す概念図である。 第一復号部分処理の検証データ341のデータ構造の一例を示す。 第二復号部分処理の検証データ342のデータ構造の一例を示す。 第三復号部分処理の検証データ343のデータ構造の一例を示す。 検知モジュール131の構成を示すブロック図である。 検知システム10における全体の動作を示すフローチャートである。 検知システム10における初期設定の動作を示すシーケンス図である。 管理装置200における検証基データの生成の動作を示すフローチャートである。 検知システム10における検知の動作を示すシーケンス図である。図20へ続く。 検知システム10における検知の動作を示すシーケンス図である。図21へ続く。 検知システム10における検知の動作を示すシーケンス図である。図22から続く。 本発明に係る実施の形態3としての検知システム10aにおける私有鍵631aの分解及び検知モジュール群130aへの分散を示す概念図である。 保護制御モジュール120aの構成を示すブロック図である。 検知モジュール選択部310が有する検知モジュールリスト351のデータ構造の一例を示す。 検知モジュール131aの構成を示すブロック図である。 検知システム10aにおける初期設定の動作を示すシーケンス図である。 検知システム10aにおける検知の動作を示すフローチャートである。 保護制御モジュール120aに対する検知の動作を示すシーケンス図である。 検知システム10aにおけるアプリの復号の動作を示すフローチャートである。 本発明に係る実施の形態4としての検知システム10bにおける私有鍵631bの分解及び検知モジュール群130bへの分散を示す概念図である。 検知システム10bにおける検知モジュール群130bの構成を示す。検知モジュール132bは、無効化されている。 検知システム10bにおける再分散鍵の生成を説明する概念図である。 検知システム10bにおける検知モジュール131bの構成を示すブロック図である。 検知システム10bにおける再分散鍵による分散鍵の更新を説明する概念図である。 検知システム10bにおける再分散鍵による分散鍵の更新の動作を示すシーケンス図である。 本発明に係る実施の形態の変形例における分散鍵の生成及び検知モジュール群130cへの分散を示す概念図である。 検知モジュール選択部310が有する検知モジュールリスト351aのデータ構造の一例を示す。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールと、管理装置とを含む改ざん監視システムである。前記管理装置は、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成手段と、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力手段とを備える。各検知モジュールは、前記分散鍵を取得して内部に記憶する。前記保護制御モジュールは、複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得手段と、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元手段と、前記復元手段により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号手段と、前記復号手段による復号が終了した後、前記復号鍵を消去する消去手段とを備える。
ここで、前記管理装置は、さらに、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理を施し、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換を施して、復号検証値を生成し、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データを生成する検証データ生成手段を含み、前記出力手段は、さらに、前記検証データを前記保護制御モジュールへ出力し、前記復号手段は、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理を施し、前記保護制御モジュールは、さらに、前記復号手段における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データを検知モジュールへ出力する第二出力手段を含み、前記検知モジュールは、前記出力データ及び前記検証データを受け取る受信手段と、受け取った前記出力データ及び前記検証データを用いて、検証を行い、検証に失敗した場合に、その検証結果を出力する検証手段とを含むとしてもよい。
ここで、前記検証手段は、前記検証データに含まれている前記入力データ及び受け取った前記出力データの両方に、一方向性の前記変換と同一の変換を施して、第二検証値を生成し、前記検証データに含まれる前記復号検証値と、生成した前記第二検証値とが一致するか否かを判断することにより、前記検証を行い、一致しない場合に、検証に失敗したとみなして、前記検証結果を出力するとしてもよい。
ここで、前記保護制御モジュールは、さらに、他の一個以上のアプリケーションプログラムを保護し、前記管理装置は、さらに、他の前記アプリケーションプログラムについて、復号部分処理毎に復号検証値を生成し、復号部分処理毎に、前記アプリケーションプログラム及び他のアプリケーションプログラムを含む複数の前記アプリケーションプログラムについて生成された複数の前記復号検証値に対しデジタル署名を施して証明書を生成する証明書生成手段を含み、前記検証データ生成手段は、復号部分処理毎に生成された他の前記アプリケーションプログラムについての前記復号検証値及び復号部分処理毎に生成された前記証明書を含む前記検証データを生成し、前記出力手段は、前記証明書を含む前記検証データを前記保護制御モジュールへ出力し、前記第二出力手段は、前記証明書を含む前記検証データを前記検知モジュールへ出力し、前記受信手段は、前記証明書を含む前記検証データを受け取り、前記検証手段は、さらに、復号部分処理毎に、受け取った前記検証データに含まれる前記証明書を用いて、検証を行うとしてもよい。
ここで、前記検証手段は、前記検証データに含まれている前記入力データ及び受け取った前記出力データの両方に、一方向性の前記変換と同一の変換を施して、第二検証値を生成し、前記検証データに含まれる他の前記アプリケーションプログラムについての前記復号検証値及び生成した前記第二検証値、並びに、前記証明書を用いて、前記検証を行うとしてもよい。
ここで、複数の前記復号部分処理は、それぞれ、複数の前記検知モジュールに対応しており、前記第二出力手段は、各復号部分処理に対応する前記検知モジュールに対して、当該復号部分処理からの前記出力データ及び前記検証データを出力するとしてもよい。
ここで、各検知モジュールは、さらに、自身に対応する前記復号部分処理を識別する識別情報を、他の検知モジュールに対して送信する送信手段を含み、各検知モジュールの前記受信手段は、さらに、他の検知モジュールから、当該他の検知モジュールに対応する前記復号部分処理を識別する識別情報を受け取り、各検知モジュールの前記検証手段は、さらに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報の重複性、並びに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報と、複数の前記復号部分処理をそれぞれ識別する識別情報との網羅性について検証を行うとしてもよい。
#請求項8
ここで、各検知モジュールの前記検証手段は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報に重複があるか、又は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報が、複数の復号部分処理を識別する全ての識別情報を網羅していない場合に、検証に失敗した旨を示す検証結果を出力するとしてもよい。
ここで、前記保護制御モジュールには、改ざんのない前記保護制御モジュールに対してデジタル署名を施して生成された改ざん検出用証明書が付されており、各検知モジュールは、前記復号が終了し、前記復号鍵が消去されたのち、前記改ざん検出用証明書を用いて、前記保護制御モジュールに対する改ざんの検出を行う検証手段を含むとしてもよい。
ここで、前記分散鍵生成手段は、生成された複数の分散鍵の加算により前記復号鍵が得られるように、複数の前記分散鍵を生成し、前記復元手段は、複数の前記分散鍵の加算により、前記復号鍵を復元するとしてもよい。
ここで、前記分散鍵生成手段は、秘密分散法を用いて、前記復号鍵から複数の前記分散鍵を生成し、前記復元手段は、前記秘密分散法を用いて、複数の前記分散鍵から前記復号鍵を復元するとしてもよい。
ここで、前記保護制御モジュールは、さらに、暗号化された前記アプリケーションプログラムを前記検知モジュールに対して出力する第二出力手段を含み、各検知モジュールは、前記保護制御モジュールから、暗号化された前記アプリケーションプログラムを取得する第二取得手段と、記憶している前記分散鍵を用いて、暗号化された前記アプリケーションプログラムを部分復号して、部分復号文を生成する第二復号手段と、生成した前記部分復号文を前記保護制御モジュールへ出力する第三出力手段とを含み、前記取得手段は、各検知モジュールから、前記部分復号文を取得し、前記復号手段は、取得した複数の前記部分復号文を用いて、暗号化された前記アプリケーションプログラムを復号するとしてもよい。
ここで、前記アプリケーションプログラムは、RSA暗号方式により、暗号化され、前記第二復号手段は、暗号化された前記アプリケーションプログラムに対して、前記分散鍵の値によるべき乗を施して、前記部分復号文を生成し、前記復号手段は、複数の前記部分復号文の値を乗ずることより、暗号化された前記アプリケーションプログラムを復号するとしてもよい。
ここで、前記保護制御モジュールは、さらに、全ての前記検知モジュールから、複数の検知モジュールを選択する選択手段を含み、前記第二出力手段は、前記選択手段により選択された前記検知モジュールに対して、暗号化された前記アプリケーションプログラムを出力するとしてもよい。
ここで、前記保護制御モジュールには、改ざんのない前記保護制御モジュールに対してデジタル署名を施して生成された改ざん検出用証明書が付されており、各検知モジュールは、前記改ざん検出用証明書を用いて、前記保護制御モジュールに対する改ざんの検出を行う検証手段を含むとしてもよい。
ここで、複数の前記検知モジュールのうち、一の前記検知モジュールは、無効化されており、前記分散鍵生成手段は、さらに、無効化された前記検知モジュールに割り当てられた前記分散鍵を分解して、複数の再分散鍵を生成し、前記出力手段は、さらに、生成した複数の再分散鍵を、それぞれ、無効化されていない複数の前記検知モジュールに出力し、無効化されていない各検知モジュールは、さらに、前記再分散鍵を取得し、取得した前記再分散鍵を用いて、記憶している前記分散鍵を更新して新たな分散鍵を生成する分散鍵更新手段を含むとしてもよい。
ここで、前記分散鍵生成手段は、生成された複数の再分散鍵の加算により前記分散鍵が得られるように、複数の前記再分散鍵を生成し、前記分散鍵更新手段は、記憶している前記分散鍵に取得した前記再分散鍵を加算することにより、新たな前記分散鍵を生成するとしてもよい。
ここで、複数の前記検知モジュールは、第一及び第二のグループに分類されており、前記分散鍵生成手段は、さらに、前記復号鍵を分解して、複数の第二分散鍵を生成し、前記出力手段は、生成した複数の前記分散鍵を、それぞれ、前記第一のグループに属する複数の前記検知モジュールに出力し、さらに、生成した複数の前記第二分散鍵を、それぞれ、前記第二のグループに属する複数の前記検知モジュールに出力し、前記第一のグループに属する各検知モジュールは、前記分散鍵を取得して内部に記憶し、前記第二のグループに属する各検知モジュールは、前記第二分散鍵を取得して内部に記憶し、前記取得手段は、第一又は第二のグループに属する複数の前記検知モジュールからそれぞれ前記分散鍵又は前記第二分散鍵を取得し、前記復元手段は、取得した複数の前記分散鍵を統合して、又は取得した複数の前記第二分散鍵を統合して、前記復号鍵を復元するとしてもよい。
ここで、前記保護制御モジュール及び複数の前記検知モジュールは、それぞれ、コンピュータプログラムであって、前記アプリケーションプログラム、前記保護制御モジュール及び複数の前記検知モジュールは、情報処理装置に記憶されているとしてもよい。
ここで、前記出力手段は、前記情報処理装置の初期設定時に、複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力するとしてもよい。
ここで、前記取得手段は、前記情報処理装置において前記アプリケーションプログラムを実行する際に、複数の前記検知モジュールからそれぞれ前記分散鍵を取得するとしてもよい。
また、本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置であって、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成手段と、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力手段とを備えることを特徴とする。
ここで、前記管理装置は、さらに、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理を施し、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換を施して、復号検証値を生成し、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データを生成する検証データ生成手段を含み、前記出力手段は、さらに、前記検証データを前記保護制御モジュールへ出力するとしてもよい。
ここで、前記保護制御モジュールは、さらに、他の一個以上のアプリケーションプログラムを保護し、前記管理装置は、さらに、他の前記アプリケーションプログラムについて、復号部分処理毎に復号検証値を生成し、復号部分処理毎に、前記アプリケーションプログラム及び他のアプリケーションプログラムを含む複数の前記アプリケーションプログラムについて生成された複数の前記復号検証値に対しデジタル署名を施して証明書を生成する証明書生成手段を含み、前記検証データ生成手段は、復号部分処理毎に生成された他の前記アプリケーションプログラムについての前記復号検証値及び復号部分処理毎に生成された前記証明書を含む前記検証データを生成し、前記出力手段は、前記証明書を含む前記検証データを前記保護制御モジュールへ出力するとしてもよい。
ここで、前記分散鍵生成手段は、生成された複数の分散鍵の加算により前記復号鍵が得られるように、複数の前記分散鍵を生成するとしてもよい。
ここで、前記分散鍵生成手段は、秘密分散法を用いて、前記復号鍵から複数の前記分散鍵を生成するとしてもよい。
ここで、複数の前記検知モジュールのうち、一の前記検知モジュールは、無効化されており、前記分散鍵生成手段は、さらに、無効化された前記検知モジュールに割り当てられた前記分散鍵を分解して、複数の再分散鍵を生成し、前記出力手段は、さらに、生成した複数の再分散鍵を、それぞれ、無効化されていない複数の前記検知モジュールに出力するとしてもよい。
ここで、前記分散鍵生成手段は、生成された複数の再分散鍵の加算により前記分散鍵が得られるように、複数の前記再分散鍵を生成するとしてもよい。
ここで、複数の前記検知モジュールは、第一及び第二のグループに分類されており、前記分散鍵生成手段は、さらに、前記復号鍵を分解して、複数の第二分散鍵を生成し、前記出力手段は、生成した複数の前記分散鍵を、それぞれ、前記第一のグループに属する複数の前記検知モジュールに出力し、さらに、生成した複数の前記第二分散鍵を、それぞれ、前記第二のグループに属する複数の前記検知モジュールに出力するとしてもよい。
ここで、前記保護制御モジュール及び複数の前記検知モジュールは、それぞれ、コンピュータプログラムであって、前記アプリケーションプログラム、前記保護制御モジュール及び複数の前記検知モジュールは、情報処理装置に記憶されており、前記出力手段は、前記情報処理装置の初期設定時に、複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力するとしてもよい。
また、本発明の一態様は、アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールである。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力される。各検知モジュールにより、前記分散鍵が内部に記憶される。前記保護制御モジュールは、複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得手段と、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元手段と、前記復元手段により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号手段と、前記復号手段による復号が終了した後、前記復号鍵を消去する消去手段とを備えることを特徴とする。
ここで、前記管理装置により、さらに、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、前記検証データが前記保護制御モジュールへ出力され、前記復号手段は、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理を施し、前記保護制御モジュールは、さらに、前記復号手段における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データを検知モジュールへ出力する第二出力手段を含むとしてもよい。
ここで、前記保護制御モジュールは、さらに、他の一個以上のアプリケーションプログラムを保護し、前記管理装置により、さらに、他の前記アプリケーションプログラムについて、復号部分処理毎に復号検証値が生成され、復号部分処理毎に、前記アプリケーションプログラム及び他のアプリケーションプログラムを含む複数の前記アプリケーションプログラムについて生成された複数の前記復号検証値に対しデジタル署名を施して証明書が生成され、復号部分処理毎に生成された他の前記アプリケーションプログラムについての前記復号検証値及び復号部分処理毎に生成された前記証明書を含む前記検証データが生成され、前記証明書を含む前記検証データが前記保護制御モジュールへ出力され、前記第二出力手段は、前記証明書を含む前記検証データを前記検知モジュールへ出力するとしてもよい。
ここで、複数の前記復号部分処理は、それぞれ、複数の前記検知モジュールに対応しており、前記第二出力手段は、各復号部分処理に対応する前記検知モジュールに対して、当該復号部分処理からの前記出力データ及び前記検証データを出力するとしてもよい。
ここで、前記管理装置により、生成された複数の分散鍵の加算により前記復号鍵が得られるように、複数の前記分散鍵が生成され、前記復元手段は、複数の前記分散鍵の加算により、前記復号鍵を復元するとしてもよい。
ここで、前記管理装置により、秘密分散法を用いて、前記復号鍵から複数の前記分散鍵が生成され、前記復元手段は、前記秘密分散法を用いて、複数の前記分散鍵から前記復号鍵を復元するとしてもよい。
ここで、前記保護制御モジュールは、さらに、暗号化された前記アプリケーションプログラムを前記検知モジュールに対して出力する第二出力手段を含み、各検知モジュールにより、前記保護制御モジュールから、暗号化された前記アプリケーションプログラムが取得され、記憶している前記分散鍵を用いて、暗号化された前記アプリケーションプログラムを部分復号して、部分復号文が生成され、生成された前記部分復号文が前記保護制御モジュールへ出力され、前記取得手段は、各検知モジュールから、前記部分復号文を取得し、前記復号手段は、取得した複数の前記部分復号文を用いて、暗号化された前記アプリケーションプログラムを復号するとしてもよい。
ここで、前記アプリケーションプログラムは、RSA暗号方式により、暗号化され、前記検知モジュールにより、暗号化された前記アプリケーションプログラムに対して、前記分散鍵の値によるべき乗を施して、前記部分復号文が生成され、前記復号手段は、複数の前記部分復号文の値を乗ずることより、暗号化された前記アプリケーションプログラムを復号するとしてもよい。
ここで、前記保護制御モジュールは、さらに、全ての前記検知モジュールから、複数の検知モジュールを選択する選択手段を含み、前記第二出力手段は、前記選択手段により選択された前記検知モジュールに対して、暗号化された前記アプリケーションプログラムを出力するとしてもよい。
ここで、複数の前記検知モジュールは、第一及び第二のグループに分類されており、前記管理装置により、さらに、前記復号鍵を分解して、複数の第二分散鍵が生成され、生成した複数の前記分散鍵が、それぞれ、前記第一のグループに属する複数の前記検知モジュールに出力され、さらに、生成した複数の前記第二分散鍵が、それぞれ、前記第二のグループに属する複数の前記検知モジュールに出力され、前記第一のグループに属する各検知モジュールにより、前記分散鍵が内部に記憶され、前記第二のグループに属する各検知モジュールにより、前記第二分散鍵が内部に記憶され、前記取得手段は、第一又は第二のグループに属する複数の前記検知モジュールからそれぞれ前記分散鍵又は前記第二分散鍵を取得し、前記復元手段は、取得した複数の前記分散鍵を統合して、又は取得した複数の前記第二分散鍵を統合して、前記復号鍵を復元するとしてもよい。
ここで、前記保護制御モジュール及び複数の前記検知モジュールは、それぞれ、コンピュータプログラムであって、前記アプリケーションプログラム、前記保護制御モジュール及び複数の前記検知モジュールは、情報処理装置に記憶されているとしてもよい。
ここで、前記取得手段は、前記情報処理装置において前記アプリケーションプログラムを実行する際に、複数の前記検知モジュールからそれぞれ前記分散鍵を取得するとしてもよい。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールである。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力される。前記検知モジュールは、前記分散鍵を取得する取得手段と、取得した前記分散鍵を記憶する記憶手段と、前記保護制御モジュールに対して、前記分散鍵を出力する出力手段とを備えることを特徴とする。
ここで、前記管理装置により、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、さらに、前記検証データが前記保護制御モジュールへ出力される。前記保護制御モジュールにより、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理が施され、さらに、前記復号手段における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データが検知モジュールへ出力される。前記検知モジュールは、さらに、前記出力データ及び前記検証データを受け取る受信手段と、受け取った前記出力データ及び前記検証データを用いて、検証を行い、検証に失敗した場合に、その検証結果を出力する検証手段とを含むとしてもよい。
ここで、前記検証手段は、前記検証データに含まれている前記入力データ及び受け取った前記出力データの両方に、一方向性の前記変換と同一の変換を施して、第二検証値を生成し、前記検証データに含まれる前記復号検証値と、生成した前記第二検証値とが一致するか否かを判断することにより、前記検証を行い、一致しない場合に、検証に失敗したとみなして、前記検証結果を出力するとしてもよい。
ここで、前記保護制御モジュールにより、さらに、他の一個以上のアプリケーションプログラムが保護される。前記管理装置により、さらに、他の前記アプリケーションプログラムについて、復号部分処理毎に復号検証値が生成され、復号部分処理毎に、前記アプリケーションプログラム及び他のアプリケーションプログラムを含む複数の前記アプリケーションプログラムについて生成された複数の前記復号検証値に対しデジタル署名を施して証明書が生成され、復号部分処理毎に生成された他の前記アプリケーションプログラムについての前記復号検証値及び復号部分処理毎に生成された前記証明書を含む前記検証データが生成され、前記証明書を含む前記検証データが前記保護制御モジュールへ出力される。前記保護制御モジュールにより、前記証明書を含む前記検証データが前記検知モジュールへ出力される。前記受信手段は、前記証明書を含む前記検証データを受け取り、前記検証手段は、さらに、復号部分処理毎に、受け取った前記検証データに含まれる前記証明書を用いて、検証を行うとしてもよい。
ここで、前記検証手段は、前記検証データに含まれている前記入力データ及び受け取った前記出力データの両方に、一方向性の前記変換と同一の変換を施して、第二検証値を生成し、前記検証データに含まれる他の前記アプリケーションプログラムについての前記復号検証値及び生成した前記第二検証値、並びに、前記証明書を用いて、前記検証を行うとしてもよい。
ここで、複数の前記復号部分処理は、それぞれ、複数の前記検知モジュールに対応している。前記保護制御モジュールにより、各復号部分処理に対応する前記検知モジュールに対して、当該復号部分処理からの前記出力データ及び前記検証データが出力される。前記検知モジュールは、さらに、自身に対応する前記復号部分処理を識別する識別情報を、他の検知モジュールに対して送信する送信手段を含み、前記受信手段は、さらに、他の検知モジュールから、当該他の検知モジュールに対応する前記復号部分処理を識別する前記識別情報を受け取り、前記検証手段は、さらに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報の重複性、並びに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報と、複数の前記復号部分処理をそれぞれ識別する識別情報との網羅性について検証を行うとしてもよい。
ここで、前記検証手段は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報に重複があるか、又は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報が、複数の復号部分処理を識別する全ての識別情報を網羅していない場合に、検証に失敗した旨を示す検証結果を出力するとしてもよい。
ここで、前記保護制御モジュールには、改ざんのない前記保護制御モジュールに対してデジタル署名を施して生成された改ざん検出用証明書が付されている。前記検知モジュールは、さらに、前記復号が終了し、前記復号鍵が消去されたのち、前記改ざん検出用証明書を用いて、前記保護制御モジュールに対する改ざんの検出を行う検証手段を含むとしてもよい。
ここで、前記保護制御モジュールにより、さらに、暗号化された前記アプリケーションプログラムが前記検知モジュールに対して出力される。前記検知モジュールは、さらに、前記保護制御モジュールから、暗号化された前記アプリケーションプログラムを取得する第二取得手段と、記憶している前記分散鍵を用いて、暗号化された前記アプリケーションプログラムを部分復号して、部分復号文を生成する第二復号手段と、生成した前記部分復号文を前記保護制御モジュールへ出力する第三出力手段とを含むとしてもよい。
ここで、前記アプリケーションプログラムは、RSA暗号方式により、暗号化され、前記第二復号手段は、暗号化された前記アプリケーションプログラムに対して、前記分散鍵の値によるべき乗を施して、前記部分復号文を生成するとしてもよい。
ここで、前記保護制御モジュールには、改ざんのない前記保護制御モジュールに対してデジタル署名を施して生成された改ざん検出用証明書が付されている。前記検知モジュールは、さらに、前記改ざん検出用証明書を用いて、前記保護制御モジュールに対する改ざんの検出を行う検証手段を含むとしてもよい。
ここで、複数の前記検知モジュールのうち、一の検知モジュールは、無効化されている。前記管理装置により、さらに、無効化された前記検知モジュールに割り当てられた前記分散鍵が分解され、複数の再分散鍵が生成され、生成された複数の再分散鍵が、それぞれ、無効化されていない複数の前記検知モジュールに出力される。無効化されていない前記検知モジュールは、さらに、前記再分散鍵を取得し、取得した前記再分散鍵を用いて、記憶している前記分散鍵を更新して新たな分散鍵を生成する分散鍵更新手段を含むとしてもよい。
ここで、前記管理装置により、生成された複数の再分散鍵の加算により前記分散鍵が得られるように、複数の前記再分散鍵が生成される。前記分散鍵更新手段は、記憶している前記分散鍵に取得した前記再分散鍵を加算することにより、新たな前記分散鍵を生成するとしてもよい。
ここで、前記保護制御モジュール及び複数の前記検知モジュールは、それぞれ、コンピュータプログラムであって、前記アプリケーションプログラム、前記保護制御モジュール及び複数の前記検知モジュールは、情報処理装置に記憶されているとしてもよい。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置において用いられる制御方法であって、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成ステップと、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力ステップとを含むことを特徴とする。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置において用いられる制御用のコンピュータプログラムを記録しているコンピュータ読取可能な記録媒体であって、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成ステップと、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力ステップとコンピュータである前記管理装置に実行させるためのコンピュータプログラムを記録している。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置において用いられる制御用のコンピュータプログラムであって、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成ステップと、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力ステップとコンピュータである前記管理装置に実行させるためのコンピュータプログラムである。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置を構成する集積回路であって、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成手段と、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力手段とを備えることを特徴とする。
本発明の一態様は、アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールにおいて用いられる制御方法である。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、各検知モジュールにより、前記分散鍵が内部に記憶される。前記制御方法は、複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得ステップと、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元ステップと、前記復元ステップにより復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号ステップと、前記復号ステップによる復号が終了した後、前記復号鍵を消去する消去ステップとを含むことを特徴とする。
本発明の一態様は、アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールにおいて用いられる制御用のコンピュータプログラムを記録しているコンピュータ読取可能な記録媒体である。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、各検知モジュールにより、前記分散鍵が内部に記憶される。前記記録媒体は、コンピュータである前記保護制御モジュールに、複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得ステップと、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元ステップと、前記復元ステップにより復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号ステップと、前記復号ステップによる復号が終了した後、前記復号鍵を消去する消去ステップとを実行させるためのコンピュータプログラムを記録している。
本発明の一態様は、アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールにおいて用いられる制御用のコンピュータプログラムである。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、各検知モジュールにより、前記分散鍵が内部に記憶される。前記コンピュータプログラムは、コンピュータである前記保護制御モジュールに、複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得ステップと、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元ステップと、前記復元ステップにより復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号ステップと、前記復号ステップによる復号が終了した後、前記復号鍵を消去する消去ステップとを実行させる。
本発明の一態様は、アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールを構成する集積回路である。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、各検知モジュールにより、前記分散鍵が内部に記憶される。前記集積回路は、複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得手段と、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元手段と、前記復元手段により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号手段と、前記復号手段による復号が終了した後、前記復号鍵を消去する消去手段とを備えることを特徴とする。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールにおいて用いられる方法である。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力される。前記方法は、前記分散鍵を取得する取得ステップと、取得した前記分散鍵を記憶させる記憶ステップと、前記保護制御モジュールに対して、前記分散鍵を出力する出力ステップとを含むことを特徴とする。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールにおいて用いられるコンピュータプログラムを記録しているコンピュータ読取可能な記録媒体である。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力される。前記記録媒体は、コンピュータである前記検知モジュールに、前記分散鍵を取得する取得ステップと、取得した前記分散鍵を記憶させる記憶ステップと、前記保護制御モジュールに対して、前記分散鍵を出力する出力ステップとを実行させるためのコンピュータプログラムを記録している。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールにおいて用いられるコンピュータプログラムである。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力される。前記コンピュータプログラムは、コンピュータである前記検知モジュールに、前記分散鍵を取得する取得ステップと、取得した前記分散鍵を記憶させる記憶ステップと、前記保護制御モジュールに対して、前記分散鍵を出力する出力ステップとを実行させる。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールを構成する集積回路である。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力される。前記集積回路は、前記分散鍵を取得する取得手段と、取得した前記分散鍵を記憶する記憶手段と、前記保護制御モジュールに対して、前記分散鍵を出力する出力手段とを備えることを特徴とする。
1.実施の形態1
ここでは、本発明に係る実施の形態1としての改ざん監視システム10dについて説明する。
(1)改ざん監視システム10dの構成
改ざん監視システム10dは、図1に示すように、保護制御モジュール120d、複数の検知モジュール131d、132d、・・・、135d及び管理装置200dから構成されている。
保護制御モジュール120dは、アプリケーションプログラムを保護する。検知モジュール131d、132d、・・・、135dは、それぞれ、保護制御モジュール120dの改ざんを監視する。
管理装置200dは、図1に示すように、分散鍵生成部251d及び出力部252dから構成されている。
分散鍵生成部251dは、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する。
出力部252dは、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する。
検知モジュール131d、132d、・・・、135dは、それぞれ、分散鍵を取得して内部に記憶する。
保護制御モジュール120dは、図1に示すように、取得部381d、復元部382d、復号部383d及び消去部384dから構成されている。
取得部381dは、複数の検知モジュール131d、132d、・・・、135dから、それぞれ、分散鍵を取得する。
復元部382dは、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する。
復号部383dは、復元部382dにより復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する。
消去部384dは、復号部383dによる復号が終了した後、前記復号鍵を消去する。
この構成によれば、保護制御モジュール120dは、常時、復号鍵を保持することなく、暗号化されたアプリケーションプログラムを復号する時間帯においてのみ、復号鍵を保持し、復号終了後には、当該復号鍵を消去するので、保護制御モジュール120dから、前記復号鍵が不正に漏洩する可能性を低くすることができる。
こうして、改ざん監視システム10dの安全性を高めることができる。
(2)管理装置200dは、さらに、検証データ生成部(図示していない)を含むとしてもよい。検証データ生成部は、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理を施し、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換を施して、復号検証値を生成し、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データを生成する。
出力部252dは、さらに、前記検証データを保護制御モジュール120dへ出力する。
復号部383dは、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理を施す。
保護制御モジュールは、さらに、第二出力部(図示していない)を含む。第二出力部は、復号部383dにおける復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データを検知モジュール131dへ出力する。
検知モジュール131dは、受信部(図示していない)と検証部(図示していない)とを含む。
受信部は、前記出力データ及び前記検証データを受け取る。
検証部は、受け取った前記出力データ及び前記検証データを用いて、検証を行い、検証に失敗した場合に、その検証結果を出力する。
この構成によると、検知モジュールは、前記出力データ及び前記検証データを用いて、保護制御モジュール120dが有する復号処理を構成する復号部分処理についての改ざんの検証を行うことができる。
(3)検証部は、前記検証データに含まれている前記入力データ及び受け取った前記出力データの両方に、一方向性の前記変換と同一の変換を施して、第二検証値を生成し、前記検証データに含まれる前記復号検証値と、生成した前記第二検証値とが一致するか否かを判断することにより、前記検証を行い、一致しない場合に、検証に失敗したとみなして、前記検証結果を出力するとしてもよい。
(4)保護制御モジュール120dは、さらに、他の一個以上のアプリケーションプログラムを保護するとしてもよい。
管理装置200dは、さらに、証明書生成手段(図示していない)を含む。
証明書生成手段は、他の前記アプリケーションプログラムについて、復号部分処理毎に復号検証値を生成し、復号部分処理毎に、前記アプリケーションプログラム及び他のアプリケーションプログラムを含む複数の前記アプリケーションプログラムについて生成された複数の前記復号検証値に対しデジタル署名を施して証明書を生成する。
検証データ生成部は、復号部分処理毎に生成された他の前記アプリケーションプログラムについての前記復号検証値及び復号部分処理毎に生成された前記証明書を含む前記検証データを生成する。
出力部252dは、前記証明書を含む前記検証データを保護制御モジュール120dへ出力する。
第二出力部は、前記証明書を含む前記検証データを検知モジュール131dへ出力する。
受信部は、前記証明書を含む前記検証データを受け取る。
検証部は、さらに、復号部分処理毎に、受け取った前記検証データに含まれる前記証明書を用いて、検証を行う。
この構成によると、検知モジュールは、複数のアプリケーションプログラムが動作する場合において、前記出力データ及び前記検証データを用いて、保護制御モジュール120dが有する復号処理を構成する復号部分処理についての改ざんの検証を行うことができる。
(5)検証部は、前記検証データに含まれている前記入力データ及び受け取った前記出力データの両方に、一方向性の前記変換と同一の変換を施して、第二検証値を生成し、前記検証データに含まれる他の前記アプリケーションプログラムについての前記復号検証値及び生成した前記第二検証値、並びに、前記証明書を用いて、前記検証を行うとしてもよい。
(6)複数の前記復号部分処理は、それぞれ、複数の前記検知モジュールに対応している。
第二出力部は、各復号部分処理に対応する前記検知モジュールに対して、当該復号部分処理からの前記出力データ及び前記検証データを出力するとしてもよい。
この構成によると、各検知モジュールは、対応する復号部分処理について、検証を行うので、復号部分処理との対応関係を有さない検知モジュールが改ざんされた場合には、改ざんの検証に影響させないようにすることができる。
(7)各検知モジュールは、さらに、自身に対応する前記復号部分処理を識別する識別情報を、他の検知モジュールに対して送信する送信部を含むとしてもよい。
各検知モジュールの受信部は、さらに、他の検知モジュールから、当該他の検知モジュールに対応する前記復号部分処理を識別する識別情報を受け取る。
各検知モジュールの検証部は、さらに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報の重複性、並びに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報と、複数の前記復号部分処理をそれぞれ識別する識別情報との網羅性について検証を行う。
この構成によると、各検知モジュールは、前記重複性及び前記網羅性について検証を行うので、複数の検知モジュールが同一の復号部分処理を検証するにように改ざんされる場合や、検知モジュールが対応する復号部分処理を検証しないように改ざんされた場合においても、このような改ざんを検出することができる。
(8)各検知モジュールの検証部は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報に重複があるか、又は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報が、複数の復号部分処理を識別する全ての識別情報を網羅していない場合に、検証に失敗した旨を示す検証結果を出力するとしてもよい。
(9)保護制御モジュール120dには、改ざんのない前記保護制御モジュールに対してデジタル署名を施して生成された改ざん検出用証明書が付されている。
各検知モジュールは、前記復号が終了し、前記復号鍵が消去されたのち、前記改ざん検出用証明書を用いて、前記保護制御モジュールに対する改ざんの検出を行う検証部を含むとしてもよい。
この構成によると、改ざん検出用証明書を用いた検出を行うことができる。
(10)分散鍵生成部251dは、生成された複数の分散鍵の加算により前記復号鍵が得られるように、複数の前記分散鍵を生成するとしてもよい。
復元部382dは、複数の前記分散鍵の加算により、前記復号鍵を復元する。
この構成によると、元の復号鍵を復元することができる。
(11)分散鍵生成部251dは、秘密分散法を用いて、前記復号鍵から複数の前記分散鍵を生成するとしてもよい。
復元部382dは、前記秘密分散法を用いて、複数の前記分散鍵から前記復号鍵を復元する。
この構成によると、元の復号鍵を復元することができる。
(12)保護制御モジュール120dは、さらに、暗号化された前記アプリケーションプログラムを前記検知モジュールに対して出力する第二出力部を含むとしてもよい。
各検知モジュールは、第二取得部と、第二復号部と、第三出力部とを含む。
第二取得部は、保護制御モジュール120dから、暗号化された前記アプリケーションプログラムを取得する。
第二復号部は、記憶している前記分散鍵を用いて、暗号化された前記アプリケーションプログラムを部分復号して、部分復号文を生成する。
第三出力部は、生成した前記部分復号文を保護制御モジュール120dへ出力する。
取得部381dは、各検知モジュールから、前記部分復号文を取得する。
復号部383dは、取得した複数の前記部分復号文を用いて、暗号化された前記アプリケーションプログラムを復号する。
この構成によれば、保護制御モジュール120dは、常時、復号鍵を保持することがない。このため、保護制御モジュール120dから、前記復号鍵が不正に漏洩する可能性がない。
(13)前記アプリケーションプログラムは、RSA暗号方式により、暗号化されているとしてもよい。
第二復号部は、暗号化された前記アプリケーションプログラムに対して、前記分散鍵の値によるべき乗を施して、前記部分復号文を生成する。
復号部383dは、複数の前記部分復号文の値を乗ずることより、暗号化された前記アプリケーションプログラムを復号する。
この構成によれば、暗号化されたアプリケーションプログラムを復号することができる。
(14)保護制御モジュール120dは、さらに、全ての前記検知モジュールから、複数の検知モジュールを選択する選択部を含むとしてもよい。
第二出力部は、選択部により選択された前記検知モジュールに対して、暗号化された前記アプリケーションプログラムを出力する。
この構成によれば、選択された検知モジュールが部分復号を行うので、選択されなかった検知モジュールが改ざんされた場合であっても、検証に影響させないようにすることができる。
(15)保護制御モジュール120dには、改ざんのない前記保護制御モジュールに対してデジタル署名を施して生成された改ざん検出用証明書が付されているとしてもよい。
各検知モジュールは、前記改ざん検出用証明書を用いて、前記保護制御モジュールに対する改ざんの検出を行う検証部を含む。
この構成によると、改ざん検出用証明書を用いた検出を行うことができる。
(16)複数の前記検知モジュールのうち、一の前記検知モジュールは、無効化されているとしてもよい。
分散鍵生成部251dは、さらに、無効化された前記検知モジュールに割り当てられた前記分散鍵を分解して、複数の再分散鍵を生成する。
出力部252dは、さらに、生成した複数の再分散鍵を、それぞれ、無効化されていない複数の前記検知モジュールに出力する。
無効化されていない各検知モジュールは、さらに、前記再分散鍵を取得し、取得した前記再分散鍵を用いて、記憶している前記分散鍵を更新して新たな分散鍵を生成する分散鍵更新部を含む。
この構成によると、一の検知モジュールが無効化されている場合であっても、保護制御モジュールは、無効化されていない検知モジュールから、新たな分散鍵を取得して、復号鍵を復元することができる。
(17)分散鍵生成部251dは、生成された複数の再分散鍵の加算により前記分散鍵が得られるように、複数の前記再分散鍵を生成するとしてもよい。
分散鍵更新部は、記憶している前記分散鍵に取得した前記再分散鍵を加算することにより、新たな前記分散鍵を生成する。
(18)複数の前記検知モジュールは、第一及び第二のグループに分類されているとしてもよい。
分散鍵生成部251dは、さらに、前記復号鍵を分解して、複数の第二分散鍵を生成する。
出力部252dは、生成した複数の前記分散鍵を、それぞれ、前記第一のグループに属する複数の前記検知モジュールに出力し、さらに、生成した複数の前記第二分散鍵を、それぞれ、前記第二のグループに属する複数の前記検知モジュールに出力する。
前記第一のグループに属する各検知モジュールは、前記分散鍵を取得して内部に記憶する。
前記第二のグループに属する各検知モジュールは、前記第二分散鍵を取得して内部に記憶する。
取得部381dは、第一又は第二のグループに属する複数の前記検知モジュールからそれぞれ前記分散鍵又は前記第二分散鍵を取得する。
復元部382dは、取得した複数の前記分散鍵を統合して、又は取得した複数の前記第二分散鍵を統合して、前記復号鍵を復元する。
上記の構成によると、第一のグループに属する検知モジュールが改ざんされた場合であっても、第二のグループに属する検知モジュールを用いて、検証を行うことができる。また、第二のグループに属する検知モジュールが改ざんされた場合であっても、第一のグループに属する検知モジュールを用いて、検証を行うことができる。
(19)保護制御モジュール120d及び複数の検知モジュール131d、132d、・・・、135dは、それぞれ、コンピュータプログラムであるとしてもよい。
前記アプリケーションプログラム、保護制御モジュール120d及び複数の検知モジュール131d、132d、・・・、135dは、情報処理装置に記憶されている。
(20)出力部252dは、前記情報処理装置の初期設定時に、複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力するとしてもよい。
(21)取得部381dは、前記情報処理装置において前記アプリケーションプログラムを実行する際に、複数の検知モジュール131d、132d、・・・、135dからそれぞれ前記分散鍵を取得するとしてもよい。
(22)管理装置200dにより、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の検知モジュール131d、132d、・・・、135dに出力されるとしてもよい。ここで、検知モジュール131d、132d、・・・、135dは、アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する。
検知モジュール131d、132d、・・・、135dのうちの一の検知モジュールは、取得部と、記憶部と、出力部とを備えるとしてもよい。
取得部は、前記分散鍵を取得する。
記憶部は、取得した前記分散鍵を記憶する。
出力部は、保護制御モジュール120dに対して、前記分散鍵を出力する。
2.実施の形態2
ここでは、本発明に係る実施の形態2としての検知システム10について説明する。
2.1 検知システム10の構成
検知システム10は、図2に示すように、機器100及び管理装置200から構成され、機器100と管理装置200とは、インターネットに代表されるネットワーク20を介して、接続されている。
機器100は、様々なサービスを利用者に提供する情報処理装置である。例えば、機器100は、ネットワーク20を介して、コンテンツ配信サーバ装置(図示していない)にアクセスし、音楽や映像などのコンテンツを購入して再生する。また、機器100は、ネットワーク20を介して、金融機関のサーバ装置(図示していない)にアクセスし、ネットバンキング(預金の残高照会や口座振り込みなど)を行う。
機器100は、例えば、PC(パーソナルコンピュータ)、携帯電話機、携帯情報端末装置、デジタル放送受信装置、DVD(Digital Versatile Disc)プレーヤ、BD(Blu-ray Disc)プレーヤ、コンテンツ記録装置等である。
機器100には、アプリケーションプログラムがインストールされており、このアプリケーションプログラムが実行される。また、機器100には、コンピュータプログラムである保護制御モジュール120及び複数の検知モジュール131、132、・・・、135がインストールされている。保護制御モジュール120は、アプリケーションプログラムを保護する。また、複数の検知モジュール131、132、・・・、135は、それぞれ、保護制御モジュール120に対する改ざんを監視する。
管理装置200は、保護制御モジュール120及び複数の検知モジュール131、132、・・・、135を管理する。
2.2 管理装置200の構成
管理装置200は、保護制御モジュール120が正しく動作しているか否かを検証するために必要な検証基データを生成し、機器100へ出力する。
管理装置200は、図2に示すように、判断部210、ソフトウェア配布部220及び通信部230から構成される。
管理装置200は、具体的には、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスクユニット、NIC(Network Interface Card)などを備えるコンピュータシステムである。ROM又はハードディスクユニットには、管理装置200の動作を制御するための制御用のコンピュータプログラムが記憶されている。CPUが、これらの制御用のコンピュータプログラムに従って動作することにより、管理装置200の判断部210及びソフトウェア配布部220は、その機能を発揮する。また、通信部230は、NICにより、その機能を発揮する。
(1)判断部210
判断部210は、機器100内部に記憶されているコンピュータプログラム(アプリケーションプログラム(以下、「アプリ」という。)110、111、112、113、114、保護制御モジュール120及び検知モジュール群130)の状態に応じて、機器100が実行すべき処理を決定し、ソフトウェア配布部220に各種指示を行う。
判断部210は、図3に示すように、受信部501、送信部502及び指示生成部503から構成されている。
受信部501は、各検知モジュールから、検出結果や各種依頼などを受信し、受信した検出結果や各種依頼などを指示生成部503へ出力する。また、受信部501は、ソフトウェア配布部220から、処理の完了を示す通知を受信し、受信した通知を指示生成部503に出力する。
送信部502は、指示生成部503から指示を受け取り、受け取った指示をソフトウェア配布部220へ送信する。
指示生成部503は、保護制御モジュール120から検証基データの生成依頼を受け取る。検証基データの生成依頼を受け取ると、検証基データの生成指示を生成し、生成した検証基データの生成指示を、送信部502を介して、ソフトウェア配布部220へ出力する。
(2)ソフトウェア配布部220
ソフトウェア配布部220は、機器100内部に記憶されている保護制御モジュール120が検知される際に、各検知モジュールが検証に用いる検証データを含む検証基データを保護制御モジュール120へ送信する。
ソフトウェア配布部220は、図4に示すように、受信部601、送信部602、制御部603、認証部604、証明書生成部605、署名私有鍵保持部606、暗復号鍵保持部607、ソフトウェア保持部608、検証基データ生成部609及び分散鍵生成部610から構成されている。
(署名私有鍵保持部606)
署名私有鍵保持部606は、署名私有鍵Prk(632)を保持している。署名私有鍵Prk(632)は、管理装置200に割り当てられた公開鍵暗号方式の私有鍵であり、証明書生成部605により証明書を生成するときに利用される。
ここで、公開鍵暗号方式は、一例として、RSAによるものである。
(暗復号鍵保持部607)
暗復号鍵保持部607は、アプリを暗号化するため及び暗号化アプリを復号するために用いられる暗復号鍵d(631)を保持している。暗復号鍵d(631)は、秘密暗号方式の秘密鍵である。暗復号鍵d(631)は、一例として、128ビット長のAES(Advanced Encryption Standard)の秘密鍵である。
(ソフトウェア保持部608)
ソフトウェア保持部608は、コンピュータプログラムとしての保護制御モジュール120、コンピュータプログラムとしての検知モジュール群130及びコンピュータプログラムとしてのアプリ110、111、・・・、114を予め記憶している。
保護制御モジュール120、検知モジュール群130及びアプリ110、111、・・・、114は、機器100にインストールされる。保護制御モジュール120、検知モジュール群130及びアプリ110、111、・・・、114については、後述する。
(受信部601)
受信部601は、機器100の各検知モジュールから、ネットワーク20及び通信部230を介して、保護制御モジュール120に対する検出結果を受信し、受信した検出結果を制御部603へ出力する。
(送信部602)
送信部602は、制御部603の制御により、機器100内部の各アプリ及び保護制御モジュール120に対する改ざん検証の依頼、それらの検証に必要な検証基データなどを、通信部230及びネットワーク20を介して、機器100へ送信する。
(制御部603)
制御部603は、ソフトウェア配布部220の各構成要素を制御する。
また、制御部603は、分散鍵生成部610により生成された複数の分散鍵を、それぞれ、送信部602、通信部230及びネットワーク20を介して、機器100の複数の検知モジュール131、132、・・・、135へ出力する。
さらに、制御部603は、検証基データ生成部609により生成された検証基データ640(後述する)を、送信部602、通信部230及びネットワーク20を介して、機器100の保護制御モジュール120へ出力する。
(認証部604)
認証部604は、各検知モジュールや保護制御モジュール120との間で相互認証を行う。
(検証基データ生成部609)
検証基データ生成部609は、以下に示すように、暗号化された改ざんのないアプリに対し、複数の復号部分処理から構成される復号処理を施し、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換を施して、復号検証値を生成し、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データを生成する。
具体的には、検証基データ生成部609は、次に示すように、図5に示す第一復号部分処理データ641、第二復号部分処理データ642及び第三復号部分処理データ643を含む検証基データ640を生成し、生成した検証基データ640を制御部603へ出力する。
(a)検証基データ生成部609は、判定情報を生成する。ここでは、以下に説明する復号アルゴリズムDを構成する復号サブプロセス(復号部分処理とも呼ぶ。)の数を、判定情報とする。後述するように、一例として、復号サブプロセスの数は、「3」であるので、判定情報を「3」とする。
(b)次に、検証基データ生成部609は、ソフトウェア保持部608から、アプリ110、111、・・・、114を読み出す。アプリ110、111、・・・、114には、ファイル名が付されており、アプリ110、111、・・・、114それぞれのファイル名から識別情報を抽出する。ここでは、アプリ110、111、・・・、114それぞれのファイル名から、識別情報「110」、「111」、「112」、「113」及び「114」が抽出されるものとする。
(c)検証基データ生成部609は、暗復号鍵保持部607から暗復号鍵d(631)を読み出す。次に、検証基データ生成部609は、ソフトウェア保持部608に記憶されている保護制御モジュール120に含まれている復号ロード部304(後述する)を実行状態とし、復号ロード部304に対して、読み出した暗復号鍵d(631)を用いて、読み出したアプリ110、111、・・・、114を暗号化アルゴリズムEにより、暗号化するように制御する。ここで、暗号化アルゴリズムEは、一例として、秘密鍵暗号方式のAESである。こうして、アプリ110、111、・・・、114から、それぞれ、暗号化アプリ110e、111e、・・・、114eが生成される。
(d)次に、検証基データ生成部609は、実行状態とした復号ロード部304に対して、暗号化アプリ110e、111e、・・・、114eを、読み出した暗復号鍵d(631)を用いて、暗号化アルゴリズムEの逆変換である復号アルゴリズムDにより、復号して、復号アプリ110d、111d、・・・、114dを生成するように、制御する。
ここで、復号アルゴリズムDは、複数の復号サブプロセス(復号部分処理)から構成されている。暗号文は、複数の復号サブプロセスを順次経ることにより、平文に変換される。複数個の復号サブプロセスから構成される復号処理の例は、DES(Data Encryption Standard)及びAESである。ここでは、一例として、復号アルゴリズムDは、3個の復号サブプロセスから構成されているものとする。
復号ロード部304により実行される復号処理650は、図6に一例として示すように、3個の復号サブプロセス(復号部分処理)を順次経て、つまり、第一復号部分処理651、第二復号部分処理652及び第三復号部分処理653を順次経て、なされる。
具体的には、図6に示すように、暗号化アプリ661は、第一復号部分処理651を経て、第一中間アプリ662に変換される。次に、第一中間アプリ662は、第二復号部分処理652を経て、第二中間アプリ663に変換される。次に、第二中間アプリ663は、第三復号部分処理653を経て、復号アプリ664に変換される。
このとき、検証基データ生成部609は、復号ロード部304に対して、復号処理650の最終結果である復号アプリ664とともに、第一復号部分処理651の出力である第一中間アプリ662及び第二復号部分処理652の出力である第二中間アプリ663をも出力するように、制御する。
こうして、暗号化アプリ110e、111e、・・・、114eのそれぞれについて、復号アプリ110d、111d、・・・、114dが生成され、暗号化アプリ110e、111e、・・・、114eのそれぞれについて、第一中間アプリ110da、111da、・・・、114daが生成され、第二中間アプリ110db、111db、・・・、114dbが生成される。
(e)検証基データ生成部609は、次に示すようにして、各復号サブプロセス(復号部分処理)について、アプリ毎に、復号検証値を生成する。
第一復号部分処理651について、検証基データ生成部609は、暗号化アプリ110e及び第一中間アプリ110daをこの順序で結合して、結合体を生成し、生成した結合体に対して、ハッシュを施して、復号検証値A(645a)を生成する。
復号検証値A(645a)=Hash(暗号化アプリ110e||第一中間アプリ110da)
ここで、一例として、ハッシュSHA−1を用いる。しかし、これには限定されない。SHA−2、SHA−3やブロック暗号を用いたCBC−MAC(Cipher Block Chaining - Message Authentication Code)などを用いるとしてもよい。
また、Hash(x)は、データxに対して、ハッシュを施して生成したハッシュ値を示し、(a||b)は、データaとデータbとをこの順序で結合して生成した結合体を示す。
暗号化アプリ111e、112e、・・・、114eについても同様にして、復号検証値B(645b)、復号検証値C(645c)、復号検証値D(645d)及び復号検証値E(645e)を生成する。
復号検証値B(645b)=Hash(暗号化アプリ111e||第一中間アプリ111da)
復号検証値C(645c)=Hash(暗号化アプリ112e||第一中間アプリ112da)
復号検証値D(645d)=Hash(暗号化アプリ113e||第一中間アプリ113da)
復号検証値E(645e)=Hash(暗号化アプリ114e||第一中間アプリ114da)
次に、第二復号部分処理652について、検証基データ生成部609は、第一中間アプリ110da及び第二中間アプリ110dbをこの順序で結合して、結合体を生成し、生成した結合体に対して、ハッシュを施して、復号検証値F(645f)を生成する。
復号検証値F(645f)=Hash(第一中間アプリ110da||第二中間アプリ110db)
第一中間アプリ111da、112da、・・・、114daについても、同様にして、復号検証値G(645g)、復号検証値H(645h)、復号検証値I(645i)及び復号検証値J(645j)を生成する。
復号検証値G(645g)=Hash(第一中間アプリ111da||第二中間アプリ111db)
復号検証値H(645h)=Hash(第一中間アプリ112da||第二中間アプリ112db)
復号検証値I(645i)=Hash(第一中間アプリ113da||第二中間アプリ113db)
復号検証値J(645j)=Hash(第一中間アプリ114da||第二中間アプリ114db)
次に、第三復号部分処理653について、検証基データ生成部609は、第二中間アプリ110db及び復号アプリ110dをこの順序で結合して、結合体を生成し、生成した結合体に対して、ハッシュを施して、復号検証値K(645k)を生成する。
復号検証値K(645k)=Hash(第二中間アプリ110db||復号アプリ110d)
第二中間アプリ111db、112db、・・・、114dbについても、同様にして、復号検証値L(645l)、復号検証値M(645m)、復号検証値N(645n)及び復号検証値O(645o)を生成する。
復号検証値L(645l)=Hash(第二中間アプリ111db||復号アプリ111d)
復号検証値M(645m)=Hash(第二中間アプリ112db||復号アプリ112d)
復号検証値N(645n)=Hash(第二中間アプリ113db||復号アプリ113d)
復号検証値O(645o)=Hash(第二中間アプリ114db||復号アプリ114d)
(f)検証基データ生成部609は、次に示すようにして、各復号サブプロセス(復号部分処理)について、復号証明書を生成する。
第一復号部分処理651について、検証基データ生成部609は、復号検証値A(645a)、復号検証値B(645b)、復号検証値C(645c)、復号検証値D(645d)及び復号検証値E(645e)をこの順序で結合して、結合体を生成する。次に、生成した結合体に対して、ハッシュを施して、ハッシュ値を生成する。次に、生成したハッシュ値を証明書生成部605へ出力して、署名私有鍵Prk(632)を用いて、生成したハッシュ値に署名生成アルゴリズムSignを施して、復号処理証明書646aを生成させる。
復号処理証明書646a=Sign(Prk、Hash(A||B||C||D||E))
ここで、署名生成アルゴリズムSignは、例えば、RSA署名、DSA(Digital Signature Algorithm)や楕円曲線DSAなどの公開鍵暗号をベースとした署名方式のアルゴリズムである。なお、署名生成アルゴリズムSignは、これらには限定されない。他にも、MAC(Message Authentication Code)などの共通鍵暗号やハッシュ関数をベースとした署名方式のアルゴリズムであるとしてもよい。
署名生成アルゴリズムに関しては、非特許文献1の171ページから187ページに詳しく説明されている。
また、Sign(x、y)は、私有鍵xを用いて、データyに対して、署名生成アルゴリズムSignを施して生成した署名データを示す。
次に、第二復号部分処理652について、検証基データ生成部609は、復号検証値F(645f)、復号検証値G(645g)、復号検証値H(645h)、復号検証値I(645i)及び復号検証値J(645j)をこの順序で結合して、結合体を生成する。次に、生成した結合体に対して、ハッシュを施して、ハッシュ値を生成する。次に、生成したハッシュ値を証明書生成部605へ出力して、署名私有鍵Prk(632)を用いて、生成したハッシュ値に署名生成アルゴリズムSignを施して、復号処理証明書646aを生成させる。
復号処理証明書646b=Sign(Prk、Hash(F||G||H||I||J))
次に、第三復号部分処理653について、検証基データ生成部609は、復号検証値K(645k)、復号検証値L(645l)、復号検証値M(645m)、復号検証値N(645n)及び復号検証値O(645o)をこの順序で結合して、結合体を生成する。次に、生成した結合体に対して、ハッシュを施して、ハッシュ値を生成する。次に、生成したハッシュ値を証明書生成部605へ出力して、署名私有鍵Prk(632)を用いて、生成したハッシュ値に署名生成アルゴリズムSignを施して、復号処理証明書646cを生成させる。
復号処理証明書646c=Sign(Prk、Hash(K||L||M||N||O))
(g)検証基データ生成部609は、第一復号部分処理651について、識別情報「110」、暗号化アプリ110e及び復号検証値A(645a)を第一組とし、識別情報「111」、暗号化アプリ111e及び復号検証値B(645b)を第二組とし、識別情報「112」、暗号化アプリ112e及び復号検証値C(645c)を第三組とし、識別情報「113」、暗号化アプリ113e及び復号検証値D(645d)を第四組とし、識別情報「114」、暗号化アプリ114e及び復号検証値E(645e)を第五組とし、判定情報「3」、第一組、第二組、・・・、第五組及び復号処理証明書646aを含む第一復号部分処理データ641を生成する。
次に、検証基データ生成部609は、第二復号部分処理652について、識別情報「110」、第一中間アプリ110da及び復号検証値F(645f)を第一組とし、識別情報「111」、第一中間アプリ111da及び復号検証値G(645g)を第二組とし、識別情報「112」、第一中間アプリ112da及び復号検証値H(645h)を第三組とし、識別情報「113」、第一中間アプリ113da及び復号検証値I(645i)を第四組とし、識別情報「114」、第一中間アプリ114da及び復号検証値J(645j)を第五組とし、判定情報「3」、第一組、第二組、・・・、第五組及び復号処理証明書646bを含む第二復号部分処理データ642を生成する。
次に、検証基データ生成部609は、第三復号部分処理653について、識別情報「110」、第二中間アプリ110db及び復号検証値K(645k)を第一組とし、識別情報「111」、第二中間アプリ111db及び復号検証値L(645l)を第二組とし、識別情報「112」、第二中間アプリ112db及び復号検証値M(645m)を第三組とし、識別情報「113」、第二中間アプリ113db及び復号検証値N(645n)を第四組とし、識別情報「114」、第二中間アプリ114db及び復号検証値O(645o)を第五組とし、判定情報「3」、第一組、第二組、・・・、第五組及び復号処理証明書646cを含む第三復号部分処理データ643を生成する。
(h)次に、検証基データ生成部609は、第一復号部分処理データ641、第二復号部分処理データ642及び第三復号部分処理データ643を含む検証基データ640を生成する。
このようにして生成した検証基データ640を図5に示す。
図5に一例として示すように、検証基データ640は、第一復号部分処理データ641、第二復号部分処理データ642及び第三復号部分処理データ643を含む。
第一復号部分処理データ641は、判定情報「3」、第一組、第二組、・・・、第五組及び復号処理証明書646aを含む。第一組は、識別情報「110」、暗号化アプリ110e及び復号検証値A(645a)を含む。第二組は、識別情報「111」、暗号化アプリ111e及び復号検証値B(645b)を含む。第三組は、識別情報「112」、暗号化アプリ112e及び復号検証値C(645c)を含む。第四組は、識別情報「113」、暗号化アプリ113e及び復号検証値D(645d)を含む。第五組は、識別情報「114」、暗号化アプリ114e及び復号検証値E(645e)を含む。
第二復号部分処理データ642及び第三復号部分処理データ643についても、第一復号部分処理データ641と同様の構成を有している。
(証明書生成部605)
証明書生成部605は、検証基データ生成部609から署名対象とするデータを受け取る。データを受け取ると、証明書生成部605は、署名私有鍵保持部606から署名私有鍵Prk(632)を読み出す。
次に、証明書生成部605は、署名生成アルゴリズムSignによるデジタル署名により、読み出した署名私有鍵Prk(632)を用いて、受け取ったデータに対する署名データを生成し、生成した署名データを検証基データ生成部609へ出力する。
ここで、署名生成アルゴリズムSignについては、上述した通りである。
(分散鍵生成部610)
分散鍵生成部610は、以下に示すようにして、暗復号鍵保持部607により保持されている暗復号鍵d(631)を分解し、複数個の分散鍵を生成する。
分散鍵を生成する方法の一例として、分散鍵生成部610は、生成された全ての分散鍵を加算すると、元の暗復号鍵d(631)が生成できるように、複数個の分散鍵を生成する。
例えば、暗復号鍵d(631)を、5個の分散鍵に分解する場合、d=d1+d2+d3+d4+d5となるように分散鍵d1、d2、・・・、d5を生成する。
この場合には、一例として、分散鍵生成部610は、乱数r1を生成して、分散鍵d1とし、乱数r2を生成して、分散鍵d2とし、乱数r3を生成して、分散鍵d3とし、乱数r4を生成して、分散鍵d4とする。
d1=r1
d2=r2
d3=r3
d4=r4
次に、分散鍵生成部610は、d5を、d5=d−(d1+d2+d3+d4)により、算出する。
このようにして、暗復号鍵dから、分散鍵d1、d2、d3、d4及びd5を生成するので、d=d1+d2+d3+d4+d5を満たすこととなる。
また、分散鍵生成部610は、暗復号鍵保持部607により保持されている暗復号鍵d(631)を秘密情報とし、暗復号鍵d(631)から秘密分散法を用いて生成した複数個の分散情報をそれぞれ分散鍵としてもよい。秘密分散法は、非特許文献1に記載されている。
一例として、図7に示すように、分散鍵生成部610は、ランダムに整数a1 、a2 、・・・、an-1 を選択し、図7の式6に示すように、(n−1)次多項式を設定する。
式6において、dは、定数項であり、dは、暗復号鍵である。整数a1 、a2 、・・・、an-1 は、それぞれ、次数が1以上の項の係数である。分散鍵生成部610は、図7の式6に示す(n−1)次多項式を用いて、式1〜式5に示すように、アプリ毎に、分散鍵dj=f(j)(j=1、2、・・・、n)を生成する。
次に、分散鍵生成部610は、生成した複数個の分散鍵d1、d2、・・・、d5を、制御部603、送信部602、通信部230及びネットワーク20を介して、機器100の検知モジュール群130へ送信する。
(3)通信部230
通信部230は、ネットワーク20を介して、機器100と通信を行う。通信部230は、機器100から受信した情報に応じて、管理装置200内部の各部に対して当該受信した情報を出力する。また、管理装置200内部の各部から受け取った指示や情報を機器100に送信する。具体的には、ソフトウェア配布部220から受け取った指示や通知などを機器100に送信したり、機器100から受け取った改ざん検出の検出結果などの情報を判断部210に送信したりする。
なお、通信部230は、機器100と管理装置200との間の通信においては、データを暗号化して通信するセキュリティの確保された通信路を用いるとしてもよい。
2.3 機器100の構成
機器100は、図2に示すように、内部にアプリ110、111、112、113、114、保護制御モジュール120及び検知モジュール群130などのコンピュータプログラムを記憶しており、機器100においては、これらのコンピュータプログラムが動作する。
(1)機器100のハードウェア構成
機器100は、図8に示すように、CPU171、EEPROM(Electrically Erasable and Programmable Read Only Memory)172、RAM173、NIC174、バス175及びその他のデバイス等を含んで構成されている。CPU171、EEPROM172、RAM173及びNIC174は、バス175を介して、相互に通信可能に接続されている。
EEPROM172は、不揮発性の半導体メモリであり、ブートローダ190、保護制御モジュール120、検知モジュール131、132、・・・、135、アプリ110、111、・・・、114及びOS(Operating System)180などのコンピュータプログラムを格納するための領域を備えている。EEPROM172に格納されているコンピュータプログラムがRAM173にロードされ、RAM173にロードされたコンピュータプログラムをCPU171が実行することにより、各コンピュータプログラムが有する機能が実現される。
RAM173は、揮発性の半導体メモリであり、上記のコンピュータプログラム及びその他のデータを記憶するための領域を備えている。RAM173には、保護制御モジュール120、検知モジュール131、132、・・・、135、アプリ110、111、・・・、114及びOS180などのコンピュータプログラムルがロードされる。また、RAM173は、CPU171のワークエリアとして用いられる。
NIC174は、ネットワーク20に接続するための拡張カードである。
(2)機器100のソフトウェア構成
次に、機器100におけるソフトウェア構成について説明する。
機器100においては、図9に示すように、ブートローダ190、保護制御モジュール120、OS180及びアプリ110、111、・・・、114が記憶されている。OS180は、検知モジュール群130を含み、検知モジュール群130は、検知モジュール131、132、133、134及び135を含む。
機器100の電源が投入されると、最初に、ブートローダ190が動作し、続いて、保護制御モジュール120がRAM173にロードされ、保護制御モジュール120が動作可能となる。続いて、OS180がRAM173にロードされ、OS180が動作する。このとき、OS180には、検知モジュール群130が含まれているので、検知モジュール群130が動作可能となる。次に、アプリ110、111、・・・、114のいずれか又は全てがRAM173にロードされ、アプリ110、111、・・・、114が実行可能となる。
(3)保護制御モジュール120
保護制御モジュール120は、攻撃者により各アプリが解析されないように、また、秘匿データが各アプリから抜き取られないように、各アプリを保護するための機能を有し、これらの機能が発揮されるように制御するためのコンピュータプログラムである。なお、秘匿データは、後述するように、各アプリによって保持されている秘密にすべきデータである。
保護制御モジュール120により、アプリを保護するための一の機能は、復号ロード機能である。復号ロード機能は、アプリを利用しないときには、当該アプリを暗号化して保存しておき、アプリを利用するときにのみ、暗号化アプリを復号して平文のアプリを生成し、生成した平文のアプリをメモリへロードする。また、別の機能は、アプリが改ざんされているか否かを判断する改ざん検出機能である。さらに、別の機能は、デバッガなどの解析ツールが動作している否かを判断する解析ツール検出機能である。
保護制御モジュール120は、これらの機能による動作を制御し、各アプリが攻撃者による解析や攻撃などがされているか否かを判断する。攻撃者による攻撃などを検出したときには、保護制御モジュール120は、攻撃が検出されたアプリの動作を停止する。また、当該アプリが利用していたメモリ、特に秘匿データが記録されたメモリ領域をクリアするなどの処理を行う。例えば、当該メモリ領域を「0」で埋めつくす。こうして、秘匿データの漏洩を防止する。
保護制御モジュール120は、複数の検知モジュール131、132、・・・、135からそれぞれ分散鍵を取得し、次に、取得した複数の前記分散鍵を統合して、暗復号鍵を復元し、前記暗復号鍵を用いて、暗号化されたアプリを復号し、暗号化されたアプリの復号が終了した後、前記暗復号鍵を消去する。
保護制御モジュール120は、図10に示すように、受信部301、送信部302、制御部303、復号ロード部304、改ざん検出部305、解析ツール検出部306、暗復号鍵復元部307、検証基データ保持部308及び検証データ生成部309を含んでいる。
また、保護制御モジュール120には、改ざん検出用証明書331が添付されている。
(改ざん検出用証明書331)
改ざん検出用証明書331は、保護制御モジュール120自体の改ざんを検出するための証明書である。改ざん検出用証明書331は、保護制御モジュール120の全体に対して、ハッシュSHA−1を施して、ハッシュ値を生成し、生成したハッシュ値に対して、管理装置200によって保持されている署名私有鍵632を用いて、署名生成アルゴリズムSignによるデジタル署名を施して、生成した署名データを含んでいる。
ここで、署名生成アルゴリズムSignについては、上述した通りである。
また、ハッシュSHA−1を用いるとしているが、これには限定されない。SHA−2、SHA−3やブロック暗号を用いたCBC−MAC(Cipher Block Chaining - Message Authentication Code)などを用いるとしてもよい。
(受信部301)
受信部301は、各検知モジュールから、分散情報や各種依頼などを受信する。
(送信部302)
送信部302は、各検知モジュール131、132、・・・、135へ、各種依頼などを送信する。
(制御部303)
制御部303は、復号ロード部304、改ざん検出部305及び解析ツール検出部306を制御して動作させ、各アプリが攻撃者により攻撃されている場合に、攻撃を検出する。
制御部303は、機器100の検知モジュール131、132、・・・、135から、それぞれ、受信部301を介して、分散鍵を取得する。
制御部303は、暗号化アプリの復号が終了した後、暗復号鍵復元部307により生成され、暗号化アプリの復号に用いられた暗復号鍵631を消去する。
制御部303は、前記復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データを検知モジュールへ出力する。一例として、制御部303は、送信部302を介して、第一中間アプリ及び検証データを、検知モジュール131へ送信し、第二中間アプリ及び検証データを、検知モジュール132へ送信し、復号アプリ及び検証データを、検知モジュール133へ送信する。
また、制御部303は、送信部302を介して、アプリの識別情報を、一例として、検知モジュール131、検知モジュール132及び検知モジュール133へ送信する。
(復号ロード部304)
復号ロード部304は、機器100内部に保持されている暗号化アプリ110e、111e、・・・、114eを実行するときに、暗復号鍵復元部307により復元された暗復号鍵631を用いて、復号アルゴリズムDにより、暗号化アプリ110e、111e、・・・、114eを復号して、平文のアプリ110、111、・・・、114を生成し、生成したアプリ110、111、・・・、114をRAM173上にロードする処理を行う。
また、例えば、アプリ110の実行中に、他のアプリ112へのコンテキストスイッチが発生したときに、暗復号鍵631を用いて、暗号化アルゴリズムEにより、RAM173上に記憶されているアプリ110に関係するデータを暗号化して暗号化データを生成し、生成した暗号化データを一時的に記憶しておき、再び、アプリ110へコンテキストスイッチしたときに、記憶している暗号化データを復号して、データを生成し、生成したデータをRAM173上に格納する処理を行う。なお、コンテキストスイッチとは、複数のモジュールが1つのCPUを共有できるように、CPUの状態(コンテキスト)を保存したり復元したりする過程のことである。
また、復号ロード部304は、暗号化されたアプリに対して、復号アルゴリズムDにより、複数の復号部分処理から構成される復号処理を施す。ここで、複数の復号部分処理から構成される復号処理については、既に、図6を用いて説明している。
なお、復号ロード部304において用いられる暗号化アルゴリズムE及び復号アルゴリズムDは、一例として、秘密鍵暗号方式のAESである。また、DESであるとしてもよい。
(改ざん検出部305)
改ざん検出部305は、各アプリが改ざんされているかどうかを確認する改ざん検出処理を実行する。改ざん検出処理は、各アプリに付加されている改ざん検出用の証明書を用いることにより、行われる。なお、MAC値を比較することにより、改ざん検出を行うとしてもよい。
(解析ツール検出部306)
解析ツール検出部306は、デバッガなどの解析ツールがインストールされたり、動作したりしたときに、それらを検出する。不正な攻撃者が各アプリを攻撃するために、解析ツールをインストールしたり、動作させることが想定されるからである。例えば、デバッガなどの解析ツールが格納されているファイル名を検索したり、デバッガが使用する特殊なレジスタが使用されているか否かを調べたり、デバッガが設定する割り込みを検出したりする方法などを用いる。
(暗復号鍵復元部307)
暗復号鍵復元部307は、図11に一例として示すように、複数の検知モジュールから受信した複数の分散鍵を統合して、各アプリを暗復号するための暗復号鍵631を復元する。
上述したように、分散鍵生成部610において、生成された全ての分散鍵を加算すると、元の暗復号鍵d(631)が生成できるように、複数個の分散鍵を生成した場合には、暗復号鍵復元部307は、全ての分散鍵を加算することにより、元の暗復号鍵631を復元する。
例えば、d=d1+d2+d3+d4+d5となるように、暗復号鍵dから複数の分散鍵d1、d2、d3、d4、d5を生成した場合、d=d1+d2+d3+d4+d5により、暗復号鍵を復元する。
秘密分散法を用いて、暗復号鍵を分解した場合には、秘密分散法による秘密情報の復元方法により、暗復号鍵を復元する。一例として、図7の式1〜式5に示すようして、分散鍵を生成した場合には、n個の分散鍵を収集すると、n−1次の多項式y=f(x)のn個の座標(αj 、f(αj ))から、多項式y=f(x)が一意に定まる。その結果、多項式の定数項dを求めることができる。
秘密分散法による秘密情報の復元に関しては非特許文献1に詳しく説明されている。
(検証基データ保持部308)
検証基データ保持部308は、管理装置200から受信した検証基データ640を保持する。検証基データ640のデータ構造については、上述した通りである。
(検証データ生成部309)
検証データ生成部309は、検証基データ保持部308に保持されている検証基データ640から、第一復号部分処理データ641を抽出し、抽出した第一復号部分処理データ641を検証データ341とする。また、検証基データ640から、第二復号部分処理データ642を抽出し、抽出した第一復号部分処理データ641を検証データ342とする。また、検証基データ640から、第三復号部分処理データ643を抽出し、抽出した第一復号部分処理データ641を検証データ343とする。
図12〜図14に、それぞれ、検証データ341、検証データ342及び検証データ343のデータ構造の一例を示す。
検証データ生成部309は、一例として、生成した検証データ341を、制御部303及び送信部302を介して、検知モジュール131へ送信する。検知モジュール131は、検証データ341を保持する。
また、検証データ生成部309は、一例として、生成した検証データ342を、制御部303及び送信部302を介して、検知モジュール132へ送信する。検知モジュール132は、検証データ342を保持する。
さらに、検証データ生成部309は、一例として、生成した検証データ343を、制御部303及び送信部302を介して、検知モジュール133へ送信する。検知モジュール133は、検証データ343を保持する。
(4)検知モジュール群130
検知モジュール群130は、図2に示すように、5個の検知モジュール131、132、133、134及び135を含んでいる。
検知モジュール131、132、133、134及び135は、それぞれ、保護制御モジュール120が改ざんされているか否かを検出する機能を持つコンピュータプログラムである。
各検知モジュールは、管理装置200から分散鍵を取得して、内部に記憶する。また、各検知モジュールは、保護制御モジュール120に対する改ざんの検出結果を、ネットワーク20を介して、管理装置200へ送信する。
検知モジュール131は、図15に示すように、受信部401、送信部402、制御部403、検証部404、検証データ保持部405及び分散鍵保持部406から構成される。
検知モジュール132、133、134、135も、検知モジュール131と同様の構成を有するので、これらについての説明を省略する。
(受信部401)
受信部401は、管理装置200から、各種指示を受信する。また、他のモジュールへ依頼した処理の結果や、他の検知モジュールによる保護制御モジュール120に対する改ざんの検出結果を受信する。
(送信部402)
送信部402は、管理装置200、保護制御モジュール120、他の検知モジュールへ、各種処理結果などのデータを送信する。
(制御部403)
制御部403は、受信部401が受信した各種指示や通知に基づいて、検証部404を制御し、保護制御モジュール120に対する検証処理を行う。
また、制御部403は、保護制御モジュール120から、受信部401を介して、当該検知モジュールに対応する復号部分処理について、当該復号部分処理からの出力データ及び当該復号部分処理について生成された検証データを受け取る。一例として、検知モジュール131の制御部403は、第一中間アプリ及び検知モジュール131に対応する復号部分処理について生成された検証データを受け取る。また、検知モジュール132の制御部403は、第二中間アプリ及び検知モジュール132に対応する復号部分処理について生成された検証データを受け取る。さらに、検知モジュール133の制御部403は、復号アプリ及び検知モジュール133に対応する復号部分処理について生成された検証データを受け取る。
次に、制御部403は、当該検知モジュールに対応する復号部分処理について、受け取った出力データ及び検証データを検証部404へ出力する。一例として、検知モジュール131の制御部403は、第一中間アプリ及び検知モジュール131に対応する復号部分処理について生成された検証データを検証部404へ出力する。また、検知モジュール132の制御部403は、第二中間アプリ及び検知モジュール132に対応する復号部分処理について生成された検証データを検証部404へ出力する。さらに、検知モジュール133の制御部403は、復号アプリ及び検知モジュール133に対応する復号部分処理について生成された検証データを検証部404へ出力する。
(検証部404)
検証部404は、保護制御モジュール120が正常に動作しているか否かの検証を行う。検証部404は、制御部403から受け取った出力データ及び検証データを用いて、検証を行い、検証に失敗した場合に、その検証結果を出力する。
以下に詳細に説明する。
(a)検証部404は、アプリ110、111、・・・、114のいずれかが実行されている場合に、検証データ保持部405に保持されている検証データ341を用いて、保護制御モジュール120に対する検証を行う。
検証部404は、検証データに含まれている入力データ及び受け取った出力データの両方に、検証基データ生成部609により用いられる一方向性の前記変換と同一の変換を施して、第二検証値を生成し、検証データに含まれる復号検証値と、生成した前記第二検証値とが一致するか否かを判断することにより、検証を行い、一致しない場合に、検証に失敗したとみなして、検証結果を出力する。
ここでは、検証部404は、検知モジュール131を構成する要素であるとして説明する。また、アプリ110が実行されているものとする。
検証部404は、保護制御モジュール120から、受信部401、制御部403を介して、アプリ110の識別情報、アプリ110の第一中間アプリ及び検証データ341を受け取る。
次に、検証部404は、受け取った検証データ341から、受け取った識別情報に対応する暗号化アプリを抽出し、抽出した暗号化アプリと受け取った第一中間アプリとをこの順序で結合して結合体を生成し、生成した結合体にハッシュHashを施して、ハッシュ値を算出する。
次に、検証部404は、検証データ341から、受け取った識別情報に対応する復号検証値を抽出し、抽出した復号検証値と算出したハッシュ値とが一致するか否かを判断する。
抽出した復号検証値と算出したハッシュ値とが一致しない場合には、検証は失敗である。
抽出した復号検証値と算出したハッシュ値とが一致する場合に、受け取った検証データ341から、復号処理証明書を抽出し、受け取った検証データ341から、受け取った識別情報に対応する復号検証値以外の全ての復号検証値B、C、D、Eを抽出し、算出したハッシュ値と、抽出した全ての復号検証値B、C、D、Eとを結合して結合体を生成し、署名公開鍵Pbkを用いて、生成した結合体と抽出した復号処理証明書とに対して、署名検証アルゴリズムVrfyを施す。
検出結果=Vrfy(Pbk、復号処理証明書、(ハッシュ値||B||C||D||E))
ここで、署名検証アルゴリズムVrfyは、署名生成アルゴリズムSignに対応する署名検証アルゴリズムであり、例えば、RSA署名、DSA(Digital Signature Algorithm)や楕円曲線DSAなどの公開鍵暗号をベースとした署名方式のアルゴリズムである。
また、署名公開鍵Pbkは、署名私有鍵Prk(632)に対応し、管理装置200に割り当てられた公開鍵暗号方式の公開鍵である。
また、Vrfy(x、y、z)は、公開鍵xを用いて、署名データy及びデータzに対して、署名検証アルゴリズムVrfyを施して得られた検出結果を示す。検出結果は、成功及び失敗の何れか一方を示す。
復号検証値による検証及び復号処理証明書による検証の両方に成功した場合に、検証データを用いた検証に成功したものとする。また、復号検証値による検証及び復号処理証明書による検証のいずれか一方に、失敗した場合に、検証データを用いた検証に失敗したものとする。
なお、検証部404が検知モジュール132を構成する要素である場合には、検証部404は、保護制御モジュール120から、アプリ110の識別情報、アプリ110の第二中間アプリ及び検証データ342を受け取る。次に、受け取った検証データ342から、受け取った識別情報に対応する第一中間アプリを抽出し、抽出した第一中間アプリと受け取った第二中間アプリとをこの順序で結合して結合体を生成し、生成した結合体にハッシュHashを施して、ハッシュ値を算出する。次に、検証データ342から、受け取った識別情報に対応する復号検証値を抽出し、抽出した復号検証値と算出したハッシュ値とが一致するか否かを判断する。また、受け取った検証データ342から、復号処理証明書を抽出し、受け取った検証データ342から、受け取った識別情報に対応する復号検証値以外の全ての復号検証値G、H、I、Jを抽出し、算出したハッシュ値と、抽出した全ての復号検証値G、H、I、Jとを結合して結合体を生成し、署名公開鍵Pbkを用いて、生成した結合体と抽出した復号処理証明書とに対して、署名検証アルゴリズムVrfyを施す。
また、検証部404が検知モジュール133を構成する要素である場合には、検証部404は、保護制御モジュール120から、アプリ110の識別情報、アプリ110の復号アプリ及び検証データ343を受け取る。次に、受け取った検証データ343から、受け取った識別情報に対応する第二中間アプリを抽出し、抽出した第二中間アプリと受け取った復号アプリとをこの順序で結合して結合体を生成し、生成した結合体にハッシュHashを施して、ハッシュ値を算出する。次に、検証データ343から、受け取った識別情報に対応する復号検証値を抽出し、抽出した復号検証値と算出したハッシュ値とが一致するか否かを判断する。また、受け取った検証データ343から、復号処理証明書を抽出し、受け取った検証データ343から、受け取った識別情報に対応する復号検証値以外の全ての復号検証値L、M、N、Oを抽出し、算出したハッシュ値と、抽出した全ての復号検証値L、M、N、Oとを結合して結合体を生成し、署名公開鍵Pbkを用いて、生成した結合体と抽出した復号処理証明書とに対して、署名検証アルゴリズムVrfyを施す。
また、アプリ111、112、・・・、114を実行する場合においても、上記と同様である。
(b)また、検証部404は、アプリ110、111、・・・、114のいずれかが実行されている場合に、以下に示すようにして、復号部分処理を識別する識別子を用いて、検証を行う。
検証部404は、他のアプリから受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報の重複性、並びに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報と、複数の前記復号部分処理をそれぞれ識別する識別情報との網羅性について検証を行う。検証部404は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報に重複がある場合、又は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報が、複数の復号部分処理を識別する全ての識別情報を網羅していない場合に、検証に失敗した旨を示す検証結果を出力する。
ここでは、検証部404は、検知モジュール131を構成する要素であるとして説明する。
検証部404は、検知モジュール132及び133から、それぞれ、復号部分処理を識別する識別子を受信する。
次に、検証部404は、自身が検証に用いた復号部分処理を識別する識別子と、他の複数の検知モジュールからそれぞれ受信した複数の識別子とを用いて、全ての復号部分処理に対応する検証が何れかの検知モジュールによりなされるか否かを検証する。
例えば、検証部404が検証に用いた復号部分処理を識別する識別子が、図6に示す第一復号部分処理651を識別するものであり、他の検知モジュールから2個の識別子を受信し、それぞれの識別子が、図6に示す第二復号部分処理652及び第三復号部分処理653を識別するものである場合に、全ての復号部分処理に対応する検証がなされたと判断する。
また、例えば、検証部404は、自身が検証に用いた復号部分処理を識別する識別子及び受信した複数の識別子のうちに、一致するものが存在する場合に、全ての復号部分処理に対応する検証がなされていないと判断する。
また、例えば、検証部404は、検証部404自身が検証に用いた復号部分処理を識別する識別子及び受信した複数の識別子のうち、図6に示す各復号部分処理を識別する識別子が存在しなければ、全ての復号部分処理に対応する検証がなされていないと判断する。
全ての復号部分処理に対応する検証がなされた場合に、復号部分処理の識別子による検証に成功したものとし、全ての復号部分処理に対応する検証がなされていない場合に、復号部分処理の識別子による検証に失敗したものとする。
(c)さらに、検証部404は、アプリ110、111、・・・、114のいずれも実行されていない場合に、以下に示すようにして、保護制御モジュール120に付加されている改ざん検出用証明書331を用いて改ざん検出処理を行う。
検証部404は、保護制御モジュール120の全体に対して、ハッシュSHA−1を施して、ハッシュ値を生成し、署名公開鍵Pbkを用いて、生成したハッシュ値及び改ざん検出用証明書331に対して、署名検証アルゴリズムVrfyによるデジタル署名検証を施す。
ここで、予め計算されたメッセージ認証コード(Message Authentication Code)(以下、「MAC値」という。)を用いてもよい。MAC値を用いる場合、検証部404が保持する検証鍵を用いてMAC値を生成し、計算されたMAC値と管理装置200から予め受信し、保持していたMAC値とを比較することにより改ざん検出を行う。
(検証データ保持部405)
検証データ保持部405は、保護制御モジュール120の復号ロード部304が正常に動作するか否かを検証するための検証データ341を保持する。検証データ341は、保護制御モジュール120から送信されたものである。
なお、検知モジュール132の検証データ保持部405は、検証データ342を保持する。また、検知モジュール133の検証データ保持部405は、検証データ343を保持する。
(5)アプリ110、111、・・・、114
アプリ110、111、・・・、114は、それぞれ、機器100を使用する利用者に、様々な機能を提供するためのコンピュータプログラムである。
例えば、アプリ110は、ネットワーク20を介して、コンテンツ配信サーバ装置から、音楽コンテンツや映像コンテンツを購入し、購入したコンテンツを再生するためのコンピュータプログラムである。また、アプリ111は、金融機関のサーバ装置にアクセスし、残高確認や振り込みなどのネットバンキングを利用するためのコンピュータプログラムである。
各アプリは、コンテンツ配信サーバ装置や金融機関のサーバ装置との間で、相手の装置が正当かどうかの認証を行うための認証鍵、自身が確かに本人であることを証明するためのパスワードなど、他人に知られてはならない秘匿データを保持している。秘匿データは、悪意のある第三者(以下、「攻撃者」という。)によりアプリから抜き取られることがないようにするため、また、抜き取られた秘匿データが不正に利用されないようにするために、保護される必要がある。
2.4 検知システム10の動作
(1)全体の動作概要
検知システム10全体の概要の動作について、図16に示すフローチャートを用いて、説明する。
検知システム10の動作においては、図16に示すように、機器100が工場で製造される際に、初期設定処理として、保護制御モジュール120、検知モジュール群130、アプリ110、111、・・・、その他のコンピュータプログラムが機器100にインストールされる。また、保護制御モジュール120内へ検証基データ640が埋め込まれる(ステップS100)。
その後、機器100が工場から出荷され、利用者の利用に供される。
利用者により機器100が利用される際には、機器100内部では、検知処理として、保護制御モジュール120が各アプリを攻撃者による攻撃から保護し、各アプリを実行する。これと同時に、各検知モジュールは、保護制御モジュール120が攻撃されていないかを検証する。機器100内部に記憶されているコンピュータプログラム(保護制御モジュール120及び検知モジュール群130)が攻撃され改ざんされた場合には、改ざんされていない検知モジュールは、これらのコンピュータプログラムが改ざんされた旨を管理装置200に通知する。また、機器100は、これらのコンピュータプログラムが改ざんされた旨を、当該機器100が有する表示部に表示してもよい(ステップS200)。
(2)初期設定処理の動作
次に、初期設定処理について、図17に示すシーケンス図を用いて、説明する。
ここでは、検知モジュール131、132、133、134、135の各々が個別に行う処理を、検知モジュール群130が行うものとして、まとめて記載している。
工場において、機器100を製造する際に、管理装置200のソフトウェア配布部220の分散鍵生成部610は、暗復号鍵保持部607により保持されている暗復号鍵631を分解して複数の分散鍵を生成し、複数の分散鍵を、ソフトウェア保持部608に保持されている検知モジュール131、132、・・・、135に書き込む(ステップS1000)。
次に、制御部603は、送信部602、通信部230を介して、保護制御モジュール120、検知モジュール群130、アプリ110、111、・・・、114及びその他の機器100の動作に必要なコンピュータプログラムを、機器100に送信する。これらのコンピュータプログラムには、これらのコンピュータプログラムの改ざんを検証するための証明書(改ざん検出用証明書)が付加されている。機器100は、それぞれ、証明書が付加された保護制御モジュール120、検知モジュール群130、アプリ110、111、・・・、114及びその他のコンピュータプログラムを受信する(ステップS1001)。
機器100のEEPROM172に、それぞれ証明書が付加された保護制御モジュール120、検知モジュール群130、アプリ110、111、・・・、114及びその他のコンピュータプログラムがインストールされる(ステップS1002)。
これらのコンピュータプログラムのインストールが終わると、機器100の初期設定を行うコンピュータプログラムや、機器100正常に動作するかをテストするためのコンピュータプログラムなどを実行し、機器100の初期化処理を行う。また、保護制御モジュール120に対して、初期化指示を行う(ステップS1003)。
保護制御モジュール120は、初期化指示を受け取ると、管理装置200に対して、検証基データ640の送付を依頼する(ステップS1004)。
管理装置200は、保護制御モジュール120から検証基データ640の送付の依頼を受信すると、検証基データ640の生成処理を実行する(ステップS1005)。
検証基データ640の生成処理が完了すると、管理装置200は、検証基データ640を保護制御モジュール120へ送信する(ステップS1006)。保護制御モジュール120は、管理装置200から検証基データ640を受信し、受信した検証基データ640検証基データ保持部308へ記憶する(ステップS1007)。
(3)検証基データ640の生成の動作
検証基データ640の生成の動作について、図18に示すフローチャートを用いて説明する。
検証基データ生成部609は、ソフトウェア保持部608から、アプリ110、111、・・・、114を読み出す。次に、検証基データ生成部609は、ソフトウェア保持部608に記憶されている保護制御モジュール120に含まれている復号ロード部304を実行可能状態にし、復号ロード部304は、暗復号鍵631を用いて、暗号化アルゴリズムEにより、アプリ110、111、・・・、114を暗号化する(ステップS1101)。
復号ロード部304は、復号アルゴリズムDにより、暗号化アプリ110e、111e、・・・、114eを復号し、各暗号化アプリについて、各復号部分処理の出力データである第一中間アプリ、第二中間アプリ及び復号アプリを出力し、検証基データ生成部609は、各暗号化アプリについて、暗号化アプリ、第一中間アプリ、第二中間アプリ及び復号アプリを取得する(ステップS1102)。
各暗号化アプリについて、検証基データ生成部609は、証明書生成部605に対して、暗号化アプリ及び第一中間アプリの組、第一中間アプリ及び第二中間アプリの組、並びに、第二中間アプリ及び復号アプリの組に対し、復号検証値を生成するように制御し、複数の復号検証値に対して、署名私有鍵保持部606に保持されている署名私有鍵632を用いて、復号処理証明書を生成する(ステップS1203)。
最後に、検証基データ生成部609は、第一復号部分処理データ641、第二復号部分処理データ642及び第三復号部分処理データ643を含む検証基データ640を生成する(ステップS1104)。
(4)検知処理の動作
ここでは、図16のステップS200に示す検知処理の詳細について、図19〜図21に示すシーケンス図を用いて、説明する。
機器100は、初期化処理を終えると、工場から出荷され、利用者の元へ送られる。利用者が機器100を使用し、各アプリを利用しているときには、機器100内部では、保護制御モジュール120が復号ロード機能、改ざん検出機能及び解析ツール検出機能などの機能を発揮するように制御し、各アプリを攻撃者による攻撃から保護する。
ここでは、アプリ110を実行する際に、保護制御モジュール120に対する検証を行う場合を例として説明する。
なお、他のアプリ111、112、113、114を実行する際に、保護制御モジュール120に対する検証を行う場合も、アプリ110を実行する場合と同様の動作であるので、説明を省略する。
また、アプリの実行以外の場合においては、保護制御モジュール120に付加されている改ざん検出用証明書を用いて、保護制御モジュール120に対する改ざん検出処理を行う。この場合に、予め計算されたMAC値を用いるとしてもよい。
保護制御モジュール120は、アプリ110を実行するコマンドを受信すると(ステップS2000)、各検知モジュールに対する分散鍵の送信依頼を生成し(ステップS2001)、各検知モジュールに対して、生成した送信依頼を送信する(ステップS2002)。
図19においては、検知モジュール131、132、133に対して、送信依頼を送信しているが、検知モジュール134、135に対しても、同様に、分散鍵の送信依頼を送信する。
各検知モジュールは、保護制御モジュール120から送信依頼を受信し(ステップS2002)、保持している分散鍵を読み出し(ステップS2003)、読み出した分散鍵を保護制御モジュール120へ送信する(ステップS2004)。
保護制御モジュール120は、複数の分散鍵から暗復号鍵を復元する(ステップS2005)。
保護制御モジュール120は、暗号化アプリ110eを復号ロード部304により復号し、アプリ110を実行する(ステップS2006)。
保護制御モジュール120の制御部303は、アプリの復号が完了した後、復元した暗復号鍵を消去する(ステップS2007)。
次に、保護制御モジュール120は、各復号部分処理について、検証基データ保持部308に保持されている検証基データ640から検証データを生成する(ステップS2008)。
保護制御モジュール120の制御部303は、送信部302を介して、アプリの識別情報、第一中間アプリ及び検証データを、検知モジュール131へ送信し(ステップS2009a)、アプリの識別情報、第二中間アプリ及び検証データを、検知モジュール132へ送信し(ステップS2009b)、アプリの識別情報、復号アプリ及び検証データを、検知モジュール133へ送信する(ステップS2009c)。
各検知モジュールは、検証データを用いて、復号部分処理の入出力対応が正しいか否かを検証する。具体的には、各検知モジュールは、検証データ内のデータと、受信した中間アプリ又は復号アプリから復号検証値を生成し、生成した復号検証値と検証データ内の復号検証値と比較し、両者が一致するか判断する。さらに、復号処理証明書の署名検証を行う。(ステップS2010a、S2010b及びS2010c)。
各検知モジュールは、検証データを用いた検証に失敗した場合、つまり、復号検証値が一致しない場合、又は、復号処理証明書の署名検証に失敗した場合には、保護制御モジュール120が改ざんされていると判定し(ステップS2011a、S2011b又はS2011cで「Y」)、判断部210へ検出結果を送信する(ステップS2012a、S2012b又はS2012c)。各検知モジュールは、検証値が一致し、かつ、復号処理証明書の署名検証に成功した場合には、保護制御モジュール120が改ざんされていないと判定し(ステップS2011a、S2011b又はS2011cで「N」)、検証データの復号部分処理を識別する識別子を他の検知モジュールへ送信する(ステップS2013a、S2013b又はS2013c)。具体的には、検知モジュール131は、第一復号部分処理を検証した旨の通知や第一復号部分処理を識別する識別子を送信する。そして、各検知モジュールは、各復号部分処理を識別する識別子を用いて、保護制御モジュール120の全ての復号部分処理が検証されたか否かを確認する(ステップS2014a、S2014b又はS2014c)。
全ての復号部分処理が検証されていない場合、または、複数の復号部分処理が1個の検知モジュールに送信されていた場合には、保護制御モジュール120が不正動作を行ったものとし、保護制御モジュール120が改ざんされていると判定し(ステップS2014a、S2014b又はS2014cで「Y」)、判断部210へ検出結果を送信する(ステップS2015a、S2015b又はS2015c)。
全ての復号部分処理が検証されている場合(ステップS2014a、S2014b又はS2014cで「N」)、何もしない。
保護制御モジュール120は、OS180から、アプリが終了したことを示す終了通知を受け取り(ステップS2016)、終了通知を各検知モジュールに通知する(ステップS2017)。
各検知モジュールは、保護制御モジュール120からアプリが終了したことを示す終了通知を受信後、又は、アプリが動作していない場合において、改ざん検出用証明書331を用いて、保護制御モジュール120の改ざん検出を行う(ステップS2018a、S2018b又はS2018c)。ここで、各検知モジュールの検証部404は、検証部404が保持する検証鍵を使用して保護制御モジュール120のMAC値を計算し、計算したMAC値と保持しているMAC値とを比較し、MAC値が一致すれば、保護制御モジュール120は改ざんされていないと判定し、MAC値が一致しなければ、保護制御モジュール120は改ざんされていると判定してもよい。
保護制御モジュール120が改ざんされていると判定する場合(S2019a、S2019b又はS2019cで「Y」)、各検知モジュールは、検出結果を、判断部210へ通知する(S2020a、S2020b又はS2020c)。
保護制御モジュール120が改ざんされていないと判定する場合(S2019a、S2019b又はS2019cで「N」)、何もしない。
2.5 検知システム10の効果
検知システム10では、アプリの実行中において(図19のステップS2000からS2015)、複数の分散鍵から暗復号鍵を復元して(ステップS2005)から、暗復号鍵を消去する(ステップS2007)までの期間においては、保護制御モジュール120は、アプリの暗復号鍵を保持している。
しかし、当該アプリの実行中においては、保護制御モジュールが暗復号鍵を保持しているのは、暗復号鍵の復元(ステップS2005)から、暗復号鍵の消去(ステップS2007)までの期間内に限られており、改ざんされた不正な検知モジュールが、保護制御モジュール120から暗復号鍵を不正に取得する可能性を低くすることができる。
アプリの実行が終了した後、つまり、アプリが実行されていない場合には(図19のステップS2015以降)、保護制御モジュール120は、アプリの暗復号鍵を保持していない。このため、検知モジュールが、改ざん検出用証明書を用いて、保護制御モジュール120の改ざん検出を行うとしても、不正な検知モジュールは、暗復号鍵を取得することができず、保護制御モジュール120の暗復号鍵が漏洩することがないので、検知システム10の安全性を高めることができる。
3.実施の形態3
ここでは、本発明に係る実施の形態3としての検知システム10a(図示していない)について説明する。
3.1 概要
検知システム10では、検知モジュールに分散鍵を書き込み、アプリを復号して実行する場合において、保護制御モジュールは、複数の検知モジュールから分散鍵を収集し、収集した分散鍵を用いて、一時的に暗復号鍵を復元している。この場合に、不正な検知モジュールによる暗復号鍵の不正な取得を防ぐために、アプリ復号中には、検知モジュールによる改ざん検出用証明書を用いた改ざん検出やMAC値を用いた改ざん検出をさせていない。
これに対して、検知システム10aにおいては、保護制御モジュールが暗復号鍵を復元することなく、検知モジュールは、アプリの復号の一部分を実行する。
これにより、アプリ復号時において、検知モジュールにより、改ざん検出用証明書を用いた改ざん検出やMAC値を用いた改ざん検出を行っても、不正な検知モジュールに暗復号鍵を取得されることはない。
検知システム10aでは、アプリの暗復号には公開鍵暗号方式のRSA暗号を用いる。RSA暗号に関しては非特許文献1に記載されているので、ここでの説明は省略する。
また、検知システム10aでは、平文のアプリをMと表現する。RSA暗号方式による公開鍵eを用いた暗号化を、M^eと表現し、暗号化アプリをCと表現する。従って、C=M^eである。また、RSA暗号方式による私有鍵dを用いた復号を、C^dと表現する。従って、M=C^dである。なお、a^bは、aをb乗する演算を示す。
3.2 検知システム10aの構成
検知システム10aは、検知システム10と同様の構成を有している。ここでは、検知システム10との相違点を中心として、説明する。
管理装置200のソフトウェア配布部220のソフトウェア保持部608は、保護制御モジュール120に代えて、保護制御モジュール120aを記憶しており、検知モジュール群130に代えて、検知モジュール群130aを記憶している。検知モジュール群130aは、検知モジュール131a、132a、133a、134a及び135aを含んでいる。
また、機器100には、保護制御モジュール120及び検知モジュール群130に代えて、保護制御モジュール120a及び検知モジュール群130aがインストールされている。
(1)管理装置200のソフトウェア配布部220
管理装置200のソフトウェア配布部220に含まれる暗復号鍵保持部607は、暗復号鍵d(631)に代えて、私有鍵d(631a)を記憶している。
管理装置200のソフトウェア配布部220に含まれる分散鍵生成部610は、一例として図22に示すように、d=d1+d2+d3=d1+d4+d5を満たすように、私有鍵d(631a)を分解して、複数の分散鍵d1(641a)、分散鍵d2(642a)、分散鍵d3(643a)、分散鍵d4(644a)及び分散鍵d5(645a)を生成する。
具体的には、分散鍵生成部610は、乱数r1を生成し、生成した乱数r1を分散鍵d1(641a)とし、乱数r2を生成し、生成した乱数r2を分散鍵d2(642a)とし、乱数r3を生成し、生成した乱数r3を分散鍵d4(644a)とする。
d1=r1
d2=r2
d4=r3
次に、分散鍵生成部610は、分散鍵d3(643a)を、d3=d−d1−d2により算出し、分散鍵d5(645a)を、d5=d−d1−d4により算出する。
このようにして、私有鍵dから、分散鍵d1、d2、d3、d4及びd5を生成するので、d=d1+d2+d3=d1+d4+d5を満たすこととなる。
次に、分散鍵生成部610は、図22に示すように、生成した複数個の分散鍵d1(641a)、d2(642a)、・・・、d5(645a)を、制御部603、送信部602、通信部230及びネットワーク20を介して、それぞれ、機器100の検知モジュール群130aの検知モジュール131a、132a、133a、134a及び134aへ送信する。
機器100の検知モジュール群130aの検知モジュール131a、132a、133a、134a及び134aにおいては、それぞれ、分散鍵d1(641a)、d2(642a)、・・・、d5(645a)が記憶される。
(2)保護制御モジュール120a
保護制御モジュール120aは、図23に示すように、受信部301、送信部302、制御部303、復号ロード部304、改ざん検出部305、解析ツール検出部306及び検知モジュール選択部310を含んでいる。
保護制御モジュール120aには、改ざん検出用証明書331aが添付されている。改ざん検出用証明書331aは、改ざん検出用証明書331と同様に、保護制御モジュール120a自体の改ざん検出するための証明書である。
ここで、保護制御モジュール120と同様の機能を有する構成要素は、同じ符号を付しており、これらについての説明を省略する。
保護制御モジュール120aの構成と保護制御モジュール120の構成とを比較すると、保護制御モジュール120aは、暗復号鍵復元部307、検証基データ保持部308及び検証データ生成部309を含んでいない。また、保護制御モジュール120aは、保護制御モジュール120には存在しない検知モジュール選択部310を含む。
(3)検知モジュール選択部310
検知モジュール選択部310は、以下に示すようにして、アプリの復号時に、当該アプリの復号を実行させる検知モジュールを選択する。
検知モジュール選択部310は、一例として図24に示すように、アプリの復号をさせる検知モジュールの組合せを示す検知モジュールリスト351を保持している。
検知モジュールリスト351は、インデックスと検知モジュール識別子群とからなる組を複数個保持している。各組は、アプリの復号をさせる複数の検知モジュールを示している。
インデックスは、対応する検知モジュール識別子群を識別するための識別情報である。検知モジュール識別子群は、複数の検知モジュール識別子を含む。複数の検知モジュール識別子は、それぞれ、複数の検知モジュールを識別するための識別情報である。これらの複数の検知モジュールは、アプリの復号をさせる検知モジュールである。これらの複数の検知モジュールには、アプリの復号をさせるための分散鍵が記憶されている。
図24に示すように、検知モジュールリスト351は、インデックス361「1」と、検知モジュール識別子「131」、「132」及び「133」を含む検知モジュール識別子群362とからなる組を有し、インデックス363「2」と、検知モジュール識別子「131」、「134」及び「135」を含む検知モジュール識別子群364とからなる組を有する。
ここで、検知モジュール識別子「131」、「132」、「133」、「134」及び「135」により識別される検知モジュールは、それぞれ、検知モジュール131a、132a、133a、134a及び135aであるとする。
従って、検知モジュールリスト351に含まれている一つの組の検知モジュール識別子群内の複数の検知モジュール識別子により識別される複数の検知モジュールを全て用い、それぞれの検知モジュールに記憶されている分散鍵から、私有鍵を復元することができる。
例えば、インデックス361「1」に対応する検知モジュール識別子群362には、検知モジュール識別子「131」、「132」及び「133」が含まれている。検知モジュール識別子「131」、「132」及び「133」は、それぞれ、検知モジュール131a、132a及び133aを識別する。検知モジュール131a、132a及び133aには、それぞれ、図22に示すように、分散鍵d1(641a)、分散鍵d2(642a)及び分散鍵d3(643a)が記憶されている。これらの分散鍵d1(641a)、分散鍵d2(642a)及び分散鍵d3(643a)を加算することにより、私有鍵631aを算出することができる。
また、インデックス363「2」に対応する検知モジュール識別子群364についても、同様にして、検知モジュール識別子群364内の検出モジュール識別子「131」、「134」及び「135」により識別される検知モジュールに記憶されている分散鍵d1(641a)、分散鍵d4(644a)及び分散鍵d5(645a)を加算することにより、私有鍵631aを算出することができる。
ここで、検知モジュールリスト351は、図24に示すように、二組を含んでいるが、これには限定されない。検知モジュールリスト351は、さらに多くの組を含むとしてもよい。
検知モジュール選択部310は、制御部303の制御により、アプリの復号時に、検知モジュールリスト351から、ランダムに一つのインデックスを選択する。次に、選択したインデックスに対応する検知モジュール識別子群を抽出し、抽出した検知モジュール識別子群を制御部303へ出力する。
(4)検知モジュール131aの構成
検知モジュール131aは、図25に示すように、受信部401、送信部402、制御部403、検証部404、分散鍵保持部406及び復号部410から構成されている。
ここで、検知モジュール131と同様の機能を有する構成要素について、同じ符号を付しており、その説明を省略する。
検知モジュール131の構成と比較すると、検知モジュール131aは、検証データ保持部405を備えていない。また、検知モジュール131には存在しない復号部410を含む。
検知モジュール132a、133a、134a及び135aも、検知モジュール131aと同様の構成を有しているので、これらについての説明を省略する。
復号部410は、RSA暗号方式により、分散鍵保持部406により保持する分散鍵d1(641a)を用いて、暗号化アプリC(110)を復号して、復号文M1を生成する。
M1=C^d1
次に、復号部410は、復号文M1を、制御部403及び送信部402を介して、保護制御モジュール120aへ出力する。
なお、検知モジュール132aの復号部410も、同様に、RSA暗号方式により、検知モジュール132aの分散鍵保持部406により保持する分散鍵d2(642a)を用いて、暗号化アプリC(110)を復号して、復号文M2を生成する。
M2=C^d2
次に、復号部410は、復号文M1を、制御部403及び送信部402を介して、保護制御モジュール120aへ出力する。
また、検知モジュール133aの復号部410も、同様に、RSA暗号方式により、検知モジュール133aの分散鍵保持部406により保持する分散鍵d3(643a)を用いて、暗号化アプリC(110)を復号して、復号文M3を生成する。
M3=C^d3
次に、復号部410は、復号文M1を、制御部403及び送信部402を介して、保護制御モジュール120aへ出力する。
さらに、検知モジュール134aの復号部410及び検知モジュール135aの復号部410についても、同様である。
3.3 検知システム10aの動作
(1)初期設定の動作
検知システム10aにおける初期設定の動作について、図26に示すシーケンス図を用いて説明する。
工場において、機器100を製造する際に、管理装置200のソフトウェア配布部220の分散鍵生成部610は、暗復号鍵保持部607により保持されている私有鍵631aを分解して複数の分散鍵641a、642a、・・・、645aを生成し、生成した複数の分散鍵641a、642a、・・・、645aを、ソフトウェア保持部608に保持されている検知モジュール131a、132a、・・・、135aに書き込む(ステップS1100)。
次に、制御部603は、送信部602、通信部230を介して、保護制御モジュール120a、検知モジュール群130a、アプリ110a、111a、・・・、114a及びその他の機器100の動作に必要なコンピュータプログラムを、機器100に送信する。これらのコンピュータプログラムには、これらのコンピュータプログラムの改ざんを検証するための証明書(改ざん検出用証明書)が付加されている。なお、アプリ110a、111a、・・・、114aは、暗号化されている。機器100は、それぞれ、証明書が付加された保護制御モジュール120a、検知モジュール群130a、アプリ110a、111a、・・・、114a及びその他のコンピュータプログラムを受信する(ステップS1101)。
機器100のEEPROM172に、それぞれ証明書が付加された保護制御モジュール120a、検知モジュール群130a、アプリ110a、111a、・・・、114a及びその他のコンピュータプログラムがインストールされる(ステップS1102)。
これらのコンピュータプログラムのインストールが終わると、機器100の初期設定を行うコンピュータプログラムや、機器100正常に動作するかをテストするためのコンピュータプログラムなどを実行し、機器100の初期化処理を行う(ステップS1103)。
(2)検知処理の動作
検知システム10aにおける検知処理の動作について、図27に示すフローチャートを用いて説明する。
検知処理においては、保護制御モジュール検知処理(S201)とアプリ復号処理(S202)とが並列に動作する。言い換えると、同一時間帯内において、保護制御モジュール検知処理(S201)とアプリ復号処理(S202)とが動作する。
保護制御モジュール検知処理においては、保護制御モジュール120aが改ざんされているか否かの改ざん検出を行う。アプリ復号処理においては、アプリ実行時に各検知モジュールに埋め込まれている分散鍵を用いて、アプリの復号処理を行う。
それぞれの詳細については、後述する。
なお、保護制御モジュール検知処理は、アプリ復号処理が実行しているか否かに関わらず、定期的又は非定期的に実行されるものとする。
(2−1)保護制御モジュール検知処理の動作
保護制御モジュール検知処理においては、検知モジュール131a、132a、133a、134a及び135aは、改ざん検出用証明書331aを用いて、保護制御モジュール120aに対する改ざん検出を実施する。
なお、各検知モジュールは、検証部404が保持する検証鍵を使用して保護制御モジュール120aのMAC値を計算し、計算したMAC値と保持しているMAC値とを比較することにより行うとしてもよい。MAC値が一致すれば、保護制御モジュール120aは改ざんされていないと判定し、MAC値が一致しなければ、保護制御モジュール120aは改ざんされていると判定する。
保護制御モジュール検知の動作について、図28に示すシーケンス図を用いて説明する。
なお、図28においては、記載を簡略化して、検知モジュール131aが保護制御モジュール120aの改ざん検出を行っている。当然ながら、検知モジュール132a、133a、134a及び135aにおいても、同様の処理が行われる。
検知モジュール131aは、改ざん検出用証明書331aを用いて、保護制御モジュール120aに対する改ざん検出を実施する(ステップS2101)。
保護制御モジュール120aが改ざんされていると判定する場合(S2101で「改ざんされている」)、検知モジュール131aは、保護制御モジュール120aが改ざんされていることを示す改ざん検出結果を、管理装置200の判断部210へ通知する(S2102)。
保護制御モジュール120aが改ざんされていないと判定する場合(S2101で「改ざんされていない」)、検知モジュール131aは、判断部210へ通知を行わず、改ざん検出処理(ステップS2101)へ戻る。
判断部210は、検知モジュール131a、132a、133a、134a及び135aから改ざん検出結果を受信する。
(2−2)アプリの復号の動作
検知システム10aにおけるアプリの復号の動作について、図29に示すシーケンス図を用いて説明する。
保護制御モジュール120aは、アプリ110aを実行するコマンドを受信すると(ステップS2110)、検知モジュール選択部310は、どの検知モジュールに暗号化アプリCを復号させるかを選択する(ステップS2111)。ここでは、検知モジュール131a、132a、133aを選択するものとする。
次に、保護制御モジュール120aは、暗号化アプリCを読み出し(ステップS2112)、選択した検知モジュールに対して暗号化アプリCを送信する(ステップS2113)。
各検知モジュールは、暗号化アプリを受信し(ステップS2113)、保持している分散鍵を用いて、暗号化アプリを部分復号する(ステップS2114a、S2114b、S2114c)。具体的には、検知モジュール131aは、保持している分散鍵d1を用いて、暗号化アプリCを復号して復号文M1=C^d1を計算し(ステップS2114a)、検知モジュール131bは、保持している分散鍵d2を用いて、暗号化アプリCを復号して復号文M2=C^d2を計算し(ステップS2114b)、検知モジュール131cは、保持している分散鍵d3を用いて、暗号化アプリCを復号して復号文M3=C^d3を計算する(ステップS2114c)。
各検知モジュールは部分復号したアプリを保護制御モジュール120aへ送信する(ステップS2115a、S2115b、S2115c)。検知モジュール131aは、復号文M1を保護制御モジュール120aへ送信し(ステップS2115a)、検知モジュール131bは、復号文M2を保護制御モジュール120aへ送信し(ステップS2115b)、検知モジュール131cは、復号文M3を保護制御モジュール120aへ送信する(ステップS2115c)。
次に、保護制御モジュール120aは、各検知モジュールから部分復号により得られた復号文M1、M2及びM3を受信する(ステップS2115a、S2115b、S2115c)。
保護制御モジュール120aは、部分復号により得られた復号文を用いてアプリを復号し、アプリを実行する(ステップS2116)。具体的には、復号文M1と復号文M2と復号文M3とを乗じて、アプリを生成する。
M1×M2×M3
=(C^d1)×(C^d2)×(C^d3)
=C^(d1+d2+d3)
=C^d
=(M^e)^d
=M^(e×d)
=M^1=M
となり、平文のアプリMを求めることができる。
保護制御モジュール120aは、アプリの復号が完了した後、各検知モジュールにアプリ復号完了を通知する(ステップS2117)。
(2−3)保護制御モジュール検知処理とアプリ復号処理の関係
上述したように、保護制御モジュール検知処理とアプリ復号処理とは、並行して動作する。アプリ復号時以外では、保護制御モジュール120aが動作することが少ないので、保護制御モジュール検知処理の実行頻度を低くするとしてもよい。一方、アプリ復号時には、保護制御モジュールによるアプリを保護するための動作が多いので、保護制御モジュール検知処理の実行頻度を高くするとしてもよい。なお、アプリ復号時とは、図29に示すステップS2115a、S2115b、S2115cにおいて、各検知モジュールが保護制御モジュール120aへ部分復号により得られた復号文を送信したときから、ステップS2117において、保護制御モジュール120aから各検知モジュールへアプリ復号完了通知を送信するまでを言う。
3.4 検知システム10aの効果
検知システム10aにおいては、アプリの私有鍵を保護制御モジュール120a内で復元しないため、保護制御モジュール120aが改ざんされた場合であっても、アプリの私有鍵の漏洩を防止することができる。
また、アプリ復号時であるか否かに関わらず、検知モジュールは、改ざん検出用証明書を用いて、保護制御モジュール120に対する改ざん検出を行うことができる。
これにより、保護制御モジュール120aが改ざんされたとしても、直ちに検出することができ、システムの安全性を高めることができる。
4.実施の形態4
ここでは、本発明に係る実施の形態4としての検知システム10b(図示していない)について説明する。
4.1 概要
検知システム10bでは、各検知モジュールが保持する分散鍵を更新する。
検知モジュールが改ざんされた場合、検知システム10における暗復号鍵の復元や検知システム10aにおけるアプリの復号ができない恐れがある。なお、検知モジュールが改ざんされているかの検出を行う相互監視処理やどの検知モジュールが改ざんされているかのモジュール特定処理は、特許文献3に詳しく説明されているので、ここでの説明は省略する。
そこで、検知システム10bでは、各検知モジュールが保持する分散鍵を更新することにより、暗復号鍵の復元やアプリの復号ができるようにする。
4.2 検知システム10bの構成
検知システム10bは、検知システム10aと同様の構成を有している。ここでは、検知システム10aとの相違点を中心として説明する。
管理装置200のソフトウェア配布部220のソフトウェア保持部608は、検知モジュール群130aに代えて、検知モジュール群130bを記憶している。検知モジュール群130bは、検知モジュール131b、132b、133b、134b及び135bを含んでいる。
また、機器100には、検知モジュール群130aに代えて、検知モジュール群130bがインストールされている。
検知システム10bにおいては、図30に示すように、私有鍵d(631b)から生成した複数の分散鍵d1(641b)、d2(642b)、d3(643b)、d4(644b)及びd5(645b)が、それぞれ、検知モジュール群130bの検知モジュール131b、132b、133b、134b及び135bに書き込まれているとする。ここで、d=d1+d2+d3+d4+d5を満たすものとする。
(1)判断部210
判断部210は、検知モジュール群130b内の改ざんされた検知モジュールを特定する。相互監視処理や改ざんされた検知モジュールの特定に関しては、特許文献3に詳しく説明されているので、ここでの説明は省略する。
ここでは、図31に示すように、検知モジュール132bが無効化対象の検知モジュールであるとして、説明する。
判断部210は、無効化対象である検知モジュールを識別する識別子をソフトウェア配布部220へ出力する。ここでは、一例として、判断部210は、無効化対象である検知モジュール132bを識別する識別子をソフトウェア配布部220の分散鍵生成部610へ出力する。
(2)ソフトウェア配布部220
(暗復号鍵保持部607)
暗復号鍵保持部607は、検知モジュール群130bに含まれる検知モジュール131b、132b、・・・、135bについて、それぞれの検知モジュールを識別する識別子と、それぞれの検知モジュールに対して送信した分散鍵とを対応付けて記憶している。
(分散鍵生成部610)
分散鍵生成部610は、判断部210から無効化対象である検知モジュールを識別する識別子を受け取る。次に、受け取った識別子に対応する分散鍵を暗復号鍵保持部607から読み出す。ここでは、一例として、ソフトウェア配布部220は、無効化対象である検知モジュール132bに対して送信された分散鍵d2を読み出す。
次に、分散鍵生成部610は、無効化対象である検知モジュールに対して送信された分散鍵を分解して、さらに複数個の再分散鍵を生成する。ここで、生成する再分散鍵の数は、検知モジュール群130bに含まれる全ての検知モジュールから、無効化対象となった検知モジュールを除いた残りの検知モジュールの数に等しい。
一例として、分散鍵生成部610は、図32に示すように、分散鍵d2を、4個に分解して、再分散鍵d21、d23、d24、d25を生成する。このとき、d2=d21+d23+d24+d25を満たすようにする。
分散鍵d2から再分散鍵d21、d23、d24、d25を生成する方法については、私有鍵dから分散鍵d1、d2、d3、d4及びd5を生成する方法と同様である。
次に、分散鍵生成部610は、生成した複数の再分散鍵を、制御部603、送信部602、通信部230及びネットワーク20を介して、機器100において、無効化対象とならなかった検知モジュールに対して、送信する。一例として、分散鍵生成部610は、生成した再分散鍵d21、d23、d24及びd25を、それぞれ、検知モジュール131b、133b、134b及び135bに対して送信する。
(3)検知モジュール131bの構成
検知モジュール131bは、図33に示すように、受信部401、送信部402、制御部403、検証部404、分散鍵保持部406、復号部410及び分散鍵更新部420から構成されている。
ここで、検知モジュール131aと同様の機能を有する構成要素について、同じ符号を付しており、その説明を省略する。
検知モジュール131aの構成と比較すると、検知モジュール131bは、検知モジュール131aには存在しない分散鍵更新部420を含む。
検知モジュール132b、133b、134b及び135bも、検知モジュール131bと同様の構成を有しているので、これらについての説明を省略する。
分散鍵更新部420は、管理装置200から、再分散鍵を受け取り、分散鍵保持部406から分散鍵を読み出し、読み出した分散鍵に、受け取った再分散鍵を加算し、加算結果を新たな分散鍵として、分散鍵保持部406に記憶されている分散鍵に上書きする。
一例として、分散鍵更新部420は、管理装置200から、再分散鍵d21を受信し、分散鍵保持部406には、図32に示すように、分散鍵d1(641b)が記憶されているとする。分散鍵更新部420は、分散鍵保持部406から分散鍵d1(641b)を読み出し、図34に示すように、読み出した分散鍵d1(641b)に、受信した再分散鍵d21を加算して、新たな分散鍵d1+d21(641c)を生成し、生成した分散鍵d1+d21(641c)を、分散鍵保持部406に記憶されている分散鍵d1(641b)に上書きする。
検知モジュール133b、134b及び135bは、図34に示すように、検知モジュール131bと同様に、再分散鍵d23、d24及びd25を受信し、それぞれ、記憶している分散鍵d3、d4及びd5に受信した再分散鍵d23、d24及びd25を加算して、新たな分散鍵d3+d23(643c)、新たな分散鍵d4+d24(644c)及び新たな分散鍵d5+d25(645c)を生成し、生成した新たな分散鍵643c、644c及び645cを記憶する。
これにより、検知モジュール132bが無効化されたとしても、検知モジュール群130bの検知モジュール131b、133b、134b、135bが保持する分散鍵から私有鍵dが求めることができる。
4.3 検知システム10bの動作
検知システム10bにおける分散鍵の更新処理の動作について、図35に示すシーケンス図を用いて説明する。
ここでは、図31に示すように、検知モジュール132bが無効化対象の検知モジュールである。
判断部210は、無効化対象である検知モジュールを識別する識別子をソフトウェア配布部220へ出力する(ステップS3000)。
ソフトウェア配布部220の分散鍵生成部610は、受け取った識別子に対応する分散鍵を取得し(ステップS3001)、取得した分散鍵を分解して複数の再分散鍵を生成し(ステップS3002)、生成した再分散鍵を、無効化されていない各検知モジュールへ送信する(ステップS3003)。
無効化されていない各検知モジュールは、管理装置200から再分散鍵を受信し(ステップS3003)、分散鍵保持部406に記憶されている分散鍵に、受信した再分散鍵を加算して、新たな分散鍵を生成し、生成した分散鍵を、分散鍵保持部406に上書きすることにより、分散鍵を更新する(ステップS3004)。
こうして、無効化対象の検知モジュールが無効化されたとしても、検知モジュール群130bの無効化されていない検知モジュール131b、133b、134b、135bにより保持されている分散鍵から私有鍵dを求めることができる。
4.4 検知システム10bの効果
検知システム10bでは、分散鍵を記憶する検知モジュールが改ざんされ、当該検知モジュールが無効化されたとしても、無効化されていない検知モジュールに記憶されている分散鍵を更新することにより、アプリを復号するための私有鍵が復元できないという事態を防止することができる。
こうして、改ざんされた検知モジュールを無効化して、システムの安全性を高めながら、アプリを復号するための私有鍵を復元することができる。
5.その他の変形例
なお、本発明を上記実施の形態に基づいて説明しているが、本発明は、上記実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)各実施の形態において、検知処理後に検知モジュール間で相互監視処理を行うとしてもよい。なお、相互監視処理に関しては、特許文献2に詳しく説明されているので、ここでは説明を省略する。
(2)上記変形例(1)では、検知処理の結果、保護制御モジュールが正常で、かつ、相互監視の結果、不正動作を行う検知モジュールを発見した場合、保護制御モジュールが発見した検知モジュールを無効化するとしてもよい。
また、正常な検知モジュールが無効化処理を行うとしてもよい。
また、検知処理の結果、保護制御モジュールが異常で、かつ、相互監視の結果、不正動作を行う検知モジュールが発見できなかった場合、保護制御モジュールを更新するとしてもよい。
なお、検知モジュールの無効化処理や保護制御モジュールの更新処理に関しては、特許文献2に詳しく説明されているので、ここでは説明を省略する。
(3)検知システム10においては、図19のステップS2005で暗復号鍵を復元しているが、保護制御モジュール120は、さらに復元した暗復号鍵が正しいか否かを検証するとしてもよい。
この場合に、保護制御モジュール120は、初期設定処理時に、管理装置200から暗復号鍵の検証値を受信する。この検証値は、復号鍵のハッシュ値であってもよいし、復号鍵のMAC値であってもよい。保護制御モジュール120は、ステップS2005で暗復号鍵を復元後、検証値を用いて復元した暗復号鍵が正しいかどうか検証する。
これにより、復元した暗復号鍵が正しくないことを検出することができ、システムの安全性を向上することができる。
(4)検知システム10においては、図19のステップS2004で各検知モジュールから分散鍵を受信し、ステップS2005で暗復号鍵を復元しているが、保護制御モジュール120は、さらに検知モジュールから受信した分散鍵が正しいか否かを検証するとしてもよい。
この場合、保護制御モジュール120は、初期設定処理時に、管理装置200から各検知モジュールの分散鍵の検証値を受信する。この検証値は、分散鍵のハッシュ値であってもよいし、分散鍵のMAC値であってもよい。
保護制御モジュール120は、図19のステップS2004で各検知モジュールから分散鍵を受信した後、ステップS2005で暗復号鍵を復元する前に、検証値を用いて受信した分散鍵が正しいかどうか検証する。
これにより、復元した暗復号鍵が正しくないことを検出することができ、どの検知モジュールが異常な分散鍵を送信したかを特定することができる。こうして、異常な分散鍵を送信した検知モジュールは改ざんされていると判断し、改ざんされた検知モジュールを無効化することにより、システムの安全性を向上することができる。
(5)検知システム10aにおいては、図29のステップS2116でアプリを復号しているが、保護制御モジュール120aは、さらに復号したアプリが正しいかを検証するとしてもよい。
この場合に、保護制御モジュール120aは、初期設定処理時に、管理装置200からアプリの検証値を受信する。この検証値は、アプリのハッシュ値であってもよいし、アプリのMAC値であってもよい。保護制御モジュール120aは、図29のステップS2116でアプリを復号後、検証値を用いて復号したアプリが正しいかどうか検証する。
これにより、復号したアプリが正しくないことを検出することができ、システムの安全性を向上することができる。
(6)検知システム10aにおいては、図29のステップS2115a、S2115b及びS2115cで、暗号化アプリを部分復号して得られた復号文M1、M2及びM3を受信し、ステップS2116でアプリを復号しているが、保護制御モジュール120aは、さらに検知モジュールから受信した部分復号により得られた復号文が正しいかを検証するとしてもよい。
この場合、保護制御モジュール120aは、初期設定処理時に、管理装置200から部分復号により得られた復号文の検証値を受信する。この検証値は、部分復号により得られた復号文のハッシュ値であってもよいし、部分復号により得られた復号文のMAC値であってもよい。
保護制御モジュール120aは、図29のステップS2116でアプリを復号する前に、検証値を用いて検知モジュールから受信した部分復号により得られた復号文が正しいか否かを検証する。
これにより、検知モジュールから受信した部分復号により得られた復号文が正しくないことを検出することができ、どの検知モジュールが異常な復号文を送信したかを特定することができる。こうして、異常な復号文を送信した検知モジュールは改ざんされていると判断し、改ざんされた検知モジュールを無効化することで、システムの安全性を向上することができる。
(7)検知システム10においては、初期設定において、次に示すようにして、暗復号鍵を分解するとしてもよい。
分散鍵生成部610は、図36に示すように、暗復号鍵d(631)を分解して、分散鍵d1(651)、d2(652)、d3(653)、d4(654)、d5(655)及びd6(656)を生成する。
ここで、d=d1(+)d2(+)d3=d4(+)d5(+)d6を満たすものとする。このとき、(+)は、排他的論理和を表す。
暗復号鍵を復元するときには、検知モジュール選択部310に保持されている検知モジュール群を含む検知モジュールリストから、検知モジュールの組合せを選択し、選択された検知モジュールに分散鍵を送信しておく。
一例として、検知モジュール選択部310が保持する検知モジュールリスト351aを図37に示す。
保護制御モジュール120は、各検知モジュールから分散鍵を受信し、受信した複数の分散鍵を用いて、暗復号鍵を復元する。
検知モジュール選択部310が検知モジュール131、132、133を選択した場合、受信した分散鍵からd1(+)d2(+)d3を計算し、暗復号鍵dを復元する。
これにより、暗復号鍵を取得しようとする攻撃者は、暗復号鍵が復元できる組合せを知らない限り、暗復号鍵が復元できない。
さらに、攻撃者が検知モジュールをランダムに攻撃し、検知モジュール131、132、133を含む4つ以上の検知モジュールから分散鍵を取得したとしても、正しい組合せの検知モジュール(例えば、検知モジュール131、132、133)を選択しない限り、暗復号鍵を復元することはできない。
攻撃者が検知モジュール131、132、133、134から、分散鍵d1、d2、d3及びd4を取得し、d1(+)d2(+)d3(+)d4を計算しても、d≠d1(+)d2(+)d3(+)d4であり、攻撃者は、暗復号鍵dを求めることができない。
秘密分散法を用いた分解では、分散鍵d1、d2、d3、d4から暗復号dは求めることができるが、排他的論理和を用いた分解では、暗復号鍵dを求めることができない。
(8)検知システム10では、図21のステップS2016において保護制御モジュール120がアプリの終了を通知し、検知モジュールは、アプリの終了を受信後、改ざん検出用証明書による改ざん検出を行っている。
しかし、本発明はこれに限定されない。図19のステップS2007において、暗復号鍵を消去した後、保護制御モジュール120は、検知モジュールに暗復号鍵の消去を通知し、暗復号鍵の消去の通知を受け取った後で、検知モジュールは、改ざん検出用証明書による改ざん検出を行うとしてもよい。
また、保護制御モジュール120は、図19のステップS2006において、暗号化アプリの復号を完了した直後に、暗復号鍵を消去するものとし(S2007)、保護制御モジュール120は、暗号化アプリの復号が完了すると、暗号化アプリの復号の完了の通知を各検知モジュールへ送信し、各検知モジュールは、暗号化アプリの復号の完了の通知を受け取った後に、改ざん検出用証明書による改ざん検出を行うとしてもよい。
(9)検知システム10においては、図21のステップS2016において保護制御モジュール120がアプリの終了を通知し、検知モジュールは、アプリの終了の通知を受け取ると、改ざん検出用証明書による改ざん検出を行っている。
しかし、保護制御モジュール120が改ざんされている場合、保護制御モジュール120は、アプリの終了を通知しない可能性がある。
また、変形例(8)においては、保護制御モジュール120は、検知モジュールに暗復号鍵の消去を通知し、暗復号鍵の消去の通知を受け取った後で、検知モジュールは、改ざん検出用証明書による改ざん検出を行ってもよいとしている。
しかし、保護制御モジュール120が改ざんされている場合、保護制御モジュール120は、暗復号鍵の消去を通知しない可能性がある。
さらに、変形例(8)においては、保護制御モジュール120は、暗号化アプリの復号が完了すると、暗号化アプリの復号の完了の通知を各検知モジュールへ送信し、各検知モジュールは、暗号化アプリの復号の完了の通知を受け取った後に、改ざん検出用証明書による改ざん検出を行うとしてもよい。
しかし、保護制御モジュール120が改ざんされている場合、保護制御モジュール120は、暗号化アプリの復号の完了の通知しない可能性がある。
そのため、このような場合に備えて、アプリの実行の開始から、一定期間が過ぎても、上記の通知がされない場合には、検知モジュールは、保護制御モジュール120の改ざん検出を実行するとしてもよい。ここで、一定期間は、例えば、アプリの復号に要する時間であるとしてもよい。また、一定期間は、サーバから予め通知されている時間であるとしてもよい。
(10)各実施の形態及び変形例においては、各検知モジュールは、1個の分散鍵を保持しているが、これには限定されない。
第1の検知モジュールは、自身に割り当てられた分散鍵を保持するとともに、他の第2の検知モジュールに割り当てられた分散鍵を保持するとしてもよい。このとき、第2の検知モジュールが攻撃された場合、攻撃された第2の検知モジュールの分散鍵を保持している第1の検知モジュールは、攻撃された第2の検知モジュールに割り当てられた分散鍵を分解して、再分散鍵を生成し、生成した再分散鍵を他の攻撃されていない検知モジュールに送信するとしてもよい。これにより、サーバ装置を介さずに、攻撃されていない検知モジュールが保持する分散鍵の更新が可能となる。他の検知モジュールの分散鍵を保持し、分散鍵の更新を行う処理に関しては、特許文献1に詳しく説明されているので、ここでは省略する。
(11)各実施の形態及び変形例において、第1の検知モジュールが改ざんされた場合、改ざんされた第1の検知モジュールの無効化処理を実行するとしてもよい。
また、無効化処理を実行後、新たな第2の検知モジュールを機器内に追加してインストールするとしてもよい。このとき、新たな第2の検知モジュールに予め分散鍵dxを保持した状態でインストールする。ここで、無効化処理で無効化された第1の検知モジュールの分散鍵をdyとする。第2の検知モジュールは、分散鍵の差分dy−dxを他の第3の検知モジュールに送信する。第3の検知モジュールは、分散鍵の差分dy−dxを受信し、保持する分散鍵dzに差分dy−dxを加算することで、分散鍵を更新する。
これにより、暗復号鍵dの値を変更せずに、改ざんされた検知モジュールの無効化処理及び新たな検知モジュールの追加処理を実行することができる。
また、無効化された第1の検知モジュールの分散鍵が漏洩している可能性があるが、新たな検知モジュール群の分散鍵のいずれとも等しくないため、新たな検知モジュール群の分散鍵の漏洩にはつながらない。上記を担保するために、dx−dy+dzが他の検知モジュールの分散鍵と同じ値とならないにする。
(12)各実施の形態及び変形例においては、各検知モジュールは、1個の分散鍵を保持しているが、これには、限定されない。
第1の検知モジュールが、自分に割り当てられた分散鍵を保持するとともに、他の第2の検知モジュールの分散鍵を保持するとしてもよい。このとき、第2の検知モジュールが攻撃された場合、攻撃された第2の検知モジュールの分散鍵を保持している第1の検知モジュールが、攻撃された第2の検知モジュールの分散鍵をサーバ装置に送信する。サーバ装置は、分散鍵を受信し、受信した分散鍵を分解して、複数の再分散鍵を生成し、生成した複数の再分散鍵を、攻撃されていない検知モジュールへ送信する。攻撃されていない各検知モジュールは、再分散鍵を受け取り、自身の保持する分散鍵を更新する。サーバ装置が、分散鍵を受信した以降の処理は、図35のステップS3002以降の処理と同様であるので、ここでは省略する。
(13)各記実施の形態及び変形例においては、全ての検知モジュールの分散鍵が互いに等しくならないよう、分散鍵を生成するとしてもよい。これにより、それぞれの検知モジュールから分散鍵が漏洩しても、他の検知モジュールの分散鍵が漏洩しない。
これに対して、もし、二つの検知モジュールの分散鍵が同じであれば、これらのいずれかの検知モジュールの分散鍵が漏洩すると、二つの検知モジュールの両方の分散秘密の漏洩につながってしまう。
(14)検知システム10bにおいては、管理装置200は、無効化対象の検知モジュールの分散鍵を取得し、取得した分散鍵を分解して、複数の再分散鍵を生成し、生成した複数の再分散鍵を、それぞれ、無効化対象でない検知モジュールへ送信する。無効化対象でない各検知モジュールは、再分散鍵を受信し、受信した再分散鍵を用いて、当該検知モジュールが保持する分散鍵を更新している。しかし、これには、限定されない。
管理装置200は、私有鍵dから再度各検知モジュールに送信すべき分散鍵を新たに生成しなおし、新たな分散鍵を無効化対象でない各検知モジュールに送信する。無効化対象でない各検知モジュールは、受信した新たな分散鍵を分散鍵保持部406で保持する分散鍵に置き換えるとしてもよい。
(15)上記の各モジュールは、具体的には、それぞれ個別のコンピュータプログラムであってもよいし、オペレーティングシステムに組み込まれるモジュールであってもよいし、オペレーティングシステムから呼ばれるドライバであってもよいし、アプリケーションプログラムであってもよい。
(16)次のように構成してもよい。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置であるとしてもよい。前記管理装置は、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成回路と、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力回路とを備えるとしてもよい。
また、本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置を構成する集積回路であるとしてもよい。前記集積回路は、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成回路と、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力回路とを備えるとしてもよい。
さらに、本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置であるとしてもよい。前記管理装置は、複数のコンピュータ命令が組み合わされて構成されるコンピュータプログラムを記憶しているメモリ部と、前記メモリ部に記憶されている前記コンピュータプログラムから1個ずつコンピュータ命令を読み出し、解読し、その解読結果に応じて動作するプロセッサとを備えるとしてもよい。前記コンピュータプログラムは、コンピュータである前記管理装置に、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成ステップと、生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力ステップとを実行させるとしてもよい。
(17)次のように構成してもよい。
本発明の一態様は、アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールであるとしてもよい。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、各検知モジュールにより、前記分散鍵が内部に記憶される。前記保護制御モジュールは、複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得回路と、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元回路と、前記復元回路により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号回路と、前記復号回路による復号が終了した後、前記復号鍵を消去する消去回路とを備えるとしてもよい。
また、本発明の一態様は、アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールを構成する集積回路であるとしてもよい。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、各検知モジュールにより、前記分散鍵が内部に記憶される。前記集積回路は、複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得回路と、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元回路と、前記復元回路により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号回路と、前記復号回路による復号が終了した後、前記復号鍵を消去する消去回路とを備えるとしてもよい。
さらに、本発明の一態様は、アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールであるとしてもよい。前記保護制御モジュールは、複数のコンピュータ命令が組み合わされて構成されるコンピュータプログラムを記憶しているメモリ部と、前記メモリ部に記憶されている前記コンピュータプログラムから1個ずつコンピュータ命令を読み出し、解読し、その解読結果に応じて動作するプロセッサとを備える。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、各検知モジュールにより、前記分散鍵が内部に記憶される。前記コンピュータプログラムは、コンピュータである前記保護制御モジュールに、複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得ステップと、取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元ステップと、前記復元ステップにより復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号ステップと、前記復号ステップによる復号が終了した後、前記復号鍵を消去する消去ステップとを実行させるとしてもよい。
(18)次のように構成してもよい。
本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールであるとしてもよい。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力される。前記検知モジュールは、前記分散鍵を取得する取得回路と、取得した前記分散鍵を記憶する記憶回路と、前記保護制御モジュールに対して、前記分散鍵を出力する出力回路とを備えるとしてもよい。
また、本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールを構成する集積回路であるとしてもよい。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力される。前記集積回路は、前記分散鍵を取得する取得回路と、取得した前記分散鍵を記憶する記憶回路と、前記保護制御モジュールに対して、前記分散鍵を出力する出力回路とを備えるとしてもよい。
また、本発明の一態様は、アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールであるとしてもよい。前記検知モジュールは、複数のコンピュータ命令が組み合わされて構成されるコンピュータプログラムを記憶しているメモリ部と、前記メモリ部に記憶されている前記コンピュータプログラムから1個ずつコンピュータ命令を読み出し、解読し、その解読結果に応じて動作するプロセッサとを備えるとしてもよい。管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力される。前記コンピュータプログラムは、コンピュータである前記検知モジュールに、前記分散鍵を取得する取得ステップと、取得した前記分散鍵を前記メモリ部に記憶させるステップと、前記保護制御モジュールに対して、前記分散鍵を出力する出力ステップとを実行させるとしてもよい。
(19)次のように構成してもよい。
本発明の一態様は、アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置であって、前記検知モジュールのそれぞれは、アプリケーションを暗復号する暗復号鍵を分解した分散鍵を保持する分散鍵保持手段と、前記分散鍵を前記保護制御モジュールへ送信する送信手段とを備え、前記保護制御モジュールは、暗号化された前記アプリケーションの復号時に、前記検知モジュールから分散鍵を受信する受信手段と、前記分散鍵から前記暗復号鍵を復元する暗復号鍵復元手段と、前記暗復号鍵を用いて暗号化された前記アプリケーションが入力データとして入力され、前記入力データを復号し、復号結果を出力データとして出力する復号手段とを備えることを特徴とする。
この構成によれば、アプリ復号時には保護制御モジュールによる暗号化アプリの復号処理を検証するので、保護制御モジュールが保持する暗復号鍵を検知モジュールに公開することなく、保護制御モジュールが改ざんされているか否かを判定することができる。
また、アプリ復号時以外、検知モジュールが分散鍵を送信してから、暗復号鍵の消去通知を受けるまでの期間以外では、保護制御モジュールはアプリの暗復号鍵を保持しないため、検知モジュールが保護制御モジュールを改ざん検出で、保護制御モジュールが改ざんされているか否かを保護制御モジュールのデータを読み込み、改ざん検出用証明書を用いて、判定することができる。
これにより、検知モジュールが改ざんされ不正動作をしたとしても、保護制御モジュールの情報やアプリの情報が漏洩することがないので、システムの安全性を高めることができる。
また、保護制御モジュールはアプリの暗復号鍵を保持しないため、保護制御モジュールが攻撃されたとしても暗復号鍵が漏洩することがなく、保護制御モジュールの情報やアプリの情報が漏洩することがないので、システムの安全性を高めることができる。
ここで、前記保護制御モジュールは、前記出力データを、少なくともk(k≧2)個の分解データに分解する分解手段と、分解されたk個の分解データを、いずれかの検知モジュールに分配する分配手段と、前記複数の検知モジュールのそれぞれは、分配された分解データ、前記入力データと前記復号手段が正常動作を行った場合に期待される、分解データの値とに基づいて生成された検証データ、および、入力データを用いて、分配された分解データが正しいか否かを判断する検証手段を備えるとしてもよい。
これにより、アプリ復号時には保護制御モジュール120による暗号化アプリの復号処理を検証するので、保護制御モジュール120が保持する暗復号鍵を検知モジュールに公開することなく、保護制御モジュール120が改ざんされているか否かを判定することができる。
ここで、前記保護制御モジュールは、前記暗復号鍵を消去する消去手段を備え、前記検知モジュールは、前記保護制御モジュールが改ざんされているか否かを検証する改ざん検出手段を備え、前記保護制御モジュールが前記暗復号鍵復元手段で前記暗復号鍵を復元してから前記消去手段で暗復号鍵を消去が完了するまでの時間以外には、前記改ざん検出手段を実行するとしてもよい。
これにより、アプリ復号時以外、検知モジュールが分散鍵を送信してから、暗復号鍵の消去通知を受けるまでの期間以外では、保護制御モジュールはアプリの暗復号鍵を保持しないため、検知モジュールが保護制御モジュールを改ざん検出で、保護制御モジュールが改ざんされているか否かを保護制御モジュールのデータを読み込み、改ざん検出用証明書を用いて、判定することができる。
ここで、前記保護制御モジュールは、前記消去手段を実行後、前記検知モジュールに消去完了を通知する通知送信手段を備え、前記検知モジュールは、前記保護制御モジュールから暗復号鍵の消去完了の通知を受信する通知受信手段と、前記通知手段による前記通知の受信により、前記消去手段で暗復号鍵の消去が完了したと判断するとしてもよい。
また、本発明の別の態様である情報処理装置は、アプリケーションを保護する機能を有する保護制御モジュールと、複数の検知モジュールとを含む情報処理装置であって、前記検知モジュールのそれぞれは、アプリケーションを復号する復号鍵を分解した分散鍵を保持する分散鍵保持手段と、暗号化された前記アプリケーションが入力データとして入力され、前記入力データを前記分散鍵で部分復号し、復号結果を出力データとして出力する部分復号手段と、前記出力データを保護制御モジュールへ送信する送信手段とを備え、前記保護制御モジュールは、前記検知モジュールから出力データを受信する受信手段と、複数の前記出力データから復号した前記アプリケーションを計算するアプリケーション復号手段とを備えることを特徴とする。
これにより、アプリの暗復号鍵を保護制御モジュール内で復元しないため、保護制御モジュールが改ざんされた場合であっても、アプリの暗復号鍵の漏洩を防止することができる。
ここで、前記検知モジュールは、前記保護制御モジュールが改ざんされているか否かを検証する改ざん検出手段とを備えるとしてもよい。
これにより、アプリ復号時に関わらず、検知モジュールが保護制御モジュールを改ざん検出で、保護制御モジュールが改ざんされているか否かを保護制御モジュールのデータを読み込み、改ざん検出用証明書を用いて、判定することができる。さらに、保護制御モジュールが改ざんされたとしてもすぐに検出することができ、システムの安全性を高めることができる。
ここで、前記改ざん検出手段は、前記検知モジュールの前記復号手段の実行開始から前記保護制御モジュールの前記アプリケーション復号手段の実行完了まで時間は、前記保護制御モジュールの検知処理の実行頻度を高くするとしてもよい。
ここで、前記保護制御モジュールは、前記アプリケーション復号手段を実行後、前記検知モジュールに実行完了を通知する通知送信手段を備え、前記検知モジュールは、前記保護制御モジュールから前記アプリケーション復号手段の実行完了の通知を受信する通知受信手段と、前記通知手段による前記通知の受信により、前記アプリケーション復号手段の実行が完了したと判断するとしてもよい。
ここで、前記検知モジュールは、ネットワークを介して管理装置と接続し、前記管理装置から更新用の分散鍵を受信する分散鍵受信手段と、前記分散鍵受信手段で受信した分散鍵と前記分散鍵保持手段で保持している分散鍵から新しい分散鍵を生成し、前記分散鍵保持手段で保持する分散鍵を更新する更新手段とを備えるとしてもよい。
これにより、アプリの暗復号鍵を保持する検知モジュールが改ざんされたとしても、改ざんされた検知モジュール以外の検知モジュールが保持する分散鍵を更新することで、アプリの暗復号鍵が復元できないことを防止することができる。また、検知モジュールが改ざんされたとしても、アプリの暗復号ができ、改ざんされた検知モジュールを無効化することで、システムの安全性を高めることができる。
ここで、前記情報処理装置は、ネットワークを介して管理装置と接続し、前記管理装置から検知モジュールが前記管理装置から更新用の分散鍵を受信する分散鍵受信手段と、前記分散鍵受信手段で受信した分散鍵と前記分散鍵保持手段で保持している分散鍵から新しい分散鍵へ更新する更新手段とを備えることを特徴とする。
また、本発明の別の態様である管理装置は、入力された暗号化データを複数の処理工程を経て復号する復号手段を備え、各処理工程を検証する情報処理装置と接続された管理装置であって、前記複数の処理工程への入力データと前記復号手段が正常動作を行った場合に期待される各処理工程からの出力データとから、検証基データを生成する検証基データ生成手段と、生成した前記検証基データを前記情報処理装置へ送信する送信手段とを備えることを特徴とする。
ここで、前記情報処理装置の前記復号手段は、暗号化された複数のアプリケーションを復号し、前記検証基データ生成手段は、前記複数の処理工程のそれぞれに対応し、前記複数のアプリケーションのそれぞれについて、暗号化されたアプリケーションと、前記復号手段が正常動作を行った場合に期待される各処理工程の入力データと出力データとの対応関係を示す検証値と、複数の前記検証値を結合したデータから生成された結合データ検証値とを含む複数個の前記検証基データを生成するとしてもよい。
(20)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(21)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
(22)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(23)本発明の一態様は、各装置の動作を制御する制御方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(24)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明にかかる改ざん監視システムは、保護制御モジュールが、常時、復号鍵を保持することなく、暗号化されたアプリケーションプログラムを復号する時間帯においてのみ、復号鍵を保持し、復号終了後には、当該復号鍵を消去するので、保護制御モジュールから、前記復号鍵が不正に漏洩する可能性を低くすることができ、情報処理装置等の機器内部で動作するモジュール等の改ざんを監視する技術として有用である。
10、10a、10b 検知システム
10d 改ざん監視システム
100 機器
110、111、112、113、114 アプリ
120、120a、120b 保護制御モジュール
130、130a、130b 検知モジュール群
131、132、133、134、135 検知モジュール
171 CPU
172 EEPROM
173 RAM
174 NIC
180 OS
190 ブートローダ
200、200d 管理装置
210 判断部
220 ソフトウェア配布部
230 通信部
301 受信部
302 送信部
303 制御部
304 復号ロード部
305 改ざん検出部
306 解析ツール検出部
307 暗復号鍵復元部
308 検証基データ保持部
309 検証データ生成部
310 検知モジュール選択部
401 受信部
402 送信部
403 制御部
404 検証部
405 検証データ保持部
406 分散鍵保持部
410 復号部
420 分散鍵更新部
501 受信部
502 送信部
503 指示生成部
601 受信部
602 送信部
603 制御部
604 認証部
605 証明書生成部
606 署名私有鍵保持部
607 暗復号鍵保持部
608 ソフトウェア保持部
609 検証基データ生成部
610 分散鍵生成部

Claims (40)

  1. アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールと、管理装置とを含む改ざん監視システムであって、
    前記管理装置は、
    暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成手段と、
    生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力手段とを備え、
    各検知モジュールは、前記分散鍵を取得して内部に記憶し、
    前記保護制御モジュールは、
    複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得手段と、
    取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元手段と、
    前記復元手段により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号手段と、
    前記復号手段による復号が終了した後、前記復号鍵を消去する消去手段とを備え
    前記管理装置は、さらに、
    暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理を施し、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換を施して、復号検証値を生成し、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データを生成する検証データ生成手段を含み、
    前記出力手段は、さらに、前記検証データを前記保護制御モジュールへ出力し、
    前記復号手段は、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理を施し、
    前記保護制御モジュールは、さらに、前記復号手段における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データを検知モジュールへ出力する第二出力手段を含み、
    前記検知モジュールは、
    前記出力データ及び前記検証データを受け取る受信手段と、
    受け取った前記出力データ及び前記検証データを用いて、検証を行い、検証に失敗した場合に、その検証結果を出力する検証手段とを含む
    ことを特徴とする改ざん監視システム。
  2. 前記検証手段は、前記検証データに含まれている前記入力データ及び受け取った前記出力データの両方に、一方向性の前記変換と同一の変換を施して、第二検証値を生成し、前記検証データに含まれる前記復号検証値と、生成した前記第二検証値とが一致するか否かを判断することにより、前記検証を行い、一致しない場合に、検証に失敗したとみなして、前記検証結果を出力する
    ことを特徴とする請求項1に記載の改ざん監視システム。
  3. 前記保護制御モジュールは、さらに、他の一個以上のアプリケーションプログラムを保護し、
    前記管理装置は、さらに、他の前記アプリケーションプログラムについて、復号部分処理毎に復号検証値を生成し、復号部分処理毎に、前記アプリケーションプログラム及び他のアプリケーションプログラムを含む複数の前記アプリケーションプログラムについて生成された複数の前記復号検証値に対しデジタル署名を施して証明書を生成する証明書生成手段を含み、
    前記検証データ生成手段は、復号部分処理毎に生成された他の前記アプリケーションプログラムについての前記復号検証値及び復号部分処理毎に生成された前記証明書を含む前記検証データを生成し、
    前記出力手段は、前記証明書を含む前記検証データを前記保護制御モジュールへ出力し、
    前記第二出力手段は、前記証明書を含む前記検証データを前記検知モジュールへ出力し、
    前記受信手段は、前記証明書を含む前記検証データを受け取り、
    前記検証手段は、さらに、復号部分処理毎に、受け取った前記検証データに含まれる前記証明書を用いて、検証を行う
    ことを特徴とする請求項1に記載の改ざん監視システム。
  4. 前記検証手段は、前記検証データに含まれている前記入力データ及び受け取った前記出力データの両方に、一方向性の前記変換と同一の変換を施して、第二検証値を生成し、前記検証データに含まれる他の前記アプリケーションプログラムについての前記復号検証値及び生成した前記第二検証値、並びに、前記証明書を用いて、前記検証を行う
    ことを特徴とする請求項3に記載の改ざん監視システム。
  5. 複数の前記復号部分処理は、それぞれ、複数の前記検知モジュールに対応しており、
    前記第二出力手段は、各復号部分処理に対応する前記検知モジュールに対して、当該復号部分処理からの前記出力データ及び前記検証データを出力する
    ことを特徴とする請求項1に記載の改ざん監視システム。
  6. 各検知モジュールは、さらに、自身に対応する前記復号部分処理を識別する識別情報を、他の検知モジュールに対して送信する送信手段を含み、
    各検知モジュールの前記受信手段は、さらに、他の検知モジュールから、当該他の検知モジュールに対応する前記復号部分処理を識別する識別情報を受け取り、
    各検知モジュールの前記検証手段は、さらに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報の重複性、並びに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報と、複数の前記復号部分処理をそれぞれ識別する識別情報との網羅性について検証を行う
    ことを特徴とする請求項5に記載の改ざん監視システム。
  7. 各検知モジュールの前記検証手段は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報に重複があるか、又は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報が、複数の復号部分処理を識別する全ての識別情報を網羅していない場合に、検証に失敗した旨を示す検証結果を出力する
    ことを特徴とする請求項6に記載の改ざん監視システム。
  8. アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールと、管理装置とを含む改ざん監視システムであって、
    前記管理装置は、
    暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成手段と、
    生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力手段とを備え、
    各検知モジュールは、前記分散鍵を取得して内部に記憶し、
    前記保護制御モジュールは、
    複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得手段と、
    取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元手段と、
    前記復元手段により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号手段と、
    前記復号手段による復号が終了した後、前記復号鍵を消去する消去手段とを備え、
    前記保護制御モジュールは、さらに、暗号化された前記アプリケーションプログラムを前記検知モジュールに対して出力する第二出力手段を含み、
    各検知モジュールは、
    前記保護制御モジュールから、暗号化された前記アプリケーションプログラムを取得する第二取得手段と、
    記憶している前記分散鍵を用いて、暗号化された前記アプリケーションプログラムを部分復号して、部分復号文を生成する第二復号手段と、
    生成した前記部分復号文を前記保護制御モジュールへ出力する第三出力手段とを含み、
    前記取得手段は、各検知モジュールから、前記部分復号文を取得し、
    前記復号手段は、取得した複数の前記部分復号文を用いて、暗号化された前記アプリケーションプログラムを復号する
    ことを特徴とする改ざん監視システム。
  9. 前記アプリケーションプログラムは、RSA暗号方式により、暗号化され、
    前記第二復号手段は、暗号化された前記アプリケーションプログラムに対して、前記分散鍵の値によるべき乗を施して、前記部分復号文を生成し、
    前記復号手段は、複数の前記部分復号文の値を乗ずることより、暗号化された前記アプリケーションプログラムを復号する
    ことを特徴とする請求項8に記載の改ざん監視システム。
  10. 前記保護制御モジュールは、さらに、全ての前記検知モジュールから、複数の検知モジュールを選択する選択手段を含み、
    前記第二出力手段は、前記選択手段により選択された前記検知モジュールに対して、暗号化された前記アプリケーションプログラムを出力する
    ことを特徴とする請求項8に記載の改ざん監視システム。
  11. 前記保護制御モジュールには、改ざんのない前記保護制御モジュールに対してデジタル署名を施して生成された改ざん検出用証明書が付されており、
    各検知モジュールは、前記改ざん検出用証明書を用いて、前記保護制御モジュールに対する改ざんの検出を行う検証手段を含む
    ことを特徴とする請求項8に記載の改ざん監視システム。
  12. アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置であって、
    暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成手段と、
    生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力手段と
    を備え、
    前記管理装置は、さらに、
    暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理を施し、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換を施して、復号検証値を生成し、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データを生成する検証データ生成手段を含み、
    前記出力手段は、さらに、前記検証データを前記保護制御モジュールへ出力する
    ことを特徴とする管理装置。
  13. 前記保護制御モジュールは、さらに、他の一個以上のアプリケーションプログラムを保護し、
    前記管理装置は、さらに、他の前記アプリケーションプログラムについて、復号部分処理毎に復号検証値を生成し、復号部分処理毎に、前記アプリケーションプログラム及び他のアプリケーションプログラムを含む複数の前記アプリケーションプログラムについて生成された複数の前記復号検証値に対しデジタル署名を施して証明書を生成する証明書生成手段を含み、
    前記検証データ生成手段は、復号部分処理毎に生成された他の前記アプリケーションプログラムについての前記復号検証値及び復号部分処理毎に生成された前記証明書を含む前記検証データを生成し、
    前記出力手段は、前記証明書を含む前記検証データを前記保護制御モジュールへ出力する
    ことを特徴とする請求項12に記載の管理装置。
  14. アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールであって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    各検知モジュールにより、前記分散鍵が内部に記憶され、
    前記保護制御モジュールは、
    複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得手段と、
    取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元手段と、
    前記復元手段により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号手段と、
    前記復号手段による復号が終了した後、前記復号鍵を消去する消去手段と
    を備え
    前記管理装置により、さらに、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、前記検証データが前記保護制御モジュールへ出力され、
    前記復号手段は、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理を施し、
    前記保護制御モジュールは、さらに、前記復号手段における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データを検知モジュールへ出力する第二出力手段を含む
    ことを特徴とする保護制御モジュール。
  15. 前記保護制御モジュールは、さらに、他の一個以上のアプリケーションプログラムを保護し、
    前記管理装置により、さらに、他の前記アプリケーションプログラムについて、復号部分処理毎に復号検証値が生成され、復号部分処理毎に、前記アプリケーションプログラム及び他のアプリケーションプログラムを含む複数の前記アプリケーションプログラムについて生成された複数の前記復号検証値に対しデジタル署名を施して証明書が生成され、復号部分処理毎に生成された他の前記アプリケーションプログラムについての前記復号検証値及び復号部分処理毎に生成された前記証明書を含む前記検証データが生成され、前記証明書を含む前記検証データが前記保護制御モジュールへ出力され、
    前記第二出力手段は、前記証明書を含む前記検証データを前記検知モジュールへ出力する
    ことを特徴とする請求項14に記載の保護制御モジュール。
  16. 複数の前記復号部分処理は、それぞれ、複数の前記検知モジュールに対応しており、
    前記第二出力手段は、各復号部分処理に対応する前記検知モジュールに対して、当該復号部分処理からの前記出力データ及び前記検証データを出力する
    ことを特徴とする請求項14に記載の保護制御モジュール。
  17. アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールであって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    各検知モジュールにより、前記分散鍵が内部に記憶され、
    前記保護制御モジュールは、
    複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得手段と、
    取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元手段と、
    前記復元手段により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号手段と、
    前記復号手段による復号が終了した後、前記復号鍵を消去する消去手段と
    を備え、
    前記保護制御モジュールは、さらに、暗号化された前記アプリケーションプログラムを前記検知モジュールに対して出力する第二出力手段を含み、
    各検知モジュールにより、前記保護制御モジュールから、暗号化された前記アプリケーションプログラムが取得され、記憶している前記分散鍵を用いて、暗号化された前記アプリケーションプログラムを部分復号して、部分復号文が生成され、生成された前記部分復号文が前記保護制御モジュールへ出力され、
    前記取得手段は、各検知モジュールから、前記部分復号文を取得し、
    前記復号手段は、取得した複数の前記部分復号文を用いて、暗号化された前記アプリケーションプログラムを復号する
    ことを特徴とする保護制御モジュール。
  18. 前記アプリケーションプログラムは、RSA暗号方式により、暗号化され、
    前記検知モジュールにより、暗号化された前記アプリケーションプログラムに対して、前記分散鍵の値によるべき乗を施して、前記部分復号文が生成され、
    前記復号手段は、複数の前記部分復号文の値を乗ずることより、暗号化された前記アプリケーションプログラムを復号する
    ことを特徴とする請求項17に記載の保護制御モジュール。
  19. 前記保護制御モジュールは、さらに、全ての前記検知モジュールから、複数の検知モジュールを選択する選択手段を含み、
    前記第二出力手段は、前記選択手段により選択された前記検知モジュールに対して、暗号化された前記アプリケーションプログラムを出力する
    ことを特徴とする請求項17に記載の保護制御モジュール。
  20. アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールであって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    前記検知モジュールは、
    前記分散鍵を取得する取得手段と、
    取得した前記分散鍵を記憶する記憶手段と、
    前記保護制御モジュールに対して、前記分散鍵を出力する出力手段と
    を備え
    前記管理装置により、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、さらに、前記検証データが前記保護制御モジュールへ出力され、
    前記保護制御モジュールにより、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理が施され、さらに、前記復号処理における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データが検知モジュールへ出力され、
    前記検知モジュールは、さらに、
    前記出力データ及び前記検証データを受け取る受信手段と、
    受け取った前記出力データ及び前記検証データを用いて、検証を行い、検証に失敗した場合に、その検証結果を出力する検証手段とを含む
    ことを特徴とする検知モジュール。
  21. 前記検証手段は、前記検証データに含まれている前記入力データ及び受け取った前記出力データの両方に、一方向性の前記変換と同一の変換を施して、第二検証値を生成し、前記検証データに含まれる前記復号検証値と、生成した前記第二検証値とが一致するか否かを判断することにより、前記検証を行い、一致しない場合に、検証に失敗したとみなして、前記検証結果を出力する
    ことを特徴とする請求項20に記載の検知モジュール。
  22. 前記保護制御モジュールにより、さらに、他の一個以上のアプリケーションプログラムが保護され、
    前記管理装置により、さらに、他の前記アプリケーションプログラムについて、復号部分処理毎に復号検証値が生成され、復号部分処理毎に、前記アプリケーションプログラム及び他のアプリケーションプログラムを含む複数の前記アプリケーションプログラムについて生成された複数の前記復号検証値に対しデジタル署名を施して証明書が生成され、復号部分処理毎に生成された他の前記アプリケーションプログラムについての前記復号検証値及び復号部分処理毎に生成された前記証明書を含む前記検証データが生成され、前記証明書を含む前記検証データが前記保護制御モジュールへ出力され、
    前記保護制御モジュールにより、前記証明書を含む前記検証データが前記検知モジュールへ出力され、
    前記受信手段は、前記証明書を含む前記検証データを受け取り、
    前記検証手段は、さらに、復号部分処理毎に、受け取った前記検証データに含まれる前記証明書を用いて、検証を行う
    ことを特徴とする請求項20に記載の検知モジュール。
  23. 前記検証手段は、前記検証データに含まれている前記入力データ及び受け取った前記出力データの両方に、一方向性の前記変換と同一の変換を施して、第二検証値を生成し、前記検証データに含まれる他の前記アプリケーションプログラムについての前記復号検証値及び生成した前記第二検証値、並びに、前記証明書を用いて、前記検証を行う
    ことを特徴とする請求項22に記載の検知モジュール。
  24. 複数の前記復号部分処理は、それぞれ、複数の前記検知モジュールに対応しており、
    前記保護制御モジュールにより、各復号部分処理に対応する前記検知モジュールに対して、当該復号部分処理からの前記出力データ及び前記検証データが出力され、
    前記検知モジュールは、さらに、自身に対応する前記復号部分処理を識別する識別情報を、他の検知モジュールに対して送信する送信手段を含み、
    前記受信手段は、さらに、他の検知モジュールから、当該他の検知モジュールに対応する前記復号部分処理を識別する前記識別情報を受け取り、
    前記検証手段は、さらに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報の重複性、並びに、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する識別情報と、複数の前記復号部分処理をそれぞれ識別する識別情報との網羅性について検証を行う
    ことを特徴とする請求項20に記載の検知モジュール。
  25. 前記検証手段は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報に重複があるか、又は、受け取った前記識別情報及び自身に対応する前記復号部分処理を識別する前記識別情報が、複数の復号部分処理を識別する全ての識別情報を網羅していない場合に、検証に失敗した旨を示す検証結果を出力する
    ことを特徴とする請求項24に記載の検知モジュール。
  26. アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールであって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    前記検知モジュールは、
    前記分散鍵を取得する取得手段と、
    取得した前記分散鍵を記憶する記憶手段と、
    前記保護制御モジュールに対して、前記分散鍵を出力する出力手段と
    を備え、
    前記保護制御モジュールにより、さらに、暗号化された前記アプリケーションプログラムが前記検知モジュールに対して出力され、
    前記検知モジュールは、さらに、
    前記保護制御モジュールから、暗号化された前記アプリケーションプログラムを取得する第二取得手段と、
    記憶している前記分散鍵を用いて、暗号化された前記アプリケーションプログラムを部分復号して、部分復号文を生成する第二復号手段と、
    生成した前記部分復号文を前記保護制御モジュールへ出力する第三出力手段とを含む
    ことを特徴とする検知モジュール。
  27. 前記アプリケーションプログラムは、RSA暗号方式により、暗号化され、
    前記第二復号手段は、暗号化された前記アプリケーションプログラムに対して、前記分散鍵の値によるべき乗を施して、前記部分復号文を生成する
    ことを特徴とする請求項26に記載の検知モジュール。
  28. 前記保護制御モジュールには、改ざんのない前記保護制御モジュールに対してデジタル署名を施して生成された改ざん検出用証明書が付されており、
    前記検知モジュールは、さらに、前記改ざん検出用証明書を用いて、前記保護制御モジュールに対する改ざんの検出を行う検証手段を含む
    ことを特徴とする請求項26に記載の検知モジュール。
  29. アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置において用いられる制御方法であって、
    暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成ステップと、
    生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力ステップとを含み、
    前記制御方法は、さらに、
    暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理を施し、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換を施して、復号検証値を生成し、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データを生成する検証データ生成ステップを含み、
    前記出力ステップは、さらに、前記検証データを前記保護制御モジュールへ出力する
    ことを特徴とする制御方法。
  30. アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置において用いられる制御用のコンピュータプログラムを記録しているコンピュータ読取可能な記録媒体であって、
    暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成ステップと、
    生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力ステップとを
    コンピュータである前記管理装置に実行させるためのコンピュータプログラムを記録し、
    制御用の前記コンピュータプログラムは、さらに、
    暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理を施し、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換を施して、復号検証値を生成し、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データを生成する検証データ生成ステップを含み、
    前記出力ステップは、さらに、前記検証データを前記保護制御モジュールへ出力する
    ことを特徴とする記録媒体。
  31. アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置において用いられる制御用のコンピュータプログラムであって、
    暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成ステップと、
    生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力ステップとを
    コンピュータである前記管理装置に実行させ
    制御用の前記コンピュータプログラムは、さらに、
    暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理を施し、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換を施して、復号検証値を生成し、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データを生成する検証データ生成ステップを含み、
    前記出力ステップは、さらに、前記検証データを前記保護制御モジュールへ出力する
    ことを特徴とするコンピュータプログラム。
  32. アプリケーションプログラムを保護する保護制御モジュールと、前記保護制御モジュールの改ざんを監視する複数の検知モジュールとを管理する管理装置を構成する集積回路であって、
    暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵を生成する分散鍵生成手段と、
    生成した複数の前記分散鍵を、それぞれ、複数の前記検知モジュールに出力する出力手段と
    を備え
    前記集積回路は、さらに、
    暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理を施し、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換を施して、復号検証値を生成し、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データを生成する検証データ生成手段を含み、
    前記出力手段は、さらに、前記検証データを前記保護制御モジュールへ出力する
    ことを特徴とする集積回路。
  33. アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールにおいて用いられる制御方法であって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    各検知モジュールにより、前記分散鍵が内部に記憶され、
    前記制御方法は、
    複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得ステップと、
    取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元ステップと、
    前記復元ステップにより復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号ステップと、
    前記復号ステップによる復号が終了した後、前記復号鍵を消去する消去ステップとを含み、
    前記管理装置により、さらに、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、前記検証データが前記保護制御モジュールへ出力され、
    前記復号ステップは、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理を施し、
    前記保護制御モジュールにおいて用いられる前記制御方法は、さらに、前記復号ステップにおける復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データを検知モジュールへ出力する第二出力ステップを含む
    ことを特徴とする制御方法。
  34. アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールにおいて用いられる制御用のコンピュータプログラムを記録しているコンピュータ読取可能な記録媒体であって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    各検知モジュールにより、前記分散鍵が内部に記憶され、
    コンピュータである前記保護制御モジュールに、
    複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得ステップと、
    取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元ステップと、
    前記復元ステップにより復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号ステップと、
    前記復号ステップによる復号が終了した後、前記復号鍵を消去する消去ステップと
    を実行させ
    前記管理装置により、さらに、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、前記検証データが前記保護制御モジュールへ出力され、
    前記復号ステップは、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理を施し、
    前記保護制御モジュールにおいて用いられる制御用の前記コンピュータプログラムは、さらに、前記復号ステップにおける復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データを検知モジュールへ出力する第二出力ステップを含む
    ことを特徴とするコンピュータプログラムを記録している記録媒体。
  35. アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールにおいて用いられる制御用のコンピュータプログラムであって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    各検知モジュールにより、前記分散鍵が内部に記憶され、
    コンピュータである前記保護制御モジュールに、
    複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得ステップと、
    取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元ステップと、
    前記復元ステップにより復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号ステップと、
    前記復号ステップによる復号が終了した後、前記復号鍵を消去する消去ステップと
    を実行させ
    前記管理装置により、さらに、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、前記検証データが前記保護制御モジュールへ出力され、
    前記復号ステップは、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理を施し、
    前記保護制御モジュールにおいて用いられる制御用の前記コンピュータプログラムは、さらに、前記復号ステップにおける復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データを検知モジュールへ出力する第二出力ステップを含む
    ことを特徴とするコンピュータプログラム。
  36. アプリケーションプログラムを保護し、複数の検知モジュールにより改ざんを監視される保護制御モジュールを構成する集積回路であって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵を分解して、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    各検知モジュールにより、前記分散鍵が内部に記憶され、
    前記集積回路は、
    複数の前記検知モジュールからそれぞれ前記分散鍵を取得する取得手段と、
    取得した複数の前記分散鍵を統合して、前記復号鍵を復元する復元手段と、
    前記復元手段により復元された前記復号鍵を用いて、暗号化された前記アプリケーションプログラムを復号する復号手段と、
    前記復号手段による復号が終了した後、前記復号鍵を消去する消去手段と
    を備え
    前記管理装置により、さらに、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、前記検証データが前記保護制御モジュールへ出力され、
    前記復号手段は、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理を施し、
    前記保護制御モジュールを構成する前記集積回路は、さらに、前記復号手段における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データを検知モジュールへ出力する第二出力手段を含む
    ことを特徴とする集積回路。
  37. アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールにおいて用いられる方法であって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    前記方法は、
    前記分散鍵を取得する取得ステップと、
    取得した前記分散鍵を記憶させる記憶ステップと、
    前記保護制御モジュールに対して、前記分散鍵を出力する出力ステップとを含み、
    前記管理装置により、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、さらに、前記検証データが前記保護制御モジュールへ出力され、
    前記保護制御モジュールにより、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理が施され、さらに、前記復号処理における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データが検知モジュールへ出力され、
    前記検知モジュールにおいて用いられる前記方法は、さらに、
    前記出力データ及び前記検証データを受け取る受信ステップと、
    受け取った前記出力データ及び前記検証データを用いて、検証を行い、検証に失敗した場合に、その検証結果を出力する検証ステップとを含む
    ことを特徴とする方法。
  38. アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールにおいて用いられるコンピュータプログラムを記録しているコンピュータ読取可能な記録媒体であって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    コンピュータである前記検知モジュールに、
    前記分散鍵を取得する取得ステップと、
    取得した前記分散鍵を記憶させる記憶ステップと、
    前記保護制御モジュールに対して、前記分散鍵を出力する出力ステップと
    を実行させ
    前記管理装置により、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、さらに、前記検証データが前記保護制御モジュールへ出力され、
    前記保護制御モジュールにより、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理が施され、さらに、前記復号処理における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データが検知モジュールへ出力され、
    前記検知モジュールにおいて用いられる前記コンピュータプログラムは、さらに、
    前記出力データ及び前記検証データを受け取る受信ステップと、
    受け取った前記出力データ及び前記検証データを用いて、検証を行い、検証に失敗した場合に、その検証結果を出力する検証ステップとを含む
    ことを特徴とするコンピュータプログラムを記録している記録媒体。
  39. アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールにおいて用いられるコンピュータプログラムであって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    コンピュータである前記検知モジュールに、
    前記分散鍵を取得する取得ステップと、
    取得した前記分散鍵を記憶させる記憶ステップと、
    前記保護制御モジュールに対して、前記分散鍵を出力する出力ステップと
    を実行させ
    前記管理装置により、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、さらに、前記検証データが前記保護制御モジュールへ出力され、
    前記保護制御モジュールにより、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理が施され、さらに、前記復号処理における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データが検知モジュールへ出力され、
    前記検知モジュールおいて用いられる前記コンピュータプログラムは、さらに、
    前記出力データ及び前記検証データを受け取る受信ステップと、
    受け取った前記出力データ及び前記検証データを用いて、検証を行い、検証に失敗した場合に、その検証結果を出力する検証ステップとを含む
    ことを特徴とするコンピュータプログラム。
  40. アプリケーションプログラムを保護する保護制御モジュールに対して、改ざんを監視する複数の検知モジュールのうちの一の検知モジュールを構成する集積回路であって、
    管理装置により、暗号化された前記アプリケーションプログラムを復号するための復号鍵が分解され、複数の分散鍵が生成され、生成された複数の前記分散鍵が、それぞれ、複数の前記検知モジュールに出力され、
    前記集積回路は、
    前記分散鍵を取得する取得手段と、
    取得した前記分散鍵を記憶する記憶手段と、
    前記保護制御モジュールに対して、前記分散鍵を出力する出力手段と
    を備え
    前記管理装置により、暗号化された改ざんのない前記アプリケーションプログラムに対し、複数の復号部分処理から構成される復号処理が施され、復号部分処理毎に、当該復号部分処理への入力データ及び当該復号部分処理からの出力データの両方に対して、一方向性の変換が施されて、復号検証値が生成され、復号部分処理毎に前記入力データ及び前記復号検証値を含む検証データが生成され、さらに、前記検証データが前記保護制御モジュールへ出力され、
    前記保護制御モジュールにより、暗号化された前記アプリケーションプログラムに対して、複数の復号部分処理から構成される復号処理が施され、さらに、前記復号処理における復号部分処理毎に、当該復号部分処理からの出力データ及び受け取った前記検証データが検知モジュールへ出力され、
    前記集積回路は、さらに、
    前記出力データ及び前記検証データを受け取る受信手段と、
    受け取った前記出力データ及び前記検証データを用いて、検証を行い、検証に失敗した場合に、その検証結果を出力する検証手段とを含む
    ことを特徴とする集積回路。
JP2013504541A 2011-03-15 2012-03-01 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール Active JP5960678B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011056045 2011-03-15
JP2011056045 2011-03-15
PCT/JP2012/001399 WO2012124270A1 (ja) 2011-03-15 2012-03-01 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール

Publications (2)

Publication Number Publication Date
JPWO2012124270A1 JPWO2012124270A1 (ja) 2014-07-17
JP5960678B2 true JP5960678B2 (ja) 2016-08-02

Family

ID=46830363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013504541A Active JP5960678B2 (ja) 2011-03-15 2012-03-01 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール

Country Status (4)

Country Link
US (1) US9311487B2 (ja)
JP (1) JP5960678B2 (ja)
CN (1) CN102893284B (ja)
WO (1) WO2012124270A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102083757B1 (ko) 2019-05-17 2020-03-02 김성완 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312494A (zh) * 2012-03-14 2013-09-18 中国人民银行印制科学技术研究所 数据分散存储方法、数据还原方法及数据卡
US9166958B2 (en) 2012-07-17 2015-10-20 Texas Instruments Incorporated ID-based control unit-key fob pairing
US9049011B1 (en) * 2012-08-15 2015-06-02 Washington State University Secure key storage and distribution
US11100234B2 (en) * 2014-06-13 2021-08-24 Hitachi Systems, Ltd. Work recording apparatus, system, program, and method preventing confidential information leaks
GB2513260B (en) * 2014-06-27 2018-06-13 PQ Solutions Ltd System and method for quorum-based data recovery
US9639687B2 (en) * 2014-11-18 2017-05-02 Cloudfare, Inc. Multiply-encrypting data requiring multiple keys for decryption
CN106452770B (zh) * 2015-08-12 2020-10-13 深圳市腾讯计算机系统有限公司 一种数据加密方法、解密方法、装置和系统
US10686827B2 (en) 2016-04-14 2020-06-16 Sophos Limited Intermediate encryption for exposed content
US10650154B2 (en) 2016-02-12 2020-05-12 Sophos Limited Process-level control of encrypted content
US10628597B2 (en) 2016-04-14 2020-04-21 Sophos Limited Just-in-time encryption
US10681078B2 (en) 2016-06-10 2020-06-09 Sophos Limited Key throttling to mitigate unauthorized file access
US10263966B2 (en) 2016-04-14 2019-04-16 Sophos Limited Perimeter enforcement of encryption rules
US10791097B2 (en) 2016-04-14 2020-09-29 Sophos Limited Portable encryption format
US9984248B2 (en) 2016-02-12 2018-05-29 Sophos Limited Behavioral-based control of access to encrypted content by a process
CN106789080B (zh) * 2016-04-08 2020-05-15 数安时代科技股份有限公司 数字签名生成方法和装置
GB2551983B (en) 2016-06-30 2020-03-04 Sophos Ltd Perimeter encryption
US10819719B2 (en) * 2016-10-11 2020-10-27 General Electric Company Systems and methods for protecting a physical asset against a threat
US10311217B2 (en) * 2016-12-09 2019-06-04 Microsoft Technology Licensing, Llc Application piracy prevention with secure enclave protection of automatically modularized functions
GB201705621D0 (en) * 2017-04-07 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
JP6773000B2 (ja) * 2017-10-26 2020-10-21 京セラドキュメントソリューションズ株式会社 情報処理装置、改ざん検出方法
JP6584487B2 (ja) * 2017-12-20 2019-10-02 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
CN108155989B (zh) * 2017-12-28 2020-11-03 贵州玛迩比特通信科技有限公司 一种多用户认证方法及系统
US11330438B2 (en) * 2018-05-14 2022-05-10 Ppip, Llc Active base providing local man-in-the-middle firewall
US11284257B2 (en) * 2018-05-14 2022-03-22 Ppip, Llc Validation engine
JP7318490B2 (ja) * 2019-11-01 2023-08-01 富士通株式会社 暗号処理システム及び暗号処理方法
US11941109B2 (en) * 2021-12-21 2024-03-26 Cyberark Software Ltd. Customizable and dynamically mutable operating systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11205304A (ja) * 1998-01-09 1999-07-30 Nippon Chemicon Corp プログラムの不正使用防止方法
JP2004341152A (ja) * 2003-05-15 2004-12-02 Oki Electric Ind Co Ltd 秘密分散方法、秘密分散システム、及び分散演算装置
JP2005184134A (ja) * 2003-12-16 2005-07-07 Murata Mach Ltd 電子署名方法とそのプログラム及び装置
WO2010092832A1 (ja) * 2009-02-16 2010-08-19 パナソニック株式会社 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013898A1 (en) * 1997-06-04 2002-01-31 Sudia Frank W. Method and apparatus for roaming use of cryptographic values
US5825880A (en) * 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
FR2793050B1 (fr) * 1999-04-28 2001-08-17 Fingerprint Procede pour securiser un logiciel d'utilisation a partir d'une unite de traitement et de memorisation d'un secret et systeme en faisant application
US20070271191A1 (en) * 2000-03-09 2007-11-22 Andres Torrubia-Saez Method and apparatus for secure distribution of software
US6965994B1 (en) * 2001-01-30 2005-11-15 Microsoft Corporation Security mechanism for computer processing modules
JP4373779B2 (ja) * 2001-06-14 2009-11-25 シスコ テクノロジー インコーポレイテッド ステイトフル分散型イベント処理及び適応保全
US7428751B2 (en) * 2002-12-05 2008-09-23 Microsoft Corporation Secure recovery in a serverless distributed file system
JP2004234645A (ja) * 2003-01-10 2004-08-19 Canon Inc 画像形成装置の監視装置、該監視装置による制御方法、及び該制御方法を実行するプログラム、並びに管理装置、該管理装置による制御方法、及び該制御方法を実行するプログラム
US8225290B2 (en) * 2003-02-11 2012-07-17 V. i. Laboratories, Inc. Systems and methods for regulating execution of computer software
JP4292835B2 (ja) * 2003-03-13 2009-07-08 沖電気工業株式会社 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム
CA2655735C (en) * 2003-09-15 2011-01-18 Ab Initio Software Corporation Data profiling
JP4335707B2 (ja) * 2004-02-06 2009-09-30 Necエレクトロニクス株式会社 プログラム改竄検出装置、及びプログラム改竄検出プログラムおよびプログラム改竄検出方法
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
CA2560395C (en) * 2004-04-02 2014-06-17 Matsushita Electric Industrial Co., Ltd. Unauthorized contents detection system
US20090249085A1 (en) * 2004-06-29 2009-10-01 Nagracard S.A. Security module and personalization method for such a security module
CN101023433A (zh) 2004-07-02 2007-08-22 皇家飞利浦电子股份有限公司 安全单元和保护数据的方法
US7661135B2 (en) * 2004-08-10 2010-02-09 International Business Machines Corporation Apparatus, system, and method for gathering trace data indicative of resource activity
JP4562464B2 (ja) * 2004-09-07 2010-10-13 富士通株式会社 情報処理装置
JP4496061B2 (ja) * 2004-11-11 2010-07-07 パナソニック株式会社 機密情報処理装置
JP4891902B2 (ja) * 2005-06-01 2012-03-07 パナソニック株式会社 電子機器、更新サーバ装置、鍵更新装置
EP1811412A1 (en) 2005-08-04 2007-07-25 Intelligent Wave Inc. Computer control method using externally connected device and computer control system
US7509528B2 (en) * 2006-03-10 2009-03-24 Alcatel Lucent Transaction bundling for improved redundancy
JP5214474B2 (ja) 2007-02-16 2013-06-19 パナソニック株式会社 分散情報配布装置、保持装置、認証局装置及びシステム
WO2009025220A1 (ja) * 2007-08-22 2009-02-26 Nec Corporation 秘密情報分散システム、方法及びプログラム並びに伝送システム
JP5201716B2 (ja) * 2007-09-28 2013-06-05 東芝ソリューション株式会社 暗号モジュール配信システム、暗号管理サーバ装置、暗号処理装置、クライアント装置、暗号管理プログラム、暗号処理プログラム、およびクライアントプログラム
CA2707232A1 (en) * 2007-11-26 2009-08-27 Koolspan, Inc. System for and method of cryptographic provisioning
US8483386B2 (en) * 2007-12-12 2013-07-09 Nec Corporation Share generation apparatus, reconstruction apparatus, verification apparatus, and secret sharing system
CN101236590B (zh) * 2008-03-07 2010-11-03 北京邮电大学 一种基于门限密码体制的软件分割保护的实现方法
EP2259205B1 (en) * 2008-03-28 2018-04-25 Panasonic Corporation Software updating apparatus, software updating system, alteration verification method and alteration verification program
US8381298B2 (en) * 2008-06-30 2013-02-19 Microsoft Corporation Malware detention for suspected malware
US20100162005A1 (en) * 2008-12-23 2010-06-24 David Dodgson Storage communities of interest using cryptographic splitting
US20100154053A1 (en) * 2008-12-17 2010-06-17 David Dodgson Storage security using cryptographic splitting
CN101739531A (zh) 2008-11-24 2010-06-16 英属开曼群岛商康帝国际科技股份有限公司 使用多重密钥表单来加强数据加密的方法与系统
WO2010147215A1 (ja) * 2009-06-19 2010-12-23 日本電気株式会社 秘密情報分散システム,秘密情報分散方法及びプログラム
US20100325431A1 (en) * 2009-06-19 2010-12-23 Joseph Martin Mordetsky Feature-Specific Keys for Executable Code
US8438401B2 (en) * 2009-09-22 2013-05-07 Raytheon BBN Technologies, Corp. Device and method for securely storing data
US8861717B2 (en) * 2009-12-22 2014-10-14 Nec Corporation Verification device, secret information restoration device, verification method, program, and secret sharing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11205304A (ja) * 1998-01-09 1999-07-30 Nippon Chemicon Corp プログラムの不正使用防止方法
JP2004341152A (ja) * 2003-05-15 2004-12-02 Oki Electric Ind Co Ltd 秘密分散方法、秘密分散システム、及び分散演算装置
JP2005184134A (ja) * 2003-12-16 2005-07-07 Murata Mach Ltd 電子署名方法とそのプログラム及び装置
WO2010092832A1 (ja) * 2009-02-16 2010-08-19 パナソニック株式会社 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102083757B1 (ko) 2019-05-17 2020-03-02 김성완 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법

Also Published As

Publication number Publication date
WO2012124270A1 (ja) 2012-09-20
US9311487B2 (en) 2016-04-12
CN102893284B (zh) 2016-07-06
CN102893284A (zh) 2013-01-23
JPWO2012124270A1 (ja) 2014-07-17
US20130039491A1 (en) 2013-02-14

Similar Documents

Publication Publication Date Title
JP5960678B2 (ja) 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール
CN102271037B (zh) 基于在线密钥的密钥保护装置
US8135963B2 (en) Program conversion device and program execution device
Dwoskin et al. Hardware-rooted trust for secure key management and transient trust
US8464347B2 (en) Software updating apparatus, software updating system, alteration verification method and alteration verification program
US8769312B2 (en) Tampering monitoring system, protection control module, and detection module
US7877604B2 (en) Proof of execution using random function
US8683214B2 (en) Method and device that verifies application program modules
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
US20050283662A1 (en) Secure data backup and recovery
US20100042824A1 (en) Hardware trust anchors in sp-enabled processors
CN101802833A (zh) 向在应用执行环境中运行的应用提供本地存储服务
CN108833440B (zh) 一种基于区块链的网络安全审计系统及网络安全审计方法
US20100185859A1 (en) Software update system, management apparatus, recording medium, and integrated circuit
JPWO2011152065A1 (ja) コントローラ、制御方法、コンピュータプログラム、プログラム記録媒体、記録装置及び記録装置の製造方法
JP5052287B2 (ja) ロボット不正使用防止装置およびロボット不正使用防止方法
JP6146476B2 (ja) 情報処理装置及び情報処理方法
CN105468940A (zh) 软件保护方法及装置
CN101166096B (zh) 基于公开密钥加密的数据存储和数据检索
JPWO2008093690A1 (ja) 分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム
CN110659506A (zh) 基于密钥刷新对存储器进行重放保护
CN109784072B (zh) 一种安全文件管理方法和系统
SSD FIPS 140-2 Cryptographic Module Non-Proprietary Security Policy
WO2018172914A1 (en) System and method for secure storage of data
JPWO2006051791A1 (ja) データ再生方法及びデータ処理装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140606

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160223

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160420

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160623

R151 Written notification of patent or utility model registration

Ref document number: 5960678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151