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