以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図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に蓄積させる。
本実施形態の第1の例において、通信端末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でSIPサーバ22へ送信する。これにより、通信端末10とSIPサーバ22とのシグナリングは、TLSプロトコルによってセキュアに実現される。
また、本実施形態の第2の例において、通信端末10は、基地局30またはアクセスポイント32を介して、SIPサーバ22との間にシグナリング用のTLSセッションを確立する。続いて、通信端末10は、TLSセッションを確立した後、TLSセッションを用いてSIPサーバ22との間でシグナリングメッセージをやりとりすることで、SIPサーバ22との間にシグナリング用のSRTP(Secure Real−Time Transport Protocol)セッションを確立する。ここで、通信端末10は、TLSセッションを確立したときに得られたSIPサーバ22との間の認証の結果を使って、SRTPセッションを確立するときのSIPサーバ22との認証を得ることで、SRTPセッションを確立する。他の例においては、通信端末10は、TLSセッションを確立したときに得られたSIPサーバ22との間の認証の結果を使わず、SIPサーバ22との間で改めて認証情報をやりとりして認証を得ることで、SRTPセッションを確立してもよい。
この場合、通信端末10は、SRTPプロトコルを用いてシグナリングメッセージを暗号化した上で、SRTPセッションを介して、コネクションレス型のプロトコルであるUDP(User Datagram Protocol)でSIPサーバ22へ送信する。これにより、通信端末10とSIPサーバ22とのシグナリングは、SRTPプロトコルによってセキュアに実現される。
図2は、本実施形態に係る通信セキュリティの概要を示す。通信端末10とSIPサーバ22との間でやりとりされるシグナリングメッセージは、TLSまたはSRTPにより暗号化される。また、通信端末10と通信端末12またはプロキシサーバ20との間でやりとりされる通信データは、SRTPにより暗号化される。したがって、セルラー網40、無線LAN網46、およびインターネット44のようなオープンネットワークにおけるシグナリングメッセージおよび通信データのセキュリティを確保できる。
本実施形態の第1の例において、通信端末10は、SIPサーバ22との間で、TLSセッションを確立してシグナリングメッセージを送受信する。通信端末10は、実IPアドレスを用いて第1TLSセッションを確立した後、仮想IPアドレスを用いて第2TLSセッションを確立する。そして、通信端末10は、TLSにより暗号化されたシグナリングメッセージを、仮想IPアドレスを送信元アドレスとするシグナリングメッセージから実IPアドレスを送信元アドレスとするシグナリングメッセージにカプセル化する。そして、通信端末10は、カプセル化されたシグナリングメッセージを、第2TLSセッションを介してUDPでSIPサーバ22へ送信する。したがって、通信端末10は、継続的に迅速にTLSセッションでシグナリングメッセージをSIPサーバ22とやりとりすることができる。
また、通信端末10は、通信端末12およびプロキシサーバ20との間で、通信データをSRTPで暗号化して送受信する。通信端末10は、通信端末12およびプロキシサーバ20に送信すべき通信データを、仮想IPアドレスを送信元アドレスとする通信データから実IPアドレスを送信元アドレスとする通信データにカプセル化する。そして、通信端末10は、カプセル化された通信データを、SRTPで暗号化してUDPで通信端末12およびプロキシサーバ20へ送信する。通信端末10は、第2TLSセッションを介してのシグナリングを常に有効に動作させることができる。
また、本実施形態の第2の例において、通信端末10は、起動するとまず、SIPサーバ22との間に、TLSセッションを確立する。続いて、通信端末10は、確立したTLSセッションを介してシグナリングメッセージを送受信することにより、SIPサーバ22との間に、SRTPセッションを確立する。その後、通信端末10は、確立されたSRTPセッションを介してシグナリングを送受信する。したがって、通信端末10は、継続的かつ迅速にSRTPセッションでシグナリングメッセージをSIPサーバ22とやりとりすることができる。
また、通信端末10は、通信端末12およびプロキシサーバ20との間で、通信データをSRTPで暗号化して送受信する。通信端末10は、通信端末12およびプロキシサーバ20に送信すべき通信データを、TLSセッションが確立された場合にSIPサーバ22によって割り当てられた仮想IPアドレスを送信元アドレスとする通信データから実IPアドレスを送信元アドレスとする通信データにカプセル化する。そして、通信端末10は、カプセル化された通信データを、SRTPで暗号化してUDPで通信端末12およびプロキシサーバ20へ送信する。したがって、通信端末10は、SRTPによる通信を常に実現することができる。
図3は、本実施形態の第1の例に係る通信端末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、暗号化条件格納部1650、および暗号化条件判断部1655を有する。
なお、図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(Handover)、通話中のコーデック変更、定期的な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 Transport Protocol)のパケットである場合には、データ形式の変換を実行せず、通信データがRTP以外のパケットである場合には、RTPヘッダを付加することにより、RTPのパケットへのデータ形式の変換を実行する。そして、データ形式変換部1600は、データ形式を変換した後の通信データを第2暗号化部1620に供給する。
また、データ形式変換部1600は、通信端末12またはプロキシサーバ20から送信された通信データのデータ形式を逆変換する。例えば、データ形式変換部1600は、通信データからRTPヘッダを外し、通信データをTCP/UDPパケットに変換する。そして、データ形式変換部1600は、データ形式を逆変換した後の通信データを仮想インターフェース部110に供給する。
(デ)カプセル化部1610は、仮想インターフェース部110から受け取ったシグナリングメッセージ、または第2暗号化部1620から受け取った通信データに、予め定められた付加情報を付加することによりカプセル化する。具体的には、(デ)カプセル化部1610は、仮想インターフェース部110から供給される、仮想IPアドレスが送信元アドレスとして付加されたシグナリングメッセージ、または第2暗号化部1620から供給される通信データに、アドレス取得部150が取得して変換テーブル記憶部1640に記憶されている実IPアドレスを送信元アドレスとして付加してカプセル化する。そして、(デ)カプセル化部1610は、カプセル化したシグナリングメッセージを、シグナリング送受信部1625に供給する。また、(デ)カプセル化部1610は、カプセル化した通信データを、データ送受信部1645に供給する。
また、(デ)カプセル化部1610は、SIPサーバ22から送信された、カプセル化されたシグナリングメッセージを受け取った場合、受け取ったシグナリングメッセージをデカプセル化して仮想インターフェース部110に供給する。また、(デ)カプセル化部1610は、通信端末12またはプロキシサーバ20から送信された、カプセル化された通信データを受け取った場合、受け取った通信データをデカプセル化して第2暗号化部1620に供給する。例えば、(デ)カプセル化部1610は、UDPカプセリングされた通信データからUDPヘッダを外し、通信データをRTPパケットに変換する。そして、(デ)カプセル化部1610は、デカプセル化された後の通信データを第2暗号化部1620に供給する。
第2暗号化部1620は、シグナリング送受信部1625がSIPサーバ22に送信したシグナリングメッセージに応じて、SIPサーバ22が通信端末10のシグナリングをした後、第2暗号化部1620から供給された通信データを第1セキュリティプロトコルとは異なる第2セキュリティプロトコルを用いて暗号化する。具体的には、第2暗号化部1620は、コネクションレス型の通信プロトコルとともに利用可能な第2セキュリティプロトコルを用いて暗号化する。例えば、第2暗号化部1620は、通信データを、第2セキュリティプロトコルとしてSRTPを用いて暗号化する。
そして、第2暗号化部1620は、暗号化した通信データを、(デ)カプセル化部1610に供給する。また、第2暗号化部1620は、通信端末12またはプロキシサーバ20から送信された通信データを復号化してデータ形式変換部1600に供給する。例えば、第2暗号化部1620は、SRTPセッションの鍵情報を用いて、(デ)カプセル化部1610がRTPパケットに変換した通信データを復号化する。
シグナリング送受信部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を介して受け取り、(デ)カプセル化部1610に供給する。
暗号化条件格納部1650は、第2暗号化部1620に暗号化させるか否かを決定するための、予め定められた条件を格納する。暗号化条件格納部1650は、ユーザによって個別に設定された条件を格納してもよい。
暗号化条件判断部1655は、前記第2暗号化部1620が受け取った通信データを送信する条件が、暗号化条件格納部1650が格納している予め定められた条件に合致するか否かを判断する。
データ形式変換部1600は、暗号化条件判断部1655によって予め定められた条件に合致しないと判断された通信データのデータ形式を変換しない。そして、第2暗号化部1620は、当該通信データを暗号化しない。一方で、データ形式変換部1600は、暗号化条件判断部1655によって予め定められた条件に合致すると判断された通信データを、SRTPを用いて暗号化できるデータ形式に変換する。そして、第2暗号化部1620は、当該通信データを暗号化する。
暗号化条件格納部1650は、予め定められた条件として、アプリケーションの種類を格納する。暗号化条件判断部1655は、第2暗号化部1620が受け取った通信データを解析することにより、当該通信データを生成したアプリケーションの種類を判断する。そして、暗号化条件判断部1655は、当該通信データを生成したアプリケーションの種類が、暗号化条件格納部1650が格納しているアプリケーションの種類に合致する否かを判断する。
当該通信データを生成したアプリケーションの種類が、暗号化条件格納部1650に格納されていない場合、データ形式変換部1600は、当該通信データのデータ形式を変換しない。そして、第2暗号化部1620は、当該通信データを暗号化せずに、データ送受信部1645に供給する。一方で、当該通信データを生成したアプリケーションの種類が、暗号化条件格納部1650に格納されている場合、データ形式変換部1600は、当該通信データのデータ形式を変換する。そして、第2暗号化部1620は、当該通信データを暗号化する。
暗号化条件格納部1650は、例えば、HTTPS(Hypertext Transfer Protocol Security)、SSH(Secure Shell)等のアプリケーションの種類を格納する。これにより、上位レイヤにおいて既に暗号化が施されている通信データに対してさらに暗号化を施すことを防ぐことができる。
また、暗号化条件格納部1650は、予め定められた条件として、通信データに適用されるプロトコルを格納してもよい。暗号化条件判断部1655は、第2暗号化部1620が受け取った通信データを解析すること、またはデータ送受信部1645による適用されるプロトコルを調べることにより、当該通信データに適用されるプロトコルを判断する。そして、暗号化条件判断部1655は、当該通信データに適用されるプロトコルが、暗号化条件格納部1650が格納しているプロトコルに合致する否かを判断する。
当該通信データに適用されるプロトコルが、暗号化条件格納部1650に格納されていない場合、データ形式変換部1600は、当該通信データのデータ形式を変換しない。そして、第2暗号化部1620は、当該通信データを暗号化せずに、データ送受信部1645に供給する。一方で、当該通信データに適用されるプロトコルが、暗号化条件格納部1650に格納されている場合、データ形式変換部1600は、当該通信データのデータ形式を変換する。そして、第2暗号化部1620は、当該通信データを暗号化する。
暗号化条件格納部1650は、例えば、UDP、IGMP(Internet Group Management Protocol)等のプロトコルを格納する。これにより、通信データの転送効率を向上させるために特定のプロトコルの適用される場合に、暗号化処理によって転送効率を低減させることを防ぐことができる。
また、暗号化条件格納部1650は、予め定められた条件として、通信方式の種類を格納してもよい。暗号化条件判断部1655は、通信IF選択部140が選択した通信部の通信方式の種類から、当該通信データが送信される場合の通信方式の種類を判断する。そして、暗号化条件判断部1655は、当該通信データが送信される場合の通信方式の種類が、暗号化条件格納部1650が格納している通信方式の種類に合致する否かを判断する。
当該通信データが送信される場合の通信方式の種類が、暗号化条件格納部1650に格納されていない場合、データ形式変換部1600は、当該通信データのデータ形式を変換しない。そして、第2暗号化部1620は、当該通信データを暗号化せずに、データ送受信部1645に供給する。一方で、当該通信データが送信される場合の通信方式の種類が、暗号化条件格納部1650に格納されている場合、第2暗号化部1620は、当該通信データを暗号化する。
暗号化条件格納部1650は、例えば、WiFi方式等の通信方式を格納する。これにより、セキュリティレベルが比較的低い場合が多いWiFi方式で通信データが送信される場合には、暗号化処理を実行させ、セキュリティレベルが比較的高い場合が多いセルラー方式で通信データが送信される場合には、暗号化処理を実行させないことができる。したがって、セキュリティレベルが高い通信方式で送信される通信データに対して、過剰に暗号化を施すことを防ぐことができる。
本実施形態に係る通信端末10によれば、SIPサーバ22とのシグナリングを実行する場合に、SIPサーバ22に送信するシグナリングメッセージのセキュリティを、TLSを用いて確保できる。また、通信端末がデータ通信を実行する場合に、通信端末12またはプロキシサーバ20に送信する通信データのセキュリティを、SRTPを用いて確保できる。これにより、通信端末10は、通信端末12、プロキシサーバ20、およびSIPサーバ22との通信接続を切断することなく通信を継続することができるだけでなく、シグナリングメッセージおよび通信データのセキュリティを確実に確保できる。さらに、第2暗号化部1620による暗号化処理を、必要な場合だけ適用することで、暗号化処理の処理量、および通信トラフィックを低減させることができる。
図4は、本実施形態の第1の例に係る通信端末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および変換テーブル記憶部1640の一例である。
RTPモジュール2615およびRTPモジュール2620は、図3の上記説明におけるデータ形式変換部1600の一例であり、RTPモジュール2615とRTPモジュール2620とは、物理的に1つのモジュールであってもよい。また、ポリシーコントロールモジュール2625は、図3の上記説明における暗号化条件格納部1650および暗号化条件判断部1655の一例である。
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とシグナリングメッセージをやりとりすることにより、通信端末10とSIPサーバ22との間に第1TLSセッションを確立する。そして、シグナリング制御モジュール2605は、SIPサーバ22に、シグナリングメッセージとしてREGISTERリクエストメッセージを送信する。REGISTERリクエストメッセージは、シグナリング処理をするSIPサーバ22のSIP URI、登録を要求する通信端末10のSIP URI、および登録の有効期限を示す情報等を含む。そして、REGISTERリクエストメッセージを受信したSIPサーバ22は、通信端末10のシグナリング処理を実行する。SIPサーバ22は、シグナリング処理が完了した場合、シグナリングが完了したことを、例えば、200OKメッセージを返信することで通信端末10のシグナリング制御モジュール2605に通知する。
次に、通信中継装置との通信が可能な通信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アドレスを付加した通信アドレスをVirtual IFモジュール210に供給する。これにより、一般クライアントアプリケーションモジュール200は、通信端末10に割り当てられる実IPアドレスが変更された場合でも、実IPアドレスの変更の影響を受けることなく、通信端末12とのTCPセッションを継続できる。
Virtual IFモジュール210は、一般クライアントアプリケーションモジュール200から受け取った通信データを、(デ)カプセル化モジュール2600に供給する。(デ)カプセル化モジュール2600は、Virtual IFモジュール210から受け取った通信データをカプセル化する。(デ)カプセル化モジュール2600は、RTPモジュール2620、SRTPモジュール256、およびUDPモジュール240を制御して、受け取った通信データをカプセル化および暗号化する。
RTPモジュール2620は、通信データにRTPヘッダを付加することで、SRTPを用いて暗号化できるデータ形式に変換する。ポリシーコントロールモジュール2625は、予め定められた条件に基づいて、RTPモジュール2620から出力される通信データに対してSRTPによる暗号化が必要か否かを判断する。
ポリシーコントロールモジュール2625によってSRTPによる暗号化が必要であると判断された場合には、SRTPモジュール256は、RTPモジュール2620がRTPパケットに変換した通信データを、SRTPを用いて暗号化する。UDPモジュール240は、SRTPモジュール256が暗号化した通信データにUDPヘッダを付加することでカプセル化し、通信IFモジュールを介して通信端末12に送信する。
一方、ポリシーコントロールモジュール2625によってSRTPによる暗号化が必要でないと判断された場合には、RTPモジュール2620は、通信データにRTPヘッダを付加しない。また、SRTPモジュール256は、RTPモジュール2620が出力した通信データを暗号化することなく、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は、通信端末10に割り当てられる実IPアドレスが変更された場合でも、実IPアドレスの変更の影響を受けることなく、通信端末12とのTCPセッションを継続できる。また、一般クライアントアプリケーションモジュール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モジュール2615から受け取った通信データを、SRTPを用いて暗号化する。そして、SRTPモジュール256は、暗号化した通信データを、通信モジュールを介して通信端末12に送信する。また、通信端末12から通信IFモジュールが受信したSIP APの通信データは、SRTPモジュール256が復号化する。そして、SRTPモジュール256は、復号化した通信データを、RTPモジュール2615を介して、Mobile SIP APsモジュール205に供給する。
なお、上記説明における通信端末12に送信する通信データは、プロキシサーバ20を介して公開サーバ26等の他のサーバ、または通信端末に送信してもよい。係る場合に、通信端末10が送信した通信データのデカプセル化および復号化、並びに公開サーバ26等が送信した通信データのカプセル化および暗号化は、プロキシサーバ20が実行する。
これにより、通信端末10は、通信端末12と送受信する通信データのセキュリティをSRTPを用いて確保できる。さらに、IPsecを用いることがないので、IPsec Security Gatewayを介して通信データを送受信することがなくなる。これにより、通信トラフィックが一点集中することを回避できる。
図5は、本実施形態の第1の例に係る通信端末10によるシグナリング処理の流れの一例を示す。まず、IACモジュール2610は、複数の通信IFモジュールから、通信可能な通信IFモジュールを選択する(S500)。そして、IACモジュール2610は、選択した通信IFモジュールに割り当てられた実IPアドレスを取得する(S505)。そして、シグナリング制御モジュール2605は、第1プロトコルの第1セッションを実IPアドレスに基づいて確立する(S510)。第1セッションは、例えば、TLSおよび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セッションは、例えば、TLSおよびTCPによるセッションである、SRTPおよびUDPによるセッションである。
その後、シグナリング制御モジュール2605は、第2セッションを用いて、シグナリングをセキュアに送受信する(S535)。そして、シグナリング制御モジュール2605は、シグナリング処理が完了したか否かを判断する(S540)。シグナリング処理が完了していない場合には、S540に戻り、シグナリング制御モジュール2605は、引き続き、第2セッションを用いて、シグナリングをセキュアに送受信する(S535)。一方で、シグナリング処理が完了している場合には、通信端末10は、待機状態に移行する(S545)。この場合、待機状態において、シグナリング制御モジュール2605は、第2セッションを介してシグナリングを行う。
その後、セッションモビリティコントローラモジュール260が停止されない場合(S545:NO)には、通信端末10は、待機状態に維持される。一方で、セッションモビリティコントローラモジュール260が停止された場合(S545:YES)には、シグナリング処理が終了する。
図6は、待機状態(S545)における通信データの送信処理の流れの一例を示す。まず、一般クライアントアプリケーションモジュール200は、通信端末12に送信すべき通信データを、Virtual IFモジュール210に割り当てられた仮想IPアドレスを指定して、Virtual IFモジュール210を介して(デ)カプセル化モジュール2600に供給する(S600)。仮想IPアドレスは、Virtual IFモジュール210に固定的に割り当てられるので、一般クライアントアプリケーションモジュール200は、通信中継装置が通信端末10に動的に割り当てたIPアドレスがいかなるIPアドレスであっても、常に仮想IPアドレスを指定して、通信データを送信する。なお、一般クライアントアプリケーションモジュール200は、TCPを用いて送信可能な形式で通信データをVirtual IFモジュール210に送信する。
ポリシーコントロールモジュール2625は、一般クライアントアプリケーションモジュール200から供給された通信データを送信する条件が、予め定められた条件に合致するか否かを判断する(S610)。予め定められた条件に合致すると判断された場合(S610:YES)、RTPモジュール2620は、Virtual IFモジュール210から供給された通信データにパケット処理を実行する(S620)。すなわち、RTPモジュール2620は、通信データにRTPヘッダを付加してカプセル化する。
次に、SRTPモジュール256は、RTPモジュールがカプセル化した通信データを、第2セキュリティプロトコルであるSRTPで暗号化する(S630)。そして、UDPモジュール240は、SRTPモジュール256が暗号化した通信データにUDPヘッダを付加してカプセル化する(S640)。そして、UDPモジュール240は、SRTPモジュール256が暗号化した通信データを、UDPを用いて通信IFモジュールから通信端末12に送信する(S650)。
S610において、予め定められた条件に合致しないと判断された場合(S610:NO)、RTPモジュール2620は、通信データをカプセル化せず、SRTPモジュール256は、通信データを暗号化しない。UDPモジュール240は、SRTPで暗号化されていない通信データにUDPヘッダを付加してカプセル化する(S660)。そして、UDPモジュール240は、SRTPで暗号化されていない通信データを、UDPを用いて通信IFモジュールから通信端末12に送信する(S670)。
図7は、待機状態(S545)における通信データの受信処理の流れの一例を示す。まず、UDPモジュール240は、通信端末12が通信端末10にあてて送信した通信データを、通信IFモジュールを介して受信する(S700)。通信端末12が通信端末10にあてて送信した通信データは、TCPで通信可能な通信データをUDPで通信可能な形式にカプセル化した上で、第2セキュリティプロトコルであるSRTPを用いて暗号化されている。
UDPモジュール240は、(デ)カプセル化モジュール2600の制御に従い、受信した通信データからUDPヘッダを外すことによって、通信データをデカプセル化する(S710)。SRTPモジュール256は、SRTPを用いて暗号化されているデカプセル化された通信データを復号化する(S720)。(デ)カプセル化モジュール2600は、デカプセル化された後に復号化された通信データをVirtual IFモジュール210に供給する。Virtual IFモジュール210は、(デ)カプセル化モジュール2600から受け取った通信データをパケット処理して(S730)、一般クライアントアプリケーションモジュール200に転送する(S740)。
図8は、本実施形態の第2の例に係る通信端末10の通信モジュール14の機能構成の一例を示す。通信モジュール14は、一般アプリケーション部800、リアルタイムアプリケーション部805、仮想インターフェース部810、通信ユニット820、通信制御ユニット830、およびセッションモビリティ制御ユニット860を備える。なお、プロキシサーバ20およびSIPサーバ22は、通信モジュール14の機能および構成の一部、または全部を備えていてよい。
通信ユニット820は、第1通信部822、第2通信部824、および第n通信部826を含む複数の通信部を有する。また、通信制御ユニット830は、通信IF選択部840およびアドレス取得部850を有する。また、セッションモビリティ制御ユニット860は、データ形式変換部8600、シグナリング制御部8605、(デ)カプセル化部8610、第1暗号化部8615、第2暗号化部8620、シグナリング送受信部8625、変換テーブル記憶部8640、データ送受信部8645、暗号化条件格納部8650、および暗号化条件判断部8655を有する。
通信ユニット820は、通信モジュール14が通信可能な複数の通信方式ごとに異なる複数の通信部を有する。例えば、通信ユニット820は、第1の通信方式(例えば、無線LAN通信方式)で通信する第1通信部822、第2の通信方式(例えば、電話通信方式)で通信する第2通信部824、および第nの通信方式(例えば、無線LANおよび電話通信方式を除く他の通信方式)で通信する第n通信部826を有する。なお、通信ユニット820は、複数の通信方式で通信可能な通信部を有していてもよい。例えば、通信ユニット820は、第1の通信方式と第2の通信方式とのいずれかで通信可能な通信部、すなわち、上述した第1通信部および第2通信部の機能を併せ持った通信部を有していてもよい。これにより、通信モジュール14の構成の簡略化、および小型化に資することができる。
また、複数の通信部のそれぞれは、セルラー網40、無線LAN網46等の複数の通信網のそれぞれに対応する複数の通信中継装置のそれぞれを介して、シグナリング送受信部8625が生成したシグナリングメッセージを、SIPサーバ22との間で送信する。また、通信ユニット820が有する複数の通信部のそれぞれは、一般アプリケーション部800またはリアルタイムアプリケーション部805が生成した通信データを、通信端末12またはプロキシサーバ20との間で送信する。
また、複数の通信部のそれぞれは、SIPサーバ22から受信したシグナリングメッセージを、通信制御ユニット830を介してシグナリング制御部8605に供給する。また、複数の通信部のそれぞれは、通信端末12またはプロキシサーバ20から受信した通信データを、通信制御ユニット830を介して一般アプリケーション部800またはリアルタイムアプリケーション部805に供給する。
通信ユニット820が有する複数の通信部のそれぞれは、それぞれに割り当てられた通信方式で通信することができるか否かを通信IF選択部840が判断するために用いられる情報を、通信制御ユニット830に供給する。さらに、複数の通信部は、それぞれが通信可能な通信中継装置から動的な実IPアドレスを割り当てられた場合、割り当てられた実アドレスを通信制御ユニット830に供給する。
通信IF選択部840は、複数の通信部から供給された情報に基づいて、複数の通信部のうち通信可能な通信部を選択する。例えば、通信IF選択部840は、通信中継装置が発する通信方式を識別する情報を含む電波の電波強度を示す情報を、複数の通信部から受け取り、電荷強度の大きさに基づいて通信可能な通信部を判断する。他の例において、通信IF選択部840は、複数の通信部に対して予め設定された利用優先順位等のポリシーに基づいて、複数の通信部から1つの通信部を選択してもよい。そして、通信IF選択部840は、選択した通信部を識別する情報を変換テーブル記憶部8640に供給する。
アドレス取得部850は、通信中継装置によって通信端末10に対して動的に割り当てられる実アドレスを取得する。すなわち、アドレス取得部850は、通信IF選択部840が選択した通信部に割り当てられた実アドレスを取得する。実アドレスは、例えば、通信中継装置が管理しているプライベートIPアドレスまたはグローバルIPアドレスであり、以下において、実IPアドレスと称する。そして、アドレス取得部850は、取得した実IPアドレスを変換テーブル記憶部8640に供給する。
変換テーブル記憶部8640は、通信IF選択部840が選択した通信部を識別する情報、およびアドレス取得部850が取得した実IPアドレスを記憶する。そして、変換テーブル記憶部8640は、記憶している実IPアドレスをデータ形式変換部8600および(デ)カプセル化部8610に通知する。
一般アプリケーション部800は、所定の目的の処理を実行する。具体的には、一般アプリケーション部800は、データ処理を実行するアプリケーションプログラムに所定の目的のデータ処理を実行させる。アプリケーションプログラムは、例えば、Webブラウザプログラム、電子メール送受信プログラム、およびマルチメディアデータの送受信プログラム等であってよい。一般アプリケーション部800は、アプリケーションプログラムが処理したデータであって、通信端末12またはプロキシサーバ20に送信すべき通信データを、仮想インターフェース部810に供給する。
係る場合において、一般アプリケーション部800は、仮想インターフェース部810を一意に識別する識別番号を通信データに付加して仮想インターフェース部810に供給する。識別番号は、例えば、仮想インターフェース部810に割り当てられた仮想アドレスである。仮想アドレスは、シグナリング制御部8605の起動段階においてSIPサーバ22によって動的または静的に割り当てられる。仮想アドレスは、例えば、IPアドレスの構成を有しており、以下において、仮想IPアドレスと称する。なお、仮想IPアドレスは、一般アプリケーション部800に対して固定的に設定されてよい。
リアルタイムアプリケーション部805は、所定の目的の処理を実行する。具体的には、リアルタイムアプリケーション部805は、データ処理を実行するSIPアプリケーションプログラムに所定の目的のデータ処理を実行させる。例えば、SIPアプリケーションプログラムは、リアルタイムのマルチメディア通信を提供するIP電話等のアプリケーションプログラムであってよい。
仮想インターフェース部810は、仮想IPアドレスが割り当てられており、通信端末12またはプロキシサーバ20に送信する通信データを一般アプリケーション部800から受け取る。仮想インターフェース部810は、受け取った通信データをデータ形式変換部8600に供給する。
シグナリング制御部8605は、シグナリングメッセージを生成して、通信端末10のシグナリングを制御する。シグナリング制御部8605は、例えばSIPによるシグナリングを制御する。具体的には、シグナリング制御部8605は、アドレス取得部850が取得した実IPアドレスを用いて、SIPサーバ22とのセッションを確立する。より具体的には、シグナリング制御部8605は、第1セキュリティプロトコルに基づく第1シグナリング用セッションをSIPサーバ22との間に確立する。そして、第1シグナリング用セッションを確立した後、第2セキュリティプロトコルに基づく第2シグナリング用セッションをSIPサーバ22との間に確立する。
シグナリング制御部8605は、まず、第1暗号化部8615を介してシグナリングメッセージをシグナリング送受信部8625に供給する。これにより、シグナリング制御部8605は、第1セキュリティプロトコルに基づく第1シグナリング用セッションを、SIPサーバ22との間に確立する。このとき、シグナリング制御部8605は、第1セキュリティプロトコルを用いて、通信端末10とSIPサーバ22との間の相互の認証を得ることによって、第1シグナリング用セッションを確立する。
シグナリング制御部8605は、第1シグナリング用セッションが確立すると、第1暗号化部8615を介してシグナリングメッセージをシグナリング送受信部8625に供給して、第1シグナリング用セッションを介してSIPサーバ22とやりとりする。これにより、シグナリング制御部8605は、第2セキュリティプロトコルに基づく第2シグナリング用セッションを、SIPサーバ22との間に確立する。このとき、シグナリング制御部8605は、第1シグナリング用セッションを確立する場合に第1セキュリティプロトコルを用いて得られた認証の結果を使って、第2シグナリング用セッションを確立する。
シグナリング制御部8605は、第2シグナリング用セッションが確立された後は、データ形式変換部8600および第2暗号化部8620を介して、シグナリングメッセージをシグナリング送受信部8625に供給して、第2シグナリング用セッションを介してSIPサーバ22とやりとりする。なお、シグナリング制御部8605は、通信端末10への電源投入、通信モジュール14の起動または再起動、通信端末10のHO(Handover)、通話中のコーデック変更、定期的なSIP登録更新等の様々な動作を契機として、シグナリングメッセージを生成して位置登録等のシグナリングを処理する。
第1暗号化部8615は、シグナリング制御部8605がSIPサーバ22に対してシグナリングすべく生成したシグナリングメッセージを、通信のセキュリティを確保する第1セキュリティプロトコルを用いて暗号化する。具体的には、第1暗号化部8615は、コネクション型の通信プロトコルとともに利用可能な第1セキュリティプロトコルを用いて暗号化する。より具体的には、第1暗号化部8615は、OSI参照モデルにおけるトランスポート層(レイヤー4)で用いられるコネクション型の通信プロトコルとともに利用可能な第1セキュリティプロトコルを用いて暗号化する。第1セキュリティプロトコルは、公開鍵暗号または秘密鍵暗号、デジタル証明書、およびハッシュ関数等のセキュリティ技術の少なくとも1つを用いて通信データの盗聴および改ざん等を防止するプロトコルであってよい。例えば、第1暗号化部8615は、シグナリングメッセージを、第1セキュリティプロトコルとしてTLSプロトコルを用いて暗号化する。
また、第1暗号化部8615は、SIPサーバ22から送信されたシグナリングメッセージを復号化してシグナリング制御部8605に供給する。この場合、第1暗号化部8615は、シグナリングメッセージを直接シグナリング送受信部8625から受け取る。
データ形式変換部8600は、シグナリング制御部8605が生成したシグナリングメッセージを、第2セキュリティプロトコルに基づいて暗号化できるデータ形式に変換する。具体的には、データ形式変換部8600は、RTPヘッダを付加することによって、シグナリング制御部8605が生成したシグナリングメッセージを、SRTPに基づいて暗号化できるRTPのデータ形式に変換する。そして、データ形式変換部8600は、データ形式を変換したシグナリングメッセージを、第2暗号化部8620に供給する。
また、データ形式変換部8600は、通信端末12またはプロキシサーバ20に送信する通信データを、SRTPを用いて暗号化できるデータ形式に変換する。データ形式変換部8600は、通信データのデータ構成およびヘッダの形式を変換することにより、SRTPを用いて暗号化できるデータ形式に変換する。データ形式変換部8600は、通信データがRTPのパケットである場合には、データ形式の変換を実行せず、通信データがRTP以外のパケットである場合には、RTPヘッダを付加することにより、RTPのパケットへのデータ形式の変換を実行する。そして、データ形式変換部8600は、データ形式を変換した後の通信データを第2暗号化部8620に供給する。
また、データ形式変換部8600は、通信端末12またはプロキシサーバ20から送信された通信データのデータ形式を逆変換する。例えば、データ形式変換部8600は、通信データからRTPヘッダを外し、通信データをTCP/UDPパケットに変換する。そして、データ形式変換部8600は、データ形式を逆変換した後の通信データを仮想インターフェース部810に供給する。
(デ)カプセル化部8610は、第2暗号化部8620から受け取った通信データに、予め定められた付加情報を付加することによりカプセル化する。具体的には、(デ)カプセル化部8610は、仮想インターフェース部810から供給される、仮想IPアドレスが送信元アドレスとして付加された通信データに、アドレス取得部850が取得して変換テーブル記憶部8640に記憶されている実IPアドレスを送信元アドレスとして付加してカプセル化する。そして、(デ)カプセル化部8610は、カプセル化した通信データを、データ送受信部8645に供給する。
また、(デ)カプセル化部8610は、通信端末12またはプロキシサーバ20から送信された、カプセル化された通信データを受け取る。そして、(デ)カプセル化部8610は、受け取った通信データをデカプセル化して第2暗号化部8620に供給する。例えば、(デ)カプセル化部8610は、UDPカプセリングされた通信データからUDPヘッダを外し、RTPパケットに変換する。そして、(デ)カプセル化部8610は、デカプセル化された後の通信データを第2暗号化部8620に供給する。
第2暗号化部8620は、データ形式変換部8600によってデータ形式が変換されたシグナリングメッセージまたは通信データを、第1セキュリティプロトコルとは異なる第2セキュリティプロトコルに基づいて暗号化する。具体的には、第2暗号化部8620は、コネクションレス型の通信プロトコルとともに利用可能な第2セキュリティプロトコルを用いて暗号化する。例えば、第2暗号化部8620は、シグナリングメッセージまたは通信データを、第2セキュリティプロトコルとしてSRTPを用いて暗号化する。
そして、第2暗号化部8620は、暗号化したシグナリングメッセージを、シグナリング送受信部8625に供給する。また、第2暗号化部8620は、暗号化した通信データを、(デ)カプセル化部8610に供給する。また、第2暗号化部8620は、SIPサーバ22から送信されたシグナリングメッセージを復号化して、データ形式変換部8600に供給する。第2暗号化部8620は、通信端末12またはプロキシサーバ20から送信され(デ)カプセル化部8610によってデカプセル化された通信データを復号化して、データ形式変換部8600に供給する。例えば、第2暗号化部8620は、SRTPセッションの鍵情報を用いて、(デ)カプセル化部8610がRTPパケットに変換した通信データを復号化する。
シグナリング送受信部8625は、第1シグナリング用セッションを確立する場合、シグナリング制御部8605が生成して第1暗号化部8615が暗号化したシグナリングメッセージを、SIPサーバ22に送信する。また、シグナリング送受信部8625は、第2シグナリング用セッションを確立する場合、シグナリング制御部8605が生成して第1暗号化部8615が暗号化したシグナリングメッセージを、第1シグナリング用セッションを介してSIPサーバ22に送信する。このとき、シグナリング送受信部8625は、コネクション型の通信プロトコルを用いてシグナリングメッセージを送信する。具体的には、シグナリング送受信部8625は、第1暗号化部8615から供給されたシグナリングメッセージを、通信IF選択部840が選択した通信部に通信制御ユニット830を介して供給してTCPを用いて送信させる。
シグナリング送受信部8625は、第2シグナリング用セッションが確立された後、第2暗号化部8620が暗号化したシグナリングメッセージを、第2シグナリング用セッションを介してSIPサーバ22に送信する。このとき、シグナリング送受信部8625は、コネクションレス型の通信プロトコルを用いてシグナリングメッセージを送信する。具体的には、シグナリング送受信部8625は、第2暗号化部8620から供給されたシグナリングメッセージを、通信IF選択部840が選択した通信部に通信制御ユニット830を介して供給してUDPを用いて送信させる。
通信端末10が、第1通信部822が通信可能な第1エリアから第2通信部824が通信可能な第2エリアに移動する場合に、シグナリング送受信部8625は、第2エリアにおいて第2通信方式で確立される第3シグナリング用セッションであるSRTPセッションを確立するためのシグナリングメッセージを、第1エリアにおいて第1通信方式で確立された第2シグナリング用セッションを介して、第1通信方式の通信中継装置経由でSIPサーバ22に送信する。つまり、第2通信部824に通信中継装置から実IPアドレスが割り当てられると、通信IF選択部840が第2通信部824を選択する以前に、第2通信方式によるSRTPセッションを予め確立する。これにより、通信IF選択部840によって、第1通信部822から第2通信部824に切り換えられた場合に、即座に第2通信方式によるシグナリングが可能となり、シグナリングに遅延を生じさせることがない。
同様に、通信端末10が、第1通信部822が通信可能な第1エリアから第2通信部824が通信可能な第2エリアに移動する場合に、シグナリング送受信部8625は、第2エリアにおいて第2通信方式で確立される第2通信データ用セッションを確立するためのシグナリングメッセージを、第1エリアにおいて第1通信方式で確立された第2シグナリング用セッションを介して、第1通信方式の通信中継装置経由でSIPサーバ22に送信する。つまり、第2通信部824に通信中継装置から実IPアドレスが割り当てられると、通信IF選択部840が第2通信部824を選択する以前に、第2通信方式によるSRTPセッションを予め確立する。これにより、通信IF選択部840によって、第1通信部822から第2通信部824に切り換えられた場合に、即座に第2通信方式によるデータ通信が可能となり、データ通信に遅延を生じさせることがない。
また、シグナリング送受信部8625は、SIPサーバ22から送信されたシグナリングメッセージをシグナリング制御部8605に供給する。この場合も、シグナリング送受信部8625は、第1シグナリング用セッションおよび第2シグナリング用セッションを確立する場合、シグナリングメッセージを第1暗号化部8615に供給する。一方で、シグナリング送受信部8625は、第2シグナリング用セッションが確立された後において、シグナリングメッセージを、第2暗号化部8620およびデータ形式変換部8600を介してシグナリング制御部8605に供給する。
また、シグナリング送受信部8625は、一般アプリケーション部800およびリアルタイムアプリケーション部805が生成した通信データを通信端末10に送信するために用いる通信データ用セッションを確立するためのシグナリングメッセージを、第2シグナリング用セッションを介してSIPサーバ22に送信する。
データ送受信部8645は、通信端末12またはプロキシサーバ20に送信すべき通信データを、通信IF選択部840が選択した通信部に通信制御ユニット830を介して供給して通信端末12またはプロキシサーバ20に送信する。具体的には、データ送受信部8645は、第2暗号化部8620が暗号化した通信データを、コネクションレス型の通信プロトコルを用いて送信する。例えば、データ送受信部8645は、第2暗号化部8620がSPTPによって暗号化した通信データを、UDPを用いて送信する。また、データ送受信部8645は、通信端末12またはプロキシサーバ20から受信するデータを、通信IF選択部840が選択した通信部から通信制御ユニット830を介して受け取り、(デ)カプセル化部8610に供給する。
暗号化条件格納部8650は、第2暗号化部8620に暗号化させるか否かを決定するための、予め定められた条件を格納する。暗号化条件格納部8650は、ユーザによって個別に設定された条件を格納してもよい。
暗号化条件判断部8655は、前記第2暗号化部8620が受け取った通信データを送信する条件が、暗号化条件格納部8650が格納している予め定められた条件に合致するか否かを判断する。
データ形式変換部8600は、暗号化条件判断部8655によって予め定められた条件に合致しないと判断された通信データのデータ形式を変換しない。そして、第2暗号化部8620は、当該通信データを暗号化しない。一方で、データ形式変換部8600は、暗号化条件判断部8655によって予め定められた条件に合致すると判断された通信データを、SRTPを用いて暗号化できるデータ形式に変換する。そして、第2暗号化部8620は、当該通信データを暗号化する。
暗号化条件格納部8650は、予め定められた条件として、アプリケーションの種類を格納する。暗号化条件判断部8655は、第2暗号化部8620が受け取った通信データを解析することにより、当該通信データを生成したアプリケーションの種類を判断する。そして、暗号化条件判断部8655は、当該通信データを生成したアプリケーションの種類が、暗号化条件格納部8650が格納しているアプリケーションの種類に合致する否かを判断する。
当該通信データを生成したアプリケーションの種類が、暗号化条件格納部8650に格納されていない場合、データ形式変換部8600は、当該通信データのデータ形式を変換しない。そして、第2暗号化部8620は、当該通信データを暗号化せずに、データ送受信部8645に供給する。一方で、当該通信データを生成したアプリケーションの種類が、暗号化条件格納部8650に格納されている場合、データ形式変換部8600は、当該通信データのデータ形式を変換する。そして、第2暗号化部8620は、当該通信データを暗号化して、データ送受信部8645に供給する。
暗号化条件格納部8650は、例えば、HTTPS、SSH等のアプリケーションの種類を格納する。これにより、上位レイヤにおいて既に暗号化が施されている通信データに対してさらに暗号化を施すことを防ぐことができる。
また、暗号化条件格納部8650は、予め定められた条件として、通信データに適用されるプロトコルを格納してもよい。暗号化条件判断部8655は、第2暗号化部8620が受け取った通信データを解析すること、またはデータ送受信部8645による適用されるプロトコルを調べることにより、当該通信データに適用されるプロトコルを判断する。そして、暗号化条件判断部8655は、当該通信データに適用されるプロトコルが、暗号化条件格納部8650が格納しているプロトコルに合致する否かを判断する。
当該通信データに適用されるプロトコルが、暗号化条件格納部8650に格納されていない場合、データ形式変換部8600は、当該通信データのデータ形式を変換しない。そして、第2暗号化部8620は、当該通信データを暗号化せずに、データ送受信部8645に供給する。一方で、当該通信データに適用されるプロトコルが、暗号化条件格納部8650に格納されている場合、データ形式変換部8600は、当該通信データのデータ形式を変換する。そして、第2暗号化部8620は、当該通信データを暗号化して、データ送受信部8645に供給する。
暗号化条件格納部8650は、例えば、UDP、IGMP等のプロトコルを格納する。これにより、通信データの転送効率を向上させるために特定のプロトコルの適用される場合に、暗号化処理によって転送効率を低減させることを防ぐことができる。
また、暗号化条件格納部8650は、予め定められた条件として、通信方式の種類を格納してもよい。暗号化条件判断部8655は、通信IF選択部840が選択した通信部の通信方式の種類から、当該通信データが送信される場合の通信方式の種類を判断する。そして、暗号化条件判断部8655は、当該通信データが送信される場合の通信方式の種類が、暗号化条件格納部8650が格納している通信方式の種類に合致する否かを判断する。
当該通信データが送信される場合の通信方式の種類が、暗号化条件格納部8650に格納されていない場合、データ形式変換部8600は、当該通信データのデータ形式を変換しない。そして、第2暗号化部8620は、当該通信データを暗号化せずに、データ送受信部8645に供給する。一方で、当該通信データが送信される場合の通信方式の種類が、暗号化条件格納部8650に格納されている場合、第2暗号化部8620は、当該通信データを暗号化して、データ送受信部8645に供給する。
暗号化条件格納部8650は、例えば、WiFi方式等の通信方式を格納する。これにより、セキュリティレベルが比較的低い場合が多いWiFi方式で通信データが送信される場合には、暗号化処理を実行させ、セキュリティレベルが比較的高い場合が多いセルラー方式で通信データが送信される場合には、暗号化処理を実行させないことができる。したがって、セキュリティレベルが高い通信方式で送信される通信データに対して、過剰に暗号化を施すことを防ぐことができる。
本実施形態に係る通信端末10によれば、SIPサーバ22とのシグナリングを実行する場合に、SIPサーバ22に送信するシグナリングメッセージのセキュリティを、SRTPを用いて確保できる。また、通信端末がデータ通信を実行する場合に、通信端末12またはプロキシサーバ20に送信する通信データのセキュリティを、SRTPを用いて確保できる。これにより、通信端末10は、通信端末12、プロキシサーバ20、およびSIPサーバ22との通信接続が途切れることなく通信を継続することができるだけでなく、シグナリングメッセージおよび通信データのセキュリティを確実に確保できる。さらに、第2暗号化部1620による暗号化処理を、必要な場合だけ適用することで、暗号化処理の処理量、および通信トラフィックを低減させることができる。
図9は、本実施形態の第2の例に係る通信端末10のモジュール構成の一例を示す。なお、一般クライアントアプリケーションモジュール900は、例えば、Webブラウザ等のアプリケーションであり、図8の上記説明における一般アプリケーション部800の一例である。Mobile SIP APsモジュール905は、図8の上記説明におけるリアルタイムアプリケーション部805の一例であり、例えば、VoIPアプリケーションである。また、Virtual IFモジュール910は、図8の上記説明における仮想インターフェース部810の一例である。また、複数の通信IFモジュールを有する通信インターフェースユニット920および複数のNICは、図8の上記説明における通信ユニット820の一例である。
シグナリング制御モジュール9605は、図8の上記説明におけるシグナリング制御部8605の一例である。また、IACモジュール9610は、図8の上記説明における通信IF選択部840およびアドレス取得部850の一例である。また、(デ)カプセル化モジュール9600は、図8の上記説明における(デ)カプセル化部8610および変換テーブル記憶部8640の一例である。
RTPモジュール9615およびRTPモジュール9620は、図8の上記説明におけるデータ形式変換部8600の一例であり、RTPモジュール9615とRTPモジュール9620とは、物理的に1つのモジュールであってもよい。また、ポリシーコントロールモジュール9625は、図8の上記説明における暗号化条件格納部8650および暗号化条件判断部8655の一例である。
TLSモジュール958は、図8の上記説明における第1暗号化部8615の一例である。また、SRTPモジュール956は、図8の上記説明における第2暗号化部8620の一例である。また、UDPモジュール940は、図8の上記説明におけるシグナリング送受信部8625およびデータ送受信部8645の一例である。また、TCPモジュール942は、図8の上記説明におけるシグナリング送受信部8625の一例である。
複数のネットワークインターフェースカード(NIC)は、それぞれに対応する通信方式を用いて通信端末12、プロキシサーバ20、およびSIPサーバ22と通信する。複数のNICはそれぞれに対応する通信IFモジュールに制御されて、通信データを送受信する。複数の通信IFモジュールは、それぞれに対応するNICを介して通信データを送受信する。
例えば、通信IFモジュールa922はNICa932を介して通信データを送受信する。同様にして、通信IFモジュールb924はNICb934を介して、そして、通信IFモジュールn926はNICn936を介して通信データを送受信する。具体的には、NICa932は、無線LANインターフェースカードであってよく、NICb934は、携帯電話通信方式のインターフェースカードであってよい。そして、NICn936は、無線LAN通信方式および携帯電話通信方式を除く、他の通信方式のインターフェースカードであってよい。
IACモジュール9610は、通信インターフェースユニット920が有する複数の通信IFモジュール(例えば、通信IFモジュールa922、通信IFモジュールb924、および通信IFモジュールn926等)のうち、いずれが利用可能かを判断して選択する。すなわち、IACモジュール9610は、通信中継装置と通信可能な通信IFモジュールがいずれであるかを判断して、通信可能な通信IFモジュールを選択する。IACモジュール9610が、通信可能な通信IFモジュールがいずれであるかを判断する方法は、図8の上記説明における通信IF選択部840と略同様であるので詳細な説明は省略する。
IACモジュール9610は、通信可能な通信IFモジュールを介して、通信中継装置が通信端末10に対して動的に割り当てたIPアドレスを取得する。そして、IACモジュール9610は、通信可能な通信IFモジュールを識別する情報と取得したIPアドレスとをシグナリング制御モジュール9605、(デ)カプセル化モジュール9600、RTPモジュール9615、RTPモジュール9620、およびMobile SIP APsモジュール905に通知する。
まず、シグナリング制御モジュール9605は、例えば通信端末10の起動時に、TLSを用いてSIPサーバ22に対してシグナリングする。すなわち、シグナリング制御モジュール9605は、シグナリング処理を実行するシグナリングメッセージをTLSモジュール958においてTLSを用いて暗号化させる。そして、シグナリング制御モジュール9605は、暗号化されたシグナリングメッセージをTCPモジュール942においてTCPで送信可能な形式にして、SIPサーバ22に送信させる。具体的には、シグナリング制御モジュール9605は、通信インターフェースユニット920が有する複数の通信IFモジュールのうち、通信中継装置と通信可能な通信IFモジュールを介して、TLSで暗号化されたシグナリングメッセージをSIPサーバ22に送信する。
例えば、シグナリング制御モジュール9605は、通信端末10が起動されたことを契機として、SIPサーバ22との間に第1シグナリング用セッションであるTLSセッションを確立する。その後、シグナリング制御モジュール9605は、SIPサーバ22に、シグナリングメッセージとしてREGISTERリクエストメッセージを送信する。REGISTERリクエストメッセージは、シグナリング処理をするSIPサーバ22のSIP URI、登録を要求する通信端末10のSIP URI、および登録の有効期限を示す情報等を含む。そして、REGISTERリクエストメッセージを受信したSIPサーバ22は、通信端末10のシグナリング処理を実行する。SIPサーバ22は、シグナリング処理が完了した場合、シグナリングが完了したことを、例えば、200OKメッセージを返信することで通信端末10のシグナリング制御モジュール9605に通知する。
次に、シグナリング制御モジュール9605は、第2シグナリング用セッションであるSRTPセッションを確立するためのシグナリングメッセージを、TLSセッションを介してSIPサーバ22に送信する。このとき、シグナリング制御モジュール9605は、TLSセッションを確立する場合にSIPサーバ22との間で認証された認証結果をSIPサーバ22との間でやりとりすることで、再度SIPサーバ22との間で認証処理を実行することなく、SRTPセッションを確立する。
次に、通信中継装置との通信が可能な通信IFモジュールが変更した場合、すなわち、通信端末10が移動することによってハンドオーバ制御を要する場合について説明する。係る場合に、シグナリング制御モジュール9605は、通信端末10から見て通信端末12およびSIPサーバ22との通信が切断されていないように見せるべく、通信端末10のシグナリングを以下に示すべく実行する。
IACモジュール9610は、新たに通信可能となった通信IFモジュールが検出された場合に、通信中継装置が通信IFモジュールに割り当てたIPアドレスを取得する。そして、IACモジュール9610は、通信可能な通信IFモジュールを識別する情報と取得したIPアドレスとをシグナリング制御モジュール9605に通知する。
シグナリング制御モジュール9605は、新たに通信可能となった通信IFモジュールを識別する情報が通知されると、通信端末10とSIPサーバ22との間に第3シグナリング用セッションであるSRTPセッションを確立すべく、シグナリングメッセージを生成する。シグナリング制御モジュール9605は、シグナリングメッセージをRTPモジュール9615に供給してRTPのデータ形式に変換させ、SRTPモジュール956にSRTPを用いて暗号化させる。そして、シグナリング制御モジュール9605は、既に確立されているSRTPセッションを介して、シグナリングメッセージをSIPサーバ22に送信することによって、新たなSRTPセッションをSIPサーバ22との間に確立する。
以上のように、通信端末10は、現在選択されている通信IFモジュールを介して確立されているシグナリング用のSRTPセッションを用いて、次に選択される通信IFモジュールからのシグナリング用のSRTPセッションを確立する。これにより、通信端末10がネットワーク間をハンドオーバする前に、移動先のネットワークで利用できるSRTPセッションを予め用意することができるので、モビリティ性を確保することができる。
次に、一般クライアントアプリケーションモジュール900が通信端末12と所定の通信データの送受信を実行する場合を説明する。一般クライアントアプリケーションモジュール900は、通信端末12に送信すべき通信データを、TCP/UDPモジュール954においてTCPで送信可能な形式にして、Virtual IFモジュールに供給する。
係る場合において、一般クライアントアプリケーションモジュール900は、TLSセッションの確立時にVirtual IFモジュール910に割り当てられた仮想IPアドレスを通信データに付加する。そして、一般クライアントアプリケーションモジュール900は、仮想IPアドレスを付加した通信アドレスをVirtual IFモジュール910に供給する。これにより、一般クライアントアプリケーションモジュール900は、通信端末10に割り当てられる実IPアドレスが変更された場合でも、実IPアドレスの変更の影響を受けることなく、通信端末12とのTCPセッションを継続できる。
Virtual IFモジュール910は、一般クライアントアプリケーションモジュール900から受け取った通信データを、(デ)カプセル化モジュール9600に供給する。(デ)カプセル化モジュール9600は、Virtual IFモジュール910から受け取った通信データをカプセル化する。具体的には、(デ)カプセル化モジュール9600は、RTPモジュール9620、SRTPモジュール956、およびUDPモジュール940を制御して、受け取った通信データをカプセル化および暗号化する。
RTPモジュール9620は、通信データにRTPヘッダを付加することで、SRTPを用いて暗号化できるデータ形式に変換する。ポリシーコントロールモジュール9625は、予め定められた条件に基づいて、RTPモジュール9620から出力される通信データに対してSRTPによる暗号化が必要か否かを判断する。
ポリシーコントロールモジュール9625によってSRTPによる暗号化が必要であると判断された場合には、SRTPモジュール956は、RTPモジュール9620がRTPパケットに変換した通信データを、SRTPを用いて暗号化する。UDPモジュール940は、SRTPモジュール956が暗号化した通信データにUDPヘッダを付加することでカプセル化し、通信IFモジュールを介して通信端末12に送信する。
一方、ポリシーコントロールモジュール9625によってSRTPによる暗号化が必要でないと判断された場合には、RTPモジュール9620は、通信データにRTPヘッダを付加しない。また、SRTPモジュール956は、RTPモジュール9620が出力した通信データを暗号化することなく、UDPモジュール940から通信IFモジュールを介して通信端末12に送信する。
一方、通信端末12が通信端末10にあてて送信した通信データは、NIC、当該NICに対応する通信IFモジュールを介して受信する。なお、通信端末12が送信した通信データは、TCPで通信可能な通信データをUDPで通信可能な形式にカプセル化した上で、SRTPで暗号化されている。UDPモジュール940は、受信した通信データをSRTPモジュール956に供給する。SRTPモジュール956は、SRTPで暗号化された通信データを復号化する。そして、RTPモジュール9620は、復号かされた通信データの形式を逆変換して(デ)カプセル化モジュール9600に供給する。
(デ)カプセル化モジュール9600は、SRTPモジュール956が復号化した通信データを、デカプセル化する。すなわち、(デ)カプセル化モジュール9600は、UDPで送信可能な形式にカプセル化された通信データをデカプセル化する。(デ)カプセル化モジュール9600は、デカプセル化した通信データをVirtual IFモジュール910に供給する。
Virtual IFモジュール910は、TCP/UDPモジュール954を介して受け取った通信データを一般クライアントアプリケーションモジュール900に供給する。一般クライアントアプリケーションモジュール900は、Virtual IFモジュール910から受け取った通信データを、所定のアプリケーションに渡すことにより処理する。
これにより、一般クライアントアプリケーションモジュール900は、通信端末10に割り当てられる実IPアドレスが変更された場合でも、実IPアドレスの変更の影響を受けることなく、通信端末12とのTCPセッションを継続できる。また、一般クライアントアプリケーションモジュール900がTCPで通信可能な通信データをUDPで通信可能な通信データに変換すること、および通信端末12と送受信する通信データを暗号化/復号化することがなくなる。すなわち、本実施形態に係る通信端末10によれば、一般クライアントアプリケーションモジュール900が特別な機能を有さなくても、E2Eのセキュリティを提供することができる。
次に、Mobile SIP APsモジュール905が通信データを送信する場合について説明する。Mobile SIP APsモジュール905は、IACモジュール9610から通知された、利用可能な通信IFモジュールを介して、通信端末12に送信すべき通信データを送信する。
具体的には、Mobile SIP APsモジュール905は、通信端末12に送信すべき通信データをRTPモジュール9615に送信する。RTPモジュール9615は、Mobile SIP APsモジュール905から受け取った通信データを、RTPで送信可能な形式に変換する。
そして、RTPモジュール9615は、RTPで送信可能な形式に変換した通信データを、SRTPモジュール956に供給する。SRTPモジュール956は、RTPモジュール9615から受け取った通信データを、SRTPを用いて暗号化する。そして、SRTPモジュール956は、暗号化した通信データを、通信モジュールを介して通信端末12に送信する。また、通信端末12から通信IFモジュールが受信したSIP APの通信データは、SRTPモジュール956が復号化する。そして、SRTPモジュール956は、RTPモジュール9615を介して、復号化した通信データをMobile SIP APsモジュール905に供給する。
なお、上記説明における通信端末12に送信する通信データは、プロキシサーバ20を介して公開サーバ26等の他のサーバ、または通信端末に送信してもよい。係る場合に、通信端末10が送信した通信データのデカプセル化および復号化、並びに公開サーバ26等が送信した通信データのカプセル化および暗号化は、プロキシサーバ20が実行する。
これにより、通信端末10は、通信端末12と送受信する通信データのセキュリティを、SRTPを用いて確保できる。さらに、IPsecを用いることがないので、IPsec Security Gatewayを介して通信データを送受信することがなくなる。これにより、通信トラフィックが一点集中することを回避できる。
図10は、本実施形態の第2の例に係る通信端末10の起動処理の流れの一例を示す。セッションモビリティコントローラモジュール960が起動すると(S1000)、シグナリング制御モジュール9605は、SIPサーバ22との間にTLSセッションを確立する(S1010)。TLSセッションが確立されると、SIPサーバ22は、通信端末10をSIP登録する(S1020)。
次に、シグナリング制御モジュール9605は、Virtual IFモジュール910を有効にするために必要な情報を取得して設定する(S1030)。具体的には、仮想IPアドレス、プロキシサーバのIPアドレス、デフォルトゲートウェイのIPアドレス、DNSサーバのIPアドレス等のコアネットワーク42に関する情報を取得する。
次に、シグナリング制御モジュール9605は、SIPサーバ22との間にSRTPセッションを確立する(S1040)。このとき、シグナリング制御モジュール9605は、TLSセッションを用いて、SRTPセッションを確立するためのシグナリングメッセージをSIPサーバ22との間でやりとりする。係る場合において、シグナリング制御モジュール9605は、TLSセッションを確立したときに得られた、SIPサーバ22との相互の認証情報を使って、SRTPセッションを確立する。その後、シグナリング制御モジュール9605は、TLSセッションを用いることなく、SRTPセッションを用いて、音声データ通信を確立する場合のシグナリングメッセージをやりとりする(S1050)。
図11は、本実施形態の第2に係る通信端末10のハンドオーバ処理の流れの一例を示す。通信端末10が第1通信IFモジュールを用いて第1通信方式で通信している状態において(S1100)、IACモジュール9610は、第1通信方式とは異なる第2通信方式で通信する第2通信IFモジュールが実IPアドレスを取得したか否かを検出する(S1110)。この場合において、IACモジュール9610は、複数の通信IFモジュールが通信中継装置から受信する電波の強度、複数の通信IFモジュールに対して予め設定された利用優先順位等のポリシー等に基づいて、第1通信IFモジュールと第2通信IFモジュールとのいずれを選択するかを判断する。そして、IACモジュール9610は、第2通信IFモジュールを選択する場合に、第2通信方式における実IPアドレスを取得する。第2通信IFモジュールが実IPアドレスを取得していない場合には(S1110:NO)、通信端末10は、引き続き第1通信方式で通信する(S1100)。
第2通信IFモジュールが実IPアドレスを取得した場合には(S1110:YES)、シグナリング制御モジュール9605は、第1通信方式で確立されているSRTPセッションを介して、第2通信方式で利用するシグナリング用のSRTPセッションを確立する(S1120)。さらに、シグナリング制御モジュール9605は、第1通信方式で確立されているSRTPセッションを介して、第2通信方式で利用する通信データ用のSRTPセッションを確立する(S1130)。係る場合において、シグナリング制御モジュール9605は、第1通信方式のSRTPセッションを確立したときに得られた、SIPサーバ22との相互の認証情報を使って、第2通信方式のSRTPセッションを確立する。
その後、通信端末10は、第2通信IFモジュールを用いて第2通信方式で通信する(S1140)。そして、通信端末10は、SIPサーバ22との間で、S1120で確立されたSRTPセッションを介してシグナリングメッセージをやりとりする。また、通信端末10は、通信端末12との間で、S1130で確立されたSRTPセッションを介して通信データをやりとりする。
なお、第2の例に係る通信データの送信処理は、図6で説明した通信データの送信処理と同一であるので、その説明を省略する。また、第2の例に係る通信データの受信処理は、図7で説明した通信データの受信処理と同一であるので、その説明を省略する。
図12は、本実施形態に係る通信端末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において実行される。
本実施形態の第1の例に係る通信端末10にインストールされて実行される通信プログラムは、CPU1505等に働きかけて、通信端末10を、図1から図11にかけて説明した一般アプリケーション部100、リアルタイムアプリケーション部105、仮想インターフェース部110、複数の通信部、通信IF選択部140、アドレス取得部150、データ形式変換部1600、シグナリング制御部1605、(デ)カプセル化部1610、第2暗号化部1620、シグナリング送受信部1625、変換テーブル記憶部1640、データ送受信部1645、暗号化条件格納部1650、および暗号化条件判断部1655として機能させる。
また、本実施形態の第2の例に係る通信端末10にインストールされて実行される通信プログラムは、CPU1505等に働きかけて、通信端末10を、図1から図11にかけて説明した一般アプリケーション部800、リアルタイムアプリケーション部805、仮想インターフェース部810、複数の通信部、通信IF選択部840、アドレス取得部850、データ形式変換部8600、シグナリング制御部8605、(デ)カプセル化部8610、第2暗号化部8620、シグナリング送受信部8625、変換テーブル記憶部8640、データ送受信部8645、暗号化条件格納部8650、および暗号化条件判断部8655として機能させる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。