以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本発明の一実施形態に係る通信システムのネットワーク接続構成を示す。本実施形態に係る通信システムは、通信端末10、通信端末12、プロキシサーバ20、SIP(Session Initiation Protocol)サーバ22、ロケーションサーバ24、公開サーバ26、基地局30、アクセスポイント31、アクセスポイント32、セルラー網40、コアネットワーク42、インターネット44、および無線LAN網46を備える。
本実施形態に係る通信端末10は、セルラー網40と無線LAN網46との双方を介して通信可能な通信端末10のモビリティを確保することを目的とする。また、通信端末10とSIPサーバ22との間で送受信されるシグナリングメッセージの秘匿性を確保するとともに、通信端末10と通信端末12との間で送受信される通信データの秘匿性を確保することを目的とする。
なお、SIPとは、複数の通信端末がネットワークを介して、音声、テキスト、および映像等の様々なメディアの送受信を実行すべく、複数の通信端末間における通信の開始および通信の切断等におけるシグナリングに用いられるプロトコルである。また、ここでのシグナリングには、通信端末10のSIPサーバ22への位置登録の他、SIP Register、SIP Invite、SIP Bye、200OK等のすべてのシグナリングが含まれる。
SIPサーバ22は、通信制御装置の一例である。通信制御装置は、通信端末10のシグナリングを制御するシグナリング制御サーバであればよく、SIPサーバ22に限られるものではない。また、基地局30、無線アクセスポイント31、および無線アクセスポイント32は、通信端末10と通信端末12との通信を中継する通信中継装置の一例である。通信中継装置は、通信端末10に実IPアドレスを割り当てて通信端末10の通信を中継するゲートウェイであればよく、基地局30、無線アクセスポイント31、および無線アクセスポイント32に限られるものではない。
通信端末10は、複数の異なる通信方式、例えば、3G方式、GSM方式、または、PHS方式等の通信方式のそれぞれで通信する機能を有する。さらに、通信端末10は、無線LANを用いて通信する機能を有する。なお、通信端末10は、例えば、電話通信機能および無線LAN通信機能を有するノートパソコンである。また、通信端末10は、無線LAN機能を有する携帯電話端末、電話通信機能および無線LAN通信機能を有するPDA、および電話通信機能および無線LAN通信機能を有するデジタルカメラ等の携帯通信端末であってもよい。
通信端末10が通信相手端末である通信端末12と通信する場合、通信端末10は、まず、通信端末10が存在する位置において利用可能な通信方式を用いて、SIPサーバ22に対してシグナリングする。例えば、通信端末10がアクセスポイント32を介して無線LAN通信方式を利用できる場合、通信端末10は、無線LAN通信方式を用いて、SIPサーバ22に対してシグナリングする。すなわち、通信端末10は、アクセスポイント32、無線LAN網46、およびコアネットワーク42を介して、SIPサーバ22に対してシグナリングする。一方、通信端末10が電話通信機能を利用できる場合、通信端末10は、電話通信の通信方式を用いてSIPサーバ22に対してシグナリングする。すなわち、通信端末10は、基地局30、セルラー網40、およびコアネットワーク42を介して、SIPサーバ22に対してシグナリングする。
SIPサーバ22は、通信端末10がネットワーク上に存在する位置に関する情報である位置情報をロケーションサーバ24に蓄積させる。ロケーションサーバ24は、SIPサーバ22に制御され、通信端末10の位置情報を格納する。また、SIPサーバ22は、通信端末12がシグナリングした場合も、通信端末12の位置情報をロケーションサーバ24に蓄積させる。
次に、通信端末10は、基地局30またはアクセスポイント32によって割り当てられた実IPアドレスを用いて、シグナリング用の第1TLS(Transport Layer Security)セッションをSIPサーバ22との間に確立する。そして、通信端末10は、第1TLSセッションを確立した後、SIPサーバ22によって通信端末10に割り当てられた仮想IPアドレスを用いて、SIPサーバ22との間に、シグナリング用の第2TLSセッションを確立する。このとき、通信端末10は、仮想IPアドレスを送信元アドレスとして付加されたシグナリングメッセージに、実IPアドレスを送信元アドレスとして付加することによってカプセル化した後、SIPサーバ22に送信する。
その後、通信端末10は、TLSプロトコルを用いてシグナリングメッセージを暗号化した上で、第2TLSセッションを介して、UDP(User Datagram Protocol)でSIPサーバ22へ送信する。これにより、通信端末10とSIPサーバ22とのシグナリングは、TLSプロトコルによってセキュアに実現される。
続いて、通信端末10は、利用している通信方式が無線LAN通信方式である場合には、通信端末12に送信すべき通信データを、アクセスポイント32および無線LAN網46を介して送信する。また、通信端末10は、利用している通信方式が電話通信機能である場合には、通信端末12に送信すべき通信データを、基地局30およびセルラー網40を介して送信する。係る場合において、通信端末10は、通信端末12に送信すべき通信データを、SRTP(Secure Real−Time Protocol)を用いて暗号化する。そして、通信端末10は、SRTPで暗号化した通信データを、UDPを用いて通信端末12に送信する。
ここで、通信端末10が現在存在している位置とは異なる位置に移動して、通信端末10において利用可能な通信方式が変化した場合を考える。例えば、通信端末10において利用可能な通信方式が、無線LAN通信方式から電話通信方式に変化した場合、または利用可能な通信方式が、電話通信方式から無線LAN通信方式に変化した場合を考える。係る場合において、通信端末10が実IPアドレスを用いて確立した第1TLSセッションは、基地局30またはアクセスポイント32によって割り当てられた実IPアドレスが変更された場合に切断される。一方で、通信端末10が仮想IPアドレスを用いて確立した第2TLSセッションは、基地局30またはアクセスポイント32によって割り当てられた実IPアドレスが変わることによって切断されない。
このような状況において、通信端末が再接続処理を実行する場合、通信端末は、インターネット等のネットワークにおいて暗号化通信する規格の1つであるIPsecを用いて、SIPサーバ22にシグナリングメッセージを送信することがある。IPsecを用いる場合、通信端末は、通信端末とIPsec Security Gatewayとの間でIPsec Tunnelを構築した後に、SIPサーバ22にシグナリングメッセージを送信する必要がある。従って、通信端末とSIPサーバ22との間の接続が切断された場合、IPsec Tunnelを初めから再構築しなければならず、迅速なハンドオーバーに対応することが困難である。
また、SIPサーバ22に送信すべき通信データは、全てIPsec Security Gatewayを介して送信しなければならず、IPsec Security Gatewayにトラフィックが集中して通信速度が低下して、通信端末のモビリティを確保することが困難な場合がある。例えば、通信端末が、インターネット、またはイントラネット等のTCP/IPネットワークを用いて音声データを送受信する技術である、Voice over Internet Protocol(VoIP)を用いた通信をする場合、通信端末は、音声を示す音声データを複数のショートパケット(例えば、パケットのデータサイズが20から40バイトのパケット)に分割して送信する。
係る場合において、通信端末は、通信相手端末に送信すべき通信データがIPsec Tunnelを通過することを可能とすべく、通信データに含まれる複数のショートパケットのそれぞれに対してヘッダを付加する処理を実行する。通信端末は、複数のショートパケットの全てに対して係る処理を実行するので、データ処理量が多大となる。従って、IPsecを用いた通信は、VoIP等のリアルタイム性を要求する通信に対して不向きである。
さらに、IPsecは、サーバクライアント方式のセキュリティを実現するものである。そのため、IPsec Security Gatewayの後段では、セキュリティが何ら提供されておらず、通信データの秘匿性を確保することができない。したがって、End−to−End(E2E)のセキュリティの実現が困難である。
一方、本実施形態の通信端末10が用いるUDPは、コネクションレス型の通信プロトコルである。従って、通信端末10は、UDPを用いてSIPサーバ22にシグナリングメッセージを送信することにより、シームレスで迅速なハンドオーバーに確実に対応できる。さらに、TLSで暗号化したシグナリングメッセージをUDPで送信できるデータ形式にカプセル化するので、通信端末10とSIPサーバ22との間におけるシグナリングの秘匿性および安全性を確保することもできる。
また、本実施形態の通信端末10が用いるSRTPは、IPsecとは異なり、通信端末間(E2E)のセキュリティを実現するものである。したがって、通信端末10が通信端末12に送信すべき通信データを、SRTPで暗号化して送信することにより、E2Eの通信データの秘匿性を確保することができる。
次に、通信端末10が公開サーバ26に対して通信データを送信する場合には、通信端末10は、現在、当該通信端末10が存在する位置において利用可能な通信方式を用いて、プロキシサーバ20に対してセッション接続要求を送信する。例えば、通信端末10がアクセスポイント32を介して無線LAN通信方式を利用できる場合、通信端末10は、無線LAN通信方式を用いてプロキシサーバ20に対してセッション接続要求を送信する。すなわち、通信端末10は、アクセスポイント32、無線LAN網46、およびコアネットワーク42を介してプロキシサーバ20に対してセッション接続を要求する。一方、通信端末10が電話通信機能を利用できる場合、通信端末10は、電話通信の通信方式を用いてプロキシサーバ20に対してセッション接続要求を送信する。すなわち、通信端末10は、基地局30、セルラー網40、およびコアネットワーク42を介してプロキシサーバ20に対してセッション接続を要求する。
そして、通信端末10とプロキシサーバ20とのセッションが確立されることにより、通信端末10は、公開サーバ26に対して通信データを送信することが可能となる。通信端末10は、基地局30またはアクセスポイント32、セルラー網40または無線LAN網46、およびコアネットワーク42を介して、公開サーバ26に送信すべき通信データを、プロキシサーバ20に送信する。通信端末10は、通信データをSRPTで暗号化して、UDPを用いて送信する。当該通信データを受信したプロキシサーバ20は、当該通信データを、公開サーバ26が受信可能なデータ形式に変換する。そして、プロキシサーバ20は、公開サーバ26が受信可能なデータ形式に変換した通信データを、インターネット等のインターネット44を介して公開サーバ26に送信する。
図2は、本実施形態に係る通信セキュリティの概要を示す。通信端末10は、SIPサーバ22との間で、TLSセッションを確立してシグナリングメッセージを送受信する。上述のように、通信端末10は、実IPアドレスを用いて第1TLSセッションを確立した後、仮想IPアドレスを用いて第2TLSセッションを確立する。そして、通信端末10は、TLSにより暗号化されたシグナリングメッセージを、仮想IPアドレスを送信元アドレスとするシグナリングメッセージから実IPアドレスを送信元アドレスとするシグナリングメッセージにカプセル化する。そして、通信端末10は、カプセル化されたシグナリングメッセージを、第2TLSセッションを介してUDPでSIPサーバ22へ送信する。したがって、通信端末10は、継続的に迅速にTLSセッションでシグナリングメッセージをSIPサーバ22とやりとりすることができ、セルラー網40および無線LAN網46のようなオープンネットワークにおけるシグナリングメッセージのセキュリティを確保できる。
また、通信端末10は、通信端末12およびプロキシサーバ20との間で、通信データをSRTPで暗号化して送受信する。上述のように、通信端末10は、通信端末12およびプロキシサーバ20に送信すべき通信データを、仮想IPアドレスを送信元アドレスとする通信データから実IPアドレスを送信元アドレスとする通信データにカプセル化する。そして、通信端末10は、カプセル化された通信データを、SRTPで暗号化してUDPで通信端末12およびプロキシサーバ20へ送信する。通信端末10は、第2TLSセッションを介してのシグナリングを常に有効に動作させることができる。そのため、SRTPによる通信を常に実現することができ、セルラー網40、無線LAN網46、およびインターネット44のようなオープンネットワークにおける通信データのセキュリティを確保できる。
例えば、通信端末10は、通信データの暗号化方式の1つであるAdvanced Encryption Standard(AES)で通信データを暗号化でき、また、高速に暗号鍵の交換ができる。また、通信端末10は、暗号鍵の交換に、例えば、鍵交換プロトコルの1つであるMultimedia Internet KEYing(MIKEY)を用いてもよい。通信端末10は、MIKEYを用いることにより、1Round−Tripで鍵の交換を実行できる。
図3は、本実施形態に係る通信端末10の通信モジュール14の機能構成の一例を示す。通信モジュール14は、一般アプリケーション部100、リアルタイムアプリケーション部105、仮想インターフェース部110、通信ユニット120、通信制御ユニット130、およびセッションモビリティ制御ユニット160を備える。なお、プロキシサーバ20およびSIPサーバ22は、通信モジュール14の機能および構成の一部、または全部を備えていてよい。
通信ユニット120は、第1通信部122、第2通信部124、および第n通信部126を含む複数の通信部を有する。また、通信制御ユニット130は、通信IF選択部140およびアドレス取得部150を有する。また、セッションモビリティ制御ユニット160は、データ形式変換部1600、シグナリング制御部1605、(デ)カプセル化部1610、第1暗号化部1615、第2暗号化部1620、シグナリング送受信部1625、変換テーブル記憶部1640、およびデータ送受信部1645を有する。
なお、図3において、第1暗号化部1615は、2つのブロックとして記載されているが、機能的、物理的に1つの構成であってよい。また、第1暗号化部1615と第2暗号化部1620は、物理的に別個の構成であってもよいし、物理的に1つの構成であってもよい。また、シグナリング送受信部1625とデータ送受信部1645とは、物理的に別個の構成であってもよいし、物理的に1つの構成であってもよい。
通信ユニット120は、通信モジュール14が通信可能な複数の通信方式ごとに異なる複数の通信部を有する。例えば、通信ユニット120は、第1の通信方式(例えば、無線LAN通信方式)で通信する第1通信部122、第2の通信方式(例えば、電話通信方式)で通信する第2通信部124、および第nの通信方式(例えば、無線LANおよび電話通信方式を除く他の通信方式)で通信する第n通信部126を有する。なお、通信ユニット120は、複数の通信方式で通信可能な通信部を有していてもよい。例えば、通信ユニット120は、第1の通信方式と第2の通信方式とのいずれかで通信可能な通信部、すなわち、上述した第1通信部および第2通信部の機能を併せ持った通信部を有していてもよい。これにより、通信モジュール14の構成の簡略化、および小型化に資することができる。
また、複数の通信部のそれぞれは、セルラー網40、無線LAN網46等の複数の通信網のそれぞれに対応する複数の通信中継装置のそれぞれを介して、シグナリング送受信部1625が生成したシグナリングメッセージを、SIPサーバ22との間で送信する。また、通信ユニット120が有する複数の通信部のそれぞれは、一般アプリケーション部100またはリアルタイムアプリケーション部105が生成した通信データを、通信端末12またはプロキシサーバ20との間で送信する。
また、複数の通信部のそれぞれは、SIPサーバ22から受信したシグナリングメッセージを、通信制御ユニット130を介してシグナリング制御部1605に供給する。また、複数の通信部のそれぞれは、通信端末12またはプロキシサーバ20から受信した通信データを、通信制御ユニット130を介して一般アプリケーション部100またはリアルタイムアプリケーション部105に供給する。
通信ユニット120が有する複数の通信部のそれぞれは、それぞれに割り当てられた通信方式で通信することができるか否かを通信IF選択部140が判断するために用いられる情報を、通信制御ユニット130に供給する。さらに、複数の通信部は、それぞれが通信可能な通信中継装置から動的な実IPアドレスを割り当てられた場合、割り当てられた実アドレスを通信制御ユニット130に供給する。
通信IF選択部140は、複数の通信部から供給された情報に基づいて、複数の通信部のうち通信可能な通信部を選択する。例えば、通信IF選択部140は、通信中継装置が発する通信方式を識別する情報を含む電波の電波強度を示す情報を、複数の通信部から受け取り、電荷強度の大きさに基づいて通信可能な通信部を判断する。他の例において、通信IF選択部140は、複数の通信部に対して予め設定された利用優先順位等のポリシーに基づいて、複数の通信部から1つの通信部を選択してもよい。そして、通信IF選択部140は、選択した通信部を識別する情報を変換テーブル記憶部1640に供給する。
アドレス取得部150は、通信中継装置によって通信端末10に対して動的に割り当てられる実アドレスを取得する。すなわち、アドレス取得部150は、通信IF選択部140が選択した通信部に割り当てられた実アドレスを取得する。実アドレスは、例えば、通信中継装置が管理しているプライベートIPアドレスまたはグローバルIPアドレスであり、以下において、実IPアドレスと称する。そして、アドレス取得部150は、取得した実IPアドレスを変換テーブル記憶部1640に供給する。
変換テーブル記憶部1640は、通信IF選択部140が選択した通信部を識別する情報、およびアドレス取得部150が取得した実IPアドレスを記憶する。そして、変換テーブル記憶部1640は、記憶している実IPアドレスをデータ形式変換部1600および(デ)カプセル化部1610に通知する。
一般アプリケーション部100は、所定の目的の処理を実行する。具体的には、一般アプリケーション部100は、データ処理を実行するアプリケーションプログラムに所定の目的のデータ処理を実行させる。アプリケーションプログラムは、例えば、Webブラウザプログラム、電子メール送受信プログラム、およびマルチメディアデータの送受信プログラム等であってよい。一般アプリケーション部100は、アプリケーションプログラムが処理したデータであって、通信端末12またはプロキシサーバ20に送信すべき通信データを、仮想インターフェース部110に供給する。
係る場合において、一般アプリケーション部100は、仮想インターフェース部110を一意に識別する識別番号を通信データに付加して仮想インターフェース部110に供給する。識別番号は、例えば、仮想インターフェース部110に割り当てられた仮想アドレスである。仮想アドレスは、シグナリング制御部1605の起動段階においてSIPサーバ22によって動的または静的に割り当てられる。仮想アドレスは、例えば、IPアドレスの構成を有し、以下において、仮想IPアドレスと称する。なお、仮想IPアドレスは、一般アプリケーション部100に対して固定的に設定されてよい。
リアルタイムアプリケーション部105は、所定の目的の処理を実行する。具体的には、リアルタイムアプリケーション部105は、データ処理を実行するSIPアプリケーションプログラムに所定の目的のデータ処理を実行させる。例えば、SIPアプリケーションプログラムは、リアルタイムのマルチメディア通信を提供するIP電話等のアプリケーションプログラムであってよい。
仮想インターフェース部110は、仮想IPアドレスが割り当てられており、通信端末12またはプロキシサーバ20に送信する通信データを一般アプリケーション部100から受け取る。仮想インターフェース部110は、受け取った通信データをデータ形式変換部1600に供給する。また、仮想インターフェース部110は、シグナリング制御部1605が生成したシグナリングメッセージを、第1暗号化部1615を介して受け取る。仮想インターフェース部110は、受け取ったシグナリングメッセージを(デ)カプセル化部1610に供給する。
シグナリング制御部1605は、通信端末10のシグナリングを制御する。シグナリング制御部1605は、例えばSIPによるシグナリングを制御する。具体的には、シグナリング制御部1605は、アドレス取得部150が取得した実IPアドレス、または仮想インターフェース部110が有する仮想IPアドレスを用いて、SIPサーバ22とのセッションを確立する。より具体的には、シグナリング制御部1605は、アドレス取得部150が取得した実IPアドレスを用いて、SIPサーバ22との間に第1セッションを確立し、第1セッションを確立した後、仮想インターフェース部110が有する仮想IPアドレスを用いて、SIPサーバ22との間に第2セッションを確立する。
シグナリング制御部1605は、SIPサーバ22との第1セッションを確立する場合、および第1セッションを確立してから第2セッションが確立されるまでの間は、第1暗号化部1615を介して、シグナリングメッセージをシグナリング送受信部1625に供給し、第1セッションを介してSIPサーバ22とやりとりする。一方で、シグナリング制御部1605は、第2セッションが確立された後は、第1暗号化部1615、仮想インターフェース部110、および(デ)カプセル化部1610を介して、シグナリングメッセージをシグナリング送受信部1625に供給し、第2セッションを介してSIPサーバ22とやりとりする。なお、シグナリング制御部1605は、通信端末10への電源投入、通信モジュール14の起動または再起動、通信端末10のHO、通話中のコーデック変更、定期的なSIP登録更新等の様々な動作を契機として、シグナリングメッセージを生成し、位置登録等のシグナリングを行う。
第1暗号化部1615は、シグナリング制御部1605がSIPサーバ22に対してシグナリングすべく生成したシグナリングメッセージを、通信のセキュリティを確保する第1セキュリティプロトコルを用いて暗号化する。具体的には、第1暗号化部1615は、コネクション型の通信プロトコルとともに利用可能な第1セキュリティプロトコルを用いて暗号化する。より具体的には、第1暗号化部1615は、OSI参照モデルにおけるトランスポート層(レイヤー4)で用いられるコネクション型の通信プロトコルとともに利用可能な第1セキュリティプロトコルを用いて暗号化する。第1セキュリティプロトコルは、公開鍵暗号または秘密鍵暗号、デジタル証明書、およびハッシュ関数等のセキュリティ技術の少なくとも1つを用いて通信データの盗聴および改ざん等を防止するプロトコルであってよい。例えば、第1暗号化部1615は、シグナリングメッセージを、第1セキュリティプロトコルとしてTLSプロトコルを用いて暗号化する。
第2セッションが確立される前において、第1暗号化部1615は、暗号化したシグナリングメッセージを、直接、シグナリング送受信部1625に供給する。一方で、第2セッションが確立された後において、第1暗号化部1615は、暗号化したシグナリングメッセージを、仮想インターフェース部110および(デ)カプセル化部1610を介してシグナリング送受信部1625に供給する。
また、第1暗号化部1615は、SIPサーバ22から送信されたシグナリングメッセージを復号化してシグナリング制御部1605に供給する。この場合も、第1暗号化部1615は、第2セッションが確立される前において、シグナリングメッセージを、直接、シグナリング送受信部1625から受け取り、一方で、第2セッションが確立された後において、シグナリングメッセージを、(デ)カプセル化部1610および仮想インターフェース部110を介して受け取る。
データ形式変換部1600は、通信端末12またはプロキシサーバ20に送信する通信データを、SRTPを用いて暗号化できるデータ形式に変換する。データ形式変換部1600は、通信データのデータ構成およびヘッダの形式を変換することにより、SRTPを用いて暗号化できるデータ形式に変換する。例えば、データ形式変換部1600は、仮想インターフェース部110から受け取ったTCP(Transmission Control Protocol)で送信可能な通信データを、UDPで送信可能な通信データに変換すべく、予め定められた付加情報を仮想インターフェース部110から受け取った通信データに付加する。但し、データ形式変換部1600は、通信データがRTP(Real−Time Protocol)のパケットである場合には、データ形式の変換を実行せず、通信データがRTP以外のパケットである場合には、RTPヘッダを付加することにより、RTPのパケットへのデータ形式の変換を実行する。そして、データ形式変換部1600は、データ形式を変換した後の通信データを(デ)カプセル化部1610に供給する。
また、データ形式変換部1600は、通信端末12またはプロキシサーバ20から送信された通信データのデータ形式を逆変換する。例えば、データ形式変換部1600は、仮想インターフェース部110から受け取ったUDPによる通信データを、TCPによる通信データに変換する。そして、データ形式変換部1600は、データ形式を逆変換した後の通信データを仮想インターフェース部110に供給する。
(デ)カプセル化部1610は、仮想インターフェース部110から受け取ったシグナリングメッセージ、またはデータ形式変換部1600から受け取った通信データに、予め定められた付加情報を付加することによりカプセル化する。具体的には、(デ)カプセル化部1610は、仮想インターフェース部110から供給される、仮想IPアドレスが送信元アドレスとして付加されたシグナリングメッセージまたは通信データに、アドレス取得部150が取得して変換テーブル記憶部1640に記憶されている実IPアドレスを送信元アドレスとして付加してカプセル化する。そして、(デ)カプセル化部1610は、カプセル化したシグナリングメッセージを、シグナリング送受信部1625に供給する。また、(デ)カプセル化部1610は、カプセル化した通信データを、データ送受信部1645に供給する。
また、(デ)カプセル化部1610は、SIPサーバ22から送信された、カプセル化されたシグナリングメッセージを受け取った場合、受け取ったシグナリングメッセージをデカプセル化して仮想インターフェース部110に供給する。また、(デ)カプセル化部1610は、通信端末12またはプロキシサーバ20から送信された、カプセル化された通信データを受け取った場合、受け取った通信データをデカプセル化してデータ形式変換部1600に供給する。
第2暗号化部1620は、シグナリング送受信部1625がSIPサーバ22に送信したシグナリングメッセージに応じて、SIPサーバ22が通信端末10のシグナリングをした後、(デ)カプセル化部1610から供給された通信データを第1セキュリティプロトコルとは異なる第2セキュリティプロトコルを用いて暗号化する。具体的には、第2暗号化部1620は、コネクションレス型の通信プロトコルとともに利用可能な第2セキュリティプロトコルを用いて暗号化する。より具体的には、第2暗号化部1620は、OSI参照モデルにおけるトランスポート層(レイヤー4)で用いられるコネクションレス型の通信プロトコルとともに利用可能な第2セキュリティプロトコルを用いて暗号化する。例えば、第2暗号化部1620は、通信データを、第2セキュリティプロトコルとしてSRTPを用いて暗号化する。
そして、第2暗号化部1620は、暗号化した通信データを、データ送受信部1645に供給する。また、第2暗号化部1620は、通信端末12またはプロキシサーバ20から送信された通信データを復号化してデータ形式変換部1600に供給する。
シグナリング送受信部1625は、第1セッションが確立されてから第2セッションが確立されるまでの間、シグナリング制御部1605が生成して第1暗号化部1615が暗号化したシグナリングメッセージを、第1セッションを介してSIPサーバ22に送信する。このとき、シグナリング送受信部1625は、コネクション型の通信プロトコルを用いてシグナリングメッセージを送信する。具体的には、シグナリング送受信部1625は、第1暗号化部1615から供給されたシグナリングメッセージを、通信IF選択部140が選択した通信部に通信制御ユニット130を介して供給し、TCPを用いて送信させる。
また、シグナリング送受信部1625は、第2セッションが確立された後、シグナリング制御部1605が生成して第1暗号化部1615が暗号化し、(デ)カプセル化部1610がカプセル化したシグナリングメッセージを、第2セッションを介してSIPサーバ22に送信する。このとき、シグナリング送受信部1625は、コネクションレス型の通信プロトコルを用いてシグナリングメッセージを送信する。具体的には、シグナリング送受信部1625は、(デ)カプセル化部1610から供給されたシグナリングメッセージを、通信IF選択部140が選択した通信部に通信制御ユニット130を介して供給し、UDPを用いて送信させる。
また、シグナリング送受信部1625は、SIPサーバ22から送信されたシグナリングメッセージをシグナリング制御部1605に供給する。この場合も、シグナリング送受信部1625は、第2セッションが確立される前において、シグナリングメッセージを第1暗号化部1615に供給し、一方で、第2セッションが確立された後において、シグナリングメッセージを、(デ)カプセル化部1610に供給する。
データ送受信部1645は、通信端末12またはプロキシサーバ20に送信すべき通信データを、通信IF選択部140が選択した通信部に通信制御ユニット130を介して供給し、通信端末12またはプロキシサーバ20に送信する。具体的には、データ送受信部1645は、第2暗号化部1620が暗号化した通信データを、コネクションレス型の通信プロトコルを用いて送信する。例えば、データ送受信部1645は、第2暗号化部1620がSPTPによって暗号化した通信データを、UDPを用いて送信する。また、データ送受信部1645は、通信端末12またはプロキシサーバ20から受信するデータを、通信IF選択部140が選択した通信部から通信制御ユニット130を介して受け取り、送信する。第2暗号化部1620に供給する。
本実施形態に係る通信端末10によれば、SIPサーバ22とのシグナリングを実行する場合に、SIPサーバ22に送信するシグナリングメッセージのセキュリティを、TLSを用いて確保できる。また、通信端末がデータ通信を実行する場合に、通信端末12またはプロキシサーバ20に送信する通信データのセキュリティを、SRTPを用いて確保できる。これにより、通信端末10は、通信端末12、プロキシサーバ20、およびSIPサーバ22との通信接続を切断することなく通信を継続することができるだけでなく、シグナリングメッセージおよび通信データのセキュリティを確実に確保できる。
図4は、本実施形態に係る通信端末10のモジュール構成の一例を示す。なお、一般クライアントアプリケーションモジュール200は、例えば、Webブラウザ等のアプリケーションであり、図3の上記説明における一般アプリケーション部100の一例である。Mobile SIP APsモジュール205は、図3の上記説明におけるリアルタイムアプリケーション部105の一例であり、例えば、VoIPアプリケーションである。また、Virtual IFモジュール210は、図3の上記説明における仮想インターフェース部110の一例である。また、複数の通信IFモジュールを有する通信インターフェースユニット220および複数のNICは、図3の上記説明における通信ユニット120の一例である。
また、シグナリング制御モジュール2605は、図3の上記説明におけるシグナリング制御部1605の一例である。また、IACモジュール2610は、図3の上記説明における通信IF選択部140およびアドレス取得部150の一例である。また、(デ)カプセル化モジュール2600は、図3の上記説明における(デ)カプセル化部1610の一例である。また、RTPモジュール2615およびRTPモジュール2620は、図3の上記説明におけるデータ形式変換部1600の一例であり、RTPモジュール2615とRTPモジュール2620とは、物理的に1つのモジュールであってもよい。
また、TLSモジュール252およびTLSモジュール258は、図3の上記説明における第1暗号化部1615の一例であり、TLSモジュール252とTLSモジュール258とは、物理的に1つのモジュールであってもよい。また、SRTPモジュール256は、図3の上記説明における第2暗号化部1620の一例である。また、UDPモジュール240は、図3の上記説明におけるシグナリング送受信部1625およびデータ送受信部1645の一例である。また、TCPモジュール242は、図3の上記説明におけるシグナリング送受信部1625の一例である。
複数のネットワークインターフェースカード(NIC)は、それぞれに対応する通信方式を用いて通信端末12、プロキシサーバ20、およびSIPサーバ22と通信する。複数のNICはそれぞれに対応する通信IFモジュールに制御されて、通信データを送受信する。複数の通信IFモジュールは、それぞれに対応するNICを介して通信データを送受信する。
例えば、通信IFモジュールa222はNICa232を介して通信データを送受信する。同様にして、通信IFモジュールb224はNICb234を介して、そして、通信IFモジュールn226はNICn236を介して通信データを送受信する。具体的には、NICa232は、無線LANインターフェースカードであってよく、NICb234は、携帯電話通信方式のインターフェースカードであってよい。そして、NICn236は、無線LAN通信方式および携帯電話通信方式を除く、他の通信方式のインターフェースカードであってよい。
IACモジュール2610は、通信インターフェースユニット220が有する複数の通信IFモジュール(例えば、通信IFモジュールa222、通信IFモジュールb224、および通信IFモジュールn226等)のうち、いずれが利用可能かを判断して選択する。すなわち、IACモジュール2610は、通信中継装置と通信可能な通信IFモジュールがいずれであるかを判断して、通信可能な通信IFモジュールを選択する。IACモジュール2610が、通信可能な通信IFモジュールがいずれであるかを判断する方法は、図3の上記説明における通信IF選択部140と略同様であるので詳細な説明は省略する。
IACモジュール2610は、通信可能な通信IFモジュールを介して、通信中継装置が通信端末10に対して動的に割り当てたIPアドレスを取得する。そして、IACモジュール2610は、通信可能な通信IFモジュールを識別する情報と取得したIPアドレスとをシグナリング制御モジュール2605、(デ)カプセル化モジュール2600、RTPモジュール2615、RTPモジュール2620、およびMobile SIP APsモジュール205に通知する。
まず、シグナリング制御モジュール2605は、例えば通信端末10の起動時に、TLSを用いてSIPサーバ22に対してシグナリングする。すなわち、シグナリング制御モジュール2605は、シグナリング処理を実行するシグナリングメッセージをTLSモジュール258においてTLSを用いて暗号化させる。そして、シグナリング制御モジュール2605は、暗号化されたシグナリングメッセージをTCPモジュール242においてTCPで送信可能な形式にして、SIPサーバ22に送信させる。具体的には、シグナリング制御モジュール2605は、通信インターフェースユニット220が有する複数の通信IFモジュールのうち、通信中継装置と通信可能な通信IFモジュールを介して、TLSで暗号化されたシグナリングメッセージをSIPサーバ22に送信する。
例えば、シグナリング制御モジュール2605は、通信端末10が起動されたことを契機として、SIPサーバ22に、シグナリングメッセージとしてREGISTERリクエストメッセージを送信する。REGISTERリクエストメッセージは、シグナリング処理をするSIPサーバ22のSIP URI、登録を要求する通信端末10のSIP URI、および登録の有効期限を示す情報等を含む。そして、REGISTERリクエストメッセージを受信したSIPサーバ22は、通信端末10のシグナリング処理を実行する。SIPサーバ22は、シグナリング処理が完了した場合、シグナリングが完了したことを、例えば、200OKメッセージを返信することで通信端末10のシグナリング制御モジュール2605に通知する。これにより、通信端末10のシグナリングが完了して、通信端末10とSIPサーバ22との間に第1TLSセッションが確立される。
次に、通信中継装置との通信が可能な通信IFモジュールが変更した場合、すなわち、通信端末10が移動することにより、ハンドオーバー制御を要する場合について説明する。係る場合に、シグナリング制御モジュール2605は、通信端末10から見て通信端末12およびSIPサーバ22との通信が切断されていないように見せるべく、通信端末10のシグナリングを以下に示すべく実行する。
まず、シグナリング制御モジュール2605は、通信端末10とSIPサーバ22との間に第1TLSセッションを確立した後、REGISTERリクエストメッセージをTLSモジュール252においてTLSを用いて暗号化させる。そして、シグナリング制御モジュール2605は、TLSで暗号化されたREGISTERリクエストメッセージをTCP/UDPモジュール254においてTCPで送信可能な形式にする。続いて、シグナリング制御モジュール2605は、TLSで暗号化した上でTCPで送信可能な形式にしたREGISTERリクエストメッセージを、仮想的なインターフェースモジュールであるVirtual IFモジュール210に供給する。
続いて、Virtual IFモジュール210は、TCPで送信可能な形式にしたREGISTERリクエストメッセージを(デ)カプセル化モジュール2600に供給する。(デ)カプセル化モジュール2600は、TLSで暗号化した上でTCPで送信可能な形式にしたREGISTERリクエストメッセージを、UDPで送信可能な形式にカプセル化する。例えば、(デ)カプセル化モジュール2600は、TLSで暗号化した上でTCPで送信可能な形式にしたREGISTERリクエストメッセージを、UDPで送信可能な形式にすべく、予め定められた付加情報をREGISTERリクエストメッセージに付加することによりカプセル化する。そして、(デ)カプセル化モジュール2600は、カプセル化したREGISTERリクエストメッセージをUDPモジュール240から通信IFモジュールを介してSIPサーバ22に送信する。
その後、カプセル化されたREGISTERリクエストメッセージを受信したSIPサーバ22は、通信端末10のシグナリング処理を実行する。SIPサーバ22は、シグナリング処理が完了した場合、シグナリングが完了したことを、例えば、200OKメッセージを返信することで通信端末10のシグナリング制御モジュール2605に通知する。これにより、通信端末10のシグナリングが完了して、通信端末10とSIPサーバ22との間に第2TLSセッションが確立される。以上のように、通信端末10は、仮想IPアドレスに基づく第2TLSセッションを確立できるので、通信端末10に動的に割り当てられる実IPアドレスが変化した場合でも、SIPサーバ22とのシグナリングのためのセッションが切断されることなく、継続的にSIPサーバ22とのシグナリングを実行することができる。
次に、一般クライアントアプリケーションモジュール200が通信端末12と所定の通信データの送受信を実行する場合を説明する。一般クライアントアプリケーションモジュール200は、通信端末12に送信すべき通信データを、TCP/UDPモジュール254においてTCPで送信可能な形式にして、Virtual IFモジュールに供給する。
係る場合において、一般クライアントアプリケーションモジュール200は、Virtual IFモジュール210に割り当てられた仮想IPアドレスを通信データに付加する。そして、一般クライアントアプリケーションモジュール200は、仮想IPアドレスを付加した通信アドレスをVirtula IFモジュール210に供給する。これにより、一般クライアントアプリケーションモジュール200にとっては、常に同一の通信相手と通信していると擬制できる。
Virtual IFモジュール210は、一般クライアントアプリケーションモジュール200から受け取った通信データを、(デ)カプセル化モジュール2600に供給する。(デ)カプセル化モジュール2600は、Virtual IFモジュール210から受け取った通信データをカプセル化する。具体的には、(デ)カプセル化モジュール2600は、IACモジュール2610から通知された実IPアドレスを通信データに付加して、RTPモジュール2620に供給する。
RTPモジュール2620は、(デ)カプセル化モジュール2600がカプセル化した通信データを、SRTPを用いて暗号化できるデータ形式に変換する。そして、SRTPモジュール256は、RTPモジュール2620がデータ形式を変換した通信データを、SRTPを用いて暗号化する。SRTPモジュール256は、SRTPを用いて暗号化した通信データを、UDPモジュール240から通信IFモジュールを介して通信端末12に送信する。
一方、通信端末12が通信端末10にあてて送信した通信データは、NIC、当該NICに対応する通信IFモジュールを介して受信する。なお、通信端末12が送信した通信データは、TCPで通信可能な通信データをUDPで通信可能な形式にカプセル化した上で、SRTPで暗号化されている。UDPモジュール240は、受信した通信データをSRTPモジュール256に供給する。SRTPモジュール256は、SRTPで暗号化された通信データを復号化する。そして、RTPモジュール2620は、復号かされた通信データの形式を逆変換して(デ)カプセル化モジュール2600に供給する。
(デ)カプセル化モジュール2600は、SRTPモジュール256が復号化した通信データを、デカプセル化する。すなわち、(デ)カプセル化モジュール2600は、UDPで送信可能な形式にカプセル化された通信データをデカプセル化する。(デ)カプセル化モジュール2600は、デカプセル化した通信データをVirtual IFモジュール210に供給する。
Virtual IFモジュール210は、TCP/UDPモジュール254を介して受け取った通信データを一般クライアントアプリケーションモジュール200に供給する。一般クライアントアプリケーションモジュール200は、Virtual IFモジュール210から受け取った通信データを、所定のアプリケーションに渡すことにより処理する。
これにより、一般クライアントアプリケーションモジュール200から見ると、一般クライアントアプリケーションモジュール200が通信する通信相手は常にVirtual IFモジュール210であり、一般クライアントアプリケーションモジュール200がTCPで通信可能な通信データをUDPで通信可能な通信データに変換すること、および通信端末12と送受信する通信データを暗号化/復号化することがなくなる。すなわち、本実施形態に係る通信端末10によれば、一般クライアントアプリケーションモジュール200が特別な機能を有さなくても、E2Eのセキュリティを提供することができる。
次に、Mobile SIP APsモジュール205が通信データを送信する場合について説明する。Mobile SIP APsモジュール205は、IACモジュール2610から通知された、利用可能な通信IFモジュールを介して、通信端末12に送信すべき通信データを送信する。
具体的には、Mobile SIP APsモジュール205は、通信端末12に送信すべき通信データをRTPモジュール2615に送信する。RTPモジュール2615は、Mobile SIP APsモジュール205から受け取った通信データを、RTPで送信可能な形式に変換する。
そして、RTPモジュール2615は、RTPで送信可能な形式に変換した通信データを、SRTPモジュール256に供給する。SRTPモジュール256は、RTPモジュール256から受け取った通信データを、SRTPを用いて暗号化する。そして、SRTPモジュール256は、暗号化した通信データを通信モジュールを介して通信端末12に送信する。また、通信端末12から通信IFモジュールが受信したSIP APの通信データは、SRTPモジュール256が復号化する。そして、SRTPモジュール256は、復号化した通信データをRTPモジュール2625を介して、Mobile SIP APsモジュール205に供給する。
なお、上記説明における通信端末12に送信する通信データは、プロキシサーバ20を介して公開サーバ26等の他のサーバ、または通信端末に送信してもよい。係る場合に、通信端末10が送信した通信データのデカプセル化および復号化、並びに公開サーバ26等が送信した通信データのカプセル化および暗号化は、プロキシサーバ20が実行する。
これにより、通信端末10は、通信端末12と送受信する通信データのセキュリティをSRTPを用いて確保できる。さらに、IPsecを用いることがないので、IPsec Security Gatewayを介して通信データを送受信することがなくなる。これにより、通信トラフィックが一点集中することを回避できる。
図5は、本実施形態に係るSIPサーバ22の通信モジュール300の機能構成の一例を示す。通信モジュール300は、仮想インターフェース部3000、セッションモビリティ制御ユニット3100、および通信部3200を備える。セッションモビリティ制御ユニット3100は、シグナリング制御部3605、(デ)カプセル化部3610、暗号化部3615、シグナリング送受信部3625、および変換テーブル記憶部3640を有する。なお、図3において、暗号化部3615は、2つのブロックとして記載されているが、機能的、物理的に1つの構成であってよい。また、暗号化部3615と第2暗号化部3620は、物理的に別個の構成であってもよいし、物理的に1つの構成であってもよい。
通信部3200は、予め割り当てられた実IPアドレスを有し、通信端末10と通信する。変換テーブル記憶部3640は、通信部3200に割り当てられている実IPアドレスを記憶する。そして、変換テーブル記憶部3640は、記憶している実IPアドレスを(デ)カプセル化部3610に通知する。
仮想インターフェース部3000は、仮想IPアドレスが割り当てられており、通信端末12またはプロキシサーバ20に送信する通信データを一般アプリケーション部100から受け取る。仮想インターフェース部3000は、受け取った通信データをデータ形式変換部1600に供給する。また、仮想インターフェース部3000は、シグナリング制御部3605が生成したシグナリングメッセージを、暗号化部3615を介して受け取る。仮想インターフェース部3000は、受け取ったシグナリングメッセージを(デ)カプセル化部3610に供給する。
シグナリング制御部3605は、通信端末10からのセッション確立要求に対して、シグナリング用のセッションを確立し、通信端末10との間のシグナリングを処理する。シグナリング制御部3605は、アドレス取得部150が取得した実IPアドレス、または仮想インターフェース部3000が有する仮想IPアドレスを用いて、通信端末10とのセッションを確立する。より具体的には、シグナリング制御部3605は、アドレス取得部150が取得した実IPアドレスを用いて、通信端末10との間に第1セッションを確立し、第1セッションを確立した後、仮想インターフェース部3000が有する仮想IPアドレスを用いて、通信端末10との間に第2セッションを確立する。
シグナリング制御部3605は、通信端末10との第1セッションを確立する場合、および第1セッションを確立してから第2セッションが確立されるまでの間は、暗号化部3615を介して、シグナリングメッセージをシグナリング送受信部3625に供給し、第1セッションを介して通信端末10とやりとりする。一方で、シグナリング制御部3605は、第2セッションが確立された後は、暗号化部3615、仮想インターフェース部3000、および(デ)カプセル化部3610を介して、シグナリングメッセージをシグナリング送受信部3625に供給し、第2セッションを介して通信端末10とやりとりする。
暗号化部3615は、シグナリング制御部3605が生成したシグナリングメッセージを、通信のセキュリティを確保する第1セキュリティプロトコルを用いて暗号化する。具体的には、暗号化部3615は、コネクション型の通信プロトコルとともに利用可能な第1セキュリティプロトコルを用いて暗号化する。例えば、暗号化部3615は、シグナリングメッセージを、第1セキュリティプロトコルとしてTLSプロトコルを用いて暗号化する。
第2セッションが確立される前において、暗号化部3615は、暗号化したシグナリングメッセージを、直接、シグナリング送受信部3625に供給する。一方で、第2セッションが確立された後において、暗号化部3615は、暗号化したシグナリングメッセージを、仮想インターフェース部3000および(デ)カプセル化部3610を介してシグナリング送受信部3625に供給する。
また、暗号化部3615は、通信端末10から送信されたシグナリングメッセージを復号化してシグナリング制御部3605に供給する。この場合も、暗号化部3615は、第2セッションが確立される前において、シグナリングメッセージを、直接、シグナリング送受信部3625から受け取り、一方で、第2セッションが確立された後において、シグナリングメッセージを、(デ)カプセル化部3610および仮想インターフェース部3000を介して受け取る。
(デ)カプセル化部3610は、仮想インターフェース部3000から受け取ったシグナリングメッセージに、予め定められた付加情報を付加することによりカプセル化する。具体的には、(デ)カプセル化部3610は、仮想インターフェース部3000から供給される、仮想IPアドレスが送信元アドレスとして付加されたシグナリングメッセージまたは通信データに、変換テーブル記憶部3640が記憶されている実IPアドレスを送信元アドレスとして付加してカプセル化する。そして、(デ)カプセル化部3610は、カプセル化したシグナリングメッセージを、シグナリング送受信部3625に供給する。また、(デ)カプセル化部3610は、通信端末10から送信された、カプセル化されたシグナリングメッセージを受け取った場合、受け取ったシグナリングメッセージをデカプセル化して仮想インターフェース部3000に供給する。
シグナリング送受信部3625は、第1セッションが確立されてから第2セッションが確立されるまでの間、シグナリング制御部3605が生成して暗号化部3615が暗号化したシグナリングメッセージを、第1セッションを介して通信端末10に送信する。このとき、シグナリング送受信部3625は、コネクション型の通信プロトコルを用いてシグナリングメッセージを送信する。具体的には、シグナリング送受信部3625は、暗号化部3615から供給されたシグナリングメッセージを通信部に供給し、TCPを用いて送信させる。
また、シグナリング送受信部3625は、第2セッションが確立された後、シグナリング制御部3605が生成して暗号化部3615が暗号化し、(デ)カプセル化部3610がカプセル化したシグナリングメッセージを、第2セッションを介して通信端末10に送信する。このとき、シグナリング送受信部3625は、コネクションレス型の通信プロトコルを用いてシグナリングメッセージを送信する。具体的には、シグナリング送受信部3625は、(デ)カプセル化部3610から供給されたシグナリングメッセージを通信部に供給し、UDPを用いて送信させる。
また、シグナリング送受信部3625は、通信端末10から送信されたシグナリングメッセージをシグナリング制御部3605に供給する。この場合も、シグナリング送受信部3625は、第2セッションが確立される前において、シグナリングメッセージを暗号化部3615に供給し、一方で、第2セッションが確立された後において、シグナリングメッセージを、(デ)カプセル化部3610に供給する。
本実施形態に係るSIPサーバ22によれば、通信端末10とのシグナリングを実行する場合に、通信端末10に送信するシグナリングメッセージのセキュリティを、TLSを用いて確保できる。これにより、SIPサーバ22は、通信端末10とのシグナリング用セッションを切断することなく通信を継続することができるだけでなく、シグナリングメッセージのセキュリティを確実に確保できる。
図6は、本実施形態に係るSIPサーバ22のモジュール構成の一例を示す。なお、通信IFモジュール420およびNI430は、図5の上記説明における通信部3200の一例である。また、シグナリング制御モジュール4605は、図5の上記説明におけるシグナリング制御部1605の一例である。また、(デ)カプセル化モジュール4600は、図5の上記説明における(デ)カプセル化部3610の一例である。また、TLSモジュール452およびTLSモジュール458は、図5の上記説明における暗号化部3615の一例であり、TLSモジュール452とTLSモジュール458とは、物理的に1つのモジュールであってもよい。また、UDPモジュール440およびTCPモジュール442は、図5の上記説明におけるシグナリング送受信部3625の一例である。
まず、シグナリング制御モジュール4605は、通信端末10からセッション確立要求が送信されたことを契機として、シグナリングメッセージとして200OKメッセージを通信端末10に送信する。すなわち、シグナリング制御モジュール4605は、200OKメッセージをTLSモジュール458においてTLSを用いて暗号化させる。そして、シグナリング制御モジュール4605は、TLSで暗号化された200OKメッセージを、TCPモジュール442から通信IFモジュール420を介して通信端末10に送信する。これにより、通信端末10とSIPサーバ22との間に第1TLSセッションが確立される。
通信端末10とSIPサーバ22との間に第1TLSセッションが確立すると、シグナリング制御モジュール4605は、さらに、通信端末10からセッション確立要求を受信する。このセッション確立要求は、通信端末10において仮想IPアドレスを用いてカプセル化されたシグナリングメッセージを用いて行われる。係る場合において、シグナリング制御モジュール4605は、さらに200OKメッセージを生成し、TLSモジュール452に供給し、TLSを用いて暗号化させる。そして、シグナリング制御モジュール4605は、TLSで暗号化された200OKをTCP/UDPモジュール454においてTCPで送信可能な形式にする。続いて、シグナリング制御モジュール4605は、TLSで暗号化した上でTCPで送信可能な形式にした200OKメッセージを、Virtual IFモジュール410に供給する。
Virtual IFモジュール410は、受け取った200OKメッセージを(デ)カプセル化モジュール4600に供給する。(デ)カプセル化モジュール4600は、受け取った200OKメッセージを、UDPで送信可能な形式にカプセル化する。例えば、(デ)カプセル化モジュール4600は、TLSで暗号化した上でTCPで送信可能な形式にした200OKメッセージを、UDPで送信可能な形式にすべく、予め定められた付加情報を200OKメッセージに付加することによりカプセル化する。そして、(デ)カプセル化モジュール4600は、カプセル化した200OKメッセージをUDPモジュール440から通信IFモジュール420を介して通信端末10に送信する。これにより、通信端末10とSIPサーバ22との間に第2TLSセッションが確立される。以上のように、SIPサーバ22は、通信端末10との間で仮想IPアドレスに基づく第2TLSセッションを確立できるので、通信端末10に動的に割り当てられる実IPアドレスが変化した場合でも、通信端末10とのシグナリングのためのセッションが切断されることなく、継続的に通信端末10とのシグナリングを実行することができる。
図7は、本実施形態に係る通信端末10によるシグナリング処理の流れの一例を示す。まず、IACモジュール2610は、複数の通信IFモジュールから、通信可能な通信IFモジュールを選択する(S500)。そして、IACモジュール2610は、選択した通信IFモジュールに割り当てられた実IPアドレスを取得する(S505)。そして、シグナリング制御モジュール2605は、第1プロトコルの第1セッションを実IPアドレスに基づいて確立する(S510)。第1セッションは、例えば、TSLおよびTCPによるセッションである。その後、シグナリング制御モジュール2605は、第1セッションを用いて、シグナリングをセキュアに送受信する(S515)。次に、Virtual IFモジュール210が有効に設定される(S520)。
ここで、通信端末10のシグナリングセキュリティのモビリティが必要でない場合(S525:NO)、通信端末10は、待機状態に移行する(S545)。この場合、待機状態において、シグナリング制御モジュール2605は、必要に応じて、第1セッションを介してシグナリングを行う。一方で、通信端末10のシグナリングセキュリティのモビリティが必要である場合(S525:YES)、通信端末10は、任意のプロトコルの第2セッションを、Virtual IFモジュール210に設定された仮想IPアドレスに基づいて確立する(S530)。任意のプロトコルとは、上述した第1プロトコルと同一であってもよいし、他のプロトコルであってもよい。そして、第2セッションは、例えば、TSLおよびTCPによるセッションである、SRTPおよびUDPによるセッションである。
その後、シグナリング制御モジュール2605は、第2セッションを用いて、シグナリングをセキュアに送受信する(S535)。そして、シグナリング制御モジュール2605は、シグナリング処理が完了したか否かを判断する(S540)。シグナリング処理が完了していない場合には、S540に戻り、シグナリング制御モジュール2605は、引き続き、第2セッションを用いて、シグナリングをセキュアに送受信する(S535)。一方で、シグナリング処理が完了している場合には、通信端末10は、待機状態に移行する(S545)。この場合、待機状態において、シグナリング制御モジュール2605は、第2セッションを介してシグナリングを行う。
その後、セッションモビリティコントローラモジュール260が停止されない場合(S545:NO)には、通信端末10は、待機状態に維持される。一方で、セッションモビリティコントローラモジュール260が停止された場合(S545:YES)には、シグナリング処理が終了する。
図8は、待機状態(S545)における通信データの送信処理の流れの一例を示す。まず、一般クライアントアプリケーションモジュール200は、通信端末12に送信すべき通信データを、Virtual IFモジュール210に割り当てられた仮想IPアドレスを指定して送信する(S600)。仮想IPアドレスは、Virtual IFモジュール210に固定的に割り当てられるので、一般クライアントアプリケーションモジュール200は、通信中継装置が通信端末10に動的に割り当てたIPアドレスがいかなるIPアドレスであっても、常に仮想IPアドレスを指定して、通信データを送信する。なお、一般クライアントアプリケーションモジュール200は、TCPを用いて送信可能な形式で通信データをVirtual IFモジュール210に送信する。
Virtual IFモジュール210は、一般クライアントアプリケーションモジュール200から受け取った通信データに関してパケット処理を実行する(S610)。すなわち、Virtual IFモジュール210は、一般クライアントアプリケーションモジュール200から受け取った、複数の通信パケットを含む通信データを(デ)カプセル化モジュール2600に供給する。(デ)カプセル化モジュール2600は、Virtual IFモジュール210から受け取った通信データを、UDPを用いて通信できる形式にカプセル化する(S620)。
例えば、(デ)カプセル化モジュール2600は、IACモジュール2610が取得した実IPアドレスをTCPで通信可能な形式の通信データに付加してカプセル化することにより、UDPで通信可能な形式にカプセル化する。(デ)カプセル化モジュール2600は、カプセル化した通信データをSRTPモジュール256に供給する。SRTPモジュール256は、(デ)カプセル化モジュール2600から受け取った通信データを、第2セキュリティプロトコルであるSRTPで暗号化する(S630)。そして、UDPモジュール240は、SRTPモジュール256が暗号化した通信データを、第2通信プロトコルであるUDPを用いて、通信IFモジュールから通信端末12に送信する。
図9は、待機状態(S545)における通信データの送信処理の流れの一例を示す。まず、UDPモジュール240は、通信端末12が通信端末10にあてて送信した通信データを、通信IFモジュールを介して受信する(S700)。通信端末12が通信端末10にあてて送信した通信データは、TCPで通信可能な通信データをUDPで通信可能な形式にカプセル化した上で、第2セキュリティプロトコルであるSRTPを用いて暗号化されている。
UDPモジュール240は、受信した通信データをSRTPモジュール256に供給する。SRTPモジュール256は、SRTPを用いて暗号化されている通信データを復号化する(S710)。SRTPモジュール256は、復号化した通信データを(デ)カプセル化モジュール2600に供給する。(デ)カプセル化モジュール2600は、SRTPモジュール256から受け取った通信データをデカプセル化する(S720)。(デ)カプセル化モジュール2600は、でカプセル化した後の通信データをVirtual IFモジュール210に供給する。Virtual IFモジュール210は、(デ)カプセル化モジュール2600から受け取った通信データをパケット処理して(S730)、一般クライアントアプリケーションモジュール200に転送する(S740)。
図10は、本実施形態に係る通信端末10またはSIPサーバ22のハードウェア構成の一例を示す。なお、本実施形態に係るプロキシサーバ20は、以下に述べるハードウェア構成の一部または全部を備えていてもよい。本実施形態に係る通信端末10およびSIPサーバ22は、ホスト・コントローラ1582により相互に接続されるCPU1505、RAM1520、グラフィック・コントローラ1575、および表示装置1580を有するCPU周辺部と、入出力コントローラ1584によりホスト・コントローラ1582に接続される通信インターフェース1530、ハードディスクドライブ1540、およびCD−ROMドライブ1560を有する入出力部と、入出力コントローラ1584に接続されるROM1510、フレキシブルディスク・ドライブ1550、および入出力チップ1570を有するレガシー入出力部とを備える。
ホスト・コントローラ1582は、RAM1520と、高い転送レートでRAM1520をアクセスするCPU1505およびグラフィック・コントローラ1575とを接続する。CPU1505は、ROM1510およびRAM1520に格納されたプログラムに基づいて動作して、各部を制御する。グラフィック・コントローラ1575は、CPU1505等がRAM1520内に設けたフレーム・バッファ上に生成する画像データを取得して、表示装置1580上に表示させる。これに代えて、グラフィック・コントローラ1575は、CPU1505等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ1584は、ホスト・コントローラ1582と、比較的高速な入出力装置である通信インターフェース1530、ハードディスクドライブ1540、CD−ROMドライブ1560を接続する。通信インターフェース1530は、ネットワークを介して他の装置と通信する。ハードディスクドライブ1540は、通信端末10またはSIPサーバ22内のCPU1505が使用するプログラムおよびデータを格納する。CD−ROMドライブ1560は、CD−ROM1595からプログラムまたはデータを読み取り、RAM1520を介してハードディスクドライブ1540に提供する。
また、入出力コントローラ1584には、ROM1510と、フレキシブルディスク・ドライブ1550、および入出力チップ1570の比較的低速な入出力装置とが接続される。ROM1510は、通信端末10またはSIPサーバ22が起動時に実行するブート・プログラム、通信端末10またはSIPサーバ22のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ1550は、フレキシブルディスク1590からプログラムまたはデータを読み取り、RAM1520を介してハードディスクドライブ1540に提供する。入出力チップ1570は、フレキシブルディスク・ドライブ1550、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
RAM1520を介してハードディスクドライブ1540に提供される通信プログラムは、フレキシブルディスク1590、CD−ROM1595、またはICカード等の記録媒体に格納されて利用者によって提供される。通信プログラムは、記録媒体から読み出され、RAM1520を介して通信端末10またはSIPサーバ22内のハードディスクドライブ1540にインストールされ、CPU1505において実行される。
通信端末10にインストールされて実行される通信プログラムは、CPU1505等に働きかけて、通信端末10を、図1から図9にかけて説明した一般アプリケーション部100、リアルタイムアプリケーション部105、仮想インターフェース部110、複数の通信部、通信IF選択部140、アドレス取得部150、データ形式変換部1600、シグナリング制御部1605、(デ)カプセル化部1610、第1暗号化部1615、第2暗号化部1620、シグナリング送受信部1625、変換テーブル記憶部1640、およびデータ送受信部1645として機能させる。
また、SIPサーバ22にインストールされて実行される通信プログラムは、CPU1505等に働きかけて、SIPサーバ22を、図1から図9にかけて説明した仮想インターフェース部3000、セッションモビリティ制御ユニット3100、および通信部3200として機能させる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加え得ることが当業者に明らかである。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。