(57)【要約】【課題】  ファームウエアの著作権保護のため、フラッシュＲＯＭをＲＯＭライターで複製することによるファームウエアのコピーを防ぐことを目的とする。【解決手段】  フラッシュＲＯＭに記憶されたシリアル番号とＥＥＰＲＯＭに記憶されたシリアル番号とが一致する場合は画像処理装置の動作を実行させ、フラッシュＲＯＭに記憶されたシリアル番号とＥＥＰＲＯＭに記憶されたシリアル番号とが一致する場合は画像処理装置の動作を実行させないよう、画像処理装置を制御する。【選択図】        図１
2006024099.tif 000002
【特許請求の範囲】
【請求項１】
画像情報を処理する画像処理装置であって、
前記画像処理装置への電源投入後の初期動作を実行するためのプログラムを記憶する第１の記憶手段と、
前記画像処理を識別するための識別情報を記憶する第２の記憶手段と、
外部装置からネットワークを介して受信した前記プログラムを前記第１の記憶手段に記憶させるよう制御する記憶制御手段と、
前記画像処理装置への電源投入後に前記第１の記憶手段に記憶された前記識別情報が、前記第２の記憶手段に記憶された識別情報を一致するか否かを判定する判定手段と、
前記第１の記憶手段に記憶された前記識別情報と前記第２の記憶手段に記憶された識別情報とが一致する場合は前記画像処理装置の動作を実行させ、前記第１の記憶手段に記憶された前記識別情報と前記第２の記憶手段に記憶された識別情報とが一致する場合は前記画像処理装置の動作を実行させないよう、前記判定手段の判定結果に基づいて前記画像処理装置を制御する制御手段とを有する画像処理装置。
【請求項２】
前記記憶制御手段は、前記第１の記憶手段に前記ネットワークを介して受信した前記プログラムに含まれる前記識別情報を記憶させる際に前記識別情報を暗号化する暗号化手段と、前記暗号化された識別情報を読み出す際に前記暗号化された識別情報を復号化する復号か手段とを有することを特徴とする請求項１に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
従来のネットワーク接続可能な画像処理装置において、ファームウエアのバージョンアップ等は、人為（サービスマン等）的な処理の介在するＲＯＭの交換や、画像処理装置とサービスマンやユーザの所有するパーソナルコンピュータ上に装備されている画像処理装置との通信ソフトウエアにより、ファームウエアのバージョンアップを行ってきた。
【０００３】
具体的には、ダウンロードするプログラムコードに、ダウンロードするサーバ側で、機体の個別を特定するシリアル番号を埋め込む処理を行い、ネットワークと接続可能なパーソナルコンピュータ（以下ＰＣ）とファームウエアをダウンロードするサーバと通信し、一度ＰＣにファームウエアをダウンロードした後、専用Ｉ／ＦでＰＣと機器間で通信しファームウエアプログラムをバージョンアップするという技術が知られている（例えば、特許文献１参照。）。
【特許文献１】特開平１１−１４９３７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような従来の技術では、ファームウエアのバージョンアップをする際、ファームウエアプログラムをダウンロードするためのＰＣが必要であること、また専用Ｉ／Ｆを介してＰＣと機器間で通信しなければいけないという第一の問題があった。
【０００５】
また、フラッシュＲＯＭ内に、機体を特定可能なシリアル番号を格納していない場合は、悪意のあるユーザが、他の機体のフラッシュＲＯＭを取り出し、市販されているＲＯＭライターで複製が出来ることから、不正にフラッシュＲＯＭ内に格納されるファームウエアプログラムを容易に更新できてしまう第二の問題がある。
【０００６】
また、不正にコピーされることによりソフトウエアの著作権の侵害がされてしまう問題もある。
【０００７】
さらに、サーバ側でファームウエアプログラムのデータにシリアル番号を埋め込む処理を行うと、サーバ側の処理に付加もかかる。
【０００８】
加えて、フラッシュＲＯＭ内にシリアル番号を埋め込んだとしても、ＲＯＭライターのメモリエディット機能でシリアル番号部分を書き換えることにより不正にフラッシュＲＯＭの複製が可能となってしまう。
【０００９】
本発明は、上述の問題点に着目してなされたものであって、プログラム（ファームウエア）の保護に役立つ画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、画像情報を処理する画像処理装置であって、前記画像処理装置への電源投入後の初期動作を実行するためのプログラムを記憶する第１の記憶手段と、前記画像処理を識別するための識別情報を記憶する第２の記憶手段と、外部装置からネットワークを介して受信した前記プログラムを前記第１の記憶手段に記憶させるよう制御する記憶制御手段と、前記画像処理装置への電源投入後に前記第１の記憶手段に記憶された前記識別情報が、前記第２の記憶手段に記憶された識別情報を一致するか否かを判定する判定手段と、前記第１の記憶手段に記憶された前記識別情報と前記第２の記憶手段に記憶された識別情報とが一致する場合は前記画像処理装置の動作を実行させ、前記第１の記憶手段に記憶された前記識別情報と前記第２の記憶手段に記憶された識別情報とが一致する場合は前記画像処理装置の動作を実行させないよう、前記判定手段の判定結果に基づいて前記画像処理装置を制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、悪意を持つユーザや、悪意をもつサービスマンによる不正な機器のプログラム（ファームウエア）の更新が防げるようになり、プログラム（ファームウエア）の保護に役立つ画像処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明を実施するための最良の形態を、実施例に基づいて説明する。
【実施例】
【００１３】
＜第一の実施例＞
以下、本発明の第一実施例について図面を参照して説明する。
【００１４】
図１は、本発明にかかる基本的なシステム構成を示すネットワークでの概念図である。
【００１５】
１−１は、インターネット上に存在する画像処理装置の販売元が管理する前記画像処理装置上で動作するファームウエアのプログラム抱えるＦＴＰ／ＨＴＴＰサーバ（ファームウエアダウンロードサーバ）である。１−２は、画像処理装置が設置されているオフィスとインターネットを接続するファイアーウォールである。１−３はファームウエアのバージョンアップを希望する画像処理装置である。１−４は、ファイアーウォール１−２と画像処理装置１−３のそれぞれの機器を接続されているローカルエリアネットワーク（以下ＬＡＮ）を示す。
【００１６】
図２は、本システムにおける画像処理装置内部の基本的な構成を示すシステムブロック図である。２−１はＣＰＵ、即ち中央処理装置であり、この装置全体の制御及び演算処理等を行うものである。
【００１７】
２−２はフラッシュＲＯＭ即ち読み出し専用メモリであり、システム起動プログラムやプリンタエンジンの制御を行うプログラムや、文字データ、文字コード情報等の記憶領域である。通常時は、ＲＯＭとして動作するが、プログラムにより電気的に内部のデータを消去およぶ書き込みが可能であるフラッシュＲＯＭである。
【００１８】
２−３はＲＡＭ即ちランダムアクセスメモリであり、使用制限のないデータ記憶領域で、ダウンロードにより追加登録されたフォントデータの展開領域と使用したり、様々な処理毎にプログラムやデータがロードされ実行される。２−４は、例えばハードディスク等の外部記憶装置であり、印刷装置か受け付けた印刷ジョブをスプールしたり、フラッシュＲＯＭに格納されている以外のプログラムや印刷データ等が格納されたり、作業用の領域としてフラッシュＲＯＭに書き込むダウンロードされたファームウエアプログラムが一時的に利用したりする。２−５は液晶などの表示部であり、印刷装置の設定状態や、現在の印刷装置内部の処理、エラー状態などの表示などに使用される。２−６は操作部であり、印刷装置の設定を変更を行ったり、ファームウエアのダウンロード処理の起動等の操作や、リセットするために使用される。２−７はエンジンインターフェイスであり実際にエンジンを制御するコマンド等のやり取りする口である。ここでのエンジンとはスキャナおよびプリンタを指す。２−１１は、スキャナエンジンである、２−１２は、プリンタエンジンである。２−８はネットワークインターフェイスであり、このインターフェイス２−８を介して機器がネットワークに接続される。２−９は外部インターフェイスであり、パラレル（またはシリアル）などのインターフェイスを介してホストコンピュータと接続される。２‐１３は、機種の固体識別を可能とするシリアル番号を格納するシリアル番号記憶媒体。ＥＥＰＲＯＭであったりＳＲＡＭ等の不揮発性の記憶媒体である。２−１４は暗号化処理を行うハードウエアである。
【００１９】
２−１０はシステムバスであり、上述の構成要素間のデータの通路となるべきものである。例えば、サーバからファームウエアのファイルをダウンロードする際は、次のような流れになる。ネットワークＩ／Ｆ２−８からデータを取得し、一度ＲＡＭ２−３に受信データを格納し、外部記憶装置２−４、例えばＨＤＤにファイルを格納する際、システムバス２−１０を経由してデータが流れる。
【００２０】
操作部２−６でのダウンロードの指示入力をきっかけにして、ＲＡＭ２−３に格納されたまたは、フラッシュＲＯＭ２−２上のプログラムが動作を始め、ネットワークＩ／Ｆ２−８経由でサーバとのコマンドやり取りを行った後、ファームウエアのデータファイルをＲＡＭ２−３に格納する。
【００２１】
その後、システムバス２−１０を経由して外部記憶装置２−４にファイルを格納。またフラッシュＲＯＭ２−２の内容を書き換えたり、外部記憶装置２−４上のファームウエアを置き換えたりする。また、動作中には操作者に処理中であることを知らせたり、処理中の以上等のエラー動作が発生した際、エラーの種別を通知する情報が表示部２−５には表示される。
【００２２】
図３は、本実施例における画像処理装置で行われるファームウエアサーバに対するコマンドの送信、ファームウエアのファイル受信、ファームウエアプログラムの更新に関する操作を示す全体的な流れを示すフローチャートである。
【００２３】
画像処理装置でのファームウエアの更新を実行しようとした際、操作の起動は操作部２−６よりかける（Ｓ３０１）。ダウンロードするファームウエアの種類を起動用にＢｏｏｔｒｏｍファームウエアなのか、アプリケーション動作用のファームウエアなのか、エンジン制御用のファームウエアなのか、を選択する（Ｓ３０２）。ファームウエアダウンロードサーバ１−１との通信前に、自機の個別機体を示す機器内に存在する不揮発性の記憶装置（シリアル番号記録媒体）２−１３に存在するシリアル番号情報を取得する（Ｓ３０３）。
【００２４】
Ｓ３０２，Ｓ３０３で取得した情報をファームウエアダウンロードサーバ１−１に対してファイアーウォール１−２先のインターネットを介して送信を行う（Ｓ３０４）。このときのプロトコル、手法に関しては、ＳＭＴＰ／ＰＯＰを使用したメールによるデータ通知でもよいし、ＦＴＰ／ＨＴＴＰ等のプロトコルを使ったデータ送信でも手法は限定しない。ファームウエアダウンロードサーバ１−１側では、Ｓ３０４の処理で受信したシリアル番号とファームウエア種別のデータより、ダウンロードを要求する画像処理装置に対して、シリアル番号をもとに、どのファームウエアをダウンロードさせてよいかどうかの判断を行い選択する（Ｓ３０５）。Ｓ３０５で選択されたデータをファームウエアダウンロード要求のあった画像処理装置に対して送信を行う（Ｓ３０６）。送信の処理は、ＳＭＴＰ／ＰＯＰを使用したメールによりメール添付データとしてもよいし、ＦＴＰ／ＨＴＴＰのプロトコル使用したものであってもよいが、本提案においては、転送プロトコルの部分は根幹でないので、その手法は特記しない。画像処理装置では、Ｓ３０６の処理で受信したファイルにより、フラッシュＲＯＭ２−２の書き換えを行うバージョンアップを行う（Ｓ３０７）。この書き換え動作に関しては、図４の説明図、図５のフローチャートにて詳細を説明する。
【００２５】
図４は、フラッシュＲＯＭ２−２上に格納されているシリアル番号を書き換えずに、ダウンロードされたファームウエアプログラムデータを書き換える概念を図式化したものである。以下に個々の部分を説明する。
【００２６】
４−１は、フラッシュＲＯＭ２−２の内部をメモリマップ的に表したものである。フラッシュＲＯＭ２−２の内部は、４−２で示すファームウエアプログラムの領域と、４−３で示すファームウエアの動作モード等、その他諸情報を格納しているヘッダー領域がある。４−３のヘッダー領域の一部に４−４で示す機器の個別を特定するシリアル番号が埋め込まれている。
【００２７】
４−５はファームウエアダウンロードサーバ１−１からダウンロードされたファームウエアデータの全体のマップで、そのデータは、ＨＤＤ（外部記憶装置）２−４上に一時的に保管されたり、メモリ（ＲＡＭ）２−３上に展開されたりする。４−５の内部は、４−６で示すファームウエアプログラムの領域と、４−７で示すファームウエアの動作モード等、その他諸情報を格納しているヘッダー領域がある。４−７の内部の、機器の個別を特定するシリアル番号を格納する領域は、４−８に示すように空白になっている。
【００２８】
４−９は、メモリ２−３に展開されたフラッシュＲＯＭ２−２に焼き込む前のデータを図式化している。４−１０は４−５と同じデータであり、４−１１は、４−７と同じデータであり、４−１２は、４−４の同じデータである。データの作成方法に関しては、図５のフローチャートで説明する。４−１３は最終的にフラッシュＲＯＭ２−２に焼きこまれたデータを図式化したものである。
【００２９】
図５は、図３のＳ３０７の詳細と、図４の図式化した部分を説明するフローチャートである。
【００３０】
まずファームウエアダウンロードサーバ１−１よりダウンロードしたデータをメモリ２−３上に展開する（Ｓ５０１）。Ｓ５０１は、図４の４−１０１に示す矢印の操作である。Ｓ５０１の操作で、メモリ２−３上に展開した後、フラッシュＲＯＭ２−２のシリアル番号格納領域４−４からシリアル番号を読み出し、Ｓ５０１で展開したデータの４−１２の領域にデータを上書きする（Ｓ５０２）。Ｓ５０２の操作は、図４の４−１０２の矢印の操作である。その後、Ｓ５０２で作成されたデータをフラッシュＲＯＭ２−２の全体に対して書き換え動作を行う（Ｓ５０３）。この操作が、図４の４−１０３の矢印の操作にあたる。
【００３１】
図６は、画像処理装置上で、ダウンロードされたファームウエアが動作する時、ファームウエアが不正コピー品であった場合に、起動処理中エラー表示で起動させなくする手法を説明するフローチャートを記述する。
【００３２】
まず、ファームウエアプログラムの起動時に自機機器内にあるシリアル番号の格納する不揮発性の記録媒体２−１３より機器の個別判定が可能なシリアル番号を読み出す（Ｓ６０１）。次に起動しているファームウエアプログラムのシリアル番号を図４の４−４に示すマップにあたる部分のデータをシリアル番号として読み出す（Ｓ６０２）。Ｓ６０１とＳ６０２の処理で読み出したそれぞれのシリアル番号が等しいかどうかを判定し（Ｓ６０３）、等しければ、フラッシュＲＯＭのファームウエアは正常にバージョンアップされたものとして動作させ（Ｓ６０４）、Ｓ６０３の判定で正しくなかった場合は、不正にコピーされたファームウエアとして判断し、表示部２−５にエラー表示を行い、プログラムの動作を止める（Ｓ６０５）。
【００３３】
＜第二の実施例＞
以下に実施例１で説明したフラッシュＲＯＭ上に格納されているシリアル番号を書き換えずに、ダウンロードされたファームウエアプログラムデータを書き換える方法に関して、第一の実施例では、メモリ上でシリアス番号部分を上書きして、作成したデータをフラッシュＲＯＭ２−２の全体に対して書き換えを行い、実現する方法であったが、本実施例では、本当にシリアル番号を書き換え実施例に関して記述する。
【００３４】
フラッシュＲＯＭ２−２は、常にＲＯＭの全面を書き換えるだけでなく、その領域の内部がいくつかのブロック分けて分割焼くことが可能である。図７の７−１に示すのは、フラッシュＲＯＭ２−２のメモリマップであるが、７−４で示すシリアル番号を格納する領域をあらかじめ、上述したブロックのサイズにあった領域に確保しておく。７−２のファームウエアプログラムの格納領域や７−３のヘッダー情報格納領域に関しては、特にフラッシュＲＯＭ２−２のブロック単位を意識せずに配置しておく。
【００３５】
７−５は、ファームウエアダウンロードサーバからダウンロードしたデータを示している。ダウンロードしたデータは、フラッシュＲＯＭ２−２のブロックサイズを意識したサイズになっており、７−８に示すシリアル番号があるべきデータのサイズ分だけ小さいデータサイズになっている。７−５のデータの中には、７−６で示すファームウエアプログラムと、７−７で示すヘッダー領域が配置されている。
【００３６】
すでにデータがフラッシュＲＯＭ２−２のブロックサイズを意識されたデータサイズになっているため、ファームウエアを焼き返る際、データの全体をフラッシュＲＯＭ２−２に上書きをする。この操作を示したのが７−１０１で示す矢印である。
【００３７】
７−９は、バージョンアップされた後のフラッシュＲＯＭ２−２の内容であるが、７−１０１の焼き換え処理により、７−１２で示すシリアル番号の領域以外の７−１０の示すファームウエアプログラムと７−１１で示すヘッダー領域は、７−５のデータと同一で、７−１２のシリアル番号は、７−４のシリアル番号がそのまま残った状態になる。
【００３８】
以上の方法によりシリアル番号の部分を書き換えずに、バージョンアップされるファームウエアプログラムとヘッダー情報のみを書き換えることを可能にする。
【００３９】
＜第三の実施例＞
第三実施例では、シリアル番号を暗号化して格納する手法について説明する。
【００４０】
暗号化されたシリアル番号の場合も暗号化されていないシリアル番号の場合であっても工場で製品が製造されたときから、フラッシュＲＯＭ２−２の８−８に示す暗号化されたシリアル番号の格納領域にデータが格納されている。
【００４１】
図８は、シリアル番号が暗号化された場合の実施例の説明である。
【００４２】
８−１は、フラッシュＲＯＭの内部をメモリマップ的に表したものである。フラッシュＲＯＭ２−２の内部は、８−２で示すファームウエアプログラムの領域と、８−３で示すファームウエアの動作モード等、その他諸情報を格納しているヘッダー領域がある。８−３のヘッダー領域の一部に８−４で示す機器の個別を特定するシリアル番号が暗号化されたデータが埋め込まれている。
【００４３】
８−５はファームウエアダウンロードサーバ１−１からダウンロードされたファームウエアデータの全体のマップで、そのデータは、ＨＤＤ２−４上に一時的に保管されたり、メモリ２−３上に展開されたりする。８−５の内部は、８−６で示すファームウエアプログラムの領域と８−７で示す、ファームウエアの動作モード等、その他諸情報を格納しているヘッダー領域がある。８−７に内部の機器の個別を特定するシリアル番号の暗号化されたデータを格納する領域は、８−８に示すように空白になっている。
【００４４】
８−９は、メモリ２−３に展開されたフラッシュＲＯＭ２−２に焼き込む前のデータを図式化している。８−１０は８−５と同じデータであり、８−１１は、８−７と同じデータであり、８−１２は、８−４の同じデータである。データの作成方法に関しては、第一の実施例で説明した図５と同じため、本実施例での説明は省略する。８−１３は最終的にフラッシュＲＯＭ２−２に焼きこまれたデータを図式化したものである。
【００４５】
ここで説明する手法は、第一の実施例で説明したファームウエアダウンロードサーバでのファームウエアプログラムにシリアル番号を暗号化して加工して付加する実施例である。
【００４６】
シリアル番号をファームウエアのバイナリデータに暗号化して付加する部分、読み出す部分以外は、処理が同じなので説明を省略する。
【００４７】
図９は、画像処理装置上で、ダウンロードされたファームウエアが動作する時、ファームウエアが不正コピー品であった場合に、起動処理中エラー表示で起動させなくする手法を説明するフローチャートを記述する。
【００４８】
まず、ファームウエアプログラムの起動時に自機機器内にあるシリアル番号の格納する不揮発性の記録媒体２−１３より機器の個別判定が可能なシリアル番号を読み出す（Ｓ９０１）。次に起動しているファームウエアプログラムのシリアル番号を図８の８−４に示すマップにあたる部分のデータを暗号化シリアル番号として読み出す（Ｓ９０２）。読み出した暗号化シリアルデータを暗号化処理Ｈ／Ｗ２−１４に転送し復号化を行う（Ｓ９０３）。この暗号化シリアルデータの復号化の処理は、暗号化処理Ｈ／Ｗ２−１４を使わず、ソフトウエア処理であっても問題ない。
【００４９】
Ｓ９０１とＳ９０３の処理で読み出したそれぞれのシリアル番号が等しいかどうかを判定し（Ｓ９０４）、等しければ、フラッシュＲＯＭのファームウエアは正常にバージョンアップされたものとして動作させ（Ｓ９０５）、Ｓ９０４の判定で正しくなかった場合は、不正にコピーされたファームウエアとして判断し、表示部２−５にエラー表示を行い、プログラムの動作を止める（Ｓ９０６）。
【図面の簡単な説明】
【００５０】
【図１】本発明を説明するネットワークシステムの構成を示すブロック図である。
【図２】画像処理装置の基本的な構成を示すブロック図である。
【図３】第一の実施例を説明するフローチャートその１
【図４】第一の実施例におけるフラッシュＲＯＭのシリアル番号を変更せずに書き換える操作の概念図
【図５】第一の実施例を説明するフローチャートその２
【図６】第一の実施例を説明するフローチャートその２
【図７】第二の実施例におけるフラッシュＲＯＭのシリアル番号を変更せずに書き換える操作の概念図
【図８】第三の実施例におけるフラッシュＲＯＭのシリアル番号を変更せずに書き換える操作の概念図
【図９】第三の実施例を説明するフローチャート
【符号の説明】
【００５１】
１−１    ファームウエアダウンロードサーバ
１−２    ファイアーウォール
１−３    画像処理装置（自機）
１−４    ＬＡＮ（ローカルエリアネットワーク）
２‐１    ＣＰＵ
２‐２    ＲＯＭ（フラッシュＲＯＭ）
２‐３    ＲＡＭ（メモリ）
２‐４    外部記憶装置（ＨＤＤ）
２‐５    表示部
２‐６    操作部
２‐７    エンジンインターフェイス
２‐８    ネットワークインターフェイス
２‐９    外部インターフェイス
２‐１０    システムバス
２‐１１    スキャナエンジン
２‐１２    プリンタエンジン
２‐１３  シリアル番号記録媒体
２‐１４  暗号化処理Ｈ／Ｗ
【図１】
2006024099.tif 000003
【図２】
2006024099.tif 000004
【図３】
2006024099.tif 000005
【図４】
2006024099.tif 000006
【図５】
2006024099.tif 000007
【図６】
2006024099.tif 000008
【図７】
2006024099.tif 000009
【図８】
2006024099.tif 000010
【図９】
2006024099.tif 000011