JP2010015224A - Authentication device, authentication method, and method of executing binary code - Google Patents

Authentication device, authentication method, and method of executing binary code Download PDF

Info

Publication number
JP2010015224A
JP2010015224A JP2008172113A JP2008172113A JP2010015224A JP 2010015224 A JP2010015224 A JP 2010015224A JP 2008172113 A JP2008172113 A JP 2008172113A JP 2008172113 A JP2008172113 A JP 2008172113A JP 2010015224 A JP2010015224 A JP 2010015224A
Authority
JP
Japan
Prior art keywords
authentication
binary code
information
processing means
information 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.)
Withdrawn
Application number
JP2008172113A
Other languages
Japanese (ja)
Inventor
Sayo Hirano
紗代 平野
Susumu Akata
進 赤田
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.)
Leader Electronics Corp
Original Assignee
Leader Electronics Corp
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 Leader Electronics Corp filed Critical Leader Electronics Corp
Priority to JP2008172113A priority Critical patent/JP2010015224A/en
Publication of JP2010015224A publication Critical patent/JP2010015224A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method of executing binary codes without reducing execution speed while maintaining confidentiality of the binary codes of an authentication program or the like which requires high confidentiality. <P>SOLUTION: This method of executing the binary codes stored in an external recording medium in a rearranged order includes steps of: rearranging the binary codes in an executable order and storing them into an internal register of an information processing means; and executing the binary codes stored in the internal register by the information processing means. An authentication method, and an authentication device or the like are also provided. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、認証プログラムなどの機密保持が要求されるデータをバイナリコードにして、それを実行する方法に関し、特に、記録媒体上に実行する順序と異なる順序に並び替えた状態で格納されたバイナリコードを、情報処理手段で実行を行う方法、およびこれを利用した認証装置、認証方法等に関する。   The present invention relates to a method for executing binary code on data requiring confidentiality such as an authentication program, and in particular, binary stored in a state in which the data is rearranged in a different order from the order of execution on a recording medium. The present invention relates to a method of executing a code by an information processing means, an authentication device using the same, an authentication method, and the like.

一般消費者向け製品や産業用製品などの量産化された製品では、ユーザのニーズにあわせて製品をカスタマイズするために、基本となる製品にさまざまな機能を追加できるオプションを用意しているものが多い。従来は、これらのオプションはハードウェアで提供されることが多く、基本製品にオプションボードなどのハードウェアを追加することにより、当該オプションの機能を追加することが一般的であった。   In mass-produced products such as consumer products and industrial products, there are options that can add various functions to the basic product in order to customize the product according to user needs. Many. Conventionally, these options are often provided by hardware, and it is common to add the function of the option by adding hardware such as an option board to the basic product.

しかし、マイクロプロセッサの高速化やソフトウェア技術の発展にともない、これまで主としてハードウェアで実現されてきたさまざまな信号処理や装置制御がソフトウェアで実現できるようになった。このため、近年ではオプション機能をソフトウェアのかたちで提供することが多くなってきた。   However, with the increase in the speed of microprocessors and the development of software technology, various signal processing and device control that have been realized mainly in hardware until now can be realized in software. For this reason, in recent years, optional functions have often been provided in the form of software.

このようなオプション・ソフトウェアを提供する方法として、まず従来のハードウェアのオプションの提供方法と同様に、ソフトウェアを必要に応じて基本製品にインストールする方法が考えられる。しかし、一般的に、インストール作業は専門知識が必要な場合が多く、不慣れなユーザがインストールした場合にはインストールミスによるトラブルが発生する可能性がある。さらに、インストール作業は時間がかかるため、オプションを追加する度にインストールのために相当の時間を費やすことになるという問題があった。   As a method for providing such optional software, first, as in the conventional method for providing hardware options, a method of installing software in a basic product as needed can be considered. However, in general, the installation work often requires specialized knowledge, and when an unfamiliar user installs, there is a possibility that trouble due to an installation error occurs. Furthermore, since installation takes time, there is a problem that a considerable amount of time is required for installation each time an option is added.

そこで、基本となる製品の製造段階で、オプション機能の実行プログラムを全てインストールしておき、初期状態では当該オプション機能を利用できない状態(ディスエーブル状態)に設定してから、ユーザに提供する提供方法が考えられる。オプション機能を望むユーザは、オプション機能の提供者から該当するソフトウェアの利用許諾(ライセンス)を受け、当該ライセンスとともに提供されるライセンスキーを製品に入力してディスエーブル状態を解除して、オプション機能を利用する。   Therefore, a method for providing to the user after installing all execution programs for the optional functions in the manufacturing stage of the basic product and setting the optional functions in a state where they cannot be used (disabled) in the initial state. Can be considered. A user who desires an optional function receives a license (license) for the corresponding software from the provider of the optional function, enters the license key provided with the license into the product, cancels the disabled state, and activates the optional function. Use.

この方法は、オプション機能を追加する際にインストール作業が不要であるという利点がある。その反面、ライセンスキーが入手できれば正規のライセンスを受けていなくともオプション機能を利用できてしまうという欠点がある。例えば、ライセンスキーは数字と文字で与えられることが多いことを利用して、考え得る文字と数字の組み合わせを一つずつ順に入力していく総当り攻撃により、ライセンスキーを特定することが可能である。   This method has an advantage that no installation work is required when adding an optional function. On the other hand, if the license key is available, there is a disadvantage that the optional function can be used even if the license key is not received. For example, using the fact that license keys are often given as numbers and letters, it is possible to specify a license key by a brute force attack in which possible combinations of letters and numbers are entered one by one. is there.

