説明

P2P端末検知装置、P2P端末検知方法、およびP2P端末検知システム

【課題】ネットワークに負荷をかけることなく、P2P端末を検知し、本来トラヒック制御が必要なP2P端末に対する制御が可能なP2P端末検知装置、P2P端末検知方法、およびP2P端末検知システムを提供する。
【解決手段】端末がネットワークを介して送受信するパケットを受信する受信手段と、受信手段が受信したパケットが接続確立後に最初に送受信するパケットである初期パケットであるか否かを判定するパケット判定手段と、パケット判定手段が初期パケットであると判定した場合に、初期パケットのランダム性の有無を判定し、初期パケットにランダム性があると判定した場合に、端末がP2P端末であると検知するランダム判定手段と、ランダム判定手段が端末がP2P端末であると検知した場合に、検知されたP2P端末のトラヒックを制御する制御手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、P2P通信を行なっている端末を検知し、検知したP2P端末に対する制御を行う技術に関する。
【背景技術】
【0002】
インターネット上で行われる通信の一形態として、ピア・トゥ・ピア通信(以下、P2P通信と表記する。)と呼ばれるものがある。これは不特定多数のコンピュータ(ノード)が相互に接続され、ルータなどを介しファイルなどの情報を送受信するインターネットの利用形態である。
【0003】
P2P通信は、ファイルの共有などの大きな恩恵を利用者にもたらす一方で、著作権を侵害するデータの流通に利用されたり、P2P通信のトラヒックの増加が通信ネットワークの大きな負荷となったりするなどの問題を発生させている。また、P2P通信を行うP2Pソフトを悪用したウイルスによる情報漏洩事故が多発し、社会的な問題となっている。最近では、ISP(Internet Services Provider)によるトラヒック制御を回避するために、Diffie-Hellman鍵交換を利用した暗号処理MSE(Message Stream Encryption)を実装したP2Pソフトも出現している。
【0004】
これらの動きを受け、ネットワーク上のP2P端末を検知し、そのトラヒックを制御しようとする試みがなされている。例えば、特許文献1ではペイロード(パケットの総サイズのうち、送信IPや受信IPなどの管理情報(ヘッダ情報)を除いた正味のデータ。)の構造変化を、文字コード出現確率のヒストグラムの変化として評価し、P2P端末を検知するシステムに関する技術が開示されている。また、非特許文献1では、パケットの中身を解析してP2P端末を検知するP2P端末検知手法に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008-141618号公報
【非特許文献】
【0006】
【非特許文献1】S. Sen, O. Spatscheck, D. Wang, “Accurate, ScalableIn-Network Identification of P2P Trafic Using Application Signatures,” International World Wide Web Conference, May, 2004
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1においては、ペイロードの構造変化をP2P端末検知に利用しており、少なくとも2パケット以上のデータが必要になるという問題がある。また、フロー(送信IP、送信ポート、受信IP、受信ポート、プロトコルの5要素が同一であるパケットの集合と、プロトコルが同一で送受信IPおよび送受信ポートが逆転したパケットの集合)単位でペイロードの構造変化を記憶しているため、多数のフローが存在する回線において負荷が高くなるといった課題があった。
【0008】
また、非特許文献1においては、ペイロードに含まれる特定の文字列をP2P端末検知に利用しており、暗号化を行なうP2P端末の通信では、ペイロードに特定の文字列が現れず、検知できないといった課題があった。すなわち、これらの技術では、P2P端末が暗号化通信を行う場合において、ネットワークに負荷をかけることなく、P2P端末を検知することができず、その結果、本来トラヒック制御が必要なP2P端末に対して、その制御ができないという問題があった。
【0009】
本発明は、以上の点に鑑みなされたものであり、ネットワークに負荷をかけることなく、P2P端末を検知し、本来トラヒック制御が必要なP2P端末に対する制御が可能なP2P端末検知装置、P2P端末検知方法、およびP2P端末検知システムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した目的を達成するために、本発明にかかるP2P端末検知装置は、ネットワークを介してパケットを送受信する端末がP2P端末であるか否かを検知するP2P端末検知装置であって、前記端末が前記ネットワークを介して送受信するパケットを受信する受信手段と、前記受信手段が受信した前記パケットが接続確立後に最初に送受信するパケットである初期パケットであるか否かを判定するパケット判定手段と、前記パケット判定手段が前記初期パケットであると判定した場合に、前記初期パケットのランダム性の有無を判定し、前記初期パケットにランダム性があると判定した場合に、前記端末がP2P端末であると検知するランダム判定手段と、前記ランダム判定手段が前記端末が前記P2P端末であると検知した場合に、検知された前記P2P端末のトラヒックを制御する制御手段と、を備えることを特徴とする。
【0011】
また、本発明は、上記P2P端末検知装置を用いたP2P端末検知方法およびP2P端末検知システムである。
【発明の効果】
【0012】
本発明によれば、ネットワークに負荷をかけることなく、P2P端末を検知し、本来トラヒック制御が必要なP2P端末に対する制御が可能なP2P端末検知装置、P2P端末検知方法、およびP2P端末検知システムを提供することができる。
【図面の簡単な説明】
【0013】
【図1】第1の実施の形態におけるP2P端末検知システムの構成を示す図である。
【図2】トラヒック制御装置の構成例を示す図である。
【図3】P2P端末検知装置の構成例を示す図である。
【図4】コネクション管理データの例を示す図である。
【図5】検知情報の一例を示す図である。
【図6】P2P端末制御装置の構成例を示す図である。
【図7】制御ポリシデータの一例を示す図である。
【図8】検知処理の処理手順を示すフローチャートである。
【図9】制御処理の処理手順を示すフローチャートである。
【図10】第2の実施の形態におけるP2P通信端末検知装置の構成例を示す図である。
【図11】種別特定処理の処理手順を示すフローチャートである。
【図12】接続試行処理の処理手順を示すフローチャートである。
【図13】Winny接続プログラムの鍵情報の例を示す図である。
【発明を実施するための形態】
【0014】
以下に添付図面を参照して、この発明にかかるP2P端末検知システム、P2P端末検知装置の実施の形態を詳細に説明する。
【0015】
P2P端末の検知を行なうには、P2P端末間で送受信されるパケットデータを監視する方法が一般的に用いられる。パケットデータには、P2Pソフト特有の情報が記載されていることが多く、そういったP2Pソフトには有効な方法である。しかし、P2Pソフトによっては、当該パケットデータによる検知を逃れるために、パケットデータを暗号化し、特徴のない乱数列に見せかけるものが存在している。
【0016】
本発明では、この特徴を利用し、初期パケット(コネクション確立後の最初のパケット)のランダム性を検定することで、暗号化通信を行なうP2P端末を検知する。第1の実施の形態では、この点に着目し、P2P端末の検知および検知したP2P端末に対するトラヒック制御について説明している。また、上記の方法では、P2Pソフトの種別までは特定できない。そこで、P2P端末として検知された端末に対して、P2Pソフトのプロトコルに従った接続を行ない、その接続の可否によりP2Pソフト種別を特定する。第2の実施の形態では、この点に着目し、P2P端末の検知および検知したP2P端末に対するトラヒック制御について説明している。
(第1の実施の形態)
まず、第1の実施の形態におけるP2P端末検知システム1000を、図1から図9を用いて説明する。図1は、第1の実施の形態におけるP2P端末検知システム1000の構成を示す図である。図1に示すように、P2P端末検知システム1000は、トラヒック制御装置101と、P2P端末検知装置102と、P2P端末制御装置103とを含んで構成されている。
【0017】
なお、以下では、P2P端末を検知し、検知したP2P端末に対するトラヒック制御を、上述した各装置で行う前提で説明しているが、例えば、ネットワークを流れるトラヒックに応じて、上述した検知や制御を1つの装置で行うこととしてもよい。まず、トラヒック制御装置101について説明する。
【0018】
トラヒック制御装置101は、通信路104を流れるトラヒックを受信し、所定の制御ポリシに基づいてトラヒックを制御し、制御後のトラヒックを通信路108に送信する。また、トラヒック制御装置101は、通信路104のトラヒックの中から、検知対象のトラヒック、例えば、検知を行ないたい通信(分析対象の通信)のIPアドレスを参照し、参照したIPアドレスが設定されている端末が送受信を行なっているトラヒックをコピーし、コピーしたトラヒックを通信路105に出力する。なお、通信路105、通信路106、通信路107は、例えば、バスやケーブルなどの情報伝達媒体である。なお、トラヒック制御装置101がコピーしたトラヒックには、少なくとも送信IPアドレス、送信ポート、受信IPアドレス、受信ポートの各情報を含んでいるものとする。
【0019】
P2P端末検知装置102は、通信路105を流れるトラヒックを受信し、受信したトラヒックの中からP2P通信の検知を行ない、その検知した結果である検知情報を通信路106に送信する。この検知情報の具体的な内容については、図5を用いて後述する。
【0020】
なお、P2P端末検知装置102は、トラヒック制御装置101が分析対象のトラヒックを選択してコピーしたその分析対象のトラヒックに対して、P2P通信端末を検知する処理を実行することが望ましい。しかし、P2P端末検知装置102が十分な性能を持った装置であるならば、分析対象となるトラヒックの選択も含めて、P2P端末検知装置102がこれらの処理を実行しても良い。このような構成にすることにより、トラヒック制御装置101によるトラヒックの選択、および選択したトラヒックのコピーに係る負荷を軽減できる。この場合、図1において、P2P端末検知装置102は、通信路105に代えて、通信路104に接続し、トラヒック制御装置101は、P2P端末検知装置102と接続することなく、所定の制御ポリシに基づいてトラヒックを制御することができ、トラヒック制御装置101にかかる処理負荷が軽減される。
【0021】
P2P端末制御装置103は、通信路106を流れる検知情報を受信し、受信した検知情報に従って、P2P端末に対してどのような制御を行うかを示す制御情報を、通信路107に送信する。この制御情報の具体的な内容については、図7を用いて後述する。
【0022】
通信路104及び通信路108は、例えば、イントラネットやインターネットなどのネットワーク、あるいはこれらに接続するための通信網である。通信路104及び通信路108には1台以上の端末が接続され、例えば、ウェブアクセスやファイル転送などの通信を行なっている。P2P端末制御装置103は、他のネットワークに接続している複数のトラヒック制御装置に制御情報を送信し、他のネットワーク上を流れるトラヒックを制御しても良い。
【0023】
図2は、トラヒック制御装置101の構成例を示す図である。図2に示すように、トラヒック制御装置101は、例えば、ルータ等のネットワーク機器であり、CPU(Central Processing Unit)204と、CPU204が処理を実行するために必要なデータを格納するためのメモリ206と、他装置と通信を行なうためのIF(インタフェース)201、IF202、IF203、IF205と、キーボード、ディスプレイなどの入出力を行なうための入出力装置207と、これらの各装置を接続する通信路(バス)208とを含んで構成される。なお、他の図においてもIF(インタフェース)と呼ぶが、接続先に応じて通信インタフェース、入出力インタフェース、又は動作に応じて通信装置、受信装置、送信装置、入出力装置などと呼ぶこともある。
【0024】
CPU204は、メモリ206に記憶されたトラヒック制御プログラム210を実行する。メモリ206には、トラヒックを制御するためのトラヒック制御ルール209が格納されている。トラヒック制御ルール209には、通信を制御する情報が含まれており、例えば、トラヒック制御装置101を通過する通信のパケットの廃棄、帯域の制限、宛先経路の変更、トラヒックをコピーして他のIFから送信するミラーリング等のルールが格納されている。
【0025】
トラヒック制御ルール209は、入出力装置207、あるいは通信路107を経由し、IF205を介して新たなルールを受信することによって書き換え又は追加される。トラヒック制御装置101は、通信路104から受信したトラヒックを、トラヒック制御ルール209に従い、IF202及び/又はIF203を介して、通信路105及び/又は通信路108に送信する。
【0026】
図3は、P2P端末検知装置102の構成例を示す図である。上述したように、P2P端末検知装置102は、トラヒックの中からP2P通信を行なっている端末を検知するものである。図3に示すように、P2P端末検知装置102は、CPU302と、メモリ304と、IF301、IF303と、入出力装置305と、これらの各装置を接続する通信路(バス)とを含んで構成されたコンピュータである。
【0027】
CPU302がメモリ304に記憶されたP2P端末検知プログラム307を実行することにより、P2P通信を行なっている端末を検知する。メモリ304には、初期パケットを判定するためのコネクション情報管理データ308が格納されている。P2P端末検知プログラム307は、あらかじめ、メモリ304に格納されていてもよいし、必要な時に、IF301あるいはIF303を介して他の装置からロード(インストール)されてもよい。
【0028】
P2P端末検知装置102のIF301がTCP(Transmission Control Protocol)コネクション接続要求(TCPヘッダ内のSYNフラグをONにした)パケットを受信すると、CPU302からの指示にしたがって、P2P端末検知プログラム307は、コネクション管理データ308に当該パケットのコネクション情報401を登録し、1バイト以上のペイロードを有しているパケットを受信すると、コネクション管理データ308から当該パケットのコネクション情報を削除する。コネクション管理データ308は、例えば、図4に示すように、コネクション情報401の情報を含む。ここで、コネクション情報401とは、通信する端末同士のコネクションを識別するための情報であり、例えば、送信IPアドレス、送信ポート番号、受信IPアドレス、受信ポート番号から算出される情報である。
【0029】
一般に、暗号化して通信を行なうP2P端末は、特徴のない乱数列に見せかけたパケットを初期パケットとして用いる。CPU302からの指示に応じて、P2P端末検知プログラム307は、この初期パケットに対してランダム検定を行ない、当該コネクションがP2P端末による通信であるか判定を行なう。P2P端末検知装置102は、この判定結果を検知情報としてIF303を介して通信路106に送信する。
【0030】
図5は、P2P端末検知プログラム307が、CPU302からの指示に応じて、通信路106に送信する検知情報の一例を示す図である。図5に示すように、検知情報には、少なくとも、端末を識別(特定)するための端末情報501と、その端末がP2P端末である可能性の高さ(大きさ)を表す確信度502と、その端末が利用しているP2Pソフトの種別を示すP2Pソフト種別503とが含まれている。なお、P2P端末検知プログラム307によってP2Pソフト種別503を特定することができない場合は、P2Pソフト種別503としてAny(何らかのP2Pソフトであることを示す識別子)を送信する。
【0031】
また、端末情報501には、ランダム性があると判定されたパケット(乱数らしさがある一定の閾値以下(あるいは閾値以上)のパケット)の送信IP504と、送信ポート505と、受信IP506と、受信ポート507とが含まれている。ここで、乱数らしさとは、真の乱数にどれだけ近いかの尺度を表している。図5では、IPアドレスが「192.168.0.1」の「10001」番ポートから、IPアドレスが「192.168.0.2」の「20000」番ポートに対して送信したパケットを、何らかのP2P通信である(P2Pソフト種別503が「Any」である)と検知した結果を示している。なお、P2P端末検知プログラム307による具体的な処理については、図8を用いて後述する。続いて、P2P端末制御装置103について説明する。
【0032】
図6は、P2P端末制御装置103の構成例を示す図である。P2P端末制御装置103は、上述したように、P2P端末の通信を制御するものであり、CPU603と、メモリ602と、データを記録する容量を持つハードディスクやフラッシュメモリなどの記憶装置606と、他装置と通信を行うためのIF601、IF605と、入出力装置604と、これらの各装置間を接続する通信路607とを含んで構成されたコンピュータである。
【0033】
CPU603は、メモリ602に記憶されているP2P端末制御プログラム608を実行することにより、P2P端末のトラヒック制御を行う。なお、記憶装置606には、P2P端末のトラヒックをどのように制御するのかを示す制御ポリシを格納した制御ポリシデータ609が格納されている。P2P端末制御プログラム608や制御ポリシデータ609は、あらかじめ、メモリ602または記憶装置606に格納されていてもよいし、入出力装置604からまたはIF601あるいはIF605を介して他の装置から、インストール(ロード)されてもよい。
【0034】
図7は、制御ポリシデータ609の一例を示す図である。図7に示すように、制御ポリシデータ609は、P2Pソフト種別701と、確信度702と、制御情報703とを含む情報である。これらの情報は、あらかじめ管理者等によって設定され、制御ポリシデータ609のP2Pソフト種別701及び確信度702は、制御の内容である制御情報703を選択するための基準である。図7に示すように、制御情報703は、P2Pソフト種別701の種別および確信度702のレベル(数値の大きさ)に対応付けて記憶されている。
【0035】
P2P端末制御プログラム608は、CPU603からの指示に応じて、受信した検知情報に含まれるP2Pソフト種別503及び確信度502と、制御ポリシデータ609のP2Pソフト種別701及び確信度702とを比較し、比較した結果に対応する制御情報703を、IF605を介して通信路107に送信する。P2P端末制御プログラム608の具体的な処理については図9を用いて後述する。
【0036】
続いて、P2P端末検知装置102のP2P端末検知プログラム307がP2P端末を検知し、検知情報を送信する処理(以下、検知処理と呼ぶ。)について説明する。図8は、検知処理の処理手順を示すフローチャートである。
【0037】
図8に示すように、P2P端末検知プログラム307は、CPU302からの指示に応じて、通信路105を流れるパケットを、IF301を介して受信し(ステップS801)、受信したパケットのヘッダ部を解析し、受信したパケットが、SYNフラグがONになっているパケット(SYNパケット)であるか否かを判定する(ステップS802)。
【0038】
そして、P2P端末検知プログラム307は、受信したパケットが、SYNフラグがONになっているパケット(SYNパケット)であると判定した場合(ステップS802;Yes)、受信したパケットからコネクション情報401を算出し、算出したコネクション情報401を、コネクション情報管理データ308に登録し(ステップS803)、図8に示す検知処理を終了させる。
【0039】
コネクション情報401は、上述したように、例えば、送信IP、送信ポート、受信IP、受信ポートを結合した12バイトの情報である。なお、上記コネクション情報401の算出方法は一例であり、P2P端末間の通信を識別できる情報であればどのような手法によって算出してもよい。
【0040】
一方、P2P端末検知プログラム307は、受信したパケットが、SYNフラグがONになっているパケット(SYNパケット)でないと判定した場合(ステップS802;No)、P2P端末検知プログラム307は、さらに、受信したパケットが1バイト以上のペイロードを有しているか否かを判定する(ステップS804)。
【0041】
P2P端末検知プログラム307は、受信したパケットが1バイト以上のペイロードを有していないと判定した場合(ステップS804;No)、図8に示す検知処理を終了させる。
【0042】
一方、P2P端末検知プログラム307は、受信したパケットが1バイト以上のペイロードを有していると判定した場合(ステップS804;Yes)、さらに、ステップS804で判定したパケットのコネクション情報と、送受信IP及び送受信ポートを逆転したパケットのコネクション情報とを、ステップS803と同様の方法で算出し、算出した2つのコネクション情報のうち、どちらか一方のコネクション情報が、コネクション情報管理データ308に既に登録されているか否かを判定する(ステップS805)。
【0043】
そして、P2P端末検知プログラム307は、算出した2つのコネクション情報のうち、どちらか一方のコネクション情報が、コネクション情報管理データ308に既に登録されていると判定した場合(ステップS805;Yes)、コネクション情報データ308から該当コネクション情報401を削除し、受信したパケットを初期パケットと判定して、ステップS806に進む。
【0044】
一方、P2P端末検知プログラム307は、算出した2つのコネクション情報のうち、どちらか一方のコネクション情報が、コネクション情報管理データ308に既に登録されていないと判定した場合(ステップS805;No)、図8に示す検知処理を終了させる。
【0045】
そして、P2P端末検知プログラム307は、ステップS805において、受信したパケットが初期パケットであると判定すると、そのパケットに対してランダム検定を行なう(ステップS807)。ランダム検定には、例えば、パケットデータのビット列の偏りを用いる。パケットデータが真にランダムであれば、パケットデータに含まれる0の個数と1の個数は等しくなる可能性が高い。そこで、(0の個数−1の個数)/(0と1の個数)の絶対値を求め、この値がある閾値(例えば0.2)より小さい場合は、ランダム性があると判定する(環境に合わせて閾値を変えてもよい)。
【0046】
なお、上記のランダム検定方法は一例であり、例えば「NIST Special Publication 800-22」で述べられているランダム検定や、その他のランダム検定を用いてもよいし、それらを複数組み合わせて、全て閾値以下(あるいは閾値以上)だった場合(あるいは特定の検定だけ閾値以下(あるいは閾値以上))であった場合にランダム性があると判定してもよい。また、P2P端末検知プログラム307は、上述したランダム検定を、初期パケットを受信する毎に行い、初期パケットにランダム性があると判定する毎に、端末がP2P端末であると検知するものとする。
【0047】
そして、P2P端末検知プログラム307は、ステップS806においてランダム検定を行ったパケットにランダム性があるか否かを判定し(ステップS807)、そのパケットにランダム性があると判定した場合(ステップS807;Yes)、当該パケットをP2P通信端末による通信と判定し、判定した結果を検知情報として、IF303を介して通信路106に送信し(ステップS808)、図8に示す検知処理を終了させる。
【0048】
検知情報には、判定した端末情報501と、その端末がP2P端末である可能性の大きさを表す確信度502と、その端末が利用しているP2Pソフト種別503とが含まれている。なお、本実施の形態においては、P2Pソフト種別が特定できないため、何らかのP2Pソフトであることを意味する「Any」をP2Pソフト種別として送信する。また、確信度は、例えば、{1-|(0の個数−1の個数)|/(0と1の個数)}などにより求める。例示した式によれば、確信度は、パケットデータに0と1が同じ数だけ存在する場合に1であり、パケットデータに0だけ、又は1だけしか存在しない場合に0となる。なお、上記の確信度の算出方法は一例であり、ランダム検定を用いて乱数らしさを算出し、確信度としてもよい。
【0049】
一方、P2P端末検知プログラム307は、そのパケットにランダム性がないと判定した場合(ステップS807;No)、図8に示す検知処理を終了させる。このステップS803〜S805、S807、S808のいずれかの処理が終了すると、図8に示す検知処理の全ての処理が終了する。
【0050】
続いて、P2P端末制御装置103のP2P端末制御プログラム608がP2P端末検知装置103から検知情報を受信し、制御情報を送信する処理(以下、制御処理と呼ぶ。)について説明する。図9は、制御処理の処理手順を示すフローチャートである。
【0051】
図9に示すように、P2P端末制御プログラム608は、CPU603からの指示に応じて、通信路106を流れる検知情報をIF601を介して受信し(ステップS901)、受信した検知情報に含まれているP2Pソフト種別503及び確信度502と、制御ポリシデータ609に含まれるP2Pソフト種別701及び確信度702とを比較し、該当するポリシ(検知情報に含まれるP2Pソフト種別502と制御ポリシデータ609に含まれるP2Pソフト種別701が一致し、検知情報に含まれる確信度502が、制御ポリシデータ609の確信度702の値以上であるポリシ)が存在するか否かを判定する(ステップS902)。
【0052】
そして、P2P端末制御プログラム608は、該当するポリシが存在すると判定した場合(ステップS902;Yes)、検知情報に含まれている端末情報501と、制御情報703を、IF605を介して通信路107に送信し、図9に示す制御処理を終了させる。本実施の形態においては、例えば、図7に示したポリシを保持しているP2P端末制御装置103が、図5に示した検知情報を受信した場合、制御情報として「帯域制御」が選択されることとなる。そして、通信路107を介してトラヒック制御装置101が制御情報を受信すると、その制御情報に設定された内容(例えば、「帯域制御」)に従ってトラヒックを制御する。
【0053】
一方、P2P端末制御プログラム608は、該当するポリシが存在しないと判定した場合(ステップS902;No)、何もせずに図9に示す制御処理を終了させる。そして、ステップS902またはS903の処理が終了すると、図9に示す制御処理の全ての処理が終了する。
【0054】
このように、ネットワークを介してパケットを送受信する端末がP2P端末であるか否かを検知するP2P端末検知システム1000において、P2P端末検知装置102は、IF301が、端末がネットワークを介して送受信するパケットを受信し、P2P端末検知プログラム307が、IF301が受信したパケットが接続確立後に最初に送受信するパケットである初期パケットであるか否かを判定し、初期パケットであると判定した場合に、初期パケットのランダム性の有無を判定し、初期パケットにランダム性があると判定した場合に、端末がP2P端末であると検知し、IF303が、P2P端末検知プログラム307が端末がP2P端末であると検知した結果を検知情報として送信し、P2P端末制御装置103は、IF601が、P2P端末検知装置103から前記検知情報を受信し、P2P端末制御プログラム602が、IF601が受信した検知情報に基づいて、検知されたP2P端末のトラヒックを制御するので、ネットワークに負荷をかけることなく、P2P端末を検知し、本来トラヒック制御が必要なP2P端末に対する制御が可能となる。すなわち、初期パケットのみを用いて、暗号化通信を行なうP2P端末の検知が可能となり、検知に応じたP2P端末の制御が可能となる。
【0055】
なお、本実施例の一部を変更して、次のように実施してもよい。P2P端末検知プログラム307の検知結果を、入出力装置207に出力する。これにより、ネットワーク管理者が当該P2P端末の利用者に対して警告メッセージを発したりするなどの対策を講じることができる。
【0056】
また、P2P端末検知プログラム307は、コネクション確立要求に対する応答(TCPヘッダ内のSYNフラグ及びACKフラグをONにした)パケットを受信すると、コネクション管理データ308に当該パケットのコネクション情報を登録する。これにより、確立しないTCP接続を大量に試みるSYN-Flood攻撃(SYN flooding attack)などの無意味なコネクション情報を保持しなくなる。
【0057】
コネクション情報登録(ステップS703)では、受信したパケットと、送受信IP及び送受信ポートが逆転したパケットとのコネクション情報が同じ値になるようなコネクション情報算出方法を利用してもよい(例えば、送信IP、送信ポートを結合した値のMD5ハッシュ値と、受信IP、受信ポートを結合した値のMD5ハッシュ値との排他的論理和を取るなどして算出)。これによりステップS705の処理において、送受信IP及び送受信ポートを逆転させたコネクション情報を算出する必要がなくなる。また、コネクション情報管理データ308のメモリ領域を節約するために、先ほど求めた排他的論理和の上位4バイトをコネクション情報401としても良い。このとき、コネクション情報401の衝突が起こり、コネクションを誤って識別してしまう可能性があるため、メモリ領域に応じてコネクション情報401の大きさを変えてもよい。
(第2の実施の形態)
本実施の形態においては、上述したP2P端末検知プログラム307の検知情報送信(ステップS808)に係る処理が第1の実施の形態とは異なっているため、第1の実施の形態と同一の構成要素には同一の符号を付すことによってその説明を省略し、以下では、上述した異なる点を中心に説明する。
【0058】
図10は、第2の実施の形態におけるP2P通信端末検知装置902の構成例を示す図である。図10に示すように、P2P通信端末検知装置902は、第1の実施の形態におけるメモリ304とは異なるメモリ904を備えている。メモリ904は、第1の実施の形態におけるメモリ304と同様の内容を記憶するほか、P2Pソフト種別を特定するためのP2P種別特定プログラム1001を記憶している。さらに、P2P種別特定プログラム1001には、P2P端末に接続するための、P2Pソフトの種別に応じた接続プログラムを記憶している。図10では、その一例として、BitTorrent接続プログラム1002aと、Winny接続プログラム1002bとが記憶されているが、これに限らず様々なP2Pソフトの種別に応じた接続プログラムを記憶することができる。
【0059】
第2の実施の形態においては、CPU303がメモリ904に記憶されているP2P種別特定プログラム1001を実行することにより、P2P種別の特定を行なう。P2P種別特定プログラム1001は、上述したように、P2Pソフトに応じた接続を行なうためのP2P接続プログラム1002を有している。これらのプログラムは、あらかじめ、メモリ904に格納されていてもよいし、必要なときに、IF301あるいはIF303を介して他の装置からロード(インストール)されてもよい。
【0060】
図11は、P2P端末検知装置902のP2P種別特定プログラム1001が、P2Pソフトの種別を特定するための処理(以下、種別特定処理と呼ぶ。)の処理手順を示すフローチャートである。P2P種別特定プログラム1001は、第1の実施の形態における検知情報送信(ステップS808)に代わって、P2P端末検知プログラム307から呼び出される。
【0061】
図11に示すように、P2P端末検知装置902のP2P種別特定プログラム1001は、接続試行をしていないP2P接続プログラム1002が存在するか否か、すなわち全接続プログラムについて接続を試行したか否かを判定する(ステップS1101)。
【0062】
そして、P2P種別特定プログラム1001は、全接続プログラムについて接続を試行していないと判定した場合(ステップS1101;No)、第1の実施の形態におけるステップS807において、P2P端末と判定された端末に対して、P2P接続プログラム1002による接続を試行する接続試行処理を行う(ステップS1102)。なお、P2P接続プログラム1002の例として、Winny接続プログラム1002bが接続試行処理を行う場合の処理手順については、図12を用いて後述する。
【0063】
一方、P2P種別特定プログラム1001は、全接続プログラムについて接続を試行したと判定した場合(ステップS1101;Yes)、図11に示した種別特定処理を終了させる。
【0064】
そして、P2P種別特定プログラム1001は、ステップS1102において接続を試行した結果、P2P接続プログラム1002によって接続が正しく行なわれたか否かを判定し(ステップS1103)、P2P接続プログラム1002によって接続が正しく行なわれたと判定した場合(ステップS1103;Yes)、接続に利用したP2P接続プログラムの対象としているP2Pソフトが、当該端末で稼働していると判断し、ステップS1104に進む。
【0065】
一方、P2P種別特定プログラム1001は、P2P接続プログラム1002によって接続が正しく行なわれていないと判定した場合(ステップS1103;No)ステップS1101に戻って、ステップS1101〜S1103の処理を繰り返す。
【0066】
P2P種別特定プログラム1001は、ステップS1103において、P2P接続プログラム1002によって接続が正しく行なわれたと判定すると、その判定結果を、検知情報としてIF303を介して通信路106に送信し(ステップS1104)、図11に示した種別特定処理を終了させる。検知情報には、判定した端末情報501と、その端末がP2P端末である可能性の大きさを表す確信度502、その端末が利用しているP2Pソフト種別503が含まれている。本実施例では、P2P通信するプログラムを特定させているため、確信度を1として送信してよい。
【0067】
図12は、図11に示した接続試行処理の処理手順を示すフローチャートである。上述したように、図12では、Winnyの特定を行なうWinny接続プログラム1002bについて説明する。
【0068】
図12に示すように、Winny接続プログラム1002bは、第1の実施の形態におけるステップS807の処理において、P2P端末と判定された端末に対して、鍵情報を送信する(ステップS1201)。鍵情報は、図13に例示するように、乱数1301と、RC4暗号鍵1302と、データ1303とを含んでいる。データ1303は、例えば、Winnyを認識するためのバージョン番号であるバイト列「01 00 00 00 61」を、RC4暗号鍵1302を用いて暗号化したバイト列である。
【0069】
Winny接続プログラム1002aは、接続先の端末からパケットを受信したか否かを判定する(ステップS1202)。そして、Winny接続プログラム1002aは、接続先の端末からパケットを受信したと判定した場合(ステップS1202;Yes)、ステップS1203に進む。
【0070】
一方、Winny接続プログラム1002aは、接続先の端末からパケットを受信していないと判定した場合(ステップS1202;No)、図12に示す接続試行処理を終了させる。例えば、Winny接続プログラム1002aは、ある一定時間(例えば、閾値として設定された時間3秒)経過してもパケットを受信しない場合、図12に示す接続試行処理を終了させる。
【0071】
ステップS1202において、接続先の端末からパケットを受信したと判定すると、Winny接続プログラム1002aは、受信したパケットの復号処理を行なう(ステップS1203)。このとき、接続先がWinnyであれば、図13に例示したデータと同一構造のデータが送られてくる。そこで、RC4暗号鍵1302を用いて、データ1303の復号化を行なう。
【0072】
Winny接続プログラムは、ステップS1203において復号した結果を、上述したバイト列「01 00 00 00 61」と比較して一致しているか否かを判定し(ステップS1204)、両者が一致していると判定した場合(ステップS1204;Yes)、接続先端末に正しく接続されたと判定する(ステップS1205)。そして、ステップS1202またはS1205の処理が終了すると、図12に示した接続試行処理の全ての処理が終了する。
【0073】
このように、第2の実施の形態によれば、P2P端末検知装置902は、メモリ904が、複数の種別のP2Pソフトウェアを記憶し、P2P端末検知装置103は、記憶装置606が、複数のP2Pソフトウェアの種別に対応付けて、制御情報と初期パケットの乱数らしさを含む情報とを制御ポリシデータ609として記憶し、P2P検知プログラム307は、端末に対してメモリ904が記憶するP2Pソフトウェアによる接続を行ない、接続が正常に行われた場合に、端末が使用するP2Pソフトウェアを特定し、特定したP2Pソフトウェアに対応する制御情報と初期パケットの乱数らしさを含む情報とを含む検知情報を出力する、ので、P2Pソフト種別を考慮したP2P通信端末の検知が可能となり、検知に応じたP2P端末の制御が可能となる。
【0074】
本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【0075】
1000…P2P端末検知システム、101…トラヒック制御装置、102…P2P端末検知装置、103…P2P端末制御装置、209…トラヒック制御ルール、210…トラヒック制御プログラム、307…P2P端末検知プログラム、308…コネクション管理データ、602…P2P端末制御プログラム、609…制御ポリシデータ、1001…種別特定プログラム。

【特許請求の範囲】
【請求項1】
ネットワークを介してパケットを送受信する端末がP2P端末であるか否かを検知するP2P端末検知装置であって、
前記端末が前記ネットワークを介して送受信するパケットを受信する受信手段と、
前記受信手段が受信した前記パケットが接続確立後に最初に送受信するパケットである初期パケットであるか否かを判定するパケット判定手段と、
前記パケット判定手段が前記初期パケットであると判定した場合に、前記初期パケットのランダム性の有無を判定し、前記初期パケットにランダム性があると判定した場合に、前記端末がP2P端末であると検知するランダム判定手段と、
前記ランダム判定手段が前記端末が前記P2P端末であると検知した場合に、検知された前記P2P端末のトラヒックを制御する制御手段と、
を備えることを特徴とするP2P端末検知装置。
【請求項2】
前記パケット判定手段は、前記受信手段が受信した前記パケットに接続要求を有する属性が含まれているか否かを判定することにより、前記受信手段が受信した前記パケットが前記初期パケットであるか否かを判定する、
ことを特徴とする請求項1に記載のP2P端末検知装置。
【請求項3】
前記ランダム判定手段は、前記受信手段が前記初期パケットを受信する毎に、前記初期パケットのランダム性の有無を判定し、前記初期パケットに前記ランダム性があると判定する毎に、前記端末がP2P端末であると検知する、
ことを特徴とする請求項1または2に記載のP2P端末検知装置。
【請求項4】
前記ランダム判定手段は、前記端末が前記P2P端末であると検知した場合に、前記端末を特定する情報と前記初期パケットの乱数らしさを含む検知情報を出力し、
前記制御手段は、前記ランダム判定手段が出力した前記検知情報に基づいて、検知された前記P2P端末のトラヒックを制御する、
ことを特徴とする請求項1〜3のいずれか1項に記載のP2P端末検知装置。
【請求項5】
検知した前記P2P端末のトラヒックをどのように制御するかを示す制御情報を、前記初期パケットの乱数らしさを含む情報に対応付けて記憶する制御情報記憶手段をさらに備え、
前記制御手段は、前記制御情報記憶手段が記憶する前記初期パケットの乱数らしさを含む情報と、前記ランダム判定手段が出力した前記検知情報に含まれる前記初期パケットの乱数らしさとを比較し、前記ランダム判定手段が出力した前記検知情報に含まれる前記初期パケットの乱数らしさが、前記制御情報記憶手段が記憶する前記初期パケットの乱数らしさよりもより乱数らしい場合に、前記制御情報記憶手段が記憶する前記制御情報に基づいて、検知した前記P2P端末のトラヒックを制御する、
ことを特徴とする請求項4に記載のP2P端末検知装置。
【請求項6】
複数の種別のP2Pソフトウェアを記憶する種別記憶手段をさらに備え、
前記制御情報記憶手段は、前記複数のP2Pソフトウェアの種別に対応付けて、前記制御情報と前記初期パケットの乱数らしさを含む情報とを記憶し、
前記ランダム判定手段は、前記端末に対して前記種別記憶手段が記憶する前記P2Pソフトウェアによる接続を行ない、前記接続が正常に行われた場合に、前記端末が使用するP2Pソフトウェアを特定し、特定した前記P2Pソフトウェアに対応する前記制御情報と前記初期パケットの乱数らしさを含む情報とを含む検知情報を出力する、
ことを特徴とする請求項5に記載のP2P端末検知装置。
【請求項7】
前記ランダム判定手段は、繰り返し、前記端末に対して前記種別記憶手段が記憶する前記P2Pソフトウェアによる接続を行なうことにより、前記端末が使用するP2Pソフトウェアを特定する、
ことを特徴とする請求項6に記載のP2P端末検知装置。
【請求項8】
ネットワークを介してパケットを送受信する端末がP2P端末であるか否かを検知するP2P端末検知装置で行われるP2P端末検知方法であって、
前記端末が前記ネットワークを介して送受信するパケットを受信する受信ステップと、
前記受信ステップにおいて受信した前記パケットが接続確立後に最初に送受信するパケットである初期パケットであるか否かを判定するパケット判定ステップと、
前記パケット判定ステップにおいて前記初期パケットであると判定された場合に、前記初期パケットのランダム性の有無を判定し、前記初期パケットにランダム性があると判定した場合に、前記端末がP2P端末であると検知するランダム判定ステップと、
前記ランダム判定ステップにおいて前記端末が前記P2P端末であると検知された場合に、検知された前記P2P端末のトラヒックを制御する制御ステップと、
を含むことを特徴とするP2P端末検知方法。
【請求項9】
前記パケット判定ステップは、前記受信ステップにおいて受信された前記パケットに接続要求を有する属性が含まれているか否かを判定することにより、前記受信ステップにおいて受信された前記パケットが前記初期パケットであるか否かを判定する、
ことを特徴とする請求項8に記載のP2P端末検知方法。
【請求項10】
前記ランダム判定ステップは、前記受信ステップにおいて前記初期パケットを受信する毎に、前記初期パケットのランダム性の有無を判定し、前記初期パケットに前記ランダム性があると判定する毎に、前記端末がP2P端末であると検知する、
ことを特徴とする請求項8または9に記載のP2P端末検知方法。
【請求項11】
前記ランダム判定ステップは、前記端末が前記P2P端末であると検知した場合に、前記端末を特定する情報と前記初期パケットの乱数らしさを含む検知情報を出力し、
前記制御ステップは、前記ランダム判定ステップにおいて出力された前記検知情報に基づいて、検知された前記P2P端末のトラヒックを制御する、
ことを特徴とする請求項8〜10のいずれか1項に記載のP2P端末検知方法。
【請求項12】
前記制御ステップは、検知した前記P2P端末のトラヒックをどのように制御するかを示す制御情報を、前記初期パケットの乱数らしさを含む情報に対応付けて記憶する制御情報記憶手段が記憶する前記初期パケットの乱数らしさを含む情報と、前記ランダム判定ステップにおいて出力された前記検知情報に含まれる前記初期パケットの乱数らしさとを比較し、前記ランダム判定ステップにおいて出力された前記検知情報に含まれる前記初期パケットの乱数らしさが、前記制御情報記憶手段が記憶する前記初期パケットの乱数らしさよりもより乱数らしい場合に、前記制御情報記憶手段が記憶する前記制御情報に基づいて、検知した前記P2P端末のトラヒックを制御する、
ことを特徴とする請求項11に記載のP2P端末検知方法。
【請求項13】
前記制御情報記憶手段には、前記複数のP2Pソフトウェアの種別に対応付けて、前記制御情報と前記初期パケットの乱数らしさを含む情報とが記憶され、
前記ランダム判定ステップは、前記端末に対して複数の種別のP2Pソフトウェアを記憶する種別記憶手段が記憶する前記P2Pソフトウェアによる接続を行ない、前記接続が正常に行われた場合に、前記端末が使用するP2Pソフトウェアを特定し、特定した前記P2Pソフトウェアに対応する前記制御情報と前記初期パケットの乱数らしさを含む情報とを含む検知情報を出力する、
ことを特徴とする請求項12に記載のP2P端末検知方法。
【請求項14】
前記ランダム判定ステップは、繰り返し、前記端末に対して前記種別記憶手段が記憶する前記P2Pソフトウェアによる接続を行なうことにより、前記端末が使用するP2Pソフトウェアを特定する、
ことを特徴とする請求項13に記載のP2P端末検知方法。
【請求項15】
ネットワークを介してパケットを送受信する端末がP2P端末であるか否かを検知するP2P端末検知システムであって、
P2P端末検知装置は、
前記端末が前記ネットワークを介して送受信するパケットを受信する第1の受信手段と、
前記受信手段が受信した前記パケットが接続確立後に最初に送受信するパケットである初期パケットであるか否かを判定するパケット判定手段と、
前記パケット判定手段が前記初期パケットであると判定した場合に、前記初期パケットのランダム性の有無を判定し、前記初期パケットにランダム性があると判定した場合に、前記端末がP2P端末であると検知するランダム判定手段と、
前記ランダム判定手段が前記端末がP2P端末であると検知した結果を検知情報として送信する送信手段と、を備え、
P2P端末制御装置は、
前記P2P端末検知装置から前記検知情報を受信する第2の受信手段と、
前記第2の受信手段が受信した前記検知情報に基づいて、検知された前記P2P端末のトラヒックを制御する制御手段と、
を備えることを特徴とするP2P端末検知システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2011−205197(P2011−205197A)
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願番号】特願2010−67932(P2010−67932)
【出願日】平成22年3月24日(2010.3.24)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成21年度 総務省「情報漏えい対策技術の研究開発(ネットワークを通じた情報流出の検知及び漏出情報の自動流通停止のための技術開発)」委託研究、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】