説明

改ざん検知装置及び改ざん検知方法

【課題】プログラムの起動に要する時間を短縮することが可能な改ざん検知装置及び改ざん検知方法を提供する。
【解決手段】
ブロックプログラム識別情報と、当該ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値とを関連付けて記憶するハッシュ値記憶手段507と、前記複合機100が前記プログラムを起動すると、当該プログラムの起動と並行して、前記ハッシュ値記憶手段507に記憶された特定のブロックプログラム識別情報702を選択する選択手段502と、選択された特定のブロックプログラム識別情報702に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出手段508と、前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、両者が一致しない場合に、前記プログラムが改ざんされたと検知する検知手段510とを備えることを特徴とする改ざん検知装置を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、改ざん検知装置及び改ざん検知方法に関し、詳しくは、プログラムの起動に要する時間を短縮することが可能な改ざん検知装置及び改ざん検知方法に関する。
【背景技術】
【0002】
近年、1台の機器でコピーとプリンタとスキャナとファクシミリとしての機能を実現した複写機、複合機等の画像形成装置が市販されるようになってきた。当該画像形成装置は、撮像部と印刷部と通信部等のハードウェアを備えると共に、コピーとプリンタとスキャナとファクシミリに対応する4種類のソフトウェアを備える。当該ソフトウェアが、ユーザの要求、指示に応じて適宜切り替わることにより、画像形成装置がコピーやプリンタやスキャナやファクシミリとして機能する。
【0003】
前記画像形成装置を各機能毎に機能させるためには、アプリケーションやプラットフォーム等の様々なプログラム(ファームウェアその他のソフトウェア)が必要となる。当該プログラムは、画像形成装置の記憶媒体に予め記憶させておいたり、新しいバージョンのプログラムが開発された場合は、新たなプログラムに更新されたりする。
【0004】
しかしながら、上述したプログラムは、常時、画像形成装置の記憶媒体に記憶された状態であるため、悪意あるユーザが、人気のない時期を見計らって、当該記憶媒体にアクセスし、当該プログラムを改ざん(改変、文字化け等)することがある。又、更新可能なプログラムでは、画像形成装置が新しいプログラムを汎用のメモリカードやネットワークを介して授受するため、当該授受の途中で、上述のようにプログラムの改ざんが実行される場合がある。
【0005】
このような問題を解決するために、特開2004−299389号公報(特許文献1)には、当該画像形成装置を機能させるプログラムが記憶された記憶媒体と、前記記憶媒体に記憶された前記プログラムを更新するためのプログラムが記憶された更新用記憶媒体をセットするための更新用記憶媒体セット手段とを備える画像形成装置が開示されている。当該画像形成装置は、前記更新用記憶媒体から取得される前記プログラムに係る電子署名の正当性を条件に、前記記憶媒体に記憶された前記プログラムを、前記更新用記憶媒体から取得される前記プログラムに更新するプログラム更新手段を備える。当該構成により、画像形成装置を機能させるプログラムを新たなプログラムに更新する場合に関して、その新たなプログラムの信頼性を向上させることを可能とするとしている。
【0006】
又、特開2004−334392号公報(特許文献2)には、読み取り対象の記録媒体から、所定のプログラム、前記所定のプログラムを要約化及び暗号化した要約暗号化情報を含む記録情報を読み取る読取手段と、前記要約暗号化情報を復号化した第1の要約化情報と、前記所定のプログラムを新たに要約化した第2の要約化情報とが一致する場合に、前記所定のプログラムを実行し、一致しない場合には、前記所定のプログラムを実行しないように制御する制御手段とを備えたことを特徴とする記録媒体読取装置が開示されている。当該構成により、記録媒体の不正使用を防止するという優れた効果を有する記録媒体読取装置を提供することが出来るとしている。
【0007】
又、特開2008−112443号公報(特許文献3)には、電子装置であって、メモリと、認証されたメモリ内容に基づいてハッシュ計算を遂行して有効ハッシュ値を発生し、前記メモリの内容についてハッシュ計算を周期的に遂行して検査ハッシュ値を発生するマイクロプロセッサとを含む電子装置が開示されている。当該マイクロプロセッサは、更に、前記有効ハッシュ値を認証し、前記検査ハッシュ値を認証された前記有効ハッシュ値と比較して前記メモリに対する権限のないアクセスを検出し、前記検査ハッシュ値が前記認証された有効ハッシュ値と一致しない場合に前記電子装置を動作停止して、前記権限のないメモリアクセスを妨げる。当該構成により、電子装置内の電子メモリ内容がいたずら(改ざん)されていないことを確かめることが可能となるとしている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2004−299389号公報
【特許文献2】特開2004−334392号公報
【特許文献3】特開2008−112443号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献1−3に記載の技術では、いずれも、改ざん検知の対象となるプログラム全体に対して所定のハッシュ関数を適用し、当該適用によって得られたハッシュ値に基づいてプログラムの改ざん検知を実行している。ここで、前記プログラム全体に対して所定のハッシュ関数を適用する場合、プログラム全体のサイズが膨大であると、CPUのハッシュ値の算出負担(演算負担)が増大し、算出速度(演算速度)、算出効率(演算効率)が低下する。その結果、前記ハッシュ値を算出するために要する時間(ハッシュ値の算出時間)は、長期化するという問題がある(例えば、数分−数十分等)。
【0010】
そして、プログラムの改ざんを検知する場合、通常、プログラムを起動する際に実行することから、上述のように、ハッシュ値の算出時間が長期化すると、プログラムを起動するために要する時間、つまり、プログラムの起動開始から、プログラムの改ざんの検知、プログラム(データ)の読み込み、プログラムの実行までの時間(プログラムの起動時間)も長期化することになる。その結果、上述した特許文献1−3に記載の技術では、プログラムの起動時間が長期化するという問題がある。
【0011】
一方、プログラムが改ざんされた場合、プログラム全体(プログラムの実体であるバイナリデータ)のうち、改ざんされたデータの後続のプログラムは、改ざん前の当該後続のプログラムと全く異なるデータに変更される。つまり、プログラム全体に対してハッシュ関数を適用しなくても、当該改ざんにより変更されたプログラムの一部に対してハッシュ関数を適用すれば、プログラムの改ざんを検知することが出来ることになる。このような実情を適切に利用すれば、上述したハッシュ値の算出時間を短縮出来る場合がある。
【0012】
そこで、本発明は、上記問題を解決するためになされたものであり、プログラムの起動に要する時間を短縮することが可能な改ざん検知装置及び改ざん検知方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
上述した課題を解決し、目的を達成するために、本発明に係る改ざん検知装置は、装置のプログラムが改ざんされたか否かを検知する改ざん検知装置であり、当該改ざん検知装置において、前記プログラム全体を所定数のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報と、前記ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値とを関連付けて記憶するハッシュ値記憶手段と、前記装置が前記プログラムを起動すると、当該プログラムの起動と並行して、前記ハッシュ値記憶手段に記憶された特定のブロックプログラム識別情報を選択する選択手段とを備える。更に、当該改ざん検知装置は、選択された特定のブロックプログラム識別情報に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出手段と、前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、改ざんの有無を判定する検知手段とを備える。
【0014】
当該構成により、前記装置の前記プログラムの起動と並行して、プログラムの改ざんの検知がなされる。そのため、前記プログラムの起動時間に、前記プログラムの改ざんの検知に要する時間、例えば、ハッシュ値の算出時間を削除することになり、当該プログラムの起動時間全体を大幅に短縮することが可能となる。又、プログラムの起動と並行してなされるプログラムの改ざん検知は、当該プログラム全体から対応ハッシュ値を算出するのではなく、プログラム全体の一部であるブロックプログラムから対応ハッシュ値を算出することでなされる。そのため、ハッシュ値の算出負担(演算負担)を軽減させ、算出速度(演算速度)、算出効率(演算効率)の向上を図り、前記ハッシュ値の算出時間の短縮化、プログラムの改ざん検知の応答速度の迅速化を図ることが可能となる。
【0015】
又、前記選択手段は、前記装置が前記プログラムを起動すると、当該プログラムの実行中に、前記ハッシュ値記憶手段に記憶された全てのブロックプログラム識別情報を選択するまで、予め設定された所定の設定時間毎に、既に選択したブロックプログラム識別情報と異なるブロックプログラム識別情報の選択を継続するよう構成することが出来る。
【0016】
又、前記選択手段は、特定のブロックプログラム識別情報を選択する場合に、プログラム全体のうち、半分から後尾までのデータを含むブロックプログラムのブロックプログラム識別情報を他のブロックプログラム識別情報よりも優先して選択する構成とすることが出来る。
【0017】
更に、前記検知手段により前記プログラムの改ざんが検知された場合に、不一致の比較ハッシュ値に対応するブロックプログラム識別情報を優先選択記憶手段に一時記憶させ、改ざんされたプログラムが修復されると、一時記憶されたブロックプログラム識別情報を前記優先選択記憶手段から消去する機能停止手段を備え、前記選択手段は、前記優先選択記憶手段に前記ブロックプログラム識別情報が一時記憶されている場合に、当該ブロックプログラム識別情報を優先して選択するよう構成することが出来る。
【0018】
又、前記機能停止手段は、前記装置の動作を停止させるとともに当該装置に備えられた操作部にエラー画面を表示させる処理、不一致の比較ハッシュ値に対応するブロックプログラム識別情報のブロックプログラムを改ざん解析記憶手段に記憶させる処理、前記プログラムへのアクセスログ又はネットワークから前記プログラムへの通信ログを前記改ざん解析記憶手段に記憶させる処理、ユーザ情報を記憶しているユーザ情報記憶手段へのアクセス又はネットワークへのアクセスを禁止させる処理のうち、少なくともいずれかの処理を実行するよう構成することが出来る。
【0019】
又、前記ハッシュ値記憶手段は、前記ブロックプログラムに所定の付加情報を付加した後のプログラムに、前記ハッシュ関数を適用して得られるハッシュ値を比較ハッシュ値として記憶し、前記ハッシュ値算出手段は、前記ブロックプログラムに前記付加情報を付加した後のプログラムに、前記ハッシュ関数を適用して対応ハッシュ値を算出するよう構成することが出来る。
【0020】
又、本発明は、前記改ざん検知装置を備えた画像形成装置を提供することが出来る。
【0021】
又、本発明は、装置のプログラムが改ざんされたか否かを検知する改ざん検知方法として提供することが出来る。即ち、当該改ざん検知方法において、前記装置が前記プログラムを起動すると、当該プログラムの起動と並行して、前記プログラム全体を所定数のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報と、前記ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値とを関連付けて記憶するハッシュ値記憶手段を参照する参照ステップと、前記ハッシュ値記憶手段に記憶された特定のブロックプログラム識別情報を選択する選択ステップとを含む。更に、当該改ざん検知方法は、選択された特定のブロックプログラム識別情報に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出ステップと、前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、前記プログラムの改ざんの有無を判定する検知ステップとを含む。当該構成としても、上述と同様の効果を得ることが可能となる。
【発明の効果】
【0022】
本発明の改ざん検知装置及び改ざん検知方法によれば、プログラムの起動に要する時間を短縮することが可能となる。
【図面の簡単な説明】
【0023】
【図1】本発明に係る複合機の内部の全体構成を示す概念図である。
【図2】本発明に係る画像読取部の拡大図である。
【図3】本発明に係る操作部の全体構成を示す概念図である。
【図4】本発明に係る複合機及び改ざん検知部の制御系ハードウェアの構成を示す図である。
【図5】本発明の実施形態における複合機及び操作部の機能ブロック図である。
【図6】本発明の実施形態の実行手順を示すためのフローチャートである。
【図7】本発明の実施形態に係るタッチパネル上に表示された初期画面の一例を示す図(図7(A))と、本発明の実施形態に係るハッシュ値テーブルの一例を示す図(図7(B))とである。
【図8】本発明の実施形態に係るブロックプログラムの一例を示す図(図8(A))と、本発明の実施形態に係る改ざんされる前のプログラムと、改ざん後のプログラムの一例を示す図(図8(B))とである。
【図9】本発明の実施形態に係る優先選択テーブルの一例を示す図(9(A))と、本発明の実施形態に係るエラー画面の一例を示す図(9(B))である。
【発明を実施するための形態】
【0024】
以下に、添付図面を参照して、本発明の改ざん検知装置を備えた画像形成装置の実施形態について説明し、本発明の理解に供する。尚、以下の実施形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。又、フローチャートにおける数字の前に付されたアルファベット「S」はステップを意味する。
【0025】
<画像形成装置及び改ざん検知装置>
以下に、本発明に係る改ざん検知装置(例えば、改ざん検知部)を備えた画像形成装置(例えば、複合機)について説明する。
【0026】
図1は、本発明に係る複合機の内部の全体構成を示す概念図である。ただし、本発明に直接には関係しない各部の詳細は省略している。
【0027】
本発明の複合機100は、例えばプリンタやスキャナ単体、あるいはプリンタ、コピー、スキャナ、ファックス等を備えた複合機等が該当する。尚、一例として複合機を利用して原稿のコピー機能を提供する際の複合機100の動作を簡単に説明する。
【0028】
ユーザが複合機100を利用して例えば原稿Pの印刷を行う場合、複合機100の電源を投入すると、複合機100の制御部(図示せず)が、記憶部(図示せず)に記憶された画像形成に関するプログラムを起動する。当該制御部がプログラムを起動すると、当該プログラムの起動(実行)と並行して、複合機100の内部に組み込まれた(接続された)改ざん検知部(図示せず)が、当該プログラムの改ざんの検知を実行する。
【0029】
前記制御部が、以下に示す各部(駆動部)を、画像形成を実行可能な通常状態へ遷移(移行)させたり、操作部103に対して画像形成に関する画面(初期画面)を表示させたりしている間に、前記改ざん検知部が、前記プログラムの改ざんを検知すると、前記制御部は、前記改ざん検知部からの改ざん結果を受けて、画像形成に関する全ての機能を停止し、原稿台101近傍に供えられた操作部103に対してエラー画面を表示させる。
【0030】
一方、前記改ざん検知部が前記プログラムの改ざんを検知しない場合、前記制御部が、前記プログラムを起動してから、ユーザの指示(例えば、電源オフのキーの押下等)を受けて前記プログラムの実行を停止するまでの間、所定の設定時間毎に、前記プログラムの改ざんの検知を繰り返し実行することになる。
【0031】
さて、ユーザは、前記初期画面を見ながら、原稿Pを図1に示す原稿台101、或いは載置台102に載置し、前記初期画面を介してコピー条件を入力し、印刷の指示を行う。操作部103の構成については後述する。当該印刷の指示があると、前記駆動部が動作することで、印刷が行われる。
【0032】
即ち、図1に示すように、本発明の複合機100は、本体104と、本体104の上方に取り付けられたプラテンカバー105を備える。本体104の上面は原稿台101が設けられており、原稿台101は、プラテンカバー105によって開閉されるようになっている。プラテンカバー105は、自動原稿給紙装置106と載置台102と排紙台107が設けられている。
【0033】
自動原稿給紙装置106は、プラテンカバー105の内部に形成された原稿搬送路108と、プラテンカバー105の内部に備えられたピックアップローラ109や搬送ローラ110A、110B等で構成される。原稿搬送路108は、載置台102から、本体104に設けられた画像読取部111にて読み取りが行なわれる読取位置Xを経由して、排紙台107に通じる原稿の搬送路である。
【0034】
自動原稿給紙装置106は、載置台102に載置された複数の原稿から1枚ずつ原稿をピックアップローラ109で搬送路内108に引き出し、搬送ローラ等によって引き出した原稿を、読取位置Xを通過させて、搬送ローラ110Bにより排紙台107に排紙する。読取位置Xを通過する時に原稿は画像読取部111にて読み取られる。
【0035】
前記画像読取部111は、原稿台101の下方に設けられており、図2にその詳細が示されている。画像読取部111は、原稿台101を照射する走査方向に長い光源112と、原稿台からの光を選択的に通過させるスリット113と、原稿台からの光を導くミラー114とを備える第一の移動キャリッジ115や、第一の移動キャリッジ115からの反射光を再度反射するミラー116A、116Bを備える第二の移動キャリッジ117、更にミラーで導かれた光を光学的に補正するレンズ群118、当該レンズ群118より補正された光を受光する撮像素子119、撮像素子119にて受光した光を電気信号に変換し、必要に応じて補正処理・画質処理・圧縮処理などを行う画像データ生成部120とで構成されている。
【0036】
自動原稿給紙装置106上の原稿を読み取る場合には、光源112は、読取位置Xを照射できる位置に移動して発光する。光源112からの光は、原稿台101を透過して読取位置Xを通過する原稿にて反射し、スリット113、ミラー114、116A、116B、レンズ群118によって撮像素子119に導かれる。撮像素子119は、受光した光を電気信号に変換して画像データ生成部120に送信する。画像データ生成部120には、上記撮像素子119にて受光された光がR(レッド)、G(グリーン)、B(ブルー)のアナログ電気信号として入力され、ここでアナログ−デジタル変換され、即ちデジタル化される。さらに、画像データ生成部120では、順次変換されたデジタル信号を単位データとし、これら単位データを補正処理、画質処理、圧縮処理等することで複数の単位データからなる画像データを生成する。
【0037】
又、画像読取部111は、自動原稿給紙装置106で搬送される原稿だけでなく、原稿台101に載置された原稿も読み取ることが可能となっている。原稿台101に載置された原稿を読み取る場合は、第一のキャリッジ114は、光源112を発光しながら副走査方向に移動し、光源112から撮像素子119までの光路長を一定にするために、第二の移動キャリッジ117は第一の移動キャリッジ115の1/2の速度で撮像素子119方向に移動する。
【0038】
撮像素子119は、自動原稿給紙装置106に搬送された原稿のときと同様に、ミラー114、116A、116Bに導かれた光に基づいて原稿台101に載置された原稿からの光を電気信号に変換し、これに基づいて画像データ生成部120が画像データを生成し、画像記憶部120Bに記憶する。
【0039】
本体104の画像読取部111の下方には、画像データを印刷する画像形成部121を備えている。画像形成部121が印刷できる画像データは、上記のように画像データ生成部120にて生成されたものや、その他、複合機100とLAN等のネットワークに接続されたパーソナルコンピューター等の端末から通信部(ネットワークインターフェイス、図示せず)を介して受信したものである。尚、通信部は、ファクシミリ送受信機能、電子メール送受信機能等で用いられる。
【0040】
さて、画像形成部121が行う印刷方式には、電子写真方式が用いられている。即ち、感光ドラム122を帯電器123で一様に帯電させ、その後レーザ124で感光ドラム122を照射して感光ドラム122に潜像を形成し、現像器125で潜像にトナーを付着させて可視像を形成し、転写ローラにて可視像を転写媒体に転写する方式である。
【0041】
尚、フルカラー画像に対応した複合機では、上記現像器(ロータリー現像器)125が、図1の紙面に対して垂直方向に構成される回転軸を中心として周方向に回転させられ、対応する色のトナーが格納された現像ユニットが感光ドラム122の対向位置に配置される。この状態で、感光ドラム122上の潜像が、現像器125が格納するトナーにより現像され、中間転写ベルト126Aに転写される。なお、現像器125は、イエロー(Y)、シアン(C)、マゼンタ(M)、ブラック(K)の各トナーをそれぞれ格納する4つの現像ユニット125(Y)、(C)、(M)、(K)を有している。上記中間転写ベルト126Aへの転写を上記各色毎に繰り返すことにより、当該中間転写ベルト126A上にフルカラー画像が形成される。
【0042】
可視像が印刷される転写媒体、即ち用紙は、給紙カセット132、133、134などの給紙トレイに載置されたものである。
【0043】
画像形成部121が印刷を行う際には、何れか1つの給紙トレイから転写媒体1枚を、ピックアップローラ135を用いて引き出し、引き出した転写媒体を搬送ローラ136やレジストローラ137で中間転写ベルト126Aと転写ローラ126Bの間に送り込む。
【0044】
画像形成部121は、中間転写ベルト126Aと転写ローラ126Bの間に送り込んだ転写媒体に、上記中間転写ベルト126A上の可視像を転写すると、可視像を定着させるために、搬送ベルト127で定着部128(定着装置)に転写媒体を送る。定着部128は、ヒータが内蔵された加熱ローラ129と、所定の圧力で加熱ローラ129に押し当てられた加圧ローラ130とで構成されている。加熱ローラ129と加圧ローラ130の間を転写媒体が通過すると、熱と転写媒体への押圧力によって可視像が転写媒体に定着する。定着が行われた転写媒体は排紙トレイ131に排紙される。
【0045】
上記手順により、複合機100はコピー機能の処理をユーザに提供する。尚、前記改ざん検知部は、前記制御部が画像形成に関するプログラムを起動する際に、当該プログラムの改ざんを検知したが、例えば、前記制御部が所定のプログラム(ファクシミリ機能プログラム等)を起動する際には、同様に、当該プログラムの起動と並行して、当該改ざん検知部が当該プログラムの改ざんを検知することになる。
【0046】
図3は、本発明に係る操作部の全体構成を示す概念図である。
【0047】
ユーザは、前記操作部103を用いて、上述のような画像形成についての設定条件等を入力したり、入力された設定条件等を確認したりする。前記設定条件等が入力される場合、前記操作部103に備えられたタッチパネル301(操作パネル)、タッチペン302、操作キー303が用いられる。
【0048】
前記タッチパネル301には、アナログ抵抗膜方式が採用され、透光性を有する上部フィルムと下部ガラス基板とがスペーサを介して重ね合わされた構成となっており、上部フィルムと下部ガラス基板との各々の対向面には、ITO(Indium Tin Oxide)等からなる透明電極層が設けられている。更に、上部フィルムがユーザにより押下されると、当該押下位置に対応する上部フィルム側の透明電極層と下部ガラス基板側の透明電極層とが接触するよう構成されている。上部フィルム又は下部ガラス基板に電圧を印加し、下部ガラス基板又は上部フィルムから押下位置に対応する電圧値を取り出すことにより、当該電圧値に対応する座標値(押下位置)を検出する。検出された押下位置が、タッチパネル上に表示されたキーボード画面内の文字キー等の表示領域内に含まれると、当該文字が入力される。尚、文字キーの他に、例えば、キーボードキー、設定条件キー等であっても同様である。
【0049】
又、下部ガラス基板の下方には、LCD(Liquid Crystal Display)等の表示部が設けられており、当該表示部が、例えば、プログラムの改ざんが検知された場合のエラー画面、初期画面等の画面を表示することにより、タッチパネル上に特定の画面が表示される。これにより、タッチパネル301には、設定条件等を入力する機能と前記画面を表示する機能が兼ね備えられる。
【0050】
又、タッチパネル301の近傍には、タッチペン302が備えられており、ユーザがそのタッチペン302の先をタッチパネル301に接触させると、当該接触位置(押下位置)に対応する座標値が、上記と同様に出力され、ユーザはタッチペン302により、表示された文字キー等を押下・選択することが可能となる。
【0051】
更に、タッチパネル301近傍には、所定数の操作キー303が設けられ、例えば、テンキー304、スタートキー305、クリアキー306、ストップキー307、リセットキー308、電源キー309が備えられている。
【0052】
次に、図4を用いて、複合機100及び改ざん検知部の制御系ハードウェアの構成を説明する。図4は、本発明に係る複合機及び改ざん検知部の制御系ハードウェアの構成を示す図である。ただし、本発明に直接には関係しない各部の詳細は省略している。
【0053】
複合機100の制御回路は、CPU(Central Processing Unit)401、ROM(Read Only Memory)402、RAM(Random Access Memory)403、HDD(Hard Disk Drive)404、各駆動部に対応するドライバ405を内部バス406によって接続している。前記CPU401は、例えば、RAM403を作業領域として利用し、前記ROM402、HDD404等に記憶されているプログラムを実行し、当該実行結果に基づいて前記ドライバ405、操作部103、改ざん検知部408からのデータや指示を授受し、上記図1に示した各駆動部の動作を制御する。また、前記駆動部以外の後述する各手段(図5に示す)についても、前記CPU401がプログラムを実行することで当該各手段を実現する。
【0054】
又、制御回路の内部バス406には、内部インターフェイス407も接続されており、当該内部インターフェイス407は、改ざん検知部408の制御回路と複合機100の制御回路とを接続する。CPU401は、内部インターフェイス407を介して改ざん検知部408の制御回路からの命令信号を受信したり、改ざん検知部408の制御回路へ命令信号、データ等を送信したりする。
【0055】
又、改ざん検知部408の制御回路には、内部バス412に、CPU409、ROM410、RAM411、内部インターフェイス413を備える。複合機100のCPU401が、複合機100のROM402又はRAM403に記憶された所定のプログラムを起動する際に、改ざん検知部408のCPU409が、内部インターフェイス413を介して、当該複合機100のCPU401から改ざん検知の命令信号を受信したり、又はプログラムの起動に関する命令信号を受信したりする。又、改ざん検知部408のCPU409、ROM410、RAM411の機能も上記と同様であり、後述する各手段(図5に示す)についても、前記CPU409がプログラムを実行することで当該各手段を実現する。前記ROM410、RAM411には、以下に説明する各手段を実現するプログラムやデータが記憶されている。
【0056】
<本発明の実施形態>
次に、図5、図6を参照しながら、本発明の実施形態に係る実行手順について説明する。図5は、本発明の複合機及び改ざん検知部の機能ブロック図である。図6は、本発明の実行手順を示すためのフローチャートである。
【0057】
ユーザが複合機100の電源を投入すると、複合機100の制御手段501が、予め設定された初期のプログラム(例えば、画像形成に関するプログラム)の起動を開始する(図6:S101)。
【0058】
制御手段501は、前記プログラムの起動をする際に、当該プログラムの改ざんを検知する旨を、改ざん検知部408の選択手段502に通知する。次に、当該制御手段501は、当該プログラムの改ざんの有無の結果を得ることなく、プログラム記憶手段503から、特定のプログラム識別情報(例えば、プログラムの名称「初期プログラム」等)に対応するプログラム全体のデータを読み出し、当該プログラムを実行する。
【0059】
図7(A)は、本発明の実施形態に係るタッチパネル上に表示された初期画面の一例を示す図である。
【0060】
前記初期プログラムを実行した制御手段501は、表示受付手段504に、画像形成に関する初期画面(図7(A))をタッチパネルに表示させたり、画像形成手段505に、画像形成に関する駆動部を通常状態へ移行させたりする。そして、ユーザは、タッチパネルに表示した初期画面を見ながら、画像形成に関する設定条件を入力したり、スタートキーを押下したりして、複合機100に画像形成処理を実行させることになる。
【0061】
一方、前記制御手段501による前記通知を受けた選択手段502は、前記制御手段501によるプログラムの起動(実行)と並行して、当該制御手段501から改ざん検知の対象となるプログラムのプログラム識別情報(「初期プログラム」)を取得する。次に、選択手段502は、優先選択記憶手段506を参照し、当該優先選択記憶手段506に、取得したプログラム識別情報に対応したブロックプログラム識別情報(後述)が一時記憶されているか否か判定する(図6:S102)。
【0062】
このように、前記プログラムの起動時間のうち、当該プログラムの改ざんの検知に要する時間、例えば、ハッシュ値の算出時間を削除することになり、当該プログラムの起動時間全体を大幅に短縮することが可能となる。
【0063】
さて、前記判定の結果、前記プログラム識別情報に対応したブロックプログラム識別情報が一時記憶されている場合は(図6:S102YES)、前記選択手段502は、当該ブロックプログラム識別情報を最優先で選択することになるが(図6:S104)、その説明は後述する。
【0064】
一方、前記判定の結果、前記プログラム識別情報に対応したブロックプログラム識別情報が一時記憶されていない場合(図6:S102NO)、前記選択手段502は、ハッシュ値記憶手段507に予め記憶されているハッシュ値テーブルを参照する(図6:S103)。
【0065】
図7(B)は、本発明の実施形態に係るハッシュ値テーブルの一例を示す図である。図8(A)は、本発明の実施形態に係るブロックプログラムの一例を示す図である。
【0066】
ハッシュ値テーブル700には、図7(B)に示すように、前記プログラム識別情報701(例えば、「初期プログラム」701a)と、当該プログラム全体を所定数(分割数、例えば、「10」)のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報702(例えば、「A001」702a)と、当該ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値703(例えば、「98765」703a、ダイジェスト情報とも言う)とが関連付けて記憶される。
【0067】
ここで、前記ブロックプログラム706は、図8(A)に示すように、プログラム全体801(プログラムの実体であるバイナリデータに対応)を、先頭のデータ802を含むデータ群から順番に、所定数(分割数)のブロックに均等分割することにより得られる。又、前記ブロックプログラム803の所定数は、分割後のブロックプログラム803に前記ハッシュ関数を適用してハッシュ値を算出した場合に、当該ハッシュ値を算出するために要する時間(ハッシュ値の算出時間)が、予め設定された所定時間(例えば、数秒−数十秒)未満となるように決定されている。
【0068】
これにより、ハッシュ値の算出に要する時間を必要以上に長期化しないように制御することが可能となる。尚、前記ブロックプログラム803の所定数は、プログラム全体(バイナリデータ全体)のサイズに応じて適宜決定されるものの、例えば、初期プログラム(例えば、数十MB)であれば、10個−100個に決定される。
【0069】
又、ブロックプログラム識別情報702は、当該ブロックプログラム803が分割元のプログラム全体801のうち、どこの領域に位置するかを示す情報(例えば、プログラムが記憶されているメモリの領域又は位置を示すアドレス)に対応している。
【0070】
図8(A)では、プログラムの先頭のデータ802を含むブロックプログラム803aには、ブロックプログラム識別情報として最初の順位を示す「A001」が割り付けられている。又、前記先頭のデータ802を含むブロックプログラム803aを基準として、後続のブロックプログラム803bには、順次低い順位のブロックプログラム識別情報(例えば、「A001」の直後には「A002」)が割り付けられている。図8(A)では、所定数が10個であるため、後尾のデータを含むブロックプログラム803zには、最後の順位を示すブロックプログラム識別情報(「A010」)が割り付けられている。これにより、ブロックプログラム識別情報に基づいてブロックプログラムの領域又は位置を特定することが可能となる。
【0071】
さて、ハッシュ値テーブル700を参照した選択手段502は、先ほど取得したプログラム識別情報(「初期プログラム」)と、ハッシュ値テーブル700のプログラム識別情報701とを比較し、一致したプログラム識別情報701(「初期プログラム」701a)に属する所定数のブロックプログラム識別情報702を特定する。次に、選択手段502が、所定数のブロックプログラム識別情報702のうち、特定のブロックプログラム識別情報702を選択する(図6:S104)。
【0072】
ここで、選択手段502が、特定のブロックプログラム識別情報702を選択する場合、どのように選択しても構わないが、例えば、プログラムの種類、目的、用途に応じて、予め設定された選択数(例えば、1つ)のブロックプログラム識別情報を選択するよう構成する。
【0073】
当該構成とすると、選択するブロックプログラム識別情報の選択数が増加すれば、ハッシュ値の算出時間が増大するものの、安全性を更に向上させることが可能となる。例えば、起動の迅速化よりも安全性を優先させるプログラム(ユーザ情報が含まれるアドレス帳機能プログラム)であれば、前記選択数を増加して(例えば、5つ)、安全性を確保すればよいし、安全性よりも起動の迅速化を優先させるプログラム(ユーザ情報を全く含まない初期プログラム)であれば、前記選択数を減少して、起動時間の短縮を図れる。尚、前記選択数は、プログラムの種類、目的、用途に応じて、管理者等の特定のユーザが適宜設定するよう構成すればよい。
【0074】
更に、選択手段502が、例えば、プログラム全体のうち、半分から後尾までのデータを含むブロックプログラムのブロックプログラム識別情報を他のブロックプログラム識別情報よりも優先して選択する。具体的には、選択手段502が、最も低い順位のブロックプログラム識別情報(「A010」)を特定のブロックプログラム識別情報として選択する。
【0075】
図8(B)は、本発明の実施形態に係る改ざんされる前のプログラムと、改ざん後のプログラムの一例を示す図である。
【0076】
プログラム全体のうち、所定の箇所のデータが改ざんされた場合、当該改ざんされたデータ(内容)に応じて、当該改ざんされたデータの後続のプログラムは変更される。例えば、図8(B)に示すように、プログラム全体のうち、中央部のデータ804が改ざんされて、新たに所定のデータ805が追加された場合、当該追加分805だけ、改ざんされたデータの後続のプログラム806は後方にシフトし、当該後続のプログラム806は、改ざん前の後続のプログラム807と全く異なるデータとなる。尚、中央部のデータ804のうち、所定のデータが削除された場合は、当該削除分だけ、改ざんされたデータの後続のデータは前方にシフトし、その結果、当該後続のデータは、改ざん前の後続のデータと全く異なるデータとなる。
【0077】
すると、改ざん後の後続のデータ806を一部でも含むブロックプログラム808の対応ハッシュ値は、当該ブロックプログラム808に対応する改ざん前のブロックプログラム809の比較ハッシュ値と全く異なる値となる。
【0078】
更に、最も低い順位のブロックプログラム識別情報のブロックプログラムであれば、確実に、プログラム全体の半分より後続のプログラムに対応する。そのため、当該ブロックプログラムには、改ざん後の後続のプログラムを一部でも含んでいる可能性が極めて高い。上述した構成を採用することにより、選択手段502は、改ざんによるデータ変更の影響を受け易いブロックプログラムのブロックプログラム識別情報を選択することが可能となる。その結果、仮に、前記プログラムの起動(実行)と並行して、当該プログラムの改ざんの検知を実行したとしても、早期に当該プログラムの改ざんの検知を発見することが可能となる。尚、改ざんされたデータが改ざん前のデータと比較して同等(同一のビット数)である場合も想定されるが、この場合は、稀であるため、上述した構成で問題はない。
【0079】
さて、選択手段502が、特定のブロックプログラム識別情報(「A010」)を選択すると、その旨をハッシュ値算出手段508に通知する。当該通知を受けたハッシュ値算出手段508は、選択手段502からプログラム識別情報(「初期プログラム」)と特定のブロックプログラム識別情報(「A010」)とを取得する。次に、ハッシュ値算出手段508は、複合機100のプログラム記憶手段503から前記プログラム識別情報(「初期プログラム」)に対応するプログラム全体から、特定のブロックプログラム識別情報(「A010」)に対応するブロックプログラムを取得する(図6:S105)。そして、ハッシュ値算出手段508は、ハッシュ関数記憶手段509に予め記憶されたハッシュ関数を参照して、取得したブロックプログラム(バイナリデータ)に当該ハッシュ関数を適用して対応ハッシュ値を算出する(図6:S106)。
【0080】
ここで、ハッシュ値算出手段508が対応ハッシュ値を算出する場合、ブロックプログラムのサイズが、プログラム全体のサイズと比較して一部(小さい)であることから(例えば、所定数が10個であれば、10分の1)、ハッシュ値の算出負担(演算負担)が軽減され、算出速度(演算速度)の向上、算出効率(演算効率)の向上が図れる。更に、所定のブロックプログラムに対するハッシュ値の算出時間が、プログラム全体に対するハッシュ値の算出時間と比較して、著しく短縮される。例えば、プログラムデータ全体に対応するハッシュ値の算出時間が、数分である場合、ブロックプログラムに対応するハッシュ値の算出時間は、数秒程度となる。これにより、ハッシュ値の算出時間が飛躍的に短縮されることが理解される。
【0081】
さて、ハッシュ値算出手段508が対応ハッシュ値を算出すると、その旨を検知手段510に通知する。当該通知を受けた検知手段510は、ハッシュ値記憶手段509のハッシュ値テーブル700を参照して、特定のブロックプログラム識別情報(「A010」)に対応する比較ハッシュ値(「65432」)を取得する。そして、検知手段510は、算出された対応ハッシュ値と、取得した比較ハッシュ値とを比較して、改ざんの有無を判定する(図6:S107)。
【0082】
前記比較(判定)の結果、両者が一致した場合(図6:S107YES)、プログラムは改ざんされていないことになる。この場合、検知手段510は、その旨を前記選択手段502に通知する。当該通知を受けた選択手段502は、当該プログラムの実行中(起動中、動作中)に、前記ハッシュ値テーブル700を参照して、当該ハッシュ値テーブル700に記憶された全てのブロックプログラム識別情報を選択したか否かを判定する(図6:S108)。
【0083】
尚、前記比較の結果、前記対応ハッシュ値と前記比較ハッシュ値とが不一致の場合は(図6:S107NO)、後述する。
【0084】
前記ハッシュ値テーブル700に記憶された全てのブロックプログラム識別情報を選択したか否かの判定方法は、例えば、選択手段502が、参照したハッシュ値テーブル700のブロックプログラム識別情報と、既に選択したブロックプログラム識別情報とを比較して、不一致のブロックプログラム識別情報がハッシュ値テーブル700に存在するか否かによってなされる。
【0085】
前記判定の結果、前記ハッシュ値テーブル700に記憶された全てのブロックプログラム識別情報を選択していない場合(図6:S108NO)、選択手段502は、予め備えられている所定のタイマー511を起動し、検知手段510により所定のブロックプログラムの改ざんの有無の結果を受けた時点からの経過時間を計測する(図6:S109)。そして、選択手段502は、設定時間記憶手段512に予め記憶されている設定時間を取得して、前記経過時間が前記設定時間を超過するまで待機する(図6:S110NO)。
【0086】
ここで、前記設定時間は、プログラムの種類、目的、用途、サイズに応じて、管理者等の特定のユーザが適宜設定するよう構成される。例えば、プログラムが初期プログラムであり、ブロックプログラムの所定数が10個である場合、1時間当たりに10回、ブロックプログラムの改ざん検知がなされるように、前記設定時間は6分と設定される。
【0087】
前記経過時間が前記設定時間を超過すると(図6:S110YES)、選択手段502は、前記ハッシュ値テーブル700から、既に選択したブロックプログラム識別情報と異なるブロックプログラム識別情報(未だに選択していないブロックプログラム識別情報)を選択する(図6:S104)。
【0088】
これにより、前記制御手段501がプログラムの実行中に、全てのブロックプログラム識別情報が選択されるまで、前記所定時間毎に、未選択のブロックプログラム識別情報の選択が繰り返されて、プログラム全体の改ざんを確実に検知することが可能となる。又、このようなブロックプログラムの改ざんの検知が、前記プログラムの実行中(起動中、動作中)に繰り返しなされることにより、当該プログラムの実行中に改ざんがなされた場合、当該改ざんをほぼリアルタイムで検知、捕捉することが可能となる。ここで、実行中とは、前記制御手段501が、所定時間経過後に省電力状態へ移行させる所定のプログラムを実行することにより、複合機100が低電力状態である最中も含む。
【0089】
尚、選択手段502が、特定のブロックプログラム識別情報を選択する場合(図6:S104)、既に最も低い順位のブロックプログラム識別情報(「A010」)は選択されている。そのため、選択手段502は、次に低い順位のブロックプログラム識別情報(「A009」)を選択することになる。つまり、選択手段502が、最も低い順位のブロックプログラム識別情報(「A010」)から最も高い順位のブロックプログラム識別情報(「A001」)まで降順にブロックプログラム識別情報を選択することになる。選択後については、上述と同様となるため(図6:S105)、省略する。
【0090】
さて、S108において、前記選択手段502が、前記ハッシュ値テーブル700に記憶された全てのブロックプログラム識別情報を選択した場合(図6:S108YES)、前記プログラム全体の改ざんを検知した結果、当該プログラムは改ざんされていないことになる。そのため、前記選択手段502は、前記プログラムの改ざんの検知を完了する。
【0091】
一方、S107において、前記比較の結果、前記対応ハッシュ値と前記比較ハッシュ値とが不一致の場合(図6:S107NO)、制御手段501が起動(実行)しているプログラム(動作中のプログラム)は何らかの理由によって改ざんされたことになる。そのため、検知手段510は、当該プログラムが改ざんされたことを検知し、その旨を機能停止手段513に通知する。当該通知を受けた機能停止手段513は、不一致の比較ハッシュ値に対応するブロックプログラム識別情報(「A010」)と、当該ブロックプログラム識別情報(「A010」)に対応するプログラム識別情報(「初期プログラム」)とをハッシュ値記憶手段507のハッシュ値テーブル700から取得して、取得したブロックプログラム識別情報とプログラム識別情報とを、上述した優先選択記憶手段506に優先選択テーブルとして一時記憶させる(図6:S111)。
【0092】
図9(A)は、本発明の実施形態に係る優先選択テーブルの一例を示す図である。
【0093】
優先選択テーブル900には、図9(A)に示すように、改ざんされたプログラムのプログラム識別情報901(「初期プログラム」)と、プログラム全体のうち、改ざんが検知されたブロックプログラムのブロックプログラム識別情報902(「A010」)とが関連付けて一時記憶される。
【0094】
これにより、S102において、前記選択手段502が、改ざんされたプログラムのプログラム識別情報における特定のブロックプログラム識別情報を選択する場合、優先選択記憶手段506にはブロックプログラム識別情報(優先選択テーブル900)が一時記憶されていることから(図6:S102YES)、当該選択手段502が、一時記憶されたブロックプログラム識別情報902を優先選択記憶手段506から最優先で選択することになる(図6:S104)。
【0095】
そのため、例えば、一度、プログラムの改ざんが検知された場合(図6:107NO)、ユーザにより再起動、再電源等のリセットがされて、制御手段501が、再度、改ざん後のプログラムを起動しても(図6:S101)、選択手段502が、改ざんが検知されたブロックプログラムのブロックプログラム識別情報902を確実に選択し(図6:S102YES→S104)、前記検知手段510が、当該プログラムの改ざんを検知することになる(図6:107NO)。その結果、改ざん後のプログラムの実行を確実に停止することが可能となる。
【0096】
さて、S111において、次に、機能停止手段513は、制御手段501に、複合機100の動作を停止させる旨と、表示受付手段504にエラー画面を表示させる旨とを通知する。当該通知を受けた制御手段501は、電源(主電源)から画像処理に関する駆動部への通電を停止するとともに(図6:S112)、表示受付手段504は、タッチパネルにエラー画面を表示する(図6:S113)。
【0097】
図9(B)は、本発明の実施形態に係るエラー画面の一例を示す図である。
【0098】
エラー画面903には、図9(B)に示すように、プログラムが改ざんされた旨のメッセージ904と、複合機100の全ての機能が停止した旨のメッセージ905と、ユーザにサービスマンを呼ぶことを促す旨のメッセージ906と、サービスマンの連絡先907と、改ざんされたプログラムの名称908とが表示される。これにより、ユーザに、プログラムの改ざんが発生したことを知らしめて、サービスマンへの連絡を促すことが可能となる。
【0099】
又、機能停止手段513は、不一致であった対応ハッシュ値のブロックプログラム識別情報(「A010」)に対応するブロックプログラムをプログラム記憶手段503から取得し、改ざん解析記憶手段514に記憶させる(図6:S114)。改ざん解析記憶手段514は、特定のユーザ、例えば、管理者、サービスマン等がアクセス可能となるように構成されており、更に、改ざん検知部408及び複合機100から取り外し可能となるよう構成されている。これにより、特定のユーザが、改ざん解析記憶手段514の内容(データ)を解析することで、改ざんされたデータや改ざんを実行した改ざん実行者の改ざんの意図等を知ることが可能となる。
【0100】
そして、機能停止手段513は、プログラム記憶手段503又は複合機100の所定のメモリから、改ざんされたプログラムへのアクセスログを取得する。又、機能停止手段513は、図示しない通信部からネットワークからの当該プログラムへのアクセスログ(通信ログ)を取得する。そして、機能停止手段513は、取得したアクセスログを前記改ざん解析記憶手段514に記憶させる(図6:S115)。これにより、特定のユーザが、改ざん解析記憶手段514の内容を解析することで、更に、改ざん前後のプログラムの変更経緯やアクセス者を知ることが可能となり、改ざん実行者の特定を促すことが可能となる。
【0101】
更に、機能停止手段513は、複合機100に搭載されたメモリのうち、ユーザ情報を記憶しているユーザ情報記憶手段515へのアクセスを禁止するとともに、通信部に、前記ネットワークへのアクセスを禁止させる(図6:S116)。これにより、例えば、改ざん後のプログラムがユーザ情報を流出するためのプログラムであり、制御手段501が、当該改ざん後のプログラムを実行することにより、ユーザ情報記憶手段515に記憶されたユーザ情報を、ネットワークを介して他の端末装置に流出するような事態を未然に防止することができる。その結果、安全性を十分に確保することが出来る。
【0102】
これにより、プログラムの改ざんが検知された場合の処理は完了する。
【0103】
さて、改ざんされたプログラムが修復された場合は、以下のようになる。
【0104】
即ち、前記ユーザの知らせにより、サービスマン等の特定のユーザが、正規のプログラムを記憶する正規プログラム記憶手段(図示せず)を、複合機100のプログラム記憶手段503と接続し、表示受付手段504を介して制御手段501に、改ざん後のプログラムの修復を実行する旨のキーを入力する。当該キーの入力を受けた制御手段501は、当該プログラム記憶手段503に記憶された、改ざん後のプログラムを、正規のプログラムに書き換え(変更)する。
【0105】
書き換え完了後に、制御手段501が、表示受付手段504を介して改ざん後のプログラムの修復を完了した旨の画面を表示させると、特定のユーザが、当該画面に示された確認キー(例えば、OKキー)を入力する。当該キーの入力を受けた制御手段501は、その旨を機能停止手段513に通知する。当該通知を受けた機能停止手段513は、修復後のプログラムに対応するプログラム識別情報を制御手段501(又はプログラム記憶手段503)から取得し、優先選択記憶手段506を参照して、当該優先選択記憶手段506から修復後のプログラムに対応する前記優先選択テーブル900を消去する。
【0106】
これにより、次に、制御手段501が修復後のプログラムを起動した際に(図6:S101)、選択手段502が、ハッシュ値テーブルを参照して(図6:S102NO→S103)、最も低い順位のブロックプログラム識別情報(「A010」)から最も高い順位のブロックプログラム識別情報(「A001」)まで降順にブロックプログラム識別情報を一つずつ選択することとなり(図6:S104)、プログラムの改ざん検知が正常に再開されることになる。
【0107】
このように、本発明の実施形態では、前記プログラム全体を所定数のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報702と、当該ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値703とを関連付けて記憶するハッシュ値記憶手段507と、前記複合機100が前記プログラムを起動すると、当該プログラムの起動と並行して、前記ハッシュ値記憶手段507に記憶された特定のブロックプログラム識別情報702を選択する選択手段502と、選択された特定のブロックプログラム識別情報702に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出手段508と、前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、両者が一致しない場合に、前記プログラムが改ざんされたと検知する検知手段510とを備える。
【0108】
これにより、複合機100の前記プログラムの起動と並行して、プログラムの改ざんの検知がなされる。そのため、前記プログラムの起動時間に、前記プログラムの改ざんの検知に要する時間、例えば、ハッシュ値の算出時間を削除することになり、当該プログラムの起動時間全体を大幅に短縮することが可能となる。又、プログラムの起動と並行してなされるプログラムの改ざん検知は、当該プログラム全体から対応ハッシュ値を算出するのではなく、プログラム全体の一部であるブロックプログラムから対応ハッシュ値を算出することでなされる。そのため、ハッシュ値の算出負担(演算負担)を軽減させ、算出速度(演算速度)、算出効率(演算効率)の向上を図り、前記ハッシュ値の算出時間の短縮化、プログラムの改ざん検知の応答速度の迅速化を図ることが可能となる。
【0109】
尚、本発明の実施形態では、前記ハッシュ値記憶手段507は、ブロックプログラムに前記ハッシュ関数を適用して得られる比較ハッシュ値をそのまま記憶し、前記ハッシュ値算出手段508は、特定のブロックプログラム識別情報に対応するブロックプログラムにそのまま前記ハッシュ関数を適用して対応ハッシュ値を算出するよう構成したが、他の構成でも構わない。
【0110】
例えば、前記ハッシュ値記憶手段507は、前記ブロックプログラムに所定の付加情報(例えば、複合機100又は改ざん検知部408に特有な付加情報)を付加した後のプログラムに、前記ハッシュ関数を適用して得られるハッシュ値を比較ハッシュ値として記憶し、前記ハッシュ値算出手段508は、対応ハッシュ値を算出する際に、ブロックプログラムに前記付加情報を付加した後のプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するよう構成しても構わない。
【0111】
ここで、ブロックプログラムに前記付加情報を付加する場合、当該ブロックプログラムの先頭に付加してもよいし(先頭に付加する付加情報をプレフィックスと称する場合がある)、当該ブロックプログラムの後尾に付加しても構わない(後尾に付加する付加情報をサフィックスと称する場合がある)。当該構成により、仮に、改ざん実行者に前記ハッシュ関数を取得されたとしても、前記付加情報の存在により、当該改ざん実行者は、前記プログラムと前記ハッシュ関数とに基づいて比較ハッシュ値、対応ハッシュ値を再現することが出来ないため、安全性を更に向上させることが可能となる。
【0112】
又、前記付加情報は、改ざん検知部408の外部から変更も読み取りも出来ないようなメモリに記憶させることが好ましい。当該メモリとして、例えば、メモリを取り外し、分解すると当該メモリに記憶された情報が失われる耐タンパ性を有するメモリ(集積回路)等を採用することが出来る。
【0113】
又、本発明の実施形態では、選択手段502が、特定のブロックプログラム識別情報を一つ選択するよう構成したが、複数選択する場合は、ハッシュ値算出手段508が、選択された特定のブロックプログラム識別情報毎に、対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出し、検知手段510が、選択された特定のブロックプログラム識別情報毎に、前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、改ざんの有無を判定することは、言うまでも無い。
【0114】
又、本発明の実施形態では、選択手段502が、最も低い順位のブロックプログラム識別情報(「A010」)から最も高い順位のブロックプログラム識別情報(「A001」)まで降順にブロックプログラム識別情報を一つずつ選択するよう構成したが、他の構成でも構わない。即ち、選択手段502が、所定のブロックプログラム識別情報から、無作為に特定のブロックプログラム識別情報を順次選択しても、予め設定された所定の順番(昇順等)で特定のブロックプログラム識別情報を順次選択しても構わない。
【0115】
又、本発明の実施形態では、機能停止手段513が、前記検知手段510により前記プログラムの改ざんが検知された場合に、前記複合機100の動作を停止させるとともにタッチパネルにエラー画面を表示させる処理、不一致の比較ハッシュ値に対応するブロックプログラムを改ざん解析記憶手段514に記憶させる処理、前記プログラムへのアクセスログ又はネットワークから前記プログラムへの通信ログを改ざん解析記憶手段514に記憶させる処理、前記複合機100の所定のメモリのうち、ユーザ情報を記憶しているユーザ情報記憶手段515へのアクセス、又はネットワークへのアクセスを禁止させる処理の全てを実行するように構成したが、他の構成でも構わない。
【0116】
即ち、機能停止手段513が、上述した複数の処理のうち、少なくともいずれかの処理を実行するよう構成しても構わない。又、機能停止手段513が、改ざんが検知されたプログラムの種類、目的、用途に応じて、上述した複数の処理のうち、特定の処理を実行するよう構成しても構わない。例えば、前記プログラムが、ネットワーク(電話回線)を介して画像データを送信するプログラム(例えば、「ファクシミリ機能プログラム」)である場合、前記機能停止手段513が、当該ネットワークに関連する処理を実行するよう構成しても良いし、前記プログラムが、ユーザ情報に基づいてユーザの宛先を表示するプログラム(例えば、「アドレス帳機能プログラム」)である場合、前記機能停止手段513が、当該ユーザ情報に関連する処理を実行するよう構成しても良い。
【0117】
又、本発明の実施形態では、複合機100に搭載された改ざん検知部408(改ざん検知装置)が各手段を備えるよう構成したが、当該各手段を実現するプログラムを記憶媒体に記憶させ、当該記憶媒体を提供するよう構成しても構わない。当該構成では、上記プログラムを改ざん検知装置に読み出させ、当該改ざん検知装置が上記各手段を実現する。その場合、上記記録媒体から読み出されたプログラム自体が本発明の作用効果を奏する。さらに、各手段が実行するステップを改ざん検知方法として提供することも可能である。又、プログラムは、CD−ROMなどのコンピュータ読み取り可能な記録媒体に記録された状態で流通させることも可能である。
【産業上の利用可能性】
【0118】
以上のように、本発明に係る改ざん検知装置及び改ざん検知方法は、複合機はもちろん、複写機、プリンタ等の電子機器に有用であり、プログラムの起動に要する時間を短縮することが可能な改ざん検知装置及び改ざん検知方法として有効である。
【符号の説明】
【0119】
100 複合機
408 改ざん検知部
501 制御手段
502 選択手段
503 プログラム記憶手段
504 表示受付手段
505 画像形成手段
506 優先選択記憶手段
507 ハッシュ値記憶手段
508 ハッシュ値算出手段
509 ハッシュ値関数記憶手段
510 検知手段
511 タイマー
512 設定時間記憶手段
513 機能停止手段
514 改ざん解析記憶手段
515 ユーザ情報記憶手段

【特許請求の範囲】
【請求項1】
装置のプログラムが改ざんされたか否かを検知する改ざん検知装置において、
前記プログラム全体を所定数のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報と、前記ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値とを関連付けて記憶するハッシュ値記憶手段と、
前記装置が前記プログラムを起動すると、当該プログラムの起動と並行して、前記ハッシュ値記憶手段に記憶された特定のブロックプログラム識別情報を選択する選択手段と、
選択された特定のブロックプログラム識別情報に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出手段と、
前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、改ざんの有無を判定する検知手段と
を備えることを特徴とする改ざん検知装置。
【請求項2】
前記選択手段は、前記装置が前記プログラムを起動すると、当該プログラムの実行中に、前記ハッシュ値記憶手段に記憶された全てのブロックプログラム識別情報を選択するまで、予め設定された所定の設定時間毎に、既に選択したブロックプログラム識別情報と異なるブロックプログラム識別情報の選択を継続する
請求項1に記載の改ざん検知装置。
【請求項3】
前記選択手段は、特定のブロックプログラム識別情報を選択する場合に、プログラム全体のうち、半分から後尾までのデータを含むブロックプログラムのブロックプログラム識別情報を他のブロックプログラム識別情報よりも優先して選択する
請求項1又は2に記載の改ざん検知装置。
【請求項4】
更に、前記検知手段により前記プログラムの改ざんが検知された場合に、不一致の比較ハッシュ値に対応するブロックプログラム識別情報を優先選択記憶手段に一時記憶させ、改ざんされたプログラムが修復されると、一時記憶されたブロックプログラム識別情報を前記優先選択記憶手段から消去する機能停止手段を備え、
前記選択手段は、前記優先選択記憶手段に前記ブロックプログラム識別情報が一時記憶されている場合に、当該ブロックプログラム識別情報を優先して選択する
請求項1−3のいずれか一項に記載の改ざん検知装置。
【請求項5】
前記機能停止手段は、前記装置の動作を停止させるとともに当該装置に備えられた操作部にエラー画面を表示させる処理、不一致の比較ハッシュ値に対応するブロックプログラム識別情報のブロックプログラムを改ざん解析記憶手段に記憶させる処理、前記プログラムへのアクセスログ又はネットワークから前記プログラムへの通信ログを前記改ざん解析記憶手段に記憶させる処理、ユーザ情報を記憶しているユーザ情報記憶手段へのアクセス又はネットワークへのアクセスを禁止させる処理のうち、少なくともいずれかの処理を実行する
請求項4に記載の改ざん検知装置。
【請求項6】
前記ハッシュ値記憶手段は、前記ブロックプログラムに所定の付加情報を付加した後のプログラムに、前記ハッシュ関数を適用して得られるハッシュ値を比較ハッシュ値として記憶し、
前記ハッシュ値算出手段は、前記ブロックプログラムに前記付加情報を付加した後のプログラムに、前記ハッシュ関数を適用して対応ハッシュ値を算出する
請求項1−5のいずれか一項に記載の改ざん検知装置。
【請求項7】
請求項1−6に記載の改ざん検知装置を備えた画像形成装置。
【請求項8】
装置のプログラムが改ざんされたか否かを検知する改ざん検知方法において、
前記装置が前記プログラムを起動すると、当該プログラムの起動と並行して、前記プログラム全体を所定数のブロックに分割することにより得られるブロックプログラムのブロックプログラム識別情報と、前記ブロックプログラムに所定のハッシュ関数を適用して得られる比較ハッシュ値とを関連付けて記憶するハッシュ値記憶手段を参照する参照ステップと、
前記ハッシュ値記憶手段に記憶された特定のブロックプログラム識別情報を選択する選択ステップと、
選択された特定のブロックプログラム識別情報に対応するブロックプログラムに前記ハッシュ関数を適用して対応ハッシュ値を算出するハッシュ値算出ステップと、
前記対応ハッシュ値と前記比較ハッシュ値とを比較することにより、前記プログラムの改ざんの有無を判定する検知ステップと
を含むことを特徴とする改ざん検知方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−78953(P2012−78953A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−221783(P2010−221783)
【出願日】平成22年9月30日(2010.9.30)
【出願人】(000006150)京セラミタ株式会社 (13,173)
【Fターム(参考)】