(58)【調査した分野】(Int.Cl.,DB名)
上記要求ドメイン通過判定処理部が安全であるとの返答を受けたIPアドレスについて、そのIPアドレスへのアクセスが安全であることを記録したIPフィルタリング可否テーブルを有し、
上記ファストパス登録機能は、上記IPフィルタリング可否テーブルの記録を参照して上記ファストパス判断テーブルへの登録を行う、
請求項1に記載のURLフィルタリング装置。
上記要求ドメイン通過判定処理部は、上記IPフィルタリング可否テーブルに安全であると記録したIPアドレスについて、上記ACサーバへその安全性を問い合わせて、安全性が確認できれば記録を期限つきで更新し、安全性が確認できなければ上記IPフィルタリング可否テーブルにおける当該IPアドレスについてのレコードを無効にする、ネームアドレス更新機能を定期的に実行する、
請求項2に記載のURLフィルタリング装置。
【背景技術】
【0002】
ユーザ端末がネットワークにアクセスするにあたり、ウイルスやワームが仕掛けられたサイトや、フィッシングサイト、成人向けサイトといった規制対象サイトにアクセスしないように、規制対象となるサイトへのアクセスをURLごとに遮断するURLフィルタリングが一般に行われている。家庭用ホームゲートウェイなどのゲートウェイにおいてURLフィルタリングする場合には、ユーザ端末から送信されるHTTPリクエストの中のURLアクセスメッセージを検出し、当該URLへのアクセスの可否を、規制対象サイトのURL一覧をデータベースとして保持するサーバに問い合わせて確認し、HTTPリクエストを通過させるか遮断するかを判断している。
【0003】
ゲートウェイ上でユーザ端末から送信されるHTTPリクエスト中のURLアクセスメッセージを検出するには、例えば次のような方法が挙げられる。まず第一の方法としては、ゲートウェイ上でHTTPプロキシを提供し、HTTP通信を一旦ゲートウェイ上で終端中継する。しかしこの方法は、ゲートウェイ上でHTTP/TCP通信を一旦終端し、HTTPヘッダ情報の修正などの処理を行う必要がある。また、ユーザ端末から送信された全てのHTTP通信に対してURLフィルタリングを行うため、正常なウェブサーバ、すなわちサーバ上にあるページが全て無害かつ正常なページであるサーバに対するダウンロード、アップロードに対しても必ずURLフィルタリングを行う。このため、ゲートウェイにかかる処理負担が大きく、転送性能は大きく劣化してしまう。
【0004】
これに対して第二の方法として、HTTP/TCP通信をゲートウェイ上で終端させることなく、中継するパケットのペイロード内容を解析し、パケット中のHTTPヘッダ情報を読み取って、リクエストを通過させるか否かを判断させる方法がある。しかし、ホームゲートウェイなどに用いるCPUに搭載されている、高速パケット転送用の機構である「ファストパス」は、IP、TCPヘッダのビットのみを読み取って処理することで高速化するものであり、ヘッダより先のペイロードを解析しなければならないこの第二の方法では「ファストパス」が利用できない。そのため、この方法でも転送速度の低下を招くことになる。
【0005】
特許文献1には、上記の第二の方法において、ダウンリンクのみファストパスを適用し、転送性能を改善する方式が提案されている。これは、受信したパケットのTCPヘッダを解析してURLアクセス要求メッセージでない、すなわちダウンロードされるファイルのパケットについては、それを要求するHTTPリクエストの段階で遮断すべきか否かの判断が既に終わって通過が認められたものであると判断して、ファストパスで処理するようにしたものである。
【0006】
また、特許文献2には、VPN(VirtualPrivateNetwork)におけるVoIP(Voice over IP)ゲートウェイにおいて、VoIPパケットをファストパス処理することが記載されている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1の方法では、あくまで要求を確認した後のダウンリンクのみしかファストパスを適用できず、クラウドを利用するようなアップリンクも多いケースでは十分にファストパスを活用できなかった。
【0009】
また、特許文献2に記載の方法ではVoIPやそれに類似するストリーミング形式のデータパケットに対してしかファストパスを活用できなかった。
【0010】
そこでこの発明は、URLフィルタリングシステムとしてゲートウェイを用いる際に、アップリンクダウンリンクの区別無く、汎用的にファストパスを活用してゲートウェイにおける転送処理を高速化することを目的とする。
【課題を解決するための手段】
【0011】
この発明の第一の実施手段としては、URLフィルタリング装置に、
上記ユーザ端末と上記ウェブサーバとの間で送受信されるパケットを中継するパケット転送処理部と、パケット転送処理部を通過するTCPパケットのヘッダ部分を読み取りTCP層の処理を行うTCP層パケット処理部と、上記TCPパケットのデータ部分に含まれるHTTP構文を読み取り解析を行うHTTP構文解析処理部と、上記の解析されたHTTP構文に含まれるURLへのアクセスを通過させるか否かを判定処理する要求URL通過判定処理部とともに、
上記ファストパス機能によってファストパスを行うか否かの条件を一時的に保持するファストパス判断テーブルと、
ユーザ端末からウェブサーバへの接続を実施する前に上記ウェブサーバのFQDN(Fully Qualified Domain Name)の名前を解決するために上記ユーザ端末から送信されるDNS要求を受けDNSサーバに問い合わせてIPアドレスを取得するDNS−proxy処理部と、
上記DNS要求に含まれるFQDN及び前記取得したIPアドレスの少なくとも一方で指定されるアドレスを、外部に設けたFQDN及びIPアドレスの少なくとも一方で指定されるアドレスごとの安全性を記録し返答可能なACサーバへ問い合わせる要求ドメイン通過判定処理部とを
備えさせ、
上記TCP層パケット処理部は、上記のFQDN及びIPアドレスの少なくとも一方で指定されるアドレスごとの安全性の記録を参照して、安全であるとの返答を得ているFQDNで指定されるアドレスへの通信セッションを上記ファストパス機能によって行う条件を上記ファストパス判断テーブルへ登録するファストパス登録機能を実行し、
上記パケット転送処理部は、受信したパケットについて上記ファストパス判断テーブルのファストパス条件に合致するパケットをファストパスさせるファストパス判断機能を実行するものとすることで、上記の課題を解決したのである。
【0012】
この発明は、ユーザ端末がウェブサーバにアクセスしようとする際には、IPアドレスを直接打ち込むといった極めて限定的な場合を除いて、ほとんどの場合FQDNを用いてアドレスを指定することを利用している。FQDNを用いる場合、ウェブサーバへのアクセスを行う前に、DNSサーバへアクセスして、FQDNからIPアドレスを取得する名前の解決を行う必要があるが、この発明にかかるURLフィルタリング装置であるパケット転送装置は、そのDNS要求を受けた段階又はその前段階で、そのFQDNを含んで指定されるアドレスの安全性を上記ACサーバに問い合わせる。DNS要求を解決する前であればFQDNのみで問い合わせ、DNS要求を解決した後ならばIPアドレスのみ、又はFQDNとIPアドレスとを併せて問い合わせる。上記ACサーバは、FQDN及びIPアドレスの少なくとも一方で指定されるアドレスごとに、その接続対象のウェブサーバが健全、すなわち全てのコンテンツが安全であると確認されているものを記録しており、問い合わせに対して、そのアドレスで指定されるウェブサーバが安全であるか否かの情報を返答する。この返答を受けたURLフィルタリング装置は、ユーザ端末にIPアドレスを返答するとともに、そのFQDN及びIPアドレスの少なくとも一方で指定されるアドレスが安全であることを、内部のデータベース(IPフィルタリング可否テーブル)に登録しておくとよい。FQDNとIPアドレスとの両方で登録しておいてもよい。
【0013】
引き続いてユーザ端末から、当該IPアドレスへのアクセス要求がIPフィルタリング装置へ送信された際には、TCP層パケット処理部は、IPフィルタリング可否テーブルを参照し、その要求先のFQDN及びIPアドレスが安全であると登録されている場合は、当該アクセス要求によって始まるTCPセッションについては、ファストパスでパケット転送を行う条件を満たすものとして、ファストパス判断テーブルに登録する。当該FQDN及びIPアドレスで指定されるウェブサーバの全てのコンテンツが安全であると保証されているため、個々のアドレスをチェックするまでもなく、ファストパスで処理して問題ないためである。これにより、当該セッションにおけるアクセス要求は、パケット転送処理部がファストパスで処理することにより、安全性を維持しつつ高い転送性能を発揮できる。
【0014】
また、IPアドレスへの直接的なアクセス要求の前に送信される名前の解決の段階でACサーバに問い合わせ始めるため、アクセス要求を受けてからフィルタリングのチェックをする従来の方法に比べて、タイムラグを短縮でき、この点でも転送性能を高めることができる。
【0015】
なお、ACサーバへの問い合わせは、必ずしもIPアドレスが必須ではない。このため、ACサーバがFQDNについて登録されているのであれば、DNSの名前の解決より先に、FQDNの安全性をACサーバに問い合わせてもよい。この場合、要求ドメイン通過判定処理部での問い合わせの後に、DNS−proxy処理部20へDNS要求を解決するための指示を出すことになる。
【0016】
上記のIPフィルタリング可否テーブルへの登録は、それが安全であると回答できる有効期限情報を有していてもよい。ウェブサーバの更新によって安全性が失われる場合があるためである。有効期限が切れた情報については、要求ドメイン通過判定処理部が再びACサーバへ問い合わせて、ステータス及び有効期限を更新するとよい。
【0017】
なお、FQDNとIPアドレスによる判定だけでなく、従来通りURLごとに判断するフィルタリング機能を備えていてもよい。FQDN及びIPアドレスごと安全であるとは判断されず、一部に安全性が不明瞭なページが存在するようなIPアドレスへのアクセスにあたっては、従来通りのフィルタリング機能を発揮させるべきだからである。逆に、FQDN及びIPアドレスがまるごと危険であると登録して、当該IPアドレスへのアクセスを最初から全て遮断してもよい。
【0018】
なお、ファストパスで処理せず、フィルタリングの結果として規制されたアドレスへのアクセスであることが判明した場合、単純にアクセスを遮断するだけでなく、アラートを表示させたり、一部内容の差し替えなどを行ってもよい。
【発明の効果】
【0019】
この発明により、アップロード及びダウンロードの区別なく、FQDNとIPアドレスが安全であると保証されたウェブサーバへのアクセスに対して、ファストパスで処理できるパケットの数を増やし、URLフィルタリング装置の転送処理性能を向上させることができる。安全の前提となるACサーバへの問い合わせは、IPアドレスによるアクセス要求よりも早く行われるため、フィルタリングのための問い合わせにかかる待ち時間も従来より短縮され、体感的な転送性能も向上させることができる。
【発明を実施するための形態】
【0021】
以下、この発明について具体的な実施形態の例を挙げて詳細に説明する。
図1は、この発明にかかるURLフィルタリング装置11の機能ブロック図及びそれと通信する装置について示す構成図である。
【0022】
URLフィルタリング装置11は、ユーザ端末12と、ウェブサーバ13との間にある中継装置であり、例えば家庭用ルータなどのホームゲートウェイのようなゲートウェイとして機能する装置である。具体的には、ユーザ端末12からのHTTP通信と、ウェブサーバ13からのHTTP通信を中継するとともに、別途運営されているアクセス規制対象となるURLリストのデータベースを保有するセキュリティサーバ14に当該HTTP通信のアクセス要求先へのアクセスが規制されているか否かを確認し、規制されている場合にはそのアクセスを遮断する装置である。
【0023】
ユーザ端末12は、パソコン、スマートフォン、タブレット端末など、FQDNを利用して通信するプロトコルを使用する端末であれば特に限定されない。ここでは、HTTP通信機能45を例として説明するが、HTTPSやFTPなど、実際のプロトコルは特に限定されない。このHTTP通信機能45とは、例えばインターネットブラウザや、その他のネット接続機能を有するプログラムが挙げられる。
【0024】
ウェブサーバ13は、ユーザ端末12からのリクエストに応じてコンテンツを送信するHTTPサーバ機能を有するサーバである。
図1中では一つであるが、実際には多数のサーバがインターネット上に存在しており、URL(Uniform Resource Locator)によって指定される。
【0025】
セキュリティサーバ14は、アクセスを規制するページのアドレスを保有するデータベースを有し、URLフィルタリング装置11からの照会に対して、それがフィルタリングで遮断すべきページか否かを応答可能なサーバである。例えば、セキュリティ会社などが運営するものであったり、会社内で独自に用意するものであったりしてもよい。
【0026】
DNSサーバ15は、ユーザ端末12で普段入力されるFQDN(ドメイン名)に対応するIPアドレスを調べて、ユーザ端末12からの問い合わせに対して名前の解決を行い、IPアドレスを返すことができるDNSキャッシュサーバである。サーバ自身が記録しているFQDNとIPアドレスとの組み合わせから検索して応答するだけでなく、他のDNSキャッシュサーバへリクエストを中継して、名前を解決する場合もある。
【0027】
ACサーバ16は、FQDN及びIPアドレスの少なくとも一方で指定されるアドレスごとに、そのアドレスで指定されるウェブサーバに含まれる全てのコンテンツが安全であれば、接続が安全である旨を記録し、問い合わせに対してその旨を返答可能なサーバである。逆に、当該ウェブサーバにある全てのコンテンツが安全であると保証できなければ、NGを返す。なお、安全であるとの返答については、その安全性を保証する有効時間を設定してあることが好ましい。ウェブサーバ13上の情報は刻々と変化するため、以前安全だったウェブサーバ13が永続的に安全であるとは限らないからである。上記のセキュリティサーバ14と同様に、セキュリティ会社などが運営するものであったり、会社内で独自に用意するものであったりしてもよい。
なお、ACサーバ16とセキュリティサーバ14とは、物理的には同一のサーバがそれぞれの機能を有するものであってもよい。
【0028】
これらの装置間での通信に対して、URLフィルタリング装置11は、通過するパケットに対してルーティング機能41を発揮するパケット転送処理部21と、パケットのTCP層の処理を行う処理を行うTCP層パケット処理部22と、パケットのデータ部内にあるHTTP構文を解析するHTTP構文解析処理部23と、セキュリティサーバ14に照会して接続要求先のアドレスが遮断されるべきものか否かを判定する要求アドレス通過判定処理部24と、遮断する際のエラーメッセージや代替テキストを供給するHTTP応答作成処理部25と、TCP終端処理を行うTCP終端処理部26と、後述するファストパス機能42を実行してファストパスを行うか否かの条件を一時的に保持するファストパス判断テーブル27と、
ユーザ端末12からのDNS要求に含まれるFQDNをDNSサーバ15に問い合わせて名前の解決を行うDNS−proxy処理部20と、
FQDN及びIPアドレスの少なくとも一方で指定されるアドレスごとの安全性をACサーバ16へ問い合わせ、安全であると判明したIPアドレスを登録させる要求ドメイン通過判定処理部28と、
上記の要求アドレス通過判定処理部24により、安全との返答を得たサーバのアドレスを登録し、照会に対して回答可能なIPフィルタリング可否テーブル29とを有する。
【0029】
このうち各部(20〜26、28)は独立したチップでもよいし、ソフトウェア上で実現するものでもよい。URLフィルタリング装置11は、これらを実現するための処理部たるプロセッサと、記憶部たる揮発性メモリ及び不揮発性メモリを有する。このうち、プロセッサはパケットのヘッダ部分のみを読み取って高速で転送処理を行う、いわゆる「ファストパス」機能を有するものである必要がある。また、ファストパス判断テーブル27及びIPフィルタリング可否テーブル29は、記憶部に存在するテーブルデータである。
【0030】
URLフィルタリング装置11は、ユーザ端末12からウェブサーバ13へ向かうアップリンクのデータの経路であるアップパケット経路51と、ウェブサーバ13からユーザ端末12へのダウンリンクのデータ経路であるダウンパケット経路52とを有する。
なお、アップパケット終端経路53はユーザ端末12からURLフィルタリング装置11への上り方向の終端処理を行う場合の経路であり、ダウンパケット終端経路54は、ウェブサーバ13からURLフィルタリング装置11への下り方向の終端処理を行う場合の経路である。
そして、後述する工程を経てファストパスでの通過を行うと判断されたパケットは、TCP層パケット処理部22を通らずに、パケット転送処理部21を高速で転送処理される、アップパケットファストパス経路55及びダウンパケットファストパス経路56を有する。なお、
図1中では表記上、55と56をまとめる。
【0031】
本願発明において、ファストパス機能42を発揮させてアップパケットファストパス経路55及びダウンパケットファストパス経路56で通過させるか否かの判断は、上記の経路のうち、アップパケット経路51と、ダウンパケット経路52を通るパケットに対して実行する。
【0032】
これらの構成を有するURLフィルタリング装置11の動作を、
図2を用いて、情報処理の流れに沿って説明する。まず(S100)、ユーザ端末12のHTTP通信機能45は、HTTP通信を行うTCPセッションの確立の前に、DNSによるFQDNの名前の解決を行うべく、DNS要求をURLフィルタリング装置11へ送信する(S101)。URLフィルタリング装置11のパケット転送処理部21は、このDNS要求をDNS−proxy処理部20へ転送するDNS要求転送機能43を実行する(S102)。
【0033】
DNS−proxy処理部20は、転送されてきたDNS要求に含まれるFQDNを、DNSサーバ15へ問い合わせるDNS要求問合機能31を実行する(S103)。なお、図示しないが、URLフィルタリング装置がDNSキャッシュ機能を有しているのであれば、そのキャッシュを参照してDNSの名前の解決を行ってもよい。DNSサーバ15は、自身が保有する情報を検索するか、又は他のDNSキャッシュサーバに問い合わせて、問い合わせされたFQDNに対応するIPアドレスを求める名前の解決を行い、URLフィルタリング装置11のDNS−proxy処理部20へ返答するDNS要求返答機能32を実行する(S104)。返答されたIPアドレスを受信したDNS−proxy処理部20は、要求のあったユーザ端末12へ当該FQDNの名前の解決としてIPアドレスを送信するDNS要求回答機能33を実行する(S105)。このIPアドレスを受信したユーザ端末12は、後述するセッションの確立へ移る(S108)。また、それと前後して、DNS−proxy処理部20は、当該FQDN及び解決されたIPアドレスを、要求ドメイン通過判定処理部28へ転送するネームアドレス転送機能34を実行する(S106〜S107)。
【0034】
要求ドメイン通過判定処理部28の処理を、
図3を用いて説明する。まず、DNS−proxy処理部20からFQDN及びIPアドレスを受信する(S107〜S111)。この受信した情報を、ACサーバ16へ送信し、当該IPアドレスで示されるサーバから送信されるページが全て安全なものと保証されているか、そうでないかを問い合わせるネームアドレス問合機能36を実行する(S112)。これに対してACサーバ16は、当該FQDN及びIPアドレスで指定されるサーバが健全である、すなわち、送信されるすべてのコンテンツが安全であると確認されている場合にはOKを、そうでない場合にはNGを返す。このとき、ACサーバ16はOK又はNGの結果とともに、その判定を保証する有効期限を送信するものであると好ましい。実際にはウェブサーバ13上のファイルは刻々と変化するため、長期間に亘って安全性を保証できるものではないからである。
【0035】
ACサーバ16からの返答がNGであるとOKであるとに関わらず、要求ドメイン通過判定処理部28は、その結果をIPフィルタリング可否テーブル29に登録するネームアドレス登録機能37を実行する(S113)。このテーブルの例を
図4に示す。FQDN及びIPアドレスとの対応とともに、IPフィルタリング可否テーブル29への登録時間と、有効期限、判定結果を記録してあり、その判定の残り時間が刻々と更新される。この登録でDNS要求に対する処理は一旦終了し、その後、通常のTCPセッションの処理へ移る(114)。
【0036】
ただし、要求ドメイン通過判定処理部28は、上記のIPフィルタリング可否テーブル29の健全性を維持させるため、これを更新する必要がある。このため、要求ドメイン通過判定処理部28は、定期的にIPフィルタリング可否テーブル29に含まれるFQDNごとの各レコードについて、有効期限及び残り時間を確認するネームアドレス確認機能38を実行する(S115)。有効期限を超過したレコードについては(S116)、FQDN及びIPアドレスをまとめて、再びネームアドレス問合機能36を実行し(S112)、その結果をネームアドレス更新機能39により更新する(S113)。
【0037】
なお、要求ドメイン通過判定処理部28とDNS−proxy処理部20との処理は逆でもよい。この場合、上記とは
図2と
図3とのフロー処理順が逆になる。すなわち、パケット転送処理部21が、DNS要求をDNS−proxy処理部20ではなく要求ドメイン通過判定処理部28へ転送するFQDN問合機能47を実行し、要求ドメイン通過判定処理部28はDNS要求に含まれるFQDNについてACサーバ16へ問い合わせるネームアドレス問合機能36を実行する。OK又はNGの結果が返ってきたら、要求ドメイン通過判定処理部28はDNS−proxy処理部20へDNS要求を解決すべく指示するDNS要求指示機能40を実行し、DNS−proxy処理部20は解決したIPアドレスを要求ドメイン通過判定処理部28に返すネームアドレス転送機能34を実行する。つまり順序が逆になってもこの発明は問題なく実行できる。
【0038】
また、図示しないが、IPフィルタリング可否テーブル29のレコード数が過剰になると検索に支障が出るため、レコード数が一定数以上になったら、リスト登録時間が古いものから削除しておくとよい。
【0039】
次に、TCPセッション以降のフローについて
図5及び
図6を用いて説明する。これは上記のS108(
図2)、及びS114(
図3)に引き続く処理である(S121)。ユーザ端末12は、上記のDNS要求で得られたIPアドレスで指定されるウェブサーバ13に対して、HTTP通信の前に、3way−handshakeにより新規なTCPセッションを確立する(S122)。すなわち、ユーザ端末12が、接続要求であるSYNパケットをURLフィルタリング装置11経由でウェブサーバ13に送信し、ウェブサーバ13は接続許可であるACKパケットと、接続要求であるSYNパケットとを組み合わせてユーザ端末12に返送する。これに対してユーザ端末12がACKパケットを返答する。以上の三手順を経てユーザ端末12とウェブサーバ13との間のコネクションが確立する。より具体的には、このときパケット転送処理部21は、受信するパケットのプロトコルの種別、宛先と送信元のIPアドレス及びポート番号等に基づいて、HTTPセッションに属するTCPパケットを判別し、HTTPセッションであると判別されたTCPパケットをTCP層パケット処理部22に通知するセッションパケット抽出機能46を実行する。TCP層パケット処理部22は、パケット転送処理部21から受け取ったパケットが、3way−handshakeのためのパケットであると判別したらこれをそのままパケット転送処理部21へ出力する開始パケット経過機能62を実行し、パケット転送処理部21はルーティング機能41によりこれをそれぞれの宛先(ユーザ端末12又はウェブサーバ13)へ向けて転送する。これが一往復半されて3way−handchakeが成立する。
【0040】
TCPセッションが確立した後、ユーザ端末12は、ブラウザソフトその他のソフトが有するHTTP通信機能45により、アクセスを要求するHTTPメソッド及びURLを含むTCPパケットを送信する(S123)。HTTPメソッドは、一般的には、ダウンリンクであればGETであり、アップリンクであればPOSTである。このTCPパケットを受信したURLフィルタリング装置11は次のような処理を行う。
【0041】
TCPパケットを受信したパケット転送処理部21は、当該TCPパケットにかかるTCPセッションが、なんらかの形でファストパスにて処理する対象としてファストパス判断テーブル27に登録されているか否かを判断するファストパスチェック機能44を実行する(S124)。なお、ファストパス判断テーブルには、送信元IPアドレス、宛先IPアドレスを記録しておくことが必要であり、プロトコルの種別やポート番号を備えていると、他の基準によるファストパス判断にも用いることができるので好ましい。既にファストパス処理するものであると登録されていれば(S124→S133)、当該TCPセッションについてそのままファストパス機能42による処理を続ける(S134)。
【0042】
まだファストパス判断テーブル27に当該TCPセッションの判断が登録されていない場合(S124)、パケット転送処理部21のセッションパケット抽出機能46が、この受信したTCPパケットをTCP層パケット処理部22に転送する(S126)。
【0043】
TCP層パケット処理部22は、TCPパケットを一旦保持したまま、ファストパス登録機能を実行するか否かを判断する(S131)。このTCP層パケット処理部22におけるファストパス登録機能61を実行するか否かを判断するファストパス判断フローを
図7に示す。TCPセッションが確立(上記のS122にあたる)した後、ファストパス処理を行うとの登録をするか否かをチェックする。まず、本発明におけるACサーバ16と連携する以外の方法で、この時点でファストパス処理の対象と診断されるか否かを判断する既存ファストパスチェック機能63を実行する(S211)。該当するのであれば、ファストパス判断テーブル27に、当該TCPセッションはファストパスで処理する旨の登録をするファストパス登録機能61を実行する(S212)。
【0044】
次に、IPフィルタリング可否テーブル29に対して、当該TCPセッションに対応するIPアドレスについてのレコードの有無を問い合わせる、可否テーブル検索機能64を実行する(S213)。このとき、該当するIPアドレスについてのレコードが存在しない場合、上記のACサーバ16への問い合わせを経たIPフィルタリング可否テーブル29への登録が何らかの理由で失敗しているか、又は遅延している。そこで、TCP層パケット処理部22は、要求ドメイン通過判定処理部28に対して、ネームアドレス問合機能36(
図3のS112)、及びネームアドレス登録機能37(
図3のS113)を実行するように、IPアドレスとともに指示を出すネームアドレス再確認要求機能65を実行する(S214)。要求後は所定の時間を待った上で(S215)、IPフィルタリング可否テーブル29へのOK又はNGのレコードの登録を待ってフローを再開する(S213〜)。
【0045】
なおここで、要求ドメイン通過判定処理部28は、ACサーバ16からの返答後、IPフィルタリング可否テーブル29への登録を行う。
【0046】
上記可否テーブル検索機能64の実行により、IPフィルタリング可否テーブル29内にレコードが見つかり(S213→S221)、レコード中の判定結果がOKであれば、当該TCPセッションについてはファストパスで処理する旨をファストパス判断テーブル27に登録するファストパス登録機能61を実行する(S212)。一方、レコード中の判定結果がNGであれば、当該TCPセッションについてはファストパスではなくスローパスで処理するものとし、ファストパス判断テーブル27に登録しない(S222)。
【0047】
上記の登録か否かの判断が終わったら(
図5のS131)、TCP層パケット処理部22は、そこまで保持していたTCPパケットが、ファストパス判断テーブル27に、ファストパスの対象として登録されているか否かを確認する判断テーブル検索機能66を実行する。ファストパスの対象として登録されていれば、TCP層パケット処理部22は、保持していたパケットをパケット転送処理部21へ返送するパケット返送機能69を実行し(S133)、以後はアップパケット経路51又はダウンパケット経路52をファストパスで通過させるように登録する(S134)。
【0048】
上記のように、ファストパスで通過させるように登録されたパケットが、パケット転送処理部21に到達したら、パケット転送処理部21はファストパス判断機能48を実行して、ファストパス判断テーブル27を参照し、それがファストパスの対象であるTCPセッションのパケットならば、ファストパスで処理するアップパケットファストパス経路55又はダウンパケットファストパス経路56にて、速やかな転送処理を行うこととなる。
【0049】
一方、ファストパスの対象として登録されていなければ、以下に続くフローにより、個別のURLフィルタリングを実行するとよい。TCP層パケット処理部22は、そのTCPパケットを保持しながらTCPパケットのデータ部(ペイロード)を抽出するペイロード抽出機能67を実行し(S141)、抽出したペイロードをHTTP構文解析処理部23へ送るペイロード転送機能68を実行する(S142)。
【0050】
なおここで、ペイロードとしてURLを抽出した際には、そのURLについてキャッシュ30に問い合わせるキャッシュ問合機能70を実行するとよい。後述するように既に判定が終わっているURLへの二度目のアクセスである場合に、以下に記載のHTTP構文解析処理部23や要求アドレス通過判定処理部24での処理を行うまでもなく、速やかに遮断すればよいからである。よって、問い合わせの結果、当該URLへのアクセスが不可であれば、TCP層パケット処理部22は、HTTP応答作成処理部25へ直接に、拒否対応指示機能86(後述する83と同様の内容)を実行すると速やかな処理ができる。
【0051】
HTTP構文解析処理部23では、まず受け取ったペイロードがHTTPであるか否かを判断するHTTP判別機能71を実行する(S143)。ペイロードがHTTPでなかったら、そのセッションの通信はHTTPではないということであり、以後そのセッションのデータは中身を解析しようがないので、ファストパスで処理すればよい。そこでHTTP構文解析処理部23のファストパス通達機能72は、TCP層パケット処理部22へ、当該セッションをファストパスで処理するように通知する(S144)。TCP層パケット処理部22は、ファストパス登録機能61を実行して、ファストパス判断テーブル27に、当該セッションをファストパスで処理する旨を登録する(S145)。その上で、TCP層パケット処理部22は、保持していたパケットをパケット転送処理部21へ返送するパケット返送機能69を実行し(S133)、以後はアップパケット経路51又はダウンパケット経路52をファストパスで通過させるように登録する(S134)。
【0052】
なお、上記のフローのさらに例外として(S143)、TCP層パケット処理部が受け取ったパケットが、TCP層のヘッダまでしか存在せず、ペイロードが実質的に存在していない場合は、そのパケットをTCP層で終端するように、TCP層終端処理部26へ要求する終端処理指示機能98を実行する。
【0053】
上記のHTTP判別機能71での判断においてペイロードがHTTPであれば(S143)、HTTP構文解析処理部23は、GET又はPOSTのHTTPメソッドとしてHTTP構文の一行目に記載されているアドレスを、要求アドレス通過判定処理部24へ転送する判定要求機能73を実行する(S151)。なお、この判定要求機能73はHTTPヘッダを全て受信してから実行してもよいが、アドレスはHTTP構文の一行目にあるため、一行目を受信した段階でこの判定要求機能73を実行してもよい。
【0054】
要求アドレス通過判定処理部24は、転送されてきたアドレスについて、規制対象となるアドレス群を記録した規制対象データベースを有するセキュリティサーバ14に対して、規制対象のアドレスであるか否かを照会する接続可否問合機能81を実行する(S152)。セキュリティサーバ14はこの照会に対して、規制対象データベースを検索して、規制対象であるか否かを返答する接続可否返答機能82を実行する(S153)。なお、規制対象データベースは必ずしも外部サーバに置いておく必要はなく、応答速度を優先するためにURLフィルタリング装置11内に保持していてもよい。ただし、規制対象となるアドレスの更新等、装置への負担はかかる。
【0055】
上記の接続可否返答機能82による返答が、規制対象であるとの内容であった場合(S154→S161)、要求アドレス通過判定処理部24は、HTTP応答作成処理部25に対して、その結果を通知するとともにTCP終端処理の開始を指示する拒否対応指示機能83を実行する(S162)。HTTP応答作成処理部25は、通知された結果に対応する応答メッセージが含まれるHTMLドキュメントを生成するメッセージ生成機能91を実行する(S163)。応答メッセージとしては、規制対象であることを示す「403 forbidden」であったり、それに関連する英語や日本語等の説明を加えたHTMLドキュメントであるとよい。またそれとともにHTTP応答作成処理部25は、TCP終端処理部26へTCP終端処理の開始を指示する終端処理指示機能92を実行し(S164)、作成したHTMLドキュメントを送信する。
【0056】
TCP終端処理部26は、ユーザ端末12との通信経路を、アップパケット終端経路53に変更させ、ウェブサーバ13との通信経路をダウンパケット終端経路54に変更する経路終端変更機能93を実行する(S165)。その上で、HTTP応答作成処理部が生成したメッセージをユーザ端末12へ送信するアクセス拒否通知機能94を実行するとともに(S166)、ユーザ端末12に対して当該TCPセッションの終端処理を行う端末切断機能95を実行する(S167)。具体的には、FIN/ACKパケットの往復による。さらに、ウェブサーバ13に対しても、当該TCPセッションの終端処理を行うサーバ切断機能96を実行する。これも具体的にはFIN/ACKパケットの往復による(S167)。その上で、当該URLへのアクセスが不可である情報を、URL又はHTTPの構文情報とともにキャッシュ30に記録するキャッシュ記録機能97を実行する(S168)。キャッシュ30は時間制限付きでこれらの情報をデータベースとして保持する。これで当該TCPセッションは終了する(S169)。なお、これらの終端処理とキャッシュ30への書き込みとは順番が前後してもよい。
【0057】
次に、上記の接続可否返答機能82による返答が、規制対象ではないとの返答であった場合(S161)、要求アドレス通過判定処理部24は、保持したままのパケットの転送許可をTCP層パケット処理部22へ指示する許可対応指示機能84を実行する(S171)。その上で、当該HTTPメッセージの終わりまで、通常のルーティング機能41で転送処理し(S172)、次のHTTP通信が開始となったら同様の手順を繰り返す(S173→S123)。