(57)【要約】【課題】プログラムの正当性に対する信頼性を維持しつつ、起動時間の短縮を実現することが可能な情報処理装置等を提供すること。【解決手段】情報処理装置であって、実行手段が実行するプログラムを格納した読み書き可能な不揮発性メモリと、プログラムに対して署名検証を行う署名検証手段と、プログラムに対して簡易検査を行う簡易検査手段と、を備え、情報処理装置の起動時に簡易検査手段を呼び出して不揮発性メモリに格納されたプログラムに対する簡易検査を行わせ、情報処理装置の起動後、外部から不揮発性メモリに対するプログラムの書き込みが指示されたときに、プログラムに対する署名検証を行わせた結果、正当であることが確認された場合に不揮発性メモリに対するプログラムの書き込みを実行する情報処理装置。【選択図】図１
2013114621.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する実行手段を備える情報処理装置であって、
前記実行手段が実行するプログラムを格納した読み書き可能な不揮発性メモリと、
プログラムに対して署名検証を行う署名検証手段と、
プログラムに対して前記署名検証に比して処理負荷の小さい簡易検査を行う簡易検査手段と、
該情報処理装置の起動時に前記簡易検査手段を呼び出して前記不揮発性メモリに格納されたプログラムに対する簡易検査を行わせる起動時制御手段と、
該情報処理装置の起動後、外部から前記不揮発性メモリに対するプログラムの書き込みが指示されたときに起動し、前記書き込もうとするプログラムに対する署名検証を前記署名検証手段に行わせた結果、前記書き込もうとするプログラムが正当であることが確認された場合に前記不揮発性メモリに対するプログラムの書き込みを実行するプログラム書込制御手段と、
を備える情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記情報処理装置の起動時とは異なるタイミングで前記署名検証手段に前記不揮発性メモリに格納されたプログラムに対する署名検証を行わせる非起動時検証制御手段を備える、情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記非起動時検証制御手段は、周期的に動作する手段であり、
前記非起動時検証制御手段の動作タイミングをユーザにより設定可能とした、情報処理装置。
【請求項４】
請求項２に記載の情報処理装置であって、
前記非起動時検証制御手段は、前記実行手段の負荷状態に応じて自動的に動作する手段である情報処理装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の情報処理装置であって、
前記不揮発性メモリに対するプログラムの書き込みは、前記プログラム書込制御手段の指示による書き込みのみが許可される、情報処理装置。
【請求項６】
請求項１ないし５のいずれか１項に記載の情報処理装置であって、
前記起動時制御手段、及び前記簡易検査手段は、マスクＲＯＭ（Read  Only  Memory）に格納されたプログラムが実行されることによって動作するソフトウエア手段であり、
前記署名検証手段、及び前記プログラム書込制御手段は、前記不揮発性メモリに格納されたプログラムが実行されることによって動作するソフトウエア手段である、
情報処理装置。
【請求項７】
請求項６に記載の情報処理装置であって、
前記署名検証手段が用いる署名鍵は、前記マスクＲＯＭに格納される、情報処理装置。
【請求項８】
通信可能に接続された第１のプロセッサと第２のプロセッサを備える請求項１ないし７のいずれか１項に記載の情報処理装置であって、
前記不揮発性メモリは第１のプロセッサに搭載され、
前記署名検証手段、前記プログラム書込制御手段は前記第１のプロセッサ上で動作し、
前記実行手段は前記第２のプロセッサに搭載され、前記第１のプロセッサに搭載された不揮発性メモリに格納されたプログラムを実行することを特徴とする、
情報処理装置。
【請求項９】
実行手段が実行するプログラムを格納した読み書き可能な不揮発性メモリを備える情報処理装置のプログラム検証方法であって、
該情報処理装置の起動時に、前記不揮発性メモリに格納されたプログラムに対する署名検証に比して処理負荷の小さい簡易検査を行う処理と、
該情報処理装置の起動後、外部から前記不揮発性メモリに対するプログラムの書き込みが指示されたときに、該書き込もうとするプログラムに対する署名検証を行い、前記書き込もうとするプログラムが正当であることが確認された場合に前記不揮発性メモリに対するプログラムの書き込みを実行する処理と、
を前記情報処理装置が実行する、情報処理装置のプログラム検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及びそのプログラム検証方法に関する。
【背景技術】
【０００２】
従来、電子装置に組み込まれた組込コンピュータ、パーソナルコンピュータ、サーバ装置等の情報処理装置の起動時において、動作させるプログラムが、悪意による改竄や破損等がなされていない正当なプログラムであるかどうかを検証する処理が行われている。この検証処理の手法として、プログラムに付与されたディジタル署名を利用した署名検証が広く採用されている。
【０００３】
特許文献１には、記録媒体から主記憶装置にプログラムを一部ずつ読み込むプログラム読み込み手段と、主記憶装置に読み込まれた一部ずつのプログラムの正当性の有無を判断するプログラム認証手段と、正当性有りと判断された一部ずつのプログラムを実行するプログラム実行手段とを備えた情報処理装置について記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ディジタル署名を利用した署名検証は、情報処理装置の性能によっては処理時間が長くなる場合があり、起動時間が長くなるという不都合が生じる場合があった。
【０００５】
この点、特許文献１に記載の情報処理装置では、署名検証を分割処理しているため、起動時間の短縮に一定の効果を奏することができる。但し、起動後に多くのプログラムを実行しようとすると、結局全てのプログラムについて署名検証が終了するのを待つ必要がある。
【０００６】
本発明は、一側面では、プログラムの正当性に対する信頼性を維持しつつ、起動時間の短縮を実現することが可能な情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するための本発明の一態様は、
プログラムを実行する実行手段を備える情報処理装置であって、
前記実行手段が実行するプログラムを格納した読み書き可能な不揮発性メモリと、
プログラムに対して署名検証を行う署名検証手段と、
プログラムに対して前記署名検証に比して処理負荷の小さい簡易検査を行う簡易検査手段と、
該情報処理装置の起動時に前記簡易検査手段を呼び出して前記不揮発性メモリに格納されたプログラムに対する簡易検査を行わせる起動時制御手段と、
該情報処理装置の起動後、外部から前記不揮発性メモリに対するプログラムの書き込みが指示されたときに起動し、前記署名検証手段に前記書き込もうとするプログラムに対する署名検証を行わせた結果、前記書き込もうとするプログラムが正当であることが確認された場合に前記不揮発性メモリに対するプログラムの書き込みを実行するプログラム書込制御手段と、
を備える情報処理装置である。
【発明の効果】
【０００８】
本発明の一側面によれば、プログラムの正当性に対する信頼性を維持しつつ、起動時間の短縮を実現することが可能な情報処理装置等を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１実施例に係る情報処理装置１のハードウエア構成例である。
【図２】本発明の第１実施例に係る情報処理装置１のソフトウエア間の関係を模式的に示す図である。
【図３】パリティチェックの対象となるプログラムのデータ構造を示す図である。
【図４】情報処理装置１の起動時における処理の流れを示すシーケンス図である。
【図５】非起動時検証設定情報３０Ｇの一例である。
【図６】非起動時に署名検証が行われる際の処理の流れを示すシーケンス図である。
【図７】非起動時検証結果３０Ｈの一例である。
【図８】外部から不揮発性メモリ３０へのプログラム書込指示がなされた際の処理の流れを示すシーケンス図である。
【図９】署名検証の対象となるプログラムのデータ構造を示す図である。
【図１０】本発明の第２実施例に係る情報処理装置１のハードウエア構成例である。
【図１１】外部から不揮発性メモリ１３０へのプログラム書込指示がなされた際の処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１１】
＜第１実施例＞
［構成］
以下、図面を参照し、本発明の第１実施例に係る情報処理装置、及びそのプログラム検証方法について説明する。
【００１２】
図１は、本発明の第１実施例に係る情報処理装置１のハードウエア構成例である。情報処理装置１は、主要な構成として、ＣＰＵ（Central  Processing  Unit）１０と、マスクＲＯＭ（Read  Only  Memory）２０と、不揮発性メモリ３０と、ＲＡＭ（Random  Access  Memory）４０と、入出力インターフェース５０と、タイマ６０と、を備える。なお、情報処理装置１は、これらの構成要素の他、ＤＭＡ（Direct  Memory  Access）コントローラ等のハードウエアを備えてもよい。
【００１３】
ＣＰＵ１０は、例えば、プログラムカウンタや命令デコーダ、各種演算器、ＬＳＵ（Load  Store  Unit）、汎用レジスタ、キャッシュメモリ等を有する。
【００１４】
マスクＲＯＭ２０は、書き込み不能なＲＯＭである。マスクＲＯＭ２０には、ＢＩＯＳ（Basic  Input/Output  System）等を含む起動制御モジュール２０Ａ、簡易検査モジュール２０Ｂ、署名鍵２０Ｃ等のプログラムやデータが格納される。以下、本実施例において「モジュール」は、プログラム又はソフトウエアと同義のものとする。
【００１５】
不揮発性メモリ３０は、例えばフラッシュメモリ、ＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）、ＨＤＤ（Hard  Disk  Drive）等である。不揮発性メモリ３０には、非起動時検証制御モジュール３０Ａ、署名検証モジュール３０Ｂ、時刻管理モジュール３０Ｃ、ログ記録モジュール３０Ｄ、プログラム書込制御モジュール３０Ｅ、不揮発性メモリ書込モジュール３０Ｆ、その他、オペレーティングシステムや各種アプリケーションプログラム等、並びにデータが格納される。
【００１６】
ＲＡＭ４０は、ＣＰＵ１０により使用されるワーキングメモリとして機能する。
【００１７】
入出力インターフェース５０は、ＬＡＮ（Local  Area  Network）やインターネット等のネットワーク、或いはＳＤカードやＵＳＢメモリ等の可搬型メモリ、ＣＤ、ＤＶＤ等の媒体が装着されるスロットやドライブ装置等、或いはマウスやキーボード、ボタン、表示装置等の入出力装置との間で情報の入出力を行う。
【００１８】
図２は、本発明の第１実施例に係る情報処理装置１のソフトウエア間の関係を模式的に示す図である。
【００１９】
図示するように、情報処理装置１の起動時（電源投入時、再起動時等）には、起動制御モジュール２０Ａが簡易検査モジュール２０Ｂを呼び出して動作させる。起動制御モジュール２０Ａは、情報処理装置１の起動処理全般を制御するプログラムである。
【００２０】
簡易検査モジュール２０Ｂは、不揮発性メモリ３０に格納されたプログラム、及び必要に応じてデータに対して、パリティチェック等の簡易な検査を行う。これにより、プログラムに改竄や破損等が生じているか否かを検査することができる。図３は、パリティチェックの対象となるプログラムのデータ構造を示す図である。パリティデータは、プログラムの作成時又は更新時に付与される。
【００２１】
［起動時の処理］
図４は、情報処理装置１の起動時における処理の流れを示すシーケンス図である。
【００２２】
まず、ユーザが電源スイッチを押す等して起動指示がなされると（Ｓ１００）、起動制御モジュール２０Ａは、不揮発性メモリ３０に格納されたプログラム等をＲＡＭ４０に展開すると共に簡易検査モジュール２０Ｂを呼び出し、不揮発性メモリ３０に格納されたプログラム等に対する簡易検査を行うように指示する（Ｓ１０２）。
【００２３】
簡易検査モジュール２０Ｂによる簡易検査の結果、不揮発性メモリ３０に格納されたプログラム等が正常である旨の応答が簡易検査モジュール２０Ｂから起動制御モジュール２０Ａに返信されると（Ｓ１０４）、起動制御モジュール２０Ａは既にＲＡＭ４０に展開しているプログラムを起動させる（Ｓ１０６）。
【００２４】
［非起動時の署名検証］
一方、情報処理装置１の起動後には、非起動時検証制御モジュール３０Ａが所定のタイミングで起動し、署名検証モジュール３０Ｂを呼び出して動作させる（非起動時の署名検証）。非起動時検証制御モジュール３０Ａの動作タイミングは、ユーザにより設定される周期的なタイミングであってもよいし、ＣＰＵ１０の処理負荷（例えばＣＰＵ使用率）に応じて自動的に動作するものとしてもよい。後者の場合、例えばＣＰＵ使用率が所定値未満の状態が数分間程度継続したときに、非起動時の署名検証を開始する等と定めることができる。
【００２５】
ユーザにより非起動時検証制御モジュール３０Ａの動作タイミングが設定される場合、例えば不揮発性メモリ３０上に格納される非起動時検証設定情報３０Ｇを参照して非起動時検証制御モジュール３０Ａが動作する。図５は、非起動時検証設定情報３０Ｇの一例である。ユーザは、入出力インターフェース５０に接続された入出力装置を操作することにより、非起動時の署名検証を行う頻度や時間帯を指定することができる。
【００２６】
図６は、非起動時に署名検証が行われる際の処理の流れを示すシーケンス図である。本図は、非起動時の署名検証が非起動時検証設定情報３０Ｇを参照して周期的に行われることを前提としている。
【００２７】
まず、非起動時検証制御モジュール３０Ａが、時刻管理モジュール３０Ｃから時刻情報を取得し（Ｓ２００）、非起動時検証設定情報３０Ｇを参照する（Ｓ２０２）。
【００２８】
非起動時の署名検証を実行する時刻になると、非起動時検証制御モジュール３０Ａは、不揮発性メモリ３０に格納されたプログラム等に対する署名検証を行うように、署名検証モジュール３０Ｂに指示する（Ｓ２０４）。署名検証モジュール３０Ｂによる署名検証は、例えば不揮発性メモリ３０上で行われる。これによって、格納アドレスの確認等が可能となるからである。なお、署名検証モジュール３０Ｂは、署名検証モジュール３０Ｂ自身についての署名検証も行う。
【００２９】
非起動時の署名検証が終了すると、非起動時検証制御モジュール３０Ａは、非起動時検証結果３０Ｈを不揮発性メモリ３０に格納するように、ログ記録モジュール３０Ｄに指示する（Ｓ２０６）。図７は、非起動時検証結果３０Ｈの一例である。非起動時に署名検証が行われる対象となるプログラムのデータ構造については、図３と同様である。ここでは、後述する不揮発性メモリ３０への書き込み完了している状態であるため、パリティデータは既に付与されている。
【００３０】
［プログラムの書き込み指示がなされたとき］
また、情報処理装置１の起動後において、外部から不揮発性メモリ３０へのプログラム書込指示がなされたときには、プログラム書込制御モジュール３０Ｅが起動し、当該書き込もうとするプログラムに対する署名検証を署名検証モジュール３０Ｂに行わせ、プログラムが正当であることが確認されると、不揮発性メモリ書込モジュール３０Ｆに当該プログラムを不揮発性メモリ３０に書き込ませる。
【００３１】
外部からのプログラム書込指示は、入出力インターフェース５０を介した書き込み指示全般を指し、ＳＤカードやＵＳＢメモリ、ＣＤ、ＤＶＤ等の装着による指示の場合や、ネットワークを介して外部のコンピュータ等から指示される場合等があり得る。
【００３２】
プログラム書込指示とは、新たなプログラムを書き込む指示と、既に不揮発性メモリ３０に格納されているプログラムを更新（アップデート等）する指示との双方を含む。外部からのプログラム書込指示は、典型的には、入出力インターフェース５０に入力されたプログラムのヘッダ部分等に書込指示が記述されているのを、オペレーティングシステム等が認識することによって受理される。
【００３３】
書き込み指示がなされたときの署名検証は、入出力インターフェース５０に入力されたプログラムを一度ＲＡＭ４０に展開してから行ってもよいし、ＳＤカードやＵＳＢメモリ、ＣＤ、ＤＶＤ等の装着による指示の場合は、これらの媒体上で行ってもよい。
【００３４】
本実施例において、不揮発性メモリ３０へのプログラム書き込みは、プログラム書込制御モジュール３０Ｅの指示、認証がなければ許可されないように、オペレーティングシステム等が管理している。
【００３５】
図８は、外部から不揮発性メモリ３０へのプログラム書込指示がなされた際の処理の流れを示すシーケンス図である。
【００３６】
まず、例えばユーザが、書き込むプログラムを格納したＳＤカードやＵＳＢメモリをスロット等に装着すると、入出力インターフェース５０がヘッダ部分の書込指示を読み取ってオペレーティングシステムに出力する。これによって起動指示がプログラム書込制御モジュール３０Ｅに送信され（Ｓ３００）、プログラム書込制御モジュール３０Ｅが起動する。
【００３７】
プログラム書込制御モジュール３０Ｅは、プログラムの署名検証指示を署名検証モジュール３０Ｂに送信する（Ｓ３０２）。図９は、署名検証の対象となるプログラムのデータ構造を示す図である。パリティデータは、プログラム書込制御時の署名検証が完了すると、署名検証モジュール３０Ｂによって付与される。
【００３８】
署名検証モジュール３０Ｂが正当性を確認すると、その旨がプログラム書込制御モジュール３０Ｅに送信される（Ｓ３０４）。プログラム書込制御モジュール３０Ｅは、署名検証が完了したプログラムを不揮発性メモリ３０に書き込むように不揮発性メモリ書込モジュール３０Ｆに指示する（Ｓ３０６）。この際に、不揮発性メモリ書込モジュール３０Ｆは、自己の処理として書き込みを行ってもよいし、ＤＭＡコントローラ等に指示して書き込みを行わせてもよい。
【００３９】
以上説明した本実施例の情報処理装置、及びそのプログラム検証方法によれば、不揮発性メモリ３０に格納された、或いは書き込もうとしているプログラムの正当性検証を、起動時、非起動時、及び書込指示がなされたときに分散させ、起動時には簡易なパリティチェックのみを行うように制御している。また、不揮発性メモリ３０へのプログラム書き込みは、プログラム書込制御モジュール３０Ｅの指示、認証がなければ許可されないように制御される。
【００４０】
この結果、プログラムの正当性に対する信頼性を維持しつつ、起動時間の短縮を実現することができる。
【００４１】
また、非起動時検証制御モジュール３０Ａの動作タイミングを、ユーザにより設定される周期的なタイミングとすることにより、ユーザが余り情報処理装置１を使用しない時間帯で署名検証を行うことができる。この結果、署名検証による処理遅延によってユーザが煩わしさを感じるのを抑制することができる。
【００４２】
また、非起動時検証制御モジュール３０Ａの動作タイミングを、ＣＰＵ１０の処理負荷に応じて自動的に動作するものとすることにより、ユーザが情報処理装置１を使用していない期間、或いは処理負荷が低い状態で使用している期間で署名検証を行うことができる。この結果、署名検証による処理遅延によってユーザが煩わしさを感じるのを抑制することができる。
【００４３】
＜第２実施例＞
以下、図面を参照し、本発明の第２実施例に係る情報処理装置、及びそのプログラム検証方法について説明する。
【００４４】
図１０は、本発明の第２実施例に係る情報処理装置１のハードウエア構成例である。情報処理装置２は、互いに通信可能なプロセッサ１００と、プロセッサ２００と、を備える。プロセッサ間の通信は、例えばＵＳＢ（Universal  Serial  Bus）やＰＣＩ等の通信方式に従って行われる。以下、各構成要素の基本的な機能（例えばマスクＲＯＭが書き込み不能なＲＯＭであること等）については第１実施例を参照することとし、詳細な説明を省略する。
【００４５】
プロセッサ１００は、主要な構成として、ＣＰＵ１１０と、マスクＲＯＭ１２０と、不揮発性メモリ１３０と、ＲＡＭ１４０と、入出力インターフェース１５０と、タイマ１６０と、プロセッサ間通信装置１７０と、を備える。
【００４６】
プロセッサ２００は、主要な構成として、ＣＰＵ２１０と、マスクＲＯＭ２２０と、不揮発性メモリ２３０と、ＲＡＭ２４０と、入出力インターフェース２５０と、タイマ２６０と、プロセッサ間通信装置２７０と、を備える。
【００４７】
マスクＲＯＭ１２０には、起動制御モジュール１２０Ａ、簡易検査モジュール１２０Ｂ、署名鍵１２０Ｃ等のプログラムやデータが格納される。以下、本実施例において「モジュール」は、プログラム又はソフトウエアと同義のものとする。
【００４８】
不揮発性メモリ１３０には、非起動時検証制御モジュール１３０Ａ、署名検証モジュール１３０Ｂ、時刻管理モジュール１３０Ｃ、ログ記録モジュール１３０Ｄ、プログラム書込制御モジュール１３０Ｅ、不揮発性メモリ書込モジュール１３０Ｆ、その他、オペレーティングシステムや各種アプリケーションプログラム等、並びにデータが格納される。
【００４９】
ＲＡＭ１４０は、ＣＰＵ１１０により使用されるワーキングメモリとして機能する。
【００５０】
入出力インターフェース１５０は、ＬＡＮ（Local  Area  Network）やインターネット等のネットワーク、或いは表示装置等の入出力装置との間で情報の入出力を行う。
【００５１】
プロセッサ２００のＣＰＵ２１０は、主に不揮発性メモリ１３０に格納されたプログラムを実行する。従って、プロセッサ２００の不揮発性メモリ２３０は、プロセッサ２００の処理ログを格納するため等に用いられる。
【００５２】
また、本実施例の情報処理装置２では、プロセッサ２００は制御対象機器を制御するメインプロセッサとして機能し、プロセッサ１００は簡易検査、署名検証を行うと共に、外部ネットワークとの送受信を行うサブプロセッサとして機能する。
【００５３】
［起動時の処理］
第１実施例と同様、情報処理装置２の起動（電源投入時、再起動時等）には、起動制御モジュール１２０Ａが簡易検査モジュール１２０Ｂを呼び出して動作させる。簡易検査モジュール２０Ｂは、不揮発性メモリ１３０に格納されたプログラム、及び必要に応じてデータに対して、パリティチェック等の簡易な検査を行う。
【００５４】
これにより、プログラムに改竄や破損等が生じているか否かを検査することができる。第１実施例と同様、簡易検査は、例えば不揮発性メモリ１３０に格納されたプログラム等がＲＡＭ１４０に展開された上で実行される。
【００５５】
起動時の処理について、ソフトウエア間の関係、シーケンス等については、第１実施例の説明を援用し、詳細な説明を省略する。
【００５６】
［非起動時の署名検証］
第１実施例と同様、情報処理装置２の起動後には、非起動時検証制御モジュール１３０Ａが所定のタイミングで起動し、署名検証モジュール１３０Ｂを呼び出して動作させる（非起動時の署名検証）。非起動時検証制御モジュール１３０Ａの動作タイミングは、ユーザにより設定される周期的なタイミングであってもよいし、ＣＰＵ１１０の処理負荷（例えばＣＰＵ使用率）に応じて自動的に動作するものとしてもよい。後者の場合、例えばＣＰＵ使用率が所定値未満の状態が数分間程度継続したときに、非起動時の署名検証を開始する等と定めることができる。
【００５７】
非起動時の署名検証について、ソフトウエア間の関係、シーケンス等については、第１実施例の説明を援用し、詳細な説明を省略する。
【００５８】
［プログラムの書き込み指示がなされたとき］
また、情報処理装置２の起動後において、外部から不揮発性メモリ１３０へのプログラム書込指示がなされたときには、プログラム書込制御モジュール１３０Ｅが起動し、当該書き込もうとするプログラムに対する署名検証を署名検証モジュール１３０Ｂに行わせ、プログラムが正当であることが確認されると、不揮発性メモリ書込モジュール１３０Ｆに当該プログラムを不揮発性メモリ１３０に書き込ませる。
【００５９】
プログラム書込指示は、プロセッサ１００が受け付ける場合と、プロセッサ２００が受け付けてプロセッサ１００に転送する場合があり得る。いずれの場合も、不揮発性メモリ１３０へのプログラム書き込みは、プログラム書込制御モジュール１３０Ｅの指示、認証がなければ許可されないように、プロセッサ１００のオペレーティングシステム等が管理している。
【００６０】
図１１は、外部から不揮発性メモリ１３０へのプログラム書込指示がなされた際の処理の流れを示すシーケンス図である。本図は、プロセッサ２００がプログラム書込指示を受け付けた場面を表す。
【００６１】
まず、ユーザが、書き込むプログラムを格納したＳＤカードやＵＳＢメモリをプロセッサ２００が管理するスロット等に装着すると、入出力インターフェース２５０がヘッダ部分の書込指示を読み取ってプロセッサ２００のオペレーティングシステムに出力する。これによってプログラム書込指示がプロセッサ２００からプロセッサ１００に送信され（Ｓ４００）、プロセッサ１００のオペレーティングシステムから起動指示がプログラム書込制御モジュール１３０Ｅに送信され（Ｓ４０２）、プログラム書込制御モジュール１３０Ｅが起動する。
【００６２】
プログラム書込制御モジュール１３０Ｅは、プログラムの署名検証指示を署名検証モジュール１３０Ｂに送信する（Ｓ４０４）。
【００６３】
署名検証モジュール１３０Ｂが正当性を確認すると、その旨がプログラム書込制御モジュール１３０Ｅに送信される（Ｓ４０６）。プログラム書込制御モジュール１３０Ｅは、署名検証が完了したプログラムを不揮発性メモリ３０に書き込むように不揮発性メモリ書込モジュール１３０Ｆに指示する（Ｓ４０８）。この際に、不揮発性メモリ書込モジュール１３０Ｆは、自己の処理として書き込みを行ってもよいし、ＤＭＡコントローラ等に指示して書き込みを行わせてもよい。
【００６４】
以上説明した本実施例の情報処理装置、及びそのプログラム検証方法によれば、プロセッサ２００が実行するプログラムを格納する不揮発性メモリ１３０に格納された、或いは書き込もうとしているプログラムの正当性検証を、起動時、非起動時、及び書込指示がなされたときに分散させ、起動時には簡易なパリティチェックのみを行うように制御している。また、不揮発性メモリ１３０へのプログラム書き込みは、プログラム書込制御モジュール１３０Ｅの指示、認証がなければ許可されないように制御される。
【００６５】
この結果、プログラムの正当性に対する信頼性を維持しつつ、起動時間の短縮を実現することができる。
【００６６】
また、非起動時検証制御モジュール１３０Ａの動作タイミングを、ユーザにより設定される周期的なタイミングとすることにより、ユーザが余り情報処理装置２を使用しない時間帯で署名検証を行うことができる。この結果、署名検証による処理遅延によってユーザが煩わしさを感じるのを抑制することができる。
【００６７】
また、非起動時検証制御モジュール１３０Ａの動作タイミングを、ＣＰＵ１１０の処理負荷に応じて自動的に動作するものとすることにより、ユーザが情報処理装置２を使用していない期間、或いは処理負荷が低い状態で使用している期間で署名検証を行うことができる。この結果、署名検証による処理遅延によってユーザが煩わしさを感じるのを抑制することができる。
【００６８】
また、プロセッサ２００は制御対象機器を制御するメインプロセッサとして機能し、プロセッサ１００は簡易検査、署名検証を行うと共に、外部ネットワークとの送受信を行うサブプロセッサとして機能するため、署名検証を行う処理負荷によって、本来行うべき制御対象機器の制御が妨げられるという不都合が生じない。このため、プロセッサ２００による迅速な処理を実現することができる。
【００６９】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００７０】
１、２  情報処理装置
１０、１１０、２１０        ＣＰＵ
２０、１２０、２２０        マスクＲＯＭ
２０Ａ、１２０Ａ、２２０Ａ  起動制御モジュール
２０Ｂ、１２０Ｂ、２２０Ｂ  簡易検査モジュール
２０Ｃ、１２０Ｃ、２２０Ｃ  署名鍵
３０、１３０、２３０        不揮発性メモリ
３０Ａ、１３０Ａ、２３０Ａ  非起動時検証制御モジュール
３０Ｂ、１３０Ｂ、２３０Ｂ  署名検証モジュール
３０Ｃ、１３０Ｃ、２３０Ｃ  時刻管理モジュール
３０Ｄ、１３０Ｄ、２３０Ｄ  ログ記録モジュール
３０Ｅ、１３０Ｅ、２３０Ｅ  プログラム書込制御モジュール
３０Ｆ、１３０Ｆ、２３０Ｆ  不揮発性メモリ書込モジュール
４０、１４０、２４０        ＲＡＭ
５０、１５０、２５０        入出力インターフェース
６０、１６０、２６０        タイマ
１７０、２７０              プロセッサ間通信装置
【先行技術文献】
【特許文献】
【００７１】
【特許文献１】特開２０１０−１４６１１０号公報
【図１】
2013114621.tif 000003
【図２】
2013114621.tif 000004
【図３】
2013114621.tif 000005
【図４】
2013114621.tif 000006
【図５】
2013114621.tif 000007
【図６】
2013114621.tif 000008
【図７】
2013114621.tif 000009
【図８】
2013114621.tif 000010
【図９】
2013114621.tif 000011
【図１０】
2013114621.tif 000012
【図１１】
2013114621.tif 000013