(57)【要約】【課題】本発明は、改ざんされたアプリケーションの属性や改ざん箇所に応じて、装置の使用制限を切り替えて制御する仕組みを提供する。【解決手段】画像処理装置は、当該画像処理装置に保持されている任意のアプリケーションの改ざんを検知し、改ざんが検知されたアプリケーションに基づいて画像処理装置の使用を制限する必要があるか否かを判断する。さらに、本画像処理装置は、判断の結果、画像処理装置の使用を制限する必要がある場合は、当該アプリケーションの改ざんが検知された旨を表示部に表示して、画像処理装置の使用を制限する。一方、画像処理装置の使用を制限する必要がない場合は、当該アプリケーションの改ざんが検知された旨を前記表示部に表示する。【選択図】  図１０
2020010228.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
前記画像処理装置に保持されている任意のアプリケーションの改ざんを検知する検知手段と、
前記検知手段によって改ざんが検知されると、改ざんが検知されたアプリケーションに基づいて前記画像処理装置の使用を制限する必要があるか否かを判断する判断手段と、
前記判断手段による判断の結果、前記画像処理装置の使用を制限する必要がある場合は、当該アプリケーションの改ざんが検知された旨を表示部に表示して、前記画像処理装置の使用を制限し、前記画像処理装置の使用を制限する必要がない場合は、当該アプリケーションの改ざんが検知された旨を前記表示部に表示する制御手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記任意のアプリケーションは、前記任意のアプリケーションの種別情報を有する属性ファイルと、該任意のアプリケーションを実行するためのプログラムファイルと、改ざんを検知するための情報を有するダイジェストファイルとを含み、
前記ダイジェストファイルは、前記属性ファイルの改ざんを検知するための情報を含む第１ダイジェストと、前記プログラムファイルの改ざんを検知するための情報を含む第２ダイジェストと、前記第１ダイジェスト及び前記第２ダイジェストの改ざんを検知するための情報を含む第３ダイジェストとを含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検知手段は、前記ダイジェストファイル及び前記属性ファイルの改ざんが検知されない場合に、前記プログラムファイルが改ざんされているか否かを検知することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記判断手段は、
前記ダイジェストファイル又は前記属性ファイルの改ざんが検知されると、前記画像処理装置の使用を制限する必要があると判断し、
前記プログラムファイルの改ざんが検知されると、前記属性ファイルに含まれる前記種別情報が、認証したユーザに前記画像処理装置の使用を許可するログインアプリケーションを示す場合は前記画像処理装置の使用を制限する必要があると判断し、前記種別情報が前記ログインアプリケーションを示さない場合は前記画像処理装置の使用を制限する必要がないと判断することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記判断手段は、改ざんが検知されたアプリケーションが前記画像処理装置の使用を制限する必要があると判断した場合であっても、当該アプリケーションが有効でない場合は、前記画像処理装置の使用を制限する必要がないと判断することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記検知手段は、さらに、前記任意のアプリケーションが有効であるか否かを示すステータス情報の改ざんを検知し、
前記判断手段は、前記検知手段によって前記ステータス情報の改ざんが検知されると、前記画像処理装置の使用を制限する必要があると判断することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記制御手段は、
前記判断手段によって前記画像処理装置の使用を制限する必要がないと判断されると、操作画面の所定の領域に当該アプリケーションの改ざんが検知されたメッセージを表示するとともに、前記画像処理装置の機能を使用するための操作を受付可能に該操作画面を表示することを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記制御手段は、
前記判断手段によって前記画像処理装置の使用を制限する必要があると判断されると、当該アプリケーションの改ざんが検知されたメッセージと、前記画像処理装置の再起動を促すメッセージとを表示するとともに、当該再起動が行われるまで該メッセージを表示することを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
前記制御手段は、
前記判断手段によって前記画像処理装置の使用を制限する必要があると判断されると、さらに、当該アプリケーションの無効化を受け付け可能に表示することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記制御手段は、
前記判断手段によって、前記ステータス情報の改ざんが検知されたことにより、当該アプリケーションの改ざんが検知されたメッセージと、前記画像処理装置の再起動を促すメッセージとを表示するとともに、当該再起動が行われるまで該メッセージを表示し、さらに、当該アプリケーションの初期化を受け付け可能に表示することを特徴とする請求項６に記載の画像処理装置。
【請求項１１】
前記検知手段による前記任意のアプリケーションの改ざんの検知は、前記画像処理装置の起動の際、及び、各アプリケーションの実行の際の少なくとも１つのタイミングで行われることを特徴とする請求項１乃至１０の何れか１項に記載の画像処理装置。
【請求項１２】
前記改ざんを検知するための情報とは、検知対象のハッシュ値であることを特徴とする請求項１乃至１１の何れか１項に記載の画像処理装置。
【請求項１３】
画像処理装置の制御方法であって、
検知手段が、前記画像処理装置に保持されている任意のアプリケーションの改ざんを検知する検知工程と、
判断手段が、前記検知工程で改ざんが検知されると、改ざんが検知されたアプリケーションに基づいて前記画像処理装置の使用を制限する必要があるか否かを判断する判断工程と、
制御手段が、前記判断工程による判断の結果、前記画像処理装置の使用を制限する必要がある場合は、当該アプリケーションの改ざんが検知された旨を表示部に表示して、前記画像処理装置の使用を制限し、前記画像処理装置の使用を制限する必要がない場合は、当該アプリケーションの改ざんが検知された旨を前記表示部に表示する制御工程と
を含むことを特徴とする画像処理装置の制御方法。
【請求項１４】
画像処理装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
検知手段が、前記画像処理装置に保持されている任意のアプリケーションの改ざんを検知する検知工程と、
判断手段が、前記検知工程で改ざんが検知されると、改ざんが検知されたアプリケーションに基づいて前記画像処理装置の使用を制限する必要があるか否かを判断する判断工程と、
制御手段が、前記判断工程による判断の結果、前記画像処理装置の使用を制限する必要がある場合は、当該アプリケーションの改ざんが検知された旨を表示部に表示して、前記画像処理装置の使用を制限し、前記画像処理装置の使用を制限する必要がない場合は、当該アプリケーションの改ざんが検知された旨を前記表示部に表示する制御工程と
を含むことを特徴とするプログラム。
【請求項１５】
画像処理装置であって、
前記画像処理装置に保持されているログインアプリケーションの改ざんを検知する検知手段と、
前記検知手段によってログインアプリケーションの改ざんが検知されたことに応じて、前記ログインアプリケーションの改さんが検知された旨を表示部に表示させ、前記画像処理装置の使用ができないようにする制御手段とを有することを特徴とする画像処理装置。
【請求項１６】
前記制御手段は、前記検知手段によってログインアプリケーションの改ざんが検知されたことに応じて、前記ログインアプリケーションの再インストールを促すメッセージを前記表示部に表示することを特徴とする請求項１５に記載の画像処理装置。
【請求項１７】
前記ログインアプリケーションは、ユーザを認証する処理を行うことを特徴とする請求項１５に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、仮想マシンにおいてプログラムの改ざんが検知された場合、そのプログラムを直ちに停止する技術が提案されている。また、特許文献２には、認証されたユーザにだけ装置の利用を許可するログインアプリケーションが提案されている。さらに、ログインアプリケーションが不具合等で起動できない場合は、当該ログインアプリケーションをメモリに退避して、別のログインアプリケーションを上書きインストールする、或いは、デフォルトのログインアプリケーションを実行することが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２２６２７７号公報
【特許文献２】特開２０１３−１０１５６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術には以下に記載する課題がある。例えば、上記従来技術のように、改ざんされたプログラムを単純に直ちに停止してしまうと、次のような問題がある。即ち、もしログインアプリケーションのプログラムの改ざんが検知され、当該ログインプログラムを直ちに停止してしまうと、認証制限が行われなくなるため、装置が自由に使えるようになってしまう。また、限られた容量のストレージしか備えていない廉価な画像処理装置においては、所定のログインアプリケーションが動作しないことを想定して、別のログインアプリケーションをストレージに準備しておくことメモリ資源の観点から難しいものである。
【０００５】
本発明は、上述の問題の少なくとも一つに鑑みて成されたものであり、改ざんされたアプリケーションの属性や改ざん箇所に応じて、装置の使用制限を切り替えて制御する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、例えば、画像処理装置であって、前記画像処理装置に保持されている任意のアプリケーションの改ざんを検知する検知手段と、前記検知手段によって改ざんが検知されると、改ざんが検知されたアプリケーションに基づいて前記画像処理装置の使用を制限する必要があるか否かを判断する判断手段と、前記判断手段による判断の結果、前記画像処理装置の使用を制限する必要がある場合は、当該アプリケーションの改ざんが検知された旨を表示部に表示して、前記画像処理装置の使用を制限し、前記画像処理装置の使用を制限する必要がない場合は、当該アプリケーションの改ざんが検知された旨を前記表示部に表示する制御手段とを備えることを特徴とする。
【０００７】
また、本発明は、例えば、画像処理装置であって、前記画像処理装置に保持されているログインアプリケーションの改ざんを検知する検知手段と、前記検知手段によってログインアプリケーションの改ざんが検知されたことに応じて、前記ログインアプリケーションの改さんが検知された旨を表示部に表示させ、前記画像処理装置の使用ができないようにする制御手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、改ざんされたアプリケーションの属性や改ざん箇所に応じて、装置の使用制限を切り替えて制御することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係るＭＦＰのハードウェア構成を示すブロック図。
【図２】一実施形態に係るＭＦＰのソフトウェア構成を示すブロック図。
【図３】一実施形態に係る拡張アプリケーション部２１０の各アプリケーションのデータ構造と、ダイジェストファイルのデータ構造を示す図。
【図４】一実施形態に係る装置起動時に表示されるホーム画面の一例を示す図。
【図５】一実施形態に係る汎用アプリケーションの改ざんが検知された旨のメッセージを表示する画面の一例を示す図。
【図６】一実施形態に係る認証画面６０１の一例を示す図。
【図７】一実施形態に係るエラー表示のポップアップ画面の一例を示す図。
【図８】一実施形態に係るアプリケーションの改ざんを検知するサブルーチン処理の流れを示すフローチャート。
【図９】一実施形態に係る装置起動時のアプリケーショ管理の処理の流れを示すフローチャート。
【図１０】一実施形態に係る拡張アプリケーション部２１０のプログラムの実行処理の流れを示すフローチャート。
【図１１】一実施形態に係るＭＦＰ１０の起動時処理の流れを示すフローチャート。
【図１２】一実施形態に係るステータス情報１２００のデータ構造を示す図。
【図１３】一実施形態に係るエラー表示のポップアップ画面の一例を示す図。
【発明を実施するための形態】
【００１０】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。なお、実施形態に係る画像処理装置として複合機（デジタル複合機／ＭＦＰ／Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）を例に説明する。しかしながら適用範囲は複合機に限定はせず、画像処理機能を有する装置であればよい。
【００１１】
＜第１の実施形態＞
＜画像読取装置の構成＞
以下では、添付図面を参照して、本発明の第１の実施形態について説明する。まず、図１を参照して、本実施形態におけるＭＦＰのハードウェア構成を説明する。
【００１２】
図１に示すように、ＭＦＰ１０は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、表示コントローラ１０４、表示部１０５、操作コントローラ１０６、及び操作部１０７を備える。また、ＭＦＰ１０は、ｅＭＭＣホストコントローラ１０８、ｅＭＭＣ１０９、読取コントローラ１１０、読取部１１１、記録コントローラ１１２、及び記録部１１３を備える。さらに、ＭＦＰ１０は、ＵＳＢホストコントローラ１１４、モデム１１５、網制御ユニット（ＮＣＵ）１１６、及びネットワークインタフェースカード（ＮＩＣ）１１７を備える。
【００１３】
ＣＰＵ１０１は、システムバス１１８に接続される各デバイスを総括的に制御する。ＣＰＵ１０１は、電源が供給されると、ＲＯＭ１０２に記憶されたブートプログラムを実行する。通常、ブートプログラムは、ｅＭＭＣ１０９の特定領域に保存されているメインプログラムをＲＡＭ１０３にロードして、ロードされたメインプログラムの先頭にジャンプする。ＲＡＭ１０３は、メインプログラムのロード場所としてだけでなく、メインプログラムのワークエリアなどとして機能する。ＣＰＵ１０１は、後述する図８乃至図１１に記載の各制御プログラムを実行することにより、図４乃至図７の画面表示の切り替えを制御する。
【００１４】
表示コントローラ１０４は、表示部１０５に対する描画を制御する。表示部１０５は、ＷＶＧＡサイズのフルビットマップＬＣＤである。一方、操作コントローラ１０６は、ＭＦＰ１０に装備された操作部１０７からの入力を制御する。操作部１０７は、表示部１０５に重畳されたタッチパネルからなる。
【００１５】
読取部１１１は、原稿の読み取りを行う。読取部１１１には、オプションとしてオートドキュメントフィーダ（不図示）が装着されており、複数枚の原稿を１枚ずつ搬送して自動的に読み取ることができる。読取部１１１は読取コントローラ１１０に接続されており、ＣＰＵ１０１は読取コントローラ１１０を介して読取部１１１とやり取りすることができる。
【００１６】
また、記録部１１３は、電子写真方式で記録紙に画像形成を行う。本実施形態において記録紙とは、その表面に画像が形成される用紙やシートなどを含む。記録部１１３は記録コントローラ１１２に接続されており、ＣＰＵ１０１は記録コントローラ１１２を介して記録部１１３とやり取りする。
【００１７】
ＵＳＢホストコントローラ１１４は、ＵＳＢのプロトコル制御を受け持ち、ＵＳＢメモリ（不図示）などＵＳＢデバイスに対するアクセスを仲介する。モデム１１５は、ファクシミリ通信に必要な信号の変調・復調を行う。また、モデム１１５はＮＣＵ（network control unit）１１６に接続されている。モデム１１５で変調された信号は、ＮＣＵ１１６を介して公衆回線網（ＰＳＴＮ）へ送出される。
【００１８】
ＮＩＣ（Network Interface Card）１１７は、ＬＡＮを介して、メールやファイルのサーバなどと双方向にデータのやり取りを行う。また、Ｗｅｂサーバなどとも双方向にデータをやり取りする。本実施形態のＭＦＰ１０は、ストレージとしてｅＭＭＣ１０９を備える。ＣＰＵ１０１は、ｅＭＭＣホストコントローラ１０８を介してｅＭＭＣ１０９にアクセスする。
【００１９】
＜ソフトウェア構成＞
次に、図２を参照して、本実施形態に係るＭＦＰ１０のソフトウェア構成について説明する。図２において実線で示した各部は、ＣＰＵ１０１が前述したブートプログラムでＲＡＭ１０３にロードされたメインプログラムを実行することにより実現されるソフトウェアモジュールである。
【００２０】
メインプログラムは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）部２０１によって後述するそれぞれのモジュールの実行を管理・制御する。ＯＳ部２０１には、デバイスドライバ部２０８が含まれる。デバイスドライバ部２０８は、表示部コントローラ１０４、操作部コントローラ１０６、及び読取コントローラ１１０などのハードウェアデバイスとのやり取りを仲介する。
【００２１】
ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）部２０２は、表示部１０５及び操作部１０７を介して各種情報をユーザに提供するとともに、ユーザからの各種指示を受け付ける。ＭＦＰ１０の振る舞いを切り替える各種設定も、ＵＩ部２０２によって変更することができる。ＵＩ部２０２によって変更された各種設定は、データベース部２１３を介して物理的にｅＭＭＣ１０９へ格納される。ＵＩ部２０２によって変更される表示言語の設定も各種設定のひとつである。
【００２２】
ジョブコントローラ部２０３は、コピーやプリント、ファックス、送信などのジョブを受け付け、受け付けたジョブの実行を各機能部、例えばＰｒｉｎｔ部２１２、Ｓｅｎｄ部２０５、Ｆａｘ部２０４、Ｓｃａｎ部２０７を介して制御する。ストレージ部２０６は、例えばファクシミリを送受信する画像や拡張アプリケーション部２１０から要求されたアプリケーション設定などのデータを、物理的にｅＭＭＣ１０９へ格納して管理するソフトウェアモジュールである。
【００２３】
例えば、本実施形態のＭＦＰ１０において、ジョブコントローラ部２０３がファックス送信ジョブを受け付けると、Ｓｃａｎ部２０７はそのジョブ要求を受けて読取部１１１を制御して原稿をスキャンする。そして、スキャンしたファクシミリ画像データをストレージ部２０６へ格納する。ストレージ部２０６に格納されたファクシミリ画像データはＦａｘ部２０４によって読み出され、モデム１１５、ＮＣＵ１１６を介して相手先にファクシミリ送信される。或いは、モデム１１５、ＮＣＵ１１６を介して相手先からファクシミリ受信した画像データは、Ｆａｘ部２０４によって取り込まれ、ストレージ部２０６へ格納される。
【００２４】
本実施形態のＭＦＰ１０では、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）／ＦＷ（Ｆｒａｍｅｗｏｒｋ）部２０９を備える。拡張アプリケーション部２１０は、物理的にはｅＭＭＣ１０９上に配置され、スクリプト言語で記述された任意のプログラム等から複数のアプリケーションを収容する。例えば、バイトコードを解釈して実行するインタープリタであるＪａｖａ（登録商標）や、Ｌｕａなどの言語系を用いてもよい。
【００２５】
ＶＭ／ＦＷ部２０９は、スクリプト言語や所定の高級言語で記述された任意のプログラムを拡張アプリケーション部２１０へインストールする、或いは、拡張アプリケーション部２１０からアンインストールする役割を受け持つ。同時に、インストールされたアプリケーションが有効であるか無効であるかを含むアプリケーションのステータス情報を、ストレージ部２０６に保持する。また、ＶＭ／ＦＷ部２０９は、ＲＯＭ１０２上に複数のプレインストールアプリケーションを圧縮したアーカイブが存在すれば、それを必要に応じて伸張しながら拡張アプリケーション部２１０にインストールする能力も備える。詳細は割愛する。
【００２６】
さらに、ＶＭ／ＦＷ部２０９は、拡張アプリケーション部２１０にインストールされた任意のプログラムで実現される機能と既存機能との調停等も受け持つ。そして、ＶＭ／ＦＷ部２０９は、表示部１０５に表示されたボタンの選択を受けて、対応するアプリケーションのスクリプト言語をＲＡＭ１０３上にロードしながら、内容を解釈して実行する。これらによって、本実施形態のＭＦＰ１０は、機能の着脱性を維持しつつ、ログインアプリケーション２１４や言語切替アプリケーション２１５のような任意の機能を容易に実現することができる。さらに、ＶＭ／ＦＷ部２０９は、拡張アプリケーション部２１０にインストールされた任意のプログラムからの要求を受けて、データベース部２１３の各種設定値を参照したり変更したりする。
【００２７】
ＵＩデバイスコントローラ２１１は、ＵＩ部２０２及び拡張アプリケーション部２１０が表示部１０５へ各種情報を出力することや、操作部１０７によるユーザ操作をＵＩ部２０２及び拡張アプリケーション部２１０へ伝達することを仲介する。
【００２８】
＜データ構造＞
次に、図３を参照して、本実施形態に係る拡張アプリケーション部２１０に保存されている各アプリケーションのデータ構造と、ダイジェストファイルのデータ構造を説明する。
【００２９】
アプリケーション３００は、属性ファイル３１０、プログラムファイル３２０、及びダイジェストファイル３３０を含んで構成される。属性ファイル３１０には、アプリケーション３００の名称やバージョン情報などに加え、アプリケーションがどのような種類のプログラムを備えるかを示す情報（種別情報）が記録されている。具体的には、認証したユーザにだけＭＦＰ１０の使用を認めるログイン機能を有するプログラムか、表示部１０５に表示されたボタンの選択を受けて実行される汎用のプログラムか、を識別することが可能な情報が記録されている。プログラムファイル３２０は、前述したスクリプト言語で記述されたプログラムが収納されている。
【００３０】
ダイジェストファイル３３０は、改ざん検知対象のダイジェスト値（以下では、ハッシュ値とも称する。）を保持するファイルである。具体的には、ダイジェストファイル３３０は、属性ファイルのダイジェスト（第１ダイジェスト）３３１、プログラムファイルのダイジェスト（第２ダイジェスト）３３２、及び上記ダイジェスト３３１、３３２のダイジェスト（第３ダイジェスト）３３３を含んで構成される。属性ファイルのダイジェスト３３１には、属性ファイル３１０のハッシュ計算によって得られることが期待されるダイジェスト値が記録されている。同様に、プログラムファイルのダイジェスト３３２には、プログラムファイル３２０のハッシュ計算によって得られることが期待されるダイジェスト値が記録されている。さらに、ダイジェストのダイジェスト３３３には、属性ファイルのダイジェスト３３１とプログラムファイルのダイジェスト３３２のハッシュ計算によって得られることが期待されるダイジェスト値が記録されている。
【００３１】
＜改ざん検知＞
次に、図８を参照して、本実施形態に係るアプリケーションの改ざんを検知するサブルーチン処理の手順を説明する。以下で説明する検知処理は、ＶＭ／ＦＷ部２０９を構成する処理の一部であって、ＣＰＵ１０１によって実行される。以下、後述する全ての処理は、ＣＰＵ１０１によって実行される。ＣＰＵ１０１は、例えばＲＯＭ１０２等のメモリに格納された制御プログラムをＲＡＭ１０３に読み出して実行することにより以下の処理を実現する。
【００３２】
まず、Ｓ８０１で、ＶＭ／ＦＷ部２０９は、ダイジェストファイル３３０の属性ファイルのダイジェスト３３１と、プログラムファイルのダイジェスト３３２とのハッシュ値を計算して取得する。続いて、Ｓ８０２で、ＶＭ／ＦＷ部２０９は、Ｓ８０１で取得したハッシュ値と、ダイジェストのダイジェスト３３３とを比較して、取得したハッシュ値が記録されているダイジェスト値と一致するかどうかを判断する。もし一致していれば、異常がないと判断してＳ８０３に進み、そうでなければＳ８１０に進む。
【００３３】
Ｓ８０３で、ＶＭ／ＦＷ部２０９は、属性ファイル３１０のハッシュ値を計算して取得する。続いて、Ｓ８０４で、ＶＭ／ＦＷ部２０９は、Ｓ８０３で取得したハッシュ値と、属性ファイルのダイジェスト３３１とを比較して、取得したハッシュ値が記録されているダイジェスト値と一致するかどうかを判断する。もし一致していれば、異常がないと判断してＳ８０５に進み、そうでなければＳ８０９に進む。
【００３４】
Ｓ８０５で、ＶＭ／ＦＷ部２０９は、プログラムファイル３２０のハッシュ値を計算して取得する。続いて、Ｓ８０６で、ＶＭ／ＦＷ部２０９は、Ｓ８０５で取得したハッシュ値と、プログラムファイルのダイジェスト３３２とを比較して、ハッシュの計算結果が記録されているダイジェスト値と一致するかどうかを判断する。もし一致していれば、異常がないと判断してＳ８０７に進み、そうでなければＳ８０８に進む。
【００３５】
Ｓ８０７で、ＶＭ／ＦＷ部２０９は、アプリケーションの改ざんを検出せず、正常であることを呼び出し元に返して、改ざん検知処理を終了する。一方、Ｓ８０６で異常が検出されたならば、Ｓ８０８で、ＶＭ／ＦＷ部２０９は、プログラムファイルの改ざんが検出されたことを呼び出し元に返して、改ざん検知処理を終了する。また、Ｓ８０４で異常が検出されたならば、Ｓ８０９で、ＶＭ／ＦＷ部２０９は、属性ファイルの改ざんが検出されたことを呼び出し元に返して、改ざん検知処理を終了する。また、Ｓ８０２で異常が検出されたならば、Ｓ８１０で、ＶＭ／ＦＷ部２０９は、ダイジェストファイルの改ざんが検出されたことを呼び出し元に返して、改ざん検知処理を終了する。
【００３６】
＜装置起動時の処理＞
次に、図９を参照して、本実施形態に係る装置起動時のアプリケーショ管理の処理の流れを説明する。ここでのアプリケーション管理の処理は、ＶＭ／ＦＷ部２０９における処理の一部であって、ＣＰＵ１０１によって実行される。以下、後述する全ての処理は、ＣＰＵ１０１によって実行される。ＣＰＵ１０１は、例えばＲＯＭ１０２等のメモリに格納された制御プログラムをＲＡＭ１０３に読み出して実行することにより以下の処理を実現する。
【００３７】
まず、Ｓ９０１で、ＶＭ／ＦＷ部２０９は、変数ｉ＝１として拡張アプリケーション部２１０にインストールされている１番目のアプリケーションから後続の処理が実行されるように制御する。続いて、Ｓ９０２で、ＶＭ／ＦＷ部２０９は、拡張アプリケーション部２１０にインストールされているｉ番目のアプリケーションが改ざんされていないか確認するために、図８を用いて説明したアプリケーションの改ざん検知のサブルーチン処理を呼び出して実行する。
【００３８】
そして、Ｓ９０３で、ＶＭ／ＦＷ部２０９は、改ざん検知処理の戻り値がダイジェストファイルの改ざんを示すか否かを判断する。ダイジェストファイルの改ざんが検知されなければＳ９０４に進む。一方、ダイジェストファイルの改ざんが検知されたときは、そのアプリケーションの属性ファイルが改ざんされているか否かを確認することができない。このとき、仮に属性ファイルが改ざんされていたとしても、後述のＳ９０９の判断を正常に実行できないので、Ｓ９１２に進む。
【００３９】
Ｓ９０４で、ＶＭ／ＦＷ部２０９は、改ざん検知処理の戻り値が属性ファイルの改ざんを示すか否かを判断する。属性ファイルの改ざんが検知されなければＳ９０５に進む。一方、属性ファイルの改ざんが検知されたときは、後述のＳ９０９の判断を正常に実行できないので、Ｓ９１２に進む。
【００４０】
Ｓ９０５で、ＶＭ／ＦＷ部２０９は、改ざん検知処理の戻り値がプログラムファイルの改ざんを示すか否かを判断する。プログラムファイルの改ざんが検知されなければＳ９０６に進み、そうでなければＳ９０９に進む。Ｓ９０６で、ＶＭ／ＦＷ部２０９は、ＲＡＭ１０３上に用意されたアプリケーション管理データ９０００に、ｉ番目のアプリケーションが正常であることを登録し、Ｓ９０７に進む。また、ＶＭ／ＦＷ部２０９は、アプリケーション管理データ９０００に、ｉ番目のアプリケーションが備えるプログラムの属性情報も同時に登録する。
【００４１】
次に、Ｓ９０７で、ＶＭ／ＦＷ部２０９は、拡張アプリケーション部２１０にインストールされている全てのアプリケーションの登録が完了したか否かを判断する。全て完了していれば、アプリケーション登録の処理を終了する。一方、まだ登録されていないアプリケーションが存在するならば、Ｓ９０８に進み、ＶＭ／ＦＷ部２０９は、変数ｉに１を加算してＳ９０２に処理を戻す。
【００４２】
Ｓ９０５でプログラムファイルの改ざんが検知された場合、Ｓ９０９で、ＶＭ／ＦＷ部２０９は、そのアプリケーションの属性ファイルを確認して、プログラムがログイン属性か否かを判断する。ログイン属性であればＳ９１２に進み、そうでなければＳ９１０に進む。
【００４３】
Ｓ９１０で、ＶＭ／ＦＷ部２０９は、上述したアプリケーションのステータス情報にアクセスして、そのアプリケーションが有効であるか否かを判断する。有効であればＳ９１１に進み、そうでなければ後述の表示が不要なのでＳ９１４に進む。Ｓ９１１で、ＶＭ／ＦＷ部２０９は、ログイン属性でない汎用アプリケーションが改ざんされたことを示すエラー表示をＵＩ部２０２に要求する。要求を受けたＵＩ部２０２が表示する操作画面の一例を図５に示す。本実施形態におけるＭＦＰ１０は、画面下部に割り当てられたステータス領域５０１に、アプリケーションの改ざんが検知された旨のメッセージを表示する。図５は、言語切替アプリケーション２１５の改ざんが検知された場合にステータス領域５０１に当該メッセージを表示した例である。このとき、後述する図４のボタン４０１は、ホーム画面に表示されない。一方で、ＭＦＰ１０のその他の機能を使用するための操作を受付可能にすべく、各種ボタンが表示される。
【００４４】
Ｓ９０９で改ざんされたプログラムがログイン属性であると判断された場合、又は、Ｓ９０３若しくはＳ９０４でログイン属性か否かの判断を正しく行うことができないと判断された場合は、Ｓ９１２に進む。Ｓ９１２で、ＶＭ／ＦＷ部２０９は、上述したアプリケーションのステータス情報にアクセスして、そのアプリケーションが有効になっているか否かを判断する。有効ならばＳ９１３に進み、そうでなければ後述の表示が不要なのでＳ９１４に進む。
【００４５】
Ｓ９１３で、ＶＭ／ＦＷ部２０９は、ログイン属性のアプリケーションが改ざんされたことを示し、かつ、装置の使用を制限するエラー表示をＵＩ部２０２に要求する。要求を受けたＵＩ部２０２が表示する画面の一例を図７に示す。本実施形態におけるＭＦＰ１０は、ポップアップ画面７０１を表示部に表示して、装置の使用ができないように制限するとともに、その旨を表示する。具体的には、ログインアプリケーションのプログラム又は属性ファイルの改ざんが検知された旨と、当該アプリケーションを再インストールする旨と、再インストールするにはアプリケーションを無効化して再起動する必要がある旨とを表示する。また、アプリケーションの無効化のボタン７０２を押下すると、システム管理者の権限確認の画面を経由して、権限が確認できた場合にのみ当該アプリケーションを無効化することができる。アプリケーションの無効化を行ったか否かに関わらず、この画面は電源を入れ直すまで表示される。これにより、装置の使用を制限することができる。
【００４６】
Ｓ９１４で、ＶＭ／ＦＷ部２０９は、ＲＡＭ１０３上に用意されたアプリケーション管理データ９０００に、ｉ番目のアプリケーションについて、当該アプリケーションが備えるプログラムの属性に加えて、当該アプリケーションが異常であることを登録する。その後、処理をＳ９０７に進める。Ｓ９０７の処理は上述した通りである。
【００４７】
＜装置起動時の処理２＞
次に、図１１を参照して、特にアプリケーション管理とログインアプリケーションの起動に注目した、本実施形態におけるＭＦＰ１０の起動時の処理手順を説明する。なお、図１１のフローチャートは、上述した図９のフローチャートの処理をＳ１１０１で呼び出して実行するものである。ここでの起動時の処理は、ＶＭ／ＦＷ部２０９における処理の一部であって、ＣＰＵ１０１によって実行される。以下、後述する全ての処理は、ＣＰＵ１０１によって実行される。ＣＰＵ１０１は、例えばＲＯＭ１０２等のメモリに格納された制御プログラムをＲＡＭ１０３に読み出して実行することにより以下の処理を実現する。
【００４８】
まず、Ｓ１１０１で、ＶＭ／ＦＷ部２０９は、図９を用いて前述したアプリケーション管理の処理を実行する。続いて、Ｓ１１０２で、ＶＭ／ＦＷ部２０９は、ログインアプリケーション２１４が拡張アプリケーション部２１０にインストールされているか否かを判断する。インストールされているならばＳ１１０３に進み、そうでなければＳ１１０６に進む。
【００４９】
Ｓ１１０３で、ＶＭ／ＦＷ部２０９は、アプリケーション管理の処理で登録されたアプリケーション管理データ９０００に基づいて、ログインアプリケーション２１４が正常であるか否かを判断する。正常であればＳ１１０４に進み、そうでなければＳ１１０６に進む。Ｓ１１０４で、ＶＭ／ＦＷ部２０９は、上述したアプリケーションのステータス情報にアクセスして、ログインアプリケーション２１４が有効か否かを判断する。有効であればＳ１１０５に進み、そうでなければＳ１１０６に進む。Ｓ１１０５で、ＶＭ／ＦＷ部２０９は、ログインアプリケーション２１４が備えるログイン属性のプログラムを起動して、装置起動時の処理を終了する。その結果として、表示部１０５には図６に示す認証画面６０１が表示される。図６に示す認証画面６０１では、認証方法として、ＩＣカードを利用する認証画面の例を示す。なお、本発明はこれに限定されず、例えば、認証情報（アカウントやパスワード）を入力するための認証画面を表示するように制御してもよいし、他の認証方法を利用するための画面を表示するように制御してもよい。他の認証方法としては、例えば、カメラ等による顔認証や、指紋認証など種々の方法が適用されうる。
【００５０】
一方、Ｓ１１０２、Ｓ１１０３、又は、Ｓ１１０４において認証画面の表示は不要と判断されると、Ｓ１１０６で、ＶＭ／ＦＷ部２０９は、図４に示すホーム画面（操作画面）４００を表示部１０５に表示して、装置起動時の処理を終了する。ホーム画面４００では、例えば、言語切替アプリケーション２１５がインストールされていて、かつ、それが有効ならば、言語切替アプリケーションのボタン４０１がホーム画面に表示される。
【００５１】
＜拡張アプリケーションの実行＞
次に、図１０を参照して、拡張アプリケーション部２１０にインストールされたアプリケーションが備えるプログラムの実行処理の流れを説明する。プログラムの実行処理は、ボタン４０１のようにホーム画面４００に表示された任意のアプリケーションのボタンが押下されたタイミングで実行される。或いは、図１１のＳ１１０５や、図示しないがＭＦＰ１０の動作中にログインアプリケーション２１４が無効から有効に切り替えられたタイミングで、プログラム（拡張アプリケーション）の実行が行われる。以下で説明する検知処理は、ＶＭ／ＦＷ部２０９を構成する処理の一部であって、ＣＰＵ１０１によって実行される。以下、後述する全ての処理は、ＣＰＵ１０１によって実行される。ＣＰＵ１０１は、例えばＲＯＭ１０２等のメモリに格納された制御プログラムをＲＡＭ１０３に読み出して実行することにより以下の処理を実現する。
【００５２】
まず、Ｓ１００１で、ＶＭ／ＦＷ部２０９は、図８を用いて説明したアプリケーションの改ざん検知のサブルーチン処理を呼び出して、実行が要求されたプログラムの改ざん検知を行う。続いて、Ｓ１００２で、ＶＭ／ＦＷ部２０９は、改ざん検知処理の戻り値がダイジェストファイルの改ざんを示すか否かを判断する。ダイジェストファイルの改ざんが検知されなければＳ１００３に進む。一方、ダイジェストファイルの改ざんが検知されたときはＳ１００６に進む。
【００５３】
Ｓ１００３で、ＶＭ／ＦＷ部２０９は、改ざん検知処理の戻り値が属性ファイルの改ざんを示すか否かを判断する。属性ファイルの改ざんが検知されなければＳ１００４に進む。一方、属性ファイルの改ざんが検知されたときはＳ１００６に進む。Ｓ１００４で、ＶＭ／ＦＷ部２０９は、改ざん検知処理の戻り値がプログラムファイルの改ざんを示すか否かを判断する。プログラムファイルの改ざんが検知されなければＳ１００５に進み、そうでなければＳ１００６に進む。
【００５４】
Ｓ１００５で、ＶＭ／ＦＷ部２０９は、要求されたプログラムを実行して、プログラム実行処理を終了する。一方、Ｓ１００２、Ｓ１００３、又は、Ｓ１００４でファイルの改ざんが検知されたならば、Ｓ１００６に進み、ＶＭ／ＦＷ部２０９は、要求されたプログラムの属性を判断する。ここで、プログラムの属性は、前述の通りＳ９０６又はＳ９１４においてアプリケーション管理データ９０００に登録済みである。よって、Ｓ１００６で、ダイジェストファイル、又は属性ファイルが改ざんされた場合であっても、当該プログラムの属性をアプリケーション管理データ９０００によって特定することができる。当該プログラムの属性がログインであればＳ１００７に進み、そうでなければＳ１００８に進む。
【００５５】
Ｓ１００７で、ＶＭ／ＦＷ部２０９は、前述のＳ９１３と同様、ログイン属性のアプリケーションが改ざんされたことを示し、かつ、装置の使用を制限するエラー表示をＵＩ部２０２に要求する。要求を受けたＵＩ部２０２はまた、前述のＳ９１３のときと同様、ポップアップ画面７０１を表示して、装置の使用ができないようにする。そして、プログラム実行処理を終了する。
【００５６】
一方、Ｓ１００８で、ＶＭ／ＦＷ部２０９は、前述のＳ９１１と同様、ログイン属性でない汎用アプリケーションが改ざんされたことを示すエラー表示をＵＩ部２０２に要求する。要求を受けたＵＩ部２０２はまた、前述のＳ９１１のときと同様、図５に示すステータス領域５０１のように、当該アプリケーションの改ざんが検知された旨のメッセージを表示する。そして、プログラム実行処理を終了する。
【００５７】
以上説明したように、本実施形態に係る画像処理装置は、当該画像処理装置に保持されている任意のアプリケーションの改ざんを検知し、改ざんが検知されたアプリケーションに基づいて画像処理装置の使用を制限する必要があるか否かを判断する。さらに、本画像処理装置は、判断の結果、画像処理装置の使用を制限する必要がある場合は、当該アプリケーションの改ざんが検知された旨を表示部に表示して、画像処理装置の使用を制限する。一方、画像処理装置の使用を制限する必要がない場合は、当該アプリケーションの改ざんが検知された旨を前記表示部に表示する。なお、画像処理装置の使用を制限する必要がある場合とは、例えばログインアプリケーションが改ざんされた場合などのように、当該アプリケーションが停止してしまうと画像処理装置を自由に使えてしまう場合である。また、本実施形態によれば、このようなログイン属性等を判断するための情報（属性ファイル又はダイジェストファイル）等が改ざんされた場合も画像処理装置の使用を制限する必要があると判断する。これにより、改ざんされたアプリケーションのプログラムがログイン属性であったり、それらを判断できない場合には、改ざんが検知された旨のエラーを表示してＭＦＰ１０の使用を制限し、悪意のある使用を制限することができる。一方で、改ざんされたアプリケーションのプログラムがログイン属性でなければ、ステータス領域５０１に警告を表示するものの、ＭＦＰ１０の使用は継続できるように制御することができ、ユーザビリティを向上させることができる。つまり、本実施形態によれば、改ざんされたアプリケーションの属性や改ざん箇所に応じて、装置の使用制限を切り替えて制御することができる。
【００５８】
＜その他の実施の形態＞
上記第１の実施形態において、ストレージ部２０６上に保持されている、インストールされたアプリケーションが有効であるか無効であるかを含むアプリケーションのステータス情報については、改ざん検知対象としなかった。しかしながら、上記ステータス情報も改ざん検知できるように構成した方が、画像処理装置はより堅牢になる。具体的には下記の通りである。
【００５９】
まず、図１２に示すように、ステータス情報１２００は、ステータスファイル１２１０とダイジェストファイル１２２０とを含んで構成される。また、ダイジェストファイル１２２０は、ステータスファイルのダイジェスト１２２１と、そのダイジェストのダイジェスト１２２２とを含んで構成される。ステータス情報の改ざん検知方法は、図８のＳ８０１乃至Ｓ８０４の処理と同様である。ステータスファイルのダイジェスト１２２１のハッシュ値が、ダイジェストのダイジェスト１２２２と一致するか否かでダイジェストファイル１２２０の改ざんを検知する。また、ステータスファイル１２１０のハッシュ値が、ステータスファイルのダイジェスト１２２１と一致するか否かでステータスファイル１２１０の改ざんを検知する。この処理を、図９の装置起動時のアプリケーション管理処理のＳ９０２の前、及び、図１０のプログラム実行処理のＳ１００１の前に実施するように制御する。そして、この処理でダイジェストファイル１２２０又はステータスファイル１２１０の改ざんが検知されたならば、図１３のようなポップアップ画面１３０１を表示して、装置の使用を制限する。また、アプリケーションの初期化のボタン１３０２を押下すると、当該アプリケーションの初期化処理を実行して、画像処理装置を再起動することができる。なお、ステータス情報に限らず、任意のアプリケーションを管理する上で必要なファイルは、全て改ざん検知の対象とするように構成してもよい。以上のように構成することによって、画像処理装置のアプリケーションに係る改ざん検知をより堅牢にすることができる。
【００６０】
また、上記第１の実施形態では、ログインアプリケーション２１４と言語切替アプリケーション２１５だけがインストールされている例を示した。しかしながら、これはあくまでも一例であって、本発明のアプリケーションは上記に限定されるわけではない。
【００６１】
また、上記第１の実施形態では、ログイン属性のプログラムを備えたアプリケーションが改ざんされたか否かの判断ができないときは、ログイン属性のプログラムを備えたアプリケーションが改ざんされたのと同様に振る舞うよう制御した。より具体的には、装置起動時のアプリケーション管理処理において、ダイジェストファイルが改ざんされた（Ｓ９０３）、或いは、属性ファイルが改ざんされた（Ｓ９０４）と判断したときは、同じポップアップ７０１を表示するように制御した。そして、ポップアップ７０１には、プログラムが改ざんされた旨、又は、属性ファイルが改ざんされた旨のメッセージを含むように制御した。しかしながら、プログラムファイルが改ざんされた（Ｓ９０５）と判断したときと、ダイジェストファイルが改ざんされた（Ｓ９０３）又は属性ファイルが改ざんされた（Ｓ９０４）と判断したときとで、異なるメッセージを表示してもよい。いずれのケースであっても、装置の使用を制限するように構成しさえすれば、本発明の効果を得ることができる。
【００６２】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６３】
１０：ＭＦＰ、１０１：ＣＰＵ、１０２：ＲＯＭ、１０３：ＲＡＭ、１０４：表示コントローラ、１０５：表示部、１０６：操作コントローラ、１０７：操作部、１０８：ｅＭＭＣホストコントローラ、１０９：ｅＭＭＣ、１１０：読取コントローラ、１１１：読取部、１１２：記録コントローラ１１２、１１３：記録部、１１４：ＵＳＢホストコントローラ、１１５：モデム、１１６：ＮＣＵ、１１７：ＮＩＣ
【図１】
2020010228.tif 000003
【図２】
2020010228.tif 000004
【図３】
2020010228.tif 000005
【図４】
2020010228.tif 000006
【図５】
2020010228.tif 000007
【図６】
2020010228.tif 000008
【図７】
2020010228.tif 000009
【図８】
2020010228.tif 000010
【図９】
2020010228.tif 000011
【図１０】
2020010228.tif 000012
【図１１】
2020010228.tif 000013
【図１２】
2020010228.tif 000014
【図１３】
2020010228.tif 000015