説明

情報処理装置及び電子機器

【課題】起動処理においてセキュリティを確保した状態で各種デバイスに対応可能とし、ブートROMの内容確定後にデバイスを任意に変更可能にする。
【解決手段】ブートROM25より不揮発メモリA用デバイスドライバを用いて不揮発メモリA21にアクセスし、暗号化された不揮発メモリX用デバイスドライバを読み込んで復号、検証し、検証結果に問題が無い場合はRAM23に展開し、フラグ1をONする。次に、フラグ1を確認してフラグ1がONの場合は、このデバイスドライバを用いて不揮発メモリX22にアクセスし、不揮発メモリX22からブートローダと検証用情報とを読み込み、ブートローダを検証して問題無い場合はブートローダをRAM23に展開し、フラグ2をONする。そして、フラグ1とフラグ2を確認し、フラグ1及びフラグ2がONで検証結果に問題が無い場合はこのブートローダを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、各種処理を行うプロセッサを備えた情報処理装置、及びこの情報処理装置を搭載した電子機器に関し、詳しくは、起動(ブート、boot)時に用いるブートROMを含む構成に関する。
【背景技術】
【0002】
情報処理装置は、通常、ブートROMが設けられ、電源投入時に最初に動作するBIOS等のIPL(Initial Program Loader)、次にアクセスするデバイス用の制御プログラムであるデバイスドライバ等がブートROMに格納されている。この種の情報処理装置では、電源投入時に、まずブートROMが自身に格納しているデバイスドライバに対応するメモリ等のデバイスにアクセスし、当該デバイスに格納されたブート対象プログラムを読み込んで実行することによって起動するものが一般的である。ブートROMからアクセスするデバイスとしては、ブート対象プログラムであるブートローダ等を格納した不揮発メモリなどが用いられる。
【0003】
情報処理装置を搭載する電子機器の開発においては、ブートROMの内容を先行して確定した後に、不揮発メモリなどのデバイスの種類、仕様、格納するプログラムの内容などを後日決定し、実装することが行われる場合が多い。書換えができないブートROMは、電子機器の開発段階において早めに決定される。これに対し、ブートROMがアクセスするデバイスは、電子機器の機能の追加や変更、コスト等の要因による仕様変更などに合わせて、出荷前まで変更可能である方が好ましい。不揮発メモリの場合、EEPROM、NOR型フラッシュメモリ、NAND型フラッシュメモリなど、様々な種類が存在し、それぞれのメモリで制御方法が異なるため、これらの不揮発メモリに対応するデバイスドライバの共有は困難である。このため、ブートROMに不揮発メモリのデバイスドライバをハードコーディングした場合、不揮発メモリを変更するとそれに応じてブートROMの交換が必要になる。ここで、ブートROMが1チップ化したSoC(System On a Chip)に含まれる場合は、事実上交換は困難である。
【0004】
また、情報処理装置では、セキュリティを確保した起動処理を行うセキュアブートなどにおいて、安全性を高めるためにブート対象プログラムを検証してから実行することが行われている。例えば特許文献1には、安全性を高めた実行環境を提供するための装置及び方法として、BIOSによって不揮発メモリに格納されたブートローダの完全性などを検証して実行許可を判断し、許可された場合のみブートローダを実行する技術が開示されている。また、特許文献2には、外部に装着される未知デバイスの安全性を確保するために、デバイスドライバを暗号化して保存しておき、利用時にデバイスドライバをセキュリティモジュールで復号化してRAMにロードすることで、未知デバイスを使用可能にする情報処理装置が開示されている。
【特許文献1】特開2007−102791号公報
【特許文献2】特開2001−249804号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
セキュリティを確保した状態で起動処理を行うには、上記のように、デバイスドライバ、ブートローダなどのブート時に必要なドライバやプログラムを検証し、改竄が無いなど検証結果に問題が無い場合のみ実行するような構成や方法がとられる。この際、適切なデバイスドライバをロードして対象デバイスにアクセスし、ブートローダ等のブート対象プログラムを読み込む必要がある。しかしながら、上述したように、ブートROMの内容確定後に不揮発メモリ等のデバイスを変更可能にするには、多くの種類のデバイスに対応可能にしなければならないが、従来の構成では、セキュリティを確保した状態で対応するのは困難である。
【0006】
本発明は、上記事情に鑑みてなされたもので、起動処理においてセキュリティを確保した状態で各種デバイスに対応可能にでき、ブートROMの内容確定後にデバイスを任意に変更可能にすることができる情報処理装置及び電子機器を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、第1の態様として、起動時にアクセスする第1のデバイス及び第2のデバイスと、前記第1のデバイスにアクセスするための第1のデバイスドライバを含む起動用情報を格納したブートROMと、起動時に動作するブート対象プログラムを展開するRAMと、処理を実行するプロセッサとを備え、前記第1のデバイスは、前記第2のデバイスにアクセスするための暗号化された第2のデバイスドライバを含む暗号化情報を有しており、前記第2のデバイスは、前記ブート対象プログラムを含む起動プログラム情報を有しており、前記ブートROMの起動用情報を用いて、前記第1のデバイスにアクセスして前記第2のデバイスドライバを含む暗号化情報を取得し、復号する機能と、前記復号して得られた前記第2のデバイスドライバを含む復号情報を用いて、前記第2のデバイスにアクセスして前記ブート対象プログラムを含む起動プログラム情報を取得し、前記ブート対象プログラムを前記RAMに展開する機能と、前記ブート対象プログラムの検証または復号を行い、処理結果に問題がない場合は前記ブート対象プログラムを実行する機能と、を有する情報処理装置を提供する。
上記構成により、ブートROMにある第1のデバイスドライバを用いて第1のデバイスにアクセスし、第1のデバイスから取得した暗号化された第2のデバイスドライバを復号して第2のデバイスにアクセスし、第2のデバイスから取得した対象プログラムの検証または復号を行い、処理結果に問題がない場合はブート対象プログラムを実行することで、セキュリティを確保した状態で起動処理を実行可能である。この際、第2のデバイスとして各種デバイスを使用するようにした場合でも、第2のデバイスを後で変更可能な構成としつつ、起動処理においてセキュリティを確保できる。よって、セキュリティを確保した状態で各種デバイスに対応可能にでき、ブートROMの内容確定後にデバイスを任意に変更可能にすることができる。
【0008】
また、本発明は、第2の態様として、上記の情報処理装置であって、前記第2のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、前記プロセッサが、前記ブートROMの起動用情報を用いて、前記第1のデバイスから取得した前記第2のデバイスドライバを復号して前記RAMに展開する機能と、前記第2のデバイスドライバを用いて前記第2のデバイスから前記ブートローダ及び前記検証用情報を取得して前記RAMに展開する機能と、前記検証用情報を用いて前記ブートローダを検証して検証結果に問題がない場合はこのブートローダを実行する機能とを有するものを含む。
上記構成により、第1のデバイスから取得した暗号化された第2のデバイスドライバを復号して第2のデバイスにアクセスし、第2のデバイスから取得したブートローダ及び検証用情報を用いてブートローダの検証を行い、検証結果に問題がない場合はブートローダを実行することで、第2のデバイスを任意に変更可能としつつ、セキュリティを確保した状態で起動処理を実行可能である。
【0009】
また、本発明は、第3の態様として、上記の情報処理装置であって、前記第2のデバイスドライバの検証結果を示す第1のフラグと、前記ブート対象プログラムの検証結果を示す第2のフラグとを含むフラグ情報を保持するフラグ保持部を備え、前記第2のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、前記プロセッサが、前記ブートROMの起動用情報を用いて、前記第1のデバイスから取得した前記第2のデバイスドライバを復号及び検証して検証結果に問題がない場合は、前記第2のデバイスドライバを前記RAMに展開し前記第1のフラグに結果を反映する機能と、前記第1のフラグを確認して検証結果が正しい場合は前記第2のデバイスドライバを用いて前記第2のデバイスから前記ブートローダ及び前記検証用情報を取得する機能と、前記検証用情報を用いて前記ブートローダを検証して検証結果に問題がない場合は前記ブートローダを前記RAMに展開し前記第2のフラグに結果を反映する機能と、前記第2のフラグを確認して検証結果が正しい場合は前記ブートローダを実行する機能とを有するものを含む。
上記構成により、第1のデバイスから取得した暗号化された第2のデバイスドライバを復号、検証して検証結果に問題がない場合は、第2のデバイスドライバをRAMに展開して第1のフラグに結果を反映し(例えばONし)、第1のフラグを確認して検証結果が正しい場合(例えばONの場合)は第2のデバイスドライバを用いて第2のデバイスにアクセスし、第2のデバイスから取得したブートローダ及び検証用情報を用いてブートローダの検証を行い、検証結果に問題がない場合はブートローダをRAMに展開して第2のフラグに結果を反映し(例えばONし)、第2のフラグを確認して検証結果が正しい場合(例えばONの場合)はブートローダを実行することで、第2のデバイスを任意に変更可能としつつ、セキュリティを確保した状態で起動処理を実行可能である。この場合、フラグ情報を確認して第2のデバイスドライバの利用、ブートローダの実行を行うことで、安全性を高めることができる。
【0010】
また、本発明は、第4の態様として、上記の情報処理装置であって、前記プロセッサは、通常実行モードとは別に、セキュリティを確保した特権的な実行モードであるセキュアモードを有し、前記第1のデバイスは、前記暗号化情報として、前記セキュアモードで動作する暗号化プログラムであるセキュアプログラムを有し、このセキュアプログラムは前記第2のデバイスドライバを含むものであり、前記第2のデバイスは、前記起動プログラム情報として、前記セキュアモードで動作するセキュアプログラムによるセキュアブートローダを有し、このセキュアブートローダは前記ブート対象プログラムであるブートローダを含むものであり、前記セキュアプログラムの実行状態を示すフラグを含むフラグ情報を保持するフラグ保持部を備え、前記プロセッサが、前記ブートROMの起動用情報を用いて、前記第1のデバイスから取得した前記セキュアプログラムを展開する機能と、前記セキュアプログラムによって前記第2のデバイスドライバを前記RAMに展開し前記フラグへ展開結果を反映する機能と、前記第2のデバイスドライバを用いて前記第2のデバイスから前記セキュアブートローダを取得し展開する機能と、前記セキュアブートローダによって前記フラグを確認して展開結果が正しい場合は前記ブートローダを前記RAMに展開し、このブートローダを実行させる機能とを有するものを含む。
上記構成により、プロセッサのセキュアモードを用いて、第1のデバイスから取得したセキュアプログラムを展開し、このセキュアプログラムによって第2のデバイスドライバをRAMに展開してフラグへ展開結果を反映し(例えばONし)、この第2のデバイスドライバを用いて第2のデバイスからセキュアブートローダを取得して展開し、このセキュアブートローダによってフラグを確認して展開結果が正しい場合(例えばONの場合)はブートローダをRAMに展開し、このブートローダを実行させることで、第2のデバイスを任意に変更可能としつつ、セキュリティを確保した状態で起動処理を実行可能である。この場合、セキュアプログラムによって第2のデバイスドライバの利用を行い、セキュアブートローダによってフラグ情報を確認してブートローダの実行を行うことで、さらに高度な安全性を確保することができる。
【0011】
また、本発明は、第5の態様として、上記の情報処理装置であって、前記プロセッサは、通常実行モードとは別に、セキュリティを確保した特権的な実行モードであるセキュアモードを有し、前記第1のデバイスは、前記暗号化情報として、前記セキュアモードで動作する暗号化プログラムであるセキュアプログラムを有し、このセキュアプログラムは前記第2のデバイスドライバを含むものであり、前記第2のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、前記セキュアプログラムの実行状態を示すフラグを含むフラグ情報を保持するフラグ保持部を備え、前記プロセッサが、前記ブートROMの起動用情報を用いて、前記第1のデバイスから取得した前記セキュアプログラムを展開する機能と、前記セキュアプログラムによって、前記第2のデバイスドライバを取得し、この第2のデバイスドライバを用いて前記第2のデバイスから前記ブートローダ及び前記検証用情報を取得し、これらのブートローダ及び検証用情報を前記RAMに展開し前記フラグへ展開結果を反映する機能と、前記検証用情報を用いて前記ブートローダを検証し、検証結果が正しく、かつ前記フラグを確認して展開結果が正しい場合は前記ブートローダを実行させる機能とを有するものを含む。
上記構成により、プロセッサのセキュアモードを用いて、第1のデバイスから取得したセキュアプログラムを展開し、このセキュアプログラムによって、第2のデバイスドライバを用いて第2のデバイスからブートローダ及び検証用情報を取得し、これらのブートローダ及び検証用情報をRAMに展開してフラグへ展開結果を反映し(例えばONし)、検証用情報を用いてブートローダの検証を行い、検証結果が正しく、かつフラグを確認して展開結果が正しい場合(例えばONの場合)はブートローダを実行させることで、第2のデバイスを任意に変更可能としつつ、セキュリティを確保した状態で起動処理を実行可能である。この場合、セキュアプログラムによって第2のデバイスドライバの利用を行い、フラグ情報を確認してブートローダの実行を行うことで、さらに高度な安全性を確保することができる。また、セキュアプログラムにおいて一連の起動処理を実行し、セキュアプログラムからブートROM等に処理が移行しないため、より安全性の高い構成を実現できる。
【0012】
また、本発明は、第6の態様として、上記の情報処理装置であって、前記デバイスドライバの読み込みモードとして複数のモードを有し、前記第1のデバイスのみを使用し、前記ブートROMにある第1のデバイスドライバを用いて前記第1のデバイスにアクセスする第1のモードと、前記第1のデバイス及び前記第2のデバイスを使用し、前記ブートROMにある第1のデバイスドライバを用いて前記第1のデバイスにアクセスしてこの第1のデバイスにある第2のデバイスドライバを取得し、この第2のデバイスドライバを用いて前記第2のデバイスにアクセスする第2のモードと、前記第1のデバイス及び前記第2のデバイスを使用し、前記ブートROMにある第1のデバイスドライバを用いて前記第1のデバイスにアクセスしてこの第1のデバイスにある暗号化された第2のデバイスドライバを取得、復号し、この第2のデバイスドライバを用いて前記第2のデバイスにアクセスする第3のモードと、のうち、前記第3のモードを少なくとも含む複数のモードのいずれかに切り替え設定可能であるものを含む。
上記構成により、複数のデバイスドライバの読み込みモードを任意に切り替え設定することが可能となる。
【0013】
また、本発明は、第7の態様として、上記の情報処理装置であって、前記第1のデバイスは、前記第2のデバイスにアクセスするための第2のデバイスドライバとして、各デバイスにそれぞれ対応する複数のデバイスドライバを有しており、前記複数のデバイスドライバを順次取得し、前記第2のデバイスにアクセスして前記第2のデバイスからの情報取得が成功した場合に、使用する第2のデバイスのデバイス情報を保持する機能を有するものを含む。
上記構成により、情報取得が成功した第2のデバイスのデバイス情報を用いて、次回の起動時からは、使用する第2のデバイスに適合したデバイスドライバを用いて第2のデバイスにアクセス可能となる。よって、外部入力信号等を用いることなく、起動時に使用するデバイスに合わせてデバイスドライバを自動的に切り替えて対応可能にでき、セキュリティを確保した起動処理を行うことができる。
【0014】
また、本発明は、第8の態様として、上記の情報処理装置であって、前記第1のデバイスは、前記暗号化情報として、前記第2のデバイスドライバとともに他の初期化を行うデバイスのデバイスドライバを有しており、前記第2のデバイスにアクセスして前記ブート対象プログラムを取得する処理と並行して、前記他のデバイスの初期化を行う機能を有するものを含む。
上記構成により、起動処理と並行して他のデバイスの初期化が可能であり、装置に搭載する各種機能を実現する他のデバイスを容易に変更可能となる。
【0015】
また、本発明は、第9の態様として、上記いずれかの情報処理装置であって、前記第1のデバイスと前記第2のデバイスには、それぞれ、起動に関する情報を記憶する記憶デバイス、起動に関する情報を伝送する通信デバイスのうちの少なくとも一つを使用するものを含む。
上記構成により、不揮発メモリ等の記憶デバイス、各種通信手段による通信デバイスなどを第2のデバイスにおいて適宜変更可能な構成として利用し、セキュリティを確保した起動処理を実現できる。
【0016】
また、本発明は、上記いずれかに記載の情報処理装置を備える電子機器を提供する。
上記構成により、起動処理においてセキュリティを確保した状態で各種デバイスに対応可能にでき、ブートROMの内容確定後にデバイスを任意に変更可能な構成とした電子機器を実現できる。
【発明の効果】
【0017】
本発明によれば、起動処理においてセキュリティを確保した状態で各種デバイスに対応可能にでき、ブートROMの内容確定後にデバイスを任意に変更可能にすることができる情報処理装置及び電子機器を提供可能である。
【発明を実施するための最良の形態】
【0018】
以下の実施形態では、情報処理装置の一例として、デバイスドライバやブート対象プログラムを格納するデバイスとして不揮発メモリを備えた装置の構成例を示す。この場合、起動時にブートROMがセキュリティを確保した状態で不揮発メモリにアクセスしてブート対象プログラムを読み込み、実行するものとする。本実施形態の情報処理装置を搭載した電子機器としては、携帯電話装置、携帯情報端末、音楽プレーヤ、動画再生装置、パーソナルコンピュータ、ゲーム機など、各種電子機器に適用可能である。
【0019】
(第1の実施形態)
図1は本発明の第1の実施形態に係る情報処理装置の主要部の構成を示すブロック図である。情報処理装置は、第1のデバイスである第1のメモリとしての不揮発メモリA11と、第2のデバイスである第2のメモリとしての不揮発メモリX12と、RAM13と、SoC等による半導体チップ14とを備えている。半導体チップ14には、起動時に使用するブートROM15と、メインプロセッサであるCPU16とを含む半導体回路が1チップ化されて搭載されている。これらの不揮発メモリA11、不揮発メモリX12、RAM13、ブートROM15は、CPU16と接続され、各種情報の入出力がなされる。
【0020】
不揮発メモリA11、不揮発メモリX12は、EEPROM、NOR型フラッシュメモリ、NAND型フラッシュメモリなどの書換え可能で電源保持不要なメモリにより構成される。例えば、不揮発メモリA11はEEPROMで構成され、不揮発メモリX12はNAND型フラッシュメモリで構成されるものとする。ここで、第1のメモリ(不揮発メモリA11)は、比較的小容量のメモリであり、ブートROM15とほぼ同時期に内容が決定される。一方、第2のメモリ(不揮発メモリX12等)は、比較的大容量のメモリであり、メモリの種類、仕様、内容等が後で決定されて追加されるものとする。
【0021】
ブートROM15には、電源投入時に最初に動作するIPLと、第1のメモリのデバイスドライバとして不揮発メモリA用のデバイスドライバ(図面ではDDと略記する、以下同様)とを含む起動用情報が格納されている。不揮発メモリA11には、第2のメモリのデバイスドライバとして、暗号化された不揮発メモリB用のデバイスドライバ、暗号化された不揮発メモリC用のデバイスドライバ、…、暗号化された不揮発メモリX用のデバイスドライバを含む暗号化情報が格納されている。不揮発メモリX12には、ブート対象プログラムとしてのブートローダと検証用情報とを含む起動プログラム情報が格納されている。
【0022】
この構成において、ブートROM15は、不揮発メモリA用デバイスドライバを用いて不揮発メモリA11にアクセスし、不揮発メモリA11に格納された不揮発メモリB、C、…、Xのいずれかの第2のメモリ用のデバイスドライバを読み込んで復号し、RAM13に展開する。図示のように、不揮発メモリX12を使用する構成の場合は、不揮発メモリA11から暗号化された不揮発メモリX用デバイスドライバを読み込んで復号し、このデバイスドライバを用いて不揮発メモリX12にアクセスする。そして、不揮発メモリX12からブートローダと検証用情報とを読み込み、ブートローダを検証して問題無い場合はブートローダを実行する。
【0023】
図2は第1の実施形態における情報処理装置の起動時の動作手順を示すフローチャートである。情報処理装置の起動処理としてのブート時において、電源ONしてリセットした後、ブートROM15は、自身で持っているIPLをCPU16で実行させてブート処理を開始し、外部からの入力信号の指示に基づき、使用する不揮発メモリを選択する。図1の例では、不揮発メモリX12を搭載して使用する構成であり、この場合は不揮発メモリX12を選択する(ステップS11)。そして、ブートROM15は、自身で持っている不揮発メモリA用デバイスドライバを用いて不揮発メモリA11にアクセスし、不揮発メモリA11から暗号化された不揮発メモリX用デバイスドライバを読み込んで復号し、RAM13に展開する(ステップS12)。次に、ブートROM15は、不揮発メモリX用デバイスドライバを用いて不揮発メモリX12にアクセスし、不揮発メモリX12からブートローダと検証用情報とを読み込み、RAM13に展開する(ステップS13)。そして、ブートROM15は、検証用情報を用いてブートローダの改竄等が無いか検証し、検証結果に問題が無い場合(OKの場合)はブートローダを実行する(ステップS14)。このブートローダのプログラムによって以降のブート処理が行われる。
【0024】
この第1の実施形態では、書換え不可能なSoC等で構成された半導体チップ14内にあるブートROM15を用い、このブートROM15内に格納されたデバイスドライバによって不揮発メモリA11にアクセスするので、ブートROM15から不揮発メモリA11へのアクセスに関する安全性は確保される。また、不揮発メモリA11内にある不揮発メモリX12用等の第2のメモリ用のデバイスドライバは、暗号化されて格納されているため、このデバイスドライバを復号して用いることにより、不揮発メモリX12へのアクセスに関する安全性は確保される。そして、不揮発メモリX12内に格納されたブートローダと検証用情報とを用いてこのブートローダを検証し、改竄等の問題が無かった場合はブートローダを実行することで、ブートローダの実行に関する安全性は確保される。なお、第1のメモリである不揮発メモリA11は、ブートROM15と同様に半導体チップ14内に搭載してもよいし、別に設ける構成としてもよい。いずれの構成においてもセキュリティは確保される。
【0025】
したがって、第2のメモリを後で変更可能な状態としつつ、ブート時のセキュリティを確保できる。このため、起動処理においてセキュリティを確保した状態で各種メモリ等のデバイスに対応可能にでき、ブートROMの内容確定後にデバイスを任意に変更可能にできる。
【0026】
ただし、第1の実施形態では、個別に検証する構成であるため、不揮発メモリX用デバイスドライバのRAM展開時からこのデバイスドライバの読み込み時までと、ブートローダのRAM展開時からこのデバイスドライバの読み込み時までは、完全な安全性を保証できないという課題がある。
【0027】
以降の実施形態において、上記課題に対応して、ブートROMと保護されたデバイスドライバの連携、及び保護されたデバイスドライバとブートローダの連携を図り、より高度なセキュリティを確保できるようにした構成例をいくつか示す。
【0028】
(第2の実施形態)
図3は本発明の第2の実施形態に係る情報処理装置の主要部の構成を示すブロック図である。情報処理装置は、第1のメモリとしての不揮発メモリA21と、第2のメモリとしての不揮発メモリX22と、RAM23と、SoC等による半導体チップ24とを備えている。半導体チップ24には、起動時に使用するブートROM25と、メインプロセッサであるCPU26と、フラグ1(第1のフラグ)及びフラグ2(第2のフラグ)を含むフラグ情報を保持するフラグ保持部27とを有する半導体回路が1チップ化されて搭載されている。これらの不揮発メモリA21、不揮発メモリX22、RAM23、ブートROM25、フラグ保持部27は、CPU26と接続され、各種情報の入出力がなされる。フラグ保持部27は、半導体チップ24内に搭載されたレジスタ等によって構成され、外部からのアクセスが不可能な構成となっている。
【0029】
不揮発メモリA21、不揮発メモリX22は、EEPROM、NOR型フラッシュメモリ、NAND型フラッシュメモリなどの書換え可能で電源保持不要なメモリにより構成される。例えば、不揮発メモリA21はEEPROMで構成され、不揮発メモリX22はNAND型フラッシュメモリで構成されるものとする。ここで、第1のメモリ(不揮発メモリA21)は、比較的小容量のメモリであり、ブートROM25とほぼ同時期に内容が決定される。一方、第2のメモリ(不揮発メモリX22等)は、比較的大容量のメモリであり、メモリの種類、仕様、内容等が後で決定されて追加されるものとする。
【0030】
ブートROM25には、電源投入時に最初に動作するIPLと、第1のメモリのデバイスドライバとして不揮発メモリA用のデバイスドライバと、フラグ制御処理プログラムとを含む起動用情報が格納されている。不揮発メモリA21には、第2のメモリのデバイスドライバとして、暗号化された不揮発メモリB用のデバイスドライバ、暗号化された不揮発メモリC用のデバイスドライバ、…、暗号化された不揮発メモリX用のデバイスドライバを含む暗号化情報が格納されている。不揮発メモリX22には、ブート対象プログラムとしてのブートローダと検証用情報とを含む起動プログラム情報が格納されている。
【0031】
この構成において、ブートROM25は、不揮発メモリA用デバイスドライバを用いて不揮発メモリA21にアクセスし、不揮発メモリA21に格納された不揮発メモリB、C、…、Xのいずれかの第2のメモリ用のデバイスドライバを読み込んで復号、検証し、検証結果に問題が無い場合はRAM23に展開し、デバイスドライバの復号、検証、及びRAM展開に成功した場合は、第2のデバイスドライバの検証結果を示すフラグ1をONする。ここでは、検証結果が正しい場合をONとして検証結果を反映する。図示のように、不揮発メモリX22を使用する構成の場合は、不揮発メモリA21から暗号化された不揮発メモリX用デバイスドライバを読み込んで復号、検証する。そして、デバイスドライバの利用時にフラグ1を確認し、フラグ1がONでデバイスドライバの検証結果が正しい場合はこのデバイスドライバを用いて不揮発メモリX22にアクセスし、不揮発メモリX22からブートローダと検証用情報とを読み込む。次に、検証用情報を用いてブートローダを検証して問題無い場合はRAM23に展開し、ブートローダの復号、検証、及びRAM展開に成功した場合は、ブート対象プログラムの検証結果を示すフラグ2をONする。ここでは、検証結果が正しい場合をONとして検証結果を反映する。そして、ブートローダの実行時にフラグ1とフラグ2を確認し、フラグ1及びフラグ2がONで検証結果が正しい場合はこのブートローダを実行する。なお、ブートローダの実行時はフラグ2のみを確認するようにしてもよいが、フラグ1とフラグ2の両方を確認することでより安全性が高まる。一方、フラグがOFFで検証結果が正しくない場合は、リセットするか、または処理の続行を停止する。これにより、デバイスドライバ及びブートローダについて、それぞれ検証、復号、RAM展開が成功した場合のみ利用可能にできる。
【0032】
図4は第2の実施形態における情報処理装置の起動時の動作手順を示すフローチャートである。情報処理装置の起動処理としてのブート時において、電源ONしてリセットした後、ブートROM25は、自身で持っているIPLをCPU26で実行させてブート処理を開始し、外部からの入力信号の指示に基づき、使用する不揮発メモリを選択する。図3の例では、不揮発メモリX22を搭載して使用する構成であり、この場合は不揮発メモリX22を選択する(ステップS21)。そして、ブートROM25は、自身で持っている不揮発メモリA用デバイスドライバを用いて不揮発メモリA21にアクセスし、不揮発メモリA21から暗号化された不揮発メモリX用デバイスドライバを読み込んで復号した後、改竄等が無いか検証を行い、検証結果に問題が無い場合(OKの場合)は当該デバイスドライバをRAM23に展開し、フラグ保持部27のフラグ1をONする(ステップS22)。
【0033】
次に、ブートROM25は、フラグ1を確認し、フラグ1=ONで検証結果に問題が無い場合はこの不揮発メモリX用デバイスドライバを用いて不揮発メモリX22にアクセスし、不揮発メモリX22からブートローダと検証用情報とを読み込む(ステップS23)。そして、ブートROM25は、ブートローダを検証し、検証結果に問題が無い場合(OKの場合)はブートローダをRAM23に展開し、フラグ保持部27のフラグ2をONする(ステップS24)。続いて、ブートROM25は、フラグ保持部27のフラグ1及びフラグ2を確認し、フラグ1及びフラグ2=ONで検証結果に問題が無い場合はブートローダを実行する(ステップS25)。このブートローダのプログラムによって以降のブート処理が行われる。
【0034】
この第2の実施形態では、書換え不可能なSoC等で構成された半導体チップ24内にあるブートROM25を用い、このブートROM25内に格納されたデバイスドライバによって不揮発メモリA21にアクセスするので、ブートROM25から不揮発メモリA21へのアクセスに関する安全性は確保される。また、ブートROM25によってフラグ保持部27におけるフラグ1、フラグ2の書き込み、読み出しを制御し、デバイスドライバやブートローダの検証結果を書き込むとともに、これらのフラグによって検証結果を確認してからデバイスドライバの利用(ロード)やブートローダの実行を行うことで、RAMへの展開から実行までの間の安全性を保証でき、セキュリティを向上できる。
【0035】
この際、不揮発メモリA21内にある暗号化された不揮発メモリX用デバイスドライバを復号して検証を行い、復号及び検証に成功した場合はフラグ1をONしてデバイスドライバをRAM23に展開し、さらにフラグ1を確認してフラグ1=ONの場合はこの不揮発メモリX用デバイスドライバを用いることで、ブートROMと保護されたデバイスドライバとの連携をとることができ、不揮発メモリX22へのアクセスに関する安全性は確保される。また、不揮発メモリX22内に格納されたブートローダと検証用情報とを用いてこのブートローダを検証し、検証に成功した場合はフラグ2をONしてブートローダをRAM23に展開し、さらにフラグ1及びフラグ2を確認してフラグ1及びフラグ2=ONの場合はブートローダを実行することで、保護されたデバイスドライバとブートローダとの連携をとることができ、ブートローダの実行に関する安全性は確保される。なお、第1のメモリである不揮発メモリA21は、ブートROM25と同様に半導体チップ24内に搭載してもよいし、別に設ける構成としてもよい。いずれの構成においてもセキュリティは確保される。
【0036】
したがって、第2の実施形態によれば、第2のメモリを後で変更可能とし、適切なデバイスドライバを選択して使用できるようにしながら、ブート時において第1の実施形態よりも高度なセキュリティを確保できる。このため、起動処理においてセキュリティを確保した状態で各種メモリ等のデバイスに対応可能にでき、ブートROMの内容確定後にデバイスを任意に変更可能にできる。
【0037】
(第3の実施形態)
図5は本発明の第3の実施形態に係る情報処理装置の主要部の構成を示すブロック図である。第3の実施形態は、セキュアモードを併用する第1の構成例である。情報処理装置は、第1のメモリとしての不揮発メモリA31と、第2のメモリとしての不揮発メモリX32と、RAM33と、SoC等による半導体チップ34とを備えている。半導体チップ34には、起動時に使用するブートROM35と、メインプロセッサであるCPU36と、フラグ1を含むフラグ情報を保持するフラグ保持部37とを有する半導体回路が1チップ化されて搭載されている。これらの不揮発メモリA31、不揮発メモリX32、RAM33、ブートROM35、フラグ保持部37は、CPU36と接続され、各種情報の入出力がなされる。フラグ保持部37は、半導体チップ34内に搭載されたレジスタ等によって構成され、CPU36以外の外部からのアクセスが不可能な領域に設けられた構成となっている。不揮発メモリA31、不揮発メモリX32は、メモリの基本的構成は第2の実施形態と同様である。
【0038】
ブートROM35には、電源投入時に最初に動作するIPLと、第1のメモリのデバイスドライバとして不揮発メモリA用のデバイスドライバとを含む起動用情報が格納されている。不揮発メモリA31には、第2のメモリのデバイスドライバを含むセキュアプログラム(図面ではSPと略記する、以下同様)として、不揮発メモリB用デバイスドライバを含むセキュアプログラムB、不揮発メモリC用デバイスドライバを含むセキュアプログラムC、…、不揮発メモリX用デバイスドライバを含むセキュアプログラムXを含んだ暗号化情報が格納されている。不揮発メモリX32には、ブート対象プログラムとしてのセキュアプログラムによるセキュアブートローダ(以下、SPブートローダと記載する)を含む起動プログラム情報が格納されている。このSPブートローダは、通常のブートローダの情報を含むセキュアプログラムである。
【0039】
セキュアプログラムは、セキュアモードで動作する暗号化プログラムであり、改竄などに対する安全性が確保されている。セキュアモードは、CPUの通常実行モードと別に存在する特権的な実行モードである。このセキュアモードからしかアクセスできないメモリ領域(レジスタなど)を有しており、セキュアプログラムを使用する際のセキュアモード展開時にこのアクセス制限されたメモリ領域にセキュアプログラムを展開する。また、本実施形態ではアクセス制限されたメモリ領域に半導体チップ34のフラグ保持部37を設け、フラグをセキュアモードのみでアクセス可能にする。セキュアモードで実行されるセキュアプログラムは、暗号化されて改竄検証用情報を添付して保存され、セキュアモード展開時に復号、改竄検証が行われる。検証結果により、復号、検証に失敗した場合は、セキュアプログラムは実行されない。このようにセキュアモードを利用することにより、安全性をさらに向上できる。
【0040】
上記構成において、ブートROM35は、不揮発メモリA用デバイスドライバを用いて不揮発メモリA31にアクセスし、不揮発メモリA31に格納された不揮発メモリB、C、…、Xのいずれかの第2のメモリ用のデバイスドライバを含むセキュアプログラムをセキュアモード展開し、復号、検証結果に問題が無い場合は当該セキュアプログラムを実行させる。図示のように、不揮発メモリX32を使用する構成の場合は、不揮発メモリA31から不揮発メモリX用デバイスドライバを含むセキュアプログラムXをセキュアモード展開する。セキュアプログラムXは、不揮発メモリX用デバイスドライバをRAM33に展開し、セキュアプログラムの実行状態を示すフラグ1をONする。ここでは、展開結果が正しい場合をONとして展開結果を反映する。そして、ブートROM35は、不揮発メモリX用デバイスドライバを用いて不揮発メモリX32にアクセスし、不揮発メモリX32からSPブートローダを読み込み、セキュアモード展開する。次に、SPブートローダは、ブートローダの実行のためにフラグ1を確認し、フラグ1がONで展開結果が正しい場合は通常ブートローダをRAM33に展開し、この通常ブートローダに処理を移して実行させる。
【0041】
図6は第3の実施形態における情報処理装置の起動時の動作手順を示すフローチャートである。情報処理装置の起動処理としてのブート時において、電源ONしてリセットした後、ブートROM35は、自身で持っているIPLをCPU36で実行させてブート処理を開始し、外部からの入力信号の指示に基づき、使用する不揮発メモリを選択する。図5の例では、不揮発メモリX32を搭載して使用する構成であり、この場合は不揮発メモリX32を選択する(ステップS31)。そして、ブートROM35は、自身で持っている不揮発メモリA用デバイスドライバを用いて不揮発メモリA31にアクセスし、不揮発メモリA31から不揮発メモリX用デバイスドライバを含むセキュアプログラムXを読み込んでセキュアモード展開する(ステップS32)。次いで、セキュアプログラムX(SPX)は、不揮発メモリX用デバイスドライバをRAM33に展開し、フラグ保持部37のフラグ1をONする(ステップS33)。
【0042】
次に、ブートROM35は、不揮発メモリX用デバイスドライバを用いて不揮発メモリX32にアクセスし、不揮発メモリX32から通常ブートローダを含むSPブートローダを読み込んでセキュアモード展開する(ステップS34)。そして、SPブートローダは、フラグ保持部37のフラグ1を確認し、フラグ1=ONで検証結果に問題が無い場合は通常ブートローダをRAM33に展開する。続いて、SPブートローダはプログラムカウンタを通常ブートローダに設定し、この通常ブートローダを実行させる(ステップS35)。この通常ブートローダのプログラムによって以降のブート処理が行われる。
【0043】
この第3の実施形態では、第2の実施形態の構成に加えて、セキュアモードを用いることによって、デバイスドライバの利用(ロード)やブートローダの実行の際に、RAMへの展開から実行までの間の安全性をさらに高めることができる。この際、書換え不可能なSoC等で構成された半導体チップ34内にあるブートROM35を用い、このブートROM35内に格納されたデバイスドライバによって不揮発メモリA31にアクセスするので、ブートROM35から不揮発メモリA31へのアクセスに関する安全性は確保される。また、不揮発メモリA31に格納されたセキュアプログラムを用いて、セキュアモードで不揮発メモリX用デバイスドライバの復号、展開を行うことで、ブートROMと保護されたデバイスドライバとの連携をとることができ、不揮発メモリX32へのアクセスに関する安全性は確保される。また、セキュアプログラムによってセキュアモードでフラグ保持部37におけるフラグ1の書き込み、読み出しを制御し、不揮発メモリX32内に格納されたSPブートローダを用いて、フラグ1を確認してフラグ1=ONの場合に通常ブートローダを展開し実行することで、保護されたデバイスドライバとブートローダとの連携をとることができ、ブートローダの実行に関する安全性は確保される。なお、第1のメモリである不揮発メモリA31は、ブートROM35と同様に半導体チップ34内に搭載してもよいし、別に設ける構成としてもよい。いずれの構成においてもセキュリティは確保される。
【0044】
したがって、第3の実施形態によれば、第2のメモリを後で変更可能とし、適切なデバイスドライバを選択して使用できるようにしながら、ブート時においてさらに高度なセキュリティを確保できる。このため、起動処理においてセキュリティを確保した状態で各種メモリ等のデバイスに対応可能にでき、ブートROMの内容確定後にデバイスを任意に変更可能にできる。
【0045】
(第4の実施形態)
図7は本発明の第4の実施形態に係る情報処理装置の主要部の構成を示すブロック図である。第4の実施形態は、セキュアモードを併用する第2の構成例である。情報処理装置は、第1のメモリとしての不揮発メモリA41と、第2のメモリとしての不揮発メモリX42と、RAM43と、SoC等による半導体チップ44とを備えている。半導体チップ44には、起動時に使用するブートROM45と、メインプロセッサであるCPU46と、フラグ1を含むフラグ情報を保持するフラグ保持部47とを有する半導体回路が1チップ化されて搭載されている。これらの不揮発メモリA41、不揮発メモリX42、RAM43、ブートROM45、フラグ保持部47は、CPU46と接続され、各種情報の入出力がなされる。フラグ保持部47は、半導体チップ44内に搭載されたレジスタ等によって構成され、外部からのアクセスが不可能な構成となっている。不揮発メモリA41、不揮発メモリX42は、メモリの基本的構成は第2及び第3の実施形態と同様である。
【0046】
ブートROM45には、電源投入時に最初に動作するIPLと、第1のメモリのデバイスドライバとして不揮発メモリA用のデバイスドライバとを含む起動用情報が格納されている。不揮発メモリA41には、第2のメモリのデバイスドライバを含むセキュアプログラムとして、不揮発メモリB用デバイスドライバを含むセキュアプログラムB、不揮発メモリC用デバイスドライバを含むセキュアプログラムC、…、不揮発メモリX用デバイスドライバを含むセキュアプログラムXを含んだ暗号化情報が格納されている。不揮発メモリX42には、ブート対象プログラムとしてのブートローダと検証用情報とを含む起動プログラム情報が格納されている。
【0047】
この構成において、ブートROM45は、不揮発メモリA用デバイスドライバを用いて不揮発メモリA41にアクセスし、不揮発メモリA41に格納された不揮発メモリB、C、…、Xのいずれかの第2のメモリ用のデバイスドライバを含むセキュアプログラムをセキュアモード展開し、復号、検証結果に問題が無い場合は当該セキュアプログラムを実行させる。図示のように、不揮発メモリX42を使用する構成の場合は、不揮発メモリA41から不揮発メモリX用デバイスドライバを含むセキュアプログラムXをセキュアモード展開する。セキュアプログラムXは、不揮発メモリX用デバイスドライバを用いて不揮発メモリX42にアクセスし、不揮発メモリX42からブートローダと検証用情報を読み込んでRAM43に展開し、セキュアプログラムの実行状態を示すフラグ1をONする。ここでは、展開結果が正しい場合をONとして展開結果を反映する。そして、セキュアプログラムXは、ブートローダの実行のために検証用情報を用いてブートローダを検証するとともにフラグ1を確認し、検証結果が正しく、かつフラグ1がONで展開結果が正しい場合はこのブートローダに処理を移して実行させる。
【0048】
図8は第4の実施形態における情報処理装置の起動時の動作手順を示すフローチャートである。情報処理装置の起動処理としてのブート時において、電源ONしてリセットした後、ブートROM45は、自身で持っているIPLをCPU46で実行させてブート処理を開始し、外部からの入力信号の指示に基づき、使用する不揮発メモリを選択する。図7の例では、不揮発メモリX42を搭載して使用する構成であり、この場合は不揮発メモリX42を選択する(ステップS41)。そして、ブートROM45は、自身で持っている不揮発メモリA用デバイスドライバを用いて不揮発メモリA41にアクセスし、不揮発メモリA41から不揮発メモリX用デバイスドライバを含むセキュアプログラムXを読み込んでセキュアモード展開する(ステップS42)。
【0049】
次に、セキュアプログラムX(SPX)は、不揮発メモリX用デバイスドライバをRAM43に展開し、この不揮発メモリX用デバイスドライバを用いて不揮発メモリX42にアクセスし、不揮発メモリX42からブートローダと検証用情報とを読み込んでRAM43に展開し、フラグ保持部47のフラグ1をONする(ステップS43)。そして、セキュアプログラムXは、検証用情報を用いてブートローダを検証し、検証結果が正しく、かつフラグ1=ONの場合はプログラムカウンタをブートローダに設定し、このブートローダを実行させる(ステップS44)。このブートローダのプログラムによって以降のブート処理が行われる。
【0050】
この第4の実施形態では、第3の実施形態と同様、セキュアモードを用いることによって、デバイスドライバの利用(ロード)やブートローダの実行の際に、RAMへの展開から実行までの間においてさらに高度なセキュリティを確保できる。第4の実施形態の構成及び動作では、ブートROMに処理が一旦戻らないため、安全性をより高めることができる。
【0051】
以下に、上述した本実施形態の変形例を示す。第1変形例として、情報処理装置におけるデバイスドライバの読み込みモードを切り替え可能な構成とすることもできる。デバイスドライバ読み込みモードとしては、以下の3つのモードが考えられる。ここでは、ブート時にアクセスするデバイスとして不揮発メモリを用いることとする。
(モード1)ブートROMに内蔵された不揮発メモリデバイスドライバを利用する第1のモード
(モード2)ブートROMに内蔵された不揮発メモリ小用デバイスドライバを利用して、不揮発メモリ大用デバイスドライバを読み込む第2のモード
(モード3)ブートROMに内蔵された不揮発メモリ小用デバイスドライバを利用して、暗号化不揮発メモリ大用デバイスドライバを読み込む第3のモード
【0052】
モード1は、不揮発メモリとして大容量のメモリを一つ使用する場合である。モード2は、不揮発メモリとして小容量のメモリ一つ、大容量のメモリ一つの合計二つ使用する場合であり、大容量の不揮発メモリについてはセキュリティ無しとしたものである。モード3は、不揮発メモリとして小容量のメモリ一つ、大容量のメモリ一つの合計二つ使用する場合であり、大容量の不揮発メモリについてはデバイスドライバを暗号化してセキュリティ有りとしたものである。このモード3が上記実施形態に相当する。複数のモードの切り替え設定は、回路パターンの切断など変更困難な方法によって行うものとする。
【0053】
第2変形例として、不揮発メモリ等のデバイスを自動で切り替え可能な構成とすることもできる。上記の実施形態では、使用するデバイスの決定方法として、入力信号によって不揮発メモリXを選択する例を示したが、他の方法によって自動的に切り替える例を以下に示す。ここでは、ブート時にアクセスするデバイスとして、小容量の不揮発メモリA(第1のメモリ)と大容量の不揮発メモリB(第2のメモリ)とを用いることとする。
【0054】
この場合、第1のメモリとなる小容量の不揮発メモリA用のデバイスドライバはブートROMに内蔵しておく。まず、ブートROMのデバイスドライバを用いて小容量の不揮発メモリAにアクセスし、この不揮発メモリAから暗号化デバイスドライバを順次読み出す。そして、読み出した暗号化デバイスドライバを用いて、第2のメモリとなる大容量の不揮発メモリBにアクセスし、この不揮発メモリBの読み出しを行う。この際、セキュリティ上、暗号化デバイスドライバの検証と復号に失敗した場合は、リセットもしくは次の暗号化デバイスドライバへトライする。大容量の不揮発メモリBの読み出しが成功した場合は、成功したデバイスドライバ種別を示すデバイス情報を不揮発メモリAに記憶し、次回の起動からはこのデバイス情報を参照して読み出しに成功したデバイスドライバを利用する。この際、セキュリティ上、デバイスドライバ種別を示すデバイス情報は暗号化して不揮発メモリAに記憶する。このような構成によって、デバイスドライバを順次読み出して適合するものを使用することで、外部入力信号等を用いることなく、起動時に使用するデバイスに合わせてデバイスドライバを自動的に切り替えて対応可能にでき、ブートを行うことができる。
【0055】
なお、上述した実施形態では、使用するデバイスやデバイスドライバはメモリデバイスに特化した例を説明したが、これに限るものではなく、様々なデバイスに同様に適用して使用することが可能である。
【0056】
ブートローダを格納しブート時に読み出すデバイスとしては、記憶デバイスの場合、NAND型やNOR型などの半導体メモリ以外に、SD(登録商標)カード等のメモリカード、ハードディスクドライブ(HDD)、DVD−ROMなど、各種記憶デバイスを用いて記憶されたブートローダの読み出しを行う場合も想定する。通信デバイスとしては、USB(Universal Serial Bus)、IEEE1394、WiFi(IEEE802.11b/g等)など、各種通信手段を用いて伝送されるブートローダを読み込むことも想定する。
【0057】
また、ブートローダの読み出しと並行して、初期化したいデバイスのデバイスドライバを同様に暗号化して第1のデバイス(第1のメモリ)として用いる不揮発メモリAに格納しておき、ブートローダ読み出しと合わせて他のデバイスのデバイス初期化を行うことも可能である。このような構成にした場合、GPS(Global Positioning System)、FeliCa(登録商標)、ワンセグチューナなど、電子機器に搭載する各種機能を実現する他のデバイスとなる回路のチップメーカを容易に変更可能となる。
【0058】
なお、本発明は上記の実施形態において示されたものに限定されるものではなく、明細書の記載、並びに周知の技術に基づいて、当業者が変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。
【産業上の利用可能性】
【0059】
本発明は、起動処理においてセキュリティを確保した状態で各種デバイスに対応可能にでき、ブートROMの内容確定後にデバイスを任意に変更可能にすることができるという効果を有し、各種処理を行うプロセッサを備えた情報処理装置、及びこの情報処理装置を搭載した電子機器等として有用である。
【図面の簡単な説明】
【0060】
【図1】本発明の第1の実施形態に係る情報処理装置の主要部の構成を示すブロック図
【図2】第1の実施形態における情報処理装置の起動時の動作手順を示すフローチャート
【図3】本発明の第2の実施形態に係る情報処理装置の主要部の構成を示すブロック図
【図4】第2の実施形態における情報処理装置の起動時の動作手順を示すフローチャート
【図5】本発明の第3の実施形態に係る情報処理装置の主要部の構成を示すブロック図
【図6】第3の実施形態における情報処理装置の起動時の動作手順を示すフローチャート
【図7】本発明の第4の実施形態に係る情報処理装置の主要部の構成を示すブロック図
【図8】第4の実施形態における情報処理装置の起動時の動作手順を示すフローチャート
【符号の説明】
【0061】
11、21、31、41 不揮発メモリA
12、22、32、42 不揮発メモリX
13、23、33、43 RAM
14、24、34、44 半導体チップ(SoC)
15、25、35、45 ブートROM
16、26、36、46 CPU
27、37、47 フラグ保持部

