(57)【特許請求の範囲】
【請求項１】
ネットワークに接続可能な画像処理装置であって、
前記ネットワークに送信する送信データの暗号化または前記ネットワークから受信する受信データの復号化を行うセキュリティ手段が外部の記録媒体に格納されており、前記記録媒体に接続可能な接続手段と、
送信データの暗号化または受信データの復号化に用いるセキュリティ情報を有するオペレーティングシステムと、
前記セキュリティ手段が格納された前記記録媒体が前記接続手段に接続されているときに、前記オペレーティングシステムから前記セキュリティ情報を取得し、該セキュリティ情報を用いて前記セキュリティ手段に送信データの暗号化または受信データの復号化を行わせるセキュリティ制御手段と
を有することを特徴とする画像処理装置。
【請求項２】
送信データの暗号化または受信データの復号化を前記セキュリティ手段に行わせるためのアプリケーションプログラムインターフェースを備え、
前記セキュリティ手段を前記データ送受信手段や前記画像処理装置で実行される所定のプログラムから独立させたことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記接続手段は、前記外部の記録媒体を物理的に着脱可能な記録媒体着脱手段を有することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記画像処理装置は、画像に係る処理を行うプログラムおよび画像に係る処理で利用されるハードウェア資源の管理を行うプログラムが階層化された構造であることを特徴とする請求項１記載の画像処理装置。
【請求項５】
ネットワークに接続可能な画像処理装置の送受信データ処理方法であって、
前記ネットワークに送信する送信データの暗号化または前記ネットワークから受信する受信データの復号化を行うセキュリティ手段が格納されている外部の記録媒体に接続可能な接続手段が、前記記録媒体の接続有無を判定する段階と、
前記セキュリティ手段が格納された前記記録媒体が前記接続手段に接続されていると判定したときに、セキュリティ制御手段がオペレーティングシステムから送信データの暗号化または受信データの復号化に用いるセキュリティ情報を取得し、該セキュリティ情報を用いて、前記セキュリティ手段に送信データの暗号化または受信データの復号化を行わせる段階と
を有することを特徴とする送受信データ処理方法。
【請求項６】
ネットワークに接続可能な画像処理装置として機能するコンピュータに、
前記ネットワークに送信する送信データの暗号化または前記ネットワークから受信する受信データの復号化を行うセキュリティ手段が格納されている外部の記録媒体に接続可能な接続手段が、前記記録媒体の接続有無を判定する手順と、
前記セキュリティ手段が格納された前記記録媒体が前記接続手段に接続されていると判定したときに、セキュリティ制御手段がオペレーティングシステムから送信データの暗号化または受信データの復号化に用いるセキュリティ情報を取得し、該セキュリティ情報を用いて、前記セキュリティ手段に送信データの暗号化または受信データの復号化を行わせる手順とを
実行させるための送受信データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置，送受信データ処理方法並びに送受信データ処理プログラムに係り、特に暗号化・復号化処理を利用する画像処理装置，送受信データ処理方法並びに送受信データ処理プログラムに関する。
【背景技術】
【０００２】
近年のインターネットなどのネットワークの普及により、様々な装置がネットワークに接続されるようになっている。このように、様々な装置がネットワークに接続されたことにより、ハードウェア資源，ソフトウェア資源およびデータの共有が可能となった。
【０００３】
例えばネットワークに接続された装置の一例としての画像処理装置では、ネットワークを介して接続されたパーソナルコンピュータ（以下、ＰＣという）からの印刷データを受信し、その印刷データに基づき印刷を行う。印刷データの他にも、画像処理装置とＰＣとの間では、ＩＤ及びパスワードや課金データなどが送受信されることもある。
【０００４】
ところで、ネットワーク上を流れるデータは、一定のネットワーク技術を有する人であれば、盗聴や改竄が比較的容易である。例えばネットワーク上を流れる印刷データ，ＩＤ及びパスワードなどは、ネットワークに接続されたアナライザを利用して簡単に盗聴される。印刷データを盗聴した人は、印刷内容を不正に知ることができる。また、ＩＤ及びパスワードを盗聴した人は、なりすましが可能となる。さらに、ネットワーク上を流れる課金データも改竄されてしまう恐れがある。
【０００５】
したがって、ネットワークに接続される装置には、暗号化などのセキュリティ機能を搭載するニーズが高まっている。このような背景のもと、従来は専用機や特注レベルの製品にしか搭載されていなかったセキュリティ機能が、ＰＣ上のソフトウェア，画像処理装置，通信装置などに搭載されるようになった。
【０００６】
特許文献１には、上記のようなセキュリティ機能を実現するセキュリティモジュールが直接組み込まれた機器が記載されている。
【特許文献１】特開平８−２９０６３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記のようなセキュリティ機能を搭載した装置は、輸出規制や販売規制が付き物である。このため、特許文献１のようにセキュリティ機能を実現するセキュリティモジュールを直接組み込んだ機器では、輸出規制や販売規制により仕向け地が限定されてしまうという問題があった。
【０００８】
例えばＡ国に暗号化強度が５６ビットまでのセキュリティモジュールを組み込んだ機器を輸出でき、Ｂ国に暗号化強度が５１２ビットまでのセキュリティモジュールを組み込んだ機器を輸出できる場合、Ｂ国に輸出する暗号化強度が５１２ビットのセキュリティモジュールを組み込んだ機器はＡ国に輸出することができなかった。
【０００９】
即ち、セキュリティ機能を実現するセキュリティモジュールを直接組み込んだ機器では、輸出規制や販売規制を考慮して、セキュリティモジュールを組み込まない機器，暗号化強度などのセキュリティ強度が異なるセキュリティモジュールを組み込んだ機器など、複数種類の機器を準備しなければならなかった。
【００１０】
さらに、セキュリティ機能は日々進歩しており、セキュリティモジュールは年々陳腐化していく。したがって、陳腐化したセキュリティモジュールは高機能のセキュリティモジュールに交換してバージョンアップを図る必要があるが、セキュリティモジュールを直接組み込んだ機器では、セキュリティモジュールの交換が容易でないという問題があった。
【００１１】
本発明は、上記の点に鑑みなされたもので、複数のセキュリティ強度への対応が容易であり、セキュリティ手段の改訂が容易な画像処理装置，送受信データ処理方法並びに送受信データ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
そこで、上記課題を解決するため、本発明は、ネットワークに接続可能な画像処理装置であって、前記ネットワークに送信する送信データの暗号化または前記ネットワークから受信する受信データの復号化を行うセキュリティ手段が外部の記録媒体に格納されており、前記記録媒体に接続可能な接続手段と、送信データの暗号化または受信データの復号化に用いるセキュリティ情報を有するオペレーティングシステムと、前記セキュリティ手段が格納された前記記録媒体が前記接続手段に接続されているときに、前記オペレーティングシステムから前記セキュリティ情報を取得し、該セキュリティ情報を用いて前記セキュリティ手段に送信データの暗号化または受信データの復号化を行わせるセキュリティ制御手段とを有することを特徴とする。
【００１３】
また、本発明は、ネットワークに接続可能な画像処理装置の送受信データ処理方法であって、前記ネットワークに送信する送信データの暗号化または前記ネットワークから受信する受信データの復号化を行うセキュリティ手段が格納されている外部の記録媒体に接続可能な接続手段が、前記記録媒体の接続有無を判定する段階と、前記セキュリティ手段が格納された前記記録媒体が前記接続手段に接続されていると判定したときに、セキュリティ制御手段がオペレーティングシステムから送信データの暗号化または受信データの復号化に用いるセキュリティ情報を取得し、該セキュリティ情報を用いて、前記セキュリティ手段に送信データの暗号化または受信データの復号化を行わせる段階とを有することを特徴とする。
【００１４】
また、本発明は、ネットワークに接続可能な画像処理装置として機能するコンピュータに、前記ネットワークに送信する送信データの暗号化または前記ネットワークから受信する受信データの復号化を行うセキュリティ手段が格納されている外部の記録媒体に接続可能な接続手段が、前記記録媒体の接続有無を判定する手順と、前記セキュリティ手段が格納された前記記録媒体が前記接続手段に接続されていると判定したときに、セキュリティ制御手段がオペレーティングシステムから送信データの暗号化または受信データの復号化に用いるセキュリティ情報を取得し、該セキュリティ情報を用いて、前記セキュリティ手段に送信データの暗号化または受信データの復号化を行わせる手順とを実行させるための送受信データ処理プログラムであることを特徴とする。
【００１５】
本発明では、セキュリティ手段を外部の記憶媒体に格納し、その記録媒体に接続可能な接続手段を有している。本発明によれば、セキュリティ手段が外部の記憶媒体に格納されている為、その記録媒体を交換することで複数のセキュリティ強度への柔軟な対応やセキュリティ手段の改訂が容易である。
【００１６】
なお、外部の記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク（ＭＯ）等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体の他、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリなど、様々なタイプを用いることができる。
【発明の効果】
【００１７】
本発明によれば、セキュリティ手段が外部の記憶媒体に格納されている為、その記録媒体を交換することで複数のセキュリティ強度への柔軟な対応やセキュリティ手段の改訂が容易である。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の実施の形態について図面に基づいて説明する。なお、本実施例では、プリンタ，コピー，ファクシミリおよびスキャナなどの各装置の機能を１つの筐体内に収納した画像処理装置を例に説明するが、如何なる画像処理装置であってもよい。
【００１９】
また、本実施例で説明する画像処理装置は、１つの筐体内に表示部，印刷部および撮像部などを設けると共に、プリンタ，コピー，ファクシミリおよびスキャナにそれぞれ対応する４種類のソフトウェアを設け、そのソフトウェアを切り替えることより、プリンタ，コピー，ファクシミリおよびスキャナとして動作させるものである。このような画像処理装置を以下の説明では融合機と呼ぶ。
【００２０】
図１は、本発明による融合機の一実施例の構成図を示す。融合機１は、プロッタ１１と，スキャナ１２と，ファクシミリ等のハードウェアリソース１３と，ソフトウェア群２０と，融合機起動部５０とを有する。また、ソフトウェア群２０はアプリケーション３０とプラットフォーム４０とを有する。
【００２１】
アプリケーション３０は、プリンタ，コピー，ファクシミリおよびスキャナなどの画像形成処理にかかるユーザサービスにそれぞれ固有の処理を行うものである。アプリケーション３０は、ページ記述言語（ＰＤＬ，ＰＣＬ）およびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ３１と，コピー用のアプリケーションであるコピーアプリ３２と，ファクシミリ用アプリケーションであるファックスアプリ３３と，スキャナ用アプリケーションであるスキャナアプリ３４と，ネットワークファイル用アプリケーションであるネットファイルアプリ３５とを有している。
【００２２】
また、プラットフォーム４０は、アプリケーション３０からの処理要求を解釈してハードウェア資源の獲得要求を発生するコントロールサービスと、１つ以上のハードウェア資源の管理を行ってコントロールサービスからの獲得要求を調停するシステムリソースマネージャ（以下、ＳＲＭという）４３と、オペレーティングシステム（以下、ＯＳという）４１とを有するように構成されている。
【００２３】
コントロールサービスは、システムコントロールサービス（以下、ＳＣＳという）４２，エンジンコントロールサービス（以下、ＥＣＳという）４４，メモリコントロールサービス（以下、ＭＣＳという）４５，オペレーションパネルコントロールサービス（以下、ＯＣＳという）４６，ファックスコントロールサービス（以下、ＦＣＳという）４７，ネットワークコントロールサービス（以下、ＮＣＳという）４８，セキュリティコントロールサービス（以下、ＣＣＳという）４９などのサービスモジュールを有するように構成されている。
【００２４】
なお、プラットフォーム４０は予め定義されている関数によりアプリケーション３０からの処理要求を受信可能とするアプリケーションプログラムインターフェース（以下、ＡＰＩという）を有するように構成されている。ＯＳ４１は、ユニックス（ＵＮＩＸ（登録商標））等であって、プラットフォーム４０およびアプリケーション３０の各ソフトウェアをプロセスとして並列実行する。
【００２５】
ＳＲＭ４３のプロセスは、ＳＣＳ４２と共にシステムの制御およびハードウェア資源の管理を行うものである。例えばＳＲＭ４３のプロセスは、ハードウェア資源を利用する上位層からの要求に従って調停を行い、実行制御する。
【００２６】
具体的に、ＳＲＭ４３は要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判定し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に通知する。また、ＳＲＭ４３は上位層からの要求に対してハードウェア資源を利用するためのスケジューリングを行い、要求内容（例えば、プリンタエンジンによる紙搬送と作像動作，メモリ確保，ファイル生成など）を直接実施している。
【００２７】
ＳＣＳ４２のプロセスは、アプリケーションの管理，操作部の制御，システム画面の表示，ＬＥＤの表示，ハードウェア資源の管理，割り込みアプリケーションの制御などの処理を行う。ＥＣＳ４４のプロセスは、プロッタ１１，スキャナ１２，ハードウェアリソース１３などのエンジンの制御を行う。
【００２８】
ＭＣＳ４５のプロセスは、メモリの取得および解放，画像データの圧縮および伸張などのメモリ制御を行う。ＯＣＳ４６のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。
【００２９】
ＦＣＳ４７のプロセスは、システムコントローラの各アプリケーション層からＰＳＴＮまたはＩＳＤＮ網を利用したファクシミリ送受信，バックアップ用のメモリで管理されている各種ファクシミリデータの登録／引用，ファクシミリ読み取り，ファクシミリ受信印刷などを行うためのＡＰＩを提供する。
【００３０】
ＮＣＳ４８のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
【００３１】
ＣＣＳ４９のプロセスはアプリケーション４０に対してセキュリティサービスを提供する。融合機起動部５０は、融合機１の電源投入時に最初に実行され、プラットフォーム４０やアプリケーション３０を起動するものである。
【００３２】
融合機１は、各アプリケーションで共通的に必要な処理をプラットフォーム４０で一元的に処理することができる。次に、融合機１のハードウェア構成について説明する。
【００３３】
図２は、本発明による融合機の一実施例のハードウェア構成図を示す。融合機１は、コントローラ６０と，オペレーションパネル８０と，ＦＣＵ８１と，エンジン部８２とを含む。
【００３４】
コントローラ６０は、ＣＰＵ６１と，システムメモリ６２と，ノースブリッジ（ＮＢ）６３と，サウスブリッジ（ＳＢ）６４と，ＡＳＩＣ６６と，ローカルメモリ６７と，ＨＤＤ６８と、ネットワークインターフェースカード（ＮＩＣ）６９と，外部記憶媒体用Ｉ／Ｆ７０と，ＵＳＢ用Ｉ／Ｆ７１と，ＩＥＥＥ１３９４用Ｉ／Ｆ７２と，セントロニクス用Ｉ／Ｆ７３と，ＦｌａｓｈＲＯＭ７５と，ＮＶＲＡＭ７６と，ＳＤＲＡＭ７７とを含む。
【００３５】
オペレーションパネル８０は、コントローラ６０のＡＳＩＣ６６に接続されている。また、ＦＣＵ８１およびエンジン部８２は、コントローラ６０のＡＳＩＣ６６にＰＣＩバス８３で接続されている。
【００３６】
コントローラ６０は、ＡＳＩＣ６６にローカルメモリ６７，ＨＤＤ６８，ＦｌａｓｈＲＯＭ７５，ＮＶＲＡＭ７６，ＳＤＲＡＭ７７などが接続されると共に、ＣＰＵ６１とＡＳＩＣ６６とがＣＰＵチップセットのＮＢ６３を介して接続されている。コントローラ６０は、ＮＢ６３を介してＣＰＵ６１とＡＳＩＣ６６とを接続することにより、ＣＰＵ６１のインターフェースが公開されていない場合に対応する。
【００３７】
ＡＳＩＣ６６とＮＢ６３とは、ＡＧＰ（Accelerated Graphics Port ）６５を介して接続されている。このように、図１のアプリケーション３０やプラットフォーム４０を形成する一つ以上のプロセスを実行制御するため、ＡＳＩＣ６６とＮＢ６３とを低速のＰＣＩバスでなくＡＧＰ６５を介して接続することで、パフォーマンスの低下を防いでいる。
【００３８】
ＣＰＵ６１は、融合機１の全体制御を行うものである。ＣＰＵ６１は、ＯＳ４１上にＳＣＳ４２，ＳＲＭ４３，ＥＣＳ４４，ＭＣＳ４５，ＯＣＳ４６，ＦＣＳ４７，ＮＣＳ４８およびＣＣＳ４９をそれぞれプロセスとして起動して実行させると共に、アプリケーション３０を形成するプリンタアプリ３１，コピーアプリ３２，ファックスアプリ３３，スキャナアプリ３４およびネットファイルアプリ３５を起動して実行させる。
【００３９】
ＮＢ６３は、ＣＰＵ６１，システムメモリ６２，ＳＢ６４，ＡＳＩＣ６６，ＮＩＣ６９，外部記憶媒体用Ｉ／Ｆ７０，ＵＳＢ用Ｉ／Ｆ７１，ＩＥＥＥ１３９４用Ｉ／Ｆ７２およびセントロニクス用Ｉ／Ｆ７３を接続するためのブリッジである。
【００４０】
ＳＢ６４，ＮＩＣ６９，外部記憶媒体用Ｉ／Ｆ７０，ＵＳＢ用Ｉ／Ｆ７１，ＩＥＥＥ１３９４用Ｉ／Ｆ７２およびセントロニクス用Ｉ／Ｆ７３は、ＰＣＩバス７４を介してＮＢ６３に接続されている。なお、ＳＢ６４は、ＰＣＩバス７４とＲＯＭや周辺デバイス等とを接続するためのブリッジである。
【００４１】
システムメモリ６２は、融合機１の描画用メモリなどとして用いるメモリである。ローカルメモリ６７はコピー用画像バッファ，符号バッファとして用いるメモリである。
【００４２】
ＡＳＩＣ６６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣである。ＨＤＤ６８は、画像データの蓄積，文書データの蓄積，プログラムの蓄積，フォントデータの蓄積，フォームの蓄積などを行うストレージ（補助記憶装置）の一例である。
【００４３】
ＮＩＣ６９は、融合機１をネットワークに接続するインターフェース機器である。外部記憶媒体用Ｉ／Ｆ７０は外部記憶媒体を脱着可能なものであり、外部記憶媒体の規格に準じたインターフェースである。例えば融合機１と物理的に接続可能なＳＤカード，コンパクトフラッシュ（登録商標），ＲＯＭ−ＤＩＭＭ等が、外部記憶媒体として利用される。
【００４４】
ＵＳＢ用Ｉ／Ｆ７１，ＩＥＥＥ１３９４用Ｉ／Ｆ７２およびセントロニクス用Ｉ／Ｆ７３は、夫々の規格に準じたインターフェースである。ＦｌａｓｈＲＯＭ７５は、外部からプログラムやデータなどを書き込み可能なメモリである。ＮＶＲＡＭ７６およびＳＤＲＡＭ７７は、電源ＯＦＦ状態でも情報を保持するメモリである。
【００４５】
また、オペレーションパネル８０は、オペレータからの入力操作を受け付けると共に、オペレータに向けた表示を行う操作部である。なお、ＦＣＵ８１はメモリを有している。ＦＣＵ８１が有するメモリは、例えば融合機１の電源がＯＦＦのときに受信したファクシミリデータを一時的に格納するために利用される。
【００４６】
図３は、本発明による外部記憶媒体の一例のハードウェア構成図である。外部記憶媒体１００は、外部Ｉ／Ｆ部１０１，データ部１０２を有するように構成される。データ部１０２は、例えばＲＯＭ，ＮＶＲＡＭ，ＦｌａｓｈＲＯＭなどであり、一度だけ書き込み可能なもの，随時書き込み可能なもの，読み込みのみ可能なものなどがある。
【００４７】
データ部１０２は、セキュリティ手段の一例としてのセキュリティモジュールやそのセキュリティモジュールが利用するデータなどが格納されている。データ部１０２は、外部Ｉ／Ｆ部１０１を介して図２の外部記憶媒体用Ｉ／Ｆ７０と接続される。
【００４８】
図４は、融合機と外部記憶媒体とが行う処理の一例について説明するための説明図である。なお、図４の説明図は融合機１及び外部記憶媒体１００を構成するソフトウェアのうち説明に必要のない一部のソフトウェアを省略している。
【００４９】
融合機１のＯＳ４１は、セキュリティ情報１１２，ネットワークプロトコル１１３，ネットワーク通信ドライバ１１４，公衆回線ドライバ１１５を有するように構成される。ネットワーク通信ドライバ１１４は、ネットワーク通信を制御する。公衆回線ドライバ１１５は、公衆回線通信を制御する。セキュリティ情報１１２は、鍵情報やサーバ証明書などである。
【００５０】
ＣＣＳ４９は、外部記憶媒体１００のデータ部１０２に格納されているセキュリティモジュール１１１とやりとりを行う。また、ＣＣＳ４９はＯＳ４１とやりとりを行い、必要に応じてＯＳ４１内のセキュリティ情報１１２を取得する。その他、アプリケーション３０，ＳＣＳ４２，ＭＣＳ４５，ＯＣＳ４６，ＮＣＳ４８は図１と同様である。
【００５１】
図５は、融合機のアドレス空間の一例を表すメモリマップである。図５のメモリマップでは、融合機１のアプリケーション３０，プラットフォーム４０のソフトウェアが利用する領域１２１と、セキュリティモジュール１１１等が利用する外部記憶媒体用領域１２２とが、別々に設定されている。
【００５２】
図６は、ＴＣＰ／ＩＰの場合のソフトウェアの階層構成例である。ＴＣＰとＩＰとがＯＳ４１のネットワークプロトコル１１３に存在し、ＳＳＬがセキュリティモジュール１１１に存在する。なお、前述したプロトコルに限ることなく、その他のプロトコルにも適用可能である。
【００５３】
以下、融合機１が行う送受信データ処理の手順について図面を参照しつつ詳細に説明していく。図７は、融合機が行う送信データ処理の一例のフローチャートである。
【００５４】
ステップＳ１０に進み、アプリケーション３０はオペレータにより送信データや宛先（例えば、アドレスやファックス番号など）が設定される。アプリケーション３０は、送信データの送信準備が完了すると、例えばオペレーションパネル８０に図８のような送信確認画面１３０を表示する。図８は、送信確認画面の一例のイメージ図である。
【００５５】
オペレータは、融合機１に対して送信の指示を行う場合、送信確認画面１３０の「はい」ボタンを押下して、融合機１に送信の指示を行う。一方、オペレータは、融合機１に対して送信の指示を行わない場合、送信確認画面１３０の「いいえ」ボタンを押下して、融合機１に送信の指示を行わない。
【００５６】
ステップＳ１２に進み、アプリケーション３０はオペレータからの送信の指示があったか否かを判定する。送信の指示があったと判定すると（Ｓ１２においてＹＥＳ）、アプリケーション３０はステップＳ１３に進む。なお、送信の指示がなかったと判定すると（Ｓ１２においてＮＯ）、アプリケーション３０は処理を終了する。
【００５７】
ステップＳ１３では、アプリケーション３０が、ＣＣＳ４９に対してセキュリティモジュール１１１が存在するか否かを確認する。セキュリティモジュール１１１が存在すると判定すると（Ｓ１３においてＹＥＳ）、アプリケーション３０はステップＳ１４に進み、例えばオペレーションパネル８０に図９のような暗号化確認画面１４０を表示する。図９は、暗号化確認画面の一例のイメージ図である。
【００５８】
オペレータは、融合機１に対して暗号化の指示を行う場合、暗号化確認画面１４０の「はい」ボタンを押下して、融合機１に暗号化の指示を行う。一方、オペレータは、融合機１に対して暗号化の指示を行わない場合、暗号化確認画面１４０の「いいえ」ボタンを押下して、融合機１に暗号化の指示を行わない。
【００５９】
ステップＳ１５に進み、アプリケーション３０はオペレータからの暗号化の指示があったか否かを判定する。暗号化の指示があったと判定すると（Ｓ１５においてＹＥＳ）、アプリケーション３０はステップＳ１６に進む。ステップＳ１６では、アプリケーション３０が、暗号化を含む送信データ処理を行う。なお、暗号化を含む送信データ処理の詳細は後述する。
【００６０】
一方、セキュリティモジュール１１１が存在しないと判定すると（Ｓ１３においてＮＯ）、アプリケーション３０はステップＳ１７に進む。また、暗号化の指示がなかったと判定すると（Ｓ１５においてＮＯ）、アプリケーション３０はステップＳ１７に進む。ステップＳ１７では、アプリケーション３０が、暗号化を含まない送信データ処理を行う。なお、暗号化を含まない送信データ処理の詳細は後述する。
【００６１】
図７の送信データ処理では、セキュリティモジュール１１１があれば、例えば図６のソフトウェアの階層構成例のように、ＴＣＰとアプリケーションレイヤとの間にＳＳＬを入れて暗号化されたデータ通信を行い、セキュリティモジュール１１１が無ければ、ＳＳＬを入れずに暗号化されない通常のデータ通信を行うことができる。
【００６２】
図１０は、暗号化を含む送信データ処理の一例のフローチャートである。ステップＳ２１では、アプリケーション３０が、規定のセキュリティポートをＮＣＳ４８にオープンさせる。ステップＳ２２に進み、アプリケーション３０はセキュリティモジュール１１１をＣＣＳ４９にオープンさせる。
【００６３】
ステップＳ２３に進み、アプリケーション３０は通信相手（例えば、他の融合機やＰＣなど）とセキュリティ通信に関するネゴシエーションをＮＣＳ４８に行わせる。
【００６４】
ステップＳ２４に進み、アプリケーション３０は送信データがある限り、セキュリティモジュール１１１に対する送信データの供給、言い換えれば外部記憶媒体用領域１２２への送信データの書き込みをＣＣＳ４９に行わせる。
【００６５】
ステップＳ２５に進み、セキュリティモジュール１１１はセキュリティ情報１１２に含まれる鍵情報などを用いて、外部記憶媒体用領域１２２に書き込まれた送信データに暗号化処理などを行ったあと、ネットワークプロトコル１１３に書き込む。このように、ネットワークプロトコル１１３に書き込まれた送信データは、ネットワークへ送信される。
【００６６】
全ての送信データが無くなると、アプリケーション３０はステップＳ２６に進み、セキュリティモジュール１１１をＣＣＳ４９にクローズさせる。ステップＳ２７に進み、アプリケーション３０が、規定のセキュリティポートをＮＣＳ４８にクローズさせて処理を終了する。
【００６７】
図１１は、暗号化を含まない送信データ処理の一例のフローチャートである。ステップＳ３１では、アプリケーション３０が、規定の非セキュリティポートをＮＣＳ４８にオープンさせる。ステップＳ３２に進み、アプリケーション３０は送信データがある限り、ネットワークプロトコル１１３への送信データの書き込みをＮＣＳ４８に行わせる。このようにネットワークプロトコル１１３に書き込まれた送信データは、ネットワークへ送信される。全ての送信データが無くなると、アプリケーション３０はステップＳ３３に進み、規定の非セキュリティポートをＮＣＳ４８にクローズさせて処理を終了する。
【００６８】
図７，図１０及び図１１のような送信データ処理を実現するＡＰＩは、図１２のように構成される。図１２は、送信データ処理を実現するＡＰＩの一例の構成図である。図１２のＡＰＩでは、ｄａｔａ＿ｓｅｎｄ（）という関数１５１を用いて送信データを送信しようとしている。
【００６９】
ｍｏｄｕｌｅ＿ｅｘｉｓｔ（ＳＥＣＵＲＩＴＹ）という関数１５２では、セキュリティモジュール１１１が存在しているか否かを確認し、存在する場合にセキュリティポートをオープンしてｓｅｃｕｒｉｔｙ＿ｄａｔａ＿ｓｅｎｄ（）という関数１５３を呼び出している。
【００７０】
また、セキュリティモジュール１１１が存在しない場合に、ｍｏｄｕｌｅ＿ｅｘｉｓｔ（ＳＥＣＵＲＩＴＹ）という関数１５２では、非セキュリティポートをオープンしてｎｏｒｍａｌ＿ｄａｔａ＿ｓｅｎｄ（）という関数１５４を呼び出している。例えばＨＴＴＰ通信を行う場合、セキュリティポートの番号が４４３であり、非セキュリティポートの番号が８０となる。
【００７１】
読み出されたｓｅｃｕｒｉｔｙ＿ｄａｔａ＿ｓｅｎｄ（）という関数１５３内の関数は、全てＡＰＩである。ｓｅｃｕｒｉｔｙ＿ｏｐｅｎ（）という関数１５５では、セキュリティモジュール１１１をオープンする。ｓｅｃｕｒｉｔｙ＿ｓｅｔｕｐ（）という関数１５６では、データ通信前の内部情報の設定，通信相手とのネゴシエーションを行う。
【００７２】
ｓｅｃｕｒｉｔｙ＿ｃｉｐｈｅｒ（）という関数１５７では、送信データの暗号化を行う。ｓｅｃｕｒｉｔｙ＿ｓｅｎｄ（）という関数１５８では、実際に送信データを送信する。また、ｓｅｃｕｒｉｔｙ＿ｃｌｏｓｅ（）という関数１５９ではセキュリティモジュール１１１をクローズする。
【００７３】
図１２のＡＰＩは、セキュリティモジュール１１１により提供される。したがって、図１２のＡＰＩは、特定のプロトコルやプログラムから独立させることができる。
【００７４】
図１３は、融合機が行う受信データ処理の一例のフローチャートである。ステップＳ４１に進み、システムメモリ６２，ローカルメモリ６７等に常駐しているＮＣＳ４８のプロトコルデーモンは、規定のセキュリティポートをＮＣＳ４８にオープンさせる。
【００７５】
ステップＳ４２に進み、プロトコルデーモンはセキュリティポートへの接続があるか否かを判定する。セキュリティポートへの接続がなけば（Ｓ４２においてＮＯ）、プロトコルデーモンはステップＳ４２の処理を繰り返す。セキュリティポートへの接続があれば（Ｓ４２においてＹＥＳ）、プロトコルデーモンはステップＳ４３進む。
【００７６】
ステップＳ４３では、プロトコルデーモンが、セキュリティモジュール１１１をＣＣＳ４９にオープンさせる。ステップＳ４４に進み、プロトコルデーモンは通信相手（例えば、他の融合機やＰＣなど）とセキュリティ通信に関するネゴシエーションをＮＣＳ４８に行わせる。
【００７７】
ステップＳ４５に進み、プロトコルデーモンは受信データがある限り、セキュリティモジュール１１１に対する受信データの供給、言い換えれば外部記憶媒体用領域１２２への受信データの書き込みをＣＣＳ４９に行わせる。セキュリティモジュール１１１はセキュリティ情報１１２に含まれる鍵情報などを用いて、外部記憶媒体用領域１２２に書き込まれた受信データに復号化処理などを行ったあと、アプリケーション３０に供給する。
【００７８】
ステップＳ４６に進み、アプリケーション３０は供給された受信データに対するデータ処理および付随処理を行う。ステップＳ４７に進み、プロトコルデーモンはセキュリティモジュール１１１をＣＣＳ４９にクローズさせる。ステップＳ４８に進み、プロトコルデーモンが、セッションを切断して１セッション処理を終了する。その後、プロトコルデーモンはステップＳ４２に戻る。
【００７９】
図１３のフローチャートによれば、外部記憶媒体１００に格納されているセキュリティモジュール１１１を利用して復号化を含む受信データ処理を行うことができる。
【００８０】
さらに、図１０の暗号化を含む送信データ処理について図面を参照しつつ詳細に説明していく。まず、融合機１と通信相手との間で行うＳＳＬ通信について説明する。図１４は、融合機１と通信相手との間で行うＳＳＬ通信の一例のシーケンス図である。
【００８１】
ステップＳ５０に進み、クライアントとしての通信相手は、サーバとしての融合機１から「Ｈｅｌｌｏ  Ｒｅｑｕｅｓｔ」を受け取ると、ステップＳ５１に進み、融合機１に「Ｃｌｉｅｎｔ  Ｈｅｌｌｏ」を送信する。また、通信相手は融合機１と接続するとき、ステップＳ５１に進み、融合機１に「Ｃｌｉｅｎｔ  Ｈｅｌｌｏ」を送信する。
【００８２】
ステップＳ５２に進み、融合機１は「Ｓｅｒｖｅｒ  Ｈｅｌｌｏ」を通信相手に送信する。このとき、融合機１と通信相手とのセキュリティ通信に関するプロトコルバーション，セッションＩＤ，暗号化方式，圧縮アルゴリズムなどがネゴシエーションされる。さらに、２つの乱数が生成されて融合機１と通信相手との間で交換される。
【００８３】
ステップＳ５３に進み、融合機１は「Ｃｅｒｔｉｆｉｃａｔｅ」でサーバ証明書を通信相手に送信する。なお、融合機１は、ステップＳ５４に進み、「Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｑｕｅｓｔ」を通信相手に送信し、通信相手に証明書を要求することもある。ステップＳ５５に進み、融合機１は「Ｓｅｒｖｅｒ  Ｈｅｌｌｏ  Ｄｏｎｅ」を通信相手に送信する。
【００８４】
ステップＳ５４にて融合機１が通信相手に「Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｑｕｅｓｔ」を送信した場合、通信相手はステップＳ５６に進み、「Ｃｅｒｔｉｆｉｃａｔｅ」又は「ｎｏ  ｃｅｒｔｉｆｉｃａｔｅ」を融合機１に送信する。
【００８５】
ステップＳ５７に進み、通信相手は「Ｃｌｉｅｎｔ  Ｈｅｌｌｏ」と「Ｓｅｒｖｅｒ  Ｈｅｌｌｏ」とで選択された公開鍵アルゴリズムにより、「ｃｌｉｅｎｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ」を融合機１に送信する。証明書を送信しているとき、通信相手はステップＳ５８に進み、デジタル署名した「Ｃｅｒｔｉｆｉｃａｔｅ  Ｖｅｒｉｆｙ」を融合機１に送信し、融合機１にて証明書の検証を行わせる。
【００８６】
ステップＳ５９，Ｓ６０では、融合機１及び通信相手が互いに「Ｆｉｎｉｓｈｅｄ」を送信し、相互の認証が終了する。そして、ステップＳ６１に進み、融合機１と通信相手とはデータ通信を行う。
【００８７】
次に、融合機１と通信相手との間でＳＳＬ通信を行うとき、融合機１の内部で行われる処理について説明する。図１５及び図１６は、ＳＳＬ通信を行うときに融合機が行う処理の一例のシーケンス図である。
【００８８】
ステップＳ１００では、アプリケーション３０が、ＮＣＳ４８，ＣＣＳ４９を介してセキュリティモジュール１１１のオープン要求と、オープン確認を行っている。ステップＳ１０１では、アプリケーション３０が、通信相手とのセキュリティ通信に関するネゴシエーションをＮＣＳ４８に要求する。
【００８９】
ステップＳ１０２に進み、ＮＣＳ１０２は「Ｈｅｌｌｏ  Ｒｅｑｕｅｓｔ」を通信相手に送信する。ステップＳ１０３では、ＮＣＳ４８が、ＣＣＳ４９を介してセキュリティモジュール１１１にアクセスし、暗号化方式，圧縮アルゴリズムなどのネゴシエーションに必要なデータを取得する。
【００９０】
ステップＳ１０４では、ＮＣＳ４８が、「Ｃｌｉｅｎｔ  Ｈｅｌｌｏ」を受信した後、通信相手に「Ｓｅｒｖｅｒ  Ｈｅｌｌｏ」を送信する。ステップＳ１０５では、ＮＣＳ４８が、ＣＣＳ４９を介してＯＳ４１内のセキュリティ情報１１２にアクセスし、サーバ証明書を取得する。
【００９１】
ステップＳ１０６では、ＮＣＳ４８が、「Ｃｅｒｔｉｆｉｃａｔｅ」でサーバ証明書を通信相手に送信する。図１５のシーケンス図では、ＮＣＳ４８が、ステップＳ１０７に進み、「Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｑｕｅｓｔ」を通信相手に送信し、通信相手に証明書を要求している。ステップＳ１０８に進み、ＮＣＳ４８は「Ｓｅｒｖｅｒ  Ｈｅｌｌｏ  Ｄｏｎｅ」を通信相手に送信する。
【００９２】
ステップＳ１０９では、ＮＣＳ４８が、通信相手からの「Ｃｅｒｔｉｆｉｃａｔｅ」を受信する。ステップＳ１１０では、ＮＣＳ４８が、ＣＣＳ４９を介してセキュリティモジュール１１１にアクセスし、通信相手の証明書を確認する。
【００９３】
ステップＳ１１１では、ＮＣＳ４８が、通信相手からの「ｃｌｉｅｎｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ」を受信する。ステップＳ１１２では、ＮＣＳ４８が、ＣＣＳ４９を介してセキュリティモジュール１１１にアクセスし、通信相手の公開鍵を確認する。
【００９４】
ステップＳ１１３では、ＮＣＳ４８が、通信相手からの「Ｃｅｒｔｉｆｉｃａｔｅ  Ｖｅｒｉｆｙ」を受信する。ステップＳ１１４では、ＮＣＳ４８が、ＣＣＳ４９を介してセキュリティモジュール１１１にアクセスし、通信相手の証明書を確認する。
【００９５】
ステップＳ１１５では、ＮＣＳ４８が、通信相手から送信された「Ｆｉｎｉｓｈｅｄ」を受信する。ステップＳ１１６では、ＮＣＳ４８が、ＣＣＳ４９を介してセキュリティモジュール１１１にアクセスし、通信相手とのネゴシエーションが終了したことを通知する。
【００９６】
ステップＳ１１７では、ＮＣＳ４８が、通信相手に「Ｆｉｎｉｓｈｅｄ」を送信する。また、ステップＳ１１８では、ＮＣＳ４８が、アプリケーション３０に対して通信相手とのネゴシエーションが終了したことを通知する。上記のステップＳ１００〜Ｓ１１８までの処理により、融合機１と通信相手とのネゴシエーションが終了し、データ通信が可能となる。
【００９７】
ステップＳ１１９では、アプリケーション３０が、ＮＣＳ４８に対してデータ送信要求を行う。ＮＣＳ４８は、ＣＣＳ４９を介してセキュリティモジュール１１１にアクセスし、セキュリティ情報１１２に含まれる鍵情報などを用いて送信データを暗号化させる。ＮＣＳ４８は、暗号化された送信データをＣＣＳ４９を介して受信する。
【００９８】
ステップＳ１２０では、ＮＣＳ４８が、暗号化された送信データを通信相手に送信する。ステップＳ１２１に進み、通信相手から「Ａｃｋ」を受信する。ステップＳ１２２に進み、ＮＣＳ４８はデータ送信完了をアプリケーション３０に通知する。
【００９９】
ステップＳ１１９〜Ｓ１２２を繰り返すことにより、暗号化された送信データが融合機１から送信相手に送信される。なお、ステップＳ１１９〜Ｓ１２２の処理は一例であって、通信相手からの「Ａｃｋ」がアプリケーション３０まで返る場合もあるが、用いるプロトコルによってはＴＣＰレベルでのみ行われる場合もある。
【０１００】
ステップＳ１２３では、アプリケーション３０が、ＮＣＳ４８に対してデータ送信終了要求を行う。すると、ＮＣＳ４８はＣＣＳ４９を介してセキュリティモジュール１１１にアクセスし、暗号化の終了を通知する。
【０１０１】
なお、図１６のシーケンス図には図示していないが、ＮＣＳ４８は、通信相手に「Ｄａｔａ  Ｓｅｎｄ  Ｅｎｄ」を送信し、通信相手からの「Ａｃｋ」を受信すると、アプリケーション３０にデータ送信終了要求に対応した「Ｅｎｄ  Ａｃｋ」を送信する。すると、アプリケーション３０は、ＮＣＳ４８，ＣＣＳ４９を介してセキュリティモジュール１１１をクローズする。なお、データ送信終了を通信相手に通知するための「Ｄａｔａ  Ｓｅｎｄ  Ｅｎｄ」はプロトコルに依存しており、存在しない場合もある。
【０１０２】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【０１０３】
【図１】本発明による融合機の一実施例の構成図を示す。
【図２】本発明による融合機の一実施例のハードウェア構成図を示す。
【図３】本発明による外部記憶媒体の一例のハードウェア構成図である。
【図４】融合機と外部記憶媒体とが行う処理の一例について説明するための説明図である。
【図５】融合機のアドレス空間の一例を表すメモリマップである。
【図６】ＴＣＰ／ＩＰの場合のソフトウェアの階層構成例である。
【図７】融合機が行う送信データ処理の一例のフローチャートである。
【図８】送信確認画面の一例のイメージ図である。
【図９】暗号化確認画面の一例のイメージ図である。
【図１０】暗号化を含む送信データ処理の一例のフローチャートである。
【図１１】暗号化を含まない送信データ処理の一例のフローチャートである。
【図１２】送信データ処理を実現するＡＰＩの一例の構成図である。
【図１３】融合機が行う受信データ処理の一例のフローチャートである。
【図１４】融合機と通信相手との間で行うＳＳＬ通信の一例のシーケンス図である。
【図１５】ＳＳＬ通信を行うときに融合機が行う処理の一例のシーケンス図（１／２）である。
【図１６】ＳＳＬ通信を行うときに融合機が行う処理の一例のシーケンス図（２／２）である。
【符号の説明】
【０１０４】
１    融合機
１１    プロッタ
１２    スキャナ
１３    ハードウェアリソース
２０    ソフトウェア群
３０    アプリケーション
３１    プリンタアプリ
３２    コピーアプリ
３３    ファックスアプリ
３４    スキャナアプリ
３５    ネットファイルアプリ
４０    プラットフォーム
４１    オペレーティングシステム（ＯＳ）
４２    システムコントロールサービス（ＳＣＳ）
４３    システムリソースマネージャ（ＳＲＭ）
４４    エンジンコントロールサービス（ＥＣＳ）
４５    メモリコントロールサービス（ＭＣＳ）
４６    オペレーションパネルコントロールサービス（ＯＣＳ）
４７    ファックスコントロールサービス（ＦＣＳ）
４８    ネットワークコントロールサービス（ＮＣＳ）
４９    セキュリティコントロールサービス（ＣＣＳ）
５０    融合機起動部
６０    コントローラ
６１    ＣＰＵ
６２    システムメモリ
６３    ノースブリッジ（ＮＢ）
６４    サウスブリッジ（ＳＢ）
６６    ＡＳＩＣ
６７    ローカルメモリ
６８    ハードディスク装置（ＨＤＤ）
６９    ネットワークインターフェースカード
７０    外部記憶媒体用Ｉ／Ｆ
７１    ＵＳＢ用Ｉ／Ｆ
７２    ＩＥＥＥ１３９４用Ｉ／Ｆ
７３    セントロニクス用Ｉ／Ｆ
７５    ＦｌａｓｈＲＯＭ
７６    ＮＶＲＡＭ
７７    ＳＤＲＡＭ
８０    オペレーションパネル
１００    外部記憶媒体
１０１    外部Ｉ／Ｆ部
１０２    データ部
１１１    セキュリティモジュール
１１２    セキュリティ情報
１１３    ネットワークプロトコル
１１４    ネットワーク通信ドライバ
１１５    公衆回線ドライバ
１３０    送信確認画面
１４０    暗号化確認画面
【図１】
0004704414.tif 000002
【図２】
0004704414.tif 000003
【図３】
0004704414.tif 000004
【図４】
0004704414.tif 000005
【図５】
0004704414.tif 000006
【図６】
0004704414.tif 000007
【図７】
0004704414.tif 000008
【図８】
0004704414.tif 000009
【図９】
0004704414.tif 000010
【図１０】
0004704414.tif 000011
【図１１】
0004704414.tif 000012
【図１２】
0004704414.tif 000013
【図１３】
0004704414.tif 000014
【図１４】
0004704414.tif 000015
【図１５】
0004704414.tif 000016
【図１６】
0004704414.tif 000017