(57)【特許請求の範囲】
【請求項１】
コンピュータを、
印刷対象として指定された電子文書に電子署名が付されているか否かを判定する署名有無判定手段、
前記電子文書に付されている電子署名の強度を判定する強度判定手段、
該コンピュータとネットワークを介して接続されたプリンタに前記電子文書を印刷させるために、前記電子文書の画像を記述する印刷データを前記ネットワークを介して前記プリンタに送信する手段であって、前記電子文書に電子署名が付されている場合には、前記印刷データに施す暗号化の強度を、前記電子文書に付されている電子署名の強度に応じて選択し、選択した電子署名の強度に応じた暗号化の強度で前記印刷データを暗号化して送信する送信制御手段、
として機能させるためのコンピュータプログラムであって、
前記送信制御手段は、前記電子署名に付されている電子署名の強度レベルと前記プリンタとの間の伝送経路の強度レベルとを比較し、電子署名の強度レベルの方が高い場合には、電子署名の強度レベルに応じた強度で前記伝送経路を保護する、ことを特徴とする、コンピュータプログラム。
【請求項２】
請求項１記載のコンピュータプログラムであって、
前記送信制御手段は、前記電子文書に付されている電子署名の強度に応じて選択した暗号化の強度を印刷設定用のユーザインタフェース画面に表示させる、
ことを特徴とするコンピュータプログラム。
【請求項３】
請求項１記載のコンピュータプログラムであって、
前記送信制御手段は、前記電子文書に電子署名が付されている場合には、前記印刷データに対して親展プリントの印刷属性を付加して送信する、
ことを特徴とするコンピュータプログラム。
【請求項４】
請求項１記載のコンピュータプログラムであって、
前記送信制御手段は、前記電子文書に電子署名が付されていない場合は、前記印刷データに対応する印刷属性を記述する属性データを暗号化し、暗号化した属性データと暗号化しない印刷データとを前記プリンタに送信し、前記電子文書に電子署名が付されている場合は、暗号化した属性データと暗号化した印刷データとを前記プリンタに送信する、
ことを特徴とするコンピュータプログラム。
【請求項５】
印刷指示装置であって、
印刷対象として指定された電子文書に電子署名が付されているか否かを判定する署名有無判定手段と、
前記電子文書に付されている電子署名の強度を判定する強度判定手段と、
該印刷指示装置とネットワークを介して接続されたプリンタに前記電子文書を印刷させるために、前記電子文書の画像を記述する印刷データを前記ネットワークを介して前記プリンタに送信する手段であって、前記電子文書に電子署名が付されている場合には、前記印刷データに施す暗号化の強度を、前記電子文書に付されている電子署名の強度に応じて選択し、選択した電子署名の強度に応じた暗号化の強度で前記印刷データを暗号化して送信する送信制御手段と、
を備え、
前記送信制御手段は、前記電子署名に付されている電子署名の強度レベルと前記プリンタとの間の伝送経路の強度レベルとを比較し、電子署名の強度レベルの方が高い場合には、電子署名の強度レベルに応じた強度で前記伝送経路を保護する、ことを特徴とする印刷指示装置。
【請求項６】
ネットワークを介して接続されたプリンタに対し印刷対象として指定された電子文書の画像を記述する印刷データを送信して印刷させる装置が実行する印刷指示方法であって、
前記電子文書に電子署名が付されているか否かを判定するステップと、
前記電子文書に付されている電子署名の強度を判定するステップと、
前記電子文書に電子署名が付されている場合には、前記印刷データに施す暗号化の強度を、前記電子文書に付されている電子署名の強度に応じて選択し、選択した電子署名の強度に応じた暗号化の強度で前記印刷データを暗号化して送信する送信ステップと、
を含み、
前記送信ステップでは、前記電子署名に付されている電子署名の強度レベルと前記プリンタとの間の伝送経路の強度レベルとを比較し、電子署名の強度レベルの方が高い場合には、電子署名の強度レベルに応じた強度で前記伝送経路を保護する、
ことを特徴とする印刷指示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク経由でプリンタに印刷データを送信して印刷させるコンピュータプログラム（たとえばプリンタドライバ）に関し、特にネットワーク上での印刷データのセキュリティに関する。
【背景技術】
【０００２】
ホストコンピュータからネットワークを介してプリンタに送信する印刷データの機密漏洩を防止するための技術として、特許文献１に示されるものが知られている。この技術では、ホストコンピュータ上のプリンタドライバは、伝送経路上での暗号化の有無や暗号化の強度を指定するためのユーザインタフェース画面を提供し、この画面に対する入力に応じて必要ならば印刷データを暗号化してプリンタに送信する。また、このプリンタドライバは、送信先のプリンタまでの経路がインターネットを介するか否かなどといった、ネットワーク上でのプリンタの位置に応じ、適切な暗号化強度を判定する。
【０００３】
【特許文献１】特開２００２−３１２１４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ユーザが作成した電子文書をそのユーザ自身が印刷指示する場合には、その電子文書をどの程度強力に守りたいかはそのユーザ自身の判断である。したがって、このような場合には、上記特許文献１の方式でも適切に電子文書の内容を保護することができる。
【０００５】
しかしながら、世の中では、他の人が作成した電子文書や他の人が著作権を持つ電子文書を取得して印刷する場合も少なくない。このような場合、電子文書の内容をどの程度の強度で保護したいかは電子文書の作成者や著作権者の問題であり、その文書を取得して印刷する人が適切に判断できるとは期待できないので、特許文献１の方式では、ネットワーク上での電子文書の内容の保護が十分とは言えない。
【課題を解決するための手段】
【０００６】
本発明は、１つの側面では、コンピュータを、印刷対象として指定された電子文書に電子署名が付されているか否かを判定する署名有無判定手段、前記電子文書に付されている電子署名の強度を判定する強度判定手段、該コンピュータとネットワークを介して接続されたプリンタに前記電子文書を印刷させるために、前記電子文書の画像を記述する印刷データを前記ネットワークを介して前記プリンタに送信する手段であって、前記電子文書に電子署名が付されている場合には、前記印刷データに施す暗号化の強度を、前記電子文書に付されている電子署名の強度に応じて選択し、選択した電子署名の強度に応じた暗号化の強度で前記印刷データを暗号化して送信する送信制御手段、として機能させるためのコンピュータプログラムであって、前記送信制御手段は、前記電子署名に付されている電子署名の強度レベルと前記プリンタとの間の伝送経路の強度レベルとを比較し、電子署名の強度レベルの方が高い場合には、電子署名の強度レベルに応じた強度で前記伝送経路を保護する、ことを特徴とする、コンピュータプログラムを提供する。
【０００７】
本発明の好適な態様では、前記コンピュータを、前記電子文書に付されている電子署名の強度を判定する強度判定手段として機能させると共に、前記送信制御手段は、前記印刷データに施す暗号化の強度を、前記電子文書に付されている電子署名の強度に応じて選択する。
【０００８】
別の好適な態様では、前記送信制御手段は、前記電子文書に電子署名が付されている場合には、前記印刷データに対して親展プリントの印刷属性を付加して送信する。
【０００９】
本発明の別の側面では、印刷指示装置は、印刷対象として指定された電子文書に電子署名が付されているか否かを判定する署名有無判定手段と、前記電子文書に付されている電子署名の強度を判定する強度判定手段と、該印刷指示装置とネットワークを介して接続されたプリンタに前記電子文書を印刷させるために、前記電子文書の画像を記述する印刷データを前記ネットワークを介して前記プリンタに送信する手段であって、前記電子文書に電子署名が付されている場合には、前記印刷データに施す暗号化の強度を、前記電子文書に付されている電子署名の強度に応じて選択し、選択した電子署名の強度に応じた暗号化の強度で前記印刷データを暗号化して送信する送信制御手段と、を備え、前記送信制御手段は、前記電子署名に付されている電子署名の強度レベルと前記プリンタとの間の伝送経路の強度レベルとを比較し、電子署名の強度レベルの方が高い場合には、電子署名の強度レベルに応じた強度で前記伝送経路を保護する、ことを特徴とする。
【００１０】
本発明の更に別の側面では、ネットワークを介して接続されたプリンタに対し印刷対象として指定された電子文書の画像を記述する印刷データを送信して印刷させる装置が実行する印刷指示方法であって、前記電子文書に電子署名が付されているか否かを判定するステップと、前記電子文書に付されている電子署名の強度を判定するステップと、
前記電子文書に電子署名が付されている場合には、前記印刷データに施す暗号化の強度を、前記電子文書に付されている電子署名の強度に応じて選択し、選択した電子署名の強度に応じた暗号化の強度で前記印刷データを暗号化して送信する送信ステップと、を含み、前記送信ステップでは、前記電子署名に付されている電子署名の強度レベルと前記プリンタとの間の伝送経路の強度レベルとを比較し、電子署名の強度レベルの方が高い場合には、電子署名の強度レベルに応じた強度で前記伝送経路を保護する、ことを特徴とする方法を提供する。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明の実施の形態（以下「実施形態」と呼ぶ）について説明する。
【００１２】
図１は、本発明に係るプリンタ１４を備えたシステムの構成の例を示す図である。このシステムでは、ＰＣ（パーソナルコンピュータ）１０及び１６とプリンタ１４とが、ＬＡＮ（ローカルエリアネットワーク）やインターネット等のデータ通信のためのネットワーク１２に接続されている。ＰＣ１６は、印刷の対象となる電子文書の所有者又は著作権者など、電子文書に対して権利を持つユーザ（権利保有者と呼ぶ）のＰＣである。ＰＣ１０はその電子文書を取得して印刷しようとするユーザのＰＣである。ＰＣ１０には、プリンタ１４に電子文書のプリントを行わせるためのプリンタドライバ１１がインストールされている。なお、ここでいう電子文書は、アプリケーションソフトウエア（以下単にアプリケーションと呼ぶ）のファイル形式の文書である。プリンタドライバ１１は、アプリケーションのファイル形式の電子文書から、その電子文書の印刷画像を示す印刷データを作成し、プリンタ１４に送る。印刷データは、プリンタ１４が解釈可能なページ記述言語（ＰＤＬ）で記述される。また、プリンタドライバ１１は、印刷部数や用紙サイズ、印刷を指示したユーザのユーザ名、印刷指示の時刻などの印刷属性をプリントジョブ言語（ＰＪＬ）で記述した属性データを作成し、印刷データと対応づけてプリンタ１４に送る機能を備える。
【００１３】
なお、プリンタの中には、特定の種類のアプリケーションについて、そのアプリケーションのファイル形式の電子文書をそのまま受け取って印刷する「ダイレクトプリント」機能を備えるものもある。印刷対象の電子文書がプリンタ１４でダイレクトプリント可能なファイル形式である場合、プリンタドライバ１１は、その電子文書をＰＤＬの印刷データに変更せず、その電子文書に属性データを付加してプリンタに送信することもできる。
【００１４】
電子文書には、電子文書の所有者や著作権者などの秘密鍵情報を用いて電子署名を伏すことができる。例えばマイクロソフト社のワードプロセッサソフトウエア「Ｗｏｒｄ」や、アドビシステムズ社の「Ａｃｒｏｂａｔ」などのように、作成した文書に電子署名を組み込むことができるソフトウエアが普及しており、電子文書はこのようなソフトウエアにより電子署名を付加することができる。
【００１５】
電子署名は、電子文書のハッシュ値を署名者の秘密鍵で暗号化することにより生成される。ＸＭＬ署名などでよく知られるように、一般に電子文書に組み込まれる電子署名の情報には、電子署名の署名値（すなわちハッシュ値の暗号化結果）の他に、その署名値を検証するための検証鍵（すなわち署名者の公開鍵）を特定するための情報が含まれる。この情報は、検証鍵自身の場合もあれば、署名者の公開鍵証明書の場合もあり、それら両方の場合もある。
【００１６】
電子文書の権利保有者は、電子文書を配布する場合、その電子文書が正しくその者が配布した者であることを保証するなどの目的で、その者の電子署名を付すことが多い。本実施形態のプリンタドライバ１１は、この電子署名に基づき、ＰＣ１０からプリンタ１４までの伝送経路（すなわちネットワーク１２）における電子文書の内容の機密保護のための処理を行う。
【００１７】
基本的な考え方は、印刷対象に指定された電子文書に電子署名が付されていれば、プリンタドライバ１１が、その電子文書の内容に機密保護が必要と判断し、伝送経路上ではその電子文書の内容を暗号化により保護するというものである。
【００１８】
また、本実施形態では、電子署名の強度に応じて暗号化の強度を切り換える。電子署名の強度は、言い換えれば電子署名を検証するための電子証明書（すなわち電子署名に用いた秘密鍵に対応する公開鍵を証明する証明書）の強度である。電子証明書の強度は、例えば、電子証明書に示される公開鍵の鍵長によって規定できる。鍵長が長いほど強度が高い。本実施形態では、１つの例として、電子証明書の鍵長が長いほど、電子文書の暗号強度を上げる。
【００１９】
また、電子証明書の強度は、電子証明書を発行したＣＡ（認証局）の信頼度に応じて決めることもできる。例えば、Verisign社などのようにルート証明書を有する「信頼されたＣＡ」が発行した電子証明書の強度は高いと言え、それに対し企業が設立した社内向けＣＡが発行した電子証明書は「信頼されたＣＡ」の証明書よりも強度は低いと言える。このような観点から定めた電子証明書の強度が高いほど、暗号化の強度を高めることも考えられる。また、ＣＡの信頼度と鍵長の組み合わせに対して強度を規定することも可能である。この場合、ＣＡと鍵長の組み合わせに対して、強度の値を割り当てればよい。
【００２０】
本実施形態では、このように規定された電子証明書の強度の各値又は順位に対し、それぞれ対応する暗号化強度を割り当てる。
【００２１】
暗号強度は、例えば、暗号化に用いる鍵長を長くすれば高めることができる。したがって、プリンタドライバ１１は、例えば、電子証明書の鍵長ごとに、これに対応する鍵長を持った暗号化鍵を登録したテーブルを保持し、そのテーブルから適切な強度の暗号化鍵を選択すればよい。また、暗号強度は、暗号アルゴリズムによっても変わるので、電子証明書の各鍵長に対応する暗号アルゴリズムをテーブルに登録しておき、電子証明書の鍵長に応じた暗号方式をプリンタドライバ１１が選択して利用してもよい。暗号アルゴリズムと鍵長との組み合わせで暗号強度を規定してももちろんよい。プリンタ１４は、プリンタドライバ１１が用いる各暗号化鍵に対応する復号鍵、或いはプリンタドライバ１１が用いる各暗号アルゴリズムに対応した復号アルゴリズムを備えている。
【００２２】
次に、図２を参照して、プリンタドライバ１１の動作を説明する。プリンタドライバ１１は、例えば、編集又は閲覧用のアプリケーションで電子文書を開いた状態で、ユーザから印刷の指示が入力されると起動される。その電子文書が印刷対象となる。プリンタドライバ１１は、ユーザに対し印刷先のプリンタ、印刷するページ範囲、印刷部数等と言った印刷属性を指定するユーザインタフェース画面を提供する。ユーザがその画面上で必要な印刷属性を入力すると、プリンタドライバ１１は、入力された各印刷属性の値や、印刷を指示したユーザ名、現在時刻などをアプリケーション又はオペレーティングシステムから取得してＰＪＬで記述することにより、属性データを作成する（Ｓ１）。また、プリンタドライバ１１は、印刷対象の電子文書の印刷画像を印刷先のプリンタが解釈可能なＰＤＬで記述することで、印刷データを作成する（Ｓ２）。
【００２３】
そして、プリンタドライバ１１は、印刷対象の電子文書に電子署名が付されているかどうかを判定する（Ｓ３）。付されていなければ、プリンタドライバ１１は、属性データを暗号化して（Ｓ４）、印刷データは暗号化せずにそのまま、プリンタ１４に送信する。属性データの暗号化は、プリンタ１４が復号可能な所定の暗号方式で行う。ここで属性データを暗号化するのは、属性データ中に、ユーザ名等の個人情報が含まれるからである。
【００２４】
印刷対象の電子文書に電子署名が付されていた場合、プリンタドライバ１１は、その電子署名に対応する電子証明書の強度を確認する（Ｓ５）。ＸＭＬ署名等でよく知られるように、電子署名のデータ中には、その電子署名を検証するための公開鍵の証明書、又はその証明書を一意に示す識別情報が含まれている。証明書が含まれていれば、プリンタドライバは、その証明書中の公開鍵の鍵長、又はその証明書の発行者の情報、又はその両方に基づき、その証明書の強度を求めることができる。証明書が含まれていなければ、プリンタドライバ１１は、電子署名のデータ中の識別情報に対応する証明書をＣＡ又はディレクトリサーバから取得し、その証明書の強度を求めればよい。
【００２５】
証明書の強度が確認できると、プリンタドライバ１１は、その強度に応じて、印刷データの暗号化強度を設定する（Ｓ６）。ここでは、証明書の強度に応じた強度の暗号鍵や暗号アルゴリズムを選択する。
【００２６】
また、プリンタドライバ１１は、ステップＳ１で生成した属性データに対し、親展プリント属性を追加設定する（Ｓ７）。親展プリント属性が設定されている印刷データを受け取った場合、プリンタ１４は、その印刷データをすぐに印刷出力することはせず、その印刷データを保存する。そして、ユーザがプリンタ１４のコントロールパネルから正しいパスワードを入力すると、その印刷データを印刷出力する。ステップＳ７では、プリンタドライバ１１は、パスワード入力のためのユーザインタフェース画面をＰＣ１０のディスプレイに表示させ、それに応じてユーザが入力したパスワードを親展プリントのパスワードとして属性データに追加する。
【００２７】
次に、プリンタドライバ１１は、プリンタ１４との間の伝送経路のセキュリティ強度を確認する（Ｓ８）。伝送経路のセキュリティ強度は、例えば、ＳＳＬ(Secure Socket Layer)による保護の有無により区別できる。また、同じＳＳＬで保護されている場合でも、鍵長が４０ビットの場合よりも１２８ビットの場合の方が強度が高い。このようなＳＳＬの有無、及びＳＳＬの鍵長などに基づき、伝送経路のセキュリティ強度の値を規定しておく。ステップＳ８では伝送経路が現在どのような保護状態を判別して、それがどのレベルのセキュリティ強度となるかを判別する。そして、電子文書の電子署名の証明書の強度レベルと伝送経路のセキュリティ強度のレベルとを比較し（Ｓ９）、証明書の強度レベルの方が高ければ、証明書の強度に応じたセキュリティ強度での伝送経路のセキュリティ確立を行う（Ｓ１０）。例えば、証明書の強度に応じた鍵長でのＳＳＬに移行する。証明書の強度レベルと伝送経路のセキュリティ強度のレベルとは、両者が比較可能なようにあらかじめ規定しておく。
【００２８】
ステップＳ８〜Ｓ１０の処理は、後述する印刷データ等の暗号化（Ｓ１３）に加えて送信データの機密保護を二重化するものである。なお、ステップＳ１３等での暗号化でデータ保護が十分な場合は、ステップＳ８〜Ｓ１０の処理は不要である。
【００２９】
またプリンタドライバ１１は、ステップＳ６やＳ７で自動設定された暗号化強度や親展プリント属性の値を、印刷属性設定用のユーザインタフェース画面に反映させて表示する（Ｓ１１）。ユーザは、この表示を見ることでどのような設定がなされているかを知ることができ、また必要に応じ設定内容を変更することもできる。
【００３０】
ユーザが、印刷属性の設定を確認し、印刷開始を指示すると、プリンタドライバ１１は、属性データをステップＳ４と同様、所定の暗号方式で暗号化し（Ｓ１２）、印刷データをステップＳ６で設定された強度の暗号方式で暗号化し（Ｓ１３）、それら暗号化された属性データ及び印刷データをプリンタ１４に送信する（Ｓ１４）。
【００３１】
次に、図３を参照してプリンタ１４の処理手順を説明する。プリンタ１４は、ＰＣ１０から属性データを受け取ると、その属性データは暗号化されているのでこれを復号し、印刷属性の情報を取得する。また、プリンタ１４は、ＰＣ１０から印刷データを受け取ると（Ｓ２１）、その印刷データが暗号化されているかどうかを判定し（Ｓ２２）、暗号化されていれば、それを復号する（Ｓ２３）。この復号のためには、プリンタ１４が備える暗号アルゴリズムや暗号鍵を総当たりで適用してもよいし、復号の際に用いるべき暗号アルゴリズムや暗号鍵を特定する情報をプリンタドライバ１１が属性データに記述しておき、これに基づきプリンタ１４が復号を行ってもよい。
【００３２】
そしてプリンタ１４は、復号した印刷データを属性データに従って印刷し（Ｓ２４）、印刷が完了すると復号した印刷データをプリンタ１４内の記憶装置上から削除する（Ｓ２５）。この削除により、電子文書の内容がプリンタ１４に残ることがないので、高いセキュリティを実現できる。
【００３３】
以上、プリンタドライバ１１が電子文書をＰＤＬの印刷データに変換してプリンタ１４に送信する場合の処理手順を説明した。これに対し、電子文書をそのままプリンタ１４に送るダイレクトプリントの場合のプリンタドライバ１１の手順は、電子文書をＰＤＬのデータに変換するステップ（Ｓ２）が不要である点、及びステップＳ１３でＰＤＬの印刷データではなく電子文書そのものを暗号化する点、が図２の処理手順と異なるだけで、他は図２と同様の手順でよい。
【００３４】
以上説明したように、本実施形態によれば、ＰＣ１０からプリンタ１４に送る電子文書のデータ（電子文書そのもの又はＰＤＬの印刷データ）の暗号化による保護を、その電子文書に対する電子署名の有無や、その電子署名の強度に応じて制御する。したがって、印刷を指示するユーザは何ら操作を行わなくても、電子文書に対し署名を行った著作権者のセキュリティ保護の意図に応じた強度で、伝送経路上で電子文書の内容を保護することができる。また、本実施形態では、印刷対象の電子文書に電子署名が付されている場合に、プリンタドライバ１１が親展プリント属性を自動設定するので、電子署名付きの電子文書の印刷結果がプリンタ１４のトレイに出力されたまま放置され漏洩すると言ったリスクも低減できる。また、本実施形態では、自動設定した暗号強度や親展プリントの設定内容をユーザインタフェース画面に表示するので、ユーザが設定内容を確認でき、必要に応じ変更もできる。
【００３５】
以上では、プリンタドライバ１１を例にとったが、プリンタドライバ以外でも、プリンタに対して印刷データを送信して印刷させることができるプログラムは存在しており、そのようなプログラム一般に対して上記実施形態の方式は適用可能である。
【００３６】
なお、このようなプリンタドライバ等のプログラムが実行されるコンピュータは、ハードウェアとして、ＣＰＵ（中央演算装置）、メモリ（一次記憶）、各種Ｉ／Ｏ（入出力）インタフェース等がバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ハードディスクドライブやＣＤやＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのドライブが接続される。このようなドライブは、メモリに対する外部記憶装置として機能する。上述した実施の形態の処理内容が記述されたプログラムが、そのような外部記憶装置に保存され、コンピュータにインストールされている。また、このプログラムは、ＣＰＵからアクセス可能なＲＯＭ（リード・オンリー・メモリ）に保持されていてもよい。外部記憶装置に記憶されたプログラムがメモリに読み出されＣＰＵにより実行されるか、又はＲＯＭ上のプログラムがＣＰＵから実行されることにより、上述の実施の形態の処理が実現される。
【図面の簡単な説明】
【００３７】
【図１】実施形態のプリンタを備えたシステムの構成の例を示す図である。
【図２】プリンタドライバの処理手順を示すフローチャートである。
【図３】プリンタの処理手順を示すフローチャートである。
【符号の説明】
【００３８】
１０，１６  ＰＣ（パーソナルコンピュータ）、１１  プリンタドライバ、１２  ネットワーク、１４  プリンタ。
【図１】
0004645421.tif 000002
【図２】
0004645421.tif 000003
【図３】
0004645421.tif 000004