【特許請求の範囲】
【請求項1】
起動時にアクセスする第1のデバイス及び第2のデバイスと、
前記第1のデバイスにアクセスするための第1のデバイスドライバを含む起動用情報を格納したブートROMと、
起動時に動作するブート対象プログラムを展開するRAMと、
処理を実行するプロセッサとを備え、
前記第1のデバイスは、前記第2のデバイスにアクセスするための暗号化された第2のデバイスドライバを含む暗号化情報を有しており、
前記第2のデバイスは、前記ブート対象プログラムを含む起動プログラム情報を有しており、
前記ブートROMの起動用情報を用いて、前記第1のデバイスにアクセスして前記第2のデバイスドライバを含む暗号化情報を取得し、復号する機能と、
前記復号して得られた前記第2のデバイスドライバを含む復号情報を用いて、前記第2のデバイスにアクセスして前記ブート対象プログラムを含む起動プログラム情報を取得し、前記ブート対象プログラムを前記RAMに展開する機能と、
前記ブート対象プログラムの検証または復号を行い、処理結果に問題がない場合は前記ブート対象プログラムを実行する機能と、
を有する情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記第2のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、
前記プロセッサが、前記ブートROMの起動用情報を用いて、前記第1のデバイスから取得した前記第2のデバイスドライバを復号して前記RAMに展開する機能と、前記第2のデバイスドライバを用いて前記第2のデバイスから前記ブートローダ及び前記検証用情報を取得して前記RAMに展開する機能と、前記検証用情報を用いて前記ブートローダを検証して検証結果に問題がない場合はこのブートローダを実行する機能とを有する情報処理装置。
【請求項3】
請求項1に記載の情報処理装置であって、
前記第2のデバイスドライバの検証結果を示す第1のフラグと、前記ブート対象プログラムの検証結果を示す第2のフラグとを含むフラグ情報を保持するフラグ保持部を備え、
前記第2のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、
前記プロセッサが、前記ブートROMの起動用情報を用いて、前記第1のデバイスから取得した前記第2のデバイスドライバを復号及び検証して検証結果に問題がない場合は、前記第2のデバイスドライバを前記RAMに展開し前記第1のフラグに結果を反映する機能と、前記第1のフラグを確認して検証結果が正しい場合は前記第2のデバイスドライバを用いて前記第2のデバイスから前記ブートローダ及び前記検証用情報を取得する機能と、前記検証用情報を用いて前記ブートローダを検証して検証結果に問題がない場合は前記ブートローダを前記RAMに展開し前記第2のフラグに結果を反映する機能と、前記第2のフラグを確認して検証結果が正しい場合は前記ブートローダを実行する機能とを有する情報処理装置。
【請求項4】
請求項1に記載の情報処理装置であって、
前記プロセッサは、通常実行モードとは別に、セキュリティを確保した特権的な実行モードであるセキュアモードを有し、
前記第1のデバイスは、前記暗号化情報として、前記セキュアモードで動作する暗号化プログラムであるセキュアプログラムを有し、このセキュアプログラムは前記第2のデバイスドライバを含むものであり、
前記第2のデバイスは、前記起動プログラム情報として、前記セキュアモードで動作するセキュアプログラムによるセキュアブートローダを有し、このセキュアブートローダは前記ブート対象プログラムであるブートローダを含むものであり、
前記セキュアプログラムの実行状態を示すフラグを含むフラグ情報を保持するフラグ保持部を備え、
前記プロセッサが、前記ブートROMの起動用情報を用いて、前記第1のデバイスから取得した前記セキュアプログラムを展開する機能と、前記セキュアプログラムによって前記第2のデバイスドライバを前記RAMに展開し前記フラグへ展開結果を反映する機能と、前記第2のデバイスドライバを用いて前記第2のデバイスから前記セキュアブートローダを取得し展開する機能と、前記セキュアブートローダによって前記フラグを確認して展開結果が正しい場合は前記ブートローダを前記RAMに展開し、このブートローダを実行させる機能とを有する情報処理装置。
【請求項5】
請求項1に記載の情報処理装置であって、
前記プロセッサは、通常実行モードとは別に、セキュリティを確保した特権的な実行モードであるセキュアモードを有し、
前記第1のデバイスは、前記暗号化情報として、前記セキュアモードで動作する暗号化プログラムであるセキュアプログラムを有し、このセキュアプログラムは前記第2のデバイスドライバを含むものであり、
前記第2のデバイスは、前記起動プログラム情報として、前記ブート対象プログラムであるブートローダとこのブートローダの検証用情報とを有しており、
前記セキュアプログラムの実行状態を示すフラグを含むフラグ情報を保持するフラグ保持部を備え、
前記プロセッサが、前記ブートROMの起動用情報を用いて、前記第1のデバイスから取得した前記セキュアプログラムを展開する機能と、前記セキュアプログラムによって、前記第2のデバイスドライバを取得し、この第2のデバイスドライバを用いて前記第2のデバイスから前記ブートローダ及び前記検証用情報を取得し、これらのブートローダ及び検証用情報を前記RAMに展開し前記フラグへ展開結果を反映する機能と、前記検証用情報を用いて前記ブートローダを検証し、検証結果が正しく、かつ前記フラグを確認して展開結果が正しい場合は前記ブートローダを実行させる機能とを有する情報処理装置。
【請求項6】
請求項1に記載の情報処理装置であって、
前記デバイスドライバの読み込みモードとして複数のモードを有し、
前記第1のデバイスのみを使用し、前記ブートROMにある第1のデバイスドライバを用いて前記第1のデバイスにアクセスする第1のモードと、
前記第1のデバイス及び前記第2のデバイスを使用し、前記ブートROMにある第1のデバイスドライバを用いて前記第1のデバイスにアクセスしてこの第1のデバイスにある第2のデバイスドライバを取得し、この第2のデバイスドライバを用いて前記第2のデバイスにアクセスする第2のモードと、
前記第1のデバイス及び前記第2のデバイスを使用し、前記ブートROMにある第1のデバイスドライバを用いて前記第1のデバイスにアクセスしてこの第1のデバイスにある暗号化された第2のデバイスドライバを取得、復号し、この第2のデバイスドライバを用いて前記第2のデバイスにアクセスする第3のモードと、のうち、
前記第3のモードを少なくとも含む複数のモードのいずれかに切り替え設定可能である情報処理装置。
【請求項7】
請求項1に記載の情報処理装置であって、
前記第1のデバイスは、前記第2のデバイスにアクセスするための第2のデバイスドライバとして、各デバイスにそれぞれ対応する複数のデバイスドライバを有しており、
前記複数のデバイスドライバを順次取得し、前記第2のデバイスにアクセスして前記第2のデバイスからの情報取得が成功した場合に、使用する第2のデバイスのデバイス情報を保持する機能を有する情報処理装置。
【請求項8】
請求項1に記載の情報処理装置であって、
前記第1のデバイスは、前記暗号化情報として、前記第2のデバイスドライバとともに他の初期化を行うデバイスのデバイスドライバを有しており、
前記第2のデバイスにアクセスして前記ブート対象プログラムを取得する処理と並行して、前記他のデバイスの初期化を行う機能を有する情報処理装置。
【請求項9】
請求項1から8のいずれかに記載の情報処理装置であって、
前記第1のデバイスと前記第2のデバイスには、それぞれ、起動に関する情報を記憶する記憶デバイス、起動に関する情報を伝送する通信デバイスのうちの少なくとも一つを使用する情報処理装置。
【請求項10】
請求項1から9のいずれかに記載の情報処理装置を備える電子機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate