説明

デバッグ許可装置システム

【課題】デバッグ許可鍵と装置固有IDとの比較からでは、プログラム単位の個別デバッグ制御ができない。
【解決手段】情報処理半導体装置の分解装置は、メモリ1からパスコード付きプログラムを読み出し、プログラムをメモリ2に転送し、パスコードをデバッグ許可装置のパスコードレジスタに保存する。同時にプログラム実行監視装置にプログラム設定を通知する。プログラム実行監視装置はCPUのプログラム実行を検知しデバッグ許可装置にプログラム実行中信号を通知する。デバッグ許可装置はパスコードレジスタと認証ファイルレジスタの値を演算し、プログラム実行中信号を受けデバッガポートの許可・不許可の制御を行うことでプログラム単位の個別デバッグ制御が可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデバッガ装置を伴う情報処理半導体装置に関する。
【背景技術】
【0002】
組み込みで用いられる情報処理半導体装置のCPUは一般的に標準的なデバッガポートを備えている。そこに接続する汎用のデバッガは比較的安価で容易に手に入る。そのため、ソフトウェア開発コストを抑えることができる。
【0003】
デバッガは、CPUで動作するプログラムをステップ実行させたり、途中で停止させてCPUの内部レジスタを観測したりして、プログラムのデバッグを行うツールである。
【0004】
一方、情報処理半導体装置内部に組み込むプログラムには、プログラムのアルゴリズムやデータを秘密にしなければならないものが存在する。上記汎用デバッガでは、これらの秘密にしなければならないプログラムやデータを容易に解析できてしまう問題がある。
【0005】
そこで、汎用デバッガと専用のデバッガ許可装置との組み合わせで、専用デバッガと同等の構成する方法が提案された(図13参照)。
【特許文献1】特開2002−341956号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、この従来方法では、デバッガ許可装置を一度手に入れてしまえば、未来永劫そのシステムに対するデバッグが許可される。また、複数のセキュアなプログラムを扱う場合は、1つのデバッガ許可装置で全てのプログラムに対して許可されることとなり、プログラム単位で選択的にデバッグの可否を制御できない問題がある。
【課題を解決するための手段】
【0007】
この問題を解決するための、本特許出願に係る請求項1に記載の発明は、CPUとデバッグポートとを備えた情報処理装置であって、さらに、前記CPUで実行中のプログラムを監視するプログラム実行監視装置と、前記CPUがデバッグの許可されたプラグラムを実行中であるときに、前記デバッグポートを有効にし、デバッグの許可されたプログラム以外のプログラムを実行中であるときに、前記デバッグポートを無効にすることを特徴とするデバッグ許可装置とを有する情報処理装置に関する。
【0008】
また、請求項2に記載の発明は、請求項1記載の情報処理装置であって、さらに、デバッグに先立ち、デバッグポートに接続されるデバッガとパスコードを用いて認証を行うことを特徴とする、情報処理装置に関する。
【0009】
また、請求項3に記載の発明は、請求項2記載の情報処理装置であって、さらに、プログラムとパスコードとをプログラム読み込みポートを介して読み込み可能であることを特徴とする、情報処理装置に関する。
【0010】
また、請求項4に記載の発明は、請求項3記載の情報処置装置であって、さらに、前記プログラム読み込みポートから読み込まれる、暗号鍵暗号化されたパスコード及びプログラムを復号する第1の復号装置を有することを特徴とする情報処理装置に関する。
【0011】
また、請求項5に記載の発明は、請求項4記載の情報処理装置であって、さらに、前記デバッガから読み込まれる秘密鍵暗号化認証ファイルを復号する第2の復号装置を有し、デバッグに先立ち、復号された認証ファイルと前記パスコードとを用いてデバッガとの認証を行う認証装置を有することを特徴とする情報処理装置に関する。
【0012】
また、請求項6に記載の発明は、前記第1の復号装置と、前記第2の復号装置とは異なる秘密鍵を用いることができることを特徴とする請求項5記載の情報処理装置に関する。
【0013】
また、請求項7に記載の発明は、前記認証装置は、前記パスコードの認証に加え、ユーザーの認証も行い、プログラムの認証及びユーザーの認証が共に成立したときに、前記デバッグ許可装置はデバッグを許可することを特徴とする請求項5記載の情報処理装置に関する。
【0014】
また、請求項8に記載の発明は、請求項1記載の情報処理装置に供給するためのプログラムとパスコードとを生成するプログラムファイル生成装置に関する。
【0015】
また、請求項9に記載の発明は、前記プログラムと前記パスコードとを暗号化して生成することを特徴とする請求項8記載のプログラムファイル生成装置に関する。
【0016】
また、請求項10に記載の発明は、前記プログラムと前記パスコードとを結合した上で、暗号化することを特徴とする請求項9記載のプログラムファイル生成装置に関する。
【0017】
また、請求項11に記載の発明は、デバッグ装置が、前記情報処理装置と認証を行う際に使用する暗号化された認証ファイルを、さらに生成する請求項10記載のプログラムファイル生成装置に関する。
【0018】
また、請求項12に記載の発明は、前記プログラムと前記パスコードを結合し、暗号化する際に用いる暗号鍵と、前記認証ファイルを暗号化する際に用いる暗号鍵とは異なることを特徴とする請求項11記載のプログラムファイル生成装置に関する。
【発明の効果】
【0019】
本発明のデバッガ許可制御システムによれば、プログラム単位でのシステムのデバッガに対する制御が可能になることにより、プログラムのセキュリティレベルを設定することが可能となり、実行するプログラムのセキュリティレベルによって、デバッグの可否を制御することが可能となる。
【発明を実施するための最良の形態】
【0020】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【0021】
(実施の形態1)
図1に本実施の形態における情報処理半導体装置200を中心としたシステム全体のブロック図を示す。
【0022】
情報処理半導体装置200は、CPU210、メモリ1202、メモリ2230、分解装置220、プログラム実行監視装置240、デバッグ許可装置250、デバッグポート270から構成されている。
【0023】
メモリ1202は情報処理半導体装置200と外部インターフェースを介して接続され、CPU:210、メモリ2230、分解装置220、プログラム実行監視装置240、デバッグ許可装置250、デバッグポート270は情報処理半導体装置200の内部に存在する形態が好ましい。
【0024】
情報処理半導体装置200はデバッグポート270を介して、デバッガ300と接続してデバッグが行われる。
【0025】
また、認証ファイル生成機100が情報処理半導体装置200とは独立に存在する。
【0026】
図2にデバッグ許可装置250の詳細について示す。
【0027】
デバッグ許可装置250は、パスコードレジスタ2502と、認証ファイルレジスタ2504の値を持つ。
【0028】
それぞれのレジスタの値を演算器2506で演算する。
【0029】
この演算結果と、プログラム実行許可装置240からCPU210がプログラムを実行中であること示す信号を受けて、デバッグポート270に対する制御を許可信号にて決定する。
【0030】
図4で認証ファイル生成機100での処理手順を示す。
【0031】
認証ファイル生成機100は情報処理半導体装置200で扱うパスコードを付加するプログラムを読み込むS2000。パスコードとS2012、パスコードと一対となるデバッガ用認証ファイルを生成するS2002。パスコードをプログラムに結合するS2014。
【0032】
認証ファイル生成機100でパスコードを結合したプログラムを情報処理半導体装置:200に提供し、メモリ1202に格納する。
【0033】
デバッガ認証ファイルはデバッガ300に提供する。
【0034】
図5でデバッガ300の接続処理手順を示す。
【0035】
デバッガ300は、情報処理半導体装置200へ接続した時S3000に、認証ファイルを、デバッグポートを介して認証ファイル用レジスタ2504に転送するS3002。
【0036】
図3に情報処理半導体装置:200でのプログラム読み込み処理手順で示す。
【0037】
パスコードつきプログラムはメモリ1202に保存されている。製品出荷時は、フラッシュROMなどの不揮発メモリに焼き付けられることが好ましい。
【0038】
情報処理半導体装置200は、CPUによりプログラムを分解器に読み出す指示を出すS1000。
【0039】
分解装置220は、メモリ1:202からパスコードつきプログラムを読み出し分解し、プログラムをメモリ2230に転送するS1002。同時に、パスコードをデバッグ許可装置250のレジスタ2502に転送するS1004。
【0040】
メモリ2230は分解装置:220からプログラムが転送されると、プログラム実行監視装置240へプログラムの設定を通知するS1022。
【0041】
プログラムの設定通知を受けて、プログラム実行監視装置240はCPU210のプログラム実行の監視を開始するS1024。
【0042】
CPU210は、メモリ2230からプログラムを読み出し実行するS1014。
【0043】
プログラム実行監視装置240はCPU210がプログラム実行を開始するとプログラム実行中信号をデバッグ許可装置250へ通知するS1026。
【0044】
一方、デバッグ許可装置250では、パスコードレジスタ2502と認証ファイルレジスタ2504を演算器2506で演算するS1006。
【0045】
デバッグ許可装置250は、上記演算結果とプログラム実行監視装置240からのプログラム実行中を受けて、デバッグポート270の許可・不許可を決定するS1008。
【0046】
デバッグ許可装置250は、上記の決定に従いデバッグポート270に対して許可または不許可の制御を行うS1030。
【0047】
以上の構成によりデバッグの許可されないプログラムによる不正なデバッグ実行を防止することができる。
【0048】
(実施の形態2)
図6に本実施の秘密鍵暗号化プログラムを用いた形態における情報処理半導体装置:200を中心としたシステム全体のブロック図を示す。なお、本実施の形態で記載しない構成は実施の形態1と共通である。
【0049】
情報処理半導体装置200は、CPU210、メモリ1202、メモリ2230、復号装置260、秘密鍵262、プログラム実行監視装置240、デバッグ許可装置250、デバッグポート270から構成されている。
【0050】
メモリ1202は情報処理半導体装置200と外部インターフェースを介して接続され、CPU210、メモリ2230、復号装置260、秘密鍵262、プログラム実行監視装置240、デバッグ許可装置250、デバッグポート270は情報処理半導体装置200の内部に存在する形態が好ましい。
【0051】
情報処理半導体装置200はデバッグポート210を介して、デバッガ300と接続してデバッグが行われる。
【0052】
また、認証ファイル生成機100が情報処理半導体装置200とは独立に存在する。
【0053】
図8で認証ファイル生成機100での処理手順を示す。
【0054】
認証ファイル生成機100は情報処理半導体装置200で扱うパスコードを付加するプログラムを読み込むS2000。パスコードとS2012、パスコードと一対となるデバッガ用認証ファイルを生成するS2002。パスコードを含む秘密鍵暗号化プログラムを生成するS2022。
【0055】
認証ファイル生成機100でパスコードを含む秘密鍵暗号化プログラムを情報処理半導体装置200に提供し、メモリ1202に格納する。
【0056】
デバッガ認証ファイルはデバッガ300に提供する。
【0057】
図7に情報処理半導体装置200でのプログラム読み込み処理手順で示す。
【0058】
秘密鍵暗号化プログラムはメモリ1202に保存されている。製品出荷時は、フラッシュROMなどの不揮発メモリに焼き付けられることが好ましい。
【0059】
情報処理半導体装置200は、CPUによりプログラムを分解器に読み出す指示を出すS1000。
【0060】
復号装置260は、メモリ1202から秘密鍵暗号化プログラムを読み出し、秘密鍵262で暗号文を復号し、復号した平文プログラムをメモリ2に転送するS1042。同時に、パスコードをデバッグ許可装置250のレジスタ2502に転送するS1044。
【0061】
メモリ2230は復号装置260から平文プログラムが転送されると、プログラム実行監視装置240へプログラムの設定を通知するS1022。
【0062】
プログラムの設定通知を受けて、プログラム実行監視装置240はCPU210のプログラム実行の監視を開始するS1024。
【0063】
CPU210は、メモリ2230から平文プログラムを読み出し実行するS1014。
【0064】
プログラム実行監視装置240はCPU210がプログラム実行を開始するとプログラム実行中信号をデバッグ許可装置250へ通知するS1026。
【0065】
一方、デバッグ許可装置250では、パスコードレジスタ2502と認証ファイルレジスタ2504を演算器2506で演算するS1006。
【0066】
デバッグ許可装置250は、上記演算結果とプログラム実行監視装置240からのプログラム実行中を受けて、デバッグポート270の許可・不許可を決定するS1008。
【0067】
デバッグ許可装置250は、上記の決定に従いデバッグポート270に対して許可または不許可の制御を行うS1030。
【0068】
以上の構成により、実施の形態1よりもセキュリティレベルを向上させることができる。
【0069】
(実施の形態3)
図9に本実施の秘密鍵暗号化認証ファイルを用いた形態における情報処理半導体装置200を中心としたシステム全体のブロック図を示す。なお、本実施の形態で記載しない構成は実施の形態1若しくは2と共通である。
【0070】
情報処理半導体装置200は、CPU210、メモリ1202、メモリ2230、復号装置260、秘密鍵1262、プログラム実行監視装置240、デバッグ許可装置250、秘密鍵2256、デバッグポート210から構成されている。
【0071】
メモリ1202は情報処理半導体装置200と外部インターフェースを介して接続され、CPU210、メモリ2230、復号装置260、秘密鍵1262、プログラム実行監視装置240、デバッグ許可装置250、秘密鍵2256、デバッグポート270は情報処理半導体装置200の内部に存在する形態が好ましい。
【0072】
情報処理半導体装置200はデバッグポート270を介して、デバッガ300と接続してデバッグが行われる。
【0073】
また、認証ファイル生成機100が情報処理半導体装置200とは独立に存在する。
【0074】
図10にデバッグ許可装置250の詳細について示す。
【0075】
デバッグ許可装置250は、パスコードレジスタ2502と、認証ファイルレジスタ2504の値を持つ。
【0076】
認証ファイルレジスタ2504は、デバッグポート270からデータが送られた時に、秘密鍵2256を用いて暗号復号器2510によって復号されてから設定される。
【0077】
パスコードレジスタ2502と、認証ファイルレジスタ2504の値を演算器2506で演算する。
【0078】
この演算結果と、プログラム実行監視装置240からCPU210がプログラムを実行中であること示す信号を受けて、デバッグポート270に対する制御を許可信号にて決定する。
【0079】
図12で認証ファイル生成機100での処理手順を示す。
【0080】
認証ファイル生成機100は情報処理半導体装置200で扱うパスコードを付加するプログラムを読み込むS2000。パスコードとS2012、パスコードと一対となるデバッガ用認証ファイルを生成するS2002。
【0081】
パスコードを含む秘密鍵暗号化プログラムを生成するS2022。
【0082】
秘密鍵暗号化デバッガ用認証ファイルを生成するS2032。
【0083】
認証ファイル生成機100でパスコードを含む秘密鍵暗号化プログラムを情報処理半導体装置200に提供し、メモリ1202に格納する。
【0084】
秘密鍵暗号化デバッガ用認証ファイルはデバッガ300に提供する。
【0085】
図11に情報処理半導体装置200でのプログラム読み込み処理手順で示す。
【0086】
秘密鍵暗号化プログラムはメモリ1202に保存されている。製品出荷時は、フラッシュROMなどの不揮発メモリに焼き付けられることが好ましい。
【0087】
情報処理半導体装置200は、CPUによりプログラムを分解器に読み出す指示を出すS1000。
【0088】
復号装置260は、メモリ1202から秘密鍵暗号化プログラムを読み出し、秘密鍵1262で暗号文を復号し、復号した平文プログラムをメモリ2に転送するS1042。同時に、パスコードをデバッグ許可装置250のレジスタ2502に転送するS1044。
【0089】
メモリ2230は復号装置260から平文プログラムが転送されると、プログラム実行監視装置240へプログラムの設定を通知するS1022。
【0090】
プログラムの設定通知を受けて、プログラム実行監視装置240はCPU210のプログラム実行の監視を開始するS1024。
【0091】
CPU210は、メモリ2230から平文プログラムを読み出し実行するS1014。
【0092】
プログラム実行監視装置240はCPU210がプログラム実行を開始するとプログラム実行中信号をデバッグ許可装置250へ通知するS1026。
【0093】
一方、デバッグ許可装置250では、秘密鍵暗号化デバッガ用認証ファイルを秘密鍵2256を用いて暗号復号器2510で復号し、認証ファイルレジスタ2504に設定するS1062。
【0094】
パスコードレジスタ2502と認証ファイルレジスタ2504を演算器2506で演算するS1006。
【0095】
デバッグ許可装置250は、上記演算結果とプログラム実行監視装置240からのプログラム実行中を受けて、デバッグポート270の許可・不許可を決定するS1008。
【0096】
デバッグ許可装置250は、上記の決定に従いデバッグポート270に対して許可または不許可の制御を行うS1030。
【0097】
なお本実施の形態における秘密鍵1(262)と、秘密鍵2(256)は異なるが、これらを共通とすることもできる。
【0098】
以上の構成により、実施の形態2よりもさらにセキュリティレベルを向上させることができる。
【産業上の利用可能性】
【0099】
本発明は、認証ファイル生成機によるパスコードつきのプログラムの生成と、そのパスコードに対応した認証ファイルを生成、および情報処理半導体装置のデバッグ許可装置による復号装置からのパスコードとデバッガからの認証ファイルとの演算によりデバッガポートを選択的に制御することで、プログラム単位でのデバッガ制御が可能となる。本発明は、アルゴリズムの保護が必要なプログラムを搭載する情報処理半導体装置全般に利用することができ、その産業上の利用可能性は非常の広く且つ大きい。
【図面の簡単な説明】
【0100】
【図1】本実施の形態における情報処理半導体装置を中心としたシステム全体のブロック図
【図2】デバッグ許可装置の詳細図
【図3】情報処理半導体装置でのプログラムの読み込み手順を示す図
【図4】認証ファイル生成機の処理手順を示す図
【図5】デバッガによる認証ファイルの転送手順を示す図
【図6】暗号化プログラムを伴う情報処理半導体装置を中心としたシステム全体のブロック図
【図7】暗号化プログラムを伴う情報処理半導体装置でのプログラムの読み込み手順を示す図
【図8】暗号化プログラムを伴う認証ファイル生成機の処理手順を示す図
【図9】暗号化認証ファイルを伴う情報処理半導体装置を中心としたシステム全体のブロック図
【図10】暗号化認証ファイルを伴うデバッグ許可装置の詳細図
【図11】暗号化認証ファイルを伴う情報処理半導体装置でのプログラムの読み込み手順を示す図
【図12】暗号化認証ファイルを伴う認証ファイル生成機の処理手順を示す図
【図13】従来の技術のブロック図
【符号の説明】
【0101】
100 認証ファイル生成機
200 情報処理半導体装置
202 メモリ1
210 CPU
220 分解装置
230 メモリ2
240 プログラム実行監視装置
250 デバッグ許可装置
2502 パスコードレジスタ
2504 認証ファイルレジスタ
2506 演算器
2510 暗号復号器
256 秘密鍵2
260 復号装置
262 秘密鍵1
270 デバッグポート
300 デバッガ

