説明

画像処理装置およびファームバージョンアップ方法

【課題】 ファームウエアのバージョンアップをする際、ファームウエアプログラムをダウンロードするためのPCが必要であること、また専用I/Fを介してPCと機器間で通信する必要があった。
【解決手段】 画像処理装置自身がネットワークI/Fを用いインターネットを介してファームウエアを保持するサーバと通信し、直接ファームウエアプログラムをダウンロードする手段を持つ。

【発明の詳細な説明】
【技術分野】
【0001】
画像処理装置上で動作するファームウエアプログラムは、機能拡張のための動作するファームウエアプログラムの修正や、不具合修正のためにウエアプログラムの修正の方法において、プログラムをダウンロードして置き換え作業を行なうバージョンアップ時のダウンロード方法に関するものである。
【0002】
また格納されているファームウエアプログラムの揮発性メインメモリ(以下、メモリとする)上への展開の手法に関するものである。
【背景技術】
【0003】
従来のネットワーク接続可能な画像処理装置において、ファームウエアのバージョンアップ等は、人為(サービスマン等)的な処理の介在するROMの交換や、画像処理装置とサービスマンやユーザの所有するパーソナルコンピュータ上に装備されている画像処理装置との通信ソフトウエアにより、ファームウエアのバージョンアップを行ってきた。
【0004】
ダウンロードするプログラムコードに、ダウンロードするサーバ側で、機体の個別を特定するシリアル番号を埋め込む処理を行ない、ネットワークと接続可能なパーソナルコンピュータ(以下PC)とファームウエアをダウンロードするサーバと通信し、一度PCにファームウエアをダウンロードした後、専用I/FでPCと機器間で通信しファームウエアプログラムをバージョンアップするという技術はあった(例えば、特許文献1参照)。
【特許文献1】特開平11−149379号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、このような従来の技術では、ファームウエアのバージョンアップをする際、ファームウエアプログラムをダウンロードするためのPCが必要であること、また専用I/Fを介してPCと機器間で通信しなければいけないという第一の問題があった。
【0006】
電気的書き換え可能なRead Only Memoryであるフラッシュ(以下、フラッシュROMとする)や、ハードディスク(以下、HDDとする)内部のファームウエアプログラムに、機体を特定可能なシリアル番号を格納や、固体情報を元にした暗号化(データを加工)をしていない場合は、悪意のある第三者が、他の機体のフラッシュROMを取り出し、市販されているROMライターで複製が出来ることから、不正にフラッシュROM内に格納されるファームウエアプログラムを容易に更新ができてしまう、またHDD内部のファイルをコピーすることでファームウエアプログラムを容易に更新できてしまう第二の問題がある。
【0007】
不正にコピーされることによりソフトウエアの著作権の侵害がされてしまう問題もある。
【0008】
また暗号化するロジックを複雑なロジックにして行なうと復号化の際に時間がかかり起動時間が長くなるという問題も発生する。
【0009】
本発明は、以上の点に着目して成されたもので、悪意を持つ第三者による不正な機器のバージョンアップが防げるようになり、ファームウエアの著作権の保護に役立つ効果がある画像処理装置およびファームバージョンアップ方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明は、画像処理装置自身がネットワークI/Fを用いインターネットを介してファームウエアを保持するサーバと通信し、直接ファームウエアプログラムをダウンロードする手段を持つことにより、第一の問題点を解決する。
【0011】
また、画像処理装置の機体の個別を特定可能のシリアル番号を暗号鍵データとして、ファームウエアプログラム暗号化してフラッシュROM内部に格納する手段と、ファームウエアを動作させる際、シリアル番号を復号鍵データとして復号し起動させる手段をもつことで、第二の問題点となっている不正のフラッシュROMの複製を阻止する解決ができる。
【0012】
HDD格納のファームウエアプログラムに関しても同じ手段で解決が出来る。
【0013】
暗号化の論理を複雑化させれば、させるほど時間が復号化に要する為、ファームウエアデータに対して、シリアル番号データを単位データサイズで加算するまた減算するという簡単なロジックで暗号化することにより復号化時の時間短縮を可能にする。
【0014】
すなわち、本発明の技術内容は以下の構成を備えることにより前記課題を解決できた。
【0015】
(1)電源投入後の初期動作を実行するためのプログラムを格納するフラッシュROMを有し、プログラムを動作させるためのメモリを有し、さらにシステム起動後に動作するプログラムを格納するハードディスク等の外部記憶装置を有し、機体の個別を特定可能とするシリアル番号を格納する不揮発性メモリを有し、ネットワーク接続するネットワークインターフェイスを有するシステムにおいて、インターネット先に存在するファームウエアプログラムダウンロードサーバと通信する手段と、前述サーバよりデータを取得する手段と、シリアル番号を読み出す手段とを有することを特徴とする画像処理装置。
【0016】
(2)画像処理装置内において、ダウンロードしたファームウエアプログラムデータをフラッシュROM内部に格納されたプログラムに焼き換える際、ファームウエアプログラムを初期起動部とその他の部分に分けること、さらにその他の部分に関して前記シリアル番号を暗号鍵データとして、プログラムコードに加算または、減算することにより暗号化し、前記フラッシュROMに焼きこむことを特徴とするファームバージョンアップ方法。
【発明の効果】
【0017】
本発明によれば、フラッシュROMをROMライター等で複製したものを機器に装着しても正しく動作することが出来ない。また、ハードディスク上のプログラムをコピーし動作させてもプログラムが正常に動作しない仕組みが、容易に実現できる。
【0018】
このことにより、悪意を持つ第三者による不正な機器のバージョンアップが防げるようになり、ファームウエアの著作権の保護に役立つ効果がある。
【発明を実施するための最良の形態】
【0019】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例1】
【0020】
以下、本発明の第一実施例について図面を参照して説明する。
【0021】
図1は、本発明にかかる基本的なシステム構成を示すネットワークでの概念図である。
【0022】
1−1は、インターネット上に存在する画像処理装置の販売元が管理する前記画像処理装置上で動作するファームウエアのプログラム抱えるFTP/HTTPサーバである。1−2は、画像処理装置が設置されているオフィスとインターネットを接続するファイアーウォールである。1−3はファームウエアのバージョンアップを希望する画像処理装置である。1−4は、1−2と1−3のそれぞれの機器を接続されているローカルエリアネットワーク(以下LAN)を示す。
【0023】
図2は、本システムにおける画像処理装置内部の基本的な構成を示すシステムブロック図である。
【0024】
2−1はCPU、即ち中央処理装置であり、この装置全体の制御及び演算処理等を行なうものである。2−2はフラッシュROM即ち読み出し専用メモリであり、システム起動プログラムやプリンタエンジンの制御を行なうプログラムや、文字データ、文字コード情報等の記憶領域である。
【0025】
通常時は、ROMとして動作するが、プログラムにより電気的に内部のデータを消去およぶ書き込みが可能であるフラッシュROMである。
【0026】
2−3はRAM即ちランダムアクセスメモリであり、使用制限のないデータ記憶領域で、ダウンロードにより追加登録されたフォントデータの展開領域と使用したり、様々な処理毎にプログラムやデータがロードされ実行される。2−4は、例えばハードディスク等の外部記憶装置であり、印刷装置か受け付けた印刷ジョブをスプールしたり、フラッシュROMに格納されている以外のプログラムや印刷データ等が格納されたり、作業用の領域としてダウンロードされたファームウエアプログラムが一時的に利用したりする。2−5は液晶などの表示部であり、印刷装置の設定状態や、現在の印刷装置内部の処理、エラー状態などの表示などに使用される。2−6は操作部であり、印刷装置の設定を変更を行なったり、ファームウエアのダウンロード処理の起動等の操作や、リセットするために使用される。
【0027】
2−7はエンジンインターフェイスであり実際にエンジンを制御するコマンド等のやり取りする口である。ここでのエンジンとはスキャナおよびプリンタを指す。2−11は、スキャナエンジンである、2−12は、プリンタエンジンである。2−8はネットワークインターフェイスであり、このインターフェイスを介して機器がネットワークに接続される。2−9は外部インターフェイスであり、パラレル(またはシリアル)などのインターフェイスを介してホストコンピュータと接続される。2‐13は、機種の固体識別を可能とするシリアル番号を格納する記憶媒体である。EEPROMであったりSRAM等の不揮発性の記憶媒体である。
【0028】
2−10はシステムバスであり、上述の構成要素間のデータの通路となるべきものである。例えば、サーバからファームウエアのファイルをダウンロードする際は、次のようなながれになる。
【0029】
ネットワークI/F2−8からデータを取得し、一度RAM2−3に受信データを格納し、外部記憶装置2−4たとえばHDDにファイルを格納する際、2−10のシステムバスを経由してデータが流れる。
【0030】
操作部2−6でのダウンロードの指示入力をきっかけにして、RAM2−3に格納されたまたは、フラッシュROM2−2上のプログラムが動作を始め、ネットワークI/F経由でサーバとのコマンドやり取りを行なった後、ファームウエアのデータファイルをRAM2−3に格納する。
【0031】
その後、2−10システムバスを経由し外部記憶装置2−4にファイルを格納する。また2−2のフラッシュROMの内容を書き換えたり、外部記憶装置2−4上のファームウエアを置き換えたりする。また、動作中には操作者に処理中であることを知らせたり、処理中の異常等のエラー動作が発生した際、エラーの種別を通知する情報が表示部2−5には表示される。
【0032】
図3は、本実施例における画像処理装置で行なわれるファームウエアサーバに対するコマンドの送信、ファームウエアのファイル受信、ファームウエアプログラムの更新に関する操作を示す全体的な流れを示すフローチャートである。
【0033】
画像処理装置でのファームウエアの更新を実行しようとした際、操作の起動は操作部2−6よりかける(S301)。ダウンロードするファームウエアの種類を起動用にBootromファームウエアなのか?アプリケーション動作用のファームウエアなのか?エンジン制御用のファームウエアなのか?を選択する(S302)。ファームウエアダウンロードサーバ1−1との通信前に、自機の個別機体を示す機器内に存在する不揮発性の記憶装置2−13に存在するシリアル番号情報を取得する(S303)。
【0034】
S302,S303で取得した情報をファームウエアダウンロードサーバに対してファイアーウォール1−2先のインターネットを介して送信を行なう(S304)。このときのプロトコル、手法に関しては、SMTP/POPを使用したメールによるデータ通知でもよいし、FTP/HTTP等のプロトコルを使ったデータ送信でも手法は限定しない。ファームウエアダウンロードサーバ側では、S304の処理で受信したシリアル番号とファームウエア種別のデータより、ダウンロードを要求する画像処理装置に対して、シリアル番号をもとに、どのファームウエアをダウンロードさせてよいかどうかの判断を行ない、選択する(S305)。
【0035】
S305で選択されたデータをファームウエアダウンロード要求のあった画像処理装置に対して送信を行なう(S306)。送信の処理は、SMTP/POPを使用したメールによりメール添付データとしてもよいし、FTP/HTTPのプロトコル使用したものであってもよいが、本提案においては、転送プロトコルの部分は根幹でないので、その手法は特記しない。画像処理装置では、S306の処理で受信したファイルにより、フラッシュROM2−2の書き換えを行なうバージョンアップを行なう(S307)。この書き換え動作に関しては、図4、図5、図6の概念説明図、図7、図8、図9、図10のフローチャートにて詳細を説明する。
【0036】
図4は、フラッシュROM2−2に対して、シリアル番号を暗号鍵として暗号化したデータを、変換する処理を概念を図式化したものである。以下に個々の部分を説明する。
【0037】
4−1は、ダウンロードされたファームウエアプログラムの初期起動部がメモリ2−3上に展開されたメモリマップ的に表したものである。4−2は、ダウンロードされたファームウエアプログラムの初期起動部以外のその他の部分がメモリ2−3上に展開されたメモリマップ的に表したものである。この4−1のデータと4−2のデータをフラッシュROMに焼くために、シリアル番号を暗号鍵として暗号化する。4−3は、4−1のデータを、暗号化の変換を行なわず、無変換ままメモリ上に展開したものである。4−4は、4−2のデータをシリアル番号を暗号鍵として加算、または減算という単純なロジックで暗号化処理を行った変換後のデータを示す。
【0038】
図5は、シリアル番号を暗号鍵として暗号化際の処理を説明する図である。
【0039】
5−1は、暗号化する前のファームウエアプログラムの一部のバイナリイメージであり、5−2は、暗号化処理後の変換データのバイナリイメージである。5−3は、シリアル番号を暗号鍵とした暗号化処理のロジックを示したものである。ここでは暗号化のロジックとして加算の例を示しているが、減算であってもよい。また暗号鍵であるシリアル番号が32Bit 4Byteである場合なので、バイナリデータを32Bit単位で加算または、減算して暗号化を行なう例を示している。
【0040】
図6は、シリアル番号を復号鍵として復号化際の処理を説明する図である。
【0041】
6−1は、復号化する前のファームウエアプログラムの一部のバイナリイメージであり、6−2は、復号化処理後の変換データのバイナリイメージである。6−3は、シリアル番号を復号鍵とした暗号化処理のロジックを示したものである。ここでは暗号化を加算のロジックで行っていたため、復号時は、のロジックは、減算で処理を行なう。暗号化が減算で行われている場合は、復号時は加算処理を行なう。また復号鍵であるシリアル番号が32Bit 4Byteである場合なので、バイナリデータを32Bit単位で減算または、加算して復号化を行なう例を示している。
【0042】
図7は、フラッシュROM2−2へのファームウエアにプログラムを焼きこむ際の暗号化の際に用いるフローチャートである。
【0043】
図4で説明したようにファームウエアデータの初期起動部分とそれ以外の部分をメモリ上2−3に分けて展開する(S701)。初期起動部分のファームウエアプログラムは、そのままとし、それ以外の部分を機器固有のシリアル番号2−13より読み出した値を暗号鍵として暗号化を行なう(S702)。この時の暗号化のロジックは、図5で示したように32Bit単位の加算のロジックでもあってもよいし、減算のロジックであってもよい。S702の操作で暗号化されたデータをフラッシュROM2−2に焼きこむことによりファームウエアの更新作業を終了する(S703)。
【0044】
図8はフラッシュROM2−2に書き込まれたファームウエアのデータを起動するときのシーケンスを説明するフローチャートである。
【0045】
システムが起動した際、フラッシュROM2−2内プログラムの初期起動部分が動作する(S801)。この際プログラムはフラッシュROM2−2上で動作しつづけてもよいし、メモリ2−3に展開されて動作していてもよい。S801で動作している初期起動プログラムが、図5で説明したロジックでシリアル番号2−13を暗号鍵として暗号化されたデータを、復号化してメモリ2−3上に展開する(S802)。展開終了したところで、プログラムカウンタを復号化されたプログラム上に移動しファームウエアを全体が動作し始める(S803)。
【0046】
このとき、フラッシュROMが不正にコピーされてあった場合は、復号化に失敗するためプログラムが動作しなくなる。
【0047】
図9はハードディスク等の外部記憶装置2−4に格納されているファームウエアのバージョンアップ手順を示すフローチャートである。
【0048】
フラッシュROM2−2上で動作するプログラム、または、メモリ2−3上で動作するプログラムが、ダウンロードされてメモリ上に展開されているファームウエアデータのすべてを図5で示すロジックでシリアル番号2−13を暗号鍵として暗号化し、結果をメモリ2−3上に展開する(S901)。S901で暗号化されたファームウエアデータをハードディスク2−4上に格納し(S902)、ファームウエアのバージョンアップ作業を終了する。
【0049】
図10はハードディスク等の外部記憶装置2−4に格納されているファームウエアが起動するときのシーケンスを表すフローチャートである。
【0050】
フラッシュROM2−2上で動作するプログラムまたは、メモリ2−3上で動作するプログラムが、ハードディスク2−4上の暗号化されたファームウエアデータを読み出し、シリアル番号2−13を復号鍵として図5で説明したロジックで復号化を行ないメモリ2−3上に展開する(S1001)。メモリに復号化し転換されたファームウエアプログラムにプログラムカウンタを渡し、プログラムを動作させる(S1002)。
【0051】
このとき、ハードディスク上のプログラムファイルが不正にコピーされてあった場合は、復号化に失敗するためプログラムが動作しなくなる。
【図面の簡単な説明】
【0052】
【図1】本発明を説明するネットワークシステムの構成を示すブロック図
【図2】画像処理装置の基本的な構成を示すブロック図
【図3】実施例を説明するフローチャートその1
【図4】実施例におけるフラッシュROMのファームウエアデータをシリアル番号を暗号鍵として加工する作の概念図
【図5】実施例におけるシリアル番号を暗号鍵としてファームウエアデータを暗号化するロジックの説明図
【図6】実施例におけるシリアル番号を復号鍵としてファームウエアデータを復号化するロジックの説明図
【図7】実施例を説明するフローチャートその2
【図8】実施例を説明するフローチャートその3
【図9】実施例を説明するフローチャートその4
【図10】実施例を説明するフローチャートその5
【符号の説明】
【0053】
1−1 ファームウエアサーバ
1−2 ファイアーウォール
1−3 画像処理装置(自機)
1−4 LAN(ローカルエリアネットワーク)
2−1 CPU
2−2 ROM
2−3 RAM
2−4 外部記憶装置
2−5 表示部
2−6 操作部
2−7 エンジンインターフェイス
2−8 ネットワークインターフェイス
2−9 外部インターフェイス
2−10 システムバス
2−11 スキャナ
2−12 プリンタ
2−13 シリアル番号記録媒体

【特許請求の範囲】
【請求項1】
電源投入後の初期動作を実行するためのプログラムを格納するフラッシュROMを有し、プログラムを動作させるためのメモリを有し、さらにシステム起動後に動作するプログラムを格納するハードディスク等の外部記憶装置を有し、機体の個別を特定可能とするシリアル番号を格納する不揮発性メモリを有し、ネットワーク接続するネットワークインターフェイスを有するシステムにおいて、インターネット先に存在するファームウエアプログラムダウンロードサーバと通信する手段と、前述サーバよりデータを取得する手段と、シリアル番号を読み出す手段とを有することを特徴とする画像処理装置。
【請求項2】
画像処理装置内において、ダウンロードしたファームウエアプログラムデータをフラッシュROM内部に格納されたプログラムに焼き換える際、ファームウエアプログラムを初期起動部とその他の部分に分けること、さらにその他の部分に関して前記シリアル番号を暗号鍵データとして、プログラムコードに加算または、減算することにより暗号化し、前記フラッシュROMに焼きこむことを特徴とするファームバージョンアップ方法。
【請求項3】
前記画像処理装置で、電源投入時に最初に起動されるプログラムの動作において、フラッシュROMの前記初期起動部が、その他の部分のデータをメモリ上に展開する際、前記シリアル番号を復号化の鍵として暗号化されたデータから加算または、減算することにより復号化しメモリに展開しプログラムを動作させることを特徴とする請求項2に記載のファームバージョンアップ方法。
【請求項4】
前記画像処理装置で、ハードディスク内部に格納されるファームウエアプログラムデータをダウンロードしたファームウエアプログラムに置き換える際、ファームウエア全体を、前記シリアル番号を暗号鍵データとして、プログラムコードを加算または、減算することより暗号化し、置き換えることを特徴とする請求項2に記載のファームバージョンアップ方法。
【請求項5】
前記画像処理装置で、電源投入時に最初に起動されるプログラムの動作において、ハードディスク内部に格納されているファームウエアプログラムデータをメモリ上に展開する際、前記シリアル番号を復号化の鍵として暗号化されたデータから加算または、減算することにより復号化しメモリに展開しプログラムを動作させることを特徴とする請求項2に記載のファームバージョンアップ方法。
【請求項6】
前記画像処理装置で、前記ファームウエアプログラムの暗号化の処理をサーバ側でシリアル番号を暗号鍵データとして、プログラムコードを加算または、減算することにより暗号化し、暗号化されたデータをして、画像処理装置にダウンロードすることを特徴とする請求項2または4に記載のファームバージョンアップ方法。

【図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

【図10】
image rotate


【公開番号】特開2007−11944(P2007−11944A)
【公開日】平成19年1月18日(2007.1.18)
【国際特許分類】
【出願番号】特願2005−194860(P2005−194860)
【出願日】平成17年7月4日(2005.7.4)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】