説明

情報処理装置、正当性検証方法、正当性検証プログラム

【課題】より迅速に正当性検証を行うことが可能な情報処理装置等を提供すること。
【解決手段】正当性検証の対象となる被検証データが格納された補助記憶装置と、正当性検証のためのプログラムが格納されたプログラムメモリと、第1のRAMと、第2のRAMと、正当性検証のためのプログラムに従って前記正当性検証を実行する実行手段と、を備え、正当性検証を実行する際に、被検証データが補助記憶装置から第1のRAMにコピーされ、実行手段が、第2のRAMを作業領域とし、第1のRAMに格納された被検証データに対して正当性検証を実行することを特徴とする情報処理装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、起動時等にセキュリティ性を維持するための正当性検証を行う情報処理装置及びその正当性検証方法、並びに正当性検証プログラムに関する。
【背景技術】
【0002】
従来、パーソナルコンピュータ、電子機器や電動機器に組み込まれた組込コンピュータ、サーバ装置、その他の情報処理装置において、補助記憶装置に格納されたプログラム等のデータが改竄・破壊等されていないかどうかを検証する処理が行われている。係る処理は、正当性検証と称され、情報処理装置の起動時等に実行される。
【0003】
図1は、従来のパーソナルコンピュータの部分構成例である。図示するように、従来のパーソナルコンピュータは、CPU(Central Processing Unit)、ブートデバイス、補助記憶装置、TPM(Trusted Platform Module)、暗号計算エンジン、RAM(Random Access Memory)等が、バスによって接続された構成となっている。
【0004】
ブートデバイスは、例えばフラッシュROMであり、BIOS(Basic Input/Output System)や正当性検証用のプログラム等、起動時に実行されるプログラムが格納される。補助記憶装置は、例えばHDD(Hard Disk Drive)、フラッシュメモリ、EEPROM(Electrically Erasable and Programmable Read Only Memory)等であり、オペレーティングシステムや各種アプリケーションプログラム、データベース等が格納される。TPMは、保持するデータの改竄等に対する耐性を有するセキュリティチップであり、暗号計算に用いられる鍵データ、正当性検証のための比較データ等を保持又は生成することができる。TPMが保持・生成する鍵データは、手順を踏むことによって書き換えることができる。暗号計算エンジンは、RSA暗号演算やハッシュ演算等の暗号計算を行う演算器ユニットである。TPMは、暗号計算エンジンの機能を兼ねることができる。
【0005】
図1に例示する従来のパーソナルコンピュータにおける正当性検証は、例えば、補助記憶装置に格納された被検証データ(プログラムやデータ)をRAMにコピーし、これに対して暗号計算エンジンが鍵データを用いて暗号計算を行い、計算結果が比較データと一致している場合に、被検証データが正常(正当)であると判断する手順で行われる。そして、被検証データが正常であると判断されるとオペレーティングシステムが起動して通常作動状態に移行する。
【0006】
係る技術に関連し、種々の文献が開示されている。例えば特許文献1には、起動対象のプログラム等のハッシュ値を算出し、予め記憶しておいたハッシュ値と比較して正当性検証を行う情報処理装置について記載されている。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来の情報処理装置においては、被検証データをコピーする際(図1における矢印(A))、正当性検証用のプログラムを展開する際(図1における矢印(B))、計算対象として被検証データを読み込む際(図1における矢印(C))、作業領域として種々のパラメータを書き込む際(図1における矢印(D))等にそれぞれRAMへのアクセスが発生するため、これらが干渉して処理遅延が生じる場合がある。また、RAMにおける被検証データのコピー領域と、暗号計算のためのプログラムの作業領域を事前に区別しておく必要があり、正当性検証の後にRAM上でデータの再配置を行う必要が生じる場合もある。データの再配置を行う場合、情報処理装置の起動が遅くなってしまう。
【0008】
本発明はこのような課題を解決するためのものであり、より迅速に正当性検証を行うことが可能な情報処理装置等を提供することを、主たる目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するための本発明の一態様は、
正当性検証の対象となる被検証データが格納された補助記憶装置と、
前記正当性検証のためのプログラムが格納されたプログラムメモリと、
第1のRAM(Random Access Memory)と、
第2のRAMと、
前記正当性検証のためのプログラムに従って前記正当性検証を実行する実行手段と、
を備え、
前記正当性検証を実行する際に、前記被検証データが前記補助記憶装置から前記第1のRAMにコピーされ、前記実行手段が、前記第2のRAMを作業領域とし、前記第1のRAMに格納された前記被検証データに対して前記正当性検証を実行することを特徴とする、
情報処理装置である。
【発明の効果】
【0010】
本発明によれば、より迅速に正当性検証を行うことが可能な情報処理装置等を提供することができる。
【図面の簡単な説明】
【0011】
【図1】従来のパーソナルコンピュータの部分構成例である。
【図2】本発明の第1実施例に係る情報処理装置1のシステム構成例である。
【図3】情報処理装置1の起動時における処理の流れを示すフローチャートである。
【図4】本発明の第2実施例に係る情報処理装置2のシステム構成例である。
【図5】情報処理装置2の起動時における処理の流れを示すフローチャートである。
【図6】本発明の第3実施例に係る情報処理装置3のシステム構成例である。
【図7】情報処理装置3の起動時における処理の流れを示すフローチャートである。
【図8】本発明の第4実施例に係る情報処理装置4のシステム構成例である。
【図9】情報処理装置4の起動時における処理の流れを示すフローチャートである。
【図10】本発明の第5実施例に係る情報処理装置5のシステム構成例である。
【図11】情報処理装置5の起動時における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【0013】
<第1実施例>
以下、図面を参照し、本発明の第1実施例に係る情報処理装置1について説明する。
【0014】
[構成]
図2は、本発明の第1実施例に係る情報処理装置1のシステム構成例である。情報処理装置1は、主要な構成として、CPU10と、ブートデバイス11と、補助記憶装置12と、暗号計算エンジン13と、RAM14#1、14#2と、DMA(Direct Memory Access)コントローラ15と、がバス16によって接続された構成となっている。
【0015】
これらの構成要素のうち、CPU10、ブートデバイス11、暗号計算エンジン13、RAM14#1、14#2、DAMコントローラ15は、SoC(System-on-a-Chip)17として構成されると好適である。これによって、全体のチップ面積並びに情報処理装置1のサイズを小さくすることが可能となる。特に、情報処理装置1が電子機器や電動機器に組み込まれた組込コンピュータである場合に、サイズダウンの要求は高いものであり、係る効果は顕著なものとなる。なお、SoCに代えてASIC(Application Specific Integrated Circuit)が採用されてもよい。
【0016】
なお、この他、一般的な情報処理装置が備える構成、例えば表示装置やスピーカ、マウス、キーボード、タッチパッド、ネットワーク接続のためのインターフェース等を備えてもよい(後述する第2実施例以下も同様である)。
【0017】
CPU10は、プログラムカウンタや命令デコーダ、各種演算器、LSU(Load Store Unit)、汎用レジスタ等を有するプロセッサである。
【0018】
ブートデバイス11は、例えばマスクROMであり、BIOS11A、正当性検証プログラム11B、秘密鍵11C、比較データ11D等が格納されている。これらのプログラムやデータは、ブートデバイス11が書き換え不能な記憶装置であるために、被検証データから除外している。秘密鍵11Cや比較データ11Dの格納箇所は、ブートデバイス11と別体のROM等であってもよい。
【0019】
補助記憶装置12は、例えばHDD、フラッシュメモリ、EEPROM等の不揮発性記憶装置である。補助記憶装置12には、オペレーティングシステム12B、アプリケーションプログラム12C等を含む被検証データ12A、正当性検証用署名鍵12D等が格納されている。正当性検証用署名鍵12Dの格納箇所は、他の記憶装置であってもよい。
【0020】
暗号計算エンジン13は、RSA暗号演算やハッシュ演算等の暗号計算を行うための演算器ユニットである。暗号計算エンジン13による暗号計算は、秘密鍵11C及び正当性検証用署名鍵12Dを用いて行われる。
【0021】
RAM14#1、14#2は、異なる入出力ポートを有する別体のRAMである。RAM14#1には、正当性検証を行う際に、被検証データ12Aがコピーされる(図2における矢印(1))。また、RAM14#2には、正当性検証を行う際に、正当性検証プログラム11Bの一部又は全部が展開され(図2における矢印(2))、正当性検証のための作業領域として用いられる(図2における矢印(3))。
【0022】
このように、被検証データ12AがコピーされるRAM14#1と、正当性検証プログラム11Bの一部又は全部が展開され、作業領域として使用されるRAM14#2を使い分けることにより、正当性検証を行う際のアクセス干渉の発生を低減することができる。この結果、より迅速に正当性検証を行うことができる。
【0023】
DMAコントローラ15は、CPU10からの指示に従い、バス16に接続された機器間のデータ転送を制御する。
【0024】
[正当性検証の手順等]
本実施例に係る情報処理装置1は、起動時(電源投入時、再起動時)等において、被検証データ12Aが改竄・破壊等されていないかどうかを検証するための正当性検証を行う。正当性検証を行うタイミングについては特段の制約はなく、任意に定めてよい。以下、その手順等について説明する。
【0025】
図3は、情報処理装置1の起動時における処理の流れを示すフローチャートである。
【0026】
情報処理装置1が起動すると、まずBIOS11Aが起動する(S100)。
【0027】
次に、正当性検証プログラム11Bが起動する(S102)。正当性検証プログラム11Bは、例えば冒頭部分がブートデバイス11上で実行され、残りの部分は、RAM14#2に展開された上で実行される。正当性検証プログラム11BをRAM14#2に展開する処理は、DMAコントローラ15によって行われてもよいし、CPU10によって行われてもよい。
【0028】
正当性検証プログラム11Bは、被検証データ12AをRAM14#1にコピーするように、DMAコントローラ15に指示する(S104)。DMAコントローラ15は、RAM14#1の予め定められた領域に被検証データ12Aをコピーする。
【0029】
次に、正当性検証プログラム11Bは、秘密鍵11Cと正当性検証用署名鍵12Dを読み込み(S106)これらを組み合わせて暗号計算の設定等を行い(S108)、係る設定に従って被検証データ12Aに対するハッシュ値等を計算するように、暗号計算エンジン13に指示する(S110)。ここで、正当性検証用署名鍵12Dは、例えば300バイト未満の小さいデータであることが好ましく、この場合、補助記憶装置12から読み込むための時間は軽微である。暗号計算エンジン13は、正当性検証プログラム11Bの指示に従い、RAM14#1に格納された被検証データ12Aを読み込んで(図2における矢印(4))暗号計算を行う。
【0030】
正当性検証プログラム11Bは、ハッシュ値等の計算を指示すると、係る計算が終了したかどうかを定期的にチェックする処理を開始する(S112)。
【0031】
そして、暗号計算エンジン13によるハッシュ値等の計算が終了すると(S114)、暗号計算エンジン13の計算結果と比較データ11Dが一致したか否かを判定する(S116)。
【0032】
暗号計算エンジン13の計算結果と比較データ11Dが一致した場合は、情報処理装置1が通常作動状態に移行する(S118)。この際に、RAM14#1に展開された被検証データ12Aは、元々補助記憶装置12に格納されたものがそっくりコピーされたものであり、更に、正当性検証において他のプログラムやデータがRAM14#1に書き込まれないように制御されている。この結果、被検証データ12Aに含まれるオペレーティングシステム12Bやアプリケーションプログラム12Cについては、データの再配置等を行うことなく、そのままRAM14#1上で実行することができる。これによって、情報処理装置1の起動時間を短縮することができる。
【0033】
また、RAM14#2に残存する正当性検証プログラムや作業領域のデータ等については、通常作動状態に移行した後は不要であるため、自由に上書きすることができる。このため、RAM14#2についてもデータの再配置等の処理は不要であり、情報処理装置1の起動時間を更に短縮することができる。
【0034】
一方、暗号計算エンジン13の計算結果と比較データ11Dが一致しなかった場合は、所定のエラー処理を実行する(S120)。エラー処理には、例えばリカバリプログラムリストを表示してユーザに選択させる等の処理が含まれ得るが、本発明の適用上、如何なる処理を行ってもよい。これによって、被検証データ12Aが改竄・破壊等された可能性がある場合には通常作動状態に移行するのを妨げ、情報処理装置1が不正な動作をするのを防止することができる。
【0035】
[まとめ]
以上説明した本実施例の情報処理装置1によれば、被検証データ12AがコピーされるRAM14#1と、正当性検証プログラム11Bの一部又は全部が展開され、作業領域として使用されるRAM14#2を使い分けているため、正当性検証を行う際のアクセス干渉の発生を低減することができ、より迅速に正当性検証を行うことができる。
【0036】
また、RAM14#1は専ら被検証データ12Aのコピー領域として使用されるため、被検証データ12Aに含まれるオペレーティングシステム12Bやアプリケーションプログラム12Cを、そのままRAM14#1上で実行することができる。これによって、情報処理装置1の起動時間を短縮することができる。
【0037】
<第2実施例>
以下、図面を参照し、本発明の第2実施例に係る情報処理装置2について説明する。
【0038】
[構成]
図4は、本発明の第2実施例に係る情報処理装置2のシステム構成例である。情報処理装置2は、構成要素について第1実施例と共通するため、各構成について同一の符号を付し、それぞれの機能等についての説明は省略する。
【0039】
本実施例に係る情報処理装置2は、正当性検証用署名鍵12DをRAM14#2にコピーし(図4における矢印(5))、暗号計算の際にはRAM14#2から正当性検証用署名鍵12Dを読み込みて用いる点で、第1実施例と相違する。これによって、正当性検証用署名鍵12Dのデータサイズが比較的大きい場合に、更に迅速に正当性検証を行うことができる。
【0040】
[正当性検証の手順等]
図5は、情報処理装置2の起動時における処理の流れを示すフローチャートである。
【0041】
情報処理装置2が起動すると、まずBIOS11Aが起動する(S200)。
【0042】
次に、正当性検証プログラム11Bが起動する(S202)。正当性検証プログラム11Bは、例えば冒頭部分がブートデバイス11上で実行され、残りの部分は、RAM14#2に展開された上で実行される。正当性検証プログラム11BをRAM14#2に展開する処理は、DMAコントローラ15によって行われてもよいし、CPU10によって行われてもよい。
【0043】
正当性検証プログラム11Bは、被検証データ12AをRAM14#1にコピーするように、DMAコントローラ15に指示する(S204)。
【0044】
続いて、正当性検証プログラム11Bは、正当性検証用署名鍵12DをRAM14#2にコピーするように、DMAコントローラ15に指示する(S205)。なお、S204とS205は、いずれが先に行われてもよい。
【0045】
DMAコントローラ15は、RAM14#1の予め定められた領域に被検証データ12Aをコピーする。また、RAM14#2の予め定められた領域に正当性検証用署名鍵12Dをコピーする。
【0046】
次に、正当性検証プログラム11Bは、秘密鍵11Cと正当性検証用署名鍵12Dを読み込み(S206)これらを組み合わせて暗号計算の設定等を行い(S208)、係る設定に従って被検証データ12Aに対するハッシュ値等を計算するように、暗号計算エンジン13に指示する(S210)。ここで、正当性検証用署名鍵12Dは、例えば300バイト未満の小さいデータであることが好ましく、この場合、補助記憶装置12から読み込むための時間は軽微である。
【0047】
正当性検証プログラム11Bは、ハッシュ値等の計算を指示すると、係る計算が終了したかどうかを定期的にチェックする処理を開始する(S212)。
【0048】
そして、暗号計算エンジン13によるハッシュ値等の計算が終了すると(S214)、暗号計算エンジン13の計算結果と比較データ11Dが一致したか否かを判定する(S216)。
【0049】
暗号計算エンジン13の計算結果と比較データ11Dが一致した場合は、情報処理装置2が通常作動状態に移行する(S218)。この際に、RAM14#1に展開された被検証データ12Aは、元々補助記憶装置12に格納されたものがそっくりコピーされたものであり、更に、正当性検証において他のプログラムやデータがRAM14#1に書き込まれないように制御されている。この結果、被検証データ12Aに含まれるオペレーティングシステム12Bやアプリケーションプログラム12Cについては、データの再配置等を行うことなく、そのままRAM14#1上で実行することができる。これによって、情報処理装置2の起動時間を短縮することができる。
【0050】
また、RAM14#2に残存する正当性検証プログラムや作業領域のデータ等については、通常作動状態に移行した後は不要であるため、自由に上書きすることができる。このため、RAM14#2についてもデータの再配置等の処理は不要であり、情報処理装置2の起動時間を更に短縮することができる。
【0051】
一方、暗号計算エンジン13の計算結果と比較データ11Dが一致しなかった場合は、所定のエラー処理を実行する(S220)。エラー処理には、例えばリカバリプログラムリストを表示してユーザに選択させる等の処理が含まれ得るが、本発明の適用上、如何なる処理を行ってもよい。これによって、被検証データ12Aが改竄・破壊等された可能性がある場合には通常作動状態に移行するのを妨げ、情報処理装置2が不正な動作をするのを防止することができる。
【0052】
[まとめ]
以上説明した本実施例の情報処理装置2によれば、第1実施例の情報処理装置1と同様の効果を奏するのに加え、正当性検証用署名鍵12Dのデータサイズが比較的大きい場合に、更に迅速に正当性検証を行うことができる。
【0053】
なお、上記では正当性検証用署名鍵12DをRAM12#2にコピーすることのみ言及したが、秘密鍵11C、比較データ11Dについても、図5のS205のタイミング等でRAM12#2にコピーしてもよい。
【0054】
<第3実施例>
以下、図面を参照し、本発明の第3実施例に係る情報処理装置3について説明する。
【0055】
[構成]
図6は、本発明の第3実施例に係る情報処理装置3のシステム構成例である。情報処理装置3における第1実施例と共通する構成要素については、第1実施例と同一の符号を付し、それぞれの機能等についての説明は省略する。
【0056】
本実施例に係る情報処理装置3は、ブートデバイス11が並行実施プログラム11Eを格納している(補助記憶装置12に格納しても構わない)点で、第1実施例と相違する。並行実施プログラム11Eとは、例えばハードウエアデバイスの初期化等を行うためのプログラムであり、情報処理装置3の起動時に実行する必要があるものである。
【0057】
また、本実施例に係る暗号計算エンジン13は、割り込み通知を行う機能を有しており、計算が終了した際に、CPU10に対して(ソフトウエア上は正当性検証プログラム11Bに対して)、計算が終了した旨を通知することができる(図6における矢印(6))。
【0058】
これによって、CPU10は、暗号計算エンジン13に計算指示を行ってから暗号計算エンジン13が計算を終了するまでの間に、並行実施プログラム11Eを実行することができる。この結果、更に迅速に正当性検証を行うことができる。
【0059】
[正当性検証の手順等]
図7は、情報処理装置3の起動時における処理の流れを示すフローチャートである。
【0060】
情報処理装置3が起動すると、まずBIOS11Aが起動する(S300)。
【0061】
次に、正当性検証プログラム11Bが起動する(S302)。正当性検証プログラム11Bは、例えば冒頭部分がブートデバイス11上で実行され、残りの部分は、RAM14#2に展開された上で実行される。正当性検証プログラム11BをRAM14#2に展開する処理は、DMAコントローラ15によって行われてもよいし、CPU10によって行われてもよい。
【0062】
正当性検証プログラム11Bは、被検証データ12AをRAM14#1にコピーするように、DMAコントローラ15に指示する(S304)。DMAコントローラ15は、RAM14#1の予め定められた領域に被検証データ12Aをコピーする。
【0063】
次に、正当性検証プログラム11Bは、秘密鍵11Cと正当性検証用署名鍵12Dを読み込み(S306)これらを組み合わせて暗号計算の設定等を行い(S308)、係る設定に従って被検証データ12Aに対するハッシュ値等を計算するように、暗号計算エンジン13に指示する(S310)。ここで、正当性検証用署名鍵12Dは、例えば300バイト未満の小さいデータであることが好ましく、この場合、補助記憶装置12から読み込むための時間は軽微である。
【0064】
上記のように暗号計算エンジン13に指示すると、CPU10は、並行実施プログラム11Eを実行する(S312)。並行実施プログラムの開始トリガは、正当性検証プログラム11Bに記述されていてもよいし、より上位のプログラムに記述されてもよい。また、並行実施プログラム11EをRAM14#2に展開する処理は、DMAコントローラ15によって行われてもよいし、CPU10によって行われてもよい。
【0065】
そして、暗号計算エンジン13によるハッシュ値等の計算が終了した旨の通知を受けると(S314)、暗号計算エンジン13の計算結果と比較データ11Dが一致したか否かを判定する(S316)。
【0066】
暗号計算エンジン13の計算結果と比較データ11Dが一致した場合は、情報処理装置3が通常作動状態に移行する(S318)。この際に、RAM14#1に展開された被検証データ12Aは、元々補助記憶装置12に格納されたものがそっくりコピーされたものであり、更に、正当性検証において他のプログラムやデータがRAM14#1に書き込まれないように制御されている。この結果、被検証データ12Aに含まれるオペレーティングシステム12Bやアプリケーションプログラム12Cについては、データの再配置等を行うことなく、そのままRAM14#1上で実行することができる。これによって、情報処理装置3の起動時間を短縮することができる。
【0067】
また、RAM14#2に残存する正当性検証プログラムや作業領域のデータ等については、通常作動状態に移行した後は不要であるため、自由に上書きすることができる。このため、RAM14#2についてもデータの再配置等の処理は不要であり、情報処理装置3の起動時間を更に短縮することができる。
【0068】
一方、暗号計算エンジン13の計算結果と比較データ11Dが一致しなかった場合は、所定のエラー処理を実行する(S320)。エラー処理には、例えばリカバリプログラムリストを表示してユーザに選択させる等の処理が含まれ得るが、本発明の適用上、如何なる処理を行ってもよい。これによって、被検証データ12Aが改竄・破壊等された可能性がある場合には通常作動状態に移行するのを妨げ、情報処理装置3が不正な動作をするのを防止することができる。
【0069】
[まとめ]
以上説明した本実施例の情報処理装置3によれば、第1実施例の情報処理装置1と同様の効果を奏するのに加え、暗号計算エンジン13に計算指示を行ってから暗号計算エンジン13が計算を終了するまでの間に、並行実施プログラム11Eを実行可能であるため、更に迅速に正当性検証を行うことができる。
【0070】
<第4実施例>
以下、図面を参照し、本発明の第4実施例に係る情報処理装置4について説明する。
【0071】
[構成]
図8は、本発明の第4実施例に係る情報処理装置4のシステム構成例である。情報処理装置4における第1実施例と共通する構成要素については、第1実施例と同一の符号を付し、それぞれの機能等についての説明は省略する。
【0072】
本実施例に係る情報処理装置4は、RAM14#3を備える点で、第1実施例と相違する。
【0073】
また、本実施例に係る情報処理装置4は、補助記憶装置12が復号用署名鍵12Eを格納している点で、第1実施例と相違する。補助記憶装置12に格納された被検証データ12A*は、復号用署名鍵12Eを用いて復号可能な態様で暗号化されている(以下、「*」が、暗号化されていることを示すものとする)。
【0074】
RAM14#3には、暗号化された被検証データ12A*がコピーされる(図8における矢印(7))。暗号化された被検証データ12A*の復号は、例えば暗号計算エンジン13によって行われ、復号された被検証データ12AがRAM14#1に格納される(図8における矢印(8))。
【0075】
これによって、悪意のあるソフトウエア等による被検証データ12Aの改竄・破壊が困難となり、情報処理装置4のセキュリティ性を高めることができる。
【0076】
[正当性検証の手順等]
図9は、情報処理装置4の起動時における処理の流れを示すフローチャートである。
【0077】
情報処理装置4が起動すると、まずBIOS11Aが起動する(S400)。
【0078】
次に、正当性検証プログラム11Bが起動する(S402)。正当性検証プログラム11Bは、例えば冒頭部分がブートデバイス11上で実行され、残りの部分は、RAM14#2に展開された上で実行される。正当性検証プログラム11BをRAM14#2に展開する処理は、DMAコントローラ15によって行われてもよいし、CPU10によって行われてもよい。
【0079】
正当性検証プログラム11Bは、被検証データ12A*をRAM14#3にコピーするように、DMAコントローラ15に指示する(S404)。DMAコントローラ15は、RAM14#3の予め定められた領域に被検証データ12A*をコピーする。
【0080】
続いて、正当性検証プログラム11Bは、復号用署名鍵12Eを用いて被検証データ12A*を復号するように、暗号計算エンジン13に指示する(S405)。暗号計算エンジン13により復号された被検証データ12Aは、RAM14#1に格納される。
【0081】
次に、正当性検証プログラム11Bは、秘密鍵11Cと正当性検証用署名鍵12Dを読み込み(S406)これらを組み合わせて暗号計算の設定等を行い(S408)、係る設定に従って被検証データ12Aに対するハッシュ値等を計算するように、暗号計算エンジン13に指示する(S410)。ここで、正当性検証用署名鍵12Dは、例えば300バイト未満の小さいデータであることが好ましく、この場合、補助記憶装置12から読み込むための時間は軽微である。
【0082】
正当性検証プログラム11Bは、ハッシュ値等の計算を指示すると、係る計算が終了したかどうかを定期的にチェックする処理を開始する(S412)。
【0083】
そして、暗号計算エンジン13によるハッシュ値等の計算が終了すると(S414)、暗号計算エンジン13の計算結果と比較データ11Dが一致したか否かを判定する(S416)。
【0084】
暗号計算エンジン13の計算結果と比較データ11Dが一致した場合は、情報処理装置4が通常作動状態に移行する(S418)。この際に、RAM14#1に展開された被検証データ12Aは、元々補助記憶装置12に格納されたものがそっくりコピーされた上で復号されたものであり、更に、正当性検証において他のプログラムやデータがRAM14#1に書き込まれないように制御されている。この結果、被検証データ12Aに含まれるオペレーティングシステム12Bやアプリケーションプログラム12Cについては、データの再配置等を行うことなく、そのままRAM14#1上で実行することができる。これによって、情報処理装置4の起動時間を短縮することができる。
【0085】
また、RAM14#2に残存する正当性検証プログラムや作業領域のデータ等については、通常作動状態に移行した後は不要であるため、自由に上書きすることができる。このため、RAM14#2についてもデータの再配置等の処理は不要であり、情報処理装置4の起動時間を更に短縮することができる。
【0086】
一方、暗号計算エンジン13の計算結果と比較データ11Dが一致しなかった場合は、所定のエラー処理を実行する(S420)。エラー処理には、例えばリカバリプログラムリストを表示してユーザに選択させる等の処理が含まれ得るが、本発明の適用上、如何なる処理を行ってもよい。これによって、被検証データ12Aが改竄・破壊等された可能性がある場合には通常作動状態に移行するのを妨げ、情報処理装置4が不正な動作をするのを防止することができる。
【0087】
[まとめ]
以上説明した本実施例の情報処理装置4によれば、第1実施例の情報処理装置1と同様の効果を奏するのに加え、補助記憶装置12に格納された被検証データ12A*が暗号化されていることにより、情報処理装置4としてのセキュリティ性を高めることができる。
【0088】
なお、本実施例の情報処理装置4において、RAM14#2とRAM14#3は同一のRAMにおける分離された領域であっても構わない。
【0089】
<第5実施例>
以下、図面を参照し、本発明の第5実施例に係る情報処理装置5について説明する。
【0090】
[構成]
図10は、本発明の第5実施例に係る情報処理装置5のシステム構成例である。情報処理装置5における第4実施例と共通する構成要素については、第4実施例と同一の符号を付し、それぞれの機能等についての説明は省略する。
【0091】
本実施例に係る情報処理装置5は、RAM14#4を備える点で、第4実施例と相違する。
【0092】
また、本実施例に係る情報処理装置5は、補助記憶装置12に格納された被検証データ12A*に加えて、正当性検証用署名鍵12D*が、復号用署名鍵12Eを用いて復号可能な態様で暗号化されている。
【0093】
RAM14#4には、暗号化された正当性検証用署名鍵12D*がコピーされる(図8における矢印(9))。暗号化された正当性検証用署名鍵12D*の復号は、例えば暗号計算エンジン13によって行われ、復号された正当性検証用署名鍵12DがRAM14#4の上記コピーされた領域とは別の領域に格納される(図8における矢印(10))。
【0094】
これによって、悪意のあるソフトウエア等による被検証データ12Aの改竄・破壊が困難となり、情報処理装置5のセキュリティ性を更に高めることができる。
【0095】
[正当性検証の手順等]
図11は、情報処理装置5の起動時における処理の流れを示すフローチャートである。
【0096】
情報処理装置5が起動すると、まずBIOS11Aが起動する(S500)。
【0097】
次に、正当性検証プログラム11Bが起動する(S502)。正当性検証プログラム11Bは、例えば冒頭部分がブートデバイス11上で実行され、残りの部分は、RAM14#2に展開された上で実行される。正当性検証プログラム11BをRAM14#2に展開する処理は、DMAコントローラ15によって行われてもよいし、CPU10によって行われてもよい。
【0098】
正当性検証プログラム11Bは、被検証データ12A*をRAM14#3にコピーするように、DMAコントローラ15に指示し(S504_1)、更に、正当性検証用署名鍵12D*をRAM14#4にコピーするように、DMAコントローラ15に指示する(S504_2)。DMAコントローラ15は、RAM14#3の予め定められた領域に被検証データ12A*をコピーし、RAM14#4の予め定められた領域に正当性検証用署名鍵12D*をコピーする。
【0099】
続いて、正当性検証プログラム11Bは、復号用署名鍵12Eを用いて被検証データ12A*及び正当性検証用署名鍵12D*を復号するように、暗号計算エンジン13に指示する(S505)。暗号計算エンジン13により復号された被検証データ12Aは、RAM14#1に格納され、暗号計算エンジン13により復号された正当性検証用署名鍵12Dは、RAM14#2に格納される。
【0100】
次に、正当性検証プログラム11Bは、秘密鍵11Cと正当性検証用署名鍵12Dを読み込み(S506)これらを組み合わせて暗号計算の設定等を行い(S508)、係る設定に従って被検証データ12Aに対するハッシュ値等を計算するように、暗号計算エンジン13に指示する(S510)。ここで、正当性検証用署名鍵12Dは、例えば300バイト未満の小さいデータであることが好ましく、この場合、補助記憶装置12から読み込むための時間は軽微である。
【0101】
正当性検証プログラム11Bは、ハッシュ値等の計算を指示すると、係る計算が終了したかどうかを定期的にチェックする処理を開始する(S512)。
【0102】
そして、暗号計算エンジン13によるハッシュ値等の計算が終了すると(S514)、暗号計算エンジン13の計算結果と比較データ11Dが一致したか否かを判定する(S516)。
【0103】
暗号計算エンジン13の計算結果と比較データ11Dが一致した場合は、情報処理装置5が通常作動状態に移行する(S518)。この際に、RAM14#1に展開された被検証データ12Aは、元々補助記憶装置12に格納されたものがそっくりコピーされた上で復号されたものであり、更に、正当性検証において他のプログラムやデータがRAM14#1に書き込まれないように制御されている。この結果、被検証データ12Aに含まれるオペレーティングシステム12Bやアプリケーションプログラム12Cについては、データの再配置等を行うことなく、そのままRAM14#1上で実行することができる。これによって、情報処理装置5の起動時間を短縮することができる。
【0104】
また、RAM14#2に残存する正当性検証プログラムや作業領域のデータ等については、通常作動状態に移行した後は不要であるため、自由に上書きすることができる。このため、RAM14#2についてもデータの再配置等の処理は不要であり、情報処理装置5の起動時間を更に短縮することができる。
【0105】
一方、暗号計算エンジン13の計算結果と比較データ11Dが一致しなかった場合は、所定のエラー処理を実行する(S420)。エラー処理には、例えばリカバリプログラムリストを表示してユーザに選択させる等の処理が含まれ得るが、本発明の適用上、如何なる処理を行ってもよい。これによって、被検証データ12Aが改竄・破壊等された可能性がある場合には通常作動状態に移行するのを妨げ、情報処理装置5が不正な動作をするのを防止することができる。
【0106】
[まとめ]
以上説明した本実施例の情報処理装置5によれば、第1実施例の情報処理装置1と同様の効果を奏するのに加え、補助記憶装置12に格納された被検証データ12A*や正当性検証用署名鍵12D*が暗号化されていることにより、情報処理装置5としてのセキュリティ性を高めることができる。
【0107】
なお、本実施例の情報処理装置5において、RAM14#2、14#3、14#4は同一のRAMにおける分離された領域であっても構わない。
【0108】
<変形等>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【0109】
例えば、各実施例の処理・構成は排他的なものではなく、例えば第4実施例の情報処理装置4が、第3実施例のように、暗号計算エンジン13から割り込み通知を受ける態様であってもよい。このように、各実施例の処理・構成は、適宜組み合わせることが可能である。
【0110】
また、RAM14#1とRAM14#2は、異なる入出力ポートを有する別体のRAMであるものとしたが、複数の入出力ポートを有することにより、分離した領域への並行アクセスが可能なRAMであっても構わない。
【0111】
また、第3実施例を除き、暗号計算エンジン13を省略し、CPU10が暗号計算を実行する態様であってもよい。
【0112】
また、DMAコントローラ15を省略し、CPU10がアキュムレータ等を介してデータのコピー処理を実行する態様であってもよい。
【符号の説明】
【0113】
1、2、3、4、5 情報処理装置
10 CPU
11 ブートデバイス
11A BIOS
11B 正当性検証プログラム
11C 秘密鍵
11D 比較データ
11E 並行実施プログラム
12 補助記憶装置
12A 被検証データ
12B オペレーティングシステム
12C アプリケーションプログラム
12D 正当性検証用署名鍵
12E 復号用署名鍵
13 暗号計算エンジン
14#1、14#2、14#3、14#4 RAM
15 DMAコントローラ
16 バス
17 SoC
【先行技術文献】
【特許文献】
【0114】
【特許文献1】特開2009−129061号公報

