JP2023167086A - 情報処理装置及び情報処理装置の制御方法 - Google Patents

情報処理装置及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP2023167086A
JP2023167086A JP2022077971A JP2022077971A JP2023167086A JP 2023167086 A JP2023167086 A JP 2023167086A JP 2022077971 A JP2022077971 A JP 2022077971A JP 2022077971 A JP2022077971 A JP 2022077971A JP 2023167086 A JP2023167086 A JP 2023167086A
Authority
JP
Japan
Prior art keywords
main cpu
information processing
program
validity
verification
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
Application number
JP2022077971A
Other languages
English (en)
Inventor
保広 小塚
Yasuhiro Kozuka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2022077971A priority Critical patent/JP2023167086A/ja
Publication of JP2023167086A publication Critical patent/JP2023167086A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】スタンバイ状態であっても起動プログラムの正当性検証をハードウェアの安全性を確保しつつ実施することを可能にし、情報処理装置を長時間OFFしないような使われ方をされる場合のセキュリティーを向上する情報処理装置及び情報処理装置の制御方法を提供する。【解決手段】情報処理装置1において、電源制御部118は、メインCPU101が起動しているスタンバイ状態から、サブCPU115にメインCPUの起動プログラムの正当性の検証を実行させ、正当性の検証が行われている間、メインCPUをリセット状態に制御し、メインCPUから第一FLASH ROM120へのアクセスが発生しないようにする。【選択図】図1

Description

本発明は、情報処理装置及び情報処理装置の制御方法に関するものであり、特に、情報処理装置の起動プログラムに関わる正当性検証に関する。
近年、ソフトウェアの脆弱性をついて、ソフトウェアを改竄し、コンピュータを悪用する攻撃が問題となっている。そういった攻撃の対策として、情報処理装置に搭載するCPUが実行する起動プログラムの改竄検知を行う手法が知られている。なお、通常、起動プログラムを実行するCPU自身では、起動プログラムの改竄を検知できないため、起動プログラムを実行するCPUとは異なるCPUにより、前記起動プログラムの改竄の有無を検証する。
この改竄検知は、情報処理装置の電源を投入し、起動プログラムが開始される前のタイミングで実施される。そして、起動プログラムの改竄検知の結果、改竄が有ると判断された場合は、起動プログラムを実行するCPUをリセット状態にして動作できなくする技術などが知られている。
特開2020-194464号公報
しかし、情報処理装置を使用するユーザーによっては電源を長時間(例えば数日から1週間程度)OFFしないような使われ方をされる場合がある。このような場合、起動プログラムの正当性検証が長時間実施されないことになる。その間は改竄検知が行われないため、起動プログラムの改竄がなされても改竄を発見できない。そのため、セキュリティーの観点から、定期的にブートプログラムの正当性検証を実行することが望まれている。
そこで、スタンバイ中であっても、一定時間使用されていない場合には、正当性検証を実施することが検討されている。スタンバイ中では、起動プログラムを実行するCPUが既に立ち上がって起動プログラムへのアクセス可能な状態になっている。そのため、起動プログラムを実行するCPU(以降「メインCPU」と表現)と正当性検証を行うCPU(以降「サブCPU」と表現)の両方から、ROMに記憶されている起動プログラムへのアクセスがぶつからないように制御する必要がある。これらのアクセスがぶつかった場合には、起動プログラムへの誤書き込みや最悪ハードウェアの故障が発生する可能性がある。
本発明は、上記の課題を解決するためになされたものである。本発明は、スタンバイ状態であっても起動プログラムの正当性検証をハードウェアの安全性を確保しつつ実施し、情報処理装置を長時間OFFしないような使われ方をされる場合のセキュリティーを向上する仕組みを提供することを目的とする。
本発明は、情報処理装置であって、第一のプログラムを実行する処理手段と、前記第一のプログラムを記憶する第一の記憶手段と、前記第一のプログラムの正当性を検証する検証手段と、前記処理手段が前記第一の記憶手段から前記第一のプログラムを読み込んで実行して起動しているスタンバイ状態から、前記検証手段に前記正当性の検証を実行させる制御手段と、を有し、前記制御手段は、前記正当性の検証が行われている間、前記処理手段から前記第一の記憶手段へのアクセスが発生しないように制御することを特徴とする。
本発明によれば、スタンバイ状態であっても起動プログラムの正当性検証をハードウェアの安全性を確保しつつ実施することができる。この結果、情報処理装置を長時間OFFしないような使われ方をされる場合のセキュリティーを向上することができる。
本実施形態を示す情報処理装置の構成の一例を示すブロック図。 本実施形態の情報処理装置のメインCPUの内部構成を説明する図。 本実施形態の情報処理装置のサブCPUの内部構成を説明する図。 第1実施形態で正常時の制御を示すタイミングチャート。 第1実施形態で改竄があった場合の制御を示すタイミングチャート。 第1実施形態における電源制御部の処理を説明するフローチャート。 第1実施形態におけるサブCPUの処理を説明するフローチャート。 第2実施形態における第一のSPIバスの制御信号の接続詳細を示す図。 第2実施形態における電源制御部の処理を説明するフローチャート。 第3実施形態における第一のSPIバスの制御信号の接続詳細を示す図。 第3実施形態で正常時の制御を示すタイミングチャート。 第3実施形態で改竄があった場合の制御を示すタイミングチャート。 第3実施形態における電源制御部の処理を説明するフローチャート。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、実施形態に係る情報処理装置として複合機(デジタル複合機(MFP;Multi Function Peripheral))を例に説明する。しかしながら適用範囲は複合機に限定はせず、情報処理装置であればよい。
〔第1実施形態〕
<情報処理装置>
図1は、本発明の一実施形態を示す情報処理装置の構成の一例を示すブロック図である。
メインCPU101は、情報処理装置1全体の制御を行う。DRAM(Dynamic Random Access Memory)102は、例えばHDDやROM等から読み出されたメインCPU101で実行されるプログラムを格納すると共に、一時的なデータのワークエリアとして機能する。
操作部103は、メインCPU101にユーザーによる操作を通知する。ネットワークI/F104は、LAN130を介して外部機器と通信を行う。プリンタ部105は、画像データを紙面上に印字する。スキャナ部106は、紙面上の画像を光学的に読み取り電気信号に変換してスキャン画像を生成する。FAX107は、公衆回線110を介して外部機器とファクシミリ通信を行う。
HDD(Hard Disk Drive)108は、メインCPU101で実行されるプログラムを格納すると共に、プリントジョブやスキャンジョブ等のスプール領域としても利用される。また、HDD108は、スキャン画像を保管し再利用するための領域としても利用される。なお、HDDの代わりに又は併用してSSD(Solid State Drive)等の他の記憶装置を備えていてもよい。
信号バス109は、各モジュールを相互に接続して通信を行う。
画像処理部111は、ネットワークI/F104で受信したプリントジョブをプリンタ部105で印刷するのに適した画像への変換処理や、スキャナ部106で読み取ったスキャン画像のノイズ除去や色空間変換、回転、圧縮等の処理を実行する。また、画像処理部111は、HDD108に保管されたスキャン画像の画像処理を実行する。
第一FLASH(登録商標) ROM(FLASH Read Only Memory)120ならびに第二FLASH ROM121は、メインCPU101で実行される起動プログラムを含むプログラムを格納する。ここで、第二FLASH ROM121はバックアップ用ROMであり、第一FLASH ROM120に記憶されている起動プログラムを復旧するための復旧用の起動プログラムを格納する。第一FLASH ROM120の正当性検証の実行結果、改竄されていることが判明した場合、サブCPU115は、第二FLASH ROM121から起動プログラムを読み出して、第一FLASH ROM120へ上書きすることで復旧を行う。そのため、第二FLASH ROM121は書き換えできないようにプロテクトされている。
第一のSPIバス114は、メインCPU101、サブCPU115の双方から第一FLASH ROM120に接続可能である。
第二のSPIバス116は、サブCPU115と第二FLASH ROM121とが接続されている。
サブCPU115は、情報処理装置1の起動時、メインCPU101が起動する前に、第一FLASH ROM120から起動プログラムを読み出して改竄がされていないか正当性検証を行う。
メインCPUリセット信号117は、電源制御部118から出力されて、メインCPU101のリセット端子に接続される。
電源制御部118は、第一電源部180、第二電源部181の制御、及び、サブCPU115、メインCPU101のリセット制御を行う。
サブCPUリセット信号152は、サブCPU115をリセットする信号である。
検証終了信号150は、サブCPU115が第一FLASH ROM120の正当性検証が終了したことを電源制御部118へ通知する信号であり、電源制御部118に接続される。
リカバリー通知信号151は、第一FLASH ROM120の正当性検証の結果、改竄されていることが判明した場合、サブCPU115が第一FLASH ROM120を復旧中であることを示す信号であり、電源制御部118に接続される。
時計部170は、情報処理装置1の動作に応じて、実行したジョブに対して時刻情報を付与するなど、情報処理装置1へ時刻機能を提供する。
情報処理装置1は、消費電力が多い第一電力状態、消費電力が第一電力状態よりも低い第二電力状態を含む複数の電力状態をとることができる。
第一電源部180は、情報処理装置1が第一電力状態、第二電力状態の両方の電力状態で情報処理装置1の特定モジュールに電力を供給する電源である。
第二電源部181は、情報処理装置1が第一電力状態の場合のみ、特定モジュールに電力を供給する電源である。第二電源部181は、情報処理装置1が第二電力状態の場合、特定モジュールへ電源を供給しない。
図2は、メインCPU101の内部構成を説明する図である。
CPUコア201は、メインCPU101の基本機能を担っている。SPI I/F202は、第一のSPIバス114を介して第一FLASH ROM120に接続してデータの読み書きを行う。メインCPU内部信号バス209は、メインCPU101内の各モジュールを接続する。SRAM210は、ワークメモリとして使用される。バスI/F203は、信号バス109を介してメインCPU101と他のモジュールとの間の通信のためのインターフェースである。
メインCPUリセット信号117は、メインCPU101をリセットするための信号である。メインCPUリセット信号117が”Low”レベルの場合、メインCPU101はリセット状態となる。一方、メインCPUリセット信号117が”High”レベルの場合、メインCPU101はリセット解除状態となる。メインCPUリセット信号117がリセット状態からリセット解除状態に遷移すると、CPUコア201は先ず、第一FLASH ROM120内に記憶されている起動プログラムをSRAM210に読み出して実行する。
図3は、サブCPU115の内部構成を説明する図である。
CPUコア301は、サブCPU115の基本機能を担っている。
第一のSPI I/F302は、第一のSPIバス114を介して第一FLASH ROM120に接続してデータの読み書きを行う。
第二のSPI I/F312は、第二のSPIバス116を介して第二FLASH ROM121に接続してデータの読み書きを行う。
GPIO(General-purpose input/output)303は、外部のデバイスと相互に接続してデータの送受信を行う。
OTP(One Time Programmable)メモリー領域304は、製造時に正当性検証に必要な情報が書き込まれるメモリー領域であり、この領域に書き込まれたデータは一度書き込まれると書換え不可能となる。
SRAM305は、サブCPU115内のワークメモリとして使用される。
暗号処理部308は、公開鍵暗号化した値からサブCPU FWのハッシュ値を復号するほか、公開鍵暗号化したメインCPU起動プログラムのハッシュ値を復号する。
サブCPU内部信号バス309は、サブCPU内の各モジュールを接続する。
Boot ROM(Read Only Memory)310は、サブCPU115のブートコードを記憶する。サブCPUリセット信号152が”Low”レベルの場合、サブCPU115はリセット状態となる。サブCPUリセット信号152が”High”レベルの場合、サブCPU115はリセット解除状態となる。サブCPUリセット信号152がリセット状態からリセット解除状態に遷移すると、CPUコア301は先ず、Boot ROM310から自身のブートコードを読み出し実行する。
Crypto RAM311は、暗号処理部308で利用する機密性の高いデータ等を記憶する。
図4Aは、第1実施形態における正常時の正当性検証の制御の一例を示すタイミングチャートである。
本実施形態においては、時計部170に所定時刻もしくは所定時間間隔を設定しておく。そして、スタンバイ中に、前記設定された時間(t1)に情報処理装置1内でなんらかの処理が発生していなければ、時計部170が割り込み信号を発生させ、メインCPU101を介して電源制御部118に通知する。もしくは、時計部170が割り込み信号を直接、電源制御部118に通知する構成でもよい。電源制御部118は、この割り込みを受けて、メインCPUリセット信号117をLowに制御して、メインCPU101をリセット状態に制御する。これにより、メインCPU101から第一のSPIバス114へのアクセスが発生しないHi-Z状態に確定できる。
また、同様に、サブCPUリセット信号152をLowに制御して、サブCPU115をリセット状態に制御し、さらに時間t2で、サブCPUリセット信号152をHighに制御してサブCPU115をリセット解除する。これにより、サブCPU115は再起動して、第一のSPIバス114へアクセスして第一FLASH ROM120に格納されているメインCPU101の起動プログラムを読み込んで正当性検証を実施する。
この正当性検証の結果がOKであれば、時間t3で、サブCPU115が、検証終了信号150をHighに変化させて電源制御部118に通知する。電源制御部118は検証終了信号150の通知を受けて、メインCPUリセット信号117をHighに変化させてメインCPU101のリセットを解除する。これにより、メインCPU101は、第一のSPIバス114を介して第一FLASH ROM120に格納されている起動プログラムを読み出して起動する。
図4Bは、第1実施形態における改竄が検知された場合の制御の一例を示すタイミングチャートである。
なお、時間t2で、サブCPU115が正当性検証を実施するまでは、図4Aと同様であるので説明を省略する。
上述の正当性検証の結果、改竄が検知された場合には、時間t3で、サブCPU115が、リカバリー通知信号151をHighに変化させて電源制御部118に通知し、リカバリーを行う。リカバリーでは、サブCPU115が第二FLASH ROM121にアクセスしてバックアッププログラムを読み出して第一FLASH ROM120を上書きする処理である。
時間t4で起動プログラムのリカバリーが終了すると、サブCPU115は、リカバリー通知信号151をLowに変化させる。電源制御部118はこれを受け、サブCPUリセット信号152をLowに変化させてサブCPUをリセット状態に制御し、時間t5でサブCPUリセット信号152をHighに制御してサブCPU115をリセット解除する。これにより、サブCPU115は、再起動して第一のSPIバス114へアクセスして、第一FLASH ROM120に格納されているメインCPU101の起動プログラムを読み込んで正当性検証を実施する。
この正当性検証の結果がOKであれば、時間t6で、サブCPU115は、検証終了信号150をHighに変化させて電源制御部118に通知する。電源制御部118は、この検証終了信号150の通知を受けて、メインCPUリセット信号117をHighに変化させてメインCPU101のリセットを解除する。これにより、メインCPU101は、第一のSPIバス114を介して第一FLASH ROM120に格納されている起動プログラムを読み出して起動する。
図5は、第1実施形態における電源制御部118の処理を説明するフローチャートである。このフローチャートの処理は、メインCPU101が第一FLASH ROM120から起動プログラムを読み込んで実行して起動しているスタンバイ状態で、電源制御部118により実行される。
電源制御部118は、時計割り込み信号を受けると(S501でYesの場合)、S502の処理を実行する。
S502において、電源制御部118は、メインCPUリセット信号117をアサートして(Lowに制御してメインCPU101をリセット状態にし)メインCPU101から第一のSPIバス114へのアクセスが発生しない状態に制御する。すなわち、メインCPU101から第一FLASH ROM120へのアクセスが発生しない状態に制御する。
次にS503において、電源制御部118は、サブCPUリセット信号152をアサートする(Lowに制御してサブCPU115をリセット状態にする)。
さらにS504において、電源制御部118は、サブCPUリセット信号152をディアサートして(Highに制御してサブCPU115をリセット解除して)、サブCPU115をリブートさせる。
次にS505において、電源制御部118は、サブCPU115からの検証終了信号がHighに変化したか確認する。サブCPU115からの検証終了信号がHighに変化した場合(S505でYesの場合)、電源制御部118は、検証終了信号OK(検証が終了した)と判断し、S506に処理を進める。
S506において、電源制御部118は、メインCPUリセット信号117をディアサートして(メインCPUリセット信号117をHighに制御してメインCPU101をリセット解除して)、メインCPU101を起動させ、本処理を終了する。
一方、サブCPU115からの検証終了信号がLowのままの場合(S505でNoの場合)、電源制御部118は、S507に処理を進める。
S507において、電源制御部118は、リカバリー通知信号151がHighに変化したか確認する。リカバリー通知信号151がLowのままの場合(S507でNoの場合)、電源制御部118は、S505に処理を戻す。
一方、リカバリー通知信号151がHighに変化した場合(S507でYesの場合)、電源制御部118は、S508に処理を進める。
S508において、電源制御部118は、例えば電源制御部118が有する図示しない改竄検知レジスタに「1」を書き込み、このフラグが立った状態で、S509に処理を進める。
S509において、電源制御部118は、改竄検知レジスタが「1」の状態で、リカバリー通知信号151がLowに変化するまで待機する。リカバリー通知信号151がLowに変化したら(S509でYesの場合)、電源制御部118は、サブCPU115でのリカバリー処理が終了したと判断し、S503に処理を戻す。そして、再度、サブCPU115をリブートして再度サブCPU115に正当性検証を実施させる。その後、サブCPU115からの検証終了信号がHighに変化した場合(S505でYesの場合)、電源制御部118は、正当性検証OKと判断し、メインCPUリセット信号117を制御してメインCPU101を起動させる(S506)。なお、メインCPU101は、起動後、上述した改竄検知レジスタの値をチェックすることにより、起動プログラムに改竄があったことを認識することができ、その旨をHDD108にログとして記録することができる。改竄検知レジスタの値は、電源制御部118に電源が投入された場合に「0」にリセットされる。また、上述のように、メインCPU101により改竄があったことがHDD108にログとして記録された場合にも、メインCPU101からの通知により電源制御部118が改竄検知レジスタの値を「0」にリセットする。
図6は、第1実施形態におけるサブCPU115の処理を説明するフローチャートである。
S601において、サブCPU115は、サブCPUリセット信号152を受信して再起動する。
サブCPU115は再起動すると、S602において、第一のSPIバス114にアクセスして第一FLASH ROM120に格納されているメインCPU101の起動プログラムを読み込んで正当性検証を実施する。例えば、第一FLASH ROM120から読み出したメインCPU101の起動プログラムのハッシュ値と、Crypto RAM311に記憶されているメインCPU101の起動プログラムのハッシュ値とを比較することにより、正当性の検証を行う。
次にS603において、サブCPU115は、上記S602で行った正当性検証を確認する。正当性検証の結果がOK(改竄等がない)場合(S603でYesの場合)、サブCPU115は、S604に処理を進める。
S604において、サブCPU115は、検証終了信号150をHighにして電源制御部118に通知して、本処理を終了する。
一方、上記S603の正当性検証の結果がNG(改竄等があった)場合(S603でNoの場合)、サブCPU115は、S605に処理を進める。
S605において、サブCPU115は、リカバリー通知信号151をHighにして電源制御部118にリカバリー中であることを通知する。
次にS606において、サブCPU115は、第二のSPIバス116にアクセスして第二FLASH ROM121に格納されているバックアップデータを読み出す。
さらにS607において、サブCPU115は、上記S606で読み出したデータを、第一のSPIバス114に接続されている第一FLASH ROM120に上書きする。
次にS608において、サブCPU115は、リカバリー通知信号151をLowにして、再度S601からの処理を実施して正当性検証を再度実施する。
以上、本実施形態では、メインCPU101の起動プログラムの正当性検証中の間は、メインCPU101をリセット状態にして、メインCPU101から第一FLASH ROM120へのアクセスが発生しないように制御する。これにより、スタンバイ中であっても、安全に起動プログラムの正当性検証を実施することができる。よって、情報処理装置を使用するユーザーによって電源を長時間OFFしないような使われ方がされる場合であっても、起動プログラムの正当性を確保できる。
〔第2実施形態〕
第2実施形態における情報処理装置の全体ブロック図の説明は第1実施形態と同様のため、省略する。以下、第1実施形態と異なる部分を中心に説明する。
図7は、第一のSPIバス114の制御信号の接続詳細の一例を示す図である。なお、この図では、特に第一のSPIバス114のCS(Chip Select)信号の詳細接続を示している。また、第2実施形態と同一のものには同一の符号を付してある。
第一のCS信号701は、メインCPU101から第一FLASH ROM120へのアクセス時にメインCPU101から出力されるCS信号である。
第二のCS信号702は、サブCPUから第一FLASH ROM120へのアクセス時にサブCPU115から出力されるCS信号である。
また、第三のCS信号703は、第一のCS信号701と第二のCS信号702を電源制御部118内で制御して選択的に出力されるCS信号である。CS信号(チップセレクト信号)は、第一FLASH ROM120のアクセス対象のデバイスを選択するための信号である。本実施形態においては、検証終了信号150がLowの際には第二のCS信号702、検証終了信号150がHighの際には第一のCS信号701が選択的に出力される。すなわち、サブCPU115によるメインCPU101の起動プログラムの正当性検証中(リカバリ中を含む)の間は、サブCPU115が、第一FLASH ROM120のアクセス対象として選択される。また、正当性検証中でない場合は、メインCPU101が、第一FLASH ROM120のアクセス対象として選択される。
図8は、第2実施形態における電源制御部118の処理を説明するフローチャートである。
電源制御部118は、メインCPU101からの起動完了通知を受け取ると(S801)、S802に処理を進める。
S802において、電源制御部118は、第一のCS信号701のアクセス(すなわちメインCPU101から第一FLASH ROM120へのアクセス)が発生したか監視する。そして、第一のCS信号701のアクセスが発生したことを検知した場合(S802でYesの場合)、電源制御部118は、S501に処理を遷移させる。S501以降は図5と同様であり、第1実施形態と同様に正当性検証を行う。
起動した後のスタンバイ時には、メインCPU101から第一FLASH ROM120へのアクセスがなければ、起動プログラムの改竄可能性がない。このことから、この場合には正当性検証を行う必要がないため、正当性検証を行わないように制御する。すなわち、起動プログラムの改竄可能性がない場合には、正当性検証を行わないようにできる。よって、スタンバイ中に不必要に装置をリブートさせることを防止できる。
以上、本実施形態によれば、情報処理装置がスタンバイ中の場合、メインCPU101からの第一FLASH ROM120へのアクセスが確認された場合にのみ正当性検証を行うことで、スタンバイ中に不必要に装置をリブートさせることを防止できる。
〔第3実施形態〕
第3実施形態における情報処理装置の全体ブロック図の説明は第1実施形態と同様のため、省略する。以下、第1実施形態と異なる部分を中心に説明する。
図9は、第3実施形態における第一のSPIバス114の制御信号の接続詳細の一例を示す図である。なお、第2実施形態と同一のものには同一の符号を付してある。
バスSW901は、メインCPU101から第一のSPIバス114への接続を切れるようにするためのスイッチである。バスSW901は、電源制御部118からのバスSW切り替え信号902で制御される。
図10Aは、第3実施形態における正常時の正当性検証の制御の一例を示すタイミングチャートである。
本実施形態においては、時計部170に所定時刻もしくは所定時間間隔を設定しておく。そして、スタンバイ中に、前記設定された時間(t1)に情報処理装置1内でなんらかの処理が発生していなければ、時計部170が割り込み信号を発生させ、メインCPU101を介して電源制御部118に通知する。もしくは、時計部170が割り込み信号を直接、電源制御部118に通知する構成でもよい。電源制御部118は、この割り込みを受けて、バスSW切り替え信号902をLowに変化させ、バスSW901を切断する。これにより、メインCPU101から第一のSPIバス114へのアクセスが発生しないHi-Z状態に確定できる。次に、サブCPUリセット信号152をLowに制御して、サブCPU115をリセット状態に制御し、さらに時間(t2)で、サブCPUリセット信号152をHighに制御してサブCPU115をリセット解除する。これにより、サブCPU115は再起動して、第一のSPIバス114へアクセスして第一FLASH ROM120に格納されているメインCPU101の起動プログラムを読み込んで正当性検証を実施する。
この正当性検証の結果がOKであれば、時間t3で、サブCPU115が、検証終了信号150をHighに変化させて電源制御部118に通知する。電源制御部118は検証終了信号150の通知を受けて、バスSW切り替え信号902をHighに変化させてバスSW901を接続する。これにより、メインCPU101から第一のSPIバス114へのアクセスが可能となる。
図10Bは、第3実施形態における改竄が検知された場合の制御の一例を示すタイミングチャートである。
なお、時間t2で、サブCPU115が正当性検証を実施するまでは、図11Aと同様であるので説明を省略する。
上述の正当性検証の結果、改竄が検知された場合には、時間t3で、サブCPU115が、リカバリー通知信号151をHighに変化させて電源制御部118に通知し、リカバリーを行う。このリカバリー通知信号151のHighを受けて、電源制御部118は、メインCPUリセット信号117をLowに変化させてメインCPU101をリセット状態にして、バスSW切り替え信号902をHighに戻す。なお、この状態では、メインCPU101がリセット状態のため、メインCPU101から第一のSPIバス114へのアクセスは発生しない。
時間t4で起動プログラムのリカバリーが終了すると、サブCPU115は、リカバリー通知信号151をLowに変化させる。電源制御部118はこれを受け、サブCPUリセット信号152をLowに変化させてサブCPUをリセット状態に制御し、時間t5でサブCPUリセット信号152をHighに制御してサブCPU115をリセット解除する。これにより、サブCPU115は、再起動して第一のSPIバス114へアクセスして、第一FLASH ROM120に格納されているメインCPU101の起動プログラムを読み込んで正当性検証を実施する。
この正当性検証の結果がOKであれば、時間t6で、サブCPU115は、検証終了信号150をHighに変化させて電源制御部118に通知する。電源制御部118は、この検証終了信号150の通知を受けて、メインCPUリセット信号117をHighに変化させてメインCPU101のリセットを解除する。これにより、メインCPU101は、第一のSPIバス114を介して第一FLASH ROM120に格納されている起動プログラムを読み出して起動する。
図11は、第3実施形態における電源制御部118の処理を説明するフローチャートである。なお、図5と同一の処理には同一のステップ番号を付してある。
第3実施形態では、電源制御部118は、時計割り込み信号を受けると(S501でYesの場合)、S1101の処理を実行する。
S1101において、電源制御部118は、バスSW切り替え信号902をLowに変化させてバスSW901を切断し、S503に処理を進める。
また、サブCPU115からの検証終了信号がHighに変化した場合(S505でYesの場合)、電源制御部118は、S1102に処理を進める。
S1102において、電源制御部118は、改竄検知レジスタの値を確認する。改竄検知レジスタの値が「0」の場合(S1102でNoの場合)、電源制御部118は、メインCPU101の起動プログラムに改変がなかったと判断し、S1103に処理を進める。
S1103において、電源制御部118は、バスSW切り替え信号902をHighに変化させてバスSW901を接続し、そのまま本処理を終了する。すなわち、メインCPU101の起動プログラムが改竄されていなければメインCPU101を再起動させることがない。なお、改竄検知レジスタの値が「1」の場合については後述する。
また、リカバリー通知信号151がHighに変化した場合(S507でYesの場合)、電源制御部118は、S1104に処理を進める。すなわち、CPU101の起動プログラムの改変が検知されてリカバリーが行われた場合、S1104に処理を進める。
S1104において、電源制御部118は、メインCPUリセット信号117をアサートして(Lowに制御して)メインCPU101をリセット状態にする。
さらにS1105において、電源制御部118は、バスSW切り替え信号902をHighに変化させてバスSW901を接続し、S508に処理を進める。
その後、リカバリーが終了し(S509でYesとなり)、さらに検証が終了する(S505でYesとなる)と、電源制御部118は、S1102に処理を進める。この場合、改竄検知レジスタの値が「1」となり(S1102でYesとなり)、電源制御部118は、S506に処理を進める。すなわち、電源制御部118は、メインCPUリセット信号117をディアサートし(メインCPUリセット信号117をHighに制御してメインCPU101をリセット解除し)、本処理を終了する。
以上、第3実施形態によれば、装置がスタンバイ中に起動プログラムの正当性検証を行う際、起動プログラムが改竄されていなければメインCPU101を再起動させることがなく処理を実行できる。一方、改竄検知されていた場合には、バスがぶつかることがなく、起動プログラムを安全に修復して起動し直すことができる。
なお、第3実施形態でも、第2実施形態と同様の構成を設け、メインCPU101から第一FLASH ROM120へのアクセスがなければ、正当性検証を行わないようにしてもよい。
以上、各実施形態によれば、スタンバイ状態から起動プログラムの正当性検証を行う場合であってもハードウェアの安全性を確保しつつ正当性検証ができる。この結果、情報処理装置を長時間OFFしないような使われ方をされる場合でも、起動プログラムの正当性を検証してセキュリティーを向上することが可能となる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
101 メインCPU
114 第一のSPIバス
115 サブCPU
117 メインCPUリセット信号
118 電源制御部
120 第一FLASH ROM
121 第二FLASH ROM

