(57)【要約】【課題】制御通信及びメディア通信を行う端末装置において、既存の制御通信モジュール及びメディア通信モジュールに対してほとんど変更を加えることなく、通信暗号化機能等を実現する。【解決手段】相手端末装置と通信ネットワークを介してメディア通信を行う端末装置において、前記相手端末装置と前記端末装置間をメディア通信用に接続するための接続制御通信を行う制御通信手段と、前記相手端末装置とメディア通信を行うメディア通信手段と、前記制御通信手段から出力される制御メッセージを取得し、当該制御メッセージ内に記述された制御メッセージ転送用の通信プロトコルを暗号化通信プロトコルに変換するとともに、当該変換後の制御メッセージを前記暗号化通信プロトコルを用いて前記通信ネットワークに送出する通信処理手段とを備える。【選択図】図２
2010199761.tif 000002
【特許請求の範囲】
【請求項１】
相手端末装置と通信ネットワークを介してメディア通信を行う端末装置であって、
前記相手端末装置と前記端末装置間をメディア通信用に接続するための接続制御通信を行う制御通信手段と、
前記相手端末装置とメディア通信を行うメディア通信手段と、
前記制御通信手段から出力される制御メッセージを取得し、当該制御メッセージ内に記述された制御メッセージ転送用の通信プロトコルを暗号化通信プロトコルに変換するとともに、当該変換後の制御メッセージを前記暗号化通信プロトコルを用いて前記通信ネットワークに送出する通信処理手段と
を備えることを特徴とする端末装置。
【請求項２】
前記端末装置は、NAT装置の配下に備えられ、前記通信ネットワークには、前記メディア通信又は前記接続制御通信を中継するための中継サーバが備えられ、
前記通信処理手段は、
前記NAT装置の外側のアドレス情報を取得し、更に前記中継サーバにより割り当てられた外部通信用アドレスを取得し、前記端末装置のアドレス情報、前記NAT装置の外側のアドレス情報、及び前記中継サーバにより割り当てられた外部通信用アドレス情報を、前記制御通信手段から出力される制御メッセージにICEの規定に基づき付加する手段と、
ICEの規定に基づくアドレス情報が付加された制御メッセージを前記相手端末装置から受信した場合に、ICEの規定に基づくメディア通信経路選択処理を実行するとともに、当該アドレス情報を前記制御メッセージから削除した制御メッセージを前記制御通信手段に渡す手段と
を備えることを特徴とする請求項１に記載の端末装置。
【請求項３】
前記通信処理手段は、前記制御通信手段から出力される制御メッセージ内に記述された前記端末装置のアドレス情報を、前記NAT装置の外側のアドレス情報又は前記外部通信用アドレス情報に変換する手段を備えることを特徴とする請求項２に記載の端末装置。
【請求項４】
前記通信処理手段は、
メディア通信の暗号化に関する情報であるメディア通信暗号化情報を前記制御通信手段から出力される制御メッセージに付加する手段と、
メディア通信暗号化情報が付加された制御メッセージを前記相手通信端末から受信した場合に、当該制御メッセージから当該メディア通信暗号化情報を削除した制御メッセージを前記制御通信手段に渡す手段と、
前記付加されるメディア通信暗号化情報と前記相手通信端末から受信したメディア通信暗号化情報とを用いて、前記メディア通信手段との間で送受信されるメディア通信情報の暗号化及び復号を行う手段と
を備えることを特徴とする請求項１ないし3のうちいずれか1項に記載の端末装置。
【請求項５】
前記通信処理手段は、前記メディア通信暗号化情報を付加した接続要求のための制御メッセージを前記相手端末装置に送信した後に、当該相手端末装置からメディア通信暗号化情報が付加されていない応答メッセージを受信した場合に、前記相手端末装置がメディア通信暗号化機能を備えていないと判断し、暗号化をしないでメディア通信を行うことを特徴とする請求項４に記載の端末装置。
【請求項６】
前記通信処理手段は、前記メディア通信暗号化情報を付加した接続要求のための制御メッセージを前記相手端末装置に送信した後に、当該相手端末装置からエラーメッセージを受信した場合に、前記メディア通信暗号化情報を削除した接続要求のための制御メッセージを前記相手端末装置に送信することを特徴とする請求項４又は５に記載の端末装置。
【請求項７】
相手端末装置と通信ネットワークを介してメディア通信を行う端末装置における通信処理方法であって、
前記相手端末装置と前記端末装置間をメディア通信用に接続するための接続制御通信を行う制御通信手段が、接続制御通信のための制御メッセージを生成し、出力するステップと、
通信処理手段が、前記制御通信手段から出力される制御メッセージを取得し、当該制御メッセージ内に記述された制御メッセージ転送用の通信プロトコルを暗号化通信プロトコルに変換するとともに、当該変換後の制御メッセージを前記暗号化通信プロトコルを用いて前記通信ネットワークに送出するステップと
を備えることを特徴とする通信処理方法。
【請求項８】
相手端末装置と通信ネットワークを介してメディア通信を行う端末装置として使用されるコンピュータを、
前記相手端末装置と前記端末装置間をメディア通信用に接続するための接続制御通信を行う制御通信手段、
前記相手端末装置とメディア通信を行うメディア通信手段、
前記制御通信手段から出力される制御メッセージを取得し、当該制御メッセージ内に記述された制御メッセージ転送用の通信プロトコルを暗号化通信プロトコルに変換するとともに、当該変換後の制御メッセージを前記暗号化通信プロトコルを用いて前記通信ネットワークに送出する通信処理手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、VoIP(Voice over IP)等のメディア通信技術に関するものであり、特に、ＩＰ通信を行う端末装置において、既存の制御通信機能及びメディア通信機能をほとんど変更することなく、NAT越え機能や通信暗号化の機能を実現するための技術に関するものである。
【背景技術】
【０００２】
近年、VoIP技術等を利用したメディア通信サービスが普及しているが、家庭内網や社内網等のプライベートネットワークの中にある端末装置は一般にNAT装置の配下にあるため、そのような端末装置はNAT装置を介して外部の端末装置と通信を行うことになる。
【０００３】
現在普及しているVoIP技術を利用したメディア通信サービスでは一般的に制御通信プロトコルとしてSIP（Session Initiation Protocol）が使われる。しかし、SIPでは、SIPメッセージ送受信に使用するアドレスや、メディア通信に使用するアドレスをSIPメッセージの内部に書き込んでいるため、IPパケットのアドレスがNAT装置により変換されても、SIPメッセージ内部のアドレスが変換されないことから、NAT装置を介して端末装置同士でSIPに基づくメディア通信を行うことは通常は困難である。
【０００４】
このようなことから、SIPを用いた通信においてNAT越えを行うための種々の技術が提案されている（例えば、非特許文献１（ICE: Interactive Connectivity Establishment）、非特許文献２、非特許文献３）。
【０００５】
また、不特定多数の利用者がアクセスするネットワーク上で制御通信やメディア通信をセキュアに行うためには通信の暗号化が必要である。通信の暗号化のためには、例えばSIP over TLS(Transport Layer Security)、SRTP(Secure RTP)、SRTCP(Secure RTCP)等が使われる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】平成２１年２月２０日検索、インターネット、<URL: http://tools.ietf.org/html/draft-ietf-mmusic-ice-19
【非特許文献２】西谷智広、市川弘幸、"NAT越えを支援する「シームレスコネクション」の検討"、電子情報通信学会総合大会、B-6-36, May 2008
【非特許文献３】西谷智広、荒井和博、市川弘幸、"NAT越えを支援する「シームレスコネクション」の検討と評価"、信学技法、108(203), 23-28, Sep. 2008
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ICE等のNAT越え機能や通信暗号化機能を端末装置において実現するには、既存のSIP通信モジュール及びメディア通信モジュールに大幅な機能追加を行う必要がある。そのため、上記機能の実現のために多大な開発コストがかかってしまい、結果としてユーザに提供する製品やサービスが高価なものとなり、メディア通信のシームレスコネクションの普及のために好ましくない。また、SIP通信モジュール及びメディア通信モジュールに機能追加を行う上記の方式では、NAT越え方式や暗号化方式の変更に柔軟に対応することが困難であるという問題もある。
【０００８】
本発明は上記の問題点に鑑みてなされたものであり、制御通信及びメディア通信を行う端末装置において、既存の制御通信モジュール及びメディア通信モジュールに対してほとんど変更を加えることなく、NAT越え機能や通信暗号化機能を実現するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明は、相手端末装置と通信ネットワークを介してメディア通信を行う端末装置であって、前記相手端末装置と前記端末装置間をメディア通信用に接続するための接続制御通信を行う制御通信手段と、前記相手端末装置とメディア通信を行うメディア通信手段と、前記制御通信手段から出力される制御メッセージを取得し、当該制御メッセージ内に記述された制御メッセージ転送用の通信プロトコルを暗号化通信プロトコルに変換するとともに、当該変換後の制御メッセージを前記暗号化通信プロトコルを用いて前記通信ネットワークに送出する通信処理手段とを備えることを特徴とする端末装置として構成される。
【００１０】
この構成によれば、制御通信手段に制御メッセージ転送のための暗号化機能を備えることなく制御メッセージ転送のための暗号化機能を実現することが可能となる。
【００１１】
前記の構成において、前記端末装置は、NAT装置の配下に備えられ、前記通信ネットワークには、前記メディア通信又は前記接続制御通信を中継するための中継サーバが備えられ、前記通信処理手段は、前記NAT装置の外側のアドレス情報を取得し、更に前記中継サーバにより割り当てられた外部通信用アドレスを取得し、前記端末装置のアドレス情報、前記NAT装置の外側のアドレス情報、及び前記中継サーバにより割り当てられた外部通信用アドレス情報を、前記制御通信手段から出力される制御メッセージにICEの規定に基づき付加する手段と、ICEの規定に基づくアドレス情報が付加された制御メッセージを前記相手端末装置から受信した場合に、ICEの規定に基づくメディア通信経路選択処理を実行するとともに、当該アドレス情報を前記制御メッセージから削除した制御メッセージを前記制御通信手段に渡す手段とを備えてもよい。
【００１２】
この構成によれば、制御通信手段に対してICEに基づくNAT越え処理が隠蔽され、制御通信手段がICEに基づくNAT越え処理機能を備えることなく端末装置においてICEに基づくNAT越え処理を実現することが可能となる。
【００１３】
また、前記通信処理手段は、メディア通信の暗号化に関する情報であるメディア通信暗号化情報を前記制御通信手段から出力される制御メッセージに付加する手段と、メディア通信暗号化情報が付加された制御メッセージを前記相手通信端末から受信した場合に、当該制御メッセージから当該メディア通信暗号化情報を削除した制御メッセージを前記制御通信手段に渡す手段と、前記付加されるメディア通信暗号化情報と前記相手通信端末から受信したメディア通信暗号化情報とを用いて、前記メディア通信手段との間で送受信されるメディア通信情報の暗号化及び復号を行う手段とを備えることとしてもよい。
【００１４】
この構成によれば、制御通信手段及びメディア通信手段に対してメディア通信暗号化処理が隠蔽され、制御通信手段及びメディア通信手段がメディア通信暗号化機能を備えることなく端末装置においてメディア通信暗号化処理を実現することが可能となる。
【発明の効果】
【００１５】
本発明によれば、制御通信及びメディア通信を行う端末装置において、既存の制御通信モジュール及びメディア通信モジュールに対してほとんど変更を加えることなく、NAT越え機能や通信暗号化機能を実現するための技術を提供できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態におけるシステムの全体構成図である。
【図２】端末装置の機能構成図である。
【図３】シームレス接続部１２の機能構成図である。
【図４】図２に示す端末装置の構成をソフトウェアスタックとして表記した図である。
【図５】端末装置の別の例の機能構成図である。
【図６】図５に示す端末装置の構成をソフトウェアスタックとして表記した図である。
【図７】端末装置T1からSIPサーバSI1に対してREGISTERを行う処理を説明するためのシーケンス図である。
【図８】HTTPSトンネルを経由してREGISTERを行う処理を説明するためのシーケンス図である。
【図９】HTTPトンネルサーバにおけるアドレス割り当てを説明するための図である。
【図１０】ICEの機能を説明するための図である。
【図１１】INVITEのシーケンス図である。
【図１２】INVITEのシーケンス図である。
【図１３】暗号化に関する処理を説明するためのシーケンス図である。
【図１４】暗号化に関する処理を説明するためのシーケンス図である。
【図１５】暗号化に関する処理を説明するためのシーケンス図である。
【図１６】暗号化に関する処理を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施の形態を説明する。  
（システム構成）
図１に、本実施の形態におけるシステムの全体構成を示す。図１に示すように、本実施の形態のシステムは、NAT装置N1、NAT装置N1配下にある端末装置T1、NAT装置N2、NAT装置N2配下にある端末装置T2、SIPサーバSI1、STUNサーバST1、HTTPトンネリングサーバHP1（TURNサーバを兼ねる）、及びHTTPトンネリングサーバHP2（TURNサーバを兼ねる）を有する。SIPサーバSI1とSTUNサーバST1は同一装置内に設けることとしてもよい。
【００１８】
本システムにおいて、NAT装置N1は、グローバルネットワークであるインターネット６に接続されるとともに、プライベートネットワーク７に接続される。また、端末装置T1はプライベートネットワーク７に接続される。NAT装置N2は、インターネット６に接続されるとともに、プライベートネットワーク８に接続される。また、端末装置T2はプライベートネットワーク８に接続される。
【００１９】
HTTPトンネリングサーバHP1は、端末装置T1側にサービスを提供するものとし、HTTPトンネリングサーバHP2は、端末装置T2側にサービスを提供するものとする。
【００２０】
本システムにおけるSIPサーバSI1は、SIPの中継処理を行うサーバである。STUNサーバST1は、STUNの仕様に準拠した機能を有するサーバであり、端末装置からの要求に基づき、NAT装置外部のアドレス情報を返す機能等を有するサーバである。HTTPトンネリングサーバHP1は、端末装置T1との間でHTTPSトンネルを形成する機能と、TURNの仕様に準拠して、端末装置からの要求に基づき、データ中継用のアドレス情報を割り当て、それを端末装置に返す機能、アドレスのバインディング情報を保持し、データの中継を行う機能等を有するサーバである。HTTPトンネリングサーバHP2もHTTPトンネリングサーバH1と同様の機能を有する。つまり、HTTPトンネリングサーバHP1、HP2はそれぞれ、HTTPトンネリングサーバ機能とTURNサーバ機能を有している。
【００２１】
図２に、端末装置T1の機能構成図を示す。なお、特に断らない限り端末装置T2も端末装置T1と全く同じ構成であるため、端末装置T1のみについて説明する。
【００２２】
図２に示すように、端末装置T1は、データ通信部１１、シームレス接続部１２、制御通信部１３、メディア通信部１４、通信アプリケーション部１５を有する。
【００２３】
データ通信部１１は、通信ネットワーク上で他の装置とデータ通信を行うための機能部である。通信アプリケーション部１５は、メディア通信（本実施の形態では音声通信）を実施するためのアプリケーションサービスをユーザに提供する機能部である。
【００２４】
制御通信部１３は、メディア通信のための接続を行うために必要な制御通信を行う機能部であり、本実施の形態では、一般的なSIP／SDP(Session Description protocol)を用いた制御通信を行う機能を有する。メディア通信部１４は、メディア通信を行うための機能部であり、本実施の形態では、RTP／RTCPに基づく音声通信を行う機能を有する。
【００２５】
上記のデータ通信部１１、制御通信部１３、メディア通信部１４、通信アプリケーション部１５を備えることにより、NAT越えや暗号化を行わないメディア通信を行うことは可能である。しかし、これらの機能部だけではNAT越えや暗号化を行うことはできない。そこで、本実施の形態ではシームレス接続部１２が備えられている。
【００２６】
シームレス接続部１２は、制御通信及びメディア通信に係るNAT越え及び暗号化を行うための機能部であるが、シームレス接続部１２は、制御通信部１３及びメディア通信部１４に対してNAT越え及び暗号化に係る処理内容を隠蔽している。
【００２７】
つまり、シームレス接続部１２は、シームレス接続部１２がない通常の構成（データ通信部１１、制御通信部１３、メディア通信部１４、通信アプリケーション部１５からなる構成）で制御通信部１３及びメディア通信部１４がデータ通信部１１に出力する制御通信用メッセージ及びメディア通信データと同様の制御通信用メッセージ及びメディア通信データを制御通信部１３及びメディア通信部１４から受信する。また、シームレス接続部１２は、シームレス接続部１２がない通常の構成で制御通信部１３及びメディア通信部１４がデータ通信部１１から受信する制御通信用メッセージ及びメディア通信データと同様の制御通信用メッセージ及びメディア通信データを制御通信部１３及びメディア通信部１４に対して出力する。  
このようなシームレス接続部１２を備えたため、制御通信部１３及びメディア通信部１４が、NAT越え及び暗号化に係る処理を意識せずに、シームレス接続部１２がない場合と同様の処理を行うだけでNAT越え及び暗号化を実現できる。
【００２８】
図３に示すように、シームレス接続部１２は、制御通信メッセージ編集部２１、メディア暗号化部２２、通信経路制御部２３、及び制御通信暗号化部２４を有する。
【００２９】
制御通信メッセージ編集部２１は、SIPメッセージのヘッダ内情報を変換する機能、ICEに関わる情報をSDPに付加する機能、SDP内のIPアドレス及びポート番号情報を変換する機能、SDPへの暗号関連情報の追加・削除を行う機能等を有する。
【００３０】
通信経路制御部２３は、HTTPSトンネル通信を行うための機能、ICEに関わる処理を行うための各種情報を収集する機能、ICEに基づく処理を行って通信経路（NAT越え方式）を決定する機能等を有する。また、通信経路制御部２３は、SIP over TLS(SIP/TLSと記述する）のキープアライブのためのPing送信/Pong受信機能を備える。
【００３１】
メディア暗号化部２２は、RFC4568、RFC3711等に基づいて、メディア通信のための暗号鍵・暗号スイーツを確定する機能、メディア通信の暗号化・復号を行う機能等を有する。制御通信暗号化部２４は、制御通信のための暗号鍵・暗号スイーツを確定する機能、制御通信の暗号化・復号を行う機能等を有する。
【００３２】
端末装置T1は、CPU、記憶装置等を有するコンピュータに上記の各機能を実現するためのプログラムを実行させることにより実現できる。当該プログラムは可搬メモリ等の記録媒体からコンピュータにインストールすることとしてもよいし、ネットワーク上のサーバからダウンロードすることとしてもよい。
【００３３】
図４は、上記各機能部の集合をソフトウェア（プログラムモジュール）のスタックイメージで表記した図である。図４において、図２との対応を分かりやすくするために、図２において対応する機能部に付された参照符号を付している。また、データ通信部１１を表すために、OS（TCP／IPソフト等を含む）の下位にネットワークインターフェースを示している。
【００３４】
図４に示す構成において、制御通信モジュール１３とメディア通信モジュール１４は、それぞれシームレス接続モジュール１２に備えられる入出力APIを使用して外部と通信を行う。この入出力APIは、制御通信モジュール１３とメディア通信モジュール１４から見て、OSのソケットAPIに相当するものであり、制御通信モジュール１３とメディア通信モジュール１４では、それぞれ、OSのソケットAPIの名前をシームレス接続モジュールの入出力APIの名前に置換するだけでシームレス接続モジュール１２と接続できる。
【００３５】
端末装置T1は、図２に示す構成に代えて、図５に示す構成により実現することも可能である。
【００３６】
図５に示す構成では、図２に示す構成に対して、通信情報監視取得部１６が追加されている。また、メディア通信部１４と制御通信部１３は直接データ通信部１１に接続されている。図５に示す構成において、通信アプリケーション部１５、メディア通信部１４、制御通信部１３、及びデータ通信部１１からなる構成は、制御通信を行ってメディア通信接続を行う一般的な端末装置と同じ構成である。図５に示す構成は、その一般的な端末装置に、通信情報監視取得部１６とシームレス接続部１２とが追加された構成に相当する。
【００３７】
図５において、通信情報監視取得部１６は、データ通信部１１を流れるシームレス接続部１２で指定した特定のIPアドレス、ポート番号の通信情報を監視し、当該特定のIPアドレス、ポート番号の通信情報を検知した場合には、当該通信情報を取得し、シームレス接続部１２に渡す機能を有する。シームレス接続部１２で処理された通信情報は、データ通信部１１に戻され、通信情報の種類・宛先等に応じてメディア通信部１４・制御通信部１３に渡されたり、外部に送出される。図５に示すシームレス接続部１２内で行われるNAT越え・暗号化に係る処理自体は、図２に示すシームレス接続部１２内で行われるNAT越え・暗号化に係る処理と同じである。
【００３８】
図６は、図５に示す構成をソフトウェア（プログラムモジュール）のスタックイメージで表記した図である。図６に示すように、通信情報監視取得部１６は、シームレス接続ドライバにより実現される。
【００３９】
図４の構成では、メディア通信モジュール１４及び制御通信モジュール１３において、OSのソケットAPIの名前に代えてシームレス接続モジュール１２の入出力APIの名前を使用していたが、図６の構成では、メディア通信モジュール１４及び制御通信モジュール１３において、OSのソケットAPIの名前をそのまま使用できる。
【００４０】
（システムの動作）
以下、SIPに基づき制御通信を行って、メディア通信接続を実施するため実行される代表的なシーケンスを例に挙げて、本発明の実施の形態に係る端末装置の動作を説明する。 以下の各処理において、端末装置T1、端末装置T2のSIP通信用のローカルのIPアドレス及びポート番号（IPアドレス：ポート番号で表記）は、それぞれT1：TP(SIP)1、 T2：TP(SIP)2である。端末装置T1、端末装置T2のメディア通信用（本実施形態では音声通信）のローカルのIPアドレス及びポート番号は、それぞれT1：TP(音声)1、 T2：TP(音声)2である。
【００４１】
また、NAT装置N1、NAT装置N2の外側のSIP通信用のIPアドレス及びポート番号（IPアドレス：ポート番号で表記）は、それぞれN1：NP(SIP)1、 N2：NP(SIP)2である。NAT装置N1、NAT装置N2のメディア通信用（本実施形態では音声通信）の外側のIPアドレス及びポート番号は、それぞれN1：NP(音声)1、 N2：NP(音声)2である。
【００４２】
また、中継サーバであるHTTPトンネリングサーバHP1、HTTPトンネリングサーバHP2において外部通信用に端末装置T1、端末装置T2に割り当てられるSIP通信用のIPアドレス及びポート番号は、それぞれAT(SIP)1：ATP(SIP)1、AT(SIP)2：ATP(SIP)2である。HTTPトンネリングサーバHP1、HTTPトンネリングサーバHP2において外部通信用に端末装置T1、端末装置T2に割り当てられるメディア通信用のIPアドレス及びポート番号は、それぞれAT(音声)1：ATP(音声)1、AT(音声)2：ATP(音声)2である。
【００４３】
また、以下で説明する各図のシーケンス上にはそこで転送されるSIPメッセージ内の情報を示すが、そこで示される情報は、シーケンス接続部１２における処理（変換・追加・削除）に関する主要な情報のみを示すものである。また、端末装置とSIPサーバ間にはNAT装置が存在するが、シーケンス図には示していない。更に、以下のシーケンスにおいて、SIP通信用アドレス情報に関しては、ViaヘッダとContactヘッダのアドレス情報が同様に変換等される場合には、ViaとContactを区別せずに記載してあり、Via又はContactの別が記載されている場合には、記載されているヘッダ（Via又はContact）が変換されている。
【００４４】
まず、図７を参照して、端末装置T1からSIPサーバSI1に対してREGISTERを行う処理を説明する。図７の例は、NAT装置N1がSIP/TLSを透過させる場合の例である。
【００４５】
図７に示すように、端末装置T1の制御通信部１３からREGISTERメッセージがシームレス接続部１２に送られる（ステップ１）。図７に示すように、REGISTERメッセージのヘッダ（Viaヘッダ等）にはSIP通信プロトコル情報（SP）としてSIP/TCPが含まれ、REGISTERの送信元を示すSIP通信アドレス情報（SA）として端末装置T1のSIP通信用のローカルIPアドレスとポート番号が含まれる（ステップ２）。
【００４６】
REGISTERメッセージを受信したシームレス接続部１２においてメッセージ変換が行われ、変換後のREGISTERメッセージがSIPサーバSI1に送信される（ステップ２）。より詳細には、制御通信メッセージ編集部２１が、REGISTERメッセージにおけるSIP通信プロトコル情報をSIP/TCPからSIP/TLSに変換するとともに、制御通信暗号化部２４がSIP/TLSに基づく暗号化処理を行ってREGISTERメッセージを送出する。また、シームレス接続部１２は、T1：TP(SIP)1を記憶手段に格納しておく。  
その後、SIPサーバSI1から、応答メッセージが端末装置T1に返される（ステップ３）。図７に示すとおり、SIPサーバSI1から返される応答メッセージには、rportの値としてNAT装置N1の外側のポート番号（NP(SIP)１）が含まれ、receivedの値としてNAT装置N1の外側のIPアドレス(N1)が含まれている。
【００４７】
端末装置T1のシームレス接続部１２において、制御通信暗号化部２４が応答メッセージの復号を行うとともに、制御通信メッセージ編集部２１が、応答メッセージ中のTLSをTCPに変換し、変換後の応答メッセージを制御通信部１３に渡す（ステップ４）。また、シームレス接続部１２は、T1：TP(SIP)1とN1：NP(SIP)1とを対応付けて記憶手段に格納しておく。これにより、これ以降のSIPメッセージ内でT1：TP(SIP)1とN1：NP(SIP)1との間の情報変換を行うことができる。
【００４８】
また、SIP/TLSによりSIP通信を行う場合、通信経路制御部２３は、SIP/TLSリンクのキープアライブのために一定時間毎にSIPサーバSI1に対してPingを送信し、Pongを受信している。
【００４９】
上記の例は、NAT装置N1がSIP/TLSを透過させる場合であったが、NAT装置N1の種類や設定によってはSIP/TLSを透過させない場合がある。また、NAT装置N1に代えてWebプロキシが設置される場合があるが、その場合も、SIP/TLSは透過されない。
【００５０】
このようにNAT装置N1等においてSIP/TLSが透過されない場合、HTTPSトンネルを経由して通信を行う。このシーケンス例を図８に示す。以下の処理は、例えば、端末装置T1がREGISTERメッセージを送信したが、一定時間内にそれに対する応答がなかったことを通信経路制御部２３が検知した場合に実施されるものである。
【００５１】
まず、端末装置T1における通信経路制御部が、HTTPトンネリングサーバHP1にトンネル接続要求を送り（ステップ１１）、HTTPトンネリングサーバHP1においてHTTPSトンネル通信に必要な設定がなされ、トンネル接続応答が返される（ステップ１２）。その後は、端末装置T1とHTTPトンネリングサーバHP1間でHTTPSトンネルを介した通信が可能になる。
【００５２】
その後、通信経路制御部２３は、HTTPトンネリングサーバHP1を経由してSIPサーバ等の他の装置とSIP通信を行うことを可能とするために、HTTPトンネリングサーバHP1に対してアドレス割り当て要求を送信し（ステップ１３）、応答を受ける（ステップ１４）。このアドレス割り当て要求を行い、アドレスの割り当てを受けることは、TURNにおいてTURNサーバにアドレス割当要求を行い、アドレスの割り当てを受けることと同様である。
【００５３】
図８のステップ１４においてHTTPトンネリングサーバHP1から返される応答メッセージの内部には、SIP通信用にHTTPトンネリングサーバHP1において割り当てられた端末装置T1の外部通信用のIPアドレス（AT（SIP）1）と、ポート番号（ATP（SIP）1）が含まれる。
【００５４】
このアドレス割り当ての概念を図９に示す。図９に示すように、HTTPトンネリングサーバHP1にAT（SIP)１、ATP(SIP)１が割り当てられるとともに、外部装置（SIPサーバ等）は、端末装置T1と通信を行う際には、送信先アドレスとしてAT（SIP)１、ATP(SIP)１を指定する。また、HTTPトンネルサーバHP１内には、少なくとも割り当てたIPアドレス／ポート番号（AT（SIP)1:ATP(SIP)１）と、HTTPS通信におけるNAT装置N1の外側のIPアドレス／ポート番号（N1:NP(HTTPS)1）とが対応付けられ、記憶装置に保持される。また、シーケンス接続部１２において、端末装置T1のT1：TP（SIP)1と、AT（SIP)1:ATP(SIP)１とが対応付けて記憶手段に格納される。
【００５５】
図８に示すこれ以降のREGISTER処理（ステップ１５〜）の流れは図７に示した処理と基本的に同様であるが、図８では、制御通信暗号化部２４がSIP/TLSをHTTPSでカプセリングすることにより、端末装置T1とHTTPトンネリングサーバHP１間でHTTPSトンネル通信を行っている。
また、HTTPSトンネルを用いてSIP通信を行う場合、シームレス接続１２は、T1：TP（SIP)1とAT（SIP)1:ATP(SIP)１とを対応付けて記憶手段に格納しておき、SIP通信において、制御通信メッセージ編集部２１はローカルのアドレス情報（T1：TP（SIP)1）との間で変換を行うグローバルなアドレス情報として、N1:NP(SIP)1ではなくAT（SIP)1:ATP(SIP)１を用いる。
【００５６】
次に、INVITEを行って、メディア通信を実施するまでの端末装置の処理について説明する。なお、以下の例は、NAT装置N1、N2がSIP/TLSを透過させる場合の例である。SIP/TLSを透過させない場合は、HTTPSトンネリングサーバにおいて外部通信用のアドレス／ポートが割り当てられてHTTPSトンネルを介して制御通信が行われるだけであり、実質的な処理は下記の処理と同じである。
【００５７】
以下のINVITEに係る処理では、ICEに基づく通信経路決定処理が行われるので、まず、ICEの機能について図１０を参照して説明しておく。なお、一般的なICEでは中継サーバとしてTURNサーバを使用するが、本実施の形態では、TURNサーバの代わりにHTTPトンネリングサーバを使用している。
【００５８】
図１０に示す構成において、ICE機能をサポートする端末装置１００は端末装置１００自身のIPアドレス／ポート番号、NAT装置３００の外側のIPアドレス／ポート番号（STUNを使用して取得）、TURNサーバ５００において割り当てられる外部通信用のIPアドレス／ポート番号を取得し、それを相手側の端末装置２００にINVITEメッセージ等を用いて通知する。ICE機能をサポートする端末装置２００も端末装置２００自身のIPアドレス／ポート番号、NAT装置４００の外側のIPアドレス／ポート番号（STUNを使用して取得）、TURNサーバ５００において割り当てられる外部通信用のIPアドレス／ポート番号を取得し、INVITEメッセージの応答等でそれを相手側の端末装置１００に通知する。そして、相手側についてのアドレス情報を受け取った各端末装置は、受け取ったアドレスに対する通信を試み、通信が可能であるアドレスのうち優先度の高いアドレスに対してメディア通信を行うこととしている。ここで、端末装置自身のアドレスをHost Candidateと呼び、NAT装置の外側のアドレスをServer Reflexive candidate と呼び、TURNサーバで割り当てられた外部通信用のアドレスをRelayed Candidateと呼んでいる。
【００５９】
以下、INVITEの処理のシーケンスを図１１を参照して説明する。図１１に示すように、端末装置T1における制御通信部１３が、所望の接続先（端末装置T2の電話番号等）を宛先とするINVITEメッセージを送出する（ステップ２１）。このINVITEメッセージには図１１に示す情報が含まれている。
【００６０】
当該INVITEメッセージを受信したシームレス接続部１２では、まず通信経路制御部２３が、メディア通信用の Candidate情報を取得する処理を行う（ステップ２２）。つまり、通信経路制御部２３がSTUNサーバST1にアクセスしてNAT装置N1の外側のアドレス情報であるN1:NP(音声)1を取得し、HTTPトンネリングサーバHP1にアクセスして外部通信用アドレス情報であるAT(音声)1：ATP(音声)1を取得し、それらを制御通信メッセージ編集部２１に渡す。また、メディア暗号化部２２が、メディア通信用の暗号鍵を生成し、当該暗号鍵を制御通信メッセージ編集部２１に渡す。更に、この時点で、メディア暗号化部２３により、HTTPトンネリングサーバHP1との間にメディア通信用のHTTPSトンネルを形成しておいてよい。このHTTPSトンネルは、ICE処理で使用されないことが決定された場合は、解除される。もちろん、NAT装置N1がUDPを透過させない場合、NAT装置N1を越えてメディア通信をするにはHTTPSトンネルを介した通信が必要になる。
【００６１】
制御通信メッセージ編集部２１は、REGISTERの場合の同様にしてSIP通信用プロトコル情報(SP)におけるTCPをTLSに変換する。また、制御通信メッセージ編集部２１は、SIP用アドレス情報(SA)を、REGISTERを行ったときに取得したNAT装置N1の外側のアドレス情報であるN1:NP(SIP)1に変換する。更に、制御通信メッセージ編集部２１は、メディア通信用プロトコル情報(MP)を非暗号化音声から暗号化音声に変換し、メディア通信用アドレス情報(MA)を中継サーバの外部通信用アドレス情報（AT(音声)１：ATP(音声)１）に変換し、ICE candidate情報と暗号属性情報をINVITEメッセージに追加する。ICE candidate情報としては、T1：TP(音声)1、N1：NP(音声)1、AT(音声)１：ATP(音声)１が含まれ、暗号属性情報としては、ステップ２３で取得した暗号鍵と、決定された暗号方式が含まれる。ここで、メディア通信用プロトコル情報(MP)は、端末装置T1が使用するメディア通信用プロトコルの情報であり、メディア通信用アドレス情報(MA)は、端末装置T1が相手端末からメディア情報を受信する場合の宛先となるアドレス情報である。
【００６２】
上記のようにして変換されたINVITEメッセージは、制御通信暗号化部２４でSIP/TLSに基づき暗号化されてSIPサーバSI1に送信される（ステップ２４）。
【００６３】
なお、本実施の形態におけるメディア通信のための暗号化処理は例えばRFC4568等に基づくものであり、SDPの中にa=cryptoが記述され、上述した暗号属性情報の内容はa=cryptoの後に記述される。また、この記述内容により、SRTP、SRTCPのセキュリティレベルを制御可能である。
【００６４】
既にREGISTERが済んでいる宛先の端末装置T2がSIPサーバSI1からINVITEメッセージを受信する（ステップ２５）。端末装置T2のシームレス接続部１２は、図１１に示すように、INVITEメッセージにおける宛先をNAT装置N2の外側のアドレスから、端末装置T2のローカルのアドレスに変換するとともに、メディア通信用プロトコル情報(MP)が変換され、ICE candidate情報、暗号属性情報が削除される。そして、このように変換・削除されたINVITEメッセージが制御通信部１３に渡される（ステップ２６）。
【００６５】
その後、制御通信部１３から200 OKメッセージが送信され、シームレス接続部１２に渡される（図１２のステップ２７）。端末装置N2のシームレス接続部１２において、端末装置T1と同様の処理を行って、ICE candidate情報の取得、暗号鍵の取得が行われる。また、アドレス情報の変換が行われ、その結果、図１２に示す200 OKメッセージが送出される（ステップ２８）。ここで、200 OKメッセージのICE candidate情報には、host candidate (T2:TP(音声)2)、Server Reflexive candidate(N2:NP(音声)2)、Relayed Candidate（AT(音声)2:ATP(音声)2）が含まれる。
【００６６】
端末装置T1が200 OKメッセージを受信する（ステップ２９）。200 OKメッセージを受信した端末装置T1のシームレス接続部１２では、制御通信暗号化部２４にて200 OKメッセージの復号が行われる。そして、通信経路制御部２３が、200 OKメッセージのSDPに記述されたICE candidate情報を用いてコネクティビティチェックを行って、メディア通信用の通信経路を決定し、決定した通信経路に該当するアドレス情報を記憶手段に記憶しておく。例えば、NAT装置N2を宛先とする通信経路が使用経路として決定された場合には、N2:NP(音声)2が記憶手段に記憶される。SDPに記述された暗号属性情報２を記憶手段に格納しておく。もちろん、端末装置T1が送信した暗号属性情報１も記憶手段に格納されている。これらの暗号属性情報は、メディアの暗号化・復号に使用される。
【００６７】
そして、制御通信メッセージ編集部１２は、図１２に示すように、200 OKメッセージにおけるSIP通信用プロトコル情報、SIP用アドレス情報を変換するとともに、メディア通信用プロトコル情報を変換し、ICE candidate情報と暗号属性情報を削除する。そして、このような変換・削除を行った200 OKメッセージが制御通信部１３に送られる（ステップ３０）。
【００６８】
その後、ACKメッセージの送受信を経て、メディア通信部１４から音声データが出力され、メディア暗号化部２２により暗号化され、通信経路制御部２３により、ICE処理で決定された宛先に送出される。
【００６９】
（暗号化に関する処理例）
上記の例では、端末装置T1、端末装置T2ともにメディアの暗号化通信を行う機能を備えているが、一方が本実施の形態に係る暗号化機能を持つが、他方が暗号化機能を持たない場合もある。このような場合の処理例について、端末装置T1から端末装置T2にINVITEを送る場合、つまり、端末装置T1がUACとして機能し、端末装置T2がUASとして機能する場合について説明する。
【００７０】
まず、端末装置T1が本実施の形態に係る暗号化機能を持たず、端末装置T2が本実施の形態に係る暗号化機能を持つ場合、図１３に示すように、端末装置T1から送られるINVITEメッセージはメディア通信用プロトコル情報(MP)として"非暗号化音声"を含むが、暗号属性情報（a=crypto)を含まない（ステップ４１、４２）。端末装置T2のシームレス接続部１２におけるメディア暗号化部２２は、端末装置T1から受信するINVITEメッセージに暗号属性情報が含まれていないことを識別し、端末装置T1は暗号化機能を持たないことを認識し、暗号鍵の生成等を行わない。また、メディア暗号化部２２は、端末装置T1が暗号化機能を持たないことを制御通信メッセージ編集部２１に通知する。
【００７１】
その結果、端末装置T2において、シームレス接続部１２が制御通信部１３から200 OKメッセージを受信した場合に、制御通信メッセージ編集部１２は、メディア通信プロトコル情報の変換を行わず、また、暗号属性情報の追加を行わずに200 OKメッセージを端末装置T1に送出する（ステップ４３、４４）。
【００７２】
次に、端末装置T1が本実施の形態に係る暗号化機能を有し、端末装置T2が暗号化機能を持たない場合について説明する。
【００７３】
図１４は、端末装置T1が、メディア通信プロトコル情報(MP)として"暗号化音声"と暗号属性情報（a=crypto)を含むINVITEメッセージを送信したが（ステップ５１、５２）、端末装置T2が暗号化に係る情報を認識せずに、メディア通信プロトコル情報(MP)として"非暗号化音声"を含み、暗号属性情報（a=crypto)を含まない200 OKを返す場合を示すものである（ステップ５３、５４）。
【００７４】
この場合、200 OKメッセージを受信した端末装置T1では、シームレス接続部１２におけるメディア暗号化部２２が、端末装置T2は暗号化機能を持たないことを認識するので、音声データを暗号化せずに送信することになる。
【００７５】
なお、相手の端末装置T2の機能によっては、メディア通信プロトコル情報(MP)として"非暗号化音声"が記述されたINVITEメッセージを受信しない場合に正常に動作しない場合があり得るので、図１５に示すように、端末装置T１は、メディア通信プロトコル情報として"暗号化音声"と"非暗号化音声"の両方を含むINVITEメッセージを送出してもよい（ステップ６１、６２）。この場合、端末装置T2は、"非暗号化音声"のみを認識し、"非暗号化音声"を記述した応答を返す（ステップ６３、６４）。
【００７６】
また、端末装置T1が図１４に示すINVITEメッセージを端末装置T2に送信した場合、端末装置T2がエラーを返すことも考えられる。その場合の処理例を図１６に示す。
【００７７】
図１６に示すように、ステップ７３でエラーを受信した端末装置T1のシーケンス接続部１２では、メディア暗号化部２２が端末装置T2にメディア暗号化機能がないことを認識し、その旨を制御通信メッセージ編集部２１に通知する。当該通知を受けた制御通信メッセージ編集部２１は、ステップ１２で送信したINVITEメッセージの内容の中のメディア通信プロトコル情報(MP)を"非暗号化音声"に変換し、暗号属性情報を削除し、変換・削除後のINVITEメッセージを端末装置T2に送信する（ステップ７４）。これにより、端末装置T2は"非暗号化音声"を含む200 OKメッセージを端末装置T1に返し（ステップ７５、７６）、その後は非暗号化音声通信が行われる。
【００７８】
（実施の形態の効果について）
上述したように、本実施の形態に係る技術を用いることにより、制御通信部１３に対してICEに基づくNAT越え処理が隠蔽され、制御通信部１３がICEに基づくNAT越え処理機能を備えることなく端末装置においてICEに基づくNAT越え処理を実現することが可能となる。また、制御通信部１３及びメディア通信部１４に対してメディア通信暗号化処理が隠蔽され、制御通信部１３及びメディア通信部１４がメディア通信暗号化機能を備えることなく端末装置においてメディア通信暗号化処理を実現することが可能となる。
【００７９】
また、NAT越え機能や暗号化通信機能に関して、基本的にシームレス接続部１２のみを開発・実装すればよいため、制御通信部及びメディア通信部内にNAT越え機能や暗号化通信機能を追加する場合に比べて容易に開発・実装を行うことができるとともに、NAT越え方式や暗号化通信方式に変更があった場合でも迅速に対応することが可能となる。
【００８０】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。  
【符号の説明】
【００８１】
N1、N2、３００、４００  NAT装置
T1、T2、１００、２００  端末装置
SI1  SIPサーバ
ST1  STUNサーバ
HP1、HP2  HTTPトンネリングサーバ
６  インターネット
７、８  プライベートネットワーク
１１  データ通信部
１２  シームレス接続部
１３  制御通信部
１４  メディア通信部
１５  通信アプリケーション部
１６  通信情報監視取得部
２１  制御通信メッセージ編集部
２２  メディア暗号化部
２３  通信経路制御部
２４  制御通信暗号化部
【図１】
2010199761.tif 000003
【図２】
2010199761.tif 000004
【図３】
2010199761.tif 000005
【図４】
2010199761.tif 000006
【図５】
2010199761.tif 000007
【図６】
2010199761.tif 000008
【図７】
2010199761.tif 000009
【図８】
2010199761.tif 000010
【図９】
2010199761.tif 000011
【図１０】
2010199761.tif 000012
【図１１】
2010199761.tif 000013
【図１２】
2010199761.tif 000014
【図１３】
2010199761.tif 000015
【図１４】
2010199761.tif 000016
【図１５】
2010199761.tif 000017
【図１６】
2010199761.tif 000018