このような総当り攻撃に対しては、特許文献1に記載されたような対策が提案されている。すなわち、正しいライセンスキーとの一致度が低い文字列が入力された試行回数をカウントして、所定の試行回数を超えた場合には、入力をロックアウトしたり偽サーバに誘導することにより、攻撃を回避する方法である。   For such a brute force attack, a countermeasure as described in Patent Document 1 has been proposed. In other words, by counting the number of trials in which a character string with a low degree of coincidence with the correct license key is counted, and exceeding the predetermined number of trials, the input is locked out or guided to a fake server. It is a method to avoid.

特開2001−282739号公報JP 2001-283939 A

ところで、ライセンスキーを特定する別の方法として、ライセンスキーの認証プログラムを解析する方法が考えられる。入力されたライセンスキーの認証プログラムは装置自身に搭載されていることから、当該認証プログラムが格納された場所を特定し、その内容を解析すれば、不正にライセンスキーを入手することは可能である。この点、装置内部には認証プログラム以外のプログラムも多数搭載されており、かつ、認証プログラムはバイナリコード(機械語)の状態で格納されていることから、認証プログラムのバイナリコードが格納されている場所を特定したうえで、バイナリコードを逆アセンブルなどのリバースエンジニアリングして認証アルゴリズムを把握することは、それほど容易でないものの、認証プログラムでとりわけ出現頻度の高いバイナリコードのパターン等をたよりに解析を行い、認証アルゴリズムを解析すること可能である。   By the way, as another method for specifying a license key, a method of analyzing a license key authentication program can be considered. Since the entered license key authentication program is installed in the device itself, it is possible to obtain the license key illegally by specifying the location where the authentication program is stored and analyzing its contents. . In this regard, since a number of programs other than the authentication program are installed inside the apparatus, and the authentication program is stored in a binary code (machine language) state, the binary code of the authentication program is stored. It is not so easy to reverse engineer binary code by disassembling the binary code after identifying the location, but it is not so easy. It is possible to analyze the authentication algorithm.

上述したような認証プログラム以外の分野でも、例えば、防衛や金融関連の情報を扱う装置など、装置に搭載されたバイナリコード自体の機密保持が求められる場面は多い。このようなバイナリコードを秘匿化する方法として、コード自体を暗号化する方法が考えられる。しかし、バイナリコードの実行時に暗号を解除する必要があるため、実行速度が遅くなってしまうという問題があった。そこで、高い機密性を保持しつつ、実行速度が低下しないバイナリコードの実行方法が求められてきた。   Even in fields other than the authentication program as described above, there are many situations in which confidentiality of binary codes installed in devices is required, such as devices that handle defense and financial information. As a method of concealing such binary code, a method of encrypting the code itself can be considered. However, there is a problem that the execution speed becomes slow because it is necessary to release the encryption when executing the binary code. Therefore, there has been a demand for a binary code execution method that maintains high confidentiality and does not decrease the execution speed.

上述した課題は、レジスタを備えた情報処理手段により認証情報を認証する方法であって、認証情報を入力するステップと、外部記録媒体に順序を並び替えた状態で格納された認証プログラムのバイナリコードを、実行可能な順序に並び替えて前記レジスタに格納するステップと、前記情報処理手段により前記レジスタに格納された認証プログラムのバイナリコードを実行して、前記認証情報の認証を行う認証ステップと、を含む認証情報の認証方法およびこの方法を用いた認証装置、プログラム、記録媒体により、解決することができる。   The above-described problem is a method for authenticating authentication information by an information processing means including a register, the step of inputting authentication information, and a binary code of an authentication program stored in a rearranged order on an external recording medium Are arranged in an executable order and stored in the register, and an authentication step of authenticating the authentication information by executing a binary code of an authentication program stored in the register by the information processing means, Can be solved by an authentication information authentication method including the authentication information, an authentication apparatus using the method, a program, and a recording medium.

すなわち、あらかじめ認証プログラムのバイナリコードを、情報処理手段が実行する順序とは異なる順序に並び替えて外部記録媒体に格納しておく。そして、プログラムの実行時には、まず情報処理手段のレジスタ上に、バイナリコードを情報処理手段が実行する順序に並び替えて格納する。その後、情報処理手段により、レジスタに格納されたバイナリコードを実行して認証を行う。   In other words, the binary code of the authentication program is rearranged in an order different from the order executed by the information processing means and stored in the external recording medium. When executing the program, first, binary codes are rearranged and stored in the order of execution by the information processing means on the register of the information processing means. Thereafter, the binary code stored in the register is executed by the information processing means for authentication.

この方法では、外部記録媒体に格納されたバイナリコードは実行コードとしての意味をなさないため、逆アセンブル等のリバースエンジニアリング手法で解析しても、有意な解析結果を得ることができない。また、情報処理手段のレジスタは、情報処理手段の情報入出力のバッファとしてその内容が頻繁に書き換わるため、レジスタ上に展開されたバイナリコードを解析することは著しく困難である。したがって、バイナリコードを機密の高い状態で保持することができる。加えて、情報処理手段で認証プログラムを実行する際には、バイナリコードが実行を行う順に配列されているため、実行速度を低下させることなく、当該コードを実行することができる。   In this method, since the binary code stored in the external recording medium does not make sense as an execution code, a significant analysis result cannot be obtained even if analyzed by a reverse engineering technique such as disassembly. In addition, since the contents of the register of the information processing means are frequently rewritten as an information input / output buffer of the information processing means, it is extremely difficult to analyze the binary code developed on the register. Therefore, the binary code can be kept in a highly confidential state. In addition, when the authentication program is executed by the information processing means, since the binary code is arranged in the order of execution, the code can be executed without reducing the execution speed.

