説明

情報処理装置、プログラム実行方法及びプログラム

【課題】プログラムの起動時にその正当性を認証する処理を高速化することにより、起動時間の短縮を可能にする。
【解決手段】プログラム41は、起動された後、未使用のデータ2を使用しようすると(手順(1))、その実行が中断される。実行中断後、カーネルが記録媒体4からデータ2を主記憶装置3に読み込み(手順(2))、読み込んだデータ2から署名データA2を生成する(手順(3))。カーネルは、配列42に格納されている暗号化された署名データの中からデータ2に対応する暗号化署名データ2を選び出し、復号化して署名データB2を生成する(手順(4))。カーネルは、署名データA2と署名データB2とを比較し、等しければ、当該データは正当であると判断し(手順(5))、プログラム41の実行を再開させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータなどの情報処理装置、そのプログラム実行方法及びプログラムに関し、さらに詳しくは、プログラムの起動時にその正当性を認証する処理を高速化することで起動時間の短縮を可能にした情報処理装置、そのプログラム実行方法及びプログラムに関する。
【背景技術】
【0002】
従来、プログラムの起動時にその正当性を認証する機能を持つ情報処理装置は、例えば図6に示すようなハードウェア及びソフトウェアを備えている(特許文献1参照)。
【0003】
即ち、チップセット1と、それぞれがチップセット1に接続されたCPU2、主記憶装置3、ハードディスクなどの機器備え付けの記録媒体5を有し、さらにCD−ROMやフラッシュメモリカードなどの記録媒体4が着脱可能に接続される。
【0004】
記録媒体4には、プログラム(各種アプリケーション)41及びそれに対応する暗号化された署名データ43が記録されている。機器備え付けの記録媒体5には、カーネル51、それに対応する暗号化された署名データ52、復号化ルーチン55を含む起動プログラム53、それに対応する暗号化された署名データ56が記録されている。
【0005】
チップセット1は、CPU2、主記憶装置3、記録媒体4、及び機器備え付けの記録媒体5を相互に接続するとともに、それらを制御する。CPU2は、記録媒体4や機器備え付けの記録媒体5から主記憶装置3に読み込まれた各プログラムを実行する。主記憶装置3は、プログラムの実行時にそのプログラムや必要なデータを格納する。
【0006】
カーネル51は、メモリ管理やタスク管理等、OS(オペレーティング・システム)の基本機能を実現するプログラムであり、起動されたときに起動プログラム53を起動する。起動プログラム53は、カーネル51上に常駐し、必要に応じてプログラム41を起動する。暗号化された署名データ43、52、56は、それぞれプログラム43、カーネル51、起動プログラム53の正当性の有無を判断するためのデータである。
【0007】
次に図6に示す情報処理装置が記録媒体4に記録されているプログラム41を実行するときの動作について、図7〜図9を参照しながら説明する。ここで、図7はプログラム41の認証処理の概要を示す図、図8はプログラム41の認証手順を示すフローチャート、図9は図8の手順に対応するシーケンス図である。
【0008】
図7〜図9に示すように、起動プログラム53は、記録媒体4上に起動対象プログラムが存在するか否かを判断し(図8のステップST101)、存在すると判断した場合(ST101:Yes)は、カーネル51に対し、そのプログラム41を主記憶装置3に読み込ませる。カーネル51は、プログラム41のデータを主記憶装置3に読み込む(図7の手順(1)、図8のステップST102、図9のシーケンスS101)。
【0009】
起動プログラム53は、カーネル51からプログラム41の読み込みが完了したことを通知されると(図9のシーケンスS102)、主記憶装置3に読み込まれたプログラム41のデータから署名データAを作成する(図7の手順(2)、図8のステップST103、図9のシーケンスS103)。ここで、署名データAは、例えばプログラム41のテキストデータをメッセージダイジェストにより数値化することなどの公知の手法で作成する。
【0010】
次いで、起動プログラム53は、記録媒体4上に暗号化された署名データ43が存在するか否か判断し(図8のステップST104)、存在すると判断した場合(ST104:Yes)は、復号化ルーチン55を用いて暗号化された署名データ43を復号化し、署名データBを作成する(図7の手順(3)、図8のステップST105、図9のシーケンスS104)。ここで、復号化ルーチン55は、暗号化された署名データ43の復号化に必要な鍵を保持している。
【0011】
次に、起動プログラム53は、署名データAと署名データBとが一致するか否かを判断し(図8のステップST106)、一致すると判断した場合(ST106:Yes)は、主記憶装置3に読み込まれたプログラム41が正当であると判断する(図7の手順(4)、図8のステップST107、図9のシーケンスS105)。最後に、起動プログラム53は、主記憶装置3に読み込まれたプログラム41を起動する(図8のステップST108、図9のシーケンスS106)。
【0012】
図8のステップST101、ST104、ST106のいずれかで“No”の判断となった場合は、対象プログラムを認証できなかったものと判断して(ステップST109)、システムを停止させる(ステップST110)。
【0013】
しかしながら、上記従来の情報処理装置では、起動対象のプログラムを一旦全て主記憶装置3に読み込んでから認証処理を実行するため、認証処理の開始までに時間がかかり、その結果、起動時間が長くなるという問題がある。このため、起動時間に対する要求の緩い機器では問題ないが、組み込み機器のように数秒程度の短時間で起動しなければならない機器の場合は、起動時間の短縮が要請されている。
【特許文献1】特開2005−148934号公報
【発明の開示】
【発明が解決しようとする課題】
【0014】
本発明は、上記従来の問題を解決するためになされたもので、その目的は、プログラムを実行する情報処理装置において、プログラムの起動時にその正当性を認証する処理を高速化することにより、起動時間の短縮を可能にすることである。
【課題を解決するための手段】
【0015】
本発明は、情報処理装置上で動作するアプリケーションは、一度に全てのプログラム領域を使用せず、一部ずつ使用する傾向があるという知見に基づいて案出されたものであり、本発明の情報処理装置は、記録媒体から主記憶装置にプログラムを一部ずつ読み込むプログラム読み込み手段と、前記主記憶装置に読み込まれた一部ずつのプログラムの正当性の有無を判断するプログラム認証手段と、正当性有りと判断された一部ずつのプログラムを実行するプログラム実行手段とを有することを特徴とする情報処理装置である。
また、本発明のプログラム実行方法は、記録媒体から主記憶装置にプログラムを一部ずつ読み込むプログラム読み込みステップと、前記主記憶装置に読み込まれた一部ずつのプログラムの正当性の有無を判断するプログラム認証ステップと、正当性有りと判断された一部ずつのプログラムを実行するプログラム実行ステップとを有することを特徴とするプログラム実行方法である。
【0016】
[作用]
本発明によれば、実行対象のプログラムを一部ずつ区切って主記憶装置に読み込み、読み込まれた一部ずつのプログラムの正当性の有無を判断し、正当性有りと判断された一部ずつのプログラムを実行する。
【発明の効果】
【0017】
本発明によれば、一度に全てのプログラム領域を主記憶装置に読み込まなくても、そのプログラムの認証及び実行が可能となるため、プログラムの認証と装置の起動時間の高速化を実現できる。
【発明を実施するための最良の形態】
【0018】
以下、本発明を実施するための最良の形態について図面を参照しながら説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態の情報処理装置が有するハードウェア及びソフトウェアを示す図である。この図において、図6と同一又は対応する部分には図6と同じ参照符号を付した。
【0019】
本実施形態の情報処理装置は、従来装置と同様、チップセット1と、それぞれがチップセット1に接続されたCPU2、主記憶装置3、ハードディスクなどの機器備え付けの記録媒体5を有し、さらにCD−ROMやフラッシュメモリカードなどの記録媒体4が着脱可能に接続される。
【0020】
記録媒体4には、プログラム41及び暗号化署名配列42が記録されている。暗号化署名配列42には、プログラム41の一部の固定長単位毎のデータに対応する複数の暗号化された署名データが格納されている。
【0021】
機器備え付け記録媒体5には、復号化ルーチン55を含むカーネル51と、カーネル51に対応する暗号化された署名データ52と、起動プログラム53と、それに対応する暗号化された署名データの配列54とが記録されている。即ち、図6の従来装置で起動プログラム53に含まれている復号化ルーチン55がカーネル51に含まれ、かつ従来装置で記録媒体4に記録されていた暗号化された署名データ56の代わりに、暗号化された署名データの配列54が記録されている。後述するように、本実施形態では、従来装置では起動プログラム53が実行する認証処理をカーネル51が実行する。
【0022】
次に図1に示す情報処理装置が記録媒体4に記録されているプログラム41を実行するときの動作について説明する。
図2はプログラム41の認証処理の概要を示す図である。この図に示すように、プログラム41をある固定長単位(ここでは4KB単位=CPU2の主記憶装置3に対するページングのサイズ)のデータ1,2,3・・・に分割し、それぞれのデータに対応する暗号化された署名データ1,2,3・・・が暗号化署名配列42の中に格納されている。
【0023】
プログラム41は、起動プログラム53により起動され、CPU2による実行が開始された後、CPU2がプログラム41の未使用のデータ2を使用しようすると(手順(1))、ページフォルトにより割り込みが入り、その実行が中断される。
【0024】
実行中断後、カーネル51は、記録媒体4からデータ2を主記憶装置3に読み込み(手順(2))、読み込んだ主記憶装置3上のデータ2から署名データA2を生成する(手順(3))。
【0025】
次いで、カーネル51は、暗号化署名配列42に格納されている暗号化された署名データの中からデータ2に対応する暗号化署名データ2を選び出し、復号化して署名データB2を生成する(手順(4))。そして、署名データA2と署名データB2とを比較し、それらが等しければ、当該データの認証に成功したことを意味する(手順(5))ので、カーネル51はプログラム41の実行を再開させる。
【0026】
図3はプログラム41の認証手順を示すフローチャートである。まず、起動プログラム53は、起動対象のプログラム41が記録媒体4上に存在するか否かチェックする(ステップST1)。もし存在しなければ(ST1:No)、致命的なエラーとしてシステムを停止させる(ステップST10→ST11)。
【0027】
起動対象のプログラムが存在する場合(ST1:Yes)は、起動プログラム53はプログラム41を起動し、その後、未使用データを使用しようとするまで対象プログラムの実行を続ける(ステップST2:No→ST3)。
【0028】
未使用データを使用しようとすると、ページフォルトによる割り込みが入り、まず対象データを主記憶装置に読み込む(ステップST4)。その後、主記憶装置3に読み込まれた対象データから署名データAi(i=1,2,3・・・)を生成する(ステップST5)。
【0029】
次に、記憶媒体4に暗号化署名配列42が存在するか否かをチェックし(ステップST6)、存在しなければ(ST6:No)、致命的なエラーとしてシステムを停止させる(ステップST10→ST11)。また、対象データに対応する暗号化署名データが存在するか否かもチェックし(ステップST7)、存在しなければ(ST7:No)、致命的なエラーとしてシステムを停止させる(ステップST10→ST11)。
【0030】
2つのチェックを通過できたら、当該データに対応する暗号化されている署名データを復号化して、署名データBiを生成する(ステップST8)。署名データAiと署名データBiとを比較し(ステップST9)、異なっていたら(ST9:No)、致命的なエラーとしてシステムを停止させる(ステップST10→ST11)。署名データAiと署名データBiとが同一であったら(ST9:Yes)、当該データは正当であったので、カーネル51は、当該プログラムの実行を再開させ、対象プログラムを実行させる(ステップST3)。
【0031】
図4は図3の手順に対応するシーケンス図である。
起動プログラム53は起動対象のプログラム41を起動する(シーケンスS1)。この時点では対象プログラム41の如何なるデータも主記憶装置3に読み込まれてはいない。
【0032】
CPU2は対象プログラム41を実行する過程で当然未使用データを使用しようとする(シーケンスS2)。すると、ページフォルトにより割り込みが発生し(シーケンスS3)、プログラムの実行はカーネル51に移る。
【0033】
実行権を得たカーネル51は、プログラム41の未使用データを記録媒体4上から主記憶装置3に読み込み(シーケンスS4)、主記憶装置3上の当該データから署名データAiを生成する(シーケンスS5)。その後、当該データに対応する暗号化された署名データを暗号化署名配列42から取り出し、復号化して署名データBiを生成する(シーケンスS6)。そして、署名データAiと署名データBiとを比較し、等しいことの確認がとれたら(シーケンスS7)、カーネル51は対象プログラム41の実行を再開させる(シーケンスS8)。
【0034】
本実施形態の情報処理装置は、下記(1)〜(5)の効果を有する。
(1)プログラムを起動してからプログラムのデータの読み込みを開始するので、プログラム全体を読み込んでからプログラム起動するよりも、装置は早く起動する。
(2)プログラムの実行を開始してから必要になった分のデータを読み込み、認証を行うので、一度に全てのデータを読み込み、認証を行う場合よりも、装置の起動時間が短くなる。
(3)プログラムの一部ずつのデータと、暗号化された署名データを対応付けて管理することができる。
(4)プログラムの一部ずつのデータと暗号化された署名データとが対応付けられているので、プログラムの全ての領域に対して認証を行うことができる。
(5)プログラムの未使用データの使用をCPUページフォルトにて効率的に検出することができる。
【0035】
[第2の実施形態]
図5は、本発明の第2の実施形態の情報処理装置におけるプログラム認証手順を示すフローチャートである。この図において、図3と同一のステップには、図3と同じ参照符号を付した。なお、本実施形態の情報処理装置が有するハードウェア及びソフトウェアは第1の実施形態(図1)と同じである。
【0036】
本実施形態では、起動プログラム53は、起動対象のプログラム41が存在すると判断した場合(ST1:Yes)、対象プログラム41を充足する分の暗号化署名データが暗号化署名配列42内に存在するか否かの判断をプログラム41の起動開始よりも先に行う(ステップST12)。ここで、プログラム41を充足する分の暗号化署名データが暗号化署名配列42内に存在するか否かの判断は、例えば暗号化署名配列42のファイルサイズがプログラム41のファイルサイズから要求されたサイズと等しいかどうかを調べることで行うことができる。なお、これらのサイズは図示されていないファイルシステムが管理している。
【0037】
そして、存在しないと判断した場合(ST12:No)は、致命的なエラーとしてシステムを停止させる(ステップST10→ST11)。一方、存在すると判断した場合(ST12:Yes)は、プログラム41を起動し、その後未使用データを使用しようとするまで対象プログラムの実行を続ける(ステップST2:No→ST3)。
【0038】
未使用データを使用しようとすると、ページフォルトによる割り込みが入り、まず対象データを主記憶装置に読み込む(ステップST4)。その後、主記憶装置3に配置された対象データから署名データAiを生成し(ステップST5)、記録媒体4上に暗号化署名配列42が存在するか否かをチェックする(ステップST6)。これらのステップST4〜ST6は第1の実施形態と同じである。
【0039】
記録媒体4上に暗号化署名配列42が存在する場合(ST6:Yes)は、当該データに対応する暗号化されている署名データを復号化して、署名データBiを生成する(ステップST8)。そして、署名データAiと署名データBiとを比較する(ステップST9)。以後の手順は第1の実施形態と同じである。
【0040】
本実施形態の情報処理装置によれば、暗号化署名配列42のサイズがプログラム41のファイルサイズから要求されたサイズと異なることを検出することで、暗号化署名データの配列42が不正に書き換えられたことを検出し、認証をエラーとすることができる。
また、第1の実施形態のステップS7が存在しないことから、未使用データを使用しようとした際に実行する判定が第1の実施形態より1つ少ないので、起動時間はより短くなる。
【図面の簡単な説明】
【0041】
【図1】本発明の第1の実施形態の情報処理装置が有するハードウェア及びソフトウェアを示す図である。
【図2】本発明の第1の実施形態のプログラムの認証処理の概要を示す図である。
【図3】本発明の第1の実施形態のプログラムの認証処理の手順を示すフローチャートである。
【図4】図3の手順に対応するシーケンス図である。
【図5】本発明の第2の実施形態のプログラムの認証処理の手順を示すフローチャートである。
【図6】従来の情報処理装置が有するハードウェア及びソフトウェアを示す図である。
【図7】従来の情報処理装置のプログラムの認証処理の概要を示す図である。
【図8】従来の情報処理装置におけるプログラムの認証処理の手順を示すフローチャートである。
【図9】図8の手順に対応するシーケンス図である。
【符号の説明】
【0042】
2・・・CPU、3・・・主記憶装置、4・・・記録媒体、41・・・プログラム、42・・・暗号化署名データ配列、51・・・カーネル、52・・・暗号化された署名データ、53・・・起動プログラム、55・・・復号化ルーチン。

