(57)【要約】【課題】コストを抑えて、ファームウェアの修復機能を提供することを目的とする。【解決手段】画像を処理する画像処理装置であって、複数のファームウェアのうち、起動対象のファームウェアに含まれる共通部の正当性を検証する第１の検証手段と、第１の検証手段により起動対象のファームウェアに含まれる共通部が正当でないと検証された場合、複数のファームウェアのうち、起動対象でないファームウェアに含まれる共通部を用いて、起動対象のファームウェアに含まれる共通部を修復する修復手段と、を有する。【選択図】図３
2020049744.tif 000002
【特許請求の範囲】
【請求項１】
画像を処理する画像処理装置であって、
複数のファームウェアのうち、起動対象のファームウェアに含まれる共通部の正当性を検証する第１の検証手段と、
前記第１の検証手段により前記起動対象のファームウェアに含まれる共通部が正当でないと検証された場合、前記複数のファームウェアのうち、起動対象でないファームウェアに含まれる共通部を用いて、前記起動対象のファームウェアに含まれる共通部を修復する修復手段と、
を有する画像処理装置。
【請求項２】
前記複数のファームウェアのうちの１つを用いて起動する起動手段と、
前記複数のファームウェアのうち、起動に用いられたファームウェアと異なるファームウェアを更新する更新手段と、
を更に有する請求項１記載の画像処理装置。
【請求項３】
前記第１の検証手段により前記起動対象のファームウェアに含まれる共通部が正当でないと検証された場合、前記起動対象でないファームウェアに含まれる共通部の正当性を検証する第２の検証手段を更に有し、
前記第２の検証手段により前記起動対象でないファームウェアに含まれる共通部が正当であると検証された場合、前記起動対象でないファームウェアに含まれる共通部を用いて、前記起動対象のファームウェアに含まれる共通部を修復する請求項１又は２記載の画像処理装置。
【請求項４】
前記修復手段は、前記起動対象でないファームウェアに含まれる共通部を前記起動対象のファームウェアに含まれる共通部に上書きすることで前記起動対象のファームウェアに含まれる共通部を修復する請求項１乃至３何れか１項記載の画像処理装置。
【請求項５】
前記ファームウェアに含まれる共通部はオペレーティングシステムである請求項１乃至４何れか１項記載の画像処理装置。
【請求項６】
画像を処理する画像処理装置が実行する情報処理方法であって、
複数のファームウェアのうち、起動対象のファームウェアに含まれる共通部の正当性を検証する第１の検証工程と、
前記第１の検証工程により前記起動対象のファームウェアに含まれる共通部が正当でないと検証された場合、前記複数のファームウェアのうち、起動対象でないファームウェアに含まれる共通部を用いて、前記起動対象のファームウェアに含まれる共通部を修復する修復工程と、
を含む情報処理方法。
【請求項７】
コンピュータを、請求項１乃至５何れか１項記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、画像形成装置を含むファームウェアを内蔵した装置では攻撃者からファームウェア改ざんの攻撃を受けるリスクが高まっている。このため近年の画像形成装置では起動時にファームウェアの正当性を検証し、ファームウェアが正当でないと判断された場合には画像形成装置を動作させないようにする機能を備えたものが出てきている。こうした画像形成装置では修理等によりファームウェアが正常な状態に復旧するまで画像形成装置を使用することはできなくなる。
しかし、画像形成装置のユーザにとって、原因がファームウェア改ざんか否かに関わらず画像形成装置が使用できないダウンタイムが発生することは損失である。装置のダウンタイムを短くしユーザの不利益を少なくするためには、正常でなくなったファームウェアを修復して回復させる機能を画像形成装置に備えることが望ましい。
従来、ファームウェア修復技術としてはファームウェアアップデート途中で発生した異状により、ファームウェアが正常に更新できていない状態から復旧させる技術があった。
特許文献１は装置に通常用ファームウェアとアップデート用ファームとの２つのファームウェアを備えておく技術である。この技術では、まずアップデート用ファームウェアを起動して通常用ファームウェアを更新し、次に通常用ファームウェアを起動してアップデート用ファームウェアを更新するという手順でファームウェアアップデートを実行する。これによりファームウェアアップデート動作中に異常が発生しても、異常発生時に更新対象でなかった方のファームウェアは正常であるため、正常な方のファームウェアを実行して復旧動作が実行できるようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−５３８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ファームウェアの改ざんは、ファームウェアアップデート動作中に行われるとは限らないため、ファームウェアアップデート時の異常発生から復旧させる技術はファームウェア改ざんに対して必ずしも有用でない。
ファームウェア改ざんによるダウンタイムを最少とするには、装置起動時に改ざんが検知された場合に自動的にファームウェアを修復し、ユーザの特別な操作なしに画像形成装置を使用可能な状態へ復旧するのが望ましい。
このとき、ファームウェア復旧のためには改ざんされていない正常な状態のファームウェアが必要となる。短時間で復旧するためには復旧用の正常な状態のファームウェアを予め装置内に保管しておく必要がある。
しかし、近年の高機能な画像形成装置ではファームウェアのサイズが大きくなっており、正常な状態のファームウェアを保管しておくためには大容量の不揮発記憶媒体が必要となり、製品のコストを増大させてしまう。
従来技術を用いた画像形成装置でも、コスト制約のため通常用ファームウェアとアップデート用ファームウェアとは機能の異なる別々のファームウェアとするのが一般的である。通常用ファームウェアには画像形成装置の全ての機能を提供するプログラムとファームウェアのアップデート及び修復に関するプログラムとを含む。しかしアップデート用ファームウェアにはファームウェアのアップデート及び修復に関する最小限の機能のみを含む構成とし、ファームウェアサイズを節減する。このようにしてファームウェアを格納する記憶媒体のコストを抑えるのが一般的である。
一方で、画像形成装置ファームウェアにはハードウェアの制御等を行う特別なプログラムであるＯＳが含まれている。ＯＳは画像形成装置にどんな動作でもさせることができる特別なプログラムであり、ＯＳが改ざんされてしまうと画像形成装置は攻撃者によって乗っ取られてしまう。このような特性のあるプログラムであるため、画像形成装置のファームウェアの中に含まれるＯＳについては攻撃者からのファームウェア改ざんの攻撃対象となりやすい。
このようなファームウェアの中でも特に攻撃対象となりやすい部分については、装置のダウンタイム短縮の観点からファームウェア修復手段の必要性が大きいといえる。
【課題を解決するための手段】
【０００５】
本発明は、画像を処理する画像処理装置であって、複数のファームウェアのうち、起動対象のファームウェアに含まれる共通部の正当性を検証する第１の検証手段と、前記第１の検証手段により前記起動対象のファームウェアに含まれる共通部が正当でないと検証された場合、前記複数のファームウェアのうち、起動対象でないファームウェアに含まれる共通部を用いて、前記起動対象のファームウェアに含まれる共通部を修復する修復手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、コストを抑えて、ファームウェアの修復機能を提供することができる。
【図面の簡単な説明】
【０００７】
【図１】画像形成装置のハードウェア構成の一例を示す図である。
【図２】画像形成装置のファームウェアの構成を示した図である。
【図３】実施形態１の情報処理の一例を示すフローチャートである。
【図４】画面表示の例を示す図である。
【図５】修復に係る情報処理の一例を示すフローチャートである。
【図６】ファームウェア更新に係る情報処理の一例を示すフローチャートである。
【図７】アップデートイメージの一例を示す図である。
【図８】実施形態２の情報処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
図１は、画像形成装置１のハードウェア構成の一例を示す図である。画像形成装置１は、画像を処理する画像処理装置の一例である。
画像形成装置１は以下のハードウェアを含む。
スキャナ装置２は、原稿から光学的に画像を読み取りデジタル画像に変換する。プリンタ装置４は、デジタル画像を紙デバイスに出力する。操作部５は、画像形成装置１の操作を行なうためのものである。ハードディスク装置６は、デジタル画像及び様々な一時データを記憶する。コントローラ３は、これらのハードウェアと接続され、各モジュールに指示を出すことにより画像形成装置上でジョブを実行することができる。
画像形成装置１はＬＡＮ７経由で外部のコンピュータからデジタル画像の入出力、ジョブの発行及び機器の指示等も行なうことができる。
操作部５は、ユーザが画像形成装置に画像複写等の動作を指示したり、画像形成装置の各種情報をユーザに提示したりするための、操作ボタン及び液晶画面等の表示パネルを備える。
【００１０】
コントローラ３は、いわゆる汎用的なＣＰＵシステムである。ＣＰＵ１０１は、ボード全体を制御する。メモリ１０３は、ＣＰＵ１０１がメインメモリとして使用する。ＳＲＡＭ１０４は、不揮発メモリである。ブートＲＯＭ１０５は、書き換え不可能なリードオンリーメモリであり、ＢＩＯＳと呼ばれる初期プログラムが格納されている。これらが内部バス１０２を介して接続されている。
内部バス１０２には、これに加えてストレージ装置を制御するディスクインターフェース（Ｉ／Ｆ）１０６が接続されている。ＣＰＵ１０１は、ディスクＩ／Ｆ１０６を通してＳＳＤ１０７及びハードディスク装置６を制御できる。ＳＳＤ１０７には画像形成装置１を動作させるためにＣＰＵ１０１が実行するファームウェアが格納されている。また、コントローラ３はファームウェアの正当性を検証する機能を持つセキュリティチップ１０８を含む。
また、コントローラ３には、操作部インターフェース（Ｉ／Ｆ）１０９を介して操作部５が接続され、ネットワークインターフェース１１０を介してＬＡＮ７が接続される。また、コントローラ３には、スキャナインターフェース（Ｉ／Ｆ）１１１を介してスキャナ装置２が接続され、プリンタインターフェース（Ｉ／Ｆ）１１２を介してプリンタ装置４が接続される。
【００１１】
図２は、ＳＳＤ１０７に格納されている画像形成装置１のファームウェアの構成を示した図である。
ＳＳＤ１０７にはブートローダー２０１、通常用ファームウェア２１０、アップデート用ファームウェア２２０の３種類の実行可能プログラムが格納されている。通常用ファームウェア２１０及びアップデート用ファームウェア２２０は、複数のファームウェアの一例である。以下の実施形態では、２つのファームウェアを例に説明を行うが、２つ以上のファームウェアがＳＳＤ１０７に格納されていてもよい。
ブートローダー２０１は画像形成装置１の起動時にＢＩＯＳと呼ばれる初期プログラムによって最初にロードされてＣＰＵ１０１によって実行されるプログラムである。
画像形成装置１は、通常動作時に実行するファームウェアとは別に、ファームウェアアップデートの際に実行するもう一つのファームウェアを備えている。通常用ファームウェア２１０は通常動作時にＣＰＵ１０１によって実行されるファームウェアである。アップデート用ファームウェア２２０はファームウェアアップデートの際にＣＰＵ１０１によって実行されるファームウェアである。
通常用ファームウェア２１０にはＯＳ２１１と通常用アプリケーションプログラム２１２とが含まれる。ＯＳ２１１はコントローラ３を構成するハードウェアの動作制御等を行うオペレーティングシステムである。通常用アプリケーションプログラム２１２は通常動作時に画像形成装置１を制御してコピー及びプリント等の様々なジョブの実行を実現するための実行可能プログラムである。また、通常用アプリケーションプログラム２１２はファームウェアアップデートの際にアップデート用ファームウェア２２０を更新する機能も含んでいる。ＯＳ２１１は、通常用ファームウェア２１０に含まれる共通部の一例である。
【００１２】
アップデート用ファームウェア２２０にはＯＳ２２１とアップデート用アプリケーションプログラム２２２とが含まれる。ＯＳ２２１はオペレーティングシステムであり、ＳＳＤ１０７内の異なる領域に格納されているが、ＯＳ２１１と同一の実行可能プログラムである。アップデート用アプリケーションプログラム２２２はファームウェアアップデートの際に通常用ファームウェア２１０を更新する機能を持つ実行可能プログラムである。アップデート用アプリケーションプログラム２２２は通常用アプリケーションプログラム２１２よりサイズが小さく、これによりＳＳＤ１０７の記憶容量を節減できるようになっている。ＯＳ２２１は、アップデート用ファームウェア２２０に含まれる共通部の一例である。
また、これらの実行可能プログラムには正当性を検証するための電子署名が付加されている。セキュリティチップ１０８は電子証明を用いて実行可能プログラムの正当性を検証することができる。電子署名２０２はブートローダー２０１を検証するための電子署名である。電子署名２１３はＯＳ２１１を検証するための電子署名である。電子署名２１４は通常用アプリケーションプログラム２１２を検証するための電子署名である。電子署名２２３はＯＳ２２１を検証するための電子署名である。電子署名２２４はアップデート用アプリケーションプログラム２２２を検証するための電子署名である。
【００１３】
図３は、実施形態１の画像形成装置１の起動と、それに関連するファームウェアアップデートとに関する情報処理の一例を示すフローチャートである。ユーザが画像形成装置１の電源をオンした際に、ＣＰＵ１０１がこのフローチャートの処理を開始する。
まず、Ｓ３０１において、ＣＰＵ１０１は、ブートＲＯＭ１０５に格納された初期プログラムであるＢＩＯＳの実行を開始する。以降のＳ３０２〜Ｓ３０５の処理はＣＰＵ１０１がＢＩＯＳを実行することで実現される。
Ｓ３０２において、ＢＩＯＳを実行することによってＣＰＵ１０１は、ＳＳＤ１０７に格納されたブートローダー２０１をメモリ１０３にロードし、正当性を検証する。これは電子署名２０２をセキュリティチップ１０８で検証することで実現される。
Ｓ３０３において、ＣＰＵ１０１は、ブートローダー２０１の検証結果に基づいて検証に成功したか否かを判定する。ＣＰＵ１０１は、検証が成功し正当であった場合はＳ３０５へ、正当でなかった場合はＳ３０４へ進む。
Ｓ３０４において、つまりブートローダー２０１の検証結果が正当でなかった場合、ＣＰＵ１０１は、操作部５の表示パネルにエラーコードを表示して画像形成装置１の起動を中断する。図４（ａ）はブートローダー２０１の検証に成功しなかった場合の画面表示の一例を示す図である。
【００１４】
一方、Ｓ３０５において、つまりブートローダー２０１の検証結果が正当であった場合、ＣＰＵ１０１は、メモリ１０３にロードされたブートローダー２０１の実行を開始する。以降のＳ３０６〜Ｓ３１０の処理、又はＳ３０６〜Ｓ３２０の処理はＣＰＵ１０１がブートローダー２０１を実行することで実現される。
Ｓ３０６において、ＣＰＵ１０１は、ファームウェアアップデートモードでの起動が指示されているかどうかを判定する。画像形成装置１では、ユーザが操作部５の操作スイッチを操作することによりファームウェアアップデートモードでの起動を指示することができる。ファームウェアアップデートモードでの起動が指示されている場合には、ＣＰＵ１０１は、Ｓ３０７へ進む。指示されていない場合には、ＣＰＵ１０１は、Ｓ３１７へ進む。Ｓ３０７に進んだ場合、起動対象のファームウェアは、アップデート用ファームウェア２２０となる。また、Ｓ３１７に進んだ場合、起動対象のファームウェアは、通常用ファームウェア２１０となる。
Ｓ３０７において、つまりファームウェアアップデートモードでの起動が指示されていた場合、ＣＰＵ１０１は、ＳＳＤ１０７からメモリ１０３にＯＳ２２１をロードし、正当性を検証する。これは電子署名２２３をセキュリティチップ１０８で検証することで実現される。
Ｓ３０８において、ＣＰＵ１０１は、検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、ＯＳ２２１が正当であった場合には、ＣＰＵ１０１は、Ｓ３１０へ進む。正当でなかった場合には、ＣＰＵ１０１は、Ｓ３０９へ進む。
Ｓ３０９において、つまりＯＳ２２１が正当でなかった場合、ＣＰＵ１０１は、ＯＳ２２１の修復を実行する。そして修復が完了すると、ＣＰＵ１０１は、Ｓ３１０へ進む。
【００１５】
ＯＳ２２１修復の詳細については、図５（ｂ）のフローチャートを用いて説明する。
Ｓ４１１において、ＣＰＵ１０１は、ＯＳ２１１の正当性を検証する。これは電子署名２１３をセキュリティチップ１０８で検証することで実現される。画像形成装置１では、ＯＳ２２１の修復にＯＳ２１１を利用するため、事前にＯＳ２１１の正当性を検証しておく必要がある。
Ｓ４１２において、ＣＰＵ１０１は、ＯＳ２１１の検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、ＯＳ２１１が正当だった場合は、ＣＰＵ１０１は、Ｓ４１４へ進む。そうでなかった場合は、ＣＰＵ１０１は、Ｓ４１３へ進む。
Ｓ４１３において、つまりＯＳ２１１が正当でなかった場合、ＣＰＵ１０１は、アップデート用ファームウェア２２０が正当でないことを示すエラーコードを操作部５の表示パネルに表示し、起動を中断する。これはＯＳ２１１が正当でない場合はＯＳ２２１を修復することができないためである。図４（ｃ）はアップデート用ファームウェア２２０が正当でないことを示す画面表示の一例を示す図である。
一方、ＯＳ２１１が正当だった場合、Ｓ４１４において、ＣＰＵ１０１は、ＯＳ２１１の内容をＳＳＤ１０７内のＯＳ２２１に上書きする。これによりＯＳ２２１が修復される。
以上でＣＰＵ１０１はＯＳ２２１修復のフローチャートの処理を終えて元の処理に戻る。
【００１６】
以降再び図３のフローチャートを用いてＣＰＵ１０１の動作を説明する。
Ｓ３１０において、ＣＰＵ１０１は、ＯＳ２２１の実行を開始し、Ｓ３１１へ進む。以降のＳ３１１〜Ｓ３１４の処理はＣＰＵ１０１がＯＳ２２１を実行することによって実現される。
Ｓ３１１において、ＣＰＵ１０１は、アップデート用アプリケーションプログラム２２２をメモリ１０３にロードし、正当性を検証する。これは電子署名２２４をセキュリティチップ１０８で検証することで実現される。
Ｓ３１２において、ＣＰＵ１０１は、検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、アップデート用アプリケーションプログラム２２２が正当であった場合には、ＣＰＵ１０１は、Ｓ３１４へ進む。正当でなかった場合には、ＣＰＵ１０１は、Ｓ３１３へ進む。
Ｓ３１３において、つまりアップデート用アプリケーションプログラム２２２が正当でなかった場合、ＣＰＵ１０１は、アップデート用ファームウェア２２０が正当でないことを示すエラーコードを操作部５の表示パネルに表示し、起動を中断する。図４（ｃ）は、アップデート用ファームウェア２２０が正当でないことを示す画面表示の一例を示す図である。
一方、アップデート用アプリケーションプログラム２２２が正当であった場合には、Ｓ３１４において、ＣＰＵ１０１は、アップデート用アプリケーションプログラム２２２の実行を開始する。以降のＳ３１５〜Ｓ３１６の処理はＣＰＵ１０１がアップデート用アプリケーションプログラム２２２を実行することによって実現される。
Ｓ３１５において、ＣＰＵ１０１は、通常用ファームウェア２１０の更新を実行する。
【００１７】
通常用ファームウェア更新の詳細については図６（ａ）のフローチャートを用いて説明する。
Ｓ５０１において、ＣＰＵ１０１は、ネットワークインターフェース１１０を介してＬＡＮ７から画像形成装置１の新しいファームウェアを含んだアップデートイメージを受信する。ＣＰＵ１０１は取得したアップデートイメージを一時的なデータ保管場所であるハードディスク装置６に格納する。
図７はアップデートイメージの構成を示した図である。アップデートイメージにはＣＰＵ１０１で実行可能なプログラムであるＯＳ６０１、通常用アプリケーションプログラム６０２、アップデート用アプリケーションプログラム６０３が含まれる。また、これらの実行可能プログラムには正当性を検証するための電子署名が付加されている。ＯＳ６０１には電子署名６０４、通常用アプリケーションプログラム６０２には電子署名６０５、アップデート用アプリケーションプログラム６０３には電子署名６０６が付加されている。これらの電子署名をセキュリティチップ１０８で検証することにより正当性を検証可能である。
【００１８】
Ｓ５０２において、ＣＰＵ１０１は、取得したアップデートイメージの正当性を検証する。これは電子署名６０４、電子署名６０５、電子署名６０６をセキュリティチップ１０８で検証することによって実現される。全ての電子署名が正当であると確認された場合のみ検証成功となる。
Ｓ５０３において、ＣＰＵ１０１は、アップデートイメージの正当性検証の結果に基づいて検証に成功したか否かを判定する。検証成功し、正当と判定した場合は、ＣＰＵ１０１は、Ｓ５０５へ進む。そうでない場合は、ＣＰＵ１０１は、Ｓ５０４へ進む。
Ｓ５０４において、つまりアップデートイメージが正当でないと判定した場合、ＣＰＵ１０１は、ファームウェアアップデートが実行できないことを示すエラーコードを操作部５の表示パネルに表示する。図４（ｄ）は、ファームウェアアップデートが実行できないことを示す画面表示の一例を示す図である。エラーコードを表示した後、ＣＰＵ１０１は、通常用ファームウェア更新のフローチャートの処理を終了する。
一方、アップデートイメージが正当であると判定した場合、Ｓ５０５において、ＣＰＵ１０１は、アップデートイメージに含まれるＯＳ６０１を用いてＳＳＤ１０７上のＯＳ２１１を更新する。
Ｓ５０６において、ＣＰＵ１０１は、通常用アプリケーションプログラム６０２を用いてＳＳＤ１０７上の通常用アプリケーションプログラム２１２を更新する。
Ｓ５０７において、ＣＰＵ１０１は、アップデート用ファームウェア２２０の更新を行う必要があることを示すアップデート実行フラグをＳＲＡＭ１０４にセットし、通常用ファームウェア更新のフローチャートの処理を終了する。
以降再び図３のフローチャートを用いてＣＰＵ１０１の動作を説明する。
Ｓ３１６において、ＣＰＵ１０１は、画像形成装置１を再起動させる。これによりＣＰＵ１０１は、Ｓ３０１へ戻り、図３のフローチャートを再び最初から実行することになる。
【００１９】
これ以降はＳ３０６においてファームウェアアップデートモードでの起動が指示されていなかった場合の処理について説明する。
Ｓ３１７において、ＣＰＵ１０１は、ＳＳＤ１０７からメモリ１０３にＯＳ２１１をロードし、正当性を検証する。これは電子署名２１３をセキュリティチップ１０８で検証することで実現される。
Ｓ３１８において、ＣＰＵ１０１は、検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、ＯＳ２１１が正当であった場合には、ＣＰＵ１０１は、Ｓ３２０へ進む。正当でなかった場合には、ＣＰＵ１０１は、Ｓ３１９へ進む。
Ｓ３１９において、つまりＯＳ２１１が正当でなかった場合、ＣＰＵ１０１は、ＯＳ２１１の修復を実行する。そして修復が完了すると、ＣＰＵ１０１は、Ｓ３２０へ進む。
【００２０】
ＯＳ２１１修復の詳細については、図５（ａ）のフローチャートを用いて説明する。
Ｓ４０１において、ＣＰＵ１０１は、ＯＳ２２１の正当性を検証する。これは電子署名２２３をセキュリティチップ１０８で検証することで実現される。画像形成装置１では、ＯＳ２１１の修復にＯＳ２２１を利用するため、事前にＯＳ２２１の正当性を検証しておく必要がある。
Ｓ４０２において、ＣＰＵ１０１は、ＯＳ２２１の検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、ＯＳ２２１が正当だった場合は、ＣＰＵ１０１は、Ｓ４０４へ進む。そうでなかった場合は、ＣＰＵ１０１は、Ｓ４０３へ進む。
Ｓ４０３において、つまりＯＳ２２１が正当でなかった場合、ＣＰＵ１０１は、通常用ファームウェア２１０が正当でないことを示すエラーコードを操作部５の表示パネルに表示し、起動を中断する。これはＯＳ２２１が正当でない場合はＯＳ２１１を修復することができないためである。図４（ｂ）は通常用ファームウェア２１０が正当でないことを示す画面表示の一例を示す図でもある。
一方、ＯＳ２２１が正当だった場合、Ｓ４０４において、ＣＰＵ１０１は、ＯＳ２２１の内容をＳＳＤ１０７内のＯＳ２１１に上書きする。これによりＯＳ２１１が修復される。
以上でＣＰＵ１０１はＯＳ２１１修復のフローチャートの処理を終えて元の処理に戻る。
【００２１】
以降再び図３のフローチャートを用いてＣＰＵ１０１の動作を説明する。
Ｓ３２０において、ＣＰＵ１０１は、ＯＳ２１１の実行を開始し、Ｓ３２１へ進む。以降のＳ３２１〜Ｓ３２４の処理はＣＰＵ１０１がＯＳ２１１を実行することによって実現される。
Ｓ３２１において、ＣＰＵ１０１は、通常用アプリケーションプログラム２１２をメモリ１０３にロードし、正当性を検証する。これは電子署名２１４をセキュリティチップ１０８で検証することで実現される。
Ｓ３２２において、ＣＰＵ１０１は、検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、通常用アプリケーションプログラム２１２が正当であった場合には、ＣＰＵ１０１は、Ｓ３２４へ進む。正当でなかった場合には、ＣＰＵ１０１は、Ｓ３２３へ進む。
Ｓ３２３において、つまり通常用アプリケーションプログラム２１２が正当でなかった場合、ＣＰＵ１０１は、通常用ファームウェア２１０が正当でないことを示すエラーコードを操作部５の表示パネルに表示し、起動を中断する。図４（ｂ）は通常用ファームウェア２１０が正当でないことを示す画面表示の一例を示す図である。
【００２２】
一方、通常用アプリケーションプログラム２１２が正当であった場合には、Ｓ３２４において、ＣＰＵ１０１は、通常用アプリケーションプログラム２１２の実行を開始する。以降のＳ３２５〜Ｓ３２８の処理はＣＰＵ１０１が通常用アプリケーションプログラム２１２を実行することによって実現される。
Ｓ３２５において、ＣＰＵ１０１は、アップデート用ファームウェア２２０の更新を行う必要があることを示すアップデート実行フラグがＳＲＡＭ１０４にセットされているかどうかを判定する。アップデート実行フラグがセットされているならば、ＣＰＵ１０１は、Ｓ３２６へ進む。セットされていないならば、ＣＰＵ１０１は、Ｓ３２８へ進む。
Ｓ３２６において、つまりアップデート実行フラグがセットされていた場合、ＣＰＵ１０１は、アップデート用ファームウェア２２０の更新を実行し、Ｓ３２７へ進む。
【００２３】
アップデート用ファームウェア更新の詳細については図６（ｂ）のフローチャートを用いて説明する。
Ｓ５１１において、ＣＰＵ１０１は、ハードディスク装置６に格納されているアップデートイメージに含まれるＯＳ６０１を用いてＳＳＤ１０７上のＯＳ２２１を更新する。
Ｓ５１２において、ＣＰＵ１０１は、アップデート用アプリケーションプログラム６０３を用いてＳＳＤ１０７上のアップデート用アプリケーションプログラム２２２を更新する。
Ｓ５１３において、ＣＰＵ１０１は、ＳＲＡＭ１０４のアップデート実行フラグをクリアし、アップデート用ファームウェア更新のフローチャートの処理を終了する。
以降は再び図３のフローチャートを用いてＣＰＵ１０１の動作を説明する。
Ｓ３２７において、ＣＰＵ１０１は、画像形成装置１を再起動させる。これによりＣＰＵ１０１は、Ｓ３０１へ戻り、図３のフローチャートを再び最初から実行することになる。
一方、Ｓ３２８において、ＣＰＵ１０１は、画像形成装置１でのジョブ受付を開始し、これにより画像形成装置１の起動が完了する。
【００２４】
以上のように、本実施形態で説明した画像形成装置１によれば、画像形成装置１の起動時にファームウェア内の重要部分の正当性を検証し、改ざんが検知された場合、自動的に修復することで画像形成装置１のダウンタイムを短縮できる。
また、ファームウェアアップデート機能のために保持しているＯＳ２２１等の別ファームウェアの一部を、ファームウェア修復用の正常な状態のファームウェアとして兼用する。これによりＳＳＤ１０７等の不揮発記憶媒体の容量増加を抑え、ファームウェア修復機能を実現するコストを低減できる。
【００２５】
＜実施形態２＞
実施形態１では、ＣＰＵ１０１がブートローダー２０１を実行することによりＯＳ２１１又はＯＳ２２１を検証し、更に修復も行うこととしていた。しかし、修復については必ずしもブートローダー２０１で実行しなくとも、ブートローダー２０１より後に実行されるプログラムであれば実現可能である。
一例として本実施形態では通常用アプリケーションプログラム２１２、アップデート用アプリケーションプログラム２２２を実行することにより修復する構成について説明する。
【００２６】
図８は、実施形態２の画像形成装置１の起動と、それに関連するファームウェアアップデートとに関する情報処理の一例を示すフローチャートである。ユーザが画像形成装置１の電源をオンした際に、ＣＰＵ１０１がこのフローチャートの処理を開始する。
尚、本実施形態の画像形成装置１の情報処理は一部を除いて実施形態１と同一である。以降の説明では実施形態１と異なる点についてのみ述べ、同一である点については説明を省略する。
まず、図８のＳ８０１〜Ｓ８０８の処理については図３のＳ３０１〜Ｓ３０８の処理と同一であるため詳細の説明は省略する。
Ｓ８０８においてＯＳ２２１の検証に成功した場合は、ＣＰＵ１０１は、Ｓ８０９へ進む。Ｓ８０９において、ＣＰＵ１０１は、ＯＳ２２１の実行を開始する。そして、ＣＰＵ１０１は、Ｓ８１５へ進む。以降のＳ８１５〜Ｓ８１８の処理はＣＰＵ１０１がＯＳ２２１を実行することによって実現される。
【００２７】
一方、Ｓ８０８においてＯＳ２２１の検証が成功しなかった場合は、ＣＰＵ１０１は、Ｓ８１０へ進む。
Ｓ８１０において、ＣＰＵ１０１は、ＯＳ２１１をメモリ１０３にロードし、正当性を検証する。これは電子署名２１３をセキュリティチップ１０８で検証することで実現される。
Ｓ８１１において、ＣＰＵ１０１は、検証結果に基づいて判定を行う。検証が成功し、ＯＳ２１１が正当であった場合には、ＣＰＵ１０１は、Ｓ８１３へ進む。正当でなかった場合には、ＣＰＵ１０１は、Ｓ３０９へ進む。
Ｓ８１２において、つまりＯＳ２１１が正当でなかった場合、ＣＰＵ１０１は、アップデート用ファームウェア２２０が正当でないことを示すエラーコードを操作部５の表示パネルに表示し、起動を中断する。図４（ｃ）はアップデート用ファームウェア２２０が正当でないことを示す画面表示の一例を示す図である。
Ｓ８１３において、つまりＯＳ２１１が正当だった場合、ＣＰＵ１０１は、修復処理の実行が必要であることを示す修復実行フラグをＳＲＡＭ１０４にセットする。
Ｓ８１４において、ＣＰＵ１０１は、ＯＳ２１１の実行を開始する。この場合、これ以降のＳ８１５〜Ｓ８１８の処理はＣＰＵ１０１がＯＳ２１１を実行することによって実現されることになる。但し、先述のようにＯＳ２１１とＯＳ２２１とはＳＳＤ１０７内の別の領域に記録された同じプログラムであり、実行する処理は同一である。
【００２８】
Ｓ８１５〜Ｓ８１８の処理は図３のＳ３１１〜Ｓ３１４の処理と同一であるので詳細の説明は省略する。
以降のＳ８１９〜Ｓ８２３の処理はＣＰＵ１０１がアップデート用アプリケーションプログラム２２２を実行することによって実現される。
Ｓ８１９において、ＣＰＵ１０１は、ＳＲＡＭ１０４に修復実行フラグがセットされているかどうかを判定する。セットされている場合、ＣＰＵ１０１は、Ｓ８２０へ進む。セットされていない場合、ＣＰＵ１０１は、Ｓ８２２へ進む。
Ｓ８２０において、つまりＳＲＡＭ１０４に修復実行フラグがセットされていた場合、ＣＰＵ１０１は、ＯＳ２２１修復の処理を実行する。
Ｓ８２１において、ＣＰＵ１０１は、ＳＲＡＭ１０４の修復実行フラグをクリアする。
Ｓ８２２〜Ｓ８２３の処理は図３のＳ３１５〜Ｓ３１６の処理と同一であるので詳細の説明は省略する。
【００２９】
続いて、起動時にファームウェアアップデートモードでの起動が指示されていなかった場合の処理について説明する。
Ｓ８２４〜Ｓ８２５の処理は図３におけるＳ３１７〜Ｓ３１８の処理と同一である。
Ｓ８２５においてＯＳ２１１の検証に成功した場合は、ＣＰＵ１０１は、Ｓ８２６へ進む。Ｓ８２６において、ＣＰＵ１０１は、ＯＳ２１１の実行を開始する。そして、ＣＰＵ１０１は、Ｓ８３２へ進む。以降のＳ８３２〜Ｓ８３５の処理はＣＰＵ１０１がＯＳ２２１を実行することによって実現される。
一方、Ｓ８２５においてＯＳ２１１の検証が成功しなかった場合は、ＣＰＵ１０１は、Ｓ８２７へ進む。
Ｓ８２７において、ＣＰＵ１０１は、ＯＳ２２１をメモリ１０３にロードし、正当性を検証する。これは電子署名２２３をセキュリティチップ１０８で検証することで実現される。
Ｓ８２８において、ＣＰＵ１０１は、検証結果に基づいて判定を行う。検証が成功し、ＯＳ２２１が正当であった場合には、ＣＰＵ１０１は、Ｓ８３０へ進む。正当でなかった場合には、ＣＰＵ１０１は、Ｓ３２９へ進む。
Ｓ８２９において、つまりＯＳ２２１が正当でなかった場合、ＣＰＵ１０１は、通常用ファームウェア２１０が正当でないことを示すエラーコードを操作部５の表示パネルに表示し、起動を中断する。図４（ｂ）は通常用ファームウェア２１０が正当でないことを示す画面表示の一例を示す図である。
Ｓ８３０において、つまりＯＳ２２１が正当だった場合、ＣＰＵ１０１は、修復処理の実行が必要であることを示す修復実行フラグをＳＲＡＭ１０４にセットする。
Ｓ８３１において、ＣＰＵ１０１は、ＯＳ２２１の実行を開始する。この場合、これ以降のＳ８３２〜Ｓ８３５の処理はＣＰＵ１０１がＯＳ２２１を実行することによって実現されることになる。
【００３０】
Ｓ８３２〜Ｓ８３５の処理は図３のＳ３２１〜Ｓ３２４の処理と同一であるので詳細の説明は省略する。
移行のＳ８３６〜Ｓ８４１の処理はＣＰＵ１０１が通常用アプリケーションプログラム２１２を実行することによって実現される。
Ｓ８３６において、ＣＰＵ１０１は、ＳＲＡＭ１０４に修復実行フラグがセットされているかどうかを判定する。セットされている場合、ＣＰＵ１０１は、Ｓ８３７へ進む。セットされていない場合は、ＣＰＵ１０１は、Ｓ８３９へ進む。
Ｓ８３７において、つまりＳＲＡＭ１０４に修復実行フラグがセットされていた場合、ＣＰＵ１０１は、ＯＳ２１１修復の処理を実行する。
Ｓ８３８において、ＣＰＵ１０１は、ＳＲＡＭ１０４の修復実行フラグをクリアする。
Ｓ８３９〜Ｓ８４２の処理は図３のＳ３２５〜Ｓ３２８の処理と同一であるので詳細の説明は省略する。
【００３１】
以上のように、本実施形態で説明した画像形成装置１によれば、ＯＳ２１１又はＯＳ２２１の修復については必ずしもブートローダー２０１で実行しなくともよい。本実施形態のように通常用アプリケーションプログラム２１２及びアップデート用アプリケーションプログラム２２２で実行する構成としてもよい。ブートローダー２０１より後に実行されるプログラムであれば、修復を実行することが可能であり、実施形態１と同等の効果を得ることができる。
【００３２】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００３３】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
【符号の説明】
【００３４】
１      画像形成装置
１０１  ＣＰＵ
【図１】
2020049744.tif 000003
【図２】
2020049744.tif 000004
【図３】
2020049744.tif 000005
【図４】
2020049744.tif 000006
【図５】
2020049744.tif 000007
【図６】
2020049744.tif 000008
【図７】
2020049744.tif 000009
【図８】
2020049744.tif 000010