(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、図面を参照して実施の形態について説明する。各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。
【0011】
なお、以下の説明においてはWebRTC(Web Real-Time Communication)によるP2P通信を例として説明する。なお、実施の形態に係る端末管理システムは、WebRTC以外の技術を用いたP2P通信にも適用することができる。
【0012】
図1は、実施の形態に係る通信システムの構成の一例を示す図である。実施の形態に係る通信システムは、端末30aと端末30bとの間で行われるP2P通信を制御する通信制御装置10と、P2P通信を中継する中継装置20と、端末30aと、端末30bとを有する。以下の説明において、端末(30a、30b)のうち任意の端末は「端末30」と表す。
【0013】
通信制御装置10と、中継装置20と、端末30aと、端末30bとは、それぞれネットワークを介して相互に通信可能なように接続されている。
【0014】
通信制御装置10は、WebRTCの仕様に規定される接続手順に従って端末30の間で通信チャネルが確立される際に、端末30の間で相互に送受信されるシグナリング信号を中継する機能を有する。また、通信制御装置10は、当該シグナリング信号を用いて、端末30がP2P通信を確立する際の通信方法を制御する。通信制御装置10は、例えば、WebRTCで用いられるシグナリング中継サーバである。
【0015】
中継装置20は、端末30の間で行われるP2P通信を中継する装置である。中継装置20は、例えば、WebRTC技術で用いられるTURN(Traversal Using Relays around NAT)サーバである。まず、中継装置20は、端末30から要求を受けると、通信の中継に用いるIPアドレス及びポート番号を割り当てて端末30に伝える。続いて、端末30は、相手の端末30に送信するパケットを、中継装置20から伝えられたIPアドレス及びポート番号宛に送信する。続いて、中継装置20は、受信したパケットを通信相手の端末30に転送する。このような方法で、中継装置20は端末30の間で行われるP2P通信の中継を行う。
【0016】
端末30は、例えばWebブラウザを搭載したPC(Personal Computer)、携帯電話、スマートフォン、又はタブレット端末等の通信機器である。端末30は、Webサーバから受信したクライアントモジュール(例えば、JavaScript(登録商標)含むHTMLファイル)をWebブラウザ上で動作させることで、相手の端末30との間でWebRTCによるP2P通信を実現する。なお、端末30は、P2P通信を行うことができればどのような通信機器であってもよい。
【0017】
ここで、WebRTC技術について簡単に説明する。WebRTC技術は、端末30の間でWebブラウザを用いたリアルタイムなP2P通信を実現するための技術である。一般的に、端末30は企業内や家庭内のプライベートネットワークに接続されていることが多く、端末30の間で直接通信することができない。そこで、WebRTC技術は、ICE手順によりNATを超えた通信を実現させることで、端末30がプライベートネットワークに接続されている場合であっても端末30の間で直接通信することを可能にしている。
【0018】
ICE手順は、インターネット側に設置されるSTUN(Session Traversal Utilities for NAT)サーバを用いて、NATにより変換されたIPアドレス及びポート番号(すなわち、インターネット側から見えるIPアドレス及びポート番号)を端末30に通知する仕組み、及び、インターネット側に設置されるTURNサーバを用いてP2P通信を中継させる仕組みを提供する。これにより、WebRTC技術は、ICE手順を用いることで、端末30がどのようなネットワーク環境に接続されていてもNATを越えてP2P通信が行えるように設計されている。
【0019】
また、WebRTCは、任意のシグナリングプロトコルを利用することができる。例えば、WebRTCは、独自のシグナリングプロトコルを利用するようにしてもよいし、SIP(Session Initiation Protocol)を利用するようにしてもよい。
【0020】
ICE手順には、下記の通信方法1〜3の各々に対応する3つのアドレス(ICE Candidate)をSDP(Session Description Protocol)のフォーマットで記述し、任意のシグナリングプロトコルを用いて2つの端末30の間でお互いに通知し合う仕組みが規定されている。
【0021】
(ICE手順で規定されている通信方法及びアドレス)
通信方法1(NATを通過しないローカル通信(以下、「内部通信」という)):端末30自身のIPアドレス及びポート番号
通信方法2(NATを通過するがTURNサーバを利用しない通信(以下、「外部通信(中継無)」という)):NAT変換された端末30のIPアドレス及びポート番号
通信方法3(TURNサーバを利用した通信(以下、「外部通信(中継有)」という)):TURNサーバから割り当てられたP2P通信中継用のIPアドレス(以下、「中継用IPアドレス」という)及びポート番号
端末30は、ICE手順により相手の端末30から通知された3つのアドレスの各々に対して優先度順にパケットを送信し合うことでネゴシエーションを行い、P2P通信を確立する。
【0022】
例えば、2つの端末30が同一のローカルネットワークに接続されている場合は、優先度高である「内部通信」のアドレスを用いてP2P通信が確立される。2つの端末30がNATを介して通信する場合、優先度中である「外部通信(中継無)」のアドレス又は優先度低である「外部通信(中継有)」のアドレスを用いてP2P通信が確立される。優先度中である「外部通信(中継無)」のアドレス又は優先度低である「外部通信(中継有)」のアドレスのうちどちらのアドレスにてP2P通信が確立できるかは、NATの仕様に依存する。なお、「内部通信」を優先度高とし、「外部通信(中継無)」を優先度中にし、「外部通信(中継有)」を優先度低にすることは、ICE手順で予め規定されている。
【0023】
ここで、実施の形態に係る通信システムの動作概要について簡単に説明する。通信制御装置10は、端末30からシグナリング信号を受信すると、端末30に対して予め設定されている権限情報を用いて、端末30が「通信方法1」〜「通信方法3」のうち、どの通信方法でP2P通信を行うことを許可されているかを確認する。例えば、「通信方法1」の手順のみが許可されている場合、通信制御装置10は、シグナリング信号に含まれる「通信方法2」及び「通信方法3」に対応するIPアドレスを削除するか、又はシグナリング信号に含まれる「通信方法2」及び「通信方法3」に対応するIPアドレスを含むシグナリング信号を中継せずに破棄する。これにより、端末30は、「通信方法2」及び「通信方法3」によるP2P通信を確立することができなくなる。同様に、例えば「通信方法3」の手順のみが許可されている場合、通信制御装置10は、シグナリング信号に含まれる「通信方法1」及び「通信方法2」に対応するIPアドレスを削除するか、又は、「通信方法1」及び「通信方法2」に対応するIPアドレスを含むシグナリング信号を中継せずに破棄する。これにより、端末30は、「通信方法1」及び「通信方法2」によるP2P通信を確立することができなくなる。
【0024】
また、通信制御装置10は、端末30の間で「通信方法3」による通信を許可する場合、必要に応じて、中継装置20に対して端末30の間で行われるP2P通信を記録するように指示する。
【0025】
また、通信制御装置10は、端末30からシグナリング信号を受信すると、通信制御装置10が予め保持している通信先許可情報と受信したシグナリング信号とを比較し、シグナリング信号に通信が許可されていない宛先のアドレスが含まれている場合は、当該アドレスを削除するか、又は当該アドレスを含むシグナリング信号を中継せずに破棄する。これにより、端末30は、許可されていない宛先の端末30とP2P通信を確立することができなくなる。
【0026】
すなわち、本実施の形態に係る通信システムは、WebRTCにより行われるシグナリング信号を通信制御装置10で書き換える、又は破棄することで、端末30の間で行われるP2P通信を様々に制御することができる。
【0027】
<ハードウェア構成>
図2は、実施の形態に係る通信制御装置のハードウェア構成の一例を示す図である。実施の形態に係る通信制御装置10は、CPU101と、ROM102と、RAM103と、HDD104と、操作部105と、表示部106と、ドライブ装置107と、NIC(Network Interface card)108とを有する。
【0028】
CPU101は、通信制御装置10の全体制御を行うプロセッサである。CPU101は、HDD104等に記憶されたオペレーティングシステム、アプリケーション、各種サービス等のプログラムを実行し、通信制御装置10の各種機能を実現する。ROM102には、各種のプログラムやプログラムによって利用されるデータ等が記憶される。RAM103は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。HDD104には、各種情報及びプログラム等が記憶される。
【0029】
操作部105は、ユーザからの入力操作を受け付けるためのハードウェアであり、例えばキーボード又はマウスである。表示部106は、ユーザに向けた表示を行うハードウェアである。
【0030】
ドライブ装置107は、プログラムを記録した記憶媒体109からプログラムを読み取る。ドライブ装置107によって読み取られたプログラムは、例えば、HDD104にインストールされる。NIC108は、通信制御装置10をネットワークに接続し、データの送受信を行うための通信インタフェースである。
【0031】
なお、記憶媒体109とは、非一時的(non-transitory)な記憶媒体を言う。記憶媒体109の例としては、磁気記憶媒体、光ディスク、光磁気記憶媒体、不揮発性メモリなどがある。
【0032】
中継装置20のハードウェア構成は、例えば
図2と同一であるため説明は省略する。
【0033】
なお、通信制御装置10及び中継装置20に用いるハードウェアリソースとして、例えばクラウドサービスにより提供されるハードウェアリソースを用いるようにしてもよい。
【0034】
<ソフトウェア構成>
(通信制御装置)
図3は、実施の形態に係る通信制御装置のソフトウェア構成の一例を示す図である。実施の形態に係る通信制御装置10は、記憶手段201と、通信手段202と、通信方法制限手段203と、通信先判定手段204と、指示手段205とを有する。
【0035】
記憶手段201は、RAM103、HDD104、又は通信制御装置10にネットワークを介して接続される記憶装置等を用いて実現可能である。記憶手段201は、端末30に許可する通信方法を示す権限情報と、端末30に通信を許可する相手先のアドレスを示す通信先許可情報とを記憶する。
【0036】
通信手段202は、NIC108を介して、中継装置20又は端末30と通信を行う。
【0037】
通信方法制限手段203は、端末30からシグナリング信号を受信すると、権限情報に基づいて、内部通信、外部通信(中継無)、及び外部通信(中継有)のうち、どの通信方法を端末30に許可するかを判断する。また、通信方法制限手段203は、判断結果に基づきシグナリング信号を書き換えて、書き換えたシグナリング信号を端末30に送信するか、又は、判断結果に基づきシグナリング信号を端末30に送信せずに破棄する。
【0038】
通信先判定手段204は、端末30からシグナリング信号を受信すると、通信先許可情報に基づいて、端末30がP2P通信を行おうとしている通信相手が許可された通信相手であるかを判断する。許可されていない通信相手とP2P通信を行おうとしている場合、通信先判定手段204は、書き換えたシグナリング信号を端末30に送信するか、又はシグナリング信号を端末30に送信せずに破棄する。
【0039】
指示手段205は、権限情報に基づき、指定された端末30の間で行われるP2P通信を記録(キャプチャ)させるように中継装置20に対して指示する。
【0040】
図4は、権限情報テーブル及び通信先許可情報テーブルの一例を示す図である。
図4(a)に示す権限情報は、端末識別子と、内部通信フラグと、外部通信(中継無)フラグと、外部通信(中継有)フラグとを有する。
【0041】
端末識別子は、通信制御装置10が端末30を一意に識別するための識別子である。
【0042】
内部通信フラグは、ICE手順における内部通信を許可するか否かを示すフラグであり、「○」は内部通信によるP2P通信を許可し、「×」は内部通信によるP2P通信を許可しないことを表す。
【0043】
外部通信(中継無)フラグは、ICE手順における外部通信(中継無)を許可するか否かを示すフラグであり、「○」は外部通信(中継無)によるP2P通信を許可し、「×」は外部通信(中継無)によるP2P通信を許可しないことを表す。
【0044】
外部通信(中継有)フラグは、ICE手順における外部通信(中継有)を許可するか否かを示すフラグであり、「○」は外部通信(中継有)によるP2P通信を許可し、「×」は外部通信(中継有)によるP2P通信を許可しないことを表す。
【0045】
図4(b)に示す通信先許可情報は、アドレス種別と、アドレス情報とを有する。アドレス種別は、通信先として許可されている通信相手の種別が設定される。アドレス種別に「通信先端末」が設定されている場合、アドレス情報に設定されるアドレスは、P2P通信の通信先として許可されている端末30のアドレスであることを示す。アドレス種別に「中継装置」が設定されている場合、アドレス情報に設定されるアドレスは、接続が許可されている中継装置20のアドレスであることを示す。
図4(b)の例では、アドレス種別が「通信先端末」のレコードに「192.168.1.*」が設定されている。これは、通信相手の端末30のIPアドレスが192.168.1.*のアドレス(*は任意の数字を表す)である場合にのみP2P通信が許可され、これ以外のIPアドレスを有する端末30へのP2P通信は許可されないことを示している。また、アドレス種別「中継装置」のレコードに「192.0.2.15」が設定されている。これは、P2P通信の中継に用いられる中継装置20のIPアドレスが192.168.2.15である場合にのみ外部通信(中継有)の通信方法によるP2P通信が許可されることを示している。
【0046】
なお、通信先許可情報テーブルは、複数のIPアドレスを設定可能にしてもよいし、IPアドレスの範囲を設定可能にしてもよい。
【0047】
(中継装置)
図5は、実施の形態に係る中継装置のソフトウェア構成の一例を示す図である。実施の形態に係る中継装置20は、記憶手段301と、中継手段302と、通信記録手段303とを有する。
【0048】
記憶手段301は、RAM103、HDD104、又は中継装置20にネットワークを介して接続される記憶装置等を用いて実現可能である。記憶手段301は、中継装置20が中継するP2P通信のキャプチャデータである通信記録情報を格納する。
【0049】
中継手段302は、端末30の間で行われるP2P通信を中継する。
【0050】
通信記録手段303は、通信制御装置10からの指示を受けて、端末30の間で行われるP2P通信をキャプチャし、記憶手段301に格納する。
【0051】
<処理手順>
(通信制御装置の処理の流れ)
図6は、実施の形態に係る通信制御装置の処理手順の一例を示すフローチャートである。通信制御装置10は、
図6の処理手順により、端末30の間で送受信されるシグナリング信号を書き換える、又は破棄することで、端末30の間で行われるP2P通信の通信方法を制御する。
【0052】
ステップS401で、通信方法制限手段203は、端末30からシグナリング信号を受信すると、当該シグナリング信号に含まれる、シグナリング信号の送信元端末の端末識別子と、シグナリング信号の送信先端末の端末識別子とを抽出し、権限情報テーブルのレコードのうち、抽出したそれぞれの端末識別子のレコードに含まれる各種フラグ(内部通信フラグ、外部通信(中継無)フラグ、外部通信(中継有)フラグ)を取得する。
【0053】
続いて、通信方法制限手段203は、抽出したそれぞれの各種フラグから、P2P通信を行う端末30の各々に許可すべき通信方法を判断する。なお、シグナリング信号の送信元端末30の端末識別子に対応する各種フラグと、シグナリング信号の送信先端末30の端末識別子に対応する各種フラグとが一致しているとは限らない。例えば、端末30aには全ての通信方法が許可されているのに対して、通信相手の端末30bには内部通信しか許可されていない場合もあり得る。この場合、通信方法制限手段203は、端末30bに対しても端末30aと同様に全ての通信方法を許可してもよいし、逆に、端末30aに対しても端末30bと同様に内部通信しか許可しないようにしてもよい。
【0054】
ステップS402で、通信方法制限手段203は、端末30から受信したシグナリング信号に含まれる各通信方法に対応するIPアドレスのうち、許可されていない通信方法に対応するIPアドレスを削除するか、又は許可されていない通信方法に対応するIPアドレスが含まれているシグナリング信号を端末30に送信せずに破棄する。
【0055】
ステップS403で、通信先判定手段204は、ステップS401で受信したシグナリング信号に含まれている、「内部通信」に使用される端末30のIPアドレス、及び「外部通信(中継有)」に使用される中継装置20の中継用IPアドレスが、通信先許可情報のレコードに含まれているかを判定する。これらのIPアドレスのうち、少なくともいずれかのIPアドレスが通信先許可情報のレコードに含まれていない場合、通信先判定手段204は、これらのIPアドレスは許可されている通信先ではないと判断してステップS404の処理手順に進む。これらのIPアドレスが通信先許可情報のレコードに含まれている場合、通信先判定手段204は、これらのIPアドレスは許可されている通信先であると判断してステップS405の処理手順に進む。
【0056】
ステップS404で、通信先判定手段204は、「内部通信」に使用される端末30のIPアドレスが許可されている通信先ではない場合、ステップS401で受信したシグナリング信号に含まれる「内部通信」に使用される端末30のIPアドレス、外部通信(中継無)に使用されるNAT変換後の端末30のIPアドレス、及び「外部通信(中継有)」に使用される中継装置20の中継用IPアドレスを削除するか、又はステップS401で受信したシグナリング信号に含まれる「内部通信」に使用される端末30のIPアドレス、外部通信(中継無)に使用されるNAT変換後の端末30のIPアドレス、及び「外部通信(中継有)」に使用される中継装置20の中継用IPアドレスを含むすべてのシグナリング信号を端末30に送信せずに破棄する。これらすべてのIPアドレスを削除、又はすべてのシグナリング信号を破棄するのは、「内部通信」に使用される端末30のIPアドレスのみを削除、又は「内部通信」に使用される端末30のIPアドレスを含むシグナリング信号だけを破棄しても、外部通信(中継無)の通信方法又は「外部通信(中継有)」の通信方法を用いてP2P通信を確立できてしまうことを防ぐためである。
【0057】
また、通信先判定手段204は、「外部通信(中継有)」に使用される中継装置20の中継用IPアドレスが許可されている通信先ではない場合、「外部通信(中継有)」に使用される中継装置20の中継用IPアドレスを削除、又は「外部通信(中継有)」に使用される中継装置20の中継用IPアドレスを含むシグナリング信号を端末30に送信せずに破棄する。
【0058】
ステップS405で、指示手段205は、ステップS401で「外部通信(中継有)」の通信方法が許可されている場合、通信記録が必要であると判断してステップS406の処理手順に進み、ステップS401で「外部通信(中継有)」が許可されていない場合は処理を終了する。
【0059】
ステップS406で、指示手段205は、中継装置20に対して、端末30の間で行われるP2P通信を記録(キャプチャ)させるように中継装置20に指示する。
【0060】
なお、通信制御装置10は、処理手順に矛盾が無い限り、必要に応じて上記S401〜S406の処理手順の一部を省略するようにしてもよい。例えば、通信制御装置10は、ステップS401及びステップS402の処理手順のみを行うようにしてもよいし、ステップS401、ステップS402、ステップS405及びステップS406の処理手順のみを行うようにしてもよい。また、通信制御装置10は、ステップS403及びステップS404の処理手順のみを行うようにしてもよいし、ステップS405及びステップS406の処理手順のみを行うようにしてもよい。また、通信制御装置10は、シグナリング信号を送受信する端末30の端末識別子によって、上記S401〜S406の処理手順の一部を省略するのか否かを判断するようにしてもよい。
図6の処理手順を様々に組み合わせることで、本実施の形態に係る通信制御装置10は、端末30の間で行われる通信方法を様々な方法で制御することができる。
【0061】
(通信システムの全体処理シーケンス)
図7は、実施の形態に係る通信システムの処理手順の一例を示すシーケンス図である。
図7は、端末30aから端末30bに対してP2P通信の開始を要求する場合の処理手順を示している。
【0062】
ステップS501で、端末30aは、ICEの規定に従ってアドレスの候補を収集する。アドレスの候補は、内部通信に使用される端末30a自身のIPアドレス及びポート番号、外部通信(中継無)に使用されるNAT変換後の端末30a自身のIPアドレス及びポート番号、及び外部通信(中継有)に使用される中継装置20の中継用IPアドレス及びポート番号である。端末30aは、NAT変換後の端末30a自身のIPアドレス及びポート番号を、STUNサーバに問い合わせすることで収集する。また、端末30aは、外部通信(中継有)に使用される中継装置20の中継用IPアドレス及びポート番号を、中継装置20に問い合わせることで収集する。なお、端末30aが問い合わせるSTUNサーバ及び中継装置20の宛先は、Webブラウザ上で動作するクライアントモジュールに予め設定されている。
【0063】
ステップS502で、端末30aは、シグナリング信号である通信要求を通信制御装置10に送信する。
【0064】
図8は、シグナリング信号の一例を示す図である。
図8(a)は、ステップS502で端末30aから端末30bに向けて送信されるシグナリング信号の一例である。
図8(a)に示すように、通信要求には、シグナリング信号の送信元である端末30aの端末識別子(A)と、シグナリング信号の送信先である端末30bの端末識別子(B)と、ステップS501で収集したIPアドレス及びポート番号が記載されたSDP offerとが含まれている。
【0065】
ステップS503で、通信制御装置10の通信方法制限手段203は、
図7のステップS401〜ステップS402の処理手順に従って処理を行い、許可しない通信方法がある場合はSDP offerに含まれるIPアドレスを削除する。また、通信制御装置10の通信先判定手段204は、接続先制限情報に含まれていないIPアドレスがある場合は、
図7のステップS403〜ステップS404の処理手順に従ってSDP offerに含まれるアドレスを削除する。
【0066】
ステップS504で、通信制御装置10の通信手段202は、アドレスが削除されたSDP offerを含む通信要求を端末30bに送信する。
【0067】
ステップS505で、端末30bは、ICEの規定に従ってアドレスの候補を収集する。アドレスの候補は、内部通信に使用される端末30b自身のIPアドレス及びポート番号、外部通信(中継無)に使用されるNAT変換後の端末30b自身のIPアドレス及びポート番号、及び外部通信(中継有)に使用される中継装置20の中継用IPアドレス及びポート番号である。端末30bは、NAT変換後の端末30b自身のIPアドレス及びポート番号を、STUNサーバに問い合わせすることで収集する。また、端末30bは、外部通信(中継有)に使用される中継装置20の中継用IPアドレス及びポート番号を、中継装置20に問い合わせることで収集する。なお、端末30bが問い合わせるSTUNサーバ及び中継装置20の宛先は、Webブラウザ上で動作するクライアントモジュールに予め設定されている。
【0068】
ステップS506で、端末30bは、通信要求応答であるシグナリング信号を通信制御装置10に送信する。ここで、
図8(b)は、端末30aから端末30bに向けて送信されるシグナリング信号の一例である。
図8(b)に示すように、通信要求には、シグナリング信号の送信元である端末30bの端末識別子(B)と、シグナリング信号の送信先である端末30aの端末識別子(A)と、ステップS505で収集したIPアドレス及びポート番号が記載されたSDP answerとが含まれている。
【0069】
ステップS507で、通信制御装置10の通信方法制限手段203は、
図7のステップS401〜ステップS402の処理手順に従って処理を行い、許可しない通信方法がある場合はSDP answerに含まれるアドレスを削除する。また、通信制御装置10の通信先判定手段204は、接続先制限情報に含まれていないIPアドレスがある場合は、
図7のステップS403〜ステップS404の処理手順に従ってSDP answerに含まれるIPアドレスを削除する。なお、通信制御装置10の通信方法制限手段203は、ステップS503で許可しないと判断した通信方法と同一の通信方法に対応するIPアドレスを削除する。
【0070】
ステップS508で、通信制御装置10の指示手段205は、ステップS503及びステップS507の処理手順において、外部通信(中継有)の通信方法が許可されている場合、
図6のステップS405及びステップS406の処理手順に従い、中継装置20に通信記録指示を送信する。通信記録指示には、ステップS502で受信したSDP offer及びステップS506で受信したSDP answerに含まれている中継装置20の中継用IPアドレス及びポート番号が含まれている。これは、指示手段205が、中継装置20に対してどの端末30間で行われるP2P通信を記録させるのかを伝えるためである。
【0071】
なお、指示手段205は、ステップS503及びステップS507の処理手順において、外部通信(中継有)の通信方法のみが許可される場合に、ステップS508の処理手順を行うようにしてもよい。外部通信(中継有)の通信方法によりP2P通信が確立されるのか、他の通信方法でP2P通信が確立されるのかについては、端末30a及び端末30bの間で決定されるため、通信記録指示が無駄になる可能性があるためである。
【0072】
ステップS509で、通信制御装置10の通信手段202は、アドレスが削除されたSDP answerを含む通信要求応答を端末30aに送信する。
【0073】
ステップS510で、端末30a及び端末30bは、シグナリング信号により交換された各通信方法に対応するアドレスに対して、優先度順にパケットを送信し合うことでネゴシエーションを行い、P2P通信を確立する。なお、削除されたアドレスに対してパケットが送信されることはないため、端末30a及び端末30bはネゴシエーションに失敗する。一方、削除されていないアドレスに対してパケットが送信された場合は、NAT処理によりパケットが破棄されない限り相手の端末30に届くことになるため、端末30a及び端末30bはネゴシエーションに成功することになる。すなわち、端末30a及び端末30bは、アドレスが削除されていない通信方法又は通信相手との間でのみP2P通信を確立できることになる。
【0074】
以上、通信システムの全体処理シーケンスについて説明したが、実施の形態に係る通信システムは、Tricle ICEと呼ばれる通信方法により、端末30a及び端末30bの間で、内部通信、外部通信(中継無)及び外部通信(中継有)の通信方法に対応するアドレスを相互に交換するようにしてもよい。
【0075】
Tricle ICEの通信方法が用いられる場合、まず、端末30aは、アドレスを含まないSDP offerを、通信制御装置10を介して端末30bに送信すると共に、並行して内部通信、外部通信(中継無)及び外部通信(中継有)の通信方法に対応するアドレスの収集を行う。同様に、端末30bは、アドレスを含まないSDP answerを、通信制御装置10を介して端末30aに送信すると共に、並行して内部通信、外部通信(中継無)及び外部通信(中継有)の通信方法に対応するアドレスの収集を行う。
【0076】
続いて、端末30aは、内部通信、外部通信(中継無)及び外部通信(中継有)の通信方法に対応するアドレスのうちいずれかのアドレスを収集した時点で、収集したアドレスを含むシグナリング信号を、その都度通信制御装置10を介して端末30bに送信する。同様に、端末30bも、内部通信、外部通信(中継無)及び外部通信(中継有)の通信方法に対応するアドレスのうちいずれかのアドレスを収集した時点で、収集したアドレスを含むシグナリング信号を、その都度通信制御装置10を介して端末30aに送信する。
【0077】
Tricle ICEの通信方法により、端末30a及び端末30bの間でその都度アドレスが交換される場合、通信制御装置10の通信方法制限手段203又は通信先判定手段204は、端末30aと端末30bとの間で送受信されるシグナリング信号に許可しない通信方法又は接続先制限情報に含まれていないIPアドレスが含まれている場合、当該シグナリング信号を破棄するようにする。
【0078】
これにより、許可されていない通信方法又は接続先制限情報に含まれていないIPアドレスを含むシグナリング信号は通信制御装置10で破棄されるため、端末30a及び端末30bは、シグナリング信号を受信できた通信方法又は通信相手との間でのみP2P通信を確立できることになる。
【0079】
<効果>
以上、実施の形態に係る通信制御装置10は、端末30ごとに対応づけられた権限情報に基づいて、端末30の間で送受信されるシグナリング信号に含まれるアドレスを削除、又はシグナリング信号を破棄することで、端末30の間で行われるP2P通信の通信方法を制御するようにした。これにより、実施の形態に係る通信制御装置10は、端末30の間で行われるP2P通信を柔軟に制御することが可能になる。
【0080】
また、実施の形態に係る通信制御装置10は、端末識別子ごとに権限情報を記憶するようにしたことで、端末30ごとに通信先を制御することができる。これにより、端末の利用者の役職によって許可する通信方法を変えるというような柔軟な運用が可能になる。
【0081】
また、実施の形態に係る通信制御装置10は、必要に応じて、中継装置20に対してP2P通信を記録させるように指示するようにした。これにより、例えば、企業内の端末30が行うP2P通信の内容は全て記録しておくというような運用を行うことが可能になる。
【0082】
また、実施の形態に係る通信制御装置10は、通信先許可情報に基づいて、端末30間で送受信されるシグナリング信号に含まれるアドレスを削除、又はシグナリング信号を破棄することで、端末30がP2P通信を行おうとする相手を制限できるようにした。これにより、社外の端末30との間でP2P通信が行われることを禁止するといった運用が可能になり、セキュリティを強化することが可能になる。また、信頼された中継装置20を介してのみP2P通信を許可するといった運用が可能になり、悪意のある中継装置20で通信内容が傍受されるといったセキュリティリスクを減らすことが可能になる。
【0083】
<実施形態の補足>
なお、本実施の形態において、端末識別子は、例えば端末30を利用する利用者の利用者IDであってもよい。
【0084】
なお、本実施の形態において、通信制御装置は、通信先許可情報と端末識別子(又は利用者ID)とを対応づけて記憶するようにしてもよい。また、通信先判定手段204は、シグナリング信号に含まれる信号送信元の端末識別子及び信号送信先の端末識別子に対応する通信先許可情報に基づいて、シグナリング信号に含まれるIPアドレスを削除、又はシグナリング信号を破棄するようにしてもよい。これにより、端末30ごとに通信先を制御することが可能になり、端末の利用者の役職によって許可する通信方法を変えるというような柔軟な運用を行うことができる。
【0085】
なお、本実施の形態において、通信先許可情報には、端末30の通信先として許可されているアドレスを格納(ホワイトリスト方式)するようにしたが、端末30の通信先として許可されていないアドレスを格納(ブラックリスト方式)するようにしてもよい。ブラックリスト方式の場合、
図6のステップS403で、通信先判定手段204は、ステップS401で受信したシグナリング信号に含まれている、「内部通信」に使用される端末30のIPアドレス、及び「外部通信(中継有)」に使用される中継装置20の中継用IPアドレスが、通信先許可情報のレコードに含まれているかを判定するように動作する。また、これらのIPアドレスのうち、少なくともいずれかのIPアドレスが通信先許可情報のレコードに含まれている場合、通信先判定手段204は、これらのIPアドレスは許可されている通信先ではないと判断してステップS404の処理手順に進むように動作する。また、これらのIPアドレスが通信先許可情報のレコードに含まれていない場合、通信先判定手段204は、これらのIPアドレスは許可されている通信先であると判断してステップS405の処理手順に進むようにする。
【0086】
以下、本明細書に開示される構成を例示的に列挙する。
(第1項)
端末と、前記端末が行うP2P通信を中継する中継装置とネットワークを介して接続され、前記端末が行う通信を制御する通信制御装置であって、
前記端末に許可される通信先を含む通信先情報を記憶する記憶手段と、
前記端末から、前記端末が前記P2P通信を開始する際に送信するシグナリング信号を受信する受信手段と、
前記通信先情報と前記シグナリング信号とに基づいて、前記P2P通信を許可するか否かを制御する制御手段と、
を有する通信制御装置。
(第2項)
前記通信先情報は、前記端末に許可される通信先のアドレス情報又は前記中継装置のアドレス情報を含み、
前記制御手段は、前記シグナリング信号に含まれる通信先のアドレス情報と、前記通信先情報に含まれるアドレス情報とを比較することで、前記P2P通信を許可するか否かを制御する、第1項に記載の通信制御装置。
(第3項)
前記制御手段は、前記P2P通信を許可しない場合、前記シグナリング信号に含まれる通信先のアドレス情報を削除、又は前記シグナリング信号を破棄することで、前記P2P通信を許可しないように制御する、第1項又は第2項に記載の通信制御装置。
(第4項)
前記シグナリング信号は、WebRTCの通信手段によりP2P通信を確立するために用いられる信号である、第1項乃至第3項のいずれか一項に記載の通信制御装置。
(第5項)
端末と、前記端末が行うP2P通信を中継する中継装置とネットワークを介して接続され、前記端末が行う通信を制御する通信制御装置における通信制御方法であって、
前記端末に許可される通信先を含む通信先情報を記憶手段に記憶する記憶ステップと、
前記端末から、前記端末が前記P2P通信を開始する際に送信するシグナリング信号を受信する受信ステップと、
前記通信先情報と前記シグナリング信号とに基づいて、前記P2P通信を許可するか否かを制御する制御ステップと、
を有する通信制御方法。
(第6項)
端末と、前記端末が行うP2P通信を中継する中継装置とネットワークを介して接続され、前記端末が行う通信を制御する通信制御装置における通信制御プログラムであって、
通信制御装置に、
前記端末に許可される通信先を含む通信先情報を記憶手段に記憶する記憶ステップと、
前記端末から、前記端末が前記P2P通信を開始する際に送信するシグナリング信号を受信する受信ステップと、
前記通信先情報と前記シグナリング信号とに基づいて、前記P2P通信を許可するか否かを制御する制御ステップと、
を実行させるための通信制御プログラム。
【0087】
以上、本発明は実施の形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。
【0088】
以上、上記実施の形態で述べたシーケンス及びフローチャートは、矛盾の無い限り順序を入れ替えてもよい。
【0089】
以上、上記実施の形態の全部又は一部は、プログラムによって実装され得る。このプログラムは、記憶媒体に格納することができる。
【0090】
なお、通信手段202は、受信手段の一例である。また、通信先判定手段204は、制御手段の一例である。また、通信先許可情報は、通信先情報の一例である。また、IPアドレス及びポート番号は、アドレス情報の一例である。