(57)【要約】【課題】起動時間やコストを増加させることなくセキュリティ要件に対応すること。【解決手段】起動時又はリセット時、Sec Control１１によってアクセス範囲が制限されたＣＰＵ１０−１，１０−２が、Sec Control１１によってアクセス範囲が制限されていないＣＰＵ１０−０に対したＣＰＵ１０−１，１０−２の起動プログラムの認証処理を依頼し、ＣＰＵ１０−０が、ＣＰＵ１０−１，１０−２の起動プログラムの認証処理を起動処理又はリセット処理と並行して実行する。これにより、起動時間やコストを増加させることなくセキュリティ要件に対応することができる。【選択図】図１
2014056390.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理部と、
前記複数の処理部間で情報通信を行う通信部と、
各処理部のハードウェア要素に対するアクセス範囲を設定可能なアクセス範囲設定部と、を備え、
起動時又はリセット時、前記アクセス範囲設定部によってアクセス範囲が制限された第１処理部が、前記通信部を介して前記アクセス範囲設定部によってアクセス範囲が制限されていない第２処理部に対し第１処理部の起動プログラムの認証処理を依頼し、前記第２処理部が、第１処理部の起動プログラムの認証処理を起動処理又はリセット処理と並行して実行する
ことを特徴とする情報処理装置。
【請求項２】
前記第２処理部は、複数の第１処理部に対して設定された優先度に従って第１処理部の起動プログラムの認証処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
複数の処理部と、前記複数の処理部間で情報通信を行う通信部と、各処理部のハードウェア要素に対するアクセス範囲を設定可能なアクセス範囲設定部と、を備える情報処理装置における正当性検証方法であって、
起動時又はリセット時、前記アクセス範囲設定部によってアクセス範囲が制限された第１処理部が、前記通信部を介して前記アクセス範囲設定部によってアクセス範囲が制限されていない第２処理部に対し第１処理部の起動プログラムの認証処理を依頼する工程と、
前記第２処理部が、前記第１処理部の起動プログラムの認証処理を起動処理又はリセット処理と並行して実行する工程と、
を含むことを特徴とする正当性検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＭＰ形式のマルチコアシステムが搭載された情報処理装置及び正当性検証方法に関する。
【背景技術】
【０００２】
近年、複数のＣＰＵコアを有するマルチコアシステムが、パーソナルコンピュータ、車載機器、タブレット端末、スマートフォン、デジタルテレビ、レコーダー等の情報処理装置に搭載されるようになっている。このマルチコアシステムには、ＳＭＰ（Symmetric Multiple Processing）形式のものとＡＭＰ（Asymmetric Multiple Processing）形式のものとがある。ＳＭＰ形式のマルチコアシステムは、複数のＣＰＵコアが情報やメモリを共有するものであり、主にパーソナルコンピュータ、タブレット端末、スマートフォン等の組み込み機器に搭載されている。一方、ＡＭＰ形式のマルチコアシステムは、各ＣＰＵコアの役割が予め決められ、各ＣＰＵコアが情報やメモリを個別に有するものである。ＡＭＰ形式のマルチコアシステムは、主に自動車のエンジンやアクセル制御、タブレット端末やスマートフォン等の組み込み機器については画像、描画処理や電源管理用途等で用いられ、またタブレット端末やスマートフォン等では、ＳＭＰとＡＭＰ形式とを合わせて使うこともある。
【０００３】
ところで、近年、不正なソフトウェアを利用したシステムへの不正アクセス、システムの改ざん、及びシステムからの情報流出の被害が、パーソナルコンピュータだけでなく、組み込み機器にも広がっている。このような背景から、マルチコアシステムには、ＴＰＭ（Trusted Platform Module）やＡＲＭ（登録商標）社が提供するTrust Zone（登録商標）と呼ばれるセキュリティの仕組みを用いたSecure bootやTrust bootといった不正なソフトウェアを検知するための正当性検証技術が実装されている。Secure bootは、異常を検知した際にシステムを停止させる技術であり、Trust bootは、異常があってもシステムがある程度起動してから正当性を判断する技術である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のマルチコアシステムによれば、正当性検証を行うとマルチコアシステムの起動時間に影響が出る。これは、正当性検証のアルゴリズムにも依存するが、一般に、ＴＰＭと呼ばれるセキュリティチップは低速なバス配線に接続されるためである。すなわち、正当性検証では、ハードディスクやNAND,NOR Flashといった不揮発性メモリからソフトウェアをメモリ上に展開後、展開されたメモリ領域に対して正しいソフトウェアであるか否かを検証するためのハッシュ演算が行われる。ところが、上述のようにＴＰＭには低速のバス配線に接続されるために、バス配線の影響でその処理に時間が掛かり、結果的に起動時間が遅くなってしまう。
【０００５】
また、ＡＭＰ形式のマルチコアシステムでは、各ＣＰＵコアのシステムに対して正当性検証を行う必要があるが、このとき各ＣＰＵコアでハッシュ演算を行うと多くの処理時間が必要になる。このため、処理時間を短縮するためにアクセラレータを搭載し、アクセラレータに正当性検証を行わせることが一般的である。しかしながら、この場合、各ＣＰＵコアにアクセラレータを搭載する必要があるために、マルチコアシステムのコストが増加してしまう。さらに、FIPS 140-2(Federal Information Processing Standard 140-2)等のセキュリティ規格ではセキュアな機能はあるドメイン内に留めるべきと規定されている。このため、この場合、どのＣＰＵコアがどこまで正当性検証を行うのか、及びどこにセキュリティに関連するモジュールを配置するのか等のセキュリティ要件への対応が問題になる。
【０００６】
本発明は、上記に鑑みてなされたものであって、その目的は、起動時間やコストを増加させることなくセキュリティ要件に対応可能な情報処理装置及び正当性検証方法を提供することにある。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、複数の処理部と、前記複数の処理部間で情報通信を行う通信部と、各処理部のハードウェア要素に対するアクセス範囲を設定可能なアクセス範囲設定部と、を備え、起動時又はリセット時、前記アクセス範囲設定部によってアクセス範囲が制限された第１処理部が、前記通信部を介して前記アクセス範囲設定部によってアクセス範囲が制限されていない第２処理部に対し第１処理部の起動プログラムの認証処理を依頼し、前記第２処理部が、第１処理部の起動プログラムの認証処理を起動処理又はリセット処理と並行して実行することを特徴とする。
【０００８】
また、本発明は、複数の処理部と、前記複数の処理部間で情報通信を行う通信部と、各処理部のハードウェア要素に対するアクセス範囲を設定可能なアクセス範囲設定部と、を備える情報処理装置における正当性検証方法であって、起動時又はリセット時、前記アクセス範囲設定部によってアクセス範囲が制限された第１処理部が、前記通信部を介して前記アクセス範囲設定部によってアクセス範囲が制限されていない第２処理部に対し第１処理部の起動プログラムの認証処理を依頼する工程と、前記第２処理部が、前記第１処理部の起動プログラムの認証処理を起動処理又はリセット処理と並行して実行する工程と、を含むことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、アクセス範囲設定部によってアクセス範囲が制限されていない第２処理部が、自身の起動処理又はリセット処理と並行して、アクセス範囲設定部によってアクセス範囲が制限された第１処理部の起動プログラムの認証処理を実行するので、起動時間やコストを増加させることなくセキュリティ要件に対応することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態に係る情報処理装置の構成を示すブロック図である。
【図２−１】図２−１は、図１に示すSec Controlのレジスタ構成例を示す模式図である。
【図２−２】図２−２は、図１に示すSec Controlのレジスタ構成例を示す模式図である。
【図３】図３は、メモリマップを示す模式図である。
【図４】図４は、図１に示すＮＯＲに記憶されている起動プログラムを示すブロック図である。
【図５】図５は、図１に示すＮＡＮＤに記憶されている起動プログラムを示すブロック図である。
【図６】図６は、図１に示すMask ROMに記憶されている起動プログラムを示すブロック図である。
【図７】本実施の形態に係る起動処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本実施の形態に係る情報処理装置及び正当性検証方法について説明する。
【００１２】
図１は、本実施の形態に係る情報処理装置の構成を示すブロック図である。図１に示すように、本実施の形態に係る情報処理装置１は、（Ｎ＋１）個のＣＰＵ１０と、Sec Control１１と、Sec Engine１２と、ＭＥＭ１３と、ＮＯＲ１４と、ＮＡＮＤ１５と、ＳＤ１６と、ＬＥＤ１７と、ＵＳＢ１８と、ＬＣＤ１９と、Network２０と、Mask ROM２１と、を備え、これらの構成要素は相互に情報通信可能なようにバス配線２２を介して接続されている。なお、ＣＰＵ１０の個数に制約はないが、以下では説明を容易にするために、ＣＰＵ１０の個数をＣＰＵ１０−０、ＣＰＵ１０−１、及びＣＰＵ１０−２の３個とする。
【００１３】
Sec Control１１は、情報処理装置１内のハードウェア要素に対するアクセス範囲を情報処理装置１のマスター毎に設定するためのハードウェアである。情報処理装置１のマスターとしては、（Ｎ＋１）個のＣＰＵ１０及びＳＤ１６やNetwork２０に内蔵されているＤＭＡＣ等を例示できる。マスターは、本発明に係る処理部として機能する。具体的には、Sec Control１１は、図２−１及び図２−２に示すようなレジスタによって構成されている。図２−１に示すレジスタAccess Ctl-1は、アクセスが制限されるハードウェア要素を設定するためのものであり、例えばbit00に１（デフォルト値は０）が立っていると、Mask ROM２１へのアクセスが制限される。
【００１４】
一方、図２−２に示すレジスタAccess Ctl-2は、アクセスが制限されるマスターを設定するためのものであり、例えばbit01,02に１（デフォルト値は０）が立っていると、ＣＰＵ１０−１，１０−２がレジスタAccess Ctl-1で設定されたアクセス範囲にアクセスすることができなくなる。本実施形態では、Sec Control１１は、ＣＰＵ１０−１，１０−２が図１に示す領域Ｒ内のＣＰＵ１０−０、Sec Control１１、Sec Engine１２、及びMask ROM２１にアクセスできないように設定されている。換言すれば、ＣＰＵ１０−０から見たメモリマップでは、図３に示すメモリ領域Ｒ１〜Ｒ３はアクセス可能であるのに対して、ＣＰＵ１０−１，１０−２からみたメモリマップでは、図３に示すメモリ領域Ｒ１〜Ｒ３はアクセスすることができない。
【００１５】
Sec Engine１２は、正当性検証処理のためのハッシュ演算やその他暗号化処理（例えばＲＳＡ暗号化処理等）を実行するハードウェアである。ＭＥＭ１３は、ＤＤＲやＤＤＲ２等の一般的な揮発性メモリである。ＮＯＲ１４は、プログラムやユーザデータを記憶する不揮発性メモリであり、本実施形態では、図４に示すように、ＮＯＲ１４は、ＣＰＵ１０−０の２次起動プログラムとＣＰＵ１０−１，１０−２の１次起動プログラムとを記憶している。１次起動プログラムとは、電源オン又はリセット時におけるＣＰＵの１次起動動作を規定したコンピュータプログラムである。２次起動プログラムとは、１次起動動作後におけるＣＰＵの２次起動動作を規定したコンピュータプログラムである。
【００１６】
ＮＡＮＤ１５は、ＮＯＲ１４の記憶容量よりも大きな記憶容量を有する不揮発性メモリである。本実施形態では、ＮＡＮＤ１５は、図５に示すように、ＣＰＵ１０−１，１０−２の２次起動プログラムを記憶している。ＳＤ１６は、ＳＤカード等の取り外し可能な不揮発性メモリを制御するコントローラである。ＬＥＤ１７は、点灯や点滅によって各種状態表示を行う発光素子である。ＵＳＢ１８は、ＵＳＢメモリ等を制御するためのコントローラである。ＬＣＤ１９は、文字や画像等を表示する表示装置を制御するコントローラである。Network２０は、情報処理装置１の外部と通信するためのコントローラである。Mask ROM２１は、書換不可の記憶装置である。本実施形態では、Mask ROM２１は、図６に示すように、ＣＰＵ１０−０の１次起動プログラムを記憶している。
【００１７】
このような構成を有する情報処理装置１は、起動時又はリセット時に以下に示す起動処理を実行する。以下、図７に示すフローチャートを参照して、起動処理を実行する際の情報処理装置１の動作について説明する。図７は、本実施の形態に係る起動処理の流れを示すフローチャートである。なお、図７において、ＣＰＵ（０），ＣＰＵ（１），ＣＰＵ（２）はそれぞれ、ＣＰＵ１０−０，ＣＰＵ１０−１，ＣＰＵ１０−２に対応している。
【００１８】
ステップＳ１の処理では、ＣＰＵ１０−０が、電源オン又はＣＰＵリセットを指示する電気信号が入力されたか否かを監視する。そして、ＣＰＵ１０−０は、電源オン又はＣＰＵリセットを指示する電気信号が入力されたタイミングで起動処理をステップＳ２の処理に進める。
【００１９】
ステップ２の処理では、ＣＰＵ１０−０が、Mask ROM２１から自身の１次起動プログラムを読み出し、読み出された１次起動プログラムを実行する。従来の情報処理装置では、ＣＰＵ１０−０の１次起動プログラムは不揮発性メモリに記憶されており、不正な起動プログラムが動作する可能性があった。これに対して、本実施形態では、ＣＰＵ１０−０の１次起動プログラムは書換不可の記憶装置であるMask ROM２１に記憶され、またMask ROM２１はＣＰＵ１０−０のみがアクセス可能に設定されているので、ＣＰＵ１０−０の１次起動プログラムが常に正しいことを保証できる。これにより、ステップＳ２の処理は完了し、起動処理はステップＳ３の処理に進む。
【００２０】
ステップＳ３の処理では、ＣＰＵ１０−０が、１次起動プログラムに従ってSec Control１１にアクセス範囲を設定する。本実施形態では、ＣＰＵ１０−０は、図２−１及び図２−２に示すレジスタAccess Ctl-1,Access Ctl-2のビット値を変更することによって、ＣＰＵ１０−１，１０−２が図１に示す領域Ｒ内のＣＰＵ１０−０、Sec Control１１、Sec Engine１２、及びMask ROM２１にアクセスできないようにアクセス範囲を設定する。これにより、ステップＳ３の処理は完了し、起動処理はステップＳ４の処理に進む。
【００２１】
ステップＳ４の処理では、ＣＰＵ１０−０が、１次起動プログラムに従ってＮＯＲ１４に記憶されている自身の２次起動プログラムの認証処理を実行する。これにより、ステップＳ４の処理は完了し、起動処理はステップＳ５の処理に進む。
【００２２】
ステップＳ５の処理では、ＣＰＵ１０−０が、ステップＳ４の認証処理の結果に基づいて、ＮＯＲ１４に記憶されている自身の２次起動プログラムの認証が成功したか否かを判別する。判別の結果、ＮＯＲ１４に記憶されている自身の２次起動プログラムの認証が失敗した場合、ＣＰＵ１０−０は起動処理をステップＳ６の処理に進める。一方、ＮＯＲ１４に記憶されている自身の２次起動プログラムの認証が成功した場合には、ＣＰＵ１０−０は起動処理をステップＳ７の処理に進める。
【００２３】
ステップＳ６の処理では、ＣＰＵ１０−０が、ＬＥＤ１７やＬＣＤ１９を制御することによって２次起動プログラムの認証が失敗した旨を報知する。これにより、ステップＳ６の処理は完了し、一連の起動処理は終了する。
【００２４】
ステップＳ７の処理では、ＣＰＵ１０−０が、ＮＯＲ１４から自身の２次起動プログラムを読み出し、読み出された２次起動プログラムに従ってＮＯＲ１４に記憶されているＣＰＵ１０−１，１０−２の１次起動プログラムの認証処理を実行する。これにより、ステップＳ７の処理は完了し、起動処理はステップＳ８の処理に進む。
【００２５】
ステップＳ８の処理では、ＣＰＵ１０−０が、ステップＳ７の認証処理の結果に基づいて、ＮＯＲ１４に記憶されているＣＰＵ１０−１，１０−２の１次起動プログラムの認証が成功したか否かを判別する。判別の結果、ＮＯＲ１４に記憶されているＣＰＵ１０−１，１０−２の１次起動プログラムの認証が失敗した場合、ＣＰＵ１０−０は起動処理をステップＳ９の処理に進める。一方、ＮＯＲ１４に記憶されているＣＰＵ１０−１，１０−２の１次起動プログラムの認証が成功した場合には、ＣＰＵ１０−０は起動処理をステップＳ１０の処理に進める。
【００２６】
ステップＳ９の処理では、ＣＰＵ１０−０が、ＬＥＤ１７やＬＣＤ１９を制御することによってＣＰＵ１０−１，１０−２の１次起動プログラムの認証が失敗した旨を報知する。これにより、ステップＳ９の処理は完了し、一連の起動処理は終了する。
【００２７】
ステップＳ１０の処理では、ＣＰＵ１０−０が、ＮＯＲ１４に記憶されている１次起動プログラムに従って起動（リセット解除）するようにＣＰＵ１０−１，１０−２に指示する。ＣＰＵ１０−１，１０−２は、ＮＯＲ１４に記憶されている自身の１次起動プログラムを読み出し、読み出された１次起動プログラムを実行する。これにより、ステップＳ１０の処理は完了し、起動処理はステップＳ１１（Ｓ１１Ａ，Ｓ１１Ｂ）の処理に進む。
【００２８】
ステップＳ１１（Ｓ１１Ａ，Ｓ１１Ｂ）の処理では、ＣＰＵ１０−１，１０−２がそれぞれ、１次起動プログラムに従って起動処理を実行すると共に、１次起動プログラムに従ってＮＡＮＤ１５に記憶されている自身の２次起動プログラムの認証要求をＣＰＵ１０−０に送信する。認証要求の送信方法としては、一般的な共有メモリを介したＣＰＵ間通信による割り込み通知等の手法を例示することができる。これにより、ステップＳ１１の処理は完了し、起動処理はステップＳ１２の処理に進む。
【００２９】
ステップＳ１２の処理では、ＣＰＵ１０−０が、自身の２次起動プログラムに従ってＮＡＮＤ１５に記憶されているＣＰＵ１０−１，１０−２の２次起動プログラムの認証処理を実行する。これにより、ステップＳ１２の処理は完了し、起動処理はステップＳ１３の処理に進む。
【００３０】
ステップＳ１３の処理では、ＣＰＵ１０−０が、ステップＳ１２の認証処理の結果に基づいて、ＮＡＮＤ１５に記憶されているＣＰＵ１０−１，１０−２の２次起動プログラムの認証が成功したか否かを判別する。判別の結果、ＮＡＮＤ１５に記憶されているＣＰＵ１０−１，１０−２の２次起動プログラムの認証が失敗した場合、ＣＰＵ１０−０は起動処理をステップＳ１４の処理に進める。一方、ＮＡＮＤ１５に記憶されているＣＰＵ１０−１，１０−２の２次起動プログラムの認証が成功した場合には、ＣＰＵ１０−０は起動処理をステップＳ１５の処理に進める。
【００３１】
ステップＳ１４の処理では、ＣＰＵ１０−０が、情報処理装置１の起動を停止する。これにより、ステップＳ１４の処理は完了し、一連の起動処理は終了する。
【００３２】
ステップＳ１５の処理では、ＣＰＵ１０−０が、２次起動プログラムの認証が成功した旨をＣＰＵ１０−１，１０−２に通知する。ＣＰＵ１０−１，１０−２は、ＮＡＮＤ１５から自身の２次起動プログラムを読み出し、読み出された２次起動プログラムを実行する。これにより、ステップＳ１５の処理は完了し、一連の起動処理は終了する。
【００３３】
以上の説明から明らかなように、本実施形態に係る起動処理では、起動時又はリセット時、Sec Control１１によってアクセス範囲が制限されたＣＰＵ１０−１，１０−２が、Sec Control１１によってアクセス範囲が制限されていないＣＰＵ１０−０に対したＣＰＵ１０−１，１０−２の起動プログラムの認証処理を依頼し、ＣＰＵ１０−０が、ＣＰＵ１０−１，１０−２の起動プログラムの認証処理を起動処理又はリセット処理と並行して実行するので、起動時間やコストを増加させることなくセキュリティ要件に対応することができる。
【００３４】
なお、本実施形態では、ＣＰＵ１０−０は、ＣＰＵ１０−１の起動処理とＣＰＵ１０−２の起動処理とを同時に実行したが、例えばＣＰＵ１０−１の起動処理をＣＰＵ１０−２の起動処理より優先的に実行する等、実行する起動処理やその範囲に優先度を付与してもよい。
【００３５】
以上、本発明者らによってなされた発明を適用した実施の形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施の形態、実施例、及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００３６】
１  情報処理装置
１０−０，１０−１，１０−２，１０−Ｎ  ＣＰＵ
１１  Sec Control
１２  Sec Engine
１３  ＭＥＭ
１４  ＮＯＲ
１５  ＮＡＮＤ
１６  ＳＤ
１７  ＬＥＤ
１８  ＵＳＢ
１９  ＬＣＤ
２０  Network
２１  Mask ROM
【先行技術文献】
【特許文献】
【００３７】
【特許文献１】特開２００９−１２９０６１号公報
【図１】
2014056390.tif 000003
【図２−１】
2014056390.tif 000004
【図２−２】
2014056390.tif 000005
【図３】
2014056390.tif 000006
【図４】
2014056390.tif 000007
【図５】
2014056390.tif 000008
【図６】
2014056390.tif 000009
【図７】
2014056390.tif 000010