JP2020082441A - Image formation device, control method and program of the same - Google Patents

Image formation device, control method and program of the same Download PDF

Info

Publication number
JP2020082441A
JP2020082441A JP2018217519A JP2018217519A JP2020082441A JP 2020082441 A JP2020082441 A JP 2020082441A JP 2018217519 A JP2018217519 A JP 2018217519A JP 2018217519 A JP2018217519 A JP 2018217519A JP 2020082441 A JP2020082441 A JP 2020082441A
Authority
JP
Japan
Prior art keywords
module
program
kernel
information processing
tampering
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
JP2018217519A
Other languages
Japanese (ja)
Inventor
曜子 徳元
Yoko Tokumoto
曜子 徳元
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 JP2018217519A priority Critical patent/JP2020082441A/en
Publication of JP2020082441A publication Critical patent/JP2020082441A/en
Pending legal-status Critical Current

Links

Images

Abstract

To provide a mechanism for automatic restoration from a falsification state when falsification of software is detected during boot-up of an information processing device.SOLUTION: An information processing device sequentially boots a plurality of modules subsequently to boot-up of a boot program while detecting falsification of the program. The information processing device detects falsification of a module to be booted next using verification information for verifying the signature of the module to be booted next out of the plurality of modules, and boots the module to be booted next when verification of the signature succeeds. The information processing device performs automatic restoration by updating the falsified module when detecting falsification of a prescribed module, and displays a corresponding error code on an operation part when detecting falsification of the module other than the prescribed module.SELECTED DRAWING: Figure 3

Description

本発明は、画像形成装置、その制御方法、及びプログラムに関する。 The present invention relates to an image forming apparatus, a control method thereof, and a program.

ソフトウェアの脆弱性をついて、ソフトウェアを改ざんし、コンピュータを悪用する攻撃が問題となっている。そういった攻撃対策として、特許文献1には、耐タンパーモジュールを用いてプログラムのハッシュ値を計算、保存しておき、起動するたびにプログラムのハッシュ値を再計算して検証を行うことで改ざん検知を行う方法が提案されている。また、特別なハードウェアを必要とする耐タンパーモジュールを使用せず、起動時に順次プログラムを起動していく際に、次のプログラムの正解値を保持しておき正解値が一致することで各プログラムの改ざん検知を行う方法も考えられる。いずれにしても、起動中にプログラムの改ざんが検知されるとその装置は改ざん状態が解消されるまで使用不可能な状態になる。 Attacks that exploit software by tampering with software due to vulnerability of software have become a problem. As a countermeasure against such an attack, in Patent Document 1, the tamper resistance module is used to calculate and store the hash value of the program, and the hash value of the program is recalculated and verified each time the program is booted to detect tampering. Suggested ways to do it. Also, without using a tamper resistant module that requires special hardware, when the programs are started sequentially at startup, the correct answer value of the next program is held and the correct answer values match so that each program A method of detecting falsification is also considered. In any case, if program tampering is detected during startup, the device becomes unusable until the tampered state is resolved.

また、デジタル複合機のようなサービスマンによるメンテナンス契約が行われる装置の場合は、装置が使用不可能な状態に陥るとサービスマンが出動して問題を解消し、装置を復旧させる必要がある。問題が生じるたびにサービスマンが出動していると、ユーザの利便性が損なわれ、サービスマンの出動コストもかかる。そのため、近年デジタル複合機では、メーカで把握している不具合の修正や、機能追加のためのソフトウェアの更新を目的とした、ネットワーク越しの外部サーバからの定期的な自動アップデートを行う仕組みを導入している。サービスマンがいない状態でデジタル複合機のアップデートを自動的に行う場合、アップデート処理に不具合があったとしてもできるだけ確実にリカバリを行い、装置の動作を保証しながら所望のアップデートを行う必要がある。例えば、特許文献2には、アップデート処理自体に不具合があった場合にリカバリ処理を実行することによって、所望のアップデートを行う方法が提案されている。 Further, in the case of a device such as a digital multi-function peripheral to which a maintenance contract is made by a service person, when the device falls into an unusable state, the service person must be dispatched to solve the problem and restore the device. If the service person is dispatched every time a problem occurs, the convenience of the user is impaired and the cost of dispatching the service person is also increased. Therefore, in recent years, digital multi-function peripherals have been introduced with a mechanism to perform periodic automatic updates from an external server over the network for the purpose of correcting defects that are known to the manufacturer and updating software for adding functions. ing. When the digital multi-function peripheral is automatically updated without a serviceman, it is necessary to perform recovery as reliably as possible even if there is a problem in the update process, and perform the desired update while guaranteeing the operation of the device. For example, Patent Document 2 proposes a method of performing a desired update by executing a recovery process when there is a problem in the update process itself.

特開2008-244992号公報JP 2008-244992 JP 特開2016-053839号公報JP 2016-053839 JP

しかしながら、上記従来技術には以下に記載する課題がある。上記従来技術のリカバリ処理は、アップデート処理によるソフトウェアのダウンロード処理や、書き込み処理やアップデート用プログラム自体のリカバリであり、メーカが想定していない装置内の各プログラムの改ざんの復旧には対応できない。そのため、現状メンテナンス契約をしているデジタル複合機でソフトウェアの改ざんが検知されると、エラーコードが表示されるのみでユーザはサービスマンの出動を要請し復旧を依頼する以外に復旧させる方法がない。 However, the above-mentioned conventional techniques have the following problems. The above-mentioned recovery process of the prior art is a software download process by an update process, a write process, and a recovery of the update program itself, and cannot cope with tampering recovery of each program in the device which is not assumed by the manufacturer. Therefore, if software tampering is detected on a digital multifunction device that has a current maintenance contract, an error code is only displayed, and there is no other way to recover it than the user requesting the service person to be dispatched and requesting recovery. ..

本発明は、上述の問題の少なくとも一つに鑑みて成されたものであり、情報処理装置の起動中にソフトウェアの改ざんが検知された場合に、改ざん状態から自動復旧する仕組みを提供することを目的とする。 The present invention has been made in view of at least one of the above problems, and provides a mechanism for automatically recovering from a tampered state when tampering of software is detected during activation of an information processing device. To aim.

本発明は、例えば、ブートプログラムの起動に続いて複数のモジュールを順次起動する情報処理装置であって、前記複数のモジュールのうち、次に起動するモジュールの署名を検証する検証情報を用いて、該次に起動するモジュールの改ざんを検知する検知手段と、前記検知手段による署名の検証が成功すると、前記次に起動するモジュールを起動する起動手段と、前記検知手段によって所定のモジュールの改ざんが検知されると、改ざんされたモジュールを更新して自動復旧を行い、前記検知手段によって前記所定のモジュール以外のモジュールの改ざんが検知されると、対応するエラーコードを操作部に表示する制御手段とを備えることを特徴とする。 The present invention is, for example, an information processing device that sequentially activates a plurality of modules following activation of a boot program, and uses verification information for verifying a signature of a module to be activated next among the plurality of modules, Detecting means for detecting tampering with the module to be activated next, activating means for activating the module to be activated next when the signature verification by the detecting means is successful, and tampering with a predetermined module by the detecting means Then, the tampered module is updated and automatically restored, and when tampering with a module other than the predetermined module is detected by the detection means, a control means for displaying a corresponding error code on the operation unit is provided. It is characterized by being provided.

本発明によれば、情報処理装置の起動中にソフトウェアの改ざんが検知された場合に、改ざん状態から自動復旧することができる。 According to the present invention, when tampering with software is detected during activation of the information processing apparatus, it is possible to automatically recover from the tampered state.

一実施形態に係る情報処理装置100のハードウェア構成図。The hardware block diagram of the information processing apparatus 100 which concerns on one Embodiment. 一実施形態に係る情報処理装置100のソフトウェア構成図。The software block diagram of the information processing apparatus 100 which concerns on one Embodiment. 一実施形態に係る情報処理装置100の処理を示すフローチャート。The flowchart which shows the process of the information processing apparatus 100 which concerns on one Embodiment. 一実施形態に係る情報処理装置100の処理を示すフローチャート。The flowchart which shows the process of the information processing apparatus 100 which concerns on one Embodiment. 一実施形態に係る改ざん検知時の自動復旧ができない場合に表示するエラー画面の例。An example of the error screen displayed when automatic recovery at the time of tampering detection is not possible according to an embodiment.

以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。なお、実施形態に係る情報処理装置として複合機(デジタル複合機/MFP/Multi Function Peripheral)を例に説明する。しかしながら本発明の主旨を逸脱しない範囲で、レーザプリンタやFAXなどの電子写真方式の画像形成装置に適用することが可能である。 An embodiment of the present invention will be shown below. The individual embodiments described below will be helpful in understanding various concepts such as superordinate, intermediate, and subordinate concepts of the present invention. Further, the technical scope of the present invention is established by the claims, and is not limited by the following individual embodiments. A multifunction peripheral (digital multifunction peripheral/MFP/Multi Function Peripheral) will be described as an example of the information processing apparatus according to the embodiment. However, the present invention can be applied to an electrophotographic image forming apparatus such as a laser printer or a FAX without departing from the scope of the present invention.

<第1の実施形態>
<情報処理装置のハードウェア構成>
以下では、添付図面を参照して、本発明の第1の実施形態について説明する。まず、図1を参照して、本実施形態に係る情報処理装置100のハードウェア構成を説明する。
<First Embodiment>
<Hardware configuration of information processing device>
The first embodiment of the present invention will be described below with reference to the accompanying drawings. First, the hardware configuration of the information processing apparatus 100 according to the present embodiment will be described with reference to FIG.

情報処理装置100は、制御部200、操作部220、プリンタエンジン221、及びスキャナエンジン222を備える。また、外部電源240が接続され、各部に電源供給が行われる。制御部200は、CPU210、ROM291、チップセット211、RAM212、SRAM213、LED290、及びNIC214を備える。さらに、制御部200は、操作部I/F215、プリンタI/F216、スキャナI/F217、HDD218、フラッシュROM219、及び埋め込みコントローラ280を備える。埋め込みコントローラ280は、CPU281及びRAM282を備える。チップセット211はRTC270を備える。また、プリンタエンジン221はプリンタエンジンファーム231を備える。スキャナエンジン222は、スキャナエンジンファーム232を備える。 The information processing device 100 includes a control unit 200, an operation unit 220, a printer engine 221, and a scanner engine 222. In addition, an external power supply 240 is connected, and power is supplied to each unit. The control unit 200 includes a CPU 210, a ROM 291, a chipset 211, a RAM 212, an SRAM 213, an LED 290, and a NIC 214. Further, the control unit 200 includes an operation unit I/F 215, a printer I/F 216, a scanner I/F 217, a HDD 218, a flash ROM 219, and an embedded controller 280. The embedded controller 280 includes a CPU 281 and a RAM 282. The chipset 211 has an RTC 270. The printer engine 221 also includes a printer engine farm 231. The scanner engine 222 includes a scanner engine farm 232.

制御部200は、情報処理装置100全体の動作を統括的に制御する。CPU210は、フラッシュROM219に記憶された制御プログラムを読み出して読取制御や印刷制御、ファームアップデート制御などの各種制御処理を実行する。また、フラッシュROM219は、ファームアップデート用のファイル格納領域、ワークエリアや、ユーザデータ領域としても用いられる。ROM291はリードオンリーメモリであり、情報処理装置100のBIOS(Basic Input/Output System)、固定パラメータ等を格納している。RAM212は、CPU210の主メモリ、ワークエリア等の一時記憶領域として用いられる。SRAM213は不揮発メモリであり、情報処理装置100で必要となる設定値や画像調整値などを記憶しており、電源を再投入してもデータが消えないようになっている。HDD218は、画像データやユーザデータ等を記憶する。 The control unit 200 centrally controls the operation of the entire information processing apparatus 100. The CPU 210 reads the control program stored in the flash ROM 219 and executes various control processes such as read control, print control, and firmware update control. The flash ROM 219 is also used as a file storage area for firmware update, a work area, and a user data area. The ROM 291 is a read-only memory and stores a BIOS (Basic Input/Output System) of the information processing apparatus 100, fixed parameters, and the like. The RAM 212 is used as a main memory of the CPU 210 and a temporary storage area such as a work area. The SRAM 213 is a non-volatile memory that stores setting values and image adjustment values necessary for the information processing apparatus 100, and the data is not erased even when the power is turned on again. The HDD 218 stores image data, user data, and the like.

操作部I/F215は、操作部220と制御部200とを接続する。操作部220には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。プリンタI/F216は、プリンタエンジン221と制御部200とを接続する。プリンタエンジン221内に含む不図示のROMにはプリンタエンジンファーム231が格納されている。プリンタエンジン221で印刷すべき画像データはプリンタI/F216を介して制御部200からプリンタエンジン221に転送され、プリンタエンジン221において記録媒体上に印刷される。スキャナI/F217は、スキャナエンジン222と制御部200とを接続する。スキャナエンジン222内に含まれる不図示のROMにはスキャナエンジンファーム232が格納されている。スキャナエンジン222は、原稿上の画像を読み取って画像データを生成し、スキャナI/F217を介して制御部200に入力する。 The operation unit I/F 215 connects the operation unit 220 and the control unit 200. The operation unit 220 includes a liquid crystal display unit having a touch panel function, a keyboard, and the like. The printer I/F 216 connects the printer engine 221 and the control unit 200. A printer engine firmware 231 is stored in a ROM (not shown) included in the printer engine 221. Image data to be printed by the printer engine 221 is transferred from the control unit 200 to the printer engine 221 via the printer I/F 216, and is printed on the recording medium by the printer engine 221. The scanner I/F 217 connects the scanner engine 222 and the control unit 200. A scanner engine firmware 232 is stored in a ROM (not shown) included in the scanner engine 222. The scanner engine 222 reads an image on a document to generate image data, and inputs the image data to the control unit 200 via the scanner I/F 217.

ネットワークI/Fカード(NIC)214は、制御部200(情報処理装置100)をLAN110に接続する。NIC214は、LAN110上の外部装置(例えば、外部サーバ250やPC260)に画像データや情報を送信したり、逆にアップデートファームや各種情報を受信したりする。外部サーバ250はインターネット上に存在するケースもある。PC260上に存在する不図示のWebブラウザから情報処理装置100の操作を行うこともある。 The network I/F card (NIC) 214 connects the control unit 200 (information processing device 100) to the LAN 110. The NIC 214 transmits image data and information to an external device (for example, the external server 250 or PC 260) on the LAN 110, and conversely receives update firmware and various information. In some cases, the external server 250 exists on the Internet. The information processing apparatus 100 may be operated from a web browser (not shown) existing on the PC 260.

チップセット211はある一連の関連のある複数の集積回路を示す。RTC270はRealTimeClock(リアルタイムクロック)であり、計時専用のチップである。RTC270は、外部電源240が接続されていなくとも、不図示の内蔵電池から電源供給を受けるため、スリープ時も動作することができる。これにより、チップセット211に対して一部の電源供給が行われる状態では、スリープからの復帰が可能である。逆に、チップセット211に電源供給がまったく行われないシャットダウン状態の場合には、RTC270は動作することができない。 Chipset 211 represents a series of related integrated circuits. The RTC 270 is a RealTimeClock (real-time clock) and is a chip dedicated to clocking. The RTC 270 receives power from an internal battery (not shown) even if the external power supply 240 is not connected, and thus can operate during sleep. As a result, it is possible to wake up from the sleep state when a part of the power is supplied to the chipset 211. On the contrary, the RTC 270 cannot operate in the shutdown state where power is not supplied to the chipset 211 at all.

CPU281は埋め込みコントローラ280のソフトウェアプログラムを実行し、情報処理装置100の中で一部の制御を行う。RAM282はランダムアクセスメモリであり、CPU281が情報処理装置100を制御する際に、プログラムや一時的なデータの格納などに使用される。LED290は必要に応じて点灯し、ソフトウェアやハードウェアの異常を外部に伝えるために利用される。 The CPU 281 executes the software program of the embedded controller 280 and controls part of the information processing apparatus 100. The RAM 282 is a random access memory and is used for storing programs and temporary data when the CPU 281 controls the information processing device 100. The LED 290 lights up when necessary, and is used for transmitting an abnormality of software or hardware to the outside.

<情報処理装置のソフトウェア構成>
次に、図2を参照して、本実施形態に係る情報処理装置100が有するソフトウェアモジュールの構成を説明する。
<Software configuration of information processing device>
Next, the configuration of the software module included in the information processing apparatus 100 according to the present embodiment will be described with reference to FIG.

通信管理部301は、ネットワーク110に接続されるNIC214を制御して、ネットワーク110を介して外部とデータの送受信を行う。UI制御部302は、操作部I/F215を介して操作部220への入力を受け取り、入力に応じた処理や画面出力を行う。 The communication management unit 301 controls the NIC 214 connected to the network 110 and transmits/receives data to/from the outside via the network 110. The UI control unit 302 receives an input to the operation unit 220 via the operation unit I/F 215, and performs processing and screen output according to the input.

ブートプログラム303は情報処理装置100に電源が投入されると埋め込みコントローラ280のCPU281で実行されるプログラムであり、起動に関わる処理を実行するほかにBIOS305の改ざん検知を行うBIOS改ざん検知処理部304を有する。BIOS305はブートプログラム303の実行後にCPU210で実行されるプログラムであり、起動に関わる処理を実行するほかにローダ307の改ざん検知を行うローダ改ざん検知処理部306を有する。ローダ307はBIOS305の処理が終わった後にCPU210で実行されるプログラムであり、起動に関わる処理を実行するほかにカーネルの改ざん検知を行うカーネル改ざん検知処理部308を有する。 The boot program 303 is a program executed by the CPU 281 of the embedded controller 280 when the information processing apparatus 100 is powered on. The boot program 303 executes a process related to booting, and a BIOS falsification detection processing unit 304 that detects falsification of the BIOS 305. Have. The BIOS 305 is a program executed by the CPU 210 after the boot program 303 is executed, and has a loader tampering detection processing unit 306 that executes tampering detection of the loader 307 in addition to executing processing related to startup. The loader 307 is a program that is executed by the CPU 210 after the processing of the BIOS 305 is completed, and has a kernel tampering detection processing unit 308 that performs tampering detection of the kernel in addition to executing processing related to startup.

309と310はフラッシュROM219内に構成されるパーティションを示す。309は通常起動用ファームであるstdファーム311を含むstdパーティション(第1パーティション)であり、310はアップデート起動用ファームであるsafeファーム312を含むsafeパーティション(第2パーティション)である。stdファーム311は、カーネル313と通常起動用プログラム(第1プログラムモジュール)315とで構成される。カーネル313はローダ307の処理が終わった後にCPU210で実行されるプログラムであり、起動に関わる処理を実行するほかに通常起動用プログラム315の改ざん検知を行うプログラム改ざん検知処理部314を有する。 Reference numerals 309 and 310 denote partitions formed in the flash ROM 219. Reference numeral 309 is an std partition (first partition) that includes the std farm 311 that is a normal startup firmware, and 310 is a safe partition (second partition) that includes the safe firmware 312 that is an update startup firmware. The std firmware 311 includes a kernel 313 and a normal boot program (first program module) 315. The kernel 313 is a program that is executed by the CPU 210 after the processing of the loader 307 is completed, and has a program tampering detection processing unit 314 that performs tampering detection of the normal startup program 315 in addition to executing processing related to startup.

通常起動用プログラム315はCPU210で実行されるプログラム(第1プログラム)であり、情報処理装置100で各機能を提供する複数のプログラムからなる。例えばスキャナI/F217やプリンタI/F216を制御するプログラムや起動プログラムなどである。カーネル313によって通常起動用プログラムの中から起動プログラムが呼び出され起動処理を実行する。また、通常起動用プログラム315には、safeファームアップデート用プログラム316を含む。safeファームアップデート用プログラム316は、safeファーム312をアップデートする機能を備える。 The normal activation program 315 is a program (first program) executed by the CPU 210, and includes a plurality of programs that provide each function in the information processing apparatus 100. For example, it is a program for controlling the scanner I/F 217 or the printer I/F 216, a startup program, or the like. The boot program is called from the normal boot program by the kernel 313 to execute the boot process. The normal boot program 315 includes a safe firmware update program 316. The safe firmware update program 316 has a function of updating the safe firmware 312.

safeファーム312は、カーネルB317とstdファームアップデート用プログラム(第2プログラムモジュール)319とで構成される。カーネルB317はローダ307の処理が終わった後にCPU210で実行されるプログラムであり、起動に関わる処理を実行するほかにstdファームアップデート用プログラム319の改ざん検知を行うプログラム改ざん検知処理部B318を有する。stdファームアップデート用プログラム319は、stdファーム311と、図1で説明したプリンタエンジンファーム231とスキャナエンジンファーム232をアップデートする機能を備える。当該アップデートについては、所定のモジュールのプログラムの改ざんが検知された場合に行われる。従って、所定のモジュール以外のプログラムの改ざんが検知された場合は、後述するように、サービスマンに提供するエラーコードを操作部に表示するのみで、自動復旧のためのアップデートは行わない。情報処理装置100として、例えば不図示のフィニッシャなどの、スキャナエンジンやプリンタエンジン以外の構成が接続された場合も同様になる。 The safe firmware 312 includes a kernel B 317 and a std firmware update program (second program module) 319. The kernel B317 is a program executed by the CPU 210 after the processing of the loader 307 is completed, and has a program tampering detection processing unit B318 that executes tampering detection of the std firmware update program 319 in addition to executing processing related to startup. The std firmware update program 319 has a function of updating the std firmware 311, the printer engine firmware 231 and the scanner engine firmware 232 described in FIG. The update is performed when the tampering with the program of the predetermined module is detected. Therefore, when tampering with a program other than a predetermined module is detected, an error code provided to a service person is displayed on the operation unit, and an update for automatic recovery is not performed, as described later. The same applies when the information processing apparatus 100 is connected to a configuration other than the scanner engine or the printer engine, such as a finisher (not shown).

情報処理装置100は起動モードを切り替えながらアップデートを実現するが、起動モードとは、stdファーム311での起動(通常モード)と、safeファーム312での起動(アップデートモード)を示す。またそれぞれ、起動モードの切り替えを行う機能を備え、ローダ307がSRAM213に保存される起動モードの情報に応じてstdファーム311とsafeファーム312との起動を行う。 The information processing apparatus 100 implements the update by switching the startup mode. The startup mode indicates the startup in the std farm 311 (normal mode) and the startup in the safe farm 312 (update mode). Each of them also has a function of switching the startup mode, and the loader 307 activates the std firmware 311 and the safe firmware 312 according to the information on the startup mode stored in the SRAM 213.

