JP2020154601A - Information processing device and its control method, and program - Google Patents
Information processing device and its control method, and program Download PDFInfo
- Publication number
- JP2020154601A JP2020154601A JP2019051510A JP2019051510A JP2020154601A JP 2020154601 A JP2020154601 A JP 2020154601A JP 2019051510 A JP2019051510 A JP 2019051510A JP 2019051510 A JP2019051510 A JP 2019051510A JP 2020154601 A JP2020154601 A JP 2020154601A
- Authority
- JP
- Japan
- Prior art keywords
- control means
- boot program
- detection process
- information processing
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Facsimiles In General (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
Description
本発明は、情報処理装置とその制御方法、及びプログラムに関するものである。 The present invention relates to an information processing device, a control method thereof, and a program.
近年、ネットワークに接続された情報機器のセキュリティの脆弱性(セキュリティホール)を突いて、情報機器内のファームウェアが改ざんされる問題に対処することが重要となっている。MFP(Multi Function Peripheral、以下、「複合機」)においても、ネットワークに接続された状態でのクラウドサービスが展開されており、情報のセキュリティ対策が求められている。 In recent years, it has become important to address the problem of tampering with the firmware in information devices by exploiting security vulnerabilities (security holes) in information devices connected to the network. In MFPs (Multifunction Peripherals, hereinafter referred to as "multifunction devices"), cloud services are being developed while connected to a network, and information security measures are required.
その情報のセキュリティ対策の一環として、セキュアブートが導入されてきている。セキュアブートとは、情報機器の起動時に、デジタル署名されていない、或いは、デジタル署名がされていても第三者により改ざんされたファームウェアを実行しないようにする技術である。このようにブートローダの書き換え(改ざん)を検出し、改ざんされていないかをチェックし終えてから起動することで、第三者により改造されたプログラムによる不正な動作を不可能とする。例えば特許文献1には、CPUのファームウェアに異常が検知された場合に、そのファームウェアを修復するような装置構成及び制御方法が提案されている。 Secure boot has been introduced as part of the security measures for that information. Secure boot is a technology that prevents the execution of firmware that has not been digitally signed or has been digitally signed but has been tampered with by a third party when the information device is started. By detecting the rewriting (tampering) of the boot loader in this way, checking whether it has been tampered with, and then starting it, it is possible to make unauthorized operation by a program modified by a third party impossible. For example, Patent Document 1 proposes a device configuration and a control method for repairing the firmware when an abnormality is detected in the firmware of the CPU.
しかしながら上記従来の方式では、ファームウェアの異常検知しかしていないため、CPUの立ち上がり時(以降、ブート時)に使用されるブートプログラムが改ざんされていた場合に対応できない。従って、ブートプログラムが改ざんされた場合には、異常な動作をしてしまう可能性がある。 However, since the above-mentioned conventional method only detects an abnormality in the firmware, it cannot cope with the case where the boot program used at the time of starting the CPU (hereinafter, at the time of booting) is tampered with. Therefore, if the boot program is tampered with, it may behave abnormally.
また、MFPを制御する制御システムが、複数のSOC(System On Chip)で制御されている場合に、1つのSOCが正常に立ち上がっても、他のSOCが異常に立ち上がってしまうと、そのSOCが担当する機能(例えば、MFPの画像スキャン機能)が正しく動作しないなどの問題が生じる可能性がある。 Further, when the control system that controls the MFP is controlled by a plurality of SOCs (System On Chips), even if one SOC starts up normally, if the other SOCs start up abnormally, the SOC will start up. Problems such as the function in charge (for example, the image scanning function of the MFP) not working properly may occur.
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。 An object of the present invention is to solve at least one of the problems of the prior art.
本発明の目的は、複数の制御手段を備える情報処理装置において、複数の制御手段が正常に立ち上がった場合にのみ、その装置が起動できるようにすることで、上記課題を解決する技術を提供することにある。 An object of the present invention is to provide a technique for solving the above problems by enabling an information processing device provided with a plurality of control means to be activated only when the plurality of control means are normally started. There is.
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
少なくとも第1制御手段と第2制御手段とを有する情報処理装置であって、
前記情報処理装置が起動されると前記第1制御手段は、前記第2制御手段に対して、前記第2制御手段が実行するブートプログラムの改ざんの検知処理を実行するように指示し、
前記指示に応じて前記第2制御手段で実行された前記検知処理の結果が改ざん無しを示す場合は、前記第1制御手段により前記第2制御手段を起動させ、
前記検知処理の結果が改ざん有りを示す場合は、前記第1制御手段は、前記第2制御手段が実行するブートプログラムを前記第2制御手段に送信することを特徴とする。
In order to achieve the above object, the information processing apparatus according to one aspect of the present invention has the following configuration. That is,
An information processing device having at least a first control means and a second control means.
When the information processing device is activated, the first control means instructs the second control means to execute a tampering detection process of the boot program executed by the second control means.
When the result of the detection process executed by the second control means in response to the instruction indicates that there is no falsification, the first control means activates the second control means.
When the result of the detection process indicates that the detection process has been tampered with, the first control means transmits a boot program executed by the second control means to the second control means.
本発明によれば、複数の制御手段を備える情報処理装置において、複数の制御手段が正常に立ち上がった場合にのみ、その装置が起動できるようにできる。また、ある制御手段が安全に起動できない場合は、その制御手段のブートプログラムを修復して、安全に起動させることができる。 According to the present invention, in an information processing device including a plurality of control means, the device can be activated only when the plurality of control means are normally started. If a certain control means cannot be started safely, the boot program of the control means can be repaired and started safely.
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。尚、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。 Other features and advantages of the present invention will become apparent in the following description with reference to the accompanying drawings. In the attached drawings, the same or similar configurations are designated by the same reference numbers.
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これら複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一もしくは同様の構成に同一の参照番号を付し、重複した説明は省略する。尚、以下の実施形態では、本発明に係る情報処理装置の一例を複合機を例に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The following embodiments do not limit the invention according to the claims. Although a plurality of features are described in the embodiment, not all of the plurality of features are essential to the invention, and the plurality of features may be arbitrarily combined. Further, in the attached drawings, the same or similar configurations are designated by the same reference numbers, and duplicate description is omitted. In the following embodiment, an example of the information processing device according to the present invention will be described by taking a multifunction device as an example.
[実施形態1]
図1は、実施形態1に係る複合機100のハードウェア構成を説明するブロック図である。
[Embodiment 1]
FIG. 1 is a block diagram illustrating a hardware configuration of the
コントローラ110は、複合機100の制御を行うためのハードウェアモジュールを有する。実施形態1では、コントローラ110は半導体チップとして構成されているものとして説明する。クロック生成部103は、クロック信号を生成して複合機100の各モジュールに適した周波数のクロック信号(外部クロック)を供給する。実施形態1では、クロック生成部103は、クロック信号105をコントローラ110内のPLL(Phase Locked Loop)123に供給する。尚、このクロック信号105の周波数はクロック制御信号107によって変更可能である。
The
クロック制御部121は、PLL123を内部クロック制御信号108で制御する。これによりPLL123は、クロック信号105の周波数を逓倍し、周波数が逓倍されたクロック信号をコントローラ110の各モジュールに供給する。クロック制御部121は、コントローラ110の起動時や動作時に、PLL123に対して逓倍の設定を変更することで、PLL123が各モジュールに最適な周波数のクロック(内部クロック)を供給するように制御を行う。またクロック制御部121は、各モジュールごとに、クロックをゲートして、クロック信号の供給を停止させることができる。
The clock control unit 121 controls the
リセット生成部104は、リセット信号106を生成して出力することにより、複合機100の各モジュールへリセットを掛けたり解除したりする半導体チップである。図1ではコントローラ110へ供給するリセット信号106しか図示していないが、フラッシュメモリ145、LED147、スキャナ141やプリンタ142などのモジュールにも接続されているものとする。
The
複合機100の電源がオンされると、一定時間(例えば、供給電源電圧が安定するまで)リセット信号106のリセット状態を保持した後、リセット信号106を解除状態にしてコントローラ110のリセットを解除する。リセット信号106がアサートされている状態がリセット状態であり、リセット信号106がデアサートされている状態がリセット信号106の解除状態である。コントローラ110のリセットが解除されると、リセット制御部122は、コントローラ110内部の各モジュールのリセット制御を行う。このリセット制御は、コントローラ110の起動時や動作時に、各モジュールをリセット状態にしたり、リセット解除状態にする制御を指す。
When the power of the
CPU101は、複合機100のソフトウェアプログラムを実行し、機器全体の制御を行う。RAM102は、CPU101が複合機100を制御する際に、プログラムや、データの一時的な格納などに使用される揮発性のランダムアクセスメモリである。HDD144はハードディスクドライブであり、一部のアプリケーションや各種データを格納する。このHDD144は、CPU101が実行するJavaプログラム214(図2)を格納している。尚、Javaプログラム214については後述する(以下、BIOS210などについても同様)。フラッシュメモリ145は、複合機100の固定パラメータ等を格納している。またフラッシュメモリ145は、CPU101が実行するBIOS210(図2)を格納している。更にフラッシュメモリ145は、CPU101が実行するローダ211、カーネル212、Nativeプログラム213(いずれも図2)を格納する。尚、HDD144とフラッシュメモリ145は同一のストレージモジュールであっても良い。
The
CPU111は、CPU101が実行するソフトウェアプログラムの改ざんを検知する改ざん検知ソフトウェアプログラムを実行する他、CPU101と分担して複合機100の一部の制御を行う。ROM112は、不揮発性のリードオンリーメモリであり、CPU111により実行される改ざん検知ソフトウェアプログラムや後述の公開鍵などを格納している。またROM112は、CPU111が実行するブートプログラム209を格納している。ここでROM112は、外部からのI/Fから書き換えられないように論理回路で構成されたマスクROM、もしくは製造時に一度だけ書き込みが可能なOTP(One Time Programmable)ROMで構成されている。RAM113は、揮発性のランダムアクセスメモリであり、CPU111が複合機100を制御する際に、プログラムや一時的なデータの格納などに使用される。尚、RAM102とRAM113は同一のモジュールであっても良い。
The CPU 111 executes a falsification detection software program that detects falsification of the software program executed by the
電源制御部120は、コントローラ110の各モジュールに対する電力供給を制御するIC(Integrated Circuit)である。コントローラ110(複合機100)の起動時や動作時に、各モジュール部に対して所定の電力を供給したり停止したりすることができる。スキャナI/F制御部131は、スキャナ141による原稿の読み取り制御する。プリンタI/F制御部132は、プリンタ142による印刷処理などを制御する。パネル制御部133は、タッチパネル式の操作パネル143を制御し、各種情報の表示、ユーザからの指示の入力を受け付ける。HDD制御部134は、HDD144に対してデータを読み書きする制御を行う。例えば、RAM102に格納されている画像データをシステムバス109経由でHDD144に格納することができる。フラッシュメモリ制御部135は、フラッシュメモリ145に対してデータを読み書きする制御を行う。フラッシュメモリ制御部135は、フラッシュメモリ145に格納されているプログラムを読み出してシステムバス109経由でRAM113へ展開する。ネットワークI/F制御部136は、ネットワーク146上の他のデバイスやサーバとのデータの送受信を制御する。外部ポート制御部137は、コントローラ110の入出力ポート制御部である。例えば出力ポートを制御することにより、LED147を必要に応じて点灯し、ソフトウェアやハードウェアの異常を外部に伝えることができる。画像処理部138は、スキャナ141で原稿を読み取って得られた画像データをシェーディング補正したり、プリンタ142に出力するためにハーフトーン処理やスムージング処理したりする処理部である。システムバス109は、システムバス109に接続されている各モジュールを相互に接続する。このシステムバス109を介して、CPU101やCPU111からの制御信号や各装置間のデータ信号が送受信される。
The power
図2は、実施形態1に係る複合機100が有するソフトウェアモジュールを説明するブロック図である。これらのソフトウェアはCPU101又はCPU111が実行するものとして説明する。
FIG. 2 is a block diagram illustrating a software module included in the
通信管理部207は、ネットワーク146に接続されるネットワークI/F制御部136を制御し、ネットワーク146を介して外部とデータの送受信を行う。UI制御部203は、パネル制御部133を介して操作パネル143に入力された指示内容を受け取り、入力に応じた処理や操作パネル143への画面出力を行う。
The
ブートプログラム209は、複合機100の電源がオンされるとCPU111で実行されるプログラムであり、起動に関わる処理としてコントローラ110に対して起動シーケンスを実行する。このブートプログラム209は、BIOS210の改ざん検知を行うBIOS改ざん検知部201を有する。BIOS210は、CPU111によるブートプログラム209の実行後に、CPU101で実行されるプログラムであり、起動に関わる処理を行う他に、ローダ211の改ざん検知を行うローダ改ざん検知部202を有する。
The
ローダ211は、BIOS210の処理が終わった後にCPU101で実行されるプログラムであり、起動に関わる処理を行う他に、カーネルの改ざん検知を行うカーネル改ざん検知部204を有する。カーネル212は、ローダ211の処理が終わった後にCPU101で実行されるプログラムであり、起動に関わる処理を行う他に、Nativeプログラム213の改ざん検知を行うプログラム改ざん検知部205を有する。
The
Nativeプログラム213は、CPU101で実行されるプログラムであり、複合機100のJavaプログラム214と連携して各機能を提供する複数のプログラムを有している。これら複数のプログラムは、例えば、スキャナIF制御部131やプリンタIF制御部132を制御するプログラムや起動プログラムなどを含む。この起動プログラムは、カーネル212によってNativeプログラム213の中から呼び出され、起動処理を行う。またNativeプログラム213は、プログラムの中の一つとしてJavaプログラムの改ざん検知を行うJavaプログラム改ざん検知部206を有する。Javaプログラム214は、CPU101で実行されるプログラムであり、複合機100のNativeプログラム213と連携して各機能を提供するプログラム(例えば、操作パネル143に画面を表示するプログラムなど)である。
The
次に、複合機の起動シーケンスについて図3を参照して説明する。 Next, the activation sequence of the multifunction device will be described with reference to FIG.
図3(A)は、改ざん検知を行わずに複合機が起動する順序を示す起動シーケンス模式図である。 FIG. 3A is a schematic start-up sequence diagram showing the order in which the multifunction devices are started without detecting falsification.
ブートプログラムがBIOSを起動し、BIOSがローダを起動し、ローダがカーネルを起動し、カーネルがNativeプログラムの中から起動プログラムを起動する。そして起動プログラムの中でJavaプログラムが起動され、以降はNativeプログラムとJavaプログラムが連携して複合機の有する各機能を提供する。 The boot program boots the BIOS, the BIOS boots the loader, the loader boots the kernel, and the kernel launches the boot program from within the Native program. Then, the Java program is started in the start program, and thereafter, the Native program and the Java program cooperate to provide each function of the multifunction device.
図3(B)は、ブートプログラム209からBIOS210、ローダ211、カーネル212、Nativeプログラム213、Javaプログラム214が、それぞれ改ざん検知を行う処理の流れを表した起動シーケンスの模式図である。図中、各プログラムの保存場所、デジタル署名(以下、単に「署名」と呼ぶ)と公開鍵の保存場所をも表している。
FIG. 3B is a schematic diagram of a boot sequence showing the flow of processing in which the
ここで署名とは、例えば正規のプログラム(データ列)を所定のハッシュ関数によってハッシュ値(メッセージ・ダイジェスト)に変換し、公開鍵に対応する秘密鍵でハッシュ値を暗号化したものである。この暗号化されたハッシュ値を公開鍵で復号することで正規のプログラムのハッシュ値を求める。そして、改ざんの有無の検証対象であるプログラムを前述のハッシュ関数によってハッシュ値に変換する。そして、これら2つのハッシュ値を比較する。そして、2つのハッシュ値が等しければ、検証対象のプログラムは正規のプログラムから改ざんされていないと判定できる。一方、もし2つのハッシュ値が一致しなければ、検証対象のプログラムは正規のプログラムから改ざんされていると判定できる。 Here, the signature is, for example, a legitimate program (data string) converted into a hash value (message digest) by a predetermined hash function, and the hash value is encrypted with a private key corresponding to the public key. The hash value of a legitimate program is obtained by decrypting this encrypted hash value with a public key. Then, the program to be verified for falsification is converted into a hash value by the above-mentioned hash function. Then, these two hash values are compared. Then, if the two hash values are equal, it can be determined that the program to be verified has not been tampered with from the regular program. On the other hand, if the two hash values do not match, it can be determined that the program to be verified has been tampered with from the legitimate program.
このように署名を用いて検証対象のプログラムの改ざんの有無を調べる方法を、以降では「署名検証」と呼ぶ。また、プログラムが改ざんされていない(検証対象のプログラムが正規のものである)場合は、署名検証に成功すると呼び、プログラムが改ざんされている(検証対象のプログラムが正規のものでない)場合は、署名検証に失敗すると呼ぶ。 The method of checking for falsification of the program to be verified by using the signature in this way is hereinafter referred to as "signature verification". Also, if the program has not been tampered with (the program to be verified is legitimate), it is said that the signature verification is successful, and if the program has been tampered with (the program to be verified is not legitimate), it is called successful. Called signature verification failed.
実施形態1では、プログラムの改ざんの有無を判定する方法として、このような署名及び公開鍵を用いる方法を採るが、改ざんの有無を判定する他の方法でも良い。 In the first embodiment, as a method of determining whether or not the program has been tampered with, a method using such a signature and a public key is adopted, but another method of determining whether or not the program has been tampered with may be used.
ROM112には、ブートプログラム209の他にBIOS署名検証用の公開鍵300が含まれる。
The
フラッシュメモリ145には、BIOS210、ローダ211、カーネル212、Nativeプログラム213、Javaプログラム214の他に、次のものも含まれている。暗号化されたBIOS署名302、ローダ検証用公開鍵303、暗号化されたローダ署名304、カーネル検証用公開鍵305、暗号化されたカーネル署名306、Nativeプログラム検証用公開鍵307である。更に、暗号化されたNativeプログラム署名308、Javaプログラム検証用公開鍵309、暗号化されたJavaプログラム署名310もフラッシュメモリ145に記憶されている。これらの公開鍵と署名は、予め複合機100を製造する段階でプログラムに対して付与されたものとする。
In addition to the
改ざん検知部201,202,204,205,206が、次に起動するプログラムが改ざんされているかどうかを検証し、そのプログラムが改ざんされていなければ、そのプログラムを起動する。このようにプログラムの改ざん検知及びプログラムの起動を順次行う起動シーケンスに従い複合機100は起動する。
The
以上のようにして、複合機全体の動作を管理するコントローラ110のブートプログラムなどの改ざん検知を行う。実施形態1では、コントローラ110のブートプログラムの改ざんの検知を行うのみならず、スキャナ141やプリンタ142の動作を制御するそれぞれのコントローラについても、ブートプログラムの改ざん検知を行う例で説明する。尚、以下では、説明を簡単にするために、各プログラムで最初に起動されるブートプログラムの改ざん検知のみについて説明する。
As described above, falsification of the boot program of the
図4は、実施形態1に係る複合機100のコントローラ110とスキャナ141及びプリンタ142のそれぞれの制御構成を説明するブロック図である。尚、コントローラ110において、ここでの説明が不要なものについては表示を省略している。
FIG. 4 is a block diagram illustrating each control configuration of the
コントローラ110は、ROM112に複数で、且つ同一のブートプログラムを格納している。CPU111によってブートプログラムの改ざん検知を行う際には、予め決められた場所に格納された第一のブートプログラムに対して改ざん検知を行う。第一のブートプログラムが改ざんされていると検知された場合は、第二のブートプログラムに対して改ざん検知を行う。第二のブートプログラムが改ざんされていないと検知された場合は、第一のブートプログラムを第二のブートプログラムで上書き処理を行うことで修復する。
The
これによりコントローラ110は安全に起動することができる。このように、ブートプログラムの改ざん検知を行い、改ざんされている場合に第二のブートプログラムで修復し、コントローラ110が安全に立ち上がるような制御方法を、実施形態ではセキュアブートと呼ぶ。
As a result, the
スキャナ141は、スキャナコントローラ41とスキャナエンジン441とを含んでいる。スキャナエンジン441は、実際に原稿を読み込んでデジタルデータを生成する部分である。スキャナコントローラ41は、スキャナI/F制御部131を介してコントローラ110と接続されている。スキャナコントローラ41は、コントローラ110と同様に、スキャナコントローラ41全体を制御するCPU411と、スキャナコントローラ用のブートプログラムの改ざん検知を行うCPU413の2つのCPUを持つ。CPU411は、RAM412を使用して不揮発メモリ414からロードされたブートプログラムを実行する。CPU413は、RAM415を使用して不揮発メモリ414から読み出されたブートプログラムの改ざん検知を行う。スキャナ制御部416は、スキャナコントローラ41とスキャナエンジン441とを接続し、スキャナエンジン441からのデジタルデータの受信やスキャナエンジン441の動作制御信号などをやり取りする。
The
プリンタ142は、プリンタコントローラ42とプリンタエンジン442とを有している。プリンタエンジン442は、デジタルデータを受信して、実際に用紙上に画像を形成する。プリンタコントローラ42は、プリンタI/F制御部132を介してコントローラ110と接続されている。プリンタコントローラ42は、コントローラ110と同様に、プリンタコントローラ42の全体を制御するCPU421と、プリンタコントローラ用のブートプログラムの改ざん検知を行うCPU423の2つのCPUを持つ。CPU421は、RAM422を使用して、不揮発メモリ424からロードされたブートプログラムを実行する。CPU423は、RAM425を使用して、不揮発メモリ424から読み出されたブートプログラムの改ざん検知を行う。プリンタ制御部426は、プリンタコントローラ42とプリンタエンジン442とを接続し、プリンタエンジン442へのデジタルデータの送信や、プリンタエンジン442の動作制御信号などをやり取りする。
The
ここで、スキャナコントローラ41の不揮発メモリ414、及びプリンタコントローラの不揮発メモリ424には、1つのブートプログラムしか格納されていない。これはプログラムの格納数を制限することで、各メモリの容量を削減することができ、複合機100全体のコストダウンを図るためである。
Here, only one boot program is stored in the
一方、こうした構成の複合機100においては、スキャナコントローラ41もしくはプリンタコントローラ42の各不揮発メモリに格納されたブートプログラムが改ざんされている場合、スキャナ141、もしくはプリンタ142が正しい動作ができない可能性が高い。このため、ブートプログラムが改ざんされている場合には、スキャナ動作やプリンタ動作ができないため、一部機能の使用停止もしくは複合機100全体が使用停止に陥ってしまう。
On the other hand, in the
このような場合においても、ブートプログラムを修復し、安全に起動するための方法について、図5、図6及び図7を用いて以下に説明する。尚、以下説明を簡単にするため、コントローラ110をメインコントローラと呼ぶ。
Even in such a case, a method for repairing the boot program and starting it safely will be described below with reference to FIGS. 5, 6 and 7. The
図5は、複合機100とネットワークを介して接続されるサーバ500を含むシステム構成図である。
FIG. 5 is a system configuration diagram including a
図5において、メインコントローラ110はスキャナコントローラ41に対してリセット解除などを行うため、最初に立ち上がる必要がある。またメインコントローラ110は複数のブートプログラムをROM112に格納しており、セキュアブート制御によって安全に立ち上がっているものとする。
In FIG. 5, since the
図6は、実施形態1に係る複合機100のメインコントローラ110による制御処理を説明するフローチャートであり、このフローチャートで示す処理は、CPU101もしくはCPU111によって実行される。いずれの制御がどちらのCPUにて行われるかについては、その都度説明する。
FIG. 6 is a flowchart illustrating a control process by the
まずS601でCPU111は、メインコントローラ110用のブートプログラムの改ざん検知を行う。次いでS602に進みCPU101を起動させ各種プログラムを実行させ、これ以降、メインコントローラ110はCPU101によって安全に動作する。
First, in S601, the CPU 111 detects tampering with the boot program for the
次S603に進みCPU101は、スキャナコントローラ41に改ざん検知の開始を指示する通知を送信する。このときスキャナコントローラ41はリセット状態となっており、この改ざん検知の開始通知によって、図示しないリセット制御部により、スキャナコントローラ41のCPU413のみが起動される。こうしてCPU413は、不揮発メモリ414に格納されたブートプログラムの改ざん検知動作を開始する。このときスキャナコントローラ41のCPU411はまだリセット状態である。次にS604に進み、スキャナコントローラ41から改ざんが検知されなかったことを示す完了通知が来たかどうか、或いは、S605でスキャナコントローラ41でブートプログラムの改ざんを検知した旨の通知が来るかどうかを待つ。
Proceeding to the next S603, the
図7は、実施形態1に係るスキャナコントローラ41による処理を説明するフローチャートであり、特に断らない限り内部CPU413によって実行される。次に図7のフローチャートを参照して、スキャナコントローラ41の動作を説明する。
FIG. 7 is a flowchart illustrating processing by the
この処理は、スキャナコントローラ41ではCPU413のリセットが解除されて、スキャナコントローラ41による改ざん検知処理の実行が図6のS603で指示されることにより開始される。まずS701でCPU413は、不揮発メモリ414の所定アドレスに格納されたブートプログラムを読み出し、そのブートプログラムの改ざんの検知を行う。次にS702に進みCPU413は、そのブートプログラムが改ざんされているかどうかを判定する。S702でCPU413は、ブートプログラムが改ざんが検知されていないと判定した場合はS710に進みCPU413は、メインコントローラ110に対してブートプログラムが改ざんされていないことを通知して、この処理を終了する。尚、この通知は、図6のS604でメインコントローラ110が受信する。
This process is started when the reset of the
一方、S702でCPU413は、ブートプログラムが改ざんが検知されていると判定した場合はS703に進みCPU413は、メインコントローラ110に対してブートプログラムが改ざんされていることを通知する。これは図6のS605でメインコントローラ110により受信される。そしてS704でCPU413は、図6のS608でメインコントローラ110から送信されるブートプログラムの受信を待つ。
On the other hand, if the
次に図6のフローチャートにおいて、メインコントローラ110のCPU101はS605で、スキャナコントローラ41からブートプログラムの改ざんを検知した旨の通知を受信したかどうか判定し、改ざんを検知した旨の通知を受信するとS606に進み、そうでないときはS604に進む。
Next, in the flowchart of FIG. 6, the
S606でCPU101は、そのブートプログラムの改ざんを検知した旨の通知に基づいて、そのブートプログラム識別情報を作成する。このブートプログラムの識別情報は、どのスキャナコントローラでブートプログラム改ざんが発生したかの情報を含む。実施形態1は、例えばスキャナコントローラ41からの通知であれば、スキャンコントローラ41のブートプログラム、複数のスキャナコントローラが接続されていれば、そのスキャナコントローラのブートプログラムであることを示す。
In S606, the
次にS607に進みCPU101は、S606で作成したブートプログラムの識別情報に基づいて、HDD144の所定の場所に予め格納されている、対応するブートプログラムを読み出して取得する。この時、このブートプログラム識別情報に紐づいて、HDD144に予め格納されたブートプログラムの場所情報及びデータ長情報がCPU101で実行されるプログラムに用意されている。従ってCPU101は、これらを参照して、HDD144からスキャナコントローラ41用のブートプログラムを取得する。そしてS608に進みCPU101は、S608で取得したブートプログラムをスキャナコントローラ41に送信する。その後、S609でCPU101は、その送信したブートプログラムが改ざんされているかどうかの検証結果をスキャナコントローラ41から受信するのを待ち、改ざんされていないという通知を受信するとS611に進んで、そのスキャナコントローラ41の起動を許可して、この処理を終了する。一方、検証結果を受信しないときはS610に進み、S608で送信したブートプログラムが改ざんされていたという検証結果を受信したかどうか判定し、そのような検証結果を受信しないときはS609に進む。S610で、送信したブートプログラムが改ざんされていたという検証結果を受信するとS612に進み、エラー処理を行って、この処理を終了する。
Next, the process proceeds to S607, and the
次に図7のフローチャートにて、スキャナコントローラ41のCPU413は、S704で、図6のS608で、メインコントローラ110から送信されるブートプログラムを受信したかどうか判定する。そしてブートプログラムを受信するとS705に進みCPU412は、S701と同様にして、そのブートプログラムの改ざん検知処理を行う。そしてS706に進みCPU413は、そのブートプログラムが改ざんされているかどうか判定し、改ざんされていないと判定した場合は、その受信した取得したブートプログラムが安全であるとしてS707に進んで、不揮発メモリ414のブートプログラムを修復する。このブートプログラムの修復とは、S702で改ざんされていたと判定された不揮発メモリ414のブートプログラムを、S704で受信したブートプログラムで上書きすることである。次にS708に進みCPU413は、メインコントローラ110に対して改ざん検知の完了通知を行い、スキャンコントローラ41側のブートプログラム改ざん検知動作制御は終了となる。一方、S706に進みCPU413は、そのブートプログラムが改ざんされていると判定した場合はS709に進み、CPU413はエラー処理を実行して、この処理を終了する。
Next, in the flowchart of FIG. 7, the
次に、図6のフローチャートにおいて、メインコントローラ110のCPU101は、S609で、図7のS708でスキャナコントローラ41から送信されるブートプログラムに改ざんが無いという通知を受信するとS611に進む。S611でCPU101は、スキャナコントローラ41での改ざんの検知処理が完了したと判定して、スキャナコントローラ41のCPU411のリセットを解除し、スキャナコントローラ41は安全に起動することになる。
Next, in the flowchart of FIG. 6, when the
尚、S705で取得したブートプログラムに改ざんがあるとS706で判定された場合には、S709にてエラー状態となり、スキャナコントローラ41はメインコントローラ110に対してエラー通知を行う。この場合は図6には記載していないが、メインコントローラは、HDD144が不正に利用されていると判定して、HDD144へのアクセスの禁止、並びに操作パネル143にエラー表示をし、複合機100が使用できない旨ユーザーに通知するなどをしても良い。
If it is determined in S706 that the boot program acquired in S705 has been tampered with, an error state occurs in S709, and the
以上説明したように実施形態1によれば、メインコントローラとスキャナコントローラ及びメインコントローラに接続されたHDDを用いて、起動時に用いられるブートプログラムのセキュアブート制御を実行し、複合機が安全に立ち上げることが可能となる。 As described above, according to the first embodiment, the main controller, the scanner controller, and the HDD connected to the main controller are used to execute the secure boot control of the boot program used at the time of booting, and the multifunction device starts up safely. It becomes possible.
尚、実施形態1では説明を簡単にするために、スキャナコントローラ41にてブートプログラムのセキュアブート制御を行うように説明したが、プリントコントローラ42でも同様のセキュアブート制御が行えることは言うまでもない。また、スキャナコントローラ41とプリントコントローラ42の両方でセキュアブート制御が行えるような構成・制御でも良い。
In the first embodiment, in order to simplify the explanation, the
[実施形態2]
実施形態1に対して、スキャナコントローラ用のブートプログラムを取得する場所が異なる実施形態2について図5、図7、図8及び図9を参照して説明する。
[Embodiment 2]
A second embodiment in which the location for acquiring the boot program for the scanner controller is different from that of the first embodiment will be described with reference to FIGS. 5, 7, 8 and 9.
図8は、実施形態2に係る複合機100のメインコントローラ110による制御処理を説明するフローチャートであり、このフローチャートで示す処理は、CPU101もしくはCPU111によって実行される。いずれの制御がどちらのCPUにて行われるかについては、その都度説明する。尚、図8において、前述の図6と共通する処理は同じ参照符号を付して、その説明を省略する。
FIG. 8 is a flowchart illustrating a control process by the
図9は、実施形態2に係るサーバ500による処理を説明するフローチャートである。 図8のS605で、スキャナコントローラ41からブートプログラムの改ざんを検知した旨の通知を受信するとS606に進み、そのブートプログラムの改ざん検知の通知に基づいて、ブートプログラムの識別情報を作成する。このブートプログラムの識別情報は、どのスキャナコントローラでブートプログラムの改ざんが発生したかの情報を含む。実施形態2では、例えばスキャナコントローラ41からであれば、その識別情報はスキャンコントローラ41のブートプログラムを示し、複数のスキャナコントローラが接続されていれば、その改ざんを検知したスキャナコントローラのブートプログラムであることを示す。
FIG. 9 is a flowchart illustrating processing by the
次にS801に進みCPU101は、その作成したブートプログラムの識別情報をサーバ500に送信する。この時、サーバ500とメインコントローラ110との間はネットワーク146で接続されているが、既に、メインコントローラ110は安全に起動されているため、サーバ500とは、SSL通信など安全な通信方法でブートプログラム識別情報は送信される。
Next, the process proceeds to S801, and the
サーバ500は、その記憶手段内に、取得したブートプログラムの識別情報に紐付いたブートプログラムを格納しているものとする。例えば、スキャナコントローラ41の要因で作成されたブートプログラムの識別情報に対しては、スキャナコントローラ41用のブートプログラムを格納している。また、プリンタコントローラ42の要因で作成されたブートプログラムの識別情報に対しては、プリンタコントローラ42用のブートプログラムを格納している。またサーバ500には、実施形態2で説明する複合機100とは別の機種の複合機の各種ブートプログラムが格納されている構成でも良く、複合機100に起因するブートプログラムの識別情報は、別の機種の複合機のブートプログラムの識別情報とは異なる。よって、それぞれのブートプログラムの識別情報を基に、それに紐付いて格納された1つのブートプログラムを特定することができる。
It is assumed that the
図9は、本発明の実施形態2に係るサーバ500による処理を説明するフローチャートである。
FIG. 9 is a flowchart illustrating processing by the
サーバ500はS901で、複合機100からブートプログラムの問い合わせがあったかどうかを判定する。ここでは、複合機100からブートプログラムの識別情報を受信するとS902に遷移する。S902でサーバ500は、受信したブートプログラムの識別情報を解析し、複合機100から送信されたこと、ブートプログラムの種類などを判定する。これにより、対象のブートプログラムは一意に特定される。次にS903に進みサーバ500は、対応するブートプログラムをサーバ500に接続されている図示しない記憶手段から読み出す。そしてS904に進みサーバ500は、その読み出したブートプログラムを、ネットワーク146を介して複合機100に送信する。このときも、SSL通信など安全な通信方法で送信されるものとする。
The
これにより図8のフローチャートにおいて、この間メインコントローラ110は、サーバ500からスキャナコントローラ41用ブートプログラムが送信されるまでS802で炊きしている。そしてCPU101は、サーバ500からスキャナコントローラ41用のブートプログラムを受信するとS802からS608に進み、その受信したブートプログラムをスキャナコントローラ41に送信する。その後、S609で、スキャナコントローラ41からブートプログラムの改ざん検知が完了したか、或いはS610で、送信したブートプログラムが改ざんされていたがどうかの検証結果を待つ。
As a result, in the flowchart of FIG. 8, during this period, the
この場合のスキャナコントローラ41の処理は前述の実施形態1と同様であるため、その説明を省略する。
Since the processing of the
以上説明したように実施形態2によれば、メインコントローラとスキャナコントローラ及びネットワークを介して接続されたサーバを用いて、起動時に用いられるブートプログラムのセキュアブート制御を実行し、複合機が安全に立ち上げることが可能となる。 As described above, according to the second embodiment, the secure boot control of the boot program used at the time of booting is executed by using the main controller, the scanner controller, and the server connected via the network, and the multifunction device stands safely. It will be possible to raise it.
尚、実施形態1では説明を簡単にするために、スキャナコントローラ41にてブートプログラムのセキュアブート制御を行うように説明したが、プリントコントローラ42でも同様のセキュアブート制御が行えることは言うまでもない。また、スキャナコントローラ41とプリントコントローラ42の両方でセキュアブート制御が行えるような構成・制御でも良い。
In the first embodiment, in order to simplify the explanation, the
尚、前述の実施形態1のように、HDDに格納されたブートプログラムが改ざんされている場合は、複合機で安全に起動できるブートプログラムが存在しない可能性が高いことが想定される。このため実施形態2では、よりセキュリティが高いサーバに格納されたブートプログラムを受け取り、より安全に起動する構成を提供するものである。 If the boot program stored in the HDD has been tampered with as in the first embodiment, it is highly likely that there is no boot program that can be safely booted by the multifunction device. Therefore, the second embodiment provides a configuration in which a boot program stored in a server with higher security is received and started more safely.
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other embodiments)
The present invention supplies a program that realizes one or more functions of the above-described embodiment to a system or device via a network or storage medium, and one or more processors in the computer of the system or device reads and executes the program. It can also be realized by the processing to be performed. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から逸脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。 The present invention is not limited to the above embodiments, and various modifications and modifications can be made without departing from the spirit and scope of the present invention. Therefore, in order to make the scope of the present invention public, the following claims are attached.
41…スキャナコントローラ、42…プリンタコントローラ、100…複合機、101,111…CPU(コントローラ)、110…コントローラ、414,424…不揮発メモリ 41 ... Scanner controller, 42 ... Printer controller, 100 ... Multifunction device, 101, 111 ... CPU (controller), 110 ... Controller, 414, 424 ... Non-volatile memory
Claims (11)
前記情報処理装置が起動されると前記第1制御手段は、前記第2制御手段に対して、前記第2制御手段が実行するブートプログラムの改ざんの検知処理を実行するように指示し、
前記指示に応じて前記第2制御手段で実行された前記検知処理の結果が改ざん無しを示す場合は、前記第1制御手段により前記第2制御手段を起動させ、
前記検知処理の結果が改ざん有りを示す場合は、前記第1制御手段は、前記第2制御手段が実行するブートプログラムを前記第2制御手段に送信することを特徴とする情報処理装置。 An information processing device having at least a first control means and a second control means.
When the information processing device is activated, the first control means instructs the second control means to execute a tampering detection process of the boot program executed by the second control means.
When the result of the detection process executed by the second control means in response to the instruction indicates that there is no falsification, the first control means activates the second control means.
When the result of the detection process indicates that the detection process has been tampered with, the first control means is an information processing device that transmits a boot program executed by the second control means to the second control means.
前記第2制御手段は、前記指示に応じて、前記第1記憶手段に記憶されている前記ブートプログラムの改ざん検知処理を実行することを特徴とする請求項1に記載の情報処理装置。 The second control means has a first storage means that non-volatilely stores the boot program executed by the second control means.
The information processing device according to claim 1, wherein the second control means executes a falsification detection process of the boot program stored in the first storage means in response to the instruction.
前記検知処理の結果が改ざん有りを示す場合は、前記第1制御手段は、前記第2記憶手段から読み出した、前記第2制御手段が実行するブートプログラムを前記第2制御手段に送信することを特徴とする請求項1に記載の情報処理装置。 The first control means has a second storage means that non-volatilely stores the boot program executed by the second control means.
When the result of the detection process indicates that the detection process has been tampered with, the first control means transmits the boot program read from the second storage means and executed by the second control means to the second control means. The information processing apparatus according to claim 1.
前記情報処理装置が起動されると前記第1制御手段は、前記第2制御手段に対して、前記第2制御手段が実行するブートプログラムの改ざんの検知処理を実行するように指示する工程と、
前記指示に応じて前記第2制御手段で実行された前記検知処理の結果が改ざん無しを示す場合は、前記第1制御手段は前記第2制御手段を起動させる工程と、
前記検知処理の結果が改ざん有りを示す場合は、前記第1制御手段は、前記第2制御手段が実行するブートプログラムを前記第2制御手段に送信する工程と、
を有することを特徴とする制御方法。 A control method for controlling an information processing device having at least a first control means and a second control means.
When the information processing apparatus is activated, the first control means instructs the second control means to execute a process of detecting falsification of a boot program executed by the second control means.
When the result of the detection process executed by the second control means in response to the instruction indicates that there is no tampering, the first control means has a step of activating the second control means.
When the result of the detection process indicates that the detection process has been tampered with, the first control means has a step of transmitting a boot program executed by the second control means to the second control means.
A control method characterized by having.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019051510A JP2020154601A (en) | 2019-03-19 | 2019-03-19 | Information processing device and its control method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019051510A JP2020154601A (en) | 2019-03-19 | 2019-03-19 | Information processing device and its control method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020154601A true JP2020154601A (en) | 2020-09-24 |
Family
ID=72559093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019051510A Pending JP2020154601A (en) | 2019-03-19 | 2019-03-19 | Information processing device and its control method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020154601A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022185570A1 (en) * | 2021-03-02 | 2022-09-09 | 日立Astemo株式会社 | Control apparatus |
-
2019
- 2019-03-19 JP JP2019051510A patent/JP2020154601A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022185570A1 (en) * | 2021-03-02 | 2022-09-09 | 日立Astemo株式会社 | Control apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10225426B2 (en) | Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium | |
US8438377B2 (en) | Information processing apparatus, method and computer-readable storage medium that encrypts and decrypts data using a value calculated from operating-state data | |
CN109684849B (en) | Information processing apparatus, control method therefor, and storage medium | |
JP6494373B2 (en) | Information processing apparatus, information processing apparatus control method, and computer program | |
CN111125686B (en) | Information processing apparatus and control method thereof | |
JP7393226B2 (en) | Information processing equipment and how to start it | |
JP2020154601A (en) | Information processing device and its control method, and program | |
JP2021005335A (en) | Information processing apparatus, information processing method, and program | |
JP2020082441A (en) | Image formation device, control method and program of the same | |
JP2020170256A (en) | Information processing device and control method thereof | |
JP5961059B2 (en) | Information processing apparatus and activation method thereof | |
JP2008171041A (en) | Image forming device, start up method of image forming device, control device, and start up method of extension unit | |
KR102467636B1 (en) | Information processing apparatus, method of controlling information processing apparatus, and storage medium | |
JP7263101B2 (en) | Information processing device, data verification method | |
JP2020053002A (en) | Information processing apparatus, control method thereof, and program | |
JP2021140601A (en) | Information processing device, control method therefor, and program | |
JP2020052597A (en) | Information processing apparatus, control method thereof, and program | |
US11971991B2 (en) | Information processing apparatus, control method for controlling the same and storage medium | |
JP7176379B2 (en) | Information processing device, information processing method, and program | |
JP2022182837A (en) | Information processing apparatus and control method thereof | |
US10657268B2 (en) | Information processing apparatus, information processing method, and non-transitory computer readable medium to verify validity of backup data | |
JP2020188440A (en) | Information processing device and control method of the same | |
JP2020181501A (en) | Information processing device, control method thereof, and program | |
JP2020013244A (en) | Information processor, control method of information processor and program | |
JP2021111231A (en) | Information processing device and information presentation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20210103 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210113 |