説明

デバッグ許可装置

【課題】汎用デバッガーの使用が許可された正規の場所のみ汎用デバッガーによるソフトウェア開発動作を許可するデバッグ許可装置を提供すること。
【解決手段】位置情報取得部103と、許可情報保持部106と、位置情報照合部105と、汎用デバッガーインターフェース104を備え、汎用デバッガーインターフェース104が、汎用デバッガーの接続を検知すると、専用線105aを介して、接続信号を送信し、位置情報照合部105が、現在位置情報と許可情報を照合し、現在位置で使用を許可すると判断した場合に、汎用デバッガーインターフェース104に使用許可信号を送信し、外部からの入出力を有効化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理半導体装置のデバッグ制御に関し、特に、デバッガーの使用許可に関するものである。
【背景技術】
【0002】
近年、システムLSIなどの情報処理半導体装置は標準的な汎用デバッガーインターフェースを備えており、そこに接続する汎用デバッガーは比較的安価で容易に入手できる。そのため、ソフトウェアの開発コストを低くできるという利点がある。汎用デバッガーとは、システムLSIで動作するソフトウェアを開発し、かつCPUをステップ実行させたり、ソフトウェアを途中で停止させたりしてソフトウェアのデバッグを行うツールである。
【0003】
一方で、システムLSI内部に組み込まれたソフトウェアやメモリ上のソフトウェアは、第三者に知られたくないソフトウェアやデータを含んでいることがしばしばある。上記の標準的な汎用デバッガーを接続可能な状態にしておくと、第三者がそのソフトウェアの動作やデータを容易に解析できるというセキュリティ上の問題がある。
【0004】
従来の情報処理半導体装置としては、電子鍵を持つ正規のソフトウェア開発者にのみ汎用デバッガーによるソフトウェア開発動作を許可し、製品上の組込みソフトウェアのセキュリティを守る技術があった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−341956号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、前記従来の構成では、電子鍵が外部(インターネットなど)に漏洩した場合に、悪意を持つ第三者により、汎用デバッガーを介したソフトウェア解析が可能となるという課題を有していた。
【0007】
本発明は、従来の課題を解決するもので、製品の位置情報を用いて汎用デバッガーの使用が許可された正規の場所のみ汎用デバッガーによるソフトウェア開発動作を許可するデバック許可装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
前記従来の課題を解決するために、本発明のデバッグ許可装置は、CPU、メモリおよび汎用デバッガーインターフェースを備えた情報処理装置において、前記前記情報処理装置の現在位置情報を取得する位置情報取得手段と、汎用デバッガーの使用を許可する位置を示す許可情報を1つ以上保持する許可情報保持手段と、前記汎用デバッガーインターフェースと専用線で接続されており、前記汎用デバッガーインターフェースから通知を受けた際に、前記位置情報取得手段が取得した現在位置情報と前記許可情報保持手段が保持する許可情報を受け取り、前記現在位置情報と前記許可情報とを照合し、汎用デバッガーの使用を許可するか否かを判定する位置情報照合手段を備え、前記汎用デバッガーインターフェースは、前記位置情報照合手段による照合結果に基づいて、外部からの入出力を有効化または無効化することを特徴とする。
【0009】
本構成によって、汎用デバッガーの使用が許可された正規の場所のみ、汎用デバッガーによるソフトウェア開発動作を許可することができる。
【発明の効果】
【0010】
本発明のデバッグ許可装置によれば、汎用デバッガーの使用が許可された正規の場所のみ汎用デバッガーによるソフトウェア開発動作を許可し、許可されていない場所で、製品上の組込みソフトウェアに対するセキュリティを保つことができる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施の形態における情報処理装置の構成図
【図2】本発明の実施の形態における情報処理装置の構成図
【図3】本発明の実施の形態における許可情報の構成図
【図4】本発明の実施の形態における情報処理装置の処理の一例を示すフロー図
【図5】本発明の実施の形態における情報処理装置の処理の一例を示すフロー図
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【0013】
(実施の形態1)
本実施の形態において、情報処理装置はシステムLSIであって、システムLSI内部に組み込まれたソフトウェアにより、機器の動作を制御する。この機器は、例えば、民生機器であって、携帯電話やBD/DVDレコーダ、カーナビ、PDA(PDA:Personal Digital Assistant)などである。また、製品上の組込みソフトウェアについて、第三者のリバースエンジニアリング等に対するセキュリティを保つ必要がある全ての情報処理装置に適用可能である。
【0014】
図1は、本発明の実施の形態におけるデバッグ装置を備えた情報処理半導体装置の構成を示すブロック図を示す。
【0015】
情報処理装置100は、CPU101、メモリ102、位置情報取得部103、汎用デバッガーインターフェース104、位置情報照合部105、許可情報保持部106を備えている。CPU101とメモリ102と位置情報取得部103と汎用デバッガーインターフェース104は、内部バス107を介して互いに接続されている。また、位置情報取得部103と位置情報照合部105、位置情報保持部106と位置情報照合部105、汎用デバッガーインターフェース104と位置情報照合部105は、内部バス107とは異なる専用線で、それぞれ接続されている。
【0016】
CPU101は、ソフトウェアによって様々な情報処理などを行う電子回路である。図1では、単一のCPUで構成された例を示しているが、複数のCPUで構成されてもよい。
【0017】
メモリ102は、ROM(Read Only Memory)111及びRAM(Random Access Memory)112を備えている。ROM111は、CPU101の動作を規定するコンピュータプログラムを記憶している。CPU101は、ROM111が格納するコンピュータプログラムを、必要に応じてRAM112に書き込みつつ、コンピュータプログラムが規定する処理を実行する。RAM112は、CPU101が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する。ROM111には、フラッシュROMのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリや記憶媒体も含まれる。RAM112には、電源を切ると記憶内容が保持されない揮発性のメモリや記憶媒体が含まれる。
【0018】
位置情報取得部103は、情報処理装置100の現在位置情報を取得し、専用線103aを介して、位置情報照合部105に、取得した情報処理装置100の現在位置情報を提供する。位置情報取得部103は、例えば、GPS装置である。また、位置情報取得部103は、GPS機能を有する回路であってもよい。さらに、位置情報取得部103は、PlaceEngineを用いることで、室内において情報処理装置100の現在位置情報103aを取得することができる。
【0019】
現在位置情報は、情報処理装置100が存在する緯度経度、Wi−Fi電波情報などの位置を示す情報である。
【0020】
汎用デバッガーインターフェース104は、汎用デバッガー110が情報処理装置100に接続するためのインターフェースである。汎用デバッガー110は、汎用デバッガーインターフェース104を介して、情報処理装置100と、ソフトウェア解析のための信号やデータの入出力を行うことができる。汎用デバッガーインターフェース104は、専用線105aを介して、位置情報照合部105から使用許可信号を受信した場合に、外部からの入出力を有効化する。
【0021】
位置情報照合部105は、位置情報取得部103から受け取った情報処理装置100の現在位置情報と、許可情報保持部106が保持する許可情報とを照合し、現在位置で、汎用デバッガーインターフェースの使用を許可するか否かを判断する。両者が一致すれば、位置情報照合部105は、専用線105aを介して、汎用デバッガーインターフェース104へ使用許可信号を送信する。なお、位置情報照合部105は、汎用デバッガーインターフェース104から接続信号を受信した際に、この照合を行う。
【0022】
使用許可信号は、汎用デバッガーインターフェース104の使用を許可するための電気信号である。
【0023】
許可情報保持部106は、1つ以上の許可情報を保持しており、専用線106aを介して、位置情報照合部105に、保持している許可情報を提供する。許可情報保持部106は、例えば、マスクROMやヒューズ、レジスタなどである。また、許可情報保持部106は、一つの回路であっても、また、DISPスイッチなどであってもよい。
【0024】
許可情報は、汎用デバッガーの使用が許可された位置を示す情報であり、例えば、情報処理装置100に接続した汎用デバッガー110によるソフトウェア開発動作を許可する緯度経度、Wi−Fi電波情報などの位置を示す情報である。許可情報保持部106は、製造工程の過程で決定した位置情報を設定し、設定した位置情報を許可情報として使用することができる。
【0025】
汎用デバッガー110は、汎用デバッガーインターフェース104を介して情報処理装置100と接続する。汎用デバッガー110は、汎用デバッガーインターフェース104が有効化することにより、CPU101とメモリ102を制御することが可能となる。これにより、汎用デバッガー110は、情報処理装置100内部のソフトウェア開発動作が可能となり、組込みソフトウェアを解析することができる。
【0026】
以上の構成により、本発明において、汎用デバッガーの使用が許可された正規の場所のみ、汎用デバッガーインターフェースを有効化することで、汎用デバッガーによるソフトウェア開発動作を許可することが可能となる。これにより、許可されていない場所では、汎用デバッガーインターフェースが無効化となり、製品上の組込みソフトウェアに対するセキュリティを保つことができる。
【0027】
図3は、許可情報保持部106が保持する許可情報の一例を示す図である。
【0028】
許可情報保持部106は、許可情報(本社用)300、許可情報(第一工場用)301、許可情報(第二工場用)302を保持している。これらの許可情報は、汎用デバッガーの使用が許可された正規の場所を示している。この例では、3つの場所においてのみ汎用デバッガーを使用することが許可されている。
【0029】
許可情報(本社用)300は、汎用デバッガーの使用が許可された本社の緯度経度、Wi−Fi電波情報などの位置を示す情報である。
【0030】
許可情報(第一工場用)301は、汎用デバッガーの使用が許可された第一工場の緯度経度、Wi−Fi電波情報などの位置を示す情報である。
【0031】
許可情報(第二工場用)302は、汎用デバッガーの使用が許可された第二工場の緯度経度、Wi−Fi電波情報などの位置を示す情報である。
【0032】
なお、許可情報は、使用を許可する中心位置を示しており、所定の範囲を許可位置としてもよい。
【0033】
図4は、本実施の形態におけるデバッグ装置を備えた情報処理装置が、汎用デバッガーを接続した際の処理の一例を示す図である。まず、情報処理装置100は、電源ONにより起動し、処理を開始する。
【0034】
汎用デバッガーインターフェース104は、汎用デバッガー110が情報処理装置100に接続するのを検知する(ステップS1)。
【0035】
汎用デバッガーインターフェース104は、接続を検知すると(ステップS1がYes)、専用線105aを介して、位置情報照合部105に、接続信号を送信し、位置情報照合部105は、接続信号を受信する(ステップS2)。
【0036】
位置情報照合部105は、専用線103aを介して、位置情報取得部103から、情報処理装置100の現在位置情報を取得する(ステップS3)。
【0037】
位置情報照合部105は、専用線106aを介して、許可情報保持部106から、許可情報を取得する(ステップS4)。
【0038】
位置情報照合部105は、取得した現在位置情報と許可情報を照合し、現在位置で、汎用デバッガーインターフェースの使用を許可するか否かを判断する(ステップS5)。
【0039】
照合した結果、許可する場合(ステップS5が許可する)、位置情報照合部105は、専用線105aを介して、汎用デバッガーインターフェース104に使用許可信号を送信する。汎用デバッガーインターフェース104は、使用許可信号を受信し、外部からの入出力を有効化する(ステップS6)。
【0040】
照合した結果、許可しない場合(ステップS5が許可しない)、位置情報照合部105は、専用線105aを介して、汎用デバッガーインターフェース104に使用不許可信号を送信する。汎用デバッガーインターフェース104は、使用不許可信号を受信し、外部からの入出力を無効化する(ステップS7)。
【0041】
かかる構成によれば、汎用デバッガーの使用が許可された正規の場所のみ、汎用デバッガーインターフェースを有効化することで、汎用デバッガーによるソフトウェア開発動作を許可することが可能となる。これにより、許可されていない場所では、汎用デバッガーインターフェースが無効化となり、製品上の組込みソフトウェアに対するセキュリティを保つことができる。
【0042】
また、特定のシステムLSI専用のデバッガーを開発する必要がなく、標準的な汎用デバッガーをそのまま用いることが可能となり、システム開発コストを削減することができる。
【0043】
(実施の形態2)
図2は、発明の実施の形態におけるデバッグ装置を備えた情報処理半導体装置の構成を示すブロック図を示す。
【0044】
情報処理装置200は、CPU101、メモリ102、位置情報取得部103、汎用デバッガーインターフェース204、位置情報照合部205、許可情報保持部106を備えている。CPU201とメモリ102と位置情報取得部103と汎用デバッガーインターフェース204は、内部バス107を介して互いに接続されている。また、位置情報取得部103と位置情報照合部205、位置情報保持部106と位置情報照合部205、汎用デバッガーインターフェース204と位置情報照合部205は、内部バス107とは異なる専用線で、それぞれ接続されている。さらに、本実施の形態においては、位置情報照合部205とCPU201が、内部バス107とは異なる専用線で、接続されている。
【0045】
CPU201は、ソフトウェアによって様々な情報処理などを行う電子回路である。CPU201は、デバッグ許可状態とデバッグ不許可状態の2つの状態を有しており、デバッグ許可状態の場合、汎用デバッガー110からの実行停止信号を受信し(導通)、デバッグ不許可状態の場合、実行停止信号を受信しない(遮断)。例えば、実行停止信号は、割り込みであり、CPU201が、デバッグ不許可状態の場合、実行停止信号を割り込みマスクすることで実現可能である。また、実行停止信号は、特定のレジスタへの書き込みであってもよい。また、CPU201は、専用線105bを介して、位置情報照合部205から実行許可信号を受信した場合に、デバッグ許可状態とし、位置情報照合部205から実行不許可信号を受信した場合に、デバッグ不許可状態とする。図2では、単一のCPUで構成された例を示しているが、複数のCPUで構成されてもよい。
【0046】
メモリ102は、ROM(Read Only Memory)111及びRAM(Random Access Memory)112を備えている。ROM111は、CPU201の動作を規定するコンピュータプログラムを記憶している。CPU201は、ROM111が格納するコンピュータプログラムを、必要に応じてRAM112に書き込みつつ、コンピュータプログラムが規定する処理を実行する。RAM112は、CPU201が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する。ROM111には、フラッシュROMのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリや記憶媒体も含まれる。RAM112には、電源を切ると記憶内容が保持されない揮発性のメモリや記憶媒体が含まれる。
【0047】
位置情報取得部103は、情報処理装置200の現在位置情報を取得し、専用線103aを介して、位置情報照合部205に、取得した情報処理装置200の現在位置情報を提供する。位置情報取得部103は、例えば、GPS装置である。また、位置情報取得部103は、GPS機能を有する回路であってもよい。さらに、位置情報取得部103は、PlaceEngineを用いることで、室内において情報処理装置200の現在位置情報103aを取得することができる。
【0048】
現在位置情報は、情報処理装置200が存在する緯度経度、Wi−Fi電波情報などの位置を示す情報である。
【0049】
汎用デバッガーインターフェース204は、汎用デバッガー110が情報処理装置200に接続するためのインターフェースである。汎用デバッガー110は、汎用デバッガーインターフェース204を介して、情報処理装置200と、ソフトウェア解析のための信号やデータの入出力を行うことができる。汎用デバッガーインターフェース204は、汎用デバッガー110から実行停止信号を受信した場合に、CPU201へ実行停止信号を送信すると共に、専用線105aを介して、位置情報照合部205へ実行停止信号を送信する。
【0050】
位置情報照合部205は、位置情報取得部103から受け取った情報処理装置200の現在位置情報と、許可情報保持部106が保持する許可情報とを照合し、現在位置で、汎用デバッガーの使用を許可するか否かを判断する。両者が一致すれば、位置情報照合部205は、専用線105bを介して、CPU201へ実行許可信号を送信する。なお、位置情報照合部205は、汎用デバッガーインターフェース204から接続信号または実行停止信号を受信した際に、この照合を行う。
【0051】
許可情報保持部106は、1つ以上の許可情報を保持しており、専用線106aを介して、位置情報照合部205に、保持している許可情報を提供する。許可情報保持部106は、例えば、マスクROMやヒューズ、レジスタなどである。また、許可情報保持部106は、一つの回路であっても、また、DISPスイッチなどであってもよい。許可情報保持部106が保持する許可情報は、図3を用いて既に一例を説明した。
【0052】
許可情報は、情報処理装置200に接続した汎用デバッガー110によるソフトウェア開発動作を許可する緯度経度、Wi−Fi電波情報などの位置を示す情報である。許可情報保持部106は、製造工程の過程で決定した位置情報を設定し、設定した位置情報を許可情報として使用することができる。
【0053】
汎用デバッガー110は、汎用デバッガーインターフェース204を介して情報処理装置200と接続する。汎用デバッガー110は、汎用デバッガーソフトのソフトウェア停止の指示に従い、情報処理装置200へ実行停止信号(Break)を送信する。
【0054】
実行停止信号は、汎用デバッガーインターフェース204が汎用デバッガー110から受信し、CPU201と位置情報照合部205に送信する。実行停止信号は、汎用デバッガーソフトが、情報処理装置200の上で動作するソフトウェアを解析するために、途中で動作を停止する際に送信する。なお、汎用デバッガーソフトは、汎用デバッガー110を制御するソフトウェアである。
【0055】
以上の構成により、本発明において、汎用デバッガーの使用が許可された正規の場所のみ、CPUがデバッガーからの信号を受け付けることで、汎用デバッガーによるソフトウェア開発動作を実施することが可能となる。これにより、許可されていない場所では、CPUがデバッガーからの信号に従った動作を行なわないことから、製品上の組込みソフトウェアに対するセキュリティを保つことができる。
【0056】
図5は、本実施の形態におけるデバッグ装置を備えた情報処理装置が、汎用デバッガーを接続した際の処理の一例を示す図である。まず、情報処理装置200は、電源ONにより起動し、処理を開始する。
【0057】
汎用デバッガーインターフェース204は、汎用デバッガー110が情報処理装置200に接続するのを検知する(ステップS11)。
【0058】
汎用デバッガーインターフェース204は、接続を検知すると(ステップS11がYes)、専用線105aを介して、位置情報照合部205に、接続信号を送信し、位置情報照合部205が、接続信号を受信する(ステップS12)。
【0059】
位置情報照合部205は、専用線103aを介して、位置情報取得部103から、情報処理装置200の現在位置情報を取得する(ステップS13)。
【0060】
位置情報照合部205は、専用線106aを介して、許可情報保持部106から、許可情報を取得する(ステップS14)。
【0061】
位置情報照合部205は、取得した現在位置情報と許可情報を照合し、現在位置で、汎用デバッガーの使用を許可するか否かを判断する(ステップS15)。
【0062】
照合した結果、許可する場合(ステップS15が許可する)、位置情報照合部105は、専用線105bを介して、CPU201に実行許可信号を送信する。CPU201は、実行許可信号を受信し、状態をデバッグ許可状態に更新する(ステップS16)。例えば、CPU201は、実行停止信号の割り込みマスクを解除する。
【0063】
照合した結果、許可しない場合(ステップS15が許可しない)、位置情報照合部205は、専用線105bを介して、CPU201に実行不許可信号を送信する。CPU201は、実行不許可信号を受信し、状態をデバッグ不許可状態に更新する(ステップS20)。例えば、CPU201は、実行停止信号の割り込みマスクを設定する。
【0064】
汎用デバッガーインターフェース204は、汎用デバッガー110が情報処理装置200に接続するのを検知する(ステップS11)。
【0065】
汎用デバッガーインターフェース204は、切断を検知すると(ステップS17がYes)、専用線105aを介して、位置情報照合部205に、切断信号を送信し、位置情報照合部205は、切断信号を受信する(ステップS21)。位置情報照合部205は、専用線105bを介して、CPU201に実行不許可信号を送信する。CPU201は、実行不許可信号を受信し、状態をデバッグ不許可状態に更新する(ステップS20)。
【0066】
汎用デバッガーインターフェース204は、接続を継続し(ステップS17がNo)、汎用デバッガー110から実行停止信号を受信するのを待つ(ステップS18がNo)。
【0067】
実行停止信号を受信すると(ステップS18がYes)、汎用デバッガーインターフェース204は、位置情報照合部205とCPU201へ、実行停止信号を送信する。位置情報照合部205は、実行停止信号を受信し、ステップS13に遷移して、現在位置の照合を行う(ステップS19)。
【0068】
かかる構成によれば、汎用デバッガーの使用が許可された正規の場所のみ、CPUがデバッガーからの信号を受け付けることで、汎用デバッガーによるソフトウェア開発動作を実施することが可能となる。これにより、許可されていない場所では、CPUがデバッガーからの信号に従った動作を行なわないことから、製品上の組込みソフトウェアに対するセキュリティを保つことができる。また、正規の場所で情報処理装置とシステムLSI専用デバッガーの接続および電源投入した後に、情報処理装置を他の場所に移動した場合でも、第三者のリバースエンジニアリング等を防止することができる。
【0069】
また、特定のシステムLSI専用のデバッガーを開発する必要がなく、標準的な汎用デバッガーをそのまま用いることが可能となり、システム開発コストを削減することができる。
【産業上の利用可能性】
【0070】
本発明にかかるデバッグ許可装置は、汎用デバッガーの使用が許可された正規の場所のみ汎用デバッガーによるソフトウェア開発動作を許可する機能を有し、システムLSIなどの組込み半導体装置などとして有用である。
【符号の説明】
【0071】
100,200 情報処理装置
101,201 CPU
102 メモリ
103 位置情報取得部
104 汎用デバッガーインターフェース
105,205 位置情報照合部
106 許可情報保持部
107 内部バス
110 汎用デバッガー
111 ROM
112 RAM

