[go: up one dir, main page]

JP2012078953A - Falsification detection device and falsification detection method - Google Patents

Falsification detection device and falsification detection method Download PDF

Info

Publication number
JP2012078953A
JP2012078953A JP2010221783A JP2010221783A JP2012078953A JP 2012078953 A JP2012078953 A JP 2012078953A JP 2010221783 A JP2010221783 A JP 2010221783A JP 2010221783 A JP2010221783 A JP 2010221783A JP 2012078953 A JP2012078953 A JP 2012078953A
Authority
JP
Japan
Prior art keywords
program
hash value
identification information
block
unit
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
JP2010221783A
Other languages
Japanese (ja)
Inventor
Yohei Yamada
洋平 山田
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Mita Corp
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 Kyocera Mita Corp filed Critical Kyocera Mita Corp
Priority to JP2010221783A priority Critical patent/JP2012078953A/en
Publication of JP2012078953A publication Critical patent/JP2012078953A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a falsification detection device and a falsification detection method allowing a reduction in the time required for starting a program.SOLUTION: A provided falsification detection device comprises: hash value storage means 507 for storing block program identification information and a comparison hash value that is obtained by applying a predetermined hash function to a block program, in association with each other; selection means 502 for selecting, when a target program is started by a compound machine 100, specific block program identification information 702 stored in the hash value storage means 507 in parallel with the start of the target program; hash value calculation means 508 for calculating a corresponding hash value by applying the hash function to a block program corresponding to the selected specific block program identification information 702; and detection means 510 for comparing the corresponding hash value and the comparison hash value and detecting falsification of the target program when both of them do not match.

Description

本発明は、改ざん検知装置及び改ざん検知方法に関し、詳しくは、プログラムの起動に要する時間を短縮することが可能な改ざん検知装置及び改ざん検知方法に関する。   The present invention relates to a falsification detection device and a falsification detection method, and more particularly to a falsification detection device and a falsification detection method that can reduce the time required for starting a program.

近年、1台の機器でコピーとプリンタとスキャナとファクシミリとしての機能を実現した複写機、複合機等の画像形成装置が市販されるようになってきた。当該画像形成装置は、撮像部と印刷部と通信部等のハードウェアを備えると共に、コピーとプリンタとスキャナとファクシミリに対応する4種類のソフトウェアを備える。当該ソフトウェアが、ユーザの要求、指示に応じて適宜切り替わることにより、画像形成装置がコピーやプリンタやスキャナやファクシミリとして機能する。   In recent years, image forming apparatuses such as copiers and multifunction machines that have realized functions as a copy, a printer, a scanner, and a facsimile machine in a single device have come to be marketed. The image forming apparatus includes hardware such as an imaging unit, a printing unit, and a communication unit, and four types of software corresponding to a copy, a printer, a scanner, and a facsimile. When the software is appropriately switched according to a user request or instruction, the image forming apparatus functions as a copy, a printer, a scanner, or a facsimile.

前記画像形成装置を各機能毎に機能させるためには、アプリケーションやプラットフォーム等の様々なプログラム(ファームウェアその他のソフトウェア)が必要となる。当該プログラムは、画像形成装置の記憶媒体に予め記憶させておいたり、新しいバージョンのプログラムが開発された場合は、新たなプログラムに更新されたりする。   In order for the image forming apparatus to function for each function, various programs (firmware and other software) such as applications and platforms are required. The program is stored in advance in the storage medium of the image forming apparatus, or is updated to a new program when a new version of the program is developed.

しかしながら、上述したプログラムは、常時、画像形成装置の記憶媒体に記憶された状態であるため、悪意あるユーザが、人気のない時期を見計らって、当該記憶媒体にアクセスし、当該プログラムを改ざん(改変、文字化け等)することがある。又、更新可能なプログラムでは、画像形成装置が新しいプログラムを汎用のメモリカードやネットワークを介して授受するため、当該授受の途中で、上述のようにプログラムの改ざんが実行される場合がある。   However, since the above-described program is always stored in the storage medium of the image forming apparatus, a malicious user can access the storage medium in anticipation of an unpopular period and tamper (modify) the program. Garbled characters, etc.). In the updatable program, since the image forming apparatus sends and receives a new program via a general-purpose memory card or network, the program may be falsified as described above during the transfer.

このような問題を解決するために、特開2004−299389号公報(特許文献1)には、当該画像形成装置を機能させるプログラムが記憶された記憶媒体と、前記記憶媒体に記憶された前記プログラムを更新するためのプログラムが記憶された更新用記憶媒体をセットするための更新用記憶媒体セット手段とを備える画像形成装置が開示されている。当該画像形成装置は、前記更新用記憶媒体から取得される前記プログラムに係る電子署名の正当性を条件に、前記記憶媒体に記憶された前記プログラムを、前記更新用記憶媒体から取得される前記プログラムに更新するプログラム更新手段を備える。当該構成により、画像形成装置を機能させるプログラムを新たなプログラムに更新する場合に関して、その新たなプログラムの信頼性を向上させることを可能とするとしている。   In order to solve such a problem, Japanese Patent Application Laid-Open No. 2004-299389 (Patent Document 1) discloses a storage medium storing a program for causing the image forming apparatus to function, and the program stored in the storage medium. An image forming apparatus including an update storage medium setting unit for setting an update storage medium in which a program for updating the program is stored is disclosed. The image forming apparatus obtains the program stored in the storage medium from the update storage medium on condition that the electronic signature related to the program obtained from the update storage medium is valid. The program update means for updating is provided. With this configuration, when the program that causes the image forming apparatus to function is updated to a new program, the reliability of the new program can be improved.

又、特開2004−334392号公報(特許文献2)には、読み取り対象の記録媒体から、所定のプログラム、前記所定のプログラムを要約化及び暗号化した要約暗号化情報を含む記録情報を読み取る読取手段と、前記要約暗号化情報を復号化した第1の要約化情報と、前記所定のプログラムを新たに要約化した第2の要約化情報とが一致する場合に、前記所定のプログラムを実行し、一致しない場合には、前記所定のプログラムを実行しないように制御する制御手段とを備えたことを特徴とする記録媒体読取装置が開示されている。当該構成により、記録媒体の不正使用を防止するという優れた効果を有する記録媒体読取装置を提供することが出来るとしている。   Japanese Patent Laid-Open No. 2004-334392 (Patent Document 2) reads from a recording medium to be read a recording information including a predetermined program and summary encryption information obtained by summarizing and encrypting the predetermined program. Means, and when the first summary information obtained by decrypting the summary encryption information matches the second summary information obtained by newly summarizing the predetermined program, the predetermined program is executed. In addition, there is disclosed a recording medium reading device including a control unit that controls not to execute the predetermined program when they do not match. According to this configuration, it is possible to provide a recording medium reading device having an excellent effect of preventing unauthorized use of the recording medium.

又、特開2008−112443号公報(特許文献3)には、電子装置であって、メモリと、認証されたメモリ内容に基づいてハッシュ計算を遂行して有効ハッシュ値を発生し、前記メモリの内容についてハッシュ計算を周期的に遂行して検査ハッシュ値を発生するマイクロプロセッサとを含む電子装置が開示されている。当該マイクロプロセッサは、更に、前記有効ハッシュ値を認証し、前記検査ハッシュ値を認証された前記有効ハッシュ値と比較して前記メモリに対する権限のないアクセスを検出し、前記検査ハッシュ値が前記認証された有効ハッシュ値と一致しない場合に前記電子装置を動作停止して、前記権限のないメモリアクセスを妨げる。当該構成により、電子装置内の電子メモリ内容がいたずら(改ざん)されていないことを確かめることが可能となるとしている。   Japanese Patent Application Laid-Open No. 2008-112443 (Patent Document 3) is an electronic device that performs a hash calculation based on a memory and authenticated memory contents to generate a valid hash value. An electronic device is disclosed that includes a microprocessor that periodically performs a hash calculation on content to generate a check hash value. The microprocessor further authenticates the valid hash value, compares the check hash value with the authenticated valid hash value to detect unauthorized access to the memory, and the check hash value is authenticated. If it does not match the valid hash value, the electronic device is stopped to prevent unauthorized memory access. According to this configuration, it is possible to confirm that the contents of the electronic memory in the electronic device are not tampered (tampered).

特開2004−299389号公報JP 2004-299389 A 特開2004−334392号公報JP 2004-334392 A 特開2008−112443号公報JP 2008-112443 A

しかしながら、特許文献1−3に記載の技術では、いずれも、改ざん検知の対象となるプログラム全体に対して所定のハッシュ関数を適用し、当該適用によって得られたハッシュ値に基づいてプログラムの改ざん検知を実行している。ここで、前記プログラム全体に対して所定のハッシュ関数を適用する場合、プログラム全体のサイズが膨大であると、CPUのハッシュ値の算出負担(演算負担)が増大し、算出速度(演算速度)、算出効率(演算効率)が低下する。その結果、前記ハッシュ値を算出するために要する時間(ハッシュ値の算出時間)は、長期化するという問題がある(例えば、数分−数十分等)。   However, in each of the techniques described in Patent Documents 1-3, a predetermined hash function is applied to the entire program that is subject to alteration detection, and the alteration detection of the program is performed based on the hash value obtained by the application. Is running. Here, when a predetermined hash function is applied to the whole program, if the size of the whole program is enormous, the calculation load (calculation load) of the hash value of the CPU increases, and the calculation speed (calculation speed) Calculation efficiency (calculation efficiency) decreases. As a result, there is a problem that the time required to calculate the hash value (hash value calculation time) is prolonged (for example, several minutes to several tens of minutes).

そして、プログラムの改ざんを検知する場合、通常、プログラムを起動する際に実行することから、上述のように、ハッシュ値の算出時間が長期化すると、プログラムを起動するために要する時間、つまり、プログラムの起動開始から、プログラムの改ざんの検知、プログラム(データ)の読み込み、プログラムの実行までの時間(プログラムの起動時間)も長期化することになる。その結果、上述した特許文献1−3に記載の技術では、プログラムの起動時間が長期化するという問題がある。   When detecting the alteration of the program, it is usually executed when the program is started. Therefore, if the calculation time of the hash value is prolonged as described above, the time required to start the program, that is, the program The time (program activation time) from the start of activation to detection of program falsification, program (data) reading, and program execution is also prolonged. As a result, the technique described in Patent Documents 1-3 described above has a problem that the startup time of the program is prolonged.

一方、プログラムが改ざんされた場合、プログラム全体(プログラムの実体であるバイナリデータ)のうち、改ざんされたデータの後続のプログラムは、改ざん前の当該後続のプログラムと全く異なるデータに変更される。つまり、プログラム全体に対してハッシュ関数を適用しなくても、当該改ざんにより変更されたプログラムの一部に対してハッシュ関数を適用すれば、プログラムの改ざんを検知することが出来ることになる。このような実情を適切に利用すれば、上述したハッシュ値の算出時間を短縮出来る場合がある。   On the other hand, when the program is falsified, the subsequent program of the falsified data in the entire program (binary data which is the substance of the program) is changed to data completely different from the subsequent program before the falsification. That is, even if the hash function is not applied to the entire program, if the hash function is applied to a part of the program changed by the alteration, the alteration of the program can be detected. If such a situation is appropriately used, the calculation time of the hash value described above may be shortened.

そこで、本発明は、上記問題を解決するためになされたものであり、プログラムの起動に要する時間を短縮することが可能な改ざん検知装置及び改ざん検知方法を提供することを目的とする。   Therefore, the present invention has been made to solve the above-described problem, and an object thereof is to provide a falsification detection device and a falsification detection method capable of reducing the time required for starting a program.

上述した課題を解決し、目的を達成するために、本発明に係る改ざん検知装置は、装置のプログラムが改ざんされたか否かを検知する改ざん検知装置であり、当該改ざん検知装置において、前記プログラム全体を所定数のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報と、前記ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値とを関連付けて記憶するハッシュ値記憶手段と、前記装置が前記プログラムを起動すると、当該プログラムの起動と並行して、前記ハッシュ値記憶手段に記憶された特定のブロックプログラム識別情報を選択する選択手段とを備える。更に、当該改ざん検知装置は、選択された特定のブロックプログラム識別情報に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出手段と、前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、改ざんの有無を判定する検知手段とを備える。   In order to solve the above-described problems and achieve the object, the falsification detection device according to the present invention is a falsification detection device that detects whether or not the program of the device has been falsified. In the falsification detection device, the entire program Hash value storage means for storing the block program identification information of the block program obtained by dividing the block program into a predetermined number of blocks and the comparison hash value obtained by applying a predetermined hash function to the block program in association with each other; When the apparatus activates the program, it comprises selection means for selecting specific block program identification information stored in the hash value storage means in parallel with the activation of the program. Further, the falsification detection device includes a hash value calculation unit that calculates a corresponding hash value by applying the hash function to a block program corresponding to the selected specific block program identification information, the corresponding hash value, and the comparison hash Detecting means for determining the presence or absence of tampering by comparing the values.

