JP2020187649A - Information processing system, control method, and program - Google Patents

Information processing system, control method, and program Download PDF

Info

Publication number
JP2020187649A
JP2020187649A JP2019093134A JP2019093134A JP2020187649A JP 2020187649 A JP2020187649 A JP 2020187649A JP 2019093134 A JP2019093134 A JP 2019093134A JP 2019093134 A JP2019093134 A JP 2019093134A JP 2020187649 A JP2020187649 A JP 2020187649A
Authority
JP
Japan
Prior art keywords
memory
programs
information processing
program
sub cpu
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
JP2019093134A
Other languages
Japanese (ja)
Inventor
恵司 稲葉
Keiji Inaba
恵司 稲葉
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 JP2019093134A priority Critical patent/JP2020187649A/en
Publication of JP2020187649A publication Critical patent/JP2020187649A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Abstract

To reduce the cost of an information processing system that detects tampering on multiple boot codes.SOLUTION: An information processing system (MFP1) includes: controllers 115, 126; processors 101, 124; first memories 112, 127 that store multiple programs to be executed by the processors 101, 124; and a second memory 112 that stores data for recovery of multiple programs. The controllers 115, 126 read the multiple programs from the first memories 112, 127, verify the validity of the multiple read-out programs. When the legitimacy of any one of the multiple programs cannot be confirmed, the program the legitimacy of which cannot confirmed, which is stored in the first memory, is recovered based on the data stored in the second memory 112.SELECTED DRAWING: Figure 1

Description

本発明は、プロセッサが実行するプログラムの正当性を検証する情報処理装置、制御方法、およびプログラムに関する。 The present invention relates to an information processing device, a control method, and a program for verifying the validity of a program executed by a processor.

従来の画像処理装置(MFP)におけるブートコードの改竄検知方法において、メインCPUが実行するブートコードをメインCPUが起動する前にコントローラが読み出し、コントローラは読み出したブートコードが改竄されていないかを検証する。また、コントローラは読み出したブートコードの改竄を検知した場合、リカバリ用のブートコードをコピーして復旧する、あるいは、メインCPUの動作を停止する方法がある。 In the conventional boot code tampering detection method in an image processing device (MFP), the controller reads the boot code executed by the main CPU before the main CPU starts, and the controller verifies whether the read boot code has been tampered with. To do. Further, when the controller detects that the read boot code has been tampered with, there is a method of copying the boot code for recovery to recover or stopping the operation of the main CPU.

例えば、特許文献1には、第一のブートイメージを検証し、改竄を検知した場合、第二のブートイメージを使用し、使用不可能な場合、第三のブートイメージを実行する制御例が示されている。 For example, Patent Document 1 shows a control example in which the first boot image is verified, the second boot image is used when tampering is detected, and the third boot image is executed when it cannot be used. Has been done.

特開2016−164785号公報Japanese Unexamined Patent Publication No. 2016-164785

画像処理装置などの情報処理装置は、メインCPUの他に、別の機能手段を備える場合があり、前記機能手段は、メインCPUとは別のCPUで動作する場合がある。このような場合、それぞれのブートコードの改竄検知処理を行う必要がある。すなわち、メインCPUまたは別のCPUのブートコードが改竄または故障している場合、別のFLASH ROMから起動する、またはリカバリ用のFLASH ROMからデータをコピーする。このため、メインCPUおよび別のCPUのそれぞれにデフォルトのFLASH ROMと、リカバリ用のFLASH ROMとが必要となるため、FLASH ROMが各所に2重に必要となりコストがかさむ課題があった。 An information processing device such as an image processing device may include another functional means in addition to the main CPU, and the functional means may operate on a CPU different from the main CPU. In such a case, it is necessary to perform tampering detection processing of each boot code. That is, if the boot code of the main CPU or another CPU is tampered with or has failed, it boots from another FLASH ROM or copies data from the FLASH ROM for recovery. For this reason, a default FLASH ROM and a FLASH ROM for recovery are required for each of the main CPU and another CPU, so that there is a problem that the FLASH ROM is required twice in various places, which increases the cost.

本発明は、上述の問題に鑑みて成されたものであり、複数のブートコードの改竄検知を行う情報処理装置のコストを低減することを目的とする。 The present invention has been made in view of the above problems, and an object of the present invention is to reduce the cost of an information processing device that detects falsification of a plurality of boot codes.

本発明は、例えば情報処理装置であって、少なくとも1つのコントローラと、複数のプロセッサと、前記複数のプロセッサが実行する複数のプログラムを格納する少なくとも1つの第1のメモリと、前記複数のプログラムのリカバリを行うためのデータを格納する1つの第2のメモリと、を備え、前記少なくとも1つのコントローラは、前記少なくとも1つの第1のメモリから前記複数のプログラムを読み出す読出手段と、前記読出手段で読み出した前記複数のプログラムの正当性を検証する検証手段と、前記検証手段が前記複数のプログラムの少なくともいずれかの正当性が確認できなかった場合に、前記第2のメモリに格納された前記データに基づいて、前記少なくとも1つの第1のメモリに格納された、正当性が確認できなかったプログラムをリカバリするリカバリ手段と、を備えることを特徴とする。 The present invention is, for example, an information processing apparatus, wherein at least one controller, a plurality of processors, at least one first memory for storing a plurality of programs executed by the plurality of processors, and the plurality of programs. A second memory for storing data for performing recovery is provided, and the at least one controller has a read means for reading the plurality of programs from the at least one first memory, and the read means. The verification means for verifying the validity of the plurality of programs read out, and the data stored in the second memory when the verification means cannot confirm the validity of at least one of the plurality of programs. Based on the above, the program is characterized by comprising a recovery means for recovering a program whose validity has not been confirmed, which is stored in at least one first memory.

本発明によれば、複数のブートコードの改竄検知を行う情報処理装置のコストを低減することができる。 According to the present invention, it is possible to reduce the cost of an information processing device that detects falsification of a plurality of boot codes.

一実施形態に係るMFPの構成を示す図。The figure which shows the structure of the MFP which concerns on one Embodiment. 一実施形態に係るメインCPUの構成を示す図。The figure which shows the structure of the main CPU which concerns on one Embodiment. 一実施形態に係るサブCPUの構成を示す図。The figure which shows the structure of the sub CPU which concerns on one Embodiment. 一実施形態に係るHDDおよびHDD制御部の構成を示す図。The figure which shows the structure of the HDD and the HDD control part which concerns on one Embodiment. 第1の実施形態に係るFLASH ROMのメモリマップを示す図。The figure which shows the memory map of FLASH ROM which concerns on 1st Embodiment. 第1の実施形態に係るサブCPUの処理を示すフローチャート。The flowchart which shows the processing of the sub CPU which concerns on 1st Embodiment. 第2の実施形態に係るMFPの構成を示す図。The figure which shows the structure of the MFP which concerns on 2nd Embodiment. 第2の実施形態に係るFLASH ROMのメモリマップを示す図。The figure which shows the memory map of FLASH ROM which concerns on 2nd Embodiment. 第2の実施形態に係るサブCPUの処理を示すフローチャート。The flowchart which shows the processing of the sub CPU which concerns on 2nd Embodiment. 第3の実施形態に係るMFPの構成を示す図。The figure which shows the structure of the MFP which concerns on 3rd Embodiment. 第3の実施形態に係るサブCPUの処理を示すフローチャート。The flowchart which shows the processing of the sub CPU which concerns on 3rd Embodiment. 第1の実施形態に係るサブCPU2の処理を示すフローチャート。The flowchart which shows the processing of the sub CPU 2 which concerns on 1st Embodiment. 第1の実施形態に係るFLASH ROM2のメモリマップを示す図。The figure which shows the memory map of FLASH ROM 2 which concerns on 1st Embodiment.

以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものではなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。 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 present invention according to the claims, and not all combinations of features described in the present embodiment are essential for the means for solving the present invention. ..

<第1の実施形態>
以下、本実施形態に係るブートコードの改竄検知処理を実行する情報処理装置(MFP)について説明する。なお、特に断らない限り、本実施形態に係る機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。
<First Embodiment>
Hereinafter, an information processing device (MFP) that executes falsification detection processing of the boot code according to the present embodiment will be described. It goes without saying that the present invention can be applied to a single device or a system composed of a plurality of devices as long as the functions according to the present embodiment are executed unless otherwise specified.

図1は、本実施形態に係るMFP1の構成を表す図である。図1において、MFP1はメインCPU(Central Processing Unit)101、DRAM(Dynamic Random Access Memory)102、およびネットワークI/F(インタフェース)104を備える。また、MFP1は操作部103、プリンタ部105、スキャナ部106、FAX107、画像処理部111、および電源処理部118を備える。 FIG. 1 is a diagram showing a configuration of the MFP 1 according to the present embodiment. In FIG. 1, the MFP 1 includes a main CPU (Central Processing Unit) 101, a DRAM (Dynamic Random Access Memory) 102, and a network I / F (interface) 104. Further, the MFP 1 includes an operation unit 103, a printer unit 105, a scanner unit 106, a FAX 107, an image processing unit 111, and a power supply processing unit 118.

メインCPU101は、MFP1全体の制御を司るプロセッサである。DRAM102は、メインCPU101で実行されるプログラムを格納すると共に一時的なデータのワークエリアとして機能する。操作部103は、ユーザ操作を受付け、操作部I/F113を介してメインCPU101に受け付けたユーザ操作を通知する。ネットワークI/F104は、有線接続または無線接続を介してLAN130と接続して外部機器と通信を行う。プリンタ部105は、画像データを紙面上に印字する。スキャナ部106は、紙面上の画像を光学的に読み取り電気信号に変換してスキャン画像を生成する。FAX107は、公衆回線110と接続して外部機器とファクシミリ通信を行う。信号バス109は、各モジュールを相互に接続し、通信を可能にする。 The main CPU 101 is a processor that controls the entire MFP1. The DRAM 102 stores a program executed by the main CPU 101 and functions as a temporary data work area. The operation unit 103 receives the user operation and notifies the main CPU 101 of the received user operation via the operation unit I / F 113. The network I / F 104 connects to the LAN 130 via a wired connection or a wireless connection to communicate with an external device. The printer unit 105 prints the image data on the paper surface. The scanner unit 106 optically reads an image on a paper surface and converts it into an electric signal to generate a scanned image. The FAX 107 connects to the public line 110 and performs facsimile communication with an external device. The signal bus 109 connects the modules to each other and enables communication.

公衆回線110は、FAX107と外部機器を相互接続する。画像処理部111は、ネットワークI/F104で受信したプリントジョブをプリンタ部105で印刷するのに適した画像への変換処理、スキャナ部106で読み取ったスキャン画像のノイズ除去や色空間変換、回転、圧縮等の処理を実行する。また、HDD(Hard Disk Drive)125に保管されたスキャン画像の画像処理を実行する。 The public line 110 interconnects the FAX 107 and an external device. The image processing unit 111 converts the print job received by the network I / F 104 into an image suitable for printing by the printer unit 105, noise removal, color space conversion, and rotation of the scanned image read by the scanner unit 106. Perform processing such as compression. In addition, image processing of the scanned image stored in the HDD (Hard Disk Drive) 125 is executed.

電源制御部118は、MFP1内の各モジュールの電力供給を制御する。電源線119は、電源制御部118から各モジュールに電力を供給する。電源供給線120は、電源制御部118から商業用AC電源が供給される。 The power control unit 118 controls the power supply of each module in the MFP1. The power supply line 119 supplies electric power to each module from the power supply control unit 118. The power supply line 120 is supplied with commercial AC power from the power control unit 118.

また、図1で、MFP1は、リセット回路122、HDD制御部124、HDD125、サブCPU115、サブCPU2 126、FLASH ROM(FLASH Read Only Memory)112、およびFLASH ROM2 127を備える。 Further, in FIG. 1, the MFP 1 includes a reset circuit 122, an HDD control unit 124, an HDD 125, a sub CPU 115, a sub CPU 2 126, a FLASH ROM (FLASH Read Only Memory) 112, and a FLASH ROM 2 127.

リセット回路122は、システムの電源がONされると所定の遅延時間後にサブCPUへのリセット信号123を「Lo」レベルから「Hi」レベルに遷移する。サブCPUリセット信号123は、リセット回路122から出力されてサブCPU115のリセット端子に接続される。サブCPUリセット信号123が「Hi」レベルになると、サブCPU115はリセットが解除されて起動を開始する。すなわち、リセット回路122は、起動時に後述する改竄検知処理を実行させるトリガとなるリセット信号123をサブCPU115およびサブCPU2 126に送信する。サブCPU115はメインCPU101が実行するブートコード(プログラム)の正当性を検証するためのコントローラである。サブCPU2 126は、HDD制御部124が実行するブートコード(プログラム)の正当性を検証するためのコントローラである。すなわち、サブCPUは、複数のCPUのそれぞれに対して個別に設けられる。 When the power of the system is turned on, the reset circuit 122 shifts the reset signal 123 to the sub CPU from the “Lo” level to the “Hi” level after a predetermined delay time. The sub CPU reset signal 123 is output from the reset circuit 122 and is connected to the reset terminal of the sub CPU 115. When the sub CPU reset signal 123 reaches the "Hi" level, the sub CPU 115 is released from the reset and starts to start. That is, the reset circuit 122 transmits a reset signal 123, which is a trigger for executing the falsification detection process described later at startup, to the sub CPU 115 and the sub CPU 2 126. The sub CPU 115 is a controller for verifying the validity of the boot code (program) executed by the main CPU 101. The sub CPU 2 126 is a controller for verifying the validity of the boot code (program) executed by the HDD control unit 124. That is, the sub CPU is individually provided for each of the plurality of CPUs.

HDD125は、HDD制御部124を介してメインCPU101で実行されるプログラムを格納すると共にプリントジョブやスキャンジョブ等のスプール領域としても利用される。また、スキャン画像を保管し再利用するための領域としても利用される。HDD制御部124は、HDD125のデータ入出力を制御する。 The HDD 125 stores a program executed by the main CPU 101 via the HDD control unit 124, and is also used as a spool area for a print job, a scan job, and the like. It is also used as an area for storing and reusing scanned images. The HDD control unit 124 controls the data input / output of the HDD 125.

FLASH ROM112は、メインCPU101で実行されるブートコードを含むプログラムを格納すると共にMFP1のデフォルト設定値を記憶するための記憶部(メモリ)である。FLASH ROM127は、HDD制御部124で実行されるブートコードを含むプログラムを格納するための記憶部(メモリ)である。すなわち、FLASH ROMは、複数のCPUのそれぞれに対して個別に設けられる。一例では、FLASH ROM112に格納されたデータは、暗号化されている。操作部I/F113は、操作部103と信号バス109を相互接続する。Serial Peripheral Interface(SPI)バス114は、メインCPU101、FLASH ROM112、サブCPU115を相互接続する。 The FLASH ROM 112 is a storage unit (memory) for storing a program including a boot code executed by the main CPU 101 and storing the default setting value of the MFP1. The FLASH ROM 127 is a storage unit (memory) for storing a program including a boot code executed by the HDD control unit 124. That is, the FLASH ROM is individually provided for each of the plurality of CPUs. In one example, the data stored in the FLASH ROM 112 is encrypted. The operation unit I / F 113 interconnects the operation unit 103 and the signal bus 109. The Serial Peripheral Interface (SPI) bus 114 interconnects the main CPU 101, the FLASH ROM 112, and the sub CPU 115.

サブCPU115は、MFP1の起動時に、メインCPU101が起動する前にFLASH ROM112からブートコードを読み出して、正当性を検証する。すなわち、改竄がされていないか、FLASH ROM112の故障などによりデータの変化が発生していないかを検証する。改竄の検知方法としては、例えばブートコードのデジタル署名の公開鍵情報(ハッシュ値を公開鍵暗号化した値)を製造時にサブCPU115内のOTP(One Time Program)304領域に記憶させておく。そして、読み出したブートコードをこの公開鍵情報で復号化して検証を行う。公開鍵暗号の方法としてはRSA2048、ECDSA(Elliptic Curve Digital Signature Algorithm)などを含む。リセット信号117は、サブCPU115のGPIOポートから出力されてメインCPU101のリセット端子に接続される。 When the MFP1 is started, the sub CPU 115 reads the boot code from the FLASH ROM 112 before the main CPU 101 is started, and verifies the validity. That is, it is verified whether the data has been tampered with and whether the data has changed due to a failure of the FLASH ROM 112 or the like. As a method for detecting falsification, for example, the public key information (value obtained by public key encryption of the hash value) of the digital signature of the boot code is stored in the OTP (One Time Program) 304 area in the sub CPU 115 at the time of manufacture. Then, the read boot code is decrypted with this public key information and verified. The public key cryptography method includes RSA2048, ECDSA (Elliptic Curve Digital Signature Algorithm), and the like. The reset signal 117 is output from the GPIO port of the sub CPU 115 and connected to the reset terminal of the main CPU 101.

サブCPU2 126は、MFP1の起動時に、HDD制御部124が起動する前にFLASH ROM2 127からブートコードを読み出して、正当性を検証する。すなわち、改竄がされていないか、FLASH ROM2 127の故障などによりデータの損失が発生していないかを検証する。改竄の検知方法としては、例えばブートコードのデジタル署名の公開鍵情報(ハッシュ値を公開鍵暗号化した値)を製造時にサブCPU115内のOTP(One Time Program)領域に記憶させておく。そして、読み出したブートコードをこの公開鍵情報で復号化して検証を行う。公開鍵暗号の方法としてはRSA2048、ECDSA(Elliptic Curve Digital Signature Algorithm)などを含む。リセット信号129は、サブCPU2 126のGPIOポートから出力されてHDD制御部124のリセット処理用に接続される。 The sub CPU 2 126 reads the boot code from the FLASH ROM 2 127 at the time of starting the MFP 1 before the HDD control unit 124 starts, and verifies the validity. That is, it is verified whether the data has been tampered with and whether data loss has occurred due to a failure of the FLASH ROM2 127 or the like. As a method for detecting falsification, for example, the public key information (value obtained by public key encryption of the hash value) of the digital signature of the boot code is stored in the OTP (One Time Program) area in the sub CPU 115 at the time of manufacture. Then, the read boot code is decrypted with this public key information and verified. The public key cryptography method includes RSA2048, ECDSA (Elliptic Curve Digital Signature Algorithm), and the like. The reset signal 129 is output from the GPIO port of the sub CPU 2 126 and is connected for the reset process of the HDD control unit 124.

次に、図2を参照してメインCPU101の構成を説明する。図2において、メインCPU101は、CPUコア201、SPI Master202を備える。CPUコア201は、CPUの基本機能を担っている。SPI Master202は、外部のSPIデバイスと相互に接続してデータの読み書きを行う。 Next, the configuration of the main CPU 101 will be described with reference to FIG. In FIG. 2, the main CPU 101 includes a CPU core 201 and an SPI Master 202. The CPU core 201 is responsible for the basic functions of the CPU. The SPI Master 202 interconnects with an external SPI device to read and write data.

また、メインCPU101は、外部のSPIデバイスと電気的に接続するためにSPIバス206を備える。信号バス209は、メインCPU101内の各モジュールを接続する。「Lo」レベルのリセット信号117が入力された場合、メインCPU101はリセット状態に遷移する。「Hi」レベルのリセット信号117が入力された場合、メインCPU101はリセット解除状態に遷移する。リセット信号117がリセット状態からリセット解除状態に遷移すると、CPUコア201は先ず、FLASH ROM112内に記憶されているメインCPU BIOS501をDRAM102にロードして実行する。 Further, the main CPU 101 includes an SPI bus 206 for electrically connecting to an external SPI device. The signal bus 209 connects each module in the main CPU 101. When the "Lo" level reset signal 117 is input, the main CPU 101 transitions to the reset state. When the "Hi" level reset signal 117 is input, the main CPU 101 transitions to the reset release state. When the reset signal 117 transitions from the reset state to the reset release state, the CPU core 201 first loads the main CPU BIOS 501 stored in the FLASH ROM 112 into the DRAM 102 and executes it.

次に、図3を参照してサブCPU115の構成を説明する。図3において、サブCPU115はCPUコア301、SPI Master302、GPIO(General−purpose input/output)303、およびOTP(One Time Programmable)を備える。また、サブCPU115はSRAM305、暗号処理部308、Boot ROM(Read Only Memory)310、およびCrypto RAM311を備える。サブCPU115内のモジュールは、信号バス309によって通信可能に接続される。 Next, the configuration of the sub CPU 115 will be described with reference to FIG. In FIG. 3, the sub CPU 115 includes a CPU core 301, an SPI Master 302, a GPIO (General-purpose input / output) 303, and an OTP (One Time Program). Further, the sub CPU 115 includes an SRAM 305, an encryption processing unit 308, a Boot ROM (Read Only Memory) 310, and a Crypto RAM 311. The modules in the sub CPU 115 are communicably connected by the signal bus 309.

CPUコア301は、サブCPU115の基本機能を担っている。SPI Master302は、外部のSPIデバイスと相互に接続してデータの読み書きを行う。本実施形態において、サブCPU115のSPI Master302はバス114およびバス128に接続する。GPIO303は、外部のデバイスと相互に接続してデータの送受信を行う。サブCPU115のGPIO303は、メインCPU101にリセット信号117を送信する。OTPメモリ領域304は、製造時にサブCPU FW(Firmware)のハッシュ値を公開鍵暗号化した値およびTagのアドレスが書き込まれる。この領域に書き込まれたデータは一度書き込まれると二度と書換えることはできない。 The CPU core 301 is responsible for the basic functions of the sub CPU 115. The SPI Master 302 interconnects with an external SPI device to read and write data. In this embodiment, the SPI Master 302 of the sub CPU 115 is connected to the bus 114 and the bus 128. The GPIO 303 interconnects with an external device to transmit and receive data. The GPIO 303 of the sub CPU 115 transmits a reset signal 117 to the main CPU 101. In the OTP memory area 304, the hash value of the sub CPU FW (Firmware) is publicly key-encrypted and the Tag address is written at the time of manufacture. The data written in this area cannot be rewritten once it has been written.

SRAM305は、サブCPU115内のワークメモリとして使用される。暗号処理部308は、公開鍵暗号化した値からサブCPU FWのハッシュ値を復号するほか、公開鍵暗号化したメインCPU BIOSのハッシュ値を復号する。Boot ROM310は、サブCPU115のブートコードを記憶する。 The SRAM 305 is used as a work memory in the sub CPU 115. The encryption processing unit 308 decrypts the hash value of the sub CPU FW from the public key encrypted value, and also decrypts the hash value of the main CPU BIOS encrypted with the public key. The Boot ROM 310 stores the boot code of the sub CPU 115.

GPIO303が出力するリセット信号117が「Lo」レベルの場合、メインCPU101はリセット状態となり、リセット信号117が「Hi」レベルの場合、メインCPU101はリセット解除状態となる。リセット信号117がリセット状態からリセット解除状態に遷移すると、CPUコア301は先ず、Boot ROM310から自身のブートコードを読み出し実行する。Crypto RAM311は、暗号処理部308で利用する機密性の高いデータ等を記憶する。 When the reset signal 117 output by the GPIO 303 is at the "Lo" level, the main CPU 101 is in the reset state, and when the reset signal 117 is at the "Hi" level, the main CPU 101 is in the reset release state. When the reset signal 117 transitions from the reset state to the reset release state, the CPU core 301 first reads its own boot code from the Boot ROM 310 and executes it. The Crypt RAM 311 stores highly confidential data or the like used by the encryption processing unit 308.

なお、サブCPU2 126も、サブCPU115と同様の構成を備える。サブCPU2 126のGPIOは、HDD制御部124にリセット信号129を送信する。また、サブCPU2 126のSPI Masterはバス128に接続する。 The sub CPU 2 126 also has the same configuration as the sub CPU 115. The GPIO of the sub CPU 2 126 transmits a reset signal 129 to the HDD control unit 124. Further, the SPI Master of the sub CPU 2 126 is connected to the bus 128.

次に、図4を参照してHDD制御部124およびHDD125の構成を説明する。図4において、HDD制御部124はCPUコア401、SPI Master402、HDD転送制御部1 403、およびHDD転送制御部2 404を備える。HDD制御部124内のモジュールは、内部データバス407によって通信可能に接続される。 Next, the configurations of the HDD control unit 124 and the HDD 125 will be described with reference to FIG. In FIG. 4, the HDD control unit 124 includes a CPU core 401, an SPI Master 402, an HDD transfer control unit 1 403, and an HDD transfer control unit 2 404. The modules in the HDD control unit 124 are communicably connected by the internal data bus 407.

CPUコア401は、HDD制御部124を制御するためのCPUの基本機能を担っている。SPI Master402は、外部のSPIデバイスと相互に接続してデータの読み書きを行う。 The CPU core 401 has a basic function of the CPU for controlling the HDD control unit 124. The SPI Master 402 interconnects with an external SPI device to read and write data.

HDD転送制御部1 403のおよびHDD転送制御部2 404は、CPUコア401の命令により、HDD125の読み書き処理の制御を行う。HDD125の読み出し動作の場合、CPUコア401はHDD転送制御部2 404にHDDの読み出しを設定する。そして、設定されたデータをHDD転送制御部2 404がHDDから読み出し、SATAインタフェースバス408を経由してCPUコア401に送信する。そして、HDD転送制御部2 404、HDD制御部124の内部データバス407、およびHDD転送制御部1 403を経由して、データバス405を介してDRAM102に書き込む動作を行う。 The HDD transfer control unit 1 403 and the HDD transfer control unit 2 404 control the read / write process of the HDD 125 by the instruction of the CPU core 401. In the case of the read operation of the HDD 125, the CPU core 401 sets the HDD transfer control unit 2 404 to read the HDD. Then, the HDD transfer control unit 2 404 reads the set data from the HDD and transmits it to the CPU core 401 via the SATA interface bus 408. Then, the operation of writing to the DRAM 102 via the data bus 405 is performed via the HDD transfer control unit 2 404, the internal data bus 407 of the HDD control unit 124, and the HDD transfer control unit 1 403.

また、HDD125の書き込み動作の場合、CPUコア401はHDD転送制御部2 404にHDD125の書き込みを設定する。その後、データバス405から転送されたデータをHDD転送制御部1 403、HDD制御部124の内部データバス407、HDD転送制御部2 404、およびSATAインタフェースバス408を経由して、HDD125へ書き込み動作を実行する。SPIバス406は、外部のSPIデバイスと電気的に接続する。 Further, in the case of the writing operation of the HDD 125, the CPU core 401 sets the writing of the HDD 125 in the HDD transfer control unit 2 404. After that, the data transferred from the data bus 405 is written to the HDD 125 via the HDD transfer control unit 1 403, the internal data bus 407 of the HDD control unit 124, the HDD transfer control unit 2 404, and the SATA interface bus 408. Run. The SPI bus 406 electrically connects to an external SPI device.

CPUコア401に入力されるリセット信号129が「Lo」レベルである場合、HDD制御部124はリセット状態となり、リセット信号129が「Hi」レベルである場合、HDD制御部124はリセット解除状態となる。リセット信号129がリセット状態からリセット解除状態に遷移すると、CPUコア401は先ず、FLASH ROM2 127内に記憶されているHDD制御部CPU BIOSをSPI Master402にロードして実行する。 When the reset signal 129 input to the CPU core 401 is at the "Lo" level, the HDD control unit 124 is in the reset state, and when the reset signal 129 is at the "Hi" level, the HDD control unit 124 is in the reset release state. .. When the reset signal 129 transitions from the reset state to the reset release state, the CPU core 401 first loads the HDD control unit CPU BIOS stored in the FLASH ROM 2 127 into the SPI Master 402 and executes it.

次に、図5を参照してFLASH ROM112のメモリマップの一例を説明する。図5において、FLASH ROM112のメモリマップは、メインCPU BIOS501、メインCPU BIOS署名502、Tag503、サブCPU FW504、FW署名505、およびROM−ID506を含む。また、FLASH ROM112のメモリマップは、Tag0 507、Tag1 508、リカバリブートコード0 509、およびリカバリブートコード1 510を含む。 Next, an example of the memory map of the FLASH ROM 112 will be described with reference to FIG. In FIG. 5, the memory map of the FLASH ROM 112 includes a main CPU BIOS 501, a main CPU BIOS signature 502, Tag 503, a sub CPU FW 504, a FW signature 505, and a ROM-ID 506. The memory map of the FLASH ROM 112 also includes Tag0 507, Tag1 508, Recovery Boot Code 0 509, and Recovery Boot Code 1 510.

メインCPU BIOS501には、メインCPU101で実行されるコードが記憶される。BIOS署名502には、メインCPU BIOSのハッシュ値に対するRSA署名値が格納される。Tag503は、サブCPU FW504の先頭アドレスが記憶されている。Tag503自体のアドレスはOTP304に記憶されている。 The code executed by the main CPU 101 is stored in the main CPU BIOS 501. The RSA signature value for the hash value of the main CPU BIOS is stored in the BIOS signature 502. The Tag 503 stores the start address of the sub CPU FW504. The address of Tag503 itself is stored in OTP304.

サブCPU FW504には、サブCPU115で実行されるコードが記憶されている。FW署名505には、サブCPU FW504、またはサブCPU FW504の先頭の特定部分のECDSA署名値が記憶されている。ROM−ID506は、メインCPU BIOS501の先頭アドレス、サイズおよびメインCPU BIOS署名502のアドレスが記憶されている。 The code executed by the sub CPU 115 is stored in the sub CPU FW504. In the FW signature 505, the ECDSA signature value of the sub CPU FW504 or the head specific portion of the sub CPU FW504 is stored. The ROM-ID 506 stores the start address and size of the main CPU BIOS 501 and the address of the main CPU BIOS signature 502.

Tag0 507には、リカバリブートコード0 509の先頭アドレスが記憶されている。Tag0 507自体のアドレスはOTP304に記憶されている。Tag1 508には、リカバリブートコード1 510の先頭アドレスが記憶されている。Tag1 508自体のアドレスはOTP304に記憶されている。 The start address of the recovery boot code 0 509 is stored in Tag0 507. The address of Tag0 507 itself is stored in OTP304. The start address of the recovery boot code 1 510 is stored in the Tag 1 508. The address of Tag1 508 itself is stored in OTP304.

次に、図13を参照してFLASH ROM2 127のメモリマップの一例を説明する。図13において、FLASH ROM2 127のメモリマップは、HDD制御部CPU BIOS1301、HDD制御部CPU署名1302、Tag1303、サブCPU FW1304、FW署名1305、およびROM−ID1306を含む。 Next, an example of the memory map of the FLASH ROM2 127 will be described with reference to FIG. In FIG. 13, the memory map of FLASH ROM2 127 includes HDD control unit CPU BIOS1301, HDD control unit CPU signature 1302, Tag1303, sub CPU FW1304, FW signature 1305, and ROM-ID1306.

HDD制御部CPU BIOS1301は、HDD制御部124のCPUコア401によって実行されるコードが記憶される。HDD制御部CPU署名1302には、HDD制御部CPU BIOSのハッシュ値に対するRSA署名値が格納される。Tag1303には、サブCPU FW1304の先頭アドレスが記憶されている。 The HDD control unit CPU BIOS 1301 stores a code executed by the CPU core 401 of the HDD control unit 124. The HDD control unit CPU signature 1302 stores the RSA signature value for the hash value of the HDD control unit CPU BIOS. The start address of the sub CPU FW1304 is stored in the Tag 1303.

サブCPU FW1304には、サブCPU2 126によって実行されるコードが記憶されている。FW署名1305には、サブCPU FW1304の先頭の特定部分のECDSA署名値が記憶されている。ROM−ID1306は、HDD制御部CPU BIOS1301の先頭アドレス、サイズおよびHDD制御部CPU署名1302のアドレスが記憶されている。 The code executed by the sub CPU 2 126 is stored in the sub CPU FW 1304. The FW signature 1305 stores the ECDSA signature value of the specific portion at the beginning of the sub CPU FW1304. The ROM-ID 1306 stores the start address and size of the HDD control unit CPU BIOS 1301 and the address of the HDD control unit CPU signature 1302.

次に、本実施形態におけるサブCPU115の処理手順を図6のフローチャートを用いて説明する。図6の処理は、MFP1の電源投入時にサブCPU115によって実行される。 Next, the processing procedure of the sub CPU 115 in the present embodiment will be described with reference to the flowchart of FIG. The process of FIG. 6 is executed by the sub CPU 115 when the power of the MFP 1 is turned on.

まず、S601で、サブCPU115は起動すると直ちにBoot ROM310内のコードを実行し、SPIバス114を介してFLASH ROM112からサブCPU FW504をSRAM305に読み込む。続いて、サブCPU115は処理をS602に進め、暗号処理部308によってFW署名505をOTP304内の公開鍵で復号化して、正解となるハッシュ値を得る。続いてサブCPU 115は処理をS603に進め、暗号処理部308によってサブCPU FW504のハッシュ値を計算する。次にサブCPU115は処理をS604に進め、S602で取得したハッシュ値とS603で計算したハッシュ値を比較し、不一致の場合(S604でNO)は処理を終了する。S602のハッシュ値とS603のハッシュ値とが一致した場合(S604でYES)、サブCPU115は処理をS605に進め、サブCPU FW504をSRAM305に読み込み、サブCPU115はサブCPU FW504を実行する。 First, in S601, as soon as the sub CPU 115 is started, the code in the Boot ROM 310 is executed, and the sub CPU FW504 is read into the SRAM 305 from the FLASH ROM 112 via the SPI bus 114. Subsequently, the sub CPU 115 advances the process to S602, and the encryption processing unit 308 decrypts the FW signature 505 with the public key in the OTP 304 to obtain a hash value that is the correct answer. Subsequently, the sub CPU 115 advances the processing to S603, and the encryption processing unit 308 calculates the hash value of the sub CPU FW504. Next, the sub CPU 115 advances the process to S604, compares the hash value acquired in S602 with the hash value calculated in S603, and ends the process if they do not match (NO in S604). When the hash value of S602 and the hash value of S603 match (YES in S604), the sub CPU 115 proceeds to S605, reads the sub CPU FW 504 into the SRAM 305, and the sub CPU 115 executes the sub CPU FW 504.

次にサブCPU115は処理をS606に進め、ROM−ID506をFLASH ROM112からCrypto RAM311に読み込む。続いてサブCPU115は処理をS607に進め、ROM−ID506からメインCPU BIOS501のアドレスとメインCPU BIOS署名502のアドレスとを得る。次にサブCPU115は処理をS608に進め、メインCPU BIOS署名502をSRAM305に読み込む。続いてサブCPU115は処理をS609に進め、暗号処理部308によってメインCPU BIOS署名502をサブCPU FW504に付属している公開鍵で復号化してハッシュ値を得る。 Next, the sub CPU 115 advances the process to S606, and reads the ROM-ID 506 from the FLASH ROM 112 into the Crypt RAM 311. Subsequently, the sub CPU 115 advances the process to S607, and obtains the address of the main CPU BIOS 501 and the address of the main CPU BIOS signature 502 from the ROM-ID 506. Next, the sub CPU 115 advances the process to S608 and reads the main CPU BIOS signature 502 into the SRAM 305. Subsequently, the sub CPU 115 advances the processing to S609, and the encryption processing unit 308 decrypts the main CPU BIOS signature 502 with the public key attached to the sub CPU FW 504 to obtain a hash value.

次にサブCPU115は処理をS610に進め、メインCPU BIOS501をSRAM305に読み込む。次にサブCPU115はS611に進め、暗号処理部308によってメインCPU BIOS501のハッシュ値を計算する。そして、サブCPU115はS612に処理を進め、S609のハッシュ値とS611のハッシュ値とを比較する。S609のハッシュ値とS611のハッシュ値とが一致する場合(S612でYES)、サブCPU115は処理をS618に進める。また、S609のハッシュ値とS611のハッシュ値とが不一致の場合(S612でNO)、サブCPU115は処理をS613に進め、OTP304のリカバリ用Tagを取得する。すなわち、サブCPU115は、S613において、S611で計算したハッシュ値がS609のハッシュ値と一致しないため、メインCPU BIOS501に改竄またはデータの破損が発生したと判定し、リカバリ用Tag0 507を取得する。リカバリ用Tag0 507にはリカバリブートコード0 509の先頭アドレスが記憶されている。 Next, the sub CPU 115 advances the process to S610 and reads the main CPU BIOS501 into the SRAM 305. Next, the sub CPU 115 proceeds to S611, and the encryption processing unit 308 calculates the hash value of the main CPU BIOS501. Then, the sub CPU 115 proceeds to S612 and compares the hash value of S609 with the hash value of S611. When the hash value of S609 and the hash value of S611 match (YES in S612), the sub CPU 115 advances the process to S618. If the hash value of S609 and the hash value of S611 do not match (NO in S612), the sub CPU 115 proceeds to S613 and acquires the recovery tag of OTP304. That is, since the hash value calculated in S611 does not match the hash value in S609 in S613, the sub CPU 115 determines that the main CPU BIOS501 has been tampered with or has data corruption, and acquires the recovery Tag0 507. The start address of the recovery boot code 0 509 is stored in the recovery Tag 0 507.

続いて、サブCPU115は処理をS614に進め、再度、暗号処理部308によってメインCPU BIOS署名502をサブCPU FW504に付属している公開鍵で復号化してハッシュ値を得る。次にサブCPU115は処理をS615に進め、リカバリブートコード0 509をSRAM305に読み込む。なお、一例では、S615においてサブCPU115はリカバリブートコード0 509でメインCPU BIOSを上書きすることでメインCPU BIOSのリカバリを行ってもよい。 Subsequently, the sub CPU 115 advances the processing to S614, and again, the encryption processing unit 308 decrypts the main CPU BIOS signature 502 with the public key attached to the sub CPU FW 504 to obtain a hash value. Next, the sub CPU 115 advances the process to S615 and reads the recovery boot code 0 509 into the SRAM 305. In one example, in S615, the sub CPU 115 may recover the main CPU BIOS by overwriting the main CPU BIOS with the recovery boot code 0 509.

次にサブCPU115は処理をS616に進め、暗号処理部308によってリカバリブートコード0 509のハッシュ値を計算する。そして、サブCPU115は処理をS617に進め、S614のハッシュ値とS616のハッシュ値とを比較する。S614のハッシュ値とS616のハッシュ値とが一致した場合(S617でYES)は、サブCPU115は処理をS618に進めてGPIO303を制御して「Hi」レベルのリセット信号117を出力する。S614のハッシュ値とS616のハッシュ値とが一致しない場合(S617でNO)、サブCPU115は図6の処理を終了する。 Next, the sub CPU 115 advances the process to S616, and the encryption processing unit 308 calculates the hash value of the recovery boot code 0 509. Then, the sub CPU 115 advances the process to S617 and compares the hash value of S614 with the hash value of S616. When the hash value of S614 and the hash value of S616 match (YES in S617), the sub CPU 115 proceeds to S618 to control GPIO303 and outputs a "Hi" level reset signal 117. If the hash value of S614 and the hash value of S616 do not match (NO in S617), the sub CPU 115 ends the process of FIG.

次に、サブCPU2 126の処理手順を図12のフローチャートを用いて説明する。図12の処理は、サブCPU2 126が「Hi」レベルのサブCPUリセット信号123を入力された場合に実行される。 Next, the processing procedure of the sub CPU 2 126 will be described with reference to the flowchart of FIG. The process of FIG. 12 is executed when the sub CPU 2 126 receives a “Hi” level sub CPU reset signal 123.

まず、S1201において、サブCPU2 126はHDD制御部CPU BIOS署名1302をFLASH ROM2 127から取得する。続いて、サブCPU2 126はS1202に処理を進め、HDD制御部CPU BIOS署名1302をSRAM305に読み込む。続いてサブCPU2 126は処理をS1203に進め、暗号処理部308によってHDD制御部CPU BIOS署名1302をサブCPU FW1304に付属している公開鍵で復号化してハッシュ値を得る。次にサブCPU2 126は処理をS1204に進め、HDD制御部CPU BIOS1301をSRAM305に読み込む。 First, in S1201, the sub CPU 2 126 acquires the HDD control unit CPU BIOS signature 1302 from the FLASH ROM 2 127. Subsequently, the sub CPU 2 126 proceeds to S1202 and reads the HDD control unit CPU BIOS signature 1302 into the SRAM 305. Subsequently, the sub CPU 2 126 advances the processing to S1203, and the encryption processing unit 308 decrypts the HDD control unit CPU BIOS signature 1302 with the public key attached to the sub CPU FW 1304 to obtain a hash value. Next, the sub CPU 2 126 advances the processing to S1204, and reads the HDD control unit CPU BIOS 1301 into the SRAM 305.

次にサブCPU2 126は処理をS1205に進め、暗号処理部308によってHDD制御部CPU BIOS1301のハッシュ値を計算する。そして、サブCPU2 126は処理をS1206に進め、S1203のハッシュ値とS1205のハッシュ値とを比較する。S1203のハッシュ値とS1205のハッシュ値とが不一致の場合(S1206でNO)、サブCPU2 126は、処理をS1207に進めてOTP304のリカバリ用Tag1を取得する。すなわち、S1203のハッシュ値とS1205のハッシュ値とが一致しないため、サブCPU2 126はS1207でHDD制御部CPU BIOS1301に改竄または故障が発生したと判定し、リカバリ用Tag1 508を取得する。リカバリ用Tag1 508にはHDD制御部CPU BIOS1301のリカバリ用のリカバリブートコード1 510の先頭アドレスが記憶されている。 Next, the sub CPU 2 126 advances the processing to S1205, and the encryption processing unit 308 calculates the hash value of the HDD control unit CPU BIOS1301. Then, the sub CPU 2 126 advances the process to S1206 and compares the hash value of S1203 with the hash value of S1205. When the hash value of S1203 and the hash value of S1205 do not match (NO in S1206), the sub CPU 2 126 advances the process to S1207 and acquires the recovery Tag 1 of OTP 304. That is, since the hash value of S1203 and the hash value of S1205 do not match, the sub CPU 2 126 determines that the HDD control unit CPU BIOS 1301 has been tampered with or has a failure in S1207, and acquires the recovery Tag 1 508. The recovery Tag 1 508 stores the start address of the recovery boot code 1 510 for recovery of the HDD control unit CPU BIOS 1301.

ここで、サブCPU2 126は、HDD制御部CPU BIOS1301に対応するリカバリブートコード1 510を、Inter−Integrated Circuit(I2C)バス128を経由して、FLASH ROM112から取得する。ここで、サブCPU2 126は、不図示のバスによってFLASH ROM112に接続されてもよいし、サブCPU115を介してFLASH ROM112にアクセスしてもよい。そして、サブCPU2 126はS1208に進め、FLASH ROM2 127への上書きによる書き換えを行うことでHDD制御部CPU BIOS1301のリカバリを行う。続いて、サブCPU2 126は処理をS1209に進め、書き換えの完了を確認する。書き換えが完了していない場合は(S1209でNO)、処理をS1208に戻す。一方、書き換えが完了した場合(S1209でYES)は、処理をS1210に進め、暗号処理部308によって署名をサブCPU FW1304に付属している公開鍵で復号化してハッシュ値を得る。 Here, the sub CPU 2 126 acquires the recovery boot code 1 510 corresponding to the HDD control unit CPU BIOS 1301 from the FLASH ROM 112 via the Inter-Integrated Circuit (I2C) bus 128. Here, the sub CPU 2 126 may be connected to the FLASH ROM 112 by a bus (not shown), or may access the FLASH ROM 112 via the sub CPU 115. Then, the sub CPU 2 126 advances to S1208 and rewrites by overwriting the FLASH ROM 2 127 to recover the HDD control unit CPU BIOS 1301. Subsequently, the sub CPU 2 126 advances the process to S1209 and confirms the completion of the rewriting. If the rewriting is not completed (NO in S1209), the process returns to S1208. On the other hand, when the rewriting is completed (YES in S1209), the process proceeds to S1210, and the signature is decrypted by the encryption processing unit 308 with the public key attached to the sub CPU FW1304 to obtain a hash value.

続いて、サブCPU2 126は処理をS1211に進め、FLASH ROM2 127から書き換え後のHDD制御部CPU BIOS1301をSRAM305に読み込む。次にサブCPU2 126は処理をS1212に進め、暗号処理部308によって書き換え後の、HDD制御部CPU BIOS1301のハッシュ値を計算する。そして、サブCPU2 126は処理をS1213に進め、S1210のハッシュ値とS1212のハッシュ値とを比較する。S1210のハッシュ値とS1212のハッシュ値とが一致した場合(S1213でYES)、サブCPU2 126は処理をS1214に進め、GPIO303を制御して「Hi」レベルのリセット信号129を出力する。S1210のハッシュ値とS1212のハッシュ値とが一致しない場合は図12の処理を終了する。 Subsequently, the sub CPU 2 126 advances the process to S1211, and reads the rewritten HDD control unit CPU BIOS 1301 from the FLASH ROM 2 127 into the SRAM 305. Next, the sub CPU 2 126 advances the processing to S1212, and calculates the hash value of the HDD control unit CPU BIOS 1301 after being rewritten by the encryption processing unit 308. Then, the sub CPU 2 126 advances the process to S1213 and compares the hash value of S1210 with the hash value of S1212. When the hash value of S1210 and the hash value of S1212 match (YES in S1213), the sub CPU 2 126 advances the process to S1214, controls GPIO 303, and outputs a “Hi” level reset signal 129. If the hash value of S1210 and the hash value of S1212 do not match, the process of FIG. 12 ends.

以上説明した様に、本実施形態に係るMFP1は、メインCPU101およびHDD制御部124の構成となるCPUコア401において、起動時に各々のROMのブートコードおよびシステムファームウェアの改竄検知を行う。これによって、検証が不一致の場合、各々のROMのリカバリ用のデータを1つのFLASH ROM112に配置することが可能となる。これにより、1つのFLASH ROMから各領域のリカバリを実行することが可能となり、コストを安価に製造し、かつ、システムのセキュリティを確保することが可能となる。 As described above, the MFP 1 according to the present embodiment detects falsification of the boot code and system firmware of each ROM at the time of booting in the CPU core 401 which is the configuration of the main CPU 101 and the HDD control unit 124. As a result, when the verifications do not match, the recovery data of each ROM can be arranged in one FLASH ROM 112. As a result, it is possible to recover each area from one FLASH ROM, manufacture the system at low cost, and ensure the security of the system.

なお、本実施形態では、正当性が確認できなかった場合に、サブCPUがリカバリブートコードで起動用のプログラムを上書きするものとして説明を行ったが、サブCPUはリカバリブートコードに基づいて誤り訂正を行い、ブートコードの修復を行ってもよい。 In the present embodiment, when the validity cannot be confirmed, the sub CPU overwrites the boot program with the recovery boot code, but the sub CPU corrects the error based on the recovery boot code. And repair the boot code.

<第2の実施形態>
第2の実施形態では、複数のCPUのための複数のブートコードのリカバリ用データを格納する1つのFLASH ROMを、複数のCPUのための複数のブートコードを格納するFLASH ROMとは別個のROMとして備えるMFPについて説明する。なお、特に断らない限り、本実施形態に係る機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。また、第1の実施形態と同様の構成または処理には同一の参照符号を付し、説明は省略する。
<Second embodiment>
In the second embodiment, one FLASH ROM that stores recovery data of a plurality of boot codes for a plurality of CPUs is a ROM that is separate from the FLASH ROM that stores a plurality of boot codes for a plurality of CPUs. The MFP provided as is described. It goes without saying that the present invention can be applied to a single device or a system composed of a plurality of devices as long as the functions according to the present embodiment are executed unless otherwise specified. Further, the same reference numerals are given to the same configurations or processes as in the first embodiment, and the description thereof will be omitted.

図7は、本実施形態に係るMFP1001の構成を表す図である。図7において、MFP1001は、SPIバス114に接続されたリカバリ用FLASH ROM(FLASH Read Only Memory)131を備える。FLASH ROM131は、メインCPU101およびHDD制御部124の構成となるCPUコア401で実行されるブートコードを含むプログラムのリカバリデータを格納すると共にMFP1のデフォルト設定値を記憶する。 FIG. 7 is a diagram showing the configuration of the MFP 1001 according to the present embodiment. In FIG. 7, the MFP 1001 includes a recovery FLASH ROM (FLASH Read Only Memory) 131 connected to the SPI bus 114. The FLASH ROM 131 stores the recovery data of the program including the boot code executed by the CPU core 401 that constitutes the main CPU 101 and the HDD control unit 124, and also stores the default setting value of the MFP 1.

図8は、リカバリ用FLASH ROM 131のメモリマップを示す図である。図8において、リカバリ用FLASH ROM 131のメモリマップは、Tag0 801、Tag1 802、リカバリブートコード0 803、およびリカバリブートコード1 804を含む。 FIG. 8 is a diagram showing a memory map of the recovery FLASH ROM 131. In FIG. 8, the memory map of the recovery FLASH ROM 131 includes Tag0 801 and Tag1 802, recovery boot code 0 803, and recovery boot code 1 804.

Tag0 801には、リカバリブートコード0 803の先頭アドレスが記憶されている。Tag1 802には、リカバリブートコード1 804の先頭アドレスが記憶されている。リカバリブートコード0 803には、メインCPU101で実行されるコードが記憶されている。リカバリブートコード1 804には、HDD制御部124におけるCPUコア401で実行されるコードが記憶されている。 The start address of the recovery boot code 0 803 is stored in Tag 0 801. The start address of the recovery boot code 1 804 is stored in the Tag 1 802. The recovery boot code 0 803 stores the code executed by the main CPU 101. The recovery boot code 1804 stores a code executed by the CPU core 401 in the HDD control unit 124.

次に、本実施形態におけるサブCPU115およびサブCPU2 126の処理手順を図9のフローチャートを用いて説明する。図9のフローチャートは、MFP1001の電源投入時に、サブCPU2 126によって実行される。 Next, the processing procedure of the sub CPU 115 and the sub CPU 2 126 in the present embodiment will be described with reference to the flowchart of FIG. The flowchart of FIG. 9 is executed by the sub CPU 2 126 when the power of the MFP 1001 is turned on.

まず、サブCPU2 126は起動するとS901でBoot ROM310内のコードを実行し、SPIバス128を介してFLASH ROM2 127からサブCPU FW1104をSRAM305に読み込む。次にサブCPU2 126は処理をS902に進め、暗号処理部308によってFW署名1105をOTP304内の公開鍵で復号化して、ハッシュ値を得る。続いてサブCPU2 126は処理をS903に進め、暗号処理部308によってサブCPU FW1104のハッシュ値を計算する。次にサブCPU2 126は処理をS904に進め、S902において復号化で得られたハッシュ値と、S903において計算したハッシュ値を比較する。S902のハッシュ値とS903のハッシュ値とが一致する場合(S904でYES)は処理をS910に進める。 First, when the sub CPU 2 126 is started, the code in the Boot ROM 310 is executed in S901, and the sub CPU FW1104 is read into the SRAM 305 from the FLASH ROM 2 127 via the SPI bus 128. Next, the sub CPU 2 126 advances the process to S902, and the encryption processing unit 308 decrypts the FW signature 1105 with the public key in the OTP 304 to obtain a hash value. Subsequently, the sub CPU 2 126 advances the processing to S903, and the encryption processing unit 308 calculates the hash value of the sub CPU FW1104. Next, the sub CPU 2 126 advances the process to S904, and compares the hash value obtained by decoding in S902 with the hash value calculated in S903. If the hash value of S902 and the hash value of S903 match (YES in S904), the process proceeds to S910.

S902のハッシュ値とS903のハッシュ値とが不一致の場合(S904でNO)はS905に処理を進め、OTP304のリカバリ用TAGを取得する。すなわち、S902のハッシュ値とS903のハッシュ値とが一致しないため、サブCPU2 126はサブCPU FWに改竄または故障が発生したと判定し、リカバリ用Tag1 507を取得する。リカバリ用Tag1 508にはリカバリブートコード1 510の先頭アドレスが記憶されている。 If the hash value of S902 and the hash value of S903 do not match (NO in S904), the process proceeds to S905 and the recovery TAG of OTP304 is acquired. That is, since the hash value of S902 and the hash value of S903 do not match, the sub CPU 2 126 determines that the sub CPU FW has been tampered with or has a failure, and acquires the recovery Tag 1 507. The recovery Tag 1 508 stores the start address of the recovery boot code 1 510.

続いて、サブCPU2 126は処理をS906に進め、再度、暗号処理部308によって署名をサブCPU FW504に付属している公開鍵で復号化してハッシュ値を得る。次にサブCPU2 126は処理をS907に進め、リカバリ用FLASH ROM131からリカバリブートコード1 510をSRAM305に読み込む。次に、サブCPU2 126は処理をS908に進め、サブCPU2 126の暗号処理部308によってリカバリブートコード1 510のハッシュ値を計算する。そして、サブCPU2 126は処理をS909に進め、S906のハッシュ値とS908のハッシュ値とを比較する。S906のハッシュ値とS908のハッシュ値とが一致しない場合(S909でNO)は図9の処理を終了する。S906のハッシュ値とS908のハッシュ値とが一致する場合(S909でYES)は、サブCPU2 126は処理をS910に進め、GPIO303を制御して「Hi」レベルのリセット信号129を出力する。 Subsequently, the sub CPU 2 126 advances the processing to S906, and the encryption processing unit 308 again decrypts the signature with the public key attached to the sub CPU FW504 to obtain a hash value. Next, the sub CPU 2 126 advances the process to S907, and reads the recovery boot code 1 510 from the recovery FLASH ROM 131 into the SRAM 305. Next, the sub CPU 2 126 advances the process to S908, and the encryption processing unit 308 of the sub CPU 2 126 calculates the hash value of the recovery boot code 1 510. Then, the sub CPU 2 126 advances the process to S909 and compares the hash value of S906 with the hash value of S908. If the hash value of S906 and the hash value of S908 do not match (NO in S909), the process of FIG. 9 ends. When the hash value of S906 and the hash value of S908 match (YES in S909), the sub CPU 2 126 advances the process to S910, controls GPIO 303, and outputs a "Hi" level reset signal 129.

以上説明した様に、本実施形態に係るMFP1001は、メインCPU101およびHDD制御部124の構成となるCPUコア401において、各々のROMのブートコードの改竄検知を行う。これによって、検証が不一致の場合、ブートコードのリカバリ処理を行うROMとして、FLASH ROM131を構成することも可能となる。 As described above, the MFP 1001 according to the present embodiment detects falsification of the boot code of each ROM in the CPU core 401 which is the configuration of the main CPU 101 and the HDD control unit 124. As a result, when the verifications do not match, the FLASH ROM 131 can be configured as the ROM for performing the boot code recovery process.

<第3の実施形態>
第3の実施形態では、複数のCPUのための複数のブートコードを格納するFLASH ROMと、複数のブートコードの正当性を検証するコントローラとの間のインタフェースに応じてリカバリ用データのプロトコル変換を行うMFPについて説明する。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。また、第1または第2の実施形態と同様の構成または処理には同一の参照符号を付し、説明は省略する。
<Third embodiment>
In the third embodiment, the protocol conversion of the recovery data is performed according to the interface between the FLASH ROM that stores the plurality of boot codes for the plurality of CPUs and the controller that verifies the validity of the plurality of boot codes. The MFP to be performed will be described. It goes without saying that the present invention can be applied to a single device or a system composed of a plurality of devices as long as the functions of the present invention are executed unless otherwise specified. Further, the same reference numerals are given to the same configurations or processes as in the first or second embodiment, and the description thereof will be omitted.

本実施形態ではメインCPU101およびHDD制御部124のCPUコア401において、各々のROMのブートコードを検証するサブCPU115とサブCPU2 126の接続インタフェースが異なる場合の処理について説明する。 In the present embodiment, in the CPU core 401 of the main CPU 101 and the HDD control unit 124, processing when the connection interfaces of the sub CPU 115 and the sub CPU 2 126 for verifying the boot code of each ROM are different will be described.

まず、図10を参照して、本実施形態に係るMFP1101の構成例を説明する。MFP1101は、SPIバス114に接続されたリカバリ用FLASH ROM131を備える。また、サブCPU115は、SPIバスと異なるI2Cバス132に接続し、プロトコル変換を行う。I2Cバス132を介して、サブCPU2 126、FLASH ROM2 127、HDD制御部124の構成となるCPUコア401を相互接続する構成を備える。 First, a configuration example of the MFP 1101 according to the present embodiment will be described with reference to FIG. The MFP 1101 includes a recovery FLASH ROM 131 connected to the SPI bus 114. Further, the sub CPU 115 connects to the I2C bus 132, which is different from the SPI bus, and performs protocol conversion. The CPU core 401, which is the configuration of the sub CPU 2 126, the FLASH ROM 2 127, and the HDD control unit 124, is interconnected via the I2C bus 132.

図11は、電源投入時にサブCPU2 126によって実行される処理手順の一例を示す。 FIG. 11 shows an example of a processing procedure executed by the sub CPU 2 126 when the power is turned on.

まず、サブCPU2 126は起動するとS1101でBoot ROM310内のコードを実行し、I2Cバス132を介してFLASH ROM2 127からサブCPU FW1104をSRAM305に読み込む。次にサブCPU2 126は処理をS1102に進め暗号処理部308によってFW署名1105をOTP304内の公開鍵で復号化して、正解となるハッシュ値を得る。続いてサブCPU2 126は処理をS1103に進め、暗号処理部308によってサブCPU FW1104のハッシュ値を計算する。次にサブCPU2 126は処理をS1104に進め、S1102において復号化で得られたハッシュ値とS1103において計算したハッシュ値とを比較する。S1102のハッシュ値とS1103のハッシュ値とが一致する場合(S1104でYES)はサブCPU2 126は処理をS1111に進める。S1102のハッシュ値とS1103のハッシュ値とが不一致の場合(S1104でNO)はS1105に処理を進め、OTP304のリカバリ用TAGを取得する。リカバリ用Tag1 508にはリカバリブートコード1 510の先頭アドレスが記憶されている。 First, when the sub CPU 2 126 is started, the code in the Boot ROM 310 is executed in S1101, and the sub CPU FW1104 is read into the SRAM 305 from the FLASH ROM 2 127 via the I2C bus 132. Next, the sub CPU 2 126 advances the processing to S1102, and the encryption processing unit 308 decrypts the FW signature 1105 with the public key in the OTP 304 to obtain a hash value that is the correct answer. Subsequently, the sub CPU 2 126 advances the processing to S1103, and the encryption processing unit 308 calculates the hash value of the sub CPU FW1104. Next, the sub CPU 2 126 advances the process to S1104, and compares the hash value obtained by decoding in S1102 with the hash value calculated in S1103. When the hash value of S1102 and the hash value of S1103 match (YES in S1104), the sub CPU 2 126 advances the process to S1111. If the hash value of S1102 and the hash value of S1103 do not match (NO in S1104), the process proceeds to S1105 and the recovery TAG of OTP304 is acquired. The recovery Tag 1 508 stores the start address of the recovery boot code 1 510.

続いて、サブCPU2 126は処理をS1106に処理を進め、再度、暗号処理部308によって署名をサブCPU FW504に付属している公開鍵で復号化してハッシュ値を得る。次にサブCPU115はS1107に処理を進め、リカバリブートコード1 510のインタフェース変換を行い、SPIからI2Cのインタフェース変換を行い、サブCPU2 126にリカバリブートコード1 510を送信する。次にサブCPU2 126は処理をS1108に進め、リカバリブートコード1 510をSRAM305に上書きする。次にサブCPU2 126は処理をS1109に進め、暗号処理部308によってリカバリブートコード1 510のハッシュ値を計算する。そして、サブCPU2 126は処理をS1110に進め、S1106のハッシュ値とS1109のハッシュ値とを比較する。S1106のハッシュ値とS1109のハッシュ値とが一致した場合(S1110でYES)はサブCPU2 126は処理をS1111に進め、GPIO303を制御して「Hi」レベルのリセット信号129を出力する。 Subsequently, the sub CPU 2 126 advances the processing to S1106, and the encryption processing unit 308 again decrypts the signature with the public key attached to the sub CPU FW504 to obtain a hash value. Next, the sub CPU 115 proceeds to S1107, performs interface conversion of the recovery boot code 1 510, performs interface conversion from SPI to I2C, and transmits the recovery boot code 1 510 to the sub CPU 2 126. Next, the sub CPU 2 126 advances the process to S1108 and overwrites the recovery boot code 1 510 on the SRAM 305. Next, the sub CPU 2 126 advances the process to S1109, and the encryption processing unit 308 calculates the hash value of the recovery boot code 1 510. Then, the sub CPU 2 126 advances the process to S1110 and compares the hash value of S1106 with the hash value of S1109. When the hash value of S1106 and the hash value of S1109 match (YES in S1110), the sub CPU 2 126 advances the process to S1111 and controls GPIO 303 to output a "Hi" level reset signal 129.

以上説明した様に、本実施形態に係るMFP1101は、メインCPU101およびHDD制御部124のCPUコア401において、各々のROMのブートコードの改竄検知を行う。また、検証が不一致におけるブートコードのリカバリ処理において、サブCPU115と各々のFLASH ROMとの間の接続インタフェースにおいて、異なるプロトコルの場合もインタフェース変換を行う。これによって、異なるプロトコルを用いるFLASH ROMを用いたリカバリ対応処理が可能となる。 As described above, the MFP 1101 according to the present embodiment detects tampering with the boot code of each ROM in the CPU core 401 of the main CPU 101 and the HDD control unit 124. Further, in the boot code recovery process when the verification is inconsistent, the interface conversion is performed even in the case of different protocols in the connection interface between the sub CPU 115 and each FLASH ROM. This enables recovery-compatible processing using FLASH ROMs that use different protocols.

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

1:MFP、101:メインCPU、112:FLASH ROM、115:サブCPU、117:リセット信号 1: MFP, 101: Main CPU, 112: FLASH ROM, 115: Sub CPU, 117: Reset signal

Claims (17)

情報処理装置であって、
少なくとも1つのコントローラと、複数のプロセッサと、前記複数のプロセッサが実行する複数のプログラムを格納する少なくとも1つの第1のメモリと、前記複数のプログラムのリカバリを行うためのデータを格納する1つの第2のメモリと、を備え、
前記少なくとも1つのコントローラは、
前記少なくとも1つの第1のメモリから前記複数のプログラムを読み出す読出手段と、
前記読出手段で読み出した前記複数のプログラムの正当性を検証する検証手段と、
前記検証手段が前記複数のプログラムの少なくともいずれかの正当性が確認できなかった場合に、前記第2のメモリに格納された前記データに基づいて、前記少なくとも1つの第1のメモリに格納された、正当性が確認できなかったプログラムをリカバリするリカバリ手段と、
を備えることを特徴とする情報処理装置。
It is an information processing device
At least one controller, a plurality of processors, at least one first memory for storing a plurality of programs executed by the plurality of processors, and one first memory for storing data for recovering the plurality of programs. With 2 memories,
The at least one controller
A reading means for reading the plurality of programs from the at least one first memory, and
A verification means for verifying the validity of the plurality of programs read by the reading means, and
When the verification means cannot confirm the validity of at least one of the plurality of programs, the verification means is stored in the at least one first memory based on the data stored in the second memory. , Recovery means to recover programs whose validity could not be confirmed,
An information processing device characterized by being equipped with.
前記少なくとも1つの第1のメモリのいずれかは、前記少なくとも1つのコントローラがロードして実行することで、前記読出手段、前記検証手段、および前記リカバリ手段の少なくともいずれかとして機能させるためのプログラムをさらに格納することを特徴とする請求項1に記載の情報処理装置。 A program for causing any one of the at least one first memory to function as at least one of the reading means, the verification means, and the recovery means by being loaded and executed by the at least one controller. The information processing apparatus according to claim 1, further comprising storing. 前記少なくとも1つの第1のメモリのうちのいずれかが、前記第2のメモリとして機能することを特徴とする請求項1または2に記載の情報処理装置。 The information processing apparatus according to claim 1 or 2, wherein any one of the at least one first memory functions as the second memory. 前記リカバリ手段は、前記第2のメモリに格納された前記データに基づいて、前記正当性が確認できなかったプログラムをリカバリする場合に、前記少なくとも1つの第1のメモリと前記少なくとも1つのコントローラとの間のインタフェースに応じてプロトコル変換を行うことを特徴とする請求項1から3の何れか1項に記載の情報処理装置。 The recovery means includes the at least one first memory and the at least one controller when recovering a program whose legitimacy could not be confirmed based on the data stored in the second memory. The information processing apparatus according to any one of claims 1 to 3, wherein the protocol conversion is performed according to the interface between the two. 前記インタフェースは、Inter−Integrated Circuit(I2C)プロトコルまたはSerial Peripheral Interface(SPI)プロトコルであることを特徴とする請求項4に記載の情報処理装置。 The information processing apparatus according to claim 4, wherein the interface is an Inter-Integrated Circuit (I2C) protocol or a Serial Peripheral Interface (SPI) protocol. 前記少なくとも1つのコントローラは、
前記検証手段が前記複数のプログラムの少なくともいずれかの正当性が確認できた場合に、正当性が確認できたプログラムに対応するプロセッサに、前記正当性が確認できたプログラムのロードを促すリセット信号を送信するリセット手段を有することを特徴とする請求項1から5のいずれか1項に記載の情報処理装置。
The at least one controller
When the verification means can confirm the validity of at least one of the plurality of programs, a reset signal prompting the processor corresponding to the program whose validity has been confirmed to load the program whose validity has been confirmed is sent. The information processing apparatus according to any one of claims 1 to 5, further comprising a reset means for transmitting.
前記検証手段は、プログラムの署名から取得したハッシュ値と、前記プログラムに基づいて計算したハッシュ値とを比較することで前記プログラムの正当性を検証することを特徴とする請求項1から6のいずれか1項に記載の情報処理装置。 Any of claims 1 to 6, wherein the verification means verifies the validity of the program by comparing the hash value obtained from the signature of the program with the hash value calculated based on the program. The information processing apparatus according to item 1. 前記検証手段は、前記プログラムの署名をRSA2048またはElliptic Curve Digital Signature Algorithm(ECDSA)を用いて復号化することで前記署名から前記ハッシュ値を取得することを特徴とする請求項7に記載の情報処理装置。 The information processing according to claim 7, wherein the verification means obtains the hash value from the signature by decoding the signature of the program using RSA2048 or Elliptic Curve Digital Signature Algorithm (ECDSA). apparatus. 前記複数のプロセッサのそれぞれに対応する個別の第1のメモリが設けられることを特徴とする請求項1から8のいずれか1項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 8, wherein an individual first memory corresponding to each of the plurality of processors is provided. 前記複数のプロセッサのそれぞれに対応する個別のコントローラが設けられることを特徴とする請求項1から9のいずれか1項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 9, wherein an individual controller corresponding to each of the plurality of processors is provided. 前記リカバリ手段は、前記データで前記正当性が確認できなかったプログラムを上書きすることでリカバリを行うことを特徴とする請求項1から10のいずれか1項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 10, wherein the recovery means recovers by overwriting a program whose correctness could not be confirmed with the data. 情報処理装置であって、
前記情報処理装置の全体を制御する第1のプロセッサと、
前記第1のプロセッサが実行する第1のプログラムを格納する第1のメモリと、
記憶部のデータ入出力を制御する第2のプロセッサと、
前記第2のプロセッサが実行する第2のプログラムを格納する第2のメモリと、
コントローラと、
前記第1および第2のプログラムのリカバリを行うためのデータを格納する第3のメモリと、
を備え、
前記コントローラは、
前記第1および第2のメモリから前記第1および第2のプログラムを読み出す読出手段と、
前記読出手段で読み出した前記第1および第2のプログラムの正当性を検証する検証手段と、
前記検証手段が前記第1および第2のプログラムの少なくともいずれかの正当性が確認できなかった場合に、前記第3のメモリに格納された前記データに基づいて、前記第1および第2のプログラムの少なくともいずれかに格納された、正当性が確認できなかったプログラムをリカバリするリカバリ手段と、
を有することを特徴とする情報処理装置。
It is an information processing device
A first processor that controls the entire information processing device,
A first memory for storing a first program executed by the first processor, and
A second processor that controls the data input / output of the storage unit,
A second memory for storing a second program executed by the second processor, and
With the controller
A third memory for storing data for recovering the first and second programs, and
With
The controller
A reading means for reading the first and second programs from the first and second memories, and
Verification means for verifying the validity of the first and second programs read by the reading means, and
When the verification means cannot confirm the validity of at least one of the first and second programs, the first and second programs are based on the data stored in the third memory. A recovery method for recovering unvalidated programs stored in at least one of
An information processing device characterized by having.
前記第3のメモリは、前記コントローラがロードして実行することで、前記読出手段、前記検証手段、および前記リカバリ手段の少なくともいずれかとして機能させるためのプログラムをさらに格納することを特徴とする請求項12に記載の情報処理装置。 A claim characterized in that the third memory further stores a program for functioning as at least one of the reading means, the verification means, and the recovery means when the controller loads and executes the memory. Item 12. The information processing apparatus according to item 12. 情報処理装置の制御方法であって、
複数のプロセッサが実行する複数のプログラムを格納する少なくとも1つの第1のメモリから前記複数のプログラムをロードするロード工程と、
前記ロード工程において読み出した前記複数のプログラムの正当性を検証する検証工程と、
前記検証工程において前記複数のプログラムの少なくともいずれかの正当性が確認できなかった場合に、前記複数のプログラムのリカバリを行うためのデータを格納する1つの第2のメモリに格納された前記データに基づいて、前記少なくとも1つの第1のメモリに格納された、正当性が確認できなかったプログラムをリカバリするリカバリ工程と、
を含むことを特徴とする制御方法。
It is a control method for information processing equipment.
A loading process of loading the plurality of programs from at least one first memory for storing a plurality of programs executed by a plurality of processors.
A verification step for verifying the validity of the plurality of programs read in the loading step, and a verification step.
When the legitimacy of at least one of the plurality of programs cannot be confirmed in the verification step, the data stored in one second memory for storing the data for recovering the plurality of programs Based on this, a recovery step of recovering an unvalidated program stored in at least one first memory,
A control method characterized by including.
情報処理装置の全体を制御する第1のプロセッサと、
前記第1のプロセッサが実行する第1のプログラムを格納する第1のメモリと、
記憶部のデータ入出力を制御する第2のプロセッサと、
前記第2のプロセッサが実行する第2のプログラムを格納する第2のメモリと、
コントローラと、
前記第1および第2のプログラムのリカバリを行うためのデータを格納する第3のメモリと、
を備える情報処理装置の制御方法であって、
前記第1および第2のメモリから前記第1および第2のプログラムを読み出す読出工程と、
前記読出工程において読み出した前記第1および第2のプログラムの正当性を検証する検証工程と、
前記検証工程において前記第1および第2のプログラムの少なくともいずれかの正当性が確認できなかった場合に、前記第3のメモリに格納された前記データに基づいて、前記第1および第2のプログラムの少なくともいずれかに格納された、正当性が確認できなかったプログラムをリカバリするリカバリ工程と、
を含むことを特徴とする制御方法。
The first processor that controls the entire information processing device,
A first memory for storing a first program executed by the first processor, and
A second processor that controls the data input / output of the storage unit,
A second memory for storing a second program executed by the second processor, and
With the controller
A third memory for storing data for recovering the first and second programs, and
It is a control method of an information processing device provided with
A read step of reading the first and second programs from the first and second memories, and
A verification step for verifying the validity of the first and second programs read in the reading step, and
When the validity of at least one of the first and second programs cannot be confirmed in the verification step, the first and second programs are based on the data stored in the third memory. A recovery process that recovers unvalidated programs stored in at least one of
A control method characterized by including.
コンピュータを請求項1から11のいずれか1項に記載の情報処理装置として動作させるためのプログラム。 A program for operating a computer as the information processing device according to any one of claims 1 to 11. コンピュータを請求項12または13に記載の情報処理装置として動作させるためのプログラム。 A program for operating a computer as the information processing device according to claim 12 or 13.
JP2019093134A 2019-05-16 2019-05-16 Information processing system, control method, and program Pending JP2020187649A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019093134A JP2020187649A (en) 2019-05-16 2019-05-16 Information processing system, control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019093134A JP2020187649A (en) 2019-05-16 2019-05-16 Information processing system, control method, and program

Publications (1)

Publication Number Publication Date
JP2020187649A true JP2020187649A (en) 2020-11-19

Family

ID=73221836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019093134A Pending JP2020187649A (en) 2019-05-16 2019-05-16 Information processing system, control method, and program

Country Status (1)

Country Link
JP (1) JP2020187649A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11893397B2 (en) 2021-10-01 2024-02-06 Fujitsu Limited Non-transitory computer-readable recording medium, control method, and information processing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11893397B2 (en) 2021-10-01 2024-02-06 Fujitsu Limited Non-transitory computer-readable recording medium, control method, and information processing device

Similar Documents

Publication Publication Date Title
JP6226709B2 (en) Image forming apparatus, control method therefor, and program
JP2020177539A (en) Information processing device and control method thereof
US8290159B2 (en) Data recovery method, image processing apparatus, controller board, and data recovery program
JP6362483B2 (en) Information processing apparatus, information processing method, and program
JP7100502B2 (en) Information processing equipment, its control method, and programs
JP7170482B2 (en) Information processing device, its control method, and program
JP2018022985A (en) Information processing apparatus, control method of the same, and program
JP4511264B2 (en) Image forming apparatus and information output method of the image forming apparatus
JP2020187649A (en) Information processing system, control method, and program
JP2009160832A (en) Printer, multifunctional machine, and printing control method
JP7286381B2 (en) Information processing device and its control method
JP7321795B2 (en) Information processing device, information processing method and program
US20230103698A1 (en) Information processing apparatus and control method therefor
JP5000346B2 (en) Image processing apparatus, image processing method, program, and recording medium
JP2009033539A (en) Image forming apparatus
KR102467636B1 (en) Information processing apparatus, method of controlling information processing apparatus, and storage medium
JP2008171041A (en) Image forming device, start up method of image forming device, control device, and start up method of extension unit
JP7289641B2 (en) Information processing device and its control method
JP2021089607A (en) Information processing apparatus
JP2006293833A (en) Image processing apparatus, image processing method, and program
JP2021111916A (en) Information processing device and program restoration method
US12099851B2 (en) Information processing apparatus and method for controlling information processing apparatus
JP5223493B2 (en) Information communication system and its authentication program
US20230273798A1 (en) Information processing apparatus and method for controlling information processing apparatus
JP2020154601A (en) Information processing device and its control method, and program

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113