説明

画像形成装置、画像形成装置の起動方法、制御装置及び拡張ユニットの起動方法

【課題】主となる装置に接続された拡張ユニットに含まれるソフトウェアの正当性を確認し、機能拡張ユニットのソフトウェア不具合による主装置の障害発生を防止すること。
【解決手段】拡張ユニット300を接続することにより機能拡張を行う融合機101であって、拡張ユニット300を機能させる制御プログラムが格納されたEEPROM303と、制御プログラムの正当性を確認する制御プログラム認証手段とを有し、拡張ユニット300の起動時に、制御プログラム認証手段が前記制御プログラムの正当性を確認した後に拡張ユニット300を起動することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置及び画像形成装置の制御方法に関し、特に装置を制御するソフトウェアの正当性検証に関する。
【背景技術】
【0002】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ等の画像形成装置は欠かせない機器となっている。このような画像形成装置において、装置を機能させるプログラムを新しいプログラムに更新する際の更新用プログラムや、画像形成装置の起動時に読み込まれるプログラムの正当性を、デジタル署名を用いて確認する方法が提案されている(例えば特許文献1若しくは特許文献2参照)。
他方、複合機等の複数の機能を有する装置をはじめとして、機能拡張用I/Fに拡張ユニットを接続することにより、主となる装置に他の機能を付加する方法が用いられている。このような方法は、例えばPCI(Peripheral Component Interconnect)ユニットによる機能拡張や、USBデバイスによる機能拡張が挙げられる。近年、このような拡張ユニットとして様々な機能を有するものが提案されており、単純に主装置の下位構成としてASIC(Application Specific Integrated Circuit)等により特定の機能のみを担うもの以外にも、様々な機能を有する拡張ユニットが用いられている。
【特許文献1】特開2004−299389公報
【特許文献2】特開2004−303221公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
特許文献1、2に記載の方法では、画像形成装置本体に含まれるプログラムの正当性検証は言及しているが、複合機としての画像形成装置を構成するオペレーションパネル、FCU(Facsimile Control Unit)、撮像ユニット、印刷ユニット等の拡張ユニットが個別に有するソフトウェアについては言及されていない。これは、画像形成装置本体の制御プログラムを可搬型の記憶媒体に格納する態様が近年提案されており、そのために制御プログラムの改ざんや不正な複製等に対するセキュリティを高める必要があったのに対し、拡張ユニットの制御プログラムは依然として回路基板上に実装されたROM等に格納されることが一般的であるため、改ざんなどに対するセキュリティの必要性が低かったからである。また、このような拡張ユニットはPCIバス等の拡張I/Fを介して接続されることが多く、主装置側から拡張I/Fを介して拡張ユニットに実装されたROMにアクセスすることが困難であることも、拡張ユニットに含まれる制御プログラムの改ざんに対するセキュリティの必要性を下げる一因となっていた。
【0004】
しかしながら、近年、拡張ユニット側に格納される制御プログラムの重要性が増大している。例えば、上述した拡張ユニットの一例として、主装置が省電力状態となった際に、外部からの通信に応じて主装置の省電力状態を解除する機能を有するものが提案されている。この様に、近年、拡張ユニット側から主装置を制御するような態様も提案されており、拡張ユニット側の制御プログラムが不正に改ざんされていた場合、拡張ユニットのみならず、装置本体に対しても不具合を与える可能性がある。また、基板上に実装されたROMに格納された情報を抽出し若しくは書き換えるような手法が完全にないわけではない。このような問題は、画像形成装置に限らず、拡張ユニットにより機能拡張を行う装置であれば同様に発生し得る。
本発明は、上述した実情を考慮してなされたものであり、主となる装置に接続された拡張ユニットに含まれるソフトウェアの正当性を確認し、機能拡張ユニットのソフトウェア不具合による主装置の障害発生を防止することを目的とする。
【課題を解決するための手段】
【0005】
上記の課題を解決するために、請求項1に記載の発明は、拡張ユニットを接続することにより機能拡張を行う画像形成装置であって、前記画像形成装置に接続される拡張ユニットと、前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、前記制御プログラムの正当性を確認する制御プログラム認証手段とを有し、前記拡張ユニットの起動時に、前記制御プログラム認証手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動することを特徴とする。
また、請求項2に記載の発明は、請求項1に記載の画像形成装置において、前記制御プログラム認証手段が、前記制御プログラムに基づいた第1の認証情報を生成する第1の手段と、前記制御プログラムの正当性を保証する証明情報に基づいた第2の認証情報を生成する第2の手段と、前記第1の認証情報と前記第2の認証情報とを照合して前記制御プログラムの正当性を確認する第3の手段とを有することを特徴とする。
また、請求項3に記載の発明は、請求項2に記載の画像形成装置において、前記証明情報が、前記画像形成装置に接続可能な可搬型記憶媒体に格納され、前記第2の手段は、前記可搬型記憶媒体から前記証明情報を取得して前記第2の認証情報を生成することを特徴とする。
【0006】
また、請求項4に記載の発明は、請求項3に記載の画像形成装置において、前記証明情報が、正当性の証明対象である制御プログラムに対応した拡張ユニットの機種情報をインデックスとして格納されていることを特徴とする。
また、請求項5に記載の発明は、請求項2乃至4いずれか1項に記載の画像形成装置において、前記証明情報が、前記制御プログラムから生成した第1の認証情報を公開鍵暗号方式の秘密鍵により暗号化した電子署名であり、前記第2の手段は、前記秘密鍵に対応した公開鍵を用いて前記証明情報を復号化して前記第2の証明情報を生成する手段であって、前記証明情報を復号化するための公開鍵を、その都度外部から取得することを特徴とする。
また、請求項6に記載の発明は、請求項1乃至5いずれか1項に記載の画像形成装置において、前記制御プログラム認証手段が前記制御プログラムの正当性確認に失敗した場合、認証対象である前記拡張ユニットへの電源供給を遮断することを特徴とする。
また、請求項7に記載の発明は、請求項1乃至6いずれか1項に記載の画像形成装置において、前記制御プログラム認証手段が前記制御プログラムの正当性確認に失敗した場合、前記画像形成装置に接続された表示部に警告を表示することを特徴とする。
【0007】
また、請求項8に記載の発明は、請求項7に記載の画像形成装置において、前記表示部が、複数設けられた前記拡張ユニットの一つとして設けられ、前記複数の拡張ユニットの起動に際し、前記表示部の起動処理を最初に実行することを特徴とする。
また、請求項9に記載の発明は、拡張ユニットを接続することにより機能拡張を行う画像形成装置であって、前記画像形成装置に接続される拡張ユニットと、前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、前記制御プログラムを更新するための更新用プログラムの正当性を確認する更新用プログラム認証手段とを有し、前記制御プログラムの更新時に、前記認証手段が前記制御プログラムの正当性を確認した後に前記制御プログラムを更新することを特徴とする。
また、請求項10に記載の発明は、請求項9に記載の画像形成装置において、前記制御プログラムの正当性を確認する制御プログラム認証手段を更に有し、前記制御プログラム認証手段は、前記制御プログラムに基づいた第1の認証情報を生成する第1の手段と、前記画像形成装置に接続可能な可搬型記憶媒体から前記制御プログラムの正当性を保証する証明情報を取得し、前記証明情報に基づいた第2の認証情報を生成する第2の手段と、前記第1の認証情報と前記第2の認証情報とを照合して前記制御プログラムの正当性を確認する第3の手段とを有し、前記拡張ユニットの起動時に、前記第3の手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動し、前記制御プログラムの更新に伴って前記証明情報も更新することを特徴とする。
【0008】
また、請求項11に記載の発明は、拡張ユニットを接続することにより機能拡張を行う画像形成装置の起動方法であって、前記拡張ユニットの機種情報を参照して前記拡張ユニットを制御する制御プログラムの正当性を証明する証明情報を検索し、前記制御プログラムに基づいた第1の認証情報を生成し、前記証明情報に基づいた第2の認証情報を生成し、前記第1の認証情報と前記第2の認証情報とを照合して前記制御プログラムの正当性を確認し、前記制御プログラムの正当性が確認された後に前記拡張ユニットを起動することを特徴とする。
また、請求項12に記載の発明は、所定の機能を有する拡張ユニットを制御する制御装置であって、前記制御装置に接続される拡張ユニットと、前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、前記制御プログラムの正当性を確認する制御プログラム認証手段とを有し、前記拡張ユニットの起動時に、前記制御プログラム認証手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動することを特徴とする。
また、請求項13に記載の発明は、機能拡張のために接続される拡張ユニットの起動方法であって、前記拡張ユニットの機種情報を参照して前記拡張ユニットを制御する制御プログラムの正当性を証明する証明情報を検索し、前記制御プログラムに基づいた第1の認証情報を生成し、前記証明情報に基づいた第2の認証情報を生成し、前記第1の認証情報と前記第2の認証情報とを照合して前記制御プログラムの正当性を確認し、前記制御プログラムの正当性が確認された後に前記拡張ユニットを起動することを特徴とする。
【発明の効果】
【0009】
本発明によれば、主となる装置に接続された拡張ユニットに含まれるソフトウェアの正当性を確認し、機能拡張ユニットのソフトウェア不具合による主装置の障害発生を防止することが可能となる。
【発明を実施するための最良の形態】
【0010】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
本発明は、機能拡張のために主装置に接続される拡張ユニットに含まれる制御プログラムの正当性を検証するものである。
【実施例1】
【0011】
本実施例は、画像形成装置の主装置となるコントローラに対して、夫々の機能を有する拡張ユニットを接続することにより実現される複合型の画像形成装置を例として説明する。装置起動時に、公開鍵暗号方式によるデジタル署名を用いて、拡張ユニットに格納されている制御プログラムの正当性検証を実行することにより、拡張ユニットが不正なプログラムにより起動されることを防ぐ。
図1は、本実施例に係る融合機101を示すブロック図である。図1に示すように、融合機101は、種々のハードウェア111と、種々のソフトウェア112と、融合機起動部113を有する。これらにより、図1の融合機101は、コピー機、プリンタ、スキャナ及びファクシミリとして機能する。ハードウェア111として、撮像部121、印刷部122及びその他のハードウェア123が存在する。撮像部121は、原稿から画像(画像データ)を取得するためのハードウェアであり、コピー機、スキャナ及びファクシミリ送信機として機能する際に使用される。撮像部121は、白黒画像用の物でもカラー画像用の物でもよい。撮影部121は、原稿に関する機構として、原稿セット部等を備える。印刷部122は、画像(画像データ)を印刷用紙等に印刷するためのハードウェアであり、コピー機、プリンタ及びファクシミリ受信機として機能する際に使用される。印刷部122は、白黒画像用の物でもカラー画像用の物でもよい。印刷部122は、ここでは電子写真方式を採用しており、感光体、帯電機、露光機、現像機、転写機、定着機等を備える。印刷部122は、印刷用紙等に関する機構として、給紙部、排紙部、印刷用紙搬送機構等を備える。その他のハードウェア123に関しては、図2において詳述する。
【0012】
ソフトウェア112としては、種々のアプリケーション131と、プラットフォーム132が存在する。これらは、UNIX(登録商標)等のOS(Operating System)によりプロセス単位で並列的に実行される。アプリケーション131は、融合機101の各機能に固有の情報処理を実行するためのソフトウェアである。アプリケーション131としては、コピー機用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144及びネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。ネットワークファイルアプリ145は、HTML文書等を配信するためのWebサーバソフト、HTML文書等を閲覧するためのWebブラウザ等により構成される。
【0013】
プラットフォーム132は、アプリケーション131からハードウェア111への処理要求に関する情報処理を実行するためのソフトウェアである。アプリケーション131からの処理要求の受信には、予め定義されている関数により処理要求を受信するAPI(Application Programming Interface)133を利用して、ハードウェア111への処理要求の送信には、予め定義されている関数により処理要求を送信するENI(Engine Interface)134を利用する。プラットフォーム132は、種々のコントロールサービス151と、SRM(System Resource Manager)152と、種々のハンドラ153を有する。コントロールサービス151は、アプリケーション131からハードウェア111への処理要求を解釈して、解釈結果に応じてハードウェア111の獲得要求を発生する。コントロールサービス151としては、NCS(Network Control Service)161、FCS(Facsimile Control Service)162、DCS(Delivery Control Service)163、ECS(Engine Control Service)164、MCS(Memory Control Service)165、OCS(Operation Control Service)166、UCS(User Directory Control Service)167、SCS(System Control Service)168、OUS(On Demand Update Service)169が存在する。
【0014】
NCS161のプロセスは、ネットワーク等を介してデータ通信を行うためのAPIを提供する。FCS162のプロセスは、ファクシミリとして画像データ通信・画像データ取得・画像データ印刷等を行うためのAPIを提供する。DCS163のプロセスは、融合機101に蓄積されている文書データの配信に関する制御を行う。ECS164のプロセスは、撮像部121や印刷部122等のエンジン部に関する制御を行う。MCS165のプロセスは、画像データ記憶・画像データ処理等のメモリやハードディスクドライブに関する制御を行う。OCS166のプロセスは、オペレーションパネルに関する制御を行う。UCS167のプロセスは、ユーザ情報の管理に関する制御を行う。SCS168のプロセスは、システムの管理に関する制御を行う。OUS169のプロセスは、プログラムの更新に関する制御を行う。SRM152は、ハードウェア111の獲得要求を調停して、調停結果に応じてハードウェア111への処理要求を実現するための制御を行う。具体的に言うと、SRM152のプロセスは、獲得要求に係るハードウェア111が利用可能か否か(他の獲得要求と競合しないか否か)を判定して、利用可能である場合にはその旨をコントロールサービス151に通知する。さらには、獲得要求に係るハードウェア111の利用スケジュールを作成して、作成結果に応じてハードウェア111への処理要求を実現するための制御を行う。
【0015】
ハンドラ153は、上記の調停結果に応じてハードウェア111を管理する。ハンドラ153としては、FCUH(Facsimile Control Unit Hndler)171と、IMH(Image Memory Handler)172が存在する。FCUH171は、ファクシミリコントロールユニットを管理する。IMH172は、メモリを各プロセスに割り振り、各プロセスが割り振られたメモリを管理する。融合機起動部113は、融合機101の電源投入時に最初に実行される。これにより、UNIX(登録商標)等のOSが起動されて、アプリケーション131とプラットフォーム132が起動される。これらのプログラムは、メモリカード等に蓄積されており、メモリカード等から再生されて、メモリに起動されることになる。
【0016】
図2は、図1の融合機101のハードウェア111を示すブロック図である。図に示すようにハードウェア111は、コントローラ201、オペレーションパネル202、FCU(Facsimile Control Unit)203、撮像部121及び印刷部122を有する。図2における撮像部121と印刷部122を除く他の構成要素が、図1における「その他のハードウェア123」に該当する。また、図2に示すオペレーションパネル202、FCU203、撮像部121及び印刷部122が拡張ユニットとしてコントローラ201に接続され、機能する。コントローラ201は、CPU211、ASIC212、NB(North Bridge)221、SB(South Bridge)222、システムメモリであるMEM−P231、ローカルメモリであるMEM−C232、HDD(Hard Disk Drive)233、NIC(Network Interface Controller)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244、メモリカード用スロット251及び更新用メモリカード用スロット252を有する。
【0017】
CPU211は、種々の情報処理を実行するためのハードウェアである。例えば、UNIX(登録商標)等のOSにより、アプリケーション131とプラットフォーム132をプロセス単位で並列的に実行する。ASIC212は、画像データ処理用のICである。NB221は、CPU211とASIC212を接続するためのブリッジである。SB222は、NB221と周辺機器等を接続するためのブリッジである。ASIC212とNB221は、AGP(Accelerated Graphics Port)を介して接続されている。MEM−P231は、NB221に接続されて使用されるメモリである。MEM−C232は、ASIC212に接続されて使用されるメモリである。HDD233は、ASIC212に接続されて使用されるストレージであり、画像データ蓄積・文書データ蓄積・プログラム蓄積・フォントデータ蓄積・フォームデータ蓄積等を行うために使用される。
【0018】
NIC241は、ネットワーク等を介してMACアドレス等を使用したデータ通信を行うためのコントローラである。USBデバイス242は、USB規格に準拠したシリアルポートを提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格に準拠したシリアルポートを提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様のパラレルポートを提供するためのデバイスである。NIC241と、USBデバイス242と、IEEE1394デバイス243と、セントロニクスデバイス244は、PCIバスによりNB221とSB222に接続されている。
【0019】
メモリカード用スロット251は、SB222に接続されて使用されるスロットであり、起動用メモリカード261をセット(挿入)するためのスロットである。更新用メモリカード用スロット252は、SB222に接続されて使用されるスロットであり、更新用メモリカード262をセット(挿入)するためのスロットである。オペレーションパネル202は、オペレータが融合機101に入力を行うためのハードウェア(操作部)であると共に、融合機101がオペレータに対して視覚的に情報を出力するためのハードウェア(表示部)である。オペレーションパネル202は、ASIC212に接続されている。FCU203、撮像部121及び印刷部122は、PCIバスによりASIC212に接続されている。
【0020】
このような融合機101において、本実施例は、拡張ユニットであるオペレーションパネル202、FCU203、撮像部121及び印刷部122(以下、拡張ユニット300)を動作させるために、拡張ユニット自身に格納されているプログラムの正当性検証に関する。図3、図4を用いて本実施例に係る拡張ユニット300について説明する。図3は、本実施例に係る拡張ユニット300の一般的な構成を示すブロック図であり、図4は本実施例に係る拡張ユニット300の機能ブロックを示すブロック図である。図3に示すように、本実施例に係る拡張ユニット300は、CPU301、メモリ302、EEPROM(ELECTRONICALLY Erasable and Programmable Read Only Memory)303、外部I/F304及び機能部305を有する。メモリ302は一般的にDRAM等の揮発性メモリによって構成される。
【0021】
図4に示すように、EEPROM303に格納されたファームウェア等の制御プログラムがメモリ302にロードされ、CPU301の制御に従って拡張ユニット300を動作させる制御部321が構成される。EEPROM303は、拡張ユニット300を動作させる制御プログラムや設定情報等が格納される記憶媒体であり、電気的に情報の書き換えが可能な半導体メモリである。制御プログラムの格納手段としては、EEPROMの他、磁気ディスクや光学ディスク等の不揮発性記憶媒体を用いることができる。外部I/F304は、拡張ユニット300がコントローラ201と通信する際のインターフェースである。図4に示すように、外部I/F305がコントローラ201から受信した情報は制御部321に入力され、制御部321によってその後の処理が実行される。
機能部305は、夫々の拡張ユニット300が担う機能を実現するためのハードウェア若しくはそのハードウェアを制御するための制御回路である。即ち、オペレーションパネル202であれば、機能部305には、情報を視覚的に表示するための表示装置、タッチパネル等の操作部及びそれらを制御する制御回路が含まれ、撮像部121であれば光情報を電気信号に変換するための光電変換機能及びそれを制御するための制御回路が含まれ、印刷部122であれば紙などの印刷対象物に対して画像を印刷する印刷エンジン、印刷対象物を搬送するための搬送装置及びそれらを制御する制御回路が含まれる。
【0022】
次に、本実施形態に係る起動用メモリカード261に含まれる情報について説明する。図5は、起動用メモリカード261に含まれる情報を示している。図5に示すように、起動用メモリカード261には、融合機101本体を起動するための起動プログラムおよびそのライセンス情報に加え、拡張ユニット300の起動認証に用いる拡張ユニット用電子署名が格納されている。1つのライセンス情報は1つの起動プログラムに対応して存在し、対応するライセンス情報と起動プログラムとは1体となっている。図5に示すライセンス情報は、それに対応する起動プログラムが不正に複製されたものでないことを認証するための情報であり、起動プログラムは実際に融合機101を起動するためのプログラムを含む。ライセンス情報及び起動プログラムは、デジタル署名による電子認証のための電子署名を含む。
【0023】
拡張ユニット用電子署名は、融合機101に接続される拡張ユニットの全てに対して夫々設けられ、起動用メモリカード261に格納されている。即ち、本実施例においては、オペレーションパネル202、FCU203、撮像部121及び印刷部122に対応した拡張ユニット用電子署名が、起動用メモリカード261に格納されている。拡張ユニット用電子署名は、拡張ユニット300を機能させるプログラム、即ち、図3に示すEEPROM303に格納されている制御プログラムに基づいて生成されたメッセージダイジェストを公開鍵暗号方式における秘密鍵により暗号化した情報である。従って、起動用メモリカード261に格納されている拡張ユニット用電子署名は、拡張ユニット300のEEPROM303に格納されている制御用プログラムの更新に伴って更新する必要がある。また、拡張ユニット用電子署名は、対応する拡張ユニット300の機種情報に係る文字情報をインデックスとして格納されている。ここで言う機種情報とは、拡張ユニット300において同種のものには同一に割り振られる文字情報である。
【0024】
次に、拡張ユニット300の起動認証について説明する。図6は、拡張ユニット300の起動認証動作を示すシーケンス図である。融合機101に電源が投入され、コントローラ201が起動すると、コントローラ201は拡張ユニット300の認証処理を開始する。まず、ハードウェア獲得処理を行うSRM152が拡張ユニット300に対してコントローラ接続通知を行う(S601)。拡張ユニット300は、S601に対する応答として、拡張ユニット接続通知を行う(S602)。ここで、S602における応答は、オペレーションパネル202の認証処理であれば、オペレーションパネル接続通知となる。その他の拡張ユニット300においても同様に、FCU203であれば、FCU接続通知、撮像部121であれば撮像部接続通知、印刷部122であれば印刷部接続通知となる。拡張ユニット300は、S602において拡張ユニット接続通知を送信した後、自身の機種情報をSRM152に対して送信する(S603)。
【0025】
更に、拡張ユニット300は、EEPROM303に格納されている制御用プログラムからメッセージダイジェストMD1を生成し(S604)、MD1及び拡張ユニット認証依頼通知をSRM152に対して送信する(S605)。ここで、S605における拡張ユニット認証依頼通知は、オペレーションパネル202の認証処理であれば、オペレーションパネル認証依頼通知となる。その他の拡張ユニット300においても同様に、FCU203であれば、FCU認証依頼通知、撮像部121であれば撮像部認証依頼通知、印刷部122であれば印刷部認証依頼通知となる。また、拡張ユニット300がMD1を生成するのではなく、拡張ユニット300がSRM152、SCS168に対して制御プログラムを送信し、SCS168がMD1を生成しても良い。しかし、制御プログラムそのものよりもMD1の方が容量が少ないため、拡張ユニット300がMD1を生成することが好ましい。
【0026】
SRM152は、拡張ユニット300から拡張ユニット認証依頼通知を受信すると、SCS164に対して拡張ユニット認証依頼通知を転送する(S606)。ここで、S606におけるSRM152からSCS164に対する転送には、S603においてSRM152が受信した拡張ユニット300の機種情報及びS605においてSRM152が受信したMD1が含まれる。SCS164は、SRM152から拡張ユニット認証依頼通知を受信すると、SRM152から受信した情報及び起動用メモリカード261に含まれる拡張ユニット用電子署名を用いて電子認証を実行する(S607)。SCS164は、電子認証が完了すると、認証結果をSRM152に対して送信する(S608)。SRM152は、SCS164から認証結果を受信すると、拡張ユニット300に対して認証結果を転送する(S609)。
【0027】
図6に示す拡張ユニット300の処理は、拡張ユニット300において制御プログラムがメモリ302にロードされ、制御部321が構成される前に実行される。従って、拡張ユニット300の起動後、通常の動作を制御する制御部321とは異なる制御手段(起動前制御手段)によって制御される。この起動前制御手段は、例えばハードウェアによって拡張ユニット300に実装されても良いし、コントローラ201の起動後、コントローラ201が拡張ユニット300に対して起動前制御プログラムを送信し、そのプログラムがメモリ302にロードされることによって構成されても良い。また、拡張ユニット300内に予め起動前制御プログラムが格納されていても良いが、拡張ユニット300に含まれる制御プログラムの改ざんを検知する目的においては、ハードウェア若しくはコントローラ201から与えられて構成されることが好ましい。図6に説明したように、SCS168、SRM152及び拡張ユニット300の起動前制御手段が連動して、EEPROM303に格納された制御プログラムの正当性を確認する制御プログラム認証手段として機能する。
【0028】
次に、図7を用いて、図6のS607における電子認証について説明する。SCS164は、図6のS606において格調ユニット認証依頼通知を受信すると(S701)、受信した拡張ユニット300の機種情報に基づいて起動用メモリカード261を検索し、認証対象となる拡張ユニット用電子署名が格納されているか確認する(S702)。尚、図5において説明したように、拡張ユニット用電子署名は、対応する拡張ユニット300の機種情報をインデックスとして格納されているため、認証対象となる拡張ユニット300から自身の機種情報を受信することにより、認証対象となる拡張ユニット300の電子署名を迅速に検索することができる。認証対象となる拡張ユニット用電子署名が起動用メモリカード261に格納されていない場合(S702でNO)、認証対象である拡張ユニット300の認証失敗と判断し(S706)、処理を終了する。認証対象となる拡張ユニット用電子署名が起動用メモリカード261に見つかった場合(S702でYES)、その電子署名を公開鍵により復号化し、正当なプログラムのメッセージダイジェストであるMD2を生成する(S703)。尚、拡張ユニット用電子署名の復号化において用いられる公開鍵は、予めコントローラ201が保持している。
【0029】
拡張ユニット用電子署名からMD2を生成した後、SCS164は図6のS606で受信したMD1とMD2とを照合し、両者が一致するか否か判断する(S704)。MD1とMD2とが一致しなかった場合、認証対象である拡張ユニット300の認証失敗と判断し(S706)、処理を終了する。MD1とMD2とが一致した場合、認証対象である拡張ユニット300の認証成功と判断し(S705)、処理を終了する。SCS164による認証結果が認証成功だった場合、認証成功の通知を受けた拡張ユニット300では、図4に示すようにEEPROM303に格納された制御プログラムがメモリ302にロードされ、CPU301と連動して制御部321が構成され、動作を開始する。
【0030】
SCS164による認証結果が認証失敗だった場合、SRM152は認証結果を認証対象である拡張ユニット300に通知すると共に、オペレーションパネル202に図8(a)、(b)に示すような警告画面を表示する。ここで、図8(a)に示す警告画面は、図7のS702において認証対象の拡張ユニット用電子署名が見つからなかった場合の警告画面であり、図8(b)に示す警告画面は、S704においてMD1とMD2とが一致しなかった場合の警告画面である。尚、オペレーションパネル202は、拡張ユニット300の認証処理においてもこのような役割を有するため、複数ある拡張ユニット300の中で一番初めに認証処理を行うことが好ましい。また、オペレーションパネル202の認証に失敗した場合は、図4に示す制御部321が構成される前の段階であるため、制御部の処理によらず独自のコマンドによって警告画面を表示する。
【0031】
以上説明したように、本実施例に係る画像形成装置では、起動時に、装置本体のコントローラに係る制御プログラムのみではなく、機能拡張のために主装置に接続される拡張ユニットの制御プログラムの正当性も検証する。これにより、複数の機能を有する複合型の画像形成装置において、不正なプログラムが拡張ユニットの起動において用いられることを防ぐことができ、装置起動の信頼性を高めることができる。
尚、本実施例の説明においては、複合型の画像形成装置を例として説明したが、例えば、パーソナルコンピュータにおけるPCIユニット等、機能拡張のために主となる装置(基板)に対して接続される拡張ユニットであれば適用することができ、上記と同等の効果を得ることができる。また、上記の説明においては、拡張ユニット用電子署名の復号化に用いられる公開鍵を、コントローラ201が予め保持している例を説明したが、例えば拡張ユニットの認証処理に際し、その都度オンラインにより取得しても良いし、ユーザがその都度入力するようにしても良い。こうすることにより、コントローラ201に格納されている公開鍵の改ざんによる不正認証を防ぐことができる。更に、図5に示す拡張ユニット用電子署名は、公開鍵暗号方式ではなく共通鍵暗号方式の共通鍵によって暗号化しても良い。この場合、SCS168は共通鍵を用いて拡張ユニット用電子署名を復号化する。この時に用いられる共通鍵は、コントローラ201に予め格納しておいても良いし、認証の都度ユーザが入力しても良いが、コントローラ201のハッキングによる共通鍵の情報漏洩を防ぐためにはユーザがその都度入力することが好ましい。
【0032】
また、上記の説明においては、拡張ユニット用電子署名が、融合機101の起動プログラムと同様、起動用メモリカード261に格納されている例を説明したが、この他、融合機101に含まれるHDD233等の固定型の記憶媒体、USB242やIEEE243を介して接続される記憶媒体、ASIC212内に実装されるEEPROM等に格納されていても良い。また、拡張ユニット300内のEEPROM303内に、制御プログラムと拡張ユニット用電子署名とが格納され、上記実施例のようにコントローラ201が読み出して正当性検証を実施しても良い。この場合、拡張ユニット用電子署名が改ざんされることにより、コントローラ201が予め保持している若しくはオンラインで取得した公開鍵により復号化できなくなるため、コントローラ201は、拡張ユニット用電子署名の復号化に失敗した場合に正当性の認証失敗を判断しても良い。
【0033】
また、上記の説明においては、コントローラ201が拡張ユニット300内に格納されている制御プログラムの正当性を検証する例を説明したが、融合機101の起動に際し、拡張ユニット300がコントローラ201から与えられたコマンドに従って正当性を検証しても良い。また、上記の説明においては、拡張ユニットの制御プログラムの認証に失敗した場合、オペレーションパネル202に警告画面を表示する例を説明したが、この他、例えば該当する拡張ユニット300への電源供給を遮断しても良いし、融合機101全体の動作を強制的に終了しても良い。これにより、例えば電子認証処理に対応して発動するようなウィルスプログラムの実行を防ぐことができる。他方、このような場合、ユーザが装置状態を視覚的に認識することができないため、認証失敗に応じて所定期間オペレーションパネル202に警告を表示した後、拡張ユニット300若しくは融合機101の動作を終了しても良い。
また、上記の説明においては、図8(a)、(b)に示す警告をオペレーションパネル202に表示する例を説明したが、この他、オペレーションパネル202とは異なる表示部をコントローラ201に設け、その表示部に図8(a)、(b)に示す警告を表示するようにしても良い。
【実施例2】
【0034】
本実施例においては実施例1における拡張ユニット300の制御プログラム更新において、更新用プログラムの正当性を検証する例を説明する。尚、実施例1と同様の符号を付す構成については実施例1と同一又は相当部を示し、説明を省略する。
図9は、更新用メモリカード262に含まれる情報を示している。図9に示すように、更新用メモリカード262には、拡張ユニット300のEEPROM303に含まれる制御プログラムを更新するための更新用情報620が格納されている。更新用情報620は、ヘッダ部621及びデータ部622を有する。ヘッダ部621は、ヘッダA1、ヘッダA2、ヘッダB1、ヘッダB2・・・を有し、データ部622は、データA1、データA2、データB1、データB2・・・を有する。ヘッダ部621に含まれる夫々のデータとデータ部622に含まれる夫々のデータとは、ヘッダA1とデータA1、ヘッダA1とデータA1というように互いに対応している。
【0035】
データA1、データB1・・・は、EEPROM303に含まれる制御プログラムを更新するための更新用プログラムであり、バイナリデータとして格納されている。データA2、データB2・・・は、更新用プログラムの電子署名であり、データA2はデータA1の電子署名、データB2はデータB1の電子署名というように対応する。データA2、データB2・・・は、ハッシュ関数によりデータA1、データB1等、対応するプログラムから生成したメッセージダイジェストMD3を、公開鍵暗号方式の秘密鍵により暗号化したものである。ヘッダA1、ヘッダB1、ヘッダA2、ヘッダB2・・・は、更新用プログラムを適用すべき拡張ユニット300の種類を示す機種情報及び対応するデータA1、A2、B1、B2・・・が更新用プログラムであるか電子署名であるかを示すフラグを有する。尚、更新用情報620には、拡張ユニット300の制御プログラムを更新するためのデータに加え、融合機101本体のソフトウェア112に含まれるアプリケーション131やプラットフォーム132等のプログラムを更新するための情報も格納される。
【0036】
次に、本実施例に係る拡張ユニット300の制御プログラムの更新処理について説明する。図10は、拡張ユニット300に含まれる制御プログラムの更新処理を示すフローチャートである。更新用メモリカード262がメモリカード用スロット252に挿入され、プログラムの更新が開始されると、OUS169がMCSを介してメモリを取得し、更新用メモリカード262に格納されている更新用情報620を取得してメモリに展開する。即ち、OUS169が更新用情報620及びそれに含まれる情報の正当性を確認する認証手段として機能する。OUS169は、まず更新用情報620のヘッダ解析を実行し(S1001)、更新用情報620に拡張ユニット300の制御プログラムを更新するための情報が含まれるか否か判断する(S1002)。この判断は、ヘッダ部621に含まれる機種情報を参照することにより行う。更新用情報620に拡張ユニット300の制御プログラムを更新するための情報が含まれていない場合(S1002)、処理を終了する。
【0037】
更新用情報620に拡張ユニット300の制御プログラムを更新するための情報が含まれている場合(S1002)、OUS169は、そのヘッダ部621に対応するデータ部622を読み出し、データ部622に含まれる電子署名(例えば、図9におけるデータA2)を、公開鍵を用いて復号化してメッセージダイジェストMD3を生成する(S1003)。尚、公開鍵の取得については実施例1と同様の方法を用いることができる。OUS169は、電子署名を復号化した後、ハッシュ関数により、データ部622に含まれる更新用プログラム(例えば、図9におけるデータA1)からメッセージダイジェストMD4を生成し、MD3とMD4とを照合して両者が一致するか否か判断する(S1004)。MD3とMD4とが一致しなかった場合(S1004)、OUS169は認証失敗と判断し、対象の拡張ユニット300の種類及び認証に失敗した旨をオペレーションパネル202に表示する(S1008)。
【0038】
MD3とMD4とが一致した場合(S1004)、OUS169は認証成功と判断し、更新用プログラムを用いて、更新対象である拡張ユニット300のEEPROM303に格納されている制御プログラムを更新する(S1005)。更に、OUS169は、起動用メモリカード261に格納されている拡張ユニット用電子署名を更新する(S1006)。制御プログラム及び拡張ユニット用電子署名の更新が終了したら、S1001における解析結果を参照し、まだ更新処理が終了していないヘッダ部621があるか否か判断する(S1007)。尚、S1004において、認証に失敗した場合も、エラー表示を実行した後(S1008)、更新処理が終了していないヘッダ部621があるか否か確認する(S1007)。更新処理が終了していないヘッダ部621がある場合(S1007)、S1003からの処理を繰り返し、更新処理が終了していないヘッダ部621がなければ処理を終了する。
【0039】
以上説明したように、拡張ユニット300を機能させる制御プログラムの更新に際し、電子認証により更新用プログラムの正当性を確認することによって、拡張ユニット300の制御プログラムが不正なプログラムによって書き換えられてしまうことを防ぐことができる。尚、上記の説明においては、図10のS1001からS1008までの処理をOUS169が行う例を説明したが、OUS169の指示により拡張ユニット300が実行しても良い。
【図面の簡単な説明】
【0040】
【図1】本発明の実施例に係る融合機の全体構成を模式的に示すブロック図である。
【図2】本発明の実施例に係る融合機のハードウェア構成を示すブロック図である。
【図3】本発明の実施例に係る拡張ユニットのハードウェア構成を示すブロック図である。
【図4】本発明の実施例に係る拡張ユニットの機能ブロックを示すブロック図である。
【図5】本発明の実施例に係る起動用メモリカードに含まれる情報を示す図である。
【図6】本発明の実施例に係る拡張ユニットの起動処理を示すフローチャートである。
【図7】本発明の実施例に係る拡張ユニットの制御プログラムの認証処理を示すフローチャートである。
【図8】本発明の実施例に係るオペレーションパネルの画面表示を示す図である。
【図9】本発明の他の実施例に係る更新用メモリカードに含まれる情報を示す図である。
【図10】本発明の他の実施例に係る拡張ユニットの制御プログラムの更新処理を示すフローチャートである。
【符号の説明】
【0041】
101 融合機
121 撮像部
122 印刷部
152 SRM(System Resource Manager)
168 SCS(System Control Service)
169 OUS(On Demand Update Service)
202 オペレーションパネル
261 起動用メモリカード
262 更新用メモリカード
300 拡張ユニット
303 EEPROM

【特許請求の範囲】
【請求項1】
拡張ユニットを接続することにより機能拡張を行う画像形成装置であって、
前記画像形成装置に接続される拡張ユニットと、
前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、
前記制御プログラムの正当性を確認する制御プログラム認証手段とを有し、
前記拡張ユニットの起動時に、前記制御プログラム認証手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動することを特徴とする画像形成装置。
【請求項2】
前記制御プログラム認証手段は、
前記制御プログラムに基づいた第1の認証情報を生成する第1の手段と、
前記制御プログラムの正当性を保証する証明情報に基づいた第2の認証情報を生成する第2の手段と、
前記第1の認証情報と前記第2の認証情報とを照合して前記制御プログラムの正当性を確認する第3の手段とを有することを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記証明情報は、前記画像形成装置に接続可能な可搬型記憶媒体に格納され、
前記第2の手段は、前記可搬型記憶媒体から前記証明情報を取得して前記第2の認証情報を生成することを特徴とする請求項2に記載の画像形成装置。
【請求項4】
前記証明情報は、正当性の証明対象である制御プログラムに対応した拡張ユニットの機種情報をインデックスとして格納されていることを特徴とする請求項3に記載の画像形成装置。
【請求項5】
前記証明情報は、前記制御プログラムから生成した第1の認証情報を公開鍵暗号方式の秘密鍵により暗号化した電子署名であり、
前記第2の手段は、前記秘密鍵に対応した公開鍵を用いて前記証明情報を復号化して前記第2の証明情報を生成する手段であって、前記証明情報を復号化するための公開鍵を、その都度外部から取得することを特徴とする請求項2乃至4いずれか1項に記載の画像形成装置。
【請求項6】
前記制御プログラム認証手段が前記制御プログラムの正当性確認に失敗した場合、認証対象である前記拡張ユニットへの電源供給を遮断することを特徴とする請求項1乃至5いずれか1項に記載の画像形成装置。
【請求項7】
前記制御プログラム認証手段が前記制御プログラムの正当性確認に失敗した場合、前記画像形成装置に接続された表示部に警告を表示することを特徴とする請求項1乃至6いずれか1項に記載の画像形成装置。
【請求項8】
前記表示部は、複数設けられた前記拡張ユニットの一つとして設けられ、
前記複数の拡張ユニットの起動に際し、前記表示部の起動処理を最初に実行することを特徴とする請求項7に記載の画像形成装置。
【請求項9】
拡張ユニットを接続することにより機能拡張を行う画像形成装置であって、
前記画像形成装置に接続される拡張ユニットと、
前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、
前記制御プログラムを更新するための更新用プログラムの正当性を確認する更新用プログラム認証手段とを有し、
前記制御プログラムの更新時に、前記認証手段が前記制御プログラムの正当性を確認した後に前記制御プログラムを更新することを特徴とする画像形成装置。
【請求項10】
前記制御プログラムの正当性を確認する制御プログラム認証手段を更に有し、
前記制御プログラム認証手段は、
前記制御プログラムに基づいた第1の認証情報を生成する第1の手段と、
前記画像形成装置に接続可能な可搬型記憶媒体から前記制御プログラムの正当性を保証する証明情報を取得し、前記証明情報に基づいた第2の認証情報を生成する第2の手段と、
前記第1の認証情報と前記第2の認証情報とを照合して前記制御プログラムの正当性を確認する第3の手段とを有し、
前記拡張ユニットの起動時に、前記第3の手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動し、
前記制御プログラムの更新に伴って前記証明情報も更新することを特徴とする請求項9に記載の画像形成装置。
【請求項11】
拡張ユニットを接続することにより機能拡張を行う画像形成装置の起動方法であって、
前記拡張ユニットの機種情報を参照して前記拡張ユニットを制御する制御プログラムの正当性を証明する証明情報を検索し、
前記制御プログラムに基づいた第1の認証情報を生成し、
前記証明情報に基づいた第2の認証情報を生成し、
前記第1の認証情報と前記第2の認証情報とを照合して前記制御プログラムの正当性を確認し、
前記制御プログラムの正当性が確認された後に前記拡張ユニットを起動することを特徴とする画像形成装置の起動方法。
【請求項12】
主となる装置に接続することによって機能拡張を行う拡張ユニットを制御する制御装置であって、
前記制御装置に接続される拡張ユニットと、
前記拡張ユニットに含まれ、前記拡張ユニットを機能させる制御プログラムが格納された記憶媒体と、
前記制御プログラムの正当性を確認する制御プログラム認証手段とを有し、
前記拡張ユニットの起動時に、前記制御プログラム認証手段が前記制御プログラムの正当性を確認した後に前記拡張ユニットを起動することを特徴とする制御装置。
【請求項13】
機能拡張のために接続される拡張ユニットの起動方法であって、
前記拡張ユニットの機種情報を参照して前記拡張ユニットを制御する制御プログラムの正当性を証明する証明情報を検索し、
前記制御プログラムに基づいた第1の認証情報を生成し、
前記証明情報に基づいた第2の認証情報を生成し、
前記第1の認証情報と前記第2の認証情報とを照合して前記制御プログラムの正当性を確認し、
前記制御プログラムの正当性が確認された後に前記拡張ユニットを起動することを特徴とする拡張ユニットの起動方法。

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


【公開番号】特開2008−171041(P2008−171041A)
【公開日】平成20年7月24日(2008.7.24)
【国際特許分類】
【出願番号】特願2007−841(P2007−841)
【出願日】平成19年1月5日(2007.1.5)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】