(57)【要約】【課題】  暗号化後のパケットサイズが転送先の媒体のＭＴＵを越えると、その転送するパケットを、そのＭＴＵ以下のサイズに複数のパケットに分割して送信しなければならない。【解決手段】  画像処理装置１００は、セキュリティ情報に基づいて、拡張制御装置１０１へ送信するデータサイズを変更し、その変更したデータサイズに従って平文データを拡張制御装置１０１装置に送信する。拡張制御装置１０１は、画像処理装置１００から受信した平文データをセキュリティ情報に従って暗号化し、その暗号化したデータをホストコンピュータ１１に送信する。【選択図】  図１２
2008035272.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２情報処理装置を含む情報処理システムであって、
前記第１情報処理装置は、
第１のネットワークを介して外部機器と通信する第１インターフェイスと、
第２のネットワークを介して前記第２情報処理装置と通信する第２インターフェイスと、
前記第２インターフェイスを介して前記第２情報処理装置から受信したデータを暗号化する暗号化手段と、
暗号通信に必要なデータが付加された前記暗号化手段で暗号化したデータを前記第１のインターフェイスを介して前記外部機器に送信する送信手段とを有し、
前記第２情報処理装置は、
特定のデータサイズから暗号通信に必要なデータのデータサイズを引いた後のデータサイズに従ってデータを前記第１情報処理装置に送信する送信手段と、
を有することを特徴とする情報処理システム。
【請求項２】
暗号通信に用いられるプロトコルの種類に基づいて、暗号通信に必要なデータのデータサイズを決定する決定手段を有することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
暗号通信に用いられるプロトコルの種類を示すセキュリティ情報が前記第１情報処理装置から前記第２情報処理装置に通知されることを特徴とする請求項２に記載の情報処理システム。
【請求項４】
暗号通信が行われない場合に、前記特定のデータサイズに従ってデータを前記第１情報処理装置に送信する第２の送信手段を有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
データの送信先ごとに、当該送信先にデータを送信する場合に暗号通信が行われるべきかどうかを示すセキュリティ情報が前記第１情報処理装置から前記第２情報処理装置に通知されることを特徴とする請求項４に記載の情報処理システム。
【請求項６】
暗号通信はＩＰＳｅｃに基づく通信であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理システム。
【請求項７】
第１及び第２情報処理装置を含む情報処理システムにおけるデータ通信方法であって、
前記第１情報処理装置により、第２情報処理装置から受信したデータを暗号化する暗号化工程と、
前記第１情報処理装置により、暗号通信に必要なデータが付加された前記暗号化工程で暗号化したデータを外部機器に送信する送信工程と、
前記第２情報処理装置により、特定のデータサイズから暗号通信に必要なデータのデータサイズを引いた後のデータサイズに従ってデータを前記第１情報処理装置に送信する送信工程と、
を有することを特徴とする情報処理システムにおけるデータ通信方法。
【請求項８】
前記第２情報処理装置により、暗号通信に用いられるプロトコルの種類に基づいて、暗号通信に必要なデータのデータサイズを決定する決定工程を有することを特徴とする請求項７に記載のデータ通信方法。
【請求項９】
暗号通信に用いられるプロトコルの種類を示すセキュリティ情報が前記第１情報処理装置から前記第２情報処理装置に通知されることを特徴とする請求項８に記載のデータ通信方法。
【請求項１０】
前記第２情報処理装置により、暗号通信が行われない場合に、前記特定のデータサイズに従ってデータを前記第１情報処理装置に送信する第２の送信工程を有することを特徴とする請求項７乃至９のいずれか１項に記載のデータ通信方法。
【請求項１１】
データの送信先ごとに、当該送信先にデータを送信する場合に暗号通信が行われるべきかどうかを示すセキュリティ情報が前記第１情報処理装置から前記第２情報処理装置に通知されることを特徴とする請求項１０に記載のデータ通信方法。
【請求項１２】
暗号通信はＩＰＳｅｃに基づく通信であることを特徴とする請求項７乃至１１のいずれか１項に記載のデータ通信方法。
【請求項１３】
前記情報処理装置から受信したデータを暗号化して外部機器に送信する他の情報処理装置と通信可能な情報処理装置であって、
暗号化されたデータに付加される暗号通信に必要なデータのサイズを特定のデータサイズから引いた後のデータサイズに従って、データを分割するデータ分割手段と、
前記分割手段により分割された後のデータを前記他の情報処理装置に送信する送信手段とを有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも第１及び第２情報処理装置を含む情報処理システムとそのシステムにおけるデータ通信方法に関するものである。
【背景技術】
【０００２】
印刷、画像入力、文書ファイリング、文書送受信、画像変換等の機能を有する画像処理装置に接続され、その機能を拡張する拡張制御装置がある。この拡張制御装置は、ユーザ環境で使用されているネットワーク（ＬＡＮ）の通信方式のデータを、その画像処理装置が持つＩ／Ｆ方式に適したデータに変換するネットワーク機能拡張を有している。また、この拡張制御装置は、通信データをスプールするストレージ拡張機能や、その画像処理装置或はクライアント装置で行う処理の一部を肩代わりするなどの負荷分散機能等を有している（例えば特許文献１）。
【０００３】
ところで、インターネット上で安全に通信を行う仕様の１つに、ＩＰＳｅｃ（IP security）という技術がある。このＩＰＳｅｃは、ＲＦＣ２４０１（Security Architecture for the Internet Protocol）を中心に、複数のＲＦＣにより規定されている。
【特許文献１】特開２００３−９９２３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら上述した従来技術を用いて、拡張制御装置が画像処理装置に代わって暗号化／復号化処理を行う場合、拡張制御装置は画像処理装置から送信された平文データを暗号化した後、新たなヘッダ、トレイラを付与することになる。このため、暗号化が行われた後のパケットのサイズが、転送先の通信媒体の最大転送単位（ＭＴＵ：Maximum Transfer Unit）を越えることがある。この場合には、拡張制御装置は、転送するパケットを、転送先の通信媒体のＭＴＵ以下に分割して送信する。この動作はフラグメンテーション（Fragmentation）と呼ばれる。ところが、このフラグメンテーションを行うには、転送するパケットをバッファに保存し、転送するサイズ単位でパケットの一部をバッファから取り出し、パケットを再構築しなければならない。このためオーバーヘッドが発生するという問題があった。
【０００５】
本発明の目的は上記従来技術の問題点を解決することにある。
【０００６】
又本願発明の特徴は、平文データを暗号化した場合でもフラグメンテーションの発生を防止する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明の一態様に係る情報処理システムは以下のような構成を備える。即ち、
第１及び第２情報処理装置を含む情報処理システムであって、
前記第１情報処理装置は、
第１のネットワークを介して外部機器と通信する第１インターフェイスと、
第２のネットワークを介して前記第２情報処理装置と通信する第２インターフェイスと、
前記第２インターフェイスを介して前記第２情報処理装置から受信したデータを暗号化する暗号化手段と、
暗号通信に必要なデータが付加された前記暗号化手段で暗号化したデータを前記第１のインターフェイスを介して前記外部機器に送信する送信手段とを有し、
前記第２情報処理装置は、
特定のデータサイズから暗号通信に必要なデータのデータサイズを引いた後のデータサイズに従ってデータを前記第１情報処理装置に送信する送信手段と、
を有することを特徴とする。
【０００８】
上記目的を達成するために本発明の一態様に係る情報処理システムにおけるデータ通信方法は以下のような工程を備える。即ち、
第１及び第２情報処理装置を含む情報処理システムにおけるデータ通信方法であって、
前記第１情報処理装置により、第２情報処理装置から受信したデータを暗号化する暗号化工程と、
前記第１情報処理装置により、暗号通信に必要なデータが付加された前記暗号化工程で暗号化したデータを外部機器に送信する送信工程と、
前記第２情報処理装置により、特定のデータサイズから暗号通信に必要なデータのデータサイズを引いた後のデータサイズに従ってデータを前記第１情報処理装置に送信する送信工程と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、平文データを暗号化した場合でもフラグメンテーションの発生を防止でき、データの転送効率を向上させることができる。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１１】
［実施の形態１］
図１は、本発明の実施の形態に係る拡張画像処理システムが利用されるネットワーク環境の一例を示す模式図である。
【００１２】
拡張画像処理システム１０は、画像処理装置１００と拡張制御装置１０１とを有し、拡張制御装置１０１は、印刷、画像入力、文書ファイリング、文書送受信、画像変換等の機能を有する画像処理装置１００に対して更に拡張した機能を提供している。この拡張制御装置１０１の第１ネットワークインタフェース２０はＬＡＮ４００に接続され、このＬＡＮ４００を介して他のネットワークノードと通信できる。また画像処理装置１００と拡張制御装置１０１との間の第２ネットワークインタフェース２１は、ＬＡＮ４０１を介して接続されている。
【００１３】
ホストコンピュータ（ＰＣ）１１は、個人向けの情報処理装置であり、主にユーザの机上に置かれて各種アプリケーションプログラムが実行される。ホストコンピュータ１１はＬＡＮ４００に接続され、ＬＡＮ４００を介して他のネットワークノードが提供するサービスを利用したり、他のネットワークノードにサービスを提供したりする。サーバコンピュータ１２は大規模な情報処理装置であり、ＬＡＮ４００に接続され、ＬＡＮ４００を介して主に他のネットワークノードに対するサービスを提供する。プリンタ１３はネットワーク対応した周辺機器で、ＬＡＮ４００に接続され、ＬＡＮ４００を介して他のネットワークノードに対して印刷サービスを提供する。ルータ１４はネットワークとネットワークとを接続するネットワークノードであり、インターネットやバーチャルプライベートネットワークなどの広域ネットワーク１５とＬＡＮ４００とを接続している。ここで、ＬＡＮ４００はユーザのオフィスなどに敷設されたローカルエリアネットワークである。
【００１４】
次に、本実施の形態で用いるＩＰＳｅｃ（IP security）について簡単に説明する。このＩＰＳｅｃで実現できる機能には以下がある。
・アクセス制御：接続元のアドレス等に基づいて接続の許可・不許可を行う。
・通信データの完全性の保証：通信データが通信経路の途中で改竄されていないことを保証する。
・通信内容の秘匿：通信データを暗号化して、通信経路上で通信データを傍受されても通信データの内容が容易に判別できないようにする。
【００１５】
以上の機能を実現するため、ＩＰＳｅｃは複数の技術より構成されている。
【００１６】
このＩＰＳｅｃではＡＨ（Authentication Header）とＥＳＰ（Encapsulating Security Payload）というセキュリティプロトコルを用いる。ＡＨは認証（完全性の保証）に用い、ＥＳＰは暗号化（データの秘匿性を実現）に用いる。ＡＨはＲＦＣ２４０２で，ＥＳＰはＲＦＣ２４０６でそれぞれ規定されている。ＡＨ，ＥＳＰには、それぞれトランスポートモードとトンネルモードの２つのモードがある。トランスポートモードはＩＰのペイロード部分をセキュリティプロトコルの処理対象にし、トンネルモードはＩＰパケット全体を処理対象とする。
【００１７】
ＩＰＳｅｃでは鍵、暗号アルゴリズム等を管理するために、ＳＡ（Security Association）というパラメータのセットを用いる。このＳＡを管理するデータベースをＳＡＤ（Security Association Database）と呼ぶ。このＳＡのパラメータとして、通信する２点間の識別子、ＳＰＩ（Security Parameter Index）、セキュリティプロトコルの種類、暗号アルゴリズムとその鍵、ＳＡの生存時間、暗号化アルゴリズムで用いるＩＶの値、カウンタがある。ＳＡには方向があり、双方向通信を行うためには２つのＳＡが必要となる。
【００１８】
セキュリティポリシーとは、一般には「何を」「何から」「どのように」守るかを示す行動指針を指すが、ＩＰＳｅｃにおけるＳＰ（Security Policy）は、どのようなＩＰパケットに対してＩＰＳｅｃを適用するか否かを示す。このＳＰのパラメータとしては、ＩＰ層プロトコル番号、ＩＰアドレス、ネットワークアドレス、トランスポート層プロトコル、ポート番号、ユーザ識別子がある。このＳＰを管理するデータベースをＳＰＤ（Security Parameter Database）と呼ぶ。
【００１９】
ＩＰＳｅｃを行うために、通信する２点間でＳＡのパラメータを共有する必要がある。また、暗号アルゴリズムで用いる鍵も共有する必要がある。ＩＰＳｅｃでは、その管理方法として、手動鍵管理と自動鍵管理を定義している。
【００２０】
自動鍵管理の方法として、ＩＰＳｅｃでは、ＩＫＥ（Internet Key Exchange）を用いる。このＩＫＥはＲＦＣ２４０９で規定されている。ＩＫＥは、ＩＫＥ自身のＳＡを交換するフェーズ１と、このフェーズ１により確立されたＳＡ下で安全にＩＰＳｅｃのＳＡのパラメータを交換するフェーズ２という２つのフェーズから成る。フェーズ１では、認証方式として電子署名、公開鍵暗号、Ｐｒｅ−ｓｈａｒｅｄ  Ｋｅｙの３つが定義されており、ＩＫＥを実行するプログラム同士がどれか１つを合意して用いる。
【００２１】
図２は、本実施の形態に係る画像処理装置１００と拡張制御装置１０１とで構成された拡張画像処理システム１０のブロック図である。
【００２２】
画像処理装置１００は、印刷、画像入力、文書ファイリング、文書送受信、画像変換など各種の基本的な画像処理機能を提供する。リーダ部（画像入力装置）２００は、原稿画像を光学的に読み取って画像データに変換する。このリーダ部２００は、原稿を読取るためのスキャナユニット２１０と、原稿用紙を搬送するための機能を持つ原稿給紙ユニット２５０とで構成される。
【００２３】
プリンタ部（画像出力装置）３００は、記録紙を搬送し、その上に画像データを可視画像として印刷して装置外に排紙する。プリンタ部３００は、複数種類の記録紙カセットを持つ給紙ユニット３６０と、画像データを記録紙に転写、定着させる機能を持つマーキングユニット３１０と、印刷した記録紙をソート、ステイプルして機外へ出力する機能を持つ排紙ユニット３７０とを有している。
【００２４】
制御部（コントローラ部）１１０は、リーダ部２００及びプリンタ部３００とに電気的に接続され、更にＬＡＮ４０１に接続されている。この制御部１１０は、リーダ部２００を制御して原稿の画像を読込み、プリンタ部３００を制御して画像データに基づく可視画像を記録用紙に印刷するコピー機能を提供する。またリーダ部２００で読取った画像の画像データをコードデータに変換し、ＬＡＮ４０１を介してクライアント装置（不図示）へ送信するスキャナ機能を提供している。更に、クライアント装置からＬＡＮ４００を介して受信したコードデータを画像データに変換し、プリンタ部３００に出力して印刷させるプリンタ機能をも提供している。
【００２５】
操作部１５０は制御部１１０に接続され、液晶タッチパネルを有し、この画像入出力システム１０を操作するためのユーザＩ／Ｆを提供する。拡張制御装置１０１は制御部１７０と周辺機器１７１とを含んでいる。この拡張制御装置の制御部１７０は、オペレーティングシステムや各種デバイスドライバや各種アプリケーションプログラムを含むソフトウェアを実行することができる。周辺機器１７１は各種の周辺機器であり、拡張制御装置１０１のハードウェアを拡張するのに用いられる。ここで画像処理装置１００と拡張制御装置１０１とはＬＡＮ４０１を介して接続され相互に通信できる。
【００２６】
図３は、本実施の形態に係る画像処理装置１００の制御部１１０のハードウェア構成を示すブロック図である。
【００２７】
メインコントローラ３０１１は、主にＣＰＵ３０１２と、バスコントローラ３０１３、各種Ｉ／Ｆコントローラ回路とを有している。ＣＰＵ３０１２とバスコントローラ３０１３は制御部１１０全体の動作を制御するものであり、ＣＰＵ３０１２はＲＯＭ３０１４からＲＯＭＩ／Ｆ３０１５を経由して読込んだプログラムに基いて動作する。また、クライアント装置から受信したＰＤＬ（ページ記述言語）コードデータを解釈し、ラスターイメージデータに展開する動作もこのプログラムに記述されており、ソフトウェアによって処理される。バスコントローラ３０１３は各Ｉ／Ｆから入出力されるデータ転送を制御しており、バス競合時の調停やＤＭＡデータ転送の制御を行う。ＤＲＡＭ３０１６はＤＲＡＭＩ／Ｆ３０１７によってメインコントローラ３０１１と接続されており、ＣＰＵ３０１２が動作するためのワークエリアや、画像データを蓄積するためのエリアとして使用される。
【００２８】
符号／復号化器（コーデック）３０１８は、ＤＲＡＭ３０１６に蓄積されたラスタイメージデータをＭＨ／ＭＲ／ＭＭＲ／ＪＢＩＧ／ＪＰＥＧ等の方式で圧縮し、また逆に圧縮され蓄積されたコードデータをラスタイメージデータに伸長する。ＳＲＡＭ３０１９はコーデック３０１８の一時的なワーク領域として使用される。このコーデック３０１８はＩ／Ｆ３０２０を介してメインコントローラ３０１１と接続され、ＤＲＡＭ３０１６との間のデータの転送は、バスコントローラ３０１３によって制御されＤＭＡ転送される。
【００２９】
グラフィック処理部３０３５は、画像回転、変倍処理、色空間変換等の処理を行う。外部通信Ｉ／Ｆ３０２１はＩ／Ｆ３０２３によってメインコントローラ３０１１と接続され、またコネクタ３０２２によって外部ネットワークと接続される。
【００３０】
汎用高速バス３０２５には、拡張ボードを接続するための拡張コネクタ３０２４とＩ／Ｏ制御部３０２６とが接続される。この汎用高速バス３２０５としては、一般的にＰＣＩバスが挙げられる。Ｉ／Ｏ制御部３０２６には、リーダ部２００、プリンタ部３００の各ＣＰＵと制御コマンドを送受信するための調歩同期シリアル通信コントローラ３０２７が２チャンネル装備されており、Ｉ／Ｏバス３０２８によって外部Ｉ／Ｆ回路３０４０，３０４５に接続されている。
【００３１】
パネルＩ／Ｆ３０３２は、ＬＣＤコントローラ３０３１に接続され、操作部１５０上の液晶画面に表示を行うためのＩ／Ｆと、ハードキーやタッチパネルキーの入力を行うためのキー入力Ｉ／Ｆ３０３０とから構成される。操作部１５０は、液晶表示部と液晶表示部上に貼り付けられたタッチパネル入力装置と、複数個のハードキーを有する。タッチパネル又はハードキーにより入力された信号は、前述したパネルＩ／Ｆ３０３２を介してＣＰＵ３０１２に伝えられる。液晶表示部は、パネルＩ／Ｆ３０３２から送られてきた画像データを表示する。この液晶表示部には、この画像処理装置１００の操作における機能表示や画像データ等を表示する。
【００３２】
リアルタイムクロックモジュール３０３３は、機器内で管理する日付と時刻を更新／保存するためのもので、バックアップ電池３０３４によってバックアップされている。Ｅ−ＩＤＥインタフェース３０６１は、外部記憶装置を接続するためのものである。本実施の形態においては、このＩ／Ｆを介してハードディスクドライブ３０６０を接続し、ハードディスク３０６２へ画像データを記憶させたり、ハードディスク３０６２から画像データを読み込ませたりする動作を行う。
【００３３】
コネクタ３０４２と３０４７は、それぞれリーダ部２００とプリンタ部３００とに接続され、同調歩同期シリアルＩ／Ｆ（３０４３，３０４８）とビデオＩ／Ｆ（３０４４，３０４９）とから構成される。スキャナＩ／Ｆ３０４０は、コネクタ３０４２を介してリーダ部２００と接続され、また、スキャナバス３０４１によってメインコントローラ３０１１と接続されており、リーダ部２００から受け取った画像データに対して所定の処理を施す機能を有する。更に、スキャナＩ／Ｆ３０４０は、リーダ部２００から送られたビデオ制御信号を基に生成した制御信号を、スキャナバス３０４１に出力する機能も有する。尚、スキャナバス３０４１からＤＲＡＭ３０１６へのデータ転送は、バスコントローラ３０１３によって制御される。
【００３４】
プリンタＩ／Ｆ３０４５は、コネクタ３０４７を介してプリンタ部３００と接続され、また、プリンタバス３０４６によってメインコントローラ３０１１と接続されている。そして、プリンタＩ／Ｆ３０４５は、メインコントローラ３０１１から出力された画像データに所定の処理を施して、プリンタ部３００へ出力する機能を有する。更に、プリンタＩ／Ｆ３０４５は、プリンタ部３００から送られたビデオ制御信号を基に生成した制御信号を、プリンタバス３０４６に出力する機能も有する。ＤＲＡＭ３０１６上に展開されたラスタイメージデータのプリンタ部３００への転送は、バスコントローラ３０１３によって制御され、プリンタバス３０４６、ビデオＩ／Ｆ３０４９を経由して、プリンタ部３００へＤＭＡ転送される。
【００３５】
図４は、本実施の形態に係る画像処理装置１００の制御部１１０に実装されたソフトウェアのモジュール構造を示すブロック図である。
【００３６】
この画像処理装置１００に内蔵されるコントローラ部１１０によって処理されるソフトウェアは、いわゆるファームウェアとして実装されており、装置１００のＣＰＵ１１２によって実行される。リアルタイムＯＳ４００１は、リアルタイムオペレーティングシステムであり、組み込みシステムの制御に最適化された各種資源管理のサービスと枠組みを、このＯＳ上で動作するソフトウェアのために提供する。このリアルタイムＯＳ４００１が提供する各種資源管理のサービスと枠組みには、ＣＰＵによる処理の実行コンテクストを複数管理することによって複数の処理を実質的に並行動作させるマルチタスク管理（スレッド管理）が含まれる。更に、タスク間の同期やデータ交換を実現するタスク間通信、メモリ管理、割り込み管理、各種のデバイスドライバ、ローカルインタフェースやネットワークや通信などの各種プロトコルの処理を実装したプロトコルスタック等が含まれる。
【００３７】
ファイルシステム４００２はハードディスクやメモリなどの記憶装置上に構築されたデータを格納するための機構で、コントローラ部１１０が扱うジョブをスプールしたり各種データを保存したりするために用いる。
【００３８】
ジョブ制御・装置制御モジュール４００３は、画像処理装置１００のハードウェアを制御する。また画像処理装置１００の主にハードウェアが提供する基本機能（プリント、スキャン、通信、画像変換など）を利用するジョブを制御する。管理モジュール４００４はコントローラ部１１０の動作に係る内部状態を制御する等のコントローラの動作を管理する。
【００３９】
ネットワークサービス４００６は、制御ＡＰＩ４００５とネットワークプロトコルとを相互変換することによって、クライアントＰＣなど外部のネットワークノードから装置の基本機能を利用可能とする。組み込みアプリケーションロジック４００７及び組み込みアプリケーションＵＩ４００９は、組み込みアプリケーションを構成する。組み込みアプリケーション４００９は、画像処理装置１００の基本機能に加えて、更にコピー、画像スキャン、文書送受信、文書ファイリング等の上位機能を実現する。組み込みアプリケーションロジック４００７は、組み込みアプリケーションのビジネスロジック部分に相当している。組み込みアプリケーションＵＩ４００９は、組み込みアプリケーションのプレゼンテーションロジックに相当し、ユーザによる組み込みアプリケーションの操作を可能とするためにグラフィカルユーザインタフェース（ＧＵＩ）の表示や入力の制御を行う。組み込みアプリケーションＵＩ４００９は、画像処理装置１００の操作部１４０上にローカルなユーザインタフェースを提供するだけでなく、ＨＴＭＬ等のマークアップ言語とＨＴＴＰ等のＷｅｂ技術を用いて実現したＷｅｂアプリケーションも提供する。
【００４０】
ユーザはクライアントＰＣ等の上で動作するＷｅｂブラウザから、このＷｅｂアプリケーションに接続して、画像処理装置１００を遠隔操作できる。Ｗｅｂアプリケーションとして実装した組み込みアプリケーションのプレゼンテーション層のことをここではリモートＵＩと呼ぶ。
【００４１】
組み込みＪａｖａ（登録商標）環境４０１０は、Ｊａｖａ仮想機械を中心に構成されるインタプリタ環境である。組み込みＪａｖａ環境４０１０は、Ｊａｖａのバイトコードで記述された命令列データを実行時に読み込んで結合し、Ｊａｖａ仮想機械が命令を逐次的に読み込み解釈し実行するように構成されている。従って、リアルタイムＯＳも含めて予め全体が単一のロードモジュールに静的結合されているファームウェア上にあって、ごく部分的ながらソフトウェアを動的に追加したり入れ替えたりできる拡張性や柔軟性を確保できる。
【００４２】
リアルタイムＯＳやジョブ制御・装置制御ＡＰＩ等を含むファームウェア（ネイティブシステム）の資源やサービスをＪａｖａのプログラムから利用可能なように構成したＪａｖａのクラスライブラリ群が、Java Native Interface （ＪＮＩ）によって提供されている。Ｊａｖａ環境４０１０の基本部分は、よく知られているJava 2 Platform， Micro Editionによって構築されている。
【００４３】
また画像処理装置１００の組み込みアプリケーションロジック４００７は、拡張制御装置１０１システムのアプリケーションによって実装されるプレゼンテーションロジックから制御することが可能になっている。
【００４４】
尚、この画像処理装置１００には拡張制御装置１０１と連携するか否かを制御するためのフラグが設けられており、このフラグは不揮発性メモリ（不図示）等に記憶される。
【００４５】
次に、ネットワークサービス４００６の詳細構成について図５を参照しながら説明する。
【００４６】
図５は、本発明の実施の形態に係る画像形成装置１００のネットワークサービス４００６の詳細構成を示すブロック図である。
【００４７】
データ送受信部５００１は、ネットワーク４０１を介して各種データの送受信を行う。プロトコル処理部５００２は、ＴＣＰ／ＩＰのようなネットワークプロトコルを使用して拡張制御装置１０１やホストコンピュータ１１（図１）と通信する。本実施の形態において、ネットワークアプリケーション部５００４は、データを指定された宛先にＥメールで送信したり、データを指定されたホストコンピュータやファイルサーバへＦＴＰ（File Transfer Protocol）やＳＭＢ（Server Message Block）その他のプロトコルを用いて送信する。
【００４８】
また、ネットワークアプリケーション部５００４はネットワークプリントのための各種プロトコル（ＬＰＲ，ＮｅｔＷａｒｅ，ＳＭＢ，ＰＡＰ，ＩＰＰなど）を実装したネットワークサーバ機能を備え、クライアントＰＣなど外部のネットワークノードからのプリントジョブの投入を可能とする。セキュリティ関連情報記憶部５００３は、ＳＰＤ（Security Policy Database）を記憶しておくためのものである。
【００４９】
図６は、本実施の形態に係るセキュリティ関連情報記憶部５００３に記憶されているＳＰＤのデータを例示した図である。
【００５０】
本実施の形態では、ＳＰＤは、予め拡張制御装置１０１でユーザによって設定され、画像処理装置１００に転送される。
【００５１】
図７は、本実施の形態に係る拡張制御装置１０１のハードウェア構成を示すブロック図である。
【００５２】
メインＣＰＵ７００１は、全体の制御を行う中央演算装置であり、ＲＯＭ７００３及びハードディスクユニット７００４に記憶されたプログラムを実行する。第１ネットワークインタフェース２０は、他の機器との間でＬＡＮ４００を介したデータ通信を行うための制御部である。ＣＰＵ７００１によって実行されるソフトウェアは、ＬＡＮ４００を介して、他のネットワーク機器或は他のコンピュータと双方向のデータのやり取りを行うことができる。第２ネットワークインタフェース２１は、画像処理装置１００との間でＬＡＮ４０１を介したデータ通信を行うための制御部である。ＣＰＵ７００１によって実行されるソフトウェアは、ＬＡＮ４０１を介して、画像処理装置１００との間で双方向のデータのやり取りを行うことができる。メモリ７００２は、ＣＰＵ７００１で実行する命令や、データ等を保存するための、一般的には揮発性の記憶部である。ＲＯＭ７００３は、基本的なハードウェア制御を行うためのプログラムやデータ等を保存するための読み取り専用記憶部である。ハードディスクユニット７００４は、拡張制御装置１０１本体で実行されるプログラムや演算されたデータなどを保存するための、一般的には不揮発性の記憶部である。ハードディスクユニット７００４は、ブートプログラム（起動プログラム：ハードやソフトの実行（動作）を開始するプログラム）、複数のアプリケーション、編集ファイル、ユーザファイルそしてネットワーク管理プログラム等を記憶する。周辺機器インタフェース７００５は、ＵＳＢ，ＲＳ−２３２Ｃシリアル、ＩＥＥＥ１３９４などの仕様を実装した周辺機器１７１を接続するための制御部である。この周辺機器１７１は、例えば、ユーザを特定するためのユーザ認証装置などである。
【００５３】
図８は、本実施の形態に係る拡張制御装置１０１のソフトウェアのモジュール構成を示すブロック図である。この拡張制御装置１０１に内蔵されるコントローラ１７０によって処理されるソフトウェアは、所謂、ファームウェアとして実装されており、装置のＣＰＵ７００１によって実行される。
【００５４】
第１ネットワークドライバ８００１は、ＬＡＮ４００に接続される第１ネットワークインタフェース２０（図７）を制御し、ネットワーク４００とのデータの送受信を行う。第２ネットワークドライバ８００２は、ＬＡＮ４０１に接続され，第２ネットワークインタフェース２１（図７）を制御し、ネットワーク４０１とのデータの送受信を行なう。
【００５５】
ネットワーク通信制御部８００３は、第１ネットワークドライバ８００１で受信される全てのパケットを検査し、アプリケーション部８００７に関係しないパケットを第２ネットワークインタフェース２１へ転送する。また、第２ネットワークインタフェース２１で受信された全てのパケットを検査し、アプリケーション部８００８に関係しないパケットを第１ネットワークインタフェース２０へ転送する。
【００５６】
プロトコル処理部８００４は、ＴＣＰ／ＩＰ等のネットワーク通信プロトコルを制御し，ＩＥＴＦのＩＰＳｅｃ（IP security）を用いて安全なネットワークコネクションを提供する。データ暗号化／復号化部８００５は、データの暗号化／復号化を行う。セキュリティ関連情報記憶部８００６は、ＳＰＤ（Security Policy Database）を記憶しておくためのものである。
【００５７】
アプリケーション部８００７は、暗号化留め置きプリント機能を実行するためのアプリケーションである。ホストコンピュータから暗号化された印刷データをＬＰＤプロトコルで受信して暗号化されたまま一旦ハードディスクユニット７００４（図７）に格納する。そして、許可されたユーザによる操作であることが確認された場合のみ、暗号化された印刷データを復号化して印刷データを画像処理装置１００へ送信する。アプリケーション部８００８は、画像処理装置１００と通信して、画像処理装置１００を制御するためのアプリケーションである。
【００５８】
次に画像処理装置１００のプロトコル処理部５００２の処理について、図９のフローチャートを使用して説明する。
【００５９】
図９は、本実施の形態に係る画像処理装置１００のプロトコル処理部５００２における処理手順を説明するフローチャートである。この処理は、画像処理装置１００のネットワークアプリケーション部５００４がＬＡＮ４０１にパケットを送信しようとすることにより実行される。尚、この処理を実行するプログラムはＲＯＭ３０１４に記憶されており、ＣＰＵ３０１２の制御の下に実行される。
【００６０】
まずステップＳ１００１で、ＣＰＵ３０１２は、パケットの送信が行われようとしているか否かを判定する。パケットの送信が行われようとしている場合にはステップＳ１００２に進み、ＳＰＤがセキュリティ関連情報記憶部５００３に記憶されているか否かを判定する。ここで記憶されていると判定するとステップＳ１００３へ進み、ＣＰＵ３０１２は、パケットの送信先ＩＰアドレスに基づいてＳＰＤを参照し、ＩＰＳｅｃを適用すべきか否かを判定する。ここでＩＰＳｅｃを適用すべきと判定するとステップＳ１００４に進み、ＣＰＵ３０１２は、パケットの送信先ＩＰアドレスに基づいてＳＰＤを参照して、使用されるべき暗号プロトコルを決定し、決定された暗号プロトコルに対応するパケットサイズの増分Ｘを求める。
【００６１】
図１０は、ＩＰＳｅｃの暗号プロトコルに対応するパケット構造の例を示す説明図である。１０００１はＩＰヘッダである。１０００２はＳＡを識別するためのＳＰＩ（Ｓｅｃｕｒｉｔｙ  Ｐａｒａｍｅｔｅｒ  Ｉｎｄｅｘ）やシーケンス番号が格納されるＥＳＰヘッダである。１０００３は暗号化アルゴリズムで用いる初期化ベクタ（ＩＶ：Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ）である。１０００４は、ＩＰＳｅｃによって暗号化されたデータである。１０００５はパディングデータ、パディング長、次ヘッダが格納されるＥＳＰトレイラである。１０００６はＥＳＰヘッダからＥＳＰトレーラまでのフィールドに対するＩＣＶ（Ｉｎｔｅｇｒｉｔｙ  Ｃｈｅｃｋ  Ｖａｌｕｅ）が格納されるＥＳＰ認証データである。
【００６２】
このパケットサイズの増分Ｘは、図１０の例の場合、ＥＳＰヘッダ、ＩＶ、ＥＳＰトレイラ、ＥＳＰ認証データのサイズの合計となる。これらは、ＩＰＳｅｃによる暗号通信に必要なデータである。
【００６３】
次にステップＳ１００５に進み、転送先の通信媒体の最大転送単位（ＭＴＵ）からＩＰヘッダのサイズ、ＴＣＰ／ＵＤＰヘッダのサイズ及びステップＳ１００４で求めた増分Ｘを引いて送信データサイズを決定する。つまり、ＭＴＵからＩＰヘッダのサイズとＴＣＰ／ＵＤＰヘッダのサイズとを引いた後の特定のデータサイズから、さらにステップＳ１００４で求めた増分Ｘを引いて、送信データサイズを決定する。そしてステップＳ１００６に進み、ＣＰＵ３０１２は、ステップＳ１００５で決定した送信データサイズに従って、平文データを拡張制御装置１０１に送信する。具体的には、画像処理装置１００は、画像データを送信データサイズ以下に分割し、分割後の画像データとＩＰヘッダとＴＣＰ／ＵＤＰヘッダとを含むパケットを拡張制御装置１０１に送信する。
【００６４】
一方、ステップＳ１００２でＳＰＤが記憶されていない場合、或はステップＳ１００３でＩＰＳｅｃを適用しないと判定するとステップＳ１００７に進み、ＣＰＵ３０１２は、増分Ｘを「０」としてステップＳ１００５へ進み、上述した処理を実行する。
【００６５】
次に拡張制御装置１０１のプロトコル処理部８００４の処理について、図１１のフローチャートを使用して説明する。尚、この処理を実行するプログラムはＲＯＭ７００３に記憶されており、ＣＰＵ７００１の制御の下に実行される。
【００６６】
図１１は、本実施の形態に係る拡張制御装置１０１のプロトコル処理部８００４の処理手順を示すフローチャートである。ここでは画像処理装置１００がホストコンピュータ１１に対し、何らかの通信を開始したとする。
【００６７】
拡張制御装置１０１のＣＰＵ７００１は、ステップＳ２００１において第２ネットワークインタフェース２１でパケットを受信したか否かを判定する。ここでパケットを受信したと判定するとステップＳ２００２に進み、ＬＡＮ４０１を介して受信したそのパケットを解析し、パケットの送信先ポート番号がアプリケーション８００７に対応付けられているポート番号か否かを判定する。ここでアプリケーション８００７に対応付けられているポート番号であると判定するとステップＳ２００３へ進み、ＣＰＵ７００１は、ＳＰＤがセキュリティ関連情報記憶部８００６に記憶されているか否かを判定する。ここで記憶されていると判定するとステップＳ２００４に進み、ＣＰＵ７００１は、パケットの送信先アドレスに基づいてＳＰＤを参照し、ＩＰＳｅｃを適用すべきか否かを判定する。ここでＩＰＳｅｃを適用すべきと判定するとステップＳ２００５へ進む。ステップＳ２００５で、ＣＰＵ７００１は、ＳＡが未確立か否かを判定する。ここでＳＡが未確立と判定するとステップＳ２００６に進み、ＳＡが確立済みであると判定するとステップＳ２００８に進む。ステップＳ２００６で、ＣＰＵ７００１は、第１ネットワークインタフェース２０を介して、宛先アドレスに対応するホストコンピュータ（例えばホストコンピュータ１１）との間でＩＫＥ（Internet Key Exchange）を実行する。
【００６８】
次にステップＳ２００７で、ＳＡが確立されたか否かを判定する。ＳＡが確立されるとステップＳ２００８に進み、ＣＰＵ７００１は、画像処理装置１００から受信したパケットに含まれている平文データをＳＡのパラメータに基づいてデータ暗号化／復号化部８００５に暗号化させる。例えば、ここで暗号化されるのは、画像処理装置１００から受信したパケットに含まれていた画像データとＴＣＰ／ＵＤＰヘッダとである。なお、ＴＣＰ／ＵＤＰヘッダに関しては、画像処理装置１００から受信したパケットに含まれていたＴＣＰ／ＵＤＰヘッダが暗号化されても、新たに作り直されたＴＣＰ／ＵＤＰヘッダが暗号化されても良い。さらに、ＣＰＵ７００１はＥＳＰヘッダ、ＩＶ、ＥＳＰトレイラ、ＥＳＰ認証データを生成する。そしてステップＳ２００９で、ＣＰＵ７００１は、ステップＳ２００８で暗号化したデータを第１ネットワークインタフェース２０からホストコンピュータ１１へ送信してこの処理終了する。具体的には、拡張制御装置１０１０は、暗号化したデータにＥＳＰヘッダ、ＩＶ、ＥＳＰトレイラ、ＥＳＰ認証データ及びＩＰヘッダを付加して、暗号化したデータとＩＰヘッダとＥＳＰヘッダとＩＶとＥＳＰトレイラとＥＳＰ認証データとを含むパケットをホストコンピュータ１１に送信する。図９の処理により、このときのパケットのサイズはＭＴＵ以下である。
【００６９】
一方、ステップＳ２００２で、パケットの送信先ポート番号がアプリケーション８００７に対応付けられたポート番号でないときはステップＳ２０１１に進む、このステップＳ２０１１では、ＣＰＵ７００１は、画像処理装置１００から受信した平文データを第１ネットワークインタフェース２０から送信して、この処理を終了する。具体的には、拡張制御装置１０１０は、画像処理装置１００から受信したパケットに含まれていた画像データとＴＣＰ／ＵＤＰヘッダとＩＰヘッダとを含むパケットを第１ネットワークインタフェース２０から送信する。なお、ＴＣＰ／ＵＤＰヘッダは、画像処理装置１００から受信したパケットに含まれていたＴＣＰ／ＵＤＰヘッダであっても、新たに作り直されたＴＣＰ／ＵＤＰヘッダであっても良い。
【００７０】
又ステップＳ２００３で、ＳＰＤがセキュリティ関連情報記憶部８００６に記憶されていない場合、或はステップＳ２００４でＩＰＳｅｃを適用しない場合はステップＳ２０１０に進む。ステップＳ２０１０では、ＣＰＵ７００１は、画像処理装置１００から受信した平文データをアプリケーション２００７へ転送して、終了する。
【００７１】
図１２は、本実施の形態に係る画像処理装置１００、拡張制御装置１０１、ホストコンピュータ１１との間でのパケットの送受信の状態を示すシーケンス図である。尚ここでは時間軸は縦方向に上から下向きとっている。
【００７２】
予め拡張制御装置１０１で、ユーザによって設定されたＳＰＤを画像処理装置１００に通知するために、拡張制御装置１０１から画像処理装置１００へＳＰＤを送信する（１２０１）。ここで画像処理装置１００がホストコンピュータ１１に対し、何らかの通信を開始する場合、パケットの送信先アドレスに基づいてＳＰＤを参照し、送信データサイズを決定する。この決定した送信データサイズに従って、平文データを拡張制御装置１０１に送信する（１２０２）。そして拡張制御装置１０１はＩＫＥを実行する（１２０３）。次にＳＡのパラメータに基づき平文データを暗号化して、暗号化したデータを宛先アドレスへ送信する（１２０４）。これ以降、データ送信が終了するまで、これらの処理を繰り返す。
【００７３】
尚、上記実施の形態では、送信データのサイズをＳＰＤから決定する例を示したが、本発明はこれに限るものではない。例えば、拡張制御装置１０１とホストコンピュータ１１間のＳＡを確立した後に、ＳＡパラメータを拡張制御装置１０１から取得し、ＳＡパラメータの暗号アルゴリズムに従って、データサイズを決定するものであっても良い。
【００７４】
また上記実施の形態では、拡張制御装置１０１と画像処理装置１００との接続形態が、画像処理装置１００が備えているネットワーク通信機能を介する場合で説明したが、本発明はこれに限るものではない。例えば、拡張制御装置１０１と画像処理装置１００との接続形態が、画像処理装置１００が備えている拡張インタフェース機能を介するものであっても良い。
【００７５】
また上記実施の形態では、セキュリティポリシー（ＳＰＤ）を画像処理装置１００が拡張制御装置１０１から取得する場合で説明したが、本発明はこれに限るものではない。画像処理装置１００でセキュリティポリシーを設定して保存するようにし、拡張制御装置１０１が画像処理装置１００から取得するようにしても良い。
【００７６】
上記で説明した本発明に係るプログラムコード及び関連データは、フロッピー（登録商標）ディスク（ＦＤ）やＣＤ−ＲＯＭ中に記憶され、そこからコンピュータに供給されうる。
【００７７】
また本発明の目的は、前述した実施形態の機能を実現するソフトウエア（制御プログラム）のプログラムコードを記録した記憶媒体を、コンピュータ、画像処理装置１００、拡張制御装置１０１に供給し、そのコンピュータ、画像処理装置１００、拡張制御装置１０１の中央演算ユニット（ＣＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによって達成される。プログラムやデータをコンピュータに供給する方法として、フロッピーディスクに記憶させて、例えばコンピュータ本体に（フロッピーディスクドライブを介して）供給する方法が一般的である。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７８】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスクやハードディスク以外にも，光ディスク，光磁気ディスク，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。また、コンピュータ、画像処理装置１００、拡張制御装置１０１が読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ、画像処理装置１００、拡張制御装置１０１上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施の形態に係る拡張画像処理システムが利用されるネットワーク環境の一例を示す模式図である。図である。
【図２】本実施の形態に係る画像処理装置と拡張制御装置とで構成された拡張画像処理システムの構成を示すブロック図である。
【図３】本実施の形態に係る画像処理装置の制御部のハードウェア構成を示すブロック図である。
【図４】本実施の形態に係る画像処理装置のコントローラ部に実装されたソフトウェアのモジュール構造を示すブロック図である。
【図５】本実施形態における画像形成装置１００のネットワークサービス４００６の詳細構成を示すブロック図である。
【図６】本実施例におけるＳＰＤの例を示す説明図である。
【図７】本実施例における拡張制御装置１０１のハードウェア構成を示すブロック図である。
【図８】本実施例における拡張制御装置１０１のソフトウェアのモジュール構成を示すブロック図である。
【図９】本実施例における画像処理装置１００のプロトコル処理部５００２の処理手順を示すフローチャートである。
【図１０】ＩＰＳｅｃの暗号化方式の例を示す説明図である。
【図１１】本実施例における拡張制御装置１０１のプロトコル処理部８００４の処理手順を示すフローチャートである。
【図１２】本実施例におけるデータ転送シーケンス図である。
【図１】
2008035272.tif 000003
【図２】
2008035272.tif 000004
【図３】
2008035272.tif 000005
【図４】
2008035272.tif 000006
【図５】
2008035272.tif 000007
【図６】
2008035272.tif 000008
【図７】
2008035272.tif 000009
【図８】
2008035272.tif 000010
【図９】
2008035272.tif 000011
【図１０】
2008035272.tif 000012
【図１１】
2008035272.tif 000013
【図１２】
2008035272.tif 000014