ネットワークシステム、端末コンピュータ、代替コンピュータ、コンピュータプログラム、処理実行方法、暗号化装置、復号化装置、暗号化方法、復号化方法、及び暗号化データ
【課題】複数の端末コンピュータ間で行われる処理を、第三者端末を利用して行っても信頼性が保たれるようにする。
【解決手段】ネットワークシステムにおいて、一の端末110が他の端末120との間で行う協調処理に関する前記一の端末110の機能を、代替端末130を用いて代替させる代替処理を行う。一の端末110は、協調処理を実行するための処理オブジェクトを含む代替処理依頼データRを生成して、代替端末130に対して送信することで代替処理の依頼を行う。代替端末130が代替処理依頼データRを受信すると、処理オブジェクトを用いた協調処理の実行の要求を他の端末120に送信する。代替処理依頼データRには、当該代替処理依頼データの真性を保証する保証データが含まれており、他の端末120は、保証データに基づいて、協調処理の実行の要求を受け入れるか否かを判断する。
【解決手段】ネットワークシステムにおいて、一の端末110が他の端末120との間で行う協調処理に関する前記一の端末110の機能を、代替端末130を用いて代替させる代替処理を行う。一の端末110は、協調処理を実行するための処理オブジェクトを含む代替処理依頼データRを生成して、代替端末130に対して送信することで代替処理の依頼を行う。代替端末130が代替処理依頼データRを受信すると、処理オブジェクトを用いた協調処理の実行の要求を他の端末120に送信する。代替処理依頼データRには、当該代替処理依頼データの真性を保証する保証データが含まれており、他の端末120は、保証データに基づいて、協調処理の実行の要求を受け入れるか否かを判断する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、代替処理が行えるネットワークシステム、端末コンピュータ、代替コンピュータ、コンピュータプログラム、及び処理実行方法、並びに、これらの実施に直接使用するのに適した暗号化装置、復号化装置、暗号化方法、復号化方法、及び暗号化データに関するものである。
【背景技術】
【0002】
複数の端末コンピュータを有するネットワークシステムにおいては、一の端末コンピュータから他の端末コンピュータへのファイル転送処理のように、複数の端末コンピュータが通信を行って一つの処理を行うことがある。
【0003】
一般に、ファイル転送処理のように複数の端末コンピュータが通信を行って実行すべき処理では、一の端末コンピュータによって実行されるコンピュータプログラム(処理オブジェクト)と、他の端末コンピュータによって実行されるコンピュータプログラム(処理オブジェクト)とが、互いに通信を行って協調しながら、それらのプログラムを実行することになる。
【0004】
しかし、処理の当事者である複数の端末コンピュータが、常に、同時にネットワーク上に存在して直接通信可能であるとは限らず、いずれか一方の端末コンピュータが、ネットワークから離脱するなどして、複数の端末コンピュータが直接通信できず、前記処理を実行できないこともありえる。
【0005】
ここで、一方の端末コンピュータがネットワークから離脱するときに、ある処理を、第三のコンピュータにて実行させる手段として、例えばモバイルエージェントを利用することが考えられる(非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】本位田真一、“モバイルエージェントのためのソフトウェアプラットフォーム”,NII Journal No.3、67頁−72頁、国立情報学研究所、2001年11月
【発明の概要】
【発明が解決しようとする課題】
【0007】
モバイルエージェントを利用する場合、例えば、悪意のあるコンピュータプログラムが移動先のコンピュータで攻撃を行う可能性や、悪意のある移動先のコンピュータが移動してきたコンピュータプログラム中の秘密情報を詐取したり、移動してきたコンピュータプログラムを改ざんしたりする可能性がある。
【0008】
上記の問題のうち、前者の問題は、ウィルス駆除ソフトの導入やJava(登録商標)セキュリティなどで対処でき、後者の問題は、移動するコンピュータプログラム(モバイルエージェント)を暗号化し、暗号文のまま実行処理する手法で対処できる。
しかし、上記対処だけでは、特に、安全性や信頼性が重視される企業内システム等では十分と言えない。
【0009】
そこで、本発明は、端末コンピュータがネットワークから離脱するなどして、複数の端末コンピュータが直接通信できない場合、それら端末コンピュータ間で行われる処理を第三者端末を用いて行っても信頼性を確保することができる新たな技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
[ネットワークシステムの発明]
(1)本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムであって、前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、前記代替コンピュータが前記代替処理依頼データを受信する手段と、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する手段と、を備え、前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断することを特徴とするネットワークシステムである。
【0011】
上記本発明によれば、一の端末コンピュータは、他の端末コンピュータとの間で行われる前記処理を、代替コンピュータを用いて代替させることができる。
しかも、代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれているため、他の端末コンピュータは、代替コンピュータから取得した前記保証データに基づいて、前記処理の実行の要求が正当なものであるかを判断した上で、当該要求受け入れるか否かを判断することができる。
【0012】
(2)前記保証データは、前記代替の依頼元の真性を保証する依頼元保証データを含むのが好ましい。この場合、代替の依頼元の正当性を、前記他の端末コンピュータが判断することができる。
【0013】
(3)前記保証データは、前記代替の対象である前記処理の真性を保証する依頼対象保証データを含むのが好ましい。この場合、代替の対象である前記処理の正当性を、前記他の端末コンピュータが判断することができる。
【0014】
(4)前記保証データは、公開鍵暗号方式における前記一の端末コンピュータ用秘密鍵にて暗号化し、さらに、公開鍵暗号方式における前記他の端末コンピュータ用公開鍵にて暗号化した暗号化データを含むのが好ましい。このように二重で暗号化することにより、暗号化データにおける依頼元のなりすましを防止するとともに暗号化データの覗き見を防止することができる。
【0015】
(5)前記他の端末コンピュータは、前記代替コンピュータから取得した前記暗号化データを、公開鍵暗号方式における前記他の端末コンピュータ用秘密鍵にて復号化し、さらに、公開鍵暗号方式における前記一の端末コンピュータ用公開鍵にて復号化して得られたデータに基づいて、前記処理の実行の要求を受け入れるか否かを判断するのが好ましい。この場合、前記他の端末コンピュータは、依頼元のなりすましの防止と覗き見を防止した暗号化データを復号して、前記処理の実行の要求を受け入れるか否かを精度良く判断することができる。
【0016】
(6)前記代替コンピュータは、前記他の端末コンピュータが、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定し、前記他の端末コンピュータにて実行させる場合には、前記代替処理プログラムを、前記他の端末コンピュータに転送するのが好ましい。この場合、他の端末コンピュータ上で前記処理を実行できる。
【0017】
(7)前記他の端末コンピュータは、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、当該他の端末コンピュータ自身が実行するか否かを決定するとともに、その決定結果を前記代替コンピュータに送信し、前記代替コンピュータは、前記決定結果に基づいて、前記代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定するのが好ましい。この場合、代替コンピュータは、他の端末コンピュータの決定結果に基づいて、前記代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定することができる。
【0018】
(8)前記保証データには、前記代替処理依頼データに含まれる代替処理プログラムから算出される当該代替処理プログラムの代表値が含まれ、前記代替処理プログラムを前記代替コンピュータから受信した前記他の端末コンピュータは、前記代替処理プログラムから前記代表値を算出し、算出した代表値を、前記保証データに含まれる前記代表値と比較し、両者が一致すると、前記代替処理プログラムを実行するのが好ましい。この場合、代替処理プログラムの改ざんを検出することが可能となる。
【0019】
[依頼端末コンピュータの発明]
(9)他の観点からみた本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記一の端末コンピュータであって、前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、を備え、前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれていることを特徴とする端末コンピュータである。この端末コンピュータでは、他の端末コンピュータとの間で行われる前記処理を、代替コンピュータを用いて代替させる代替処理の依頼を行うことができる。しかも、代替処理の依頼の際には、代替処理依頼データの真性を保証する保証データを、代替コンピュータに送信することができる。
【0020】
[代替コンピュータの発明]
(10)さらに他の観点からみた本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける第三の端末コンピュータであって、前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、前記第三の端末コンピュータを用いて代替させるための代替処理プログラムを含む代替処理依頼データを、前記一の端末コンピュータから受信する手段と、前記代替処理依頼データを受信すると、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、当該代替処理依頼データに含まれ当該代替処理依頼データの真性を保証する保証データとともに、前記他の端末コンピュータに送信する送信手段と、を備えていることを特徴とする代替コンピュータである。この代替コンピュータによれば、代替処理の依頼を受け付けると、代替処理依頼データの真性を保証する保証データとともに、前記処理の実行の要求を、他の端末コンピュータに送信することができる。
【0021】
[処理の実行の要求を受け付ける端末コンピュータの発明]
(11)さらに他の観点から見た本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける、前記他の端末コンピュータであって、前記一の端末コンピュータとの間で行われる前期処理に関する第一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるための代替処理プログラムを用いた前記処理の実行の要求を、前記代替処理プログラムを含む代替処理依頼データの真性を保証する保証データとともに前記代替コンピュータから受信する手段と、受信した前記保証データに基づいて、前記代替コンピュータからの前記処理の実行の要求を受け入れるか否かを判断する手段と、を備えていることを特徴とする端末コンピュータである。この端末コンピュータによれば、前記保証データに基づいて、前期処理の実行の要求を受け入れるか否かを判断することができる。
【0022】
[コンピュータプログラムの発明]
(12)さらに他の観点からみた本発明は、コンピュータを、前記(9)記載の端末コンピュータとして機能させるためのコンピュータプログラムである。
【0023】
(13)さらに他の観点からみた本発明は、コンピュータを、前記(10)記載の代替コンピュータとして機能させるためのコンピュータプログラムである。
【0024】
(14)さらに他の観点からみた本発明は、コンピュータを、前記(11)記載の端末コンピュータとして機能させるためのコンピュータプログラムである。
【0025】
[処理実行方法の発明]
(15)さらに他の観点からみた本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記処理の実行方法であって、前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する判断ステップと、代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する生成ステップと、前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う依頼ステップと、前記代替コンピュータが前記代替処理依頼データを受信する受信ステップと、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する送信ステップと、を含み、前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断することを特徴とする処理の実行方法である。
【0026】
[暗号化装置の発明]
(16)さらに他の観点からみた本発明は、ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化装置であって、暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成する手段と、前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成する手段と、を備えていることを特徴とする暗号化装置である。この暗号化装置によれば、送信元のなりすましの防止とともに当該データの覗き見の防止を保証する暗号化データを生成することができる。
【0027】
[復号化装置の発明]
(17)さらに他の観点からみた本発明は、前記暗号化装置にて生成された暗号化データを復号化する復号化装置であって、前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号する手段と、前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化する手段と、を備えていることを特徴とする復号化装置である。この復号化装置によれば、上記暗号化データを復号することができる。
【0028】
[コンピュータプログラムの発明]
(18)さらに他の観点からみた本発明は、コンピュータを、前記(16)記載の暗号化装置として機能させるためのコンピュータプログラムである。
【0029】
(19)さらに他の観点から見た本発明は、コンピュータを、前記(17)記載の復号化装置として機能させるためのコンピュータプログラムである。
【0030】
[暗号化方法の発明]
(20)さらに他の観点から見た本発明は、ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化方法であって、暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成し、前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成することを特徴とする暗号化方法である。
【0031】
[復号化方法の発明]
(21)前記(20)にて生成された暗号化データを復号化する復号化方法であって、前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号し、前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化することを特徴とする復号化方法である。
【0032】
[暗号化データの発明]
(22)コンピュータによって復号処理が行われるコンピュータ読み取り可能な暗号化データであって、暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化した上で、公開鍵暗号方式における送信先用公開鍵にて二重に暗号化されていることを特徴とする暗号化データである。
【発明の効果】
【0033】
上記(1)〜(15)に記載の本発明によれば、複数の端末コンピュータ間で行われる処理を第三者端末により行っても信頼性を確保することができる。
【0034】
また、上記(16)〜(22)に記載の本発明によれば、送信元のなりすましの防止とともに当該データの覗き見の防止が行える。
【図面の簡単な説明】
【0035】
【図1】ネットワークシステムの構成図である。
【図2】エージェントの機能ブロック図である。
【図3】代替処理の依頼を示す図である。
【図4】依頼通知を示す図である。
【図5】依頼通知の正当性判断を示す図である。
【図6】依頼通知に対する返答を示す図である。
【図7】協調処理の実行を示す図である。
【図8】協調処理の実行を示す図である。
【図9】依頼エージェントの処理を示す図である。
【図10】代替処理依頼データの生成処理を示す図である。
【図11】代替処理依頼データのデータ構造を示す図である。
【図12】複数のサブネットからなるネットワークシステムを示す図である。
【図13】代替端末候補を探すための問い合わせパケット送信の様子を示す図である。
【図14】問い合わせパケットに対する返答パケット送信の様子を示す図である。
【図15】代替エージェントによる協調処理の実行要求処理を示す図である。
【図16】代替エージェントの返答受信処理を示す図である。
【図17】処理依頼通知データMのデータ構造を示す図である。
【図18】代替エージェントによる依頼ホップ処理を示す図である。
【図19】処理依頼通知受信処理を示す図である。
【図20】信頼性確認処理を示す図である。
【図21】協調相手端末における処理オブジェクト実行処理を示す図である。
【図22】暗号化方法及び復号化方法を示す図である。
【発明を実施するための形態】
【0036】
以下、本発明の実施形態を図面に基づいて説明する。
図1は、複数の端末コンピュータ110,120,130及びサーバ100を有するネットワークシステムを示している。
【0037】
端末コンピュータ(以下、単に「端末」という)110,120,130は、OSが搭載されたコンピュータによって構成されている。各端末110,120,130には、各種のアプリケーションプログラム(以下、単に「アプリケーション」という)112,122,132の動作基盤となるエージェントコンピュータプログラム(以下、単に「エージェント」という)111,121,131がインストールされている。これらのエージェントは、通常、各端末110,120,130に常駐している。
【0038】
各端末のエージェント111,121,131は、他の端末のエージェント111,121,131と協調して動作することで、本発明に係るネットワークシステムにおける機能(代替処理)を実現する。
また、各端末のエージェント111,121,131は、端末に搭載された一又は複数のアプリケーション112,122,132が動作するために必要な機能を提供するフレームワークでもある。
【0039】
エージェント111,121,131上で動作するアプリケーション112,122,132としては、ネットワーク内の情報の流れを追跡する情報追跡システム、ファイル転送システムなどが挙げられる。
これらのアプリケーションにおいては、一の端末に搭載されたアプリケーションが、他の端末に搭載された同種又は異種のアプリケーションと協調した協調処理を実行するために、エージェント111,121,131を介して、アプリケーション間通信が行われる。
【0040】
なお、複数のアプリケーション間の協調処理を実行する場合、それぞれのアプリケーションは、当該アプリケーションが本来存在する端末において実行される必要はなく、アプリケーションのプログラムコード一部又は全部や、必要なパラメータ等を、代替処理プログラムとして他の端末に移動し、その代替処理プログラムを移動先の端末で実行させてもよい。
【0041】
代替処理プログラムは、各端末のエージェント111,121,131によって提供される実行メモリ空間上において動作することができる。このように、エージェント111,121,131は、代替処理プログラムが動作するために必要な機能を提供するフレームワーク(MAF;Mobile Agent Framework)でもある。
なお、代替処理プログラムを用いて実行される協調処理は、アプリケーション間の協調処理に限られず、エージェント111,121,131間の協調処理であってもよし、アプリケーション−エージェント間の協調処理であってもよい。
【0042】
[エージェントの構成]
図2は、本発明に係るネットワークシステムにおける機能(代替処理)を実現するためのエージェント111,121,131の機能を示している。なお、図2に示す機能は、エージェントコンピュータプログラムが端末コンピュータ110,120,130において実行されることで発揮される機能である。
【0043】
ここでの「代替処理」は、一の端末(以下、「依頼端末」という)が、他の端末(以下、「協調相手端末」という)との間で行う協調処理に関する前記依頼端末の機能を、ネットワーク上の第三の端末である代替コンピュータ(以下、「代替端末」という)に代替させることをいう。なお、ここでの「協調処理」とは、一の端末と他の端末とが互いに通信して行う各種の処理をいう。
【0044】
ネットワークシステムにおいて、前記代替処理を実現するため、図2に示すように、各端末のエージェント111,121,131は、それぞれ、依頼機能部1、代替機能部2、実行要求受付機能部3を備えている。
【0045】
依頼機能部1は、ネットワークから離脱等しようとする端末のエージェントが、代替端末のエージェントに代替処理を依頼するための依頼処理を行う。この依頼機能部1によって、エージェント111,121,131は、「依頼エージェント」として機能し、端末110,120,130は、「依頼端末」として機能することができる。
【0046】
代替機能部2は、依頼エージェント(依頼端末)からの依頼を受けて、協調処理における本来の一方の当事者である依頼端末抜きでも、協調処理が行えるように、依頼端末の代替を行う。この代替機能部2によって、エージェント111,121,131は、「代替エージェント」として機能し、端末110,120,130は、「代替端末」として機能することができる。
【0047】
実行要求受付機能部3は、依頼エージェントからの依頼に基づいて代替エージェントが行う協調処理実行要求を受け付けて、その実行要求を受け入れて協調処理を実行するか否かの判断を行う。この実行要求受付機能部3によって、エージェント111,121,131は、実行要求受付エージェントとして機能し、端末110,120,130は、「実行要求受付端末」として機能することができる。なお、実行要求を受け付けた場合、当該エージェントは、「協調相手エージェント」として機能し、当該端末は「協調相手端末」として機能することができる。
【0048】
さらに、各エージェント111,121,131は、それぞれのエージェントに割り当てられた秘密鍵(公開鍵方式における秘密鍵)4を有している。秘密鍵4には、対応するエージェントのみがアクセス可能となっている。この秘密鍵4は、依頼エージェントから送信されるデータの暗号化・復号化に用いられる。この秘密鍵4の使用方法については、後述する。
【0049】
[代替処理の概要]
以下では、図3〜図6に基づいて、代替処理の概要を説明する。なお、ここでは、図1における端末110が「依頼端末」であり、そのエージェント111が「依頼エージェント」として機能し、端末120が「協調相手端末」となるべき端末であり、そのエージェント121が「実行要求受付エージェント」(協調相手エージェント)として機能し、端末130が「代替端末」であり、そのエージェント131が「代替エージェント」として機能するものとする。
【0050】
(代替処理の依頼)
図3では、協調処理(例えば、ファイル転送処理)の協調当事者である端末110,120のうちの一方の端末120は、何らかの事情で、ネットワークから離脱しているものとする。このため、端末110のアプリケーション112が、協調相手端末120のアプリケーション122に対して、ある協調処理Aを実行しようとしても、実行できない状態にある。
【0051】
この図3の状態において、端末110も、その後、ネットワークを離脱する予定になっているものとする。この場合、端末110は、端末120がネットワークに復帰するのを待つことができない。そこで、依頼端末110のエージェント111は、協調処理Aの実行のための処理を、代替端末130に委ねるために、代替処理の依頼を、代替端末130のエージェント131に対して行う。
【0052】
代替処理の依頼は、依頼エージェント111が、協調処理Aを実行するための代替処理プログラムを含む代替処理依頼データを生成し、その代替処理依頼データを、代替エージェント131に送信することで行われる。
代替処理プログラムは、例えば協調処理Aを端末110の立場で実行するための処理オブジェクトである。この処理オブジェクトにより、協調処理Aに関して、端末110において実行されるべき処理を、他の端末を用いて実行させることができる。
【0053】
代替処理依頼データには、代替処理プログラムとしての処理オブジェクトのほか、当該代替処理依頼データの真性(正当性)を保証する保証データが含まれている。なお、保証データの詳細については後述する。
【0054】
(端末120への協調処理の実行要求)
その後、図4に示すように、依頼端末110が、ネットワークから離脱し、協調処理の協調相手端末となるべき端末120がネットワークに復帰したとする。すると、協調処理Aに関する代替処理を依頼された代替端末130の代替エージェント131は、端末120がネットワークに復帰したタイミングで、端末120の実行要求受付エージェント121に対し、当該端末120を協調相手とする協調処理Aの処理依頼があることを通知する。この通知によって、協調処理Aの実行の要求が、代替エージェント131から実行要求受付エージェント121に送信されることになる。
【0055】
(実行要求の正当性確認)
代替エージェント131からの通知には、代替エージェント131が依頼エージェント111から取得した保証データが含められている。図5に示すように、代替エージェント131から通知(協調処理Aの実行要求)を受けた端末120の実行要求受付エージェント121は、保証データに基づいて、その通知(協調処理Aの実行要求)の正当性を確認し、協調処理Aの実行の要求を受け入れるか否か判断する。
【0056】
ここで、端末110がネットワーク上に存在しており、端末120から端末110への通信が可能であれば、代替エージェント131からの通知(協調処理Aの実行要求)の正当性を、端末120のエージェント121が、端末110のエージェント111に問い合わせることも可能ではある。
しかし、図4に示すように、端末110がネットワークから離脱している場合、そのような問い合わせを行うことはできない。
ところが、本実施形態では、代替エージェント131からの通知(協調処理Aの実行要求)には、その通知が、依頼エージェント111からの依頼に基づくものであることを保証する保証データが含まれているため、上記のような問い合わせが行えなくても、実行要求受付エージェント121は、当該保証データに基づいて、通知の正当性を確認することができる。
【0057】
(正当性確認の返答)
図6に示すように、端末120の実行要求受付エージェント121は、保証データに基づいて、通知の正当性を確認すると、代替エージェント131からの協調処理Aの実行の要求を受け入れるものと判断し、その旨の返答を、代替エージェント131に対して行う。この返答には、依頼端末110から送られてきた協調処理Aの処理オブジェクトの実行場所を、端末120とするか端末130とするかを示す実行場所情報が含まれる。
【0058】
(協調処理Aの実行(その1))
代替エージェント131は、実行要求の受け入れの返答を受け取り、その返答に含まれる実行場所情報が示す実行場所が代替端末130である場合、図7に示すように、代替エージェント131は、依頼エージェント111からの代替処理依頼データに含まれる協調処理Aのための処理オブジェクトを、代替端末131上で実行し、協調相手端末120のアプリケーション122との間で、協調処理Aを実行する。
【0059】
(協調処理Aの実行(その2))
また、実行要求受付エージェント121からの返答に含まれる実行場所情報が示す実行場所が協調相手端末120である場合、図8に示すように、代替エージェント131は、依頼エージェント111からの代替処理依頼データに含まれる協調処理Aのための処理オブジェクトを、実行要求受付端末(協調相手端末)120に移動させる。
【0060】
実行要求受付エージェント121は、先に取得した保証データを用いて、再度、処理の正当性を確認し、正当性を確認できた場合、実行要求受付エージェント(協調相手エージェント121)は、協調処理Aのための処理オブジェクトと協調相手端末120上のアプリケーション122との間での協調処理Aを実行させる。
この場合、協調処理のためのプログラムが、いずれも端末120上に存在するため、端末間通信(エージェント間通信)を行う必要がなく、端末120内でのデータのやりとりで協調処理を高速に実行できる。
なお、端末120に十分なメモリリソースがない場合には、「協調処理Aの実行(その1)」で示したように、分散的に協調処理Aを実行する方が有利である。
【0061】
上記のようにして行われた協調処理の結果は、処理オブジェクトによって、依頼端末110に通知され、これにより依頼端末110は、通常の協調処理を実行したのと同様の結果を得ることができる。
【0062】
[代替処理の詳細]
(依頼エージェントの処理)
図9は、依頼エージェント111(エージェントの依頼機能部1)による依頼処理の流れを示している。
まず、依頼エージェント111が、アプリケーション112からの協調処理Aの実行依頼を受け付けると(ステップS11)、その依頼エージェント111は、協調相手端末120がネットワーク上に存在するかどうかを判定するために、端末120の検索を行う(ステップS12)。なお、協調処理の開始は、アプリケーション112が行うものである必要はなく、エージェント111が行うものであってもよい。
【0063】
協調相手端末120がネットワーク上に存在すると判定された場合(ステップS13)、エージェント111は、端末110のアプリケーション112と端末120のアプリケーション122との間で、通常の協調処理Aを実行させる(ステップS14)。
【0064】
一方、協調相手端末120となるべき端末がネットワーク上に存在しないと判定された場合(ステップS13)、依頼エージェント111は、代替処理の依頼をするべきか否かを判断する(ステップS15)。この判断は、協調相手端末120が存在しない場合に代替処理を実行するか否かについて予めエージェント111に設定されている情報や、エージェント111が代替処理の要否をアプリケーション112に問い合わせることによって行われる。
【0065】
ステップS15において、代替処理を依頼しないと判定された場合、代替処理を依頼せずに終了するが、代替処理を依頼すると判定された場合、依頼エージェント111は、代替処理依頼データRを生成する(ステップS16)。この代替処理依頼データRの生成方法については後述する。
なお、代替処理の依頼は、協調相手端末120がネットワーク上に存在する場合に行っても良い。例えば、自端末110の処理リソースが十分でない場合や処理リソース節約のために、他の端末に処理を代替してもらう目的で依頼を行っても良い。
【0066】
その後、依頼エージェント111は、代替端末(代替エージェント)となる端末(エージェント)を決定し(ステップS17)、生成した代替処理依頼データRを、決定した代替端末(代替エージェント)へ送信する。なお、代替端末(代替エージェント)の決定方法についても後述する。
【0067】
図10は、ステップS16における代替処理依頼データRの生成処理の詳細を示している。代替処理依頼データRは、図11に示すように、ヘッダと、ペイロード(データ本体)とを有している。ヘッダには、協調処理Aの協調相手識別子、代替処理依頼データRの送信元識別子、代替処理の依頼元識別子が含まれる。また、ペイロードには、保証データと、処理オブジェクトとが含まれる。
【0068】
前記協調相手識別子は、協調処理Aにおける協調相手エージェント(実行要求受付エージェント)121が常駐する端末120を識別する識別子であり、ネットワークシステム内においてユニークなものである。
【0069】
前記送信元識別子は、代替処理依頼データRを送信したエージェントが常駐する端末を識別する識別子であり、ネットワーク内においてユニークなものである。
前記依頼元識別子は、協調処理の代替処理を他の端末に依頼した依頼エージェント111が常駐する端末を識別する識別子であり、ネットワーク内においてユニークなものである。
なお、代替端末が一つだけの場合、送信元と依頼元とは一致するが、代替処理依頼データRが、複数の端末を経由して送信される場合、端末を経由する度に、送信元は経由端末に変更されるが、依頼元は代替処理の依頼元であるため、複数の端末を経由しても変更されることがない。
【0070】
前記保証データは、暗号化データと、非暗号化データとを含む。前記暗号化データは、処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を含み、前記非暗号化データも、処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を含む。つまり、暗号化データの中身と非暗号化データの中身は同じであり、両データの違いは、暗号化の有無にある。
【0071】
前記処理依頼元保証値としては、代替処理の依頼元のエージェント(依頼エージェント111)を特定するための識別子が設定される。この処理依頼元保証値は、本発明の依頼元保証データを構成する。
【0072】
前記処理オブジェクト保証値は、依頼元からの処理オブジェクト(協調処理Aのための処理オブジェクト)それ自体を保証するための値であり、本実施形態では、処理オブジェクト自体をハッシュ関数に適用して算出されたハッシュ値が採用されている。なお、処理オブジェクト保証値は、処理オブジェクト自体が改ざんされたときに、その改ざんを検出できるように、処理オブジェクト自体から算出される処理オブジェクトの代表値であればよく、その算出方法がハッシュ関数に限定されるものではない。この処理オブジェクト保証値は、本発明の依頼対象保証データを構成する。
【0073】
また、前記処理内容値は、処理オブジェクトの処理内容がどのようなものであるか(例えば、ファイル追跡処理やファイル転送処理)を示す値であり、本発明の依頼対象保証データを構成する。
【0074】
前記処理オブジェクトは、本来、依頼端末110で実行されるべき協調処理A用コンピュータプログラムからなる。
【0075】
図11に示す代替処理依頼データRを生成するため、依頼エージェント111は、まず、処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を取得する(ステップS21)。
処理依頼元保証値としては、依頼エージェント111自身の識別子が設定される。処理オブジェクト保証値としては、処理オブジェクト自体をハッシュ関数に適用し算出されたハッシュ値が設定される。処理内容値としては、処理オブジェクトの処理内容を把握しているアプリケーション112から依頼エージェント111が取得して設定される。
【0076】
また、依頼エージェント111は、取得した処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を、依頼エージェント111自身の秘密鍵4にて暗号化し、暗号化の中間データを生成する(ステップS21)。
【0077】
さらに、依頼エージェント111は、ステップS21で生成された中間データを、処理依頼先端末120の公開鍵(公開鍵方式における公開鍵)にて暗号化し、暗号化データを生成する(ステップS22)。この暗号化データが、図11の保証データにおける暗号化データを構成する。
なお、各端末(エージェント)の公開鍵は、サーバ100にて集中して保有・管理しておき、各端末のエージェントが、サーバ100から必要な公開鍵を取得するようにしてもよいし、各端末のエージェントが、他の端末のエージェントの公開鍵を分散的に保有・管理しておき、各端末のエージェントが、自分自身又は他の端末のエージェントから必要な公開鍵を取得するようにしてもよい。
【0078】
そして、依頼エージェント111は、暗号化されていない平文の処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を、図11の保証データにおける非暗号化データとして、前記暗号化データとともに保証データを形成する。
この保証データは、協調処理Aの処理オブジェクトに付加され、図11の代替処理依頼データRにおけるペイロードが形成される(ステップS23)。このペイロードにヘッダを付加することで、図11の代替処理依頼データRの生成が完了する。
【0079】
図12は、ステップS17における代替端末の決定方法を示している。依頼エージェント111は、代替端末を、通信コストに応じて決定する。ここで、通信コストは、例えば、自身が存在するサブネットからの距離とすることができる。図12に示すように、ルータで接続された複数のサブネットA〜Bからなるネットワークの場合、サブネットを超える度に、通信コストが「1」増加するものとする。なお、ここでは、サブネットは、ルータで区切られた個々の領域をいう。
【0080】
図12の場合、端末Aから端末Fへの通信コストは、端末Fの位置(サブネットC)が、端末Aの属するサブネットAから数えて2つ目であるため、「端末A−端末F」の通信コストは「2」となる。
代替処理に関し、端末Aが端末Dへの処理を他端末に依頼する場合、端末Dからみて最も通信コストの低い端末は、端末Cであるため、端末Aは、端末Cに対して代替処理を依頼することになる。
【0081】
図13及び図14は、上記のように代替端末を決定するための通信コスト比較対象となる代替端末候補を発見する方法を示している。図13に示すように、代替端末を決定したい端末110のエージェント111は、エージェントが搭載された他の端末を発見するため、自身と同じ種類のエージェント(本実施形態に係るエージェント)121,131,141だけが応答する問い合わせパケットをマルチキャスト送信する。
【0082】
図14に示すように、この問い合わせパケットに対して、他の端末120,130,140のエージェント121,131,141は、返答パケットを端末110のエージェント111に返す。
ただし、エージェントが搭載されていない(又は何らかの理由によりエージェントが未起動の)端末150からは、返答パケットは返ってこない。
エージェント111は、他のエージェント121,131,141からの返答により、自身の周辺に、代替端末候補となる端末121,131,141(エージェントが搭載された端末)が存在することを把握することができる。
【0083】
エージェント111は、代替端末候補121,131,141から、協調相手端末121を除き、通信コストが最も低い端末を代替端末として決定する。
なお、代替端末としてサーバ100が決定されてもよい。
【0084】
(代替エージェントの処理)
図15及び図16は代替エージェント131の処理を示している。図13に示すように、代替エージェント131が、依頼エージェント111から送信された代替処理依頼データRを受信すると(ステップS31)、代替エージェント131は、協調相手端末(実行要求受付端末)120がネットワーク上でアクティブになるのを待つ(ステップS32)。協調相手端末120がアクティブになっていることの検出は、協調相手端末120に対する定期的なポーリングなどによって行うことができる。
【0085】
協調相手端末120がアクティブになると、代替エージェント131は、処理依頼通知データMを、協調相手エージェント(実行要求受付エージェント)121に送信する(ステップS33)。この処理依頼通知データMの送信は、端末120を協調相手とする協調処理Aの処理依頼があることの通知であり、このデータMを受け取った実行要求受付エージェント12は、協調処理Aの実行の要求を受信したことになる。
【0086】
処理依頼通知データMは、図17に示すデータ構造を有するものである。この処理依頼通知データのデータ構造は、代替処理依頼データR(図11参照)から、処理オブジェクトを除いたものと等価であり、暗号化データ及び非暗号化データを含む保証データを有している。
【0087】
処理依頼通知データMは、代替エージェント131が依頼エージェント111から取得した代替処理依頼データRから処理オブジェクトを削除することで生成される。
したがって、実行要求受付エージェント121は、処理依頼通知データMを代替エージェント131から受信すると、依頼エージェント111が生成した保証データを取得することができる。
なお、本実施形態では、代替エージェント131は、保証データの送信と協調処理Aの実行要求送信とを同時に行っているが、協調処理Aの実行要求送信だけを行い、保証データは、実行要求を受信した実行要求受付エージェント121が、代替エージェント131からダウンロードするようにしてもよい。
【0088】
代替エージェント131は、上記処理依頼通知データMを送信すると、協調相手エージェント(実行要求受付エージェント)121からの返答を待つ(ステップS34)。
【0089】
図16に示すように、代替エージェント131は、協調相手エージェント(実行要求受付エージェント)121から、処理依頼通知データ(協調処理Aの実行要求)Mに対する返答を受信すると(ステップS41)、その返答が、協調処理Aの実行要求を受け入れるものであるか否かを判定する。
【0090】
協調相手エージェント(実行要求受付エージェント)121からの返答が、協調処理Aの実行要求を拒否するものである場合には何もせずに終了するが、協調処理Aの実行要求を受け入れるものである場合には(ステップS42)、処理オブジェクトを実行する場所の判定を行う(ステップS43)。
処理オブジェクトを実行する場所の判定は、返答に含まれる実行場所情報に基づいて行われる。
【0091】
前記実行場所情報が示す実行場所が、協調相手端末120である場合、代替エージェント131は、協調相手エージェント121に対して、処理オブジェクトを含む代替処理依頼データMを転送する(ステップS44)。
【0092】
前記実行場所情報が示す実行場所が、代替端末130である場合、代替エージェント131は、代替端末130上で、処理オブジェクトを実行させ、協調相手端末120のアプリケーション122との間で、協調処理Aを実行する(ステップS45)。
【0093】
図18は、代替処理依頼データRを受け取った代替エージェント131が、代替処理を完了できなかった場合に、他の端末に代替処理依頼データRを転送して、当該他の端末に代替処理を委ねる依頼ホップ処理を示している。
代替エージェント131が未処理の代替処理依頼データRを有している場合(ステップS51)、当該代替処理を行う新たな代替端末を決定する(ステップS52)。新たな代替端末の決定は、ステップS17と同様に行えばよい。
【0094】
代替エージェント131は、新たな代替端末を決定すると、代替処理依頼データRを、新たな代替端末のエージェントに対して送信する。これにより、代替端末131が代替処理を実行できない場合でも、他の端末に代替処理を行わせることができる。
【0095】
(実行要求受付エージェント(協調相手エージェント)の処理)
図19〜図21は、実行要求受付エージェント(協調相手エージェント)121における処理を示している。
図19は、実行要求受付エージェント121が、処理依頼通知データMを受信した場合の処理の流れを示している。実行要求受付エージェント121が、代替エージェント131から処理依頼通知データM(協調処理の実行要求)を受信すると(ステップS61)、当該エージェント121は、処理依頼通知データMに含まれる保証データに基づいて、その実行要求の正当性(信頼性)を確認する(ステップS62)。この確認処理については後述する。
【0096】
実行要求の正当性が確認できなかった場合、実行要求を受け入れない旨の返答のパケットを、代替エージェント131へ送信する(ステップS65)。
また、実行要求の正当性が確認できなかった場合、その実行要求を送信してきた代替エージェント131(代替端末130)は、悪意ある端末である可能性がある。そこで、実行要求受付エージェント121は、そのようなエージェント131(端末130)を、サーバ100へ通知する。
【0097】
サーバ100は、悪意ある端末の可能性がある端末(異常端末)のリストを、各エージェントからの通知によって生成する。異常端末リストは、エージェントが代替端末を決定する場合に、当該エージェントによって参照され、これにより、異常端末リストに含まれる端末を代替端末から排除することができる。
【0098】
一方、実行要求受付エージェント121は、実行要求の正当性(信頼性)を確認すると、代替エージェント131からの協調処理Aの実行の要求を受け入れるものと判断する(ステップS63)。実行要求を受け入れる場合、実行要求受付エージェント121は、代替処理の対象である処理オブジェクトの実行場所を決定する(ステップS64)。
【0099】
処理オブジェクトの実行場所は、実行要求受付エージェント121が搭載されている端末120における処理リソース量に基づいて、実行要求受付エージェント121が判断できる。端末120が、携帯端末のように処理リソースが多くない場合には、代替端末130などの他の端末で処理オブジェクトを実行させた方が、端末120の負荷が軽減され好ましい。一方、端末120における処理リソースが十分にある場合には、端末120上で処理オブジェクト及びアプリケーション122を共に実行させた方が、ネットワーク通信が発生しないため、高速に処理でき好ましい。
【0100】
実行要求受付エージェント121は、上記観点から処理オブジェクトの実行場所(実行端末)を決定し、決定した実行場所を示す実行場所情報を、実行要求を受け入れる旨の返答のパケットに含めて、代替エージェント131へ送信する(ステップS65)。
【0101】
図20は、ステップS61における信頼性確認処理の詳細を示している。
実行要求受付エージェント121は、処理依頼通知データM内に含まれる保証データのうち、暗号化データ(暗号化された処理依頼元保証値、処理オブジェクト保証値、及び処理内容値)を、自身が有する秘密鍵4で復号化し、中間データを復元する(ステップS71)。
さらに、上記中間データを、更に、依頼端末110の依頼エージェント111の公開鍵で復号化し、平文の処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を得る。
【0102】
復号化で得られた処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を、保証データ中の非暗号化データ(平文の処理依頼元保証値、処理オブジェクト保証値、及び処理内容値)と比較する。復号化した各値と非暗号化データの各値が一致していれば、処理依頼元保証値が示す端末が依頼元であること(依頼元の真性)や、代替対象である協調処理の真性を確認できる(ステップS73)。仮に、両者が一致しない場合には、正当性はないものとみなされる。
【0103】
図19のステップS64において、処理オブジェクトの実行場所を代替端末130に決定した場合、端末120と端末130との間で協調処理が行われるが、処理オブジェクトの実行場所を協調相手端末120自身に決定した場合、協調相手エージェント121は、処理オブジェクトを代替エージェント131から取得する必要がある。
【0104】
図21は、協調相手エージェント121は、処理オブジェクトを代替エージェント131から取得する処理を示している。
まず、協調相手エージェント121は、代替エージェント131から、処理オブジェクトを含む代替処理依頼データRをダウンロードする(ステップS81)。
【0105】
そして、協調相手エージェント121は、代替処理依頼データ内の処理オブジェクト保証値(暗号化データを復号したもの)と、取得した処理オブジェクトをハッシュ関数に適用して得られたハッシュ値とを比較する(ステップS82)。両者が一致した場合、処理オブジェクトは、処理オブジェクト保証値と整合するものと判定する(ステップS83)。両値に、整合性がある場合には、取得した処理オブジェクトを、協調相手端末120上で実行させ、協調相手端末120のアプリケーション122との協調処理Aを行わせる(ステップS84)。
【0106】
[データの暗号化・復号化]
さて、図10及び図20において説明した保証データの暗号化・復号化について、図22に基づいて、補足説明をする。
本実施形態のように、第三者端末である代替端末(中継端末)を経由して、処理オブジェクト(データ)を送信する場合、悪意のある代替端末Xによる「依頼元なりすまし」「データの覗き見」を防止することが必要である。
本実施形態では、処理依頼元、処理オブジェクト、処理内容の保証を行うために、依頼元(送信元)A自身の秘密鍵と、協調相手(送信先)Bの公開鍵とを用いて、二重に暗号化することにより、「依頼元なりすまし」「データの覗き見」を排除している。
【0107】
ここで、一般的な暗号化には、秘密鍵暗号方式による暗号化と、公開鍵暗号方式による暗号化とがある。秘密鍵暗号方式では、データの送信元と送信先とが共通の秘密鍵を持ち、暗号化に用いた秘密鍵で復号化も行う。秘密鍵暗号方式では、秘密鍵を持たない第三者は、復号を行えないため「依頼元なりすまし」「データの覗き見」は行えない。
【0108】
しかし、秘密鍵暗号方式では、送信元と送信先とが共通の秘密鍵を持つ必要があり、秘密鍵の配布の安全性の確保が困難であるという問題がある。
【0109】
一方、秘密鍵の配布が必要ない方式として、公開鍵暗号方式がある。公開鍵暗号方式では、公開される公開鍵と秘密にされる秘密鍵のペアが用いられ、暗号化したデータを特定の送信先に送信したい送信元は、送信先の公開鍵を用いて、データを暗号化し、送信先は暗号化データを秘密鍵にて復号する。
【0110】
公開鍵暗号方式では、公開鍵が公開されているため、不特定多数の端末が暗号化データを作成して、送信先に送信できるものの、復号は秘密鍵を持っている送信先しか行えないため、秘密鍵を配布することなく暗号化を行うことができる。
【0111】
しかし、一般的な公開鍵暗号方式では、秘密鍵は送信先しか保有していないため覗き見は防止されるものの、公開鍵が公開されているため、暗号化データを誰でも作成できるという問題がある。このため、悪意ある代替端末Xが、依頼元は端末Aであると偽るとともに、保証データを改ざんして、端末Bに保証データを送信すると、端末Bは、その保証データが、真実、端末Aから送信されたのか確認することが困難である。
つまり、一般的な公開鍵暗号方式は、覗き見は防止できるものの、依頼元(送信元)なりすましを防止することはできない。
【0112】
これに対し、本実施形態では、図22にも示すように、保証データの暗号化データ(送信データ)は、送信元である端末Aの秘密鍵で暗号化された上で、送信先である端末Bの公開鍵で二重に暗号化されている。
このため、本実施形態の暗号化データを復号するには、まず、送信先である端末Bの秘密鍵が必要である。端末Bの秘密鍵は、端末Bしか有していないため(端末Bにしかアクセスできないよう管理されているため)、第三者端末Xは、暗号化データを端末B秘密鍵で復号して、暗号化データを覗き見することができない。
【0113】
さらに、暗号化データ(中間データ)の復号には、端末Bの秘密鍵だけでなく、送信元である端末Aの公開鍵も必要であるが、公開鍵は公開されているため、送信先である端末Bは当然に復号を完了することができる。
しかも、悪意ある第三者端末Xが、送信元Aになりすまして、暗号化データを端末Bに送信するには、送信元端末Aの秘密鍵で暗号化した中間データを生成する必要がある。
しかし、端末Aの秘密鍵は端末Aしか有していないため、悪意ある第三者端末Xは、送信元端末Aの秘密鍵で暗号化した中間データを生成することができず、端末Aになりすますことができない。
【0114】
仮に、悪意ある第三者端末Xが、端末Aになりすましたデータを生成し、そのデータを自身の秘密鍵で暗号化して中間データを作成した場合、端末Bは、中間データを復号するときに、ヘッダの依頼元識別子を参照して、中間データ復号に用いる公開鍵を決定することになる。この場合、端末Bは端末Aの公開鍵で中間データを復号することになるが、端末Aの公開鍵では、端末Xの秘密鍵で暗号化されたデータの復号は行えない。復号が行えない場合、端末Bは、データのなりすましを検出することができる。
【0115】
このように、公開鍵暗号方式で用いられる公開鍵と秘密鍵とを用いて、二重の暗号化を行うことにより、秘密鍵暗号方式と同様に、依頼元なりすまし防止及びデータの覗き見防止を行うことができる。しかも、秘密鍵暗号方式のように秘密鍵の配布が必要ないため、安全性に優れている。
【0116】
なお、上記の暗号化・復号化は、各端末110,120,130のエージェント111,121,131が有する機能であるため、各端末110,120,130は暗号化装置ないし復号化装置ということができる。
【0117】
本発明に関して、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0118】
1 依頼機能部
2 代替機能部
3 実行要求受付機能部
110 端末コンピュータ
111 エージェント
112 アプリケーション
120 端末コンピュータ
121 エージェント
122 アプリケーション
130 端末コンピュータ
131 エージェント
132 アプリケーション
【技術分野】
【0001】
本発明は、代替処理が行えるネットワークシステム、端末コンピュータ、代替コンピュータ、コンピュータプログラム、及び処理実行方法、並びに、これらの実施に直接使用するのに適した暗号化装置、復号化装置、暗号化方法、復号化方法、及び暗号化データに関するものである。
【背景技術】
【0002】
複数の端末コンピュータを有するネットワークシステムにおいては、一の端末コンピュータから他の端末コンピュータへのファイル転送処理のように、複数の端末コンピュータが通信を行って一つの処理を行うことがある。
【0003】
一般に、ファイル転送処理のように複数の端末コンピュータが通信を行って実行すべき処理では、一の端末コンピュータによって実行されるコンピュータプログラム(処理オブジェクト)と、他の端末コンピュータによって実行されるコンピュータプログラム(処理オブジェクト)とが、互いに通信を行って協調しながら、それらのプログラムを実行することになる。
【0004】
しかし、処理の当事者である複数の端末コンピュータが、常に、同時にネットワーク上に存在して直接通信可能であるとは限らず、いずれか一方の端末コンピュータが、ネットワークから離脱するなどして、複数の端末コンピュータが直接通信できず、前記処理を実行できないこともありえる。
【0005】
ここで、一方の端末コンピュータがネットワークから離脱するときに、ある処理を、第三のコンピュータにて実行させる手段として、例えばモバイルエージェントを利用することが考えられる(非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】本位田真一、“モバイルエージェントのためのソフトウェアプラットフォーム”,NII Journal No.3、67頁−72頁、国立情報学研究所、2001年11月
【発明の概要】
【発明が解決しようとする課題】
【0007】
モバイルエージェントを利用する場合、例えば、悪意のあるコンピュータプログラムが移動先のコンピュータで攻撃を行う可能性や、悪意のある移動先のコンピュータが移動してきたコンピュータプログラム中の秘密情報を詐取したり、移動してきたコンピュータプログラムを改ざんしたりする可能性がある。
【0008】
上記の問題のうち、前者の問題は、ウィルス駆除ソフトの導入やJava(登録商標)セキュリティなどで対処でき、後者の問題は、移動するコンピュータプログラム(モバイルエージェント)を暗号化し、暗号文のまま実行処理する手法で対処できる。
しかし、上記対処だけでは、特に、安全性や信頼性が重視される企業内システム等では十分と言えない。
【0009】
そこで、本発明は、端末コンピュータがネットワークから離脱するなどして、複数の端末コンピュータが直接通信できない場合、それら端末コンピュータ間で行われる処理を第三者端末を用いて行っても信頼性を確保することができる新たな技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
[ネットワークシステムの発明]
(1)本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムであって、前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、前記代替コンピュータが前記代替処理依頼データを受信する手段と、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する手段と、を備え、前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断することを特徴とするネットワークシステムである。
【0011】
上記本発明によれば、一の端末コンピュータは、他の端末コンピュータとの間で行われる前記処理を、代替コンピュータを用いて代替させることができる。
しかも、代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれているため、他の端末コンピュータは、代替コンピュータから取得した前記保証データに基づいて、前記処理の実行の要求が正当なものであるかを判断した上で、当該要求受け入れるか否かを判断することができる。
【0012】
(2)前記保証データは、前記代替の依頼元の真性を保証する依頼元保証データを含むのが好ましい。この場合、代替の依頼元の正当性を、前記他の端末コンピュータが判断することができる。
【0013】
(3)前記保証データは、前記代替の対象である前記処理の真性を保証する依頼対象保証データを含むのが好ましい。この場合、代替の対象である前記処理の正当性を、前記他の端末コンピュータが判断することができる。
【0014】
(4)前記保証データは、公開鍵暗号方式における前記一の端末コンピュータ用秘密鍵にて暗号化し、さらに、公開鍵暗号方式における前記他の端末コンピュータ用公開鍵にて暗号化した暗号化データを含むのが好ましい。このように二重で暗号化することにより、暗号化データにおける依頼元のなりすましを防止するとともに暗号化データの覗き見を防止することができる。
【0015】
(5)前記他の端末コンピュータは、前記代替コンピュータから取得した前記暗号化データを、公開鍵暗号方式における前記他の端末コンピュータ用秘密鍵にて復号化し、さらに、公開鍵暗号方式における前記一の端末コンピュータ用公開鍵にて復号化して得られたデータに基づいて、前記処理の実行の要求を受け入れるか否かを判断するのが好ましい。この場合、前記他の端末コンピュータは、依頼元のなりすましの防止と覗き見を防止した暗号化データを復号して、前記処理の実行の要求を受け入れるか否かを精度良く判断することができる。
【0016】
(6)前記代替コンピュータは、前記他の端末コンピュータが、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定し、前記他の端末コンピュータにて実行させる場合には、前記代替処理プログラムを、前記他の端末コンピュータに転送するのが好ましい。この場合、他の端末コンピュータ上で前記処理を実行できる。
【0017】
(7)前記他の端末コンピュータは、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、当該他の端末コンピュータ自身が実行するか否かを決定するとともに、その決定結果を前記代替コンピュータに送信し、前記代替コンピュータは、前記決定結果に基づいて、前記代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定するのが好ましい。この場合、代替コンピュータは、他の端末コンピュータの決定結果に基づいて、前記代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定することができる。
【0018】
(8)前記保証データには、前記代替処理依頼データに含まれる代替処理プログラムから算出される当該代替処理プログラムの代表値が含まれ、前記代替処理プログラムを前記代替コンピュータから受信した前記他の端末コンピュータは、前記代替処理プログラムから前記代表値を算出し、算出した代表値を、前記保証データに含まれる前記代表値と比較し、両者が一致すると、前記代替処理プログラムを実行するのが好ましい。この場合、代替処理プログラムの改ざんを検出することが可能となる。
【0019】
[依頼端末コンピュータの発明]
(9)他の観点からみた本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記一の端末コンピュータであって、前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、を備え、前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれていることを特徴とする端末コンピュータである。この端末コンピュータでは、他の端末コンピュータとの間で行われる前記処理を、代替コンピュータを用いて代替させる代替処理の依頼を行うことができる。しかも、代替処理の依頼の際には、代替処理依頼データの真性を保証する保証データを、代替コンピュータに送信することができる。
【0020】
[代替コンピュータの発明]
(10)さらに他の観点からみた本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける第三の端末コンピュータであって、前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、前記第三の端末コンピュータを用いて代替させるための代替処理プログラムを含む代替処理依頼データを、前記一の端末コンピュータから受信する手段と、前記代替処理依頼データを受信すると、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、当該代替処理依頼データに含まれ当該代替処理依頼データの真性を保証する保証データとともに、前記他の端末コンピュータに送信する送信手段と、を備えていることを特徴とする代替コンピュータである。この代替コンピュータによれば、代替処理の依頼を受け付けると、代替処理依頼データの真性を保証する保証データとともに、前記処理の実行の要求を、他の端末コンピュータに送信することができる。
【0021】
[処理の実行の要求を受け付ける端末コンピュータの発明]
(11)さらに他の観点から見た本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける、前記他の端末コンピュータであって、前記一の端末コンピュータとの間で行われる前期処理に関する第一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるための代替処理プログラムを用いた前記処理の実行の要求を、前記代替処理プログラムを含む代替処理依頼データの真性を保証する保証データとともに前記代替コンピュータから受信する手段と、受信した前記保証データに基づいて、前記代替コンピュータからの前記処理の実行の要求を受け入れるか否かを判断する手段と、を備えていることを特徴とする端末コンピュータである。この端末コンピュータによれば、前記保証データに基づいて、前期処理の実行の要求を受け入れるか否かを判断することができる。
【0022】
[コンピュータプログラムの発明]
(12)さらに他の観点からみた本発明は、コンピュータを、前記(9)記載の端末コンピュータとして機能させるためのコンピュータプログラムである。
【0023】
(13)さらに他の観点からみた本発明は、コンピュータを、前記(10)記載の代替コンピュータとして機能させるためのコンピュータプログラムである。
【0024】
(14)さらに他の観点からみた本発明は、コンピュータを、前記(11)記載の端末コンピュータとして機能させるためのコンピュータプログラムである。
【0025】
[処理実行方法の発明]
(15)さらに他の観点からみた本発明は、ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記処理の実行方法であって、前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する判断ステップと、代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する生成ステップと、前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う依頼ステップと、前記代替コンピュータが前記代替処理依頼データを受信する受信ステップと、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する送信ステップと、を含み、前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断することを特徴とする処理の実行方法である。
【0026】
[暗号化装置の発明]
(16)さらに他の観点からみた本発明は、ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化装置であって、暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成する手段と、前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成する手段と、を備えていることを特徴とする暗号化装置である。この暗号化装置によれば、送信元のなりすましの防止とともに当該データの覗き見の防止を保証する暗号化データを生成することができる。
【0027】
[復号化装置の発明]
(17)さらに他の観点からみた本発明は、前記暗号化装置にて生成された暗号化データを復号化する復号化装置であって、前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号する手段と、前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化する手段と、を備えていることを特徴とする復号化装置である。この復号化装置によれば、上記暗号化データを復号することができる。
【0028】
[コンピュータプログラムの発明]
(18)さらに他の観点からみた本発明は、コンピュータを、前記(16)記載の暗号化装置として機能させるためのコンピュータプログラムである。
【0029】
(19)さらに他の観点から見た本発明は、コンピュータを、前記(17)記載の復号化装置として機能させるためのコンピュータプログラムである。
【0030】
[暗号化方法の発明]
(20)さらに他の観点から見た本発明は、ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化方法であって、暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成し、前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成することを特徴とする暗号化方法である。
【0031】
[復号化方法の発明]
(21)前記(20)にて生成された暗号化データを復号化する復号化方法であって、前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号し、前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化することを特徴とする復号化方法である。
【0032】
[暗号化データの発明]
(22)コンピュータによって復号処理が行われるコンピュータ読み取り可能な暗号化データであって、暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化した上で、公開鍵暗号方式における送信先用公開鍵にて二重に暗号化されていることを特徴とする暗号化データである。
【発明の効果】
【0033】
上記(1)〜(15)に記載の本発明によれば、複数の端末コンピュータ間で行われる処理を第三者端末により行っても信頼性を確保することができる。
【0034】
また、上記(16)〜(22)に記載の本発明によれば、送信元のなりすましの防止とともに当該データの覗き見の防止が行える。
【図面の簡単な説明】
【0035】
【図1】ネットワークシステムの構成図である。
【図2】エージェントの機能ブロック図である。
【図3】代替処理の依頼を示す図である。
【図4】依頼通知を示す図である。
【図5】依頼通知の正当性判断を示す図である。
【図6】依頼通知に対する返答を示す図である。
【図7】協調処理の実行を示す図である。
【図8】協調処理の実行を示す図である。
【図9】依頼エージェントの処理を示す図である。
【図10】代替処理依頼データの生成処理を示す図である。
【図11】代替処理依頼データのデータ構造を示す図である。
【図12】複数のサブネットからなるネットワークシステムを示す図である。
【図13】代替端末候補を探すための問い合わせパケット送信の様子を示す図である。
【図14】問い合わせパケットに対する返答パケット送信の様子を示す図である。
【図15】代替エージェントによる協調処理の実行要求処理を示す図である。
【図16】代替エージェントの返答受信処理を示す図である。
【図17】処理依頼通知データMのデータ構造を示す図である。
【図18】代替エージェントによる依頼ホップ処理を示す図である。
【図19】処理依頼通知受信処理を示す図である。
【図20】信頼性確認処理を示す図である。
【図21】協調相手端末における処理オブジェクト実行処理を示す図である。
【図22】暗号化方法及び復号化方法を示す図である。
【発明を実施するための形態】
【0036】
以下、本発明の実施形態を図面に基づいて説明する。
図1は、複数の端末コンピュータ110,120,130及びサーバ100を有するネットワークシステムを示している。
【0037】
端末コンピュータ(以下、単に「端末」という)110,120,130は、OSが搭載されたコンピュータによって構成されている。各端末110,120,130には、各種のアプリケーションプログラム(以下、単に「アプリケーション」という)112,122,132の動作基盤となるエージェントコンピュータプログラム(以下、単に「エージェント」という)111,121,131がインストールされている。これらのエージェントは、通常、各端末110,120,130に常駐している。
【0038】
各端末のエージェント111,121,131は、他の端末のエージェント111,121,131と協調して動作することで、本発明に係るネットワークシステムにおける機能(代替処理)を実現する。
また、各端末のエージェント111,121,131は、端末に搭載された一又は複数のアプリケーション112,122,132が動作するために必要な機能を提供するフレームワークでもある。
【0039】
エージェント111,121,131上で動作するアプリケーション112,122,132としては、ネットワーク内の情報の流れを追跡する情報追跡システム、ファイル転送システムなどが挙げられる。
これらのアプリケーションにおいては、一の端末に搭載されたアプリケーションが、他の端末に搭載された同種又は異種のアプリケーションと協調した協調処理を実行するために、エージェント111,121,131を介して、アプリケーション間通信が行われる。
【0040】
なお、複数のアプリケーション間の協調処理を実行する場合、それぞれのアプリケーションは、当該アプリケーションが本来存在する端末において実行される必要はなく、アプリケーションのプログラムコード一部又は全部や、必要なパラメータ等を、代替処理プログラムとして他の端末に移動し、その代替処理プログラムを移動先の端末で実行させてもよい。
【0041】
代替処理プログラムは、各端末のエージェント111,121,131によって提供される実行メモリ空間上において動作することができる。このように、エージェント111,121,131は、代替処理プログラムが動作するために必要な機能を提供するフレームワーク(MAF;Mobile Agent Framework)でもある。
なお、代替処理プログラムを用いて実行される協調処理は、アプリケーション間の協調処理に限られず、エージェント111,121,131間の協調処理であってもよし、アプリケーション−エージェント間の協調処理であってもよい。
【0042】
[エージェントの構成]
図2は、本発明に係るネットワークシステムにおける機能(代替処理)を実現するためのエージェント111,121,131の機能を示している。なお、図2に示す機能は、エージェントコンピュータプログラムが端末コンピュータ110,120,130において実行されることで発揮される機能である。
【0043】
ここでの「代替処理」は、一の端末(以下、「依頼端末」という)が、他の端末(以下、「協調相手端末」という)との間で行う協調処理に関する前記依頼端末の機能を、ネットワーク上の第三の端末である代替コンピュータ(以下、「代替端末」という)に代替させることをいう。なお、ここでの「協調処理」とは、一の端末と他の端末とが互いに通信して行う各種の処理をいう。
【0044】
ネットワークシステムにおいて、前記代替処理を実現するため、図2に示すように、各端末のエージェント111,121,131は、それぞれ、依頼機能部1、代替機能部2、実行要求受付機能部3を備えている。
【0045】
依頼機能部1は、ネットワークから離脱等しようとする端末のエージェントが、代替端末のエージェントに代替処理を依頼するための依頼処理を行う。この依頼機能部1によって、エージェント111,121,131は、「依頼エージェント」として機能し、端末110,120,130は、「依頼端末」として機能することができる。
【0046】
代替機能部2は、依頼エージェント(依頼端末)からの依頼を受けて、協調処理における本来の一方の当事者である依頼端末抜きでも、協調処理が行えるように、依頼端末の代替を行う。この代替機能部2によって、エージェント111,121,131は、「代替エージェント」として機能し、端末110,120,130は、「代替端末」として機能することができる。
【0047】
実行要求受付機能部3は、依頼エージェントからの依頼に基づいて代替エージェントが行う協調処理実行要求を受け付けて、その実行要求を受け入れて協調処理を実行するか否かの判断を行う。この実行要求受付機能部3によって、エージェント111,121,131は、実行要求受付エージェントとして機能し、端末110,120,130は、「実行要求受付端末」として機能することができる。なお、実行要求を受け付けた場合、当該エージェントは、「協調相手エージェント」として機能し、当該端末は「協調相手端末」として機能することができる。
【0048】
さらに、各エージェント111,121,131は、それぞれのエージェントに割り当てられた秘密鍵(公開鍵方式における秘密鍵)4を有している。秘密鍵4には、対応するエージェントのみがアクセス可能となっている。この秘密鍵4は、依頼エージェントから送信されるデータの暗号化・復号化に用いられる。この秘密鍵4の使用方法については、後述する。
【0049】
[代替処理の概要]
以下では、図3〜図6に基づいて、代替処理の概要を説明する。なお、ここでは、図1における端末110が「依頼端末」であり、そのエージェント111が「依頼エージェント」として機能し、端末120が「協調相手端末」となるべき端末であり、そのエージェント121が「実行要求受付エージェント」(協調相手エージェント)として機能し、端末130が「代替端末」であり、そのエージェント131が「代替エージェント」として機能するものとする。
【0050】
(代替処理の依頼)
図3では、協調処理(例えば、ファイル転送処理)の協調当事者である端末110,120のうちの一方の端末120は、何らかの事情で、ネットワークから離脱しているものとする。このため、端末110のアプリケーション112が、協調相手端末120のアプリケーション122に対して、ある協調処理Aを実行しようとしても、実行できない状態にある。
【0051】
この図3の状態において、端末110も、その後、ネットワークを離脱する予定になっているものとする。この場合、端末110は、端末120がネットワークに復帰するのを待つことができない。そこで、依頼端末110のエージェント111は、協調処理Aの実行のための処理を、代替端末130に委ねるために、代替処理の依頼を、代替端末130のエージェント131に対して行う。
【0052】
代替処理の依頼は、依頼エージェント111が、協調処理Aを実行するための代替処理プログラムを含む代替処理依頼データを生成し、その代替処理依頼データを、代替エージェント131に送信することで行われる。
代替処理プログラムは、例えば協調処理Aを端末110の立場で実行するための処理オブジェクトである。この処理オブジェクトにより、協調処理Aに関して、端末110において実行されるべき処理を、他の端末を用いて実行させることができる。
【0053】
代替処理依頼データには、代替処理プログラムとしての処理オブジェクトのほか、当該代替処理依頼データの真性(正当性)を保証する保証データが含まれている。なお、保証データの詳細については後述する。
【0054】
(端末120への協調処理の実行要求)
その後、図4に示すように、依頼端末110が、ネットワークから離脱し、協調処理の協調相手端末となるべき端末120がネットワークに復帰したとする。すると、協調処理Aに関する代替処理を依頼された代替端末130の代替エージェント131は、端末120がネットワークに復帰したタイミングで、端末120の実行要求受付エージェント121に対し、当該端末120を協調相手とする協調処理Aの処理依頼があることを通知する。この通知によって、協調処理Aの実行の要求が、代替エージェント131から実行要求受付エージェント121に送信されることになる。
【0055】
(実行要求の正当性確認)
代替エージェント131からの通知には、代替エージェント131が依頼エージェント111から取得した保証データが含められている。図5に示すように、代替エージェント131から通知(協調処理Aの実行要求)を受けた端末120の実行要求受付エージェント121は、保証データに基づいて、その通知(協調処理Aの実行要求)の正当性を確認し、協調処理Aの実行の要求を受け入れるか否か判断する。
【0056】
ここで、端末110がネットワーク上に存在しており、端末120から端末110への通信が可能であれば、代替エージェント131からの通知(協調処理Aの実行要求)の正当性を、端末120のエージェント121が、端末110のエージェント111に問い合わせることも可能ではある。
しかし、図4に示すように、端末110がネットワークから離脱している場合、そのような問い合わせを行うことはできない。
ところが、本実施形態では、代替エージェント131からの通知(協調処理Aの実行要求)には、その通知が、依頼エージェント111からの依頼に基づくものであることを保証する保証データが含まれているため、上記のような問い合わせが行えなくても、実行要求受付エージェント121は、当該保証データに基づいて、通知の正当性を確認することができる。
【0057】
(正当性確認の返答)
図6に示すように、端末120の実行要求受付エージェント121は、保証データに基づいて、通知の正当性を確認すると、代替エージェント131からの協調処理Aの実行の要求を受け入れるものと判断し、その旨の返答を、代替エージェント131に対して行う。この返答には、依頼端末110から送られてきた協調処理Aの処理オブジェクトの実行場所を、端末120とするか端末130とするかを示す実行場所情報が含まれる。
【0058】
(協調処理Aの実行(その1))
代替エージェント131は、実行要求の受け入れの返答を受け取り、その返答に含まれる実行場所情報が示す実行場所が代替端末130である場合、図7に示すように、代替エージェント131は、依頼エージェント111からの代替処理依頼データに含まれる協調処理Aのための処理オブジェクトを、代替端末131上で実行し、協調相手端末120のアプリケーション122との間で、協調処理Aを実行する。
【0059】
(協調処理Aの実行(その2))
また、実行要求受付エージェント121からの返答に含まれる実行場所情報が示す実行場所が協調相手端末120である場合、図8に示すように、代替エージェント131は、依頼エージェント111からの代替処理依頼データに含まれる協調処理Aのための処理オブジェクトを、実行要求受付端末(協調相手端末)120に移動させる。
【0060】
実行要求受付エージェント121は、先に取得した保証データを用いて、再度、処理の正当性を確認し、正当性を確認できた場合、実行要求受付エージェント(協調相手エージェント121)は、協調処理Aのための処理オブジェクトと協調相手端末120上のアプリケーション122との間での協調処理Aを実行させる。
この場合、協調処理のためのプログラムが、いずれも端末120上に存在するため、端末間通信(エージェント間通信)を行う必要がなく、端末120内でのデータのやりとりで協調処理を高速に実行できる。
なお、端末120に十分なメモリリソースがない場合には、「協調処理Aの実行(その1)」で示したように、分散的に協調処理Aを実行する方が有利である。
【0061】
上記のようにして行われた協調処理の結果は、処理オブジェクトによって、依頼端末110に通知され、これにより依頼端末110は、通常の協調処理を実行したのと同様の結果を得ることができる。
【0062】
[代替処理の詳細]
(依頼エージェントの処理)
図9は、依頼エージェント111(エージェントの依頼機能部1)による依頼処理の流れを示している。
まず、依頼エージェント111が、アプリケーション112からの協調処理Aの実行依頼を受け付けると(ステップS11)、その依頼エージェント111は、協調相手端末120がネットワーク上に存在するかどうかを判定するために、端末120の検索を行う(ステップS12)。なお、協調処理の開始は、アプリケーション112が行うものである必要はなく、エージェント111が行うものであってもよい。
【0063】
協調相手端末120がネットワーク上に存在すると判定された場合(ステップS13)、エージェント111は、端末110のアプリケーション112と端末120のアプリケーション122との間で、通常の協調処理Aを実行させる(ステップS14)。
【0064】
一方、協調相手端末120となるべき端末がネットワーク上に存在しないと判定された場合(ステップS13)、依頼エージェント111は、代替処理の依頼をするべきか否かを判断する(ステップS15)。この判断は、協調相手端末120が存在しない場合に代替処理を実行するか否かについて予めエージェント111に設定されている情報や、エージェント111が代替処理の要否をアプリケーション112に問い合わせることによって行われる。
【0065】
ステップS15において、代替処理を依頼しないと判定された場合、代替処理を依頼せずに終了するが、代替処理を依頼すると判定された場合、依頼エージェント111は、代替処理依頼データRを生成する(ステップS16)。この代替処理依頼データRの生成方法については後述する。
なお、代替処理の依頼は、協調相手端末120がネットワーク上に存在する場合に行っても良い。例えば、自端末110の処理リソースが十分でない場合や処理リソース節約のために、他の端末に処理を代替してもらう目的で依頼を行っても良い。
【0066】
その後、依頼エージェント111は、代替端末(代替エージェント)となる端末(エージェント)を決定し(ステップS17)、生成した代替処理依頼データRを、決定した代替端末(代替エージェント)へ送信する。なお、代替端末(代替エージェント)の決定方法についても後述する。
【0067】
図10は、ステップS16における代替処理依頼データRの生成処理の詳細を示している。代替処理依頼データRは、図11に示すように、ヘッダと、ペイロード(データ本体)とを有している。ヘッダには、協調処理Aの協調相手識別子、代替処理依頼データRの送信元識別子、代替処理の依頼元識別子が含まれる。また、ペイロードには、保証データと、処理オブジェクトとが含まれる。
【0068】
前記協調相手識別子は、協調処理Aにおける協調相手エージェント(実行要求受付エージェント)121が常駐する端末120を識別する識別子であり、ネットワークシステム内においてユニークなものである。
【0069】
前記送信元識別子は、代替処理依頼データRを送信したエージェントが常駐する端末を識別する識別子であり、ネットワーク内においてユニークなものである。
前記依頼元識別子は、協調処理の代替処理を他の端末に依頼した依頼エージェント111が常駐する端末を識別する識別子であり、ネットワーク内においてユニークなものである。
なお、代替端末が一つだけの場合、送信元と依頼元とは一致するが、代替処理依頼データRが、複数の端末を経由して送信される場合、端末を経由する度に、送信元は経由端末に変更されるが、依頼元は代替処理の依頼元であるため、複数の端末を経由しても変更されることがない。
【0070】
前記保証データは、暗号化データと、非暗号化データとを含む。前記暗号化データは、処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を含み、前記非暗号化データも、処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を含む。つまり、暗号化データの中身と非暗号化データの中身は同じであり、両データの違いは、暗号化の有無にある。
【0071】
前記処理依頼元保証値としては、代替処理の依頼元のエージェント(依頼エージェント111)を特定するための識別子が設定される。この処理依頼元保証値は、本発明の依頼元保証データを構成する。
【0072】
前記処理オブジェクト保証値は、依頼元からの処理オブジェクト(協調処理Aのための処理オブジェクト)それ自体を保証するための値であり、本実施形態では、処理オブジェクト自体をハッシュ関数に適用して算出されたハッシュ値が採用されている。なお、処理オブジェクト保証値は、処理オブジェクト自体が改ざんされたときに、その改ざんを検出できるように、処理オブジェクト自体から算出される処理オブジェクトの代表値であればよく、その算出方法がハッシュ関数に限定されるものではない。この処理オブジェクト保証値は、本発明の依頼対象保証データを構成する。
【0073】
また、前記処理内容値は、処理オブジェクトの処理内容がどのようなものであるか(例えば、ファイル追跡処理やファイル転送処理)を示す値であり、本発明の依頼対象保証データを構成する。
【0074】
前記処理オブジェクトは、本来、依頼端末110で実行されるべき協調処理A用コンピュータプログラムからなる。
【0075】
図11に示す代替処理依頼データRを生成するため、依頼エージェント111は、まず、処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を取得する(ステップS21)。
処理依頼元保証値としては、依頼エージェント111自身の識別子が設定される。処理オブジェクト保証値としては、処理オブジェクト自体をハッシュ関数に適用し算出されたハッシュ値が設定される。処理内容値としては、処理オブジェクトの処理内容を把握しているアプリケーション112から依頼エージェント111が取得して設定される。
【0076】
また、依頼エージェント111は、取得した処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を、依頼エージェント111自身の秘密鍵4にて暗号化し、暗号化の中間データを生成する(ステップS21)。
【0077】
さらに、依頼エージェント111は、ステップS21で生成された中間データを、処理依頼先端末120の公開鍵(公開鍵方式における公開鍵)にて暗号化し、暗号化データを生成する(ステップS22)。この暗号化データが、図11の保証データにおける暗号化データを構成する。
なお、各端末(エージェント)の公開鍵は、サーバ100にて集中して保有・管理しておき、各端末のエージェントが、サーバ100から必要な公開鍵を取得するようにしてもよいし、各端末のエージェントが、他の端末のエージェントの公開鍵を分散的に保有・管理しておき、各端末のエージェントが、自分自身又は他の端末のエージェントから必要な公開鍵を取得するようにしてもよい。
【0078】
そして、依頼エージェント111は、暗号化されていない平文の処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を、図11の保証データにおける非暗号化データとして、前記暗号化データとともに保証データを形成する。
この保証データは、協調処理Aの処理オブジェクトに付加され、図11の代替処理依頼データRにおけるペイロードが形成される(ステップS23)。このペイロードにヘッダを付加することで、図11の代替処理依頼データRの生成が完了する。
【0079】
図12は、ステップS17における代替端末の決定方法を示している。依頼エージェント111は、代替端末を、通信コストに応じて決定する。ここで、通信コストは、例えば、自身が存在するサブネットからの距離とすることができる。図12に示すように、ルータで接続された複数のサブネットA〜Bからなるネットワークの場合、サブネットを超える度に、通信コストが「1」増加するものとする。なお、ここでは、サブネットは、ルータで区切られた個々の領域をいう。
【0080】
図12の場合、端末Aから端末Fへの通信コストは、端末Fの位置(サブネットC)が、端末Aの属するサブネットAから数えて2つ目であるため、「端末A−端末F」の通信コストは「2」となる。
代替処理に関し、端末Aが端末Dへの処理を他端末に依頼する場合、端末Dからみて最も通信コストの低い端末は、端末Cであるため、端末Aは、端末Cに対して代替処理を依頼することになる。
【0081】
図13及び図14は、上記のように代替端末を決定するための通信コスト比較対象となる代替端末候補を発見する方法を示している。図13に示すように、代替端末を決定したい端末110のエージェント111は、エージェントが搭載された他の端末を発見するため、自身と同じ種類のエージェント(本実施形態に係るエージェント)121,131,141だけが応答する問い合わせパケットをマルチキャスト送信する。
【0082】
図14に示すように、この問い合わせパケットに対して、他の端末120,130,140のエージェント121,131,141は、返答パケットを端末110のエージェント111に返す。
ただし、エージェントが搭載されていない(又は何らかの理由によりエージェントが未起動の)端末150からは、返答パケットは返ってこない。
エージェント111は、他のエージェント121,131,141からの返答により、自身の周辺に、代替端末候補となる端末121,131,141(エージェントが搭載された端末)が存在することを把握することができる。
【0083】
エージェント111は、代替端末候補121,131,141から、協調相手端末121を除き、通信コストが最も低い端末を代替端末として決定する。
なお、代替端末としてサーバ100が決定されてもよい。
【0084】
(代替エージェントの処理)
図15及び図16は代替エージェント131の処理を示している。図13に示すように、代替エージェント131が、依頼エージェント111から送信された代替処理依頼データRを受信すると(ステップS31)、代替エージェント131は、協調相手端末(実行要求受付端末)120がネットワーク上でアクティブになるのを待つ(ステップS32)。協調相手端末120がアクティブになっていることの検出は、協調相手端末120に対する定期的なポーリングなどによって行うことができる。
【0085】
協調相手端末120がアクティブになると、代替エージェント131は、処理依頼通知データMを、協調相手エージェント(実行要求受付エージェント)121に送信する(ステップS33)。この処理依頼通知データMの送信は、端末120を協調相手とする協調処理Aの処理依頼があることの通知であり、このデータMを受け取った実行要求受付エージェント12は、協調処理Aの実行の要求を受信したことになる。
【0086】
処理依頼通知データMは、図17に示すデータ構造を有するものである。この処理依頼通知データのデータ構造は、代替処理依頼データR(図11参照)から、処理オブジェクトを除いたものと等価であり、暗号化データ及び非暗号化データを含む保証データを有している。
【0087】
処理依頼通知データMは、代替エージェント131が依頼エージェント111から取得した代替処理依頼データRから処理オブジェクトを削除することで生成される。
したがって、実行要求受付エージェント121は、処理依頼通知データMを代替エージェント131から受信すると、依頼エージェント111が生成した保証データを取得することができる。
なお、本実施形態では、代替エージェント131は、保証データの送信と協調処理Aの実行要求送信とを同時に行っているが、協調処理Aの実行要求送信だけを行い、保証データは、実行要求を受信した実行要求受付エージェント121が、代替エージェント131からダウンロードするようにしてもよい。
【0088】
代替エージェント131は、上記処理依頼通知データMを送信すると、協調相手エージェント(実行要求受付エージェント)121からの返答を待つ(ステップS34)。
【0089】
図16に示すように、代替エージェント131は、協調相手エージェント(実行要求受付エージェント)121から、処理依頼通知データ(協調処理Aの実行要求)Mに対する返答を受信すると(ステップS41)、その返答が、協調処理Aの実行要求を受け入れるものであるか否かを判定する。
【0090】
協調相手エージェント(実行要求受付エージェント)121からの返答が、協調処理Aの実行要求を拒否するものである場合には何もせずに終了するが、協調処理Aの実行要求を受け入れるものである場合には(ステップS42)、処理オブジェクトを実行する場所の判定を行う(ステップS43)。
処理オブジェクトを実行する場所の判定は、返答に含まれる実行場所情報に基づいて行われる。
【0091】
前記実行場所情報が示す実行場所が、協調相手端末120である場合、代替エージェント131は、協調相手エージェント121に対して、処理オブジェクトを含む代替処理依頼データMを転送する(ステップS44)。
【0092】
前記実行場所情報が示す実行場所が、代替端末130である場合、代替エージェント131は、代替端末130上で、処理オブジェクトを実行させ、協調相手端末120のアプリケーション122との間で、協調処理Aを実行する(ステップS45)。
【0093】
図18は、代替処理依頼データRを受け取った代替エージェント131が、代替処理を完了できなかった場合に、他の端末に代替処理依頼データRを転送して、当該他の端末に代替処理を委ねる依頼ホップ処理を示している。
代替エージェント131が未処理の代替処理依頼データRを有している場合(ステップS51)、当該代替処理を行う新たな代替端末を決定する(ステップS52)。新たな代替端末の決定は、ステップS17と同様に行えばよい。
【0094】
代替エージェント131は、新たな代替端末を決定すると、代替処理依頼データRを、新たな代替端末のエージェントに対して送信する。これにより、代替端末131が代替処理を実行できない場合でも、他の端末に代替処理を行わせることができる。
【0095】
(実行要求受付エージェント(協調相手エージェント)の処理)
図19〜図21は、実行要求受付エージェント(協調相手エージェント)121における処理を示している。
図19は、実行要求受付エージェント121が、処理依頼通知データMを受信した場合の処理の流れを示している。実行要求受付エージェント121が、代替エージェント131から処理依頼通知データM(協調処理の実行要求)を受信すると(ステップS61)、当該エージェント121は、処理依頼通知データMに含まれる保証データに基づいて、その実行要求の正当性(信頼性)を確認する(ステップS62)。この確認処理については後述する。
【0096】
実行要求の正当性が確認できなかった場合、実行要求を受け入れない旨の返答のパケットを、代替エージェント131へ送信する(ステップS65)。
また、実行要求の正当性が確認できなかった場合、その実行要求を送信してきた代替エージェント131(代替端末130)は、悪意ある端末である可能性がある。そこで、実行要求受付エージェント121は、そのようなエージェント131(端末130)を、サーバ100へ通知する。
【0097】
サーバ100は、悪意ある端末の可能性がある端末(異常端末)のリストを、各エージェントからの通知によって生成する。異常端末リストは、エージェントが代替端末を決定する場合に、当該エージェントによって参照され、これにより、異常端末リストに含まれる端末を代替端末から排除することができる。
【0098】
一方、実行要求受付エージェント121は、実行要求の正当性(信頼性)を確認すると、代替エージェント131からの協調処理Aの実行の要求を受け入れるものと判断する(ステップS63)。実行要求を受け入れる場合、実行要求受付エージェント121は、代替処理の対象である処理オブジェクトの実行場所を決定する(ステップS64)。
【0099】
処理オブジェクトの実行場所は、実行要求受付エージェント121が搭載されている端末120における処理リソース量に基づいて、実行要求受付エージェント121が判断できる。端末120が、携帯端末のように処理リソースが多くない場合には、代替端末130などの他の端末で処理オブジェクトを実行させた方が、端末120の負荷が軽減され好ましい。一方、端末120における処理リソースが十分にある場合には、端末120上で処理オブジェクト及びアプリケーション122を共に実行させた方が、ネットワーク通信が発生しないため、高速に処理でき好ましい。
【0100】
実行要求受付エージェント121は、上記観点から処理オブジェクトの実行場所(実行端末)を決定し、決定した実行場所を示す実行場所情報を、実行要求を受け入れる旨の返答のパケットに含めて、代替エージェント131へ送信する(ステップS65)。
【0101】
図20は、ステップS61における信頼性確認処理の詳細を示している。
実行要求受付エージェント121は、処理依頼通知データM内に含まれる保証データのうち、暗号化データ(暗号化された処理依頼元保証値、処理オブジェクト保証値、及び処理内容値)を、自身が有する秘密鍵4で復号化し、中間データを復元する(ステップS71)。
さらに、上記中間データを、更に、依頼端末110の依頼エージェント111の公開鍵で復号化し、平文の処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を得る。
【0102】
復号化で得られた処理依頼元保証値、処理オブジェクト保証値、及び処理内容値を、保証データ中の非暗号化データ(平文の処理依頼元保証値、処理オブジェクト保証値、及び処理内容値)と比較する。復号化した各値と非暗号化データの各値が一致していれば、処理依頼元保証値が示す端末が依頼元であること(依頼元の真性)や、代替対象である協調処理の真性を確認できる(ステップS73)。仮に、両者が一致しない場合には、正当性はないものとみなされる。
【0103】
図19のステップS64において、処理オブジェクトの実行場所を代替端末130に決定した場合、端末120と端末130との間で協調処理が行われるが、処理オブジェクトの実行場所を協調相手端末120自身に決定した場合、協調相手エージェント121は、処理オブジェクトを代替エージェント131から取得する必要がある。
【0104】
図21は、協調相手エージェント121は、処理オブジェクトを代替エージェント131から取得する処理を示している。
まず、協調相手エージェント121は、代替エージェント131から、処理オブジェクトを含む代替処理依頼データRをダウンロードする(ステップS81)。
【0105】
そして、協調相手エージェント121は、代替処理依頼データ内の処理オブジェクト保証値(暗号化データを復号したもの)と、取得した処理オブジェクトをハッシュ関数に適用して得られたハッシュ値とを比較する(ステップS82)。両者が一致した場合、処理オブジェクトは、処理オブジェクト保証値と整合するものと判定する(ステップS83)。両値に、整合性がある場合には、取得した処理オブジェクトを、協調相手端末120上で実行させ、協調相手端末120のアプリケーション122との協調処理Aを行わせる(ステップS84)。
【0106】
[データの暗号化・復号化]
さて、図10及び図20において説明した保証データの暗号化・復号化について、図22に基づいて、補足説明をする。
本実施形態のように、第三者端末である代替端末(中継端末)を経由して、処理オブジェクト(データ)を送信する場合、悪意のある代替端末Xによる「依頼元なりすまし」「データの覗き見」を防止することが必要である。
本実施形態では、処理依頼元、処理オブジェクト、処理内容の保証を行うために、依頼元(送信元)A自身の秘密鍵と、協調相手(送信先)Bの公開鍵とを用いて、二重に暗号化することにより、「依頼元なりすまし」「データの覗き見」を排除している。
【0107】
ここで、一般的な暗号化には、秘密鍵暗号方式による暗号化と、公開鍵暗号方式による暗号化とがある。秘密鍵暗号方式では、データの送信元と送信先とが共通の秘密鍵を持ち、暗号化に用いた秘密鍵で復号化も行う。秘密鍵暗号方式では、秘密鍵を持たない第三者は、復号を行えないため「依頼元なりすまし」「データの覗き見」は行えない。
【0108】
しかし、秘密鍵暗号方式では、送信元と送信先とが共通の秘密鍵を持つ必要があり、秘密鍵の配布の安全性の確保が困難であるという問題がある。
【0109】
一方、秘密鍵の配布が必要ない方式として、公開鍵暗号方式がある。公開鍵暗号方式では、公開される公開鍵と秘密にされる秘密鍵のペアが用いられ、暗号化したデータを特定の送信先に送信したい送信元は、送信先の公開鍵を用いて、データを暗号化し、送信先は暗号化データを秘密鍵にて復号する。
【0110】
公開鍵暗号方式では、公開鍵が公開されているため、不特定多数の端末が暗号化データを作成して、送信先に送信できるものの、復号は秘密鍵を持っている送信先しか行えないため、秘密鍵を配布することなく暗号化を行うことができる。
【0111】
しかし、一般的な公開鍵暗号方式では、秘密鍵は送信先しか保有していないため覗き見は防止されるものの、公開鍵が公開されているため、暗号化データを誰でも作成できるという問題がある。このため、悪意ある代替端末Xが、依頼元は端末Aであると偽るとともに、保証データを改ざんして、端末Bに保証データを送信すると、端末Bは、その保証データが、真実、端末Aから送信されたのか確認することが困難である。
つまり、一般的な公開鍵暗号方式は、覗き見は防止できるものの、依頼元(送信元)なりすましを防止することはできない。
【0112】
これに対し、本実施形態では、図22にも示すように、保証データの暗号化データ(送信データ)は、送信元である端末Aの秘密鍵で暗号化された上で、送信先である端末Bの公開鍵で二重に暗号化されている。
このため、本実施形態の暗号化データを復号するには、まず、送信先である端末Bの秘密鍵が必要である。端末Bの秘密鍵は、端末Bしか有していないため(端末Bにしかアクセスできないよう管理されているため)、第三者端末Xは、暗号化データを端末B秘密鍵で復号して、暗号化データを覗き見することができない。
【0113】
さらに、暗号化データ(中間データ)の復号には、端末Bの秘密鍵だけでなく、送信元である端末Aの公開鍵も必要であるが、公開鍵は公開されているため、送信先である端末Bは当然に復号を完了することができる。
しかも、悪意ある第三者端末Xが、送信元Aになりすまして、暗号化データを端末Bに送信するには、送信元端末Aの秘密鍵で暗号化した中間データを生成する必要がある。
しかし、端末Aの秘密鍵は端末Aしか有していないため、悪意ある第三者端末Xは、送信元端末Aの秘密鍵で暗号化した中間データを生成することができず、端末Aになりすますことができない。
【0114】
仮に、悪意ある第三者端末Xが、端末Aになりすましたデータを生成し、そのデータを自身の秘密鍵で暗号化して中間データを作成した場合、端末Bは、中間データを復号するときに、ヘッダの依頼元識別子を参照して、中間データ復号に用いる公開鍵を決定することになる。この場合、端末Bは端末Aの公開鍵で中間データを復号することになるが、端末Aの公開鍵では、端末Xの秘密鍵で暗号化されたデータの復号は行えない。復号が行えない場合、端末Bは、データのなりすましを検出することができる。
【0115】
このように、公開鍵暗号方式で用いられる公開鍵と秘密鍵とを用いて、二重の暗号化を行うことにより、秘密鍵暗号方式と同様に、依頼元なりすまし防止及びデータの覗き見防止を行うことができる。しかも、秘密鍵暗号方式のように秘密鍵の配布が必要ないため、安全性に優れている。
【0116】
なお、上記の暗号化・復号化は、各端末110,120,130のエージェント111,121,131が有する機能であるため、各端末110,120,130は暗号化装置ないし復号化装置ということができる。
【0117】
本発明に関して、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0118】
1 依頼機能部
2 代替機能部
3 実行要求受付機能部
110 端末コンピュータ
111 エージェント
112 アプリケーション
120 端末コンピュータ
121 エージェント
122 アプリケーション
130 端末コンピュータ
131 エージェント
132 アプリケーション
【特許請求の範囲】
【請求項1】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムであって、
前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、
代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、
前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、
前記代替コンピュータが前記代替処理依頼データを受信する手段と、
前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する手段と、
を備え、
前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、
前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断する
ことを特徴とするネットワークシステム。
【請求項2】
前記保証データは、前記代替の依頼元の真性を保証する依頼元保証データを含む請求項1記載のネットワークシステム。
【請求項3】
前記保証データは、前記代替の対象である前記処理の真性を保証する依頼対象保証データを含む請求項1又は2記載のネットワークシステム。
【請求項4】
前記保証データは、公開鍵暗号方式における前記一の端末コンピュータ用秘密鍵にて暗号化し、さらに、公開鍵暗号方式における前記他の端末コンピュータ用公開鍵にて暗号化した暗号化データを含む請求項1〜3のいずれか1項に記載のネットワークシステム。
【請求項5】
前記他の端末コンピュータは、前記代替コンピュータから取得した前記暗号化データを、公開鍵暗号方式における前記他の端末コンピュータ用秘密鍵にて復号化し、さらに、公開鍵暗号方式における前記一の端末コンピュータ用公開鍵にて復号化して得られたデータに基づいて、前記処理の実行の要求を受け入れるか否かを判断する請求項4記載のネットワークシステム。
【請求項6】
前記代替コンピュータは、前記他の端末コンピュータが、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定し、前記他の端末コンピュータにて実行させる場合には、前記代替処理プログラムを、前記他の端末コンピュータに転送する請求項1〜4のいずれか1項に記載のネットワークシステム。
【請求項7】
前記他の端末コンピュータは、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、当該他の端末コンピュータ自身が実行するか否かを決定するとともに、その決定結果を前記代替コンピュータに送信し、
前記代替コンピュータは、前記決定結果に基づいて、前記代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定する請求項6記載のネットワークシステム。
【請求項8】
前記保証データには、前記代替処理依頼データに含まれる代替処理プログラムから算出される当該代替処理プログラムの代表値が含まれ、
前記代替処理プログラムを前記代替コンピュータから受信した前記他の端末コンピュータは、前記代替処理プログラムから前記代表値を算出し、算出した代表値を、前記保証データに含まれる前記代表値と比較し、両者が一致すると、前記代替処理プログラムを実行する請求項6又は7記載のネットワークシステム。
【請求項9】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記一の端末コンピュータであって、
前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、
代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、
前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、
を備え、
前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれていることを特徴とする端末コンピュータ。
【請求項10】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける第三の端末コンピュータであって、
前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、前記第三の端末コンピュータを用いて代替させるための代替処理プログラムを含む代替処理依頼データを、前記一の端末コンピュータから受信する手段と、
前記代替処理依頼データを受信すると、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、当該代替処理依頼データに含まれ当該代替処理依頼データの真性を保証する保証データとともに、前記他の端末コンピュータに送信する送信手段と、
を備えていることを特徴とする代替コンピュータ。
【請求項11】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける、前記他の端末コンピュータであって、
前記一の端末コンピュータとの間で行われる前記処理に関する第一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるための代替処理プログラムを用いた前記処理の実行の要求を、前記代替処理プログラムを含む代替処理依頼データの真性を保証する保証データとともに前記代替コンピュータから受信する手段と、
受信した前記保証データに基づいて、前記代替コンピュータからの前記処理の実行の要求を受け入れるか否かを判断する手段と、
を備えていることを特徴とする端末コンピュータ。
【請求項12】
コンピュータを、請求項9記載の端末コンピュータとして機能させるためのコンピュータプログラム。
【請求項13】
コンピュータを、請求項10記載の代替コンピュータとして機能させるためのコンピュータプログラム。
【請求項14】
コンピュータを、請求項11記載の端末コンピュータとして機能させるためのコンピュータプログラム。
【請求項15】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記処理の実行方法であって、
前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する判断ステップと、
代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する生成ステップと、
前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う依頼ステップと、
前記代替コンピュータが前記代替処理依頼データを受信する受信ステップと、
前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する送信ステップと、
を含み、
前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、
前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断する
ことを特徴とする処理の実行方法。
【請求項16】
ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化装置であって、
暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成する手段と、
前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成する手段と、
を備えていることを特徴とする暗号化装置。
【請求項17】
請求項16に記載の暗号化装置にて生成された暗号化データを復号化する復号化装置であって、
前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号する手段と、
前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化する手段と、
を備えていることを特徴とする復号化装置。
【請求項18】
コンピュータを、請求項16に記載の暗号化装置として機能させるためのコンピュータプログラム。
【請求項19】
コンピュータを、請求項17に記載の復号化装置として機能させるためのコンピュータプログラム。
【請求項20】
ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化方法であって、
暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成し、
前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成する
ことを特徴とする暗号化方法。
【請求項21】
請求項20にて生成された暗号化データを復号化する復号化方法であって、
前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号し、
前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化する
ことを特徴とする復号化方法。
【請求項22】
コンピュータによって復号処理が行われるコンピュータ読み取り可能な暗号化データであって、
暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化した上で、公開鍵暗号方式における送信先用公開鍵にて二重に暗号化されていることを特徴とする暗号化データ。
【請求項1】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムであって、
前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、
代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、
前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、
前記代替コンピュータが前記代替処理依頼データを受信する手段と、
前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する手段と、
を備え、
前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、
前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断する
ことを特徴とするネットワークシステム。
【請求項2】
前記保証データは、前記代替の依頼元の真性を保証する依頼元保証データを含む請求項1記載のネットワークシステム。
【請求項3】
前記保証データは、前記代替の対象である前記処理の真性を保証する依頼対象保証データを含む請求項1又は2記載のネットワークシステム。
【請求項4】
前記保証データは、公開鍵暗号方式における前記一の端末コンピュータ用秘密鍵にて暗号化し、さらに、公開鍵暗号方式における前記他の端末コンピュータ用公開鍵にて暗号化した暗号化データを含む請求項1〜3のいずれか1項に記載のネットワークシステム。
【請求項5】
前記他の端末コンピュータは、前記代替コンピュータから取得した前記暗号化データを、公開鍵暗号方式における前記他の端末コンピュータ用秘密鍵にて復号化し、さらに、公開鍵暗号方式における前記一の端末コンピュータ用公開鍵にて復号化して得られたデータに基づいて、前記処理の実行の要求を受け入れるか否かを判断する請求項4記載のネットワークシステム。
【請求項6】
前記代替コンピュータは、前記他の端末コンピュータが、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定し、前記他の端末コンピュータにて実行させる場合には、前記代替処理プログラムを、前記他の端末コンピュータに転送する請求項1〜4のいずれか1項に記載のネットワークシステム。
【請求項7】
前記他の端末コンピュータは、前記処理の実行の要求を受け入れた場合、前記代替処理依頼データに含まれる代替処理プログラムを、当該他の端末コンピュータ自身が実行するか否かを決定するとともに、その決定結果を前記代替コンピュータに送信し、
前記代替コンピュータは、前記決定結果に基づいて、前記代替処理プログラムを、前記他の端末コンピュータにて実行させるか否かを判定する請求項6記載のネットワークシステム。
【請求項8】
前記保証データには、前記代替処理依頼データに含まれる代替処理プログラムから算出される当該代替処理プログラムの代表値が含まれ、
前記代替処理プログラムを前記代替コンピュータから受信した前記他の端末コンピュータは、前記代替処理プログラムから前記代表値を算出し、算出した代表値を、前記保証データに含まれる前記代表値と比較し、両者が一致すると、前記代替処理プログラムを実行する請求項6又は7記載のネットワークシステム。
【請求項9】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記一の端末コンピュータであって、
前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する手段と、
代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する手段と、
前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う手段と、
を備え、
前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれていることを特徴とする端末コンピュータ。
【請求項10】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける第三の端末コンピュータであって、
前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、前記第三の端末コンピュータを用いて代替させるための代替処理プログラムを含む代替処理依頼データを、前記一の端末コンピュータから受信する手段と、
前記代替処理依頼データを受信すると、前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、当該代替処理依頼データに含まれ当該代替処理依頼データの真性を保証する保証データとともに、前記他の端末コンピュータに送信する送信手段と、
を備えていることを特徴とする代替コンピュータ。
【請求項11】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける、前記他の端末コンピュータであって、
前記一の端末コンピュータとの間で行われる前記処理に関する第一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるための代替処理プログラムを用いた前記処理の実行の要求を、前記代替処理プログラムを含む代替処理依頼データの真性を保証する保証データとともに前記代替コンピュータから受信する手段と、
受信した前記保証データに基づいて、前記代替コンピュータからの前記処理の実行の要求を受け入れるか否かを判断する手段と、
を備えていることを特徴とする端末コンピュータ。
【請求項12】
コンピュータを、請求項9記載の端末コンピュータとして機能させるためのコンピュータプログラム。
【請求項13】
コンピュータを、請求項10記載の代替コンピュータとして機能させるためのコンピュータプログラム。
【請求項14】
コンピュータを、請求項11記載の端末コンピュータとして機能させるためのコンピュータプログラム。
【請求項15】
ネットワーク上の一の端末コンピュータが、他の端末コンピュータとの間で、互いに通信して処理を実行可能なネットワークシステムにおける前記処理の実行方法であって、
前記一の端末コンピュータと前記他の端末コンピュータとの間で行われる前記処理に関する前記一の端末コンピュータの機能を、ネットワーク上の第三の端末コンピュータである代替コンピュータを用いて代替させるか否かを判断する判断ステップと、
代替させると判断された場合に、前記代替のための代替処理プログラムを含む代替処理依頼データを生成する生成ステップと、
前記代替処理依頼データを前記一の端末コンピュータから前記代替コンピュータに対して送信することで、前記代替コンピュータに対して、代替の依頼を行う依頼ステップと、
前記代替コンピュータが前記代替処理依頼データを受信する受信ステップと、
前記代替処理依頼データに含まれる代替処理プログラムを用いた前記処理の実行の要求を、前記代替コンピュータが前記他の端末コンピュータに送信する送信ステップと、
を含み、
前記代替処理依頼データには、当該代替処理依頼データの真性を保証する保証データが含まれており、
前記他の端末コンピュータは、前記代替コンピュータから前記代替処理依頼データに含まれる前記保証データを取得し、取得した前記保証データに基づいて、前記処理の実行の要求を受け入れるか否かを判断する
ことを特徴とする処理の実行方法。
【請求項16】
ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化装置であって、
暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成する手段と、
前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成する手段と、
を備えていることを特徴とする暗号化装置。
【請求項17】
請求項16に記載の暗号化装置にて生成された暗号化データを復号化する復号化装置であって、
前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号する手段と、
前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化する手段と、
を備えていることを特徴とする復号化装置。
【請求項18】
コンピュータを、請求項16に記載の暗号化装置として機能させるためのコンピュータプログラム。
【請求項19】
コンピュータを、請求項17に記載の復号化装置として機能させるためのコンピュータプログラム。
【請求項20】
ネットワークを介して送信元コンピュータから送信先コンピュータに送信されるデータを暗号化した暗号化データを生成する暗号化方法であって、
暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化して中間データを生成し、
前記中間データを、公開鍵暗号方式における送信先用公開鍵にて暗号化して前記暗号化データを生成する
ことを特徴とする暗号化方法。
【請求項21】
請求項20にて生成された暗号化データを復号化する復号化方法であって、
前記暗号化データを、公開鍵暗号方式における送信先用秘密鍵で復号化して中間データを復号し、
前記中間データを、公開鍵暗号方式における送信元用公開鍵にて復号化する
ことを特徴とする復号化方法。
【請求項22】
コンピュータによって復号処理が行われるコンピュータ読み取り可能な暗号化データであって、
暗号化対象のデータを、公開鍵暗号方式における送信元用秘密鍵にて暗号化した上で、公開鍵暗号方式における送信先用公開鍵にて二重に暗号化されていることを特徴とする暗号化データ。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2010−182222(P2010−182222A)
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願番号】特願2009−27035(P2009−27035)
【出願日】平成21年2月9日(2009.2.9)
【出願人】(000002130)住友電気工業株式会社 (12,747)
【Fターム(参考)】
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願日】平成21年2月9日(2009.2.9)
【出願人】(000002130)住友電気工業株式会社 (12,747)
【Fターム(参考)】
[ Back to top ]