<自動復旧処理>
次に、図3を参照して、本実施形態に係る情報処理装置100の改ざん検知時の自動復旧処理を説明する。本実施形態による改ざん検知の方法は、ブートプログラム303、BIOS305、ローダ307、通常起動であればstdファーム311内のカーネル313と通常起動用プログラム315が、改ざん検知を行いながら起動する。また、アップデート用起動であればローダ307以降はsafeファーム312内のカーネルB317とstdファームアップデート用プログラム319が改ざん検知を行いながら起動する。ブートプログラム303にはBIOS署名検証用の公開鍵(検証情報)が含まれ、BIOS305にはBIOS署名(自身の署名)とローダ検証用公開鍵が含まれる。ローダ307にはローダ署名と、カーネル検証用公開鍵及びカーネルB検証用公開鍵が含まれているものとする。また、カーネル313にはカーネル署名と通常起動用プログラム検証用公開鍵が含まれ、通常起動用プログラム315には通常起動用プログラム署名が含まれているものとする。さらにカーネルB317にはカーネルB署名とstdファームアップデート用プログラム検証用公開鍵が含まれ、stdファームアップデート用プログラム319にはstdファームアップデート用署名が含まれているものとする。これらの公開鍵と署名は予め情報処理装置100の出荷前にプログラムに対して付与されたものとする。304、306、308、314、318の検証部が各プログラムを検証し、問題がなければ次のプログラムを起動することで改ざん検知を行う情報処理装置100の起動が行われる。以降ではROM291にブートプログラム303とBIOS305、フラッシュROM219にローダ307とstdファーム311とsafeファーム312が保存されているものとして説明する。
<Automatic recovery processing>
Next, with reference to FIG. 3, an automatic restoration process at the time of tampering detection of the information processing apparatus 100 according to the present embodiment will be described. In the tampering detection method according to the present embodiment, the boot program 303, the BIOS 305, the loader 307, and the kernel 313 in the std firmware 311 and the normal start-up program 315 in the case of normal start-up are activated while detecting alteration. Further, in the case of activation for update, after the loader 307, the kernel B 317 in the safe firmware 312 and the std firmware update program 319 are activated while detecting falsification. The boot program 303 includes a public key (verification information) for verifying a BIOS signature, and the BIOS 305 includes a BIOS signature (its own signature) and a public key for verifying a loader. It is assumed that the loader 307 includes the loader signature, the kernel verification public key, and the kernel B verification public key. Further, it is assumed that the kernel 313 includes the kernel signature and the public key for verifying the normal startup program, and the normal startup program 315 includes the normal startup program signature. Furthermore, it is assumed that the kernel B 317 includes the kernel B signature and the std firmware update program verification public key, and the std firmware update program 319 includes the std firmware update signature. It is assumed that these public key and signature are given to the program in advance before the information processing apparatus 100 is shipped. The verification units 304, 306, 308, 314, and 318 verify each program, and if there is no problem, the next program is started to start the information processing apparatus 100 that detects tampering. In the following description, the boot program 303 and the BIOS 305 are stored in the ROM 291, and the loader 307, the std firmware 311, and the safe firmware 312 are stored in the flash ROM 219.

情報処理装置100の電源が投入されると、ROM291からRAM212にブートプログラム303が読み込まれ、CPU210によって実行される。ブートプログラム303に含まれるBIOS改ざん検知処理部304はフラッシュROM219からBIOS305、ローダ検証用公開鍵、及びBIOS署名をRAM212に読み込む。S401で、BIOS改ざん検知処理部304は、BIOS検証用公開鍵を用いてBIOS署名の検証を行い成功したか否かを判定する。当該署名の検証に失敗した場合、S403で、BIOS改ざん検知処理部304はLED290を点灯させ、処理を終了する。一方、当該署名の検証に成功した場合、BIOS改ざん検知処理部304は、CPU210に通電し、ブートプログラムの処理を終了する。CPU210は通電されると、S402で、ROM291からBIOS305とローダ検証用公開鍵をRAM212に読み込み、BIOS305を起動する。以降の処理は全てCPU210によって処理されるものとして説明する。 When the information processing apparatus 100 is powered on, the boot program 303 is read from the ROM 291 into the RAM 212 and executed by the CPU 210. The BIOS tampering detection processing unit 304 included in the boot program 303 reads the BIOS 305, the loader verification public key, and the BIOS signature from the flash ROM 219 into the RAM 212. In step S401, the BIOS tampering detection processing unit 304 verifies the BIOS signature using the BIOS verification public key and determines whether the BIOS signature has been successful. When the verification of the signature fails, the BIOS tampering detection processing unit 304 turns on the LED 290 in S403, and ends the process. On the other hand, if the verification of the signature is successful, the BIOS tampering detection processing unit 304 energizes the CPU 210 and ends the boot program processing. When the CPU 210 is energized, in step S402, the BIOS 305 and the loader verification public key are read from the ROM 291 into the RAM 212, and the BIOS 305 is activated. It is assumed that all the subsequent processes are processed by the CPU 210.

BIOS305が起動されると、各種初期化処理を実行し、BIOS305に含まれるローダ改ざん検知処理部306がフラッシュROM219からローダ307とカーネル検証用公開鍵、及びローダ署名をRAM212に読み込む。その後、S404で、ローダ改ざん検知処理部306は、ローダ検証用公開鍵を用いてローダ署名の検証を行い、成功したか否かを判定する。当該署名の検証に失敗した場合、S410に進み、ローダ改ざん検知処理部306は、操作部220に図5の500に示すエラーコードを表示して、自動復旧処理を中断し処理を終了する。 When the BIOS 305 is activated, various initialization processes are executed, and the loader tampering detection processing unit 306 included in the BIOS 305 reads the loader 307, the kernel verification public key, and the loader signature from the flash ROM 219 into the RAM 212. After that, in step S404, the loader tampering detection processing unit 306 verifies the loader signature using the loader verification public key, and determines whether the loader signature has succeeded. If the verification of the signature fails, the process proceeds to step S410, the loader tampering detection processing unit 306 displays the error code indicated by 500 in FIG. 5 on the operation unit 220, interrupts the automatic recovery process, and ends the process.

一方、当該署名の検証に成功した場合、ローダ改ざん検知処理部306は処理を終了し、BIOS305がRAM212に読み込まれたローダ307を起動する。その後、S405で、ローダ307が起動されると、各種初期化処理を実行し、SRAM213を参照して起動モード等のフラグの確認を行う。ここでは通常起動時の例で説明するため、ここではSRAM213ではstdファーム311を起動する起動モードが選択されるフラグが立っていることを前提とし、ローダ307はstdパーティション309に含まれるstdファーム311の起動を開始する。ローダ307に含まれるカーネル改ざん検知処理部308がフラッシュROM219からstdファーム311のカーネル313と、通常起動用プログラム検証用公開鍵とカーネル署名とをRAM212に読み込む。 On the other hand, if the verification of the signature is successful, the loader tampering detection processing unit 306 finishes the process, and the BIOS 305 activates the loader 307 read in the RAM 212. After that, in step S405, when the loader 307 is activated, various initialization processes are executed, and the SRAM 213 is referenced to check flags such as the activation mode. Since an example of normal startup is described here, it is assumed here that the SRAM 213 has a flag for selecting the startup mode for starting the std firmware 311 and the loader 307 includes the std firmware 311 included in the std partition 309. Start to boot. The kernel tampering detection processing unit 308 included in the loader 307 reads the kernel 313 of the std firmware 311, the normal activation program verification public key, and the kernel signature from the flash ROM 219 into the RAM 212.

次に、S406で、カーネル改ざん検知処理部308は、カーネル検証用公開鍵を用いて、カーネル署名の検証を行い、成功したか否かを判定する。当該署名の検証に失敗した場合については後述する。一方、当該署名の検証に成功した場合、カーネル改ざん検知処理部308は処理を終了し、S407で、ローダ307がRAM212に読み込まれたカーネル313を起動する。 Next, in step S406, the kernel tampering detection processing unit 308 verifies the kernel signature using the kernel verification public key, and determines whether or not the kernel signature was successful. A case where the signature verification fails will be described later. On the other hand, if the verification of the signature is successful, the kernel tampering detection processing unit 308 terminates the process, and in step S407, the loader 307 activates the kernel 313 loaded in the RAM 212.

カーネル313は起動されると、各種初期化処理が実行される。さらに、カーネル313に含まれるプログラム改ざん検知処理部314がフラッシュROM219から通常起動用プログラム315と通常起動用プログラム署名とをRAM212に読み込む。その後、S408で、プログラム改ざん検知処理部314は、通用起動用プログラム検証用公開鍵を用いて、通常起動用プログラム署名の検証を行い、成功したか否かを判定する。当該署名の検証に失敗した場合は後述する。一方、当該署名の検証に成功した場合、プログラム改ざん検知処理部314は処理を終了し、S409で通常起動用プログラム315を起動する。 When the kernel 313 is activated, various initialization processes are executed. Further, the program tampering detection processing unit 314 included in the kernel 313 reads the normal startup program 315 and the normal startup program signature from the flash ROM 219 into the RAM 212. After that, in step S408, the program tampering detection processing unit 314 verifies the normal activation program signature using the public activation program verification public key, and determines whether or not the signature has been successful. If the verification of the signature fails, it will be described later. On the other hand, if the verification of the signature is successful, the program tampering detection processing unit 314 terminates the process and activates the normal activation program 315 in S409.

S406又はS408でstdファーム311のカーネル313や通常起動用プログラム315の署名の検証に失敗し、改ざんが検知された場合、S411で、CPU210は、SRAM213に自動復旧フラグを立てリブートする。このリブートのとき、前述のS401、S402、S403でのBIOSの検証と起動、S404でのローダの検証が同様に行われるが図3のフローチャートでは省略している。 When the signature verification of the kernel 313 of the std firmware 311 or the normal boot program 315 is failed in S406 or S408 and tampering is detected, the CPU 210 sets the automatic recovery flag in the SRAM 213 and reboots in S411. At the time of this reboot, the BIOS verification and activation in S401, S402, and S403 and the loader verification in S404 are performed in the same manner, but they are omitted in the flowchart of FIG.

続いて、S412で、ローダ307は起動されると、各種初期化処理を実行し、SRAM213を参照して起動モード等のフラグの確認を行う。それによりローダ307は自動復旧モードによるsafeファーム312による起動であることを判断する。この場合、ローダ307に含まれるカーネル改ざん検知処理部308は、フラッシュROM219からsafeファーム312のカーネルB317と、stdファームアップデート用プログラム検証用公開鍵と、カーネルB署名とをRAM212に読み込む。その後、S413で、カーネル改ざん検知処理部308は、カーネルB検証用公開鍵を用いて、カーネルB署名の検証を行い、成功したか否かを判定する。当該署名の検証に失敗した場合は、S410に進み、カーネル改ざん検知処理部308は操作部220に図5の500に示すエラーコードを表示し、自動復旧処理を中断し処理を終了する。一方、当該署名の検証に成功した場合、S414で、カーネル改ざん検知処理部308は、S414でローダ307がRAM212に読み込まれたカーネルB317を起動する。 Subsequently, in step S412, when the loader 307 is activated, it executes various initialization processes and refers to the SRAM 213 to check flags such as the activation mode. As a result, the loader 307 determines that the safe firmware 312 is activated in the automatic recovery mode. In this case, the kernel tampering detection processing unit 308 included in the loader 307 reads the kernel B 317 of the safe firmware 312, the std firmware update program verification public key, and the kernel B signature from the flash ROM 219 into the RAM 212. Thereafter, in step S413, the kernel tampering detection processing unit 308 verifies the kernel B signature using the kernel B verification public key, and determines whether or not the kernel B signature was successful. If the verification of the signature fails, the process advances to step S410, the kernel tampering detection processing unit 308 displays the error code 500 in FIG. 5 on the operation unit 220, interrupts the automatic recovery process, and ends the process. On the other hand, if the verification of the signature is successful, in step S414, the kernel tampering detection processing unit 308 activates the kernel B317 that is loaded into the RAM 212 by the loader 307 in step S414.

カーネルB317は起動されると、各種初期化処理を実行する。その後、カーネルB317に含まれるプログラム改ざん検知処理部B318がフラッシュROM219からstdファームアップデート用プログラム319と、stdファームアップデート用プログラム署名をRAM212に読み込む。続いて、S415で、プログラム改ざん検知処理部B318は、stdファームアップデート用プログラム検証用公開鍵を用いて、stdファームアップデート用プログラム署名の検証を行い、成功したか否かを判定する。当該署名の検証に失敗した場合は、S410に進み、プログラム改ざん検知処理部B318は、操作部220に500に示すエラーコードを表示し、自動復旧処理を中断し処理を終了する。一方、当該署名の検証に成功した場合、プログラム改ざん検知処理部B318は処理を終了し、S416で、stdファームアップデート用プログラム319を起動する。 When booted, the kernel B317 executes various initialization processes. After that, the program tampering detection processing unit B318 included in the kernel B317 reads the std firmware update program 319 and the std firmware update program signature from the flash ROM 219 into the RAM 212. Subsequently, in step S415, the program tampering detection processing unit B318 verifies the std firmware update program signature using the std firmware update program verification public key, and determines whether the std firmware update program signature has been successful. If the verification of the signature fails, the process proceeds to step S410, the program tampering detection processing unit B318 displays the error code indicated by 500 on the operation unit 220, interrupts the automatic recovery process, and ends the process. On the other hand, if the verification of the signature is successful, the program tampering detection processing unit B318 ends the processing and starts the std firmware update program 319 in S416.

stdファームアップデート用プログラム319は起動されると、SRAM213の自動復旧フラグを参照する。それによりstdファームアップデート用プログラム319は、stdファーム311の改ざん検知による自動復旧モードであることを判断する。S417で、stdファームアップデート用プログラム319は、外部サーバ250が有効であるかどうかを確認する。ここでいう外部サーバ250が有効とは、情報処理装置100がLAN110上又はインターネット上の外部サーバ250と通信でき、かつ、外部サーバ250からファームをダウンロードしアップデート可能な設定となっている状態を示す。外部サーバ250が有効でない場合は、S418に進み、stdファームアップデート用プログラム319は、ファームのアップデートによって復旧可能であることを示す図5の510に示すエラーコード表示を行い、自動復旧処理を中断し処理を終了する。このように、外部サーバ250が有効でないためにアップデートによって改ざん状態からの復旧の見込みがあるのに自動復旧できない場合、ユーザから出動を要請されたサービスマンが復旧方法の判断材料となる情報として、510に示すエラーコードを表示する。 When the std firmware update program 319 is started, it refers to the automatic recovery flag of the SRAM 213. As a result, the std firmware update program 319 determines that the std firmware 311 is in the automatic recovery mode by the alteration detection. In S417, the std firmware update program 319 confirms whether the external server 250 is valid. The external server 250 being valid here means a state in which the information processing apparatus 100 can communicate with the external server 250 on the LAN 110 or the Internet, and the firmware can be downloaded from the external server 250 and updated. .. If the external server 250 is not valid, the process advances to step S418, and the std firmware update program 319 displays the error code 510 shown in FIG. 5 indicating that recovery is possible by updating the firmware, and interrupts the automatic recovery process. The process ends. In this way, when the external server 250 is not valid and there is a possibility of recovery from a tampered state due to an update, but automatic recovery is not possible, the information requested by the user to be dispatched by the serviceman is used as information for determining the recovery method. The error code 510 is displayed.

一方、外部サーバ250が有効である場合、S419に進み、stdファームアップデート用プログラム319は、外部サーバ250から、現状改ざんが検知されたstdファーム311と同じバージョンのファームをダウンロードする。続いて、S420で、stdファームアップデート用プログラム319は、外部サーバ250からファームのダウンロード中にエラーが発生したか否かを判断する。エラーが発生した場合は、S410に進み、stdファームアップデート用プログラム319は、操作部220に500のエラーコードを表示し、自動復旧処理を中断し処理を終了する。 On the other hand, if the external server 250 is valid, the process advances to step S419, and the std firmware update program 319 downloads from the external server 250 a firmware of the same version as the std firmware 311 in which the current tampering is detected. Subsequently, in S420, the std firmware update program 319 determines whether or not an error has occurred during downloading of the firmware from the external server 250. If an error occurs, the process proceeds to S410, the std firmware update program 319 displays an error code of 500 on the operation unit 220, interrupts the automatic recovery process, and ends the process.

一方、ファームのダウンロードが無事完了した場合は、S421に進み、stdファームアップデート用プログラム319は、改ざんされているstdファーム311を、外部サーバ250からダウンロードした同一バージョンのファームにアップデートする。続いて、S422で、stdファームアップデート用プログラム319は、アップデート中にエラーが発生したか否かを判断する。エラーが発生した場合は、S410に進み、stdファームアップデート用プログラム319は操作部220に500のエラーコードを表示し、自動復旧処理を中断し処理を終了する。一方、stdファーム311のアップデートに成功した場合は、S423に進み、stdファームアップデート用プログラム319は、装置をリブートして通常起動を行う。 On the other hand, if the download of the firmware is completed successfully, the process proceeds to S421, and the std firmware update program 319 updates the falsified std firmware 311 to the same version of the firmware downloaded from the external server 250. Subsequently, in step S422, the std firmware update program 319 determines whether an error has occurred during the update. When an error occurs, the process proceeds to S410, the std firmware update program 319 displays an error code of 500 on the operation unit 220, interrupts the automatic recovery process, and ends the process. On the other hand, if the update of the std firmware 311 is successful, the processing proceeds to step S423, and the std firmware update program 319 reboots the device and performs normal activation.