【特許請求の範囲】
【請求項1】
CPU、メモリおよび汎用デバッガーインターフェースを備えた情報処理装置において、
前記前記情報処理装置の現在位置情報を取得する位置情報取得手段と、
汎用デバッガーの使用を許可する位置を示す許可情報を1つ以上保持する許可情報保持手段と、
前記汎用デバッガーインターフェースと専用線で接続されており、前記汎用デバッガーインターフェースから通知を受けた際に、前記位置情報取得手段が取得した現在位置情報と前記許可情報保持手段が保持する許可情報を受け取り、前記現在位置情報と前記許可情報とを照合し、汎用デバッガーの使用を許可するか否かを判定する位置情報照合手段を備え、
前記汎用デバッガーインターフェースは、前記位置情報照合手段による照合結果に基づいて、外部からの入出力を有効化または無効化することを特徴とするデバッグ許可装置。
【請求項2】
前記汎用デバッガーインターフェースは、汎用デバッガーの接続を検知した際に、専用線を介して、前記位置情報照合手段に、接続信号を送信し、
前記位置情報照合手段は、前記接続信号を受信した際に、前記現在位置情報と前記許可情報とを照合を行うことを特徴とする請求項1に記載のデバッグ許可装置。
【請求項3】
前記汎用デバッガーインターフェースは、汎用デバッガーからの実行停止の要求を検知した際に、専用線を介して、前記位置情報照合手段に、実行停止信号を送信し、
前記位置情報照合手段は、前記汎CPUと専用線で接続されており、前記実行停止信号を受信した際に、前記現在位置情報と前記許可情報とを照合を行い、
前記CPUは、前記位置情報照合手段による照合結果に基づいて、前記実行停止信号を導通または遮断とすることを特徴とする請求項2に記載のデバッグ許可装置。
【請求項4】
前記実行停止信号は、割込みであり、割り込みマスクの設定を変更することで導通または遮断することを特徴とする請求項3記載のデバッグ許可装置。
【請求項5】
前記実行停止信号は、レジスタへの書き込みであり、レジスタの設定を変更することで導通または遮断することを特徴とする請求項2記載のデバッグ許可装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate