(57)【特許請求の範囲】
【請求項１】
ユーザ端末とウェブサーバとのＨＴＴＰプロトコルを用いた通信に対してＵＲＬフィルタリングを行う、ファストパス機能を有するＵＲＬフィルタリング装置であって、
上記ユーザ端末と上記ウェブサーバとの間で送受信されるパケットを中継するパケット転送処理部と、
パケット転送処理部を通過するＴＣＰパケットのヘッダ部分を読み取りＴＣＰ層の処理を行うＴＣＰ層パケット処理部と、
上記ＴＣＰパケットのデータ部分に含まれるＨＴＴＰ構文を読み取り解析を行うＨＴＴＰ構文解析処理部と、
上記の解析されたＨＴＴＰ構文に含まれるＵＲＬへのアクセスを通過させるか否かを判定処理する要求アドレス通過判定処理部と、
上記ファストパス機能によってファストパスを行うか否かの条件を一時的に保持するファストパス判断テーブルと
を備えており、
上記ＨＴＴＰ構文解析処理部は、受信完了したＨＴＴＰヘッダ部でＨＴＴＰメッセージのサイズ情報を取得した際には、上記ＴＣＰ層パケット処理部に対してＨＴＴＰメッセージのサイズ情報を通知する転送量通知機能を実行し、
上記サイズ情報を取得したＴＣＰ層パケット処理部は、その上記サイズ情報から、転送されるＨＴＴＰメッセージのシーケンス番号の上限値を計算して、その上限値以下のシーケンス番号でありファストパスの対象となるファストパス条件を上記ファストパス判断テーブルへ設定する第一ファストパス登録機能を実行し、
上記パケット転送処理部は、受信したパケットについて上記ファストパス判断テーブルのファストパス条件に合致するパケットをファストパスさせるファストパス判断機能を実行するＵＲＬフィルタリング装置。
【請求項２】
ユーザ端末とウェブサーバとのＨＴＴＰプロトコルを用いた通信に対してＵＲＬフィルタリングを行う、ファストパス機能を有するＵＲＬフィルタリング装置であって、
上記ユーザ端末と上記ウェブサーバとの間で送受信されるパケットを中継するパケット転送処理部と、
パケット転送処理部を通過するＴＣＰパケットのヘッダ部分を読み取りＴＣＰ層の処理を行うＴＣＰ層パケット処理部と、
上記ＴＣＰパケットのデータ部分に含まれるＨＴＴＰ構文を読み取り解析を行うＨＴＴＰ構文解析処理部と、
上記の解析されたＨＴＴＰ構文に含まれるＵＲＬへのアクセスを通過させるか否かを判定処理する要求アドレス通過判定処理部と、
上記ファストパス機能によってファストパスを行うか否かの条件を一時的に保持するファストパス判断テーブルと
を備えており、
一のＴＣＰセッションに対して、
上記ＨＴＴＰ構文解析処理部は、受信したＨＴＴＰヘッダ部のＨＴＴＰバージョンが１．０であるか、又はＨＴＴＰヘッダ部のＣｏｎｎｅｃｔｉｏｎにＣｌｏｓｅが指定されている際には、上記ＴＣＰ層パケット処理部に対して、同一ＴＣＰセッションの全パケットをファストパス通過対象とする通知をするファストパス通達機能を実行し、
上記の通過対象とする通知を受けたＴＣＰパケット処理部は、上記同一ＴＣＰセッションの全パケットをファストパスの対象とするファストパス条件を上記ファストパス判断テーブルに設定する第二ファストパス登録機能を実行し、
上記パケット転送処理部は、受信したパケットについて上記ファストパス判断テーブルのファストパス条件に合致するパケットをファストパスさせるファストパス判断機能を実行するＵＲＬフィルタリング装置。
【請求項３】
上記ＨＴＴＰ構文解析処理部は、受信したＨＴＴＰヘッダ部のＨＴＴＰバージョンが１．０であるか、又はＨＴＴＰヘッダ部のＣｏｎｎｅｃｔｉｏｎにＣｌｏｓｅが指定されている際には、上記ＴＣＰ層パケット処理部に対して、同一ＴＣＰセッションの全パケットをファストパス通過対象とする通知をするファストパス通達機能を実行し、
上記の通過対象とする通知を受けたＴＣＰパケット処理部は、上記同一ＴＣＰセッションの全パケットをファストパスの対象とするファストパス条件を上記ファストパス判断テーブルに設定する第二ファストパス登録機能を実行する、
請求項１に記載のＵＲＬフィルタリング装置。
【請求項４】
上記ＨＴＴＰ構文解析処理部は、
ＨＴＴＰヘッダ部にＴｒａｎｓｆｅｒ−Ｅｎｃｏｄｉｎｇが指定されており、その指定がｉｄｅｎｔｉｔｙで無い場合には、上記転送量通知機能を実行させないものとする、
請求項１又は３に記載のＵＲＬフィルタリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＵＲＬフィルタリングの高速化に向けたパケット転送装置に関する。
【背景技術】
【０００２】
ユーザ端末がネットワークにアクセスするにあたり、ウイルスやワームが仕掛けられたサイトや、フィッシングサイト、成人向けサイトといった規制対象サイトにアクセスしないように、規制対象となるサイトへのアクセスをＵＲＬごとに遮断するＵＲＬフィルタリングが一般に行われている。家庭用ホームゲートウェイなどのゲートウェイにおいてＵＲＬフィルタリングする場合には、ユーザ端末から送信されるＨＴＴＰリクエストの中のＵＲＬアクセスメッセージを検出し、当該ＵＲＬへのアクセスの可否を、規制対象サイトのＵＲＬ一覧をデータベースとして保持するサーバに問い合わせて確認し、ＨＴＴＰリクエストを通過させるか遮断するかを判断している。
【０００３】
ゲートウェイ上でユーザ端末から送信されるＨＴＴＰリクエスト中のＵＲＬアクセスメッセージを検出するには、例えば次のような方法が挙げられる。まず第一の方法としては、ゲートウェイ上でＨＴＴＰプロキシを提供し、ＨＴＴＰ通信を一旦ゲートウェイ上で終端中継する。しかしこの方法は、ゲートウェイ上でＨＴＴＰ／ＴＣＰ通信を一旦終端し、ＨＴＴＰヘッダ情報の修正などの処理を行う必要があるため、ゲートウェイにかかる処理負担が大きく、転送性能は大きく劣化してしまう。
【０００４】
これに対して第二の方法として、ＨＴＴＰ／ＴＣＰ通信をゲートウェイ上で終端させることなく、中継するパケットのペイロード内容を解析し、パケット中のＨＴＴＰヘッダ情報を読み取って、リクエストを通過させるか否かを判断させる方法がある。しかし、ホームゲートウェイなどに用いるＣＰＵに搭載されている、高速パケット転送用の機構である「ファストパス」は、ＩＰ、ＴＣＰヘッダのビットのみを読み取って処理することで高速化するものであり、ヘッダより先のペイロードを解析しなければならないこの第二の方法では「ファストパス」が利用できない。そのため、この方法でも転送速度の低下を招くことになる。
【０００５】
特許文献１には、上記の第二の方法において、ダウンリンクのみファストパスを適用し、転送性能を改善する方式が提案されている。これは、受信したパケットのＴＣＰヘッダを解析してＵＲＬアクセス要求メッセージでない、すなわちダウンロードされるファイルのパケットについては、それを要求するＨＴＴＰリクエストの段階で遮断すべきか否かの判断が既に終わって通過が認められたものであると判断して、ファストパスで処理するようにしたものである。
【０００６】
また、特許文献２には、ＶＰＮ（ＶｉｒｔｕａｌＰｒｉｖａｔｅＮｅｔｗｏｒｋ）におけるＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  ＩＰ）ゲートウェイにおいて、ＶｏＩＰパケットをファストパス処理することが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−２４４１３４号公報
【特許文献２】特開２０１１−１１４３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の方法では、あくまで要求を確認した後のダウンリンクのみしかファストパスを適用できず、クラウドを利用するようなアップリンクも多いケースでは十分にファストパスを活用できなかった。
【０００９】
また、特許文献２に記載の方法ではＶｏＩＰやそれに類似するストリーミング形式のデータパケットに対してしかファストパスを活用できなかった。
【００１０】
そこでこの発明は、ＵＲＬフィルタリングシステムとしてゲートウェイを用いる際に、アップリンクダウンリンクの区別無く、汎用的にファストパスを活用してゲートウェイにおける転送処理を高速化することを目的とする。
【課題を解決するための手段】
【００１１】
この発明の第一の実施手段としては、ＵＲＬフィルタリング装置に
上記ユーザ端末と上記ウェブサーバとの間で送受信されるパケットを中継するパケット転送処理部と、パケット転送処理部を通過するＴＣＰパケットのヘッダ部分を読み取りＴＣＰ層の処理を行うＴＣＰ層パケット処理部と、上記ＴＣＰパケットのデータ部分に含まれるＨＴＴＰ構文を読み取り解析を行うＨＴＴＰ構文解析処理部と、上記の解析されたＨＴＴＰ構文に含まれるＵＲＬへのアクセスを通過させるか否かを判定処理する要求ＵＲＬ通過判定処理部とともに、
上記ファストパス機能によってファストパスを行うか否かの条件を一時的に保持するファストパス判断テーブルを有するものとし、
上記ＨＴＴＰ構文解析処理部は、受信完了したＨＴＴＰヘッダ部でＨＴＴＰメッセージのサイズ情報を取得した際には、上記ＴＣＰ層パケット処理部に対してＨＴＴＰメッセージのサイズ情報を通知する転送量通知機能を実行し、
上記サイズ情報を取得したＴＣＰ層パケット処理部は、その上記サイズ情報から転送すべきＨＴＴＰメッセージのシーケンス番号の上限値を計算して、その上限値以下のシーケンス番号でありファストパスの対象となるファストパス条件を上記ファストパス判断テーブルへ設定する第一ファストパス登録機能を実行し、
上記パケット転送処理部は、受信したパケットについて上記ファストパス判断テーブルのファストパス条件に合致するパケットをファストパスさせるファストパス判断機能を実行するものとすることで、上記の課題を解決したのである。
【００１２】
すなわち、ＨＴＴＰメッセージのサイズ情報（Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ）を見れば、そのＨＴＴＰアクセスでアップロード又はダウンロードされるファイルの実サイズが分かる。このため、シーケンス番号の初期値にこのファイルの実サイズを加算すれば、最後の一連のファイルを転送する最後のパケットのとりうるシーケンス番号の最大値がわかる。より具体的には、シーケンス番号の初期値に「Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ」の値を加算した後、最後のパケット分に相当するＵＲＬフィルタリング装置のＭＲＵ（ＭａｘｉｍｕｍＲｅｃｅｉｖｅＵｎｉｔ）を引いた値が、そのファイルの最後に流れてくるパケットのシーケンス番号の最大値となる。よって、この最大値以下のシーケンス番号を有するパケットは、既にＵＲＬフィルタリングで通過との判定が終わっている一連のパケットであるとわかるので、ＨＴＴＰのペイロードを見ることなくヘッダ部分のシーケンス番号を確認することで、ファストパス処理が可能であると判断できる。
【００１３】
また、この発明の第二の実施手段として、
上記ＨＴＴＰ構文解析処理部は、受信したＨＴＴＰヘッダ部のＨＴＴＰバージョンが１．０であるか、又はＨＴＴＰヘッダ部のＣｏｎｎｅｃｔｉｏｎにＣｌｏｓｅが指定されている際には、上記ＴＣＰ層パケット処理部に対して、同一ＴＣＰセッションの全パケットをファストパス通過対象とする通知をするファストパス通達機能を実行し、
上記の通過対象とする通知を受けたＴＣＰパケット処理部は、上記同一ＴＣＰセッションの全パケットをファストパスの対象とするファストパス条件を上記ファストパス判断テーブルに設定する第二ファストパス登録機能を実行し、
上記パケット転送処理部は、受信したパケットについて上記ファストパス判断テーブルのファストパス条件に合致するパケットをファストパスさせるファストパス判断機能を実行するものとすることでも実行できる。
【００１４】
ＨＴＴＰ／１．０ではファイルごとにセッションを確立するため、既にフィルタリングを通過して、セッションが確立されたＨＴＴＰ／１．０での通信については、そのセッションの終わりまでは同一ファイルのダウンロード又はアップロードであると分かるので、同一ＴＣＰセッションをまとめてファストパスで処理することができる。Ｃｏｎｎｅｃｔｉｏｎにｃｌｏｓｅが設定されている場合も、そのＴＣＰセッションの最後のファイルの送信であることが確立しているので、同一ＴＣＰセッションはまとめてファストパスで処理することができる。
【００１５】
第一の実施方法と第二の実施方法は両立できる。同一ＴＣＰセッションでまとめてファストパス処理できるものと、一のＴＣＰセッションの中でシーケンス番号が最大値以下であると判断してファストパス処理できるものとがあると、それぞれどちらもファストパス処理できるので、その分処理全体を軽くできる。
【００１６】
ただし、Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈで判断する場合、ＨＴＴＰヘッダ部にＴｒａｎｓｆｅｒ−Ｅｎｃｏｄｉｎｇが指定されており、その指定がｉｄｅｎｔｉｔｙで無い場合には、上記転送量通知機能を実行させないものとする。いわゆる生データではなく圧縮されているために長さが単純にＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈ分の加算とはならないためである。
【発明の効果】
【００１７】
この発明により、アップロード及びダウンロードの区別なく、既にＵＲＬフィルタリングを通過したアドレスとのＨＴＴＰ通信については、ファストパスで処理できるパケットの数を増やし、ＵＲＬフィルタリング装置の転送処理性能を向上させることができる。
【図面の簡単な説明】
【００１８】
【図１】この発明にかかるＵＲＬフィルタリング装置の機能ブロック図
【図２】この発明にかかるＵＲＬフィルタリング装置の機能フロー例の前半図
【図３】この発明にかかるＵＲＬフィルタリング装置の機能フロー例の後半図
【図４】ＨＴＴＰ構文解析処理部がファストパス登録の通知を出す際のフロー例図
【図５】（ａ）Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈを指定されたＨＴＴＰヘッダの例、（ｂ）Ｃｏｎｎｅｃｔｉｏｎ：ｃｌｏｓｅを指定されたＨＴＴＰヘッダの例
【図６】ファストパス判断テーブルの例図
【図７】ファストパス判断部のフロー図
【発明を実施するための形態】
【００１９】
以下、この発明について具体的な実施形態の例を挙げて詳細に説明する。
図１は、この発明にかかるＵＲＬフィルタリング装置１１の機能ブロック図及びそれと通信する装置について示す構成図である。
【００２０】
ＵＲＬフィルタリング装置１１は、ユーザ端末１２と、ウェブサーバ１３との間にある中継装置であり、例えば家庭用ルータなどのホームゲートウェイのようなゲートウェイとして機能する装置である。具体的には、ユーザ端末１２からのＨＴＴＰ通信と、ウェブサーバ１３からのＨＴＴＰ通信を中継するとともに、別途運営されているアクセス規制対象となるＵＲＬリストのデータベースを保有するセキュリティサーバ１４に当該ＨＴＴＰ通信のアクセス要求先へのアクセスが規制されているか否かを確認し、規制されている場合にはそのアクセスを遮断する装置である。
【００２１】
ユーザ端末１２は、パソコン、スマートフォン、タブレット端末など、ＨＴＴＰ通信を行う端末であれば特に限定されない。
【００２２】
ウェブサーバ１３は、ユーザ端末１２からのリクエストに応じてコンテンツを送信するＨＴＴＰサーバ機能を有するサーバである。図１中では一つであるが、実際には多数のサーバがインターネット上に存在しており、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）によって指定される。
【００２３】
セキュリティサーバ１４は、アクセスを規制するページのアドレスを保有するデータベースを有し、ＵＲＬフィルタリング装置１１からの照会に対して、それがフィルタリングで遮断すべきページか否かを応答可能なサーバである。例えば、セキュリティ会社などが運営するものであったり、会社内で独自に用意するものであったりしてもよい。
【００２４】
これらの装置間での通信に対して、ＵＲＬフィルタリング装置１１は、通過するパケットに対してルーティング機能４１を発揮するパケット転送処理部２１と、パケットのＴＣＰ層の処理を行う処理を行うＴＣＰ層パケット処理部２２と、パケットのデータ部内にあるＨＴＴＰ構文を解析するＨＴＴＰ構文解析処理部２３と、セキュリティサーバ１４に照会して接続要求先のアドレスが遮断されるべきものか否かを判定する要求アドレス通過判定処理部２４と、遮断する際のエラーメッセージや代替テキストを供給するＨＴＴＰ＋応答作成処理部２５と、ＴＣＰ終端処理を行うＴＣＰ終端処理部２６と、後述するファストパス機能４２を実行してファストパスを行うか否かの条件を一時的に保持するファストパス判断テーブル２７とを有する。
【００２５】
このうち各部（２１〜２６）は独立したチップでもよいし、ソフトウェア上で実現するものでもよい。ＵＲＬフィルタリング装置１１は、これらを実現するための処理部たるプロセッサと、記憶部たる揮発性メモリ及び不揮発性メモリを有する。このうち、プロセッサはパケットのヘッダ部分のみを読み取って高速で転送処理を行う、いわゆる「ファストパス」機能を有するものである必要がある。また、ファストパス判断テーブル２７は、記憶部に存在するテーブルデータである。
【００２６】
ＵＲＬフィルタリング装置１１は、ユーザ端末１２からウェブサーバ１３へ向かうアップリンクのデータの経路であるアップパケット経路５１と、ウェブサーバ１３からユーザ端末１２へのダウンリンクのデータ経路であるダウンパケット経路５２とを有する。
なお、アップパケット終端経路５３はユーザ端末１２からＵＲＬフィルタリング装置１１への上り方向の終端処理を行う場合の経路であり、ダウンパケット終端経路５４は、ウェブサーバ１３からＵＲＬフィルタリング装置１１への下り方向の終端処理を行う場合の経路である。
【００２７】
本願発明において、ファストパス機能４２を発揮させるか否かの判断は、上記の経路のうち、アップパケット経路５１と、ダウンパケット経路５２を通るパケットに対して実行する。
【００２８】
これらの構成を有するＵＲＬフィルタリング装置１１の動作を、図２及び図３を用いて、情報処理の流れに沿って説明する。まず（Ｓ１００）、ＨＴＴＰ通信の前に、新規なＴＣＰセッションを確立する（Ｓ１０１）。このセッションの確立は、一般的な３ｗａｙ−ｈａｎｄｓｈａｋｅの処理による。すなわち、ユーザ端末１２が、接続要求であるＳＹＮパケットをＵＲＬフィルタリング装置１１経由でウェブサーバ１３に送信し、ウェブサーバ１３は接続許可であるＡＣＫパケットと、接続要求であるＳＹＮパケットとを組み合わせてユーザ端末１２に返送する。これに対してユーザ端末１２がＡＣＫパケットを返答する。以上の三手順を経てユーザ端末１２とウェブサーバ１３との間のコネクションが確立する。より具体的には、このときパケット転送処理部２１は、受信するパケットのプロトコルの種別、宛先と送信元のＩＰアドレス及びポート番号等に基づいて、ＨＴＴＰセッションに属するＴＣＰパケットを判別し、ＨＴＴＰセッションであると判別されたＴＣＰパケットをＴＣＰ層パケット処理部２２に通知するセッションパケット抽出機能４６を実行する。ＴＣＰ層パケット処理部２２は、パケット転送処理部２１から受け取ったパケットが、３ｗａｙ−ｈａｎｄｓｈａｋｅのためのパケットであると判別したらこれをそのままパケット転送処理部２１へ出力する開始パケット経過機能６２を実行し、パケット転送処理部２１はルーティング機能４１によりこれをそれぞれの宛先（ユーザ端末１２又はウェブサーバ１３）へ向けて転送する。これが一往復半されて３ｗａｙ−ｈａｎｄｃｈａｋｅが成立する。
【００２９】
ＴＣＰセッションが確立した後、ユーザ端末１２は、ブラウザソフトその他のソフトが有するＨＴＴＰ通信機能４５により、アクセスを要求するＨＴＴＰメソッド及びＵＲＬを含むＴＣＰパケットを送信する（Ｓ１１１）。ＨＴＴＰメソッドは、一般的には、ダウンリンクであればＧＥＴであり、アップリンクであればＰＯＳＴである。このＴＣＰパケットを受信したＵＲＬフィルタリング装置１１は次のような処理を行う。まず、この時点ではファストパスの処理の有無が決まっていないので（Ｓ１１２）、パケット転送処理部２１のセッションパケット抽出機能４６が、この受信したＴＣＰパケットをＴＣＰ層パケット処理部２２に転送する（Ｓ１１３）。ＴＣＰ層パケット処理部２２は、そのパケットを保持しながらＴＣＰパケットのデータ部（ペイロード）を抽出するペイロード抽出機能６３を実行し（Ｓ１１４）、抽出したペイロードをＨＴＴＰ構文解析処理部２３へ送るペイロード転送機能６４を実行する（Ｓ１１５）。
【００３０】
なおここで、ペイロードとしてＵＲＬを抽出した際には、そのＵＲＬについてキャッシュ３０に問い合わせるキャッシュ問合機能７０を実行するとよい。後述するように既に判定が終わっているＵＲＬへの二度目のアクセスである場合に、以下に記載のＨＴＴＰ構文解析処理部２３や要求アドレス通過判定処理部２４での処理を行うまでもなく、速やかに遮断すればよいからである。よって、問い合わせの結果、当該ＵＲＬへのアクセスが不可であれば、ＴＣＰ層パケット処理部２２は、ＨＴＴＰ応答作成処理部２５へ直接に、拒否対応指示機能８６（後述する８３と同様の内容）を実行すると速やかな処理ができる。
【００３１】
ＨＴＴＰ構文解析処理部２３では、まず受け取ったペイロードがＨＴＴＰであるか否かを判断するＨＴＴＰ判別機能７１を実行する（Ｓ１２１）。ペイロードがＨＴＴＰでなかったら、そのセッションの通信はＨＴＴＰではないということであり、以後そのセッションのデータは中身を解析しようがないので、ファストパスで処理することになる。そこでＨＴＴＰ構文解析処理部２３のファストパス通達機能７２は、ＴＣＰ層パケット処理部２２へ、当該セッションをファストパスで処理するように通知する（Ｓ１２２）。ＴＣＰ層パケット処理部２２は、第二ファストパス登録機能３４を実行して、ファストパス判断テーブル２７に、当該セッションをファストパスで処理する旨を登録する（Ｓ１２３）。その上で、ＴＣＰ層パケット処理部２２は、保持していたパケットをパケット転送処理部２１へ返送するパケット返送機能６５を実行し（Ｓ１２４）、以後はアップパケット経路５１又はダウンパケット経路５２をファストパスで通過させるように登録する（Ｓ１２５）。
【００３２】
なお、上記のフローのＳ１２１〜Ｓ１２５に対応する例外として、ＴＣＰ層パケット処理部が受け取ったパケットが、ＴＣＰ層のヘッダまでしか存在せず、ペイロードが実質的に存在していない場合は、そのパケットをＴＣＰ層で終端するように、ＴＣＰ終端処理部２６へ要求する終端処理指示機能９８を実行する。
【００３３】
上記のＨＴＴＰ判別機能７１での判断においてペイロードがＨＴＴＰであれば（Ｓ１２１）、ＨＴＴＰ構文解析処理部２３は、ＧＥＴ又はＰＯＳＴのＨＴＴＰメソッドとしてＨＴＴＰ構文の一行目に記載されているアドレスを、要求アドレス通過判定処理部２４へ転送する判定要求機能７３を実行する（Ｓ１３１）。なお、この判定要求機能７３はＨＴＴＰヘッダを全て受信してから実行してもよいが、アドレスはＨＴＴＰ構文の一行目にあるため、一行目を受信した段階でこの判定要求機能７３を実行してもよい。
【００３４】
要求アドレス通過判定処理部２４は、転送されてきたアドレスについて、規制対象となるアドレス群を記録した規制対象データベースを有するセキュリティサーバ１４に対して、規制対象のアドレスであるか否かを照会する接続可否問合機能８１を実行する（Ｓ１３２）。セキュリティサーバ１４はこの照会に対して、規制対象データベースを検索して、規制対象であるか否かを返答する接続可否返答機能８２を実行する（Ｓ１３３）。なお、規制対象データベースは必ずしも外部サーバに置いておく必要はなく、応答速度を優先するためにＵＲＬフィルタリング装置１１内に保持していてもよい。ただし、規制対象となるアドレスの更新等、装置への負担はかかる。
【００３５】
上記の接続可否返答機能８２による返答が、規制対象であるとの内容であった場合（Ｓ１３４→Ｓ１４１）、要求アドレス通過判定処理部２４は、ＨＴＴＰ応答作成処理部２５に対して、その結果を通知するとともにＴＣＰ終端処理の開始を指示する拒否対応指示機能８３を実行する（Ｓ１４２）。ＨＴＴＰ応答作成処理部２５は、通知された結果に対応する応答メッセージが含まれるＨＴＭＬドキュメントを生成するメッセージ生成機能９１を実行する（Ｓ１４３）。応答メッセージとしては、規制対象であることを示す「４０３  ｆｏｒｂｉｄｄｅｎ」であったり、それに関連する英語や日本語等の説明を加えたＨＴＭＬドキュメントであるとよい。またそれとともにＨＴＴＰ応答作成処理部２５は、ＴＣＰ終端処理部２６へＴＣＰ終端処理の開始を指示する終端処理指示機能９２を実行し（Ｓ１４４）、作成したＨＴＭＬドキュメントを送信する。
【００３６】
ＴＣＰ終端処理部２６は、ユーザ端末１２との通信経路を、アップパケット終端経路５３に変更させ、ウェブサーバ１３との通信経路をダウンパケット終端経路５４に変更する経路終端変更機能９３を実行する（Ｓ１４５）。その上で、ＨＴＴＰ応答作成処理部が生成したメッセージをユーザ端末１２へ送信するアクセス拒否通知機能９４を実行するとともに（Ｓ１４６）、ユーザ端末１２に対して当該ＴＣＰセッションの終端処理を行う端末切断機能９５を実行する（Ｓ１４７）。具体的には、ＦＩＮ／ＡＣＫパケットの往復による。さらに、ウェブサーバ１３に対しても、当該ＴＣＰセッションの終端処理を行うサーバ切断機能９６を実行する。これも具体的にはＦＩＮ／ＡＣＫパケットの往復による（Ｓ１４７）。その上で、当該ＵＲＬへのアクセスが不可である情報を、ＵＲＬ又はＨＴＴＰの構文情報とともにキャッシュ３０に記録するキャッシュ記録機能９７を実行する（Ｓ１４８）。キャッシュ３０は時間制限付きでこれらの情報をデータベースとして保持する。これで当該ＴＣＰセッションは終了する（Ｓ１４９）。なお、これらの終端処理とキャッシュ３０への書き込みとは順番が前後してもよい。
【００３７】
「次に、上記の接続可否返答機能８２による返答が、規制対象ではないとの返答であった場合（Ｓ１４１）、要求アドレス通過判定処理部２４は、要求のあったアドレスへの転送を許可する旨をＨＴＴＰ構文解析処理部２３へ指示する許可対応指示機能８４を実行する（Ｓ１５１）。
これを受けたＨＴＴＰ構文解析処理部２３は、上記のファストパス通達機能７２及び転送量通知機能３１（後述）を実行し、通知を受けたＴＣＰ層パケット処理部２２は、第一ファストパス登録機能３２、第二ファストパス登録機能３４を実行する（Ｓ１５２）。
【００３８】
このファストパス登録機能を含めた、ＨＴＴＰ構文解析処理部２３内でファストパス登録機能（３２，３４）を実行するか否かを判断するファストパス判断機能３３を構成する一連の機能の実行フローについて、図４を用いて説明する。ＴＣＰ層パケット処理部２２からデータを受信すると（Ｓ１１５）、それがＨＴＴＰであるか否かを判断するＨＴＴＰ判別機能７１を実行し（Ｓ１２１）、ＨＴＴＰでなければＴＣＰ層パケット処理部２２へファストパス処理を通知する（Ｓ１２２）。通知を受け取ったＴＣＰ層パケット処理部２２は、第二ファストパス登録機能３４を実行する（Ｓ１２３）。このフローまでは上記の通りである。
【００３９】
ＨＴＴＰであれば、Ｓ１３１以降の外部処理を経て、ＨＴＴＰの指定するアドレスが規制対象であるか否かを判別する。規制対象であれば上記の通りセッションが終了し（Ｓ１４８まで）、規制対象でない場合、ＨＴＴＰヘッダを全て受信した上で（Ｓ２１１）、Ｓ１５２として次のような判断を行う。なお、参考までにＨＴＴＰヘッダの例を図５（ａ）、（ｂ）に示す。まず、ＨＴＴＰのバージョンが１．１以上であるか否かについて判断するバージョン判定機能７４を実行する（Ｓ２１２）。１．１より低いバージョン、すなわちＨＴＴＰ／１．０であった場合、規定上一つのセッションについて一つのファイルしか送信しないため、当該セッションについては、既に規制対象となるアドレスとの通信ではないことが確認されたそのファイルの送受信が終わるセッションの終了まで、ファストパスで通過して構わないということになる。従って、ＨＴＴＰ／１．０であったら、ＴＣＰ層パケット処理部２２へ当該セッションについて以後のファストパス処理をするよう通知するファストパス通達機能７２を実行する（Ｓ１２２）。これを受けたＴＣＰ層パケット処理部２２は、第二ファストパス登録機能３４を実行して、同一ＴＣＰセッションの全パケットをファストパス中継するようにファストパス判断テーブル２７に登録する（Ｓ１２３）。
【００４０】
なお、ＨＴＴＰのバージョンは、ＨＴＴＰヘッダの一行目に記載されるため、上記のバージョン判定機能７４の実行は、必ずしもＨＴＴＰヘッダ部の受信を全て終えてから行わなくてもよい。具体的には、Ｓ２１１とＳ２１２の順番は逆でもよい。
【００４１】
次に、ＨＴＴＰヘッダ中の「Ｃｏｎｎｅｃｔｉｏｎ」の項目が、図５（ａ）のような「ｋｅｅｐ−ａｌｉｖｅ」ではなく、図５（ｂ）のような「ｃｌｏｓｅ」に成っているかいなかを判断するコネクション判定機能７５を実行する（Ｓ２１３）。ＨＴＴＰ／１．１以降では、一のＴＣＰセッションで複数のファイルを送ることができるが、「Ｃｏｎｎｅｃｔｉｏｎ：ｃｌｏｓｅ」が指定されている場合は、それが当該ＴＣＰセッションにおいて最後に送信すべきファイルであって、当該ファイルの送信後はＴＣＰセッションを閉じることを意味する。従って、そのＴＣＰセッションでは、既に規制対象ではないとの判定を終えたそのＨＴＴＰデータが最後の送信分となるため、当該ＴＣＰセッションについては、最後までファストパスで処理してよいということになる。従って、ＴＣＰ層パケット処理部２２へ当該セッションについて以後のファストパス処理をするよう通知するファストパス通達機能７２を実行する（Ｓ１２２）。これを受けたＴＣＰ層パケット処理部２２は、第二ファストパス登録機能３４を実行して、同一ＴＣＰセッションの全パケットをファストパス中継するようにファストパス判断テーブル２７に登録する（Ｓ１２３）。
【００４２】
次に、ＨＴＴＰヘッダに、Ｔｒａｎｓｆｅｒ−Ｅｎｃｏｄｉｎｇが指定されているか否か（Ｓ２１４）、そして、指定されているのならば、その項目がｉｄｅｎｔｙｔｙ」であるか否か（Ｓ２１５）を判断する転送エンコーディング判定機能７６を実行する。これは、Ｔｒａｎｓｆｅｒ−Ｅｎｃｏｄｉｎｇの項目に「Ｃｈｕｎｋｅｄ」が指定されていると、厚切りエンコーディングされて送信されるので、実際に送信されるデータ量が、本来送信されるべきデータの大きさと完全には一致しないことがある。この場合、後述するＣｏｎｔｅｎｔ−Ｌｅｎｇｔｈの数値では実際に送られるデータサイズが予見できなくなるので、ファストパスへの登録は行わず、すなわち転送量通知機能３１を実行せず、通常の転送処理を行うことになる（Ｓ２１７）。一方、Ｔｒａｎｓｆｅｒ−Ｅｎｃｏｄｉｎｇの項目が無ければ、データサイズの変更は無いということであり（Ｓ２１４→Ｓ２１６）、Ｔｒａｎｓｆｅｒ−Ｅｎｃｏｄｉｎｇの項目があっても、「ｉｄｅｎｔｉｔｙ」と指定されていれば同じくデータサイズの変更は無いということであるので（Ｓ２１５→Ｓ２１６）、次のデータ長判定機能７７の実行（Ｓ２１６）へ移る。
【００４３】
ＨＴＴＰヘッダが、図５（ａ）のように、Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈを指定しているのであれば（Ｓ２１６）、そのＨＴＴＰ通信で送信されるＨＴＴＰメッセージのサイズ情報をその値から取得することができる。そこで、当該ＴＣＰセッションについて、その取得されたサイズ情報の値の分だけデータが転送される間は、そのウェブサーバ１３との通信は、既に規制対象ではないとのフィルタリングを通過したアドレスとの通信であることが確約できるため、そのＨＴＴＰメッセージのサイズ情報分だけの通信については、ファストパスで処理するようにＴＣＰ層パケット処理部２２へ通知する転送量通知機能３１を実行する（Ｓ２２１）。
【００４４】
上記サイズ情報を取得したＴＣＰ層パケット処理部は、その上記サイズ情報から、転送されるＨＴＴＰメッセージのシーケンス番号の上限値を計算して、その上限値以下のシーケンス番号でありファストパスの対象となるファストパス条件をファストパス判断テーブル２７へ設定する第一ファストパス登録機能３２を実行する（Ｓ２２２）。シーケンス番号は、セッションの開始に基準値が定まり、それから通信するパケットごとに、それまでに送信したデータ量と同じだけ加算されていく。従って、そのＨＴＴＰメッセージを構成する一連のパケットのうち、最後のパケットのシーケンス番号は、元の基準値（又は一つ前のＨＴＴＰメッセージ送信完了時の値）に上位機のサイズ情報を加算した値を超えることはない。より具体的には、最後のパケットは、パケットの最大設定値だけのデータを送信できるので、そのＨＴＴＰメッセージを含む最後のパケットのシーケンス番号は、「（当該ＨＴＴＰメッセージの開始時点でのシーケンス番号＋上記サイズ情報（Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈの値）−ＵＲＬフィルタリング装置のＭＲＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）」以下となる。よって、この上限値以下のシーケンス番号であるパケットは、既にＵＲＬフィルタリングを通過した規制対象ではないファイルの送信であるということになる。そして、シーケンス番号は、ＴＣＰヘッダに含まれる情報であるため、ヘッダだけを見れば、それが上記の上限値以下であるか判断できるため、ファストパスで処理することができる。従って、そのシーケンス番号の条件を、上記ファストパス判断テーブル２７に記載しておくことで、その条件との対比でファストパス処理が可能かどうか判断できるということになる。
【００４５】
上記のファストパス判断テーブル２７の例を図６に示す。ファストパスで処理すると判断されたセッションごとに一つのレコードを形成する。すなわち、ＩＰヘッダに記録される送信元アドレスと宛先アドレスとともに、プロトコルの種別、そしてＴＣＰヘッダに記録される送信元ポート番号、宛先ポート番号と、シーケンス番号とを記録している。このうち、宛先ポート番号までは、従来ファストパスを実行するか否かの判断で用いられてきた要素であり、シーケンス番号の項目を設けたことがこの発明の特徴である。シーケンス番号の項目は、データがある場合とｎｕｌｌの場合があり、第一ファストパス登録機能３２で登録された場合にはシーケンス番号として上記上限値が入り、第二ファストパス登録機能３４で登録された場合にはｎｕｌｌが入る。
【００４６】
一方、データ長判定機能７７を実行しても、Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈが指定されていない場合は上記の通知ができないため、当該ＨＴＴＰメッセージの終わりまで通常の転送処理を行うことになる（図３：Ｓ１６１→Ｓ１７１、図４：Ｓ２１８→Ｓ２１７）。当該ＨＴＴＰメッセージの受信が全て終わったら、持続するＴＣＰセッションにおいて、同じウェブサーバ１３に対して次のＨＴＴＰ要求を出すことになる（図３：Ｓ１７２→Ｓ１１１、図４：Ｓ２１８→Ｓ１１５）。
【００４７】
これら（Ｓ１２３、Ｓ２２２）の設定Ａ，Ｂに示すファストパス登録がされたら、そのＴＣＰセッションのそれ以後のパケットは、ファストパス判断テーブル２７の条件を満たす限り、パケット転送処理部２１のファストパス判断機能３３が、ファストパスしてよいものと判断して、ＵＲＬフィルタリング装置１１のＣＰＵに搭載されたファストパス機能を利用して、高速な転送処理を行う（１６２）。
【００４８】
この転送処理の実際のフローについて、図７を用いて説明する（Ｓ３１１）。ＴＣＰパケットを受信したら（Ｓ３１２）、パケット転送処理部２１のファストパス判断機能３３は、そのパケットのヘッダだけを見て、ファストパス判断テーブル２７を参照し、当該セッションの送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号の全ての条件と一致するものがあるか否か検索する。すなわち、図６の左から５項目分が一致するものがあるか否かを調べることで、ファストパス中継対象のＴＣＰセッションであるか否かを判断する（Ｓ３１３）。該当するレコードがなければ、パケット転送処理部２１は、ＴＣＰ層パケット処理部２２へパケットを送信して、通常のルーティング機能４１により、スローパス中継する（Ｓ３１４）。該当するレコードがあれば（Ｓ３１３）、まず、そのレコードのシーケンス番号を見て、ｎｕｌｌか否か判断する（Ｓ３１５）。すなわち、当該セッションのパケットは、全て転送対象となる第二ファストパス登録機能３４により登録された「設定Ａ」のセッションであれば、当該セッションのパケットは全てファストパスで行う（Ｓ３１７）。一方、そのレコードのシーケンス番号に上記上限値が記録されていれば、判断するＴＣＰパケットのシーケンス番号が、上記最大値以下であるか否か判断する（Ｓ３１６）。最大値以下であればファストパスの対象であり（Ｓ３１７）、最大値を超えていれば、同一ＴＣＰセッションでも、別のアドレスへのアクセスであるため、ファストパスは行わない（Ｓ３１４）。
【００４９】
なお、上記のファストパスの登録が、上記の第二ファストパス登録機能３４による設定Ａである場合は（Ｓ１６３）、そのファストパスによる通信が終わったところで当該セッションが終了する（Ｓ１６４）。一方、第一ファストパス登録機能による設定Ｂである場合には（Ｓ１６３）、ＨＴＴＰメッセージが終わり、送られてきたパケットのシーケンス番号が上記上限値を超えて上記「設定Ｂ」のファストパス中継が終わってもセッションは続き、次のＨＴＴＰメッセージをパケットとして受け取るので、最初からフローを開始する（Ｓ１６５→Ｓ１１１）。このとき、ＨＴＴＰ構文解析処理部では、図４中Ｘの項目からフローを開始する（Ｓ２１９→Ｓ２１７）。
【符号の説明】
【００５０】
１１  ＵＲＬフィルタリング装置
１２  ユーザ端末
１３  ウェブサーバ
１４  セキュリティサーバ
２１  パケット転送処理部
２２  ＴＣＰ層パケット処理部
２３  ＨＴＴＰ構文解析処理部
２４  要求アドレス通過判定処理部
２５  ＨＴＴＰ応答作成処理部
２６  ＴＣＰ終端処理部
２７  ファストパス判断テーブル
３０  キャッシュ
３１  転送量通知機能
３２  第一ファストパス登録機能
３３  ファストパス判断機能
３４  第二ファストパス登録機能
４１  ルーティング機能
４２  ファストパス機能
４５  ＨＴＴＰ通信機能
４６  セッションパケット抽出機能
５１  アップパケット経路
５２  ダウンパケット経路
５３  アップパケット終端経路
５４  ダウンパケット終端経路
６２  開始パケット経過機能
６３  ペイロード抽出機能
６４  ペイロード転送機能
６５  パケット返送機能
７０  キャッシュ問合機能
７１  ＨＴＴＰ判別機能
７２  ファストパス通達機能
７３  判定要求機能
７４  バージョン判定機能
７５  コネクション判定機能
７６  転送エンコーディング判定機能
７７  データ長判定機能
８１  接続可否問合機能
８２  接続可否返答機能
８３  拒否対応指示機能
８４  許可対応指示機能
８６  拒否対応指示機能
９１  メッセージ生成機能
９２  終端処理指示機能
９３  経路終端変更機能
９４  アクセス拒否通知機能
９５  端末切断機能
９６  サーバ切断機能
９７  キャッシュ記録機能
９８  終端処理指示機能
【図１】
0005749673.tif 000002
【図２】
0005749673.tif 000003
【図３】
0005749673.tif 000004
【図４】
0005749673.tif 000005
【図５】
0005749673.tif 000006
【図６】
0005749673.tif 000007
【図７】
0005749673.tif 000008