以上説明したように、本実施形態の情報処理装置は、ブートプログラムの起動に続いて複数のモジュールをそのプログラムの改ざんを検知しつつ順次起動する。また、本情報処理装置は、複数のモジュールのうち、次に起動するモジュールの署名を検証する検証情報を用いて、当該次に起動するモジュールの改ざんを検知し、署名の検証が成功すると、次に起動するモジュールを起動する。一方、本情報処理装置は、所定のモジュールの改ざんが検知されると、改ざんされたモジュールを更新して自動復旧を行い、所定のモジュール以外のモジュールの改ざんが検知されると、対応するエラーコードを操作部に表示する。より具体的には、本情報処理装置では、通常モードによる起動時に、stdファーム311内のカーネル313や通常起動用プログラム315(所定のモジュール)に改ざんがあった場合は、アップデートモードでの起動に切り替える。アップデートモードでは、外部サーバ250から同一バージョンのstdファームを取得して、アップデートすることで改ざん状態から自動復旧する。このように、本実施形態によれば、情報処理装置の起動中にソフトウェアの改ざんが検知された場合に、改ざん状態から自動復旧する仕組みを提供することができる。つまり、本実施形態によれば、自動復旧可能な改ざんにおいては、サービスマンによる復旧処理を行うことなく自動復旧を行うことができ、よりユーザの利便性を向上させることができる。 As described above, the information processing apparatus according to the present embodiment sequentially activates a plurality of modules, following the activation of the boot program, while detecting the alteration of the program. In addition, the information processing apparatus uses the verification information for verifying the signature of the module to be activated next among the plurality of modules, detects tampering with the module to be activated next, and if the signature verification succeeds, Start the module that will be started. On the other hand, when the tampering of the predetermined module is detected, the information processing apparatus updates the tampered module and automatically restores the tampered module. When the tampering of the module other than the predetermined module is detected, the corresponding error code is detected. Is displayed on the operation unit. More specifically, in the information processing apparatus, when the kernel 313 in the std farm 311 or the normal boot program 315 (predetermined module) is tampered with at the time of booting in the normal mode, the boot in the update mode is performed. Switch. In the update mode, the std firmware of the same version is acquired from the external server 250 and updated to automatically recover from the tampered state. As described above, according to the present embodiment, it is possible to provide a mechanism for automatically recovering from the tampered state when the tampering of the software is detected during the activation of the information processing apparatus. That is, according to the present embodiment, in falsification capable of automatic restoration, automatic restoration can be performed without performing restoration processing by a service person, and user convenience can be further improved.

また、本発明は上記実施形態に限らず様々な変形が可能である。例えば、上記実施形態では情報処理装置100が通常起動を開始し改ざんを検知するケースを例としたが、本発明では、アップデート用起動を開始して改ざんを検知した場合であっても同様に改ざん状態からの自動復旧が可能である。この場合、アップデートモードでの起動時に、safeファーム312内のカーネルB317、stdファームアップデート用プログラム319に改ざんがあった場合は、通常モードでの起動に切り替える。さらに、stdファーム311内の通常起動用プログラム315の一部であるsafeファームアップデート用プログラム316によって、同様の手法でsafeファーム312をアップデートすることで改ざん状態から復旧することができる。このように、情報処理装置100の改ざん検知時に自動復旧を行う仕組みを提供することで、ユーザの利便性が向上し、サービスマンの出動コスト等を抑えることができる。 Further, the present invention is not limited to the above-described embodiment, and various modifications can be made. For example, in the above embodiment, the case where the information processing apparatus 100 starts normal activation and detects tampering is taken as an example, but in the present invention, even if tampering is detected by starting activation for update, tampering is similarly performed. Automatic recovery from the state is possible. In this case, when the kernel B 317 and the std firmware update program 319 in the safe firmware 312 are tampered with at the time of activation in the update mode, the activation is switched to the normal mode. Further, the safe firmware 312 can be recovered from the tampered state by updating the safe firmware 312 by a similar method using the safe firmware update program 316 which is a part of the normal startup program 315 in the std firmware 311. In this way, by providing a mechanism for performing automatic recovery when the information processing device 100 is tampered with, it is possible to improve the convenience of the user and suppress the dispatch cost of the service person.

<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、電源投入後に順次起動されたプログラムが次に起動するプログラムの署名検証をしながら起動する方法であった。この場合、各プログラムがそれぞれに公開鍵、検証処理のためのプログラム等を保持する必要がある。そのため、同じ署名アルゴリズム、及び公開鍵を用いる場合は、プログラム格納領域を余分に使うことになり無駄が多い。この点を改善する手法として、同じ署名アルゴリズム、公開鍵を用いる場合は可能な範囲で後段のプロムラムの署名検証処理をまとめて行うことが考えられる。本実施形態では、BIOS305において、ローダ307、stdファーム311内のカーネル313、safeファーム312内のカーネルB317の署名検証処理をまとめて実行する例について説明する。図2の例では、署名アルゴリズムと公開鍵の共通化によって、BIOS305内のローダ改ざん検知処理部306に相当する部分がローダ307、stdファーム311内のカーネル313、safeファーム312内のカーネルB317の署名検証を行う。これにより、ローダ307はカーネル改ざん検知処理部308とカーネル検証用公開鍵、カーネルB検証用公開鍵を保持する必要がなくなる。
<Second Embodiment>
Below, the 2nd Embodiment of this invention is described. The above-described first embodiment is a method in which the programs sequentially started after the power is turned on are started while verifying the signature of the next program to be started. In this case, each program needs to hold a public key, a program for verification processing, and the like. Therefore, when the same signature algorithm and public key are used, the program storage area is additionally used, which is wasteful. As a method of improving this point, when the same signature algorithm and public key are used, it is conceivable to collectively perform the signature verification processing of the subsequent program to the extent possible. In the present embodiment, an example will be described in which the BIOS 305 collectively executes the signature verification processing of the loader 307, the kernel 313 in the std firmware 311, and the kernel B317 in the safe firmware 312. In the example of FIG. 2, the part corresponding to the loader alteration detection processing unit 306 in the BIOS 305 is the signature of the loader 307, the kernel 313 in the std farm 311, and the kernel B 317 in the safe farm 312 due to the common use of the signature algorithm and the public key. Perform verification. This eliminates the need for the loader 307 to hold the kernel tampering detection processing unit 308, the kernel verification public key, and the kernel B verification public key.

<自動復旧処理>
図4を参照して、本実施形態に係る情報処理装置100の改ざん検知時における自動復旧処理を説明する。ここでは、上記第1の実施形態で説明した図3のフローチャートと異なる部分について主に説明する。即ち、S501乃至S503は図3のS401乃至S403と同一の処理のため説明を省略する。
<Automatic recovery processing>
With reference to FIG. 4, an automatic restoration process at the time of tampering detection of the information processing apparatus 100 according to the present embodiment will be described. Here, parts different from the flowchart of FIG. 3 described in the first embodiment will be mainly described. That is, steps S501 to S503 are the same as steps S401 to S403 in FIG.

S502でBIOS305が起動されると、当該BIOS305は各種初期化処理を実行する。さらに、BIOS305のローダ改ざん検知処理部306が、ローダ307、ローダ、カーネル、カーネルB共通の検証用公開鍵、ローダ署名、カーネル署名、及びカーネルB署名を、フラッシュROM219からRAM212に読み込む。その後、S504で、ローダ改ざん検知処理部306は、ローダ、カーネル、カーネルB共通の検証用公開鍵を用いて、ローダ、カーネル、カーネルBの署名の検証を一括して行い、成功したか否かを判定する。 When the BIOS 305 is activated in S502, the BIOS 305 executes various initialization processes. Further, the loader tampering detection processing unit 306 of the BIOS 305 reads the loader 307, the loader, the kernel, the verification public key common to the kernel B, the loader signature, the kernel signature, and the kernel B signature from the flash ROM 219 to the RAM 212. After that, in step S504, the loader tampering detection processing unit 306 collectively verifies the signatures of the loader, the kernel, and the kernel B by using the verification public key common to the loader, the kernel, and the kernel B. To judge.

S505で、ローダ改ざん検知処理部306は、改ざんされたプログラムがあるか否かを判断する。ローダ307、カーネル313、及びカーネルB317の全ての署名の検証に成功した場合、ローダ改ざん検知処理部306は処理を終了し、BIOS305がRAM212に読み込まれたローダ307を起動する。この場合、通常起動となり、ローダ307はstdパーティション309に含まれるstdファーム311の起動を開始する。S506乃至S509は、それぞれ、図3のS405乃至409と同一の処理のため説明を省略する。 In step S505, the loader tampering detection processing unit 306 determines whether there is a tampered program. When all the signatures of the loader 307, the kernel 313, and the kernel B 317 have been successfully verified, the loader tampering detection processing unit 306 finishes the process, and the BIOS 305 activates the loader 307 read in the RAM 212. In this case, the normal startup is performed, and the loader 307 starts the activation of the std firmware 311 included in the std partition 309. Steps S506 to S509 are the same as steps S405 to 409 of FIG. 3, respectively, and therefore description thereof will be omitted.

一方、S505でローダ307、カーネル313、及びカーネルB317のいずれかの署名の検証に失敗した場合、S510に進み、ローダ改ざん検知処理部306は、アップデートによる自動復旧が可能かどうか判断する。本実施形態では、ローダ307、stdファーム311内のカーネル313、及びsafeファーム312内のカーネルB317のうち、カーネル313が改ざんされた場合以外はstdファーム311を自動アップデートして改ざん状態から復旧することはできない。自動復旧ができないと判断した場合は、S511に進み、上記第1の実施形態で説明した図3のS410と同様に、ローダ改ざん検知処理部306が操作部220に図5の500に示すエラーコードを表示し、処理を終了する。 On the other hand, if the verification of the signature of any one of the loader 307, the kernel 313, and the kernel B 317 fails in S505, the process proceeds to S510, and the loader tampering detection processing unit 306 determines whether the automatic recovery by updating is possible. In the present embodiment, among the loader 307, the kernel 313 in the std farm 311, and the kernel B317 in the safe farm 312, the std farm 311 is automatically updated except for the case where the kernel 313 has been tampered with to recover from the tampered state. I can't. If it is determined that the automatic restoration cannot be performed, the process proceeds to S511, and the loader tampering detection processing unit 306 causes the operation unit 220 to display the error code 500 shown in FIG. 5 as in S410 of FIG. 3 described in the first embodiment. Is displayed and the process ends.

stdファーム311内のカーネル313のみ改ざんされていた場合は、ローダ改ざん検知処理部306は、自動復旧が可能と判断し、S512に進み、図3のS411と同様に、SRAM213に自動復旧フラグを立てリブートする。このリブートのとき、前述のS501乃至S504でのBIOSの検証と起動、ローダ、カーネル、カーネルBの検証が同様に行われるが、詳細な説明については省略する。なお、S513乃至S523のアップデート起動時の改ざん検知時における自動復旧処理は、それぞれ、図3のS412、S414乃至S423と同一の処理のため説明を省略する。 If only the kernel 313 in the std firmware 311 has been tampered with, the loader tampering detection processing unit 306 determines that automatic restoration is possible, proceeds to S512, and sets an automatic restoration flag in the SRAM 213 as in S411 of FIG. Reboot. At the time of this reboot, the BIOS verification and boot in S501 to S504 and the verification of the loader, kernel, and kernel B are performed in the same manner, but a detailed description thereof will be omitted. Note that the automatic restoration process at the time of tampering detection at the time of starting the update in S513 to S523 is the same as S412 and S414 to S423 in FIG.

以上説明したように、本実施形態によれば、同じ署名アルゴリズム、公開鍵を用いて可能な範囲で後段のプロムラムの署名検証処理をまとめて行う改ざん検知方法でも、改ざん検知時の自動復旧が可能である。アップデート用起動を開始して改ざんを検知した場合であっても、改ざん状態からの自動復旧が可能である点は、上記第1の実施形態と同様である。 As described above, according to the present embodiment, even with the tampering detection method that collectively performs the signature verification process of the subsequent program to the extent possible using the same signature algorithm and public key, automatic recovery at the time of tampering detection is possible. Is. Similar to the first embodiment, the automatic recovery from the tampered state is possible even when tampering is detected by starting the update boot.

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

210:CPU、211:チップセット、212:RAM、213:SRAM、214:NIC、218:HDD、219:フラッシュROM、220:操作部、221:プリンタエンジン、222:スキャナエンジン、240:電源、250:外部サーバ、260:PC、270:RTC、280:埋め込みコントローラ、290:LED、291:ROM 210: CPU, 211: Chip set, 212: RAM, 213: SRAM, 214: NIC, 218: HDD, 219: Flash ROM, 220: Operation unit, 221: Printer engine, 222: Scanner engine, 240: Power supply, 250 : External server, 260: PC, 270: RTC, 280: embedded controller, 290: LED, 291: ROM

Claims (11)

ブートプログラムの起動に続いて複数のモジュールを順次起動する情報処理装置であって、
前記複数のモジュールのうち、次に起動するモジュールの署名を検証する検証情報を用いて、該次に起動するモジュールの改ざんを検知する検知手段と、
前記検知手段による署名の検証が成功すると、前記次に起動するモジュールを起動する起動手段と、
前記検知手段によって所定のモジュールの改ざんが検知されると、改ざんされたモジュールを更新して自動復旧を行い、前記検知手段によって前記所定のモジュール以外のモジュールの改ざんが検知されると、対応するエラーコードを操作部に表示する制御手段と
を備えることを特徴とする情報処理装置。
An information processing device that sequentially starts a plurality of modules after starting a boot program,
Of the plurality of modules, detection means for detecting tampering with the next module to be activated using verification information for verifying the signature of the next module to be activated,
When the verification of the signature by the detection means is successful, an activation means for activating the module to be activated next,
When tampering of a predetermined module is detected by the detection unit, the tampered module is updated and automatic recovery is performed, and when tampering of a module other than the predetermined module is detected by the detection unit, a corresponding error is detected. An information processing apparatus comprising: a control unit that displays a code on an operation unit.
前記所定のモジュールを通常モードで起動する第1プログラムを格納した第1パーティションと、前記所定のモジュールの改ざんが検知された場合に前記第1プログラムとは異なる第2プログラムを用いた起動を行うアップデートモードで起動する該第2プログラムを格納した第2パーティションとを有する記憶手段をさらに備え、
前記制御手段は、前記自動復旧を行う場合には、前記通常モードによる起動からアップデートモードによる起動に切り替えることを特徴とする請求項1に記載の情報処理装置。
An update that uses a first partition that stores a first program that activates the predetermined module in a normal mode and a second program that is different from the first program when tampering with the predetermined module is detected Further comprising a storage unit having a second partition storing the second program activated in the mode,
The information processing apparatus according to claim 1, wherein the control unit switches from activation in the normal mode to activation in the update mode when performing the automatic recovery.
前記制御手段は、前記アップデートモードでは、前記第1プログラムを新たなプログラムでアップデートすることを特徴とする請求項2に記載の情報処理装置。 The information processing apparatus according to claim 2, wherein the control unit updates the first program with a new program in the update mode. 前記制御手段は、前記新たなプログラムを外部サーバから取得して前記第1プログラムをアップデートすることを特徴とする請求項3に記載の情報処理装置。 The information processing apparatus according to claim 3, wherein the control unit acquires the new program from an external server and updates the first program. 前記制御手段は、前記新たなプログラムを前記外部サーバから取得する際にエラーが発生すると、自動復旧を中断して、対応するエラーコードを前記操作部に表示することを特徴とする請求項4に記載の情報処理装置。 5. The control means, if an error occurs when acquiring the new program from the external server, interrupts the automatic recovery and displays a corresponding error code on the operation unit. The information processing device described. 前記制御手段は、前記アップデートモードにおいて、前記第1プログラムのアップデート中にエラーが発生すると、自動復旧を中断して、対応するエラーコードを前記操作部に表示することを特徴とする請求項4又は5に記載の情報処理装置。 5. The control means, when an error occurs during updating of the first program in the update mode, interrupts automatic recovery and displays a corresponding error code on the operation unit. 5. The information processing device according to item 5. 前記複数のモジュールには、少なくとも、BIOS(Basic Input/Output System)、ローダ、第1カーネル、第2カーネル、通常モードで用いる第1プログラムモジュール、及びアップデートモードで用いる第2プログラムモジュールが含まれ、
各モジュールには、前記検知手段及び前記起動手段が含まれ、前記検証情報と自身の署名とが予め格納されていることを特徴とする請求項2乃至6の何れか1項に記載の情報処理装置。
The plurality of modules include at least a BIOS (Basic Input/Output System), a loader, a first kernel, a second kernel, a first program module used in a normal mode, and a second program module used in an update mode,
7. The information processing according to claim 2, wherein each module includes the detection unit and the activation unit, and the verification information and its own signature are stored in advance. apparatus.
前記複数のモジュールには、少なくとも、BIOS(Basic Input/Output System)、ローダ、第1カーネル、第2カーネル、通常モードで用いる第1プログラムモジュール、及びアップデートモードで用いる第2プログラムモジュールが含まれ、
各モジュールには、前記起動手段が含まれ、自身の署名が予め格納され、
前記BIOSには、さらに、前記ローダ、前記第1カーネル、及び第2カーネルの改ざんを検知するための前記検知手段が含まれ、前記ローダ、前記第1カーネル、及び第2カーネルの検証情報が予め格納され、
前記第1カーネルには、さらに、前記第1プログラムモジュールの改ざんを検知するための前記検知手段が含まれ、前記第1プログラムの検証情報が予め格納され、
前記第2カーネルには、さらに、前記第2プログラムモジュールの改ざんを検知するための前記検知手段が含まれ、前記第2プログラムの検証情報が予め格納されることを特徴とする請求項2乃至7の何れか1項に記載の情報処理装置。
The plurality of modules include at least a BIOS (Basic Input/Output System), a loader, a first kernel, a second kernel, a first program module used in a normal mode, and a second program module used in an update mode,
Each module includes the activation means, and stores its own signature in advance,
The BIOS further includes the detection means for detecting falsification of the loader, the first kernel, and the second kernel, and the verification information of the loader, the first kernel, and the second kernel is previously stored. Stored,
The first kernel further includes the detection means for detecting tampering of the first program module, and the verification information of the first program is stored in advance.
8. The second kernel further includes the detection unit for detecting tampering of the second program module, and the verification information of the second program is stored in advance. The information processing apparatus according to any one of 1.
前記所定のモジュールとは、前記第1カーネル及び前記第1プログラムモジュールであることを特徴とする請求項7又は8に記載の情報処理装置。 The information processing apparatus according to claim 7, wherein the predetermined module is the first kernel and the first program module. ブートプログラムの起動に続いて複数のモジュールを順次起動する情報処理装置の制御方法であって、
検知手段が、前記複数のモジュールのうち、次に起動するモジュールの署名を検証する検証情報を用いて、該次に起動するモジュールの改ざんを検知する検知工程と、
起動手段が、前記検知工程での署名の検証が成功すると、前記次に起動するモジュールを起動する起動工程と、
制御手段が、前記検知工程で所定のモジュールの改ざんが検知されると、改ざんされたモジュールを更新して自動復旧を行い、前記検知工程で前記所定のモジュール以外のモジュールの改ざんが検知されると、対応するエラーコードを操作部に表示する制御工程と
を含むことを特徴とする情報処理装置の制御方法。
A method for controlling an information processing apparatus, which sequentially starts a plurality of modules after starting a boot program,
A detection step in which the detection means detects tampering with the module to be activated next time using the verification information for verifying the signature of the module to be activated next among the plurality of modules;
An activation step in which the activation means activates the module to be activated next when the signature verification in the detection step is successful;
When tampering of a predetermined module is detected in the detection step, the control means updates the tampered module and performs automatic restoration, and when tampering with a module other than the predetermined module is detected in the detection step. And a control step of displaying a corresponding error code on the operation unit.
ブートプログラムの起動に続いて複数のモジュールを順次起動する情報処理装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
検知手段が、前記複数のモジュールのうち、次に起動するモジュールの署名を検証する検証情報を用いて、該次に起動するモジュールの改ざんを検知する検知工程と、
起動手段が、前記検知工程での署名の検証が成功すると、前記次に起動するモジュールを起動する起動工程と、
制御手段が、前記検知工程で所定のモジュールの改ざんが検知されると、改ざんされたモジュールを更新して自動復旧を行い、前記検知工程で前記所定のモジュール以外のモジュールの改ざんが検知されると、対応するエラーコードを操作部に表示する制御工程と
ことを特徴とするプログラム。
A program for causing a computer to execute each step in a control method of an information processing device, which sequentially starts a plurality of modules following activation of a boot program, the control method comprising:
A detection step in which the detection means detects tampering with the module to be activated next time using the verification information for verifying the signature of the module to be activated next among the plurality of modules;
An activation step in which the activation means activates the module to be activated next when the signature verification in the detection step is successful;
When tampering of a predetermined module is detected in the detection step, the control means updates the tampered module and performs automatic restoration, and when tampering with a module other than the predetermined module is detected in the detection step. And a control step of displaying a corresponding error code on the operation unit.
JP2018217519A 2018-11-20 2018-11-20 Image formation device, control method and program of the same Pending JP2020082441A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018217519A JP2020082441A (en) 2018-11-20 2018-11-20 Image formation device, control method and program of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018217519A JP2020082441A (en) 2018-11-20 2018-11-20 Image formation device, control method and program of the same

Publications (1)

Publication Number Publication Date
JP2020082441A true JP2020082441A (en) 2020-06-04

Family

ID=70905542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018217519A Pending JP2020082441A (en) 2018-11-20 2018-11-20 Image formation device, control method and program of the same

Country Status (1)

Country Link
JP (1) JP2020082441A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632514A (en) * 2020-12-15 2021-04-09 北京握奇数据股份有限公司 Method and device for preventing driver component from being tampered based on USBKey
WO2022145085A1 (en) * 2020-12-28 2022-07-07 株式会社日立産機システム Information processing device, information processing system, and file management method for information processing device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632514A (en) * 2020-12-15 2021-04-09 北京握奇数据股份有限公司 Method and device for preventing driver component from being tampered based on USBKey
WO2022145085A1 (en) * 2020-12-28 2022-07-07 株式会社日立産機システム Information processing device, information processing system, and file management method for information processing device
JP7462077B2 (en) 2020-12-28 2024-04-04 株式会社日立産機システム Information processing device and file processing method therefor

Similar Documents

Publication Publication Date Title
JP6942601B2 (en) Information processing device, its control method, and program
US9807268B2 (en) Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
US20120297242A1 (en) Image processing apparatus and method for controlling image processing apparatus
JP7009270B2 (en) Information processing device and program verification method
JP2021002081A (en) Information processing apparatus, control method thereof and program
JP2020082441A (en) Image formation device, control method and program of the same
JP6482211B2 (en) Information processing apparatus, control method thereof, and program
JP2022135443A (en) Information processor, method for processing information, and program
JP7206106B2 (en) Information processing device and program
JP7374780B2 (en) Information processing device and method of controlling the information processing device
JP7182966B2 (en) Information processing device, method for starting information processing device, and program
JP2021140601A (en) Information processing device, control method therefor, and program
JP6706278B2 (en) Information processing apparatus and information processing method
JP2020053002A (en) Information processing apparatus, control method thereof, and program
JP2022071954A (en) Information processing device, information processing method, and program
JP2020154601A (en) Information processing device and its control method, and program
US20230132214A1 (en) Information processing apparatus and method of the same
JP6457756B2 (en) Information processing apparatus, control method thereof, and program
JP2023064046A (en) Information processing apparatus and method for starting the same
JP2020181540A (en) Information processing apparatus and data verification method
JP2022187302A (en) Information processing device, control method thereof, and program
JP2020052597A (en) Information processing apparatus, control method thereof, and program
US11928217B2 (en) Information processing apparatus, control method of information processing apparatus, and storage medium
JP2021117523A (en) Information processing apparatus, method for processing information processing apparatus, and program
JP2021128469A (en) Information processor and boot method for information processor

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