JP4791250B2 - Microcomputer and its software falsification prevention method - Google Patents
Microcomputer and its software falsification prevention method Download PDFInfo
- Publication number
- JP4791250B2 JP4791250B2 JP2006139648A JP2006139648A JP4791250B2 JP 4791250 B2 JP4791250 B2 JP 4791250B2 JP 2006139648 A JP2006139648 A JP 2006139648A JP 2006139648 A JP2006139648 A JP 2006139648A JP 4791250 B2 JP4791250 B2 JP 4791250B2
- Authority
- JP
- Japan
- Prior art keywords
- microcomputer
- information processing
- function
- processing apparatus
- boot loader
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
本発明は、任意のソフトウェアコードに基づき何らかの情報処理を行なうマイクロコンピュータに関し、特に、マイクロコンピュータを搭載した情報処理装置を起動させる際に用いるブートプログラム、ローダプログラムと称されるソフトウェアの改竄防止方法に適用して有効な技術に関する。 The present invention relates to a microcomputer that performs some information processing based on an arbitrary software code, and more particularly to a boot program used when starting an information processing apparatus equipped with a microcomputer, and a software tampering prevention method called a loader program. It is related to effective technology.
昨今、デジタルデータ利用における情報セキュリティ技術の重要性が指摘されており、その中で、様々な情報処理プラットフォーム、情報処理装置上において取り扱われるデータ/コードの改竄防止技術が注目されている。そのような改竄防止技術は、実行される「データ処理の正当性」を保証するものであり、例えば、有価値コンテンツの利用と、それに対する課金処理など、確実な処理が特に期待される場面で極めて重要となる。 Recently, the importance of information security technology in the use of digital data has been pointed out, and among these, data / code falsification prevention technology handled on various information processing platforms and information processing devices has attracted attention. Such anti-tampering technology guarantees the “validity of data processing” to be executed. For example, in certain situations where reliable processing such as the use of valuable value content and accounting for it is expected. It becomes extremely important.
このような技術を適用した情報処理プラットフォームはセキュアプラットフォームなどと称され、PCなどの汎用情報処理機器から、組込み機器と称される、例えば音楽プレーヤや携帯電話機などのデジタルアプライアンスまで、規模の大小に拘らず、課金処理などの正当性保証が必要とされるアプリケーションを動作させる場面では必要なプラットフォーム技術である。 An information processing platform to which such a technology is applied is called a secure platform, etc., ranging from a general-purpose information processing device such as a PC to a digital appliance such as a music player or a mobile phone called an embedded device. Regardless, it is a necessary platform technology for operating applications that require validity guarantee such as billing.
PC向けには、NGSCB、LaGrandeなどのセキュアプラットフォーム技術が提案されているが、大掛かりかつ高価なプラットフォームであり、一般的に処理リソース、およびコスト面での制約が大きい組込み機器への直接適用は困難である。組込み機器向けの安価なセキュアプラットフォームへのニーズは確実にあり、同要求に対する解が必要とされている。 For PCs, secure platform technologies such as NGSCB and LaGrande have been proposed, but they are large and expensive platforms that are generally difficult to apply directly to embedded devices with large processing resources and cost constraints. It is. There is a certain need for an inexpensive secure platform for embedded devices, and a solution to this requirement is needed.
マイクロコンピュータ、ROM、RAMなどのメモリからなる一般的な情報処理プラットフォームにおいては、ROM内のデータを静的に読み出せることや、正常動作時にマイクロコンピュータ、メモリ間でやり取りされるデータをプラットフォーム外から直接に観測、解析可能であることは攻撃の糸口になり、これらを防止することは重要であるが、動作状況の動的解析に繋がる大きな脅威としては、プラットフォーム上での、任意の解析機能を具備したコードの実行が挙げられる。 In a general information processing platform consisting of memories such as a microcomputer, ROM, and RAM, data in the ROM can be read statically, and data exchanged between the microcomputer and memory during normal operation can be performed from outside the platform. It is important to be able to observe and analyze directly, and it is important to prevent them. However, as a major threat that leads to dynamic analysis of the operation status, any analysis function on the platform can be used. Execution of the provided code.
従い、データ処理の正当性を保証するセキュアプラットフォーム技術においては、データ/コードの観測、解析、改竄といった攻撃を防止するために、悪意ある、任意のコードの、プラットフォーム上での実行を阻止することが主要な技術となる。 Therefore, in secure platform technology that guarantees the correctness of data processing, in order to prevent attacks such as data / code observation, analysis, and falsification, the execution of malicious arbitrary code on the platform should be prevented. Is the main technology.
これは実行されるコードの正当性をその都度認証し、その正当性が証明されたもののみ実行を許可することで実現され得るが、この場合、コードの正当性を判断するのは、それ以前に実行されていたコードであり、信頼性保証の根源は、プラットフォームを起動させるブートプログラム、ローダプログラムと称されるソフトウェアコードの正当性に存在することになる。 This can be accomplished by authenticating the code being executed each time and allowing only those that have been proved to be valid. The root of the reliability guarantee lies in the legitimacy of software code called a boot program or loader program that activates the platform.
このようなブートプログラムの改竄を防止する技術の一つとして、特開平2003−108257号公報(特許文献1)に開示されるデジタルデバイスのセキュリティを守るための、安全なブートローダがある。 As one of techniques for preventing such a boot program from being falsified, there is a safe boot loader for protecting the security of a digital device disclosed in Japanese Patent Laid-Open No. 2003-108257 (Patent Document 1).
この特許文献1の技術は、マイクロコンピュータと同一の半導体チップ上に設けられた不揮発メモリ上にブートローダを記憶し、ブートローダは、プロセッサ外に接続される不揮発メモリなどに保管されるオペレーティングシステムなどのソフトウェアコードの正当性を認証する機能を有する。このブートローダは、認証対象となるソフトウェアコードの正当性が確認された場合にのみ、ソフトウェアコードに制御を移し、認証に失敗した場合には動作を完了する。 The technology of Patent Document 1 stores a boot loader on a nonvolatile memory provided on the same semiconductor chip as a microcomputer, and the boot loader is software such as an operating system stored in a nonvolatile memory connected outside the processor. It has a function to authenticate the validity of the code. This boot loader transfers control to the software code only when the validity of the software code to be authenticated is confirmed, and completes the operation when authentication fails.
すなわち、このブートローダが搭載された情報処理装置などでは、認証に失敗した場合は、その後のソフトウェアコードによる制御が一切行われないため、情報処理装置が起動せずに動作が完了してしまい、例えば、音楽プレーヤなどでは、通常の音楽の再生といった正当性保証が必要ない機能も使用不可能になってしまい、本来情報処理装置として期待される機能を一切実現しないものとなっている。
前述した従来のデジタルデバイスのセキュリティを守るための、安全なブートローダによれば、ブートローダを記憶する不揮発メモリは、マイクロコンピュータと同一の半導体チップ上に設けられることにより、改竄耐性を持ち、ブートローダが、その次にロードされるオペレーティングシステムを認証することから、実行されるコードの正当性を保証可能である。 According to the safe boot loader for protecting the security of the conventional digital device described above, the non-volatile memory storing the boot loader is provided on the same semiconductor chip as the microcomputer, so that it has tamper resistance, By authenticating the next loaded operating system, it is possible to guarantee the correctness of the code being executed.
しかしながら、特許文献1の技術では、コードが認証されない場合に単純に動作が完了してしまい、ユーザによるシステムの可用性上、問題がある。また、ブートローダを記憶する不揮発メモリに改竄耐性があるとするが、プロセッサにて実行される以上、デバッグツールによる解析の対象となり、対デバッガ対策を講じたとしても、実装上の不備を突いた攻撃の可能性を否定することは不可能である。 However, in the technique of Patent Document 1, the operation is simply completed when the code is not authenticated, and there is a problem in the availability of the system by the user. Also, the nonvolatile memory that stores the boot loader is supposed to be tamper-resistant, but as long as it is executed by the processor, it will be the target of analysis by the debug tool, and even if countermeasures against debuggers are taken, attacks that deficient in implementation It is impossible to deny the possibility of.
そこで、本発明の目的は、実行されるコードの正当性保証とユーザによるシステムの可用性を両立すると共に、マイクロコンピュータへのデバッグツール類による攻撃に対する耐性を有する、ブートプログラム、ローダプログラムと称されるソフトウェアコードの改竄防止方法を提供することにある。 Therefore, an object of the present invention is referred to as a boot program or a loader program that achieves both the guarantee of the correctness of the code to be executed and the availability of the system by the user and has resistance to attacks by the debugging tools on the microcomputer. The object is to provide a software code falsification prevention method.
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。 Of the inventions disclosed in the present application, the outline of typical ones will be briefly described as follows.
本発明によるマイクロコンピュータは、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備え、中央演算処理装置での、第1のプログラムの実行に先立ち、シーケンス処理装置により、第1のプログラムの認証を行い、その認証結果に基づいて、所定の機能を無効に設定して、中央演算処理装置による制御に移行するものである。 A microcomputer according to the present invention includes a central processing unit and a sequence processing unit that operates independently of the central processing unit, and prior to execution of the first program in the central processing unit, The first program is authenticated, a predetermined function is set to invalid based on the authentication result, and the process shifts to control by the central processing unit.
また、本発明によるマイクロコンピュータは、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備え、中央演算処理装置での、第1のプログラムの実行に先立ち、シーケンス処理装置により、第1のプログラムの認証を行い、その認証結果に基づいて、中央演算処理装置により、第2のプログラムを実行するものである。 The microcomputer according to the present invention includes a central processing unit and a sequence processing unit that operates independently of the central processing unit, and performs sequence processing prior to execution of the first program in the central processing unit. The first program is authenticated by the apparatus, and the second program is executed by the central processing unit based on the authentication result.
また、本発明によるマイクロコンピュータのソフトウェア改竄防止方法は、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備えたマイクロコンピュータのソフトウェア改竄防止方法であって、中央演算処理装置での、第1のプログラムの実行に先立ち、シーケンス処理装置により、第1のプログラムの認証を行い、その認証結果に基づいて、所定の機能を無効に設定して、中央演算処理装置による制御に移行するものである。 A microcomputer software tampering prevention method according to the present invention is a microcomputer software tampering prevention method comprising a central processing unit and a sequence processing unit that operates independently of the central processing unit, Prior to execution of the first program in the processing device, the sequence processing device authenticates the first program, and on the basis of the authentication result, the predetermined function is disabled and the central processing unit performs Transition to control.
また、本発明によるマイクロコンピュータのソフトウェア改竄防止方法は、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備えたマイクロコンピュータのソフトウェア改竄防止方法であって、中央演算処理装置での、第1のプログラムの実行に先立ち、シーケンス処理装置により、第1のプログラムの認証を行い、その認証結果に基づいて、中央演算処理装置により、マイクロコンピュータに接続されたネットワークを介して受信した第2のプログラムを実行するものである。 A microcomputer software tampering prevention method according to the present invention is a microcomputer software tampering prevention method comprising a central processing unit and a sequence processing unit that operates independently of the central processing unit, Prior to the execution of the first program in the processing device, the sequence processing device authenticates the first program, and based on the authentication result, the central processing unit passes the network connected to the microcomputer. The second program received is executed.
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。 Among the inventions disclosed in the present application, effects obtained by typical ones will be briefly described as follows.
本発明によれば、情報処理装置において、実行されるコードの正当性保証など必要なセキュリティ性能を強固に保ちつつ、ユーザによる情報処理装置の利用に過度の制限を加えずにセキュリティ上問題のない利用の継続を許可するなど、柔軟な処理が可能となり、著作権管理システムなどでは、コンテンツホルダの権利保持とユーザ利便性の両立を図ることが可能である。 According to the present invention, in the information processing apparatus, there is no security problem without excessively restricting the use of the information processing apparatus by the user while maintaining necessary security performance such as guaranteeing the validity of the code to be executed. Flexible processing such as permitting continuation of use is possible, and in a copyright management system or the like, it is possible to achieve both the rights holding of the content holder and user convenience.
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted.
(実施の形態1)
<マイクロコンピュータを搭載した情報処理装置の構成>
図1により、本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の構成について説明する。図1は本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の構成を示す構成図である。
(Embodiment 1)
<Configuration of information processing device equipped with microcomputer>
With reference to FIG. 1, the configuration of an information processing apparatus equipped with a microcomputer according to Embodiment 1 of the present invention will be described. FIG. 1 is a block diagram showing the configuration of an information processing apparatus equipped with a microcomputer according to Embodiment 1 of the present invention.
図1において、情報処理装置101は、マイクロコンピュータ102を搭載し、揮発性記憶装置107、不揮発性記憶装置108を備え、マイクロコンピュータ102、揮発性記憶装置107、不揮発性記憶装置108などの情報処理装置101を構成する各機能ブロックは、それぞれの間で命令やデータをやり取りするための命令・データバス線(以下、データバス)111により接続されている。
In FIG. 1, an
なお、図1では、情報処理装置101を構成するのに最低限必要な機能構成を示しており、これ以外の機能ブロックを有してもよい。
Note that FIG. 1 shows the minimum functional configuration required to configure the
情報処理装置101に搭載されるマイクロコンピュータ102は、半導体パッケージに封止されたLSIであり、中央演算処理装置(以下、CPUとする)103、暗号処理装置104、ハッシュ関数処理装置105、シーケンス処理装置である認証シーケンサ装置112の機能ブロックを含み、秘密情報106が保持されている。
A
CPU103は、ソフトウェアコードを読み込み、定められた処理を実行する。
The
暗号処理装置104は、入力された暗号鍵と処理対象データに対し、所定の暗号アルゴリズムに基づいた処理を行ない、処理結果データを出力する。この暗号処理装置104はCPU103からの処理命令に応じて動作し、また、マイクロコンピュータ102外と直接データをやり取りする機能を有しない。
The
暗号処理装置104の動作は、CPU103から見てブラックボックスであり、暗号処理の中間状態などは観察されない。また、LSI内の機能ブロックであり、かつ、マイクロコンピュータ102外と直接データをやり取りしないことから、同様に、マイクロコンピュータ102外部から暗号処理の中間状態などは観察されない。暗号アルゴリズムの選択は任意である。
The operation of the
ハッシュ関数処理装置105は、入力された処理対象データに対し、所定のハッシュ関数アルゴリズムに基づいた処理を行ない、処理結果データを出力する。暗号処理装置104と同様に、ハッシュ関数処理装置105の動作は、CPU103から見てブラックボックスであり、かつ、マイクロコンピュータ外部からハッシュ関数処理の中間状態などは観察されない。
The hash
ハッシュ関数アルゴリズムの選択は任意であるが、ハッシュ関数処理装置105においては、通常のハッシュ関数アルゴリズムに加え、鍵付きハッシュ関数と称される、秘密情報の共有と処理対象データの完全性を同時に認証することのできるアルゴリズムの処理も可能である。
Although the selection of the hash function algorithm is arbitrary, the hash
秘密情報106は、マイクロコンピュータ102内で秘密裏に保持される情報で、情報処理装置101によって実現されるアプリケーションが必要とする任意の秘密情報であり、暗号処理装置104、ハッシュ関数処理装置105にて用いられる暗号鍵、何らかの処理に必要なIDや定数値などであってよい。
The
秘密情報106をマイクロコンピュータ102内で秘密裏に保持する機能としては、ROMなどの書換え不可能な不揮発性メモリを設け保管、EEPROM、フラッシュメモリなどの書換え可能な不揮発性メモリを設け保管、フリップフロップ素子によるハードウェアレジスタの初期値として保管、など任意の手法を用いてよい。
The
揮発性記憶装置107は、マイクロコンピュータ102が、演算処理を行なう際にワーク領域として用いるSDRAMなどの揮発性の記憶装置である。
The
不揮発性記憶装置108は、マイクロコンピュータ102が、処理を行なう際に必要となるOSやアプリケーション、データを保管するための、フラッシュメモリ、ハードディスクなどの不揮発性の記憶装置である。
The
不揮発性記憶装置108には、情報処理装置101の起動時に、CPU103に読み込まれ、その後に実行すべきソフトウェアを指定する第1のプログラムであるブートローダプログラム(以下、ブートローダとする)109、CPU103に読み込まれ、処理されるオペレーティングシステムプログラム(以下、OSとする)110が格納されている。
The
OS110は、ブートローダ109によって読出しを指定される。情報処理装置101の用途によっては、OS110を搭載せずにアプリケーションプログラムのみ搭載するようなシステムも存在する。本実施の形態においては、OS110をアプリケーションプログラムと読み替えることで、そのようなOSレスのシステムについても同様に考えることが可能である。
The
認証シーケンサ装置112は、情報処理装置101の起動時に動作し、ブートローダ109の正当性を認証する機能を有する。この認証シーケンサ装置112はCPU103とは独立して動作し、秘密情報106に独自にアクセスする機能、暗号処理装置104、ハッシュ関数処理装置105に対して必要な命令を発行し、出力結果値を入力する機能を有する。また、不揮発性記憶装置108にアクセスし、所定のプログラム、データなどを入力する機能を有する。
The
なお、情報処理装置101の構成要素であるマイクロコンピュータ102、CPU103、暗号処理装置104、ハッシュ関数処理装置105、秘密情報106、揮発性記憶装置107、不揮発性記憶装置108、認証シーケンサ装置112は論理的構成を示し、必ずしも物理的に図と同一構成である必要はない。例えば、秘密情報106は物理的には暗号処理装置104やハッシュ関数処理装置105に保管されていてもよい。また、暗号処理装置104やハッシュ関数処理装置105などの処理機能は、専用のハードウェアによる実装としてもよいし、独立したCPUと、メモリに保管されるプログラムによる実装としてもよく、物理的な構成方法は問わない。
Note that the
<マイクロコンピュータを搭載した情報処理装置の動作>
次に、図2〜図5により、本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の動作について説明する。図2〜図5は本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
<Operation of information processing device equipped with microcomputer>
Next, the operation of the information processing apparatus equipped with the microcomputer according to the first embodiment of the present invention will be described with reference to FIGS. 2 to 5 are flowcharts showing the operation of the information processing apparatus equipped with the microcomputer according to the first embodiment of the present invention.
まず、図2に示すように、情報処理装置101は、電源が投入されると、電源投入時に必要な各機能モジュールの初期化を行ない、各機能モジュールが正常に動作するかを確認する(ステップ201)。
First, as shown in FIG. 2, when the power is turned on, the
次に、各機能モジュールの初期化完了後、認証シーケンサ装置112の指示に従い、ブートローダ109が改竄されておらず、完全性を有しているか否かを認証する(ステップ202)。
Next, after the initialization of each functional module is completed, according to the instruction of the
以下、具体的手順の一例を示す。まず、前提条件を2つ示す。ブートローダ109は、ブートローダ本体と、予め定められた秘密鍵を用いて求められたブートローダ本体の鍵付きハッシュ値とから構成される。また、予め定められた秘密鍵は、秘密情報106に予め保管されている。
An example of a specific procedure is shown below. First, two preconditions are shown. The
次に、動作手順を説明する。認証シーケンサ装置112は、不揮発性記憶装置108にアクセスし、ブートローダ109領域からブートローダ本体を読み込む。次に、認証シーケンサ装置112は、秘密情報106に保管されている予め定められた秘密鍵を取り出し、ブートローダ本体と予め定められた秘密鍵を、ハッシュ関数処理装置105に入力し、上記2つの入力値から、鍵付きハッシュ値を求める。
Next, an operation procedure will be described. The
次に、認証シーケンサ装置112は、不揮発性記憶装置108にアクセスし、ブートローダ109領域からブートローダ本体の鍵付きハッシュ値を読み込み、先に求めた鍵付きハッシュ値との比較を行なう。2つの鍵付きハッシュ値が一致すれば、ブートローダ本体の完全性は証明され、また、ブートローダ109は、情報処理装置101と予め定められた秘密鍵を共有する主体によって生成されたことも証明される。
Next, the
また、完全性検証手順としては、以下の手順を用いてもよい。 Further, the following procedure may be used as the integrity verification procedure.
まず、前提条件を2つ示す。ブートローダ109は、ブートローダ本体と、ブートローダ本体のハッシュ値とから構成され、更にこれら2つのデータを予め定められた暗号鍵によって暗号化された暗号化データとなっている。
First, two preconditions are shown. The
また、予め定められた暗号鍵は、秘密情報106に予め保管されている。
A predetermined encryption key is stored in the
次に、動作手順を説明する。認証シーケンサ装置112は、不揮発性記憶装置108にアクセスし、ブートローダ109領域から暗号化されたブートローダ本体、および、ブートローダ本体のハッシュ値を読み込む。
Next, an operation procedure will be described. The
次に、認証シーケンサ装置112は、秘密情報106に保管されている予め定められた暗号鍵を取り出し、暗号化されたブートローダ本体とブートローダ本体のハッシュ値と予め定められた暗号鍵を、暗号処理装置104に入力し、上記2つの入力値から、ブートローダ本体、および、ブートローダ本体のハッシュ値を求める。
Next, the
次に、認証シーケンサ装置112は、得られたブートローダ本体を、ハッシュ関数処理装置105に入力し、ブートローダ本体のハッシュ値を求める。
Next, the
次に、認証シーケンサ装置112は、先に暗号化されたブートローダ本体、および、ブートローダ本体のハッシュ値から得られたハッシュ値と、ハッシュ関数処理装置105の出力として得られたハッシュ値との比較を行なう。2つのハッシュ値が一致すれば、ブートローダ本体の完全性は証明され、また、ブートローダ109は、情報処理装置101と予め定められた暗号鍵を共有する主体によって生成されたことも証明される。
Next, the
秘密情報106に保管する暗号鍵は、暗号アルゴリズムとして共通鍵アルゴリズムを用いるのであれば、ブートローダ本体、および、ブートローダ本体のハッシュ値の暗号化に用いるものと同一の鍵であり、暗号アルゴリズムとして公開鍵アルゴリズムを用いるのであれば、鍵ペアの片方である。処理速度の観点からは、一般的に共通鍵暗号アルゴリズムを選択した方が有利であることはいうまでもない。
If the common key algorithm is used as the encryption algorithm, the encryption key stored in the
ステップ202の認証処理の結果より、認証成功の場合にはステップ204へ、認証失敗の場合にはステップ205へと遷移する(ステップ203)。
Based on the result of the authentication process in
ステップ202の処理において認証成功の場合、認証シーケンサ装置112の指示により、マイクロコンピュータ102内の特定の機能が有効となる(ステップ204)。ここで有効となる機能の種類は任意であるが、例えば、以下のようなものとしてもよい。
When the authentication is successful in the process of
情報処理装置101の主たるアプリケーションがセキュリティ処理機能、性能に大きく依存する場合に、その機能実現に重要な役割を果たす、暗号処理装置104、ハッシュ関数処理装置105などのセキュリティ関連処理機能や、秘密情報106に保管される、何らかの認証処理に必要な共有情報等へのアクセス機能が有効となる。
When the main application of the
機能の有効、無効を切り替える方法としては以下のような方式を利用してもよい。暗号処理装置104、ハッシュ関数処理装置105や秘密情報106を保管する記憶実体は、自身へのCPU103からのアクセスの有効、無効を設定する設定レジスタを具備し、設定レジスタは、認証シーケンサ装置112の指示によってのみ変更される。
The following method may be used as a method for switching between valid and invalid of the function. The storage entity that stores the
これにより、装置類は、CPU103から見た場合の、機能的な接続、分離が実現される。また、特定機能として、図1には示していない、ブートローダ認証成否結果を示すレジスタを設け、レジスタに処理結果に当する値を設定してもよい。
As a result, the devices can be functionally connected and separated when viewed from the
次に、ステップ203、またはステップ204からの遷移により、マイクロコンピュータ102内の特定の機能以外の機能が有効となる(ステップ205)。この処理は、ステップ204で示した設定レジスタと同様に、その他の装置類の機能の有効、無効を明示的に設定してもよいし、特に設定レジスタ類は設けず、無効化処理がないことで結果として当装置類の機能が有効となるとしてもよい。
Next, a function other than a specific function in the
ステップ205までの処理が完了すると、認証シーケンサ装置112は、CPU103に制御を移す。CPU103は、不揮発性記憶装置108からブートローダ109を読み込み、ブート処理を行なう(ステップ206)。
When the processing up to step 205 is completed, the
ステップ202の説明において、ブートローダ109が暗号化されて保管されている場合を示したが、そのような場合には、マイクロコンピュータ102内に、図1には示していない小容量のRAMを設け、そのRAM内に、ステップ202にて復号したブートローダを保管しておき、CPU103が、不揮発性記憶装置108の代わりにRAMからブートローダ109を読み込むという処理を行なってもよい。
In the description of
更に、CPU103は、ブートローダ109に示される指示に従い、処理を進め、OS110をロードし、その他、情報処理装置101に必要なアプリケーションを実行する(ステップ207)。
Further, the
なお、図2には示していないが、認証シーケンサ装置112がステップ202にてブートローダ109に対して行なった認証処理と同様に、ステップ206にてCPU103がブートローダ109の指示によりOS110に対して、また、ステップ207にてCPU103がOS110の指示により任意のアプリケーションに対して、認証処理を行なうことで、情報処理装置101の起動後に実行されるプログラムの改竄有無を確認することが可能であり、実行されるプログラムの完全性を保証可能な情報処理装置を実現可能である。
Although not shown in FIG. 2, similar to the authentication process performed by the
また、ステップ204に示したブートローダ認証成否結果を示すレジスタを設けた場合、OSやアプリケーションが同レジスタ値を直接参照することで、実行内容を選択する、といった機能を追加することも可能である。
Further, when the register indicating the boot loader authentication success / failure result shown in
ここで、具体例として、本実施の形態に係るマイクロコンピュータ102を搭載した情報処理装置101を、著作権保護機能で管理された有価値コンテンツを取り扱うコンテンツ再生機器に適用した場合を考える。
Here, as a specific example, consider a case where the
このような応用の場合、不揮発性記憶装置108には、暗号化された有価値コンテンツ、有価値コンテンツを再生するための再生プログラム、秘密情報106には、暗号化された有価値コンテンツを復号するための暗号鍵が保管され、暗号化された有価値コンテンツは、CPU103、暗号処理装置104の機能により復号され、図1には示していない、表示装置、音声再生装置により再生される、というのが一般的な形式である。
In such an application, the
情報処理装置101におけるブートローダ109が、悪意の有無は問わず何らかの理由により改竄され、ステップ203の処理にて認証に失敗した場合、OS、アプリ類は実行されるが、ステップ204に示す重要な一部機能が無効化されている。
If the
ここで無効化されるのが、秘密情報106に保管されている、有価値コンテンツの再生に必要な暗号鍵へのアクセス機能とすることで、有価値コンテンツの再生は不可能となる。著作権保護機能への攻撃可能性検知を、有価値コンテンツの不正使用に繋がると判断し、コンテンツ再生機器としての機能を制限することとなる。
In this case, the invalidation of the valuable value content becomes impossible by using an access function to the encryption key necessary for reproducing the valuable value content stored in the
しかしながら、ステップ205において、有価値コンテンツの再生とは直接関係しない、情報処理装置101の他の機能は有効化され、ユーザに対し、有価値コンテンツの再生以外の機能を提供することは妨げない。以上により、著作権保護などの重要な機能を実現しつつ、ユーザの利便性を過度に制限しないことを特徴とする情報処理装置が実現可能である。
However, in
また、このような応用の場合、情報処理装置101に用いるマイクロコンピュータ102には、暗号処理装置104、ハッシュ関数処理装置105、秘密情報106のようなセキュリティ処理に関する機能は必然的に具備されている。従って、ブートローダ109を認証するために追加が必要な装置は認証シーケンサ装置112のみであり、小さな追加コストにて、実行されるアプリケーション認証の基盤に当たるブートローダの認証機能を実現可能である。
In such an application, the
更に、認証シーケンサ装置112はCPU103とは独立して動作し、また、その内部動作をCPU103から検知する機能を有しないことから、CPU向けのデバッガなどを用いて認証シーケンサ装置112の動作解析を行なうことは不可能である。
Further, since the
また、暗号処理装置104、ハッシュ関数処理装置105、認証シーケンサ装置112をそれぞれ専用のハードウェア回路で構成した場合、一般的なCPUでのソフトウェア処理と比較して高速処理が期待でき、情報処理装置101の起動時間短縮といったユーザビリティ上の効果が見込める。
In addition, when each of the
以上、本実施の形態に係るマイクロコンピュータ102を搭載した情報処理装置101の動作を説明したが、図3に示すような動作としてもよい。
The operation of the
図3において、ステップ301は、図2に示したステップ201、ステップ303からステップ308はそれぞれ、図2に示したステップ202からステップ207と概略同一の動作であり、詳細な説明は省略する。但し、ステップ304の遷移先ステップは、ステップ305、ステップ306となる。
3,
ステップ302において、各機能モジュールの初期化完了後、マイクロコンピュータ102はブートローダ109の認証が必要であるかを判定し、必要である場合には、ステップ303に、不要である場合には、ステップ306に遷移する(ステップ302)。
In
上記手順は、電源投入後の機能モジュールの初期化完了後に、不揮発性記憶装置108に保管されたブートローダ109にアクセスするのが、認証シーケンサ装置112であるか、CPU103であるかを決定するステップである。
The above procedure is a step of determining whether the
前者であれば、本実施の形態の特徴であるブートローダ109の認証処理(ステップ303)が実行され、後者であれば、一般的な情報処理装置での起動処理が実行される。
If the former, authentication processing (step 303) of the
図3に示す動作を採ることで、ブートローダを認証する機能を有するマイクロコンピュータ102であっても、マイクロコンピュータ102を搭載する情報処理装置で、一般的な情報処理装置の起動処理が実現可能となり、マイクロコンピュータの汎用性が向上する効果が得られる。
By adopting the operation shown in FIG. 3, even if the
また、マイクロコンピュータ102がブートローダ109の認証が必要であるかを判定する手法としては、マイクロコンピュータ102に、図1には示していない、機能ピンを設け、電源投入時の機能ピンの論理入力により、機能切り替えを行なうという手法を用いてもよい。
Further, as a method for determining whether the
同様に、本実施の形態に係る情報処理装置の動作は、図4に示すような動作としてもよい。 Similarly, the operation of the information processing apparatus according to the present embodiment may be as shown in FIG.
図4において、ステップ601からステップ607はそれぞれ、図2に示したステップ201からステップ207と概略同一の動作であり、詳細な説明は省略する。但し、ステップ603の遷移先ステップは、ステップ604、ステップ608となる。
In FIG. 4,
ステップ608において、情報処理装置101は、図1に示していない、表示装置、音声出力装置を通して、ユーザに認証処理に失敗し、特定の機能が有効となっていないことに関するメッセージを伝達する。
In
上記の機能は、ユーザに情報処理装置101の機能状態を伝達することでシステム利便性の向上に効果がある。
The above functions are effective in improving system convenience by transmitting the function state of the
また、本実施形態に係る情報処理装置の動作は、図5に示すような動作としてもよい。 Further, the operation of the information processing apparatus according to the present embodiment may be an operation as shown in FIG.
図5において、ステップ701からステップ707はそれぞれ、図2に示したステップ201からステップ207と概略同一の動作であり、詳細な説明は省略する。但し、ステップ707の遷移先ステップは、ステップ708となる。
In FIG. 5,
ステップ708において、情報処理装置101は、図1に示していない、表示装置、音声出力装置を通して、ユーザに認証処理に失敗し、特定の機能が有効となっていないことに関するメッセージを伝達する。
In
上記の機能は、図4の動作と同様に、ユーザに情報処理装置101の機能状態を伝達することでシステム利便性の向上に効果がある。
Similar to the operation of FIG. 4, the above function is effective in improving system convenience by transmitting the function state of the
更に、ステップ708においては、情報処理装置101の有するOS、周辺機器などの機能を用いてユーザにメッセージを伝達することが可能であることから、ステップ608の処理と比較して処理コストが低いという利点がある。
Further, in
以上、本実施の形態によれば、強固かつ安価なブートローダ認証機能を有すると共に、ユーザによる情報処理装置の利用に過度の制限を加えないことを特徴とするマイクロコンピュータを搭載した情報処理装置を実現可能である。 As described above, according to the present embodiment, an information processing apparatus equipped with a microcomputer that has a robust and inexpensive boot loader authentication function and does not place excessive restrictions on the use of the information processing apparatus by a user is realized. Is possible.
(実施の形態2)
<マイクロコンピュータを搭載した情報処理装置の構成>
図6により、本発明の実施の形態2に係るマイクロコンピュータを搭載した情報処理装置の構成について説明する。図6は本発明の実施の形態2に係るマイクロコンピュータを搭載した情報処理装置の構成を示す構成図である。
(Embodiment 2)
<Configuration of information processing device equipped with microcomputer>
With reference to FIG. 6, the configuration of the information processing apparatus including the microcomputer according to the second embodiment of the present invention will be described. FIG. 6 is a block diagram showing a configuration of an information processing apparatus equipped with a microcomputer according to Embodiment 2 of the present invention.
図6において、情報処理装置401は、実施の形態1の図1に示す情報処理装置101にネットワーク装置402を加え、ネットワーク404を介して、サーバ装置403と情報をやり取りする機能を追加したものであり、それ以外の構成は、実施の形態1の図1に示したものと同一であり、詳細な説明は省略する。
In FIG. 6, the
なお、図6では、情報処理装置401を構成するのに最低限必要な機能構成を示しており、これ以外の機能ブロックを有してもよい。
Note that FIG. 6 shows the minimum functional configuration required to configure the
ネットワーク装置402は、情報処理装置401に具備され、CPU101の指示に従い、情報処理装置401の外部に接続されたネットワーク404を介し、他の情報処理装置とやり取りをする。
The
サーバ装置403は、ネットワーク404を介して情報処理装置401と接続され、何らかのやり取りをする情報処理装置である。
The
ネットワーク404は、ネットワーク装置402、サーバ装置403、ネットワーク装置402とサーバ装置403やその他のネットワーク対応情報処理装置などが接続されるネットワークである。
The
ネットワーク装置402、サーバ装置403、ネットワーク404が対応するネットワーク機能は任意であり、例えば、物理媒体としては、有線媒体であっても、無線媒体であってもよいし、同媒体上で実際に情報をやり取りする通信プロトコルの種類も任意である。
The network functions supported by the
<マイクロコンピュータを搭載した情報処理装置の動作>
次に、図7により、本発明の実施の形態2に係るマイクロコンピュータを搭載した情報処理装置の動作について説明する。図7は本発明の実施の形態2に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
<Operation of information processing device equipped with microcomputer>
Next, the operation of the information processing apparatus including the microcomputer according to the second embodiment of the present invention will be described with reference to FIG. FIG. 7 is a flowchart showing the operation of the information processing apparatus equipped with the microcomputer according to the second embodiment of the present invention.
図7において、ステップ501からステップ507はそれぞれ、図2に示したステップ201からステップ207と概略同一の動作であり、詳細な説明は省略する。但し、ステップ503の遷移先ステップは、ステップ504、ステップ508となる。
In FIG. 7,
ステップ508において、認証シーケンサ装置112は、CPU103に処理を移し、CPU103は特定のアプリケーションを実行し、終了する。
In
ステップ504からステップ507に遷移しないことから、情報処理装置401の具備する特定機能が有効化されることはなく(ステップ504)、また、本来起動されるべきOSやアプリケーションプログラムが起動されることもない(ステップ507)。
Since there is no transition from
ステップ508にて実行されるアプリケーションとしては以下のようなものを実行してもよい。
As the application executed in
情報処理装置401は、ネットワーク装置402を介して、サーバ装置403と接続し、サーバ装置403に対し、所定の情報、例えば、情報処理装置401の起動ログ情報や、機器固有のIDなどの情報を送信する。これに対し、サーバ装置403は、トラブルの内容を解析し、情報処理装置401に対して正常なブートローダをネットワーク404経由で送信し、不揮発性記憶装置108の内容を書き換える、所謂ホットフィックス処理を行なう。
The
若しくは、図6に示していない、表示装置、音声出力装置を通して、ユーザにトラブルに対する対処方法に関するメッセージを伝達する。上記の機能は情報処理装置401に対する、システムとしてのメンテナンスコストの低減に効果がある。
Alternatively, a message relating to a troubleshooting method is transmitted to the user through a display device and an audio output device not shown in FIG. The above function is effective in reducing the maintenance cost of the
以上の処理により、情報処理装置401のブートローダ109に、ユーザの意図しない不具合があった場合に、ネットワーク経由で自動的、または半自動的に、不具合を修正する機能を提供することが可能であり、ユーザのシステム可用性が向上する効果が得られる。
With the above processing, it is possible to provide a function for correcting a problem automatically or semi-automatically via a network when the
一方、ステップ508への遷移が、悪意によるブートローダ109の改竄に起因するような場合には、ステップ508で実行される特定のアプリケーションの内容も改竄されており、本来期待されるネットワーク経由の不具合修正機能が正常に実行されない危険性がある。しかしながら、その場合でも、ステップ504に遷移するパスが存在しないことから、セキュリティ上重要な機能が不正に有効化されることはなく、セキュリティ性能の劣化は生じない。
On the other hand, if the transition to step 508 is caused by malicious alteration of the
以上、本実施の形態によれば、強固かつ安価なブートローダ認証機能を有すると共に、不具合発生時に自動的に情報機器に対して修正処理を行なうなど、ユーザによる情報処理装置の利用性を向上させることを特徴とする情報処理装置を実現可能である。 As described above, according to the present embodiment, it is possible to improve the usability of the information processing apparatus by the user, such as having a robust and inexpensive boot loader authentication function and automatically performing correction processing on the information device when a failure occurs. It is possible to realize an information processing apparatus characterized by the above.
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。 As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.
本発明は、任意のソフトウェアコードに基づき何らかの情報処理を行なうマイクロコンピュータに関し、特に、マイクロコンピュータを搭載した情報処理装置を起動させる際に用いるブートプログラム、ローダプログラムと称されるソフトウェアコードの改竄防止を行う情報処理装置に適用可能である。 The present invention relates to a microcomputer that performs some information processing based on an arbitrary software code, and in particular, to prevent falsification of a software code called a boot program or a loader program used when starting an information processing apparatus equipped with the microcomputer. The present invention can be applied to an information processing apparatus to be performed.
101…情報処理装置、102…マイクロコンピュータ、103…CPU、104…暗号処理装置、105…ハッシュ関数処理装置、106…秘密情報、107…揮発性記憶装置、108…不揮発性記憶装置、109…ブートローダ、110…OS、111…データバス、112…認証シーケンサ装置、401…情報処理装置、402…ネットワーク装置、403…サーバ装置、404…ネットワーク。
DESCRIPTION OF
Claims (2)
前記中央演算処理装置とは独立に動作するシーケンス処理装置とを備え、
前記中央演算処理装置での、第1のプログラムの実行に先立ち、前記シーケンス処理装置により、前記第1のプログラムの認証を行い、その認証結果に基づいて、暗号処理装置による暗号処理機能、またはハッシュ関数処理装置によるハッシュ関数処理機能の有効または無効を設定して、前記中央演算処理装置による制御に移行することを特徴とするマイクロコンピュータ。 A central processing unit;
A sequence processor that operates independently of the central processing unit;
Prior to execution of the first program in the central processing unit, the sequence processing device authenticates the first program, and based on the authentication result, the cryptographic processing function or hash by the cryptographic processing device A microcomputer characterized by setting the validity or invalidity of a hash function processing function by a function processing device and shifting to control by the central processing unit.
前記中央演算処理装置での、第1のプログラムの実行に先立ち、前記シーケンス処理装置により、前記第1のプログラムの認証を行い、その認証結果に基づいて、暗号処理装置による暗号処理機能、またはハッシュ関数処理装置によるハッシュ関数処理機能の有効または無効を設定して、前記中央演算処理装置による制御に移行することを特徴とするマイクロコンピュータのソフトウェア改竄防止方法。 A microcomputer software tampering prevention method comprising a central processing unit and a sequence processing unit that operates independently of the central processing unit,
Prior to execution of the first program in the central processing unit, the sequence processing device authenticates the first program, and based on the authentication result, the cryptographic processing function or hash by the cryptographic processing device A method for preventing falsification of microcomputer software, comprising setting whether the function of the hash function processing function by the function processing device is valid or invalid and shifting to control by the central processing unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006139648A JP4791250B2 (en) | 2006-05-19 | 2006-05-19 | Microcomputer and its software falsification prevention method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006139648A JP4791250B2 (en) | 2006-05-19 | 2006-05-19 | Microcomputer and its software falsification prevention method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007310688A JP2007310688A (en) | 2007-11-29 |
JP4791250B2 true JP4791250B2 (en) | 2011-10-12 |
Family
ID=38843475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006139648A Expired - Fee Related JP4791250B2 (en) | 2006-05-19 | 2006-05-19 | Microcomputer and its software falsification prevention method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4791250B2 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719585B2 (en) * | 2008-02-11 | 2014-05-06 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
BR112013020354B1 (en) * | 2011-02-16 | 2021-02-02 | Nec Platforms, Ltd | method for validating / invalidating an additional function unit, system for validating / invalidating an additional function unit and additional function unit |
US9141394B2 (en) * | 2011-07-29 | 2015-09-22 | Marvell World Trade Ltd. | Switching between processor cache and random-access memory |
JP5062707B2 (en) * | 2012-06-29 | 2012-10-31 | Necインフロンティア株式会社 | Method for enabling / disabling additional function unit, system and program thereof, and additional function unit |
JP6124338B2 (en) * | 2013-07-18 | 2017-05-10 | 株式会社メガチップス | Information processing system |
JP6354438B2 (en) * | 2014-08-08 | 2018-07-11 | 大日本印刷株式会社 | Information processing apparatus, information processing system, and processing program |
JP6391889B2 (en) | 2016-04-19 | 2018-09-19 | 三菱電機株式会社 | Relay device |
JP7152920B2 (en) * | 2018-09-28 | 2022-10-13 | キヤノン株式会社 | Information processing device, its control method, and program |
CN111651185B (en) * | 2020-05-30 | 2022-11-11 | 展讯通信(上海)有限公司 | Software upgrading method and device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108506A (en) * | 1991-10-15 | 1993-04-30 | Casio Comput Co Ltd | Automatic driver repairing device |
JPH09190354A (en) * | 1996-01-08 | 1997-07-22 | Nec Corp | Down line load system |
JP4507569B2 (en) * | 2003-11-19 | 2010-07-21 | ソニー株式会社 | Information processing apparatus, information processing method, program, and recording medium |
JP2005227995A (en) * | 2004-02-12 | 2005-08-25 | Sony Corp | Information processor, information processing method and computer program |
-
2006
- 2006-05-19 JP JP2006139648A patent/JP4791250B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007310688A (en) | 2007-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915633B2 (en) | Method and apparatus for device security verification utilizing a virtual trusted computing base | |
JP4791250B2 (en) | Microcomputer and its software falsification prevention method | |
JP4796340B2 (en) | System and method for protected operating system boot using state verification | |
US8458801B2 (en) | High-assurance secure boot content protection | |
US8656146B2 (en) | Computer system comprising a secure boot mechanism | |
EP2248063B1 (en) | Method and apparatus for controlling system access during protected modes of operation | |
JP4089171B2 (en) | Computer system | |
JP4689945B2 (en) | Resource access method | |
TWI334130B (en) | Embedded system insuring security and integrity, and method of increasing security thereof | |
JP4689946B2 (en) | A system that executes information processing using secure data | |
TWI567580B (en) | Method and system for preventing execution of malware | |
KR101567620B1 (en) | Secure memory management system and method | |
US20080060072A1 (en) | Information processing system, information processing method, information processing program, computer readable medium and computer data signal | |
US8127144B2 (en) | Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit | |
KR20050008847A (en) | Sleep protection | |
TW202141321A (en) | Method and electronic devices for securely storing and loading firmware | |
KR20210089486A (en) | Apparatus and method for securely managing keys | |
JP6636028B2 (en) | Secure element | |
TWI393006B (en) | Security system and method for code dump protection | |
KR20180007717A (en) | Soc having double security features, and double security method for soc | |
Jacob et al. | faulTPM: Exposing AMD fTPMs’ Deepest Secrets | |
CN114816549B (en) | Method and system for protecting bootloader and environment variable thereof | |
CN114579337A (en) | Method and system for generating core dump in user equipment | |
US9218484B2 (en) | Control method and information processing apparatus | |
CN116776397A (en) | Method for verifying data in a computing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080814 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100528 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110607 |
|
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: 20110628 |
|
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: 20110721 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140729 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 |