JP4796050B2 - セキュア処理装置、及びセキュア処理システム - Google Patents
セキュア処理装置、及びセキュア処理システム Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 100
- 238000004458 analytical method Methods 0.000 claims description 156
- 238000001514 detection method Methods 0.000 claims description 138
- 238000000034 method Methods 0.000 claims description 52
- 230000005540 biological transmission Effects 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 2
- 238000003672 processing method Methods 0.000 claims 3
- 238000004891 communication Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000004075 alteration Effects 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 235000010724 Wisteria floribunda Nutrition 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting 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
「逆解析や改変からソフトを守る」 日経エレクトロニクス1998.1.5 (P209−220) 「ソフトウェアの耐タンパー化技術」富士ゼロックス テクニカル レポート No.13 「ザ・プロテクト」秀和システム出版 1985年
本発明は、上記の問題点に鑑みなされたものであって、プログラムの不正解析の防止と、善意のユーザにとっての利便性とを両立することができるセキュア処理システムを提供することを目的とする。
この構成によると、不正解析を試みる悪意のユーザにより、無効化リストが改ざんされた場合であっても、署名データを検証することにより、無効化リストの改ざんの有無を判断することが可能となる。また、無効化リストの改ざんが検出された場合には、全ての被保護プログラムの実行を中止することができ、不正解析を防止することができる。
この構成によると、悪意のユーザによる被保護プログラムの解析を困難にすることができる。
この構成によると、前記1以上の被保護プログラムは、暗号化されている部分プログラム、即ち暗号化されている位置が異なるために、悪意のユーザが複数回解析を試みた場合であっても、解析が困難となる。
この構成によると、前記1以上の被保護プログラムは、暗号化されている位置が異なるだけでなく、暗号化のアルゴリズムや暗号鍵も異なるため、更に解析を困難にすることができる。
この構成によると、前記1以上の被保護プログラムは、オリジナルプログラムの並列性に基づき生成されており、オリジナルプログラムと同一の出力結果を担保しつつ、悪意のユーザによる解析を困難にすることができる。
この構成によると、前記1以上の被保護プログラムは、オリジナルプログラムの恒等命令を用いて生成されており、オリジナルプログラムと同一の出力結果を担保しつつ、悪意のユーザによる解析を困難にすることができる。
この構成によると、前記1以上の被保護プログラムは、ダミーコードを用いて冗長化して生成されており、オリジナルプログラムと同一の出力結果を担保しつつ、悪意のユーザによる解析を困難にすることができる。
この構成によると、解析検出手段が被保護プログラムの解析の可能性を検出することにより、無効化手段は、秘密の情報が暴露される危険のある被保護プログラムを無効化することができる。
ここで、前記解析検出手段は、被保護プログラムの改ざんを検出する改ざん検出部と、前記改ざん検出部により改ざんが検出されると、前記実行手段に対し、実行中止を指示する指示部とを備え、前記実行手段は、前記指示部から実行中止の指示を受け付けると、前記被保護プログラムの実行を中止するように構成してもよい。
ここで、前記解析検出手段は、前記被保護プログラムが解析の対象とされていると判断すると、前記解析に係る解析ログ情報を生成するログ情報生成部を備えるように構成してもよい。
ここで、前記セキュア処理装置は、ネットワークを介して外部サーバと接続されており、前記ログ情報生成部は、生成した前記解析ログ情報を、前記外部サーバへ送信するように構成してもよい。
ここで、前記解析検出手段は、更に、所定の数値に設定された閾値を記憶している閾値記憶部と、被保護プログラムが解析の対象とされていると判断した回数を保持し、前記判断の都度、保持している回数を更新する解析回数計数部とを備え、前記無効化登録部は、前記解析回数計数部が保持している回数が前記閾値を超える場合に、前記無効化リストに、前記被保護プログラムが無効化された旨を登録するように構成してもよい。
この構成によると、選択する被保護プログラム、即ち実行する被保護プログラムが毎回ランダムに決定されるので、悪意のユーザによる不正解析を困難にすることができる。
ここで、前記選択手段は、選択した被保護プログラムを識別するための情報を記憶しており、前記情報と前記無効化リストとを参照し、未選択であり、且つ無効化されていない1の被保護プログラムをランダムに選択するように構成してもよい。
ここで、前記選択手段は、予め所定の選択順序を記憶しており、前記無効化リストを参照し、無効化されていない1の被保護プログラムを、前記選択順序に応じて選択するように構成してもよい。
ここで、前記選択手段は、前記複数の被保護プログラムについて、各被保護プログラムの難読化の程度を示す難読化度情報を記憶しており、前記難読化度情報と前記無効化リストとを参照し、難読化の程度の高い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択するように構成してもよい。
ここで、前記選択手段は、前記複数の被保護プログラムについて、各被保護プログラムの難読化の程度を示す難読化度情報を記憶しており、
前記難読化度情報を参照し、難読化の程度の低い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択するように構成してもよい。
ここで、前記選択手段は、実行速度の速い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択するように構成してもよい。
ここで、前記セキュア処理装置は、ネットワークを介して、被保護プログラムを保持しているプログラム更新サーバと接続されており、前記選択手段は、無効化されていない被保護プログラムの残数が、所定の閾値以下であるか否かを判断する判断部と、前記判断部により、所定の閾値以下であると判断された場合に、前記プログラム更新サーバに対し、新たな被保護プログラムの送信を要求するプログラム要求部と、前記プログラム更新サーバから、新たな被保護プログラムを受信するプログラム受信部とを備えるように構成してもよい。
また、プログラム記憶手段の記憶容量が少なく、予め多くの被保護プログラムを記憶しておいくことができないセキュア処理装置であっても、外部のプログラム更新サーバから被保護プログラムを取得することが可能である。
<構成>
1.セキュア処理システム1
図1は、セキュア処理システム1の構成を示すシステム構成図である。同図に示すように、セキュア処理システム1は、携帯電話機10、プログラム更新サーバ20、及びネットワーク30から構成される。
ここで、ネットワーク30の具体例はインターネットである。また、図1では、携帯電話網及び無線基地局等を省略している。
図2は、携帯電話機10の構成を機能的に示す機能ブロック図である。同図に示すように、携帯電話機10は、アンテナ101、送受信部102、通信制御部103、記憶部104、表示部105、操作部106、スピーカ107、マイク108、及びセキュア処理部109から構成される。ここで、アンテナ101、送受信部102、通信制御部103、記憶部104、表示部105、操作部106、スピーカ107、及びマイク108は、通常の携帯電話機としての機能を達成するための機能ブロックであり、セキュア処理部109が、本発明の特徴的な機能ブロックである。なお、携帯電話機10は、具体的には、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。
通信制御部103は、通信制御用コンピュータプログラムを記憶しており、マイクロプロセッサが通信制御用コンピュータプログラムを実行することにより、携帯電話機10が有する通話、メール送受信、ネットワーク接続等の通信機能を制御する。
表示部105は、液晶ディスプレィを含み、各種の画面を液晶ディスプレィに表示する。
操作部106は、携帯電話機10の操作面に設けられた複数のボタン等から構成され、ボタンの押下により、ユーザからの入力を受け付ける。
セキュア処理部109は、プログラム記憶部111、実行プログラム選択部112、プログラムロード部113、プログラムロード領域114、プログラム実行部115、不正解析検出部116、無効化リスト記憶部117、及び無効化リスト更新部118から構成される。
各被保護プログラムには、プログラム識別子が付与されている。具体的に、被保護プログラムA(201)には、プログラム識別子A:0001(211)、被保護プログラムB(202)には、プログラム識別子B:0002(212)、被保護プログラムC(203)には、プログラム識別子C:0003(213)が付与されている。
プログラム記憶部111に記憶されている全ての被保護プログラムは、暗号化コンテンツ復号プログラムであるオリジナルプログラム200を、難読化して生成されたプログラムであり、図4に示すように、オリジナルプログラム200及び各被保護プログラムは、暗号化コンテンツ301と復号鍵302とを入力値とすると、同一の出力値である復号コンテンツ303を出力する。なお、本実施形態における被保護プログラムは、復号鍵302を内部に含んでいるものとする。
プログラムロード部113は、実行プログラム選択部112から、プログラム先頭アドレス、及びプログラムサイズを受け取ると、被保護プログラムをプログラムロード領域114にロードする。プログラムロード領域114は、本実施形態では具体例としてRAMである。
先に述べたように、被保護プログラムは、暗号化コンテンツ復号プログラムであるから、プログラム実行部115は、被保護プログラムを実行することにより、記憶部104から暗号化コンテンツを読み出し、読み出した暗号化コンテンツに、コンテンツ復号鍵を用いて復号アルゴリズムDを施し、音楽コンテンツを復号する。プログラム実行部115は、復号された音楽コンテンツを、通信制御部103を介してスピーカ107へ出力する。ここで、復号アルゴリズムDは、暗号化アルゴリズムEを施して暗号化された暗号文を、平文に変換するアルゴリズムである。
デバッガ検出部401は、プログラム実行部115による被保護プログラムの実行中に、インサーキットエミュレータ(登録商標である。)や、ソフトウェアデバッガを検出する機能を有する。デバッガ検出部401は、デバッガを検出すると、デバッガインタフェースを切断する等により、デバッガを無効化する。デバッガ検出部401は、デバッガを無効化すると、不正解析通知部403に不正解析を検出した旨を通知する。
具体的には、改ざん検出値情報411は、プログラム識別子「0001」と判定用改ざん検出値「検出値A」とを含む。プログラム識別子「0001」は、被保護プログラムA(201)に対応するプログラム識別子であるから、判定用改ざん検出値「検出値A」は、被保護プログラムA(201)の改ざんの有無を判定するために用いられるデータである。
また、改ざん検出値情報413は、プログラム識別子「0003」と判定用改ざん検出値「検出値C」とを含む。プログラム識別子「0003」は、被保護プログラムC(203)に対応するプログラム識別子であるから、改ざん検出値「検出値C」は、被保護プログラムC(203)の改ざんの有無を判定するために用いられるデータである。
改ざん検出部402は、プログラムロード領域114に被保護プログラムがロードされると、ロードされた被保護プログラムに一方向関数を用いて、改ざん検出値を算出する。改ざん検出部402は、算出された改ざん検出値と、改ざん検出値テーブル410に記述されている判定用改ざん検出値とが一致するか否か判断する。一致する場合には、プログラムロード領域114にロードされている被保護プログラムは改ざんされていないと判定し、一致しない場合は、被保護プログラムは改ざんされていると判定する。改ざん検出部402は、被保護プログラムの改ざんを検出すると、不正解析通知部403に不正解析を検出した旨を通知する。なお、判定用改ざん検出値及び改ざん検出値は、一例として、SHA(SecureHash Algorithm)‐1を用いて算出するものとする。
プログラム識別子欄421には、不正解析検知時にプログラム実行部115が実行していた被保護プログラムを識別するプログラム識別子が記述される。不正解析検知コード欄422には、不正解析を検出したのが、デバッガ検出部401及び改ざん検出部402の何れであるかを示す不正解析検知コードが記述される。不正解析検知コードは、デバッガ検出部401がデバッガを検出した場合は「1」に設定され、改ざん検出部402が改ざんを検出した場合は「2」に設定される。汎用レジスタ値欄423、スタックポインタ欄424、リンクレジスタ欄425、及びプログラムカウンタ欄426には、デバッガ検出時におけるマイクロプロセッサ内部の、レジスタファイルの各値が記述される。
無効化リスト記憶部117は、図8に示す無効化リスト500を保持している。無効化リスト500は、複数のプログラム無効化情報を含み、各プログラム無効化情報は、プログラム識別子、プログラム先頭アドレス、プログラムサイズ、及び無効化フラグから構成される。
(a)被保護プログラムの不正解析が検出された場合。即ち、無効化リスト更新部118は、不正解析通知部403から不正解析が検出された被保護プログラムのプログラム識別子を受け取ると、受け取ったプログラム識別子と対応付けられている無効化フラグを「0」から「1」に書き換えることにより、無効化リスト500を更新する。
3.プログラム更新サーバ20
図9は、プログラム更新サーバ20の構成を機能的に示す機能ブロック図である。同図に示すように、プログラム更新サーバ20は、送受信部601、制御部602、不正解析ログ情報記憶部603、及び更新用プログラム記憶部604から構成される。プログラム更新サーバ20は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット等から構成されるコンピュータシステムである。
制御部602は、プログラム更新サーバ20全体を制御する。具体的には、制御部602は、送受信部601及びネットワーク30を介して、携帯電話機10から被保護プログラムのダウンロード要求を受け付けると、更新用プログラム記憶部604から被保護プログラムと判定用改ざん検出値とを読み出し、読み出した被保護プログラムと判定用改ざん検出値とを送受信部601へ出力する。また、制御部602は、送受信部601及びネットワーク30を介して、携帯電話機10から不正解析ログ情報を受信すると、受信した不正解析ログ情報を、不正解析ログ情報記憶部603に書き込む。
図10は、更新用プログラム記憶部604の内部を示す図である。同図に示すように、更新用プログラム記憶部604は、被保護プログラムX(611)、被保護プログラムY(612)、…、被保護プログラムZ(613)を含む、複数個の被保護プログラムを記憶している。
なお、更新用プログラム記憶部604に記憶されている各被保護プログラムは、携帯電話機10のプログラム記憶部111に記憶されている被保護プログラムと同様に、オリジナルプログラム200を難読化して生成したプログラムであって、それぞれが異なるバイナリコードを有し、更に、図4に示す性質を有する。即ち、被保護プログラムX(611)、被保護プログラムY(612)、…、被保護プログラムZ(613)は、暗号化コンテンツ301及びコンテンツ復号鍵302を入力値とすると、出力値として、復号コンテンツ303を出力する。
ここでは、図11から図15に示すフローチャートを用いて、セキュア処理システム1の動作について説明する。
1.セキュア処理システム1全体の動作
図11は、セキュア処理システム1全体の動作を示すフローチャートである。なお、ここに示す動作は、携帯電話機10において暗号化コンテンツの復号要求が発生することにより開始する。
次に、不正解析検出部116の改ざん検出部402は、プログラムロード領域114にロードされた被保護プログラムの改ざん検出値を算出する(ステップS106)。被保護プログラムの改ざんが検出された場合(ステップS107でYES)、即ち、ステップS106で算出した改ざん検出値が、予め保持している判定用改ざん検出値と一致しない場合は、ステップS112に進む。
被保護プログラムの実行中に、不正解析検出部116のデバッガ検出部401がデバッガを検出しなければ(ステップS109でNO)、プログラム実行部115は、被保護プログラムの実行を継続する。
改ざんを検出した改ざん検出部402、及びデバッガを検出したデバッガ検出部401は、不正解析通知部403に対し、その旨を通知し、不正解析通知部403はプログラム実行部115に対し実行中止を指示する。その後、プログラム実行部115は実行していた被保護プログラムの実行を中止する(ステップS112)。
2.被保護プログラム更新処理の動作
図12は、被保護プログラム更新処理の動作を示すフローチャートである。なお、ここに示す動作は、図11に示したフローチャートにおけるステップS103の詳細である。
送受信部601は、ネットワーク30を介して被保護プログラムと判定用改ざん検出値とを携帯電話機10へ送信し、携帯電話機10の送受信部102は、アンテナ101を介して、被保護プログラムと判定用改ざん検出値とを受信する(ステップS204)。
次に、無効化リスト更新部118は、ステップS204で受信した判定用改ざん検出値とプログラム識別子とを、不正解析検出部116の改ざん検出部402へ出力し、改ざん検出部402は、判定用改ざん検出値をプログラム識別子と対応付けて、改ざん検出値テーブル410に登録する(ステップS206)。
3.プログラム選択処理1の動作
図13は、プログラム選択処理1の動作を示すフローチャートである。なお、ここに示す動作は、図11に示したフローチャートにおけるステップS104の詳細である。
次に、実行プログラム選択部112は、乱数生成器にて、1からNまでの整数範囲で、乱数rを生成する(ステップS302)。実行プログラム選択部112は、無効化リスト500に含まれるN個のプログラム無効化情報の内、上からr番目に位置するプログラム無効化情報に含まれる無効化フラグを読む(ステップS303)。
無効化フラグが0に設定されている場合(ステップS304でNO)、対応する被保護プログラムは無効化されていないため、実行プログラム選択部112は、r番目の被保護プログラムを選択する(ステップS305)。実行プログラム選択部112は、選択した被保護プログラムに係るプログラム識別子、プログラム先頭アドレス、及びプログラムサイズを、無効化リストから読み出し、読み出したプログラム識別子、プログラム先頭アドレス、及びプログラムサイズを、プログラムロード部113へ通知する(ステップS306)。その後、図11のステップS105へ戻り、処理を続ける。
4.プログラム選択処理2の動作
ここでは、図14に示すフローチャートを用いて、プログラム選択処理2の動作について説明する。プログラム選択処理2は、先に説明したプログラム選択処理1の変形例であり、図11に示したフローチャートのステップS104の詳細に相当する。
実行プログラム選択部112は、無効化リスト記憶部117に記憶されている無効化リスト500を参照し、無効化リスト500に登録されているプログラム無効化情報の総数、即ち、プログラム記憶部111に記憶されている被保護プログラムの総数をNとする(ステップS401)。
乱数rが、乱数リストに登録済みである場合(ステップS406でYES)、実行プログラム選択部112は、ステップS401に戻り処理を続ける。乱数rが、乱数リストに登録されていない場合(ステップS406でNO)、ステップS405で生成した乱数rを、乱数リストに登録する(ステップS407)。
無効化フラグが1に設定されている場合(ステップS409でYES)、対応する被保護プログラムは無効化されていることから、実行プログラム選択部112は、当該被保護プログラムを選択できないため、ステップS401に戻り処理を続ける。
ここでは、図15に示すフローチャートを用いて、不正解析通知処理の動作について説明する。なお、ここで説明する動作は、図11のステップS113の詳細である。
不正解析検出部116の不正解析通知部403は、プログラム実行部115を介してプログラムロード領域114にロードされていた被保護プログラムのプログラム識別子を取得する(ステップS501)。
不正解析を検出したのがデバッガ検出部401の場合(ステップS502で「デバッガ検出」)、不正解析通知部403は、不正解析検知コードを「1」に設定する(ステップS503)。その後、不正解析通知部403は、プログラム実行部115に含まれるレジスタファイルから汎用レジスタ、スタックポインタ、リンクレジスタ、及びプログラムカウンタの各値を取得する(ステップS504)。
不正解析通知部403は、取得したプログラム識別子を、不正解析ログ情報420のプログラム識別子421欄に記述し、更に、「1」及び「2」の何れかに設定した不正解析検知コードを不正解析検知コード欄422に記述する。次に、不正解析通知部403は、ステップS504でレジスタファイルの各値を取得した場合には、取得した各値を、不正解析ログ情報420の汎用レジスタ値欄423、スタックポインタ欄424、リンクレジスタ欄425、及びプログラムカウンタ欄426の各欄に記述し、不正解析ログ情報420を生成する(ステップS506)。
プログラム更新サーバ20の制御部602は、送受信部601から不正解析ログ情報420を受信すると、受信した不正解析ログ情報420を、不正解析ログ情報記憶部603へ書き込み、不正解析ログ情報記憶部603は、不正解析ログ情報420を記憶する(ステップS508)。
(1)本発明における被保護プログラムは、オリジナルプログラムの全体に難読化処理を施し、生成されたプログラムであってもよいし、オリジナルプログラムの一部分に難読化処理を施し、生成されたプログラムであってもよい。
(2)上記実施形態では、携帯電話機10のプログラム記憶部111は、それぞれが異なるバイナリコードを有する複数の被保護プログラムを記憶する構成を備えるが、本発明において、プログラム記憶部111は、バイナリコードである被保護プログラムを記憶していることは必須ではなく、例えば、異なる難読化を施したソースプログラムである被保護プログラムを記憶している構成であってもよい。この場合、プログラム実行部115は、インタプリタを用い、各被保護プログラムを実行するように構成してもよい。
具体的には、実行プログラム選択部112は、選択順序に応じて並べられたプログラム識別子を記憶しており、暗号化コンテンツの復号要求が発生すると、実行プログラム選択部112は、選択順序が上位のプログラム識別子を読み出す。続いて、実行プログラム選択部112は、無効化リスト記憶部117から無効化リスト500を読み込み、先に読み出したプログラム識別子により識別される被保護プログラムが、無効化されているか否かを判断する。無効化されていない場合には、当該被保護プログラムを選択し、プログラム先頭アドレス、及びプログラムサイズを、プログラムロード部113へ通知する。無効化されている場合には、実行プログラム選択部112は、選択順位が次のプログラム識別子を読み出し、上記の処理を繰り返す。このように、実行プログラム選択部112は、所定の選択順序に応じて、無効化されていない1の被保護プログラムを選択する。
(8)本発明における無効化リストには、正当な機関から発行された署名データが付加されていてもよい。この場合、実行プログラム選択部112は、ステップS101(図11)で無効化リストを読み込んだ後、署名データの検証を行い、署名データの検証に成功した場合、ステップS102以降の処理を継続し、署名データの検証に失敗した場合、即ち無効化リストが不正である場合には、ステップS102以降の処理を行わないように構成してもよい。この構成によると、無効化されている被保護プログラムが。無効化リストの改ざんにより無効化されていないものと判断されて、実行されるのを防止することができる。
この場合、複数の保護対象プログラムのそれぞれについて、複数の被保護プログラムが生成され、プログラム記憶部111には、これら複数の被保護プログラムが記憶されているものとする。また、無効化リスト記憶部117には、保護対象プログラム毎にそれぞれ無効化リストが記憶されているものとする。
(12)本発明において、携帯電話機10とプログラム更新サーバ20との間の通信は、安全な通信路、所謂SAC(Secure Authentication Channel)を確立し、SACを介して、被保護プログラムのダウンロード処理、不正解析ログ情報の送受信処理を行うよう構成してもよい。なお、SACについては、Secure Sockets Layer(SSL)等で利用されており、既知の技術で実現可能であるから、説明は省略する。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD‐ROM、MO、DVD、DVD‐ROM、DVD‐RAM、BD(Blu‐ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
(14)また本発明は、上記実施形態における携帯電話機10及びプログラム更新サーバ20の機能ブロックの一部又は全てが集積回路であるLSIとして実現される場合も本発明に含まれる。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応などが可能性として有り得る。
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の被保護プログラムを実行する際に、前記被保護プログラムが解析の対象とされているか否かを判断する解析検出手段を備え、
前記無効化手段は、
無効化されている被保護プログラムを示す無効化リストを記憶する無効化リスト記憶部と、
前記解析検出手段により、前記被保護プログラムが解析の対象とされていると判断されると、前記無効化リストに、前記被保護プログラムが無効化された旨を登録する無効化登録部とを備える
ことを特徴とする請求項1に記載のセキュア処理装置。 - 前記無効化リストは、当該無効化リストの正当性を証明するための署名データが付加されており、
前記選択手段は、
前記無効化リストに付加されている前記署名データを検証し、前記署名データの検証の結果、前記無効化リストの不正が検出された場合には、被保護プログラムの選択処理を中止する
ことを特徴とする請求項2に記載のセキュア処理装置。 - 前記複数の被保護プログラムは、オリジナルプログラムを難読化した難読化プログラムであって、各被保護プログラムは、難読化の方法及び/又は難読化の程度がそれぞれ異なることにより、異なるコードを有するプログラムである
ことを特徴とする請求項1に記載のセキュア処理装置。 - 前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、
前記難読化の方法として、前記オリジナルプログラムに含まれる複数の部分プログラムの内、異なる部分プログラムを暗号化する方法を用い、生成されたプログラムである
ことを特徴とする請求項4に記載のセキュア処理装置。 - 部分プログラムを暗号化することにより生成された前記1以上の被保護プログラムは、
暗号化の対象である各部分プログラムが、異なる暗号化アルゴリズム及び/又は異なる暗号鍵を用いて暗号化されたプログラムである
ことを特徴とする請求項5に記載のセキュア処理装置。 - 前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、
前記難読化の方法として、前記オリジナルプログラムに含まれる複数の命令の内、相互に依存関係にない命令である並列命令の実行順序を入れ替える方法を用い、生成されたプログラムである
ことを特徴とする請求項4に記載のセキュア処理装置。 - 前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、
前記難読化の方法として、前記オリジナルプログラムに含まれる命令を、当該命令と異なる処理を行い、且つ当該命令と同一の結果を出力する1以上の命令からなる恒等命令に置き換える方法を用い、生成されたプログラムである
ことを特徴とする請求項4に記載のセキュア処理装置。 - 前記複数の被保護プログラムの内、何れか1以上の被保護プログラムは、
前記難読化の方法として、前記オリジナルプログラムの結果に影響を与えない命令であるダミー命令を、前記オリジナルプログラムに挿入する方法を用い、生成されたプログラムである
ことを特徴とする請求項4に記載のセキュア処理装置。 - 前記セキュア処理装置は、
前記実行手段が1の被保護プログラムを実行する際に、前記被保護プログラムが解析の対象とされているか否かを判断する解析検出手段を備える
ことを特徴とする請求項1に記載のセキュア処理装置。 - 前記解析検出手段は、
前記実行手段による被保護プログラムの実行中にデバッガを検出すると、検出したデバッガを無効化するデバッガ検出部と、
前記デバッガ検出部によりデバッガが検出されると、前記実行手段に対し、実行中止を指示する指示部とを備え、
前記実行手段は、前記指示部から実行中止の指示を受け付けると、実行中である前記被保護プログラムの実行を中止する
ことを特徴とする請求項10に記載のセキュア処理装置。 - 前記解析検出手段は、
被保護プログラムの改ざんを検出する改ざん検出部と、
前記改ざん検出部により改ざんが検出されると、前記実行手段に対し、実行中止を指示する指示部とを備え、
前記実行手段は、前記指示部から実行中止の指示を受け付けると、前記被保護プログラムの実行を中止する
ことを特徴とする請求項10に記載のセキュア処理装置。 - 前記解析検出手段は、
前記被保護プログラムが解析の対象とされていると判断すると、前記解析に係る解析ログ情報を生成するログ情報生成部を備える
ことを特徴とする請求項10に記載のセキュア処理装置。 - 前記セキュア処理装置は、ネットワークを介して外部サーバと接続されており、
前記ログ情報生成部は、生成した前記解析ログ情報を、前記外部サーバへ送信する
ことを特徴とする請求項13に記載のセキュア処理装置。 - 前記解析検出手段は、更に、
所定の数値に設定された閾値を記憶している閾値記憶部と、
被保護プログラムが解析の対象とされていると判断した回数を保持し、前記判断の都度、保持している回数を更新する解析回数計数部とを備え、
前記無効化手段は、
前記解析回数計数部が保持している回数が前記閾値を超える場合に、前記被保護プログラムを無効化する
ことを特徴とする請求項10に記載のセキュア処理装置。 - 前記選択手段は、
無効化されていない1の被保護プログラムをランダムに選択する
ことを特徴とする請求項1に記載のセキュア処理装置。 - 前記選択手段は、
選択した被保護プログラムを識別するための情報を記憶しており、
前記情報を参照し、未選択であり、且つ無効化されていない1の被保護プログラムをランダムに選択する
ことを特徴とする請求項1に記載のセキュア処理装置。 - 前記選択手段は、
予め所定の選択順序を記憶しており、
無効化されていない1の被保護プログラムを、前記選択順序に応じて選択する
ことを特徴とする請求項1に記載のセキュア処理装置。 - 前記選択手段は、
前記複数の被保護プログラムについて、各被保護プログラムの難読化の程度を示す難読化度情報を記憶しており、
前記難読化度情報を参照し、難読化の程度の高い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択する
ことを特徴とする請求項1に記載のセキュア処理装置。 - 前記選択手段は、
前記複数の被保護プログラムについて、各被保護プログラムの難読化の程度を示す難読化度情報を記憶しており、
前記難読化度情報を参照し、難読化の程度の低い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択する
ことを特徴とする請求項1に記載のセキュア処理装置。 - 前記選択手段は、
実行速度の速い被保護プログラムから順に実行されるように、無効化されていない1の被保護プログラムを選択する
ことを特徴とする請求項1に記載のセキュア処理装置。 - 前記セキュア処理装置は、ネットワークを介して、被保護プログラムを保持しているプログラム更新サーバと接続されており、
前記選択手段は、
無効化されていない被保護プログラムの残数が、所定の閾値以下であるか否かを判断する判断部と、
前記判断部により、所定の閾値以下であると判断された場合に、前記プログラム更新サーバに対し、新たな被保護プログラムの送信を要求するプログラム要求部と、
前記プログラム更新サーバから、新たな被保護プログラムを受信するプログラム受信部と
を備えることを特徴とする請求項1に記載のセキュア処理装置。 - オリジナルプログラムと同一の結果が得られるように、前記オリジナルプログラムに基づき生成された複数の被保護プログラムを記憶しているプログラム記憶手段と、
解析の対象とされた被保護プログラムを無効化する無効化手段と、
前記複数の被保護プログラムから、無効化されていない1の被保護プログラムを選択する選択手段と、
選択された1の被保護プログラムを実行する実行手段と
を備えることを特徴とする集積回路。 - セキュア処理装置で用いられるセキュア処理方法であって、
前記セキュア処理装置は、
オリジナルプログラムと同一の結果が得られるように、前記オリジナルプログラムに基づき生成された複数の被保護プログラムを記憶しており、
前記セキュア処理方法は、
解析の対象とされた被保護プログラムを無効化する無効化ステップと、
前記複数の被保護プログラムから、無効化されていない1の被保護プログラムを選択する選択ステップと、
選択された1の被保護プログラムを実行する実行ステップと
を含むことを特徴とするセキュア処理方法。 - ネットワークを介して接続されてセキュア処理装置とプログラム更新サーバとから構成されるセキュア処理システムであって、
前記セキュア処理装置は、
オリジナルプログラムと同一の結果が得られるように、前記オリジナルプログラムに基づき生成された複数の被保護プログラムを記憶している第1記憶手段と、
解析の対象とされた被保護プログラムを無効化する無効化手段と、
前記複数の被保護プログラムから、無効化されていない1の被保護プログラムを選択する選択手段と、
選択された1の被保護プログラムを実行する実行手段と、
前記第1記憶手段に記憶されている複数の被保護プログラムの内、無効化されていない被保護プログラムの残数が、所定の閾値以下である場合に、前記プログラム更新サーバに対し、被保護プログラムの送信を要求する要求手段とを備え、
前記プログラム更新サーバは、
複数の被保護プログラムを記憶している第2記憶手段と、
前記セキュア処理装置から、被保護プログラムの送信要求を受け付ける要求受付手段と、
前記要求受付手段が前記送信要求を受け付けると、前記第2記憶手段から、1以上の被保護プログラムを読み出して、前記セキュア処理装置へ送信する送信手段とを備える
ことを特徴とするセキュア処理システム。
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)
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)
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 | 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置 |
-
2006
- 2006-02-23 KR KR1020077018213A patent/KR20070105989A/ko not_active Application Discontinuation
- 2006-02-23 CN CNA2006800060504A patent/CN101128833A/zh active Pending
- 2006-02-23 JP JP2007504784A patent/JP4796050B2/ja not_active Expired - Fee Related
- 2006-02-23 EP EP06714460A patent/EP1862937A1/en not_active Withdrawn
- 2006-02-23 WO PCT/JP2006/303320 patent/WO2006090800A1/ja active Application Filing
Patent Citations (3)
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 |