説明

通信方法、情報処理装置、およびコンピュータプログラム

【課題】P2P型のネットワークのノードとして用いられる情報処理装置の負荷を従来よりも軽減する。
【解決手段】3つ以上のノードによって構成されるP2Pのネットワーク1において、ネットワーク1を構成するノードのうちの依頼ノードは、送信する目的のデータである目的データとネットワーク1を構成するノードのうちのその目的データの有効性を判別する指定ノードを識別するノード識別情報とを含む依頼データ7Aを、ネットワーク1を構成するノードのうちのその目的データの本来の送信先である目的ノードに宛てて送信する。目的ノードは、依頼ノードから受信した依頼データ7Aに含まれる目的データの有効性を判別するように、その目的データに対応付けられているノード識別情報に示される指定ノードに対して要求する。指定ノードは、目的ノードが受信した目的データの有効性を判別し、判別結果を目的ノードに回答する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、P2P型のネットワークで用いられる通信方法および情報処理装置などに関する。
【背景技術】
【0002】
近年、情報処理装置同士が通信を行う際にP2P(Peer To Peer)の技術がよく用いられる。
【0003】
クライアントサーバ型のネットワークにおいては、デバイス認証の処理は、サーバが一元的に行う。一方、P2P型のネットワークにおいては、ノードとして用いられる各情報処理装置が、他の情報処理装置のデバイス認証を行わなければならない。例えば、他の情報処理装置から処理の実行の依頼を受けた場合に、当該他の情報処理装置のデバイス認証を行わなければならない。
【0004】
P2P型のネットワークにおける認証の方法として、特許文献1に記載されるような方法が提案されている。特許文献1に記載される技術によると、ノードAは、自ノードAの代理となる代理ノードBの正当性を確認した後に秘密情報を付加した第1のメッセージを代理ノードBに転送する。代理ノードBは、受信した第1のメッセージの秘密情報を保持し、秘密情報を用いてノードNとの間で認証を行う。そして、ノードBは、ノードAの代わりにノードNにアクセス要求を行う。
【特許文献1】特開平8−335208号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上述のように、P2P型のネットワークのノードとして用いられる情報処理装置は、他の情報処理装置から処理の実行の依頼を受けた場合に、当該他の情報処理装置のデバイス認証を行わなければならないが、当然、その依頼に係る処理をも実行しなければならない。そうすると、一時期に多数の他の情報処理装置から依頼を受けた場合に、その台数分のデバイス認証および依頼に係る処理を行わなければならず、大きな負担が掛かる。
【0006】
しかし、特許文献1に記載されるような従来の方法では、処理の実行の依頼を受けた情報処理装置の負担を減らすことはできない。
【0007】
本発明は、このような問題点に鑑み、P2P型のネットワークのノードとして用いられる情報処理装置の負荷を従来よりも軽減することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る通信方法は、3つ以上のノードによって構成されるネットワークにおける通信方法であって、前記ネットワークを構成するノードのうちの第一のノードは、送信する目的のデータである目的データと前記ネットワークを構成するノードのうちの当該目的データの有効性を判別する第三のノードを識別するノード識別情報とを互いに対応付けて、前記ネットワークを構成するノードのうちの当該目的データの本来の送信先である第二のノードに宛てて送信し、前記第二のノードは、前記第一のノードから受信した前記目的データの有効性を判別するように、当該目的データに対応付けられている前記ノード識別情報に示される前記第三のノードに対して要求し、前記第三のノードは、前記第二のノードが受信した前記目的データの有効性を判別し、判別結果を前記第二のノードに回答する、ことを特徴とする。
【0009】
好ましくは、前記第一のノードは、前記目的データを識別するデータ識別情報を前記第二のノードおよび前記第三のノードに宛てて送信し、前記第二のノードは、前記第三のノードに対して、前記目的データの前記データ識別情報を送信することによって当該目的データの有効性を判別するように要求し、前記第三のノードは、前記第一のノードから受信した前記データ識別情報と前記第二のノードから受信した前記データ識別情報とが一致する場合は、当該データ識別情報に係る前記目的データが有効であると判別し、一致しない場合は、当該目的データが無効であると判別する。
【0010】
または、前記第一のノードは、当該第一のノード自身が前記ネットワークの正当なメンバである旨を示す証明データと前記目的データを識別するデータ識別情報とを互いに対応付けて前記第三のノードに宛てて送信し、前記データ識別情報を前記第二のノードに宛てて送信し、前記第二のノードは、前記第三のノードに対して、前記目的データの前記データ識別情報を送信することによって当該目的データの有効性を判別するように要求し、前記第三のノードは、前記第二のノードから受信した前記データ識別情報に対応付けられている、前記第一のノードから受信した前記証明データに基づいて、当該データ識別情報に係る前記目的データの有効性を判別する。
【0011】
本発明において、「目的データが有効である」とは、その目的データが一定の信頼性を有することをいう。例えば、不正に作成された目的データ、改ざんされた目的データ、または有効期限が切れた目的データなどの無効なデータは、有効であるとは言えない。
【発明の効果】
【0012】
本発明によると、P2P型のネットワークのノードとして用いられる情報処理装置の負荷を従来よりも軽減することができる。
【発明を実施するための最良の形態】
【0013】
図1はネットワーク1の全体的な構成の例を示す図、図2はパーソナルコンピュータTRのハードウェア構成の例を示す図、図3はパーソナルコンピュータTRの機能的構成の例を示す図、図4はネットワーク1の各ノードの関連性の例を示す図である。
【0014】
本発明に係るネットワーク1は、図1に示すように、複数のセグメントSG(SG1、SG2、…)および広域通信回線WNTなどによって構成される。各セグメントSGには、1台または複数台のパーソナルコンピュータTR、ハブDH、およびルータDRなどが設けられている。パーソナルコンピュータTRおよびルータDRは、同じセグメントSGの中のハブDHにツイストペアケーブルによって繋がれている。
【0015】
さらに、各セグメントSGのルータDR同士は、広域通信回線WNTを介して互いに接続されている。これにより、互いに異なるセグメントSGに属するパーソナルコンピュータTR同士がデータ通信を行うことができる。また、各パーソナルコンピュータTRは、外部の認証局(CA)のサーバなどに接続することもできる。広域通信回線WNTとして、インターネット、専用線、または公衆回線などが用いられる。なお、セグメントSGにおいて、ハブDHおよびルータDRの代わりにモデム、ターミナルアダプタ、またはダイアルアップルータなどが用いられる場合もある。
【0016】
このネットワーク1は、P2P(peer to peer)の形態のネットワークであり、これらのパーソナルコンピュータTRは、ノードとして機能する。これにより、各パーソナルコンピュータTR同士で、互いの資源(例えば、CPU、ハードディスク、または印刷ユニットなどのハードウェア資源、アプリケーションなどのソフトウェア資源、または書類データ、音楽データ、または画像データなどの情報資源)を共有することができる。
【0017】
また、ネットワーク1は、例えば複数の拠点を有する企業などに構築される。この場合は、セグメントSGは、これらの拠点ごとに設けられる。
【0018】
図2に示すように、パーソナルコンピュータTRは、CPU20a、RAM20b、ROM20c、ハードディスク20d、通信インタフェース20e、画像インタフェース20f、入出力インタフェース20g、その他の種々の回路または装置などによって構成される。
【0019】
通信インタフェース20eは、NIC(Network Interface Card)であって、ツイストペアケーブルを介してハブDHのいずれかのポートに繋がれている。画像インタフェース20fは、モニタと繋がれており、画面を表示するための映像信号をモニタに送出する。
【0020】
入出力インタフェース20gは、キーボードもしくはマウスなどの入力装置またはフロッピディスクドライブもしくはCD−ROMドライブなどの外部記憶装置などと繋がれている。そして、ユーザが入力装置に対して行った操作の内容を示す信号を入力装置から入力する。または、フロッピディスクまたはCD−ROMなどの記録媒体に記録されているデータを外部記憶装置に読み取らせ、これを入力する。または、記録媒体に書き込むためのデータを外部記憶装置に出力する。
【0021】
ハードディスク20dには、図3に示すようなパケット生成部201、パケット送信部202、データ受信部203、データ解析部204、共有データ操作部210、デバイス認証処理部211、メッセージ生成部212、メッセージ確認部213、メッセージ修正部214、欠損データ抽出部215、認証要求部216、メッセージ有効性問合せ部217、接続テーブル記憶部2K1、共有データ記憶部2K2、デバイス証明書記憶部2K3、および鍵データ記憶部2K4などの機能を実現するためのプログラムおよびデータが格納されている。これらのプログラムおよびデータは必要に応じてRAM20bに読み出され、CPU20aによってプログラムが実行される。
【0022】
パーソナルコンピュータTRには、それぞれ、他のパーソナルコンピュータTRとの識別のために、ノードID、IPアドレス、およびMACアドレスが与えられている。ノードIDおよびIPアドレスは、ネットワーク1の規則に従って与えられる。MACアドレスは、そのパーソナルコンピュータTRの通信インタフェース20eに対して固定的に与えられているアドレスである。
【0023】
また、これらのパーソナルコンピュータTR1、TR2、…は、図4に示すように、仮想空間に配置されているものと仮想されている。そして、点線で示すように、仮想空間内の近隣の少なくとも1台の他のパーソナルコンピュータTRと関連付けられている。かつ、これらの関連付けによって、すべてのパーソナルコンピュータTRが互いに直接的にまたは間接的に関係するようになっている。なお、「直接的に関係する」とは、図4において1本の点線で繋がれていること(例えば、図4のパーソナルコンピュータTR5とパーソナルコンピュータTR6とのような関係)を言い、「間接的に関係する」とは、2本以上の点線および1つ以上のノードで繋がれていること(例えば、図4のパーソナルコンピュータTR1とパーソナルコンピュータTR5とのような関係)を言う。直接的に関係し合う2台のパーソナルコンピュータTRは、互いに相手を信頼している。
【0024】
パーソナルコンピュータTRは、自らに直接的に関連付けられている他のパーソナルコンピュータTRとの間でデータの送受信を行うことができる。さらに、間接的に関連付けられている他のパーソナルコンピュータTRとの間で、両パーソナルコンピュータTRの間にある1台または複数台のパーソナルコンピュータTRを介してデータの送受信を行うことができる。または、間接的に関連付けられているパーソナルコンピュータTR同士が、それぞれのMACアドレスまたはIPアドレスを互いに通知し合うことによって一時的に直接的に接続し、データの送受信を行うこともできる。
【0025】
図5は接続テーブルTLの例を示す図である。次に、図3に示すパーソナルコンピュータTRの各部の処理内容について説明する。
【0026】
接続テーブル記憶部2K1には、そのパーソナルコンピュータTR自身に直接関連付けられている他のパーソナルコンピュータTRごとのノードデータDTNを格納した接続テーブルTLを記憶している。例えば、パーソナルコンピュータTR1、TR2、およびTR3の各接続テーブル記憶部2K1は、それぞれ、図5(a)〜(c)に示すような接続テーブルTL1、TL2、およびTL3を記憶している。
【0027】
これらの接続テーブルTLの内容は、そのパーソナルコンピュータTRの運用の開始前に管理者によって予め作成される。また、運用の開始後は、接続テーブルTLの内容は、パーソナルコンピュータTR自身の他のパーソナルコンピュータTRとの関連付けの変更に応じて自動的に更新される。
【0028】
ノードデータDTNには、当該他のパーソナルコンピュータTRを識別するためのノードID、IPアドレス、およびMACアドレスなどの情報が示されている。
【0029】
そのほか、接続テーブル記憶部2K1には、そのパーソナルコンピュータTR自身のノードデータDTNが記憶されている。
【0030】
共有データ記憶部2K2には、他のパーソナルコンピュータTRと共有するデータ(以下、「共有データ」と記載する。)をファイル単位で記憶する。
【0031】
デバイス証明書記憶部2K3は、認証局(CA)に発行してもらった、そのパーソナルコンピュータTR自らのデバイス証明書の証明書データ6Aを記憶する。鍵データ記憶部2K4は、他のパーソナルコンピュータTRの証明書データ6Aに対応する公開鍵の公開鍵データ6Bを記憶する。さらに、そのパーソナルコンピュータTR自身の公開鍵と対になる秘密鍵の秘密鍵データ6Cをも記憶する。
【0032】
パケット生成部201は、後に説明する共有データ操作部210によって共有データ記憶部2K2から呼び出された共有データ、デバイス認証処理部211またはメッセージ生成部212などによって生成されたデータ、または欠損データ抽出部215によって抽出されたデータを、他のパーソナルコンピュータTRに送信するためにパケット化する処理を行う。
【0033】
パケット送信部202は、パケット生成部201によって生成されたパケットを宛先の装置に宛てて送信する。
【0034】
データ受信部203は、通信回線を流れるパケットのうち、そのパーソナルコンピュータTR自身に宛てたものをフィルタリングして受信する。そして、受信したパケットを統合するなどして元のデータを再生する。
【0035】
データ解析部204は、データ受信部203によって受信されたデータの中から必要な情報を抽出してその内容を解析することによって、そのデータの種類などを判別する。そして、その判別結果に応じて、共有データ操作部210、デバイス認証処理部211、メッセージ生成部212、メッセージ確認部213、メッセージ修正部214、欠損データ抽出部215、またはメッセージ有効性問合せ部217などがそのデータに基づいて所定の処理を行う。各部の処理内容については、後に順次説明する。
【0036】
共有データ操作部210は、そのパーソナルコンピュータTR自身のユーザ(ローカルユーザ)または他のパーソナルコンピュータTRからの要求に基づいて、そのパーソナルコンピュータTR自身の共有データ記憶部2K2に記憶されている共有データに関する処理を行う。
【0037】
例えば、ローカルユーザがワープロまたは表計算などのアプリケーションで共有データをオープンするコマンドを入力した場合は、その共有データをRAM20bにロードする。または、他のパーソナルコンピュータTRから送信されてきた共有データを共有データ記憶部2K2に記憶させる。または、他のパーソナルコンピュータTRから共有データの要求があった場合は、その共有データを要求元に提供しまたは分配する準備のためにRAM20bにロードする。または、ローカルユーザまたは他のパーソナルコンピュータTRから指定されたキーワードに関係する共有データを検索する。
【0038】
ところで、パーソナルコンピュータTRは、自らがこれから実行する処理の内容または他のパーソナルコンピュータTRからの要求の内容に応じて、依頼ノード、目的ノード、指定ノード、および認証ノードのうちのいずれかの役割を果たす。
【0039】
「依頼ノード」は、他のノード(他のパーソナルコンピュータTR)に対して処理を行うように依頼するノードである。例えば、依頼ノードは、共有データの検索処理、共有データの提供処理、共有データの保存処理、画像の印刷処理、または業務処理など、種々の処理を他のノードに依頼する。「目的ノード」は、その依頼先のノードである。依頼ノードは、目的ノードに対して処理を依頼する際に、依頼内容を示すメッセージを含む依頼データ7Aを目的ノードに送信する。
【0040】
「認証ノード」は、依頼ノードがネットワーク1に参加することができる正規のデバイスか否かを判別する。つまり、依頼ノードのデバイス認証を行う。「指定ノード」は、目的ノードが受信した依頼データ7Aの有効性を確認(検証、判別)する。
【0041】
図3に戻って、デバイス認証処理部211ないしメッセージ有効性問合せ部217は、パーソナルコンピュータTRの役割に応じて次のように動作する。
【0042】
パーソナルコンピュータTRが依頼ノードの役割を担うときは、メッセージ生成部212および認証要求部216が動作する。目的ノードの役割を担うときは、メッセージ有効性問合せ部217が動作する。また、必要に応じてメッセージ修正部214および欠損データ抽出部215が動作する場合もある。認証ノードの役割を担うときは、デバイス認証処理部211が動作する。指定ノードの役割を担うときは、メッセージ確認部213が動作する。また、必要に応じてメッセージ修正部214および欠損データ抽出部215が動作する場合もある。
【0043】
図6は依頼ノード、目的ノード、認証ノード、および指定ノードの処理内容を説明するための図、図7は欠損したデータを補うための処理を説明するための図である。
【0044】
ここで、図6を参照しながら、図3の各部のうち特にデバイス認証処理部211ないしメッセージ有効性問合せ部217の処理内容について、詳細に説明する。
【0045】
図6において、例えばユーザがパーソナルコンピュータTR3に保存されている共有データの中からユーザが指定した文字列を含むファイル名を有する共有データを検索すべき旨の指令をパーソナルコンピュータTR2に対して与えたとする。すると、パーソナルコンピュータTR2にはパーソナルコンピュータTR3に対して検索処理の依頼を行う必要が生じるので、パーソナルコンピュータTR2が依頼ノードとなる。一方、パーソナルコンピュータTR3が目的ノードとなる。
【0046】
依頼ノードとなったパーソナルコンピュータTR2において、認証要求部216は、パーソナルコンピュータTR2自身についての認証を行うべき旨、自らの識別情報(ノードID、IPアドレス、またはMACアドレス)、およびパスワードなどを示す認証要求データ8Aを生成する。パケット生成部201は認証要求部216によって生成された認証要求データ8Aおよびデバイス証明書記憶部2K3に格納されている自らの証明書データ6Aをパケット化する。パケット送信部202は、それらのパケットを、目的ノードであるパーソナルコンピュータTR3以外のいずれかのノード(パーソナルコンピュータTR)に対して送信する(#101)。ここでは、パーソナルコンピュータTR1に送信したとする。これにより、パーソナルコンピュータTR1が認証ノードの役割を担うことになる。
【0047】
認証ノードとなったパーソナルコンピュータTR1において、データ受信部203は、パーソナルコンピュータTR2からパーソナルコンピュータTR1に宛てて送信されたパケットを受信し、証明書データ6Aおよび認証要求データ8Aを再生する。すると、データ解析部204はそれらのデータの種類を解析し、証明書データ6Aおよび認証要求データ8Aに基づいて処理を実行するようにデバイス認証処理部211に対して指令を与える。
【0048】
すると、デバイス認証処理部211は、その証明書データ6Aに示されるデバイス証明書の内容およびその認証要求データ8Aに示されるパスワードを確認することによって、パーソナルコンピュータTR2のデバイス認証を行う(#102)。その結果、パーソナルコンピュータTR2が正当なデバイスであると判別できたら、テキストまたはバイナリのチケットデータ7Bおよび指定ノードデータ7Cを生成する(#103)。
【0049】
このチケットデータ7Bには、パーソナルコンピュータTR2がネットワーク1を構成する一員(つまり、ネットワーク1のグループのメンバ)であることを示すための情報が示される。例えば、グループのメンバのみが知り得るキーワードであるグループパスワードが示される。グループパスワードに有効期限を設定しておいてもよい。
【0050】
指定ノードデータ7Cには、指定ノードの役割を担当させるノードの識別情報(ノードID、IPアドレス、またはMACアドレス)が示される。ただし、係るノードは、接続テーブルTLに示されるノードの中からいずれか1つが選択される。つまり、パーソナルコンピュータTR自身が信頼しているノードが選択される。指定ノードとして、CPUなどのスペックが最高のパーソナルコンピュータTRを選出してもよいし、乱数を発生させランダムにパーソナルコンピュータTRを選出してもよい。
【0051】
パケット生成部201は、生成されたチケットデータ7Bおよび指定ノードデータ7CをパーソナルコンピュータTR1自身の秘密鍵の秘密鍵データ6Cによって暗号化してからパケット化し、パケット送信部202は、これらを認証の要求元であるパーソナルコンピュータTR2に宛てて送信する(#104)。
【0052】
依頼ノードであるパーソナルコンピュータTR2において、データ受信部203は、パーソナルコンピュータTR1からパーソナルコンピュータTR2に宛てて送信されたパケットを受信し、チケットデータ7Bおよび指定ノードデータ7Cを再生する。すると、データ解析部204はそれらのデータの種類を解析し、次のステップの処理を実行するようにメッセージ生成部212に対して指令を与える。
【0053】
すると、メッセージ生成部212は、依頼データ7Aを次のように生成する(#105)。依頼内容を示すメッセージ(以下、「依頼メッセージ」と記載する。)を生成する。ここでは、パーソナルコンピュータTR3に保存されている共有データの中からユーザが指定した文字列を含むファイル名を有する共有データを検索すべき旨の指令(コマンド)を示す依頼メッセージを生成する。その依頼メッセージを過去に生成した他の依頼メッセージと識別するための識別情報であるメッセージIDを発行する。そして、これらの依頼メッセージおよびメッセージIDと認証ノードつまりパーソナルコンピュータTR1から受信したチケットデータ7Bおよび指定ノードデータ7Cとを1つのデータに纏めることによって、依頼データ7Aを生成する。メッセージIDとして、依頼メッセージのハッシュ値を用いてもよい。なお、チケットデータ7Bおよび指定ノードデータ7Cとして、パーソナルコンピュータTR1の秘密鍵の秘密鍵データ6Cで暗号化されたままのデータが用いられる。
【0054】
パケット生成部201は、生成された依頼データ7Aをパケット化し、パケット送信部202は、これらを目的ノードであるパーソナルコンピュータTR3に宛てて送信する(#106)。さらに、パーソナルコンピュータTR1から受信した指定ノードデータ7CをパーソナルコンピュータTR1の公開鍵の公開鍵データ6Bで復号し、それに示されるノードに対しても、依頼データ7Aを送信する(#107)。ここでは、指定ノードデータ7CにはパーソナルコンピュータTR4が示されているものとする。よって、パーソナルコンピュータTR4が指定ノードとなる。なお、パーソナルコンピュータTR1の公開鍵データ6Bを有しない場合は、認証局のサーバなどから取得する。
【0055】
指定ノードとなったパーソナルコンピュータTR4において、データ受信部203は、パーソナルコンピュータTR2からパーソナルコンピュータTR4に宛てて送信されたパケットを受信し、依頼データ7Aを再生する。
【0056】
データ解析部204はそのデータの種類を解析し、依頼データ7Aに含まれるチケットデータ7Bおよび指定ノードデータ7Cが暗号化されていることを検知し、チケットデータ7Bおよび指定ノードデータ7Cを生成したノードつまりパーソナルコンピュータTR1の公開鍵の公開鍵データ6Bを用いてチケットデータ7Bおよび指定ノードデータ7Cを復号する。そして、指定ノードデータ7Cに自らが示されていることを検知すると、目的ノードからの問合せの応対のためにスタンバイするようにメッセージ確認部213に対して指令する。
【0057】
すると、メッセージ確認部213は、そのチケットデータ7Bに示される情報(例えば、グループパスワード)が正規のものであるか否かを確認し、正規のものであれば、その依頼データ7Aに示されるメッセージIDを、図示しない有効メッセージテーブルTMに格納しておく(#108)。そして、目的ノードからの問合せを待つ。
【0058】
一方、目的ノードであるパーソナルコンピュータTR3において、データ受信部203は、パーソナルコンピュータTR2からパーソナルコンピュータTR3に宛てて送信されたパケットを受信し、依頼データ7Aを再生する。
【0059】
データ解析部204はそのデータの種類を解析し、依頼データ7Aに含まれるチケットデータ7Bおよび指定ノードデータ7Cが暗号化されていることを検知し、チケットデータ7Bおよび指定ノードデータ7Cを生成したノードつまりパーソナルコンピュータTR1の公開鍵の公開鍵データ6Bを用いてチケットデータ7Bおよび指定ノードデータ7Cを復号する。そして、指定ノードデータ7Cに自らが示されていないことを検知すると、自らが指定ノードではなく目的ノードであると判別し、依頼データ7Aに示される依頼メッセージの確認に関する処理を行うようにメッセージ有効性問合せ部217に対して指令する。
【0060】
すると、メッセージ有効性問合せ部217は、依頼データ7Aに示される依頼メッセージの有効性についての問合せおよびその依頼メッセージのメッセージIDを示す問合せデータ7Dを生成する(#109)。パケット生成部201は、生成された問合せデータ7Dをパケット化し、パケット送信部202は、これらを指定ノードであるパーソナルコンピュータTR4に宛てて送信する(#110)。
【0061】
パーソナルコンピュータTR4において、データ受信部203は、パーソナルコンピュータTR3からパーソナルコンピュータTR4に宛てて送信されたパケットを受信し、問合せデータ7Dを再生する。データ解析部204はそのデータの種類を解析し、その問合せデータ7Dに応対するようにメッセージ確認部213に対して指令する。
【0062】
すると、メッセージ確認部213は、その問合せデータ7Dに示されるメッセージIDが有効メッセージテーブルTMに格納されているか否かをチェックする(#111)。まだ、前に説明したステップ#108の処理が終わっていない場合は、それが終わってからチェックする。または、チェックができるまで、所定の時間ごとにチェックを試みてもよい。そして、そのメッセージIDが格納されている場合は、そのメッセージIDに係る依頼メッセージが有効であると判別し、その旨を示す有効結果データ7EAを生成する(#112)。格納されていない場合は、その依頼メッセージが無効である旨を示す無効結果データ7EBを生成する(#112)。
【0063】
パケット生成部201は、生成された有効結果データ7EAまたは無効結果データ7EBをパケット化し、パケット送信部202は、これらを問合せ元であるパーソナルコンピュータTR3に宛てて送信する(#113)。なお、有効結果データ7EAまたは無効結果データ7EBの送信後、有効メッセージテーブルTMからそのメッセージIDを削除しておく。
【0064】
そして、パーソナルコンピュータTR3は、有効結果データ7EAを受信した場合は、それに示されるメッセージIDに係る依頼メッセージに従って従来通りに処理を開始する。ここでは、ユーザが指定した文字列を含むファイル名を有する共有データを共有データ記憶部2K2の中から検索する。一方、無効結果データ7EBを受信した場合は、その依頼メッセージは信頼性がなく無効であるものと判別し、その依頼メッセージに基づく処理を中止する。そして、依頼メッセージに基づく処理の実行結果をパーソナルコンピュータTR2に通知しておく(#114)。
【0065】
上述の通り、目的ノードつまりパーソナルコンピュータTR3および指定ノードつまりパーソナルコンピュータTR4は、ともに同一の依頼データ7Aを受信する。しかし、目的ノードまたは指定ノードのいずれか一方または両方が、パケットロスなどの原因により依頼データ7Aの一部分を正しく受信することができないことがある。そこで、目的ノードおよび指定ノードのそれぞれのメッセージ修正部214および欠損データ抽出部215は、それを補い合うための処理を、必要に応じて次のように実行する(#115)。
【0066】
例えば、図7に示すように、依頼ノードから指定ノードおよび目的ノードに依頼データ7Aが送信されたが、指定ノードには依頼データ7Aの依頼メッセージの一部分のデータPt1が届かなかったとする。
【0067】
この場合は、指定ノードにおいて、メッセージ修正部214は、データPt1を要求する旨を示す欠損部分要求データ7Fを生成し、これを目的ノードに宛てて送信するようにパケット生成部201およびパケット送信部202を制御する。すると、目的ノードにおいて、欠損データ抽出部215は、依頼データ7Aの中からデータPt1を抽出し、これを指定ノードに宛てて送信するようにパケット生成部201およびパケット送信部202を制御する。
【0068】
そして、指定ノードにおいて、メッセージ修正部214は、目的ノードから受信したデータPt1を用いて依頼データ7Aを再生する。
【0069】
または、依頼データ7Aの依頼メッセージの一部分のデータPt2が目的ノードに届かなかった場合は、目的ノードにおいて、メッセージ修正部214は、データPt2を要求する旨を示す欠損部分要求データ7Fを生成し、これを指定ノードに宛てて送信するようにパケット生成部201およびパケット送信部202を制御する。すると、指定ノードにおいて、欠損データ抽出部215は、依頼データ7Aの中からデータPt2を抽出し、これを目的ノードに宛てて送信するようにパケット生成部201およびパケット送信部202を制御する。
【0070】
そして、目的ノードにおいて、メッセージ修正部214は、指定ノードから受信したデータPt2を用いて依頼データ7Aを再生する。
【0071】
図8はおよび図9はパーソナルコンピュータTRの全体的な処理の流れの例を説明するフローチャートである。
【0072】
次に、ネットワーク1に参加している間のパーソナルコンピュータTRの処理の流れを、図8および図9のフローチャートを参照しながら説明する。
【0073】
図8において、パーソナルコンピュータTRは、ローカルユーザからの指令を待つ。他のパーソナルコンピュータTR(目的ノード)へのアクセスが必要な処理の指令がローカルユーザによってなされると(#11でYes)、パーソナルコンピュータTRは、依頼ノードとして機能する。
【0074】
すなわち、認証要求データ8Aを生成し、その認証要求データ8Aと自らの証明書データ6Aとを、ネットワーク1の中の目的ノード以外のいずれかの他のパーソナルコンピュータTR(つまり、認証ノード)に宛てて送信することによって、デバイス認証の実行およびチケットデータ7Bの発行などを要求する(#12)。
【0075】
要求先つまり認証ノードにおいてパーソナルコンピュータTRのデバイス認証が成功し、パーソナルコンピュータTRがチケットデータ7Bおよび指定ノードデータ7Cを受信することができたら(#13でYes)、ユーザの指令に係る処理を依頼する依頼メッセージ、メッセージID、チケットデータ7B、および指定ノードデータ7Cなどを含む依頼データ7Aを生成し(#14)、これを依頼先つまり目的ノードに送信する(#15)。さらに、その指定ノードデータ7Cに示されるノードつまり指定ノードに対しても、その依頼データ7Aを送信する(#16)。
【0076】
一方、認証ノードにおいてデバイス認証が失敗し、パーソナルコンピュータTRがチケットデータ7Bおよび指定ノードデータ7Cを受信することができなかった場合は(#13でYes)、ユーザの指令に係る処理を中止する(#17)。
【0077】
パーソナルコンピュータTRは、他のパーソナルコンピュータTRから証明書データ6Aおよび認証要求データ8Aを受信すると(#11でNo、#18でYes)、認証ノードとして機能する。
【0078】
すなわち、受信した証明書データ6Aに示されるデバイス証明書および認証要求データ8Aに示されるパスワードなどに基づいて当該他のパーソナルコンピュータTR(依頼ノード)のデバイス認証を行う(#19)。
【0079】
認証が成功したら(#20でYes)、チケットデータ7Bおよび指定ノードデータ7Cを生成し(#21)、依頼ノードに返信する(#22)。一方、認証が失敗したら(#20でYes)、その旨を依頼ノードに返信する(#23)。
【0080】
パーソナルコンピュータTRは、他のパーソナルコンピュータTRから依頼データ7Aを受信しかつその依頼データ7Aに含まれる指定ノードデータ7Cに自らが示されている場合は(#11でNo、#18でNo、#24でYes、#25でYes)、指定ノードとして機能する。
【0081】
すなわち、その依頼データ7Aに含まれるチケットデータ7Bに示されるグループパスワードを検証することによって、その依頼データ7Aに示される依頼メッセージの有効性を判別する(#26)。有効性があると判別した場合は(#27でYes)、そのチケットデータ7Bに示されるメッセージIDを有効メッセージテーブルTMに追加登録しておく(#28)。一方、有効性がないと判別した場合は(#27でNo)、有効メッセージテーブルTMへの追加登録は行わない。
【0082】
パーソナルコンピュータTRは、他のパーソナルコンピュータTRから依頼メッセージの有効性に関する問合せデータ7Dを受信した場合も(#11でNo、#18でNo、#24でNo、#29でYes)、指定ノードとして機能する。ただし、ここでは、次のような処理を行う。
【0083】
問合せデータ7Dに示されるメッセージIDが有効メッセージテーブルTMに登録されているか否かをチェックする(#30)。登録されている場合は(#31でYes)、依頼メッセージが有効である旨を示す有効結果データ7EAを当該他のパーソナルコンピュータTR(目的ノード)に対して送信する(#32)。一方、登録されていない場合は(#32でNo)、依頼メッセージが無効である旨を示す無効結果データ7EBを送信する(#33)。
【0084】
パーソナルコンピュータTRは、他のパーソナルコンピュータTRから依頼データ7Aを受信しかつその依頼データ7Aに含まれる指定ノードデータ7Cに自らが示されていない場合は(#11でNo、#18でNo、#24でYes、#25でNo)、目的ノードとして機能する。
【0085】
すなわち、その依頼データ7Aに含まれる依頼メッセージの有効性を問い合わせるための問合せデータ7Dを、その依頼データ7Aに含まれる指定ノードデータ7Cに示されるノード(指定ノード)に送信する(#34)。
【0086】
有効結果データ7EAを受信した場合は(#35でYes)、その依頼メッセージを信頼し、その依頼メッセージに従って依頼ノードのユーザの指令に係る処理を開始する(#36)。一方、無効結果データ7EBを受信した場合は(#35でNo)、依頼ノードからの依頼を拒否する(#37)。そして、処理の結果を依頼ノードに通知する(#38)。
【0087】
パーソナルコンピュータTRは、ネットワーク1に参加している間、ステップ#11〜#38の処理を適宜実行する。
【0088】
本実施形態によると、目的ノードは、依頼メッセージの有効性の判別を従来のように自ら行わず、指定ノードに行わせることができる。これにより、従来よりも処理の負荷を軽減することができる。特に、多数の依頼ノードから一時期に依頼メッセージを受信した場合に有用である。例えば、緊急時に監視カメラを制御する各パーソナルコンピュータTRから一斉にエマージェンシメッセージを受信し、所定のデータのダウンロード要求があり、または依頼メッセージをブロードキャストした場合などに、有用である。
【0089】
また、依頼メッセージの送信元である依頼ノードが依頼メッセージの送信後に電源オフになったり、処理が増大しビジーになったり、DoS(Denial of Service)攻撃を受けたりしても、依頼メッセージの有効性を確実に判別することができる。
【0090】
また、ノード同士の物理的な距離が離れている場合にも、有用である。例えば、日本とアメリカとの間で行われる遠隔医療のためのシステムにおいて、一方のノードが日本にあり他方のノードがアメリカにある場合は、両ノード間で何度も通信を行うと時間が掛かる。そこで、本発明のように依頼メッセージに関する一連の処理を分散することによって、時間を節約することができる。
【0091】
本実施形態では、依頼ノードからのデバイス認証の要求を受けた認証ノードは、指定ノードとするパーソナルコンピュータTRを1台だけ選択したが、複数台選択してもよい。そして、依頼ノードは、認証ノードが選択した複数台のパーソナルコンピュータTRの中からいずれか1台を指定ノードとして選出してもよい。この際に、依頼ノード自身との通信速度が最速であるパーソナルコンピュータTRを選出してもよいし、CPUなどのスペックが最高のパーソナルコンピュータTRを選出してもよいし、乱数を発生させランダムに選出してもよい。
【0092】
または、複数のパーソナルコンピュータTRを指定ノードとして選出してもよい。そして、目的ノードは、例えば、依頼メッセージが重要な処理に係る場合は、複数の指定ノードすべてから有効結果データ7EAを得られたら、その依頼メッセージの処理を開始してもよい。または、通信環境があまりよくない場合またはネットワーク1からのノードの離脱がよく起きる場合は、所定の割合または所定の個数の指定ノードから有効結果データ7EAを得られたら、その依頼メッセージの処理を開始してもよい。または、依頼メッセージに係る処理の重要度が高いほど(例えば、取り扱う情報の機密性が高いほど)、その所定の割合を高く設定しまたはその所定の個数を多く設定するようにしてもよい。
【0093】
本実施形態では、指定ノードは、依頼データ7Aに添付されているチケットデータ7Bに基づいて依頼メッセージの有効性を判別したが、これ以外の情報に基づいて判別してもよい。例えば、依頼ノードから受信したメッセージIDと目的ノードから受信したメッセージIDとが一致した場合に、そのメッセージIDに係る依頼メッセージが有効であると判別してもよい。または、依頼ノードおよび目的ノードそれぞれから受信した依頼メッセージの全部または一部分同士を比較し、両者が一致した場合に、その依頼メッセージが有効であると判別してもよい。
【0094】
依頼ノードは、複数の依頼データ7Aを送信する場合は、トラフィックの分散のため、所定の時間間隔を開けて所定の個数以下の依頼データ7Aを送信するのが好ましい。
【0095】
依頼ノードと目的ノードとのリンクが長時間継続する場合は、目的ノードは依頼ノードに対して再検証を求めてもよい。そして、依頼ノード、目的ノード、認証ノード、および指定ノードは、前に図6で説明した処理を再度実行すればよい。
【0096】
または、依頼ノードまたは目的ノードで発生したエラーを検知し、所定のエラー関数に基づいて検知したエラーの重大性の値を算出しこれを累積し、その累積値が所定の値を超えたら、目的ノードは依頼ノードに対して再検証を求めてもよい。
【0097】
本実施形態では、企業に構築されているネットワーク1を例に説明したが、例えばインターネットのような、より広範なネットワークにも本発明を適用することができる。また、パーソナルコンピュータTR以外の情報処理装置(例えば、ワークステーション、MFP、プリンタなどの情報処理装置など)がノードである場合にも、本発明を適用することができる。
【0098】
その他、ネットワーク1、パーソナルコンピュータTRの全体または各部の構成、処理内容、処理順序などは、本発明の趣旨に沿って適宜変更することができる。
【図面の簡単な説明】
【0099】
【図1】ネットワークの全体的な構成の例を示す図である。
【図2】パーソナルコンピュータのハードウェア構成の例を示す図である。
【図3】パーソナルコンピュータの機能的構成の例を示す図である。
【図4】ネットワークの各ノードの関連性の例を示す図である。
【図5】接続テーブルの例を示す図である。
【図6】依頼ノード、目的ノード、認証ノード、および指定ノードの処理内容を説明するための図である。
【図7】欠損したデータを補うための処理を説明するための図である。
【図8】パーソナルコンピュータの全体的な処理の流れの例を説明するフローチャートである。
【図9】パーソナルコンピュータの全体的な処理の流れの例を説明するフローチャートである。
【符号の説明】
【0100】
1 ネットワーク
202 パケット送信部(目的データ送信手段、判別要求手段、回答手段)
212 メッセージ生成部(目的データ送信手段)
213 メッセージ確認部(判別手段、回答手段)
217 メッセージ有効性問合せ部(判別要求手段)
7A 依頼データ(目的データ、ノード識別情報)
TR パーソナルコンピュータ(情報処理装置)

【特許請求の範囲】
【請求項1】
3つ以上のノードによって構成されるネットワークにおける通信方法であって、
前記ネットワークを構成するノードのうちの第一のノードは、
送信する目的のデータである目的データと前記ネットワークを構成するノードのうちの当該目的データの有効性を判別する第三のノードを識別するノード識別情報とを互いに対応付けて、前記ネットワークを構成するノードのうちの当該目的データの本来の送信先である第二のノードに宛てて送信し、
前記第二のノードは、
前記第一のノードから受信した前記目的データの有効性を判別するように、当該目的データに対応付けられている前記ノード識別情報に示される前記第三のノードに対して要求し、
前記第三のノードは、
前記第二のノードが受信した前記目的データの有効性を判別し、
判別結果を前記第二のノードに回答する、
ことを特徴とする通信方法。
【請求項2】
前記第一のノードは、
前記目的データを識別するデータ識別情報を前記第二のノードおよび前記第三のノードに宛てて送信し、
前記第二のノードは、
前記第三のノードに対して、前記目的データの前記データ識別情報を送信することによって当該目的データの有効性を判別するように要求し、
前記第三のノードは、
前記第一のノードから受信した前記データ識別情報と前記第二のノードから受信した前記データ識別情報とが一致する場合は、当該データ識別情報に係る前記目的データが有効であると判別し、一致しない場合は、当該目的データが無効であると判別する、
請求項1記載の通信方法。
【請求項3】
前記第一のノードは、
当該第一のノード自身が前記ネットワークの正当なメンバである旨を示す証明データと前記目的データを識別するデータ識別情報とを互いに対応付けて前記第三のノードに宛てて送信し、
前記データ識別情報を前記第二のノードに宛てて送信し、
前記第二のノードは、
前記第三のノードに対して、前記目的データの前記データ識別情報を送信することによって当該目的データの有効性を判別するように要求し、
前記第三のノードは、
前記第二のノードから受信した前記データ識別情報に対応付けられている、前記第一のノードから受信した前記証明データに基づいて、当該データ識別情報に係る前記目的データの有効性を判別する、
請求項1記載の通信方法。
【請求項4】
前記第一のノードは、
前記第三のノードに送信するための前記証明データを、前記ネットワークを構成するノードのうちの前記第二のノードおよび第三のノードのいずれでもない第四のノードから取得する、
請求項3記載の通信方法。
【請求項5】
前記目的データには、前記第二のノードに対して所定の処理を実行するように依頼するメッセージが示されており、
前記第二のノードは、
前記目的データが有効である旨の回答を前記第三のノードから受けた場合に、当該目的データに基づいて前記所定の処理を実行する、
請求項1ないし請求項4のいずれかに記載の通信方法。
【請求項6】
前記第二のノードは、
前記ネットワークを構成する複数のノードを前記第三のノードとみなして前記データ識別情報を送信し、
所定の個数の前記第三のノードから前記目的データが有効である旨の回答を受けた場合に、当該目的データに基づいて前記所定の処理を実行する、
請求項5記載の通信方法。
【請求項7】
前記第二のノードは、
前記第三のノードを、前記ネットワークを構成するノードの中からランダムに選択する、
請求項1ないし請求項6のいずれかに記載の通信方法。
【請求項8】
前記第一のノードは、
前記目的データを前記第三のノードに送信し、
前記第二のノードは、
前記第一のノードから受信した前記目的データの一部分が欠損している場合に、当該一部分を送信するように前記第三のノードに対して要求し、
前記目的データを、前記第三のノードから受信した当該目的データの一部分に基づいて修復し、
前記目的データの一部分を送信するように前記第三のノードから要求された場合に、当該一部分を当該第三のノードに宛てて送信し、
前記第三のノードは、
前記第一のノードから受信した前記目的データの一部分が欠損している場合に、当該一部分を送信するように前記第二のノードに対して要求し、
前記目的データを、前記第二のノードから受信した当該目的データの一部分に基づいて修復し、
前記目的データの一部分を送信するように前記第二のノードから要求された場合に、当該一部分を当該第二のノードに宛てて送信する、
請求項1ないし請求項7のいずれかに記載の通信方法。
【請求項9】
P2P型のネットワークのノードとして使用する情報処理装置であって、
ユーザから所定の指令が与えられた場合に、目的データと当該目的データの有効性を判別するノードを識別するノード識別情報とを互いに対応付けて当該目的データの本来の送信先であるノードに送信する、目的データ送信手段と、
他のノードから前記目的データを受信した場合に、当該目的データの有効性を判別するように、当該目的データに対応付けられている前記ノード識別情報に示される前記第三のノードに対して要求する、判別要求手段と、
他のノードから前記目的データの有効性を判別すべき旨を要求された場合に、目的データの有効性を判別する、判別手段と、
前記判別手段による判別結果を前記第二のノードに回答する回答手段と、
を有することを特徴とする情報処理装置。
【請求項10】
P2P型のネットワークのノードとして使用するコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに、
ユーザから所定の指令が与えられた場合に、目的データと当該目的データの有効性を判別するノードを識別するノード識別情報とを互いに対応付けて当該目的データの本来の送信先であるノードに送信する処理を実行させ、
他のノードから前記目的データを受信した場合に、当該目的データの有効性を判別するように、当該目的データに対応付けられている前記ノード識別情報に示される前記第三のノードに対して要求する処理を実行させ、
他のノードから前記目的データの有効性を判別すべき旨を要求された場合に、目的データの有効性を判別する処理と、判別結果を前記第二のノードに回答する処理と、を実行させる、
ことを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−316741(P2007−316741A)
【公開日】平成19年12月6日(2007.12.6)
【国際特許分類】
【出願番号】特願2006−142992(P2006−142992)
【出願日】平成18年5月23日(2006.5.23)
【出願人】(000001270)コニカミノルタホールディングス株式会社 (4,463)
【Fターム(参考)】