JP4796050B2 - セキュア処理装置、及びセキュア処理システム - Google Patents

セキュア処理装置、及びセキュア処理システム Download PDF

Info

Publication number
JP4796050B2
JP4796050B2 JP2007504784A JP2007504784A JP4796050B2 JP 4796050 B2 JP4796050 B2 JP 4796050B2 JP 2007504784 A JP2007504784 A JP 2007504784A JP 2007504784 A JP2007504784 A JP 2007504784A JP 4796050 B2 JP4796050 B2 JP 4796050B2
Authority
JP
Japan
Prior art keywords
program
protected
unit
secure processing
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007504784A
Other languages
English (en)
Other versions
JPWO2006090800A1 (ja
Inventor
智之 芳賀
好克 井藤
秀樹 松島
幸恵 庄田
重彦 木村
洋 奥山
保樹 大岩
貴文 賀川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2007504784A priority Critical patent/JP4796050B2/ja
Publication of JPWO2006090800A1 publication Critical patent/JPWO2006090800A1/ja
Application granted granted Critical
Publication of JP4796050B2 publication Critical patent/JP4796050B2/ja
Expired - Fee Related 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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

本発明は、プログラムの不正な改ざんや解析を防止する技術に関する。
PCや携帯電話機を用いて視聴するための有料のデジタルコンテンツが配信されているが、不正コピーを防止するために、デジタルコンテンツは暗号化されて配信される。そのため、デジタルコンテンツを再生するためのプログラムは、暗号化を解くための暗号鍵を含んでいる。従って、不正解析を目的とする悪意のユーザが再生用のプログラムを解析して、暗号鍵を特定することができれば、デジタルコンテンツを不正にコピーされてしまう。
このようなプログラムの解析を防止する技術は、従来から存在しており、解析防止の技術が施されたプログラムに対し、悪意のユーザは、一般的に毎回異なる不正解析の手法を試行しながら徐々に解析を進めていき、最終的に暗号鍵等の秘密情報を取得する。そこで、不正解析を検出すると、それ以降プログラムの実行を不可能にすることで、そのプログラムに対して不正解析が繰り返されることを防ぐ技術がある。
「逆解析や改変からソフトを守る」 日経エレクトロニクス1998.1.5 (P209−220) 「ソフトウェアの耐タンパー化技術」富士ゼロックス テクニカル レポート No.13 「ザ・プロテクト」秀和システム出版 1985年
しかしながら、プログラムの不正な解析、及び改ざんを行う意図の無い善意のユーザの誤操作が、不正な解析、及び改ざんとして検出される場合がある。このような場合、上記の従来技術では、プログラムの実行が不可能になり、以後、そのプログラムを利用することができなくなる。これは、善意のユーザにとって不利益となる。
本発明は、上記の問題点に鑑みなされたものであって、プログラムの不正解析の防止と、善意のユーザにとっての利便性とを両立することができるセキュア処理システムを提供することを目的とする。
上記の目的を達成するために、本発明は、セキュア処理装置であって、オリジナルプログラムと同一の結果が得られるように、前記オリジナルプログラムに基づき生成された複数の被保護プログラムを記憶しているプログラム記憶手段と、解析の対象とされた被保護プログラムを無効化する無効化手段と、前記複数の被保護プログラムから、無効化されていない1の被保護プログラムを選択する選択手段と、選択された1の被保護プログラムを実行する実行手段とを備えることを特徴とする。
上記の構成によると、解析の対象とされた被保護プログラムを無効化することにより、悪意のユーザにより同一の被保護プログラムに対する解析が再試行されるのを防止することができる。更に、当該セキュア処理装置は、複数の被保護プログラムを記憶しているため、解析の対象とされた被保護プログラムが無効化された場合であっても、無効化されていない他の被保護プログラムを実行することにより、善意のユーザのプログラムを利用する権利を担保することができる。
ここで、前記セキュア処理装置は、前記実行手段が1の被保護プログラムを実行する際に、前記被保護プログラムが解析の対象とされているか否かを判断する解析検出手段を備え、前記無効化手段は、無効化されている被保護プログラムを示す無効化リストを記憶する無効化リスト記憶部と、前記解析検出手段により、前記被保護プログラムが解析の対象とされていると判断されると、前記無効化リストに、前記被保護プログラムが無効化された旨を登録する無効化登録部とを備えるように構成してもよい。
この構成によると、無効化リスト記憶部が無効化リストを記憶していることにより、選択手段は、無効化された被保護プログラムを識別可能であり、実行すべき被保護プログラムとして、無効化されていない被保護プログラムを選択することができる。また、解析検出手段により、解析の対象となった被保護プログラムが検出されると、無効化登録部により無効化リストが更新されるので、選択手段は、常に新しい無効化リストを参照して、無効化されていない被保護プログラムを選択することができる。
ここで、前記無効化リストは、当該無効化リストの正当性を証明するための署名データが付加されており、前記選択手段は、前記無効化リストに付加されている前記署名データを検証し、前記署名データの検証の結果、前記無効化リストの不正が検出された場合には、被保護プログラムの選択処理を中止するように構成してもよい。
この構成によると、不正解析を試みる悪意のユーザにより、無効化リストが改ざんされた場合であっても、署名データを検証することにより、無効化リストの改ざんの有無を判断することが可能となる。また、無効化リストの改ざんが検出された場合には、全ての被保護プログラムの実行を中止することができ、不正解析を防止することができる。
ここで、前記複数の被保護プログラムは、オリジナルプログラムを難読化した難読化プログラムであって、各被保護プログラムは、難読化の方法及び/又は難読化の程度がそれぞれ異なることにより、異なるコードを有するプログラムであるように構成してもよい。
この構成によると、悪意のユーザによる被保護プログラムの解析を困難にすることができる。
ここで、前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、前記難読化の方法として、前記オリジナルプログラムに含まれる複数の部分プログラムの内、異なる部分プログラムを暗号化する方法を用い、生成されたプログラムであるように構成してもよい。
この構成によると、前記1以上の被保護プログラムは、暗号化されている部分プログラム、即ち暗号化されている位置が異なるために、悪意のユーザが複数回解析を試みた場合であっても、解析が困難となる。
ここで、部分プログラムを暗号化することにより生成された前記1以上の被保護プログラムは、暗号化の対象である各部分プログラムが、異なる暗号化アルゴリズム及び/又は異なる暗号鍵を用いて暗号化されたプログラムであるように構成してもよい。
この構成によると、前記1以上の被保護プログラムは、暗号化されている位置が異なるだけでなく、暗号化のアルゴリズムや暗号鍵も異なるため、更に解析を困難にすることができる。
ここで、前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、前記難読化の方法として、前記オリジナルプログラムに含まれる複数の命令の内、相互に依存関係にない命令である並列命令の実行順序を入れ替える方法を用い、生成されたプログラムであるように構成してもよい。
この構成によると、前記1以上の被保護プログラムは、オリジナルプログラムの並列性に基づき生成されており、オリジナルプログラムと同一の出力結果を担保しつつ、悪意のユーザによる解析を困難にすることができる。
ここで、前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、前記難読化の方法として、前記オリジナルプログラムに含まれる命令を、当該命令と異なる処理を行い、且つ当該命令と同一の結果を出力する1以上の命令からなる恒等命令に置き換える方法を用い、生成されたプログラムであるように構成してもよい。
この構成によると、前記1以上の被保護プログラムは、オリジナルプログラムの恒等命令を用いて生成されており、オリジナルプログラムと同一の出力結果を担保しつつ、悪意のユーザによる解析を困難にすることができる。
ここで、前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、前記難読化の方法として、前記オリジナルプログラムの結果に影響を与えない命令であるダミー命令を、前記オリジナルプログラムに挿入する方法を用い、生成されたプログラムであるように構成してもよい。
この構成によると、前記1以上の被保護プログラムは、ダミーコードを用いて冗長化して生成されており、オリジナルプログラムと同一の出力結果を担保しつつ、悪意のユーザによる解析を困難にすることができる。
ここで、前記セキュア処理装置は、前記実行手段が1の被保護プログラムを実行する際に、前記被保護プログラムが解析の対象とされているか否かを判断する解析検出手段を備えるように構成してもよい。
この構成によると、解析検出手段が被保護プログラムの解析の可能性を検出することにより、無効化手段は、秘密の情報が暴露される危険のある被保護プログラムを無効化することができる。
ここで、前記解析検出手段は、前記実行手段による被保護プログラムの実行中にデバッガを検出すると、検出したデバッガを無効化するデバッガ検出部と、前記デバッガ検出部によりデバッガが検出されると、前記実行手段に対し、実行中止を指示する指示部とを備え、前記実行手段は、前記指示部から実行中止の指示を受け付けると、実行中である前記被保護プログラムの実行を即座に中止するように構成してもよい。
この構成によると、当該セキュア処理装置は、デバッガを検出する機能を有し、更に、検出したデバッガを無効化することにより、実行中の被保護プログラムが解析され、秘匿にすべき情報が暴露されるのを防止することができる。
ここで、前記解析検出手段は、被保護プログラムの改ざんを検出する改ざん検出部と、前記改ざん検出部により改ざんが検出されると、前記実行手段に対し、実行中止を指示する指示部とを備え、前記実行手段は、前記指示部から実行中止の指示を受け付けると、前記被保護プログラムの実行を中止するように構成してもよい。
この構成によると、当該セキュア処理装置は、改ざんが検出された被保護プログラム以外の他の被保護プログラムは実行可能であるため、善意のユーザの利益を害することなく不正なプログラムの実行を防止することができる。
ここで、前記解析検出手段は、前記被保護プログラムが解析の対象とされていると判断すると、前記解析に係る解析ログ情報を生成するログ情報生成部を備えるように構成してもよい。
この構成によると、解析に係る解析ログ情報を生成することにより、どのような解析行為がなされたかを知ることができる。また、セキュア処理装置の開発段階におけるテスト工程において、解析検出手段が正しく解析行為を検出するか否かを確認することができる。
ここで、前記セキュア処理装置は、ネットワークを介して外部サーバと接続されており、前記ログ情報生成部は、生成した前記解析ログ情報を、前記外部サーバへ送信するように構成してもよい。
この構成によると、解析ログ情報を外部サーバへ送信することにより、外部サーバでは、どのような解析行為がなされたのかを分析することができる。解析行為を分析することにより、より解析の困難な被保護プログラムを生成することができる。
ここで、前記解析検出手段は、更に、所定の数値に設定された閾値を記憶している閾値記憶部と、被保護プログラムが解析の対象とされていると判断した回数を保持し、前記判断の都度、保持している回数を更新する解析回数計数部とを備え、前記無効化登録部は、前記解析回数計数部が保持している回数が前記閾値を超える場合に、前記無効化リストに、前記被保護プログラムが無効化された旨を登録するように構成してもよい。
この構成によると、解析された回数が、予め設定されている閾値を超えた場合にのみ、被保護プログラムが無効化される。したがって、善意のユーザの偶然による誤操作で、直ちに実行中の被保護プログラムが無効化されてしまうことを防ぐことができる。また、悪意のユーザが解析を繰り返すと、解析の回数が予め設定されている閾値を超え、被保護プログラムが無効化されるので、被保護プログラムに含まれる秘匿にすべき情報が暴露されることを防止することができる。
ここで、前記選択手段は、前記無効化リストを参照し、無効化されていない1の被保護プログラムをランダムに選択するように構成してもよい。
この構成によると、選択する被保護プログラム、即ち実行する被保護プログラムが毎回ランダムに決定されるので、悪意のユーザによる不正解析を困難にすることができる。
ここで、前記選択手段は、選択した被保護プログラムを識別するための情報を記憶しており、前記情報と前記無効化リストとを参照し、未選択であり、且つ無効化されていない1の被保護プログラムをランダムに選択するように構成してもよい。
この構成によると、選択する被保護プログラム、即ち実行する被保護プログラムが、毎回ランダムに決定され、尚且つ一度実行された被保護プログラムが、次回から選択されないため、悪意のユーザによる不正解析をより困難にすることができる。
ここで、前記選択手段は、予め所定の選択順序を記憶しており、前記無効化リストを参照し、無効化されていない1の被保護プログラムを、前記選択順序に応じて選択するように構成してもよい。
この構成によると、所定の選択順序を記憶しておくことで、実行する被保護プログラムをランダムに選択する場合と比較すると、乱数生成の処理等を省略することができ、処理時間を短縮することができる。
ここで、前記選択手段は、前記複数の被保護プログラムについて、各被保護プログラムの難読化の程度を示す難読化度情報を記憶しており、前記難読化度情報と前記無効化リストとを参照し、難読化の程度の高い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択するように構成してもよい。
この構成によると、難読化の程度の高い被保護プログラム、即ち、解析の困難な被保護プログラムから順に実行することで、悪意のユーザによる不正解析を効果的に防止することができる。
ここで、前記選択手段は、前記複数の被保護プログラムについて、各被保護プログラムの難読化の程度を示す難読化度情報を記憶しており、
前記難読化度情報を参照し、難読化の程度の低い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択するように構成してもよい。
一般的に、難読化の程度が高い被保護プログラムほど、プログラム実行速度が遅く、難読化の程度が高い被保護プログラムほど、プログラム実行速度が速くなるの。従って、この構成によると、実行速度の速い被保護プログラムから実行され、不正解析の意図のない善意のユーザにとっては、利便性が高いセキュア処理装置を提供することができる。
ここで、前記選択手段は、実行速度の速い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択するように構成してもよい。
この構成によると、実行速度の速い被保護プログラムから実行されるので、不正解析の意図のない善意のユーザにとっては、利便性が高いセキュア処理装置を提供することができる。
ここで、前記セキュア処理装置は、ネットワークを介して、被保護プログラムを保持しているプログラム更新サーバと接続されており、前記選択手段は、無効化されていない被保護プログラムの残数が、所定の閾値以下であるか否かを判断する判断部と、前記判断部により、所定の閾値以下であると判断された場合に、前記プログラム更新サーバに対し、新たな被保護プログラムの送信を要求するプログラム要求部と、前記プログラム更新サーバから、新たな被保護プログラムを受信するプログラム受信部とを備えるように構成してもよい。
この構成によると、プログラム記憶手段に記憶されている複数の被保護プログラムが全て無効化された場合であっても、セキュア処理装置は、プログラム更新サーバから新たな被保護プログラムを取得することが可能であり、善意のユーザのプログラムを利用する権利を担保することができる。
また、プログラム記憶手段の記憶容量が少なく、予め多くの被保護プログラムを記憶しておいくことができないセキュア処理装置であっても、外部のプログラム更新サーバから被保護プログラムを取得することが可能である。
また、本発明は、ネットワークを介して接続されてセキュア処理装置とプログラム更新サーバとから構成されるセキュア処理システムであって、前記セキュア処理装置は、オリジナルプログラムと同一の結果が得られるように、前記オリジナルプログラムに基づき生成された複数の被保護プログラムを記憶している第1記憶手段と、解析の対象とされた被保護プログラムを無効化する無効化手段と、前記複数の被保護プログラムから、無効化されていない1の被保護プログラムを選択する選択手段と、選択された1の被保護プログラムを実行する実行手段と、前記第1記憶手段に記憶されている複数の被保護プログラムの内、無効化されていない被保護プログラムの残数が、所定の閾値以下である場合に、前記プログラム更新サーバに対し、被保護プログラムの送信を要求する要求手段とを備え、前記プログラム更新サーバは、複数の被保護プログラムを記憶している第2記憶手段と、前記セキュア処理装置から、被保護プログラムの送信要求を受け付ける要求受付手段と、前記要求受付手段が前記送信要求を受け付けると、前記第2記憶手段から、1以上の被保護プログラムを読み出して、前記セキュア処理装置へ送信する送信手段とを備えることを特徴とする。
この構成によると、解析の対象とされた被保護プログラムを無効化することにより、悪意のユーザにより同一の被保護プログラムに対する解析が再試行されるのを防止することができる。更に、当該セキュア処理装置は、複数の被保護プログラムを記憶しているため、解析の対象とされた被保護プログラムが無効化された場合であっても、無効化されていない他の被保護プログラムを実行することにより、善意のユーザのプログラムを利用する権利を担保することができる。
また、第1記憶手段に記憶されている複数の被保護プログラムが全て無効化された場合であっても、セキュア処理装置は、プログラム更新サーバから新たな被保護プログラムを取得することが可能であり、善意のユーザのプログラムを利用する権利を担保することができる。
本発明に係る実施の形態として、セキュア処理システム1について図面を参照して説明する。
<構成>
1.セキュア処理システム1
図1は、セキュア処理システム1の構成を示すシステム構成図である。同図に示すように、セキュア処理システム1は、携帯電話機10、プログラム更新サーバ20、及びネットワーク30から構成される。
携帯電話機10は、無線電波を用いて通信を行う可搬型の電話機である。携帯電話機10は、暗号化コンテンツをダウンロードし、ダウンロードした暗号化コンテンツを保持している。また、携帯電話機10は、暗号化コンテンツを復号し、再生するための暗号化コンテンツ復号プログラムを保持している。ここで、携帯電話機10が保持している暗号化コンテンツは、音楽コンテンツに、暗号化アルゴリズムEを施して生成されたデータである。
プログラム更新サーバ20は、ネットワーク30を介して携帯電話機10と接続されており、携帯電話機10による暗号化コンテンツの復号に用いられる暗号化コンテンツ復号プログラムの更新を行う。
ここで、ネットワーク30の具体例はインターネットである。また、図1では、携帯電話網及び無線基地局等を省略している。
2.携帯電話機10
図2は、携帯電話機10の構成を機能的に示す機能ブロック図である。同図に示すように、携帯電話機10は、アンテナ101、送受信部102、通信制御部103、記憶部104、表示部105、操作部106、スピーカ107、マイク108、及びセキュア処理部109から構成される。ここで、アンテナ101、送受信部102、通信制御部103、記憶部104、表示部105、操作部106、スピーカ107、及びマイク108は、通常の携帯電話機としての機能を達成するための機能ブロックであり、セキュア処理部109が、本発明の特徴的な機能ブロックである。なお、携帯電話機10は、具体的には、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。
送受信部102は、アンテナ101を介して、通話、電子メール送受信、ネットワーク30を介したプログラム更新サーバ20との通信等を行う。
通信制御部103は、通信制御用コンピュータプログラムを記憶しており、マイクロプロセッサが通信制御用コンピュータプログラムを実行することにより、携帯電話機10が有する通話、メール送受信、ネットワーク接続等の通信機能を制御する。
記憶部104は、電話帳やスケジュール帳、送受信済みの電子メールデータ、ダウンロードした暗号化コンテンツ等を記憶している。
表示部105は、液晶ディスプレィを含み、各種の画面を液晶ディスプレィに表示する。
操作部106は、携帯電話機10の操作面に設けられた複数のボタン等から構成され、ボタンの押下により、ユーザからの入力を受け付ける。
スピーカ107は、音声を出力し、マイク108は、音声の入力を受け付ける。
セキュア処理部109は、プログラム記憶部111、実行プログラム選択部112、プログラムロード部113、プログラムロード領域114、プログラム実行部115、不正解析検出部116、無効化リスト記憶部117、及び無効化リスト更新部118から構成される。
プログラム記憶部111は、FlashROM、EEPROM、又はHDDで構成される。図3は、プログラム記憶部111の内部を示す図である。同図に示すように、プログラム記憶部111は、被保護プログラムA(201)、被保護プログラムB(202)、…、被保護プログラムC(203)を含む、複数個の被保護プログラムを記憶している。
各被保護プログラムには、プログラム識別子が付与されている。具体的に、被保護プログラムA(201)には、プログラム識別子A:0001(211)、被保護プログラムB(202)には、プログラム識別子B:0002(212)、被保護プログラムC(203)には、プログラム識別子C:0003(213)が付与されている。
ここで、被保護プログラムの性質について、図4を用いて説明する。
プログラム記憶部111に記憶されている全ての被保護プログラムは、暗号化コンテンツ復号プログラムであるオリジナルプログラム200を、難読化して生成されたプログラムであり、図4に示すように、オリジナルプログラム200及び各被保護プログラムは、暗号化コンテンツ301と復号鍵302とを入力値とすると、同一の出力値である復号コンテンツ303を出力する。なお、本実施形態における被保護プログラムは、復号鍵302を内部に含んでいるものとする。
ここで、難読化とは、プログラムをその構造的意味を変えずに複雑化することで、プログラムの解析を困難にすることを目的とした技術であり、具体的には、オリジナルプログラム200の一部又は全部に暗号化を施したり、オリジナルプログラム200に、実行に影響を与えない不要なダミーコードを挿入したり、オリジナルプログラム200に含まれる一部のコードを、当該一部のコードと異なるコードであるが同一の結果を得られる等価なコードに置き換えたり、オリジナルプログラム200に含まれるコードの内、順序を入れ替えても結果の変わらないコードの順序を入れ替えたり、1つのモジュールを複数のモジュールに分割したり、制御構造を複雑化したりする方法より実現される。
なお、各被保護プログラムは、それぞれ異なる方法で難読化されたり、複数の方法をそれぞれ異なる組み合わせで用いて難読化されたり、それぞれ異なる暗号化アルゴリズムや暗号鍵を用いて暗号化されたり、それぞれオリジナルプログラム200の異なる部分が暗号化されたり、それぞれ異なる程度で難読化されたりすることにより、異なるバイナリコードを有するプログラムである。難読化の程度は、ダミーコードの追加サイズや、制御構造の複雑化パターン、モジュールの分割数、暗号化アルゴリズムの強度等を変更することにより変えることができる。
実行プログラム選択部112は、無効化リスト記憶部117に記憶されている無効化リスト500を参照し、無効化されていない1つの被保護プログラムを選択する。実行プログラム選択部112は、選択した被保護プログラムのプログラム先頭アドレス、及びプログラムサイズを無効化リストから読み出し、読み出したプログラム先頭アドレス、及びプログラムサイズを、プログラムロード部113へ通知する。なお、実行プログラム選択部112は、乱数生成器を用いて乱数を生成し、生成した乱数に基づき、実行する被保護プログラムを選択する。被保護プログラム選択の詳細については、後述する。
ここで、無効化リスト500を参照することにより、全ての被保護プログラムが無効化されていると判断する場合には、実行プログラム選択部112は、無効化リスト更新部118に対し、新たな被保護プログラムのダウンロードを要求する。
プログラムロード部113は、実行プログラム選択部112から、プログラム先頭アドレス、及びプログラムサイズを受け取ると、被保護プログラムをプログラムロード領域114にロードする。プログラムロード領域114は、本実施形態では具体例としてRAMである。
プログラム実行部115は、マイクロプロセッサを含み、プログラムロード領域114にロードされた被保護プログラムを実行する。
先に述べたように、被保護プログラムは、暗号化コンテンツ復号プログラムであるから、プログラム実行部115は、被保護プログラムを実行することにより、記憶部104から暗号化コンテンツを読み出し、読み出した暗号化コンテンツに、コンテンツ復号鍵を用いて復号アルゴリズムDを施し、音楽コンテンツを復号する。プログラム実行部115は、復号された音楽コンテンツを、通信制御部103を介してスピーカ107へ出力する。ここで、復号アルゴリズムDは、暗号化アルゴリズムEを施して暗号化された暗号文を、平文に変換するアルゴリズムである。
不正解析検出部116は、図5に示すように、デバッガ検出部401、改ざん検出部402、及び不正解析通知部403から構成される。
デバッガ検出部401は、プログラム実行部115による被保護プログラムの実行中に、インサーキットエミュレータ(登録商標である。)や、ソフトウェアデバッガを検出する機能を有する。デバッガ検出部401は、デバッガを検出すると、デバッガインタフェースを切断する等により、デバッガを無効化する。デバッガ検出部401は、デバッガを無効化すると、不正解析通知部403に不正解析を検出した旨を通知する。
改ざん検出部402は、予め、図6に示す改ざん検出値テーブル410を記憶している。改ざん検出値テーブル410は、改ざん検出値情報411、412、…、413を含み、各改ざん検出値情報は、プログラム識別子と判定用改ざん検出値とを含む。プログラム識別子は、被保護プログラムを一意に識別するための情報である。判定用改ざん検出値は、対応付けられているプログラム識別子により識別される被保護プログラムに、予め一方向関数を用いて算出された値であり、改ざんの有無を判定するために用いられるデータである。
ここで、改ざん検出値テーブル410は、プログラム記憶部111に記憶されているすべての被保護プログラムについて、各被保護プログラムと1対1に対応する改ざん検出値情報を含んでいる。
具体的には、改ざん検出値情報411は、プログラム識別子「0001」と判定用改ざん検出値「検出値A」とを含む。プログラム識別子「0001」は、被保護プログラムA(201)に対応するプログラム識別子であるから、判定用改ざん検出値「検出値A」は、被保護プログラムA(201)の改ざんの有無を判定するために用いられるデータである。
また、改ざん検出値情報412は、プログラム識別子「0002」と判定用改ざん検出値「検出値B」とを含む。プログラム識別子「0002」は、被保護プログラムB(202)に対応するプログラム識別子であるから、改ざん検出値「検出値B」は、被保護プログラムB(202)の改ざんの有無を判定するために用いられるデータである。
また、改ざん検出値情報413は、プログラム識別子「0003」と判定用改ざん検出値「検出値C」とを含む。プログラム識別子「0003」は、被保護プログラムC(203)に対応するプログラム識別子であるから、改ざん検出値「検出値C」は、被保護プログラムC(203)の改ざんの有無を判定するために用いられるデータである。
改ざん検出部402は、新たな被保護プログラムのダウンロードに伴い、無効化リスト更新部118から、判定用改ざん検出値とプログラム識別子とを受け取ると、これらを新に改ざん検出値テーブル410に登録する。
改ざん検出部402は、プログラムロード領域114に被保護プログラムがロードされると、ロードされた被保護プログラムに一方向関数を用いて、改ざん検出値を算出する。改ざん検出部402は、算出された改ざん検出値と、改ざん検出値テーブル410に記述されている判定用改ざん検出値とが一致するか否か判断する。一致する場合には、プログラムロード領域114にロードされている被保護プログラムは改ざんされていないと判定し、一致しない場合は、被保護プログラムは改ざんされていると判定する。改ざん検出部402は、被保護プログラムの改ざんを検出すると、不正解析通知部403に不正解析を検出した旨を通知する。なお、判定用改ざん検出値及び改ざん検出値は、一例として、SHA(SecureHash Algorithm)‐1を用いて算出するものとする。
不正解析通知部403は、デバッガ検出部401及び改ざん検出部402から不正解析を検出した旨の通知を受けると、プログラム実行部115に対し、プログラムの実行中止を指示し、更に、不正解析ログ情報を生成する。不正解析通知部403は、生成した不正解析ログ情報を、通信制御部103、送受信部102、アンテナ101、及びネットワーク30を介して、プログラム更新サーバ20へ送信する。
図7は、不正解析通知部403が生成する不正解析ログ情報420のデータ構成を示す図である。同図に示すように、不正解析ログ情報420は、プログラム識別子欄421、不正解析検知コード欄422、汎用レジスタ値欄423、スタックポインタ欄424、リンクレジスタ欄425、及びプログラムカウンタ欄426を含む。
プログラム識別子欄421には、不正解析検知時にプログラム実行部115が実行していた被保護プログラムを識別するプログラム識別子が記述される。不正解析検知コード欄422には、不正解析を検出したのが、デバッガ検出部401及び改ざん検出部402の何れであるかを示す不正解析検知コードが記述される。不正解析検知コードは、デバッガ検出部401がデバッガを検出した場合は「1」に設定され、改ざん検出部402が改ざんを検出した場合は「2」に設定される。汎用レジスタ値欄423、スタックポインタ欄424、リンクレジスタ欄425、及びプログラムカウンタ欄426には、デバッガ検出時におけるマイクロプロセッサ内部の、レジスタファイルの各値が記述される。
なお、デバッグレジスタを有するプロセッサを利用する場合には、不正解析通知部403は、デバッグレジスタの状態を示す値や、デバッグレジスタにセットされているアドレス値などを不正解析ログ情報に記述してもよい。
無効化リスト記憶部117は、図8に示す無効化リスト500を保持している。無効化リスト500は、複数のプログラム無効化情報を含み、各プログラム無効化情報は、プログラム識別子、プログラム先頭アドレス、プログラムサイズ、及び無効化フラグから構成される。
プログラム識別子は、被保護プログラムを一意に識別するための情報である。プログラム先頭アドレスは、対応する被保護プログラムの、プログラム記憶部111における記録開始位置を示し、プログラムサイズは、被保護プログラムのデータサイズを示す情報である。無効化フラグは、対応する被保護プログラムが無効化されているか否かを示す情報であり、「0」及び「1」の何れかに設定される。「0」は、被保護プログラムが無効化されていないことを示し、「1」は、被保護プログラムが無効化されていることを示す。
ここで、無効化リスト500は、プログラム記憶部111に記憶されているすべての被保護プログラムについて、各被保護プログラムと1対1に対応するプログラム無効化情報を含んでいる。具体的に、プログラム無効化情報501は、被保護プログラムA(201)に対応しており、プログラム無効化情報502は、被保護プログラムB(202)に対応しており、プログラム無効化情報503は、被保護プログラムC(203)に対応している。
無効化リスト更新部118は、実行プログラム選択部112から被保護プログラムのダウンロード要求を受け付けると、受け付けたダウンロード要求を通信制御部103、送受信部102、アンテナ101、及びネットワーク30を介して、プログラム更新サーバ20へ送信する。無効化リスト更新部118は、ダウンロード要求に応じて、プログラム更新サーバ20から送信された被保護プログラムと判定用改ざん検出値とを、ネットワーク30、アンテナ101、送受信部102、及び通信制御部103を介して受信する。無効化リスト更新部118は、受信した被保護プログラムをプログラム記憶部111へ書き込み、受信した判定用改ざん検出値と被保護プログラムを識別するプログラム識別子とを、不正解析検出部116の改ざん検出部402へ出力する。
また、無効化リスト更新部118は、以下の場合に、無効化リスト記憶部117に記憶されている無効化リスト500を更新する。
(a)被保護プログラムの不正解析が検出された場合。即ち、無効化リスト更新部118は、不正解析通知部403から不正解析が検出された被保護プログラムのプログラム識別子を受け取ると、受け取ったプログラム識別子と対応付けられている無効化フラグを「0」から「1」に書き換えることにより、無効化リスト500を更新する。
(b)プログラム更新サーバ20から新たな被保護プログラムを受信した場合。即ち、無効化リスト更新部118は、プログラム更新サーバ20から被保護プログラムと判定用改ざん検出値とを受信すると、受信した被保護プログラムに係るプログラム無効化情報を生成し、生成したプログラム無効化情報を無効化リスト500に登録する。
3.プログラム更新サーバ20
図9は、プログラム更新サーバ20の構成を機能的に示す機能ブロック図である。同図に示すように、プログラム更新サーバ20は、送受信部601、制御部602、不正解析ログ情報記憶部603、及び更新用プログラム記憶部604から構成される。プログラム更新サーバ20は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット等から構成されるコンピュータシステムである。
送受信部601は、ネットワーク接続ユニットであって、ネットワーク30を介して携帯電話機10から送信される情報を受信し、受信した情報を制御部602へ出力する。また、送受信部601は、制御部602から出力される情報を受け取り、受け取った情報を、ネットワーク30を介して、携帯電話機10へ送信する。
制御部602は、プログラム更新サーバ20全体を制御する。具体的には、制御部602は、送受信部601及びネットワーク30を介して、携帯電話機10から被保護プログラムのダウンロード要求を受け付けると、更新用プログラム記憶部604から被保護プログラムと判定用改ざん検出値とを読み出し、読み出した被保護プログラムと判定用改ざん検出値とを送受信部601へ出力する。また、制御部602は、送受信部601及びネットワーク30を介して、携帯電話機10から不正解析ログ情報を受信すると、受信した不正解析ログ情報を、不正解析ログ情報記憶部603に書き込む。
不正解析ログ情報記憶部603は、携帯電話機10から送信された不正解析ログ情報を記憶する。
図10は、更新用プログラム記憶部604の内部を示す図である。同図に示すように、更新用プログラム記憶部604は、被保護プログラムX(611)、被保護プログラムY(612)、…、被保護プログラムZ(613)を含む、複数個の被保護プログラムを記憶している。
各被保護プログラムには、プログラム識別子が付与されている。具体的に、被保護プログラムX(611)には、プログラム識別子X:1001(621)、被保護プログラムY(612)には、プログラム識別子Y:1002(622)、被保護プログラムZ(613)には、プログラム識別子Z:1003(623)が付与されている。
なお、更新用プログラム記憶部604に記憶されている各被保護プログラムは、携帯電話機10のプログラム記憶部111に記憶されている被保護プログラムと同様に、オリジナルプログラム200を難読化して生成したプログラムであって、それぞれが異なるバイナリコードを有し、更に、図4に示す性質を有する。即ち、被保護プログラムX(611)、被保護プログラムY(612)、…、被保護プログラムZ(613)は、暗号化コンテンツ301及びコンテンツ復号鍵302を入力値とすると、出力値として、復号コンテンツ303を出力する。
また、更新用プログラム記憶部604は、各被保護プログラムに対応付けて、判定用改ざん検出値を記憶している。図10に示すように、被保護プログラムX(611)と、判定用改ざん検出値X(631)とが対応しており、被保護プログラムY(612)と、判定用改ざん検出値Y(632)とが対応しており、被保護プログラムZ(613)と、判定用改ざん検出値Z(633)とが対応している。各判定用改ざん検出値は、対応する被保護プログラムに、予め一方向関数を用いて算出された値であり、対応する被保護プログラムの改ざんの有無を判定するために用いられるデータである。
<動作>
ここでは、図11から図15に示すフローチャートを用いて、セキュア処理システム1の動作について説明する。
1.セキュア処理システム1全体の動作
図11は、セキュア処理システム1全体の動作を示すフローチャートである。なお、ここに示す動作は、携帯電話機10において暗号化コンテンツの復号要求が発生することにより開始する。
携帯電話機10の実行プログラム選択部112は、無効化リスト記憶部117に記憶されている無効化リスト500を読み込む(ステップS101)。実行プログラム選択部112は、無効化リスト500の無効化フラグを読み、プログラム記憶部111に記憶されている全ての被保護プログラムが、無効化されているか否か判断する(ステップS102)。
全ての被保護プログラムが無効化されている場合(ステップS102でYES)、即ち、無効化リスト500の無効化フラグが全て「1」に設定されている場合、携帯電話機10は、被保護プログラムの更新処理を行う(ステップS103)。無効化されていない被保護プログラムが存在する場合、即ち、無効化リスト500に、「0」に設定されている無効化フラグが存在する場合(ステップS102でNO)、実行プログラム選択部112は、被保護プログラム選択処理を行い、1の被保護プログラムを選択する(ステップS104)。
次に、プログラムロード部113は、ステップS104において選択された1の被保護プログラムを、プログラム記憶部111からプログラムロード領域114へロードする(ステップS105)。
次に、不正解析検出部116の改ざん検出部402は、プログラムロード領域114にロードされた被保護プログラムの改ざん検出値を算出する(ステップS106)。被保護プログラムの改ざんが検出された場合(ステップS107でYES)、即ち、ステップS106で算出した改ざん検出値が、予め保持している判定用改ざん検出値と一致しない場合は、ステップS112に進む。
被保護プログラムの改ざんが検出されない場合(ステップS107でNO)、即ち、ステップS106で算出した改ざん検出値が、予め保持している判定用改ざん検出値と一致する場合は、プログラム実行部115は、ステップS105でロードされた被保護プログラムの実行を開始する(ステップS108)。
被保護プログラムの実行中に、不正解析検出部116のデバッガ検出部401がデバッガを検出しなければ(ステップS109でNO)、プログラム実行部115は、被保護プログラムの実行を継続する。
被保護プログラムの実行中に、デバッガ検出部401がデバッガを検出すると(ステップS109でYES)、デバッガ検出部401は、デバッガを無効化し、ステップS111に進む。
改ざんを検出した改ざん検出部402、及びデバッガを検出したデバッガ検出部401は、不正解析通知部403に対し、その旨を通知し、不正解析通知部403はプログラム実行部115に対し実行中止を指示する。その後、プログラム実行部115は実行していた被保護プログラムの実行を中止する(ステップS112)。
不正解析通知部403は、不正解析通知処理を行い(ステップS113)、携帯電話機10は処理を終了する。
2.被保護プログラム更新処理の動作
図12は、被保護プログラム更新処理の動作を示すフローチャートである。なお、ここに示す動作は、図11に示したフローチャートにおけるステップS103の詳細である。
携帯電話機10の実行プログラム選択部112は、新たな被保護プログラムのダウンロードを要求するためのダウンロード要求を生成する(ステップS201)。実行プログラム選択部112は、生成したダウンロード要求を、無効化リスト更新部118へ出力し、無効化リスト更新部118は、通信制御部103、送受信部102、アンテナ101、及びネットワーク30を介して、プログラム更新サーバ20へ、ダウンロード要求を送信し、プログラム更新サーバ20の送受信部601は、ダウンロード要求を受信する(ステップS202)。
プログラム更新サーバ20の制御部602は、送受信部601からダウンロード要求を受け取ると、更新用プログラム記憶部604から、被保護プログラムと判定用改ざん検出値とを読み出す(ステップS203)。制御部602は、読み出した被保護プログラムと判定用改ざん検出値とを、送受信部601へ出力する。
送受信部601は、ネットワーク30を介して被保護プログラムと判定用改ざん検出値とを携帯電話機10へ送信し、携帯電話機10の送受信部102は、アンテナ101を介して、被保護プログラムと判定用改ざん検出値とを受信する(ステップS204)。
無効化リスト更新部118は、ステップS204で受信した被保護プログラムに係るプログラム無効化情報を生成し、生成したプログラム無効化情報を、無効化リスト記憶部117に記憶されている無効化リスト500に登録する(ステップS205)。
次に、無効化リスト更新部118は、ステップS204で受信した判定用改ざん検出値とプログラム識別子とを、不正解析検出部116の改ざん検出部402へ出力し、改ざん検出部402は、判定用改ざん検出値をプログラム識別子と対応付けて、改ざん検出値テーブル410に登録する(ステップS206)。
更に、無効化リスト更新部118は、ステップS204で受信した被保護プログラムを、プログラム記憶部111に書き込み(ステップS207)、書き込みが終了すると(ステップS208)、図11のステップS104に戻り処理を続ける。
3.プログラム選択処理1の動作
図13は、プログラム選択処理1の動作を示すフローチャートである。なお、ここに示す動作は、図11に示したフローチャートにおけるステップS104の詳細である。
実行プログラム選択部112は、無効化リスト記憶部117に記憶されている無効化リスト500を参照し、無効化リスト500に登録されているプログラム無効化情報の総数、即ち、プログラム記憶部111に記憶されている被保護プログラムの総数をNとする(ステップS301)。
次に、実行プログラム選択部112は、乱数生成器にて、1からNまでの整数範囲で、乱数rを生成する(ステップS302)。実行プログラム選択部112は、無効化リスト500に含まれるN個のプログラム無効化情報の内、上からr番目に位置するプログラム無効化情報に含まれる無効化フラグを読む(ステップS303)。
無効化フラグが1に設定されている場合(ステップS304でYES)、対応する被保護プログラムは無効化されていることから、実行プログラム選択部112は、当該被保護プログラムを選択できないため、ステップS302に戻り、別の被保護プログラムを選択する処理を続ける。
無効化フラグが0に設定されている場合(ステップS304でNO)、対応する被保護プログラムは無効化されていないため、実行プログラム選択部112は、r番目の被保護プログラムを選択する(ステップS305)。実行プログラム選択部112は、選択した被保護プログラムに係るプログラム識別子、プログラム先頭アドレス、及びプログラムサイズを、無効化リストから読み出し、読み出したプログラム識別子、プログラム先頭アドレス、及びプログラムサイズを、プログラムロード部113へ通知する(ステップS306)。その後、図11のステップS105へ戻り、処理を続ける。
なお、実行プログラム選択部112による被保護プログラム選択処理は、上記の方法に限定されず、次に説明する方法を用いてもよい。
4.プログラム選択処理2の動作
ここでは、図14に示すフローチャートを用いて、プログラム選択処理2の動作について説明する。プログラム選択処理2は、先に説明したプログラム選択処理1の変形例であり、図11に示したフローチャートのステップS104の詳細に相当する。
実行プログラム選択部112は、無効化リスト記憶部117に記憶されている無効化リスト500を参照し、無効化リスト500に登録されているプログラム無効化情報の総数、即ち、プログラム記憶部111に記憶されている被保護プログラムの総数をNとする(ステップS401)。
ここで、実行プログラム選択部112は、内部に乱数リストを保持している。乱数リストは、既に乱数生成器にて生成された乱数を登録しているリストである。実行プログラム選択部112は、乱数リストを参照し(ステップS402)、乱数リストに登録されている乱数の総数を計数する。乱数リストに登録されている乱数の総数がNの場合(ステップS403でYES)、実行プログラム選択部112は、内部に保持している乱数リストをクリアする(ステップS404)。
乱数リストに登録されている乱数の総数がNより少ない場合(ステップS403でNO)、実行プログラム選択部112は、乱数生成器にて、1からNまでの整数範囲で、乱数rを生成する(ステップS405)。実行プログラム選択部112は、ステップS405で生成した乱数rが乱数リストに登録済みであるか否か判断する。
乱数rが、乱数リストに登録済みである場合(ステップS406でYES)、実行プログラム選択部112は、ステップS401に戻り処理を続ける。乱数rが、乱数リストに登録されていない場合(ステップS406でNO)、ステップS405で生成した乱数rを、乱数リストに登録する(ステップS407)。
続いて、実行プログラム選択部112は、無効化リスト500に含まれるN個のプログラム無効化情報の内、上からr番目に位置するプログラム無効化情報に含まれる無効化フラグを読む(ステップS408)。
無効化フラグが1に設定されている場合(ステップS409でYES)、対応する被保護プログラムは無効化されていることから、実行プログラム選択部112は、当該被保護プログラムを選択できないため、ステップS401に戻り処理を続ける。
無効化フラグが0に設定されている場合(ステップS409でNO)、対応する被保護プログラムは無効化されていないため、実行プログラム選択部112は、r番目の被保護プログラムを選択する(ステップS410)。実行プログラム選択部112は、選択した被保護プログラムに係るプログラム識別子、プログラム先頭アドレス、及びプログラムサイズを、無効化リストから読み出し、読み出したプログラム識別子、プログラム先頭アドレス、及びプログラムサイズを、プログラムロード部113へ通知する(ステップS411)。その後、図11のステップS105へ戻り、処理を続ける。
5.不正解析通知処理の動作
ここでは、図15に示すフローチャートを用いて、不正解析通知処理の動作について説明する。なお、ここで説明する動作は、図11のステップS113の詳細である。
不正解析検出部116の不正解析通知部403は、プログラム実行部115を介してプログラムロード領域114にロードされていた被保護プログラムのプログラム識別子を取得する(ステップS501)。
次に、不正解析通知部403は、不正解析を検出したのがデバッガ検出部401であるか、又は改ざん検出部402であるかを判断する。
不正解析を検出したのがデバッガ検出部401の場合(ステップS502で「デバッガ検出」)、不正解析通知部403は、不正解析検知コードを「1」に設定する(ステップS503)。その後、不正解析通知部403は、プログラム実行部115に含まれるレジスタファイルから汎用レジスタ、スタックポインタ、リンクレジスタ、及びプログラムカウンタの各値を取得する(ステップS504)。
不正解析を検出したのが改ざん検出部402の場合(ステップS502で「改ざん検出」)、不正解析通知部403は、不正解析検知コードを「2」に設定する(ステップS505)。
不正解析通知部403は、取得したプログラム識別子を、不正解析ログ情報420のプログラム識別子421欄に記述し、更に、「1」及び「2」の何れかに設定した不正解析検知コードを不正解析検知コード欄422に記述する。次に、不正解析通知部403は、ステップS504でレジスタファイルの各値を取得した場合には、取得した各値を、不正解析ログ情報420の汎用レジスタ値欄423、スタックポインタ欄424、リンクレジスタ欄425、及びプログラムカウンタ欄426の各欄に記述し、不正解析ログ情報420を生成する(ステップS506)。
不正解析通知部403は、生成した不正解析ログ情報420を、通信制御部103、送受信部102、アンテナ101、及びネットワーク30を介して、プログラム更新サーバ20へ送信し、プログラム更新サーバ20は不正解析ログ情報420を受信する(ステップS507)。
プログラム更新サーバ20の制御部602は、送受信部601から不正解析ログ情報420を受信すると、受信した不正解析ログ情報420を、不正解析ログ情報記憶部603へ書き込み、不正解析ログ情報記憶部603は、不正解析ログ情報420を記憶する(ステップS508)。
一方、携帯電話機10の不正解析通知部403は、ステップS501で取得したプログラム識別子と共に、無効化リスト更新部118に対し、不正解析の検出を通知する(ステップS509)。無効化リスト更新部118は、不正解析の検出を受け付けると、無効化リストから、受け付けたプログラム識別子により識別されるプログラム無効化情報の無効化フラグを「1」に設定する(ステップS510)。その後、図11のフローチャートに戻る。
<その他の変形例>
(1)本発明における被保護プログラムは、オリジナルプログラムの全体に難読化処理を施し、生成されたプログラムであってもよいし、オリジナルプログラムの一部分に難読化処理を施し、生成されたプログラムであってもよい。
(2)上記実施形態では、携帯電話機10のプログラム記憶部111は、それぞれが異なるバイナリコードを有する複数の被保護プログラムを記憶する構成を備えるが、本発明において、プログラム記憶部111は、バイナリコードである被保護プログラムを記憶していることは必須ではなく、例えば、異なる難読化を施したソースプログラムである被保護プログラムを記憶している構成であってもよい。この場合、プログラム実行部115は、インタプリタを用い、各被保護プログラムを実行するように構成してもよい。
(3)上記実施形態では、携帯電話機10の改ざん検出部402は、一方向関数を用いて改ざん検出を行う構成を有するが、本発明における改ざん検出の方法は一方向関数に限定されないのは勿論であり、例えば、予め各被保護プログラムを暗号化した暗号化被保護プログラムを記憶しており、実行プログラム選択部112により選択された被保護プログラムに、同じ暗号化処理を施した結果と、予め記憶している暗号化被保護プログラムとを比較することにより、改ざんの有無を検出する方法などを用いてもよい。
(4)上記実施形態では、携帯電話機10の実行プログラム選択部112は、図13に示したプログラム選択処理1、又は図14に示したプログラム選択処理2を実施することにより無効化されていない1つの被保護プログラムを選択する構成を有するが、本発明における被保護プログラムの選択方法は、これらに限定されず、例えば、以下のような場合も本発明に含まれる。
(a)実行プログラム選択部112は、予め所定の選択順序を記憶しており、当該選択順序に応じて実行すべき被保護プログラムを選択してもよい。
具体的には、実行プログラム選択部112は、選択順序に応じて並べられたプログラム識別子を記憶しており、暗号化コンテンツの復号要求が発生すると、実行プログラム選択部112は、選択順序が上位のプログラム識別子を読み出す。続いて、実行プログラム選択部112は、無効化リスト記憶部117から無効化リスト500を読み込み、先に読み出したプログラム識別子により識別される被保護プログラムが、無効化されているか否かを判断する。無効化されていない場合には、当該被保護プログラムを選択し、プログラム先頭アドレス、及びプログラムサイズを、プログラムロード部113へ通知する。無効化されている場合には、実行プログラム選択部112は、選択順位が次のプログラム識別子を読み出し、上記の処理を繰り返す。このように、実行プログラム選択部112は、所定の選択順序に応じて、無効化されていない1の被保護プログラムを選択する。
(b)実行プログラム選択部112は、予め各被保護プログラムの難読化の程度に応じた選択順序を記憶しており、当該選択順序に応じて実行すべき被保護プログラムを選択してもよい。上記実施形態で述べたように、各被保護プログラムの難読化の程度は、ダミーコードの追加サイズや、制御構造の複雑化パターン、モジュールの分割数、暗号化アルゴリズムの強度等によりそれぞれ異なっており、難読化の程度が高いほど、被保護プログラムの解析や改ざんは困難になる。
実行プログラム選択部112は、難読化の程度が高い順にプログラム識別子を記憶しており、暗号化コンテンツの復号要求が発生すると、実行プログラム選択部112は、上位の、即ち難読化の程度が高い被保護プログラムのプログラム識別子を読み出す。その後、実行プログラム選択部112は、(a)と同様の処理を行い、難読化の程度の高い被保護プログラムから順に、無効化されていない1の被保護プログラムを選択する。
また、実行プログラム選択部112は、難読化の程度が低い被保護プログラムから順に、無効化されていない1の被保護プログラムを選択するように構成してもよい。これは、一般的に難読化の程度の高い被保護プログラムほど、実行速度が遅くなるので、不正解析を行わない善意のユーザにとっては、実行速度の速いプログラム、即ち、難読化の程度の低いプログラムから優先的に選択される方が望ましいからである。
また、難読化の程度に依らず、実際の実行速度が速い順に、無効化されていない1の被保護プログラムを選択するように構成してもよい。この場合、実行プログラム選択部112が、各被保護プログラムを識別するプログラム識別子と対応付けて、各被保護プログラムの実行速度を示す情報を記憶していてもよいし、携帯電話機10が被保護プログラムをダウンロードする都度、テスト実行を行い、ダウンロードした被保護プログラムの実行速度を測定するように構成してもよい。
(5)上記実施形態では、改ざん検出部402は、被保護プログラムがプログラムロード領域114にロードされたときに改ざん検出値の算出を行い、改ざんの有無を判定する構成を有するが、発明における被保護プログラムの改ざん検出は、被保護プログラムがロードされる前にプログラム記憶部111に記憶されているプログラムに対して行ってもよいし、被保護プログラムの実行前に行ってもよいし、ロードされたプログラムに対して実行中定期的に行ってもよい。
(6)上記実施の形態では、不正解析検出部116の不正解析通知部403は、デバッガ検出部401及び改ざん検出部402の何れかから、不正解析を検出した旨の通知を受け付けると、無条件でプログラム実行部115に対し、被保護プログラムの実行中止を指示すると共に、不正解析ログ情報を作成する構成を有するが、例えば、以下のような場合であっても、本発明に含まれる。
不正解析通知部403は、予め所定数を示す閾値を保持している。不正解析通知部403は、デバッガ検出部401及び改ざん検出部402から不正解析を検出した旨の通知を受け付ける都度、その回数をカウントする。カウントしている回数が保持している閾値を超えると、不正解析検出部403は、プログラム実行部115に対し、被保護プログラムの実行中止を指示すると共に、不正解析ログ情報を作成するように構成してもよい。これにより、善意のユーザの誤操作が不正解析と判定され、直ちに実行中のプログラムが停止することを防止することができる。
(7)上記実施形態では、不正解析が検出(デバッガ検出又は改ざん検出)された被保護プログラムは、無効化リストの無効化フラグを「0」から「1」に書き換えることにより無効化される構成を有するが、本発明におけるプログラムの無効化は、無効化フラグの書き換えに加えて、プログラム記憶部111内の被保護プログラムをゼロクリアしたり、乱数データでメモリを上書きしたりすることにより、実際にプログラムが実行されないようにしてもよい。このように、解析された可能性のある被保護プログラムを実行不能にすることで、ユーザの誤作動等により、無効化したはずの被保護プログラムが再度実行される危険を低減することができる。
また、無効化された被保護プログラムの無効化フラグを「1」に書き換える構成に換えて、無効化リストからプログラム無効化情報を削除するように構成してもよい。無効化リストからプログラム無効化情報を削除することにより、無効化された被保護プログラムのアドレス等に係る情報が削除されるので、ユーザの誤作動等により、無効化したはずの被保護プログラムが再度実行される危険を低減することができる。
また、上記実施形態では、被保護プログラムが無効化されているか否かを無効化フラグにより判定する構成を有するが、この構成は必須ではなく、フラグに換えて、他の情報により判定する場合も本発明に含まれる。
(8)本発明における無効化リストには、正当な機関から発行された署名データが付加されていてもよい。この場合、実行プログラム選択部112は、ステップS101(図11)で無効化リストを読み込んだ後、署名データの検証を行い、署名データの検証に成功した場合、ステップS102以降の処理を継続し、署名データの検証に失敗した場合、即ち無効化リストが不正である場合には、ステップS102以降の処理を行わないように構成してもよい。この構成によると、無効化されている被保護プログラムが。無効化リストの改ざんにより無効化されていないものと判断されて、実行されるのを防止することができる。
(9)上記実施形態では、保護対象プログラムは、暗号化コンテンツ復号プログラムであるオリジナルプログラム200のみであるが、本発明においては、保護対象のプログラムは複数存在してもよい。
この場合、複数の保護対象プログラムのそれぞれについて、複数の被保護プログラムが生成され、プログラム記憶部111には、これら複数の被保護プログラムが記憶されているものとする。また、無効化リスト記憶部117には、保護対象プログラム毎にそれぞれ無効化リストが記憶されているものとする。
(10)本発明においては、携帯電話機10がプログラム更新サーバ20からダウンロードした被保護プログラムは、プログラム記憶部111内の、無効化されている被保護プログラムが記憶されている領域に上書きしてもよいし、プログラム記憶部111内の他の領域に記憶してもよい。これにより、無効化された被保護プログラムの消去と新たな被保護プログラムの追加とを一度に行うことができる。また、無効化された被保護プログラムの記憶領域を、追加する新たな被保護プログラムの記憶領域として再利用するので、プログラム記憶部111の容量を有効に利用することができる。
(11)上記実施形態において、携帯電話機10は、プログラム記憶部111に記憶されている全ての被保護プログラムが無効化されていると判断してから、プログラム更新サーバから新たな被保護プログラムをダウンロードする構成を有するが、この構成は必須ではなく、プログラム更新サーバから被保護プログラムをダウンロードするタイミングについては特に限定しない。例えば、1つの被保護プログラムが無効化される都度、携帯電話機10は、プログラム更新サーバ20から新たな被保護プログラムをダウンロードしてもよい。
また、携帯電話機10は、プログラム記憶部111に記憶されている全ての被保護プログラムが無効化されておらず、有効な被保護プログラムが残っている状態であっても、プログラム更新サーバ20から新たな被保護プログラムをダウンロードしてもよい。例えば、プログラム記憶部111に記憶されている有効な被保護プログラムの数が所定数以下になったら場合、携帯電話機10が過去の選択履歴を保持し、同じ被保護プログラムが選択される確率が所定値以上になった場合等に、新たな被保護プログラムをダウンロードするように構成してもよい。
この構成によると、携帯電話機10は、有効な被保護プログラムの数が減ってくると、新しい被保護プログラムを取得するので、実行する被保護プログラムをある程度ランダムに選択することが保証できる。
(12)本発明において、携帯電話機10とプログラム更新サーバ20との間の通信は、安全な通信路、所謂SAC(Secure Authentication Channel)を確立し、SACを介して、被保護プログラムのダウンロード処理、不正解析ログ情報の送受信処理を行うよう構成してもよい。なお、SACについては、Secure Sockets Layer(SSL)等で利用されており、既知の技術で実現可能であるから、説明は省略する。
(13)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD‐ROM、MO、DVD、DVD‐ROM、DVD‐RAM、BD(Blu‐ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(14)また本発明は、上記実施形態における携帯電話機10及びプログラム更新サーバ20の機能ブロックの一部又は全てが集積回路であるLSIとして実現される場合も本発明に含まれる。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路で実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field ProgrammableGate Array)やLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応などが可能性として有り得る。
(15)前記実施形態及び前記変形例をそれぞれ組み合わせた構成も、本発明に含まれる。
本発明は、デジタルコンテンツを配信するサービス業において、不正解析により秘匿にすべき情報が暴露されるのを防止する仕組みとして利用することができる。また、本発明は、デジタルコンテンツを再生する再生装置を生産する製造業においても利用することができる。
セキュア処理システム1の構成を示すシステム構成図である。 携帯電話機10の構成を機能的に示す機能ブロック図である。 プログラム記憶部111に記憶されている被保護プログラムを示す図である。 セキュアプログラムの特徴について説明するための図である。 不正解析検出部116の機能を説明するための図である。 改ざん検出部402が保持する改ざん検出値テーブル410のデータ構成を示す図である。 不正解析ログ情報420のデータ構成を示す図である。 無効化リスト500のデータ構成を示す図である。 プログラム更新サーバ20の構成を機能的に示す機能ブロック図である。 更新用プログラム記憶部604に記憶されている被保護プログラムを示す図である。 セキュア処理システム1全体の動作を示すフローチャートである。 セキュア処理システム1における被保護プログラムの更新処理を示すフローチャートである。 セキュア処理システム1におけるプログラム選択処理1の動作を示すフローチャートである。 セキュア処理システム1におけるプログラム選択処理2の動作を示すフローチャートである。 セキュア処理システム1における不正検出時の処理を示すフローチャートである。
符号の説明
1 セキュア処理システム
10 携帯電話機
20 プログラム更新サーバ
30 ネットワーク
101 アンテナ
102 送受信部
103 通信制御部
104 記憶部
105 表示部
106 操作部
107 スピーカ
108 マイク
109 セキュア処理部
111 プログラム記憶部
112 実行プログラム選択部
113 プログラムロード部
114 プログラムロード領域
115 プログラム実行部
116 不正解析検出部
117 無効化リスト記憶部
118 無効化リスト更新部
401 デバッガ検出部
402 改ざん検出部
403 不正解析通知部
601 送受信部
602 制御部
603 不正解析ログ情報記憶部
604 更新用プログラム記憶部

Claims (25)

  1. オリジナルプログラムと同一の結果が得られるように、前記オリジナルプログラムに基づき生成された複数の被保護プログラムを記憶しているプログラム記憶手段と、
    解析の対象とされた被保護プログラムを無効化する無効化手段と、
    前記複数の被保護プログラムから、無効化されていない1の被保護プログラムを選択する選択手段と、
    選択された1の被保護プログラムを実行する実行手段と
    を備えることを特徴とするセキュア処理装置。
  2. 前記セキュア処理装置は、
    前記実行手段が1の被保護プログラムを実行する際に、前記被保護プログラムが解析の対象とされているか否かを判断する解析検出手段を備え、
    前記無効化手段は、
    無効化されている被保護プログラムを示す無効化リストを記憶する無効化リスト記憶部と、
    前記解析検出手段により、前記被保護プログラムが解析の対象とされていると判断されると、前記無効化リストに、前記被保護プログラムが無効化された旨を登録する無効化登録部とを備える
    ことを特徴とする請求項1に記載のセキュア処理装置。
  3. 前記無効化リストは、当該無効化リストの正当性を証明するための署名データが付加されており、
    前記選択手段は、
    前記無効化リストに付加されている前記署名データを検証し、前記署名データの検証の結果、前記無効化リストの不正が検出された場合には、被保護プログラムの選択処理を中止する
    ことを特徴とする請求項2に記載のセキュア処理装置。
  4. 前記複数の被保護プログラムは、オリジナルプログラムを難読化した難読化プログラムであって、各被保護プログラムは、難読化の方法及び/又は難読化の程度がそれぞれ異なることにより、異なるコードを有するプログラムである
    ことを特徴とする請求項1に記載のセキュア処理装置。
  5. 前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、
    前記難読化の方法として、前記オリジナルプログラムに含まれる複数の部分プログラムの内、異なる部分プログラムを暗号化する方法を用い、生成されたプログラムである
    ことを特徴とする請求項4に記載のセキュア処理装置。
  6. 部分プログラムを暗号化することにより生成された前記1以上の被保護プログラムは、
    暗号化の対象である各部分プログラムが、異なる暗号化アルゴリズム及び/又は異なる暗号鍵を用いて暗号化されたプログラムである
    ことを特徴とする請求項5に記載のセキュア処理装置。
  7. 前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、
    前記難読化の方法として、前記オリジナルプログラムに含まれる複数の命令の内、相互に依存関係にない命令である並列命令の実行順序を入れ替える方法を用い、生成されたプログラムである
    ことを特徴とする請求項4に記載のセキュア処理装置。
  8. 前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、
    前記難読化の方法として、前記オリジナルプログラムに含まれる命令を、当該命令と異なる処理を行い、且つ当該命令と同一の結果を出力する1以上の命令からなる恒等命令に置き換える方法を用い、生成されたプログラムである
    ことを特徴とする請求項4に記載のセキュア処理装置。
  9. 前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、
    前記難読化の方法として、前記オリジナルプログラムの結果に影響を与えない命令であるダミー命令を、前記オリジナルプログラムに挿入する方法を用い、生成されたプログラムである
    ことを特徴とする請求項4に記載のセキュア処理装置。
  10. 前記セキュア処理装置は、
    前記実行手段が1の被保護プログラムを実行する際に、前記被保護プログラムが解析の対象とされているか否かを判断する解析検出手段を備える
    ことを特徴とする請求項1に記載のセキュア処理装置。
  11. 前記解析検出手段は、
    前記実行手段による被保護プログラムの実行中にデバッガを検出すると、検出したデバッガを無効化するデバッガ検出部と、
    前記デバッガ検出部によりデバッガが検出されると、前記実行手段に対し、実行中止を指示する指示部とを備え、
    前記実行手段は、前記指示部から実行中止の指示を受け付けると、実行中である前記被保護プログラムの実行を中止する
    ことを特徴とする請求項10に記載のセキュア処理装置。
  12. 前記解析検出手段は、
    被保護プログラムの改ざんを検出する改ざん検出部と、
    前記改ざん検出部により改ざんが検出されると、前記実行手段に対し、実行中止を指示する指示部とを備え、
    前記実行手段は、前記指示部から実行中止の指示を受け付けると、前記被保護プログラムの実行を中止する
    ことを特徴とする請求項10に記載のセキュア処理装置。
  13. 前記解析検出手段は、
    前記被保護プログラムが解析の対象とされていると判断すると、前記解析に係る解析ログ情報を生成するログ情報生成部を備える
    ことを特徴とする請求項10に記載のセキュア処理装置。
  14. 前記セキュア処理装置は、ネットワークを介して外部サーバと接続されており、
    前記ログ情報生成部は、生成した前記解析ログ情報を、前記外部サーバへ送信する
    ことを特徴とする請求項13に記載のセキュア処理装置。
  15. 前記解析検出手段は、更に、
    所定の数値に設定された閾値を記憶している閾値記憶部と、
    被保護プログラムが解析の対象とされていると判断した回数を保持し、前記判断の都度、保持している回数を更新する解析回数計数部とを備え、
    前記無効化手段は、
    前記解析回数計数部が保持している回数が前記閾値を超える場合に、前記被保護プログラムを無効化する
    ことを特徴とする請求項10に記載のセキュア処理装置。
  16. 前記選択手段は、
    無効化されていない1の被保護プログラムをランダムに選択する
    ことを特徴とする請求項1に記載のセキュア処理装置。
  17. 前記選択手段は、
    選択した被保護プログラムを識別するための情報を記憶しており、
    前記情報を参照し、未選択であり、且つ無効化されていない1の被保護プログラムをランダムに選択する
    ことを特徴とする請求項1に記載のセキュア処理装置。
  18. 前記選択手段は、
    予め所定の選択順序を記憶しており、
    無効化されていない1の被保護プログラムを、前記選択順序に応じて選択する
    ことを特徴とする請求項1に記載のセキュア処理装置。
  19. 前記選択手段は、
    前記複数の被保護プログラムについて、各被保護プログラムの難読化の程度を示す難読化度情報を記憶しており、
    前記難読化度情報を参照し、難読化の程度の高い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択する
    ことを特徴とする請求項1に記載のセキュア処理装置。
  20. 前記選択手段は、
    前記複数の被保護プログラムについて、各被保護プログラムの難読化の程度を示す難読化度情報を記憶しており、
    前記難読化度情報を参照し、難読化の程度の低い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択する
    ことを特徴とする請求項1に記載のセキュア処理装置。
  21. 前記選択手段は、
    実行速度の速い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択する
    ことを特徴とする請求項1に記載のセキュア処理装置。
  22. 前記セキュア処理装置は、ネットワークを介して、被保護プログラムを保持しているプログラム更新サーバと接続されており、
    前記選択手段は、
    無効化されていない被保護プログラムの残数が、所定の閾値以下であるか否かを判断する判断部と、
    前記判断部により、所定の閾値以下であると判断された場合に、前記プログラム更新サーバに対し、新たな被保護プログラムの送信を要求するプログラム要求部と、
    前記プログラム更新サーバから、新たな被保護プログラムを受信するプログラム受信部と
    を備えることを特徴とする請求項1に記載のセキュア処理装置。
  23. オリジナルプログラムと同一の結果が得られるように、前記オリジナルプログラムに基づき生成された複数の被保護プログラムを記憶しているプログラム記憶手段と、
    解析の対象とされた被保護プログラムを無効化する無効化手段と、
    前記複数の被保護プログラムから、無効化されていない1の被保護プログラムを選択する選択手段と、
    選択された1の被保護プログラムを実行する実行手段と
    を備えることを特徴とする集積回路。
  24. セキュア処理装置で用いられるセキュア処理方法であって、
    前記セキュア処理装置は、
    オリジナルプログラムと同一の結果が得られるように、前記オリジナルプログラムに基づき生成された複数の被保護プログラムを記憶しており、
    前記セキュア処理方法は、
    解析の対象とされた被保護プログラムを無効化する無効化ステップと、
    前記複数の被保護プログラムから、無効化されていない1の被保護プログラムを選択する選択ステップと、
    選択された1の被保護プログラムを実行する実行ステップと
    を含むことを特徴とするセキュア処理方法。
  25. ネットワークを介して接続されてセキュア処理装置とプログラム更新サーバとから構成されるセキュア処理システムであって、
    前記セキュア処理装置は、
    オリジナルプログラムと同一の結果が得られるように、前記オリジナルプログラムに基づき生成された複数の被保護プログラムを記憶している第1記憶手段と、
    解析の対象とされた被保護プログラムを無効化する無効化手段と、
    前記複数の被保護プログラムから、無効化されていない1の被保護プログラムを選択する選択手段と、
    選択された1の被保護プログラムを実行する実行手段と、
    前記第1記憶手段に記憶されている複数の被保護プログラムの内、無効化されていない被保護プログラムの残数が、所定の閾値以下である場合に、前記プログラム更新サーバに対し、被保護プログラムの送信を要求する要求手段とを備え、
    前記プログラム更新サーバは、
    複数の被保護プログラムを記憶している第2記憶手段と、
    前記セキュア処理装置から、被保護プログラムの送信要求を受け付ける要求受付手段と、
    前記要求受付手段が前記送信要求を受け付けると、前記第2記憶手段から、1以上の被保護プログラムを読み出して、前記セキュア処理装置へ送信する送信手段とを備える
    ことを特徴とするセキュア処理システム。
JP2007504784A 2005-02-25 2006-02-23 セキュア処理装置、及びセキュア処理システム Expired - Fee Related JP4796050B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007504784A JP4796050B2 (ja) 2005-02-25 2006-02-23 セキュア処理装置、及びセキュア処理システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005050419 2005-02-25
JP2005050419 2005-02-25
JP2007504784A JP4796050B2 (ja) 2005-02-25 2006-02-23 セキュア処理装置、及びセキュア処理システム
PCT/JP2006/303320 WO2006090800A1 (ja) 2005-02-25 2006-02-23 セキュア処理装置、及びセキュア処理システム

Publications (2)

Publication Number Publication Date
JPWO2006090800A1 JPWO2006090800A1 (ja) 2008-07-24
JP4796050B2 true JP4796050B2 (ja) 2011-10-19

Family

ID=36927437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007504784A Expired - Fee Related JP4796050B2 (ja) 2005-02-25 2006-02-23 セキュア処理装置、及びセキュア処理システム

Country Status (5)

Country Link
EP (1) EP1862937A1 (ja)
JP (1) JP4796050B2 (ja)
KR (1) KR20070105989A (ja)
CN (1) CN101128833A (ja)
WO (1) WO2006090800A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4048382B1 (ja) 2006-09-01 2008-02-20 富士ゼロックス株式会社 情報処理システムおよびプログラム
JP4898823B2 (ja) * 2006-10-20 2012-03-21 パナソニック株式会社 アプリケーション情報改竄監視装置及び方法
JP4743783B2 (ja) * 2006-11-02 2011-08-10 株式会社メガチップス メモリシステム
JP5133973B2 (ja) * 2007-01-18 2013-01-30 パナソニック株式会社 難読化支援装置、難読化支援方法、プログラムおよび集積回路
JP2008287441A (ja) * 2007-05-16 2008-11-27 Toshiba Corp 情報処理装置およびプログラムの不正利用抑止方法
JP2009271884A (ja) * 2008-05-12 2009-11-19 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
US8555067B2 (en) * 2010-10-28 2013-10-08 Apple Inc. Methods and apparatus for delivering electronic identification components over a wireless network
US8436638B2 (en) * 2010-12-10 2013-05-07 International Business Machines Corporation Switch to perform non-destructive and secure disablement of IC functionality utilizing MEMS and method thereof
WO2014030168A2 (en) * 2011-08-05 2014-02-27 Kpit Technologies Ltd. A system for protection of embedded software codes
KR101322402B1 (ko) * 2011-11-25 2013-11-21 농업협동조합중앙회 어플리케이션 보안 시스템 및 방법, 이를 위한 통신 단말기
EP2979211B1 (en) * 2013-03-27 2020-09-09 Irdeto B.V. Protecting software application
JP6663937B2 (ja) * 2015-03-13 2020-03-13 エバースピン コーポレーション 動的なセキュリティーモジュールサーバー装置及びその駆動方法
JP7173928B2 (ja) * 2019-06-05 2022-11-16 ファナック株式会社 数値制御装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003186753A (ja) * 2001-12-21 2003-07-04 Canon Electronics Inc 電子機器、電子機器の制御方法、および電子機器の制御プログラム
US20040003278A1 (en) * 2002-06-28 2004-01-01 Microsoft Corporation Secure and opaque type library providing secure data protection of variables
JP2004348710A (ja) * 2003-05-20 2004-12-09 Samsung Electronics Co Ltd 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003186753A (ja) * 2001-12-21 2003-07-04 Canon Electronics Inc 電子機器、電子機器の制御方法、および電子機器の制御プログラム
US20040003278A1 (en) * 2002-06-28 2004-01-01 Microsoft Corporation Secure and opaque type library providing secure data protection of variables
JP2004348710A (ja) * 2003-05-20 2004-12-09 Samsung Electronics Co Ltd 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置

Also Published As

Publication number Publication date
CN101128833A (zh) 2008-02-20
KR20070105989A (ko) 2007-10-31
JPWO2006090800A1 (ja) 2008-07-24
EP1862937A1 (en) 2007-12-05
WO2006090800A1 (ja) 2006-08-31

Similar Documents

Publication Publication Date Title
JP4796050B2 (ja) セキュア処理装置、及びセキュア処理システム
US20080168562A1 (en) Secure Processing Device and Secure Processing System
Taylor et al. To update or not to update: Insights from a two-year study of android app evolution
JP4891902B2 (ja) 電子機器、更新サーバ装置、鍵更新装置
US8555089B2 (en) Program execution apparatus, control method, control program, and integrated circuit
US8438402B2 (en) Electronic terminal, control method, computer program and integrated circuit
KR100851631B1 (ko) 보안 모드 제어 메모리
JP5879527B2 (ja) 情報処理装置および情報処理方法
JP5314016B2 (ja) 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
US8077865B2 (en) Electronic device, content reproduction control method, program, storage medium, and integrated circuit
US8370935B1 (en) Auditing a device
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
US8949989B2 (en) Auditing a device
EP2579178A1 (en) Controller, control method, computer program, program recording medium, recording apparatus, and method of manufacturing recording apparatus
CN102279760A (zh) 利用初始保护组件来进行设备引导
JP2015232810A (ja) 記憶装置、情報処理装置および情報処理方法
US8418256B2 (en) Memory control apparatus, content playback apparatus, control method and recording medium
JP2008033512A (ja) セキュリティチップ及びプラットフォーム
CN100464341C (zh) 基于可信计算技术的数字内容使用痕迹的产生与管理方法
JP5759845B2 (ja) 情報処理システム、情報処理装置、外部記憶媒体、プログラム、記憶媒体、及び、ファイル管理方法
JP2011164858A (ja) ライセンス設定システムおよびライセンス設定方法
JP2009122923A (ja) 著作権保護システム、再生装置、及び再生方法
Abrahamsson Security Enhanced Firmware Update Procedures in Embedded Systems
JP2009110055A (ja) 通信端末及びアクセス制御方法
JP2010061182A (ja) ソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080930

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110728

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees