(57)【要約】【課題】  新たにネットワークへの接続を試みる新規クライアント又は新規サーバが、正当ではないサーバに接続することから生じる混乱の回避を図る。【解決手段】  本発明に係る通信方法は、クライアントが、ネットワークに接続されている複数の稼動サーバのいずれかに接続するための通信方法であって、前記複数の稼動サーバの各々が、該稼動サーバの機能を通知する機能通知文書を生成する工程と、前記複数の稼動サーバの各々が、前記機能通知文書に対して署名を付加して前記クライアントに対して送信する工程と、前記クライアントが、前記署名に基づいて、受信した前記機能通知文書の正当性を判断する工程と、前記クライアントが、正当な機能通知文書を受信した稼動サーバの中から、該機能通知文書によって通知されている稼動サーバの機能に基づいて、接続先の稼動サーバを決定する工程とを有する。【選択図】  図１３
2006099515.tif 000002
【特許請求の範囲】
【請求項１】
クライアントが、ネットワークに接続されている複数の稼動サーバのいずれかに接続す
るための通信方法であって、
前記複数の稼動サーバの各々が、該稼動サーバの機能を通知する機能通知文書を生成す
る工程と、
前記複数の稼動サーバの各々が、前記機能通知文書に対して署名を付加して前記クライ
アントに対して送信する工程と、
前記クライアントが、前記署名に基づいて、受信した前記機能通知文書の正当性を判断
する工程と、
前記クライアントが、正当な機能通知文書を受信した稼動サーバの中から、該機能通知
文書によって通知されている稼動サーバの機能に基づいて、接続先の稼動サーバを決定す
る工程とを有することを特徴とする通信方法。
【請求項２】
前記稼動サーバは、該稼動サーバの秘密鍵及び前記クライアントの公開鍵を用いて生成
可能な該クライアントとの間の共通鍵を用いて前記署名を生成し、
前記クライアントは、該クライアントの秘密鍵及び前記稼動サーバの公開鍵を用いて生
成可能な前記共通鍵を用いて前記機能通知文書の正当性を判断することを特徴とする請求
項１に記載の通信方法。
【請求項３】
新規サーバが、複数の稼動サーバが接続されているネットワークに対して参加するため
の通信方法であって、
前記新規サーバが、該新規サーバの機能を通知する機能通知文書を生成する工程と、
前記新規サーバが、前記機能通知文書に対して署名を付加して前記稼動サーバに対して
送信する工程と、
前記稼動サーバが、前記署名に基づいて、受信した前記機能通知文書の正当性を判断す
る工程と、
前記稼動サーバが、受信した前記機能通知文書が正当であると判断した場合、該機能通
知文書によって通知されている前記新規サーバの機能に基づいて、該稼動サーバとクライ
アントとの間の接続を、前記新規サーバと該クライアントとの間の接続に切り替えるか否
かについて判断する工程とを有することを特徴とする通信方法。
【請求項４】
前記新規サーバは、該新規サーバの秘密鍵及び前記稼動サーバの公開鍵を用いて生成可
能な該稼動サーバとの間の共通鍵を用いて前記署名を生成し、
前記稼動サーバは、該稼動サーバの秘密鍵及び前記新規サーバの公開鍵を用いて生成可
能な前記共通鍵を用いて前記機能通知文書の正当性を判断することを特徴とする請求項３
に記載の通信方法。
【請求項５】
ネットワークに接続されている複数の稼動サーバのいずれかに接続可能に構成されてい
るクライアントであって、
前記複数の稼動サーバの各々から、該稼動サーバの機能を通知する機能通知文書を受信
する機能通知文書受信部と、
受信した前記機能通知文書に付加されている署名に基づいて、受信した前記機能通知文
書の正当性を判断する判断部と、
正当な機能通知文書を受信した稼動サーバの中から、該機能通知文書によって通知され
ている稼動サーバの機能に基づいて、接続先の稼動サーバを決定する接続先決定部とを具
備することを特徴とするクライアント。
【請求項６】
前記接続先決定部は、前記機能通知文書を参照して、最も多くの数の機能を具備してい
る稼動サーバを、前記接続先の稼動サーバとして決定することを特徴とする請求項５に記
載のクライアント。
【請求項７】
前記接続先決定部は、前記機能通知文書を参照して、クライアントとの接続数が最も多
い稼動サーバを、前記接続先の稼動サーバとして決定することを特徴とする請求項５に記
載のクライアント。
【請求項８】
前記接続先決定部は、前記機能通知文書を参照して、最も値が小さい識別子によって識
別される稼動サーバを、前記接続先の稼動サーバとして決定することを特徴とする請求項
５に記載のクライアント。
【請求項９】
ネットワークに接続されているサーバであって、
前記ネットワークへの接続を望む新規サーバから、該新規サーバの機能を通知する機能
通知文書を受信する機能通知文書受信部と、
受信した前記機能通知文書に付加された署名に基づいて、該機能通知文書の正当性を判
断する正当性判断部と、
受信した前記機能通知文書が正当であると判断した場合、該機能通知文書によって通知
されている機能に基づいて、前記サーバとクライアントとの間の接続を、前記新規サーバ
と該クライアントとの間の接続に切り替えるか否かについて判断する判断部とを具備する
ことを特徴とするサーバ。
【請求項１０】
前記判断部は、前記新規サーバから送信された前記機能通知文書を参照して、該新規サ
ーバの機能の数が前記サーバの機能の数よりも多い場合、前記接続を切り替えるように判
断することを特徴とする請求項９に記載のサーバ。
【請求項１１】
前記判断部は、前記新規サーバから送信された前記機能通知文書を参照して、前記新規
サーバにおけるクライアントとの接続数が前記サーバにおけるクライアントとの接続数よ
りも多い場合、前記接続を切り替えるように判断することを特徴とする請求項９に記載の
サーバ。
【請求項１２】
前記判断部は、前記新規サーバから送信された前記機能通知文書を参照して、該新規サ
ーバを識別する識別子の値が前記サーバを識別する識別子の値よりも小さい場合、前記接
続を切り替えるように判断することを特徴とする請求項９に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されている複数の稼動サーバのいずれかにクライアント
が接続するための通信方法、複数の稼動サーバが接続されているネットワークに対して新
規サーバが参加するための通信方法、かかる通信方法を実現するクライアント及びサーバ
に関する。
【背景技術】
【０００２】
近年、ホームネットワークに注目が集まっており、各社がホームネットワークの開発に
注力している。
【０００３】
かかるホームネットワークでは、様々な情報を収集して、ホームネットワークに接続さ
れている様々な機器を制御する必要がある。そのためには、ホームネットワークに接続さ
れる全クライアントが唯１つの稼動サーバに接続するシステムが有効となる。
【特許文献１】特開２００２-７７１４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述のような従来のシステムでは、ホームネットワークに新規クライアントや新規サー
バが登場した際には、かかる新規クライアントや新規サーバがどの稼動サーバに接続する
かについて選択を行う必要がある。かかる選択の際に、稼動サーバから、当該稼動サーバ
の機能を通知するための機能通知文書（サブスクライブ（ｓｕｂｓｃｒｉｂｅ）文書）が
送信される。
【０００５】
しかしながら、従来の通信システムでは、かかる機能通知文書が、悪意の第３者によっ
て偽造されたものである場合、クライアントが、正当ではないサーバに接続しようとする
ため、ホームネットワークに混乱をきたしてしまうという問題点があった。
【０００６】
そこで、本発明は、以上の点に鑑みてなされたもので、新たにネットワークへの接続を
試みる新規クライアント又は新規サーバが、正当ではないサーバに接続することから生じ
る混乱の回避を図ることが可能な通信方法、クライアント及びサーバを提供することを目
的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の特徴は、クライアントが、ネットワークに接続されている複数の稼動サ
ーバのいずれかに接続するための通信方法であって、前記複数の稼動サーバの各々が、該
稼動サーバの機能を通知する機能通知文書を生成する工程と、前記複数の稼動サーバの各
々が、前記機能通知文書に対して署名を付加して前記クライアントに対して送信する工程
と、前記クライアントが、前記署名に基づいて、受信した前記機能通知文書の正当性を判
断する工程と、前記クライアントが、正当な機能通知文書を受信した稼動サーバの中から
、該機能通知文書によって通知されている稼動サーバの機能に基づいて、接続先の稼動サ
ーバを決定する工程とを有することを要旨とする。
【０００８】
かかる発明によれば、新規クライアントが、稼動サーバから受信した機能通知文書（サ
ブスクライブ文書）の正当性を判断し、正当な機能通知文書を受信した稼動サーバの中か
ら接続先の稼動サーバを決定するので、新規クライアントが不正なサーバに接続すること
を防ぐことができる。
【０００９】
また、かかる発明によれば、新規クライアントが、機能通知文書によって通知されてい
る稼動サーバの機能に基づいて接続先の稼動サーバを決定するため、新規クライアントが
、最適なネットワーク構成を実現するにあたって最適な稼動サーバと接続を確立すること
ができる。
【００１０】
本発明の第１の特徴において、前記稼動サーバが、該稼動サーバの秘密鍵及び前記クラ
イアントの公開鍵を用いて生成可能な該クライアントとの間の共通鍵を用いて前記署名を
生成し、前記クライアントが、該クライアントの秘密鍵及び前記稼動サーバの公開鍵を用
いて生成可能な前記共通鍵を用いて前記機能通知文書の正当性を判断するように構成され
ていてもよい。
【００１１】
本発明の第２の特徴は、新規サーバが、複数の稼動サーバが接続されているネットワー
クに対して参加するための通信方法であって、前記新規サーバが、該新規サーバの機能を
通知する機能通知文書を生成する工程と、前記新規サーバが、前記機能通知文書に対して
署名を付加して前記稼動サーバに対して送信する工程と、前記稼動サーバが、前記署名に
基づいて、受信した前記機能通知文書の正当性を判断する工程と、前記稼動サーバが、受
信した前記機能通知文書が正当であると判断した場合、該機能通知文書によって通知され
ている前記新規サーバの機能に基づいて、該稼動サーバとクライアントとの間の接続を、
前記新規サーバと該クライアントとの間の接続に切り替えるか否かについて判断する工程
とを有することを要旨とする。
【００１２】
かかる発明によれば、稼動サーバが、機能通知文書（サブスクライブ文書）によって通
知された新規サーバの機能に基づいて、クライアントと稼動サーバとの間の接続を、クラ
イアントと新規サーバとの間の接続に切り替えるか否かについて判断するため、最適なネ
ットワーク構成を実現することができる。
【００１３】
本発明の第２の特徴において、前記新規サーバが、該新規サーバの秘密鍵及び前記稼動
サーバの公開鍵を用いて生成可能な該稼動サーバとの間の共通鍵を用いて前記署名を生成
し、前記稼動サーバが、該稼動サーバの秘密鍵及び前記新規サーバの公開鍵を用いて生成
可能な前記共通鍵を用いて前記機能通知文書の正当性を判断するように構成されていても
よい。
【００１４】
本発明の第３の特徴は、ネットワークに接続されている複数の稼動サーバのいずれかに
接続可能に構成されているクライアントであって、前記複数の稼動サーバの各々から、該
稼動サーバの機能を通知する機能通知文書を受信する機能通知文書受信部と、受信した前
記機能通知文書に付加されている署名に基づいて、受信した前記機能通知文書の正当性を
判断する判断部と、正当な機能通知文書を受信した稼動サーバの中から、該機能通知文書
によって通知されている稼動サーバの機能に基づいて、接続先の稼動サーバを決定する接
続先決定部とを具備することを要旨とする。
【００１５】
本発明の第３の特徴において、前記接続先決定部が、前記機能通知文書を参照して、最
も多くの数の機能を具備している稼動サーバを、前記接続先の稼動サーバとして決定して
もよい。
【００１６】
本発明の第３の特徴において、前記接続先決定部が、前記機能通知文書を参照して、ク
ライアントとの接続数が最も多い稼動サーバ（ＨＣＳＰＣ接続数が最も多い稼動サーバ）
を、前記接続先の稼動サーバとして決定してもよい。
【００１７】
本発明の第３の特徴において、前記接続先決定部が、前記機能通知文書を参照して、最
も値が小さい識別子によって識別される稼動サーバ（ＨＣＳ識別子の最も小さい稼動サー
バ）を、前記接続先の稼動サーバとして決定してもよい。
【００１８】
本発明の第４の特徴は、ネットワークに接続されているサーバであって、前記ネットワ
ークへの接続を望む新規サーバから、該新規サーバの機能を通知する機能通知文書を受信
する機能通知文書受信部と、受信した前記機能通知文書に付加された署名に基づいて、該
機能通知文書の正当性を判断する正当性判断部と、受信した前記機能通知文書が正当であ
ると判断した場合、該機能通知文書によって通知されている機能に基づいて、前記サーバ
とクライアントとの間の接続を、前記新規サーバと該クライアントとの間の接続に切り替
えるか否かについて判断する判断部とを具備することを要旨とする。
【００１９】
本発明の第４の特徴において、前記判断部が、前記新規サーバから送信された前記機能
通知文書を参照して、該新規サーバの機能の数が前記サーバの機能の数よりも多い場合、
前記接続を切り替えるように判断してもよい。
【００２０】
本発明の第４の特徴において、前記判断部が、前記新規サーバから送信された前記機能
通知文書を参照して、前記新規サーバにおけるクライアントとの接続数が前記サーバにお
けるクライアントとの接続数よりも多い場合、前記接続を切り替えるように判断してもよ
い。
【００２１】
本発明の第４の特徴において、前記判断部が、前記新規サーバから送信された前記機能
通知文書を参照して、該新規サーバを識別する識別子（ＨＣＳ識別子）の値が前記サーバ
を識別する識別子（ＨＣＳ識別子）の値よりも小さい場合、前記接続を切り替えるように
判断してもよい。
【発明の効果】
【００２２】
以上説明したように、本発明によれば、新たにネットワークへの接続を試みる新規クラ
イアント又は新規サーバが、正当ではないサーバに接続することから生じる混乱の回避を
図ることが可能な通信方法、クライアント及びサーバを提供することができる。
【発明を実施するための最良の形態】
【００２３】
（本発明の第１の実施形態に係る通信システムの構成）
図１乃至図３を参照して、本発明の第１の実施形態に係る通信システムの構成について
説明する。本実施形態に係る通信システムでは、図１に示すように、新規クライアント又
は新規サーバが、複数の稼動サーバが接続しているネットワーク（例えば、ホームネット
ワーク）に接続（参加）するように構成されている。
【００２４】
図２に示すように、本実施形態に係る通信システムにおけるクライアント１０は、主な
機能として、タイマー管理部１０１と、タイマーハンドラ部１０２と、起動処理部１０３
と、乱数生成部１０４と、接続先決定部１０５と、鍵情報記憶部１０６と、署名算出部１
０７と、署名比較部１０８と、サブスクライブ保存部１０９と、接続サーバ情報記憶部１
１０と、アドバタイズ生成部１１１と、機器情報記憶部１１２と、鍵情報取得部１１３と
、署名取得部１１４と、サブスクライブ処理部１１５と、ＵＤＰユニキャスト受信部１１
６と、ＵＤＰマルチキャスト送信部１１７とを具備している。
【００２５】
タイマー管理部１０１は、アドバタイズ生成部１１１からの依頼に応じて、タイマーを
設定することによって、稼動サーバからのサブスクライブ文書（稼動サーバの機能を通知
する機能通知文書）の受信を待つためのサブスクライブ文書受信待ち時間を管理するもの
である。
【００２６】
タイマーハンドラ部１０２は、タイマー管理部１０１によって管理されているサブスク
ライブ文書受信待ち時間が経過した場合、接続先決定部１０５に対して、クライアント１
０の接続先の稼動サーバを決定するように依頼するものである。
【００２７】
起動処理部１０３は、クライアント１０が起動した際に必要な起動処理を行うものであ
る。例えば、起動処理部１０３は、署名の算出に必要なクライアント１０の乱数を生成す
るように乱数生成部１０４に依頼し、アドバタイズ（ａｄｖｅｒｔｉｓｅ）文書を生成す
るようにアドバタイズ生成部１１１に依頼する。
【００２８】
乱数生成部１０４は、起動処理部１０３からの依頼に応じて、クライアント１０の乱数
を生成するものである。以下、クライアント１０の乱数を「乱数１０」というように表現
するものとする。
【００２９】
接続先決定部１０５は、タイマーハンドラ部１０２からの依頼に応じて、正当なサブス
クライブ文書を受信した稼動サーバの中から、接続先の稼動サーバを決定するものである
。
【００３０】
具体的には、接続先決定部１０５は、サブスクライブ保存部１０９に保存されているサ
ブスクライブ文書によって通知されている稼動サーバの機能に基づいて、接続先の稼動サ
ーバを決定する。
【００３１】
ここで、サブスクライブ文書は、稼動サーバが具備する機能（「ｆｅａｔｕｒｅｓ＝」
）や、クライアントとの接続数（ＨＣＳＰＣ（Ｈｏｍｅ  Ｃｏｎｔｒｏｌ  Ｓｅｒｖｉｃ
ｅ  Ｐｒｏｔｏｃｏｌ）接続数（「ｃｏｎｎｅｃｔｅｄ＝」））や、稼動サーバが具備す
る機能を識別する識別子（ＨＣＳＰＣ識別子（「ｈｃｓｐｓ：」））を含む（図６参照）
。
【００３２】
例えば、接続先決定部１０５は、最も多い数の機能を具備する稼動サーバを、接続先の
稼動サーバとして決定するように構成されていてもよい。
【００３３】
また、接続先決定部１０５は、同じ数の機能を具備する稼動サーバが複数存在する場合
、ＨＣＳＰＣ接続数が最も多いサーバを、接続先の稼動サーバとして決定するように構成
されていてもよい。
【００３４】
さらに、接続先決定部１０５は、同じ数の機能を具備しで、かつ、ＨＣＳＰＣ接続数も
同じ稼動サーバが複数存在する場合、ＨＣＳＰＣ識別子の値が最も小さい稼動サーバ（Ｈ
ＣＳＰＣの識別子を文字リテラルとした場合）、接続先の稼動サーバとして決定するよう
に構成されていてもよい。
【００３５】
例えば、ＨＣＳＰＣ識別子＃１が「ｈｃｓｐｓ：／ＰｔＰｖＸＹＪＳＱＳｑｗＴＪｐＰ
ＧｊｗＯｇ」であり、ＨＣＳＰＣ識別子＃２が「ｈｃｓｐｓ：７８ＡＦＹＺ／ｅＱ１ａｚ
６ｏ２ＪｒＲＭｒｗ」である場合、ＨＣＳＰＣ識別子＃１の先頭の文字「／」を文字リテ
ラルとしたときの値は「＃ｘ２Ｆ」であり、ＨＣＳＰＣ識別子＃２の先頭の文字「７」を
文字リテラルとしたときの値は「＃ｘ３７」であるため、ＨＣＳＰＣ識別子＃１の方が小
さいと判断される。
【００３６】
鍵情報記憶部１０６は、クライアント１０の公開鍵と、クライアント１０の秘密鍵と、
乱数生成部１０４によって生成されたクライアント１０の乱数とを記憶するものである。
【００３７】
署名算出部１０７は、鍵情報取得部１１３によって取得された稼動サーバの公開鍵及び
乱数と、鍵情報記憶部１０６によって記憶されているクライアント１０の秘密鍵及び乱数
とを用いて、稼動サーバから受信した署名付きサブスクライブ文書の正当性を判断するた
めの署名を算出するものである。なお、具体的な署名の算出方法については後述する。
【００３８】
署名比較部１０８は、署名算出部１０８によって算出された署名と、署名取得部１１４
によって取得された署名とを比較して、稼動サーバから受信した署名付きサブスクライブ
文書の正当性について判断するものである。
【００３９】
なお、かかる署名付きサブスクライブ文書が正当な文書であると判断された場合には、
署名比較部１０８は、サブスクライブ保存部１０９に対して当該署名付きサブスクライブ
文書を保存するように依頼する。
【００４０】
一方、かかる署名付きサブスクライブ文書が正当な文書でないと判断された場合には、
署名比較部１０８は、当該署名付きサブスクライブ文書を破棄する。
【００４１】
サブスクライブ保存部１０９は、署名比較部１０８からの依頼に応じて、複数の稼動サ
ーバから受信した署名付きサブスクライブ文書を保存するものである。なお、サブスクラ
イブ保存部１０９は、必要に応じて、接続先決定部１０５に、保存している署名付きサブ
スクライブ文書を提供する。
【００４２】
接続サーバ情報記憶部１１０は、接続先決定部１０５によって決定された接続先の稼動
サーバに関する情報（例えば、接続先の稼動サーバの識別子等）を記憶するものである。
【００４３】
アドバタイズ生成部１１１は、起動処理部１０３からの依頼に応じて、アドバタイズ文
書を生成するものである。ここで、アドバタイズ文書は、機器情報記憶部１１２に格納さ
れている機器情報に、鍵情報記憶部１０６に格納されているクライアント１０の公開鍵及
び乱数を付加して生成される（図１５参照）。
【００４４】
また、アドバタイズ生成部１１１は、アドバタイズ文書を生成した後、ＵＤＰマルチキ
ャストで当該アドバタイズ文書を送信するようにＵＤＰマルチキャスト送信部１１７に依
頼すると共に、タイマー管理部１０１にサブスクライブ文書受信待ち時間を開始するよう
に依頼する。
【００４５】
機器情報記憶部１１２は、クライアント１０の機器情報（例えば、クライアント１０の
機能を示す情報）を記憶するものである。機器情報記憶部１１２は、必要に応じて、記憶
している機器情報をアドバタイズ生成部１１１に提供する。
【００４６】
鍵情報取得部１１３は、サブスクライブ処理部１１５によって解析された署名付きサブ
スクライブ文書から、稼動サーバの公開鍵及び乱数（鍵情報）を取得するものである。鍵
情報取得部１１３は、取得した鍵情報を署名算出部１０７に送信する。
【００４７】
署名取得部１１４は、サブスクライブ処理部１１５によって解析された署名付きサブス
クライブ文書から、署名を取得するものである。署名取得部１１４は、取得した署名を署
名比較部１０８に送信する。
【００４８】
サブスクライブ処理部１１５は、ＵＤＰユニキャスト受信部１１６を介して稼動サーバ
から受信した署名付きサブスクライブ文書を解析して、稼動サーバの公開鍵及び乱数（鍵
情報）を鍵情報取得部１１３に送信し、署名を署名取得部１１４に送信し、サブスクライ
ブ文書自体をサブスクライブ保存部１０９に送信するものである。
【００４９】
ＵＤＰユニキャスト受信部１１６は、ＵＤＰユニキャストで複数の稼動サーバの各々か
ら送信された署名付きサブスクライブ文書を受信してサブスクライブ処理部１１５に送信
するものである。
【００５０】
ＵＤＰマルチキャスト送信部１１７は、アドバタイズ生成部１１１からの依頼に応じて
、ＵＤＰマルチキャストでアドバタイズ文書を送信するものである。
【００５１】
図３に示すように、本実施形態に係る通信システムにおけるサーバ２０は、主な機能と
して、起動処理部２０１と、乱数生成部２０２と、鍵情報記憶部２０３と、認証情報生成
部２０４と、ＵＤＰユニキャスト送信部２０５と、ＵＤＰマルチキャスト送信部２０６と
、サブスクライブ生成部２０７と、サーバ情報記憶部２０８と、署名算出部２０９と、鍵
情報取得部２１０と、署名比較部２１１と、署名取得部２１２と、新規サーバ情報取得部
２１３と、受信文書処理部２１４と、ＵＤＰユニキャスト受信部２１５と、ＵＤＰマルチ
キャスト受信部２１６と、接続サーバ選択部２１７と、リダイレクト生成部２１８と、接
続管理部２１９と、ＴＣＰサーバ２２０とを具備している。
【００５２】
起動処理部２０１は、サーバ２０が起動した際に必要な起動処理を行うものである。例
えば、起動処理部２０１は、署名の算出に必要なサーバ２０の乱数を生成するように乱数
生成部２０２に依頼し、サブスクライブ文書を生成するようにサブスクライブ生成部２０
７に依頼する。
【００５３】
乱数生成部２０２は、起動処理部２０１からの依頼に応じて、サーバ２０の乱数を生成
するものである。乱数生成部２０２は、生成したサーバ２０の乱数を鍵情報記憶部２０３
に格納する。
【００５４】
鍵情報記憶部２０３は、サーバ２０の公開鍵と、サーバ２０の秘密鍵と、乱数生成部２
０２によって生成されたサーバ２０の乱数とを記憶するものである。
【００５５】
認証情報生成部２０４は、新規サーバからのサブスクライブ文書を受信した受信文書処
理部２１４からの依頼に応じて、サーバ２０の公開鍵及び乱数を含む認証情報を生成する
ものである。認証情報生成部２０４は、ＵＤＰユニキャスト送信部２０５に対して、生成
した認証情報をＵＤＰユニキャストで当該新規サーバに対して送信するように依頼する。
【００５６】
ＵＤＰユニキャスト送信部２０５は、サブスクライブ生成部２０７や認証情報生成部２
０４からの依頼に応じて、ＵＤＰユニキャストで、署名付きサブスクライブ文書や認証情
報を、新規サーバ又は新規クライアントに送信するものである。
【００５７】
ＵＤＰマルチキャスト送信部２０６は、サブスクライブ生成部２０７からの依頼に応じ
て、ＵＤＰマルチキャストでサブスクライブ文書（署名無しサブスクライブ文書）を送信
するものである。
【００５８】
サブスクライブ生成部２０７は、起動処理部２０１又は受信文書処理部２１４からの依
頼に応じて、サブスクライブ文書を生成するものである。
【００５９】
起動処理部２０１からの依頼を受けた場合、サブスクライブ生成部２０７は、サーバ情
報記憶部２０８から取得したサーバ情報（例えば、サーバ２０の機能を示す情報）に基づ
いてサブスクライブ文書（署名無しサブスクライブ文書）を生成し、ＵＤＰマルチキャス
ト送信部２０６に対して、ＵＤＰマルチキャストでサブスクライブ文書を送信するように
依頼する。
【００６０】
また、受信文書処理部２１４からの依頼を受けた場合、サブスクライブ生成部２０７は
、サーバ情報記憶部２０８から取得したサーバ情報と鍵情報記憶部２０３から取得したサ
ーバ２０の公開鍵及び乱数と署名算出部２０９から取得した署名とに基づいてサブスクラ
イブ文書（署名付きサブスクライブ文書）を生成し、ＵＤＰユニキャスト送信部２０５に
対して、ＵＤＰユニキャストで、サブスクライブ文書を、稼動サーバ又は新規クライアン
トに送信するように依頼する。
【００６１】
サーバ情報記憶部２０８は、サーバ２０の機能を示すサーバ情報を記憶するものである
。
【００６２】
署名算出部２０９は、鍵情報取得部２１０からの依頼に応じて、鍵情報取得部２１０に
よって取得された通信相手（新規サーバや新規クライアントや稼動サーバ）の公開鍵及び
乱数と、鍵情報記憶部２０３によって記憶されているサーバ２０の秘密鍵及び乱数とを用
いて、署名を算出するものである。なお、具体的な署名の算出方法については後述する。
【００６３】
また、署名算出部２０９は、新規クライアント又は稼動サーバの公開鍵及び乱数と、サ
ーバ２０の秘密鍵及び乱数とを用いて生成した署名をサブスクライブ生成部２０７に提供
する。
【００６４】
一方、署名算出部２０９は、新規サーバの公開鍵及び乱数と、サーバ２０の秘密鍵及び
乱数とを用いて生成した署名を署名比較部２１１に提供する。
【００６５】
鍵情報取得部２１０は、受信文書処理部２１４から通信相手（新規サーバや新規クライ
アントや稼動サーバ）の公開鍵及び乱数を取得し、署名算出部２０９に対して署名を算出
するように依頼するものである。
【００６６】
署名比較部２１１は、署名取得部２１２からの依頼に応じて、署名算出部２０９によっ
て算出された署名と、署名取得部２１２によって取得された署名とを比較して、新規サー
バから受信した署名付きサブスクライブ文書の正当性について判断するものである。
【００６７】
受信した署名付きサブスクライブ文書が正当な文書であると判断された場合、署名比較
部２１１は、接続サーバ選択部２１７に対して、サーバ２０とクライアント１０との間の
接続を、新規サーバとクライアント１０との間の接続に切り替えるか否かについて判断す
るように依頼する。
【００６８】
受信した署名付きサブスクライブ文書が正当な文書でないと判断された場合、署名比較
部２１１は、かかる署名付きサブスクライブ文書を破棄する。
【００６９】
署名取得部２１２は、受信文書処理部２１４から、署名付きサブスクライブ文書に付加
されていた署名を取得するものである。署名取得部２１２は、署名比較部２１１に対して
、取得した署名と署名算出部２０９によって算出された署名とを比較するように依頼する
ものである。
【００７０】
新規サーバ情報取得部２１３は、受信文書処理部２１４から、新規サーバについての情
報（例えば、新規サーバの機能を示す情報）を取得するものである。新規サーバ情報取得
部２１３は、必要に応じて、新規サーバについての情報を接続サーバ選択部２１７に送信
する。
【００７１】
受信文書処理部２１４は、ＵＤＰユニキャスト受信部２１５及びＵＤＰマルチキャスト
受信部２１６によって受信された文書（サブスクライブ文書やアドバタイズ文書や認証情
報等）に対して所定の処理を施すものである。
【００７２】
また、受信文書処理部２１４は、接続管理部２１９から接続中のクライアントの数を取
得しており、１つ以上のクライアントが接続されていない場合、新規サーバからＵＤＰマ
ルチキャストで送信されたサブスクライブ文書（署名無しサブスクライブ文書）を破棄す
る。
【００７３】
また、受信文書処理部２１４は、新規クライアントからＵＤＰマルチキャストで送信さ
れたアドバタイズ文書を受信した場合、受信したアドバタイズ文書に含まれている新規ク
ライアントの公開鍵及び乱数を取得して鍵情報取得部２１０に送信することによって、署
名を算出するように依頼する。
【００７４】
また、受信文書処理部２１４は、新規サーバから、署名無しサブスクライブ文書を受信
した場合、認証情報生成部２０４に対して認証情報を生成するように依頼する。
【００７５】
また、受信文書処理部２１４は、新規サーバから、署名付きサブスクライブ文書を受信
した場合、受信した署名付きサブスクライブ文書に含まれている新規サーバの公開鍵及び
乱数を取得して鍵情報取得部２１０に送信することによって、署名を算出するように依頼
する。また、受信文書処理部２１４は、受信した署名付きサブスクライブ文書に含まれて
いる署名を署名取得部２１２に送信する。
【００７６】
ＵＤＰユニキャスト受信部２１５は、ネットワークを介してサーバ又はクライアントか
らＵＤＰユニキャストで送信された文書（署名付きサブスクライブ文書や認証情報等）を
受信して、受信文書処理部２１４に送信するものである。
【００７７】
ＵＤＰマルチキャスト受信部２１６は、ネットワークを介してサーバ又はクライアント
からＵＤＰマルチキャストで送信された文書（署名無しサブスクライブ文書やアドバタイ
ズ文書等）を受信して、受信文書処理部２１４に送信するものである。
【００７８】
接続サーバ選択部２１７は、署名比較部２１１からの依頼に応じて、新規サーバ情報取
得部２１３から取得した新規サーバについての情報（サブスクライブ文書によって通知さ
れた新規サーバの機能）と、サーバ情報記憶部２０８に記憶されているサーバ情報（サー
バ２０の機能）とを比較して、サーバ２０とクライアント１０との間の接続を、新規サー
バとクライアント１０との間の接続に切り替えるか否かについて判断するものである。
【００７９】
接続サーバ選択部２１７は、新規サーバの方が稼動サーバよりも高機能であると判断し
た場合、リダイレクト生成部２１８に対して、上述の接続の切り替えを行うためのリダイ
レクト文書を生成するように依頼する。
【００８０】
例えば、接続サーバ選択部２１７は、新規サーバの機能（「ｆｅａｔｕｒｅｓ＝」）の
数がサーバ２０の機能の数よりも多い場合、上述の接続を切り替えるように判断する。
【００８１】
また、接続サーバ選択部２１７は、新規サーバの機能の数とサーバ２０の機能の数が同
じである場合、新規サーバにおけるＨＣＳＰＣ接続数（新規サーバにおけるクライアント
との接続数：「ｃｏｎｎｅｃｔｅｄ＝」）がサーバ２０におけるＨＣＳＰＣ接続数（サー
バ２０におけるクライアントとの接続数）よりも多い場合、上述の接続を切り替えるよう
に判断してもよい。
【００８２】
また、接続サーバ選択部２１７は、新規サーバの機能の数とサーバ２０の機能の数が同
じで、かつ、新規サーバのＨＣＳＰＣ接続数とサーバ２０のＨＣＳＰＣ接続数が同じ場合
、新規サーバにおけるＨＣＳＰＣ識別子（新規サーバを識別する識別子）の値がサーバ２
０におけるＨＣＳＰＣ識別子（サーバ２０を識別する識別子）の値よりも小さい場合（Ｈ
ＣＳＰＣ識別子を文字リテラルとした場合）、上述の接続を切り替えるように判断しても
よい。
【００８３】
リダイレクト生成部２１８は、接続サーバ選択部２１７からの依頼に応じて、サーバ２
０との間で接続しているクライアント１０に対して送信するためのリダイレクト文書を生
成して、ＴＣＰサーバ２２０に対してリダイレクト文書を送信するように依頼する。
【００８４】
接続管理部２１９は、サーバ２０のクライアントとの間の接続状態を管理するものであ
る。接続管理部２１９は、必要に応じて、かかる接続状態を、受信文書処理部２１４や接
続サーバ選択部２１７に提供する。
【００８５】
ＴＣＰサーバ２２０は、接続中のクライアント１０との間で文書の送受信を行うもので
ある。
（本発明の第１の実施形態に係る通信方法）
第１に、図４乃至図１２を参照して、本発明の第１の実施形態に係る通信システムにお
いて、新規サーバＢが、ネットワークに接続されている複数の稼動サーバの中から稼動サ
ーバＡを選択して接続する動作について説明する。
【００８６】
図４に示すように、ステップＳ１００１において、新規サーバＢが、起動する。ここで
、図５を参照して、新規サーバＢのステップＳ１００１における動作について詳述する。
【００８７】
図５に示すように、ステップＳ１００１ａにおいて、起動処理部２０１が、新規サーバ
Ｂの乱数Ｂを生成するように乱数生成部２０２に依頼し、サブスクライブ文書を生成する
ようにサブスクライブ生成部２０７に依頼する。
【００８８】
ステップＳ１００１ｂにおいて、乱数生成部２０２が、新規サーバＢの乱数Ｂを生成し
、ステップＳ１００１ｃにおいて、サブスクライブ生成部２０７が、サーバ情報記憶部２
０８から取得したサーバ情報に基づいてサブスクライブ文書（署名無しサブスクライブ文
書）を生成し、ＵＤＰマルチキャスト送信部２０６に対して、ＵＤＰマルチキャストでサ
ブスクライブ文書を送信するように依頼する。なお、図６に、ここで生成されるサブスク
ライブ文書の一例を示す。
【００８９】
次に、図４に示すように、ステップＳ１００２において、新規サーバＢのＵＤＰマルチ
キャスト送信部２０６が、生成されたサブスクライブ文書を、ＵＤＰマルチキャストで送
信する。
【００９０】
ステップＳ１００３において、稼動サーバＡは、かかるサブスクライブ文書を受信する
。ここで、図７を参照して、稼動サーバＡのステップＳ１００３における動作について詳
述する。
【００９１】
図７に示すように、ステップＳ１００３ａにおいて、受信文書処理部２１４は、接続管
理部２１９から取得した接続中のクライアントの数を参照して、接続中のクライアントが
存在するか否かについて判定する。
【００９２】
接続中のクライアントが存在しないと判定された場合、ステップＳ１００３ｅにおいて
、受信文書処理部２１４は、かかるサブスクライブ文書を破棄する。
【００９３】
一方、接続中のクライアントが存在すると判定された場合、受信文書処理部２１４は、
認証情報生成部２０４に対して認証情報を生成するように依頼する。これに応じて、認証
情報生成部２０４は、ステップＳ１００３ｂ及びＳ１００３ｃにおいて、鍵情報記憶部２
０３から、稼動サーバＡの乱数Ａ及び公開鍵Ａを取得し、ステップＳ１００３ｄにおいて
、取得した稼動サーバＡの乱数Ａ及び公開鍵Ａに基づいて認証情報を生成する。
【００９４】
なお、図８に、ここで生成される認証情報の一例を示す。図８において、「ｖｅｃｔｏ
ｒ＝」が、稼動サーバＡの公開鍵Ａに該当し、「ｖａｌｕｅ＝」が、稼動サーバＡの乱数
Ａに該当する。
【００９５】
次に、図４に示すように、ステップＳ１００４において、稼動サーバＡのＵＤＰユニキ
ャスト送信部２０５が、稼動サーバＡの乱数Ａ及び公開鍵Ａを含む認証情報を、ＵＤＰユ
ニキャストで新規サーバＡに対して送信する。
【００９６】
ステップＳ１００５において、新規サーバＢは、かかる認証情報を受信する。ここで、
図９を参照して、新規サーバＢのステップＳ１００５における動作について詳述する。
【００９７】
図９に示すように、ステップＳ１００５ａにおいて、受信文書処理部２１４によって署
名の算出を依頼された署名算出部２０９は、ＵＤＰユニキャスト受信部２１５によって受
信された認証情報から、稼動サーバＡの公開鍵Ａ及び乱数Ａを取得する。
【００９８】
ステップＳ１００５ｂにおいて、署名算出部２０９は、鍵情報記憶部２０３から、新規
サーバＢの秘密鍵Ｂ及び乱数Ｂを取得する。
【００９９】
ステップＳ１００５ｃにおいて、署名算出部２０９は、稼動サーバＡの公開鍵Ａ及び乱
数Ａと新規サーバＢの秘密鍵Ｂ及び乱数Ｂとを用いて生成される検証鍵（稼動サーバＡと
新規サーバＢとの間の共通鍵）を用いて署名を算出する。例えば、検証鍵は、以下のよう
に算出されるものとする。
【０１００】
例えば、稼動サーバＡの秘密鍵を「ｓＡ」とし、新規サーバＢの秘密鍵を「ｓＢ」とし
、稼動サーバＡの公開鍵を「ｖＡ」とし、新規サーバＢの公開鍵を「ｖＢ」とし、稼動サ
ーバＡによって算出される検証鍵を「ＫＡＢ」とし、新規サーバＢによって算出される検
証鍵を「ＫＢＡ」とする。
【０１０１】
ここで、「ｖＡ」及び「ｖＢ」を同じ集合に属する任意の元とした場合、後述する（式
１）乃至（式４）において「ＫＡＢ＝ＫＢＡ」が成り立つ関数を「ｆ：秘密鍵を作る関数
」及び「Ｆ：検証鍵を作る関数」と定義する。
【０１０２】
かかる場合、署名算出部２０９は、以下の（式１）乃至（式４）によって、検証鍵を算
出することができる。
ｓＡ＝ｆ（ｖＡ）…（式１）
ｓＢ＝ｆ（ｖＢ）…（式２）
ＫＡＢ＝Ｆ（ｓＡ,ｖＢ）…（式３）
ＫＢＡ＝Ｆ（ｓＢ,ｖＡ）…（式４）
なお、稼動サーバＡ及び新規サーバＢは、予め（式１）及び（式２）による演算をそれ
ぞれ行っており、かかる演算結果をそれぞれ秘密鍵「ｓＡ」及び「ｓＢ」として予め保存
しているものとする。
【０１０３】
かかる場合、稼動サーバＡの署名算出部２０９によって稼動サーバＡの公開鍵「ｖＡ」
と秘密鍵「ｓＡ」と新規サーバＢの公開鍵「ｖＢ」とを用いて算出された検証鍵「ＫＡＢ
」は、新規サーバＢの署名算出部２０９によって新規サーバＢの公開鍵「ｖＢ」と秘密鍵
「ｓＢ」と稼動サーバＡの公開鍵「ｖＡ」とを用いて算出された検証鍵「ＫＢＡ」と同じ
値になる。
【０１０４】
そして、署名算出部２０９は、算出した検証鍵と、稼動サーバＡの乱数Ａと、新規サー
バＢの乱数Ｂとを、ハッシュ関数に入力することによって署名を算出する。
【０１０５】
ステップＳ１００５ｄにおいて、受信文書処理部２１４によってサブスクライブ文書の
生成を依頼されたサブスクライブ生成部２０７は、サーバ情報記憶部２０８から取得した
サーバ情報と鍵情報記憶部２０３から取得した新規サーバＢの公開鍵Ｂ及び乱数Ｂと署名
算出部２０９から取得した署名とに基づいて署名付きサブスクライブ文書を生成し、ＵＤ
Ｐユニキャスト送信部２０５に対して、ＵＤＰユニキャストで、署名付きサブスクライブ
文書を、稼動サーバＡに送信するように依頼する。
【０１０６】
なお、図１０に、ここで生成される署名付きサブスクライブ文書の一例を示す。図１０
において、「ｖｅｃｔｏｒ＝」が、新規サーバＢの公開鍵Ｂに該当し、「ｖａｌｕｅ＝」
が、新規サーバＢの乱数Ｂに該当し、「ｓｉｇｎａｔｕｒｅ＝」が、署名に該当する。
【０１０７】
次に、図４に示すように、ステップＳ１００６において、新規サーバＢのＵＤＰユニキ
ャスト送信部２０５が、新規サーバＢの公開鍵Ｂ及び乱数Ｂを含む署名付きサブスクライ
ブ文書を、ＵＤＰユニキャストで稼動サーバＡに対して送信する。
【０１０８】
ステップＳ１００７において、稼動サーバＡは、かかる署名付きサブスクライブ文書を
受信する。ここで、図１１を参照して、稼動サーバＡのステップＳ１００７における動作
について詳述する。
【０１０９】
図１１に示すように、ステップＳ１００７ａにおいて、受信文書処理部２１４は、受信
した署名付きサブスクライブ文書に含まれている新規サーバＢの公開鍵Ｂ及び乱数Ｂを取
得して鍵情報取得部２１０に送信することによって、署名を算出するように依頼する。ま
た、受信文書処理部２１４は、受信した署名付きサブスクライブ文書に含まれている署名
を署名取得部２１２に送信する。
【０１１０】
ステップＳ１００７ｂにおいて、署名算出部２０９は、鍵情報記憶部２０３から、稼動
サーバＡの秘密鍵Ａ及び乱数Ａを取得する。
【０１１１】
ステップＳ１００７ｃにおいて、署名算出部２０９は、上述のステップＳ１００５と同
様の方法で、新規サーバＢの公開鍵Ｂ及び乱数Ｂと稼動サーバＡの秘密鍵Ａ及び乱数Ａと
を用いて生成される検証鍵（稼動サーバＡと新規サーバＢとの間の共通鍵）を用いて署名
を算出する。
【０１１２】
ステップＳ１００７ｄにおいて、署名比較部２１１は、署名取得部２１２によって取得
された署名と署名算出部２０９によって算出された署名とが一致するか否かについて判定
する。
【０１１３】
両者が一致しないと判定した場合、ステップＳ１００７ｇにおいて、署名比較部２１１
は、受信した署名付きサブスクライブ文書を破棄する。
【０１１４】
一方、両者が一致すると判定した場合、ステップＳ１００７ｅにおいて、接続先サーバ
選択部２１７は、新規サーバＢの方が稼動サーバＡよりも高機能であるか否かについて判
断する。
【０１１５】
高機能であると判断された場合、ステップＳ１００７ｆにおいて、リダイレクト生成部
２１８が、接続サーバ選択部２１７からの依頼に応じて、サーバ２０との間で接続してい
るクライアント１０に対して送信するためのリダイレクト文書を生成する。なお、図１２
に、ここで生成されるリダイレクト文書の一例を示す。
【０１１６】
次に、図４に示すように、稼動サーバＡのＴＣＰサーバ２２０が、クライアント１０に
対してリダイレクト文書を送信することによって、稼動サーバＡとクライアント１０との
間の接続を、新規サーバＢとクライアント１０との間の接続に切り替える。
【０１１７】
第２に、図１３乃至図１８を参照して、本発明の第１の実施形態に係る通信システムに
おいて、新規クライアントＣが、ネットワークに接続されている複数の稼動サーバの中か
ら稼動サーバ＃１を選択して接続する動作について説明する。
【０１１８】
図１３に示すように、ステップＳ２００１において、新規クライアントＣが、起動する
。ここで、図１４を参照して、新規クライアントＣのステップＳ２００１における動作に
ついて詳述する。
【０１１９】
図１４に示すように、ステップＳ２００１ａにおいて、起動処理部１０３が、新規クラ
イアントＣの乱数Ｃを生成するように乱数生成部１０４に依頼し、アドバタイズ文書を生
成するようにアドバタイズ生成部１１１に依頼する。
【０１２０】
ステップＳ２００１ｂにおいて、乱数生成部１０４が、新規クライアントＣの乱数Ｃを
生成し、ステップＳ２００１ｃにおいて、アドバタイズ生成部１１１が、機器情報記憶部
１１２に格納されている機器情報に、鍵情報記憶部１０６に格納されている新規クライア
ントＣの公開鍵Ｃ及び乱数Ｃを付加することによって、アドバタイズ文書を生成する。な
お、図１５に、ここで生成されるアドバタイズ文書の一例を示す。
【０１２１】
ステップＳ２１１０ｄにおいて、タイマー管理部１０１は、タイマーを設定することに
よって、稼動サーバ＃１からのサブスクライブ文書の受信を待つためのサブスクライブ文
書受信待ち時間を開始する。
【０１２２】
次に、図１３に示すように、ステップＳ２００２において、新規クライアントＣのＵＤ
Ｐマルチキャスト送信部１１７が、新規クライアントＣの公開鍵Ｃ及び乱数Ｃを含むアド
バタイズ文書を、ＵＤＰマルチキャストで送信する。
【０１２３】
ステップＳ２００３及びＳ２００５において、稼動サーバ＃１及び＃２は、それぞれ、
上述のアドバタイズ文書を受信する。なお、稼動サーバ＃１のステップＳ２００３におけ
る動作と稼動サーバ＃２のステップＳ２００５における動作は同様であるため、図１６を
参照して、稼動サーバ＃１のステップＳ２００３における動作について詳述する。
【０１２４】
図１６に示すように、ステップＳ２００３ａにおいて、受信文書処理部２１４によって
署名の算出を依頼された署名算出部２０９は、ＵＤＰユニキャスト受信部２１５によって
受信されたアドバタイズ文書から、新規クライアントＣの公開鍵Ｃ及び乱数Ｃを取得する
。
【０１２５】
ステップＳ２００３ｂにおいて、署名算出部２０９は、鍵情報記憶部２０３から、稼動
サーバ＃１の秘密鍵＃１及び乱数＃１を取得する。
【０１２６】
ステップＳ２００３ｃにおいて、署名算出部２０９は、上述のステップＳ１００５ｃと
同様の方法で、新規クライアントＣの公開鍵Ｃ及び乱数Ｃと稼動サーバ＃１の秘密鍵＃１
及び乱数＃１とを用いて生成される検証鍵（新規クライアントＣと稼動サーバ＃１との間
の共通鍵）を用いて署名を算出する。
【０１２７】
ステップＳ２００３ｄにおいて、受信文書処理部２１４によってサブスクライブ文書の
生成を依頼されたサブスクライブ生成部２０７は、サーバ情報記憶部２０８から取得した
サーバ情報と鍵情報記憶部２０３から取得した稼動サーバ＃１の公開鍵＃１及び乱数＃１
と署名算出部２０９から取得した署名とに基づいて署名付きサブスクライブ文書を生成し
、ＵＤＰユニキャスト送信部２０５に対して、ＵＤＰユニキャストで、署名付きサブスク
ライブ文書を、新規クライアントＣに送信するように依頼する。なお、図１７に、ここで
生成される署名付きサブスクライブ文書の一例を示す。
【０１２８】
次に、図１３に示すように、ステップＳ２００４において、稼動サーバ＃１のＵＤＰユ
ニキャスト送信部２０５が、稼動サーバ＃１の公開鍵＃１及び乱数＃１を含む署名付きサ
ブスクライブ文書を、ＵＤＰユニキャストで新規クライアントＣに対して送信する。
【０１２９】
また、同様に、ステップＳ２００６において、稼動サーバ＃２のＵＤＰユニキャスト送
信部２０５が、稼動サーバ＃２の公開鍵＃２及び乱数＃２を含む署名付きサブスクライブ
文書を、ＵＤＰユニキャストで新規クライアントＣに対して送信する。
【０１３０】
ステップＳ２００７において、新規クライアントＣは、かかる署名付きサブスクライブ
文書を受信する。ここで、図１８を参照して、新規クライアントＣのステップＳ２００７
における動作について詳述する。
【０１３１】
図１８に示すように、ステップＳ１００７ａにおいて、ＵＤＰユニキャスト受信部１１
６は、署名付きサブスクライブ文書を受信の有無を確認する。受信した場合、本動作は、
ステップＳ２００７ｂに進み、受信しない場合、本動作は、ステップＳ２００７ｅに進む
。
【０１３２】
ステップＳ２００７ｂにおいて、サブスクライブ処理部１１５は、受信した書名付きサ
ブスクライブ文書に含まれる稼動サーバ＃１の公開鍵＃１及び乱数＃１を取得して鍵情報
取得部１１３に送信することによって、署名を算出するように依頼する。また、サブスク
ライブ処理部１１５は、受信した署名付きサブスクライブ文書に含まれている署名を署名
取得部１１４に送信する。
【０１３３】
ステップＳ２００７ｃにおいて、署名算出部１０７は、鍵情報記憶部１０６から、新規
クライアントＣの秘密鍵Ｃ及び乱数Ｃを取得する。
【０１３４】
ステップＳ２００７ｄにおいて、署名算出部１０７は、上述のステップＳ１００５と同
様の方法で、稼動サーバ＃１の公開鍵＃１及び乱数＃１と新規クライアントＣの秘密鍵Ｃ
及び乱数Ｃとを用いて生成される検証鍵（新規クライアントＣと稼動サーバ＃１との間の
共通鍵）を用いて署名を算出する。
【０１３５】
ステップＳ２００７ｅにおいて、署名比較部１０８は、署名取得部１１４によって取得
された署名と署名算出部１０７によって算出された署名とが一致するか否かについて判定
する。
【０１３６】
両者が一致すると判定した場合、ステップＳ２００７ｆにおいて、署名比較部１０８は
、受信した署名付きサブスクライブ文書を正当な文書であると判断してサブスクライブ保
存部１０９に保存する。
【０１３７】
一方、両者が一致しないと判定した場合、署名比較部１０８は、受信した署名付きサブ
スクライブ文書を保存することなく、本動作は、ステップＳ２００７ｇに進む。
【０１３８】
ステップＳ２００７ｇにおいて、タイマーハンドラ部１０２は、タイマー管理部１０１
によって管理されているサブスクライブ文書受信待ち時間が経過したか否かについて判断
する。
【０１３９】
経過していないと判断された場合、本動作は、ステップＳ２００７ａに戻り、更なるサ
ブスクライブ文書（例えば、稼動サーバ＃２からの署名付きサブスクライブ文書）の受信
を待つ。一方、経過したと判断された場合、本動作は、ステップＳ２００７ｈに進む。
【０１４０】
ステップＳ２００７ｈにおいて、接続先決定部１０５は、サブスクライブ保存部１０９
に保存されているサブスクライブ文書を参照して、最も高機能である稼動サーバ＃１を、
接続先の稼動サーバとして決定する。
【０１４１】
次に、図１３に示すように、新規クライアントＣと稼動サーバ＃１との間で、接続処理
が開始される。
【図面の簡単な説明】
【０１４２】
【図１】本発明の第１の実施形態に係る通信システムの全体構成図である。
【図２】本発明の第１の実施形態に係る通信システムにおけるクライアントの機能ブロック図である。
【図３】本発明の第１の実施形態に係る通信システムにおけるサーバの機能ブロック図である。
【図４】本発明の第１の実施形態に係る通信システムにおいて、新規サーバが登場した場合の動作を示すシーケンス図である。
【図５】本発明の第１の実施形態に係る通信システムにおいて、新規サーバが登場した場合のステップＳ１００１の動作を示すフローチャートである。
【図６】本発明の第１の実施形態に係る通信システムにおいて、新規サーバが登場した場合に送信されるサブスクライブの一例を示す図である。
【図７】本発明の第１の実施形態に係る通信システムにおいて、新規サーバが登場した場合のステップＳ１００３の動作を示すフローチャートである。
【図８】本発明の第１の実施形態に係る通信システムにおいて、新規サーバが登場した場合に送信される認証情報の一例を示す図である。
【図９】本発明の第１の実施形態に係る通信システムにおいて、新規サーバが登場した場合のステップＳ１００５の動作を示すフローチャートである。
【図１０】本発明の第１の実施形態に係る通信システムにおいて、新規サーバが登場した場合に送信される署名付きサブスクライブの一例を示す図である。
【図１１】本発明の第１の実施形態に係る通信システムにおいて、新規サーバが登場した場合のステップＳ１００７の動作を示すフローチャートである。
【図１２】本発明の第１の実施形態に係る通信システムにおいて、新規サーバが登場した場合に送信されるリダイレクトの一例を示す図である。
【図１３】本発明の第１の実施形態に係る通信システムにおいて、新規クライアントが登場した場合の動作を示すシーケンス図である。
【図１４】本発明の第１の実施形態に係る通信システムにおいて、新規クライアントが登場した場合のステップＳ２００１の動作を示すフローチャートである。
【図１５】本発明の第１の実施形態に係る通信システムにおいて、新規クライアントが登場した場合に送信されるＵＤＰアドバタイズの一例を示す図である。
【図１６】本発明の第１の実施形態に係る通信システムにおいて、新規クライアントが登場した場合のステップＳ２００３の動作を示すフローチャートである。
【図１７】本発明の第１の実施形態に係る通信システムにおいて、新規クライアントが登場した場合に送信される署名付きアドバタイズの一例を示す図である。
【図１８】本発明の第１の実施形態に係る通信システムにおいて、新規クライアントが登場した場合のステップＳ２００７の動作を示すフローチャートである。
【符号の説明】
【０１４３】
１０…クライアント、１０１…タイマー管理部、１０２…タイマーハンドラ部、１０３…
起動処理部、１０４…乱数生成部、１０５…接続先決定部、１０６…鍵情報記憶部、１０
７…署名算出部、１０８…署名比較部、１０９…サブスクライブ保存部、１１０…接続サ
ーバ情報記憶部、１１１…アドバタイズ生成部、１１２…機器情報記憶部、１１３…鍵情
報取得部、１１４…署名取得部、１１５…サブスクライブ処理部、１１６…ＵＤＰユニキ
ャスト受信部、１１７…ＵＤＰマルチキャスト送信部、２０…サーバ、２０１…起動処理
部、２０２…乱数生成部、２０３…鍵情報記憶部、２０４…認証情報生成部、２０５…Ｕ
ＤＰユニキャスト送信部、２０６…ＵＤＰマルチキャスト送信部、２０７…サブスクライ
ブ生成部、２０８…サーバ情報記憶部、２０９…署名算出部、２１０…鍵情報取得部、２
１１…署名比較部、２１２…署名取得部、２１３…新規サーバ情報取得部、２１４…受信
文書処理部、２１５…ＵＤＰユニキャスト受信部、２１６…ＵＤＰマルチキャスト受信部
、２１７…接続サーバ選択部、２１８…リダイレクト生成部、２１９…接続管理部、２２
０…ＴＣＰサーバ
【図１】
2006099515.tif 000003
【図２】
2006099515.tif 000004
【図３】
2006099515.tif 000005
【図４】
2006099515.tif 000006
【図５】
2006099515.tif 000007
【図６】
2006099515.tif 000008
【図７】
2006099515.tif 000009
【図８】
2006099515.tif 000010
【図９】
2006099515.tif 000011
【図１０】
2006099515.tif 000012
【図１１】
2006099515.tif 000013
【図１２】
2006099515.tif 000014
【図１３】
2006099515.tif 000015
【図１４】
2006099515.tif 000016
【図１５】
2006099515.tif 000017
【図１６】
2006099515.tif 000018
【図１７】
2006099515.tif 000019
【図１８】
2006099515.tif 000020