(57)【要約】【課題】主となる装置に接続された拡張ユニットに含まれるソフトウェアの正当性を確認し、機能拡張ユニットのソフトウェア不具合による主装置の障害発生を防止すること。【解決手段】拡張ユニット３００を接続することにより機能拡張を行う融合機１０１であって、拡張ユニット３００を機能させる制御プログラムが格納されたＥＥＰＲＯＭ３０３と、制御プログラムの正当性を確認する制御プログラム認証手段とを有し、拡張ユニット３００の起動時に、制御プログラム認証手段が前記制御プログラムの正当性を確認した後に拡張ユニット３００を起動することを特徴とする。【選択図】図６
2008171041.tif 000002
【特許請求の範囲】
【請求項１】
拡張ユニットを接続することにより機能拡張を行う画像形成装置であって、
前記画像形成装置に接続される拡張ユニットと、
前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、
前記制御プログラムの正当性を確認する制御プログラム認証手段とを有し、
前記拡張ユニットの起動時に、前記制御プログラム認証手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動することを特徴とする画像形成装置。
【請求項２】
前記制御プログラム認証手段は、
前記制御プログラムに基づいた第１の認証情報を生成する第１の手段と、
前記制御プログラムの正当性を保証する証明情報に基づいた第２の認証情報を生成する第２の手段と、
前記第１の認証情報と前記第２の認証情報とを照合して前記制御プログラムの正当性を確認する第３の手段とを有することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記証明情報は、前記画像形成装置に接続可能な可搬型記憶媒体に格納され、
前記第２の手段は、前記可搬型記憶媒体から前記証明情報を取得して前記第２の認証情報を生成することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記証明情報は、正当性の証明対象である制御プログラムに対応した拡張ユニットの機種情報をインデックスとして格納されていることを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記証明情報は、前記制御プログラムから生成した第１の認証情報を公開鍵暗号方式の秘密鍵により暗号化した電子署名であり、
前記第２の手段は、前記秘密鍵に対応した公開鍵を用いて前記証明情報を復号化して前記第２の証明情報を生成する手段であって、前記証明情報を復号化するための公開鍵を、その都度外部から取得することを特徴とする請求項２乃至４いずれか１項に記載の画像形成装置。
【請求項６】
前記制御プログラム認証手段が前記制御プログラムの正当性確認に失敗した場合、認証対象である前記拡張ユニットへの電源供給を遮断することを特徴とする請求項１乃至５いずれか１項に記載の画像形成装置。
【請求項７】
前記制御プログラム認証手段が前記制御プログラムの正当性確認に失敗した場合、前記画像形成装置に接続された表示部に警告を表示することを特徴とする請求項１乃至６いずれか１項に記載の画像形成装置。
【請求項８】
前記表示部は、複数設けられた前記拡張ユニットの一つとして設けられ、
前記複数の拡張ユニットの起動に際し、前記表示部の起動処理を最初に実行することを特徴とする請求項７に記載の画像形成装置。
【請求項９】
拡張ユニットを接続することにより機能拡張を行う画像形成装置であって、
前記画像形成装置に接続される拡張ユニットと、
前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、
前記制御プログラムを更新するための更新用プログラムの正当性を確認する更新用プログラム認証手段とを有し、
前記制御プログラムの更新時に、前記認証手段が前記制御プログラムの正当性を確認した後に前記制御プログラムを更新することを特徴とする画像形成装置。
【請求項１０】
前記制御プログラムの正当性を確認する制御プログラム認証手段を更に有し、
前記制御プログラム認証手段は、
前記制御プログラムに基づいた第１の認証情報を生成する第１の手段と、
前記画像形成装置に接続可能な可搬型記憶媒体から前記制御プログラムの正当性を保証する証明情報を取得し、前記証明情報に基づいた第２の認証情報を生成する第２の手段と、
前記第１の認証情報と前記第２の認証情報とを照合して前記制御プログラムの正当性を確認する第３の手段とを有し、
前記拡張ユニットの起動時に、前記第３の手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動し、
前記制御プログラムの更新に伴って前記証明情報も更新することを特徴とする請求項９に記載の画像形成装置。
【請求項１１】
拡張ユニットを接続することにより機能拡張を行う画像形成装置の起動方法であって、
前記拡張ユニットの機種情報を参照して前記拡張ユニットを制御する制御プログラムの正当性を証明する証明情報を検索し、
前記制御プログラムに基づいた第１の認証情報を生成し、
前記証明情報に基づいた第２の認証情報を生成し、
前記第１の認証情報と前記第２の認証情報とを照合して前記制御プログラムの正当性を確認し、
前記制御プログラムの正当性が確認された後に前記拡張ユニットを起動することを特徴とする画像形成装置の起動方法。
【請求項１２】
主となる装置に接続することによって機能拡張を行う拡張ユニットを制御する制御装置であって、
前記制御装置に接続される拡張ユニットと、
前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、
前記制御プログラムの正当性を確認する制御プログラム認証手段とを有し、
前記拡張ユニットの起動時に、前記制御プログラム認証手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動することを特徴とする制御装置。
【請求項１３】
機能拡張のために接続される拡張ユニットの起動方法であって、
前記拡張ユニットの機種情報を参照して前記拡張ユニットを制御する制御プログラムの正当性を証明する証明情報を検索し、
前記制御プログラムに基づいた第１の認証情報を生成し、
前記証明情報に基づいた第２の認証情報を生成し、
前記第１の認証情報と前記第２の認証情報とを照合して前記制御プログラムの正当性を確認し、
前記制御プログラムの正当性が確認された後に前記拡張ユニットを起動することを特徴とする拡張ユニットの起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及び画像形成装置の制御方法に関し、特に装置を制御するソフトウェアの正当性検証に関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ等の画像形成装置は欠かせない機器となっている。このような画像形成装置において、装置を機能させるプログラムを新しいプログラムに更新する際の更新用プログラムや、画像形成装置の起動時に読み込まれるプログラムの正当性を、デジタル署名を用いて確認する方法が提案されている（例えば特許文献１若しくは特許文献２参照）。
他方、複合機等の複数の機能を有する装置をはじめとして、機能拡張用Ｉ／Ｆに拡張ユニットを接続することにより、主となる装置に他の機能を付加する方法が用いられている。このような方法は、例えばＰＣＩ（Peripheral Component Interconnect）ユニットによる機能拡張や、ＵＳＢデバイスによる機能拡張が挙げられる。近年、このような拡張ユニットとして様々な機能を有するものが提案されており、単純に主装置の下位構成としてＡＳＩＣ（Application Specific Integrated Circuit）等により特定の機能のみを担うもの以外にも、様々な機能を有する拡張ユニットが用いられている。
【特許文献１】特開２００４−２９９３８９公報
【特許文献２】特開２００４−３０３２２１公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１、２に記載の方法では、画像形成装置本体に含まれるプログラムの正当性検証は言及しているが、複合機としての画像形成装置を構成するオペレーションパネル、ＦＣＵ（Facsimile Control Unit）、撮像ユニット、印刷ユニット等の拡張ユニットが個別に有するソフトウェアについては言及されていない。これは、画像形成装置本体の制御プログラムを可搬型の記憶媒体に格納する態様が近年提案されており、そのために制御プログラムの改ざんや不正な複製等に対するセキュリティを高める必要があったのに対し、拡張ユニットの制御プログラムは依然として回路基板上に実装されたＲＯＭ等に格納されることが一般的であるため、改ざんなどに対するセキュリティの必要性が低かったからである。また、このような拡張ユニットはＰＣＩバス等の拡張Ｉ／Ｆを介して接続されることが多く、主装置側から拡張Ｉ／Ｆを介して拡張ユニットに実装されたＲＯＭにアクセスすることが困難であることも、拡張ユニットに含まれる制御プログラムの改ざんに対するセキュリティの必要性を下げる一因となっていた。
【０００４】
しかしながら、近年、拡張ユニット側に格納される制御プログラムの重要性が増大している。例えば、上述した拡張ユニットの一例として、主装置が省電力状態となった際に、外部からの通信に応じて主装置の省電力状態を解除する機能を有するものが提案されている。この様に、近年、拡張ユニット側から主装置を制御するような態様も提案されており、拡張ユニット側の制御プログラムが不正に改ざんされていた場合、拡張ユニットのみならず、装置本体に対しても不具合を与える可能性がある。また、基板上に実装されたＲＯＭに格納された情報を抽出し若しくは書き換えるような手法が完全にないわけではない。このような問題は、画像形成装置に限らず、拡張ユニットにより機能拡張を行う装置であれば同様に発生し得る。
本発明は、上述した実情を考慮してなされたものであり、主となる装置に接続された拡張ユニットに含まれるソフトウェアの正当性を確認し、機能拡張ユニットのソフトウェア不具合による主装置の障害発生を防止することを目的とする。
【課題を解決するための手段】
【０００５】
上記の課題を解決するために、請求項１に記載の発明は、拡張ユニットを接続することにより機能拡張を行う画像形成装置であって、前記画像形成装置に接続される拡張ユニットと、前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、前記制御プログラムの正当性を確認する制御プログラム認証手段とを有し、前記拡張ユニットの起動時に、前記制御プログラム認証手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動することを特徴とする。
また、請求項２に記載の発明は、請求項１に記載の画像形成装置において、前記制御プログラム認証手段が、前記制御プログラムに基づいた第１の認証情報を生成する第１の手段と、前記制御プログラムの正当性を保証する証明情報に基づいた第２の認証情報を生成する第２の手段と、前記第１の認証情報と前記第２の認証情報とを照合して前記制御プログラムの正当性を確認する第３の手段とを有することを特徴とする。
また、請求項３に記載の発明は、請求項２に記載の画像形成装置において、前記証明情報が、前記画像形成装置に接続可能な可搬型記憶媒体に格納され、前記第２の手段は、前記可搬型記憶媒体から前記証明情報を取得して前記第２の認証情報を生成することを特徴とする。
【０００６】
また、請求項４に記載の発明は、請求項３に記載の画像形成装置において、前記証明情報が、正当性の証明対象である制御プログラムに対応した拡張ユニットの機種情報をインデックスとして格納されていることを特徴とする。
また、請求項５に記載の発明は、請求項２乃至４いずれか１項に記載の画像形成装置において、前記証明情報が、前記制御プログラムから生成した第１の認証情報を公開鍵暗号方式の秘密鍵により暗号化した電子署名であり、前記第２の手段は、前記秘密鍵に対応した公開鍵を用いて前記証明情報を復号化して前記第２の証明情報を生成する手段であって、前記証明情報を復号化するための公開鍵を、その都度外部から取得することを特徴とする。
また、請求項６に記載の発明は、請求項１乃至５いずれか１項に記載の画像形成装置において、前記制御プログラム認証手段が前記制御プログラムの正当性確認に失敗した場合、認証対象である前記拡張ユニットへの電源供給を遮断することを特徴とする。
また、請求項７に記載の発明は、請求項１乃至６いずれか１項に記載の画像形成装置において、前記制御プログラム認証手段が前記制御プログラムの正当性確認に失敗した場合、前記画像形成装置に接続された表示部に警告を表示することを特徴とする。
【０００７】
また、請求項８に記載の発明は、請求項７に記載の画像形成装置において、前記表示部が、複数設けられた前記拡張ユニットの一つとして設けられ、前記複数の拡張ユニットの起動に際し、前記表示部の起動処理を最初に実行することを特徴とする。
また、請求項９に記載の発明は、拡張ユニットを接続することにより機能拡張を行う画像形成装置であって、前記画像形成装置に接続される拡張ユニットと、前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、前記制御プログラムを更新するための更新用プログラムの正当性を確認する更新用プログラム認証手段とを有し、前記制御プログラムの更新時に、前記認証手段が前記制御プログラムの正当性を確認した後に前記制御プログラムを更新することを特徴とする。
また、請求項１０に記載の発明は、請求項９に記載の画像形成装置において、前記制御プログラムの正当性を確認する制御プログラム認証手段を更に有し、前記制御プログラム認証手段は、前記制御プログラムに基づいた第１の認証情報を生成する第１の手段と、前記画像形成装置に接続可能な可搬型記憶媒体から前記制御プログラムの正当性を保証する証明情報を取得し、前記証明情報に基づいた第２の認証情報を生成する第２の手段と、前記第１の認証情報と前記第２の認証情報とを照合して前記制御プログラムの正当性を確認する第３の手段とを有し、前記拡張ユニットの起動時に、前記第３の手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動し、前記制御プログラムの更新に伴って前記証明情報も更新することを特徴とする。
【０００８】
また、請求項１１に記載の発明は、拡張ユニットを接続することにより機能拡張を行う画像形成装置の起動方法であって、前記拡張ユニットの機種情報を参照して前記拡張ユニットを制御する制御プログラムの正当性を証明する証明情報を検索し、前記制御プログラムに基づいた第１の認証情報を生成し、前記証明情報に基づいた第２の認証情報を生成し、前記第１の認証情報と前記第２の認証情報とを照合して前記制御プログラムの正当性を確認し、前記制御プログラムの正当性が確認された後に前記拡張ユニットを起動することを特徴とする。
また、請求項１２に記載の発明は、所定の機能を有する拡張ユニットを制御する制御装置であって、前記制御装置に接続される拡張ユニットと、前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、前記制御プログラムの正当性を確認する制御プログラム認証手段とを有し、前記拡張ユニットの起動時に、前記制御プログラム認証手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動することを特徴とする。
また、請求項１３に記載の発明は、機能拡張のために接続される拡張ユニットの起動方法であって、前記拡張ユニットの機種情報を参照して前記拡張ユニットを制御する制御プログラムの正当性を証明する証明情報を検索し、前記制御プログラムに基づいた第１の認証情報を生成し、前記証明情報に基づいた第２の認証情報を生成し、前記第１の認証情報と前記第２の認証情報とを照合して前記制御プログラムの正当性を確認し、前記制御プログラムの正当性が確認された後に前記拡張ユニットを起動することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、主となる装置に接続された拡張ユニットに含まれるソフトウェアの正当性を確認し、機能拡張ユニットのソフトウェア不具合による主装置の障害発生を防止することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
本発明は、機能拡張のために主装置に接続される拡張ユニットに含まれる制御プログラムの正当性を検証するものである。
【実施例１】
【００１１】
本実施例は、画像形成装置の主装置となるコントローラに対して、夫々の機能を有する拡張ユニットを接続することにより実現される複合型の画像形成装置を例として説明する。装置起動時に、公開鍵暗号方式によるデジタル署名を用いて、拡張ユニットに格納されている制御プログラムの正当性検証を実行することにより、拡張ユニットが不正なプログラムにより起動されることを防ぐ。
図１は、本実施例に係る融合機１０１を示すブロック図である。図１に示すように、融合機１０１は、種々のハードウェア１１１と、種々のソフトウェア１１２と、融合機起動部１１３を有する。これらにより、図１の融合機１０１は、コピー機、プリンタ、スキャナ及びファクシミリとして機能する。ハードウェア１１１として、撮像部１２１、印刷部１２２及びその他のハードウェア１２３が存在する。撮像部１２１は、原稿から画像（画像データ）を取得するためのハードウェアであり、コピー機、スキャナ及びファクシミリ送信機として機能する際に使用される。撮像部１２１は、白黒画像用の物でもカラー画像用の物でもよい。撮影部１２１は、原稿に関する機構として、原稿セット部等を備える。印刷部１２２は、画像（画像データ）を印刷用紙等に印刷するためのハードウェアであり、コピー機、プリンタ及びファクシミリ受信機として機能する際に使用される。印刷部１２２は、白黒画像用の物でもカラー画像用の物でもよい。印刷部１２２は、ここでは電子写真方式を採用しており、感光体、帯電機、露光機、現像機、転写機、定着機等を備える。印刷部１２２は、印刷用紙等に関する機構として、給紙部、排紙部、印刷用紙搬送機構等を備える。その他のハードウェア１２３に関しては、図２において詳述する。
【００１２】
ソフトウェア１１２としては、種々のアプリケーション１３１と、プラットフォーム１３２が存在する。これらは、ＵＮＩＸ（登録商標）等のＯＳ（Operating System）によりプロセス単位で並列的に実行される。アプリケーション１３１は、融合機１０１の各機能に固有の情報処理を実行するためのソフトウェアである。アプリケーション１３１としては、コピー機用のアプリケーションであるコピーアプリ１４１、プリンタ用のアプリケーションであるプリンタアプリ１４２、スキャナ用のアプリケーションであるスキャナアプリ１４３、ファクシミリ用のアプリケーションであるファクシミリアプリ１４４及びネットワークファイル用のアプリケーションであるネットワークファイルアプリ１４５が存在する。ネットワークファイルアプリ１４５は、ＨＴＭＬ文書等を配信するためのＷｅｂサーバソフト、ＨＴＭＬ文書等を閲覧するためのＷｅｂブラウザ等により構成される。
【００１３】
プラットフォーム１３２は、アプリケーション１３１からハードウェア１１１への処理要求に関する情報処理を実行するためのソフトウェアである。アプリケーション１３１からの処理要求の受信には、予め定義されている関数により処理要求を受信するＡＰＩ（Application Programming Interface）１３３を利用して、ハードウェア１１１への処理要求の送信には、予め定義されている関数により処理要求を送信するＥＮＩ（Engine Interface）１３４を利用する。プラットフォーム１３２は、種々のコントロールサービス１５１と、ＳＲＭ（System Resource Manager）１５２と、種々のハンドラ１５３を有する。コントロールサービス１５１は、アプリケーション１３１からハードウェア１１１への処理要求を解釈して、解釈結果に応じてハードウェア１１１の獲得要求を発生する。コントロールサービス１５１としては、ＮＣＳ（Network Control Service）１６１、ＦＣＳ（Facsimile Control Service）１６２、ＤＣＳ（Delivery Control Service）１６３、ＥＣＳ（Engine Control Service）１６４、ＭＣＳ（Memory Control Service）１６５、ＯＣＳ（Operation Control Service）１６６、ＵＣＳ（User Directory Control Service）１６７、ＳＣＳ（System Control Service）１６８、ＯＵＳ（On Demand Update Service）１６９が存在する。
【００１４】
ＮＣＳ１６１のプロセスは、ネットワーク等を介してデータ通信を行うためのＡＰＩを提供する。ＦＣＳ１６２のプロセスは、ファクシミリとして画像データ通信・画像データ取得・画像データ印刷等を行うためのＡＰＩを提供する。ＤＣＳ１６３のプロセスは、融合機１０１に蓄積されている文書データの配信に関する制御を行う。ＥＣＳ１６４のプロセスは、撮像部１２１や印刷部１２２等のエンジン部に関する制御を行う。ＭＣＳ１６５のプロセスは、画像データ記憶・画像データ処理等のメモリやハードディスクドライブに関する制御を行う。ＯＣＳ１６６のプロセスは、オペレーションパネルに関する制御を行う。ＵＣＳ１６７のプロセスは、ユーザ情報の管理に関する制御を行う。ＳＣＳ１６８のプロセスは、システムの管理に関する制御を行う。ＯＵＳ１６９のプロセスは、プログラムの更新に関する制御を行う。ＳＲＭ１５２は、ハードウェア１１１の獲得要求を調停して、調停結果に応じてハードウェア１１１への処理要求を実現するための制御を行う。具体的に言うと、ＳＲＭ１５２のプロセスは、獲得要求に係るハードウェア１１１が利用可能か否か（他の獲得要求と競合しないか否か）を判定して、利用可能である場合にはその旨をコントロールサービス１５１に通知する。さらには、獲得要求に係るハードウェア１１１の利用スケジュールを作成して、作成結果に応じてハードウェア１１１への処理要求を実現するための制御を行う。
【００１５】
ハンドラ１５３は、上記の調停結果に応じてハードウェア１１１を管理する。ハンドラ１５３としては、ＦＣＵＨ（Facsimile Control Unit Hndler）１７１と、ＩＭＨ（Image Memory Handler）１７２が存在する。ＦＣＵＨ１７１は、ファクシミリコントロールユニットを管理する。ＩＭＨ１７２は、メモリを各プロセスに割り振り、各プロセスが割り振られたメモリを管理する。融合機起動部１１３は、融合機１０１の電源投入時に最初に実行される。これにより、ＵＮＩＸ（登録商標）等のＯＳが起動されて、アプリケーション１３１とプラットフォーム１３２が起動される。これらのプログラムは、メモリカード等に蓄積されており、メモリカード等から再生されて、メモリに起動されることになる。
【００１６】
図２は、図１の融合機１０１のハードウェア１１１を示すブロック図である。図に示すようにハードウェア１１１は、コントローラ２０１、オペレーションパネル２０２、ＦＣＵ（Facsimile Control Unit）２０３、撮像部１２１及び印刷部１２２を有する。図２における撮像部１２１と印刷部１２２を除く他の構成要素が、図１における「その他のハードウェア１２３」に該当する。また、図２に示すオペレーションパネル２０２、ＦＣＵ２０３、撮像部１２１及び印刷部１２２が拡張ユニットとしてコントローラ２０１に接続され、機能する。コントローラ２０１は、ＣＰＵ２１１、ＡＳＩＣ２１２、ＮＢ（North Bridge）２２１、ＳＢ（South Bridge）２２２、システムメモリであるＭＥＭ−Ｐ２３１、ローカルメモリであるＭＥＭ−Ｃ２３２、ＨＤＤ（Hard Disk Drive）２３３、ＮＩＣ（Network Interface Controller）２４１、ＵＳＢデバイス２４２、ＩＥＥＥ１３９４デバイス２４３、セントロニクスデバイス２４４、メモリカード用スロット２５１及び更新用メモリカード用スロット２５２を有する。
【００１７】
ＣＰＵ２１１は、種々の情報処理を実行するためのハードウェアである。例えば、ＵＮＩＸ（登録商標）等のＯＳにより、アプリケーション１３１とプラットフォーム１３２をプロセス単位で並列的に実行する。ＡＳＩＣ２１２は、画像データ処理用のＩＣである。ＮＢ２２１は、ＣＰＵ２１１とＡＳＩＣ２１２を接続するためのブリッジである。ＳＢ２２２は、ＮＢ２２１と周辺機器等を接続するためのブリッジである。ＡＳＩＣ２１２とＮＢ２２１は、ＡＧＰ（Accelerated Graphics Port）を介して接続されている。ＭＥＭ−Ｐ２３１は、ＮＢ２２１に接続されて使用されるメモリである。ＭＥＭ−Ｃ２３２は、ＡＳＩＣ２１２に接続されて使用されるメモリである。ＨＤＤ２３３は、ＡＳＩＣ２１２に接続されて使用されるストレージであり、画像データ蓄積・文書データ蓄積・プログラム蓄積・フォントデータ蓄積・フォームデータ蓄積等を行うために使用される。
【００１８】
ＮＩＣ２４１は、ネットワーク等を介してＭＡＣアドレス等を使用したデータ通信を行うためのコントローラである。ＵＳＢデバイス２４２は、ＵＳＢ規格に準拠したシリアルポートを提供するためのデバイスである。ＩＥＥＥ１３９４デバイス２４３は、ＩＥＥＥ１３９４規格に準拠したシリアルポートを提供するためのデバイスである。セントロニクスデバイス２４４は、セントロニクス仕様のパラレルポートを提供するためのデバイスである。ＮＩＣ２４１と、ＵＳＢデバイス２４２と、ＩＥＥＥ１３９４デバイス２４３と、セントロニクスデバイス２４４は、ＰＣＩバスによりＮＢ２２１とＳＢ２２２に接続されている。
【００１９】
メモリカード用スロット２５１は、ＳＢ２２２に接続されて使用されるスロットであり、起動用メモリカード２６１をセット（挿入）するためのスロットである。更新用メモリカード用スロット２５２は、ＳＢ２２２に接続されて使用されるスロットであり、更新用メモリカード２６２をセット（挿入）するためのスロットである。オペレーションパネル２０２は、オペレータが融合機１０１に入力を行うためのハードウェア（操作部）であると共に、融合機１０１がオペレータに対して視覚的に情報を出力するためのハードウェア（表示部）である。オペレーションパネル２０２は、ＡＳＩＣ２１２に接続されている。ＦＣＵ２０３、撮像部１２１及び印刷部１２２は、ＰＣＩバスによりＡＳＩＣ２１２に接続されている。
【００２０】
このような融合機１０１において、本実施例は、拡張ユニットであるオペレーションパネル２０２、ＦＣＵ２０３、撮像部１２１及び印刷部１２２（以下、拡張ユニット３００）を動作させるために、拡張ユニット自身に格納されているプログラムの正当性検証に関する。図３、図４を用いて本実施例に係る拡張ユニット３００について説明する。図３は、本実施例に係る拡張ユニット３００の一般的な構成を示すブロック図であり、図４は本実施例に係る拡張ユニット３００の機能ブロックを示すブロック図である。図３に示すように、本実施例に係る拡張ユニット３００は、ＣＰＵ３０１、メモリ３０２、ＥＥＰＲＯＭ（ELECTRONICALLY Erasable and Programmable Read Only Memory）３０３、外部Ｉ／Ｆ３０４及び機能部３０５を有する。メモリ３０２は一般的にＤＲＡＭ等の揮発性メモリによって構成される。
【００２１】
図４に示すように、ＥＥＰＲＯＭ３０３に格納されたファームウェア等の制御プログラムがメモリ３０２にロードされ、ＣＰＵ３０１の制御に従って拡張ユニット３００を動作させる制御部３２１が構成される。ＥＥＰＲＯＭ３０３は、拡張ユニット３００を動作させる制御プログラムや設定情報等が格納される記憶媒体であり、電気的に情報の書き換えが可能な半導体メモリである。制御プログラムの格納手段としては、ＥＥＰＲＯＭの他、磁気ディスクや光学ディスク等の不揮発性記憶媒体を用いることができる。外部Ｉ／Ｆ３０４は、拡張ユニット３００がコントローラ２０１と通信する際のインターフェースである。図４に示すように、外部Ｉ／Ｆ３０５がコントローラ２０１から受信した情報は制御部３２１に入力され、制御部３２１によってその後の処理が実行される。
機能部３０５は、夫々の拡張ユニット３００が担う機能を実現するためのハードウェア若しくはそのハードウェアを制御するための制御回路である。即ち、オペレーションパネル２０２であれば、機能部３０５には、情報を視覚的に表示するための表示装置、タッチパネル等の操作部及びそれらを制御する制御回路が含まれ、撮像部１２１であれば光情報を電気信号に変換するための光電変換機能及びそれを制御するための制御回路が含まれ、印刷部１２２であれば紙などの印刷対象物に対して画像を印刷する印刷エンジン、印刷対象物を搬送するための搬送装置及びそれらを制御する制御回路が含まれる。
【００２２】
次に、本実施形態に係る起動用メモリカード２６１に含まれる情報について説明する。図５は、起動用メモリカード２６１に含まれる情報を示している。図５に示すように、起動用メモリカード２６１には、融合機１０１本体を起動するための起動プログラムおよびそのライセンス情報に加え、拡張ユニット３００の起動認証に用いる拡張ユニット用電子署名が格納されている。１つのライセンス情報は１つの起動プログラムに対応して存在し、対応するライセンス情報と起動プログラムとは１体となっている。図５に示すライセンス情報は、それに対応する起動プログラムが不正に複製されたものでないことを認証するための情報であり、起動プログラムは実際に融合機１０１を起動するためのプログラムを含む。ライセンス情報及び起動プログラムは、デジタル署名による電子認証のための電子署名を含む。
【００２３】
拡張ユニット用電子署名は、融合機１０１に接続される拡張ユニットの全てに対して夫々設けられ、起動用メモリカード２６１に格納されている。即ち、本実施例においては、オペレーションパネル２０２、ＦＣＵ２０３、撮像部１２１及び印刷部１２２に対応した拡張ユニット用電子署名が、起動用メモリカード２６１に格納されている。拡張ユニット用電子署名は、拡張ユニット３００を機能させるプログラム、即ち、図３に示すＥＥＰＲＯＭ３０３に格納されている制御プログラムに基づいて生成されたメッセージダイジェストを公開鍵暗号方式における秘密鍵により暗号化した情報である。従って、起動用メモリカード２６１に格納されている拡張ユニット用電子署名は、拡張ユニット３００のＥＥＰＲＯＭ３０３に格納されている制御用プログラムの更新に伴って更新する必要がある。また、拡張ユニット用電子署名は、対応する拡張ユニット３００の機種情報に係る文字情報をインデックスとして格納されている。ここで言う機種情報とは、拡張ユニット３００において同種のものには同一に割り振られる文字情報である。
【００２４】
次に、拡張ユニット３００の起動認証について説明する。図６は、拡張ユニット３００の起動認証動作を示すシーケンス図である。融合機１０１に電源が投入され、コントローラ２０１が起動すると、コントローラ２０１は拡張ユニット３００の認証処理を開始する。まず、ハードウェア獲得処理を行うＳＲＭ１５２が拡張ユニット３００に対してコントローラ接続通知を行う（Ｓ６０１）。拡張ユニット３００は、Ｓ６０１に対する応答として、拡張ユニット接続通知を行う（Ｓ６０２）。ここで、Ｓ６０２における応答は、オペレーションパネル２０２の認証処理であれば、オペレーションパネル接続通知となる。その他の拡張ユニット３００においても同様に、ＦＣＵ２０３であれば、ＦＣＵ接続通知、撮像部１２１であれば撮像部接続通知、印刷部１２２であれば印刷部接続通知となる。拡張ユニット３００は、Ｓ６０２において拡張ユニット接続通知を送信した後、自身の機種情報をＳＲＭ１５２に対して送信する（Ｓ６０３）。
【００２５】
更に、拡張ユニット３００は、ＥＥＰＲＯＭ３０３に格納されている制御用プログラムからメッセージダイジェストＭＤ１を生成し（Ｓ６０４）、ＭＤ１及び拡張ユニット認証依頼通知をＳＲＭ１５２に対して送信する（Ｓ６０５）。ここで、Ｓ６０５における拡張ユニット認証依頼通知は、オペレーションパネル２０２の認証処理であれば、オペレーションパネル認証依頼通知となる。その他の拡張ユニット３００においても同様に、ＦＣＵ２０３であれば、ＦＣＵ認証依頼通知、撮像部１２１であれば撮像部認証依頼通知、印刷部１２２であれば印刷部認証依頼通知となる。また、拡張ユニット３００がＭＤ１を生成するのではなく、拡張ユニット３００がＳＲＭ１５２、ＳＣＳ１６８に対して制御プログラムを送信し、ＳＣＳ１６８がＭＤ１を生成しても良い。しかし、制御プログラムそのものよりもＭＤ１の方が容量が少ないため、拡張ユニット３００がＭＤ１を生成することが好ましい。
【００２６】
ＳＲＭ１５２は、拡張ユニット３００から拡張ユニット認証依頼通知を受信すると、ＳＣＳ１６４に対して拡張ユニット認証依頼通知を転送する（Ｓ６０６）。ここで、Ｓ６０６におけるＳＲＭ１５２からＳＣＳ１６４に対する転送には、Ｓ６０３においてＳＲＭ１５２が受信した拡張ユニット３００の機種情報及びＳ６０５においてＳＲＭ１５２が受信したＭＤ１が含まれる。ＳＣＳ１６４は、ＳＲＭ１５２から拡張ユニット認証依頼通知を受信すると、ＳＲＭ１５２から受信した情報及び起動用メモリカード２６１に含まれる拡張ユニット用電子署名を用いて電子認証を実行する（Ｓ６０７）。ＳＣＳ１６４は、電子認証が完了すると、認証結果をＳＲＭ１５２に対して送信する（Ｓ６０８）。ＳＲＭ１５２は、ＳＣＳ１６４から認証結果を受信すると、拡張ユニット３００に対して認証結果を転送する（Ｓ６０９）。
【００２７】
図６に示す拡張ユニット３００の処理は、拡張ユニット３００において制御プログラムがメモリ３０２にロードされ、制御部３２１が構成される前に実行される。従って、拡張ユニット３００の起動後、通常の動作を制御する制御部３２１とは異なる制御手段（起動前制御手段）によって制御される。この起動前制御手段は、例えばハードウェアによって拡張ユニット３００に実装されても良いし、コントローラ２０１の起動後、コントローラ２０１が拡張ユニット３００に対して起動前制御プログラムを送信し、そのプログラムがメモリ３０２にロードされることによって構成されても良い。また、拡張ユニット３００内に予め起動前制御プログラムが格納されていても良いが、拡張ユニット３００に含まれる制御プログラムの改ざんを検知する目的においては、ハードウェア若しくはコントローラ２０１から与えられて構成されることが好ましい。図６に説明したように、ＳＣＳ１６８、ＳＲＭ１５２及び拡張ユニット３００の起動前制御手段が連動して、ＥＥＰＲＯＭ３０３に格納された制御プログラムの正当性を確認する制御プログラム認証手段として機能する。
【００２８】
次に、図７を用いて、図６のＳ６０７における電子認証について説明する。ＳＣＳ１６４は、図６のＳ６０６において格調ユニット認証依頼通知を受信すると（Ｓ７０１）、受信した拡張ユニット３００の機種情報に基づいて起動用メモリカード２６１を検索し、認証対象となる拡張ユニット用電子署名が格納されているか確認する（Ｓ７０２）。尚、図５において説明したように、拡張ユニット用電子署名は、対応する拡張ユニット３００の機種情報をインデックスとして格納されているため、認証対象となる拡張ユニット３００から自身の機種情報を受信することにより、認証対象となる拡張ユニット３００の電子署名を迅速に検索することができる。認証対象となる拡張ユニット用電子署名が起動用メモリカード２６１に格納されていない場合（Ｓ７０２でNO）、認証対象である拡張ユニット３００の認証失敗と判断し（Ｓ７０６）、処理を終了する。認証対象となる拡張ユニット用電子署名が起動用メモリカード２６１に見つかった場合（Ｓ７０２でYES）、その電子署名を公開鍵により復号化し、正当なプログラムのメッセージダイジェストであるＭＤ２を生成する（Ｓ７０３）。尚、拡張ユニット用電子署名の復号化において用いられる公開鍵は、予めコントローラ２０１が保持している。
【００２９】
拡張ユニット用電子署名からＭＤ２を生成した後、ＳＣＳ１６４は図６のＳ６０６で受信したＭＤ１とＭＤ２とを照合し、両者が一致するか否か判断する（Ｓ７０４）。ＭＤ１とＭＤ２とが一致しなかった場合、認証対象である拡張ユニット３００の認証失敗と判断し（Ｓ７０６）、処理を終了する。ＭＤ１とＭＤ２とが一致した場合、認証対象である拡張ユニット３００の認証成功と判断し（Ｓ７０５）、処理を終了する。ＳＣＳ１６４による認証結果が認証成功だった場合、認証成功の通知を受けた拡張ユニット３００では、図４に示すようにＥＥＰＲＯＭ３０３に格納された制御プログラムがメモリ３０２にロードされ、ＣＰＵ３０１と連動して制御部３２１が構成され、動作を開始する。
【００３０】
ＳＣＳ１６４による認証結果が認証失敗だった場合、ＳＲＭ１５２は認証結果を認証対象である拡張ユニット３００に通知すると共に、オペレーションパネル２０２に図８（ａ）、（ｂ）に示すような警告画面を表示する。ここで、図８（ａ）に示す警告画面は、図７のＳ７０２において認証対象の拡張ユニット用電子署名が見つからなかった場合の警告画面であり、図８（ｂ）に示す警告画面は、Ｓ７０４においてＭＤ１とＭＤ２とが一致しなかった場合の警告画面である。尚、オペレーションパネル２０２は、拡張ユニット３００の認証処理においてもこのような役割を有するため、複数ある拡張ユニット３００の中で一番初めに認証処理を行うことが好ましい。また、オペレーションパネル２０２の認証に失敗した場合は、図４に示す制御部３２１が構成される前の段階であるため、制御部の処理によらず独自のコマンドによって警告画面を表示する。
【００３１】
以上説明したように、本実施例に係る画像形成装置では、起動時に、装置本体のコントローラに係る制御プログラムのみではなく、機能拡張のために主装置に接続される拡張ユニットの制御プログラムの正当性も検証する。これにより、複数の機能を有する複合型の画像形成装置において、不正なプログラムが拡張ユニットの起動において用いられることを防ぐことができ、装置起動の信頼性を高めることができる。
尚、本実施例の説明においては、複合型の画像形成装置を例として説明したが、例えば、パーソナルコンピュータにおけるＰＣＩユニット等、機能拡張のために主となる装置（基板）に対して接続される拡張ユニットであれば適用することができ、上記と同等の効果を得ることができる。また、上記の説明においては、拡張ユニット用電子署名の復号化に用いられる公開鍵を、コントローラ２０１が予め保持している例を説明したが、例えば拡張ユニットの認証処理に際し、その都度オンラインにより取得しても良いし、ユーザがその都度入力するようにしても良い。こうすることにより、コントローラ２０１に格納されている公開鍵の改ざんによる不正認証を防ぐことができる。更に、図５に示す拡張ユニット用電子署名は、公開鍵暗号方式ではなく共通鍵暗号方式の共通鍵によって暗号化しても良い。この場合、ＳＣＳ１６８は共通鍵を用いて拡張ユニット用電子署名を復号化する。この時に用いられる共通鍵は、コントローラ２０１に予め格納しておいても良いし、認証の都度ユーザが入力しても良いが、コントローラ２０１のハッキングによる共通鍵の情報漏洩を防ぐためにはユーザがその都度入力することが好ましい。
【００３２】
また、上記の説明においては、拡張ユニット用電子署名が、融合機１０１の起動プログラムと同様、起動用メモリカード２６１に格納されている例を説明したが、この他、融合機１０１に含まれるＨＤＤ２３３等の固定型の記憶媒体、ＵＳＢ２４２やＩＥＥＥ２４３を介して接続される記憶媒体、ＡＳＩＣ２１２内に実装されるＥＥＰＲＯＭ等に格納されていても良い。また、拡張ユニット３００内のＥＥＰＲＯＭ３０３内に、制御プログラムと拡張ユニット用電子署名とが格納され、上記実施例のようにコントローラ２０１が読み出して正当性検証を実施しても良い。この場合、拡張ユニット用電子署名が改ざんされることにより、コントローラ２０１が予め保持している若しくはオンラインで取得した公開鍵により復号化できなくなるため、コントローラ２０１は、拡張ユニット用電子署名の復号化に失敗した場合に正当性の認証失敗を判断しても良い。
【００３３】
また、上記の説明においては、コントローラ２０１が拡張ユニット３００内に格納されている制御プログラムの正当性を検証する例を説明したが、融合機１０１の起動に際し、拡張ユニット３００がコントローラ２０１から与えられたコマンドに従って正当性を検証しても良い。また、上記の説明においては、拡張ユニットの制御プログラムの認証に失敗した場合、オペレーションパネル２０２に警告画面を表示する例を説明したが、この他、例えば該当する拡張ユニット３００への電源供給を遮断しても良いし、融合機１０１全体の動作を強制的に終了しても良い。これにより、例えば電子認証処理に対応して発動するようなウィルスプログラムの実行を防ぐことができる。他方、このような場合、ユーザが装置状態を視覚的に認識することができないため、認証失敗に応じて所定期間オペレーションパネル２０２に警告を表示した後、拡張ユニット３００若しくは融合機１０１の動作を終了しても良い。
また、上記の説明においては、図８（ａ）、（ｂ）に示す警告をオペレーションパネル２０２に表示する例を説明したが、この他、オペレーションパネル２０２とは異なる表示部をコントローラ２０１に設け、その表示部に図８（ａ）、（ｂ）に示す警告を表示するようにしても良い。
【実施例２】
【００３４】
本実施例においては実施例１における拡張ユニット３００の制御プログラム更新において、更新用プログラムの正当性を検証する例を説明する。尚、実施例１と同様の符号を付す構成については実施例１と同一又は相当部を示し、説明を省略する。
図９は、更新用メモリカード２６２に含まれる情報を示している。図９に示すように、更新用メモリカード２６２には、拡張ユニット３００のＥＥＰＲＯＭ３０３に含まれる制御プログラムを更新するための更新用情報６２０が格納されている。更新用情報６２０は、ヘッダ部６２１及びデータ部６２２を有する。ヘッダ部６２１は、ヘッダＡ１、ヘッダＡ２、ヘッダＢ１、ヘッダＢ２・・・を有し、データ部６２２は、データＡ１、データＡ２、データＢ１、データＢ２・・・を有する。ヘッダ部６２１に含まれる夫々のデータとデータ部６２２に含まれる夫々のデータとは、ヘッダＡ１とデータＡ１、ヘッダＡ１とデータＡ１というように互いに対応している。
【００３５】
データＡ１、データＢ１・・・は、ＥＥＰＲＯＭ３０３に含まれる制御プログラムを更新するための更新用プログラムであり、バイナリデータとして格納されている。データＡ２、データＢ２・・・は、更新用プログラムの電子署名であり、データＡ２はデータＡ１の電子署名、データＢ２はデータＢ１の電子署名というように対応する。データＡ２、データＢ２・・・は、ハッシュ関数によりデータＡ１、データＢ１等、対応するプログラムから生成したメッセージダイジェストＭＤ３を、公開鍵暗号方式の秘密鍵により暗号化したものである。ヘッダＡ１、ヘッダＢ１、ヘッダＡ２、ヘッダＢ２・・・は、更新用プログラムを適用すべき拡張ユニット３００の種類を示す機種情報及び対応するデータＡ１、Ａ２、Ｂ１、Ｂ２・・・が更新用プログラムであるか電子署名であるかを示すフラグを有する。尚、更新用情報６２０には、拡張ユニット３００の制御プログラムを更新するためのデータに加え、融合機１０１本体のソフトウェア１１２に含まれるアプリケーション１３１やプラットフォーム１３２等のプログラムを更新するための情報も格納される。
【００３６】
次に、本実施例に係る拡張ユニット３００の制御プログラムの更新処理について説明する。図１０は、拡張ユニット３００に含まれる制御プログラムの更新処理を示すフローチャートである。更新用メモリカード２６２がメモリカード用スロット２５２に挿入され、プログラムの更新が開始されると、ＯＵＳ１６９がＭＣＳを介してメモリを取得し、更新用メモリカード２６２に格納されている更新用情報６２０を取得してメモリに展開する。即ち、ＯＵＳ１６９が更新用情報６２０及びそれに含まれる情報の正当性を確認する認証手段として機能する。ＯＵＳ１６９は、まず更新用情報６２０のヘッダ解析を実行し（Ｓ１００１）、更新用情報６２０に拡張ユニット３００の制御プログラムを更新するための情報が含まれるか否か判断する（Ｓ１００２）。この判断は、ヘッダ部６２１に含まれる機種情報を参照することにより行う。更新用情報６２０に拡張ユニット３００の制御プログラムを更新するための情報が含まれていない場合（Ｓ１００２）、処理を終了する。
【００３７】
更新用情報６２０に拡張ユニット３００の制御プログラムを更新するための情報が含まれている場合（Ｓ１００２）、ＯＵＳ１６９は、そのヘッダ部６２１に対応するデータ部６２２を読み出し、データ部６２２に含まれる電子署名（例えば、図９におけるデータＡ２）を、公開鍵を用いて復号化してメッセージダイジェストＭＤ３を生成する（Ｓ１００３）。尚、公開鍵の取得については実施例１と同様の方法を用いることができる。ＯＵＳ１６９は、電子署名を復号化した後、ハッシュ関数により、データ部６２２に含まれる更新用プログラム（例えば、図９におけるデータＡ１）からメッセージダイジェストＭＤ４を生成し、ＭＤ３とＭＤ４とを照合して両者が一致するか否か判断する（Ｓ１００４）。ＭＤ３とＭＤ４とが一致しなかった場合（Ｓ１００４）、ＯＵＳ１６９は認証失敗と判断し、対象の拡張ユニット３００の種類及び認証に失敗した旨をオペレーションパネル２０２に表示する（Ｓ１００８）。
【００３８】
ＭＤ３とＭＤ４とが一致した場合（Ｓ１００４）、ＯＵＳ１６９は認証成功と判断し、更新用プログラムを用いて、更新対象である拡張ユニット３００のＥＥＰＲＯＭ３０３に格納されている制御プログラムを更新する（Ｓ１００５）。更に、ＯＵＳ１６９は、起動用メモリカード２６１に格納されている拡張ユニット用電子署名を更新する（Ｓ１００６）。制御プログラム及び拡張ユニット用電子署名の更新が終了したら、Ｓ１００１における解析結果を参照し、まだ更新処理が終了していないヘッダ部６２１があるか否か判断する（Ｓ１００７）。尚、Ｓ１００４において、認証に失敗した場合も、エラー表示を実行した後（Ｓ１００８）、更新処理が終了していないヘッダ部６２１があるか否か確認する（Ｓ１００７）。更新処理が終了していないヘッダ部６２１がある場合（Ｓ１００７）、Ｓ１００３からの処理を繰り返し、更新処理が終了していないヘッダ部６２１がなければ処理を終了する。
【００３９】
以上説明したように、拡張ユニット３００を機能させる制御プログラムの更新に際し、電子認証により更新用プログラムの正当性を確認することによって、拡張ユニット３００の制御プログラムが不正なプログラムによって書き換えられてしまうことを防ぐことができる。尚、上記の説明においては、図１０のＳ１００１からＳ１００８までの処理をＯＵＳ１６９が行う例を説明したが、ＯＵＳ１６９の指示により拡張ユニット３００が実行しても良い。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施例に係る融合機の全体構成を模式的に示すブロック図である。
【図２】本発明の実施例に係る融合機のハードウェア構成を示すブロック図である。
【図３】本発明の実施例に係る拡張ユニットのハードウェア構成を示すブロック図である。
【図４】本発明の実施例に係る拡張ユニットの機能ブロックを示すブロック図である。
【図５】本発明の実施例に係る起動用メモリカードに含まれる情報を示す図である。
【図６】本発明の実施例に係る拡張ユニットの起動処理を示すフローチャートである。
【図７】本発明の実施例に係る拡張ユニットの制御プログラムの認証処理を示すフローチャートである。
【図８】本発明の実施例に係るオペレーションパネルの画面表示を示す図である。
【図９】本発明の他の実施例に係る更新用メモリカードに含まれる情報を示す図である。
【図１０】本発明の他の実施例に係る拡張ユニットの制御プログラムの更新処理を示すフローチャートである。
【符号の説明】
【００４１】
１０１  融合機
１２１  撮像部
１２２  印刷部
１５２  ＳＲＭ（System Resource Manager）
１６８  ＳＣＳ（System Control Service）
１６９  ＯＵＳ（On Demand Update Service）
２０２  オペレーションパネル
２６１  起動用メモリカード
２６２  更新用メモリカード
３００  拡張ユニット
３０３  ＥＥＰＲＯＭ
【図１】
2008171041.tif 000003
【図２】
2008171041.tif 000004
【図３】
2008171041.tif 000005
【図４】
2008171041.tif 000006
【図５】
2008171041.tif 000007
【図６】
2008171041.tif 000008
【図７】
2008171041.tif 000009
【図８】
2008171041.tif 000010
【図９】
2008171041.tif 000011
【図１０】
2008171041.tif 000012