JP2008071250A - Access control device - Google Patents

Access control device Download PDF

Info

Publication number
JP2008071250A
JP2008071250A JP2006250952A JP2006250952A JP2008071250A JP 2008071250 A JP2008071250 A JP 2008071250A JP 2006250952 A JP2006250952 A JP 2006250952A JP 2006250952 A JP2006250952 A JP 2006250952A JP 2008071250 A JP2008071250 A JP 2008071250A
Authority
JP
Japan
Prior art keywords
emulator
data
memory
address
central processing
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.)
Granted
Application number
JP2006250952A
Other languages
Japanese (ja)
Other versions
JP4847827B2 (en
Inventor
Yosuke Fukuda
洋介 福田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006250952A priority Critical patent/JP4847827B2/en
Publication of JP2008071250A publication Critical patent/JP2008071250A/en
Application granted granted Critical
Publication of JP4847827B2 publication Critical patent/JP4847827B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To protect a program logic of a user who has developed a program library, from illegal use by giving variability in password authentication in debugging when carrying out debugging using an ICE (in-circuit emulator). <P>SOLUTION: An information processor having an emulator and decoding an encrypted program code into a memory, has a table register extracting and storing control data from the program code after decoding the program code, and a control circuit for controlling permission or prohibition of data transfer from the emulator to a central processing unit. The control circuit compares an address for accessing the memory by the emulator through the central processing unit, with data of address space on the memory of the program code determined by data stored in the table register, and prohibits data transfer from the emulator to the central processing unit when in agreement. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、エミュレータ回路を備えるプロセッサにおいて、エミュレータ回路に接続されたデバッカによるデバッグ時に内蔵ROMに格納されたデータを不正アクセスから保護する情報処理装置に関する。   The present invention relates to an information processing apparatus for protecting data stored in a built-in ROM from unauthorized access during debugging by a debugger connected to the emulator circuit in a processor including an emulator circuit.

近年、画像プロセッサの高速化が進み、専用ハードウェアを用いて処理されてきた複雑な画像処理等がソフトウェアで処理を行っても十分なパフォーマンスが得られるようになってきた。それのみならず、ソフトウェアによる画像処理技術が進み、専用ハードウェアではできなかった柔軟な処理や処理内容の変更を少ないコストで容易に行なうことができるようにもなった。   In recent years, image processors have been speeded up, and sufficient performance has been obtained even when complicated image processing or the like processed using dedicated hardware is processed by software. Not only that, image processing technology by software has advanced, and it has become possible to easily perform flexible processing and change of processing contents that cannot be done with dedicated hardware at low cost.

それと同時に、プロセッサのソフトウェア開発段階において、開発するソフトウェアの動作をデバッグできる装置の必要性は高くなっている。ソフトウェア開発の初期段階にプログラムを組むことでプロセッサの特徴を把握でき、プロセッサの特徴を生かしたプログラムコードを作成することができるからである。   At the same time, there is an increasing need for a device capable of debugging the operation of software to be developed in the software development stage of the processor. This is because the characteristics of the processor can be grasped by creating a program at the initial stage of software development, and a program code that makes use of the characteristics of the processor can be created.

デバッグするための装置として、一般のマイコンと同様にICE(In circuit Emulator)を用いたものが幅広く使われている。ICE本体は、パーソナルコンピュータ(以下、PCと称する。)との接続に使用されるICEインターフェースやプロセッサとの接続に使用されるエミュレーションインターフェースを有している(図6参照)。   As an apparatus for debugging, devices using ICE (In Circuit Emulator) are widely used as in the case of general microcomputers. The ICE main body has an ICE interface used for connection to a personal computer (hereinafter referred to as a PC) and an emulation interface used for connection to a processor (see FIG. 6).

ICE本体は、PC(ICE用デバッガ)14からの命令によって、プロセッサ(CPU)2に対するプログラムの実行、ターゲットボードに搭載されたメモリの内容のダンプ、プログラムを一命令ずつ実行させるステップ実行、プログラムを所定の番地で停止させるブレーク、プログラム実行軌跡を見るプログラムトレースなどの、エミュレータ機能を使用できるようになっている。このことにより、ICE8に接続されたプロセッサ2についての内部メモリの参照やプログラムの実行軌跡の解析が可能となり、プログラムの開発、デバッグ、及び故障解析が可能となる。   The ICE main unit executes a program for the processor (CPU) 2 according to an instruction from the PC (ICE debugger) 14, dumps the contents of the memory mounted on the target board, performs step execution to execute the program one instruction at a time, Emulator functions such as a break to stop at a predetermined address and a program trace to see the program execution trajectory can be used. As a result, it becomes possible to refer to the internal memory and analyze the execution trajectory of the program for the processor 2 connected to the ICE 8, and to develop, debug, and analyze the failure of the program.

ところで、そのようなICEの機能を使用することによって、プロセッサの内部ROMに記憶された情報がプロセッサの外部に容易に読み出されることが可能となっている場合がある。つまり、このことにより、特定ユーザ以外の不特定ユーザであっても、プロセッサ内部に格納された秘匿性の高いプログラムの参照や解析を行なうことが可能となってしまい、保護すべきプログラムロジックの漏洩や情報の改ざん等が生じるという問題が起きてしまう。   By using such an ICE function, information stored in the internal ROM of the processor may be easily read out of the processor. In other words, this makes it possible for unspecified users other than specific users to refer to and analyze highly confidential programs stored inside the processor, and to leak program logic to be protected. And the falsification of information occurs.

上記問題を解決する技術として、特許文献1に開示された発明がある。特許文献1に開示される情報処理装置は、ROM(Read Only Memory)に記憶された情報を外部に設けられたデバッグツールによる不正アクセスから保護するものであり、予め登録されたコードと外部から与えられたパスワードを照合し、両者が一致した場合にのみICEによるデバッグ機能を有効にするものである。しかし、この情報処理装置においても、デバッカのパスワードを一度解読してしまえば、ICEからプロセッサ内部の情報を全て読み取って外部に出力でき、結局セキュリティが脆弱になるという問題が生じ得る。   As a technique for solving the above problem, there is an invention disclosed in Patent Document 1. The information processing apparatus disclosed in Patent Document 1 protects information stored in a ROM (Read Only Memory) from unauthorized access by a debugging tool provided outside, and is provided with a pre-registered code and the outside. The debug function by ICE is validated only when the passwords are verified and they match. However, even in this information processing apparatus, once the password of the debugger is decrypted, all the information inside the processor can be read from the ICE and output to the outside, resulting in a problem that security is eventually weakened.

また、別の問題として、プログラム中に存在するプログラムライブラリの処理内容を不特定ユーザに知られてしまうため、プログラムロジックが不正に盗用されてしまうというものがある。ここで、プログラムライブラリとは、独自性のある高速な画像処理を行なうことができる等の処理を行なうプログラムコードが暗号化されたものである。不特定ユーザは、図7に示すように、プログラムライブラリをC言語の関数のように自分が作成したプログラム内で呼び出して使用することができる。   Another problem is that the processing contents of the program library existing in the program are known to unspecified users, and thus the program logic is illegally stolen. Here, the program library is an encrypted program code for performing processing such as unique high-speed image processing. As shown in FIG. 7, an unspecified user can call and use a program library in a program created by the user like a C language function.

プログラムライブラリを提供する開発者は、通常、不特定ユーザにそれらを利用することは許容している。しかし、開発者は、内部の詳細なアルゴリズムが知られることでプログラムロジックを不正盗用されたくないため、プログラムコード自体を暗号化する。   Developers who provide program libraries usually allow unspecified users to use them. However, since the developer does not want to illegally steal the program logic because the internal detailed algorithm is known, the developer encrypts the program code itself.

しかしながら、プログラムライブラリがプロセッサ内部のメインメモリにダウンロードされると、プロセッサ内の復号回路(図1参照)によって非暗号化されたプログラムに展開される。そのため、(不特定)ユーザに一度でもデバッカを使用する権限を与えてしまうと、そのユーザはデバッカを使用してメインメモリ中の非暗号化されたプログラムライブラリの処理内容を外部に取り出すことができる。このため、開発者のプログラムロジック(コード)を保護しきれないことになる。   However, when the program library is downloaded to the main memory inside the processor, it is expanded into a non-encrypted program by a decryption circuit (see FIG. 1) in the processor. For this reason, if the user is given the authority to use the debugger even once, the user can use the debugger to take out the processing contents of the unencrypted program library in the main memory. . For this reason, the developer's program logic (code) cannot be fully protected.

更に、2人以上の開発者が開発したプログラムライブラリが展開されメモリ中に格納されている場合、開発者のプログラムライブラリ毎にそれらに対するアクセス権限を管理しなければならない、という問題がある。   Furthermore, when a program library developed by two or more developers is expanded and stored in a memory, there is a problem that access authority for each developer library must be managed.

複数プログラムライブラリが利用されプログラムが作成された場合、プロセッサが持つ記憶領域に格納されるプログラムコードは、例えば、図8のように管理される。まず、記憶領域のアドレス0には、開発者Aが作成したプログラムライブラリが非暗号化されて格納され、次に、アドレス1には、一般ユーザが作成したプログラムライブラリ(処理B)、アドレス2にも、一般ユーザが作成したプログラムライブラリ(処理C)、最後のアドレス3には、開発者Bが作成したプログラムライブラリが非暗号されて格納されている。   When a program is created using a plurality of program libraries, the program code stored in the storage area of the processor is managed as shown in FIG. 8, for example. First, the program library created by developer A is stored unencrypted at address 0 of the storage area, and then the program library (processing B) created by a general user is stored at address 1 and address 2 is stored at address 2. In addition, the program library created by the general user (Processing C), and the program library created by the developer B is stored unencrypted at the last address 3.

ここで、一般ユーザがICEを使用する場合、ICEからアクセスを行なってもよい記憶領域は、アドレス0又はアドレス3以外である。しかし、開発者BがICEを使用する場合には、一般ユーザがアクセスを行なってもよい記憶領域に加えて、アドレス3もアクセスを行なえるようにする必要がある。   Here, when a general user uses ICE, a storage area that may be accessed from ICE is other than address 0 or address 3. However, when the developer B uses ICE, it is necessary to make the address 3 accessible in addition to the storage area that the general user may access.

なお、特許文献2に記載の情報セキュリティマイクロコンピュータでは、ICEが情報処理装置の内部データを読み取るアクセスの際に、アクセスを認証プログラムで許可するかどうかを判断する。認証できないアクセスが行なわれた際は情報処理装置の機能を停止する。また、特許文献3に記載のプロセッサでは、メモリ回路のすべてアドレス番地に1ビットセキュリティビットをもたせている。メモリ回路のあるアドレス番地のセキュリティビットをONすれば、そのアドレス番地のデータは中央演算処理装置からアクセス不可能となり、メモリ回路のセキュリティビットをOFFすれば、そのアドレス番地のデータは中央演算処理装置からアクセス可能となる。また、特許文献4では、中央演算処理装置からメモリへのアクセスとデバッカから中央演算処理装置へのアクセスをマスクする回路をコントロールする信号について開示されている。更に、特許文献5は、電子装置にデバッグ機能の利用を許可するかどうかを判定する認証機能を設ける技術を開示する。認証機能で使用される認証コードは外部記憶装置から受信されたユーザコードである。
特開2000−347942公報 特開2004−213216公報 特開2005−25122公報 特開2005−309758公報 特開2003−177938公報
In the information security microcomputer described in Patent Document 2, when the ICE accesses to read the internal data of the information processing apparatus, it is determined whether or not the access is permitted by the authentication program. When access that cannot be authenticated is performed, the function of the information processing apparatus is stopped. Further, the processor described in Patent Document 3 has a 1-bit security bit at all address addresses of the memory circuit. If the security bit at an address address of the memory circuit is turned ON, the data at the address address becomes inaccessible from the central processing unit. If the security bit of the memory circuit is turned OFF, the data at the address address becomes central processing unit. It becomes accessible from. Patent Document 4 discloses a signal for controlling a circuit for masking access from the central processing unit to the memory and access from the debugger to the central processing unit. Furthermore, Patent Document 5 discloses a technique for providing an authentication function for determining whether or not to permit use of a debug function to an electronic device. The authentication code used in the authentication function is a user code received from the external storage device.
JP 2000-347942 A JP 2004-213216 A JP 2005-25122 A JP 2005-309758 A JP 2003-177938 A

本発明は、ICEを使ってデバッグを行なう際に、デバッグ時のパスワード認証において可変性をもたせることで、プログラムライブラリを開発したユーザのプログラムロジックを不正盗用から保護するような機構を備えることを目的とする。   An object of the present invention is to provide a mechanism for protecting the program logic of a user who has developed a program library from illegal theft by providing variability in password authentication during debugging when debugging using ICE. And

本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項1に記載の情報処理装置は、
プログラムのエミュレーションを行うエミュレータを有し、暗号化されたプログラムコードをメモリに復号化してダウンロードする情報処理装置である。そのような情報処理装置において、
プログラムコードの復号化後にプログラムコードから制御データを抜き取り記憶するテーブルレジスタと、
エミュレータから中央演算処理装置へのデータ転送の許可又は禁止を制御する制御回路を有し、
上記制御回路は、エミュレータが中央演算処理装置を介してメモリへアクセスするアドレスと、上記テーブルレジスタに格納されるデータによって決定されるアドレス空間との比較を行い、両者が一致すればエミュレータから中央演算処理装置へのデータ転送を禁止するように制御することを特徴とする。
The present invention has been made to achieve the above object. The information processing apparatus according to claim 1 according to the present invention includes:
An information processing apparatus that includes an emulator that emulates a program and decrypts and downloads an encrypted program code to a memory. In such an information processing apparatus,
A table register for extracting and storing control data from the program code after decoding the program code;
A control circuit that controls permission or prohibition of data transfer from the emulator to the central processing unit;
The control circuit compares the address at which the emulator accesses the memory via the central processing unit and the address space determined by the data stored in the table register. Control is performed to prohibit data transfer to the processing device.

本発明に係る請求項2に記載の情報処理装置は、
上記テーブルレジスタが、複数のブロックレジスタを持ち、ブロックレジスタごとにメモリを複数のブロック領域に分けており、
上記制御回路は、ブロック領域ごとに、エミュレータから中央演算処理装置へのデータ転送の許可又は禁止を制御することを特徴とする請求項1に記載の情報処理装置である。
An information processing apparatus according to claim 2 according to the present invention includes:
The table register has a plurality of block registers, and the memory is divided into a plurality of block areas for each block register,
2. The information processing apparatus according to claim 1, wherein the control circuit controls permission or prohibition of data transfer from the emulator to the central processing unit for each block area.

本発明に係る請求項3に記載の情報処理装置は、
上記ブロックレジスタが認証キーのデータを格納しており、
上記制御回路は、エミュレータからの信号に含まれる認証データと、上記認証キーのデータとを比較し、両者が一致すればエミュレータから中央演算処理装置へのデータ転送を許可するように制御することを特徴とする請求項2に記載の情報処理装置である。
An information processing apparatus according to a third aspect of the present invention includes:
The block register stores authentication key data,
The control circuit compares the authentication data included in the signal from the emulator with the data of the authentication key, and controls to permit data transfer from the emulator to the central processing unit if they match. The information processing apparatus according to claim 2.

本発明に係る請求項4に記載の情報処理装置は、
中央演算処理装置での実行履歴を記憶するトレースメモリを更に有し、
上記制御回路は、エミュレータがトレースメモリへアクセスするアドレスと、上記ブロックレジスタから決定されるアドレス空間との比較を行い、両者が一致すれば、エミュレータからトレースメモリに対しての出力信号とトレースメモリからエミュレータへの入力信号を無効とするように制御することを特徴とする請求項2に記載の情報処理装置である。
An information processing apparatus according to a fourth aspect of the present invention includes:
A trace memory for storing an execution history in the central processing unit;
The control circuit compares the address at which the emulator accesses the trace memory and the address space determined from the block register. If the two match, the output signal from the emulator to the trace memory and the trace memory 3. The information processing apparatus according to claim 2, wherein control is performed so that an input signal to the emulator is invalidated.

本発明を利用することにより、エミュレータが、テーブルレジスタ内に格納されたデータから決定されるアドレス空間を持つメモリ領域にアクセスすることを禁止できる。また、前記テーブルレジスタに格納されているデータにより決定されるアドレス空間は、ユーザが開発したプログラムコード内の一部で決定されるため、エミュレータからのメモリアクセスが禁止されるメモリアドレス空間が、プログラムコード内で決定され得る。このことにより、不特定ユーザがエミュレータを使ってメモリにアクセスし、メモリにダウンロードされたプログラムコードを外部に取り出すことを禁止することができるため、プログラム開発者は自身が作成したプログラムコードの詳細を不特定ユーザに知られることはない。   By utilizing the present invention, the emulator can be prohibited from accessing a memory area having an address space determined from data stored in the table register. Further, since the address space determined by the data stored in the table register is determined by a part of the program code developed by the user, the memory address space where memory access from the emulator is prohibited is the program. It can be determined in the code. As a result, it is possible to prohibit unspecified users from accessing the memory using the emulator and taking out the program code downloaded to the memory. It is not known to unspecified users.

また、本発明を利用することにより、テーブルレジスタが1個以上のブロックレジスタを備え、夫々がアドレス空間を設定できることができる。これにより、複数のアドレス空間をエミュレータがアクセスすることを禁止することができる。   Further, by utilizing the present invention, the table register includes one or more block registers, and each can set an address space. As a result, the emulator can be prohibited from accessing a plurality of address spaces.

また、本発明を利用することにより、テーブルレジスタ内の複数のブロックレジスタ各々が認証キーを保持することができ、これによりエミュレータからの制御が管理されている領域に対して、それぞれユニークな認証が必要となる。つまり、複数の開発者が開発したプログラムデータがメモリ中に格納されている場合(図8参照)において、夫々の開発者のプログラムデータをアクセスするにはユニークな認証キーを外部から入力する必要があるため、開発者単位でプログラムロジックの不正な盗用を防ぐことができる。   In addition, by using the present invention, each of a plurality of block registers in the table register can hold an authentication key, thereby enabling unique authentication for each area in which control from the emulator is managed. Necessary. That is, when program data developed by a plurality of developers is stored in the memory (see FIG. 8), it is necessary to input a unique authentication key from the outside in order to access the program data of each developer. Therefore, it is possible to prevent unauthorized theft of program logic on a developer basis.

更に、情報処理装置内のトレースメモリには中央演算処理装置が実行したプログラムコードの履歴が格納されており、不特定ユーザによってトレースメモリを解析されることで、メインメモリに格納されたプログラムロジック(コード)が不正に盗用されるおそれがあるが、本発明を利用することにより、エミュレータからトレースメモリ内のデータを取り出すことに制限を掛けることができる。   Furthermore, the history of the program code executed by the central processing unit is stored in the trace memory in the information processing apparatus. By analyzing the trace memory by an unspecified user, the program logic stored in the main memory ( However, by using the present invention, it is possible to limit the extraction of data in the trace memory from the emulator.

以下、図面を参照して、本発明に係る好適な実施形態を説明する。   Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.

《第1の実施形態》
図1は、本発明の第1の実施形態に係る情報処理装置1のブロック図である。情報処理装置1は、中央演算処理装置2、中央演算処理装置2への命令コード(プログラムコード)が格納される内部記憶装置4、外部ICE用デバッカ14と接続され中央演算処理装置2のエミュレーション機能を提供するエミュレータ8、エミュレータ8から中央演算処理装置2とトレースメモリ18へのアクセスを制御する制御回路6、テーブルレジスタ10、及び、外部記憶装置から送られてくる暗号化プログラムを復号化する復号回路12から構成される。
<< First Embodiment >>
FIG. 1 is a block diagram of an information processing apparatus 1 according to the first embodiment of the present invention. The information processing apparatus 1 is connected to a central processing unit 2, an internal storage device 4 in which instruction codes (program codes) for the central processing unit 2 are stored, and an external ICE debugger 14. The emulator 8 for providing the control, the control circuit 6 for controlling the access from the emulator 8 to the central processing unit 2 and the trace memory 18, the table register 10, and the decryption for decrypting the encryption program sent from the external storage device The circuit 12 is configured.

図1に示す中央演算処理装置2は、内部記憶装置4から転送されてくるデータをインストラクションデコーダに通して作成された制御コードにより複数の論理計算回路の制御を行う。   The central processing unit 2 shown in FIG. 1 controls a plurality of logical calculation circuits by a control code created by passing data transferred from the internal storage device 4 through an instruction decoder.

次に、図1に示す内部記憶装置2は、複数のアドレスにより管理される構造を持つメモリ回路である。内部記憶装置2には、外部記憶装置(ハードディスク、リームバルディスクなど)から取り込まれたプログラムコード16が格納される。   Next, the internal storage device 2 shown in FIG. 1 is a memory circuit having a structure managed by a plurality of addresses. The internal storage device 2 stores program code 16 fetched from an external storage device (hard disk, reambal disk, etc.).

また、図1に示すエミュレータ8は、マイコンなどで使用されるものであり、ICE(In Circuit Emulator)と称されるものである。ICEは、通常、中央演算処理装置と内部記憶装置の状態を把握して外部に出力できる機能を持ち、中央演算処理装置に対し制御命令を発行し任意の処理を実行させることができる。   The emulator 8 shown in FIG. 1 is used in a microcomputer or the like and is called an ICE (In Circuit Emulator). The ICE usually has a function of grasping the states of the central processing unit and the internal storage device and outputting them to the outside, and can issue a control command to the central processing unit and execute arbitrary processing.

また、図1に示すトレースメモリ18は、中央演算処理装置2が実行した命令コードを時系列に格納する。図1に示す復号回路12は、暗号化されたデータを復号化する論理回路を含み、外部から暗号化されたプログラムコード16を入力として受け取って復号化されたプログラムコードを出力する機能を持つ。   The trace memory 18 shown in FIG. 1 stores the instruction codes executed by the central processing unit 2 in time series. The decryption circuit 12 shown in FIG. 1 includes a logic circuit for decrypting encrypted data, and has a function of receiving the encrypted program code 16 as an input and outputting the decrypted program code.

図1に示すテーブルレジスタ10は、図3に示すように1つ以上のブロックレジスタから構成されている。ブロックレジスタは、開始アドレス、終了アドレス、制御ビット、認証キーを表すデータを保持するレジスタである。テーブルレジスタ10は、上記の復号回路12が出力するプログラムコードから、開始アドレス、終了アドレス、及び認証キーを取り出し、自身の内部のブロックレジスタに格納する。   The table register 10 shown in FIG. 1 is composed of one or more block registers as shown in FIG. The block register is a register that holds data representing a start address, an end address, a control bit, and an authentication key. The table register 10 extracts the start address, the end address, and the authentication key from the program code output from the decryption circuit 12, and stores them in its own block register.

図1に示す制御回路6は、図4に示すようにブロックレジスタのデータとエミュレータ4の出力信号からアドレスを表す部分とを取り出し(後述のように)比較する回路を備える。比較する回路は、比較により一致すればマスク信号を出力し、一致しなければマスク信号を出力しないように構成されている。   As shown in FIG. 4, the control circuit 6 shown in FIG. 1 includes a circuit that takes out the data representing the block register and the part representing the address from the output signal of the emulator 4 (as will be described later) and compares them. The circuit to be compared is configured to output a mask signal if they match by comparison and not to output a mask signal if they do not match.

更に、制御回路6は、図5に示すような、マスク信号を有効又は無効にする認証回路を備える。認証回路は、エミュレータ8からの認証を表すデータ24とブロックレジスタ内の認証キーを比較する回路を備え、比較により両者が一致すればマスク信号を無効とし、一致しなければマスク信号を有効のままとしてマスク回路22に対して出力する。   Further, the control circuit 6 includes an authentication circuit for validating or invalidating the mask signal as shown in FIG. The authentication circuit includes a circuit for comparing the data 24 representing authentication from the emulator 8 with the authentication key in the block register, and if the two match by the comparison, the mask signal is invalidated, otherwise the mask signal remains valid. Is output to the mask circuit 22 as follows.

図5に示すマスク回路22は、認証回路が出力するマスク信号を受け取り、受け取ったマスク信号がON(有効)であればエミュレータ8から中央演算装置2とトレースメモリ18に対するアクセス信号を無効にし、マスク信号がOFF(無効)であれば同信号を有効にする。   The mask circuit 22 shown in FIG. 5 receives the mask signal output from the authentication circuit. If the received mask signal is ON (valid), the mask circuit 22 invalidates the access signal from the emulator 8 to the central processing unit 2 and the trace memory 18, and masks the mask signal. If the signal is OFF (invalid), the signal is validated.

次に、具体的なデータの流れについて説明する。   Next, a specific data flow will be described.

図1に示す外部記憶装置から送られてきた暗号化プログラムコード16は、図1の復号回路12により復号化され内部記憶装置4に格納される。この時に、復号回路12により復号化されたプログラムコードは図2に示すプロトコルに従ったデータ構造を持っており、テーブルレジスタにはプロトコル内の開始アドレス、終了アドレス、及び認証キーを示すデータが格納される。プログラムコード内のプログラムデータは、内部記憶装置4の前述の開始アドレスの番地から、前述の終了アドレスの番地までに格納される。   The encrypted program code 16 sent from the external storage device shown in FIG. 1 is decrypted by the decryption circuit 12 of FIG. 1 and stored in the internal storage device 4. At this time, the program code decrypted by the decryption circuit 12 has a data structure in accordance with the protocol shown in FIG. 2, and the table register stores data indicating the start address, end address, and authentication key in the protocol. Is done. Program data in the program code is stored from the address of the aforementioned start address of the internal storage device 4 to the address of the aforementioned end address.

前述のテーブルレジスタ10に格納されるデータは、図3に示すテーブルレジスタ10内のブロックレジスタの1番から(N番までに)抜き取られた順に格納される。ブロックレジスタの1番〜N番に格納された開始アドレス、終了アドレスは、図1に示す制御回路6によって参照される。   The data stored in the table register 10 is stored in the order in which the block registers in the table register 10 shown in FIG. The start address and end address stored in the block registers Nos. 1 to N are referred to by the control circuit 6 shown in FIG.

図1に示す制御回路6は、図4で示すようにブロックレジスタの開始アドレスと終了アドレスを参照してアドレス空間を表すデータを作成し、エミュレータからのアクセス信号のアドレス部分を取り出し、そのアドレス部分と上記アドレス空間を比較する。制御回路6は、もし、一致すればマスク信号を作成し、一致しなければマスク信号は作成しない。   The control circuit 6 shown in FIG. 1 creates data representing an address space with reference to the start address and end address of the block register as shown in FIG. 4, takes out the address portion of the access signal from the emulator, and takes the address portion. And the above address space. The control circuit 6 creates a mask signal if they match, and does not create a mask signal if they do not match.

更に、図1に示す制御回路6は、上記のようにマスク信号がONした場合(即ち、マスク信号が作成された場合)、図5に示すようにブロックレジスタの認証キーを参照し、エミュレータ8からのアクセス信号内に含まれる認証データ部分を取り出し、認証キーと認証データ部分とを比較する。もし、一致すれば上記のマスク信号を無効にし、一致しなければマスク信号を有効のままにする。有効のままとされたマスク信号は、エミュレータ8から中央演算処理2に対しての出力信号を無効とする。逆にマスク信号が無効であれば、エミュレータ8から中央演算処理2に対しての出力信号はそのまま有効とされる。   Further, when the mask signal is turned on as described above (that is, when the mask signal is generated), the control circuit 6 shown in FIG. 1 refers to the authentication key of the block register as shown in FIG. The authentication data part included in the access signal from is taken out, and the authentication key and the authentication data part are compared. If they match, the mask signal is invalidated. If they do not match, the mask signal remains valid. The mask signal that remains valid invalidates the output signal from the emulator 8 to the central processing 2. On the contrary, if the mask signal is invalid, the output signal from the emulator 8 to the central processing 2 is validated as it is.

制御回路6は、エミュレータ8がトレースメモリ18に対してアクセスする際も、エミュレータ8からのアクセス信号のアドレス部分を取り出し、そのアドレス部分と、図4で示すようにブロックレジスタの開始アドレスと終了アドレスを参照して作成されるアドレス空間データとを比較する。もし、一致すればマスク信号が作成され、一致しなければマスク信号が作成されない。マスク信号がONした場合(マスク信号が作成された場合)、図5に示すようにブロックレジスタの認証キーを参照し、エミュレータ8からのアクセス信号内に含まれる認証データ部分を取り出し、認証キーと認証データ部分とを比較する。もし、一致すれば上記のマスク信号を無効にし、一致しなければマスク信号を有効のままにする。有効のままとされたマスク信号は、エミュレータ8からトレースメモリ18に対しての出力信号とトレースメモリ18からエミュレータ8への入力信号を無効とする。逆にマスク信号が無効であれば、エミュレータ8から中央演算処理2に対しての出力信号はそのまま有効とされる。   When the emulator 8 accesses the trace memory 18, the control circuit 6 takes out the address portion of the access signal from the emulator 8, and the address portion and the start address and end address of the block register as shown in FIG. 4. Is compared with the address space data created by referring to. If they match, a mask signal is created, and if they do not match, a mask signal is not created. When the mask signal is turned on (when the mask signal is generated), the authentication data portion included in the access signal from the emulator 8 is extracted by referring to the authentication key of the block register as shown in FIG. Compare the authentication data part. If they match, the mask signal is invalidated. If they do not match, the mask signal remains valid. The mask signal that remains valid invalidates the output signal from the emulator 8 to the trace memory 18 and the input signal from the trace memory 18 to the emulator 8. On the contrary, if the mask signal is invalid, the output signal from the emulator 8 to the central processing 2 is validated as it is.

《その他の実施形態》
本発明の第1の実施形態に係る情報処理装置1においては、プログラムコードは外部記憶装置内に格納されている。このプログラムコードは図9に示すように(ROM等の)内部記憶装置4に格納され、予め開始アドレス、終了アドレス、及び認証キーが取り出されてテーブルレジスタ10内のブロックレジスタに格納されてもよい。
<< Other Embodiments >>
In the information processing apparatus 1 according to the first embodiment of the present invention, the program code is stored in the external storage device. As shown in FIG. 9, this program code is stored in an internal storage device 4 (such as a ROM), and a start address, an end address, and an authentication key may be extracted in advance and stored in a block register in the table register 10. .

また、図1に示す情報処理装置1が、エミュレータ8からアクセス可能な内部記憶装置4以外の記憶装置を備える場合においても、エミュレータ8からのアクセス権限を制御することができる。   Further, even when the information processing apparatus 1 shown in FIG. 1 includes a storage device other than the internal storage device 4 accessible from the emulator 8, the access authority from the emulator 8 can be controlled.

本発明の第1の実施形態に係る情報処理装置のブロック図である。1 is a block diagram of an information processing apparatus according to a first embodiment of the present invention. 復号回路により復号化されたプログラムコードが有するデータ構造のプロトコルを示す概念図であるIt is a conceptual diagram which shows the protocol of the data structure which the program code decoded by the decoding circuit has テーブルレジスタとブロックレジスタの関係を示す概念図である。It is a conceptual diagram which shows the relationship between a table register and a block register. 制御回路の機能の一部を示すブロック図である。It is a block diagram which shows a part of function of a control circuit. 制御回路の機能の一部を示すブロック図である。It is a block diagram which shows a part of function of a control circuit. ICE用デバッガと第1の実施形態に係る情報処理装置との関係を示すブロック図である。It is a block diagram which shows the relationship between the debugger for ICE and the information processing apparatus which concerns on 1st Embodiment. プログラムライブラリの機能の一部を示す図である。It is a figure which shows a part of function of a program library. 複数プログラムライブラリが利用されプログラムが作成された場合、メモリ上でのプログラムコードの管理の仕組みを示すテーブルである。7 is a table showing a mechanism for managing program codes on a memory when a program is created using a plurality of program libraries. 本発明の別の実施形態に係る情報処理装置のブロック図である。It is a block diagram of the information processor concerning another embodiment of the present invention.

符号の説明Explanation of symbols

1・・・情報処理装置、2・・・中央演算処理装置、4・・・内部記憶装置、6・・・制御回路、8・・・エミュレータ(ICE)、10・・・テーブルレジスタ、12・・・複合回路、14・・・ICE用デバッガ。 DESCRIPTION OF SYMBOLS 1 ... Information processing apparatus, 2 ... Central processing unit, 4 ... Internal storage device, 6 ... Control circuit, 8 ... Emulator (ICE), 10 ... Table register, 12. ..Composite circuit, 14 ... ICE debugger.

Claims (4)

プログラムのエミュレーションを行うエミュレータを有し、暗号化されたプログラムコードをメモリに復号化してダウンロードする情報処理装置において、
プログラムコードの復号化後にプログラムコードから制御データを抜き取り記憶するテーブルレジスタと、
エミュレータから中央演算処理装置へのデータ転送の許可又は禁止を制御する制御回路を有し、
上記制御回路は、エミュレータが中央演算処理装置を介してメモリへアクセスするアドレスと、上記テーブルレジスタに格納されるデータによって決定されるアドレス空間との比較を行い、両者が一致すればエミュレータから中央演算処理装置へのデータ転送を禁止するように制御することを特徴とする情報処理装置。
In an information processing apparatus that has an emulator that emulates a program and decrypts and downloads the encrypted program code to a memory,
A table register for extracting and storing control data from the program code after decoding the program code;
A control circuit that controls permission or prohibition of data transfer from the emulator to the central processing unit;
The control circuit compares the address at which the emulator accesses the memory via the central processing unit and the address space determined by the data stored in the table register. An information processing apparatus that performs control so as to prohibit data transfer to a processing apparatus.
上記テーブルレジスタが、複数のブロックレジスタを持ち、ブロックレジスタごとにメモリを複数のブロック領域に分けており、
上記制御回路は、ブロック領域ごとに、エミュレータから中央演算処理装置へのデータ転送の許可又は禁止を制御することを特徴とする請求項1に記載の情報処理装置。
The table register has a plurality of block registers, and the memory is divided into a plurality of block areas for each block register,
2. The information processing apparatus according to claim 1, wherein the control circuit controls permission or prohibition of data transfer from the emulator to the central processing unit for each block area.
上記ブロックレジスタが認証キーのデータを格納しており、
上記制御回路は、エミュレータからの信号に含まれる認証データと、上記認証キーのデータとを比較し、両者が一致すればエミュレータから中央演算処理装置へのデータ転送を許可するように制御することを特徴とする請求項2に記載の情報処理装置。
The block register stores authentication key data,
The control circuit compares the authentication data included in the signal from the emulator with the data of the authentication key, and controls to permit data transfer from the emulator to the central processing unit if they match. The information processing apparatus according to claim 2.
中央演算処理装置での実行履歴を記憶するトレースメモリを更に有し、
上記制御回路は、エミュレータがトレースメモリへアクセスするアドレスと、上記ブロックレジスタから決定されるアドレス空間との比較を行い、両者が一致すれば、エミュレータからトレースメモリに対しての出力信号とトレースメモリからエミュレータへの入力信号を無効とするように制御することを特徴とする請求項2に記載の情報処理装置。
A trace memory for storing an execution history in the central processing unit;
The control circuit compares the address at which the emulator accesses the trace memory and the address space determined from the block register. If the two match, the output signal from the emulator to the trace memory and the trace memory The information processing apparatus according to claim 2, wherein control is performed so as to invalidate an input signal to the emulator.
JP2006250952A 2006-09-15 2006-09-15 Access control device Expired - Fee Related JP4847827B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006250952A JP4847827B2 (en) 2006-09-15 2006-09-15 Access control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006250952A JP4847827B2 (en) 2006-09-15 2006-09-15 Access control device

Publications (2)

Publication Number Publication Date
JP2008071250A true JP2008071250A (en) 2008-03-27
JP4847827B2 JP4847827B2 (en) 2011-12-28

Family

ID=39292756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006250952A Expired - Fee Related JP4847827B2 (en) 2006-09-15 2006-09-15 Access control device

Country Status (1)

Country Link
JP (1) JP4847827B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2471482A (en) * 2009-06-30 2011-01-05 Nokia Corp Secure method of tracing software
US8069274B2 (en) 2008-07-28 2011-11-29 Ricoh Company, Ltd. System and method for serial data communications between host and communications devices, and communications device employed in the system and method
JP2018078610A (en) * 2017-12-15 2018-05-17 キヤノン株式会社 Encryption/decryption system, control method for the same and program

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339189A (en) * 1999-05-28 2000-12-08 Nec Microcomputer Technology Ltd Method for detecting illegal memory access debugging device and storage medium
JP2003280756A (en) * 2002-03-25 2003-10-02 Seiko Epson Corp Debug means of information processor
WO2005091143A1 (en) * 2004-03-24 2005-09-29 Matsushita Electric Industrial Co., Ltd. Information processing device and program file generation device
JP2005309758A (en) * 2004-04-21 2005-11-04 Seiko Epson Corp Semiconductor device, electronic equipment, and access control method of semiconductor device
JP2007140620A (en) * 2005-11-15 2007-06-07 Sophia Systems Co Ltd Microcomputer and debugging device connected to this microcomputer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339189A (en) * 1999-05-28 2000-12-08 Nec Microcomputer Technology Ltd Method for detecting illegal memory access debugging device and storage medium
JP2003280756A (en) * 2002-03-25 2003-10-02 Seiko Epson Corp Debug means of information processor
WO2005091143A1 (en) * 2004-03-24 2005-09-29 Matsushita Electric Industrial Co., Ltd. Information processing device and program file generation device
JP2005309758A (en) * 2004-04-21 2005-11-04 Seiko Epson Corp Semiconductor device, electronic equipment, and access control method of semiconductor device
JP2007140620A (en) * 2005-11-15 2007-06-07 Sophia Systems Co Ltd Microcomputer and debugging device connected to this microcomputer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069274B2 (en) 2008-07-28 2011-11-29 Ricoh Company, Ltd. System and method for serial data communications between host and communications devices, and communications device employed in the system and method
GB2471482A (en) * 2009-06-30 2011-01-05 Nokia Corp Secure method of tracing software
JP2018078610A (en) * 2017-12-15 2018-05-17 キヤノン株式会社 Encryption/decryption system, control method for the same and program

Also Published As

Publication number Publication date
JP4847827B2 (en) 2011-12-28

Similar Documents

Publication Publication Date Title
US10685145B2 (en) Secure processor and a program for a secure processor
US10516533B2 (en) Password triggered trusted encryption key deletion
JP4260984B2 (en) Information processing apparatus and information processing method
KR101457355B1 (en) Method and apparatus to provide secure application execution
KR20200051694A (en) Call path dependent authentication
US8307215B2 (en) System and method for an autonomous software protection device
CN110659458A (en) Central processor design method supporting software code data secret credible execution
JP2007529803A (en) Method and device for controlling access to peripheral devices
Cyr et al. Low-cost and secure firmware obfuscation method for protecting electronic systems from cloning
Milenković et al. Using instruction block signatures to counter code injection attacks
JP4847827B2 (en) Access control device
Gilmont et al. Architecture of security management unit for safe hosting of multiple agents
JP2009025907A (en) Semiconductor integrated circuit device and signal processing method therefor
JP2008191788A (en) Information processor
Al Mahmod Towards Unclonable System Design for Resource-Constrained Applications
JP2011100329A (en) Computer
Platte A security architecture for microprocessors
Marton Bognar et al. Intellectual Property Exposure: Subverting and Securing Intellectual Property Encapsulation in Texas Instruments Microcontrollers
vor starken Angreifern et al. Trusted Systems in Untrusted Environments: Protecting against Strong Attackers
JP2005251022A (en) Processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110930

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

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

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

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees