説明

印刷システム、プリンタ、サーバ、クライアント、コンピュータプログラム及び印刷方法

【課題】印刷システム内に保存されている間に印刷データが改竄されて再保存されたとしても、その改竄の事実が検出できるようにする。
【解決手段】クライアント102が印刷データを生成し、その印刷データをサーバ104が保存する。この時、サーバ104(又はクライアント102)が、その印刷データのハッシュ値(第1のハッシュ値)を計算し、プリンタ106がその第1ハッシュ値を保存する。その後、ユーザ認証が行われると、プリンタ106は、そのユーザの印刷データをサーバ104から取得し、その印刷データのハッシュ値(第2のハッシュ値)を算出し、その第2のハッシュ値と保存されていた第1のハッシュ値とを比較する。比較の結果、一致が得られれば、その印刷データが改竄されてないことを意味するので、プリンタ106は印刷出力を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般には、認証印刷に好適な印刷システム、プリンタ、サーバ、クライアント、コンピュータプログラム及び印刷方法に関し、特に、印刷データが改竄されたか否かを確認するための技術に関する。
【背景技術】
【0002】
ネットワークを通じて印刷データが転送される印刷システムにおいて、印刷データの盗み取りに対する防御として、ホストコンピュータとプリンタとの間でデータを暗号化する方法が知られている(例えば特許文献1)。しかし、この方法では、プリンタ側にて受信したデータを復号化する必要があり、印刷データのサイズによっては、短時間での復号化には非常に高い処理能力を必要とする。従って、ファーストプリントが遅くなる場合がある。
【0003】
ファーストプリントを素早く行うことができるとともに、データの改竄を防止できるようにするために、印刷データを小さなデータ断片(チャンク)に分割し、チャンクごとのハッシュ値を算出し、各チャンクのハッシュ値をそれとは異なる所定のチャンクに付加して1単位の送信データとし、その1単位の送信データをネットワークプリンタへ送信するという方法も知られている(例えば特許文献2)。
【0004】
ところで、クライアントから出力された印刷データをシステム内に一時的に保存し、その後に、所定のイベントに応答して印刷出力をする印刷システムが知られている。その典型例は、認証印刷(又は親展印刷)システムである(例えば、特許文献3、4)。認証印刷システムは、上記イベントとしての認証が実施されて初めて、保存されていたそのユーザの印刷ジョブの印刷出力を行う。
【0005】
この種の印刷システムでは、特許文献1、2が問題視しているネットワーク上での転送時より、システム内に保存されている間の方が、印刷データが改竄される危険性がより高い。
【0006】
【特許文献1】特開2004―86894号公報(要約書)
【特許文献2】特開2006−11857号公報(要約書)
【特許文献3】特開2002−370407号公報(要約書)
【特許文献4】特許3054230号公報(図1)
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記のようにシステム内に保存されている間に印刷データが改竄される危険性がある印刷システムにおいては、特許文献2に開示された、印刷データを複数のチャンクに分割して、それらのチャンクにハッシュを付加する方法でも、安全性が十分であるとはいえない。何故なら、システム内に保存されている間に、それらのチャンクを盗み取り、それらのチャンクから元の印刷データを復元し、その印刷データを改竄して再び複数チャンクに分割し、それらチャンクのハッシュを再算出して他の所定のチャンクに付加し、そして、それら新たなハッシュの付いた新たなチャンクをシステムに保存し直すことにより、改竄の事実が隠ぺいできるからである。
【0008】
従って、本発明の目的は、印刷システム内に保存されている間に印刷データが改竄されて再保存されたとしても、その改竄の事実が検出できるようにすることにある。
【課題を解決するための手段】
【0009】
本発明の第1の側面に従う印刷システムは、印刷データを保存する印刷データ保存手段と、前記印刷データの第1のハッシュ値を算出する第1ハッシュ値算出手段と、前記第1のハッシュ値を前記印刷データから分離して保存する第1ハッシュ値保存手段と、前記第1のハッシュ値が算出された時より後の時に、前記印刷データ保存手段に保存されている前記印刷データの第2のハッシュ値を算出する第2ハッシュ値算出手段と、前記第2のハッシュ値と、前記第1ハッシュ値保存手段に保存されている前記第1のハッシュ値とを比較する比較手段と、前記印刷データを印刷出力する印刷出力手段とを備える。
【0010】
この印刷システムにおいては、保存される印刷データのハッシュ値(第1のハッシュ値)が算出され、以後、その第1のハッシュ値が印刷データから分離して保存される。その後の任意の時(典型的には、その印刷データの改竄の有無をチェックしたい時)に、保存されていた印刷データのハッシュ値(第2のハッシュ値)が再び算出され、その第2のハッシュ値と、先に算出され保存されていた第1のハッシュ値とが比較される。その結果、印刷データが保存中に改竄されていなかったかどうかがチェックできる。第1のハッシュ値が印刷データから分離されて保存されるので、保存されている印刷データを改竄しても、それだけでは第1のハッシュ値を改竄することができない。よって、印刷データの改竄の事実を隠ぺいすることが難しい。ハッシュ値を算出してチェックする処理は、暗号化された印刷データを複合化する処理に比べて、より高速に行える。
【0011】
ここで、第1及び第2のハッシュ値の算出は、印刷データの全体について行われてもよいし、或いは、印刷データを分割した複数の部分データのそれぞれについて行われてもよい。いずれにしても、ハッシュ値は、印刷データから分離されて保存される。
【0012】
本発明の印刷システムの好適な実施形態では、前記印刷データが前記印刷データ保存手段に書き込まれるときに、前記第1ハッシュ値算出手段が前記第1のハッシュ値を算出し、また、前記印刷出力手段が前記印刷データ保存手段に保存されている前記印刷データを印刷出力しようとするときに、前記第2ハッシュ値算出手段が前記第2のハッシュ値を算出する。
【0013】
従って、印刷データを保存するときに第1のハッシュ値が算出されて、以後保存される。その後、印刷データを印刷出力しようとするときに、第2のハッシュ値が算出される。第1と第2のハッシュ値を比較することで、印刷データが保存されていた全期間中に改竄がなかったか否かがチェックできる。
【0014】
また、好適な実施形態では、印刷システムは複数のマシンを有し、一つのマシンが前記印刷データ保存手段を有し、別のマシンが前記第1ハッシュ値保存手段を有する。従って、印刷データと第1のハッシュ値とは異なるマシンに保存される。第1のマシンに保存されている印刷データが改竄されても、第1のハッシュ値は第2のマシンに保存されていて改竄されないから、改竄の事実を隠ぺいできない。印刷データの改竄がなかったか否かのチェックの信頼性が高い。
【0015】
より具体的な一つの実施形態では、印刷システムは、前記印刷データを出力するクライアントに通信可能に接続されたサーバと、前記サーバに通信可能に接続されたプリンタとを上記複数のマシンとして備える。
【0016】
そして、前記サーバが、前記クライアントから受信した前記印刷データを保存する前記印刷データ保存手段と、前記クライアントから受信した前記印刷データの第1のハッシュ値を算出する前記第1ハッシュ値算出手段と、前記第1ハッシュ値算出手段で算出された前記第1のハッシュ値を前記プリンタへ送信する第1ハッシュ値送信手段と、前記印刷データ保存手段内の前記印刷データを前記プリンタへ送信する印刷データ送信手段とを有する。
【0017】
また、前記プリンタが、前記第1のハッシュ値を前記サーバの前記第1ハッシュ値送信手段から受信する第1ハッシュ値受信手段と、前記サーバの前記第1ハッシュ値送信手段から受信された前記第1のハッシュ値を保存する前記第1ハッシュ値保存手段と、前記第1のハッシュ値が算出された時より後の時に、前記印刷データ保存手段内の前記印刷データを前記サーバの前記印刷データ送信手段から受信する印刷データ受信手段と、前記サーバの前記印刷データ送信手段から受信された前記印刷データの前記第2のハッシュ値を算出する前記第2ハッシュ値算出手段と、前記比較手段と、前記サーバの前記印刷データ送信手段から受信された前記印刷データを印刷出力する前記印刷出力手段とを有する。
【0018】
従って、サーバで印刷データが保存され、第1のハッシュ値が計算される。その第1のハッシュ値が、印刷データから分離されてプリンタに送られてプリンタに保存される。プリンタは、サーバから印刷データを受信し、その受信した印刷データについて第2のハッシュ値を計算し、その第2のハッシュ値と保存されていた第1のハッシュ値とを比較する。サーバに保存されている間に印刷データが改竄されても、第1のハッシュ値はプリンタで保存されているので改竄されないから、改竄の事実を隠ぺいできない。サーバからプリンタまでの経路で改竄がなかったか否かがチェックできる。例えば、サーバ内に印刷データを保存し、認証が実行された後にサーバからプリンタへ印刷データが転送されるようになった認証印刷システムにおいては、サーバに保存されている間の印刷データの改竄がチェックできる。
【0019】
上記実施形態において、望ましくは、前記サーバが、前記第1ハッシュ値算出手段で算出された前記第1のハッシュ値を記憶する第1ハッシュ値記憶手段を更に備え、前記プリンタが、所定のタイミングで前記サーバ内の前記第1ハッシュ値記憶手段から前記第1のハッシュ値を検索して前記プリンタ内の前記第1ハッシュ値保存手段に書き込む第1ハッシュ値検索手段を更に備えることができる。
【0020】
この構成によれば、サーバから第1のハッシュ値がプリンタへ送信された時に、例えば電源断或いは障害発生した等の原因で、プリンタが第1のハッシュ値を受信できず、そのため、プリンタ内第1のハッシュ値が保存されない場合がある。その場合であっても、プリンタは、能動的に所定のタイミングで、サーバに記憶されている第1のハッシュ値を検索するので、印刷データの改竄チェックが可能であることが保証される。
【0021】
また、別のより具体的な実施形態では、印刷システムは、前記印刷データを出力するクライアントと、前記クライアントに通信可能に接続されたサーバと、前記クライアント及び前記サーバに通信可能に接続されたプリンタとを、前記複数のマシンとして備える。
【0022】
そして、前記クライアントが、出力しうよとする前記印刷データの前記第1のハッシュ値を算出する前記第1ハッシュ値算出手段と、前記第1ハッシュ値算出手段で算出された前記第1のハッシュ値を前記プリンタへ送信する第1ハッシュ値送信手段とを有する。
【0023】
また、前記サーバが、前記クライアントから受信した前記印刷データを保存する前記印刷データ保存手段と、前記印刷データ保存手段内の前記印刷データを前記プリンタへ送信する印刷データ送信手段とを有する。
【0024】
また、前記プリンタが、前記第1のハッシュ値を前記クラアイントの前記第1ハッシュ値送信手段から受信する第1ハッシュ値受信手段と、前記クライアントの前記第1ハッシュ値送信手段から受信された前記第1のハッシュ値を保存する前記第1ハッシュ値保存手段と、前記第1のハッシュ値が算出された時より後の時に、前記印刷データを前記サーバの前記印刷データ送信手段から受信する印刷データ受信手段と、前記サーバの前記印刷データ送信手段から受信された前記印刷データの前記第2のハッシュ値を算出する前記第2ハッシュ値算出手段と、前記比較手段と、前記サーバの前記印刷データ送信手段から受信された前記印刷データを印刷出力する前記印刷出力手段とを有する。
【0025】
従って、印刷データを出力するクライアントが、第1のハッシュ値を算出してプリンタへ送り、プリンタがその第1のハッシュ値を保存する。クライアントから印刷データはサーバに保存される。クライアントからサーバを経由してプリンタに至るまでの経路における印刷データの改竄の有無がチェックできる。
【0026】
この実施形態において、望ましくは、前記クライアントが、前記第1ハッシュ値算出手段で算出された前記第1のハッシュ値を記憶する第1ハッシュ値記憶手段を更に備え、前記プリンタが、所定のタイミングで前記クライアント内の前記第1ハッシュ値記憶手段から前記第1のハッシュ値を検索して前記プリンタ内の前記第1ハッシュ値保存手段に書き込む第1ハッシュ値検索手段を更に備えることができる。
【0027】
この構成によれば、クライアントから第1のハッシュ値がプリンタへ送信された時に、例えば電源断或いは障害発生した等の原因で、プリンタが第1のハッシュ値を受信できず、そのため、プリンタ内第1のハッシュ値が保存されない場合がある。その場合であっても、プリンタは、能動的に所定のタイミングで、クライアントに記憶されている第1のハッシュ値を検索するので、印刷データの改竄チェックが可能であることが保証される。
【0028】
上述したようなプリンタを含んだいずれの実施形態においても、望ましくは、前記第1ハッシュ値送信手段は、前記印刷データのデータ形式が前記プリンタの機種に適合しているか否かを判断し、前記判断結果が否定ならば、前記印刷データの前記第1のハッシュ値を前記プリンタへ送信することを省略するように構成されてよい。
【0029】
この構成によれば、プリンタの機種が異なれば、プリンタが理解できる印刷データのデータ形式が異なる。或る形式の印刷データを理解できない機種のプリンタには、その印刷データの第1のハッシュ値の無駄な送信が省略され、ネットワークトラフィックが節約される。
【0030】
本発明の別の側面に従うプリンタは、外部マシンから印刷データの第1のハッシュ値を受信する第1ハッシュ値受信手段と、前記外部マシンから受信された前記第1のハッシュ値を保存する第1ハッシュ値保存手段と、前記第1のハッシュ値が算出された時より後の時に、前記外部マシン又は別の外部マシンから前記印刷データを受信する印刷データ受信手段と、前記外部マシン又は前記別の外部マシンから受信された前記印刷データの第2のハッシュ値を算出する前記第2ハッシュ値算出手段と、前記第2ハッシュ値算出手段で算出された前記第2のハッシュ値と、前記第1ハッシュ値保存手段内の前記第1のハッシュ値とを比較する比較手段と、前記外部マシン又は前記別の外部マシンから受信された前記印刷データを印刷出力する前記印刷出力手段とを備える。
【0031】
このプリンタによれば、外部から受信された印刷データの改竄の有無を、その印刷データを受信する時より前に受信されたその印刷データの第1のハッシュ値と、受信され田苑印刷データの第1のハッシュ値との比較結果から、チェックすることができる。第1のハッシュ値が算出されてから印刷データがプリンタに受信されるまでの間に、その印刷データがプリンタ外で改竄されたとしても、第1のハッシュ値がプリンタ内に保存されているため、その第1のハッシュ値は改竄されず、よって、改竄の事実は隠ぺいされない。
【0032】
本発明のまた別の観点に従うサーバは、印刷データを出力するクライアントに通信可能に接続され、かつ印刷データを印刷出力するプリンタに通信可能に接続される。このサーバは、前記クライアントから印刷データを受信して保存する印刷データ保存手段と、前記クライアントから印刷データを受信された前記印刷データの第1のハッシュ値を算出する第1ハッシュ値算出手段と、前記第1のハッシュ値を前記印刷データから分離して前記プリンタへ送信する第1ハッシュ値送信手段と、前記第1のハッシュ値を算出した時より後の時に、前記印刷データ保存手段内の前記印刷データを前記プリンタへ送信する印刷データ送信手段とを備える。
【0033】
このサーバによれば、クライアントから受信した印刷データを保存し、その印刷データの第1のハッシュ値を算出してプリンタへ送信し、また、第1のハッシュ値を算出した時より後の時に、保存してあった印刷データをプリンタへ送信する。従って、プリンタでは、サーバかから受信した第1のハッシュ値を使って、その第1のハッシュ値が算出されてからサーバに保存されている間に印刷データが改竄されたか否かをチェックできる。サーバに保存されている間に印刷データが改竄された場合、それだけでは、プリンタに送信されて保存されている第1のハッシュ値は改ざんできないから、改竄の事実は隠ぺいされない。
【0034】
本発明はまた、上記のサーバとしてコンピュータを機能させるための、機械読み取り可能なコンピュータプログラムも提供する。
【0035】
本発明のさらに別の観点に従うクライアントは、印刷データを保存するサーバに通信可能に接続され、かつ前記サーバに保存されている印刷データを受信して印刷出力するプリンタに通信可能に接続される。このクライアントは、印刷データの第1のハッシュ値を算出する第1ハッシュ値算出手段と、前記第1のハッシュ値を前記プリンタへ送信する第1ハッシュ値送信手段と、前記印刷データを前記サーバへ送信する印刷データ送信手段とを備える。
【0036】
従って、クライアントから出力される印刷データはサーバで保存され、その印刷データの第1のハッシュ値はプリンタで保存される。サーバで保存されている印刷データが改竄されたとしても、それだけでは、プリンタ内の第1のハッシュ値は改竄されない。プリンタは、サーバから印刷データを受信したときに、その印刷データが改竄されてないか否かを、保存してある第1のハッシュ値を用いてチェックできる。
【0037】
本発明はまた、上記のクライアントとしてコンピュータを機能させるための、機械読み取り可能なコンピュータプログラムも提供する。
【0038】
本発明はさらに、上述した印刷システムにより実行される印刷方法も提供する。
【発明の効果】
【0039】
本発明によれば、印刷システム内に保存されている間に印刷データが改竄されて再保存されたとしても、その改竄の事実が検出できる。
【発明を実施するための最良の形態】
【0040】
以下、図面を参照して、本発明にかかる印刷システムの2種類の実施形態を説明する。これらの実施形態は、認証印刷システムに本発明を適用した例であるが、本発明は認証印刷システム以外の印刷システムにも適用できる。
【0041】
図1は、本発明の第1の実施形態にかかる認証印刷システムの構成を示す図である。
【0042】
図1に示すように、認証印刷システム100は、例えばパーソナルコンピュータにより構成されるクライアント102と、クライアント102に通信可能に接続された、例えばパーソナルコンピュータにより構成されるサーバ104と、サーバ104に通信可能に接続されたプリンタ106を備える。プリンタ106は、ユーザの認証を行うため認証装置108を備える(外付けでも内蔵でもよいし、或いは、例えばクライアント102又はサーバ104に設けられているというように、プリンタ106に直接接続されてなくてもよい)。
【0043】
この認証印刷システム100は、認証印刷ジョブ(認証が行われて初めて印刷出力される印刷ジョブ)と、通常印刷ジョブ(認証とは関係がなく、クライアント102から出力されたら直ちに印刷出力してよい印刷ジョブ)の双方を扱うことができる。そして、本発明の原理に基づく制御は、認証印刷ジョブと通常印刷ジョブの双方の処理に適用できる。しかし、この明細書では、通常印刷ジョブの処理には言及せず、認証印刷ジョブの処理についてのみ説明し、単なる「印刷ジョブ」という用語は、認証印刷ジョブを指すものとして使われる。
【0044】
この認証印刷システム100の機能と動作の概要は次のとおりである。
【0045】
(1) サーバ104は、或るユーザ110の印刷データをクライアント102から受信すると、プリンタ106によりその印刷データの印刷出力が完了するまで、その印刷データをサーバ104内で保存する。サーバ104は、その印刷データの保存を開始するとき、その印刷データのハッシュ値(以下、「第1のハッシュ値」という)を算出し、その第1のハッシュ値をプリンタ106に送信する。プリンタ106は、受信された第1のハッシュ値を保存する。
【0046】
(2) その後、プリンタ106は、ユーザ110の認証が行われたときに、そのユーザ110の印刷データをサーバ104から受信し、受信された印刷データのハッシュ値(以下、「第2のハッシュ値」という)を算出し、そして、その第2のハッシュ値を、保存していおいた第1のハッシュ値と比較する。比較の結果、両ハッシュ値が一致すれば、その印刷データが保存中に改竄されてないことを意味するから、プリンタ106は、その印刷データの印刷出力を行う。
【0047】
以下、図1を参照して、この認証印刷システム100の機能的な構成を詳細に説明する。なお、クライアント102及びサーバ104がもつ各種機能は、典型的には、クライアント102及びサーバ104として使われるコンピュータ上で実行されるコンピュータプログラムによって実現される。
【0048】
図1の認証印刷システム100の構成図に示すように、クライアント102は、認証印刷ジョブ生成部112と認証印刷ジョブ送信部114とを備える。認証印刷ジョブ生成部112は、認証印刷ジョブを生成する。認証印刷ジョブ送信部114は、認証印刷ジョブ生成部112で生成された認証印刷ジョブをサーバ104へ送信する。
【0049】
サーバ104は、認証印刷ジョブ保存部120、第1ハッシュ値算出部122、ハッシュ値送信部124、第1ハッシュ値記憶部126、認証印刷ジョブ要求受信部130、認証印刷ジョブ検索部132、及び認証印刷ジョブ送信部134を備える。
【0050】
認証印刷ジョブ保存部120は、クライアント102から送信されてきた認証印刷ジョブを一時的に(認証印刷ジョブによる印刷が完了するまで)保存する。
【0051】
第1ハッシュ値算出部122は、認証印刷ジョブ保存部120に各印刷ジョブの印刷データが保存された時点(又は、各印刷ジョブの印刷データがサーバ104に受信された時点)で、その印刷データのハッシュ値(第1のハッシュ値)を算出する。ここで、1つの印刷ジョブの印刷データ全体に対して1つの第1のハッシュ値が計算されてもよいし、或いは、印刷データが複数の部分データに分割されて、その部分データごとに1つの第1のハッシュ値(その印刷データ全体に対して複数の第1のハッシュ値)が計算されてもよい。
【0052】
ハッシュ値送信部124は、第1ハッシュ値算出部122で計算された第1のハッシュ値をプリンタ106のハッシュ値受信部136へ送信する。ただし、認証印刷ジョブ保存部120内のすべての印刷データの第1のハッシュ値をプリンタ106に送る必要はなく、そのうちのプリンタ106の機種に適合する印刷データ(つまり、プリンタ106が取り扱える印刷データ)の第1のハッシュ値だけをプリンタ106に送ればよい。
【0053】
第1ハッシュ値記憶部126は、第1ハッシュ値算出部122で計算された第1のハッシュ値を記憶する。ここで注目すべき点は、第1のハッシュ値が第1ハッシュ値記憶部126により、認証印刷ジョブ保存部120内の印刷データから分離されて記憶されている点であり、そのため、認証印刷ジョブ保存部120内の印刷データが改竄されても、それだけでは、第1ハッシュ値記憶部126内の第1のハッシュ値は改竄されない。
【0054】
認証印刷ジョブ要求受信部130は、プリンタ142から、ユーザ識別子を含んだ認証印刷ジョブ要求を受付ける。認証印刷ジョブ検索部132は、認証印刷ジョブ要求受信部130で受信された認証印刷ジョブに含まれるユーザ識別子に対応するユーザ識別子を有する認証印刷ジョブを、認証印刷ジョブ保存部120の中から検索する。認証印刷ジョブ送信部134は、認証印刷ジョブ検索部132によって検索された認証印刷ジョブをプリンタ106へ送信する。
【0055】
プリンタ106は、ハッシュ値受信部136、第1ハッシュ値保存部138、ハッシュ値検索部139、認証情報受信部140、認証印刷ジョブ要求部142、認証印刷ジョブ受信部143、第2ハッシュ値算出部144、ハッシュ値比較部145、及び印刷出力部146を備える。
【0056】
ハッシュ値受信部136は、サーバ104のハッシュ値送信部124から送信された第1のハッシュ値を受信する。第1ハッシュ値保存部138は、サーバ104から受信した第1のハッシュ値を、印刷データによる印刷が終了するまで保存する。ここで注目すべき点は、第1のハッシュ値がプリンタ106内で、サーバ104内の印刷データから分離されて保存されている点であり、そのため、サーバ104内の印刷データが改竄されても、それだけでは、プリンタ106内の第1のハッシュ値は改竄されない。
【0057】
ハッシュ値検索部139は、プリンタ106の起動時、エラー回復時、又はその他の所定のタイミングで、サーバ104の第1ハッシュ値記憶部126から、プリンタ106の機種に適合した言語で記述された印刷データ(つまり、プリンタ106が取り扱える印刷ジョブの印刷データ)についての第1のハッシュ値を検索し、検索された第1のハッシュ値を第1ハッシュ値保存部138へ保存させる(図示してないが、サーバ104では、の第1ハッシュ値記憶部126内の各第1ハッシュと、その元の印刷データに適合するプリンタ106の機種情報との関連付けが存在し、その関連付けがこの検索で利用される。)。この検索を行う理由は、プリンタ106の電源断やエラー状態の期間中に、サーバ104からプリンタ106へ送信された第1のハッシュ値があったならば、それをプリンタ106は受信し損ねているであろうから、その受信し損ねた第1のハッシュ値をサーバ104から改めて受け取るためである。
【0058】
認証情報受信部140は、認証装置108からユーザ識別子を含んだ認証情報を受信する。認証印刷ジョブ要求部142は、認証装置108から送信されたユーザ識別子を含んだ認証情報に基づいて、ユーザ認証を行い、認証が成功すれば、そのユーザ識別子を含んだ認証印刷ジョブ要求を作成して、サーバ104の認証印刷ジョブ要求受信部130へ送信する。
【0059】
認証印刷ジョブ受信部143は、プリンタ106からサーバ104に送信された認証印刷ジョブ要求に応答してサーバ106の認証印刷ジョブ送信部134が認証印刷ジョブを返信してたとき、その送信された認証印刷ジョブを受信する。
【0060】
第2ハッシュ値算出部144は、認証印刷ジョブ受信部143がサーバ104から認証印刷ジョブを受信した時、その受信された認証印刷ジョブの印刷データのハッシュ値(第2のハッシュ値)を計算する。ハッシュ値比較部145は、計算された第2のハッシュ値と同じハッシュ値を、第1ハッシュ値保存部138に保存されている種々の認証印刷ジョブの第1のハッシュ値の中から探す。そして、第2のハッシュ値と一致する第1のハッシュ値が見つかれば、それは、サーバ1−4から受信された印刷ジョブの印刷データが改竄されていないことを意味するので、その印刷データを印刷出力部146へ渡す。他方、第2のハッシュ値と一致する第1のハッシュ値が見つからなければ、それは、サーバ104から受信された印刷データが改竄されていることを意味するので、その印刷データを印刷出力部146へ渡さない(又は、印刷出力部146へ渡したとしても、何らかの警報をユーザに通知する)。印刷出力部146は、ハッシュ値比較部145から送信された印刷データを受け取って印刷出力処理を実行する。
【0061】
認証装置108は、認証情報入力部150と認証情報送信部152とを備える。認証情報入力部150は、ユーザ110からユーザ識別子を含んだ認証情報を入力する。認証情報送信部152は、認証情報入力部150から受け取った認証情報をプリンタ106の認証情報受信部140へ送信する。
【0062】
次に、フローチャートを参照しながら図1に示す認証印刷システム100の動作を説明する。図2は、図1に示すに認証印刷システム100の動作の流れを示すフローチャートである。従って、図1を参照しながら、図2のフローチャートに従って認証印刷システム100の動作の流れを説明する。
【0063】
先ず、クライアント102の認証印刷ジョブ生成部112が或る認証印刷ジョブを生成すると(ステップS1)、生成された認証印刷ジョブの印刷データは、クライアント102の認証印刷ジョブ送信部114からサーバ104の認証印刷ジョブ保存部120へ送信される(ステップS2)。そして、その印刷データは、サーバ104の認証印刷ジョブ保存部120へ一時的に保存される(ステップS3)。
【0064】
認証印刷ジョブ保存部120では、例えば図4に示すように、それぞれの印刷データがそれぞれのユーザを示すユーザ識別子と関連付けられて、保存される。後にプリンタ106から或るユーザ識別子を含む認証印刷ジョブ要求が来ると、そのユーザ識別子に関連づけられた印刷データ(例えば、図4においてユーザ識別子00987が指定された場合には、印刷データDocument.prnとAaaaa.prn)が認証印刷ジョブ保存部120から読み出されてプリンタ106に送信されることになる。
【0065】
再び、図2を参照して、認証印刷ジョブ保存部120に保存された印刷データに基づいて、第1ハッシュ値算出部12によってその印刷データの第1ハッシュ値が算出され(ステップS4)、そして、算出された第1ハッシュ値は第1ハッシュ値記憶部126に保存される(ステップS5)。さらに、第1ハッシュ値算出部12によって算出された第1ハッシュ値は、プリンタ106に送信され(ステップS6)、プリンタ106のハッシュ値受信部136に受信されて第1ハッシュ値保存部138に保存される(ステップS7)。
【0066】
次に、ユーザ110が、認証装置108の認証情報入力部150に自分のユーザ識別子を入力して認証操作を行うと(ステップS8)、そのユーザ識別子を含んだ認証印刷ジョブ要求が、プリンタ106の認証印刷ジョブ要求部142からサーバ104の認証印刷ジョブ要求受信部142へ送信される(ステップS9)。
【0067】
すると、サーバ104の認証印刷ジョブ検索部132が、そのユーザ識別子に関連付けられた印刷データを認証印刷ジョブ保存部120よりサーチし(ステップS10)、見つかった印刷データをプリンタ106へ送信する(ステップS11)。
【0068】
すると、プリンタ106の第2ハッシュ値算出部144が、サーバ104から受信された印刷データに基づき、その印刷データの第2のハッシュ値を算出する(ステップS12)。さらに、プリンタ106のハッシュ値比較部145が、前もって第1ハッシュ値保存部138に保存されていた種々の印刷データの第1のハッシュ値に中に、いま算出された第2のハッシュ値と同じものがあるかどうかをチェックする(ステップS13)。
【0069】
図5は、プリンタ106の第1ハッシュ値保存部138に保存されている種々の認証印刷ジョブ(すなわち、サーバ104に保存されている認証印刷ジョブのうち、このプリンタ106の機種に適合したジョブ)のハッシュ値を示す図である。図5に示すような第1のハッシュ値のリストの中から、第2のハッシュ値に一致するものがサーチされる。
【0070】
再び、図2を参照して、ステップS13におけるハッシュ値比較部145のサーチにより、第2のハッシュ値と一致する第1のハッシュ値が見つかれば、印刷データは改竄されていないと判断してその印刷データを印刷出力部146へ送信する。すると、印刷出力部146は、ハッシュ値比較部145から送信された印刷データを受け取って印刷出力を行う(ステップS14)。
【0071】
印刷出力が完了すると、プリンタ106からサーバ104に対して印刷完了通知が送信されろ(ステップS15)。すると、サーバ104は、認証印刷ジョブ保存部120から該当する印刷データを削除し(ステップS16)、さらに、第1ハッシュ値記憶部126から該当するハッシュ値(ステップS13で見つかった第1のハッシュ値)を削除する(ステップS17)。
【0072】
尚、サーバ104にて、ハッシュ値の正規の改変(設定変更など)が行われる場合があるため、サーバ104では、印刷データを変更した際にはハッシュ値を再度算出してプリンタ106に送信する機構があることが望ましい。
【0073】
本実施形態の認証印刷システム100によれば、サーバ104に印刷データが格納されているときに、プリンタ106にはその印刷データの第2のハッシュ値が分離されて格納されている。従って、サーバ104の印刷データが改竄されても、プリンタ106に格納されている第2のハッシュ値を改竄することができない。よって、サーバ104に存在する印刷データの第1のハッシュ値とプリンタ106に格納されている第2のハッシュ値とを比較すれば、印刷データの改竄の有無を容易に判断することができる。
【0074】
図3は、図1に示すに認証印刷システム100において、プリンタ106が電源断やエラーなどのためにサーバ104から送信された第1のハッシュ値を受信できなかった場合の動作の流れを示すフローチャートである。図3のフローチャートにおいて、図2と同じ動作内容については同一のステップ番号が付してある。図3のフローチャートが図2のフローチャートと異なるところはステップS20とS21のみである。従って、重複する説明は省略して図3に固有な動作の流れのみを説明する。
【0075】
スッテップS1〜S6までにおいて、クライアント102が印刷データを生成してサーバ104へ送信し、サーバ104がその印刷データに含まれる第1のハッシュ値をプリンタ106へ送信するまでの動作は図2と同じである。
【0076】
ここで、ステップS6において、サーバ104からプリンタ106へ第1のハッシュ値を送信するが、プリンタ106の電源が切れていたり或る種のエラーが発生していたりすると、プリンタ106はその第1のハッシュ値を受信できない。その後、プリンタ106の電源が投入されたりエラーから回復したときに、プリンタ106は、サーバ104に対し、プリンタ106の機種に適合した印刷データの第1のハッシュ値を第1ハッシュ値記憶部126から検索するよう要求する(ステップS20)。サーバ104は、検索された第1のハッシュ値プリンタ106へ送信する(ステップS21)。
【0077】
これによって、プリンタ106は、ステップS7において、機種に適合した印刷データの第1のハッシュ値を第1ハッシュ値保存部138へ保存することができるので、以下、図2のステップS7〜S17の処理と同様の流れで印刷データの改竄の有無を判定して適正な印刷処理を行うことができる。
【0078】
図6は、本発明の第2の実施形態にかかる認証印刷システムの構成を示す図である。図1〜図5を参照して説明した第1の実施形態と同様の機能を持つ要素には同一の参照番号を付して、重複した説明を省略する。
【0079】
この第2の実施形態にかかる認証印刷システム200の第1の実施形態にかかる認証印刷システム100からの主たる相違点は、第1のハッシュ値の算出と送信の機能を、サーバ104ではなく、クライアント102に持たせた点である。この認証印刷システム200の機能と動作の概要は次のとおりである。
【0080】
(1) クライアント102は、或るユーザ110の印刷データを生成すると、その印刷データのハッシュ値(第1のハッシュ値)を算出し、その第1のハッシュ値をプリンタ106に送信する。プリンタ106は、受信された第1のハッシュ値を保存する。
【0081】
(2) クライアント102は、生成された印刷データをサーバ104に送信する。サーバ104は、受信された印刷データを、プリンタ106によりその印刷データの印刷出力が完了するまで、サーバ104内で保存する。
【0082】
(3) プリンタ106は、ユーザ110の認証が行われたときに、そのユーザ110の印刷データをサーバ104から受信し、受信された印刷データのハッシュ値(第2のハッシュ値)を算出し、そして、その第2のハッシュ値を、保存しておいた第1のハッシュ値と比較する。比較の結果、両ハッシュ値が一致すれば、その印刷データが保存中に改竄されてないことを意味するから、プリンタ106は、その印刷データの印刷出力を行う。
【0083】
次に、図6に示す認証印刷システムの構成について説明するが、図1に示された構成要素と機能的に同様の構成要素には同一の参照番号を付して重複した説明を省略する。
【0084】
クライアント102は、認証印刷ジョブ生成部112、認証印刷ジョブ送信部114、第1ハッシュ値算出部122、ハッシュ値送信部124、及び第1ハッシュ値記憶部126を備える。サーバ104は、認証印刷ジョブ保存部120、認証印刷ジョブ要求受信部130、認証印刷ジョブ検索部132、及び認証印刷ジョブ送信部134を備える。プリンタ106及び認証装置108の構成は既に説明した図1のそれと同じである。
【0085】
クライアント102内の第1ハッシュ値算出部122、ハッシュ値送信部124、及び第1ハッシュ値記憶部126は、図1に示されたシステム100ではサーバ104に存在していたものであるが、それぞれの機能は図1で説明した機能と基本的に同様であるので、重複する説明は省略する。
【0086】
図7は、図6に示す認証印刷システム200の動作の流れを示すフローチャートである。従って、図6を参照しながら、図7のフローチャートに従って認証印刷システム200の動作の流れを説明する。
【0087】
先ず、クライアント102の認証印刷ジョブ生成部112が認証印刷ジョブを生成する(ステップS1)。このジョブの印刷データはクライアント102の第1ハッシュ値算出部12に送信されて、そこでその印刷データの第1ハッシュ値が算出される(ステップS4)。さらに、算出された第1ハッシュ値はクライアント102の第1ハッシュ値記憶部126に保存される(ステップS5)。第1ハッシュ値記憶部126内の第1ハッシュ値は、その元となった印刷データ(サーバ104で保存されることになる)からは分離されている。
【0088】
また、クライアント102の認証印刷ジョブ生成部112によって生成された印刷データは、クライアント102の認証印刷ジョブ送信部114からサーバ104の認証印刷ジョブ保存部120へ送信され(ステップS2)、その印刷データは、サーバ104の認証印刷ジョブ保存部120で一時的に保存される(ステップS3)。
【0089】
また、プリンタ106の第1ハッシュ値算出部12によって算出された第1ハッシュ値は、クライアント102のハッシュ値送信部124からプリンタ106のハッシュ値受信部136へ送信され(ステップS6)、プリンタ106の第1ハッシュ値保存部138に保存される(ステップS7)。第1ハッシュ値保存部138内の第1ハッシュ値は、その元となった印刷データ(サーバ104で保存されている)からは分離されている。
【0090】
そして、ステップS8〜S17の流れは、既に説明した図2と同様であり、結果として、印刷データの改竄の有無を判定して適正な印刷処理を行う。
【0091】
図8は、図6に示すに認証印刷システム200において、プリンタ106が電源断やエラーによって第1のハッシュ値を受信できなった場合の動作の流れを示すフローチャートである。図8のフローチャートが図7のフローチャートと異なるところはステップS20とS21のみである。従って、重複する説明は省略して図8に固有な動作の流れのみを説明する。
【0092】
スッテップS1〜S6までにおいて、クライアント102の認証印刷ジョブ生成部112が印刷データを生成してサーバ104へ送信すると共に、クライアント102の第1ハッシュ値算出部122がその印刷データに含まれる第1のハッシュ値を算出してプリンタ106のハッシュ値受信部136へ送信するまでの動作は図7と同じである。
【0093】
ここで、ステップS6において、クライアント102からプリンタ106へ第1のハッシュ値を送信したとき、プリンタ106の電源が切れていたり或る種のエラーが発生していた場合は、プリンタ106は第1のハッシュ値を受信できない。その後、プリンタ106の電源が投入されたりエラーから回復したときに、プリンタ106は、クライアント102に対して、第1ハッシュ値記憶部126からプリンタ106の機種に適合した印刷データの第1のハッシュ値を検索するよう要求する(ステップS20)。クライアント102は、プリンタ106の機種に適合した印刷データの第1のハッシュ値を第1ハッシュ値記憶部126から検索して、プリンタ106へ送信する(ステップS21)。
【0094】
これによって、プリンタ106は、ステップS7において、機種に適合した印刷データの第1のハッシュ値を第1ハッシュ値保存部138へ保存することができるので、以下、図2(又は図7)のステップS7〜S17の処理と同様の流れで印刷データの改竄の有無を判定して適正な印刷処理を行う。
【0095】
以上、本発明の好適な2つの実施形態を説明したが、これらは本発明の説明のための例示であり、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない範囲で、上記実施形態とは異なる種々の態様で実施することができる。
【図面の簡単な説明】
【0096】
【図1】本発明の第1の実施形態にかかる認証印刷システムの構成を示すブロック図。
【図2】図1に示すに認証印刷システム100の動作の流れを示すフローチャート。
【図3】図1に示すに認証印刷システム100において、プリンタ106が第1のハッシュ値を受信できなった場合の動作の流れを示すフローチャート。
【図4】図1の認証印刷ジョブ保存部120へ保存される識別子と印刷データの対応を示す図。
【図5】図1に示すプリンタ106の第1ハッシュ値保存部138に保存されているハッシュ値を示す図。
【図6】本発明の第2の実施形態にかかる認証印刷システムの構成を示すブロック図。
【図7】図6に示す認証印刷システム200の動作の流れを示すフローチャート。
【図8】図6に示すに認証印刷システム200において、プリンタ106が第1のハッシュ値を受信できなかった場合の動作の流れを示すフローチャート。
【符号の説明】
【0097】
100、200 認証印刷システム
102 クライアント
104 サーバ
106 プリンタ
108 認証装置
110 ユーザ
112 認証印刷ジョブ生成部
114 認証印刷ジョブ送信部
120 認証印刷ジョブ保存部
122 第1ハッシュ値算出部
124 ハッシュ値送信部
126 第1ハッシュ値記憶部
130 認証印刷ジョブ要求受信部
132 認証印刷ジョブ検索部
134 認証印刷ジョブ送信部
136 ハッシュ値受信部
138 第1ハッシュ値保存部
139 ハッシュ値検索部
140 認証情報受信部
142 認証印刷ジョブ要求部
143 認証印刷ジョブ受信部
144 第2ハッシュ値算出部
145 ハッシュ値比較部
146 印刷出力部
150 認証情報入力部
152 認証情報送信部

【特許請求の範囲】
【請求項1】
印刷データを保存する印刷データ保存手段と、
前記印刷データの第1のハッシュ値を算出する第1ハッシュ値算出手段と、
前記第1のハッシュ値を前記印刷データから分離して保存する第1ハッシュ値保存手段と、
前記第1のハッシュ値が算出された時より後の時に、前記印刷データ保存手段に保存されている前記印刷データの第2のハッシュ値を算出する第2ハッシュ値算出手段と、
前記第2のハッシュ値と、前記第1ハッシュ値保存手段に保存されている前記第1のハッシュ値とを比較する比較手段と、
前記印刷データを印刷出力する印刷出力手段と
を備えた印刷システム。
【請求項2】
請求項1記載の印刷システムにおいて、
前記印刷データが前記印刷データ保存手段に書き込まれるときに、前記第1ハッシュ値算出手段が前記第1のハッシュ値を算出し、
前記印刷出力手段が前記印刷データ保存手段に保存されている前記印刷データを印刷出力しようとするときに、前記第2ハッシュ値算出手段が前記第2のハッシュ値を算出する、
印刷システム。
【請求項3】
請求項1又は2記載の印刷システムにおいて、
複数のマシンを有し、一つのマシンが前記印刷データ保存手段を有し、別のマシンが前記第1ハッシュ値保存手段を有する印刷システム。
【請求項4】
請求項3記載の印刷システムにおいて、
前記印刷データを出力するクライアントに通信可能に接続されたサーバと、
前記サーバに通信可能に接続されたプリンタと
を前記複数のマシンとして備え、
前記サーバが、
前記クライアントから受信した前記印刷データを保存する前記印刷データ保存手段と、
前記クライアントから受信した前記印刷データの第1のハッシュ値を算出する前記第1ハッシュ値算出手段と、
前記第1ハッシュ値算出手段で算出された前記第1のハッシュ値を前記プリンタへ送信する第1ハッシュ値送信手段と、
前記印刷データ保存手段内の前記印刷データを前記プリンタへ送信する印刷データ送信手段と
を有し、
前記プリンタが、
前記第1のハッシュ値を前記サーバの前記第1ハッシュ値送信手段から受信する第1ハッシュ値受信手段と、
前記サーバの前記第1ハッシュ値送信手段から受信された前記第1のハッシュ値を保存する前記第1ハッシュ値保存手段と、
前記第1のハッシュ値が算出された時より後の時に、前記印刷データ保存手段内の前記印刷データを前記サーバの前記印刷データ送信手段から受信する印刷データ受信手段と、
前記サーバの前記印刷データ送信手段から受信された前記印刷データの前記第2のハッシュ値を算出する前記第2ハッシュ値算出手段と、
前記比較手段と、
前記サーバの前記印刷データ送信手段から受信された前記印刷データを印刷出力する前記印刷出力手段と
を有する
印刷システム。
【請求項5】
請求項4記載の印刷システムにおいて、
前記サーバが、前記第1ハッシュ値算出手段で算出された前記第1のハッシュ値を記憶する第1ハッシュ値記憶手段を更に備え、
前記プリンタが、所定のタイミングで前記サーバ内の前記第1ハッシュ値記憶手段から前記第1のハッシュ値を検索して前記プリンタ内の前記第1ハッシュ値保存手段に書き込む第1ハッシュ値検索手段を更に備える
印刷システム。
【請求項6】
請求項3記載の印刷システムにおいて、
前記印刷データを出力するクライアントと、
前記クライアントに通信可能に接続されたサーバと、
前記クライアント及び前記サーバに通信可能に接続されたプリンタと
を前記複数のマシンとして備え、
前記クライアントが、
出力しようとする前記印刷データの前記第1のハッシュ値を算出する前記第1ハッシュ値算出手段と、
前記第1ハッシュ値算出手段で算出された前記第1のハッシュ値を前記プリンタへ送信する第1ハッシュ値送信手段と
を有し、
前記サーバが、
前記クライアントから受信した前記印刷データを保存する前記印刷データ保存手段と、
前記印刷データ保存手段内の前記印刷データを前記プリンタへ送信する印刷データ送信手段と
を有し、
前記プリンタが、
前記第1のハッシュ値を前記クラアイントの前記第1ハッシュ値送信手段から受信する第1ハッシュ値受信手段と、
前記クライアントの前記第1ハッシュ値送信手段から受信された前記第1のハッシュ値を保存する前記第1ハッシュ値保存手段と、
前記第1のハッシュ値が算出された時より後の時に、前記印刷データを前記サーバの前記印刷データ送信手段から受信する印刷データ受信手段と、
前記サーバの前記印刷データ送信手段から受信された前記印刷データの前記第2のハッシュ値を算出する前記第2ハッシュ値算出手段と、
前記比較手段と、
前記サーバの前記印刷データ送信手段から受信された前記印刷データを印刷出力する前記印刷出力手段と
を有する
印刷システム。
【請求項7】
請求項6記載の印刷システムにおいて、
前記クライアントが、前記第1ハッシュ値算出手段で算出された前記第1のハッシュ値を記憶する第1ハッシュ値記憶手段を更に備え、
前記プリンタが、所定のタイミングで前記クライアント内の前記第1ハッシュ値記憶手段から前記第1のハッシュ値を検索して前記プリンタ内の前記第1ハッシュ値保存手段に書き込む第1ハッシュ値検索手段を更に備える
印刷システム。
【請求項8】
請求項4〜7のいずれか一項記載の印刷システムにおいて、
前記第1ハッシュ値送信手段は、前記印刷データのデータ形式が前記プリンタの機種に適合しているか否かを判断し、前記判断結果が否定ならば、前記印刷データの前記第1のハッシュ値を前記プリンタへ送信することを省略する、
印刷システム。
【請求項9】
外部マシンから印刷データの第1のハッシュ値を受信する第1ハッシュ値受信手段と、
前記外部マシンから受信された前記第1のハッシュ値を保存する第1ハッシュ値保存手段と、
前記第1のハッシュ値が算出された時より後の時に、前記外部マシン又は別の外部マシンから前記印刷データを受信する印刷データ受信手段と、
前記外部マシン又は前記別の外部マシンから受信された前記印刷データの第2のハッシュ値を算出する前記第2ハッシュ値算出手段と、
前記第2ハッシュ値算出手段で算出された前記第2のハッシュ値と、前記第1ハッシュ値保存手段内の前記第1のハッシュ値とを比較する比較手段と、
前記外部マシン又は前記別の外部マシンから受信された前記印刷データを印刷出力する前記印刷出力手段と
を備えたプリンタ。
【請求項10】
印刷データを出力するクライアントに通信可能に接続され、かつ印刷データを印刷出力するプリンタに通信可能に接続されたサーバにおいて、
前記クライアントから印刷データを受信して保存する印刷データ保存手段と、
前記クライアントから印刷データを受信された前記印刷データの第1のハッシュ値を算出する第1ハッシュ値算出手段と、
前記第1のハッシュ値を前記印刷データから分離して前記プリンタへ送信する第1ハッシュ値送信手段と、
前記第1のハッシュ値を算出した時より後の時に、前記印刷データ保存手段内の前記印刷データを前記プリンタへ送信する印刷データ送信手段と
を備えたサーバ。
【請求項11】
請求項10に記載のサーバとしてコンピュータを機能させるための、機械読み取り可能なコンピュータプログラム。
【請求項12】
印刷データを保存するサーバに通信可能に接続され、かつ前記サーバに保存されている印刷データを受信して印刷出力するプリンタに通信可能に接続されたクライアントにおいて、
印刷データの第1のハッシュ値を算出する第1ハッシュ値算出手段と、
前記第1のハッシュ値を前記プリンタへ送信する第1ハッシュ値送信手段と、
前記印刷データを前記サーバへ送信する印刷データ送信手段と
を備えたクライアント。
【請求項13】
請求項12に記載のクライアントとしてコンピュータを機能させるための、機械読み取り可能なコンピュータプログラム。
【請求項14】
印刷データを保存するステップと、
前記印刷データの第1のハッシュ値を算出するステップと、
前記第1のハッシュ値を前記印刷データから分離して保存するステップと、
前記第1のハッシュ値が算出された時より後の時に、保存されている前記印刷データの第2のハッシュ値を算出するステップと、
前記第2のハッシュ値と、保存されている前記第1のハッシュ値とを比較するステップと、
前記印刷データを印刷出力するステップと
を備えた印刷方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−217390(P2009−217390A)
【公開日】平成21年9月24日(2009.9.24)
【国際特許分類】
【出願番号】特願2008−58532(P2008−58532)
【出願日】平成20年3月7日(2008.3.7)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】