(従来のSSL通信におけるハンドシェーク)
まず、図9を参照して、SSLを用いて暗号化された情報を送信する場合の処理の流れの一例について説明する。図9は、従来のSSL通信による処理の流れの一例について説明するための図である。
SSLを用いて通信を行う場合、クライアントに対してSSL暗号化/復号化装置のルート証明書が発行され、クライアントに保持される。ルート証明書は通信相手のデジタル証明書の正当性をチェックするために使用される。図9の例では、クライアントは、SSL暗号化/復号化装置の信頼性チェックのため、まえもってルート証明書の発行を受けルート証明書を保持する。
クライアントとサーバとの間で通信を行う際はまず、クライアントからサーバに対してClient Helloメッセージを送信し、使用する暗号化方式等を提案する。Client Helloメッセージにはたとえば、使用するプロトコルのバージョンや、クライアントが生成した乱数、セッションID、利用できる暗号スイートのリスト、圧縮方法等の情報が含まれる。図9では、クライアントが送信するClient HelloメッセージをSSL暗号化/復号化装置が受信する(図9の(1))。SSL暗号化/復号化装置は、受信したClient Helloメッセージ中、レコードプロトコルのレコードヘッダを付け替える。そして、SSL暗号化/復号化装置は、レコードヘッダを付け替えたClient Helloメッセージをサーバに送信する(図9の(2))。
サーバは、レコードヘッダが付け替えられたClient Helloメッセージを受信すると、Client Helloメッセージに基づきSSL暗号化/復号化装置から提案された暗号化方式の中から適当なものを一つ選んで返答する(図9の(3))。これによって、サーバとSSL暗号化/復号化装置との間で暗号通信を行う際に使用する暗号化方式が決定される。
また、SSL暗号化/復号化装置は、クライアントから提案された暗号化方式の中から適当なものを一つ選んで返答する(図9の(4))。これによって、クライアントとSSL暗号化/復号化装置との間で暗号通信を行う際に使用する暗号化方式が決定される。
さらに、サーバは、SSL暗号化/復号化装置に対してCertificateメッセージを使ってサーバ証明書を送信する(図9の(5))。サーバ証明書は、サーバが信頼できるものであることを証明するためのデータであり、認証局(CA)名やサーバが使用する公開鍵、サーバの電子署名等の情報を含む。サーバはCertificateメッセージを送信し終わると、その旨を通知するメッセージを送信する。SSL暗号化/復号化装置は、クライアントに対してCertificateメッセージを使ってサーバ証明書を送信する(図9の(6))。
クライアントは、受信したサーバ証明書からSSL暗号化/復号化装置の公開鍵を抽出する。そして、クライアントは、抽出した公開鍵を使用して暗号通信に使う共通鍵の基となる秘密の値(プレマスタ・シークレット)を暗号化して送信する(図9の(7)、(8))。
SSL暗号化/復号化装置は、サーバ証明書からサーバの公開鍵を抽出する。そして、SSL暗号化/復号化装置は、抽出した公開鍵を使用して暗号通信に使う共通鍵の基となる秘密の値(プレマスタ・シークレット)を暗号化して送信する(図9の(9)、(10))。
サーバは、暗号化されたデータを受信すると自身の秘密鍵で復号化する。それによってサーバは、プレマスタ・シークレットを取得することができる。この一連の処理によってSSL暗号化/復号化装置とサーバとの間で暗号化の共通鍵の基となるプレマスタ・シークレットを共有することができる。
また同様に、SSL暗号化/復号化装置は、暗号化されたデータを受信すると自身の秘密鍵で復号化する。それによってSSL暗号化/復号化装置は、プレマスタ・シークレットを取得することができる。この一連の処理によってSSL暗号化/復号化装置とクライアントとの間で暗号化の共通鍵の基となるプレマスタ・シークレットを共有することができる。
以上の処理が終了すると、クライアントは一連の処理によって決定された暗号化方式の採用(Change Cipher Specメッセージ等)とハンドシェークの終了(Finishedメッセージ等)をSSL暗号化/復号化装置に通知する(図9の(11)、(12))。SSL暗号化/復号化装置も同様に、決定された暗号化方式の採用とハンドシェークの終了をクライアントに通知する(図9の(11)、(12))。これによってハンドシェークの処理が終了する。この後、クライアント、サーバおよびSSL暗号化/復号化装置は、共有したプレマスタ・シークレットからそれぞれの共通鍵を生成して、暗号通信を実行する。
(従来のSSL通信における危険情報検出)
図10は、従来のSSL通信において危険情報を検出する際の処理の一例について説明するための図である。
SSL通信においては上記のように決定した暗号化方式に基づき通信内容が暗号化されるため、そのままでは危険情報等が含まれるか否かを検出することができない。たとえば、図10に示す例では、クライアント1がアクセスポイント(AP)2を介してエッジ3に接続される。そして、エッジ3とSSL暗号化/復号化装置4とがネットワークを介して接続される。SSL暗号化/復号化装置4はDPI処理を実施する機能を備えるDPI装置5と接続される。クライアント1は、OTT(Over The Top)等のサービスを提供するサーバ6のサービスを利用する場合、アクセスポイント2、エッジ3、SSL暗号化/復号化装置4を介してサーバ6と通信する。
ここで、SSL暗号化/復号化装置4は、クライアント1からの通信フローを受信すると、クライアント1側で通信フローをいったん終端する。また、SSL暗号化/復号化装置4はサーバ6との間で送受信する通信フローをサーバ6側でいったん終端する。これにより、SSL暗号化/復号化装置4は、ユーザ(クライアント1)側およびサーバ6側のそれぞれに別個のSSLセッションを確立する。そして、SSL暗号化/復号化装置4は、それぞれのSSLセッションにおいて送受信する通信フローの復号化を行ってDPI装置5に送信する。DPI装置5は復号化された通信フローに対する検査を実行して危険を検出する。
(従来の危険情報検出における課題)
しかし、上記のような危険情報検出手法においては、以下の課題が存在する。まず、共通鍵として使用するデータのビット数にも依存するが、ビット数が大きくなるほどSSL暗号化/復号化装置には高い性能が要求される。このため、SSL暗号化/復号化装置が、ネットワークの通信品質の向上を限界づけるボトルネックとなってしまう。
また、上記の構成では、SSL暗号化/復号化装置はネットワークを流れるすべてのトラヒックについて復号化とDPIによる検査を実行する。DPIは、IPパケットのヘッダ部分だけでなくデータ部分に基づいて検査を実行する技術であり、処理負荷が大きい。このため、すべてのトラヒックに対してDPIを実行した場合、DPI装置も処理効率の向上を限界づけるボトルネックとなる。
さらに、上記の構成のように、SSL暗号化/復号化装置がすべてのトラヒックについて同様の復号化、検査処理(DPI)を実施した場合、所定のデータのみを選択的にステアリングする等の処理が実現できない。たとえば、オプティマイズサービス等では、SSL復号化が必須であるが、上記構成のSSL暗号化/復号化装置では、かかるサービスのためにSSL復号化を実施し、実施したフローを選択的に当該サービスにステアリングすることができない。ツイッターログサービス等についても同様である。
(第1の実施形態)
以下に、開示する制御処理対象フロー絞り込み装置および制御処理対象フロー絞り込み方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、各実施形態は適宜組み合わせることができる。
(第1の実施形態に係る制御処理対象フロー絞り込み装置の構成の一例)
図1は、第1の実施形態に係る制御処理対象フロー絞り込みシステムの概略構成の一例を示す図である。
図1に示す制御処理対象フロー絞り込みシステムは、制御処理対象フロー絞り込み装置10と、クライアント20と、SSL暗号化/復号化装置30と、DPI装置40と、サーバ50と、を備える。制御処理対象フロー絞り込み装置10とクライアント20とはネットワークを介して接続される。また、制御処理対象フロー絞り込み装置10は、SSL暗号化/復号化装置30とネットワークを介して接続される。SSL暗号化/復号化装置30は、復号化したデータの検査を実行するDPI装置40と接続される。制御処理対象フロー絞り込み装置10はまたOTT等のサービスを提供するサーバ50と接続される。制御処理対象フロー絞り込み装置10における処理を経てサーバ50へステアリングされたデータは、制御処理対象フロー絞り込み装置10からサーバ50へ送信される。
制御処理対象フロー絞り込み装置10は、受信する情報を通信フローごとに制御することができる装置である。制御処理対象フロー絞り込み装置10はたとえば、PCEF(Policy and Charging Enforcement Function)やPCRF(Policy and Charging Rule Function)である。また制御処理対象フロー絞り込み装置10はDPI機能を備えるように構成してもよい。
制御処理対象フロー絞り込み装置10は、受信した通信フローの内容を識別して、各通信フローの内容に応じた制御を実行するために必要な情報を作成する。そして、制御処理対象フロー絞り込み装置10は、作成した情報に基づき、各通信フローの制御内容を決定する。そして、制御処理対象フロー絞り込み装置10は、決定した制御内容に応じた制御を実行する。たとえば、制御処理対象フロー絞り込み装置10は、各通信フローのステアリング、遮断、レートリミット等の制御を実行する。また、制御処理対象フロー絞り込み装置10は、各通信フローの制御を実行した結果に基づき、他のノードと通信する。たとえば、制御処理対象フロー絞り込み装置10は、復号化やDPI処理を実行すると決定した通信フローをSSL暗号化/復号化装置30に送信する。また、制御処理対象フロー絞り込み装置10は、復号化せずに直接送信先たとえばサーバ50に送信すると決定した通信フローをサーバ50に送信する。
クライアント20は、たとえばユーザが利用する携帯端末やパーソナルコンピュータ等の情報処理端末である。ユーザはクライアント20を用いてサーバ50等がネットワークを介して提供するサービスを利用するための情報をネットワーク上に送信する。
SSL暗号化/復号化装置30は、SSLを使用して暗号化された情報を復号化したり、SSLを使用して情報を暗号化したりする装置である。たとえば、SSL暗号化/復号化装置30はクライアント20に対してサーバ50が提供するサービスを実現するために送受信される情報を暗号化したり復号化したりする。また、SSL暗号化/復号化装置30は、制御処理対象フロー絞り込み装置10が受信した通信フローを復号化して内容の検査を行うと決定した場合に、当該通信フローを制御処理対象フロー絞り込み装置10から受信して復号化し、DPI装置40に渡す。
DPI装置40は、制御処理対象フロー絞り込み装置10が受信した通信フローについて、復号化して内容の検査を行うと決定された場合に、SSL暗号化/復号化装置30から復号化された通信フローを受信し、DPIを実行する。DPI装置40はたとえば、ウィルスの有無判定等を実行し、検査結果を制御処理対象フロー絞り込み装置10に送信する。なお、図1の例では、DPI装置40はSSL暗号化/復号化装置30を介して制御処理対象フロー絞り込み装置10に接続されているが、DPI装置40は直接制御処理対象フロー絞り込み装置10に接続されるように構成してもよい。
サーバ50は、ネットワークを介してクライアント20等にOTT等のサービスを提供する。
(制御処理対象フロー絞り込み装置の構成の一例)
制御処理対象フロー絞り込み装置10は、通信フロー受信部11と、復号化要否判定部12と、ステアリング設定部13と、SSL指示部14と、中継部15と、記憶部16と、を備える。
復号化要否判定部12、ステアリング設定部13、SSL指示部14および中継部15は、CPU(Central Processing Unit)等任意の処理装置を用いて実現することができる。また、記憶部16は特に限定されず、以下に説明する情報を記憶することができれば任意の記憶装置を用いて実現することができる。また、これらの各構成要素は、必ずしも制御処理対象フロー絞り込み装置10と一体的に構成する必要はなく、たとえば記憶部16を制御処理対象フロー絞り込み装置10とは別体として構成してもよい。
通信フロー受信部11は、クライアント20、SSL暗号化/復号化装置30およびサーバ50から送信される通信フローを受信する。なお、図1には制御処理対象フロー絞り込み装置10と接続される装置はクライアント20、SSL暗号化/復号化装置30、サーバ50の3つのみ示すが、このほかに任意の装置を接続してもよい。また、一つの制御処理対象フロー絞り込み装置10に対して、クライアント20やサーバ50を複数接続してもよい。
通信フロー受信部11が受信した通信フローは、復号化要否判定部12に送信される。復号化要否判定部12は、通信フロー受信部11が受信した通信フローのうち、復号化せずに内容判定できる部分に基づき、当該通信フローの復号化要否を判定する。たとえば、復号化要否判定部12は、通常のポリシー制御で想定されている値や、SSLセッションに特有の値を通信フローから抽出する。通常のポリシー制御で想定されている値としては、たとえば、3GPP(Third Generation Partnership Project)のGxインタフェースで規定されている値が挙げられる。たとえば、Session-ID、Origin-Host、Origin-Realm、Destination-Realm、Auth-Application-Id、CC-Request-Type、CC-Request-Number、Vender-ID、Feature-List-ID、Feature-List、Framed-IPv6-Prefix、Logical-Access-IDなどである。たとえば、復号化要否判定部12は、Client Helloメッセージにおけるレコードプロトコルで規定されているレコードヘッダ情報を抽出する。または、復号化要否判定部12は、サーバから送信されるCertificateメッセージのサーバ証明書に含まれる情報を抽出する。また、復号化要否判定部12は、ユーザ識別情報を抽出してもよい。たとえば、復号化要否判定部12は、SIM番号、VLAN番号、トンネル番号、電話番号等を抽出してもよい。また、このほか、URL,5tuple、アプリケーション等の情報を使用できる。そして、復号化要否判定部12は、抽出した情報や値に基づいて当該通信フローの復号化要否を判定する。たとえば、復号化要否判定部12は、通信フローに含まれるサーバ証明書を抽出して当該証明書により認証されるサーバが予め記憶部16に安全な装置として登録されている場合、復号化不要と判定する。復号化要否判定部12の判定手法は特に限定されず、通信フローをSSL復号化せずに抽出できる情報に基づいて判定できればよい。
復号化要否判定部12の判定結果に基づき、ステアリング設定部13は、各通信フローをステアリングする。すなわち、ステアリング設定部13は、復号化要と判定された通信フローをSSL暗号化/復号化装置30に送信するようステアリングする。また、ステアリング設定部13は、復号化不要と判定された通信フローをSSL暗号化/復号化装置30に送信せず直接サーバ50等に送信するようステアリングする。
SSL指示部14は、ステアリング設定部13によりSSL暗号化/復号化装置30にステアリングされた通信フローを復号化してDPI装置40による検査を実行するようSSL暗号化/復号化装置30に指示する。また、SSL指示部14は、通信フローをSSL暗号化/復号化装置30に送信する。
中継部15は、ステアリング設定部13の設定に基づき、各通信フローを他ノードに送信する。ステアリング設定部13、SSL指示部14および中継部15は、復号化要否判定部12によりDPIの実行要と判定された通信フローを復号化してDPIを実行し、DPIの実行不要と判定された通信フローを復号化せずに送信先へ転送するよう制御する制御部である。
記憶部16は、復号化要否判定のための情報を記憶する。たとえば、所定のURLやサーバが信頼できることが予め判明している場合、当該URLや当該サーバからの通信フローについては復号化およびDPI検査は実行せずに、直接送信先へ送ればよい。そこで、たとえば、「復号化要」のURL等と、「復号化不要」のURL等とを予め記憶部16に格納しておく。そして、復号化要否判定部12は、記憶部16に格納された情報を参照して、受信した通信フローの復号化要否を判定する。
(第1の実施形態に係る制御処理対象フロー絞り込み方法の流れの一例)
図2は、第1の実施形態に係る制御処理対象フロー絞り込み処理の流れの一例を示すフローチャートである。制御処理対象フロー絞り込み装置10は、まず暗号化された通信フローを受信する(ステップS21)。そして、制御処理対象フロー絞り込み装置10は、当該通信フローの復号化の要否すなわちDPIの要否を判定する(ステップS22)。そして、復号化要と判定した場合(ステップS23、YES)、制御処理対象フロー絞り込み装置10は、当該通信フローをSSL暗号化/復号化装置30およびDPI装置40に送信し、復号化およびDPIを実行させる(ステップS24)。他方、復号化不要と判定した場合(ステップS23、NO)、制御処理対象フロー絞り込み装置10は、当該通信フローをSSL暗号化/復号化装置30に送信せず、そのまま送信先に転送する(ステップS25)。
ステップS24において、復号化要の通信フローの復号化および検査が終了すると、検査結果を制御処理対象フロー絞り込み装置10に通知する(ステップS26)。検査の結果、当該通信フローが悪意ある通信フローたとえばウィルスを含む通信フローであると判定された場合(ステップS27、YES)、当該通信フローを送信先には転送せず遮断する(ステップS28)。他方、当該通信フローが悪意ある通信フローすなわち悪性フローではないと判定された場合(ステップS27、NO)、制御処理対象フロー絞り込み装置10は、ステップS25に進み、当該通信フローを送信先へ転送する。これによって制御処理対象フロー絞り込み処理が終了する。
(第1の実施形態の効果)
このように、第1の実施形態においては、制御処理対象フロー絞り込み装置は、暗号化された通信フローを復号化することによって当該通信フローを検査することの要否を、復号化せずに取得できる当該通信フローの内容に基づいて判断する。そして、制御処理対象フロー絞り込み装置は、検査不要と判断された通信フローを復号化せずに送信先へ転送し、検査要と判断された通信フローを復号化して検査する。このため、すべての通信フローについて復号化および検査を実行する場合と比較して、暗号化された通信フローが制御対象の場合であっても、制御処理対象とする通信フローを効率的に絞り込むことができる。このため、通信フローにかかる処理負荷を減じ処理効率を向上させることができる。
(第1の実施形態の変形例1−フィードバックに基づくステアリング)
第1の実施形態にかかる制御処理対象フロー絞り込み装置10は、復号化の要否を判定して判定結果に基づき通信フローをステアリングした。これに対して、SSL暗号化/復号化装置30およびDPI装置40における処理の結果に基づいて、その後受信する通信フローのステアリング制御を実行するようにしてもよい。第1の実施形態の変形例1としてかかる実施形態を説明する。
図3は、第1の実施形態の制御処理対象フロー絞り込みシステムの変形例1を説明するための図である。図3に示す制御処理対象フロー絞り込み装置10Aは、第1の実施形態にかかる制御処理対象フロー絞り込み装置10とほぼ同様の構成であるが、フィードバック処理部17を備える点が相違する。また、制御処理対象フロー絞り込み装置10Aは、記憶部16A中にステアリング用データベース(DB)を備える点が第1の実施形態と異なる。以下、第1の実施形態と異なる点について主に説明する。
制御処理対象フロー絞り込み装置10Aが備える通信フロー受信部11A、復号化要否判定部12A、ステアリング設定部13A、SSL指示部14A、中継部15Aの構成および機能は、第1の実施形態の通信フロー受信部11、復号化要否判定部12、ステアリング設定部13、SSL指示部14、中継部15と同様である。このため、これらの構成要素についての説明は省略する。なお、クライアント20A、SSL暗号化/復号化装置30A、DPI装置40Aおよびサーバ50Aの構成および機能も図1のクライアント20、SSL暗号化/復号化装置30、DPI装置40およびサーバ50と同様であるため説明は省略する。
フィードバック処理部17は、SSL暗号化/復号化装置30Aに送信されて復号化され、DPI装置40AでDPI処理された通信フローの処理結果のフィードバック情報を受信する。そして、フィードバック処理部17は、フィードバック情報に基づき、以後制御処理対象フロー絞り込み装置10Aが受信する通信フローのステアリング制御を調整する。また、フィードバック処理部17は、受信した処理結果を解析して、以後の復号化要否判定に使用するため記憶部16Aのステアリング用データベース(DB)に格納する。
たとえば、DPI装置40Aによる解析の結果、所定のURLが悪意あるURLと判断された場合、当該URLを記憶部16Aに記憶し、以後当該URLからのアクセスを遮断する。また、DPI装置40Aによる解析の結果、所定のURLが悪意のないURLと判断された場合、当該URLを記憶部16Aに記憶し、以後当該URLからの通信フローについては復号化およびDPI装置40Aによる検査は不要とする。
このように、予め判明している情報に加えて、SSL暗号化/復号化装置30AおよびDPI装置40Aでの処理結果のフィードバックを利用することにより、復号化要否判定の精度と効率を向上させることができる。また、このように復号化要否判定の精度を上げることで、SSL暗号化/復号化装置30Aの処理負荷を低減することができる。
(第1の実施形態の変形例2−SSL通信未対応機器への対処)
第1の実施形態に係る制御処理対象フロー絞り込み処理においては、復号化およびDPI後の通信フローは再び暗号化して送信先に送信するものとした。しかし、これに限定されず、たとえば、制御処理対象フロー絞り込み装置10をSSL通信に対応していないネットワークと接続し、当該ネットワーク上でサービスを提供している装置に対しては復号化した通信フローを送信するものとしてもよい。
たとえば、図4は第1の実施形態に係る制御処理対象フロー絞り込みシステムの変形例2を説明するための図である。図4の(1)では、クライアントとPCEF/DPIとをつなぐネットワークも、PCEF/DPIとOTTとをつなぐネットワークもSSL通信に対応している。これに対して、図4の(2)のようにPCEF/DPIとOTTとをつなぐネットワークがSSL通信に対応していないというケースも考えられる。たとえば、OTTがSSLに未対応であって、ユーザが空港の無線LAN(暗号化なし)を使用して安全な通信を行いたい場合等が考えられる。このような場合には、クライアントと制御処理対象フロー絞り込み装置との間はSSL通信を行い、制御処理対象フロー絞り込み装置とOTTとの間は復号化したデータを流す。
(第1の実施形態の変形例3−復号化とDPI)
第1の実施形態に係る制御処理対象フロー絞り込み処理においては、復号化要と判定された通信フローはすべて復号化およびDPIの処理を受けるものとした。しかし、これに限定されず、たとえば、復号化された通信フローでなければ処理できないが信頼性の高いサーバ等が送信先である場合などは、通信フローの復号化のみを行い、DPIは行わないようにステアリングしてもよい。
このように柔軟に通信フローのステアリングを行うことで、送信先の装置や提供されるサービスに応じて効率的なステアリングを実現することができ、通信効率を向上させることができる。
(第2の実施形態)
図5は、第2の実施形態に係る制御処理対象フロー絞り込みシステムの概略構成の一例を示す図である。図5に示すように、第2の実施形態に係る制御処理対象フロー絞り込みシステムは、PCEF(Policy and Charging Enforcement Function)/DPI100とPCRF(Policy and Charging Rule Function)200とを備える。図5の例では、第1の実施形態の制御処理対象フロー絞り込み装置を、PCEF/DPI100およびPCRF200によって実現する。
PCRF200はSSLに基づき暗号化された通信フローを復号化することによって当該通信フローに対してDPIを実行することの要否を、当該通信フローを復号化せずに取得できる当該通信フローの内容に基づいて判定する判定部として機能する。
また、PCRF200は、DPIの実行要と判定された通信フローについてどのような内容でDPIを実行するかをDPIに指示し、PCEF100に対して当該通信フローをどのように転送するか、ステアリング指示する。つまり、PCRF200は、DPIの実行要と判定した通信フローのステアリング指示を実行するようPCEF100へ指示し、DPIの実行不要と判定された通信フローは送信先へ転送するようPCEF/DPI100へ指示する制御を実行する。言い換えると、PCRF200は、DPIの実行不要と判定された通信フローを復号化せずに送信先へ転送し、DPIの実行要と判断された通信フローを復号化して検査させるよう制御する制御部として機能する。
図5中、クライアント20Bはアクセスポイント21を介してネットワークに接続される。クライアント20Bからの通信フローはPCEF/DPI100によって受信される。PCEF/DPI100はSSL暗号化/復号化装置30Bと接続される。SSL暗号化/復号化装置30BはDPI装置40Bと接続される。DPI装置40Bは、ウィルスチェック機能41、ツイッター保管庫42、オプティマイズ機能43等の機能部と接続される。また、DPI装置40BはPCRF200と接続される。PCEF/DPI100はネットワークを介してOTT50Bとも接続される。
図5に示すPCEF/DPI100は、受信する通信フローの内容を識別して、当該通信フローの制御判断のための情報を作成する。また、PCEF/DPI100は、PCRF200からの指示に基づき、通信フローを制御する。たとえば、PCEF/DPI100は、通信フローのステアリングや、遮断、レートリミット等の制御を実行する。また、PCEF/DPI100は、SSL暗号化/復号化装置30BやDPI装置40Bにおける処理の結果に基づき、通信フローを制御する。
PCEF/DPI100は、通信フローをフロー単位で切り分けて制御することができる。このため、PCEF/DPI100を用いることで、通信フローごとに制御内容、たとえば、復号化するか否か等の制御内容を変えることができる。具体的にはPCEF/DPI100のうち、PCEFは、5tuple等のレイヤー3の情報までを識別する。そして、PCEF/DPI100のうち、DPIは、レイヤー7の情報までを識別する。このため、PCRF200が復号化するか否かの判断を実行した上で、PCEF/DPI100に指示することで、様々な制御内容を実行することができる。PCEF/DPI100は、通信フローをフロー単位に切り分けるために、たとえば、通常のポリシー制御で想定されている値や、SSLセッションに特有の値を用いることができる。通常のポリシー制御で想定されている値としては、たとえば、3GPP(Third Generation Partnership Project)のGxインタフェースで規定されている値が挙げられる。たとえば、Session-ID、Origin-Host、Origin-Realm、Destination-Realm、Auth-Application-Id、CC-Request-Type、CC-Request-Number、Vender-ID、Feature-List-ID、Feature-List、Framed-IPv6-Prefix、Logical-Access-IDなどである。SSLセッションに特有の値としては、たとえば、Client Helloメッセージのレコードプロトコルで規定されているレコードヘッダ情報が挙げられる。また、サーバから送信されるCertificateメッセージにより送付されるサーバ証明書の情報を用いることもできる。また、たとえばPCEF/DPI100は、SIM番号、VLAN番号、トンネル番号、電話番号等のユーザ識別情報を用いて通信フローを切り分けてもよい。また、このほか、URL,5tuple、アプリケーション等の情報を使用できる。
PCEF/DPI100は、通信フローを切り分けるとともに、当該通信フローの内容を識別し制御内容を決定するための情報を作成する。たとえば、PCEF/DPI100は、通常のポリシー制御で想定されている値や、SSLセッションに特有の値を用いて、通信フローの内容を識別し制御内容を決定するための情報を作成する。ここで用いる通常のポリシー制御で想定されている値やSSLセッションに特有の値は、PCEF/DPI100が通信フローをフロー単位に切り分けるために用いる値と同様である。PCEF/DPI100は、作成した制御内容を決定するための情報を、PCRF200に送信する。
また、PCEF/DPI100は、PCRF200が決定したフロー制御内容に基づく制御を実行する。たとえば、PCEF/DPI100は、通信フローのステアリングや遮断、レートリミット等の制御を実行する。さらに、通信フローに対してPCRF200が決定したフロー制御内容に基づく制御を実行した結果をもとに他ノードとの通信を実行する。たとえば、PCEF/DPI100は、通信フローに対して復号化とDPIによる検査を実行した結果、ウィルスが発見された場合に当該通信フローの破棄等を実行する。
PCRF200は、PCEF/DPI100が受信した通信フローにつき、PCEF/DPI100が作成した通信フローの制御判断のための情報を参照して、制御内容を決定する。また、PCRF200は、通信フローの制御結果に基づき、他のノードとの通信処理の内容を設定する。PCRF200が決定した制御内容はPCEF/DPI100に通知され、PCEF/DPI100はPCRF200の決定した制御内容に基づき制御を実行する。
PCRF200は、PCEF/DPI100から送信される情報に基づき、各通信フローに対する制御内容を決定する。たとえば、PCRF200は、当該通信フローに対して復号化およびDPIによる検査を実行するか否かを決定する。また、PCRF200は、当該通信フローをそのまま送信先に送信する処理の実行を決定する。また、PCRF200は、DPI装置40Bが通信フローごとにアクセス制御や暗号化が必要な装置(ウィルスチェック機能41等)へステアリングを実行するようDPI装置40Bを制御する。PCRF200は、通信フローの制御結果に基づき他ノードと通信するようPCEF/DPI100を制御する。すなわち、PCRF200は、DPI装置40Bにおける処理結果をPCEF/DPI100へフィードバックする。
SSL暗号化/復号化装置30Bは、OTT50Bとクライアント20Bとの間で提供されるサービスのために送受信される情報を復号化し、暗号化する。また、SSL暗号化/復号化装置30Bは、復号化した通信フローをDPI装置40Bに送信する。
DPI装置40Bは、PCRF200の制御に基づきDPIを実行する。また、DPI装置40Bは、DPIの結果をPCRF200に通知する。
なお、クライアント20B、SSL暗号化/復号化装置30B、DPI装置40B、OTT50Bは各々、図1のクライアント20、SSL暗号化/復号化装置30、DPI装置40、サーバ50に概ね対応し、機能も同様である。
第2の実施形態に係る制御処理対象フロー絞り込みシステムでは、通信フローをフロー単位で制御することができるPCEF/DPI100と、PCRF200とを設置することで、フロー単位で復号化する制御処理対象フローを絞り込む。すなわち、PCEF/DPI100を用いてSSL暗号化/復号化させる通信フローの数をできるだけ抑制する。また、SSL暗号化/復号化装置30BおよびDPI装置40Bでの処理結果をPCRF200に通知することにより、復号化の結果を考慮したフロー制御を実現する。かかる処理を実現するため、PCEF/DPI100は、復号化要否を判断するための情報を通信フローから抽出してPCRF200に送信する。PCRF200は、通信フローごとにアクセス制御やステアリング制御の内容を決定し、DPI装置40Bに制御を指示する。また、DPI装置40Bは、DPIの結果をPCRF200に通知する。PCRF200はDPIの結果を加味して、さらに制御内容を決定して、PCEF/DPI100に通知する。このように、PCEF/DPI100、PCRF200、SSL暗号化/復号化装置30BおよびDPI40Bが動作することにより、復号化対象となる通信フローを絞り込む。
図6は、第2の実施形態に係る制御処理対象フロー絞り込み処理の流れの一例を示すフローチャートである。図6に示すように、まず、PCEF/DPI100がクライアント20Bから通信フローを受信する(ステップS601)。なお、ここではクライアント20Bからの通信フローを例に説明するが、OTT50Bが送信する通信フローについても同様の処理が実行される。
PCEF/DPI100は、受信した通信フローから復号化要否判定のための情報を抽出する(ステップS602)。たとえば、PCEF/DPI100は、上述の通常のポリシー制御で想定されている値や、SSLセッション特有の値を抽出する。
次に、PCEF/DPI100は、抽出した情報をPCRF200に送信する。PCRF200は、受信した情報に基づき復号化の要否を判定する(ステップS603)。たとえば、受信した情報が、信頼性の高いサーバからの情報であることを示している場合には、PCRF200は復号化不要と判定する。
そして、PCRF200は、復号化要否判定の結果に基づき、当該通信フローの送信経路を決定し設定するステアリング設定を行う(ステップS604)。たとえば、PCRF200が、当該通信フローは復号化してDPI処理を行うと決定した場合、当該通信フローをSSL暗号化/復号化装置30B、DPI装置40Bに送信するステアリング設定を行う。そして、PCRF200は、PCEF/DPI100およびDPI装置40Bに対して、当該通信フローをステアリング設定に基づき処理するよう通知する。PCEF/DPI100は、PCRF200の指示に基づき、通信フローをSSL暗号化/復号化装置30Bに送信し復号化させる(ステップS605)。さらに、PCEF/DPI100は、当該通信フローをDPI装置40Bに送信させ、DPI処理を実行させる(ステップS605)。
DPI装置40Bでの処理結果および制御結果はDPI装置40BからPCRF200に送信される(ステップS606)。PCRF200は、DPI装置40Bでの処理結果および制御結果を加味して、当該通信フローの制御内容を更新し、PCEF/DPI100に指示する(ステップS607)。PCEF/DPI100は、PCRF200からの制御指示に基づき、再び暗号化された当該通信フローをOTT50Bに送信する等の制御を実行する(ステップS608)。これで、制御処理対象フロー絞り込みの一例が終了する。
なお、図6のフローは通信フローに対して復号化およびDPIを実行する例としたが、PCRF200が決定する制御内容に応じて、復号化およびDPIを実行せずに通信フローをそのまま送信するケース、復号化およびDPIの結果通信フローを遮断するケース等がある。
(第2の実施形態に係る制御処理対象フロー絞り込み処理の流れの例)
図7は、第2の実施形態に係る制御処理対象フロー絞り込み処理の流れの一例を説明するためのシーケンスチャートである。図7を参照して、第2の実施形態に係る処理の流れの一例を説明する。
まず、PCEF/DPI100は、Client Hello等の呼を受信すると、CCR−I(Credit-Control-Request Initialization)メッセージをPCRF200に送信する(図7の(1))。このメッセージを送信することで、PCEF/DPI100は、PCFR200に対してSSL暗号化・復号化の要否判断を要求する。このとき、PCEF/DPI100は、受信した呼が含む情報であって暗号化/復号化の要否判定の基礎となる情報を抽出し、PCRF200に送信する。
PCRF200は、CCR−Iを受信して、当該通信フローに対する制御内容を決定する。そして、PCRF200は、PCEF/DPI100に対して、制御内容(たとえばステアリングの内容)を指示するCCA(Credit-Control-Answer)を送信する。図7では、PCRF200は復号化を指示するCCAを送信したものとする(図7の(2))。
PCRF200はまた、DPI装置40Bに対して決定した制御(ステアリング等)を実行するよう指示するRAR(Reauthorization Request) DPIを送信する。ここでは、PCRF200はDPIの実行を指示するRARを送信したものとする(図7の(3))。DPI装置40Bは、RARに応答してRAA(Reauthorization Answer)をPCRF200に返す(図7の(4))。
また、PCEF/DPI100はSSL暗号化/復号化装置30Bに対してSSLプロキシ動作を実行するよう指示する。SSL暗号化/復号化装置30Bは指示に応じた処理を実行する(図7のU-Plane-(1))。
また、SSL暗号化/復号化装置30Bは、DPI装置40Bに対して通信フローを送信する(図7のU-Plane-(2))。DPI装置40Bは、PCRF200から指示された内容に基づき処理を実行する。また、PCRF200からウィルスチェック機能41、ツイッター保管庫42、オプティマイズ機能43等での処理を指示されている場合、DPI装置40Bからこれらの機能部にデータを送信するステアリング制御が行われ処理が実行される(図7のU-Plane-(3))。DPI装置40Bは処理が完了した後、処理結果および制御結果をPCRF200に通知する。
PCRF200は、DPI装置40Bからの通知を受信し、PCEF/DPI100に対する制御指示を送信する。すなわち、PCRF200は、PCEF/DPI100にRARを送信する(図7の(5))。PCEF/DPI100は、PCRF200にRAAを返し(図7の(6))、制御を実行する。SSL暗号化/復号化装置30Bは、DPI装置40B等での処理が完了すると再び通信フローを暗号化してPCEF/DPI100に送信する。なお、図7中、「U-Plane」はユーザプレーンを意味する。
(第2の実施形態の効果)
このように、第2の実施形態に係る制御処理対象フロー絞り込み方法は、SSLに基づき暗号化された通信フローを復号化することによって当該通信フローに対してDPIを実行することの要否を、当該通信フローを復号化せずに取得できる当該通信フローの内容に基づいて判定する判定工程を含む。また、制御処理対象フロー絞り込み方法は、DPIの実行要と判定された通信フローを復号化してDPIを実行し、DPIの実行不要と判定された通信フローを復号化せずに送信先へ転送する工程を含む。
このため、SSL暗号化された通信フローであっても、復号化せずに抽出できる情報を基に、復号化の要否を判定して制御することができる。このため、暗号化された通信フローが制御対象の場合であっても、制御処理対象とする通信フローを効率的に絞り込むことができる。
また、第2の実施形態に係る制御処理対象フロー絞り込み方法においては、通信フローに対してDPIを実行することの要否の判定は、通信フローのクライアントハローメッセージに含まれるレコードヘッダ情報またはサーバ証明書に基づいて行う。このため、暗号化された通信フローであっても容易に信頼度を判定して、復号化してウィルスチェック等の検査まで行うか否かを判断することができる。
また、第2の実施形態に係る制御処理対象フロー絞り込み方法においては、DPIの実行要と判定された通信フローに対するDPIの実行結果のフィードバックを受けて、DPIの実行要否判定に利用する。このため、DPI結果を利用してさらに処理対象とするフローを絞り込むことができ、処理効率を累進的に高めることができる。
また、第2の実施形態に係る制御処理対象フロー絞り込み方法は、フィードバックを受けて、DPIの実行要の通信フローとDPIの実行不要の通信フローとを当該通信フローの送信先URLに基づいて分類し記憶部に格納する格納工程をさらに含む。また、記憶部は、複数のPCRFおよびPCEFが共用してもよい。このため、DPIの実行結果を記憶して、他のPCRFやPCEF/DPIが共有し利用することができ、さらに処理効率を高めることができる。
(第3の実施形態)
なお、図5の第2の実施形態の構成例では、SSL暗号化/復号化装置30BとPCRF200とは直接接続しない構成とした。しかし、これに限定されず、たとえば、SSL暗号化/復号化装置30BとPCRF200とを接続して、SSL暗号化/復号化装置30BとPCRF200とが連携するように構成してもよい。
たとえば、DPI処理の結果、以後DPIが不要と判断された場合等に、SSL暗号化/復号化装置30BからPCRF200にDPIステアリングを停止するよう通知する。そして、PCRF200がステアリング停止設定を実行し、PCEF/DPI100に指示するよう構成してもよい。
たとえば、図5においてSSL暗号化/復号化装置30BとPCRF200との間が接続されているとする。この場合に、SSL暗号化/復号化装置30Bは、復号化結果をPCRF200に送信する。PCRF200は、受信した復号化結果にもとづき、当該データをDPI装置40Bへステアリングするか否かを決定する。またPCRF200は、受信した復号化結果に基づき、ウィルスチェック41等のDPI装置40B配下に配置されるサービスを使用するか否かを決定する。すなわち、PCRF200は、復号化されたフローをDPI装置40B配下のサービスに送信するか否かを決定する。PCRF200は、決定した内容をSSL暗号化/復号化装置30Bに指示する。
SSL暗号化/復号化装置30Bは、PCRF200からの指示を受信して、DPI装置40Bによる処理およびDPI装置40B配下のサービスを利用するか否か判別する。たとえば、SSL暗号化/復号化装置30Bは、ウィルスチェック機能41、ツイッター保管庫、オプティマイズ機能43等のDPI装置40B配下のサービスを利用するか否かを判別する。そして、SSL暗号化/復号化装置30BからDPI装置40Bに指示してDPIおよび付加的なサービスのうち、利用すると判別された処理を実行する。
また、DPIを仮想化して、複数のSSL暗号化/復号化装置がDPIを共用することができるように構成してもよい。
(プログラム)
図8は、開示の技術に係る制御処理対象フロー絞り込みプログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図8に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブ1080と、ネットワークインタフェース1070とを有する。コンピュータ1000の各部はバス1100によって接続される。
メモリ1010は、図8に例示するように、ROM1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。
ここで、図8に例示するように、ハードディスクドライブ1080は、例えば、OS1081、アプリケーションプログラム1082、プログラムモジュール1083、プログラムデータ1084を記憶する。すなわち、開示の実施の形態に係る制御処理対象フロー絞り込みプログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール1083として、例えばハードディスクドライブ1080に記憶される。
また、制御処理対象フロー絞り込みプログラムによる情報処理に用いられるデータは、プログラムデータ1084として、例えばハードディスクドライブ1080に記憶される。そして、CPU1020が、ハードディスクドライブ1080に記憶されたプログラムモジュール1083やプログラムデータ1084を必要に応じてRAM1012に読み出し、各種の手順を実行する。
なお、制御処理対象フロー絞り込みプログラムに係るプログラムモジュール1083やプログラムデータ1084は、ハードディスクドライブ1080に記憶される場合に限られない。例えば、プログラムモジュール1083やプログラムデータ1084は、着脱可能な記憶媒体に記憶されてもよい。この場合、CPU1020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、制御処理対象フロー絞り込みプログラムに係るプログラムモジュール1083やプログラムデータ1084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。この場合、CPU1020は、ネットワークインタフェース1070を介して他のコンピュータにアクセスすることで各種データを読み出す。
[その他]
なお、本実施形態で説明した制御処理対象フロー絞り込みプログラムは、インターネット等のネットワークを介して配布することができる。また、制御処理対象フロー絞り込みプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
なお、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
上記の実施形態やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。