(57)【要約】【課題】プログラムの起動時にその正当性を認証する処理を高速化することにより、起動時間の短縮を可能にする。【解決手段】プログラム４１は、起動された後、未使用のデータ２を使用しようすると（手順（１））、その実行が中断される。実行中断後、カーネルが記録媒体４からデータ２を主記憶装置３に読み込み（手順（２））、読み込んだデータ２から署名データＡ２を生成する（手順（３））。カーネルは、配列４２に格納されている暗号化された署名データの中からデータ２に対応する暗号化署名データ２を選び出し、復号化して署名データＢ２を生成する（手順（４））。カーネルは、署名データＡ２と署名データＢ２とを比較し、等しければ、当該データは正当であると判断し（手順（５））、プログラム４１の実行を再開させる。【選択図】図２
2010146110.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体から主記憶装置にプログラムを一部ずつ読み込むプログラム読み込み手段と、前記主記憶装置に読み込まれた一部ずつのプログラムの正当性の有無を判断するプログラム認証手段と、正当性有りと判断された一部ずつのプログラムを実行するプログラム実行手段とを有することを特徴とする情報処理装置。
【請求項２】
請求項１に記載された情報処理装置において、
前記プログラム認証手段は、前記一部ずつのプログラムのデータを基に作成した第１の認証用データと、前記プログラムの一部ずつに対応付けられて前記記録媒体に記録されている第２の認証用データとを比較することにより、正当性の有無を判断することを特徴とする情報処理装置。
【請求項３】
請求項１に記載された情報処理装置において、
前記第１の認証用データの総量が前記プログラムのデータの総量に対応するか否かを基に、前記プログラムの正当性の有無を判断する手段を有することを特徴とする情報処理装置。
【請求項４】
請求項１に記載された情報処理装置において、
前記プログラムの一部ずつのサイズが一定であることを特徴とする情報処理装置。
【請求項５】
請求項４に記載された情報処理装置において、
前記一定のサイズは、前記プログラム読み込み手段による前記主記憶装置に対するページングのサイズに等しいことを特徴とする情報処理装置。
【請求項６】
記録媒体から主記憶装置にプログラムを一部ずつ読み込むプログラム読み込みステップと、前記主記憶装置に読み込まれた一部ずつのプログラムの正当性の有無を判断するプログラム認証ステップと、正当性有りと判断された一部ずつのプログラムを実行するプログラム実行ステップとを有することを特徴とするプログラム実行方法。
【請求項７】
請求項６に記載されたプログラム実行方法において、
前記プログラム認証ステップは、前記一部ずつのプログラムのデータを基に作成した第１の認証用データと、前記プログラムの一部ずつに対応付けられて前記記録媒体に記録されている第２の認証用データとを比較することにより、正当性の有無を判断することを特徴とするプログラム実行方法。
【請求項８】
請求項６に記載されたプログラム実行方法において、
前記第１の認証用データの総量が前記プログラムのデータ量を充足するか否かを基に、前記プログラムの正当性の有無を判断するステップを有することを特徴とするプログラム実行方法。
【請求項９】
コンピュータに、請求項６〜８のいずれかに記載されたプログラム実行方法の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータなどの情報処理装置、そのプログラム実行方法及びプログラムに関し、さらに詳しくは、プログラムの起動時にその正当性を認証する処理を高速化することで起動時間の短縮を可能にした情報処理装置、そのプログラム実行方法及びプログラムに関する。
【背景技術】
【０００２】
従来、プログラムの起動時にその正当性を認証する機能を持つ情報処理装置は、例えば図６に示すようなハードウェア及びソフトウェアを備えている（特許文献１参照）。
【０００３】
即ち、チップセット１と、それぞれがチップセット１に接続されたＣＰＵ２、主記憶装置３、ハードディスクなどの機器備え付けの記録媒体５を有し、さらにＣＤ−ＲＯＭやフラッシュメモリカードなどの記録媒体４が着脱可能に接続される。
【０００４】
記録媒体４には、プログラム（各種アプリケーション）４１及びそれに対応する暗号化された署名データ４３が記録されている。機器備え付けの記録媒体５には、カーネル５１、それに対応する暗号化された署名データ５２、復号化ルーチン５５を含む起動プログラム５３、それに対応する暗号化された署名データ５６が記録されている。
【０００５】
チップセット１は、ＣＰＵ２、主記憶装置３、記録媒体４、及び機器備え付けの記録媒体５を相互に接続するとともに、それらを制御する。ＣＰＵ２は、記録媒体４や機器備え付けの記録媒体５から主記憶装置３に読み込まれた各プログラムを実行する。主記憶装置３は、プログラムの実行時にそのプログラムや必要なデータを格納する。
【０００６】
カーネル５１は、メモリ管理やタスク管理等、ＯＳ（オペレーティング・システム）の基本機能を実現するプログラムであり、起動されたときに起動プログラム５３を起動する。起動プログラム５３は、カーネル５１上に常駐し、必要に応じてプログラム４１を起動する。暗号化された署名データ４３、５２、５６は、それぞれプログラム４３、カーネル５１、起動プログラム５３の正当性の有無を判断するためのデータである。
【０００７】
次に図６に示す情報処理装置が記録媒体４に記録されているプログラム４１を実行するときの動作について、図７〜図９を参照しながら説明する。ここで、図７はプログラム４１の認証処理の概要を示す図、図８はプログラム４１の認証手順を示すフローチャート、図９は図８の手順に対応するシーケンス図である。
【０００８】
図７〜図９に示すように、起動プログラム５３は、記録媒体４上に起動対象プログラムが存在するか否かを判断し（図８のステップＳＴ１０１）、存在すると判断した場合（ＳＴ１０１：Yes）は、カーネル５１に対し、そのプログラム４１を主記憶装置３に読み込ませる。カーネル５１は、プログラム４１のデータを主記憶装置３に読み込む（図７の手順（１）、図８のステップＳＴ１０２、図９のシーケンスＳ１０１）。
【０００９】
起動プログラム５３は、カーネル５１からプログラム４１の読み込みが完了したことを通知されると（図９のシーケンスＳ１０２）、主記憶装置３に読み込まれたプログラム４１のデータから署名データＡを作成する（図７の手順（２）、図８のステップＳＴ１０３、図９のシーケンスＳ１０３）。ここで、署名データＡは、例えばプログラム４１のテキストデータをメッセージダイジェストにより数値化することなどの公知の手法で作成する。
【００１０】
次いで、起動プログラム５３は、記録媒体４上に暗号化された署名データ４３が存在するか否か判断し（図８のステップＳＴ１０４）、存在すると判断した場合（ＳＴ１０４：Yes）は、復号化ルーチン５５を用いて暗号化された署名データ４３を復号化し、署名データＢを作成する（図７の手順（３）、図８のステップＳＴ１０５、図９のシーケンスＳ１０４）。ここで、復号化ルーチン５５は、暗号化された署名データ４３の復号化に必要な鍵を保持している。
【００１１】
次に、起動プログラム５３は、署名データＡと署名データＢとが一致するか否かを判断し（図８のステップＳＴ１０６）、一致すると判断した場合（ＳＴ１０６：Yes）は、主記憶装置３に読み込まれたプログラム４１が正当であると判断する（図７の手順（４）、図８のステップＳＴ１０７、図９のシーケンスＳ１０５）。最後に、起動プログラム５３は、主記憶装置３に読み込まれたプログラム４１を起動する（図８のステップＳＴ１０８、図９のシーケンスＳ１０６）。
【００１２】
図８のステップＳＴ１０１、ＳＴ１０４、ＳＴ１０６のいずれかで“No”の判断となった場合は、対象プログラムを認証できなかったものと判断して（ステップＳＴ１０９）、システムを停止させる（ステップＳＴ１１０）。
【００１３】
しかしながら、上記従来の情報処理装置では、起動対象のプログラムを一旦全て主記憶装置３に読み込んでから認証処理を実行するため、認証処理の開始までに時間がかかり、その結果、起動時間が長くなるという問題がある。このため、起動時間に対する要求の緩い機器では問題ないが、組み込み機器のように数秒程度の短時間で起動しなければならない機器の場合は、起動時間の短縮が要請されている。
【特許文献１】特開２００５−１４８９３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、上記従来の問題を解決するためになされたもので、その目的は、プログラムを実行する情報処理装置において、プログラムの起動時にその正当性を認証する処理を高速化することにより、起動時間の短縮を可能にすることである。
【課題を解決するための手段】
【００１５】
本発明は、情報処理装置上で動作するアプリケーションは、一度に全てのプログラム領域を使用せず、一部ずつ使用する傾向があるという知見に基づいて案出されたものであり、本発明の情報処理装置は、記録媒体から主記憶装置にプログラムを一部ずつ読み込むプログラム読み込み手段と、前記主記憶装置に読み込まれた一部ずつのプログラムの正当性の有無を判断するプログラム認証手段と、正当性有りと判断された一部ずつのプログラムを実行するプログラム実行手段とを有することを特徴とする情報処理装置である。
また、本発明のプログラム実行方法は、記録媒体から主記憶装置にプログラムを一部ずつ読み込むプログラム読み込みステップと、前記主記憶装置に読み込まれた一部ずつのプログラムの正当性の有無を判断するプログラム認証ステップと、正当性有りと判断された一部ずつのプログラムを実行するプログラム実行ステップとを有することを特徴とするプログラム実行方法である。
【００１６】
［作用］
本発明によれば、実行対象のプログラムを一部ずつ区切って主記憶装置に読み込み、読み込まれた一部ずつのプログラムの正当性の有無を判断し、正当性有りと判断された一部ずつのプログラムを実行する。
【発明の効果】
【００１７】
本発明によれば、一度に全てのプログラム領域を主記憶装置に読み込まなくても、そのプログラムの認証及び実行が可能となるため、プログラムの認証と装置の起動時間の高速化を実現できる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明を実施するための最良の形態について図面を参照しながら説明する。
［第１の実施形態］
図１は、本発明の第１の実施形態の情報処理装置が有するハードウェア及びソフトウェアを示す図である。この図において、図６と同一又は対応する部分には図６と同じ参照符号を付した。
【００１９】
本実施形態の情報処理装置は、従来装置と同様、チップセット１と、それぞれがチップセット１に接続されたＣＰＵ２、主記憶装置３、ハードディスクなどの機器備え付けの記録媒体５を有し、さらにＣＤ−ＲＯＭやフラッシュメモリカードなどの記録媒体４が着脱可能に接続される。
【００２０】
記録媒体４には、プログラム４１及び暗号化署名配列４２が記録されている。暗号化署名配列４２には、プログラム４１の一部の固定長単位毎のデータに対応する複数の暗号化された署名データが格納されている。
【００２１】
機器備え付け記録媒体５には、復号化ルーチン５５を含むカーネル５１と、カーネル５１に対応する暗号化された署名データ５２と、起動プログラム５３と、それに対応する暗号化された署名データの配列５４とが記録されている。即ち、図６の従来装置で起動プログラム５３に含まれている復号化ルーチン５５がカーネル５１に含まれ、かつ従来装置で記録媒体４に記録されていた暗号化された署名データ５６の代わりに、暗号化された署名データの配列５４が記録されている。後述するように、本実施形態では、従来装置では起動プログラム５３が実行する認証処理をカーネル５１が実行する。
【００２２】
次に図１に示す情報処理装置が記録媒体４に記録されているプログラム４１を実行するときの動作について説明する。
図２はプログラム４１の認証処理の概要を示す図である。この図に示すように、プログラム４１をある固定長単位(ここでは４ＫＢ単位＝ＣＰＵ２の主記憶装置３に対するページングのサイズ)のデータ１，２，３・・・に分割し、それぞれのデータに対応する暗号化された署名データ１，２，３・・・が暗号化署名配列４２の中に格納されている。
【００２３】
プログラム４１は、起動プログラム５３により起動され、ＣＰＵ２による実行が開始された後、ＣＰＵ２がプログラム４１の未使用のデータ２を使用しようすると（手順（１））、ページフォルトにより割り込みが入り、その実行が中断される。
【００２４】
実行中断後、カーネル５１は、記録媒体４からデータ２を主記憶装置３に読み込み（手順（２））、読み込んだ主記憶装置３上のデータ２から署名データＡ２を生成する（手順（３））。
【００２５】
次いで、カーネル５１は、暗号化署名配列４２に格納されている暗号化された署名データの中からデータ２に対応する暗号化署名データ２を選び出し、復号化して署名データＢ２を生成する（手順（４））。そして、署名データＡ２と署名データＢ２とを比較し、それらが等しければ、当該データの認証に成功したことを意味する（手順（５））ので、カーネル５１はプログラム４１の実行を再開させる。
【００２６】
図３はプログラム４１の認証手順を示すフローチャートである。まず、起動プログラム５３は、起動対象のプログラム４１が記録媒体４上に存在するか否かチェックする（ステップＳＴ１）。もし存在しなければ（ＳＴ１：No）、致命的なエラーとしてシステムを停止させる（ステップＳＴ１０→ＳＴ１１）。
【００２７】
起動対象のプログラムが存在する場合（ＳＴ１：Yes）は、起動プログラム５３はプログラム４１を起動し、その後、未使用データを使用しようとするまで対象プログラムの実行を続ける（ステップＳＴ２：No→ＳＴ３）。
【００２８】
未使用データを使用しようとすると、ページフォルトによる割り込みが入り、まず対象データを主記憶装置に読み込む（ステップＳＴ４）。その後、主記憶装置３に読み込まれた対象データから署名データＡｉ（ｉ＝１，２，３・・・）を生成する（ステップＳＴ５）。
【００２９】
次に、記憶媒体４に暗号化署名配列４２が存在するか否かをチェックし（ステップＳＴ６）、存在しなければ（ＳＴ６：No）、致命的なエラーとしてシステムを停止させる（ステップＳＴ１０→ＳＴ１１）。また、対象データに対応する暗号化署名データが存在するか否かもチェックし（ステップＳＴ７）、存在しなければ（ＳＴ７：No）、致命的なエラーとしてシステムを停止させる（ステップＳＴ１０→ＳＴ１１）。
【００３０】
２つのチェックを通過できたら、当該データに対応する暗号化されている署名データを復号化して、署名データＢｉを生成する（ステップＳＴ８）。署名データＡｉと署名データＢｉとを比較し（ステップＳＴ９）、異なっていたら（ＳＴ９：No）、致命的なエラーとしてシステムを停止させる（ステップＳＴ１０→ＳＴ１１）。署名データＡｉと署名データＢｉとが同一であったら（ＳＴ９：Yes）、当該データは正当であったので、カーネル５１は、当該プログラムの実行を再開させ、対象プログラムを実行させる（ステップＳＴ３）。
【００３１】
図４は図３の手順に対応するシーケンス図である。
起動プログラム５３は起動対象のプログラム４１を起動する（シーケンスＳ１）。この時点では対象プログラム４１の如何なるデータも主記憶装置３に読み込まれてはいない。
【００３２】
ＣＰＵ２は対象プログラム４１を実行する過程で当然未使用データを使用しようとする（シーケンスＳ２）。すると、ページフォルトにより割り込みが発生し（シーケンスＳ３）、プログラムの実行はカーネル５１に移る。
【００３３】
実行権を得たカーネル５１は、プログラム４１の未使用データを記録媒体４上から主記憶装置３に読み込み（シーケンスＳ４）、主記憶装置３上の当該データから署名データＡｉを生成する（シーケンスＳ５）。その後、当該データに対応する暗号化された署名データを暗号化署名配列４２から取り出し、復号化して署名データＢｉを生成する（シーケンスＳ６）。そして、署名データＡｉと署名データＢｉとを比較し、等しいことの確認がとれたら（シーケンスＳ７）、カーネル５１は対象プログラム４１の実行を再開させる（シーケンスＳ８）。
【００３４】
本実施形態の情報処理装置は、下記（１）〜（５）の効果を有する。
（１）プログラムを起動してからプログラムのデータの読み込みを開始するので、プログラム全体を読み込んでからプログラム起動するよりも、装置は早く起動する。
（２）プログラムの実行を開始してから必要になった分のデータを読み込み、認証を行うので、一度に全てのデータを読み込み、認証を行う場合よりも、装置の起動時間が短くなる。
（３）プログラムの一部ずつのデータと、暗号化された署名データを対応付けて管理することができる。
（４）プログラムの一部ずつのデータと暗号化された署名データとが対応付けられているので、プログラムの全ての領域に対して認証を行うことができる。
（５）プログラムの未使用データの使用をＣＰＵページフォルトにて効率的に検出することができる。
【００３５】
［第２の実施形態］
図５は、本発明の第２の実施形態の情報処理装置におけるプログラム認証手順を示すフローチャートである。この図において、図３と同一のステップには、図３と同じ参照符号を付した。なお、本実施形態の情報処理装置が有するハードウェア及びソフトウェアは第１の実施形態（図１）と同じである。
【００３６】
本実施形態では、起動プログラム５３は、起動対象のプログラム４１が存在すると判断した場合（ＳＴ１：Yes）、対象プログラム４１を充足する分の暗号化署名データが暗号化署名配列４２内に存在するか否かの判断をプログラム４１の起動開始よりも先に行う（ステップＳＴ１２）。ここで、プログラム４１を充足する分の暗号化署名データが暗号化署名配列４２内に存在するか否かの判断は、例えば暗号化署名配列４２のファイルサイズがプログラム４１のファイルサイズから要求されたサイズと等しいかどうかを調べることで行うことができる。なお、これらのサイズは図示されていないファイルシステムが管理している。
【００３７】
そして、存在しないと判断した場合（ＳＴ１２：No）は、致命的なエラーとしてシステムを停止させる（ステップＳＴ１０→ＳＴ１１）。一方、存在すると判断した場合（ＳＴ１２：Yes）は、プログラム４１を起動し、その後未使用データを使用しようとするまで対象プログラムの実行を続ける（ステップＳＴ２：No→ＳＴ３）。
【００３８】
未使用データを使用しようとすると、ページフォルトによる割り込みが入り、まず対象データを主記憶装置に読み込む（ステップＳＴ４）。その後、主記憶装置３に配置された対象データから署名データＡｉを生成し（ステップＳＴ５）、記録媒体４上に暗号化署名配列４２が存在するか否かをチェックする（ステップＳＴ６）。これらのステップＳＴ４〜ＳＴ６は第１の実施形態と同じである。
【００３９】
記録媒体４上に暗号化署名配列４２が存在する場合（ＳＴ６：Yes）は、当該データに対応する暗号化されている署名データを復号化して、署名データＢｉを生成する（ステップＳＴ８）。そして、署名データＡｉと署名データＢｉとを比較する（ステップＳＴ９）。以後の手順は第1の実施形態と同じである。
【００４０】
本実施形態の情報処理装置によれば、暗号化署名配列４２のサイズがプログラム４１のファイルサイズから要求されたサイズと異なることを検出することで、暗号化署名データの配列４２が不正に書き換えられたことを検出し、認証をエラーとすることができる。
また、第１の実施形態のステップＳ７が存在しないことから、未使用データを使用しようとした際に実行する判定が第１の実施形態より１つ少ないので、起動時間はより短くなる。
【図面の簡単な説明】
【００４１】
【図１】本発明の第１の実施形態の情報処理装置が有するハードウェア及びソフトウェアを示す図である。
【図２】本発明の第１の実施形態のプログラムの認証処理の概要を示す図である。
【図３】本発明の第１の実施形態のプログラムの認証処理の手順を示すフローチャートである。
【図４】図３の手順に対応するシーケンス図である。
【図５】本発明の第２の実施形態のプログラムの認証処理の手順を示すフローチャートである。
【図６】従来の情報処理装置が有するハードウェア及びソフトウェアを示す図である。
【図７】従来の情報処理装置のプログラムの認証処理の概要を示す図である。
【図８】従来の情報処理装置におけるプログラムの認証処理の手順を示すフローチャートである。
【図９】図８の手順に対応するシーケンス図である。
【符号の説明】
【００４２】
２・・・ＣＰＵ、３・・・主記憶装置、４・・・記録媒体、４１・・・プログラム、４２・・・暗号化署名データ配列、５１・・・カーネル、５２・・・暗号化された署名データ、５３・・・起動プログラム、５５・・・復号化ルーチン。
【図１】
2010146110.tif 000003
【図２】
2010146110.tif 000004
【図３】
2010146110.tif 000005
【図４】
2010146110.tif 000006
【図５】
2010146110.tif 000007
【図６】
2010146110.tif 000008
【図７】
2010146110.tif 000009
【図８】
2010146110.tif 000010
【図９】
2010146110.tif 000011