ここで、本願の特許請求の範囲における「レジスタ」とは、情報処理手段がプログラムの実行や情報の入出力のために一時的に情報を保持するメモリを意味する。情報処理手段としてマイクロプロセッサを用いた場合、レジスタは、マイクロプロセッサの内部に配置されていることが多いが、近年では2次キャッシュレジスタとしてマイクロプロセッサの外部にSRAM等の高速メモリを設けることもある。特許請求の範囲における「レジスタ」とは、このようなマイクロプロセッサの外部に設けられた高速メモリをも含む概念である。   Here, the “register” in the claims of the present application means a memory in which the information processing means temporarily holds information for program execution and information input / output. When a microprocessor is used as the information processing means, the register is often arranged inside the microprocessor, but in recent years, a high-speed memory such as SRAM may be provided outside the microprocessor as a secondary cache register. . The “register” in the claims is a concept including a high-speed memory provided outside such a microprocessor.

また、本願の特許請求の範囲における「外部記録媒体」とは、情報処理手段の外部にバイナリコードやデータを記録しておく媒体を意味し、装置の外部に配置されているか否かを問わない。例えば、多くのコンピュータでは、電源切断後もプログラムやデータを保存しておくためにコンピュータの内部に、ハードディスクやフラッシュメモリなどの大容量メモリを搭載しているが、本願の特許請求の範囲における「外部記録媒体」とは、このようなコンピュータの内部に設置された大容量メモリを含む概念である。   Further, “external recording medium” in the claims of the present application means a medium for recording binary code and data outside the information processing means, regardless of whether or not it is arranged outside the apparatus. . For example, in many computers, a large-capacity memory such as a hard disk or a flash memory is mounted in the computer in order to save programs and data even after the power is turned off. The term “external recording medium” is a concept including a large-capacity memory installed inside such a computer.

上記方法における前記認証ステップは、さらに、入力された認証情報が所定回数にわたって認証されなかった場合には、認証情報の認証を禁止するステップを含むことが望ましい。これにより、総当り攻撃を防ぐことができるからである。   Preferably, the authentication step in the method further includes a step of prohibiting authentication of authentication information when the input authentication information is not authenticated for a predetermined number of times. This is because brute force attacks can be prevented.

上記方法に含まれる技術思想は、さらに機密保持が要求されるバイナリコードを実行する方法として一般化して捉えることができる。すなわち、外部記録媒体に順序を並べ替えた状態で格納されたバイナリコードを実行する方法であって、前記バイナリコードを実行可能な順序に並べ替えて、情報処理手段の内部レジスタに格納するステップと、 前記内部レジスタに格納されたバイナリコードを前記情報処理手段により実行するステップと、を含むバイナリコードの実行方法である。   The technical idea included in the above method can be generalized as a method of executing a binary code that requires further confidentiality. That is, a method of executing a binary code stored in an order rearranged on an external recording medium, the binary code being rearranged in an executable order and stored in an internal register of an information processing means; And executing the binary code stored in the internal register by the information processing means.

また、上述した課題は、情報処理手段により認証情報を認証する方法であって、認証情報を入力するステップと、外部記録媒体に順序を並べ替えた状態で格納された認証プログラムのバイナリコードを、実行可能な順序で前記外部記録媒体から読み出す並べ替えステップと、前記情報処理手段が、並べ替えステップで読み出したバイナリコードを受信しながら、該バイナリコードを実行して、前記認証情報の認証を行う認証ステップと、を含む認証情報の認証方法およびこれを利用した認証装置、プログラム、記録媒体により、解決することができる。   Further, the above-described problem is a method for authenticating authentication information by an information processing means, the step of inputting the authentication information, and the binary code of the authentication program stored in a rearranged order on the external recording medium, A reordering step of reading from the external recording medium in an executable order, and the information processing means authenticating the authentication information by executing the binary code while receiving the binary code read out of the reordering step This can be solved by an authentication method for authentication information including an authentication step, and an authentication apparatus, program, and recording medium using the authentication method.

すなわち、あらかじめ認証プログラムのバイナリコードを、情報処理手段が実行する順序とは異なる順序に入れ替えて外部記録媒体に格納しておく。プログラムの実行時には、外部記録媒体から、バイナリコードを実行する順序で読み出す。情報処理手段は、実行する順序で読み出されたバイナリコードを実行して認証を行う。   That is, the binary code of the authentication program is stored in the external recording medium in advance in a different order from the order executed by the information processing means. When executing the program, the binary code is read from the external recording medium in the order of execution. The information processing means performs authentication by executing the binary code read in the order of execution.

この方法では、外部記録媒体に格納されたバイナリコードは実行コードとしての意味をなさないため、逆アセンブル等のリバースエンジニアリング手法で解析しても、有意な解析結果をえることができない。このため、バイナリコードを機密の高い状態で保持することができる。また、情報処理手段は、実行可能な順序に並べ替えたバイナリコードを受信しながら実行するため、実行速度を低下させることなく、当該コードを実行することができる。   In this method, since the binary code stored in the external recording medium does not make sense as an execution code, a significant analysis result cannot be obtained even if analyzed by a reverse engineering technique such as disassembly. For this reason, the binary code can be held in a highly confidential state. Further, since the information processing means executes the binary code rearranged in the executable order, it can execute the code without reducing the execution speed.

上記方法における前記認証ステップは、さらに、入力された認証情報が所定回数にわたって認証されなかった場合には、認証情報の認証を禁止するステップを含むことが望ましい。これにより、総当り攻撃を防ぐことができるからである。   Preferably, the authentication step in the method further includes a step of prohibiting authentication of authentication information when the input authentication information is not authenticated for a predetermined number of times. This is because brute force attacks can be prevented.

