(57)【要約】      （修正有）【課題】起動時に実行されるソフトウェアの改ざんを検知する情報処理装置及び改ざん検知方法を提供する。【解決手段】情報処理装置は、起動指示に従って実行される複数のソフトウェアの少なくとも１つの改ざんを検知する検知手段と、改ざんを検知する機能が有効または無効を示す情報を記憶する記憶手段と、起動指示を受信してから経過した時間を計測する計測手段と、計測手段によって計測された時間に従って情報処理装置を再起動する再起動手段と、記憶手段に記憶された情報に基づいて、再起動手段による情報処理装置の再起動を禁止する禁止手段と、を備える。【選択図】なし【特許請求の範囲】
【請求項１】
起動指示に従って実行される複数のソフトウェアの少なくとも１つの改ざんを検知する検知手段と、
前記改ざんを検知する機能が有効または無効を示す情報を記憶する記憶手段と、
前記起動指示を受信してから経過した時間を計測する計測手段と、
前記計測手段によって計測された時間に従って情報処理装置を再起動する再起動手段と、
前記記憶手段に記憶された前記情報に基づいて、前記再起動手段による前記情報処理装置の再起動を禁止する禁止手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記禁止手段は、前記計測手段による時間の計測を停止することによって、前記再起動手段による前記情報処理装置の再起動を禁止する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記禁止手段は、前記計測手段が時間を計測する機能を無効にすることによって、前記再起動手段による前記情報処理装置の再起動を禁止する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記禁止手段は、前記記憶手段に前記改ざんを検知する機能が有効を示す情報が記憶されている場合、前記再起動手段による前記情報処理装置の再起動を禁止、前記改ざんを検知する機能が無効を示す情報が前記記憶手段に記憶されている場合、前記再起動手段による前記情報処理装置の再起動を禁止しない、ことを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記禁止手段は、前記検知手段よって前記複数のソフトウェアの少なくとも１つの改ざんが検知された場合、前記再起動手段による前記情報処理装置の再起動を禁止する、ことを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記改ざんが検知されたことを示す情報を出力する出力手段、をさらに備えることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記出力手段は、前記改ざんが検知されたことを示す情報を表示する表示手段である、ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記複数のソフトウェアを実行可能な実行手段をさらに備え、
前記実行手段は、前記検知手段よって改ざんが検知されなかったソフトウェアを実行する、ことを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記実行手段は、前記複数のソフトウェアを所定の順番で実行し、
前記実行手段によって実行されたソフトウェアが、次に実行されるべきソフトウェアの改ざんを検知する、ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記実行手段は、前記複数のソフトウェアとは異なる他のソフトウェアを実行可能であって、
前記実行手段によって実行された前記他のソフトウェアは、前記複数のソフトウェアの改ざんを検知する、ことを特徴とする請求項８又は９に記載の情報処理装置。
【請求項１１】
前記他のソフトウェアは、ＢＩＯＳであることを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記複数のソフトウェアは、Ｌｏａｄｅｒ、ＯＳ、Ｉｎｉｔｒｄ及びＦｉｒｍｗａｒｅの何れか１つを含む、ことを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１３】
画像を印刷する印刷手段をさらに備える、ことを特徴とする請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１４】
原稿の画像を読み取る読取手段をさらに備える、ことを特徴とする請求項１乃至１１の何れか１項に記載の情報処理装置。
【請求項１５】
起動指示に従って実行される複数のソフトウェアの少なくとも１つの改ざんを検知する検知工程と、
前記改ざんを検知する機能が有効または無効を示す情報を記憶部に記憶する記憶工程と、
前記起動指示を受信してから経過した時間を計測する計測工程と、
前記計測工程によって計測された時間に従って情報処理装置を再起動する再起動工程と、
前記記憶部に記憶された前記情報に基づいて、前記再起動工程の実行を禁止する禁止工程と、を有することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動時に実行されるソフトウェアの改ざんを検知する情報処理装置及び改ざん検知方法に関する。
【背景技術】
【０００２】
起動時に実行されるソフトウェア（以下、起動対象ソフトウェア）の改ざんを検知（以下、改ざん検知と呼ぶ）して、改ざんが検知された起動対象ソフトウェアを実行しない機能を有する情報処理装置が知られている。起動時に起動対象ソフトウェアの改ざんを検知するのに要する時間によって、情報処理装置の起動時間が長期化する。
【０００３】
また、印刷装置や読取装置などの組込システム等では、装置の起動処理が所定時間内に完了しないときに、装置を再起動する再起動機能が知られている（特許文献１）。特許文献１では、ＢＩＯＳによる起動処理中に何らかの異常が発生して、監視時間をカウントし終えるまでにＢＩＯＳによる起動処理が完了しなかったら、電子機器を再起動する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２２４６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１には、起動対象ソフトウェアの改ざんを検知することについては何ら言及されていない。引用文献１に開示される電子機器において起動対象ソフトウェアの改ざんを検知すると、異常が発生していないにも関わらず、改ざん検知に要する時間に起因する起動時間の長期化によって、電子機器が再起動してしまう。
【０００６】
そこで、本発明は、起動対象ソフトウェアの改ざんの検知に起因する起動時間の長期化によって、情報処理装置が再起動するのを禁止する、ことを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、情報処理装置は、起動指示に従って実行される複数のソフトウェアの少なくとも１つの改ざんを検知する検知手段と、前記起動指示を受信してから経過した時間を計測する計測手段と、前記計測手段によって計測された時間に基づいて前記情報処理装置を再起動する再起動手段と、前記計測手段による時間の計測を停止する停止手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、改ざんの検知に起因する起動時間の長期化によって、情報処理装置が再起動するのを禁止することができる。
【図面の簡単な説明】
【０００９】
【図１】画像形成装置１のハード構成図
【図２】ＨＤＤ１０３に記憶されているソフトウェアを示した図
【図３】起動時に実行する処理を示したフローチャート
【図４】ＢＩＯＳが実行する処理を示したフローチャート
【図５】Ｌｏａｄｅｒが実行する処理を示したフローチャート
【図６】Ｉｎｉｔｒｄが実行する処理を示したフローチャート
【図７】ＷＤＴが実行する処理を示したフローチャート
【図８】起動時に実行する処理を示したフローチャート
【図９】ＷＤＴの構成を示すブロック図
【図１０】ＷＤＴの不揮発領域に改ざん検知機能の有効／無効を示す情報を記憶するフローチャート
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施の形態を詳しく説明する。
【００１１】
本実施形態では、情報処理装置として、プリント機能及びスキャン機能を有する画像形成装置を例に説明する。
【００１２】
＜第１実施形態＞
図１は、画像形成装置１のハード構成図である。
【００１３】
本実施形態の画像形成装置１は、起動時に実行される起動対象ソフトウェア（ＢＩＯＳ、Ｌｏａｄｅｒ、Ｉｎｉｔｒｄ、Ｆｉｒｍｗａｒｅ）の改ざんを検知して、改ざんが検知されたソフトウェアを実行しない機能（改ざん検知機能）を有する。
【００１４】
中央演算処理部（以下、ＣＰＵ）１０１は、画像形成装置１を稼働させるためのソフトウェアを実行する。システムバス１０２は、ＣＰＵ１０１と周辺ユニットとを通信可能に接続する、および、周辺ユニット同士を通信可能に接続する通信路である。周辺ユニットとは、ＨＤＤ１０３、ＲＡＭ１０４、ネットワークコントローラ１０５、ＵＳＢホストコントローラ１０７、及び、電力制御部１０９を含む。また、周辺ユニットは、ディスプレイコントローラ１１０、入出力コントローラ１１２、ＲＴＣ１１４、不揮発性メモリ１１５、スキャナＩ／Ｆ１１６、及び、プリンタＩ／Ｆ１１８を含む。
【００１５】
ＨＤＤ（ハードディスクドライブ）１０３は、画像形成装置１が動作するために必要な各種プログラム、データベース、一時記憶ファイルを記憶する。ＲＡＭ１０４には、画像形成装置１のプログラムが展開される。また、ＲＡＭ１０４は、プログラムの実行時の変数や、各ユニットからＤＭＡ（Ｄｙｎａｍｉｃ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）で転送されるデータの格納領域となる。ネットワークコントローラ１０５は、ネットワーク上の他の機器と通信を行う。ＵＳＢホストコントローラ１０７は、ＵＳＢホストコントローラ１０７に接続されたＵＳＢデバイスと通信を行う。
【００１６】
ディスプレイ１１０は、画像形成装置１の動作状況等を表示する。ディスプレイコントローラ１１１は、入力される信号を用いて、ディスプレイ１１０に映像を表示する。入力部１１３は、キーボード、マウス、テンキー、カーソルキー、タッチパネル等であって、ユーザーからの指示を受け付ける。入力部コントローラ１１２は、入力部１１３を制御する。入力部１１３がタッチパネルである場合は、物理的にはディスプレイ１１１の表面に装着される。ＲＴＣ（リアルタイムクロック）１１４は、時計機能、アラーム機能、タイマ機能等を有する。不揮発メモリ１１５には、改ざん検知機能が有効または無効であることを示す情報（改ざん検知設定）等を記憶する設定領域（記憶部）１２０が存在する。また、不揮発性メモリ１１５は、ＢＩＯＳ１２１を記憶する。不揮発性メモリ１１５の詳細は後述する。
【００１７】
電力制御部１０９は、画像形成装置１に設けられるユニットへの電力の供給と停止を制御する。電力制御部１０９は、プログラマブルなロジックデバイスである。電力制御部１０９は、Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ（以下、ＧＰＩＯ）を有する。ＣＰＵ１０１は、ＧＰＩＯを介して、電力制御部の所定のレジスタに設定値を記憶する。電力制御部１０９は、所定のレジスタの設定値に基づいて、ユニットへの電力の供給と停止を制御する。電力制御部１０９は、ＷＤＴ（ウオッチドッグタイマ）１２２を有し、ユーザーから起動指示を受信したタイミングでカウントを開始し、所定時間を計測したときに、画像形成装置１を再起動するリセット信号を出力する。これにより、起動対象ソフトウェアがハングアップした場合に、画像形成装置１を再起動することが可能になる。電力制御部１０９の特定のレジスタに所定の設定値を設定すると、ＷＤＴ１２２によるカウントが停止される。電力制御部１０９のレジスタの設定値の変更は、ソフト制御によって可能である。
【００１８】
システムバス１０２には、スキャナＩ／Ｆ１１６を介して、スキャナ１１７が接続されている。スキャナ１１７は、原稿の画像をスキャンし、当該画像の画像データを出力する。また、システムバス１０２には、プリンタＩ／Ｆ１１８を介して、プリンタ１１９が接続されている。プリンタ１１９は、入力された画像データに基づいて紙などの記録媒体に画像を印刷する。
【００１９】
不揮発メモリ１１５は、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）１２１を記憶する。ＢＩＯＳは、画像形成装置１の各ユニットの初期化を行う。ＣＰＵ１０１は、ユーザーから受信した起動指示に従って、ＢＩＯＳ１２１を実行する。また、不揮発メモリ１１５には、設定領域１２０が設けられている。設定領域１２０には、改ざん検知機能の設定情報（改ざん検知機能が有効か無効かを示す情報）等を記憶する。設定領域１２０に記憶された設定情報等は、改ざんを意図する者によって容易に書き換えることができないように保護されている。
【００２０】
図２は、ＨＤＤ１０３に記憶されているソフトウェアを示した図である。各々のソフトウェアが実行する処理の詳細は後述する。
【００２１】
ＨＤＤ１０３には、複数のソフトウェアを記憶可能である。複数のソフトウェアとは、ＯＳ（オペレーティングシステム）２０１、Ｌｏａｄｅｒ２０２、Ｉｎｉｔｒｄ２０３、及び、Ｆｉｒｍｗａｒｅ２０４が記憶されている。
【００２２】
ＯＳ２０１は、多くのソフトウェアが共通して利用する基本的な機能などを有する。Ｌｏａｄｅｒ２０２は、ＯＳ２０１及びＩｎｉｔｒｄ２０３を起動する機能を有する。また、Ｉｎｉｔｒｄ２０３は、幾つかのファイルを含んでおり、Ｌｏａｄｅｒ２０２がＩｎｉｔｒｄ２０３をＲＡＭ１０４に展開する。Ｉｎｉｔｒｄ２０３は、ＯＳ２０１がファイルシステムを使用できるようになる前にマウントされる初期のファイルシステムである。ＯＳ２０１の起動初期段階において、ＨＤＤ１０３のファイルを解釈できない状態であっても、ＲＡＭ１０４に展開されたＩｎｉｔｒｄ２０３に含まれるファイルを代替で使用可能になる。
【００２３】
Ｆｉｒｍｗａｒｅ２０４は、プリント処理を行うファームウェアやスキャン処理を行うファームウェアを有する。また、ＨＤＤ１０３は、設定ファイル、ユーザーデータ等を記憶する。ＯＳ２０１、Ｌｏａｄｅｒ２０２、及び、Ｉｎｉｔｒｄ２０３の各々から、ＯＳ２０１のハッシュ値、Ｌｏａｄｅｒ２０２のハッシュ値、及び、Ｉｎｉｔｒｄ２０３のハッシュ値と比較される比較値を、所定の算出方法で算出しておく。また、Ｆｉｒｍｗａｒｅ２０４からＦｉｒｍｗａｒｅ２０４のハッシュ値と比較される比較値を、所定の算出方法で算出しておく。そして、ＯＳ２０１の比較値、Ｌｏａｄｅｒ２０２の比較値、及び、Ｉｎｉｔｒｄ２０３の比較値は、不揮発性メモリ１２０の設定領域１２０に記憶する。また、Ｆｉｒｍｗａｒｅ２０４のハッシュ値と比較される比較値は、ＨＤＤ１０３に記憶する。これらの比較値は、後述する改ざん検知で利用される。一般的に、改ざん検知の対象のソフトウェアのデータサイズが大きくなれば、改ざん検知に要する時間が長期化することが知られている。
【００２４】
図３は、起動時に実行する処理を示したフローチャートである。ＢＩＯＳ１２１が実行する処理、Ｌｏａｄｅｒ２０２が実行する処理、及び、Ｉｎｉｔｒｄ２０３が実行する処理の詳細は後述する。本実施形態では、ＢＩＯＳ１２１が、ＯＳ２０１、Ｌｏａｄｅｒ２０２、及び、Ｉｎｉｔｒｄ２０３の改ざん検知を行う。なお、本実施形態ではＢＩＯＳ１２１が、ＯＳ２０１、Ｌｏａｄｅｒ２０２、Ｉｎｉｔｒｄ２０３の改ざん検知を行うが、起動されたソフトが順番に次のソフトウェアの改ざん検知を行っても良い。例えば、ＢＩＯＳ１２１がＬｏａｄｅｒ２０２の改ざん検知を行い、そして、Ｌｏａｄｅｒ２０２がＯＳ２０１及びＩｎｉｔｄ２０３の改ざん検知を行っても良い。また、本実施形態では、ＢＩＯＳ１２１の改ざん検知を行っていないが、当然、ＢＩＯＳ１２１の改ざん検知を行ってもよい。
【００２５】
ＣＰＵ１０１は、不揮発メモリ１１５に記憶されているＢＩＯＳ１２１を読み出し、ＢＩＯＳ１２１を実行する（Ｓ３０１）。ＢＩＯＳ１２１は、Ｌｏａｄｅｒ２０２、ＯＳ２０１、及び、Ｉｎｉｔｒｄ２０３の改ざんを検知する。Ｌｏａｄｅｒ２０２、ＯＳ２０１、及び、Ｉｎｉｔｒｄ２０３の改ざんが無いと判断すると、ＣＰＵ１０１は、ＨＤＤ１０３に記憶されているＬｏａｄｅｒ２０２を読み出し、Ｌｏａｄｅｒ２０２を実行する（Ｓ３０２）。次に、Ｌｏａｄｅｒ２０２は、ＯＳ２０１及びＩｎｉｔｒｄ２０３をＨＤＤ１０３から読み出して、ＲＡＭ１０４に展開する。そして、ＣＰＵ１０１は、ＯＳ２０１及びＩｎｉｔｒｄ２０３を実行する（Ｓ３０３、Ｓ３０４）。ＯＳ２０１は、図１に記載された各ハードウェアの初期化を行う。また、ＯＳ２０１は、Ｉｎｉｔｒｄ２０３を用いて、ＯＳ２０１の起動処理を行う。Ｉｎｉｔｒｄ２０３は、ＲＡＭ１０４上に仮のファイルシステムを提供し、ＯＳ２０１は、ＨＤＤ１０３上のファイルシステムを解釈可能になるまでの間、Ｉｎｉｔｒｄ２０３で代用する。ハードウェアの初期化完了後、ＯＳ２０１は、ＷＤＴ１２２による所定時間のカウントを停止する（Ｓ３０５）。これにより、ＷＤＴ１２２が所定時間のカウントを終了することにより、画像形成装置１が再起動されることを禁止することができる。事前の処理で、ＷＤＴ１２２がすでに解除されていたとしても問題は無い。最後に、ＯＳ２０１は、各種ファームウェア２０４を起動する（Ｓ３０６）。これにより、画像形成装置１が有するプリント機能やスキャン機能が実行可能な状態となる。
【００２６】
図４は、ＢＩＯＳが実行する処理を示したフローチャートである。
【００２７】
ＣＰＵ１０１は、システムバス１０２に接続された各ハードウェアを認識して、各ハードウェアの初期化処理を行う（Ｓ４０１）。そして、ＣＰＵ１０１は、記憶領域１２０から改ざん検知機能の設定情報を読み出す（Ｓ４０２）。そして、ＣＰＵ１０１は、Ｓ４０２で読み出した設定情報に基づいて、改ざん検知機能が有効か否かを判定する（Ｓ４０３）。有効であると判定した場合（Ｓ４０３：Ｙｅｓ）、ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたＯＳ２０１、Ｌｏａｄｅｒ２０２及びＩｎｉｔｒｄ２０３を検証して（Ｓ４０４）、ＯＳ２０１、Ｌｏａｄｅｒ２０２及びＩｎｉｔｒｄ２０３の改ざんを検知する。Ｌｏａｄｅｒ２０２の改ざんを検知する検知方法は、Ｌｏａｄｅｒ２０２のハッシュ値と、記憶領域１２０上に予め記憶された値と、のを比較により行う。また、ＯＳ２０１の改ざんの検知方法は、ＯＳ２０１のハッシュ値と、記憶領域１２０上に予め記憶された値と、のを比較により行う。また、Ｉｎｉｔｒｄ２０３の改ざんの検知方法は、Ｉｎｉｔｒｄ２０３のハッシュ値と、記憶領域１２０上に予め記憶された値と、のを比較により行う。上記したＬｏａｄｅｒ２０２のハッシュ値、ＯＳ２０１のハッシュ値、及び、Ｉｎｉｔｒｄ２０３のハッシュ値は、公知のアルゴリズム（例えば、ＳＨＡ−２５６）を使って算出する。なお、改ざんの検知方法は、上記の方法に限定されない。
【００２８】
そして、ＣＰＵ１０１は、ＯＳ２０１、Ｌｏａｄｅｒ２０２及びＩｎｉｔｒｄ２０３のいずれか１つにおいて改ざんを検知した場合（Ｓ４０５：Ｙｅｓ）、ＣＰＵ１０１は、ＷＤＴ１２２によるカウントを停止する（Ｓ４０６）。そして、ＣＰＵ１０１は、起動不良が発生したことを示すエラー情報をディスプレイ１１１に表示するよう指示する（Ｓ４０７）。ＷＤＴ１２２によるカウントを停止することにより、エラー情報が表示された後に、ＷＤＴ１２２による画像形成装置１の再起動を禁止することができる。Ｓ４０７の後、ＣＰＵ１０１は、以降の処理を実行せず、待機する。本実施形態では、エラー情報がディスプレイ１１１に表示されるようにしたが、不図示のＬＥＤの点灯や明滅であっても良い。また、エラー情報を外部のサーバ等に送信しても良い。
【００２９】
一方で、改ざん検知機能が無効であると判定した場合（Ｓ４０３：Ｎｏ）、ＣＰＵ１０１は、Ｌｏａｄｅｒ２０２をＨＤＤ１０３からＲＡＭ１０４に展開する。そして、ＣＰＵ１０１は、ＲＡＭ１０４に展開されたＬｏａｄｅｒ２０２を実行する（Ｓ４０８）。また、ＯＳ２０１、Ｌｏａｄｅｒ２０２及びＩｎｉｔｒｄ２０３の全てに改ざんが検知されなかった場合（Ｓ４０５：Ｎｏ）、ＣＰＵ１０１は、Ｌｏａｄｅｒ２０２をＨＤＤ１０３からＲＡＭ１０４に展開する。そして、ＣＰＵ１０１は、ＲＡＭ１０４に展開されたＬｏａｄｅｒ２０２を実行する（Ｓ４０８）。
【００３０】
図５は、Ｌｏａｄｅｒが実行する処理を示したフローチャートである。
【００３１】
ＣＰＵ１０１は、記憶領域１２０から改ざん検知機能の設定情報を読み出す（Ｓ５０１）。そして、ＣＰＵ１０１は、読み出した設定情報に基づいて、改ざん検知機能が有効か否かを判定する（Ｓ５０２）。有効であると判定した場合（Ｓ５０２：Ｙｅｓ）、ＣＰＵ１０１は、ＷＤＴ１２２によるカウントを停止する（Ｓ５０３）。これにより、Ｉｎｉｔｒｄ２０３やＯＳ２０１の改ざんの検知中に、ＷＤＴ１２２が画像形成装置１を再起動するのを禁止することができる。最後に、ＣＰＵ１０１は、ＯＳ２０１及びＩｎｉｔｒｄ２０３をＲＡＭ１０４に展開し、ＲＡＭ１０４に展開されたＯＳ２０１及びＩｎｉｔｒｄ２０３を実行する（Ｓ５０４）。
【００３２】
図６は、Ｉｎｉｔｒｄが実行する処理を示したフローチャートである。
【００３３】
ＣＰＵ１０１は、記憶領域１２０から改ざん検知機能の設定情報を読み出す（Ｓ６０１）。そして、ＣＰＵ１０１は、読み出した設定情報に基づいて、改ざん検知機能が有効か否かを判定する（Ｓ６０２）。有効であると判定した場合（Ｓ６０２：Ｙｅｓ）、ＣＰＵ１０１は、Ｆｉｒｍｗａｒｅ２０４を検証して（Ｓ６０３）、Ｆｉｒｍｗａｒｅ２０４の改ざんを検知する。Ｆｉｒｍｗａｒｅ２０４の改ざんの検知方法は、上記したＬｏａｄｅｒ２０２等の検知方法と同様であるので、その説明を省略する。
【００３４】
一般的に、図２に記載されるソフトウェアの中では、Ｆｉｒｍｗａｒｅ２０４のデータサイズが最も大きいため、Ｆｉｒｍｗａｒｅ２０４の改ざんを検知するのに要する時間が相対的に長くなる。検知方法によっては数分オーダーの時間を要する場合があるが、これはＷＤＴ１２２の発動する時間オーダー（秒オーダー）よりも長い。
【００３５】
Ｆｉｒｍｗａｒｅ２０４の改ざんを検知した場合（Ｓ６０４：Ｙｅｓ）、ＣＰＵ１０１は、起動不良が発生したことを示すエラー情報をディスプレイ１１１に表示するよう指示する（Ｓ６０５）。なお、ＷＤＴ１２２によるカウントは、既に図５のＳ５０３で停止済みであるため、本図のフローではＷＤＴ１２２によるカウントの停止は行わない。
【００３６】
一方で、Ｆｉｒｍｗａｒｅ２０４の改ざんを検知しなかった場合（Ｓ６０４：Ｎｏ）や、改ざん検知機能が無効である場合（Ｓ６０２：Ｎｏ）、ＣＰＵ１０１は、ファイルシステムの初期化を行う（Ｓ６０６）。ＯＳ２０１がＨＤＤ１０３上のファイルシステムを解釈できるようになった時点で、ＣＰＵ１０１は、ＨＤＤ１０３の領域をマウントし、Ｆｉｒｍｗａｒｅ２０４をファイルとして認識した上で、適切な起動順序で実行する。
【００３７】
図７は、ＷＤＴが実行する処理を示したフローチャートである。本フローチャートは、画像形成装置１に電力が供給された時点で開始され、図３のソフトウェアの実行フローと並行して実行される。ＷＤＴ１２２は、図３のフローでソフトウェアがハングアップした場合に再起動をかけることで起動処理をやり直すために使用されるものである。
【００３８】
まず、ＷＤＴ１２２は、カウント値を初期値（例えば、９０秒）に設定する（Ｓ７０１）。この初期値は、あらかじめ固定された値でも良いし、ＣＰＵ１０１から指示された値や、不揮発領域に記憶された設定値を設定しても良い。続いて、ＷＤＴ１２２は、カウントの停止がされたか否かを確認する（Ｓ７０２）。停止された場合（Ｓ７０２：Ｙｅｓ）、処理を終了する。一方で、停止されていない場合（Ｓ７０２：Ｎｏ）、ＷＤＴ１２２は、残カウント値を読み、０か否か確認する。（Ｓ７０３）。カウント値が１以上である場合（Ｓ７０３：Ｎｏ）は、ＷＤＴ１２２は、カウント値を減らす（Ｓ７０４）。そして、ＷＤＴ１２２は、所定時間待機し（Ｓ７０５）、再度Ｓ７０２からのフローを繰り返す。所定時間は、例えば、１秒とする。設定された初期値（例えば、９０秒）が経過した場合に、ＷＤＴ１２２は、リセット信号を出力する。画像形成装置１は、リセット信号に従って、再起動する。
【００３９】
本実施形態では、ＷＤＴ１２２が初期値（例えば、９０秒）をカウントしたときに、画像形成装置１が再起動するが、ＷＤＴ１２２が初期値をカウントしたときに、画像形成装置１をシャットダウンしても良い。
【００４０】
＜第２実施形態＞
第１実施形態では、Ｉｎｉｔｒｄ２０３の起動後に、ＷＤＴ１２２のカウントを停止する例について説明した。この第２実施形態では、ＢＩＯＳ１２１の起動後に、ＷＤＴ１２２によるカウントを停止する。第２実施形態と第１実施形態とでは、ＷＤＴ１２２によるカウントを停止するタイミングが異なる。
【００４１】
図８は、起動時に実行する処理を示したフローチャートである。本実施形態でも、ＢＩＯＳ１２１が、ＯＳ２０１、Ｌｏａｄｅｒ２０２、及び、Ｉｎｉｔｒｄ２０３の改ざん検知を行う。
【００４２】
ＣＰＵ１０１は、不揮発メモリ１１５に記憶されているＢＩＯＳ１２１を読み出し、ＢＩＯＳ１２１を実行する（Ｓ８０１）。ＢＩＯＳ１２１は、Ｌｏａｄｅｒ２０２、ＯＳ２０１、及び、Ｉｎｉｔｒｄ２０３の改ざんを検知する。Ｌｏａｄｅｒ２０２、ＯＳ２０１、及び、Ｉｎｉｔｒｄ２０３の改ざんが無いと判断すると、ＷＤＴ１２２によるカウントを停止する（Ｓ８０２）。
【００４３】
続いて、ＣＰＵ１０１は、ＨＤＤ１０３に記憶されているＬｏａｄｅｒ２０２を読み出し、Ｌｏａｄｅｒ２０２を実行する（Ｓ８０２）。つまり、本実施形態では、Ｌｏａｄｅｒ２０２を実行する前に、ＷＤＴ１２２によるカウントを停止する（Ｓ８０２）。Ｓ８０３、Ｓ８０４、Ｓ８０５及びＳ８０６は、図３のＳ３０２、Ｓ３０３、Ｓ３０４及びＳ３０６と同様であるので、その説明を省略する。
【００４４】
＜第３実施形態＞
第１実施形態では、不揮発性メモリ１１５に記憶された設定情報に基づいて、ＷＤＴ１２２によるカウントを停止した。第３実施形態では、ＷＤＴ１２２が有する所定の設定値に基づいて、ＷＤＴ１２２によるカウントを停止する。第１実施形態と第３実施形態とでは、ＷＤＴ１２２の内部構成が異なっている。
【００４５】
図９は、第３実施形態に係るＷＤＴの構成を示すブロック図である。ＷＤＴ１２２は、不揮発領域９０１を備える。不揮発性領域９０１は、ＣＰＵ１０１の指示に従って、設定情報を記憶する。また、不揮発性領域９０１は、上記した初期値や、ＷＤＴ１２２によるカウントが停止されたことを示す情報を記憶することができる。
【００４６】
図１０は、ＷＤＴの不揮発領域に改ざん検知機能の有効／無効を示す情報を記憶するフローチャートである。改ざん検知機能の設定を変更したときに、不揮発領域９０１に所定の設定値を記憶する。ディスプレイ１１１が備えているタッチパネルやキー操作によって、改ざん検知機能の設定が変更されたときに、本フローが実行される。
【００４７】
ＣＰＵ１０１は、改ざん検知機能の設定の変更が、改ざん検知機能を有効にする変更であると判定した場合（Ｓ１００１：Ｙｅｓ）、ＣＰＵ１０１は、記憶領域１２０に改ざん検知機能が有効であることを示す設定値を記憶する（Ｓ１００２）。更に、ＣＰＵ１０１は、不揮発領域９０１に、改ざん検知機能が有効であることを示す設定値を書き込む（Ｓ１００３）。不揮発領域９０１に改ざん検知機能が有効であることを示す設定値が記憶されている場合、ＷＤＴ１２２によるカウントは停止される。なお、不揮発領域９０１に改ざん検知機能が有効であることを示す設定値が記憶されている場合、ＷＤＴ１２２によるカウントを開始しないようにしても良い。これにより、改ざん検知機能によって起動時間が長期化しても、画像形成装置１が再起動するのを禁止することができる。
【００４８】
一方で、ＣＰＵ１０１は、改ざん検知機能の設定の変更が、改ざん検知機能を無効にする変更であると判定した場合（Ｓ１００１：Ｎｏ）、ＣＰＵ１０１は、記憶領域１２０に改ざん検知機能が無効であることを示す設定値を記憶する（Ｓ１００４）。更に、ＣＰＵ１０１は、不揮発領域９０１に改ざん検知機能が無効であることを示す設定値を書き込む（Ｓ１００５）。
【００４９】
（その他の実施例）
上記した実施形態では、改ざん検知機能の有効／無効を示す設定値に基づいて、ＷＤＴ１２２によるカウントを停止したが、改ざん検知機能の有効／無効を示す設定値に基づいて、ＷＤＴ１２２に設定する初期値を変更しても良い。例えば、改ざん検知機能の無効を示す設定値が記憶されていれば、ＷＤＴ１２２に９０秒を設定し、改ざん検知機能の有効を示す設定値が記憶されていれば、ＷＤＴ１２２に９０秒より長い２７０秒を設定する。
【００５０】
上記した実施形態では、改ざん検知機能の有効／無効を示す設定値に基づいて、ＷＤＴ１２２によるカウントを停止する例について説明したが、本発明はこれだけに限定されない。例えば、本発明は、改ざん検知機能の有効／無効を示す設定値に基づいて、ＷＤＴ１２２がカウントする初期値を改ざん検知による起動時間を考慮して長くしても良い。例えば、改ざん検知機能が無効を示す設定値である場合に、例えば９０秒を初期値とし、改ざん検知機能が有効を示す設定値である場合に、例えば２７０秒を初期値とする。これにより、改ざん検知機能による起動時間が長期化しても、画像形成装置１が再起動するのを禁止することができる。さらに、ソフトのハングアップなどで改ざん検知が途中で停止したとしても、長めに設定した時間で画像形成装置１を再起動することができる。
【００５１】
また、上記した実施形態では、改ざん検知機能の有効／無効を示す設定値に基づいて、ＷＤＴ１２２によるカウントを停止する例について説明したが、本発明はこれだけに限定されない。例えば、本発明は、改ざん検知機能の有効／無効を示す設定値に基づいて、ＷＤＴ１２２がカウントしたカウント値をリセットしても良い。これにより、ＷＤＴ１２２がカウントしたカウント値がリセットされるので、例えば、既にＷＤＴ１２２が３０秒をカウントしていたとしても、その３０秒がリセットされる。これにより、画像形成装置１が再起動されるまでの時間が３０秒だけ延長される。
【００５２】
また、上記した実施形態では、ＢＩＯＳ１２１がＬｏａｄｅｒ２０２、ＯＳ２０２及びＩｎｉｔｒｄ２０３の改ざんを検知する前に、ＷＤＴ１２２によるカウントを停止しても良い。
【００５３】
また、上記した実施形態では、改ざん検知機能の有効／無効を示す設定値に基づいて、ＷＤＴ１２２によるカウントを停止する例について説明した。が、本発明は、改ざん検知機能の有効／無効を示す設定値に基づいて、ＷＤＴ１２２から出力されるリセット信号をマスクする回路を設けても良い。
【００５４】
また、上記した実施形態では、ＯＳ２０１、Ｌｏａｄｅｒ２０２、Ｉｎｉｔｒｄ２０３及びＦｉｒｍｗａｒｅ２０４が、ＨＤＤ２０３に記憶されている。が、ＯＳ２０１、Ｌｏａｄｅｒ２０２及びＩｎｉｔｒｄ２０３がＦｌａｓｈに記憶され、Ｆｉｒｍｗａｒｅ２０４がＨＤＤに記憶されていても良い。
【００５５】
上記した実施形態では、本発明の情報処理装置の一例として画像形成装置１について説明したが、本発明の情報処理装置は、画像形成装置でなくても構わない。例えば、本発明の画像形成装置は、パーソナルコンピュータ、タブレット、スマートフォン、ゲーム機、遊技機、空気調和機、ＡＴＭであっても良い。
【００５６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給するよう構成することによっても達成される。この場合、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することにより、上記機能が実現されることとなる。なお、この場合、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００５７】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００５８】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００５９】
さらに、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、前述した実施形態の機能が実現される場合も含まれる。つまり、プログラムコードがメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって実現される場合も含まれる。
【符号の説明】
【００６０】
１  画像形成装置
１０１  ＣＰＵ
１０３  ＨＤＤ
１１５  不揮発性メモリ
１２１  ＢＩＯＳ
１２０  設定領域
１２２  ＷＤＴ
２０１  ＯＳ
２０２  Ｌｏａｄｅｒ
２０３  Ｉｎｉｔｒｄ
【図１】
2020003957.tif 000002
【図２】
2020003957.tif 000003
【図３】
2020003957.tif 000004
【図４】
2020003957.tif 000005
【図５】
2020003957.tif 000006
【図６】
2020003957.tif 000007
【図７】
2020003957.tif 000008
【図８】
2020003957.tif 000009
【図９】
2020003957.tif 000010
【図１０】
2020003957.tif 000011