【特許請求の範囲】
【請求項1】
正当性検証の対象となる被検証データが格納された補助記憶装置と、
前記正当性検証のためのプログラムが格納されたプログラムメモリと、
第1のRAM(Random Access Memory)と、
第2のRAMと、
前記正当性検証のためのプログラムに従って前記正当性検証を実行する実行手段と、
を備え、
前記正当性検証を実行する際に、前記被検証データが前記補助記憶装置から前記第1のRAMにコピーされ、前記実行手段が、前記第2のRAMを作業領域とし、前記第1のRAMに格納された前記被検証データに対して前記正当性検証を実行することを特徴とする、
情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記正当性検証を実行する際に、前記正当性検証のためのプログラムの少なくとも一部が前記第2のRAMに展開される、
情報処理装置。
【請求項3】
請求項1又は2に記載の情報処理装置であって、
前記第1のRAMと前記第2のRAMは、異なる入出力ポートを有する別体のRAMである、
情報処理装置。
【請求項4】
請求項1ないし3のいずれか1項に記載の情報処理装置であって、
前記実行手段は、前記第1のRAMに格納された前記被検証データに対して暗号計算を行う暗号計算手段を含み、
前記正当性検証を実行する際に、前記暗号計算に用いられる鍵データの少なくとも一部が、前記補助記憶装置から前記第2のRAMにコピーされて用いられる、
情報処理装置。
【請求項5】
請求項1ないし3のいずれか1項に記載の情報処理装置であって、
前記実行手段は、CPU(Central Processing Unit)と、該CPUとは別体の暗号計算手段を含み、
前記暗号計算手段は、前記CPUからの指示により前記補助記憶装置から前記第1のRAMにコピーされた前記被検証データに対して暗号計算を行い、該暗号計算が終了したときに前記CPUに対して割り込み通知を行う手段である、
情報処理装置。
【請求項6】
請求項1ないし3のいずれか1項に記載の情報処理装置であって、
前記補助記憶装置に格納された被検証データは暗号化されており、前記補助記憶装置から第3のRAMにコピーされ、復号手段によって復号された後に前記第1のRAMにコピーされる、
情報処理装置。
【請求項7】
請求項6に記載の情報処理装置であって、
前記実行手段は、前記第1のRAMに格納された前記被検証データに対して暗号計算を行う暗号計算手段を含み、
前記暗号計算に用いられる鍵データの少なくとも一部は暗号化されて前記補助記憶装置に格納されており、前記補助記憶装置から第4のRAMにコピーされ、復号手段によって復号された後に前記暗号計算に用いられる、
情報処理装置。
【請求項8】
請求項1ないし7のいずれか1項に記載の情報処理装置であって、
少なくとも前記補助記憶装置と前記第1のRAM間のデータ転送を制御するDMAコントローラを備え、該DMAコントローラの制御によって前記被検証データが前記補助記憶装置から前記第1のRAMにコピーされる、
情報処理装置。
【請求項9】
請求項1ないし8のいずれか1項に記載の情報処理装置であって、
前記プログラムメモリはROMであり、
前記プログラムメモリ、前記第1のRAM、前記第2のRAM、前記実行手段は、SoC(System-on-a-Chip)又はASIC(Application Specific Integrated Circuit)として構成される、
情報処理装置。
【請求項10】
情報処理装置が、補助記憶装置に格納された被検証データに対して正当性検証を実行する正当性検証方法であって、
前記被検証データを前記補助記憶装置から第1のRAMにコピーするステップと、
前記第1のRAMに格納された前記被検証データに対して、第2のRAMを作業領域として暗号計算を行う、又は暗号計算手段に行わせるステップと、
前記暗号計算の結果を予め格納された比較データと比較するステップと、
を備える正当性検証方法。
【請求項11】
情報処理装置に、補助記憶装置に格納された被検証データに対して正当性検証を実行させるための情報処理装置によって読み取り可能な正当性検証プログラムであって、
前記被検証データを前記補助記憶装置から第1のRAMにコピーするステップと、
前記第1のRAMに格納された前記被検証データに対して、第2のRAMを作業領域として暗号計算を行う、又は暗号計算手段に行わせるステップと、
前記暗号計算の結果を予め格納された比較データと比較するステップと、
を前記情報処理装置に実行させる正当性検証プログラム。

【図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

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−84079(P2013−84079A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2011−222618(P2011−222618)
【出願日】平成23年10月7日(2011.10.7)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】