(57)【要約】【課題】  改ざんされたプログラムが組み込み機器等の装置に対して書込まれることを防止する。【解決手段】  書込対象となるファームウェア５１と、ファームウェア５１のハッシュ値を秘密鍵により暗号化して得られる暗号化値５２と、前記秘密鍵に対応する公開鍵５３とを記憶する不揮発性メモリ５０からデータを読み出すメモリインターフェイス２０と、ファームウェア５１のハッシュ値を算出するハッシュ値算出部３１と、暗号化値５２を公開鍵５３で復号化する復号化部３２と、ハッシュ値算出部３１により算出されたハッシュ値と、復号化部３２により算出された復号化ハッシュ値とが一致するか否かを判定する判定部３３と、判定部３３により一致すると判定された場合に、ファームウェア５１をファームウェア記憶部４０に書込む書込部３４とを備える。【選択図】      図２
2006185063.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを記憶するための記憶手段と、
書込み対象となるプログラムと、当該プログラムの一方向関数による演算値を暗号化して得られる暗号化値とを記憶するコンピュータ読取り可能な記録媒体からデータを取得するデータ取得手段と、
前記記録媒体に記憶されたプログラムの前記一方向関数による演算値を算出する演算値算出手段と、
前記記録媒体に記憶された暗号化値を復号化して復号化演算値を算出する復号化手段と、
前記演算値算出手段により算出された演算値と、前記復号化手段により算出された復号化演算値とが一致するか否かを判定する判定手段と、
前記判定手段により前記演算値と前記復号化演算値とが一致すると判定された場合に、前記記憶手段に前記プログラムを書込む書込手段とを備えることを特徴とするプログラム書込装置。
【請求項２】
前記記録媒体に記憶された暗号化値は、前記プログラムの一方向関数による演算値を秘密鍵により暗号化して得られたものであり、
前記復号化手段は、前記秘密鍵に対応する公開鍵により前記記録媒体に記憶された暗号化値を復号化して前記復号化演算値を算出することを特徴とする請求項１記載のプログラム書込装置。
【請求項３】
前記一方向関数はハッシュ関数であり、
前記演算値は、前記ハッシュ関数によるハッシュ値であることを特徴とする請求項１又は２記載のプログラム書込装置。
【請求項４】
前記記録媒体は、前記公開鍵を記憶することを特徴とする請求項２又は３記載のプログラム書込装置。
【請求項５】
プログラムを記憶するための記憶手段に、書込み対象となるプログラムを書込むプログラム書込プログラムであって、
書込み対象となるプログラムと、当該プログラムの一方向関数による演算値を暗号化して得られる暗号化値とを記憶するコンピュータ読取り可能な記録媒体からデータを取得するデータ取得手段と、
前記記録媒体に記憶されたプログラムの前記一方向関数による演算値を算出する演算値算出手段と、
前記記録媒体に記憶された暗号化値を復号化して復号化演算値を算出する復号化手段と、
前記演算値算出手段により算出された演算値と、前記復号化手段により算出された復号化演算値とが一致するか否かを判定する判定手段と、
前記判定手段により前記演算値と前記復号化演算値とが一致すると判定された場合に、前記記憶手段に前記プログラムを書込む書込手段としてコンピュータを機能させることを特徴とするプログラム書込プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組み込み機器等の装置にファームウェア等のプログラムを書込む技術に関するものである。
【背景技術】
【０００２】
近年、デジタル複合機等の組み込み機器においては、装置が現在記憶しているファームウェアを新しいバージョンのファームウェアに書き換えるファームウェアのバージョンアップがしばしば行われる。
【０００３】
ファームウェアのバージョンアップは、ユーザにより新しいバージョンのファームウェアが記憶されたコンパクトフラッシュ（登録商標）が組み込み機器に接続され、電源が立ち上げられると、組み込み機器は動作モードをファームウェアをバージョンアップさせるモードに自動的に切り替え、コンパクトフラッシュから新しいバージョンのファームウェアを読み出し、ＥＰＲＯＭ（erasable and programmable ROM）等のファームウェアを記憶する記憶装置に新しいバージョンのファームウェアを書込むことにより行われることが一般的である。
【０００４】
従って、ファームウェアのバージョンアップ作業は、組み込み機器にコンパクトフラッシュを接続し、電源を立ち上げるこというような簡便な作業により行うことができる。なお、本願に関連する技術として、ＷＥＢサーバに記憶されたコンテンツ等を電子署名方式を用いて正規の購入者等に購入させる技術が特許文献１〜３に開示されている。
【特許文献１】特開２０００―２２７７５６号公報
【特許文献２】特開２００３―９９６７６号公報
【特許文献３】特開２００２−５５９３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ファームウェアのバージョンアップはこのような簡便な作業により行うことができるため、悪意のある人物によりファームウェアのバージョンアップ手順が知られると、コンパクトフラッシュに記憶されたプログラムを改ざんして組み込み機器に書込ませるというような不正なバージョンアップを容易に行うことが可能となる。
【０００６】
本発明の目的は、改ざんされたプログラムが組み込み機器等の装置に対して書き込まれることを防止することができるプログラム書込装置及び組み込み機器を提供することである。
【課題を解決するための手段】
【０００７】
本発明によるプログラム書込装置は、プログラムを記憶するための記憶手段と、書込み対象となるプログラムと、当該プログラムの一方向関数による演算値を暗号化して得られる暗号化値とを記憶するコンピュータ読取り可能な記録媒体からデータを取得するデータ取得手段と、前記記録媒体に記憶されたプログラムの前記一方向関数による演算値を算出する演算値算出手段と、前記記録媒体に記憶された暗号化値を復号化して復号化演算値を算出する復号化手段と、前記演算値算出手段により算出された演算値と、前記復号化手段により算出された復号化演算値とが一致するか否かを判定する判定手段と、前記判定手段により前記演算値と前記復号化演算値とが一致すると判定された場合に、前記記憶手段に前記プログラムを書込む書込手段とを備えることを特徴とする。
【０００８】
また、上記構成において、前記記録媒体に記憶された暗号化値は、前記プログラムの一方向関数による演算値を秘密鍵により暗号化して得られたものであり、前記復号化手段は、前記秘密鍵に対応する公開鍵により前記記録媒体に記憶された暗号化値を復号化して前記復号化演算値を算出することが好ましい。
【０００９】
また、上記構成において、前記一方向関数はハッシュ関数であり、前記演算値は、前記ハッシュ関数によるハッシュ値であることが好ましい。
【００１０】
また、上記構成において、前記記録媒体は、前記公開鍵を記憶することが好ましい。
【００１１】
本発明によるプログラム書込プログラムは、プログラムを記憶するための記憶手段に書込み対象となるプログラムを書込ませるようにコンピュータを機能させるプログラム書込プログラムであって、前記コンピュータを、書込み対象となるプログラムと、当該プログラムの一方向関数による演算値を暗号化して得られる暗号化値とを記憶するコンピュータ読取り可能な記録媒体からデータを取得するデータ取得手段と、前記記録媒体に記憶されたプログラムの前記一方向関数による演算値を算出する演算値算出手段と、前記記録媒体に記憶された暗号化値を復号化して復号化演算値を算出する復号化手段と、前記演算値算出手段により算出された演算値と、前記復号化手段により算出された復号化演算値とが一致するか否かを判定する判定手段と、前記判定手段により前記演算値と前記復号化演算値とが一致すると判定された場合に、前記記憶手段に前記プログラムを書込む書込手段として機能させることを特徴とする。
【発明の効果】
【００１２】
請求項１及び５記載の発明によれば、書込み対象となるプログラムと、当該プログラムの一方向関数による演算値の暗号化値とを記憶するコンピュータ読取り可能な記録媒体からデータが取得され、記録媒体に記憶されたプログラムの一方向関数による演算値が算出されると共に、記録媒体に記憶された暗号化値が複合化され、復号化演算値が算出される。そして、算出された演算値と算出された復号化演算値とが比較され、両者が一致する場合、記録媒体に記憶されたプログラムが記憶手段に書き込まれる。
【００１３】
従って、記録媒体に記憶されたプログラムが改ざんされた場合、改ざんされたプログラムの一方向関数による演算値は、記録媒体に記憶された暗号化値を復号化して得られる復号化演算値と一致しなくなるため、改ざんされたプログラムが記憶手段に書き込まれることを防止することができる。
【００１４】
請求項２記載の発明によれば、秘密鍵により暗号化値が算出されているため、悪意のある人物は、暗号化値がどのような暗号鍵を用いて暗号化されたかを知ることができない結果、改ざんされたプログラムの書込みをより確実に防止することができる。
【００１５】
請求項３記載の発明によれば、ハッシュ関数により演算値が算出されているため、プログラム毎に固有の値を有し、かつ、データ量も小さな演算値を得ることができる。
【００１６】
請求項４記載の発明によれば、記録媒体に公開鍵が記憶されているため、プログラムの書込み作業を行うユーザは公開鍵を容易に入手することができ、作業負担の軽減を図ることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しつつ、本発明の実施の形態によるプログラム書込装置を図面を参照しつつ説明する。本実施の形態ではプログラム書込装置をデジタル複合機、コピー機、ファクシミリ装置等の画像形成装置１に適用した場合を例に挙げて説明する。
【００１８】
図１は、画像形成装置１の機械的構成を主に示す側面概略図である。画像形成装置１は、デジタル複合機から構成され、本体部２００と、本体部２００の左側に配設された用紙後処理部３００と、ユーザが種々の操作指令等を入力するための操作部４００と、本体部２００の上部に配設された原稿読取部５００と、原稿読取部５００の上方に配設された原稿給送部６００とを備えている。
【００１９】
操作部４００は、タッチパネル４０１、スタートキー４０２及びテンキー４０３等を備える。タッチパネル４０１は、種々の操作画面を表示すると共に、ユーザが種々の操作指令を入力するための種々の操作ボタン等を表示する。スタートキー４０２は、ユーザが印刷実行指令等を入力するために用いられ、テンキー４０３は、印刷部数等を入力するために用いられる。
【００２０】
原稿給送部６００は、原稿載置部６０１、原稿排出部６０２、給紙ローラ６０３及び原稿搬送部６０４等を備え、原稿読取部５００は、スキャナ５０１等を備える。給紙ローラ６０３は、原稿載置部６０１にセットされた原稿を繰り出し、原稿搬送部６０４は、繰り出される原稿を１枚ずつ順にスキャナ５０１上に搬送する。スキャナ５０１は搬送される原稿を順次読み取り、読み取られた原稿は原稿排出部６０２に排出される。
【００２１】
本体部２００は、複数の給紙カセット２０１、複数の給紙ローラ２０２、転写ローラ２０３、中間転写体ローラ２０４、感光体ドラム２０５、露光装置２０６、イエロー、マゼンタ、シアン、ブラックの各色用の現像装置２０７Ｙ，２０７Ｍ，２０７Ｃ，２０７Ｋ、定着ローラ２０８、排出口２０９、及び排出トレイ２１０等を備える。
【００２２】
感光体ドラム２０５は、矢印方向に回転しながら帯電装置（図示省略）によって一様に帯電される。露光装置２０６は、原稿読取部５００において読み取られた原稿の印刷データに基づいて生成された変調信号をレーザ光に変換して出力し、感光体ドラム２０５に各色別に静電潜像を形成する。現像装置２０７Ｙ，２０７Ｍ，２０７Ｃ，２０７Ｋは、各色の現像剤を感光体ドラム２０５に供給して各色別のトナー像を形成する。
【００２３】
中間転写体ローラ２０４は、感光体ドラム２０５から各色のトナー像が転写され、中間転写体ローラ２０４上にカラーのトナー像が形成される。
【００２４】
一方、給紙ローラ２０２は、記録紙が収納された給紙カセット２０１から記録紙を引き出し、転写ローラ２０３まで給送する。転写ローラ２０３は、搬送された記録紙に中間転写体ローラ２０４上のトナー像を転写させ、定着ローラ２０８は、転写されたトナー像を加熱して記録紙に定着させる。その後、記録紙は、本体部２００の排出口２０９から用紙後処理部３００に搬入される。また、記録紙は、必要に応じて排出トレイ２１０へも排出される。
【００２５】
用紙後処理部３００は、搬入口３０１、記録紙搬送部３０２、搬出口３０３及びスタックトレイ３０４等を備える。記録紙搬送部３０２は、排出口２０９から搬入口３０１に搬入された記録紙を順次搬送し、最終的に搬出口３０３からスタックトレイ３０４へ記録紙を排出する。スタックトレイ３０４は、搬出口３０３から搬出された記録紙の集積枚数に応じて矢印方向に上下動可能に構成されている。
【００２６】
図２は、画像形成装置１の電気的構成を示すブロック図を示している。画像形成装置１は、電源スイッチ１０、メモリインターフェイス２０、制御部３０、及びファームウェア記憶部４０を備えている。電源スイッチ１０は、画像形成装置のメインスイッチであり、ユーザによりオン側に倒されると画像形成装置１に対して商用電源等の電源からの電力を供給し、ユーザによりオフ側に倒されると、画像形成装置１に対する電源からの電力の供給を遮断する。
【００２７】
メモリインターフェイス２０は、不揮発性メモリ５０に対してデータを書込むと共に、不揮発性メモリ５０からデータの読み出しを行う。本実施の形態では、不揮発性メモリ５０は、ファームウェア記憶部４０に書込まれるファームウェア５１と、ファームウェア５１の所定のハッシュ関数によるハッシュ値を秘密鍵で暗号化することにより予め得られた暗号化値５２と、前記秘密鍵に対応する公開鍵５３とを記憶している。従って、メモリインターフェイス２０は、不揮発性メモリ５０からファームウェア５１、暗号化値５２、及び公開鍵５３を読み出す。また、不揮発性メモリ５０は、コンパクトフラッシュ、スマートメディア、及びメモリスティック等の可搬性のある不揮発性の記録媒体から構成される。また、ファームウェア５１は、ファームウェア記憶部４０に現在記憶されているファームウェア４１よりもバージョンが新しいファームウェアである。
【００２８】
制御部３０は、ＣＰＵ、ＲＯＭ、及びＲＡＭ等から構成され画像形成装置全体を制御する。特に、本実施の形態では、制御部３０は、ハッシュ値算出部３１、復号化部３２、判定部３３、及び書込部３４の機能を備えている。これらの機能は、ＣＰＵがファームウェア４１を実行することにより実現される。
【００２９】
ハッシュ値算出部３１は、メモリインターフェイス２０により読み出されたファームウェア５１に対して所定のハッシュ関数を用いた演算を施してファームウェア５１のハッシュ値を算出する。このハッシュ関数は、不揮発性メモリ５０に記憶された暗号化値５２をファームウェア５１から算出する際に採用されたハッシュ関数と同一のハッシュ関数である。
【００３０】
復号化部３２は、メモリインターフェイス２０により読み出された暗号化値５２を、メモリインターフェイス２０により読み出された公開鍵５３により復号化して、復号化ハッシュ値を算出する。
【００３１】
判定部３３は、ハッシュ値算出部３１により算出されたハッシュ値と復号化部３２により算出された復号化ハッシュ値とが一致するか否かを判定する。
【００３２】
書込部３４は、判定部３３によりハッシュ値と復号化ハッシュ値とが一致すると判定された場合、メモリインターフェイス２０により読み出されたファームウェア５１をファームウェア記憶部４０に書込み、バージョンが古いファームウェア４１をバージョンが新しいファームウェア５１により更新する。一方、判定部３３によりハッシュ値と復号化ハッシュ値とが一致しないと判定された場合、メモリインターフェイス２０により読み出されたファームウェア５１をファームウェア記憶部４０に書込まない。
【００３３】
ファームウェア記憶部４０は、ＥＰＲＯＭ（erasable and programmable ROM）等の書き換え可能な不揮発性の記憶装置から構成され、画像形成装置１の制御プログラムであるファームウェア４１を記憶する。
【００３４】
本実施の形態では、メモリインターフェイス２０がデータ取得手段に相当し、ハッシュ値算出部３１が演算値算出手段に相当し、判定部３３が判定手段に相当し、書込部３４が書込手段に相当する。
【００３５】
図３は、本画像形成装置１の動作を示すフローチャートである。まず、ユーザによりメモリインターフェイス２０に不揮発性メモリ５０が接続され（Ｓ１でＹＥＳ）、電源スイッチ１０がオンされると（Ｓ２でＹＥＳ）、制御部３０は、本画像形成装置１の動作モードをファームウェア更新モードに移行させる。このファームウェア更新モードは、スキャナ５０１で読み取られた原稿データを記録紙に印刷させる通常動作モードとは別に、予め設けられたモードであり、ファームウェア記憶部４０に現在記憶されているファームウェア４１を、不揮発性メモリ５０に記憶されているファームウェア５１により更新するモードである。
【００３６】
一方、ステップＳ１において、不揮発性メモリ５０がメモリインターフェイス２０に接続されない場合は（Ｓ１でＮＯ）、処理がステップＳ１に戻される。また、ステップＳ２において、電源スイッチ１０がオンされない場合は（Ｓ２でＮＯ）、処理がステップＳ２に戻される。
【００３７】
ステップＳ４において、メモリインターフェイス２０は不揮発性メモリ５０からファームウェア５１を読み出し、ハッシュ値算出部３１は読み出されたファームウェア５１のハッシュ値を算出する。ステップＳ５において、メモリインターフェイス２０は、不揮発性メモリ５０から暗号化値５２及び公開鍵５３を読み出し、復号化部３２は、暗号化値５２を公開鍵５３により復号化して復号化ハッシュ値を算出する。
【００３８】
ステップＳ６において、判定部３３が、ステップＳ４において算出されたハッシュ値と、ステップＳ５で算出された復号化ハッシュ値とが一致するか否かを判定し、一致すると判定した場合（Ｓ６でＹＥＳ）、書込部３４は、ファームウェア５１をファームウェア記憶部４０に書込む（Ｓ７）。一方、ステップＳ６において、判定部３３が、ファームウェア５１のハッシュ値と復号化ハッシュ値とは一致しないと判定した場合（Ｓ６でＮＯ）、書込部３４は、ファームウェア５１が改ざんされている可能性があるとして、ファームウェア５１をファームウェア記憶部４０に書込むことなく処理が終了される。
【００３９】
以上説明したように、本画像形成装置１によれば、ファームウェア５１が改ざんされている可能性が高い場合は、ファームウェア記憶部４０にファームウェア５１の書込みが行われないため、改ざんされたファームウェアがファームウェア記憶部４０に書込まれることが防止される。
【００４０】
なお、本発明は以下の態様を採用してもよい。
【００４１】
上記実施の形態では、プログラム書込装置を画像形成装置に適用した場合を例示して説明したが、これに限定されず、画像形成装置以外の組み込み機器（例えば、コンピュータの周辺装置、オーディオプレーヤ、ＤＶＤレコーダ等の電気機器）又はパーソナルコンピュータに適用してもよい。
【００４２】
上記実施の形態では、ハッシュ値算出部３１は、ハッシュ関数を用いてハッシュ値を算出していたが、これに限定されず、一方向、かつ、個別の値を算出し得る関数を用いてもよい。
【００４３】
上記実施の形態では、不揮発性メモリ５０をメモリインターフェイス２０に接続し、電源スイッチ１０をオンすると自動的に動作モードがファームウェア更新モードに移行させていたが、これに限定されず、ユーザが操作部４００を操作することにより、ファームウェア更新モードに移行するようにしてもよい。
【００４４】
上記実施の形態では、ファームウェア５１、暗号化値５２、及び公開鍵５３は不揮発性メモリ５０に記憶されていたがこれに限定されず、図４に示すように、所定の通信回線３を介して画像形成装置１と接続されたサーバ２にファームウェア５１、暗号化値５２、及び公開鍵５３を記憶させておき、サーバ２からファームウェア５１、暗号化値５２、及び公開鍵５３を読み出しても良い。通信回線３としては、ＬＡＮ、インターネット回線等が該当する。通信回線３としてインターネットが採用される場合は、サーバ２はＷＥＢサーバが採用される。
【００４５】
この場合、画像形成装置１に通信装置を備えさせ、画像形成装置１の動作モードがファームウェア更新モードに移行されると、通信装置は予め記憶されたサーバ２のアドレスに従ってサーバ２と接続し、ファームウェア５１、暗号化値５２、及び公開鍵５３をサーバ２から読み出せばよい。
【００４６】
上記実施の形態ではファームウェアが記憶装置に書込まれる態様を示したが、これに限定されず、ファームウェア以外のソフトウェアを記憶装置に書込ませる態様も本発明には含まれる。
【図面の簡単な説明】
【００４７】
【図１】本実施の形態によるプログラム書込装置を画像形成装置に適用したときの画像形成装置の機械的構成を示す図面である。
【図２】本実施の形態によるプログラム書込装置を画像形成装置に適用したときの画像形成装置の電気的構成を示すブロック図である。
【図３】本実施の形態によるプログラム書込装置を画像形成装置に適用したときの画像形成装置の動作を示すフローチャートである。
【図４】ファームウェアをサーバ２から読み出す実施の形態における画像形成装置のネットワーク構成図を示している。
【符号の説明】
【００４８】
１  画像形成装置
１０  電源スイッチ
２０  メモリインターフェイス
３０  制御部
３１  ハッシュ値算出部
３２  復号化部
３３  判定部
３４  書込部
４０  ファームウェア記憶部
５０  不揮発性メモリ
【図１】
2006185063.tif 000003
【図２】
2006185063.tif 000004
【図３】
2006185063.tif 000005
【図４】
2006185063.tif 000006