説明

通信装置、通信方法及びプログラム

【課題】通信装置のセキュリティを向上させる。
【解決手段】通信装置101bは、クライアント装置のデータ通信に係る情報である少なくとも一つのクライアント情報を通信装置101aから受け付け、クライアント情報に対応する、サーバ装置のデータ通信に係る情報であるサーバ情報を選択する。そして、通信装置101aは、選択したサーバ情報に従って通信装置101bからの通信接続を待ち受け、サーバ情報を通信装置101aに対して通知する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信相手とネゴシエーションを行うことによりデータ通信を開始する技術に関するものである。
【背景技術】
【0002】
近年、通信装置間で確立された仮想的な通信路(セッション)に基づいて、IP(Internet Protocol)網上におけるデータ通信を実現する技術が普及しつつある(例えば、特許文献1参照)。
【0003】
通信装置間のセッションの確立、維持、切断を制御するためのセッション制御プロトコルとして、SIP(Session Initiation Protocol;RFC3261)と呼ばれるプロトコルがある。このSIPを使用して通信装置が相手装置とデータ通信を開始する場合に、データ通信の各種パラメータをネゴシエーションする方法として、Offer−Answerモデルや、TCPによるデータ通信を行う場合のTCPの接続を行う通信端末を決定するためのモデルが規定されている。
【0004】
Offer−Answerモデルは、データ通信の開始依頼を行う通信端末がデータ通信で使用可能な各種パラメータを提案し、通信相手がその提案の中から実際にデータ通信で使用するパラメータを回答するというモデルである(例えば、非特許文献1参照)。
【0005】
また、データ通信でTCPを使用する場合は、TCPの接続を行う端末の決定のために、データ通信の開始依頼を行う通信端末がネゴシエーション情報に”Active“、”Passive“又は”Actpass“という接続モードを含めて提案する。そして、相手の通信装置がその提案の中からTCPの接続モード選択することによってTCP接続端末を決定する(例えば、非特許文献2参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−110387号公報
【非特許文献】
【0007】
【非特許文献1】RFC3264「An Offer/AnswerModel with SIP」
【非特許文献2】RFC4145「TCP−Based MediaTransport in the SIP」
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来のOffer−Answerモデルでは、通信装置がデータ通信の各種パラメータを提案する際に、データ通信可能な全てのパラメータを相手の通信装置に提示し、相手側がその中からデータ通信で使用するパラメータを選択する。従って、パラメータを提案した通信装置は、相手の通信装置に自身の能力や設定等のパラメータを全て知られてしまう問題がある。
【0009】
具体例として、Offer−Answerモデルに基づき、データ通信で使用するSSL VPNの接続設定をネゴシエーションする場合について説明する。SSL VPNは、TCPによって接続されるため、接続を開始する際は、クライアントからサーバに接続する必要がある。また、暗号の種別や圧縮の有無等の設定をサーバ、クライアントの双方でネゴシエーションする必要がある。さらに、サーバはTCPの接続待受け情報として、少なくとも自身へアクセスするためのIPアドレスとポート番号をクライアントに対して通知する必要がある。
【0010】
まず始めに、通信装置は、自身がサポートしている全てのVPNの設定を提案する。その提案した設定の中には、クライアントとして接続可能な暗号種別等の設定、サーバとして接続可能な暗号種別の情報、及び、自身へアクセスするためのIPアドレスとポート番号等がいくつか含まれている。相手の通信装置はその中から実際に使用する設定を回答することによってデータ通信で使用するVPNのネゴシエーションを行う。
【0011】
ここで問題となるのは、実際に使用しないVPNの設定も相手に提案することである。特にサーバの情報を相手に知られることは、セキュリティ上好ましくないことはいうまでもない。
【0012】
そこで、本発明の目的は、通信装置のセキュリティを向上させることにある。
【課題を解決するための手段】
【0013】
本発明の通信装置は、クライアント装置のデータ通信に係る情報である少なくとも一つのクライアント情報を通信相手から受け付ける受付手段と、前記受付手段により受け付けた前記クライアント情報に対応する、サーバ装置のデータ通信に係る情報であるサーバ情報を選択する選択手段と、前記選択手段により選択された前記サーバ情報に従って、前記通信相手からの通信接続を待ち受ける待受け手段と、前記サーバ情報を前記通信相手に対して通知する通知手段とを有することを特徴とする。
【発明の効果】
【0014】
本発明においては、データ通信に必要なサーバ情報のみを通信相手に通知しているため、余計なサーバ情報を通信相手に知られることはなく、セキュリティを向上させることができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態に係るネットワークシステムの構成を示す図である。
【図2】通信装置のハードウェア構成を示す図である。
【図3】通信装置のソフトウェア構成を示す図である。
【図4】データ通信開始手順を示す図である。
【図5】データ通信開始手順を示す図である。
【図6】データ通信開始手順を示す図である。
【図7】データ通信開始手順について、SSL VPN接続が不能である場合の手順を示す図である。
【図8】SSL VPNによるデータ通信である場合のデータ通信開始処理の流れを示す図である。
【図9】SSL VPNによるデータ通信である場合のデータ通信開始処理の流れを示す図である。
【図10】SSL VPNによるデータ通信である場合のデータ通信開始処理の流れを示す図である。
【図11】SSL VPNによるデータ通信である場合のデータ通信開始処理の流れを示す図である。
【図12】SSL VPNによるデータ通信である場合のデータ通信開始処理の流れを示す図である。
【図13】SSL VPNによるデータ通信である場合のデータ通信開始処理の流れを示す図である。
【図14】SSL VPNクライアント情報を含むSDPの例、及び、SSL VPNサーバ情報を含むSDPの例を示す図である。
【図15】UAC及びUASと、SSL VPNクライアント情報及びSSL VPNサーバ情報との対応を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0017】
図1は、本発明の実施形態に係るネットワークシステムの構成を示す図である。図1において、100は、インターネットや公衆ネットワーク網等の通信ネットワーク網である。同ネットワーク網はLAN等のネットワークであってもよい。
【0018】
101a及び101bは、ネットワーク網100に接続し、PC、サーバ、STB(Set-top Box)やルータ等の通信装置である。通信装置101aと通信装置101bは、SIP−UA機能を有し、SIPを利用して通信装置101a及び101b間のセッションを確立する機能を有する。さらには、SIPにて確立したセッション上に、Secure Socket Layer Virtual Private Network(以下、SSL VPN)接続を行い、データ通信を行う機能を有する。本実施形態ではSSL VPN接続を行うが、他のTLS(Transport Layer Security)、DTLS(Datagram Transport Layer Security)等でもよい。
【0019】
102a及び102bは、ネットワーク網100と通信装置101a又は101bを接続するアクセスネットワークであり、有線接続、無線接続であってもよい。
【0020】
103は、ネットワーク網100の中にあり、SIPに基づくアドレス解決やメッセージの転送等、各種呼制御サービスを提供する呼制御サーバである。
【0021】
図2は、本実施形態における通信装置101a及び101bのハードウェア構成を示す図である。なお、通信装置101a及び101bは、PC(パーソナルコンピュータ)等のコンピュータシステムには限られない。即ち、コンピュータシステム以外に、ワークステーション、ノートブックPC、パームトップPC、コンピュータを内蔵した各種家電製品、通信機能を有するゲーム機、携帯電話、PDA、リモートコントローラ等でも実施可能である。また、通信装置101a及び101bは、データ受信サービス及びデータ供給サービスを提供する装置と一体となっていても構わない。
【0022】
201は、コンピュータシステムの制御を司る中央演算装置(以下、CPU)である。202は、ランダムアクセスメモリ(以下、RAM)であり、CPU201の主メモリとして、及び、実行プログラムの領域や該プログラムの実行エリア並びにデータエリアとして機能する。
【0023】
203は、CPU201の動作処理手順を記録しているリードオンリーメモリ(以下、ROM)である。ROM203には、コンピュータシステムの機器制御を行うシステムプログラムである基本ソフト(OS)を記録したプログラムROMとシステムを稼動するために必要な情報等が記録されたデータROMがある。ROM203の代わりに後述のHDD209を用いる場合もある。
【0024】
204は、ネットワークインタフェース(以下、NETIF)であり、ネットワーク(例えば、ネットワーク102a又は102b)を介してコンピュータシステム間のデータ転送を行うための制御や接続状況の診断を行う。通信装置101aのNETIF204は、ネットワーク102a、ネットワーク網100を介して通信装置102bとの間の信号の送受信を行う。また、呼制御サーバ103を介して信号の送受信を行う場合もある。すなわち、通信装置101aは、例えば本実施形態で通信装置102bとの間で行われる、SIPの接続要求、最終応答、応答確認等の信号の送受信を、NETIF204から行う。205は、ビデオRAM(以下、VRAM)であり、コンピュータシステムの稼動状態を示す後述するCRT206の画面に表示される画像を展開し、その表示の制御を行う。206は、表示装置であって、例えばディスプレイである。以下、この表示装置をCRT206と記す。
【0025】
207は、後述する外部入力装置208からの入力信号を制御するコントローラである。208は、コンピュータシステムの利用者がコンピュータシステムに対して行う操作を受付けるための外部入力装置であり、例えば、キーボード等である。209は、記憶装置を示し、例えばハードディスク等である。記憶装置209はアプリケーションプログラムや画像情報等のデータ保存用に用いられる。本実施形態におけるアプリケーションプログラムとは、本実施形態を構成する、セッションの確立手順中にサービス開始の指示を行うソフトウェアプログラム等である。
【0026】
210は、外部入出力装置であって、例えばフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ等のリムーバブル記憶メディアを入出力するものであり、上述したアプリケーションプログラムの媒体からの読み出し等に用いられる。以下、外部入出力装置をFDDと記す。なお、HDD209に格納するアプリケーションプログラムやデータをFDD210に格納して使用することも可能である。200は、上述した各ユニット間の接続するための入出力バス(アドレスバス、データバス及び制御バス)である。
【0027】
次に、図3を用いて通信装置101a及び101bのソフトウェア構成について説明する。なお、当該ソフトウェアは、例えばHDD209に記憶され、CPU201から必要に応じて適宜RAM202に読み出され、実行される。
【0028】
TCP/IP310は、通信ネットワークで標準的に使用されるTCP/IPプロトコルを用いて、メディア制御部320やシグナリング制御部330でやり取りするメッセージの伝送を行うモジュールである。
【0029】
メディア制御部320は、通信装置101aと101bの間でデータ通信を行うためのモジュールである。本実施形態では、相手の通信装置とSSL VPNの接続/切断、データ転送を行うモジュールである。
【0030】
接続情報321は、SSL VPNクライアント情報として、サポートしている暗号種別(例えば、AES、DES等の情報)を保持している。また、接続情報321は、SSL VPNクライアントの情報として、暗号種別毎の鍵長(例えば、128bit、256bit等の情報)、データ圧縮(例えば、ZLIB、LZO)可否等の情報を保持している。また、接続情報321は、SSL VPNサーバ情報として、暗号種別(例えば、AES、DES)、暗号種別毎の鍵長(例えば、128bit、256bit)、データ圧縮(例えば、AES、DES)可否等の情報を保持している。さらに、接続情報321は、IPアドレス、ポート番号等を保持している。ところで、AESはAdvanced Encryption Standard、DESはData Encryption Standardの略称である。
【0031】
シグナリング制御部330は、通信装置101aと101bとの間でセッションを確立するために、SIPの規定に従い、制御メッセージの送受信を行うモジュールである。
【0032】
メディアネゴシエーション部340は、通信装置101aと101bとの間でセッションを確立する際に、相手からのSIPメッセージに付加されているSDPを取得し、解析する。さらに、メディアネゴシエーション部340は、SDPから取得した相手のSSL VPNクライアント情報に対応した、接続情報321から取得したSSL VPNサーバ情報を基にSDPの作成を行う。さらには、メディアネゴシエーション部340は、接続情報321から取得したSSL VPNクライアント情報を基にSDPの作成を行う。
【0033】
次に、図4乃至図6を参照しながら、本実施形態におけるデータ通信開始手順について、SSL VPNによるデータ通信である場合を例に挙げて説明する。なお、図4乃至図6に示すデータ通信は、セッション制御プロトコルに従って実行される。
【0034】
通信装置101aがUAC(SIP User Agent Client)であり、通信装置101bがUAS(SIP User Agent Server)であるとする。UAC(通信装置101a)は、通信装置101bを示すSIP−URI(SIP Uniform Resource Identifier)がユーザに入力されることによって、UAS(通信装置101b)に対して接続要求を行う。
【0035】
図4、図5及び図6では、UACとUASが直接メッセージの送受信を行っているが、UACとUASの間に、SIPサーバやルータ、その他装置を中継してSIPメッセージ又はデータ通信を行う場合もある。
【0036】
通信装置101bに対して接続要求を行う通信装置101aが、SSL VPNのクライアント(クライアント装置)になる場合について、図4を用いて説明する。
【0037】
通信装置101aは、ユーザからの接続指示によって、接続情報321に保存している少なくとも1個以上のSSL VPNクライアント情報を付加したSDPを含むINVITEメッセージを、通信装置101bに送信する(S101)。これにより、通信装置101aによるSSL VPN接続の提案が行われる。SSL VPNクライアント情報は、通信装置101aがサポートしているSSL VPNクライアントの種別を含んでいる。SSL VPNクライアントの種別は、暗号種別やデータ圧縮有無等のデータ通信の各種パラメータ設定の組み合わせである。図15(A)の場合、「暗号種別がAES、鍵長が128bit、データ圧縮可能、クライアント」と、「暗号種別がDES、鍵長が256bit、データ圧縮可能、クライアント」を含むSDPとなる。なお、図15は、UAC及びUASと、SSL VPNクライアント情報及びSSL VPNサーバ情報との対応を示す図である。なお、S101において、通信装置101bが通信相手である通信装置101aからINVITEメッセージを受け付ける処理は、本発明の受付手段の処理例である。また、通信装置101aが通信装置101bに対してINVITEメッセージを送信する処理は、本発明の依頼手段の処理例である。
【0038】
INVITEメッセージを受信した通信装置101bは、INVITEメッセージに含まれるSDPを解析し、通信装置101aが提案したSSL VPNクライアント情報を取得する。そして、通信装置101bは、提案されたSSL VPNクライアント情報の中からデータ通信で使用するSSL VPNクライアント情報を選択し、対応するSSL VPNサーバ情報を付加したSDPを含む暫定応答を通信装置101aに送信する(S102)。これにより、SSL VPN接続の回答を行う。暫定応答ではなく最終応答である200レスポンスに同SDPを付加して送信してもよい。SSL VPNサーバ情報には、選択した暗号種別やデータ圧縮有無等の各種設定や、通信装置101aからのSSL VPN接続を待受けるIPアドレスとポート番号のデータ通信のパラメータが含まれる。図15(A)の場合、「暗号種別がAES、鍵長が128bit、データ圧縮が有効、自身のIPアドレス、ポート番号11111、サーバ」を含むSDPを返す。自身のIPアドレスとは、通信装置101bへアクセスするためのIPアドレスであり、通信装置101bのIPアドレスもしくは、ルータを介してデータ通信する場合は、ルータの外部IPアドレスである。なお、S102において、通信装置101bが、データ通信で使用するSSL VPNクライアント情報に対応するSSL VPNサーバ情報を選択する処理は、本発明の選択手段の処理例である。また、S102において、通信装置101bが選択したSSL VPNサーバ情報を通信装置101aに送信する処理は、本発明の通知手段の処理例である。さらに、S102において、通信装置101aが通信装置101bからSSL VPNサーバ情報を付加したSDPを含む暫定応答を受け取る処理は、本発明の受取手段の処理例である。
【0039】
通信装置101bは、暫定応答を送信した後に、最終応答200レスポンスを送信する(S103)。同200レスポンスは、暫定応答に含まれるSDPと同じSDPを含んでもよい。また、暫定応答と最終応答の間にPRACKリクエストによる暫定応答の信頼性を確保してもよいが、図4では省略している。
【0040】
最終応答を受信した通信装置101aは、ACKメッセージを通信装置101bに送信する(S104)。さらに、通信装置101aは、暫定応答もしくは、最終応答に含まれるSDPに記述されている通信装置101bのSSL VPNサーバ情報を基に、通信装置101bにSSL VPN接続を行う(S105)。図4ではACKメッセージの送受信(S104)の後にSSL VPNの接続(S105)を行っているが、暫定応答(S102)受信の後、もしくは、最終応答(S103)の後にSSL VPNの接続(S105)を行ってもよい。なお、S105は、本発明における接続手段の処理例である。
【0041】
このように通信装置101bは、通信装置101aに余計なSSL VPNサーバ情報を知られることなく、SSL VPN接続が可能である。即ち、通信装置101bは、通信装置101aにデータ通信で使用するSSL VPNサーバ情報のみ通知するので、データ通信で使用しない他のSSL VPNサーバ情報を知られることなく、SSL VPN接続が可能となる。図15(A)の場合、通信装置101bはAES−128のSSL VPNサーバ情報のみを通知するので、DES−128のSSL VPNサーバ情報の存在は通信装置101aに知られることはない。
【0042】
次に、通信装置101bに対して接続要求を行う通信装置101aが、SSL VPNのサーバ(サーバ装置)になる場合について、図5を用いて説明する。
【0043】
通信装置101aは、ユーザからの接続指示によって、データ通信の開始依頼であるINVITEメッセージを通信装置101bに送信する(S201)。なお、S201において、通信装置101bがINVITEメッセージを受け付ける処理は、本発明における受付手段の処理例である。
【0044】
INVITEメッセージを受信した通信装置101bは、少なくとも1個以上のSSL VPNクライアント情報を付加したSDPを含む暫定応答を通信装置101aに送信し(S202)、SSL VPN接続の提案を行う。SSL VPNクライアント情報は、通信装置101bがサポートしているSSL VPNクライアントの種別である。図15(B)の場合、「暗号種別がAES、鍵長が128bit、データ圧縮不可、クライアント」や、「暗号種別がDES、鍵長、256bit、データ圧縮不可、クライアント」のクライアントが行うデータ通信のパラメータを含むSDPとなる。なお、S202は、本発明の応答手段の処理例である。
【0045】
暫定応答を受信した通信装置101aは、複数のSSL VPNクライアント情報から、データ通信で使用するSSL VPNクライアント情報を1個選択し、対応するSSL VPNサーバ情報を付加したSDPを含むPRACKを送信する(S203)。図15(B)の場合、「暗号種別がDES、鍵長が256bit、データ圧縮不可、自身のIPアドレス、ポート番号33333、サーバ」のサーバが行うデータ通信のパラメータを含むSDPとなる。なお、PRACKメッセージに同SDPを含めずに送信し、UPDATEリクエストにて同SDPを付加して送信してもよい。なお、通信装置101bがSSL VPNサーバ情報の受信(S203)を待ち受ける処理は、本発明の通知待ち手段の処理例である。
【0046】
PRACKを受信した通信装置101bは、PRACKに対する応答(S204)と、INVITEに対する最終応答(S205)とを送信する。最終応答を受信した通信装置101aは、ACKメッセージを通信装置101bに送信する(S206)。
【0047】
ACKメッセージを受信した通信装置101bは、PRACKメッセージのSDPに含まれるSSL VPNサーバ情報を基に、通信装置101aにSSL VPN接続を行う(S207)。なお、S207は、本発明における接続手段の処理例である。
【0048】
このように通信装置101bは、通信装置101aにSSL VPNサーバ情報を知られることなく、SSL VPN接続が可能である。さらに、通信装置101aは、通信装置101bにデータ通信で使用するSSL VPNサーバ情報のみ通知するので、データ通信で使用しない他のSSL VPNサーバ情報を知られることなく、SSL VPN接続が可能となる。
【0049】
次に、通信装置101aによって接続要求を行われた通信装置101bが、通信装置101aが提案したSSL VPNクライアント情報に対応したSSL VPNサーバをサポートしていない場合について、図6を用いて説明する。
【0050】
S301はS101と同様である。図15(C)の場合、「暗号種別はDES、鍵長は256bit、データ圧縮不可、クライアント」を含むSDPとなる。
【0051】
INVITEメッセージを受信した通信装置101bは、INVITEメッセージに含まれるSDPを解析し、SSL VPNクライアント情報を取得する。しかしながら、通信装置101bは、取得したSSL VPNクライアント情報に対応するSSL VPNサーバをサポートしていないと判断した場合、少なくとも1個以上のSSL VPNクライアント情報を付加したSDPを含む183暫定応答を送信する(S302)。これにより、SSL VPN接続の再提案を行う。図15(C)は、受信したクライアント情報「暗号種別がDESで鍵長、256bit、データ圧縮不可、クライアント」に対応できるSSL VPNサーバを送信装置101bでサポートしていない場合を示している。この場合、S302で送信されるSPDは通信装置101bが対応しているSSL VPNクライアント情報として「暗号種別がDES、鍵長が256bit、データ圧縮不可、クライアント」と、「暗号種別がAES、鍵長が128bit、データ圧縮不可、クライアント」を含むSDPとなる。
【0052】
暫定応答を受信した通信装置101aは、暫定応答にSSL VPNサーバ情報ではなく、SSL VPNクライアント情報が含まれていると判断すると、PRACKを送信する(S303)。さらに、通信装置101aは、複数のSSL VPNクライアント情報から、SSL VPNで使用するSSL VPNクライアント情報を1個選択し、対応するSSL VPNサーバ情報を付加したSDPを含むUPDATEリクエストを送信する(S305)。これにより、SSL VPN接続の回答を行う。図15(C)の場合、「暗号種別がDES、鍵長が256bit、データ圧縮不可、自身のIPアドレス、ポート番号3333、サーバ」を含むSDPで回答する。なお、UPDATEではなく、PRACKにSDPを含めて送信してもよい。
【0053】
PRACKを受信した通信装置101bは、PRACKに対する応答を行う(S304)。UPDATEを受信した通信装置101bは、UPDATEの応答を通信装置101aに送信する(S306)。
【0054】
UPDATEの応答を受信した通信装置101aは、ACKメッセージを通信装置101bに送信する(S307)。ACKメッセージを受信した通信装置101bは、UPDATEメッセージのSDPに含まれるSSL VPNサーバ情報を基に、通信装置101aにSSL VPN接続を行う(S308)。
【0055】
このように通信装置101bは、通信装置101aにSSL VPNサーバ情報を知られることなく、SSL VPN接続が可能である。さらに、通信装置101aは、通信装置101bにデータ通信で使用するSSL VPNサーバ情報とSSL VPNクライアント情報のみ通知するので、データ通信で使用しない他のSSL VPNサーバ情報を知られることなく、SSL VPN接続が可能となる。
【0056】
次に、本実施形態におけるデータ通信開始手順について、SSL VPN接続が不能である場合の手順を図7にて説明する。
【0057】
通信装置101aがUAC(SIP User Agent Client)であり、通信装置101bがUAS(SIP User Agent Server)であるとする。UAC(通信装置101a)は、通信装置101bを示すSIP−URI(SIP Uniform Resouse Identifier)をユーザから入力されることによって、UAS(通信装置101b)に対して接続要求を行う。
【0058】
図7は、UACとUASが直接データ通信を行っているが、UACとUASの間にSIPサーバや、その他装置を中継してSIPメッセージの通信を行う場合もある。
【0059】
通信装置101aが提案したSSL VPNクライアント情報に対応したSSL VPNサーバを、通信装置101bがサポートしていないためにデータ通信ができない場合について、図7(A)を用いて説明する。
【0060】
S401はS101と同様である。INVITEメッセージを受信した通信装置101bは、INVITEメッセージに含まれるSDPを解析し、SSL VPNクライアント情報を取得する。通信装置101bは、取得したSSL VPNクライアント情報に対応するSSL VPNサーバをサポートしておらず、且つSSL VPNクライアント機能をサポートしていない場合、通信不能と判断する(S402)。
【0061】
通信不能と判断した通信装置101bは、エラーレスポンスを通信装置101aに送信する(S403)。エラーレスポンスを受信した通信装置101aは、ACKを送信するとともに(S404)、ユーザに対してデータ通信ができなかった旨を伝える。
【0062】
次に、通信装置101aが、通信装置101bが提案したSSL VPNクライアント情報に対応したSSL VPNサーバをサポートしていないために、データ通信ができない場合について、図7(B)を用いて説明する。
【0063】
S501〜S502は、S201〜S202と同じである。暫定応答を受信した通信装置101aは、通信装置101bが提案したSSL VPNクライアントに対応するSSL VPNサーバをサポートしておらず、且つ、SSL VPNクライアントもサポートしていない場合は、通信不能と判断する(S503)。
【0064】
通信不能と判断した通信装置101aは、SIPプロトコルの規定に基づきセッション確立要求を途中キャンセルさせることを要求する(S504)。途中キャンセルを受け付けた通信装置101bは、その要求を受け付けたことに対する応答を行い(S505)、さらに、セッション確立をキャンセルした旨のレスポンスを送信する(S506)。上記レスポンスを受信した通信装置101aは、ARKを送信する(S507)。さらに、通信装置101aは、通信装置101bとのデータ通信が不能であった旨を伝える。
【0065】
次に、通信装置101a及び通信装置101bがともに提案したSSL VPNクライアント情報に対応したSSL VPNサーバをサポートしていないために、データ通信ができない場合について、図7(B)を用いて説明する。この場合、S501〜S502においては、S301〜S302と同じ処理が実行される。S503〜S507は、上述したとおりの処理が行われる。
【0066】
次に、SSL VPNによるデータ通信である場合のデータ通信開始処理の流れについて図8〜図13を参照しながら説明する。通信装置101aがUAC(SIP User Agent Client)であり、通信装置101bがUAS(SIP User Agent Server)であるとする。
【0067】
UAC(通信装置101a)の処理の流れを図8〜図10を用いて説明する。図8において、通信装置101aは、通信装置101bを示すSIP−URIがユーザに入力されることによって、UAS(通信装置101b)に対して接続要求を開始する(F101)。なお、SIP−URIは、SIP Uniform Resouse Identifierの略称である。
【0068】
接続要求を開始によって、通信装置101aは、自身がサポートしているSSL VPNクライアントの情報(SSL VPNクライアント情報)の取得を試み(F102)、取得できたか否かを判断する(F103)。
【0069】
SSL VPNクライアント情報を取得できた場合、通信装置101aは、SSL VPNクライアント情報を付加したSDPを含むINVITEメッセージを作成する。さらに、通信装置101aは、通信装置101bにINVITEメッセージを送信し(F201)、通信装置101bからのINVITEに対するレスポンスを待つ(F202)。
【0070】
通信装置101bからのレスポンスを受信した場合(F203)、通信装置101aは、そのレスポンスがエラーであるか否かを判断する(F204)。レスポンスがエラーの場合、通信装置101aはエラー処理を実行する(F210)。エラー処理は、接続処理を実行した際に確保したリソースの開放、SIPプロトコルに基づくセッションの終了処理、ユーザへの接続失敗通知等を含む。一方、受信したレスポンスがエラーではない場合、通信装置101aは、INVITEメッセージに含まれるSDPにSSL VPNサーバ情報が付加されているか否か判断する(F205)。
【0071】
SSL VPNサーバ情報が含まれている場合、通信装置101aは、そのSSL VPNサーバ情報に含まれているIPアドレスとポート番号宛てにSSL VPN接続処理を実行する(F206)。
【0072】
一方、INVITEメッセージにSSL VPNサーバ情報が含まれていない場合、通信装置101aは、SSL VPNクライアント情報が含まれているか否かを判断する(F207)。SSL VPNクライアント情報が含まれていない場合、通信装置101aは、受信したレスポンスが最終応答か暫定応答かを判断する(F208)。暫定応答の場合、レスポンス待ち状態へ戻る(F202)。一方、最終応答の場合、通信装置101aはエラー処理を実行する(F209)。エラー処理は、接続処理を実行した際に確保したリソースの開放、SIPプロトコルに基づくセッションの終了処理、ユーザへの接続失敗通知等を含む。
【0073】
INVITEメッセージにSSL VPNクライアント情報が含まれている場合、通信装置101aは、後述するSSL VPNサーバ情報の選択を行う(F306)。
【0074】
ところで、F103でSSL VPNクライアント情報を取得できなかった場合、通信装置101aは、SSL VPNクライアント情報を含まないINVITEメッセージを通信装置に送信する(F301)。そして、通信装置101aは、通信装置101bからのINVITEメッセージに対するレスポンス待ちを行う(F302)。
【0075】
通信装置101bからのレスポンスを受信した場合(F303)、通信装置101aは、そのレスポンスがエラーであるか否かを判断する(F304)。エラーの場合、通信装置101aはエラー処理を実行する(F310)。エラー処理は、接続処理を実行した際に確保したリソースの開放、SIPプロトコルに基づくセッションの終了処理、ユーザへの接続失敗通知等を含む。
【0076】
一方、受信したレスポンスがエラーではない場合、通信装置101aは、INVITEメッセージに含まれるSDPにSSL VPNクライアント情報が付加されているか否か判断する(F305)。
【0077】
SSL VPNクライアント情報が含まれていない場合、通信装置101aは、受信したレスポンスが最終応答か暫定応答かを判断する(F311)。暫定応答の場合は、通信装置101aはレスポンス待ち状態へ戻る(F302)。最終応答の場合、通信装置101aはエラー処理を実行する(F312)。エラー処理は、接続処理を実行した際に確保したリソースの開放、SIPプロトコルに基づくセッションの終了処理、ユーザへの接続失敗通知等を含む。
【0078】
SSL VPNクライアント情報が含まれている場合、通信装置101aは、SSL VPNクライアント情報の中から自身がサポートしているSSL VPNサーバの選択を試み(F306)、選択できたか否かを判断する(F307)。SSL VPNクライアントに対応するSSL VPNサーバをサポートしていない場合は、前述したF311の処理以降を実行する。但し、前述したF207からF307の判断を行った場合は、F202のレスポンス待ちへ戻る。
【0079】
SSL VPNクライアント情報に対応するSSL VPNサーバをサポートしている場合、通信装置101aは、同SSL VPNサーバの待受け準備を行い、通信装置101bからのSSL VPN接続を待つ(F308)。
【0080】
次に通信装置101aは、使用するSSL VPNサーバの種別と同SSL VPNサーバの待受け情報としてIPアドレスとポート番号とをSIPのPRACKメッセージ又はUPDATEメッセージのSDPに含めて通信装置101bに送信する(F309)。
【0081】
次に、UAS(通信装置101b)の処理の流れについて、図11〜図13を用いて説明する。通信装置101bは、通信装置101aからのデータ通信の開始依頼であるINVITEメッセージの受信によって、SSL VPN接続処理を開始する(F401)。
【0082】
通信装置101bは、受信したINVITEのSDPに付加されているSSL VPNクライアント情報の取得を試み(F402)、SSL VPNクライアント情報を取得できたか否かを判断する(F403)。
【0083】
クライアントが行うデータ通信のパラメータに係る情報であるSSL VPNクライアント情報が付加されている場合、通信装置101bは、対応するSSL VPNサーバの選択を試みる(F501)。対応するSSL VPNサーバをサポートしていない場合(F502)、通信装置101bは、後述するF601以降の処理を実行する。一方、対応するSSL VPNサーバをサポートしている場合(F502)、通信装置101bは、同SSL VPNサーバに通信装置101aからのSSL VPN接続を待受ける処理を実行する(F503)。なお、F503は、本発明の待受け手段の処理例である。
【0084】
次に、通信装置101bは、選択したSSL VPNサーバの種別とSSL VPNサーバの待受け情報を付加したSDPとを含むレスポンスを通信装置101aに送信する(F504)。レスポンスは、SIPの暫定応答又は最終応答である。暫定応答の場合は、その後に最終応答を送信する。
【0085】
ところで、受信したINVITEにSSL VPNクライアント情報が含まれていない場合(F403)、通信装置101bは、通信装置101b自身がサポートしているSSL VPNクライアント情報の取得を試みる(F601)。SSL VPNクライアント情報を取得することができなかった場合、通信装置101bはエラー処理を実行する(F608)。エラー処理は、接続処理を実行した際に確保したリソースの開放、SIPプロトコルに基づくセッションの終了処理を含む。一方、SSL VPNクライアント情報を取得できた場合、通信装置101bは、同SSL VPNクライアント情報を付加したSDPを含むSIPの暫定応答を通信装置101aに送信する(F603)。
【0086】
暫定応答の送信後は、通信装置101bは、通信装置101aからのサーバ情報通知待ちとして、PRACKメッセージ又はUPDATEメッセージの受信待ちを行う(F604)。
【0087】
PRACK又はUPDATEを受信した場合(F605)、通信装置101bは、そのメッセージに、サーバが行うデータ通信のパラメータに係る情報であるSSL VPNサーバ情報が含まれているか否かを判断する(F606)。もし、SSL VPNサーバ情報を含むPRACK又はUPDATEを受信できず、ある一定時間経過した場合、通信装置101bはエラー処理を実行する(F608)。一方、SSL VPNサーバ情報を含むPRACKメッセージ又はUPDATEメッセージを受信した場合、通信装置101bは、そのSSL VPNサーバ情報に含まれるサーバ種別、IPアドレス、ポート番号従ってSSL VPNサーバに接続処理を実行する(F607)。
【0088】
SSL VPNクライアント情報を含むSDPの例を図14(A)に示す。400は、SSL VPNクライアントのIPアドレスである。410及び420は、1個のSSL VPNクライアント情報である。410は以下の411〜413の情報を含んでおり、420は、421〜423の情報を含んでいる。411及び421は、送信ポートである。412は、使用する暗号種別であり、暗号種別がAES、鍵長128bit、ZLIB対応を示している。本文字列はあくまで例であり、他の文字列を使用してもよい。413及び423は、SSL VPNクライアントであることを示す。412は、使用する暗号種別であり、暗号種別がDES、鍵長256bit、ZLIB対応を示している。本文字列は、あくまで例であり、他の文字列を使用してもよい。
【0089】
次に、SSL VPNサーバ情報を含むSDPの例を、図14(B)を用いて説明する。500は、SSL VPNサーバの待受けIPアドレスである。501は、SSL VPNサーバの待受けポートである。502は、サーバ情報であることを示している。503は、暗号種別がAES、鍵長128bit、暗号がZLIBを使用することを意味している。本文字列はあくまで例であり、他の文字列を使用してもよい。
【0090】
複数のSSL VPNクライアント情報の提案をされ、対応するSSL VPNサーバが複数ある場合にSSL VPNサーバを選択するための優先度テーブルは、例えば、以下の通りである。第一優先は暗号種別である。AESはDESより優先する。第二優先は鍵長である。鍵長が長い方を優先する。第三優先は圧縮の有無である。圧縮があるものをないものより優先する。優先度はテーブルを使用するだけではなく、SDPに記載されているSSL VPNクライアント情報の順番等、他の方法を用いてもよい。
【0091】
暗号種別や鍵長による通信装置の処理負荷や、データ圧縮による通信装置の負荷とデータ転送速度によって優先度を変更することにより、適したSSL VPNの接続を可能とする。
【0092】
本実施形態では、SSL VPNの暗号種別についてネゴシエーションを行ったが、本発明は、通信プロトコルのネゴシエーションを決定する場合にも適応できる。例えば、TLS、DTLS、SOX等のプロトコルのうち、どのプロトコルを使用するかをネゴシエーションする場合等にも適応できる。
【0093】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0094】
100:通信ネットワーク網、101:通信装置、102:アクセスネットワーク、103:呼制御サーバ

【特許請求の範囲】
【請求項1】
通信相手からデータ通信の開始依頼を受け付ける受付手段と、
前記受付手段により前記開始依頼を受け付けた場合、クライアント装置が行うデータ通信のパラメータに係る情報である少なくとも一つのクライアント情報を含む応答を前記通信相手に対して行う応答手段と、
前記応答手段により応答を行った後、サーバ装置が行うデータ通信のパラメータに係る情報であるサーバ情報の通知を待つ通知待ち手段と、
前記通知待ち手段により前記通信相手から前記サーバ情報の通知を受け付けた場合、前記サーバ情報に従って前記通信相手との通信を接続する接続手段とを有することを特徴とする通信装置。
【請求項2】
前記クライアント情報は、前記クライアント装置の通信プロトコルの種別を含む情報であることを特徴とする請求項1に記載の通信装置。
【請求項3】
前記サーバ情報は、前記サーバ装置の通信プロトコルの種別、前記サーバ装置のIPアドレス、及び、前記サーバ装置のポート番号のうちの少なくとも何れか一つを含むことを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
前記受付手段、前記応答手段、前記通知待ち手段及び前記接続手段は、セッション制御プロトコルに従って情報の送信又は受信を行うことを特徴とする請求項1に記載の通信装置。
【請求項5】
通信相手からデータ通信の開始依頼を受け付ける受付ステップと、
前記受付ステップにより前記開始依頼を受け付けた場合、クライアント装置が行うデータ通信のパラメータに係る情報である少なくとも一つのクライアント情報を含む応答を前記通信相手に対して行う応答ステップと、
前記応答ステップにより応答を行った後、サーバ装置が行うデータ通信のパラメータに係る情報であるサーバ情報の通知を待つ通知待ちステップと、
前記通知待ちステップにより前記通信相手から前記サーバ情報の通知を受け付けた場合、前記サーバ情報に従って前記通信相手との通信を接続する接続ステップとを含むことを特徴とする通信方法。
【請求項6】
通信相手からデータ通信の開始依頼を受け付ける受付ステップと、
前記受付ステップにより前記開始依頼を受け付けた場合、クライアント装置が行うデータ通信のパラメータに係る情報である少なくとも一つのクライアント情報を含む応答を前記通信相手に対して行う応答ステップと、
前記応答ステップにより応答を行った後、サーバ装置が行うデータ通信のパラメータに係る情報であるサーバ情報の通知を待つ通知待ちステップと、
前記通知待ちステップにより前記通信相手から前記サーバ情報の通知を受け付けた場合、前記サーバ情報に従って前記通信相手との通信を接続する接続ステップとをコンピュータに実行させるためのプログラム。

【図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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2011−35654(P2011−35654A)
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願番号】特願2009−179811(P2009−179811)
【出願日】平成21年7月31日(2009.7.31)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】