(57)【要約】【課題】通信アドレスのＨＡＳＨ値を用いてパケットの透過、廃棄を行うアドレスフィルタ装置において、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信が恒久的に透過され続ける事態を回避する。【解決手段】アドレスフィルタ装置２１０は、単位時間内に許容される通信データの誤透過数を許容透過数Ｔとし、受信した通通信データ１７００に含まれる通信アドレスのＨＡＳＨ値を算出するとともにＨＡＳＨ関数を分割して分割ＨＡＳＨ値とし、各分割ＨＡＳＨ値に対応するカウンタの値を１加算し、一つでも分割ＨＡＳＨ値のカウンタ値が許容透過数Ｔを超えてない場合は受信した通信データ１７００を透過し、すべての分割ＨＡＳＨ値のカウンタ値が許容透過数Ｔを超えている場合は受信した通信データ１７００を廃棄する。つまり、許容透過数Ｔまでは、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信の透過を許容するが、Ｔを超えるｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信の透過は認めない。【選択図】図２
2010114480.tif 000002
【特許請求の範囲】
【請求項１】
通信識別値が含まれるパケットの透過又は廃棄を行うフィルタ装置であって、
単位時間内に許容されるパケットの透過数を許容透過数として記憶する許容透過数記憶部と、
通信識別値が含まれるパケットを受信するパケット受信部と、
前記パケット受信部により受信された受信パケットに含まれる通信識別値を変換する演算を行って、受信パケットに含まれる通信識別値の変換値を受信変換値として算出する変換値算出部と、
前記変換値算出部により算出された受信変換値の単位時間内の出現回数が許容透過数以下であるか否かを判断して、受信パケットの透過又は廃棄を行うフィルタ部とを有することを特徴とするフィルタ装置。
【請求項２】
前記フィルタ装置は、更に、
前記パケット受信部によるパケットの受信に先立ち、パケット透過の対象となる通信識別値の変換値を透過変換値として１つ以上指定し、パケット廃棄の対象となる通信識別値の変換値を廃棄変換値として１つ以上指定する変換値指定部と、
複数のカウンタを備え、各々のカウンタが透過変換値のいずれか又は廃棄変換値のいずれかに対応しているカウンタ部と、
前記パケット受信部によるパケットの受信に先立ち、透過変換値のカウント初期値として許容透過数よりも小さな値を設定し、廃棄変換値のカウント初期値として許容透過数よりも大きな値を設定するカウント初期値設定部と、
前記変換値算出部により受信変換値が算出される度に、算出された受信変換値に対応するカウンタの値を変化させて当該受信変換値の単位時間内の出現回数をカウントする出現回数カウント部とを有し、
前記変換値算出部は、
前記パケット受信部によりパケットが受信される度に、受信パケットに含まれる通信識別値を変換する演算を行って、透過変換値のいずれか又は廃棄変換値のいずれかに一致する受信変換値を算出し、
前記フィルタ部は、
前記変換値算出部により受信変換値が算出される度に、算出された受信変換値に対応するカウンタの値が許容透過数以下であるか否かを判断して受信パケットの透過又は廃棄を行うことを特徴とする請求項１に記載のフィルタ装置。
【請求項３】
前記変換値算出部は、
一つの受信パケットに含まれる通信識別値から複数の受信変換値を算出し、
前記フィルタ部は、
前記変換値算出部により算出された各受信変換値に対応するカウンタの値が許容透過数以下であるか否かを判断し、全ての受信変換値のカウンタの値が許容透過数を超えている場合に受信パケットを廃棄し、少なくとも１つの受信変換値のカウンタの値が許容透過数以下である場合に受信パケットを透過することを特徴とする請求項２に記載のフィルタ装置。
【請求項４】
前記カウント初期値設定部は、
透過変換値のカウント初期値としてカウンタでとり得る最小値を設定し、廃棄変換値のカウント初期値としてカウンタでとり得る最大値を設定し、
前記出現回数カウント部は、
前記変換値算出部により算出された受信変換値に対応するカウンタの値が最大値であれば当該カウンタの値を変化させず、前記変換値算出部により算出された受信変換値に対応するカウンタの値が最大値でなければ当該カウンタの値を変化させて当該受信変換値の単位時間内の出現回数をカウントすることを特徴とする請求項２又は３に記載のフィルタ装置。
【請求項５】
前記変換値算出部は、
一つの受信パケットに含まれる通信識別値から複数の受信変換値を順序づけて算出し、
前記カウンタ部は、
前記変換値算出部が算出する受信変換値の個数に対応して複数存在し、各カウンタ部は受信変換値の順序に対応して順序づけられており、
前記カウント初期値設定部は、
カウンタ部ごとに、透過変換値のカウント初期値として許容透過数よりも小さな値を設定し、廃棄変換値のカウント初期値として許容透過数よりも大きな値を設定し、
前記出現回数カウント部は、
受信変換値の順序に従って、受信変換値ごとに、対応するカウンタ部の対応するカウンタの値を変化させて当該受信変換値の単位時間内の出現回数をカウントし、
前記フィルタ部は、
受信変換値の順序に従って、受信変換値ごとに、対応するカウンタ部の対応するカウンタの値が許容透過数以下であるか否かを判断し、全ての受信変換値のカウンタの値が許容透過数を超えている場合に受信パケットを廃棄し、少なくとも１つの受信変換値のカウンタの値が許容透過数以下である場合に受信パケットを透過することを特徴とする請求項２に記載のフィルタ装置。
【請求項６】
前記カウント初期値設定部は、
カウンタ部ごとに、透過変換値のカウント初期値としてカウンタでとり得る最小値を設定し、廃棄変換値のカウント初期値としてカウンタでとり得る最大値を設定し、
前記出現回数カウント部は、
受信変換値の順序に従って、受信変換値ごとに、対応するカウンタ部の対応するカウンタの値が最大値であればカウンタの値を変化させず、対応するカウンタ部の対応するカウンタの値が最大値でなければカウンタの値を変化させて当該受信変換値の単位時間内の出現回数をカウントすることを特徴とする請求項５に記載のフィルタ装置。
【請求項７】
前記出現回数カウント部は、
カウンタ値が最大値でないカウンタのカウンタ値を単位時間ごとに最小値に更新することを特徴とする請求項４又は６に記載のフィルタ装置。
【請求項８】
前記フィルタ装置は、更に、
前記パケット受信部によるパケットの受信に先立ち、パケット透過の対象となる通信識別値の変換値を透過変換値として複数指定する変換値指定部と、
複数のカウンタを備え、各々のカウンタが透過変換値の各々に対応しているカウンタ部と、
前記パケット受信部によるパケットの受信に先立ち、透過変換値のカウント初期値として許容透過数よりも小さな値を設定するカウント初期値設定部と、
前記変換値算出部により受信変換値が算出される度に、算出された受信変換値に対応するカウンタが前記カウンタ部に存在する場合に、対応するカウンタの値を変化させて当該受信変換値の単位時間内の出現回数をカウントする出現回数カウント部とを有し、
前記フィルタ部は、
前記変換値算出部により算出された受信変換値に対応するカウンタが前記カウンタ部に存在する場合に、対応するカウンタの値が許容透過数以下であるか否かを判断して受信パケットの透過又は廃棄を行うことを特徴とする請求項１に記載のフィルタ装置。
【請求項９】
前記変換値算出部は、
一つの受信パケットに含まれる通信識別値から複数の受信変換値を算出し、
前記フィルタ部は、
前記変換値算出部により算出された受信変換値ごとに、対応するカウンタが前記カウンタ部に存在するか否かを判断するとともに、対応するカウンタが前記カウンタ部に存在する場合に対応するカウンタの値が許容透過数以下であるか否かを判断し、少なくとも１つの受信変換値について対応するカウンタが存在しない場合及び全ての受信変換値のカウンタの値が許容透過数を超えている場合のいずれかにおいて受信パケットを廃棄し、全ての受信変換値のカウンタの値が許容透過数以下である場合に受信パケットを透過することを特徴とする請求項８に記載のフィルタ装置。
【請求項１０】
前記変換値算出部は、
一つの受信パケットに含まれる通信識別値に一方向演算を行って１つの変換値を算出し、算出した変換値を分割して複数の受信変換値を算出することを特徴とする請求項３、５及び９のいずれかに記載のフィルタ装置。
【請求項１１】
前記変換値算出部は、
一つの受信パケットに含まれる通信識別値を複数個に分割し、分割後の各々の値に一方向演算を行って複数の受信変換値を算出することを特徴とする請求項３、５及び９のいずれかに記載のフィルタ装置。
【請求項１２】
前記パケット受信部は、
通信識別値として、少なくとも送信元アドレスが含まれているパケットを受信し、
前記変換値算出部は、
前記パケット受信部により受信された受信パケットに含まれる少なくとも送信元アドレスを変換する演算を行って受信変換値を算出することを特徴とする請求項１〜１１のいずれかに記載のフィルタ装置。
【請求項１３】
コンピュータが、通信識別値が含まれるパケットの透過又は廃棄を行うフィルタ方法であって、
前記コンピュータが、単位時間内に許容されるパケットの透過数を許容透過数として記憶する許容透過数記憶領域から、許容透過数を読み出す許容透過数読み出しステップと、
前記コンピュータが、通信識別値が含まれるパケットを受信するパケット受信ステップと、
前記コンピュータが、前記パケット受信ステップにより受信された受信パケットに含まれる通信識別値を変換する演算を行って、受信パケットに含まれる通信識別値の変換値を受信変換値として算出する変換値算出ステップと、
前記コンピュータが、前記変換値算出ステップにより算出された受信変換値の単位時間内の出現回数が許容透過数以下であるか否かを判断して、受信パケットの透過又は廃棄を行うフィルタ処理ステップとを有することを特徴とするフィルタ方法。
【請求項１４】
通信識別値が含まれるパケットの透過又は廃棄を行うコンピュータに、
単位時間内に許容されるパケットの透過数を許容透過数として記憶する許容透過数記憶領域から、許容透過数を読み出す許容透過数読み出し処理と、
通信識別値が含まれるパケットを受信するパケット受信処理と、
前記パケット受信処理により受信された受信パケットに含まれる通信識別値を変換する演算を行って、受信パケットに含まれる通信識別値の変換値を受信変換値として算出する変換値算出処理と、
前記変換値算出処理により算出された受信変換値の単位時間内の出現回数が許容透過数以下であるか否かを判断して、受信パケットの透過又は廃棄を行うフィルタ処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信パケットに含まれる通信識別値に基づいて通信パケットの透過又は廃棄を行うフィルタリング技術に関する。
【背景技術】
【０００２】
ネットワークのＩＰアドレスに従って通信の透過／廃棄を決定するアドレスフィルタ装置は、防御すべきネットワークを外部の脅威から守る有効な手法の一つである。
このようなアドレスフィルタ装置の例として、特許文献１に記載のものがある。
【０００３】
また、例えばファシリティネットワークでは、管理コストの点から、センタシステムから管理対象ビルである拠点の各々を遠隔監視するサービスが普及している。
しかしながら、遠隔監視サービスの普及に伴い、外部網の第三者がセンタと拠点間の通信を装うなりすましや、拠点内ネットワークの不正な端末接続、センタシステムへのＤｏＳ（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）攻撃あるいはＤＤｏＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  ＤｏＳ）攻撃などが問題となっている。
【０００４】
アドレスフィルタ装置は、通信パケットの送信元とあて先を精査し、許可しない通信パケットを廃棄するものである。
上記の問題において、アドレスフィルタ装置は許可しない端末からの通信パケットを廃棄する有効な手段となる。
しかし、近年は管理拠点数が増加しており、また各拠点内に存在する監視対象ノードもまた肥大化の一途である。
アドレスフィルタ装置が識別すべき通信は大規模化、複雑化しており、例えば、ＩＰｖ４のＩＰアドレス空間は３２ｂｉｔだが、ＩＰｖ６においては１２８ｂｉｔにも達する。その上、通信は送信元とあて先の対で表現される。
【０００５】
ファシリティネットワークでは監視網を大規模化する要求からＩＰｖ６も利用されるが、これはＩＰｖ４網の機器を換装することではなく、レガシー機器のハードウェアを用いながらプロトコルスタックをデュアルスタック化することで対応がなされる場合が多い。
この理由はコストメリットと、ハードウェアの安定性からである。
しかし、その結果として、レガシー機器を用いながらネットワークの大規模化に対応する必要がある。
【０００６】
上記の場合、通信パケットの透過／廃棄を決定するためにアドレスフィルタ装置内にアドレスリストを保持して検索することは、リストエントリ容量の面でも、また検索計算量の面でも現実的ではない。
【０００７】
計算容量、計算量ともに非力な安価な組み込み機器でも大規模なアドレスフィルタ装置を構成可能とし、アドレスリストの検索を行うことなく通信パケットの透過／廃棄を決定可能とする１つの手法が存在する。
この手法はＣｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒと呼ばれ、非特許文献１及び非特許文献２に詳細が説明されている。
また、後述するように、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  ＦｉｌｔｅｒにはＨＡＳＨ関数が用いられるが、このＨＡＳＨ関数として、例えば、非特許文献３に記載のＲａｂｉｎ  Ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ等が用いられる。
【特許文献１】特開２００７−０９６５５２号公報
【非特許文献１】Ｌｉ  Ｆａｎ，Ｐｅｉ  Ｃａｏ，Ｊｕｓｓａｒａ  Ａｌｍｅｉｄａ，Ａｎｄｒｅｉ  Ｚ．  Ｂｒｏｄｅｒ，  “Ｓｕｍｍａｒｙ  ｃａｃｈｅ：  ａ  ｓｃａｌａｂｌｅ  ｗｉｄｅ−ａｒｅａ  Ｗｅｂ  ｃａｃｈｅ  ｓｈａｒｉｎｇ  ｐｒｏｔｏｃｏｌ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＡＣＭ  ＳＩＧＣＯＭＭ  ’９８  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｐｐｌｉｃａｔｉｏｎｓ，ｔｅｃｈｎｏｌｏｇｉｅｓ，ａｒｃｈｉｔｅｃｔｕｒｅｓ，ａｎｄ  ｐｒｏｔｏｃｏｌｓ  ｆｏｒ  ｃｏｍｐｕｔｅｒ  ｃｏｍｍｕｎｉｃａｔｉｏｎ，  ｐ．２５４−２６５，  Ａｕｇｕｓｔ  ３１−Ｓｅｐｔｅｍｂｅｒ  ０４，１９９８．
【非特許文献２】Ｓａｒａｎｇ  Ｄｈａｒｍａｐｕｒｉｋａｒ，Ｐｒａｖｅｅｎ  Ｋｒｉｓｈｎａｍｕｒｔｈｙ，Ｄａｖｉｄ  Ｅ．  Ｔａｙｌｏｒ，  “Ｌｏｎｇｅｓｔ  ｐｒｅｆｉｘ  ｍａｔｃｈｉｎｇ  ｕｓｉｎｇ  ｂｌｏｏｍ  ｆｉｌｔｅｒｓ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００３  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｐｐｌｉｃａｔｉｏｎｓ，ｔｅｃｈｎｏｌｏｇｉｅｓ，ａｒｃｈｉｔｅｃｔｕｒｅｓ，ａｎｄ  ｐｒｏｔｏｃｏｌｓ  ｆｏｒ  ｃｏｍｐｕｔｅｒ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，  Ａｕｇｕｓｔ  ２５−２９，２００３．
【非特許文献３】Ｍ．  Ｒａｂｉｎ，  “Ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ  ｂｙ  ｒａｎｄｏｍ  ｐｏｌｙｎｏｍｉａｌｓ，”  Ｃｅｎｔｅｒ  ｆｏｒ  Ｒｅｓｅａｒｃｈ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ  −  Ｈａｒｖａｒｄ  Ｕｎｉｖｅｒｓｉｔｙ，Ｔｅｃｈ．Ｒｅｐ．１５−８１，１９８１．
【発明の開示】
【発明が解決しようとする課題】
【０００８】
Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒの課題を説明するにあたり、まず、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒの機能の説明を行う。
【０００９】
Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒは、アドレスフィルタ装置内の主要なコンポーネントとして図１５、図１６、及び図１７に示す構成で実装される。
アドレスフィルタ装置は、保護対象ネットワークと外部網の間に配置され、外部網から送信された通信パケットを受信し、受信した通信パケットに含まれているアドレスを解析して、通信パケットを保護対象ネットワークへ透過させるか、廃棄するかを決定する。
また、アドレスフィルタ装置は、管理装置と通信可能であり、管理装置から各種設定に関する指示を受け、管理装置の指示に従って各種設定を行う。
【００１０】
図１５はフィルタエントリの設定に関する図である。
アドレスフィルタ装置が管理装置から通信パケットの透過用設定１２１０を受け取ると、アドレスフィルタ装置は透過用設定１２１０から透過する通信パケットを指示するアドレス設定値１２１１を抜き出し、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００に入力する。
Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００は、アドレス設定値１２１１を受け取ると、ＨＡＳＨ関数１１０１を用いてＨＡＳＨ値を計算する。
図１５のＨＡＳＨ関数１１０１は、６４ｂｉｔのＨＡＳＨ値を出力するＨＡＳＨ関数である。
ＨＡＳＨ値の計算を終了すると、分割器１１０２を用いていくつかのｂｉｔ長に分割する。
図１５では、６４ｂｉｔを４つの１６ｂｉｔに分割している。この分割した４つの１６ｂｉｔのＨＡＳＨ値をカウンタ配列１１０３のインデックスとして用い、該当する位置のカウンタ値を１加算する。なお、カウンタ値の初期値は０とする。
また、図１５の例ではインデックスのｂｉｔ長が１６ｂｉｔであるため、カウンタ配列が有するカウンタ数は２の１６乗個、すなわち６５５３６個である。
１つのカウンタのｂｉｔ長は、アドレス設定値１２１１の最大設定数がカウントできる程度が必要であり、詳しくは図１９の説明にて後述する。
【００１１】
次に、図１６を用いて、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００により通信パケットの透過と廃棄を決定する動作を説明する。
ここで、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００には上記により既に透過すべき通信が設定済みである。
アドレスフィルタ装置に通信データ１７００が到達すると、アドレスフィルタ装置は通信データ１７００から送信元アドレス（Ｓｒｃ  ＩＰ  Ａｄｄｒ）とあて先アドレス（Ｄｓｔ  ＩＰ  Ａｄｄｒ）１７０１を抜き出す。この両者の対が通信を特定するものである。
当該アドレス対はＣｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００に入力され、ＨＡＳＨ関数１１０１によりＨＡＳＨ値が計算された後、分割器１１０２によりＨＡＳＨ値が分割されカウンタ配列１１０３のインデックスが得られる。
もしも、当該通信が先に透過と設定された通信であれば、インデックスの示すカウンタの全てには０より大きい値が設定されているはずである。
逆に透過と設定されていないものであれば、インデックスの示すカウンタのいずれか１つは０であることが期待できる。
ゆえにインデックスの示すカウンタを参照することで通信パケットの透過と廃棄を決定することが可能である。
【００１２】
Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００は、アドレスリストを保持する方法と同様に、設定したエントリを削除することも可能である。この動作を図１７に示す。
透過設定と同様に、管理装置から透過設定の削除用設定１２２０をアドレスフィルタ装置に送信する。
アドレスフィルタ装置は削除用設定１２２０から透過設定を解除すべきアドレス対１２２１を抜き出し、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００に入力する。
Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００はＨＡＳＨ計算後にカウンタ配列のインデックスを作成し、各々のインデックスが指すカウンタの全てを１減算する。ただしカウンタ値が０の場合は０を保持する。これにより透過設定は解除される。
【００１３】
上記に述べたＣｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００は、これまでに述べた構成１１００（図１８（ａ））の他に、図１８（ｂ）に示す構成１１１０により実装されることもまた可能である。
両者の違いはカウンタ配列のインデックスを如何に決定するかである。
構成１１００（図１８（ａ））は６４ｂｉｔのＨＡＳＨ値を計算した後に４つの１６ｂｉｔに分割するが、構成１１１０（図１８（ｂ））は各々異なる４つのＨＡＳＨ関数１１１１、１１１２、１１１３、１１１４を用いる。
これら４つのＨＡＳＨ関数は出力長が１６ｂｉｔであり、ゆえに構成１１１０では分割器１１０２を用いない。
【００１４】
以上の例に示したＣｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００は、入力値ではなく入力値のＨＡＳＨ値を採用し、さらにＨＡＳＨ値を分割することで、アドレスフィルタ装置に必要な計算容量を劇的に省力化した方式である。
例えば、ＩＰｖ６通信を１００００通り設定する場合、アドレスリストを用いた場合は２５６ｂｉｔ×１００００エントリ＝２５６００００ｂｉｔの計算容量は必要であるが、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００では１つのカウンタを１６ｂｉｔとしても、１６ｂｉｔ×６５５３６エントリ＝１０４８５７６ｂｉｔで実現可能である。
また、通信データ１７００を受けてから透過あるいは廃棄を決定するまでの計算量は、アドレスリストを用いた場合エントリとのマッチ処理が支配的であるが、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００はＨＡＳＨ関数１１０１の処理が支配的である。
検索を軽量化するため、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００のＨＡＳＨ関数１１０１には、前述したように、非特許文献３に記載されているＲａｂｉｎ  Ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ等がしばしば用いられる。
【００１５】
Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００は入力値のＨＡＳＨ値を採用することと、ＨＡＳＨ値を分割することの２段階で計算容量を削減するが、その弊害としてエントリの重複が発生する。
先ずＨＡＳＨ関数自身の特性として、異なる入力であっても同一のＨＡＳＨ値を取り得る場合がある。
例えばＩＰｖ６通信を対象とした上記の場合、アドレスではなくそのＨＡＳＨ値を採用することは、１２８ｂｉｔ×２＝２５６ｂｉｔの空間を６４ｂｉｔ空間に射影することに対応する。
次に、ＨＡＳＨ関数を４つの１６ｂｉｔに分割することは、６４ｂｉｔ空間を１６ｂｉｔ空間の４点で扱うことに対応する。
ゆえに、エントリの重複は２段階で発生する。前者の処理による重複はＨＡＳＨ関数自身の特性に起因するが、後者の処理による重複はＣｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００の処理に起因する。
【００１６】
Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００の処理に起因する重複率は、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ１１００の構成に依存する。
問題を簡略化して、カウンタは０あるいは１のみを取ると仮定する。
上述の如く、透過あるいは廃棄の決定は、参照する全てのカウンタが０以上の値であるかどうかに依存するため、この仮定は妥当である。
重複率ｐｆと、ＨＡＳＨ値の分割数ｋ、透過設定するエントリ数ｎ、カウンタ配列のカウンタ数ｍの間には図１９の式（１）の関係がある。
この関係より、重複率を最小化するためのＨＡＳＨ分割数ｋは図１９の式（２）に適合する値であれば良い。
図１５、図１６、図１７の例であれば、ｋ＝４、ｍ＝６５５３６であるため、透過設定エントリは最大１１４６８エントリまでであれば重複率は最小であり、この際の重複率ｐｆは０．０６４、すなわち６．４％であるとわかる。
【００１７】
アドレスフィルタ装置において、エントリの重複とは廃棄対象の通信パケットを透過してしまうことに対応する。
センタシステムへ攻撃する意図を持つ第三者がアドレスフィルタ装置の透過エントリと重複するような通信を特定した場合、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒを用いたアドレスフィルタ装置はその通信パケットが透過処理対象であると誤認識してしまい、攻撃者の通信パケットを透過してしまう。
このような、本来廃棄されるはずが透過されてしまう通信をｆａｌｓｅ  ｐｏｓｉｔｉｖｅ（偽陽性）通信と呼ぶ。
【００１８】
他方、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ自体は処理が単純で、多くの計算容量を必要としないため、ハードウェアによる実装も容易である。
ＨＡＳＨ値を分割する処理と、インデックス先のカウンタを評価する処理は並列に実施可能であるが、１つのカウンタ配列を共有することから、ハードウェア実装ではカウンタの更新時にリソースの競合を調停する機構が必要となる。その結果、並列性が阻害され、ハードウェアによる高速化が阻害される。その上、論理量の肥大化をも招き、処理が単純である特性もまた阻害される。
【００１９】
以上の如く、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒを用いれば大規模なアドレスフィルタ装置が作成可能である。その結果、安価な組み込み機器であっても、ネットワークの大規模化へ対応することが可能となる。
しかしながら、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒは優れた特性を持つ反面、上述の通り本質的に２つの課題を抱えている。
【００２０】
１つ目の課題は、フィルタエントリ衝突により発生するｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信が、当該エントリの透過設定を解除しない限り恒久的に透過されてしまうことである。
【００２１】
２つ目の課題は、分割されたＨＡＳＨ値がただ１つのカウンタ配列を共有するので並列性に欠けることである。
【００２２】
この発明は、上記のような課題を解決することを主な目的の一つとしており、透過設定を変更しなくても、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信が恒久的に透過され続ける事態を回避することを主な目的とする。
また、複数の変換値を並列に処理できる構成を得ることを主な目的とする。
【課題を解決するための手段】
【００２３】
本発明に係るフィルタ装置は、
通信識別値が含まれるパケットの透過又は廃棄を行うフィルタ装置であって、
単位時間内に許容されるパケットの透過数を許容透過数として記憶する許容透過数記憶部と、
通信識別値が含まれるパケットを受信するパケット受信部と、
前記パケット受信部により受信された受信パケットに含まれる通信識別値を変換する演算を行って、受信パケットに含まれる通信識別値の変換値を受信変換値として算出する変換値算出部と、
前記変換値算出部により算出された受信変換値の単位時間内の出現回数が許容透過数以下であるか否かを判断して、受信パケットの透過又は廃棄を行うフィルタ部とを有することを特徴とする。
【発明の効果】
【００２４】
本発明によれば、受信パケットに含まれる通信識別値の変換値である受信変換値の出現回数が許容透過数以下である否かを判断して受信パケットの透過又は廃棄を行うので、同じ通信識別値が含まれるパケットを許容透過数を超えて透過することがなく、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信を恒久的に透過するという事態を回避することができる。
【発明を実施するための最良の形態】
【００２５】
実施の形態１．
本実施の形態では、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信が恒久的に透過され続けることを回避するため、透過対象かどうかを判断するのみならず、一定時間内に透過を許可する通信パケット数を制限する方式を説明する。
【００２６】
図１は、本実施意の形態に係るシステム構成例を示す。
図１において、アドレスフィルタ装置２１０は、保護対象ネットワーク１３０と外部網１５０の間に配置され、拠点１６０から送信され外部網１５０及びルータ１４０を経由して到達した通信パケットを受信し、受信した通信パケットに含まれている通信アドレス（通信識別値）を解析して、通信パケットを保護対象ネットワーク１３０へ透過させるか、廃棄するかを決定する。
また、アドレスフィルタ装置２１０は、管理装置１２０と通信可能であり、管理装置１２０から各種設定に関する指示を受け、管理装置１２０の指示に従って各種設定を行う。
なお、本実施の形態に係るアドレスフィルタ装置２１０は、フィルタ装置の例である。
【００２７】
次に、図２〜図４を参照して、本実施の形態に係るアドレスフィルタ装置２１０の動作の概要を説明する。
【００２８】
図２は、本実施の形態に係るアドレスフィルタ装置２１０においてフィルタエントリを設定する動作を示している。
図２に示すように、本実施の形態に係るアドレスフィルタ装置２１０は大規模通信制御部２１００を有する。
大規模通信制御部２１００において、カウンタ配列１１０３には複数のカウンタが配置され、各カウンタはＨＡＳＨ関数１１００による演算値のいずれかに対応している。
なお、ＨＡＳＨ関数１１０１及び分割器１１０２は、図１５〜図１７に示したものと同様である。
【００２９】
大規模通信制御部２１００は、まず、カウンタ値の上限値により初期化を行う。カウンタが１６ｂｉｔである場合、初期化は０ｘＦＦＦＦで行う。
その後、管理装置１２０からエントリ設定データ１２３０を受け取り大規模通信制御部２１００への入力とする。
ここでエントリ設定データ１２３０の１エントリの内訳はアドレス対｛ＳＩＰｎ、ＤＩＰｎ｝（ｎ＝０、１、２・・・）とカウンタへの設定値ＶＡＬｎ（ｎ＝０、１、２・・・）である。
ＳＩＰｎ、ＤＩＰｎはそれぞれ、通信パケットの送信元とあて先のアドレスであり、通信を特定する情報（通信識別値）である。
ＶＡＬｎはカウンタへ設定する値であり、透過設定を行うなら値０、廃棄設定を行うならカウンタの最大値を設定する。
大規模通信制御部２１００はエントリ設定データ１２３０が入力されると、｛ＳＩＰｎ、ＤＩＰｎ｝の各々についてＣｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒと同様、ＨＡＳＨ関数１１０１と分割器１１０２により、アドレスのＨＡＳＨ値を算出するとともにＨＡＳＨ値を分割してカウンタ配列へのインデックスを得る。なお、分割されたＨＡＳＨ値を分割ＨＡＳＨ値と呼ぶ。
そして、インデックスが示すカウンタの各々に、値ＶＡＬｎを設定する。
この値ＶＡＬｎが、ＨＡＳＨ値の出現回数のカウントにおける初期値（カウント初期値）となる。
【００３０】
また、通信を特定する情報（通信識別値）としては、上述の｛ＳＩＰｎ、ＤＩＰｎ｝に対応するアドレスのみならず、ＵＤＰプロトコルかＴＣＰプロトコルかそれ以外か、またＵＤＰあるいはＴＣＰであればポート番号は何番であるか、を含めることもまた可能である。
また、本実施の形態及び以下の実施の形態では、通信を特定する情報（通信識別値）として、送信元アドレス及びあて先アドレスを用いる例を説明するが、送信元アドレスのみを用いるようにしてもよい。
【００３１】
図３に、通信パケットの透過あるいは廃棄を決定する動作を示す。
従来法である図１６と同様、アドレスフィルタ装置２１０に通信データ１７００（パケット）が到達すると、アドレスフィルタ装置２１０は通信データ１７００から送信元アドレスとあて先アドレス１７０１を抜き出す。
抜き出した値は大規模通信制御部２１００へ入力され、ＨＡＳＨ関数１１０１によりＨＡＳＨ値が計算された後、分割器１１０２によりＨＡＳＨ値が分割されカウンタ配列１１０３のインデックスが得られる。
他方、アドレスフィルタ装置２１０は、ある通信において１秒あたりに誤透過を許可するパケット数を示す値Ｖ（発）と、透過数カウントをクリアするインターバル時間間隔Ｕ（秒）を持つものとする。
得られたインデックスに従ってカウンタ配列内のカウンタを参照し、全てのカウンタの値がＴ＝Ｕ×Ｖを超えていればであれば、通信パケットを廃棄する。このＴ＝Ｕ×Ｖは、インターバル時間間隔（単位時間）内に許容されるパケットの透過数であり、許容透過数に相当する。
また、得られたインデックスに従ってカウンタ配列内のカウンタを参照した結果、１つでもカウンタの値がＴ＝Ｕ×Ｖを超えない場合、通信パケットを透過する。
透過と決定した場合、現在参照したカウンタの全てに１をカウントする。ただしカウンタ値が０ｘＦＦＦＦの場合はその値を保持する。
【００３２】
上記説明にあるＶの目安は２０（発）程度、Ｕの目安は１０（秒）程度である。
【００３３】
カウンタ配列のカウンタ値は、インターバル時間間隔Ｕ（秒）に従いクリア処理が行われる。この処理では、値０ｘＦＦＦＦではない全てのカウンタは値０にクリアされる。逆に値０ｘＦＦＦＦであるカウンタはその値が保持される。
カウンタ値がクリアされた後は、次のインターバル時間間隔Ｕ（秒）の間、クリアされた後のカウンタ値を用いて同様の手順により通信パケットの透過又は廃棄が判断される。
【００３４】
このように、本実施の形態に係るアドレスフィルタ装置２１０では、インターバル時間内に許容される通信データの誤透過数を許容透過数Ｔとし、受信した通信データ１７００に含まれる通信アドレスのＨＡＳＨ値を算出するとともにＨＡＳＨ関数を分割して分割ＨＡＳＨ値とし、各分割ＨＡＳＨ値に対応するカウンタの値を１加算し、一つでも分割ＨＡＳＨ値のカウンタ値が許容透過数Ｔを超えてない場合は受信した通信データ１７００を透過し、すべての分割ＨＡＳＨ値のカウンタ値が許容透過数Ｔを超えている場合は受信した通信データ１７００を廃棄する。
つまり、許容透過数Ｔ＝Ｕ×Ｖまでは、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信の透過を許容するが、Ｔ＝Ｕ×Ｖを超えるｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信の透過は認めない。
【００３５】
また、本実施の形態では、透過エントリを解除したり、新たな透過エントリを追加することができる。
図４は、本実施の形態に係るアドレスフィルタ装置において、設定した透過エントリを解除したり、新たな透過エントリを追加したりする際の動作を示した図である。
【００３６】
図２と同様、設定した透過エントリを廃棄に変更するためには管理装置１２０からエントリ設定データ１２３０をアドレスフィルタ装置２１０に入力する。
１エントリを構成する内訳はアドレス対｛ＳＩＰｎ、ＤＩＰｎ｝（ｎ＝０、１、２・・・）とカウンタへの設定値ＶＡＬｎ（ｎ＝０、１、２・・・）である。透過設定の場合、ＶＡＬｎは値０であったが、ＶＡＬｎにカウンタの最大値を格納すれば廃棄設定に変更することが可能である。
【００３７】
なお、図３に示す動作において、全ての分割ＨＡＳＨ値のカウンタの値が許容透過数Ｔ＝Ｕ×Ｖを超えたため、受信パケットが廃棄された場合は、アドレスフィルタ装置２１０は、廃棄したパケットの送信元アドレス及びあて先アドレスを管理装置１２０に通知し、図４に示す手順に従って、廃棄したパケットのアドレスを廃棄設定に変更するようにしてもよい。
【００３８】
次に、本実施の形態に係るアドレスフィルタ装置２１０の機能ブロックの例を図９を参照して説明する。
【００３９】
図９において、パケット受信部２１０１は、通信アドレス（通信識別値）が含まれるパケットを受信し、受信したパケットから通信アドレスを抽出し、後述のハッシュ演算部２１０６に通信アドレスを渡す。
パケット送信部２１０２は、透過対象のパケットを保護対象ネットワーク１３０に送信する。
制御部２１０３はアドレスフィルタ装置２１０の全体の制御を行う。
【００４０】
エントリ設定データ入力部２１０４は、管理装置１２０からのエントリ設定データ１２３０を入力する。
【００４１】
エントリ設定部２１０５は、パケット受信部２１０１によるパケットの受信に先立ち、パケット透過の対象となるアドレスの分割ＨＡＳＨ値（変換値）を透過分割ＨＡＳＨ値（透過変換値）として１つ以上指定し、パケット廃棄の対象となるアドレスのＨＡＳＨ値を廃棄分割ＨＡＳＨ値（廃棄変換値）として１つ以上指定する。エントリ設定部２１０５は、エントリ設定データ１２３０において、許容透過数よりも小さい値、具体的には、カウンタでとり得る最小値が値ＶＡＬｎとして示されているアドレスから算出される分割ＨＡＳＨ値を透過分割ＨＡＳＨ値とし、エントリ設定データ１２３０において、許容透過数よりも大きい値、具体的には、カウンタでとり得る最大の値が値ＶＡＬｎとして示されているアドレスから算出される分割ＨＡＳＨ値を廃棄分割ＨＡＳＨ値とする。
また、エントリ設定部２１０５は、エントリ設定データ１２３０の値ＶＡＬｎに従って、透過分割ＨＡＳＨ値に対応するカウンタにカウント初期値として、許容透過数よりも小さい値、具体的には、カウンタでとり得る最小値を設定する。また、エントリ設定データ１２３０の値ＶＡＬｎに従って、廃棄分割ＨＡＳＨ値に対応するカウンタにカウント初期値として、許容透過数よりも大きい値、具体的には、カウンタでとり得る最大値を設定する。
エントリ設定部は、変換値指定部及びカウント初期値設定部の例である。
【００４２】
ハッシュ演算部２１０６は、エントリ設定データ１２３０に示されているアドレスのＨＡＳＨ演算（一方向演算）及びパケット受信部２１０１により受信された通信データ１７００（受信パケット）に含まれるアドレスのＨＡＳＨ演算を行う。また、ハッシュ演算部２１０６は、算出したＨＡＳＨ値を所定数に分割する。
ハッシュ演算部２１０６は、図２〜図４に示すＨＡＳＨ関数１１０３及び分割器１１０２に相当する。
また、ハッシュ演算部２１０６は、変換値算出部の例である。
【００４３】
カウンタ部２１０７は、複数のカウンタから構成されるカウンタ配列１１０３を管理する。
【００４４】
出現回数カウント部２１０８は、ハッシュ演算部２１０６が通信データ１７００（受信パケット）に含まれているアドレスから分割ＨＡＳＨ値（受信変換値）を算出する度に、算出された分割ＨＡＳＨ値に対応するカウンタの値を変化させて当該分割ＨＡＳＨ値の単位時間内の出現回数をカウントする。
また、出現回数カウント部２１０８は、ハッシュ演算部２１０６により算出された分割ＨＡＳＨ値（受信変換値）に対応するカウンタの値が最大値であれば当該カウンタの値を変化させず、ハッシュ演算部２１０６により算出された分割ＨＡＳＨ値（受信変換値）に対応するカウンタの値が最大値でなければ当該カウンタの値を変化させて当該分割ＨＡＳＨ値の単位時間内の出現回数をカウントする。
【００４５】
フィルタ部２１０９は、ハッシュ演算部２１０６により分割ＨＡＳＨ値（受信変換値）が算出される度に、算出された分割ＨＡＳＨ値に対応するカウンタの値が許容透過数以下であるか否かを判断し、全ての分割ＨＡＳＨ値のカウンタの値が許容透過数を超えている場合に通信データ１７００（受信パケット）を廃棄し、少なくとも１つの分割ＨＡＳＨ値のカウンタの値が許容透過数以下である場合に通信データ１７００（受信パケット）を透過する。
【００４６】
許容透過数記憶部２１１０は、インターバル時間間隔（単位時間）内に許容されるパケットの透過数Ｔ＝Ｕ×Ｖを許容透過数として記憶する。許容透過数記憶部２１１０は例えば磁気ディスク装置により実現される。
【００４７】
タイマ２１１１は、インターバル時間間隔を計測する。
【００４８】
図９において、エントリ設定データ入力部２１０４、エントリ設定部２１０５、ハッシュ演算部２１０６、カウンタ部２１０７、出現回数カウント部２１０８、フィルタ部２１０９、許容透過数記憶部２１１０、タイマ２１１１が図２〜図４に示した大規模通信制御部２１００を実現する。
【００４９】
次に、図１０及び図１１を参照して、本実施の形態に係るアドレスフィルタ装置２１０の動作を説明する。
図１０は、フィルタエントリを設定する動作を示すフローチャートであり、図２の動作に対応している。
図１１は、通信パケットの透過又は廃棄を決定する動作を示すフローチャートであり、図３の動作に対応している。
【００５０】
図１０において、カウンタ部２１０７が、カウンタ配列１１０３の各カウンタを最大値で初期化する（Ｓ１００１）。
次に、エントリ設定データ入力部２１０４がエントリ設定データ１２３０を入力する（Ｓ１００２）。
次に、ハッシュ演算部２１０６がエントリ設定データ１２３０に示されるアドレスのＨＡＳＨ値を算出するとともに、算出したＨＡＳＨ値を分割する（Ｓ１００３）。
次に、エントリ設定部２１０５が、分割ＨＡＳＨ値の各々に対応するカウンタにカウンタ部２１０７を通じてカウント初期値を設定する（Ｓ１００４）。つまり、エントリ設定データ１２３０の値ＶＡＬｎに最小値が示されているアドレスの分割ＨＡＳＨ値に対応するカウンタにはカウント初期値として最小値を設定し、当該カウンタを透過対象ＨＡＳＨ値のカウンタとする。また、エントリ設定データ１２３０の値ＶＡＬｎに最大値が示されているアドレスの分割ＨＡＳＨ値に対応するカウンタはカウント初期値として最大値のままとし、当該カウンタを廃棄対象ＨＡＳＨ値のカウンタとする。
そして、エントリ設定データ１２３０に含まれている全てのアドレスに対して、Ｓ１００３及びＳ１００４を繰り返す。
【００５１】
図１１において、まず、フィルタ部２１０９が、許容透過数記憶部２１１０に格納されている許容透過数（Ｔ＝Ｕ×Ｖ）を読み出し、フィルタ部２１０９内部に保持しておく（Ｓ１１０１）（許容透過数読み出しステップ）。例えば、許容透過数をレジスタに格納する。
次に、フィルタ部２１０９は、インターバル時間間隔を計時するために、タイマ２１１１をスタートさせる（Ｓ１１０２）。
そして、パケット受信部２１０１がパケットを受信している場合（Ｓ１１０３でＹＥＳ）（パケット受信ステップ）は、ハッシュ演算部２１０６が、受信パケットに含まれているアドレスのＨＡＳＨ値を算出するとともに、算出したＨＡＳＨ値を分割する（Ｓ１１０４）（変換値算出ステップ）。
次に、出現回数カウント部２１０８は、ハッシュ演算部２１０６により分割された分割ＨＡＳＨ値の各々について、対応するカウンタを検出するとともに、そのカウンタの値が最大値であるか否かを判断する（Ｓ１１０５）。
カウンタ値が最大値でなければ（Ｓ１１０５でＮＯ）、出現回数カウント部２１０８が、カウンタ値をインクリメントし（Ｓ１１０６）、全ての分割ＨＡＳＨ値についてＳ１１０５及びＳ１１０６の処理を行ったかを判断し（Ｓ１１０７）、未処理の分割ＨＡＳＨ値があれば、未処理の分割ＨＡＳＨ値に対してＳ１１０５以降の処理を行う。
また、Ｓ１１０５でＹＥＳの場合、すなわち、分割ＨＡＳＨ値に対応するカウンタの値が最大値である場合には、出現回数カウント部２１０８は、カウンタ値を変更せずに、Ｓ１１０７の判断を行う。
【００５２】
Ｓ１１０７でＹＥＳの場合、すなわち、分割ＨＡＳＨ値のすべてに対してＳ１１０５及びＳ１１０６の処理が行われている場合は、フィルタ部２１０９が、全てのカウンタ値が許容透過数を超えているか否かを判断し（Ｓ１１０８）（フィルタ処理ステップ）、全てのカウンタ値が許容透過数を超えている場合（Ｓ１１０８でＹＥＳ）は、受信パケットを廃棄する（Ｓ１１０９）（フィルタ処理ステップ）。
一方、一つの分割ＨＡＳＨ値でも、カウンタ値が許容透過数を超えていない場合（Ｓ１１０８でＮＯ）は、フィルタ部２１０９はパケットを透過させる（Ｓ１１１０）（フィルタ処理ステップ）。具体的には、フィルタ部２１０９は、パケット送信部２１０２に受信パケットを保護対象ネットワーク１３０に送信させる。
【００５３】
次に、フィルタ部２１０９は、インターバル時間が到来したか否かを判断し（Ｓ１１１１）、インターバル時間が到来している場合（Ｓ１１１１でＮＯ）は、カウンタ部２１０７にカウンタ値が最大値でないカウンタの値をクリアにするよう指示し、カウンタ部２１０７がカウンタ値が最大値でないカウンタの値をクリアにする（Ｓ１１１２）。
そして、処理をＳ１１０２に戻す。
一方、インターバル時間が到来していない場合（Ｓ１１１１でＮＯ）は、処理をＳ１１０３に戻す。
【００５４】
このように、本実施の形態によれば、同一の送信元アドレス及びあて先アドレスが付されている通信パケットがインターバル時間間隔内に許容透過数を超えて受信される場合は、当該通信パケットを廃棄するため、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信が存在する場合でもｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信が恒久的に継続することはない。
ＤｏＳ攻撃やＤＤｏＳ攻撃等は、短時間に大量の通信パケットを送りつける攻撃であるため、ＤｏＳ攻撃やＤＤｏＳ攻撃により大量の通信パケットを短時間に受信した場合には、アドレスフィルタ装置２１０は、このようなＤｏＳ攻撃やＤＤｏＳ攻撃による大量のパケットを破棄して、保護対象ネットワーク１３０を保護する。
また、本実施の形態では、分割したＨＡＳＨ値を用いて透過及び廃棄の決定を行っているので、フィルタリング処理に必要な計算容量が少なくてすみ、非力な組み込み機器でも大規模なアドレスフィルタ装置が構成可能である。
【００５５】
以上、本実施の形態では、アドレスに従って通信を識別し、透過を許可した通信以外を廃棄するアドレスフィルタ装置において、
管理装置から透過設定エントリを受け取る手段と、通信パケットから送信元アドレスとあて先アドレスを抜き出す手段とを含み、
前記アドレスフィルタ装置は通信パケットの透過と廃棄を決定する大規模通信制御部を有し、
前記大規模通信制御部はＨＡＳＨ関数と、ＨＡＳＨ関数の出力値をいくつかのｂｉｔ長に分割する分割器と、分割した各々と対応するカウンタ配列とを含み、
カウンタ配列は最大値で初期化され、管理装置からの設定に従い値を設定し、またあらかじめ定めたインターバル時間において、最大値以外を取っているカウンタの値を値０に初期化する機構を有する大規模通信制御方式、及びアドレスフィルタ装置を説明した。
【００５６】
また、本実施の形態では、前記大規模通信制御部は、ＩＰ通信の送信元アドレスとあて先アドレスの対を受け取ると、ＨＡＳＨ値を計算し、あらかじめ定めた分割長によって該ＨＡＳＨ値を分割器により分割し、他方、分割した先の各々にはカウンタ配列が存在し、分割したＨＡＳＨ値の各々をインデックスとして、対応するカウンタ配列のカウンタへアクセスすることで、通信パケットの透過と廃棄を決定する大規模通信制御方式、及びアドレスフィルタ装置を説明した。
【００５７】
また、本実施の形態では、透過設定エントリにおいて、アドレス対に対応するカウンタ設定値が、カウンタの最大値以外であれば該通信を透過し、カウンタの最大値であれば、透過と設定した通信を破棄設定へ変更することが可能である大規模通信制御方式、及びアドレスフィルタ装置を説明した。
【００５８】
また、本実施の形態では、起動後にカウンタ配列の全てのカウンタの値を最大値により初期化し、その後、予め定めたタイムインターバルに従いカウンタ配列の全てのカウンタを検査し、カウンタが最大値ではないものを全て値０にクリアする機構を有する大規模通信制御方式、及びアドレスフィルタ装置を説明した。
【００５９】
また、本実施の形態では、廃棄すべき通信を透過してしまうｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信の恒久的な透過を回避する大規模通信制御方式、及びアドレスフィルタ装置を説明した。
【００６０】
実施の形態２．
以上の実施の形態に示した方式により、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信が発生しても恒久的に透過し続けることを回避することが可能である。
本実施の形態では、実施の形態１に係るアドレスフィルタ装置２１０の大規模通信制御部２１００が実現する機能に加えて、以下の２つの機能を実現する。
【００６１】
いくつかの透過設定を廃棄設定に変えると、設定変更の組み合わせによっては意図しない設定まで廃棄設定に変わってしまう場合があるが、本実施の形態に係るアドレスフィルタ装置は、このような意図しない廃棄設定を回避する。
例えば、透過設定になっている１つのアドレス対（アドレス対Ａとする）から得られる４つの分割ＨＡＳＨ値のうちの１つが、透過設定になっている他のアドレス対（アドレス対Ｂとする）から得られる４つの分割ＨＡＳＨ値のうちの１つと重複している場合に、アドレス対Ａを廃棄設定に変更すると、アドレス対Ａから得られる４つの分割ＨＡＳＨ値の全てが廃棄分割ＨＡＳＨ値となる。この結果、透過設定であるアドレス対Ｂの分割ＨＡＳＨ値の１つが、意図せずに廃棄分割ＨＡＳＨ値になってしまう。そして、このような分割ＨＡＳＨ値の重複がアドレス対Ｂの４つの分割ＨＡＳＨ値のすべてに発生している場合は、廃棄設定の状況によっては、アドレス対Ｂに対して廃棄設定を行っていないにもかかわらず、アドレス対Ｂに対して廃棄設定を行ったのと同様な結果になる場合がある。本実施の形態に係るアドレスフィルタ装置は、このような意図しない廃棄設定を回避するものである。
【００６２】
また、Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒでは、分割ＨＡＳＨ値ごとにインデックス先のカウンタを評価する処理が必要であったが、本実施の形態に係るアドレスフィルタ装置は、複数の分割ＨＡＳＨ値を並列に処理することを可能とする。
【００６３】
本実施の形態に係るアドレスフィルタ装置を、図５、図６、及び図７を参照して説明する。
なお、本実施の形態に係るシステム構成例は図１に示した通りであり、また、本実施の形態に係るアドレスフィルタ装置の機能ブロック図も複数のカウンタ部２１０７が存在している点を除けば図９に示した通りである。
【００６４】
図５は、本実施の形態に係るアドレスフィルタ装置３１０においてフィルタエントリを設定する動作を示している。
本実施の形態に係るアドレスフィルタ装置３１０は、新たな大規模通信制御部３１００を備えている。
新たな大規模通信制御部３１００と、先の大規模通信制御部２１００の違いはカウンタ配列の保持方法であり、新たな大規模通信制御部３１００では分割器１１０２にて分割されたＨＡＳＨ値の各々が独立にカウンタ配列１１０３を有する。
つまり、例えば、６４ｂｉｔのＨＡＳＨ値を１６ｂｉｔずつ４つに分割する場合は、エントリ設定部２１０５は、１つ目の分割ＨＡＳＨ値（１６ｂｉｔ）はカウンタ配列１の対応するカウンタを対象とし、カウンタ配列１の対応するカウンタにエントリ設定データ１２３０の値ＶＡＬｎがカウント初期値として設定され、２つ目の分割ＨＡＳＨ値（１６ｂｉｔ）はカウンタ配列２の対応するカウンタを対象とし、カウンタ配列２の対応するカウンタにエントリ設定データ１２３０の値ＶＡＬｎがカウント初期値として設定され、３つ目の分割ＨＡＳＨ値（１６ｂｉｔ）はカウンタ配列３の対応するカウンタを対象とし、カウンタ配列３の対応するカウンタにエントリ設定データ１２３０の値ＶＡＬｎがカウント初期値として設定され、４つ目の分割ＨＡＳＨ値（１６ｂｉｔ）はカウンタ配列４の対応するカウンタを対象とし、カウンタ配列４の対応するカウンタにエントリ設定データ１２３０の値ＶＡＬｎがカウント初期値として設定される。
このように、本実施の形態では、１つのＨＡＳＨ値から分割される分割ＨＡＳＨ値をそれぞれ順序付け、また、カウンタ配列は分割ＨＡＳＨ値の順序に対応して順序付けられており、それぞれの分割ＨＡＳＨ値のカウント初期値を、それぞれの分割ＨＡＳＨ値の順序に対応するカウンタ配列の対応するカウンタに設定する。
設定におけるその他の動作は図２と同様である。
【００６５】
図６は通信パケットの透過あるいは廃棄を決定する動作を示している。
この際の新たな大規模通信制御部３１００の動作も、図３における先の大規模通信制御部２１００と同様である。
つまり、通信データ１７００（受信パケット）の通信アドレスを６４ｂｉｔのＨＡＳＨ値に変換する場合、ハッシュ演算部２１０６が６４ｂｉｔのＨＡＳＨ値を１６ｂｉｔずつ４つに分割し、出現回数カウント部２１０８が、１つ目の分割ＨＡＳＨ値（１６ｂｉｔ）については、カウンタ配列１の対応するカウンタにて出現回数をカウントし、２つ目の分割ＨＡＳＨ値（１６ｂｉｔ）については、カウンタ配列２の対応するカウンタにて出現回数をカウントし、３つ目の分割ＨＡＳＨ値（１６ｂｉｔ）については、カウンタ配列３の対応するカウンタにて出現回数をカウントし、４つ目の分割ＨＡＳＨ値（１６ｂｉｔ）については、カウンタ配列４の対応するカウンタにて出現回数をカウントする。実施の形態１と同様に、出現回数カウント部２１０８は、分割ＨＡＳＨ値に対応するカウンタの値が最大値であれば、カウンタの値をインクリメントせず、最大値でなければカウンタの値をインクリメントする。
そして、フィルタ部２１０９は、それぞれの分割ＨＡＳＨ値の順序にしたがって、分割ＨＡＳＨ値ごとに、対応するカウンタ配列の対応するカウンタの値が許容透過数（Ｔ＝Ｕ×Ｖ）以下であるか否かを判断し、全てのカウンタの値が許容透過数を超えている場合は、受信した通信データ１７００を破棄し、少なくとも１つのカウンタ値が許容透過数以下である場合に通信データ１７００を透過する。
また、インターバル時間到来後のカウンタのクリア処理は、全てのカウンタ配列に対して行われる。
【００６６】
図７は新たな大規模通信制御部３１００において、設定した透過エントリを解除したり、新たな透過エントリを追加したりする際の動作を示している。
当該処理もまた、図４における先の大規模通信制御部２１００と同様である。
つまり、例えば、６４ｂｉｔのＨＡＳＨ値を１６ｂｉｔずつ４つに分割する場合は、エントリ設定部２１０５は、１つ目の分割ＨＡＳＨ値（１６ｂｉｔ）はカウンタ配列１の対応するカウンタを対象とし、カウンタ配列１の対応するカウンタにエントリ設定データ１２３０の値ＶＡＬｎがカウント初期値として設定され、２つ目の分割ＨＡＳＨ値（１６ｂｉｔ）はカウンタ配列２の対応するカウンタを対象とし、カウンタ配列２の対応するカウンタにエントリ設定データ１２３０の値ＶＡＬｎがカウント初期値として設定され、３つ目の分割ＨＡＳＨ値（１６ｂｉｔ）はカウンタ配列３の対応するカウンタを対象とし、カウンタ配列３の対応するカウンタにエントリ設定データ１２３０の値ＶＡＬｎがカウント初期値として設定され、４つ目の分割ＨＡＳＨ値（１６ｂｉｔ）はカウンタ配列４の対応するカウンタを対象とし、カウンタ配列４の対応するカウンタにエントリ設定データ１２３０の値ＶＡＬｎがカウント初期値として設定される。
【００６７】
図５、図６、及び図７に示す新たな大規模通信制御部３１００であれば、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信が発生しても恒久的に透過し続けることを回避することが可能であり、また、分割ＨＡＳＨ値ごとにカウンタ配列を設けているので、いくつかの透過設定を廃棄設定に変える任意の組み合わせにおいて、意図しない設定まで廃棄設定に変わることを防ぐことが可能である。
例えば、前述の例において、アドレス対Ａの４つの分割ＨＡＳＨ値のうち２番目の分割ＨＡＳＨ値とアドレス対Ｂの４つの分割ＨＡＳＨ値のうち３番目の分割ＨＡＳＨ値が重複している場合は、アドレス対Ａを廃棄設定にする際には、カウンタ配列２の該当するカウンタの値のみが廃棄設定になり、カウンタ配列３のカウンタの値は変更にならないので、アドレス対Ｂの設定には影響がない。
【００６８】
また、カウンタ配列を並列化することで、複数の分割ＨＡＳＨ値を並列に処理することができ、ハードウェア実装により高速化を図ることができ、かつ調停論理が不要となる。
【００６９】
さらに、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ率自体もカウンタ配列の個数に従い低減することが可能である。図５の構成であれば、４段であるため、分割されたＨＡＳＨ値の任意の１６ｂｉｔ値がその他のいずれかの１６ｂｉｔ値と同じ値であっても別のカウンタにより管理される。
ゆえにＣｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒよりも重複率を１／４に低減できる。
【００７０】
カウンタ配列を並列に保持することにより、構成２１００あるいは構成１１１０と比較して計算容量が増加する。
しかしながら、段数を増やすことで計算容量の削減が可能であり、実装時の制限に合わせて柔軟に実装することが可能である。例えば、１カウンタが１６ｂｉｔで、ＨＡＳＨ値を４段に分割する場合、１６ｂｉｔ×２＾（６４／４）×４＝４１９４３０４ｂｉｔの計算容量が必要だが、８段に分割する場合、１６ｂｉｔ×２＾（６４／８）×８＝３２７６８ｂｉｔの計算容量にまで削減される。
【００７１】
段数を増やす場合、計算容量は削減されるが、重複率は図１９に従い反比例して増加する。先ず１つのカウンタ配列と仮定して図１９に従い重複率の計算を行い、その値から段数で割った値が新たな大規模通信制御部の重複率となる。
【００７２】
また、新たなアドレスフィルタ装置３１０の大規模通信制御部の構造は、図５、図６、及び図７に示した構造３１００（図８（ａ））のみならず、図８（ｂ）に示した構造３１１０であっても良い。
構造３１００と構造３１１０の違いは、図１８に示した構造１１００と構造１１１０の違いと同様である。
つまり、構造３１０００のＨＡＳＨ値を４つに分割する構成に代えて、構造３１１０のように、アドレスを４つに分割し、それぞれの分割アドレスに対してＨＡＳＨ演算を行って４つのＨＡＳＨ値を得るようにしても同様の結果が得られる。
構造３１１０でも構成が可能である性質は、従来法の性質を引き継いだことに起因する。
【００７３】
このように、本実施の形態によれば、フィルタエントリ衝突に起因して恒久的にｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信を透過させ続けるという課題を解決することができるとともに、並列性を持たせることで、Ｈ／Ｗ実装時の高速化を図ることを可能とするのみならず、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ率そのものを低減することが可能となる。
【００７４】
以上、本実施の形態では、透過設定エントリは、アドレス対と、アドレス対に対応するカウンタへ設定する値とを含み、アドレスフィルタ装置は該透過設定エントリを管理装置から受け取ると、複数のカウンタ配列の各々からカウンタを特定し、該カウンタの各々に値を設定することで、通信の透過と廃棄の設定を可能とする大規模通信制御方式、及びアドレスフィルタ装置を説明した。
【００７５】
また、本実施の形態では、アドレスフィルタ装置は、通信パケットを受信すると、通信パケットからアドレス対を抜き出して大規模通信制御部への入力とし、大規模通信制御部は、入力されたアドレス対から、複数のカウンタ配列の各々からカウンタを特定し、全てのカウンタが予め定めたしきい値を超えていれば該通信を廃棄し、そうでなければ該通信を透過し、該通信を透過判定した場合、特定したカウンタの全てに１を加算することを説明した。
【００７６】
また、本実施の形態では、起動後に全てのカウンタ配列の全てのカウンタの値を最大値により初期化し、その後、予め定めたタイムインターバルに従い全てのカウンタ配列の全てのカウンタを検査し、カウンタが最大値ではないものを全て値０にクリアすることを説明した。
【００７７】
また、本実施の形態では、カウンタ配列を並列化することで、ハードウェア実装により高速化を図ることを可能とし、かつカウンタ配列への調停論理を不要とする大規模通信制御方式、及びアドレスフィルタ装置を説明した。
【００７８】
実施の形態３．
実施の形態１及び実施の形態２では、予めカウンタ配列を用意しておき、エントリ設定データの内容に従って、各カウンタのカウント初期値を透過設定（最小値）又は廃棄設定（最大値）とするものである。
これに代えて、本実施の形態では、カウンタ配列を予め用意することなく、エントリ設定データにおいて透過設定のアドレスのみを通知し、エントリ設定データの透過設定のアドレスから得られる分割ＨＡＳＨ値に対応させてカウンタを生成し、透過設定のカウンタのみで構成されるカウンタ配列を生成する例を説明する。
なお、本実施の形態に係るシステム構成例は図１に示した通りであり、また、本実施の形態に係るアドレスフィルタ装置の機能ブロック図も、カウンタ部２１０７に予めカウンタ配列が用意されていない点を除けば図９に示した通りである。
なお、以下では、実施の形態１のように、単一のカウンタ配列を生成し利用する場合を説明するが、実施の形態２のように、複数のカウンタ配列を生成し利用することも可能である。
【００７９】
次に、図１２及び図１３を参照して、本実施の形態に係るアドレスフィルタ装置の動作を説明する。
図１２は、フィルタエントリを設定する動作を示すフローチャートであり、実施の形態１で示した図１０に対応している。
図１３は、通信パケットの透過又は廃棄を決定する動作を示すフローチャートであり、実施の形態１で示した図１１に対応している。
【００８０】
図１２において、エントリ設定データ入力部２１０４がエントリ設定データ１２３０を入力する（Ｓ１２０１）。エントリ設定データ入力部２１０４が入力したエントリ設定データ１２３０には、透過設定のアドレスのみが含まれる。
次に、ハッシュ演算部２１０６がエントリ設定データ１２３０に示されるアドレスのＨＡＳＨ値を算出するとともに、算出したＨＡＳＨ値を分割する（Ｓ１２０２）。
次に、エントリ設定部２１０５が、分割されたＨＡＳＨ値の各々に対応するカウンタをカウンタ部２１０７内に生成し、生成したカウンタにカウント初期値を設定する（Ｓ１２０４）。設定するカウント初期値は、カウンタでとり得る最小値とする。エントリ設定部２１０５により対応するカウンタが生成され、カウンタにカウント初期値が設定された分割ＨＡＳＨ値（変換値）が透過分割ＨＡＳＨ値（透過変換値）となる。
そして、エントリ設定データ１２３０に含まれている全てのアドレスに対して、Ｓ１２０２及びＳ１２０３を繰り返すことにより、透過分割ＨＡＳＨ値に対応するカウンタのみから構成されるカウンタ配列が生成される。
【００８１】
図１３において、まず、フィルタ部２１０９が、許容透過数記憶部２１１０に格納されている許容透過数（Ｔ＝Ｕ×Ｖ）を読み出し、フィルタ部２１０９内部に保持しておく（Ｓ１３０１）（許容透過数読み出しステップ）。
次に、フィルタ部２１０９は、インターバル時間間隔を計時するために、タイマ２１１１をスタートさせる（Ｓ１３０２）。
そして、パケット受信部２１０１がパケットを受信している場合（Ｓ１３０３でＹＥＳ）（パケット受信ステップ）は、ハッシュ演算部２１０６が、受信パケットに含まれているアドレスのＨＡＳＨ値を算出するとともに、算出したＨＡＳＨ値を分割する（Ｓ１３０４）（変換値算出ステップ）。
次に、出現回数カウント部２１０８は、ハッシュ演算部２１０６により分割された分割ＨＡＳＨ値の各々について、対応するカウンタがあるか否かを判断する（Ｓ１３０５）。
対応するカウンタがあれば（Ｓ１３０５でＹＥＳ）、出現回数カウント部２１０８が、カウンタ値をインクリメントし（Ｓ１３０６）、全ての分割ＨＡＳＨ値についてＳ１３０５及びＳ１３０６の処理を行ったかを判断し（Ｓ１３０７）、未処理の分割ＨＡＳＨ値があれば、未処理の分割ＨＡＳＨ値に対してＳ１３０５以降の処理を行う。
また、Ｓ１３０５でＮＯの場合、すなわち、分割ＨＡＳＨ値に対応するカウンタが存在しない場合には、出現回数カウント部２１０８は、そのままＳ１３０７の判断を行う。
【００８２】
次に、Ｓ１３０７でＹＥＳの場合、すなわち、分割ＨＡＳＨ値のすべてに対してＳ１３０５及びＳ１３０６の処理が行われている場合は、フィルタ部２１０９が、全ての分割ＨＡＳＨ値に対応するカウンタが存在するかどうかを判断し（Ｓ１３０８）（フィルタ処理ステップ）、一つの分割ＨＡＳＨ値でもカウンタが存在しない場合（Ｓ１３０８でＮＯ）は、受信パケットを廃棄する（Ｓ１３１０）（フィルタ処理ステップ）。
一方、全ての分割ＨＡＳＨ値にカウンタが存在する場合（Ｓ１３０８でＮＯ）は、フィルタ部２１０９は、それらカウンタのカウンタ値のすべてが許容透過数を超えているかどうかを判断する（Ｓ１３０９）（フィルタ処理ステップ）。
すべてのカウンタ値が許容透過数を超えている場合（Ｓ１３０９でＹＥＳ）は、フィルタ部２１０９は受信パケットを廃棄する（Ｓ１３１０）（フィルタ処理ステップ）。
一方、カウンタ値のいずれか１つでも許容透過以内であれば（Ｓ１３０９でＮＯ）、フィルタ部２１０９は受信パケットを透過させる（Ｓ１３１１）（フィルタ処理ステップ）。具体的には、フィルタ部２１０９は、パケット送信部２１０２に受信パケットを保護対象ネットワーク１３０に送信させる。
【００８３】
次に、フィルタ部２１０９は、インターバル時間が到来したか否かを判断し（Ｓ１３１２）、インターバル時間が到来している場合（Ｓ１３１２でＮＯ）は、カウンタ部２１０７にカウンタの値をクリアにするよう指示し、カウンタ部２１０７がカウンタの値をクリアにする（Ｓ１３１３）。
そして、処理をＳ１３０２に戻す。
一方、インターバル時間が到来していない場合（Ｓ１３１２でＮＯ）は、処理をＳ１３０３に戻す。
【００８４】
なお、新たに透過設定を追加する場合は、新たな透過設定のアドレスが示されたエントリ設定データ１２３０を管理装置１２０からアドレスフィルタ装置に送信し、図１２に示す手順に従って、エントリ設定部２１０５が新たな透過設定のアドレスから得られる分割ＨＡＳＨ値に対応するカウンタを生成する。
また、透過設定を廃棄設定にする場合は、廃棄設定のアドレスが示されたエントリ設定データ１２３０を管理装置１２０からアドレスフィルタ装置に送信し、エントリ設定部２１０５が廃棄設定のアドレスから得られる分割ＨＡＳＨ値に対応するカウンタを削除する。
【００８５】
以上、本実施の形態に示す方式によっても、ｆａｌｓｅ  ｐｏｓｉｔｉｖｅ通信が恒久的に継続することを回避することができる。
【００８６】
最後に、実施の形態１〜３に示したアドレスフィルタ装置２１０、３１０のハードウェア構成例について説明する。
図１４は、実施の形態１〜３に示すアドレスフィルタ装置２１０、３１０のハードウェア資源の一例を示す図である。
なお、図１４の構成は、あくまでもアドレスフィルタ装置２１０、３１０のハードウェア構成の一例を示すものであり、アドレスフィルタ装置２１０、３１０のハードウェア構成は図１４に記載の構成に限らず、他の構成であってもよい。
【００８７】
図１４において、アドレスフィルタ装置２１０、３１０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００８８】
通信ボード９１５は、図１に示すように、ネットワークに接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
【００８９】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【００９０】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【００９１】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
アドレスフィルタ装置２１０、３１０の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【００９２】
上記プログラム群９２３には、実施の形態１〜３の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００９３】
ファイル群９２４には、実施の形態１〜３の説明において、「〜の判断」、「〜の計算」、「〜の算出」、「〜の比較」、「〜の評価」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜３で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００９４】
また、実施の形態１〜３の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１〜３の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１〜３の「〜部」の手順や方法をコンピュータに実行させるものである。
【００９５】
このように、実施の形態１〜３に示すアドレスフィルタ装置２１０、３１０は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【図面の簡単な説明】
【００９６】
【図１】実施の形態１に係るシステム構成例を示す図面である。
【図２】実施の形態１に係るアドレスフィルタ装置において、フィルタエントリを設定する動作を示す図面である。
【図３】実施の形態１に係るアドレスフィルタ装置において、通信パケットの透過あるいは廃棄を決定する動作を示す図面である。
【図４】実施の形態１に係るアドレスフィルタ装置において、設定した透過エントリを解除したり、新たな透過エントリを追加したりする際の動作を示す図面である。
【図５】実施の形態２に係るアドレスフィルタ装置において、フィルタエントリを設定する動作を示す図面である。
【図６】実施の形態２に係るアドレスフィルタ装置において、通信パケットの透過あるいは廃棄を決定する動作を示す図面である。
【図７】実施の形態２に係るアドレスフィルタ装置において、設定した透過エントリを解除したり、新たな透過エントリを追加したりする際の動作を示す図面である。
【図８】実施の形態２に係るアドレスフィルタ装置の異なる構成を示す図面である。
【図９】実施の形態１に係るアドレスフィルタ装置の機能ブロックを示す図面である。
【図１０】実施の形態１に係るアドレスフィルタ装置の動作例を説明するフローチャート図である。
【図１１】実施の形態１に係るアドレスフィルタ装置の動作例を説明するフローチャート図である。
【図１２】実施の形態３に係るアドレスフィルタ装置の動作例を説明するフローチャート図である。
【図１３】実施の形態３に係るアドレスフィルタ装置の動作例を説明するフローチャート図である。
【図１４】実施の形態１及び２に係るアドレスフィルタ装置のハードウェア構成例を示す図面である。
【図１５】Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒの構成、及びその設定動作を示す図面である。
【図１６】Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒにおいて通信パケットの透過あるいは廃棄を決定する動作を示す図面である。
【図１７】Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒに設定したエントリを解除する動作を示す図面である。
【図１８】Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒの異なる構成を示す図面である。
【図１９】Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒを最適に利用するための方法を示す図面である。
【符号の説明】
【００９７】
１２０  管理装置、１３０  保護対象ネットワーク、１４０  ルータ、１５０  外部網、１６０  拠点、２１０  アドレスフィルタ装置、３１０  アドレスフィルタ装置、１１００  Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ、１１１０  Ｃｏｕｎｔｉｎｇ  Ｂｌｏｏｍ  Ｆｉｌｔｅｒ、１１０１  ＨＡＳＨ関数、１１０２  分割器、１１０３  カウンタ配列、１２３０  エントリ設定データ、１７００  通信データ、１７０１  アドレス対、２１００  大規模通信制御部、２１０１  パケット受信部、２１０２  パケット送信部、２１０３  制御部、２１０４  エントリ設定データ入力部、２１０５  エントリ設定部、２１０６  ハッシュ演算部、２１０７  カウンタ部、２１０８  出現回数カウント部、２１０９  フィルタ部、２１１０  許容透過数記憶部、２１１１  タイマ、３１００  大規模通信制御部、３１１０  大規模通信制御部。
【図１】
2010114480.tif 000003
【図２】
2010114480.tif 000004
【図３】
2010114480.tif 000005
【図４】
2010114480.tif 000006
【図５】
2010114480.tif 000007
【図６】
2010114480.tif 000008
【図７】
2010114480.tif 000009
【図８】
2010114480.tif 000010
【図９】
2010114480.tif 000011
【図１０】
2010114480.tif 000012
【図１１】
2010114480.tif 000013
【図１２】
2010114480.tif 000014
【図１３】
2010114480.tif 000015
【図１４】
2010114480.tif 000016
【図１５】
2010114480.tif 000017
【図１６】
2010114480.tif 000018
【図１７】
2010114480.tif 000019
【図１８】
2010114480.tif 000020
【図１９】
2010114480.tif 000021