上記方法に含まれる技術思想は、機密保持が要求されるバイナリコードを実行する方法として一般化して捉えることができる。すなわち、外部記録媒体に順序を並べ替えた状態で格納されたバイナリコードを実行する方法であって、前記バイナリコードを、実行可能な順序に並べ替えて前記外部記録媒体から読み出す並べ替えステップと、前記情報処理手段が、並べ替えステップで読み出されたバイナリコードを受信しながら、該バイナリコードを実行するステップと、を含むバイナリコードの実行方法である。   The technical idea included in the above method can be generalized as a method of executing a binary code that requires confidentiality. That is, a method of executing a binary code stored in a rearranged state on an external recording medium, the rearrangement step of rearranging the binary code in an executable order and reading from the external recording medium; And a step of executing the binary code while the information processing means receives the binary code read in the rearranging step.

本発明により、バイナリコードを機密の高い状態で保持しつつ、実行速度を低下させることなく実行することができる。   According to the present invention, it is possible to execute a binary code without reducing the execution speed while keeping the secret code in a highly confidential state.

図1に本発明の一実施形態である認証装置10を搭載した測定装置1を示す。測定装置1は、基本となる測定機能に加えオプションの測定機能を追加できる機能を有する測定装置である。オプション機能の実行プログラムは、製品製造段階で測定手段14に格納されている。ただし、初期状態では該実行プログラムが実行できないように(ディスエーブルの状態)に設定されているため、ユーザはオプションの測定機能を利用することができない。   FIG. 1 shows a measuring apparatus 1 equipped with an authentication apparatus 10 according to an embodiment of the present invention. The measuring device 1 is a measuring device having a function capable of adding an optional measuring function in addition to a basic measuring function. The execution program for the optional function is stored in the measuring means 14 at the product manufacturing stage. However, since the execution program is set to be disabled (disabled state) in the initial state, the user cannot use the optional measurement function.

ユーザがオプション機能の利用を望む場合には、オプション機能の提供者から提供されたライセンスキーを認証装置10に入力する。入力したライセンスキーが正しい場合には、認証装置10から認証された旨の信号が出力される。測定手段14は当該信号を受信すると、オプション機能を利用できる状態(イネーブル状態)に設定する。これにより利用者はオプション機能を利用することが可能となる。   When the user desires to use the optional function, the license key provided by the optional function provider is input to the authentication apparatus 10. If the input license key is correct, the authentication device 10 outputs a signal indicating that the license has been authenticated. When the measurement means 14 receives the signal, it sets the option function in a usable state (enabled state). As a result, the user can use the optional function.

認証装置10は、内部レジスタ13を備えたマイクロプロセッサ(MPU、情報処理手段)12と、マイクロプロセッサ12に接続されたキーボード11およびハードディスク15により構成されている。なお、本願における「情報処理手段」は、マイクロプロセッサに限定されるものではなく、また単一のデバイスである必要もない。例えば、レジスタをマイクロプロセッサの外部に配置して、マイクロプロセッサと該レジスタにより情報処理手段を構成してもよい。   The authentication device 10 includes a microprocessor (MPU, information processing means) 12 having an internal register 13, a keyboard 11 and a hard disk 15 connected to the microprocessor 12. The “information processing means” in the present application is not limited to a microprocessor, and does not have to be a single device. For example, the register may be arranged outside the microprocessor, and the information processing means may be configured by the microprocessor and the register.

キーボード11は、ライセンスキー(認証情報)を入力する手段である。なお、認証情報を入力する手段はキーボードに限定されるものではなく、マウスやカードリーダなどの他のデバイスであってもよいし、ネットワークを経由して提供される情報を受信する手段など適宜変更可能である。   The keyboard 11 is means for inputting a license key (authentication information). The means for inputting authentication information is not limited to the keyboard, but may be another device such as a mouse or a card reader, or may be changed as appropriate, such as a means for receiving information provided via a network. Is possible.

ハードディスク15は、認証プログラム16と認証制御プログラム17が格納された外部記録媒体である。なお、本願における「外部記録媒体」は、ハードディスクに限定されるものではなく、フラッシュメモリやCD−ROMなどの他の情報記録デバイスであってもよい。また、記録媒体は、認証装置に直接接続されている必要はなく、ネットワークなどを介して間接的に接続されていてもよい。   The hard disk 15 is an external recording medium in which an authentication program 16 and an authentication control program 17 are stored. The “external recording medium” in the present application is not limited to a hard disk, and may be another information recording device such as a flash memory or a CD-ROM. Further, the recording medium does not need to be directly connected to the authentication device, and may be indirectly connected via a network or the like.

認証プログラム16は、MPU12で動作するライセンスキーの真偽を判断するプログラムのバイナリコードであり、MPU12が実行する順序とは逆の順序に配列されて、ハードディスク15に記録されている。より具体的には、認証プログラム16の先頭アドレスが0010番地で、その実行コードが80、90、A0、B0の順序で与えられるとき、ハードディスク15には、図3のように0010番地にB0、0011番地にA0、0012番地に90、0013番地に80という順序で格納されている。なお、本願発明における「順序を並べ替えた状態」とは、上述した逆順に限定されるものではなく、情報処理装置が実行する順序と異なる順序に配置されていることを意味する。   The authentication program 16 is a binary code of a program that determines the authenticity of a license key that operates on the MPU 12, and is recorded on the hard disk 15 in an order reverse to the order executed by the MPU 12. More specifically, when the start address of the authentication program 16 is 0010 and the execution codes are given in the order of 80, 90, A0, B0, the hard disk 15 has B0, 0010 at 0010 as shown in FIG. A0 is stored at address 0011, 90 is stored at address 0012, and 80 is stored at address 0013. In addition, the “state in which the order is rearranged” in the present invention is not limited to the reverse order described above, and means that they are arranged in an order different from the order executed by the information processing apparatus.