Claims (6)

  1. 情報処理装置であって、
    第一のプログラムを実行する処理手段と、
    前記第一のプログラムを記憶する第一の記憶手段と、
    前記第一のプログラムの正当性を検証する検証手段と、
    前記処理手段が前記第一の記憶手段から前記第一のプログラムを読み込んで実行して起動しているスタンバイ状態から、前記検証手段に前記正当性の検証を実行させる制御手段と、を有し、
    前記制御手段は、前記正当性の検証が行われている間、前記処理手段から前記第一の記憶手段へのアクセスが発生しないように制御することを特徴とする情報処理装置。
  2. 前記制御手段は、前記正当性の検証を行う間、前記処理手段をリセット状態にすることを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御手段は、前記処理手段が前記第一の記憶手段から前記第一のプログラムを読み込んで実行して起動した後に、前記処理手段から前記第一の記憶手段へのアクセスが発生したことに応じて、前記検証手段による前記正当性の検証を可能にすることを特徴とする請求項2に記載の情報処理装置。
  4. 前記処理手段から前記第一の記憶手段への接続を切るためのスイッチを有し、
    前記制御手段は、前記正当性の検証を行う間、前記スイッチにより前記処理手段から第一の記憶手段への接続を切ることを特徴とする請求項1に記載の情報処理装置。
  5. 前記第一の記憶手段に記憶されている前記第一のプログラムを復旧するための第二のプログラムを記憶する第二の記憶手段を有し、
    前記検証手段は、前記正当性を検証により前記プログラムの改変が検知された場合、前記第二のプログラムにより前記第一のプログラムを復旧することを特徴とする請求項1~4のいずれか1項に記載の情報処理装置。
  6. 第一のプログラムを実行する処理手段と、前記第一のプログラムを記憶する第一の記憶手段と、前記第一のプログラムの正当性を検証する検証手段と、を有する情報処理装置の制御方法であって、
    前記処理手段が前記第一の記憶手段から前記第一のプログラムを読み込んで実行して起動しているスタンバイ状態から、前記検証手段に前記正当性の検証を実行させる制御工程を有し、
    前記制御工程では、前記正当性の検証が行われている間、前記処理手段から前記第一の記憶手段へのアクセスが発生しないように制御することを特徴とする情報処理装置の制御方法。
JP2022077971A 2022-05-11 2022-05-11 情報処理装置及び情報処理装置の制御方法 Pending JP2023167086A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022077971A JP2023167086A (ja) 2022-05-11 2022-05-11 情報処理装置及び情報処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022077971A JP2023167086A (ja) 2022-05-11 2022-05-11 情報処理装置及び情報処理装置の制御方法

Publications (1)

Publication Number Publication Date
JP2023167086A true JP2023167086A (ja) 2023-11-24

Family

ID=88837739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022077971A Pending JP2023167086A (ja) 2022-05-11 2022-05-11 情報処理装置及び情報処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP2023167086A (ja)

Similar Documents

Publication Publication Date Title
US8310698B2 (en) Image forming apparatus and activating method thereof
US20080226080A1 (en) Encryption key restoring method, information processing apparatus, and encryption key restoring program
JP2008078762A (ja) 複合機
US11657125B2 (en) Information processing apparatus and reset control method
US20190230240A1 (en) Image processing apparatus, method of controlling the same, and storage medium
US20210011660A1 (en) Information processing apparatus and control method
US11418671B2 (en) Information processing apparatus, and method of controlling the same
JP2004303216A (ja) 情報処理装置,画像形成装置,プログラム起動時のエラー処理方法および記録媒体
JP2023129643A (ja) 情報処理装置、情報処理方法およびプログラム
JP2020057040A (ja) 情報処理装置とその制御方法、及びプログラム
JP2020047064A5 (ja)
JP2023167086A (ja) 情報処理装置及び情報処理装置の制御方法
US7350103B2 (en) Access log storage system and digital multi-function apparatus
JP2021089607A (ja) 情報処理装置
JP7229672B2 (ja) 画像形成装置、及び、画像形成装置の制御方法
JP2004303222A (ja) 情報処理装置,画像形成装置,プログラム起動方法および記録媒体
JP2011008310A (ja) データ処理装置、省電力制御方法、省電力制御プログラム及び記録媒体
JPH0998247A (ja) ファクシミリ装置
JP5251543B2 (ja) 画像処理装置、画像処理装置の性能向上防止方法及びプログラム
JP2009070106A (ja) 画像形成装置、データの処理方法並びにデータの処理プログラム
JP6398858B2 (ja) 電子機器およびリブートプログラム
JP2023124088A (ja) 情報処理装置および情報処理装置の制御方法
JP2020102129A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
US20220121536A1 (en) Information processing apparatus
US20230273798A1 (en) Information processing apparatus and method for controlling information processing apparatus