(57)【要約】【課題】プライベートＩＰアドレスを持つ異なるＬＡＮ上の機器間でピアツーピア伝送を実現し不正アクセスを許さない。【解決手段】サーバ装置は、要求発行機器から送信されるＴＣＰ接続開始信号を受信して要求発行機器との間のＴＣＰ接続を確立し、要求受諾機器の機器ＩＤと、要求発行機器のＩＰアドレス及びポート番号とを含む要求受諾機器への接続要求信号を要求発行機器から受信し、受信された接続要求信号に含まれる要求受諾機器の機器ＩＤを機器情報リストから検索し、接続要求信号に含まれる要求受諾機器の機器ＩＤと一致した機器ＩＤを含む機器情報の組に係る機器を要求受諾機器として識別し、これに係る機器情報の組に含まれるＩＰアドレス及びポート番号を要求受諾機器のＩＰアドレス及びポート番号として識別し、受信された接続要求信号に含まれる要求発行機器のＩＰアドレス及びポート番号を含む第２の接続要求信号を応答信号として送信する。【選択図】図２
2005236728.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムにおいて設けられ、上記要求発行機器から上記要求受諾機器への接続要求信号を転送するサーバ装置において、
上記複数の機器にそれぞれ関連付けられたＩＰアドレス及びポート番号、並びに上記各機器の機器ＩＤからなる上記各機器に係る機器情報の組を含む機器情報リストを格納するための機器情報格納手段を備え、
上記要求受諾機器に係る機器情報の組を含みかつ上記要求受諾機器から定期的に送信される機器登録信号を受信し、上記受信された機器登録信号に含まれる上記要求受諾機器に係る機器情報の組を上記機器情報格納手段に格納し、
上記要求発行機器から送信される第１のＴＣＰ接続開始信号を受信することにより上記要求発行機器との間の第１のＴＣＰ接続を確立し、
上記要求受諾機器の機器ＩＤと、上記要求発行機器に関連付けられたＩＰアドレス及びポート番号とを含む上記要求受諾機器への第１の接続要求信号を上記第１のＴＣＰ接続を用いて上記要求発行機器から受信し、
上記受信された第１の接続要求信号に含まれる上記要求受諾機器の機器ＩＤを上記機器情報リストから検索し、上記機器情報リスト上で、上記第１の接続要求信号に含まれる要求受諾機器の機器ＩＤと一致した機器ＩＤを含む機器情報の組に係る機器を上記要求受諾機器として識別し、上記機器情報リスト上で、上記識別された要求受諾機器に係る機器情報の組に含まれるＩＰアドレス及びポート番号を上記要求受諾機器に関連付けられたＩＰアドレス及びポート番号として識別し、
上記識別された要求受諾機器に対して、上記識別されたＩＰアドレス及びポート番号を宛先として、上記受信された第１の接続要求信号に含まれる上記要求発行機器に関連付けられたＩＰアドレス及びポート番号を含む第２の接続要求信号を、上記機器登録信号に対する応答信号として送信することを特徴とするサーバ装置。
【請求項２】
上記サーバ装置は、
上記識別された要求受諾機器に係る機器情報の組に含まれるＩＰアドレス及びポート番号を上記要求受諾機器に関連付けられたＩＰアドレス及びポート番号として識別した後であって、かつ上記識別された要求受諾機器に上記第２の接続要求信号を送信する前に、上記要求受諾機器に第３の接続要求信号を送信し、上記第３の接続要求信号に対する応答信号として第２のＴＣＰ接続開始信号を上記要求受諾機器から受信することにより上記要求受諾機器との間において第２のＴＣＰ接続を確立し、
上記確立された第２のＴＣＰ接続を用いて上記要求受諾機器に上記第２の接続要求信号を送信することを特徴とする請求項１記載のサーバ装置。
【請求項３】
上記第１の接続要求信号は、上記要求受諾機器のパスワード情報をさらに含み、
上記サーバ装置は、上記第１の接続要求信号に含まれた上記パスワード情報を上記第２の接続要求信号に付加して送信することを特徴とする請求項２記載のサーバ装置。
【請求項４】
上記サーバ装置は、
送受信する信号を暗号化しかつ復号化するための第１及び第２の通信用共通鍵を生成し、上記第１の通信用共通鍵を用いて受信する信号の復号化を実行し、上記第２の通信用共通鍵を用いて送信する信号の暗号化を実行する第１の暗号通信手段と、上記サーバ装置の正当性を証明するためのサーバ証明書情報を格納した証明書情報格納手段とを備え、
上記第１の接続要求信号を受信する前に、上記要求発行機器に上記サーバ証明書情報を送信し、
上記要求発行機器から、上記サーバ証明書情報に応答して生成された第１の共通鍵作成情報を上記第１のＴＣＰ接続を用いて受信し、上記第１の共通鍵作成情報に応答して上記第１の暗号通信手段により第２の共通鍵作成情報を生成し、上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記第１の暗号通信手段により第１の通信用共通鍵を生成する一方、上記第２の共通鍵作成情報を上記要求発行機器に上記第１のＴＣＰ接続を用いて送信し、上記第１の通信用共通鍵と同一の通信用共通鍵を上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記要求発行機器に生成させることにより上記第１の通信用共通鍵を上記要求発行機器との間で共有し、
上記要求発行機器から、上記第１の通信用共通鍵を用いて暗号化された上記第１の接続要求信号を、上記第１のＴＣＰ接続を用いて受信し、上記受信された第１の接続要求信号を、上記第１の通信用共通鍵を用いて上記第１の暗号通信手段により復号化し、
上記第２の接続要求信号を送信する前に、上記要求受諾機器に上記サーバ証明書情報を送信し、
上記要求受諾機器から、上記サーバ証明書情報に応答して生成された第３の共通鍵作成情報を上記第２のＴＣＰ接続を用いて受信し、上記第３の共通鍵作成情報に応答して上記第１の暗号通信手段により第４の共通鍵作成情報を生成し、上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記第１の暗号通信手段により第２の通信用共通鍵を生成する一方、上記第４の共通鍵作成情報を上記要求受諾機器に上記第２のＴＣＰ接続を用いて送信し、上記第２の通信用共通鍵と同一の通信用共通鍵を上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記要求受諾機器に生成させることにより上記第２の通信用共通鍵を上記要求受諾機器との間で共有し、
上記第１の接続要求信号を受信した後であってかつ上記第２の接続要求信号を送信する前に、上記第２の通信用共通鍵を用いて上記第１の暗号通信手段により上記第２の接続要求信号を暗号化することを特徴とする請求項３記載のサーバ装置。
【請求項５】
ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムにおいて設けられ、上記サーバ装置及び上記要求受諾機器と通信する要求発行機器において、
上記サーバ装置に第１のＴＣＰ接続開始信号を送信することによって上記サーバ装置との間の第１のＴＣＰ接続を確立し、
上記要求受諾機器の機器ＩＤと上記要求発行機器に関連付けられたＩＰアドレス及びポート番号とを含む上記要求受諾機器への第１の接続要求信号を上記サーバ装置に上記第１のＴＣＰ接続を用いて送信し、
上記要求発行機器と上記要求受諾機器との間の通信を要求する通信要求信号を上記要求受諾機器から受信した後に、上記通信要求信号に応答して上記要求発行機器と上記要求受諾機器との間の通信を受諾し、上記要求受諾機器との通信を開始することを特徴とする要求発行機器。
【請求項６】
上記第１の接続要求信号は、上記要求受諾機器のパスワード情報をさらに含むことを特徴とする請求項５記載の要求発行機器。
【請求項７】
上記要求発行機器は、
送受信する信号を暗号化しかつ復号化するための第１の通信用共通鍵を生成し、上記第１の通信用共通鍵を用いて送信する信号の暗号化を実行する第２の暗号通信手段と、上記サーバ装置の正当性を証明するためのサーバ証明書情報を認証する第１の証明書情報認証手段とを備え、
上記第１の接続要求信号を送信する前に、上記サーバ装置から上記サーバ証明書情報を受信し、
上記受信されたサーバ証明書情報を上記第１の証明書情報認証手段により認証し、上記受信されたサーバ証明書情報が正規であるか否かを確認し、
上記受信されたサーバ証明書情報を正規であると確認したとき、上記第２の暗号通信手段により第１の共通鍵作成情報を生成し、上記生成された第１の共通鍵作成情報を上記第１のＴＣＰ接続を用いて上記サーバ装置に送信し、上記サーバ装置から、上記第１の共通鍵作成情報に応答して生成された第２の共通鍵作成情報を上記第１のＴＣＰ接続を用いて受信し、上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記第２の暗号通信手段により第１の通信用共通鍵を生成する一方、上記第１の通信用共通鍵と同一の通信用共通鍵を上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記サーバ装置に生成させることにより上記第１の通信用共通鍵を上記サーバ装置との間で共有し、
上記第１の接続要求信号を送信する前に、上記第１の通信用共通鍵を用いて上記第２の暗号通信手段により上記第１の接続要求信号を暗号化し、
上記暗号化された上記第１の接続要求信号を上記第１のＴＣＰ接続を用いて上記サーバ装置に送信することを特徴とする請求項６記載の要求発行機器。
【請求項８】
ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムにおいて設けられ、上記サーバ装置及び上記要求発行機器と通信する要求受諾機器であって、
上記要求受諾機器の機器ＩＤを格納した機器ＩＤ格納手段を備え、
上記要求受諾機器の機器ＩＤを含む機器登録信号を上記サーバ装置に定期的に送信し、
上記要求発行機器に関連付けられたＩＰアドレス及びポート番号を含む第２の接続要求信号を、上記機器登録信号に対する応答信号として上記サーバ装置から受信し、
上記受信された第２の接続要求信号に含まれたＩＰアドレス及びポート番号が表す上記要求発行機器に、上記要求受諾機器と上記要求発行機器との間の通信を要求する通信要求信号を送信し、
上記要求発行機器が上記通信要求信号に応答して上記要求受諾機器と上記要求発行機器との間の通信を受諾した後に、上記要求発行機器との通信を開始することを特徴とする要求受諾機器。
【請求項９】
上記要求受諾機器は、
上記機器登録信号を上記サーバ装置に送信した後であって上記第２の接続要求信号を受信する前に、上記機器登録信号に対する応答信号として上記サーバ装置から第３の接続要求信号を受信し、上記第３の接続要求信号に対する応答信号として第２のＴＣＰ接続開始信号を上記サーバ装置に送信することにより上記サーバ装置との間において第２のＴＣＰ接続を確立し、
上記確立された第２のＴＣＰ接続を用いて上記サーバ装置から上記第２の接続要求信号を受信することを特徴とする請求項８記載の要求受諾機器。
【請求項１０】
上記要求受諾機器は、
上記要求受諾機器のパスワード情報を格納したパスワード情報格納手段を備え、
パスワード情報をさらに含む上記第２の接続要求信号を、上記第２のＴＣＰ接続を用いて上記サーバ装置から受信し、
上記第２の接続要求信号に含まれたパスワード情報が、上記パスワード情報格納手段に格納された上記要求受諾機器のパスワード情報と一致している場合にのみ、上記要求発行機器に上記通信要求信号を送信することを特徴とする請求項９記載の要求受諾機器。
【請求項１１】
上記要求受諾機器は、
送受信する信号を暗号化しかつ復号化するための第２の通信用共通鍵を生成し、上記第２の通信用共通鍵を用いて受信する信号の復号化を実行する第３の暗号通信手段と、上記サーバ装置の正当性を証明するためのサーバ証明書情報を認証する第２の証明書情報認証手段とを備え、
上記第２の接続要求信号を受信する前に、上記サーバ装置から上記サーバ証明書情報を受信し、
上記受信されたサーバ証明書情報を上記第２の証明書情報認証手段により認証し、上記受信されたサーバ証明書情報が正規であるか否かを確認し、
上記受信されたサーバ証明書情報を正規であると確認したとき、上記第３の暗号通信手段により第３の共通鍵作成情報を生成し、上記生成された第３の共通鍵作成情報を上記第２のＴＣＰ接続を用いて上記サーバ装置に送信し、上記サーバ装置から、上記第３の共通鍵作成情報に応答して生成された第４の共通鍵作成情報を上記第２のＴＣＰ接続を用いて受信し、上記第２の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記第３の暗号通信手段により第２の通信用共通鍵を生成する一方、上記第２の通信用共通鍵と同一の通信用共通鍵を上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記サーバ装置に生成させることにより上記第２の通信用共通鍵を上記サーバ装置との間で共有し、
上記サーバ装置から、上記第２の通信用共通鍵を用いて暗号化された上記第２の接続要求信号を、上記第２のＴＣＰ接続を用いて受信し、上記受信された第２の接続要求信号を、上記第２の通信用共通鍵を用いて上記第３の暗号通信手段により復号化することを特徴とする請求項１０記載の要求受諾機器。
【請求項１２】
請求項１記載のサーバ装置と、請求項５記載の要求発行機器及び請求項８記載の要求受諾機器を含む複数の機器とを備えた通信システムであって、
上記複数の機器と上記サーバ装置とはそれぞれネットワークに接続されたことを特徴とする通信システム。
【請求項１３】
請求項２記載のサーバ装置と、請求項５記載の要求発行機器及び請求項９記載の要求受諾機器を含む複数の機器とを備えた通信システムであって、
上記複数の機器と上記サーバ装置とはそれぞれネットワークに接続されたことを特徴とする通信システム。
【請求項１４】
請求項３記載のサーバ装置と、請求項６記載の要求発行機器及び請求項１０記載の要求受諾機器を含む複数の機器とを備えた通信システムであって、
上記複数の機器と上記サーバ装置とはそれぞれネットワークに接続されたことを特徴とする通信システム。
【請求項１５】
請求項４記載のサーバ装置と、請求項７記載の要求発行機器及び請求項１１記載の要求受諾機器を含む複数の機器とを備えた通信システムであって、
上記複数の機器と上記サーバ装置とはそれぞれネットワークに接続されたことを特徴とする通信システム。
【請求項１６】
ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムに設けられ、上記要求発行機器から上記要求受諾機器への接続要求信号を転送するサーバ装置を用いた通信方法において、上記サーバ装置は、上記複数の機器にそれぞれ関連付けられたＩＰアドレス及びポート番号、並びに上記各機器の機器ＩＤからなる上記各機器に係る機器情報の組を含む機器情報リストを格納するための機器情報格納手段を備え、
上記通信方法は、
上記要求受諾機器に係る機器情報の組を含みかつ上記要求受諾機器から定期的に送信される機器登録信号を受信し、上記受信された機器登録信号に含まれる上記要求受諾機器に係る機器情報の組を上記機器情報格納手段に格納するステップと、
上記要求発行機器から送信される第１のＴＣＰ接続開始信号を受信することにより上記要求発行機器との間の第１のＴＣＰ接続を確立するステップと、
上記要求受諾機器の機器ＩＤと、上記要求発行機器に関連付けられたＩＰアドレス及びポート番号とを含む上記要求受諾機器への第１の接続要求信号を上記第１のＴＣＰ接続を用いて上記要求発行機器から受信するステップと、
上記受信された第１の接続要求信号に含まれる上記要求受諾機器の機器ＩＤを上記機器情報リストから検索し、上記機器情報リスト上で、上記第１の接続要求信号に含まれる要求受諾機器の機器ＩＤと一致した機器ＩＤを含む機器情報の組に係る機器を上記要求受諾機器として識別し、上記機器情報リスト上で、上記識別された要求受諾機器に係る機器情報の組に含まれるＩＰアドレス及びポート番号を上記要求受諾機器に関連付けられたＩＰアドレス及びポート番号として識別するステップと、
上記識別された要求受諾機器に対して、上記識別されたＩＰアドレス及びポート番号を宛先として、上記受信された第１の接続要求信号に含まれる上記要求発行機器に関連付けられたＩＰアドレス及びポート番号を含む第２の接続要求信号を、上記機器登録信号に対する応答信号として送信するステップとを含むことを特徴とする通信方法。
【請求項１７】
上記識別するステップの後であって上記第２の接続要求信号を送信するステップの前に、上記要求受諾機器に第３の接続要求信号を送信し、上記第３の接続要求信号に対する応答信号として第２のＴＣＰ接続開始信号を上記要求受諾機器から受信することにより上記要求受諾機器との間において第２のＴＣＰ接続を確立するステップをさらに含み、
上記第２の接続要求信号を送信するステップは、上記確立された第２のＴＣＰ接続を用いて上記要求受諾機器に上記第２の接続要求信号を送信することを特徴とする請求項１６記載の通信方法。
【請求項１８】
上記第１の接続要求信号は、上記要求受諾機器のパスワード情報をさらに含み、
上記通信方法は、上記第１の接続要求信号に含まれた上記パスワード情報を上記第２の接続要求信号に付加して送信するステップをさらに含むことを特徴とする請求項１７記載の通信方法。
【請求項１９】
上記通信方法は、
上記第１の接続要求信号を受信するステップの前に、上記サーバ装置の正当性を証明するためのサーバ証明書情報を上記要求発行機器に送信するステップと、
上記要求発行機器から、上記サーバ証明書情報に応答して生成された第１の共通鍵作成情報を上記第１のＴＣＰ接続を用いて受信し、上記第１の共通鍵作成情報に応答して第２の共通鍵作成情報を生成し、上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて第１の通信用共通鍵を生成する一方、上記第２の共通鍵作成情報を上記要求発行機器に上記第１のＴＣＰ接続を用いて送信し、上記第１の通信用共通鍵と同一の通信用共通鍵を上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記要求発行機器に生成させることにより上記第１の通信用共通鍵を上記要求発行機器との間で共有するステップと、
上記要求発行機器から、上記第１の通信用共通鍵を用いて暗号化された上記第１の接続要求信号を、上記第１のＴＣＰ接続を用いて受信し、上記受信された第１の接続要求信号を、上記第１の通信用共通鍵を用いて復号化するステップと、
上記第２の接続要求信号を送信するステップの前に、上記要求受諾機器に上記サーバ証明書情報を送信するステップと、
上記要求受諾機器から、上記サーバ証明書情報に応答して生成された第３の共通鍵作成情報を上記第２のＴＣＰ接続を用いて受信し、上記第３の共通鍵作成情報に応答して第４の共通鍵作成情報を生成し、上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて第２の通信用共通鍵を生成する一方、上記第４の共通鍵作成情報を上記要求受諾機器に上記第２のＴＣＰ接続を用いて送信し、上記第２の通信用共通鍵と同一の通信用共通鍵を上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記要求受諾機器に生成させることにより上記第２の通信用共通鍵を上記要求受諾機器との間で共有するステップと、
上記第１の接続要求信号を受信するステップの後であってかつ上記第２の接続要求信号を送信するステップの前に、上記第２の通信用共通鍵を用いて上記第２の接続要求信号を暗号化するステップとをさらに含むことを特徴とする請求項１８記載の通信方法。
【請求項２０】
ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムに設けられ、上記サーバ装置及び上記要求受諾機器と通信する要求発行機器を用いた通信方法において、
上記サーバ装置に第１のＴＣＰ接続開始信号を送信することによって上記サーバ装置との間の第１のＴＣＰ接続を確立するステップと、
上記要求受諾機器の機器ＩＤと上記要求発行機器に関連付けられたＩＰアドレス及びポート番号とを含む上記要求受諾機器への第１の接続要求信号を上記サーバ装置に上記第１のＴＣＰ接続を用いて送信するステップと、
上記要求発行機器と上記要求受諾機器との間の通信を要求する通信要求信号を上記要求受諾機器から受信した後に、上記通信要求信号に応答して上記要求発行機器と上記要求受諾機器との間の通信を受諾し、上記要求受諾機器との通信を開始するステップとを含むことを特徴とする通信方法。
【請求項２１】
上記第１の接続要求信号は、上記要求受諾機器のパスワード情報をさらに含むことを特徴とする請求項２０記載の通信方法。
【請求項２２】
上記通信方法は、
上記第１の接続要求信号を送信するステップの前に、上記サーバ装置から上記サーバ証明書情報を受信するステップと、
上記受信されたサーバ証明書情報を認証し、上記受信されたサーバ証明書情報が正規であるか否かを確認するステップと、
上記受信されたサーバ証明書情報を正規であると確認したとき、第１の共通鍵作成情報を生成し、上記生成された第１の共通鍵作成情報を上記第１のＴＣＰ接続を用いて上記サーバ装置に送信し、上記サーバ装置から、上記第１の共通鍵作成情報に応答して生成された第２の共通鍵作成情報を上記第１のＴＣＰ接続を用いて受信し、上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて第１の通信用共通鍵を生成する一方、上記第１の通信用共通鍵と同一の通信用共通鍵を上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記サーバ装置に生成させることにより上記第１の通信用共通鍵を上記サーバ装置との間で共有するステップと、
上記第１の接続要求信号を送信するステップの前に、上記第１の通信用共通鍵を用いて上記第１の接続要求信号を暗号化するステップとをさらに含むことを特徴とする請求項２１記載の通信方法。
【請求項２３】
ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムに設けられ、上記サーバ装置及び上記要求発行機器と通信する要求受諾機器を用いた通信方法であって、
上記要求受諾機器の機器ＩＤを含む機器登録信号を上記サーバ装置に定期的に送信するステップと、
上記要求発行機器に関連付けられたＩＰアドレス及びポート番号を含む第２の接続要求信号を、上記機器登録信号に対する応答信号として上記サーバ装置から受信するステップと、
上記受信された第２の接続要求信号に含まれたＩＰアドレス及びポート番号が表す上記要求発行機器に、上記要求受諾機器と上記要求発行機器との間の通信を要求する通信要求信号を送信するステップと、
上記要求発行機器が上記通信要求信号に応答して上記要求受諾機器と上記要求発行機器との間の通信を受諾した後に、上記要求発行機器との通信を開始するステップとを含むことを特徴とする通信方法。
【請求項２４】
上記機器登録信号を上記サーバ装置に送信するステップの後であって上記第２の接続要求信号を受信するステップの前に、上記機器登録信号に対する応答信号として上記サーバ装置から第３の接続要求信号を受信し、上記第３の接続要求信号に対する応答信号として第２のＴＣＰ接続開始信号を上記サーバ装置に送信することにより上記サーバ装置との間において第２のＴＣＰ接続を確立するステップと、
上記確立された第２のＴＣＰ接続を用いて上記サーバ装置から上記第２の接続要求信号を受信するステップとをさらに含むことを特徴とする請求項２３記載の通信方法。
【請求項２５】
上記要求受諾機器は、上記要求受諾機器のパスワード情報を格納したパスワード情報格納手段を備え、
上記第２の接続要求信号はパスワード情報をさらに含み、
上記第２の接続要求信号に含まれたパスワード情報が、上記パスワード情報格納手段に格納された上記要求受諾機器のパスワード情報と一致している場合にのみ、上記要求発行機器に上記通信要求信号を送信することを特徴とする請求項２４記載の通信方法。
【請求項２６】
上記通信方法は、
上記第２の接続要求信号を受信するステップの前に、上記サーバ装置から上記サーバ証明書情報を受信するステップと、
上記受信されたサーバ証明書情報を認証し、上記受信されたサーバ証明書情報が正規であるか否かを確認するステップと、
上記受信されたサーバ証明書情報を正規であると確認したとき、第３の共通鍵作成情報を生成し、上記生成された第３の共通鍵作成情報を上記第２のＴＣＰ接続を用いて上記サーバ装置に送信し、上記サーバ装置から、上記第３の共通鍵作成情報に応答して生成された第４の共通鍵作成情報を上記第２のＴＣＰ接続を用いて受信し、上記第２の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて第２の通信用共通鍵を生成する一方、上記第２の通信用共通鍵と同一の通信用共通鍵を上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記サーバ装置に生成させることにより上記第２の通信用共通鍵を上記サーバ装置との間で共有するステップとをさらに含み、
上記第２の接続要求信号を受信するステップは、上記受信された第２の接続要求信号を、上記第２の通信用共通鍵を用いて復号化するステップをさらに含むことを特徴とする請求項２５記載の通信方法。
【請求項２７】
上記サーバ装置と、上記要求発行機器及び上記要求受諾機器を含む複数の機器とを備えた通信システムを用いた通信方法であって、
上記複数の機器と上記サーバ装置とはそれぞれネットワークに接続され、
請求項１６記載の通信方法に係る各ステップと、請求項２０記載の通信方法に係る各ステップと、請求項２３記載の通信方法に係る各ステップとを含むことを特徴とする通信方法。
【請求項２８】
上記サーバ装置と、上記要求発行機器及び上記要求受諾機器を含む複数の機器とを備えた通信システムを用いた通信方法であって、
上記複数の機器と上記サーバ装置とはそれぞれネットワークに接続され、
請求項１７記載の通信方法に係る各ステップと、請求項２０記載の通信方法に係る各ステップと、請求項２４記載の通信方法に係る各ステップとを含むことを特徴とする通信方法。
【請求項２９】
上記サーバ装置と、上記要求発行機器及び上記要求受諾機器を含む複数の機器とを備えた通信システムを用いた通信方法であって、
上記複数の機器と上記サーバ装置とはそれぞれネットワークに接続され、
請求項１８記載の通信方法に係る各ステップと、請求項２１記載の通信方法に係る各ステップと、請求項２５記載の通信方法に係る各ステップとを含むことを特徴とする通信方法。
【請求項３０】
上記サーバ装置と、上記要求発行機器及び上記要求受諾機器を含む複数の機器とを備えた通信システムを用いた通信方法であって、
上記複数の機器と上記サーバ装置とはそれぞれネットワークに接続され、
請求項１９記載の通信方法に係る各ステップと、請求項２２記載の通信方法に係る各ステップと、請求項２６記載の通信方法に係る各ステップとを含むことを特徴とする通信方法。
【請求項３１】
請求項１６乃至１９のうちの１つの通信方法に係る各ステップを含むことを特徴とするプログラム。
【請求項３２】
請求項２０乃至２２のうちの１つの通信方法に係る各ステップを含むことを特徴とするプログラム。
【請求項３３】
請求項２３乃至２６のうちの１つの通信方法に係る各ステップを含むことを特徴とするプログラム。
【請求項３４】
請求項２７乃至３０のうちの１つの通信方法に係る各ステップを含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＣＰ／ＩＰプロトコル群を用いた通信システムであり、例えばインターネット等のネットワークに接続された機器間においてピアツーピア接続による通信を行うためのサーバ装置と、接続要求信号を発行する要求発行機器と、接続要求信号を受諾する要求受諾機器と、サーバ装置、要求発行機器及び要求受諾機器を含む通信システムと、通信方法とに関する。本発明はさらに、上記通信方法に係る各ステップを含むプログラムに関する。
【背景技術】
【０００２】
近年、ｘＤＳＬや光ファイバケーブルなどのブロードバンド環境が整ったことにより、企業、一般家庭を問わずインターネットが急速に普及してきている。また、パーソナルコンピュータ（ＰＣ）だけでなく、テレビジョン受像機やＤＶＤレコーダなどのＡＶ機器や、エアコンディショナー、冷蔵庫のような白物家庭電気製品もインターネットに接続できるようになってきている。本願明細書では、上記インターネットなどのネットワークに接続されて通信を行う機器を、「通信機器」又は「機器」という。
【０００３】
家庭や企業内のローカルエリアネットワーク（以下、ＬＡＮという。）からインターネットに接続する場合には、ネットワーク・アドレス変換（Network Address Translation；以下、ＮＡＴという。）機能やネットワーク・アドレス・ポート変換（Network Address Port Translation；以下、ＮＡＰＴという。）機能を有するルータ装置を用いるのが一般的になっている。
【０００４】
インターネットに接続された機器間において通信を行う場合には、機器毎に一意に割り当てられたグローバルＩＰアドレスが使用される。しかし、インターネットに接続する機器の急増により、グローバルＩＰアドレスの数が不足する傾向にある。そのため、インターネットに直接接続されないＬＡＮにおいては、ＲＦＣ１９１８により規定されたＬＡＮ内においてのみ一意であるプライベートＩＰアドレスが使用されることが多い。ただし、プライベートＩＰアドレスはインターネット上においては一意ではなく、またその使用を許されていないため、プライベートＩＰアドレスを有する機器は、そのままではインターネットに接続された他の機器との通信ができない。
【０００５】
ＮＡＴもしくはＮＡＰＴ機能は、こうした問題を解決するもので、プライベートＩＰアドレスとグローバルＩＰアドレスの相互変換を行い、ＬＡＮ上においてプライベートＩＰアドレスが割り当てられた機器が、インターネット上の機器と通信を行えるようにする。
【０００６】
以下、ＮＡＰＴ機能の仕組みについて、図１０乃至図１２を用いて説明する。
【０００７】
図１０は、従来技術の通信システムのネットワーク構成の一例を示すブロック図である。図１０において、要求受諾機器１３とＮＡＰＴ機能を有するルータ装置１０４とはＬＡＮ１０６を構成し、ＬＡＮ１０６は、ルータ装置１０４のＷＡＮ側のポートにおいてインターネット（ＷＡＮ）１０５に接続されている。サーバ装置１１と、要求発行機器１２もまた、インターネット（ＷＡＮ）１０５に接続されている。
【０００８】
ここでは、いわゆるインターネットをＬＡＮとを明確に区別するために、インターネットをＷＡＮ（Wide Area Network）と表記することにする。
【０００９】
図１１は、ＮＡＰＴ機能を用いた通信の通信シーケンス図の一例である。図１１において、パケット２１は、要求受諾機器１３からルータ装置１０４に送信されるパケットであり、パケット２３は、ルータ１０４においてパケット２１に対して往路変換処理のステップＳ２２を実行することにより、ルータ装置１０４からサーバ装置１１に送信されるパケットである。同様に、パケット２５は、サーバ装置１１からルータ装置１０４に送信されるパケットであり、パケット２７は、ルータ装置１０４においてパケット２５に対して復路変換処理のステップＳ２６を実行することにより、ルータ装置１０４から要求受諾機器１３に送信されるパケットである。また、図１２は、ルータ装置１０４のＮＡＰＴテーブルの一例を示す表であり、ルータ装置１０４内のテーブルメモリ（図示せず。）には、このＮＡＰＴテーブルの内容が記憶されている。
【００１０】
ここで、図１０に示されたように、サーバ装置１１にはグローバルＩＰアドレス“１３０．７４．２３．６”が割り当てられ、ルータ装置１０４のＷＡＮ側にはグローバルＩＰアドレス“２０２．２０４．１６．１３”が割り当てられており、また要求受諾機器１３にはプライベートＩＰアドレス“１９２．１６８．１．３”が割り当てられているものとする。
【００１１】
インターネット上においての通信に用いられるＩＰパケットには、送信元（ソース）を特定する発信元ＩＰアドレスフィールド（以下、ＳＡという。）と、宛先（ディスティネーション）を指定する宛先ＩＰアドレスフィールド（以下、ＤＡという。）が含まれている。また通信プロトコルとして、ＴＣＰ（Transmission Control Protocol）やＵＤＰ（User Datagram Protocol）を使用する場合には、ＩＰパケットにさらに送信元（ソース）のポート番号である発信元ポート番号フィールド（以下、ＳＰという。）と宛先（ディスティネーション）のポート番号である宛先ポート番号フィールド（以下、ＤＰという。）が含まれる。
【００１２】
要求受諾機器１３が、サーバ装置１１とＴＣＰ通信する場合には、例えば図１１のようなパケット２１をルータ装置１０４に送信する。パケット２１には、発信元を特定するＳＡ“１９２．１６８．１．３”及びＳＰ“２０００”と、宛先を示すＤＡ“１３０．７４３．２３．６”及びＤＰ“１２００”とが含まれている。
【００１３】
ルータ装置１０４は、受信したパケット２１に往路変換処理のステップＳ２２を実行し、処理後のパケット２３を、宛先であるサーバ装置１１に送信する。往路変換処理のステップＳ２２において、ルータ装置１０４は、プライベートＩＰアドレスであるＳＡ“１９２．１６８．１．３”を、ルータ装置１０４のＷＡＮ側グローバルＩＰアドレスである“２０２．２０４．１６．１３”に置換し、同時にＳＰ“２０００”をルータ装置１０４のＷＡＮ側ポート番号“３４００”に置換する。このとき、ルータ装置１０４は、図１２のように、ＩＰアドレス“１９２．１６８．１．３”及び“２０２．２０４．１６．１３”とポート番号“２０００”及び“３４００”との組を、ＮＡＰＴテーブルに保存しておく。
【００１４】
さて、サーバ装置１１はパケット２３を受信すると、所定の応答処理のステップＳ２４を行った後、パケット２３に対する応答として、パケット２５をルータ装置１０４に送信する。パケット２５には、発信元を特定するＳＡ“１３０．７４３．２３．６”及びＳＰ“１２００”と、宛先を示すＤＡ“２０２．２０４．１６．１３”及びＤＰ“３４００”とが含まれている。
【００１５】
ルータ装置１０４は、パケット２５を受信すると、ＮＡＰＴテーブルを参照し、パケット２５に復路変換処理のステップＳ２６を実行し、処理後のパケット２７を要求受諾機器１３に送信する。復路変換処理のステップＳ２６において、ルータ装置１０４は、まずＮＡＰＴテーブルからＤＡ“２０２．２０４．１６．１３”とＤＰ“３４００”の組を参照する。ここではこの組は存在しているので、ルータ装置１０４は、パケット２５上のＤＡを“２０２．２０４．１６．１３”から“１９２．１６８．１．３”に置換し、パケット２５上のＤＰを“３４００”から“２０００”に置換する。
【００１６】
ＮＡＰＴテーブル内のデータは、その通信が行われている間中は保持され、通信が終了すると破棄される。
【００１７】
以上の動作により、ＬＡＮ内のプライベートＩＰアドレスを持つ機器からインターネット上の機器への通信を行うことができる。ただし、この場合だと、反対にインターネット上の機器からＬＡＮ内のプライベートＩＰアドレスを持つ機器への通信を開始することができない。
【００１８】
そこでこれを解決するために、静的ＮＡＰＴと呼ばれる機能がある。すなわち、予め静的なＮＡＰＴテーブルをルータ装置１０４上に設定しておく。静的なＮＡＰＴテーブルの内容は、図１２のＮＡＰＴテーブルと同様であるが、この場合ＷＡＮ側のポート番号は、設定時に未使用のポート番号を指定しなければならない。静的ＮＡＰＴ機能を用いると、例えばインターネット側の機器から、設定されたグローバルＩＰアドレスとポート番号に対してパケットを送信すると、ルータ装置１０４が図１１と同様にＩＰアドレスとポート番号の変換を行うことにより、ＬＡＮ上のプライベートＩＰアドレスを持つ要求受諾機器１３にパケットが到達することになる。これにより、インターネット上の機器からＬＡＮ内のプライベートＩＰアドレスを持つ機器への通信を行えるようになる。
【００１９】
ところで、ルータ装置１０４のグローバルＩＰアドレスは常に一定であるとは限らない。例えば、ＰＰＰ（Point-to-Point Protocol）を用いてインターネットサービスプロバイダと接続し、又はＤＨＣＰ（Dynamic Host Configuration Protocol）によりＩＰアドレスが動的に割り当てられる場合には、インターネットに接続する毎にグローバルＩＰアドレスが変わることがある。このため、接続先機器のグローバルＩＰアドレスを把握しておくのは困難となる。また静的ＮＡＰＴを用いていると、通信していない間もＬＡＮ上の機器へのアクセスが可能となるため、セキュリティが低くなってしまう。
【００２０】
こうした課題を解決するための通信システムが、特許文献１において提案されており、以下、図１０乃至図１３を用いて、特許文献１において提案されている通信システムについて説明する。
【００２１】
図１３は、図１０の通信システムの通信シーケンスの一例を示すシーケンス図である。ここで、図１０に示されたように、要求発行機器１２には、グローバルＩＰアドレスとして“８．１１７．１２．１０９”が割り当てられているものとする。また要求受諾機器１３は、一意に割り当てられた機器ＩＤを内部のメモリ（図示せず。）に格納しているものとする。
【００２２】
要求受諾機器１３は、定期的に、機器ＩＤをペイロードに持つ機器登録パケット３１を、ＵＤＰを用いてサーバ装置１１に送信する。ＵＤＰパケットである機器登録パケット３１のＳＡには、要求受諾機器１３のプライベートＩＰアドレスである“１９２．１６８．１．３”が書き込まれているが、機器登録パケット３１がルータ装置１０４を通るときに、上記説明したようにＮＡＰＴ機能によって機器登録パケット３１のＳＡとＳＰが変換され、サーバ装置１１に送信される。サーバ装置１１は、受信した機器登録パケット３１を参照し、ステップＳ３２において要求受諾機器１３の機器ＩＤ、グローバルＩＰアドレス及びポート番号の組を保存しておく。
【００２３】
要求受諾機器１３は、定期的に機器登録パケット３１をサーバ装置１１に送信するため、ルータ装置１０４のグローバルＩＰアドレスもしくはＷＡＮ側ポート番号が変更になった場合でも、ステップＳ３２や、同様のステップＳ３２Ａなどが実行されることにより、サーバ装置１１に保存された要求受諾機器１３の機器ＩＤ、グローバルＩＰアドレス及びポート番号の組は自動的に更新される。
【００２４】
一方、要求発行機器１２が要求受諾機器１３との通信を行いたい場合には、要求発行機器１２は、まずサーバ装置１１にＴＣＰ接続開始パケット３３を送信することによってサーバ装置１１とのＴＣＰ接続を確立し、接続相手である要求受諾機器１３の機器ＩＤを書き込んだ接続要求パケット３４をサーバ装置１１に送信する。サーバ装置１１は、接続要求パケット３４を受信すると、ステップＳ３５において、内部のメモリ（図示せず。）に可能している機器ＩＤのリストを参照し、接続要求パケット３４内に含まれた機器ＩＤの情報と同じ機器ＩＤの情報が存在すれば、この機器ＩＤに関連付けられているＩＰアドレス及びポート番号が示す機器に対して、ＵＤＰを用いて接続要求通知パケット３６を送信する。接続要求通知パケット３６は、機器登録パケット３１に対する応答としてルータ装置１０４に送信されるため、ルータ装置１０４においてＩＰアドレスとポート番号の変換が行われ、要求受諾機器１３に到達できる。要求受諾機器１３は、接続要求通知パケット３６を受信すると、サーバ装置１１に対してＴＣＰ接続開始パケット３７を送信することによってサーバ装置１１とのＴＣＰ接続を確立する。
【００２５】
以降、要求発行機器１２が、ＴＣＰ接続開始パケット３３により開始されたＴＣＰ接続を用いてコマンド信号３８をサーバ装置１１に送信すると、サーバ装置１１は、ＴＣＰ接続開始パケット３７により開始されたＴＣＰ接続を用いてコマンド信号３８を要求受諾機器１３に転送できるようになる。同様にして、要求受諾機器１３が、ＴＣＰ接続開始パケット３７により開始されたＴＣＰ接続を用いてサーバ装置１１にパケットを送信すると、サーバ装置１１は、ＴＣＰ接続開始パケット３３により開始されたＴＣＰ接続を用いてこのパケットを要求発行機器１２に転送する。
【００２６】
以上のようにして、サーバ装置１１を中継することにより、インターネット上のグローバルＩＰアドレスを持つ機器である要求発行機器１２と、プライベートＩＰアドレスを持つＬＡＮ上の機器である要求受諾機器１３との間において、通信を行うことができるようになる。要求発行機器１２が別のＬＡＮ上に存在し、ルータ装置を通してインターネットに接続されている場合でも、同様の動作により要求受諾機器１３との通信を行える。
【００２７】
また、特許文献２では、互いのグローバルＩＰアドレスを知らないインターネット上の機器間において直接伝送を行う、すなわちピアツーピア伝送を行うための情報処理システムが開示されている。グローバルＩＰアドレスを有するクライアント間であるパーソナルコンピュータ同士の接続をピアツーピア接続とし、その他のクライアント間の接続をサーバを経由したクライアント・サーバ型接続とさせる。ピアツーピア接続はサーバから取得した互いのグローバルＩＰアドレスに基づいて確立され、クライアント・サーバ型接続からピアツーピア型接続への一部遷移によって、サーバに対するトラフィックの一局集中を避けることができる。
【００２８】
【特許文献１】特許３４４５９８６号公報。
【特許文献２】特開２００３−２０３０２３号公報。
【発明の開示】
【発明が解決しようとする課題】
【００２９】
上記説明した特許文献１記載の通信システムは、常にサーバ装置１１経由により通信を行うため、例えば機器間において動画データのように大容量のデータを伝送しようとすると、サーバ装置１１に多大な負荷がかかるという問題があった。特に複数組の通信が同時に行われると、複数台のサーバ装置により分散処理を行っても対応できない可能性もある。
【００３０】
また、特許文献２記載の情報処理システムは、グローバルＩＰアドレスを持つ機器同士でのみピアツーピア伝送を行うようになっており、プライベートＩＰアドレスを持つＬＡＮ上の機器の場合はピアツーピア伝送を行わないようになっている。
【００３１】
本発明の目的は以上の問題点を解決し、プライベートＩＰアドレスをそれぞれ持つ異なるＬＡＮ上の機器間においてピアツーピア伝送を実現し、かつ不正アクセスを許さないサーバ装置、要求発行機器、要求受諾機器、通信システム及び通信方法を提供することにある。また、本発明の別の目的は、上記通信方法に係る各ステップを含むプログラムを提供することにある。
【課題を解決するための手段】
【００３２】
本発明の第１の態様に係るサーバ装置は、ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムにおいて設けられ、上記要求発行機器から上記要求受諾機器への接続要求信号を転送し、
上記サーバ装置は、
上記複数の機器にそれぞれ関連付けられたＩＰアドレス及びポート番号、並びに上記各機器の機器ＩＤからなる上記各機器に係る機器情報の組を含む機器情報リストを格納するための機器情報格納手段を備え、
上記要求受諾機器に係る機器情報の組を含みかつ上記要求受諾機器から定期的に送信される機器登録信号を受信し、上記受信された機器登録信号に含まれる上記要求受諾機器に係る機器情報の組を上記機器情報格納手段に格納し、
上記要求発行機器から送信される第１のＴＣＰ接続開始信号を受信することにより上記要求発行機器との間の第１のＴＣＰ接続を確立し、
上記要求受諾機器の機器ＩＤと、上記要求発行機器に関連付けられたＩＰアドレス及びポート番号とを含む上記要求受諾機器への第１の接続要求信号を上記第１のＴＣＰ接続を用いて上記要求発行機器から受信し、
上記受信された第１の接続要求信号に含まれる上記要求受諾機器の機器ＩＤを上記機器情報リストから検索し、上記機器情報リスト上で、上記第１の接続要求信号に含まれる要求受諾機器の機器ＩＤと一致した機器ＩＤを含む機器情報の組に係る機器を上記要求受諾機器として識別し、上記機器情報リスト上で、上記識別された要求受諾機器に係る機器情報の組に含まれるＩＰアドレス及びポート番号を上記要求受諾機器に関連付けられたＩＰアドレス及びポート番号として識別し、
上記識別された要求受諾機器に対して、上記識別されたＩＰアドレス及びポート番号を宛先として、上記受信された第１の接続要求信号に含まれる上記要求発行機器に関連付けられたＩＰアドレス及びポート番号を含む第２の接続要求信号を、上記機器登録信号に対する応答信号として送信することを特徴とする。
【００３３】
また、上記サーバ装置は、
上記識別された要求受諾機器に係る機器情報の組に含まれるＩＰアドレス及びポート番号を上記要求受諾機器に関連付けられたＩＰアドレス及びポート番号として識別した後であって、かつ上記識別された要求受諾機器に上記第２の接続要求信号を送信する前に、上記要求受諾機器に第３の接続要求信号を送信し、上記第３の接続要求信号に対する応答信号として第２のＴＣＰ接続開始信号を上記要求受諾機器から受信することにより上記要求受諾機器との間において第２のＴＣＰ接続を確立し、
上記確立された第２のＴＣＰ接続を用いて上記要求受諾機器に上記第２の接続要求信号を送信することを特徴とする。
【００３４】
さらに、上記サーバ装置において、
上記第１の接続要求信号は、上記要求受諾機器のパスワード情報をさらに含み、
上記サーバ装置は、上記第１の接続要求信号に含まれた上記パスワード情報を上記第２の接続要求信号に付加して送信することを特徴とする。
【００３５】
またさらに、上記サーバ装置は、
送受信する信号を暗号化しかつ復号化するための第１及び第２の通信用共通鍵を生成し、上記第１の通信用共通鍵を用いて受信する信号の復号化を実行し、上記第２の通信用共通鍵を用いて送信する信号の暗号化を実行する第１の暗号通信手段と、上記サーバ装置の正当性を証明するためのサーバ証明書情報を格納した証明書情報格納手段とを備え、
上記第１の接続要求信号を受信する前に、上記要求発行機器に上記サーバ証明書情報を送信し、
上記要求発行機器から、上記サーバ証明書情報に応答して生成された第１の共通鍵作成情報を上記第１のＴＣＰ接続を用いて受信し、上記第１の共通鍵作成情報に応答して上記第１の暗号通信手段により第２の共通鍵作成情報を生成し、上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記第１の暗号通信手段により第１の通信用共通鍵を生成する一方、上記第２の共通鍵作成情報を上記要求発行機器に上記第１のＴＣＰ接続を用いて送信し、上記第１の通信用共通鍵と同一の通信用共通鍵を上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記要求発行機器に生成させることにより上記第１の通信用共通鍵を上記要求発行機器との間で共有し、
上記要求発行機器から、上記第１の通信用共通鍵を用いて暗号化された上記第１の接続要求信号を、上記第１のＴＣＰ接続を用いて受信し、上記受信された第１の接続要求信号を、上記第１の通信用共通鍵を用いて上記第１の暗号通信手段により復号化し、
上記第２の接続要求信号を送信する前に、上記要求受諾機器に上記サーバ証明書情報を送信し、
上記要求受諾機器から、上記サーバ証明書情報に応答して生成された第３の共通鍵作成情報を上記第２のＴＣＰ接続を用いて受信し、上記第３の共通鍵作成情報に応答して上記第１の暗号通信手段により第４の共通鍵作成情報を生成し、上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記第１の暗号通信手段により第２の通信用共通鍵を生成する一方、上記第４の共通鍵作成情報を上記要求受諾機器に上記第２のＴＣＰ接続を用いて送信し、上記第２の通信用共通鍵と同一の通信用共通鍵を上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記要求受諾機器に生成させることにより上記第２の通信用共通鍵を上記要求受諾機器との間で共有し、
上記第１の接続要求信号を受信した後であってかつ上記第２の接続要求信号を送信する前に、上記第２の通信用共通鍵を用いて上記第１の暗号通信手段により上記第２の接続要求信号を暗号化することを特徴とする。
【００３６】
本発明の第２の態様に係る要求発行機器は、ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムにおいて設けられ、上記サーバ装置及び上記要求受諾機器と通信し、
上記要求発行機器は、
上記サーバ装置に第１のＴＣＰ接続開始信号を送信することによって上記サーバ装置との間の第１のＴＣＰ接続を確立し、
上記要求受諾機器の機器ＩＤと上記要求発行機器に関連付けられたＩＰアドレス及びポート番号とを含む上記要求受諾機器への第１の接続要求信号を上記サーバ装置に上記第１のＴＣＰ接続を用いて送信し、
上記要求発行機器と上記要求受諾機器との間の通信を要求する通信要求信号を上記要求受諾機器から受信した後に、上記通信要求信号に応答して上記要求発行機器と上記要求受諾機器との間の通信を受諾し、上記要求受諾機器との通信を開始することを特徴とする。
【００３７】
また、上記要求発行機器において、上記第１の接続要求信号は、上記要求受諾機器のパスワード情報をさらに含むことを特徴とする。
【００３８】
さらに、上記要求発行機器は、
送受信する信号を暗号化しかつ復号化するための第１の通信用共通鍵を生成し、上記第１の通信用共通鍵を用いて送信する信号の暗号化を実行する第２の暗号通信手段と、上記サーバ装置の正当性を証明するためのサーバ証明書情報を認証する第１の証明書情報認証手段とを備え、
上記第１の接続要求信号を送信する前に、上記サーバ装置から上記サーバ証明書情報を受信し、
上記受信されたサーバ証明書情報を上記第１の証明書情報認証手段により認証し、上記受信されたサーバ証明書情報が正規であるか否かを確認し、
上記受信されたサーバ証明書情報を正規であると確認したとき、上記第２の暗号通信手段により第１の共通鍵作成情報を生成し、上記生成された第１の共通鍵作成情報を上記第１のＴＣＰ接続を用いて上記サーバ装置に送信し、上記サーバ装置から、上記第１の共通鍵作成情報に応答して生成された第２の共通鍵作成情報を上記第１のＴＣＰ接続を用いて受信し、上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記第２の暗号通信手段により第１の通信用共通鍵を生成する一方、上記第１の通信用共通鍵と同一の通信用共通鍵を上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記サーバ装置に生成させることにより上記第１の通信用共通鍵を上記サーバ装置との間で共有し、
上記第１の接続要求信号を送信する前に、上記第１の通信用共通鍵を用いて上記第２の暗号通信手段により上記第１の接続要求信号を暗号化し、
上記暗号化された上記第１の接続要求信号を上記第１のＴＣＰ接続を用いて上記サーバ装置に送信することを特徴とする。
【００３９】
本発明の第３の態様に係る要求受諾機器は、ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムにおいて設けられ、上記サーバ装置及び上記要求発行機器と通信し、
上記要求受諾機器は、
上記要求受諾機器の機器ＩＤを格納した機器ＩＤ格納手段を備え、
上記要求受諾機器の機器ＩＤを含む機器登録信号を上記サーバ装置に定期的に送信し、
上記要求発行機器に関連付けられたＩＰアドレス及びポート番号を含む第２の接続要求信号を、上記機器登録信号に対する応答信号として上記サーバ装置から受信し、
上記受信された第２の接続要求信号に含まれたＩＰアドレス及びポート番号が表す上記要求発行機器に、上記要求受諾機器と上記要求発行機器との間の通信を要求する通信要求信号を送信し、
上記要求発行機器が上記通信要求信号に応答して上記要求受諾機器と上記要求発行機器との間の通信を受諾した後に、上記要求発行機器との通信を開始することを特徴とする。
【００４０】
また、上記要求受諾機器は、
上記機器登録信号を上記サーバ装置に送信した後であって上記第２の接続要求信号を受信する前に、上記機器登録信号に対する応答信号として上記サーバ装置から第３の接続要求信号を受信し、上記第３の接続要求信号に対する応答信号として第２のＴＣＰ接続開始信号を上記サーバ装置に送信することにより上記サーバ装置との間において第２のＴＣＰ接続を確立し、
上記確立された第２のＴＣＰ接続を用いて上記サーバ装置から上記第２の接続要求信号を受信することを特徴とする。
【００４１】
さらに、上記要求受諾機器は、
上記要求受諾機器のパスワード情報を格納したパスワード情報格納手段を備え、
パスワード情報をさらに含む上記第２の接続要求信号を、上記第２のＴＣＰ接続を用いて上記サーバ装置から受信し、
上記第２の接続要求信号に含まれたパスワード情報が、上記パスワード情報格納手段に格納された上記要求受諾機器のパスワード情報と一致している場合にのみ、上記要求発行機器に上記通信要求信号を送信することを特徴とする。
【００４２】
またさらに、上記要求受諾機器は、
送受信する信号を暗号化しかつ復号化するための第２の通信用共通鍵を生成し、上記第２の通信用共通鍵を用いて受信する信号の復号化を実行する第３の暗号通信手段と、上記サーバ装置の正当性を証明するためのサーバ証明書情報を認証する第２の証明書情報認証手段とを備え、
上記第２の接続要求信号を受信する前に、上記サーバ装置から上記サーバ証明書情報を受信し、
上記受信されたサーバ証明書情報を上記第２の証明書情報認証手段により認証し、上記受信されたサーバ証明書情報が正規であるか否かを確認し、
上記受信されたサーバ証明書情報を正規であると確認したとき、上記第３の暗号通信手段により第３の共通鍵作成情報を生成し、上記生成された第３の共通鍵作成情報を上記第２のＴＣＰ接続を用いて上記サーバ装置に送信し、上記サーバ装置から、上記第３の共通鍵作成情報に応答して生成された第４の共通鍵作成情報を上記第２のＴＣＰ接続を用いて受信し、上記第２の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記第３の暗号通信手段により第２の通信用共通鍵を生成する一方、上記第２の通信用共通鍵と同一の通信用共通鍵を上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記サーバ装置に生成させることにより上記第２の通信用共通鍵を上記サーバ装置との間で共有し、
上記サーバ装置から、上記第２の通信用共通鍵を用いて暗号化された上記第２の接続要求信号を、上記第２のＴＣＰ接続を用いて受信し、上記受信された第２の接続要求信号を、上記第２の通信用共通鍵を用いて上記第３の暗号通信手段により復号化することを特徴とする。
【００４３】
本発明の第４の態様に係る通信システムは、本発明に係る第１の態様のサーバ装置と、本発明に係る第２の態様の要求発行機器及び本発明に係る第３の態様の要求受諾機器を含む複数の機器とを備え、
上記複数の機器と上記サーバ装置とはそれぞれネットワークに接続されたことを特徴とする。
【００４４】
本発明の第５の態様に係る通信方法は、ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムに設けられ、上記要求発行機器から上記要求受諾機器への接続要求信号を転送するサーバ装置を用いた通信方法であって、上記サーバ装置は、上記複数の機器にそれぞれ関連付けられたＩＰアドレス及びポート番号、並びに上記各機器の機器ＩＤからなる上記各機器に係る機器情報の組を含む機器情報リストを格納するための機器情報格納手段を備え、
上記通信方法は、
上記要求受諾機器に係る機器情報の組を含みかつ上記要求受諾機器から定期的に送信される機器登録信号を受信し、上記受信された機器登録信号に含まれる上記要求受諾機器に係る機器情報の組を上記機器情報格納手段に格納するステップと、
上記要求発行機器から送信される第１のＴＣＰ接続開始信号を受信することにより上記要求発行機器との間の第１のＴＣＰ接続を確立するステップと、
上記要求受諾機器の機器ＩＤと、上記要求発行機器に関連付けられたＩＰアドレス及びポート番号とを含む上記要求受諾機器への第１の接続要求信号を上記第１のＴＣＰ接続を用いて上記要求発行機器から受信するステップと、
上記受信された第１の接続要求信号に含まれる上記要求受諾機器の機器ＩＤを上記機器情報リストから検索し、上記機器情報リスト上で、上記第１の接続要求信号に含まれる要求受諾機器の機器ＩＤと一致した機器ＩＤを含む機器情報の組に係る機器を上記要求受諾機器として識別し、上記機器情報リスト上で、上記識別された要求受諾機器に係る機器情報の組に含まれるＩＰアドレス及びポート番号を上記要求受諾機器に関連付けられたＩＰアドレス及びポート番号として識別するステップと、
上記識別された要求受諾機器に対して、上記識別されたＩＰアドレス及びポート番号を宛先として、上記受信された第１の接続要求信号に含まれる上記要求発行機器に関連付けられたＩＰアドレス及びポート番号を含む第２の接続要求信号を、上記機器登録信号に対する応答信号として送信するステップとを含むことを特徴とする。
【００４５】
また、上記通信方法は、
上記識別するステップの後であって上記第２の接続要求信号を送信するステップの前に、上記要求受諾機器に第３の接続要求信号を送信し、上記第３の接続要求信号に対する応答信号として第２のＴＣＰ接続開始信号を上記要求受諾機器から受信することにより上記要求受諾機器との間において第２のＴＣＰ接続を確立するステップをさらに含み、
上記第２の接続要求信号を送信するステップは、上記確立された第２のＴＣＰ接続を用いて上記要求受諾機器に上記第２の接続要求信号を送信することを特徴とする。
【００４６】
さらに、上記通信方法は、
上記第１の接続要求信号は、上記要求受諾機器のパスワード情報をさらに含み、
上記通信方法は、上記第１の接続要求信号に含まれた上記パスワード情報を上記第２の接続要求信号に付加して送信するステップをさらに含むことを特徴とする。
【００４７】
またさらに、上記通信方法は、
上記第１の接続要求信号を受信するステップの前に、上記サーバ装置の正当性を証明するためのサーバ証明書情報を上記要求発行機器に送信するステップと、
上記要求発行機器から、上記サーバ証明書情報に応答して生成された第１の共通鍵作成情報を上記第１のＴＣＰ接続を用いて受信し、上記第１の共通鍵作成情報に応答して第２の共通鍵作成情報を生成し、上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて第１の通信用共通鍵を生成する一方、上記第２の共通鍵作成情報を上記要求発行機器に上記第１のＴＣＰ接続を用いて送信し、上記第１の通信用共通鍵と同一の通信用共通鍵を上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記要求発行機器に生成させることにより上記第１の通信用共通鍵を上記要求発行機器との間で共有するステップと、
上記要求発行機器から、上記第１の通信用共通鍵を用いて暗号化された上記第１の接続要求信号を、上記第１のＴＣＰ接続を用いて受信し、上記受信された第１の接続要求信号を、上記第１の通信用共通鍵を用いて復号化するステップと、
上記第２の接続要求信号を送信するステップの前に、上記要求受諾機器に上記サーバ証明書情報を送信するステップと、
上記要求受諾機器から、上記サーバ証明書情報に応答して生成された第３の共通鍵作成情報を上記第２のＴＣＰ接続を用いて受信し、上記第３の共通鍵作成情報に応答して第４の共通鍵作成情報を生成し、上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて第２の通信用共通鍵を生成する一方、上記第４の共通鍵作成情報を上記要求受諾機器に上記第２のＴＣＰ接続を用いて送信し、上記第２の通信用共通鍵と同一の通信用共通鍵を上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記要求受諾機器に生成させることにより上記第２の通信用共通鍵を上記要求受諾機器との間で共有するステップと、
上記第１の接続要求信号を受信するステップの後であってかつ上記第２の接続要求信号を送信するステップの前に、上記第２の通信用共通鍵を用いて上記第２の接続要求信号を暗号化するステップとをさらに含むことを特徴とする。
【００４８】
本発明の第６の態様に係る通信方法は、ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムに設けられ、上記サーバ装置及び上記要求受諾機器と通信する要求発行機器を用いた通信方法であって、
上記通信方法は、
上記サーバ装置に第１のＴＣＰ接続開始信号を送信することによって上記サーバ装置との間の第１のＴＣＰ接続を確立するステップと、
上記要求受諾機器の機器ＩＤと上記要求発行機器に関連付けられたＩＰアドレス及びポート番号とを含む上記要求受諾機器への第１の接続要求信号を上記サーバ装置に上記第１のＴＣＰ接続を用いて送信するステップと、
上記要求発行機器と上記要求受諾機器との間の通信を要求する通信要求信号を上記要求受諾機器から受信した後に、上記通信要求信号に応答して上記要求発行機器と上記要求受諾機器との間の通信を受諾し、上記要求受諾機器との通信を開始するステップとを含むことを特徴とする。
【００４９】
また、上記通信方法は、上記第１の接続要求信号は、上記要求受諾機器のパスワード情報をさらに含むことを特徴とする。
【００５０】
さらに、上記通信方法は、
上記第１の接続要求信号を送信するステップの前に、上記サーバ装置から上記サーバ証明書情報を受信するステップと、
上記受信されたサーバ証明書情報を認証し、上記受信されたサーバ証明書情報が正規であるか否かを確認するステップと、
上記受信されたサーバ証明書情報を正規であると確認したとき、第１の共通鍵作成情報を生成し、上記生成された第１の共通鍵作成情報を上記第１のＴＣＰ接続を用いて上記サーバ装置に送信し、上記サーバ装置から、上記第１の共通鍵作成情報に応答して生成された第２の共通鍵作成情報を上記第１のＴＣＰ接続を用いて受信し、上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて第１の通信用共通鍵を生成する一方、上記第１の通信用共通鍵と同一の通信用共通鍵を上記第１の共通鍵作成情報及び上記第２の共通鍵作成情報に基づいて上記サーバ装置に生成させることにより上記第１の通信用共通鍵を上記サーバ装置との間で共有するステップと、
上記第１の接続要求信号を送信するステップの前に、上記第１の通信用共通鍵を用いて上記第１の接続要求信号を暗号化するステップとをさらに含むことを特徴とする。
【００５１】
本発明の第７の態様に係る通信方法は、ネットワークにそれぞれ接続された要求発行機器と要求受諾機器とを含む複数の機器と、上記ネットワークに接続されたサーバ装置とを備えた通信システムに設けられ、上記サーバ装置及び上記要求発行機器と通信する要求受諾機器を用いた通信方法であって、
上記通信方法は、
上記要求受諾機器の機器ＩＤを含む機器登録信号を上記サーバ装置に定期的に送信するステップと、
上記要求発行機器に関連付けられたＩＰアドレス及びポート番号を含む第２の接続要求信号を、上記機器登録信号に対する応答信号として上記サーバ装置から受信するステップと、
上記受信された第２の接続要求信号に含まれたＩＰアドレス及びポート番号が表す上記要求発行機器に、上記要求受諾機器と上記要求発行機器との間の通信を要求する通信要求信号を送信するステップと、
上記要求発行機器が上記通信要求信号に応答して上記要求受諾機器と上記要求発行機器との間の通信を受諾した後に、上記要求発行機器との通信を開始するステップとを含むことを特徴とする。
【００５２】
また、上記通信方法は、
上記機器登録信号を上記サーバ装置に送信するステップの後であって上記第２の接続要求信号を受信するステップの前に、上記機器登録信号に対する応答信号として上記サーバ装置から第３の接続要求信号を受信し、上記第３の接続要求信号に対する応答信号として第２のＴＣＰ接続開始信号を上記サーバ装置に送信することにより上記サーバ装置との間において第２のＴＣＰ接続を確立するステップと、
上記確立された第２のＴＣＰ接続を用いて上記サーバ装置から上記第２の接続要求信号を受信するステップとをさらに含むことを特徴とする。
【００５３】
さらに、上記通信方法において、
上記要求受諾機器は、上記要求受諾機器のパスワード情報を格納したパスワード情報格納手段を備え、
上記第２の接続要求信号はパスワード情報をさらに含み、
上記通信要求信号を送信するステップは、上記第２の接続要求信号に含まれたパスワード情報が、上記パスワード情報格納手段に格納された上記要求受諾機器のパスワード情報と一致している場合にのみ、上記要求発行機器に上記通信要求信号を送信することを特徴とする。
【００５４】
またさらに、上記通信方法は、
上記第２の接続要求信号を受信するステップの前に、上記サーバ装置から上記サーバ証明書情報を受信するステップと、
上記受信されたサーバ証明書情報を認証し、上記受信されたサーバ証明書情報が正規であるか否かを確認するステップと、
上記受信されたサーバ証明書情報を正規であると確認したとき、第３の共通鍵作成情報を生成し、上記生成された第３の共通鍵作成情報を上記第２のＴＣＰ接続を用いて上記サーバ装置に送信し、上記サーバ装置から、上記第３の共通鍵作成情報に応答して生成された第４の共通鍵作成情報を上記第２のＴＣＰ接続を用いて受信し、上記第２の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて第２の通信用共通鍵を生成する一方、上記第２の通信用共通鍵と同一の通信用共通鍵を上記第３の共通鍵作成情報及び上記第４の共通鍵作成情報に基づいて上記サーバ装置に生成させることにより上記第２の通信用共通鍵を上記サーバ装置との間で共有するステップとをさらに含み、
上記第２の接続要求信号を受信するステップは、上記サーバ装置から、上記第２の通信用共通鍵を用いて暗号化された上記第２の接続要求信号を、上記第２のＴＣＰ接続を用いて受信し、上記受信された第２の接続要求信号を、上記第２の通信用共通鍵を用いて復号化するステップをさらに含むことを特徴とする。
【００５５】
本発明の第８の態様に係る通信方法は、上記サーバ装置と、上記要求発行機器及び上記要求受諾機器を含む複数の機器とを備えた通信システムを用いた通信方法であって、
上記複数の機器と上記サーバ装置とはそれぞれネットワークに接続され、
上記サーバ装置を用いた通信方法に係る各ステップと、上記要求発行機器を用いた通信方法に係る各ステップと、上記要求受諾機器を用いた通信方法に係る各ステップとを含むことを特徴とする。
【００５６】
また、本発明の第９の態様に係るプログラムは、上記通信方法のうちの１つに係る各ステップを含むことを特徴とする。
【発明の効果】
【００５７】
従って、本発明によれば、サーバ装置を利用することにより、プライベートＩＰアドレスをそれぞれ持つ異なったＬＡＮ上の機器である要求発行機器と要求受諾機器との間において、ピアツーピア通信を実現でき、かつ不正アクセスを許さないサーバ装置、要求発行機器、要求受諾機器、通信システム及び通信方法を容易に提供することができる。本発明はさらに、インターネットに接続されたコンピュータ又は機器に読み込まれたときに上記通信方法に係る各ステップを当該コンピュータ又は機器に実行させる、上記通信方法に係る各ステップを含むプログラムとして提供することもできる。
【発明を実施するための最良の形態】
【００５８】
以下、本発明の実施形態について図１乃至図９を参照して説明する。
【００５９】
図１は、本発明の実施形態に係る通信システムのネットワーク構成の一例を示すブロック図である。要求発行機器１０２とＮＡＰＴ機能を有するルータ装置１０４ａとは要求発行側ＬＡＮ１０６ａを構成し、要求発行側ＬＡＮ１０６ａは、ルータ装置１０４ａのＷＡＮ側のポートにおいてインターネット（ＷＡＮ）１０５に接続されている。同様に、要求受諾機器１０３とＮＡＰＴ機能を有するルータ装置１０４ｂとは要求受諾側ＬＡＮ１０６ｂを構成し、要求受諾側ＬＡＮ１０６ｂは、ルータ装置１０４ｂのＷＡＮ側のポートにおいてインターネット（ＷＡＮ）１０５に接続されている。サーバ装置１０１もまたインターネット（ＷＡＮ）１０５に接続されている。
【００６０】
本実施形態の通信システムによれば、要求発行機器１０２及び要求受諾機器１０３を含む、インターネット（ＷＡＮ）１０５にそれぞれ接続された複数の機器と、インターネット１０５に接続されたサーバ装置１０１とを備え、要求発行側ＬＡＮ１０６ａ内の要求発行機器１０２から、要求受諾側ＬＡＮ１０６ｂ内の要求受諾機器１０３への接続要求信号をサーバ装置１０１を介して転送し、かつ要求発行機器１０２と要求受諾機器１０３との間において通信を行う通信システムが提供される。この通信システムにおいて、サーバ装置１０１は、上記複数の機器にそれぞれ関連付けられたＩＰアドレス及びポート番号、並びに上記各機器の機器ＩＤからなる上記各機器に係る機器情報の組を含む図９の機器情報リストを格納するための機器情報格納手段又はテーブルメモリ（図示せず。）を備え、要求受諾機器１０３は、要求受諾機器１０３に係る機器情報の組を含む機器登録パケット２０１をサーバ装置１０１に定期的に送信し、サーバ装置１０１は、機器登録パケット２０１を受信し、図２のステップＳ２０２及びＳ２０２Ａにおいて、この受信された機器登録パケット２０１に含まれる要求受諾機器１０３に係る機器情報の組を上記機器情報格納手段に格納する。要求発行機器１０２は、要求受諾機器１０３との通信を行う際に、まず、第１の接続要求シーケンスのステップＳ２０３を実行し、ステップＳ２０３では、サーバ装置１０１にＴＣＰ接続開始パケット２１１を送信することによってサーバ装置１０１との間の第１のＴＣＰ接続を確立し、要求受諾機器１０３の機器ＩＤと要求発行機器１０２に関連付けられたＩＰアドレス及びポート番号とを含む要求受諾機器１０３への接続要求パケット２１７を上記第１のＴＣＰ接続を用いてサーバ装置１０１に送信する。サーバ装置１０１は、接続要求パケット２１７を受信し、ステップＳ２０４において、受信された接続要求パケット２１７に含まれる要求受諾機器１０３の機器ＩＤを上記機器情報リストから検索し、上記機器情報リスト上で、接続要求パケット２１７に含まれる要求受諾機器１０３の機器ＩＤと一致した機器ＩＤを含む機器情報の組に係る機器を要求受諾機器１０３として識別し、上記機器情報リスト上で、上記識別された要求受諾機器１０３に係る機器情報の組に含まれるＩＰアドレス及びポート番号を要求受諾機器１０３に関連付けられたＩＰアドレス及びポート番号として識別する。サーバ装置１０１は、ステップＳ２０５において、上記識別された要求受諾機器１０３に対して、上記識別されたＩＰアドレス及びポート番号を宛先として、受信された接続要求パケット２１７に含まれる要求発行機器１０２に関連付けられたＩＰアドレス及びポート番号を含む接続要求パケット２２６を、機器登録パケット２０１に対する応答信号として送信する。要求受諾機器１０３は、接続要求パケット２２６を受信し、受信された接続要求パケット２２６内のＩＰアドレス及びポート番号が表す要求発行機器１０２に対して、要求発行機器１０２と要求受諾機器１０３との間の通信を要求する通信要求信号としてＴＣＰ接続要求パケット２０８を送信し、要求発行機器１０２がＴＣＰ接続要求パケット２０８に応答して要求発行機器１０２と要求受諾機器１０３との間の通信を受諾すると、要求発行機器１０２と要求受諾機器１０３との間のデータ通信シーケンスのステップＳ２０９を開始する。
【００６１】
本実施形態において、サーバ装置１０１、要求発行機器１０２及び要求受諾機器１０３は、専用の通信機器として構成されてもよく、又は、以下に説明される複数のステップを実行するためのプログラムによって動作される汎用のコンピュータとして構成されてもよい。
【００６２】
本実施形態においては、図１に示すように、サーバ装置１０１にはグローバルＩＰアドレスとして“１３０．７４．２３．６”が割り当てられ、サーバ装置１０１は、それ自体のグローバルＩＰアドレスを格納したメモリ（図示せず。）と、機器情報リストを格納したテーブルメモリとを備えているものとする。要求発行機器１０２にはプライベートＩＰアドレスとして“１９２．１６８．１．１１”が割り当てられ、要求受諾機器１０３にはプライベートＩＰアドレスとして“１９２．１６８．１．３”が割り当てられ、要求発行機器１０２は、それ自体のプライベートＩＰアドレス及びポート番号を格納したメモリ（図示せず。）を備え、要求受諾機器１０３は、それ自体のプライベートＩＰアドレス及びポート番号を格納したメモリ（図示せず。）を備えているものとする。ルータ装置１０４ａにはグローバルＩＰアドレスとして“４．１７．１６８．２”が割り当てられ、ルータ装置１０４ｂにはグローバルＩＰアドレスとして“２０２．２０４．１６．１３”が割り当てられているものとする。ルータ装置１０４ａは、そのＷＡＮ側のポート番号及びそのグローバルＩＰアドレスと、要求発行機器１０２のプライベートＩＰアドレス及びポート番号とを含む、図１２と同様のＮＡＰＴテーブル（図６を参照）の内容をその内部のテーブルメモリ（図示せず。）に格納している。ルータ装置１０４ｂもまた、そのＷＡＮ側のポート番号及びそのグローバルＩＰアドレスと、要求受諾機器１０３のプライベートＩＰアドレス及びポート番号とを含むＮＡＰＴテーブルの内容をその内部のテーブルメモリ（図示せず。）に格納している。
【００６３】
また、要求発行機器１０２は、一意に割り当てられた機器ＩＤ“１０５１”をその内部のメモリに格納し、要求受諾機器１０３は、一意に割り当てられた機器ＩＤ“２１３３”をその内部のメモリに格納しているものとする。この機器ＩＤは、ピアツーピア通信を行う本実施形態の各機器に対して一意に定められた識別情報であって、例えば、当該機器の製造業者によって割り当てられた識別番号、又はＭＡＣアドレスを用いることが可能であるが、それらに限定されない。
【００６４】
さらに要求受諾機器１０３は、秘密情報であるパスワードをその内部のメモリに格納しているものとする。後述するように要求受諾機器１０３とのピアツーピア通信を行うことを希望する要求発行機器１０２は、要求受諾機器１０２のパスワード及び機器ＩＤと、ルータ装置１０４ａのグローバルＩＰアドレス及びＷＡＮ側ポート番号とを予め取得して内部のメモリに格納しておく必要がある。
【００６５】
図２乃至図４は、図１の通信システムにおいて実行される通信シーケンスの一例を示すシーケンス図である。また、図７及び図８に、図２乃至図４の通信シーケンスにおいて用いるいくつかのパケットの一例が示されている。
【００６６】
要求受諾機器１０３は、定期的に、又は所定の周期を有して周期的に、機器ＩＤをペイロードに持つ機器登録パケット２０１を、ＵＤＰを用いてサーバ装置１０１に送信する。図７（ａ）に示すように、要求受諾側ＬＡＮ１０６ｂ内において、機器登録パケット２０１のＳＡには“１９２．１６８．１．３”が書き込まれ、ＳＰには“２０００”が書き込まれている。機器登録パケット２０１はルータ装置１０４ｂを介してサーバ装置１０１に送信され、機器登録パケット２０１がルータ装置１０４ｂを通るときに、ルータ装置１０４ｂは、そのＮＡＰＴ機能により、機器登録パケット２０１上のＳＡを“２０２．２０４．１６．１３”に変換し、機器登録パケット２０１上のＳＰを“３４００”に変換する。図７（ｂ）に示された、ＮＡＰＴ機能によって変換された後の機器登録パケット２０１は、インターネット（ＷＡＮ）１０５経由によりサーバ装置１０１に送信される。
【００６７】
サーバ装置１０１は、インターネット（ＷＡＮ）１０５に接続された複数の機器にそれぞれ関連付けられたＩＰアドレス及びポート番号、並びに上記各機器の機器ＩＤからなる上記各機器に係る機器情報の組を含む機器情報リストを格納するためのテーブルメモリ（図示せず。）を備えている。サーバ装置１０１は、受信した機器登録パケット２０１のＳＡ、ＳＰ及びペイロードを参照し、ステップＳ２０２において、要求受諾機器１０３の機器ＩＤと、ルータ装置１０４ｂのグローバルＩＰアドレスと、ルータ装置１０４ｂのＷＡＮ側のポート番号との組を、要求受諾機器１０３に対応する機器情報の組（すなわち機器情報リストの項目）として、サーバ装置１０１内のテーブルメモリに格納して保存する。本実施形態では、ルータ装置１０４ｂのグローバルＩＰアドレスとＷＡＮ側のポート番号とを、要求受諾機器１０３に関連付けられたＩＰアドレス及びポート番号として参照する。すなわち、サーバ装置１０１が要求受諾機器１０３に対してパケットを送信するときに、要求受諾機器１０３を含む要求受諾側ＬＡＮ１０６ｂのグローバルＩＰアドレス及びＷＡＮ側ポート番号（従って、ルータ装置１０４ｂのグローバルＩＰアドレスとＷＡＮ側のポート番号）を宛先として参照する。図９に、サーバ装置１０１内のテーブルメモリに格納した機器情報リストの一例を示す。
【００６８】
要求受諾機器１０３は、定期的に機器登録パケット２０１をサーバ装置１０１に送信するため、ルータ装置１０４ｂのグローバルＩＰアドレスもしくはＷＡＮ側ポート番号が変更になった場合でも、ステップＳ２０２や、同様のステップＳ２０２Ａが実行されることにより、サーバ装置１０１上の機器情報リストは自動的に更新される。
【００６９】
一方、要求発行機器１０２が要求受諾機器１０３とのデータ通信を所望する場合には、このことを伝達する接続要求メッセージを要求発行機器１０２から要求受諾機器１０３に伝送するために、要求発行機器１０２とサーバ装置１０１との間における第１の接続要求シーケンスのステップＳ２０３と、サーバ装置１０１におけるステップＳ２０４の実行及びパケット２０５の送信と、サーバ装置１０１と要求受諾機器１０３との間における第２の接続要求シーケンスのステップＳ２０６とを一連の処理として実行する。それによって、要求発行機器１０２による接続要求メッセージは、サーバ装置１０１が中継することにより、要求発行機器１０２から要求受諾機器１０３に転送される。要求発行機器１０２は、要求受諾機器１０３に対して接続要求メッセージを伝送するために、最初に、要求発行機器１０２とサーバ装置１０１との間において第１の接続要求シーケンスのステップＳ２０３を実行する。
【００７０】
第１の接続要求シーケンスのステップＳ２０３は、要求受諾機器１０３のパスワード、要求受諾機器１０３の機器ＩＤ、要求発行機器１０２に関連付けられたＩＰアドレス及びポート番号のような秘密情報を伝送する必要があるので、本実施形態ではＳＳＬを用いて暗号化される。まず、後述の接続要求パケット２１７の送信などを暗号化するために用いられるＳＳＬ通信について図３及び図５を用いて説明する。
【００７１】
図５は、要求発行機器１０２及び要求受諾機器１０３に対してサーバ装置１０１の正当性を認証するための認証局装置５１を示すブロック図であって、特に、サーバ装置１０１の正当性を証明するためのサーバ証明書データ６５の配付及び認証方法を示す図である。図５において、ルータ装置１０４ａ及び１０４ｂなどは認証に関する説明では本質的ではないので省略した。図５において、認証局装置（ＣＡ）５１は、固有のＣＡ公開鍵５２及びＣＡ秘密鍵５３のペアを認証局装置５１のメモリ（図示せず。）に格納し、また、サーバ装置１０１は、固有のサーバ秘密鍵６１及びサーバ公開鍵６２のペアと、認証局装置５１によって発行されたサーバ証明書データ６５とを、サーバ装置１０１のメモリ（図示せず。）に格納している。サーバ証明書データ６５は、サーバ公開鍵６２と、認証局装置５１によって生成された署名６４とを備えて構成される。
【００７２】
図２の第１の接続要求シーケンスのステップＳ２０３及び第２の接続要求シーケンスのステップＳ２０６の処理を実行するために、まず予め、サーバ装置１０１は、以下に説明する処理に従って、認証局装置５１からサーバ証明書データ６５を発行してもらう必要がある。
【００７３】
認証局装置５１は、予めＣＡ公開鍵５２とＣＡ秘密鍵５３のペアを格納したメモリ（図示せず。）を備えている。サーバ装置１０１は、まずサーバ公開鍵６２とサーバ秘密鍵６１のペアを生成する。サーバ装置１０１は、サーバ公開鍵６２とサーバ装置１０１に関する情報とを、サーバ証明書データ要求パケット６３として認証局装置５１に送信し、サーバ証明書データ６５の発行を依頼する。認証局装置５１は、サーバ証明書データ要求パケット６３を受信すると、ＣＡ秘密鍵５３を用いて、サーバ装置１０１から受信した情報やその他必要な情報から署名６４を生成し、サーバ装置１０１から受信した情報やその他必要な情報及び署名６４を組み合わせたデータをサーバ証明書データ６５としてサーバ装置１０１に対して発行する。発行されたサーバ証明書データ６５は、サーバ証明書データ発行パケット５４として、認証局装置５１からサーバ装置１０１に送信される。サーバ装置１０１は、受信したサーバ証明書データ６５をサーバ装置１０１の内部のメモリに格納しておく。
【００７４】
また、クライアント装置である要求発行機器１０２及び要求受諾機器１０３は、予め認証局装置５１からＣＡ公開鍵５２を取得し、内部のメモリに格納しておく。なお、一般に、ＣＡ公開鍵５２は、認証局装置５１の情報などと合わせたＣＡ証明書データパケット５５の形態でクライアント装置（すなわちサーバ装置１０１と通信する他の機器）などに配布される。要求発行機器１０２及び要求受諾機器１０３は、後述のように、サーバ装置１０１からのサーバ証明書データパケット２１４を介してサーバ証明書データ６５を受信すると、要求発行機器１０２及び要求受諾機器１０３のそれぞれの証明書情報認証処理部（図示せず。）を用いて、内部のメモリに格納しているＣＡ公開鍵５２でサーバ証明書データ６５内の署名６４を認証することにより、サーバ証明書データ６５内のサーバ公開鍵６２の正当性を確認することができる。
【００７５】
実際に、要求発行機器１０２とサーバ装置１０１の間においての秘密通信である第１の接続要求シーケンスのステップＳ２０３は、以下説明するように実行される。
【００７６】
図３は、第１の接続要求シーケンスＳ２０３の詳細な処理を示すシーケンス図であり、ＳＳＬ通信を用いて接続要求パケット２１７を送信するためのフローを示す図である。図３において、参照番号７３は秘密通信に用いる通信用共通鍵を示す。
【００７７】
サーバ装置１０１は、送受信する信号を暗号化しかつ復号化するための通信用共通鍵７３及び８３を生成し、生成した通信用共通鍵７３を用いて、要求発行機器１０２との間で送受信する信号の暗号化及び復号化を実行し、通信用共通鍵８３を用いて、要求受諾機器１０３との間で送受信する信号の暗号化及び復号化を実行する暗号通信処理部をさらに備えるものとする（図示せず。）。要求発行機器１０２は、送受信する信号を暗号化しかつ復号化するための通信用共通鍵７３を生成し、生成した通信用共通鍵７３を用いて、サーバ装置１０１との間で送受信する信号の暗号化及び復号化を実行する暗号通信処理部と、サーバ証明書データ６５を認証する証明書情報認証処理部とをさらに備えるものとする（いずれも図示せず。）。
【００７８】
ＳＳＬ通信において、クライアント側である要求発行機器１０２は、まず、ＴＣＰ接続開始パケット２１１を、ルータ装置１０４ａを介してサーバ装置１０１に送信することによって、ＴＣＰ接続によるサーバ装置１０１との通信開始を要求する。ここで、図６に、ルータ装置１０４ａの内部のメモリに格納しているＮＡＰＴテーブルの一例を示す。ＴＣＰ接続開始パケット２１１がルータ装置１０４ａを通るときに、ルータ装置１０４ａは、そのＮＡＰＴ機能を用いて、上記ＮＡＰＴテーブルに従って、ＴＣＰ接続開始パケット２１１上のＳＡを“１９２．１６８．１．１１”から“４．１７．１６８．２”に変換し、ＴＣＰ接続開始パケット２１１上のＳＰを“１５００”から“７０００”に変換する。また、ルータ装置１０４ａが要求発行機器１０２宛のパケットを受信するとき、当該パケットのＤＡに対して上記の変換と逆の変換を実行し、当該パケットのＤＰに対しても別の変換を実行して要求発行機器１０２に送信する。以下、本願明細書では、説明の簡単化のためにルータ装置１０４ａのＮＡＰＴ処理動作について言及することを省略するが、実際に要求発行機器１０２がインターネット（ＷＡＮ）１０５上のサーバ装置１０１又は他の機器との間でパケットを送受信する際には、常にルータ装置１０４ａを介して送受信し、常にルータ装置１０４ａが当該パケットに対してＮＡＰＴ処理を実行するものとする。
【００７９】
次いで、要求発行機器１０２とサーバ装置１０１は、暗号化仕様交渉のステップを実行することにより、秘密通信で用いる暗号化方式の仕様を相互に確認する。要求発行機器１０２は、最初に、ＴＣＰ接続開始パケット２１１で確立されたＴＣＰ接続を用いて、暗号化通信開始要求パケット（client_helloパケットともいう。）２１２をサーバ装置１０１に送信する。暗号化通信開始要求パケット２１２の中には、使用可能なＳＳＬのバージョン、使用可能な暗号化方式のリスト、セッションＩＤなどが書き込まれ、その中に、要求発行機器１０２が生成した乱数であるClientHello.randamも含まれている。サーバ装置１０１は、暗号化通信開始要求パケット２１２を受信し、通信を開始することを了承すると、ＴＣＰ接続開始パケット２１１で確立されたＴＣＰ接続を用いて暗号化通信開始応答パケット（server_helloパケットともいう。）２１３を要求発行機器１０２に送信する。この暗号化通信開始応答パケット２１３は、使用するＳＳＬのバージョン（要求発行機器１０２とサーバ装置１０１との両方がサポートする中で最も高いバージョン）、セッションＩＤ、使用する暗号化方式などを含み、さらに、サーバ装置１０１においてClientHello.randamと同様に生成された乱数であるServerHello.randamを含んでいる。以下この第１の接続要求シーケンスのステップＳ２０３では、暗号化通信開始応答パケット２１３において指定されたＳＳＬのバージョン及び暗号化方式が使用される。これらの乱数ClientHello.randam及びServerHello.randamは、３２ビットのタイムスタンプと、２８バイトの乱数（もしくは十分安全な疑似乱数）として、要求発行機器１０２とサーバ装置１０１それぞれが独立に生成する。これらの乱数ClientHello.randam及びServerHello.randamをそれぞれ含む暗号化通信開始要求パケット２１２及び暗号化通信開始応答パケット２１３は、暗号化されずに送信される。
【００８０】
次にサーバ装置１０１は、要求発行機器１０２にサーバ証明書データパケット２１４を送信する。要求発行機器１０２へのサーバ証明書データパケット２１４の送信は、暗号化通信開始応答パケット２１３送信の後に限らず、後述される要求発行機器側通信用共通鍵作成情報パケット２１５の受信の前であれば（例えば、第１の接続要求シーケンスのステップＳ２０３の前）、いつでもよい。要求発行機器１０２の証明書情報認証処理部は、上記説明したように、内部に格納しているＣＡ公開鍵５２を用いて、送信されたサーバ証明書データパケット２１４内のサーバ証明書データ６５が正規のものであるか否かを確認する。
【００８１】
要求発行機器１０２は、その証明書情報認証処理部を用いて、送信されたサーバ証明書データ６５が正規のものであると確認すると、要求発行機器側通信用共通鍵作成情報７１及びサーバ装置側通信用共通鍵作成情報７２の送受信を含む、共通鍵作成情報交換のステップを開始する。
【００８２】
共通鍵作成情報交換のステップにおいて、最初に、要求発行機器１０２は、要求発行機器１０２の暗号通信処理部により要求発行機器側通信用共通鍵作成情報７１を生成し、この生成された共通鍵作成情報７１を含む要求発行機器側通信用共通鍵作成情報パケット２１５を、ＴＣＰ接続開始パケット２１１で確立されたＴＣＰ接続を用いてサーバ装置１０１に送信する。サーバ装置１０１は、送信された要求発行機器側通信用共通鍵作成情報パケット２１５に応答して、サーバ装置１０１の暗号通信処理部により、サーバ装置側通信用共通鍵作成情報７２を生成し、この生成された共通鍵作成情報７２を含むサーバ装置側通信用共通鍵作成情報パケット２１６を、ＴＣＰ接続開始パケット２１１で確立されたＴＣＰ接続を用いて要求発行機器１０２に送信する。要求発行機器１０２及びサーバ装置１０１は、双方の共通鍵作成情報７１及び７２に基づいて、それぞれの暗号通信処理部により同一の通信用共通鍵７３をそれぞれ生成する。これにより、要求発行機器１０２とサーバ装置１０１とで通信用共通鍵７３を共有することができる。
【００８３】
共通鍵作成情報交換の実施形態は、ＳＳＬの鍵交換において使用される暗号化方式によって変化する。ＲＳＡ暗号化方式を使用する場合において、要求発行機器１０２の暗号通信処理部は、要求発行機器側通信用共通鍵作成情報７１として、プリマスタシークレット（Pre Master Secret：ＰＭＳ）と呼ばれる４８バイトの乱数を生成し、サーバ証明書データ６５に含まれるサーバ公開鍵６２を用いて上記生成されたＰＭＳを暗号化する。次いで、要求発行機器１０２は、ＴＣＰ接続開始パケット２１１により確立されたＴＣＰ接続を用いて、暗号化されたＰＭＳをサーバ装置１０１に送信する。サーバ装置１０１は暗号通信処理部を使用し、暗号化された状態で受信したＰＭＳを、自分の持っているサーバ秘密鍵６１を用いて復号化することによって、送信されたＰＭＳを取得する。一方、サーバ装置側通信用共通鍵作成情報７２の生成及び送信は省略される。サーバ装置１０１及び要求発行機器１０２は、このＰＭＳを使って通信用共通鍵７３を作成する（詳細後述）ことにより鍵共有を行う。
【００８４】
ディフィー−ヘルマン（Diffie-Hellman）暗号化方式を使用する場合は、要求発行機器１０２及びサーバ装置１０１は、ディフィー−ヘルマン鍵共有に用いるための２つのパラメータ（すなわち素数ｐとその素数の原始根ｇ）について予め同意している。サーバ証明書パケット２１４を受信した後、要求発行機器１０２は乱数ａを生成し、ｐを法とするｇａの最小の正の剰余を要求発行機器側通信用共通鍵作成情報７１として計算し、この共通鍵作成情報７１を含む要求発行機器側通信用共通鍵作成情報パケット２１５をサーバ装置１０１に送信する一方、サーバ装置１０１は乱数ｂを生成し、ｐを法とするｇｂの最小の正の剰余をサーバ装置側通信用共通鍵作成情報７２として計算し、この共通鍵作成情報７２を含むサーバ装置側通信用共通鍵作成情報パケット２１６を要求発行機器１０２に送信する。従って、互いに送信されるこれらの共通鍵作成情報が、ディフィー−ヘルマン公開鍵として用いられる。さらに、これらの共通鍵作成情報７１及び７２を送信するときに、要求発行機器１０２及びサーバ装置１０１のそれぞれの署名を付加してもよい。
【００８５】
また、同じディフィー−ヘルマン暗号化方式でも、固定ディフィー−ヘルマン暗号化方式の場合には、サーバ装置１０１からの情報はサーバ証明書データ６５に含まれる値を使用するので、この場合はサーバ装置側通信用共通鍵作成情報７２の生成及び送信は省略される。
【００８６】
以上のように、要求発行機器１０２及びサーバ装置１０１の間において共通鍵作成情報７１及び７２が交換されると、これらの共通鍵作成情報７１及び７２を用いることによって、後の通信において秘密鍵として用いるための通信用共通鍵７３が生成される。通信用共通鍵７３を生成するためには、互いに交換された共通鍵作成情報７１及び７２から、最初にプリマスタシークレット（ＰＭＳ）を生成する。ＲＳＡ暗号化方式の場合には、ＰＭＳは、上述のように要求発行機器側通信用共通鍵作成情報７１である。ディフィー−ヘルマン暗号化方式の場合には、両者のディフィー−ヘルマン公開鍵を用いてＰＭＳを生成する。すなわち、サーバ装置１０１は、受信したｐを法とするｇａの最小の正の剰余をｂ乗した値の、ｐを法とする最小の正の剰余を計算してＰＭＳとし、要求発行機器１０２は、受信したｐを法とするｇｂの最小の正の剰余をａ乗した値の、ｐを法とする最小の正の剰余を計算してＰＭＳとする。ディフィー−ヘルマン暗号化方式を用いた場合において、要求発行機器１０２及びサーバ装置１０１のそれぞれにおいて計算されたＰＭＳは、ｐを法とするｇａｂの最小の正の剰余に等しい。
【００８７】
ＰＭＳから通信用共通鍵７３を作成するためには、ＭＤ５（Message Digest 5）とＳＨＡ（Secure Hash Algorithm）との２つのハッシュアルゴリズムを使用し、以下のように計算する。
【００８８】
［数１］
共通鍵master_secret 
= MD5(PMS || SHA('A' || PMS ||  ClientHello.randam || ServerHello.randam)) || 
MD5(PMS || SHA('BB' || PMS ||  ClientHello.randam || ServerHello.randam)) || 
MD5(PMS || SHA('CCC' || PMS || ClientHello.randam || ServerHello.randam))
【００８９】
ここで「||」はビット列の連結を表す。
【００９０】
以降、要求発行機器１０２及びサーバ装置１０１は、数１を用いて計算された共通鍵master_secretを通信用共通鍵７３として用いて、接続要求パケット２１７の暗号化及び復号化を行うことにより、秘密通信を行うことが可能となる。すなわち、要求発行機器１０２及びサーバ装置１０１の間での通信用共通鍵７３の共有が完了すると、要求発行機器１０２は、第１の接続要求パケット２１７を送信する前に、接続相手である要求受諾機器１０３の機器ＩＤと、要求受諾機器１０３のパスワードと、要求発行機器１０２に関連付けられかつ通信に用いるためのＩＰアドレス及びポート番号とを含むデータを通信用共通鍵７３を用いて要求発行機器１０２の暗号通信手段により暗号化する。ここで、要求発行機器１０２に関連付けられたＩＰアドレス及びポート番号は、要求発行機器１０２を含む要求発行側ＬＡＮ１０６ａのグローバルＩＰアドレス及びＷＡＮ側ポート番号、すなわちルータ装置１０４ａのＷＡＮ側グローバルＩＰアドレス及びＷＡＮ側ポート番号である。要求発行機器１０２は、この暗号化されたデータをペイロードとする接続要求パケット２１７を生成し、生成された接続要求パケット２１７を、ＴＣＰ接続開始パケット２１１により確立されたＴＣＰ接続を用いてサーバ装置１０１に送信する。詳しくは、要求発行機器１０２は、図７（ｃ）に示された接続要求パケット２１７をルータ装置１０４ａに送信し、ルータ装置１０４ａは受信した接続要求パケット２１７に対してＮＡＰＴ処理を実行し、図７（ｄ）に示されたＮＡＰＴ処理後の接続要求パケット２１７をサーバ装置１０１に送信する。一方、サーバ装置１０１は、要求発行機器１０２との間で確立されたＴＣＰ接続を用いて、要求発行機器１０２から、秘密情報として暗号化されたデータを含む接続要求パケット２１７を受信すると、通信用共通鍵７３を用いて、上記暗号化されたデータをサーバ装置１０１の暗号通信処理部により復号化する。
【００９１】
接続要求パケット２１７に書き込まれたルータ装置１０４ａのＷＡＮ側グローバルＩＰアドレスとＷＡＮ側ポート番号は、後のＴＣＰ接続開始パケット２０８とデータ通信シーケンスのステップＳ２０９に係るパケットとを送受信する際に使用される。すなわち、要求発行機器１０２が要求受諾機器１０３からのＴＣＰ接続開始パケット２０８を受信して両者間のＴＣＰ接続を確立し、要求発行機器１０２が、確立されたＴＣＰ接続上においてデータ通信シーケンスのステップＳ２０９に係るパケットを送受信する際（後述）に、ルータ装置１０４ａのＷＡＮ側グローバルＩＰアドレスとＷＡＮ側ポート番号は、この送受信されるパケットに書き込まれており、このパケットに書き込まれたルータ装置１０４ａのＷＡＮ側グローバルＩＰアドレスとＷＡＮ側ポート番号は、ルータ装置１０４ａのＮＡＰＴ機能を用いて要求発行機器１０２のプライベートＩＰアドレスとポート番号と相互変換できるものとする。
【００９２】
例えば、要求発行機器１０２が要求受諾機器１０３からのＴＣＰ接続開始パケット２０８を受信するためのポート番号を“１６００”とすると、このときのルータ装置１０４ａのＮＡＰＴテーブルは図６のようになる。
【００９３】
図６のＮＡＰＴテーブルの２行目が、要求発行機器１０２が要求受諾機器１０３からのＴＣＰ接続開始パケット２０８とその後のデータ通信シーケンスのステップＳ２０９におけるパケットとを受信するための変換テーブルである。要求受諾機器１０３は、グローバルＩＰアドレス“４．１７．１６８．２”及びポート番号“５０００”を有するルータ装置１０４ａに対してＴＣＰ接続を確立するためにＴＣＰ接続開始パケット２０８を送信すると、ルータ装置１０４ａのＮＡＰＴ機能により、ＴＣＰ接続開始パケット２０８上に書き込まれたＩＰアドレスとポート番号が要求発行機器１０２のプライベートＩＰアドレスとルータ装置１０４ａのポート番号とに変換されて、最終的に、要求受諾機器１０３は、要求発行機器１０２に対してＴＣＰ接続を確立することができる。
【００９４】
サーバ装置１０１は、接続要求パケット２１７を受信すると、ステップＳ２０４において、内部のメモリに格納している図９の機器情報リスト内の複数の機器情報の組を参照し、受信された接続要求パケット２１７に含まれた要求受諾機器１０３の機器ＩＤ“２１３３”を機器情報リストから検索する。機器情報リスト上で“２１３３”と一致した機器ＩＤが見つかると、サーバ装置１０１は、この機器ＩＤ“２１３３”を含む機器情報の組に係る機器を接続相手の要求受諾機器１０３として識別し、また、機器情報リスト上で、識別された要求受諾機器１０３に係る機器情報の組に含まれるＩＰアドレス及びポート番号を要求受諾機器１０３に関連付けられたＩＰアドレス及びポート番号として識別する。サーバ装置１０１は、受信された接続要求パケット２１７に含まれた要求発行機器１０２に関連付けられたＩＰアドレス及びポート番号と要求受諾機器１０３のパスワードとを要求受諾機器１０３に対してすぐには送信せず、まず、要求受諾機器１０３に関連付けられている（すなわち、機器ＩＤ“２１３３”と同じ機器情報の組に含まれた）ＩＰアドレス“２０２．２０４．１６．１３”及びポート番号“３４００”を宛先として、接続要求通知パケット２０５をＵＤＰを用いて送信する。接続要求通知パケット２０５は、機器登録パケット２０１に対する応答信号としてルータ装置１０４ｂに送信されるため、ルータ装置１０４ｂにおいてＩＰアドレスとポート番号の変換が行われ、要求受諾機器１０３に到達できる。図８（ａ）及び（ｂ）に示すように、接続要求通知パケット２０５は、接続要求通知を示すパケットであることを示す接続要求通知フラグを含んでいる。
【００９５】
要求受諾機器１０３は、接続要求通知パケット２０５を受信すると、サーバ装置１０１との間において第２の接続要求シーケンスＳ２０６を実行する。
【００９６】
図４は、第２の接続要求シーケンスＳ２０６の詳細な処理を示すシーケンス図である。第２の接続要求シーケンスのステップＳ２０６もまた、第１の接続要求シーケンスのステップＳ２０３と同様に、要求受諾機器１０３のパスワード、要求発行機器１０２に関連付けられたＩＰアドレス及びポート番号のような秘密情報を伝送する必要があるので、本実施形態ではＳＳＬを用いて暗号化される。ここで、要求受諾機器１０３は、送受信する信号を暗号化しかつ復号化するための通信用共通鍵８３を生成し、生成した通信用共通鍵８３を用いて、サーバ装置１０１との間で送受信する信号の暗号化及び復号化を実行する暗号通信処理部と、サーバ証明書データ６５を認証する証明書情報認証処理部とをさらに備えるものとする（いずれも図示せず。）。サーバ装置１０１と要求受諾機器１０３との間での秘密通信である第２の接続要求シーケンスのステップＳ２０６は、以下説明するように実行される。
【００９７】
ＳＳＬ通信において、クライアント側である要求受諾機器１０３は、まず、ＴＣＰ接続開始パケット２２１を、ルータ装置１０４ｂを介してサーバ装置１０１に送信することによって、ＴＣＰ接続によるサーバ装置１０１との通信開始を要求する。ＴＣＰ接続開始パケット２２１がルータ装置１０４ｂを通るときに、ルータ装置１０４ｂは、機器登録パケット２０１の送信時に用いたＮＡＰＴ機能を使用し、ＴＣＰ接続開始パケット２２１上のＳＡ及びＳＰを変換する。また、ルータ装置１０４ｂが要求受諾機器１０３宛のパケットを受信するとき、当該パケットのＤＡに対して上記の変換と逆の変換を実行し、当該パケットのＤＰに対しても別の変換を実行して要求受諾機器１０３に送信する。以下、本願明細書では、説明の簡単化のためにルータ装置１０４ｂのＮＡＰＴ処理動作について言及することを省略するが、実際に要求受諾機器１０３がパケットを送受信する際には、常にルータ装置１０４ｂを介して送受信し、常にルータ装置１０４ｂが当該パケットに対してＮＡＰＴ処理を実行するものとする。
【００９８】
次いで、要求受諾機器１０３とサーバ装置１０１は、暗号化仕様交渉のステップを実行することにより、秘密通信で用いる暗号化方式の仕様を相互に確認する。要求受諾機器１０３は、最初に、ＴＣＰ接続開始パケット２２１で確立されたＴＣＰ接続を用いて、暗号化通信開始要求パケット（client_helloパケットともいう。）２２２をサーバ装置１０１に送信する。暗号化通信開始要求パケット２２２の中には、使用可能なＳＳＬのバージョン、使用可能な暗号化方式のリスト、セッションＩＤなどが書き込まれ、その中に、要求受諾機器１０３が生成した乱数であるClientHello.randamも含まれている。サーバ装置１０１は、要求受諾機器１０３から暗号化通信開始要求パケット２２２を受信すると、ＴＣＰ接続開始パケット２２１で確立されたＴＣＰ接続を用いて暗号化通信開始応答パケット（server_helloパケットともいう。）２２３を要求受諾機器１０３に送信する。この暗号化通信開始応答パケット２２３は、使用するＳＳＬのバージョン（要求発行機器１０２とサーバ装置１０１との両方がサポートする中で最も高いバージョン）、セッションＩＤ、使用する暗号化方式などを含み、さらに、サーバ装置１０１において生成された乱数であるServerHello.randamを含んでいる。以下この第２の接続要求シーケンスのステップＳ２０６では、暗号化通信開始応答パケット２２３において指定されたＳＳＬのバージョン及び暗号化方式が使用される。これらの乱数ClientHello.randam及びServerHello.randamは、３２ビットのタイムスタンプと、２８バイトの乱数（もしくは十分安全な疑似乱数）として、要求受諾機器１０３とサーバ装置１０１それぞれが独立に生成する。これらの乱数ClientHello.randam及びServerHello.randamをそれぞれ含む暗号化通信開始要求パケット２２２及び暗号化通信開始応答パケット２２３は、暗号化されずに送信される。
【００９９】
次にサーバ装置１０１は、要求受諾機器１０３にサーバ証明書データパケット２１４を送信する。要求受諾機器１０３へのサーバ証明書データパケット２１４の送信は、暗号化通信開始応答パケット２２３送信の後に限らず、後述される要求受諾機器側通信用共通鍵作成情報パケット２２４の受信の前であれば（例えば、第２の接続要求シーケンスのステップＳ２０６の前）、いつでもよい。要求受諾機器１０３の証明書情報認証処理部は、図５を参照して要求発行機器１０２の場合について説明したときと同様に、内部に格納しているＣＡ公開鍵５２を用いて、送信されたサーバ証明書データパケット２１４内のサーバ証明書データ６５が正規のものであるか否かを確認する。
【０１００】
要求受諾機器１０３は、その証明書情報認証処理部を用いて、送信されたサーバ証明書データ６５が正規のものであると確認すると、以下、要求受諾機器側通信用共通鍵作成情報８１及びサーバ装置側通信用共通鍵作成情報８２の送受信を含む、共通鍵作成情報交換のステップを開始する。
【０１０１】
共通鍵作成情報交換のステップにおいて、最初に、要求受諾機器１０３は、要求受諾機器１０３の暗号通信処理部により要求受諾機器側通信用共通鍵作成情報８１を生成し、この生成された共通鍵作成情報８１を含む要求受諾機器側通信用共通鍵作成情報パケット２２４を、ＴＣＰ接続開始パケット２２１で確立されたＴＣＰ接続を用いてサーバ装置１０１に送信する。サーバ装置１０１は、送信された要求受諾機器側通信用共通鍵作成情報パケット２２４に応答して、サーバ装置１０１の暗号通信処理部により、サーバ装置側通信用共通鍵作成情報８２を生成し、この生成された共通鍵作成情報８２を含むサーバ装置側通信用共通鍵作成情報パケット２２５を、ＴＣＰ接続開始パケット２１１で確立されたＴＣＰ接続を用いて要求発行機器１０２に送信する。要求発行機器１０２及びサーバ装置１０１は、双方の共通鍵作成情報８１及び８２に基づいて、それぞれの暗号通信処理部により同一の通信用共通鍵８３をそれぞれ生成する。通信用共通鍵８３を生成するためには、第１の接続要求シーケンスのステップＳ２０３の場合について説明されたときと同様にＲＳＡ暗号化方式又はディフィー−ヘルマン暗号化方式などを用いて、生成された共通鍵作成情報８１及び８２を互いに交換し、サーバ装置１０１及び要求受諾機器１０３の各暗号通信処理部は、これらの共通鍵作成情報８１及び８２を用いることによって、後の通信で秘密鍵として用いるための通信用共通鍵８３をそれぞれ生成する。
【０１０２】
これにより、サーバ装置１０１及び要求受諾機器１０３の間において通信用共通鍵８３を共有することができ、サーバ装置１０１及び要求受諾機器１０３は、通信用共通鍵８３を用いて、接続要求パケット２２６の暗号化及び復号化を行うことで、秘密通信を行うことが可能となる。すなわち、第１の接続要求パケット２１７を受信した後であってかつ第２の接続要求パケット２２６を送信する前に、サーバ装置１０１及び要求受諾機器１０３の間での通信用共通鍵８３の共有が完了すると、サーバ装置１０１は、接続要求パケット２１７に含まれている要求受諾機器１０３のパスワードと、通信に用いるルータ装置１０４ａのグローバルＩＰアドレス“４．１７．１６８．２”とポート番号“５０００”とを含むデータを通信用共通鍵８３を用いてサーバ装置１０１の暗号通信処理部により暗号化する。サーバ装置１０１は、この暗号化されたデータをペイロードとして含む接続要求パケット２２６を生成し、生成された接続要求パケット２２６を、機器登録パケット２０１に対する応答信号として、ＴＣＰ接続開始パケット２２１により確立されたＴＣＰ接続を用いて要求受諾機器１０３に送信する。詳しくは、サーバ装置１０１は、図２のステップＳ２０４においてサーバ装置１０１の機器情報リスト内で要求受諾機器１０３のものとして識別されたＩＰアドレス及びポート番号を宛先として、図８（ｄ）に示された接続要求パケット２２６をルータ装置１０４ｂに送信し、ルータ装置１０４ｂは受信した接続要求パケット２２６に対してＮＡＰＴ処理を実行し、図８（ｃ）に示されたＮＡＰＴ処理後の接続要求パケット２２６を要求受諾機器１０３に送信する。一方、要求受諾機器１０３は、サーバ装置１０１との間において確立されたＴＣＰ接続を用いて、サーバ装置から、秘密情報として暗号化されたデータを含む接続要求パケット２２６を受信すると、通信用共通鍵８３を用いて、上記暗号化されたデータを要求受諾機器１０３の暗号通信処理部により復号化する。以上のようにして、要求発行機器１０２が要求受諾機器１０３とのデータ通信を所望することを伝達する接続要求メッセージが、最終的に、要求発行機器１０２から要求受諾機器１０３に伝送される。
【０１０３】
再び図２を参照すると、要求受諾機器１０３は、ステップＳ２０７において、接続要求パケット２２６に含まれているパスワードが、要求受諾機器１０３内のメモリに格納された要求受諾機器１０３のパスワードと一致した正しいものであるか否かを認証する。パスワードが正しい場合かつそのときに限って、要求受諾機器１０３は、接続要求パケット２２６に含まれているＩＰアドレス“４．１７．１６８．２”及びポート番号“５０００”に関連付けられた要求発行機器１０２に対して、要求発行機器１０２と要求受諾機器１０３との間のＴＣＰ接続による通信を要求するための通信要求信号として、ＴＣＰ接続開始パケット２０８をルータ装置１０４ａに送信する。ＴＣＰ接続開始パケット２０８は、前述のようにルータ装置１０４ａのＮＡＰＴ機能により要求発行機器１０２に到達し、要求受諾機器１０３は、要求発行機器１０２とのＴＣＰ接続を確立することができる。
【０１０４】
要求発行機器１０２がＴＣＰ接続開始パケット２０８に応答して要求発行機器１０２と要求受諾機器１０３との間の通信を受諾すると、以降、要求発行機器１０２と要求受諾機器１０３とは、ＴＣＰ接続開始パケット２０８により確立されたＴＣＰ接続を用いてデータ通信シーケンスのステップＳ２０９を行えるようになる。
【０１０５】
以上のようにして、サーバ装置１０１を利用することで、プライベートＩＰアドレスを持つ異なったＬＡＮ１０６ａ及び１０６ｂ上の機器である要求発行機器１０２と要求受諾機器１０３との間でデータ通信を行うことができるようになる。
【０１０６】
なお、要求発行機器１０２がグローバルＩＰアドレスを保有し、直接インターネット（ＷＡＮ）１０５に接続されている場合でも、同様の動作で要求発行機器１０２と要求受諾機器１０３との間において通信を行うことができる。また、要求受諾機器１０３がグローバルＩＰアドレスを保有し、直接インターネット（ＷＡＮ）１０５に接続されている場合でも、同様の動作で要求発行機器１０２と要求受諾機器１０３との間において通信を行うことができる。いずれの場合でも、ルータ装置によってＩＰアドレスやポート番号の変換が行われないだけで、それ以外の動作は上記説明と同様の動作となる。
【０１０７】
本実施形態では、サーバ装置１０１、要求発行機器１０２及び要求受諾機器１０３はインターネット（ＷＡＮ）１０５に接続されているが、本発明の実施形態はそれに限定されず、サーバ装置１０１、要求発行機器１０２及び要求受諾機器１０３は、その他の公開されたネットワーク及び／又は専用のネットワークに接続されるように構成されてもよい。
【０１０８】
また、ルータ装置１０４ａやルータ装置１０４ｂが、ＮＡＰＴ機能ではなくＮＡＴ機能のみ有している場合でも同様の動作で要求発行機器１０２と要求受諾機器１０３との間における通信を行うことができる。この場合、ルータ装置においてポート番号の変換は行われない。
【０１０９】
また、要求発行機器１０２は、ＴＣＰ接続開始パケット２０８を受信するためのＩＰアドレスとポート番号の組み合わせを常に図６のようなＮＡＰＴテーブルに設定したままでもよいし、又は、第１の接続要求シーケンスＳ２０３においてＴＣＰ接続開始パケット２１１を送信する際にこの組み合わせをＮＡＰＴテーブルに設定し、データ通信シーケンスのステップＳ２０９が終了するとこの組み合わせをＮＡＰＴテーブルから削除するようにしてもよい。ＮＡＰＴテーブルの設定は、静的ＮＡＰＴを用いてもよいし、ユニバーサル・プラグ・アンド・プレイ（Universal Plug and Play）などの機能を用いてもよい。
【０１１０】
また、第１の接続要求シーケンスのステップＳ２０３におけるＴＣＰ接続開始パケット２１１により開始されるＴＣＰ接続を介した通信と、第２の接続要求シーケンスのステップＳ２０６におけるＴＣＰ接続開始パケット２２１により開始されるＴＣＰ接続を介した通信とは、ＳＳＬ（Secure Sockets Layer）とは異なる暗号化通信を用いてもよい。又は、これらステップＳ３及びＳ６におけるＴＣＰ通信の暗号化は省略されてもよい。この場合、ステップＳ３において、要求発行機器１０２は、ＴＣＰ接続開始パケット２１１を送信してＴＣＰ接続を確立した後すぐに接続要求パケット２１７を送信し、ステップＳ６において、サーバ装置１０１は、ＴＣＰ接続開始パケット２２１を受信した後すぐに接続要求パケット２２６を送信してもよい。
【０１１１】
また、データ通信シーケンスのステップＳ２０９の処理は、ステップＳ２０２及びＳ２０６と同様に、ＳＳＬなどの暗号化通信を用いて実行してもよい。また、ステップＳ２０９におけるデータの送受信は、ＵＤＰなど他の伝送プロトコルを用いて実行してもよい。
【０１１２】
また、図７及び図８に示す機器登録パケット２０１、接続要求パケット２１７、接続要求通知パケット２０５及び接続要求パケット２２６は一例であって、他のフィールドが含まれていてもよいし、各フィールドの順序が異なっていてもよい。
【０１１３】
また、図１から図９で用いているＩＰアドレス、ポート番号及び機器ＩＤは一例であって、他の値であっても構わない。
【０１１４】
本発明はさらに別の実施形態として、図２乃至図４に示された処理に係る各ステップを含むプログラムとして提供してもよく、あるいは、上記プログラムを記録し、コンピュータが読み取り可能な記録媒体として提供してもよい。この場合、上記プログラムを、インターネットに接続されたコンピュータ又は機器に読み込ませて、上記プログラム中の各ステップを当該コンピュータ又は機器に実行させることにより、当該コンピュータ又は機器を、以上説明された実施形態におけるサーバ装置１０１、要求発行機器１０２、及び／又は要求受諾機器１０３として動作させることができる。上記プログラムを記録した記録媒体の例として、ＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭ等の光記録媒体、フレキシブルディスク及びハードディスク等の磁気記録媒体、又は半導体記憶装置などが可能であるが、それらに制限されない。また、上記プログラムは、インターネットなどのネットワークを介して分配されてもよい。
【産業上の利用可能性】
【０１１５】
以上説明したように、本発明によれば、インターネット（ＷＡＮ）に接続された異なるＬＡＮ上の機器同士で、不正アクセスができないピアツーピア通信を容易に実現する通信システムを提供することができる。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施形態に係る通信システムのネットワーク構成を示すブロック図である。
【図２】図１の通信システムにおいて実行される通信シーケンスの一例を示すシーケンス図である。
【図３】図２の第１の接続要求シーケンスＳ２０３の詳細な処理を示すシーケンス図である。
【図４】図２の第２の接続要求シーケンスＳ２０６の詳細な処理を示すシーケンス図である。
【図５】図１の要求発行機器１０２及び要求受諾機器１０３に対してサーバ装置１０１の正当性を認証するための認証局装置５１を示すブロック図である。
【図６】図１のルータ装置１０４ａの内部のメモリに格納しているＮＡＰＴテーブルの一例を示す表である。
【図７】（ａ）は図２のＬＡＮ側での機器登録パケット２０１の構成を示す図であり、（ｂ）は図２のＷＡＮ側での機器登録パケット２０１の構成を示す図であり、（ｃ）は図３のＬＡＮ側での接続要求パケット２１７の構成を示す図であり、（ｄ）は図３のＷＡＮ側での接続要求パケット２１７の構成を示す図である。
【図８】（ａ）は図２のＬＡＮ側での接続要求通知パケット２０５の構成を示す図であり、（ｂ）は図２のＷＡＮ側での接続要求通知パケット２０５の構成を示す図であり、（ｃ）は図４のＬＡＮ側での接続要求パケット２２６の構成を示す図であり、（ｄ）は図４のＷＡＮ側での接続要求パケット２２６の構成を示す図である。
【図９】図１のサーバ装置１０１で保存している機器情報リストの一例を示す表である。
【図１０】従来技術の通信システムのネットワーク構成の一例を示すブロック図である。
【図１１】ルータ装置１０４のＮＡＰＴ機能を用いた通信の通信シーケンスの一例を示すシーケンス図である。
【図１２】ルータ装置１０４のＮＡＰＴテーブルの一例を示す表である。
【図１３】図１０の通信システムの通信シーケンスの一例を示すシーケンス図である。
【符号の説明】
【０１１７】
５１…認証局（ＣＡ）装置、
５２…ＣＡ公開鍵、
５３…ＣＡ秘密鍵、
５４…サーバ証明書データ発行パケット、
５５…ＣＡ証明書データパケット、
６１…サーバ秘密鍵、
６２…サーバ公開鍵、
６３…サーバ証明書データ要求パケット、
６４…署名、
６５…サーバ証明書データ、
７１…要求発行機器側通信用共通鍵作成情報、
７２…サーバ装置側通信用共通鍵作成情報、
８１…要求受諾機器側通信用共通鍵作成情報、
８２…サーバ装置側通信用共通鍵作成情報、
７３，８３…通信用共通鍵、
１０１…サーバ装置、
１０２…要求発行機器、
１０３…要求受諾機器、
１０４ａ，１０４ｂ…ルータ装置、
１０５…インターネット（ＷＡＮ）、
１０６ａ，１０６ｂ…ＬＡＮ、
２０１…機器登録パケット、
２０５…接続要求通知パケット、
２０８，２１１，２２１…ＴＣＰ接続開始パケット、
２１２，２２２…暗号化通信開始要求パケット、
２１３，２２３…暗号化通信開始応答パケット、
２１４…サーバ証明書データパケット、
２１５…要求発行機器側通信用共通鍵作成情報パケット、
２１６，２２５…サーバ装置側通信用共通鍵作成情報パケット、
２１７，２２６…接続要求パケット、
２２４…要求受諾機器側通信用共通鍵作成情報パケット。
【図１】
2005236728.tif 000003
【図２】
2005236728.tif 000004
【図３】
2005236728.tif 000005
【図４】
2005236728.tif 000006
【図５】
2005236728.tif 000007
【図６】
2005236728.tif 000008
【図７】
2005236728.tif 000009
【図８】
2005236728.tif 000010
【図９】
2005236728.tif 000011
【図１０】
2005236728.tif 000012
【図１１】
2005236728.tif 000013
【図１２】
2005236728.tif 000014
【図１３】
2005236728.tif 000015