JP2020155029A - 情報処理装置とその制御方法、及びプログラム - Google Patents
情報処理装置とその制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2020155029A JP2020155029A JP2019055198A JP2019055198A JP2020155029A JP 2020155029 A JP2020155029 A JP 2020155029A JP 2019055198 A JP2019055198 A JP 2019055198A JP 2019055198 A JP2019055198 A JP 2019055198A JP 2020155029 A JP2020155029 A JP 2020155029A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- program
- setting
- information processing
- boot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】改ざん検証プログラムを実行する際、その検証には多くの時間を要するため、情報処理装置の起動時間が長くなる。改ざんの有無の検証を実施するかしないかを設定可能にすることで、ユーザの希望に応じて速やかに起動する技術を提供する。【解決手段】情報処理装置は、セキュアブートを実行して起動するか、セキュアブートを実行せずに起動するか設定することができる。セキュアブートを実行して起動するか、或いはセキュアブートを実行せずに起動するか、のいずれかを設定されると、その設定に応じて、セキュアブートを実行して起動するか、或いはセキュアブートを実行せずに起動する。【選択図】図4
Description
本発明は、情報処理装置とその制御方法、及びプログラムに関するものである。
ソフトウェアの脆弱性をついてソフトウェアを改ざんし、コンピュータを悪用する攻撃が問題となっている。そういった攻撃に対する対策として、情報処理装置に搭載するCPUが実行する起動プログラムの改ざんを検知する手法が知られている。例えば特許文献1では、起動プログラムを実行するCPU自身は、起動プログラムの改ざんを検知できないため、起動プログラムを実行するCPUとは異なる別のCPUによりセキュアブートを実行して、その起動プログラムの改ざんの有無を検証している。セキュアブートとは、情報処理装置の起動時に、第三者により改ざんされたファームウェアを実行しないようにする技術である。
一方、情報処理装置は、世の中の高性能化への要求に対応し、同時に複数の処理をスムーズに実行できるよう、今や複数のCPUが搭載されているのが一般的であり、CPU毎にそれぞれ異なる処理プログラムを実行させている。そのため、起動プログラムの改ざん検証の機能を情報処理装置に備える場合、情報処理装置の何れかのCPUについて、元々行っていた処理プログラムの他に、起動プログラムの改ざん検証プログラムを実行させることが考えられる。この場合、その改ざん検証プログラムを実行させるCPUは、最初は改ざん検証プログラムを実行させて、検証完了後は、別の処理プログラムを実行させるように動作プログラムを切り換えるよう制御する必要がある。
しかしながら、改ざん検証プログラムを実行する際、その検証には多くの時間を要するため、情報処理装置の起動時間が長くなる。ユーザによっては、改ざん検証よりも情報処理装置の起動時間を短縮することでの使い勝手の良さを優先する場合も考えられる。しかしながら、改ざん検知機能を仮に停止させたとしても、複数あるCPUの起動順序やプログラムによる起動のシーケンスが変更されない限り、起動時間が短縮されないという課題があった。
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。
本発明の目的は、改ざんの有無の検証を実施するかしないかを設定可能にすることで、ユーザの希望に応じて速やかに起動する技術を提供することにある。
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
セキュアブートを実行して起動する第1起動手段と、
前記セキュアブートを実行せずに起動する第2起動手段と、
前記第1起動手段或いは前記第2起動手段のいずれを実行して起動するかを設定する設定手段と、を有し、前記設定手段による設定に応じて、前記第1起動手段或いは前記第2起動手段により起動することを特徴とする。
セキュアブートを実行して起動する第1起動手段と、
前記セキュアブートを実行せずに起動する第2起動手段と、
前記第1起動手段或いは前記第2起動手段のいずれを実行して起動するかを設定する設定手段と、を有し、前記設定手段による設定に応じて、前記第1起動手段或いは前記第2起動手段により起動することを特徴とする。
本発明によれば、改ざんの有無の検証を実施するかしないかを設定可能にすることで、ユーザの希望に応じて速やかに起動できるという効果がある。
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
実施形態1に係る情報処理装置の構成を説明するブロック図。
実施形態1に係る情報処理装置において、プログラムの改ざん検知を行わずに起動するときの動作を説明するタイミングチャート。
実施形態1に係る情報処理装置において、プログラムの改ざん検知を行わずに起動するときのCPU101及びCPU108の処理を説明するフローチャート。
実施形態1に係る情報処理装置において、改ざんの有無の検証を実施するか否かを設定する処理を説明するフローチャート(A)と、図4の処理を実行する際に操作部に表示される画面例を示す図(B)。
実施形態1に係る情報処理装置において、セキュアブートを実行するときのCPU101及びCPU108の動作を説明するタイミングチャート。
実施形態1に係る情報処理装置において、セキュアブートを実行して起動するときのCPU101及びCPU108の処理を説明するフローチャート。
実施形態2に係る情報処理装置の構成を説明するブロック図。
実施形態2に係る情報処理装置において、セキュアブートを実行するときのCPU101及びCPU108の動作を説明するタイミングチャート。
実施形態2に係る情報処理装置において、セキュアブートを実行して起動するときのCPU101及びCPU108の処理を説明するフローチャート。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これら複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。更に、添付図面においては、同一もしくは同様の構成に同一の参照番号を付し、重複した説明は省略する。尚、実施形態に係る情報処理装置として複合機(デジタル複合機/MFP/Multi Function Peripheral)を例に説明する。しかしながら本発明の適用範囲は複合機に限定するものでなく情報処理装置であればよい。
図1は、実施形態1に係る情報処理装置の構成を説明するブロック図である。
この情報処理装置では、メインのCPU1(101、以下CPU101と呼ぶ)と、サブCPU2(108、以下CPU108と呼ぶ)を有するサブ制御部106とが高速シリアルインターフェス107を介して接続されている。CPU101とCPU108はともに、リセット制御部118によって各々リセットが解除される仕組みとなっている。
CPU101は、情報処理装置の全体を制御するためのCPUであり、ユーザインターフェースとして機能する操作部140、及び外部のネットワーク通信などの制御を行うことも可能である。操作部140は、タッチパネル機能を有する表示部と、ユーザにより操作されるハードキー等を有する。
不揮発メモリ102は、CPU101が起動するためのプログラムを保存しているメモリである。CPU101と不揮発メモリ102は、SPIバス103を介して接続されている。不揮発メモリ102に記憶されるプログラムは、後述する改ざん検知の対象の領域であり、この不揮発メモリ102のプログラムが改ざんされていない場合に、CPU101は正常に起動を継続することができる。RAM104は、CPU101に接続された揮発性のメモリであり、DDR105などのメモリを接続するバスを介して、更に他のメモリデバイスを接続可能である。RAM104は、CPU101が実行するプログラム、また各種の制御ソフト、またそのデータを保存するの使用される。
サブ制御部106は、画像処理、及びプリンタ、スキャナとの間で画像データを送受信し、CPU101ともデータを送受信する。CPU101とサブ制御部106は、高速シリアルバス107を介して接続されており、高速にデータの送受信を行うことができる。高速シリアルバス107には、PCIExpressなどのバスがあるが、その他にもEthernet(登録商標)などのインターフェスを用いてもよい。高速シリアルバスI/F(インタフェース)113は、高速シリアルバス107とサブ制御部106の内部バスを接続するためのインターフェス回路である。
CPU108は、サブ制御部106に内蔵された第2のCPU(サブCPU)であり、サブ制御部106の各部の制御を行う。RAM109は、サブ制御部106に接続されたメモリデバイスであり、メモリI/F110を介して、CPU108を動作させるためのプログラム、及び画像処理を行う画像データなどを記憶する。SPIインターフェース111は、CPU101に接続されている不揮発メモリ102へ、CPU108がリード、ライト動作をするために使用され、後述するCPU108が改ざん検知プログラムによって不揮発メモリ102に記憶されているデータが改ざんされていないかを検証する際に用いられる。画像処理部112は、画像処理を行うための処理回路で、RAM109に記憶されている画像データを読み出し、圧縮、または拡大、縮小などの画像処理を行った上で画像処理を施したデータを再びRAM109へ書き戻すことができる。プリンタI/F114は、情報処理装置を不図示のプリンタにインターフェース115を介して接続し、RAM109に記憶された画像処理データを出力して印刷させる。またスキャナI/F116は、不図示のスキャナにインターフェース117を介して接続し、スキャナからのデータをRAM109へ転送する。不揮発メモリ123は、CPU108が起動するためのプログラムを記憶しているメモリで、この不揮発メモリ123には、CPU108が起動した後に動作し、不揮発メモリ102の改ざん検知を行うためのプログラムも記憶されている。
リセットベクタ制御部127は、CPU108のリセットベクタの設定を行う。このリセットベクタ制御部127への設定は、サブ制御部106の内部バス経由で設定され、CPU108が不揮発メモリ123のプログラムを実行して起動するか、またRAM109に展開された別の起動プログラムから起動するかを設定することが可能である。CPU108のリセットベクタを変更する方法は、例えばCPU108のアドレスバスの上位ビットを、リセットベクタ制御部127からの信号で変更する方法などが考えられる。
OR回路124は、CPU108に対するリセット信号126を生成する回路で、後述するリセット制御部118、或いは、CPU101からのリセット信号125のどちらかがリセット状態を示した場合にCPU108をリセットする。
リセット制御部118は、CPU101又はCPU108をOR回路124を介してリセットするためのリセット信号を生成する。リセット制御部118は、フラッシュメモリ(登録商標)119、電圧監視回路120、外部からリセットを制御可能にするための外部インターフェスであるI2Cインターフェス129を内蔵している。更に、リセット信号を生成し、リセットのオン又はオフを制御するハードシーケンサ131を内蔵している。フラッシュメモリ119は、I2Cインターフェース129を介して、CPU101からリード、ライト可能であり、内部の改ざん検知を実施するか否かを保持する不揮発性領域を有している。この不揮発性領域をハードシーケンサ131もリードすることが可能であり、改ざん検知の実施を示す情報に従って、CPU101のリセット信号128を先にリセット解除するか、CPU108に対するリセット信号121を用いてCPU108のリセットを解除するかを制御することが可能である。電圧監視回路120は、情報処理装置内部の電源VCCを監視する。電源電圧が所定の閾値よりも高いことを検出した場合は、ハードシーケンサ131に対して電圧レベルが確定したことを通知する。これを検出したハードシーケンサ131は、所定の時間が経過した後、CPU101又はCPU108へのリセットを解除する。I2Cインターフェース129は、フラッシュメモリ119へのリード、ライトだけでなく、ハードシーケンサ131へのライト動作も可能であり、CPU101からの書き込み指示により、ハードシーケンサ131は、CPU108の状態を再びリセット状態にできる。
図2は、実施形態1に係る情報処理装置において、セキュアブートを実行せずに起動するときの動作を説明するタイミングチャートである。
情報処理装置内部の電源電圧VCCが、予め定められている閾値よりも高くなると、リセット制御部118のハードシーケンサ131は、フラッシュメモリ119に設定されている情報を読み取り(T1:ブートモードリード)、その情報を基に、プログラムの改ざん検知を行うか否か判定する。ここで改ざん検知を行わない設定が記憶されている場合、タイミングT2で、ハードシーケンサ131はCPU101へのリセットを解除し、CPU101はタイミングT3で、不揮発メモリ102に記憶されている起動プログラムをリードすることによって動作を開始する。
次にCPU101はタイミングT4で、CPU108を動作させるための起動プログラムも不揮発メモリ102から読み出し、高速シリアルバス107を介して、サブ制御部106に接続されたRAM109に、そのプログラムを書き込む。そしてCPU108の起動プログラムをRAM109へ書き込んだ後、タイミングT5で、リセットベクタ制御部127に対して高速シリアルインターフェース107を介して設定を行い、CPU108がRAM109から起動できるように変更を行う。そしてタイミングT6で、CPU101がリセット制御部118に対してI2Cインターフェース129を介してCPU108のリセットを解除するように設定する。こうしてタイミングT7で、CPU108のリセットを解除することで、CPU108がRAM109のプログラムを実行して起動することができる。
図3は、実施形態1に係る情報処理装置において、セキュアブートを実行せずに起動するときのCPU101及びCPU108の処理を説明するフローチャートである。
CPU101は、情報処理装置の電源電圧VCCが閾値より高くなることにより、リセット制御部118からのリセット信号が解除されて起動する。まずS301でCPU101は、不揮発メモリ102のプログラムを実行して起動を開始する。このときCPU101は、不揮発メモリ102の動作プログラムに従って各部の初期化などを行う。そしてS302に進みCPU101は、不揮発メモリ102からCPU108を起動するためのブートコードを読み出し、そのブートコードをRAM109に書き込む。次にS303に進みCPU101は、リセットベクタ制御部127に対して設定を行い、CPU108がRAM109のブートプログラムを実行してブートできるように設定を変更する。そしてS304に進みCPU101は、リセット制御部118のI2CI/F129を介してハードシーケンサ131へ書き込みを行うことで、CPU108へのリセット信号121をリセット状態にしてCPU108をリセット状態する。そして所定の時間の経過を待ってS305に進み、リセット信号121をオフ、即ち、CPU108のリセット解除状態にする。これによりCPU108により処理が開始され、S306でCPU108は、リセットベクタ制御部127の設定に従って、RAM109に記憶されているブートプログラムを実行して起動する。これにより、情報処理装置としての起動が完了する。
以上説明したように、改ざん検知を実施しない場合は、CPU101が直ちに起動を開始できるように、CPU108のリセット信号を制御して起動時間を高速化することが可能となる。
図4(A)は、実施形態1に係る情報処理装置において、改ざんの有無の検証を実施するか否かを設定する処理を説明するフローチャートである。
CPU101は、操作部140からの指示に従って、情報処理装置の起動時に、プログラムの改ざん検知を行うかどうかを設定することができる。CPU101は、操作部140を介してユーザからこの指示を受け付けるとS401に進み、I2Cバス128を経由してリセット制御部118のI2CI/F129を経由してフラッシュメモリ119に設定値を書き込む。即ち、フラッシュメモリ119に改ざん検知を実施するか否かの設定値を書き込む。次にS402に進みCPU101は、フラッシュメモリ119に書き込んだ設定値に従って、改ざん検知の実施の有無を反映した状態でリブート処理を実行して、情報処理装置を起動することができる。
図4(B)は、図4の処理を実行する際に操作部140に表示される画面例を示す図である。
この画面は、実施形態1に係る情報処理装置の起動時の設定を、ユーザに設定させるための画面例を示す。ここでは、プログラムの改ざんの有無を検証せずにを起動するように設定するかどうかの質問と、プログラムの改ざんの有無を検証せずにを起動する場合の利点と問題点が表示されている。ここでユーザがはいボタン410を選択すると、CPU101は、フラッシュメモリ119に改ざん検知を実施しない設定を書き込み、いいえボタン411を選択すると、CPU101は、フラッシュメモリ119に改ざん検知を実施する設定を書き込む。
図5は、実施形態1に係る情報処理装置において、セキュアブートを実行するときのCPU101及びCPU108の動作を説明するタイミングチャートである。
情報処理装置内部の電源電圧VCCが予め定められている閾値よりも高くなるとタイミングT1で、リセット制御部118内部のハードシーケンサ131は、フラッシュメモリ119に設定されている前述の設定情報を読み取り、改ざん検知を行うか否かをブートモードとしてリードする。ここで改ざん検知を行う設定が記憶されている場合は、ハードシーケンサ131は、まずタイミングT2でCPU108のリセットを解除し、CPU108は不揮発メモリ123のプログラムを実行して起動する。この不揮発メモリ123には、CPU108により実行される改ざん検知のためのプログラムが保存されており、このプログラムに従ってCPU108は不揮発メモリ102のプログラムをSPIインターフェース111を介して読み出し、不揮発メモリ102に記憶されている起動用プログラムの改ざんの有無を検証する。このときCPU108は、まず始めに、不揮発メモリ102に格納されている暗号化されている署名データをリードしてRAM109へ格納する。次に、不揮発メモリ123に格納されている公開鍵を使用して、そのRAM109に記憶した暗号化された署名データをデコードする。そして、デコードした署名データと、不揮発メモリ123に予め格納されている署名データとを比較することにより、起動用プログラムが改ざんされているか否かを検証する。
ここで改ざんが検知されなかったと確認した場合はCPU101を起動してもよいと判定し、タイミングT3で、CPU101へのリセット信号を解除する。一方、改ざんが検知された場合は、ここで動作を停止する。
こうしてCPU101のリセットが解除されるとCPU101はタイミングT4で、不揮発メモリ102から起動プログラムをリードすることによって動作を開始する。CPU101は次にタイミングT5で、CPU108を動作させるための起動プログラムも不揮発メモリ102から読み出し、高速シリアルインターフェースのバス107を介して、サブ制御部106に接続されたRAM109へ書き込む。こうしてCPU108の起動プログラムをRAM109へ書き込んだ後タイミングT6で、リセットベクタ制御部127に対して高速シリアルインターフェース107を介して設定を行い、CPU108がRAM109から起動できるように変更を行う。更にタイミングT7で、CPU101がリセット制御部118に対してI2Cインターフェース129を介して設定することにより、CPU108のリセットを解除することで、タイミングT8で、CPU108がRAM109のプログラム実行して起動する。
図6は、実施形態1に係る情報処理装置において、セキュアブートを実行して起動するときのCPU101及びCPU108の処理を説明するフローチャートである。
情報処理装置の電源がオンされた後、ハードシーケンサ131はCPU108から起動させるため、リセット信号121を制御してCPU108のリセットを解除する。これによりCPU108の動作が開始される。まずS601でCPU108は不揮発メモリ123のプログラム実行して起動する。前記したように不揮発メモリ123には改ざん検知のプログラムが格納されており、CPU108はS602で、この不揮発メモリ123に記憶されている改ざん検知プログラムに従って、CPU101の起動プログラムが格納されている不揮発メモリ102の改ざんの有無の検証を行う。次にS603に進みCPU108は、改ざんが検出された場合は、そこで処理を終了し、情報処理装置は安全に起動することができないと判定して動作を停止する。
一方、起動プログラムの改ざんがないと判定した場合はS604に進み、CPU101のリセットを解除する。そしてCPU108は、改ざん検知の動作としては一旦動作を停止して待機する。CPU101に対するリセットの解除は、I2Cインターフェース130を介して、リセット制御部118のI2Cのインターフェース129経由でハードシーケンサ131に通知され、ハードシーケンサ131からCPU101へのリセット信号が解除される。この後のCPU101の処理は、前述の図3のS301〜S305と同じである。
CPU101は、CPU108によってリセットが解除されるとS301で、不揮発メモリ102の起動プログラムを実行して起動を開始する。次にS6302に進みCPU101は、不揮発メモリ102からCPU108を起動するためのブートコードを読み出し、そのブートコードをRAM109に書き込む。次にS303に進みCPU101は、リセットベクタ制御部127に対して設定を行い、CPU108がRAM109のプログラムを実行してブートできるように設定を変更する。次にS304に進みCPU101は、CPU108に対してリセット制御部118のI2CI/F129を介してハードシーケンサ131へ書き込みを行うことで、CPU108へのリセット信号121を304へリセット状態にしてCPU108をリセットする。そして所定の時間の経過を待ってS305に進み、リセット信号121をリセット解除状態、即ちオフにする。これによりS306でCPU108は、リセット状態を解除され、RAM109のプログラムを実行して起動する。これにより、情報処理装置として起動することが可能となる。
以上説明したように実施形態1によれば、改ざん検知を実施した場合、CPU108がCPU101の起動プログラムの改ざんの有無を検証した後、CPU101を起動することにより、安全に情報処理装置を起動することができる。
このように起動プログラムの改ざんの有無を検証を行う場合、確実かつ安全に装置を起動することができる。また起動プログラムの改ざんの有無を検証する際、起動するCPUの順番を変更することで起動時間を短縮することができる。
[実施形態2]
上述の実施形態1では、起動プログラムの改ざんの有無を検証するか否かで、起動するCPUの順序を変更する例で説明した。またこの時、起動プログラムの改ざんの有無を検証するプログラムを実装したCPU108に対して、CPU101が新しい起動プログラムをRAMに書き込み、リセットベクタを変更した後、CPU108に対してリセット、リセット解除を行って、そのプログラムをCPU108で実行する例で説明した。
上述の実施形態1では、起動プログラムの改ざんの有無を検証するか否かで、起動するCPUの順序を変更する例で説明した。またこの時、起動プログラムの改ざんの有無を検証するプログラムを実装したCPU108に対して、CPU101が新しい起動プログラムをRAMに書き込み、リセットベクタを変更した後、CPU108に対してリセット、リセット解除を行って、そのプログラムをCPU108で実行する例で説明した。
しかし、CPU108が起動プログラムの改ざんの有無を検証した後、CPU108をリセットをせずに、別のプログラムを実行するようにしても良い。よって、本発明の実施形態2では、CPU108を再びリセットせずに別の処理プログラムを実行する例で説明する。尚、実施形態2に係る情報処理装置のハードウェア構成において、前述の実施形態1と共通する部分は同じ参照番号で示し、それらの説明を省略する。
図7は、実施形態2に係る情報処理装置の構成を説明するブロック図である。図1の構成との相違点は、割り込みコントローラ701を設けた点である。
割り込みコントローラ701はサブ制御部106に内蔵され、内蔵のバスに接続されている。CPU108は、バスを介して割り込みコントローラ701の内部レジスタに値を設定することにより、割り込みコントローラ701からCPU108に対して割り込みを通知するように設定できる。またCPU108からバスを介して、割り込みコントローラ701の別のレジスタに書き込みを行うことによって、割り込みのマスク、または割り込みをクリアすることができる。
図8は、実施形態2に係る情報処理装置において、セキュアブートを実行するときのCPU101及びCPU108の動作を説明するタイミングチャートである。
情報処理装置内部の電源電圧VCCが予め定められている閾値よりも高くなった場合、リセット制御部118のハードシーケンサ131は、タイミングT1でフラッシュメモリ119の情報を読み取り、改ざんの有無の検証を行うか否かをBootModeとしてリードする。そしてタイミングT2で、CPU108のリセットが解除されるとCPU108が、不揮発メモリ102に記憶されている起動プログラムの改ざんの有無を検証する。その後、タイミングT3〜T5で、CPU101のリセットを解除するまでの動作は、前述の実施形態1の図5と同じである。
CPU108はタイミングT3でCPU101のリセットを解除した後、不揮発メモリ123のプログラムに従って、割り込みコントローラ701から割り込みを受信するまでタイミングT7で待機状態に移行している。
一方、リセットが解除されたCPU101はタイミングT4で、不揮発メモリ102から起動プログラムを読み出して実行する。そして次にタイミングT5で、CPU108を動作させるための起動プログラムも不揮発メモリ102から読み出し、高速シリアルインターフェースのバス107を介して、サブ制御部106に接続されたRAM109へ書き込む。続いてCPU101はタイミングT6で、高速シリアルインターフェース107を介して、サブ制御部106に内蔵された割り込みコントローラ701へ書き込み動作を行うことによりCPU108に対して割り込み通知を行う。
この割り込み通知を受信したCPU108は、不揮発メモリ123に予め記憶されている、割り込み受信後に読み出すプログラム(別のプログラム)の先頭番地を参照し、CPU101がRAM109へ書き込んだプログラム(別のプログラム)を読み出して実行する。これにより、そのプログラムに従った動作を実行することが可能になる。
図9は、実施形態2に係る情報処理装置において、セキュアブートを実行して起動するときのCPU101及びCPU108の処理を説明するフローチャートである。尚、前述の実施形態1の図3及び図6と共通する処理は、同じ参照番号を付して、その説明を省略する。
情報処理装置の電源がオンされた後、CPU108がS601から603の処理で不揮発メモリ102の改ざんの有無を検証した後、CPU101のリセットを解除するまでの動作は実施形態1と同じである。
リセットが解除されたCPU101が不揮発メモリ102のプログラム実行して起動し、CPU108が実行する別プログラムをRAM109に書き込む処理も、実施形態1のS301〜S302と同じである。次にCPU101はS901で、高速シリアルインターフェース107を介して割り込みコントローラ701へ書き込みを行い、CPU108に対して割り込みを発生させる。
この割り込みを受信したCPU108はS902で、待機状態から復帰し、CPU101がRAM109に書き込んでおいたプログラムの先頭番地を参照し、そのプログラムを実行するように動作する。
以上説明したように実施形態2によれば、CPU108がプログラムの改ざんの有無を検証した後、待機状態に移行し、CPU101からの割込みにより、CPU101がメモリにロードしたプログラムを実行することができる。これにより、CPUのリセット制御を行うための回路構成を簡略することが可能になる。
[実施形態3]
上述した起動プログラムの改ざんの有無を検証する処理は、図4を参照して説明したように、ユーザは、その処理を実行するか否か設定できる。この処理を実行しないように設定すると、情報処理装置の起動は早くなるが、ユーザがその処理が実行さないように設定したままにすると、万が一プログラムが改竄された場合は装置が起動できず、また他の不具合の発生も予想される。
上述した起動プログラムの改ざんの有無を検証する処理は、図4を参照して説明したように、ユーザは、その処理を実行するか否か設定できる。この処理を実行しないように設定すると、情報処理装置の起動は早くなるが、ユーザがその処理が実行さないように設定したままにすると、万が一プログラムが改竄された場合は装置が起動できず、また他の不具合の発生も予想される。
そこで、プログラムの改ざんの有無を検証する処理を実行しないように設定されている場合は、操作部140の表示部の隅に警告マークを表示して、プログラムの改ざんの有無を検証する処理が実行されない設定であることをユーザに通知するようにしても良い。
プログラムの改ざんの有無を検証する処理を実行しない設定で、連続して起動された回数を計数し、その計数値が所定値以上になったときは、ユーザに警告するようにしても良い。尚、この場合の係数値は、フラッシュメモリ119にカウンタを設け、そのカウンタを、プログラムの改ざんの有無を検証する処理を実行しない設定で起動される度に+1する。そして、プログラムの改ざんの有無を検証する処理を実行する設定で起動されると、そのカウンタをクリアすることで実現できる。
また或いは、その計数値が所定値以上になったときは、自動的に、プログラムの改ざんの有無を検証する処理を実行するように、フラッシュメモリ119の設定を変更してもよい。
また或いは、タイマを設け、プログラムの改ざんの有無を検証する処理を実行しないように設定されている連続経過時間をタイマにより計時し、その経過時間が所定時間を超えると、ユーザに警告するようにしても良い。
また或いは、その経過時間が所定時間を超えたときは、自動的に、プログラムの改ざんの有無を検証する処理を実行するように、フラッシュメモリ119の設定を変更してもよい。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から逸脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
101…CPU1、102…不揮発メモリ、108…CPU2、109…RAM、118…リセット制御部、119…フラッシュメモリ、123…不揮発メモリ、131…ハードシーケンサ、127…リセットベクタ制御部、701…割込みコントローラ
Claims (11)
- セキュアブートを実行して起動する第1起動手段と、
前記セキュアブートを実行せずに起動する第2起動手段と、
前記第1起動手段或いは前記第2起動手段のいずれを実行して起動するかを設定する設定手段と、を有し、
前記設定手段による設定に応じて、前記第1起動手段或いは前記第2起動手段により起動することを特徴とする情報処理装置。 - 前記設定手段による設定が、前記第2起動手段により起動する設定がなされている経過時間を計時する計時手段と、
前記計時手段による経過時間が所定時間を超えるとユーザに警告する警告手段と、を更に有することを特徴とする請求項1に記載の情報処理装置。 - 前記計時手段による経過時間が前記所定時間を超えると、前記設定手段により設定された前記設定を、前記第1起動手段により起動する設定に変更する変更手段を、更に有することを特徴とする請求項2に記載の情報処理装置。
- 前記設定手段による設定が、前記第2起動手段により起動する設定の状態で起動された回数を計数する計数手段と、
前記計数手段により計数された回数が所定値を超えるとユーザに警告する警告手段と、を更に有することを特徴とする請求項1に記載の情報処理装置。 - 前記計数手段により計数された回数が前記所定値を超えると、前記設定手段により設定された前記設定を、前記第1起動手段をにより起動する設定に変更する変更手段を、更に有することを特徴とする請求項4に記載の情報処理装置。
- 第1CPUと、
前記第1CPUが実行する第1プログラムを記憶する記憶手段と、
前記記憶手段に記憶された前記第1プログラムの改ざんの有無を検証する第2CPUと、を更に有し、
前記第2起動手段による起動時、前記第1CPUは前記第2CPUが実行する第2プログラムを前記第2CPUが実行するプログラムを記憶するメモリに展開した後、前記第2CPUのリセットを解除して前記第2CPUにより前記第2プログラムを実行させることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。 - 前記第1起動手段による起動時、前記第2CPUは前記記憶手段に記憶された前記第1プログラムの改ざんの有無を検証し、前記第1プログラムが改ざんされていないことを確認した後、前記第1CPUのリセットを解除し、前記第1CPUが前記第2CPUが実行する前記第2プログラムを前記メモリに展開した後、前記第2CPUにより前記第2プログラムを実行させることを特徴とする請求項6に記載の情報処理装置。
- 前記第2CPUに割り込みを発生させる割り込み手段を、更に有し、
前記第1起動手段による起動時、前記第1CPUが前記第2CPUが実行する第3プログラムを前記メモリに展開した後、前記第1CPUは前記割り込み手段により前記第2CPUに割り込みを発生させ、前記第2CPUは、当該割り込みに応じて前記第3プログラムを実行することを特徴とする請求項6に記載の情報処理装置。 - 前記第1及び第2プログラムは、起動プログラムであることを特徴とする請求項6又は7に記載の情報処理装置。
- 情報処理装置を制御する制御方法であって、
セキュアブートを実行して起動する第1起動工程と、
前記セキュアブートを実行せずに起動する第2起動工程と、
前記第1起動工程或いは前記第2起動工程のいずれを実行して起動するかを設定する設定工程と、を有し、
前記設定工程による設定に応じて、前記第1起動工程或いは前記第2起動工程により起動することを特徴とする制御方法。 - コンピュータを、請求項1乃至9のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019055198A JP2020155029A (ja) | 2019-03-22 | 2019-03-22 | 情報処理装置とその制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019055198A JP2020155029A (ja) | 2019-03-22 | 2019-03-22 | 情報処理装置とその制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020155029A true JP2020155029A (ja) | 2020-09-24 |
Family
ID=72559410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019055198A Pending JP2020155029A (ja) | 2019-03-22 | 2019-03-22 | 情報処理装置とその制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020155029A (ja) |
-
2019
- 2019-03-22 JP JP2019055198A patent/JP2020155029A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11657125B2 (en) | Information processing apparatus and reset control method | |
KR102481686B1 (ko) | 화상 처리 장치, 그 제어 방법 및 저장 매체 | |
JP7059127B2 (ja) | 起動時に実行されるソフトウェアの改ざんを検知する情報処理装置及びその制御方法 | |
JP7009270B2 (ja) | 情報処理装置及びプログラムの検証方法 | |
US20210011660A1 (en) | Information processing apparatus and control method | |
CN113190879A (zh) | 信息处理装置及其启动方法 | |
JP7152920B2 (ja) | 情報処理装置とその制御方法、及びプログラム | |
JP7321795B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2020155029A (ja) | 情報処理装置とその制御方法、及びプログラム | |
JP7210238B2 (ja) | 情報処理装置、情報処理装置の制御方法、及び、プログラム | |
JP2015215684A (ja) | 情報処理装置及び情報処理プログラム | |
JP7289641B2 (ja) | 情報処理装置、およびその制御方法 | |
KR102467636B1 (ko) | 정보 처리장치, 정보 처리장치의 제어방법, 및 기억매체 | |
JP7263101B2 (ja) | 情報処理装置、データ検証方法 | |
JP2021111916A (ja) | 情報処理装置及びプログラム復旧方法 | |
JP2021089607A (ja) | 情報処理装置 | |
JP7322233B2 (ja) | 起動時に実行されるソフトウェアの改ざんを検知する情報処理装置及び改ざん検知方法 | |
JP5665529B2 (ja) | 情報処理装置及びその制御方法、並びにプログラム | |
JP2020088490A (ja) | ソフトウェアの改ざんを検知することが可能な情報処理装置 | |
JP2021051713A (ja) | 情報処理装置及びリセット制御方法 | |
JP2019200660A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP2020057250A (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
JP2023047420A (ja) | 情報処理装置および情報処理装置の制御方法 | |
JP2020135645A (ja) | 情報処理装置、その制御方法およびプログラム | |
JP2022126549A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20210103 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210113 |