認証制御プログラム17は、ライセンスキーの入力や、認証プログラム16の並べ替え、認証結果を認証装置10の出力として測定手段14に送信するといった認証装置10の認証以外の動作を制御するプログラムである。   The authentication control program 17 is a program that controls operations other than authentication of the authentication device 10 such as input of license keys, rearrangement of the authentication program 16, and transmission of authentication results to the measurement unit 14 as output of the authentication device 10.

次に、図2のフローチャートを参照しながら、認証装置10を搭載した測定装置1の動作を説明する。図2において破線部16が認証プログラム16により実行される部分であり、それ以外の部分は認証制御プログラム17により実行される部分である。   Next, the operation of the measurement apparatus 1 equipped with the authentication apparatus 10 will be described with reference to the flowchart of FIG. In FIG. 2, a broken line portion 16 is a portion executed by the authentication program 16, and other portions are portions executed by the authentication control program 17.

ユーザが測定装置1のライセンスキー認証メニューを選択すると、MPU12がキーボード11からライセンスキーの入力を要求する(ステップ20)。ライセンスキーが入力されると、MPU12は、ハードディスク15に格納されている認証プログラムのバイナリコード16を、MPU12の実行順序に並び替えて内部レジスタ13に格納する(ステップ21)。   When the user selects the license key authentication menu of the measuring apparatus 1, the MPU 12 requests input of a license key from the keyboard 11 (step 20). When the license key is input, the MPU 12 rearranges the binary code 16 of the authentication program stored in the hard disk 15 in the internal register 13 in the execution order of the MPU 12 (step 21).

より具体的には、図3のように、ハードディスク15に実行する順序とは逆順に並んでいる認証プログラムのバイナリコード16を、MPU12の内部レジスタ13にもとの順序に並べ替えて格納する。これにより、内部レジスタ13には、バイナリコードが実行可能な状態で、すなわち、80、90、A0、B0の順序で並び替えられる。同時に、この並び替えられたバイナリコードが格納された領域は、認証プログラムの実行段階で、MPU12により書き換えが行われないようプロテクトを行う。   More specifically, as shown in FIG. 3, the binary codes 16 of the authentication programs arranged in the reverse order to the execution order on the hard disk 15 are rearranged in the original order in the MPU 12 and stored. As a result, the internal register 13 is rearranged in an executable state, that is, in the order of 80, 90, A0, and B0. At the same time, the area where the rearranged binary codes are stored is protected from being rewritten by the MPU 12 in the execution stage of the authentication program.

次に、MPU12により内部レジスタ13に格納された認証プログラムを実行する(ステップ22、23)。認証プログラムでは、まず、従前に認証エラー、すなわち誤ったライセンスキーが何回入力されたかを判別する。この判別は、認証エラーの回数をカウントするカウンタの値を参照することによって実現することができる。判別の結果、4回以上の誤りがあった場合には認証を行うことなく終了する(ステップ22)。認証エラーが3回以下の場合には、ライセンスキーが正しいか否かを判別して(ステップ23)、その結果を認証制御プログラムに返す。   Next, the authentication program stored in the internal register 13 is executed by the MPU 12 (steps 22 and 23). In the authentication program, first, an authentication error, that is, how many times an incorrect license key has been input is determined. This determination can be realized by referring to the value of a counter that counts the number of authentication errors. If there are four or more errors as a result of the discrimination, the process is terminated without performing authentication (step 22). If the authentication error is 3 times or less, it is determined whether or not the license key is correct (step 23), and the result is returned to the authentication control program.

認証制御プログラム17は、認証プログラム16の認証結果を受けて処理を行う。まず、ステップ22で認証エラーが4回以上であった場合は、何ら応答せずに終了する。つまり、ライセンスキーを入力したユーザは、測定装置1から何ら反応が得られない状態となる。これにより、ユーザはライセンキーの認証が禁止された状態であることを理解することができる。   The authentication control program 17 receives the authentication result of the authentication program 16 and performs processing. First, if there are four or more authentication errors in step 22, the process ends without any response. That is, the user who has input the license key is in a state where no response is obtained from the measuring device 1. Thereby, the user can understand that the license key authentication is prohibited.

ステップ23でライセンスキーが認証された場合には、MPU2は測定手段14に対して認証された旨の信号を送信する(ステップ25)。測定手段14は、当該信号を受信するとオプションの測定機能の実行プログラムを実行可能な状態(イネーブル)にする。これにより、ユーザはオプションの機能を利用することができるようになる。   If the license key is authenticated in step 23, the MPU 2 transmits a signal indicating that it has been authenticated to the measuring means 14 (step 25). When receiving the signal, the measurement unit 14 makes the execution program of the optional measurement function executable (enabled). As a result, the user can use optional functions.

ステップ23でライセンスキーが正しいものではないと判別された場合には、その旨を測定装置1の表示画面や警告ランプなどによって出力するとともに、ユーザに正しいライセンスキーを入力するように促す。また、認証エラーのカウンタをインクリメントする(ステップ24)。   If it is determined in step 23 that the license key is not correct, a message to that effect is output on the display screen of the measuring apparatus 1 or a warning lamp, and the user is prompted to input the correct license key. The authentication error counter is incremented (step 24).

以上の処理が終わった後に、並び替えた認証プログラムのバイナリコードが格納されている内部レジスタ13の領域のプロテクトを解除する。これにより、内部レジスタ13の値は、MPU12が次々と実行する処理に従って書き換えられ、実行順序に並べ替えられたバイナリコードは消去される。   After the above processing is completed, the protection of the area of the internal register 13 in which the binary code of the sorted authentication program is stored is released. As a result, the value of the internal register 13 is rewritten according to the process executed by the MPU 12 one after another, and the binary code rearranged in the execution order is deleted.

