10 通信制御装置、12 通信制御ユニット、14 切替制御部、20 パケット処理回路、30 検索回路、32 位置検出回路、33 比較回路、34 インデックス回路、35 比較回路、36 バイナリサーチ回路、40 処理実行回路、50 第1データベース、57 ユーザデータベース、60 第2データベース、100 通信制御システム、110 運用監視サーバ、120 接続管理サーバ、130 メッセージ出力サーバ、131 メッセージ出力部、132 メッセージ保持部、133 履歴保持部、134 評価部、135 登録受付部、136 課金部、140 ログ管理サーバ、141 ログ出力制御回路、142 ログ出力設定部、143 ログ出力ポート、145 ログ出力制御装置、150 データベースサーバ、160 URLデータベース、161 ウイルス/フィッシングサイトリスト、162 ホワイトリスト、163 ブラックリスト、164 共通カテゴリリスト、250 ウェブサーバ、260 携帯電話端末、262 基地局装置、264 制御局装置、272 アクセスポイント、274,282,284 ルータ装置。
(前提技術)
まず、前提技術として、通信制御装置と、その周辺装置の構成及び動作の概要について説明し、更に、通信制御装置を用いたURLフィルタリング技術について説明した後、実施の形態として、通信制御装置からログを効率良く出力する技術について説明する。
図1は、前提技術に係る通信制御システムの構成を示す。通信制御システム100は、通信制御装置10と、通信制御装置10の動作を支援するために設けられた各種の周辺装置を含む。前提技術の通信制御装置10は、インターネットサービスプロバイダなどにより提供されるURLフィルタリング機能を実現する。ネットワークの経路に設けられた通信制御装置10は、コンテンツに対するアクセス要求を取得して、その内容を解析し、コンテンツに対するアクセスの許否を判断する。コンテンツに対するアクセスが許可される場合は、通信制御装置10は、そのアクセス要求を、コンテンツを保持するサーバへ送出する。コンテンツに対するアクセスが禁止される場合は、通信制御装置10は、そのアクセス要求を破棄し、要求元に対して警告メッセージなどを返信する。前提技術では、通信制御装置10は、HTTP(HyperText Transfer Protocol)の「GET」リクエストメッセージ等のアクセス要求を受信し、アクセス先のコンテンツのURLが、アクセスの許否を判断するための基準データのリストに合致するか否かを検索して、コンテンツに対するアクセスの許否を判断する。
周辺装置は、運用監視サーバ110、接続管理サーバ120、メッセージ出力サーバ130、ログ管理サーバ140、及びデータベースサーバ150を含む。接続管理サーバ120は、通信制御装置10に対する接続を管理する。接続管理サーバ120は、例えば、携帯電話端末から送出されたパケットを通信制御装置10で処理する際に、パケットに含まれる携帯電話端末を一意に識別する情報を用いて、通信制御装置10のユーザであることを認証する。いったん認証されると、その携帯電話端末に一時的に付されたIPアドレスから送出されたパケットは、一定の期間は接続管理サーバ120で認証せずに通信制御装置10へ送られて処理される。メッセージ出力サーバ130は、通信制御装置10により判定されたアクセスの許否の結果に応じて、アクセスの要求先又は要求元に対するメッセージを出力する。ログ管理サーバ140は、通信制御装置10の運用履歴を管理する。データベースサーバ150は、URLデータベース160から最新のデータベースを取得し、通信制御装置10に入力する。通信制御装置10の運用を止めずにデータベースを更新するために、通信制御装置10はバックアップ用のデータベースを有してもよい。運用監視サーバ110は、通信制御装置10と、接続管理サーバ120、メッセージ出力サーバ130、ログ管理サーバ140、データベースサーバ150などの周辺装置の運用状況を監視する。運用監視サーバ110は、通信制御システム100の中で最も優先度が高く、通信制御装置10及び全ての周辺装置の監視制御を行う。通信制御装置10は、後述するように、専用のハードウェア回路により構成されるが、運用監視サーバ110は、本出願人による特許第3041340号などの技術を利用して、バウンダリスキャン回路を利用して監視のためのデータを通信制御装置10などとの間で入出力することにより、通信制御装置10の運用中にも運用状況を監視することができる。
前提技術の通信制御システム100は、以下に説明するように、高速化のために専用のハードウェア回路により構成された通信制御装置10を、周辺に接続された各種の機能を有するサーバ群により制御する構成とすることにより、サーバ群のソフトウェアを適当に入れ替えることで、同様の構成により各種の機能を実現することができる。前提技術によれば、このような柔軟性の高い通信制御システムを提供することができる。
図2は、従来の通信制御装置1の構成を示す。従来の通信制御装置1は、受信側の通信制御部2と、パケット処理部3と、送出側の通信制御部4とを備える。通信制御部2及び4は、それぞれ、パケットの物理層の処理を行うPHY処理部5a及び5bと、パケットのMAC層の処理を行うMAC処理部6a及び6bとを備える。パケット処理部3は、IP(Internet Protocol)のプロトコル処理を行うIP処理部7、TCP(Transport Control Protocol)のプロトコル処理を行うTCP処理部8など、プロトコルに応じた処理を行うプロトコル処理部と、アプリケーション層の処理を行うAP処理部9とを備える。AP処理部9は、パケットに含まれるデータに応じて、フィルタリングなどの処理を実行する。
従来の通信制御装置1では、パケット処理部3は、汎用プロセッサであるCPUと、CPU上で動作するOSとを利用して、ソフトウェアにより実現されていた。しかしながら、このような構成では、通信制御装置1の性能はCPUの性能に依存することになり、高速に大容量のパケットを処理可能な通信制御装置を実現しようとしても、自ずと限界がある。例えば、64ビットのCPUであれば、一度に同時に処理可能なデータ量は最大で64ビットであり、それ以上の性能を有する通信制御装置は存在しなかった。また、汎用的な機能を有するOSの存在を前提としていたので、セキュリティホールなどが存在する可能性が絶無ではなく、OSのバージョンアップなどのメンテナンス作業を必要としていた。
図3は、前提技術の通信制御装置の構成を示す。通信制御装置10は、図2に示した従来の通信制御装置1においてはCPU及びOSを含むソフトウェアにより実現されていたパケット処理部3に代えて、ワイヤードロジック回路による専用のハードウェアにより構成されたパケット処理回路20を備える。汎用処理回路であるCPUにおいて動作するOSとソフトウェアにより通信データを処理するのではなく、通信データを処理するための専用のハードウェア回路を設けることにより、CPUやOSなどに起因する性能の限界を克服し、処理能力の高い通信制御装置を実現することが可能となる。
例えば、パケットフィルタリングなどを実行するために、パケットに含まれるデータに、フィルタリングの判断基準となる基準データが含まれるか否かを検索する場合に、CPUを用いて通信データと基準データを比較すると、一度に高々64ビットしか比較することができず、処理速度を向上させようとしてもCPUの性能で頭打ちになるという問題があった。CPUでは、通信データから64ビットをメモリへ読み上げ、基準データとの比較を行い、つづいて、次の64ビットをメモリへ読み上げる、という処理を何度も繰り返し行う必要があるので、メモリへの読み上げ時間が律速となり、処理速度に限界がある。
それに対し、前提技術では、通信データと基準データとを比較するために、ワイヤードロジック回路により構成された専用のハードウェア回路を設ける。この回路は、64ビットよりも長いデータ長、例えば、1024ビットのデータ長の比較を可能とするために、並列に設けられた複数の比較器を含む。このように、専用のハードウェアを設けることにより、同時に並列して多数のビットマッチングを実行することができる。従来のCPUを用いた通信制御装置1では一度に64ビットしか処理できなかったところを、一度に1024ビットの処理を可能にすることで、飛躍的に処理速度を向上させることができる。比較器の数を多くすれば処理能力も向上するが、コストやサイズも増大するので、所望の処理性能と、コスト、サイズ、などを考慮して、最適なハードウェア回路を設計すればよい。専用のハードウェア回路は、FPGA(Field Programmable Gate Array)などを用いて実現されてもよい。
また、前提技術の通信制御装置10は、ワイヤードロジック回路による専用のハードウェアにより構成されるので、OS(Operating System)を必要としない。このため、OSのインストール、バグ対応、バージョンアップなどの作業が必要なく、管理やメンテナンスのためのコストや工数を低減させることができる。また、汎用的な機能が求められるCPUとは異なり、不必要な機能を包含していないので、余計なリソースを用いることがなく、低コスト化、回路面積の低減、処理速度の向上などが望める。さらに、OSを利用していた従来の通信制御装置とは異なり、余分な機能を有しないので、セキュリティホールなどが発生する可能性が低く、ネットワークを介した悪意ある第三者からの攻撃に対する耐性に優れている。
従来の通信制御装置1は、CPUとOSを前提としたソフトウェアによりパケットを処理しており、パケットの全てのデータを受信してからプロトコル処理を行い、データがアプリケーションに渡される。それに対して、本前提技術の通信制御装置10では、専用のハードウェア回路により処理を行うので、パケットの全てのデータを受信してから処理を開始する必要はなく、処理に必要なデータを受信すれば、後続のデータの受信を待たずに、任意の時点で処理を開始することができる。例えば、後述する位置検出回路における位置検出処理は、比較対象データの位置を特定するための位置特定データを受信した時点で開始することができる。このように、全てのデータの受信を待たずに様々な処理をフローティングで実行することができるので、パケットのデータを処理するのに要する時間を短縮することができる。
図4は、パケット処理回路の内部構成を示す。パケット処理回路20は、通信データに対して実行する処理の内容を決定するための基準となる基準データを記憶する第1データベース50と、受信された通信データの中に基準データが含まれているか否かを、通信データと基準データとを比較することにより検索する検索回路30と、検索回路30による検索結果と通信データに対して実行する処理の内容とを対応づけて記憶する第2データベース60と、検索回路30による検索結果と第2データベース60に記憶された条件とに基づいて通信データを処理する処理実行回路40とを含む。
検索回路30は、通信データの中から基準データと比較すべき比較対象データの位置を検出する位置検出回路32と、第1データベース50に記憶された基準データを3以上の範囲に分割したとき、比較対象データがそれらの範囲のうちいずれに属するかを判定する判定回路の一例であるインデックス回路34と、判定された範囲の中で比較対象データと合致する基準データを検索するバイナリサーチ回路36とを含む。比較対象データを基準データの中から検索する方法としては、任意の検索技術を利用可能であるが、前提技術ではバイナリサーチ法を用いる。
図5は、位置検出回路の内部構成を示す。位置検出回路32は、比較対象データの位置を特定するための位置特定データと通信データとを比較するための複数の比較回路33a〜33fを含む。ここでは、6個の比較回路33a〜33fが設けられているが、後述するように、比較回路の個数は任意でよい。それぞれの比較回路33a〜33fには、通信データが、所定のデータ長、例えば、1バイトずつずらして入力される。そして、これら複数の比較回路33a〜33fにおいて、同時に並列して、検出すべき位置特定データと通信データとの比較がなされる。
前提技術においては、通信制御装置10の動作を説明するための例として、通信データ中に含まれる「No. ###」という文字列を検出し、その文字列中に含まれる数字「###」を基準データと比較して、基準データに合致した場合はパケットの通過を許可し、合致しなかった場合はパケットを破棄する処理を行う場合について説明する。
図5の例では、通信データの中から、数字「###」の位置を特定するための位置特定データ「No.」を検出するために、通信データ「01No. 361・・・」を、1文字ずつずらして比較回路33a〜33fに入力している。すなわち、比較回路33aには「01N」が、比較回路33bには「1No」が、比較回路33cには「No.」が、比較回路33dには「o. 」が、比較回路33eには「. 3」が、比較回路33fには「 36」が、それぞれ入力される。ここで、比較回路33a〜33fが同時に位置特定データ「No.」との比較を実行する。これにより、比較回路33cがマッチし、通信データの先頭から3文字目に「No.」という文字列が存在することが検出される。こうして、位置検出回路32により検出された位置特定データ「No.」の次に、比較対象データである数字のデータが存在することが検出される。
CPUにより同様の処理を行うならば、まず、文字列「01N」を「No.」と比較し、続いて、文字列「1No」を「No.」と比較する、というように、先頭から順に1つずつ比較処理を実行する必要があるため、検出速度の向上は望めない。これに対し、前提技術の通信制御装置10では、複数の比較回路33a〜33fを並列に設けることにより、CPUではなしえなかった同時並列的な比較処理が可能となり、処理速度を格段に向上させることができる。比較回路は多ければ多いほど同時に比較可能な位置が多くなるので、検出速度も向上するが、コスト、サイズ、などを考慮の上、所望の検出速度を得られるのに十分な数の比較回路を設ければよい。
位置検出回路32は、位置特定データを検出するためだけでなく、汎用的に文字列を検出する回路として利用されてもよい。また、文字列だけでなく、ビット単位で位置特定データを検出するように構成されてもよい。
図6は、第1データベースの内部データの例を示す。第1データベース50には、パケットのフィルタリング、ルーティング、スイッチング、置換などの処理の内容を決定するための基準となる基準データが、何らかのソート条件にしたがってソートされて格納されている。図6の例では、1000個の基準データが記憶されている。
第1データベース50の先頭のレコードには、通信データ中の比較対象データの位置を示すオフセット51が格納されている。例えば、TCPパケットにおいては、パケット内のデータ構成がビット単位で定められているため、パケットの処理内容を決定するためのフラグ情報などの位置をオフセット51として設定しておけば、必要なビットのみを比較して処理内容を決定することができるので、処理効率を向上させることができる。また、パケットのデータ構成が変更された場合であっても、オフセット51を変更することで対応することができる。第1データベース50には、比較対象データのデータ長を格納しておいてもよい。これにより、必要な比較器のみを動作させて比較を行うことができるので、検索効率を向上させることができる。
インデックス回路34は、第1データベース50に格納されている基準データを3以上の範囲52a〜52dに分割したとき、比較対象データがそれらの範囲のうちいずれに属するかを判定する。図6の例では、1000個の基準データは、250個ずつ4つの範囲52a〜52dに分割されている。インデックス回路34は、範囲の境界の基準データと比較対象データとを比較する複数の比較回路35a〜35cを含む。比較回路35a〜35cにより比較対象データと境界の基準データとを同時に並列して比較することにより、比較対象データがいずれの範囲に属するかを1度の比較処理で判定することができる。
インデックス回路34の比較回路35a〜35cに入力される境界の基準データは、通信制御装置10の外部に設けられた装置により設定されてもよいし、予め第1データベース50の所定位置の基準データが自動的に入力されるようにしてもよい。後者の場合、第1データベース50を更新しても、自動的に第1データベース50の所定位置の基準データが比較回路35a〜35cに入力されるので、初期設定などを必要とせず、直ちに通信制御処理を実行させることができる。
前述したように、CPUによりバイナリサーチを実行する場合は、同時に複数の比較を実行することができないが、前提技術の通信制御装置10では、複数の比較回路35a〜35cを並列に設けることにより、同時並列的な比較処理を可能とし、検索速度を格段に向上させることができる。
インデックス回路34により範囲が判定されると、バイナリサーチ回路36がバイナリサーチ法により検索を実行する。バイナリサーチ回路36は、インデックス回路34により判定された範囲をさらに2分割し、その境界位置にある基準データと比較対象データとを比較することにより、いずれの範囲に属するかを判定する。バイナリサーチ回路36は、基準データと比較対象データとをビット単位で比較する比較回路を複数個、例えば前提技術では1024個含んでおり、1024ビットのビットマッチングを同時に実行する。2分割された範囲のいずれに属するかが判定されると、さらに、その範囲を2分割して境界位置にある基準データを読み出し、比較対象データと比較する。以降、この処理を繰り返すことにより範囲をさらに限定し、最終的に比較対象データと合致する基準データを検索する。
前述した例を用いてさらに詳細に動作を説明する。図5に示した通信データにおいて、位置特定データ「No.」につづく比較対象データは「361」という数字である。位置特定データ「No.」と比較対象データ「361」との間には1文字分のスペースが存在しているので、このスペースを比較対象データから除くために、オフセット51が「8」ビットに設定されている。バイナリサーチ回路36は、位置特定データ「No.」につづく通信データから、「8」ビット、すなわち1バイト分をスキップし、さらにつづく「361」を比較対象データとして読み込む。
インデックス回路34の比較回路35a〜35cには、比較対象データとして「361」が入力され、基準データとして、比較回路35aには、範囲52aと52bの境界にある基準データ「378」が、比較回路35bには、範囲52bと52cの境界にある基準データ「704」が、比較回路35cには、範囲52cと52dの境界にある基準データ「937」が、それぞれ入力される。比較回路35a〜35cにより同時に比較が行われ、比較対象データ「361」が範囲52aに属することが判定される。以降、バイナリサーチ回路36が基準データの中に比較対象データ「361」が存在するか否かを検索する。
図7は、第1データベースの内部データの別の例を示す。図7に示した例では、基準データのデータ数が、第1データベース50に保持可能なデータ数、ここでは1000個よりも少ない。このとき、第1データベース50には、最終データ位置から降順に基準データが格納される。そして、残りのデータには0が格納される。データベースのローディング方法として、先頭からデータを配置せずにローディングエリアの後方から配置し、ローディングエリア先頭に空きが生じた場合は全ての空きをゼロサプレスすることで、データベースは常にフルの状態になり、バイナリー検索する場合の最大時間を一定にすることができる。また、バイナリサーチ回路36は、検索中に基準データとして「0」を読み込んだときには、比較結果が自明であるから、比較を行わずに範囲を特定して、次の比較にうつることができる。これにより、検索速度を向上させることができる。
CPUによるソフトウェア処理においては、第1データベース50に基準データを格納する際に、最初のデータ位置から昇順に基準データが格納される。残りのデータには、例えば最大値が格納されることになるが、この場合、バイナリサーチにおいて、上述したような比較処理の省略はできない。上述した比較技術は、専用のハードウェア回路により検索回路30を構成したことにより実現される。
図8は、第1データベースの内部データのさらに別の例を示す。図8に示した例では、基準データを均等に3以上の範囲に分割するのではなく、範囲52aは500個、範囲52bは100個というように、範囲に属する基準データの数が不均一になっている。これらの範囲は、通信データ中における基準データの出現頻度の分布に応じて設定されてもよい。すなわち、それぞれの範囲に属する基準データの出現頻度の和がほぼ同じになるように範囲が設定されてもよい。これにより、検索効率を向上させることができる。インデックス回路34の比較回路35a〜35cに入力される基準データは、外部から変更可能になっていてもよい。これにより、範囲を動的に設定することができ、検索効率を最適化することができる。
図9は、バイナリサーチ回路に含まれる比較回路の構成を示す。前述したように、バイナリサーチ回路36は、1024個の比較回路36a、36b、・・・、を含む。それぞれの比較回路36a、36b、・・・、には、基準データ54と比較対象データ56が1ビットずつ入力され、それらの大小が比較される。インデックス回路34の各比較回路35a〜35cの内部構成も同様である。このように、専用のハードウェア回路で比較処理を実行することにより、多数の比較回路を並列して動作させ、多数のビットを同時に比較することができるので、比較処理を高速化することができる。
図10は、第2データベースの内部データの例を示す。第2データベース60は、検索回路30による検索結果を格納する検索結果欄62と、通信データに対して実行する処理の内容を格納する処理内容欄64とを含み、検索結果と処理内容とを対応づけて保持する。図10の例では、通信データに基準データが含まれている場合は、そのパケットの通過を許可し、含まれていない場合は、そのパケットを破棄するという条件が設定されている。処理実行回路40は、検索結果に基づいて第2データベース60から処理内容を検索し、通信データに対して処理を実行する。処理実行回路40も、ワイヤードロジック回路により実現されてもよい。
図11は、第2データベースの内部データの別の例を示す。図11の例では、基準データごとに、処理内容が設定されている。パケットの置換を行う場合、置換先のデータを第2データベース60に格納しておいてもよい。パケットのルーティングやスイッチングを行う場合、経路に関する情報を第2データベース60に格納しておいてもよい。処理実行回路40は、検索回路30による検索結果に応じて、第2データベース60に格納された、フィルタリング、ルーティング、スイッチング、置換などの処理を実行する。図11のように、基準データごとに処理内容を設定する場合、第1データベース50と第2データベース60とを統合してもよい。
第1のデータベース及び第2のデータベースは、外部から書き換え可能に設けられる。これらのデータベースを入れ替えることにより、同じ通信制御装置10を用いて、さまざまなデータ処理や通信制御を実現することができる。また、検索対象となる基準データを格納したデータベースを2以上設けて、多段階の検索処理を行ってもよい。このとき、検索結果と処理内容とを対応づけて格納したデータベースを2以上設けて、より複雑な条件分岐を実現してもよい。このように、データベースを複数設けて多段階の検索を行う場合に、位置検出回路32、インデックス回路34、バイナリサーチ回路36などを複数設けてもよい。
上述した比較に用いられるデータは、同じ圧縮ロジックにより圧縮されてもよい。比較に際して、比較元のデータと比較先のデータが同じ方式で圧縮されていれば、通常と同様の比較が可能である。これにより、比較の際にローディングするデータ量を低減することができる。ローディングするデータ量が少なくなれば、メモリからデータを読み出すのに要する時間が短縮されるので、全体の処理時間も短縮することができる。また、比較器の量を削減することができるので、装置の小型化、軽量化、低コスト化に寄与することができる。比較に用いられるデータは、圧縮された形式で格納されていてもよいし、メモリから読み出した後、比較の前に圧縮されてもよい。
図12は、前提技術の通信制御装置の別の構成例を示す。本図に示した通信制御装置10は、図3に示した通信制御装置10と同様の構成を備える通信制御ユニット12を2つ有している。また、それぞれの通信制御ユニット12の動作を制御する切替制御部14が設けられている。それぞれの通信制御ユニット12は、2つの入出力インタフェース16を有しており、それぞれの入出力インタフェース16を介して、上流側、下流側の2つのネットワークに接続されている。通信制御ユニット12は、いずれか一方のネットワークから通信データを入力し、処理したデータを他方のネットワークに出力する。切替制御部14は、それぞれの通信制御ユニット12に設けられた入出力インタフェース16の入出力を切り替えることにより、通信制御ユニット12における通信データの流れの方向を切り替える。これにより、一方向だけではなく、双方向の通信制御が可能となる。
切替制御部14は、通信制御ユニット12の一方がインバウンド、他方がアウトバウンドのパケットを処理するように制御してもよいし、双方がインバウンドのパケットを処理するように制御してもよいし、双方がアウトバウンドのパケットを処理するように制御してもよい。これにより、例えばトラフィックの状況や目的などに応じて、制御する通信の方向を可変とすることができる。
切替制御部14は、各通信制御ユニット12の動作状況を取得し、その動作状況に応じて通信制御の方向を切り替えてもよい。例えば、一方の通信制御ユニット12を待機状態として、他方の通信制御ユニット12を動作させている場合に、その通信制御ユニット12が故障などにより停止したことを検知したときに、代替として待機中の通信制御ユニット12を動作させてもよい。これにより、通信制御装置10のフォールトトレランスを向上させることができる。また、一方の通信制御ユニット12に対して、データベースの更新などのメンテナンスを行うときに、他方の通信制御ユニット12を代替として動作させてもよい。これにより、通信制御装置10の運用を停止させずに、適切にメンテナンスを行うことができる。
通信制御装置10に3以上の通信制御ユニット12が設けられてもよい。切替制御部14は、例えば、トラフィックの状況を取得して、通信量の多い方向の通信制御処理に、より多くの通信制御ユニット12を割り当てるように、各通信制御ユニット12の通信の方向を制御してもよい。これにより、ある方向の通信量が増加しても、通信速度の低下を最小限に抑えることができる。
なお、複数の通信制御ユニット12の間で、通信制御部2又は4の一部が共用されてもよい。また、パケット処理回路20の一部が共用されてもよい。
上述のデータ処理装置として、以下のような態様が考えられる。
[態様1]
取得したデータに対して実行する処理の内容を決定するための基準となる基準データを記憶する第1記憶部と、
前記データの中に前記基準データが含まれているか否かを、前記データと前記基準データとを比較することにより検索する検索部と、
前記検索部による検索結果と前記処理の内容とを対応づけて記憶する第2記憶部と、
前記検索結果に基づいて、前記検索結果に対応づけられた処理を前記データに対して実行する処理部と、を含み、
前記検索部は、ワイヤードロジック回路により構成される
ことを特徴とするデータ処理装置。
[態様2]
上記態様1のデータ処理装置において、前記ワイヤードロジック回路は、前記データと前記基準データとをビット単位で比較する第1比較回路を複数含むことを特徴とするデータ処理装置。
[態様3]
上記態様1のデータ処理装置において、前記検索部は、前記データの中から前記基準データと比較すべき比較対象データの位置を検出する位置検出回路を含むことを特徴とするデータ処理装置。
[態様4]
上記態様3のデータ処理装置において、前記位置検出回路は、前記比較対象データの位置を特定するための位置特定データと前記データとを比較する第2比較回路を複数含み、前記複数の第2比較回路に前記データを所定のデータ長ずつ位置をずらして入力し、前記位置特定データと同時に並列して比較することを特徴とするデータ処理装置。
[態様5]
上記態様1から態様2のいずれかのデータ処理装置において、前記検索部は、バイナリサーチにより前記データの中に前記基準データが含まれているか否かを検索するバイナリサーチ回路を含むことを特徴とするデータ処理装置。
[態様6]
上記態様5のデータ処理装置において、前記第1記憶部に保持可能なデータ数よりも前記基準データのデータ数の方が少ない場合、前記第1記憶部の最終データ位置から降順に前記基準データを格納し、残りのデータに0を格納することを特徴とするデータ処理装置。
[態様7]
上記態様1から態様6のいずれかのデータ処理装置において、前記検索部は、前記第1記憶部に記憶された複数の基準データを3以上の範囲に分割したとき、前記基準データと比較すべき比較対象データがそれらの範囲のうちいずれに属するかを判定する判定回路を含むことを特徴とするデータ処理装置。
[態様8]
上記態様7のデータ処理装置において、前記判定回路は、前記範囲の境界の基準データと前記比較対象データとを比較する第3比較回路を複数含み、前記複数の第3比較回路により前記比較対象データが前記3以上の範囲のいずれに属するかを同時に並列して判定することを特徴とするデータ処理装置。
[態様9]
上記態様8のデータ処理装置において、前記第1記憶部の所定位置に記憶された前記基準データが、前記境界の基準データとして前記第3の比較回路に入力されることを特徴とするデータ処理装置。
[態様10]
上記態様7又は態様8のデータ処理装置において、前記範囲は、前記データ中における前記基準データの出現頻度の分布に応じて設定されることを特徴とするデータ処理装置。
[態様11]
上記態様1から態様10のいずれかのデータ処理装置において、前記第1記憶部は、前記データ中の比較対象データの位置を示す情報を更に記憶し、前記検索部は、前記位置を示す情報に基づいて前記比較対象データを抽出することを特徴とするデータ処理装置。
[態様12]
上記態様1から態様11のいずれかのデータ処理装置において、前記第1記憶部又は前記第2記憶部は、外部から書き換え可能に設けられることを特徴とするデータ処理装置。
[態様13]
上記態様1から12のいずれかのデータ処理装置において、前記検索部は、通信パケットの全てのデータの取得を待たずに、前記基準データと比較すべきデータを取得した時点で、そのデータと前記基準データの比較を開始することを特徴とするデータ処理装置。
[態様14]
上記態様1から13のいずれかのデータ処理装置を複数備え、それぞれの前記データ処理装置は、通信回線との間でデータを入出力するインタフェースを2つ備えており、それぞれの前記インタフェースの入力と出力を切り替えることにより、前記データを処理する方向を可変に制御されることを特徴とするデータ処理装置。
つづいて、上述した通信制御装置10を利用したURLフィルタリング技術について説明する。
図13は、URLフィルタリングのためのパケット処理回路20の内部構成を示す。パケット処理回路20は、第1データベース50として、ユーザデータベース57、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、及び共通カテゴリリスト164を備える。ユーザデータベース57は、通信制御装置10を利用するユーザの情報を格納する。通信制御装置10は、ユーザからユーザを識別する情報を受け付け、検索回路30により受け付けた情報をユーザデータベース57とマッチングして、ユーザを認証する。ユーザを識別する情報として、TCP/IPパケットのIPヘッダに格納されたソースアドレスを利用してもよいし、ユーザからユーザIDとパスワードなどを受け付けてもよい。前者の場合、パケット中のソースアドレスの格納位置は決まっているので、検索回路30においてユーザデータベース57とマッチングするときに、位置検出回路32により位置を検出する必要はなく、オフセット51として、ソースアドレスの格納位置を指定すればよい。ユーザデータベース57に登録されたユーザであることが認証されると、続いて、コンテンツに対するアクセスの許否を判断するために、コンテンツのURLが、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、及び共通カテゴリリスト164に照合される。ホワイトリスト162及びブラックリスト163はユーザごとに設けられているので、ユーザが認証されてユーザIDが一意に決まると、そのユーザのホワイトリスト162及びブラックリスト163が検索回路30に与えられる。
ウイルス/フィッシングサイトリスト161は、コンピュータウイルスを含むコンテンツのURLのリストと、フィッシング詐欺に用いられる「罠」のサイトのURLのリストとを格納する。ウイルス/フィッシングサイトリスト161に格納されたURLのコンテンツに対するアクセス要求は拒否される。これにより、ユーザが気づかずに、又は騙されて、ウイルスサイトやフィッシングサイトにアクセスしようとする場合であっても、適切にアクセスを禁止し、ウイルスやフィッシング詐欺の被害からユーザを保護することができる。また、ユーザの端末にウイルスサイトやフィッシングサイトのリストを格納させて端末側でアクセス制限を行うのではなく、通信経路に設けられた通信制御装置10で一元的にアクセス制限を行うので、より確実かつ効率的にアクセス制限を行うことができる。通信制御装置10は、ウイルスサイトやフィッシングサイトではない正当なサイトであることが認証機関により証明された認証済みサイトのリストを取得して保持し、そのリストに格納されたURLに対するアクセスを許可するようにしてもよい。また、正当なサイトがハッキングなどにより乗っ取られて、ウイルスが組み込まれたり、フィッシング詐欺に利用されたりする事態が生じた場合、正当なサイトの運営者などがウイルス/フィッシングサイトリスト161に乗っ取られたサイトのURLを登録し、サイトが正常な状態に回復するまでの間、一時的にアクセスを禁止できるようにしてもよい。また、URLのリストとともに、IP番号、TCP番号、MACアドレス等の情報を組み合わせてチェックしてもよい。これにより、更に精度の高い禁止条件を設定することができるので、より確実にウイルスサイトやフィッシングサイトをフィルタリングすることができる。
ホワイトリスト162は、ユーザごとに設けられ、アクセスを許可するコンテンツのURLのリストを格納する。ブラックリスト163は、ユーザごとに設けられ、アクセスを禁止するコンテンツのURLのリストを格納する。図14(a)は、ウイルス/フィッシングサイトリスト161の内部データの例を示し、図14(b)は、ホワイトリスト162の内部データの例を示し、図14(c)は、ブラックリスト163の内部データの例を示す。ウイルス/フィッシングサイトリスト161、ホワイトリスト162、及びブラックリスト163には、それぞれ、カテゴリ番号欄165、URL欄166、及びタイトル欄167が設けられている。URL欄166には、アクセスが許可される、又は禁止されるコンテンツのURLが格納される。カテゴリ番号欄165には、コンテンツのカテゴリの番号が格納される。タイトル欄167には、コンテンツのタイトルが格納される。
共通カテゴリリスト164は、URLで示されるコンテンツを複数のカテゴリに分類するためのリストを格納する。図15は、共通カテゴリリスト164の内部データの例を示す。共通カテゴリリスト164にも、カテゴリ番号欄165、URL欄166、及びタイトル欄167が設けられている。
通信制御装置10は、「GET」リクエストメッセージ等の中に含まれるURLを抽出し、そのURLが、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、又は共通カテゴリリスト164に含まれるか否かを検索回路30により検索する。このとき、例えば、位置検出回路32により「http://」という文字列を検出し、その文字列に続くデータ列を対象データとして抽出してもよい。抽出されたURLは、インデックス回路34及びバイナリサーチ回路36により、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、及び共通カテゴリリスト164の基準データとマッチングされる。
図16(a)、(b)、(c)、及び(d)は、URLフィルタリングのための第2データベース60の内部データの例を示す。図16(a)は、ウイルス/フィッシングサイトリスト161に対する検索結果と処理内容を示す。GETリクエスト等に含まれるURLが、ウイルス/フィッシングサイトリスト161に含まれるURLに合致した場合、そのURLに対するアクセスは禁止される。図16(b)は、ホワイトリスト162に対する検索結果と処理内容を示す。GETリクエスト等に含まれるURLが、ホワイトリスト162に含まれるURLに合致した場合、そのURLに対するアクセスは許可される。図16(c)は、ブラックリスト163に対する検索結果と処理内容を示す。GETリクエスト等に含まれるURLが、ブラックリスト163に含まれるURLに合致した場合、そのURLに対するアクセスは禁止される。
図16(d)は、共通カテゴリリスト164に対する検索結果と処理内容を示す。図16(d)に示すように、共通カテゴリリスト164に対する検索結果に対して、ユーザは、カテゴリごとに、そのカテゴリに属するコンテンツに対するアクセスを許可するか禁止するかを、個別に設定することができる。共通カテゴリリスト164に関する第2データベース60には、ユーザID欄168及びカテゴリ欄169が設けられている。ユーザID欄168には、ユーザを識別するためのIDが格納される。カテゴリ欄169には、57種に分類されたカテゴリのそれぞれについて、カテゴリに属するコンテンツに対するアクセスをユーザが許可するか否かを示す情報が格納される。GETリクエストに含まれるURLが、共通カテゴリリスト164に含まれるURLに合致した場合、そのURLのカテゴリと、ユーザIDに基づいて、そのURLに対するアクセスの許否が判定される。なお、図16(d)では、共通カテゴリの数が57であるが、それ以外であってもよい。
図17は、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、及び共通カテゴリリスト164の優先度を示す。前提技術では、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、共通カテゴリリスト164の順に優先度が高く、例えば、ホワイトリスト162に格納されたアクセスが許可されるコンテンツのURLであったとしても、そのURLがウイルス/フィッシングサイトリスト161に格納されていれば、コンピュータウイルスを含むコンテンツ、又はフィッシング詐欺に用いられるコンテンツであるとしてアクセスが禁止される。
従来、ソフトウェアを用いて、このような優先度を考慮したマッチングを行うときは、例えば、優先度の高いリストから順にマッチングを行って最初にヒットしたものを採用するか、優先度の低いリストから順にマッチングを行って後からヒットしたものを上書きするか、いずれかの方法がとられていた。しかしながら、前提技術では、専用のハードウェア回路により構成された通信制御装置10を利用することにより、ウイルス/フィッシングサイトリスト161のマッチングを行う検索回路30aと、ホワイトリスト162のマッチングを行う検索回路30bと、ブラックリスト163のマッチングを行う検索回路30cと、共通カテゴリリスト164のマッチングを行う検索回路30dとを設けて、それぞれの検索回路30において同時に並列してマッチングを行う。そして、複数のリストでヒットした場合は、優先度の高いものを採用する。これにより、複数のデータベースが設けられ、それらに優先度が設定されている場合であっても、検索時間を大幅に短縮することができる。
ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、及び共通カテゴリリスト164のいずれを優先してアクセスの許否を判断するかは、例えば、第2データベース60に設定されていてもよい。いずれのリストを優先するかに応じて第2データベース60の条件を書き換えてもよい。
このように、複数のデータベースを利用してURLに基づいたフィルタリングを行う際に、データベースに優先度を設定して優先度に応じたフィルタリング処理を行うことができるように構成し、かつ、ウイルス/フィッシングサイトリスト161によるフィルタリングを最優先することで、ユーザによるホワイトリスト162などの設定状況にかかわらず、ウイルスサイトやフィッシングサイトへのアクセスを確実に禁止することができる。これにより、ウイルスやフィッシング詐欺の被害からユーザを適切に保護することができる。
コンテンツに対するアクセスが許可された場合は、処理実行回路40は、メッセージ出力サーバ130にその旨を通知するための信号を出力する。メッセージ出力サーバ130は、コンテンツを保持するサーバに向けて「GET」リクエストメッセージを送出する。コンテンツに対するアクセスが禁止された場合は、処理実行回路40が、メッセージ出力サーバ130にその旨を通知するための信号を出力すると、メッセージ出力サーバ130は、アクセス先のサーバに「GET」リクエストメッセージを送信せずに破棄する。このとき、アクセスが禁止された旨の応答メッセージを要求元に送信してもよい。また、強制的に別のウェブページに転送させてもよい。この場合、処理実行回路40は、デスティネーションアドレスとURLを転送先のものに書き換えて送出する。応答メッセージや転送先のURLなどの情報は、第2データベース60やメッセージ出力サーバ130などに格納されていてもよい。
メッセージ出力サーバ130は、pingコマンドなどを用いて、要求元が実際に存在することを確認し、また、存在する場合はその状態を確認してから、要求元に対してメッセージを出力してもよい。メッセージ出力サーバ130から要求元へ送信されるメッセージは、ユーザごとに設定可能としてもよいし、アクセス先のコンテンツごとに、カテゴリごとに、又は、ホワイトリスト162やブラックリスト163などのデータベースごとに、設定可能としてもよい。例えば、アクセスが禁止されたときに表示される画面をユーザがカスタマイズしてメッセージ出力サーバ130に登録できるようにしてもよい。また、上述したように、正当なサイトがハッキングされてアクセスを一時的に制限しているときに、正当なサイトのミラーサイトへ誘導するメッセージを出力するようにしてもよい。
メッセージ出力サーバ130は、メッセージの送出履歴を管理し、そのメッセージ送出履歴情報を各種制御に利用してもよい。例えば、同一の要求元から短時間に多数のアクセス要求が発信されている場合、サービス妨害攻撃(Denial of Service attack:DoSアタック)などである可能性があるので、その要求元をアクセス拒否リストに登録し、その要求元からのパケットを要求先へ送らずに遮断してもよい。また、メッセージの送出履歴を統計処理し、ウェブサイトの管理者などへ提供してもよい。これにより、ユーザのアクセス履歴をマーケティングに利用したり、通信状況の制御などに活用したりすることができる。また、状況に応じてメッセージの送出回数を少なくしたり、逆に増やしたりする事もできる。たとえば特定のIP番号からアクセス要求が発信された場合に、その1通のリクエストメッセージに対して、何倍ものメッセージを送ることもできる。
以上の構成及び動作により、不適切なコンテンツに対するアクセスを禁止することができる。また、検索回路30がFPGAなどにより構成された専用のハードウェア回路であるから、上述したように高速な検索処理が実現され、トラフィックに与える影響を最小限に抑えつつ、フィルタリング処理を実行することができる。インターネットサービスプロバイダなどが、このようなフィルタリングのサービスを提供することにより、付加価値が高まり、より多くのユーザを集めることができる。
ホワイトリスト162又はブラックリスト163は、全てのユーザに対して共通に設けられてもよい。
つづいて、アクセス要求元に対してメッセージを出力する技術を提案する。また、このメッセージを利用したビジネスモデルを提案する。更に、このメッセージを利用して、悪意ある攻撃に対して適切な防御策を講じる技術を提案する。
前提技術で説明したように、通信制御装置10は、コンテンツに対するアクセス要求のパケットを受信し、そのアクセスの可否を判定して、アクセスが禁止された場合は、メッセージ出力サーバ130にエラーメッセージなどのメッセージの出力を指示する。本実施の形態では、このメッセージ出力サーバ130によりアクセス要求元へ出力されるメッセージを、アクセス要求元のユーザごと、アクセス先のURLごと、カテゴリごと、データベースごとなど、柔軟に設定可能とし、状況に応じて適切なメッセージを出力することを可能とする。アクセスが禁止された場合に限らず、コンテンツとメッセージを対応づけて保持しておき、コンテンツに対するアクセス要求を発信したユーザに対して、そのコンテンツに対応づけられたメッセージを出力するようにしてもよい。
図18は、実施の形態に係るメッセージ出力サーバ130の構成を示す。本実施の形態のメッセージ出力サーバ130は、メッセージ出力部131、メッセージ保持部132、履歴保持部133、評価部134、登録受付部135、及び課金部136を含む。
メッセージ保持部132は、アクセス要求元に対して出力するメッセージを保持する。メッセージは、ユーザごとに設定されてもよい。この場合、メッセージ保持部132は、ユーザを識別する情報と、そのユーザに出力するメッセージ又はそのメッセージを格納したファイルのファイル名などを対応づけて格納する。メッセージは、カテゴリリストにおけるカテゴリごとに設定されてもよいし、アクセス先のURLごとに設定されてもよい。例えば、サイト運営者が、URLごとに広告情報などをメッセージとして設定してもよい。メッセージ保持部132が、ユーザごと、URLごとなど、複数の条件に応じたメッセージを設定可能である場合には、いずれのメッセージを優先するかを示す情報を更に格納してもよい。
登録受付部135は、メッセージの登録を受け付ける。メッセージをユーザごとに設定可能とする場合、登録受付部135は、ユーザからメッセージの登録を受け付け、メッセージ保持部132に登録する。その他、コンテンツの提供者、広告提供事業者などから、メッセージの登録を受け付けてもよい。メッセージの登録者に対して登録料を課金する場合は、登録受付部135は、メッセージの登録を受け付けると、登録料を課金するよう課金部136に指示する。課金部136は、登録者のアカウントから登録料を減じる処理を行う。
メッセージがアクセス要求元のユーザごとに設定されている場合、メッセージ出力部131は、アクセス要求のパケットを処理する接続管理サーバ120又は通信制御装置10から、アクセス要求元のユーザのユーザIDなどを取得し、メッセージ保持部132を参照して、そのユーザに設定されたメッセージを出力する。メッセージがアクセス先のURL、カテゴリごとに設定されている場合、メッセージ出力部131は、通信制御装置10から、アクセス先のURL又はカテゴリの識別情報などを取得し、メッセージ保持部132を参照して、そのURL又はカテゴリに設定されたメッセージを出力する。メッセージ出力部131は、メッセージを出力した履歴を履歴保持部133に登録する。また、メッセージの出力に対してメッセージの登録者又はメッセージの受信者に対価を課金する場合は、課金部136に課金を指示する。
第1データベース50のリストごとにメッセージを設定する場合、例えば、ウイルス/フィッシングサイトリスト161に登録されたURLへのアクセスを要求したユーザに、「ウイルス感染サイトであるため、アクセスが制限されました。」「フィッシングサイトであるため、アクセスが制限されました。」など、アクセスを禁止した理由をメッセージとして出力することができる。また、共通カテゴリリスト164のカテゴリごとにメッセージを設定する場合も、例えば、「閲覧禁止カテゴリであるため、アクセスが制限されました。」など、アクセスを禁止した理由をメッセージとして出力することができる。それぞれのリストに登録されているURLごとにメッセージを設定する場合も同様である。
アクセス要求元のユーザごとにメッセージを設定する場合、例えば、企業などにおいて役職等に応じたアクセス権限が設定されているときに、「このサイトにアクセスする権限がありません。」などのメッセージを出力することができる。また、親が子供に携帯電話などを与える場合に、子供が不適切なサイトへアクセスしようとしたとき、別の健全な又は優良なサイトへのリンクを含むメッセージを出力し、そのリンク先へ誘導してもよい。
アクセス先のカテゴリやURLごとに、広告などを含むメッセージを設定してもよい。例えば、サイトの内容に関連した広告をメッセージに含ませてもよい。これにより、ユーザが閲覧しようとしたサイトに関連する広告を提供することができるので、広告効果を高めることができる。また、ユーザごとに、広告などを含むメッセージを設定してもよい。例えば、ユーザが、関心のある分野を設定しておき、それに属する広告などの情報をメッセージに含ませてもよい。
メッセージは、別のサイトへのリンクを含んでもよい。別のサイトへのリンクの例として、広告を提供するサイトへのリンク、アクセス先のコンテンツに関連するサイトへのリンク、人気ランキングの上位のサイトへのリンク、認証局により認定された安全なサイトへのリンク、などを含んでもよい。例えば、正規のサイトがハッキングを受けて閉鎖されているような場合に、そのサイトへアクセスしようとするユーザに対して、ミラーサイトへのリンクを含むメッセージを出力してもよい。また、サイトのURLを移転した場合に、移転前のURLへアクセスしようとするユーザに対して、移転先のURLへのリンクを含むメッセージを出力してもよい。また、メッセージ出力部131は、アクセス先のコンテンツに関連するサイトのうち、関連度の高いサイト、人気のあるサイト、優良度の高いサイト、認証局により認証されたサイトなどを抽出してリストを作成し、メッセージに含ませてもよい。
評価部134は、履歴保持部133に保持されたメッセージ出力履歴を参照して、通信状況やアクセス要求元の状況などを評価する。評価部134は、メッセージの送出履歴を統計処理し、ウェブサイトの管理者などへ提供してもよい。これにより、ユーザのアクセス履歴をマーケティングに利用したり、通信状況の制御などに活用したりすることができる。また、ユーザの端末が定期的にアクセス要求を発信するように設定しておき、それに対するメッセージの送出履歴を参照して、ユーザの行動履歴などを把握して利用できるようにしてもよい。
評価部134は、同一の要求元から短時間に多数のアクセス要求が発信されている場合、サービス妨害攻撃(Denial of Service attack:DoSアタック)などである可能性があると評価して、その要求元をアクセス拒否リストに登録し、その要求元からのパケットを要求先へ送らずに遮断してもよい。このとき、評価部134は、pingコマンドなどを用いて要求元が実際に存在することを確認し、また、存在する場合はその状態を確認してもよい。サービス妨害攻撃など不正なアクセス要求を発信している要求元を特定した場合、メッセージ出力部131は、その要求元に対してメッセージを出力してもよい。本実施の形態の通信制御装置10は、上述したように、OS及びCPUを持たない完全透過型の通信装置であり、IPアドレスも有しないので、攻撃を受けることはない。逆に、メッセージ出力サーバ130から攻撃者に対してメッセージを「はね返す」ことにより、攻撃者の装置に負荷を与えることができる。この場合、通信制御システム100は、不正なアクセス要求を通さずにはね返すので、いわば鏡(ミラー)のような役割を果たすことになる。1つのアクセス要求に対して、複数のメッセージを送出することもできる。
本実施の形態の通信制御システム100は、アクセス要求を発するユーザ端末と、アクセス先の装置との間の通信経路に設けられる。以下、通信制御システム100の配置例を列挙する。
図19は、通信制御システムの配置例を示す。本図は、ユーザ端末の一例として、携帯電話端末260が用いられる例を示している。携帯電話端末260から発せられるアクセス要求は、キャリアが設置した基地局装置262、局舎に設けられた制御局装置264を介してインターネット200へ送出され、インターネット200を介してウェブサーバ250へ到達する。本図の例では、基地局装置262に通信制御システム100が設けられる。この場合、メッセージ保持部132の内容を基地局装置262ごとに変えて、基地局装置262がカバーする領域ごとに異なるメッセージを出力するようにしてもよい。基地局装置262に通信制御システム100を設ける場合、必要最低限の機能のみを搭載することにより通信制御システム100の小型化を図ってもよい。例えば、接続管理サーバ120、ログ管理サーバ140などの構成を省略してもよい。基地局装置262に通信制御システム100を設けることにより、通信制御処理が分散されるので、小規模な通信制御システム100を設ければよく、装置を小型化・軽量化できるとともに、コストを低減することができる。また、携帯電話端末260から発せられたアクセス要求を制御局装置264へ送出する前に要求元にメッセージを送出することができるので、通信量を低減することができる。また、携帯電話端末260と直接通信する基地局装置262においてメッセージを送出するので、より確実かつ迅速にメッセージを携帯電話端末260に届けることができる。
図20は、通信制御システムの別の配置例を示す。本図も、携帯電話端末260が用いられる例を示しているが、図19に示した例とは異なり、制御局装置264に通信制御システム100が設けられる。局舎に設けられた制御局装置264において一元的にメッセージ処理を実行するので、システムのメンテナンスが容易である。
図21は、通信制御システムの更に別の配置例を示す。本図でも、ユーザ端末の一例として、携帯電話端末260が用いられる。携帯電話端末260から発せられるアクセス要求は、無線LANのアクセスポイント272、ルータ装置274を介してインターネット200へ送出され、インターネット200を介してウェブサーバ250へ到達する。本図の例では、アクセスポイント272に通信制御システム100が設けられる。図19に示した例と同様に、携帯電話端末260に近い装置でメッセージ処理を実行することにより、無駄な通信を削減することができる。また、例えば企業内の無線LANの場合、従業員が勤務時間中に不適切なウェブサイトにアクセスすることができないようにするなど、アクセスポイント272に応じた通信制御を行うことができる。
図22は、通信制御システムの更に別の配置例を示す。本図も、無線LANの例を示しているが、図21とは異なり、ルータ装置274に通信制御システム100が設けられる。ルータ装置274に通信制御システム100を設けることにより、通信制御システム100の設置数を低減することができ、メンテナンスも容易となる。
図23及び図24は、通信制御システムの更に別の配置例を示す。本図では、ユーザ端末の一例として、パーソナルコンピュータ(PC)280が用いられる例を示している。PC280から発せられるアクセス要求は、LANのルータ装置282及び284を介してインターネット200へ送出され、インターネット200を介してウェブサーバ250へ到達する。図23は、ルータ装置282に通信制御システム100が設けられる例を示しており、図24は、ルータ装置284に通信制御システム100が設けられる例を示している。
上記の例では、ネットワークを構成する装置に通信制御システム100を組み込む例を示したが、通信制御システム100は、これらの装置とは別に、ネットワークの任意の位置に設けられてもよい。
これらの配置例において、基地局装置262やアクセスポイント272のアンテナ、制御局装置264やルータ装置274、282、又は284のネットワークインタフェースなどの受信部により受信された通信データに対するアクセス制御の要否を判定することなく、メッセージを出力してもよい。また、要求元のユーザがユーザデータベース57に登録されたユーザであるか否かを認証することなく、メッセージを出力してもよい。すなわち、通信制御システム100は、通過する全てのパケットを捕捉し、そのパケットの発信元に対してメッセージを出力してもよい。また、前提技術で説明したように、接続管理サーバ120において認証されたユーザのみにメッセージを出力してもよいし、ユーザデータベース57に登録されたユーザのみにメッセージを出力してもよい。
(実施の形態)
実施の形態では、前提技術において説明した通信制御装置が出力するログをフィルタリングする技術について説明する。
図25は、実施の形態に係る通信制御装置10の構成を示す。本実施の形態の通信制御装置10は、図3に示した前提技術に係る通信制御装置10の構成に加えて、ログ出力制御装置145を更に備える。ログ出力制御装置145は、ログ出力制御回路141a及び141b、ログ出力設定部142、及び複数のログ出力ポート143a〜143fを備える。これらの構成は、ログ管理サーバ140に備えられてもよい。その他の構成及び動作は、前提技術に係る通信制御装置10と同様である。
ログ出力制御回路141は、通信制御装置10のパケット処理回路20における処理のログの出力を制御する。ログ出力制御回路141は、図4に示したパケット処理回路20の構成と同様の構成を含んでおり、パケット処理回路20から出力されるログに含まれるデータに基づいて、ログを出力する方法を決定する。ログ出力制御回路141は、ログに含まれるデータに基づいて、ログを出力するポート、ログ出力先などを決定し、必要であればログを編集して出力する。
図26は、ログ出力制御回路141に備えられた第1データベース50及び第2データベース60の内部データの例を示す。第1データベース50には、送信元IPアドレス欄71、送信先IPアドレス欄72、プロトコル番号欄73、及びポート番号欄74が設けられている。第2データベース60には、処理欄81、出力ポート欄82、及び出力先欄83が設けられている。ログ出力制御回路141に設けられた検索回路30は、パケット処理回路20から出力されたログ、又は、そのログのもとになった通信データに含まれる送信元IPアドレス、送信先IPアドレス、プロトコル番号、ポート番号などを取得して第1データベース50を検索する。ログ出力制御回路141に設けられた処理実行回路40は、検索回路30による検索結果に基づいて、第2データベース60から実行すべき処理、出力ポート、出力先を取得し、必要な処理を実行した後、指定されたログ出力ポート143から出力先へログを出力する。
ログ出力制御回路141は、ログの出力方法を決定する基準となるデータの種別の数に応じて、複数の検索回路30を有してもよい。例えば、図26の例のように、送信元IPアドレス、送信先IPアドレス、プロトコル番号、及びポート番号を基準としてログの出力方法を決定する場合は、それぞれの検索のために4つの検索回路30が設けられ、同時に並列して複数の種別のデータを検索可能としてもよい。これにより、より高速にログの出力を制御することができる。ログ出力制御回路141は、送信元又は送信先のMACアドレス、通信ステータス、その他通信データ中に存在する任意のデータやビットを単独で又は複数組み合わせて、ログ出力方法を決定する基準としてもよい。
ログ出力制御回路141は、ログを出力する前に、ログを圧縮したり、暗号化したり、所定のデータのみを抽出したり、所定のデータを削除したり、所定のデータを追加したり、文字コードを変更したり、送信元や送信先のMACアドレスやIPアドレスなどを変更したり、プロトコルを変更したりして、ログを編集する機能を有していてもよい。
ログ出力制御回路141は、複数のログをまとめてログ出力ポート143から出力させてもよい。例えば、所定の数又は所定のデータ量のログがパケット処理回路20から出力されるまで、出力されたログを一時メモリに保持し、一時メモリに蓄積されたログが所定の数又は所定のデータ量に達すると、一時メモリからログのデータを読み出して、それらをまとめてログ出力ポート143から出力させてもよい。
ログ出力設定部142は、ログ出力制御回路141によるログの出力方法を設定する。ログ出力設定部142は、ログ出力制御回路141に設けられた第1データベース50及び第2データベース60を書き換えることにより、ログの出力方法を切り替える。本実施の形態では、ログ出力制御回路として、ログ出力制御回路141aとログ出力制御回路141bの2つを設けているので、ログ出力設定部142がいずれか一方のログ出力制御回路141のデータベースを書き換えてログ出力方法を更新している間にも、他方のログ出力制御回路141により運用を継続することができる。ログ出力設定部142は、チップセレクト信号などを用いて運用するログ出力制御回路141を切り替えてもよい。これにより、運用を停止することなくログ出力方法を変更することができる。
前提技術で説明したメッセージ出力サーバ130により、本実施の形態のログ出力制御機能を実現してもよい。また、逆に、前提技術で説明したメッセージ出力サーバ130の機能を、本実施の形態のログ出力制御回路141などにより実現してもよい。例えば、DoS攻撃を企図した通信データをパケット処理回路20が処理したときに、ログ出力制御回路141がその通信データの発信元へ通信データを返送してミラーリングしてもよい。また、通信制御装置10から何らかのデータを外部へ出力するための予備のポートとしてログ出力ポート143を利用してもよい。
ログ出力制御回路141は、ログ出力ポート143の使用状況に応じて、使用するログ出力ポート143を決定してもよい。例えば、ログ出力ポート143aから出力すべきログが大量に出力されたとき、それらを全てログ出力ポート143aから出力する代わりに、輻輳していない他のログ出力ポート143から出力させてもよい。これにより、ログ出力ポート143の負荷を分散し、効率良くログを出力させることができる。
ログ出力制御回路141は、メッセージ出力サーバ130の状況も更に考慮して、使用するログ出力ポート143を決定してもよい。例えば、メッセージ出力サーバ130が大量のメッセージを出力する必要が生じたときに、そのメッセージをメッセージ出力サーバ130から受け付けて、ログ出力ポート143から出力してもよい。また、逆に、全てのログ出力ポート143が輻輳しているときに、出力すべきログのデータをメッセージ出力サーバ130へ送り、メッセージ出力サーバ130から出力させてもよい。このように、ログ出力制御回路141は、メッセージ出力サーバ130と協働して負荷分散を行ってもよい。これにより、更に効率良くメッセージやログを出力させることができる。
ログ出力制御回路141は、通信データの送信先の装置に異常が生じて通信データを受信できない状況に陥っているときに、その通信データを他の装置へ転送してもよい。例えば、電子メールの宛先のSMTPサーバがダウンしているときに、そのSMTPサーバ宛の電子メールの通信データをスプール先の装置へ転送し、一時的にスプールさせてもよい。異常が生じている装置及び転送先の装置のIPアドレス又はMACアドレスは、外部の装置からパケット処理回路20を介して、又は直接ログ出力設定部142へ伝達され、ログ出力設定部142からログ出力制御回路141へ設定されてもよい。これにより、通信データの送信先の装置に異常が生じている場合であっても、適切に通信データを制御することができる。
本実施の形態の通信制御装置10は、IPアドレスを有しない完全透過型の通信機であり、通信データを物理的に着信せずに上記の機能を実行する。つまり、通信制御装置10は、ネットワークを通過中の通信データを取り込み、プロトコル処理など物理的な着信に要する処理を省略して上述した処理を行い、ログを出力する。従来の通信機は、自装置宛の通信データを受信して制御していたが、本実施の形態の通信制御装置10は、自装置宛に送信されたのではない通過中の通信データを取り込んで制御する。したがって、送信元及び送信先の装置や、通信経路に設けられた他の通信装置は、通信制御装置10が設けられることによる設定等の変更を何ら必要とすることなく、通信制御装置10の存在を全く意識せずに通信を行うことができる。したがって、本実施の形態の技術によれば、通信システムに大きな改変を行うことなく、上記のようなシステムを構築することができる。また、本実施の形態の通信制御装置10はIPアドレスを有しないので、悪意あるハッカーなどから攻撃を受けることがなく、セキュリティ性に優れている。
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。