(57)【特許請求の範囲】
【請求項１】
ネットワークシステムにおけるクライアント装置とサーバ装置との間に配置されたパケットフィルタリング装置であって、
前記クライアント装置または前記サーバ装置とのコネクション確立後に、前記コネクションが確立した前記クライアント装置または前記サーバ装置から送信された複数のパケットの交換を含む通信シーケンスに対して、所定の検査条件に基づいて、前記クライアント装置と前記サーバ装置との間の前記パケットの透過判定を行い、
前記パケットの送信元の前記クライアント装置または前記サーバ装置との間で、前記通信シーケンスの代理応答を行うパケットフィルタリング装置。
【請求項２】
前記パケットフィルタリング装置は、
前記送信元から送信された前記通信シーケンスの複数の前記パケットを、妥当な前記パケットと判定した場合には、送信先の前記サーバ装置または前記クライアント装置との間で、前記送信元と行った前記通信シーケンスと同じ前記通信シーケンスを行い、
前記送信元から送信された前記通信シーケンスの前記パケットを、不正な前記パケットと判定した場合には、不正な前記パケットを破棄し、前記通信シーケンスを中止する請求項１に記載のパケットフィルタリング装置。
【請求項３】
前記パケットフィルタリング装置は、パケット透過判定部と、代理応答部と、パケット格納部と、を有し、
前記パケット透過判定部が、前記透過判定を行い、
前記代理応答部が、前記パケット透過判定部からの要求により、前記代理応答を行い、
前記パケット格納部は、前記パケット透過判定部からの要求により、複数の前記パケットをキューに格納し、
前記パケット透過判定部が、前記通信シーケンスの複数の前記パケットを、妥当な前記パケットと判定した場合には、前記パケット格納部は、格納した前記パケットを前記送信先に送信し、
前記パケット透過判定部が、前記通信シーケンスの前記パケットを、不正な前記パケットと判定した場合には、前記パケット格納部は、格納した前記パケットを破棄する請求項２に記載のパケットフィルタリング装置。
【請求項４】
前記クライアント装置と接続されたクライアント側TCP/IP制御部をさらに有し、
前記クライアント側TCP/IP制御部は、
前記クライアント装置から前記パケットを受信した場合には、前記パケットを前記パケット透過判定部に転送し、
前記代理応答部から前記パケットを転送された場合には、前記パケットを前記クライアント装置に送信する請求項３に記載のパケットフィルタリング装置。
【請求項５】
前記サーバ装置と接続されたサーバ側TCP/IP制御部をさらに有し、
前記サーバ側TCP/IP制御部は、
前記サーバ装置から前記パケットを受信した場合には、前記パケットを前記パケット透過判定部に転送し、
前記代理応答部から前記パケットを転送された場合には、前記パケットを前記サーバ装置に送信する請求項３または４に記載のパケットフィルタリング装置。
【請求項６】
ネットワークシステムにおけるクライアント装置とサーバ装置との間に配置されたパケットフィルタリング装置を用いたパケットフィルタリング方法であって、
前記クライアント装置または前記サーバ装置とのコネクション確立後に、前記コネクションが確立した前記クライアント装置または前記サーバ装置から送信された複数のパケットの交換を含む通信シーケンスに対して、所定の検査条件に基づいて、前記クライアント装置と前記サーバ装置との間の前記パケットの透過判定を行い、
前記パケットの送信元の前記クライアント装置または前記サーバ装置との間で、前記パケットの代理応答を行うパケットフィルタリング方法。
【請求項７】
ネットワークシステムにおけるクライアント装置とサーバ装置との間に配置されたコンピュータに実行させるパケットフィルタリングプログラムであって、
前記クライアント装置または前記サーバ装置とのコネクション確立後に、前記コネクションが確立した前記クライアント装置または前記サーバ装置から送信された複数のパケットの交換を含む通信シーケンスに対して、所定の検査条件に基づいて、前記クライアント装置と前記サーバ装置との間の前記パケットの透過判定を行い、
前記パケットの送信元の前記クライアント装置または前記サーバ装置との間で、前記パケットの代理応答を行うことをコンピュータに実行させるパケットフィルタリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットフィルタリング装置、パケットフィルタリング方法およびパケットフィルタリングプログラムに関し、特に、通信シーケンスにおいて透過判定を行うパケットフィルタリング装置、パケットフィルタリング方法およびパケットフィルタリングプログラムに関する。
【背景技術】
【０００２】
クライアント装置及びサーバ装置を含むネットワークシステムにおいて、クライアント装置とサーバ装置との間には、ルータやファイアウォール等が設けられている。ルータやファイアウォール等は、パケットフィルタリング機能を有している。パケットフィルタリング機能により、クライアント等の送信元から送信されたパケットを判定して、サーバ装置に透過している。パケットフィルタリング機能による判定は、例えば、パケットのヘッダに含まれた情報を基にして行われる。透過できないと判定されたパケットは、送信元に送り返されるか、破棄される。
【０００３】
特許文献１には、クライアント装置と、サーバ装置との間に設けられたパケットフィルタリング装置が開示されている。特許文献１のパケットフィルタリング装置は、パケットを透過させてもよいか判定するためのフィルタ情報を記憶し、フィルタ情報に基づいてパケットの透過を判定することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３１１７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図１７に示すように、クライアント装置１１０と、サーバ装置１３０とを含むネットワークシステムにおいて、従来の外部機器１２０が行うパケットフィルタリング方法は、１パケット毎の検査しかサポートしていない。このため、複数のパケット１４０交換から成立する通信シーケンスの途中で、不正パケット１４１が存在した場合に、通信シーケンスの途中の不正パケット１４１を破棄してしまうと、通信シーケンスが途絶えてしまう。その結果、サーバ装置１３０のシステム側にタイムアウト等のエラーが発生してしまう場合がある。
【０００６】
本発明は、このような課題を解決するためになされたものであり、通信シーケンスの途中で不正なパケットが存在した場合でも、通信シーケンス中のパケット欠如によるシーケンスエラーの発生を防ぐことができるパケットフィルタリング装置、パケットフィルタリング方法およびパケットフィルタリングプログラムを提供する。
【課題を解決するための手段】
【０００７】
一実施の形態に係るパケットフィルタリング装置は、ネットワークシステムにおけるクライアント装置とサーバ装置との間に配置されたパケットフィルタリング装置であって、前記クライアント装置または前記サーバ装置から送信された複数のパケットの交換を含む通信シーケンスに対して、所定の検査条件に基づいて、前記クライアント装置と前記サーバ装置との間の前記パケットの透過判定を行い、前記パケットの送信元の前記クライアント装置または前記サーバ装置との間で、前記通信シーケンスの代理応答を行う。
【０００８】
また、一実施の形態に係るパケットフィルタリング方法は、ネットワークシステムにおけるクライアント装置とサーバ装置との間に配置されたパケットフィルタリング装置を用いたパケットフィルタリング方法であって、前記クライアント装置または前記サーバ装置から送信された複数のパケットの交換を含む通信シーケンスに対して、所定の検査条件に基づいて、前記クライアント装置と前記サーバ装置との間の前記パケットの透過判定を行い、前記パケットの送信元の前記クライアント装置または前記サーバ装置との間で、前記パケットの代理応答を行う。
【０００９】
さらに、一実施の形態に係るパケットフィルタリングプログラムは、ネットワークシステムにおけるクライアント装置とサーバ装置との間に配置されたコンピュータに実行させるパケットフィルタリングプログラムであって、前記クライアント装置または前記サーバ装置から送信された複数のパケットの交換を含む通信シーケンスに対して、所定の検査条件に基づいて、前記クライアント装置と前記サーバ装置との間の前記パケットの透過判定を行い、前記パケットの送信元の前記クライアント装置または前記サーバ装置との間で、前記パケットの代理応答を行うことをコンピュータに実行させる。
【発明の効果】
【００１０】
一実施の形態によれば、通信シーケンスの途中で不正なパケットが存在した場合でも、通信シーケンス中のパケット欠如によるシーケンスエラーの発生を防ぐことができるパケットフィルタリング装置、パケットフィルタリング方法およびパケットフィルタリングプログラムを提供する。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係るパケットフィルタリング装置の代理応答を例示したシーケンス図である。
【図２】実施形態に係るパケットフィルタリング装置の代理応答を例示したシーケンス図である。
【図３】実施形態１に係るパケットフィルタリング装置を含むネットワークシステムを例示した図である。
【図４】実施形態に係るパケットフィルタ処理部において設定されたパケットの検査条件を例示した表である。
【図５】実施形態に係るTCPコネクションの接続シーケンスを例示した図である。
【図６】実施形態に係るパケットフィルタリング装置のクライアント側TCP/IP制御部におけるTCPコネクション接続を例示したフローチャートである。
【図７】実施形態に係るパケットフィルタリング装置のサーバ側TCP/IP制御部におけるTCPコネクション接続を例示したフローチャートである。
【図８】実施形態に係るパケットフィルタリング装置において、TCPコネクション確立後にクライアント装置側のTCPコネクションが切断された場合を例示したシーケンス図である。
【図９】実施形態に係るパケットフィルタリング装置において、TCPコネクション確立後にサーバ装置３０側のTCPコネクションが切断された場合を例示したシーケンス図である。
【図１０】実施形態に係るパケットフィルタリング装置において、クライアント装置からパケットを受信した場合を例示したシーケンス図である。
【図１１】実施形態に係るパケットフィルタリング装置において、サーバ装置からパケットを受信した場合を例示したシーケンス図である。
【図１２】実施形態に係るパケットフィルタリング装置において、クライアント側TCP/IP制御部のパケットフィルタリング処理を例示したフローチャート図である。
【図１３】実施形態に係るパケットフィルタリング装置において、サーバ側TCP/IP制御部のパケットフィルタリング処理を例示したフローチャート図である。
【図１４】実施形態に係るパケットフィルタリング装置において、パケット透過判定部のパケットフィルタリング処理を例示したフローチャート図である。
【図１５】実施形態に係るパケットフィルタリング装置において、パケット格納部のパケットフィルタリング処理を例示したフローチャート図である。
【図１６】実施形態に係るパケットフィルタリング装置において、代理応答部のパケットフィルタリング処理を例示したフローチャート図である。
【図１７】比較例に係る外部機器のパケットフィルタリング処理を例示したシーケンス図である。
【発明を実施するための形態】
【００１２】
（実施形態１）
以下、図面を参照して本発明の実施形態１に係るパケットフィルタリング装置を説明する。
【００１３】
図１及び図２は、実施形態に係るパケットフィルタリング装置の代理応答を例示したシーケンス図である。図１に示すように、パケットフィルタリング装置２０は、ネットワークシステムにおけるクライアント装置１０とサーバ装置３０との間に配置されている。クライアント装置１０とサーバ装置３０との間のTCPパケット（パケット４０ともいう。）による通信は、パケットフィルタリング装置２０を中継して行われる。送信元の装置（クライアント装置１０またはサーバ装置３０）から送信された複数のパケット４０の交換を含む通信シーケンスに対しては、パケットフィルタリング装置２０は、所定の検査条件に基づいて、送信元の装置との間のパケット４０の透過判定を行う。それと共に、パケットフィルタリング装置２０は、パケット４０の送信元の装置との間で、通信シーケンスの代理応答を行う。このようにして、パケットフィルタリング装置２０は、代理応答により、送信元の装置と疑似的に通信シーケンスを継続する。
【００１４】
パケットフィルタリング装置２０は、送信元から送信された通信シーケンスの複数のパケット４０を、妥当なパケットと判定した場合、すなわち、全てのパケットに問題がなく、通信シーケンスが正常であると判定した場合には、送信先の装置（サーバ装置３０またはクライアント装置１０）との間で、送信元と行った通信シーケンスと同じ通信シーケンスを改めてやり直す。これにより、パケットフィルタリング装置２０は、送信元から送信された通信シーケンスの妥当なパケット４０を送信先の装置に対して送信することができる。
【００１５】
一方、図２に示すように、パケットフィルタリング装置２０が、代理応答を行い、送信元の装置と疑似的に通信シーケンスを継続していたときに、送信元の装置から透過を許可できない不正パケット４１が送信されることがある。パケットフィルタリング装置２０は、送信元から送信された通信シーケンスのパケットを、不正なパケット４１と判定した場合、すなわち、所定の検査条件に基づいて、クライアント装置１０及びサーバ装置３０間を透過させることができないパケットであると判定した場合には、不正なパケット４１を破棄する。そして、通信シーケンスを中止する。これにより、パケットフィルタリング装置２０は、送信先の装置（サーバ装置３０）に、不正なパケット４１を含む通信シーケンスを一切到達させないようにすることができる。よって、送信先のサーバ装置３０には、当該通信シーケンスのパケットが一つも届かないのでエラーとなることがない。
【００１６】
図３は、実施形態１に係るパケットフィルタリング装置を含むネットワークシステムを例示した図である。図３に示すように、ネットワークシステム１は、複数のクライアント装置１０と、パケットフィルタリング装置２０と、サーバ装置３０と、を含んでいる。
【００１７】
クライアント装置１０は、ネットワークシステム１上に複数存在する。例えば、クライアント装置１０は、Ｎ個存在し、１〜Ｎで番号付けられている。各クライアント装置１０は、パケットフィルタリング装置２０を介してサーバ装置３０とTCPコネクションを確立し、個別に通信を行う。
【００１８】
サーバ装置３０は、ネットワークシステム１上のサーバとしての役割を有している。サーバ装置３０は、パケットフィルタリング装置２０を介して、各クライアント装置１０からのTCPコネクションの確立を待ち受けている。サーバ装置３０は、各クライアント装置１０とのTCPコネクション確立後に各クライアント装置１０と通信を行う。
【００１９】
TCPコネクションは、クライアント装置１０とパケットフィルタリング装置２０との間、及び、パケットフィルタリング装置２０とサーバ装置３０との間で確立する。
【００２０】
クライアント装置１０とパケットフィルタリング装置２０との間のTCPコネクションは、パケットフィルタリング装置２０がTCPサーバ、クライアント装置１０がTCPクライアントの役割となり、クライアント装置１０のIPアドレス・ポート番号からパケットフィルタリング装置２０のIPアドレス・ポート番号宛てにTCPコネクションを確立する。
【００２１】
パケットフィルタリング装置２０とサーバ装置３０との間のTCPコネクションは、サーバ装置３０がTCPサーバ、パケットフィルタリング装置２０がTCPクライアントの役割となり、パケットフィルタリング装置２０のIPアドレス・ポート番号からサーバ装置３０のIPアドレス・ポート番号宛てにTCPコネクションを確立する。
【００２２】
パケットフィルタリング装置２０は、内部機能として、クライアント側TCP/IP制御部２１、パケットフィルタ処理部２２、サーバ側TCP/IP制御部２３、とを有する。
【００２３】
クライアント側TCP/IP制御部２１は、クライアント装置１０と接続されている。クライアント側TCP/IP制御部２１は、クライアント装置１０のTCPコネクションを管理する機能を有する。クライアント側TCP/IP制御部２１は、クライアント装置１０からのTCPコネクション接続要求を待ち受けている。クライアント装置１０からTCPコネクションの接続を要求された場合には、クライアント側TCP/IP制御部２１は、要求元のIPアドレス・ポート番号を確認する。そして、所定の条件に基づいて許可可能な要求元であると判断された場合には、ＴＣＰコネクションの確立を許可する。TCPコネクションが確立できた場合は、クライアント側TCP/IP制御部２１は、TCPコネクション管理用に管理番号を記憶する。クライアント側TCP/IP制御部２１は、TCPコネクションが確立したクライアント装置１０からパケットを受信した場合は、送信されたパケットをパケットフィルタ処理部２２へ転送する。
【００２４】
サーバ側TCP/IP制御部２３は、サーバ装置３０と接続されている。サーバ側TCP/IP制御部２３は、サーバ装置３０とのTCPコネクションを管理する機能を有する。サーバ側TCP/IP制御部２３は、クライアント側TCP/IP制御部２１でクライアント装置１０とのTCPコネクションが確立できた場合には、サーバ装置３０に対してTCPコネクションの接続を要求する。サーバ装置３０とパケットフィルタリング装置２０のTCPコネクションが確立できた場合は、サーバ側TCP/IP制御部２３は、クライアント側TCP/IP制御部２１で管理しているTCPコネクション管理用の管理番号と紐付を行う。また、サーバ側TCP/IP制御部２３は、TCPコネクションが確立したサーバ装置３０からパケットを受信した場合は、送信されたパケットをパケットフィルタ処理部２２へ転送する。
【００２５】
パケットフィルタ処理部２２は、クライアント側TCP/IP制御部２１から転送されたパケットを受信する。また、パケットフィルタ処理部２２は、サーバ側TCP/IP制御部２３から転送されたパケットを受信する。パケットフィルタ処理部２２は、内部機能として、パケット透過判定部２４、パケット格納部２５、代理応答部２６を有している。
【００２６】
パケット透過判定部２４には、クライアント側TCP/IP制御部２１、または、サーバ側TCP/IP制御部２３からパケットが転送される。パケット透過判定部２４は、転送されたパケットに対して、設定された所定の検査条件に基づいて、パケットの透過判定を行う。転送されたパケットが通信シーケンスのパケットの場合でも、パケット透過判定部２４は、所定の検査条件に基づいて、クライアント装置１０とサーバ装置３０との間のパケットの透過判定を行う。パケット透過判定部２４は、転送された通信シーケンスの複数のパケットを、妥当なパケットと判定した場合には、パケット格納部２５に対して、複数のパケットの保存を要求する。例えば、パケット透過判定部２４は、パケット格納部２５に対して、複数のパケットをキューに格納するように要求する。また、パケット透過判定部２４は、疑似通信シーケンスを行うため、代理応答部２６に対して送信元の装置（クライアント装置１０またはサーバ装置３０）との代理応答を要求する。
【００２７】
パケット格納部２５は、パケット透過判定部２４からの要求により、複数のパケットを記憶領域(キュー)に格納する。また、パケット格納部２５は、パケット透過判定部２４が、通信シーケンスの複数のパケットは妥当なパケットであると判定した場合には、格納したパケットを送信先に送信する。一方、パケット透過判定部２４が、通信シーケンスのパケットを１つでも、不正なパケットと判定した場合には、パケット格納部２５は、格納したパケットを破棄する。
【００２８】
代理応答部２６は、パケット透過判定部２４からの代理応答の要求により、送信元の装置（クライアント装置１０またはサーバ装置３０）との疑似通信シーケンスを行うために、パケットの代理応答を行う。
【００２９】
図４は、実施形態に係るパケットフィルタ処理部において設定されたパケットの検査条件を例示した表である。図４に示すように、パケットの検査条件として設定する項目には、例えば、送信元IPアドレス、送信元ポート、送信先IPアドレス、送信先ポート、パケットサイズ、TCP制御フラグ(URG／ACK／PSH／RST／SYN／FIN)、システム固有のコマンド、通信シーケンスが挙げられる。
【００３０】
例えば、送信元IPアドレスにおける設定内容は、一致した送信元IPアドレスからのパケットの透過／破棄を指定することである。また、送信元ポートにおける設定内容は、一致した送信元ポート番号からのパケットの透過／破棄を指定することである。送信先IPアドレスにおける設定内容は、一致した送信先IPアドレスへのパケットの透過／破棄を指定することである。送信先ポートにおける設定内容は、一致した送信先ポート番号へのパケットの透過／破棄を指定することである。
【００３１】
さらに、パケットサイズにおける設定内容は、透過／破棄を判断するパケットサイズの閾値を指定することである。TCP制御フラグにおける設定内容は、TCPヘッダ部の制御フラグが一致したパケットの透過／破棄を指定することである。システム固有のコマンドにおける設定内容は、システム固有のコマンド（指定値）がTCPペイロード部に存在するパケットの透過／破棄を指定することである。
【００３２】
通信シーケンスにおける設定内容は、透過または破棄する通信シーケンスを指定することである。なお、通信シーケンスの指定には、パケットの受信順、送信元装置に代理応答するパケット内容及びシーケンス間のタイムアウト値を指定する。
【００３３】
次に、本実施形態に係るパケットフィルタリング装置２０の動作を説明する。まず、クライアント装置１０とサーバ装置３０との間のTCPコネクションの確立方法を説明する。
【００３４】
図５は、実施形態に係るTCPコネクションの接続シーケンスを例示した図である。図５に示すように、まず、クライアント装置１０からパケットフィルタリング装置２０へ接続要求５０を行う。パケットフィルタリング装置２０におけるクライアント側TCP/IP制御部２１は、クライアント装置１０からの接続要求の妥当性を判定する。妥当性を判定した結果、許可された接続元であれば、クライアント側TCP/IP制御部２１は接続を許可する。そして、TCPコネクション管理用の管理番号を登録する。
【００３５】
クライアント装置１０とTCPコネクションを確立できた場合は、クライアント側TCP/IP制御部２１は、サーバ側TCP/IP制御部２３に対して、サーバ装置３０との接続を要求する。サーバ側TCP/IP制御部２１は、サーバ装置３０に対してTCPコネクションの接続を要求する。サーバ装置３０がサーバ側TCP/IP制御部２１とのTCPコネクションの接続に応答することによって、パケットフィルタリング装置２０とサーバ装置３０とのTCPコネクションの接続が確立される。
【００３６】
サーバ装置３０とTCPコネクションの確立に成功した場合には、クライアント側TCP/IP制御部２１は、TCPコネクション管理用の管理番号にサーバ装置３０側の接続情報を紐付する。TCPコネクションの確立に失敗した場合には、クライアント側TCP/IP制御部２１は、TCPコネクション管理用の管理番号を削除し、クライアント装置１０側のTCPコネクションも切断する。
【００３７】
一方、クライアント装置１０からの接続要求５０の妥当性を判定した結果、許可されていない接続元であった場合は、クライアントTCP/IP制御部２１は接続を拒否し、TCPコネクションを切断する。
【００３８】
図６は、実施形態に係るパケットフィルタリング装置のクライアント側TCP/IP制御部におけるTCPコネクション接続を例示したフローチャートである。図６に示すように、クライアント側TCP/IP制御部２１は、クライアント装置１０からパケットフィルタリング装置２０に対する接続要求待ちを行う（ステップＳ１１）。そして、クライアント装置１０から接続要求を受信すると（ステップＳ１２）、クライアント側TCP/IP制御部２１は、許可された接続元か判定する（ステップＳ１３）。許可されない接続元である（Noの）場合には、接続要求を拒否する（ステップＳ１４）。そして、クライアント装置１０からの接続要求待ちを行う（ステップＳ１１）。
【００３９】
一方、許可された接続元である（Yesの）場合には、接続を許可した上で、クライアント装置１０とTCPコネクションを確立する。そして、TCPコネクション管理用の管理番号を登録する（ステップＳ１５）。次に、クライアント側TCP/IP制御部２１は、サーバ側TCP/IP制御部２３にクライアント装置１０との接続を通知する（ステップＳ１６）。これにより、サーバ側TCP/IP制御部２３は、サーバ装置３０との接続を試みる。その後、クライアント側TCP/IP制御部２１は、サーバ側TCP/IP制御部２３からサーバ装置３０との接続結果を受信する（ステップＳ１７）。
【００４０】
受信した接続結果より、サーバ装置３０と接続できたか判断する（ステップＳ１８）。サーバ装置３０と接続できない（Noの）場合には、クライアント装置１０とのTCPコネクションを切断する（ステップＳ１９）。そして、ステップＳ１１に戻り、クライアント装置１０からの接続要求を待つ。一方、サーバ装置３０と接続できた（Yesの）場合には、クライアント装置１０からのパケット受信等のパケット処理（ステップＳ２０）を行う。このようにして、クライアント側TCP/IP制御部２１におけるTCPコネクション接続が行われる。
【００４１】
図７は、実施形態に係るパケットフィルタリング装置のサーバ側TCP/IP制御部におけるTCPコネクション接続の流れを示したフローチャートである。図７に示すように、サーバ側TCP/IP制御部２３は、クライアント側TCP/IP制御部２１からのクライアント装置１０との接続情報待ちを行う（ステップＳ２１）。そして、クライアント側TCP/IP制御部２１からクライアント装置１０との接続情報を受信すると（ステップＳ２２）、サーバ側TCP/IP制御部２３は、サーバ装置３０へ接続を要求する（ステップＳ２３）。そして、サーバ装置３０への接続要求が許可された接続先か判断する（ステップＳ２４）。許可されない接続先である（Noの）場合には、接続要求を拒否する。そして、クライアント側TCP/IP制御部へサーバ装置３０への接続結果（失敗）を通知する（ステップＳ２５）。そして、ステップＳ２１に戻り、クライアント側TCP/IP制御部からのクライアント装置１０との接続情報待ちを行う。
【００４２】
一方、許可された接続先である（Yesの）場合には、接続を許可した上で、サーバ装置３０とTCPコネクションを確立する。そして、クライアント装置１０の接続情報と紐付けする（ステップＳ２６）。次に、クライアント側TCP/IP制御部２１へサーバ装置３０との接続結果（成功）を通知する（ステップＳ２７）。そして、サーバ装置３０へのパケット送信等のパケット処理を行う（ステップＳ２８）。
【００４３】
図８は、実施形態に係るパケットフィルタリング装置において、TCPコネクション確立後にクライアント装置側のTCPコネクションが切断された場合を例示したシーケンス図である。図８に示すように、TCPコネクション確立した後に、クライアント装置１０側のTCPコネクションが切断された場合には、クライアント側TCP/IP制御部２１は、対象のTCPコネクション管理用の管理番号を確認する。そして、その管理番号に紐付けされたサーバ装置３０とのTCPコネクションを切断するようにサーバ側TCP/IP制御部２３に要求する。クライアント側TCP/IP制御部２１からの要求により、サーバ側TCP/IP制御部２３は、サーバ装置３０とのTCPコネクションを切断する。サーバ側TCP/IP制御部２３からのサーバ装置３０と切断した旨の応答により、クライアント側TCP/IP制御部２１は、対象のTCPコネクション管理用の管理番号を削除する。
【００４４】
図９は、実施形態に係るパケットフィルタリング装置において、TCPコネクション確立後にサーバ装置３０側のTCPコネクションが切断された場合を例示したシーケンス図である。図９に示すように、TCPコネクション確立した後に、サーバ装置３０側のTCPコネクションが切断された場合には、サーバ側TCP/IP制御部２３は、クライアント側TCP/IP制御部２１に対してクライアント装置１０との切断を要求する。クライアント装置１０との切断を要求されたクライアント側TCP/IP制御部２１は、対象のTCPコネクション管理用の管理番号を確認する。そして、クライアント側TCP/IP制御部２１は、クライアント装置１０とのTCPコネクションを切断する。クライアント側TCP/IP制御部２１は、サーバ側TCP/IP制御部２３に対して切断した旨の応答を行い、対象の管理番号を削除する。
【００４５】
図１０は、実施形態に係るパケットフィルタリング装置において、クライアント装置からパケットを受信した場合を例示したシーケンス図である。図１０において、まず、パケット単位のパケットフィルタリングの場合について説明し、その後で、通信シーケンス単位でのパケットフィルタリングの場合を説明する。
【００４６】
図１０に示すように、クライアント装置１０から送信されたパケット４０が、パケット単位の場合には、クライアント側TCP/IP制御部２１はパケット４０を、パケット透過判定部２４へ転送する。パケット透過判定部２４は、転送されたパケット４０が図４の検査条件に該当するかを判定する。判定した結果、転送されたパケット４０が透過対象である妥当なパケット４０の場合には、パケット透過判定部２４は、そのまま、サーバ側TCP/IP制御部２３へパケット４０を転送する。そして、サーバ側TCP/IP制御部２３は、サーバ装置３０へパケット４０を送信する。一方、転送されたパケットが破棄対象である不正なパケットの場合には、パケット透過判定部２４はパケットを破棄する。
【００４７】
次に、クライアント装置１０から送信されたパケット４０が、通信シーケンスのパケット４０であった場合には、クライアント側TCP/IP制御部２１はパケット４０を、パケット透過判定部２４へ転送する。パケット透過判定部２４は、転送されたパケット４０が図４の検査条件に該当するか、パケットの内容や受信順に不正が無いか等を判定する。転送されたパケット４０が通信シーケンスとして妥当なパケット４０である場合は、パケット透過判定部２４は、パケット格納部２５に対してパケット４０をキューに格納するように要求する。これを受けて、パケット格納部２５は、パケット４０をキューに格納する。
【００４８】
また、パケット透過判定部２４は、代理応答部２６に対して、転送されたパケット４０に対する代理応答を送信元に対して行うように要求する。これを受けて、代理応答部２６は、クライアント側TCP/IP制御部２１に対して代理応答のためのパケット４０を転送する。クライアント側TCP/IP制御部２１は、代理応答部２６からパケット４０を転送された場合には、パケット４０をクライアント装置１０に送信する。
【００４９】
通信シーケンスにおいて、受信したパケット４０が通信シーケンスの終了を示すパケット４０である場合は、パケット格納部２５は、格納したパケット４０を順番にキューから取出す。そして、パケット格納部２５は、取出したパケット４０をサーバ側TCP/IP制御部２３に転送する。サーバ側TCP/IP制御部２３は、パケット格納部２５から転送されたパケット４０を送信先のサーバ装置３０に対して送信する。
【００５０】
一方、パケット透過判定部２４における転送されたパケット４０の判定の結果、通信シーケンスとして不正なパケットが１つでもあった場合は、パケット透過判定部２４は、転送されたパケットを破棄する。そして、パケット透過判定部２４は、パケット格納部２５に対して、キューに格納したパケット４０を全て破棄するように要求する。これを受けて、パケット格納部２５は、格納したパケット４０をキューから全て削除する。
【００５１】
図１１は、実施形態に係るパケットフィルタリング装置において、サーバ装置からパケットを受信した場合を例示したシーケンス図である。図１１において、まず、パケット単位のパケットフィルタリングの場合について説明し、その後で、通信シーケンス単位でのパケットフィルタリングの場合を説明する。
【００５２】
図１１に示すように、サーバ装置３０から送信されたパケット４０が、パケット単位の場合には、サーバ側TCP/IP制御部２３は、パケット４０をパケット透過判定部２４へ転送する。パケット透過判定部２４は、転送されたパケット４０が図４の検査条件に該当するかを判定する。判定した結果、転送されたパケット４０が透過対象である妥当なパケット４０の場合には、パケット透過判定部２４は、そのまま、クライアント側TCP/IP制御部２１へパケット４０を転送する。そして、クライアント側TCP/IP制御部２１は、クライアント装置１０へパケット４０を送信する。一方、転送されたパケットが破棄対象である不正なパケットの場合には、パケット透過判定部２４は、パケットを破棄する。
【００５３】
次に、サーバ装置３０から送信されたパケット４０が、通信シーケンスのパケット４０であった場合には、サーバ側TCP/IP制御部２３はパケット４０を、パケット透過判定部２４へ転送する。パケット透過判定部２４は、転送されたパケット４０が図４の検査条件に該当するか、パケットの内容や受信順に不正が無いか等を判定する。転送されたパケット４０が通信シーケンスとして妥当なパケットである場合は、パケット透過判定部２４は、パケット格納部２５に対してパケットをキューに格納するように要求する。これを受けて、パケット格納部２５は、パケット４０をキューに保存する。
【００５４】
また、パケット透過判定部２４は、代理応答部２６に対して、転送されたパケット４０に対する代理応答を送信元に対して行うように要求する。これを受けて、代理応答部２６は、サーバ側TCP/IP制御部２３に対して代理応答のためのパケット４０を転送する。サーバ側TCP/IP制御部２３は、代理応答部２６からパケット４０を転送された場合には、パケット４０をサーバ装置３０に送信する。
【００５５】
通信シーケンスにおいて、受信したパケット４０が通信シーケンスの終了を示すパケット４０である場合は、パケット格納部２５は、格納したパケット情報を順番にキューから取出す。そして、パケット格納部２５は、取出したパケット４０をクライアント側TCP/IP制御部２１に転送する。クライアント側TCP/IP制御部２１は、パケット格納部２５から転送されたパケット４０を送信先のクライアント装置１０に対して送信する。
【００５６】
一方、パケット透過判定部２４において転送されたパケット４０の判定の結果、通信シーケンスとして不正なパケットが１つでもあった場合は、パケット透過判定部２４は、転送されたパケットを破棄する。そして、パケット透過判定部２４は、パケット格納部２５に対して、キューに格納した全てのパケット４０を破棄するように要求する。これを受けて、パケット格納部２５は、格納したパケット４０をキューから全て削除する。
【００５７】
図１２は、実施形態に係るパケットフィルタリング装置において、クライアント側TCP/IP制御部のパケットフィルタリング処理を例示したフローチャート図である。図１２に示すように、クライアントTCP/IP制御部２１は、クライアント装置１０またはパケットフィルタ処理部２２からのパケット待ちを行う（ステップＳ３１）。そして、クライアント装置１０またはパケットフィルタ処理部２２からパケットを受信すると（ステップＳ３２）、クライアント側TCP/IP制御部２１は、送信元はどこか判断する（ステップＳ３３）。
【００５８】
パケットフィルタ処理部２２から受信したパケットであり、すなわち、送信元がパケットフィルタ処理部２２である場合には、クライアント側TCP/IP制御部２１は、クライアント装置１０へパケットを送信する（ステップＳ３４）。そして、ステップＳ３１のパケット待ちを行う。
【００５９】
一方、クライアント装置１０から受信したパケットであり、すなわち、送信元がクライアント装置１０である場合には、クライアント側TCP/IP制御部２１は、パケットフィルタ処理部２２へパケットを転送する（ステップＳ３５）。そして、ステップＳ３１のパケット待ちを行う。
【００６０】
図１３は、実施形態に係るパケットフィルタリング装置において、サーバ側TCP/IP制御部のパケットフィルタリング処理を例示したフローチャート図である。図１３に示すように、サーバTCP/IP制御部２３は、サーバ装置３０またはパケットフィルタ処理部２２からのパケット待ちを行う（ステップＳ３６）。そして、サーバ装置３０またはパケットフィルタ処理部２２からパケットを受信すると（ステップＳ３７）、サーバ側TCP/IP制御部２３は、送信元はどこか判断する（ステップＳ３８）。
【００６１】
パケットフィルタ処理部２２から受信したパケットであり、すなわち、送信元がパケットフィルタリ処理部２２である場合には、サーバ側TCP/IP制御部２３は、サーバ装置３０へパケットを送信する（ステップＳ３９）。そして、ステップＳ３６のパケット待ちを行う。
【００６２】
一方、サーバ装置３０から受信したパケットであり、すなわち、送信元がサーバ装置３０である場合には、サーバ側TCP/IP制御部２３は、パケットフィルタ処理部２２へパケットを転送する（ステップＳ４０）。そして、ステップＳ３６のパケット待ちを行う。
【００６３】
図１４は、実施形態に係るパケットフィルタリング装置において、パケット透過判定部のパケットフィルタリング処理を例示したフローチャート図である。図１４に示すように、パケット透過判定部２４は、クライアント側TCP/IP制御部２１またはサーバTCP/IP制御部２３から転送されるパケット待ちを行う（ステップＳ４１）。そして、クライアント側TCP/IP制御部２１またはサーバTCP/IP制御部２３からパケットが転送されると（ステップＳ４２）、パケット透過判定部２４は、パケットの判定を行う（ステップＳ４３）。パケットが通信シーケンスのパケットの場合には、通信シーケンスのパケットとしての妥当性の判定を行う（ステップＳ４４）。
【００６４】
判定したパケットが不正なパケットの場合には、パケット透過判定部２４は、そのパケットを破棄するとともに、パケット格納部２５に対して、格納したパケットを破棄するように要求する（ステップＳ４５）。
【００６５】
判定したパケットが妥当なパケットの場合には、パケット透過判定部２４は、パケット格納部２５に対して、そのパケットを格納するように要求する（ステップＳ４６）。そして、パケット透過判定部２４は、代理応答部２６に対して、代理応答するように要求する（ステップＳ４７）。その後、ステップＳ４１のパケット待ちを行う。
【００６６】
ステップＳ４３において、パケットを判定した結果、通信シーケンスのパケットではなく、かつ、破棄対象のパケットである場合には、パケット透過判定部２４は、そのパケットを破棄する（ステップＳ４８）。そして、ステップＳ４１のパケット待ちを行う。
【００６７】
一方、ステップＳ４３において、パケットを判定した結果、通信シーケンスのパケットではなく、かつ、透過対象のパケットの場合には、ステップＳ４９に進む。ステップＳ４９において、パケット透過判定部２４は、パケットの送信元はどこかを判定する（ステップＳ４９）。
【００６８】
クライアント装置１０から受信したパケットである場合には、パケット透過判定部２４は、サーバ側TCP/IP制御部２３へパケットを転送する（ステップＳ５０）。そして、ステップＳ４１のパケット待ちを行う。サーバ装置３０から受信したパケットである場合には、パケット透過判定部２４は、クライアント側TCP/IP制御部２１へパケットを転送する（ステップＳ５１）。そして、ステップＳ４１のパケット待ちを行う。
【００６９】
図１５は、実施形態に係るパケットフィルタリング装置において、パケット格納部のパケットフィルタリング処理を例示したフローチャート図である。図１５に示すように、パケット格納部２５は、パケット透過判定部２４からの要求待ちを行う（ステップＳ６１）。そして、パケット透過判定部２４から要求を受信すると（ステップＳ６２）、パケット格納部２５は、要求内容を判断する（ステップＳ６３）。要求内容がパケット破棄である場合には、パケット格納部２５は、キュー内のパケットをすべて破棄する（ステップＳ６４）。そして、ステップＳ６１のパケット待ちを行う。
【００７０】
一方、要求内容がパケット格納である場合には、パケット格納部２５は、パケットをキューに格納する（ステップＳ６５）。そして、パケット格納部２５は、格納したパケットが通信シーケンスの最後か判断する（ステップＳ６６）。格納したパケットが通信シーケンスの最後でない（Noの）場合には、ステップＳ６１のパケット待ちを行う。
【００７１】
一方、格納したパケットが通信シーケンスの最後である（Yesの）場合には、キューにパケットが存在するかを判断する（ステップＳ６７）。キューにパケットが存在しない（Noの）場合には、ステップＳ６１のパケット待ちを行う。一方、キューにパケットが存在する（Yesの）場合には、パケットをキューから取り出す（ステップＳ６８）。
【００７２】
次に、パケットの送信元はどこかを判断する（ステップＳ６９）。パケットがクライアント装置から受信したものである場合には、サーバ側TCP/IP制御部２３へパケットを転送する（ステップＳ７０）。そして、ステップＳ６７に戻り、キューにパケットが存在するかを判断する。
【００７３】
一方、パケットがサーバ装置から受信したものである場合には、クライアントTCP/IP制御部２１へパケットを転送する（ステップＳ７１）。そして、ステップＳ６７に戻り、キューにパケットが存在するかを判断する。
【００７４】
図１６は、実施形態に係るパケットフィルタリング装置において、代理応答部のパケットフィルタリング処理を例示したフローチャート図である。図１６に示すように、代理応答部２６は、パケット透過判定部２４からの要求待ちを行う（ステップＳ８１）。そして、パケット透過判定部２４から要求を受信すると（ステップＳ８２）、代理応答部２６は、代理応答の送信先はどこかを判断する（ステップＳ８３）。代理応答がサーバ装置３０宛ての場合には、サーバ側TCP/IP制御部２３へパケットを転送する（ステップＳ８４）。そして、ステップＳ８１のパケット待ちを行う。
【００７５】
一方、代理応答がクライアント装置宛ての場合には、クライアント側TCP/IP制御部２１へパケットを転送する（ステップＳ８５）。そして、ステップＳ８１のパケット待ちを行う。
【００７６】
このように、本実施形態に係るパケットフィルタリング装置２０を用いたパケットフィルタリング方法は、クライアント装置１０またはサーバ装置３０から送信された複数のパケットの交換を含む通信シーケンスに対して、所定の検査条件に基づいて、クライアント装置１０とサーバ装置３０との間のパケットの透過判定を行い、パケットの送信元のクライアント装置１０またはサーバ装置３０との間で、パケットの代理応答を行うものである。
【００７７】
本実施形態によれば、パケットフィルタリング装置２０は、クライアント装置１０またはサーバ装置１０から送信されたパケットを、所定の検査条件に基づいて透過判定を行い、妥当なパケットについては送信先へ透過し、不正なパケットは破棄している。また、パケットフィルタリング装置２０は、受信したパケットが通信シーケンスのパケットであった場合には、通信シーケンスの代理応答を行い、疑似的に送信元装置と通信シーケンスを継続している。通信シーケンスの各パケットが妥当なパケットであれば、送信先と改めて通信シーケンスをやり直し、通信シーケンスの各パケットのいずれかに不正なパケットがあった場合は、通信シーケンスを破棄している。これにより、送信先に不正なパケットを含む通信シーケンスを一切到達させないようにすることができる。よって、通信シーケンスの途中で不正なパケットが存在した場合でも、通信シーケンス中のパケット欠如によるシーケンスエラーの発生を防ぐことができる。
【００７８】
また、送信先には妥当なパケットのみ送信され、不正なパケットが一切送信されないので、送信先の資源を有効に使用することができる。
【００７９】
さらに、パケットフィルタリング装置２０は、判定に用いる検査条件を予め用意してパケットの判定を行っている。よって、判定の基準を明確にすることができる。また、検査条件と照らし合わせるだけで判定を行うことができる。よって、判定に要する時間を低減することができる。
【００８０】
パケット格納部はキューにパケットを格納するので、取り出しの際にパケットの順序が乱れることを抑制することができる。
【００８１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施形態のパケットフィルタリング方法を、ネットワークシステム１におけるクライアント装置１０とサーバ装置３０との間に配置されたコンピュータに実行させてもよい。そして、コンピュータに実行させるパケットフィルタリングプログラムは、クライアント装置１０またはサーバ装置３０から送信された複数のパケットの交換を含む通信シーケンスに対して、所定の検査条件に基づいて、クライアント装置１０とサーバ装置３０との間のパケットの透過判定を行い、パケットの送信元のクライアント装置１０またはサーバ装置３０との間で、パケットの代理応答を行うことをコンピュータに実行させるものである。
【符号の説明】
【００８２】
１  ネットワークシステム
１０  クライアント装置
２０  パケットフィルタリング装置
２１  クライアント側TCP/IP制御部
２２  パケットフィルタ処理部
２３  サーバ側TCP/IP制御部
２４  パケット透過判定部
２５  パケット格納部
２６  代理応答部
３０  サーバ装置
４０  パケット
４１  不正パケット
５０  接続要求
１１０  クライアント装置
１２０  外部機器
１３０  サーバ装置
１４０パケット
１４１  不正パケット
【図１】
0006705590.tif 000002
【図２】
0006705590.tif 000003
【図３】
0006705590.tif 000004
【図４】
0006705590.tif 000005
【図５】
0006705590.tif 000006
【図６】
0006705590.tif 000007
【図７】
0006705590.tif 000008
【図８】
0006705590.tif 000009
【図９】
0006705590.tif 000010
【図１０】
0006705590.tif 000011
【図１１】
0006705590.tif 000012
【図１２】
0006705590.tif 000013
【図１３】
0006705590.tif 000014
【図１４】
0006705590.tif 000015
【図１５】
0006705590.tif 000016
【図１６】
0006705590.tif 000017
【図１７】
0006705590.tif 000018