次に、本発明に係る別の実施態様である認証装置10’を搭載した測定装置1’を図4に示す。測定装置1’も測定装置1と同様に、基本となる測定機能にオプションの測定機能を追加できる機能を備える。オプション機能の実行プログラムは、製品製造段階において測定手段14に格納されている。ただし、初期状態では該実行プログラムが実行できないように(ディスエーブルの状態)に設定おり、オプションの正規の提供者から入力したライセンスキーを認証装置10’に入力して認証を受けることによりオプション機能が利用できるようになる。   Next, FIG. 4 shows a measuring apparatus 1 ′ equipped with an authentication apparatus 10 ′ that is another embodiment according to the present invention. Similar to the measurement apparatus 1, the measurement apparatus 1 'has a function that can add an optional measurement function to the basic measurement function. The execution program for the optional function is stored in the measuring means 14 at the product manufacturing stage. However, in the initial state, the execution program is set so that it cannot be executed (disabled state), and an optional function is obtained by inputting a license key input from an optional authorized provider to the authentication device 10 ′ for authentication. Will be available.

認証装置10’は、マイクロプロセッサ(MPU、情報処理手段)12’と、MPU12’に接続されたキーボード11およびFPGA(並べ替え手段)18と、FPGA18に接続されたハードディスク15により構成されている。このうち、キーボード11とハードディスク15は、それぞれ認証装置1のキーボード11とハードディスク15と同一である。また、MPU12’は、認証装置1のMPU12と異なり、レジスタの有無を問わない。   The authentication device 10 ′ includes a microprocessor (MPU, information processing means) 12 ′, a keyboard 11 and FPGA (rearrangement means) 18 connected to the MPU 12 ′, and a hard disk 15 connected to the FPGA 18. Among these, the keyboard 11 and the hard disk 15 are the same as the keyboard 11 and the hard disk 15 of the authentication device 1, respectively. In addition, the MPU 12 ′ may or may not have a register, unlike the MPU 12 of the authentication device 1.

FPGA18は、ハードディスク15の認識プログラム16が記憶されている領域のアドレスを、逆の順序でマッピングするようにプログラムされている。より具体的には、表1のように、MPU12’からハードディスク15のアドレスA0を読み出すように命令されると、FPGA18でアドレスA1にマッピングする。すると、ハードディスク15のアドレスA1からデータDを読み出されて、MPU12’に入力される。   The FPGA 18 is programmed to map the address of the area of the hard disk 15 where the recognition program 16 is stored in the reverse order. More specifically, as shown in Table 1, when the MPU 12 ′ is instructed to read the address A 0 of the hard disk 15, the FPGA 18 maps it to the address A 1. Then, the data D is read from the address A1 of the hard disk 15 and input to the MPU 12 '.

Figure 2010015224
Figure 2010015224

すなわち、MPU12’が認証プログラムのバイナリコードの先頭アドレス0010を読み出す指令を出すと、FPGA18が認証プログラムの最終アドレスである0013に変換して、ハードディスク15に送信する。すると、ハードディスク15はアドレス0013に格納されているデータ80を読み出してMPU12’に返す。次に、MPU12’がアドレス0011を読み出す指令を出すと、FPGA18がアドレス0012に変換して、ハードディスク15に送信する。すると、ハードディスク15はアドレス0012に格納されているデータ90を読み出してMPU12’に返す。   That is, when the MPU 12 ′ issues a command for reading the start address 0010 of the binary code of the authentication program, the FPGA 18 converts it to 0013 which is the final address of the authentication program and transmits it to the hard disk 15. Then, the hard disk 15 reads the data 80 stored at the address 0013 and returns it to the MPU 12 '. Next, when the MPU 12 ′ issues a command to read the address 0011, the FPGA 18 converts it to the address 0012 and transmits it to the hard disk 15. Then, the hard disk 15 reads the data 90 stored at the address 0012 and returns it to the MPU 12 '.

このようにして、ハードディスク15には、バイナリコードが実行順序とは逆順に並んで格納されているにもかかわらず、FPGA18でアドレス変換することにより、MPU12’からはあたかも正順にならんでいるかのように読み出すことができる。なお、本願における「並べ替え手段」とは、情報処理手段の実行とは異なる順序で外部記録媒体に配置されたバイナリコードを、情報処理手段からはあたかも正しい順序で記録されているかのようにマッピングする手段であり、上述のように単に所定範囲のアドレスを逆順にマッピングするに限定されない。例えば、MPUから与えられたアドレスを1ビットシフトするようなものでもよいし、ルックアップテーブルを参照してマッピングしてもよいし、MPUから与えられたアドレスに所定の演算を施こすことにより変換を行ってもよい。   In this way, although the binary code is stored in the hard disk 15 in the reverse order to the execution order, it is as if the MPU 12 ′ is in the normal order by converting the address by the FPGA 18. Can be read out. In the present application, “rearranging means” refers to mapping binary codes arranged on an external recording medium in an order different from the execution of the information processing means as if they were recorded in the correct order from the information processing means. It is not limited to simply mapping a predetermined range of addresses in reverse order as described above. For example, the address given from the MPU may be shifted by 1 bit, mapped by referring to a lookup table, or converted by performing a predetermined operation on the address given by the MPU. May be performed.

このような並べ替え手段18を設けることにより、図2のフローチャートのステップ21の工程が不要となる。すなわち、認証装置10では、認証プログラム16を実行する(ステップ22、23)前にバイナリコードを並び替えるが(ステップ21)、認証装置10’では、認証プログラム16の実行(ステップ22、23)と並行して並び替えを行うため、ステップ21の工程が不要となる。測定装置1’のその他の動作は、図2のフローチャートと同じである。   By providing such a rearranging means 18, the step 21 of the flowchart of FIG. 2 becomes unnecessary. That is, the authentication device 10 rearranges the binary codes before executing the authentication program 16 (steps 22 and 23) (step 21), but the authentication device 10 ′ executes the authentication program 16 (steps 22 and 23). Since the rearrangement is performed in parallel, the step 21 is not necessary. Other operations of the measuring apparatus 1 'are the same as those in the flowchart of FIG.

