JP2023124500A - 情報処理装置、情報処理装置の制御方法およびプログラム - Google Patents
情報処理装置、情報処理装置の制御方法およびプログラム Download PDFInfo
- Publication number
- JP2023124500A JP2023124500A JP2022028292A JP2022028292A JP2023124500A JP 2023124500 A JP2023124500 A JP 2023124500A JP 2022028292 A JP2022028292 A JP 2022028292A JP 2022028292 A JP2022028292 A JP 2022028292A JP 2023124500 A JP2023124500 A JP 2023124500A
- Authority
- JP
- Japan
- Prior art keywords
- boot program
- power
- power state
- information processing
- power control
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000010365 information processing Effects 0.000 title claims abstract description 35
- 238000012795 verification Methods 0.000 claims description 50
- 238000003860 storage Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 35
- 230000004913 activation Effects 0.000 description 24
- 238000011084 recovery Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 230000007704 transition Effects 0.000 description 14
- 238000003825 pressing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Facsimiles In General (AREA)
Abstract
【課題】ブートプログラムの正当性の検証が長期間にわたって実施されない状態となるのを防止する情報処理装置、その制御方法及びプログラムを提供する。【解決手段】情報処理装置である画像形成装置1は、プリントジョブやスキャンジョブが実行可能な、消費電力が比較的多い第1電力状態と、Deep Sleep状態等、第1電力状態よりも消費電力が低い第2電力状態と、を取り得る。画像形成装置は、第1ブートプログラムBP1を記憶する第1FLASH-ROM120と、第2ブートプログラムBP2を記憶する第2FLASH-ROM121と、第1ブートプログラムの正当性を検証し、第1ブートプログラムの正当性が無いと判定した場合には、第1ブートプログラムを第2ブートプログラムに書き換えるサブCPU115と、を備える。サブCPUは、第1電力状態から第2電力状態への電力制御が行われた場合に、第1ブートプログラムの正当性の検証を行う。【選択図】図1
Description
本発明は、情報処理装置、情報処理装置の制御方法およびプログラムに関する。
従来から、メインプロセッサおよびサブプロセッサの2つのプロセッサを有する情報処理装置が知られている。このような情報処理装置として、特許文献1には、情報処理装置の電源投入が行われたタイミングで、情報処理装置の起動時にメインプロセッサが実行するプログラム(ブートプログラム)の正当性をサブプロセッサが検証する情報処理装置が開示されている。そして、プログラムの正当性が確認された場合には、メインプロセッサを起動させ、プログラムの正当性が確認されなかった場合には、サブプロセッサが異常通知を行う。また、特許文献2には、情報処理装置の電源をオフするタイミングで、プロブラムの正当性を検証することが開示されている。
しかしながら、特許文献1および特許文献2に記載の装置では、いずれも、当該装置の電源をオン状態からオフ状態に、または、オフ状態からオン状態にする操作が、例えば数日間以上の長期間にわたって行われない場合がある。この場合、プログラムの正当性の検証も同様の長期間実施されないことになる。そして、この期間にプログラムの改竄がなされたとしても、その改竄を容易に発見することは不可能である。改竄されたプログラムを、そのまま放置するのはセキュリティ上好ましくはない。
本発明は、ブートプログラムの正当性の検証が長期間にわたって実施されない状態となるのを防止することができる情報処理装置、情報処理装置の制御方法およびプログラムを提供することを目的とする。
上記目的を達成するために、本発明の情報処理装置は、第1電力状態と、第1電力状態よりも消費電力が低い第2電力状態とを取り得る情報処理装置であって、第1ブートプログラムを記憶する第1記憶手段と、第2ブートプログラムを記憶する第2記憶手段と、情報処理装置における第1ブートプログラムの正当性を検証する検証手段と、検証手段での検証の結果、正当性が無いと判定された場合に、第1ブートプログラムを第2ブートプログラムに書き換えて、第1記憶手段に記憶させる書換手段と、少なくとも第1電力状態から第2電力状態への電力制御を行う電力制御手段と、を備え、検証手段は、電力制御手段で第1電力状態から第2電力状態への電力制御が行われた場合に、正当性の検証を行うことを特徴とする。
本発明によれば、ブートプログラムの正当性の検証が長期間にわたって実施されない状態となるのを防止することができる。
以下、本発明の実施形態について図面を参照しながら詳細に説明する。しかしながら、以下の実施形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は実施形態に記載されている構成によって限定されることはない。
図1は、本発明の情報処理装置を適用した画像形成装置のハードウェア構成を示すブロック図である。なお、画像形成装置1は、単体の機器で構成された装置であってもよいし、複数の機器で構成されたシステムであってもよい。図1に示すように、画像形成装置1は、メインCPU(Central Processing Unit)101、DRAM(Dynamic Random Access Memory)102、操作部103、ネットワークI/F104を有する。メインCPU101は、画像形成装置1全体の制御を司る。DRAM102は、メインCPU101で実行されるプログラムを格納するとともに、一時的なデータのワークエリアとして機能する。このプログラムとしては、例えば、画像形成装置1の各部や各手段等の各モジュールの作動(情報処理装置の制御方法)をメインCPU101(コンピュータ)に実行させるためのプログラム等がある。操作部103は、メインCPU101に、画像形成装置1を使用する(操作する)ユーザによる操作を通知する。ネットワークI/F104は、LAN130を介して、例えばサーバ等の外部機器と通信可能に接続される。
また、画像形成装置1は、プリンタ部105、スキャナ部106、FAX107、HDD(Hard Disk Drive)108、信号バス109、画像処理部111を有する。プリンタ部105は、画像データを紙面上に印字する。スキャナ部106は、紙面上の画像を光学的に読み取って、当該読取結果を電気信号に変換することにより、スキャン画像を生成する。FAX107は、公衆回線110を介して、例えば他のファックス機器等の外部機器とファクシミリ通信可能に接続される。HDD108は、メインCPU101で実行されるプログラムを格納するとともに、プリンタ部105によるプリントジョブや、スキャナ部106によるスキャンジョブ等のスプール領域としても利用される。また、HDD108は、スキャン画像を保管し再利用するための領域としても利用される。信号バス109は、各モジュールを相互に通信可能に接続する。画像処理部111は、ネットワークI/F104で受信したプリントジョブを、プリンタ部105での印刷に適した画像に変換する変換処理、スキャナ部106で読み取ったスキャン画像に対するノイズ除去、色空間変換、回転、圧縮等の処理を実行する。また、画像処理部111は、HDD108に保管されたスキャン画像の画像処理も実行する。
また、画像形成装置1は、第1FLASH-ROM(FLASH Read Only Memory)120、第2FLASH-ROM121、SPIバス114、サブCPU115を有する。メインCPU101、第1FLASH-ROM120、第2FLASH-ROM121およびサブCPU115は、SPIバス114を介して、相互に通信可能に接続される。画像形成装置1では、そのシステム起動時にプログラム(以下「ブートプログラム」と言う)が実行される。そして、第1FLASH-ROM(第1記憶手段)120には、第1ブートプログラムBP1が予め記憶されている(第1記憶工程)。第2FLASH-ROM(第2記憶手段)121には、第2ブートプログラムBP2が予め記憶されている(第2記憶工程)。なお、第2ブートプログラムBP2は、画像形成装置1における正当なブートプログラムである。ここで、第2FLASH-ROM121は、バックアップ用ROMである。後述するように、第1ブートプログラムBP1の正当性検証の結果、第1ブートプログラムBP1が改竄されていることが判明した場合には、サブCPU115は、第2FLASH-ROM121から第2ブートプログラムBP2を読み出す。その後、サブCPU115は、第1ブートプログラムBP1に第2ブートプログラムBP2を上書きする。これにより、第1ブートプログラムBP1は、画像形成装置1における正当なブートプログラムとして復旧される。そのため、第2FLASH-ROM121では、第2ブートプログラムBP2の書き換えが禁止されるよう、第2ブートプログラムBP2が保護されている。また、第1FLASH-ROM120および第2FLASH-ROM121には、メインCPU101で実行されるその他のファームウェア(FW)を含むプログラムと、画像形成装置1のデフォルト設定値とがそれぞれ記憶されている。
サブCPU115は、第1FLASH-ROM120からメインCPU-FW401を読み出して、第1ブートプログラムBP1の改竄がされているか否かの正当性検証を行う(検証工程)。このように本実施形態では、サブCPU115は、画像形成装置1における第1ブートプログラムBP1の正当性を検証する検証手段としての機能を有する。正当性検証の方法としては、特に限定されず、例えば、以下の方法を用いることができる。メインCPU-FW401のデジタル署名の公開鍵情報(ハッシュ値を公開鍵暗号化した値)を、製造時にサブCPU115内のOTP(One Time Program)304に記憶させておく。そして、第1FLASH-ROM120から読み出したメインCPU-FW401を、この公開鍵情報で復号化して検証を行う。公開鍵暗号の方法としては、例えば、RSA2048、ECDSA等が挙げられる。
また、画像形成装置1は、電源制御部(電力制御手段)118、第1電源部180、第2電源部181、時計部170を有する。電源制御部118は、メインCPUリセット信号117を出力する。このメインCPUリセット信号117は、メインCPU101のリセット端子に入力される。また、電源制御部118は、第1電源部180、第2電源部181の制御を行うことの他に、サブCPU115、メインCPU101のリセット制御も行う。電源制御部118は、サブCPUリセット信号152を出力する。サブCPUリセット信号152は、サブCPU115をリセットする信号であり、サブCPU115に入力される。サブCPU115は、検証終了信号150、リカバリー通知信号151をそれぞれ出力する。検証終了信号150は、サブCPU115で第1ブートプログラムBP1(第1FLASH-ROM120)の正当性検証が終了したことを通知する信号であり、電源制御部118に入力される。リカバリー通知信号151は、第1ブートプログラムBP1の正当性検証の結果、第1ブートプログラムBP1が改竄されていると判明した場合に、第1ブートプログラムBP1が復旧中であることを示す信号であり、電源制御部118に入力される。時計部170は、計時機能を有し、例えば、画像形成装置1の動作に応じて、実行したジョブに対して時刻情報を付与したりすることができる。
このような構成の画像形成装置1は、消費電力の大小に応じて、複数の電力状態を取ることができる。本実施形態では、画像形成装置1は、例えばプリントジョブやスキャンジョブ等の実行が可能となる消費電力が比較的多い第1電力状態と、第1電力状態よりも消費電力が低い第2電力状態とを取り得る。第2電力状態は、例えば、Deep Sleep状態である。これにより、第2電力状態は、第1電力状態よりも消費電力が過不足なく低い状態となり、「第1電力状態での消費電力>第2電力状態での消費電力」となる関係を十分に満足する。なお、第2電力状態は、本実施形態ではDeep Sleep状態であるが、これに限定されない。電源制御部118は、第1電力状態から第2電力状態への電力制御と、第2電力状態から第1電力状態への電力制御とが可能である(電力制御工程)。第1電源部180は、第1電力状態および第2電力状態の両方の電力状態で、画像形成装置1の特定モジュールに電力を供給する電源である。第2電源部181は、第1電力状態でのみ、特定モジュールに電力を供給する電源である。第2電源部181は、第2電力状態では、特定モジュールへの電源の供給が規制される。
図2は、図1に示す画像形成装置が有するメインCPUの構成を示すブロック図である。図2に示すように、メインCPU101は、CPUコア201、SPI-I/F202、バスI/F203、信号バス209、SRAM210を有する。CPUコア201は、CPU(中央演算処理装置)としての中心的な基本機能を担っている。SPI-I/F202は、SPIバス114と通信可能に接続されて、データの読み書きを行う。信号バス209は、メインCPU101内で、CPUコア201等の各モジュール同士を通信可能に接続する。SRAM210は、ワークメモリとして使用される。メインCPUリセット信号117が「Low」レベルの場合、メインCPU101はリセット状態となる。メインCPUリセット信号117が「High」レベルの場合、メインCPU101はリセット解除状態となる。メインCPUリセット信号117がリセット状態からリセット解除状態に遷移すると、CPUコア201は、第1FLASH-ROM120内に記憶されているメインCPU-FW401(図4参照)をSRAM210に読み出して実行する。バスI/F203は、信号バス109を介して、メインCPU101と、電源制御部118等の他のモジュールとの間の通信を行うためのインタフェースであり、電源制御部118等の作動を制御する。
図3は、図1に示す画像形成装置が有するサブCPUの構成を示すブロック図である。図3に示すように、サブCPU115は、CPUコア301、SPI-I/F302、GPIO(General-purpose input/output)303、OTP304、SRAM305を有する。CPUコア301は、CPUコア201と同様に、CPUとしての中心的な基本機能を担っている。SPI-I/F302は、SPIバス114と通信可能に接続されて、データの読み書きを行う。GPIO303は、検証終了信号150、リカバリー通知信号151をそれぞれ出力する。OTP304は、メモリ領域であり、画像形成装置1の製造時にサブCPU-FW404(図4参照)のハッシュ値に、公開鍵暗号化した値およびTagのアドレスが書き込まれる。OTP304では、データが一旦書き込まれると、再度の書き換えはできない。SRAM305は、サブCPU115内のワークメモリとして使用される。
また、サブCPU115は、暗号処理部308、信号バス309、Boot-ROM(Read Only Memory)310、Crypto-RAM311を有する。暗号処理部308は、公開鍵暗号化した値からサブCPU-FW404のハッシュ値を復号する他、公開鍵暗号化したメインCPU-FWの401ハッシュ値を復号する。信号バス309は、サブCPU115内で、CPUコア301等の各モジュール同士を通信可能に接続する。Boot-ROM310は、サブCPU115のブートコードを記憶する。サブCPUリセット信号152が「Low」レベルの場合、サブCPU115はリセット状態となる。サブCPUリセット信号152が「High」レベルの場合、サブCPU115はリセット解除状態となる。サブCPUリセット信号152がリセット状態からリセット解除状態に遷移すると、CPUコア301は、自身のブートコードをBoot-ROM310から読み出して実行する。Crypto-RAM311は、暗号処理部308で利用する機密性の高いデータ等を記憶する。
図4は、図1に示す画像形成装置が有する第1FLASH-ROMおよび第2FLASH-ROMのメモリマップを示す図である。第1FLASH-ROM120と第2FLASH-ROM121とは、同じメモリマップとなっており、一方のROMのメモリマップについて説明する。図4に示すように、ROMは、メインCPU-FW401、メインCPU-FW署名402、Tag403、サブCPU-FW404、サブCPU-FW署名405、ROM-ID406にマッピングされている。メインCPU-FW401は、メインCPU101で実行されるコードが記憶されている。メインCPU-FW署名402は、メインCPU-FW401のハッシュ値に対するRSA署名値が記憶されている。Tag403は、サブCPU-FW404の先頭アドレスが記憶されている。Tag403自体のアドレスは、OTP304に記憶されている。サブCPU-FW404は、サブCPU115で実行されるコードが記憶されている。サブCPU-FW署名で405は、サブCPU-FW404またはサブCPU-FW404の先頭の特定部分のECDSA署名値が記憶されている。ROM-ID406は、メインCPU-FW401の先頭アドレス、サイズおよびFW署名のアドレスが記憶されている。第1FLASH-ROM120、第2FLASH-ROM121は、データの容易な書き換えを規制するライトプロテクト機能が備わっている。そして、OTP304のレジスタ領域にライトプロテクトの設定をすることにより、レジスタで指定したアドレス以降のデータをプロテクトすることが可能である。
図5は、図1に示す画像形成装置が第1電力状態から第2電力状態に移行したときの電源供給状態を示すブロック図である。図5に示す第2電力状態では、第1電源部180が給電状態であり、第2電源部181は給電停止状態になる。これにより、サブCPU115、第1FLASH-ROM120、第2FLASH-ROM121、メインCPU101、時計部170、DRAM102、ネットワークI/F部104、FAX107へは、第1電源部180から電力が供給される。一方、第2電源部181が電力供給源であるプリンタ部105、スキャナ部106、操作部103、画像処理部111、HDD108へは、電力供給が停止した状態となる。なお、図5では、このような停止状態を示すために、第2電源部181、プリンタ部105、スキャナ部106、操作部103、画像処理部111、HDD108の各モジュールは、「網掛け」が施されている。
前述したように、画像形成装置1では、そのシステム起動時にブートプログラムが実行される。このブートプログラムには、第1FLASH-ROM120に記憶されている第1ブートプログラムBP1が用いられる。なお、第2FLASH-ROM121に記憶されている第2ブートプログラムBP2は、バックアップ用であり、書き換えが禁止されるよう保護されている。そして、第1ブートプログラムBP1および第2ブートプログラムBP2は、いずれも、画像形成装置1における正当なブートプログラムである。上記課題でも述べたように、従来、装置の電源をオン状態からオフ状態にする操作が例えば数日間以上の長期間にわたって行われない場合、第1ブートプログラムBP1の正当性の検証も同様の長期間実施されないことになる。そして、この期間に第1ブートプログラムBP1の改竄がなされたとしても、その改竄を容易に発見することは不可能である。改竄された第1ブートプログラムBP1を、そのまま放置したり、使用したりするのは、例えばセキュリティ上好ましくはない。
そこで、画像形成装置1では、このような改竄に関する不具合を低減可能に構成されている。以下、この構成および作用について説明する。図6は、第2電力状態への移行後の、第1ブートプログラムの正当性検証開始指示と、正当性検証結果に基づくメインCPU再起動の処理とを示すフローチャートである。
ステップS601では、電源制御部118は、メインCPU101が発行する第2電力状態移行命令の受信処理を行う。ステップS602では、電源制御部118は、ステップS601で受信した第2電力状態移行命令に基づいて、第2電源部181をオフ状態(第2電力状態)とする処理を行う。ステップS603では、電源制御部118は、起動要因レジスタ1181(図8参照)のリカバリー復帰ビットが「1」か否かの判断を行う。なお、「起動要因レジスタ1181」とは、電源制御部118が有するレジスタことである。そして、ステップS603での判断の結果、電源制御部118が、リカバリー復帰ビットが「1」であると判断した場合には、処理はステップS615に進む。一方、ステップS603での判断の結果、電源制御部118が、リカバリー復帰ビットが「1」ではないと判断した場合には、処理はステップS604に進む。
ステップS604では、電源制御部118は、サブCPU115をリセットする処理を行う。この処理として、電源制御部118は、サブCPUリセット信号152を「Low」レベルにして、サブCPU115をリセットする。ステップS605では、電源制御部118は、サブCPU115のリセット状態を解除する処理を行う。この処理として、電源制御部118は、サブCPUリセット信号152を「High」レベルにして、サブCPU115のリセット状態を解除する。サブCPU115は、リセット状態が解除されると、第1ブートプログラムBP1の正当性検証を開始する。
第1ブートプログラムBP1の正当性検証を行う方法には、例えば、前述した公開鍵情報を用いる方法が挙げられる。そして、第1ブートプログラムBP1は、正当性が無いと判定された場合に、改竄されているとする。このような正当性検証の結果、第1ブートプログラムBP1に正当性が無いと判定された場合には、第1ブートプログラムBP1を第2ブートプログラムBP2に書き換える。そして、当該書き換えられた第1ブートプログラムBP1は、第1FLASH-ROM120に記憶させることとなる。これに対し、第1ブートプログラムBP1に正当性が有ると判定された場合には、第1ブートプログラムBP1の書き換えを省略する。これにより、無駄な書き換えを防止することができる。なお、第1ブートプログラムBP1の正当性検証を行う方法については、本実施形態では前記公開鍵情報に基づく方法を用いるのに限定されない。
ステップS605実行後、ステップS606では、電源制御部118は、復帰要因を受信したか否かの判断を行う。なお、電源制御部118が受信する復帰要因には、例えば、操作部103にある復帰ボタン1035(図9参照)の押下、ネットワークI/F104を介したLAN130経由によるジョブ受信等がある。ステップS606での判断の結果、電源制御部118が、復帰要因を受信したと判断した場合には、処理はステップS619に進む。一方、ステップS606での判断の結果、電源制御部118が、復帰要因を受信していないと判断した場合には、処理はステップS607に進む。
ステップS607では、電源制御部118は、リカバリー通知信号151が「Low」レベルか否かの判断を行う。ステップS607での判断の結果、電源制御部118が、リカバリー通知信号151が「Low」レベルであると判断した場合には、処理はステップS608に進む。一方、ステップS607での判断の結果、電源制御部118が、リカバリー通知信号151が「Low」レベルではないと判断した場合には、処理はステップS609に進む。ステップS608では、電源制御部118は、検証終了信号150が「High」レベルか否かの判断を行う。ステップS608での判断の結果、電源制御部118が、検証終了信号150が「High」レベルであると判断した場合には、処理はステップS615に進む。ステップS608での判断の結果、電源制御部118が、検証終了信号150が「High」レベルではない判断した場合には、処理はステップS606に戻り、それ以降のステップが順次実行される。ステップS606~ステップS608では、電源制御部118は、サブCPU115による第1ブートプログラムBP1の正当性検証処理の終了を待つ。
ステップS609では、電源制御部118は、復帰要因を受信したか否かの判断を行う。ステップS609での判断の結果、電源制御部118が、復帰要因を受信したと判断した場合には、処理はステップS619に進む。ステップS609での判断の結果、電源制御部118が、復帰要因を受信していないと判断した場合には、処理はステップS610に進む。ステップS610では、電源制御部118は、検証終了信号150が「High」レベルか否かの判断を行う。ステップS610での判断の結果、電源制御部118が、検証終了信号150が「High」レベルであると判断した場合には、処理はステップS611に進む。一方、ステップS610での判断の結果、電源制御部118が、検証終了信号150が「High」レベルではないと判断した場合には、処理はステップS609に戻り、それ以降のステップが順次実行される。また、電源制御部118がステップS609からステップS610の処理を行っている間、サブCPU115は、第1ブートプログラムBP1を第2ブートプログラムBP2に書き換える(書換工程)。そして、サブCPU115は、当該書き換えられた第1ブートプログラムBP1を第1FLASH-ROM120に記憶させる。このように本実施形態では、サブCPU115は、第1ブートプログラムBP1を第2ブートプログラムBP2に書き換える書換手段としても機能する。
ステップS611では、電源制御部118は、起動要因レジスタ1181のリカバリー復帰ビットを「1」にする処理を行う。ステップS612では、電源制御部118は、メインCPU101をリセットする処理を行う。この処理として、電源制御部118は、メインCPUリセット信号117を「Low」レベルにして、メインCPU101をリセットする。ステップS613では、電源制御部118は、メインCPU101のリセット状態を解除する処理を行う。この処理として、電源制御部118は、メインCPUリセット信号117を「High」レベルにして、メインCPU101のリセット状態を解除する。
メインCPU101は、リセット状態が解除されると、第1FLASH-ROM120から第1ブートプログラムBP1の読み込みを開始して、当該第1ブートプログラムBP1を実行する(実行工程)。このように本実施形態では、メインCPU101は、第1ブートプログラムBP1を実行する実行手段としても機能する。また、メインCPU101で実行される第1ブートプログラムBP1としては、改竄されていない第1ブートプログラムBP1はもちろんのこと、第2ブートプログラムBP2に書き換えられた第1ブートプログラムBP1であってもよい。これにより、画像形成装置1でのシステム起動が正常に実施される。
ステップS613実行後、ステップS614では、電源制御部118は、第2電源部181をオン状態とする処理を行う。第2電源部181がオン状態となった場合、第2電源部181を電力供給源とする各モジュールに電源が供給されて、信号バス109を介したメインCPU101との通信が開始される。そして、画像形成装置1が一度起動状態となる。ステップS615では、電源制御部118は、起動要因レジスタ1181のレジスタ値のクリア処理を行う。ステップS616では、電源制御部118は、復帰要因を受信したか否かの判断を行う。ステップS616での判断の結果、電源制御部118が、復帰要因を受信したと判断した場合には、処理はステップS617に進む。一方、ステップS616での判断の結果、電源制御部118が、復帰要因を受信していないと判断した場合には、処理は、電源制御部118で復帰要因が受信されるまで、そのままステップS616で待機する。ステップS617では、電源制御部118は、起動要因レジスタ1181の起動要因対象ビットに1を立てる処理を行う。この処理として、例えば、起動要因が操作部103の復帰ボタン1035の押下である場合、電源制御部118は、起動要因レジスタ1181のbit1に「1」を書き込む。ステップS618では、電源制御部118は、メインCPU101に復帰命令を発行する。ステップS619では、電源制御部118は、サブCPUリセット信号152を「Low」レベルにして、サブCPU115をリセットし続ける。
以上のように、画像形成装置1では、サブCPU115は、電源制御部118で第1電力状態から第2電力状態への電力制御が行われた場合に、第1ブートプログラムBP1の正当性の検証を行う。これにより、正当性検証を従来よりも頻繁に行うことができ、よって、正当性検証が長期間にわたって実施されない状態となるのを防止することができる。従って、改竄された第1ブートプログラムBP1を、そのまま放置したり、使用したりするのを防止することができ、画像形成装置1は、例えば、セキュリティ上好ましい状態となる。また、画像形成装置1では、正当性検証と改竄時の復旧との処理を行うよう構成されていることにより、これらの処理に伴う画像形成装置1の使用時の待ち時間の発生を抑制することができる。
なお、画像形成装置1は、正当性検証実施中を報知するよう構成されていてもよい。この報知方法としては、例えば、操作部103に搭載されたLED(不図示)から光を発光することによる報知等が挙げられる。また、画像形成装置1は、第1ブートプログラムBP1の書き換え中、または、書き換え完了も報知可能に構成されていてもよい。
図7は、メインCPUの起動から第2電力状態への移行、第2電力状態からの復帰、並びに、第2電力状態へ移行後、正当性検証結果に基づくメインCPUのリセット解除後の処理を示すフローチャートである。
ステップS701では、メインCPU101は、リセットが解除されると直ちに第1FLASH-ROM120に記憶されたメインCPU-FW401をDRAM102に読み込む。ステップS702では、メインCPU101は、メインCPU-FW401を実行し、メインCPU101内の入出力の初期化を行う。ステップS703では、メインCPU101は、HDD108からOS(Operating System)をDRAM102に読み込む。ステップS704では、メインCPU101は、OSを起動する。ステップS705では、メインCPU101は、電源制御部118の起動要因レジスタ1181から復帰要因を読み出す。
ステップS706では、メインCPU101は、起動要因が、主電源スイッチ(不図示)がオン状態とされたことによる起動か否かの判断を行う。ステップS706での判断の結果、メインCPU101が、起動要因が前記主電源スイッチのオン状態による起動であると判断した場合には、処理はステップS707に進む。一方、ステップS706での判断の結果、メインCPU101が、起動要因が主電源スイッチのオン状態による起動ではないと判断した場合には、処理はステップS709に進む。ステップS707では、メインCPU101は、前記主電源スイッチがオン状態とされたことに応じた処理を行う。この処理として、メインCPU101は、プリンタ部105、スキャナ部106、FAX107、画像処理部111、ネットワークI/F104、操作部103を初期化する。これにより、画像形成装置1は、作動可能な状態となり、例えば、コピー処理やネットワークI/F104を介して受信したジョブの処理等を行うことができる。ステップS709では、メインCPU101は、前記主電源スイッチがオン状態とされたことによる起動以外の起動要因に応じた処理、すなわち、第1ブートプログラムBP1の正当性検証による復帰に応じた処理を行う。この処理として、メインCPU101は、FAX107、ネットワークI/F104を初期化して、第2電力状態でFAX107、ネットワークI/F104が機能を実行可能な状態にする。
ステップS708では、メインCPU101は、画像形成装置1を第2電力状態に移行するタイミングか否かの判断を行う。ステップS708での判断の結果、メインCPU101が、画像形成装置1を第2電力状態に移行するタイミングであると判断した場合には、処理はステップS710に進む。一方、ステップS708での判断の結果、メインCPU101が第2電力状態への移行タイミングではないと判断した場合には、処理は、第2電力状態への移行タイミングであると判断されるまで、そのままステップS708で待機する。そして、メインCPU101は、ステップS708での第2電力状態への移行タイミングを待っている間に、コピー指示やネットワークI/F104を介してジョブを受信した場合、当該ジョブに応じた処理を行う。
ステップS710では、メインCPU101は、画像形成装置1を第2電力状態に移行する処理を行う。この処理として、メインCPU101は、第2電力状態で保持しておくべきデータをDRAM102へ書き込み、DRAM102をセルフリフレッシュモードに設定する。ステップS711では、メインCPU101は、電源制御部118に対し、第2電力状態移行命令を発行する処理を行う。ステップS712では、メインCPU101は、電源制御部118から復帰命令を受信したか否かの判断を行う。ステップS712での判断の結果、メインCPU101が復帰命令を受信したと判断した場合には、処理はステップS713に進む。一方、ステップS712での判断の結果、メインCPU101が復帰命令を受信していないと判断した場合には、処理は、復帰命令を受信したと判断されるまで、そのままステップS712で待機する。
ステップS713では、メインCPU101は、電源制御部118の起動要因レジスタ1181からレジスタ値を読み出す。ステップS714では、メインCPU101は、ステップS713で起動要因レジスタ1181から読みだしたレジスタ値に応じた処理を行う。この処理として、例えば、ネットワークI/F104を介したLAN130経由による印刷ジョブ受信が起動要因の場合、メインCPU101は印刷処理を行う。このとき、操作部103の表示部1031(図9参照)では、表示操作が規制されている。また、第2電力状態からの復帰ボタン1035の押下が起動要因の場合、メインCPU101は、操作部103の表示部1031に画像形成装置1を操作するためのメニューを表示するとともに、画像形成装置1を使用可能な状態にする。ステップS715では、メインCPU101は、画像形成装置1を第2電力状態に移行するタイミングか否かの判断を行う。ステップS715での判断の結果、メインCPU101が、画像形成装置1を第2電力状態に移行するタイミングであると判断した場合には、処理はステップS710に戻り、それ以降のステップが順次実行される。一方、ステップS715での判断の結果、メインCPU101が、画像形成装置1を第2電力状態に移行するタイミングではないと判断した場合には、処理は、第2電力状態への移行タイミングであると判断されるまで、そのままステップS715で待機する。メインCPU101は、ステップS715での第2電力状態への移行タイミングを待っている間に、コピー指示やネットワークI/F104を介してジョブを受信した場合、当該ジョブに応じた処理を行う。
図8は、起動要因レジスタの構成を示す図である。図8に示すように、起動要因レジスタ1181は、8bitで構成される。各bitには、起動要因が割り当てられる。例えば、起動要因レジスタ1181のbit0には、前記主電源スイッチが割り当てられる。bit1には、操作部103の復帰ボタン1035が割り当てられる。bit2には、LAN130経由によるジョブ受信ビットが割り当てられる。bit3には、リカバリー復帰ビットが割り当てられる。例えば、画像形成装置1が第2電力状態にある場合に復帰ボタン1035が押下された際には、電源制御部118は、復帰ボタン1035の押下を検出して、起動要因レジスタ1181のbit1に「1」を書き込む。
図9は、操作部の構成を示す図である。図9に示すように、本実施形態では、操作部103は、表示部1031、テンキー部1032、リセットキー1033、スタートキー1034、復帰ボタン1035で構成される。なお、操作部103における表示部1031~復帰ボタン1035の配置態様については、図9での配置態様に限定されない。表示部1031は、例えば液晶パネルで構成され、画像形成装置1を操作するための各種アイコンや各種メッセージ等を表示する。テンキー部1032は、例えば複数の押下式のボタンで構成され、各ボタンが数字を入力するためのキーとして機能する。リセットキー1033は、例えば押下式のボタンで構成され、画像形成装置1の設定変更確定前に変更した設定を変更前の設定に戻すためのキーである。スタートキー1034は、例えば押下式のボタンで構成され、プリンタ部105等にコピー実行指示を行うためのキーである。復帰ボタン1035は、例えば押下式のボタンで構成され、画像形成装置1を第1電力状態に復帰させるためのボタンである。これにより、画像形成装置1は、第2電力状態のときに復帰ボタン1035が押下された場合に、第1電力状態になる。
図10は、画像形成装置での電源制御部およびサブCPUの動作を示すタイミングチャートである。図10に示すように、画像形成装置1は、前記主電源スイッチがオフ状態からオン状態に操作されると、起動中になる(タイミングT1参照)。画像形成装置1の起動中、第1ブートプログラムBP1(第1FLASH-ROM120)の正当性検証がサブCPU115により実施される。そして、サブCPU115は、正当性検証の実施が完了した場合に、検証終了信号150を「High」レベルにする(タイミングT2参照)。また、これに伴って、電源制御部118は、メインCPUリセット信号117を「High」レベルにする(タイミングT3参照)。メインCPU101は、リセット解除されると、第1FLASH-ROM120から第1ブートプログラムBP1を読み出すとともに、HDD108からもプログラムを読み出す。そして、メインCPU101は、画像形成装置1をコピー等の機能が提供可能な状態にする(タイミングT4参照)。
また、画像形成装置1が第2電力状態へ移行すると、電源制御部118は、第2電源部181をオフ状態とする。そして、電源制御部118は、サブCPU115をリセットする(タイミングT5参照)。画像形成装置1が第2電力状態にあるとき、サブCPU115は、第1ブートプログラムBP1の正当性検証を実施する。サブCPU115は、第1ブートプログラムBP1の正当性検証で、第1ブートプログラムBP1に対する改竄を検出した場合には、リカバリー通知信号151を「High」レベルにする(タイミングT6参照)。リカバリー通知信号151が「High」レベルの間、サブCPU115は、第1ブートプログラムBP1に第2ブートプログラムBP2を上書きする、すなわち、第1ブートプログラムBP1を第2ブートプログラムBP2に書き換える。そして、この上書きが完了した場合、サブCPU115は、リカバリー通知信号151を「Low」レベルにするとともに、検証終了信号を「High」レベルにする。このとき、電源制御部118は、メインCPUリセット信号117でメインCPU101をリセットするとともに、第2電源部181をオン状態にする(タイミングT7参照)。図10に示すタイミングは、起動要因が、正当性検証で改竄が検出されたことによるリカバリー復帰のタイミングチャートである。このため、画像形成装置1が第2電力状態に移行した後、電源制御部118は、サブCPUリセット信号152でサブCPU115をリセットしない(タイミングT8参照)。
なお、画像形成装置1は、本実施形態では第1電力状態から第2電力状態への電力制御が行われた場合に正当性検証が実行されるが、これに限定されず、例えば、画像形成装置1は、第1電力状態から第2電力状態への電力制御が行われた回数が所定回数に達した場合にも、正当性検証が実行されてもよい。この場合、電源制御部118で第1電力状態から第2電力状態への電力制御が行われた場合に正当性検証を行うか、または、前記回数が所定回数に達した場合に、正当性検証を行うかを切り替え可能であるのが好ましい。これにより、画像形成装置1の使用状態に応じて、正当性検証の実行態様を切り替えることができる。なお、第1電力状態から第2電力状態への電力制御が行われた回数を検出する回数検出手段としての機能は、例えば、電源制御部118が担うことができる。
以上、本発明の好ましい実施形態について説明したが、本発明は上述した実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステムまたは装置のコンピュータの1つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
1 画像形成装置
115 サブCPU
118 電源制御部
120 第1FLASH-ROM
121 第2FLASH-ROM
170 時計部
BP1 第1ブートプログラム
BP2 第2ブートプログラム
115 サブCPU
118 電源制御部
120 第1FLASH-ROM
121 第2FLASH-ROM
170 時計部
BP1 第1ブートプログラム
BP2 第2ブートプログラム
Claims (10)
- 第1電力状態と、該第1電力状態よりも消費電力が低い第2電力状態とを取り得る情報処理装置であって、
第1ブートプログラムを記憶する第1記憶手段と、
第2ブートプログラムを記憶する第2記憶手段と、
前記情報処理装置における前記第1ブートプログラムの正当性を検証する検証手段と、
前記検証手段での検証の結果、前記正当性が無いと判定された場合に、前記第1ブートプログラムを前記第2ブートプログラムに書き換えて、前記第1記憶手段に記憶させる書換手段と、
少なくとも前記第1電力状態から前記第2電力状態への電力制御を行う電力制御手段と、を備え、
前記検証手段は、前記電力制御手段で前記第1電力状態から前記第2電力状態への電力制御が行われた場合に、前記正当性の検証を行うことを特徴とする情報処理装置。 - 前記第2ブートプログラムは、前記情報処理装置における正当なブートプログラムであり、
前記第2記憶手段では、前記第2ブートプログラムの書き換えが禁止されていることを特徴とする請求項1に記載の情報処理装置。 - 前記第1ブートプログラムは、前記正当性が無いと判定された場合に、改竄されているとすることを特徴とする請求項1または2に記載の情報処理装置。
- 前記第1ブートプログラムを実行する実行手段を備え、
前記実行手段は、前記第2ブートプログラムに書き換えられた前記第1ブートプログラムを実行可能であることを特徴とする請求項1乃至3のうちの何れか1項に記載の情報処理装置。 - 前記検証手段での検証の結果、前記正当性があると判定された場合には、前記書換手段による前記第1ブートプログラムの書き換えを省略することを特徴とする請求項1乃至4のうちの何れか1項に記載の情報処理装置。
- 前記電力制御手段で前記第1電力状態から前記第2電力状態への電力制御が行われた回数を検出する回数検出手段を備え、
前記検証手段は、前記回数検出手段で検出された回数が所定回数に達した場合に、前記正当性の検証が可能であることを特徴とする請求項1乃至5のうちの何れか1項に記載の情報処理装置。 - 前記検証手段は、前記電力制御手段で前記第1電力状態から前記第2電力状態への電力制御が行われた場合に前記正当性の検証を行うか、または、前記回数検出手段で検出された回数が所定回数に達した場合に、前記正当性の検証を行うかを切り替え可能であることを特徴とする請求項6に記載の情報処理装置。
- 前記第2電力状態は、Deep Sleep状態であることを特徴とする請求項1乃至7のうちの何れか1項に記載の情報処理装置。
- 第1電力状態と、該第1電力状態よりも消費電力が低い第2電力状態とを取り得る情報処理装置を制御する方法であって、
第1ブートプログラムを記憶する第1記憶工程と、
第2ブートプログラムを記憶する第2記憶工程と、
前記情報処理装置における前記第1ブートプログラムの正当性を検証する検証工程と、
前記検証工程での検証の結果、前記正当性が無いと判定された場合に、前記第1ブートプログラムを前記第2ブートプログラムに書き換えて記憶させる書換工程と、
少なくとも前記第1電力状態から前記第2電力状態への電力制御を行う電力制御工程と、を有し、
前記検証工程では、前記電力制御工程で前記第1電力状態から前記第2電力状態への電力制御が行われた場合に、前記正当性の検証を行うことを特徴とする情報処理装置の制御方法。 - 請求項1乃至8の何れか1項に記載の情報処理装置の各手段をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022028292A JP2023124500A (ja) | 2022-02-25 | 2022-02-25 | 情報処理装置、情報処理装置の制御方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022028292A JP2023124500A (ja) | 2022-02-25 | 2022-02-25 | 情報処理装置、情報処理装置の制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023124500A true JP2023124500A (ja) | 2023-09-06 |
Family
ID=87886568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022028292A Pending JP2023124500A (ja) | 2022-02-25 | 2022-02-25 | 情報処理装置、情報処理装置の制御方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023124500A (ja) |
-
2022
- 2022-02-25 JP JP2022028292A patent/JP2023124500A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8601280B2 (en) | Application executing apparatus and application execution method | |
JP6399763B2 (ja) | 情報処理装置、情報処理方法 | |
US8310698B2 (en) | Image forming apparatus and activating method thereof | |
JP6494373B2 (ja) | 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム | |
JP2001306170A (ja) | 画像処理装置、画像処理システム、画像処理装置使用制限方法及び記憶媒体 | |
JP2019212114A (ja) | 情報処理装置、その制御方法およびプログラム | |
JP7100502B2 (ja) | 情報処理装置とその制御方法、及びプログラム | |
JP7170482B2 (ja) | 情報処理装置及びその制御方法、並びにプログラム | |
JP2023129643A (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2003058486A (ja) | 画像形成装置 | |
JP2023124500A (ja) | 情報処理装置、情報処理装置の制御方法およびプログラム | |
JP2010208075A (ja) | 画像形成装置、画像形成制御方法、画像形成制御プログラム及び記録媒体 | |
JP6590722B2 (ja) | 電子機器、その制御方法及びプログラム | |
KR102467636B1 (ko) | 정보 처리장치, 정보 처리장치의 제어방법, 및 기억매체 | |
JP7229672B2 (ja) | 画像形成装置、及び、画像形成装置の制御方法 | |
JP2021089607A (ja) | 情報処理装置 | |
JP2020187649A (ja) | 情報処理装置、制御方法、およびプログラム | |
JP2009070106A (ja) | 画像形成装置、データの処理方法並びにデータの処理プログラム | |
JP2008102678A (ja) | 電子機器 | |
JP2020086516A (ja) | 情報処理装置、情報処理装置の制御方法、及び、プログラム | |
JP4803601B2 (ja) | 画像処理装置および画像形成装置 | |
JP2023124088A (ja) | 情報処理装置および情報処理装置の制御方法 | |
JP4266995B2 (ja) | 画像形成装置 | |
US20230273798A1 (en) | Information processing apparatus and method for controlling information processing apparatus | |
JP7206769B2 (ja) | 電子デバイスおよび動作方法 |