JP2020154601A - Information processing device and its control method, and program - Google Patents

Information processing device and its control method, and program Download PDF

Info

Publication number
JP2020154601A
JP2020154601A JP2019051510A JP2019051510A JP2020154601A JP 2020154601 A JP2020154601 A JP 2020154601A JP 2019051510 A JP2019051510 A JP 2019051510A JP 2019051510 A JP2019051510 A JP 2019051510A JP 2020154601 A JP2020154601 A JP 2020154601A
Authority
JP
Japan
Prior art keywords
control means
boot program
detection process
information processing
program
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
JP2019051510A
Other languages
Japanese (ja)
Inventor
鈴木 勝也
Katsuya Suzuki
勝也 鈴木
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 JP2019051510A priority Critical patent/JP2020154601A/en
Publication of JP2020154601A publication Critical patent/JP2020154601A/en
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

To solve the problem that a function assigned to an SOC does not correctly operate when one SOC starts up abnormally, even when another SOC starts up normally, when a control system controlling an MFP is controlled by a plurality of SOCs.SOLUTION: An information processing device comprises at least first control means and second control means. When the information processing device is activated, the first control means instructs to the second control means to execute detection processing of alteration of a boot program executed by the second control means. When the result of the detection processing executed by the second control means in response to the instruction indicates that there is no alteration, the second control means is activated by the first control means. When the result of the detection processing indicates that there is the alteration, the first control means transmits the boot program executed by the second control means to the second control means.SELECTED DRAWING: Figure 6

Description

本発明は、情報処理装置とその制御方法、及びプログラムに関するものである。 The present invention relates to an information processing device, a control method thereof, and a program.

近年、ネットワークに接続された情報機器のセキュリティの脆弱性(セキュリティホール)を突いて、情報機器内のファームウェアが改ざんされる問題に対処することが重要となっている。MFP(Multi Function Peripheral、以下、「複合機」)においても、ネットワークに接続された状態でのクラウドサービスが展開されており、情報のセキュリティ対策が求められている。 In recent years, it has become important to address the problem of tampering with the firmware in information devices by exploiting security vulnerabilities (security holes) in information devices connected to the network. In MFPs (Multifunction Peripherals, hereinafter referred to as "multifunction devices"), cloud services are being developed while connected to a network, and information security measures are required.

その情報のセキュリティ対策の一環として、セキュアブートが導入されてきている。セキュアブートとは、情報機器の起動時に、デジタル署名されていない、或いは、デジタル署名がされていても第三者により改ざんされたファームウェアを実行しないようにする技術である。このようにブートローダの書き換え(改ざん)を検出し、改ざんされていないかをチェックし終えてから起動することで、第三者により改造されたプログラムによる不正な動作を不可能とする。例えば特許文献1には、CPUのファームウェアに異常が検知された場合に、そのファームウェアを修復するような装置構成及び制御方法が提案されている。 Secure boot has been introduced as part of the security measures for that information. Secure boot is a technology that prevents the execution of firmware that has not been digitally signed or has been digitally signed but has been tampered with by a third party when the information device is started. By detecting the rewriting (tampering) of the boot loader in this way, checking whether it has been tampered with, and then starting it, it is possible to make unauthorized operation by a program modified by a third party impossible. For example, Patent Document 1 proposes a device configuration and a control method for repairing the firmware when an abnormality is detected in the firmware of the CPU.

特開2014−179047号公報JP-A-2014-179047

しかしながら上記従来の方式では、ファームウェアの異常検知しかしていないため、CPUの立ち上がり時(以降、ブート時)に使用されるブートプログラムが改ざんされていた場合に対応できない。従って、ブートプログラムが改ざんされた場合には、異常な動作をしてしまう可能性がある。 However, since the above-mentioned conventional method only detects an abnormality in the firmware, it cannot cope with the case where the boot program used at the time of starting the CPU (hereinafter, at the time of booting) is tampered with. Therefore, if the boot program is tampered with, it may behave abnormally.

また、MFPを制御する制御システムが、複数のSOC(System On Chip)で制御されている場合に、1つのSOCが正常に立ち上がっても、他のSOCが異常に立ち上がってしまうと、そのSOCが担当する機能(例えば、MFPの画像スキャン機能)が正しく動作しないなどの問題が生じる可能性がある。 Further, when the control system that controls the MFP is controlled by a plurality of SOCs (System On Chips), even if one SOC starts up normally, if the other SOCs start up abnormally, the SOC will start up. Problems such as the function in charge (for example, the image scanning function of the MFP) not working properly may occur.

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

本発明の目的は、複数の制御手段を備える情報処理装置において、複数の制御手段が正常に立ち上がった場合にのみ、その装置が起動できるようにすることで、上記課題を解決する技術を提供することにある。 An object of the present invention is to provide a technique for solving the above problems by enabling an information processing device provided with a plurality of control means to be activated only when the plurality of control means are normally started. There is.

上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
少なくとも第1制御手段と第2制御手段とを有する情報処理装置であって、
前記情報処理装置が起動されると前記第1制御手段は、前記第2制御手段に対して、前記第2制御手段が実行するブートプログラムの改ざんの検知処理を実行するように指示し、
前記指示に応じて前記第2制御手段で実行された前記検知処理の結果が改ざん無しを示す場合は、前記第1制御手段により前記第2制御手段を起動させ、
前記検知処理の結果が改ざん有りを示す場合は、前記第1制御手段は、前記第2制御手段が実行するブートプログラムを前記第2制御手段に送信することを特徴とする。
In order to achieve the above object, the information processing apparatus according to one aspect of the present invention has the following configuration. That is,
An information processing device having at least a first control means and a second control means.
When the information processing device is activated, the first control means instructs the second control means to execute a tampering detection process of the boot program executed by the second control means.
When the result of the detection process executed by the second control means in response to the instruction indicates that there is no falsification, the first control means activates the second control means.
When the result of the detection process indicates that the detection process has been tampered with, the first control means transmits a boot program executed by the second control means to the second control means.

本発明によれば、複数の制御手段を備える情報処理装置において、複数の制御手段が正常に立ち上がった場合にのみ、その装置が起動できるようにできる。また、ある制御手段が安全に起動できない場合は、その制御手段のブートプログラムを修復して、安全に起動させることができる。 According to the present invention, in an information processing device including a plurality of control means, the device can be activated only when the plurality of control means are normally started. If a certain control means cannot be started safely, the boot program of the control means can be repaired and started safely.

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

添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
実施形態1に係る複合機のハードウェア構成を説明するブロック図。 実施形態1に係る複合機が有するソフトウェアモジュールを説明するブロック図。 起動シーケンスを説明する図。 実施形態1に係る複合機のコントローラとスキャナ及びプリンタのそれぞれの制御構成を説明するブロック図。 複合機とネットワークを介して接続されるサーバを含むシステム構成図。 実施形態1に係る複合機のメインコントローラによる制御処理を説明するフローチャート。 実施形態1に係るスキャナコントローラによる処理を説明するフローチャート。 実施形態2に係る複合機のメインコントローラによる制御処理を説明するフローチャート。 本発明の実施形態2に係るサーバによる処理を説明するフローチャート。
The accompanying drawings are included in the specification, form a part thereof, show an embodiment of the present invention, and are used together with the description to explain the principle of the present invention.
The block diagram explaining the hardware configuration of the multifunction device which concerns on Embodiment 1. FIG. The block diagram explaining the software module which the multifunction device which concerns on Embodiment 1 has. The figure explaining the activation sequence. FIG. 3 is a block diagram illustrating each control configuration of the controller, scanner, and printer of the multifunction device according to the first embodiment. System configuration diagram including a server connected to a multifunction device via a network. The flowchart explaining the control process by the main controller of the multifunction device which concerns on Embodiment 1. The flowchart explaining the process by the scanner controller which concerns on Embodiment 1. The flowchart explaining the control process by the main controller of the multifunction device which concerns on Embodiment 2. The flowchart explaining the processing by the server which concerns on Embodiment 2 of this invention.

以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これら複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一もしくは同様の構成に同一の参照番号を付し、重複した説明は省略する。尚、以下の実施形態では、本発明に係る情報処理装置の一例を複合機を例に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The following embodiments do not limit the invention according to the claims. Although a plurality of features are described in the embodiment, not all of the plurality of features are essential to the invention, and the plurality of features may be arbitrarily combined. Further, in the attached drawings, the same or similar configurations are designated by the same reference numbers, and duplicate description is omitted. In the following embodiment, an example of the information processing device according to the present invention will be described by taking a multifunction device as an example.

[実施形態1]
図1は、実施形態1に係る複合機100のハードウェア構成を説明するブロック図である。
[Embodiment 1]
FIG. 1 is a block diagram illustrating a hardware configuration of the multifunction device 100 according to the first embodiment.

コントローラ110は、複合機100の制御を行うためのハードウェアモジュールを有する。実施形態1では、コントローラ110は半導体チップとして構成されているものとして説明する。クロック生成部103は、クロック信号を生成して複合機100の各モジュールに適した周波数のクロック信号(外部クロック)を供給する。実施形態1では、クロック生成部103は、クロック信号105をコントローラ110内のPLL(Phase Locked Loop)123に供給する。尚、このクロック信号105の周波数はクロック制御信号107によって変更可能である。 The controller 110 has a hardware module for controlling the multifunction device 100. In the first embodiment, the controller 110 will be described as being configured as a semiconductor chip. The clock generation unit 103 generates a clock signal and supplies a clock signal (external clock) having a frequency suitable for each module of the multifunction device 100. In the first embodiment, the clock generation unit 103 supplies the clock signal 105 to the PLL (Phase Locked Loop) 123 in the controller 110. The frequency of the clock signal 105 can be changed by the clock control signal 107.

クロック制御部121は、PLL123を内部クロック制御信号108で制御する。これによりPLL123は、クロック信号105の周波数を逓倍し、周波数が逓倍されたクロック信号をコントローラ110の各モジュールに供給する。クロック制御部121は、コントローラ110の起動時や動作時に、PLL123に対して逓倍の設定を変更することで、PLL123が各モジュールに最適な周波数のクロック(内部クロック)を供給するように制御を行う。またクロック制御部121は、各モジュールごとに、クロックをゲートして、クロック信号の供給を停止させることができる。 The clock control unit 121 controls the PLL 123 with the internal clock control signal 108. As a result, the PLL 123 multiplies the frequency of the clock signal 105 and supplies the frequency-multiplied clock signal to each module of the controller 110. The clock control unit 121 controls the PLL 123 to supply a clock (internal clock) having an optimum frequency to each module by changing the multiplication setting with respect to the PLL 123 when the controller 110 is started or operated. .. Further, the clock control unit 121 can gate the clock for each module to stop the supply of the clock signal.

リセット生成部104は、リセット信号106を生成して出力することにより、複合機100の各モジュールへリセットを掛けたり解除したりする半導体チップである。図1ではコントローラ110へ供給するリセット信号106しか図示していないが、フラッシュメモリ145、LED147、スキャナ141やプリンタ142などのモジュールにも接続されているものとする。 The reset generation unit 104 is a semiconductor chip that resets and releases each module of the multifunction device 100 by generating and outputting a reset signal 106. Although only the reset signal 106 supplied to the controller 110 is shown in FIG. 1, it is assumed that it is also connected to modules such as the flash memory 145, the LED 147, the scanner 141, and the printer 142.

複合機100の電源がオンされると、一定時間(例えば、供給電源電圧が安定するまで)リセット信号106のリセット状態を保持した後、リセット信号106を解除状態にしてコントローラ110のリセットを解除する。リセット信号106がアサートされている状態がリセット状態であり、リセット信号106がデアサートされている状態がリセット信号106の解除状態である。コントローラ110のリセットが解除されると、リセット制御部122は、コントローラ110内部の各モジュールのリセット制御を行う。このリセット制御は、コントローラ110の起動時や動作時に、各モジュールをリセット状態にしたり、リセット解除状態にする制御を指す。 When the power of the multifunction device 100 is turned on, the reset state of the reset signal 106 is held for a certain period of time (for example, until the supply power supply voltage stabilizes), and then the reset signal 106 is released to release the reset of the controller 110. .. The state in which the reset signal 106 is asserted is the reset state, and the state in which the reset signal 106 is deasserted is the release state of the reset signal 106. When the reset of the controller 110 is released, the reset control unit 122 performs reset control of each module inside the controller 110. This reset control refers to the control that puts each module in the reset state or the reset release state when the controller 110 is started or operated.

CPU101は、複合機100のソフトウェアプログラムを実行し、機器全体の制御を行う。RAM102は、CPU101が複合機100を制御する際に、プログラムや、データの一時的な格納などに使用される揮発性のランダムアクセスメモリである。HDD144はハードディスクドライブであり、一部のアプリケーションや各種データを格納する。このHDD144は、CPU101が実行するJavaプログラム214(図2)を格納している。尚、Javaプログラム214については後述する(以下、BIOS210などについても同様)。フラッシュメモリ145は、複合機100の固定パラメータ等を格納している。またフラッシュメモリ145は、CPU101が実行するBIOS210(図2)を格納している。更にフラッシュメモリ145は、CPU101が実行するローダ211、カーネル212、Nativeプログラム213(いずれも図2)を格納する。尚、HDD144とフラッシュメモリ145は同一のストレージモジュールであっても良い。 The CPU 101 executes the software program of the multifunction device 100 and controls the entire device. The RAM 102 is a volatile random access memory used for temporarily storing programs and data when the CPU 101 controls the multifunction device 100. HDD 144 is a hard disk drive and stores some applications and various data. The HDD 144 stores a Java program 214 (FIG. 2) executed by the CPU 101. The Java program 214 will be described later (hereinafter, the same applies to the BIOS 210 and the like). The flash memory 145 stores fixed parameters and the like of the multifunction device 100. Further, the flash memory 145 stores the BIOS 210 (FIG. 2) executed by the CPU 101. Further, the flash memory 145 stores the loader 211 executed by the CPU 101, the kernel 212, and the Native program 213 (all of FIG. 2). The HDD 144 and the flash memory 145 may be the same storage module.

CPU111は、CPU101が実行するソフトウェアプログラムの改ざんを検知する改ざん検知ソフトウェアプログラムを実行する他、CPU101と分担して複合機100の一部の制御を行う。ROM112は、不揮発性のリードオンリーメモリであり、CPU111により実行される改ざん検知ソフトウェアプログラムや後述の公開鍵などを格納している。またROM112は、CPU111が実行するブートプログラム209を格納している。ここでROM112は、外部からのI/Fから書き換えられないように論理回路で構成されたマスクROM、もしくは製造時に一度だけ書き込みが可能なOTP(One Time Programmable)ROMで構成されている。RAM113は、揮発性のランダムアクセスメモリであり、CPU111が複合機100を制御する際に、プログラムや一時的なデータの格納などに使用される。尚、RAM102とRAM113は同一のモジュールであっても良い。 The CPU 111 executes a falsification detection software program that detects falsification of the software program executed by the CPU 101, and also shares a part with the CPU 101 to control a part of the multifunction device 100. The ROM 112 is a non-volatile read-only memory, and stores a tampering detection software program executed by the CPU 111, a public key described later, and the like. Further, the ROM 112 stores a boot program 209 executed by the CPU 111. Here, the ROM 112 is composed of a mask ROM configured by a logic circuit so as not to be rewritten from an external I / F, or an OTP (One Time Programmable) ROM that can be written only once at the time of manufacture. The RAM 113 is a volatile random access memory, and is used for storing programs and temporary data when the CPU 111 controls the multifunction device 100. The RAM 102 and the RAM 113 may be the same module.

電源制御部120は、コントローラ110の各モジュールに対する電力供給を制御するIC(Integrated Circuit)である。コントローラ110(複合機100)の起動時や動作時に、各モジュール部に対して所定の電力を供給したり停止したりすることができる。スキャナI/F制御部131は、スキャナ141による原稿の読み取り制御する。プリンタI/F制御部132は、プリンタ142による印刷処理などを制御する。パネル制御部133は、タッチパネル式の操作パネル143を制御し、各種情報の表示、ユーザからの指示の入力を受け付ける。HDD制御部134は、HDD144に対してデータを読み書きする制御を行う。例えば、RAM102に格納されている画像データをシステムバス109経由でHDD144に格納することができる。フラッシュメモリ制御部135は、フラッシュメモリ145に対してデータを読み書きする制御を行う。フラッシュメモリ制御部135は、フラッシュメモリ145に格納されているプログラムを読み出してシステムバス109経由でRAM113へ展開する。ネットワークI/F制御部136は、ネットワーク146上の他のデバイスやサーバとのデータの送受信を制御する。外部ポート制御部137は、コントローラ110の入出力ポート制御部である。例えば出力ポートを制御することにより、LED147を必要に応じて点灯し、ソフトウェアやハードウェアの異常を外部に伝えることができる。画像処理部138は、スキャナ141で原稿を読み取って得られた画像データをシェーディング補正したり、プリンタ142に出力するためにハーフトーン処理やスムージング処理したりする処理部である。システムバス109は、システムバス109に接続されている各モジュールを相互に接続する。このシステムバス109を介して、CPU101やCPU111からの制御信号や各装置間のデータ信号が送受信される。 The power supply control unit 120 is an IC (Integrated Circuit) that controls the power supply to each module of the controller 110. When the controller 110 (multifunction device 100) is started or operated, a predetermined electric power can be supplied to or stopped from each module unit. The scanner I / F control unit 131 controls the scanning of the original by the scanner 141. The printer I / F control unit 132 controls printing processing and the like by the printer 142. The panel control unit 133 controls the touch panel type operation panel 143 to display various information and receive input of instructions from the user. The HDD control unit 134 controls the HDD 144 to read and write data. For example, the image data stored in the RAM 102 can be stored in the HDD 144 via the system bus 109. The flash memory control unit 135 controls reading and writing data to and from the flash memory 145. The flash memory control unit 135 reads the program stored in the flash memory 145 and expands it to the RAM 113 via the system bus 109. The network I / F control unit 136 controls the transmission and reception of data with other devices and servers on the network 146. The external port control unit 137 is an input / output port control unit of the controller 110. For example, by controlling the output port, the LED 147 can be turned on as needed, and an abnormality in software or hardware can be transmitted to the outside. The image processing unit 138 is a processing unit that performs shading correction on the image data obtained by scanning the original with the scanner 141, and performs halftone processing and smoothing processing for outputting to the printer 142. The system bus 109 connects each module connected to the system bus 109 to each other. Control signals from the CPU 101 and the CPU 111 and data signals between the devices are transmitted and received via the system bus 109.

図2は、実施形態1に係る複合機100が有するソフトウェアモジュールを説明するブロック図である。これらのソフトウェアはCPU101又はCPU111が実行するものとして説明する。 FIG. 2 is a block diagram illustrating a software module included in the multifunction device 100 according to the first embodiment. These softwares will be described as being executed by the CPU 101 or the CPU 111.

通信管理部207は、ネットワーク146に接続されるネットワークI/F制御部136を制御し、ネットワーク146を介して外部とデータの送受信を行う。UI制御部203は、パネル制御部133を介して操作パネル143に入力された指示内容を受け取り、入力に応じた処理や操作パネル143への画面出力を行う。 The communication management unit 207 controls the network I / F control unit 136 connected to the network 146, and transmits / receives data to / from the outside via the network 146. The UI control unit 203 receives the instruction content input to the operation panel 143 via the panel control unit 133, performs processing according to the input, and outputs a screen to the operation panel 143.

ブートプログラム209は、複合機100の電源がオンされるとCPU111で実行されるプログラムであり、起動に関わる処理としてコントローラ110に対して起動シーケンスを実行する。このブートプログラム209は、BIOS210の改ざん検知を行うBIOS改ざん検知部201を有する。BIOS210は、CPU111によるブートプログラム209の実行後に、CPU101で実行されるプログラムであり、起動に関わる処理を行う他に、ローダ211の改ざん検知を行うローダ改ざん検知部202を有する。 The boot program 209 is a program executed by the CPU 111 when the power of the multifunction device 100 is turned on, and executes a boot sequence for the controller 110 as a process related to booting. This boot program 209 has a BIOS tampering detection unit 201 that detects tampering with the BIOS 210. The BIOS 210 is a program executed by the CPU 101 after the boot program 209 is executed by the CPU 111, and has a loader tampering detection unit 202 that detects tampering with the loader 211 in addition to performing processing related to startup.

ローダ211は、BIOS210の処理が終わった後にCPU101で実行されるプログラムであり、起動に関わる処理を行う他に、カーネルの改ざん検知を行うカーネル改ざん検知部204を有する。カーネル212は、ローダ211の処理が終わった後にCPU101で実行されるプログラムであり、起動に関わる処理を行う他に、Nativeプログラム213の改ざん検知を行うプログラム改ざん検知部205を有する。 The loader 211 is a program executed by the CPU 101 after the processing of the BIOS 210 is completed, and has a kernel tampering detection unit 204 that detects kernel tampering in addition to performing processing related to booting. The kernel 212 is a program executed by the CPU 101 after the processing of the loader 211 is completed, and has a program tampering detection unit 205 that detects tampering with the Native program 213 in addition to performing processing related to startup.

Nativeプログラム213は、CPU101で実行されるプログラムであり、複合機100のJavaプログラム214と連携して各機能を提供する複数のプログラムを有している。これら複数のプログラムは、例えば、スキャナIF制御部131やプリンタIF制御部132を制御するプログラムや起動プログラムなどを含む。この起動プログラムは、カーネル212によってNativeプログラム213の中から呼び出され、起動処理を行う。またNativeプログラム213は、プログラムの中の一つとしてJavaプログラムの改ざん検知を行うJavaプログラム改ざん検知部206を有する。Javaプログラム214は、CPU101で実行されるプログラムであり、複合機100のNativeプログラム213と連携して各機能を提供するプログラム(例えば、操作パネル143に画面を表示するプログラムなど)である。 The Native program 213 is a program executed by the CPU 101, and has a plurality of programs that provide each function in cooperation with the Java program 214 of the multifunction device 100. These plurality of programs include, for example, a program for controlling the scanner IF control unit 131 and the printer IF control unit 132, a start program, and the like. This boot program is called from the Native program 213 by the kernel 212 to perform the boot process. Further, the Native program 213 has a Java program tampering detection unit 206 that detects tampering with the Java program as one of the programs. The Java program 214 is a program executed by the CPU 101, and is a program that provides each function in cooperation with the Native program 213 of the multifunction device 100 (for example, a program that displays a screen on the operation panel 143).

次に、複合機の起動シーケンスについて図3を参照して説明する。 Next, the activation sequence of the multifunction device will be described with reference to FIG.

図3(A)は、改ざん検知を行わずに複合機が起動する順序を示す起動シーケンス模式図である。 FIG. 3A is a schematic start-up sequence diagram showing the order in which the multifunction devices are started without detecting falsification.

ブートプログラムがBIOSを起動し、BIOSがローダを起動し、ローダがカーネルを起動し、カーネルがNativeプログラムの中から起動プログラムを起動する。そして起動プログラムの中でJavaプログラムが起動され、以降はNativeプログラムとJavaプログラムが連携して複合機の有する各機能を提供する。 The boot program boots the BIOS, the BIOS boots the loader, the loader boots the kernel, and the kernel launches the boot program from within the Native program. Then, the Java program is started in the start program, and thereafter, the Native program and the Java program cooperate to provide each function of the multifunction device.

図3(B)は、ブートプログラム209からBIOS210、ローダ211、カーネル212、Nativeプログラム213、Javaプログラム214が、それぞれ改ざん検知を行う処理の流れを表した起動シーケンスの模式図である。図中、各プログラムの保存場所、デジタル署名(以下、単に「署名」と呼ぶ)と公開鍵の保存場所をも表している。 FIG. 3B is a schematic diagram of a boot sequence showing the flow of processing in which the boot program 209 to the BIOS 210, the loader 211, the kernel 212, the Native program 213, and the Java program 214 each perform tampering detection. In the figure, the storage location of each program, the digital signature (hereinafter, simply referred to as "signature") and the storage location of the public key are also shown.

ここで署名とは、例えば正規のプログラム(データ列)を所定のハッシュ関数によってハッシュ値(メッセージ・ダイジェスト)に変換し、公開鍵に対応する秘密鍵でハッシュ値を暗号化したものである。この暗号化されたハッシュ値を公開鍵で復号することで正規のプログラムのハッシュ値を求める。そして、改ざんの有無の検証対象であるプログラムを前述のハッシュ関数によってハッシュ値に変換する。そして、これら2つのハッシュ値を比較する。そして、2つのハッシュ値が等しければ、検証対象のプログラムは正規のプログラムから改ざんされていないと判定できる。一方、もし2つのハッシュ値が一致しなければ、検証対象のプログラムは正規のプログラムから改ざんされていると判定できる。 Here, the signature is, for example, a legitimate program (data string) converted into a hash value (message digest) by a predetermined hash function, and the hash value is encrypted with a private key corresponding to the public key. The hash value of a legitimate program is obtained by decrypting this encrypted hash value with a public key. Then, the program to be verified for falsification is converted into a hash value by the above-mentioned hash function. Then, these two hash values are compared. Then, if the two hash values are equal, it can be determined that the program to be verified has not been tampered with from the regular program. On the other hand, if the two hash values do not match, it can be determined that the program to be verified has been tampered with from the legitimate program.

このように署名を用いて検証対象のプログラムの改ざんの有無を調べる方法を、以降では「署名検証」と呼ぶ。また、プログラムが改ざんされていない(検証対象のプログラムが正規のものである)場合は、署名検証に成功すると呼び、プログラムが改ざんされている(検証対象のプログラムが正規のものでない)場合は、署名検証に失敗すると呼ぶ。 The method of checking for falsification of the program to be verified by using the signature in this way is hereinafter referred to as "signature verification". Also, if the program has not been tampered with (the program to be verified is legitimate), it is said that the signature verification is successful, and if the program has been tampered with (the program to be verified is not legitimate), it is called successful. Called signature verification failed.

実施形態1では、プログラムの改ざんの有無を判定する方法として、このような署名及び公開鍵を用いる方法を採るが、改ざんの有無を判定する他の方法でも良い。 In the first embodiment, as a method of determining whether or not the program has been tampered with, a method using such a signature and a public key is adopted, but another method of determining whether or not the program has been tampered with may be used.

ROM112には、ブートプログラム209の他にBIOS署名検証用の公開鍵300が含まれる。 The ROM 112 includes a public key 300 for BIOS signature verification in addition to the boot program 209.

フラッシュメモリ145には、BIOS210、ローダ211、カーネル212、Nativeプログラム213、Javaプログラム214の他に、次のものも含まれている。暗号化されたBIOS署名302、ローダ検証用公開鍵303、暗号化されたローダ署名304、カーネル検証用公開鍵305、暗号化されたカーネル署名306、Nativeプログラム検証用公開鍵307である。更に、暗号化されたNativeプログラム署名308、Javaプログラム検証用公開鍵309、暗号化されたJavaプログラム署名310もフラッシュメモリ145に記憶されている。これらの公開鍵と署名は、予め複合機100を製造する段階でプログラムに対して付与されたものとする。 In addition to the BIOS 210, the loader 211, the kernel 212, the Native program 213, and the Java program 214, the flash memory 145 also includes the following. The encrypted BIOS signature 302, the loader verification public key 303, the encrypted loader signature 304, the kernel verification public key 305, the encrypted kernel signature 306, and the Native program verification public key 307. Further, the encrypted Native program signature 308, the Java program verification public key 309, and the encrypted Java program signature 310 are also stored in the flash memory 145. It is assumed that these public keys and signatures are given to the program in advance at the stage of manufacturing the multifunction device 100.

改ざん検知部201,202,204,205,206が、次に起動するプログラムが改ざんされているかどうかを検証し、そのプログラムが改ざんされていなければ、そのプログラムを起動する。このようにプログラムの改ざん検知及びプログラムの起動を順次行う起動シーケンスに従い複合機100は起動する。 The tampering detection units 201, 202, 204, 205, 206 verify whether the program to be started next has been tampered with, and if the program has not been tampered with, start the program. In this way, the multifunction device 100 starts according to the start sequence in which the program tampering detection and the program start are sequentially performed.

以上のようにして、複合機全体の動作を管理するコントローラ110のブートプログラムなどの改ざん検知を行う。実施形態1では、コントローラ110のブートプログラムの改ざんの検知を行うのみならず、スキャナ141やプリンタ142の動作を制御するそれぞれのコントローラについても、ブートプログラムの改ざん検知を行う例で説明する。尚、以下では、説明を簡単にするために、各プログラムで最初に起動されるブートプログラムの改ざん検知のみについて説明する。 As described above, falsification of the boot program of the controller 110 that manages the operation of the entire multifunction device is detected. In the first embodiment, not only the tampering of the boot program of the controller 110 is detected, but also each controller that controls the operation of the scanner 141 and the printer 142 will be described with an example of detecting the tampering of the boot program. In the following, for the sake of simplicity, only the tampering detection of the boot program that is started first by each program will be described.

図4は、実施形態1に係る複合機100のコントローラ110とスキャナ141及びプリンタ142のそれぞれの制御構成を説明するブロック図である。尚、コントローラ110において、ここでの説明が不要なものについては表示を省略している。 FIG. 4 is a block diagram illustrating each control configuration of the controller 110, the scanner 141, and the printer 142 of the multifunction device 100 according to the first embodiment. In the controller 110, the display is omitted for those that do not need to be described here.

コントローラ110は、ROM112に複数で、且つ同一のブートプログラムを格納している。CPU111によってブートプログラムの改ざん検知を行う際には、予め決められた場所に格納された第一のブートプログラムに対して改ざん検知を行う。第一のブートプログラムが改ざんされていると検知された場合は、第二のブートプログラムに対して改ざん検知を行う。第二のブートプログラムが改ざんされていないと検知された場合は、第一のブートプログラムを第二のブートプログラムで上書き処理を行うことで修復する。 The controller 110 stores a plurality of the same boot programs in the ROM 112. When the CPU 111 detects tampering with the boot program, it detects tampering with the first boot program stored in a predetermined location. When it is detected that the first boot program has been tampered with, tampering is detected for the second boot program. If it is detected that the second boot program has not been tampered with, it is repaired by overwriting the first boot program with the second boot program.

これによりコントローラ110は安全に起動することができる。このように、ブートプログラムの改ざん検知を行い、改ざんされている場合に第二のブートプログラムで修復し、コントローラ110が安全に立ち上がるような制御方法を、実施形態ではセキュアブートと呼ぶ。 As a result, the controller 110 can be started safely. In the embodiment, a control method that detects tampering with the boot program, repairs it with a second boot program if it has been tampered with, and causes the controller 110 to start up safely is called secure boot.

スキャナ141は、スキャナコントローラ41とスキャナエンジン441とを含んでいる。スキャナエンジン441は、実際に原稿を読み込んでデジタルデータを生成する部分である。スキャナコントローラ41は、スキャナI/F制御部131を介してコントローラ110と接続されている。スキャナコントローラ41は、コントローラ110と同様に、スキャナコントローラ41全体を制御するCPU411と、スキャナコントローラ用のブートプログラムの改ざん検知を行うCPU413の2つのCPUを持つ。CPU411は、RAM412を使用して不揮発メモリ414からロードされたブートプログラムを実行する。CPU413は、RAM415を使用して不揮発メモリ414から読み出されたブートプログラムの改ざん検知を行う。スキャナ制御部416は、スキャナコントローラ41とスキャナエンジン441とを接続し、スキャナエンジン441からのデジタルデータの受信やスキャナエンジン441の動作制御信号などをやり取りする。 The scanner 141 includes a scanner controller 41 and a scanner engine 441. The scanner engine 441 is a part that actually reads a document and generates digital data. The scanner controller 41 is connected to the controller 110 via the scanner I / F control unit 131. Like the controller 110, the scanner controller 41 has two CPUs, a CPU 411 that controls the entire scanner controller 41 and a CPU 413 that detects tampering with the boot program for the scanner controller. The CPU 411 uses the RAM 412 to execute the boot program loaded from the non-volatile memory 414. The CPU 413 uses the RAM 415 to detect tampering with the boot program read from the non-volatile memory 414. The scanner control unit 416 connects the scanner controller 41 and the scanner engine 441 to receive digital data from the scanner engine 441 and exchange operation control signals of the scanner engine 441.

プリンタ142は、プリンタコントローラ42とプリンタエンジン442とを有している。プリンタエンジン442は、デジタルデータを受信して、実際に用紙上に画像を形成する。プリンタコントローラ42は、プリンタI/F制御部132を介してコントローラ110と接続されている。プリンタコントローラ42は、コントローラ110と同様に、プリンタコントローラ42の全体を制御するCPU421と、プリンタコントローラ用のブートプログラムの改ざん検知を行うCPU423の2つのCPUを持つ。CPU421は、RAM422を使用して、不揮発メモリ424からロードされたブートプログラムを実行する。CPU423は、RAM425を使用して、不揮発メモリ424から読み出されたブートプログラムの改ざん検知を行う。プリンタ制御部426は、プリンタコントローラ42とプリンタエンジン442とを接続し、プリンタエンジン442へのデジタルデータの送信や、プリンタエンジン442の動作制御信号などをやり取りする。 The printer 142 has a printer controller 42 and a printer engine 442. The printer engine 442 receives the digital data and actually forms an image on the paper. The printer controller 42 is connected to the controller 110 via the printer I / F control unit 132. Like the controller 110, the printer controller 42 has two CPUs, a CPU 421 that controls the entire printer controller 42 and a CPU 423 that detects tampering with the boot program for the printer controller. The CPU 421 uses the RAM 422 to execute the boot program loaded from the non-volatile memory 424. The CPU 423 uses the RAM 425 to detect tampering with the boot program read from the non-volatile memory 424. The printer control unit 426 connects the printer controller 42 and the printer engine 442, transmits digital data to the printer engine 442, and exchanges operation control signals of the printer engine 442.

ここで、スキャナコントローラ41の不揮発メモリ414、及びプリンタコントローラの不揮発メモリ424には、1つのブートプログラムしか格納されていない。これはプログラムの格納数を制限することで、各メモリの容量を削減することができ、複合機100全体のコストダウンを図るためである。 Here, only one boot program is stored in the non-volatile memory 414 of the scanner controller 41 and the non-volatile memory 424 of the printer controller. This is because the capacity of each memory can be reduced by limiting the number of stored programs, and the cost of the entire multifunction device 100 can be reduced.

一方、こうした構成の複合機100においては、スキャナコントローラ41もしくはプリンタコントローラ42の各不揮発メモリに格納されたブートプログラムが改ざんされている場合、スキャナ141、もしくはプリンタ142が正しい動作ができない可能性が高い。このため、ブートプログラムが改ざんされている場合には、スキャナ動作やプリンタ動作ができないため、一部機能の使用停止もしくは複合機100全体が使用停止に陥ってしまう。 On the other hand, in the multifunction device 100 having such a configuration, if the boot program stored in each non-volatile memory of the scanner controller 41 or the printer controller 42 is tampered with, there is a high possibility that the scanner 141 or the printer 142 cannot operate correctly. .. Therefore, if the boot program has been tampered with, the scanner operation and the printer operation cannot be performed, so that some functions are suspended or the entire multifunction device 100 is suspended.

このような場合においても、ブートプログラムを修復し、安全に起動するための方法について、図5、図6及び図7を用いて以下に説明する。尚、以下説明を簡単にするため、コントローラ110をメインコントローラと呼ぶ。 Even in such a case, a method for repairing the boot program and starting it safely will be described below with reference to FIGS. 5, 6 and 7. The controller 110 is referred to as a main controller for the sake of simplicity.

図5は、複合機100とネットワークを介して接続されるサーバ500を含むシステム構成図である。 FIG. 5 is a system configuration diagram including a server 500 connected to the multifunction device 100 via a network.

図5において、メインコントローラ110はスキャナコントローラ41に対してリセット解除などを行うため、最初に立ち上がる必要がある。またメインコントローラ110は複数のブートプログラムをROM112に格納しており、セキュアブート制御によって安全に立ち上がっているものとする。 In FIG. 5, since the main controller 110 resets and releases the scanner controller 41, it is necessary to start up first. Further, it is assumed that the main controller 110 stores a plurality of boot programs in the ROM 112 and is safely started by the secure boot control.

図6は、実施形態1に係る複合機100のメインコントローラ110による制御処理を説明するフローチャートであり、このフローチャートで示す処理は、CPU101もしくはCPU111によって実行される。いずれの制御がどちらのCPUにて行われるかについては、その都度説明する。 FIG. 6 is a flowchart illustrating a control process by the main controller 110 of the multifunction device 100 according to the first embodiment, and the process shown in this flowchart is executed by the CPU 101 or the CPU 111. Which control is performed by which CPU will be described each time.

まずS601でCPU111は、メインコントローラ110用のブートプログラムの改ざん検知を行う。次いでS602に進みCPU101を起動させ各種プログラムを実行させ、これ以降、メインコントローラ110はCPU101によって安全に動作する。 First, in S601, the CPU 111 detects tampering with the boot program for the main controller 110. Next, the process proceeds to S602 to start the CPU 101 to execute various programs, and thereafter, the main controller 110 is safely operated by the CPU 101.

次S603に進みCPU101は、スキャナコントローラ41に改ざん検知の開始を指示する通知を送信する。このときスキャナコントローラ41はリセット状態となっており、この改ざん検知の開始通知によって、図示しないリセット制御部により、スキャナコントローラ41のCPU413のみが起動される。こうしてCPU413は、不揮発メモリ414に格納されたブートプログラムの改ざん検知動作を開始する。このときスキャナコントローラ41のCPU411はまだリセット状態である。次にS604に進み、スキャナコントローラ41から改ざんが検知されなかったことを示す完了通知が来たかどうか、或いは、S605でスキャナコントローラ41でブートプログラムの改ざんを検知した旨の通知が来るかどうかを待つ。 Proceeding to the next S603, the CPU 101 transmits a notification instructing the scanner controller 41 to start tampering detection. At this time, the scanner controller 41 is in the reset state, and the reset control unit (not shown) activates only the CPU 413 of the scanner controller 41 by the start notification of the tampering detection. In this way, the CPU 413 starts the tampering detection operation of the boot program stored in the non-volatile memory 414. At this time, the CPU 411 of the scanner controller 41 is still in the reset state. Next, proceed to S604 and wait for a completion notification indicating that the scanner controller 41 has not detected tampering, or whether a notification indicating that the scanner controller 41 has detected tampering with the boot program in S605 has arrived. ..

図7は、実施形態1に係るスキャナコントローラ41による処理を説明するフローチャートであり、特に断らない限り内部CPU413によって実行される。次に図7のフローチャートを参照して、スキャナコントローラ41の動作を説明する。 FIG. 7 is a flowchart illustrating processing by the scanner controller 41 according to the first embodiment, which is executed by the internal CPU 413 unless otherwise specified. Next, the operation of the scanner controller 41 will be described with reference to the flowchart of FIG. 7.

この処理は、スキャナコントローラ41ではCPU413のリセットが解除されて、スキャナコントローラ41による改ざん検知処理の実行が図6のS603で指示されることにより開始される。まずS701でCPU413は、不揮発メモリ414の所定アドレスに格納されたブートプログラムを読み出し、そのブートプログラムの改ざんの検知を行う。次にS702に進みCPU413は、そのブートプログラムが改ざんされているかどうかを判定する。S702でCPU413は、ブートプログラムが改ざんが検知されていないと判定した場合はS710に進みCPU413は、メインコントローラ110に対してブートプログラムが改ざんされていないことを通知して、この処理を終了する。尚、この通知は、図6のS604でメインコントローラ110が受信する。 This process is started when the reset of the CPU 413 is released in the scanner controller 41 and the execution of the falsification detection process by the scanner controller 41 is instructed in S603 of FIG. First, in S701, the CPU 413 reads the boot program stored at the predetermined address of the non-volatile memory 414, and detects tampering with the boot program. Next, the process proceeds to S702, and the CPU 413 determines whether or not the boot program has been tampered with. If the CPU 413 determines in S702 that the boot program has not been tampered with, the process proceeds to S710, and the CPU 413 notifies the main controller 110 that the boot program has not been tampered with, and ends this process. This notification is received by the main controller 110 in S604 of FIG.

一方、S702でCPU413は、ブートプログラムが改ざんが検知されていると判定した場合はS703に進みCPU413は、メインコントローラ110に対してブートプログラムが改ざんされていることを通知する。これは図6のS605でメインコントローラ110により受信される。そしてS704でCPU413は、図6のS608でメインコントローラ110から送信されるブートプログラムの受信を待つ。 On the other hand, if the CPU 413 determines in S702 that the boot program has been tampered with, the process proceeds to S703 and the CPU 413 notifies the main controller 110 that the boot program has been tampered with. This is received by the main controller 110 in S605 of FIG. Then, in S704, the CPU 413 waits for the reception of the boot program transmitted from the main controller 110 in S608 of FIG.

次に図6のフローチャートにおいて、メインコントローラ110のCPU101はS605で、スキャナコントローラ41からブートプログラムの改ざんを検知した旨の通知を受信したかどうか判定し、改ざんを検知した旨の通知を受信するとS606に進み、そうでないときはS604に進む。 Next, in the flowchart of FIG. 6, the CPU 101 of the main controller 110 determines in S605 whether or not it has received a notification from the scanner controller 41 that the boot program has been tampered with, and when it receives a notification that the tampering has been detected, S606. If not, proceed to S604.

S606でCPU101は、そのブートプログラムの改ざんを検知した旨の通知に基づいて、そのブートプログラム識別情報を作成する。このブートプログラムの識別情報は、どのスキャナコントローラでブートプログラム改ざんが発生したかの情報を含む。実施形態1は、例えばスキャナコントローラ41からの通知であれば、スキャンコントローラ41のブートプログラム、複数のスキャナコントローラが接続されていれば、そのスキャナコントローラのブートプログラムであることを示す。 In S606, the CPU 101 creates the boot program identification information based on the notification that the tampering of the boot program has been detected. The boot program identification information includes information on which scanner controller the boot program tampering occurred. The first embodiment shows, for example, that the notification from the scanner controller 41 is the boot program of the scan controller 41, and if a plurality of scanner controllers are connected, it is the boot program of the scanner controller.

次にS607に進みCPU101は、S606で作成したブートプログラムの識別情報に基づいて、HDD144の所定の場所に予め格納されている、対応するブートプログラムを読み出して取得する。この時、このブートプログラム識別情報に紐づいて、HDD144に予め格納されたブートプログラムの場所情報及びデータ長情報がCPU101で実行されるプログラムに用意されている。従ってCPU101は、これらを参照して、HDD144からスキャナコントローラ41用のブートプログラムを取得する。そしてS608に進みCPU101は、S608で取得したブートプログラムをスキャナコントローラ41に送信する。その後、S609でCPU101は、その送信したブートプログラムが改ざんされているかどうかの検証結果をスキャナコントローラ41から受信するのを待ち、改ざんされていないという通知を受信するとS611に進んで、そのスキャナコントローラ41の起動を許可して、この処理を終了する。一方、検証結果を受信しないときはS610に進み、S608で送信したブートプログラムが改ざんされていたという検証結果を受信したかどうか判定し、そのような検証結果を受信しないときはS609に進む。S610で、送信したブートプログラムが改ざんされていたという検証結果を受信するとS612に進み、エラー処理を行って、この処理を終了する。 Next, the process proceeds to S607, and the CPU 101 reads and acquires the corresponding boot program stored in advance in the predetermined location of the HDD 144 based on the identification information of the boot program created in S606. At this time, the location information and the data length information of the boot program stored in advance in the HDD 144 are prepared in the program executed by the CPU 101 in association with the boot program identification information. Therefore, the CPU 101 refers to these to acquire the boot program for the scanner controller 41 from the HDD 144. Then, the process proceeds to S608, and the CPU 101 transmits the boot program acquired in S608 to the scanner controller 41. After that, in S609, the CPU 101 waits for the scanner controller 41 to receive the verification result of whether or not the transmitted boot program has been tampered with, and when it receives the notification that it has not been tampered with, proceeds to S611 and proceeds to the scanner controller 41. Allows the startup of and ends this process. On the other hand, if the verification result is not received, the process proceeds to S610, it is determined whether or not the verification result that the boot program transmitted in S608 has been tampered with has been received, and if such a verification result is not received, the process proceeds to S609. When the verification result that the transmitted boot program has been tampered with is received in S610, the process proceeds to S612, error processing is performed, and this processing is terminated.

次に図7のフローチャートにて、スキャナコントローラ41のCPU413は、S704で、図6のS608で、メインコントローラ110から送信されるブートプログラムを受信したかどうか判定する。そしてブートプログラムを受信するとS705に進みCPU412は、S701と同様にして、そのブートプログラムの改ざん検知処理を行う。そしてS706に進みCPU413は、そのブートプログラムが改ざんされているかどうか判定し、改ざんされていないと判定した場合は、その受信した取得したブートプログラムが安全であるとしてS707に進んで、不揮発メモリ414のブートプログラムを修復する。このブートプログラムの修復とは、S702で改ざんされていたと判定された不揮発メモリ414のブートプログラムを、S704で受信したブートプログラムで上書きすることである。次にS708に進みCPU413は、メインコントローラ110に対して改ざん検知の完了通知を行い、スキャンコントローラ41側のブートプログラム改ざん検知動作制御は終了となる。一方、S706に進みCPU413は、そのブートプログラムが改ざんされていると判定した場合はS709に進み、CPU413はエラー処理を実行して、この処理を終了する。 Next, in the flowchart of FIG. 7, the CPU 413 of the scanner controller 41 determines in S704 and in S608 of FIG. 6 whether or not the boot program transmitted from the main controller 110 has been received. Then, when the boot program is received, the process proceeds to S705, and the CPU 412 performs the tampering detection process of the boot program in the same manner as in S701. Then, the process proceeds to S706, and the CPU 413 determines whether or not the boot program has been tampered with. Repair the boot program. The repair of the boot program is to overwrite the boot program of the non-volatile memory 414 determined to have been tampered with in S702 with the boot program received in S704. Next, in S708, the CPU 413 notifies the main controller 110 of the completion of the tampering detection, and the boot program tampering detection operation control on the scan controller 41 side ends. On the other hand, the process proceeds to S706, and when the CPU 413 determines that the boot program has been tampered with, the process proceeds to S709, and the CPU 413 executes an error process and ends this process.

次に、図6のフローチャートにおいて、メインコントローラ110のCPU101は、S609で、図7のS708でスキャナコントローラ41から送信されるブートプログラムに改ざんが無いという通知を受信するとS611に進む。S611でCPU101は、スキャナコントローラ41での改ざんの検知処理が完了したと判定して、スキャナコントローラ41のCPU411のリセットを解除し、スキャナコントローラ41は安全に起動することになる。 Next, in the flowchart of FIG. 6, when the CPU 101 of the main controller 110 receives the notification in S609 that the boot program transmitted from the scanner controller 41 in S708 of FIG. 7 has not been tampered with, the process proceeds to S611. In S611, the CPU 101 determines that the tampering detection process of the scanner controller 41 is completed, releases the reset of the CPU 411 of the scanner controller 41, and the scanner controller 41 starts up safely.

尚、S705で取得したブートプログラムに改ざんがあるとS706で判定された場合には、S709にてエラー状態となり、スキャナコントローラ41はメインコントローラ110に対してエラー通知を行う。この場合は図6には記載していないが、メインコントローラは、HDD144が不正に利用されていると判定して、HDD144へのアクセスの禁止、並びに操作パネル143にエラー表示をし、複合機100が使用できない旨ユーザーに通知するなどをしても良い。 If it is determined in S706 that the boot program acquired in S705 has been tampered with, an error state occurs in S709, and the scanner controller 41 notifies the main controller 110 of the error. In this case, although not shown in FIG. 6, the main controller determines that the HDD 144 is being used illegally, prohibits access to the HDD 144, and displays an error on the operation panel 143, and the multifunction device 100 You may notify the user that the is not available.

以上説明したように実施形態1によれば、メインコントローラとスキャナコントローラ及びメインコントローラに接続されたHDDを用いて、起動時に用いられるブートプログラムのセキュアブート制御を実行し、複合機が安全に立ち上げることが可能となる。 As described above, according to the first embodiment, the main controller, the scanner controller, and the HDD connected to the main controller are used to execute the secure boot control of the boot program used at the time of booting, and the multifunction device starts up safely. It becomes possible.

尚、実施形態1では説明を簡単にするために、スキャナコントローラ41にてブートプログラムのセキュアブート制御を行うように説明したが、プリントコントローラ42でも同様のセキュアブート制御が行えることは言うまでもない。また、スキャナコントローラ41とプリントコントローラ42の両方でセキュアブート制御が行えるような構成・制御でも良い。 In the first embodiment, in order to simplify the explanation, the scanner controller 41 is described to perform the secure boot control of the boot program, but it goes without saying that the print controller 42 can also perform the same secure boot control. Further, the configuration / control may be such that secure boot control can be performed by both the scanner controller 41 and the print controller 42.

[実施形態2]
実施形態1に対して、スキャナコントローラ用のブートプログラムを取得する場所が異なる実施形態2について図5、図7、図8及び図9を参照して説明する。
[Embodiment 2]
A second embodiment in which the location for acquiring the boot program for the scanner controller is different from that of the first embodiment will be described with reference to FIGS. 5, 7, 8 and 9.

図8は、実施形態2に係る複合機100のメインコントローラ110による制御処理を説明するフローチャートであり、このフローチャートで示す処理は、CPU101もしくはCPU111によって実行される。いずれの制御がどちらのCPUにて行われるかについては、その都度説明する。尚、図8において、前述の図6と共通する処理は同じ参照符号を付して、その説明を省略する。 FIG. 8 is a flowchart illustrating a control process by the main controller 110 of the multifunction device 100 according to the second embodiment, and the process shown in this flowchart is executed by the CPU 101 or the CPU 111. Which control is performed by which CPU will be described each time. Note that, in FIG. 8, the same processing as in FIG. 6 described above is designated by the same reference numerals, and the description thereof will be omitted.

図9は、実施形態2に係るサーバ500による処理を説明するフローチャートである。 図8のS605で、スキャナコントローラ41からブートプログラムの改ざんを検知した旨の通知を受信するとS606に進み、そのブートプログラムの改ざん検知の通知に基づいて、ブートプログラムの識別情報を作成する。このブートプログラムの識別情報は、どのスキャナコントローラでブートプログラムの改ざんが発生したかの情報を含む。実施形態2では、例えばスキャナコントローラ41からであれば、その識別情報はスキャンコントローラ41のブートプログラムを示し、複数のスキャナコントローラが接続されていれば、その改ざんを検知したスキャナコントローラのブートプログラムであることを示す。 FIG. 9 is a flowchart illustrating processing by the server 500 according to the second embodiment. When the scanner controller 41 receives the notification that the boot program has been tampered with in S605 of FIG. 8, the process proceeds to S606, and the boot program identification information is created based on the notification of the boot program tampering detection. The boot program identification information includes information on which scanner controller the boot program has been tampered with. In the second embodiment, for example, if it is from the scanner controller 41, the identification information indicates the boot program of the scan controller 41, and if a plurality of scanner controllers are connected, it is the boot program of the scanner controller that has detected the alteration. Show that.

次にS801に進みCPU101は、その作成したブートプログラムの識別情報をサーバ500に送信する。この時、サーバ500とメインコントローラ110との間はネットワーク146で接続されているが、既に、メインコントローラ110は安全に起動されているため、サーバ500とは、SSL通信など安全な通信方法でブートプログラム識別情報は送信される。 Next, the process proceeds to S801, and the CPU 101 transmits the identification information of the created boot program to the server 500. At this time, the server 500 and the main controller 110 are connected by a network 146, but since the main controller 110 has already been started safely, the server 500 is booted by a secure communication method such as SSL communication. The program identification information is transmitted.

サーバ500は、その記憶手段内に、取得したブートプログラムの識別情報に紐付いたブートプログラムを格納しているものとする。例えば、スキャナコントローラ41の要因で作成されたブートプログラムの識別情報に対しては、スキャナコントローラ41用のブートプログラムを格納している。また、プリンタコントローラ42の要因で作成されたブートプログラムの識別情報に対しては、プリンタコントローラ42用のブートプログラムを格納している。またサーバ500には、実施形態2で説明する複合機100とは別の機種の複合機の各種ブートプログラムが格納されている構成でも良く、複合機100に起因するブートプログラムの識別情報は、別の機種の複合機のブートプログラムの識別情報とは異なる。よって、それぞれのブートプログラムの識別情報を基に、それに紐付いて格納された1つのブートプログラムを特定することができる。 It is assumed that the server 500 stores the boot program associated with the acquired boot program identification information in the storage means. For example, the boot program for the scanner controller 41 is stored for the identification information of the boot program created by the factor of the scanner controller 41. Further, the boot program for the printer controller 42 is stored in the identification information of the boot program created by the factor of the printer controller 42. Further, the server 500 may be configured to store various boot programs of a multifunction device of a model different from the multifunction device 100 described in the second embodiment, and the boot program identification information caused by the multifunction device 100 is different. It is different from the identification information of the boot program of the multifunction device of the model. Therefore, based on the identification information of each boot program, one boot program stored in association with the identification information can be specified.

図9は、本発明の実施形態2に係るサーバ500による処理を説明するフローチャートである。 FIG. 9 is a flowchart illustrating processing by the server 500 according to the second embodiment of the present invention.

サーバ500はS901で、複合機100からブートプログラムの問い合わせがあったかどうかを判定する。ここでは、複合機100からブートプログラムの識別情報を受信するとS902に遷移する。S902でサーバ500は、受信したブートプログラムの識別情報を解析し、複合機100から送信されたこと、ブートプログラムの種類などを判定する。これにより、対象のブートプログラムは一意に特定される。次にS903に進みサーバ500は、対応するブートプログラムをサーバ500に接続されている図示しない記憶手段から読み出す。そしてS904に進みサーバ500は、その読み出したブートプログラムを、ネットワーク146を介して複合機100に送信する。このときも、SSL通信など安全な通信方法で送信されるものとする。 The server 500 determines in S901 whether or not the boot program is inquired from the multifunction device 100. Here, when the identification information of the boot program is received from the multifunction device 100, the transition to S902 occurs. In S902, the server 500 analyzes the received identification information of the boot program, and determines that the device has been transmitted from the multifunction device 100, the type of the boot program, and the like. As a result, the target boot program is uniquely identified. Next, the process proceeds to S903, and the server 500 reads the corresponding boot program from a storage means (not shown) connected to the server 500. Then, the process proceeds to S904, and the server 500 transmits the read boot program to the multifunction device 100 via the network 146. Also at this time, it is assumed that the transmission is performed by a secure communication method such as SSL communication.

これにより図8のフローチャートにおいて、この間メインコントローラ110は、サーバ500からスキャナコントローラ41用ブートプログラムが送信されるまでS802で炊きしている。そしてCPU101は、サーバ500からスキャナコントローラ41用のブートプログラムを受信するとS802からS608に進み、その受信したブートプログラムをスキャナコントローラ41に送信する。その後、S609で、スキャナコントローラ41からブートプログラムの改ざん検知が完了したか、或いはS610で、送信したブートプログラムが改ざんされていたがどうかの検証結果を待つ。 As a result, in the flowchart of FIG. 8, during this period, the main controller 110 is cooking in S802 until the boot program for the scanner controller 41 is transmitted from the server 500. Then, when the CPU 101 receives the boot program for the scanner controller 41 from the server 500, it proceeds from S802 to S608, and transmits the received boot program to the scanner controller 41. After that, in S609, the verification result of whether the tampering detection of the boot program from the scanner controller 41 is completed, or in S610, the transmitted boot program has been tampered with is awaited.

この場合のスキャナコントローラ41の処理は前述の実施形態1と同様であるため、その説明を省略する。 Since the processing of the scanner controller 41 in this case is the same as that of the first embodiment, the description thereof will be omitted.

以上説明したように実施形態2によれば、メインコントローラとスキャナコントローラ及びネットワークを介して接続されたサーバを用いて、起動時に用いられるブートプログラムのセキュアブート制御を実行し、複合機が安全に立ち上げることが可能となる。 As described above, according to the second embodiment, the secure boot control of the boot program used at the time of booting is executed by using the main controller, the scanner controller, and the server connected via the network, and the multifunction device stands safely. It will be possible to raise it.

尚、実施形態1では説明を簡単にするために、スキャナコントローラ41にてブートプログラムのセキュアブート制御を行うように説明したが、プリントコントローラ42でも同様のセキュアブート制御が行えることは言うまでもない。また、スキャナコントローラ41とプリントコントローラ42の両方でセキュアブート制御が行えるような構成・制御でも良い。 In the first embodiment, in order to simplify the explanation, the scanner controller 41 is described to perform the secure boot control of the boot program, but it goes without saying that the print controller 42 can also perform the same secure boot control. Further, the configuration / control may be such that secure boot control can be performed by both the scanner controller 41 and the print controller 42.

尚、前述の実施形態1のように、HDDに格納されたブートプログラムが改ざんされている場合は、複合機で安全に起動できるブートプログラムが存在しない可能性が高いことが想定される。このため実施形態2では、よりセキュリティが高いサーバに格納されたブートプログラムを受け取り、より安全に起動する構成を提供するものである。 If the boot program stored in the HDD has been tampered with as in the first embodiment, it is highly likely that there is no boot program that can be safely booted by the multifunction device. Therefore, the second embodiment provides a configuration in which a boot program stored in a server with higher security is received and started more safely.

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

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

41…スキャナコントローラ、42…プリンタコントローラ、100…複合機、101,111…CPU(コントローラ)、110…コントローラ、414,424…不揮発メモリ 41 ... Scanner controller, 42 ... Printer controller, 100 ... Multifunction device, 101, 111 ... CPU (controller), 110 ... Controller, 414, 424 ... Non-volatile memory

Claims (11)

少なくとも第1制御手段と第2制御手段とを有する情報処理装置であって、
前記情報処理装置が起動されると前記第1制御手段は、前記第2制御手段に対して、前記第2制御手段が実行するブートプログラムの改ざんの検知処理を実行するように指示し、
前記指示に応じて前記第2制御手段で実行された前記検知処理の結果が改ざん無しを示す場合は、前記第1制御手段により前記第2制御手段を起動させ、
前記検知処理の結果が改ざん有りを示す場合は、前記第1制御手段は、前記第2制御手段が実行するブートプログラムを前記第2制御手段に送信することを特徴とする情報処理装置。
An information processing device having at least a first control means and a second control means.
When the information processing device is activated, the first control means instructs the second control means to execute a tampering detection process of the boot program executed by the second control means.
When the result of the detection process executed by the second control means in response to the instruction indicates that there is no falsification, the first control means activates the second control means.
When the result of the detection process indicates that the detection process has been tampered with, the first control means is an information processing device that transmits a boot program executed by the second control means to the second control means.
前記第1制御手段はさらに、前記第2制御手段に送信したブートプログラムの改ざんの検知処理の結果が改ざん無しを示す場合は、前記第1制御手段により前記第2制御手段を起動させ、前記検知処理の結果が改ざん有りを示す場合は、エラー処理を実行することを特徴とする請求項1に記載の情報処理装置。 The first control means further activates the second control means by the first control means when the result of the tampering detection process of the boot program transmitted to the second control means indicates that there is no tampering, and the detection The information processing apparatus according to claim 1, wherein if the result of the processing indicates that the processing has been tampered with, the error processing is executed. 前記第2制御手段は、前記第2制御手段が実行するブートプログラムを不揮発に記憶する第1記憶手段を有し、
前記第2制御手段は、前記指示に応じて、前記第1記憶手段に記憶されている前記ブートプログラムの改ざん検知処理を実行することを特徴とする請求項1に記載の情報処理装置。
The second control means has a first storage means that non-volatilely stores the boot program executed by the second control means.
The information processing device according to claim 1, wherein the second control means executes a falsification detection process of the boot program stored in the first storage means in response to the instruction.
前記第1制御手段は、前記第2制御手段が実行するブートプログラムを不揮発に記憶する第2記憶手段を有し、
前記検知処理の結果が改ざん有りを示す場合は、前記第1制御手段は、前記第2記憶手段から読み出した、前記第2制御手段が実行するブートプログラムを前記第2制御手段に送信することを特徴とする請求項1に記載の情報処理装置。
The first control means has a second storage means that non-volatilely stores the boot program executed by the second control means.
When the result of the detection process indicates that the detection process has been tampered with, the first control means transmits the boot program read from the second storage means and executed by the second control means to the second control means. The information processing apparatus according to claim 1.
前記第1制御手段は、前記検知処理の結果が改ざん有りを示す場合、ネットワークを介して前記情報処理装置に接続されているサーバから受信した、第2制御手段が実行するブートプログラムを前記第2制御手段に送信することを特徴とする請求項1に記載の情報処理装置。 When the result of the detection process indicates that the detection process has been tampered with, the first control means receives a boot program executed by the second control means received from a server connected to the information processing apparatus via the network. The information processing apparatus according to claim 1, wherein the information processing device is transmitted to a control means. 前記第1制御手段は、前記検知処理の結果が改ざん有りを示す場合は、前記第2制御手段が実行するブートプログラムの識別情報を生成し、当該識別情報に対応するブートプログラムを前記第2制御手段に送信することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。 When the result of the detection process indicates that the detection process has been tampered with, the first control means generates identification information of the boot program executed by the second control means, and controls the boot program corresponding to the identification information in the second control. The information processing apparatus according to any one of claims 1 to 5, wherein the information processing apparatus is transmitted to a means. 前記第1制御手段は、前記第2制御手段に対して行う処理を前記第1制御手段に実行させるためのプログラムを記憶する、書き込みできない不揮発メモリを有することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。 The first control means has a non-volatile memory that cannot be written, which stores a program for causing the first control means to execute a process performed on the second control means. The information processing device according to any one item. 前記第1制御手段が、前記検知処理の結果が改ざん有りを示す場合に前記第2制御手段が実行するブートプログラムを前記第2制御手段に送信すると、前記第2制御手段は、さらに当該ブートプログラムの改ざんの検知処理を実行することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。 When the first control means transmits a boot program executed by the second control means to the second control means when the result of the detection process indicates that the boot program has been tampered with, the second control means further causes the boot program. The information processing apparatus according to any one of claims 1 to 7, wherein the falsification detection process of the above is executed. 少なくとも第1制御手段と第2制御手段とを有する情報処理装置を制御する制御方法であって、
前記情報処理装置が起動されると前記第1制御手段は、前記第2制御手段に対して、前記第2制御手段が実行するブートプログラムの改ざんの検知処理を実行するように指示する工程と、
前記指示に応じて前記第2制御手段で実行された前記検知処理の結果が改ざん無しを示す場合は、前記第1制御手段は前記第2制御手段を起動させる工程と、
前記検知処理の結果が改ざん有りを示す場合は、前記第1制御手段は、前記第2制御手段が実行するブートプログラムを前記第2制御手段に送信する工程と、
を有することを特徴とする制御方法。
A control method for controlling an information processing device having at least a first control means and a second control means.
When the information processing apparatus is activated, the first control means instructs the second control means to execute a process of detecting falsification of a boot program executed by the second control means.
When the result of the detection process executed by the second control means in response to the instruction indicates that there is no tampering, the first control means has a step of activating the second control means.
When the result of the detection process indicates that the detection process has been tampered with, the first control means has a step of transmitting a boot program executed by the second control means to the second control means.
A control method characterized by having.
前記送信する工程で、前記第1制御手段が、前記検知処理の結果が改ざん有りを示す場合に前記第2制御手段が実行するブートプログラムを前記第2制御手段に送信すると、前記第2制御手段は、さらに当該ブートプログラムの改ざんの検知処理を実行する工程を、更に有することを特徴とする請求項9に記載の制御方法。 When the first control means transmits a boot program executed by the second control means to the second control means when the result of the detection process indicates that the detection process has been tampered with in the transmission step, the second control means The control method according to claim 9, further comprising a step of detecting falsification of the boot program. コンピュータに、請求項9又は10に記載の制御方法の各工程を実行させるためのプログラム。 A program for causing a computer to execute each step of the control method according to claim 9 or 10.
JP2019051510A 2019-03-19 2019-03-19 Information processing device and its control method, and program Pending JP2020154601A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019051510A JP2020154601A (en) 2019-03-19 2019-03-19 Information processing device and its control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019051510A JP2020154601A (en) 2019-03-19 2019-03-19 Information processing device and its control method, and program

Publications (1)

Publication Number Publication Date
JP2020154601A true JP2020154601A (en) 2020-09-24

Family

ID=72559093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019051510A Pending JP2020154601A (en) 2019-03-19 2019-03-19 Information processing device and its control method, and program

Country Status (1)

Country Link
JP (1) JP2020154601A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022185570A1 (en) * 2021-03-02 2022-09-09 日立Astemo株式会社 Control apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022185570A1 (en) * 2021-03-02 2022-09-09 日立Astemo株式会社 Control apparatus

Similar Documents

Publication Publication Date Title
US10225426B2 (en) Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
US8438377B2 (en) Information processing apparatus, method and computer-readable storage medium that encrypts and decrypts data using a value calculated from operating-state data
CN109684849B (en) Information processing apparatus, control method therefor, and storage medium
JP6494373B2 (en) Information processing apparatus, information processing apparatus control method, and computer program
CN111125686B (en) Information processing apparatus and control method thereof
JP7393226B2 (en) Information processing equipment and how to start it
JP2020154601A (en) Information processing device and its control method, and program
JP2021005335A (en) Information processing apparatus, information processing method, and program
JP2020082441A (en) Image formation device, control method and program of the same
JP2020170256A (en) Information processing device and control method thereof
JP5961059B2 (en) Information processing apparatus and activation method thereof
JP2008171041A (en) Image forming device, start up method of image forming device, control device, and start up method of extension unit
KR102467636B1 (en) Information processing apparatus, method of controlling information processing apparatus, and storage medium
JP7263101B2 (en) Information processing device, data verification method
JP2020053002A (en) Information processing apparatus, control method thereof, and program
JP2021140601A (en) Information processing device, control method therefor, and program
JP2020052597A (en) Information processing apparatus, control method thereof, and program
US11971991B2 (en) Information processing apparatus, control method for controlling the same and storage medium
JP7176379B2 (en) Information processing device, information processing method, and program
JP2022182837A (en) Information processing apparatus and control method thereof
US10657268B2 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium to verify validity of backup data
JP2020188440A (en) Information processing device and control method of the same
JP2020181501A (en) Information processing device, control method thereof, and program
JP2020013244A (en) Information processor, control method of information processor and program
JP2021111231A (en) Information processing device and information presentation method

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