以上、本発明に係る技術的思想を特定の実施態様を参照しつつ詳細にわたり説明したが、本発明の属する分野における当業者には、請求項の趣旨及び範囲から離れることなく様々な変更及び改変を加えることが出来ることは明らかである。   The technical idea according to the present invention has been described in detail with reference to specific embodiments. However, various changes and modifications may be made by those skilled in the art to which the present invention pertains without departing from the spirit and scope of the claims. It is clear that can be added.

例えば、上述した実施例では、認証情報がライセンスキーの場合を例にとって説明したが、認証情報はライセンスキーに限定されない。例えば、銀行のATMの認証装置における暗証番号や、IDカードで入室を制限するセキュリティーシステムの認証装置におけるIDカードに記録された情報なども認証情報にあたる。   For example, in the above-described embodiment, the case where the authentication information is a license key has been described as an example, but the authentication information is not limited to the license key. For example, a personal identification number in a bank ATM authentication device, information recorded on an ID card in an authentication device of a security system that restricts entry with an ID card, and the like correspond to the authentication information.

また、本発明で説明したバイナリコードの実行方法は、認証プログラムのバイナリコードの実行方法に限定されるものではなく、機密保持が要求されるバイナリコードの実行方法に広く適用することが可能である。すなわち、あらかじめ、機密保持が要求されるバイナリコードを、情報処理手段で実行する順序とは異なる順序に並べ替えた状態で外部記録媒体に格納しておく。そして、該バイナリコードを実行する際、情報処理手段の内部レジスタにおいて、実行する順序に並べ替えて格納して実行する、または、バイナリコードを実行する順序で読み出して情報処理手段に与え、情報処理手段で実行する。これにより、バイナリコードの機密性を保持しつつ、実行速度を低下させることなく実行を行うことが可能となる。   The binary code execution method described in the present invention is not limited to the binary code execution method of the authentication program, and can be widely applied to binary code execution methods that require confidentiality. . That is, binary codes that require confidentiality are stored in advance in an external recording medium in a state that is rearranged in an order different from the order executed by the information processing means. Then, when executing the binary code, in the internal register of the information processing means, rearrange it in the order of execution and store it for execution, or read out the binary code in the order of execution and give it to the information processing means. Execute by means. As a result, it is possible to execute without reducing the execution speed while maintaining the confidentiality of the binary code.

本発明に係る認証装置を搭載した測定装置の概略構成図である。It is a schematic block diagram of the measuring apparatus carrying the authentication apparatus which concerns on this invention. 図1の認証装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the authentication apparatus of FIG. バイナリコードの並び替えの説明図である。It is explanatory drawing of rearrangement of a binary code. 本発明に係る別の認証装置を搭載した測定装置の概略構成図である。It is a schematic block diagram of the measuring apparatus carrying another authentication apparatus which concerns on this invention.

符号の説明Explanation of symbols

10,10’ 認証装置
11 キーボード(入力手段)
12、12’ マイクロプロセッサ(情報処理手段)
13 レジスタ
15 ハードディスク
16 認証プログラム
17、17’ 認証制御プログラム
18 FPGA(並べ替え手段)
10, 10 'authentication device 11 keyboard (input means)
12, 12 'microprocessor (information processing means)
13 register 15 hard disk 16 authentication program 17, 17 ′ authentication control program 18 FPGA (sorting means)

Claims (10)