当該構成により、前記装置の前記プログラムの起動と並行して、プログラムの改ざんの検知がなされる。そのため、前記プログラムの起動時間に、前記プログラムの改ざんの検知に要する時間、例えば、ハッシュ値の算出時間を削除することになり、当該プログラムの起動時間全体を大幅に短縮することが可能となる。又、プログラムの起動と並行してなされるプログラムの改ざん検知は、当該プログラム全体から対応ハッシュ値を算出するのではなく、プログラム全体の一部であるブロックプログラムから対応ハッシュ値を算出することでなされる。そのため、ハッシュ値の算出負担(演算負担)を軽減させ、算出速度(演算速度)、算出効率(演算効率)の向上を図り、前記ハッシュ値の算出時間の短縮化、プログラムの改ざん検知の応答速度の迅速化を図ることが可能となる。   With this configuration, the alteration of the program is detected in parallel with the activation of the program of the apparatus. Therefore, the time required for detecting the alteration of the program, for example, the calculation time of the hash value, is deleted from the startup time of the program, and the entire startup time of the program can be greatly shortened. In addition, the alteration detection of the program that is performed in parallel with the start of the program is not calculated by calculating the corresponding hash value from the entire program but by calculating the corresponding hash value from the block program that is a part of the entire program. The Therefore, the calculation load (calculation load) of the hash value is reduced, the calculation speed (calculation speed) and the calculation efficiency (calculation efficiency) are improved, the calculation time of the hash value is shortened, and the response speed of detecting the alteration of the program It is possible to speed up the process.

又、前記選択手段は、前記装置が前記プログラムを起動すると、当該プログラムの実行中に、前記ハッシュ値記憶手段に記憶された全てのブロックプログラム識別情報を選択するまで、予め設定された所定の設定時間毎に、既に選択したブロックプログラム識別情報と異なるブロックプログラム識別情報の選択を継続するよう構成することが出来る。   In addition, when the device starts the program, the selection unit sets a predetermined setting until all block program identification information stored in the hash value storage unit is selected during execution of the program. It is possible to continue to select block program identification information different from the already selected block program identification information every time.

又、前記選択手段は、特定のブロックプログラム識別情報を選択する場合に、プログラム全体のうち、半分から後尾までのデータを含むブロックプログラムのブロックプログラム識別情報を他のブロックプログラム識別情報よりも優先して選択する構成とすることが出来る。   Further, when selecting the specific block program identification information, the selection means prioritizes the block program identification information of the block program including data from half to the end of the entire program over other block program identification information. Can be selected.

更に、前記検知手段により前記プログラムの改ざんが検知された場合に、不一致の比較ハッシュ値に対応するブロックプログラム識別情報を優先選択記憶手段に一時記憶させ、改ざんされたプログラムが修復されると、一時記憶されたブロックプログラム識別情報を前記優先選択記憶手段から消去する機能停止手段を備え、前記選択手段は、前記優先選択記憶手段に前記ブロックプログラム識別情報が一時記憶されている場合に、当該ブロックプログラム識別情報を優先して選択するよう構成することが出来る。   Further, when the detection unit detects the alteration of the program, the block program identification information corresponding to the mismatch hash value is temporarily stored in the priority selection storage unit, and when the altered program is restored, A function stop unit for erasing the stored block program identification information from the priority selection storage unit; and the selection unit is configured to store the block program identification information when the block program identification information is temporarily stored in the priority selection storage unit. It can be configured to select the identification information with priority.

又、前記機能停止手段は、前記装置の動作を停止させるとともに当該装置に備えられた操作部にエラー画面を表示させる処理、不一致の比較ハッシュ値に対応するブロックプログラム識別情報のブロックプログラムを改ざん解析記憶手段に記憶させる処理、前記プログラムへのアクセスログ又はネットワークから前記プログラムへの通信ログを前記改ざん解析記憶手段に記憶させる処理、ユーザ情報を記憶しているユーザ情報記憶手段へのアクセス又はネットワークへのアクセスを禁止させる処理のうち、少なくともいずれかの処理を実行するよう構成することが出来る。   In addition, the function stopping means stops the operation of the apparatus and displays an error screen on the operation unit provided in the apparatus, and analyzes the falsification of the block program of the block program identification information corresponding to the mismatched comparison hash value Processing stored in storage means, access log to the program or communication log from the network to the program stored in the falsification analysis storage means, access to user information storage means storing user information or network It is possible to configure to execute at least one of the processes for prohibiting access.

又、前記ハッシュ値記憶手段は、前記ブロックプログラムに所定の付加情報を付加した後のプログラムに、前記ハッシュ関数を適用して得られるハッシュ値を比較ハッシュ値として記憶し、前記ハッシュ値算出手段は、前記ブロックプログラムに前記付加情報を付加した後のプログラムに、前記ハッシュ関数を適用して対応ハッシュ値を算出するよう構成することが出来る。   The hash value storage means stores a hash value obtained by applying the hash function to the program after adding predetermined additional information to the block program as a comparison hash value, and the hash value calculation means The corresponding hash value can be calculated by applying the hash function to the program after the additional information is added to the block program.

又、本発明は、前記改ざん検知装置を備えた画像形成装置を提供することが出来る。   In addition, the present invention can provide an image forming apparatus including the falsification detection device.

又、本発明は、装置のプログラムが改ざんされたか否かを検知する改ざん検知方法として提供することが出来る。即ち、当該改ざん検知方法において、前記装置が前記プログラムを起動すると、当該プログラムの起動と並行して、前記プログラム全体を所定数のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報と、前記ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値とを関連付けて記憶するハッシュ値記憶手段を参照する参照ステップと、前記ハッシュ値記憶手段に記憶された特定のブロックプログラム識別情報を選択する選択ステップとを含む。更に、当該改ざん検知方法は、選択された特定のブロックプログラム識別情報に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出ステップと、前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、前記プログラムの改ざんの有無を判定する検知ステップとを含む。当該構成としても、上述と同様の効果を得ることが可能となる。   In addition, the present invention can be provided as a tampering detection method for detecting whether or not the device program has been tampered with. That is, in the tampering detection method, when the apparatus starts the program, in parallel with the start of the program, block program identification information of a block program obtained by dividing the entire program into a predetermined number of blocks, A reference step for referring to a hash value storage means for storing a comparison hash value obtained by applying a predetermined hash function to the block program, and specific block program identification information stored in the hash value storage means; A selection step of selecting. Further, the falsification detection method includes a hash value calculation step of calculating a corresponding hash value by applying the hash function to a block program corresponding to the selected specific block program identification information, and the corresponding hash value and the comparison hash And a detection step of determining whether the program has been tampered with by comparing the value. Even with this configuration, the same effect as described above can be obtained.

本発明の改ざん検知装置及び改ざん検知方法によれば、プログラムの起動に要する時間を短縮することが可能となる。   According to the falsification detection device and the falsification detection method of the present invention, it is possible to reduce the time required for starting the program.

本発明に係る複合機の内部の全体構成を示す概念図である。1 is a conceptual diagram illustrating an overall configuration inside a multifunction peripheral according to the present invention. 本発明に係る画像読取部の拡大図である。It is an enlarged view of the image reading part which concerns on this invention. 本発明に係る操作部の全体構成を示す概念図である。It is a conceptual diagram which shows the whole structure of the operation part which concerns on this invention. 本発明に係る複合機及び改ざん検知部の制御系ハードウェアの構成を示す図である。It is a figure which shows the structure of the control system hardware of the multifunctional device and tampering detection part which concern on this invention. 本発明の実施形態における複合機及び操作部の機能ブロック図である。2 is a functional block diagram of a multifunction peripheral and an operation unit in the embodiment of the present invention. FIG. 本発明の実施形態の実行手順を示すためのフローチャートである。It is a flowchart for showing the execution procedure of the embodiment of the present invention. 本発明の実施形態に係るタッチパネル上に表示された初期画面の一例を示す図(図7(A))と、本発明の実施形態に係るハッシュ値テーブルの一例を示す図(図7(B))とである。FIG. 7A shows an example of an initial screen displayed on the touch panel according to the embodiment of the present invention (FIG. 7A), and FIG. 7B shows an example of a hash value table according to the embodiment of the present invention (FIG. 7B). ). 本発明の実施形態に係るブロックプログラムの一例を示す図(図8(A))と、本発明の実施形態に係る改ざんされる前のプログラムと、改ざん後のプログラムの一例を示す図(図8(B))とである。FIG. 8A shows an example of a block program according to the embodiment of the present invention (FIG. 8A), FIG. 8B shows an example of a program before falsification according to the embodiment of the present invention, and a program after falsification (FIG. 8). (B)). 本発明の実施形態に係る優先選択テーブルの一例を示す図(9(A))と、本発明の実施形態に係るエラー画面の一例を示す図(9(B))である。FIG. 9B is a diagram showing an example of a priority selection table according to the embodiment of the present invention (9A), and FIG.

以下に、添付図面を参照して、本発明の改ざん検知装置を備えた画像形成装置の実施形態について説明し、本発明の理解に供する。尚、以下の実施形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。又、フローチャートにおける数字の前に付されたアルファベット「S」はステップを意味する。   Hereinafter, an embodiment of an image forming apparatus provided with a tampering detection apparatus according to the present invention will be described with reference to the accompanying drawings for understanding of the present invention. In addition, the following embodiment is an example which actualized this invention, Comprising: The thing of the character which limits the technical scope of this invention is not. In addition, the alphabet “S” added in front of the numbers in the flowcharts means steps.

<画像形成装置及び改ざん検知装置>
以下に、本発明に係る改ざん検知装置(例えば、改ざん検知部)を備えた画像形成装置(例えば、複合機)について説明する。
<Image forming apparatus and falsification detection apparatus>
Hereinafter, an image forming apparatus (for example, a multi-function peripheral) including a tamper detection apparatus (for example, a tamper detection unit) according to the present invention will be described.

図1は、本発明に係る複合機の内部の全体構成を示す概念図である。ただし、本発明に直接には関係しない各部の詳細は省略している。   FIG. 1 is a conceptual diagram showing an overall internal configuration of a multifunction machine according to the present invention. However, details of each part not directly related to the present invention are omitted.

本発明の複合機100は、例えばプリンタやスキャナ単体、あるいはプリンタ、コピー、スキャナ、ファックス等を備えた複合機等が該当する。尚、一例として複合機を利用して原稿のコピー機能を提供する際の複合機100の動作を簡単に説明する。   The multifunction peripheral 100 of the present invention corresponds to, for example, a printer, a single scanner, or a multifunction peripheral including a printer, a copy, a scanner, a fax machine, and the like. As an example, the operation of the multifunction device 100 when providing a document copy function using the multifunction device will be briefly described.

ユーザが複合機100を利用して例えば原稿Pの印刷を行う場合、複合機100の電源を投入すると、複合機100の制御部(図示せず)が、記憶部(図示せず)に記憶された画像形成に関するプログラムを起動する。当該制御部がプログラムを起動すると、当該プログラムの起動(実行)と並行して、複合機100の内部に組み込まれた(接続された)改ざん検知部(図示せず)が、当該プログラムの改ざんの検知を実行する。   When the user prints, for example, an original P using the multifunction device 100, when the power of the multifunction device 100 is turned on, a control unit (not shown) of the multifunction device 100 is stored in a storage unit (not shown). Start a program related to image formation. When the control unit starts the program, in parallel with the start (execution) of the program, a tampering detection unit (not shown) incorporated in (connected to) the multifunction device 100 detects whether the program has been tampered with. Perform detection.

前記制御部が、以下に示す各部(駆動部)を、画像形成を実行可能な通常状態へ遷移(移行)させたり、操作部103に対して画像形成に関する画面(初期画面)を表示させたりしている間に、前記改ざん検知部が、前記プログラムの改ざんを検知すると、前記制御部は、前記改ざん検知部からの改ざん結果を受けて、画像形成に関する全ての機能を停止し、原稿台101近傍に供えられた操作部103に対してエラー画面を表示させる。   The control unit causes each of the following units (drive units) to transition (transfer) to a normal state in which image formation can be performed, or cause the operation unit 103 to display a screen (initial screen) related to image formation. When the falsification detection unit detects falsification of the program, the control unit receives all the falsification results from the falsification detection unit, stops all the functions related to image formation, and closes the document table 101. An error screen is displayed on the operation unit 103 provided for the above.

一方、前記改ざん検知部が前記プログラムの改ざんを検知しない場合、前記制御部が、前記プログラムを起動してから、ユーザの指示(例えば、電源オフのキーの押下等)を受けて前記プログラムの実行を停止するまでの間、所定の設定時間毎に、前記プログラムの改ざんの検知を繰り返し実行することになる。   On the other hand, when the tampering detection unit does not detect the tampering of the program, the control unit starts the program and then receives the user's instruction (for example, pressing of a power-off key, etc.) to execute the program Until the program is stopped, detection of falsification of the program is repeatedly executed at predetermined time intervals.

さて、ユーザは、前記初期画面を見ながら、原稿Pを図1に示す原稿台101、或いは載置台102に載置し、前記初期画面を介してコピー条件を入力し、印刷の指示を行う。操作部103の構成については後述する。当該印刷の指示があると、前記駆動部が動作することで、印刷が行われる。   Now, while viewing the initial screen, the user places the original P on the original table 101 or the mounting table 102 shown in FIG. 1, inputs the copy conditions via the initial screen, and instructs printing. The configuration of the operation unit 103 will be described later. When there is an instruction for printing, the drive unit operates to perform printing.

即ち、図1に示すように、本発明の複合機100は、本体104と、本体104の上方に取り付けられたプラテンカバー105を備える。本体104の上面は原稿台101が設けられており、原稿台101は、プラテンカバー105によって開閉されるようになっている。プラテンカバー105は、自動原稿給紙装置106と載置台102と排紙台107が設けられている。   That is, as shown in FIG. 1, the multifunction peripheral 100 of the present invention includes a main body 104 and a platen cover 105 attached above the main body 104. A document table 101 is provided on the upper surface of the main body 104, and the document table 101 is opened and closed by a platen cover 105. The platen cover 105 is provided with an automatic document feeder 106, a placement table 102, and a sheet discharge table 107.

自動原稿給紙装置106は、プラテンカバー105の内部に形成された原稿搬送路108と、プラテンカバー105の内部に備えられたピックアップローラ109や搬送ローラ110A、110B等で構成される。原稿搬送路108は、載置台102から、本体104に設けられた画像読取部111にて読み取りが行なわれる読取位置Xを経由して、排紙台107に通じる原稿の搬送路である。   The automatic document feeder 106 includes a document conveyance path 108 formed in the platen cover 105, a pickup roller 109 and conveyance rollers 110A and 110B provided in the platen cover 105, and the like. The document conveyance path 108 is a document conveyance path that leads from the mounting table 102 to the paper discharge table 107 via a reading position X where reading is performed by the image reading unit 111 provided in the main body 104.

自動原稿給紙装置106は、載置台102に載置された複数の原稿から1枚ずつ原稿をピックアップローラ109で搬送路内108に引き出し、搬送ローラ等によって引き出した原稿を、読取位置Xを通過させて、搬送ローラ110Bにより排紙台107に排紙する。読取位置Xを通過する時に原稿は画像読取部111にて読み取られる。   The automatic document feeder 106 pulls out documents one by one from a plurality of documents placed on the table 102 to the inside of the conveyance path 108 by a pickup roller 109, and passes the document drawn by the conveyance rollers etc. through the reading position X. Then, the paper is discharged onto the paper discharge tray 107 by the transport roller 110B. When the document passes through the reading position X, the document is read by the image reading unit 111.

前記画像読取部111は、原稿台101の下方に設けられており、図2にその詳細が示されている。画像読取部111は、原稿台101を照射する走査方向に長い光源112と、原稿台からの光を選択的に通過させるスリット113と、原稿台からの光を導くミラー114とを備える第一の移動キャリッジ115や、第一の移動キャリッジ115からの反射光を再度反射するミラー116A、116Bを備える第二の移動キャリッジ117、更にミラーで導かれた光を光学的に補正するレンズ群118、当該レンズ群118より補正された光を受光する撮像素子119、撮像素子119にて受光した光を電気信号に変換し、必要に応じて補正処理・画質処理・圧縮処理などを行う画像データ生成部120とで構成されている。   The image reading unit 111 is provided below the document table 101, and its details are shown in FIG. The image reading unit 111 includes a first light source 112 that illuminates the document table 101 in the scanning direction, a slit 113 that selectively allows light from the document table, and a mirror 114 that guides light from the document table. The movable carriage 115, the second movable carriage 117 including mirrors 116A and 116B that reflect the reflected light from the first movable carriage 115 again, and the lens group 118 that optically corrects the light guided by the mirror, An image sensor 119 that receives light corrected by the lens group 118, and an image data generator 120 that converts the light received by the image sensor 119 into an electrical signal and performs correction processing, image quality processing, compression processing, and the like as necessary. It consists of and.

自動原稿給紙装置106上の原稿を読み取る場合には、光源112は、読取位置Xを照射できる位置に移動して発光する。光源112からの光は、原稿台101を透過して読取位置Xを通過する原稿にて反射し、スリット113、ミラー114、116A、116B、レンズ群118によって撮像素子119に導かれる。撮像素子119は、受光した光を電気信号に変換して画像データ生成部120に送信する。画像データ生成部120には、上記撮像素子119にて受光された光がR(レッド)、G(グリーン)、B(ブルー)のアナログ電気信号として入力され、ここでアナログ−デジタル変換され、即ちデジタル化される。さらに、画像データ生成部120では、順次変換されたデジタル信号を単位データとし、これら単位データを補正処理、画質処理、圧縮処理等することで複数の単位データからなる画像データを生成する。   When reading a document on the automatic document feeder 106, the light source 112 moves to a position where the reading position X can be irradiated and emits light. Light from the light source 112 is reflected by a document that passes through the document table 101 and passes through the reading position X, and is guided to the image sensor 119 by the slit 113, mirrors 114, 116A, and 116B, and the lens group 118. The image sensor 119 converts the received light into an electrical signal and transmits it to the image data generation unit 120. The light received by the image sensor 119 is input to the image data generation unit 120 as analog electrical signals of R (red), G (green), and B (blue), where analog-digital conversion is performed. Digitized. Further, the image data generation unit 120 uses the sequentially converted digital signal as unit data, and generates image data including a plurality of unit data by performing correction processing, image quality processing, compression processing, and the like on the unit data.

又、画像読取部111は、自動原稿給紙装置106で搬送される原稿だけでなく、原稿台101に載置された原稿も読み取ることが可能となっている。原稿台101に載置された原稿を読み取る場合は、第一のキャリッジ114は、光源112を発光しながら副走査方向に移動し、光源112から撮像素子119までの光路長を一定にするために、第二の移動キャリッジ117は第一の移動キャリッジ115の1/2の速度で撮像素子119方向に移動する。   Further, the image reading unit 111 can read not only a document conveyed by the automatic document feeder 106 but also a document placed on the document table 101. When reading the document placed on the document table 101, the first carriage 114 moves in the sub-scanning direction while emitting the light source 112, so that the optical path length from the light source 112 to the image sensor 119 is constant. The second moving carriage 117 moves in the direction of the image sensor 119 at a half speed of the first moving carriage 115.

撮像素子119は、自動原稿給紙装置106に搬送された原稿のときと同様に、ミラー114、116A、116Bに導かれた光に基づいて原稿台101に載置された原稿からの光を電気信号に変換し、これに基づいて画像データ生成部120が画像データを生成し、画像記憶部120Bに記憶する。   The image sensor 119 electrically outputs the light from the document placed on the document table 101 based on the light guided to the mirrors 114, 116 A, and 116 B, as in the case of the document conveyed to the automatic document feeder 106. Based on this, the image data generation unit 120 generates image data and stores the image data in the image storage unit 120B.

本体104の画像読取部111の下方には、画像データを印刷する画像形成部121を備えている。画像形成部121が印刷できる画像データは、上記のように画像データ生成部120にて生成されたものや、その他、複合機100とLAN等のネットワークに接続されたパーソナルコンピューター等の端末から通信部(ネットワークインターフェイス、図示せず)を介して受信したものである。尚、通信部は、ファクシミリ送受信機能、電子メール送受信機能等で用いられる。   An image forming unit 121 that prints image data is provided below the image reading unit 111 of the main body 104. The image data that can be printed by the image forming unit 121 is generated by the image data generating unit 120 as described above, or from a terminal such as a personal computer connected to the MFP 100 and a network such as a LAN. (Network interface, not shown). The communication unit is used for a facsimile transmission / reception function, an electronic mail transmission / reception function, and the like.

さて、画像形成部121が行う印刷方式には、電子写真方式が用いられている。即ち、感光ドラム122を帯電器123で一様に帯電させ、その後レーザ124で感光ドラム122を照射して感光ドラム122に潜像を形成し、現像器125で潜像にトナーを付着させて可視像を形成し、転写ローラにて可視像を転写媒体に転写する方式である。   As a printing method performed by the image forming unit 121, an electrophotographic method is used. That is, the photosensitive drum 122 is uniformly charged by the charger 123, and then a latent image is formed on the photosensitive drum 122 by irradiating the photosensitive drum 122 with a laser 124, and toner is attached to the latent image by the developing device 125. In this method, a visual image is formed and the visible image is transferred to a transfer medium by a transfer roller.

尚、フルカラー画像に対応した複合機では、上記現像器(ロータリー現像器)125が、図1の紙面に対して垂直方向に構成される回転軸を中心として周方向に回転させられ、対応する色のトナーが格納された現像ユニットが感光ドラム122の対向位置に配置される。この状態で、感光ドラム122上の潜像が、現像器125が格納するトナーにより現像され、中間転写ベルト126Aに転写される。なお、現像器125は、イエロー(Y)、シアン(C)、マゼンタ(M)、ブラック(K)の各トナーをそれぞれ格納する4つの現像ユニット125(Y)、(C)、(M)、(K)を有している。上記中間転写ベルト126Aへの転写を上記各色毎に繰り返すことにより、当該中間転写ベルト126A上にフルカラー画像が形成される。   Note that in a multi-function device that supports full-color images, the developing device (rotary developing device) 125 is rotated in the circumferential direction around a rotation axis that is configured in a direction perpendicular to the paper surface of FIG. The developing unit storing the toner is disposed at a position facing the photosensitive drum 122. In this state, the latent image on the photosensitive drum 122 is developed with toner stored in the developing device 125 and transferred to the intermediate transfer belt 126A. The developing unit 125 includes four developing units 125 (Y), (C), (M), and yellow (Y), cyan (C), magenta (M), and black (K), respectively. (K). By repeating the transfer to the intermediate transfer belt 126A for each color, a full color image is formed on the intermediate transfer belt 126A.

可視像が印刷される転写媒体、即ち用紙は、給紙カセット132、133、134などの給紙トレイに載置されたものである。   A transfer medium on which a visible image is printed, that is, a sheet, is placed on a sheet feeding tray such as a sheet feeding cassette 132, 133, or 134.

画像形成部121が印刷を行う際には、何れか1つの給紙トレイから転写媒体1枚を、ピックアップローラ135を用いて引き出し、引き出した転写媒体を搬送ローラ136やレジストローラ137で中間転写ベルト126Aと転写ローラ126Bの間に送り込む。   When the image forming unit 121 performs printing, one transfer medium is pulled out from any one of the paper feed trays by using the pickup roller 135, and the transferred transfer medium is intermediate transfer belt by the transport roller 136 or the registration roller 137. It is fed between 126A and the transfer roller 126B.

画像形成部121は、中間転写ベルト126Aと転写ローラ126Bの間に送り込んだ転写媒体に、上記中間転写ベルト126A上の可視像を転写すると、可視像を定着させるために、搬送ベルト127で定着部128(定着装置)に転写媒体を送る。定着部128は、ヒータが内蔵された加熱ローラ129と、所定の圧力で加熱ローラ129に押し当てられた加圧ローラ130とで構成されている。加熱ローラ129と加圧ローラ130の間を転写媒体が通過すると、熱と転写媒体への押圧力によって可視像が転写媒体に定着する。定着が行われた転写媒体は排紙トレイ131に排紙される。   When the visible image on the intermediate transfer belt 126A is transferred to the transfer medium fed between the intermediate transfer belt 126A and the transfer roller 126B, the image forming unit 121 uses the transport belt 127 to fix the visible image. The transfer medium is sent to the fixing unit 128 (fixing device). The fixing unit 128 includes a heating roller 129 with a built-in heater and a pressure roller 130 pressed against the heating roller 129 with a predetermined pressure. When the transfer medium passes between the heating roller 129 and the pressure roller 130, the visible image is fixed to the transfer medium by heat and a pressing force to the transfer medium. The fixed transfer medium is discharged to a discharge tray 131.

上記手順により、複合機100はコピー機能の処理をユーザに提供する。尚、前記改ざん検知部は、前記制御部が画像形成に関するプログラムを起動する際に、当該プログラムの改ざんを検知したが、例えば、前記制御部が所定のプログラム(ファクシミリ機能プログラム等)を起動する際には、同様に、当該プログラムの起動と並行して、当該改ざん検知部が当該プログラムの改ざんを検知することになる。   Through the above procedure, the multifunction peripheral 100 provides the user with a copy function process. The falsification detection unit detects falsification of the program when the control unit activates a program related to image formation. For example, when the control unit activates a predetermined program (such as a facsimile function program). Similarly, in parallel with the activation of the program, the alteration detection unit detects the alteration of the program.

図3は、本発明に係る操作部の全体構成を示す概念図である。   FIG. 3 is a conceptual diagram showing the overall configuration of the operation unit according to the present invention.

ユーザは、前記操作部103を用いて、上述のような画像形成についての設定条件等を入力したり、入力された設定条件等を確認したりする。前記設定条件等が入力される場合、前記操作部103に備えられたタッチパネル301(操作パネル)、タッチペン302、操作キー303が用いられる。   The user uses the operation unit 103 to input setting conditions for image formation as described above, and to confirm the input setting conditions. When the setting conditions and the like are input, a touch panel 301 (operation panel), a touch pen 302, and operation keys 303 provided in the operation unit 103 are used.

前記タッチパネル301には、アナログ抵抗膜方式が採用され、透光性を有する上部フィルムと下部ガラス基板とがスペーサを介して重ね合わされた構成となっており、上部フィルムと下部ガラス基板との各々の対向面には、ITO(Indium Tin Oxide)等からなる透明電極層が設けられている。更に、上部フィルムがユーザにより押下されると、当該押下位置に対応する上部フィルム側の透明電極層と下部ガラス基板側の透明電極層とが接触するよう構成されている。上部フィルム又は下部ガラス基板に電圧を印加し、下部ガラス基板又は上部フィルムから押下位置に対応する電圧値を取り出すことにより、当該電圧値に対応する座標値(押下位置)を検出する。検出された押下位置が、タッチパネル上に表示されたキーボード画面内の文字キー等の表示領域内に含まれると、当該文字が入力される。尚、文字キーの他に、例えば、キーボードキー、設定条件キー等であっても同様である。   The touch panel 301 employs an analog resistance film method, and has a structure in which a translucent upper film and a lower glass substrate are overlapped via a spacer, and each of the upper film and the lower glass substrate. A transparent electrode layer made of ITO (Indium Tin Oxide) or the like is provided on the facing surface. Further, when the upper film is pressed by the user, the transparent electrode layer on the upper film side and the transparent electrode layer on the lower glass substrate side corresponding to the pressed position are in contact with each other. By applying a voltage to the upper film or the lower glass substrate and taking out a voltage value corresponding to the pressed position from the lower glass substrate or the upper film, a coordinate value (pressed position) corresponding to the voltage value is detected. When the detected pressed position is included in a display area such as a character key in the keyboard screen displayed on the touch panel, the character is input. The same applies to, for example, keyboard keys and setting condition keys in addition to character keys.

又、下部ガラス基板の下方には、LCD(Liquid Crystal Display)等の表示部が設けられており、当該表示部が、例えば、プログラムの改ざんが検知された場合のエラー画面、初期画面等の画面を表示することにより、タッチパネル上に特定の画面が表示される。これにより、タッチパネル301には、設定条件等を入力する機能と前記画面を表示する機能が兼ね備えられる。   In addition, a display unit such as an LCD (Liquid Crystal Display) is provided below the lower glass substrate, and the display unit displays, for example, an error screen or an initial screen when a program alteration is detected. By displaying, a specific screen is displayed on the touch panel. Thereby, the touch panel 301 has both a function for inputting setting conditions and the like and a function for displaying the screen.

又、タッチパネル301の近傍には、タッチペン302が備えられており、ユーザがそのタッチペン302の先をタッチパネル301に接触させると、当該接触位置(押下位置)に対応する座標値が、上記と同様に出力され、ユーザはタッチペン302により、表示された文字キー等を押下・選択することが可能となる。   In addition, a touch pen 302 is provided in the vicinity of the touch panel 301. When the user touches the touch pen 301 with the tip of the touch pen 302, the coordinate value corresponding to the contact position (pressed position) is the same as described above. Then, the user can press and select the displayed character key or the like with the touch pen 302.

更に、タッチパネル301近傍には、所定数の操作キー303が設けられ、例えば、テンキー304、スタートキー305、クリアキー306、ストップキー307、リセットキー308、電源キー309が備えられている。   Further, a predetermined number of operation keys 303 are provided in the vicinity of the touch panel 301, and for example, a numeric keypad 304, a start key 305, a clear key 306, a stop key 307, a reset key 308, and a power key 309 are provided.

次に、図4を用いて、複合機100及び改ざん検知部の制御系ハードウェアの構成を説明する。図4は、本発明に係る複合機及び改ざん検知部の制御系ハードウェアの構成を示す図である。ただし、本発明に直接には関係しない各部の詳細は省略している。   Next, the configuration of the control system hardware of the MFP 100 and the falsification detection unit will be described with reference to FIG. FIG. 4 is a diagram illustrating a configuration of control system hardware of the multifunction peripheral and the falsification detection unit according to the present invention. However, details of each part not directly related to the present invention are omitted.

複合機100の制御回路は、CPU(Central Processing Unit)401、ROM(Read Only Memory)402、RAM(Random Access Memory)403、HDD(Hard Disk Drive)404、各駆動部に対応するドライバ405を内部バス406によって接続している。前記CPU401は、例えば、RAM403を作業領域として利用し、前記ROM402、HDD404等に記憶されているプログラムを実行し、当該実行結果に基づいて前記ドライバ405、操作部103、改ざん検知部408からのデータや指示を授受し、上記図1に示した各駆動部の動作を制御する。また、前記駆動部以外の後述する各手段(図5に示す)についても、前記CPU401がプログラムを実行することで当該各手段を実現する。   The control circuit of the MFP 100 includes a CPU (Central Processing Unit) 401, a ROM (Read Only Memory) 402, a RAM (Random Access Memory) 403, an HDD (Hard Disk Drive) 404, and a driver 405 corresponding to each drive unit. They are connected by a bus 406. The CPU 401 uses, for example, the RAM 403 as a work area, executes a program stored in the ROM 402, the HDD 404, and the like, and data from the driver 405, the operation unit 103, and the falsification detection unit 408 based on the execution result. And instructions are given, and the operation of each drive unit shown in FIG. 1 is controlled. Further, each means (shown in FIG. 5) other than the driving unit described later is realized by the CPU 401 executing the program.

又、制御回路の内部バス406には、内部インターフェイス407も接続されており、当該内部インターフェイス407は、改ざん検知部408の制御回路と複合機100の制御回路とを接続する。CPU401は、内部インターフェイス407を介して改ざん検知部408の制御回路からの命令信号を受信したり、改ざん検知部408の制御回路へ命令信号、データ等を送信したりする。   An internal interface 407 is also connected to the internal bus 406 of the control circuit, and the internal interface 407 connects the control circuit of the falsification detection unit 408 and the control circuit of the multifunction device 100. The CPU 401 receives a command signal from the control circuit of the falsification detection unit 408 via the internal interface 407 and transmits a command signal, data, and the like to the control circuit of the falsification detection unit 408.

又、改ざん検知部408の制御回路には、内部バス412に、CPU409、ROM410、RAM411、内部インターフェイス413を備える。複合機100のCPU401が、複合機100のROM402又はRAM403に記憶された所定のプログラムを起動する際に、改ざん検知部408のCPU409が、内部インターフェイス413を介して、当該複合機100のCPU401から改ざん検知の命令信号を受信したり、又はプログラムの起動に関する命令信号を受信したりする。又、改ざん検知部408のCPU409、ROM410、RAM411の機能も上記と同様であり、後述する各手段(図5に示す)についても、前記CPU409がプログラムを実行することで当該各手段を実現する。前記ROM410、RAM411には、以下に説明する各手段を実現するプログラムやデータが記憶されている。   The control circuit of the tampering detection unit 408 includes an internal bus 412, a CPU 409, a ROM 410, a RAM 411, and an internal interface 413. When the CPU 401 of the multifunction device 100 starts a predetermined program stored in the ROM 402 or RAM 403 of the multifunction device 100, the CPU 409 of the falsification detection unit 408 falsifies from the CPU 401 of the multifunction device 100 via the internal interface 413. A detection command signal is received, or a command signal related to program activation is received. The functions of the CPU 409, the ROM 410, and the RAM 411 of the falsification detection unit 408 are the same as described above, and the respective means (shown in FIG. 5) described later are realized by the CPU 409 executing the program. The ROM 410 and RAM 411 store programs and data for realizing each means described below.

<本発明の実施形態>
次に、図5、図6を参照しながら、本発明の実施形態に係る実行手順について説明する。図5は、本発明の複合機及び改ざん検知部の機能ブロック図である。図6は、本発明の実行手順を示すためのフローチャートである。
<Embodiment of the present invention>
Next, an execution procedure according to the embodiment of the present invention will be described with reference to FIGS. FIG. 5 is a functional block diagram of the MFP and the falsification detection unit of the present invention. FIG. 6 is a flowchart for illustrating the execution procedure of the present invention.

ユーザが複合機100の電源を投入すると、複合機100の制御手段501が、予め設定された初期のプログラム(例えば、画像形成に関するプログラム)の起動を開始する(図6:S101)。   When the user turns on the power of the multifunction device 100, the control unit 501 of the multifunction device 100 starts to start a preset initial program (for example, a program related to image formation) (FIG. 6: S101).

制御手段501は、前記プログラムの起動をする際に、当該プログラムの改ざんを検知する旨を、改ざん検知部408の選択手段502に通知する。次に、当該制御手段501は、当該プログラムの改ざんの有無の結果を得ることなく、プログラム記憶手段503から、特定のプログラム識別情報(例えば、プログラムの名称「初期プログラム」等)に対応するプログラム全体のデータを読み出し、当該プログラムを実行する。   When the program is started, the control unit 501 notifies the selection unit 502 of the alteration detection unit 408 that the alteration of the program is detected. Next, the control unit 501 obtains the entire program corresponding to specific program identification information (for example, the name of the program “initial program”) from the program storage unit 503 without obtaining a result of whether or not the program has been tampered with. The data is read and the program is executed.

図7(A)は、本発明の実施形態に係るタッチパネル上に表示された初期画面の一例を示す図である。   FIG. 7A is a diagram showing an example of an initial screen displayed on the touch panel according to the embodiment of the present invention.

前記初期プログラムを実行した制御手段501は、表示受付手段504に、画像形成に関する初期画面(図7(A))をタッチパネルに表示させたり、画像形成手段505に、画像形成に関する駆動部を通常状態へ移行させたりする。そして、ユーザは、タッチパネルに表示した初期画面を見ながら、画像形成に関する設定条件を入力したり、スタートキーを押下したりして、複合機100に画像形成処理を実行させることになる。   The control unit 501 that has executed the initial program causes the display accepting unit 504 to display an initial screen related to image formation (FIG. 7A) on the touch panel, or causes the image forming unit 505 to place the drive unit related to image formation in a normal state. Or move to. Then, while viewing the initial screen displayed on the touch panel, the user inputs setting conditions related to image formation or presses the start key to cause the multifunction peripheral 100 to execute image formation processing.

一方、前記制御手段501による前記通知を受けた選択手段502は、前記制御手段501によるプログラムの起動(実行)と並行して、当該制御手段501から改ざん検知の対象となるプログラムのプログラム識別情報(「初期プログラム」)を取得する。次に、選択手段502は、優先選択記憶手段506を参照し、当該優先選択記憶手段506に、取得したプログラム識別情報に対応したブロックプログラム識別情報(後述)が一時記憶されているか否か判定する(図6:S102)。   On the other hand, the selection unit 502 that has received the notification by the control unit 501 performs the program identification information (the program identification information of the program to be detected by the control unit 501 in parallel with the activation (execution) of the program by the control unit 501. "Initial program"). Next, the selection unit 502 refers to the priority selection storage unit 506 and determines whether block program identification information (described later) corresponding to the acquired program identification information is temporarily stored in the priority selection storage unit 506. (FIG. 6: S102).

このように、前記プログラムの起動時間のうち、当該プログラムの改ざんの検知に要する時間、例えば、ハッシュ値の算出時間を削除することになり、当該プログラムの起動時間全体を大幅に短縮することが可能となる。   In this way, the time required for detecting the alteration of the program, for example, the calculation time of the hash value, is deleted from the startup time of the program, and the overall startup time of the program can be greatly reduced. It becomes.

さて、前記判定の結果、前記プログラム識別情報に対応したブロックプログラム識別情報が一時記憶されている場合は(図6:S102YES)、前記選択手段502は、当該ブロックプログラム識別情報を最優先で選択することになるが(図6:S104)、その説明は後述する。   When the block program identification information corresponding to the program identification information is temporarily stored as a result of the determination (FIG. 6: S102 YES), the selection unit 502 selects the block program identification information with the highest priority. This will be described later (FIG. 6: S104).

一方、前記判定の結果、前記プログラム識別情報に対応したブロックプログラム識別情報が一時記憶されていない場合(図6:S102NO)、前記選択手段502は、ハッシュ値記憶手段507に予め記憶されているハッシュ値テーブルを参照する(図6:S103)。   On the other hand, if the block program identification information corresponding to the program identification information is not temporarily stored as a result of the determination (FIG. 6: S102 NO), the selection unit 502 uses the hash stored in advance in the hash value storage unit 507. The value table is referred to (FIG. 6: S103).

図7(B)は、本発明の実施形態に係るハッシュ値テーブルの一例を示す図である。図8(A)は、本発明の実施形態に係るブロックプログラムの一例を示す図である。   FIG. 7B is a diagram showing an example of a hash value table according to the embodiment of the present invention. FIG. 8A is a diagram showing an example of a block program according to the embodiment of the present invention.

ハッシュ値テーブル700には、図7(B)に示すように、前記プログラム識別情報701(例えば、「初期プログラム」701a)と、当該プログラム全体を所定数(分割数、例えば、「10」)のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報702(例えば、「A001」702a)と、当該ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値703(例えば、「98765」703a、ダイジェスト情報とも言う)とが関連付けて記憶される。   In the hash value table 700, as shown in FIG. 7B, the program identification information 701 (for example, “initial program” 701a) and a predetermined number (the number of divisions, for example, “10”) of the entire program are included. Block program identification information 702 (for example, “A001” 702a) of a block program obtained by dividing into blocks, and a comparison hash value 703 (for example, “98765”) obtained by applying a predetermined hash function to the block program. 703a, also referred to as digest information).

ここで、前記ブロックプログラム706は、図8(A)に示すように、プログラム全体801(プログラムの実体であるバイナリデータに対応)を、先頭のデータ802を含むデータ群から順番に、所定数(分割数)のブロックに均等分割することにより得られる。又、前記ブロックプログラム803の所定数は、分割後のブロックプログラム803に前記ハッシュ関数を適用してハッシュ値を算出した場合に、当該ハッシュ値を算出するために要する時間(ハッシュ値の算出時間)が、予め設定された所定時間(例えば、数秒−数十秒)未満となるように決定されている。   Here, as shown in FIG. 8 (A), the block program 706 stores the entire program 801 (corresponding to binary data that is the substance of the program) in a predetermined number (in order from the data group including the top data 802). It is obtained by dividing equally into (number of divisions) blocks. The predetermined number of block programs 803 is the time required to calculate the hash value when the hash function is calculated by applying the hash function to the divided block program 803 (the calculation time of the hash value). Is determined to be less than a predetermined time (for example, several seconds to several tens of seconds) set in advance.

これにより、ハッシュ値の算出に要する時間を必要以上に長期化しないように制御することが可能となる。尚、前記ブロックプログラム803の所定数は、プログラム全体(バイナリデータ全体)のサイズに応じて適宜決定されるものの、例えば、初期プログラム(例えば、数十MB)であれば、10個−100個に決定される。   As a result, it is possible to control the time required for calculating the hash value so as not to be longer than necessary. The predetermined number of the block programs 803 is appropriately determined according to the size of the entire program (the entire binary data). For example, in the case of an initial program (for example, several tens of MB), the predetermined number is 10 to 100. It is determined.

又、ブロックプログラム識別情報702は、当該ブロックプログラム803が分割元のプログラム全体801のうち、どこの領域に位置するかを示す情報(例えば、プログラムが記憶されているメモリの領域又は位置を示すアドレス)に対応している。   The block program identification information 702 is information indicating in which area the block program 803 is located in the entire program 801 of the division source (for example, an address indicating the area or position of the memory in which the program is stored). ).

図8(A)では、プログラムの先頭のデータ802を含むブロックプログラム803aには、ブロックプログラム識別情報として最初の順位を示す「A001」が割り付けられている。又、前記先頭のデータ802を含むブロックプログラム803aを基準として、後続のブロックプログラム803bには、順次低い順位のブロックプログラム識別情報(例えば、「A001」の直後には「A002」)が割り付けられている。図8(A)では、所定数が10個であるため、後尾のデータを含むブロックプログラム803zには、最後の順位を示すブロックプログラム識別情報(「A010」)が割り付けられている。これにより、ブロックプログラム識別情報に基づいてブロックプログラムの領域又は位置を特定することが可能となる。   In FIG. 8A, the block program 803a including the top data 802 of the program is assigned “A001” indicating the first order as block program identification information. Further, with the block program 803a including the head data 802 as a reference, the succeeding block program 803b is assigned block program identification information (for example, “A002” immediately after “A001”) in order. Yes. In FIG. 8A, since the predetermined number is 10, block program identification information (“A010”) indicating the last rank is assigned to the block program 803z including the trailing data. Thereby, it becomes possible to specify the area | region or position of a block program based on block program identification information.

さて、ハッシュ値テーブル700を参照した選択手段502は、先ほど取得したプログラム識別情報(「初期プログラム」)と、ハッシュ値テーブル700のプログラム識別情報701とを比較し、一致したプログラム識別情報701(「初期プログラム」701a)に属する所定数のブロックプログラム識別情報702を特定する。次に、選択手段502が、所定数のブロックプログラム識別情報702のうち、特定のブロックプログラム識別情報702を選択する(図6:S104)。   The selection unit 502 that refers to the hash value table 700 compares the previously acquired program identification information (“initial program”) with the program identification information 701 in the hash value table 700 and matches the program identification information 701 (“ A predetermined number of block program identification information 702 belonging to "initial program" 701a) is specified. Next, the selection unit 502 selects specific block program identification information 702 from a predetermined number of block program identification information 702 (FIG. 6: S104).

ここで、選択手段502が、特定のブロックプログラム識別情報702を選択する場合、どのように選択しても構わないが、例えば、プログラムの種類、目的、用途に応じて、予め設定された選択数(例えば、1つ)のブロックプログラム識別情報を選択するよう構成する。   Here, when the selection unit 502 selects the specific block program identification information 702, it may be selected in any way. For example, a selection number set in advance according to the type, purpose, and use of the program. The block program identification information (for example, one) is selected.

当該構成とすると、選択するブロックプログラム識別情報の選択数が増加すれば、ハッシュ値の算出時間が増大するものの、安全性を更に向上させることが可能となる。例えば、起動の迅速化よりも安全性を優先させるプログラム(ユーザ情報が含まれるアドレス帳機能プログラム)であれば、前記選択数を増加して(例えば、5つ)、安全性を確保すればよいし、安全性よりも起動の迅速化を優先させるプログラム(ユーザ情報を全く含まない初期プログラム)であれば、前記選択数を減少して、起動時間の短縮を図れる。尚、前記選択数は、プログラムの種類、目的、用途に応じて、管理者等の特定のユーザが適宜設定するよう構成すればよい。   With this configuration, if the number of block program identification information to be selected increases, the calculation time of the hash value increases, but the safety can be further improved. For example, if the program prioritizes safety over speeding up (address book function program including user information), the number of selections may be increased (for example, five) to ensure safety. However, if the program prioritizes quick startup over safety (an initial program that does not include any user information), the number of selections can be reduced to shorten startup time. Note that the number of selections may be configured so that a specific user such as an administrator appropriately sets the number according to the type, purpose, and usage of the program.

更に、選択手段502が、例えば、プログラム全体のうち、半分から後尾までのデータを含むブロックプログラムのブロックプログラム識別情報を他のブロックプログラム識別情報よりも優先して選択する。具体的には、選択手段502が、最も低い順位のブロックプログラム識別情報(「A010」)を特定のブロックプログラム識別情報として選択する。   Further, the selection unit 502 selects, for example, block program identification information of a block program including data from half to the end of the entire program in preference to other block program identification information. Specifically, the selection unit 502 selects the lowest rank block program identification information (“A010”) as specific block program identification information.

図8(B)は、本発明の実施形態に係る改ざんされる前のプログラムと、改ざん後のプログラムの一例を示す図である。   FIG. 8B is a diagram showing an example of a program before falsification and a program after falsification according to the embodiment of the present invention.

プログラム全体のうち、所定の箇所のデータが改ざんされた場合、当該改ざんされたデータ(内容)に応じて、当該改ざんされたデータの後続のプログラムは変更される。例えば、図8(B)に示すように、プログラム全体のうち、中央部のデータ804が改ざんされて、新たに所定のデータ805が追加された場合、当該追加分805だけ、改ざんされたデータの後続のプログラム806は後方にシフトし、当該後続のプログラム806は、改ざん前の後続のプログラム807と全く異なるデータとなる。尚、中央部のデータ804のうち、所定のデータが削除された場合は、当該削除分だけ、改ざんされたデータの後続のデータは前方にシフトし、その結果、当該後続のデータは、改ざん前の後続のデータと全く異なるデータとなる。   When the data of a predetermined part of the entire program is falsified, the program subsequent to the falsified data is changed according to the falsified data (contents). For example, as shown in FIG. 8B, when the data 804 in the central portion of the entire program is falsified and new predetermined data 805 is added, the data of the falsified data is added by the added amount 805. The subsequent program 806 shifts backward, and the subsequent program 806 is completely different from the subsequent program 807 before falsification. If predetermined data is deleted from the central data 804, the subsequent data of the falsified data is shifted forward by that amount, and as a result, the subsequent data is This data is completely different from the subsequent data.

すると、改ざん後の後続のデータ806を一部でも含むブロックプログラム808の対応ハッシュ値は、当該ブロックプログラム808に対応する改ざん前のブロックプログラム809の比較ハッシュ値と全く異なる値となる。   Then, the corresponding hash value of the block program 808 including at least a part of the subsequent data 806 after the falsification is completely different from the comparison hash value of the block program 809 before the falsification corresponding to the block program 808.

更に、最も低い順位のブロックプログラム識別情報のブロックプログラムであれば、確実に、プログラム全体の半分より後続のプログラムに対応する。そのため、当該ブロックプログラムには、改ざん後の後続のプログラムを一部でも含んでいる可能性が極めて高い。上述した構成を採用することにより、選択手段502は、改ざんによるデータ変更の影響を受け易いブロックプログラムのブロックプログラム識別情報を選択することが可能となる。その結果、仮に、前記プログラムの起動(実行)と並行して、当該プログラムの改ざんの検知を実行したとしても、早期に当該プログラムの改ざんの検知を発見することが可能となる。尚、改ざんされたデータが改ざん前のデータと比較して同等(同一のビット数)である場合も想定されるが、この場合は、稀であるため、上述した構成で問題はない。   Further, the block program having the lowest rank block program identification information surely corresponds to a program subsequent to half of the entire program. Therefore, it is highly likely that the block program includes a part of the subsequent program after falsification. By adopting the above-described configuration, the selection unit 502 can select block program identification information of a block program that is susceptible to data change due to tampering. As a result, even if detection of alteration of the program is executed in parallel with the activation (execution) of the program, detection of alteration of the program can be detected at an early stage. It is assumed that the altered data is equivalent (same number of bits) as compared with the data before the alteration, but in this case, since it is rare, there is no problem with the above-described configuration.

さて、選択手段502が、特定のブロックプログラム識別情報(「A010」)を選択すると、その旨をハッシュ値算出手段508に通知する。当該通知を受けたハッシュ値算出手段508は、選択手段502からプログラム識別情報(「初期プログラム」)と特定のブロックプログラム識別情報(「A010」)とを取得する。次に、ハッシュ値算出手段508は、複合機100のプログラム記憶手段503から前記プログラム識別情報(「初期プログラム」)に対応するプログラム全体から、特定のブロックプログラム識別情報(「A010」)に対応するブロックプログラムを取得する(図6:S105)。そして、ハッシュ値算出手段508は、ハッシュ関数記憶手段509に予め記憶されたハッシュ関数を参照して、取得したブロックプログラム(バイナリデータ)に当該ハッシュ関数を適用して対応ハッシュ値を算出する(図6:S106)。   When the selection unit 502 selects specific block program identification information (“A010”), the selection unit 502 notifies the hash value calculation unit 508 to that effect. The hash value calculation unit 508 that has received the notification acquires program identification information (“initial program”) and specific block program identification information (“A010”) from the selection unit 502. Next, the hash value calculation unit 508 corresponds to specific block program identification information (“A010”) from the entire program corresponding to the program identification information (“initial program”) from the program storage unit 503 of the multifunction peripheral 100. A block program is acquired (FIG. 6: S105). Then, the hash value calculation unit 508 refers to the hash function stored in advance in the hash function storage unit 509 and calculates the corresponding hash value by applying the hash function to the acquired block program (binary data) (see FIG. 6: S106).

ここで、ハッシュ値算出手段508が対応ハッシュ値を算出する場合、ブロックプログラムのサイズが、プログラム全体のサイズと比較して一部(小さい)であることから(例えば、所定数が10個であれば、10分の1)、ハッシュ値の算出負担(演算負担)が軽減され、算出速度(演算速度)の向上、算出効率(演算効率)の向上が図れる。更に、所定のブロックプログラムに対するハッシュ値の算出時間が、プログラム全体に対するハッシュ値の算出時間と比較して、著しく短縮される。例えば、プログラムデータ全体に対応するハッシュ値の算出時間が、数分である場合、ブロックプログラムに対応するハッシュ値の算出時間は、数秒程度となる。これにより、ハッシュ値の算出時間が飛躍的に短縮されることが理解される。   Here, when the hash value calculation unit 508 calculates the corresponding hash value, the size of the block program is a part (small) compared to the size of the entire program (for example, if the predetermined number is 10). For example, the calculation load (calculation load) of the hash value is reduced, and the calculation speed (calculation speed) can be improved and the calculation efficiency (calculation efficiency) can be improved. Furthermore, the hash value calculation time for a given block program is significantly reduced compared to the hash value calculation time for the entire program. For example, when the calculation time of the hash value corresponding to the entire program data is several minutes, the calculation time of the hash value corresponding to the block program is about several seconds. Thereby, it is understood that the calculation time of the hash value is remarkably shortened.

さて、ハッシュ値算出手段508が対応ハッシュ値を算出すると、その旨を検知手段510に通知する。当該通知を受けた検知手段510は、ハッシュ値記憶手段509のハッシュ値テーブル700を参照して、特定のブロックプログラム識別情報(「A010」)に対応する比較ハッシュ値(「65432」)を取得する。そして、検知手段510は、算出された対応ハッシュ値と、取得した比較ハッシュ値とを比較して、改ざんの有無を判定する(図6:S107)。   Now, when the hash value calculation means 508 calculates the corresponding hash value, it notifies the detection means 510 to that effect. Upon receiving the notification, the detection unit 510 refers to the hash value table 700 of the hash value storage unit 509 and acquires a comparison hash value (“65432”) corresponding to the specific block program identification information (“A010”). . Then, the detection unit 510 compares the calculated corresponding hash value with the acquired comparison hash value to determine whether or not tampering has occurred (FIG. 6: S107).

前記比較(判定)の結果、両者が一致した場合(図6:S107YES)、プログラムは改ざんされていないことになる。この場合、検知手段510は、その旨を前記選択手段502に通知する。当該通知を受けた選択手段502は、当該プログラムの実行中(起動中、動作中)に、前記ハッシュ値テーブル700を参照して、当該ハッシュ値テーブル700に記憶された全てのブロックプログラム識別情報を選択したか否かを判定する(図6:S108)。   As a result of the comparison (determination), if the two match (FIG. 6: S107 YES), the program has not been tampered with. In this case, the detection unit 510 notifies the selection unit 502 to that effect. Upon receipt of the notification, the selection unit 502 refers to the hash value table 700 during execution (starting up and operating) of the program, and stores all the block program identification information stored in the hash value table 700. It is determined whether or not it has been selected (FIG. 6: S108).

尚、前記比較の結果、前記対応ハッシュ値と前記比較ハッシュ値とが不一致の場合は(図6:S107NO)、後述する。   Note that, as a result of the comparison, if the corresponding hash value does not match the comparison hash value (FIG. 6: S107 NO), it will be described later.

前記ハッシュ値テーブル700に記憶された全てのブロックプログラム識別情報を選択したか否かの判定方法は、例えば、選択手段502が、参照したハッシュ値テーブル700のブロックプログラム識別情報と、既に選択したブロックプログラム識別情報とを比較して、不一致のブロックプログラム識別情報がハッシュ値テーブル700に存在するか否かによってなされる。   The determination method of whether or not all the block program identification information stored in the hash value table 700 has been selected is, for example, the block program identification information in the hash value table 700 that the selection unit 502 refers to and the block that has already been selected. The comparison is made with the program identification information, and whether or not the inconsistent block program identification information exists in the hash value table 700 is determined.

前記判定の結果、前記ハッシュ値テーブル700に記憶された全てのブロックプログラム識別情報を選択していない場合(図6:S108NO)、選択手段502は、予め備えられている所定のタイマー511を起動し、検知手段510により所定のブロックプログラムの改ざんの有無の結果を受けた時点からの経過時間を計測する(図6:S109)。そして、選択手段502は、設定時間記憶手段512に予め記憶されている設定時間を取得して、前記経過時間が前記設定時間を超過するまで待機する(図6:S110NO)。   If all the block program identification information stored in the hash value table 700 has not been selected as a result of the determination (FIG. 6: S108 NO), the selection unit 502 starts a predetermined timer 511 provided in advance. Then, the elapsed time from the time when the detection unit 510 receives the result of the presence or absence of alteration of the predetermined block program is measured (FIG. 6: S109). Then, the selection unit 502 acquires the set time stored in advance in the set time storage unit 512, and waits until the elapsed time exceeds the set time (FIG. 6: S110 NO).

ここで、前記設定時間は、プログラムの種類、目的、用途、サイズに応じて、管理者等の特定のユーザが適宜設定するよう構成される。例えば、プログラムが初期プログラムであり、ブロックプログラムの所定数が10個である場合、1時間当たりに10回、ブロックプログラムの改ざん検知がなされるように、前記設定時間は6分と設定される。   Here, the set time is appropriately set by a specific user such as an administrator in accordance with the type, purpose, application, and size of the program. For example, when the program is an initial program and the predetermined number of block programs is 10, the set time is set to 6 minutes so that the alteration of the block program is detected 10 times per hour.

前記経過時間が前記設定時間を超過すると(図6:S110YES)、選択手段502は、前記ハッシュ値テーブル700から、既に選択したブロックプログラム識別情報と異なるブロックプログラム識別情報(未だに選択していないブロックプログラム識別情報)を選択する(図6:S104)。   When the elapsed time exceeds the set time (FIG. 6: S110 YES), the selection unit 502 determines from the hash value table 700 block program identification information that is different from the already selected block program identification information (block program that has not been selected yet). (Identification information) is selected (FIG. 6: S104).

これにより、前記制御手段501がプログラムの実行中に、全てのブロックプログラム識別情報が選択されるまで、前記所定時間毎に、未選択のブロックプログラム識別情報の選択が繰り返されて、プログラム全体の改ざんを確実に検知することが可能となる。又、このようなブロックプログラムの改ざんの検知が、前記プログラムの実行中(起動中、動作中)に繰り返しなされることにより、当該プログラムの実行中に改ざんがなされた場合、当該改ざんをほぼリアルタイムで検知、捕捉することが可能となる。ここで、実行中とは、前記制御手段501が、所定時間経過後に省電力状態へ移行させる所定のプログラムを実行することにより、複合機100が低電力状態である最中も含む。   As a result, during the execution of the program by the control means 501, the selection of unselected block program identification information is repeated every predetermined time until all block program identification information is selected, and the entire program is altered. Can be reliably detected. In addition, by detecting such alteration of the block program repeatedly during the execution of the program (starting and operating), if the alteration is made during the execution of the program, the alteration is performed almost in real time. It can be detected and captured. Here, “being executed” includes the time when the multifunction device 100 is in the low power state by the control unit 501 executing a predetermined program that shifts to the power saving state after a predetermined time has elapsed.

尚、選択手段502が、特定のブロックプログラム識別情報を選択する場合(図6:S104)、既に最も低い順位のブロックプログラム識別情報(「A010」)は選択されている。そのため、選択手段502は、次に低い順位のブロックプログラム識別情報(「A009」)を選択することになる。つまり、選択手段502が、最も低い順位のブロックプログラム識別情報(「A010」)から最も高い順位のブロックプログラム識別情報(「A001」)まで降順にブロックプログラム識別情報を選択することになる。選択後については、上述と同様となるため(図6:S105)、省略する。   When the selection unit 502 selects specific block program identification information (FIG. 6: S104), the lowest block program identification information (“A010”) has already been selected. Therefore, the selection unit 502 selects the next lower rank block program identification information (“A009”). That is, the selection unit 502 selects block program identification information in descending order from the lowest rank block program identification information (“A010”) to the highest rank block program identification information (“A001”). Since the selection is the same as described above (FIG. 6: S105), the description is omitted.

さて、S108において、前記選択手段502が、前記ハッシュ値テーブル700に記憶された全てのブロックプログラム識別情報を選択した場合(図6:S108YES)、前記プログラム全体の改ざんを検知した結果、当該プログラムは改ざんされていないことになる。そのため、前記選択手段502は、前記プログラムの改ざんの検知を完了する。   In S108, when the selection unit 502 selects all the block program identification information stored in the hash value table 700 (FIG. 6: S108 YES), as a result of detecting alteration of the entire program, the program is It has not been tampered with. Therefore, the selection unit 502 completes detection of alteration of the program.

一方、S107において、前記比較の結果、前記対応ハッシュ値と前記比較ハッシュ値とが不一致の場合(図6:S107NO)、制御手段501が起動(実行)しているプログラム(動作中のプログラム)は何らかの理由によって改ざんされたことになる。そのため、検知手段510は、当該プログラムが改ざんされたことを検知し、その旨を機能停止手段513に通知する。当該通知を受けた機能停止手段513は、不一致の比較ハッシュ値に対応するブロックプログラム識別情報(「A010」)と、当該ブロックプログラム識別情報(「A010」)に対応するプログラム識別情報(「初期プログラム」)とをハッシュ値記憶手段507のハッシュ値テーブル700から取得して、取得したブロックプログラム識別情報とプログラム識別情報とを、上述した優先選択記憶手段506に優先選択テーブルとして一時記憶させる(図6:S111)。   On the other hand, in S107, if the corresponding hash value and the comparison hash value do not match as a result of the comparison (FIG. 6: S107 NO), the program activated (executed) by the control unit 501 is It has been altered for some reason. Therefore, the detection unit 510 detects that the program has been tampered with and notifies the function stop unit 513 to that effect. Upon receiving the notification, the function stopping unit 513 receives the block program identification information (“A010”) corresponding to the non-matching comparison hash value and the program identification information (“initial program”) corresponding to the block program identification information (“A010”). ”) From the hash value table 700 of the hash value storage unit 507, and the acquired block program identification information and program identification information are temporarily stored in the above-described priority selection storage unit 506 as a priority selection table (FIG. 6). : S111).

図9(A)は、本発明の実施形態に係る優先選択テーブルの一例を示す図である。   FIG. 9A is a diagram showing an example of a priority selection table according to the embodiment of the present invention.

優先選択テーブル900には、図9(A)に示すように、改ざんされたプログラムのプログラム識別情報901(「初期プログラム」)と、プログラム全体のうち、改ざんが検知されたブロックプログラムのブロックプログラム識別情報902(「A010」)とが関連付けて一時記憶される。   In the priority selection table 900, as shown in FIG. 9A, the program identification information 901 (“initial program”) of the altered program and the block program identification of the block program in which alteration has been detected in the entire program. Information 902 (“A010”) is temporarily stored in association with each other.

これにより、S102において、前記選択手段502が、改ざんされたプログラムのプログラム識別情報における特定のブロックプログラム識別情報を選択する場合、優先選択記憶手段506にはブロックプログラム識別情報(優先選択テーブル900)が一時記憶されていることから(図6:S102YES)、当該選択手段502が、一時記憶されたブロックプログラム識別情報902を優先選択記憶手段506から最優先で選択することになる(図6:S104)。   As a result, when the selection unit 502 selects specific block program identification information in the program identification information of the altered program in S102, the block program identification information (priority selection table 900) is stored in the priority selection storage unit 506. Since it is temporarily stored (FIG. 6: S102 YES), the selection unit 502 selects the temporarily stored block program identification information 902 from the priority selection storage unit 506 (FIG. 6: S104). .

そのため、例えば、一度、プログラムの改ざんが検知された場合(図6:107NO)、ユーザにより再起動、再電源等のリセットがされて、制御手段501が、再度、改ざん後のプログラムを起動しても(図6:S101)、選択手段502が、改ざんが検知されたブロックプログラムのブロックプログラム識別情報902を確実に選択し(図6:S102YES→S104)、前記検知手段510が、当該プログラムの改ざんを検知することになる(図6:107NO)。その結果、改ざん後のプログラムの実行を確実に停止することが可能となる。   Therefore, for example, once a program alteration is detected (FIG. 6: 107 NO), the user restarts, resets the power, etc., and the control means 501 starts the altered program again. (FIG. 6: S101), the selection unit 502 reliably selects the block program identification information 902 of the block program in which tampering is detected (FIG. 6: S102 YES → S104), and the detection unit 510 tampers with the program. Is detected (FIG. 6: 107 NO). As a result, it is possible to reliably stop execution of the program after the alteration.

さて、S111において、次に、機能停止手段513は、制御手段501に、複合機100の動作を停止させる旨と、表示受付手段504にエラー画面を表示させる旨とを通知する。当該通知を受けた制御手段501は、電源(主電源)から画像処理に関する駆動部への通電を停止するとともに(図6:S112)、表示受付手段504は、タッチパネルにエラー画面を表示する(図6:S113)。   In S111, the function stop unit 513 next notifies the control unit 501 that the operation of the multifunction peripheral 100 is stopped and the display reception unit 504 displays an error screen. Upon receiving the notification, the control unit 501 stops energization from the power source (main power source) to the drive unit related to image processing (FIG. 6: S112), and the display receiving unit 504 displays an error screen on the touch panel (FIG. 6). 6: S113).

図9(B)は、本発明の実施形態に係るエラー画面の一例を示す図である。   FIG. 9B is a diagram showing an example of an error screen according to the embodiment of the present invention.

エラー画面903には、図9(B)に示すように、プログラムが改ざんされた旨のメッセージ904と、複合機100の全ての機能が停止した旨のメッセージ905と、ユーザにサービスマンを呼ぶことを促す旨のメッセージ906と、サービスマンの連絡先907と、改ざんされたプログラムの名称908とが表示される。これにより、ユーザに、プログラムの改ざんが発生したことを知らしめて、サービスマンへの連絡を促すことが可能となる。   In the error screen 903, as shown in FIG. 9B, a message 904 indicating that the program has been tampered with, a message 905 indicating that all the functions of the multifunction peripheral 100 have been stopped, and calling a serviceman to the user. A message 906 for prompting the user, a contact information 907 of the service person, and the name 908 of the altered program are displayed. As a result, it is possible to notify the user that the program has been tampered with and to contact the service person.

又、機能停止手段513は、不一致であった対応ハッシュ値のブロックプログラム識別情報(「A010」)に対応するブロックプログラムをプログラム記憶手段503から取得し、改ざん解析記憶手段514に記憶させる(図6:S114)。改ざん解析記憶手段514は、特定のユーザ、例えば、管理者、サービスマン等がアクセス可能となるように構成されており、更に、改ざん検知部408及び複合機100から取り外し可能となるよう構成されている。これにより、特定のユーザが、改ざん解析記憶手段514の内容(データ)を解析することで、改ざんされたデータや改ざんを実行した改ざん実行者の改ざんの意図等を知ることが可能となる。   Further, the function stopping unit 513 acquires the block program corresponding to the block program identification information (“A010”) of the corresponding hash value that has been inconsistent from the program storage unit 503 and stores it in the falsification analysis storage unit 514 (FIG. 6). : S114). The falsification analysis storage unit 514 is configured to be accessible by a specific user, for example, an administrator, a service person, and the like, and is further configured to be removable from the falsification detection unit 408 and the multifunction peripheral 100. Yes. As a result, a specific user can analyze the contents (data) of the falsification analysis storage unit 514 to know the falsified data, the intention of falsification by the falsifier performing the falsification, and the like.

そして、機能停止手段513は、プログラム記憶手段503又は複合機100の所定のメモリから、改ざんされたプログラムへのアクセスログを取得する。又、機能停止手段513は、図示しない通信部からネットワークからの当該プログラムへのアクセスログ(通信ログ)を取得する。そして、機能停止手段513は、取得したアクセスログを前記改ざん解析記憶手段514に記憶させる(図6:S115)。これにより、特定のユーザが、改ざん解析記憶手段514の内容を解析することで、更に、改ざん前後のプログラムの変更経緯やアクセス者を知ることが可能となり、改ざん実行者の特定を促すことが可能となる。   Then, the function stop unit 513 acquires an access log to the altered program from the program storage unit 503 or a predetermined memory of the multifunction peripheral 100. The function stopping unit 513 acquires an access log (communication log) from the network (not shown) to the program from the network. Then, the function stop unit 513 stores the acquired access log in the falsification analysis storage unit 514 (FIG. 6: S115). Thus, by analyzing the contents of the alteration analysis storage unit 514, a specific user can further know the program change history and the accessor before and after the alteration, and can prompt the identification of the alteration executor. It becomes.

更に、機能停止手段513は、複合機100に搭載されたメモリのうち、ユーザ情報を記憶しているユーザ情報記憶手段515へのアクセスを禁止するとともに、通信部に、前記ネットワークへのアクセスを禁止させる(図6:S116)。これにより、例えば、改ざん後のプログラムがユーザ情報を流出するためのプログラムであり、制御手段501が、当該改ざん後のプログラムを実行することにより、ユーザ情報記憶手段515に記憶されたユーザ情報を、ネットワークを介して他の端末装置に流出するような事態を未然に防止することができる。その結果、安全性を十分に確保することが出来る。   Further, the function stopping unit 513 prohibits access to the user information storage unit 515 storing user information out of the memory mounted in the multi-function device 100 and prohibits the communication unit from accessing the network. (FIG. 6: S116). Thereby, for example, the program after the tampering is a program for leaking the user information, and the control unit 501 executes the program after the tampering so that the user information stored in the user information storage unit 515 is changed. It is possible to prevent a situation in which the data leaks to another terminal device via the network. As a result, sufficient safety can be ensured.

これにより、プログラムの改ざんが検知された場合の処理は完了する。   Thereby, the processing when the alteration of the program is detected is completed.

さて、改ざんされたプログラムが修復された場合は、以下のようになる。   Now, when a falsified program is repaired, it becomes as follows.

即ち、前記ユーザの知らせにより、サービスマン等の特定のユーザが、正規のプログラムを記憶する正規プログラム記憶手段(図示せず)を、複合機100のプログラム記憶手段503と接続し、表示受付手段504を介して制御手段501に、改ざん後のプログラムの修復を実行する旨のキーを入力する。当該キーの入力を受けた制御手段501は、当該プログラム記憶手段503に記憶された、改ざん後のプログラムを、正規のプログラムに書き換え(変更)する。   That is, according to the user's notification, a specific user such as a serviceman connects a regular program storage unit (not shown) for storing a regular program with the program storage unit 503 of the multi-function peripheral 100, and the display receiving unit 504. Then, a key for executing restoration of the altered program is input to the control means 501. Receiving the key input, the control unit 501 rewrites (changes) the altered program stored in the program storage unit 503 with a regular program.

書き換え完了後に、制御手段501が、表示受付手段504を介して改ざん後のプログラムの修復を完了した旨の画面を表示させると、特定のユーザが、当該画面に示された確認キー(例えば、OKキー)を入力する。当該キーの入力を受けた制御手段501は、その旨を機能停止手段513に通知する。当該通知を受けた機能停止手段513は、修復後のプログラムに対応するプログラム識別情報を制御手段501(又はプログラム記憶手段503)から取得し、優先選択記憶手段506を参照して、当該優先選択記憶手段506から修復後のプログラムに対応する前記優先選択テーブル900を消去する。   After the rewriting is completed, when the control unit 501 displays a screen indicating that the restoration of the altered program has been completed via the display receiving unit 504, a specific user can confirm the confirmation key (for example, OK) displayed on the screen. Key). Upon receiving the key input, the control unit 501 notifies the function stop unit 513 to that effect. Upon receiving the notification, the function stopping unit 513 acquires program identification information corresponding to the restored program from the control unit 501 (or the program storage unit 503), refers to the priority selection storage unit 506, and stores the priority selection storage. The priority selection table 900 corresponding to the restored program is deleted from the means 506.

これにより、次に、制御手段501が修復後のプログラムを起動した際に(図6:S101)、選択手段502が、ハッシュ値テーブルを参照して(図6:S102NO→S103)、最も低い順位のブロックプログラム識別情報(「A010」)から最も高い順位のブロックプログラム識別情報(「A001」)まで降順にブロックプログラム識別情報を一つずつ選択することとなり(図6:S104)、プログラムの改ざん検知が正常に再開されることになる。   As a result, when the control unit 501 starts the restored program (FIG. 6: S101), the selection unit 502 refers to the hash value table (FIG. 6: S102 NO → S103), and the lowest rank Block program identification information is selected one by one in descending order from the block program identification information (“A010”) to the highest order block program identification information (“A001”) (FIG. 6: S104), and the alteration of the program is detected. Will resume normally.

このように、本発明の実施形態では、前記プログラム全体を所定数のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報702と、当該ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値703とを関連付けて記憶するハッシュ値記憶手段507と、前記複合機100が前記プログラムを起動すると、当該プログラムの起動と並行して、前記ハッシュ値記憶手段507に記憶された特定のブロックプログラム識別情報702を選択する選択手段502と、選択された特定のブロックプログラム識別情報702に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出手段508と、前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、両者が一致しない場合に、前記プログラムが改ざんされたと検知する検知手段510とを備える。   Thus, in the embodiment of the present invention, the block program identification information 702 of the block program obtained by dividing the entire program into a predetermined number of blocks and the predetermined hash function are applied to the block program. A hash value storage unit 507 that associates and stores a comparison hash value 703 and a specific block stored in the hash value storage unit 507 in parallel with the activation of the program when the MFP 100 activates the program. Selection means 502 for selecting program identification information 702, hash value calculation means 508 for calculating a corresponding hash value by applying the hash function to a block program corresponding to the selected specific block program identification information 702, and the correspondence Hash value and the comparison hash value By compare, if they do not match, and a detecting means 510 for detecting said program is tampered.

これにより、複合機100の前記プログラムの起動と並行して、プログラムの改ざんの検知がなされる。そのため、前記プログラムの起動時間に、前記プログラムの改ざんの検知に要する時間、例えば、ハッシュ値の算出時間を削除することになり、当該プログラムの起動時間全体を大幅に短縮することが可能となる。又、プログラムの起動と並行してなされるプログラムの改ざん検知は、当該プログラム全体から対応ハッシュ値を算出するのではなく、プログラム全体の一部であるブロックプログラムから対応ハッシュ値を算出することでなされる。そのため、ハッシュ値の算出負担(演算負担)を軽減させ、算出速度(演算速度)、算出効率(演算効率)の向上を図り、前記ハッシュ値の算出時間の短縮化、プログラムの改ざん検知の応答速度の迅速化を図ることが可能となる。   Thereby, the alteration of the program is detected in parallel with the activation of the program of the multifunction peripheral 100. Therefore, the time required for detecting the alteration of the program, for example, the calculation time of the hash value, is deleted from the startup time of the program, and the entire startup time of the program can be greatly shortened. In addition, the alteration detection of the program that is performed in parallel with the start of the program is not calculated by calculating the corresponding hash value from the entire program but by calculating the corresponding hash value from the block program that is a part of the entire program. The Therefore, the calculation load (calculation load) of the hash value is reduced, the calculation speed (calculation speed) and the calculation efficiency (calculation efficiency) are improved, the calculation time of the hash value is shortened, and the response speed of detecting the alteration of the program It is possible to speed up the process.

尚、本発明の実施形態では、前記ハッシュ値記憶手段507は、ブロックプログラムに前記ハッシュ関数を適用して得られる比較ハッシュ値をそのまま記憶し、前記ハッシュ値算出手段508は、特定のブロックプログラム識別情報に対応するブロックプログラムにそのまま前記ハッシュ関数を適用して対応ハッシュ値を算出するよう構成したが、他の構成でも構わない。   In the embodiment of the present invention, the hash value storage means 507 stores the comparison hash value obtained by applying the hash function to a block program as it is, and the hash value calculation means 508 stores a specific block program identification. Although the hash function is directly applied to the block program corresponding to the information to calculate the corresponding hash value, other configurations may be used.

例えば、前記ハッシュ値記憶手段507は、前記ブロックプログラムに所定の付加情報(例えば、複合機100又は改ざん検知部408に特有な付加情報)を付加した後のプログラムに、前記ハッシュ関数を適用して得られるハッシュ値を比較ハッシュ値として記憶し、前記ハッシュ値算出手段508は、対応ハッシュ値を算出する際に、ブロックプログラムに前記付加情報を付加した後のプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するよう構成しても構わない。   For example, the hash value storage unit 507 applies the hash function to a program after adding predetermined additional information (for example, additional information unique to the MFP 100 or the falsification detection unit 408) to the block program. The obtained hash value is stored as a comparison hash value, and the hash value calculation means 508 applies the hash function to the program after adding the additional information to the block program when calculating the corresponding hash value. You may comprise so that a hash value may be calculated.

ここで、ブロックプログラムに前記付加情報を付加する場合、当該ブロックプログラムの先頭に付加してもよいし(先頭に付加する付加情報をプレフィックスと称する場合がある)、当該ブロックプログラムの後尾に付加しても構わない(後尾に付加する付加情報をサフィックスと称する場合がある)。当該構成により、仮に、改ざん実行者に前記ハッシュ関数を取得されたとしても、前記付加情報の存在により、当該改ざん実行者は、前記プログラムと前記ハッシュ関数とに基づいて比較ハッシュ値、対応ハッシュ値を再現することが出来ないため、安全性を更に向上させることが可能となる。   Here, when adding the additional information to the block program, the additional information may be added to the head of the block program (the additional information added to the head may be referred to as a prefix) or added to the tail of the block program. (Additional information added to the tail may be referred to as a suffix). Even if the hash function is acquired by the falsification executor by the configuration, the falsification executor can compare the hash value and the corresponding hash value based on the program and the hash function due to the presence of the additional information. Therefore, it is possible to further improve safety.

又、前記付加情報は、改ざん検知部408の外部から変更も読み取りも出来ないようなメモリに記憶させることが好ましい。当該メモリとして、例えば、メモリを取り外し、分解すると当該メモリに記憶された情報が失われる耐タンパ性を有するメモリ(集積回路)等を採用することが出来る。   The additional information is preferably stored in a memory that cannot be changed or read from outside the tampering detection unit 408. As the memory, for example, a tamper-resistant memory (integrated circuit) or the like in which information stored in the memory is lost when the memory is removed and disassembled can be employed.

又、本発明の実施形態では、選択手段502が、特定のブロックプログラム識別情報を一つ選択するよう構成したが、複数選択する場合は、ハッシュ値算出手段508が、選択された特定のブロックプログラム識別情報毎に、対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出し、検知手段510が、選択された特定のブロックプログラム識別情報毎に、前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、改ざんの有無を判定することは、言うまでも無い。   In the embodiment of the present invention, the selection unit 502 is configured to select one specific block program identification information. However, when a plurality of selections are made, the hash value calculation unit 508 selects the specific block program selected. For each piece of identification information, the hash function is applied to the corresponding block program to calculate a corresponding hash value, and the detection unit 510 calculates the corresponding hash value and the comparison hash value for each selected specific block program identification information. It goes without saying that the presence / absence of tampering is determined by comparing.

又、本発明の実施形態では、選択手段502が、最も低い順位のブロックプログラム識別情報(「A010」)から最も高い順位のブロックプログラム識別情報(「A001」)まで降順にブロックプログラム識別情報を一つずつ選択するよう構成したが、他の構成でも構わない。即ち、選択手段502が、所定のブロックプログラム識別情報から、無作為に特定のブロックプログラム識別情報を順次選択しても、予め設定された所定の順番(昇順等)で特定のブロックプログラム識別情報を順次選択しても構わない。   In the embodiment of the present invention, the selection unit 502 sets the block program identification information in descending order from the lowest block program identification information (“A010”) to the highest block program identification information (“A001”). Although selected to be selected one by one, other configurations may be used. That is, even if the selection means 502 sequentially selects specific block program identification information randomly from the predetermined block program identification information, the specific block program identification information is set in a predetermined order (such as ascending order). You may select sequentially.

又、本発明の実施形態では、機能停止手段513が、前記検知手段510により前記プログラムの改ざんが検知された場合に、前記複合機100の動作を停止させるとともにタッチパネルにエラー画面を表示させる処理、不一致の比較ハッシュ値に対応するブロックプログラムを改ざん解析記憶手段514に記憶させる処理、前記プログラムへのアクセスログ又はネットワークから前記プログラムへの通信ログを改ざん解析記憶手段514に記憶させる処理、前記複合機100の所定のメモリのうち、ユーザ情報を記憶しているユーザ情報記憶手段515へのアクセス、又はネットワークへのアクセスを禁止させる処理の全てを実行するように構成したが、他の構成でも構わない。   In the embodiment of the present invention, the function stop unit 513 stops the operation of the multifunction peripheral 100 and displays an error screen on the touch panel when the detection unit 510 detects the alteration of the program. Processing for storing the block program corresponding to the comparison hash value of the mismatch in the alteration analysis storage means 514, processing for storing the access log to the program or the communication log from the network to the program in the alteration analysis storage means 514, the multifunction device Of the 100 predetermined memories, it is configured to execute all of the processing for prohibiting access to the user information storage means 515 storing user information or access to the network, but other configurations may be used. .

即ち、機能停止手段513が、上述した複数の処理のうち、少なくともいずれかの処理を実行するよう構成しても構わない。又、機能停止手段513が、改ざんが検知されたプログラムの種類、目的、用途に応じて、上述した複数の処理のうち、特定の処理を実行するよう構成しても構わない。例えば、前記プログラムが、ネットワーク(電話回線)を介して画像データを送信するプログラム(例えば、「ファクシミリ機能プログラム」)である場合、前記機能停止手段513が、当該ネットワークに関連する処理を実行するよう構成しても良いし、前記プログラムが、ユーザ情報に基づいてユーザの宛先を表示するプログラム(例えば、「アドレス帳機能プログラム」)である場合、前記機能停止手段513が、当該ユーザ情報に関連する処理を実行するよう構成しても良い。   That is, the function stopping unit 513 may be configured to execute at least one of the above-described plurality of processes. Further, the function stop unit 513 may be configured to execute a specific process among the above-described plurality of processes in accordance with the type, purpose, and application of the program in which tampering is detected. For example, when the program is a program that transmits image data via a network (telephone line) (for example, a “facsimile function program”), the function stopping unit 513 performs processing related to the network. If the program is a program that displays a user's destination based on user information (for example, “address book function program”), the function stop unit 513 is related to the user information. You may comprise so that a process may be performed.

又、本発明の実施形態では、複合機100に搭載された改ざん検知部408(改ざん検知装置)が各手段を備えるよう構成したが、当該各手段を実現するプログラムを記憶媒体に記憶させ、当該記憶媒体を提供するよう構成しても構わない。当該構成では、上記プログラムを改ざん検知装置に読み出させ、当該改ざん検知装置が上記各手段を実現する。その場合、上記記録媒体から読み出されたプログラム自体が本発明の作用効果を奏する。さらに、各手段が実行するステップを改ざん検知方法として提供することも可能である。又、プログラムは、CD−ROMなどのコンピュータ読み取り可能な記録媒体に記録された状態で流通させることも可能である。   In the embodiment of the present invention, the tampering detection unit 408 (tampering detection device) mounted on the multifunction peripheral 100 is configured to include each unit. However, a program that realizes each unit is stored in a storage medium, and A storage medium may be provided. In this configuration, the falsification detection device is made to read the program, and the falsification detection device implements the above-described means. In that case, the program itself read from the recording medium exhibits the effects of the present invention. Furthermore, it is possible to provide the steps executed by each means as a falsification detection method. The program can be distributed in a state where it is recorded on a computer-readable recording medium such as a CD-ROM.

以上のように、本発明に係る改ざん検知装置及び改ざん検知方法は、複合機はもちろん、複写機、プリンタ等の電子機器に有用であり、プログラムの起動に要する時間を短縮することが可能な改ざん検知装置及び改ざん検知方法として有効である。   As described above, the falsification detection apparatus and the falsification detection method according to the present invention are useful not only for multifunction devices but also for electronic devices such as copiers and printers, and for falsification that can reduce the time required to start a program. It is effective as a detection device and a falsification detection method.

100 複合機
408 改ざん検知部
501 制御手段
502 選択手段
503 プログラム記憶手段
504 表示受付手段
505 画像形成手段
506 優先選択記憶手段
507 ハッシュ値記憶手段
508 ハッシュ値算出手段
509 ハッシュ値関数記憶手段
510 検知手段
511 タイマー
512 設定時間記憶手段
513 機能停止手段
514 改ざん解析記憶手段
515 ユーザ情報記憶手段
100 MFP 408 Tampering Detection Unit 501 Control Unit 502 Selection Unit 503 Program Storage Unit 504 Display Reception Unit 505 Image Forming Unit 506 Priority Selection Storage Unit 507 Hash Value Storage Unit 508 Hash Value Calculation Unit 509 Hash Value Function Storage Unit 510 Detection Unit 511 Timer 512 Set time storage means 513 Function stop means 514 Tamper analysis storage means 515 User information storage means

Claims (8)

装置のプログラムが改ざんされたか否かを検知する改ざん検知装置において、
前記プログラム全体を所定数のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報と、前記ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値とを関連付けて記憶するハッシュ値記憶手段と、
前記装置が前記プログラムを起動すると、当該プログラムの起動と並行して、前記ハッシュ値記憶手段に記憶された特定のブロックプログラム識別情報を選択する選択手段と、
選択された特定のブロックプログラム識別情報に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出手段と、
前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、改ざんの有無を判定する検知手段と
を備えることを特徴とする改ざん検知装置。
In the falsification detection device that detects whether or not the program of the device has been falsified,
Hash value storage for storing block program identification information of a block program obtained by dividing the entire program into a predetermined number of blocks and a comparison hash value obtained by applying a predetermined hash function to the block program in association with each other Means,
When the apparatus activates the program, a selection unit that selects specific block program identification information stored in the hash value storage unit in parallel with the activation of the program,
Hash value calculating means for calculating a corresponding hash value by applying the hash function to a block program corresponding to the selected specific block program identification information;
A tamper detection apparatus comprising: a detection unit that determines whether or not tampering has occurred by comparing the corresponding hash value and the comparison hash value.
前記選択手段は、前記装置が前記プログラムを起動すると、当該プログラムの実行中に、前記ハッシュ値記憶手段に記憶された全てのブロックプログラム識別情報を選択するまで、予め設定された所定の設定時間毎に、既に選択したブロックプログラム識別情報と異なるブロックプログラム識別情報の選択を継続する
請求項1に記載の改ざん検知装置。
When the apparatus starts up the program, the selection unit selects every block program identification information stored in the hash value storage unit during execution of the program every predetermined set time. The tampering detection apparatus according to claim 1, wherein selection of block program identification information different from the already selected block program identification information is continued.
前記選択手段は、特定のブロックプログラム識別情報を選択する場合に、プログラム全体のうち、半分から後尾までのデータを含むブロックプログラムのブロックプログラム識別情報を他のブロックプログラム識別情報よりも優先して選択する
請求項1又は2に記載の改ざん検知装置。
When the selection means selects specific block program identification information, the block program identification information of a block program including data from half to the tail of the entire program is selected with priority over other block program identification information. The falsification detection device according to claim 1 or 2.
更に、前記検知手段により前記プログラムの改ざんが検知された場合に、不一致の比較ハッシュ値に対応するブロックプログラム識別情報を優先選択記憶手段に一時記憶させ、改ざんされたプログラムが修復されると、一時記憶されたブロックプログラム識別情報を前記優先選択記憶手段から消去する機能停止手段を備え、
前記選択手段は、前記優先選択記憶手段に前記ブロックプログラム識別情報が一時記憶されている場合に、当該ブロックプログラム識別情報を優先して選択する
請求項1−3のいずれか一項に記載の改ざん検知装置。
Further, when the detection unit detects the alteration of the program, the block program identification information corresponding to the mismatch hash value is temporarily stored in the priority selection storage unit, and when the altered program is restored, A function stop means for erasing the stored block program identification information from the priority selection storage means,
The falsification according to any one of claims 1 to 3, wherein the selection unit preferentially selects the block program identification information when the block program identification information is temporarily stored in the priority selection storage unit. Detection device.
前記機能停止手段は、前記装置の動作を停止させるとともに当該装置に備えられた操作部にエラー画面を表示させる処理、不一致の比較ハッシュ値に対応するブロックプログラム識別情報のブロックプログラムを改ざん解析記憶手段に記憶させる処理、前記プログラムへのアクセスログ又はネットワークから前記プログラムへの通信ログを前記改ざん解析記憶手段に記憶させる処理、ユーザ情報を記憶しているユーザ情報記憶手段へのアクセス又はネットワークへのアクセスを禁止させる処理のうち、少なくともいずれかの処理を実行する
請求項4に記載の改ざん検知装置。
The function stop means is a process for stopping the operation of the apparatus and displaying an error screen on an operation unit provided in the apparatus, and a falsification analysis storage means for a block program of block program identification information corresponding to a mismatch hash value that does not match Processing to store data, access log to the program or communication log from the network to the program in the falsification analysis storage means, access to user information storage means storing user information or access to network The tampering detection apparatus according to claim 4, wherein at least one of the processes for prohibiting is executed.
前記ハッシュ値記憶手段は、前記ブロックプログラムに所定の付加情報を付加した後のプログラムに、前記ハッシュ関数を適用して得られるハッシュ値を比較ハッシュ値として記憶し、
前記ハッシュ値算出手段は、前記ブロックプログラムに前記付加情報を付加した後のプログラムに、前記ハッシュ関数を適用して対応ハッシュ値を算出する
請求項1−5のいずれか一項に記載の改ざん検知装置。
The hash value storage means stores, as a comparison hash value, a hash value obtained by applying the hash function to a program after adding predetermined additional information to the block program,
The falsification detection according to any one of claims 1 to 5, wherein the hash value calculation unit calculates a corresponding hash value by applying the hash function to a program after the additional information is added to the block program. apparatus.
請求項1−6に記載の改ざん検知装置を備えた画像形成装置。   An image forming apparatus comprising the falsification detection device according to claim 1. 装置のプログラムが改ざんされたか否かを検知する改ざん検知方法において、
前記装置が前記プログラムを起動すると、当該プログラムの起動と並行して、前記プログラム全体を所定数のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報と、前記ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値とを関連付けて記憶するハッシュ値記憶手段を参照する参照ステップと、
前記ハッシュ値記憶手段に記憶された特定のブロックプログラム識別情報を選択する選択ステップと、
選択された特定のブロックプログラム識別情報に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出ステップと、
前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、前記プログラムの改ざんの有無を判定する検知ステップと
を含むことを特徴とする改ざん検知方法。
In the falsification detection method for detecting whether or not the device program has been falsified,
When the apparatus starts the program, in parallel with the start of the program, block program identification information of a block program obtained by dividing the entire program into a predetermined number of blocks, and a predetermined hash function for the block program A reference step for referring to hash value storage means for storing the hash value in association with the comparison hash value obtained by applying
A selection step of selecting specific block program identification information stored in the hash value storage means;
A hash value calculating step of calculating a corresponding hash value by applying the hash function to a block program corresponding to the selected specific block program identification information;
And a detection step of determining whether the program has been altered by comparing the corresponding hash value with the comparison hash value.
JP2010221783A 2010-09-30 2010-09-30 Falsification detection device and falsification detection method Pending JP2012078953A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010221783A JP2012078953A (en) 2010-09-30 2010-09-30 Falsification detection device and falsification detection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010221783A JP2012078953A (en) 2010-09-30 2010-09-30 Falsification detection device and falsification detection method

Publications (1)

Publication Number Publication Date
JP2012078953A true JP2012078953A (en) 2012-04-19

Family

ID=46239162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010221783A Pending JP2012078953A (en) 2010-09-30 2010-09-30 Falsification detection device and falsification detection method

Country Status (1)

Country Link
JP (1) JP2012078953A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101494431B1 (en) 2012-07-13 2015-02-23 네이버비즈니스플랫폼 주식회사 System, device, method and computer readable recording medium for detecting manipulation of a mobile application file
WO2019151013A1 (en) * 2018-02-02 2019-08-08 日本電気株式会社 Information processing device, information processing method, and recording medium
JP2019191698A (en) * 2018-04-19 2019-10-31 キヤノン株式会社 Information processing apparatus, control method, and program thereof
JP2020010228A (en) * 2018-07-10 2020-01-16 キヤノン株式会社 Image processing system, control method thereof, and program
JPWO2021059478A1 (en) * 2019-09-27 2021-04-01
US11392722B2 (en) 2017-07-13 2022-07-19 Denso Corporation Electronic control device, program falsification detection method, and computer readable non- transitory tangible storage medium

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101494431B1 (en) 2012-07-13 2015-02-23 네이버비즈니스플랫폼 주식회사 System, device, method and computer readable recording medium for detecting manipulation of a mobile application file
US11392722B2 (en) 2017-07-13 2022-07-19 Denso Corporation Electronic control device, program falsification detection method, and computer readable non- transitory tangible storage medium
WO2019151013A1 (en) * 2018-02-02 2019-08-08 日本電気株式会社 Information processing device, information processing method, and recording medium
US11449617B2 (en) 2018-02-02 2022-09-20 Nec Corporation Information processing device, information processing method, and storage medium
JP2019191698A (en) * 2018-04-19 2019-10-31 キヤノン株式会社 Information processing apparatus, control method, and program thereof
JP7179482B2 (en) 2018-04-19 2022-11-29 キヤノン株式会社 Information processing device, control method, and its program
JP2020010228A (en) * 2018-07-10 2020-01-16 キヤノン株式会社 Image processing system, control method thereof, and program
JP7105640B2 (en) 2018-07-10 2022-07-25 キヤノン株式会社 IMAGE PROCESSING DEVICE, CONTROL METHOD THEREOF, AND PROGRAM
US11523025B2 (en) 2018-07-10 2022-12-06 Canon Kabushiki Kaisha Image processing apparatus that displays a message indicating that alteration of a login application has been detected, control method thereof, and storage medium
JPWO2021059478A1 (en) * 2019-09-27 2021-04-01
WO2021059478A1 (en) * 2019-09-27 2021-04-01 日本電気株式会社 Information processing device, information processing method, and non-transitory computer-readable medium having program recorded thereon
JP7283552B2 (en) 2019-09-27 2023-05-30 日本電気株式会社 Information processing device, information processing method, and program

Similar Documents

Publication Publication Date Title
US8332933B2 (en) Processing apparatus with touch panel
JP5885645B2 (en) Information processing apparatus and authentication method
US9224011B2 (en) Embedded system, information processing unit, and image forming apparatus
JP2012078953A (en) Falsification detection device and falsification detection method
CN102291508A (en) Image processing apparatus and management apparatus
JP2012078952A (en) Falsification detection device and falsification detection method
US20180032020A1 (en) Image forming apparatus
CN112114842A (en) Information processing apparatus, control method thereof, and storage medium
JP2006279924A (en) Image forming method and image forming apparatus
JP2015125722A (en) Data migration system and data migration method
JP5558252B2 (en) Information display device and information display method
US20250013722A1 (en) Electronic device that manages application accessible by user, information processing system including electronic device, authentication application program, and normal application program
US20250060974A1 (en) Information processing apparatus, information processing method, and storage medium
JP6489314B2 (en) Image forming apparatus
US8867078B2 (en) Operation device and operation method
JP2014090361A (en) Operation device, image forming apparatus and operation method
JP2015125723A (en) Data migration system and data migration method
JP2012141814A (en) Installation notification device and installation notification method
JP7247685B2 (en) Maintenance system and image forming device
JP5599109B2 (en) Image forming apparatus and image forming method
JP5863701B2 (en) Image forming apparatus and log recording method in image forming apparatus
JP2004297680A (en) Image processing apparatus
JP7215016B2 (en) Image processing device, image processing system, and image processing program
US20150220444A1 (en) Data storage apparatus and data storage method
JP6376111B2 (en) Information processing apparatus and information processing method