(57)【要約】【課題】汎用SoCを用いたマルチルチコア構成のシステムにおいて起動時間およびコストに極力影響を与えずにセキュリティ要件に対応できること。【解決手段】複数のCPUもしくはDMAC間で少なくともメッセージ及びデータ通信が可能で、特定のCPUに対するアクセスを制限し、アクセス制限の対象となる範囲を決め、少なくともHASH演算及びRSA暗号処理を行う情報処理装置の制御方法であって、アクセス不可能と設定されたCPUがアクセス可能と設定されたCPUに、暗号復号の処理を依頼し、アクセス可能と設定されたCPUのみが暗号演算手段により暗号復号処理を実施し、アクセス不可能に設定されたCPUがアクセスした場合にはアクセス可能なCPUが検知し、システムの処理を停止する。【選択図】図３
2015171008.tif 000002
【特許請求の範囲】
【請求項１】
複数のCPUもしくはDMAC間でメッセージ及びデータの通信が可能なCPU間通信手段と、
特定のCPUに対するアクセスを制限するアクセス制御設定手段と、
前記アクセス制御設定手段の対象となる範囲を決めるアクセス制御範囲設定手段と、
少なくともHASH演算及びRSA暗号処理を行う暗号演算手段と、
を備えた情報処理装置であって、
前記アクセス制御設定手段によってアクセス不可能と設定されたCPUが前記アクセス制御設定手段によってアクセス可能と設定されたCPUに、前記CPU間通信手段により暗号復号の処理を依頼し、
前記アクセス制御設定手段によってアクセス可能と設定されたCPUのみが前記暗号演算手段により暗号復号処理を実施し、
アクセス不可能に設定されたCPUがアクセスした場合にはアクセス可能なCPUが検知手段により検知し、システムの処理を停止することを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置において、前記アクセス制御設定手段は特定のCPU上で動作する起動プログラムであることを特徴とする情報処理装置。
【請求項３】
請求項１記載の情報処理装置において、前記アクセス制御範囲設定手段は各CPUのページテーブルを利用することを特徴とする情報処理装置。
【請求項４】
請求項１から３の何れか一項記載の情報処理装置において、異なるCPUのアーキテクチャーであってもページテーブルの設定を解釈することを特徴とする情報処理装置。
【請求項５】
請求項１から４の何れか一項記載の情報処理装置において、システム停止手段によりシステムを停止することを通知する通知手段を備えた情報処理装置。
【請求項６】
請求項５記載の情報処理装置において、前記通知手段はLEDであることを特徴とする情報処理装置。
【請求項７】
請求項５または６記載の情報処理装置において、前記通知手段はLCDによる画面描画であることを特徴とする情報処理装置。
【請求項８】
請求項１記載の情報処理装置において、アドレスポイント割込み機能を有することを特徴とする情報処理装置。
【請求項９】
複数のCPUもしくはDMAC間で少なくともメッセージ及びデータの通信が可能で、特定のCPUに対するアクセスを制限し、前記アクセス制限の対象となる範囲を決め、少なくともHASH演算及びRSA暗号処理を行う情報処理装置の制御方法であって、
アクセス不可能と設定されたCPUがアクセス可能と設定されたCPUに、暗号復号の処理を依頼し、
アクセス可能と設定されたCPUのみが暗号演算手段により暗号復号処理を実施し、
アクセス不可能に設定されたCPUがアクセスした場合にはアクセス可能なCPUが検知し、システムの処理を停止することを特徴とする情報処理装置の制御方法。
【請求項１０】
情報処理装置のコンピュータに、
CPU間通信手段が、複数のCPUもしくはDMAC間でメッセージ及びデータの通信を行う手順、
アクセス制御設定手段が、特定のCPUに対するアクセスを制限する手順、
アクセス制御範囲設定手段に、前記アクセス制御設定手段の対象となる範囲を決める手順、
暗号演算手段が、少なくともHASH演算及びRSA暗号処理を行う手順、
前記アクセス制御設定手段によってアクセス不可能と設定されたCPUが、前記アクセス制御設定手段によってアクセス可能と設定されたCPUに、前記CPU間通信手段により暗号復号の処理を依頼する手順、
前記アクセス制御設定手段によってアクセス可能と設定されたCPUのみが、前記暗号演算手段により暗号復号処理を実施する手順、
アクセス不可能に設定されたCPUがアクセスした場合にはアクセス可能なCPUが、検知手段により検知し、システムの処理を停止する手順、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、PC(Personal Computer)の開発において複数のCPU(Central Processing Unit)コアを持つマルチコアシステムが一般的となっている。また、車載機器やスマートフォン、デジタルTV、DVD・HDDレコーダー等の電子機器にもマルチコアの搭載が普及している。マルチコアには複数のCPUが情報及びメモリを共有するSMP(Symmetric Multiple Processing)と、各々のCPUの役割とが予め決められており、情報やメモリを個別に持つAMP(Asymmetric Multiple Processing)とがある。
【０００３】
一般的なPCではSMPが用いられ、組込み機器ではAMPが用いられる傾向がある。また、近年ではSMPとAMPとを組み合わせて使うケースが増加している。例えば、電源管理等の軽い処理は低コストで低消費電力のCPUを用い、画面表示や動画再生等の重い処理はSMP構成の高性能なCPUを用いるケースである。
加えて、ネットワークの重要性が高まる中で、不正なソフトウェアによるアクセス、改竄、情報流出がPCだけでなく、組込み機器、特にAndroid(登録商標)を搭載したタブレット、スマートフォン等にもその被害が広がっている。
【０００４】
そこで、TPM(Trusted Platform Module)やARMが提供するTrust Zone(登録商標)と呼ばれるセキュリティの仕組みを用いたSecure bootやTrust bootが既にしられている。Secure boot(セキュアブート)は、異常検知時はその時点でシステム停止し、Trust boot(トラストブート)は異常があってもある程度システムが起動してから判断する、不正なソフトウェアを検知するための正当性検証の技術である。
【０００５】
しかし、今までのシステムにおいて、正当性検証を行うと起動時間に影響が出てしまう。これは、アルゴリズムにも依存するが一般的には、TPMと呼ばれるセキュリティHW(Hard Ware)を用いた場合、そのTPMとの接続するバスの速度が遅く帯域が低い。そのためHDD(Hard Disc Drive)やNAND Flash Memory(以下、NAND Flashと表記)、NOR Flash Memory(以下、NOR Flashと表記)等の不揮発メモリからソフトウェアをメモリ上に展開後、その展開された領域に対して、正しいソフトウェアか否かを検証するためのHash演算を行う。
【０００６】
ところが、バスの影響で、処理に時間が掛かり、結果的に起動時間が遅くなってしまう。加えて、AMPやAMP＋SMP構成の場合、各々のシステムにおいて、正当性検証を行う必要がある。この正当性検証の際、CPUでHash演算を行うとかなりの時間が必要とし、アクセラレーションするためのHWを搭載し、そのHWで行うのが一般的である。
【０００７】
しかしながら、各CPU分用意するとそれだけコストに影響が出てしまう。また、FIPS 140-2(federal information processing standard)等のセキュリティ規格ではセキュアな機能はあるドメイン(範囲)にとどめるべきとある。この場合、どのCPUがどこまで正当性検証を行うのか、どこにセキュリティに関連するモジュールを配置するのかが問題となる。
【０００８】
このような問題に対して、種々の提案がなされている（例えば、特許文献１参照）。
特許文献１には、起動時間を短縮する目的で、情報処理装置、正当性検証方法及び正当性検証プログラムについて開示されている。特許文献１には、従来低速バスで接続されたTPMに代わって、BIOSプログラム(CPU)が同様のアルゴリズムで処理することにより、起動時間が短縮することができる構成が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載の発明は、マルチコア構成やコスト、セキュリティ要件を、柔軟に汎用SoC(System on a Chip)を利用する点には対処できないという問題は解消できていない。
そこで、本発明の目的は、汎用SoCを用いたマルチルチコア構成のシステムにおいて起動時間およびコストに極力影響を与えずにセキュリティ要件に対応できることを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、請求項１に記載の発明は、複数のCPUもしくはDMAC間でメッセージ及びデータの通信が可能なCPU間通信手段と、特定のCPUに対するアクセスを制限するアクセス制御設定手段と、前記アクセス制御設定手段の対象となる範囲を決めるアクセス制御範囲設定手段と、少なくともHASH演算及びRSA暗号処理を行う暗号演算手段と、を備えた情報処理装置であって、前記アクセス制御設定手段によってアクセス不可能と設定されたCPUが前記アクセス制御設定手段によってアクセス可能と設定されたCPUに、前記CPU間通信手段により暗号復号の処理を依頼し、前記アクセス制御設定手段によってアクセス可能と設定されたCPUのみが前記暗号演算手段により暗号復号処理を実施し、アクセス不可能に設定されたCPUがアクセスした場合にはアクセス可能なCPUが検知手段により検知し、システムの処理を停止することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、汎用SoCを用いたマルチルチコア構成のシステムにおいて起動時間およびコストに極力影響を与えずにセキュリティ要件に対応できる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に係る全体構成図である。
【図２】従来例の動作を示すシーケンス図である。
【図３】本実施形態の動作を示すシーケンス図である。
【図４】他の実施形態の動作を示すシーケンス図である。
【図５】（ａ）〜（ｃ）は不揮発デバイスに配置されたプログラムの配置図である。
【図６】（ａ）〜（ｃ）はメモリマップとセキュアアクセス範囲との関係を説明するための説明図である。
【発明を実施するための形態】
【００１３】
実施形態について図面を参照して説明する。
＜概  要＞
複数のCPUを備えたマルチコア構成のシステムにおいて、各CPUのシステムのソフトウェア上で正当性検証を行う処理に際して、以下の特徴を有する。
要するに、複数のCPUを備えた構成で、CPU毎にHWへアクセスを制御できる仕組みを備えたプログラムとセキュリティに関する処理はある特定のCPUのみが行い、各CPUからのセキュリティの要求としての正当性検証の処理を実施することを含む。
【００１４】
＜構  成＞
図１は、一実施形態に係る全体構成図である。
情報処理装置には複数のCPU0〜CPUN(101-0〜101-N)が搭載されており、特に個数に制約はないが、以降の実施形態の説明では簡略化のため、CPUの数は３個としている。
Sec Engine(セキュリティ  エンジン)102は、ハッシュ演算(SHA1, SHA256)やその他暗号処理(RSA暗号処理)を行う。MEM(メモリ)103は、一般的な揮発メモリ(DDR2,DDR3等)である。
【００１５】
NOR Flash104は、CPU1,2(101-1,101-2)が実行可能なプログラム114やユーザデータを保存する不揮発メモリ(NOR Flash Device)である。NAND Flash105は、NOR Flash 104と同様な不揮発メモリ(NAND Flash Device)であるが、より大容量のデータ保存用であり、CPU1,2(101-1,101-2)が実行可能なプログラム115を保存する。SD106は、着脱自在な不揮発メモリ(SDカード)116を制御するコントローラである。
LED DRV107は、LED107aを駆動する駆動回路であり、LED107aは点灯や点滅によって情報処理装置の状態表示を行う発光ダイオードである。USB108はUSBメモリ等を制御するためのコンローラである。LCD CNT109は、文字や画像等の画面描画を行うLCD109aを制御するためのコントローラである。Network(ネットワーク)110は、外部と通信するためのNetworkコントローラである。118は検知手段である。検知手段118は、異常処理を行うためのものであり、アクセス可能な場合のCPU0(101-0)が検知手段118により検知し、情報処理装置の処理を停止するものであり、割り込み（図４参照）を想定している。
【００１６】
MaskROM111は、CPU0(101-0)が電源ONリセット時にCPU0(101-0)が動作するためのプログラム（ソフトウェア）117が配置された書換え不可能なデバイスである。
MaskROM111には、CPU0(101-0)が実行可能なプログラム、暗号演算手段111a、アクセス制御設定手段111b、及びアクセス制御範囲設定手段111cのプログラムが配置されている。
各CPU0(101-0)〜CPUN(101-N)もしくはDMAC間でメッセージ及びデータの通信が可能なCPU間通信手段113-0〜113-Nは、各CPU0(101-0)〜CPUN(101-N)に存在する。
Bus112はこれらのデバイスを接続するためのバスラインである。プログラムの配置に関しては、後述で説明する。尚、破線で囲まれた部分はCPU1,2(101-1,101-2)がアクセス制御された範囲であるが、詳細は図６にて説明する。
【００１７】
＜従来例＞
図２は、従来例の動作を示すシーケンス図である。
まず、電源ONもしくはCPUリセットにより、CPU0(101-0)が動作を開始し、Mask ROM111上に有るプログラムを実行する(Step(1))。このプログラムは書換え不可能なMaskROM111に配置されており、常に正しいことが保証されている。
【００１８】
次に、MaskROM111から起動したプログラムが、CPU0(101-0)の次起動プログラムの認証を行う(Step(2))。認証失敗の場合はLED107aもしくはLCD109aがエラー表示を行う。認証成功の場合は、CPU1,2(101-1,101-2)の次起動プログラムの認証を行う(Step(3))。認証失敗の場合はLED107aもしくはLCD109aがエラー表示を行う。認証成功の場合は、CPU1,2(101-1,101-2)の起動(Reset解除)を行う(Step(4))。
【００１９】
次にCPU1,2(101-1,101-2)はCPU0(101-0)に対して、CPU1,2(101-1,101-2)の次起動プログラムの認証を依頼する(Step1-(1), 2-(1))。認証を依頼する実現手段としては、一般的な共有メモリを解したCPU間通信による割込み通知等の手法で実現する。
CPU1,2(101-1,101-2)は製品としてユーザが使えるようになるまでの処理を行う。CPU0(101-0)は製品としてユーザが使えるようになるまでの処理を割り当てずに、認証やその他処理を割り当て、CPU1,2(101-1,101-2)の起動と認証処理とを並行で行う。これにより、CPU0(101-0)による認証により、セキュリティを確保しつつ、起動時間の短縮を実現する(Step0-(4),0-(5)1-(2),2-(2))。また、CPU0(101-0)は優先度としてCPU1,2(101-1,1012)のいずれを優先するか、またその範囲等も選択することが可能である。
【００２０】
最後にCPU0(101-0)にて、認証結果のチェックを行い、認証失敗した場合、すなわち不正なプログラムであると判断した場合には起動を停止する(Step0-(6))。認証成功した場合には、CPU1,2(101-1,101-2)に対して、結果を通知する。
【００２１】
＜動作１＞
図３は、本実施形態の動作を示すシーケンス図である。
まず、電源ONもしくはCPUリセットにより、CPU0(101-0)が動作を開始し、MaskROM111に配置されたプログラムを実行する(Step(1))。このプログラムは書換え不可能なMaskROM111に配置されており、常に正しいことが保証されている。
【００２２】
次に、MaskROM111から起動したプログラムが、CPU0(101-0)の次起動プログラムの認証を行う(Step(2))。認証失敗の場合はLED107aもしくはLCD109aがエラー表示を行う。認証成功の場合は、CPU1,2(101-1,101-2)の次起動プログラムの認証を行う(Step(3))。認証失敗の場合はLED107aもしくはLCD109aがエラー表示を行う。認証成功の場合は、CPU1,2(101-1,101-2)の起動(Reset解除)を行う(Step(4))。
【００２３】
次にCPU1,2(101-1,101-2)はCPU0(101-0)に対して、CPU1,2(101-1,101-2)の次起動プログラムの認証を依頼する(Step1-(1),2-(1))。依頼する実現手段としては、一般的な共有メモリを解したCPU間通信による割込み通知等の手法で実現する。
【００２４】
CPU1,2(101-1,101-2)は製品としてユーザが使えるようになるまでの処理を行い、CPU0(101-0)は製品としてユーザが使えるようになるまでの処理を割り当てずに、認証やその他処理を割り当てる。CPU1,2(101-1,101-2)の起動と認証処理とを並行で行うことにより、CPU0(101-0)による認証により、セキュリティを確保しつつ、起動時間の短縮を実現する(Step,0-(5),0-(6),1-(2),2-(2))。また、CPU0(101-0)は優先度、すなわちCPU1,2(101-1,101-2)のいずれを優先するかについて、その範囲等も選択することが可能である。
【００２５】
次に各CPU1,2(101-1,101-2)がページテーブルを所定のアドレスに作成する(Step0-(7),1-(2),2-(3))。所定のアドレスについては、予めシステムで決めておく、各CPU1,2(101-1,101-2)のレジスタにページテーブルのアドレスがあるので、それを利用する等により定めることが可能である。
CPU0(101-0)にてそのテーブルの設定をチェックし、セキュリティに関連する範囲にアクセスが可能な設定となっている場合は、起動を停止する(Step0-(8),(9))。
【００２６】
最後にCPU0(101-0)にて、認証結果のチェックを行い、失敗した場合(不正なプログラムと判断)には起動を停止する(Step0-(6))。成功した場合には、CPU1,2(101-1,101-2)に対して、結果を通知する。
【００２７】
＜動作２＞
図４は、他の実施形態の動作を示すシーケンス図である。
図４に示すシーケンス図は、図３に示したシーケンス図の後に再度ページテーブルを更新する場合の例となる。
CPU0(101-0)がアドレスポイント割込みを各CPUのページテーブルのアドレスに設定する(Step0-(1))。
尚アドレスポイント割込みは所定のアドレスにアクセスがあった場合に割込みを発生させる機能である。
CPU1(101-1)がページテーブルを他の値に変更すると、割込みが発生し、CPU0(101-0)に通知される(Step0-(2)、1-(1))。
CPU0(101-0)がCPU1(101-1)のページテーブルをリードする(Step0-(3))。
CPU0(101-0)にてそのテーブルの設定をチェックし、セキュリティに関連する範囲にアクセスが可能な設定となっている場合は、起動を停止する(Step0-(4))。
【００２８】
図５（ａ）〜（ｃ）は不揮発デバイスに配置されたプログラムの配置図である。
図５（ａ）はMaskROM111であり、この中にはCPU0(101-0)の１次起動プログラムが配置されている。
図５（ｂ）はNOR Flash104に接続されたNOR Flash Deviceである。NOR Flash Deviceの中にはCPU0(101-0)の２次起動プログラム、CPU1(101-1)の１次起動プログラム、及びCPU2(101-2)の１次起動プログラムが配置されている。
【００２９】
図５（ｃ）はNOR Flash104に接続されたNOR Flash Deviceであり、この中にはCPU1(101-1)の２次起動プログラム、CPU2(101-2)の２次起動プログラムが配置されている。
【００３０】
図６（ａ）〜（ｃ）はメモリマップとセキュアアクセス範囲との関係を説明するための説明図である。
図６（ａ）はCPU1,2からみたメモリマップであり、このメモリマップでは破線で囲む部分をアクセスすることはできないが、図６（ｃ）に示すメモリマップではCPU0(101-0)からはアクセスできる。これらのアクセス可否については各CPUのページテーブルにそのアクセス可否の設定情報が保存されている。図３のシーケンスに記載の通り、CPU0(101-0)がここをリードして、設定どおりでなければ処理を停止する。
尚、図６（ｂ）に示すメモリマップは、CPU0,1,2(101-0,101-1,101-2)を合わせたシステム全体としてのメモリマップである。また、異なるCPUのアーキテクチャーであってもページテーブルの設定を解釈するのが好ましい。
【００３１】
＜プログラム＞
以上で説明した本発明に係る情報処理装置は、コンピュータで処理を実行させるプログラムによって実現されている。コンピュータとしては、例えばパーソナルコンピュータやワークステーション等の汎用的なものが挙げられるが、本発明はこれに限定されるものではない。よって、一例として、プログラムにより本発明の機能を実現する場合の説明を以下で行う。
【００３２】
例えば、
情報処理装置のコンピュータに、
CPU間通信手段が、複数のCPUもしくはDMAC間でメッセージ及びデータの通信を行う手順、
アクセス制御設定手段が、特定のCPUに対するアクセスを制限する手順、
アクセス制御範囲設定手段に、アクセス制御設定手段の対象となる範囲を決める手順、
暗号演算手段が、少なくともHASH演算及びRSA暗号処理を行う手順、
アクセス制御設定手段によってアクセス不可能と設定されたCPUが、アクセス制御設定手段によってアクセス可能と設定されたCPUに、CPU間通信手段により暗号復号の処理を依頼する手順、
アクセス制御設定手段によってアクセス可能と設定されたCPUのみが、暗号演算手段により暗号復号処理を実施する手順、
アクセス不可能に設定されたCPUがアクセスした場合にはアクセス可能なCPUが、検知手段により検知し、システムの処理を停止する手順、
を実行させるためのプログラムが挙げられる。
【００３３】
このようなプログラムは、コンピュータに読み取り可能な記憶媒体に記憶されていてもよい。
【００３４】
＜記憶媒体＞
ここで、記憶媒体としては、例えばCD-ROM、フレキシブルディスク（FD）、CD-R等のコンピュータで読み取り可能な記憶媒体、フラッシュメモリ、RAM、ROM、FeRAM等の半導体メモリやHDDが挙げられる。
【００３５】
CD-ROMは、Compact Disc Read Only Memoryの略である。フレキシブルディスクは、Flexible Disk：FDを意味する。CD-Rは、CD Recordableの略である。RAMは、Random-Access Memoryの略である。ROMは、Read-Only Memoryの略である。FeRAMは、Ferroelectric RAMの略で、強誘電体メモリを意味する。
【００３６】
＜作用効果＞
複数のCPUを備えた構成で、CPU毎にHWへのアクセスを制御できる仕組みを備えたプログラムをある特定のCPUのみが行い、各CPUからのセキュリティの要求としての正当性検証の処理を行う。これにより、汎用SoCのマルチコア構成であっても、コストや起動時間を最小に抑えつつ、セキュリティ規格を実現することができる。
【００３７】
すなわち、本実施形態によれば、コストや起動時間を短縮しつつ、セキュリティ規格を実現することが出来、特別なHWの追加無く、コストを抑えて実現でき、不正なSWを検出した場合には、ユーザにLED点灯や画面表示により通知することができる。また、本実施形態によれば、ページテーブルが書き換えられた場合はすぐに検知が出来る。
【００３８】
尚、上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【符号の説明】
【００３９】
１０１−０、１０１−１、１０１−２、…、１０１−Ｎ    ＣＰＵ
１０２    Ｓｅｃ  Ｅｎｇｉｎｅ
１０３    ＭＥＭ
１０４    ＮＯＲ  Ｆｌａｓｈ
１０５    ＮＡＮＤ  Ｆｌａｓｈ
１０６    ＳＤ
１０７    ＬＥＤ  ＤＲＶ
１０７ａ    ＬＥＤ
１０８    ＵＳＢ
１０９    ＬＣＤ  ＣＮＴ
１０９ａ    ＬＣＤ
１１０    Ｎｅｔｗｏｒｋ
１１１    Ｍａｓｋ  ＲＯＭ
１１２    Ｂｕｓ
１１３−０、１１３−１、１１３−２、…、１１３−Ｎ    通信手段
１１４、１１５、１１７    ソフトウェア（プログラム）
１１６    ＳＤカード
１１８    検知手段
【先行技術文献】
【特許文献】
【００４０】
【特許文献１】特開２００９−１２９０６１号公報
【図１】
2015171008.tif 000003
【図２】
2015171008.tif 000004
【図３】
2015171008.tif 000005
【図４】
2015171008.tif 000006
【図５】
2015171008.tif 000007
【図６】
2015171008.tif 000008