【特許請求の範囲】
【請求項1】
CPUとデバッグポートとを備えた情報処理装置であって、さらに、
前記CPUで実行中のプログラムを監視するプログラム実行監視装置と、
前記CPUがデバッグの許可されたプラグラムを実行中であるときに、前記デバッグポートを有効にし、デバッグの許可されたプログラム以外のプログラムを実行中であるときに、前記デバッグポートを無効にすることを特徴とするデバッグ許可装置とを有する情報処理装置。
【請求項2】
請求項1記載の情報処理装置であって、さらに、
デバッグに先立ち、デバッグポートに接続されるデバッガとパスコードを用いて認証を行うことを特徴とする、情報処理装置。
【請求項3】
請求項2記載の情報処理装置であって、さらに、プログラムとパスコードとをプログラム読み込みポートを介して読み込み可能であることを特徴とする、情報処理装置。
【請求項4】
請求項3記載の情報処置装置であって、さらに、
前記プログラム読み込みポートから読み込まれる、暗号鍵暗号化されたパスコード及びプログラムを復号する第1の復号装置を有することを特徴とする情報処理装置。
【請求項5】
請求項4記載の情報処理装置であって、さらに、
前記デバッガから読み込まれる秘密鍵暗号化認証ファイルを復号する第2の復号装置を有し、
デバッグに先立ち、復号された認証ファイルと前記パスコードとを用いてデバッガとの認証を行う認証装置を有することを特徴とする情報処理装置。
【請求項6】
前記第1の復号装置と、前記第2の復号装置とは異なる秘密鍵を用いることができることを特徴とする請求項5記載の情報処理装置。
【請求項7】
前記認証装置は、前記パスコードの認証に加え、ユーザーの認証も行い、プログラムの認証及びユーザーの認証が共に成立したときに、前記デバッグ許可装置はデバッグを許可することを特徴とする請求項5記載の情報処理装置。
【請求項8】
請求項1記載の情報処理装置に供給するためのプログラムとパスコードとを生成するプログラムファイル生成装置。
【請求項9】
前記プログラムと前記パスコードとを暗号化して生成することを特徴とする請求項8記載のプログラムファイル生成装置。
【請求項10】
前記プログラムと前記パスコードとを結合した上で、暗号化することを特徴とする請求項9記載のプログラムファイル生成装置。
【請求項11】
デバッグ装置が、前記情報処理装置と認証を行う際に使用する暗号化された認証ファイルを、さらに生成する請求項10記載のプログラムファイル生成装置。
【請求項12】
前記プログラムと前記パスコードを結合し、暗号化する際に用いる暗号鍵と、前記認証ファイルを暗号化する際に用いる暗号鍵とは異なることを特徴とする請求項11記載のプログラムファイル生成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2007−226276(P2007−226276A)
【公開日】平成19年9月6日(2007.9.6)
【国際特許分類】
【出願番号】特願2004−86229(P2004−86229)
【出願日】平成16年3月24日(2004.3.24)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】