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