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

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

Info

Publication number
JP2022182837A
JP2022182837A JP2021090585A JP2021090585A JP2022182837A JP 2022182837 A JP2022182837 A JP 2022182837A JP 2021090585 A JP2021090585 A JP 2021090585A JP 2021090585 A JP2021090585 A JP 2021090585A JP 2022182837 A JP2022182837 A JP 2022182837A
Authority
JP
Japan
Prior art keywords
control means
program
cpu
abnormality
information processing
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
JP2021090585A
Other languages
English (en)
Inventor
和幸 横田
Kazuyuki Yokota
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 JP2021090585A priority Critical patent/JP2022182837A/ja
Publication of JP2022182837A publication Critical patent/JP2022182837A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】複数の制御部のそれぞれで用いられる情報について起動前に正当性の検証を行うとともに、異常が検知された場合であってもそれらの情報を用いない他の制御部を遅延させることなく起動させる情報処理装置及びその制御方法を提供する。【解決手段】情報処理装置は、各CPUで実行されるプログラムの正当性を検証するセキュアマイコン、各CPUで実行される第2プログラムを記憶する夫々のブートROM及びセキュアマイコンによって実行される第1プログラムと各CPUで実行される個々の第2プログラムのバックアップを記憶するセキュアマイコン用ブートROMを備える。セキュアマイコンは、第1プログラムを実行して、各第2プログラムの正当性を検証する。何れかの第2プログラムの異常を検知すると、その第2プログラムに対応するCPUをリセット解除して起動するとともに、第2プログラムの復旧処理を実行する。【選択図】図4

Description

本発明は、情報処理装置、及びその制御方法に関するものである。
画像形成装置はネットワークインタフェースを有しており、ファイル・サーバ機能やメール送受信機能をユーザに提供している。このように画像形成装置がネットワークに接続されることにより、PCやサーバと同様に不正なハッキングによる画像形成装置の不正使用の発生が考えられる。また、近年、多様化し続けるサイバー攻撃から全てのリスクを排除することは不可能であるという前提で、攻撃にあったとしても装置自身で攻撃される前の状態に復元させるサイバーレジリエンスという考え方が重視されてきている。したがって、装置を起動する際に、装置に保持された情報の改竄や経年劣化による保持された情報の変化について検証が必要になってきている。以下では、保持されている情報に対して改竄や経年劣化による変化が生じていないかの検証を「正当性の検証」と称する。
また、複数のCPU(制御部)を有する画像形成装置においては、メインCPUを起動するファームウェアについての正当性の検証のみならず、各々のCPUを起動する各々のファームウェアについて正当性の検証を行う必要がある。特許文献1には、複数のCPUが各々のブートプログラムを用いて起動処理を実行し、各々のCPUに対応したファームウェアを起動する装置において、対象のファームウェアの異常を検知した際に、別のCPUがファームウェアを修復する方法が提案されている。
特開2014-179047号公報
しかしながら、上記従来技術には以下に記載する課題がある。上記従来技術のように、検証対象となる複数のCPUが起動した後に、各々のCPUで使用されるファームウェアをCPU自身が検証する構成では、各CPUで使用するブートROMに対してCPU起動前の正当性の検証は行われていない。
そのため、起動前のブートROM内のデータに対しても正当性の検証を行うためには、正当性の検証専用のセキュアマイコンを搭載する構成が考えられる。この構成では、例えばセキュアマイコンにより各ブートROM内のデータの正当性を検証した後に、検証済のCPUの起動を許可する。しかし、正当性の検証により少なくとも1つ以上のブートROMについて異常を検知して修復する必要がある場合には、その修復の時間分だけ修復を必要としないCPUの起動を遅延させてしまうこととなる。
本発明は、上述の課題の少なくとも一つに鑑みて成されたものであり、複数の制御部のそれぞれで用いられる情報について起動前に正当性の検証を行うとともに、異常が検知された場合であってもそれらの情報を用いない他の制御部を遅延させることなく起動させる仕組みを提供する。
本発明は、情報処理装置であって、他の制御手段で実行されるプログラムの正当性を検証する第1制御手段と、前記第1制御手段によってリセットが解除されると起動を行う複数の第2制御手段と、前記第1制御手段によって実行される第1プログラムと、前記複数の第2制御手段のそれぞれで実行されるそれぞれの第2プログラムのバックアップとを記憶する第1記憶手段と、前記複数の第2制御手段のそれぞれに対応し、対応する第2制御手段で実行される第2プログラムを記憶する複数の第2記憶手段とを備え、前記第1制御手段は、前記第1記憶手段に記憶された前記第1プログラムを実行して、前記複数の第2制御手段のそれぞれの第2プログラムの正当性を順次検証し、前記複数の第2制御手段のうち何れかの第2制御手段に対応する第2プログラムの異常を検知した場合に、それまでに正常と判断した第2プログラムに対応する1以上の第2制御手段のリセットを解除するとともに、異常を検知した第2プログラムを、前記第1記憶手段に記憶された対応するバックアップのデータを用いて修復する復旧処理を実行することを特徴とする。
また、本発明は、情報処理装置であって、他の制御手段で実行されるプログラムの正当性を検証する第1制御手段と、前記第1制御手段によってリセットが解除されると起動を行う複数の第2制御手段と、前記第1制御手段によって実行される第1プログラムと、前記複数の第2制御手段のそれぞれで実行されるそれぞれの第2プログラムのバックアップとを記憶する第1記憶手段と、前記複数の第2制御手段のそれぞれに対応し、対応する第2制御手段で実行される第2プログラムを記憶する複数の第2記憶手段とを備え、前記第1制御手段は、前記第1記憶手段に記憶された前記第1プログラムを実行して、前記複数の第2制御手段の全ての第2プログラムの正当性を検証し、前記複数の第2制御手段のうち何れかの第2制御手段に対応する第2プログラムの異常を検知した場合に、正常と判断した第2プログラムに対応する1以上の第2制御手段のリセットを解除するとともに、異常を検知した第2プログラムを、前記第1記憶手段に記憶された対応するバックアップのデータを用いて修復する復旧処理を実行することを特徴とする。
本発明によれば、複数の制御部のそれぞれで用いられる情報について起動前に正当性の検証を行うとともに、異常が検知された場合であってもそれらの情報を用いない他の制御部を遅延させることなく起動させることができる。
一実施形態に係るシステム構成を示すブロック図。 一実施形態に係るコントローラ構成図。 一実施形態に係るメモリマップイメージ図。 一実施形態に係るROMに対する接続構成図。 一実施形態に係るセキュアマイコンの動作フロー。 一実施形態に係る正当性の検証と各CPUの起動タイミングを示す図。 一実施形態に係るCPUの動作フロー。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
<システム構成>
以下では、本発明の一実施形態について説明する。まず、図1を参照して、本実施形態に係るシステム構成の一例を説明する。
図1に示すように、本実施形態に係るシステムでは、ホストコンピュータ103、104及び画像形成装置(情報処理装置)100、101、102がLAN105に接続されている。しかし、本発明におけるシステムにおいて、これらの接続数に限られることはない。また、本実施形態では接続方法としてLAN105を適用しているが、これに限ることはない。例えば、WAN(公衆回線)などの任意のネットワークなども適用可能である。
ホストコンピュータ(以下、PCと称する)103、104はパーソナルコンピュータの機能を有している。PC103は、LAN105やWANを介してファイルを送受信したり、電子メールを送受信したりすることが可能である。PC104に関しても、PC103と同様であるため、詳細な説明は省略する。
また、PC103、104から画像形成装置100、101、102に対して、プリンタドライバを介した印字命令が可能となっている。さらに、PC103、104は、定期的に画像形成装置100、101、102に対して、画像形成装置の状態を問い合わせることができる。一方、PC103、104からの要求によって、画像形成装置100、101、102は印刷可能か否かなどの情報を返信することができる。
画像形成装置100は、情報処理装置の一例であり、画像入力デバイスであるスキャナ部、画像出力デバイスであるプリンタ部、画像形成装置全体の動作を司るコントローラ、ユーザからの操作受付・表示を行うユーザインタフェース(UI)を有する構成である。以下では画像形成装置100の詳細構成について説明する。なお、画像形成装置101、102に関しては、画像形成装置100と同様の構成であるため詳細な説明は省略する。
<コントローラ構成>
次に、図2を参照して、本実施形態に係る画像形成装置100の制御構成を説明する。画像形成装置100は、メインCPU201、メインCPU用ブートROM202、RAM203、HDD204、操作部I/F205、LANコントローラ206、画像処理部207、スキャナ画像処理部208、及びスキャナCPU209を備える。また、画像形成装置100は、スキャナCPU用ブートROM210、スキャナ画像読取部211、プリンタ画像処理部212、プリンタCPU213、プリンタCPU用ブートROM214、及びプリンタ画像書込部215を備える。また、画像形成装置100は、組込コントローラであるセキュアマイコン218及びセキュアマイコン用ブートROM219を備える。
メインCPU201は、メインCPU用ブートROM202に記憶されたファームウェア及び制御プログラム等に基づいて、接続中の各種デバイスとのアクセスを統括的に制御すると共に、コントローラ内部で行われる各種処理についても統括的に制御する。メインCPU用ブートROM202は、メインCPU201を起動させるためのファームウェア及び制御プログラムが格納されている。そのファームウェアがメインCPU用ブートROM202にメモリマップされているイメージは図3(B)の通りである。また、メインCPU用ブートROM202は、メインCPU201からもセキュアマイコン218からもアクセス可能な構成となっている。両方からアクセスするための接続バス構成に関しては後述する。RAM203は、CPU201が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するためのメモリでもある。このRAM203は、SRAM及びDRAMにより構成される。HDD204は、ハードディスクドライブであり、システムソフトウェアや画像データを格納することが可能となっている。
操作部I/F205は、システムバス221と操作部220とを接続するためのインタフェース部である。この操作部I/F205は、操作部220に表示するための画像データをシステムバス221から受け取り、操作部220に出力すると共に、操作部220から入力された情報をシステムバス221へと出力する。LANコントローラ206は、LAN105及びシステムバス221に接続し、情報の入出力を行うことにより、画像形成装置100とネットワークとの通信を制御する。
画像処理部207は、画像処理を行うためのものであり、RAM203に記憶された画像データを読み出し、JPEG、JBIGなどの拡大又は縮小や、色調整などの画像処理を行うことが可能である。ここで画像処理されたデータはRAM203やHDD204に格納される。
スキャナ画像処理部208は、スキャナCPU209、スキャナCPU用ブートROM210、スキャナ画像読取部211を含むスキャナ部から受け取った画像データに対して、補正、加工及び編集を行う。なお、スキャナ画像処理部208は、受け取った画像データがカラー原稿か白黒原稿か、文字原稿か写真原稿かなどを判定する。そして、その判定結果を画像データに属性データとして付随させる。
スキャナCPU209は、スキャナCPU用ブートROM210に記憶されたファームウェア及び制御プログラムに基づいて、スキャナ用システムバス216を介して接続されている各モジュールを制御する。スキャナCPU用ブートROM210には、スキャナCPU209を起動させるためのファームウェア及び制御プログラムが格納されている。そのファームウェアがスキャナCPU用ブートROM210にメモリマップされているイメージ図は図3(C)の通りである。
スキャナ画像読取部211は、原稿上の画像を読取ユニットにより、画像情報を電気信号に変換し、さらに電気信号をR/G/B各色からなる輝度信号に変換して、スキャナ画像処理部208に送信する。プリンタ画像処理部212は、画像データに付随されている属性データを参照しながら画像データに画像処理を施す。画像処理後の画像データは、プリンタCPU213、プリンタCPU用ブートROM214、及びプリンタ画像書込部215を含むプリンタ部に出力される。
プリンタCPU213は、プリンタCPU用ブートROM214に記憶されたファームウェア及び制御プログラムに基づいて、プリンタ用システムバス217を介して接続されている各モジュールを制御する。プリンタCPU用ブートROM214には、プリンタCPU213を起動させるためのファームウェア及び制御プログラムが格納されている。そのファームウェアがプリンタCPU用ブートROM214にメモリマップされているイメージ図は図3(D)の通りである。プリンタ画像書込部215は、プリンタ画像処理部212からプリンタ用システムバス217を介して送信されてきた画像データに基づき、印刷媒体に画像を形成する。
セキュアマイコン218は、トラステッドブートの基点となるハードウェア・デバイスである。セキュアマイコン218は、デバイス内部に鍵となるヒューズを備えており、そのカギを使用して、セキュアマイコン用ブートROM219内のセキュアマイコン用ファームの正当性の検証を実施した上で起動する。また、セキュアマイコン218は、各種ブートROM202、210、214に格納されたファームウェアの異常が検知されていないか又は経年劣化により変化していないかどうかの正当性の検証も行う。ここでの正当性の検証方法については、任意の手法を採用することができる。例えば、検証対象のファームウェアを用いて生成された署名データが各領域に格納されており、当該署名データを公開鍵によって復号し、ダイジェストを算出する。さらに、他のデータについてハッシュ関数を用いてダイジェスト値を算出して比較することにより検証を行ってもよい。ここで、署名データとは、検証対象の領域における署名データ以外のデータから算出されたダイジェストに対して、鍵生成アルゴリズムで生成した秘密鍵を用いて、公開鍵暗号アルゴリズムによって暗号化したデータである。ダイジェストの生成については、例えば、SHA1アルゴリズムなどを採用することができる。また、公開鍵情報は、事前にセキュアマイコン218内で保持してもよい。或いは、検証対象の領域内に保持する形態でもあってもよい。公開鍵による復号処理について本発明を限定する意図はなく、例えば楕円暗号やRSA暗号など、種々の公開鍵暗号技術の復号アルゴリズムを適用できる。
セキュアマイコン218は、正当性の検証により問題ないと判断した場合のみ各種CPU201、209、213のリセットを順次解除する。さらに、セキュアマイコン218は、各種CPU用ブートROMに格納されているファームウェアの異常を検知した場合、後述するセキュアマイコン用ブートROM219内の該当するファームウェアを読み出し、異常が検知されたデータを書き直して修復する。本発明では、セキュアマイコン用ブートROM219がサイバー攻撃を受けないようにするために、各種CPU201、209、213とは接続しておらず、各種CPUからセキュアマイコン用ブートROM219に対してアクセスできない構成となっている。即ち、各種CPUを介してセキュアマイコン用ブートROM219の内容を書き換えることはできない。
セキュアマイコン用ブートROM219には、セキュアマイコン218を起動させるためのファームウェア/制御プログラムが格納されている。さらに、各種CPU用ブートROM202、210、214に格納されている各種CPU201、209、213を起動させるためのファームウェア/制御プログラムが格納されている。各々のファームウェアがセキュアマイコン用ブートROM219にメモリマップされているイメージ図は図3(A)の通りである。セキュアマイコン用ブートROM219は、セキュアマイコン218からのみアクセス可能な構成になっている。これは例えば、セキュアマイコン用ブートROM219が、セキュアマイコン218へのみバスを介して接続され、他のCPU201、209、213に対してはバスを介して接続されないことにより実現される。
<メモリマップイメージ>
次に、図3を参照して、本実施形態に係る各ROMのメモリマップイメージについて説明する。図3(A)はセキュアマイコン用ブートROM219を示す。図3(B)はメインCPU用ブートROM202を示す。図3(C)はスキャナCPU用ブートROM210を示す。図3(D)はプリンタCPU用ブートROM214を示す。
図3(A)に示すように、セキュアマイコン用ブートROM219には、セキュアマイコン用ファームウェア301、及びリカバリ時に使用するための各種CPU用ブートROM302、303、304のバックアップのデータが格納されている。セキュアマイコン用ファームウェア301は、セキュアマイコン218が動作するためのファームウェアである。
リカバリ用メインCPUファームウェア302は、図3(B)に示すメインCPU用ブートROM202内のメインCPU用ファームウェア305の異常が検知された場合に、復旧用のデータとして用いられる。リカバリ用スキャナCPUファームウェア303は、図3(C)に示すスキャナCPU用ブートROM210内のスキャナCPU用ファームウェア306の異常が検知された場合に、復旧用のデータとして用いられる。リカバリ用プリンタCPUファームウェア304は、図3(D)に示すプリンタCPU用ブートROM214内のプリンタCPU用ファームウェア307の異常が検知された場合に、復旧用のデータとして用いられる。
メインCPU用ファームウェア305は、メインCPU用ブートROM202に格納されており、メインCPU201が動作するためのファームウェアである。また、セキュアマイコン218により正当性の検証が行われる領域となっており、異常が検知された場合には、リカバリ用メインCPUファームウェア302を用いて書き直しが行われる。スキャナCPU用ファームウェア306は、スキャナCPU用ブートROM210に格納されており、スキャナCPU209が動作するためのファームウェアである。また、セキュアマイコン218により正当性の検証が行われる領域となっており、異常が検知された場合には、リカバリ用スキャナCPUファームウェア303を用いて書き直しが行われる。プリンタCPU用ファームウェア307は、プリンタCPU用ブートROM214に格納されており、プリンタCPU213が動作するためのファームウェアである。また、セキュアマイコン218により正当性の検証が行われる領域となっており、異常が検知された場合には、リカバリ用プリンタCPUファームウェア304を用いて書き直しが行われる。
<ROMに対する接続図>
次に、図4を参照して、本実施形態に係る各ROMにアクセスするためのバス構成を説明する。ここでは、SPIバスを例に説明するが、本発明はSPIバスに限定されるものではない。
信号401は、SPIのチップセレクト信号(CS1#)である。チップセレクト信号401は、メインCPU用ブートROM202にアクセスするために使用する信号である。本チップセレクト信号401はメインCPU201からもセキュアマイコン218からも使用可能な信号である。そのため、セキュアマイコン218がメインCPU用ブートROM202にアクセスする際には、セキュアマイコン218がチップセレクト信号401を制御する。一方で、メインCPU201がメインCPU用ブートROM202にアクセスする際には、メインCPU201がチップセレクト信号401を制御することになる。
信号402は、SPIのチップセレクト信号(CS2#)である。チップセレクト信号402は、スキャナCPU用ブートROM210にアクセスするために使用する信号である。本チップセレクト信号402は、スキャナCPU209からもセキュアマイコン218からも使用可能な信号である。そのため、セキュアマイコン218がスキャナCPU用ブートROM210にアクセスする際には、セキュアマイコン218がチップセレクト信号402を制御する。一方で、スキャナCPU209がスキャナCPU用ブートROM210にアクセスする際には、スキャナCPU209がチップセレクト信号402を制御することになる。
信号403は、SPIのチップセレクト信号(CS3#)である。チップセレクト信号403は、プリンタCPU用ブートROM214にアクセスするために使用する信号である。本チップセレクト信号403は、プリンタCPU213からもセキュアマイコン218からも使用可能な信号である。そのため、セキュアマイコン218がプリンタCPU用ブートROM214にアクセスする際には、セキュアマイコン218がチップセレクト信号403を制御する。一方で、プリンタCPU213がプリンタCPU用ブートROM214にアクセスする際には、プリンタCPU213がチップセレクト信号403を制御することになる。
信号404は、SPIのクロック信号(CLK)である。クロック信号404は、各種CPU用ブートROM202、210、214にアクセスするための信号である。また、本クロック信号404は、各種CPU201、209、213からもセキュアマイコン218からも使用可能な信号である。そのため、セキュアマイコン218が各種CPU用ブートROM202、210、214にアクセスする際には、セキュアマイコン218がクロック信号404を制御する。一方で、メインCPU201がメインCPU用ブートROM202にアクセスする際には、メインCPU201が、クロック信号404(405)を制御する。同様に、スキャナCPU209がスキャナCPU用ブートROM210にアクセスする際には、スキャナCPU209が、クロック信号404(406)を制御する。プリンタCPUがプリンタCPU用ブートROM214にアクセスする際には、プリンタCPU213が、クロック信号404(407)を制御する。
信号408は、SPIのデータバス信号(IO)である。データバス信号408は、各種CPU用ブートROM202、210、214にアクセスするための信号である。また、本データバス信号408は、各種CPU201、209、213からもセキュアマイコン218からも使用可能な信号である。そのため、セキュアマイコン218が各種CPU用ブートROM202、210、214にアクセスする際には、セキュアマイコン218がデータバス信号408を制御する。一方で、メインCPU201がメインCPU用ブートROM202にアクセスする際には、メインCPU201が、データバス信号408(409)を制御する。同様に、スキャナCPU209がスキャナCPU用ブートROM210にアクセスする際には、スキャナCPU209が、データバス信号408(410)を制御する。プリンタCPU213がプリンタCPU用ブートROM214にアクセスする際には、プリンタCPU213が、クロック信号408(411)を制御する。
信号412は、SPIのチップセレクト信号(CS0#)である。チップセレクト信号412は、セキュアマイコン用ブートROM219にアクセスするのに使用する信号で、本チップセレクト信号412は、セキュアマイコン218から使用可能な信号である。そのため、メインCPU201がセキュアマイコン用ブートROM219にアクセスすることはできない構成になっている。信号413は、SPIのクロック信号(CLK)である。クロック信号413は、セキュアマイコン用ブートROM219にアクセスするための信号であり、セキュアマイコン218が制御を行う。信号414は、SPIのデータバス信号(IO)である。データバス信号414は、セキュアマイコン用ブートROM219にアクセスするための信号であり、セキュアマイコン218が制御を行う。
信号415は、セキュアマイコン218がメインCPU201のリセットを解除するための信号(RESET1#)である。セキュアマイコン218は、メインCPU用のブートROM202内のファームウェア305の正当性を検証し、検証結果が問題なかった場合に、リセット信号415をLowからHighに遷移させる。メインCPU201は、リセット信号415がHighになった(リセット解除された)のを検知すると起動を開始する。メインCPU201は、リセット解除されると、メインCPU用ブートROM202からファームウェア305を読み出し、起動処理を実行する。
信号416は、セキュアマイコン218がスキャナCPU209のリセットを解除するための信号(RESET2#)である。セキュアマイコン218は、スキャナCPU用のブートROM210内のファームウェア306の正当性を検証し、検証結果が問題なかった場合に、リセット信号416をLowからHighに遷移させる。スキャナCPU209は、リセット信号416がHighになった(リセット解除された)のを検知すると起動を開始する。スキャナCPU209は、リセット解除されると、スキャナCPU用ブートROM210からファームウェア306を読み出し、起動処理を実行する。
信号417は、セキュアマイコン218がプリンタCPU213のリセットを解除するための信号(RESET3#)である。セキュアマイコン218は、プリンタCPU用のブートROM214内のファームウェア307の正当性を検証し、検証結果が問題なかった場合に、リセット信号417をLowからHighに遷移させる。プリンタCPU213は、リセット信号417がHighになった(リセット解除された)のを検知すると起動を開始する。プリンタCPU213は、リセット解除されると、プリンタCPU用ブートROM214からファームウェア307を読み出し、起動処理を実行する。
<セキュアマイコンの動作フロー>
次に、図5を参照して、本実施形態に係るセキュアマイコン218の動作フローについて説明する。本実施形態では、メインCPU201、スキャナCPU209、及びプリンタCPU213を含む3つのCPUのブートROMに対して正当性の検証を行っているが、一例であり対象が3つに制限されるものではない。以下で説明する処理は、セキュアマイコン218がセキュアマイコン用ブートROM219からセキュアマイコン用ファームウェア301を読み出して実行することにより実現される。セキュアマイコン用ブートROM219は、図4を用いて説明したように、他のCPUからアクセスすることができないため、他のCPUと比較して改竄される虞がない。したがって、本実施形態ではセキュアマイコン218が各CPUのブートROMの正当性を検証する。
S501でセキュアマイコン218に電源が投入されていない状態から、電源が投入されるとS502に遷移し、処理を開始する。S502で、セキュアマイコン218は起動処理を実行する。具体的には、セキュアマイコン218は、セキュアマイコン用ブートROM219からセキュアマイコン用ファームウェア301を読み出し、セキュアマイコン218内部にあるヒューズ設定されている鍵情報を用いて検証を行う。当該検証において異常が検知されなければセキュアマイコン用ファームウェア301での起動処理を行う。セキュアマイコン218が起動を開始するとS503に遷移する。
S503で、セキュアマイコン218は、メインCPU用ファームウェア305の読み出しを行う。セキュアマイコン218は、ROM内部のデータで正当性を検証するためにメインCPU用ブートROM202からメインCPU用ファームウェア305を読み出す。メインCPU用ファームウェア305の読み出しが完了するとS504に遷移する。上記説明では、正当性の検証対象がメインCPU201、スキャナCPU209、プリンタCPU213の3か所あり、メインCPU201から正当性が順次検証されるものとする。そのため、後述するS510の処理後、2度目のS503の処理を実施する場合には、メインCPUに対する処理がスキャナCPUに置き換わり、3度目のS503の処理を実施する場合には、メインCPUに対する処理がプリンタCPUに置き換わる。
以下、S504~S509に関して、メインCPUへの処理を代表して記載するものとする。S504で、セキュアマイコン218は、読み出したメインCPU用ファームウェア305の正当性を検証する。セキュアマイコン218は、S503で読み出したメインCPU用ファームウェア305がサイバー攻撃等により書き換えられてしまっていないか(改竄されているかどうか)又は経年劣化によりデータが変化していないかの検証を行う。検証方法については、上述した署名データを用いる方法や、他の任意の手法を用いることができる。セキュアマイコン218は、読み出したメインCPU用ファームウェア305の異常が検知されなければS510に遷移し、読み出したメインCPU用ファームウェア305の異常を検知するとS505に遷移する。
S505で、セキュアマイコン218は、異常が検知されたデータに対する復旧処理(書き直し処理)を行う前に、それまでに正当性の検証した結果で問題なしと判断したCPUに対してリセット解除を行う。セキュアマイコン218は、各種CPU201、209、213のうち正常と判断されているCPUに対するリセット信号415、416、417をLowからHighに遷移させて各種CPU201、209、213のリセット解除を行う。例えば、S504でのメインCPU201に対する処理にて異常が検知されたと判断されてS505に遷移してきた場合、それまでに正当性の検証で問題なしと判断したCPUはないので、S505の処理はスキップされる。また、S504でのプリンタCPU213に対する処理にて異常が検知されたと判断されてS505に遷移してきた場合、それまでに正当性の検証で問題なしと判断したメインCPU201とスキャナCPU209に対してリセット処理を行う。正当性の検証で正常と判断したCPUに対してリセット解除を行うことで、正常と判断したCPUの起動処理を遅らせることなく、かつ後述するファームウェアの復旧を行うことができる。つまり、本実施形態に係る画像形成装置では、異常が検知されたCPUの復旧処理を待つことなく、正常と判断された他のCPUについては先行して起動を行うことにより、上記他のCPUにおける起動遅延を回避することができる。
S506で、セキュアマイコン218は、セキュアマイコン用のブートROM219内のリカバリ用メインCPUファームウェア302(バックアップデータ)の読み出しを行う。セキュアマイコン218は、異常が検知されたメインCPU用ブートROM202内データを復旧するために、セキュアマイコン用ブートROM219内に格納されているリカバリ用メインCPU用ファームウェア302の読み出しを行う。セキュアマイコン218は、セキュアマイコン用ブートROM219からのリカバリ用メインCPUファームウェア302の読み出しが完了するとS507に遷移する。
S507で、セキュアマイコン218は、異常が検知されたメインCPU用ブートROM202内のメインCPU用ファームウェア305領域の書き直しを行う。セキュアマイコン218は、S506でセキュアマイコン用ブートROM219から読み出したリカバリ用メインCPUファームウェア302をメインCPU用ブートROM202内のメインCPUファームウェア305領域に対して書き込む。これによって、異常が検知されたメインCPU用ブートROM202内のファームウェア・データの復旧を行うことができる。
次に、S508で、セキュアマイコン218は、復旧後のメインCPU用ファームウェア305の読み出しを行う。セキュアマイコン218は、ROM内部のデータについて正当性の検証を行うためにメインCPU用ブートROM202からメインCPU用ファームウェア305を読み出す。メインCPU用ファームウェア305の読み出しが完了するとS509に遷移する。
S509で、セキュアマイコン218は、読み出したメインCPU用ファームウェア305の正当性を検証する。セキュアマイコン218は、S508で読み出したメインCPU用ファームウェア305の正当性を検証する。ここでは、サイバー攻撃等により書き換えられてしまっていないか(改竄されているかどうか)、経年劣化によりデータが変化していないか、又は、書き直しの際に失敗していないかの検証が行われる。セキュアマイコン218は、読み出したメインCPU用ファームウェア305の異常が検知されていなければS510に遷移し、読み出したメインCPU用ファームウェア305の異常が検知された場合にはそこで起動処理を停止し、本処理を終了する。起動を停止する場合には、エラー通知を操作部220を介して行うとともに、履歴情報としてHDD204等に格納してもよい。また、起動可能なCPUによって提供される機能の提供を継続して行ってもよいし、装置自体の処理を停止するようにしてもよい。
S510で、セキュアマイコン218は、正当性の検証対象のブートROMについて、すべて正当性の検証を完了したかどうかを判定する。すべて正当性の検証を完了すると、S511に遷移し、まだ完了していないCPUがあればS503に遷移して次のブートROMの正当性の検証を行う。
S511で、セキュアマイコン218は、各種CPU201、209、213のうち、まだリセット解除が行われていないCPUのリセット解除を行い、処理を終了する。セキュアマイコン218は、各種CPU201、209、213に対するリセット信号415、416、417をLowからHighに遷移させて各種CPUのリセット解除を行う。これによって、各種CPU201、209、213が動作可能な状態になる。
<正当性の検証と各CPUの起動タイミング>
次に、図6を参照して、本実施形態に係るセキュアマイコン218による正当性の検証と各種CPU201、209、213の起動タイミングとについて説明する。図6において横軸は時間の経過を示す。
まず正当性の検証601では、セキュアマイコン218がメインCPU用ブートROM202の正当性の検証を行っている。ここでは、正当性を検証した結果、異常なしと判断している。続いて、正当性の検証602では、正当性の検証601の後にセキュアマイコン218がスキャナCPU用ブートROM210の正当性の検証を行っている。ここでは、正当性を検証した結果問題なしと判断している。さらに、正当性の検証603では、正当性の検証602の後にセキュアマイコン218がプリンタCPU用ブートROM214の正当性の検証を行っている。ここでは、正当性の検証の結果、プリンタCPU用ブートROM214のデータにおいて異常が検知され、復旧が必要と判断している。
次に、Reset解除指示604では、対応するファームウェアが正常と判断されたCPUに対してReset解除指示を出している。ここでは、メインCPU用ブートROM202とスキャナCPU用ブートROM210に対して問題なしと判断しているので、セキュアマイコン218はReset1#(415)及びReset2#(416)を使用してReset解除指示を出す。このReset解除指示により、時刻T1(614)からメインCPU201及びスキャナCPU209は起動を開始する。一方で、プリンタCPU用ブートROM214に対して異常ありと判断しているので、セキュアマイコン218はReset解除指示を出さず、プリンタCPU用ブートROM214のデータの復旧を開始する。
復旧処理605では、セキュアマイコン218はセキュアマイコン用ブートROM219内のリカバリ用プリンタCPUファームウェア304を用いて、プリンタCPU用ブートROM214内のプリンタCPU用ファームウェア307の書き直しを行う。これにより、時刻T1(614)においてセキュアマイコン218が問題なしと判断したブートROM(202、210)のCPUは起動を開始し、異常と判断したブートROM(214)には復旧処理が並行して行われる。
正当性の検証606では、復旧処理605の後にセキュアマイコン218が復旧後のプリンタCPU用ブートROM214の正当性の検証を行っている。ここでは、正当性を検証した結果問題なしと判断している。Reset解除指示607では、CPUに対してReset解除指示を出している。ここでは、プリンタCPU用ブートROM214に対して、セキュアマイコン218はReset3#(417)を使用してReset解除指示を出す。このReset解除指示により、時刻T2(615)からプリンタCPU213は起動を開始する。
メインCPU201のReset状態608は、メインCPU201に対してResetがかけられ、メインCPU201がReset状態であることを示している。スキャナCPU209のReset状態609は、スキャナCPU209に対してResetがかけられ、スキャナCPU209がReset状態であることを示している。プリンタCPU213のReset状態610は、プリンタCPU213に対してResetがかけられ、プリンタCPU213がReset状態であることを示している。
メインCPU201の起動状態611は、メインCPU201に対するResetが解除され、メインCPU201が起動を開始した状態であることを示している。スキャナCPU209の起動状態612は、スキャナCPU209に対するResetが解除され、スキャナCPU209が起動を開始した状態であることを示している。プリンタCPU213の起動状態613は、プリンタCPU213に対するResetが解除され、プリンタCPU213が起動を開始した状態であることを示している。
<各種CPUの動作フロー>
次に、図7を参照して、本実施形態に係る各種CPU201、209、213の動作フローを説明する。以下では、メインCPU201の処理を代表して記載するものとする。他のCPU209、213についても以下で説明する処理と同様の処理が行われる。
S701で、メインCPU201において電源が投入されたかどうかを判定し、電源が投入されるとS602に遷移する。続いて、S702で、メインCPU201においてリセット解除されているか否かを判定し、リセット解除されるとS703に遷移する。例えばセキュアマイコン218がメインCPU201のリセット解除を行うS505又はS511が実行されることによって、メインCPU201のリセットが解除されS703に遷移する。
S703で、メインCPU201は、メインCPU用ブートROM202からメインCPU用ファームウェア305を読み出し、起動を行う。メインCPU201は、セキュアマイコン218によって正当性が検証されたメインCPU用ファームウェア305を、メインCPU用ブートROM202内から読み出して実行する。これにより、異常が検知されていないメインCPU用ファームウェア305で起動することができる。
本実施形態では、セキュアマイコン218により異常が検知された場合に、そのタイミング(復旧処理を実行する前のタイミング)において既に正常と判定されているCPUのブート起動と、異常が検知されたファームの復旧とを行う。しかし、本発明をこのような制御に限定するものではなく、セキュアマイコン218がすべての正当性の検証対象のCPUを正当性の検証した後に、まとめて正常判定のCPUブート起動と、異常が検知されたファームの復旧を随時行うものであってもよい。つまり、検証対象のCPUの検証をすべて完了した後に、正常と判断されたCPUを起動しつつ、異常と判断されたCPUのファームウェアを復旧する処理を実行するようにしてもよい。
以上説明したように、本情報処理装置は、他の制御部で実行されるプログラムの正当性を検証する第1制御部(218)と、第1制御部によってリセットが解除されると起動を行う複数の第2制御部(202、209、213)と、を含む。また、本情報処理装置は、第1制御部によって実行される第1プログラムと、複数の第2制御部のそれぞれで実行されるそれぞれの第2プログラムのバックアップとを記憶する第1記憶部(219)を備える。さらに、本情報処理装置は、複数の第2制御部のそれぞれに対応し、対応する第2制御部で実行される第2プログラムを記憶する複数の第2記憶部(202、210、214)とを備える。また、第1制御部は、第1記憶部に記憶された第1プログラムを実行して、複数の第2制御部のそれぞれの第2プログラムの正当性を順次検証する。さらに、第1制御部は、複数の第2制御部のうち何れかの第2制御部に対応する第2プログラムの異常を検知した場合に、それまでに正常と判断した第2プログラムに対応する1以上の第2制御部のリセットを解除する。さらに、第1制御部は、異常を検知した第2プログラムを、対応するバックアップのデータを用いて修復する復旧処理を実行する。このように、本実施形態によれば、異常が検知された場合に復旧処理を行う際には、それまでに正当性の検証で正常と判断されたCPUに対してリセット解除処理を行うことで起動開始しつつ、並行して異常が検知されたファームウェアの復旧を行う。これにより、正常判定のCPUの起動開始遅延をなくすことが可能となり、ユーザへの利便性を向上させることができる。
また、本実施形態によれば、セキュアマイコン用ブートROM219に対して各種CPU201、209、213から直接アクセスできない構成にしておくことで、セキュアマイコン用ブートROM219がサイバー攻撃を受けない構成となっている。これにより、各種CPU用ブートROM(202、210、214)が改竄されてしまったとしても、セキュアマイコン用ブートROM219内のデータを使って確実に復旧させることが可能となっている。
また本発明は上記実施形態に限らず様々な変形が可能である。例えば、第1制御部は、第1記憶部に記憶された第1プログラムを実行して、複数の第2制御部の全ての第2プログラムの正当性を検証してもよい。さらに、第1制御部は、複数の第2制御部のうち何れかの第2制御部に対応する第2プログラムの異常を検知した場合に、正常と判断した第2プログラムに対応する1以上の第2制御部のリセットを解除し、異常を検知した第2プログラムを修復する。このように、まずは全ての第2制御部の検証を行い、正常と判断したCPUについては起動させ、並行して異常と判断したCPUのファームウェアの復旧を行ってもよい。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
201:メインCPU、202:メインCPU用ブートROM、203:RAM、204:HDD、205:操作部I/F、206:LANコントローラ、207:画像処理部、208:スキャナ画像処理部、209:スキャナCPU、210:スキャナ用ブートROM、211:スキャナ画像読取部、212:プリンタ画像処理部、213:プリンタCPU、214:プリンタ用ブートROM、215:プリンタ画像書込部、216:スキャナ用システムバス、217:プリンタ用システムバス、218:セキュアマイコン、219:セキュアマイコン用ブートROM

Claims (9)

  1. 情報処理装置であって、
    他の制御手段で実行されるプログラムの正当性を検証する第1制御手段と、
    前記第1制御手段によってリセットが解除されると起動を行う複数の第2制御手段と、
    前記第1制御手段によって実行される第1プログラムと、前記複数の第2制御手段のそれぞれで実行されるそれぞれの第2プログラムのバックアップとを記憶する第1記憶手段と、
    前記複数の第2制御手段のそれぞれに対応し、対応する第2制御手段で実行される第2プログラムを記憶する複数の第2記憶手段と
    を備え、
    前記第1制御手段は、前記第1記憶手段に記憶された前記第1プログラムを実行して、前記複数の第2制御手段のそれぞれの第2プログラムの正当性を順次検証し、前記複数の第2制御手段のうち何れかの第2制御手段に対応する第2プログラムの異常を検知した場合に、それまでに正常と判断した第2プログラムに対応する1以上の第2制御手段のリセットを解除するとともに、異常を検知した第2プログラムを、前記第1記憶手段に記憶された対応するバックアップのデータを用いて修復する復旧処理を実行することを特徴とする情報処理装置。
  2. 情報処理装置であって、
    他の制御手段で実行されるプログラムの正当性を検証する第1制御手段と、
    前記第1制御手段によってリセットが解除されると起動を行う複数の第2制御手段と、
    前記第1制御手段によって実行される第1プログラムと、前記複数の第2制御手段のそれぞれで実行されるそれぞれの第2プログラムのバックアップとを記憶する第1記憶手段と、
    前記複数の第2制御手段のそれぞれに対応し、対応する第2制御手段で実行される第2プログラムを記憶する複数の第2記憶手段と
    を備え、
    前記第1制御手段は、前記第1記憶手段に記憶された前記第1プログラムを実行して、前記複数の第2制御手段の全ての第2プログラムの正当性を検証し、前記複数の第2制御手段のうち何れかの第2制御手段に対応する第2プログラムの異常を検知した場合に、正常と判断した第2プログラムに対応する1以上の第2制御手段のリセットを解除するとともに、異常を検知した第2プログラムを、前記第1記憶手段に記憶された対応するバックアップのデータを用いて修復する復旧処理を実行することを特徴とする情報処理装置。
  3. 前記第1記憶手段は、前記第1制御手段へバスを介して接続され、前記複数の第2制御手段にはバスを介して接続されないことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記複数の第2記憶手段は、前記第1制御手段及び対応する第2制御手段へバスを介して接続されることを特徴とする請求項3に記載の情報処理装置。
  5. 前記第1制御手段は、前記復旧処理として、異常が検知された第2プログラムに対応する、前記第1記憶手段に記憶されたバックアップのデータで前記第2記憶手段に記憶された該第2プログラムを書き直すことを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
  6. 前記第1制御手段は、前記復旧処理を実行すると、対応する第2記憶手段の復旧された第2プログラムの正当性を検証し、異常が検知されなければ、前記復旧された第2プログラムに対応する第2制御手段のリセットを解除し、異常が検知されると前記第1プログラムによる起動処理を停止することを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。
  7. 前記第1制御手段はセキュアマイコンであり、
    前記複数の第2制御手段には、前記情報処理装置のメインCPU、スキャナCPU、及びプリンタCPUの少なくとも1つが含まれることを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
  8. 他の制御手段で実行されるプログラムの正当性を検証する第1制御手段と、前記第1制御手段によってリセットが解除されると起動を行う複数の第2制御手段と、前記第1制御手段によって実行される第1プログラムと、前記複数の第2制御手段のそれぞれで実行されるそれぞれの第2プログラムのバックアップとを記憶する第1記憶手段と、前記複数の第2制御手段のそれぞれに対応し、対応する第2制御手段で実行される第2プログラムを記憶する複数の第2記憶手段とを備える、情報処理装置の制御方法であって、
    前記第1制御手段が、前記第1記憶手段に記憶された前記第1プログラムを実行して、前記複数の第2制御手段のそれぞれの第2プログラムの正当性を順次検証する工程と、
    前記第1制御手段が、前記複数の第2制御手段のうち何れかの第2制御手段に対応する第2プログラムの異常を検知した場合に、それまでに正常と判断した第2プログラムに対応する1以上の第2制御手段のリセットを解除するとともに、異常を検知した第2プログラムを、前記第1記憶手段に記憶された対応するバックアップのデータを用いて修復する復旧処理を実行する工程と
    を含むことを特徴とする情報処理装置の制御方法。
  9. 他の制御手段で実行されるプログラムの正当性を検証する第1制御手段と、前記第1制御手段によってリセットが解除されると起動を行う複数の第2制御手段と、前記第1制御手段によって実行される第1プログラムと、前記複数の第2制御手段のそれぞれで実行されるそれぞれの第2プログラムのバックアップとを記憶する第1記憶手段と、前記複数の第2制御手段のそれぞれに対応し、対応する第2制御手段で実行される第2プログラムを記憶する複数の第2記憶手段とを備える、情報処理装置の制御方法であって、
    前記第1制御手段が、前記第1記憶手段に記憶された前記第1プログラムを実行して、前記複数の第2制御手段の全ての第2プログラムの正当性を検証する工程と、
    前記第1制御手段が、前記複数の第2制御手段のうち何れかの第2制御手段に対応する第2プログラムの異常を検知した場合に、正常と判断した第2プログラムに対応する1以上の第2制御手段のリセットを解除するとともに、異常を検知した第2プログラムを、前記第1記憶手段に記憶された対応するバックアップのデータを用いて修復する復旧処理を実行する工程と
    を含むことを特徴とする情報処理装置の制御方法。
JP2021090585A 2021-05-28 2021-05-28 情報処理装置、及びその制御方法 Pending JP2022182837A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021090585A JP2022182837A (ja) 2021-05-28 2021-05-28 情報処理装置、及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021090585A JP2022182837A (ja) 2021-05-28 2021-05-28 情報処理装置、及びその制御方法

Publications (1)

Publication Number Publication Date
JP2022182837A true JP2022182837A (ja) 2022-12-08

Family

ID=84329039

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021090585A Pending JP2022182837A (ja) 2021-05-28 2021-05-28 情報処理装置、及びその制御方法

Country Status (1)

Country Link
JP (1) JP2022182837A (ja)

Similar Documents

Publication Publication Date Title
US10225426B2 (en) Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
EP2741228B1 (en) System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
JP4769608B2 (ja) 起動検証機能を有する情報処理装置
EP3076324B1 (en) Information processing apparatus and method of controlling the apparatus
US10720225B2 (en) Information processing apparatus, control method thereof, and storage mediumMD
JP2019075000A (ja) 情報処理装置、その制御方法、及びプログラム
JP6391439B2 (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
US11609997B2 (en) Autonomous driving system with dual secure boot
JP2023129643A (ja) 情報処理装置、情報処理方法およびプログラム
JP2020160747A (ja) 情報処理装置、その制御方法、及びプログラム
JP2021117928A (ja) 情報処理装置とその起動方法
JP2009301429A (ja) ソフトウェア改ざん検知方法、機器及び画像処理装置
JP5961059B2 (ja) 情報処理装置およびその起動方法
JP2022182837A (ja) 情報処理装置、及びその制御方法
JP7263101B2 (ja) 情報処理装置、データ検証方法
JP2021140601A (ja) 情報処理装置、その制御方法、及びプログラム
US11971991B2 (en) Information processing apparatus, control method for controlling the same and storage medium
JP2020154601A (ja) 情報処理装置とその制御方法、及びプログラム
US20230103698A1 (en) Information processing apparatus and control method therefor
JP2020052597A (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP2020053002A (ja) 情報処理装置とその制御方法、及びプログラム
JP7011697B1 (ja) 情報処理装置および情報処理方法
JP7215116B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2023032874A (ja) 情報処理装置、及びその制御方法
JP2021111916A (ja) 情報処理装置及びプログラム復旧方法