(57)【要約】【課題】起動処理においてセキュリティを確保した状態で各種デバイスに対応可能とし、ブートＲＯＭの内容確定後にデバイスを任意に変更可能にする。【解決手段】ブートＲＯＭ２５より不揮発メモリＡ用デバイスドライバを用いて不揮発メモリＡ２１にアクセスし、暗号化された不揮発メモリＸ用デバイスドライバを読み込んで復号、検証し、検証結果に問題が無い場合はＲＡＭ２３に展開し、フラグ１をＯＮする。次に、フラグ１を確認してフラグ１がＯＮの場合は、このデバイスドライバを用いて不揮発メモリＸ２２にアクセスし、不揮発メモリＸ２２からブートローダと検証用情報とを読み込み、ブートローダを検証して問題無い場合はブートローダをＲＡＭ２３に展開し、フラグ２をＯＮする。そして、フラグ１とフラグ２を確認し、フラグ１及びフラグ２がＯＮで検証結果に問題が無い場合はこのブートローダを実行する。【選択図】図３
2010129037.tif 000002
【特許請求の範囲】
【請求項１】
起動時にアクセスする第１のデバイス及び第２のデバイスと、
前記第１のデバイスにアクセスするための第１のデバイスドライバを含む起動用情報を格納したブートＲＯＭと、
起動時に動作するブート対象プログラムを展開するＲＡＭと、
処理を実行するプロセッサとを備え、
前記第１のデバイスは、前記第２のデバイスにアクセスするための暗号化された第２のデバイスドライバを含む暗号化情報を有しており、
前記第２のデバイスは、前記ブート対象プログラムを含む起動プログラム情報を有しており、
前記ブートＲＯＭの起動用情報を用いて、前記第１のデバイスにアクセスして前記第２のデバイスドライバを含む暗号化情報を取得し、復号する機能と、
前記復号して得られた前記第２のデバイスドライバを含む復号情報を用いて、前記第２のデバイスにアクセスして前記ブート対象プログラムを含む起動プログラム情報を取得し、前記ブート対象プログラムを前記ＲＡＭに展開する機能と、
前記ブート対象プログラムの検証または復号を行い、処理結果に問題がない場合は前記ブート対象プログラムを実行する機能と、
を有する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記第２のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、
前記プロセッサが、前記ブートＲＯＭの起動用情報を用いて、前記第１のデバイスから取得した前記第２のデバイスドライバを復号して前記ＲＡＭに展開する機能と、前記第２のデバイスドライバを用いて前記第２のデバイスから前記ブートローダ及び前記検証用情報を取得して前記ＲＡＭに展開する機能と、前記検証用情報を用いて前記ブートローダを検証して検証結果に問題がない場合はこのブートローダを実行する機能とを有する情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記第２のデバイスドライバの検証結果を示す第１のフラグと、前記ブート対象プログラムの検証結果を示す第２のフラグとを含むフラグ情報を保持するフラグ保持部を備え、
前記第２のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、
前記プロセッサが、前記ブートＲＯＭの起動用情報を用いて、前記第１のデバイスから取得した前記第２のデバイスドライバを復号及び検証して検証結果に問題がない場合は、前記第２のデバイスドライバを前記ＲＡＭに展開し前記第１のフラグに結果を反映する機能と、前記第１のフラグを確認して検証結果が正しい場合は前記第２のデバイスドライバを用いて前記第２のデバイスから前記ブートローダ及び前記検証用情報を取得する機能と、前記検証用情報を用いて前記ブートローダを検証して検証結果に問題がない場合は前記ブートローダを前記ＲＡＭに展開し前記第２のフラグに結果を反映する機能と、前記第２のフラグを確認して検証結果が正しい場合は前記ブートローダを実行する機能とを有する情報処理装置。
【請求項４】
請求項１に記載の情報処理装置であって、
前記プロセッサは、通常実行モードとは別に、セキュリティを確保した特権的な実行モードであるセキュアモードを有し、
前記第１のデバイスは、前記暗号化情報として、前記セキュアモードで動作する暗号化プログラムであるセキュアプログラムを有し、このセキュアプログラムは前記第２のデバイスドライバを含むものであり、
前記第２のデバイスは、前記起動プログラム情報として、前記セキュアモードで動作するセキュアプログラムによるセキュアブートローダを有し、このセキュアブートローダは前記ブート対象プログラムであるブートローダを含むものであり、
前記セキュアプログラムの実行状態を示すフラグを含むフラグ情報を保持するフラグ保持部を備え、
前記プロセッサが、前記ブートＲＯＭの起動用情報を用いて、前記第１のデバイスから取得した前記セキュアプログラムを展開する機能と、前記セキュアプログラムによって前記第２のデバイスドライバを前記ＲＡＭに展開し前記フラグへ展開結果を反映する機能と、前記第２のデバイスドライバを用いて前記第２のデバイスから前記セキュアブートローダを取得し展開する機能と、前記セキュアブートローダによって前記フラグを確認して展開結果が正しい場合は前記ブートローダを前記ＲＡＭに展開し、このブートローダを実行させる機能とを有する情報処理装置。
【請求項５】
請求項１に記載の情報処理装置であって、
前記プロセッサは、通常実行モードとは別に、セキュリティを確保した特権的な実行モードであるセキュアモードを有し、
前記第１のデバイスは、前記暗号化情報として、前記セキュアモードで動作する暗号化プログラムであるセキュアプログラムを有し、このセキュアプログラムは前記第２のデバイスドライバを含むものであり、
前記第２のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、
前記セキュアプログラムの実行状態を示すフラグを含むフラグ情報を保持するフラグ保持部を備え、
前記プロセッサが、前記ブートＲＯＭの起動用情報を用いて、前記第１のデバイスから取得した前記セキュアプログラムを展開する機能と、前記セキュアプログラムによって、前記第２のデバイスドライバを取得し、この第２のデバイスドライバを用いて前記第２のデバイスから前記ブートローダ及び前記検証用情報を取得し、これらのブートローダ及び検証用情報を前記ＲＡＭに展開し前記フラグへ展開結果を反映する機能と、前記検証用情報を用いて前記ブートローダを検証し、検証結果が正しく、かつ前記フラグを確認して展開結果が正しい場合は前記ブートローダを実行させる機能とを有する情報処理装置。
【請求項６】
請求項１に記載の情報処理装置であって、
前記デバイスドライバの読み込みモードとして複数のモードを有し、
前記第１のデバイスのみを使用し、前記ブートＲＯＭにある第１のデバイスドライバを用いて前記第１のデバイスにアクセスする第１のモードと、
前記第１のデバイス及び前記第２のデバイスを使用し、前記ブートＲＯＭにある第１のデバイスドライバを用いて前記第１のデバイスにアクセスしてこの第１のデバイスにある第２のデバイスドライバを取得し、この第２のデバイスドライバを用いて前記第２のデバイスにアクセスする第２のモードと、
前記第１のデバイス及び前記第２のデバイスを使用し、前記ブートＲＯＭにある第１のデバイスドライバを用いて前記第１のデバイスにアクセスしてこの第１のデバイスにある暗号化された第２のデバイスドライバを取得、復号し、この第２のデバイスドライバを用いて前記第２のデバイスにアクセスする第３のモードと、のうち、
前記第３のモードを少なくとも含む複数のモードのいずれかに切り替え設定可能である情報処理装置。
【請求項７】
請求項１に記載の情報処理装置であって、
前記第１のデバイスは、前記第２のデバイスにアクセスするための第２のデバイスドライバとして、各デバイスにそれぞれ対応する複数のデバイスドライバを有しており、
前記複数のデバイスドライバを順次取得し、前記第２のデバイスにアクセスして前記第２のデバイスからの情報取得が成功した場合に、使用する第２のデバイスのデバイス情報を保持する機能を有する情報処理装置。
【請求項８】
請求項１に記載の情報処理装置であって、
前記第１のデバイスは、前記暗号化情報として、前記第２のデバイスドライバとともに他の初期化を行うデバイスのデバイスドライバを有しており、
前記第２のデバイスにアクセスして前記ブート対象プログラムを取得する処理と並行して、前記他のデバイスの初期化を行う機能を有する情報処理装置。
【請求項９】
請求項１から８のいずれかに記載の情報処理装置であって、
前記第１のデバイスと前記第２のデバイスには、それぞれ、起動に関する情報を記憶する記憶デバイス、起動に関する情報を伝送する通信デバイスのうちの少なくとも一つを使用する情報処理装置。
【請求項１０】
請求項１から９のいずれかに記載の情報処理装置を備える電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種処理を行うプロセッサを備えた情報処理装置、及びこの情報処理装置を搭載した電子機器に関し、詳しくは、起動（ブート、boot）時に用いるブートＲＯＭを含む構成に関する。
【背景技術】
【０００２】
情報処理装置は、通常、ブートＲＯＭが設けられ、電源投入時に最初に動作するＢＩＯＳ等のＩＰＬ（Initial Program Loader）、次にアクセスするデバイス用の制御プログラムであるデバイスドライバ等がブートＲＯＭに格納されている。この種の情報処理装置では、電源投入時に、まずブートＲＯＭが自身に格納しているデバイスドライバに対応するメモリ等のデバイスにアクセスし、当該デバイスに格納されたブート対象プログラムを読み込んで実行することによって起動するものが一般的である。ブートＲＯＭからアクセスするデバイスとしては、ブート対象プログラムであるブートローダ等を格納した不揮発メモリなどが用いられる。
【０００３】
情報処理装置を搭載する電子機器の開発においては、ブートＲＯＭの内容を先行して確定した後に、不揮発メモリなどのデバイスの種類、仕様、格納するプログラムの内容などを後日決定し、実装することが行われる場合が多い。書換えができないブートＲＯＭは、電子機器の開発段階において早めに決定される。これに対し、ブートＲＯＭがアクセスするデバイスは、電子機器の機能の追加や変更、コスト等の要因による仕様変更などに合わせて、出荷前まで変更可能である方が好ましい。不揮発メモリの場合、ＥＥＰＲＯＭ、ＮＯＲ型フラッシュメモリ、ＮＡＮＤ型フラッシュメモリなど、様々な種類が存在し、それぞれのメモリで制御方法が異なるため、これらの不揮発メモリに対応するデバイスドライバの共有は困難である。このため、ブートＲＯＭに不揮発メモリのデバイスドライバをハードコーディングした場合、不揮発メモリを変更するとそれに応じてブートＲＯＭの交換が必要になる。ここで、ブートＲＯＭが１チップ化したＳｏＣ（System On a Chip）に含まれる場合は、事実上交換は困難である。
【０００４】
また、情報処理装置では、セキュリティを確保した起動処理を行うセキュアブートなどにおいて、安全性を高めるためにブート対象プログラムを検証してから実行することが行われている。例えば特許文献１には、安全性を高めた実行環境を提供するための装置及び方法として、ＢＩＯＳによって不揮発メモリに格納されたブートローダの完全性などを検証して実行許可を判断し、許可された場合のみブートローダを実行する技術が開示されている。また、特許文献２には、外部に装着される未知デバイスの安全性を確保するために、デバイスドライバを暗号化して保存しておき、利用時にデバイスドライバをセキュリティモジュールで復号化してＲＡＭにロードすることで、未知デバイスを使用可能にする情報処理装置が開示されている。
【特許文献１】特開２００７−１０２７９１号公報
【特許文献２】特開２００１−２４９８０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
セキュリティを確保した状態で起動処理を行うには、上記のように、デバイスドライバ、ブートローダなどのブート時に必要なドライバやプログラムを検証し、改竄が無いなど検証結果に問題が無い場合のみ実行するような構成や方法がとられる。この際、適切なデバイスドライバをロードして対象デバイスにアクセスし、ブートローダ等のブート対象プログラムを読み込む必要がある。しかしながら、上述したように、ブートＲＯＭの内容確定後に不揮発メモリ等のデバイスを変更可能にするには、多くの種類のデバイスに対応可能にしなければならないが、従来の構成では、セキュリティを確保した状態で対応するのは困難である。
【０００６】
本発明は、上記事情に鑑みてなされたもので、起動処理においてセキュリティを確保した状態で各種デバイスに対応可能にでき、ブートＲＯＭの内容確定後にデバイスを任意に変更可能にすることができる情報処理装置及び電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、第１の態様として、起動時にアクセスする第１のデバイス及び第２のデバイスと、前記第１のデバイスにアクセスするための第１のデバイスドライバを含む起動用情報を格納したブートＲＯＭと、起動時に動作するブート対象プログラムを展開するＲＡＭと、処理を実行するプロセッサとを備え、前記第１のデバイスは、前記第２のデバイスにアクセスするための暗号化された第２のデバイスドライバを含む暗号化情報を有しており、前記第２のデバイスは、前記ブート対象プログラムを含む起動プログラム情報を有しており、前記ブートＲＯＭの起動用情報を用いて、前記第１のデバイスにアクセスして前記第２のデバイスドライバを含む暗号化情報を取得し、復号する機能と、前記復号して得られた前記第２のデバイスドライバを含む復号情報を用いて、前記第２のデバイスにアクセスして前記ブート対象プログラムを含む起動プログラム情報を取得し、前記ブート対象プログラムを前記ＲＡＭに展開する機能と、前記ブート対象プログラムの検証または復号を行い、処理結果に問題がない場合は前記ブート対象プログラムを実行する機能と、を有する情報処理装置を提供する。
上記構成により、ブートＲＯＭにある第１のデバイスドライバを用いて第１のデバイスにアクセスし、第１のデバイスから取得した暗号化された第２のデバイスドライバを復号して第２のデバイスにアクセスし、第２のデバイスから取得した対象プログラムの検証または復号を行い、処理結果に問題がない場合はブート対象プログラムを実行することで、セキュリティを確保した状態で起動処理を実行可能である。この際、第２のデバイスとして各種デバイスを使用するようにした場合でも、第２のデバイスを後で変更可能な構成としつつ、起動処理においてセキュリティを確保できる。よって、セキュリティを確保した状態で各種デバイスに対応可能にでき、ブートＲＯＭの内容確定後にデバイスを任意に変更可能にすることができる。
【０００８】
また、本発明は、第２の態様として、上記の情報処理装置であって、前記第２のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、前記プロセッサが、前記ブートＲＯＭの起動用情報を用いて、前記第１のデバイスから取得した前記第２のデバイスドライバを復号して前記ＲＡＭに展開する機能と、前記第２のデバイスドライバを用いて前記第２のデバイスから前記ブートローダ及び前記検証用情報を取得して前記ＲＡＭに展開する機能と、前記検証用情報を用いて前記ブートローダを検証して検証結果に問題がない場合はこのブートローダを実行する機能とを有するものを含む。
上記構成により、第１のデバイスから取得した暗号化された第２のデバイスドライバを復号して第２のデバイスにアクセスし、第２のデバイスから取得したブートローダ及び検証用情報を用いてブートローダの検証を行い、検証結果に問題がない場合はブートローダを実行することで、第２のデバイスを任意に変更可能としつつ、セキュリティを確保した状態で起動処理を実行可能である。
【０００９】
また、本発明は、第３の態様として、上記の情報処理装置であって、前記第２のデバイスドライバの検証結果を示す第１のフラグと、前記ブート対象プログラムの検証結果を示す第２のフラグとを含むフラグ情報を保持するフラグ保持部を備え、前記第２のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、前記プロセッサが、前記ブートＲＯＭの起動用情報を用いて、前記第１のデバイスから取得した前記第２のデバイスドライバを復号及び検証して検証結果に問題がない場合は、前記第２のデバイスドライバを前記ＲＡＭに展開し前記第１のフラグに結果を反映する機能と、前記第１のフラグを確認して検証結果が正しい場合は前記第２のデバイスドライバを用いて前記第２のデバイスから前記ブートローダ及び前記検証用情報を取得する機能と、前記検証用情報を用いて前記ブートローダを検証して検証結果に問題がない場合は前記ブートローダを前記ＲＡＭに展開し前記第２のフラグに結果を反映する機能と、前記第２のフラグを確認して検証結果が正しい場合は前記ブートローダを実行する機能とを有するものを含む。
上記構成により、第１のデバイスから取得した暗号化された第２のデバイスドライバを復号、検証して検証結果に問題がない場合は、第２のデバイスドライバをＲＡＭに展開して第１のフラグに結果を反映し（例えばＯＮし）、第１のフラグを確認して検証結果が正しい場合（例えばＯＮの場合）は第２のデバイスドライバを用いて第２のデバイスにアクセスし、第２のデバイスから取得したブートローダ及び検証用情報を用いてブートローダの検証を行い、検証結果に問題がない場合はブートローダをＲＡＭに展開して第２のフラグに結果を反映し（例えばＯＮし）、第２のフラグを確認して検証結果が正しい場合（例えばＯＮの場合）はブートローダを実行することで、第２のデバイスを任意に変更可能としつつ、セキュリティを確保した状態で起動処理を実行可能である。この場合、フラグ情報を確認して第２のデバイスドライバの利用、ブートローダの実行を行うことで、安全性を高めることができる。
【００１０】
また、本発明は、第４の態様として、上記の情報処理装置であって、前記プロセッサは、通常実行モードとは別に、セキュリティを確保した特権的な実行モードであるセキュアモードを有し、前記第１のデバイスは、前記暗号化情報として、前記セキュアモードで動作する暗号化プログラムであるセキュアプログラムを有し、このセキュアプログラムは前記第２のデバイスドライバを含むものであり、前記第２のデバイスは、前記起動プログラム情報として、前記セキュアモードで動作するセキュアプログラムによるセキュアブートローダを有し、このセキュアブートローダは前記ブート対象プログラムであるブートローダを含むものであり、前記セキュアプログラムの実行状態を示すフラグを含むフラグ情報を保持するフラグ保持部を備え、前記プロセッサが、前記ブートＲＯＭの起動用情報を用いて、前記第１のデバイスから取得した前記セキュアプログラムを展開する機能と、前記セキュアプログラムによって前記第２のデバイスドライバを前記ＲＡＭに展開し前記フラグへ展開結果を反映する機能と、前記第２のデバイスドライバを用いて前記第２のデバイスから前記セキュアブートローダを取得し展開する機能と、前記セキュアブートローダによって前記フラグを確認して展開結果が正しい場合は前記ブートローダを前記ＲＡＭに展開し、このブートローダを実行させる機能とを有するものを含む。
上記構成により、プロセッサのセキュアモードを用いて、第１のデバイスから取得したセキュアプログラムを展開し、このセキュアプログラムによって第２のデバイスドライバをＲＡＭに展開してフラグへ展開結果を反映し（例えばＯＮし）、この第２のデバイスドライバを用いて第２のデバイスからセキュアブートローダを取得して展開し、このセキュアブートローダによってフラグを確認して展開結果が正しい場合（例えばＯＮの場合）はブートローダをＲＡＭに展開し、このブートローダを実行させることで、第２のデバイスを任意に変更可能としつつ、セキュリティを確保した状態で起動処理を実行可能である。この場合、セキュアプログラムによって第２のデバイスドライバの利用を行い、セキュアブートローダによってフラグ情報を確認してブートローダの実行を行うことで、さらに高度な安全性を確保することができる。
【００１１】
また、本発明は、第５の態様として、上記の情報処理装置であって、前記プロセッサは、通常実行モードとは別に、セキュリティを確保した特権的な実行モードであるセキュアモードを有し、前記第１のデバイスは、前記暗号化情報として、前記セキュアモードで動作する暗号化プログラムであるセキュアプログラムを有し、このセキュアプログラムは前記第２のデバイスドライバを含むものであり、前記第２のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、前記セキュアプログラムの実行状態を示すフラグを含むフラグ情報を保持するフラグ保持部を備え、前記プロセッサが、前記ブートＲＯＭの起動用情報を用いて、前記第１のデバイスから取得した前記セキュアプログラムを展開する機能と、前記セキュアプログラムによって、前記第２のデバイスドライバを取得し、この第２のデバイスドライバを用いて前記第２のデバイスから前記ブートローダ及び前記検証用情報を取得し、これらのブートローダ及び検証用情報を前記ＲＡＭに展開し前記フラグへ展開結果を反映する機能と、前記検証用情報を用いて前記ブートローダを検証し、検証結果が正しく、かつ前記フラグを確認して展開結果が正しい場合は前記ブートローダを実行させる機能とを有するものを含む。
上記構成により、プロセッサのセキュアモードを用いて、第１のデバイスから取得したセキュアプログラムを展開し、このセキュアプログラムによって、第２のデバイスドライバを用いて第２のデバイスからブートローダ及び検証用情報を取得し、これらのブートローダ及び検証用情報をＲＡＭに展開してフラグへ展開結果を反映し（例えばＯＮし）、検証用情報を用いてブートローダの検証を行い、検証結果が正しく、かつフラグを確認して展開結果が正しい場合（例えばＯＮの場合）はブートローダを実行させることで、第２のデバイスを任意に変更可能としつつ、セキュリティを確保した状態で起動処理を実行可能である。この場合、セキュアプログラムによって第２のデバイスドライバの利用を行い、フラグ情報を確認してブートローダの実行を行うことで、さらに高度な安全性を確保することができる。また、セキュアプログラムにおいて一連の起動処理を実行し、セキュアプログラムからブートＲＯＭ等に処理が移行しないため、より安全性の高い構成を実現できる。
【００１２】
また、本発明は、第６の態様として、上記の情報処理装置であって、前記デバイスドライバの読み込みモードとして複数のモードを有し、前記第１のデバイスのみを使用し、前記ブートＲＯＭにある第１のデバイスドライバを用いて前記第１のデバイスにアクセスする第１のモードと、前記第１のデバイス及び前記第２のデバイスを使用し、前記ブートＲＯＭにある第１のデバイスドライバを用いて前記第１のデバイスにアクセスしてこの第１のデバイスにある第２のデバイスドライバを取得し、この第２のデバイスドライバを用いて前記第２のデバイスにアクセスする第２のモードと、前記第１のデバイス及び前記第２のデバイスを使用し、前記ブートＲＯＭにある第１のデバイスドライバを用いて前記第１のデバイスにアクセスしてこの第１のデバイスにある暗号化された第２のデバイスドライバを取得、復号し、この第２のデバイスドライバを用いて前記第２のデバイスにアクセスする第３のモードと、のうち、前記第３のモードを少なくとも含む複数のモードのいずれかに切り替え設定可能であるものを含む。
上記構成により、複数のデバイスドライバの読み込みモードを任意に切り替え設定することが可能となる。
【００１３】
また、本発明は、第７の態様として、上記の情報処理装置であって、前記第１のデバイスは、前記第２のデバイスにアクセスするための第２のデバイスドライバとして、各デバイスにそれぞれ対応する複数のデバイスドライバを有しており、前記複数のデバイスドライバを順次取得し、前記第２のデバイスにアクセスして前記第２のデバイスからの情報取得が成功した場合に、使用する第２のデバイスのデバイス情報を保持する機能を有するものを含む。
上記構成により、情報取得が成功した第２のデバイスのデバイス情報を用いて、次回の起動時からは、使用する第２のデバイスに適合したデバイスドライバを用いて第２のデバイスにアクセス可能となる。よって、外部入力信号等を用いることなく、起動時に使用するデバイスに合わせてデバイスドライバを自動的に切り替えて対応可能にでき、セキュリティを確保した起動処理を行うことができる。
【００１４】
また、本発明は、第８の態様として、上記の情報処理装置であって、前記第１のデバイスは、前記暗号化情報として、前記第２のデバイスドライバとともに他の初期化を行うデバイスのデバイスドライバを有しており、前記第２のデバイスにアクセスして前記ブート対象プログラムを取得する処理と並行して、前記他のデバイスの初期化を行う機能を有するものを含む。
上記構成により、起動処理と並行して他のデバイスの初期化が可能であり、装置に搭載する各種機能を実現する他のデバイスを容易に変更可能となる。
【００１５】
また、本発明は、第９の態様として、上記いずれかの情報処理装置であって、前記第１のデバイスと前記第２のデバイスには、それぞれ、起動に関する情報を記憶する記憶デバイス、起動に関する情報を伝送する通信デバイスのうちの少なくとも一つを使用するものを含む。
上記構成により、不揮発メモリ等の記憶デバイス、各種通信手段による通信デバイスなどを第２のデバイスにおいて適宜変更可能な構成として利用し、セキュリティを確保した起動処理を実現できる。
【００１６】
また、本発明は、上記いずれかに記載の情報処理装置を備える電子機器を提供する。
上記構成により、起動処理においてセキュリティを確保した状態で各種デバイスに対応可能にでき、ブートＲＯＭの内容確定後にデバイスを任意に変更可能な構成とした電子機器を実現できる。
【発明の効果】
【００１７】
本発明によれば、起動処理においてセキュリティを確保した状態で各種デバイスに対応可能にでき、ブートＲＯＭの内容確定後にデバイスを任意に変更可能にすることができる情報処理装置及び電子機器を提供可能である。
【発明を実施するための最良の形態】
【００１８】
以下の実施形態では、情報処理装置の一例として、デバイスドライバやブート対象プログラムを格納するデバイスとして不揮発メモリを備えた装置の構成例を示す。この場合、起動時にブートＲＯＭがセキュリティを確保した状態で不揮発メモリにアクセスしてブート対象プログラムを読み込み、実行するものとする。本実施形態の情報処理装置を搭載した電子機器としては、携帯電話装置、携帯情報端末、音楽プレーヤ、動画再生装置、パーソナルコンピュータ、ゲーム機など、各種電子機器に適用可能である。
【００１９】
（第１の実施形態）
図１は本発明の第１の実施形態に係る情報処理装置の主要部の構成を示すブロック図である。情報処理装置は、第１のデバイスである第１のメモリとしての不揮発メモリＡ１１と、第２のデバイスである第２のメモリとしての不揮発メモリＸ１２と、ＲＡＭ１３と、ＳｏＣ等による半導体チップ１４とを備えている。半導体チップ１４には、起動時に使用するブートＲＯＭ１５と、メインプロセッサであるＣＰＵ１６とを含む半導体回路が１チップ化されて搭載されている。これらの不揮発メモリＡ１１、不揮発メモリＸ１２、ＲＡＭ１３、ブートＲＯＭ１５は、ＣＰＵ１６と接続され、各種情報の入出力がなされる。
【００２０】
不揮発メモリＡ１１、不揮発メモリＸ１２は、ＥＥＰＲＯＭ、ＮＯＲ型フラッシュメモリ、ＮＡＮＤ型フラッシュメモリなどの書換え可能で電源保持不要なメモリにより構成される。例えば、不揮発メモリＡ１１はＥＥＰＲＯＭで構成され、不揮発メモリＸ１２はＮＡＮＤ型フラッシュメモリで構成されるものとする。ここで、第１のメモリ（不揮発メモリＡ１１）は、比較的小容量のメモリであり、ブートＲＯＭ１５とほぼ同時期に内容が決定される。一方、第２のメモリ（不揮発メモリＸ１２等）は、比較的大容量のメモリであり、メモリの種類、仕様、内容等が後で決定されて追加されるものとする。
【００２１】
ブートＲＯＭ１５には、電源投入時に最初に動作するＩＰＬと、第１のメモリのデバイスドライバとして不揮発メモリＡ用のデバイスドライバ（図面ではＤＤと略記する、以下同様）とを含む起動用情報が格納されている。不揮発メモリＡ１１には、第２のメモリのデバイスドライバとして、暗号化された不揮発メモリＢ用のデバイスドライバ、暗号化された不揮発メモリＣ用のデバイスドライバ、…、暗号化された不揮発メモリＸ用のデバイスドライバを含む暗号化情報が格納されている。不揮発メモリＸ１２には、ブート対象プログラムとしてのブートローダと検証用情報とを含む起動プログラム情報が格納されている。
【００２２】
この構成において、ブートＲＯＭ１５は、不揮発メモリＡ用デバイスドライバを用いて不揮発メモリＡ１１にアクセスし、不揮発メモリＡ１１に格納された不揮発メモリＢ、Ｃ、…、Ｘのいずれかの第２のメモリ用のデバイスドライバを読み込んで復号し、ＲＡＭ１３に展開する。図示のように、不揮発メモリＸ１２を使用する構成の場合は、不揮発メモリＡ１１から暗号化された不揮発メモリＸ用デバイスドライバを読み込んで復号し、このデバイスドライバを用いて不揮発メモリＸ１２にアクセスする。そして、不揮発メモリＸ１２からブートローダと検証用情報とを読み込み、ブートローダを検証して問題無い場合はブートローダを実行する。
【００２３】
図２は第１の実施形態における情報処理装置の起動時の動作手順を示すフローチャートである。情報処理装置の起動処理としてのブート時において、電源ＯＮしてリセットした後、ブートＲＯＭ１５は、自身で持っているＩＰＬをＣＰＵ１６で実行させてブート処理を開始し、外部からの入力信号の指示に基づき、使用する不揮発メモリを選択する。図１の例では、不揮発メモリＸ１２を搭載して使用する構成であり、この場合は不揮発メモリＸ１２を選択する（ステップＳ１１）。そして、ブートＲＯＭ１５は、自身で持っている不揮発メモリＡ用デバイスドライバを用いて不揮発メモリＡ１１にアクセスし、不揮発メモリＡ１１から暗号化された不揮発メモリＸ用デバイスドライバを読み込んで復号し、ＲＡＭ１３に展開する（ステップＳ１２）。次に、ブートＲＯＭ１５は、不揮発メモリＸ用デバイスドライバを用いて不揮発メモリＸ１２にアクセスし、不揮発メモリＸ１２からブートローダと検証用情報とを読み込み、ＲＡＭ１３に展開する（ステップＳ１３）。そして、ブートＲＯＭ１５は、検証用情報を用いてブートローダの改竄等が無いか検証し、検証結果に問題が無い場合（ＯＫの場合）はブートローダを実行する（ステップＳ１４）。このブートローダのプログラムによって以降のブート処理が行われる。
【００２４】
この第１の実施形態では、書換え不可能なＳｏＣ等で構成された半導体チップ１４内にあるブートＲＯＭ１５を用い、このブートＲＯＭ１５内に格納されたデバイスドライバによって不揮発メモリＡ１１にアクセスするので、ブートＲＯＭ１５から不揮発メモリＡ１１へのアクセスに関する安全性は確保される。また、不揮発メモリＡ１１内にある不揮発メモリＸ１２用等の第２のメモリ用のデバイスドライバは、暗号化されて格納されているため、このデバイスドライバを復号して用いることにより、不揮発メモリＸ１２へのアクセスに関する安全性は確保される。そして、不揮発メモリＸ１２内に格納されたブートローダと検証用情報とを用いてこのブートローダを検証し、改竄等の問題が無かった場合はブートローダを実行することで、ブートローダの実行に関する安全性は確保される。なお、第１のメモリである不揮発メモリＡ１１は、ブートＲＯＭ１５と同様に半導体チップ１４内に搭載してもよいし、別に設ける構成としてもよい。いずれの構成においてもセキュリティは確保される。
【００２５】
したがって、第２のメモリを後で変更可能な状態としつつ、ブート時のセキュリティを確保できる。このため、起動処理においてセキュリティを確保した状態で各種メモリ等のデバイスに対応可能にでき、ブートＲＯＭの内容確定後にデバイスを任意に変更可能にできる。
【００２６】
ただし、第１の実施形態では、個別に検証する構成であるため、不揮発メモリＸ用デバイスドライバのＲＡＭ展開時からこのデバイスドライバの読み込み時までと、ブートローダのＲＡＭ展開時からこのデバイスドライバの読み込み時までは、完全な安全性を保証できないという課題がある。
【００２７】
以降の実施形態において、上記課題に対応して、ブートＲＯＭと保護されたデバイスドライバの連携、及び保護されたデバイスドライバとブートローダの連携を図り、より高度なセキュリティを確保できるようにした構成例をいくつか示す。
【００２８】
（第２の実施形態）
図３は本発明の第２の実施形態に係る情報処理装置の主要部の構成を示すブロック図である。情報処理装置は、第１のメモリとしての不揮発メモリＡ２１と、第２のメモリとしての不揮発メモリＸ２２と、ＲＡＭ２３と、ＳｏＣ等による半導体チップ２４とを備えている。半導体チップ２４には、起動時に使用するブートＲＯＭ２５と、メインプロセッサであるＣＰＵ２６と、フラグ１（第１のフラグ）及びフラグ２（第２のフラグ）を含むフラグ情報を保持するフラグ保持部２７とを有する半導体回路が１チップ化されて搭載されている。これらの不揮発メモリＡ２１、不揮発メモリＸ２２、ＲＡＭ２３、ブートＲＯＭ２５、フラグ保持部２７は、ＣＰＵ２６と接続され、各種情報の入出力がなされる。フラグ保持部２７は、半導体チップ２４内に搭載されたレジスタ等によって構成され、外部からのアクセスが不可能な構成となっている。
【００２９】
不揮発メモリＡ２１、不揮発メモリＸ２２は、ＥＥＰＲＯＭ、ＮＯＲ型フラッシュメモリ、ＮＡＮＤ型フラッシュメモリなどの書換え可能で電源保持不要なメモリにより構成される。例えば、不揮発メモリＡ２１はＥＥＰＲＯＭで構成され、不揮発メモリＸ２２はＮＡＮＤ型フラッシュメモリで構成されるものとする。ここで、第１のメモリ（不揮発メモリＡ２１）は、比較的小容量のメモリであり、ブートＲＯＭ２５とほぼ同時期に内容が決定される。一方、第２のメモリ（不揮発メモリＸ２２等）は、比較的大容量のメモリであり、メモリの種類、仕様、内容等が後で決定されて追加されるものとする。
【００３０】
ブートＲＯＭ２５には、電源投入時に最初に動作するＩＰＬと、第１のメモリのデバイスドライバとして不揮発メモリＡ用のデバイスドライバと、フラグ制御処理プログラムとを含む起動用情報が格納されている。不揮発メモリＡ２１には、第２のメモリのデバイスドライバとして、暗号化された不揮発メモリＢ用のデバイスドライバ、暗号化された不揮発メモリＣ用のデバイスドライバ、…、暗号化された不揮発メモリＸ用のデバイスドライバを含む暗号化情報が格納されている。不揮発メモリＸ２２には、ブート対象プログラムとしてのブートローダと検証用情報とを含む起動プログラム情報が格納されている。
【００３１】
この構成において、ブートＲＯＭ２５は、不揮発メモリＡ用デバイスドライバを用いて不揮発メモリＡ２１にアクセスし、不揮発メモリＡ２１に格納された不揮発メモリＢ、Ｃ、…、Ｘのいずれかの第２のメモリ用のデバイスドライバを読み込んで復号、検証し、検証結果に問題が無い場合はＲＡＭ２３に展開し、デバイスドライバの復号、検証、及びＲＡＭ展開に成功した場合は、第２のデバイスドライバの検証結果を示すフラグ１をＯＮする。ここでは、検証結果が正しい場合をＯＮとして検証結果を反映する。図示のように、不揮発メモリＸ２２を使用する構成の場合は、不揮発メモリＡ２１から暗号化された不揮発メモリＸ用デバイスドライバを読み込んで復号、検証する。そして、デバイスドライバの利用時にフラグ１を確認し、フラグ１がＯＮでデバイスドライバの検証結果が正しい場合はこのデバイスドライバを用いて不揮発メモリＸ２２にアクセスし、不揮発メモリＸ２２からブートローダと検証用情報とを読み込む。次に、検証用情報を用いてブートローダを検証して問題無い場合はＲＡＭ２３に展開し、ブートローダの復号、検証、及びＲＡＭ展開に成功した場合は、ブート対象プログラムの検証結果を示すフラグ２をＯＮする。ここでは、検証結果が正しい場合をＯＮとして検証結果を反映する。そして、ブートローダの実行時にフラグ１とフラグ２を確認し、フラグ１及びフラグ２がＯＮで検証結果が正しい場合はこのブートローダを実行する。なお、ブートローダの実行時はフラグ２のみを確認するようにしてもよいが、フラグ１とフラグ２の両方を確認することでより安全性が高まる。一方、フラグがＯＦＦで検証結果が正しくない場合は、リセットするか、または処理の続行を停止する。これにより、デバイスドライバ及びブートローダについて、それぞれ検証、復号、ＲＡＭ展開が成功した場合のみ利用可能にできる。
【００３２】
図４は第２の実施形態における情報処理装置の起動時の動作手順を示すフローチャートである。情報処理装置の起動処理としてのブート時において、電源ＯＮしてリセットした後、ブートＲＯＭ２５は、自身で持っているＩＰＬをＣＰＵ２６で実行させてブート処理を開始し、外部からの入力信号の指示に基づき、使用する不揮発メモリを選択する。図３の例では、不揮発メモリＸ２２を搭載して使用する構成であり、この場合は不揮発メモリＸ２２を選択する（ステップＳ２１）。そして、ブートＲＯＭ２５は、自身で持っている不揮発メモリＡ用デバイスドライバを用いて不揮発メモリＡ２１にアクセスし、不揮発メモリＡ２１から暗号化された不揮発メモリＸ用デバイスドライバを読み込んで復号した後、改竄等が無いか検証を行い、検証結果に問題が無い場合（ＯＫの場合）は当該デバイスドライバをＲＡＭ２３に展開し、フラグ保持部２７のフラグ１をＯＮする（ステップＳ２２）。
【００３３】
次に、ブートＲＯＭ２５は、フラグ１を確認し、フラグ１＝ＯＮで検証結果に問題が無い場合はこの不揮発メモリＸ用デバイスドライバを用いて不揮発メモリＸ２２にアクセスし、不揮発メモリＸ２２からブートローダと検証用情報とを読み込む（ステップＳ２３）。そして、ブートＲＯＭ２５は、ブートローダを検証し、検証結果に問題が無い場合（ＯＫの場合）はブートローダをＲＡＭ２３に展開し、フラグ保持部２７のフラグ２をＯＮする（ステップＳ２４）。続いて、ブートＲＯＭ２５は、フラグ保持部２７のフラグ１及びフラグ２を確認し、フラグ１及びフラグ２＝ＯＮで検証結果に問題が無い場合はブートローダを実行する（ステップＳ２５）。このブートローダのプログラムによって以降のブート処理が行われる。
【００３４】
この第２の実施形態では、書換え不可能なＳｏＣ等で構成された半導体チップ２４内にあるブートＲＯＭ２５を用い、このブートＲＯＭ２５内に格納されたデバイスドライバによって不揮発メモリＡ２１にアクセスするので、ブートＲＯＭ２５から不揮発メモリＡ２１へのアクセスに関する安全性は確保される。また、ブートＲＯＭ２５によってフラグ保持部２７におけるフラグ１、フラグ２の書き込み、読み出しを制御し、デバイスドライバやブートローダの検証結果を書き込むとともに、これらのフラグによって検証結果を確認してからデバイスドライバの利用（ロード）やブートローダの実行を行うことで、ＲＡＭへの展開から実行までの間の安全性を保証でき、セキュリティを向上できる。
【００３５】
この際、不揮発メモリＡ２１内にある暗号化された不揮発メモリＸ用デバイスドライバを復号して検証を行い、復号及び検証に成功した場合はフラグ１をＯＮしてデバイスドライバをＲＡＭ２３に展開し、さらにフラグ１を確認してフラグ１＝ＯＮの場合はこの不揮発メモリＸ用デバイスドライバを用いることで、ブートＲＯＭと保護されたデバイスドライバとの連携をとることができ、不揮発メモリＸ２２へのアクセスに関する安全性は確保される。また、不揮発メモリＸ２２内に格納されたブートローダと検証用情報とを用いてこのブートローダを検証し、検証に成功した場合はフラグ２をＯＮしてブートローダをＲＡＭ２３に展開し、さらにフラグ１及びフラグ２を確認してフラグ１及びフラグ２＝ＯＮの場合はブートローダを実行することで、保護されたデバイスドライバとブートローダとの連携をとることができ、ブートローダの実行に関する安全性は確保される。なお、第１のメモリである不揮発メモリＡ２１は、ブートＲＯＭ２５と同様に半導体チップ２４内に搭載してもよいし、別に設ける構成としてもよい。いずれの構成においてもセキュリティは確保される。
【００３６】
したがって、第２の実施形態によれば、第２のメモリを後で変更可能とし、適切なデバイスドライバを選択して使用できるようにしながら、ブート時において第１の実施形態よりも高度なセキュリティを確保できる。このため、起動処理においてセキュリティを確保した状態で各種メモリ等のデバイスに対応可能にでき、ブートＲＯＭの内容確定後にデバイスを任意に変更可能にできる。
【００３７】
（第３の実施形態）
図５は本発明の第３の実施形態に係る情報処理装置の主要部の構成を示すブロック図である。第３の実施形態は、セキュアモードを併用する第１の構成例である。情報処理装置は、第１のメモリとしての不揮発メモリＡ３１と、第２のメモリとしての不揮発メモリＸ３２と、ＲＡＭ３３と、ＳｏＣ等による半導体チップ３４とを備えている。半導体チップ３４には、起動時に使用するブートＲＯＭ３５と、メインプロセッサであるＣＰＵ３６と、フラグ１を含むフラグ情報を保持するフラグ保持部３７とを有する半導体回路が１チップ化されて搭載されている。これらの不揮発メモリＡ３１、不揮発メモリＸ３２、ＲＡＭ３３、ブートＲＯＭ３５、フラグ保持部３７は、ＣＰＵ３６と接続され、各種情報の入出力がなされる。フラグ保持部３７は、半導体チップ３４内に搭載されたレジスタ等によって構成され、ＣＰＵ３６以外の外部からのアクセスが不可能な領域に設けられた構成となっている。不揮発メモリＡ３１、不揮発メモリＸ３２は、メモリの基本的構成は第２の実施形態と同様である。
【００３８】
ブートＲＯＭ３５には、電源投入時に最初に動作するＩＰＬと、第１のメモリのデバイスドライバとして不揮発メモリＡ用のデバイスドライバとを含む起動用情報が格納されている。不揮発メモリＡ３１には、第２のメモリのデバイスドライバを含むセキュアプログラム（図面ではＳＰと略記する、以下同様）として、不揮発メモリＢ用デバイスドライバを含むセキュアプログラムＢ、不揮発メモリＣ用デバイスドライバを含むセキュアプログラムＣ、…、不揮発メモリＸ用デバイスドライバを含むセキュアプログラムＸを含んだ暗号化情報が格納されている。不揮発メモリＸ３２には、ブート対象プログラムとしてのセキュアプログラムによるセキュアブートローダ（以下、ＳＰブートローダと記載する）を含む起動プログラム情報が格納されている。このＳＰブートローダは、通常のブートローダの情報を含むセキュアプログラムである。
【００３９】
セキュアプログラムは、セキュアモードで動作する暗号化プログラムであり、改竄などに対する安全性が確保されている。セキュアモードは、ＣＰＵの通常実行モードと別に存在する特権的な実行モードである。このセキュアモードからしかアクセスできないメモリ領域（レジスタなど）を有しており、セキュアプログラムを使用する際のセキュアモード展開時にこのアクセス制限されたメモリ領域にセキュアプログラムを展開する。また、本実施形態ではアクセス制限されたメモリ領域に半導体チップ３４のフラグ保持部３７を設け、フラグをセキュアモードのみでアクセス可能にする。セキュアモードで実行されるセキュアプログラムは、暗号化されて改竄検証用情報を添付して保存され、セキュアモード展開時に復号、改竄検証が行われる。検証結果により、復号、検証に失敗した場合は、セキュアプログラムは実行されない。このようにセキュアモードを利用することにより、安全性をさらに向上できる。
【００４０】
上記構成において、ブートＲＯＭ３５は、不揮発メモリＡ用デバイスドライバを用いて不揮発メモリＡ３１にアクセスし、不揮発メモリＡ３１に格納された不揮発メモリＢ、Ｃ、…、Ｘのいずれかの第２のメモリ用のデバイスドライバを含むセキュアプログラムをセキュアモード展開し、復号、検証結果に問題が無い場合は当該セキュアプログラムを実行させる。図示のように、不揮発メモリＸ３２を使用する構成の場合は、不揮発メモリＡ３１から不揮発メモリＸ用デバイスドライバを含むセキュアプログラムＸをセキュアモード展開する。セキュアプログラムＸは、不揮発メモリＸ用デバイスドライバをＲＡＭ３３に展開し、セキュアプログラムの実行状態を示すフラグ１をＯＮする。ここでは、展開結果が正しい場合をＯＮとして展開結果を反映する。そして、ブートＲＯＭ３５は、不揮発メモリＸ用デバイスドライバを用いて不揮発メモリＸ３２にアクセスし、不揮発メモリＸ３２からＳＰブートローダを読み込み、セキュアモード展開する。次に、ＳＰブートローダは、ブートローダの実行のためにフラグ１を確認し、フラグ１がＯＮで展開結果が正しい場合は通常ブートローダをＲＡＭ３３に展開し、この通常ブートローダに処理を移して実行させる。
【００４１】
図６は第３の実施形態における情報処理装置の起動時の動作手順を示すフローチャートである。情報処理装置の起動処理としてのブート時において、電源ＯＮしてリセットした後、ブートＲＯＭ３５は、自身で持っているＩＰＬをＣＰＵ３６で実行させてブート処理を開始し、外部からの入力信号の指示に基づき、使用する不揮発メモリを選択する。図５の例では、不揮発メモリＸ３２を搭載して使用する構成であり、この場合は不揮発メモリＸ３２を選択する（ステップＳ３１）。そして、ブートＲＯＭ３５は、自身で持っている不揮発メモリＡ用デバイスドライバを用いて不揮発メモリＡ３１にアクセスし、不揮発メモリＡ３１から不揮発メモリＸ用デバイスドライバを含むセキュアプログラムＸを読み込んでセキュアモード展開する（ステップＳ３２）。次いで、セキュアプログラムＸ（ＳＰＸ）は、不揮発メモリＸ用デバイスドライバをＲＡＭ３３に展開し、フラグ保持部３７のフラグ１をＯＮする（ステップＳ３３）。
【００４２】
次に、ブートＲＯＭ３５は、不揮発メモリＸ用デバイスドライバを用いて不揮発メモリＸ３２にアクセスし、不揮発メモリＸ３２から通常ブートローダを含むＳＰブートローダを読み込んでセキュアモード展開する（ステップＳ３４）。そして、ＳＰブートローダは、フラグ保持部３７のフラグ１を確認し、フラグ１＝ＯＮで検証結果に問題が無い場合は通常ブートローダをＲＡＭ３３に展開する。続いて、ＳＰブートローダはプログラムカウンタを通常ブートローダに設定し、この通常ブートローダを実行させる（ステップＳ３５）。この通常ブートローダのプログラムによって以降のブート処理が行われる。
【００４３】
この第３の実施形態では、第２の実施形態の構成に加えて、セキュアモードを用いることによって、デバイスドライバの利用（ロード）やブートローダの実行の際に、ＲＡＭへの展開から実行までの間の安全性をさらに高めることができる。この際、書換え不可能なＳｏＣ等で構成された半導体チップ３４内にあるブートＲＯＭ３５を用い、このブートＲＯＭ３５内に格納されたデバイスドライバによって不揮発メモリＡ３１にアクセスするので、ブートＲＯＭ３５から不揮発メモリＡ３１へのアクセスに関する安全性は確保される。また、不揮発メモリＡ３１に格納されたセキュアプログラムを用いて、セキュアモードで不揮発メモリＸ用デバイスドライバの復号、展開を行うことで、ブートＲＯＭと保護されたデバイスドライバとの連携をとることができ、不揮発メモリＸ３２へのアクセスに関する安全性は確保される。また、セキュアプログラムによってセキュアモードでフラグ保持部３７におけるフラグ１の書き込み、読み出しを制御し、不揮発メモリＸ３２内に格納されたＳＰブートローダを用いて、フラグ１を確認してフラグ１＝ＯＮの場合に通常ブートローダを展開し実行することで、保護されたデバイスドライバとブートローダとの連携をとることができ、ブートローダの実行に関する安全性は確保される。なお、第１のメモリである不揮発メモリＡ３１は、ブートＲＯＭ３５と同様に半導体チップ３４内に搭載してもよいし、別に設ける構成としてもよい。いずれの構成においてもセキュリティは確保される。
【００４４】
したがって、第３の実施形態によれば、第２のメモリを後で変更可能とし、適切なデバイスドライバを選択して使用できるようにしながら、ブート時においてさらに高度なセキュリティを確保できる。このため、起動処理においてセキュリティを確保した状態で各種メモリ等のデバイスに対応可能にでき、ブートＲＯＭの内容確定後にデバイスを任意に変更可能にできる。
【００４５】
（第４の実施形態）
図７は本発明の第４の実施形態に係る情報処理装置の主要部の構成を示すブロック図である。第４の実施形態は、セキュアモードを併用する第２の構成例である。情報処理装置は、第１のメモリとしての不揮発メモリＡ４１と、第２のメモリとしての不揮発メモリＸ４２と、ＲＡＭ４３と、ＳｏＣ等による半導体チップ４４とを備えている。半導体チップ４４には、起動時に使用するブートＲＯＭ４５と、メインプロセッサであるＣＰＵ４６と、フラグ１を含むフラグ情報を保持するフラグ保持部４７とを有する半導体回路が１チップ化されて搭載されている。これらの不揮発メモリＡ４１、不揮発メモリＸ４２、ＲＡＭ４３、ブートＲＯＭ４５、フラグ保持部４７は、ＣＰＵ４６と接続され、各種情報の入出力がなされる。フラグ保持部４７は、半導体チップ４４内に搭載されたレジスタ等によって構成され、外部からのアクセスが不可能な構成となっている。不揮発メモリＡ４１、不揮発メモリＸ４２は、メモリの基本的構成は第２及び第３の実施形態と同様である。
【００４６】
ブートＲＯＭ４５には、電源投入時に最初に動作するＩＰＬと、第１のメモリのデバイスドライバとして不揮発メモリＡ用のデバイスドライバとを含む起動用情報が格納されている。不揮発メモリＡ４１には、第２のメモリのデバイスドライバを含むセキュアプログラムとして、不揮発メモリＢ用デバイスドライバを含むセキュアプログラムＢ、不揮発メモリＣ用デバイスドライバを含むセキュアプログラムＣ、…、不揮発メモリＸ用デバイスドライバを含むセキュアプログラムＸを含んだ暗号化情報が格納されている。不揮発メモリＸ４２には、ブート対象プログラムとしてのブートローダと検証用情報とを含む起動プログラム情報が格納されている。
【００４７】
この構成において、ブートＲＯＭ４５は、不揮発メモリＡ用デバイスドライバを用いて不揮発メモリＡ４１にアクセスし、不揮発メモリＡ４１に格納された不揮発メモリＢ、Ｃ、…、Ｘのいずれかの第２のメモリ用のデバイスドライバを含むセキュアプログラムをセキュアモード展開し、復号、検証結果に問題が無い場合は当該セキュアプログラムを実行させる。図示のように、不揮発メモリＸ４２を使用する構成の場合は、不揮発メモリＡ４１から不揮発メモリＸ用デバイスドライバを含むセキュアプログラムＸをセキュアモード展開する。セキュアプログラムＸは、不揮発メモリＸ用デバイスドライバを用いて不揮発メモリＸ４２にアクセスし、不揮発メモリＸ４２からブートローダと検証用情報を読み込んでＲＡＭ４３に展開し、セキュアプログラムの実行状態を示すフラグ１をＯＮする。ここでは、展開結果が正しい場合をＯＮとして展開結果を反映する。そして、セキュアプログラムＸは、ブートローダの実行のために検証用情報を用いてブートローダを検証するとともにフラグ１を確認し、検証結果が正しく、かつフラグ１がＯＮで展開結果が正しい場合はこのブートローダに処理を移して実行させる。
【００４８】
図８は第４の実施形態における情報処理装置の起動時の動作手順を示すフローチャートである。情報処理装置の起動処理としてのブート時において、電源ＯＮしてリセットした後、ブートＲＯＭ４５は、自身で持っているＩＰＬをＣＰＵ４６で実行させてブート処理を開始し、外部からの入力信号の指示に基づき、使用する不揮発メモリを選択する。図７の例では、不揮発メモリＸ４２を搭載して使用する構成であり、この場合は不揮発メモリＸ４２を選択する（ステップＳ４１）。そして、ブートＲＯＭ４５は、自身で持っている不揮発メモリＡ用デバイスドライバを用いて不揮発メモリＡ４１にアクセスし、不揮発メモリＡ４１から不揮発メモリＸ用デバイスドライバを含むセキュアプログラムＸを読み込んでセキュアモード展開する（ステップＳ４２）。
【００４９】
次に、セキュアプログラムＸ（ＳＰＸ）は、不揮発メモリＸ用デバイスドライバをＲＡＭ４３に展開し、この不揮発メモリＸ用デバイスドライバを用いて不揮発メモリＸ４２にアクセスし、不揮発メモリＸ４２からブートローダと検証用情報とを読み込んでＲＡＭ４３に展開し、フラグ保持部４７のフラグ１をＯＮする（ステップＳ４３）。そして、セキュアプログラムＸは、検証用情報を用いてブートローダを検証し、検証結果が正しく、かつフラグ１＝ＯＮの場合はプログラムカウンタをブートローダに設定し、このブートローダを実行させる（ステップＳ４４）。このブートローダのプログラムによって以降のブート処理が行われる。
【００５０】
この第４の実施形態では、第３の実施形態と同様、セキュアモードを用いることによって、デバイスドライバの利用（ロード）やブートローダの実行の際に、ＲＡＭへの展開から実行までの間においてさらに高度なセキュリティを確保できる。第４の実施形態の構成及び動作では、ブートＲＯＭに処理が一旦戻らないため、安全性をより高めることができる。
【００５１】
以下に、上述した本実施形態の変形例を示す。第１変形例として、情報処理装置におけるデバイスドライバの読み込みモードを切り替え可能な構成とすることもできる。デバイスドライバ読み込みモードとしては、以下の３つのモードが考えられる。ここでは、ブート時にアクセスするデバイスとして不揮発メモリを用いることとする。
（モード１）ブートＲＯＭに内蔵された不揮発メモリデバイスドライバを利用する第１のモード
（モード２）ブートＲＯＭに内蔵された不揮発メモリ小用デバイスドライバを利用して、不揮発メモリ大用デバイスドライバを読み込む第２のモード
（モード３）ブートＲＯＭに内蔵された不揮発メモリ小用デバイスドライバを利用して、暗号化不揮発メモリ大用デバイスドライバを読み込む第３のモード
【００５２】
モード１は、不揮発メモリとして大容量のメモリを一つ使用する場合である。モード２は、不揮発メモリとして小容量のメモリ一つ、大容量のメモリ一つの合計二つ使用する場合であり、大容量の不揮発メモリについてはセキュリティ無しとしたものである。モード３は、不揮発メモリとして小容量のメモリ一つ、大容量のメモリ一つの合計二つ使用する場合であり、大容量の不揮発メモリについてはデバイスドライバを暗号化してセキュリティ有りとしたものである。このモード３が上記実施形態に相当する。複数のモードの切り替え設定は、回路パターンの切断など変更困難な方法によって行うものとする。
【００５３】
第２変形例として、不揮発メモリ等のデバイスを自動で切り替え可能な構成とすることもできる。上記の実施形態では、使用するデバイスの決定方法として、入力信号によって不揮発メモリＸを選択する例を示したが、他の方法によって自動的に切り替える例を以下に示す。ここでは、ブート時にアクセスするデバイスとして、小容量の不揮発メモリＡ（第１のメモリ）と大容量の不揮発メモリＢ（第２のメモリ）とを用いることとする。
【００５４】
この場合、第１のメモリとなる小容量の不揮発メモリＡ用のデバイスドライバはブートＲＯＭに内蔵しておく。まず、ブートＲＯＭのデバイスドライバを用いて小容量の不揮発メモリＡにアクセスし、この不揮発メモリＡから暗号化デバイスドライバを順次読み出す。そして、読み出した暗号化デバイスドライバを用いて、第２のメモリとなる大容量の不揮発メモリＢにアクセスし、この不揮発メモリＢの読み出しを行う。この際、セキュリティ上、暗号化デバイスドライバの検証と復号に失敗した場合は、リセットもしくは次の暗号化デバイスドライバへトライする。大容量の不揮発メモリＢの読み出しが成功した場合は、成功したデバイスドライバ種別を示すデバイス情報を不揮発メモリＡに記憶し、次回の起動からはこのデバイス情報を参照して読み出しに成功したデバイスドライバを利用する。この際、セキュリティ上、デバイスドライバ種別を示すデバイス情報は暗号化して不揮発メモリＡに記憶する。このような構成によって、デバイスドライバを順次読み出して適合するものを使用することで、外部入力信号等を用いることなく、起動時に使用するデバイスに合わせてデバイスドライバを自動的に切り替えて対応可能にでき、ブートを行うことができる。
【００５５】
なお、上述した実施形態では、使用するデバイスやデバイスドライバはメモリデバイスに特化した例を説明したが、これに限るものではなく、様々なデバイスに同様に適用して使用することが可能である。
【００５６】
ブートローダを格納しブート時に読み出すデバイスとしては、記憶デバイスの場合、ＮＡＮＤ型やＮＯＲ型などの半導体メモリ以外に、ＳＤ（登録商標）カード等のメモリカード、ハードディスクドライブ（ＨＤＤ）、ＤＶＤ−ＲＯＭなど、各種記憶デバイスを用いて記憶されたブートローダの読み出しを行う場合も想定する。通信デバイスとしては、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ１３９４、ＷｉＦｉ（ＩＥＥＥ８０２．１１ｂ／ｇ等）など、各種通信手段を用いて伝送されるブートローダを読み込むことも想定する。
【００５７】
また、ブートローダの読み出しと並行して、初期化したいデバイスのデバイスドライバを同様に暗号化して第１のデバイス（第１のメモリ）として用いる不揮発メモリＡに格納しておき、ブートローダ読み出しと合わせて他のデバイスのデバイス初期化を行うことも可能である。このような構成にした場合、ＧＰＳ（Global Positioning System）、ＦｅｌｉＣａ（登録商標）、ワンセグチューナなど、電子機器に搭載する各種機能を実現する他のデバイスとなる回路のチップメーカを容易に変更可能となる。
【００５８】
なお、本発明は上記の実施形態において示されたものに限定されるものではなく、明細書の記載、並びに周知の技術に基づいて、当業者が変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。
【産業上の利用可能性】
【００５９】
本発明は、起動処理においてセキュリティを確保した状態で各種デバイスに対応可能にでき、ブートＲＯＭの内容確定後にデバイスを任意に変更可能にすることができるという効果を有し、各種処理を行うプロセッサを備えた情報処理装置、及びこの情報処理装置を搭載した電子機器等として有用である。
【図面の簡単な説明】
【００６０】
【図１】本発明の第１の実施形態に係る情報処理装置の主要部の構成を示すブロック図
【図２】第１の実施形態における情報処理装置の起動時の動作手順を示すフローチャート
【図３】本発明の第２の実施形態に係る情報処理装置の主要部の構成を示すブロック図
【図４】第２の実施形態における情報処理装置の起動時の動作手順を示すフローチャート
【図５】本発明の第３の実施形態に係る情報処理装置の主要部の構成を示すブロック図
【図６】第３の実施形態における情報処理装置の起動時の動作手順を示すフローチャート
【図７】本発明の第４の実施形態に係る情報処理装置の主要部の構成を示すブロック図
【図８】第４の実施形態における情報処理装置の起動時の動作手順を示すフローチャート
【符号の説明】
【００６１】
１１、２１、３１、４１  不揮発メモリＡ
１２、２２、３２、４２  不揮発メモリＸ
１３、２３、３３、４３  ＲＡＭ
１４、２４、３４、４４  半導体チップ（ＳｏＣ）
１５、２５、３５、４５  ブートＲＯＭ
１６、２６、３６、４６  ＣＰＵ
２７、３７、４７  フラグ保持部
【図１】
2010129037.tif 000003
【図２】
2010129037.tif 000004
【図３】
2010129037.tif 000005
【図４】
2010129037.tif 000006
【図５】
2010129037.tif 000007
【図６】
2010129037.tif 000008
【図７】
2010129037.tif 000009
【図８】
2010129037.tif 000010