JP4162210B2 - セッション追跡を利用する動的パケットフィルター - Google Patents

セッション追跡を利用する動的パケットフィルター Download PDF

Info

Publication number
JP4162210B2
JP4162210B2 JP2002588042A JP2002588042A JP4162210B2 JP 4162210 B2 JP4162210 B2 JP 4162210B2 JP 2002588042 A JP2002588042 A JP 2002588042A JP 2002588042 A JP2002588042 A JP 2002588042A JP 4162210 B2 JP4162210 B2 JP 4162210B2
Authority
JP
Japan
Prior art keywords
session
socket
database
packet
hash
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002588042A
Other languages
English (en)
Other versions
JP2004538678A5 (ja
JP2004538678A (ja
Inventor
ローネン・ゴールドバーグ
ガディー・ダニエリー
モシェ・ゼザック
ドゥロリー・ショハット
Original Assignee
テレコム・イタリア・エッセ・ピー・アー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テレコム・イタリア・エッセ・ピー・アー filed Critical テレコム・イタリア・エッセ・ピー・アー
Publication of JP2004538678A publication Critical patent/JP2004538678A/ja
Publication of JP2004538678A5 publication Critical patent/JP2004538678A5/ja
Application granted granted Critical
Publication of JP4162210B2 publication Critical patent/JP4162210B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0254Stateful filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Description

発明の分野
本発明は、一般にデータ通信システムに関し、特に、セッション追跡を利用してパケットを許可するか拒否するか(許否)について決定する動的パケットフィルターに関する。
発明の背景
近年、世界はインターネットの爆発的な成長を経験した。ユーザーの数が限りなく増えつつあるように見える間にも、年を追ってはるかに多くのホストが加えらている。インターネットは、リモート・コンピュータ・ログイン、ファイル転送、ワールド・ワイド・ウエブ(WWW)ブラウジング、電子メールなどを含めて、異なる技術を用いた通信を可能にする。様々な種類の通信に対処するために、種々のプロトコルが作られてインターネット上で使用されている。例えば、ファイル転送のためのファイル転送プロトコル(FTP)、ウエブトラヒックのためのハイパーテキスト・マークアップ言語(HTML)などがある。一般に、インターネット通信に関係したプロトコルは、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)一式の傘下で分類される。TCP/IP一式は、OSI通信スタックの種々のレイヤのプロトコルを含んだプロトコルからなる。
インターネットの重要な特徴は、それがコンピュータと電話回線とインターネット・サービス・プロバイダー(ISP)アカウントを持っているほとんど誰でもアクセスできる公衆ネットワークであることである。この幅広い規模での公衆のアクセス可能性のマイナス面は、インターネット上の1以上のホストに対する悪意ある活動を企んでいるハッカーやその他の者の容易なアクセスを許してしまうことである。悪意あるユーザーによる機密情報の盗み取りや重要なファイルの消去などの違法行為は、リモートネットワークのコンピュータになんとか侵入して通信データを引き出すことに成功するハッカーによれば可能である。安全性の要求は、インターネットを介しての確実なトランザクションを可能にするIPv6における暗号化や認証などのセキュリティ機構を含ませることにより対処すべく、インターネット・アーキテクチャ委員会(IAB)によって取り組まれた。
ハッカーの脅威と闘いプライベート・ネットワークを守るために、今日では、会社や組織内のプライベート・ネットワークの入口にファイアウォールを配置するのが一般的である。このファイアウォールは、ユーザー定義のセキュリティ・ポリシーを強化するよう機能する何らかの形態のパケットフィルターを用いる。ファイアウォールは、組織のローカル・ネットワークと全世界的なインターネットとの間の境界に存在するシステムである。このファイアウォールは、外部のネットワークへの情報の漏出を防ぎ、外部から内部のネットワークへの無許可のアクセスを防止するために、すべてのデータ通信のフィルタリングを実施する。
同時に、世界は、無線サービス(すなわち携帯電話、双方向ポケットベル、コードレス装置など)やパーソナルコンピュータ装置(ノート型パソコン、PDAなど)に対する増大する需要に直面している。これらのパーソナルコンピュータ装置の多くは、無線ネットワーク(例えば携帯電話又は他のブロードバンドの機構)を介してインターネットなどのWANネットワークとの通信を可能にするために、無線通信回路を組み込んでいる。このようにして、ますます多くのPDAや携帯電話がインターネットに接続されつつあり、よってこれらの装置は安全性についての危険にさらされている。好ましくは、これらの装置は、該装置への無許可のアクセスに対して保護すべく何らかの種類のファイアウォールを使用する。しかしながら、今日たいていのファイアウォールは、ソフトウエアにて実現されており、デスクトップコンピュータ全体のコンピューティング資源を必要とし、携帯電話やPDAなどの携帯式のコンピュータ装置におけるファイアウォールの使用は実際的でなくなっている。
従って、携帯電話や無線接続されるPDAなどの小型の携帯式コンピュータ装置に組み込むのに適当な小サイズにて容易に実現し得るファイアウォール又はパケットフィルターが必要とされる。
発明の概要
本発明は、ハードウエア、ソフトウエア又はその両方の組合わせにて実現し得る新規かつ有用な動的パケットフィルターを提供する。本発明は、インターネットへの接続に適応した携帯電話や無線接続PDAなどのような携帯式コンピュータ装置において使用するのに適したハードウエアベースのファイアウォールに組み込むことができる。
本発明は、入力パケットストリーム上で受信したパケットに対して動的なパケットフィルタリングを行う。好ましくは、本発明は、WAN(すなわちインターネット)とローカルLANの間に配置される。この場合、動的パケットフィルターは、WANからLANに入ってくるパケットとLANからWANに出て行くパケットの両方に対してフィルタリングするよう機能する。動的フィルタリングは、プロトコルの静的規則よりもむしろ動的なプロトコル挙動をチェックするのに効果的であることに留意されたい。本発明は、セッションを作ってソースと宛先の間の通信状態を追跡することによってこのことを達成する。
新しいセッションが検出され、作られ、そしてそれに関係したデータがセッションデータベースに記憶される。受信した各パケットを認識し、それを前に開かれたセッションに関連付ける試みがなされる。セッションの認識は、ハッシュテーブルを用いてセッションデータベース中の対応するセッションレコードを迅速に決めることによって加速される。ハッシュテーブルは、完全な又は部分的なソケット情報のどちらかを用いて計算し得る。完全なソケット情報は、104ビットのソース及び宛先IPアドレス、ソース及び宛先ポート番号並びにプロトコルを含む。部分的なソケット情報(ホールと称する)は、1以上の情報項目を欠いている。ホールデータベースは、現在開かれているホールを記憶するのに用いられる。一旦ホールセッションが認識されたなら、ホールには欠落パラメータが入れられる。
何も見つからなければ、新しいセッションが作られる。もし既存のものが見つかれば、そのセッションに関係するデータがセッションデータベースから読み出され、受信されたパケットが規則セットに基づいてチェックされる。これらの規則は、特定のプロトコルにより許可された状態と遷移を規定する状態遷移図として記載される。
もしパケットがプロトコルの正当な挙動に従っているなら、許可され、そうでなければ拒否される。次に、セッションデータが新しい状態情報と関連パラメータとによって更新され、セッションデータベース中の元の位置に書き込まれる。
本発明はハードウエアでの実現を意図したものではあるが、ソフトウエアにて実現することもできる。実施態様の一つでは、プロセッサ、メモリなどを備えたコンピュータが、本発明の動的パケットフィルタリング法の実行に適応したソフトウエアを実施すべく機能する。
従って、本発明により、各セッションがソケットに対応している複数のセッションに対して、セッションに関係したデータを記憶するセッションデータベースを設けるステップ;前記セッションデータベースに前に記憶されていないソケットを受信すると、新しいセッションを開くステップ;受信パケットに関連したセッションをその関連ソケットに従って認識するステップ;前記受信パケットに対応したセッションデータを複数の所定規則に従って処理して処理結果を生成するステップ;及び前記処理結果に従って前記受信パケットを許可するか又は拒否するかを決定するステップを含む、入力パケットストリームのフィルタリング方法が提供される。
また、本発明により、通信セッションの状態をモニターする方法であって、各セッションがソケットに対応した複数のセッションに対して、セッションに関係するデータを記憶するセッションデータベースを設けるステップ;受信パケットに関連したソケットについての第1ハッシュ計算に従ってセッションを認識するステップ;前記受信パケットに関連した部分ソケットについての第2ハッシュ計算に従ってホールセッションを認識するステップ;認識されたセッションか又は認識されたホールセッションのどちらかに関連した前記セッションデータを前記セッションデータベースから読み出すステップ;前記セッションの接続状態を追跡し、複数の規則に基づいて前記状態をチェックして前記受信パケットの許否を決定するステップ;及び更新されたセッションデータを前記セッションデータベースの元の位置に書き込むステップを含む前記方法が提供される。
さらに、本発明により、各セッションがソケットに対応した複数のセッションに対して、セッションに関係したデータを記憶するセッションデータベース;前記セッションデータベースにおいて関連ソケットが受信パケットのソケットと一致するセッションをサーチするセッション認識モジュール;前記セッションデータベースにおけるセッションの追加、削除及び修正を含めて、前記セッションデータベースを維持するセッション管理モジュール;及び受信パケットに対応したセッションの接続状態を追跡し、複数の規則に基づいて前記接続状態をチェックして前記受信パケットの許否を決定する機能を有する主フィルターモジュールを備えた、入力パケットストリームをフィルタリングするための動的フィルターが提供される。
また、本発明により、デジタルコンピュータ装置であって、前記装置を広域ネットワーク(WAN)に接続する通信手段;揮発性メモリと1以上のアプリケーションプログラムを記憶するのに適応した不揮発性メモリとを含んだメモリ手段;前記1以上のアプリケーションプログラムを実行するために前記メモリ手段と前記通信手段に接続されたプロセッサ;及び入力パケットストリームをフィルタリングするための動的フィルターを備え、該動的フィルターが、各セッションがソケットに対応した複数のセッションに対して、セッションに関係したデータを記憶するセッションデータベース;前記セッションデータベースにおいて、関連ソケットが受信パケットのソケットに一致するセッションをサーチするセッション認識モジュール;前記セッションデータベースにおけるセッションの追加、削除及び変更を含めて前記セッションデータベースを維持するセッション管理モジュール;及び受信パケットに対応するセッションの接続状態を追跡し、複数の規則に基づいて前記接続状態をチェックして前記受信パケットの許否を決定する機能を有する主フィルターモジュールを備える前記デジタルコンピュータ装置が提供される。
さらにまた、本発明により、コンピュータ読出し可能な記憶媒体であって、その上に具現化されたコンピュータプログラムを有し、適切にプログラミングされたシステムに複数のストリングをサーチさせ、該サーチは、前記プログラムが前記システム上にて実行される際に以下のステップ、すなわち各セッションがソケットに対応した複数のセッションに対して、セッションに関係したデータを記憶するセッションデータベースを設けるステップ;前記セッションデータベース中に前に記憶されていないソケットを受信すると新しいセッションを開くステップ;受信パケットに関連したセッションをその関連ソケットに従って認識するステップ;前記受信パケットに対応したセッションデータを複数の所定規則に従って処理して処理結果を生成するステップ;及び前記処理結果に従って前記受信パケットの許否を決定するステップを実施することにより行われる前記コンピュータ読出し可能な記憶媒体が提供される。
図面の簡単な説明
ここでは、単なる例として添付図面に関して本発明を説明する。
図1は、WAN又はインターネットとの関連において本発明の動的パケットフィルターのいくつかの適用例を示すブロック図であり;
図2は、本発明の動的パケットフィルターをさらに詳細に示したブロック図であり;
図3は、本発明の主フィルタープロセッサ法を示すフローチャートであり;
図4は、一致が見つかった場合の本発明の主フィルタープロセッサ法を示す状態遷移図であり;
図5は、一致が見つからなかった場合の本発明の主フィルタープロセッサ法を示す状態遷移図であり;
図6は、入力パケットに関連したセッションを決めるハッシング技術を示す図であり;
図7は、本発明のセッション認識プロセスのハッシング方法を示すフローチャートであり;
図8は、本発明のセッション認識プロセスのホールサーチ方法を示すフローチャートであり;
図9は、TCPセッションのパケットフローを示す図であり;
図10は、TCPセッションを開く際の3−ウエイハンドシェイクを示す状態遷移図であり;
図11Aと図11Bは、TCPセッションを閉じる際の4−ウエイハンドシェイクを示す状態遷移図であり;
図12は、ARPセッションのパケットフローを示す図であり;
図13は、ICMPエコーセッションのパケットフローを示す図であり;
図14は、ICMPメッセージ/エラーセッションのパケットフローを示す図であり;
図15は、主フィルタープロセッサによる規則のチェック中に行われるシーケンス番号のウインドウ追跡を示す図であり;
図16は、主フィルタープロセッサによる規則チェック中に行われる肯定応答シーケンス番号のウインドウ追跡を示す図であり;
図17は、セッションの古さを追跡するのに用いられる最長時間未使用のリンクリスト構造を示す図であり;
図18は、入力パケットに関連したセッションを認識したときLRUリンクリストを更新する方法を示すフローチャートであり;
図19は、本発明のセッション管理モジュールの処理を示すフローチャートであり;
図20は、セッションを開くために本発明のセッション管理モジュールにより実行される処理を示すフローチャートであり;
図21は、セッションを閉じるために本発明のセッション管理モジュールにより実行される処理を示すフローチャートであり;
図22は、セッションに対するファミリーポインタを示す図であり;
図23は、複数のセッション間のファミリー関係の例を示す図であり;
図24は、本発明のセッション追跡方法を用いて動的パケットフィルタリングを実行するのに適応したプラットフォームに対するコンピュータ処理システムの例を示すブロック図である。
発明の詳細な説明
全体を通して用いられる表記
この文書全体を通して以下の表記を用いる。

用語 定義

ADSL 非対称デジタル加入者回線
ARP アドレス絞り込みプロトコル
ASIC 特定用途向け集積回路
CPU 中央演算処理装置
DAT デジタルオーディオテープ
DSL デジタル加入者回線
DSP デジタル・シグナル・プロセッサ
DVD デジタル多用途ディスク
EEPROM 電気的消去・プログラム可能型読取専用メモリ
EEROM 電気的消去・書込み可能PROM
EPROM 消去可能プログラム可能読取専用メモリ
FPGA フィールド・プログラマブル・ゲート・アレイ
FTP ファイル転送プロトコル
HDSL 高ビットレート・デジタル加入者回線
HTML ハイパーテキスト・マークアップ言語
IAB インターネット・アーキテクチャ委員会
ICMP インターネット・コントロール・メッセージ・プロトコル
IP インターネット・プロトコル
ISP インターネット・サービス・プロバイダ
LAN ローカルエリア・ネットワーク
LRU 最長時間未使用(Least Recently Used)
NIC ネットワーク・インターフェース・カード
OSI 開放型システム間相互接続
PC パーソナル・コンピュータ
PDA パーソナル・デジタル・アシスタント
PDU プロトコル・データ・ユニット
RAM ランダムアクセスメモリ
ROM 読み出し専用メモリ
TCP 伝送制御プロトコル
UDP ユーザー・データグラム・プロトコル
VDSL 超高ビットレート・デジタル加入者回線
WAN 広域ネットワーク
WWW ワールドワイドウエブ
発明の詳細な説明
本発明は、ハードウエア、ソフトウエア、又はその両方の組合わせにて実現し得る新規かつ有用な動的パケットフィルターを提供する。本発明は、インターネットへの接続に適応した携帯電話や無線接続PDAなどの携帯型コンピュータ装置において使用するのに適したハードウエアベースのファイアウォールに組み込むことができる。
本発明は、入力パケットストリーム上にて受信したパケットに対して動的なパケットフィルタリングを実施する。好ましくは、本発明はWAN(すなわちインターネット)とローカルのLANとの間に配置される。この場合、動的パケットフィルターは、WANからLANに入ってくるパケットとLANからWANに出ていくパケットの両方をフィルタリングするよう機能する。動的フィルタリングはプロトコルの静的規則よりもむしろ動的なプロトコル挙動をチェックするのに効果的であることに留意されたい。本発明は、セッションを作ってソースと宛先との間の通信状態を追跡することによってこのことを達成する。
入力ストリームは、特定の用途に従った任意のタイプの入力データ、例えばフレーム、パケット、バイト、PDUなどを含み得る。説明のためにのみ、入力データストリームを一連のパケットとして考える。
示された動的パケットフィルターは例としてのみ提示されており、本発明の範囲を限定する意図ではないことに留意されたい。電気技術における熟達者ならば、ここに記載の本発明の範囲を逸脱することなく本発明の原理を用いて動的パケットフィルタリングを行うために、ハードウエア、ソフトウエア、又はその両方の組合わせにて他の動的パケットフィルターを構成することが可能である。
本発明の動的フィルターは、通信セッションの状態をモニターするためにセッションデータベースと称される接続テーブルを維持すべく機能する。新しいセッションは、静的なセキュリティ・ポリシー規則をパスした場合にセッションデータベースに加えられる。一旦セッションが作られると、このセッションに対応する後続のパケットが、当該パケットに関連した特定のプロトコルに対するセッション状態に従って検査される。当該パケットが特定プロトコルの規格に合っているときにのみ、当該パケットが許可される。
本発明の動的フィルターは、多くの異なるタイプのシステムにおいて幅広い用途を有する。図1には、WAN又はインターネットに関連して、本発明の動的パケットフィルターのいくつかの用途例を示すブロック図が示される。ここに図示された3例の各々に示されているように、一般に動的フィルターは、保護されたネットワークへの無許可アクセスを防ぐために用いられるファイアウォールの一部として構成される。
第1の例では、動的フィルター16は、ファイアウォール14における1つのコンポーネントであり、このファイアウォール14が、WAN又はインターネットなどのネットワーク10と有線又は無線通信する何らかの形態のパーソナルコンピュータ装置12内にて実現される。このパーソナルコンピュータ装置は、パーソナル・デジタル・アシスタント(PDA)、例えばパーム・ハンドヘルド(Palm handheld) 、携帯電話、無線受話器(wireless handset)などのような任意の装置でよい。この例では、動的フィルター/ファイアウォールは、インターネットと該装置との間でパケットを双方向的にフィルタリングする機能を有する。
第2の例では、動的フィルター22は、ファイアウォール20における1つのコンポーネントであり、このファイアウォール20が、WAN又はインターネットと有線又は無線通信するケーブル・プラグ・アダプタ18内にて実現される。この装置18は、インターネットと、LAN26をインターネットに接続する機能を有するブロードバンドモデム24との間に置かれる。ケーブル・プラグ・アダプタ中の動的フィルターは、インターネットからLAN及びその逆に送られたパケットをフィルタリングする機能を有する。ブロードバンドモデムは、xDSL(例えばADSL、HDSL、VDSLなど)、衛星、地上ベースのRF、マイクロ波などのようなブロードバンド信号を変調及び復調する。
第3の例では、動的フィルター30は、ファイアウォール28における1つのコンポーネントであり、このファイアウォール28が、WAN又はインターネットと有線又は無線通信するスタンドアローンのコンピュータ31、例えばパーソナルコンピュータ(PC)上にて実現される。ファイアウォールを含んだこのコンピュータは、インターネットと保護すべきLAN32との間に配置される。ファイアウォールにおける動的フィルターは、インターネットからLAN及びその逆に送られるパケットをフィルタリングする機能を有する。
以下、動的フィルターを詳細に説明する。図2は、本発明の動的フィルターをさらに詳しく示したブロック図である。一般に符号40で示された動的フィルターは、バス・インターフェース48、バッファ/レジスタ50、セッション認識モジュール52、主フィルター処理モジュール54、セッション管理モジュール56、ハッシュテーブル60、ホールテーブル62及びセッションデータベース64を備える。動的フィルターは、バス・インターフェースを介してバス47上にてホスト装置/CPU42、ヘッダー復号器46、静的フィルター51、及びコンテンツ・サーチ・ユニット53と通信する。
この文書全体を通して、動的フィルターがWANとLANの間に配置され、両方向にてパケットをフィルタリングする機能を有することに留意すべきである。入ってくるパケットとは、WANからLANに向けて受信されたパケットをいい、出ていくパケットとは、LANからWANに向けて受信されたパケットをいう。よって、入力パケットストリームは、入ってくるパケットと出ていくパケットとを含み得る。
入力パケットストリーム44がCPUから受信され、その内容がヘッダー復号器に送られる。ヘッダー復号器は、パケットのヘッダー部分を復号(又は構文解析)する機能を有する。ヘッダー復号器は、動的フィルターにより使用される関心あるフィールドを抽出するよう機能する。ヘッダー復号器により抽出されたデータは、バス上にて動的フィルターに送られる。このデータは、TCPプロトコルに対して、ハッシュ値(CPUにより計算された場合)、104ビットのソケットデータ(32ビットのソース及び宛先IPアドレス、16ビットのソース及び宛先ポート、並びに8ビットのプロトコルを含む)、動的機能値(レイヤ4パケットの種類、例えばICMP、ARP、TCP、UDPを示す)などを含み、また、32ビットのシーケンス番号、32ビットの肯定応答、11ビットのペイロード長、及び16ビットのウインドウサイズをも含む。場合によっては、ヘッダー復号器は外部モジュールとして構成することもできるし、動的フィルターに一体化することもできることに留意されたい。
レイヤ4パケットの各タイプは、異なる動的機能値によって表される。この値は、セッション状態を追跡しその正当性を検証すべく受信パケットを処理する際に用いる適当なハードウエア機械を選択するために、動的フィルターによって用いられる。ペイロード長はヘッダー復号器により計算されて動的フィルターに送られる。これは、IPヘッダーとTCPヘッダー中のその長さの和をIPパケット中の全長フィールドから差し引くことにより計算される。
主フィルタープロセッサは、CPUインターフェース58を備え、動的フィルターの主要な処理ブロックとして機能する。これは、新しいセッションを開き、既存のセッションを処理し、そして、特定のプロトコルに従って正当、すなわち許可された状態変化を検証している間に、セッションの状態を追跡する。セッション認識モジュールは、ソケットを受信し、セッションデータベースにおいてそのソケットに一致する開かれたセッションを検索する機能を有する。セッション管理モジュールは、ハッシュリンクリストと最長時間未使用(LRU)リンクリストを維持し、それによってリストへのセッションの追加およびリストからセッションの削除を行う機能を有する。セッションデータベースは、動的フィルターの様々な処理モジュールによる使用のために、セッション状態と現在のステータスを含めて、ソケットとその他のセッション関連データとを記憶する機能を有する。セッションの認識を加速するのために、ハッシュテーブルとホールテーブルが用いられる。これらのコンポーネントについては、後にさらに詳細に説明する。
主フィルター処理
以下、主フィルター処理について詳細に説明する。図3は、本発明の主フィルタープロセッサ方法を示したフローチャートである。動的フィルターは、3段階でパケットデータを処理するように構成される。第一段階では、パケットに関連したセッションデータがセッションデータベースから読み出され、第二段階では、そのデータが処理され、第三段階では、処理結果がセッションデータベースの元の位置に書き込まれる。処理段階中に、セッション状態が所定の規則に対して追跡され、パケットの許否が決められる。
まず、セッションの認識が実行され(ステップ70)、それによってセッションデータベースにおいて受信パケットのソケットに一致するソケットが検索される。認識結果は、主フィルタープロセッサに戻される(ステップ72)。もし一致が見つからなかったなら(ステップ74)、静的フィルターを用いて静的規則チェックが実行される(ステップ76)。静的フィルター(これは動的フィルターの一部でもいいし、そうでなくてもよい)は、異なるプロトコルに対応する静的規則セットに基づいて受信パケットの静的チェックを実行する機能を有する。パケットの静的規則チェックは、通信技術においては周知であるから、ここではさらに詳しく述べない。
もし静的規則チェックの結果がパケットを拒否することであるならば、すなわちパケットが1以上のプロトコル規則に違反しているならば(ステップ78)、パケットは拒絶される(ステップ96)。もし静的規則チェックの結果がパケットを許可することであるならば、そのパケットがセッションのオープナー(opener)であるか否かがチェックされる(ステップ80)。もしパケットがセッションを論理的に開き得るパケットであるならば、そのパケットはセッションオープナーである。例えば、応答パケットはセッションを開くことはできなが、TCPパケットはセッションを開くSYNパケットでなければならない等々である。もしパケットがセッションオープナーでなければ、拒絶される(ステップ96)。
もしパケットが有効なセッションオープナーであるなら、新しいセッションが作られる(ステップ82)。セッション関連データ及びパラメータがセッションデータベースに記憶される(ステップ84)。次に、この新しいセッションに対するハッシュポインタが計算され、ハッシュテーブルに記憶される(ステップ86)。ハッシュポインタは、認識段階中にセッションをすばやく見つけるために使用される。
もし受信パケットのソケットと一致するソケットを有するセッションが見つかれば(ステップ74)、セッションデータがセッションデータベースから読み出され(ステップ88)、処理される(ステップ90)。特定のパケットプロトコルに関連した動的規則がチェックされ、パケットの許否が決定される。そのセッション状態が追跡され、特定のプロトコルに対して許可された挙動に基づいてチェックされる。本発明によると、ソフトウエアよりむしろハードウエアにて動的規則チェックが行われる。別法として、ソフトウエア手段によっても同様に動的規則がチェックされ得る。
もしパケットが拒否されたなら(ステップ92)、パケットは拒絶される(ステップ96)。もし許可されたなら、更新されたセッション追跡状態と共に更新されたセッションデータがセッションデータベースの元の位置に書き込まれる(ステップ94)。
どちらかのセッションオープナー、すなわちパケットの拒絶又はパケットの許可に続いて、1以上のステータスレジスタに書き込まれ、割り込みが為されてCPU又は他のホスト装置に主フィルター処理の完了が知らされる(ステップ98)。
図4は、一致が見つかったときの本発明の主フィルタープロセッサ方法を示す状態遷移図である。全体として290で示された状態遷移図は、一致が見つかったときの主フィルタリング処理の論理を実施する複数の遷移と状態を含む。このプロセスは、一致状態292において始まり、ポインタとステータスをフェッチする状態294に進む。この状態では、セッションに関連したポインタとステータスデータがフェッチされる。
もしセッションがTCPセッションであるならば、TCP関連データがセッションデータベースからフェッチされる(ステップ297)。次に、プロセスはTCP処理状態298に進む。後に詳細に説明するように、実行される処理は、TCPセッション状態の追跡、及びセッション挙動が正当か否かのチェックからなる。パケットは拒絶(状態302)され得るか又は許可され得、その際には処理は静的フィルタリングチェックが完了するのを待ち続ける(状態304)。静的フィルタリングは、周知の静的フィルタリング技術を用いて動的フィルターの外部にて実行される。静的フィルターチェックは、パケットを拒絶(状態302)又はパケットを許可し、それによって該処理は、コンテンツ機械が有効ストリングのペイロードの検索を完了するのを待ち、かつチェックサム検証が完了するのを待つ(状態306)。もしチェックサム検証がパスしかつ有効なストリングが見つかったならば、TCPパラメータが更新され、セッションデータベースに記憶される(状態310)。次にセッションポインタが更新され(状態312)、パケットが許可される(状態314)。もしチェックサム検証がチェックサムエラーを戻すか又はコンテンツ機械が無効ストリングを見つけたならば、そのパケットは拒絶される(状態302)。無効ストリングは、コンテンツ機械により見つけられた1以上の理由(例えば、それらがウイルスやFTP DELETEコマンドなどの不許可コマンドの存在を示している等々)によって許可されないストリングを含む。有効なストリングは、許可されたストリングか又は不一致(no matching) ストリングを含む。本発明で用いるのに適したコンテンツ機械は、同様に譲渡された米国出願第X号(2001年2月21日提出、標題「Apparatus for and Method of Multiple Parallel String Searching」)に詳細に記載されており、その全体をここに援用する。
TCP以外のプロトコルに対しても同様の処理が行われる。もしセッションが非TCPセッション(例えばUDP、ARP、ICMP等)であるならば、もう一方のプロトコル処理状態296に入れられる。後に詳細に説明するように、実行される処理は、接続状態の追跡、及びセッション挙動が特定のプロトコルに対して正当であるか否かのチェックからなる。パケットは拒絶され得るか(状態302)、又は許可され、その際に処理は静的フィルタリングチェックが完了するのを待ち続ける(状態300)。静的フィルターチェックは、パケットを拒絶することができるか(状態302)、又は許可することができ、それによって該プロセスはコンテンツ機械がペイロードの検索を完了するのを待ち、かつチェックサムの検証が完了するのを待つ(状態306)。もしチェックサムの検証がパスし且つ有効なストリングが見つかったならば、特定プロトコルのパラメータが更新され、セッションデータベースに記憶される(状態308)。次に、セッションポインタが更新され(状態312)、そのパケットが許可される(状態314)。もしチェックサムの検証がチェックサムエラーを戻すか又はコンテンツ機械が無効ストリングを見つけたならば、そのパケットは拒絶される(状態302)。
図5は、一致が見つからないときの本発明の主フィルタープロセッサ方法を示す状態遷移図である。全体として320で示した状態遷移図は、一致が見つからないときに主フィルタリング処理の論理を実施する複数の遷移と状態を含む。このプロセスは、一致が見つからない状態322において始まり、もしセッションがセッションオープナーであるなら、静的フィルター決定待ち状態326に進む。もしセッションがセッションオープナーでないならば、パケットは拒絶される(状態324)。
もし静的フィルターがパケットを許可するならば、プロセスはコンテンツ機械及びチェックサム検証器がチェックを完了するのを待ち(状態328)、そうでなければパケットは拒絶される(状態324)。もしコンテンツ機械チェックが無効ストリングを見つけるか又はチェックサム検証がチェックサムエラーを明らかにするならば、そのパケットは拒絶される(状態324)。もしチェックサム検証及びコンテンツ機械検索がエラーなしで完了するならば、セッションが開かれ、ソケットデータがセッションデータベースに記憶される(状態330)。ステータス、タイムスタンプ及び接続状態もまた、セッションデータベースに記憶される(状態332)。もしセッションが非TCPセッションであるならば、そのパケットは許可される(状態336)。TCPセッションの場合には、TCPセッションが開かれ(状態334)、パケットが許可される(状態336)。
本発明によると、動的フィルターが、サポートされた総てのプロトコルに対して並列にてセッション追跡処理を行うべくハードウエアにて実現するのに適している。ソケット一致の場合にセッションデータのフェッチ中、前にフェッチされたデータが並列にて処理される。一旦データがフェッチされると、種々のプロトコルに対する総てのセッションチェックが、1クロックサイクル内に実行される。よって、本発明のハードウエアでの実現は、パケットフィルタリングプロセスを大いに加速させる。
セッション認識
以下、セッション認識プロセスを詳細に説明する。図6は、入力パケットに関連したセッションを決めるハッシング技術の説明図である。各々のセッションは固有のソケットに対応する。セッションは、受信パケットのソケットと、セッションデータベースに記憶され前に開かれたセッションに関連するソケットとを比較することにより識別される。セッションの認識を速めるため、セッションレコードへのハッシュポインタをセッションデータベースに記憶し、かつ受信ソケットに対応したセッションの素早い検索が可能なハッシュテーブルが用いられる。
新しいセッションはセッションデータベースに記憶され、動的フィルター又はCPUによってソケットのハッシュが計算される。ハッシュポインタは、ハッシュ結果により示されたされたハッシュテーブル60(図2)中の場所に記憶される。もし1より多いセッションがその場所に記憶されるならば、該セッションはリンクリストに加えられる。最初にハッシュテーブル中の各エントリがヌル(NULL)に初期化されることに留意されたい。
パケットを受信すると、ソケット100が、ハッシュ計算器102に入力される。ハッシュ計算器102は、ハッシュ結果104を発生し出力する機能を有する。ハッシュ結果は、ハッシュテーブル106に対するインデックスとして用いられる。ハッシュテーブル106は、複数のエントリ108を含み、その各々がハッシュポインタを含む。ハッシュポインタは、セッションデータベースにおけるセッション110のリンクリストを示す。セッションデータベース中の各セッションは、前のポインタ114と次のポインタ112を含み、よって二重リンクリストを実現している。もしソケットのヒット(hit) が生じたならば、リンクリスト中の各セッションは、受信パケットのソケットとの一致がチェックされなければならない。
好ましくは、ハッシュテーブル全体においてハッシュ結果のできるだけ均一な広がりを作るべく、ハッシュ関数が選択される。ハッシュ関数は、XOR関数やCRCなどの任意の適当な関数とし得る。一実施態様では、次式に従ってハッシュ結果を計算する際にランダムベクトルを用いることによって、単純なXORハッシュ関数を越えて性能を改善し得る。


よって、入力ソケットデータは、ランダムベクトルと入力ソケットデータとを用いて生成される。
図7は、本発明のセッション認識プロセスにおけるハッシング方法を説明したフローチャートである。最初のステップは、例えば上述した方法により受信パケット中のソケットからハッシュ値を計算することである(ステップ120)。このソケットに対応するハッシュポインタを検索するために、ハッシュテーブルへのインデックスとしてRバイトのハッシュ結果が用いられる。もしハッシュポインタがヌルを示すならば(ステップ124)、セッションは存在しなく、「セッション見つからず」が主フィルタープロセスに戻される(ステップ126)。
もしハッシュポインタがヌルでないならば、セッションのソケットがセッションデータベースから読み出され(ステップ128)、受信パケット中のソケットと比較される(ステップ130)。もしこれらのソケットが一致するならば(ステップ132)、セッション一致が見つけられ(ステップ134)、主フィルタープロセスに報告される。もしこれらのソケットが一致しないならば(ステップ132)、次のハッシュポインタがリンクリストから読み出され(ステップ136)、最後のハッシュポインタがヌルを示すか又は一致が見つけられるまで、該方法がステップ124から繰り返される。
ただ1つのセッションがリンクリストに記憶されている場合においてさえ、ソケットの完全な比較が常に実施されることに留意されたい。また、本発明の範囲は、どの実体すなわち動的フィルター又はCPUがリンクリストを更新し維持するかによっては制限されないことにも留意されたい。ハッシュテーブルの深さは、任意の所望値とし得る。しかしながら、一般には、この深さは、同時に追跡されるセッション数に従って設定される。好ましくは、ハッシュエントリ数は、セッション数の2又は4倍である。というのは、ソケットの完全比較では時間がかかるゆえに、多くの複製を持つのは望ましくないからである。
本発明によれば、セッション認識モジュールは、部分的なソケットデータを用いてセッションをサーチする能力を備える。部分的なソケットデータ(ホールと称する)は、情報の1以上の項目を欠いているソケット、すなわちソケットを作る5つの要素(ソース及び宛先IPアドレス、ソース及び宛先ポート並びにプロトコル)のうちの1以上の任意の組合わせを含む。ホールは、ファイアウォール/動的フィルター内に作られた開口を検索し、後続のパケットがたとえ静的フィルター規則ベースをパスしなくてもそれらのパケットを通過可能にする。ホールに関連したパケットは、その関連ソケットにおいて欠落している零又はそれより多いパラメータを有し得る。ソケットは、1以上の欠落パラメータと共にホールテーブル中に配置され、ホールサーチが実行される。
ホールサーチ方法は、図7に関して説明した完全ソケット一致方法を用いてもセッションの一致を見つけられない際に、セッション認識モジュールにより実行される第2のサーチ方法である。ホールは望ましくなく、一旦出来てしまうと、CPUと動的フィルターは、部分的なソケット一致を生じる第1パケットの受信に際してそれらのホールを「充填(fill)」しようとする。
ホールテーブル(図2)は、処理レイヤ5以上において一般にソフトウエアにより与えられるホール情報を記憶するのに用いられる。ソケットが5つの項目からなる場合には、ホールテーブルは32個のレコード(0〜31)を含む。例えば、FTPパケット、IP電話技術に関係したパケットなどの処理においては、初期にはソケットからの1以上のパラメータが未知である。これらの場合には、CPUは、ホールテーブル内にて欠落パラメータに対応した位置にホールを開く。
ホールテーブル中のエントリ31(すなわち総てのもの)は、欠落パラメータを表さないので使用されないことに留意されたい。ホールテーブル中の各エントリは、第1表に載せられた以下のフィールドを有する。

第1表:ホールテーブルフィールド
───────────────────────────────────
フィールド 説明
───────────────────────────────────
LAN ホールがLAN側から閉じられると期待される、すなわちLAN
からのパケットがこのホールタイプと一致すると仮定される。
WAN ホールがWAN側から閉じられると期待される、すなわちWAN
からのパケットがこのホールタイプと一致すると仮定される。
EH 既存のホール。このフィールドの数は、このタイプを有して現在
開かれている既存のホール数を表す。
PEHT 前に存在したホールタイプ。既存ホールの二重リンクリストにお
ける前のホールタイプへのポインタ。
NEHT 次に存在するホールタイプ。既存ホールの二重リンクリストにお
ける次のホールタイプへのポインタ。
───────────────────────────────────
ここに与えられた例では、ホールタイプは、5つの可能な欠落パラメータ(すなわち、ビット4−プロトコル;ビット3−リモートポート;ビット2−ローカルポート;ビット1−リモートIP;ビット0−ローカルIP)として定義される。よって、ホールタイプ「11011」は、ローカルポートパラメータの欠落に対応する。
上述したハッシュ方法は、ハッシュ値を生成するために、完全なソケット情報を要求する。もし受信したパケットがホールを「充填」すべきものであるならば、セッション認識を用いたハッシュ方法(図7)は、一致見つからずとなり、ホールは充填し得ない。「ホール」セッションは見つかり得ない。というのは、ハッシュは、受信パケットのソケット全体について計算される一方、ホールセッションを指すハッシュテーブル中のエントリは部分的な事前既知パケットについて計算されたからである。
ホールテーブルは、CPUにより書き込まれ動的フィルターにより読み出されるホール情報を記憶することによってこの問題を解決する。ホールは、アプリケーションレイヤ上にて動的フィルタリングを実行する外部プロセスによって開かれたセッションである。CPUはホールの存在を最初に検出する実体であるので、CPUがまず部分的なハッシュ値を計算してそれをハッシュテーブルに記憶することに留意されたい。欠落パラメータは受信パケットから決めることができるので、部分的なソケットがデータベースのものと一致する第1パケットが当該ホールを閉じる。ホールテーブルは32個のエントリを含み、その各々が1以上の欠落パラメータの固有の組合わせに対応し、その際、各「ビット」はソケットを作る5つのパラメータのうちの一つを表す。
各々のエントリは、その特定種類のホール数と他のエントリに対する次及び前のポインタを示すフィールドを記憶する。よって、次及び前のポインタは、ホールのリンクリストを形成する。first_valid_entryレジスタは、該リスト中の第1エントリへのポインタを記憶する。このレジスタにおけるヌルは、セッションデータベースにホールが記憶されていないことを示す。最後のエントリは、リストの最後を示すヌルポインタを記憶する。
図8は、本発明のセッション認識プロセスのホールサーチ方法を説明するフローチャートである。最初のステップは、first_valid_entryの内容を用いて第1ホールエントリを読み出すことである(ステップ140)。もしレジスタ中のホールポインタがヌルを示すならば(ステップ142)、ホールは見つからず、このことが報告され(ステップ144)、本方法はもとに戻る。
もしレジスタ中のホールポインタがヌルを示していないならば(ステップ142)、ホールコード(code)に従ってハッシュ値が計算される(ステップ146)。ホールコードは、欠落パラメータの5ビット表現であり、この欠落パラメータは、ホールポインタにより指されるホールテーブル中のエントリによって示される。欠落パラメータは、ハッシュ計算においては使用されないか、又は一定値、すなわち零又は1で置き換えられる。
次に、ハッシュ結果をインデックスとして用いてハッシュテーブル60(図2)からハッシュポインタを検索すべく、上述のように生成されたハッシュ結果が使用される(ステップ148)。もしハッシュポインタがヌルを示すならば(ステップ150)、次のホールポインタがホールリンクリストから読み出され(ステップ164)、本方法はステップ142を続ける。もしハッシュポインタがヌルを示さなければ(ステップ150)、部分的なソケット情報が、ハッシュポインタに対応するセッションデータベース内のエントリから読み出される(ステップ152)。
セッションデータベース中のエントリから読み出された部分ソケットは、パケットにおける受信した部分ソケットと比較される(ステップ154)。もしこれらの部分ソケットが一致するならば(ステップ156)、セッション一致が見つかったことが宣言される(ステップ158)。もし部分ソケットが一致しないならば、次のハッシュポインタがリンクリストから読み出され(ステップ160)、もしハッシュポインタがヌルを示さなければ(ステップ162)、本方法はステップ152を続け、次のセッション中の部分ソケットがチェックされる。もし次のハッシュポインタがヌルを示すならば(ステップ162)、次のホールポインタがホールリンクリストから読み出され(ステップ164)、本方法はステップ142を続ける。
一旦ホールサーチ方法を用いてセッションが認識されたなら、パケット及びセッションデータの処理は、完全ソケットサーチの場合のように進行する。よって、本発明によると、完全又は部分ソケット情報を用いてセッション認識が実行し得る。次に受信したパケットから情報が抽出されるので、開いたどのホールも充填される。
セッションデータベース
以下、セッションデータベース64(図2)について詳細に説明する。上述したように、セッションデータベースは、複数のセッションに対してセッション関係データを記憶する機能を有する。セッションデータベースの大きさは、運用及びシステム要求に依存して変わり得る。データベースの各レコードを作るフィールドを次の第2表に載せる。

第2表:セッションデータベースレコードフィールド
───────────────────────────────────
フィールド フィールドの説明 長さ
番号 (ビット)
───────────────────────────────────
1 ローカルIPアドレス 32
2 リモートIPアドレス 32
3 プロトコル 8
4 ローカルポート/ICMPシーケンス番号/IP識別 16
5 リモートポート/タイプおよびコード/ヌル 16
6 次のハッシュポインタ 16
7 前のハッシュポインタ 16
8 次のLRUポインタ 16
9 前のLRUポインタ 16
10 子の数 16
11 セッションステータス 16
12 ローカルMACアドレス 48
13 LAN ACK上(above) 変化 8
14 LANシーケンス上変化 8
15 WAN ACK上変化 8
16 WANシーケンス上変化 8
17 LAN ACK下(below) 変化 8
18 LANシーケンス下変化 8
19 WAN ACK下変化 8
20 WANシーケンス下変化 8
21 LANシーケンスおよびACK変化しきい値 32
22 WANシーケンスおよびACK変化しきい値 32
23 期待されるLAN ACK 32
24 期待されるWAN ACK 32
25 最大LANシーケンス 32
26 最大WANシーケンス 32
27 最大LANウインドウサイズ 32
28 最大WANウインドウサイズ 32
29 接続状態 32
30 タイムスタンプ 32
31 LAN初期シーケンス 32
32 WAN初期シーケンス 32
33 親セッションポインタ 16
34 第1子ポインタ 16
35 次の兄弟ポインタ 16
36 前の兄弟ポインタ 16
───────────────────────────────────
第1グループのフィールド1〜5は、セッションを識別するのに用いられるソケットを表す。フィールド番号4及び5は、プロトコルに依存して異なるデータを記憶する。例えば、ローカル及びリモートポートデータが、TCP及びUDPパケットに対して記憶され、ICMPシーケンス番号、タイプ及びコードデータが、ICMPエコーセッションに関係したパケットに対して記憶される。
フィールド6及び7は、上述したハッシュリンクリスト内の次及び前のハッシュポインタを記憶する。ハッシュリンクリストは、パケットのセッション認識中に用いられる。フィールド8及び9は、古さ(staleness) の観点からセッションを順序付けるのに用いられるLRUリンクリスト内の次及び前のLRUポインタを記憶する。LRUリンクリストの操作は後に詳しく説明する。フィールド10は子の数を記憶する。このフィールドは、このセッションに関連したアプリケーションが追加セッションの開設を要求する場合に用いられる。開かれた各々のセッション(すなわち子セッション)が当該子の数をインクリメントする。
動的フィルターはまた、ステータス関係の情報をCPUに送りかつCPUから送るためのセッションステータスレジスタを備える。セッションステータスは、下の第3表に示されるように複数のビットを含む。

第3表:セッションステータスビット
───────────────────────────────────
ビット名 説明
───────────────────────────────────
USD セッションレコードが使用されているか否か(すなわち有効か
否か)を示す
STR どちらの側がセッションを開始したかを示す、すなわちLAN
かWANか
HSH このセッションがハッシュリンクリスト中の最初のものである
ことを示す
NAT このセッションがネットワークアドレス変換(NAT)セッシ
ョンであるか否かを示す
ARP アドレス絞り込みプロトコル(ARP)NATセッションを示

FRG セッションが細分化(fragmented)されたIPセッションである
ことを示す
UCM このセッションがCPUによりマーク(marked)されたこと、す
なわち、このマークされたセッションに属する各パケットにつ
きステータスビットによりCPUが通知されることを示す
FRE ファミリ関係が存在することを示す
HLD タイムアウト等に関わらずセッションが閉じられ得ないことを
示す
PSV 受動セッション、すなわちタイムスタンプの更新がなく、パケ
ットはこのセッションを通過することができないことを示す
NOC セッションの閉鎖の通知、すなわち割り込みの発生を示す
SBP セッションバイパス、すなわち動的フィルタリングがなく、タ
イムスタンプの更新のみあることを示す
CSH セッションを生かしつつ(すなわち、LRU及び入ってくるパ
ケットのタイムスアンプを更新するが、それを許可しない)、
このセッションの総てのトラヒックを止めることを示す
───────────────────────────────────

次のフラグ、すなわちUCM、FRE、HLD、PSV、NOC、SBP、CSHが、CPUにより設定され、動的フィルターにより使用される。
フィールド12〜22は、ネットワークアドレス変換のために用いられる。フィールド23〜28及び31〜32は、すべてTCP関係のフィールドであり、TCPパケットを処理及び追跡する際に用いられる。フィールド29は、すべてのプロトコルタイプに対して接続状態を記憶する。接続状態パラメータは、現在の接続状態を表す値である。異なるプロトコルに対しては、異なる値が用いられる。説明のための例として、いくつかのプロトコルの接続状態が、下の第4表に示される。


フィールド30は、セッションのエージ(age) を決定するのに用いられるタイムスタンプを記憶する。時間は16ビットで表され、特定のプロトコルに従って時間差又はデルタとして記憶される。周期的にCPUがセッション管理モジュールに対してセッションのエージ測定(aging) を指示し、それによりエージオーバーのセッションが閉じられる。
フィールド33〜36は、このセッションに関係したセッションに対するポインタを記憶するのに用いられる。兄弟、子、親情報を含めて、種々のファミリ情報が、セッションデータベースに記憶される。
セッション追跡例:TCPセッションの開/閉
上述したように、主フィルター処理は、一旦セッションが認識され且つ受信パケットに関連したセッションデータがセッションデータベースから読み出されると規則チェックを実行する実体である。本発明のハードウエア手段によると、TCPが最も複雑である場合、動的基礎にてチェックされる各プロトコルに対して別々の回路が設けられる。ソフトウエア手段は、動的規則チェッキングを行うためにアプリケーションコードを利用する。
例として、TCPプロトコルのためのハードウエア回路により実行される必要のある処理が、TCPセッションの開閉プロセスの状態遷移図の形態にて説明される。電気技術の分野の習熟者ならば、ここに開示された状態遷移図を利用して、図示された同じ機能を実現する回路を構成することが可能であることに留意されたい。
図9は、TCPセッションのパケットフローを示す図である。ここに記載のフローは、通信技術においては周知であり、次の3−ウエイ及び4−ウエイハンドシェイクの状態遷移図を理解する際の助けとして示される。TCPセッションは、SYNフラグを含んだパケットを介して同期シーケンス番号を要求することにより、2つのホストAとBの間で開かれる。一旦開かれると、ACKパケットにより表されたように2つのホスト間にてデータが流れる。TCPセッションは、両サイドがFINフラグを含んだパケットを送ることにより閉じられる。このFINフラグは、送り手が送るべきデータをもはや持っていないことを示す。FINパケットの肯定応答がセッションを閉じる。
ハンドシェイク中に受信パケットから抽出された肯定応答数が、セッションデータベース中に記憶された期待される肯定応答数に基づいて検証される。後に説明するように、開かれたセッションの追跡中、ウインドウ内にあるべきシーケンス及び肯定応答数が検証される。もしRSTパケット(すなわち、TCPヘッダー中にアサート(asserted)されたRESETフラグを有するパケット)が到着すると、セッションは閉じられる。
図10は、TCPセッションを開く際に生じる3−ウエイハンドシェイクを説明する状態遷移図である。可能な入力パケットには、RX/TX SYN、RX/TX SYN ACK、RX/TX ACKパケットが挙げられる。一般に、符号170で示した状態遷移図は、複数の有効な(すなわち正当な)状態とその関連の遷移を含む。TXはLANからWANへの方向を示し、RXはWANからLANへの方向を示すことに留意されたい。
TCPセッションの開設を検出すると、ヌル状態172に入れられる。この状態において、新しいセッションがセッションデータベース内にて開かれ、以下のフィールドが生成されてセッションレコード中に記憶される。該フィールドとは、受信したシーケンス数、タイムスタンプ、ヌル状態を示す接続状態、最大ウインドウサイズ、最大シーケンス数、及び期待される肯定応答数である。その次の状態は、パケットが受信されるサイドはどちらか、すなわちLANか又はWANに依存する。もしRX SYNパケットが受信されるならば、次の状態は、「WANリクエストのTCP接続(WAN requested TCP Connection)」状態176となる。さもなければ、「LANリクエストのTCP接続(LAN requested TCP Connection)」状態184に入れられる。この状態では、他の総ての状態におけるのと同様に実行されるように、受信パケットから得られた認識セッションに対応するデータが、セッションデータベースから読み出される。1以上のフィールドが正当性をチェックされ、1以上のフィールドが更新され、セッションデータがセッションデータベースの元の位置に書き込まれる。
状態176において実行される主チェックは、肯定応答数が期待される肯定応答数に相関しているか否かをチェックすることを含む。接続状態、LAN初期シーケンス数、LAN最大シーケンス数、LANウインドウサイズ、及びハンドシェイクの最後の部分に対して期待される肯定応答が更新される。RX SYN及びTX SYNの受信が正当ならば、状態の変化は生じない。
TX SYN ACKの受信は、セッションを「LAN承認のTCP接続(LAN Accepted TCP Connection) 」状態178に移動させる一方、RX SYN ACKの受信は、セッションを「WAN承認のTCP接続(WAN Accepted TCP Connection) 」状態186に移動させる。RX SYN、TX SYN、RX SYN ACK及びTX SYNが正当ならば、状態の変化は生じない。これら2つの状態において、セッションパラメータの同様のチェックが実行される。一旦チェックと更新が完了したならば、更新されたパラメータがセッションデータベースの元の位置に書き込まれる。
状態178中でのRX ACK又は状態186中でのTX ACKの受信は、セッションを「TCP接続の開設(Open TCP Connection) 」状態180に移動させる。RX SYN ACK、TX SYN、RX ACK又はTX ACKの受信が正当ならば、状態の変化は生じない。これは、このセッションにてその後に受信される各TCPパケットが正当性についてチェックされるとすぐに、「TCPセッションの開設(open TCP session)」状態を表す。例えば、シーケンス数と肯定応答の追跡が実行される。パケットの方向に依存するLAN又はWANに対する最大シーケンス数のフィールドもまた、更新される。
よって、TCPセッションを開くための3−ウエイハンドシェイクの各ステップが、動的に追跡され、不正な遷移を試みるパケットは拒絶される。従って、TCPプロトコルに適切に準拠したパケットのみが通過を許可される。
図11A及び11Bは、TCPセッションを閉じる際に生じる4−ウエイハンドシェイクを説明した状態遷移図である。全体として符号190で示されたこの図中の可能な入力として、RX/TX ACK、RX/TX FIN ACK、RX/TX FIN ACK(FIN)又はRX/TX ACK(FIN)が挙げられる。TX/RX ACKは正規の肯定応答パケットを表す一方、ACK(FIN)はFINパケットの肯定応答を表すことに留意されたい。
この図における開始状態は、接続の開設(Open Connection)状態192である。RX ACK又はTX ACKパケットの受信は、状態の変化を生じさせない。TX FIN ACKの受信は、セッションを「LAN送出のFIN(LAN sent FIN)」状態194に移動させる一方、RX FIN ACKの受信は、セッションを「WAN送出のFIN(WAN sent FIN)」状態204に移動させる。状態194中でのRX FIN ACK又は状態204中でのTX FIN ACKの受信は、セッションを「WAN送出のFIN/LAN送出のFIN(WAN sent FIN/LAN sent FIN) 」状態202に移動させる。RX/TX FIN又はRX/TX ACKパケットの受信は、状態変化を生じさせない。
状態194中でのRX ACK(FIN)パケットの受信は、セッションを「WAN応答のLAN FIN(WAN ACKed LAN FIN) 」状態196に移動させる。RX/TX ACK、RX ACK(FIN)又はTX FIN ACKパケットの受信は状態変化を生じさせない。状態204中でのTX ACK(FIN)パケットの受信は、セッションを「LAN応答のLAN FIN(LAN ACKed LAN FIN) 」状態206に移動させる。RX/TX ACK、TX ACK(FIN)又はTX FIN ACKパケットの受信は、状態変化を生じさせない。
状態196中でのRX FIN ACK又はRX FIN ACK(FIN)パケットの受信は、セッションを「WAN応答のLAN FIN/WAN送出のFIN(WAN ACKed LAN FIN/WAN Sent FIN)」状態198に移動させる。RX/TX ACK、RX ACK(FIN)、RX FIN ACK(FIN)及びRX/TX FINパケットは、状態変化を生じさせない。状態206中でのTX FIN ACK又はTX FIN ACK(FIN)パケットの受信は、セッションを「WAN応答のLAN FIN/WAN送出のFIN(WAN ACKed LAN FIN/WAN Sent FIN)」状態210に移動させる。RX/TX ACK、TX ACK(FIN)、TX FIN ACK(FIN)及びRX/TX FINパケットは、状態変化を生じさせない。
状態194中でのRX FIN ACK(FIN)パケットの受信は、セッションを「WAN応答のLAN FIN/WAN送出のFIN(WAN ACKed LAN FIN/WAN Sent FIN)」状態198に直接移動させる。状態204中でのTX FIN ACK(FIN)パケットの受信は、セッションを「LAN応答のWAN FIN/LAN送出のFIN(LAN ACKed WAN FIN/LAN Sent FIN)」状態210に直接移動させる。
状態198中でのTX ACK(FIN)若しくはTX FIN ACK(FIN)パケットの受信、又は状態210中でのRX ACK(FIN)若しくはRX FIN ACK(FIN)パケットの受信は、セッションを「FINによるTCPの閉鎖(Close TCP By FIN)」状態200に移動させる。RX/TX FIN、RX/TX ACK、TX FIN及びRX/TX ACK(FIN)パケットは、状態の変化を生じさせない。
このようにして、TCPセッションを閉じるための4−ウエイハンドシェイクの各ステップが動的に追跡され、不正な遷移を試みるパケットは拒絶される。よって、TCPプロトコルに適切に準拠するパケットのみが通過を許可される。
本発明はまた、他のプロトコルも同様に追跡するセッションを含む。図12は、ARPセッションのパケットフローの説明図である。2つのホストA及びBを仮定すると、ARPセッションの追跡は、ARPリクエストパケットを受信するとセッションを開くことを含む。同じソケットを有する後続のARPリクエスト/リプライパケットが許可される(再送信を含めて)。好ましくは、ARPリプライの後に短いデルタタイムアウトが規定される。というのは、開いたARPセッションは、長時間の間開いたまま保持されるべきでないからである。ARPリプライがセッションを閉じる。
図13は、ICMPエコーセッションのパケットフローの説明図である。2つのホストA及びBを仮定すると、ICMPエコーリクエストがICMPエコーセッションを開く。一旦セッションが開かれると、同じソケットを持ったICMPエコーリプライのみが許可される。エコー再送信は異なるシーケンスID番号、すなわち異なるソケットを利用するので、再送信は許可されない。
図14は、ICMPメッセージ/エラーセッションのパケットフローの説明図である。ICMPメッセージ/エラーパケットは、IPヘッダーフィールド、ICMPヘッダー、IPヘッダー及び64ビットのTCPヘッダーを含む。ICMPメッセージ/エラーは、64ビットのTCPヘッダーに加えて、元のパケットのIPヘッダーを取り込んでいる(encapsulated)。ICMPメッセージ/エラーパケットは、セキュリティポリシー規則のデータベース(すなわち外部静的フィルター)によって許可されなければならず、さもなければ、主フィルター処理によって自動的に拒絶される。動的フィルターは、取り込まれた部分パケットのみを処理する(すなわちセッションは取り込まれたソケットに従って認識される)。もし静的フィルターにより許可され且つセッション認識中にセッションが見つかったならば、(1)ICMPメッセージパケットが許可され、セッションのタイムスタンプフィールドのみが修正され、(2)ICMPエラーパケットが許可され、接続状態が「LAN/WAN ICMP ERRORによる閉鎖(closed by LAN/WAN ICMP ERROR)」に変えられる。このセッションに属する後続のパケットは、このエラーゆえに拒絶される。外部構成(例えばCPUを介して)は、どの種類のICMP(ICMP タイプ/コード)がメッセージであると考えられるか、及びどれがエラーであると考えられるかを決める。セキュリティ問題を有するICMPパケットは、セキュリティポリシー規則のデータベースにより先行して拒絶されなければならない。
シーケンス/肯定応答数の追跡
本発明によると、主フィルター処理は、TCP/IPセッションのシーケンス番号を追跡する。図15は、主フィルタープロセッサによる規則チェック中に実行されるシーケンス番号のウインドウ追跡の説明図である。シーケンス番号の追跡は、TCPヘッダー中のバッファサイズのフィールドを用いて「TCP接続の開設」状態180中にて主フィルター処理によって実行される。x軸がLANシーケンス番号を表していると仮定すると、垂直の破線で示されているように、最大LANシーケンス番号からバイトで表された最大WANウインドウサイズ240が減じられ、かつ最大LANシーケンス番号に加えられる。初期LANシーケンス番号は、x軸の左端に示されている。許可されるLANシーケンス範囲242が示されている。
各パケットに対して、下限が、初期LANシーケンス番号又は最大LANシーケンスー( マイナス)最大WANウインドウサイズのうちの大きいほうとして計算される。上限は、最大LANシーケンス番号と最大WANウインドウサイズの和である。もし送信されたパケットのシーケンス番号が下限と上限の間にあるならば、そのパケットは許可される。そうでないならば、そのパケットは拒絶される。許可されたシーケンス範囲の外側のシーケンス番号を持ったパケットは拒絶される。受信パケットのシーケンス番号が同様に追跡されるが、上述のLANとWANの交換の点で異なることに留意されたい。
図16は、主フィルタープロセッサによる規則チェック中に実行される肯定応答シーケンス数のウインドウ追跡の説明図である。肯定応答数の追跡は、TCPヘッダー中のバッファサイズフィールドを用いて「TCP接続の開設」状態180中にて主フィルター処理によって実行される。x軸がWANシーケンス番号を表すと仮定すると、垂直破線により示されているように、最大WANシーケンス番号からバイトで表された最大LANウインドウサイズ250が減じられ、かつ最大WANシーケンス番号に加えられる。初期WANシーケンス番号は、x軸の左端に示される。許可された肯定応答範囲252が示されている。肯定応答数に対する規則チェックは、パケットがWAN又はLANにより送られたか受信されたかに依存して、上述されたシーケンス番号の規則チェックに類似する。
本発明によると、主フィルター処理モジュールは、限定的ではないがUDP、エコーリクエスト/リプライ、コントロール及びエラーメッセージの両方を含んだICMP、ARP、ICMPフラグメンテーション、及びIPを含めて、他のプロトコルも同様に関連した規則を動的にチェックする機能を有する。
セッション管理モジュール
本発明によると、セッション管理モジュールは、最長時間未使用の順番にてセッションを記憶すべくリンクリストを維持する機能を有する。セッション管理モジュールは、セッションデータベースの維持及び制御に関係したいくつかの機能を実行する。セッション管理モジュールは、CPUからの命令に応じて、セッションデータベース中に記憶されたセッションのタイムスタンプの有効性をチェック(すなわちエージ測定)するよう機能する。エージ測定を実行する命令が受信されると、セッションデータベース中の各レコードのタイムスタンプフィールドが調査され、期限が切れたレコードが閉じられる。古くなり且つ何らかの理由で正常に閉じられなかったセッションを廃棄する(flush) ために、エージ測定がセッションについて行われる。例えば、セッションは、もしそれが規則に違反したパケットに対応するならば、エージオーバーし得る。
セッション管理モジュールまたは、リクエストに応じて未使用(すなわち空で利用可能な)セッションをCPU又は主フィルター処理54(図2)に与える機能を有する。動作中、CPU/主フィルター処理は新しいセッションをリクエストし、セッション管理モジュールは1をサーチし、インデックスをCPU/主フィルター処理にそれぞれ戻す。同様に、セッション管理モジュールはまた、要求されるとき、すなわちエージ測定、CPUリクエスト、主フィルター処理リクエストなどのときに使用されているセッションを切り離す。セッション管理モジュールはまた、新しいセッションを開き、その際、ハッシュテーブル中のLRUポインタとハッシュポインタ及びセッションデータベースが更新される。
図17は、セッション使用を追跡するのに用いられる最長時間未使用の(LRU)リンクリスト構造を示す。セッションが認識(すなわちアクセス)され、対応するパケットが主フィルター処理によって許可される度に、セッションがLRUリンクリストの末尾に配置される。全体として符号220で示された二重リンクリストは複数のセッション226を含み、その各々が次のポインタ222と前のポインタ224を有する。LRUリンクリストの末尾のセッションは、tail_LRU_index_regレジスタ228の内容によって指示される。このレジスタにより指示されたセッションは、最短時間未使用のセッションを表す。LRUリンクリストの先頭のセッションは、head_LRU_index_regレジスタ227の内容によって指示される。
後の詳細に説明するように、セッション管理モジュールはまた、セッションを閉じる際にファミリ関係を更新及び維持する。
セッションデータベースがいっぱいの場合において、新しいセッションが加えられたときにどのセッションを除去するかを決めるために、LRUリンクリストが用いられる。この場合、最長時間未使用のセッションが閉じられ、新しいセッションを記憶するのにそのレコードが用いられる。
図18は、入力パケットに関連したセッションを認識した際にLRUリンクリストを更新する方法を示すフローチャートである。一致セッションがアクセスされかつ対応するパケットが許可される度に、この更新方法が実行される。図17に関し、特に前のセッション、一致セッション及び次のセッションとラベル付けされたセッションに関し、一致セッションがリスト中のその位置から末尾に移されて最短時間未使用のセッションとなる。一致セッションは、(1)前のセッションの次のLRUポインタを一致セッションの次のLRUポインタに設定すること、及び(2)次のセッションの前のLRUポインタを一致セッションの前のLRUポインタに設定することによって除去される(ステップ230)。
次に、一致セッションは、(1)一致セッションの次のLRUポインタをヌルに設定すること、(2)一致セッションの前のLRUポインタをtail_LRU_index_regレジスタの内容に設定すること、及び(3)tail_LRU_index_regレジスタを一致セッションのインデックスに設定することによって、最短時間未使用のものとされる(ステップ232)。
図19は、本発明のセッション管理モジュールの処理を示すフローチャートである。セッション管理処理はアイドルステップ342にて始まり、事象に依存して次のステップに移動する。CPU又は主フィルタープロセッサからの「未使用を得る(get unused)」命令の場合、最長時間未使用のセッションのステータスがフェッチされる(ステップ344)。もしセッションが使用中であるならば(ステップ350)、そのセッションは閉じられる(ステップ348)。もしセッションが使用中でないならば、head_LRU_index_regは、最長時間未使用のセッションの次のLRUポインタに設定され、次の(前のLRUポインタ)(next (previous LRU pointer))はヌルに設定される(ステップ352)。次に、除去されたセッションの次のLRUポインタと前のLRUポインタが、ヌルに設定され、それにより、最長時間未使用のセッションをLRUリンクリストから除去する(ステップ354)。unused_ses変数は、ちょうど切り離されたセッションに設定され、従って、CPU又は主フィルター処理に知らせるフラグは、「1」に設定される(ステップ356)。次に、プロセスはアイドルに戻る(ステップ358)。
CPUからの「タイムアウトをチェック(check timeout)」コマンドは、セッションマネージャにセッションのタイムアウトのチェックを開始させる。index_counterがインクリメントされ(ステップ362)、セッションのステータスがフェッチされる(すなわちindex_counter)(ステップ364)。もしセッションが現在使用中であるならば(ステップ366)、セッションのタイムスタンプがフェッチされる(ステップ372)。もしタイムスタンプが実際の時間よりも大きい(すなわちセッションがエージオーバーした)ならば(ステップ374)、セッションが閉じられる(ステップ376)。
もしセッションが使用されていないか又はセッションがエージオーバーしていないならば、index_counterが最後のインデックスよりも小さいか否かがチェックされる(ステップ368)。もし肯ならば、index_counterがインクリメントされ(ステップ370)、本方法はステップ364を続ける。もし否ならば、タイムアウトのチェックは完了し、主フィルター処理に通知され(ステップ360)、本方法はアイドルに戻る(ステップ358)。
図20は、セッションを開くために本発明のセッション管理モジュールによって実行される処理を示すフローチャートである。セッションが開かれるとき、それはLRUリンクリストの末尾に配置される(ステップ380)。セッションはまた、ハッシュリンクリスト中の適当な場所にも配置される(ステップ382)。次に、本方法はアイドル状態に戻る(ステップ384)。
図21は、セッションを閉じるために本発明のセッション管理モジュールによって実行される処理を示すフローチャートである。もしセッションがHLDフラグにより規定されたように閉じることができるならば、LRUポインタの変更なしにセッションが消去される(ステップ392)。次に本方法はアイドル状態に戻る(ステップ404)。
もしセッションを閉じることができず、閉鎖のリクエストがタイムアウトのチェックに起因していたならば(ステップ390)、セッションは閉じられず(ステップ396)、本方法はアイドル状態に戻る(ステップ404)。もし閉鎖リクエストがタイムアウトのチェックに起因したものでないならば、最長時間未使用のセッションにより指示された次のセッションがフェッチされる(ステップ398)。もしこのセッションを閉じることができないならば(ステップ400)、本方法はステップ398を続け、本プロセスは、閉じられ得るセッションが見つかるまで繰り返される。もし閉じられ得るセッションが見つかれば(ステップ400)、セッションはLRUとして構成される(ステップ401)。次に、セッションはLRUポインタを除いて消去され(ステップ402)、そして本方法はアイドル状態に戻る(ステップ404)。
上述したように、セッション管理モジュールもまた、セッションのファミリ関係を定めるセッションデータベース中の4つのファミリ関係ポインタを維持するべく機能する。セッションの閉鎖の際に、ファミリ関係ポインタが更新される。図22は、セッションに対するファミリポインタの説明図である。各々のセッションは、親セッションを指示する親ポインタ、親からその第1子を指示する第1子ポインタ、及び同じ親を持ったセッション間にて二重リンクリストを実現するのに用いられる次/前の兄弟ポインタを有し得る。
ファミリ関係ポインタ情報を記憶するために、セッションデータベース中のフィールド33〜36が用いられる。ファミリ関係自体はCPUによって決められる。従って、もしセッションがセッションマネージャによって(すなわちタイムアウトのチェックゆえに、又は新しいセッションのための余地を作るために)閉じられるならば、セッションマネージャは、ファミリポインタを更新する機能を有する。
本発明によると、同じアプリケーションに属するセッション間を論理接続するために、ファミリポインタが使用される。例えば、FTPサービスは、2つの異なるTCP/IPセッション、すなわちポート21上の制御セッションとポート20上のデータセッションを開く。FTP制御は親セッションであり、一方、FTPデータは子セッションである。一般に、子フィールド(10)の数と共に4つのファミリポインタを用いて、任意のファミリ関係が可能である、すなわち、任意のネスティングの親/子アプリケーションがサポートされる。親セッションがLRU/タイムアウト機構を介して閉じられる場合、ファミリに属する後続作成セッションのすべてを閉じるために、セッションマネージャはファミリポインタを使用する。
しばしば、すべての接続が同時に使用されるわけではない。例えば、ある期間、子セッションのみを用いてアプリケーションが接続可能である。LRU/タイムアウト機構により親制御セッションを閉じることを避けるために、CPUが親セッション中のHLDビットを設定する。セッションマネージャは、開かれた子セッション(すなわち子の数>0)を有するセッションは閉じず、そのHLDビットがアサートされる。ファミリセッションの一つが閉じられるとき、セッションマネージャは、すべてのファミリポインタを維持する、すなわち(もし存在すれば)その子セッションすべてを閉じ、(もし存在すれば)ファミリ兄弟セッションの二重リンクリストを更新し、(もし存在すれば)その親セッションの子の数をデクリメントし、親/第1子の二重リンクリストを更新する機能を有する。
図23は、複数のセッション間のファミリ関係の例を示す説明図である。この例では、親セッションは子セッションに関係付けられ、この子セッションは2つの兄弟セッションに関係付けられる。第1子セッションは、子セッションを有する親セッションでもあり、この子セッションは、上の親セッションの孫である。
コンピュータ実施態様
別の実施態様では、コンピュータは、本発明の動的パケットフィルター方法を実施するソフトウエアを実行する機能を有する。図24は、本発明のセッション追跡方法を用いて動的パケットフィルタリングを実行するプラットフォームのコンピュータ処理システムの例を示すブロック図である。本システムは、PDA、携帯電話、ケーブルモデム、ブロードバンドモデム、ラップトップ、PC、ネットワーク送信若しくは交換装置、ネットワーク装置、又は他の有線若しくは無線通信装置などの通信装置内に組み込むことができる。この通信装置は、ハードウエア及び/又はソフトウエアの任意の組合わせを用いて構成し得る。
全体的に符号260で示されたコンピュータシステムは、プロセッサ264を含み、このプロセッサ264は、マイクロコントローラ、マイクロプロセッサ、マイクロコンピュータ、ASICコア、FPGAコア、中央処理装置(CPU)又はデジタル信号プロセッサ(DSP)として実現し得る。本システムは、スタティック読出し専用メモリ(ROM)266とダイナミック主メモリ(例えばRAM)270とをさらに備え、これらはすべてプロセッサと通信する。プロセッサはまた、これもコンピュータシステム中に含まれるいくつかの周辺装置とバス262を介して通信する。
この装置は、インターネットなどのWAN280にWANインターフェース272を介して接続される。このインターフェースは、1以上のWAN通信チャンネルへの有線及び/又は無線インターフェースを備える。通信I/O処理274は、WANインターフェースとプロセッサの間でデータを転送する。コンピュータシステムは、運用に依存してネットワークインターフェースカード(NIC)271を介してLAN273にも接続される。動作中、コンピュータシステムは、上述のようにWANからLANに入ってくるパケット、及びLANからWANに出ていくパケットを動的にフィルタリングする機能を有する。
オプションのユーザーインターフェース276は、ユーザー入力に応答し、フィードバックと他のステータス情報とを与える。ホストインターフェース278は、ホストコンピュータ装置282を本システムに接続する。ホストは、システムの動作を構成、制御及び維持する。システムはまた、アプリケーションプログラムとデータを記憶するための磁気記憶装置268を備える。システムは、コンピュータ読出し可能な記憶媒体を備え、この記憶媒体としては、限定するものではないが磁気記憶装置、光記憶装置、CD−ROMドライブ、ZIPドライブ、DVDドライブ、DATカセット、半導体揮発性若しくは不揮発性メモリ、生体記憶(biological memory) 装置、又は他の任意のメモリ記憶装置を含めて、任意の適当なメモリ手段が挙げられる。
本発明の動的フィルターの機能を実現するために更新されるソフトウエアは、ディスクドライブ装置内の磁気ディスクなどのコンピュータ読出し可能な媒体上に存在し得る。別法として、コンピュータ読出し可能な媒体として、フロッピーディスク、フラッシュメモリカード、EPROM、EEROM、EEPROMベースのメモリ、バブルメモリ記憶装置、ROM記憶装置などが挙げられる。本発明の動的パケットフィルター方法を実行するソフトウエアはまた、スタティック若しくはダイナミック主メモリ内、又はコンピュータシステムのプロセッサ内のファームウエア内(すなわち、マイクロコントローラ、マイクロプロセッサ、マイクロコンピュータ、DSPなどの内部メモリ内)に全部又は一部が存在し得る。
別の実施態様では、本発明の方法は、集積回路、フィールドプログラマブルゲートアレイ(FPGA)、チップセット若しくは特定用途向け集積回路(ASIC)、無線機器、及び他の通信システム製品において、本発明の実施に適用し得る。
添付の特許請求の範囲は、本発明の思想及び範囲内にある本発明の特徴及び利点のすべてに及ぶものである。当該技術の習熟者ならば多くの変更を容易に行えるであろうから、本発明はここに記載の限定された数の実施態様に制限されるものではない。よって、適切なあらゆる変形物、修正物及び均等物が本発明の思想及び範囲内にあることが理解されよう。
WAN又はインターネットとの関連において本発明の動的パケットフィルターのいくつかの適用例を示すブロック図である。 本発明の動的パケットフィルターをさらに詳細に示したブロック図である。 本発明の主フィルタープロセッサ法を示すフローチャートである。 一致が見つかった場合の本発明の主フィルタープロセッサ法を示す状態遷移図である。 一致が見つからなかった場合の本発明の主フィルタープロセッサ法を示す状態遷移図である。 入力パケットに関連したセッションを決めるハッシング技術を示す図である。 本発明のセッション認識プロセスのハッシング方法を示すフローチャートである。 本発明のセッション認識プロセスのホールサーチ方法を示すフローチャートである。 TCPセッションのパケットフローを示す図である。 TCPセッションを開く際の3−ウエイハンドシェイクを示す状態遷移図である。 TCPセッションを閉じる際の4−ウエイハンドシェイクを示す状態遷移図である。 TCPセッションを閉じる際の4−ウエイハンドシェイクを示す状態遷移図である。 ARPセッションのパケットフローを示す図である。 ICMPエコーセッションのパケットフローを示す図である。 ICMPメッセージ/エラーセッションのパケットフローを示す図である。 主フィルタープロセッサによる規則のチェック中に行われるシーケンス番号のウインドウ追跡を示す図である。 主フィルタープロセッサによる規則チェック中に行われる肯定応答シーケンス番号のウインドウ追跡を示す図である。 セッションの古さを追跡するのに用いられる最長時間未使用のリンクリスト構造を示す図である。 入力パケットに関連したセッションを認識したときLRUリンクリストを更新する方法を示すフローチャートである。 本発明のセッション管理モジュールの処理を示すフローチャートである。 セッションを開くために本発明のセッション管理モジュールにより実行される処理を示すフローチャートである。 セッションを閉じるために本発明のセッション管理モジュールにより実行される処理を示すフローチャートである。 セッションに対するファミリーポインタを示す図である。 複数のセッション間のファミリー関係の例を示す図である。 本発明のセッション追跡方法を用いて動的パケットフィルタリングを実行するのに適応したプラットフォームに対するコンピュータ処理システムの例を示すブロック図である。
符号の説明
10 WAN/インターネット
12 PDA
14、20、28 ファイアウォール
16、22、30 動的フィルター
18 ケーブル・プラグ・アダプタ
24 ブロードバンドモデム
26、32 LAN
31 コンピュータ
40 動的フィルター
42 ホスト装置/CPU
46 ヘッダー復号器
47 バス
48 バス・インターフェース
50 バッファ/レジスタ
51 静的フィルター
52 セッション認識モジュール
53 コンテンツ・サーチ・ユニット
54 主フィルター処理モジュール
56 セッション管理モジュール
60 ハッシュテーブル
62 ホールテーブル
64 セッションデータベース

Claims (38)

  1. 各セッションがソケットに対応している複数のセッションに対して、セッションに関係したデータを記憶するセッションデータベースを設けるステップ;
    前記セッションデータベースに前に記憶されていないソケットを受信すると、新しいセッションを開くステップ;
    受信パケットに関連したセッションをその関連ソケットに従って認識するステップ;
    前記受信パケットに対応したセッションデータを複数の所定規則に従って処理して処理結果を生成するステップ;及び
    前記処理結果に従って前記受信パケットを許可するか又は拒否するかを決定するステップ
    を含む、入力パケットストリームのフィルタリング方法であって、
    最長時間未使用(LRU)二重リンクリストを設定し維持するステップをさらに含み、このリストは先頭と末尾を有し、最短時間未使用のセッションは末尾に記憶され、最長時間未使用のセッションは先頭に記憶され
    複数のレコードを含んだホールテーブルを設定するステップをさらに含み、その各レコードは不完全なソケット情報の固有の部分集合を表し、前記セッションを認識するステップがホールテーブルを調べることによりホールセッションを認識することを含むことを特徴とするフィルタリング方法。
  2. 前記処理結果に従って前記セッションデータベースの内容を更新するステップをさらに含む、請求項1に記載の方法。
  3. 前記決定ステップが、もし受信パケットが前記複数の所定規則のいずれにも違反していないならば前記受信パケットを許可することを含む、請求項1に記載の方法。
  4. 前記決定ステップが、もし受信パケットが前記複数の所定規則の1以上に違反しているならば前記受信パケットを拒否することを含む、請求項1に記載の方法。
  5. 前記セッションデータベースから未使用のセッションを除去するステップをさらに含む、請求項1に記載の方法。
  6. 前記LRUリストがいっぱいの場合、先頭のセッションが削除されて新しいセッションが末尾に加えられる、請求項1に記載の方法。
  7. 関連するタイムスタンプが所定のしきい値を越えたセッションを除去するステップをさらに含む、請求項1に記載の方法。
  8. 新しいセッションを開く前記ステップが、
    前記セッションデータベース中に前記新しいセッションに関係したセッションデータを記憶するステップ;
    前記新しいセッションに関連したソケットについてハッシュ値を計算するステップ;及び
    ハッシュテーブル中に前記ハッシュ値を記憶するステップ
    を含む、請求項1に記載の方法。
  9. セッションを認識する前記ステップが、
    認識されるセッションに関連したソケットについてハッシュ値を計算するステップ;
    ハッシュ結果をインデックスとして用いてハッシュテーブル内のハッシュポインタを探すステップ;
    前記ハッシュポインタに従って前記セッションデータベースからソケットデータを検索するステップ;及び
    もし検索されたソケットが受信セッションに関連したソケットに一致するならば前記セッションを認識するステップ
    を含む、請求項1に記載の方法。
  10. 前記セッションデータを処理する前記ステップが、もしセッションが伝送制御プロトコル(TCP)の開設セッションを含むならば伝送制御プロトコル(TCP)開設のハンドシェイクの状態を追跡することを含む、請求項1に記載の方法。
  11. 前記セッションデータを処理する前記ステップが、もしセッションが伝送制御プロトコル(TCP)の閉鎖セッションを含むならば伝送制御プロトコル(TCP)閉鎖のハンドシェイクの状態を追跡することを含む、請求項1に記載の方法。
  12. 前記セッションデータを処理する前記ステップが、もし前記セッションが伝送制御プロトコル(TCP)セッションを含むならばウインドウに対して前記セッションのシーケンスと肯定応答を追跡することを含む、請求項1に記載の方法。
  13. 通信セッションの状態をモニターする方法であって、
    各セッションがソケットに対応した複数のセッションに対して、セッションに関係するデータを記憶するセッションデータベースを設けるステップ;
    受信パケットに関連したソケットについての第1ハッシュ計算に従ってセッションを認識するステップ;
    前記受信パケットに関連した部分ソケットについての第2ハッシュ計算に従ってホールセッションを認識するステップ;
    認識されたセッションか又は認識されたホールセッションのどちらかに関連した前記セッションデータを前記セッションデータベースから読み出すステップ;
    前記セッションの接続状態を追跡し、複数の規則に基づいて前記状態をチェックして前記受信パケットの許否を決定するステップ;及び
    更新されたセッションデータを元の前記セッションデータベースに書き込むステップ
    を含む前記方法において、
    最長時間未使用(LRU)二重リンクリストを設定し維持するステップをさらに含み、このリストが先頭と末尾を有し、最短時間未使用のセッションが末尾に記憶され、最長時間未使用のセッションが先頭に記憶されることを特徴とする方法。
  14. 前記許否を決定するステップが、もし前記受信パケットが前記複数の規則のいずれにも違反していないならば前記受信パケットを許可することを含む、請求項13に記載の方法。
  15. 前記許否を決定するステップが、もし前記受信パケットが前記複数の規則の1以上に違反しているならば前記受信パケットを拒否することを含む、請求項13に記載の方法。
  16. 前記セッションデータベースから未使用のセッションを除去するステップをさらに含む、請求項13に記載の方法。
  17. 関連のタイムスタンプが所定のしきい値を越えたセッションを除去するステップをさらに含む、請求項13に記載の方法。
  18. 新しいセッションを開く前記ステップが、
    前記セッションデータベース中に前記新しいセッションに関係したセッションデータを記憶するステップ;
    前記新しいセッションに関連したソケットについてハッシュ値を計算するステップ;及び
    ハッシュテーブル中に前記ハッシュ値を記憶するステップ
    を含む、請求項13に記載の方法。
  19. セッションを認識する前記ステップが、
    認識されるセッションに関連したソケットについて前記第1ハッシュ値を計算するステップ;
    前記第1ハッシュの結果をインデックスとして用いてハッシュテーブル中のハッシュポインタを探すステップ;
    前記ハッシュポインタに従って前記セッションデータベースからソケットデータを検索するステップ;及び
    もし検索したソケットが受信されたセッションに関連のソケットに一致するならば前記セッションを認識するステップ
    を含む、請求項13に記載の方法。
  20. ホールセッションを認識する前記ステップが、
    認識されるセッションに関連した前記部分ソケットについて前記第2ハッシュ値を計算するステップ;
    前記第2ハッシュの結果をインデックスとして用いてハッシュテーブル中のハッシュポインタを探すステップ;
    前記ハッシュポインタに従って前記セッションデータベースから部分ソケットデータを検索するステップ;及び
    もし検索したソケットが受信されたセッションに関連する部分ソケットに一致するならば前記ホールセッションを認識するステップ
    を含む、請求項13に記載の方法。
  21. 前記接続状態を追跡する前記ステップが、もしセッションが伝送制御プロトコル(TCP)の開設セッションを含むならば伝送制御プロトコル(TCP)開設のハンドシェイクを追跡することを含む、請求項13に記載の方法。
  22. 前記接続状態を追跡する前記ステップが、もしセッションが伝送制御プロトコル(TCP)の閉鎖セッションを含むならば伝送制御プロトコル(TCP)閉鎖のハンドシェイクを追跡することを含む、請求項13に記載の方法。
  23. 前記接続状態を追跡する前記ステップが、もし前記セッションが伝送制御プロトコル(TCP)セッションを含むならばウインドウに対して前記セッションのシーケンスと肯定応答を追跡することを含む、請求項13に記載の方法。
  24. 各セッションがソケットに対応した複数のセッションに対して、セッションに関係したデータを記憶するセッションデータベース;
    前記セッションデータベースにおいて関連ソケットが受信パケットのソケットと一致するセッションをサーチするセッション認識モジュール;
    前記セッションデータベースにおけるセッションの追加、削除及び修正を含めて、前記セッションデータベースを維持するセッション管理モジュール;及び
    受信パケットに対応したセッションの接続状態を追跡し、複数の規則に基づいて前記接続状態をチェックして前記受信パケットの許否を決定する機能を有する主フィルターモジュール
    を備えた、入力パケットストリームをフィルタリングするための動的フィルターであって、
    前記セッション管理モジュールが、最長時間未使用(LRU)二重リンクリストを設定及び維持し、このリストは先頭と末尾を有し、その末尾には最短時間未使用のセッションが記憶され、その先頭には最長時間未使用のセッションが記憶され
    複数のレコードからなるホールテーブルをさらに含み、その各レコードが不完全なソケット情報の固有の部分集合を表し、前記セッション認識モジュールはまたホールテーブルを調べることによりホールセッションを認識することを特徴とする動的フィルター。
  25. 前記主フィルターが、前記受信パケットの許否の決定後に修正されたセッションデータを元の前記セッションデータベースに書き込む、請求項24に記載の動的フィルター。
  26. 前記主フィルターが、もし前記受信パケットが前記複数の規則のいずれにも違反していないならば前記受信パケットを許可する、請求項24に記載の動的フィルター。
  27. 前記主フィルターが、もし前記受信パケットが前記複数の規則の1以上に違反しているならば前記受信パケットを拒否する、請求項24に記載の動的フィルター。
  28. 前記セッション管理モジュールが、前記セッションデータベースから未使用のセッションを除去する、請求項24に記載の動的フィルター。
  29. 前記セッション管理モジュールが、関連するタイムスタンプが所定のしきい値を越えたセッションを除去する、請求項24に記載の動的フィルター。
  30. 前記セッション管理モジュールが、セッション開設手段を備え、該手段が、
    前記セッションデータベースにおいて前記新しいセッションに関係したセッションデータを記憶し;
    前記新しいセッションに関連したソケットについてハッシュ値を計算し;そして
    ハッシュテーブル中に前記ハッシュ値を記憶する、
    請求項24に記載の動的フィルター。
  31. 前記セッション認識モジュールが、
    認識されるセッションに関連するソケットについてハッシュ値を計算し;
    ハッシュ結果をインデックスとして用いてハッシュテーブル中のハッシュポインタを探し;
    前記ハッシュポインタに従って前記セッションデータベースからソケットデータを検索し;かつ
    もし検索したソケットが受信セッションに関連したソケットに一致するならば前記セッションを認識する手段
    を備える、請求項24に記載の動的フィルター。
  32. 前記主フィルターが、もしセッションが伝送制御プロトコル(TCP)開設セッションを含むならば伝送制御プロトコル(TCP)開設のハンドシェイクの状態を追跡するための手段をさらに備える、請求項24に記載の動的フィルター。
  33. 前記主フィルターが、もしセッションが伝送制御プロトコル(TCP)閉鎖セッションを含むならば伝送制御プロトコル(TCP)閉鎖のハンドシェイクの状態を追跡するための手段を備える、請求項24に記載の動的フィルター。
  34. 前記主フィルターが、もし前記セッションが伝送制御プロトコル(TCP)セッションを含むならばウインドウに対して前記セッションのシーケンスと肯定応答を追跡するための手段を備える、請求項24に記載の動的フィルター。
  35. 前記動的フィルターが、フィールドプログラマブルゲートアレイ(FPGA)にて実現される、請求項24に記載の動的フィルター。
  36. 前記動的フィルターが、特定用途向け集積回路(ASIC)にて実現される、請求項24に記載の動的フィルター。
  37. デジタルコンピュータ装置であって、
    前記装置を広域ネットワーク(WAN)に接続する通信手段;
    揮発性メモリと1以上のアプリケーションプログラムを記憶するのに適応した不揮発性メモリとを含んだメモリ手段;
    前記1以上のアプリケーションプログラムを実行するために前記メモリ手段と前記通信手段に接続されたプロセッサ;及び
    入力パケットストリームをフィルタリングするための動的フィルター
    を備え、該動的フィルターが、
    各セッションがソケットに対応した複数のセッションに対して、セッションに関係したデータを記憶するセッションデータベース;
    前記セッションデータベースにおいて、関連ソケットが受信パケットのソケットに一致するセッションをサーチするセッション認識モジュール;
    前記セッションデータベースにおけるセッションの追加、削除及び変更を含めて前記セッションデータベースを維持するセッション管理モジュール;及び
    受信パケットに対応するセッションの接続状態を追跡し、複数の規則に基づいて前記接続状態をチェックして前記受信パケットの許否を決定する機能を有する主フィルターモジュール
    を備え、前記セッション管理モジュールが、最長時間未使用(LRU)二重リンクリストを設定及び維持し、このリストは先頭と末尾を有し、その末尾には最短時間未使用のセッションが記憶され、その先頭には最長時間未使用のセッションが記憶され
    複数のレコードからなるホールテーブルをさらに含み、その各レコードが不完全なソケット情報の固有の部分集合を表し、前記セッション認識モジュールはまたホールテーブルを調べることによりホールセッションを認識することを特徴とする前記デジタルコンピュータ装置。
  38. コンピュータ読出し可能な記憶媒体であって、その上に具現化されたコンピュータプログラムを有し、適切にプログラミングされたシステムに複数のストリングをサーチさせ、該サーチは、前記プログラムが前記システム上にて実行される際に以下のステップ、すなわち
    各セッションがソケットに対応した複数のセッションに対して、セッションに関係したデータを記憶するセッションデータベースを設けるステップ;
    前記セッションデータベース中に前に記憶されていないソケットを受信すると新しいセッションを開くステップ;
    受信パケットに関連したセッションをその関連ソケットに従って認識するステップ;
    前記受信パケットに対応したセッションデータを複数の所定規則に従って処理して処理結果を生成するステップ;及び
    前記処理結果に従って前記受信パケットの許否を決定するステップ
    を実施することにより行われる前記コンピュータ読出し可能な記憶媒体において、
    前記サーチでは、最長時間未使用(LRU)二重リンクリストを設定し維持するステップをさらに含み、このリストは先頭と末尾を有し、最短時間未使用のセッションは末尾に記憶され、最長時間未使用のセッションは先頭に記憶され
    複数のレコードを含んだホールテーブルを設定するステップをさらに含み、その各レコードは不完全なソケット情報の固有の部分集合を表し、前記セッションを認識するステップがホールテーブルを調べることによりホールセッションを認識することを含むことを特徴とする前記コンピュータ読出し可能な記憶媒体。
JP2002588042A 2001-05-09 2002-05-10 セッション追跡を利用する動的パケットフィルター Expired - Fee Related JP4162210B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/851,768 US6816455B2 (en) 2001-05-09 2001-05-09 Dynamic packet filter utilizing session tracking
PCT/IB2002/001603 WO2002091700A2 (en) 2001-05-09 2002-05-10 Dynamic packet filter utilizing session tracking

Publications (3)

Publication Number Publication Date
JP2004538678A JP2004538678A (ja) 2004-12-24
JP2004538678A5 JP2004538678A5 (ja) 2005-12-22
JP4162210B2 true JP4162210B2 (ja) 2008-10-08

Family

ID=25311632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002588042A Expired - Fee Related JP4162210B2 (ja) 2001-05-09 2002-05-10 セッション追跡を利用する動的パケットフィルター

Country Status (12)

Country Link
US (1) US6816455B2 (ja)
EP (1) EP1386464B1 (ja)
JP (1) JP4162210B2 (ja)
KR (1) KR100876935B1 (ja)
CN (1) CN100550889C (ja)
AT (1) ATE381839T1 (ja)
AU (1) AU2002302873A1 (ja)
BR (1) BRPI0209463B1 (ja)
CA (1) CA2445751C (ja)
DE (1) DE60224177T2 (ja)
ES (1) ES2302809T3 (ja)
WO (1) WO2002091700A2 (ja)

Families Citing this family (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430188B1 (en) * 1998-07-08 2002-08-06 Broadcom Corporation Unified table for L2, L3, L4, switching and filtering
US7272571B2 (en) * 2000-07-07 2007-09-18 Mars Incorporated Method and apparatus for effective distribution and delivery of goods ordered on the World-Wide-Web
US7224801B2 (en) * 2000-12-27 2007-05-29 Logitech Europe S.A. Wireless secure device
GB2371186A (en) * 2001-01-11 2002-07-17 Marconi Comm Ltd Checking packets
GB2376854A (en) * 2001-06-19 2002-12-24 Hewlett Packard Co Centralised security service for ISP environment
JP4145032B2 (ja) * 2001-08-07 2008-09-03 富士通株式会社 無線lanシステム
JP2003087693A (ja) * 2001-09-11 2003-03-20 Sony Corp 情報処理装置および方法、並びにプログラム
US7400579B2 (en) * 2001-09-28 2008-07-15 Intel Corporation Method and apparatus for per-call filtering of H.323 packets
US7216161B1 (en) * 2001-11-08 2007-05-08 Cisco Technology, Inc. Maintaining internet access while moving from port to port
US7813346B1 (en) 2001-11-21 2010-10-12 Juniper Networks, Inc. Filter-based forwarding in a network
ATE273591T1 (de) * 2001-12-18 2004-08-15 Stonesoft Corp Prüfung der konfiguration einer firewall
US6957281B2 (en) * 2002-01-15 2005-10-18 Intel Corporation Ingress processing optimization via traffic classification and grouping
US7145911B2 (en) * 2002-03-05 2006-12-05 Hewlett-Packard Company Method and system for parallel hash transformation for an address input
US7085271B2 (en) * 2002-03-14 2006-08-01 Hewlett-Packard Development Company, L.P. Method and system for performing flow based hash transformation to generate hash pointers for a network device
US7126948B2 (en) * 2002-03-21 2006-10-24 Hewlett-Packard Development Company, L.P. Method and system for performing a hash transformation to generate a hash pointer for an address input by using rotation
US7216260B2 (en) * 2002-03-27 2007-05-08 International Business Machines Corporation Method, system and program product for dynamically detecting errant data sequences and performing corresponding actions
TW588532B (en) * 2002-03-29 2004-05-21 Realtek Semiconductor Corp Management device and method of NAT/NAPT session
US7299264B2 (en) * 2002-05-07 2007-11-20 Hewlett-Packard Development Company, L.P. System and method for monitoring a connection between a server and a passive client device
US7167980B2 (en) * 2002-05-30 2007-01-23 Intel Corporation Data comparison process
US7363488B2 (en) * 2002-08-07 2008-04-22 Honeywell International Inc. Method and apparatus for prefiltering received messages in a security system
US7600008B1 (en) * 2002-10-16 2009-10-06 Juniper Networks, Inc. Systems and methods for harvesting expired sessions
US7454499B2 (en) * 2002-11-07 2008-11-18 Tippingpoint Technologies, Inc. Active network defense system and method
US7353538B2 (en) * 2002-11-08 2008-04-01 Federal Network Systems Llc Server resource management, analysis, and intrusion negation
JP2004179877A (ja) * 2002-11-26 2004-06-24 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
KR100542090B1 (ko) 2002-12-16 2006-01-11 한국전자통신연구원 무선 통신 시스템에서의 오류 제어 방법, 매체 접속 제어프레임 설계 방법 및 단말기 등록 방법과 기록 매체
US7483972B2 (en) * 2003-01-08 2009-01-27 Cisco Technology, Inc. Network security monitoring system
US20040143751A1 (en) * 2003-01-17 2004-07-22 Cyrus Peikari Protection of embedded processing systems with a configurable, integrated, embedded firewall
US8244853B1 (en) * 2003-03-03 2012-08-14 Vmware, Inc. Method and system for non intrusive application interaction and dependency mapping
US8296452B2 (en) * 2003-03-06 2012-10-23 Cisco Technology, Inc. Apparatus and method for detecting tiny fragment attacks
US7325002B2 (en) * 2003-04-04 2008-01-29 Juniper Networks, Inc. Detection of network security breaches based on analysis of network record logs
JP4196732B2 (ja) 2003-05-26 2008-12-17 日本電気株式会社 データ転送装置及びプログラム
US7660794B2 (en) * 2003-06-03 2010-02-09 Hewlett-Packard Development Company, L.P. Method and program product for reducing database walk frequency while repetitively accessing a firewall connection and rule database
US7620808B2 (en) * 2003-06-19 2009-11-17 Nokia Corporation Security of a communication system
US6985920B2 (en) * 2003-06-23 2006-01-10 Protego Networks Inc. Method and system for determining intra-session event correlation across network address translation devices
US7620070B1 (en) 2003-06-24 2009-11-17 Nvidia Corporation Packet processing with re-insertion into network interface circuitry
US7913294B1 (en) * 2003-06-24 2011-03-22 Nvidia Corporation Network protocol processing for filtering packets
US7286476B2 (en) * 2003-08-01 2007-10-23 F5 Networks, Inc. Accelerating network performance by striping and parallelization of TCP connections
US7644365B2 (en) 2003-09-12 2010-01-05 Cisco Technology, Inc. Method and system for displaying network security incidents
US20050079858A1 (en) * 2003-10-09 2005-04-14 Rosen Eric C. Method and apparatus for restricting media communication in a communication network
US20050108434A1 (en) * 2003-11-13 2005-05-19 Witchey Nicholas J. In-band firewall for an embedded system
US7844731B1 (en) * 2003-11-14 2010-11-30 Symantec Corporation Systems and methods for address spacing in a firewall cluster
US7389532B2 (en) * 2003-11-26 2008-06-17 Microsoft Corporation Method for indexing a plurality of policy filters
US7634655B2 (en) * 2004-02-13 2009-12-15 Microsoft Corporation Efficient hash table protection for data transport protocols
US7490350B1 (en) * 2004-03-12 2009-02-10 Sca Technica, Inc. Achieving high assurance connectivity on computing devices and defeating blended hacking attacks
US7840763B2 (en) * 2004-03-12 2010-11-23 Sca Technica, Inc. Methods and systems for achieving high assurance computing using low assurance operating systems and processes
US7650635B2 (en) * 2004-04-07 2010-01-19 Cisco Technology, Inc. Method and apparatus for preventing network attacks by authenticating internet control message protocol packets
US20070274307A1 (en) * 2004-04-15 2007-11-29 Shuichi Karino Cluster System, Cluster Member, And Program
US7422152B2 (en) 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
EP1762075B1 (en) * 2004-05-20 2011-06-29 Computer Associates Think, Inc. Systems and methods for detecting denial of service attacks
KR100619031B1 (ko) * 2004-06-11 2006-08-31 삼성전자주식회사 부가 데이터의 인터랙티브한 이용방법 및 장치, 그에 따른수신장치
US8155117B2 (en) * 2004-06-29 2012-04-10 Qualcomm Incorporated Filtering and routing of fragmented datagrams in a data network
US7933985B2 (en) * 2004-08-13 2011-04-26 Sipera Systems, Inc. System and method for detecting and preventing denial of service attacks in a communications system
US8582567B2 (en) * 2005-08-09 2013-11-12 Avaya Inc. System and method for providing network level and nodal level vulnerability protection in VoIP networks
US9531873B2 (en) * 2004-08-13 2016-12-27 Avaya Inc. System, method and apparatus for classifying communications in a communications system
US20090094671A1 (en) * 2004-08-13 2009-04-09 Sipera Systems, Inc. System, Method and Apparatus for Providing Security in an IP-Based End User Device
US7865944B1 (en) * 2004-09-10 2011-01-04 Juniper Networks, Inc. Intercepting GPRS data
JP2006121667A (ja) * 2004-09-27 2006-05-11 Matsushita Electric Ind Co Ltd パケット受信制御装置及びパケット受信制御方法
US7620071B2 (en) * 2004-11-16 2009-11-17 Intel Corporation Packet coalescing
US7509431B2 (en) * 2004-11-17 2009-03-24 Cisco Technology, Inc. Performing message and transformation adapter functions in a network element on behalf of an application
US7664879B2 (en) 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7694334B2 (en) * 2004-12-03 2010-04-06 Nokia Corporation Apparatus and method for traversing gateway device using a plurality of batons
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7725934B2 (en) 2004-12-07 2010-05-25 Cisco Technology, Inc. Network and application attack protection based on application layer message inspection
US7496750B2 (en) * 2004-12-07 2009-02-24 Cisco Technology, Inc. Performing security functions on a message payload in a network element
US8082304B2 (en) 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US7606267B2 (en) 2004-12-10 2009-10-20 Cisco Technology, Inc. Reducing the sizes of application layer messages in a network element
US7876777B2 (en) * 2004-12-30 2011-01-25 Honeywell International Inc. Multiple protocol decoder
US7551567B2 (en) * 2005-01-05 2009-06-23 Cisco Technology, Inc. Interpreting an application message at a network element using sampling and heuristics
US7796603B1 (en) 2005-01-14 2010-09-14 Acme Packet, Inc. Method and system for controlling media sessions in networks that use communication protocols with distinct signaling and media channels
US8249076B1 (en) * 2005-01-14 2012-08-21 Acme Packet, Inc. Method, system and architecture for validating media sessions in networks that use communication protocols with distinct signaling and media channels
US7698416B2 (en) 2005-01-25 2010-04-13 Cisco Technology, Inc. Application layer message-based server failover management by a network element
JP4170299B2 (ja) * 2005-01-31 2008-10-22 独立行政法人 宇宙航空研究開発機構 通信状態遷移モニタ方法及びこれを利用した通信状態遷移モニタ装置
US7860006B1 (en) * 2005-04-27 2010-12-28 Extreme Networks, Inc. Integrated methods of performing network switch functions
US7668969B1 (en) 2005-04-27 2010-02-23 Extreme Networks, Inc. Rule structure for performing network switch functions
US7761619B2 (en) * 2005-05-13 2010-07-20 Microsoft Corporation Method and system for parallelizing completion event processing
US20060259570A1 (en) * 2005-05-13 2006-11-16 Microsoft Corporation Method and system for closing an RDMA connection
US7706314B2 (en) * 2005-05-20 2010-04-27 Cisco Technology, Inc. Approach for implementing IPsec in performance enhancing proxy (PEP) environments
US7725595B1 (en) * 2005-05-24 2010-05-25 The United States Of America As Represented By The Secretary Of The Navy Embedded communications system and method
US7881291B2 (en) * 2005-05-26 2011-02-01 Alcatel Lucent Packet classification acceleration using spectral analysis
US7345585B2 (en) 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
US7882262B2 (en) 2005-08-18 2011-02-01 Cisco Technology, Inc. Method and system for inline top N query computation
US7818786B2 (en) * 2005-08-19 2010-10-19 Electronics And Telecommunications Research Institute Apparatus and method for managing session state
US20070130367A1 (en) * 2005-11-18 2007-06-07 Vivek Kashyap Inbound connection prioritization
US7649886B2 (en) * 2005-11-21 2010-01-19 Motorola, Inc. Method and system for processing incoming packets in a communication network
CN1980178A (zh) * 2005-12-03 2007-06-13 鸿富锦精密工业(深圳)有限公司 网络装置及其转发多播封包的方法
US8274979B2 (en) * 2005-12-30 2012-09-25 Telecom Italia S.P.A. Method and system for secure communication between a public network and a local network
US7650367B2 (en) * 2006-01-13 2010-01-19 Tekelec Methods, systems, and computer program products for detecting and restoring missing or corrupted data in a distributed, scalable, redundant measurement platform database
JP4137948B2 (ja) * 2006-02-14 2008-08-20 日本電信電話株式会社 パケット通過制御装置及びパケット通過制御方法
US20070195776A1 (en) * 2006-02-23 2007-08-23 Zheng Danyang R System and method for channeling network traffic
US8233388B2 (en) * 2006-05-30 2012-07-31 Cisco Technology, Inc. System and method for controlling and tracking network content flow
KR100834570B1 (ko) 2006-06-23 2008-06-02 한국전자통신연구원 실시간 상태 기반 패킷 검사 방법 및 이를 위한 장치
WO2008002590A2 (en) * 2006-06-29 2008-01-03 Sipera Systems, Inc. System, method and apparatus for protecting a network or device against high volume attacks
WO2008008863A2 (en) 2006-07-12 2008-01-17 Sipera Systems, Inc. System, method and apparatus for troubleshooting an ip network
CN101485140B (zh) * 2006-07-12 2013-12-18 艾利森电话股份有限公司 用于控制设备的方法、设备和计算机程序产品
CN101115055B (zh) * 2006-07-24 2010-05-12 上海贝尔阿尔卡特股份有限公司 通信网络中报告隧道数据包中各级错误的装置及方法
US8751866B2 (en) * 2006-09-28 2014-06-10 International Business Machines Corporation Autonomic fault isolation in a highly interconnected system
US7646728B2 (en) * 2006-10-13 2010-01-12 SafeMedia Corp. Network monitoring and intellectual property protection device, system and method
US8302179B2 (en) * 2006-12-13 2012-10-30 Avaya Inc. Embedded firewall at a telecommunications endpoint
US8145746B1 (en) 2007-02-09 2012-03-27 Juniper Networks, Inc. Using the TCP window size for identifying packets and debugging
US8477804B2 (en) * 2007-03-02 2013-07-02 Hitachi, Ltd. ICMP translator
US7894358B2 (en) * 2007-03-15 2011-02-22 Cisco Technology, Inc. Detection of heavy users of network resources
US8935669B2 (en) * 2007-04-11 2015-01-13 Microsoft Corporation Strategies for performing testing in a multi-user environment
CN101296221B (zh) * 2007-04-29 2012-01-11 中兴通讯股份有限公司 媒体接入控制层的数据处理方法
KR100894908B1 (ko) 2007-05-15 2009-04-30 고려대학교 산학협력단 인터넷 기반 음성 서비스에서 비정상 패킷을 탐지하는 방법및 컴퓨터로 읽을 수 있는 매체
US20080307093A1 (en) * 2007-06-07 2008-12-11 Samsung Electronics Co., Ltd. Method and system for managing resource consumption by transport control protocol connections
JP4900119B2 (ja) * 2007-08-01 2012-03-21 ヤマハ株式会社 ネットワーク機器
TW200930056A (en) * 2007-12-26 2009-07-01 Altek Corp Handshake dual-processor architecture of digital cameras
US8503886B1 (en) * 2008-01-03 2013-08-06 Nextel Communications Inc. Systems and methods for visual light communication
JP5035068B2 (ja) * 2008-03-28 2012-09-26 富士通株式会社 サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法
US8315256B2 (en) * 2008-04-17 2012-11-20 Gigamon Llc State-based filtering on a packet switch appliance
US9071974B2 (en) 2008-06-29 2015-06-30 Oceans Edge, Inc. Mobile telephone firewall and compliance enforcement system and method
US20100005263A1 (en) * 2008-07-04 2010-01-07 Huawei Technologies Co., Ltd. Information backup method, firewall and network system
US7817631B1 (en) 2008-07-09 2010-10-19 Google Inc. Network transfer protocol
US8401990B2 (en) * 2008-07-25 2013-03-19 Ca, Inc. System and method for aggregating raw data into a star schema
US9692856B2 (en) * 2008-07-25 2017-06-27 Ca, Inc. System and method for filtering and alteration of digital data packets
US8352391B1 (en) 2008-08-20 2013-01-08 Juniper Networks, Inc. Fast update filter
US8275116B2 (en) 2008-08-29 2012-09-25 8X8, Inc. Networked contact center
US8243913B2 (en) * 2008-08-29 2012-08-14 8×8, Inc. Limiting contact in a networked contact center environment
US8051167B2 (en) * 2009-02-13 2011-11-01 Alcatel Lucent Optimized mirror for content identification
US20100211544A1 (en) * 2009-02-19 2010-08-19 Jyshyang Chen System with session synchronization
US8750112B2 (en) * 2009-03-16 2014-06-10 Echostar Technologies L.L.C. Method and node for employing network connections over a connectionless transport layer protocol
US7990976B2 (en) * 2009-05-13 2011-08-02 Telefonaktiebolaget L M Ericsson (Publ) Negotiated secure fast table lookups for protocols with bidirectional identifiers
US8407241B2 (en) 2009-06-12 2013-03-26 Microsoft Corporation Content mesh searching
FR2949934B1 (fr) * 2009-09-09 2011-10-28 Qosmos Surveillance d'une session de communication comportant plusieurs flux sur un reseau de donnees
JP5445147B2 (ja) * 2010-01-07 2014-03-19 富士通株式会社 リスト構造制御回路
TW201246867A (en) * 2011-05-06 2012-11-16 Ralink Technology Corp Packet processing accelerator and method thereof
CN103095665A (zh) * 2011-11-07 2013-05-08 中兴通讯股份有限公司 一种提升防火墙处理性能的方法和装置
US9712887B2 (en) * 2012-04-12 2017-07-18 Arris Canada, Inc. Methods and systems for real-time transmuxing of streaming media content
US9311101B2 (en) 2012-06-15 2016-04-12 International Business Machines Corporation Intra-instructional transaction abort handling
US9262320B2 (en) 2012-06-15 2016-02-16 International Business Machines Corporation Tracking transactional execution footprint
US9015419B2 (en) * 2012-06-15 2015-04-21 International Business Machines Corporation Avoiding aborts due to associativity conflicts in a transactional environment
US9223687B2 (en) 2012-06-15 2015-12-29 International Business Machines Corporation Determining the logical address of a transaction abort
US9298469B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Management of multiple nested transactions
US9298631B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Managing transactional and non-transactional store observability
CN104620537A (zh) * 2012-09-11 2015-05-13 全仁瑛 具有防火墙功能的安全移动通信中继器
US9674052B2 (en) * 2012-09-20 2017-06-06 Hewlett Packard Enterprise Development Lp Data packet stream fingerprint
US9350762B2 (en) 2012-09-25 2016-05-24 Ss8 Networks, Inc. Intelligent feedback loop to iteratively reduce incoming network data for analysis
KR20140047221A (ko) * 2012-10-09 2014-04-22 (주)소만사 네트워크 정보유출방지 기기의 대용량 패킷 처리를 위한 하드웨어 엔진
US9047417B2 (en) 2012-10-29 2015-06-02 Intel Corporation NUMA aware network interface
GB201302402D0 (en) * 2013-02-11 2013-03-27 Telecom Ltd Q Communication apparatus
US9043593B2 (en) * 2013-03-11 2015-05-26 International Business Machines Corporation Session attribute propagation through secure database server tiers
JP6040102B2 (ja) * 2013-06-04 2016-12-07 株式会社日立製作所 不正情報検知方法および不正情報検知装置
US10684973B2 (en) 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
JP6329267B2 (ja) * 2013-12-20 2018-05-23 マカフィー, エルエルシー インテリジェントファイアウォールアクセスルール
US10721160B2 (en) 2014-05-15 2020-07-21 Samsung Electronics Co., Ltd. Method of distributing data and device supporting the same
US10129088B2 (en) 2015-06-17 2018-11-13 Extreme Networks, Inc. Configuration of rules in a network visibility system
US10911353B2 (en) * 2015-06-17 2021-02-02 Extreme Networks, Inc. Architecture for a network visibility system
US10771475B2 (en) 2015-03-23 2020-09-08 Extreme Networks, Inc. Techniques for exchanging control and configuration information in a network visibility system
CN106161224B (zh) 2015-04-02 2019-09-17 阿里巴巴集团控股有限公司 数据交换方法、装置及设备
EP3369213B1 (en) * 2015-10-30 2020-08-05 Telecom Italia S.p.A. Performance measurement in a packet-switched communication network
CN105939322B (zh) * 2015-12-08 2019-12-06 杭州迪普科技股份有限公司 报文攻击防护的方法及装置
US10419808B2 (en) 2016-09-08 2019-09-17 Gvbb Holdings S.A.R.L. System and method for scalable physical layer flow of packetized media streams
EP3310015A1 (en) * 2016-10-11 2018-04-18 Secucloud GmbH Network filtering using router connection data
CN109587074B (zh) * 2017-09-29 2022-04-29 中兴通讯股份有限公司 报文处理方法、装置、存储介质及处理器
CN110365759B (zh) * 2019-07-08 2021-12-28 深圳市多尼卡航空电子有限公司 一种数据转发方法、装置、系统、网关设备及存储介质
CN112612670B (zh) * 2020-12-02 2023-04-11 北京东土军悦科技有限公司 一种会话信息统计方法、装置、交换设备及存储介质
CN114285771B (zh) * 2021-12-30 2024-02-06 阿里巴巴(中国)有限公司 一种tcp连接的连接状态追踪方法及装置
CN116112290A (zh) * 2023-04-10 2023-05-12 北京长亭未来科技有限公司 一种应用于Web集中管理系统的流量中转方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446736A (en) 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
US5623601A (en) * 1994-11-18 1997-04-22 Milkway Networks Corporation Apparatus and method for providing a secure gateway for communication and data exchanges between networks
JP3262689B2 (ja) 1995-05-19 2002-03-04 富士通株式会社 遠隔操作システム
US5889962A (en) * 1995-10-13 1999-03-30 Apple Computer, Inc. Method and system for providing an additional identifier for sessions in a file server
US5828846A (en) * 1995-11-22 1998-10-27 Raptor Systems, Inc. Controlling passage of packets or messages via a virtual connection or flow
JP3688830B2 (ja) 1995-11-30 2005-08-31 株式会社東芝 パケット転送方法及びパケット処理装置
US5867494A (en) 1996-11-18 1999-02-02 Mci Communication Corporation System, method and article of manufacture with integrated video conferencing billing in a communication system architecture
US5999525A (en) 1996-11-18 1999-12-07 Mci Communications Corporation Method for video telephony over a hybrid network
US6173364B1 (en) * 1997-01-15 2001-01-09 At&T Corp. Session cache and rule caching method for a dynamic filter
US6233686B1 (en) * 1997-01-17 2001-05-15 At & T Corp. System and method for providing peer level access control on a network
US5983270A (en) * 1997-03-11 1999-11-09 Sequel Technology Corporation Method and apparatus for managing internetwork and intranetwork activity
US6006268A (en) * 1997-07-31 1999-12-21 Cisco Technology, Inc. Method and apparatus for reducing overhead on a proxied connection
US6154775A (en) 1997-09-12 2000-11-28 Lucent Technologies Inc. Methods and apparatus for a computer network firewall with dynamic rule processing with the ability to dynamically alter the operations of rules
US6341130B1 (en) * 1998-02-09 2002-01-22 Lucent Technologies, Inc. Packet classification method and apparatus employing two fields
US6122665A (en) 1998-08-26 2000-09-19 Sts Software System Ltd. Communication management system for computer network-based telephones
US6219786B1 (en) * 1998-09-09 2001-04-17 Surfcontrol, Inc. Method and system for monitoring and controlling network access
US6219706B1 (en) * 1998-10-16 2001-04-17 Cisco Technology, Inc. Access control for networks
US6347312B1 (en) * 1998-11-05 2002-02-12 International Business Machines Corporation Lightweight directory access protocol (LDAP) directory server cache mechanism and method
US6182149B1 (en) 1999-01-11 2001-01-30 3Com Corporation System for managing dynamic processing resources in a network
WO2001031874A2 (en) * 1999-10-28 2001-05-03 Jpmorgan Chase Bank Secured session sequencing proxy system supporting multiple applications and method therefor
US6496935B1 (en) * 2000-03-02 2002-12-17 Check Point Software Technologies Ltd System, device and method for rapid packet filtering and processing

Also Published As

Publication number Publication date
US6816455B2 (en) 2004-11-09
US20040013112A1 (en) 2004-01-22
DE60224177D1 (de) 2008-01-31
WO2002091700A3 (en) 2003-02-06
AU2002302873A1 (en) 2002-11-18
KR20040008171A (ko) 2004-01-28
ES2302809T3 (es) 2008-08-01
DE60224177T2 (de) 2008-12-04
EP1386464A2 (en) 2004-02-04
JP2004538678A (ja) 2004-12-24
CN1518823A (zh) 2004-08-04
BR0209463A (pt) 2004-12-07
EP1386464B1 (en) 2007-12-19
CA2445751A1 (en) 2002-11-14
BRPI0209463B1 (pt) 2017-01-17
CN100550889C (zh) 2009-10-14
KR100876935B1 (ko) 2009-01-07
WO2002091700A2 (en) 2002-11-14
CA2445751C (en) 2011-04-26
ATE381839T1 (de) 2008-01-15

Similar Documents

Publication Publication Date Title
JP4162210B2 (ja) セッション追跡を利用する動的パケットフィルター
EP1966977B1 (en) Method and system for secure communication between a public network and a local network
JP4344609B2 (ja) セキュリティ・アソシエーション・プロセッサを組み込んだ仮想プライベートネットワーク機構
US9954873B2 (en) Mobile device-based intrusion prevention system
US7706378B2 (en) Method and apparatus for processing network packets
US9049128B1 (en) Application identification
WO2018107784A1 (zh) 检测网页后门的方法和装置
JP5362669B2 (ja) ネットワークパケットの効率的な分類
US20050015599A1 (en) Two-phase hash value matching technique in message protection systems
US20080101222A1 (en) Lightweight, Time/Space Efficient Packet Filtering
WO2018076697A1 (zh) 僵尸特征的检测方法和装置
JP2021111396A (ja) コンテナネットワークのためのセキュリティ
WO2002084512A1 (en) Method and system for restricting access from external
KR20190028596A (ko) Fpga 기반 고속 스노트 룰과 야라 룰 매칭 장치
US10819683B2 (en) Inspection context caching for deep packet inspection
US20230247051A1 (en) Method to safeguard against email phishing attacks
Cronin Hardware acceleration of network intrusion detection and prevention
Branitskiy et al. Software Tool for Testing the Packet Analyzer of Network Attack Detection Systems
CN117857098A (zh) 一种基于基数树的SYN Flood攻击防御系统
Ibraheem et al. Detecting Unauthenticated Windows Applications Connecting to Outside the LAN

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050426

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070423

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070511

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070521

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070529

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070702

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080123

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080716

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080718

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4162210

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120801

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130801

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees