JP2022182838A - Information processing device and control method thereof - Google Patents

Information processing device and control method thereof Download PDF

Info

Publication number
JP2022182838A
JP2022182838A JP2021090586A JP2021090586A JP2022182838A JP 2022182838 A JP2022182838 A JP 2022182838A JP 2021090586 A JP2021090586 A JP 2021090586A JP 2021090586 A JP2021090586 A JP 2021090586A JP 2022182838 A JP2022182838 A JP 2022182838A
Authority
JP
Japan
Prior art keywords
cpu
firmware
cpus
secure microcomputer
reset
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
JP2021090586A
Other languages
Japanese (ja)
Inventor
大史 山水
Hiroshi Yamamizu
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 JP2021090586A priority Critical patent/JP2022182838A/en
Publication of JP2022182838A publication Critical patent/JP2022182838A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

To provide an information processing device that is configured so that attacks to a plurality of CPUs performing control of parts of a device are prevented to reduce a verification time for verifying presence or absence of tampering of firmware of the plurality of CPUs and reduce a startup time of the device; and a control method thereof.SOLUTION: An information processing device includes a secure microcontroller, a secure microcontroller ROM, a plurality of CPUs, and a plurality of nonvolatile memories. The secure microcontroller ROM stores firmware of the plurality of CPUs. The secure microcontroller verifies presence or absence of the firmware stored in the plurality of nonvolatile memories at startup; and cancels a reset of one of the CPUs that executes firmware for which it is determined that there is no tampering. On the other hand, the secure microcontroller ROM rewrites firmware for which it is determined by verification that there is tampering with corresponding firmware stored in the secure microcontroller ROM; and after that, cancels a reset of one of the CPUs that executes the rewritten firmware.SELECTED DRAWING: Figure 5

Description

本発明は、情報処理装置とその制御方法に関する。 The present invention relates to an information processing apparatus and its control method.

近年、画像形成装置はネットワークインターフェイスを有しており、ファイルサーバ機能やメール送受信機能を提供している。このように画像形成装置がネットワークに接続されることにより、PCやサーバと同様に、不正なハッキングによる装置の不正使用が発生することが考えられる。また近年、多様化し続けるサイバー攻撃から全てのリスクを排除することは不可能であるという前提で、攻撃にあったとしても装置自身で攻撃される前の状態に復元させるサイバーレジリエンス(Cyber Resilience)という考え方が重視されてきている。 In recent years, an image forming apparatus has a network interface and provides a file server function and an e-mail transmission/reception function. When the image forming apparatus is connected to the network in this way, it is conceivable that the apparatus may be used illegally by unauthorized hacking, similar to PCs and servers. In addition, in recent years, on the premise that it is impossible to eliminate all risks from cyber-attacks, which continue to diversify, we call cyber resilience, which restores the state before the attack by the device itself even if it is attacked. Ideas are getting more attention.

特許文献1には、画像形成装置において不正なハッキングによる装置の不正使用を防ぐために、起動時にソフトウェアの改竄を検出する技術が記載されている。ここでは改竄を検知するために、ソフトウェアのハッシュ値を計算し、マスタとなるハッシュ値と比較し、その比較結果に基づいて改竄があるかどうか判定している。特許文献1では、ソフトウェアの改竄が検知された場合には、改竄されたソフトウェア及びそのソフトウェアを使用する他のソフトウェアを使用できなくしている。 Japanese Patent Application Laid-Open No. 2002-200002 describes a technique for detecting tampering with software at startup in order to prevent unauthorized use of an image forming apparatus by unauthorized hacking. Here, in order to detect tampering, a software hash value is calculated, compared with a master hash value, and whether or not there is tampering is determined based on the comparison result. In Patent Literature 1, when tampering with software is detected, the tampered software and other software that uses the software are disabled.

また特許文献2には、プログラムの改竄が検知された場合に、リカバリ用のプリインストールプログラムを用いて装置を動作させることが記載されている。 Further, Patent Literature 2 describes operating the device using a pre-installed program for recovery when tampering with the program is detected.

特開2009-301429号公報JP 2009-301429 A 特開2015-69403号公報JP 2015-69403 A

特許文献2のように、通常使用するメモリのデータが改竄されると、リカバリ用のROMのデータに従って装置を起動させる場合は、起動はするが、その後に再度サイバー攻撃等によりリカバリ用のROMのデータが改竄されると復旧できなくなってしまう。またセキュアマイコンを搭載してメモリのデータを復旧させる構成にしても、サイバー攻撃によりセキュアマイコンがCPUから制御されるようになってしまっては、結局復旧させることができなくなってしまう。 As in Patent Document 2, if the data in the memory that is normally used is tampered with, if the device is started according to the data in the recovery ROM, it will start up, but after that, the recovery ROM will be compromised by a cyber attack or the like. If the data is tampered with, it cannot be recovered. Also, even if a secure microcomputer is installed to restore data in the memory, if the secure microcomputer is controlled by the CPU due to a cyber attack, the data cannot be restored.

またプリンタ用CPUやスキャナ用CPUといった装置各部の制御を行うCPUを含めた複数CPUを採用する場合は、複数CPUのファームウェアの改竄の有無を検証するために検証時間が長くなり、それに伴い装置の起動時間が長くなってしまうという課題がある。 In addition, when multiple CPUs are used, including CPUs that control each part of the device, such as a printer CPU and a scanner CPU, the verification time becomes longer to verify whether or not the firmware of the multiple CPUs has been tampered with. There is a problem that the startup time becomes long.

本発明の目的は、上記従来技術の課題の少なくとも一つを解決することにある。 SUMMARY OF THE INVENTION An object of the present invention is to solve at least one of the problems of the prior art described above.

本発明の目的は、装置各部の制御を行う複数CPUに対しても攻撃されない構成にし、複数CPUのファームウェアの改竄の有無を検証する検証時間を削減して、装置の起動時間を短くすることにある。 An object of the present invention is to provide a configuration that prevents attacks against multiple CPUs that control each part of the device, reduce the verification time for verifying whether or not the firmware of the multiple CPUs has been tampered with, and shorten the startup time of the device. be.

上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
複数のCPUと、前記複数のCPUのそれぞれのファームウェアを記憶する複数の記憶手段とを有する情報処理装置であって、
前記複数のCPUのファームウェアを記憶する第1記憶手段と、
前記複数のCPUの内の前記第1記憶手段にアクセスできる第1CPUであって、
前記第1CPUは、起動時、前記第1CPUを除く他のCPUのファームウェアを記憶する第2記憶手段に記憶されたファームウェアの改竄の有無を検証し、
前記検証により改竄が無いと判定されたファームウェアを実行するCPUのリセットを解除し、
前記検証により改竄が有ると判定されたファームウェアを前記第1記憶手段に記憶されている対応するファームウェアで書き換えた後、当該書き換えたファームウェアを実行するCPUのリセットを解除することを特徴とする。
In order to achieve the above object, an information processing apparatus according to one aspect of the present invention has the following configuration. Namely
An information processing apparatus having a plurality of CPUs and a plurality of storage means for storing firmware of each of the plurality of CPUs,
a first storage means for storing firmware of the plurality of CPUs;
A first CPU that can access the first storage means among the plurality of CPUs,
The first CPU verifies whether or not the firmware stored in the second storage means for storing the firmware of the CPUs other than the first CPU has been tampered with at the time of startup,
releasing the reset of the CPU that executes the firmware determined to be free of tampering by the verification;
After rewriting the firmware determined to be falsified by the verification with the corresponding firmware stored in the first storage means, the reset of the CPU executing the rewritten firmware is released.

本発明によれば、複数CPUのファームウェアの改竄の有無を検証する検証時間を削減して、装置の起動時間を短くできるという効果がある。 According to the present invention, it is possible to reduce the verification time for verifying whether or not the firmware of a plurality of CPUs has been tampered with, thereby shortening the startup time of the device.

本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。 Other features and advantages of the invention will become apparent from the following description with reference to the accompanying drawings. In the accompanying drawings, the same or similar configurations are given the same reference numerals.

添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
本発明の実施形態1に係る情報処理システムの構成を説明すするブロック図。 実施形態1に係る画像形成装置の外観図。 実施形態1に係る画像形成装置のコントローラの構成を説明するブロック図。 実施形態1のセキュアマイコン用のROM,不揮発メモリ303,332,342にファームウェアがメモリマップされているイメージ図。 実施形態1に係るCPU、スキャナCPU、プリンタCPU及びセキュアマイコンと、ROM及び各不揮発メモリとを接続するバス構成を説明する図。 実施形態1に係るセキュアマイコンの動作を説明するフローチャート。 実施形態1に係る画像形成装置のCPUの動作を説明するフローチャート。 実施形態2に係るCPU、LANコントローラ、プリンタCPU及びセキュアマイコンと、ROM及び各不揮発メモリとを接続するバス構成を説明する図。 実施形態2に係るセキュアマイコンの動作を説明するフローチャート。 実施形態2に係る画像形成装置のCPU301の動作を説明するフローチャート。 実施形態に係る画像形成装置の起動時間を削減できるという効果を説明する図。
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
1 is a block diagram for explaining the configuration of an information processing system according to Embodiment 1 of the present invention; FIG. 1 is an external view of an image forming apparatus according to Embodiment 1; FIG. 2 is a block diagram for explaining the configuration of a controller of the image forming apparatus according to the first embodiment; FIG. FIG. 4 is an image diagram showing firmware memory-mapped in the ROMs and non-volatile memories 303, 332, and 342 for the secure microcomputer of the first embodiment; 4 is a diagram for explaining a bus configuration for connecting a CPU, a scanner CPU, a printer CPU, a secure microcomputer, a ROM, and each nonvolatile memory according to the first embodiment; FIG. 4 is a flowchart for explaining the operation of the secure microcomputer according to the first embodiment; 4 is a flowchart for explaining the operation of the CPU of the image forming apparatus according to the first embodiment; FIG. 11 is a diagram for explaining a bus configuration for connecting a CPU, a LAN controller, a printer CPU, a secure microcomputer, a ROM, and each nonvolatile memory according to the second embodiment; 8 is a flowchart for explaining the operation of a secure microcomputer according to the second embodiment; 8 is a flowchart for explaining the operation of the CPU 301 of the image forming apparatus according to the second embodiment; FIG. 10 is a diagram for explaining the effect of reducing the startup time of the image forming apparatus according to the embodiment;

以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これら複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一もしくは同様の構成に同一の参照番号を付し、重複した説明は省略する。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the following embodiments do not limit the invention according to the scope of claims. Although multiple features are described in the embodiments, not all of these multiple features are essential to the invention, and multiple features may be combined arbitrarily. Furthermore, in the accompanying drawings, the same or similar configurations are denoted by the same reference numerals, and redundant description is omitted.

[実施形態1]
図1は、本発明の実施形態1に係る情報処理システムの構成を説明すするブロック図である。このシステムでは、ホストコンピュータ40,50及び画像形成装置10,20,30がLAN60に接続されているが、本発明に係るシステムにおいては、これらの接続数に限られることはない。また実施形態では、接続方法としてLANを適用しているが、本発明はこれに限られることはない。例えばWAN(公衆回線)などの任意のネットワークなども適用可能である。
[Embodiment 1]
FIG. 1 is a block diagram illustrating the configuration of an information processing system according to Embodiment 1 of the present invention. In this system, host computers 40, 50 and image forming apparatuses 10, 20, 30 are connected to LAN 60, but the number of these connections is not limited in the system according to the present invention. Also, in the embodiments, LAN is applied as a connection method, but the present invention is not limited to this. For example, any network such as WAN (public network) is also applicable.

ホストコンピュータ(以下、PC)40,50は、一般的なパーソナルコンピュータの機能を有しており、このシステムでは、これらPC40,50は同様の機能を実現するため、ここではPC40を例に説明する。PC40は、LAN60やWANを介してFTPやSMBプロトコルを用いファイルや電子メールを送受信することができる。またPC40から画像形成装置10,20,30に対して、プリンタドライバを介した印刷命令を発行することができる。更にPC40は、定期的に画像形成装置10,20,30に対して、装置の状態を問い合わせることができ、PC40からの要求によって、画像形成装置10,20,30は印刷可能であるか否かなどの情報を返信することができる。 Host computers (hereinafter referred to as PCs) 40 and 50 have general personal computer functions, and in this system, these PCs 40 and 50 realize similar functions, so the PC 40 will be described here as an example. . The PC 40 can send and receive files and e-mails using FTP and SMB protocols via the LAN 60 and WAN. Also, a print command can be issued from the PC 40 to the image forming apparatuses 10, 20, 30 via the printer driver. Furthermore, the PC 40 can periodically inquire of the image forming apparatuses 10, 20, and 30 about the status of the apparatuses, and can determine whether the image forming apparatuses 10, 20, and 30 are capable of printing in response to a request from the PC 40. You can reply with information such as

画像形成装置10,20は同じ構成を有する装置である。一方、画像形成装置30はプリント機能のみを有する画像形成装置であり、画像形成装置10,20が有するスキャナ13を有していない。以下では、説明を簡単にするために、画像形成装置10,20のうちの画像形成装置10に注目して、その構成を詳細に説明する。 The image forming apparatuses 10 and 20 are apparatuses having the same configuration. On the other hand, the image forming apparatus 30 is an image forming apparatus having only a print function and does not have the scanner 13 that the image forming apparatuses 10 and 20 have. To simplify the explanation, the image forming apparatus 10 out of the image forming apparatuses 10 and 20 will be focused on and the configuration thereof will be explained in detail.

画像形成装置10は、画像入力デバイスであるスキャナ13、画像出力デバイスであるプリンタ14、画像形成装置10全体の動作制御を司るコントローラ11、ユーザインターフェース(UI)を提供する操作部12を有している。 The image forming apparatus 10 includes a scanner 13 that is an image input device, a printer 14 that is an image output device, a controller 11 that controls the operation of the entire image forming apparatus 10, and an operation unit 12 that provides a user interface (UI). there is

図2は、実施形態1に係る画像形成装置10の外観図である。スキャナ13は、複数のCCDを有している。この各CCDの感度が夫々異なっていると、例え原稿上の各画素の濃度が同じであったとしても、各画素が夫々異なる濃度であると認識されてしまう。そのため、スキャナ13では、最初に基準白色板(一様に白い板)を露光走査し、露光走査して得られた反射光の量を電気信号に変換してコントローラ11に出力している。続いて、この原稿上の画像をスキャンする構成について説明する。 FIG. 2 is an external view of the image forming apparatus 10 according to the first embodiment. Scanner 13 has a plurality of CCDs. If the sensitivities of the respective CCDs are different, even if the densities of the pixels on the document are the same, the pixels are recognized as having different densities. Therefore, the scanner 13 first exposes and scans a reference white plate (uniformly white plate), converts the amount of reflected light obtained by exposure and scanning into an electric signal, and outputs the electric signal to the controller 11 . Next, a configuration for scanning the image on the document will be described.

スキャナ13は、原稿上の画像を露光走査して得られた反射光をCCDに入力することで画像の情報を電気信号に変換する。更に、その電気信号をR,G,Bの各色からなる輝度信号に変換し、その輝度信号を画像データとしてコントローラ11に出力する。尚、原稿は原稿フィーダ201のトレイ202にセットされる。ユーザが操作部12から原稿の読み取り開始を指示すると、コントローラ11からスキャナ13に原稿の読み取り指示が与えられる。スキャナ13は、この指示を受けると原稿フィーダ201のトレイ202から原稿を1枚ずつ給送(フィード)して、原稿の読み取りを行う。尚、原稿の読み取り方法は、原稿フィーダ201による自動送り方式ではなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であってもよい。 The scanner 13 converts image information into electrical signals by inputting reflected light obtained by exposing and scanning an image on a document to a CCD. Further, the electrical signal is converted into a luminance signal of each color of R, G, and B, and the luminance signal is output to the controller 11 as image data. Documents are set on the tray 202 of the document feeder 201 . When the user gives an instruction to start reading the document from the operation unit 12 , the controller 11 gives the scanner 13 an instruction to read the document. Upon receiving this instruction, the scanner 13 feeds the documents one by one from the tray 202 of the document feeder 201 to read the documents. The document reading method may be a method of scanning the document by placing the document on a glass surface (not shown) and moving the exposure unit instead of the automatic feeding method by the document feeder 201 .

プリンタ14は、コントローラ11から受取った画像データに基づいて用紙に画像を形成する画像形成デバイスである。尚、実施形態1ではプリンタ14の画像形成方式は、感光体ドラムや感光体ベルトを用いた電子写真方式であるが、本発明はこれに限られることはない。例えば、微少ノズルアレイからインクを吐出して用紙上に画像を印刷するインクジェット方式等でも適用可能である。またプリンタ14には、異なる用紙サイズ又は異なる用紙向きを選択可能とする複数の用紙カセット203,204,205が設けられている。排紙トレイ206には、印刷された用紙が排出される。 The printer 14 is an image forming device that forms an image on paper based on image data received from the controller 11 . In the first embodiment, the image forming method of the printer 14 is an electrophotographic method using a photosensitive drum or a photosensitive belt, but the present invention is not limited to this. For example, an inkjet method or the like that prints an image on paper by ejecting ink from a minute nozzle array can also be applied. The printer 14 is also provided with a plurality of paper cassettes 203, 204, 205 that allow selection of different paper sizes or different paper orientations. Printed paper is discharged to the paper discharge tray 206 .

図3は、実施形態1に係る画像形成装置10のコントローラ11の構成をより詳しく説明するブロック図である。 FIG. 3 is a block diagram illustrating in more detail the configuration of the controller 11 of the image forming apparatus 10 according to the first embodiment.

コントローラ11は、スキャナ13やプリンタ14と電気的に接続されており、一方ではLAN60などを介してPC40,50や外部の装置等と接続されている。これにより画像データやデバイス情報の入出力が可能となっている。CPU用の不揮発メモリ303は、CPU301により実行されるファームウェアや制御プログラム等を記憶するCPU301用の不揮発メモリである。CPU301は、不揮発メモリ303に記憶されたファームウェアや制御プログラム等に基づいて、接続中の各種デバイスとのアクセスを統括的に制御すると共に、コントローラ11で行われる各種処理についても統括的に制御する。RAM302は、CPU301が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するためのメモリである。このRAM302は、例えばSRAM及びDRAMにより構成されるCPU301用のRAMである。また不揮発メモリ303には、CPU301を起動させるためのファームウェアや制御プログラムが格納されている。また不揮発メモリ303は、CPU301からもセキュアマイコン321からもアクセス可能な構成になっている。不揮発メモリ303にCPU301とセキュアマイコン321の両方からアクセスするための接続バス構成に関しては後述する。 The controller 11 is electrically connected to the scanner 13 and the printer 14, and is connected to the PCs 40 and 50, external devices and the like via the LAN 60 and the like. This enables input/output of image data and device information. A non-volatile memory 303 for the CPU is a non-volatile memory for the CPU 301 that stores firmware, control programs, and the like executed by the CPU 301 . The CPU 301 comprehensively controls access to various connected devices based on firmware, control programs, and the like stored in the nonvolatile memory 303 , and also comprehensively controls various processes performed by the controller 11 . A RAM 302 is a system work memory for the operation of the CPU 301 and a memory for temporarily storing image data. This RAM 302 is a RAM for the CPU 301, which is composed of SRAM and DRAM, for example. The non-volatile memory 303 also stores firmware and control programs for activating the CPU 301 . The non-volatile memory 303 is configured to be accessible from both the CPU 301 and the secure microcomputer 321 . A connection bus configuration for accessing the nonvolatile memory 303 from both the CPU 301 and the secure microcomputer 321 will be described later.

HDD304はハードディスクドライブであり、システムソフトウェアや画像データ等を格納することが可能となっている。操作部I/F305は、システムバス307と操作部12とを接続するためのインターフェースである。この操作部I/F305は、操作部12に表示するための画像データをシステムバス307から受取って操作部12に出力すると共に、操作部12から入力された情報をシステムバス307へ出力する。LANコントローラ306は、LAN60及びシステムバス307に接続して情報の入出力を行うことにより、画像形成装置10とネットワークとの通信を制御する。LANコントローラ306には、LANコントローラ用の不揮発メモリ315が接続されており、LANコントローラ306は、この不揮発メモリ315に格納されているプログラムに従って動作する。この不揮発メモリ315には、LANコントローラ306を起動させるためのファームウェアや制御プログラムが格納されている。実施形態1では、不揮発メモリ315は、LANコントローラ306とのみ接続されていて、セキュアマイコン321には接続されておらず、セキュアマイコン321からはアクセスできない構成で説明する。 The HDD 304 is a hard disk drive and can store system software, image data, and the like. An operation unit I/F 305 is an interface for connecting the system bus 307 and the operation unit 12 . The operation unit I/F 305 receives image data to be displayed on the operation unit 12 from the system bus 307 and outputs the image data to the operation unit 12 , and outputs information input from the operation unit 12 to the system bus 307 . The LAN controller 306 controls communication between the image forming apparatus 10 and the network by connecting to the LAN 60 and the system bus 307 and inputting/outputting information. A LAN controller nonvolatile memory 315 is connected to the LAN controller 306 , and the LAN controller 306 operates according to a program stored in this nonvolatile memory 315 . Firmware and control programs for starting the LAN controller 306 are stored in the nonvolatile memory 315 . In the first embodiment, the non-volatile memory 315 is connected only to the LAN controller 306 and is not connected to the secure microcomputer 321 and cannot be accessed from the secure microcomputer 321 .

画像バス308は、画像データをやり取りするための伝送路であり、PCIバス又はIEEE1394で構成されている。画像処理部309は画像処理を実行する。画像処理部309は、RAM302に記憶された画像データを読み出し、JPEG、JBIGなどの拡大又は縮小、及び、色調整などの画像処理を行うことが可能である。ここで画像処理されたデータはRAM302やHDD304に格納される。 An image bus 308 is a transmission line for exchanging image data, and is configured by a PCI bus or IEEE1394. An image processing unit 309 executes image processing. An image processing unit 309 can read image data stored in the RAM 302 and perform image processing such as enlargement or reduction such as JPEG or JBIG, and color adjustment. The image-processed data is stored in the RAM 302 or HDD 304 .

スキャナ画像処理部310は、スキャナ13からスキャナI/F311を介して受取った画像データに対して、補正、加工及び編集等を行う。尚、スキャナ画像処理部310は、受取った画像データがカラー原稿の画像データか白黒原稿の画像データか、また文字原稿の画像データか写真原稿の画像データか等を判定する。そして、その判定結果を画像データに付随させる。この付随する情報を属性データと称する。プリンタ画像処理部312は、画像データに付随されている属性データを参照しながら画像データに画像処理を施す。画像処理後の画像データは、プリンタI/F313を介してプリンタ14に出力される。 A scanner image processing unit 310 corrects, processes, and edits image data received from the scanner 13 via the scanner I/F 311 . The scanner image processing unit 310 determines whether the received image data is color original image data or monochrome original image data, or whether it is character original image data or photographic original image data. Then, the determination result is attached to the image data. This accompanying information is called attribute data. The printer image processing unit 312 applies image processing to the image data while referring to attribute data attached to the image data. Image data after image processing is output to the printer 14 via the printer I/F 313 .

電源制御部314は、起動時や電源オフ時の電源制御や、省電力状態への移行及び復帰といった画像形成装置10の電源状態の変更を制御する。電源制御部314は、省電力状態から復帰する場合の復帰要因(例えばFAX受信やスイッチ押下等)を検知する部分でもあり、各復帰要因に応じてスタンバイ状態へ移行した際の電源制御も実施する。 The power control unit 314 controls power supply control at startup and power-off, and changes in the power state of the image forming apparatus 10 such as shifting to and returning from the power saving state. The power control unit 314 is also a part that detects return factors (for example, fax reception, switch presses, etc.) when returning from the power saving state, and also performs power control when transitioning to the standby state according to each return factor. .

セキュアマイコン321は、トラステッドブート(trusted boot)の基点となるハードウェアデバイスである。トラステッドブートは、コンピュータの起動時の安全性を確保するため、デジタル署名で起動するソフトウェアを検証する機能を指す。セキュアマイコン321は、デバイス内部に鍵となるヒューズを備えており、その鍵を使用して、セキュアマイコン用のROM(リードオンリーメモリ)322のセキュアマイコン用のファームウェアの正当性を検証した上で起動する。セキュアマイコン321では、前述の不揮発メモリ303、スキャナCPU用の不揮発メモリ332、プリンタCPU用の不揮発メモリ342に格納されているプログラムが改竄されていないかどうかの検証も行う。そして、これら検証により問題ないと判断した場合にのみ、各不揮発性メモリを使用して動作するCPU301、スキャナCPU331、プリンタCPU341のリセットを解除する。更にセキュアマイコン321は、前述の各不揮発メモリに格納されているプログラムが改竄されていると判定した場合は、後述するセキュアマイコン用のROM322に記憶されているプログラムを読み出し、改竄された不揮発メモリのデータを書き換える。実施形態1では、セキュアマイコン321がサイバー攻撃をうけないようにするために、CPU301とは接続せずに、CPU301からセキュアマイコン321に対してアクセスできない構成になっている。 The secure microcomputer 321 is a hardware device that serves as a base point for trusted boot. Trusted boot refers to the ability to verify software that runs with a digital signature to ensure security when the computer boots. The secure microcomputer 321 has a key fuse inside the device, and uses the key to verify the validity of the firmware for the secure microcomputer in the ROM (read only memory) 322 for the secure microcomputer before starting. do. The secure microcomputer 321 also verifies whether or not the programs stored in the nonvolatile memory 303, the nonvolatile memory 332 for the scanner CPU, and the nonvolatile memory 342 for the printer CPU have been tampered with. Then, only when it is determined that there is no problem by these verifications, resetting of the CPU 301, the scanner CPU 331, and the printer CPU 341 that operate using each nonvolatile memory is released. Furthermore, when the secure microcomputer 321 determines that the program stored in each nonvolatile memory described above has been tampered with, it reads the program stored in the ROM 322 for the secure microcomputer described later, and rewrite the data. In the first embodiment, the secure microcomputer 321 is not connected to the CPU 301 so that the secure microcomputer 321 cannot be accessed from the CPU 301 in order to prevent the secure microcomputer 321 from being subjected to a cyber attack.

セキュアマイコン用のROM322には、セキュアマイコン321を起動させるためのファームウェアが格納されている。またこのROM322は、CPU301を起動させるためのファームウェア、スキャナCPU331で動作するファームウェア、プリンタCPU341で動作するファームウェアが改竄されると、それを復旧するために使用するリカバリ―用のファームウェアを格納している。このROM322に、それぞれのファームウェアがメモリマップされているイメージは図4の通りである。このROM322は、セキュアマイコン321からのみアクセス可能な構成になっている。 Firmware for starting the secure microcomputer 321 is stored in the ROM 322 for the secure microcomputer. The ROM 322 also stores firmware for activating the CPU 301, firmware operating in the scanner CPU 331, and firmware for recovery used to restore the firmware if the firmware operating in the printer CPU 341 is tampered with. . FIG. 4 shows an image in which each firmware is memory-mapped in the ROM 322 . This ROM 322 is configured to be accessible only from the secure microcomputer 321 .

スキャナCPU331は、スキャナ用の不揮発メモリ332に格納された制御プログラムを実行することでスキャナ13の動作を制御したり、スキャナ画像処理部310との通信を行ったりする。この不揮発メモリ332には、スキャナCPU331で動作するプログラムが格納されており、スキャナCPU331とセキュアマイコン322の双方がアクセス可能に構成されている。スキャナCPU331とセキュアマイコン322の両方からアクセスするための接続バスの構成に関しては後述する。スキャナ用のRAM333は、スキャナCPU331がプログラム実行する際のシステムワークメモリとして用いられる。またこのRAM333には、スキャナ13にある不図示のCCDやCISにより読み取られた画像を表す画像データが蓄積される。 The scanner CPU 331 controls the operation of the scanner 13 and communicates with the scanner image processing unit 310 by executing a control program stored in the non-volatile memory 332 for the scanner. The nonvolatile memory 332 stores a program that operates on the scanner CPU 331 and is configured to be accessible by both the scanner CPU 331 and the secure microcomputer 322 . The configuration of the connection bus for accessing from both the scanner CPU 331 and the secure microcomputer 322 will be described later. A scanner RAM 333 is used as a system work memory when the scanner CPU 331 executes a program. The RAM 333 also stores image data representing images read by a CCD or CIS (not shown) in the scanner 13 .

プリンタCPU341は、プリンタ用の不揮発メモリ342に格納された制御プログラムを実行することでプリンタ14の動作を制御したり、プリンタ画像処理部312との通信を行ったりする。この不揮発メモリ342には、プリンタCPU341で動作するプログラムが格納されており、プリンタCPU341とセキュアマイコン322の双方かアクセス可能なように構成されている。プリンタCPU341とセキュアマイコン322の両方からアクセスするための接続バス構成に関しては後述する。プリンタ用のRAM343は、プリンタCPU341がプログラムを実行する際のシステムワークメモリとして用いられる。 The printer CPU 341 controls the operation of the printer 14 and communicates with the printer image processing unit 312 by executing a control program stored in a printer non-volatile memory 342 . The non-volatile memory 342 stores a program that operates on the printer CPU 341 and is configured to be accessible from both the printer CPU 341 and the secure microcomputer 322 . A connection bus configuration for accessing from both the printer CPU 341 and the secure microcomputer 322 will be described later. A printer RAM 343 is used as a system work memory when the printer CPU 341 executes a program.

図4は、前述のセキュアマイコン用のROM322,不揮発メモリ303,332,342にファームウェアがメモリマップされているイメージ図である。 FIG. 4 is an image diagram showing firmware mapped in the ROM 322 and the nonvolatile memories 303, 332, and 342 for the secure microcomputer described above.

図4(A)は、セキュアマイコン用のROM322のメモリマップを示す図である。このROM322には、セキュアマイコン321用のファームウェア401、CPU301用のファームウェア402、スキャナCPU331用のファームウェア403及びプリンタCPU341用のファームウェア404が格納されている。尚、これらCPU301用のファームウェア402、スキャナCPU331用のファームウェア403及びプリンタCPU341用のファームウェア404は、リカバリー時に使用するためのファームウェアである。 FIG. 4A is a diagram showing a memory map of the ROM 322 for the secure microcomputer. The ROM 322 stores firmware 401 for the secure microcomputer 321 , firmware 402 for the CPU 301 , firmware 403 for the scanner CPU 331 , and firmware 404 for the printer CPU 341 . Note that the firmware 402 for the CPU 301, the firmware 403 for the scanner CPU 331, and the firmware 404 for the printer CPU 341 are firmware for use during recovery.

図4(B)は、CPU301用の不揮発メモリ303のメモリマップを示す図である。この不揮発メモリ303には、CPU301用のファームウェア411が格納されている。 FIG. 4B is a diagram showing a memory map of the nonvolatile memory 303 for the CPU 301. As shown in FIG. Firmware 411 for the CPU 301 is stored in the nonvolatile memory 303 .

図4(C)は、スキャナCPU311用の不揮発メモリ332のメモリマップを示す図である。この不揮発メモリ332には、スキャナCPU331用のファームウェア421が格納されている。 FIG. 4C is a diagram showing a memory map of the nonvolatile memory 332 for the scanner CPU 311. As shown in FIG. Firmware 421 for the scanner CPU 331 is stored in the nonvolatile memory 332 .

図4(D)は、プリンタCPU341用の不揮発メモリ342のメモリマップを示す図である。この不揮発メモリ342には、プリンタCPU341用のファームウェア431が格納されている。 FIG. 4D shows a memory map of the non-volatile memory 342 for the printer CPU 341. As shown in FIG. Firmware 431 for the printer CPU 341 is stored in the nonvolatile memory 342 .

図5は、実施形態1に係るCPU301、スキャナCPU321、プリンタCPU341及びセキュアマイコン321とROM322及び各不揮発メモリとを接続するバス構成を説明する図である。尚、ここでは、SPIバスを例にして説明をするが、本発明はSPIバスに限定されるものではない。 FIG. 5 is a diagram illustrating a bus configuration for connecting the CPU 301, scanner CPU 321, printer CPU 341, secure microcomputer 321, ROM 322, and non-volatile memories according to the first embodiment. Although the SPI bus will be described as an example here, the present invention is not limited to the SPI bus.

