JP2020082441A - Image formation device, control method and program of the same - Google Patents
Image formation device, control method and program of the same Download PDFInfo
- Publication number
- JP2020082441A JP2020082441A JP2018217519A JP2018217519A JP2020082441A JP 2020082441 A JP2020082441 A JP 2020082441A JP 2018217519 A JP2018217519 A JP 2018217519A JP 2018217519 A JP2018217519 A JP 2018217519A JP 2020082441 A JP2020082441 A JP 2020082441A
- Authority
- JP
- Japan
- Prior art keywords
- module
- program
- kernel
- information processing
- tampering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明は、画像形成装置、その制御方法、及びプログラムに関する。 The present invention relates to an image forming apparatus, a control method thereof, and a program.
ソフトウェアの脆弱性をついて、ソフトウェアを改ざんし、コンピュータを悪用する攻撃が問題となっている。そういった攻撃対策として、特許文献1には、耐タンパーモジュールを用いてプログラムのハッシュ値を計算、保存しておき、起動するたびにプログラムのハッシュ値を再計算して検証を行うことで改ざん検知を行う方法が提案されている。また、特別なハードウェアを必要とする耐タンパーモジュールを使用せず、起動時に順次プログラムを起動していく際に、次のプログラムの正解値を保持しておき正解値が一致することで各プログラムの改ざん検知を行う方法も考えられる。いずれにしても、起動中にプログラムの改ざんが検知されるとその装置は改ざん状態が解消されるまで使用不可能な状態になる。 Attacks that exploit software by tampering with software due to vulnerability of software have become a problem. As a countermeasure against such an attack, in Patent Document 1, the tamper resistance module is used to calculate and store the hash value of the program, and the hash value of the program is recalculated and verified each time the program is booted to detect tampering. Suggested ways to do it. Also, without using a tamper resistant module that requires special hardware, when the programs are started sequentially at startup, the correct answer value of the next program is held and the correct answer values match so that each program A method of detecting falsification is also considered. In any case, if program tampering is detected during startup, the device becomes unusable until the tampered state is resolved.
また、デジタル複合機のようなサービスマンによるメンテナンス契約が行われる装置の場合は、装置が使用不可能な状態に陥るとサービスマンが出動して問題を解消し、装置を復旧させる必要がある。問題が生じるたびにサービスマンが出動していると、ユーザの利便性が損なわれ、サービスマンの出動コストもかかる。そのため、近年デジタル複合機では、メーカで把握している不具合の修正や、機能追加のためのソフトウェアの更新を目的とした、ネットワーク越しの外部サーバからの定期的な自動アップデートを行う仕組みを導入している。サービスマンがいない状態でデジタル複合機のアップデートを自動的に行う場合、アップデート処理に不具合があったとしてもできるだけ確実にリカバリを行い、装置の動作を保証しながら所望のアップデートを行う必要がある。例えば、特許文献2には、アップデート処理自体に不具合があった場合にリカバリ処理を実行することによって、所望のアップデートを行う方法が提案されている。 Further, in the case of a device such as a digital multi-function peripheral to which a maintenance contract is made by a service person, when the device falls into an unusable state, the service person must be dispatched to solve the problem and restore the device. If the service person is dispatched every time a problem occurs, the convenience of the user is impaired and the cost of dispatching the service person is also increased. Therefore, in recent years, digital multi-function peripherals have been introduced with a mechanism to perform periodic automatic updates from an external server over the network for the purpose of correcting defects that are known to the manufacturer and updating software for adding functions. ing. When the digital multi-function peripheral is automatically updated without a serviceman, it is necessary to perform recovery as reliably as possible even if there is a problem in the update process, and perform the desired update while guaranteeing the operation of the device. For example, Patent Document 2 proposes a method of performing a desired update by executing a recovery process when there is a problem in the update process itself.
しかしながら、上記従来技術には以下に記載する課題がある。上記従来技術のリカバリ処理は、アップデート処理によるソフトウェアのダウンロード処理や、書き込み処理やアップデート用プログラム自体のリカバリであり、メーカが想定していない装置内の各プログラムの改ざんの復旧には対応できない。そのため、現状メンテナンス契約をしているデジタル複合機でソフトウェアの改ざんが検知されると、エラーコードが表示されるのみでユーザはサービスマンの出動を要請し復旧を依頼する以外に復旧させる方法がない。 However, the above-mentioned conventional techniques have the following problems. The above-mentioned recovery process of the prior art is a software download process by an update process, a write process, and a recovery of the update program itself, and cannot cope with tampering recovery of each program in the device which is not assumed by the manufacturer. Therefore, if software tampering is detected on a digital multifunction device that has a current maintenance contract, an error code is only displayed, and there is no other way to recover it than the user requesting the service person to be dispatched and requesting recovery. ..
本発明は、上述の問題の少なくとも一つに鑑みて成されたものであり、情報処理装置の起動中にソフトウェアの改ざんが検知された場合に、改ざん状態から自動復旧する仕組みを提供することを目的とする。 The present invention has been made in view of at least one of the above problems, and provides a mechanism for automatically recovering from a tampered state when tampering of software is detected during activation of an information processing device. To aim.
本発明は、例えば、ブートプログラムの起動に続いて複数のモジュールを順次起動する情報処理装置であって、前記複数のモジュールのうち、次に起動するモジュールの署名を検証する検証情報を用いて、該次に起動するモジュールの改ざんを検知する検知手段と、前記検知手段による署名の検証が成功すると、前記次に起動するモジュールを起動する起動手段と、前記検知手段によって所定のモジュールの改ざんが検知されると、改ざんされたモジュールを更新して自動復旧を行い、前記検知手段によって前記所定のモジュール以外のモジュールの改ざんが検知されると、対応するエラーコードを操作部に表示する制御手段とを備えることを特徴とする。 The present invention is, for example, an information processing device that sequentially activates a plurality of modules following activation of a boot program, and uses verification information for verifying a signature of a module to be activated next among the plurality of modules, Detecting means for detecting tampering with the module to be activated next, activating means for activating the module to be activated next when the signature verification by the detecting means is successful, and tampering with a predetermined module by the detecting means Then, the tampered module is updated and automatically restored, and when tampering with a module other than the predetermined module is detected by the detection means, a control means for displaying a corresponding error code on the operation unit is provided. It is characterized by being provided.
本発明によれば、情報処理装置の起動中にソフトウェアの改ざんが検知された場合に、改ざん状態から自動復旧することができる。 According to the present invention, when tampering with software is detected during activation of the information processing apparatus, it is possible to automatically recover from the tampered state.
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。なお、実施形態に係る情報処理装置として複合機(デジタル複合機/MFP/Multi Function Peripheral)を例に説明する。しかしながら本発明の主旨を逸脱しない範囲で、レーザプリンタやFAXなどの電子写真方式の画像形成装置に適用することが可能である。 An embodiment of the present invention will be shown below. The individual embodiments described below will be helpful in understanding various concepts such as superordinate, intermediate, and subordinate concepts of the present invention. Further, the technical scope of the present invention is established by the claims, and is not limited by the following individual embodiments. A multifunction peripheral (digital multifunction peripheral/MFP/Multi Function Peripheral) will be described as an example of the information processing apparatus according to the embodiment. However, the present invention can be applied to an electrophotographic image forming apparatus such as a laser printer or a FAX without departing from the scope of the present invention.
<第1の実施形態>
<情報処理装置のハードウェア構成>
以下では、添付図面を参照して、本発明の第1の実施形態について説明する。まず、図1を参照して、本実施形態に係る情報処理装置100のハードウェア構成を説明する。
<First Embodiment>
<Hardware configuration of information processing device>
The first embodiment of the present invention will be described below with reference to the accompanying drawings. First, the hardware configuration of the
情報処理装置100は、制御部200、操作部220、プリンタエンジン221、及びスキャナエンジン222を備える。また、外部電源240が接続され、各部に電源供給が行われる。制御部200は、CPU210、ROM291、チップセット211、RAM212、SRAM213、LED290、及びNIC214を備える。さらに、制御部200は、操作部I/F215、プリンタI/F216、スキャナI/F217、HDD218、フラッシュROM219、及び埋め込みコントローラ280を備える。埋め込みコントローラ280は、CPU281及びRAM282を備える。チップセット211はRTC270を備える。また、プリンタエンジン221はプリンタエンジンファーム231を備える。スキャナエンジン222は、スキャナエンジンファーム232を備える。
The
制御部200は、情報処理装置100全体の動作を統括的に制御する。CPU210は、フラッシュROM219に記憶された制御プログラムを読み出して読取制御や印刷制御、ファームアップデート制御などの各種制御処理を実行する。また、フラッシュROM219は、ファームアップデート用のファイル格納領域、ワークエリアや、ユーザデータ領域としても用いられる。ROM291はリードオンリーメモリであり、情報処理装置100のBIOS(Basic Input/Output System)、固定パラメータ等を格納している。RAM212は、CPU210の主メモリ、ワークエリア等の一時記憶領域として用いられる。SRAM213は不揮発メモリであり、情報処理装置100で必要となる設定値や画像調整値などを記憶しており、電源を再投入してもデータが消えないようになっている。HDD218は、画像データやユーザデータ等を記憶する。
The
操作部I/F215は、操作部220と制御部200とを接続する。操作部220には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。プリンタI/F216は、プリンタエンジン221と制御部200とを接続する。プリンタエンジン221内に含む不図示のROMにはプリンタエンジンファーム231が格納されている。プリンタエンジン221で印刷すべき画像データはプリンタI/F216を介して制御部200からプリンタエンジン221に転送され、プリンタエンジン221において記録媒体上に印刷される。スキャナI/F217は、スキャナエンジン222と制御部200とを接続する。スキャナエンジン222内に含まれる不図示のROMにはスキャナエンジンファーム232が格納されている。スキャナエンジン222は、原稿上の画像を読み取って画像データを生成し、スキャナI/F217を介して制御部200に入力する。
The operation unit I/F 215 connects the
ネットワークI/Fカード(NIC)214は、制御部200(情報処理装置100)をLAN110に接続する。NIC214は、LAN110上の外部装置(例えば、外部サーバ250やPC260)に画像データや情報を送信したり、逆にアップデートファームや各種情報を受信したりする。外部サーバ250はインターネット上に存在するケースもある。PC260上に存在する不図示のWebブラウザから情報処理装置100の操作を行うこともある。
The network I/F card (NIC) 214 connects the control unit 200 (information processing device 100) to the
チップセット211はある一連の関連のある複数の集積回路を示す。RTC270はRealTimeClock(リアルタイムクロック)であり、計時専用のチップである。RTC270は、外部電源240が接続されていなくとも、不図示の内蔵電池から電源供給を受けるため、スリープ時も動作することができる。これにより、チップセット211に対して一部の電源供給が行われる状態では、スリープからの復帰が可能である。逆に、チップセット211に電源供給がまったく行われないシャットダウン状態の場合には、RTC270は動作することができない。
CPU281は埋め込みコントローラ280のソフトウェアプログラムを実行し、情報処理装置100の中で一部の制御を行う。RAM282はランダムアクセスメモリであり、CPU281が情報処理装置100を制御する際に、プログラムや一時的なデータの格納などに使用される。LED290は必要に応じて点灯し、ソフトウェアやハードウェアの異常を外部に伝えるために利用される。
The
<情報処理装置のソフトウェア構成>
次に、図2を参照して、本実施形態に係る情報処理装置100が有するソフトウェアモジュールの構成を説明する。
<Software configuration of information processing device>
Next, the configuration of the software module included in the
通信管理部301は、ネットワーク110に接続されるNIC214を制御して、ネットワーク110を介して外部とデータの送受信を行う。UI制御部302は、操作部I/F215を介して操作部220への入力を受け取り、入力に応じた処理や画面出力を行う。
The
ブートプログラム303は情報処理装置100に電源が投入されると埋め込みコントローラ280のCPU281で実行されるプログラムであり、起動に関わる処理を実行するほかにBIOS305の改ざん検知を行うBIOS改ざん検知処理部304を有する。BIOS305はブートプログラム303の実行後にCPU210で実行されるプログラムであり、起動に関わる処理を実行するほかにローダ307の改ざん検知を行うローダ改ざん検知処理部306を有する。ローダ307はBIOS305の処理が終わった後にCPU210で実行されるプログラムであり、起動に関わる処理を実行するほかにカーネルの改ざん検知を行うカーネル改ざん検知処理部308を有する。
The
309と310はフラッシュROM219内に構成されるパーティションを示す。309は通常起動用ファームであるstdファーム311を含むstdパーティション(第1パーティション)であり、310はアップデート起動用ファームであるsafeファーム312を含むsafeパーティション(第2パーティション)である。stdファーム311は、カーネル313と通常起動用プログラム(第1プログラムモジュール)315とで構成される。カーネル313はローダ307の処理が終わった後にCPU210で実行されるプログラムであり、起動に関わる処理を実行するほかに通常起動用プログラム315の改ざん検知を行うプログラム改ざん検知処理部314を有する。
通常起動用プログラム315はCPU210で実行されるプログラム(第1プログラム)であり、情報処理装置100で各機能を提供する複数のプログラムからなる。例えばスキャナI/F217やプリンタI/F216を制御するプログラムや起動プログラムなどである。カーネル313によって通常起動用プログラムの中から起動プログラムが呼び出され起動処理を実行する。また、通常起動用プログラム315には、safeファームアップデート用プログラム316を含む。safeファームアップデート用プログラム316は、safeファーム312をアップデートする機能を備える。
The normal activation program 315 is a program (first program) executed by the
safeファーム312は、カーネルB317とstdファームアップデート用プログラム(第2プログラムモジュール)319とで構成される。カーネルB317はローダ307の処理が終わった後にCPU210で実行されるプログラムであり、起動に関わる処理を実行するほかにstdファームアップデート用プログラム319の改ざん検知を行うプログラム改ざん検知処理部B318を有する。stdファームアップデート用プログラム319は、stdファーム311と、図1で説明したプリンタエンジンファーム231とスキャナエンジンファーム232をアップデートする機能を備える。当該アップデートについては、所定のモジュールのプログラムの改ざんが検知された場合に行われる。従って、所定のモジュール以外のプログラムの改ざんが検知された場合は、後述するように、サービスマンに提供するエラーコードを操作部に表示するのみで、自動復旧のためのアップデートは行わない。情報処理装置100として、例えば不図示のフィニッシャなどの、スキャナエンジンやプリンタエンジン以外の構成が接続された場合も同様になる。
The
情報処理装置100は起動モードを切り替えながらアップデートを実現するが、起動モードとは、stdファーム311での起動(通常モード)と、safeファーム312での起動(アップデートモード)を示す。またそれぞれ、起動モードの切り替えを行う機能を備え、ローダ307がSRAM213に保存される起動モードの情報に応じてstdファーム311とsafeファーム312との起動を行う。
The
<自動復旧処理>
次に、図3を参照して、本実施形態に係る情報処理装置100の改ざん検知時の自動復旧処理を説明する。本実施形態による改ざん検知の方法は、ブートプログラム303、BIOS305、ローダ307、通常起動であればstdファーム311内のカーネル313と通常起動用プログラム315が、改ざん検知を行いながら起動する。また、アップデート用起動であればローダ307以降はsafeファーム312内のカーネルB317とstdファームアップデート用プログラム319が改ざん検知を行いながら起動する。ブートプログラム303にはBIOS署名検証用の公開鍵(検証情報)が含まれ、BIOS305にはBIOS署名(自身の署名)とローダ検証用公開鍵が含まれる。ローダ307にはローダ署名と、カーネル検証用公開鍵及びカーネルB検証用公開鍵が含まれているものとする。また、カーネル313にはカーネル署名と通常起動用プログラム検証用公開鍵が含まれ、通常起動用プログラム315には通常起動用プログラム署名が含まれているものとする。さらにカーネルB317にはカーネルB署名とstdファームアップデート用プログラム検証用公開鍵が含まれ、stdファームアップデート用プログラム319にはstdファームアップデート用署名が含まれているものとする。これらの公開鍵と署名は予め情報処理装置100の出荷前にプログラムに対して付与されたものとする。304、306、308、314、318の検証部が各プログラムを検証し、問題がなければ次のプログラムを起動することで改ざん検知を行う情報処理装置100の起動が行われる。以降ではROM291にブートプログラム303とBIOS305、フラッシュROM219にローダ307とstdファーム311とsafeファーム312が保存されているものとして説明する。
<Automatic recovery processing>
Next, with reference to FIG. 3, an automatic restoration process at the time of tampering detection of the
情報処理装置100の電源が投入されると、ROM291からRAM212にブートプログラム303が読み込まれ、CPU210によって実行される。ブートプログラム303に含まれるBIOS改ざん検知処理部304はフラッシュROM219からBIOS305、ローダ検証用公開鍵、及びBIOS署名をRAM212に読み込む。S401で、BIOS改ざん検知処理部304は、BIOS検証用公開鍵を用いてBIOS署名の検証を行い成功したか否かを判定する。当該署名の検証に失敗した場合、S403で、BIOS改ざん検知処理部304はLED290を点灯させ、処理を終了する。一方、当該署名の検証に成功した場合、BIOS改ざん検知処理部304は、CPU210に通電し、ブートプログラムの処理を終了する。CPU210は通電されると、S402で、ROM291からBIOS305とローダ検証用公開鍵をRAM212に読み込み、BIOS305を起動する。以降の処理は全てCPU210によって処理されるものとして説明する。
When the
BIOS305が起動されると、各種初期化処理を実行し、BIOS305に含まれるローダ改ざん検知処理部306がフラッシュROM219からローダ307とカーネル検証用公開鍵、及びローダ署名をRAM212に読み込む。その後、S404で、ローダ改ざん検知処理部306は、ローダ検証用公開鍵を用いてローダ署名の検証を行い、成功したか否かを判定する。当該署名の検証に失敗した場合、S410に進み、ローダ改ざん検知処理部306は、操作部220に図5の500に示すエラーコードを表示して、自動復旧処理を中断し処理を終了する。
When the
一方、当該署名の検証に成功した場合、ローダ改ざん検知処理部306は処理を終了し、BIOS305がRAM212に読み込まれたローダ307を起動する。その後、S405で、ローダ307が起動されると、各種初期化処理を実行し、SRAM213を参照して起動モード等のフラグの確認を行う。ここでは通常起動時の例で説明するため、ここではSRAM213ではstdファーム311を起動する起動モードが選択されるフラグが立っていることを前提とし、ローダ307はstdパーティション309に含まれるstdファーム311の起動を開始する。ローダ307に含まれるカーネル改ざん検知処理部308がフラッシュROM219からstdファーム311のカーネル313と、通常起動用プログラム検証用公開鍵とカーネル署名とをRAM212に読み込む。
On the other hand, if the verification of the signature is successful, the loader tampering
次に、S406で、カーネル改ざん検知処理部308は、カーネル検証用公開鍵を用いて、カーネル署名の検証を行い、成功したか否かを判定する。当該署名の検証に失敗した場合については後述する。一方、当該署名の検証に成功した場合、カーネル改ざん検知処理部308は処理を終了し、S407で、ローダ307がRAM212に読み込まれたカーネル313を起動する。
Next, in step S406, the kernel tampering
カーネル313は起動されると、各種初期化処理が実行される。さらに、カーネル313に含まれるプログラム改ざん検知処理部314がフラッシュROM219から通常起動用プログラム315と通常起動用プログラム署名とをRAM212に読み込む。その後、S408で、プログラム改ざん検知処理部314は、通用起動用プログラム検証用公開鍵を用いて、通常起動用プログラム署名の検証を行い、成功したか否かを判定する。当該署名の検証に失敗した場合は後述する。一方、当該署名の検証に成功した場合、プログラム改ざん検知処理部314は処理を終了し、S409で通常起動用プログラム315を起動する。
When the
S406又はS408でstdファーム311のカーネル313や通常起動用プログラム315の署名の検証に失敗し、改ざんが検知された場合、S411で、CPU210は、SRAM213に自動復旧フラグを立てリブートする。このリブートのとき、前述のS401、S402、S403でのBIOSの検証と起動、S404でのローダの検証が同様に行われるが図3のフローチャートでは省略している。
When the signature verification of the
続いて、S412で、ローダ307は起動されると、各種初期化処理を実行し、SRAM213を参照して起動モード等のフラグの確認を行う。それによりローダ307は自動復旧モードによるsafeファーム312による起動であることを判断する。この場合、ローダ307に含まれるカーネル改ざん検知処理部308は、フラッシュROM219からsafeファーム312のカーネルB317と、stdファームアップデート用プログラム検証用公開鍵と、カーネルB署名とをRAM212に読み込む。その後、S413で、カーネル改ざん検知処理部308は、カーネルB検証用公開鍵を用いて、カーネルB署名の検証を行い、成功したか否かを判定する。当該署名の検証に失敗した場合は、S410に進み、カーネル改ざん検知処理部308は操作部220に図5の500に示すエラーコードを表示し、自動復旧処理を中断し処理を終了する。一方、当該署名の検証に成功した場合、S414で、カーネル改ざん検知処理部308は、S414でローダ307がRAM212に読み込まれたカーネルB317を起動する。
Subsequently, in step S412, when the
カーネルB317は起動されると、各種初期化処理を実行する。その後、カーネルB317に含まれるプログラム改ざん検知処理部B318がフラッシュROM219からstdファームアップデート用プログラム319と、stdファームアップデート用プログラム署名をRAM212に読み込む。続いて、S415で、プログラム改ざん検知処理部B318は、stdファームアップデート用プログラム検証用公開鍵を用いて、stdファームアップデート用プログラム署名の検証を行い、成功したか否かを判定する。当該署名の検証に失敗した場合は、S410に進み、プログラム改ざん検知処理部B318は、操作部220に500に示すエラーコードを表示し、自動復旧処理を中断し処理を終了する。一方、当該署名の検証に成功した場合、プログラム改ざん検知処理部B318は処理を終了し、S416で、stdファームアップデート用プログラム319を起動する。
When booted, the kernel B317 executes various initialization processes. After that, the program tampering detection processing unit B318 included in the kernel B317 reads the std
stdファームアップデート用プログラム319は起動されると、SRAM213の自動復旧フラグを参照する。それによりstdファームアップデート用プログラム319は、stdファーム311の改ざん検知による自動復旧モードであることを判断する。S417で、stdファームアップデート用プログラム319は、外部サーバ250が有効であるかどうかを確認する。ここでいう外部サーバ250が有効とは、情報処理装置100がLAN110上又はインターネット上の外部サーバ250と通信でき、かつ、外部サーバ250からファームをダウンロードしアップデート可能な設定となっている状態を示す。外部サーバ250が有効でない場合は、S418に進み、stdファームアップデート用プログラム319は、ファームのアップデートによって復旧可能であることを示す図5の510に示すエラーコード表示を行い、自動復旧処理を中断し処理を終了する。このように、外部サーバ250が有効でないためにアップデートによって改ざん状態からの復旧の見込みがあるのに自動復旧できない場合、ユーザから出動を要請されたサービスマンが復旧方法の判断材料となる情報として、510に示すエラーコードを表示する。
When the std
一方、外部サーバ250が有効である場合、S419に進み、stdファームアップデート用プログラム319は、外部サーバ250から、現状改ざんが検知されたstdファーム311と同じバージョンのファームをダウンロードする。続いて、S420で、stdファームアップデート用プログラム319は、外部サーバ250からファームのダウンロード中にエラーが発生したか否かを判断する。エラーが発生した場合は、S410に進み、stdファームアップデート用プログラム319は、操作部220に500のエラーコードを表示し、自動復旧処理を中断し処理を終了する。
On the other hand, if the
一方、ファームのダウンロードが無事完了した場合は、S421に進み、stdファームアップデート用プログラム319は、改ざんされているstdファーム311を、外部サーバ250からダウンロードした同一バージョンのファームにアップデートする。続いて、S422で、stdファームアップデート用プログラム319は、アップデート中にエラーが発生したか否かを判断する。エラーが発生した場合は、S410に進み、stdファームアップデート用プログラム319は操作部220に500のエラーコードを表示し、自動復旧処理を中断し処理を終了する。一方、stdファーム311のアップデートに成功した場合は、S423に進み、stdファームアップデート用プログラム319は、装置をリブートして通常起動を行う。
On the other hand, if the download of the firmware is completed successfully, the process proceeds to S421, and the std
以上説明したように、本実施形態の情報処理装置は、ブートプログラムの起動に続いて複数のモジュールをそのプログラムの改ざんを検知しつつ順次起動する。また、本情報処理装置は、複数のモジュールのうち、次に起動するモジュールの署名を検証する検証情報を用いて、当該次に起動するモジュールの改ざんを検知し、署名の検証が成功すると、次に起動するモジュールを起動する。一方、本情報処理装置は、所定のモジュールの改ざんが検知されると、改ざんされたモジュールを更新して自動復旧を行い、所定のモジュール以外のモジュールの改ざんが検知されると、対応するエラーコードを操作部に表示する。より具体的には、本情報処理装置では、通常モードによる起動時に、stdファーム311内のカーネル313や通常起動用プログラム315(所定のモジュール)に改ざんがあった場合は、アップデートモードでの起動に切り替える。アップデートモードでは、外部サーバ250から同一バージョンのstdファームを取得して、アップデートすることで改ざん状態から自動復旧する。このように、本実施形態によれば、情報処理装置の起動中にソフトウェアの改ざんが検知された場合に、改ざん状態から自動復旧する仕組みを提供することができる。つまり、本実施形態によれば、自動復旧可能な改ざんにおいては、サービスマンによる復旧処理を行うことなく自動復旧を行うことができ、よりユーザの利便性を向上させることができる。
As described above, the information processing apparatus according to the present embodiment sequentially activates a plurality of modules, following the activation of the boot program, while detecting the alteration of the program. In addition, the information processing apparatus uses the verification information for verifying the signature of the module to be activated next among the plurality of modules, detects tampering with the module to be activated next, and if the signature verification succeeds, Start the module that will be started. On the other hand, when the tampering of the predetermined module is detected, the information processing apparatus updates the tampered module and automatically restores the tampered module. When the tampering of the module other than the predetermined module is detected, the corresponding error code is detected. Is displayed on the operation unit. More specifically, in the information processing apparatus, when the
また、本発明は上記実施形態に限らず様々な変形が可能である。例えば、上記実施形態では情報処理装置100が通常起動を開始し改ざんを検知するケースを例としたが、本発明では、アップデート用起動を開始して改ざんを検知した場合であっても同様に改ざん状態からの自動復旧が可能である。この場合、アップデートモードでの起動時に、safeファーム312内のカーネルB317、stdファームアップデート用プログラム319に改ざんがあった場合は、通常モードでの起動に切り替える。さらに、stdファーム311内の通常起動用プログラム315の一部であるsafeファームアップデート用プログラム316によって、同様の手法でsafeファーム312をアップデートすることで改ざん状態から復旧することができる。このように、情報処理装置100の改ざん検知時に自動復旧を行う仕組みを提供することで、ユーザの利便性が向上し、サービスマンの出動コスト等を抑えることができる。
Further, the present invention is not limited to the above-described embodiment, and various modifications can be made. For example, in the above embodiment, the case where the
<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、電源投入後に順次起動されたプログラムが次に起動するプログラムの署名検証をしながら起動する方法であった。この場合、各プログラムがそれぞれに公開鍵、検証処理のためのプログラム等を保持する必要がある。そのため、同じ署名アルゴリズム、及び公開鍵を用いる場合は、プログラム格納領域を余分に使うことになり無駄が多い。この点を改善する手法として、同じ署名アルゴリズム、公開鍵を用いる場合は可能な範囲で後段のプロムラムの署名検証処理をまとめて行うことが考えられる。本実施形態では、BIOS305において、ローダ307、stdファーム311内のカーネル313、safeファーム312内のカーネルB317の署名検証処理をまとめて実行する例について説明する。図2の例では、署名アルゴリズムと公開鍵の共通化によって、BIOS305内のローダ改ざん検知処理部306に相当する部分がローダ307、stdファーム311内のカーネル313、safeファーム312内のカーネルB317の署名検証を行う。これにより、ローダ307はカーネル改ざん検知処理部308とカーネル検証用公開鍵、カーネルB検証用公開鍵を保持する必要がなくなる。
<Second Embodiment>
Below, the 2nd Embodiment of this invention is described. The above-described first embodiment is a method in which the programs sequentially started after the power is turned on are started while verifying the signature of the next program to be started. In this case, each program needs to hold a public key, a program for verification processing, and the like. Therefore, when the same signature algorithm and public key are used, the program storage area is additionally used, which is wasteful. As a method of improving this point, when the same signature algorithm and public key are used, it is conceivable to collectively perform the signature verification processing of the subsequent program to the extent possible. In the present embodiment, an example will be described in which the
<自動復旧処理>
図4を参照して、本実施形態に係る情報処理装置100の改ざん検知時における自動復旧処理を説明する。ここでは、上記第1の実施形態で説明した図3のフローチャートと異なる部分について主に説明する。即ち、S501乃至S503は図3のS401乃至S403と同一の処理のため説明を省略する。
<Automatic recovery processing>
With reference to FIG. 4, an automatic restoration process at the time of tampering detection of the
S502でBIOS305が起動されると、当該BIOS305は各種初期化処理を実行する。さらに、BIOS305のローダ改ざん検知処理部306が、ローダ307、ローダ、カーネル、カーネルB共通の検証用公開鍵、ローダ署名、カーネル署名、及びカーネルB署名を、フラッシュROM219からRAM212に読み込む。その後、S504で、ローダ改ざん検知処理部306は、ローダ、カーネル、カーネルB共通の検証用公開鍵を用いて、ローダ、カーネル、カーネルBの署名の検証を一括して行い、成功したか否かを判定する。
When the
S505で、ローダ改ざん検知処理部306は、改ざんされたプログラムがあるか否かを判断する。ローダ307、カーネル313、及びカーネルB317の全ての署名の検証に成功した場合、ローダ改ざん検知処理部306は処理を終了し、BIOS305がRAM212に読み込まれたローダ307を起動する。この場合、通常起動となり、ローダ307はstdパーティション309に含まれるstdファーム311の起動を開始する。S506乃至S509は、それぞれ、図3のS405乃至409と同一の処理のため説明を省略する。
In step S505, the loader tampering
一方、S505でローダ307、カーネル313、及びカーネルB317のいずれかの署名の検証に失敗した場合、S510に進み、ローダ改ざん検知処理部306は、アップデートによる自動復旧が可能かどうか判断する。本実施形態では、ローダ307、stdファーム311内のカーネル313、及びsafeファーム312内のカーネルB317のうち、カーネル313が改ざんされた場合以外はstdファーム311を自動アップデートして改ざん状態から復旧することはできない。自動復旧ができないと判断した場合は、S511に進み、上記第1の実施形態で説明した図3のS410と同様に、ローダ改ざん検知処理部306が操作部220に図5の500に示すエラーコードを表示し、処理を終了する。
On the other hand, if the verification of the signature of any one of the
stdファーム311内のカーネル313のみ改ざんされていた場合は、ローダ改ざん検知処理部306は、自動復旧が可能と判断し、S512に進み、図3のS411と同様に、SRAM213に自動復旧フラグを立てリブートする。このリブートのとき、前述のS501乃至S504でのBIOSの検証と起動、ローダ、カーネル、カーネルBの検証が同様に行われるが、詳細な説明については省略する。なお、S513乃至S523のアップデート起動時の改ざん検知時における自動復旧処理は、それぞれ、図3のS412、S414乃至S423と同一の処理のため説明を省略する。
If only the
以上説明したように、本実施形態によれば、同じ署名アルゴリズム、公開鍵を用いて可能な範囲で後段のプロムラムの署名検証処理をまとめて行う改ざん検知方法でも、改ざん検知時の自動復旧が可能である。アップデート用起動を開始して改ざんを検知した場合であっても、改ざん状態からの自動復旧が可能である点は、上記第1の実施形態と同様である。 As described above, according to the present embodiment, even with the tampering detection method that collectively performs the signature verification process of the subsequent program to the extent possible using the same signature algorithm and public key, automatic recovery at the time of tampering detection is possible. Is. Similar to the first embodiment, the automatic recovery from the tampered state is possible even when tampering is detected by starting the update boot.
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
<Other embodiments>
The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program. It can also be realized by the processing. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
210:CPU、211:チップセット、212:RAM、213:SRAM、214:NIC、218:HDD、219:フラッシュROM、220:操作部、221:プリンタエンジン、222:スキャナエンジン、240:電源、250:外部サーバ、260:PC、270:RTC、280:埋め込みコントローラ、290:LED、291:ROM 210: CPU, 211: Chip set, 212: RAM, 213: SRAM, 214: NIC, 218: HDD, 219: Flash ROM, 220: Operation unit, 221: Printer engine, 222: Scanner engine, 240: Power supply, 250 : External server, 260: PC, 270: RTC, 280: embedded controller, 290: LED, 291: ROM
Claims (11)
前記複数のモジュールのうち、次に起動するモジュールの署名を検証する検証情報を用いて、該次に起動するモジュールの改ざんを検知する検知手段と、
前記検知手段による署名の検証が成功すると、前記次に起動するモジュールを起動する起動手段と、
前記検知手段によって所定のモジュールの改ざんが検知されると、改ざんされたモジュールを更新して自動復旧を行い、前記検知手段によって前記所定のモジュール以外のモジュールの改ざんが検知されると、対応するエラーコードを操作部に表示する制御手段と
を備えることを特徴とする情報処理装置。 An information processing device that sequentially starts a plurality of modules after starting a boot program,
Of the plurality of modules, detection means for detecting tampering with the next module to be activated using verification information for verifying the signature of the next module to be activated,
When the verification of the signature by the detection means is successful, an activation means for activating the module to be activated next,
When tampering of a predetermined module is detected by the detection unit, the tampered module is updated and automatic recovery is performed, and when tampering of a module other than the predetermined module is detected by the detection unit, a corresponding error is detected. An information processing apparatus comprising: a control unit that displays a code on an operation unit.
前記制御手段は、前記自動復旧を行う場合には、前記通常モードによる起動からアップデートモードによる起動に切り替えることを特徴とする請求項1に記載の情報処理装置。 An update that uses a first partition that stores a first program that activates the predetermined module in a normal mode and a second program that is different from the first program when tampering with the predetermined module is detected Further comprising a storage unit having a second partition storing the second program activated in the mode,
The information processing apparatus according to claim 1, wherein the control unit switches from activation in the normal mode to activation in the update mode when performing the automatic recovery.
各モジュールには、前記検知手段及び前記起動手段が含まれ、前記検証情報と自身の署名とが予め格納されていることを特徴とする請求項2乃至6の何れか1項に記載の情報処理装置。 The plurality of modules include at least a BIOS (Basic Input/Output System), a loader, a first kernel, a second kernel, a first program module used in a normal mode, and a second program module used in an update mode,
7. The information processing according to claim 2, wherein each module includes the detection unit and the activation unit, and the verification information and its own signature are stored in advance. apparatus.
各モジュールには、前記起動手段が含まれ、自身の署名が予め格納され、
前記BIOSには、さらに、前記ローダ、前記第1カーネル、及び第2カーネルの改ざんを検知するための前記検知手段が含まれ、前記ローダ、前記第1カーネル、及び第2カーネルの検証情報が予め格納され、
前記第1カーネルには、さらに、前記第1プログラムモジュールの改ざんを検知するための前記検知手段が含まれ、前記第1プログラムの検証情報が予め格納され、
前記第2カーネルには、さらに、前記第2プログラムモジュールの改ざんを検知するための前記検知手段が含まれ、前記第2プログラムの検証情報が予め格納されることを特徴とする請求項2乃至7の何れか1項に記載の情報処理装置。 The plurality of modules include at least a BIOS (Basic Input/Output System), a loader, a first kernel, a second kernel, a first program module used in a normal mode, and a second program module used in an update mode,
Each module includes the activation means, and stores its own signature in advance,
The BIOS further includes the detection means for detecting falsification of the loader, the first kernel, and the second kernel, and the verification information of the loader, the first kernel, and the second kernel is previously stored. Stored,
The first kernel further includes the detection means for detecting tampering of the first program module, and the verification information of the first program is stored in advance.
8. The second kernel further includes the detection unit for detecting tampering of the second program module, and the verification information of the second program is stored in advance. The information processing apparatus according to any one of 1.
検知手段が、前記複数のモジュールのうち、次に起動するモジュールの署名を検証する検証情報を用いて、該次に起動するモジュールの改ざんを検知する検知工程と、
起動手段が、前記検知工程での署名の検証が成功すると、前記次に起動するモジュールを起動する起動工程と、
制御手段が、前記検知工程で所定のモジュールの改ざんが検知されると、改ざんされたモジュールを更新して自動復旧を行い、前記検知工程で前記所定のモジュール以外のモジュールの改ざんが検知されると、対応するエラーコードを操作部に表示する制御工程と
を含むことを特徴とする情報処理装置の制御方法。 A method for controlling an information processing apparatus, which sequentially starts a plurality of modules after starting a boot program,
A detection step in which the detection means detects tampering with the module to be activated next time using the verification information for verifying the signature of the module to be activated next among the plurality of modules;
An activation step in which the activation means activates the module to be activated next when the signature verification in the detection step is successful;
When tampering of a predetermined module is detected in the detection step, the control means updates the tampered module and performs automatic restoration, and when tampering with a module other than the predetermined module is detected in the detection step. And a control step of displaying a corresponding error code on the operation unit.
検知手段が、前記複数のモジュールのうち、次に起動するモジュールの署名を検証する検証情報を用いて、該次に起動するモジュールの改ざんを検知する検知工程と、
起動手段が、前記検知工程での署名の検証が成功すると、前記次に起動するモジュールを起動する起動工程と、
制御手段が、前記検知工程で所定のモジュールの改ざんが検知されると、改ざんされたモジュールを更新して自動復旧を行い、前記検知工程で前記所定のモジュール以外のモジュールの改ざんが検知されると、対応するエラーコードを操作部に表示する制御工程と
ことを特徴とするプログラム。 A program for causing a computer to execute each step in a control method of an information processing device, which sequentially starts a plurality of modules following activation of a boot program, the control method comprising:
A detection step in which the detection means detects tampering with the module to be activated next time using the verification information for verifying the signature of the module to be activated next among the plurality of modules;
An activation step in which the activation means activates the module to be activated next when the signature verification in the detection step is successful;
When tampering of a predetermined module is detected in the detection step, the control means updates the tampered module and performs automatic restoration, and when tampering with a module other than the predetermined module is detected in the detection step. And a control step of displaying a corresponding error code on the operation unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018217519A JP2020082441A (en) | 2018-11-20 | 2018-11-20 | Image formation device, control method and program of the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018217519A JP2020082441A (en) | 2018-11-20 | 2018-11-20 | Image formation device, control method and program of the same |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020082441A true JP2020082441A (en) | 2020-06-04 |
Family
ID=70905542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018217519A Pending JP2020082441A (en) | 2018-11-20 | 2018-11-20 | Image formation device, control method and program of the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020082441A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632514A (en) * | 2020-12-15 | 2021-04-09 | 北京握奇数据股份有限公司 | Method and device for preventing driver component from being tampered based on USBKey |
WO2022145085A1 (en) * | 2020-12-28 | 2022-07-07 | 株式会社日立産機システム | Information processing device, information processing system, and file management method for information processing device |
-
2018
- 2018-11-20 JP JP2018217519A patent/JP2020082441A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632514A (en) * | 2020-12-15 | 2021-04-09 | 北京握奇数据股份有限公司 | Method and device for preventing driver component from being tampered based on USBKey |
WO2022145085A1 (en) * | 2020-12-28 | 2022-07-07 | 株式会社日立産機システム | Information processing device, information processing system, and file management method for information processing device |
JP7462077B2 (en) | 2020-12-28 | 2024-04-04 | 株式会社日立産機システム | Information processing device and file processing method therefor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6942601B2 (en) | Information processing device, its control method, and program | |
US9807268B2 (en) | Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium | |
US20120297242A1 (en) | Image processing apparatus and method for controlling image processing apparatus | |
JP7009270B2 (en) | Information processing device and program verification method | |
JP2021002081A (en) | Information processing apparatus, control method thereof and program | |
JP2020082441A (en) | Image formation device, control method and program of the same | |
JP6482211B2 (en) | Information processing apparatus, control method thereof, and program | |
JP2022135443A (en) | Information processor, method for processing information, and program | |
JP7206106B2 (en) | Information processing device and program | |
JP7374780B2 (en) | Information processing device and method of controlling the information processing device | |
JP7182966B2 (en) | Information processing device, method for starting information processing device, and program | |
JP2021140601A (en) | Information processing device, control method therefor, and program | |
JP6706278B2 (en) | Information processing apparatus and information processing method | |
JP2020053002A (en) | Information processing apparatus, control method thereof, and program | |
JP2022071954A (en) | Information processing device, information processing method, and program | |
JP2020154601A (en) | Information processing device and its control method, and program | |
US20230132214A1 (en) | Information processing apparatus and method of the same | |
JP6457756B2 (en) | Information processing apparatus, control method thereof, and program | |
JP2023064046A (en) | Information processing apparatus and method for starting the same | |
JP2020181540A (en) | Information processing apparatus and data verification method | |
JP2022187302A (en) | Information processing device, control method thereof, and program | |
JP2020052597A (en) | Information processing apparatus, control method thereof, and program | |
US11928217B2 (en) | Information processing apparatus, control method of information processing apparatus, and storage medium | |
JP2021117523A (en) | Information processing apparatus, method for processing information processing apparatus, and program | |
JP2021128469A (en) | Information processor and boot method for information processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20210103 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210113 |