(57)【要約】【課題】  ユーザからの暗号通信を行う旨の要求に応じて、ジョブデータを暗号通信を利用して送信する際の宛先となる情報をユーザに通知し、ユーザは該宛先に印刷データを送信することで暗号通信を行うことが可能となるデータ処理装置を提供することを目的とする。【解決手段】  ホストコンピュータから送信された印刷要求において、暗号化通信が要求されたかを判定し、暗号化通信が要求された場合には暗号化通信に使用される宛先を示す宛先識別子を送信する。暗号化通信用の宛先識別子が指定された印刷データが送られた場合には、暗号化された印刷データの復号化を行う。【選択図】  図６
2005117321.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置から送信されたジョブ処理要求において、データを暗号化する通信方法が要求されたかを判定する判定手段と、
情報処理装置からのジョブ処理要求に応じて、ジョブデータの宛先を識別する識別子を該情報処理装置に送信する送信手段と、
前記判定手段において暗号化通信が要求されたと判定された場合、前記送信手段によって送信した識別子宛てのデータは暗号化通信が行われることを記憶する記憶手段と、
前記記憶手段において暗号化通信に使用されると記憶されている識別子が指定されてジョブデータが送られた場合、暗号化されたジョブデータの復号化をする復号化手段と、
を有することを特徴とするデータ処理装置。
【請求項２】
情報処置装置から送信されたジョブ処理要求において、データを暗号化する通信方法が要求されたかを判定する判定手段と、
前記判定手段において暗号化通信が要求されたと判定された場合、ジョブデータの宛先のうち、暗号化通信用の宛先を識別する識別子を情報処理装置に送信する送信手段と、
前記暗号化通信用の宛先を識別する識別子が指定されてジョブデータが送られた場合、暗号化されたジョブデータの復号化をする復号化手段と、
を有することを特徴とするデータ処理装置。
【請求項３】
暗号化通信が行われる宛先を識別する識別子に情報処理装置からの接続が行われると、暗号化されたジョブデータを復号化するための鍵情報を決定するための処理を行う処理手段をさらに有し、
前記処理手段によって決定した鍵情報を用いて暗号化されたジョブデータの復号化が行われることを特徴とする請求項１又は２記載のデータ処理装置。
【請求項４】
暗号化通信が行われる宛先を識別する識別子に情報処理装置からの接続が行われた際、前記処理手段によって処理が行われない場合には、ジョブデータの受信を行わないことを特徴とする請求項３記載のデータ処理装置。
【請求項５】
暗号化通信が行われる宛先を識別する識別子が指定されたジョブデータが送られた場合、暗号化通信が行われているかを判定する第２の判定手段をさらに有し、
前記第２の判定手段において暗号化通信が行われていると判定された場合にのみジョブ処理が実行されることを特徴とする請求項１又は２記載のデータ処理装置。
【請求項６】
前記第２の判定手段において暗号化通信が行われていないと判定された場合にはジョブ処理が実行されないことを特徴とする請求項５記載のデータ処理装置。
【請求項７】
情報処理装置から送信されたジョブ処理要求において、データを暗号化する通信方法が要求されたかを判定する判定ステップと、
情報処理装置からのジョブ処理要求に応じて、印刷データの宛先を識別する識別子を該情報処理装置に送信する送信ステップと、
前記判定ステップにおいて暗号化通信が要求されたと判定された場合、前記送信ステップによって送信した識別子宛てのデータは暗号化通信が行われることを記憶する記憶ステップと、
前記記憶ステップにおいて暗号化通信に使用されると記憶されている識別子が指定されてジョブデータが送られた場合、暗号化されたジョブデータの復号化をする復号化ステップと、
を有することを特徴とするデータ処理方法。
【請求項８】
情報処理装置から送信されたジョブ処理要求において、データを暗号化する通信方法が要求されたかを判定する判定ステップと、
前記判定ステップにおいて暗号化通信が要求されたと判定された場合、ジョブデータの宛先のうち、暗号化通信用の宛先を識別する識別子を情報処理装置に送信する送信ステップと、
前記暗号化通信用の宛先を識別する識別子が指定されてジョブデータが送られた場合、暗号化されたジョブデータの復号化をする復号化ステップと、
を有することを特徴とするデータ処理方法。
【請求項９】
情報処理装置から送信されたジョブ処理要求において、データを暗号化する通信方法が要求されたかを判定する判定機能と、
情報処理装置からのジョブ処理要求に応じて、印刷データの宛先を識別する識別子を該情報処理装置に送信する送信機能と、
前記判定機能において暗号化通信が要求されたと判定された場合、前記送信機能によって送信した識別子宛てのデータは暗号化通信が行われることを記憶する記憶機能と、
前記記憶機能において暗号化通信に使用されると記憶されている識別子が指定されてジョブデータが送られた場合、暗号化されたジョブデータの復号化をする復号化機能と、
をコンピュータに実現させる為のプログラム。
【請求項１０】
情報処置装置から送信されたジョブ処理要求において、データを暗号化する通信方法が要求されたかを判定する判定機能と、
前記判定機能において暗号化通信が要求されたと判定された場合、ジョブデータの宛先のうち、暗号化通信用の宛先を識別する識別子を情報処理装置に送信する送信機能と、
前記暗号化通信用の宛先を識別する識別子が指定されてジョブデータが送られた場合、暗号化された印刷データの復号化をする復号化機能と、
をコンピュータに実現させる為のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して送られるジョブデータの盗聴、改竄、成りすまし防止を考慮したデータ処理装置、データ処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来のネットワーク接続された印刷装置に対して他のネットワーク上の機器から印刷データを印刷する場合は、既知の特定印刷ポートにデータを送信することにより行なっている。例えば、ＬＰＤのポート番号は５１５番が一般的に使用されており、同様にＨＴＴＰでは８０番が一般的に使用されている。また、ユーザがセキュリティ上、印刷データを暗号化して送信したい場合も同様に、既知の専用の印刷ポートにあらかじめ決められた暗号方式でデータを送信する。暗号方式としては一般的にＳＳＬ／ＴＬＳなどが使用されている。
【０００３】
また、ネットワーク上のプリンタが複数の印刷用ポートを使用し、コンピュータ毎に印刷用ポートを割り当てるという方法を用いた技術がある。図１２はこの技術におけるホストコンピュータとプリンタのデータのやり取りを示している。以下図１２について説明する。
【０００４】
まずＳ１２０１において、プリンタはネットワーク上の何れかのコンピュータ（以下ホストコンピュータＡとする）から送られた印刷要求（ｃｒｅａｔｅ  ｊｏｂ）を受信する。次にＳ１２０２に進み、プリンタはホストコンピュータＡから受け取ったｃｒｅａｔｅ  ｊｏｂに記述される印刷ジョブの処理に関する指示などに不備がなければ、印刷データを受信する為の印刷用のポートを利用可能状態（ＯＰＥＮ）にし、ホストコンピュータＡが印刷データを送る際の宛先となるＵＲＩ（以下ＵＲＩ１とする）をホストコンピュータＡに送信する。このように、ポートの指定をＵＲＩによって行っている。次にＳ１２０３で、ネットワーク上の別のコンピュータ（以下ホストコンピュータＢとする）からｃｒｅａｔｅ  ｊｏｂを受け取ると、同様にしてホストコンピュータＢにもＵＲＩを送信するが、このとき送信されるＵＲＩはホストコンピュータＡに送信されたＵＲＩ１とは異なるＵＲＩ２である（Ｓ１２０４）。
【０００５】
このようにホストコンピュータごとに印刷データ送信先のＵＲＩを変え、それに対応して使用するポートもホストコンピュータにより異なる。
【０００６】
Ｓ１２０５において、ホストコンピュータＡは印刷データを送信するために、Ｓ１２０２で与えられたＵＲＩ１によって示されたポートとの接続を確立し、Ｓ１２０６に進み、プリンタに印刷データを送信し印刷が実行される。
【０００７】
この技術を用いることで、ユーザは予め印刷装置のＩＰアドレスや印刷用のポート番号を知っておく必要がなくなる。
【０００８】
さらに、印刷装置がコンピュータから受信したデータの種類に応じて、使用するポート番号をデータを送信したコンピュータに通知し、該ポートにおいてデータを受け取り、処理を行なうといった技術がある。（例えば、特許文献１参照）
【特許文献１】特開２００２−３３３９５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ユーザがセキュリティ上印刷データを暗号化して送信したい場合、従来の印刷装置では、ユーザは予め印刷装置がどのような通信方法を備えているのか、どのような通信ポートが使用されているのかを把握しておかなくてはならない場合が多く、使い勝手が悪かった。
【００１０】
また、上記従来例のようにコンピュータから受信したデータの種類に応じて、使用するポート番号をコンピュータに通知する技術においては、ユーザが予め使用ポートを把握しておく必要はなくなったが、ユーザが暗号通信を行う旨を印刷装置に指示する方法等は規定されていない。よってセキュリティを考慮した暗号通信などによる安全な印刷ができなかった。
【００１１】
本発明はこのような問題点に鑑みてなされたものであり、ユーザからの暗号通信を行う旨の要求に応じて、ジョブデータを暗号通信を利用して送信する際の宛先となる情報をユーザに通知し、ユーザは該宛先にジョブデータを送信することで暗号通信を行うことが可能となるデータ処理装置を提供することを目的とする。
【００１２】
さらに暗号通信用の宛先にジョブデータが送られた際には、確実に暗号通信が行われるようにし、よりセキュリティ効果を高めた安全なジョブの処理を可能とするデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記、課題を解決するために本発明におけるデータ処理装置は、情報処理装置から送信されたジョブ処理要求において、データを暗号化する通信方法が要求されたかを判定する判定手段と、情報処理装置からのジョブ処理要求に応じて、ジョブデータの宛先を識別する識別子を該情報処理装置に送信する送信手段と、前記判定手段において暗号化通信が要求されたと判定された場合、前記送信手段によって送信した識別子宛てのデータは暗号化通信が行われることを記憶する記憶手段と、前記記憶手段において暗号化通信に使用されると記憶されている識別子が指定されてジョブデータが送られた場合、暗号化されたジョブデータの復号化をする復号化手段と、を有することを特徴とする。
【００１４】
また、上記課題を解決するために本発明におけるデータ処理装置は、情報処理装置から送信されたジョブ処理要求において、データを暗号化する通信方法が要求されたかを判定する判定手段と、情報処理装置からのジョブ処理要求に応じて、ジョブデータの宛先を識別する識別子を該情報処理装置に送信する送信手段と、前記判定手段において暗号化通信が要求されたと判定された場合、前記送信手段によって送信した識別子宛てのデータは暗号化通信が行われることを記憶する記憶手段と、前記記憶手段において暗号化通信に使用されると記憶されている識別子が指定されてジョブデータが送られた場合、暗号化されたジョブデータの復号化をする復号化手段と、を有することを特徴とする。
【発明の効果】
【００１５】
以上本発明によれば、ユーザがデータの盗聴、改竄を防止したい場合や、通信相手の成りすましを防止したい場合に、データを送信するクライアント側からその旨を印刷装置に指示できるようになり、指示に応じてセキュリティを考慮した暗号化通信用のポートが割り当てられる為、その際に使用される通信ポートを予め知っておく必要はなくなりユーザの利便性が向上する。また、暗号化通信用のポートに正常に暗号化通信が行われているか判定することで、暗号化通信用ポートに送られたジョブデータに対して確実に暗号化通信が行われ、よりセキュリティ効果を高めた安全なジョブ処理が可能となる。同時に、暗号化通信用のポートに通常の通信方法で送られたジョブデータを処理しないため、不要な処理が軽減される効果がある。さらにこのようなジョブデータの受信を行わないことで、ネットワーク上の負荷を軽減することができる。
【００１６】
さらに、ユーザから暗号化通信が要求された場合に割り当てたポートを暗号化通信用のポートとして登録することで、暗号化通信用のポート番号がその都度変わるため、ユーザに暗号化通信用のポート番号を予め知られることがなくなり、よりセキュリティ効果があがる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態について図面を参照して詳細に説明する。この実施形態ではデータ処理装置の一例として印刷装置を例に説明するが、本発明はこれに限定されるものではない。複写機、ＦＡＸ、スキャナ、複合機、又はネットワークボードなどのデータ処理装置においても適用可能である。また、それらデータ処理装置の種類に応じて、やり取りされるジョブデータの種類についても同様にコピージョブ、ＦＡＸジョブ、スキャンジョブ等といった印刷ジョブ以外のデータであってもよい。
【００１８】
図１は、本発明の一実施形態における印刷装置のハードウェア構成を示すブロック図である。ＣＰＵ１０１は、印刷装置のソフトウェアプログラムを実行し、装置全体の制御を行う。ＲＯＭ１０２は、リードオンリーメモリであり、装置のブートプログラムや固定パラメータ等が格納されている。ＲＡＭ１０３は、ランダムアクセスメモリであり、ＣＰＵ１０１が装置を制御する際に、一時的なデータの格納などに使用する。ＨＤＤ１０８は、ハードディスクドライブであり、印刷データの格納など、様々なデータの格納に使用する。プリンタＩ／Ｆ制御部１０４は、プリンタ１１０を制御する装置である。ＮＶＲＡＭ１０５は、不揮発性のメモリであり印刷装置の各種設定値を保存するためのものである。パネル制御部１０６は、オペレーションパネル１０９を制御し、各種情報の表示、使用者からの指示入力を行なう。ネットワークＩ／Ｆ制御部１０７は、ＬＡＮ１１１とのデータの送受信を制御する。バス１０８は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０８、プリンタＩ／Ｆ制御部１０４、ＮＶＲＡＭ１０５、パネル制御部１０６、ネットワークＩ／Ｆ制御部１０７が接続され、ＣＰＵ１０１からの制御信号や各装置間のデータ信号が送受信されるシステムバスである。
【００１９】
図２は、本発明の実施形態における印刷装置１００のソフトウェア構成を示すブロック図である。プリンタ制御部２０１は、プリンタＩ／Ｆ制御部１０４を制御するモジュールであり、プリンタ１１０に画像データを送信や排紙位置の制御などの操作を行う。画像印刷制御部２０２は、受信した印刷データをプリンタ１１０で印刷可能なデータに変換するほかに印刷部数や両面印刷の制御など印刷に関する様々な制御を行う。ネットワークドライバ２０７は、ネットワークＩ／Ｆ制御部１０７を制御し、ネットワークとのデータ送受信の制御を行う。ＴＣＰ／ＩＰプロトコル制御部２０６は、ＴＣＰ／ＩＰプロトコルを制御するモジュールを備え、ネットワークドライバ２０７を使用してＴＣＰ／ＩＰプロトコルに則ったデータ送受信制御を行う。ＨＴＴＰサーバ制御部は、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）と称されるプロトコルの全般を制御するモジュールであり、クライアントから受信したＨＴＴＰリクエストパケットを解析し適切な処理を行い、データをＳＯＡＰ制御部２０４や画像印刷制御部２０２等の上位アプリケーションにわたすと共に、上位アプリケーションの指示によりＨＴＴＰレスポンスパケットをクライアントに返送する制御を行う。ＳＯＡＰ制御部２０４はＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）と呼ばれるプロトコルを制御するモジュールであり、クライアントから受信したＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のデータをＸＭＬパーサ２０３を使用して解析し、画像印刷制御部２０４の適切なモジュールを呼び出したり、クライアントに返すべきデータをＸＭＬデータに変換し、ＨＴＴＰサーバ制御部２０５を介してクライアントに返信する制御を行う。ＸＭＬパーサ２０３はＸＭＬ形式データを入力とし解析結果を出力するモジュールである。
【００２０】
図３は、本実施形態におけるＨＴＴＰ上のＳＯＡＰを用いてクライアントから印刷装置に送信されるＣｒｅａｔｅＪｏｂと称されるパケットデータの一例である。このデータはＸＭＬ形式で記述されている。ＣｒｅａｔｅＪｏｂパケットは、印刷装置に対し、ジョブ（印刷）の開始を指示するコマンドであり、要求元のユーザ名（ｒｅｑｕｅｓｔｉｎｇ−ｕｓｅｒ−ｎａｍｅタグ）やジョブの処理に関する指示（ｊｏｂ−ｉｎｓｔｒｕｃｔｉｏｎタグ）等の情報が記述されている。図３においてＡに図示したｓｅｃｕｒｅ−ｐｏｒｔタグは、印刷データの通信がどのような方法で行なわれるかを指示するタグであり、図３の例では印刷装置に対しＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）を用いた通信を指示することを意味する。このタグを読み取ることにより印刷装置は通信方法に準じた印刷用ポートを生成する。
【００２１】
図４は、図３におけるＡの部分の他の一例である。図４の例は、印刷データに対し何も処理をせず通常の通信方法により転送されることを指示するものである。
【００２２】
図５は、図３のＣｒｅａｔｅＪｏｂパケットに対する応答パケットデータの一例である。本データも図３と同様にＸＭＬ形式で記述され、本実施形態においてはＨＴＴＰ上のＳＯＡＰを用いて送受信される。ＣｒｅａｔｅＪｏｂ応答パケットには、ＣｒｅａｔｅＪｏｂコマンド対する結果コード（ｒｅｓｕｌｔ−ｃｏｄｅタグ）や生成されたジョブの識別子（ｊｏｂ−ｉｄタグ）、印刷データの宛先を識別する宛先識別子となる印刷用ポートのＵＲＩ（ｄａｔａ−ｓｉｎｋ−ｕｒｉタグ）等の情報が含まれている。図５のＢで示した部分が印刷用ポートのＵＲＩを示す部分であり、図５の例では「ｈｔｔｐｓ：／／１２３．４５６．７．８：１８０００／ｊｏｂ００１」というＵＲＩが示されている。これは図３のＣｒｅａｔｅＪｏｂコマンドのｓｅｃｕｒｅ−ｐｏｒｔタグにおいて「ＳＳＬ」が指示されているため、印刷装置はＳＳＬ用の印刷用ポートを生成し、そのＵＲＩをｄａｔａ−ｓｉｎｋ−ｕｒｉに格納していることを示している。この場合、ＵＲＩのスキーマ部分が「ｈｔｔｐｓ」となっているため、ＨＴＴＰのＳＳＬ／ＴＬＳ用のポート番号１８０００番が使用される。従って、クライアントは印刷装置のＴＣＰポート１８０００番に対して印刷データを送信することになる。
【００２３】
図６は、本実施形態の印刷装置が、ｃｒｅａｔｅｊｏｂを受信した時の動作（印刷要求受信動作）を示すフローチャートである。
【００２４】
以下、図６を用いて本実施形態の印刷装置の印刷開始要求動作について説明する。
【００２５】
まず、Ｓ６０１において印刷装置がｃｒｅａｔｅｊｏｂを受信すると、Ｓ６０２に進み、受信したｃｒｅａｔｅｊｏｂに含まれるｓｅｃｕｒｅｐｏｒｔのタグを解析する。Ｓ６０３において、解析の結果ＳＳＬによる暗号化通信を指定するタグが発見された場合はＳ６０４に進み、いずれかのＳＳＬ暗号化通信用のポートを割り当ててｏｐｅｎ（利用可能状態）とし、Ｓ６０３においてＳＳＬによる暗号化通信を指定するタグが発見されなかった場合はＳ６０５に進み、何れかの通常のデータ通信用のポートを割り当ててｏｐｅｎ（利用可能状態）とする。また、本実施形態の印刷装置ではＲＡＭ１０３において、各ポートが現在使用中（何れかのホストコンピュータに既に割り当てられているか）であるかどうか、また各ポートがＳＳＬ暗号化通信用のポートであるかどうかを図７（Ａ）に示すリストの形式で管理している。Ｓ６０４又はＳ６０５においては、リストを参照し現在使用中でないポートを新規に割り当てている。Ｓ６０６ではＳ６０４又はＳ６０５において割り当てられたポートの情報を図７（Ａ）のリストを更新し管理する。次にＳ６０７に進みＳ６０４又はＳ６０５において割り当てられてｏｐｅｎの状態になっている印刷用ポートを示すＵＲＩを＜ｄａｔａ−ｓｉｎｋ−ｕｒｉ＞タグとして生成し、Ｓ６０８で、この＜ｄａｔａ−ｓｉｎｋ−ｕｒｉ＞タグを含むパケットをｃｒｅａｔｅｊｏｂに対するｒｅｓｐｏｎｓｅとして、ホストコンピュータに送信する。
【００２６】
図７（Ａ）は、本実施形態の印刷装置においてＲＡＭ１０３に配置され、各ポートの状態を管理しているリストの例を示している。
【００２７】
ここでいう各ポートの状態を管理するとは、そのポートがＳＳＬ通信用に使用されるポートであるか通常の通信用に使用されるポートであるか、そしてそのポートが現在使用中（何れかのホストコンピュータに割り当てられている）であるかどうかを管理することである。
【００２８】
図７（Ａ）の７０１では各ポートの番号を管理している。この欄に示される１０００はＴＣＰポート１０００番を表している。
【００２９】
７０２では、各ポートがＳＳＬ通信用のポートであるか通常の通信用のポートであるかを示している。図７（Ａ）のリストの例では、各ポートがＳＳＬ通信用のポートであるか通常の通信用のポートであるかが予め決まっている（１０００番から１００２番は通常の通信用のポート、１００３番から１００５番はＳＳＬ通信用のポートであると決まっている）場合である。この欄が「通常」となっているポートは通常通信用のポート、「ＳＳＬ」となっているポートはＳＳＬ通信用のポートであることを表している。
【００３０】
７０３では、各ポートが現在使用中であるか否かを示している。この欄が「使用中」となっているポートは現在使用中であり、何れかのホストコンピュータに割り当てられている状態であることを示している。また、この欄に何もかかれていないポートは現在使用中でないことを示している。
【００３１】
つまり、図７（Ａ）の場合、「ポート１０００番は通常の通信用のポートであり、現在使用中である」ことがわかる。
【００３２】
印刷装置はこのリストを参照し、通常の通信を要求したホストコンピュータには通常通信用の空きポートを割り当て、ＳＳＬ通信を要求したホストコンピュータにはＳＳＬ通信用の空きポートを割り当てる。
【００３３】
また、このリストは、各ポートがＳＳＬ通信用に使用されるポートであるか通常の通信用に使用されるポートであるか、そしてそのポートが現在使用中（何れかのホストコンピュータに割り当てられている）であるかどうかを管理するものであればどのような形式のものでもよく、例えば現在使用中のポートのみをリストに管理するようにし、印刷装置が新しくポートを割り当てる際にはリストにないポートから任意にポートを割り当てるようにすることもできる。
【００３４】
さらに、図７（Ａ）では各ポートが通常通信用のポートであるかＳＳＬ通信用のポートであるかが予め決められている場合を示したが、通常通信用ポートであるか、ＳＳＬ通信用のポートであるかが予め決まっておらず、ホストコンピュータからＳＳＬ通信が要求された場合には、現在使用中でない何れかのポートを割り当てて、リストに管理する際にＳＳＬ通信に使用されるということを記憶しておくようにすることもできる。この場合に使用されるリストの例を図７（Ｂ）に示す。
【００３５】
７０４においては７０１同様、ポートの番号が管理されている。この欄に示される１０００はＴＣＰポート１０００番を表している。
【００３６】
７０５の欄には、各ポートが現在使用中であるか否かを示している。この欄が「使用中」となっているポートは現在使用中であり、何れかのホストコンピュータに割り当てられている状態であることを示している。また、この欄に何もかかれていないポートは現在使用中でないことを示している。
【００３７】
７０６では、各ポートがＳＳＬ通信用のポートであるか通常の通信用のポートであるかを示している。この欄が「通常」となっているポートは通常通信用のポート、「ＳＳＬ」となっているポートはＳＳＬ通信用のポートであることを表している。図７（Ｂ）に示すリストの例では、各ポートがＳＳＬ通信用のポートであるか通常通信用のポートであるかが予め決まっていない為、ホストコンピュータからＳＳＬ通信の要求があった場合には現在使用中でない何れかのポートをホストコンピュータに割り当てた後、７０６の欄に「ＳＳＬ」と書き込むことにより、当該ポートがＳＳＬ通信に用いられるポートであることを管理する。同様に、ホストコンピュータから通常通信の要求があった場合には、７０６の欄に「通常」と書き込むことによって、該ポートが通常通信に用いられるポートであることを管理する。
【００３８】
図７（Ｂ）に示すリストが作成される実施形態における、印刷要求受信動作の処理の流れについて、図７を用いて説明する。
【００３９】
Ｓ６０３においてホストコンピュータからＳＳＬ通信を行いたいという要求があると、Ｓ６０４に進み、ここで行われる処理としてまず図８（Ｂ）のリストを参照し、７０５の欄が現在「使用中」となっていないポートを探し、「使用中」と書き込む。と同時に７０６の欄に「ＳＳＬ」と書き込む。Ｓ６０３において通常通信が要求されると、Ｓ６０５に進み、ここでは現在使用中でないポートに「使用中」と書き込み、７０６の欄には「通常」と書き込む。Ｓ６０６で、Ｓ６０４、Ｓ６０５の処理に応じてリストの更新が行われると、以降の処理は前述の処理（図７（Ａ）のリストが利用される場合）と同様である。
【００４０】
以上のようにしてポートの管理を行うことで、各ポートが予めＳＳＬ通信用、通常通信用と決められていない場合でも本発明を実施することができる。
【００４１】
図８は、本実施形態の印刷装置がホストコンピュータから印刷データを受信する場合の動作（データ受信動作）を示すフローチャートである。また、この印刷データの受信動作は、図６に示した印刷要求受信動作に連続して行われるとは限らない。印刷装置が印刷データの受信動作を行う前に、印刷要求受信動作が複数回行われることもありうる。
【００４２】
以下、図８を用いて、印刷データの受信動作を説明する。
【００４３】
まず、Ｓ８０１では、ホストコンピュータが印刷データを送信するために印刷装置とＴＣＰ接続を行うのを待っている状態である。Ｃｒｅａｔｅ  ｊｏｂに対するｒｅｓｐｏｎｓｅを印刷装置から受け取ったホストコンピュータは、該ｒｅｓｐｏｎｓｅに含まれるｄａｔａ  ｓｉｎｋ  ＵＲＩを解析し、印刷データを送信するために印刷装置とコネクション（接続）を張る為の印刷装置のＩＰアドレス、ポート番号を得る。例えば、図５のｒｅｓｐｏｎｓｅを印刷装置から受け取ったホストコンピュータはｄａｔａ  ｓｉｎｋ  ＵＲＩの「ｈｔｔｐｓ：／／１２３．４５６．７．８：１８０００／ｊｏｂ００１」を解析し、ＩＰアドレス「１２３．４５６．７．８」の印刷装置の「１８０００番」ポートにコネクションを張り、該ＵＲＩ宛てにｊｏｂ００１というｊｏｂＩＤで識別される印刷データを送信すればよいことを知る。Ｓ８０２においてホストコンピュータから、印刷データを送信するためのＴＣＰ接続があるとＳ８０４に進む。接続がない場合はＳ８０３でタイムアウトかどうかを判断し（本実施形態では印刷装置がｃｒｅａｔｅ  ｊｏｂを受け取った後、ｒｅｓｐｏｎｓｅとしてＵＲＩをホストコンピュータに返してからの時間が、所定の時間を経過したかどうかを判断する）、タイムアウトである場合にはポートを利用不可能状態（ｃｌｏｓｅ）とし、その旨図７に示したリストを更新する。タイムアウトでない場合にはそのままホストコンピュータからの接続待ち状態となる。Ｓ８０２でホストコンピュータから印刷データを送信するためのＴＣＰ接続があると、Ｓ８０４に進み、接続が行われたポート番号を調べ、Ｓ８０５に進み、図７に示したリストを参照し、該ポートが通常の通信用のポートであるかＳＳＬ通信用のポートであるかを判断する。Ｓ８０６においてＳＳＬ通信用のポートであると判定された場合にはＳ８０７に進み、ＳＳＬ暗号化通信路確立の為ネゴシエーションを開始する。通常の通信のポートであると判定された場合には、Ｓ８１２に進み通常の通信方法で印刷データの受信を開始する。ホストコンピュータからの印刷データの送信には、ＨＴＴＰのＰＯＳＴメソッドが用いられる。図９にＰＯＳＴメソッドを用いてホストコンピュータから送信される印刷データのパケットデータの例を示す。このデータの送信の際の宛先となるのがｄａｔａ  ｓｉｎｋ  ＵＲＩである。図９に示すパケットデータを受信した印刷装置はＨＴＴＰヘッダのＵＲＩを検査する。図９の例では「／ｊｏｂ００１」である。このｊｏｂＩＤから、ｊｏｂＩＤが００１で表される印刷データが「ｈｔｔｐｓ：／／１２３．４５６．７．８：１８０００／ｊｏｂ００１」に送られたことを印刷装置は認識することができる。
【００４４】
ＳＳＬ暗号化通信路確立の為のネゴシエーションについては図９を用いて詳細に説明するが、このネゴシエーションの際に、ＳＳＬ通信用のポートに実際にＳＳＬ通信が行われているか否かを判断する。その結果、Ｓ８０８においてＳＳＬ通信が行われていたと判定されなかった場合にはＳ８１６に進み直ちにコネクションを切断し、印刷データの受信を行わないようにする。ＳＳＬ通信が行われていると判定された場合にはＳ８０９に進みネゴシエーションが成立し、ＳＳＬ暗号化通信路が確立されると、Ｓ８１０で印刷データの受信を行う。
【００４５】
このようにＳＳＬ通信用のポートに実際にＳＳＬ通信が行われるか判定することで、ＳＳＬ通信用のポートに通常の通信方法でデータが送られることを回避することができるため次のようないくつかの問題を解決することができる。例えば、通常の通信方法で印刷データを送信したい場合に誤ってＳＳＬ通信用のポート宛てにコネクションを張ってしまった場合などに、ＳＳＬ通信用のポート宛にコネクションが張られることが確認された後自動的にＳＳＬ通信を行ってしまったのでは、ユーザの意図に反してネットワークに余計な負荷をかけてしまうことになる。さらに、ＳＳＬ通信用のポート宛てに送られたＳＳＬ通信で暗号化されていない印刷データを、印刷装置が自動的に復号化を行ってしまっては、印刷装置にエラーが生じたり、出力が行われれば意味のない無駄な排紙によるコストが生じることになる。このような不都合を回避するため、ＳＳＬ暗号化通信路確立の為のネゴシエーションの際には実際にＳＳＬ通信が行われているかの判定が行われ、判定結果に応じた処理がされる。
【００４６】
Ｓ８１６においてコネクションが切断された後は、Ｓ８０１に戻り正常なコネクションを再び待つことになる。Ｓ８１０においては、前述したＰＯＳＴメソッドを用いてＳＳＬ通信によってホストコンピュータから送信された印刷データを受信する。その際には、ネゴシエーションの際に決定した鍵情報を用いて暗号化された印刷データの復号化が行われる（Ｓ８１１）。その後Ｓ８１３に進み、正常に印刷データが受信された旨を示すｒｅｓｐｏｎｓｅをホストコンピュータからの印刷データの送信と同様、ＨＴＴＰのＰＯＳＴメソッドを用いてホストコンピュータに送信し、Ｓ８１４に進み現在使用されたポートをクローズ（利用不可能状態つまりどのホストコンピュータにも割り当てられていない状態）し、Ｓ８１５ではその旨図７のリストを更新し、印刷データ受信動作を終了する。
【００４７】
Ｓ８０６においてＳＳＬ通信用のポートではないと判定された場合の処理の流れを説明する。
【００４８】
Ｓ８０６においてＳＳＬ通信用のポートでないと判定された場合、つまり通常の通信ポートが利用されている場合にはＳ８１２に進み、印刷データの受信を開始する。その後Ｓ８１３に進み、正常に印刷データが受信された旨を示すｒｅｓｐｏｎｓｅをホストコンピュータに送信する。その後の動作はＳＳＬ通信時と同様であり、使用されたポートをクローズし、その旨リストを更新し、印刷データ受信動作を終了する。
【００４９】
このように、ホストコンピュータが印刷データを送信するために接続をおこなったポートがＳＳＬ通信用のポートであった場合に応じて、実際に該ポートにＳＳＬ通信が行われるかを判定することで、ＳＳＬ通信用のポートにおいて確実にＳＳＬ暗号化通信が行われるようになり、さらには上述した効果が得られることになる。
【００５０】
図１０は、本実施形態の印刷装置においてＳＳＬ通信用のポートにホストコンピュータから接続が行われた際に実行される、ホストコンピュータ、印刷装置間のＳＳＬ暗号化通信路を確立する為のネゴシエーションの処理の流れを模式的に示した図である。
【００５１】
以下、図１０を用いて、ホストコンピュータ、印刷装置間のＳＳＬ暗号化通信路確立の為のネゴシエーション処理の流れを説明する。
【００５２】
ホストコンピュータから、ＳＳＬ通信用のポートへ接続が行われると、まず、印刷装置は暗号化仕様を決定する為のネゴシエーションの開始を促す為にＨｅｌｌｏ  Ｒｅｑｕｅｓｔをホストコンピュータに送信する（Ｓ１００１）。これに対して、ホストコンピュータは通信の開始を印刷装置に通知するＣｌｉｅｎｔ  Ｈｅｌｌｏメッセージを送信する、このときＣｌｉｅｎｔ  Ｈｅｌｌｏメッセージの中には、ホストコンピュータが利用可能な、暗号化と圧縮のアルゴリズムの一覧が含まれている（Ｓ１００２）。Ｃｌｉｅｎｔ  Ｈｅｌｌｏメッセージを受け取った印刷装置は、そこでホストコンピュータがＳＳＬ通信を行う意思があることを確認する。つまり、印刷装置からのＨｅｌｌｏ  Ｒｅｑｕｅｓｔに対してホストコンピュータからの応答がない場合や、正常なＣｌｉｅｎｔ  Ｈｅｌｌｏメッセージが送られなかった場合などは、ホストコンピュータがＳＳＬ通信を行う意思がないものと判断し、その後の処理、つまり印刷データの受信は行わずにコネクションを直ちに切断する。このようにして、印刷装置はＳＳＬ通信用のポートに接続が行われた際に、Ｈｅｌｌｏ  Ｒｅｑｕｅｓｔの応答を判断することで、ホストコンピュータがＳＳＬ通信を行う意思があるかどうかを判定し（Ｓ１００３）、その後の処理を決定している。Ｓ１００３の処理は図８のＳ８０８の処理と対応している。
【００５３】
ホストコンピュータからＣｌｉｅｎｔ  Ｈｅｌｌｏメッセージを受け取った印刷装置は、ホストコンピュータから送信された一覧から、使用する暗号化と圧縮のアルゴリズムを決定し、Ｓｅｒｖｅｒ  Ｈｅｌｌｏメッセージに格納してホストコンピュータに送信する（Ｓ１００４）。さらに、プリマスタシークレット（印刷装置、ホストコンピュータで共有する共通鍵の元となるパラメータ）の送付を安全に行う為に、証明書をＳｅｒｖｅｒ  Ｃｅｒｔｉｆｉｃａｔｅメッセージに格納して送信する（Ｓ１００５）。このとき、証明書を持たない場合などにはＳｅｒｖｅｒ  Ｋｅｙ  Ｅｘｃｈａｎｇｅメッセージを使って、一時的なＲＳＡ鍵やＤＨ鍵を送信する場合もある。
【００５４】
Ｓｅｒｖｅｒ  Ｈｅｌｌｏ  Ｄｏｎｅメッセージで、Ｓｅｒｖｅｒ  Ｈｅｌｌｏから始まる一連のメッセージが完了したことを通知する（Ｓ１００６）。
【００５５】
ホストコンピュータは印刷装置から送られた証明書を検証したのちプリマスタシークレットを生成し、これを暗号化して印刷装置に送信する。プリマスタシークレットの暗号化には、印刷装置から受け取った証明書に含まれる公開鍵を使用する（Ｓ１００７）。
【００５６】
ホストコンピュータはプリマスタシークレットからマスタシークレットを作成し、さらにマスタシークレットからセッション鍵を生成する。そして使用する暗号アルゴリズムの準備が整ったことを印刷装置に通知する（Ｓ１００８）。
【００５７】
さらにホストコンピュータはＦｉｎｉｓｈｅｄメッセージにホストコンピュータと印刷装置の両者が知っている情報を暗号化して送信する（Ｓ１００９）。
【００５８】
印刷装置はホストコンピュータから受信した暗号化されたプリマスタシークレットを、自身の秘密鍵を使い復号化する。次に復号化したプリマスタシークレットからマスタシークレットを生成し、さらにマスタシークレットからセッション鍵（共通鍵）を生成する。このセッション鍵はホストコンピュータが生成したセッション鍵と同じ鍵になる。そして使用する暗号アルゴリズムの準備が整ったことをホストコンピュータに通知する（Ｓ１０１０）。
【００５９】
さらに印刷装置はＦｉｎｉｓｈｅｄメッセージにホストコンピュータと印刷装置の両者が知っている情報を暗号化して送信する（Ｓ１０１１）。互いにＦｉｎｉｓｈｅｄメッセージで送られたデータをセッション鍵で復号化し、正確に情報が得られることを確認すると暗号化通信が正常に動作したことになり、ネゴシエーションを終了する。
【００６０】
その後送られる印刷データは、ホストコンピュータにおいて、このネゴシエーションによって生成されたセッション鍵で暗号化され、印刷装置において、このネゴシエーションによって生成されたセッション鍵を用いて復号化されることになる。
【００６１】
図１１は、本実施形態におけるホストコンピュータと印刷装置とのデータのやり取りを示した図である。
【００６２】
以下、図１１を用いてホストコンピュータと印刷装置とのデータのやり取りについて説明する。
【００６３】
Ｓ１１０１において、ホストコンピュータＡからのｃｒｅａｔｅ  ｊｏｂを受け取った印刷装置は、ホストコンピュータＡが印刷データをＳＳＬ暗号化通信で送信したいかどうかをｃｒｅａｔｅ  ｊｏｂを解析することで判定する。ホストコンピュータＡがＳＳＬ通信を要求していると判定されると、Ｓ１１０２において印刷装置はＳＳＬ通信用のポートをホストコンピュータＡに割り当て、印刷データの宛先となるＵＲＩ１をｃｒｅａｔｅ  ｊｏｂに対するｒｅｓｐｏｎｓｅとしてホストコンピュータＡに送信する。
【００６４】
Ｓ１１０３はホストコンピュータＢからのｃｒｅａｔｅ  ｊｏｂで、ＳＳＬ暗号化通信を要求せずに通常の通信方法をホストコンピュータが要求してきた場合である。この場合印刷装置は、Ｓ１１０４において通常通信用のポートをホストコンピュータＢに割り当て、印刷データの宛先となるＵＲＩ２をｃｒｅａｔｅ  ｊｏｂに対するｒｅｓｐｏｎｓｅとしてホストコンピュータＢに送信する。ここでホストコンピュータＢに送信されるＵＲＩ２はホストコンピュータＡに送信されたＵＲＩ１とは異なるＵＲＩである。
【００６５】
Ｓ１１０５において、印刷データを送信する為の接続がホストコンピュータＡからされると、印刷装置は接続が行われたポートがＳＳＬ通信用のポートであるかを判定する。ＳＳＬ通信用のポートに接続が行われると、Ｓ１１０６においてＳＳＬ通信を行う為のネゴシエーションを開始し、ＳＳＬ通信路を確立する。Ｓ１１０７で、ＳＳＬ通信でホストコンピュータＡから送信された印刷データを受信し、ネゴシエーションの結果決定された鍵を用いて印刷データを復号化し、印刷を実行する。
【００６６】
Ｓ１１０８はＳＳＬ通信を要求しないホストコンピュータＢからの、印刷データ送信の為の接続である。印刷装置は接続が行われたポートがＳＳＬ通信用のポートであるかを判定し、通常の通信用のポートに接続が行われると、Ｓ１１０９において通常の通信方法でホストコンピュータＢから送信された印刷データを受信し、印刷を実行する。
【００６７】
上記実施形態では、ＣｒｅａｔｅＪｏｂの送受信を行なうためのトランスポートプロトコルとしてＨＴＴＰを採用しているが、ＳＭＴＰ等のような他のトランスポートプロトコルを使用してもよい。
【００６８】
また、図２、３において、印刷データの転送方法を指示する手段として”ｓｅｃｕｒｅ−ｐｏｒｔ”というタグを使用しているが、クライアントと印刷装置とでの合意のもとでそれに変わる他の文字列をタグとして採用してもよい。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施形態における印刷装置のハードウェア構成を示すブロック図である。
【図２】本発明の実施形態における印刷装置のソフトウェア構成を示すブロック図である。
【図３】本発明の実施形態におけるホストコンピュータから印刷装置に送信されるＸＭＬ形式のパケットデータを示す図である。
【図４】本発明の実施形態における図３のＡ部分の他の記述形式の例を示す図である。
【図５】本発明の実施形態における印刷装置からホストコンピュータに送信されるＸＭＬ形式のパケットデータを示す図である。
【図６】本発明の実施形態における印刷装置の、印刷要求受信動作を示すフローチャートである。
【図７】本発明の実施形態における印刷装置が管理する、ポートの状態を示すリストの図である。
【図８】本発明の実施形態における印刷装置の、印刷データの受信動作を示すフローチャートである。
【図９】本発明の実施形態における印刷データ送信パケットを示す図である。
【図１０】本発明の実施形態における印刷装置、ホストコンピュータ間のＳＳＬ通信を行う為のネゴシエーションの処理を示した模式図である。
【図１１】本発明の実施形態におけるホストコンピュータと印刷装置間のデータのやり取りを示した図である。
【図１２】従来技術における、ホストコンピュータと印刷装置間のデータのやり取りを示した図である。
【図１】
2005117321.tif 000003
【図２】
2005117321.tif 000004
【図３】
2005117321.tif 000005
【図４】
2005117321.tif 000006
【図５】
2005117321.tif 000007
【図６】
2005117321.tif 000008
【図７】
2005117321.tif 000009
【図８】
2005117321.tif 000010
【図９】
2005117321.tif 000011
【図１０】
2005117321.tif 000012
【図１１】
2005117321.tif 000013
【図１２】
2005117321.tif 000014