(57)【要約】【課題】ホストシステムがサブシステムの正当性検証を行うソフトウェアを有し、当該ソフトウェアをサブシステムに実行させることで、サブシステムのソフトウェアの正当性検証を行い、正当性検証の結果をホストシステムで確認すること。【解決手段】情報処理システムは、ホストシステムが、プログラムを前記ホストシステムから前記サブシステムへ提供する提供部と、前記ホストシステムによる前記プログラムの正当性の事前検証の結果と、前記サブシステムが前記プログラムを実行することによって得られた前記プログラムの正当性の検証の結果とを、機密情報用不揮発性メモリに記憶された情報を用いて検証する第１の検証部とを有し、サブシステムが、前記提供部によって提供された前記プログラムを実行することによって、前記プログラムの検証を行う第２の検証部と、前記第２の検証部の検証の結果を前記ホストシステムに送信する第２の通信部とを有する。【選択図】図３
2018156505.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステム及びサブシステムを含む情報処理システムであって、
前記ホストシステムは、
前記サブシステムで実行可能なプログラムを前記ホストシステムから前記サブシステムへ提供する提供部と、
前記ホストシステムによる前記サブシステムで実行可能なプログラムの正当性の事前検証の結果と、前記サブシステムが前記プログラムを実行することによって得られた前記プログラムの正当性の検証の結果とを、機密情報用不揮発性メモリに記憶された情報を用いて検証する第１の検証部と、
前記第１の検証部による検証の結果に基づき、前記サブシステムに通信を許可する通知を送信する第１の通信部とを有し、
前記サブシステムは、
前記提供部によって提供された前記プログラムを実行することによって、前記プログラムの検証を行う第２の検証部と、
前記第２の検証部の検証の結果を前記ホストシステムに送信する第２の通信部とを有する情報処理システム。
【請求項２】
前記ホストシステムは、前記サブシステムの前記第２の検証部と、前記第２の通信部とに、動作の実行を開始させる起動部を有する請求項１記載の情報処理システム。
【請求項３】
前記ホストシステムは、前記サブシステムの起動タイミングを遅らせるサブシステム起動遅延部を有する請求項２に記載の情報処理システム。
【請求項４】
前記提供部は、疑似的に前記サブシステムの補助記憶装置として機能する請求項1記載の情報処理システム。
【請求項５】
前記サブシステムは、前記提供部からのプログラムの取得と、前記サブシステムが有する補助記憶装置からのプログラムの取得とを、切り替え可能である請求項４記載の情報処理システム。
【請求項６】
前記提供部は、前記サブシステムの補助記憶装置と同一のインタフェースの動作と、並行して、前記ホストシステムからの動作開始又は停止の指示を受け付ける動作が可能である請求項４記載の情報処理システム。
【請求項７】
前記提供部は、前記サブシステムからの特定のアドレスに対する読み取り要求に対して、前記特定のアドレスが所定のアドレス範囲である場合は、前記特定のアドレスに対応するデータを応答し、前記特定のアドレスが前記所定のアドレス範囲以外のアドレスである場合は、前記サブシステムの要求に応答しない請求項４記載の情報処理システム。
【請求項８】
ホストシステム及びサブシステムを含む情報処理システムが実行する情報処理方法であって、
前記ホストシステムは、
前記サブシステムで実行可能なプログラムを前記ホストシステムから前記サブシステムへ提供する提供手順と、
前記ホストシステムによる前記サブシステムで実行可能なプログラムの正当性の事前検証の結果と、前記サブシステムが前記プログラムを実行することによって得られた前記プログラムの正当性の検証の結果とを、機密情報用不揮発性メモリに記憶された情報を用いて検証する第１の検証手順と、
前記第１の検証手順による検証の結果に基づき、前記サブシステムに通信を許可する通知を送信する第１の通信手順とを実行し、
前記サブシステムは、
前記提供手順によって提供された前記プログラムを実行することによって、前記プログラムの検証を行う第２の検証手順と、
前記第２の検証手順の検証の結果を前記ホストシステムに送信する第２の通信手順とを実行する情報処理方法。
【請求項９】
情報処理装置であって、
周辺機器で実行可能なプログラムを前記情報処理装置から前記周辺機器へ提供する提供部と、
前記情報処理装置による前記周辺機器で実行可能なプログラムの正当性の事前検証の結果と、前記周辺機器が前記プログラムを実行することによって得られた前記プログラムの正当性の検証の結果とを、機密情報用不揮発性メモリに記憶された情報を用いて検証する検証部と、
前記検証部による検証の結果に基づき、前記周辺機器に通信を許可する通知を送信する通信部とを有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法及び情報処理装置に関する。
【背景技術】
【０００２】
官公庁又は病院で個人情報等の秘匿すべき情報を取り扱う、ネットワークに接続されたＭＦＰ（Multi-Function Peripheral）においては、ユーザのドキュメントを蓄積する機能を持つため、セキュリティ要件としてユーザデータを守ることが求められる。そこで、ソフトウェアが改ざんされていないことを機器が自ら検証する仕組みである正当性検証が、ＴＰＭ（Trusted Platform Module）ハードウェアを搭載して行なわれる。また、ＩｏＴ（Internet of Things）通信ゲートウェイデバイスにおいても、正当性検証を行うものがある。ＴＰＭはソフトウェアの改ざん検出を行う際に使用される専用のＬＳＩチップであり、業界団体のＴｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ（ＴＣＧ）が標準仕様を策定している。このようにソフトウェアが改ざんされていないことを検出する仕組みである正当性検証及びその仕様は既に知られている。（例えば特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、今までの構成では、正当性検証を行うことができるサブシステムを単独動作させた時に正当性検証を行うこと、また、単独動作時に正当性検証を行うことができるサブシステムを複数組み合わせて、全体システムとして正当性検証を成立させ動作を行うことは実現できていたが、単独動作時に正当性検証を行うことができるホストシステムと、単独動作時に正当性検証を行うことができないサブシステムを組み合わせたときに、全体システムの正当性検証を行うことはできなかった。
【０００４】
本発明は、上記の点に鑑みてなされたものであって、ホストシステムがサブシステムの正当性検証を行うソフトウェアを有し、当該ソフトウェアをサブシステムに実行させることで、サブシステムのソフトウェアの正当性検証を行い、正当性検証の結果をホストシステムで確認することを目的とする。
【課題を解決するための手段】
【０００５】
そこで上記課題を解決するため、情報システムは、ホストシステム及びサブシステムを含み、前記ホストシステムは、前記サブシステムで実行可能なプログラムを前記ホストシステムから前記サブシステムへ提供する提供部と、前記ホストシステムによる前記サブシステムで実行可能なプログラムの正当性の事前検証の結果と、前記サブシステムが前記プログラムを実行することによって得られた前記プログラムの正当性の検証の結果とを、機密情報用不揮発性メモリに記憶された情報を用いて検証する第１の検証部と、前記第１の検証部による検証の結果に基づき、前記サブシステムに通信を許可する通知を送信する第１の通信部とを有し、前記サブシステムは、前記提供部によって提供された前記プログラムを実行することによって、前記プログラムの検証を行う第２の検証部と、前記第２の検証部の検証の結果を前記ホストシステムに送信する第２の通信部とを有する。
【発明の効果】
【０００６】
ホストシステムがサブシステムの正当性検証を行うソフトウェアを有し、当該ソフトウェアをサブシステムに実行させることで、サブシステムのソフトウェアの正当性検証を行い、正当性検証の結果をホストシステムで確認することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施の形態における情報処理システム１０００の構成例を示す図である。
【図２】本発明の実施の形態における情報処理システム１０００のハードウェア構成例を示す図である。
【図３】本発明の実施の形態における情報処理システム１０００の機能構成例を示す図である。
【図４】本発明の実施の形態におけるホストシステム１００の起動処理手順の一例を説明するためのシーケンス図である。
【図５】本発明の実施の形態におけるホストシステム１００の起動時のプログラム読み込み手順の一例を示す図である。
【図６】本発明の実施の形態におけるホストシステム１００の第１の正当性検証手順の一例を示す図である。
【図７】本発明の実施の形態におけるホストシステム１００の第２の正当性検証手順の一例を示す図である。
【図８】本発明の実施の形態における提供部１５の機能を説明するための図である。
【図９】本発明の実施の形態におけるサブシステム２００のプログラムの正当性検証手順の一例を示す図である。
【図１０】本発明の実施の形態におけるサブシステム２００の起動処理手順の一例を説明するためのシーケンス図である。
【発明を実施するための形態】
【０００８】
以下、図面に基づいて本発明の実施の形態を説明する。
【０００９】
図１は、本発明の実施の形態における情報処理システム１０００の構成例を示す図である。情報処理システム１０００は、ホストシステム１００及びサブシステム２００を有する。
【００１０】
ホストシステム１００は、情報処理装置であって、例えば、ＭＦＰ（Multi-Function Peripheral）の本体部分である。ホストシステム１００は、ソフトウェアの正当性検証を行うことができる。正当性検証は、例えば、起動時に補助記憶装置に格納されたプログラム及びデータ被検証データをＲＡＭ（Random Access Memory）にコピーし、暗号計算エンジンが、情報処理装置が保持する鍵データを用いて暗号計算を行い、計算結果が予め算出してある比較参照データと一致している場合に、被検証データが正常であると判断する手順で行われる。ホストシステム１００は、被検証データが正常であると判断されるとオペレーティングシステムが起動して通常動作状態に移行する。
【００１１】
サブシステム２００は、情報処理装置であって、例えば、ＭＦＰに接続される操作システム、給紙システム、読み取りシステム、画像形成システム、走査システム、通信システム、後処理システム等の周辺機器である。サブシステム２００は、ホストシステム１００と接続されて通信を行い、結合して動作する。
【００１２】
図２は、本発明の実施の形態における情報処理システム１０００のハードウェア構成例を示す図である。
【００１３】
図２に示されるように、ホストシステム１００は、ＣＰＵ（Central Processing Unit）／ＳｏＣ（System on a Chip）１０１、正当性検証用の鍵を記憶するＲＯＭ（Read Only Memory）１０２、ブートデバイス１０３、補助記憶装置１０４、暗号計算エンジン１０５、ＲＡＭ１０６、通信Ｉ／Ｆ１０７及び疑似フラッシュメモリコントローラ１０８を有する。
【００１４】
ＣＰＵ／ＳｏＣ１０１は、ブートデバイス１０３又は補助記憶装置１０４に記憶されたプロクラムに従って、ホストシステム１００に係る機能を実現する。
【００１５】
正当性検証用の鍵を記憶するＲＯＭ１０２は、通常動作においては書き換え不可能なデバイスに鍵を保管するＲＯＭである。例えば、正当性検証用の鍵を記憶するＲＯＭ１０２は、ＳｏＣ内部の回路又はＴＰＭ（Trusted Platform Module）により構成され、また、特殊な管理者ツールによってのみ当該ＲＯＭは書き換え可能である。正当性検証用の鍵を記憶するＲＯＭ１０２は、ホストシステム１００が保持するデータの改ざん等に対する耐性を持たせるためのセキュリティチップであり、暗号計算に用いられる鍵データ又は正当性検証のための比較参照データ等を保持することができる。
【００１６】
ブートデバイス１０３は、例えば、フラッシュメモリであり、ＣＰＵ／ＳｏＣ１０１により実行されて、ホストシステム１００を起動させるプログラムが格納されている。ＢＩＯＳ（Basic Input/Output System）又は正当性検証用のプログラム等、起動時に実行されるプログラムが格納される。
【００１７】
補助記憶装置１０４は、例えば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）等であり、オペレーティングシステム、各種アプリケーションプログラム、データベース等が格納される。
【００１８】
暗号計算エンジン１０５は、計算量が多い暗号計算を高速に行うハードウェアである。暗号計算エンジン１０５は、ＲＳＡ暗号演算又はハッシュ演算等の暗号計算を行う演算器ユニットである。
【００１９】
ＲＡＭ（Random Access Memory）１０６は、ブートデバイス１０３または補助記憶装置１０４等に格納されるプログラムを読み込む。当該プログラムは、ＣＰＵ／ＳｏＣ１０１に各種機能を実行させる。また、ＲＡＭ（Random Access Memory）１０６は、プログラムが使用するワークエリアの提供、データの保持等も行う。
【００２０】
通信Ｉ／Ｆ１０７は、外部システムと通信を行うインタフェースである。通信Ｉ／Ｆ１０７は、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）による通信を行うインタフェースを有する。
【００２１】
疑似フラッシュメモリコントローラ１０８は、外部システムに透過的にプログラム又はデータを転送する。すなわち、外部システムは、自らが有するフラッシュメモリへのアクセスと同様に、疑似フラッシュメモリコントローラ１０８を介して、ホストシステム１００が提供するプログラム又はデータにアクセスできる。
【００２２】
図２に示されるように、サブシステム２００は、ＣＰＵ／ＳｏＣ２０１、フラッシュメモリ２０２、ＤＩＰＳＷ２０３、補助記憶装置２０４、暗号計算エンジン２０５、ＲＡＭ２０６及び通信Ｉ／Ｆ２０７を有する。
【００２３】
ＣＰＵ／ＳｏＣ２０１、補助記憶装置２０４、暗号計算エンジン２０５、ＲＡＭ２０６及び通信Ｉ／Ｆ２０７は、ホストシステム１００のハードウェア構成に含まれる、ＣＰＵ／ＳｏＣ１０１、補助記憶装置１０４、暗号計算エンジン１０５、ＲＡＭ１０６及び通信Ｉ／Ｆ１０７とそれぞれ同様のハードウェアである。
【００２４】
フラッシュメモリ２０２は、ＣＰＵ／ＳｏＣ２０１により実行されて、サブシステム２００を起動させるプログラムが格納される。
【００２５】
ＤＩＰＳＷ２０３は、ＣＰＵ／ＳｏＣ２０１がアクセスするデバイスを切り替えるスイッチである。すなわち、ＤＩＰＳＷ２０３は、サブシステム上のフラッシュメモリへの信号線と、ホストシステム１００にアクセスする信号線を切り替える。図２に示されるように、信号線は、アドレスの信号線とデータの信号線を含む。ＤＩＰＳＷ２０３は、ユーザにより切り替えられてもよいし、例えば、ホストシステム１００と接続されている場合、ホストシステム１００にアクセスするように切り替えられてもよい。
【００２６】
また、ＣＰＵ／ＳｏＣ２０１は、ホストシステム１００から制御されるＣＰＵ＿Ｒｅｓｅｔ解除制御線が接続されている。ＣＰＵ＿Ｒｅｓｅｔ解除制御線は、ホストシステム１００のＣＰＵ／ＳｏＣ１０１のＧＰＩＯ（General Purpose Input/Output）等により制御され、ＣＰＵ／ＳｏＣ２０１のＲｅｓｅｔ解除を行う。Ｒｅｓｅｔ解除が行われると、ＣＰＵ／ＳｏＣ２０１は動作を開始する。なお、ホストシステム１００と接続されていない場合は、常にＲｅｓｅｔ解除状態となるように制御されるため、ＣＰＵ／ＳｏＣ２０１は単独で動作を開始することができる。
【００２７】
図３は、本発明の実施の形態における情報処理システム１０００の機能構成例を示す図である。図３に示されるように、ホストシステム１００は、起動部１１、検証部１２、補助記憶部１３、主記憶部１４、提供部１５及び通信部１６を有し、サブシステム２００は、起動部２１、検証部２２、補助記憶部２３、主記憶部２４、切替部２５及び通信部２６を有する。これら各部は、ホストシステム１００にインストールされた１以上のプログラムがＣＰＵ／ＳｏＣ１０１に実行させる処理等により実現される。検証部１２は、さらに、暗号計算エンジン１０５により実現される。提供部１５は、さらに、疑似フラッシュメモリコントローラ１０８により実現される。補助記憶部２３は、さらに、正当性検証用の鍵を記憶するＲＯＭ１０２、ブートデバイス１０３及び補助記憶装置１０４により実現される。主記憶部は、ＲＡＭ１０６により実現される。通信部１６は、さらに、通信Ｉ／Ｆ１０７により実現される。
【００２８】
起動部１１は、ホストシステム１００を起動させる機能を有する。起動部１１は、補助記憶部１３からプログラムを読み込み、主記憶部１４に展開して実行する。また、起動部１１は、検証部１２に正当性検証を行わせる。また、起動部１１は、提供部１５がサブシステム２００にプログラムを提供できるように制御する。
【００２９】
検証部１２は、補助記憶部１３から正当性検証に必要なデータを読み込み、主記憶部１４に展開されるプログラム及びデータの正当性検証を行う。また、検証部１２は、当該正当性検証の結果が期待するものであるか否かさらに検証してもよい。また、検証部１２は、サブシステム２００から正当性検証の結果を取得して、当該結果が期待するものであるか否か検証を行う。
【００３０】
補助記憶部１３は、起動部１１及び検証部１２が読み込むプログラム及びデータを記憶する。主記憶部１４は、起動部１１、検証部１２又は提供部１５が読み込むプログラム及びデータが展開される。
【００３１】
提供部１５は、サブシステム２００からの読み出し要求に応じて、主記憶部１４に記憶されているプログラム及びデータをサブシステム２００に提供する。
【００３２】
通信部１６は、サブシステム２００と、通信インタフェースを介して通信を行う。通信インタフェースは、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）である。
【００３３】
図３に示されるように、サブシステム２００は、起動部２１、検証部２２、補助記憶部２３、主記憶部２４、切替部２５及び通信部２６を有する。これら各部は、サブシステム２００にインストールされた１以上のプログラムがＣＰＵ／ＳｏＣ２０１に実行させる処理等により実現される。検証部２２は、さらに、暗号計算エンジン２０５により実現される。補助記憶部２３は、さらに、フラッシュメモリ２０２及び補助記憶装置２０４により実現される。主記憶部２４は、ＲＡＭ２０６により実現される。切替部２５は、さらに、ＤＩＰＳＷ２０３により実現される。通信部２６は、さらに、通信Ｉ／Ｆ２０７により実現される。
【００３４】
起動部２１は、サブシステムを起動させる機能を有する。起動部２１は、切替部２５又は補助記憶部２３からプログラムを読み込み、主記憶部２４に展開して実行する。また、起動部２１は、検証部２２に正当性検証を実施させる。
【００３５】
検証部２２は、切替部２５から正当性検証に必要なデータを読み込み、補助記憶部２３が記憶するプログラム及びデータの正当性検証を行う。
【００３６】
補助記憶部２３は、起動部２１、検証部２２が読み込みプログラム及びデータが記憶される。
【００３７】
切替部２５は、起動部２１又は検証部２２がプログラム及びデータを読み込む対象を、ホストシステム１００の提供部１５又は補助記憶部２３のいずれかに切り替える機能を有する。
【００３８】
通信部２６は、ホストシステム１００と、通信インタフェースを介して通信を行う。通信インタフェースは、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）である。
【００３９】
図４は、本発明の実施の形態におけるホストシステム１００の起動処理手順の一例を説明するためのシーケンス図である。
【００４０】
ステップＳ１００において、起動部１１は、補助記憶部１３に記憶されているプログラムを読み込み、実行する。図５は、本発明の実施の形態におけるホストシステム１００の起動手順の一例を示す図である。図５に示されるように、起動部１１は、補助記憶部１３から一次起動プログラム（例えば、ＢＩＯＳ）をフラッシュメモリアドレス空間上の事前に決められた開始アドレスから読み込み、主記憶部１４のＲＡＭアドレス空間上の事前に決められた開始アドレスに再配置した後、主記憶部１４上で一次起動プログラムを実行する。主記憶部１４のほうが補助記憶部１３よりアクセス速度が高速であるため、起動部１１は、一次起動プログラムを高速に実行できる。同様の起動手順は、サブシステム２００でも行われる。
【００４１】
図４に戻る。ステップＳ１０１において、起動部１１は、補助記憶部１３から二次起動プログラムを取得して、主記憶部１４に展開する。続いて、検証部１２は、主記憶部１４上で二次起動プログラムの正当性検証を実施する（Ｓ１０２）。検証の結果、正当性がないと判定された場合、以降のステップは実行されず、ホストシステム１００の起動は中止される。
【００４２】
図６は、本発明の実施の形態におけるホストシステム１００の第１の正当性検証手順の一例を示す図である。図６に示される１．において、起動部１１が、一次起動プログラムを補助記憶部１３から読み出して実行する。続いて、２−１．において、一次起動プログラムが正当性検証用の鍵を補助記憶部１３から取得して、二次起動プログラム（例えば、ＯＳ）が正しい鍵で署名されていることを確認する。続いて、２−２．において、正しく署名されていることが確認できたら、二次起動プログラムに制御を移す。正当性検証により、補助記憶部１３に記憶されている正当性検証用の鍵の信頼性に基づいて、プログラムが正しく署名されていることが確認でき（Trusted Chain）、プログラムが改ざんされていないことが確認できる。Ｔｒｕｓｔｅｄ  Ｃｈａｉｎとは、デジタル署名されたソフトウェアから起動される１つのハードウェアに基づいて、複数のハードウェア又はソフトウェアのセキュリティを確保するコンピュータセキュリティ上の既知の手法である。
【００４３】
図７は、本発明の実施の形態におけるホストシステム１００の第２の正当性検証手順の一例を示す図である。図７に示されるように正当性検証手順として、１．〜３．の手順及び１＊．〜３−２＊．の手順がある。１．において、起動部１１が、一次起動プログラムを補助記憶部１３上で実行する。続いて、２−１．において、一次起動プログラムは、２−２．の処理の前の補助記憶部１３上の二次起動プログラムに対して正当性検証を実施する。続いて、２−２．において、一次起動プログラムは、二次起動プログラムを補助記憶部１３から主記憶部１４に展開する。続いて、３．において、一次起動プログラムは、主記憶部１４の二次起動プログラムに制御を渡し、二次起動プログラムを実行させる。図７に示されるもうひとつの正当性検証手順である、１＊．〜３−２＊．の手順では、１＊．において、起動部１１が、一次起動プログラムを補助記憶部１３上で実行する。続いて、２＊．において、一次起動プログラムは、二次起動プログラムを補助記憶部１３から主記憶部１４に展開する。続いて、３−１＊．において、一次起動プログラムは、３−２＊．の処理の前の主記憶部１４上の二次起動プログラムに対して正当性検証を実施する。続いて、３−２＊．において、一次起動プログラムは、主記憶部１４の二次起動プログラムに制御を渡し、二次起動プログラムを実行させる。すなわち、正当性検証手順１．〜３．は、一次起動プログラムが、主記憶部１４に展開する前に補助記憶部１３上の二次起動プログラムに対して正当性検証を実施する。一方、正当性検証手順１＊．〜３−２＊．は、一次起動プログラムが、主記憶部１４に展開する前に補助記憶部１３上の二次起動プログラムに対して正当性検証を実施する。本発明の実施の形態においては、いずれの正当性検証の手順を実施してもよい。
【００４４】
図４に戻る。ステップＳ１０３において、起動部１１は、サブシステム２００用二次起動プログラムを補助記憶部１３から取得して主記憶部１４へ展開する。続いて、検証部１２は、主記憶部１４上でサブシステム２００用二次起動プログラムの事前の正当性検証を実施し、当該事前の正当性検証の結果を検証する（Ｓ１０４）。当該事前の正当性検証の結果を検証して、正当性がないと判定された場合、以降のステップは実行されず、サブシステム２００の起動は中止される。
【００４５】
ステップＳ１０５において、提供部１５に、サブシステム２００からアクセスを受けるためのアドレス情報及びフラッシュメモリ読み出しサイクル情報を設定する。提供部１５の設定が完了すると、起動部１１は、ＣＰＵ＿Ｒｅｓｅｔ解除制御線で、サブシステム２００のリセット解除を行う（Ｓ１０６）。なお、ホストシステム１００は、ＣＰＵ＿Ｒｅｓｅｔ解除制御線によって、サブシステム２００の起動タイミングを制御することができる。例えば、ホストシステム１００は、ＣＰＵ＿Ｒｅｓｅｔ解除制御線によって、サブシステム２００の起動タイミングを遅延させることができる。
【００４６】
ステップＳ１０７において、提供部１５は、サブシステム２００からの読み出し要求に応答して、主記憶部１４上のサブシステム２００用二次起動プログラムを提供する。
【００４７】
図８は、本発明の実施の形態における提供部１５の機能を説明するための図である。提供部１５は、ホストシステム１００上で実装されるハードウェア回路の疑似フラッシュメモリコントローラ１０８であるにより実現される。提供部１５は、ＣＰＵ／ＳｏＣ１０１上に搭載するソフトウェアインターフェースであるプログラムＩ／Ｆ及びサブシステム２００側にサブシステム２００用プログラムを提供するデータ転送コントローラの二つの機能を持つ。
【００４８】
プログラムＩ／Ｆは、提供部１５のソフトウェア制御を可能とするものである。プログラムＩ／Ｆの機能は、１．提供部１５の動作開始又は停止、２．サブシステム２００用プログラムの主記憶部１４上の配置アドレス情報、すなわち、サブシステム２００から指定されるアドレスに対応する、主記憶部１４上のアドレスのデータを提供するためのアドレスマッピング情報、３．サブシステム２００用のフラッシュメモリ２０２をシミュレーションするために、フラッシュメモリ読み出しサイクルをシミュレーションする機構を持つ。通常、フラッシュメモリデバイスは、３３ＭＨｚクロック、最少アクセスタイム９０ｎｓ、といったデバイス固有の特性を持つため、フラッシュメモリ２０２のデバイスの当該特性をシミュレーションする。提供部１５は、サブシステム２００からＲｅａｄ要求を受けた場合、Ｒｅａｄ要求の指定するアドレスが、アドレスマッピング情報によって定義されるアドレスである場合はデータを応答する。一方、Ｒｅａｄ要求の指定するアドレスが、アドレスマッピング情報によって定義されていないアドレスは、サブシステム２００からＲｅａｄ要求を受けても、提供部１５は、サブシステム２００にデータを応答しない。
【００４９】
データ転送コントローラは、プログラムＩ／Ｆで設定された動作条件で、サブシステム２００側から要求されたアドレスに対して、対応する主記憶部１４上のアドレス上のデータを、提供部１５が応答するためのコントローラである。提供部１５は、主記憶部１４上に配置されたサブシステム２００用プログラムを、サブシステム２００に提供する。
【００５０】
なお、図８に示されるように、サブシステム２００から提供部１５へのアクセスは、Ｒｅａｄ要求のみ受け付け、Ｗｒｉｔｅ要求は無視する。また、提供部１５は、サブシステム２００からのＲｅａｄ要求を受け付けるインタフェースは維持したまま、プログラムＩ／Ｆによるホストシステムからの開始設定又は要求設定を常に受け付けることが可能である。すなわち、プログラムＩ／Ｆ及びデータ転送コントローラは、完全に並行して動作可能であってもよい。
【００５１】
図９は、本発明の実施の形態におけるサブシステム２００の正当性検証手順の一例を示す図である。図９に示されるように、ホストシステム１００では、１．起動部１１から起動し、ホストシステム１００用一次起動プログラムが実行される。続いて、２．一次起動プログラムは、二次起動プログラムの正当性検証と主記憶部１４への展開を行い処理を二次起動プログラムに移す。続いて、３．二次起動プログラムは、サブシステム２００用二次起動プログラムの正当性検証を行う。続いて、４．ホストシステム１００側から、検証済サブシステム２００用二次起動プログラムをサブシステム２００へ提供する。
【００５２】
一方、サブシステム２００では、起動部２１から起動し、サブシステム２００用一次起動プログラムを実行する。一次起動プログラムは、例えば、ＢＩＯＳである。続いて、４．にてホストシステム１００から提供されたサブシステム２００用二次起動プログラムを起動部２１は実行する（５．）。続いて、６．サブシステム２００用二次起動プログラムは、自身の正当性検証を行う。サブシステム２００側で二次起動プログラムを実行することにより、サブシステム２００は、期待とは異なるプログラムを実行することを回避しＴｒｕｓｔｅｄ  Ｃｈａｉｎを確保することができる。続いて、当該検証の結果は、サブシステム２００からホストシステム１００に送信されて、ホストシステム１００が、検証の結果を正当か否か判定する。
【００５３】
図４に戻る。ステップＳ１０８において、上述のように、サブシステム２００から通信インタフェースを介してサブシステム２００上で実施した正当性検証の結果が送信される。通信インタフェースは、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）である。続いて、ホストシステム１００の検証部１２は、受信した正当性検証の結果を検証する（Ｓ１０９）。検証が問題なければ、ホストシステム１００は、通信部１６から以降の通信を許可する通知をサブシステム２００に送信して、サブシステム２００との結合動作を開始して情報処理システム１０００が正常に起動の状態に移行する（Ｓ１１０）。
【００５４】
図１０は、本発明の実施の形態におけるサブシステム２００の起動処理手順の一例を説明するためのシーケンス図である。
【００５５】
ステップＳ２００において、ホストシステム１００は、ＣＰＵ＿Ｒｅｓｅｔ解除制御線でサブシステム２００をリセット解除し、動作開始させる。続いて、起動部２１は、一次起動プログラムを実行する（Ｓ２０１）。
【００５６】
ステップＳ２０２において、起動部２１は、二次起動プログラムを切替部２５及びホストシステム１００を介して取得し、主記憶部２４へ展開する。続いて、検証部２２は、主記憶部２４上でサブシステム２００用二次起動プログラムの正当性検証を実施する（Ｓ２０３）。正当性検証の結果、正当性がないと判定された場合、以降のステップは実行されず、サブシステム２００の起動は中止され、ホストシステム１００に当該判定を通知してもよい。
【００５７】
ステップＳ２０４において、起動部２１は、二次起動プログラムの正当性検証結果の検証先を確認する。切替部２５の状態に応じて、検証先は決定される。ホストシステム１００と結合動作している場合は、起動部２１は、通信部２６を介してホストシステム１００に検証を要求し（Ｓ２０５）、ホストシステム１００と結合動作していない場合は、起動部２１は、サブシステム２００内の正当性検証用の鍵及び検証結果を記憶する補助記憶部と照合する。ホストシステム１００は、サブシステム２００から送信された正当性検証結果の検証を実行する。当該検証結果が問題なければ、ホストシステム１００は、通信部１６から以降の通信を許可する通知をサブシステム２００に送信して（Ｓ２０６）、サブシステム２００との結合動作を開始して情報処理システム１０００が正常に起動の状態に移行する。
【００５８】
上述したように、本発明の実施の形態によれば、サブシステム２００は、ホストシステム１００が有するサブシステム２００用二次起動プログラムの提供を受け、当該プログラムを実行して正当性検証を行い、正当性検証結果をホストシステム１００に送信する。ホストシステム１００は、正当性検証結果を検証する。すなわち、ホストシステムがサブシステムの正当性検証を行うソフトウェアを有し、当該ソフトウェアをサブシステムに実行させることで、サブシステムのソフトウェアの正当性検証を行い、正当性検証の結果をホストシステムで確認することができる。
【００５９】
なお、本発明の実施の形態において、検証部１２は、第１の検証部の一例である。正当性検証用の鍵を記憶するＲＯＭは、機密情報用不揮発性メモリの一例である。通信部１６は、第１の通信部の一例である。検証部２２は、第２の検証部の一例である。通信部２６は、第２の通信部の一例である。起動部１１は、サブシステム起動遅延部の一例である。ホストシステム１００は、情報処理装置の一例である。サブシステム２００は、周辺機器の一例である。
【００６０】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６１】
１０００        情報処理システム
１００          ホストシステム
２００          サブシステム
１０１、２０１  ＣＰＵ／ＳｏＣ
１０２          正当性検証用の鍵を記憶するＲＯＭ
１０３          ブートデバイス
１０４、２０４  補助記憶装置
１０５、２０５  暗号計算エンジン
１０６、２０６  ＲＡＭ
１０７、２０７  通信Ｉ／Ｆ
１０８          疑似フラッシュメモリコントローラ
２０２          フラッシュメモリ
２０３          ＤＩＰＳＷ
１１、２１      起動部
１２、２２      検証部
１３、２３      補助記憶部
１４、２４      主記憶部
１５            提供部
１６、２６      通信部
２５            切替部
【先行技術文献】
【特許文献】
【００６２】
【特許文献１】特開２０１１‐１６４８１０号公報
【図１】
2018156505.tif 000003
【図２】
2018156505.tif 000004
【図３】
2018156505.tif 000005
【図４】
2018156505.tif 000006
【図５】
2018156505.tif 000007
【図６】
2018156505.tif 000008
【図７】
2018156505.tif 000009
【図８】
2018156505.tif 000010
【図９】
2018156505.tif 000011
【図１０】
2018156505.tif 000012