【特許請求の範囲】
【請求項1】
記録媒体から主記憶装置にプログラムを一部ずつ読み込むプログラム読み込み手段と、前記主記憶装置に読み込まれた一部ずつのプログラムの正当性の有無を判断するプログラム認証手段と、正当性有りと判断された一部ずつのプログラムを実行するプログラム実行手段とを有することを特徴とする情報処理装置。
【請求項2】
請求項1に記載された情報処理装置において、
前記プログラム認証手段は、前記一部ずつのプログラムのデータを基に作成した第1の認証用データと、前記プログラムの一部ずつに対応付けられて前記記録媒体に記録されている第2の認証用データとを比較することにより、正当性の有無を判断することを特徴とする情報処理装置。
【請求項3】
請求項1に記載された情報処理装置において、
前記第1の認証用データの総量が前記プログラムのデータの総量に対応するか否かを基に、前記プログラムの正当性の有無を判断する手段を有することを特徴とする情報処理装置。
【請求項4】
請求項1に記載された情報処理装置において、
前記プログラムの一部ずつのサイズが一定であることを特徴とする情報処理装置。
【請求項5】
請求項4に記載された情報処理装置において、
前記一定のサイズは、前記プログラム読み込み手段による前記主記憶装置に対するページングのサイズに等しいことを特徴とする情報処理装置。
【請求項6】
記録媒体から主記憶装置にプログラムを一部ずつ読み込むプログラム読み込みステップと、前記主記憶装置に読み込まれた一部ずつのプログラムの正当性の有無を判断するプログラム認証ステップと、正当性有りと判断された一部ずつのプログラムを実行するプログラム実行ステップとを有することを特徴とするプログラム実行方法。
【請求項7】
請求項6に記載されたプログラム実行方法において、
前記プログラム認証ステップは、前記一部ずつのプログラムのデータを基に作成した第1の認証用データと、前記プログラムの一部ずつに対応付けられて前記記録媒体に記録されている第2の認証用データとを比較することにより、正当性の有無を判断することを特徴とするプログラム実行方法。
【請求項8】
請求項6に記載されたプログラム実行方法において、
前記第1の認証用データの総量が前記プログラムのデータ量を充足するか否かを基に、前記プログラムの正当性の有無を判断するステップを有することを特徴とするプログラム実行方法。
【請求項9】
コンピュータに、請求項6〜8のいずれかに記載されたプログラム実行方法の各ステップを実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−146110(P2010−146110A)
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2008−320115(P2008−320115)
【出願日】平成20年12月16日(2008.12.16)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】