JP4814319B2 - データ処理装置、方法、プログラム、集積回路、プログラム生成装置 - Google Patents
データ処理装置、方法、プログラム、集積回路、プログラム生成装置 Download PDFInfo
- Publication number
- JP4814319B2 JP4814319B2 JP2008513216A JP2008513216A JP4814319B2 JP 4814319 B2 JP4814319 B2 JP 4814319B2 JP 2008513216 A JP2008513216 A JP 2008513216A JP 2008513216 A JP2008513216 A JP 2008513216A JP 4814319 B2 JP4814319 B2 JP 4814319B2
- Authority
- JP
- Japan
- Prior art keywords
- debug
- program
- debugger
- unit
- permitted
- 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 322
- 238000000034 method Methods 0.000 title claims description 150
- 230000008569 process Effects 0.000 claims description 118
- 230000006870 function Effects 0.000 claims description 79
- 238000012795 verification Methods 0.000 claims description 74
- 230000015654 memory Effects 0.000 claims description 51
- 230000007246 mechanism Effects 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 49
- 238000003860 storage Methods 0.000 description 42
- 238000004364 calculation method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 238000007781 pre-processing Methods 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000009826 distribution Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 239000013589 supplement Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- 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
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Description
例えば、暗号化されたディジタルコンテンツの復号処理を行って再生するプログラムを不正者が不正に解析して改ざんすることができると、ディジタルコンテンツが不正に利用されるおそれが出てくる。すなわち、不正者がディジタルコンテンツを不正に再生したり、ディジタルコンテンツの複製回数や再生回数を制限していても、その制限を無効化したりする。
こうすることで、認証コードを知らない者は、認証に失敗するので、セキュアドメインにおいて動作するプログラムを不正者がデバッグすることを防ぐことができる。
一方、近年では、プログラム開発の負担を和らげるために、複数のプログラムがそれぞれ別の権利者により開発され、これらプログラムが連係して動作する場合がある。例えば、OMADRM(Open Mobile Alliance Digital Rights Management)規格で配信された音楽コンテンツを、SDメモリカード(SecureDigital Memory Card)にSD-Audio規格でエクスポートする場合、OMA DRM規格に基づいた処理を行うプログラムとSD-Audio規格に基づいた処理を行うプログラムとがそれぞれ別の権利者によって開発され、これらプログラムが連係して動作する。
そうすると、前記他の権利者側の開発者は、認証コードを知っていると、連係動作にかかるプログラムに限らず、あらゆる保護プログラムをデバッグすることができる。その結果、デバッグされることを前記ある権利者が望まない保護プログラムをも、前記他の権利者側の開発者は、その保護プログラムを入手することができればデバッグできてしまう。したがって、前記ある権利者は、連係動作するプログラム群を共同開発する場合、デバッグされることを望まない他の保護プログラムが解析等されて機密情報が外部に流出するかもしれないという多大なリスクを抱えることとなる。このようなリスクを伴うために、連係動作するプログラム群を、プログラムを保護しつつそれぞれ異なる権利者が共同で開発するのは困難である。
したがって、当該プログラムの権利者は、当該プログラムのデバッグ処理を行うことが可能なデバッグ処理部の識別子を、自身がそのプログラムに含ませた検証値によって指定することができる。
ところで、プログラムの権利者としては、当該プログラムを他の権利者等にデバッグさせることを許容するとしても、そのプログラムのデバッグを制限したいことがある。例えば、当該プログラムに秘匿しておきたい情報が含まれている場合は、その秘匿部分が暴露されると様々な方面で損害が発生しうるため、その秘匿部分については解析されないようにしたいものである。
具体的には、前記アクセス制御リストに示される前記部分のそれぞれは、前記デバッグ対象プログラムをメモリにロードする場合におけるロード先メモリアドレスの前記部分それぞれに対応するアドレス範囲を示し、前記アクセス制御リストには、前記部分それぞれに対応する前記アドレス範囲のそれぞれについて、アクセスの可否が対応づけられており、前記アクセス判定手段は、前記デバッグ対象プログラムをメモリにロードする場合におけるロード先メモリアドレスの前記一部分に対応するアドレス範囲について、前記アクセス制御リストにおいて対応づけられているアクセスの可否を参照することにより前記判定を行うこととしてもよい。
この他に、前記アクセス制御リストに示される前記部分のそれぞれは、前記デバッグ対象プログラムに含まれるシンボルを示し、前記アクセス制御リストには、前記シンボルのそれぞれについて、アクセスの可否が対応づけられており、前記アクセス判定手段は、前記デバッグ対象プログラムの前記一部分に含まれるシンボルについて、前記アクセス制御リストにおいて対応づけられているアクセスの可否を参照することにより前記判定を行うこととしてもよい。
ところで、利害関係者によってプログラムの保護の強度を柔軟に設定したい場合がある。例えば、関連会社の有するデバッグ処理部に対しては、広くデバッグ処理の実行を許可し、部外者のデバッグ処理部に対しては、秘匿情報を含めてデバッグ処理の実行を制限したい場合などである。
また、前記データ処理装置は、さらに、表示部を備え、前記制御手段は、前記第1の場合、前記一部分のデバッグ処理が禁止された旨を示す表示を前記表示部に行わせ、前記第2の場合、前記デバッグ処理の結果を前記表示部に表示させる表示制御部を含むとすることが望ましい。
上述のデータ処理装置においては、判定手段による判定の仕方は、前記判定手段は、前記検証値と前記識別子とを比較し、前記検証値と前記識別子とが一致した場合に、前記デバッグ処理が許可されていると判定する、とするとよい。
この他に、判定の仕方としては、前記判定手段は、比較値を不正アクセスから保護された状態で記憶する比較値保持部を含み、前記検証値と前記識別子とを演算子として用いた所定の演算を行い、その演算結果が、前記記憶している前記比較値と一致した場合に、前記デバッグ処理が許可されていると判定する、としてもよい。
このデータ処理装置は、具体的には、前記データ処理装置は、外部からの不正アクセスを防止する機構を備えたセキュアドメインを有し、前記データ処理装置は、動作モードとして、通常モードとセキュアモードとを備え、前記通常モードと前記セキュアモードとを切り替えて動作し、前記セキュアモード時においてのみ前記セキュアドメインを用いて動作し、前記データ処理装置は、さらに、前記通常モードと前記セキュアモードとを切り替える切替部を備え、前記通常モードで動作するプログラムは、前記切替部を経由して所定の処理の要求を前記セキュアモードで動作するプログラムに通知することで前記セキュアモードで動作するプログラムにアクセス可能であり、前記デバッグ対象プログラムは、前記セキュアドメインにおいて記憶され、前記第2取得手段は、前記セキュアドメインにおいて前記デバッグ対象プログラムから前記検証値の前記取得を行い、前記判定手段は、前記セキュアドメインにおいて前記判定を行う、という構成で実現することもできる。
したがって、前記検証値は、データ処理装置がこれを取得する過程において、利害関係者や不正者等、何人も知得することが難しい。そのため、不正者等は、プログラムを入手したとしても、プログラムのデバッグ処理が可能な識別子を有するデバッグ処理部を特定することが困難となるので、プログラムが不正にデバッグされる可能性を小さくすることができる。また、プログラムに前記検証値が含まれているので、デバッグの可否を制御するための情報を予めデータ処理装置に記憶させておく必要もない。
また、この構成においても、前記デバッグ対象プログラムの前記所定部分には、前記デバッグ対象プログラムを構成する各部分についてアクセスが許可または不許可であることを示すアクセス制御リストが含まれ、前記第2取得手段は、前記デバッグ対象プログラムの前記所定部分に含まれる前記アクセス制御リストを取得するアクセス制御リスト取得部を含み、前記データ処理装置は、さらに、前記取得した前記アクセス制御リストに基づいて、前記デバッグ対象プログラムの前記一部分のアクセスが許可されているかを判定するアクセス判定手段を備え、前記アクセス判定手段は、前記セキュアドメインにおいて前記判定を行い、前記制御手段は、前記デバッグ処理部が出力した前記デバッグ処理要求にかかる前記デバッグ対象プログラムについて、前記判定手段により許可されていると判定され、かつ、前記アクセス判定手段により許可されていないと判定された場合、前記セキュアデバッガによる前記一部分の前記デバッグ処理の実行を禁止し、前記判定手段により許可されていると判定され、かつ、前記アクセス判定手段により許可されていると判定された場合、前記一部分のデバッグ処理を前記セキュアデバッガに実行させることとしてもよい。
また、プログラムが連係して動作する場合には、以下の構成とするとよい。
すなわち、前記デバッグ処理部は、前記通常プログラム、および、前記通常プログラムと連係する前記デバッグ対象プログラムに対してデバッグ処理を行う機能を有し、前記デバッグ処理部による前記デバッグ対象プログラムのデバッグ処理は、前記デバッグ処理部がデバッグ処理要求を出力し、出力された前記デバッグ処理要求に対して前記セキュアデバッガにより行われたデバッグ処理の結果を前記切替部を介して前記デバッグ処理部が受け付けることにより行われることとしてもよい。
ところで、通常モードで動作しているプログラムからは、セキュアモードで動作しているプログラムに直接アクセスできないので、セキュアモードにおいて通常モードで動作しているデバッグ処理部は、いつからセキュアモードにおいてデバッグ対象プログラムが動作したかがわからない。そのため、プログラムの開発者にとって、セキュアモードで動作するデバッグ対象プログラムのデバッグが困難となっている。
こうすることで、デバッグ対象プログラムが動作を開始すると、ブレーク命令によりいったん動作が止まるので、プログラムの開発者に対してデバッグ処理の実行のための設定等を行わせることが可能となる。
また、前記データ処理装置は、さらに、前記通常プログラムのデバッグ処理の結果を第1の表示領域に表示する第1の結果表示部と、前記通常プログラムとの連係にかかるデバッグ対象プログラムのデバッグ処理の結果を、前記第1の表示領域とは異なる第2の表示領域に表示する第2の結果表示部とを備え、前記第1および第2の結果表示部は、前記連係にかかるデバッグ対象プログラムと前記通常プログラムとが連係して動作しているとき、前記第1の表示領域および前記第2の表示領域に、前記デバッグ対象プログラムと前記通常プログラムのデバッグ処理の結果を表示するとしてもよい。
また、前記通常モードにおいては、通常OSが動作し、前記セキュアモードにおいては、保護OSが動作し、前記通常プログラムは、前記通常OSが生成するプロセスとして前記通常モードにおいて動作し、前記デバッグ処理部は、前記通常OSで動作するデバッガとして前記通常モードにおいて動作し、前記デバッグ対象プログラムは、前記保護OSが生成するプロセスとして前記セキュアモードにおいて動作し、前記セキュアデバッガは、前記保護OSの有する機能として実装されているとしてもよい。
これにより、デバッグ処理部を用いてデバッグしているユーザは、デバッグ対象プログラムのデバッグが許可されていない場合に、その旨を知ることができる。
すなわち、プログラム生成装置は、秘匿すべき保護情報を含んだプログラムを取得するプログラム取得手段と、取得した前記プログラムに対するデバッグ処理をデバッグ処理部の識別子に応じて許可するか否かを判定するための検証値を生成する検証値生成手段と、前記プログラムについて前記検証値生成手段で生成された検証値を前記プログラムに付加して保護プログラムを生成する保護プログラム生成手段とを備えることを特徴とする。
この構成によると、プログラムの開発者自身が前記検証値をプログラムに含ませるので、開発者の意図したようにプログラムのデバッグ処理の実行を制御することができる。
1 実施の形態1
図1は、本発明の実施の形態1におけるデータ処理装置1の概略図である。データ処理装置1は、保護機構を持つLSI2と切替機構3、保護OS6、デバッグ機能7、保護プログラム8(8a、8b、・・)、通常OS11、通常プログラム12(12a、12b、・・)、切替デバイスドライバ13(以下、「切替デバドラ13」という)、デバッガ14、デバッガ用切替デバイスドライバ15(以下、「デバッガ用切替デバドラ15」という)から構成される。
1.1.1 LSI2
図1において、LSI2は、プログラムの不正な解析や改竄から保護するための機構である保護機構を搭載している。保護機構は、外部からの不正アクセスを防止するハードウェア機構を有している。保護機構の具体的な例としては、外部からのアクセスを一時的に遮断する等が挙げられる。
保護モードとは、保護機構によってプログラムが不正な解析や改ざんから保護される特殊なモードであり、保護OS6や保護プログラム8が動作する。一方、通常モードとは、保護機構によってプログラムが保護されない一般的なモードであり、通常OS11や通常プログラム12が動作する。
1.1.2 切替機構3
切替機構3は、保護OS6や通常OS11からの、動作モードの切り替え指示を受け付けて、動作モード切り替えに必要な処理を行うためのハードウェア機構を有する。動作モードの切り替え処理は、例えば、非特許文献1に記載の技術を適用することができる。
保護OS6は、LSI2が保護モードの時の、データ処理装置1の動作を制御するOSである。
保護OS6は、保護モード上で動作する保護プログラム8の管理(プロセス管理)やリソース管理、メモリ管理ユニット(MMU)を用いた保護プログラム間のアクセス制御、割り込み処理、切替機構3を用いた通常モードへの切替処理、保護プログラムをデバッグするためにデバッグ機能7を用いたデバッグ処理などを行う。
デバッグ機能7は、デバッガ14が保護プログラム8に対するデバッグ処理を行う際に、そのデバッグ処理の実行を制御する。
すなわち、デバッグ機能7は、デバッガ14が保護プログラム8をデバッグするときに、デバッガ14による保護プログラム8のデバッグが許可されているかどうかを判定する。判定の結果、許可されている場合には、デバッガ14からの要求に従い、デバッグ情報の取得やブレークポイントの設定、レジスタ値やメモリ値の取得・設定などの処理を保護プログラム8に対して行う。なお、デバッグ情報とは、プログラムのデバッグのための情報であり、オブジェクトファイル中のプログラムコードとソースコードの対応関係などを示す。また、デバッグ機能7は、停止フラグを用いて、保護プログラム8のデバッグ処理の前処理を行う。なお、デバッグ機能7の詳細については、後述する。
保護プログラム8は、不正な解析や改ざんから保護しなければならない情報(以下、秘匿情報)を含むアプリケーションプログラムである。
秘匿情報の例としては暗号化されたディジタルコンテンツを復号するための復号鍵や復号アルゴリズム、再生やコピーに関する権利を格納する権利情報等がある。また、保護プログラム8は不正な解析を防止するため、実行が開始されるまでは暗号化された状態で保持されており、実行開始時に保護OS6によって復号化される。
保護プログラム8は、実行が開始されるまでは、図5に示す暗号化された保護プログラム73のように、暗号化された状態で保持されている。
図5に示すように、暗号化された保護プログラム73は、保護プログラム本体51と、許可デバッガID情報52と、アクセス制御リスト53と、復号化用ヘッダ情報54とから構成される。暗号化された保護プログラム73を、復号化用ヘッダ情報54を用いて復号すると、保護プログラム8が得られる。保護プログラム8は、保護プログラム本体51と、許可デバッガID情報52と、アクセス制御リスト53とからなる。
保護プログラム本体51は、プログラムの実行コードである。
1.1.5.3 許可デバッガID情報52
許可デバッガID情報52は、保護プログラム8に対するデバッグ処理を許可するか否かを判定するための検証値である。この実施形態では、許可デバッガID情報52とは、保護プログラム8に対するデバッグ処理が許可されているデバッガの識別子(デバッガID)を示していることとする。すなわち、許可デバッガID情報52に示される値と同一のデバッガIDを有するデバッガが、保護プログラム8に対するデバッグ処理を行うことができる。デバッグ機能7の前記判定に際しては、この許可デバッガID情報52が用いられる。
アクセス制御リスト53は、保護プログラム8の所定領域に対するアクセスが許可されているか否かを示すリストである。アクセス制御リスト53とは、要するに、保護プログラム8を構成する各部分のそれぞれについて、アクセスを許可するか否かを対応づけたものである。アクセス制御リスト53の詳細は後述する。
復号化用ヘッダ情報54は、暗号化された保護プログラム73の復号化に必要な情報を示す。例えば、暗号化に用いられたアルゴリズムや、保護プログラム8をメモリにロードするアドレスなどが復号化用ヘッダ情報54には含まれる。なお、暗号化されたプログラムに、復号化に必要な情報を付加してプログラムの復号を行う技術は従来広く知られており、本発明の主要な構成要件ではないため詳細な説明を省略する。
保護プログラム8のうち、許可デバッガID情報52やアクセス制御リスト53や保護プログラム本体51は、どのように配置してもよい。具体的には、どのように許可デバッガID情報52等を配置しているかという情報を、ヘッダ等の情報としてプログラムに付加してもよい。
また、これら許可デバッガID情報52等を、保護プログラム8内にどのように配置するかを、復号化用ヘッダ情報54に含めてもよい。デバッグ機能7は、これら許可デバッガID情報52等の保護プログラム8に占める位置を示す情報を読み取る等することで、許可デバッガID情報52やアクセス制御リスト53を取得することができる。
1.1.6 通常OS11
通常OS11は、LSI2が通常モードの時の、データ処理装置1の動作を制御するOSである。
1.1.7 切替デバドラ13
切替デバドラ13は、通常OS11のデバイスドライバとして動作し、通常プログラム12が保護プログラム8との通信を行うときに使用する。なお、後述するが、デバッガ14がデバッグ機能7との通信を行う場合は、デバッガ用切替デバドラ15が利用される。
1.1.8 デバッガ用切替デバドラ15
デバッガ用切替デバドラ15は、通常OS11のデバイスドライバとして動作し、デバッガ14がデバッグ機能7との通信を行うときに使用する。
デバッガ用切替デバドラ15は、デバッガ14とデバッグ機能7の通信データの受け渡し処理と、通常モードから保護モードへの切替処理を行う。
通常プログラム12(12a、12b、・・)は、通常OS11上で動作するアプリケーションプログラムである。
通常プログラム12は、切替デバドラ13を利用して保護モードで動作する保護プログラム8と通信を行い、保護プログラム8と連携して動作する。
デバッガ14は、通常プログラム12に対してデバッグ処理を行う機能と、保護プログラム8に対してデバッグ処理を行う機能とを有する。デバッガ14は、自身を識別するための識別子であるデバッガIDを有している。デバッグ機能7による、デバッグが許可されているか否かの判定に際しては、このデバッガIDが用いられる。なお、デバッガ14のデバッガIDの管理等に関しては、実施の形態3で詳しく説明する。
また、保護プログラム8に対してデバッグ処理を行う機能とは、デバッガ14が、デバッガ用切替デバドラ15を介して保護OS6のデバッグ機能7と通信し、デバッグ機能7が保護プログラム8に対してデバッグ情報の取得やブレークポイントの設定、レジスタ値やメモリ値の取得・設定などのデバッグ処理を行い、そのデバッグ処理の結果を受け付ける機能のことである。
なお、本実施の形態1におけるデバッガ14は、通常OS11上で動作するアプリケーションデバッガとしたが、これに限定するものではなく、例えばLinux(登録商標)で使用されるKGDB等のカーネルモードデバッガとし通常モードや保護モードで動作するデバイスドライバのデバッグを可能としてもよい。
「1.1.4 デバッグ機能7」で説明したデバッグ機能7の詳細を、以下、説明する。
図2はデバッグ機能7の詳細なブロック図である。デバッグ機能7は、制御部21、デバッガID判定部22、アクセス判定部23、セキュアデバッガ24とを有している。セキュアデバッガ24は、デバッグ情報取得部25、ブレークポイント設定部26、レジスタ値取得設定部27、メモリ値取得設定部28とを有している。
なお、以下のデバッグ機能7の説明では、デバッグ対象の保護プログラムについて、どのプログラムがデバッグ対象か特定せず、デバッグ対象の保護プログラム8と総称して説明する。
図2において、デバッガID判定部22は、デバッガ14が、デバッグ対象の保護プログラム8に対するデバッグ処理を許可されているか否かを判定する。
すなわち、デバッガID判定部22は、デバッガ14の持つデバッガIDと、デバッグ対象の保護プログラム8に含まれる許可デバッガID情報52とを取得する。取得したデバッガIDと許可デバッガID情報52とを比較する。その比較の結果に応じて、デバッグ対象の保護プログラム8のデバッグ(すなわち、デバッガ14によるデバッグ対象の保護プログラムに対するデバッグ処理の実行)がデバッガ14に許可されているか否か判定を行う。
図3はデバッガID判定部22の詳細なブロック図である。
図3に示すように、デバッガID判定部22は、デバッガID比較部31とデバッガID演算部32、比較値保持部33とを有している。デバッガID判定部22は、デバッガ14のデバッガIDとデバッグ対象の保護プログラム8に含まれる許可デバッガID情報52に示される値とが一致しているかどうかを判定する。
デバッガID比較部31は、デバッガID演算部32の演算結果と、比較値保持部33の保持している比較値とを比較し、一致している場合に「デバッグ可」を制御部21に通知し、一致しなかった場合に「デバッグ不可」を制御部21に通知する。なお、比較値保持部33は、デバッガID演算部32の演算結果と比較するための比較値として"0"を保持している。
なお、本実施の形態1におけるデバッガID判定部22は、デバッガ14のデバッガIDとデバッグ対象の保護プログラム8に含まれる許可デバッガID情報52に示される値とが一致しているかどうかを判定するとしたが、デバッガIDの一致を判定することに限定するものではない。すなわち、デバッガID演算部32では減算以外に乗算や暗復号演算を行ってもよい。また、比較値保持部33では"0"以外の値を保持するとしてもよい。
また、この他に、図示しないデバッガID保持部に予め保護プログラム8の許可デバッガID情報52に示される値を保持しておき、デバッガID判定部22がデバッガ14から受け付けたデバッガ14のデバッガIDと、デバッガID保持部に保持している値とを比較するとしてもよい。この場合、デバッガID演算部32は特に演算を行わない。
図2に戻って説明を続ける。
アクセス判定部23は、デバッガ14がデバッグ対象の保護プログラム8の所定領域に対してアクセスを要求している場合に、そのアクセスが許可されているか判定する。
すなわち、アクセス判定部23は、デバッグ対象の保護プログラム8からアクセス制御リスト53を取得し、取得したアクセス制御リスト53に基づいて、デバッガ14がアクセスしようとしている領域へのアクセスが許可されているかどうか判定を行う。
ここで、アクセス制御リスト53の詳細について説明する。
図6は、アクセス判定部23が取得するアクセス制御リスト53のデータ構造の例を示す図である。
アクセス制御リスト53は、アクセス制御を行う領域と、その領域に関するアクセス許可情報の2つの部分からなる。以下の説明では、メモリアドレスでアクセス制御を行う場合のアクセス制御リスト53aと、シンボルによってアクセス制御を行う場合のアクセス制御リスト53bとについて説明する。なお、シンボルとは、プログラムに含まれる変数や関数などを識別する識別子のことである。
図6(a)は、アクセス制御を行う領域をメモリアドレスで指定するときのアクセス制御リスト53aのデータ構造であり、アクセス制御を行う領域は開始アドレスと終了アドレスで指定される。
図6(a)に示すように、アクセス制御リスト53aの1件のレコードは、開始アドレス61aと、終了アドレス62aと、アクセス許可情報63aとを含む。
アクセス許可情報63aは、開始アドレス61aと終了アドレス62aとに示されるメモリ領域へのアクセスを許可するか否かを示す。許可する場合は「アクセス可」、許可しない場合は「アクセス不可」を例えば1ビットの情報で示す。アクセス制御リスト53aには、開始アドレス61aおよび終了アドレス62aにより示されるメモリ領域の組を複数含んでおり、これら組のそれぞれに、アクセスを許可するか否かを対応づけて記憶している。
また、開始アドレス61a等に示されるアドレスは、本実施形態では、相対的なアドレスである。すなわち、保護プログラム8の復号化用ヘッダ情報54には、保護プログラム8をメモリにロードする際のメモリアドレスが示されており、このメモリアドレスの先頭を0とした相対的なアドレスが、開始アドレス61a等に示されている。もちろん、開始アドレス61a等に示されるアドレスは、メモリの絶対アドレスとしてもよい。
アクセス判定部23は、アクセス制御リスト53aと保護プログラム8aのデバッグ情報を取得する。また、デバッガ14がアクセスを要求しているシンボルを、保護プログラム8aのデバッグ情報を用いてアドレスに変換する。
アクセス判定部23は、変換したアドレスが、アクセス制御リスト53a中の開始アドレス61aおよび終了アドレス62aにより示されるメモリ領域それぞれに含まれるかどうかをリストの上から順に判定する。含まれると判定されると、その領域に対応づけられたアクセス許可情報63aを取得し、アクセス許可情報63aに示される情報、すなわち「アクセス可」か「アクセス不可」かを制御部21に通知する。また、リスト中のメモリ領域に含まれなかった場合には、リスト先頭の「default」と対応づけられているアクセス許可情報63aに基づいて「アクセス可」か「アクセス不可」かを制御部21に通知する。
図6(b)は、アクセス制御を行う領域をシンボル名で指定するときのアクセス制御リスト53bのデータ構造であり、アクセス制御を行う領域はシンボル名で指定される。
図6(b)に示すように、アクセス制御リスト53bの1件のレコードは、シンボル名64bと、アクセス許可情報65bとを含む。
アクセス許可情報65bは、シンボル名64bに示されるシンボルに対するアクセスを許可するか否かを示す。
図6(b)に示すように、アクセス制御リスト53bには、シンボルそれぞれについて、アクセスを許可するか否かが示されている。
1.2.2.5 シンボルによってアクセス制御を行う場合の動作
アクセス判定部23は、アクセス制御リスト53bを取得する。デバッガ14がアクセスを要求しているシンボルの名称が、アクセス制御リスト53b中のシンボル名64bに示されるシンボル名と一致するかをリストの上から順に判定する。リスト中のシンボル名と一致した場合にはそのシンボル名に対応づけられたアクセス許可情報65bを取得し、アクセス許可情報65bに示される情報、すなわち「アクセス可」か「アクセス不可」かを制御部21に通知する。リスト中のシンボル名と一致しなかった場合には、リストの先頭の「default」と対応づけられているアクセス許可情報65bに基づいて「アクセス可」か「アクセス不可」かを制御部21に通知する。
なお、本実施の形態1におけるアクセス制御リスト53a、53bは、そのリストの先頭に、アクセス制御リスト53a、53bに示されていないシンボルを「default」として、「default」に対応づけてアクセス許可情報63a、65bを記憶することとしているが、これに限定するものではない。
また、デバッガ14は、シンボルによりアクセスを要求するとしたが、シンボルに限定するものではない。例えば、デバッガ14はメモリのアドレスによりアクセスする領域を指定してもよい。
1.2.3 セキュアデバッガ24
セキュアデバッガ24は、デバッガ14からの依頼に応じて、様々なデバッグ処理を行う。
デバッグ処理としては、デバッグ情報取得部25により、デバッグ対象の保護プログラム8からシンボル情報などのデバッグ情報を取得する処理を行う。
また、ブレークポイント設定部26により、デバッグ対象の保護プログラム8にブレークポイントを設定する処理を行う。
また、メモリ値取得設定部28により、デバッグ対象の保護プログラム8が使用しているメモリの値を取得し、あるいはデバッグ対象の保護プログラム8が使用するメモリの値を設定する。
制御部21はデバッガID判定部22とアクセス判定部23との判定結果に基づいて、デバッガ14によるデバッグ対象の保護プログラム8に対するデバッグ処理の実行が許可されているかを確認する。
確認の結果、デバッグ処理の実行が許可されていれば、制御部21は、デバッガ14からの依頼に応じてセキュアデバッガ24に含まれる各処理(デバッグ情報取得部25、ブレークポイント設定部26、レジスタ値取得設定部27、メモリ値取得設定部28)を呼び出す。
もちろん、1のデバッガIDが含まれる許可デバッガID情報52を複数含み、それぞれの許可デバッガID情報52に、アクセス制御リスト53を対応づけることとしてもよい。この場合、アクセス制御リスト53は、それぞれの許可デバッガID情報52ごとに異なるアクセス制限を示すものであってもよい。こうすると、デバッガIDごとに、異なるアクセス制限を課すことができる。
「1.1.7 切替デバドラ13」で説明した切替デバドラ13の詳細を、以下、説明する。
図4は切替デバドラ13のブロック図である。切替デバドラ13は、切替操作部41、要求振り分け部42、通常要求受付部43、デバッグ要求受付部44とを有している。
切替操作部41は、通常モードで使用しているレジスタ値などを保存することで通常モードでのデータ処理装置の状態を退避し、その後、切替機構3を使用して通常モードから保護モードへ切り替える処理を行う。
さらに、保護モードから通常モードへ切り替わったときに、退避しておいた状態の復帰処理を行い、切り替え時に発生した保護モードからの要求を要求振り分け部42に通知する。なお、この要求としては、デバッグ例外によるデバッグ要求と、通常プログラム12への要求とがある。
要求振り分け部42は、保護モードからの要求が、保護モード動作中に発生したデバッグ例外によるデバッグ要求か、通常プログラム12への要求かを判断する。
判断の結果、デバッグ要求の場合にはデバッグ要求受付部44にデバッグ要求を通知し、通常プログラム12への要求の場合は通常要求受付部43に保護モードからの要求を通知する。
通常要求受付部43は、保護OS6や保護プログラム8等の保護モードで動作しているプログラムと、通常プログラム12との通信を仲介する。
すなわち、保護モードで動作しているプログラムからの要求を通常プログラム12へ通知したり、反対に通常プログラム12からの要求を保護モードで動作しているプログラムへ通知したりする。
デバッグ要求受付部44は、保護プログラム8中に設定されたブレークポイントにより発生したデバッグ例外を、保護プログラム8と連係動作中の通常プログラム12をデバッグしているデバッガ14に通知する。
切替デバドラ13を上述の様な構成にすることにより、通常プログラム12と保護プログラム8との通信を仲介しつつ、保護プログラム8で発生したデバッグ例外を適切なデバッガ14に通知することが可能となる。こうすることで、保護プログラム8に含まれる秘匿情報を無関係なデバッガに通知することによる秘匿情報の流出を防ぐことができる。
なお、本実施の形態1における切替デバドラ13は、切替操作部41以外に要求振り分け部42や通常要求受付部43、デバッグ要求受付部44から構成されるとしたが、この様な構成に限定するものではない。例えば、切替デバドラ13は切替操作部41だけからなり、要求振り分け部42や通常要求受付部43、デバッグ要求受付部44は通常プログラム12にライブラリとして組み込まれていてもよい。この場合、要求振り分け部42や通常要求受付部43、デバッグ要求受付部44の動作は、通常プログラム12の実行中に呼び出されるライブラリが行うこととなる。
続いて、データ処理装置1の動作について説明する。
以下の説明では、まず、本発明の特徴でもある、デバッグ機能7の動作を「1.4.1 デバッグ機能7の動作」で説明する。
次に、全体の動作として、デバッグ処理を行わない場合の動作を「1.4.2 デバッグ処理を行わない場合の動作」で説明する。すなわち、通常プログラム12と保護プログラム8との連係動作を説明する。
なお、保護プログラム8は保護モードで動作するプログラムのため、通常モードで動作するプログラムおよびデバッガは保護プログラム8へ直接にはアクセスできない。そのため、セキュアデバッガ24が保護プログラム8へのデバッグ処理を行って、デバッガ14は、その結果を受け付ける。
図7は、デバッグ機能7の動作を示す図である。
デバッガID判定部22は、デバッガ14のデバッガIDと保護プログラム8の許可デバッガID情報52とに基づいて、デバッガ14による保護プログラム8のデバッグが許可されているかどうか判定する(S101)。
デバッガID判定部22の判定結果が「デバッグ可」であった場合には(S102:YES)、アクセス判定部23は、デバッガ14がアクセスしようとしている保護プログラム8の領域が、デバッガ14によるアクセスが許可されているかを、保護プログラム8のアクセス制御リスト53に基づいて判定する(S103)。
アクセス判定部23の判定結果が「アクセス可」であった場合には(S104:YES)、デバッグ機能7は、セキュアデバッガ24の各処理部(デバッグ情報取得部25、ブレークポイント設定部26、レジスタ値取得設定部27、メモリ値取得設定部28)を呼び出して処理を行わせる(S105)。
図8は、本発明の実施の形態1における、デバッグを行わない場合の通常プログラム12および保護プログラム8の実行のフローチャートである。
1.4.2.1 保護プログラム8のロード処理
まず、保護プログラム8のロード処理についての説明を行う。なお、以下では、通常プログラム12と保護プログラム8とは、連係して動作するものとする。通常プログラム12は、通常OS11のデバイスドライバである切替デバドラ13と保護OS6を経由して、保護プログラム8を呼び出す。以下の説明では、通常プログラム12aが、保護プログラム8aと連係して動作する場合を例にして説明する。なお、通常プログラム12bが動作する場合や、保護プログラム8bが連係して動作する場合も同様である。
通常プログラム12aは、保護プログラム8aを動作させるために、暗号化された保護プログラムを指定し、その指定にかかる暗号化された保護プログラムをメモリへロードさせる要求を、切替デバドラ13を経由して、保護OS6へ通知する(ステップS202)。なお、ここでは、暗号化された保護プログラムを復号すると、保護プログラム8aが生成されることとする。
保護プログラム8aが実行できる状態になると、保護OS6から切替デバドラ13を経由して通常プログラム12aへリターンする(ステップS205)。すなわち、通常プログラム12aにプロセスの実行権が移り、通常プログラム12aの実行が再開される。
続いて、通常OS11において通常プログラム12aが実行している時に、通常プログラム12aが保護プログラム8aの有する機能の実行が必要になった場合の処理を説明する。
図9は、通常プログラム12が、保護プログラム8の機能の実行を必要とする場合の動作を示すフローチャートである。
通常プログラム12aは、保護プログラム8aの実行の要求を、切替デバドラ13を経由して、保護OS6へ通知する(ステップS206)。前記実行の要求には、保護プログラム8aが行うべき命令や処理が示されている。
保護プログラム8aが処理を終えると、保護プログラム8aから保護OS6、切替デバドラ13を経由して、通常プログラム12aへリターンする(ステップS208)。保護プログラム8aの処理結果を通常プログラム12aが利用することがあれば、切替機構3や切替デバドラ13を経由して保護プログラム8aと通常プログラム12aとの間で処理結果の受け渡しが行われる。
1.4.2.3 保護プログラム8の使用の終了
続いて、通常プログラム12aが保護プログラム8aの使用を終了する場合の動作を説明する。
図10に示すように、通常プログラム12aが保護プログラム8aの使用を終了すると、通常プログラム12aは、保護プログラム8aの削除の要求を、切替デバドラ13を経由して、保護OS6へ出力する(ステップS209)。なお、削除の要求には、削除の対象となる保護プログラム8が示されている。本実施形態では、削除の要求により保護プログラム8aを削除することとする。
1.4.3 デバッグ処理の前処理
次に、通常プログラム12と保護プログラム8とに対して、デバッガ14がデバッグ処理を行う場合の動作を説明する。まず、デバッグ処理の前処理を説明する。
図11は、デバッガ14が、通常プログラム12と保護プログラム8とに対するデバッグ処理を行うための前処理を示すフローチャートである。
なお、以下の説明では、通常プログラム12aと保護プログラム8aとが連係して動作するものとし、デバッガ14は、通常プログラム12aと保護プログラム8aとに対してデバッグ処理を行うこととする。
デバッガ14は、デバッグ処理実行時に保護モードで動作しているデバッグ機能7と通信するために、デバッガ用切替デバドラ15をopenする(S302)。
デバッグ機能7は、通知されたプロセスIDを保存し、保護プログラム8aを実行するときに、実行開始直後に保護プログラムを停止するかどうかを示す停止フラグを有効にする(S304)。なお、停止フラグを有効にする処理を行う理由は後述の「1.4.3.2 前処理の補足」で説明する。停止フラグは、1ビットの情報であり、保護機構内でレジスタやメモリ等の記憶領域に記憶される。
実行が再開された通常プログラム12aは、切替デバドラ13をopenし、保護プログラム8aのロード処理(S306)と、保護プログラム8aの実行処理(S307)とを切替デバドラ13を経由して保護OS6に要求する。
1.4.3.2 前処理の補足
なお、上記の動作では、ステップS304で、停止フラグを有効にさせているが、このような処理を行っているのは、要するにプログラム開発者が容易にデバッグできるようにするためである。
そのため、プログラム開発者に保護プログラム8aへ処理が移ったことを知らせ、保護プログラム8aに対してブレークポイントの設定を可能とする機会等を与えるために、保護プログラム8aが読み出された際には処理が停止するものとしている。
図12は、保護プログラム8a実行中にブレークポイントによるデバッグ例外が発生し、デバッガ14を用いて保護プログラム8aに対してデバッグ処理を行うときのフローチャートである。
1.4.4.1 デバッグ処理
図12に示すように、保護プログラム8a実行中に、保護プログラム8aに設定されたブレークポイントによるデバッグ例外が発生すると、保護OS6にデバッグ例外が通知される(S401)。
切替デバドラ13は、デバッグ例外の発生の通知を受け付けると、デバッガ14にデバッグ処理を行わせるために、デバッグ要求受付部44によりデバッガ14へデバッグ処理実行を要求する(S403)。
デバッグ機能7は、保護プログラム8aに対するデバッグ処理と、保護プログラム8aの、デバッグ処理にかかる所定部分へのアクセスとが許可されているかどうかをデバッガID判定部22およびアクセス判定部23により判定する(S406)。
ステップS406において、デバッグ処理およびアクセスが許可されていたと判定された場合には(S406:YES)、デバッグ情報取得部25は、保護プログラム8aのデバッグ情報を取得し、デバッグ情報をデバッグ用通信用領域にコピーする(S407)。コピー後、デバッグ機能7は、デバッグ情報の取得の完了を、保護OS6、デバッガ用切替デバドラ15を経由してデバッガ14へと通知して、デバッグ機能7からデバッガ14へと処理が戻る(S408)。
その後、プログラム開発者が、デバッグ情報を参照して必要な処理を終えると、デバッガ14は、プログラム開発者から所定の操作を受け付けて、デバッグ対象である保護プログラム8aの実行再開を、切替デバドラ13を経由して保護OS6に要求する(S410)。
この後、再びデバッグ例外が発生した場合には、同様のフローで処理が行われる。
1.4.4.2 デバッグ処理の補足
以上の例では、保護プログラム8a実行中にブレークポイントによるデバッグ例外が発生した場合の処理について説明した。この他にも、デバッグ機能7を使ったデバッグ処理のパターンとしては、様々なものが考えられる。具体的には、プログラム開発者によってブレークポイントの設定処理やレジスタ値・メモリ値の設定や取得処理などの他のデバッグ処理が要求され、この要求に応じてデバッグ機能7がデバッグ処理を行う。これらの場合にも、上記と同様のフローでデバッグ機能7(厳密には、セキュアデバッガ24の持つ各機能部)により処理が行われるが、基本的な処理は同様であるので、詳細な説明は省略する。
2 実施の形態2
以下、実施の形態2について説明する。実施の形態2では、特に、保護プログラム8の生成方法、および、保護プログラム8を生成するプログラム生成装置について説明する。
図13は、本発明にかかる保護プログラム8の生成方法を説明するための図である。
保護プログラム8は、暗号化されて生成される。暗号化された保護プログラム73が生成されるのに、保護プログラムソースコード71と、保護プログラム生成装置72と、保護プログラムに付加される情報である許可デバッガID格納ファイル74とアクセス制御リスト格納ファイル75、そして秘匿情報領域格納ファイル76が用いられる。
保護プログラム生成装置72は、保護プログラムソースコード71のコンパイルとリンクを行う。生成された実行ファイルに許可デバッガID情報とアクセス制御リストを付加し、暗号化を行う。さらに、復号化に必要な情報を復号化用ヘッダ情報として付加することで、暗号化された保護プログラム73を生成する。具体的には、後述する。
許可デバッガID格納ファイル74とアクセス制御リスト格納ファイル75は、それぞれ、保護プログラム8に対してデバッグが行われる時にデバッグ機能7やデバッガ14が使用する許可デバッガID情報、アクセス制御リストを含むデータである。
保護プログラム開発者は、保護プログラムソースコード71を作成する。また、ソースコード中でデバッガからのアクセスを許可する領域と不許可にする領域とをアクセス制御リストとして作成し、アクセス制御リスト格納ファイル75に記す。さらに、秘匿情報の領域とそうでない領域を、秘匿情報領域格納ファイル76に記す。許可デバッガID格納ファイル74は、別途入手する。入手した許可デバッガID格納ファイル74と保護プログラムソースコード71、アクセス制御リスト格納ファイル75、秘匿情報領域格納ファイル76を入力として保護プログラム生成装置72を動作させる。その結果、暗号化された保護プログラム73が生成される。
図14は、保護プログラム生成装置72の構成図である。
保護プログラム生成装置72は、コンパイラ77と、リンカ78、保護プログラム化ツール79から構成される。
2.2.1 コンパイラ77
図14に示すコンパイラ77は、入力された保護プログラムソースコード71をコンパイルしてオブジェクトファイルを生成する。変数や関数の配置を示すシンボル情報や、オブジェクトファイル中のプログラムコードとソースコードの対応関係などをデバッグ情報として作成し、オブジェクトファイルに付加する。
リンカ78は、コンパイラ77により生成されたオブジェクトファイルとライブラリとをリンクし、実行可能なファイルを生成する。さらに、リンカ78は、生成された実行可能なファイル中のどこにどの変数や関数を配置したかを示すシンボルファイルを生成する。
保護プログラム化ツール79は、リンカ78が作成した実行可能ファイルのヘッダに、保護プログラム生成装置72に入力される許可デバッガID格納ファイル74に格納されている許可デバッガID情報と、アクセス制御リスト格納ファイル75に格納されているアクセス制御リストとを付加する。さらに、秘匿情報領域格納ファイル76に記載された各領域が秘匿情報であるか否かの情報をデバッグ情報に追加し、保護プログラムを生成する。
なお、暗号化は、保護OS6と保護プログラム生成装置72とが共通に保持している鍵を用いる(いわゆる共通鍵暗号方式)こととしたが、互いに異なる鍵を保持することとなる公開鍵暗号方式などを用いてもよいことは言うまでもない。
なお、暗号化された保護プログラム73の構成は、実施の形態1において、図5を用いて説明した通りである。暗号化された保護プログラム73は、保護プログラム本体51と許可デバッガID情報52、アクセス制御リスト53、復号化用ヘッダ情報54から構成され、許可デバッガID情報52とアクセス制御リスト53が保護プログラム本体51のヘッダに付加され、暗号化された構造になっている。復号化用ヘッダ情報54は復号に必要なデータを格納しているために暗号化はされない。
次に、保護プログラム生成装置72による、暗号化された保護プログラム73を生成する処理について説明する。
図15は、保護プログラム生成装置72が、暗号化された保護プログラム73を生成する処理を示すフローチャートである。
保護プログラム生成装置72の動作について説明すると、保護プログラム生成装置72は、保護プログラムソースコード71と、許可デバッガID格納ファイル74と、アクセス制御リスト格納ファイル75と、秘匿情報領域格納ファイル76とを入力として受け付ける(S501)。
保護プログラム化ツール79は、保護プログラムソースコード71のコンパイルとリンクにより生成された保護プログラム本体51に、アクセス制御リスト格納ファイル75に格納されているアクセス制御リスト53と、デバッガID格納ファイル74に格納されている許可デバッガID情報52とを付加し(S503)、さらに、秘匿情報領域格納ファイル76に記載された各領域が秘匿情報であるか否かの情報をデバッグ情報に追加して、暗号化を行う(S504)。
2.4 実施の形態2の補足説明
なお、上記の説明では、秘匿情報領域格納ファイル76への書き込みをプログラム開発者が行うものとしたが、これに限られない。例えば、コンパイラ等のコンピュータプログラムが自動的にこれらのアクセス制御リストや秘匿情報格納ファイルの作成等を行ってもよい。より具体的には、ソースコードに対して秘匿情報のある箇所に予め何らかの印をつけておき、コンパイラがその印の有無に従って秘匿情報格納ファイルへの書き込みを行ったりしてもよい。
以下、実施の形態3について説明する。実施の形態3では、特に、デバッガIDをどのように管理するかについて説明する。なお、実施の形態3においては、デバッガIDは、デバッガID管理サーバによって管理されているものとして説明する。
図16は、デバッガID管理サーバによるデバッガIDの管理方法を説明するための図である。
3.1.1 デバッガID管理サーバ81
図16に示すデバッガID管理サーバ81は、デバッガIDを管理している。デバッガIDの管理は、後述するデバッガID管理ファイル90を用いて行う。
保護プログラム開発者が誰であるかに応じて(または、保護プログラム開発者の用いる保護プログラム開発装置82に応じて)デバッグ処理の実行可否を制御するためには、デバッガIDは、保護プログラム開発者ごと(または、保護プログラム開発装置82ごと)にそれぞれ異なる値にすることが望ましい。そのため、デバッガID管理サーバ81は、複数の保護プログラム開発者(または、保護プログラム開発装置82)に同じデバッガIDが付与されないように管理する必要がある。
デバッガID管理サーバ81は保護プログラム開発装置82からの要求により、過去に発行したデバッガIDと異なるデバッガIDを発行し、発行したデバッガIDを格納したデバッガID格納ファイルを保護プログラム開発装置82に提供する。また、デバッガID管理会社は、デバッガIDに対応したIDを持つデバッガを作成して保護プログラム開発装置82に提供する。
保護プログラム開発装置82は、保護プログラム生成装置72を用いて保護プログラムを作成する。
具体的には、保護プログラム開発装置82は、保護プログラム解析装置83から、デバッガID格納ファイルを受け付ける。受け付けたデバッガID格納ファイルに示されるデバッガIDを取得して、許可デバッガID格納ファイル74として、実施の形態2で説明した保護プログラム生成装置72へ入力することで、取得したデバッガIDに示されるデバッガへのデバッグを許可する保護プログラム8を生成する。
3.1.3 保護プログラム解析装置83
保護プログラム解析装置83は、保護プログラムに含まれる不具合の解析を行うための装置である。保護プログラム解析装置83は、個人もしくは組織が所有している。
デバッガID格納ファイルを提供した保護プログラム開発装置82が、デバッガID格納ファイルに基づいて保護プログラムを生成すると、保護プログラム開発装置82から、デバッグ可能な保護プログラムを入手し、その保護プログラムを解析する。
図17は、デバッガID管理サーバ81がデバッガIDの管理に用いるデバッガID管理ファイル90のデータ構造である。
デバッガID管理ファイル90の1件のレコードは、管理番号91と、デバッガID92と、保護プログラムの開発者名93と、連絡先94とから構成される。
デバッガID92には、管理番号91で管理されている発行済みのデバッガIDの値が格納される。なお、デバッガID92は、各プログラム開発者(または、保護プログラム開発装置82のそれぞれ)を識別でき、かつ、デバッガのデバッグIDをなりすましてデバッグ処理を行うなりすまし攻撃を防ぐために、十分な長さの数値列とすることが望ましい。
連絡先94には、デバッガIDの発行を申請してきたプログラム開発者の連絡先が格納される。
3.3 実施の形態3の補足説明
なお、実施の形態3において、デバッガID管理サーバ81は、保護プログラム開発装置82にデバッガを提供するとしたが、デバッガの提供先を保護プログラム開発装置82に限定するものではない。例えば、保護プログラム解析装置83に提供してもよい。
さらに、デバッガID管理ファイル90で発行済みデバッガIDの発行先のプログラム開発者の名前やその連絡先も管理するとしたが、発行済みのデバッガIDのみを管理するとしても良い。
4 実施の形態4
以下の実施の形態では、上述のデバッガ14等が行ったデバッグ処理の結果を、どのように表示するかについて説明する。
ここで、プログラムの動作情報とは、デバッグ対象となっているプログラムをデバッグするために参照する情報、つまり、プログラムの動作に関連する情報のことを指す。具体的には、以下の例では、動作情報は、プログラムのコードや、プログラムを実行しているプロセッサの各レジスタの値、ローカル変数のシンボル名とその値、シンボルにより指定された変数とその値、メモリの使用量等の値、関数の呼び出し階層、および、保護モードと通常モードのどちらのモードで動作しているかの情報などを指す。なお、実施の形態1を例とすると、保護プログラム8の動作情報は、デバッガ14がデバッグ機能7を介して取得する情報に基づいて得られ、通常プログラム12の動作情報は、デバッガ14が直接取得する情報に基づいて得られる。
図18は、プログラムの動作情報を表示するためのグラフィカルユーザインターフェース(GUI)を示す。
図18(a)には、デバッガ14が通常プログラム12にアタッチし、通常プログラム12をデバッグしているときの表示手段の画面構成であるGUI150aを示す。また、図18(b)には、通常プログラム12が保護プログラム8を実行し、通常プログラム12と保護プログラム8をデバッグしているときの表示手段の画面構成であるGUI150bを示す。
コード表示部151は、デバッグ対象のプログラムのコードを表示するための表示部で、ソースコードやアセンブラコード、マシン語が表示される。
メモリ表示部153には、メモリの値が表示される。
シンボル表示部154は、デバッグ対象のプログラムにおいて、停止した関数内で使用されているローカル変数のシンボル名とその値を表示する。
コールスタック表示部156は、デバッグ対象のプログラムにおいて、停止させられた関数が呼び出されるまでの呼び出し階層を表示する。
ウィンドウタイトル表示部157は、ウィンドウのタイトルを表示するための表示部で、デバッガやデバッグ対象のプログラムのプログラム名やプログラムの状態が表示される。
モード表示部159は、プログラムがブレークポイント等により停止した時に、プログラムが実行されていたモードを表示するための表示部であり、通常プログラム実行中に停止した場合には通常モードであることを示すために「通常モード」と表示し、保護プログラム実行中に停止した場合には保護モードであることを示すために「保護モード」と表示する。
なお、実施の形態4においては、通常プログラム12と保護プログラム8のどちらでデバッグ例外が発生したかを表示するために、モード表示部に「通常モード」や「保護モード」と表示するとしているが、これに限られない。例えば、モードの表示を「通常モード」や「保護モード」の文字列に限定するものではなく、異なるモードであることが分かるような表示であれば、どのようなものでもよい。具体的な例を挙げると、アイコンなどであってもよい。さらに、表示箇所もモード表示部に限定するものではなく、ウィンドウ全体で表示してもよく、ウィンドウの色などで区別させるとしてもよい。また、モード表示用のウィンドウを別途設けるとしてもよい。
図18(b)に示すように、GUI150bは、通常プログラム用デバッグウィンドウ160と保護プログラム用デバッグウィンドウ161から構成される。
通常プログラム用デバッグウィンドウ160は、通常プログラム12の各種情報を表示するためのウィンドウである。
その後、通常プログラム12が保護プログラム8を実行し、保護プログラム8の実行中にブレークポイントによるデバッグ例外が発生した場合には、保護プログラムの各種情報を表示するために、図18(a)の画面を2つに分割し、図18(b)に示すような画面構成に変更する。
4.4 実施の形態4の補足
なお、実施の形態4において、保護プログラム8デバッグ時にデバッガのウィンドウが2つに分割されるとしたが、分割されることに限定するものではない。例えば、保護プログラムのデバッグ用に新しくウィンドウを生成してもよいし、タブやメニューにより通常プログラム用デバッグウィンドウ160と保護プログラム用デバッグウィンドウ161を切り替えられるようにしてもよい。
なお、実施の形態4において、保護プログラム8の実行中にデバッグ例外が発生した場合に保護プログラム8のデバッグと通常プログラム12のデバッグをデバッガのユーザが同時に行えるとしたが、同時にデバッグが行えることに限定するものではない。例えば、デバッグが行うことができる対象を保護プログラムのみに限定してもよく、通常プログラムのデバッグウィンドウ160にアクセスできないように制限してもよい。
また、保護プログラム8をデバッグするときには、保護プログラム8の中の秘匿情報や、通常プログラム12と保護プログラム8との通信用の共有領域など、プログラムの開発や解析にあたって重要な情報や領域が存在する。このためデバッガ14では、この様な注意しなければならない情報や領域の表示方法を工夫することで、デバッガを使用しているユーザに注意を促すことが望ましい。
判定の結果、秘匿情報であった場合には、ユーザによる設定で秘匿情報を表示しないと設定されていた場合には、秘匿情報を表示せず、その部分が空白になった状態で表示される。
なお、本実施の形態4において、秘匿情報や共有情報を表示するときの文字の色をユーザにより設定された色にするとしたが、文字の色を変更することに限定するものではなく、背景の色を変更してもよいし、太字や斜体など文字のスタイルを変更したり、下線や網掛けなど字飾りを付けてもよく、さらに、秘匿情報や共有情報全体を囲うなどしてもよい。
実施の形態5は、実施の形態1のデバッガに対して、実施の形態4とは異なり、プログラムの動作情報をキャラクタベースのユーザインタフェースに表示する表示手段を付加したものである。実施の形態5でも、デバッガ本体の機能は実施の形態1と同様であるので、説明を省略する。
図19は、本発明実施の形態5におけるキャラクタベースユーザインターフェース(CUI170)の表示方法の説明図である。
デバッガ14は、起動されると、コンソールと異なる、例えば「(dbg)」の様なプロンプトを表示し、デバッガ14が使用できる状態にあることを示す。この状態は、通常プログラム12がデバッグ可能であることを示している(デバッグ処理結果の表示例171a)。
この時デバッガ14は、保護プログラム8がデバッグ可能であることを示すために、通常プログラム12のデバッグ時とは異なる、例えば「(dbg−sec)」の様なプロンプトを表示することでユーザが区別できるようにする。なお、プロンプトと、デバッガ14からのメッセージとの表示は、ユーザが区別できるように表示する。例えば、図示するように、括弧を用いてプロンプトを表すこととしてもよい。
上記の状態では、実行が停止したプログラムを対象としたデバッグが可能となるが、実施の形態5では通常プログラム12と保護プログラム8とが連係動作している状態を対象としたデバッグを行うので、通常プログラム12の実行中に保護プログラム8をデバッグしたり、逆に保護プログラム8の実行中に通常プログラム12をデバッグできるようにすることが望ましい。
まず、通常プログラム12の実行中にデバッグ例外が発生し、通常プログラム12がデバッグ可能な状態の時、通常プログラム12のデバッグではなく、保護プログラム8のデバッグをデバッガ14のユーザが行いたい場合がある。この場合は、通常プログラム12がデバッグ可能な状態で、「secure」というコマンドを入力することにより、データ処理装置1が保護モードに移行して保護プログラム8がデバッグ可能な状態になる。
逆に、保護プログラム8の実行中にデバッグ例外が発生し、保護プログラムがデバッグ可能な状態の時、保護プログラムのデバッグではなく、通常プログラムのデバッグが行いたい場合には、「normal」というコマンドを入力することにより、通常プログラムがデバッグ可能な状態になる。
デバッガ14のユーザが保護プログラム8のデバッグをしようとした場合に、デバッグが許可されていなかったり、アクセスが禁止されている領域の情報を表示しようとした場合には、コマンドを入力した時に、「Access invalid」などを表示することで、ユーザにデバッグが許可されていないことやアクセスが禁止されていることを通知する。
なお、実施の形態5において、通常プログラム12がデバッグ可能か保護プログラム8がデバッグ可能かを区別するために表示されるプロンプトを変更するとしたが、プロンプトを変更することに限定するものではない。
例えば、プロンプトとは別にユーザから要求された処理が終わるたびに現在の状態を示す文字を表示してもよい。また、プロンプトやデバッガからのメッセージ、ユーザから入力された文字のスタイルを太字や斜体に変更するとしてもよいし、文字の色や背景色を変更するとしてもよいし、下線や網掛けなど字飾りを付けてもよい。
例えば、太字などの他のスタイルに変更するとしてもよいし、文字の色や背景色を変更するとしてもよいし、下線や網掛けなど字飾りを付けてもよい。さらに、行頭に通常プログラム12の実行中に停止したのか保護プログラム8の実行中に停止したのかが分かるような文字列を表示してもよい。
なお、本実施形態では、コマンドやメッセージの一例を以下のようにしている。
メッセージ「Change to Secure mode.」は、データ処理装置1が保護モードに移行したことを示すものである。メッセージ「Change to Normal mode.」は、データ処理装置1が通常モードに移行したことを示すものである。メッセージは、ユーザの入力したコマンドに応じた処理をデータ処理装置1が行った後、その処理の結果を通知するものである。
なお、デバッガに対して入力できるコマンドや、コマンドに応じて出力されるメッセージは、各デバッガに応じて異なるため、詳細な説明は省略する。
6 補足
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上述の実施の形態では、許可デバッガID情報52やアクセス制御リスト53は、保護プログラム8に含まれることとしたが、これに限らず、許可デバッガID情報52やアクセス制御リスト53を、データ処理装置の外部から取得することとしてもよい。この場合、取得にかかる許可デバッガID情報52等が、どの保護プログラム8と対応しているかを示す情報を併せて取得するとよい。
なお、許可デバッガID情報52等は、デバッグ可能なデバッガIDや、アクセス可能な領域を示すものであるため、解析されると、保護プログラム8の保護が図れなくなるため、不正アクセスによって暴露されないよう、データ処理装置において保護機構等の安全な領域で記憶する必要がある。
(2)上記の実施の形態では、保護プログラム8や通常プログラム12は保護OS6や通常OS11上で動作するものとしたが、これに限られるものではない。例えば、OSを介さずに直接動作するものとしてもよい。
(3)上記の実施の形態では、デバッガ14、切替デバドラ13、デバッガ用切替デバドラ15、デバッグ機能7等はLSI2上で動作するソフトウェアとして実装されているものとしたが、これに限られるものでない。例えば、LSI2の機能として実現したり、LSI2と相互に通信しあうハードウェア等の形で実現してもよい。また、各構成要素の一部のみをLSI2の機能として実現したり、ハードウェアとして実現したりしてもよい。
(4)上記の実施の形態3では、複数の保護プログラム開発装置82を所有する組織等のために、保護プログラム開発装置82を介して送信される要求に応じて、同一のデバッガIDを複数の保護プログラム開発装置82に付与したりしてもよい。
(5)上記の実施の形態4および実施の形態5では、図18および図19を参照してユーザインタフェースの例を紹介したが、ユーザインタフェースの表示は、図18および図19に示されるようなものに限られない。
(6)上記の実施の形態では、デバッグ機能7は、デバッガIDの確認によりデバッグが許可されていることを確認し、アクセス制御リストの確認により要求している領域へのアクセスが許可されている場合のみ、デバッグを行うことが許可されるとしたが、いずれか一方の確認のみでデバッグを許可されるとしてもよい。
(7)上記の実施の形態では、デバッガ14は、通常プログラム12にアタッチし、その通常プログラム12と連係動作する保護プログラム8に対するデバッグ処理を行うものとしたが、これに限られるものではない。例えば、保護プログラム8に直接アタッチできるデバッガであるとしてもよい。
さらに、データ処理装置が保護モードで使用可能な入出力装置を有している場合には、デバッガは通常モードではなく保護モードで動作するようにしてもよい。この場合、デバッグ機能7とデバッガ14は、デバッガ用切替デバドラ15を経由することなく、直接通信する。
(8)上記の実施の形態では、前処理において停止フラグを有効にすることで、保護プログラム8等の実行開始時に必ずプログラムが停止するものとしているが、これに限られるものではない。
(9)上記の実施の形態では、デバッガIDの生成の仕方について特に言及していないが、以下のようにすることが考えられる。
また、この他には、例えば、保護プログラム8の一部または全体のハッシュ値をデバッガIDとして用いてもよい。
この場合、デバッガID判定部22は、比較値保持部33に、デバッガ14のデバッガIDを保持しておく。デバッガ14からデバッグが要求されると、デバッガID演算部32は、デバッグ要求の対象となっている保護プログラム8のハッシュ値を計算し、計算結果と、比較値保持部33が保持している値とをデバッガID比較部31が比較することにより判定を行う。
なお、この場合、実施の形態3における保護プログラム開発装置82は、デバッガID管理サーバ81に対して、保護プログラム8のうち、ハッシュ値が取られる箇所が完成した時点でその保護プログラム8を送信する。デバッガID管理サーバ81は、保護プログラム8のハッシュ値を計算し、そのハッシュ値をデバッガIDとして保護プログラム開発装置82に返送する。返送されたデバッガIDは、保護プログラム8の開発者のみが知りうる情報である。したがって、デバッガの作者は、この保護プログラム8のデバッグに対応したデバッガを作成するには、かかるデバッガIDを保護プログラム8の開発者から通知してもらい、通知により取得したデバッガIDを、デバッガ14に割り当てる必要がある。ただし、上記の場合でも、デバッガID管理サーバ81の所有者とデバッガの作者とが同一である場合は、デバッガの作者はデバッガIDの通知を受けなくともデバッガを作成できる。なぜなら、デバッガの作者は自身が所有するデバッガID管理サーバ81からデバッガIDを知ることが出来るからである。
さらに、デバッガIDには、プログラム開発者ごとの値とプログラムごとの値とが含まれることとしてもよい。この場合、プログラム開発者ごとの値のチェックによりプログラム開発者単位でのデバッグ許可/不許可を確認し、プログラム開発者単位でのデバッグ許可がある場合にのみ、プログラム単位の値をチェックすることによりプログラム単位でのデバッグ許可を確認する等とすることで、より細かなデバッグ制御を実現できる。
(10)上述の実施の形態では、保護プログラム8a実行中にブレークポイントによるデバッグ例外が発生したことを検出して保護プログラム8aに対するデバッグ処理を行う場合を説明した。これに限らず、保護プログラム8の実行中に一般的なエラー割り込みが発生した場合に、その割り込みが検出されることでデバッガ14によるデバッグ処理が行われるとしても良い。一般的なエラー割り込みとは、例えば、保護プログラム8実行中に0による除算が発生した場合や、オーバーフローが発生した場合などがある。一般的なエラー割り込みが発生した場合に、保護OS6がデバッグ例外の発生を切替デバドラ13に通知する等の処理を行うことにより(S402等)、デバッガ14は、保護プログラム8に対するデバッグ処理を行うことができる。
(11)上述の実施の形態では、保護プログラム8に対するデバッグ処理の実行の可否を制御することとしたが、これに限らず、通常プログラム12についても、デバッグ処理を許可するデバッガのデバッガIDを割り当てて、通常プログラム12に対するデバッグ処理の実行の可否を制御することとしてもよい。
(12)上述した構成要素の一部、または全部をLSI等の集積回路として実現してもよい。この場合の集積回路はLSI2と同一の集積回路であってもよいし、異なる集積回路であってもよい。
(13)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をCPUの処理として実現するプログラムであるとしてもよいし、前記コンピュータプログラムからなるディジタル信号であるとしてもよい。
(14)また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−rayDisc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
(15)これらの実施の形態および変形例の組合せであってもよい。
2 LSI
3 切替機構
6 保護OS
7 デバッグ機能
8 保護プログラム
11 通常OS
12 通常プログラム
13 切替デバイスドライバ
14 デバッガ
15 デバッガ用切替デバイスドライバ
21 制御部
22 デバッガID判定部
23 アクセス判定部
24 セキュアデバッガ
25 デバッグ情報取得部
26 ブレークポイント設定部
27 レジスタ値取得設定部
28 メモリ値取得設定部
31 デバッガID比較部
32 デバッガID演算部
33 比較値保持部
41 切替操作部
42 要求振り分け部
43 通常要求受付部
44 デバッグ要求受付部
51 保護プログラム本体
52 許可デバッガID情報
53 アクセス制御リスト
54 復号化用ヘッダ情報
60 アクセス制御リスト
61 開始アドレス
62 終了アドレス
63 アクセス許可情報
64 シンボル名
65 アクセス許可情報
71 保護プログラムソースコード
72 保護プログラム生成装置
73 暗号化された保護プログラム
74 許可デバッガID格納ファイル
75 アクセス制御リスト格納ファイル
76 秘匿情報領域格納ファイル
77 コンパイラ
78 リンカ
79 保護プログラム化ツール
81 デバッガID管理サーバ
82 保護プログラム開発装置
83 保護プログラム解析装置
90 デバッガID管理ファイル
91 管理番号
92 デバッガID
93 保護プログラムの開発者名
94 連絡先
150 GUI
151 コード表示部
152 レジスタ表示部
153 メモリ表示部
154 シンボル表示部
155 ウォッチポイント表示部
156 コールスタック表示部
157 ウィンドウタイトル表示部
158 メニュー表示部
159 モード表示部
160 通常プログラム用デバッグウィンドウ
161 保護プログラム用デバッグウィンドウ
170 CUI
171 デバッグ処理結果の表示例
Claims (18)
- デバッグ処理部によるデバッグ処理の実行を制御するデータ処理装置であって、
前記デバッグ処理部を識別する識別子を取得する第1取得手段と、
不正アクセスから保護された状態にあるデバッグ対象プログラムの所定部分に含まれる検証値を取得する第2取得手段と、
前記デバッグ対象プログラムから取得された前記検証値と前記第1取得手段により取得された前記識別子とを比較し、その比較結果に応じて、前記デバッグ対象プログラムに対するデバッグ処理が許可されているか判定する判定手段と、
許可されていないと判定されたとき、前記デバッグ対象プログラムに対するデバッグ処理の実行を禁止する制御手段とを備え、
前記デバッグ対象プログラムの前記所定部分には、前記デバッグ対象プログラムを構成する各部分についてアクセスが許可または不許可であることを示すアクセス制御リストが含まれ、
前記第2取得手段は、前記デバッグ対象プログラムの前記所定部分に含まれる前記アクセス制御リストを取得するアクセス制御リスト取得部を含み、
前記データ処理装置は、さらに、前記取得した前記アクセス制御リストに基づいて、前記デバッグ対象プログラムの一部分のアクセスが許可されているかを判定するアクセス判定手段を備え、
前記制御手段は、前記判定手段により許可されていると判定され、かつ、前記アクセス判定手段により許可されていないと判定された第1の場合、前記一部分のデバッグ処理の実行を禁止し、前記判定手段により許可されていると判定され、かつ、前記アクセス判定手段により許可されていると判定された第2の場合、前記一部分のデバッグ処理を前記デバッグ処理部に実行させ、
前記判定手段は、比較値を不正アクセスから保護された状態で記憶する比較値保持部を含み、
前記検証値と前記識別子とを演算子として用いた所定の演算を行い、その演算結果が、前記記憶している前記比較値と一致した場合に、前記デバッグ処理が許可されていると判定する
ことを特徴とするデータ処理装置。 - 前記アクセス制御リストに示される前記部分のそれぞれは、前記デバッグ対象プログラムをメモリにロードする場合におけるロード先メモリアドレスの前記部分それぞれに対応するアドレス範囲を示し、
前記アクセス制御リストには、前記部分それぞれに対応する前記アドレス範囲のそれぞれについて、アクセスの可否が対応づけられており、
前記アクセス判定手段は、前記デバッグ対象プログラムをメモリにロードする場合におけるロード先メモリアドレスの前記一部分に対応するアドレス範囲について、前記アクセス制御リストにおいて対応づけられているアクセスの可否を参照することにより前記判定を行う
ことを特徴とする請求項1記載のデータ処理装置。 - 前記アクセス制御リストに示される前記部分のそれぞれは、前記デバッグ対象プログラムに含まれるシンボルを示し、
前記アクセス制御リストには、前記シンボルのそれぞれについて、アクセスの可否が対応づけられており、
前記アクセス判定手段は、前記デバッグ対象プログラムの前記一部分に含まれるシンボルについて、前記アクセス制御リストにおいて対応づけられているアクセスの可否を参照することにより前記判定を行う
ことを特徴とする請求項1記載のデータ処理装置。 - 前記データ処理装置は、さらに、
表示部を備え、
前記制御手段は、前記第1の場合、前記一部分のデバッグ処理が禁止された旨を示す表示を前記表示部に行わせ、前記第2の場合、前記デバッグ処理の結果を前記表示部に表示させる表示制御部を含む
ことを特徴とする請求項1記載のデータ処理装置。 - デバッグ処理部によるデバッグ処理の実行を制御するデータ処理装置であって、
前記デバッグ処理部を識別する識別子を取得する第1取得手段と、
不正アクセスから保護された状態にあるデバッグ対象プログラムの所定部分に含まれる検証値を取得する第2取得手段と、
前記デバッグ対象プログラムから取得された前記検証値と前記第1取得手段により取得された前記識別子とを比較し、その比較結果に応じて、前記デバッグ対象プログラムに対するデバッグ処理が許可されているか判定する判定手段と、
許可されていないと判定されたとき、前記デバッグ対象プログラムに対するデバッグ処理の実行を禁止する制御手段とを備え、
前記デバッグ対象プログラムの前記所定部分には、前記デバッグ対象プログラムを構成する各部分についてアクセスが許可または不許可であることを示すアクセス制御リストが含まれ、
前記第2取得手段は、前記デバッグ対象プログラムの前記所定部分に含まれる前記アクセス制御リストを取得するアクセス制御リスト取得部を含み、
前記データ処理装置は、さらに、前記取得した前記アクセス制御リストに基づいて、前記デバッグ対象プログラムの一部分のアクセスが許可されているかを判定するアクセス判定手段を備え、
前記制御手段は、前記判定手段により許可されていると判定され、かつ、前記アクセス判定手段により許可されていないと判定された第1の場合、前記一部分のデバッグ処理の実行を禁止し、前記判定手段により許可されていると判定され、かつ、前記アクセス判定手段により許可されていると判定された第2の場合、前記一部分のデバッグ処理を前記デバッグ処理部に実行させ、
前記デバッグ対象プログラムの前記所定部分には、前記検証値が複数含まれ、
前記アクセス制御リストは、前記所定部分に1以上含まれ、前記アクセス制御リストのそれぞれは、前記検証値の少なくとも1つと対応づけられており、
前記判定手段は、前記検証値のそれぞれについて前記取得した識別子と比較して前記判定を行い、
前記アクセス判定手段は、前記判定手段により許可されていると判定された前記検証値に対応づけられている前記アクセス制御リストに基づいて前記判定を行う
ことを特徴とするデータ処理装置。 - デバッグ処理部によるデバッグ処理の実行を制御するデータ処理装置であって、
前記デバッグ処理部を識別する識別子を取得する第1取得手段と、
不正アクセスから保護された状態にあるデバッグ対象プログラムの所定部分に含まれる検証値を取得する第2取得手段と、
前記デバッグ対象プログラムから取得された前記検証値と前記第1取得手段により取得された前記識別子とを比較し、その比較結果に応じて、前記デバッグ対象プログラムに対するデバッグ処理が許可されているか判定する判定手段と、
許可されていないと判定されたとき、前記デバッグ対象プログラムに対するデバッグ処理の実行を禁止する制御手段とを備え、
前記判定手段は、比較値を不正アクセスから保護された状態で記憶する比較値保持部を含み、
前記検証値と前記識別子とを演算子として用いた所定の演算を行い、その演算結果が、前記記憶している前記比較値と一致した場合に、前記デバッグ処理が許可されていると判定する
ことを特徴とするデータ処理装置。 - デバッグ処理部によるデバッグ処理の実行を制御するデータ処理装置であって、
前記デバッグ処理部を識別する識別子を取得する第1取得手段と、
不正アクセスから保護された状態にあるデバッグ対象プログラムの所定部分に含まれる検証値を取得する第2取得手段と、
前記デバッグ対象プログラムから取得された前記検証値と前記第1取得手段により取得された前記識別子とを比較し、その比較結果に応じて、前記デバッグ対象プログラムに対するデバッグ処理が許可されているか判定する判定手段と、
許可されていないと判定されたとき、前記デバッグ対象プログラムに対するデバッグ処理の実行を禁止する制御手段とを備え、
前記判定手段は、比較値を不正アクセスから保護された状態で記憶する比較値保持部を含み、
前記検証値と前記識別子とを演算子として用いた所定の演算を行い、その演算結果が、前記記憶している前記比較値と一致した場合に、前記デバッグ処理が許可されていると判定し、
前記データ処理装置は、外部からの不正アクセスを防止する機構を備えたセキュアドメインを有し、
前記データ処理装置は、動作モードとして、通常モードとセキュアモードとを備え、前記通常モードと前記セキュアモードとを切り替えて動作し、前記セキュアモード時においてのみ前記セキュアドメインを用いて動作し、
前記データ処理装置は、さらに、前記通常モードと前記セキュアモードとを切り替える切替部を備え、
前記通常モードで動作するプログラムは、前記切替部を経由して所定の処理の要求を前記セキュアモードで動作するプログラムに通知することで前記セキュアモードで動作するプログラムにアクセス可能であり、
前記デバッグ対象プログラムは、前記セキュアドメインにおいて記憶され、
前記第2取得手段は、前記セキュアドメインにおいて前記デバッグ対象プログラムから前記検証値の前記取得を行い、
前記判定手段は、前記セキュアドメインにおいて前記判定を行う
ことを特徴とするデータ処理装置。 - デバッグ処理部によるデバッグ処理の実行を制御するデータ処理装置であって、
前記デバッグ処理部を識別する識別子を取得する第1取得手段と、
不正アクセスから保護された状態にあるデバッグ対象プログラムの所定部分に含まれる検証値を取得する第2取得手段と、
前記デバッグ対象プログラムから取得された前記検証値と前記第1取得手段により取得された前記識別子とを比較し、その比較結果に応じて、前記デバッグ対象プログラムに対するデバッグ処理が許可されているか判定する判定手段と、
許可されていないと判定されたとき、前記デバッグ対象プログラムに対するデバッグ処理の実行を禁止する制御手段とを備え、
前記データ処理装置は、外部からの不正アクセスを防止する機構を備えたセキュアドメインを有し、
前記データ処理装置は、動作モードとして、通常モードとセキュアモードとを備え、前記通常モードと前記セキュアモードとを切り替えて動作し、前記セキュアモード時においてのみ前記セキュアドメインを用いて動作し、
前記データ処理装置は、さらに、前記通常モードと前記セキュアモードとを切り替える切替部を備え、
前記通常モードで動作するプログラムは、前記切替部を経由して所定の処理の要求を前記セキュアモードで動作するプログラムに通知することで前記セキュアモードで動作するプログラムにアクセス可能であり、
前記デバッグ対象プログラムは、前記セキュアドメインにおいて記憶され、
前記第2取得手段は、前記セキュアドメインにおいて前記デバッグ対象プログラムから前記検証値の前記取得を行い、
前記判定手段は、前記セキュアドメインにおいて前記判定を行い、
前記デバッグ処理部は、前記セキュアドメインの外部にあって前記通常モードにおいて動作し、
前記データ処理装置は、さらに、前記セキュアモードにおいてデバッグ処理を実行するセキュアデバッガを備え、前記セキュアデバッガは、前記セキュアドメインに含まれ、
前記デバッグ処理部は、前記デバッグ対象プログラムのデバッグ処理要求を出力し、
前記制御手段は、前記デバッグ処理部が前記デバッグ処理要求を出力すると、前記判定手段に前記判定を行わせ、許可されていないと判定されたとき、前記デバッグ処理要求にかかる前記デバッグ対象プログラムに対する前記セキュアデバッガによるデバッグ処理を禁止する
ことを特徴とするデータ処理装置。 - 前記デバッグ対象プログラムの前記所定部分には、前記デバッグ対象プログラムを構成する各部分についてアクセスが許可または不許可であることを示すアクセス制御リストが含まれ、
前記第2取得手段は、前記デバッグ対象プログラムの前記所定部分に含まれる前記アクセス制御リストを取得するアクセス制御リスト取得部を含み、
前記データ処理装置は、さらに、前記取得した前記アクセス制御リストに基づいて、前記デバッグ対象プログラムの前記一部分のアクセスが許可されているかを判定するアクセス判定手段を備え、
前記アクセス判定手段は、前記セキュアドメインにおいて前記判定を行い、
前記制御手段は、
前記デバッグ処理部が出力した前記デバッグ処理要求にかかる前記デバッグ対象プログラムについて、前記判定手段により許可されていると判定され、かつ、前記アクセス判定手段により許可されていないと判定された場合、前記セキュアデバッガによる前記一部分の前記デバッグ処理の実行を禁止し、前記判定手段により許可されていると判定され、かつ、前記アクセス判定手段により許可されていると判定された場合、前記一部分のデバッグ処理を前記セキュアデバッガに実行させる
ことを特徴とする請求項8記載のデータ処理装置。 - 前記デバッグ処理部は、前記通常プログラム、および、前記通常プログラムと連係する前記デバッグ対象プログラムに対してデバッグ処理を行う機能を有し、
前記デバッグ処理部による前記デバッグ対象プログラムのデバッグ処理は、前記デバッグ処理部がデバッグ処理要求を出力し、出力された前記デバッグ処理要求に対して前記セキュアデバッガにより行われたデバッグ処理の結果を前記切替部を介して前記デバッグ処理部が受け付けることにより行われる
ことを特徴とする請求項8記載のデータ処理装置。 - 前記デバッグ処理部は、自デバッグ処理部がアタッチされた通常プログラムを識別するプロセス識別子を出力し、
前記セキュアデバッガは、前記デバッグ処理部から出力された前記プロセス識別子に示される通常プログラムと連係動作するデバッグ対象プログラムのエントリポイントにある命令をブレーク命令へと変更する
ことを特徴とする請求項10記載のデータ処理装置。 - 前記データ処理装置は、前記セキュアモードにおいて前記デバッグ対象プログラムの実行中にデバッグ例外が検出されると、前記切替部を介して前記デバッグ処理部にデバッグ例外の発生を通知し、
前記デバッグ処理部は、前記切替部から前記デバッグ例外の発生の通知を受け付けると、デバッグ処理の実行結果を示すデバッグ情報の取得要求を出力し、
前記セキュアデバッガは、前記デバッグ対象プログラムについて前記判定手段が肯定的な判定をしているときに前記デバッグ情報の取得要求を受け付けると、前記デバッグ対象プログラムのデバッグ処理を実行してデバッグ情報を取得し、取得したデバッグ情報を、前記切替部を介して前記デバッグ処理部に出力する
ことを特徴とする請求項10記載のデータ処理装置。 - 前記データ処理装置は、さらに、
前記通常プログラムのデバッグ処理の結果を第1の表示領域に表示する第1の結果表示部と、
前記通常プログラムとの連係にかかるデバッグ対象プログラムのデバッグ処理の結果を、前記第1の表示領域とは異なる第2の表示領域に表示する第2の結果表示部とを備え、
前記第1および第2の結果表示部は、前記連係にかかるデバッグ対象プログラムと前記通常プログラムとが連係して動作しているとき、前記第1の表示領域および前記第2の表示領域に、前記デバッグ対象プログラムと前記通常プログラムのデバッグ処理の結果を表示する
ことを特徴とする請求項10記載のデータ処理装置。 - 前記通常モードにおいては、通常OSが動作し、
前記セキュアモードにおいては、保護OSが動作し、
前記通常プログラムは、前記通常OSが生成するプロセスとして前記通常モードにおいて動作し、
前記デバッグ処理部は、前記通常OSで動作するデバッガとして前記通常モードにおいて動作し、
前記デバッグ対象プログラムは、前記保護OSが生成するプロセスとして前記セキュアモードにおいて動作し、
前記セキュアデバッガは、前記保護OSの有する機能として実装されている
ことを特徴とする請求項10記載のデータ処理装置。 - 前記制御手段は、前記デバッグ処理部が前記デバッグ処理要求を出力すると、前記判定手段に前記判定を行わせ、許可されていないと判定されたとき、前記デバッグ処理の実行の禁止を示すデバッグ処理不可通知を前記デバッグ処理部へ出力する
ことを特徴とする請求項8記載のデータ処理装置。 - データ処理装置のデバッグ処理部によるデバッグ処理の実行を制御するデータ処理方法であって、
前記デバッグ処理部を識別する識別子を取得する第1取得ステップと、
不正アクセスから保護された状態にあるデバッグ対象プログラムの所定部分に含まれる検証値を取得する第2取得ステップと、
前記デバッグ対象プログラムから取得された前記検証値と前記第1取得ステップにおいて取得された前記識別子とを比較し、その比較結果に応じて、前記デバッグ対象プログラムに対するデバッグ処理が許可されているか判定する判定ステップと、
許可されていないと判定されたとき、前記デバッグ対象プログラムに対するデバッグ処理の実行を禁止する制御ステップとを含み、
前記データ処理装置は、比較値を不正アクセスから保護された状態で記憶する比較値保持部を含み、
前記判定ステップにおいて、前記検証値と前記識別子とを演算子として用いた所定の演算を行い、その演算結果が、前記記憶している前記比較値と一致した場合に、前記デバッグ処理が許可されていると判定する
ことを特徴とするデータ処理方法。 - デバッグ処理部によるデバッグ処理の実行の制御をデータ処理装置に行わせる、コンピュータ読み取り可能な制御プログラムであって、
コンピュータである前記データ処理装置に、
前記デバッグ処理部を識別する識別子を取得する第1取得ステップと、
不正アクセスから保護された状態にあるデバッグ対象プログラムの所定部分に含まれる検証値を取得する第2取得ステップと、
前記デバッグ対象プログラムから取得された前記検証値と前記第1取得ステップにおいて取得された前記識別子とを比較し、その比較結果に応じて、前記デバッグ対象プログラムに対するデバッグ処理が許可されているか判定する判定ステップと、
許可されていないと判定されたとき、前記デバッグ対象プログラムに対するデバッグ処理の実行を禁止する制御ステップとを実行させ、
前記データ処理装置は、比較値を不正アクセスから保護された状態で記憶する比較値保持部を含み、
前記判定ステップにおいて、前記検証値と前記識別子とを演算子として用いた所定の演算を行い、その演算結果が、前記記憶している前記比較値と一致した場合に、前記デバッグ処理が許可されていると判定する
ことを特徴とする制御プログラム。 - デバッグ処理部によるデバッグ処理の実行を制御するデータ処理装置において用いられる集積回路であって、
前記デバッグ処理部を識別する識別子を取得する第1取得部と、
不正アクセスから保護された状態にあるデバッグ対象プログラムの所定部分に含まれる検証値を取得する第2取得部と、
前記デバッグ対象プログラムから取得された前記検証値と前記第1取得手段により取得された前記識別子とを比較し、その比較結果に応じて、前記デバッグ対象プログラムに対するデバッグ処理が許可されているか判定する判定部と、
許可されていないと判定されたとき、前記デバッグ対象プログラムに対するデバッグ処理の実行を禁止する制御部とを含み、
前記判定部は、比較値を不正アクセスから保護された状態で記憶する比較値保持部を含み、
前記検証値と前記識別子とを演算子として用いた所定の演算を行い、その演算結果が、前記記憶している前記比較値と一致した場合に、前記デバッグ処理が許可されていると判定する
ことを特徴とする集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008513216A JP4814319B2 (ja) | 2006-04-24 | 2007-04-24 | データ処理装置、方法、プログラム、集積回路、プログラム生成装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006118881 | 2006-04-24 | ||
JP2006118881 | 2006-04-24 | ||
JP2008513216A JP4814319B2 (ja) | 2006-04-24 | 2007-04-24 | データ処理装置、方法、プログラム、集積回路、プログラム生成装置 |
PCT/JP2007/058838 WO2007125911A1 (ja) | 2006-04-24 | 2007-04-24 | データ処理装置、方法、プログラム、集積回路、プログラム生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007125911A1 JPWO2007125911A1 (ja) | 2009-09-10 |
JP4814319B2 true JP4814319B2 (ja) | 2011-11-16 |
Family
ID=38655437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008513216A Expired - Fee Related JP4814319B2 (ja) | 2006-04-24 | 2007-04-24 | データ処理装置、方法、プログラム、集積回路、プログラム生成装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090307783A1 (ja) |
EP (1) | EP2023248B1 (ja) |
JP (1) | JP4814319B2 (ja) |
CN (1) | CN101427222B (ja) |
WO (1) | WO2007125911A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12047504B2 (en) | 2020-09-18 | 2024-07-23 | Kabushiki Kaisha Toshiba | Semiconductor device including a normal mode, a debug mode, and a key |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429613B2 (en) * | 2006-10-31 | 2013-04-23 | Microsoft Corporation | Stepping and application state viewing between points |
US9589115B2 (en) * | 2007-01-18 | 2017-03-07 | Panasonic Intellectual Property Management Co., Ltd. | Obfuscation assisting apparatus |
JP2010117813A (ja) * | 2008-11-12 | 2010-05-27 | Nec Electronics Corp | デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム |
US9053295B1 (en) * | 2009-02-04 | 2015-06-09 | Sprint Communications Company L.P. | Facilitating application development using protected components |
JP2012128463A (ja) * | 2009-04-10 | 2012-07-05 | Panasonic Corp | デバッグ許可装置 |
CN101794252B (zh) * | 2009-12-23 | 2013-03-13 | 张曙光 | 一种在源程序层次实现运算符单步调试的方法 |
US9081888B2 (en) | 2010-03-31 | 2015-07-14 | Cloudera, Inc. | Collecting and aggregating log data with fault tolerance |
US9317572B2 (en) | 2010-03-31 | 2016-04-19 | Cloudera, Inc. | Configuring a system to collect and aggregate datasets |
US8874526B2 (en) | 2010-03-31 | 2014-10-28 | Cloudera, Inc. | Dynamically processing an event using an extensible data model |
US9082127B2 (en) | 2010-03-31 | 2015-07-14 | Cloudera, Inc. | Collecting and aggregating datasets for analysis |
US8904356B2 (en) | 2010-10-20 | 2014-12-02 | International Business Machines Corporation | Collaborative software debugging in a distributed system with multi-member variable expansion |
US8972945B2 (en) | 2010-10-21 | 2015-03-03 | International Business Machines Corporation | Collaborative software debugging in a distributed system with client-specific access control |
US9009673B2 (en) | 2010-10-21 | 2015-04-14 | International Business Machines Corporation | Collaborative software debugging in a distributed system with collaborative step over operation |
US8671393B2 (en) | 2010-10-21 | 2014-03-11 | International Business Machines Corporation | Collaborative software debugging in a distributed system with client-specific dynamic breakpoints |
US9411709B2 (en) | 2010-11-10 | 2016-08-09 | International Business Machines Corporation | Collaborative software debugging in a distributed system with client-specific event alerts |
US8990775B2 (en) | 2010-11-10 | 2015-03-24 | International Business Machines Corporation | Collaborative software debugging in a distributed system with dynamically displayed chat sessions |
US8850397B2 (en) | 2010-11-10 | 2014-09-30 | International Business Machines Corporation | Collaborative software debugging in a distributed system with client-specific display of local variables |
US8788815B1 (en) * | 2011-01-31 | 2014-07-22 | Gazzang, Inc. | System and method for controlling access to decrypted data |
KR101250661B1 (ko) * | 2011-02-08 | 2013-04-03 | 주식회사 팬택 | 모바일 플랫폼 보안 장치 및 방법 |
US8880592B2 (en) | 2011-03-31 | 2014-11-04 | Cloudera, Inc. | User interface implementation for partial display update |
US8656360B2 (en) | 2011-04-20 | 2014-02-18 | International Business Machines Corporation | Collaborative software debugging in a distributed system with execution resumption on consensus |
US8739127B2 (en) | 2011-04-20 | 2014-05-27 | International Business Machines Corporation | Collaborative software debugging in a distributed system with symbol locking |
US8806438B2 (en) * | 2011-04-20 | 2014-08-12 | International Business Machines Corporation | Collaborative software debugging in a distributed system with variable-specific messages |
DE102011018431A1 (de) * | 2011-04-21 | 2012-10-25 | Giesecke & Devrient Gmbh | Verfahren zur Anzeige von Informationen auf einer Anzeigeeinrichtung eines Endgeräts |
US8756577B2 (en) | 2011-06-28 | 2014-06-17 | International Business Machines Corporation | Collaborative software debugging in a distributed system with private debug sessions |
US9053233B2 (en) * | 2011-08-15 | 2015-06-09 | Freescale Semiconductor, Inc. | Method and device for controlling debug event resources |
DE102011115135A1 (de) | 2011-10-07 | 2013-04-11 | Giesecke & Devrient Gmbh | Mikroprozessorsystem mit gesicherter Laufzeitumgebung |
US9128949B2 (en) | 2012-01-18 | 2015-09-08 | Cloudera, Inc. | Memory allocation buffer for reduction of heap fragmentation |
US9172608B2 (en) | 2012-02-07 | 2015-10-27 | Cloudera, Inc. | Centralized configuration and monitoring of a distributed computing cluster |
US9405692B2 (en) | 2012-03-21 | 2016-08-02 | Cloudera, Inc. | Data processing performance enhancement in a distributed file system |
US9338008B1 (en) | 2012-04-02 | 2016-05-10 | Cloudera, Inc. | System and method for secure release of secret information over a network |
US9842126B2 (en) | 2012-04-20 | 2017-12-12 | Cloudera, Inc. | Automatic repair of corrupt HBases |
US9753954B2 (en) | 2012-09-14 | 2017-09-05 | Cloudera, Inc. | Data node fencing in a distributed file system |
CN103684899B (zh) * | 2012-09-17 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 远程调试方法和装置 |
US10098586B2 (en) * | 2012-09-28 | 2018-10-16 | Panasonic Intellectual Property Corporation Of America | Oral cavity inspection device and information display method |
JP6098110B2 (ja) * | 2012-10-24 | 2017-03-22 | 富士通株式会社 | 情報処理装置、データ保護方法、およびプログラム |
KR101954733B1 (ko) * | 2012-10-26 | 2019-03-06 | 삼성전자주식회사 | 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 |
US20140173759A1 (en) * | 2012-12-17 | 2014-06-19 | Microsoft Corporation | Rights-managed code |
US9342557B2 (en) | 2013-03-13 | 2016-05-17 | Cloudera, Inc. | Low latency query engine for Apache Hadoop |
JP6067449B2 (ja) * | 2013-03-26 | 2017-01-25 | 株式会社東芝 | 情報処理装置、情報処理プログラム |
TWI498737B (zh) * | 2013-03-29 | 2015-09-01 | Mstar Semiconductor Inc | 用於主機板控制模組之除錯權限判斷方法及相關主機板控制模組 |
US9749304B1 (en) | 2013-07-30 | 2017-08-29 | Google Inc. | System and methods for accessing multiple resources via one identifier |
US20150052616A1 (en) | 2013-08-14 | 2015-02-19 | L-3 Communications Corporation | Protected mode for securing computing devices |
US9552279B2 (en) * | 2013-08-16 | 2017-01-24 | Nxp Usa, Inc. | Data bus network interface module and method therefor |
US9477731B2 (en) | 2013-10-01 | 2016-10-25 | Cloudera, Inc. | Background format optimization for enhanced SQL-like queries in Hadoop |
US9934382B2 (en) | 2013-10-28 | 2018-04-03 | Cloudera, Inc. | Virtual machine image encryption |
US9690671B2 (en) | 2013-11-01 | 2017-06-27 | Cloudera, Inc. | Manifest-based snapshots in distributed computing environments |
US10171635B2 (en) | 2013-12-04 | 2019-01-01 | Cloudera, Inc. | Ensuring properly ordered events in a distributed computing environment |
US9251368B2 (en) | 2014-01-08 | 2016-02-02 | International Business Machines Corporation | Provisioning transient-controlled secure environments for viewing sensitive data |
CN104881611B (zh) * | 2014-02-28 | 2017-11-24 | 国际商业机器公司 | 保护软件产品中的敏感数据的方法和装置 |
US9747333B2 (en) | 2014-10-08 | 2017-08-29 | Cloudera, Inc. | Querying operating system state on multiple machines declaratively |
US10120904B2 (en) | 2014-12-31 | 2018-11-06 | Cloudera, Inc. | Resource management in a distributed computing environment |
CN105653908B (zh) * | 2015-12-31 | 2018-12-25 | 西北大学 | 一种隐式反调试保护方法 |
CN105930721B (zh) | 2016-04-28 | 2018-11-23 | 北京小米移动软件有限公司 | 一种管理应用程序的方法和装置 |
JP6961553B2 (ja) * | 2018-08-30 | 2021-11-05 | 株式会社東芝 | 情報処理装置、システム及び方法 |
DE102018127330A1 (de) * | 2018-11-01 | 2020-05-07 | Infineon Technologies Ag | System-on-Chip und Verfahren zum Betreiben eines System-on-Chip |
CN110046514B (zh) * | 2019-04-12 | 2023-05-26 | 深圳Tcl新技术有限公司 | 调试数据保护方法、装置、服务器及存储介质 |
CN110362501B (zh) * | 2019-07-05 | 2021-09-24 | 北京大学 | 一种执行饱和寻址加载和存储操作的设备和方法 |
EP3961436A1 (en) * | 2020-08-28 | 2022-03-02 | Siemens Aktiengesellschaft | Methods and systems for controlling access to at least one computer program |
CN112947861A (zh) * | 2021-03-09 | 2021-06-11 | 成都盛芯微科技有限公司 | 存储设备的数据读取方法及电子设备系统 |
WO2022259311A1 (ja) * | 2021-06-07 | 2022-12-15 | 日本電信電話株式会社 | デバッグ装置、デバッグ方法、及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005091143A1 (ja) * | 2004-03-24 | 2005-09-29 | Matsushita Electric Industrial Co., Ltd. | 情報処理装置及びプログラムファイル生成装置 |
JP2006065555A (ja) * | 2004-08-26 | 2006-03-09 | Matsushita Electric Ind Co Ltd | プログラム開発装置およびプログラム開発方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
US4937864A (en) | 1989-04-27 | 1990-06-26 | Xerox Corporation | Debug routine accessing system |
US5075845A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Type management and control in an object oriented memory protection mechanism |
US6345383B1 (en) * | 1994-09-14 | 2002-02-05 | Kabushiki Kaisha Toshiba | Debugging support device and debugging support method |
US6014666A (en) * | 1997-10-28 | 2000-01-11 | Microsoft Corporation | Declarative and programmatic access control of component-based server applications using roles |
CN1516836A (zh) * | 2000-09-08 | 2004-07-28 | 国际商业机器公司 | 软件安全认证信道 |
JP2003177938A (ja) | 2001-12-07 | 2003-06-27 | Fujitsu Ltd | 電子装置及びそのデバッグ認証方法 |
GB2395583B (en) | 2002-11-18 | 2005-11-30 | Advanced Risc Mach Ltd | Diagnostic data capture control for multi-domain processors |
GB0226905D0 (en) * | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Exception tyres within a secure processing system |
WO2004046925A1 (en) * | 2002-11-18 | 2004-06-03 | Arm Limited | Security mode switching via an exception vector |
-
2007
- 2007-04-24 WO PCT/JP2007/058838 patent/WO2007125911A1/ja active Application Filing
- 2007-04-24 CN CN2007800147358A patent/CN101427222B/zh active Active
- 2007-04-24 EP EP07742273.1A patent/EP2023248B1/en not_active Ceased
- 2007-04-24 JP JP2008513216A patent/JP4814319B2/ja not_active Expired - Fee Related
- 2007-04-24 US US12/298,198 patent/US20090307783A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005091143A1 (ja) * | 2004-03-24 | 2005-09-29 | Matsushita Electric Industrial Co., Ltd. | 情報処理装置及びプログラムファイル生成装置 |
JP2006065555A (ja) * | 2004-08-26 | 2006-03-09 | Matsushita Electric Ind Co Ltd | プログラム開発装置およびプログラム開発方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12047504B2 (en) | 2020-09-18 | 2024-07-23 | Kabushiki Kaisha Toshiba | Semiconductor device including a normal mode, a debug mode, and a key |
Also Published As
Publication number | Publication date |
---|---|
JPWO2007125911A1 (ja) | 2009-09-10 |
EP2023248A1 (en) | 2009-02-11 |
WO2007125911A1 (ja) | 2007-11-08 |
EP2023248B1 (en) | 2018-10-24 |
US20090307783A1 (en) | 2009-12-10 |
EP2023248A4 (en) | 2013-01-16 |
CN101427222B (zh) | 2012-11-21 |
CN101427222A (zh) | 2009-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4814319B2 (ja) | データ処理装置、方法、プログラム、集積回路、プログラム生成装置 | |
JP4048382B1 (ja) | 情報処理システムおよびプログラム | |
EP0768601B1 (en) | Device for executing enciphered program | |
EP1126356B1 (en) | Tamper resistant microprocessor | |
JP4886682B2 (ja) | データ処理装置 | |
JP3880933B2 (ja) | 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 | |
KR101337157B1 (ko) | 보안 모듈 및 정보 처리 장치 | |
US20110271350A1 (en) | method for protecting software | |
JP2005135265A (ja) | 情報処理装置 | |
JP4568489B2 (ja) | プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置 | |
JP4591163B2 (ja) | バスアクセス制御装置 | |
JP2010039891A (ja) | 情報処理装置、プログラム実行方法、プログラムおよび情報処理システム | |
JPWO2007142072A1 (ja) | 端末装置及びこれを備えたデータ管理システム | |
KR101227187B1 (ko) | 보안영역 데이터의 반출 제어시스템과 그 제어방법 | |
JP2009025907A (ja) | 半導体集積回路装置及びその信号処理方法 | |
KR20070006655A (ko) | 파일 관리 장치, 파일 관리 방법, 파일 관리 프로그램 및파일 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록매체 | |
JP2006146358A (ja) | Usb周辺機器制御システム、及びusb周辺機器制御方法 | |
KR101207434B1 (ko) | 이종의 디지털 문서 보호 시스템 간의 충돌 방지 시스템 및 방법 | |
JP2007188307A (ja) | データファイル監視装置 | |
JP4847827B2 (ja) | アクセス制御装置 | |
JP2010231623A (ja) | キャッシュメモリ制御装置及び方法 | |
JPH09282235A (ja) | アクセス制御方法 | |
JP2004272594A (ja) | データ利用装置及びデータ利用方法、並びにコンピュータ・プログラム | |
JP2005346150A (ja) | 情報処理装置、情報処理方法、プログラム及び記録媒体 | |
JP4120702B2 (ja) | 情報処理システムおよびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110531 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110708 |
|
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: 20110802 |
|
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: 20110825 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4814319 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140902 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |