情報処理方法及び装置
【課題】第1のデバイスにおいて固有メッセージ有効化コード(TAT)のリストを生成し、第2のデバイスの中にそのリストを格納することによるメッセージのリプレイに対するセキュリティを提供する。
【解決手段】リストからの固有メッセージ有効化コードの少なくとも1つを含む、第1のデバイスにおいて生成されたメッセージが、第2のデバイスに伝送される。受信されたメッセージの固有メッセージ有効化コードが、第2のデバイスの中に格納されたリストと比較されて、第2のデバイスによるメッセージの処理を有効にするか否かが判定される。
【解決手段】リストからの固有メッセージ有効化コードの少なくとも1つを含む、第1のデバイスにおいて生成されたメッセージが、第2のデバイスに伝送される。受信されたメッセージの固有メッセージ有効化コードが、第2のデバイスの中に格納されたリストと比較されて、第2のデバイスによるメッセージの処理を有効にするか否かが判定される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して伝送されるメッセージのリプレイアタック(replay attack)に対するセキュリティに関する。より詳細には、本発明は、傍受されたメッセージがリプレイ(再生)されることに対するセキュリティに関する。このセキュリティは、メッセージの処理を有効にするか否かを判定するために、メッセージに含められた固有メッセージ有効化コードを、受信側デバイスの中の格納された固有メッセージ有効化コードのリストと比較することによりなされる。
【背景技術】
【0002】
ネットワークを介して伝送されるメッセージのリプレイアタックは、残念ながら、一般的に見られることになっている。リプレイアタックは、通常、ハッカが、ネットワークを介して伝送されたメッセージを傍受し、そして、その後のある時点で、宛先のデバイスにメッセージを再度、再送信する(つまり、メッセージをリプレイする)ことから成る。例として、1つの口座から別の口座への金銭の振替のために、自宅ユーザまたはビジネスユーザから金融機関にインターネットを介してメッセージが伝送され得る。このメッセージを傍受したハッカが、後のある時点で、そのメッセージを金融機関に再度、送信して、資金の第2の振替をもたらす可能性がある。また、別の例として、ネットワークを介するプリンタへの機密の印刷ジョブの伝送が、ハッカによって傍受されることが可能である。そして、ハッカは、後のある時点でプリンタに対するその印刷ジョブをリプレイして(すなわち、再送信して)、機密情報を獲得することができる。
【0003】
以上のような、ネットワークを介する多くの伝送は、デジタル署名などの、何らかのタイプのセキュリティを利用してメッセージが本物であることを検証することができる。しかしながら、そのような署名は、リプレイアタックを防止するのにほとんど役立たない。この点について、ハッカは、メッセージを傍受することにより、後の時点でそのメッセージをリプレイするのに必要な署名を獲得することができる。署名は、メッセージの第1回目のリプレイにおいて検証されているため、メッセージの第2回目の再生(playback)でも検証される可能性が高い。
【0004】
リプレイアタックに対処するために提案されている1つの技術(Kerberosとして知られる)は、伝送されるメッセージにチケットおよびタイムスタンプを追加することを含む。メッセージが受信側デバイスによって受信されると、チケットおよびタイムスタンプは、指定された時間(例えば、5分間)にわたり、受信側デバイスの中で一時的に保持される。さらなるメッセージが受信されると、新たに受信されたメッセージのチケットおよびタイムスタンプが抽出されて、それらが、一時的に保持されているチケットおよびタイムスタンプのいずれかと同一であるかどうかが判定される。同一である場合、エラーメッセージが戻される。このため、このシステムは、リプレイアタックに対するいくらかのセキュリティをもたらすが、しかし、いくつかの問題を抱えている。
【0005】
前述のシステムが抱える1つの問題は、タイムスタンプが、メッセージの有効性の目安として使用される場合、同一のタイムスタンプが異なるメッセージに与えられる可能性があるということである。このように、タイムスタンプは、メッセージ自体を特定するのではなく、メッセージが伝送された時刻を特定するため、正規のメッセージと同一のタイムスタンプが存在する場合、リプレイされたメッセージが有効であると見なされる可能性がある。
【0006】
また、前述のシステムが抱える別の問題は、各受信側デバイスが、使用済みのチケットおよびタイムスタンプを格納するのに十分なストレージスペースを提供しなければならないことに起因するオーバーヘッドの増加である。多くのメッセージが受信されるにつれて、使用済みのチケットを保持するために大量のストレージスペースが必要とされる。さらに、チケットの数が増えるにつれ、使用済みのチケットを探索するためにより多くの処理時間が要求されてしまい、時間に関するシステムのパフォーマンスが低下してしまう。
【0007】
加えて、ハッカが、一時的に保持されたチケットおよびタイムスタンプを受信側デバイスから削除した後、メッセージをリプレイできる可能性がある。このため、チケットおよびタイムスタンプが1回使用されている可能性があるものの、そのチケットおよびタイムスタンプは一時的に保持された情報から削除されている。そのため、リプレイされるメッセージは、そのメッセージが、タイムスタンプの許容できる時間枠内でリプレイされるものと想定すると有効であると認識される。この結果、使用済みのチケットおよびタイムスタンプを一時的に保持するKerberosプロセスは、いくらかの保護を提供するが、依然としてリプレイアタックの防止にいくらかの弱点を有する。
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明の目的は、前述の諸問題の少なくとも1つを解決することである。本発明は、ジョブを受け取って処理するデバイスの中に有効なコードまたはトークンのリストを格納する。そして、受信されたメッセージに含められた固有メッセージ有効化コード(トークン)を格納済みのリストと比較し、そのコード(トークン)が有効であるか否かを判定する。次に、格納済みのリストから受信済みのコード(トークン)を削除する。以上のようにして、本発明は前述の課題に対処する。このため、本発明によれば、固有メッセージ有効化コードのリストが、受信側デバイスの中に格納される。ホストデバイスにおいて生成されたメッセージが受信側デバイスに伝送される。このメッセージは、生成されたリストからの固有メッセージ有効化コードの少なくとも1つを含む。受信側デバイスは、メッセージを受信すると、受信されたメッセージに含められた固有メッセージ有効化コードを格納済みのリストの中に含まれるコード群と比較し、そのメッセージの処理を拒否するか否かを判定する。このため、一つの実施形態では、メッセージとともに受信された固有メッセージ有効化コードが格納済みのリストの中に含まれている場合、そのメッセージは、有効であると見なされ、対応する固有メッセージ有効化コードが格納済みのリストから削除される。しかし、メッセージとともに受信された固有メッセージ有効化コードが、格納済みのリストの中に含まれていなかった場合、そのメッセージの処理は拒否される。
【0009】
この結果、ハッカがメッセージを傍受して、後の時点で受信側デバイスにそのメッセージを再送信することによって、メッセージを再度、リプレイしようと試みるような場合、受信側デバイスはそのメッセージを拒否する。固有メッセージ有効化コードが格納済みのリストの中にもはや含まれていないためである。さらに、前述したKerberosシステムとは異なり、ハッカが、受信側デバイスからコードの格納済みのリストを削除するような場合、コードがリストの中に含まれていないので、リプレイされるメッセージは拒否される。もちろん、この場合、メッセージの第1回の再生も拒否されるが、メッセージの送信者は、単に新たなコードを獲得して、その新たなコードとともに新たなメッセージを伝送することができる。さらに、ハッカが、現在、格納されているリストを削除するようなことがあった場合、コードの新たなリストを自動的に獲得するデバイスをシステムに組み込むことができる。このため、受信側デバイスに特有の固有メッセージ有効化コードのリストを受信側デバイスの中で提供することにより、傍受されたメッセージのリプレイに対するセキュリティを容易に提供することができる。
【課題を解決するための手段】
【0010】
このため、本発明の一態様では、第1のデバイスから第2のデバイスによって実行されるメッセージの固有メッセージ有効化コードを第2のデバイスの中に格納された固有メッセージ有効化コードのリストと比較する。そして、メッセージとともに受信された固有メッセージ有効化コードが格納済みのリストの中に含まれているかどうかを判定する。このようにすることで、第1のデバイスから第2のデバイスに伝送されるメッセージのリプレイに対するセキュリティを提供する。この比較に基づき、第2のデバイスによるメッセージの処理を拒否するか否かの判定が行われる。
【0011】
メッセージとともに受信された固有メッセージ有効化コードが格納済みのリストの中に含まれていると判定された場合、メッセージの処理は拒否されず、対応する固有メッセージ有効化コードが格納済みのリストから削除される。他方、メッセージとともに受信された固有メッセージ有効化コードが、格納済みのリストの中に含まれていないと判定された場合、メッセージの処理は拒否される。
【0012】
固有メッセージ有効化コードのリストは、好ましくは、第3のデバイスまたは第1のデバイスによって生成され、生成されたリストが、第2のデバイスに伝送されて、第2のデバイスの中に格納される。代替として、固有メッセージ有効化コードは、デバイス間でリストを伝送するのではなく、第2のデバイスおよび第3のデバイスによって相互に生成されてもよい。このため、メッセージは、生成されたリストからの固有メッセージ有効化コードの少なくとも1つを含むように、第1のデバイスにおいて生成されることが可能である。もちろん、メッセージおよび固有メッセージ有効化コードは、次に、第1のデバイスから第2のデバイスに伝送されることが可能である。
【0013】
メッセージを生成することの一環として、第1のデバイスは、第3のデバイスから、メッセージの中に含められるべき固有メッセージ有効化コードを要求することができる。これにより、第3のデバイスは、メッセージの中に含められるべき固有メッセージ有効化コードを第1のデバイスに伝送する。この態様では、セキュリティで保護されたサーバが、第2のデバイスのために有効なコードのリストを保持することができ、複数の第1のデバイスが、第2のデバイスにメッセージを送信するのに使用するためのコードを要求することができる。
【0014】
本発明の別の態様では、第2のデバイスは、格納済みのリストの中に所定の数以下の固有メッセージ有効化コードが含まれているかどうかを判定することができる。リストが所定の数以下の固有メッセージ有効化コードを含むと判定された場合、第2のデバイスは、そのリストに対する追加の固有メッセージ有効化コードを獲得することができる。例えば、第2のデバイスは、リストが所定の数以下まで使い果たされると、追加のコードが必要とされていることを第1のデバイスまたは第2のデバイスに通知することができる。このため、追加の固有メッセージ有効化コードが、第2のデバイスに伝送されることが可能である。これにより、第2のデバイスは、現在、格納されているリストの代りに新たなリストの利用を開始するか、または追加のコードを現在のリストに単に加えて、累加的なリストを形成することができる。代替として、第2のデバイスは、コードの相互生成が使用される実施形態の場合、単に新たなリスト自体を生成してもよい。
【0015】
以上では、本発明において3つのデバイスが利用されるケースを説明したが、より少ない、またはより多いデバイスが代りに使用されることも可能であることは容易に認識できるであろう。例えば、コードのリストが、第1のデバイス自体において生成され、リストが第2のデバイスに転送されるような、第1のデバイスおよび第2のデバイスだけを利用するシステムも使用することができる。そして、第1のデバイスが第2のデバイスにジョブを送信しようとする場合、ジョブに含められるべきコードを、第3のデバイスと通信して獲得する必要なしに、単に第1のデバイス独自の内部リストから獲得することができる。
【0016】
以上の簡単な概要は、本発明の性質を迅速に理解することができるように提供した。本発明のより完全な理解は、添付の図面に関連して、本発明の好ましい諸実施形態の以下の詳細な説明を参照することにより得ることができる。
【発明を実施するための最良の形態】
【0017】
本発明は、メッセージのリプレイアタックを防止することを目的とする。以下により詳細に説明するとおり、本発明は、パーソナルコンピュータ、多機能デバイス、およびサーバなどの様々なデバイスが、ネットワークを介して互いに通信する、ネットワークコンピューティング環境において実施される。なお、以下に提供する詳細な説明は、印刷ジョブがホストコンピュータから多機能デバイスに伝送され、多機能デバイス上における印刷ジョブのリプレイが防止される、印刷動作を実行することを対象としている。しかしながら、本発明はそのような実施形態に限定されるものではない。むしろ、本発明は、無許可のユーザによるメッセージのリプレイが防止されるべき様々な環境のいずれにおいても実施することができる。このため、本明細書に添付した特許請求の範囲は、印刷環境に限定されず、電子通信のリプレイアタックが防止されるべきあらゆる環境を包含するものとして広く解釈されるべきである。
【0018】
図1は、本発明を実施することができるネットワーク化されたコンピューティング環境のシステムを示す図である。図1に示すとおり、ネットワーク化されたコンピューティング環境は、デスクトップコンピュータ10、サーバ40、多機能デバイス30、およびプリンタ50が接続されたネットワーク100を含むことができる。ネットワーク100は、好ましくは、バスタイプの物理的アーキテクチャから成るイーサネット(登録商標)ネットワーク媒体である。ただし、本発明は、インターネットを含む他のタイプのネットワークで利用することもできる。
【0019】
デスクトップコンピュータ10は、好ましくは、Microsoft Windows (登録商標)2000、Windows (登録商標)MEその他のオペレーティングシステムなどのウインドウ環境を有するIBM PC互換コンピュータなどの、パーソナルコンピュータである。典型的なパーソナルコンピュータがそうであるように、デスクトップコンピュータ10は、好ましくは、ディスプレイ11(カラーモニタなどの)、キーボード12、マウス13、またはその他のタイプのポインティングデバイス、ならびにフロッピー(登録商標)ディスク、ハードディスク、CD−ROMなどの記憶媒体14を有する。
【0020】
また、図1には、ネットワーク100には多機能デバイス30が接続されている様子が示されている。デバイス30は、自身が処理するべきコマンドおよびデータをネットワーク100を介して受信することができる。例えば、デバイス30は、印刷ジョブを処理してイメージを印刷するために、パーソナルコンピュータ10から印刷ジョブを受信することができる。多機能デバイス30は、ファクシミリを送受信すること、写真複写動作を実行すること、またはイメージをスキャンすることも可能である。多機能デバイス30は、ネットワークインタフェース(図示せず)を介してネットワーク100上で他のデバイス群と通信し、ネットワーク上の他のデバイス群からのコマンドおよびデータを受信し、それを処理することができる。多機能デバイス30に関わる本発明の1つの特徴は、デバイス30が、固有メッセージ有効化コード(以降、「トークン」または「TAT」とも呼ぶ)のリストを格納することである。リストは、以下でより詳細に説明するが、例えば、サーバ40によってデバイス30に提供され、ネットワーク上の他のデバイスによるデバイス30へのメッセージまたは伝送のリプレイを防止するのに利用される。このため、デバイス30は、パーソナルコンピュータ10とだけでなく、サーバ40とも通信する能力を含む。
【0021】
これに関連して、サーバ40もネットワーク100に接続される。サーバ40は、様々なタイプのサーバオペレーティングシステムのうちのいずれか1つを有するサーバタイプのコンピュータを含む。さまざまなタイプのサーバオペレーティングシステムとは、たとえば、好ましくは、DOS、Microsoft Windows (登録商標)2000 Server、Novell、UNIX(登録商標)、Linuxなどである。サーバ40は、好ましくは、多数のファイルを格納するための大型の固定ディスクである記憶装置480を有する。したがって、サーバ40は、ネットワーク100上の他のデバイス群によってファイルサーバとして利用されることが可能である。また、サーバ40は、インターネットなどの別のネットワークへの、ネットワーク100上の他のデバイス群のためのゲートウェイとしても動作することが可能である。本発明により特有のこととして、サーバ40は、好ましくは、本発明を実施する際に利用される固有メッセージ有効化コード、またはTAT(トランザクションアクセストークン)を生成するセキュリティアプリケーション(SA)を含む。つまり、サーバ40のセキュリティアプリケーションは、セキュリティで保護された形でネットワーク上の他のデバイス群(多機能デバイス30など)に伝送されることが可能な、TATのリストを生成する能力を含む。ここで、セキュリティで保護された形とは、例えば、SSL接続や、暗号化によってなされうる。以上のプロセスは、サーバのセキュリティアプリケーションに関連して以下により詳細に説明される。
【0022】
プリンタ50もネットワーク100に接続される。プリンタ50は、好ましくは、レーザプリンタまたはバブルジェット(登録商標)プリンタである。プリンタ50は、多機能デバイス30のような機能を含むが、より具体的には、印刷動作だけを実行することを目的とする。このため、プリンタ50は、本発明に関連するところでは、多機能デバイス30と同一の形で動作し、したがって、デバイス30の説明は、プリンタ50にも同等に当てはまる。
【0023】
図2は、デスクトップコンピュータ10の内部アーキテクチャの概略を示すブロック図である。図2において、デスクトップコンピュータ10は、コンピュータバス200と接続されたプログラマブルマイクロプロセッサなどの中央処理装置(CPU)210を含むことが示されている。また、コンピュータバス200には、キーボード12とインタフェースするためのキーボードインタフェース220、マウス13とインタフェースするためのマウスインタフェース230、フロッピー(登録商標)ディスク14とインタフェースするためのフロッピー(登録商標)ディスクインタフェース240、ディスプレイ(モニタ)11とインタフェースするためのディスプレイインタフェース250、ネットワーク100とインタフェースするためのネットワークインタフェース260、およびローカル周辺デバイス群(図示せず)とインタフェースするための周辺デバイスインタフェース265も接続される。ランダムアクセスメモリ(「RAM」)270が、コンピュータバス200とインタフェースされ、中央処理装置(「CPU」)210にメモリストレージへのアクセスを提供し、CPU210のためのメインランタイムメモリとして動作する。詳細には、格納済みのプログラム命令シーケンスを実行する際、CPU210は、それらの命令シーケンスを固定ディスク280(または他のメモリ媒体)からランダムアクセスメモリ(「RAM」)270の中に読み込む。そして、RAM270からそれらの格納済みのプログラム命令シーケンスを実行する。ウインドウオペレーティングシステムの下で利用可能な標準ディスクスワップ技術により、メモリのセグメントが、RAM270と固定ディスク280の間でスワップされることが可能になることにも留意されたい。読み取り専用メモリ(「ROM」)290は、CPU210のための起動命令シーケンス、またはコンピュータ10に接続された周辺デバイス群の動作のための基本入出力オペレーションシステム(「BIOS」)などの、不変の命令シーケンスを格納する。
【0024】
固定ディスク280は、中央処理装置(「CPU」)210によって実行可能なプログラム命令シーケンスを格納するコンピュータ可読媒体の一例である。格納済みのプログラム命令の一部には、ウインドウオペレーティングシステム281、プリンタドライバ282、ローカル周辺デバイスドライバ283、暗号化/暗号解読ロジック284、アプリケーションプログラム285、およびネットワーク周辺デバイスドライバ286が含まれる。前述したとおり、オペレーティングシステム281は、好ましくは、ウインドウオペレーティングシステムであるが、他のタイプのオペレーティングシステムも、本発明で使用することができる。プリンタドライバ282は、多機能デバイス30またはプリンタ50などの、少なくとも1つのイメージ形成デバイス上で印刷するためのイメージデータを準備する。ローカル周辺デバイスドライバ283は、ローカル周辺デバイス(すなわち、コンピュータ10にローカルで接続されたデバイス)と接続するためのローカル周辺デバイスインタフェース265を駆動し、制御するのに利用される。暗号化/暗号解読ロジック284は、コンピュータ10によってネットワーク上の他のデバイスに伝送されるべきデータの暗号化を実行可能にする。また、暗号化/暗号解読ロジック284は、コンピュータ10によってネットワーク上の他のデバイスから受信される暗号化されたデータの解読を実行することを可能にする。アプリケーションプログラム285には、例えば、Microsoft Word、PowerPoint、またはCorel WordPerfectなどの、ドキュメントやイメージを作成するための通常のワードプロセッサプログラムが含まれ得る。ネットワーク周辺デバイスドライバ286は、コンピュータ10が、多機能デバイス30上でリモート動作(例えば、リモートスキャン、リモートコピー、リモートファクシミリなど)を実行するなどの、ネットワーク周辺デバイスと通信するのに必要なドライバを含む。
【0025】
図3は、サーバ40の内部アーキテクチャの概略を示すブロック図である。図3では、サーバ40が、中央処理装置(「CPU」)410、キーボードインタフェース420、マウスインタフェース430、ディスプレイインタフェース450、ネットワーク100とインタフェースをとるためのネットワークインタフェース460、ランダムアクセスメモリ(「RAM」)470、固定ディスク480、および読み取り専用メモリ(「ROM」)490を含み、これらのすべてがコンピュータバス400に接続されていることが示されている。以上のコンポーネントのそれぞれの機能および動作は、図2に関連して説明した同様のコンポーネントと同様である。したがって、図2に関連して説明したそれらのコンポーネントの動作の詳細な説明は、図3に示したコンポーネントにも等しく適用される。よって、これらのコンポーネントの説明は、ここでは簡明にするために省略する。
【0026】
固定ディスク480は、CPU410によって実行可能なプログラム命令シーケンスを格納するコンピュータ可読媒体の一例である。詳細には、オペレーティングシステム411、ネットワークインタフェースドライバ412、セキュリティアプリケーション413、およびディレクトリサービス414などのソフトウェアアプリケーションが、固定ディスク480上に格納され得る。ネットワークインタフェースドライバ412は、サーバ40をネットワーク100に接続するためにネットワークインタフェース460を駆動するのに利用される。以下でより詳細に説明するセキュリティアプリケーション413は、本発明を実施するための様々なセキュリティ機能を提供する。簡単に述べると、セキュリティアプリケーション413は、コンピュータ10、多機能デバイス30、およびプリンタ50を含むネットワーク上の様々なデバイスからコマンドを受け取り、相応した形でそれらのコマンドを処理する。例えば、セキュリティアプリケーション413は、多機能デバイス30からコマンドを受信して、デバイス情報をディレクトリサービス414に公開すること、またはTATのブロックのダウンロードを要求することができる。セキュリティアプリケーション413は、コンピュータ10からコマンドを受信して、ジョブをデバイス30に送信する許可を要求することもできる(詳細は後述する)。許可要求には、コンピュータ10が、ジョブのリプレイを防止することができる形で、ジョブを多機能デバイス30に送信することができるのに必要なあらゆるセキュリティ関連情報(やはり、以下により詳細に説明する)を求める要求が含まれ得る。ディレクトリサービス414は、好ましくは、ネットワークに接続された様々なデバイスのデバイス情報を格納することなどの、様々なディレクトリ機能を実行するLDAP(ライトウェイトディレクトリアクセスプロトコル)ベースのディレクトリサービスである。なお、ディレクトリサービス414は、固定ディスク480内部に存在するように図示しているが、代りに、サーバ40の外部に配置することも可能であることに留意されたい。例えば、サーバ40がネットワークインタフェース460を介してネットワーク上でディレクトリサービスサーバと通信できるように、ディレクトリサービスは別のサーバ(図1に示さない)において実施されるようにしてもよい。
【0027】
次に、本発明を実施する際に利用されるソフトウェアアーキテクチャを説明する。簡単に述べると、そのアーキテクチャは、コンピュータ10のような機能ユーザ(以降、「FU」と呼ぶ)、多機能デバイス30のような機能プロバイダ(以降、「FP」と呼ぶ)、セキュリティアプリケーション413のようなセキュリティアプリケーション(以降、「SA」と呼ぶ)、およびディレクトリサービス414のようなディレクトリサービス(以降、「DS」と呼ぶ)を含む。各コンポーネントは、本発明によるジョブ送信プロセスを実行するための機能を提供する様々なモジュールを含む。例えば、印刷動作を実行する際、多機能デバイス30に印刷ジョブを送信することを望む機能ユーザは、セキュリティアプリケーションにジョブ許可要求コマンドを伝送する。その要求は、セキュリティアプリケーションが、TAT(トランザクション許可トークン)を含む許可応答を機能ユーザに提供するためのものであってもよい。その応答は、印刷ジョブをデバイス30に伝送するために利用される。以下により詳細に説明するとおり、許可応答の中に含まれるTATは、印刷ジョブのリプレイアタックを防止するのに利用される。セキュリティアプリケーションは、許可要求を処理して、許可応答で機能ユーザに応答する。機能ユーザは、許可応答を受信した後、印刷ジョブを許可応答と一緒にデバイス30に送信し、機能プロバイダ(デバイス30)が、印刷ジョブを相応した形で処理する。以下により詳細に説明するとおり、機能プロバイダによる印刷ジョブの処理は、印刷ジョブとともに受信される許可応答の中に含まれるTATが有効であることを検証して、リプレイアタックを防止するようにすることが含まれることが可能である。次に、以上のプロセスをより詳細に説明する。
【0028】
図4は、セキュリティアプリケーションコンポーネント113の詳細な内部表現とともにシステムの全体的なソフトウェアアーキテクチャを示している。図4に示されるように、セキュリティアプリケーションコンポーネント113(SA)は、コンピュータ10を含む機能ユーザ110(FU)、多機能デバイス30のような機能プロバイダ130(FP)、管理ユーザ160(「AU」として示す)、およびディレクトリサービス414のようなディレクトリサービス114(DS)と通信する。SA113と、FU110、AU160、およびDS114の間の通信は、好ましくは、SSL(セキュアソケットレイヤ)などのセキュリティで保護された伝送プロトコル上で行われる。図4では、SSL通信を斜線を入れた矢印で表し、他方、非SSL通信は、普通の矢印で表している。ただし、SA113とFP130の間の通信は、SSLリンクを介することも、非SSLリンクを介することも可能である。SSLリンクは、例えば、トークン(TAT)のリストがSA113からFP130にダウンロードされるケースで利用される。他方、非SSLリンクは、FP130によってDS114にデバイス情報を公開する場合、デバイスが新規のデバイスである場合、またはSAからFPにダウンロードされるトークン(TAT)のリストが、暗号化を利用している場合に利用される得る。
【0029】
図4で見られるとおり、セキュリティアプリケーション113は、SSLコンポーネント120、コマンド処理コンポーネント121、セキュリティコンポーネント122、およびディレクトリコンポーネント123を含む。SA内部のSSLコンポーネント120は、ソケット通信のためのSSLサポートを提供する。ソケット上で送信されるすべてのデータは、SSLコンポーネントを経由する。もちろん、通信のために非SSL接続が利用される場合、SSLコンポーネントは、SSLではなく、利用されている通信のタイプに対応する通信コンポーネントを含むものとなる。
【0030】
コマンド処理コンポーネント121は、SAに対する着信コールを扱う。コマンド処理モジュールの主な機能は、異なる送信元からの着信コマンドをSA内部の適切なコンポーネントに変換することである。コマンド処理モジュールが認識することができるコマンドの例が、デバイス公開コマンドである。デバイス公開コマンドは、新規のデバイスのデバイス情報(すなわち、MIB(管理情報ベース)情報など)をDS114に公開することを目的とする。コマンド処理コンポーネントは、このコマンドのためにディレクトリコンポーネント123およびセキュリティコンポーネント122と通信する。
【0031】
セキュリティコンポーネント122は、ネットワーク上のデバイスに対するTATの生成および配信、ならびに許可応答の中に含められるTATにデジタル署名を適用すること(以下により詳細に説明する)などの、新たなデバイスに対するセキュリティ情報の生成および配信を含む様々な動作を実行する。TATは、本発明において、印刷ジョブであれ、他の任意のタイプのトランザクションであれ、所与のトランザクションが1回だけ処理されることを確実にすることにより、リプレイアタックを防止するのに利用される。リプレイ防止におけるTATの基本的な応用は、以下のとおりである。
【0032】
単一のTAT、またはTATのリストが、SAによって生成される。好ましくは、TATは、TATが固有である(決して繰り返されない)こと、およびTATが攻撃者によって、合理的には、予測、または推測されることが可能でないことをともに保証する特性(単純なランダム値、または時刻と日付の表現と組み合わされたランダム値のような)を有する。TATは、FPの中に格納される場合、好ましくは、TATのブロックの一部として、他のTATと一緒に、セキュリティで保護された形で(例えば、SSLを介して、または暗号化されることにより)FPに配信される。つまり、TATのブロックが、SAによって生成され、FPにあらかじめ配信されるか、または都合のよい間隔で配信され、FPが、将来の動作のために使用されるTATのブロックを保持するようにする。このため、SAは、前もってTATのブロックを生成し、FPに送信することができ、FPにおいて、TATのブロックは、必要とされるまで、セキュリティで保護された形で格納される。ジョブをFPに送信することを望むFUは、許可要求をSAに伝送する。SAは、その要求を処理し、許可応答を生成する。TATのブロックとともにFPに配信されたTATの1つが、SAによって許可応答の中に含められ、次に、その応答が、許可要求を伝送したFUに戻される。FUは、ジョブを、TATを含む許可応答と一緒に、FPに配信する。FPは、ジョブに含められたTATを、FPがSAから以前に受信したTATのリストと照合することにより、そのTATが有効であることを確認する。TATが有効である(すなわち、TATが、格納済みのブロックの中に含まれている)と判明した場合、FPは、そのジョブを処理した後、格納済みのリストからTATを削除して、同一のTATを含むいずれのジョブも、将来的に受け入れないようにする。このトークンベースの許可システムにより、各トランザクションが、1回だけしか処理されないことが確実になる。このため、トランザクションのビットイメージが攻撃者によってリプレイされた場合、FPは、FPのローカルストアの中で合致するTATを見つけることができず、そのトランザクションを拒否する。この実装のさらなる利点は、FPが、将来の参照のために使用済みのトークンのコピーを格納する必要が全くないことである。このアプローチは、デバイスの電源サイクル中に生じる可能性があるように、FPによって格納されたトークンを破壊し、次に、使用済みのトークンが見つからないデバイスにトランザクションのリプレイを送信することにより、仕掛けられる可能性がある攻撃を防止する。他方、トークンストアの揮発度に依存して、電源サイクルの後、デバイスにアクティブなTATを再配信することが必要である可能性がある。そのような配信は、いずれも、以下により詳細に説明するとおり、通常の配信機構の限度内で容易に対処することができる。
【0033】
FPに対するSAによるTATの生成および配信、ならびにSAおよびFPによるTATの相互に独立した生成に関して、以下に簡単な説明を提供する。
【0034】
好ましい実施形態では、すべてのトークンは、SAによって生成され、必要に応じて生成されて、FPに個々に転送されるか、またはトークンのブロックとして生成されて、単一の動作でFPに転送される。トークンが個々に生成されるか、ブロックとして生成されるかに関わらず、トークン構築のために同一の方法を使用することができる。これに関して、SAは、単に十分な長さの暗号法上、堅牢なランダム値(rv)を生成することにより、または利用可能な最も細かい分解能の時刻をランダム値と組み合わせることにより、TATを生成することができる。ジェネレータの結果の出力(例えば、rv、rvと組み合わせたtodなど)をTATとして直接に使用することができる。このため、TATが、単にランダム値(rv)を含む場合、SAは、任意の周知のジェネレータを利用して、暗号法上、堅牢なランダム値を生成する。組み合わせの実施形態では、各TATは、以下の方法を使用して、SAによって個々に生成されることが可能である。すなわち、
TATn=tod‖rv
ただし、todは、時刻であり、rvは、暗号法上、堅牢なランダム値であり、‖は、連結を表す。最初のトークンに関して、単純なジェネレータは、以下のとおり実施することができる。すなわち、
TAT0=tod‖rv
ただし、todは、時刻であり、rvは、暗号法上、堅牢なランダム値であり、‖は、連結を表す。SA上のリアルタイムクロックの十分に細かい分解能を使用すると、一意性を保証することができる。
【0035】
TATは、生成されると、必要に応じて個々に、または、より好ましくは、TATのブロックとして、SAによってFPにセキュリティで保護された形で配信されることが可能である。前述したとおり、TATは、SAによってFPに、SSL接続を介して配信されること、またはブロックに、SAによってデジタル署名が行われ、次に、そのブロックが、SAによって暗号化されて、FPに伝送されることが可能である。
【0036】
以上の代替として、TATは、SAおよびFPによって互いに独立に生成されることも可能である。つまり、SAが、TATのブロックを独立に生成することができ、FPも、TATの対応するブロックを独立に生成することができる。この方法は、ネットワークを介してSAからFPにTATのブロックを伝送する必要性をなくし、攻撃者がブロックを傍受する可能性を小さくする。相互生成は、例えば、生成プロセス中、ハッシュ法または暗号化を使用することができる。この実施形態を使用して、SAおよびFPは、TAT値の同一のシリーズを生成し、TAT値のこのシリーズは、攻撃者が前の値のシリーズの知識を有している場合でも、攻撃者が予測することはできない。このタスクを達成する1つのやり方は、入力を混ぜ合わせるハッシュ関数を使用する単純なジェネレータを使用することである。このアプローチを使用して、組み合わせの実施形態における最初のトークンは、SAによって以下のとおり生成されることが可能である。すなわち、
TAT0=tod‖rv
ただし、todは、時刻であり、rvは、暗号法上、堅牢なランダム値である。次に、同一のトークンが、SAとFPの両方によって、以下を使用して生成されることが可能である。すなわち、
TATn=tod‖Hk(TATn-1‖n)
ただし、Hは、HMAC−SHA1のようなキー付きハッシュ関数であり、todは、最初のトークンの中でSAによって提供された時刻であり、kは、現在のブロックの初期設定中にSAによって生成されたランダムキーであり、nは、n>0であるカウンタの値である。この実施形態では、数式の右側のすべての変数は、攻撃者に既知である可能性があるため、ハッシュキーの存在が必須である。kの知識なしには、攻撃者は、tod、TATn-1、およびnの所有にも関わらず、TATnを生成することができない。
【0037】
このため、以上から見て取ることができるとおり、TATは、様々なインプリメンテーションのいずれにおいてSAとFPの間で生成され、配信されてもよい。ただし、好ましくは、TATは、SAによってブロックとして生成され、TATのブロックは、FPに配信され、FPにおいて将来の使用のために格納される。もちろん、TATのブロックは、SAによって保持されることも可能である。したがって、FUが、FP上である動作を実行するように要求すると、いずれのTATが、FUが使用することを望むFPに対応するかをSAが判定することができ、FUがFPに送信されるジョブの中に含める適切なTATを、FUに提供することができる。
【0038】
図4に戻ると、ディレクトリコンポーネント123が、コマンド処理コンポーネント121およびディレクトリサービス114と通信する。図5は、ディレクトリコンポーネント123のより詳細なブロック図を示す。
【0039】
図5で見られるとおり、ディレクトリコンポーネント123は、コマンド処理コンポーネント121およびスキーママネージャモジュール131と通信するデバイス公開モジュール126を含む。デバイス公開モジュール126は、SAによってFPから受信されたデバイス公開コマンドを扱い、新規のデバイスをセットアップする。新たなデバイスが起動され、SAを検出する検出動作を実行すると、デバイス公開モジュールが、デバイススキーマに従ってFPからデバイス構成情報を獲得し、収集された情報をディレクトリサービス114の中に格納する。スキーママネージャモジュール131が、ディレクトリアクセス要求を扱い、ディレクトリスキーマの知識を有し、したがって、いずれのディレクトリアクセス要求もディレクトリスキーマにマップして、ディレクトリサービスの中に格納された情報を、好ましくは、LDAPを介して、プルすることができる。
【0040】
図6は、本発明によるFU、SA、およびDSの間の通信の実施例を示す。以下の説明では、図6に示された番号付きの矢印は、様々なモジュール間の通信を表し、矢印は、括弧付きで(例えば、矢印番号1の場合、(矢印1))で表す。図6では、FUとSAの間のリンクがSSLを介するものと想定して、FU110が、SAがリッスンしているSSLポートに接続する(矢印1)。この時点で、FUとSAの間で認証プロセスが実行されて、SAが、接続を受け入れ、FUに関するスレッドおよび新たなデータ通信ソケットを生成する。このため、セキュリティで保護された(SSL)通信が、SAとFUの間で確立される(矢印2)。次に、FUが、許可要求をSAに送信する(矢印3)。許可要求は、例えば、FP130上で印刷動作を実行するように、およびSAがFUにTATを提供するようにというFUによる要求であることが可能である。コマンド処理コンポーネント121が、要求を処理し、判定モジュール127を呼び出し、要求を判定モジュール127に転送する(矢印4)。判定モジュールは、要求を処理して許可ビットを構築し、その許可ビットをセキュリティコンポーネントに転送する(矢印5)。セキュリティコンポーネントは、許可ビットを処理して、暗号化された(好ましくは、デジタル署名された)TATを判定モジュールに送り返す(矢印6)。判定モジュール127は、暗号化されたTATを許可応答の形態でFUに送り返す(矢印7および矢印8)。次に、FUとSAの間のソケット接続が閉じられる。
【0041】
図7は、FP130とSA113の間における通信のためのソフトウェアアーキテクチャを示す。図7に示すとおり、FPが、SAに対してセキュリティで保護されていない通信を開始することが可能である。セキュリティで保護されていない通信は、例えば、ネットワーク上で新たなデバイスの初期セットアップを始めるために、またはSAがFPにTATの新たなブロックを提供することを要求するために使用することができる。このため、FPは、SAがリッスンしている非SSLポートに接続する。SAは、接続を受け入れ、そのFPに関するスレッドおよび新たなデータ通信ソケットを生成する。初期セットアップモードでは、FPは、それが新たなデバイスであることを明示するデバイス公開コマンドを、コマンド情報ブロックとともにSAに送信する(矢印1)。FPが、TATの新たなブロックを要求している場合、矢印1は、その新たなブロックを要求しているコマンドを表す。コマンド処理コンポーネント121は、受信されたコマンドを処理して、セキュリティコンポーネント122に転送する(矢印2)。FPが新たなデバイスである場合、セキュリティコンポーネント122は、その新たなデバイスにダウンロードされるべきセキュリティ情報を生成する。より具体的には、SAのセキュリティコンポーネントは、その新たなデバイスのために公開キー/秘密キーペアを生成し、SAのために署名された証明書を生成する。セキュリティコンポーネントは、前述した方法のいずれか1つを利用して、TATのブロックも生成する。このプロセスは、コマンドが、新たなデバイスをセットアップするためである場合と、コマンドが、TATの新たなブロックを獲得するためである場合の両方において実行される。代替として、新たなデバイスをセットアップするために、TATの相互生成が使用される実施形態では、セキュリティコンポーネントは、将来のTATの生成のために両方のデバイスによって使用されるべき最初のTATを生成してもよい。次に、セキュリティ情報、またはTATの新たなブロックが、FPにダウンロードされる(矢印3)。矢印3の通信は、矢印1とは異なり、セキュリティで保護された通信であることに留意されたい。つまり、セキュリティ情報、またはTATの新たなブロックは、1)SAが、FPに対してSSLリンクを確立した後、SSLを介してセキュリティ情報をFPに伝送することによってか、または2)SAが、セキュリティ情報を暗号化した後、暗号化されたセキュリティ情報をFPに伝送することによってダウンロードされる。次に、FPが、その接続を解除し、ソケットが閉じられる。
【0042】
図8は、FPに関する内部ソフトウェアアーキテクチャを示す。図8に見られるとおり、FPは、好ましくは、セキュリティコンポーネント132によって提供されるセキュリティで保護されたチャネル接続を介してSAと通信する。セキュリティアプリケーション検出コンポーネント133が、SA検出プロセスを扱う。デバイスの電源が投入されると、このモジュールは、DNSサービスを使用して企業(enterprise)SAコンポーネントを検出し、SAとFPの間でセキュリティで保護された通信を確立する。
【0043】
図9は、機能ユーザ(FU)から機能プロバイダ(FP)にジョブを送信することに関するプロセスステップのフローチャートである。ジョブの送信の実施例として、印刷ジョブが、コンピュータ10(FUを構成する)から多機能デバイス30(FPを構成する)に送信されることが可能であり、印刷ジョブは、サーバ40(SAを構成する)を介して処理される。しかし、印刷ジョブは、送信されることが可能な唯一のタイプのジョブではなく、ジョブは、リモートコピー動作、ファクシミリ動作、スキャン動作を実行する要求、1つの口座から別の口座に資金を振り替える要求などの、様々な機能のいずれを含むことも可能である。さらに、FPは、好ましくは、以上の動作の任意の1つまたは複数を実行することができる多機能デバイスであるが、多機能デバイスである必要はなく、代りに、サーバ、プリンタ、複写機、ファクシミリ装置などの他の任意のタイプのデバイスでああってもよい。図9を参照すると、ステップS901で、ユーザが、何らかのタイプのアクションを実行して、FP上で動作を実行する許可要求を開始する。印刷ジョブが、コンピュータ10から多機能デバイス30に送信されるケースでは、ユーザは、コンピュータ10において開始アクションを実行する。ただし、ユーザは、任意のFUデバイスにおいて要求アクションを開始することができ、本発明は、FPとは別個のコンピュータに限定されない。例えば、FP自体が、ネットワークと通信する多機能デバイス上のタッチパネルディスプレイのような操作ユニットを含み、ユーザが、FP自体において要求を開始することができるようになっていることも可能である。FUがパーソナルコンピュータ10であるケースでは、要求アクションは、ユーザが、ジョブをFPに送信する操作をアプリケーションプログラムにおいて実行することによって開始されることが可能である。印刷動作を実行することに関して公知のとおり、ユーザは、ワードプロセッシングプログラムなどのアプリケーションプログラム内で印刷オプションを選択して、印刷のために印刷ジョブを送信するための印刷ドライバがアクティブにされることにより、印刷プロセスを開始することができる。
【0044】
本発明では、印刷ドライバがアクティブにされると、印刷ジョブに関して印刷ドライバによってジョブデータが生成される。例えば、印刷ドライバは、実行されるべき動作のタイプ(すなわち、印刷)、ジョブのページ数、および様々な印刷オプション(カラー印刷、両面印刷など)を含むジョブデータを生成することができる。加えて、FU(コンピュータ10)およびFP(多機能デバイス30)の情報も、ジョブデータの中に含めることが可能である。例えば、FUおよびFPのMACアドレスまたはIPアドレスなどの識別情報が、獲得され、ジョブデータの中に含めることが可能である。ジョブデータは、獲得された後、好ましくは、許可要求メッセージの形態で、SAに伝送するためにパッケージ化される。
【0045】
次に、FUが、SAに対する接続を確立して、許可要求をSAに伝送する(ステップS902)。接続は、好ましくは、SSLなどのセキュリティで保護された接続である。これは、図6で示された矢印1および矢印2に対応する。ただし、許可要求は、SSLを介して伝送される代りに、暗号化された形態でSAに伝送されることも可能である。セキュリティで保護された接続が確立されると、FUは、許可要求コマンドをSAに送信する(ステップS903)。これは、図6で示された矢印3に対応する。SAは、許可要求を受信すると、その要求を処理して許可応答を構築する(ステップS904)。許可応答を構築する際、SAは、許可要求の中で特定されたFPのためのTATを獲得し、そのTATにデジタル署名する。次に、暗号化された(デジタル署名された)TATが、許可応答の中に含められ、SAが、許可応答をFUに提供する(ステップS905)。SAは、好ましくは、セキュリティで保護された形で(すなわち、SSL、または暗号化を介して)許可応答をFUに提供する。
【0046】
FUは、SAから許可応答を受信した後、ジョブデータおよび許可応答を含むジョブ要求の形態でFPコマンドパッケージを構築する。つまり、FUによってSAから受信される許可応答は、受信されたのと同一の形態でジョブ要求の中に単に挿入される。ジョブ要求(ジョブデータおよび許可応答を含む)は、好ましくは、セッションキーを利用して暗号化され、次に、暗号化されたジョブが、FUによってFPに送信される(ステップS906)。暗号化されたジョブ要求を受信すると、FPは、セッションキーを利用して、受信されたデータを解読し、許可応答からTATを抽出する。FPは、抽出されたTATが有効であるかどうかを判定し(ステップS907)、有効であった場合、相応した形でそのジョブを処理する(ステップS908)(すなわち、ジョブは、印刷ジョブである場合、印刷される)。TATが無効であると判定された場合、ジョブは、拒否される(ステップS909)。ステップS907のTAT検証プロセスを、図10および図11に関連して以下により詳細に説明する。
【0047】
図10は、FPが、ジョブとともに受信されたTATの有効性を確認するプロセスステップのフローチャートである。図10に示されるように、FPのセキュリティコンポーネント132は、FUからジョブを受信する(ステップS1001)。前述したとおり、ジョブは、好ましくは、許可応答の一部としてTATを含む。セキュリティコンポーネント132は、受信された許可応答からTATを抽出し、そのTATをFPの中に以前に格納されているTATのブロックと比較する(ステップ1002)。前述したとおり、TATのブロックは、好ましくは、FPの中にあらかじめ格納される。この比較に基づき、ジョブとともに受信されたTATが、TATの格納済みのブロックの中に含まれているか否かの判定が行われる(ステップS1003)。含まれていない場合、TATは、無効であると判定され(ステップS1004)、ジョブは、拒否される(ステップS909)。一方、対応するTATが格納済みのブロックの中に含まれている場合、TATは、有効であると判定され(ステップS1005)、ジョブは、相応した形で処理される。TATは、使用された後、TATの格納済みのブロックから削除される(ステップS1006)。次に、処理は、図9のステップS908に進む。このように、各メッセージに固有である固有メッセージ(有効化)コードを使用することにより、各メッセージに固有であるコードに基づいて判定が行われるため、リプレイされたメッセージが有効であると認められないことは容易に理解できるであろう。
【0048】
図11は、図10に類似したフローチャートであるが、TAT検証プロセス内に含めることができる追加のステップを含む。このため、ステップS1101乃至S1106は、前述したステップS1001乃至S1006と同一である。ただし、図11では、TATがTATの格納済みのブロックから削除された後、十分な数のTATが格納済みのブロックの中に残っているか否かの判定が行われる。このため、ステップS1107で、格納済みのブロックの中に残っているTATの数が、所定の数(n)未満であるかどうかの判定が行われる。ただし、nは、任意の整数であることが可能である。例えば、nを1とすることにより、TATが格納済みのブロックの中に全く残っていない(0)場合に、FPが、追加のTATを獲得するプロセスを開始することができるように構成できる。このため、十分な数のTATが、依然、格納済みのブロックの中に残っている場合、TAT検証プロセスは、停止し(ステップS1108)、処理は、ステップS908に進んでジョブを処理する。しかし、格納済みのブロックの中に残っているTATの数が不十分である場合、FPは、格納済みのブロックのために追加のTATを獲得するプロセスを実行する(ステップS1109)。なお、追加のTATを獲得するプロセスを始めるのに先立って、ステップS1107の一環として追加の判定を行うことができ、追加のTATをダウンロードまたは獲得するプロセスが既に進行中であるか否かについての判定を行うことができることに留意されたい。プロセスが既に進行中である場合、ステップS1109は、実行される必要がなく、流れは、ステップS1108に進む。TATのブロックが、SAによって生成され、SAによってFPに伝送されるケースでは、図12に関連して以下に説明するようなプロセスを使用することができる。しかし、TATが、SAおよびFPによって相互に生成される実施形態では、FPのセキュリティコンポーネント132は、単に、相互TAT生成アルゴリズムに基づいてTATの新たなブロックを内部で生成し、追加のTATをブロックの中に格納することができる。
【0049】
図12は、TATの相互生成ではなく、TATのブロックがSAによって生成され、伝送されるケースで、機能プロバイダがSAから追加のTATを獲得するプロセスステップのフローチャートである。図12のプロセスステップは、ステップS1109のプロセスに対応する。図12に示されるように、FPは、格納済みのブロックに追加のTATが必要とされていると判定すると、SAに対する接続を確立する(ステップS1201)。接続は、好ましくは、セキュリティで保護されたSSL接続であるが、SSLが利用されず、TATの暗号ベースの通信が代りに利用される場合、接続は、セキュリティで保護されていない接続であることも可能である。SAに対して接続を確立した後、FPは、追加のTATを要求するコマンドをSAに送信する(ステップS1202)。SAは、この要求を受信すると、まず、様々な認証検査を実行し、要求を伝送したFPの認証を行うことができる。FPが認証されると、SAは、要求を処理し、TATの新たなブロックを生成する(ステップ1203)。TATの新たなブロックは、TAT生成に関して前述したのと同一の形で生成される。次に、TATの新たなブロックは、セキュリティで保護された形でFPに伝送される(ステップS1204)。前述したとおり、TATのブロックは、SAによってSSLを介してFPにセキュリティで保護された形で伝送されることが可能である。あるいはTATのブロックは、暗号化され、オプションとして、デジタル署名された後、非SSLチャネルを介してFPに伝送されることが可能である。FPが、TATの新たなブロックを受信すると、その新たなブロックは、FPの中に格納される(ステップS1205)。ステップS1205で、TATの新たなブロックは、現在、格納されているブロックから残っているあらゆるTATを削除し、TATの新たに受信されたブロックでそれらを置き換えることにより、セキュリティコンポーネント132の中に格納することができるか、あるいは代替として、TATの新たに受信されたブロックを残っている格納済みのTATに追加して、累加的なブロックを形成することもできる。
【0050】
このため、図9乃至図12による以上の説明からわかるように、FUが、許可要求をSAに送信する。SAは、その要求を処理し、TATを含む許可応答を生成し、その許可応答をFUに伝送する。FUは、許可応答を受信すると、その許可応答を含むジョブをFPに送信する。FPは、ジョブおよび許可応答を受信すると、TATを抽出し、受信されたTATをTATの格納済みのリストと比較して、そのTATが有効であるか否かを判定する。受信されたTATが、格納済みのリストの中に含まれていなかった場合、ジョブは、拒否される。つまり、FPは、現在のジョブ要求が、既に受信され、リストから削除されたTATを含むことから、依然に送信されたジョブのリプレイであると判定する。しかし、受信されたTATが、格納済みのリストの中に含まれていると判明した場合、そのTATは、有効であると見なされ、ジョブは、相応した形で処理される。次に、そのTATは、格納済みのリストから削除されて、同一のTATを使用してジョブ要求をリプレイしようとするあらゆる試みが、拒否されるようになる。以上から容易に理解できるように、上述したプロセスは、メッセージのリプレイアタックを防止する比較的自動化されたやり方を提供する。
【0051】
以上のプロセスステップは、1つまたは複数のコンピュータデバイスによって実行されるコンピュータ実行可能なプロセスステップとして実施することができる。コンピュータ実行可能プロセスステップは、フロッピー(登録商標)ディスク、磁気ディスク、CD−ROM、ハードディスクなどのコンピュータ可読媒体の中に格納することができる。このため、本発明は、コンピュータ実行可能プロセスステップ自体としても、コンピュータ実行可能プロセスステップを格納するコンピュータ可読記憶媒体としても実施することができる。さらに、コンピュータ実行可能プロセスステップを内部に格納しているコンピュータのような装置が、本発明を構成することも可能である。
【0052】
以上、本発明を特定の例示的な諸実施形態を使用して説明してきた。しかしながら、本発明は、前述した諸実施形態に限定されず、本発明の趣旨および範囲を逸脱することなく、様々な変更および変形が当業者によって行われることが可能であることを理解されたい。
【図面の簡単な説明】
【0053】
【図1】本発明を実施することができるネットワーク化されたコンピューティング環境を示す図である。
【図2】パーソナルコンピュータの内部アーキテクチャの例を示すブロック図である。
【図3】サーバの内部アーキテクチャの例を示すブロック図である。
【図4】本発明による様々なコンポーネント間の通信に関するソフトウェアアーキテクチャを示す図である。
【図5】ディレクトリコンポーネントによってコマンドを処理することに関するソフトウェアアーキテクチャを示す図である。
【図6】本発明による許可要求および許可応答が関わる通信に関するソフトウェアアーキテクチャを示す図である。
【図7】機能プロバイダとセキュリティアプリケーションの間における通信の例を示す図である。
【図8】機能プロバイダ内部のソフトウェアアーキテクチャを示す図である。
【図9】本発明によるジョブを機能プロバイダに送信し、機能プロバイダがそのジョブを処理することに関するプロセスステップを示すフローチャートである。
【図10】機能プロバイダが、ジョブとともに受信されたトークンの有効性を判定するプロセスステップを示すフローチャートである。
【図11】機能プロバイダが、ジョブとともに受信されたトークンの有効性を判定し、追加のトークンが必要とされているかどうかを判定するプロセスステップを示すフローチャートである。
【図12】機能プロバイダが、セキュリティアプリケーションから追加のトークンを獲得するプロセスステップを示すフローチャートである。
【技術分野】
【0001】
本発明は、ネットワークを介して伝送されるメッセージのリプレイアタック(replay attack)に対するセキュリティに関する。より詳細には、本発明は、傍受されたメッセージがリプレイ(再生)されることに対するセキュリティに関する。このセキュリティは、メッセージの処理を有効にするか否かを判定するために、メッセージに含められた固有メッセージ有効化コードを、受信側デバイスの中の格納された固有メッセージ有効化コードのリストと比較することによりなされる。
【背景技術】
【0002】
ネットワークを介して伝送されるメッセージのリプレイアタックは、残念ながら、一般的に見られることになっている。リプレイアタックは、通常、ハッカが、ネットワークを介して伝送されたメッセージを傍受し、そして、その後のある時点で、宛先のデバイスにメッセージを再度、再送信する(つまり、メッセージをリプレイする)ことから成る。例として、1つの口座から別の口座への金銭の振替のために、自宅ユーザまたはビジネスユーザから金融機関にインターネットを介してメッセージが伝送され得る。このメッセージを傍受したハッカが、後のある時点で、そのメッセージを金融機関に再度、送信して、資金の第2の振替をもたらす可能性がある。また、別の例として、ネットワークを介するプリンタへの機密の印刷ジョブの伝送が、ハッカによって傍受されることが可能である。そして、ハッカは、後のある時点でプリンタに対するその印刷ジョブをリプレイして(すなわち、再送信して)、機密情報を獲得することができる。
【0003】
以上のような、ネットワークを介する多くの伝送は、デジタル署名などの、何らかのタイプのセキュリティを利用してメッセージが本物であることを検証することができる。しかしながら、そのような署名は、リプレイアタックを防止するのにほとんど役立たない。この点について、ハッカは、メッセージを傍受することにより、後の時点でそのメッセージをリプレイするのに必要な署名を獲得することができる。署名は、メッセージの第1回目のリプレイにおいて検証されているため、メッセージの第2回目の再生(playback)でも検証される可能性が高い。
【0004】
リプレイアタックに対処するために提案されている1つの技術(Kerberosとして知られる)は、伝送されるメッセージにチケットおよびタイムスタンプを追加することを含む。メッセージが受信側デバイスによって受信されると、チケットおよびタイムスタンプは、指定された時間(例えば、5分間)にわたり、受信側デバイスの中で一時的に保持される。さらなるメッセージが受信されると、新たに受信されたメッセージのチケットおよびタイムスタンプが抽出されて、それらが、一時的に保持されているチケットおよびタイムスタンプのいずれかと同一であるかどうかが判定される。同一である場合、エラーメッセージが戻される。このため、このシステムは、リプレイアタックに対するいくらかのセキュリティをもたらすが、しかし、いくつかの問題を抱えている。
【0005】
前述のシステムが抱える1つの問題は、タイムスタンプが、メッセージの有効性の目安として使用される場合、同一のタイムスタンプが異なるメッセージに与えられる可能性があるということである。このように、タイムスタンプは、メッセージ自体を特定するのではなく、メッセージが伝送された時刻を特定するため、正規のメッセージと同一のタイムスタンプが存在する場合、リプレイされたメッセージが有効であると見なされる可能性がある。
【0006】
また、前述のシステムが抱える別の問題は、各受信側デバイスが、使用済みのチケットおよびタイムスタンプを格納するのに十分なストレージスペースを提供しなければならないことに起因するオーバーヘッドの増加である。多くのメッセージが受信されるにつれて、使用済みのチケットを保持するために大量のストレージスペースが必要とされる。さらに、チケットの数が増えるにつれ、使用済みのチケットを探索するためにより多くの処理時間が要求されてしまい、時間に関するシステムのパフォーマンスが低下してしまう。
【0007】
加えて、ハッカが、一時的に保持されたチケットおよびタイムスタンプを受信側デバイスから削除した後、メッセージをリプレイできる可能性がある。このため、チケットおよびタイムスタンプが1回使用されている可能性があるものの、そのチケットおよびタイムスタンプは一時的に保持された情報から削除されている。そのため、リプレイされるメッセージは、そのメッセージが、タイムスタンプの許容できる時間枠内でリプレイされるものと想定すると有効であると認識される。この結果、使用済みのチケットおよびタイムスタンプを一時的に保持するKerberosプロセスは、いくらかの保護を提供するが、依然としてリプレイアタックの防止にいくらかの弱点を有する。
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明の目的は、前述の諸問題の少なくとも1つを解決することである。本発明は、ジョブを受け取って処理するデバイスの中に有効なコードまたはトークンのリストを格納する。そして、受信されたメッセージに含められた固有メッセージ有効化コード(トークン)を格納済みのリストと比較し、そのコード(トークン)が有効であるか否かを判定する。次に、格納済みのリストから受信済みのコード(トークン)を削除する。以上のようにして、本発明は前述の課題に対処する。このため、本発明によれば、固有メッセージ有効化コードのリストが、受信側デバイスの中に格納される。ホストデバイスにおいて生成されたメッセージが受信側デバイスに伝送される。このメッセージは、生成されたリストからの固有メッセージ有効化コードの少なくとも1つを含む。受信側デバイスは、メッセージを受信すると、受信されたメッセージに含められた固有メッセージ有効化コードを格納済みのリストの中に含まれるコード群と比較し、そのメッセージの処理を拒否するか否かを判定する。このため、一つの実施形態では、メッセージとともに受信された固有メッセージ有効化コードが格納済みのリストの中に含まれている場合、そのメッセージは、有効であると見なされ、対応する固有メッセージ有効化コードが格納済みのリストから削除される。しかし、メッセージとともに受信された固有メッセージ有効化コードが、格納済みのリストの中に含まれていなかった場合、そのメッセージの処理は拒否される。
【0009】
この結果、ハッカがメッセージを傍受して、後の時点で受信側デバイスにそのメッセージを再送信することによって、メッセージを再度、リプレイしようと試みるような場合、受信側デバイスはそのメッセージを拒否する。固有メッセージ有効化コードが格納済みのリストの中にもはや含まれていないためである。さらに、前述したKerberosシステムとは異なり、ハッカが、受信側デバイスからコードの格納済みのリストを削除するような場合、コードがリストの中に含まれていないので、リプレイされるメッセージは拒否される。もちろん、この場合、メッセージの第1回の再生も拒否されるが、メッセージの送信者は、単に新たなコードを獲得して、その新たなコードとともに新たなメッセージを伝送することができる。さらに、ハッカが、現在、格納されているリストを削除するようなことがあった場合、コードの新たなリストを自動的に獲得するデバイスをシステムに組み込むことができる。このため、受信側デバイスに特有の固有メッセージ有効化コードのリストを受信側デバイスの中で提供することにより、傍受されたメッセージのリプレイに対するセキュリティを容易に提供することができる。
【課題を解決するための手段】
【0010】
このため、本発明の一態様では、第1のデバイスから第2のデバイスによって実行されるメッセージの固有メッセージ有効化コードを第2のデバイスの中に格納された固有メッセージ有効化コードのリストと比較する。そして、メッセージとともに受信された固有メッセージ有効化コードが格納済みのリストの中に含まれているかどうかを判定する。このようにすることで、第1のデバイスから第2のデバイスに伝送されるメッセージのリプレイに対するセキュリティを提供する。この比較に基づき、第2のデバイスによるメッセージの処理を拒否するか否かの判定が行われる。
【0011】
メッセージとともに受信された固有メッセージ有効化コードが格納済みのリストの中に含まれていると判定された場合、メッセージの処理は拒否されず、対応する固有メッセージ有効化コードが格納済みのリストから削除される。他方、メッセージとともに受信された固有メッセージ有効化コードが、格納済みのリストの中に含まれていないと判定された場合、メッセージの処理は拒否される。
【0012】
固有メッセージ有効化コードのリストは、好ましくは、第3のデバイスまたは第1のデバイスによって生成され、生成されたリストが、第2のデバイスに伝送されて、第2のデバイスの中に格納される。代替として、固有メッセージ有効化コードは、デバイス間でリストを伝送するのではなく、第2のデバイスおよび第3のデバイスによって相互に生成されてもよい。このため、メッセージは、生成されたリストからの固有メッセージ有効化コードの少なくとも1つを含むように、第1のデバイスにおいて生成されることが可能である。もちろん、メッセージおよび固有メッセージ有効化コードは、次に、第1のデバイスから第2のデバイスに伝送されることが可能である。
【0013】
メッセージを生成することの一環として、第1のデバイスは、第3のデバイスから、メッセージの中に含められるべき固有メッセージ有効化コードを要求することができる。これにより、第3のデバイスは、メッセージの中に含められるべき固有メッセージ有効化コードを第1のデバイスに伝送する。この態様では、セキュリティで保護されたサーバが、第2のデバイスのために有効なコードのリストを保持することができ、複数の第1のデバイスが、第2のデバイスにメッセージを送信するのに使用するためのコードを要求することができる。
【0014】
本発明の別の態様では、第2のデバイスは、格納済みのリストの中に所定の数以下の固有メッセージ有効化コードが含まれているかどうかを判定することができる。リストが所定の数以下の固有メッセージ有効化コードを含むと判定された場合、第2のデバイスは、そのリストに対する追加の固有メッセージ有効化コードを獲得することができる。例えば、第2のデバイスは、リストが所定の数以下まで使い果たされると、追加のコードが必要とされていることを第1のデバイスまたは第2のデバイスに通知することができる。このため、追加の固有メッセージ有効化コードが、第2のデバイスに伝送されることが可能である。これにより、第2のデバイスは、現在、格納されているリストの代りに新たなリストの利用を開始するか、または追加のコードを現在のリストに単に加えて、累加的なリストを形成することができる。代替として、第2のデバイスは、コードの相互生成が使用される実施形態の場合、単に新たなリスト自体を生成してもよい。
【0015】
以上では、本発明において3つのデバイスが利用されるケースを説明したが、より少ない、またはより多いデバイスが代りに使用されることも可能であることは容易に認識できるであろう。例えば、コードのリストが、第1のデバイス自体において生成され、リストが第2のデバイスに転送されるような、第1のデバイスおよび第2のデバイスだけを利用するシステムも使用することができる。そして、第1のデバイスが第2のデバイスにジョブを送信しようとする場合、ジョブに含められるべきコードを、第3のデバイスと通信して獲得する必要なしに、単に第1のデバイス独自の内部リストから獲得することができる。
【0016】
以上の簡単な概要は、本発明の性質を迅速に理解することができるように提供した。本発明のより完全な理解は、添付の図面に関連して、本発明の好ましい諸実施形態の以下の詳細な説明を参照することにより得ることができる。
【発明を実施するための最良の形態】
【0017】
本発明は、メッセージのリプレイアタックを防止することを目的とする。以下により詳細に説明するとおり、本発明は、パーソナルコンピュータ、多機能デバイス、およびサーバなどの様々なデバイスが、ネットワークを介して互いに通信する、ネットワークコンピューティング環境において実施される。なお、以下に提供する詳細な説明は、印刷ジョブがホストコンピュータから多機能デバイスに伝送され、多機能デバイス上における印刷ジョブのリプレイが防止される、印刷動作を実行することを対象としている。しかしながら、本発明はそのような実施形態に限定されるものではない。むしろ、本発明は、無許可のユーザによるメッセージのリプレイが防止されるべき様々な環境のいずれにおいても実施することができる。このため、本明細書に添付した特許請求の範囲は、印刷環境に限定されず、電子通信のリプレイアタックが防止されるべきあらゆる環境を包含するものとして広く解釈されるべきである。
【0018】
図1は、本発明を実施することができるネットワーク化されたコンピューティング環境のシステムを示す図である。図1に示すとおり、ネットワーク化されたコンピューティング環境は、デスクトップコンピュータ10、サーバ40、多機能デバイス30、およびプリンタ50が接続されたネットワーク100を含むことができる。ネットワーク100は、好ましくは、バスタイプの物理的アーキテクチャから成るイーサネット(登録商標)ネットワーク媒体である。ただし、本発明は、インターネットを含む他のタイプのネットワークで利用することもできる。
【0019】
デスクトップコンピュータ10は、好ましくは、Microsoft Windows (登録商標)2000、Windows (登録商標)MEその他のオペレーティングシステムなどのウインドウ環境を有するIBM PC互換コンピュータなどの、パーソナルコンピュータである。典型的なパーソナルコンピュータがそうであるように、デスクトップコンピュータ10は、好ましくは、ディスプレイ11(カラーモニタなどの)、キーボード12、マウス13、またはその他のタイプのポインティングデバイス、ならびにフロッピー(登録商標)ディスク、ハードディスク、CD−ROMなどの記憶媒体14を有する。
【0020】
また、図1には、ネットワーク100には多機能デバイス30が接続されている様子が示されている。デバイス30は、自身が処理するべきコマンドおよびデータをネットワーク100を介して受信することができる。例えば、デバイス30は、印刷ジョブを処理してイメージを印刷するために、パーソナルコンピュータ10から印刷ジョブを受信することができる。多機能デバイス30は、ファクシミリを送受信すること、写真複写動作を実行すること、またはイメージをスキャンすることも可能である。多機能デバイス30は、ネットワークインタフェース(図示せず)を介してネットワーク100上で他のデバイス群と通信し、ネットワーク上の他のデバイス群からのコマンドおよびデータを受信し、それを処理することができる。多機能デバイス30に関わる本発明の1つの特徴は、デバイス30が、固有メッセージ有効化コード(以降、「トークン」または「TAT」とも呼ぶ)のリストを格納することである。リストは、以下でより詳細に説明するが、例えば、サーバ40によってデバイス30に提供され、ネットワーク上の他のデバイスによるデバイス30へのメッセージまたは伝送のリプレイを防止するのに利用される。このため、デバイス30は、パーソナルコンピュータ10とだけでなく、サーバ40とも通信する能力を含む。
【0021】
これに関連して、サーバ40もネットワーク100に接続される。サーバ40は、様々なタイプのサーバオペレーティングシステムのうちのいずれか1つを有するサーバタイプのコンピュータを含む。さまざまなタイプのサーバオペレーティングシステムとは、たとえば、好ましくは、DOS、Microsoft Windows (登録商標)2000 Server、Novell、UNIX(登録商標)、Linuxなどである。サーバ40は、好ましくは、多数のファイルを格納するための大型の固定ディスクである記憶装置480を有する。したがって、サーバ40は、ネットワーク100上の他のデバイス群によってファイルサーバとして利用されることが可能である。また、サーバ40は、インターネットなどの別のネットワークへの、ネットワーク100上の他のデバイス群のためのゲートウェイとしても動作することが可能である。本発明により特有のこととして、サーバ40は、好ましくは、本発明を実施する際に利用される固有メッセージ有効化コード、またはTAT(トランザクションアクセストークン)を生成するセキュリティアプリケーション(SA)を含む。つまり、サーバ40のセキュリティアプリケーションは、セキュリティで保護された形でネットワーク上の他のデバイス群(多機能デバイス30など)に伝送されることが可能な、TATのリストを生成する能力を含む。ここで、セキュリティで保護された形とは、例えば、SSL接続や、暗号化によってなされうる。以上のプロセスは、サーバのセキュリティアプリケーションに関連して以下により詳細に説明される。
【0022】
プリンタ50もネットワーク100に接続される。プリンタ50は、好ましくは、レーザプリンタまたはバブルジェット(登録商標)プリンタである。プリンタ50は、多機能デバイス30のような機能を含むが、より具体的には、印刷動作だけを実行することを目的とする。このため、プリンタ50は、本発明に関連するところでは、多機能デバイス30と同一の形で動作し、したがって、デバイス30の説明は、プリンタ50にも同等に当てはまる。
【0023】
図2は、デスクトップコンピュータ10の内部アーキテクチャの概略を示すブロック図である。図2において、デスクトップコンピュータ10は、コンピュータバス200と接続されたプログラマブルマイクロプロセッサなどの中央処理装置(CPU)210を含むことが示されている。また、コンピュータバス200には、キーボード12とインタフェースするためのキーボードインタフェース220、マウス13とインタフェースするためのマウスインタフェース230、フロッピー(登録商標)ディスク14とインタフェースするためのフロッピー(登録商標)ディスクインタフェース240、ディスプレイ(モニタ)11とインタフェースするためのディスプレイインタフェース250、ネットワーク100とインタフェースするためのネットワークインタフェース260、およびローカル周辺デバイス群(図示せず)とインタフェースするための周辺デバイスインタフェース265も接続される。ランダムアクセスメモリ(「RAM」)270が、コンピュータバス200とインタフェースされ、中央処理装置(「CPU」)210にメモリストレージへのアクセスを提供し、CPU210のためのメインランタイムメモリとして動作する。詳細には、格納済みのプログラム命令シーケンスを実行する際、CPU210は、それらの命令シーケンスを固定ディスク280(または他のメモリ媒体)からランダムアクセスメモリ(「RAM」)270の中に読み込む。そして、RAM270からそれらの格納済みのプログラム命令シーケンスを実行する。ウインドウオペレーティングシステムの下で利用可能な標準ディスクスワップ技術により、メモリのセグメントが、RAM270と固定ディスク280の間でスワップされることが可能になることにも留意されたい。読み取り専用メモリ(「ROM」)290は、CPU210のための起動命令シーケンス、またはコンピュータ10に接続された周辺デバイス群の動作のための基本入出力オペレーションシステム(「BIOS」)などの、不変の命令シーケンスを格納する。
【0024】
固定ディスク280は、中央処理装置(「CPU」)210によって実行可能なプログラム命令シーケンスを格納するコンピュータ可読媒体の一例である。格納済みのプログラム命令の一部には、ウインドウオペレーティングシステム281、プリンタドライバ282、ローカル周辺デバイスドライバ283、暗号化/暗号解読ロジック284、アプリケーションプログラム285、およびネットワーク周辺デバイスドライバ286が含まれる。前述したとおり、オペレーティングシステム281は、好ましくは、ウインドウオペレーティングシステムであるが、他のタイプのオペレーティングシステムも、本発明で使用することができる。プリンタドライバ282は、多機能デバイス30またはプリンタ50などの、少なくとも1つのイメージ形成デバイス上で印刷するためのイメージデータを準備する。ローカル周辺デバイスドライバ283は、ローカル周辺デバイス(すなわち、コンピュータ10にローカルで接続されたデバイス)と接続するためのローカル周辺デバイスインタフェース265を駆動し、制御するのに利用される。暗号化/暗号解読ロジック284は、コンピュータ10によってネットワーク上の他のデバイスに伝送されるべきデータの暗号化を実行可能にする。また、暗号化/暗号解読ロジック284は、コンピュータ10によってネットワーク上の他のデバイスから受信される暗号化されたデータの解読を実行することを可能にする。アプリケーションプログラム285には、例えば、Microsoft Word、PowerPoint、またはCorel WordPerfectなどの、ドキュメントやイメージを作成するための通常のワードプロセッサプログラムが含まれ得る。ネットワーク周辺デバイスドライバ286は、コンピュータ10が、多機能デバイス30上でリモート動作(例えば、リモートスキャン、リモートコピー、リモートファクシミリなど)を実行するなどの、ネットワーク周辺デバイスと通信するのに必要なドライバを含む。
【0025】
図3は、サーバ40の内部アーキテクチャの概略を示すブロック図である。図3では、サーバ40が、中央処理装置(「CPU」)410、キーボードインタフェース420、マウスインタフェース430、ディスプレイインタフェース450、ネットワーク100とインタフェースをとるためのネットワークインタフェース460、ランダムアクセスメモリ(「RAM」)470、固定ディスク480、および読み取り専用メモリ(「ROM」)490を含み、これらのすべてがコンピュータバス400に接続されていることが示されている。以上のコンポーネントのそれぞれの機能および動作は、図2に関連して説明した同様のコンポーネントと同様である。したがって、図2に関連して説明したそれらのコンポーネントの動作の詳細な説明は、図3に示したコンポーネントにも等しく適用される。よって、これらのコンポーネントの説明は、ここでは簡明にするために省略する。
【0026】
固定ディスク480は、CPU410によって実行可能なプログラム命令シーケンスを格納するコンピュータ可読媒体の一例である。詳細には、オペレーティングシステム411、ネットワークインタフェースドライバ412、セキュリティアプリケーション413、およびディレクトリサービス414などのソフトウェアアプリケーションが、固定ディスク480上に格納され得る。ネットワークインタフェースドライバ412は、サーバ40をネットワーク100に接続するためにネットワークインタフェース460を駆動するのに利用される。以下でより詳細に説明するセキュリティアプリケーション413は、本発明を実施するための様々なセキュリティ機能を提供する。簡単に述べると、セキュリティアプリケーション413は、コンピュータ10、多機能デバイス30、およびプリンタ50を含むネットワーク上の様々なデバイスからコマンドを受け取り、相応した形でそれらのコマンドを処理する。例えば、セキュリティアプリケーション413は、多機能デバイス30からコマンドを受信して、デバイス情報をディレクトリサービス414に公開すること、またはTATのブロックのダウンロードを要求することができる。セキュリティアプリケーション413は、コンピュータ10からコマンドを受信して、ジョブをデバイス30に送信する許可を要求することもできる(詳細は後述する)。許可要求には、コンピュータ10が、ジョブのリプレイを防止することができる形で、ジョブを多機能デバイス30に送信することができるのに必要なあらゆるセキュリティ関連情報(やはり、以下により詳細に説明する)を求める要求が含まれ得る。ディレクトリサービス414は、好ましくは、ネットワークに接続された様々なデバイスのデバイス情報を格納することなどの、様々なディレクトリ機能を実行するLDAP(ライトウェイトディレクトリアクセスプロトコル)ベースのディレクトリサービスである。なお、ディレクトリサービス414は、固定ディスク480内部に存在するように図示しているが、代りに、サーバ40の外部に配置することも可能であることに留意されたい。例えば、サーバ40がネットワークインタフェース460を介してネットワーク上でディレクトリサービスサーバと通信できるように、ディレクトリサービスは別のサーバ(図1に示さない)において実施されるようにしてもよい。
【0027】
次に、本発明を実施する際に利用されるソフトウェアアーキテクチャを説明する。簡単に述べると、そのアーキテクチャは、コンピュータ10のような機能ユーザ(以降、「FU」と呼ぶ)、多機能デバイス30のような機能プロバイダ(以降、「FP」と呼ぶ)、セキュリティアプリケーション413のようなセキュリティアプリケーション(以降、「SA」と呼ぶ)、およびディレクトリサービス414のようなディレクトリサービス(以降、「DS」と呼ぶ)を含む。各コンポーネントは、本発明によるジョブ送信プロセスを実行するための機能を提供する様々なモジュールを含む。例えば、印刷動作を実行する際、多機能デバイス30に印刷ジョブを送信することを望む機能ユーザは、セキュリティアプリケーションにジョブ許可要求コマンドを伝送する。その要求は、セキュリティアプリケーションが、TAT(トランザクション許可トークン)を含む許可応答を機能ユーザに提供するためのものであってもよい。その応答は、印刷ジョブをデバイス30に伝送するために利用される。以下により詳細に説明するとおり、許可応答の中に含まれるTATは、印刷ジョブのリプレイアタックを防止するのに利用される。セキュリティアプリケーションは、許可要求を処理して、許可応答で機能ユーザに応答する。機能ユーザは、許可応答を受信した後、印刷ジョブを許可応答と一緒にデバイス30に送信し、機能プロバイダ(デバイス30)が、印刷ジョブを相応した形で処理する。以下により詳細に説明するとおり、機能プロバイダによる印刷ジョブの処理は、印刷ジョブとともに受信される許可応答の中に含まれるTATが有効であることを検証して、リプレイアタックを防止するようにすることが含まれることが可能である。次に、以上のプロセスをより詳細に説明する。
【0028】
図4は、セキュリティアプリケーションコンポーネント113の詳細な内部表現とともにシステムの全体的なソフトウェアアーキテクチャを示している。図4に示されるように、セキュリティアプリケーションコンポーネント113(SA)は、コンピュータ10を含む機能ユーザ110(FU)、多機能デバイス30のような機能プロバイダ130(FP)、管理ユーザ160(「AU」として示す)、およびディレクトリサービス414のようなディレクトリサービス114(DS)と通信する。SA113と、FU110、AU160、およびDS114の間の通信は、好ましくは、SSL(セキュアソケットレイヤ)などのセキュリティで保護された伝送プロトコル上で行われる。図4では、SSL通信を斜線を入れた矢印で表し、他方、非SSL通信は、普通の矢印で表している。ただし、SA113とFP130の間の通信は、SSLリンクを介することも、非SSLリンクを介することも可能である。SSLリンクは、例えば、トークン(TAT)のリストがSA113からFP130にダウンロードされるケースで利用される。他方、非SSLリンクは、FP130によってDS114にデバイス情報を公開する場合、デバイスが新規のデバイスである場合、またはSAからFPにダウンロードされるトークン(TAT)のリストが、暗号化を利用している場合に利用される得る。
【0029】
図4で見られるとおり、セキュリティアプリケーション113は、SSLコンポーネント120、コマンド処理コンポーネント121、セキュリティコンポーネント122、およびディレクトリコンポーネント123を含む。SA内部のSSLコンポーネント120は、ソケット通信のためのSSLサポートを提供する。ソケット上で送信されるすべてのデータは、SSLコンポーネントを経由する。もちろん、通信のために非SSL接続が利用される場合、SSLコンポーネントは、SSLではなく、利用されている通信のタイプに対応する通信コンポーネントを含むものとなる。
【0030】
コマンド処理コンポーネント121は、SAに対する着信コールを扱う。コマンド処理モジュールの主な機能は、異なる送信元からの着信コマンドをSA内部の適切なコンポーネントに変換することである。コマンド処理モジュールが認識することができるコマンドの例が、デバイス公開コマンドである。デバイス公開コマンドは、新規のデバイスのデバイス情報(すなわち、MIB(管理情報ベース)情報など)をDS114に公開することを目的とする。コマンド処理コンポーネントは、このコマンドのためにディレクトリコンポーネント123およびセキュリティコンポーネント122と通信する。
【0031】
セキュリティコンポーネント122は、ネットワーク上のデバイスに対するTATの生成および配信、ならびに許可応答の中に含められるTATにデジタル署名を適用すること(以下により詳細に説明する)などの、新たなデバイスに対するセキュリティ情報の生成および配信を含む様々な動作を実行する。TATは、本発明において、印刷ジョブであれ、他の任意のタイプのトランザクションであれ、所与のトランザクションが1回だけ処理されることを確実にすることにより、リプレイアタックを防止するのに利用される。リプレイ防止におけるTATの基本的な応用は、以下のとおりである。
【0032】
単一のTAT、またはTATのリストが、SAによって生成される。好ましくは、TATは、TATが固有である(決して繰り返されない)こと、およびTATが攻撃者によって、合理的には、予測、または推測されることが可能でないことをともに保証する特性(単純なランダム値、または時刻と日付の表現と組み合わされたランダム値のような)を有する。TATは、FPの中に格納される場合、好ましくは、TATのブロックの一部として、他のTATと一緒に、セキュリティで保護された形で(例えば、SSLを介して、または暗号化されることにより)FPに配信される。つまり、TATのブロックが、SAによって生成され、FPにあらかじめ配信されるか、または都合のよい間隔で配信され、FPが、将来の動作のために使用されるTATのブロックを保持するようにする。このため、SAは、前もってTATのブロックを生成し、FPに送信することができ、FPにおいて、TATのブロックは、必要とされるまで、セキュリティで保護された形で格納される。ジョブをFPに送信することを望むFUは、許可要求をSAに伝送する。SAは、その要求を処理し、許可応答を生成する。TATのブロックとともにFPに配信されたTATの1つが、SAによって許可応答の中に含められ、次に、その応答が、許可要求を伝送したFUに戻される。FUは、ジョブを、TATを含む許可応答と一緒に、FPに配信する。FPは、ジョブに含められたTATを、FPがSAから以前に受信したTATのリストと照合することにより、そのTATが有効であることを確認する。TATが有効である(すなわち、TATが、格納済みのブロックの中に含まれている)と判明した場合、FPは、そのジョブを処理した後、格納済みのリストからTATを削除して、同一のTATを含むいずれのジョブも、将来的に受け入れないようにする。このトークンベースの許可システムにより、各トランザクションが、1回だけしか処理されないことが確実になる。このため、トランザクションのビットイメージが攻撃者によってリプレイされた場合、FPは、FPのローカルストアの中で合致するTATを見つけることができず、そのトランザクションを拒否する。この実装のさらなる利点は、FPが、将来の参照のために使用済みのトークンのコピーを格納する必要が全くないことである。このアプローチは、デバイスの電源サイクル中に生じる可能性があるように、FPによって格納されたトークンを破壊し、次に、使用済みのトークンが見つからないデバイスにトランザクションのリプレイを送信することにより、仕掛けられる可能性がある攻撃を防止する。他方、トークンストアの揮発度に依存して、電源サイクルの後、デバイスにアクティブなTATを再配信することが必要である可能性がある。そのような配信は、いずれも、以下により詳細に説明するとおり、通常の配信機構の限度内で容易に対処することができる。
【0033】
FPに対するSAによるTATの生成および配信、ならびにSAおよびFPによるTATの相互に独立した生成に関して、以下に簡単な説明を提供する。
【0034】
好ましい実施形態では、すべてのトークンは、SAによって生成され、必要に応じて生成されて、FPに個々に転送されるか、またはトークンのブロックとして生成されて、単一の動作でFPに転送される。トークンが個々に生成されるか、ブロックとして生成されるかに関わらず、トークン構築のために同一の方法を使用することができる。これに関して、SAは、単に十分な長さの暗号法上、堅牢なランダム値(rv)を生成することにより、または利用可能な最も細かい分解能の時刻をランダム値と組み合わせることにより、TATを生成することができる。ジェネレータの結果の出力(例えば、rv、rvと組み合わせたtodなど)をTATとして直接に使用することができる。このため、TATが、単にランダム値(rv)を含む場合、SAは、任意の周知のジェネレータを利用して、暗号法上、堅牢なランダム値を生成する。組み合わせの実施形態では、各TATは、以下の方法を使用して、SAによって個々に生成されることが可能である。すなわち、
TATn=tod‖rv
ただし、todは、時刻であり、rvは、暗号法上、堅牢なランダム値であり、‖は、連結を表す。最初のトークンに関して、単純なジェネレータは、以下のとおり実施することができる。すなわち、
TAT0=tod‖rv
ただし、todは、時刻であり、rvは、暗号法上、堅牢なランダム値であり、‖は、連結を表す。SA上のリアルタイムクロックの十分に細かい分解能を使用すると、一意性を保証することができる。
【0035】
TATは、生成されると、必要に応じて個々に、または、より好ましくは、TATのブロックとして、SAによってFPにセキュリティで保護された形で配信されることが可能である。前述したとおり、TATは、SAによってFPに、SSL接続を介して配信されること、またはブロックに、SAによってデジタル署名が行われ、次に、そのブロックが、SAによって暗号化されて、FPに伝送されることが可能である。
【0036】
以上の代替として、TATは、SAおよびFPによって互いに独立に生成されることも可能である。つまり、SAが、TATのブロックを独立に生成することができ、FPも、TATの対応するブロックを独立に生成することができる。この方法は、ネットワークを介してSAからFPにTATのブロックを伝送する必要性をなくし、攻撃者がブロックを傍受する可能性を小さくする。相互生成は、例えば、生成プロセス中、ハッシュ法または暗号化を使用することができる。この実施形態を使用して、SAおよびFPは、TAT値の同一のシリーズを生成し、TAT値のこのシリーズは、攻撃者が前の値のシリーズの知識を有している場合でも、攻撃者が予測することはできない。このタスクを達成する1つのやり方は、入力を混ぜ合わせるハッシュ関数を使用する単純なジェネレータを使用することである。このアプローチを使用して、組み合わせの実施形態における最初のトークンは、SAによって以下のとおり生成されることが可能である。すなわち、
TAT0=tod‖rv
ただし、todは、時刻であり、rvは、暗号法上、堅牢なランダム値である。次に、同一のトークンが、SAとFPの両方によって、以下を使用して生成されることが可能である。すなわち、
TATn=tod‖Hk(TATn-1‖n)
ただし、Hは、HMAC−SHA1のようなキー付きハッシュ関数であり、todは、最初のトークンの中でSAによって提供された時刻であり、kは、現在のブロックの初期設定中にSAによって生成されたランダムキーであり、nは、n>0であるカウンタの値である。この実施形態では、数式の右側のすべての変数は、攻撃者に既知である可能性があるため、ハッシュキーの存在が必須である。kの知識なしには、攻撃者は、tod、TATn-1、およびnの所有にも関わらず、TATnを生成することができない。
【0037】
このため、以上から見て取ることができるとおり、TATは、様々なインプリメンテーションのいずれにおいてSAとFPの間で生成され、配信されてもよい。ただし、好ましくは、TATは、SAによってブロックとして生成され、TATのブロックは、FPに配信され、FPにおいて将来の使用のために格納される。もちろん、TATのブロックは、SAによって保持されることも可能である。したがって、FUが、FP上である動作を実行するように要求すると、いずれのTATが、FUが使用することを望むFPに対応するかをSAが判定することができ、FUがFPに送信されるジョブの中に含める適切なTATを、FUに提供することができる。
【0038】
図4に戻ると、ディレクトリコンポーネント123が、コマンド処理コンポーネント121およびディレクトリサービス114と通信する。図5は、ディレクトリコンポーネント123のより詳細なブロック図を示す。
【0039】
図5で見られるとおり、ディレクトリコンポーネント123は、コマンド処理コンポーネント121およびスキーママネージャモジュール131と通信するデバイス公開モジュール126を含む。デバイス公開モジュール126は、SAによってFPから受信されたデバイス公開コマンドを扱い、新規のデバイスをセットアップする。新たなデバイスが起動され、SAを検出する検出動作を実行すると、デバイス公開モジュールが、デバイススキーマに従ってFPからデバイス構成情報を獲得し、収集された情報をディレクトリサービス114の中に格納する。スキーママネージャモジュール131が、ディレクトリアクセス要求を扱い、ディレクトリスキーマの知識を有し、したがって、いずれのディレクトリアクセス要求もディレクトリスキーマにマップして、ディレクトリサービスの中に格納された情報を、好ましくは、LDAPを介して、プルすることができる。
【0040】
図6は、本発明によるFU、SA、およびDSの間の通信の実施例を示す。以下の説明では、図6に示された番号付きの矢印は、様々なモジュール間の通信を表し、矢印は、括弧付きで(例えば、矢印番号1の場合、(矢印1))で表す。図6では、FUとSAの間のリンクがSSLを介するものと想定して、FU110が、SAがリッスンしているSSLポートに接続する(矢印1)。この時点で、FUとSAの間で認証プロセスが実行されて、SAが、接続を受け入れ、FUに関するスレッドおよび新たなデータ通信ソケットを生成する。このため、セキュリティで保護された(SSL)通信が、SAとFUの間で確立される(矢印2)。次に、FUが、許可要求をSAに送信する(矢印3)。許可要求は、例えば、FP130上で印刷動作を実行するように、およびSAがFUにTATを提供するようにというFUによる要求であることが可能である。コマンド処理コンポーネント121が、要求を処理し、判定モジュール127を呼び出し、要求を判定モジュール127に転送する(矢印4)。判定モジュールは、要求を処理して許可ビットを構築し、その許可ビットをセキュリティコンポーネントに転送する(矢印5)。セキュリティコンポーネントは、許可ビットを処理して、暗号化された(好ましくは、デジタル署名された)TATを判定モジュールに送り返す(矢印6)。判定モジュール127は、暗号化されたTATを許可応答の形態でFUに送り返す(矢印7および矢印8)。次に、FUとSAの間のソケット接続が閉じられる。
【0041】
図7は、FP130とSA113の間における通信のためのソフトウェアアーキテクチャを示す。図7に示すとおり、FPが、SAに対してセキュリティで保護されていない通信を開始することが可能である。セキュリティで保護されていない通信は、例えば、ネットワーク上で新たなデバイスの初期セットアップを始めるために、またはSAがFPにTATの新たなブロックを提供することを要求するために使用することができる。このため、FPは、SAがリッスンしている非SSLポートに接続する。SAは、接続を受け入れ、そのFPに関するスレッドおよび新たなデータ通信ソケットを生成する。初期セットアップモードでは、FPは、それが新たなデバイスであることを明示するデバイス公開コマンドを、コマンド情報ブロックとともにSAに送信する(矢印1)。FPが、TATの新たなブロックを要求している場合、矢印1は、その新たなブロックを要求しているコマンドを表す。コマンド処理コンポーネント121は、受信されたコマンドを処理して、セキュリティコンポーネント122に転送する(矢印2)。FPが新たなデバイスである場合、セキュリティコンポーネント122は、その新たなデバイスにダウンロードされるべきセキュリティ情報を生成する。より具体的には、SAのセキュリティコンポーネントは、その新たなデバイスのために公開キー/秘密キーペアを生成し、SAのために署名された証明書を生成する。セキュリティコンポーネントは、前述した方法のいずれか1つを利用して、TATのブロックも生成する。このプロセスは、コマンドが、新たなデバイスをセットアップするためである場合と、コマンドが、TATの新たなブロックを獲得するためである場合の両方において実行される。代替として、新たなデバイスをセットアップするために、TATの相互生成が使用される実施形態では、セキュリティコンポーネントは、将来のTATの生成のために両方のデバイスによって使用されるべき最初のTATを生成してもよい。次に、セキュリティ情報、またはTATの新たなブロックが、FPにダウンロードされる(矢印3)。矢印3の通信は、矢印1とは異なり、セキュリティで保護された通信であることに留意されたい。つまり、セキュリティ情報、またはTATの新たなブロックは、1)SAが、FPに対してSSLリンクを確立した後、SSLを介してセキュリティ情報をFPに伝送することによってか、または2)SAが、セキュリティ情報を暗号化した後、暗号化されたセキュリティ情報をFPに伝送することによってダウンロードされる。次に、FPが、その接続を解除し、ソケットが閉じられる。
【0042】
図8は、FPに関する内部ソフトウェアアーキテクチャを示す。図8に見られるとおり、FPは、好ましくは、セキュリティコンポーネント132によって提供されるセキュリティで保護されたチャネル接続を介してSAと通信する。セキュリティアプリケーション検出コンポーネント133が、SA検出プロセスを扱う。デバイスの電源が投入されると、このモジュールは、DNSサービスを使用して企業(enterprise)SAコンポーネントを検出し、SAとFPの間でセキュリティで保護された通信を確立する。
【0043】
図9は、機能ユーザ(FU)から機能プロバイダ(FP)にジョブを送信することに関するプロセスステップのフローチャートである。ジョブの送信の実施例として、印刷ジョブが、コンピュータ10(FUを構成する)から多機能デバイス30(FPを構成する)に送信されることが可能であり、印刷ジョブは、サーバ40(SAを構成する)を介して処理される。しかし、印刷ジョブは、送信されることが可能な唯一のタイプのジョブではなく、ジョブは、リモートコピー動作、ファクシミリ動作、スキャン動作を実行する要求、1つの口座から別の口座に資金を振り替える要求などの、様々な機能のいずれを含むことも可能である。さらに、FPは、好ましくは、以上の動作の任意の1つまたは複数を実行することができる多機能デバイスであるが、多機能デバイスである必要はなく、代りに、サーバ、プリンタ、複写機、ファクシミリ装置などの他の任意のタイプのデバイスでああってもよい。図9を参照すると、ステップS901で、ユーザが、何らかのタイプのアクションを実行して、FP上で動作を実行する許可要求を開始する。印刷ジョブが、コンピュータ10から多機能デバイス30に送信されるケースでは、ユーザは、コンピュータ10において開始アクションを実行する。ただし、ユーザは、任意のFUデバイスにおいて要求アクションを開始することができ、本発明は、FPとは別個のコンピュータに限定されない。例えば、FP自体が、ネットワークと通信する多機能デバイス上のタッチパネルディスプレイのような操作ユニットを含み、ユーザが、FP自体において要求を開始することができるようになっていることも可能である。FUがパーソナルコンピュータ10であるケースでは、要求アクションは、ユーザが、ジョブをFPに送信する操作をアプリケーションプログラムにおいて実行することによって開始されることが可能である。印刷動作を実行することに関して公知のとおり、ユーザは、ワードプロセッシングプログラムなどのアプリケーションプログラム内で印刷オプションを選択して、印刷のために印刷ジョブを送信するための印刷ドライバがアクティブにされることにより、印刷プロセスを開始することができる。
【0044】
本発明では、印刷ドライバがアクティブにされると、印刷ジョブに関して印刷ドライバによってジョブデータが生成される。例えば、印刷ドライバは、実行されるべき動作のタイプ(すなわち、印刷)、ジョブのページ数、および様々な印刷オプション(カラー印刷、両面印刷など)を含むジョブデータを生成することができる。加えて、FU(コンピュータ10)およびFP(多機能デバイス30)の情報も、ジョブデータの中に含めることが可能である。例えば、FUおよびFPのMACアドレスまたはIPアドレスなどの識別情報が、獲得され、ジョブデータの中に含めることが可能である。ジョブデータは、獲得された後、好ましくは、許可要求メッセージの形態で、SAに伝送するためにパッケージ化される。
【0045】
次に、FUが、SAに対する接続を確立して、許可要求をSAに伝送する(ステップS902)。接続は、好ましくは、SSLなどのセキュリティで保護された接続である。これは、図6で示された矢印1および矢印2に対応する。ただし、許可要求は、SSLを介して伝送される代りに、暗号化された形態でSAに伝送されることも可能である。セキュリティで保護された接続が確立されると、FUは、許可要求コマンドをSAに送信する(ステップS903)。これは、図6で示された矢印3に対応する。SAは、許可要求を受信すると、その要求を処理して許可応答を構築する(ステップS904)。許可応答を構築する際、SAは、許可要求の中で特定されたFPのためのTATを獲得し、そのTATにデジタル署名する。次に、暗号化された(デジタル署名された)TATが、許可応答の中に含められ、SAが、許可応答をFUに提供する(ステップS905)。SAは、好ましくは、セキュリティで保護された形で(すなわち、SSL、または暗号化を介して)許可応答をFUに提供する。
【0046】
FUは、SAから許可応答を受信した後、ジョブデータおよび許可応答を含むジョブ要求の形態でFPコマンドパッケージを構築する。つまり、FUによってSAから受信される許可応答は、受信されたのと同一の形態でジョブ要求の中に単に挿入される。ジョブ要求(ジョブデータおよび許可応答を含む)は、好ましくは、セッションキーを利用して暗号化され、次に、暗号化されたジョブが、FUによってFPに送信される(ステップS906)。暗号化されたジョブ要求を受信すると、FPは、セッションキーを利用して、受信されたデータを解読し、許可応答からTATを抽出する。FPは、抽出されたTATが有効であるかどうかを判定し(ステップS907)、有効であった場合、相応した形でそのジョブを処理する(ステップS908)(すなわち、ジョブは、印刷ジョブである場合、印刷される)。TATが無効であると判定された場合、ジョブは、拒否される(ステップS909)。ステップS907のTAT検証プロセスを、図10および図11に関連して以下により詳細に説明する。
【0047】
図10は、FPが、ジョブとともに受信されたTATの有効性を確認するプロセスステップのフローチャートである。図10に示されるように、FPのセキュリティコンポーネント132は、FUからジョブを受信する(ステップS1001)。前述したとおり、ジョブは、好ましくは、許可応答の一部としてTATを含む。セキュリティコンポーネント132は、受信された許可応答からTATを抽出し、そのTATをFPの中に以前に格納されているTATのブロックと比較する(ステップ1002)。前述したとおり、TATのブロックは、好ましくは、FPの中にあらかじめ格納される。この比較に基づき、ジョブとともに受信されたTATが、TATの格納済みのブロックの中に含まれているか否かの判定が行われる(ステップS1003)。含まれていない場合、TATは、無効であると判定され(ステップS1004)、ジョブは、拒否される(ステップS909)。一方、対応するTATが格納済みのブロックの中に含まれている場合、TATは、有効であると判定され(ステップS1005)、ジョブは、相応した形で処理される。TATは、使用された後、TATの格納済みのブロックから削除される(ステップS1006)。次に、処理は、図9のステップS908に進む。このように、各メッセージに固有である固有メッセージ(有効化)コードを使用することにより、各メッセージに固有であるコードに基づいて判定が行われるため、リプレイされたメッセージが有効であると認められないことは容易に理解できるであろう。
【0048】
図11は、図10に類似したフローチャートであるが、TAT検証プロセス内に含めることができる追加のステップを含む。このため、ステップS1101乃至S1106は、前述したステップS1001乃至S1006と同一である。ただし、図11では、TATがTATの格納済みのブロックから削除された後、十分な数のTATが格納済みのブロックの中に残っているか否かの判定が行われる。このため、ステップS1107で、格納済みのブロックの中に残っているTATの数が、所定の数(n)未満であるかどうかの判定が行われる。ただし、nは、任意の整数であることが可能である。例えば、nを1とすることにより、TATが格納済みのブロックの中に全く残っていない(0)場合に、FPが、追加のTATを獲得するプロセスを開始することができるように構成できる。このため、十分な数のTATが、依然、格納済みのブロックの中に残っている場合、TAT検証プロセスは、停止し(ステップS1108)、処理は、ステップS908に進んでジョブを処理する。しかし、格納済みのブロックの中に残っているTATの数が不十分である場合、FPは、格納済みのブロックのために追加のTATを獲得するプロセスを実行する(ステップS1109)。なお、追加のTATを獲得するプロセスを始めるのに先立って、ステップS1107の一環として追加の判定を行うことができ、追加のTATをダウンロードまたは獲得するプロセスが既に進行中であるか否かについての判定を行うことができることに留意されたい。プロセスが既に進行中である場合、ステップS1109は、実行される必要がなく、流れは、ステップS1108に進む。TATのブロックが、SAによって生成され、SAによってFPに伝送されるケースでは、図12に関連して以下に説明するようなプロセスを使用することができる。しかし、TATが、SAおよびFPによって相互に生成される実施形態では、FPのセキュリティコンポーネント132は、単に、相互TAT生成アルゴリズムに基づいてTATの新たなブロックを内部で生成し、追加のTATをブロックの中に格納することができる。
【0049】
図12は、TATの相互生成ではなく、TATのブロックがSAによって生成され、伝送されるケースで、機能プロバイダがSAから追加のTATを獲得するプロセスステップのフローチャートである。図12のプロセスステップは、ステップS1109のプロセスに対応する。図12に示されるように、FPは、格納済みのブロックに追加のTATが必要とされていると判定すると、SAに対する接続を確立する(ステップS1201)。接続は、好ましくは、セキュリティで保護されたSSL接続であるが、SSLが利用されず、TATの暗号ベースの通信が代りに利用される場合、接続は、セキュリティで保護されていない接続であることも可能である。SAに対して接続を確立した後、FPは、追加のTATを要求するコマンドをSAに送信する(ステップS1202)。SAは、この要求を受信すると、まず、様々な認証検査を実行し、要求を伝送したFPの認証を行うことができる。FPが認証されると、SAは、要求を処理し、TATの新たなブロックを生成する(ステップ1203)。TATの新たなブロックは、TAT生成に関して前述したのと同一の形で生成される。次に、TATの新たなブロックは、セキュリティで保護された形でFPに伝送される(ステップS1204)。前述したとおり、TATのブロックは、SAによってSSLを介してFPにセキュリティで保護された形で伝送されることが可能である。あるいはTATのブロックは、暗号化され、オプションとして、デジタル署名された後、非SSLチャネルを介してFPに伝送されることが可能である。FPが、TATの新たなブロックを受信すると、その新たなブロックは、FPの中に格納される(ステップS1205)。ステップS1205で、TATの新たなブロックは、現在、格納されているブロックから残っているあらゆるTATを削除し、TATの新たに受信されたブロックでそれらを置き換えることにより、セキュリティコンポーネント132の中に格納することができるか、あるいは代替として、TATの新たに受信されたブロックを残っている格納済みのTATに追加して、累加的なブロックを形成することもできる。
【0050】
このため、図9乃至図12による以上の説明からわかるように、FUが、許可要求をSAに送信する。SAは、その要求を処理し、TATを含む許可応答を生成し、その許可応答をFUに伝送する。FUは、許可応答を受信すると、その許可応答を含むジョブをFPに送信する。FPは、ジョブおよび許可応答を受信すると、TATを抽出し、受信されたTATをTATの格納済みのリストと比較して、そのTATが有効であるか否かを判定する。受信されたTATが、格納済みのリストの中に含まれていなかった場合、ジョブは、拒否される。つまり、FPは、現在のジョブ要求が、既に受信され、リストから削除されたTATを含むことから、依然に送信されたジョブのリプレイであると判定する。しかし、受信されたTATが、格納済みのリストの中に含まれていると判明した場合、そのTATは、有効であると見なされ、ジョブは、相応した形で処理される。次に、そのTATは、格納済みのリストから削除されて、同一のTATを使用してジョブ要求をリプレイしようとするあらゆる試みが、拒否されるようになる。以上から容易に理解できるように、上述したプロセスは、メッセージのリプレイアタックを防止する比較的自動化されたやり方を提供する。
【0051】
以上のプロセスステップは、1つまたは複数のコンピュータデバイスによって実行されるコンピュータ実行可能なプロセスステップとして実施することができる。コンピュータ実行可能プロセスステップは、フロッピー(登録商標)ディスク、磁気ディスク、CD−ROM、ハードディスクなどのコンピュータ可読媒体の中に格納することができる。このため、本発明は、コンピュータ実行可能プロセスステップ自体としても、コンピュータ実行可能プロセスステップを格納するコンピュータ可読記憶媒体としても実施することができる。さらに、コンピュータ実行可能プロセスステップを内部に格納しているコンピュータのような装置が、本発明を構成することも可能である。
【0052】
以上、本発明を特定の例示的な諸実施形態を使用して説明してきた。しかしながら、本発明は、前述した諸実施形態に限定されず、本発明の趣旨および範囲を逸脱することなく、様々な変更および変形が当業者によって行われることが可能であることを理解されたい。
【図面の簡単な説明】
【0053】
【図1】本発明を実施することができるネットワーク化されたコンピューティング環境を示す図である。
【図2】パーソナルコンピュータの内部アーキテクチャの例を示すブロック図である。
【図3】サーバの内部アーキテクチャの例を示すブロック図である。
【図4】本発明による様々なコンポーネント間の通信に関するソフトウェアアーキテクチャを示す図である。
【図5】ディレクトリコンポーネントによってコマンドを処理することに関するソフトウェアアーキテクチャを示す図である。
【図6】本発明による許可要求および許可応答が関わる通信に関するソフトウェアアーキテクチャを示す図である。
【図7】機能プロバイダとセキュリティアプリケーションの間における通信の例を示す図である。
【図8】機能プロバイダ内部のソフトウェアアーキテクチャを示す図である。
【図9】本発明によるジョブを機能プロバイダに送信し、機能プロバイダがそのジョブを処理することに関するプロセスステップを示すフローチャートである。
【図10】機能プロバイダが、ジョブとともに受信されたトークンの有効性を判定するプロセスステップを示すフローチャートである。
【図11】機能プロバイダが、ジョブとともに受信されたトークンの有効性を判定し、追加のトークンが必要とされているかどうかを判定するプロセスステップを示すフローチャートである。
【図12】機能プロバイダが、セキュリティアプリケーションから追加のトークンを獲得するプロセスステップを示すフローチャートである。
【特許請求の範囲】
【請求項1】
第1のデバイスから第2のデバイスに送信されるメッセージのリプレイに対するセキュリティを提供する方法であって、
前記第2のデバイスによって前記第1のデバイスから受信されたメッセージの固有メッセージ有効化コードを前記第2のデバイスの中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
前記比較するステップに基づき、前記第2のデバイスによる前記メッセージの処理を拒否するか否かを判定するステップとを含むことを特徴とする方法。
【請求項2】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項1に記載の方法。
【請求項3】
固有メッセージ有効化コードの前記リストを生成するステップと、
前記生成されたリストを前記第2のデバイスの中に格納するステップとをさらに含むことを特徴とする請求項2に記載の方法。
【請求項4】
固有メッセージ有効化コードの前記リストは、第3のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項3に記載の方法。
【請求項5】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項3に記載の方法。
【請求項6】
固有メッセージ有効化コードの前記リストは、前記第2のデバイスおよび第3のデバイスによって相互に生成されることを特徴とする請求項3に記載の方法。
【請求項7】
前記生成されたリストからの前記固有メッセージ有効化コードの少なくとも1つを含む、前記第2のデバイスに送信されるべき前記メッセージを前記第1のデバイスにおいて生成するステップと、
前記生成されたメッセージを前記固有メッセージ有効化コードと一緒に前記第1のデバイスから前記第2のデバイスに送信するステップと、
前記送信されたメッセージおよび前記固有メッセージ有効化コードを前記第2のデバイスによって受信するステップとをさらに含むことを特徴とする請求項3に記載の方法。
【請求項8】
前記第1のデバイスが、前記メッセージの中に含められるべき固有メッセージ有効化コードを第3のデバイスから要求するステップと、
前記第3のデバイスが、前記メッセージの中に含められるべき前記固有メッセージ有効化コードを前記第1のデバイスに送信するステップとをさらに含むことを特徴とする請求項7に記載の方法。
【請求項9】
前記第1のデバイスと前記第2のデバイスは、ネットワークを介して通信することを特徴とする請求項2に記載の方法。
【請求項10】
前記第2のデバイスにおいて、前記格納されたリストの中に所定の数以下の前記固有メッセージ有効化コードが含まれるかどうかを判定するステップと、
前記リストが、前記所定の数以下の前記固有メッセージ有効化コードを含むと判定された場合、前記第2のデバイスが、前記リストのために追加の固有メッセージ有効化コードを獲得するステップとをさらに含むことを特徴とする請求項2に記載の方法。
【請求項11】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストの代りに前記第2のデバイスの中に格納される新たなリストを構成することを特徴とする請求項10に記載の方法。
【請求項12】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストに追加されることを特徴とする請求項10に記載の方法。
【請求項13】
固有メッセージ有効化コードの前記生成されたリストは、セキュリティで保護された形で前記第2のデバイスに送信されることを特徴とする請求項4または5に記載の方法。
【請求項14】
前記固有メッセージ有効化コードは、乱数を含むことを特徴とする請求項2に記載の方法。
【請求項15】
前記第2のデバイスが、前記受信された固有メッセージ有効化コードに対して妥当性検査を実行するステップをさらに含むことを特徴とする請求項2に記載の方法。
【請求項16】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってハッシュアルゴリズムにかけられることを特徴とする請求項7に記載の方法。
【請求項17】
前記メッセージの前記処理は、印刷プロセスを含むことを特徴とする請求項1に記載の方法。
【請求項18】
第1のデバイスから第2のデバイスに送信されるメッセージのリプレイに対するセキュリティを提供するための、コンピュータによって実行されるコンピュータ実行可能プロセスステップであって、
前記第2のデバイスによって前記第1のデバイスから受信されたメッセージの固有メッセージ有効化コードを前記第2のデバイスの中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
前記比較するステップに基づき、前記第2のデバイスによる前記メッセージの処理を拒否するか否かを判定するステップとを含むことを特徴とするプロセスステップ。
【請求項19】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項18に記載のコンピュータ実行可能プロセスステップ。
【請求項20】
固有メッセージ有効化コードの前記リストを生成するステップと、
前記生成されたリストを前記第2のデバイスの中に格納するステップとをさらに含むことを特徴とする請求項19に記載のコンピュータ実行可能プロセスステップ。
【請求項21】
固有メッセージ有効化コードの前記リストは、第3のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項20に記載のコンピュータ実行可能プロセスステップ。
【請求項22】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項20に記載のコンピュータ実行可能プロセスステップ。
【請求項23】
固有メッセージ有効化コードの前記リストは、前記第2のデバイスおよび第3のデバイスによって相互に生成されることを特徴とする請求項20に記載のコンピュータ実行可能プロセスステップ。
【請求項24】
前記生成されたリストからの前記固有メッセージ有効化コードの少なくとも1つを含む、前記第2のデバイスに送信されるべき前記メッセージを前記第1のデバイスにおいて生成するステップと、
前記生成されたメッセージを前記固有メッセージ有効化コードと一緒に前記第1のデバイスから前記第2のデバイスに送信するステップと、
前記送信されたメッセージおよび前記固有メッセージ有効化コードを前記第2のデバイスによって受信するステップとをさらに含むことを特徴とする請求項20に記載のコンピュータ実行可能プロセスステップ。
【請求項25】
前記第1のデバイスが、前記メッセージの中に含められるべき固有メッセージ有効化コードを第3のデバイスから要求するステップと、
前記第3のデバイスが、前記メッセージの中に含められるべき前記固有メッセージ有効化コードを前記第1のデバイスに送信するステップとをさらに含むことを特徴とする請求項24に記載のコンピュータ実行可能プロセスステップ。
【請求項26】
前記第1のデバイスと前記第2のデバイスは、ネットワークを介して通信することを特徴とする請求項19に記載のコンピュータ実行可能プロセスステップ。
【請求項27】
前記第2のデバイスにおいて、前記格納されたリストの中に所定の数以下の前記固有メッセージ有効化コードが含まれるかどうかを判定するステップと、
前記リストが、前記所定の数以下の前記固有メッセージ有効化コードを含むと判定された場合、前記第2のデバイスが、前記リストのために追加の固有メッセージ有効化コードを獲得するステップとをさらに含むことを特徴とする請求項19に記載のコンピュータ実行可能プロセスステップ。
【請求項28】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストの代りに前記第2のデバイスの中に格納される新たなリストを構成することを特徴とする請求項27に記載のコンピュータ実行可能プロセスステップ。
【請求項29】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストに追加されることを特徴とする請求項27に記載のコンピュータ実行可能プロセスステップ。
【請求項30】
固有メッセージ有効化コードの前記生成されたリストは、セキュリティで保護された形で前記第2のデバイスに送信されることを特徴とする請求項21または22に記載のコンピュータ実行可能プロセスステップ。
【請求項31】
前記固有メッセージ有効化コードは、乱数を含むことを特徴とする請求項19に記載のコンピュータ実行可能プロセスステップ。
【請求項32】
前記第2のデバイスが、前記受信された固有メッセージ有効化コードに対して妥当性検査を実行するステップをさらに含むことを特徴とする請求項19に記載のコンピュータ実行可能プロセスステップ。
【請求項33】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってハッシュアルゴリズムにかけられることを特徴とする請求項24に記載のコンピュータ実行可能プロセスステップ。
【請求項34】
前記メッセージの前記処理は、印刷プロセスを含むことを特徴とする請求項18に記載のコンピュータ実行可能プロセスステップ。
【請求項35】
第1のデバイスから第2のデバイスに送信されるメッセージのリプレイに対するセキュリティを提供するための、コンピュータによって実行されるコンピュータ実行可能プロセスステップであって、
前記第2のデバイスによって前記第1のデバイスから受信されたメッセージの固有メッセージ有効化コードを前記第2のデバイスの中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
前記比較するステップに基づき、前記第2のデバイスによる前記メッセージの処理を拒否するか否かを判定するステップとを含むプロセスステップが格納されていることを特徴とするコンピュータ可読記憶媒体。
【請求項36】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項35に記載のコンピュータ可読記憶媒体。
【請求項37】
固有メッセージ有効化コードの前記リストを生成するステップと、
前記生成されたリストを前記第2のデバイスの中に格納するステップとをさらに含むことを特徴とする請求項36に記載のコンピュータ可読記憶媒体。
【請求項38】
固有メッセージ有効化コードの前記リストは、第3のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項37に記載のコンピュータ可読記憶媒体。
【請求項39】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項37に記載のコンピュータ可読記憶媒体。
【請求項40】
固有メッセージ有効化コードの前記リストは、前記第2のデバイスおよび第3のデバイスによって相互に生成されることを特徴とする請求項37に記載のコンピュータ可読記憶媒体。
【請求項41】
前記生成されたリストからの前記固有メッセージ有効化コードの少なくとも1つを含む、前記第2のデバイスに送信されるべき前記メッセージを前記第1のデバイスにおいて生成するステップと、
前記生成されたメッセージを前記固有メッセージ有効化コードと一緒に前記第1のデバイスから前記第2のデバイスに送信するステップと、
前記送信されたメッセージおよび前記固有メッセージ有効化コードを前記第2のデバイスによって受信するステップとをさらに含むことを特徴とする請求項37に記載のコンピュータ可読記憶媒体。
【請求項42】
前記第1のデバイスが、前記メッセージの中に含められるべき固有メッセージ有効化コードを第3のデバイスから要求するステップと、
前記第3のデバイスが、前記メッセージの中に含められるべき前記固有メッセージ有効化コードを前記第1のデバイスに送信するステップとをさらに含むことを特徴とする請求項41に記載のコンピュータ可読記憶媒体。
【請求項43】
前記第1のデバイスと前記第2のデバイスは、ネットワークを介して通信することを特徴とする請求項36に記載のコンピュータ可読記憶媒体。
【請求項44】
前記第2のデバイスにおいて、前記格納されたリストの中に所定の数以下の前記固有メッセージ有効化コードが含まれるかどうかを判定するステップと、
前記リストが、前記所定の数以下の前記固有メッセージ有効化コードを含むと判定された場合、前記第2のデバイスが、前記リストのために追加の固有メッセージ有効化コードを獲得するステップとをさらに含むことを特徴とする請求項36に記載のコンピュータ可読記憶媒体。
【請求項45】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストの代りに前記第2のデバイスの中に格納される新たなリストを構成することを特徴とする請求項44に記載のコンピュータ可読記憶媒体。
【請求項46】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストに追加されることを特徴とする請求項44に記載のコンピュータ可読記憶媒体。
【請求項47】
固有メッセージ有効化コードの前記生成されたリストは、セキュリティで保護された形で前記第2のデバイスに送信されることを特徴とする請求項38または39に記載のコンピュータ可読記憶媒体。
【請求項48】
前記固有メッセージ有効化コードは、乱数を含むことを特徴とする請求項36に記載のコンピュータ可読記憶媒体。
【請求項49】
前記第2のデバイスが、前記受信された固有メッセージ有効化コードに対して妥当性検査を実行するステップをさらに含むことを特徴とする請求項36に記載のコンピュータ可読記憶媒体。
【請求項50】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってハッシュアルゴリズムにかけられることを特徴とする請求項41に記載のコンピュータ可読記憶媒体。
【請求項51】
前記メッセージの前記処理は、印刷プロセスを含むことを特徴とする請求項35に記載のコンピュータ可読記憶媒体。
【請求項52】
ホストデバイスからメッセージを受信し、処理する装置であって、
前記ホストデバイスとの間でメッセージを送受信するためのインタフェースと、
コンピュータ実行可能プロセスステップを実行するプロセッサと、
前記プロセッサによって実行されるコンピュータ実行可能プロセスステップであって、
(a)装置によって前記ホストデバイスから受信されたメッセージの固有メッセージ有効化コードをメモリ媒体の中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
(b)前記比較するステップに基づき、装置による前記メッセージの処理を拒否するか否かを判定するステップとを含むプロセスステップを含む情報を格納する該メモリ媒体とを含むことを特徴とする装置。
【請求項53】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項52に記載の装置。
【請求項54】
固有メッセージ有効化コードの前記リストは、前記装置以外のデバイスにおいて生成され、前記生成されたリストは、前記メモリ媒体の中に格納するために前記装置へ送信されることを特徴とする請求項53に記載の装置。
【請求項55】
固有メッセージ有効化コードの前記リストは、第3のデバイスにおいて生成され、前記リストは、前記第3のデバイスによって、前記装置の中に格納するために前記装置へ送信されることを特徴とする請求項54に記載の装置。
【請求項56】
固有メッセージ有効化コードの前記リストは、前記ホストデバイスにおいて生成され、前記リストは、前記ホストデバイスによって装置に、装置の中に格納するために送信されることを特徴とする請求項54に記載の装置。
【請求項57】
固有メッセージ有効化コードの前記リストは、前記第2のデバイスおよび第3のデバイスによって相互に生成されることを特徴とする請求項54に記載の装置。
【請求項58】
前記受信されるメッセージは、前記ホストデバイスにおいて生成され、前記生成されたメッセージは、前記生成されたリストからの前記固有メッセージ有効化コードの少なくとも1つを含むことを特徴とする請求項54に記載の装置。
【請求項59】
前記ホストデバイスは、第3のデバイスから、前記メッセージの中に含められるべき固有メッセージ有効化コードを要求し、前記第3のデバイスは、前記メッセージの中に含められるべき前記固有メッセージ有効化コードを前記ホストデバイスに送信することを特徴とする請求項58に記載の装置。
【請求項60】
装置と前記ホストデバイスは、ネットワークを介して通信することを特徴とする請求項53に記載の装置。
【請求項61】
前記プロセスステップは、所定の数以下の固有メッセージ有効化コードが前記格納されたリストの中に含まれるかどうかを装置が判定するステップと、
前記リストが、前記所定の数以下の前記固有メッセージ有効化コードを含むと判定された場合、装置が、前記リストのために追加の固有メッセージ有効化コードを獲得するステップとをさらに含むことを特徴とする請求項53に記載の装置。
【請求項62】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストの代りに装置の中に格納される新たなリストを構成することを特徴とする請求項61に記載の装置。
【請求項63】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストに追加されることを特徴とする請求項61に記載の装置。
【請求項64】
固有メッセージ有効化コードの前記生成されたリストは、セキュリティで保護された形で装置に送信されることを特徴とする請求項55または56に記載の装置。
【請求項65】
前記固有メッセージ有効化コードは、乱数を含むことを特徴とする請求項53に記載の装置。
【請求項66】
前記プロセスステップは、装置が、前記受信された固有メッセージ有効化コードに対して妥当性検査を実行するステップをさらに含むことを特徴とする請求項53に記載の装置。
【請求項67】
前記ホストデバイスから装置に送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってハッシュアルゴリズムにかけられることを特徴とする請求項59に記載の装置。
【請求項68】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスおよび前記第2のデバイスによって相互に生成されることを特徴とする請求項3に記載の方法。
【請求項69】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスおよび前記第2のデバイスによって相互に生成されることを特徴とする請求項20に記載のコンピュータ実行可能プロセスステップ。
【請求項70】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスおよび前記第2のデバイスによって相互に生成されることを特徴とする請求項37に記載のコンピュータ可読媒体。
【請求項71】
固有メッセージ有効化コードの前記リストは、装置および前記第2のデバイスによって相互に生成されることを特徴とする請求項54に記載の装置。
【請求項72】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってデジタル署名アルゴリズムにかけられることを特徴とする請求項7に記載の方法。
【請求項73】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってデジタル署名アルゴリズムにかけられることを特徴とする請求項24に記載のコンピュータ実行可能プロセスステップ。
【請求項74】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってデジタル署名アルゴリズムにかけられることを特徴とする請求項41に記載のコンピュータ可読媒体。
【請求項75】
前記ホストデバイスから装置に送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってデジタル署名アルゴリズムにかけられることを特徴とする請求項59に記載の装置。
【請求項76】
前記メッセージの前記処理は、印刷プロセスを含むことを特徴とする請求項52に記載の装置。
【特許請求の範囲】
【請求項1】
第1のデバイスから第2のデバイスに送信されるメッセージのリプレイに対するセキュリティを提供する情報処理方法であって、
前記第2のデバイスによって前記第1のデバイスから受信されたメッセージの固有メッセージ有効化コードを前記第2のデバイスの中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
前記比較するステップに基づき、前記第2のデバイスによる前記メッセージの処理を拒否するか否かを判定するステップとを含むことを特徴とする情報処理方法。
【請求項2】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項1に記載の情報処理方法。
【請求項3】
固有メッセージ有効化コードの前記リストを生成するステップと、
前記生成されたリストを前記第2のデバイスの中に格納するステップとをさらに含むことを特徴とする請求項2に記載の情報処理方法。
【請求項4】
固有メッセージ有効化コードの前記リストは、第3のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項3に記載の情報処理方法。
【請求項5】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項3に記載の情報処理方法。
【請求項6】
固有メッセージ有効化コードの前記リストは、前記第2のデバイスおよび第3のデバイスによって相互に生成されることを特徴とする請求項3に記載の情報処理方法。
【請求項7】
前記生成されたリストからの前記固有メッセージ有効化コードの少なくとも1つを含む、前記第2のデバイスに送信されるべき前記メッセージを前記第1のデバイスにおいて生成するステップと、
前記生成されたメッセージを前記固有メッセージ有効化コードと一緒に前記第1のデバイスから前記第2のデバイスに送信するステップと、
前記送信されたメッセージおよび前記固有メッセージ有効化コードを前記第2のデバイスによって受信するステップとをさらに含むことを特徴とする請求項3に記載の情報処理方法。
【請求項8】
前記第1のデバイスが、前記メッセージの中に含められるべき固有メッセージ有効化コードを第3のデバイスから要求するステップと、
前記第3のデバイスが、前記メッセージの中に含められるべき前記固有メッセージ有効化コードを前記第1のデバイスに送信するステップとをさらに含むことを特徴とする請求項7に記載の情報処理方法。
【請求項9】
前記第2のデバイスにおいて、前記格納されたリストの中に所定の数以下の前記固有メッセージ有効化コードが含まれるかどうかを判定するステップと、
前記リストが、前記所定の数以下の前記固有メッセージ有効化コードを含むと判定された場合、前記第2のデバイスが、前記リストのために追加の固有メッセージ有効化コードを獲得するステップとをさらに含むことを特徴とする請求項2に記載の情報処理方法。
【請求項10】
前記メッセージの前記処理は、印刷プロセスを含むことを特徴とする請求項1に記載の情報処理方法。
【請求項11】
ホストデバイスからメッセージを受信し、処理する情報処理装置であって、
前記ホストデバイスとの間でメッセージを送受信するためのインタフェースと、
コンピュータ実行可能プロセスステップを実行するプロセッサと、
前記プロセッサによって実行されるコンピュータ実行可能プロセスステップであって、
(a)装置によって前記ホストデバイスから受信されたメッセージの固有メッセージ有効化コードをメモリ媒体の中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
(b)前記比較するステップに基づき、装置による前記メッセージの処理を拒否するか否かを判定するステップとを含むプロセスステップを含む情報を格納する該メモリ媒体とを含むことを特徴とする情報処理装置。
【請求項12】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項11に記載の情報処理装置。
【請求項13】
請求項1乃至10のいずれかに記載の情報処理方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項14】
請求項13に記載のコンピュータプログラムを格納したことを特徴とする、コンピュータが読み取り可能なコンピュータ可読記憶媒体。
【請求項1】
第1のデバイスから第2のデバイスに送信されるメッセージのリプレイに対するセキュリティを提供する方法であって、
前記第2のデバイスによって前記第1のデバイスから受信されたメッセージの固有メッセージ有効化コードを前記第2のデバイスの中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
前記比較するステップに基づき、前記第2のデバイスによる前記メッセージの処理を拒否するか否かを判定するステップとを含むことを特徴とする方法。
【請求項2】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項1に記載の方法。
【請求項3】
固有メッセージ有効化コードの前記リストを生成するステップと、
前記生成されたリストを前記第2のデバイスの中に格納するステップとをさらに含むことを特徴とする請求項2に記載の方法。
【請求項4】
固有メッセージ有効化コードの前記リストは、第3のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項3に記載の方法。
【請求項5】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項3に記載の方法。
【請求項6】
固有メッセージ有効化コードの前記リストは、前記第2のデバイスおよび第3のデバイスによって相互に生成されることを特徴とする請求項3に記載の方法。
【請求項7】
前記生成されたリストからの前記固有メッセージ有効化コードの少なくとも1つを含む、前記第2のデバイスに送信されるべき前記メッセージを前記第1のデバイスにおいて生成するステップと、
前記生成されたメッセージを前記固有メッセージ有効化コードと一緒に前記第1のデバイスから前記第2のデバイスに送信するステップと、
前記送信されたメッセージおよび前記固有メッセージ有効化コードを前記第2のデバイスによって受信するステップとをさらに含むことを特徴とする請求項3に記載の方法。
【請求項8】
前記第1のデバイスが、前記メッセージの中に含められるべき固有メッセージ有効化コードを第3のデバイスから要求するステップと、
前記第3のデバイスが、前記メッセージの中に含められるべき前記固有メッセージ有効化コードを前記第1のデバイスに送信するステップとをさらに含むことを特徴とする請求項7に記載の方法。
【請求項9】
前記第1のデバイスと前記第2のデバイスは、ネットワークを介して通信することを特徴とする請求項2に記載の方法。
【請求項10】
前記第2のデバイスにおいて、前記格納されたリストの中に所定の数以下の前記固有メッセージ有効化コードが含まれるかどうかを判定するステップと、
前記リストが、前記所定の数以下の前記固有メッセージ有効化コードを含むと判定された場合、前記第2のデバイスが、前記リストのために追加の固有メッセージ有効化コードを獲得するステップとをさらに含むことを特徴とする請求項2に記載の方法。
【請求項11】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストの代りに前記第2のデバイスの中に格納される新たなリストを構成することを特徴とする請求項10に記載の方法。
【請求項12】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストに追加されることを特徴とする請求項10に記載の方法。
【請求項13】
固有メッセージ有効化コードの前記生成されたリストは、セキュリティで保護された形で前記第2のデバイスに送信されることを特徴とする請求項4または5に記載の方法。
【請求項14】
前記固有メッセージ有効化コードは、乱数を含むことを特徴とする請求項2に記載の方法。
【請求項15】
前記第2のデバイスが、前記受信された固有メッセージ有効化コードに対して妥当性検査を実行するステップをさらに含むことを特徴とする請求項2に記載の方法。
【請求項16】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってハッシュアルゴリズムにかけられることを特徴とする請求項7に記載の方法。
【請求項17】
前記メッセージの前記処理は、印刷プロセスを含むことを特徴とする請求項1に記載の方法。
【請求項18】
第1のデバイスから第2のデバイスに送信されるメッセージのリプレイに対するセキュリティを提供するための、コンピュータによって実行されるコンピュータ実行可能プロセスステップであって、
前記第2のデバイスによって前記第1のデバイスから受信されたメッセージの固有メッセージ有効化コードを前記第2のデバイスの中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
前記比較するステップに基づき、前記第2のデバイスによる前記メッセージの処理を拒否するか否かを判定するステップとを含むことを特徴とするプロセスステップ。
【請求項19】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項18に記載のコンピュータ実行可能プロセスステップ。
【請求項20】
固有メッセージ有効化コードの前記リストを生成するステップと、
前記生成されたリストを前記第2のデバイスの中に格納するステップとをさらに含むことを特徴とする請求項19に記載のコンピュータ実行可能プロセスステップ。
【請求項21】
固有メッセージ有効化コードの前記リストは、第3のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項20に記載のコンピュータ実行可能プロセスステップ。
【請求項22】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項20に記載のコンピュータ実行可能プロセスステップ。
【請求項23】
固有メッセージ有効化コードの前記リストは、前記第2のデバイスおよび第3のデバイスによって相互に生成されることを特徴とする請求項20に記載のコンピュータ実行可能プロセスステップ。
【請求項24】
前記生成されたリストからの前記固有メッセージ有効化コードの少なくとも1つを含む、前記第2のデバイスに送信されるべき前記メッセージを前記第1のデバイスにおいて生成するステップと、
前記生成されたメッセージを前記固有メッセージ有効化コードと一緒に前記第1のデバイスから前記第2のデバイスに送信するステップと、
前記送信されたメッセージおよび前記固有メッセージ有効化コードを前記第2のデバイスによって受信するステップとをさらに含むことを特徴とする請求項20に記載のコンピュータ実行可能プロセスステップ。
【請求項25】
前記第1のデバイスが、前記メッセージの中に含められるべき固有メッセージ有効化コードを第3のデバイスから要求するステップと、
前記第3のデバイスが、前記メッセージの中に含められるべき前記固有メッセージ有効化コードを前記第1のデバイスに送信するステップとをさらに含むことを特徴とする請求項24に記載のコンピュータ実行可能プロセスステップ。
【請求項26】
前記第1のデバイスと前記第2のデバイスは、ネットワークを介して通信することを特徴とする請求項19に記載のコンピュータ実行可能プロセスステップ。
【請求項27】
前記第2のデバイスにおいて、前記格納されたリストの中に所定の数以下の前記固有メッセージ有効化コードが含まれるかどうかを判定するステップと、
前記リストが、前記所定の数以下の前記固有メッセージ有効化コードを含むと判定された場合、前記第2のデバイスが、前記リストのために追加の固有メッセージ有効化コードを獲得するステップとをさらに含むことを特徴とする請求項19に記載のコンピュータ実行可能プロセスステップ。
【請求項28】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストの代りに前記第2のデバイスの中に格納される新たなリストを構成することを特徴とする請求項27に記載のコンピュータ実行可能プロセスステップ。
【請求項29】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストに追加されることを特徴とする請求項27に記載のコンピュータ実行可能プロセスステップ。
【請求項30】
固有メッセージ有効化コードの前記生成されたリストは、セキュリティで保護された形で前記第2のデバイスに送信されることを特徴とする請求項21または22に記載のコンピュータ実行可能プロセスステップ。
【請求項31】
前記固有メッセージ有効化コードは、乱数を含むことを特徴とする請求項19に記載のコンピュータ実行可能プロセスステップ。
【請求項32】
前記第2のデバイスが、前記受信された固有メッセージ有効化コードに対して妥当性検査を実行するステップをさらに含むことを特徴とする請求項19に記載のコンピュータ実行可能プロセスステップ。
【請求項33】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってハッシュアルゴリズムにかけられることを特徴とする請求項24に記載のコンピュータ実行可能プロセスステップ。
【請求項34】
前記メッセージの前記処理は、印刷プロセスを含むことを特徴とする請求項18に記載のコンピュータ実行可能プロセスステップ。
【請求項35】
第1のデバイスから第2のデバイスに送信されるメッセージのリプレイに対するセキュリティを提供するための、コンピュータによって実行されるコンピュータ実行可能プロセスステップであって、
前記第2のデバイスによって前記第1のデバイスから受信されたメッセージの固有メッセージ有効化コードを前記第2のデバイスの中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
前記比較するステップに基づき、前記第2のデバイスによる前記メッセージの処理を拒否するか否かを判定するステップとを含むプロセスステップが格納されていることを特徴とするコンピュータ可読記憶媒体。
【請求項36】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項35に記載のコンピュータ可読記憶媒体。
【請求項37】
固有メッセージ有効化コードの前記リストを生成するステップと、
前記生成されたリストを前記第2のデバイスの中に格納するステップとをさらに含むことを特徴とする請求項36に記載のコンピュータ可読記憶媒体。
【請求項38】
固有メッセージ有効化コードの前記リストは、第3のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項37に記載のコンピュータ可読記憶媒体。
【請求項39】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項37に記載のコンピュータ可読記憶媒体。
【請求項40】
固有メッセージ有効化コードの前記リストは、前記第2のデバイスおよび第3のデバイスによって相互に生成されることを特徴とする請求項37に記載のコンピュータ可読記憶媒体。
【請求項41】
前記生成されたリストからの前記固有メッセージ有効化コードの少なくとも1つを含む、前記第2のデバイスに送信されるべき前記メッセージを前記第1のデバイスにおいて生成するステップと、
前記生成されたメッセージを前記固有メッセージ有効化コードと一緒に前記第1のデバイスから前記第2のデバイスに送信するステップと、
前記送信されたメッセージおよび前記固有メッセージ有効化コードを前記第2のデバイスによって受信するステップとをさらに含むことを特徴とする請求項37に記載のコンピュータ可読記憶媒体。
【請求項42】
前記第1のデバイスが、前記メッセージの中に含められるべき固有メッセージ有効化コードを第3のデバイスから要求するステップと、
前記第3のデバイスが、前記メッセージの中に含められるべき前記固有メッセージ有効化コードを前記第1のデバイスに送信するステップとをさらに含むことを特徴とする請求項41に記載のコンピュータ可読記憶媒体。
【請求項43】
前記第1のデバイスと前記第2のデバイスは、ネットワークを介して通信することを特徴とする請求項36に記載のコンピュータ可読記憶媒体。
【請求項44】
前記第2のデバイスにおいて、前記格納されたリストの中に所定の数以下の前記固有メッセージ有効化コードが含まれるかどうかを判定するステップと、
前記リストが、前記所定の数以下の前記固有メッセージ有効化コードを含むと判定された場合、前記第2のデバイスが、前記リストのために追加の固有メッセージ有効化コードを獲得するステップとをさらに含むことを特徴とする請求項36に記載のコンピュータ可読記憶媒体。
【請求項45】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストの代りに前記第2のデバイスの中に格納される新たなリストを構成することを特徴とする請求項44に記載のコンピュータ可読記憶媒体。
【請求項46】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストに追加されることを特徴とする請求項44に記載のコンピュータ可読記憶媒体。
【請求項47】
固有メッセージ有効化コードの前記生成されたリストは、セキュリティで保護された形で前記第2のデバイスに送信されることを特徴とする請求項38または39に記載のコンピュータ可読記憶媒体。
【請求項48】
前記固有メッセージ有効化コードは、乱数を含むことを特徴とする請求項36に記載のコンピュータ可読記憶媒体。
【請求項49】
前記第2のデバイスが、前記受信された固有メッセージ有効化コードに対して妥当性検査を実行するステップをさらに含むことを特徴とする請求項36に記載のコンピュータ可読記憶媒体。
【請求項50】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってハッシュアルゴリズムにかけられることを特徴とする請求項41に記載のコンピュータ可読記憶媒体。
【請求項51】
前記メッセージの前記処理は、印刷プロセスを含むことを特徴とする請求項35に記載のコンピュータ可読記憶媒体。
【請求項52】
ホストデバイスからメッセージを受信し、処理する装置であって、
前記ホストデバイスとの間でメッセージを送受信するためのインタフェースと、
コンピュータ実行可能プロセスステップを実行するプロセッサと、
前記プロセッサによって実行されるコンピュータ実行可能プロセスステップであって、
(a)装置によって前記ホストデバイスから受信されたメッセージの固有メッセージ有効化コードをメモリ媒体の中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
(b)前記比較するステップに基づき、装置による前記メッセージの処理を拒否するか否かを判定するステップとを含むプロセスステップを含む情報を格納する該メモリ媒体とを含むことを特徴とする装置。
【請求項53】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項52に記載の装置。
【請求項54】
固有メッセージ有効化コードの前記リストは、前記装置以外のデバイスにおいて生成され、前記生成されたリストは、前記メモリ媒体の中に格納するために前記装置へ送信されることを特徴とする請求項53に記載の装置。
【請求項55】
固有メッセージ有効化コードの前記リストは、第3のデバイスにおいて生成され、前記リストは、前記第3のデバイスによって、前記装置の中に格納するために前記装置へ送信されることを特徴とする請求項54に記載の装置。
【請求項56】
固有メッセージ有効化コードの前記リストは、前記ホストデバイスにおいて生成され、前記リストは、前記ホストデバイスによって装置に、装置の中に格納するために送信されることを特徴とする請求項54に記載の装置。
【請求項57】
固有メッセージ有効化コードの前記リストは、前記第2のデバイスおよび第3のデバイスによって相互に生成されることを特徴とする請求項54に記載の装置。
【請求項58】
前記受信されるメッセージは、前記ホストデバイスにおいて生成され、前記生成されたメッセージは、前記生成されたリストからの前記固有メッセージ有効化コードの少なくとも1つを含むことを特徴とする請求項54に記載の装置。
【請求項59】
前記ホストデバイスは、第3のデバイスから、前記メッセージの中に含められるべき固有メッセージ有効化コードを要求し、前記第3のデバイスは、前記メッセージの中に含められるべき前記固有メッセージ有効化コードを前記ホストデバイスに送信することを特徴とする請求項58に記載の装置。
【請求項60】
装置と前記ホストデバイスは、ネットワークを介して通信することを特徴とする請求項53に記載の装置。
【請求項61】
前記プロセスステップは、所定の数以下の固有メッセージ有効化コードが前記格納されたリストの中に含まれるかどうかを装置が判定するステップと、
前記リストが、前記所定の数以下の前記固有メッセージ有効化コードを含むと判定された場合、装置が、前記リストのために追加の固有メッセージ有効化コードを獲得するステップとをさらに含むことを特徴とする請求項53に記載の装置。
【請求項62】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストの代りに装置の中に格納される新たなリストを構成することを特徴とする請求項61に記載の装置。
【請求項63】
前記追加の固有メッセージ有効化コードは、前記現在の格納されたリストに追加されることを特徴とする請求項61に記載の装置。
【請求項64】
固有メッセージ有効化コードの前記生成されたリストは、セキュリティで保護された形で装置に送信されることを特徴とする請求項55または56に記載の装置。
【請求項65】
前記固有メッセージ有効化コードは、乱数を含むことを特徴とする請求項53に記載の装置。
【請求項66】
前記プロセスステップは、装置が、前記受信された固有メッセージ有効化コードに対して妥当性検査を実行するステップをさらに含むことを特徴とする請求項53に記載の装置。
【請求項67】
前記ホストデバイスから装置に送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってハッシュアルゴリズムにかけられることを特徴とする請求項59に記載の装置。
【請求項68】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスおよび前記第2のデバイスによって相互に生成されることを特徴とする請求項3に記載の方法。
【請求項69】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスおよび前記第2のデバイスによって相互に生成されることを特徴とする請求項20に記載のコンピュータ実行可能プロセスステップ。
【請求項70】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスおよび前記第2のデバイスによって相互に生成されることを特徴とする請求項37に記載のコンピュータ可読媒体。
【請求項71】
固有メッセージ有効化コードの前記リストは、装置および前記第2のデバイスによって相互に生成されることを特徴とする請求項54に記載の装置。
【請求項72】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってデジタル署名アルゴリズムにかけられることを特徴とする請求項7に記載の方法。
【請求項73】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってデジタル署名アルゴリズムにかけられることを特徴とする請求項24に記載のコンピュータ実行可能プロセスステップ。
【請求項74】
前記第1のデバイスから前記第2のデバイスに送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってデジタル署名アルゴリズムにかけられることを特徴とする請求項41に記載のコンピュータ可読媒体。
【請求項75】
前記ホストデバイスから装置に送信される前記メッセージおよび前記固有メッセージ有効化コードは、送信されるのに先立ってデジタル署名アルゴリズムにかけられることを特徴とする請求項59に記載の装置。
【請求項76】
前記メッセージの前記処理は、印刷プロセスを含むことを特徴とする請求項52に記載の装置。
【特許請求の範囲】
【請求項1】
第1のデバイスから第2のデバイスに送信されるメッセージのリプレイに対するセキュリティを提供する情報処理方法であって、
前記第2のデバイスによって前記第1のデバイスから受信されたメッセージの固有メッセージ有効化コードを前記第2のデバイスの中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
前記比較するステップに基づき、前記第2のデバイスによる前記メッセージの処理を拒否するか否かを判定するステップとを含むことを特徴とする情報処理方法。
【請求項2】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項1に記載の情報処理方法。
【請求項3】
固有メッセージ有効化コードの前記リストを生成するステップと、
前記生成されたリストを前記第2のデバイスの中に格納するステップとをさらに含むことを特徴とする請求項2に記載の情報処理方法。
【請求項4】
固有メッセージ有効化コードの前記リストは、第3のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項3に記載の情報処理方法。
【請求項5】
固有メッセージ有効化コードの前記リストは、前記第1のデバイスにおいて生成され、前記リストは、前記第2のデバイスに、該第2のデバイスの中に格納するために送信されることを特徴とする請求項3に記載の情報処理方法。
【請求項6】
固有メッセージ有効化コードの前記リストは、前記第2のデバイスおよび第3のデバイスによって相互に生成されることを特徴とする請求項3に記載の情報処理方法。
【請求項7】
前記生成されたリストからの前記固有メッセージ有効化コードの少なくとも1つを含む、前記第2のデバイスに送信されるべき前記メッセージを前記第1のデバイスにおいて生成するステップと、
前記生成されたメッセージを前記固有メッセージ有効化コードと一緒に前記第1のデバイスから前記第2のデバイスに送信するステップと、
前記送信されたメッセージおよび前記固有メッセージ有効化コードを前記第2のデバイスによって受信するステップとをさらに含むことを特徴とする請求項3に記載の情報処理方法。
【請求項8】
前記第1のデバイスが、前記メッセージの中に含められるべき固有メッセージ有効化コードを第3のデバイスから要求するステップと、
前記第3のデバイスが、前記メッセージの中に含められるべき前記固有メッセージ有効化コードを前記第1のデバイスに送信するステップとをさらに含むことを特徴とする請求項7に記載の情報処理方法。
【請求項9】
前記第2のデバイスにおいて、前記格納されたリストの中に所定の数以下の前記固有メッセージ有効化コードが含まれるかどうかを判定するステップと、
前記リストが、前記所定の数以下の前記固有メッセージ有効化コードを含むと判定された場合、前記第2のデバイスが、前記リストのために追加の固有メッセージ有効化コードを獲得するステップとをさらに含むことを特徴とする請求項2に記載の情報処理方法。
【請求項10】
前記メッセージの前記処理は、印刷プロセスを含むことを特徴とする請求項1に記載の情報処理方法。
【請求項11】
ホストデバイスからメッセージを受信し、処理する情報処理装置であって、
前記ホストデバイスとの間でメッセージを送受信するためのインタフェースと、
コンピュータ実行可能プロセスステップを実行するプロセッサと、
前記プロセッサによって実行されるコンピュータ実行可能プロセスステップであって、
(a)装置によって前記ホストデバイスから受信されたメッセージの固有メッセージ有効化コードをメモリ媒体の中に格納された固有メッセージ有効化コードのリストと比較して、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれているかどうかを判定するステップと、
(b)前記比較するステップに基づき、装置による前記メッセージの処理を拒否するか否かを判定するステップとを含むプロセスステップを含む情報を格納する該メモリ媒体とを含むことを特徴とする情報処理装置。
【請求項12】
前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが前記格納されたリストの中に含まれていると判定された場合、前記メッセージの処理は、拒否されず、前記格納されたリストから対応する固有メッセージ有効化コードが削除され、前記比較するステップにより、前記メッセージとともに受信された前記固有メッセージ有効化コードが、前記格納されたリストの中に含まれていないと判定された場合、前記メッセージの処理は、拒否されることを特徴とする請求項11に記載の情報処理装置。
【請求項13】
請求項1乃至10のいずれかに記載の情報処理方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項14】
請求項13に記載のコンピュータプログラムを格納したことを特徴とする、コンピュータが読み取り可能なコンピュータ可読記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2006−72970(P2006−72970A)
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【外国語出願】
【出願番号】特願2005−187103(P2005−187103)
【出願日】平成17年6月27日(2005.6.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【出願番号】特願2005−187103(P2005−187103)
【出願日】平成17年6月27日(2005.6.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]