バス501は、セキュアマイコン321とROM322とを接続するためのSPIバスである。バス501は、チップセレクト信号(CS#)、クロック信号(CLK)、データバス信号(IO)を備えており、セキュアマイコン321が動作するためのファームウェアの読み出すのに使用される。図4に示すように、このROM322は、各CPU上で動作するファームウェアが改竄された場合に、改竄されていない状態にリカバリするためのファームウェアを格納している。そのため、セキュアマイコン321は、各CPUに対応する不揮発メモリに記憶されているファームウェアが改竄されていることを検知すると、バス501を介して、ROM322からリカバリ用のファームウェアの読み出しを行う。 A bus 501 is an SPI bus for connecting the secure microcomputer 321 and the ROM 322 . A bus 501 has a chip select signal (CS#), a clock signal (CLK), and a data bus signal (IO), and is used to read firmware for operating the secure microcomputer 321 . As shown in FIG. 4, the ROM 322 stores firmware for recovering to an unaltered state when the firmware operating on each CPU is tampered with. Therefore, when the secure microcomputer 321 detects that the firmware stored in the non-volatile memory corresponding to each CPU has been tampered with, it reads recovery firmware from the ROM 322 via the bus 501 .

バス502は、セキュアマイコン321と不揮発メモリ303とを接続し、またCPU301と不揮発メモリ303とを接続するためのSPIバスである。バス502は、チップセレクト信号(CS#)、クロック信号(CLK)、データバス信号(IO)を備えている。セキュアマイコン321は、不揮発メモリ303に格納されているCPU301用のファームウェアが改竄されていないことを検証するために、バス501を介して、そのファームウェアを読み出す。またバス502は、CPU301が不揮発メモリ303に格納されているファームウェアの読み出しを行うのにも使用される。CPU301は、不揮発メモリ303に格納されているファームウェアで起動処理を実施するために読み出しを行う。バス502は、セキュアマイコン321とCPU301の両方から不揮発メモリ303に対してアクセスできる構成になっているが、実際のアクセスが同時に発生することはない。即ち、セキュアマイコン321が不揮発メモリ303にアクセスしている際は、CPU301はリセット状態で不揮発メモリ303にアクセスすることはない。そしてCPU301のリセットが解除された後は、セキュアマイコン321が不揮発メモリ303にアクセスしないようにしている。更にバス502は、各信号が分岐されている構成であるため、セキュアマイコン321とCPU301から出力される信号がぶつかってしまうことが考えられる。しなしながら、アクセスしないときは、各信号出力をハイインピーダンスにするように制御することで、信号がぶつかることはない。また信号出力をハイインピーダンスにできない場合は、セレクタ回路を追加することで、セキュアマイコン321とCPU301からのアクセスを切り替えるようにしても良い。 A bus 502 is an SPI bus for connecting the secure microcomputer 321 and the nonvolatile memory 303 and connecting the CPU 301 and the nonvolatile memory 303 . Bus 502 includes a chip select signal (CS#), a clock signal (CLK), and a data bus signal (IO). The secure microcomputer 321 reads the firmware for the CPU 301 stored in the nonvolatile memory 303 via the bus 501 in order to verify that it has not been tampered with. Bus 502 is also used by CPU 301 to read firmware stored in non-volatile memory 303 . The CPU 301 reads the firmware stored in the non-volatile memory 303 in order to perform boot processing. The bus 502 is configured so that both the secure microcomputer 321 and the CPU 301 can access the nonvolatile memory 303, but actual accesses do not occur simultaneously. That is, when the secure microcomputer 321 accesses the nonvolatile memory 303, the CPU 301 does not access the nonvolatile memory 303 in the reset state. After the reset of the CPU 301 is released, the secure microcomputer 321 is prevented from accessing the nonvolatile memory 303 . Furthermore, since the bus 502 has a configuration in which each signal is branched, it is conceivable that the signals output from the secure microcomputer 321 and the CPU 301 will collide. However, when there is no access, the signals do not collide by controlling each signal output to be in high impedance. If the signal output cannot be set to high impedance, access from the secure microcomputer 321 and the access from the CPU 301 may be switched by adding a selector circuit.

バス503は、セキュアマイコン321とスキャナ用の不揮発メモリ332とを接続し、またスキャナCPU331とスキャナ用の不揮発メモリ332とを接続するためのSPIバスである。バス503は、チップセレクト信号(CS#)、クロック信号(CLK)、データバス信号(IO)を備えている。セキュアマイコン321は、不揮発メモリ332に格納されているスキャナ用のファームウェアが改竄されていないことを検証するためにファームウェアの読み出しを行う。またバス503は、スキャナCPU331が不揮発メモリ332に格納されているスキャナ用のファームウェアの読み出しを行うのに使用される。スキャナCPU331は、不揮発メモリ332に格納されているファームウェアを読み出して実行することでスキャナ13を制御する。バス503は、セキュアマイコン321とスキャナCPU331の両方から不揮発メモリ332に対してアクセスできる構成になっているが、実際のアクセスが同時に発生することはない。即ち、セキュアマイコン321が不揮発メモリ332にアクセスしている際には、スキャナCPU331はリセット状態でアクセスすることはない。またスキャナCPU331がリセット解除された後は、セキュアマイコン321は不揮発メモリ332にアクセスしないようにしている。更にバス503は、各信号が分岐されている構成になっていてセキュアマイコン321とスキャナCPU331から出力される信号がぶつかってしまうことが考えられる。しかし、アクセスしない際に、各信号出力をハイインピーダンスにするように制御することで、信号がぶつかることはなくなる。また信号出力をハイインピーダンスにできない場合には、セレクタ回路を追加することで、セキュアマイコン321とスキャナCPU331からのアクセスを切り替えるようにしても良い。 A bus 503 is an SPI bus for connecting the secure microcomputer 321 and the nonvolatile memory 332 for the scanner, and for connecting the scanner CPU 331 and the nonvolatile memory 332 for the scanner. Bus 503 includes a chip select signal (CS#), a clock signal (CLK), and a data bus signal (IO). The secure microcomputer 321 reads the firmware to verify that the scanner firmware stored in the nonvolatile memory 332 has not been tampered with. The bus 503 is also used by the scanner CPU 331 to read scanner firmware stored in the nonvolatile memory 332 . The scanner CPU 331 controls the scanner 13 by reading and executing firmware stored in the nonvolatile memory 332 . The bus 503 is configured so that both the secure microcomputer 321 and the scanner CPU 331 can access the nonvolatile memory 332, but actual accesses do not occur simultaneously. That is, when the secure microcomputer 321 accesses the nonvolatile memory 332, the scanner CPU 331 does not access in the reset state. The secure microcomputer 321 does not access the non-volatile memory 332 after the reset of the scanner CPU 331 is released. Furthermore, the bus 503 is configured such that each signal is branched, and it is conceivable that the signals output from the secure microcomputer 321 and the scanner CPU 331 collide. However, by controlling each signal output to be in high impedance when not accessing, the signals do not collide. If the signal output cannot be set to high impedance, a selector circuit may be added to switch accesses from the secure microcomputer 321 and the scanner CPU 331 .

バス504は、セキュアマイコン321とプリンタ用の不揮発メモリ342とを接続し、またプリンタCPU341とプリンタ用の不揮発メモリ342とを接続するためのSPIバスである。バス504は、チップセレクト信号(CS#)、クロック信号(CLK)、データバス信号(IO)を備えている。セキュアマイコン321は、不揮発メモリ342に格納されているプリンタCPU341用のファームウェアが改竄されていないことを検証するためにファームウェアの読み出しを行う。またバス504は、プリンタCPU341が不揮発メモリ342に格納されているプリンタCPU341用のファームウェアの読み出しを行うのに使用される。プリンタCPU341は、不揮発メモリ342に格納されているファームウェアを読み出して実行することで、プリンタ14を制御する。バス504は、セキュアマイコン321とプリンタCPU341の両方から不揮発メモリ342に対してアクセスできる構成になっているが、実際のアクセスが同時に発生することはない。即ち、セキュアマイコン321がアクセスしている際には、プリンタCPU341はリセット状態で不揮発メモリ342にアクセスすることはない。またプリンタCPU341がリセット解除された後は、セキュアマイコン321が不揮発メモリ342にアクセスしないようにしている。更にバス504は、各信号が分岐されている構成になっていて、セキュアマイコン321とプリンタCPU341から出力される信号がぶつかってしまうことが考えられる。しかし、アクセスしない際に、各信号出力をハイインピーダンスにすることで、信号がぶつかることはなくなる。また信号出力をハイインピーダンスにできない場合には、セレクタ回路を追加することで、セキュアマイコン321とプリンタCPU341からのアクセスを切り替えるようにしても良い。 A bus 504 is an SPI bus for connecting the secure microcomputer 321 and the nonvolatile memory 342 for the printer, and for connecting the printer CPU 341 and the nonvolatile memory 342 for the printer. Bus 504 includes a chip select signal (CS#), a clock signal (CLK), and a data bus signal (IO). The secure microcomputer 321 reads the firmware to verify that the firmware for the printer CPU 341 stored in the nonvolatile memory 342 has not been tampered with. The bus 504 is also used by the printer CPU 341 to read firmware for the printer CPU 341 stored in the non-volatile memory 342 . The printer CPU 341 controls the printer 14 by reading and executing firmware stored in the nonvolatile memory 342 . The bus 504 is configured so that both the secure microcomputer 321 and the printer CPU 341 can access the nonvolatile memory 342, but actual access does not occur simultaneously. That is, when the secure microcomputer 321 is accessing, the printer CPU 341 does not access the nonvolatile memory 342 in the reset state. Also, after the reset of the printer CPU 341 is released, the secure microcomputer 321 is prevented from accessing the nonvolatile memory 342 . Furthermore, the bus 504 has a configuration in which each signal is branched, and it is conceivable that the signals output from the secure microcomputer 321 and the printer CPU 341 collide. However, by setting each signal output to high impedance when not accessing, the signals do not collide. If the signal output cannot be set to high impedance, access from the secure microcomputer 321 and printer CPU 341 may be switched by adding a selector circuit.

セキュアマイコン321は、リセット信号512を用いてCPU301のリセットを制御する。CPU301をリセット状態にするときはリセット信号512をロウレベルに、リセット解除状態(動作状態)にするときはハイレベルになるように制御する。この画像形成装置10の電源投入時には、セキュアマイコン321は、リセット信号512でCPU301をリセット状態にしておく。その後、セキュアマイコン321が不揮発メモリ303に格納されているCPU301用のファームウェアの改竄検証を実施して、検証結果が問題ない場合にリセット信号512をハイレベルにしてCPU301のリセットを解除状態にする。一方、セキュアマイコン321が不揮発メモリ303に格納されているファームウェアに改竄があったと判定しても、不揮発メモリ303に格納されているファームウェアを正常な状態にリカバリした場合は、リセット信号512をハイレベルにしてCPU301のリセットを解除する。このようにリセット信号512を使用してCPU301のリセット制御を実施することにより、CPU301が不揮発メモリ303から読み出すCPU301用のファームウェアが、常に正しいものであるようにすることができる。 The secure microcomputer 321 controls resetting of the CPU 301 using the reset signal 512 . The reset signal 512 is controlled to be at low level when the CPU 301 is put into the reset state, and at high level when it is put into the reset release state (operating state). When the image forming apparatus 10 is powered on, the secure microcomputer 321 resets the CPU 301 with the reset signal 512 . After that, the secure microcomputer 321 verifies falsification of the firmware for the CPU 301 stored in the nonvolatile memory 303, and if the verification result is satisfactory, the reset signal 512 is set to high level to release the reset of the CPU 301. On the other hand, even if the secure microcomputer 321 determines that the firmware stored in the nonvolatile memory 303 has been tampered with, if the firmware stored in the nonvolatile memory 303 is recovered to a normal state, the reset signal 512 is raised to a high level. to release the reset of the CPU 301. By resetting the CPU 301 using the reset signal 512 in this manner, the firmware for the CPU 301 read from the nonvolatile memory 303 by the CPU 301 can always be correct.

またセキュアマイコン321は、リセット信号513を用いてスキャナCPU331のリセット制御を行う。スキャナCPU331をリセット状態にするときにはリセット信号513をロウレベルに、リセット解除状態(動作状態)にするときはハイレベルになるように制御する。画像形成装置10の電源投入時には、セキュアマイコン321はリセット信号513をロウレベルにしてスキャナCPU331をリセット状態にしておく。その後に、セキュアマイコン321が不揮発メモリ332に格納されているスキャナCPU用のファームウェアの改竄検証を実施して、検証結果が問題ない場合は、リセット信号513をハイレベルにしてスキャナCPU331をリセット解除状態にする。またセキュアマイコン321が不揮発メモリ332に格納されているファームウェアに改竄があったと判定しても、不揮発メモリ332に格納されているファームウェアを正常な状態にリカバリした場合は、リセット信号513をハイレベルにしてスキャナCPU331をリセット解除状態にする。このようにセキュアマイコン321が、リセット信号513を使用してスキャナCPU331のリセット制御を実施することで、スキャナCPU331が不揮発メモリ332から読み出すスキャナCPU用のファームウェアが、常に正しいものであるようにすることができる。 Also, the secure microcomputer 321 performs reset control of the scanner CPU 331 using the reset signal 513 . The reset signal 513 is controlled to be at a low level when the scanner CPU 331 is reset, and at a high level when the reset is canceled (operating state). When the power of the image forming apparatus 10 is turned on, the secure microcomputer 321 sets the reset signal 513 to low level to keep the scanner CPU 331 in a reset state. After that, the secure microcomputer 321 verifies falsification of the firmware for the scanner CPU stored in the nonvolatile memory 332. If the verification result indicates no problem, the reset signal 513 is set to a high level to put the scanner CPU 331 into a reset release state. to Even if the secure microcomputer 321 determines that the firmware stored in the nonvolatile memory 332 has been tampered with, if the firmware stored in the nonvolatile memory 332 is recovered to a normal state, the reset signal 513 is set to high level. to bring the scanner CPU 331 into the reset release state. In this way, the secure microcomputer 321 performs reset control of the scanner CPU 331 using the reset signal 513 so that the scanner CPU firmware read by the scanner CPU 331 from the nonvolatile memory 332 is always correct. can be done.

またセキュアマイコン321は、リセット信号514を用いてプリンタCPU341のリセット制御を行う。プリンタCPU341をリセット状態にするときにはリセット信号514をロウレベルに、リセット解除状態(動作状態)にするときはリセット信号514をハイレベルにする。画像形成装置10の電源投入時に、セキュアマイコン321は、リセット信号514をロウレベルにしてプリンタCPU341をリセット状態にしておく。その後に、セキュアマイコン321が不揮発メモリ342に格納されているプリンタCPU用のファームウェアの改竄検証を実施して、検証結果が問題ない場合は、リセット信号514をハイレベルにしてプリンタCPU341をリセット解除状態にする。またセキュアマイコン321が不揮発メモリ342に格納されているファームウェアに改竄があったと判定しても、不揮発メモリ342に格納されているファームウェアを正常な状態にリカバリした場合は、リセット信号514をハイレベルにしてプリンタCPU341をリセット解除状態にする。このようにリセット信号514を使用してプリンタCPU341のリセット制御を実施することで、プリンタCPU341が不揮発メモリ342から読み出すプリンタCPU用のファームウェアが、常に正しいものであるようにすることができる。 またセキュアマイコン321は、アラート信号515を用いてCPU301に対して、CPU301用の不揮発メモリ303に格納されているファームウェア411の改竄があったことを通知する。アラート信号515は、セキュアマイコン321が不揮発メモリ303に格納されているファームウェア411のリカバリを行ってCPU301が正常に起動できるようになった場合に、ファームウェア411が改竄されていたことをCPU301に通知するための信号である。この通知を受けたCPU301は、正常に起動された後に、アラート信号515を確認して、CPU301用のファームウェア411の改竄が発生していたことを監査ログに残す。またアラート信号515は、通常は、セキュアマイコン321がロウレベルで出力しており、不揮発メモリ303に格納されているファームウェア411が改竄されていると判定した場合に、セキュアマイコン321がアラート信号515をハイレベルで出力する。 The secure microcomputer 321 also uses the reset signal 514 to reset the printer CPU 341 . When resetting the printer CPU 341, the reset signal 514 is set to low level, and when resetting the printer CPU 341, the reset signal 514 is set to high level. When the power of the image forming apparatus 10 is turned on, the secure microcomputer 321 sets the reset signal 514 to low level to keep the printer CPU 341 in a reset state. After that, the secure microcomputer 321 verifies falsification of the firmware for the printer CPU stored in the nonvolatile memory 342, and if there is no problem in the verification result, the reset signal 514 is set to high level to put the printer CPU 341 into the reset release state. to Even if the secure microcomputer 321 determines that the firmware stored in the nonvolatile memory 342 has been tampered with, if the firmware stored in the nonvolatile memory 342 is recovered to a normal state, the reset signal 514 is set to high level. to bring the printer CPU 341 into the reset release state. By executing the reset control of the printer CPU 341 using the reset signal 514 in this way, the firmware for the printer CPU read out from the nonvolatile memory 342 by the printer CPU 341 can always be correct. In addition, the secure microcomputer 321 uses an alert signal 515 to notify the CPU 301 that the firmware 411 stored in the nonvolatile memory 303 for the CPU 301 has been tampered with. The alert signal 515 notifies the CPU 301 that the firmware 411 has been tampered with when the secure microcomputer 321 recovers the firmware 411 stored in the nonvolatile memory 303 and the CPU 301 can be started normally. It is a signal for After receiving this notification, the CPU 301 confirms the alert signal 515 after being normally started, and records in the audit log that the firmware 411 for the CPU 301 has been tampered with. The alert signal 515 is normally output at a low level by the secure microcomputer 321, and when it is determined that the firmware 411 stored in the nonvolatile memory 303 has been tampered with, the secure microcomputer 321 raises the alert signal 515 to a high level. output in levels.

またセキュアマイコン321は、アラート信号516を用いてCPU301に対して、スキャナ用の不揮発メモリ332に格納されているファームウェアの改竄があったことを通知する。アラート信号516は、セキュアマイコン321が不揮発メモリ332に格納されているファームウェアのリカバリを行ってスキャナCPU331が正常に起動するようになった場合に、スキャナ用のファームウェア421が改竄されていたことをCPU301に通知するための信号である。この通知を受けたCPU301は、正常に起動された後に、アラート信号516を確認して、スキャナ用不揮発メモリ332のファームウェア421が改竄されていたことを監査ログに残す。またセキュアマイコン321は、通常は、アラート信号516をロウレベルで出力しており、スキャナ用の不揮発メモリ332に格納されているファームウェア421が改竄されていると判定した場合は、アラート信号516をハイレベルで出力する。 The secure microcomputer 321 also uses an alert signal 516 to notify the CPU 301 that the firmware stored in the scanner non-volatile memory 332 has been tampered with. When the secure microcomputer 321 recovers the firmware stored in the nonvolatile memory 332 and the scanner CPU 331 starts up normally, the alert signal 516 notifies the CPU 301 that the scanner firmware 421 has been tampered with. is a signal to notify After receiving this notification, the CPU 301 confirms the alert signal 516 after being normally started, and records in the audit log that the firmware 421 of the scanner non-volatile memory 332 has been tampered with. The secure microcomputer 321 normally outputs the alert signal 516 at low level, and when it determines that the firmware 421 stored in the non-volatile memory 332 for the scanner has been tampered with, it outputs the alert signal 516 at high level. to output.

またセキュアマイコン321は、アラート信号517を用いてCPU301に対して、プリンタ用の不揮発メモリ342に格納されるファームウェア431が改竄されたことを通知する。このアラート信号517は、セキュアマイコン321が不揮発メモリ342に格納されているプリンタCPU用のファームウェア431のリカバリを行って、プリンタCPU331が正常に起動するようになった場合に、プリンタCPU用のファームウェア431が改竄されていたことをCPU301に通知するための信号である。この通知を受けたCPU301は、正常に起動された後に、アラート信号517を確認して、プリンタ用の不揮発メモリ342のファームウェア431に改竄が発生していたことを監査ログに残す。またセキュアマイコン321は、通常、アラート信号517をロウレベルで出力しており、不揮発メモリ342格納されているファームウェア431が改竄されていると判定した場合にはアラート信号517をハイレベルで出力する。 The secure microcomputer 321 also uses an alert signal 517 to notify the CPU 301 that the firmware 431 stored in the printer non-volatile memory 342 has been tampered with. This alert signal 517 is issued when the secure microcomputer 321 recovers the firmware 431 for the printer CPU stored in the non-volatile memory 342 and the printer CPU 331 starts normally. This is a signal for notifying the CPU 301 that the data has been tampered with. After receiving this notification, the CPU 301 confirms the alert signal 517 after normal startup, and records in the audit log that the firmware 431 of the non-volatile memory 342 for the printer has been tampered with. The secure microcomputer 321 normally outputs the alert signal 517 at low level, and outputs the alert signal 517 at high level when it determines that the firmware 431 stored in the nonvolatile memory 342 has been tampered with.

図6は、実施形態1に係るセキュアマイコン321の動作を説明するフローチャートである。尚、このフローチャートで示す処理は、セキュアマイコン321がROM322に格納されているプログラムを実行することにより達成される。 FIG. 6 is a flowchart for explaining the operation of the secure microcomputer 321 according to the first embodiment. Note that the processing shown in this flowchart is achieved by the secure microcomputer 321 executing a program stored in the ROM 322 .

この処理は、セキュアマイコン321に電源が投入されていない状態で開始され、S601で電源が投入されるとS602に遷移する。S602でセキュアマイコン321は、起動処理を実行する。このときセキュアマイコン321は、セキュアマイコン用のROM322からセキュアマイコン用のファームウェア401を読み出す。そしてセキュアマイコン321内部にあるヒューズ設定されている鍵情報を用いてファームウェア401の検証を行い、検証が問題なければファームウェア401での起動処理を行う。こうしてセキュアマイコン321が正常に起動するとS603に遷移する。 This process starts when the secure microcomputer 321 is not powered on, and transitions to S602 when the power is switched on in S601. In S602, the secure microcomputer 321 executes activation processing. At this time, the secure microcomputer 321 reads the firmware 401 for the secure microcomputer from the ROM 322 for the secure microcomputer. Then, the firmware 401 is verified using the fuse-set key information inside the secure microcomputer 321, and if there is no problem with the verification, the firmware 401 is activated. When the secure microcomputer 321 starts up normally in this way, the process transitions to S603.

以下、S603~S608でCPU301用のファームウェア411の検証とリカバリについて説明する。S603でセキュアマイコン321は、不揮発メモリ303に格納されているCPU301用のファームウェア411が改竄されているかどうかを検証するために不揮発メモリ303からCPU用ファームウェア411を読み出す。こうしてCPU用ファームウェア411の読み出しが完了するとS604に遷移する。S604でセキュアマイコン321は、読み出したCPU用ファームウェア411の改竄の有無を検証する。ここでセキュアマイコン321は、S603で読み出したCPU用ファームウェア411がサイバー攻撃等により書き換えられていないか(改竄されているかどうか)検証する。そしてセキュアマイコン321が、ファームウェア411が改竄されていないと判定するとS608に遷移し、ファームウェア411が改竄されていると判定するとS605に遷移する。 Verification and recovery of the firmware 411 for the CPU 301 in steps S603 to S608 will be described below. In S603, the secure microcomputer 321 reads out the CPU firmware 411 from the nonvolatile memory 303 in order to verify whether the firmware 411 for the CPU 301 stored in the nonvolatile memory 303 has been tampered with. When reading of the CPU firmware 411 is completed in this manner, the process transitions to S604. In S604, the secure microcomputer 321 verifies whether or not the read CPU firmware 411 has been tampered with. Here, the secure microcomputer 321 verifies whether the CPU firmware 411 read in S603 has been rewritten (falsified) due to a cyber attack or the like. If the secure microcomputer 321 determines that the firmware 411 has not been tampered with, the process transitions to S608, and if it determines that the firmware 411 has been tampered with, the process transitions to S605.

S605でセキュアマイコン321は、CPU301に対してアラート信号515による通知を行う。即ち、セキュアマイコン321は、アラート信号515をロウレベルからハイレベルに変更して、CPU301に対してCPU301用のファームウェア411が改竄されたことをアラートとして通知してS606に遷移する。S606でセキュアマイコン321は、不揮発メモリ303に格納しているCPU用ファームウェア411の復旧を行う。ここではセキュアマイコン321は、ROM322に格納されているリカバリ時に使用するCPU用ファームウェア402を読み出し、その読み出したファームウェアを不揮発メモリ303のCPU用ファームウェア411の領域に書き込むことで復旧させる。こうして不揮発メモリ303へのファームウェアの書き込みが完了するとS607に遷移する。S607でセキュアマイコン321は、CPU用ファームウェア411が正常に復旧されたかどうかを確認する。このときセキュアマイコン321は、ROM322に格納されているリカバリ時に使用するCPU用ファームウェア402と、S606で不揮発メモリ303に格納したCPU用ファームウェア411とを比較する。そしてその比較結果に従って、正常に復旧できたかどうか判定する。ここでセキュアマイコン321が、CPU用ファームウェア411を正常に復旧できたと判定するとS608に遷移し、正常に復旧できていないと判定すると、この処理を終了する。そしてS608でセキュアマイコン321は、CPU301のリセットを解除する。即ち、セキュアマイコン321はリセット信号512をロウレベルからハイレベル変更することで、CPU301のリセットを解除してS609に進む。 In S<b>605 , the secure microcomputer 321 notifies the CPU 301 with the alert signal 515 . That is, the secure microcomputer 321 changes the alert signal 515 from low level to high level, notifies the CPU 301 that the firmware 411 for the CPU 301 has been tampered with as an alert, and transitions to S606. In S<b>606 , the secure microcomputer 321 restores the CPU firmware 411 stored in the nonvolatile memory 303 . Here, the secure microcomputer 321 reads out the CPU firmware 402 to be used for recovery stored in the ROM 322 and writes the read firmware into the area of the CPU firmware 411 in the nonvolatile memory 303 for recovery. When the writing of the firmware to the nonvolatile memory 303 is completed in this manner, the process transitions to S607. In S607, the secure microcomputer 321 confirms whether the CPU firmware 411 has been successfully restored. At this time, the secure microcomputer 321 compares the CPU firmware 402 stored in the ROM 322 and used for recovery with the CPU firmware 411 stored in the nonvolatile memory 303 in S606. Then, according to the comparison result, it is determined whether or not the system has been successfully restored. Here, if the secure microcomputer 321 determines that the CPU firmware 411 has been successfully restored, the processing transitions to S608, and if it is determined that the restoration has not been performed normally, this processing ends. The secure microcomputer 321 releases the reset of the CPU 301 in S608. That is, the secure microcomputer 321 changes the reset signal 512 from low level to high level to release the reset of the CPU 301 and advances to S609.

次にS609~S614でスキャナCPU用のファームウェア421の検証とリカバリについて説明する。 Verification and recovery of the firmware 421 for the scanner CPU in steps S609 to S614 will now be described.

まずS609でセキュアマイコン321は、スキャナ用不揮発メモリ332に格納されているスキャナCPU331用のファームウェア421が改竄されているかどうか検証するために不揮発メモリ332からファームウェア421を読み出す。このファームウェア421の読み出しが完了するとS610に遷移する。S610でセキュアマイコン321は、読み出したファームウェア421の改竄の有無を検証する。即ち、セキュアマイコン321は、S609で読み出したファームウェア421がサイバー攻撃等により書き換えられていないか(改竄されているかどうか)を検証する。ここでセキュアマイコン321が、ファームウェア421が改竄されていないと判定するとS614に遷移し、ファームウェア421が改竄されていると判定するとS611に遷移する。 First, in S609, the secure microcomputer 321 reads the firmware 421 from the non-volatile memory 332 in order to verify whether the firmware 421 for the scanner CPU 331 stored in the non-volatile memory 332 for scanner has been tampered with. When reading of the firmware 421 is completed, the process transitions to S610. In S610, the secure microcomputer 321 verifies whether or not the read firmware 421 has been tampered with. That is, the secure microcomputer 321 verifies whether the firmware 421 read in S609 has been rewritten (falsified) by a cyber attack or the like. Here, if the secure microcomputer 321 determines that the firmware 421 has not been tampered with, the process transitions to S614, and if it determines that the firmware 421 has been tampered with, the process transitions to S611.

S611でセキュアマイコン321は、CPU301に対してアラート信号516により通知する。このときセキュアマイコン321は、アラート信号516をロウレベルからハイレベルに変更することで、CPU301に対してスキャナCPU用のファームウェア421が改竄されたことをアラートとして通知する。このアラートの通知を実施するとS612に遷移する。S612でセキュアマイコン321は、スキャナ用不揮発メモリ332に格納されているファームウェア421の復旧を行う。即ち、セキュアマイコン321は、ROM322に格納されているリカバリ時に使用するスキャナCPU用のファームウェア403を読み出し、その読み出したファームウェアを不揮発メモリ332のファームウェア421の領域に書き込む。こうして不揮発メモリ332にファームウェアを書き込む処理が完了するとS613に遷移する。S613でセキュアマイコン321は、ファームウェア421が正常に復旧されたかどうか確認する。このときセキュアマイコン321は、ROM322に格納されているリカバリ時に使用するスキャナCPU用ファームウェア403と、不揮発メモリ332に格納したファームウェア421とを比較する。そして、その比較結果に従って、ファームウェア421が正常に復旧できたかどうか判定する。ここでセキュアマイコン321が、ファームウェア421が正常に復旧できたと判定するとS614に遷移し、正常に復旧できていないと判定するとS615に遷移する。S614でセキュアマイコン321は、スキャナCPU331のリセットを解除する。即ち、セキュアマイコン321は、リセット信号513をロウレベルからハイレベルに変更して、スキャナCPU331のリセットを解除する。一方、スキャナCPU用のファームウェア421が正常に復旧できていないときは、スキャナCPU331のリセットを解除せずにS615に進む。 In S<b>611 , the secure microcomputer 321 notifies the CPU 301 with the alert signal 516 . At this time, the secure microcomputer 321 changes the alert signal 516 from low level to high level, thereby notifying the CPU 301 as an alert that the firmware 421 for the scanner CPU has been falsified. When notification of this alert is carried out, the process proceeds to S612. In S<b>612 , the secure microcomputer 321 restores the firmware 421 stored in the scanner nonvolatile memory 332 . That is, the secure microcomputer 321 reads the firmware 403 for the scanner CPU to be used for recovery stored in the ROM 322 and writes the read firmware to the firmware 421 area of the nonvolatile memory 332 . When the process of writing the firmware to the nonvolatile memory 332 is completed in this manner, the process transitions to S613. In S613, the secure microcomputer 321 confirms whether the firmware 421 has been successfully restored. At this time, the secure microcomputer 321 compares the scanner CPU firmware 403 stored in the ROM 322 and used for recovery with the firmware 421 stored in the nonvolatile memory 332 . Then, according to the comparison result, it is determined whether or not the firmware 421 has been successfully restored. Here, if the secure microcomputer 321 determines that the firmware 421 has been successfully restored, the process transitions to S614, and if it determines that the firmware 421 has not been successfully restored, the process transitions to S615. In S<b>614 , the secure microcomputer 321 cancels the reset of the scanner CPU 331 . That is, the secure microcomputer 321 changes the reset signal 513 from low level to high level to cancel the reset of the scanner CPU 331 . On the other hand, if the firmware 421 for the scanner CPU cannot be restored normally, the reset of the scanner CPU 331 is not canceled and the process proceeds to step S615.

次にS615~S620でプリンタCPU用のファームウェア431の検証とリカバリを行う。 Next, in steps S615 to S620, verification and recovery of the firmware 431 for the printer CPU are performed.

まずS615でセキュアマイコン321は、プリンタ用不揮発メモリ342に格納されているプリンタCPU341用のファームウェア431が改竄されているかどうか検証するためにプリンタ用不揮発メモリ342からファームウェア431を読み出す。そしてプリンタCPU用ファームウェア431の読み出しが完了するとS616に遷移する。S616でセキュアマイコン321は、S615で読み出したプリンタCPU用ファームウェア431がサイバー攻撃等により書き換えられていないか(改竄されているかどうか)検証する。ここでセキュアマイコン321が、ファームウェア431が改竄されていないと判定するとS620に遷移し、ファームウェア431が改竄されていると判定するとS617に遷移する。 First, in S615, the secure microcomputer 321 reads the firmware 431 from the printer non-volatile memory 342 in order to verify whether the firmware 431 for the printer CPU 341 stored in the printer non-volatile memory 342 has been tampered with. When the reading of the printer CPU firmware 431 is completed, the process proceeds to S616. In S616, the secure microcomputer 321 verifies whether the printer CPU firmware 431 read in S615 has been rewritten (falsified) by a cyber attack or the like. Here, if the secure microcomputer 321 determines that the firmware 431 has not been tampered with, the process transitions to S620, and if it determines that the firmware 431 has been tampered with, the process transitions to S617.

S617でセキュアマイコン321は、CPU301に対してアラート信号を通知する。即ち、セキュアマイコン321は、アラート信号517をロウレベルからハイレベルに変更して、CPU301にプリンタCPU用ファームウェア431が改竄されたことをアラートとして通知する。このアラートの通知を実施するとS618に遷移する。S618でセキュアマイコン321は、プリンタ用不揮発メモリ342に格納されているプラインタCPU用ファームウェア431の復旧を行う。即ち、セキュアマイコン321はROM322に格納されているリカバリ時に使用するプリンタCPU用ファームウェア404を読み出してプリンタ用不揮発メモリ342のプリンタCPU用ファームウェア431の領域に書き込む。こうしてプリンタ用不揮発メモリ342のファームウェア431の書き込みが完了するとS619に遷移する。S619でセキュアマイコン321は、プリンタCPU用ファームウェア431が正常に復旧されたか確認する。ここではセキュアマイコン用ROM322に格納しているプリンタCPU用ファームウェア404と、S618でプリンタ用不揮発メモリ342に格納したプリンタCPU用ファームウェア431とを比較する。そしてその比較結果に従って、プリンタCPU用ファームウェア431が正常に復旧できたかどうか判定し、正常に復旧できたと判定するとS620に遷移し、正常に復旧できていないと判定すると、この処理を終了する。S620でセキュアマイコン321は、プリンタ用CPU331のリセットを解除する。ここではセキュアマイコン321は、アラート信号514をロウレベルからハイレベルに変更して、プリンタCPU341のリセットを解除する。 In S617, the secure microcomputer 321 notifies the CPU 301 of an alert signal. That is, the secure microcomputer 321 changes the alert signal 517 from low level to high level to notify the CPU 301 that the printer CPU firmware 431 has been tampered with as an alert. When this alert is notified, the process transitions to S618. In S<b>618 , the secure microcomputer 321 restores the printer CPU firmware 431 stored in the printer nonvolatile memory 342 . That is, the secure microcomputer 321 reads out the printer CPU firmware 404 stored in the ROM 322 and used for recovery, and writes it into the printer CPU firmware 431 area of the printer non-volatile memory 342 . When the writing of the firmware 431 to the printer non-volatile memory 342 is completed in this manner, the process transitions to S619. In S619, the secure microcomputer 321 confirms whether the printer CPU firmware 431 has been restored normally. Here, the printer CPU firmware 404 stored in the secure microcomputer ROM 322 is compared with the printer CPU firmware 431 stored in the printer non-volatile memory 342 in S618. Then, according to the comparison result, it is determined whether or not the printer CPU firmware 431 has been successfully restored. In S<b>620 , the secure microcomputer 321 cancels the reset of the printer CPU 331 . Here, the secure microcomputer 321 changes the alert signal 514 from low level to high level to release the reset of the printer CPU 341 .

以上説明した様に、この処理によれば、セキュアマイコン321が、ファームウェアの検証が完了したCPUのリセットを順次解除することにより、各CPUが起動処理を行うのと並行して、セキュアマイコンによる各CPUのファームウェアを検証できる。これにより、画像形成装置としての起動時間を減少させることが可能となる。また各CPUの起動時間が長いものから順番にファームウェアを検証を行うことにより、より起動時間を削減できるという効果を得ることができる。 As described above, according to this process, the secure microcomputer 321 sequentially cancels the reset of the CPUs for which the firmware verification is completed. CPU firmware can be verified. This makes it possible to reduce the startup time of the image forming apparatus. Also, by verifying the firmware in order from the one with the longest startup time of each CPU, it is possible to obtain the effect of further reducing the startup time.

図7は、実施形態1に係る画像形成装置10のCPU301の動作を説明するフローチャートである。尚、このフローチャートで示す処理は、CPU301が不揮発メモリ303に格納されているプログラムを実行することにより達成される。 FIG. 7 is a flowchart for explaining the operation of the CPU 301 of the image forming apparatus 10 according to the first embodiment. Note that the processing shown in this flowchart is achieved by the CPU 301 executing a program stored in the nonvolatile memory 303 .

この処理の開始時には画像形成装置10の電源が投入されていない状態であり、S701で電源がオンされるとS702に遷移する。S702でセキュアマイコン321によりCPU301のリセット状態が解除されるとS703に遷移する。このCPU301のリセットの解除は、セキュアマイコン321が図6のS608でCPU301のリセットを解除することによりなされる。S703でCPU301は、CPU301用の不揮発メモリ303からCPU用ファームウェア411を読み出して起動する。このとき、セキュアマイコン321によって、改竄されていないCPU用ファームウェア411が不揮発メモリ303に格納されていることが保証されているため、CPU301は、確実に、改竄されていないCPU用ファームウェア411で起動できる。 At the start of this process, the power of the image forming apparatus 10 is not turned on, and when the power is turned on in S701, the process proceeds to S702. When the reset state of the CPU 301 is released by the secure microcomputer 321 in S702, the process proceeds to S703. The reset of the CPU 301 is canceled by the secure microcomputer 321 canceling the reset of the CPU 301 in S608 of FIG. In S703, the CPU 301 reads out the CPU firmware 411 from the non-volatile memory 303 for the CPU 301 and activates it. At this time, since the secure microcomputer 321 guarantees that the untampered CPU firmware 411 is stored in the non-volatile memory 303, the CPU 301 can be reliably booted with the untampered CPU firmware 411. .

S704でCPU301は、セキュアマイコン321から出力されるアラート信号515によりアラートを検知したかどうか判定する。この処理は、CPU301がリセット解除されて動作を開始する前に、セキュアマイコン321によって不揮発メモリ303に格納されているCPU用ファームウェア411の復旧処理(S606)が発生したかどうかを知るための処理である。アラート信号が発生されたことを検知した場合はS705に進み、アラート信号が発生されたことを検知していない場合はS706に遷移する。S705でCPU301は、CPU用ファームウェア411の復旧処理が発生していたことを監査ログに保存してS706に進む。このように監査ログに残すことで、CPU用ファームウェア411の改竄が発生していたことを通知、或いはトレース可能になる。 In S<b>704 , the CPU 301 determines whether an alert has been detected from the alert signal 515 output from the secure microcomputer 321 . This process is for determining whether or not the secure microcomputer 321 has performed the recovery process (S606) of the CPU firmware 411 stored in the nonvolatile memory 303 before the CPU 301 is reset and starts operating. be. If the generation of the alert signal is detected, the process proceeds to S705, and if the generation of the alert signal is not detected, the process proceeds to S706. In S705, the CPU 301 saves in the audit log that the recovery process of the CPU firmware 411 has occurred, and proceeds to S706. By leaving the information in the audit log in this way, it becomes possible to notify or trace that the CPU firmware 411 has been tampered with.

S706でCPU301は、セキュアマイコン321から出力されるアラート信号516を検知したかどうか判定する。この処理により、スキャナCPU331のリセットが解除されて動作開始する前に、セキュアマイコン321によって、不揮発メモリ332に格納されているスキャナCPU用ファームウェア421の復旧処理(S612)が発生したかどうかをCPU301が知ることができる。アラート信号516を検知した場合はS708に遷移し、アラート信号516を検知していない場合はS707に遷移する。S707でCPU301は、スキャナCPU331との通信が可能かどうか判定する。この処理は、スキャナCPU331のリセットが解除されて正常に動作開始しているかどうか確認するものである。即ち、CPU301がスキャナCPU331と正常に通信できることは、スキャナCPU331のリセットが解除されている状態であることをCPU301が知るための処理である。これによりスキャナCPU用ファームウェア421に対する改竄はなく、セキュアマイコン321が復旧処理(S612)を実施する必要がなかったということをCPU301が知ることができる。CPU301がスキャナCPU331との通信ができていないと判定するとS706に遷移して、通信できていると判定するとS712に遷移する。 In S706, the CPU 301 determines whether the alert signal 516 output from the secure microcomputer 321 has been detected. As a result of this processing, the CPU 301 checks whether or not the secure microcomputer 321 has performed the recovery processing (S612) of the scanner CPU firmware 421 stored in the nonvolatile memory 332 before the scanner CPU 331 is reset and starts operating. can know. When the alert signal 516 is detected, the process proceeds to S708, and when the alert signal 516 is not detected, the process proceeds to S707. In S707, the CPU 301 determines whether communication with the scanner CPU 331 is possible. This process confirms whether the reset of the scanner CPU 331 has been released and normal operation has started. That is, the fact that the CPU 301 can communicate normally with the scanner CPU 331 is a process for the CPU 301 to know that the reset of the scanner CPU 331 has been released. This allows the CPU 301 to know that the scanner CPU firmware 421 has not been tampered with and that the secure microcomputer 321 did not need to perform recovery processing (S612). If the CPU 301 determines that communication with the scanner CPU 331 is not possible, the process shifts to S706, and if it determines that the communication is possible, the process shifts to S712.

S708でCPU301は、スキャナCPU用ファームウェア421の復旧処理が発生していたことを監査ログに保存してS709に進む。このように監査ログに残しておくことで、スキャナCPU用ファームウェア421の改竄が発生していたことを通知、或いはトレース可能になる。S709でCPU301は、スキャナCPU用ファームウェア421の復旧に要する経過時間を計時する。前述したように、セキュアマイコン321がアラート信号516でアラート通知を行った後にスキャナCPU用ファームウェア421の復旧を行う。このため、セキュアマイコン321が復旧に要する時間が経過した後にCPU301との通信確認を実施する必要がある。CPU301が、復旧に要する時間が経過したと判定した場合にはS710に遷移し、そうでない場合にS709に留まる。S710でCPU301は、スキャナCPU331との通信が可能かどうか判定する。この処理は、スキャナCPU331へのリセットが解除されて正常に動作開始しているかどうか確認する処理である。CPU301がスキャナCPU331と正常に通信できていることは、スキャナCPU用ファームウェアウェア421の改竄があった後に、セキュアマイコン321が復旧処理(S612)を実施して、正常に復旧できていることを示す。CPU301がスキャナCPU331との通信ができていないと判定するとS711に遷移し、通信できていると判定するとS712に遷移する。S711でCPU301は、スキャナCPU331との通信エラーを通知してS712に進む。 In step S<b>708 , the CPU 301 saves in the audit log that recovery processing of the scanner CPU firmware 421 has occurred, and advances to step S<b>709 . By leaving the information in the audit log in this way, it becomes possible to notify or trace that the scanner CPU firmware 421 has been tampered with. In step S<b>709 , the CPU 301 counts the elapsed time required for restoring the scanner CPU firmware 421 . As described above, the scanner CPU firmware 421 is restored after the secure microcomputer 321 issues an alert notification using the alert signal 516 . Therefore, it is necessary to confirm communication with the CPU 301 after the time required for the secure microcomputer 321 to recover has elapsed. If the CPU 301 determines that the time required for restoration has elapsed, the process proceeds to S710, otherwise the process remains at S709. In S710, the CPU 301 determines whether communication with the scanner CPU 331 is possible. This process is for checking whether the reset of the scanner CPU 331 has been released and normal operation has started. The fact that the CPU 301 can communicate normally with the scanner CPU 331 indicates that the secure microcomputer 321 has performed recovery processing (S612) after the scanner CPU firmware 421 has been tampered with, and has been successfully recovered. . If the CPU 301 determines that communication with the scanner CPU 331 is not possible, the process shifts to S711, and if it determines that the communication is possible, the process shifts to S712. In S711, the CPU 301 notifies of a communication error with the scanner CPU 331, and advances to S712.

S712でCPU301は、セキュアマイコン321から出力されるアラート信号517を検知したかどうか判定する。これによりCPU301は、プリンタCPU341がリセットから解除されて動作開始する前に、セキュアマイコン321によってプリンタ不揮発メモリ342に格納されているプリンタCPU用ファームウェア431の復旧処理(S618)が発生したかどうかを知ることができる。アラート信号517の発生を検知していない場合はS713に遷移し、アラート信号517を検知した場合はS714に遷移する。S713でCPU301は、プリンタCPU341との通信が可能かどうか判定する。これは、プリンタCPU341へのリセットが解除されて正常に動作開始しているかどうかの確認するためである。ここでCPU301がプリンタCPU341と正常に通信できていると判定すると、プリンタCPU用ファームウェア431に対する改竄はなく、セキュアマイコン321が復旧処理(S618)を実施する必要がなかったことになる。S713でCPU301がプリンタCPU341との通信ができていないと判定するとS712に遷移し、通信できていると判定すると、この処理を終了する。 In S712, the CPU 301 determines whether or not the alert signal 517 output from the secure microcomputer 321 has been detected. This allows the CPU 301 to know whether or not the secure microcomputer 321 has performed the restoration process (S618) of the printer CPU firmware 431 stored in the printer non-volatile memory 342 before the printer CPU 341 is released from reset and starts operating. be able to. If the generation of the alert signal 517 is not detected, the process proceeds to S713, and if the alert signal 517 is detected, the process proceeds to S714. In S713, the CPU 301 determines whether communication with the printer CPU 341 is possible. This is to confirm whether the printer CPU 341 has been reset and has started operating normally. If it is determined here that the CPU 301 can communicate normally with the printer CPU 341, the printer CPU firmware 431 has not been tampered with, and the secure microcomputer 321 need not perform recovery processing (S618). If the CPU 301 determines in S713 that communication with the printer CPU 341 is not possible, the process proceeds to S712, and if it is determined that communication is possible, this process ends.

S714でCPU301は、プリンタCPU用ファームウェア431の復旧処理が発生していたことを監査ログに保存してS715に進む。こうして監査ログに残しておくことで、プリンタCPU用ファームウェア431の改竄が発生していたことを通知、或いはトレース可能になる。S715でCPU301は、プリンタCPU用ファームウェア431の復旧に要する時間経過を計時する。これはセキュアマイコン321がアラート信号517を通知した後にプリンタCPU用ファームウェア431を復旧するため、その復旧に要する時間が経過した後にCPU301との通信確認を実施する必要があるためである。S715でCPU301が、復旧に要する時間が経過したと判定した場合はS716に遷移し、そうでない場合にS715に留まる。S716でCPU301は、プリンタCPU341との通信が可能かどうか判定する。ここでは、プリンタCPU341へのリセットが解除されて、プリCPU341が正常に動作を開始しているかどうか確認している。ここでCPU301がプリンタCPU341と正常に通信できていることは、プリンタCPU用ファームウェアウェア431の改竄があった後に、セキュアマイコン321が復旧処理(S618)を実施して、正常に復旧できたことを知ることができる。CPU301がプリンタCPU341と通信ができていないと判定するとS717に遷移し、通信できていると判定すると、この処理を終了する。S717でCPU301は、プリンタCPU341との通信エラーを通知して、この処理を終了する。 In S714, the CPU 301 saves in the audit log that the restoration process of the printer CPU firmware 431 has occurred, and proceeds to S715. By leaving this in the audit log, it becomes possible to notify or trace that the printer CPU firmware 431 has been tampered with. In step S<b>715 , the CPU 301 counts the elapsed time required for restoring the printer CPU firmware 431 . This is because the printer CPU firmware 431 is restored after the secure microcomputer 321 notifies the alert signal 517, so it is necessary to confirm communication with the CPU 301 after the time required for the restoration has elapsed. If the CPU 301 determines in S715 that the time required for restoration has elapsed, the process proceeds to S716, otherwise the process remains in S715. In S716, the CPU 301 determines whether communication with the printer CPU 341 is possible. Here, it is confirmed whether the reset to the printer CPU 341 has been released and the pre-CPU 341 has started operating normally. Here, the fact that the CPU 301 can communicate normally with the printer CPU 341 means that the secure microcomputer 321 has performed recovery processing (S618) after the firmware 431 for the printer CPU has been tampered with, and has been successfully recovered. can know. If the CPU 301 determines that communication with the printer CPU 341 is not possible, the process proceeds to step S717, and if it is determined that communication is possible, this process ends. In S717, the CPU 301 notifies of a communication error with the printer CPU 341, and terminates this process.

以上説明した様に実施形態1によれば、セキュアマイコンが、ファームウェアの検証が完了したCPUのリセットを順次解除することにより、各CPUが起動処理を行うのと並行して、セキュアマイコンによる各CPUのファームウェアを検証できる。これにより、画像形成装置としての起動時間を減少させることが可能となる。また各CPUの起動時間が長いものから順番にファームウェアを検証を行うことにより、より起動時間を削減できるという効果を得ることができる。 As described above, according to the first embodiment, the secure microcomputer sequentially cancels the reset of the CPUs whose firmware has been verified. firmware can be verified. This makes it possible to reduce the startup time of the image forming apparatus. Also, by verifying the firmware in order from the one with the longest startup time of each CPU, it is possible to obtain the effect of further reducing the startup time.

またメインのCPUが、セキュアマイコンからのアラートの通知や各CPUとの通信を確認することで、画像形成装置の起動時間を減少させることができる。 In addition, the main CPU can reduce the startup time of the image forming apparatus by checking alert notifications from the secure microcomputer and communication with each CPU.

[実施形態2]
実施形態2では、セキュアマイコン321が検証するCPUが複数あり、複数あるCPUの内の2つ以上がそれぞれの起動処理に関連性があるため、それらCPUを同時にリセットから解除する例で記載する。尚、実施形態2に係る情報処理システムの構成及び画像形成装置10のハードウェア構成などは前述の実施形態1と同様であるため、その説明を省略する。尚、実施形態2に係るセキュアマイコン用ROM322では、図4に示すファームウェアに加えて、LAンコントローラ用の不揮発メモリ315のファームウェアを復旧するためのLANコントローラ用のファームウェア(不図示)を格納している。
[Embodiment 2]
In the second embodiment, there are a plurality of CPUs to be verified by the secure microcomputer 321, and two or more of the plurality of CPUs are related to their activation processes. Since the configuration of the information processing system and the hardware configuration of the image forming apparatus 10 according to the second embodiment are the same as those of the first embodiment, the description thereof will be omitted. In addition to the firmware shown in FIG. 4, the secure microcomputer ROM 322 according to the second embodiment stores LAN controller firmware (not shown) for restoring the firmware of the nonvolatile memory 315 for the LAN controller. there is

図8は、実施形態2に係るCPU301、LANコントローラ306、プリンタCPU341及びセキュアマイコン321と、ROM及び各不揮発メモリとを接続するバス構成を説明する図である。尚、ここでは、SPIバスを例にして説明をするが、本発明はSPIバスに限定されるものではない。 FIG. 8 is a diagram illustrating a bus configuration for connecting the CPU 301, LAN controller 306, printer CPU 341, secure microcomputer 321, ROM, and nonvolatile memories according to the second embodiment. Although the SPI bus will be described as an example here, the present invention is not limited to the SPI bus.

バス801は、セキュアマイコン321とセキュアマイコン用ROM322を接続するためのSPIバスである。バス801は、チップセレクト信号(CS#)、クロック信号(CLK)、データバス信号(IO)を備えており、セキュアマイコン321が動作するためのファームウェアを読み出すのに使用される。またセキュアマイコン用のROM322は、各CPUで動作するファームウェアが改竄された場合に、改竄されていない状態に復旧させるためのファームウェアを格納している。そのため、セキュアマイコン321が、各CPUで動作するファームウェアが改竄されていることを検知した場合、バス801はリカバリ用のファームウェアの読み出しを行うのに使用される。 A bus 801 is an SPI bus for connecting the secure microcomputer 321 and the secure microcomputer ROM 322 . A bus 801 has a chip select signal (CS#), a clock signal (CLK), and a data bus signal (IO), and is used to read firmware for the secure microcomputer 321 to operate. Also, the ROM 322 for the secure microcomputer stores firmware for recovering to a non-tampered state when the firmware operating in each CPU is tampered with. Therefore, when the secure microcomputer 321 detects that the firmware operating in each CPU has been tampered with, the bus 801 is used to read the firmware for recovery.

バス802は、セキュアマイコン321とCPU301用の不揮発メモリ303とを接続し、またCPU301と不揮発メモリ303とを接続するためのSPIバスである。バス802は、チップセレクト信号(CS#)、クロック信号(CLK)、データバス信号(IO)を備えている。セキュアマイコン321は、不揮発メモリ303に格納されているCPU用のファームウェア411が改竄されていないことを検証するために、バス802を介してファームウェア411を読み出す。またバス802は、CPU301が不揮発メモリ303に格納されているCPU301用のファームウェア411を読み出すのに使用される。CPU301は、不揮発メモリ303に格納されているファームウェアで起動処理を実施するためにファームウェアの読み出しを行う。バス802は、セキュアマイコン321とCPU301の両方から不揮発メモリ303に対してアクセスできる構成になっているが、実際のアクセスが同時に発生することはない。即ち、セキュアマイコン321がアクセスしている際は、CPU301はリセット状態で不揮発メモリ303にアクセスすることはない。またCPU301のリセットが解除された後は、セキュアマイコン321から不揮発メモリ303にアクセスすることはない。更にバス802では、各信号が分岐された構成になっていて、セキュアマイコン321とCPU301から出力される信号がぶつかってしまうことが考えられる。しかしながら、アクセスしないときは、これら各信号出力がハイインピーダンスにするように制御することにより、信号がぶつかることはなくなる。また信号出力をハイインピーダンスにできない場合は、セレクタ回路を追加することで、セキュアマイコン321とCPU301からのアクセスを切り替えるようにしても良い。 A bus 802 is an SPI bus for connecting the secure microcomputer 321 and the nonvolatile memory 303 for the CPU 301 and for connecting the CPU 301 and the nonvolatile memory 303 . Bus 802 includes a chip select signal (CS#), a clock signal (CLK), and a data bus signal (IO). The secure microcomputer 321 reads the firmware 411 via the bus 802 in order to verify that the firmware 411 for the CPU stored in the nonvolatile memory 303 has not been tampered with. Bus 802 is also used by CPU 301 to read firmware 411 for CPU 301 stored in non-volatile memory 303 . The CPU 301 reads the firmware stored in the non-volatile memory 303 in order to perform boot processing. The bus 802 is configured so that both the secure microcomputer 321 and the CPU 301 can access the nonvolatile memory 303, but actual accesses do not occur at the same time. That is, when the secure microcomputer 321 is accessing, the CPU 301 does not access the nonvolatile memory 303 in the reset state. Also, after the reset of the CPU 301 is released, the secure microcomputer 321 does not access the nonvolatile memory 303 . Furthermore, the bus 802 has a configuration in which each signal is branched, and it is conceivable that the signals output from the secure microcomputer 321 and the CPU 301 may collide. However, when not accessing, by controlling each of these signal outputs to have high impedance, the signals do not collide. If the signal output cannot be set to high impedance, access from the secure microcomputer 321 and the access from the CPU 301 may be switched by adding a selector circuit.

バス803は、セキュアマイコン321とLANコントローラ用不揮発メモリ315とを接続し、またLANコントローラ306と不揮発メモリ315とを接続するためのSPIバスである。バス803は、チップセレクト信号(CS#)、クロック信号(CLK)、データバス信号(IO)を備えている。セキュアマイコン321は、不揮発メモリ315に格納されているLANコントローラ用のファームウェアが改竄されていないことを検証するためにバス803を介してファームウェアを読み出す。またバス803は、LANコントローラ306が不揮発メモリ315に格納されているファームウェアの読み出しを行うのに使用される。LANコントロ-ラ306は、不揮発メモリ315に格納されているファームウェアでLAN60の制御を実施するためにファームウェアの読み出しを行う。バス803は、セキュアマイコン321とLANコントローラ306の両方から不揮発メモリ315にアクセスできる構成になっているが、セキュアマイコン321とLANコントローラ306の両方からのアクセスが同時に発生することはない。即ち、セキュアマイコン321がアクセスしている際には、LANコントローラ306はリセット状態で不揮発メモリ315にアクセスすることはない。またLANコントローラ306のリセットが解除された後は、セキュアマイコン321からバス803にアクセスしないようにしている。更にバス803は、各信号が分岐されている構成になっていてセキュアマイコン321とLANコントローラ306から出力される信号がぶつかってしまうことが考えられる。しかし、アクセスしない際h、各信号出力をハイインピーダンスにするように制御することで、信号がぶつかることはなくなる。また信号出力をハイインピーダンスにできない場合は、セレクタ回路を追加することで、セキュアマイコン321とLANコントローラ306からのアクセスを切り替えるようにしても良い。 A bus 803 is an SPI bus for connecting the secure microcomputer 321 and the LAN controller non-volatile memory 315 and connecting the LAN controller 306 and the non-volatile memory 315 . Bus 803 includes a chip select signal (CS#), a clock signal (CLK), and a data bus signal (IO). The secure microcomputer 321 reads the firmware via the bus 803 to verify that the LAN controller firmware stored in the nonvolatile memory 315 has not been tampered with. Bus 803 is also used by LAN controller 306 to read firmware stored in non-volatile memory 315 . The LAN controller 306 reads the firmware stored in the non-volatile memory 315 to control the LAN 60 . The bus 803 is configured so that both the secure microcomputer 321 and the LAN controller 306 can access the nonvolatile memory 315, but access from both the secure microcomputer 321 and the LAN controller 306 does not occur at the same time. That is, when the secure microcomputer 321 is accessing, the LAN controller 306 does not access the nonvolatile memory 315 in the reset state. Also, after the reset of the LAN controller 306 is released, the secure microcomputer 321 is prevented from accessing the bus 803 . Furthermore, the bus 803 is configured such that each signal is branched, and it is conceivable that the signals output from the secure microcomputer 321 and the LAN controller 306 may collide. However, by controlling each signal output to be high impedance when not accessing, the signals do not collide. If the signal output cannot be set to high impedance, access from the secure microcomputer 321 and the LAN controller 306 may be switched by adding a selector circuit.

バス804は、セキュアマイコン321とプリンタ用不揮発メモリ342とを接続し、またプリンタCPU341とプリンタ用不揮発メモリ342とを接続するためのSPIバスである。バス804は、チップセレクト信号(CS#)、クロック信号(CLK)、データバス信号(IO)を備えている。セキュアマイコン321は、不揮発メモリ342に格納されているファームウェア431が改竄されていないことを検証するために、バス804を介してプリンタCPU用のファームウェア431を読み出す。またバス804は、プリンタCPU341が不揮発メモリ342に格納されているファームウェアの読み出しを行うのに使用される。プリンタCPU341は、不揮発メモリ342に格納されているファームウェア342でプリンタ14の制御を実施する。バス804は、セキュアマイコン321とプリンタCPU341の両方からプリンタ用不揮発メモリ342対してアクセスできる構成になっているが、両方からのアクセスが同時に発生することはない。即ち、セキュアマイコン321がアクセスしている際には、プリンタCPU341はリセット状態で不揮発メモリ342にアクセスすることはない。またプリンタCPU341がリセットから解除された後は、セキュアマイコン321からバス804へのアクセスは出さないようにしている。更にバス804は、各信号が分岐されている構成になっていてセキュアマイコン321とプリンタCPU341から出力される信号がぶつかってしまうことが考えられる。しかし、アクセスしない際に各信号出力をハイインピーダンスにするように制御することで、信号がぶつかることはなくなる。また信号出力をハイインピーダンスにできない場合はセレクタ回路を追加することで、セキュアマイコン321とプリンタCPU341からのアクセスを切り替えるようにしても良い。 A bus 804 is an SPI bus for connecting the secure microcomputer 321 and the printer nonvolatile memory 342 and for connecting the printer CPU 341 and the printer nonvolatile memory 342 . Bus 804 includes a chip select signal (CS#), a clock signal (CLK), and a data bus signal (IO). The secure microcomputer 321 reads the firmware 431 for the printer CPU via the bus 804 in order to verify that the firmware 431 stored in the nonvolatile memory 342 has not been tampered with. The bus 804 is also used by the printer CPU 341 to read the firmware stored in the non-volatile memory 342 . The printer CPU 341 controls the printer 14 using firmware 342 stored in the nonvolatile memory 342 . The bus 804 is configured so that both the secure microcomputer 321 and the printer CPU 341 can access the printer non-volatile memory 342, but access from both does not occur at the same time. That is, when the secure microcomputer 321 is accessing, the printer CPU 341 does not access the nonvolatile memory 342 in the reset state. Also, after the printer CPU 341 is released from reset, the secure microcomputer 321 is prevented from accessing the bus 804 . Furthermore, the bus 804 is configured such that each signal is branched, and it is conceivable that the signals output from the secure microcomputer 321 and the printer CPU 341 collide. However, by controlling each signal output to be high impedance when not accessing, the signals do not collide. If the signal output cannot be set to high impedance, a selector circuit may be added to switch accesses from the secure microcomputer 321 and the printer CPU 341 .

セキュアマイコン321は、リセット信号812を用いて、CPU301及びLANコントローラ306のリセット制御を行う。即ち、CPU301及びLANコントローラ306をリセット状態にするときはリセット信号812をロウレベルに、リセットから解除した状態(動作状態)にするときはリセット信号812をハイレベルにする。画像形成装置10の電源投入時には、セキュアマイコン321は、リセット信号812でCPU301及びLANコントローラ306をリセット状態にしておく。その後に、セキュアマイコン321が不揮発メモリ303及び不揮発メモリ315に格納されているファームウェアの改竄検証を実施する。そして検証の結果、問題ない場合に、リセット信号812をハイレベルにしてCPU301及びLANコントローラ306のリセットを解除する。 The secure microcomputer 321 uses the reset signal 812 to reset the CPU 301 and the LAN controller 306 . That is, the reset signal 812 is set to low level when resetting the CPU 301 and LAN controller 306, and is set to high level when releasing the reset state (operating state). When the image forming apparatus 10 is powered on, the secure microcomputer 321 resets the CPU 301 and the LAN controller 306 with the reset signal 812 . After that, the secure microcomputer 321 verifies falsification of the firmware stored in the nonvolatile memory 303 and the nonvolatile memory 315 . As a result of the verification, if there is no problem, the reset signal 812 is set to high level to release the reset of the CPU 301 and the LAN controller 306 .

またセキュアマイコン321が不揮発メモリ303又は不揮発メモリ315に格納されているファームウェアに改竄があったと判定し、その改竄されたファームウェアを正常にリカバリした場合は、リセット信号812をハイレベルにしてCPU301及びLANコントローラ306のリセットを解除する。このようにリセット信号812を使用して、CPU301及びLANコントローラ306のリセット制御を実施する。これにより、CPU301が不揮発メモリ303からファームウェア411を読み出すとき、またLANコントローラ306が不揮発メモリ315からファームウェア読み出すときは、そのファームウェアが常に正しいものであるようにすることができる。 If the secure microcomputer 321 determines that the firmware stored in the nonvolatile memory 303 or the nonvolatile memory 315 has been tampered with and successfully recovers the tampered firmware, the reset signal 812 is set to a high level to Release the reset of the controller 306 . Using the reset signal 812 in this manner, reset control of the CPU 301 and the LAN controller 306 is performed. As a result, when the CPU 301 reads the firmware 411 from the nonvolatile memory 303 and when the LAN controller 306 reads the firmware from the nonvolatile memory 315, the firmware can always be correct.

セキュアマイコン321は、リセット信号814を用いてプリンタCPU341のリセット制御を行う。セキュアマイコン321は、プリンタCPU341をリセット状態にするときにはリセット信号814をロウレベルに、リセット解除状態(動作状態)にするときはリセット信号814をハイレベルにする。画像形成装置10の電源投入時には、セキュアマイコン321は、リセット信号814でプリンタCPU341をリセット状態にしておく。その後に、セキュアマイコン321が不揮発メモリ342に格納されているファームウェア431の改竄検証を実施して、検証結果が問題ない場合にリセット信号814でプリンタCPU341をリセット解除状態にする。また、セキュアマイコン321が不揮発メモリ342に格納されているファームウェア431に改竄があったと判定しても、そのファームウェア431を正常にリカバリした場合は、リセット信号814でプリンタCPU341をリセット解除状態にする。このようにリセット信号814を使用してプリンタCPU341のリセット制御を実施することによって、プリンタCPU341が不揮発メモリ342からファームウェア431を読み出すときは、そのファームウェア431が、常に正しいものであるようにすることができる。 The secure microcomputer 321 performs reset control of the printer CPU 341 using the reset signal 814 . The secure microcomputer 321 sets the reset signal 814 to low level when resetting the printer CPU 341, and sets the reset signal 814 to high level when resetting the printer CPU 341 to the reset release state (operating state). When the power of the image forming apparatus 10 is turned on, the secure microcomputer 321 resets the printer CPU 341 with the reset signal 814 . After that, the secure microcomputer 321 verifies falsification of the firmware 431 stored in the nonvolatile memory 342, and if the verification result indicates no problem, the printer CPU 341 is put into a reset release state by a reset signal 814. FIG. Also, even if the secure microcomputer 321 determines that the firmware 431 stored in the nonvolatile memory 342 has been tampered with, if the firmware 431 is normally recovered, the printer CPU 341 is put into the reset release state by the reset signal 814 . By performing reset control of the printer CPU 341 using the reset signal 814 in this way, when the printer CPU 341 reads out the firmware 431 from the nonvolatile memory 342, the firmware 431 can always be correct. can.

セキュアマイコン321はアラート信号815を用いてCPU301に対して、不揮発メモリ303に格納されるファームウェア411の改竄があったかどうかを通知する。アラート信号815は、セキュアマイコン321が、不揮発メモリ303に格納されているファームウェア411のリカバリを行ってCPU301が正常に起動するようになった場合に、ファームウェア411が改竄されていたことをCPU301に通知する信号である。この通知を受けたCPU301は、正常に起動した後に、アラート信号815を確認してファームウェア411が改竄されていたことを監査ログに残す。また、アラート号815は、通常はセキュアマイコン321がロウレベルで出力しており、不揮発メモリ303に格納されているCPU301用のファームウェア411が改竄されていると判定した場合はハイレベルで出力する。 The secure microcomputer 321 uses an alert signal 815 to notify the CPU 301 whether or not the firmware 411 stored in the nonvolatile memory 303 has been tampered with. The alert signal 815 notifies the CPU 301 that the firmware 411 has been tampered with when the secure microcomputer 321 recovers the firmware 411 stored in the nonvolatile memory 303 and the CPU 301 starts normally. It is a signal to After receiving this notification, the CPU 301 confirms the alert signal 815 and records in the audit log that the firmware 411 has been tampered with. The alert signal 815 is normally output at a low level by the secure microcomputer 321, and is output at a high level when it is determined that the firmware 411 for the CPU 301 stored in the nonvolatile memory 303 has been tampered with.

セキュアマイコン321は、アラート信号816を用いてがCPU301に対して、不揮発メモリ315に格納されるLANコントローラ用のファームウェアが改竄されたかどうかを通知する。アラート信号816は、セキュアマイコン321が不揮発メモリ315に格納されているファームウェアのリカバリを行って、LANコントローラ306が正常に起動できるようになった場合に、ファームウェアが改竄されていたことをCPU301に通知する信号である。この通知を受けたCPU301は、正常に起動された後に、アラート信号816を確認して、LANコントローラ用のファームウェアの改竄が発生していたことを監査ログに残す。またセキュアマイコン321は、通常、アラート信号816をロウレベルで出力しており、不揮発メモリ315格納されているLANコントローラ用のファームウェアが改竄されていると判定した場合はハイレベルで出力する。 The secure microcomputer 321 uses an alert signal 816 to notify the CPU 301 whether or not the LAN controller firmware stored in the nonvolatile memory 315 has been tampered with. The alert signal 816 notifies the CPU 301 that the firmware has been tampered with when the secure microcomputer 321 recovers the firmware stored in the nonvolatile memory 315 and the LAN controller 306 can be started normally. It is a signal to After receiving this notification, the CPU 301 confirms the alert signal 816 after being normally started, and records in the audit log that the firmware for the LAN controller has been tampered with. The secure microcomputer 321 normally outputs the alert signal 816 at low level, and outputs it at high level when it determines that the LAN controller firmware stored in the nonvolatile memory 315 has been tampered with.

セキュアマイコン312は、アラート信号817を用いてCPU301に対して、不揮発メモリ342に格納されているプリンタ用のファームウェア431が改竄されたかどうか通知する。アラート信号817は、セキュアマイコン321が不揮発メモリ342に格納されているファームウェア431のリカバリを行ってプリンタ用CPU331が正常に起動するようになると、ファームウェア431が改竄されていたことをCPU301に通知するための信号である。この通知を受けたCPU301は、正常に起動した後に、アラート信号817を確認して、ファームウェア431が改竄されていたことを監査ログに残す。またセキュアマイコン321は通常、アラート信号817をロウレベルで出力しており、不揮発メモリ342格納されているファームウェア431が改竄されていると判定した場合はハイレベルで出力する。 The secure microcomputer 312 uses an alert signal 817 to notify the CPU 301 whether or not the printer firmware 431 stored in the nonvolatile memory 342 has been tampered with. When the secure microcomputer 321 recovers the firmware 431 stored in the nonvolatile memory 342 and the printer CPU 331 starts normally, the alert signal 817 notifies the CPU 301 that the firmware 431 has been tampered with. is a signal of After receiving this notification, the CPU 301 confirms the alert signal 817 after normal startup, and records in the audit log that the firmware 431 has been tampered with. The secure microcomputer 321 normally outputs the alert signal 817 at low level, and outputs it at high level when it determines that the firmware 431 stored in the nonvolatile memory 342 has been tampered with.

図9は、実施形態2に係るセキュアマイコン321の動作を説明するフローチャートである。尚、このフローチャートで示す処理は、セキュアマイコン321がROM322に格納されているプログラムを実行することにより達成される。 FIG. 9 is a flowchart for explaining the operation of the secure microcomputer 321 according to the second embodiment. Note that the processing shown in this flowchart is achieved by the secure microcomputer 321 executing a program stored in the ROM 322 .

この処理の開始時には画像形成装置10の電源が投入されていない状態であり、S901で電源がオンされるとS902に遷移する。S902でセキュアマイコン321は起動処理を行う。この起動処理では、セキュアマイコン321は、セキュアマイコン用ROM322からセキュアマイコン用ファームウェア401を読み出し、セキュアマイコン321内部にあるヒューズ設定されている鍵情報を用いて検証を行う。そして、この検証が問題なければセキュアマイコン用ファームウェア401による起動処理を行う。こうしてセキュアマイコン321が起動するとS903に遷移する。S903でセキュアマイコン321は、不揮発メモリ303に格納されているCPU用のファームウェア411が改竄されているかどうか検証するために不揮発メモリ303からCPU用ファームウェア411を読み出す。CPU用ファームウェア411の読み出しが完了するとS904に遷移する。 At the start of this process, the power of the image forming apparatus 10 is not turned on, and when the power is turned on in S901, the process proceeds to S902. In S902, the secure microcomputer 321 performs activation processing. In this activation process, the secure microcomputer 321 reads the secure microcomputer firmware 401 from the secure microcomputer ROM 322 and performs verification using the key information set in the fuse inside the secure microcomputer 321 . Then, if there is no problem in this verification, the secure microcomputer firmware 401 performs startup processing. When the secure microcomputer 321 is activated in this manner, the process transitions to S903. In S903, the secure microcomputer 321 reads the CPU firmware 411 from the nonvolatile memory 303 to verify whether the CPU firmware 411 stored in the nonvolatile memory 303 has been tampered with. When reading of the CPU firmware 411 is completed, the process transitions to S904.

S904でセキュアマイコン321は、CPU用ファームウェア411の改竄検証を行う。セキュアマイコン321は、S903で読み出したCPU用ファームウェア411がサイバー攻撃等により書き換えられていないか(改竄されているかどうか)の検証を行う。S904でセキュアマイコン321が、CPU用ファームウェア411が改竄されていないと判定するとS908に遷移し、CPU用ファームウェア411が改竄されていると判定するとS905に遷移する。 In S<b>904 , the secure microcomputer 321 verifies falsification of the CPU firmware 411 . The secure microcomputer 321 verifies whether the CPU firmware 411 read in S903 has been rewritten (falsified) due to a cyber attack or the like. If the secure microcomputer 321 determines in S904 that the CPU firmware 411 has not been tampered with, the process proceeds to S908, and if it determines that the CPU firmware 411 has been tampered with, the process proceeds to S905.

S905でセキュアマイコン321は、CPU301に対してアラート信号815による通知を行う。即ち、セキュアマイコン321は、アラート信号815をロウレベルからハイレベルに変更して、CPU301にCPU用ファームウェア411が改竄されたことを通知する。こうしてアラートを通知するとS906に遷移する。S906でセキュアマイコン321は、不揮発メモリ303に格納しているCPU用ファームウェア411の復旧を行う。即ち、セキュアマイコン321は、ROM322に格納されているCPU用ファームウェア402を読み出し、それを不揮発メモリ303のCPU用ファームウェア411の領域に書き込んで復旧させる。こうして不揮発メモリ303CPU用ファームウェア411の復旧が完了するとS907に遷移する。S907でセキュアマイコン321は、CPU用ファームウェア411が正常に復旧されたかどうか判定する。このときセキュアマイコン321は、セキュアマイコン用ROM322に格納されているリカバリ時に使用するCPU用ファームウェア402と、S905で不揮発メモリ303に格納したCPU用ファームウェア411とを比較する。そして、その比較結果に従って、CPU用ファームウェア411が正常に復旧できたかどうか判定する。そしてセキュアマイコン321が、CPU用ファームウェア411を正常に復旧できたと判定するとS908に遷移し、正常に復旧できていないと判定すると、この処理を終了する。 In S<b>905 , the secure microcomputer 321 notifies the CPU 301 with the alert signal 815 . That is, the secure microcomputer 321 changes the alert signal 815 from low level to high level to notify the CPU 301 that the CPU firmware 411 has been tampered with. When the alert is notified in this manner, the process transitions to S906. In S<b>906 , the secure microcomputer 321 restores the CPU firmware 411 stored in the nonvolatile memory 303 . That is, the secure microcomputer 321 reads out the CPU firmware 402 stored in the ROM 322 and writes it into the area of the CPU firmware 411 in the non-volatile memory 303 for restoration. When the recovery of the firmware 411 for the non-volatile memory 303 CPU is completed in this manner, the process transitions to S907. In S907, the secure microcomputer 321 determines whether the CPU firmware 411 has been successfully restored. At this time, the secure microcomputer 321 compares the CPU firmware 402 used for recovery stored in the secure microcomputer ROM 322 with the CPU firmware 411 stored in the nonvolatile memory 303 in S905. Then, according to the comparison result, it is determined whether or not the CPU firmware 411 has been successfully restored. When the secure microcomputer 321 determines that the CPU firmware 411 has been successfully restored, the process proceeds to S908.

S908でセキュアマイコン321は、LANコントローラ用不揮発メモリ315に格納されているファームウェアが改竄されているかどうか検証するために、不揮発メモリ315からLANコントローラ用のファームウェアを読み出す。LANコントローラ用ファームウェアの読み出しが完了するとS909に遷移する。S909でセキュアマイコン321は、その読み出したLANコントローラ用ファームウェアがサイバー攻撃等により書き換えられてしまっていないか(改竄されているかどうか)検証する。ここでセキュアマイコン321が、LANコントローラ用ファームウェアが改竄されていないと判定するとS913に遷移し、改竄されていると判定するとS910に遷移する。S910でセキュアマイコン321は、アラート信号816をロウレベルからハイレベルに変更して、CPU301にLANコントローラ用ファームウェアが改竄されたことをアラートとして通知する。このアラートを通知するとS911に遷移する。S911でセキュアマイコン321は、セキュアマイコン用ROM322に格納されているリカバリ時に使用するLANコントローラ用ファームウェア(不図示)を読み出す。そして、その読み出したファームウェアを不揮発メモリ315のLANコントローラ用ファームウェア(不図示)の領域に書き込んで復旧させると912に遷移する。S912でセキュアマイコン321は、不揮発メモリ315のLANコントローラ用ファームウェアが正常に復旧されたかどうか判定する。ここでセキュアマイコン321は、ROM322に格納されているリカバリ時に使用するLANコントローラ用ファームウェアと、S911でLANコントローラ用不揮発メモリ315に格納したLANコントローラ用ファームウェアとを比較する。そして、その比較結果に従って、LANコントローラ用ファームウェアが正常に復旧できたかどうか判定している。ここでLANコントローラ用ファームウェアを正常に復旧できたと判定するとS913に遷移し、正常に復旧できていないと判定するとこの処理を終了する。S913でセキュアマイコン321は、アラート信号812をロウレベルからハイレベルに変更して、CPU301及びLANコントローラ306のリセットを解除してS914に進む。この点が、上述の実施形態1と相違する点である。 In S908, the secure microcomputer 321 reads the LAN controller firmware from the non-volatile memory 315 in order to verify whether the firmware stored in the LAN controller non-volatile memory 315 has been tampered with. When the reading of the LAN controller firmware is completed, the process transitions to S909. In S909, the secure microcomputer 321 verifies whether the read LAN controller firmware has been rewritten (falsified) due to a cyber attack or the like. Here, if the secure microcomputer 321 determines that the LAN controller firmware has not been tampered with, the process transitions to S913, and if it determines that the LAN controller firmware has been tampered with, the process transitions to S910. In S910, the secure microcomputer 321 changes the alert signal 816 from low level to high level, and notifies the CPU 301 as an alert that the LAN controller firmware has been tampered with. When this alert is notified, the process transitions to S911. In S<b>911 , the secure microcomputer 321 reads the LAN controller firmware (not shown) to be used for recovery stored in the secure microcomputer ROM 322 . Then, the read firmware is written in the area of the LAN controller firmware (not shown) of the nonvolatile memory 315 to restore the state, and the process transitions to 912 . In S912, the secure microcomputer 321 determines whether the LAN controller firmware in the nonvolatile memory 315 has been successfully restored. Here, the secure microcomputer 321 compares the LAN controller firmware stored in the ROM 322 and used for recovery with the LAN controller firmware stored in the LAN controller non-volatile memory 315 in S911. Then, according to the comparison result, it is determined whether or not the LAN controller firmware has been successfully restored. If it is determined that the LAN controller firmware has been successfully restored, the process proceeds to S913, and if it is determined that the LAN controller firmware has not been successfully restored, this process ends. In S913, the secure microcomputer 321 changes the alert signal 812 from low level to high level, cancels the reset of the CPU 301 and LAN controller 306, and proceeds to S914. This point is different from the first embodiment described above.

以下、S914~S919の処理は、前述の図6のS615~S620の処理と同じであるため、その説明を省略する。 Since the processing of S914 to S919 is the same as the processing of S615 to S620 in FIG. 6, the description thereof will be omitted.

図10は、実施形態2に係る画像形成装置10のCPU301の動作を説明するフローチャートである。尚、このフローチャートで示す処理は、CPU301が不揮発メモリ303に格納されているプログラムを実行することにより達成される。 FIG. 10 is a flowchart for explaining the operation of the CPU 301 of the image forming apparatus 10 according to the second embodiment. Note that the processing shown in this flowchart is achieved by the CPU 301 executing a program stored in the nonvolatile memory 303 .

この処理の開始時には画像形成装置10の電源が投入されていない状態であり、S1001で電源がオンされるとS1002に遷移する。S1002ではCPU301がリセットされている状態で、リセットが解除されるとS1003に遷移する。これはセキュアマイコン321がCPU301のリセット解除を行っている図9のS908によってCPU301のリセットが解除されることによる。S1003でCPU301は、不揮発メモリ303からCPU用ファームウェア411を読み出して起動する。このとき、セキュアマイコン321によって改竄検証済みのCPU用ファームウェア411が不揮発メモリ303に格納されているため、CPU301は、改竄されていないCPU用ファームウェア411で起動できる。 At the start of this process, the power of the image forming apparatus 10 is not turned on, and when the power is turned on in S1001, the process proceeds to S1002. In S1002, the CPU 301 is reset, and when the reset is released, the process proceeds to S1003. This is because the reset of the CPU 301 is canceled by S908 in FIG. In S1003, the CPU 301 reads out the CPU firmware 411 from the nonvolatile memory 303 and starts up. At this time, since the secure microcomputer 321 has stored the CPU firmware 411 whose tampering has been verified in the non-volatile memory 303, the CPU 301 can be booted with the CPU firmware 411 that has not been tampered with.

次にS1004に進みCPU301は、セキュアマイコン321から出力されるアラート信号815によりアラートが通知されたかどうか判定する。これは、CPU301のリセットが解除されて動作を開始する前に、セキュアマイコン321によって不揮発メモリ303に格納されているCPU用ファームウェア411の復旧処理(S906)がなされたかどうかを判定する処理である。ここでアラートを通知されたと判定された場合はS1005に遷移し、アラートが通知されていないと判定された場合はS1006に遷移する。S1005でCPU301は、CPU用ファームウェア411の復旧が発生していたことを監査ログとして記録してS1006に進む。このように監査ログに残しておくことで、CPU用ファームウェア411が改竄されたことを通知、或いはトレース可能になる。 Next, proceeding to S<b>1004 , the CPU 301 determines whether an alert has been notified by the alert signal 815 output from the secure microcomputer 321 . This is the process of determining whether or not the secure microcomputer 321 has restored the CPU firmware 411 stored in the nonvolatile memory 303 (S906) before the reset of the CPU 301 is released and the CPU 301 starts operating. If it is determined that an alert has been notified, the process proceeds to S1005, and if it is determined that an alert has not been notified, the process proceeds to S1006. In S<b>1005 , the CPU 301 records in an audit log that the CPU firmware 411 has been restored, and proceeds to S<b>1006 . By leaving the information in the audit log in this way, it becomes possible to notify or trace that the CPU firmware 411 has been falsified.

S1006でCPU301は、セキュアマイコン321からアラート信号816によりアラートが通知されたかどうか判定する。これは、CPU301のリセットが解除されて動作を開始する前に、セキュアマイコン321によってLANコントローラ用不揮発メモリ315に格納されているLANコントローラ用ファームウェアの復旧処理(S911)が発生したかどうかを知るためである。ここでアラートが通知されたと判定した場合はS1007に遷移し、アラートが通知されていないと判定した場合はS1008に遷移する。S1007でCPU301は、LANコントローラ用ファームウェアの復旧が発生していたことを監査ログとして記録してS1008に進む。このように監査ログに残しておくことで、LANコントローラ用ファームウェアが改竄されたことを通知、或いはトレース可能になる。 In S<b>1006 , the CPU 301 determines whether an alert has been notified by the alert signal 816 from the secure microcomputer 321 . This is to know whether or not the LAN controller firmware stored in the LAN controller non-volatile memory 315 has been restored by the secure microcomputer 321 (S911) before the reset of the CPU 301 is released and the operation is started. is. If it is determined that the alert has been notified, the process proceeds to S1007, and if it is determined that the alert has not been notified, the process proceeds to S1008. In S1007, the CPU 301 records in an audit log that the LAN controller firmware has been restored, and proceeds to S1008. By leaving the information in the audit log in this way, it becomes possible to notify or trace that the LAN controller firmware has been falsified.

S1008でCPU301は、セキュアマイコン321からアラート信号814によりアラートが通知されたたかどうか判定する。これはプリンタCPU341のリセットが解除されて動作を開始する前に、セキュアマイコン321によって不揮発メモリ342に格納されているプリンタCPU用ファームウェア431の復旧処理(S917)が発生したかどうかをCPU301が知るためである。アラートが通知されたと判定した場合はS1010に遷移し、アラートが通知されていないと判定した場合はS1009に遷移する。S1009でCPU301は、プリンタCPU341との通信が可能かどうか判定する。これはプリンタCPU341へのリセットが解除されて正常に動作開始しているかどうかを確認するためである。ここでCPU301がプリンタCPU341と正常に通信できていれば、プリンタCPU用ファームウェア431の改竄はなく、セキュアマイコン321が復旧処理(S917)を実施する必要がなかったことをCPU301が知ることができる。S1009でCPU301が、プリンタCPU341と通信ができていないと判定するとS1008に遷移し、通信できていると判定すると、この処理を終了する。 In S<b>1008 , the CPU 301 determines whether an alert has been notified by the alert signal 814 from the secure microcomputer 321 . This is because the CPU 301 knows whether or not the printer CPU firmware 431 stored in the non-volatile memory 342 has been restored by the secure microcomputer 321 (S917) before the reset of the printer CPU 341 is released and the operation is started. is. If it is determined that the alert has been notified, the process proceeds to S1010, and if it is determined that the alert has not been notified, the process proceeds to S1009. In S1009, the CPU 301 determines whether communication with the printer CPU 341 is possible. This is to confirm whether the reset to the printer CPU 341 has been released and the operation has started normally. Here, if the CPU 301 can communicate normally with the printer CPU 341, the CPU 301 can know that the printer CPU firmware 431 has not been tampered with and the secure microcomputer 321 did not need to perform recovery processing (S917). If the CPU 301 determines in S1009 that communication with the printer CPU 341 is not possible, the process proceeds to S1008, and if it is determined that communication is possible, this process ends.

S1010でCPU301は、プリンタCPU用ファームウェア431の復旧が発生していたことを監査ログとして記録してS1011に進む。このように監査ログとして記録することで、プリンタCPU用ファームウェア431が改竄されたことを通知、或いはトレース可能になる。S1011でCPU301は、プリンタCPU用ファームウェア431の復旧に要する時間経過を計時している。セキュアマイコン321がアラート信号817でアラートを通知した後、プリンタCPU用ファームウェア431を復旧するため、セキュアマイコン321が復旧に要する時間が経過した後にCPU301との通信確認を実施する必要がある。S1011でPU301が、復旧に要する時間が経過したと判定した場合はS1012に遷移し、そうでない場合にS1011に留まる。S1012でCPU301は、プリンタCPU341と通信が可能かどうか判定する。この処理は、プリンタCPU341のリセットが解除されて、プリンタCPU341が正常に動作しているかどうか確認する。ここでCPU301がプリンタCPU341と正常に通信できていると、プリンタCPU用ファームウェアウェア431が改竄された後に、セキュアマイコン321が復旧処理(S917)を実施して、正常に復旧できたことになる。ここでCPU301が、プリンタCPU341と通信ができていないと判定するとS1013に遷移し、通信できていると判定すると、この処理を終了する。S1013でCPU301は、プリンタCPU341との通信エラーが発生したことを通知して、この処理を終了する。 In S1010, the CPU 301 records, as an audit log, that the printer CPU firmware 431 has been restored, and proceeds to S1011. By recording as an audit log in this way, it becomes possible to notify or trace that the printer CPU firmware 431 has been falsified. In step S<b>1011 , the CPU 301 counts the elapsed time required for restoring the printer CPU firmware 431 . After the secure microcomputer 321 notifies the alert with the alert signal 817, the printer CPU firmware 431 is restored, so the secure microcomputer 321 needs to confirm communication with the CPU 301 after the time required for restoration has elapsed. If the PU 301 determines in S1011 that the time required for restoration has elapsed, the process proceeds to S1012, otherwise the process remains in S1011. In S1012, the CPU 301 determines whether communication with the printer CPU 341 is possible. This process confirms whether the reset of the printer CPU 341 has been released and the printer CPU 341 is operating normally. If the CPU 301 can communicate normally with the printer CPU 341, the secure microcomputer 321 performs the recovery process (S917) after the printer CPU firmware 431 has been tampered with, and has successfully recovered. Here, if the CPU 301 determines that communication with the printer CPU 341 is not possible, the process transitions to S1013, and if it is determined that communication is possible, this process ends. In S1013, the CPU 301 notifies that a communication error has occurred with the printer CPU 341, and terminates this process.

以上説明した様に実施形態2によれば、上述の実施形態1の効果に加えて、セキュアマイコンによるファームウェアの検証が完了したCPUとLANコントローラのリセットを同時に解除することにより、画像形成装置の起動時間をより短くできる。このように各々のCPUにおいて同時に起動させる必要があるものに関しては、同時にリセットを解除することにより、起動処理の不整合を発生させずに起動時間を、より短くできるという効果がある。 As described above, according to the second embodiment, in addition to the effects of the first embodiment described above, by simultaneously canceling the reset of the CPU and the LAN controller whose firmware has been verified by the secure microcomputer, the image forming apparatus can be started up. You can save time. As for the CPUs that need to be activated at the same time, the simultaneous release of the reset has the effect of shortening the activation time without causing inconsistency in the activation process.

尚、実施形態2に関して、複数のプロセッサやマイコンが起動処理の中で相互に関連する必要がある場合には、リセット解除を同じタイミングで実施する場合、起動処理に関連するそれぞれのファームウェアの検証がすべて完了するまではリセットを解除しない。そして、各プロセッサのうち、トータルの起動時間が長いCPUのファームウェアから順次検証して、順次、リセットを解除するようにしても良い。 Regarding the second embodiment, when a plurality of processors and microcomputers need to be associated with each other in the boot process, and when the reset release is performed at the same timing, verification of each firmware related to the boot process is required. Do not release the reset until all are complete. Then, among the processors, the firmware of the CPU with the longest total startup time may be sequentially verified, and the reset may be released sequentially.

また、ユーザに通知可能なCPUのファームウェアから検証を行い、そのCPUのファームウェアの検証と復旧で問題があった場合は、他のCPUのファームウェアの検証を実施しないようにしても良い。 Also, verification may be performed from the firmware of a CPU that can be notified to the user, and if there is a problem in verification and recovery of the firmware of that CPU, verification of firmware of other CPUs may not be performed.

図11は、実施形態に係る画像形成装置10の起動時間を削減するという効果を説明する図である。 FIG. 11 is a diagram for explaining the effect of reducing the startup time of the image forming apparatus 10 according to the embodiment.

まずは図11(A)に記載している従来の起動処理から説明する。 First, the conventional activation process shown in FIG. 11A will be described.

セキュアマイコンの動作1101は、電源投入からセキュアマイコンが各CPU用のファームウェアの検証を行うフローを記載している。ここでは電源が投入されるとセキュアマイコンは、CPU用ファームウェアの検証、スキャナ用ファームウェアの検証、プリンタ用ファームウェアの検証を順次実行する。こうして全てのCPUのファームウェアの検証が完了すると、これらCPUのリセットを解除する。 An operation 1101 of the secure microcomputer describes a flow in which the secure microcomputer verifies firmware for each CPU from power-on. Here, when the power is turned on, the secure microcomputer sequentially verifies CPU firmware, scanner firmware, and printer firmware. When the verification of the firmware of all CPUs is completed in this way, the reset of these CPUs is released.

リセット信号1102は、セキュアマイコンが全てのCPUのファームウェアの検証を完了すると、これらCPUのリセットを解除する信号を示す。リセット信号レベルがロウレベルからハイレベルになると、各CPUが起動処理を開始する。 A reset signal 1102 indicates a signal for canceling the reset of these CPUs when the secure microcomputer has completed verifying the firmware of all CPUs. When the reset signal level changes from low level to high level, each CPU starts activation processing.

次に図11(B)を参照して、実施形態に係る画像形成装置の起動処理について説明する。 Next, startup processing of the image forming apparatus according to the embodiment will be described with reference to FIG.

セキュアマイコン動作1111は、電源投入からセキュアマイコン321が各CPU用のファームウェアの検証を行うフローを記載している。電源が投入されるとセキュアマイコン321はまずCPU用ファームウェア411を検証する。CPUファームウェア411の検証が完了して異常がなければ、セキュアマイコン321がCPUリセット信号512をロウレベルからハイレベルにしてCPU301のリセットを解除する。これによりCPU301が起動処理を開始する。このCPU301の起動状態を示しているのがCPU状態1113である。 A secure microcomputer operation 1111 describes a flow in which the secure microcomputer 321 verifies firmware for each CPU from power-on. When the power is turned on, the secure microcomputer 321 first verifies the CPU firmware 411 . If the verification of the CPU firmware 411 is completed and there is no abnormality, the secure microcomputer 321 changes the CPU reset signal 512 from low level to high level to release the reset of the CPU 301 . As a result, the CPU 301 starts activation processing. A CPU status 1113 indicates the activation status of the CPU 301 .

続いてセキュアマイコン321は、スキャナCPU用ファームウェア421を検証する。スキャナCPUファームウェア421の検証が完了して異常が無ければ、セキュアマイコン321は、スキャナCPU331のリセット信号513をロウレベルからハイレベルにしてスキャナCPU331のリセットを解除する。これによりスキャナCPU331は起動処理を開始する。そのスキャナCPU331の状態を示しているのがスキャナCPU状態1114である。 The secure microcomputer 321 then verifies the scanner CPU firmware 421 . If the verification of the scanner CPU firmware 421 is completed and there is no abnormality, the secure microcomputer 321 changes the reset signal 513 of the scanner CPU 331 from low level to high level to release the reset of the scanner CPU 331 . As a result, the scanner CPU 331 starts activation processing. A scanner CPU state 1114 indicates the state of the scanner CPU 331 .

このようにすることで、CPU301が起動処理を実施しているのと並行してスキャナCPU用ファームウェア421の検証をセキュアマイコン321が実施することが可能となり、画像形成装置の起動時間を削減することが可能となる。 By doing so, the secure microcomputer 321 can verify the scanner CPU firmware 421 in parallel with the CPU 301 executing the startup process, thereby reducing the startup time of the image forming apparatus. becomes possible.

更にセキュアマイコン321は、プリンタCPU用ファームウェア431の検証を行う。プリンタCPUファームウェア431の検証が完了して異常がなければセキュアマイコン321は、プリンタCPU341のリセット信号514をロウレベルからハイレベルにする。こうしてプリンタCPU341のリセットを解除し、プリンタCPU341が起動処理を開始する。そのプリンタCPU341の状態を示しているのがプリンタCPU状態1115である。 Furthermore, the secure microcomputer 321 verifies the printer CPU firmware 431 . If the verification of the printer CPU firmware 431 is completed and there is no abnormality, the secure microcomputer 321 changes the reset signal 514 of the printer CPU 341 from low level to high level. Thus, the reset of the printer CPU 341 is released, and the printer CPU 341 starts activation processing. A printer CPU state 1115 indicates the state of the printer CPU 341 .

このようにすることで、CPU301の起動処理とスキャナCPU321の起動処理とに並行して、セキュアマイコン321がプリンタCPU用ファームウェア421の検証を実施できるため、画像形成装置の起動時間を削減することが可能となる。 By doing so, the secure microcomputer 321 can verify the printer CPU firmware 421 in parallel with the startup processing of the CPU 301 and the startup processing of the scanner CPU 321, so that the startup time of the image forming apparatus can be reduced. It becomes possible.

(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other embodiments)
The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in the computer of the system or apparatus reads and executes the program. It can also be realized by processing to It can also be implemented by a circuit (for example, ASIC) that implements one or more functions.

本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から逸脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。 The invention is not limited to the embodiments described above, and various modifications and variations are possible without departing from the spirit and scope of the invention. Accordingly, to publicize the scope of the invention, the following claims are included.

301…CPU、303…CPU用ROM、321…セキュアマイコン、322…セキュアマイコン用ROM、331…スキャナCPU、332…スキャナCPU用ROM、341…プリンタCPU、342…プリンタCPU用ROM 301 CPU 303 CPU ROM 321 secure microcomputer 322 secure microcomputer ROM 331 scanner CPU 332 scanner CPU ROM 341 printer CPU 342 printer CPU ROM

Claims (11)

複数のCPUと、前記複数のCPUのそれぞれのファームウェアを記憶する複数の記憶手段とを有する情報処理装置であって、
前記複数のCPUのファームウェアを記憶する第1記憶手段と、
前記複数のCPUの内の前記第1記憶手段にアクセスできる第1CPUであって、
前記第1CPUは、起動時、前記第1CPUを除く他のCPUのファームウェアを記憶する第2記憶手段に記憶されたファームウェアの改竄の有無を検証し、
前記検証により改竄が無いと判定されたファームウェアを実行するCPUのリセットを解除し、
前記検証により改竄が有ると判定されたファームウェアを前記第1記憶手段に記憶されている対応するファームウェアで書き換えた後、当該書き換えたファームウェアを実行するCPUのリセットを解除することを特徴とする情報処理装置。
An information processing apparatus having a plurality of CPUs and a plurality of storage means for storing firmware of each of the plurality of CPUs,
a first storage means for storing firmware of the plurality of CPUs;
A first CPU that can access the first storage means among the plurality of CPUs,
When the first CPU is started, the first CPU verifies whether or not the firmware stored in the second storage means for storing the firmware of the CPUs other than the first CPU has been tampered with;
releasing the reset of the CPU that executes the firmware determined to be free of tampering by the verification;
After rewriting the firmware determined to be falsified by the verification with the corresponding firmware stored in the first storage means, resetting of a CPU executing the rewritten firmware is released. Device.
前記第1記憶手段は、書き換えできないROM(リードオンリーメモリ)であり、前記第2記憶手段は、前記他のCPUのそれぞれに対応して設けられた不揮発メモリを含むことを特徴とする請求項1に記載の情報処理装置。 2. The first storage means is a non-rewritable ROM (read only memory), and the second storage means includes a non-volatile memory provided corresponding to each of the other CPUs. The information processing device according to . 前記第1CPUを除く他のCPUは、当該CPUのリセットが解除されると、リセットが解除された当該CPUに対応して設けられた不揮発メモリからファームウェアを読み出して起動することを特徴とする請求項2に記載の情報処理装置。 3. The CPUs other than the first CPU, when the reset of the CPU is released, read firmware from a non-volatile memory provided corresponding to the CPU whose reset has been released, and start up. 3. The information processing device according to 2. 前記第1CPUは、複数のCPUのリセットを同時に解除できることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。 4. The information processing apparatus according to any one of claims 1 to 3, wherein the first CPU can release resetting of a plurality of CPUs simultaneously. 前記他のCPUの第2CPUは、前記検証により改竄が有ると判定されたファームウェアをログとして記録することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。 5. The information processing apparatus according to any one of claims 1 to 4, wherein the second CPU, which is one of the other CPUs, records, as a log, firmware determined to have been falsified by the verification. 前記第1CPUは、前記検証により改竄が有ると判定されたファームウェアを前記第2CPUに通知することを特徴とする請求項5に記載の情報処理装置。 6. The information processing apparatus according to claim 5, wherein the first CPU notifies the second CPU of the firmware determined to be falsified by the verification. 前記第1CPUは、更に、前記第1CPUの内部にヒューズ設定されている鍵情報を用いて前記第1CPUのファームウェアを検証した後、前記第2記憶手段に記憶されたファームウェアの改竄の有無を検証することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。 The first CPU further verifies whether or not the firmware stored in the second storage means has been falsified after verifying the firmware of the first CPU using the key information set in the fuse inside the first CPU. 7. The information processing apparatus according to any one of claims 1 to 6, characterized by: 前記起動時、前記第1CPUを除く他のCPUはリセット状態であることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。 8. The information processing apparatus according to any one of claims 1 to 7, wherein the CPUs other than the first CPU are in a reset state at the start-up. 前記第1CPUは、前記他のCPUからアクセスできないことを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。 9. The information processing apparatus according to claim 1, wherein said first CPU cannot be accessed from said other CPU. 前記第1CPUを除く他のCPUが複数ある場合、前記第1CPUは、複数の他のCPUのそれぞれに対応するファームウェアの検証を順次実行し、前記検証の結果に応じて当該複数の他のCPUのそれぞれのリセットを順次、解除することを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。 When there are a plurality of CPUs other than the first CPU, the first CPU sequentially verifies firmware corresponding to each of the plurality of other CPUs, and verifies the firmware of the plurality of other CPUs according to the verification result. 10. The information processing apparatus according to any one of claims 1 to 9, wherein each reset is released sequentially. 複数のCPUと、前記複数のCPUのそれぞれのファームウェアを記憶する複数の記憶手段とを有する情報処理装置を制御する制御方法であって、
複数のCPUの内の第1CPUにより、起動時、前記第1CPUを除く他のCPUのファームウェアを記憶する第2記憶手段に記憶されたファームウェアの改竄の有無を検証する検証工程と、
前記検証工程で改竄が無いと判定されたファームウェアを実行するCPUのリセットを解除する工程と、
前記検証工程で改竄が有ると判定されたファームウェアを、前記複数のCPUのファームウェアを記憶する第1記憶手段に記憶されている対応するファームウェアで書き換えた後、当該書き換えたファームウェアを実行するCPUのリセットを解除する工程と、
を有することを特徴とする制御方法。
A control method for controlling an information processing apparatus having a plurality of CPUs and a plurality of storage means for storing firmware for each of the plurality of CPUs,
a verification step of verifying, by a first CPU among the plurality of CPUs, whether or not the firmware stored in a second storage means for storing firmware of other CPUs other than the first CPU has been falsified at startup;
a step of canceling the reset of a CPU executing firmware determined to be free of tampering in the verification step;
After rewriting the firmware determined to be falsified in the verification step with the corresponding firmware stored in the first storage means for storing the firmware of the plurality of CPUs, resetting the CPU that executes the rewritten firmware. and
A control method characterized by having
JP2021090586A 2021-05-28 2021-05-28 Information processing device and control method thereof Pending JP2022182838A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021090586A JP2022182838A (en) 2021-05-28 2021-05-28 Information processing device and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021090586A JP2022182838A (en) 2021-05-28 2021-05-28 Information processing device and control method thereof

Publications (1)

Publication Number Publication Date
JP2022182838A true JP2022182838A (en) 2022-12-08

Family

ID=84328450

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021090586A Pending JP2022182838A (en) 2021-05-28 2021-05-28 Information processing device and control method thereof

Country Status (1)

Country Link
JP (1) JP2022182838A (en)

Similar Documents

Publication Publication Date Title
US8310698B2 (en) Image forming apparatus and activating method thereof
US11392701B2 (en) Information processing apparatus and method for controlling the same
JP7170482B2 (en) Information processing device, its control method, and program
JP2008171306A (en) Electronic device and program
US20220021788A1 (en) Information processing apparatus, information processing method, and storage medium
JP2020057040A (en) Information processing device, control method therefor, and program
JP2017199246A (en) Electronic apparatus
JP2022182838A (en) Information processing device and control method thereof
JP5441984B2 (en) Electronic device system, electronic device and storage medium
JP2021089607A (en) Information processing apparatus
JP2005305662A (en) Image forming apparatus
JP2022066083A (en) Information processing apparatus
US11816233B2 (en) Information processing apparatus
JP5251543B2 (en) Image processing apparatus, performance improvement preventing method and program for image processing apparatus
JP2020187649A (en) Information processing system, control method, and program
JP2020154601A (en) Information processing device and its control method, and program
JP2018197991A (en) Alteration detecting device, control method thereof, and program
JP7206769B2 (en) Electronic device and method of operation
JP2021131710A (en) Information processing device, and control method and program therefor
JP4803601B2 (en) Image processing apparatus and image forming apparatus
JP2023167086A (en) Information processing apparatus and control method of information processing apparatus
JP4123086B2 (en) Image processing device
JP2020067904A (en) Information processing apparatus and method of controlling the same, and program
JP4259265B2 (en) Image processing device
JP2023124500A (en) Information processing apparatus, method for controlling information processing apparatus, and program