認証情報を入力する手段と、
レジスタを備えた情報処理手段と、
認証プログラムのバイナリコードの順序を並べ替えた状態で格納する外部記録媒体と、
を備えた認証情報の認証装置であって、
前記情報処理手段は、前記バイナリコードを実行可能な順序に並び替えて前記レジスタに格納して前記認証プログラムを実行することにより、前記認証情報の認証を行うことを特徴とする認証情報の認証装置。
Means for entering authentication information;
An information processing means comprising a register;
An external recording medium for storing the binary code order of the authentication program in a rearranged state;
An authentication information authentication device comprising:
The information processing means performs authentication of the authentication information by rearranging the binary code in an executable order, storing the binary code in the register, and executing the authentication program. .
認証情報を入力する手段と、
前記認証情報の認証を行う情報処理手段と、
前記認証プログラムのバイナリコードの順序を並べ替えた状態で格納する外部記録媒体と、
前記バイナリコードを、実行可能な順序で前記外部記録媒体から読み出す並べ替え手段と、
を備えた認証情報の認証装置であって、
前記情報処理手段は、前記並べ替え手段で読み出したバイナリコードを受信しながら、前記認証プログラムを実行することにより、前記認証情報の認証を行うことを特徴とする認証情報の認証装置。
Means for entering authentication information;
Information processing means for authenticating the authentication information;
An external recording medium for storing the authentication program binary code in a rearranged order;
Reordering means for reading the binary code from the external recording medium in an executable order;
An authentication information authentication device comprising:
The authentication information authentication apparatus, wherein the information processing means authenticates the authentication information by executing the authentication program while receiving the binary code read by the rearranging means.
前記情報処理手段は、入力された認証情報が所定回数にわたって認証されなかった場合には、認証情報の認証を禁止することを特徴とする請求項1または2に記載の認証装置。   The authentication apparatus according to claim 1, wherein the information processing unit prohibits authentication of authentication information when the input authentication information is not authenticated for a predetermined number of times. レジスタを備えた情報処理手段により認証情報を認証する方法であって、
認証情報を入力するステップと、
外部記録媒体に順序を並び替えた状態で格納された認証プログラムのバイナリコードを、実行可能な順序に並び替えて前記レジスタに格納するステップと、
前記情報処理手段により、前記レジスタに格納された認証プログラムのバイナリコードを実行して、前記認証情報の認証を行う認証ステップと、
を含む認証情報の認証方法。
A method of authenticating authentication information by an information processing means having a register,
Entering authentication information;
The binary code of the authentication program stored in the rearranged order on the external recording medium is rearranged in an executable order and stored in the register;
An authentication step of authenticating the authentication information by executing binary code of an authentication program stored in the register by the information processing means;
Authentication method including authentication information.
情報処理手段により認証情報を認証する方法であって、
認証情報を入力するステップと、
外部記録媒体に順序を並び替えた状態で格納された認証プログラムのバイナリコードを、実行可能な順序で前記外部記録媒体から読み出す並び替えステップと、
前記情報処理手段が、並び替えステップで読み出したバイナリコードを受信しながら、該バイナリコードを実行して、前記認証情報の認証を行う認証ステップと、
を含む認証情報の認証方法。
A method of authenticating authentication information by an information processing means,
Entering authentication information;
A reordering step of reading out the binary code of the authentication program stored in the external recording medium in a rearranged order from the external recording medium in an executable order;
An authentication step for authenticating the authentication information by executing the binary code while the information processing means receives the binary code read in the sorting step;
Authentication method including authentication information.
前記認証ステップが、さらに、入力された認証情報が所定回数にわたって認証されなかった場合には、認証情報の認証を禁止するステップを含む請求項4または5に記載の認証方法。   The authentication method according to claim 4, wherein the authentication step further includes a step of prohibiting authentication of authentication information when the input authentication information is not authenticated for a predetermined number of times. 情報処理手段に、請求項4から6のいずれかに記載の認証方法の各ステップを実行させる認証制御プログラム。   An authentication control program for causing an information processing means to execute each step of the authentication method according to claim 4. 請求項7記載の認証制御プログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the authentication control program according to claim 7 is recorded. 外部記録媒体に順序を並べ替えた状態で格納されたバイナリコードを実行する方法であって、
前記バイナリコードを、実行可能な順序に並べ替えて、情報処理手段のレジスタに格納するステップと、
前記レジスタに格納されたバイナリコードを前記情報処理手段により実行するステップと、
を含むバイナリコードの実行方法。
A method for executing binary code stored in an external recording medium in a rearranged order,
Rearranging the binary code in an executable order and storing it in a register of the information processing means;
Executing the binary code stored in the register by the information processing means;
Binary code execution method including
外部記録媒体に順序を並べ替えた状態で格納されたバイナリコードを実行する方法であって、
前記バイナリコードを、実行可能な順序で前記外部記録媒体から読み出す並び替えステップと、
前記情報処理手段が、並び替えステップで読み出したバイナリコードを受信しながら、該バイナリコードを実行するステップと、
を含むバイナリコードの実行方法。
A method for executing binary code stored in an external recording medium in a rearranged order,
Reordering the binary code from the external recording medium in an executable order;
The information processing means executes the binary code while receiving the binary code read in the sorting step;
Binary code execution method including
JP2008172113A 2008-07-01 2008-07-01 Authentication device, authentication method, and method of executing binary code Withdrawn JP2010015224A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008172113A JP2010015224A (en) 2008-07-01 2008-07-01 Authentication device, authentication method, and method of executing binary code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008172113A JP2010015224A (en) 2008-07-01 2008-07-01 Authentication device, authentication method, and method of executing binary code

Publications (1)

Publication Number Publication Date
JP2010015224A true JP2010015224A (en) 2010-01-21

Family

ID=41701311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008172113A Withdrawn JP2010015224A (en) 2008-07-01 2008-07-01 Authentication device, authentication method, and method of executing binary code

Country Status (1)

Country Link
JP (1) JP2010015224A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013020579A (en) * 2011-07-14 2013-01-31 Kddi Corp Program, terminal device, and authentication system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013020579A (en) * 2011-07-14 2013-01-31 Kddi Corp Program, terminal device, and authentication system

Similar Documents

Publication Publication Date Title
US8191155B2 (en) Microprocessor
JP5175856B2 (en) Protection and method of flash memory block in secure device system
CN100578473C (en) Embedded system and method for increasing embedded system security
EP2300952B1 (en) A method for adapting and executing a computer program and computer program product and computer architecture therefor
US7962952B2 (en) Information processing apparatus that executes program and program control method for executing program
US20070074038A1 (en) Method, apparatus and program storage device for providing a secure password manager
US20110271350A1 (en) method for protecting software
CN105320895B (en) High-performance autonomic hardware engine for on-line encryption processing
WO2007125911A1 (en) Data processing device, method, program, integrated circuit, and program generating device
US7805758B2 (en) Information processing apparatus
JP2012059221A (en) Information processor and information processing program
US11748493B2 (en) Secure asset management system
CN107832589A (en) Software copyright protecting method and its system
US7814334B2 (en) Method and apparatus for changing and adding activation keys for functions of digital content without having to change and recompile the digital content
JP2005216027A (en) Encryption device, encryption system therewith, decryption device and semiconductor system therewith
JP2010015224A (en) Authentication device, authentication method, and method of executing binary code
JP2008299930A (en) Semiconductor memory
JP2009278491A (en) Microprocessor and microprocessor application device
CN111597576B (en) Android compilation-based assets file encryption method and related equipment thereof
JP2004362077A (en) Data conversion system
JP6069120B2 (en) Information processing system
JP4098959B2 (en) Digital circuit
JP5356583B2 (en) Semiconductor memory device
TWI428824B (en) Microprocessor and method for limiting access
JP5716051B2 (en) Semiconductor memory device

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110906