JP2007310688A - マイクロコンピュータおよびそのソフトウェア改竄防止方法 - Google Patents

マイクロコンピュータおよびそのソフトウェア改竄防止方法 Download PDF

Info

Publication number
JP2007310688A
JP2007310688A JP2006139648A JP2006139648A JP2007310688A JP 2007310688 A JP2007310688 A JP 2007310688A JP 2006139648 A JP2006139648 A JP 2006139648A JP 2006139648 A JP2006139648 A JP 2006139648A JP 2007310688 A JP2007310688 A JP 2007310688A
Authority
JP
Japan
Prior art keywords
microcomputer
program
processing unit
central processing
authentication
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
JP2006139648A
Other languages
English (en)
Other versions
JP4791250B2 (ja
Inventor
Toru Owada
徹 大和田
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2006139648A priority Critical patent/JP4791250B2/ja
Publication of JP2007310688A publication Critical patent/JP2007310688A/ja
Application granted granted Critical
Publication of JP4791250B2 publication Critical patent/JP4791250B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】マイクロコンピュータへのデバッグツール類による攻撃に対する耐性を有する、ブートプログラム、ローダプログラムと称されるソフトウェアコードの改竄防止方法を提供する。
【解決手段】マイクロコンピュータ102において、CPU103と、CPU103とは独立に所定の手順に従い処理を実行可能な認証シーケンサ装置112を具備し、CPU103での、所定のプログラムの実行に先立ち、認証シーケンサ装置112において、所定のプログラムが実行を意図したプログラムであるか否かを判定し、判定の結果に応じて、所定の機能の有効、無効を設定する。
【選択図】図1

Description

本発明は、任意のソフトウェアコードに基づき何らかの情報処理を行なうマイクロコンピュータに関し、特に、マイクロコンピュータを搭載した情報処理装置を起動させる際に用いるブートプログラム、ローダプログラムと称されるソフトウェアの改竄防止方法に適用して有効な技術に関する。
昨今、デジタルデータ利用における情報セキュリティ技術の重要性が指摘されており、その中で、様々な情報処理プラットフォーム、情報処理装置上において取り扱われるデータ/コードの改竄防止技術が注目されている。そのような改竄防止技術は、実行される「データ処理の正当性」を保証するものであり、例えば、有価値コンテンツの利用と、それに対する課金処理など、確実な処理が特に期待される場面で極めて重要となる。
このような技術を適用した情報処理プラットフォームはセキュアプラットフォームなどと称され、PCなどの汎用情報処理機器から、組込み機器と称される、例えば音楽プレーヤや携帯電話機などのデジタルアプライアンスまで、規模の大小に拘らず、課金処理などの正当性保証が必要とされるアプリケーションを動作させる場面では必要なプラットフォーム技術である。
PC向けには、NGSCB、LaGrandeなどのセキュアプラットフォーム技術が提案されているが、大掛かりかつ高価なプラットフォームであり、一般的に処理リソース、およびコスト面での制約が大きい組込み機器への直接適用は困難である。組込み機器向けの安価なセキュアプラットフォームへのニーズは確実にあり、同要求に対する解が必要とされている。
マイクロコンピュータ、ROM、RAMなどのメモリからなる一般的な情報処理プラットフォームにおいては、ROM内のデータを静的に読み出せることや、正常動作時にマイクロコンピュータ、メモリ間でやり取りされるデータをプラットフォーム外から直接に観測、解析可能であることは攻撃の糸口になり、これらを防止することは重要であるが、動作状況の動的解析に繋がる大きな脅威としては、プラットフォーム上での、任意の解析機能を具備したコードの実行が挙げられる。
従い、データ処理の正当性を保証するセキュアプラットフォーム技術においては、データ/コードの観測、解析、改竄といった攻撃を防止するために、悪意ある、任意のコードの、プラットフォーム上での実行を阻止することが主要な技術となる。
これは実行されるコードの正当性をその都度認証し、その正当性が証明されたもののみ実行を許可することで実現され得るが、この場合、コードの正当性を判断するのは、それ以前に実行されていたコードであり、信頼性保証の根源は、プラットフォームを起動させるブートプログラム、ローダプログラムと称されるソフトウェアコードの正当性に存在することになる。
このようなブートプログラムの改竄を防止する技術の一つとして、特開平2003−108257号公報(特許文献1)に開示されるデジタルデバイスのセキュリティを守るための、安全なブートローダがある。
この特許文献1の技術は、マイクロコンピュータと同一の半導体チップ上に設けられた不揮発メモリ上にブートローダを記憶し、ブートローダは、プロセッサ外に接続される不揮発メモリなどに保管されるオペレーティングシステムなどのソフトウェアコードの正当性を認証する機能を有する。このブートローダは、認証対象となるソフトウェアコードの正当性が確認された場合にのみ、ソフトウェアコードに制御を移し、認証に失敗した場合には動作を完了する。
すなわち、このブートローダが搭載された情報処理装置などでは、認証に失敗した場合は、その後のソフトウェアコードによる制御が一切行われないため、情報処理装置が起動せずに動作が完了してしまい、例えば、音楽プレーヤなどでは、通常の音楽の再生といった正当性保証が必要ない機能も使用不可能になってしまい、本来情報処理装置として期待される機能を一切実現しないものとなっている。
特開平2003−108257号公報
前述した従来のデジタルデバイスのセキュリティを守るための、安全なブートローダによれば、ブートローダを記憶する不揮発メモリは、マイクロコンピュータと同一の半導体チップ上に設けられることにより、改竄耐性を持ち、ブートローダが、その次にロードされるオペレーティングシステムを認証することから、実行されるコードの正当性を保証可能である。
しかしながら、特許文献1の技術では、コードが認証されない場合に単純に動作が完了してしまい、ユーザによるシステムの可用性上、問題がある。また、ブートローダを記憶する不揮発メモリに改竄耐性があるとするが、プロセッサにて実行される以上、デバッグツールによる解析の対象となり、対デバッガ対策を講じたとしても、実装上の不備を突いた攻撃の可能性を否定することは不可能である。
そこで、本発明の目的は、実行されるコードの正当性保証とユーザによるシステムの可用性を両立すると共に、マイクロコンピュータへのデバッグツール類による攻撃に対する耐性を有する、ブートプログラム、ローダプログラムと称されるソフトウェアコードの改竄防止方法を提供することにある。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明によるマイクロコンピュータは、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備え、中央演算処理装置での、第1のプログラムの実行に先立ち、シーケンス処理装置により、第1のプログラムの認証を行い、その認証結果に基づいて、所定の機能を無効に設定して、中央演算処理装置による制御に移行するものである。
また、本発明によるマイクロコンピュータは、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備え、中央演算処理装置での、第1のプログラムの実行に先立ち、シーケンス処理装置により、第1のプログラムの認証を行い、その認証結果に基づいて、中央演算処理装置により、第2のプログラムを実行するものである。
また、本発明によるマイクロコンピュータのソフトウェア改竄防止方法は、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備えたマイクロコンピュータのソフトウェア改竄防止方法であって、中央演算処理装置での、第1のプログラムの実行に先立ち、シーケンス処理装置により、第1のプログラムの認証を行い、その認証結果に基づいて、所定の機能を無効に設定して、中央演算処理装置による制御に移行するものである。
また、本発明によるマイクロコンピュータのソフトウェア改竄防止方法は、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備えたマイクロコンピュータのソフトウェア改竄防止方法であって、中央演算処理装置での、第1のプログラムの実行に先立ち、シーケンス処理装置により、第1のプログラムの認証を行い、その認証結果に基づいて、中央演算処理装置により、マイクロコンピュータに接続されたネットワークを介して受信した第2のプログラムを実行するものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明によれば、情報処理装置において、実行されるコードの正当性保証など必要なセキュリティ性能を強固に保ちつつ、ユーザによる情報処理装置の利用に過度の制限を加えずにセキュリティ上問題のない利用の継続を許可するなど、柔軟な処理が可能となり、著作権管理システムなどでは、コンテンツホルダの権利保持とユーザ利便性の両立を図ることが可能である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
<マイクロコンピュータを搭載した情報処理装置の構成>
図1により、本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の構成について説明する。図1は本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の構成を示す構成図である。
図1において、情報処理装置101は、マイクロコンピュータ102を搭載し、揮発性記憶装置107、不揮発性記憶装置108を備え、マイクロコンピュータ102、揮発性記憶装置107、不揮発性記憶装置108などの情報処理装置101を構成する各機能ブロックは、それぞれの間で命令やデータをやり取りするための命令・データバス線(以下、データバス)111により接続されている。
なお、図1では、情報処理装置101を構成するのに最低限必要な機能構成を示しており、これ以外の機能ブロックを有してもよい。
情報処理装置101に搭載されるマイクロコンピュータ102は、半導体パッケージに封止されたLSIであり、中央演算処理装置(以下、CPUとする)103、暗号処理装置104、ハッシュ関数処理装置105、シーケンス処理装置である認証シーケンサ装置112の機能ブロックを含み、秘密情報106が保持されている。
CPU103は、ソフトウェアコードを読み込み、定められた処理を実行する。
暗号処理装置104は、入力された暗号鍵と処理対象データに対し、所定の暗号アルゴリズムに基づいた処理を行ない、処理結果データを出力する。この暗号処理装置104はCPU103からの処理命令に応じて動作し、また、マイクロコンピュータ102外と直接データをやり取りする機能を有しない。
暗号処理装置104の動作は、CPU103から見てブラックボックスであり、暗号処理の中間状態などは観察されない。また、LSI内の機能ブロックであり、かつ、マイクロコンピュータ102外と直接データをやり取りしないことから、同様に、マイクロコンピュータ102外部から暗号処理の中間状態などは観察されない。暗号アルゴリズムの選択は任意である。
ハッシュ関数処理装置105は、入力された処理対象データに対し、所定のハッシュ関数アルゴリズムに基づいた処理を行ない、処理結果データを出力する。暗号処理装置104と同様に、ハッシュ関数処理装置105の動作は、CPU103から見てブラックボックスであり、かつ、マイクロコンピュータ外部からハッシュ関数処理の中間状態などは観察されない。
ハッシュ関数アルゴリズムの選択は任意であるが、ハッシュ関数処理装置105においては、通常のハッシュ関数アルゴリズムに加え、鍵付きハッシュ関数と称される、秘密情報の共有と処理対象データの完全性を同時に認証することのできるアルゴリズムの処理も可能である。
秘密情報106は、マイクロコンピュータ102内で秘密裏に保持される情報で、情報処理装置101によって実現されるアプリケーションが必要とする任意の秘密情報であり、暗号処理装置104、ハッシュ関数処理装置105にて用いられる暗号鍵、何らかの処理に必要なIDや定数値などであってよい。
秘密情報106をマイクロコンピュータ102内で秘密裏に保持する機能としては、ROMなどの書換え不可能な不揮発性メモリを設け保管、EEPROM、フラッシュメモリなどの書換え可能な不揮発性メモリを設け保管、フリップフロップ素子によるハードウェアレジスタの初期値として保管、など任意の手法を用いてよい。
揮発性記憶装置107は、マイクロコンピュータ102が、演算処理を行なう際にワーク領域として用いるSDRAMなどの揮発性の記憶装置である。
不揮発性記憶装置108は、マイクロコンピュータ102が、処理を行なう際に必要となるOSやアプリケーション、データを保管するための、フラッシュメモリ、ハードディスクなどの不揮発性の記憶装置である。
不揮発性記憶装置108には、情報処理装置101の起動時に、CPU103に読み込まれ、その後に実行すべきソフトウェアを指定する第1のプログラムであるブートローダプログラム(以下、ブートローダとする)109、CPU103に読み込まれ、処理されるオペレーティングシステムプログラム(以下、OSとする)110が格納されている。
OS110は、ブートローダ109によって読出しを指定される。情報処理装置101の用途によっては、OS110を搭載せずにアプリケーションプログラムのみ搭載するようなシステムも存在する。本実施の形態においては、OS110をアプリケーションプログラムと読み替えることで、そのようなOSレスのシステムについても同様に考えることが可能である。
認証シーケンサ装置112は、情報処理装置101の起動時に動作し、ブートローダ109の正当性を認証する機能を有する。この認証シーケンサ装置112はCPU103とは独立して動作し、秘密情報106に独自にアクセスする機能、暗号処理装置104、ハッシュ関数処理装置105に対して必要な命令を発行し、出力結果値を入力する機能を有する。また、不揮発性記憶装置108にアクセスし、所定のプログラム、データなどを入力する機能を有する。
なお、情報処理装置101の構成要素であるマイクロコンピュータ102、CPU103、暗号処理装置104、ハッシュ関数処理装置105、秘密情報106、揮発性記憶装置107、不揮発性記憶装置108、認証シーケンサ装置112は論理的構成を示し、必ずしも物理的に図と同一構成である必要はない。例えば、秘密情報106は物理的には暗号処理装置104やハッシュ関数処理装置105に保管されていてもよい。また、暗号処理装置104やハッシュ関数処理装置105などの処理機能は、専用のハードウェアによる実装としてもよいし、独立したCPUと、メモリに保管されるプログラムによる実装としてもよく、物理的な構成方法は問わない。
<マイクロコンピュータを搭載した情報処理装置の動作>
次に、図2〜図5により、本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の動作について説明する。図2〜図5は本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
まず、図2に示すように、情報処理装置101は、電源が投入されると、電源投入時に必要な各機能モジュールの初期化を行ない、各機能モジュールが正常に動作するかを確認する(ステップ201)。
次に、各機能モジュールの初期化完了後、認証シーケンサ装置112の指示に従い、ブートローダ109が改竄されておらず、完全性を有しているか否かを認証する(ステップ202)。
以下、具体的手順の一例を示す。まず、前提条件を2つ示す。ブートローダ109は、ブートローダ本体と、予め定められた秘密鍵を用いて求められたブートローダ本体の鍵付きハッシュ値とから構成される。また、予め定められた秘密鍵は、秘密情報106に予め保管されている。
次に、動作手順を説明する。認証シーケンサ装置112は、不揮発性記憶装置108にアクセスし、ブートローダ109領域からブートローダ本体を読み込む。次に、認証シーケンサ装置112は、秘密情報106に保管されている予め定められた秘密鍵を取り出し、ブートローダ本体と予め定められた秘密鍵を、ハッシュ関数処理装置105に入力し、上記2つの入力値から、鍵付きハッシュ値を求める。
次に、認証シーケンサ装置112は、不揮発性記憶装置108にアクセスし、ブートローダ109領域からブートローダ本体の鍵付きハッシュ値を読み込み、先に求めた鍵付きハッシュ値との比較を行なう。2つの鍵付きハッシュ値が一致すれば、ブートローダ本体の完全性は証明され、また、ブートローダ109は、情報処理装置101と予め定められた秘密鍵を共有する主体によって生成されたことも証明される。
また、完全性検証手順としては、以下の手順を用いてもよい。
まず、前提条件を2つ示す。ブートローダ109は、ブートローダ本体と、ブートローダ本体のハッシュ値とから構成され、更にこれら2つのデータを予め定められた暗号鍵によって暗号化された暗号化データとなっている。
また、予め定められた暗号鍵は、秘密情報106に予め保管されている。
次に、動作手順を説明する。認証シーケンサ装置112は、不揮発性記憶装置108にアクセスし、ブートローダ109領域から暗号化されたブートローダ本体、および、ブートローダ本体のハッシュ値を読み込む。
次に、認証シーケンサ装置112は、秘密情報106に保管されている予め定められた暗号鍵を取り出し、暗号化されたブートローダ本体とブートローダ本体のハッシュ値と予め定められた暗号鍵を、暗号処理装置104に入力し、上記2つの入力値から、ブートローダ本体、および、ブートローダ本体のハッシュ値を求める。
次に、認証シーケンサ装置112は、得られたブートローダ本体を、ハッシュ関数処理装置105に入力し、ブートローダ本体のハッシュ値を求める。
次に、認証シーケンサ装置112は、先に暗号化されたブートローダ本体、および、ブートローダ本体のハッシュ値から得られたハッシュ値と、ハッシュ関数処理装置105の出力として得られたハッシュ値との比較を行なう。2つのハッシュ値が一致すれば、ブートローダ本体の完全性は証明され、また、ブートローダ109は、情報処理装置101と予め定められた暗号鍵を共有する主体によって生成されたことも証明される。
秘密情報106に保管する暗号鍵は、暗号アルゴリズムとして共通鍵アルゴリズムを用いるのであれば、ブートローダ本体、および、ブートローダ本体のハッシュ値の暗号化に用いるものと同一の鍵であり、暗号アルゴリズムとして公開鍵アルゴリズムを用いるのであれば、鍵ペアの片方である。処理速度の観点からは、一般的に共通鍵暗号アルゴリズムを選択した方が有利であることはいうまでもない。
ステップ202の認証処理の結果より、認証成功の場合にはステップ204へ、認証失敗の場合にはステップ205へと遷移する(ステップ203)。
ステップ202の処理において認証成功の場合、認証シーケンサ装置112の指示により、マイクロコンピュータ102内の特定の機能が有効となる(ステップ204)。ここで有効となる機能の種類は任意であるが、例えば、以下のようなものとしてもよい。
情報処理装置101の主たるアプリケーションがセキュリティ処理機能、性能に大きく依存する場合に、その機能実現に重要な役割を果たす、暗号処理装置104、ハッシュ関数処理装置105などのセキュリティ関連処理機能や、秘密情報106に保管される、何らかの認証処理に必要な共有情報等へのアクセス機能が有効となる。
機能の有効、無効を切り替える方法としては以下のような方式を利用してもよい。暗号処理装置104、ハッシュ関数処理装置105や秘密情報106を保管する記憶実体は、自身へのCPU103からのアクセスの有効、無効を設定する設定レジスタを具備し、設定レジスタは、認証シーケンサ装置112の指示によってのみ変更される。
これにより、装置類は、CPU103から見た場合の、機能的な接続、分離が実現される。また、特定機能として、図1には示していない、ブートローダ認証成否結果を示すレジスタを設け、レジスタに処理結果に当する値を設定してもよい。
次に、ステップ203、またはステップ204からの遷移により、マイクロコンピュータ102内の特定の機能以外の機能が有効となる(ステップ205)。この処理は、ステップ204で示した設定レジスタと同様に、その他の装置類の機能の有効、無効を明示的に設定してもよいし、特に設定レジスタ類は設けず、無効化処理がないことで結果として当装置類の機能が有効となるとしてもよい。
ステップ205までの処理が完了すると、認証シーケンサ装置112は、CPU103に制御を移す。CPU103は、不揮発性記憶装置108からブートローダ109を読み込み、ブート処理を行なう(ステップ206)。
ステップ202の説明において、ブートローダ109が暗号化されて保管されている場合を示したが、そのような場合には、マイクロコンピュータ102内に、図1には示していない小容量のRAMを設け、そのRAM内に、ステップ202にて復号したブートローダを保管しておき、CPU103が、不揮発性記憶装置108の代わりにRAMからブートローダ109を読み込むという処理を行なってもよい。
更に、CPU103は、ブートローダ109に示される指示に従い、処理を進め、OS110をロードし、その他、情報処理装置101に必要なアプリケーションを実行する(ステップ207)。
なお、図2には示していないが、認証シーケンサ装置112がステップ202にてブートローダ109に対して行なった認証処理と同様に、ステップ206にてCPU103がブートローダ109の指示によりOS110に対して、また、ステップ207にてCPU103がOS110の指示により任意のアプリケーションに対して、認証処理を行なうことで、情報処理装置101の起動後に実行されるプログラムの改竄有無を確認することが可能であり、実行されるプログラムの完全性を保証可能な情報処理装置を実現可能である。
また、ステップ204に示したブートローダ認証成否結果を示すレジスタを設けた場合、OSやアプリケーションが同レジスタ値を直接参照することで、実行内容を選択する、といった機能を追加することも可能である。
ここで、具体例として、本実施の形態に係るマイクロコンピュータ102を搭載した情報処理装置101を、著作権保護機能で管理された有価値コンテンツを取り扱うコンテンツ再生機器に適用した場合を考える。
このような応用の場合、不揮発性記憶装置108には、暗号化された有価値コンテンツ、有価値コンテンツを再生するための再生プログラム、秘密情報106には、暗号化された有価値コンテンツを復号するための暗号鍵が保管され、暗号化された有価値コンテンツは、CPU103、暗号処理装置104の機能により復号され、図1には示していない、表示装置、音声再生装置により再生される、というのが一般的な形式である。
情報処理装置101におけるブートローダ109が、悪意の有無は問わず何らかの理由により改竄され、ステップ203の処理にて認証に失敗した場合、OS、アプリ類は実行されるが、ステップ204に示す重要な一部機能が無効化されている。
ここで無効化されるのが、秘密情報106に保管されている、有価値コンテンツの再生に必要な暗号鍵へのアクセス機能とすることで、有価値コンテンツの再生は不可能となる。著作権保護機能への攻撃可能性検知を、有価値コンテンツの不正使用に繋がると判断し、コンテンツ再生機器としての機能を制限することとなる。
しかしながら、ステップ205において、有価値コンテンツの再生とは直接関係しない、情報処理装置101の他の機能は有効化され、ユーザに対し、有価値コンテンツの再生以外の機能を提供することは妨げない。以上により、著作権保護などの重要な機能を実現しつつ、ユーザの利便性を過度に制限しないことを特徴とする情報処理装置が実現可能である。
また、このような応用の場合、情報処理装置101に用いるマイクロコンピュータ102には、暗号処理装置104、ハッシュ関数処理装置105、秘密情報106のようなセキュリティ処理に関する機能は必然的に具備されている。従って、ブートローダ109を認証するために追加が必要な装置は認証シーケンサ装置112のみであり、小さな追加コストにて、実行されるアプリケーション認証の基盤に当たるブートローダの認証機能を実現可能である。
更に、認証シーケンサ装置112はCPU103とは独立して動作し、また、その内部動作をCPU103から検知する機能を有しないことから、CPU向けのデバッガなどを用いて認証シーケンサ装置112の動作解析を行なうことは不可能である。
また、暗号処理装置104、ハッシュ関数処理装置105、認証シーケンサ装置112をそれぞれ専用のハードウェア回路で構成した場合、一般的なCPUでのソフトウェア処理と比較して高速処理が期待でき、情報処理装置101の起動時間短縮といったユーザビリティ上の効果が見込める。
以上、本実施の形態に係るマイクロコンピュータ102を搭載した情報処理装置101の動作を説明したが、図3に示すような動作としてもよい。
図3において、ステップ301は、図2に示したステップ201、ステップ303からステップ308はそれぞれ、図2に示したステップ202からステップ207と概略同一の動作であり、詳細な説明は省略する。但し、ステップ304の遷移先ステップは、ステップ305、ステップ306となる。
ステップ302において、各機能モジュールの初期化完了後、マイクロコンピュータ102はブートローダ109の認証が必要であるかを判定し、必要である場合には、ステップ303に、不要である場合には、ステップ306に遷移する(ステップ302)。
上記手順は、電源投入後の機能モジュールの初期化完了後に、不揮発性記憶装置108に保管されたブートローダ109にアクセスするのが、認証シーケンサ装置112であるか、CPU103であるかを決定するステップである。
前者であれば、本実施の形態の特徴であるブートローダ109の認証処理(ステップ303)が実行され、後者であれば、一般的な情報処理装置での起動処理が実行される。
図3に示す動作を採ることで、ブートローダを認証する機能を有するマイクロコンピュータ102であっても、マイクロコンピュータ102を搭載する情報処理装置で、一般的な情報処理装置の起動処理が実現可能となり、マイクロコンピュータの汎用性が向上する効果が得られる。
また、マイクロコンピュータ102がブートローダ109の認証が必要であるかを判定する手法としては、マイクロコンピュータ102に、図1には示していない、機能ピンを設け、電源投入時の機能ピンの論理入力により、機能切り替えを行なうという手法を用いてもよい。
同様に、本実施の形態に係る情報処理装置の動作は、図4に示すような動作としてもよい。
図4において、ステップ601からステップ607はそれぞれ、図2に示したステップ201からステップ207と概略同一の動作であり、詳細な説明は省略する。但し、ステップ603の遷移先ステップは、ステップ604、ステップ608となる。
ステップ608において、情報処理装置101は、図1に示していない、表示装置、音声出力装置を通して、ユーザに認証処理に失敗し、特定の機能が有効となっていないことに関するメッセージを伝達する。
上記の機能は、ユーザに情報処理装置101の機能状態を伝達することでシステム利便性の向上に効果がある。
また、本実施形態に係る情報処理装置の動作は、図5に示すような動作としてもよい。
図5において、ステップ701からステップ707はそれぞれ、図2に示したステップ201からステップ207と概略同一の動作であり、詳細な説明は省略する。但し、ステップ707の遷移先ステップは、ステップ708となる。
ステップ708において、情報処理装置101は、図1に示していない、表示装置、音声出力装置を通して、ユーザに認証処理に失敗し、特定の機能が有効となっていないことに関するメッセージを伝達する。
上記の機能は、図4の動作と同様に、ユーザに情報処理装置101の機能状態を伝達することでシステム利便性の向上に効果がある。
更に、ステップ708においては、情報処理装置101の有するOS、周辺機器などの機能を用いてユーザにメッセージを伝達することが可能であることから、ステップ608の処理と比較して処理コストが低いという利点がある。
以上、本実施の形態によれば、強固かつ安価なブートローダ認証機能を有すると共に、ユーザによる情報処理装置の利用に過度の制限を加えないことを特徴とするマイクロコンピュータを搭載した情報処理装置を実現可能である。
(実施の形態2)
<マイクロコンピュータを搭載した情報処理装置の構成>
図6により、本発明の実施の形態2に係るマイクロコンピュータを搭載した情報処理装置の構成について説明する。図6は本発明の実施の形態2に係るマイクロコンピュータを搭載した情報処理装置の構成を示す構成図である。
図6において、情報処理装置401は、実施の形態1の図1に示す情報処理装置101にネットワーク装置402を加え、ネットワーク404を介して、サーバ装置403と情報をやり取りする機能を追加したものであり、それ以外の構成は、実施の形態1の図1に示したものと同一であり、詳細な説明は省略する。
なお、図6では、情報処理装置401を構成するのに最低限必要な機能構成を示しており、これ以外の機能ブロックを有してもよい。
ネットワーク装置402は、情報処理装置401に具備され、CPU101の指示に従い、情報処理装置401の外部に接続されたネットワーク404を介し、他の情報処理装置とやり取りをする。
サーバ装置403は、ネットワーク404を介して情報処理装置401と接続され、何らかのやり取りをする情報処理装置である。
ネットワーク404は、ネットワーク装置402、サーバ装置403、ネットワーク装置402とサーバ装置403やその他のネットワーク対応情報処理装置などが接続されるネットワークである。
ネットワーク装置402、サーバ装置403、ネットワーク404が対応するネットワーク機能は任意であり、例えば、物理媒体としては、有線媒体であっても、無線媒体であってもよいし、同媒体上で実際に情報をやり取りする通信プロトコルの種類も任意である。
<マイクロコンピュータを搭載した情報処理装置の動作>
次に、図7により、本発明の実施の形態2に係るマイクロコンピュータを搭載した情報処理装置の動作について説明する。図7は本発明の実施の形態2に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
図7において、ステップ501からステップ507はそれぞれ、図2に示したステップ201からステップ207と概略同一の動作であり、詳細な説明は省略する。但し、ステップ503の遷移先ステップは、ステップ504、ステップ508となる。
ステップ508において、認証シーケンサ装置112は、CPU103に処理を移し、CPU103は特定のアプリケーションを実行し、終了する。
ステップ504からステップ507に遷移しないことから、情報処理装置401の具備する特定機能が有効化されることはなく(ステップ504)、また、本来起動されるべきOSやアプリケーションプログラムが起動されることもない(ステップ507)。
ステップ508にて実行されるアプリケーションとしては以下のようなものを実行してもよい。
情報処理装置401は、ネットワーク装置402を介して、サーバ装置403と接続し、サーバ装置403に対し、所定の情報、例えば、情報処理装置401の起動ログ情報や、機器固有のIDなどの情報を送信する。これに対し、サーバ装置403は、トラブルの内容を解析し、情報処理装置401に対して正常なブートローダをネットワーク404経由で送信し、不揮発性記憶装置108の内容を書き換える、所謂ホットフィックス処理を行なう。
若しくは、図6に示していない、表示装置、音声出力装置を通して、ユーザにトラブルに対する対処方法に関するメッセージを伝達する。上記の機能は情報処理装置401に対する、システムとしてのメンテナンスコストの低減に効果がある。
以上の処理により、情報処理装置401のブートローダ109に、ユーザの意図しない不具合があった場合に、ネットワーク経由で自動的、または半自動的に、不具合を修正する機能を提供することが可能であり、ユーザのシステム可用性が向上する効果が得られる。
一方、ステップ508への遷移が、悪意によるブートローダ109の改竄に起因するような場合には、ステップ508で実行される特定のアプリケーションの内容も改竄されており、本来期待されるネットワーク経由の不具合修正機能が正常に実行されない危険性がある。しかしながら、その場合でも、ステップ504に遷移するパスが存在しないことから、セキュリティ上重要な機能が不正に有効化されることはなく、セキュリティ性能の劣化は生じない。
以上、本実施の形態によれば、強固かつ安価なブートローダ認証機能を有すると共に、不具合発生時に自動的に情報機器に対して修正処理を行なうなど、ユーザによる情報処理装置の利用性を向上させることを特徴とする情報処理装置を実現可能である。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、任意のソフトウェアコードに基づき何らかの情報処理を行なうマイクロコンピュータに関し、特に、マイクロコンピュータを搭載した情報処理装置を起動させる際に用いるブートプログラム、ローダプログラムと称されるソフトウェアコードの改竄防止を行う情報処理装置に適用可能である。
本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の構成を示す構成図である。 本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。 本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。 本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。 本発明の実施の形態1に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。 本発明の実施の形態2に係るマイクロコンピュータを搭載した情報処理装置の構成を示す構成図である。 本発明の実施の形態2に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
符号の説明
101…情報処理装置、102…マイクロコンピュータ、103…CPU、104…暗号処理装置、105…ハッシュ関数処理装置、106…秘密情報、107…揮発性記憶装置、108…不揮発性記憶装置、109…ブートローダ、110…OS、111…データバス、112…認証シーケンサ装置、401…情報処理装置、402…ネットワーク装置、403…サーバ装置、404…ネットワーク。

Claims (10)

  1. 中央演算処理装置と、
    前記中央演算処理装置とは独立に動作するシーケンス処理装置とを備え、
    前記中央演算処理装置での、第1のプログラムの実行に先立ち、前記シーケンス処理装置により、前記第1のプログラムの認証を行い、その認証結果に基づいて、所定の機能の有効または無効を設定して、前記中央演算処理装置による制御に移行することを特徴とするマイクロコンピュータ。
  2. 請求項1記載のマイクロコンピュータにおいて、
    前記第1のプログラムの認証の必要がない場合は、前記シーケンス処理装置による前記第1のプログラムの認証を行わず、前記中央演算処理装置による制御に移行することを特徴とするマイクロコンピュータ。
  3. 請求項1または2記載のマイクロコンピュータにおいて、
    前記シーケンス処理装置による前記第1のプログラムの認証の結果、認証に失敗した場合は、前記所定の機能が有効または無効になっている旨の情報を出力することを特徴とするマイクロコンピュータ。
  4. 請求項1記載のマイクロコンピュータにおいて、
    前記所定の機能は、暗号処理装置による暗号処理機能、またはハッシュ関数処理装置によるハッシュ関数処理機能であることを特徴とするマイクロコンピュータ。
  5. 請求項1記載のマイクロコンピュータにおいて、
    前記所定の機能は、前記マイクロコンピュータに接続された記憶装置へのアクセス機能であることを特徴とするマイクロコンピュータ。
  6. 中央演算処理装置と、
    前記中央演算処理装置とは独立に動作するシーケンス処理装置とを備え、
    前記中央演算処理装置での、第1のプログラムの実行に先立ち、前記シーケンス処理装置により、前記第1のプログラムの認証を行い、その認証結果に基づいて、前記中央演算処理装置により、第2のプログラムを実行することを特徴とするマイクロコンピュータ。
  7. 請求項6記載のマイクロコンピュータにおいて、
    前記第2のプログラムは、前記マイクロコンピュータに接続されたネットワークを介して受信することを特徴とするマイクロコンピュータ。
  8. 請求項7記載のマイクロコンピュータにおいて、
    前記第2のプログラムの実行により、前記第1のプログラムの修復を行なうことを特徴とするマイクロコンピュータ。
  9. 中央演算処理装置と、前記中央演算処理装置とは独立に動作するシーケンス処理装置とを備えたマイクロコンピュータのソフトウェア改竄防止方法であって、
    前記中央演算処理装置での、第1のプログラムの実行に先立ち、前記シーケンス処理装置により、前記第1のプログラムの認証を行い、その認証結果に基づいて、所定の機能の有効または無効を設定して、前記中央演算処理装置による制御に移行することを特徴とするマイクロコンピュータのソフトウェア改竄防止方法。
  10. 中央演算処理装置と、前記中央演算処理装置とは独立に動作するシーケンス処理装置とを備えたマイクロコンピュータのソフトウェア改竄防止方法であって、
    前記中央演算処理装置での、第1のプログラムの実行に先立ち、前記シーケンス処理装置により、前記第1のプログラムの認証を行い、その認証結果に基づいて、前記中央演算処理装置により、前記マイクロコンピュータに接続されたネットワークを介して受信した第2のプログラムを実行することを特徴とするマイクロコンピュータのソフトウェア改竄防止方法。
JP2006139648A 2006-05-19 2006-05-19 マイクロコンピュータおよびそのソフトウェア改竄防止方法 Expired - Fee Related JP4791250B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006139648A JP4791250B2 (ja) 2006-05-19 2006-05-19 マイクロコンピュータおよびそのソフトウェア改竄防止方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006139648A JP4791250B2 (ja) 2006-05-19 2006-05-19 マイクロコンピュータおよびそのソフトウェア改竄防止方法

Publications (2)

Publication Number Publication Date
JP2007310688A true JP2007310688A (ja) 2007-11-29
JP4791250B2 JP4791250B2 (ja) 2011-10-12

Family

ID=38843475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006139648A Expired - Fee Related JP4791250B2 (ja) 2006-05-19 2006-05-19 マイクロコンピュータおよびそのソフトウェア改竄防止方法

Country Status (1)

Country Link
JP (1) JP4791250B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009225439A (ja) * 2008-02-11 2009-10-01 Nvidia Corp 安全キーの知識なしのブート映像の安全更新
WO2012111189A1 (ja) * 2011-02-16 2012-08-23 Necインフロンティア株式会社 追加機能ユニットの有効化/無効化方法、そのシステム及びそのプログラム並びに追加機能ユニット
JP2012181882A (ja) * 2012-06-29 2012-09-20 Nec Infrontia Corp 追加機能ユニットの有効化/無効化方法、そのシステム及びそのプログラム並びに追加機能ユニット
JP2014522040A (ja) * 2011-07-29 2014-08-28 マーベル ワールド トレード リミテッド プロセッサキャッシュ−ランダムアクセスメモリ間の切り替え
JP2015023414A (ja) * 2013-07-18 2015-02-02 株式会社メガチップス 情報処理システム
JP2016038779A (ja) * 2014-08-08 2016-03-22 大日本印刷株式会社 情報処理装置、情報処理システム及び処理プログラム
JP2020057040A (ja) * 2018-09-28 2020-04-09 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
CN111651185A (zh) * 2020-05-30 2020-09-11 展讯通信(上海)有限公司 一种软件升级方法及装置
US10785259B2 (en) 2016-04-19 2020-09-22 Mitsubishi Electric Corporation Relay device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108506A (ja) * 1991-10-15 1993-04-30 Casio Comput Co Ltd ドライバ自動修復装置
JPH09190354A (ja) * 1996-01-08 1997-07-22 Nec Corp ダウンラインロード方式
JP2005149394A (ja) * 2003-11-19 2005-06-09 Sony Corp 情報処理装置および情報処理方法、プログラム、並びに記録媒体
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108506A (ja) * 1991-10-15 1993-04-30 Casio Comput Co Ltd ドライバ自動修復装置
JPH09190354A (ja) * 1996-01-08 1997-07-22 Nec Corp ダウンラインロード方式
JP2005149394A (ja) * 2003-11-19 2005-06-09 Sony Corp 情報処理装置および情報処理方法、プログラム、並びに記録媒体
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009225439A (ja) * 2008-02-11 2009-10-01 Nvidia Corp 安全キーの知識なしのブート映像の安全更新
WO2012111189A1 (ja) * 2011-02-16 2012-08-23 Necインフロンティア株式会社 追加機能ユニットの有効化/無効化方法、そのシステム及びそのプログラム並びに追加機能ユニット
CN103403727A (zh) * 2011-02-16 2013-11-20 日本电气英富醍株式会社 附加功能单元的启用/禁用方法、其系统、其程序以及附加功能单元
US8910242B2 (en) 2011-02-16 2014-12-09 Nec Infrontia Corporation Enable/disable method of additional-function unit, system for same, program for same, as well as additional-function unit
JP2014522040A (ja) * 2011-07-29 2014-08-28 マーベル ワールド トレード リミテッド プロセッサキャッシュ−ランダムアクセスメモリ間の切り替え
JP2012181882A (ja) * 2012-06-29 2012-09-20 Nec Infrontia Corp 追加機能ユニットの有効化/無効化方法、そのシステム及びそのプログラム並びに追加機能ユニット
JP2015023414A (ja) * 2013-07-18 2015-02-02 株式会社メガチップス 情報処理システム
JP2016038779A (ja) * 2014-08-08 2016-03-22 大日本印刷株式会社 情報処理装置、情報処理システム及び処理プログラム
US10785259B2 (en) 2016-04-19 2020-09-22 Mitsubishi Electric Corporation Relay device
JP2020057040A (ja) * 2018-09-28 2020-04-09 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP7152920B2 (ja) 2018-09-28 2022-10-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
CN111651185A (zh) * 2020-05-30 2020-09-11 展讯通信(上海)有限公司 一种软件升级方法及装置

Also Published As

Publication number Publication date
JP4791250B2 (ja) 2011-10-12

Similar Documents

Publication Publication Date Title
JP4796340B2 (ja) 状態検証を使用した保護されたオペレーティングシステムブートのためのシステムおよび方法
US8656146B2 (en) Computer system comprising a secure boot mechanism
JP4791250B2 (ja) マイクロコンピュータおよびそのソフトウェア改竄防止方法
US8458801B2 (en) High-assurance secure boot content protection
EP2248063B1 (en) Method and apparatus for controlling system access during protected modes of operation
JP5670578B2 (ja) 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置
RU2295834C2 (ru) Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным
JP4689945B2 (ja) リソースアクセス方法
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
TWI567580B (zh) 用於防止惡意軟體執行的方法與系統
KR20190063264A (ko) 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
KR101567620B1 (ko) 데이터 처리 시스템 및 방법
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 (ko) 휴면 보호
JP2011522469A (ja) 保護されたソフトウエアイメージを有する集積回路及びそのための方法
TW202141321A (zh) 安全儲存及載入韌體的方法及電子裝置
US20140359306A1 (en) System, information processing apparatus, secure module, and verification method
KR20210089486A (ko) 키를 안전하게 관리하기 위한 장치 및 방법
JP2018508063A (ja) セキュア素子
TWI393006B (zh) 用於碼傾印保護之安全系統及安全方法
KR20180007717A (ko) 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
US11829231B2 (en) Methods and systems for generating core dump in a user equipment
Jacob et al. faulTPM: Exposing AMD fTPMs’ Deepest Secrets
US9218484B2 (en) Control method and information processing apparatus
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及系统

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