(57)【特許請求の範囲】
【請求項１】
中央演算処理装置と、
前記中央演算処理装置とは独立に動作するシーケンス処理装置とを備え、
前記中央演算処理装置での、第１のプログラムの実行に先立ち、前記シーケンス処理装置により、前記第１のプログラムの認証を行い、その認証結果に基づいて、暗号処理装置による暗号処理機能、またはハッシュ関数処理装置によるハッシュ関数処理機能の有効または無効を設定して、前記中央演算処理装置による制御に移行することを特徴とするマイクロコンピュータ。
【請求項２】
中央演算処理装置と、前記中央演算処理装置とは独立に動作するシーケンス処理装置とを備えたマイクロコンピュータのソフトウェア改竄防止方法であって、
前記中央演算処理装置での、第１のプログラムの実行に先立ち、前記シーケンス処理装置により、前記第１のプログラムの認証を行い、その認証結果に基づいて、暗号処理装置による暗号処理機能、またはハッシュ関数処理装置によるハッシュ関数処理機能の有効または無効を設定して、前記中央演算処理装置による制御に移行することを特徴とするマイクロコンピュータのソフトウェア改竄防止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、任意のソフトウェアコードに基づき何らかの情報処理を行なうマイクロコンピュータに関し、特に、マイクロコンピュータを搭載した情報処理装置を起動させる際に用いるブートプログラム、ローダプログラムと称されるソフトウェアの改竄防止方法に適用して有効な技術に関する。
【背景技術】
【０００２】
昨今、デジタルデータ利用における情報セキュリティ技術の重要性が指摘されており、その中で、様々な情報処理プラットフォーム、情報処理装置上において取り扱われるデータ／コードの改竄防止技術が注目されている。そのような改竄防止技術は、実行される「データ処理の正当性」を保証するものであり、例えば、有価値コンテンツの利用と、それに対する課金処理など、確実な処理が特に期待される場面で極めて重要となる。
【０００３】
このような技術を適用した情報処理プラットフォームはセキュアプラットフォームなどと称され、ＰＣなどの汎用情報処理機器から、組込み機器と称される、例えば音楽プレーヤや携帯電話機などのデジタルアプライアンスまで、規模の大小に拘らず、課金処理などの正当性保証が必要とされるアプリケーションを動作させる場面では必要なプラットフォーム技術である。
【０００４】
ＰＣ向けには、ＮＧＳＣＢ、ＬａＧｒａｎｄｅなどのセキュアプラットフォーム技術が提案されているが、大掛かりかつ高価なプラットフォームであり、一般的に処理リソース、およびコスト面での制約が大きい組込み機器への直接適用は困難である。組込み機器向けの安価なセキュアプラットフォームへのニーズは確実にあり、同要求に対する解が必要とされている。
【０００５】
マイクロコンピュータ、ＲＯＭ、ＲＡＭなどのメモリからなる一般的な情報処理プラットフォームにおいては、ＲＯＭ内のデータを静的に読み出せることや、正常動作時にマイクロコンピュータ、メモリ間でやり取りされるデータをプラットフォーム外から直接に観測、解析可能であることは攻撃の糸口になり、これらを防止することは重要であるが、動作状況の動的解析に繋がる大きな脅威としては、プラットフォーム上での、任意の解析機能を具備したコードの実行が挙げられる。
【０００６】
従い、データ処理の正当性を保証するセキュアプラットフォーム技術においては、データ／コードの観測、解析、改竄といった攻撃を防止するために、悪意ある、任意のコードの、プラットフォーム上での実行を阻止することが主要な技術となる。
【０００７】
これは実行されるコードの正当性をその都度認証し、その正当性が証明されたもののみ実行を許可することで実現され得るが、この場合、コードの正当性を判断するのは、それ以前に実行されていたコードであり、信頼性保証の根源は、プラットフォームを起動させるブートプログラム、ローダプログラムと称されるソフトウェアコードの正当性に存在することになる。
【０００８】
このようなブートプログラムの改竄を防止する技術の一つとして、特開平２００３−１０８２５７号公報（特許文献１）に開示されるデジタルデバイスのセキュリティを守るための、安全なブートローダがある。
【０００９】
この特許文献１の技術は、マイクロコンピュータと同一の半導体チップ上に設けられた不揮発メモリ上にブートローダを記憶し、ブートローダは、プロセッサ外に接続される不揮発メモリなどに保管されるオペレーティングシステムなどのソフトウェアコードの正当性を認証する機能を有する。このブートローダは、認証対象となるソフトウェアコードの正当性が確認された場合にのみ、ソフトウェアコードに制御を移し、認証に失敗した場合には動作を完了する。
【００１０】
すなわち、このブートローダが搭載された情報処理装置などでは、認証に失敗した場合は、その後のソフトウェアコードによる制御が一切行われないため、情報処理装置が起動せずに動作が完了してしまい、例えば、音楽プレーヤなどでは、通常の音楽の再生といった正当性保証が必要ない機能も使用不可能になってしまい、本来情報処理装置として期待される機能を一切実現しないものとなっている。
【特許文献１】特開平２００３−１０８２５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
前述した従来のデジタルデバイスのセキュリティを守るための、安全なブートローダによれば、ブートローダを記憶する不揮発メモリは、マイクロコンピュータと同一の半導体チップ上に設けられることにより、改竄耐性を持ち、ブートローダが、その次にロードされるオペレーティングシステムを認証することから、実行されるコードの正当性を保証可能である。
【００１２】
しかしながら、特許文献１の技術では、コードが認証されない場合に単純に動作が完了してしまい、ユーザによるシステムの可用性上、問題がある。また、ブートローダを記憶する不揮発メモリに改竄耐性があるとするが、プロセッサにて実行される以上、デバッグツールによる解析の対象となり、対デバッガ対策を講じたとしても、実装上の不備を突いた攻撃の可能性を否定することは不可能である。
【００１３】
そこで、本発明の目的は、実行されるコードの正当性保証とユーザによるシステムの可用性を両立すると共に、マイクロコンピュータへのデバッグツール類による攻撃に対する耐性を有する、ブートプログラム、ローダプログラムと称されるソフトウェアコードの改竄防止方法を提供することにある。
【課題を解決するための手段】
【００１４】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１５】
本発明によるマイクロコンピュータは、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備え、中央演算処理装置での、第１のプログラムの実行に先立ち、シーケンス処理装置により、第１のプログラムの認証を行い、その認証結果に基づいて、所定の機能を無効に設定して、中央演算処理装置による制御に移行するものである。
【００１６】
また、本発明によるマイクロコンピュータは、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備え、中央演算処理装置での、第１のプログラムの実行に先立ち、シーケンス処理装置により、第１のプログラムの認証を行い、その認証結果に基づいて、中央演算処理装置により、第２のプログラムを実行するものである。
【００１７】
また、本発明によるマイクロコンピュータのソフトウェア改竄防止方法は、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備えたマイクロコンピュータのソフトウェア改竄防止方法であって、中央演算処理装置での、第１のプログラムの実行に先立ち、シーケンス処理装置により、第１のプログラムの認証を行い、その認証結果に基づいて、所定の機能を無効に設定して、中央演算処理装置による制御に移行するものである。
【００１８】
また、本発明によるマイクロコンピュータのソフトウェア改竄防止方法は、中央演算処理装置と、中央演算処理装置とは独立に動作するシーケンス処理装置とを備えたマイクロコンピュータのソフトウェア改竄防止方法であって、中央演算処理装置での、第１のプログラムの実行に先立ち、シーケンス処理装置により、第１のプログラムの認証を行い、その認証結果に基づいて、中央演算処理装置により、マイクロコンピュータに接続されたネットワークを介して受信した第２のプログラムを実行するものである。
【発明の効果】
【００１９】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２０】
本発明によれば、情報処理装置において、実行されるコードの正当性保証など必要なセキュリティ性能を強固に保ちつつ、ユーザによる情報処理装置の利用に過度の制限を加えずにセキュリティ上問題のない利用の継続を許可するなど、柔軟な処理が可能となり、著作権管理システムなどでは、コンテンツホルダの権利保持とユーザ利便性の両立を図ることが可能である。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２２】
（実施の形態１）
＜マイクロコンピュータを搭載した情報処理装置の構成＞
図１により、本発明の実施の形態１に係るマイクロコンピュータを搭載した情報処理装置の構成について説明する。図１は本発明の実施の形態１に係るマイクロコンピュータを搭載した情報処理装置の構成を示す構成図である。
【００２３】
図１において、情報処理装置１０１は、マイクロコンピュータ１０２を搭載し、揮発性記憶装置１０７、不揮発性記憶装置１０８を備え、マイクロコンピュータ１０２、揮発性記憶装置１０７、不揮発性記憶装置１０８などの情報処理装置１０１を構成する各機能ブロックは、それぞれの間で命令やデータをやり取りするための命令・データバス線(以下、データバス)１１１により接続されている。
【００２４】
なお、図１では、情報処理装置１０１を構成するのに最低限必要な機能構成を示しており、これ以外の機能ブロックを有してもよい。
【００２５】
情報処理装置１０１に搭載されるマイクロコンピュータ１０２は、半導体パッケージに封止されたＬＳＩであり、中央演算処理装置（以下、ＣＰＵとする）１０３、暗号処理装置１０４、ハッシュ関数処理装置１０５、シーケンス処理装置である認証シーケンサ装置１１２の機能ブロックを含み、秘密情報１０６が保持されている。
【００２６】
ＣＰＵ１０３は、ソフトウェアコードを読み込み、定められた処理を実行する。
【００２７】
暗号処理装置１０４は、入力された暗号鍵と処理対象データに対し、所定の暗号アルゴリズムに基づいた処理を行ない、処理結果データを出力する。この暗号処理装置１０４はＣＰＵ１０３からの処理命令に応じて動作し、また、マイクロコンピュータ１０２外と直接データをやり取りする機能を有しない。
【００２８】
暗号処理装置１０４の動作は、ＣＰＵ１０３から見てブラックボックスであり、暗号処理の中間状態などは観察されない。また、ＬＳＩ内の機能ブロックであり、かつ、マイクロコンピュータ１０２外と直接データをやり取りしないことから、同様に、マイクロコンピュータ１０２外部から暗号処理の中間状態などは観察されない。暗号アルゴリズムの選択は任意である。
【００２９】
ハッシュ関数処理装置１０５は、入力された処理対象データに対し、所定のハッシュ関数アルゴリズムに基づいた処理を行ない、処理結果データを出力する。暗号処理装置１０４と同様に、ハッシュ関数処理装置１０５の動作は、ＣＰＵ１０３から見てブラックボックスであり、かつ、マイクロコンピュータ外部からハッシュ関数処理の中間状態などは観察されない。
【００３０】
ハッシュ関数アルゴリズムの選択は任意であるが、ハッシュ関数処理装置１０５においては、通常のハッシュ関数アルゴリズムに加え、鍵付きハッシュ関数と称される、秘密情報の共有と処理対象データの完全性を同時に認証することのできるアルゴリズムの処理も可能である。
【００３１】
秘密情報１０６は、マイクロコンピュータ１０２内で秘密裏に保持される情報で、情報処理装置１０１によって実現されるアプリケーションが必要とする任意の秘密情報であり、暗号処理装置１０４、ハッシュ関数処理装置１０５にて用いられる暗号鍵、何らかの処理に必要なＩＤや定数値などであってよい。
【００３２】
秘密情報１０６をマイクロコンピュータ１０２内で秘密裏に保持する機能としては、ＲＯＭなどの書換え不可能な不揮発性メモリを設け保管、ＥＥＰＲＯＭ、フラッシュメモリなどの書換え可能な不揮発性メモリを設け保管、フリップフロップ素子によるハードウェアレジスタの初期値として保管、など任意の手法を用いてよい。
【００３３】
揮発性記憶装置１０７は、マイクロコンピュータ１０２が、演算処理を行なう際にワーク領域として用いるＳＤＲＡＭなどの揮発性の記憶装置である。
【００３４】
不揮発性記憶装置１０８は、マイクロコンピュータ１０２が、処理を行なう際に必要となるＯＳやアプリケーション、データを保管するための、フラッシュメモリ、ハードディスクなどの不揮発性の記憶装置である。
【００３５】
不揮発性記憶装置１０８には、情報処理装置１０１の起動時に、ＣＰＵ１０３に読み込まれ、その後に実行すべきソフトウェアを指定する第１のプログラムであるブートローダプログラム(以下、ブートローダとする）１０９、ＣＰＵ１０３に読み込まれ、処理されるオペレーティングシステムプログラム（以下、ＯＳとする）１１０が格納されている。
【００３６】
ＯＳ１１０は、ブートローダ１０９によって読出しを指定される。情報処理装置１０１の用途によっては、ＯＳ１１０を搭載せずにアプリケーションプログラムのみ搭載するようなシステムも存在する。本実施の形態においては、ＯＳ１１０をアプリケーションプログラムと読み替えることで、そのようなＯＳレスのシステムについても同様に考えることが可能である。
【００３７】
認証シーケンサ装置１１２は、情報処理装置１０１の起動時に動作し、ブートローダ１０９の正当性を認証する機能を有する。この認証シーケンサ装置１１２はＣＰＵ１０３とは独立して動作し、秘密情報１０６に独自にアクセスする機能、暗号処理装置１０４、ハッシュ関数処理装置１０５に対して必要な命令を発行し、出力結果値を入力する機能を有する。また、不揮発性記憶装置１０８にアクセスし、所定のプログラム、データなどを入力する機能を有する。
【００３８】
なお、情報処理装置１０１の構成要素であるマイクロコンピュータ１０２、ＣＰＵ１０３、暗号処理装置１０４、ハッシュ関数処理装置１０５、秘密情報１０６、揮発性記憶装置１０７、不揮発性記憶装置１０８、認証シーケンサ装置１１２は論理的構成を示し、必ずしも物理的に図と同一構成である必要はない。例えば、秘密情報１０６は物理的には暗号処理装置１０４やハッシュ関数処理装置１０５に保管されていてもよい。また、暗号処理装置１０４やハッシュ関数処理装置１０５などの処理機能は、専用のハードウェアによる実装としてもよいし、独立したＣＰＵと、メモリに保管されるプログラムによる実装としてもよく、物理的な構成方法は問わない。
【００３９】
＜マイクロコンピュータを搭載した情報処理装置の動作＞
次に、図２〜図５により、本発明の実施の形態１に係るマイクロコンピュータを搭載した情報処理装置の動作について説明する。図２〜図５は本発明の実施の形態１に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
【００４０】
まず、図２に示すように、情報処理装置１０１は、電源が投入されると、電源投入時に必要な各機能モジュールの初期化を行ない、各機能モジュールが正常に動作するかを確認する（ステップ２０１）。
【００４１】
次に、各機能モジュールの初期化完了後、認証シーケンサ装置１１２の指示に従い、ブートローダ１０９が改竄されておらず、完全性を有しているか否かを認証する（ステップ２０２）。
【００４２】
以下、具体的手順の一例を示す。まず、前提条件を２つ示す。ブートローダ１０９は、ブートローダ本体と、予め定められた秘密鍵を用いて求められたブートローダ本体の鍵付きハッシュ値とから構成される。また、予め定められた秘密鍵は、秘密情報１０６に予め保管されている。
【００４３】
次に、動作手順を説明する。認証シーケンサ装置１１２は、不揮発性記憶装置１０８にアクセスし、ブートローダ１０９領域からブートローダ本体を読み込む。次に、認証シーケンサ装置１１２は、秘密情報１０６に保管されている予め定められた秘密鍵を取り出し、ブートローダ本体と予め定められた秘密鍵を、ハッシュ関数処理装置１０５に入力し、上記２つの入力値から、鍵付きハッシュ値を求める。
【００４４】
次に、認証シーケンサ装置１１２は、不揮発性記憶装置１０８にアクセスし、ブートローダ１０９領域からブートローダ本体の鍵付きハッシュ値を読み込み、先に求めた鍵付きハッシュ値との比較を行なう。２つの鍵付きハッシュ値が一致すれば、ブートローダ本体の完全性は証明され、また、ブートローダ１０９は、情報処理装置１０１と予め定められた秘密鍵を共有する主体によって生成されたことも証明される。
【００４５】
また、完全性検証手順としては、以下の手順を用いてもよい。
【００４６】
まず、前提条件を２つ示す。ブートローダ１０９は、ブートローダ本体と、ブートローダ本体のハッシュ値とから構成され、更にこれら２つのデータを予め定められた暗号鍵によって暗号化された暗号化データとなっている。
【００４７】
また、予め定められた暗号鍵は、秘密情報１０６に予め保管されている。
【００４８】
次に、動作手順を説明する。認証シーケンサ装置１１２は、不揮発性記憶装置１０８にアクセスし、ブートローダ１０９領域から暗号化されたブートローダ本体、および、ブートローダ本体のハッシュ値を読み込む。
【００４９】
次に、認証シーケンサ装置１１２は、秘密情報１０６に保管されている予め定められた暗号鍵を取り出し、暗号化されたブートローダ本体とブートローダ本体のハッシュ値と予め定められた暗号鍵を、暗号処理装置１０４に入力し、上記２つの入力値から、ブートローダ本体、および、ブートローダ本体のハッシュ値を求める。
【００５０】
次に、認証シーケンサ装置１１２は、得られたブートローダ本体を、ハッシュ関数処理装置１０５に入力し、ブートローダ本体のハッシュ値を求める。
【００５１】
次に、認証シーケンサ装置１１２は、先に暗号化されたブートローダ本体、および、ブートローダ本体のハッシュ値から得られたハッシュ値と、ハッシュ関数処理装置１０５の出力として得られたハッシュ値との比較を行なう。２つのハッシュ値が一致すれば、ブートローダ本体の完全性は証明され、また、ブートローダ１０９は、情報処理装置１０１と予め定められた暗号鍵を共有する主体によって生成されたことも証明される。
【００５２】
秘密情報１０６に保管する暗号鍵は、暗号アルゴリズムとして共通鍵アルゴリズムを用いるのであれば、ブートローダ本体、および、ブートローダ本体のハッシュ値の暗号化に用いるものと同一の鍵であり、暗号アルゴリズムとして公開鍵アルゴリズムを用いるのであれば、鍵ペアの片方である。処理速度の観点からは、一般的に共通鍵暗号アルゴリズムを選択した方が有利であることはいうまでもない。
【００５３】
ステップ２０２の認証処理の結果より、認証成功の場合にはステップ２０４へ、認証失敗の場合にはステップ２０５へと遷移する（ステップ２０３）。
【００５４】
ステップ２０２の処理において認証成功の場合、認証シーケンサ装置１１２の指示により、マイクロコンピュータ１０２内の特定の機能が有効となる（ステップ２０４）。ここで有効となる機能の種類は任意であるが、例えば、以下のようなものとしてもよい。
【００５５】
情報処理装置１０１の主たるアプリケーションがセキュリティ処理機能、性能に大きく依存する場合に、その機能実現に重要な役割を果たす、暗号処理装置１０４、ハッシュ関数処理装置１０５などのセキュリティ関連処理機能や、秘密情報１０６に保管される、何らかの認証処理に必要な共有情報等へのアクセス機能が有効となる。
【００５６】
機能の有効、無効を切り替える方法としては以下のような方式を利用してもよい。暗号処理装置１０４、ハッシュ関数処理装置１０５や秘密情報１０６を保管する記憶実体は、自身へのＣＰＵ１０３からのアクセスの有効、無効を設定する設定レジスタを具備し、設定レジスタは、認証シーケンサ装置１１２の指示によってのみ変更される。
【００５７】
これにより、装置類は、ＣＰＵ１０３から見た場合の、機能的な接続、分離が実現される。また、特定機能として、図１には示していない、ブートローダ認証成否結果を示すレジスタを設け、レジスタに処理結果に当する値を設定してもよい。
【００５８】
次に、ステップ２０３、またはステップ２０４からの遷移により、マイクロコンピュータ１０２内の特定の機能以外の機能が有効となる（ステップ２０５）。この処理は、ステップ２０４で示した設定レジスタと同様に、その他の装置類の機能の有効、無効を明示的に設定してもよいし、特に設定レジスタ類は設けず、無効化処理がないことで結果として当装置類の機能が有効となるとしてもよい。
【００５９】
ステップ２０５までの処理が完了すると、認証シーケンサ装置１１２は、ＣＰＵ１０３に制御を移す。ＣＰＵ１０３は、不揮発性記憶装置１０８からブートローダ１０９を読み込み、ブート処理を行なう（ステップ２０６）。
【００６０】
ステップ２０２の説明において、ブートローダ１０９が暗号化されて保管されている場合を示したが、そのような場合には、マイクロコンピュータ１０２内に、図１には示していない小容量のＲＡＭを設け、そのＲＡＭ内に、ステップ２０２にて復号したブートローダを保管しておき、ＣＰＵ１０３が、不揮発性記憶装置１０８の代わりにＲＡＭからブートローダ１０９を読み込むという処理を行なってもよい。
【００６１】
更に、ＣＰＵ１０３は、ブートローダ１０９に示される指示に従い、処理を進め、ＯＳ１１０をロードし、その他、情報処理装置１０１に必要なアプリケーションを実行する（ステップ２０７）。
【００６２】
なお、図２には示していないが、認証シーケンサ装置１１２がステップ２０２にてブートローダ１０９に対して行なった認証処理と同様に、ステップ２０６にてＣＰＵ１０３がブートローダ１０９の指示によりＯＳ１１０に対して、また、ステップ２０７にてＣＰＵ１０３がＯＳ１１０の指示により任意のアプリケーションに対して、認証処理を行なうことで、情報処理装置１０１の起動後に実行されるプログラムの改竄有無を確認することが可能であり、実行されるプログラムの完全性を保証可能な情報処理装置を実現可能である。
【００６３】
また、ステップ２０４に示したブートローダ認証成否結果を示すレジスタを設けた場合、ＯＳやアプリケーションが同レジスタ値を直接参照することで、実行内容を選択する、といった機能を追加することも可能である。
【００６４】
ここで、具体例として、本実施の形態に係るマイクロコンピュータ１０２を搭載した情報処理装置１０１を、著作権保護機能で管理された有価値コンテンツを取り扱うコンテンツ再生機器に適用した場合を考える。
【００６５】
このような応用の場合、不揮発性記憶装置１０８には、暗号化された有価値コンテンツ、有価値コンテンツを再生するための再生プログラム、秘密情報１０６には、暗号化された有価値コンテンツを復号するための暗号鍵が保管され、暗号化された有価値コンテンツは、ＣＰＵ１０３、暗号処理装置１０４の機能により復号され、図１には示していない、表示装置、音声再生装置により再生される、というのが一般的な形式である。
【００６６】
情報処理装置１０１におけるブートローダ１０９が、悪意の有無は問わず何らかの理由により改竄され、ステップ２０３の処理にて認証に失敗した場合、ＯＳ、アプリ類は実行されるが、ステップ２０４に示す重要な一部機能が無効化されている。
【００６７】
ここで無効化されるのが、秘密情報１０６に保管されている、有価値コンテンツの再生に必要な暗号鍵へのアクセス機能とすることで、有価値コンテンツの再生は不可能となる。著作権保護機能への攻撃可能性検知を、有価値コンテンツの不正使用に繋がると判断し、コンテンツ再生機器としての機能を制限することとなる。
【００６８】
しかしながら、ステップ２０５において、有価値コンテンツの再生とは直接関係しない、情報処理装置１０１の他の機能は有効化され、ユーザに対し、有価値コンテンツの再生以外の機能を提供することは妨げない。以上により、著作権保護などの重要な機能を実現しつつ、ユーザの利便性を過度に制限しないことを特徴とする情報処理装置が実現可能である。
【００６９】
また、このような応用の場合、情報処理装置１０１に用いるマイクロコンピュータ１０２には、暗号処理装置１０４、ハッシュ関数処理装置１０５、秘密情報１０６のようなセキュリティ処理に関する機能は必然的に具備されている。従って、ブートローダ１０９を認証するために追加が必要な装置は認証シーケンサ装置１１２のみであり、小さな追加コストにて、実行されるアプリケーション認証の基盤に当たるブートローダの認証機能を実現可能である。
【００７０】
更に、認証シーケンサ装置１１２はＣＰＵ１０３とは独立して動作し、また、その内部動作をＣＰＵ１０３から検知する機能を有しないことから、ＣＰＵ向けのデバッガなどを用いて認証シーケンサ装置１１２の動作解析を行なうことは不可能である。
【００７１】
また、暗号処理装置１０４、ハッシュ関数処理装置１０５、認証シーケンサ装置１１２をそれぞれ専用のハードウェア回路で構成した場合、一般的なＣＰＵでのソフトウェア処理と比較して高速処理が期待でき、情報処理装置１０１の起動時間短縮といったユーザビリティ上の効果が見込める。
【００７２】
以上、本実施の形態に係るマイクロコンピュータ１０２を搭載した情報処理装置１０１の動作を説明したが、図３に示すような動作としてもよい。
【００７３】
図３において、ステップ３０１は、図２に示したステップ２０１、ステップ３０３からステップ３０８はそれぞれ、図２に示したステップ２０２からステップ２０７と概略同一の動作であり、詳細な説明は省略する。但し、ステップ３０４の遷移先ステップは、ステップ３０５、ステップ３０６となる。
【００７４】
ステップ３０２において、各機能モジュールの初期化完了後、マイクロコンピュータ１０２はブートローダ１０９の認証が必要であるかを判定し、必要である場合には、ステップ３０３に、不要である場合には、ステップ３０６に遷移する（ステップ３０２）。
【００７５】
上記手順は、電源投入後の機能モジュールの初期化完了後に、不揮発性記憶装置１０８に保管されたブートローダ１０９にアクセスするのが、認証シーケンサ装置１１２であるか、ＣＰＵ１０３であるかを決定するステップである。
【００７６】
前者であれば、本実施の形態の特徴であるブートローダ１０９の認証処理（ステップ３０３）が実行され、後者であれば、一般的な情報処理装置での起動処理が実行される。
【００７７】
図３に示す動作を採ることで、ブートローダを認証する機能を有するマイクロコンピュータ１０２であっても、マイクロコンピュータ１０２を搭載する情報処理装置で、一般的な情報処理装置の起動処理が実現可能となり、マイクロコンピュータの汎用性が向上する効果が得られる。
【００７８】
また、マイクロコンピュータ１０２がブートローダ１０９の認証が必要であるかを判定する手法としては、マイクロコンピュータ１０２に、図１には示していない、機能ピンを設け、電源投入時の機能ピンの論理入力により、機能切り替えを行なうという手法を用いてもよい。
【００７９】
同様に、本実施の形態に係る情報処理装置の動作は、図４に示すような動作としてもよい。
【００８０】
図４において、ステップ６０１からステップ６０７はそれぞれ、図２に示したステップ２０１からステップ２０７と概略同一の動作であり、詳細な説明は省略する。但し、ステップ６０３の遷移先ステップは、ステップ６０４、ステップ６０８となる。
【００８１】
ステップ６０８において、情報処理装置１０１は、図１に示していない、表示装置、音声出力装置を通して、ユーザに認証処理に失敗し、特定の機能が有効となっていないことに関するメッセージを伝達する。
【００８２】
上記の機能は、ユーザに情報処理装置１０１の機能状態を伝達することでシステム利便性の向上に効果がある。
【００８３】
また、本実施形態に係る情報処理装置の動作は、図５に示すような動作としてもよい。
【００８４】
図５において、ステップ７０１からステップ７０７はそれぞれ、図２に示したステップ２０１からステップ２０７と概略同一の動作であり、詳細な説明は省略する。但し、ステップ７０７の遷移先ステップは、ステップ７０８となる。
【００８５】
ステップ７０８において、情報処理装置１０１は、図１に示していない、表示装置、音声出力装置を通して、ユーザに認証処理に失敗し、特定の機能が有効となっていないことに関するメッセージを伝達する。
【００８６】
上記の機能は、図４の動作と同様に、ユーザに情報処理装置１０１の機能状態を伝達することでシステム利便性の向上に効果がある。
【００８７】
更に、ステップ７０８においては、情報処理装置１０１の有するＯＳ、周辺機器などの機能を用いてユーザにメッセージを伝達することが可能であることから、ステップ６０８の処理と比較して処理コストが低いという利点がある。
【００８８】
以上、本実施の形態によれば、強固かつ安価なブートローダ認証機能を有すると共に、ユーザによる情報処理装置の利用に過度の制限を加えないことを特徴とするマイクロコンピュータを搭載した情報処理装置を実現可能である。
【００８９】
（実施の形態２）
＜マイクロコンピュータを搭載した情報処理装置の構成＞
図６により、本発明の実施の形態２に係るマイクロコンピュータを搭載した情報処理装置の構成について説明する。図６は本発明の実施の形態２に係るマイクロコンピュータを搭載した情報処理装置の構成を示す構成図である。
【００９０】
図６において、情報処理装置４０１は、実施の形態１の図１に示す情報処理装置１０１にネットワーク装置４０２を加え、ネットワーク４０４を介して、サーバ装置４０３と情報をやり取りする機能を追加したものであり、それ以外の構成は、実施の形態１の図１に示したものと同一であり、詳細な説明は省略する。
【００９１】
なお、図６では、情報処理装置４０１を構成するのに最低限必要な機能構成を示しており、これ以外の機能ブロックを有してもよい。
【００９２】
ネットワーク装置４０２は、情報処理装置４０１に具備され、ＣＰＵ１０１の指示に従い、情報処理装置４０１の外部に接続されたネットワーク４０４を介し、他の情報処理装置とやり取りをする。
【００９３】
サーバ装置４０３は、ネットワーク４０４を介して情報処理装置４０１と接続され、何らかのやり取りをする情報処理装置である。
【００９４】
ネットワーク４０４は、ネットワーク装置４０２、サーバ装置４０３、ネットワーク装置４０２とサーバ装置４０３やその他のネットワーク対応情報処理装置などが接続されるネットワークである。
【００９５】
ネットワーク装置４０２、サーバ装置４０３、ネットワーク４０４が対応するネットワーク機能は任意であり、例えば、物理媒体としては、有線媒体であっても、無線媒体であってもよいし、同媒体上で実際に情報をやり取りする通信プロトコルの種類も任意である。
【００９６】
＜マイクロコンピュータを搭載した情報処理装置の動作＞
次に、図７により、本発明の実施の形態２に係るマイクロコンピュータを搭載した情報処理装置の動作について説明する。図７は本発明の実施の形態２に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
【００９７】
図７において、ステップ５０１からステップ５０７はそれぞれ、図２に示したステップ２０１からステップ２０７と概略同一の動作であり、詳細な説明は省略する。但し、ステップ５０３の遷移先ステップは、ステップ５０４、ステップ５０８となる。
【００９８】
ステップ５０８において、認証シーケンサ装置１１２は、ＣＰＵ１０３に処理を移し、ＣＰＵ１０３は特定のアプリケーションを実行し、終了する。
【００９９】
ステップ５０４からステップ５０７に遷移しないことから、情報処理装置４０１の具備する特定機能が有効化されることはなく（ステップ５０４）、また、本来起動されるべきＯＳやアプリケーションプログラムが起動されることもない（ステップ５０７）。
【０１００】
ステップ５０８にて実行されるアプリケーションとしては以下のようなものを実行してもよい。
【０１０１】
情報処理装置４０１は、ネットワーク装置４０２を介して、サーバ装置４０３と接続し、サーバ装置４０３に対し、所定の情報、例えば、情報処理装置４０１の起動ログ情報や、機器固有のＩＤなどの情報を送信する。これに対し、サーバ装置４０３は、トラブルの内容を解析し、情報処理装置４０１に対して正常なブートローダをネットワーク４０４経由で送信し、不揮発性記憶装置１０８の内容を書き換える、所謂ホットフィックス処理を行なう。
【０１０２】
若しくは、図６に示していない、表示装置、音声出力装置を通して、ユーザにトラブルに対する対処方法に関するメッセージを伝達する。上記の機能は情報処理装置４０１に対する、システムとしてのメンテナンスコストの低減に効果がある。
【０１０３】
以上の処理により、情報処理装置４０１のブートローダ１０９に、ユーザの意図しない不具合があった場合に、ネットワーク経由で自動的、または半自動的に、不具合を修正する機能を提供することが可能であり、ユーザのシステム可用性が向上する効果が得られる。
【０１０４】
一方、ステップ５０８への遷移が、悪意によるブートローダ１０９の改竄に起因するような場合には、ステップ５０８で実行される特定のアプリケーションの内容も改竄されており、本来期待されるネットワーク経由の不具合修正機能が正常に実行されない危険性がある。しかしながら、その場合でも、ステップ５０４に遷移するパスが存在しないことから、セキュリティ上重要な機能が不正に有効化されることはなく、セキュリティ性能の劣化は生じない。
【０１０５】
以上、本実施の形態によれば、強固かつ安価なブートローダ認証機能を有すると共に、不具合発生時に自動的に情報機器に対して修正処理を行なうなど、ユーザによる情報処理装置の利用性を向上させることを特徴とする情報処理装置を実現可能である。
【０１０６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１０７】
本発明は、任意のソフトウェアコードに基づき何らかの情報処理を行なうマイクロコンピュータに関し、特に、マイクロコンピュータを搭載した情報処理装置を起動させる際に用いるブートプログラム、ローダプログラムと称されるソフトウェアコードの改竄防止を行う情報処理装置に適用可能である。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施の形態１に係るマイクロコンピュータを搭載した情報処理装置の構成を示す構成図である。
【図２】本発明の実施の形態１に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
【図３】本発明の実施の形態１に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
【図４】本発明の実施の形態１に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
【図５】本発明の実施の形態１に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
【図６】本発明の実施の形態２に係るマイクロコンピュータを搭載した情報処理装置の構成を示す構成図である。
【図７】本発明の実施の形態２に係るマイクロコンピュータを搭載した情報処理装置の動作を示すフローチャートである。
【符号の説明】
【０１０９】
１０１…情報処理装置、１０２…マイクロコンピュータ、１０３…ＣＰＵ、１０４…暗号処理装置、１０５…ハッシュ関数処理装置、１０６…秘密情報、１０７…揮発性記憶装置、１０８…不揮発性記憶装置、１０９…ブートローダ、１１０…ＯＳ、１１１…データバス、１１２…認証シーケンサ装置、４０１…情報処理装置、４０２…ネットワーク装置、４０３…サーバ装置、４０４…ネットワーク。
【図１】
0004791250.tif 000002
【図２】
0004791250.tif 000003
【図３】
0004791250.tif 000004
【図４】
0004791250.tif 000005
【図５】
0004791250.tif 000006
【図６】
0004791250.tif 000007
【図７】
0004791250.tif 000008