JP2021140601A - Information processing device, control method therefor, and program - Google Patents

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

Info

Publication number
JP2021140601A
JP2021140601A JP2020039215A JP2020039215A JP2021140601A JP 2021140601 A JP2021140601 A JP 2021140601A JP 2020039215 A JP2020039215 A JP 2020039215A JP 2020039215 A JP2020039215 A JP 2020039215A JP 2021140601 A JP2021140601 A JP 2021140601A
Authority
JP
Japan
Prior art keywords
information processing
program
verification
module
processing device
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
JP2020039215A
Other languages
Japanese (ja)
Inventor
弘之 中根
Hiroyuki Nakane
弘之 中根
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 JP2020039215A priority Critical patent/JP2021140601A/en
Publication of JP2021140601A publication Critical patent/JP2021140601A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

To provide a mechanism for restoring a system without exchanging hardware when the validity of a program is not verified even in the case that information cannot be acquired through a network.SOLUTION: An information processing device sequentially starts a plurality of modules following a start of a boot program, and has a verification function for verifying the validity of a program to be executed by each module and stopping the information processing device in the case of failing in the verification. Also, the information processing device sets the validation of the verification function, and generates a device release key to start a restoration mode for restoring the stopped information processing device when the verification function is validated.SELECTED DRAWING: Figure 4

Description

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

ソフトウェアの脆弱性をついて、ソフトウェアを改ざんし、コンピュータを悪用する攻撃が問題となっている。この攻撃対策として、プログラムに署名を施して保存しておき、起動するたびにプログラムの署名を検証することで改ざんの有無を検知する方法(プログラムの正当性を検証する方法)が考えられている。特許文献1には、プログラムの改ざんが検知された場合に、システムを継続して利用することはセキュリティ上危険であるため動作を停止し、ユーザに対してエラー情報とともに復旧方法を通知することが提案されている。 Attacks that exploit software vulnerabilities, tamper with software, and exploit computers have become a problem. As a countermeasure against this attack, a method of detecting the presence or absence of tampering by signing and saving the program and verifying the signature of the program each time it is started (a method of verifying the correctness of the program) is considered. .. In Patent Document 1, when falsification of a program is detected, continuous use of the system is dangerous for security, so the operation is stopped and the user is notified of the recovery method together with the error information. Proposed.

特開2015−53015号公報Japanese Unexamined Patent Publication No. 2015-53015

しかしながら、上記従来技術には以下に記載する課題がある。上記従来技術では、例えば最も安全な復旧方法として、改ざんされたファームウェアが搭載されているハードウェアの基板交換が挙げられる。しかし、改ざんが検知された基板の全てを交換することは物理的なコストの増大に繋がり非現実的な解決策である。 However, the above-mentioned prior art has the following problems. In the above-mentioned prior art, for example, the safest recovery method is to replace the board of the hardware on which the tampered firmware is installed. However, replacing all of the boards on which tampering has been detected leads to an increase in physical costs and is an unrealistic solution.

したがって、特殊起動を行い、外部のセキュアな機関から発行されたワンタイムパスワードを用いて認証を行うことで一時的に改ざん検知によるシステム停止を解除して、改ざん検知機能を無効化することが考えられる。この場合、改ざん検知機能の無効化中に、正規のファームウェアをクリーンインストールすることでハードウェア基板を交換することなくシステムを復旧することができる。しかし、ワンタイムパスワードでの解除キーはセキュリティが保証された外部機関から入手する経路である一方、外部機関との通信を有していない一般のシステム管理者等は、通信を介して解除キーを入手することができず、復旧することができないという課題がある。 Therefore, it is conceivable to perform a special activation and authenticate using a one-time password issued by an external secure organization to temporarily cancel the system stop due to tampering detection and disable the tampering detection function. Be done. In this case, the system can be restored without replacing the hardware board by performing a clean installation of the genuine firmware while the tampering detection function is disabled. However, while the unlock key with a one-time password is a route obtained from an external organization whose security is guaranteed, general system administrators who do not have communication with the external organization can use the unlock key via communication. There is a problem that it cannot be obtained and cannot be restored.

本発明は、上述の問題の少なくとも一つに鑑みて成されたものであり、ネットワークを介して情報を取得することができない場合であっても、プログラムの正当性が検証されない際にハードウェアの交換を行うことなくシステムを復旧する仕組みを提供する。 The present invention has been made in view of at least one of the above-mentioned problems, and even when information cannot be obtained via a network, when the validity of the program is not verified, the hardware Provide a mechanism to restore the system without replacement.

本発明は、例えば、ブートプログラムの起動に続いて複数のモジュールを順次起動する情報処理装置であって、各モジュールで実行されるプログラムの正当性の検証を行い、該検証に失敗した場合には前記情報処理装置を停止する検証手段と、前記検証手段による検証機能の有効化を設定する設定手段と、前記検証機能が有効化された際に、停止された前記情報処理装置を復旧する復旧モードで起動するためのデバイス解除キーを生成する生成手段とを備えることを特徴とする。 The present invention is, for example, an information processing device that sequentially starts a plurality of modules after starting a boot program, and verifies the validity of the program executed by each module, and when the verification fails. A verification means for stopping the information processing device, a setting means for setting the activation of the verification function by the verification means, and a recovery mode for recovering the stopped information processing device when the verification function is enabled. It is characterized in that it is provided with a generation means for generating a device release key for booting with.

本発明によれば、ネットワークを介して情報を取得することができない場合であっても、プログラムの正当性が検証されない際にハードウェアの交換を行うことなくシステムを復旧することができる。 According to the present invention, even when information cannot be acquired via the network, the system can be restored without exchanging hardware when the validity of the program is not verified.

一実施形態に係る複合機のハードウェア構成図。The hardware block diagram of the multifunction device which concerns on one Embodiment. 一実施形態に係る複合機のソフトウェア構成図。A software configuration diagram of a multifunction device according to an embodiment. 一実施形態に係る起動時の動作を示す模式図。The schematic diagram which shows the operation at the time of startup which concerns on one Embodiment. 一実施形態に係るフローチャート。A flowchart according to an embodiment. 一実施形態に係る改ざん検知を設定する処理を示すフローチャート。A flowchart showing a process for setting falsification detection according to an embodiment. 一実施形態に係る画面例を示す図。The figure which shows the screen example which concerns on one Embodiment.

以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。 Hereinafter, embodiments 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 given the same reference numbers, and duplicate explanations are omitted.

なお、実施形態に係る情報処理装置として複合機(デジタル複合機/MFP/Multi Function Peripheral)を例に説明する。しかしながら適用範囲は複合機に限定されず、情報処理装置であればよい。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。 A multifunction device (digital multifunction device / MFP / Multifunction Peripheral) will be described as an example of the information processing device according to the embodiment. However, the scope of application is not limited to the multifunction device, and any information processing device may be used. It goes without saying that the present invention can be applied to a single device or a system composed of a plurality of devices as long as the functions of the present invention are executed unless otherwise specified.

<第1の実施形態>
<情報処理装置のハードウェア構成>
まず、図1を参照して、本実施形態に係る情報処理装置である複合機100と組込コントローラ(Embedded Controller)113のハードウェア構成を説明する。複合機100は、CPU101、ROM(Read-Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、ネットワークI/F制御部105、スキャナI/F制御部106、プリンタI/F制御部107、パネル制御部108、スキャナ111、プリンタ112、組込コントローラ113、フラッシュメモリ114、及びLED117を備える。また、組込コントローラ113は、CPU115及びRAM116を備える。
<First Embodiment>
<Hardware configuration of information processing device>
First, with reference to FIG. 1, the hardware configuration of the multifunction device 100 and the embedded controller (Embedded Controller) 113, which is the information processing device according to the present embodiment, will be described. The multifunction device 100 includes a CPU 101, a ROM (Read-Only Memory) 102, a RAM (Random Access Memory) 103, an HDD (Hard Disk Drive) 104, a network I / F control unit 105, a scanner I / F control unit 106, and a printer I. It includes a / F control unit 107, a panel control unit 108, a scanner 111, a printer 112, an embedded controller 113, a flash memory 114, and an LED 117. Further, the embedded controller 113 includes a CPU 115 and a RAM 116.

CPU101は、複合機100のソフトウェアプログラムを実行し、装置全体の制御を統括的に行う。ROM102はリードオンリーメモリであり、複合機100のBIOS(Basic Input/Output System)、固定パラメータ等を格納している。RAM103はランダムアクセスメモリであり、CPU101が複合機100を制御する際に、プログラムや一時的なデータの格納などに使用される。HDD104はハードディスクドライブであり、一部のアプリケーションや、各種データを格納する。フラッシュメモリ114は、ローダー、カーネル、アプリケーションなどの各種モジュールを格納する。 The CPU 101 executes the software program of the multifunction device 100 and controls the entire device in an integrated manner. The ROM 102 is a read-only memory, and stores the BIOS (Basic Input / Output System), fixed parameters, and the like of the multifunction device 100. The RAM 103 is a random access memory, and is used for storing programs and temporary data when the CPU 101 controls the multifunction device 100. The HDD 104 is a hard disk drive and stores some applications and various data. The flash memory 114 stores various modules such as a loader, a kernel, and an application.

組込コントローラ113のCPU115は、組込コントローラ113のソフトウェアプログラムを実行し、複合機100における一部の制御を行う。RAM116はランダムアクセスメモリであり、CPU115が複合機100を制御する際に、プログラムや一時的なデータの格納などに使用される。複合機100は、組込コントローラ113に対して、システムを統括的に制御するメインコントローラを備える。当該メインコントローラは、少なくともCPU101、ROM102、及びRAM103を含んで構成される。 The CPU 115 of the embedded controller 113 executes the software program of the embedded controller 113 and controls a part of the multifunction device 100. The RAM 116 is a random access memory, and is used for storing programs and temporary data when the CPU 115 controls the multifunction device 100. The multifunction device 100 includes a main controller that controls the system in an integrated manner with respect to the embedded controller 113. The main controller includes at least a CPU 101, a ROM 102, and a RAM 103.

ネットワークI/F制御部105は、ネットワーク118とのデータの送受信を制御する。スキャナI/F制御部106は、スキャナ111による原稿の読み取り制御する。プリンタI/F制御部107は、プリンタ112による印刷処理などを制御する。パネル制御部108は、タッチパネル式の操作パネル110を制御し、各種情報の表示、使用者からの指示入力を制御する。バス109は、CPU101、ROM102、RAM103、HDD104、ネットワークI/F制御部105、スキャナI/F制御部106、及びプリンタI/F制御部107を相互に接続する。さらに、バス109は、パネル制御部108、組込コントローラ113、及びフラッシュメモリ114も相互に接続する。このバス109を介して、CPU101からの制御信号や各装置間のデータ信号が送受信される。LED117は必要に応じて点灯し、ソフトウェアやハードウェアの異常を外部に伝えるために利用される。 The network I / F control unit 105 controls the transmission and reception of data to and from the network 118. The scanner I / F control unit 106 controls the scanning of the document by the scanner 111. The printer I / F control unit 107 controls printing processing and the like by the printer 112. The panel control unit 108 controls the touch panel type operation panel 110 to control the display of various information and the input of instructions from the user. The bus 109 connects the CPU 101, ROM 102, RAM 103, HDD 104, network I / F control unit 105, scanner I / F control unit 106, and printer I / F control unit 107 to each other. Further, the bus 109 also connects the panel control unit 108, the embedded controller 113, and the flash memory 114 to each other. Control signals from the CPU 101 and data signals between the devices are transmitted and received via the bus 109. The LED 117 lights up as needed and is used to notify the outside of a software or hardware abnormality.

<情報処理装置のソフトウェア構成>
次に、図2を参照して、本実施形態に係る複合機100が有するソフトウェアモジュールを説明する。複合機100は、ソフトウェアモジュールとして、組込コントローラ113内にブートプログラム209を含む。さらに、複合機100は、BIOS210、ローダー223、カーネル212、カーネルB220、Nativeプログラム213、NativeプログラムB222、Java(登録商標)プログラム214、UI制御部203、及び通信管理部207を含む。
<Software configuration of information processing device>
Next, the software module included in the multifunction device 100 according to the present embodiment will be described with reference to FIG. The multifunction device 100 includes a boot program 209 in the embedded controller 113 as a software module. Further, the multifunction device 100 includes a BIOS 210, a loader 223, a kernel 212, a kernel B220, a Native program 213, a Native program B222, a Java (registered trademark) program 214, a UI control unit 203, and a communication management unit 207.

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

ブートプログラム209は複合機100の電源を入れると組込コントローラ113のCPU115で実行されるプログラムであり、起動に関わる処理を実行するほかにBIOSの改ざん検知を行うBIOS改ざん検知部201を含む。BIOS210はブートプログラム209の実行後にCPU101で実行されるプログラムであり、起動に関わる処理を実行するほかにローダー223及びカーネル212の改ざん検知を行うローダー/カーネル改ざん検知部202を含む。 The boot program 209 is a program executed by the CPU 115 of the embedded controller 113 when the power of the multifunction device 100 is turned on, and includes a BIOS tampering detection unit 201 that detects tampering with the BIOS in addition to executing processing related to startup. The BIOS 210 is a program executed by the CPU 101 after the boot program 209 is executed, and includes a loader / kernel tampering detection unit 202 that detects tampering with the loader 223 and the kernel 212 in addition to executing processing related to booting.

改ざん検知とは、プログラムの正当性を検証するものであり、悪意のあるプログラムの改ざんを検知することに加えて、熱等の影響によるメモリ等の経年劣化によって発生しうるプログラムの変化を検知することも含む。つまり、正常なプログラムから変化しているか否かを検証するものである。なお、以下では、単に改ざん検知と示している場合であっても、特に言及しないかぎり経年劣化等によるプログラムの変化も含むものとする。 Falsification detection verifies the validity of a program. In addition to detecting malicious program tampering, it also detects changes in the program that may occur due to aging deterioration of memory, etc. due to the effects of heat, etc. Including that. In other words, it verifies whether or not the program has changed from a normal program. In the following, even if it is simply indicated as tampering detection, it shall include changes in the program due to aging deterioration or the like unless otherwise specified.

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

ローダー223はBIOS210の処理が完了した後にCPU101で実行されるプログラムであり、起動に関わる処理を実行するほかに、後述する起動カーネルの予約ビットによって起動するカーネルの切り替えを行う。本実施形態では予約ビットが0の場合は通常モードでの起動(カーネル212)を行い、1の場合は復旧モードでの起動(カーネルB220)を行うものとして説明する。 The loader 223 is a program executed by the CPU 101 after the processing of the BIOS 210 is completed. In addition to executing the processing related to booting, the loader 223 switches the kernel to be booted by the reserved bit of the booting kernel described later. In the present embodiment, when the reserved bit is 0, the boot in the normal mode (kernel 212) is performed, and when the reserved bit is 1, the boot in the recovery mode (kernel B220) is performed.

Nativeプログラム213はCPU101で実行されるプログラムであり、複合機100のJavaプログラム214と連携して各機能を提供する複数のプログラムからなる。例えば、スキャナI/F制御部106やプリンタI/F制御部106を制御するプログラムや起動プログラムなどである。カーネル212によってNativeプログラムの中から起動プログラムが呼び出され、起動処理を実行する。またプログラムの中の一つとしてJavaプログラムの改ざん検知を行うJavaプログラム改ざん検知部を有する。 The Native program 213 is a program executed by the CPU 101, and includes a plurality of programs that provide each function in cooperation with the Java program 214 of the multifunction device 100. For example, a program or a start program that controls the scanner I / F control unit 106 or the printer I / F control unit 106. The boot program is called from the Native program by the kernel 212, and the boot process is executed. Further, as one of the programs, it has a Java program tampering detection unit that detects tampering with the Java program.

Javaプログラム214はCPU101で実行されるプログラムであり、複合機100のNativeプログラム213と連携して各機能を提供するプログラムである。例えば、操作パネル110に画面を表示するプログラムなどがある。 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, there is a program that displays a screen on the operation panel 110.

カーネルB220は、CPU101で実行されるカーネル212に改ざんが検知された場合に復旧モードで起動を行うためのプログラムである。カーネルB220は、起動に関わる処理を行うほかにNativeプログラムB222の改ざん検知を行うプログラム改ざん検知部B221を有する。 The kernel B220 is a program for starting in the recovery mode when tampering is detected in the kernel 212 executed by the CPU 101. The kernel B220 has a program tampering detection unit B221 that detects tampering with the Native program B222 in addition to performing processing related to booting.

NativeプログラムB222はCPU101で実行されるプログラムで複合機100のアップデート機能を提供するプログラムである。カーネルB220によって呼び出されて、カーネル212やNativeプログラム213、Javaプログラム214をアップデートする機能を提供する。なお、NativeプログラムB222はアップデート機能に限らず、ほかの機能を提供するプログラムであってもよい。 The Native program B222 is a program executed by the CPU 101 and provides an update function of the multifunction device 100. Called by kernel B220, it provides the ability to update kernel 212, Native program 213, and Java program 214. The Native program B222 is not limited to the update function, and may be a program that provides other functions.

<起動手順>
以下では、図3を参照して、複合機100の起動手順について説明する。図3(a)は、改ざん検知を行わずに複合機100が起動する順序を示す。ブートプログラム209がBIOS210を起動し、BIOS210がローダー223を起動し、ローダー223がカーネル212を起動し、カーネル212がNativeプログラム213の中から起動プログラムを起動する。起動プログラムの中でJavaプログラム214が起動され、以降はNativeプログラム213とJavaプログラム214が連携して複合機100の機能を提供する。このように各モジュールは所定の順序で起動制御が行われ、前のモジュールの起動が完了すると次のモジュールの起動処理が実行される。
<Startup procedure>
Hereinafter, the procedure for starting the multifunction device 100 will be described with reference to FIG. FIG. 3A shows the order in which the multifunction device 100 is started without detecting falsification. The boot program 209 starts the BIOS 210, the BIOS 210 starts the loader 223, the loader 223 starts the kernel 212, and the kernel 212 starts the boot program from the Native program 213. The Java program 214 is started in the startup program, and thereafter, the Native program 213 and the Java program 214 cooperate to provide the functions of the multifunction device 100. In this way, each module is controlled to start in a predetermined order, and when the start of the previous module is completed, the start process of the next module is executed.

また、ローダー223は起動するカーネルをカーネル212とカーネルB220との間で切り替えることができる。ローダー223がカーネルB220を起動すると、カーネルB220がNativeプログラムB222を起動する。この構成により、カーネル212を起動した際において、改ざん検知機能(検証機能)にて何れかのモジュールの署名の検証に失敗した場合、復旧モードで再起動を行うことができる。復旧モードでは、切り替えたカーネル(カーネルB220)やプログラム(NativeプログラムB222)によってシステム復旧のためのアップデート処理を実行し、システムを復旧することができる。 The loader 223 can also switch the kernel to boot between kernel 212 and kernel B220. When the loader 223 starts the kernel B220, the kernel B220 starts the Native program B222. With this configuration, when the kernel 212 is started, if the tampering detection function (verification function) fails to verify the signature of any module, the kernel 212 can be restarted in the recovery mode. In the recovery mode, the system can be recovered by executing the update process for system recovery by the switched kernel (kernel B220) or program (Native program B222).

このように本実施形態では複数のカーネル、複数のプログラム(Nativeプログラムなど)を保持する構成において、何れかのプログラムの改ざんが検知された場合の制御について説明する。より詳細には、改ざんが検知された場合にシステムを復旧するためのデバイス解除キーの生成とその認証、及び復旧モードへの移行、さらにその復旧モードに対しても改ざん検知して起動する方法について説明する。ここで、デバイス解除キーとは、何れかのプログラムにおいて改ざんが検知されたことにより、システムが停止している複合機100の停止処置を解除して復旧モードで起動可能とするためのキーである。本実施形態によれば、当該デバイス解除キーを複合機100自身が任意のタイミングで生成して発行し、上記停止処置が行われている複合機へ例えばサービスマンが当該デバイス解除キーを入力する。これにより、複合機は復旧モードで再起動し、復旧モードにおいて改ざんが検知されたプログラム等の復旧を行うことができる。 As described above, in the present embodiment, in a configuration in which a plurality of kernels and a plurality of programs (Native program, etc.) are held, control when tampering with any of the programs is detected will be described. More specifically, about the generation and authentication of the device release key for recovering the system when tampering is detected, the transition to the recovery mode, and the method of tampering detection and activation for the recovery mode as well. explain. Here, the device release key is a key for canceling the stop action of the multifunction device 100 in which the system is stopped due to the detection of tampering in any of the programs so that the device can be started in the recovery mode. .. According to the present embodiment, the device release key is generated and issued by the multifunction device 100 itself at an arbitrary timing, and for example, a serviceman inputs the device release key to the multifunction device on which the stop treatment is performed. As a result, the multifunction device can be restarted in the recovery mode, and the program or the like whose tampering has been detected in the recovery mode can be recovered.

図3(b)は、改ざん検知を行いながら複合機100が起動する順序を示す。図示するように、通常モードの場合には、ブートプログラム209から、BIOS210、ローダー223、カーネル212、Nativeプログラム213、Javaプログラム214の順に改ざん検知を行いながら起動する。また、復旧モードの場合には、ブートプログラム209から、BIOS210、ローダー223、カーネルB220、NativeプログラムB222の順に改ざん検知を行いながら起動する。起動するモジュールの改ざん検知は、直前に起動されたモジュールが行う。例えば、BIOS210の改ざん検知は、ブートプログラム209が行う。また、図3(b)は各プログラムの保存場所、デジタル署名(以下、署名と称する。)と署名を検証するための公開鍵(検証情報)の保存場所を表している。図3(b)に示すように、署名については各モジュールが自身の署名を保存している。一方で、公開鍵については、所定のモジュール(第1のモジュールなど)は保存しているものの、保存していないモジュールも存在する。これは、本実施形態において、公開鍵が同一のモジュールについては所定のモジュールが保存し、当該モジュールにおいて複数の他のモジュールの改ざんの検知を連続的に行うためである。これにより、メモリ資源を有効に利用することができる。 FIG. 3B shows the order in which the multifunction device 100 is started while detecting falsification. As shown in the figure, in the normal mode, the boot program 209 is started while detecting tampering in the order of BIOS210, loader 223, kernel 212, Native program 213, and Java program 214. In the recovery mode, the boot program 209 is started while detecting tampering in the order of BIOS210, loader 223, kernel B220, and Native program B222. Tampering detection of the module to be started is performed by the module started immediately before. For example, the boot program 209 detects tampering with the BIOS 210. Further, FIG. 3B shows a storage location of each program, a digital signature (hereinafter referred to as a signature), and a storage location of a public key (verification information) for verifying the signature. As shown in FIG. 3 (b), each module stores its own signature for the signature. On the other hand, as for the public key, there are some modules in which a predetermined module (such as the first module) is stored but not stored. This is because, in the present embodiment, a predetermined module stores a module having the same public key, and the module continuously detects tampering with a plurality of other modules. As a result, memory resources can be effectively used.

ここでは、ROM102には、ブートプログラム209とBIOS210が保存されているものとする。また、フラッシュメモリ114には、ローダー223とカーネル212、カーネルB220とNativeプログラム(第1プログラム)213、NativeプログラムB220とが保存されているものとする。さらに、HDD104にJavaプログラム214(第2プログラム)が保存されているものとする。 Here, it is assumed that the boot program 209 and the BIOS 210 are stored in the ROM 102. Further, it is assumed that the loader 223 and the kernel 212, the kernel B220, the Native program (first program) 213, and the Native program B220 are stored in the flash memory 114. Further, it is assumed that the Java program 214 (second program) is stored in the HDD 104.

ブートプログラム209にはBIOSの署名検証用の公開鍵300が保存され、BIOS210にはBIOSの署名302とローダー/カーネル検証用の公開鍵303が保存される。ローダー223にはローダー署名304とカーネル検証用の公開鍵305が保存される。また、カーネル212にはカーネル署名306とNativeプログラム検証用の公開鍵307が保存され、Nativeプログラム213にはNativeプログラムの署名308とJavaプログラム検証用の公開鍵309が保存される。さらに、Javaプログラム214には、Javaプログラムの署名310が保存される。一方、復旧モードで起動されるカーネルB220にはカーネルB署名341とNativeプログラムB検証用公開鍵342が保存され、NativeプログラムB222にはNativeプログラムBの署名343が保存される。これらの公開鍵と署名は予め複合機100の工場出荷前にプログラムに対して付与されることが望ましい。本実施形態に係る複合機100においては、201、202、205、206、221の各検知部が、次に起動する各プログラム(各モジュール)を検証し、問題がなければ次のプログラムを起動することで改ざん検知を行う。 The boot program 209 stores the BIOS signature verification public key 300, and the BIOS 210 stores the BIOS signature 302 and the loader / kernel verification public key 303. The loader signature 304 and the public key 305 for kernel verification are stored in the loader 223. Further, the kernel 212 stores the kernel signature 306 and the public key 307 for verifying the Native program, and the Native program 213 stores the signature 308 of the Native program and the public key 309 for verifying the Java program. Further, the Java program 214 stores the Java program signature 310. On the other hand, the kernel B 220 started in the recovery mode stores the kernel B signature 341 and the Native program B verification public key 342, and the Native program B 222 stores the signature 343 of the Native program B. It is desirable that these public keys and signatures be given to the program in advance before the multifunction device 100 is shipped from the factory. In the multifunction device 100 according to the present embodiment, each detection unit of 201, 202, 205, 206, 221 verifies each program (each module) to be started next, and if there is no problem, starts the next program. By doing so, tampering is detected.

<処理手順>
次に、図4を参照して、本実施形態に係る複合機100の起動時における処理手順を説明する。複合機100に電源が投入されると、ROM102からRAM116にブートプログラム209が読み込まれ、CPU115によって実行される。
<Processing procedure>
Next, with reference to FIG. 4, a processing procedure at the time of starting the multifunction device 100 according to the present embodiment will be described. When the power is turned on to the multifunction device 100, the boot program 209 is read from the ROM 102 into the RAM 116 and executed by the CPU 115.

S401で、ブートプログラム209に含まれるBIOS改ざん検知部201は、BIOSの署名検証を行い、成功したか否かを判定する。具体的には、BIOS改ざん検知部201は、フラッシュメモリ114からBIOS210とローダー/カーネル検証用の公開鍵303、BIOSの署名302をRAM116に読み込む。さらに、BIOS改ざん検知部201は、BIOS検証用の公開鍵300を用いてBIOSの署名302の検証を行い成功したか判定する。署名の検証に失敗した場合、S403に進み、BIOS改ざん検知部201は、LED117を点灯させ、処理を終了する。一方、署名の検証に成功した場合、BIOS改ざん検知部201はCPU101に通電し、ブートプログラムの処理を終了する。その後、本フローチャートはCPU101によって実行されるS402以降の処理に移行する。CPU101は通電されると、S402で、フラッシュメモリ114からBIOS210とローダー/カーネル検証用の公開鍵303をRAM103に読み込み、BIOS210を起動する。以降の処理は、全てCPU101によって処理されるものとして説明する。 In S401, the BIOS tampering detection unit 201 included in the boot program 209 verifies the signature of the BIOS and determines whether or not it has succeeded. Specifically, the BIOS tampering detection unit 201 reads the BIOS 210, the public key 303 for loader / kernel verification, and the signature 302 of the BIOS from the flash memory 114 into the RAM 116. Further, the BIOS tampering detection unit 201 verifies the signature 302 of the BIOS using the public key 300 for the BIOS verification and determines whether or not it has succeeded. If the signature verification fails, the process proceeds to S403, and the BIOS tampering detection unit 201 turns on the LED 117 and ends the process. On the other hand, if the signature verification is successful, the BIOS tampering detection unit 201 energizes the CPU 101 and ends the boot program process. After that, this flowchart shifts to the processing after S402 executed by the CPU 101. When the CPU 101 is energized, the flash memory 114 reads the BIOS 210 and the loader / kernel verification public key 303 into the RAM 103 in S402 to start the BIOS 210. The subsequent processing will be described as being processed by the CPU 101.

BIOS210が起動されるとS404に移行する。S404で、BIOS210は、各種初期化処理を実行し、BIOS210に含まれるローダー/カーネル改ざん検知部202がフラッシュメモリ114からローダー223、ローダー署名304をRAM103に読み込む。さらに、ローダー/カーネル改ざん検知部202は、ローダー/カーネル検証用の公開鍵303を用いてローダー署名304の検証を行い成功したか判定する。署名の検証に失敗した場合は、S418に進み、ローダー/カーネル改ざん検知部202は、操作パネル110にエラーメッセージを表示し、S419に進む。一方、署名の検証に成功した場合は、ローダー/カーネル改ざん検知部202はフラッシュメモリ114からカーネル212とNativeプログラム検証用の公開鍵307とカーネル署名306をRAM103に読み込んで、S405に進む。 When BIOS210 is started, it shifts to S404. In S404, the BIOS 210 executes various initialization processes, and the loader / kernel tampering detection unit 202 included in the BIOS 210 reads the loader 223 and the loader signature 304 from the flash memory 114 into the RAM 103. Further, the loader / kernel tampering detection unit 202 verifies the loader signature 304 using the loader / kernel verification public key 303 and determines whether or not the loader signature 304 has been successfully verified. If the signature verification fails, the process proceeds to S418, and the loader / kernel tampering detection unit 202 displays an error message on the operation panel 110 and proceeds to S419. On the other hand, if the signature verification is successful, the loader / kernel tampering detection unit 202 reads the kernel 212, the public key 307 for native program verification, and the kernel signature 306 from the flash memory 114 into the RAM 103, and proceeds to S405.

S405で、ローダー/カーネル改ざん検知部202は、ローダー/カーネル検証用の公開鍵303を用いて、カーネル署名306の検証を行い成功したか判定する。署名の検証に失敗した場合はS418に進み、カーネル改ざん検知部204は操作パネル110にエラーメッセージを表示し、S419に進む。一方、署名の検証に成功した場合、処理をS406に進める。S406で、ローダー/カーネル改ざん検知部202は、ローダー/カーネル検証用公開鍵303を用いて、カーネルB署名341の検証を行い成功したか判定する。署名の検証に失敗した場合、S418に進み、ローダー/カーネル改ざん検知部202は、操作パネル110にエラーメッセージを表示し、S419に進む。一方、署名の検証に成功した場合、ローダー/カーネル改ざん検知部202はS407に処理を進め、S407で、BIOS210がRAM103に読み込まれたローダー223を起動する。 In S405, the loader / kernel tampering detection unit 202 verifies the kernel signature 306 using the loader / kernel verification public key 303 and determines whether or not the success has been achieved. If the signature verification fails, the process proceeds to S418, the kernel tampering detection unit 204 displays an error message on the operation panel 110, and the process proceeds to S419. On the other hand, if the signature verification is successful, the process proceeds to S406. In S406, the loader / kernel tampering detection unit 202 verifies the kernel B signature 341 using the loader / kernel verification public key 303 and determines whether or not the success has been achieved. If the signature verification fails, the process proceeds to S418, and the loader / kernel tampering detection unit 202 displays an error message on the operation panel 110 and proceeds to S419. On the other hand, if the signature verification is successful, the loader / kernel tampering detection unit 202 proceeds to S407, and in S407, the BIOS 210 activates the loader 223 read into the RAM 103.

S407でローダー223が起動されると各種初期化処理が行われ、S408で、ローダー223は、起動対象を判定すべくカーネルBの起動を示す予約ビットが設定されているか否かを確認して、カーネル212が起動対象として選ばれたか否かを判定する。カーネル212が起動対象として選ばれた場合はS409の処理に進み、カーネルB220が起動対象として選ばれた場合はS415に進む。 When the loader 223 is started in S407, various initialization processes are performed, and in S408, the loader 223 confirms whether or not a reserved bit indicating the start of kernel B is set in order to determine the start target. Determines if kernel 212 has been selected as the boot target. If kernel 212 is selected as the boot target, the process proceeds to S409, and if kernel B220 is selected as the boot target, the process proceeds to S415.

S409で、ローダー223はRAM103に読み込まれたカーネル212を起動する。カーネル212が起動されるとS410で、カーネル212は、各種初期化処理を実行する。さらに、カーネル212に含まれるプログラム改ざん検知部205がフラッシュメモリ114からNativeプログラム213とJavaプログラム検証用の公開鍵308とNativeプログラムの署名309をRAM103に読み込む。プログラム改ざん検知部205は、S410でNativeプログラム検証用の公開鍵307を用いて、Nativeプログラムの署名309の検証を行い成功したか判定する。署名の検証に失敗した場合はS418に進み、プログラム改ざん検知部205は操作パネル110にエラーメッセージを表示し、S419に進む。一方、署名の検証に成功した場合はS411に進み、プログラム改ざん検知部205は処理を終了し、Nativeプログラム213を起動する。 In S409, the loader 223 boots the kernel 212 loaded into the RAM 103. When the kernel 212 is started, in S410, the kernel 212 executes various initialization processes. Further, the program tampering detection unit 205 included in the kernel 212 reads the Native program 213, the public key 308 for Java program verification, and the signature 309 of the Native program from the flash memory 114 into the RAM 103. The program tampering detection unit 205 verifies the signature 309 of the Native program using the public key 307 for verifying the Native program in S410, and determines whether the success has been achieved. If the signature verification fails, the process proceeds to S418, the program tampering detection unit 205 displays an error message on the operation panel 110, and proceeds to S419. On the other hand, if the signature verification is successful, the process proceeds to S411, the program tampering detection unit 205 ends the process, and the Native program 213 is started.

Nativeプログラム213のうち、改ざん検知の処理を実行するJavaプログラム改ざん検知部206が起動されるとS412に進む。S412で、Javaプログラム改ざん検知部206は、HDD104からJavaプログラム214とJavaプログラムの署名310をRAM103に読み込む。続いて、S412で、Javaプログラム改ざん検知部206はJavaプログラム検証用の公開鍵308を用いて、Javaプログラムの署名310の検証を行い成功したか判定する。署名の検証に失敗した場合はS418に進み、Javaプログラム改ざん検知部206は、操作パネル110にエラーメッセージを表示し、S419に進む。署名の検証に成功した場合はS413に進み、Javaプログラム改ざん検知部205は処理を終了し、Nativeプログラム213がJavaプログラム214を起動し、S414に進む。S414で、Javaプログラム214は次回起動時の改ざん検知機能(検証機能)を有効化するかの設定を行い、処理を終了する。S414では後述のS419でユーザから入力されるデバイス解除キーを生成する処理を含むものであるが、詳細な処理については図5を用いて後述する。 When the Java program tampering detection unit 206 that executes the tampering detection process in the Native program 213 is activated, the process proceeds to S412. In S412, the Java program tampering detection unit 206 reads the Java program 214 and the signature 310 of the Java program into the RAM 103 from the HDD 104. Subsequently, in S412, the Java program tampering detection unit 206 verifies the signature 310 of the Java program using the public key 308 for Java program verification, and determines whether or not it has succeeded. If the signature verification fails, the process proceeds to S418, and the Java program tampering detection unit 206 displays an error message on the operation panel 110 and proceeds to S419. If the signature verification is successful, the process proceeds to S413, the Java program tampering detection unit 205 ends the process, the Native program 213 starts the Java program 214, and the process proceeds to S414. In S414, the Java program 214 sets whether to enable the tampering detection function (verification function) at the next startup, and ends the process. S414 includes a process of generating a device release key input by the user in S419, which will be described later, but detailed processing will be described later with reference to FIG.

一方、S408でカーネルB220が起動対象として選ばれた場合はS415に進み、ローダー223はRAM103に読み込まれたカーネルB220を起動する。カーネルB220は起動されると、各種初期化処理を行い、カーネルB220に含まれるプログラム改ざん検知部B221がフラッシュメモリ114からNativeプログラムB222とNativeプログラムB署名343をRAM103に読み込む。続いて、S416で、プログラム改ざん検知部B221は、NativeプログラムB検証用公開鍵342を用いて、NativeプログラムB署名343の検証を行い成功したか判定する。署名の検証に失敗した場合はS418に進み、プログラム改ざん検知部B221は操作パネル110にエラーメッセージを表示し、S419に進む。一方、署名の検証に成功した場合はS417に進み、プログラム改ざん検知部B221は処理を終了し、NativeプログラムB222を起動する。NativeプログラムB222は起動するとアップデート機能をユーザに提供する。 On the other hand, when the kernel B220 is selected as the boot target in S408, the process proceeds to S415, and the loader 223 boots the kernel B220 loaded in the RAM 103. When the kernel B220 is started, various initialization processes are performed, and the program tampering detection unit B221 included in the kernel B220 reads the Native program B222 and the Native program B signature 343 from the flash memory 114 into the RAM 103. Subsequently, in S416, the program tampering detection unit B221 verifies the Native program B signature 343 using the Native program B verification public key 342 and determines whether or not it has succeeded. If the signature verification fails, the process proceeds to S418, the program tampering detection unit B221 displays an error message on the operation panel 110, and the process proceeds to S419. On the other hand, if the signature verification is successful, the process proceeds to S417, the program tampering detection unit B221 ends the process, and the Native program B222 is started. When the Native program B222 is started, it provides an update function to the user.

S419からS421は、署名の検証に失敗してエラーメッセージを表示した後に、起動不良となる複合機100を復旧するためのデバイス解除キーの入力を受け付けることにより復旧モード(カーネルB)へ移行する手順を示す。ここでは、Javaプログラム検証に失敗(S412でNo)となった場合ついて説明する。つまり、以降で説明する処理はJavaプログラムの正当性を検証したNativeプログラム213によって実施される。しかし、他のソフトウェアモジュールで署名の検証に失敗した場合は、そのモジュールを検証したソフトウェアモジュールが以降の処理を実施することとする。 S419 to S421 are procedures for shifting to the recovery mode (kernel B) by accepting the input of the device release key for recovering the multifunction device 100 which has a startup failure after displaying an error message after failing to verify the signature. Is shown. Here, the case where the Java program verification fails (No in S412) will be described. That is, the process described below is carried out by the Native program 213 that has verified the validity of the Java program. However, if the signature verification fails in another software module, the software module that verified that module will perform the subsequent processing.

S418で署名の検証に失敗してエラーメッセージを表示した後、S419で、Nativeプログラム213は、複合機100を復旧するためのデバイス解除キーの入力を受け付ける。その際に表示する操作パネル110の画面例を図6の620に示す。エラーメッセージの表示画面620は、エラー要因を示すエラーメッセージの表示領域621とデバイス解除キーの入力領域622とOKボタン623とを含んで構成される。Nativeプログラム213は、操作パネル110を経由して入力領域622からユーザによって入力されたデバイス解除キーをOKボタン623の押下をトリガーとして受け取る。 After failing to verify the signature in S418 and displaying an error message, in S419, the Native program 213 accepts the input of the device release key for recovering the multifunction device 100. A screen example of the operation panel 110 displayed at that time is shown in 620 of FIG. The error message display screen 620 includes an error message display area 621 indicating an error cause, a device release key input area 622, and an OK button 623. The Native program 213 receives the device release key input by the user from the input area 622 via the operation panel 110 as a trigger when the OK button 623 is pressed.

次に、S420で、Nativeプログラム213は、S419で受け取ったデバイス解除キーを復号して認証する。この復号では、デバイス解除キーからハッシュとシリアルIDと乱数を分離し、マジックナンバーと分離したシリアルIDと乱数からハッシュを生成し、分離したハッシュと一致すれば認証が成功したとみなす。認証が失敗した場合は、Nativeプログラム213は、入力領域622に入力された値をクリアして再度エラーメッセージの表示画面620を表示してS418へ処理を戻す。一方、認証が成功した場合はS421に進み、Nativeプログラム213は、ローダー223に対して次回の起動時にカーネルB220で起動するための予約ビットを設定し、処理を終了する。 Next, in S420, the Native program 213 decrypts and authenticates the device release key received in S419. In this decryption, the hash, serial ID, and random number are separated from the device release key, a hash is generated from the serial ID and random number separated from the magic number, and if the hash matches the separated hash, authentication is considered successful. If the authentication fails, the Native program 213 clears the value input in the input area 622, displays the error message display screen 620 again, and returns the process to S418. On the other hand, if the authentication is successful, the process proceeds to S421, and the Native program 213 sets the reserved bit for starting in the kernel B220 at the next startup in the loader 223, and ends the process.

<改ざん検知の設定(デバイス解除キーの生成)>
次に、図5を参照して、本実施形態に係る改ざん検知の設定処理の処理手順を説明するフローチャートである。以下で説明する処理は、図4のS414の処理であり、例えばCPU115がHDD104に格納されたJavaプログラム214をRAM103に読み出して実行することにより実現される。なお、ここでは、デバイス解除キーの生成タイミングとして、改ざん検知の設定が変更されたタイミングで複合機100自身が生成する例について説明する。しかし、本発明を限定する意図はなく、他のタイミングでデバイス解除キーが生成されてもよい。ただし、本実施形態によれば、改ざんが検知された際にエラー表示(S418)を行って、デバイス解除キーの入力(S419)を要求するため、これらの処理の前に発行されている必要がある。ここでは、Javaプログラム214が起動(S413)した後に、以下で説明する改ざん検知の設定処理(S414)においてデバイス解除キーが生成されうるものである。従って、複合機100の初回起動時においてはデバイス解除キーが生成されていないため、初回のデバイス解除キーについては最初の起動時の前に発行されていることが望ましい。例えば、工場出荷時にデフォルトのデバイス解除キーとして生成されるものであってもよい。或いは、初回起動時においては改ざん検知機能をデフォルトで無効にして起動するものであってもよい。その場合においてはデフォルトのデバイス解除キーを予め生成しておく必要はない。
<Falsification detection setting (device release key generation)>
Next, with reference to FIG. 5, it is a flowchart explaining the processing procedure of the setting process of the falsification detection which concerns on this Embodiment. The process described below is the process of S414 of FIG. 4, and is realized, for example, by the CPU 115 reading the Java program 214 stored in the HDD 104 into the RAM 103 and executing the process. Here, an example will be described in which the multifunction device 100 itself generates the device release key at the timing when the tampering detection setting is changed. However, there is no intention of limiting the present invention, and the device release key may be generated at other timings. However, according to the present embodiment, when tampering is detected, an error display (S418) is displayed and input of the device release key (S419) is requested. Therefore, it must be issued before these processes. be. Here, after the Java program 214 is started (S413), the device release key can be generated in the tampering detection setting process (S414) described below. Therefore, since the device release key is not generated at the first startup of the multifunction device 100, it is desirable that the device release key is issued before the first startup. For example, it may be generated as a default device release key at the time of shipment from the factory. Alternatively, the tampering detection function may be disabled by default at the first startup. In that case, it is not necessary to generate the default device release key in advance.

S501で、Javaプログラム214は、操作パネル110から改ざん検知機能を有効化するかの設定画面を操作パネル110に表示し、設定要求があったかを判定する。その際に表示する操作パネル110の画面例を図6の600に示す。なお、検知しない場合は本フローチャートを終了する。設定画面600は改ざん検知機能のON/OFFを示すボタンを有するUIを表示している。複合機100を使用するユーザは、ONボタン601又はOFFボタン602を操作パネル110上で押下することにより設定を変更することができる。図6に示す設定画面600ではOFFボタン602が網掛け表示されており、現在の改ざん検知機能の設定状況がOFFであることを表している。 In S501, the Java program 214 displays a setting screen on the operation panel 110 as to whether to enable the tampering detection function from the operation panel 110, and determines whether or not there is a setting request. A screen example of the operation panel 110 displayed at that time is shown in 600 in FIG. If it is not detected, this flowchart ends. The setting screen 600 displays a UI having a button indicating ON / OFF of the falsification detection function. The user who uses the multifunction device 100 can change the setting by pressing the ON button 601 or the OFF button 602 on the operation panel 110. On the setting screen 600 shown in FIG. 6, the OFF button 602 is shaded to indicate that the current setting status of the falsification detection function is OFF.

S502で、Javaプログラム214は、操作パネル110上でONボタン601又はOFFボタン602が押下されたことを検知する。ONボタン601が押下された場合はS503へ進み、OFFボタン602が押下された場合はS504へ遷移する。S504で、Javaプログラム214は、改ざん検知機能を無効化し、本フローチャートを終了する。ここでの無効化とは、上述したようなブートプログラム、BIOS、ローダー、カーネル、Nativeプログラム、JAVAプログラムの署名を検証することなく起動することである。 In S502, the Java program 214 detects that the ON button 601 or the OFF button 602 is pressed on the operation panel 110. When the ON button 601 is pressed, the process proceeds to S503, and when the OFF button 602 is pressed, the process proceeds to S504. In S504, the Java program 214 disables the tampering detection function and ends this flowchart. Disabling here means booting without verifying the signatures of the boot program, BIOS, loader, kernel, Native program, and JAVA program as described above.

一方、S503で、Javaプログラム214は、改ざん検知機能を有効化する。ここでの有効化とは、上述したようにブートプログラム、BIOS、ローダー、カーネル、Nativeプログラム、及びJAVAプログラムを起動時において順次検証して起動する改ざん検知機能を有効化することである。つまり、次回起動時において改ざん検知機能が有効された状態で起動し、各プログラムの正当性が検証されることになる。なお、この設定は1回のみ有効に扱われ、起動するたびに次回の有効化設定を行わせてもよい。或いは、毎回設定するのではなく、定期的に、例えば、検証機能が前回有効化されてから所定期間(所定日数)が経過した場合や所定回数起動された場合に有効化設定を行わせるようにしてもよい。この場合、有効に設定されない場合には次回起動時において問い合わせを行うことが望ましい。 On the other hand, in S503, the Java program 214 activates the tampering detection function. The activation here is to enable the tampering detection function that sequentially verifies and starts the boot program, BIOS, loader, kernel, Native program, and JAVA program at the time of startup as described above. That is, the next time the program is started, the program is started with the tampering detection function enabled, and the validity of each program is verified. Note that this setting is treated as valid only once, and the next activation setting may be performed each time it is started. Alternatively, instead of setting it every time, the activation setting is made periodically, for example, when a predetermined period (predetermined number of days) has passed since the verification function was last activated or when the verification function is activated a predetermined number of times. You may. In this case, if it is not set to be valid, it is desirable to make an inquiry at the next startup.

次に、S505で、Javaプログラム214は、デバイス解除キーを生成する。デバイス解除キーは、例えば複合機ごとに固有の識別子となるシリアルID、マジックナンバー(定数)、乱数等をSHA−1などのハッシュ関数で掛け合わせることによって生成する。続いて、S506で、Javaプログラム214は、デバイス解除キーを操作パネル110に表示し、本フローチャートを終了する。図6の画面610は、S506で表示する操作パネル110の画面例を示す。S505で生成したデバイス解除キーは、解除キー表示領域611に表示することによってユーザへ通知される。なお、ここではJavaプログラム214がデバイス解除キーを生成する例について説明したが、Nativeプログラム213など他のソフトウェアモジュールがその機能を代替してもよい。 Next, in S505, the Java program 214 generates a device release key. The device release key is generated, for example, by multiplying a serial ID, a magic number (constant), a random number, etc., which are unique identifiers for each multifunction device, with a hash function such as SHA-1. Subsequently, in S506, the Java program 214 displays the device release key on the operation panel 110, and ends this flowchart. The screen 610 of FIG. 6 shows a screen example of the operation panel 110 displayed in S506. The device release key generated in S505 is notified to the user by displaying it in the release key display area 611. Although the example in which the Java program 214 generates the device release key has been described here, another software module such as the Native program 213 may substitute the function.

なお、上記S505においてデバイス解除キーを生成した場合、複合機100は、生成したデバイス解除キーを自身のメモリに保持する必要性はない。これは、上記S420で説明したように、複合機100は、ユーザから入力されたデバイス解除キーからハッシュとシリアルIDと乱数を分離して認証を行うものであり、デバイス解除キーそのものを保持しておく必要はない。一方で、ユーザがデバイス解除キーを忘れる可能性もあり、システムがエラー停止している際に何らかの復帰手順を残すようにしてもよい。その場合においては、生成したデバイス解除キーを保持しておき、サービスマン等によって隠しコマンド等が入力されると表示されるものであってもよい。或いは、デバイス解除キーによる復旧モードの認証ができない場合の代替手法として、他の認証(管理者パスワード、USBドングル等)を行うようにしてもよい。 When the device release key is generated in S505, the multifunction device 100 does not need to hold the generated device release key in its own memory. As described in S420 above, the multifunction device 100 separates the hash, the serial ID, and the random number from the device release key input by the user for authentication, and holds the device release key itself. You don't have to keep it. On the other hand, the user may forget the device release key, and may leave some recovery procedure when the system is stopped due to an error. In that case, the generated device release key may be retained and displayed when a hidden command or the like is input by a serviceman or the like. Alternatively, other authentication (administrator password, USB dongle, etc.) may be performed as an alternative method when the recovery mode cannot be authenticated by the device release key.

以上説明したように、本情報処理装置は、ブートプログラムの起動に続いて複数のモジュールを順次起動するものであり、各モジュールで実行されるプログラムの正当性の検証を行い、検証に失敗した場合には情報処理装置を停止する検証機能を有する。また、本情報処理装置は、検証機能の有効化を設定し、当該検証機能が有効化された際に、停止された情報処理装置を復旧する復旧モードで起動するためのデバイス解除キーを生成する。さらに、本情報処理装置は、デバイス解除キーを生成すると、情報処理装置の表示部(操作パネル110)に生成したデバイス解除キーを表示する。また、本情報処理装置は、当該情報処理装置を停止する際に、デバイス解除キーの入力を受け付け、入力されたデバイス解除キーを認証し、認証が成功すると情報処理装置を復旧モードで再起動する。このように、本実施形態によれば、改ざん検知機能(検証機能)が有効化された段階で、デバイス解除キーを生成して発行(表示)し、プログラムの正当性の検証が失敗した場合にはシステムを停止するとともに、当該デバイス解除キーの受付を行なう。当該デバイス解除キーを認証し成功すると、本情報処理装置は、復旧モードで再起動し、正当性が検証されなかったプログラムをアップデートすることにより当該プログラムの復旧を行う。これにより、情報処理装置がネットワークを介して情報を取得することができない環境であっても、情報処理装置自身がデバイス解除キーを生成して発行するため、プログラムの正当性が検証されない際にハードウェアの交換を行うことなくシステムを復旧することができる。 As described above, this information processing device starts a plurality of modules in sequence following the startup of the boot program, verifies the validity of the program executed in each module, and fails in the verification. Has a verification function to stop the information processing device. In addition, this information processing device sets the activation of the verification function, and when the verification function is enabled, generates a device release key for starting in the recovery mode for recovering the stopped information processing device. .. Further, when the device release key is generated, the information processing device displays the generated device release key on the display unit (operation panel 110) of the information processing device. In addition, when the information processing device is stopped, the information processing device accepts the input of the device release key, authenticates the input device release key, and restarts the information processing device in the recovery mode when the authentication is successful. .. As described above, according to the present embodiment, when the tampering detection function (verification function) is enabled, the device release key is generated and issued (displayed), and the verification of the validity of the program fails. Stops the system and accepts the device release key. If the device release key is authenticated and succeeded, the information processing apparatus restarts in the recovery mode and recovers the program by updating the program whose validity has not been verified. As a result, even in an environment where the information processing device cannot acquire information via the network, the information processing device itself generates and issues a device release key, so it is hard when the validity of the program is not verified. The system can be restored without changing the hardware.

本発明は上記実施形態に限らず様々な変形が可能である。例えば、上記実施形態では、情報処理装置である複合機100内で生成したデバイス解除キーを認証することによってシステムを復旧させる復旧モードで再起動を行う制御について説明した。しかし、本発明はこれに限定されず、予め認証情報の入ったドングルを複合機100に接続することによる認証、デバイス設置時に設定する管理者パスワードなどの認証キーを利用して認証してもよい。また、本実施形態では、公開鍵が異なるものがあるとして説明したが、同じものがあってもよい。また各プログラムの保存場所としてROM102、フラッシュメモリ114、HDD104があるものとして説明したが、保存場所を限定するものではなく、別の記憶媒体であってもよい。またプログラムの保存場所が説明した箇所になくてもよく、たとえばROM102上にローダー223を記憶する構成であってもよい。 The present invention is not limited to the above embodiment and can be modified in various ways. For example, in the above embodiment, the control of restarting in the recovery mode for recovering the system by authenticating the device release key generated in the multifunction device 100 which is the information processing device has been described. However, the present invention is not limited to this, and authentication may be performed by connecting a dongle containing authentication information in advance to the multifunction device 100, or by using an authentication key such as an administrator password set at the time of device installation. .. Further, in the present embodiment, it has been described that some public keys have different public keys, but the same ones may be used. Further, although it has been described that the storage location of each program includes the ROM 102, the flash memory 114, and the HDD 104, the storage location is not limited, and another storage medium may be used. Further, the storage location of the program does not have to be in the location described, and for example, the loader 223 may be stored on the ROM 102.

<その他の実施形態>
本発明は、上述の実施形態の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 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 invention. Therefore, a claim is attached to make the scope of the invention public.

100:複合機、101:CPU、102:ROM、103:RAM、104:HDD、105:ネットワークI/F制御部、106:スキャナI/F制御部、107:プリンタI/F制御部、108:パネル制御部、109:バス、110:操作パネル、111:スキャナ、112:プリンタ、113:組込コントローラ、114:フラッシュメモリ、115:CPU、116:RAM、117:LED、118:ネットワーク、201:BIOS改ざん検知部、202:ローダー/カーネル改ざん検知部、205:プログラム改ざん検知部、206:Javaプログラム改ざん検知部 100: Multifunction device, 101: CPU, 102: ROM, 103: RAM, 104: HDD, 105: Network I / F control unit, 106: Scanner I / F control unit, 107: Printer I / F control unit, 108: Panel control unit, 109: bus, 110: operation panel, 111: scanner, 112: printer, 113: embedded controller, 114: flash memory, 115: CPU, 116: RAM, 117: LED, 118: network, 201: BIOS tampering detection unit, 202: loader / kernel tampering detection unit, 205: program tampering detection unit, 206: Java program tampering detection unit

Claims (11)

ブートプログラムの起動に続いて複数のモジュールを順次起動する情報処理装置であって、
各モジュールで実行されるプログラムの正当性の検証を行い、該検証に失敗した場合には前記情報処理装置を停止する検証手段と、
前記検証手段による検証機能の有効化を設定する設定手段と、
前記検証機能が有効化された際に、停止された前記情報処理装置を復旧する復旧モードで起動するためのデバイス解除キーを生成する生成手段と
を備えることを特徴とする情報処理装置。
An information processing device that sequentially starts multiple modules following the startup of a boot program.
Verification means that verifies the validity of the program executed in each module and stops the information processing device if the verification fails.
A setting means for setting the activation of the verification function by the verification means, and
An information processing device including a generation means for generating a device release key for starting in a recovery mode for recovering the stopped information processing device when the verification function is activated.
前記生成手段は、前記デバイス解除キーを生成すると、前記情報処理装置の表示部に該デバイス解除キーを表示することを特徴とする請求項1に記載の情報処理装置。 The information processing device according to claim 1, wherein when the device release key is generated, the generation means displays the device release key on the display unit of the information processing device. 前記検証手段は、
前記情報処理装置を停止する際に、前記デバイス解除キーの入力を受け付ける受付手段と、
入力された前記デバイス解除キーを認証する認証手段と、
前記情報処理装置を復旧モードで再起動する復旧手段と
を備えることを特徴とする請求項2に記載の情報処理装置。
The verification means
A reception means that accepts the input of the device release key when the information processing device is stopped, and
An authentication means for authenticating the input device release key and
The information processing device according to claim 2, further comprising a recovery means for restarting the information processing device in a recovery mode.
前記復旧手段は、
前記復旧モードにおいて、前記検証に失敗したプログラムとは異なるプログラムを用いて起動し、該検証に失敗したプログラムをアップデートすることにより当該プログラムの復旧を行うことを特徴とする請求項3に記載の情報処理装置。
The recovery means
The information according to claim 3, wherein in the recovery mode, the program is started by using a program different from the program that failed the verification, and the program that failed the verification is updated to recover the program. Processing equipment.
前記受付手段は、前記デバイス解除キーの入力を受け付ける画面を前記情報処理装置の表示部に表示し、さらに、前記画面において、前記情報処理装置が停止したエラー要因を表示することを特徴とする請求項3又は4に記載の情報処理装置。 The receiving means is characterized in that a screen for receiving an input of the device release key is displayed on the display unit of the information processing device, and further, an error factor in which the information processing device is stopped is displayed on the screen. Item 3. The information processing apparatus according to Item 3. 前記受付手段は、前記デバイス解除キーに代えて、他の認証キーを受け付け、
前記認証手段は、前記他の認証キーを用いて認証を行うことを特徴とする請求項3乃至5の何れか1項に記載の情報処理装置。
The receiving means accepts another authentication key in place of the device release key.
The information processing device according to any one of claims 3 to 5, wherein the authentication means performs authentication using the other authentication key.
前記設定手段は、前記情報処理装置の起動処理が完了した際に、次の起動時の検証機能の有効化の設定を問い合わせる設定画面を前記情報処理装置の表示部に表示することを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。 The setting means is characterized in that, when the activation process of the information processing apparatus is completed, a setting screen for inquiring about the setting for enabling the verification function at the next activation is displayed on the display unit of the information processing apparatus. The information processing apparatus according to any one of claims 1 to 5. 前記設定手段は、前記検証機能が前回有効化されてから所定期間が経過すると、又は、所定回数の起動が行われると、前記設定画面を前記情報処理装置の表示部に表示することを特徴とする請求項7に記載の情報処理装置。 The setting means is characterized in that the setting screen is displayed on the display unit of the information processing apparatus when a predetermined period has elapsed since the verification function was last activated or when a predetermined number of times of activation is performed. The information processing apparatus according to claim 7. 前記複数のモジュールの各モジュールは、
自身の署名を予め記憶する記憶手段と、
次に起動するモジュールの署名の検証が成功すると、該次に起動するモジュールを起動する起動手段と
を備え、
前記複数のモジュールのうち第1のモジュールは、
次に起動する第2のモジュールの署名を検証する検証情報であって、前記記憶手段に予め記憶した前記検証情報を用いて、該第2のモジュールの改ざんを検知し、かつ、前記検証情報を用いて、前記第2のモジュールの後に起動する少なくとも1つの第3のモジュールの改ざんを検知し、
前記第2のモジュールは、
前記第1のモジュールによって起動されると、次に起動する前記第3のモジュールを起動することを特徴とする請求項1乃至8の何れか1項に記載の情報処理装置。
Each module of the plurality of modules
A storage means to store your signature in advance,
If the signature of the module to be started next is successfully verified, it is provided with a starting means for starting the module to be started next.
The first module among the plurality of modules is
Verification information for verifying the signature of the second module to be activated next, the verification information stored in advance in the storage means is used to detect tampering with the second module, and the verification information is used. It is used to detect tampering with at least one third module that is launched after the second module.
The second module is
The information processing apparatus according to any one of claims 1 to 8, wherein when the first module is activated, the third module to be activated next is activated.
ブートプログラムの起動に続いて複数のモジュールを順次起動する情報処理装置の制御方法であって、
検証手段が、各モジュールで実行されるプログラムの正当性の検証を行い、該検証に失敗した場合には前記情報処理装置を停止する検証工程と、
設定手段が、前記検証工程による検証機能の有効化を設定する設定工程と、
生成手段が、前記検証機能が有効化された際に、停止された前記情報処理装置を復旧する復旧モードで起動するためのデバイス解除キーを生成する生成工程と
を含むことを特徴とする情報処理装置の制御方法。
It is a control method of an information processing device that sequentially starts multiple modules following the startup of a boot program.
A verification step in which the verification means verifies the validity of the program executed in each module and stops the information processing apparatus when the verification fails.
The setting means sets the activation of the verification function by the verification process, and the setting process.
Information processing characterized in that the generation means includes a generation step of generating a device release key for starting in a recovery mode for recovering the stopped information processing apparatus when the verification function is enabled. How to control the device.
ブートプログラムの起動に続いて複数のモジュールを順次起動する情報処理装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
検証手段が、各モジュールで実行されるプログラムの正当性の検証を行い、該検証に失敗した場合には前記情報処理装置を停止する検証工程と、
設定手段が、前記検証工程による検証機能の有効化を設定する設定工程と、
生成手段が、前記検証機能が有効化された際に、停止された前記情報処理装置を復旧する復旧モードで起動するためのデバイス解除キーを生成する生成工程と
を含むことを特徴とするプログラム。
A program for causing a computer to execute each step in a control method of an information processing apparatus that sequentially starts a plurality of modules after starting a boot program.
A verification step in which the verification means verifies the validity of the program executed in each module and stops the information processing apparatus when the verification fails.
The setting means sets the activation of the verification function by the verification process, and the setting process.
A program characterized in that the generation means includes a generation step of generating a device release key for starting in a recovery mode for recovering the stopped information processing apparatus when the verification function is activated.
JP2020039215A 2020-03-06 2020-03-06 Information processing device, control method therefor, and program Pending JP2021140601A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020039215A JP2021140601A (en) 2020-03-06 2020-03-06 Information processing device, control method therefor, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020039215A JP2021140601A (en) 2020-03-06 2020-03-06 Information processing device, control method therefor, and program

Publications (1)

Publication Number Publication Date
JP2021140601A true JP2021140601A (en) 2021-09-16

Family

ID=77668763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020039215A Pending JP2021140601A (en) 2020-03-06 2020-03-06 Information processing device, control method therefor, and program

Country Status (1)

Country Link
JP (1) JP2021140601A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11748482B2 (en) * 2018-03-27 2023-09-05 Canon Kabushiki Kaisha Information processing apparatus, and information processing method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11748482B2 (en) * 2018-03-27 2023-09-05 Canon Kabushiki Kaisha Information processing apparatus, and information processing method

Similar Documents

Publication Publication Date Title
KR102347703B1 (en) Information processing apparatus, method for controlling same, and storage medium
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
JP2007257197A (en) Information processor having start verification function
WO2010113282A1 (en) A reconfigurable information processing device having a verification function and a control method therefor
US11681809B2 (en) Information processing apparatus, control method, and storage medium
JP2021140601A (en) Information processing device, control method therefor, and program
JP2020082441A (en) Image formation device, control method and program of the same
JP2020091698A (en) Information processing apparatus and method of controlling the same
JP7374780B2 (en) Information processing device and method of controlling the information processing device
CN112966276B (en) Method, device and medium for safely starting computer
JP7182966B2 (en) Information processing device, method for starting information processing device, and program
KR102402373B1 (en) Information processing apparatus, and information processing method
JP2020154601A (en) Information processing device and its control method, and program
JP2020181540A (en) Information processing apparatus and data verification method
US11971991B2 (en) Information processing apparatus, control method for controlling the same and storage medium
JP7215116B2 (en) Information processing device, information processing method and program
JP7011697B1 (en) Information processing equipment and information processing method
JP2022182837A (en) Information processing apparatus and control method thereof
JP2021114156A (en) Information processing apparatus, processing method thereof, and program
JP2023072170A (en) Information processing device and method for controlling information processing device
JP2021128469A (en) Information processor and boot method for information processor
JP2020187650A (en) Controller system and method
JP2022080687A (en) Information processing device, control method for information processing device, and program
JP2021131709A (en) Information processing device and 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