(57)【要約】【課題】  印刷制限を確実に行うことで電子情報のセキュリティを向上させるようにした印刷制限処理プログラムおよび情報処理装置を提供する。【解決手段】  印刷フックプログラム（印刷制限処理プログラム）１２は、オペレーティングシステム１３に設けられた印刷処理に係わるＡＰＩに対するアプリケーションプログラム１１からの呼び出し指示を検出すると、プリンタ２０での印刷を許可するか否かの判定を行う。この判定では、当該プリンタが制限内容に規定された制限処理に対応していれば、当該プリンタでの印刷を許可すると判定することになる。ここで、印刷許可と判定されると、印刷制限情報に規定された制限内容に基づく印刷制限処理が行われる。【選択図】  図１
2008134820.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
印刷処理に係わるプログラムに対する呼び出し指示を検出する検出手段、
前記検出手段による検出に対応して印刷制限情報を取得する取得手段、
前記取得手段で取得した印刷制限情報に規定された制限内容に基づき印刷装置における印刷を許可するか否かを判定する判定手段、
前記判定手段により印刷を許可すると判定された場合に、前記取得手段で取得した印刷制限情報に規定された制限内容に基づき当該印刷装置における印刷を制限する制限処理手段
として機能させるための印刷制限処理プログラム。
【請求項２】
前記コンピュータを、
前記検出手段により検出した呼び出し指示に対応する処理の実行を制御する制御手段
として更に機能させる請求項１記載の印刷制限処理プログラム。
【請求項３】
前記判定手段は、
前記印刷装置が制限内容に規定された制限処理に対応している場合に印刷を許可すると判定する
請求項１記載の印刷制限処理プログラム。
【請求項４】
前記取得手段は、
前記検出手段による検出に対応して記憶装置の所定の領域から印刷制限情報を取得する
請求項１記載の印刷制限処理プログラム。
【請求項５】
前記取得手段は、
前記検出手段による検出に対応して通信手段を介して接続された外部装置から印刷制限情報を取得する
請求項１記載の印刷制限処理プログラム。
【請求項６】
前記検出手段は、
電子情報処理に係わるプログラムに対する呼び出し指示を検出し、
前記取得手段は、
前記検出手段による検出に対応して前記電子情報処理に係わるプログラムの処理対象となる電子情報から印刷制限情報を取得する
請求項１記載の印刷制限処理プログラム。
【請求項７】
前記検出手段は、
電子情報処理に係わるプログラムに対する呼び出し指示を検出し、
前記取得手段は、
前記検出手段による検出に対応して前記電子情報処理に係わるプログラムの処理対象となる電子情報から電子情報識別子を取得し、該電子情報識別子を含む情報に基づいて認可処理装置から印刷制限情報を取得する
請求項１記載の印刷制限処理プログラム。
【請求項８】
印刷処理に係わるプログラムに対する呼び出し指示を検出する検出手段と、
前記検出手段による検出に対応して印刷制限情報を取得する取得手段と、
前記取得手段で取得した印刷制限情報に規定された制限内容に基づき印刷装置における印刷を許可するか否かを判定する判定手段と、
前記判定手段により印刷を許可すると判定された場合に、前記取得手段で取得した印刷制限情報に規定された制限内容に基づき当該印刷装置における印刷を制限する制限処理手段と
を具備する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制限処理プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
従来、機密文書に対する勝手な印刷を防ぐために、様々な印刷制限技術が提案されている。例えば、機密文書として判定された場合に、その文書の複製や印刷をＯＳ（Operating System）のＡＰＩ（Application Program Interface）をフックすることによって一律に停止あるいは禁止させる技術や（特許文献１および特許文献２参照）、アクセスチケットやＤＲＭ（Digital Rights Management）を用いて印刷制限を行う技術が提案されている。
【０００３】
また、プリンタドライバでは、文書を印刷する際に電子透かしや、デジタルコードを埋め込んで印刷を行う技術が提案されている。
【特許文献１】特開２００２−２８８３０号
【特許文献２】特開２００５−５６１３７号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、プリンタドライバの選択はユーザの意思に委ねられているため、電子透かしや、デジタルコードに未対応のプリンタで印刷が行われたり、別のプリンタドライバから印刷が行われたりした場合には、セキュリティ機能が働かず機密文書が印刷されてしまうことになることから、機密文書の印刷を行う際は、印刷に適したプリンタであるか否かの判定を自動的に行うことによって、セキュリティ機能を向上させることが望まれている。
【０００５】
本発明は、印刷制限を確実に行うことで電子情報のセキュリティを向上させるようにした印刷制限処理プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、請求項１の印刷制限処理プログラムの発明は、コンピュータを、印刷処理に係わるプログラムに対する呼び出し指示を検出する検出手段、前記検出手段による検出に対応して印刷制限情報を取得する取得手段、前記取得手段で取得した印刷制限情報に規定された制限内容に基づき印刷装置における印刷を許可するか否かを判定する判定手段、前記判定手段により印刷を許可すると判定された場合に、前記取得手段で取得した印刷制限情報に規定された制限内容に基づき当該印刷装置における印刷を制限する制限処理手段として機能させる。
【０００７】
また、請求項２の発明は、請求項１の発明において、前記コンピュータを、前記検出手段により検出した呼び出し指示に対応する処理の実行を制御する制御手段として更に機能させる。
【０００８】
また、請求項３の発明は、請求項１の発明において、前記判定手段は、前記印刷装置が制限内容に規定された制限処理に対応している場合に印刷を許可すると判定する。
【０００９】
また、請求項４の発明は、請求項１の発明において、前記取得手段は、前記検出手段による検出に対応して記憶装置の所定の領域から印刷制限情報を取得する。
【００１０】
また、請求項５の発明は、請求項１の発明において、前記取得手段は、前記検出手段による検出に対応して通信手段を介して接続された外部装置から印刷制限情報を取得する。
【００１１】
また、請求項６の発明は、請求項１の発明において、前記検出手段は、電子情報処理に係わるプログラムに対する呼び出し指示を検出し、前記取得手段は、前記検出手段による検出に対応して前記電子情報処理に係わるプログラムの処理対象となる電子情報から印刷制限情報を取得する。
【００１２】
また、請求項７の発明は、請求項１の発明において、前記検出手段は、電子情報処理に係わるプログラムに対する呼び出し指示を検出し、前記取得手段は、前記検出手段による検出に対応して前記電子情報処理に係わるプログラムの処理対象となる電子情報から電子情報識別子を取得し、該電子情報識別子を含む情報に基づいて認可処理装置から印刷制限情報を取得する。
【００１３】
また、請求項８の情報処理装置の発明は、印刷処理に係わるプログラムに対する呼び出し指示を検出する検出手段と、前記検出手段による検出に対応して印刷制限情報を取得する取得手段と、前記取得手段で取得した印刷制限情報に規定された制限内容に基づき印刷装置における印刷を許可するか否かを判定する判定手段と、前記判定手段により印刷を許可すると判定された場合に、前記取得手段で取得した印刷制限情報に規定された制限内容に基づき当該印刷装置における印刷を制限する制限処理手段とを具備する。
【発明の効果】
【００１４】
請求項１の印刷制限処理プログラムによれば、制限内容に規定された制限処理が行える印刷装置で印刷が行われ、また、印刷制限が勝手に解除されることもないため、本構成を有さない場合に比較して、確実に印刷制限を行うことができるので、電子情報のセキュリティを強固にすることができる。
【００１５】
また、請求項２の印刷制限処理プログラムによれば、本構成を有さない場合に比較して、呼び出し指示に対応した処理の実行が制御されることになる。
【００１６】
また、請求項３の印刷制限処理プログラムによれば、制限内容に規定された制限処理に対応した印刷装置でのみ印刷が許可されることになるため、本構成を有さない場合に比較して、確実に印刷制限を行うことができる。
【００１７】
また、請求項４の印刷制限処理プログラムによれば、印刷制限情報を記憶装置から取得できるため、本構成を有さない場合に比較して、印刷制限情報の書き換え等が容易にできることになる。
【００１８】
また、請求項５の印刷制限処理プログラムによれば、印刷制限情報を外部装置から取得できるため、本構成を有さない場合に比較して、ユーザ毎に印刷制限を行う等の運用が容易に行えることになる。
【００１９】
また、請求項６の印刷制限処理プログラムによれば、印刷制限情報を電子情報から取得できるため、本構成を有さない場合に比較して、運用性が向上する。
【００２０】
また、請求項７の印刷制限処理プログラムによれば、印刷制限情報を電子情報から取得できるため、本構成を有さない場合に比較して、運用性の向上とともに、セキュリティを強化することができる。
【００２１】
また、請求項８の情報処理装置によれば、制限内容に規定された制限処理が行える印刷装置で印刷が行われ、また、印刷制限が勝手に解除されることもないため、本構成を有さない場合に比較して、確実に印刷制限を行うことができるので、電子情報のセキュリティを強固にすることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明に係わる印刷制限処理プログラムおよび情報処理装置の実施例について添付図面を参照して詳細に説明する。
【実施例１】
【００２３】
図１は、実施例１に係わる印刷システムの全体構成の一例を示す図である。このコンピュータ１０には、本発明に係わる印刷制限処理プログラムが適用された印刷フックプログラム１２がインストールされている。なお、このプログラムは、ネットワーク等の通信手段により提供することは勿論、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することも可能である。
【００２４】
この印刷システムでは、コンピュータ１０と、プリンタ２０とが通信可能に接続されている。なお、コンピュータ１０とプリンタ２０との間の通信手段は特に問わず、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等で構成されたネットワークにより接続されていてもよいし、ＵＳＢ（Universal Serial Bus）等により直接接続されていてもよい。
【００２５】
コンピュータ１０は、ＣＰＵ(Central Processing Unit)、ＲＯＭ(Read Only Memory)やＲＡＭ(Random Access Memory)等のメモリ、ハードディスク、入出力インターフェース、通信インターフェース等から構成される。ユーザは、このコンピュータ１０上からプリンタ２０の指定、印刷パラメータの指定等を行って印刷を指示することになる。印刷指示には、印刷対象ファイル（電子情報）等のデータが含まれる。
【００２６】
プリンタ２０は、コンピュータ１０からの印刷指示に基づき印刷を行う機能を果たす。プリンタ２０においては、印刷指示に含まれた印刷対象ファイルに基づいて用紙等の記録媒体上に画像を形成することになる。
【００２７】
ここで、コンピュータ１０を構成する機能的な構成の一部について説明する。
【００２８】
コンピュータ１０は、各種処理機能部として、アプリケーションプログラム１１と、印刷フックプログラム１２と、オペレーティングシステム１３と、記憶装置１４とを具備して構成される。
【００２９】
アプリケーションプログラム１１は、文書の作成、編集などを行うための一般的なソフトウェアである。オペレーティングシステム１３は、コンピュータ１０を統括管理するソフトウェアである。オペレーティングシステム１３には、例えば、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ等が該当する。
【００３０】
印刷フックプログラム１２は、オペレーティングシステム１３上の印刷処理に係わるプログラムをフックし印刷制限を行うソフトウェアである。具体的には、オペレーティングシステム１３に設けられた印刷処理に係わるＡＰＩ（Application Program Interface）をフックする。そのため、アプリケーションプログラム１１によるＡＰＩを用いた印刷処理は、この印刷フックプログラム１２を経由して行われる。フックの実現方法は、従来知られている手法を用いればよい。なお、本実施例においては、印刷処理に係わるＡＰＩとしてＷｉｎｄｏｗｓ（登録商標）に設けられた、プリンタの設定／初期化等を行う「OpenPrinter()」、「PrintDlgEx()」をフックする場合について説明する。
【００３１】
この印刷フックプログラム１２は、アプリケーションプログラム１１が起動されると自動的に起動（ロード）されるように設定されている。なお、印刷フックプログラム１２は、予めコンピュータ１０にインストールしておいてもよいし、アプリケーションプログラム１１が初回に起動した際に、印刷フックプログラム１２が自動的にダウンロードされるようにしておいてもよい。
【００３２】
記憶装置１４は、印刷対象ファイル等を含む各種データを記憶する機能を果たす。記憶装置１４は、例えば、ＨＤＤ（Hard Disk Drive）等で実現される。記憶装置１４には印刷制限情報が記憶される。この印刷制限情報は、ユーザが通常操作できない領域（例えば、レジストリ、システムフォルダ等）に格納しておき、改竄を防ぐために、暗号化、ハッシュ値の付与、デジタル署名の付与などを施しておくことが望ましい。なお、この印刷制限情報の詳細については後述するが、本実施例においては、コンピュータ１０毎に印刷制限を行う場合について説明する。以上が、コンピュータ１０を構成する各種処理機能の説明である。
【００３３】
ここで、図２を用いて、印刷制限情報の一例について説明する。なお、ここでは、図２（ａ）〜図２（ｄ）を用いて印刷制限情報に規定された制限内容のバリエーションをいくつか列挙して説明するが、ここに列挙された印刷制限方法に限られず、従来知られている種々の技術を用いることができる。
【００３４】
印刷制限情報には、印刷を許可するための条件を示す「印刷許可条件」と、その詳細な内容を示す「詳細内容」とが制限内容として規定される。
【００３５】
この図２（ａ）に示す制限内容によれば、電子透かし、デジタルコード等を用いてユーザＩＤ、日時、プリンタＩＤを埋め込まなければ印刷が制限されることになる。ここで、プリンタが電子透かし、デジタルコード等を用いた印刷に対応していなければ、当該プリンタでの印刷は禁止されることになる。そのため、ここに規定された制限内容に反した印刷が行われることはない。
【００３６】
また、図２（ｂ）に示す制限内容によれば、印刷パラメータに両面且つ、モノクロが指定されていなければ印刷が制限されることになる。この場合も上記同様に、両面、モノクロを指定した印刷に対応できないプリンタでは、印刷が禁止されることになる。
【００３７】
また、図２（ｃ）に示す制限内容によれば、特定機種以外では印刷が制限されることになる。この場合も上記同様に、ここに指定された機種以外のプリンタでは、印刷が禁止されることになる。
【００３８】
また、図２（ｄ）に示す制限内容によれば、プリンタの設置場所が会議室Ａでなければ印刷が制限されることになる。この場合も上記同様に、会議室Ａ以外に設置されたプリンタでは、印刷が禁止されることになる。以上が、印刷制限情報の一例についての説明であるが、これら別々に説明した印刷制限情報に規定された制限内容を組み合わせて印刷の制限を行うようにしてもよい。
【００３９】
次に、図３を用いて、図１に示す印刷フックプログラム１２を構成する機能的な構成の一部について説明する。
【００４０】
印刷フックプログラム１２は、各種処理機能部として、ＡＰＩ監視部３１と、印刷許可判定部３２と、制限情報取得部３３と、制限処理部３４と、制御部３５とを具備して構成される。
【００４１】
ＡＰＩ監視部３１は、印刷処理に係わるＡＰＩを監視する機能を果たす。ＡＰＩ監視部３１には、ＡＰＩ呼び出し指示検出部３１ａが設けられ、監視対象のＡＰＩに対するアプリケーションプログラム１１からの呼び出し指示を検出する。
【００４２】
印刷許可判定部３２は、ＡＰＩ呼び出し指示検出部３１ａによる呼び出し指示の検出に対応して、当該プリンタでの印刷を許可するか否かを判定する機能を果たす。この判定は、上述した印刷制限情報に基づき行われる。なお、ここで言う当該プリンタとは、ＡＰＩの引数に設定されたプリンタ、ＡＰＩの呼び出しにより取得されたプリンタ等を指す。
【００４３】
制限情報取得部３３は、印刷制限情報を取得する機能を果たす。すなわち、レジストリ等に記憶された印刷制限情報を取得する。この取得した印刷制限情報は、印刷許可判定部３２および制限処理部３４に渡される。
【００４４】
制限処理部３４は、印刷制限処理を行う機能を果たす。制限処理部３４における印刷制限処理は、制限情報取得部３３により取得された印刷制限情報に基づき行われる。
【００４５】
制御部３５は、印刷フックプログラム１２における処理を統括制御する機能を果たす。この印刷フックプログラム１２上に構成される各種処理機能は、この制御部３５からの指示に従って動作する。また、制御部３５では、各処理機能間で発生するデータの入出力も制御する。以上が、印刷フックプログラム１２を構成する各種処理機能の説明である。
【００４６】
ここで、図４および図５を用いて、印刷フックプログラム１２によるＡＰＩフック処理について、いくつか例を挙げて説明する。
【００４７】
まず、図４を用いて、「OpenPrinter()」をフックして印刷制限を行う場合の動作について説明する。なお、「OpenPrinter()」は、プリンタハンドルの取得を行う機能を果たす。
【００４８】
アプリケーションプログラム１１から「OpenPrinter()」の呼び出しが指示されると、印刷フックプログラム１２のＡＰＩ呼び出し指示検出部３１ａにおいて、その呼び出し指示が検出される（ステップＳ１０１）。なお、この「OpenPrinter()」の呼び出し指示時には、プリンタ名等が引数として設定される。
【００４９】
呼び出し指示が検出されると、印刷フックプログラム１２の制限情報取得部３３は、印刷制限情報を取得し読み込みを行う（ステップＳ１０２）。ここで、印刷制限情報の取得に失敗した場合には（ステップＳ１０３でＹＥＳ）、この結果を受けた制御部３５が、アプリケーションプログラム１１に「OpenPrinter()」の呼び出し結果エラーを返して（ステップＳ１０７）、この処理を終了することになるが、印刷制限情報の取得に成功した場合には（ステップＳ１０３でＮＯ）、印刷フックプログラム１２は次に、印刷許可判定部３２において、指定されたプリンタでの印刷を許可するか否かの判定を行う（ステップＳ１０４）。この判定では、「OpenPrinter()」の引数に設定されたプリンタが制限内容に規定された制限処理に対応していれば印刷許可と判定されることになるが、当該プリンタが規定された制限処理に未対応であれば印刷禁止と判定されることになる。例えば、図２（ａ）に示す制限内容が規定されていた場合には、プリンタが電子透かし、デジタルコードに対応しているか否かが判定され、プリンタがこれら機能に対応していなければ印刷禁止と判定されることになる。
【００５０】
判定の結果、印刷禁止（許可しない）と判定された場合には（ステップＳ１０５でＮＯ）、この結果を受けた制御部３５が、アプリケーションプログラム１１に「OpenPrinter()」の呼び出し結果エラーを返して（ステップＳ１０７）、この処理を終了することになるが、印刷許可と判定された場合には（ステップＳ１０５でＹＥＳ）、制限処理部３４において、印刷制限情報に規定された制限内容に基づく印刷制限処理が行われた後（ステップＳ１０６）、この処理は終了する。この印刷制限処理では、例えば、制限内容に電子透かしで所定の文言を印刷しなければならない旨規定されていた場合には、当該文言を埋め込んだ電子透かしが設定されることになる。
【００５１】
次に、図５を用いて、「PrintDlgEx()」をフックして印刷制限を行う場合の動作について説明する。なお、「PrintDlgEx()」は、プリンタの指定と印刷パラメータの指定とをユーザに行わせるためのダイアログを表示器に表示させる機能を果たす。具体的には、ユーザにプリンタの指定と印刷パラメータの指定とを行わせ、その呼び出し結果として、ユーザがダイアログから選択したプリンタ（プリンタハンドル）と設定した印刷パラメータとを取得する。
【００５２】
アプリケーションプログラム１１から「PrintDlgEx()」の呼び出しが指示されると、印刷フックプログラム１２のＡＰＩ呼び出し指示検出部３１ａにおいて、その呼び出し指示が検出される（ステップＳ２０１）。
【００５３】
呼び出し指示が検出されると、印刷フックプログラム１２は、制御部３５において、「PrintDlgEx()」の呼び出しを行うとともに（ステップＳ２０２）、制限情報取得部３３において、印刷制限情報を取得し読み込みを行う（ステップＳ２０３）。ここで、印刷制限情報の取得に失敗した場合には（ステップＳ２０４でＹＥＳ）、この結果を受けた制御部３５が、アプリケーションプログラム１１に「PrintDlgEx()」の呼び出し結果エラーを返して（ステップＳ２０８）、この処理を終了することになるが、印刷制限情報の取得に成功した場合には（ステップＳ２０４でＮＯ）、印刷フックプログラム１２は次に、印刷許可判定部３２において、当該ＡＰＩの呼び出しにより取得したプリンタでの印刷を許可するか否かの判定を行う（ステップＳ２０５）。この判定では、「PrintDlgEx()」の呼び出しにより取得したプリンタ（実際にはプリンタハンドル）が制限内容に規定された制限処理に対応していれば印刷許可と判定されることになるが、当該プリンタが規定された制限処理に未対応であれば印刷禁止と判定されることになる。
【００５４】
判定の結果、印刷禁止（許可しない）と判定された場合には（ステップＳ２０６でＮＯ）、この結果を受けた制御部３５が、アプリケーションプログラム１１に「PrintDlgEx()」の呼び出し結果エラーを返して（ステップＳ２０８）、この処理を終了することになるが、印刷許可と判定された場合には（ステップＳ２０６でＹＥＳ）、制限処理部３４において、印刷制限情報に規定された制限内容に基づく印刷制限処理が行われた後（ステップＳ２０７）、この処理は終了する。
【００５５】
なお、コンピュータ１０にプリンタ２０が複数接続されている場合、「PrintDlgEx()」は、ダイアログを表示して複数のプリンタの中から一つのプリンタをユーザに選択させるといった処理を行うので、「PrintDlgEx()」を呼び出した結果、選択されたプリンタに対して、上記の印刷許可判定を行えばよいことになる。
【００５６】
また、Ｗｉｎｄｏｗｓ（登録商標）では、複数のプリンタが選択されるようなＡＰＩを持たないので上記のような処理で十分であるが、他のＯＳのＡＰＩでは、ＡＰＩの呼び出し結果として複数のプリンタハンドルを返すようなＡＰＩが存在する可能性がある。そのような場合には、取得したプリンタ全てに対して上述した判定を行い、その結果に基づき印刷制限を行えばよい。
【実施例２】
【００５７】
次に、実施例２について説明する。実施例２においては、ユーザ毎に印刷制限を行う場合について説明する。
【００５８】
図６は、実施例２に係わる印刷システムの全体構成の一例を示す図である。なお、上記実施例１を説明した図１と同一の符号が付してあるものは、略同様に動作するため、ここでは相違点についてのみ説明する。
【００５９】
この印刷システムには、上記実施例１の構成に加えて、印刷制限情報管理サーバ４０が設けられる。印刷制限情報管理サーバ４０は、コンピュータ１０と通信可能に接続されている。なお、コンピュータ１０と印刷制限情報管理サーバ４０との間の通信手段は特に問わず、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等で構成されたネットワークにより接続されていてもよいし、ＵＳＢ（Universal Serial Bus）等により直接接続されていてもよい。
【００６０】
印刷制限情報管理サーバ４０は内部に、印刷制限情報を保持する。すなわち、実施例１においては、コンピュータ１０内に印刷制限情報が保持されていたのに対して、実施例２においては、印刷制限情報管理サーバ４０内において印刷制限情報が保持されることになる。印刷制限情報管理サーバ４０では、コンピュータ１０からの問い合わせに応じてこの印刷制限情報に規定された制限内容を応答する。
【００６１】
ここで、図７を用いて、印刷制限情報の一例について説明する。なお、実施例２においても、上記実施例１同様に様々なバリエーションの制限内容の規定が可能である。
【００６２】
実施例２に係わる印刷制限情報には、ユーザ識別子としての機能を果たす「ユーザＩＤ」に対応して、印刷を許可するための条件を示す「印刷許可条件」と、その詳細な内容を示す「詳細内容」とが制限内容として規定される。すなわち、ユーザ毎に制限内容が切り替えて規定されている。
【００６３】
この図７に示す制限内容によれば、ユーザＡ、ユーザＢ共に電子透かし、デジタルコード等により何らかの情報を埋め込まなければ印刷が制限されることになるが、ユーザＡの場合には、ユーザＩＤ、日時、プリンタＩＤの埋め込みが必要となり、ユーザＢの場合には、”複写禁止”文言の埋め込みが必要となる。
【００６４】
なお、実施例２に係わる印刷フックプログラム１２によるＡＰＩフック処理については、上記実施例１を説明した図４、図５と略同様の動作となるため、その動作についての説明は省略する。実施例１からの変更点としては、印刷制限情報の取得に際して、ユーザＩＤを指定して印刷制限情報管理サーバ４０に制限内容の問い合わせを行い、その応答として当該ユーザに対応した制限内容を取得し、かかる制限内容に基づきユーザ毎に異なった印刷制限処理を行うところである。
【００６５】
以上が、実施例２についての説明である。なお、実施例２においては、印刷制限情報を印刷制限情報管理サーバ４０に保持する場合について説明したが、実施例１同様にコンピュータ１０内に保持するようにしてもよい。
【００６６】
また、印刷制限情報が付与されていないユーザが存在する場合には、そのユーザによるＡＰＩの呼び出しをエラーとするようにしてもよいし、また、ＡＰＩの呼び出しをそのまま許容するようにしてもよい。これは、当該システムにおけるポリシーに従って適宜調整すればよい。
【実施例３】
【００６７】
次に、実施例３について説明する。実施例３においては、ファイルに印刷制限情報を付加し、ファイル毎に印刷制限を行う場合について説明する。
【００６８】
図８は、実施例３に係わる印刷システムの全体構成の一例を示す図である。なお、上記実施例１を説明した図１と同一の符号が付してあるものは、略同様に動作するため、ここでは相違点についてのみ説明する。
【００６９】
コンピュータ１０には、上記実施例１の構成に加えて、印刷制限情報付加プログラム１５が設けられる。印刷制限情報付加プログラム１５は、ファイルに印刷制限情報を付加する機能を果たす。また、印刷フックプログラム１２においては、ファイルに付加された印刷制限情報を読み出すために、印刷処理に係わるＡＰＩの他、ファイル処理に係わるＡＰＩもフックすることになる。
【００７０】
ここで、図９を用いて、印刷制限情報付加プログラム１５の動作について説明する。なお、ここでは、「Microsoft Office」で作成されたファイルに対して、ユーザＩＤを埋め込んだ電子透かしを印刷制限情報として付加する場合の動作について説明する。
【００７１】
ユーザにより対象ファイルが指定されると（ステップＳ３０１）、この処理は開始される。この処理が開始されると、印刷制限情報付加プログラム１５は、まず、ユーザに指定された印刷制限情報を当該ファイルに付加する（ステップＳ３０２）。この場合、対象ファイルが「Microsoft Office」で作成されているため、「Microsoft Office」が提供するＳＤＫ（Software Development Kit）を用いる。具体的には、ＳＤＫを用いて「ＦＸＰＲＩＮＴ」という属性名に対して属性値「Ｄｉｇｉｔａｌｗａｔｅｒｍａｒｋ：ユーザＩＤ」を設定し、ユーザＩＤを埋め込んだ電子透かしを印刷制限情報として付加する。但し、この方法では、ユーザにより改竄されてしまう可能性があるため、セキュリティを強固にしたい場合にはＤＲＭ技術などを利用する必要がある。
【００７２】
そして、印刷制限情報が付加されたファイルが上書き保存（あるいは別のファイルとして保存）された後（ステップＳ３０３）、この処理は終了する。
【００７３】
ここで、図１０から図１２を用いて、印刷フックプログラム１２によるＡＰＩフック処理について説明する。
【００７４】
まず、図１０を用いて、印刷制限情報を取得する際の動作について説明する。この処理では主に、「CreateFile()」をフックする。なお、「CreateFile()」は、ファイルをオープンする機能を果たす。
【００７５】
アプリケーションプログラム１１から「CreateFile()」の呼び出しが指示されると、印刷フックプログラム１２のＡＰＩ呼び出し指示検出部３１ａにおいて、その呼び出し指示が検出される（ステップＳ４０１）。なお、この「CreateFile()」の呼び出し指示時には、処理対象となるファイルのファイル名等が引数として設定される。
【００７６】
呼び出し指示が検出されると、印刷フックプログラム１２の制限情報取得部３３は、処理対象となるファイルから「ＦＸＰＲＩＮＴ」属性の属性値を取得し読み出す（ステップＳ４０２）。この処理対象となるファイルとは、「CreateFile()」の引数に設定されたファイルのことである。
【００７７】
ここで、取得した属性値に値が設定されていなかった場合には（ステップＳ４０３でＮＯ）、この結果を受けた制御部３５が、「CreateFile()」を呼び出し処理対象となるファイルをオープンした後（ステップＳ４０５）、この処理は終了することになるが、取得した属性値に値が設定されていた場合には（ステップＳ４０３でＹＥＳ）、この結果を受けた制御部３５は、その値を印刷制限情報としてバッファ上に展開するとともに（ステップＳ４０４）、「CreateFile()」を呼び出し処理対象となるファイルをオープンする（ステップＳ４０５）。そして、この処理は終了する。
【００７８】
次に、図１１および図１２を用いて、印刷制限を行う際の処理について、いくつか例を挙げて説明する。
【００７９】
まず、図１１を用いて、「OpenPrinter()」をフックして印刷制限を行う場合の動作について説明する。なお、「OpenPrinter()」は、プリンタハンドルの取得を行う機能を果たす。
【００８０】
アプリケーションプログラム１１から「OpenPrinter()」の呼び出しが指示されると、印刷フックプログラム１２のＡＰＩ呼び出し指示検出部３１ａにおいて、その呼び出し指示が検出される（ステップＳ５０１）。なお、この「OpenPrinter()」の呼び出し指示時には、プリンタ名等が引数として設定される。
【００８１】
呼び出し指示が検出されると、印刷フックプログラム１２の制御部３５は、バッファ上に印刷制限情報が展開されているか否かを確認する（ステップＳ５０３）。ここで、印刷制限情報が展開されていなかった場合には（ステップＳ５０３でＮＯ）、この結果を受けた制御部３５が、「OpenPrinter()」を呼び出し、その結果をアプリケーションプログラム１１に返して（ステップＳ５０７）、この処理を終了することになるが、印刷制限情報が展開されていた場合には（ステップＳ５０３でＹＥＳ）、印刷フックプログラム１２は次に、印刷許可判定部３２において、指定されたプリンタでの印刷を許可するか否かの判定を行う（ステップＳ５０４）。この判定では、「OpenPrinter()」の引数に設定されたプリンタが制限内容に規定された制限処理に対応していれば印刷許可と判定されることになるが、当該プリンタが規定された制限処理に未対応であれば印刷禁止と判定されることになる。例えば、図２（ａ）に示す制限内容が規定されていた場合には、プリンタが電子透かし、デジタルコードに対応しているか否かが判定され、プリンタがこれら機能に対応していなければ印刷禁止と判定されることになる。
【００８２】
判定の結果、印刷禁止（許可しない）と判定された場合には（ステップＳ５０５でＮＯ）、この結果を受けた制御部３５が、アプリケーションプログラム１１に「OpenPrinter()」の呼び出し結果エラーを返して（ステップＳ５０７）、この処理を終了することになるが、印刷許可と判定された場合には（ステップＳ５０５でＹＥＳ）、制限処理部３４において、印刷制限情報に規定された制限内容に基づく印刷制限処理が行われた後（ステップＳ５０６）、この処理は終了する。この印刷制限処理では、例えば、制限内容に電子透かしで所定の文言を印刷しなければならない旨規定されていた場合には、当該文言を埋め込んだ電子透かしが設定されることになる。
【００８３】
次に、図１２を用いて、「PrintDlgEx()」をフックして印刷制限を行う場合の動作について説明する。なお、「PrintDlgEx()」は、プリンタの指定と印刷パラメータの指定とをユーザに行わせるためのダイアログを表示器に表示させる機能を果たす。具体的には、ユーザにプリンタの指定と印刷パラメータの指定とを行わせ、その呼び出し結果として、ユーザがダイアログから選択したプリンタ（プリンタハンドル）と設定した印刷パラメータとを取得する。
【００８４】
アプリケーションプログラム１１から「PrintDlgEx()」の呼び出しが指示されると、印刷フックプログラム１２のＡＰＩ呼び出し指示検出部３１ａにおいて、その呼び出し指示が検出される（ステップＳ６０１）。
【００８５】
呼び出し指示が検出されると、印刷フックプログラム１２の制御部３５は、「PrintDlgEx()」の呼び出しを行うとともに（ステップＳ６０２）、バッファ上に印刷制限情報が展開されているか否かの確認を行う（ステップＳ６０３）。ここで、印刷制限情報が展開されていなかった場合には（ステップＳ６０４でＮＯ）、この結果を受けた制御部３５が、「PrintDlgEx()」を呼び出し、その結果をアプリケーションプログラム１１に返して（ステップＳ６１０）、この処理を終了することになるが、印刷制限情報が展開されていた場合には（ステップＳ６０４でＹＥＳ）、印刷フックプログラム１２は次に、印刷許可判定部３２において、当該ＡＰＩの呼び出しにより取得したプリンタでの印刷を許可するか否かの判定を行う（ステップＳ６０５）。この判定では、「PrintDlgEx()」の呼び出しにより取得したプリンタ（実際にはプリンタハンドル）が制限内容に規定された制限処理に対応していれば印刷許可と判定されることになるが、当該プリンタが規定された制限処理に未対応であれば印刷禁止と判定されることになる。
【００８６】
判定の結果、印刷禁止（許可しない）と判定された場合には（ステップＳ６０６でＮＯ）、この結果を受けた制御部３５が、アプリケーションプログラム１１に「PrintDlgEx()」の呼び出し結果エラーを返して（ステップＳ６０８）、この処理を終了することになるが、印刷許可と判定された場合には（ステップＳ６０６でＹＥＳ）、制限処理部３４において、印刷制限情報に規定された制限内容に基づく印刷制限処理が行われた後（ステップＳ６０７）、この処理は終了する。なお、複数のプリンタが接続されている場合、あるいは、ＡＰＩの呼び出し結果として複数のプリンタが選択し得る場合に関しては、上記実施例１の場合と同様である。
【実施例４】
【００８７】
次に、実施例４について説明する。実施例４においては、ファイルとユーザとに応じて印刷制限を行う場合について説明する。なお、上記実施例３との違いは、ＤＲＭ技術と組み合わせる点にある。具体的には、ファイルを暗号化しておき、そのファイルに対するライセンスとして印刷制限情報を与えることになる。
【００８８】
図１３は、実施例４に係わる印刷システムの全体構成の一例を示す図である。なお、上記実施例１を説明した図１と同一の符号が付してあるものは、略同様に動作するため、ここでは相違点についてのみ説明する。
【００８９】
この印刷システムは、上記実施例１の構成に加えて、ライセンスサーバ５０が設けられる。ライセンスサーバ５０は、コンピュータ１０と通信可能に接続されている。なお、コンピュータ１０とライセンスサーバ５０との間の通信手段は特に問わず、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等で構成されたネットワークにより接続されていてもよいし、ＵＳＢ（Universal Serial Bus）等により直接接続されていてもよい。
【００９０】
ライセンスサーバ５０は内部に、ライセンス情報と印刷制限情報とを保持する。ライセンス情報には、コンテンツ識別子としての機能を果たす「コンテンツＩＤ」に対応して、暗号化コンテンツを開くための「コンテンツ鍵」が保持される。ライセンスサーバ５０では、コンピュータ１０からのコンテンツＩＤを指定した問い合わせに応じてコンテンツ鍵を応答する。また、印刷制限情報には、図１４に示すように、ユーザ識別子としての機能を果たす「ユーザＩＤ」と、コンテンツ識別子としての機能を果たす「コンテンツＩＤ」とに対応して、印刷を許可するための条件を示す「印刷許可条件」と、その詳細な内容を示す「詳細内容」とが制限内容として規定される。
【００９１】
ここで、コンピュータ１０は、上記実施例１の構成に加えて、カプセル化プログラム１６を具備して構成される。カプセル化プログラム１６は、一般的なＤＲＭ技術におけるカブセル化（暗号化）処理を行う。すなわち、ユーザにファイルが指定されると、ライセンスサーバ５０からコンテンツＩＤ、コンテンツ鍵の発行を受け、当該鍵を用いて当該ファイルの暗号化を行う。この暗号化されたファイル（ＤＲＭ保護ファイル）には、コンテンツＩＤが埋め込まれる。なお、この暗号化されたファイルの使用に際しては、ファイルに埋め込まれたコンテンツＩＤを取得し、当該ＩＤに対応するコンテンツ鍵をライセンスサーバ５０から取得して、当該ファイルを復号化する。
【００９２】
また、印刷フックプログラム１２においては、ＤＲＭ保護ファイルを復号しコンテンツＩＤを読み出すために、印刷処理に係わるＡＰＩの他、ファイル処理に係わるＡＰＩもフックすることになる。
【００９３】
ここで、図１５および図１６を用いて、印刷フックプログラム１２によるＡＰＩフック処理について説明する。
【００９４】
まず、図１５を用いて、コンテンツ鍵と印刷制限情報とを取得する際の動作について説明する。この処理では主に、「CreateFile()」をフックする。なお、「CreateFile()」は、ファイルをオープンする機能を果たす。
【００９５】
アプリケーションプログラム１１から「CreateFile()」の呼び出しが指示されると、印刷フックプログラム１２のＡＰＩ呼び出し指示検出部３１ａにおいて、その呼び出し指示が検出される（ステップＳ７０１）。なお、この「CreateFile()」の呼び出し指示時には、処理対象となるファイルのファイル名等が引数として設定される。
【００９６】
呼び出し指示が検出されると、印刷フックプログラム１２の制限情報取得部３３は、処理対象となるファイルからコンテンツＩＤを取得し（ステップＳ７０２）、このコンテンツＩＤと、コンピュータ１０を現在利用しているユーザのユーザＩＤとを用いてライセンスサーバ５０にライセンスの問い合わせを行う（ステップＳ７０３）。
【００９７】
ここで、この問い合わせに対する応答がなければ（ステップＳ７０４でＮＯ）、この結果を受けた制御部３５が、アプリケーションプログラム１１に「CreateFile()」の呼び出し結果エラーを返して（ステップＳ７０７）、この処理を終了することになるが、問い合わせに対する応答があれば（ステップＳ７０４でＹＥＳ）、この結果を受けた制御部３５は、この応答により取得したコンテンツＩＤと印刷制限情報とをバッファ上に展開する（ステップＳ７０５）。その後、制御部３５により、「CreateFile()」が呼び出され処理対象となるファイルがオープンされると（ステップＳ７０６）、この処理は終了する。
【００９８】
次に、図１６を用いて、暗号化されたＤＲＭ保護ファイルを読み込む際の処理について説明する。この処理では主に、「ReadFile()」をフックする。なお、「ReadFile()」は、オープンされているファイルからデータを読み出す機能を果たす。
【００９９】
アプリケーションプログラム１１から「ReadFile()」の呼び出しが指示されると、印刷フックプログラム１２のＡＰＩ呼び出し指示検出部３１ａにおいて、その呼び出し指示が検出される（ステップＳ８０１）。なお、この「ReadFile()」の呼び出し指示時には、処理対象となるファイルに割り当てられたファイルハンドル、読み出しバイト数等が引数として設定される。
【０１００】
呼び出し指示を検出すると、印刷フックプログラム１２の制御部３５は、バッファ上に展開されたコンテンツ鍵を取得する（ステップＳ８０２）。ここで、このコンテンツ鍵の取得に失敗した場合には（ステップＳ８０３でＹＥＳ）、この結果を受けた制御部３５が、「ReadFile()」の呼び出し結果をエラーとしてアプリケーションプログラム１１に返した後（ステップＳ８０５）、この処理を終了することになるが、コンテンツ鍵の取得に成功した場合には（ステップＳ８０３でＮＯ）、この結果を受けた制御部３５は、取得したコンテンツ鍵を用いて処理対象ファイルを復号する。そして、その結果をアプリケーションプログラム１１に返した後（ステップＳ８０４）、この処理は終了する。
【０１０１】
なお、実施例４に係わる印刷フックプログラム１２における印刷制限を行う際の処理は、上記実施例３を説明した図１１、図１２と略同様の動作となるため、その説明は省略する。実施例３からの変更点としては、ライセンスとして与えられた印刷制限情報を用いて、ファイル毎に印刷制限を行う点である。
【０１０２】
以上が本発明の代表的な実施形態の一例であるが、本発明は、上記および図面に示す実施例に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。
【０１０３】
例えば、上記実施例においては、Ｗｉｎｄｏｗｓ（登録商標）に設けられたＡＰＩをフックする場合について説明したが、他のオペレーティングシステムにもこれと同等のＡＰＩが用意されているので、他のオペレーティングシステムの場合には、それら同等のＡＰＩをフックすれば上記同様の処理が行えることになる。
【産業上の利用可能性】
【０１０４】
本発明の印刷制限処理プログラムおよび情報処理装置は、各種処理をコンピュータに実行させる印刷制限処理プログラム、および情報処理装置全般に適用可能である。
【図面の簡単な説明】
【０１０５】
【図１】実施例１に係わる印刷システムの全体構成の一例を示す図である。
【図２】実施例１に係わる印刷制限情報の一例を示す図である。
【図３】図１に示す印刷フックプログラム１２を構成する機能的な構成の一部を示す図である。
【図４】図１に示す印刷フックプログラム１２によるＡＰＩフック処理の動作を示す第１のフローチャートである。
【図５】図１に示す印刷フックプログラム１２によるＡＰＩフック処理の動作を示す第２のフローチャートである。
【図６】実施例２に係わる印刷システムの全体構成の一例を示す図である。
【図７】実施例２に係わる印刷制限情報の一例を示す図である。
【図８】実施例３に係わる印刷システムの全体構成の一例を示す図である。
【図９】図８に示す印刷制限情報付加プログラム１５の動作を示すフローチャートである。
【図１０】図８に示す印刷フックプログラム１２によるＡＰＩフック処理の動作を示す第１のフローチャートである。
【図１１】図８に示す印刷フックプログラム１２によるＡＰＩフック処理の動作を示す第２のフローチャートである。
【図１２】図８に示す印刷フックプログラム１２によるＡＰＩフック処理の動作を示す第３のフローチャートである。
【図１３】実施例４に係わる印刷システムの全体構成の一例を示す図である。
【図１４】実施例４に係わる印刷制限情報の一例を示す図である。
【図１５】図１３に示す印刷フックプログラム１２によるＡＰＩフック処理の動作を示す第１のフローチャートである。
【図１６】図１３に示す印刷フックプログラム１２によるＡＰＩフック処理の動作を示す第２のフローチャートである。
【符号の説明】
【０１０６】
１０    コンピュータ
１１    アプリケーションプログラム
１２    印刷フックプログラム
１３    オペレーティングシステム
１４    記憶装置
１５    印刷制限情報付加プログラム
１６    カプセル化プログラム
２０    プリンタ
３１    ＡＰＩ監視部
３１ａ    ＡＰＩ呼び出し指示検出部
３２    印刷許可判定部
３３    制限情報取得部
３４    制限処理部
３５    制御部
【図１】
2008134820.tif 000003
【図２】
2008134820.tif 000004
【図３】
2008134820.tif 000005
【図４】
2008134820.tif 000006
【図５】
2008134820.tif 000007
【図６】
2008134820.tif 000008
【図７】
2008134820.tif 000009
【図８】
2008134820.tif 000010
【図９】
2008134820.tif 000011
【図１０】
2008134820.tif 000012
【図１１】
2008134820.tif 000013
【図１２】
2008134820.tif 000014
【図１３】
2008134820.tif 000015
【図１４】
2008134820.tif 000016
【図１５】
2008134820.tif 000017
【図１６】
2008134820.tif 000018