(57)【特許請求の範囲】
【請求項１】
プロトコル階層毎に予め定められた通信プロトコルにしたがって通信網を介してデータブロックの送受信を行う送信装置と受信装置とを含み、
前記送信装置は、前記受信装置側でのフィルタリング条件を満たすデータブロックのヘッダに、当該フィルタリング条件を満たすことを示す識別子と前記識別子の算出元になった算出元データとを追記して送信する送信手段を有し、
前記受信装置は、前記通信網を介して受信したデータブロックのヘッダに前記識別子と前記算出元データとが格納されているか否かを判定する判定手段と、前記識別子が格納されていない場合には前記受信したデータブロックを破棄する一方、前記識別子と前記算出元データとが格納されていると前記判定手段により判定され、かつ当該算出元データを用いて算出された値と当該識別子とが一致する場合に所定の処理を実行する制御手段とを有する
ことを特徴とする通信システム。
【請求項２】
プロトコル階層毎に予め定められた通信プロトコルにしたがって通信網を介してデータブロックの送受信を行う送信装置と受信装置とを含み、
前記送信装置は、前記受信装置へ送信するデータブロックが受信装置側でのフィルタリング条件を満たすか否かを判定し、前記フィルタリング条件を満たすと判定されたデータブロックのヘッダに、当該フィルタリング条件を満たすことを示す識別子を追記して送信する送信手段を有し、
前記受信装置は、前記通信網を介して受信したデータブロックのヘッダに前記識別子が格納されているか否かを判定する判定手段と、前記識別子が格納されていた場合に所定の処理を実行する一方、前記識別子が格納されていない場合には当該データブロックを破棄する制御手段とを有する
ことを特徴とする通信システム。
【請求項３】
前記送信手段は、前記フィルタリング条件を満たすデータブロックのヘッダに前記識別子に加えて前記識別子の算出元になった算出元データを追記して送信し、
前記判定手段は、受信したデータブロックのヘッダに前記識別子と前記算出元データとが格納されているか否かを判定し、
前記制御手段は、前記識別子が格納されており、かつ当該算出元データを用いて算出された値と、当該識別子とが一致する場合に前記所定の処理を実行する
ことを特徴とする請求項２に記載の通信システム。
【請求項４】
前記識別子は、所定のハッシュ関数により算出されるハッシュ値である
ことを特徴とする請求項１〜３の何れか１項に記載の通信システム。
【請求項５】
前記送信手段は、前記識別子と前記算出元データとを複数のプロトコル階層のうちの互いに異なるプロトコル階層のヘッダに追記して送信する
ことを特徴とする請求項１又は請求項３に記載の通信システム。
【請求項６】
相手装置側でのフィルタリング条件を満たすデータブロックのヘッダに、前記フィルタリング条件に対応する識別子と前記識別子の算出元になった算出元データとを追記し、プロトコル階層毎に予め定められた通信プロトコルにしたがって、前記識別子と前記算出元データとを追記済みの前記データブロックを通信網を介して前記相手装置へ送信する送信手段
を有することを特徴とする通信装置。
【請求項７】
相手装置へ送信するデータブロックが前記相手装置でのフィルタリング条件を満たすか否かを判定し、前記フィルタリング条件を満たすと判定されたデータブロックのヘッダに、前記フィルタリング条件を満たすことを示す識別子を追記して送信する送信手段
を有することを特徴とする通信装置。
【請求項８】
プロトコル階層毎に予め定められた通信プロトコルにしたがって通信網を介して相手装置から受信したデータブロックのヘッダに、前記データブロックを受信する際のフィルタリング条件に対応する識別子と前記識別子の算出元となった算出元データとが格納されているか否かを判定する判定手段と、
前記識別子が格納されていない場合には前記受信したデータブロックを破棄する一方、前記識別子と前記算出元データとが格納されていると前記判定手段により判定され、かつ当該算出元データを用いて算出された値と当該識別子とが一致する場合に所定の処理を実行する制御手段と
を有することを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置におけるフィルタリング技術に関する。
【背景技術】
【０００２】
通信装置におけるフィルタリング技術とは、クライアント装置からの要求に応じて所定の処理を実行するサーバ装置やルータなどの通信装置に対する不正アクセス等の攻撃を防御するための技術の一つである。フィルタリング機能を備えた通信装置は、予め定めた条件（例えば、ポート、アドレス、プロトコル等に関する条件）を満たすパケットのみを受け入れ、当該条件を満たさないパケットを破棄する、といった具合である。このようなフィルタリングに関する先行技術としては特許文献１に開示の技術が挙げられる。特許文献１に開示された通信システムでは、送信側の通信装置（以下、「送信装置」と呼ぶ）においてＩＰｖ６に準拠したパケットの拡張ヘッダにフィルタキーを格納してその宛先となる通信装置、すなわち、パケットの受信側の通信装置（以下、「受信装置」と呼ぶ）に送信する。フィルタキーとは、判定対象のパケットについてのネットワーク層よりも上位階層の情報を要約した情報である。受信装置は、受信したパケットからフィルタキーを生成し、生成したフィルタキーと受信したパケットの拡張ヘッダに格納されたフィルタキーとを比較し、両者が一致しない場合にはそのパケットを破棄する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４３３０３４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示された技術では、送信装置と受信装置に予め、フィルタキーの生成ルールを共有させておく必要がある。しかし特許文献１には、この生成ルールについての具体的な共有手順が開示されておらず、実施困難である、といった問題がある。また、受信装置がいわゆるＤｏＳ攻撃を受けた場合や受信パケットがフラグメントパケットである場合には、受信装置に過大な負荷がかかり、受信装置本来の処理の実行に支障を来す場合があるという問題がある。さらに、特許文献１に開示された技術には、ＩＰｖ６に準拠したパケットのみに対応し、ＩＰｖ４に準拠したパケットには対応していないといった問題、すなわち汎用性が低いという問題がある。
【０００５】
この発明は以上のような事情に鑑みてなされたものであり、汎用性が高く、かつ受信装置に過大な負荷を掛けることのないフィルタリング技術を提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本発明は、プロトコル階層毎に予め定められた通信プロトコルにしたがって通信網を介してデータブロックの送受信を行う送信装置と受信装置とを含み、前記送信装置は、前記受信装置側でのフィルタリング条件を満たすデータブロックのヘッダに、当該フィルタリング条件を満たすことを示す識別子を追記して送信する送信手段を有し、前記受信装置は、前記通信網を介して受信したデータブロックのヘッダに前記識別子が格納されているか否かを判定する判定手段と、前記識別子が格納されていた場合に所定の処理を実行する一方、前記識別子が格納されていない場合には当該データブロックを破棄する制御手段とを有することを特徴とする通信システムを提供する。この通信システムにおいて、識別子を送信装置と受信装置の両者の記憶部に記憶させてもよいし、通信網を介して送信装置と受信装置の両者と送受信が可能な記憶装置に識別子を記憶させてもよい。両者の識別子は、同一のものであってもよいし、内容的に同一視できるものであってもよい。内容的に同一視できるとは、例えば送信装置の識別子の情報が受信装置の識別子の情報に含まれることである。さらに、通信網を介して送信装置と受信装置の両者と送受信が可能な記憶装置に識別子が記憶されている場合、送信装置と受信装置の送受信の都度、記憶装置に識別子を問い合わせても良い。
【０００７】
上記通信プロトコルはＩＰｖ４であっても良いし、ＩＰｖ６であっても良い。上記通信プロトコルは、ＩＰｖ４やＩＰｖ６以外のネットワーク層の通信プロトコルであっても良い。また、上記通信プロトコルはネットワーク層よりも下位のプロトコル階層の通信プロトコルであっても良い。本通信システムでは、特定の通信プロトコルを前提としないため、特許文献１に開示の技術に比較して汎用性が高い。加えて、本発明の通信システムにおいては、受信装置は、上記識別子の有無のみを判定対象とするので、ＤｏＳ攻撃を受けた場合や受信パケットがフラグメントパケットであった場合であっても受信装置に過大な負荷がかかることはない。なお、上記識別子の追記先としては、上記通信プロトコルがＩＰｖ４である場合には、ヘッダにおける未使用領域およびＩＰオプションヘッダが考えられる。上記通信プロトコルがＩＰｖ６である場合には、ヘッダにおける未使用領域および拡張ヘッダが考えられる。また、ＩＰｖ４もＩＰｖ６も、すでに使用されているフィールドの解釈を変えることで、このフィールドを使用することもできる。
【０００８】
より好ましい態様において、前記送信手段は、前記フィルタリング条件を満たすデータブロックのヘッダに前記識別子に加えて前記識別子の算出元になった算出元データを追記して送信し、前記判定手段は、受信したデータブロックのヘッダに前記識別子と前記算出元データとが格納されているか否かを判定し、前記制御手段は、前記識別子が格納されており、かつ当該算出元データを用いて算出された値と、当該識別子とが一致する場合に前記所定の処理を実行する。このような態様によれば、上記識別子のみをヘッダに追記する態様に比較してきめ細やかなフィルタリングを実現することが可能になる。
【０００９】
より好ましい態様において、前記識別子は、所定のハッシュ関数により算出されるハッシュ値である。このような態様によれば、ハッシュ関数を用いたフィルタリングを実現することが可能になる。なお、ハッシュ化されるアルゴリズムは事前に同じものを使うことを約束しておいても良いし、接続前に特定のプロトコルによって交換しても良い。
【００１０】
より好ましい態様において、前記送信手段は、前記識別子と前記算出元データを複数のプロトコル階層のうちの互いに異なるプロトコル階層のヘッダに追記して送信する。このような態様によれば、本発明の通信システムにおけるフィルタリングアルゴリズムの第三者による解読が困難になり、不正アクセス等に対する耐性をさらに高めることができる。
【００１１】
また別の好ましい態様において、プロトコル階層毎に予め定められた通信プロトコルにしたがって通信網を介してデータブロックの送受信を行う送信装置と受信装置とを前記通信網に接続するのに先立って、前記受信装置側でのフィルタリング条件を満たすことを示す識別子を両者に記憶させておくステップと、前記送信装置が、前記フィルタリング条件を満たすデータブロックのヘッダに、前記識別子を追記して送信するステップと、前記受信装置が、前記通信網を介して受信したデータブロックのヘッダに前記識別子が格納されているか否かを判定し、格納されていた場合に所定の処理を実行する一方、格納されていない場合には当該データブロックを破棄するステップと、を有することを特徴とする通信方法を提供する。この通信方法では、特定の通信プロトコルを前提としないため、特許文献１に開示の技術に比較して汎用性が高い。加えて、この通信方法においては、受信装置は、上記識別子の有無のみを判定対象とするので、ＤｏＳ攻撃を受けた場合や受信パケットがフラグメントパケットであった場合であっても受信装置に過大な負荷がかかることはない。また、送信装置と受信装置を通信網に接続するのに先立って両者に記憶させておくのは、識別子だけでなく、ハッシュ化するアルゴリズム(番号)や、どのフィールドを見るかなどの情報であってもよい。
【００１２】
また別の好ましい態様において、相手装置側でのフィルタリング条件を満たすデータブロックのヘッダに、前記フィルタリング条件に対応する識別子を追記し、プロトコル階層毎に予め定められた通信プロトコルにしたがって通信網を介して前記データブロックを前記相手装置へ送信する送信手段を有することを特徴とする通信装置を提供する。この通信装置では、特定の通信プロトコルを前提としないため、特許文献１に開示の技術に比較して汎用性が高い。
【００１３】
また別の好ましい態様においては、プロトコル階層毎に予め定められた通信プロトコルにしたがって通信網を介して相手装置から受信したデータブロックのヘッダに、前記データブロックを受信する際のフィルタリング条件に対応する識別子が格納されているか否かを判定する判定手段と、前記判定手段により前記識別子が格納されていると判定された場合に所定の処理を実行する一方、前記判定手段により前記識別子が格納されていないと判定された場合には当該データブロックを破棄する制御手段と、を有することを特徴とする通信装置を提供する。この通信装置では、特定の通信プロトコルを前提としないため、特許文献１に開示の技術に比較して汎用性が高い。加えて、この通信装置では、上記識別子の有無のみを判定対象とするので、ＤｏＳ攻撃を受けた場合や受信パケットがフラグメントパケットであった場合であっても当該通信装置に過大な負荷がかかることはない。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態の通信システム１の構成例を示すブロック図である。
【図２】同通信システム１の送信装置１０２の構成例を示すブロック図である。
【図３】同通信システム１のパケット送信の流れを示すフローチャートである。
【図４】本発明の第２実施形態の通信システム２を説明するための図である。
【図５】本発明の第３実施形態の通信システム３を説明するための図である。
【図６】本発明の第４実施形態の通信システム４の構成例を示すブロック図である。
【図７】同通信システム４を説明するための図である。
【図８】本発明の第５実施形態の通信システム５を説明するための図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しつつ、この発明の実施の形態について説明する。
【００１６】
＜第１実施形態＞
図１は、本発明の第１実施形態の通信システム１の構成例を示す図である。通信システム１では、ＯＳＩ参照モデルに基づいた通信プロトコルに従った通信が行われる。図１に示すように、通信システム１は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０１に各々接続された送信装置１０２と受信装置１０３とを含んでいる。送信装置１０２と受信装置１０３は利用者が操作する端末である。送信装置１０２の利用者が送信装置１０２に対して、受信装置１０３へのパケットの送信を指示すると、送信装置１０２はパケットを生成し受信装置１０３へ送信する。このようにして送信装置１０２から送信されたパケットは受信装置１０３へ伝送される。パケットとは、ネットワーク層におけるデータの送受信単位となるデータブロックのことである。通信システム１では、ネットワーク層の通信プロトコルとしてＩＰｖ４が採用されている。つまり、送信装置１０２と受信装置１０３の間では、ＩＰｖ４に準拠したパケットがＬＡＮ１０１を介して送受信される。本実施形態では、送信装置１０２と受信装置１０３がＬＡＮ１０１に有線接続される場合について説明するが、ＬＡＮ１０１は無線ＬＡＮであってもよい。これは、他の実施形態においても同様である。
【００１７】
送信装置１０２と受信装置１０３は、例えばパーソナルコンピュータやルータ等のネットワーク機器である。両者には受信装置１０３におけるフィルタリング条件に関するデータを格納したテーブルが記憶されている。以下、送信装置１０２に記憶されたテーブルを送信ルールテーブルといい、受信装置１０３に記憶されたテーブルを受信ルールテーブルという。送信ルールテーブルと受信ルールテーブルは、送信装置１０２と受信装置１０３に記憶されているのではなく、例えば送信装置１０２と受信装置１０３以外のネットワーク機器内やＬＡＮ１０１上のサーバ等に記憶されていてもよい。送信ルールテーブルには、条件データと判定条件識別子とが格納されている。条件データとは、受信装置１０３が実施するフィルタリングの条件（本実施形態では、受信を許容するパケットの条件、例えば、送信元のＩＰアドレスや上位層の通信プロトコルに関する条件）を表すデータである。判定条件識別子とは、各フィルタリング条件を一意に識別する識別子（例えば、フィルタリング条件に対応した文字列）であり、条件データ毎に予め異なる値が設定される。一方、受信ルールテーブルには、比較値データと動作定義データとが格納されている。比較値データとは、フィルタリングの条件毎に予め異なる値に設定された比較値を示すデータであり、動作定義データとは、比較値データの示す比較値に対応した受信装置１０３の動作（例えば、パケットに対する応答を返信する等）を定義するデータである。つまり、本実施形態では、１つのフィルタリング条件に対して、判定条件識別子と比較値とがそれぞれ１つずつ対応付けられており、これらの判定条件識別子と比較値は同じ値となっている。なお、受信装置１０３が判定条件識別子と比較値が一致すると比較値に対応した動作を行う場合、受信装置１０３の受信ルールテーブルに動作定義データが格納されていなくてもよい。
【００１８】
従来の通信システムにおける受信装置は、受信装置におけるフィルタリング条件を示す条件データと、当該フィルタリング条件に対応した受信装置の動作を定義する動作定義データとが格納されたフィルタリングテーブルを記憶していた。本実施形態の通信システム１では、このフィルタリングテーブルに格納された条件データと動作定義データの両者を互いに対応付ける識別子を導入し、フィルタリングテーブルを２つのテーブルに分割している。条件データと判定条件識別子を格納したテーブルが送信ルールテーブルであり、上記識別子（すなわち、比較値データ）と動作定義データを格納したテーブルが受信ルールテーブルである。
【００１９】
送信装置１０２は、利用者によって受信装置１０３へのパケットの送信を指示されると、受信装置１０３へ送信するパケットを生成し、当該パケットが送信ルールテーブルに格納されている条件データの示すフィルタリング条件の何れかを満たしているか否かを判断する。そして、当該パケットが何れかのフィルタリング条件を満たしている場合には、送信装置１０２は、該当するフィルタリング条件に対応する判定条件識別子を当該パケットのヘッダに追記して、受信装置１０３に送信する。当該パケットがフィルタリング条件の何れも満たさない場合には、送信装置１０２は、上記判定条件識別子の追記を行わずに当該パケットを受信装置１０３に送信する。
【００２０】
一方、受信装置１０３は、パケットを受信すると、受信したパケットのヘッダに受信ルールテーブルに格納されている比較値データの示す比較値の何れかと一致する判定条件識別子が格納されているか否かを判定する。そして、当該パケットのヘッダに比較値の何れかと一致する判定条件識別子が格納されている場合は、受信装置１０３は、該当する比較値に対応する動作定義データの示す動作を行う。当該パケットのヘッダに判定条件識別子が格納されていない場合やヘッダに格納されている判定条件識別子が比較値の何れとも一致しない場合には、受信装置１０３は、受信したパケットを破棄する。これによりフィルタリングが実現される。
【００２１】
図２は、送信装置１０２の構成例を示すブロック図である。図２に示すように送信装置１０２は、制御部１００、通信インタフェース（以下、「Ｉ／Ｆ」と略記）部１１０、外部機器Ｉ／Ｆ部１２０、記憶部１３０、およびこれら構成要素間のデータ授受を仲介するバス１４０を含んでいる。
【００２２】
制御部１００は例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。制御部１００は記憶部１３０（より正確には不揮発性記憶部１３４）に記憶されている各種プログラムを実行することにより、送信装置１０２の制御中枢として機能する。制御部１００が各種プログラムにしたがって実行する処理の詳細については後に明らかにする。通信Ｉ／Ｆ部１１０は、例えばＮＩＣ（Ｎｅｔｗоｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）であり、ＬＡＮ１０１に接続されている。通信Ｉ／Ｆ部１１０は、ＬＡＮ１０１から送信されてくるデータフレームを受信して制御部１００に与える一方、制御部１００から与えられるデータフレームをＬＡＮ１０１へと送出する。データフレームとはデータリンク層におけるデータの送受信単位となるデータブロックのことである。このデータフレームにはＩＰｖ４に準拠したパケットが内包されている。また、外部機器Ｉ／Ｆ部１２０は、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）である。
【００２３】
記憶部１３０は、図２に示すように、揮発性記憶部１３２と不揮発性記憶部１３４を含んでいる。揮発性記憶部１３２は例えばＲＡＭ（Ｒａｎｄоｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。この揮発性記憶部１３２は各種プログラムを実行する際のワークエリアとして制御部１００によって利用される。不揮発性記憶部１３４は例えばハードディスクである。
【００２４】
不揮発性記憶部１３４には各種プログラムと各種データが記憶されている。不揮発性記憶部１３４に記憶されているプログラムの一例としては、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を制御部１００に実現させるためのＯＳプログラム（図２では図示略）や通信制御プログラム１３４ｂが挙げられる。また、不揮発性記憶部１３４に記憶されているデータの一例としては、送信ルールテーブル１３４ａが挙げられる。制御部１００は、通信制御プログラム１３４ｂを実行することにより送信手段として機能する（図１参照）。これらプログラムやデータの概略は以下の通りである。
【００２５】
送信ルールテーブル１３４ａは、上記で説明した通り、受信装置１０３が実施するパケットフィルタリングの条件を示す条件データと、条件データに対応づけられた判定条件識別子とを含む。ＯＳプログラムは、送信装置１０２の電源（図示略）の投入またはリセットを契機として実行されるプログラムである。ＯＳプログラムにしたがって作動し、ＯＳを実現している状態の制御部１００には、複数のプログラムを並列に実行する機能等が付与される。
【００２６】
通信制御プログラム１３４ｂは、ＩＰｖ４に準拠したデータ通信を制御部１００に行わせるためのプログラムである。ＯＳプログラムの実行を完了しＯＳを実現している状態の制御部１００は、通信制御プログラム１３４ｂを不揮発性記憶部１３４から揮発性記憶部１３２に読み出し、その実行を開始する。通信制御プログラム１３４ｂにしたがって作動している制御部１００には、利用者の指示に応じてパケットを生成し送信する機能や、他の通信装置から送信されたパケットを受信する機能が付与されている。制御部１００は、パケットの送信（本実施形態では、受信装置１０３への送信）を指示されると、受信装置１０３へ送信するパケットを生成し、当該パケットが送信ルールテーブル１３４ａに格納された条件データの示すフィルタリング条件の何れかを満たすか否か判定する。そして、制御部１００は、何れかのフィルタリング条件を満たす場合には、該当するフィルタリング条件に対応する判定条件識別子を送信ルールテーブル１３４ａから読み出し、当該判定条件識別子を当該パケットのヘッダの所定の領域（未使用領域のうちの予め定められた領域）に追記して受信装置１０３に送信する。
【００２７】
以上が送信装置１０２の構成であるが、受信装置１０３の構成も以下の２点を除いて同様である。第１に、不揮発性記憶部１３４に送信ルールテーブル１３４ａに代えて受信ルールテーブル１３４ｃが記憶されている点である（図１参照）。受信ルールテーブル１３４ｃは、上記で説明した通り、比較値を示す比較値データと、比較値データに対応づけられた動作定義データとを含む。第２に、通信制御プログラム１３４ｂにしたがって作動している制御部１００は、通信Ｉ／Ｆ部１１０を介して受信したパケットのヘッダの所定の領域に判定条件識別子が格納されているか否かを判定する判定手段として機能し、格納されており、かつ当該判定条件識別子が受信ルールテーブル１３４ｃに格納されている比較値データの示す比較値の何れかと一致する場合に、該当する比較値に対応する動作を実行し、それ以外の場合には、受信したパケットを破棄する制御手段として機能する点である（図１参照）。
以上が通信システム１の構成である。
【００２８】
次に、通信システム１の動作について、図３を参照しつつ説明する。まず、送信装置１０２と受信装置１０３をＬＡＮ１０１に接続する前に行われる通信システム１の初期設定（ステップＳ１００）について説明する。この初期設定では、通信システム１の運用管理者は、まず、通信線（例えば、ＵＳＢケーブル）を用いて送信装置１０２に受信装置１０３を直接接続する。
【００２９】
次いで、運用管理者は受信装置１０３の外部機器Ｉ／Ｆ１２０にキーボード等の入力装置を接続し、当該入力装置を操作してフィルタリングテーブルを生成する。次いで、運用管理者は、当該フィルタリングテーブルに格納されている各条件データに対して、各フィルタリング条件を一意に示す識別子を割り当て、当該フィルタリングテーブルを送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃの２つのテーブルに分割する。
【００３０】
上記の要領で送信ルールテーブル１３４ａおよび受信ルールテーブル１３４ｃの生成が完了すると、運用管理者は上記入力装置を操作し、前者のテーブルを受信装置１０３から上記通信線経由で送信装置１０２へ送信して当該テーブルを送信装置１０２に記憶させるとともに、後者のテーブルを受信装置１０３に書き込む。これにより、送信装置１０２と受信装置１０３との間のフィルタリング条件の共有が完了する。これにより通信システム１の初期設定は終了する。このようにして初期設定を完了すると、運用管理者は、送信装置１０２と受信装置１０３を接続する通信線を取り外し、両者をＬＡＮ１０１に接続する。また、初期設定では、通信網（ネットワーク）を介して送信装置１０２と受信装置１０３を接続し、運用管理者は、クラウド上のフィルタリングテーブルを受信装置１０３に受信させ、当該フィルタリングテーブルから送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃの２つのテーブルを分割し、前者のテーブルを受信装置１０３から通信網経由で送信装置１０２へ送信してもよい。
【００３１】
次に、通信システム１におけるパケットの伝送過程について説明する。例えば利用者により送信装置１０２が操作され、通信相手である相手装置（本実施形態では、受信装置１０３）へのパケット送信が指示される。送信装置１０２の制御部１００は、まず、受信装置１０３へ送信するパケットを生成する（ステップＳ１０１）。次いで、制御部１００は、ステップＳ１０１で生成したパケットが送信ルールテーブル１３４ａに格納された条件データの示す条件の何れかを満たすか否かを判断する。ステップＳ１０２の判断結果が「ＴＲＵＥ」である場合には、制御部１００は当該パケットのヘッダの所定の領域に、該当する条件に対応する判定条件識別子を追記し（ステップＳ１０３）、パケットをその宛先の通信装置へ送信する（ステップＳ１０４）。一方、ステップＳ１０２の判断結果が「ＦＡＬＳＥ」の場合には、制御部１００は、ステップＳ１０３の処理を実行することなくステップＳ１０４の処理を実行する。
【００３２】
受信装置１０３は、ステップＳ１０５において、送信装置１０２から送信されたパケットを受信する。受信装置１０３の制御部１００は、受信ルールテーブル１３４ｃに示される当該パケットのヘッダの所定の領域に比較値との比較対象となる判定条件識別子が格納されているか否か、格納されていた場合にはさらにその判定条件識別子が受信ルールテーブル１３４ｃに格納された比較値データの示す比較値の何れかと一致するか否かを判定する（ステップＳ１０６）。ステップＳ１０６の判定結果が「ＴＲＵＥ」の場合には、制御部１００は、該当する比較値に対応する動作を行う（ステップＳ１０８）。すなわち、受信装置１０３は、当該パケットに応じた処理を実行する。一方、ステップＳ１０６の判定結果が「ＦＡＬＳＥ」の場合には制御部１００は、ステップＳ１０５にて受信したパケットを破棄する（ステップＳ１０７）。
以上が通信システム１の動作である。
【００３３】
上記識別子（すなわち、判定条件識別子）の追記先はＩＰｖ４に準拠したパケットのヘッダにおける未使用領域の何れであっても良く、ネットワーク層の通信プロトコルとしてＩＰｖ６を採用する場合も同様である。つまり、通信システム１におけるネットワーク層の通信プロトコルはＩＰｖ４であっても良いし、ＩＰｖ６であっても良い。このように通信システム１では、特定の通信プロトコルを前提としないため、特許文献１に開示の技術に比較して汎用性が高い。加えて、通信システム１においては、パケットフィルタリング条件を満たすか否かの判断は送信装置１０２で行われ、上記識別子の有無および比較値との比較のみが受信装置１０３における判定対象であるため、ＤｏＳ攻撃を受けた場合や受信パケットがフラグメントパケットであった場合であっても受信装置１０３に過大な負荷が掛かることはない。つまり、本実施形態によれば、汎用性が高く、かつ受信装置に過大な負荷を掛けることのないフィルタリング技術を提供することができる。なお、初期設定において、送信装置１０２側でフィルタリングテーブルを生成し、当該フィルタリングテーブルを送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃの２つのテーブルに分割し、前者のテーブルを送信装置１０２に書き込み、後者のテーブルを受信装置１０３へ送信して当該テーブルを受信装置１０３に記憶させてもよい。これは、他の実施形態においても同様である。また、送信装置１０２と受信装置１０３がルータの場合、不揮発性記憶部１３４は例えばフラッシュＲＯＭであり、図３のステップＳ１０８では、制御部１００は、送信装置１０２から送信されたパケットを後段に送信する。
【００３４】
＜第２実施形態＞
図４（ａ）は、本発明の第２実施形態の通信システム２の構成例を示す図である。図４（ａ）では、図１におけるものと同一の構成要素には同一の符号が付されている。この通信システム２の構成は、送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃの内容を除いて通信システム１の構成と同様である。本実施形態における送信装置１０２および受信装置１０３も、前述した第１実施形態におけるものと同様にＩＰｖ４に準拠したデータ通信を行う。図４（ａ）に示すように、送信装置１０２に割り当てられているＩＰアドレスは１９２．１６８．１００．１であり、受信装置１０３に割り当てられているＩＰアドレスは１０．０．１．１である。
【００３５】
送信ルールテーブル１３４ａには、ルール１、ルール２、ルール３・・・の各フィルタリング条件を表す条件データが格納されており、ルールｎ（ｎ＝１、２、３・・・）を表す条件データには値ｎを表す判定条件識別子が対応付けられている。同様に受信ルールテーブル１３４ｃには、値１、値２、値３・・・の各比較値を表す比較値データが格納されており、それら比較値データの各々に対応する動作を表す動作定義データが格納されている。本実施形態では、ルールｎを満たすパケットであれば、受信装置１０３による受信が許容されているため、上記動作定義データとして、パケットの受信を許容する旨を表す文字列“ｐａｓｓ”が用いられている。
【００３６】
図４（ｂ）は、送信ルールテーブル１３４ａに格納された条件データの示すルール１の一例を示す図である。このルール１は、以下の（Ｒａ１）〜（Ｒａ５）の条件を満たすパケットは受信装置１０３による受信が許容されていることを表している。
（Ｒａ１）パケットの送信元のＩＰアドレスが１９２．１６８．１００．１であり、かつ同送信先のＩＰアドレスが１０．０．１．１であること
（Ｒａ２）ＩＣＭＰのプロトコルにしたがって送信されたパケットであること
（Ｒａ３）ＩＣＭＰタイプの値が８であり、かつＩＣＭＰコードの値が０のパケットであること（すなわち、エコー要求であること）
（Ｒａ４）パケットのデータサイズは不問であること
（Ｒａ５）上位層のプロトコルがｐｉｎｇであること、なお、ｐｉｎｇにしたがって生成されたパケットであれば上記（Ｒａ２）〜（Ｒａ４）の条件は自ずから満たされる。
【００３７】
図４（ｃ）は、ルール１を示す条件データに対応付けて送信ルールテーブル１３４ａに格納された判定条件識別子の示す値１の一例を示す図である。本実施形態では、ルール１を示す識別子として所定のハッシュ関数（図４（ｃ）に示す例では、ＭＤ５）にしたがって算出されたハッシュ値が用いられている。そして、本実施形態の判定条件識別子には、上記識別子（図４（ｃ）では「ｈａｓｈ」）の他に、上記ハッシュ関数を表すデータ、上記ハッシュ値の算出元となったデータ（図４（ｃ）では「Ｋｅｙｗｏｒｄ  ｏｆ  ｈａｓｈ」）、および送信対象のパケットのヘッダにおけるこれらのデータの格納場所を示すデータ（本実施形態では、「ＩＰ  ＯＰＴＩＯＮ」）が含まれている。
【００３８】
図４（ｄ）は、受信ルールテーブル１３４ｃに格納された比較値データの示す値１の一例を示す図である。この比較値データには、識別子との比較対象となる比較値の算出方法（すなわち、上記「Ｋｅｙｗｏｒｄ  ｏｆ  ｈａｓｈ」に相当する「Ｋｅｙｗｏｒｄ」および所定の「ｓａｌｔ」をＭＤ５に入力して比較値を算出すること）を表すデータ、およびその算出元になるデータの受信パケットのヘッダにおける格納場所を示すデータ（本実施形態では、「ＩＰ  ＯＰＴＩＯＮ」）が含まれている。
【００３９】
利用者が送信装置１０２に受信装置１０３へのＩＣＭＰパケットの送信を指示すると、送信装置１０２は、ＩＣＭＰパケットを生成する。このＩＣＭＰパケットは、ＩＰアドレスが１９２．１６８．１００．１である送信装置１０２からＩＰアドレスが１０．０．１．１である受信装置１０３に送信されるので、（Ｒａ１）の条件を満たす。さらに、このＩＣＭＰパケットが（Ｒａ２）〜（Ｒａ５）の条件を満たす場合、送信装置１０２は、ルール１に対応する判定条件識別子の示す値１にしたがってＩＣＭＰパケットのＩＰヘッダの所定の領域（ＩＰ  ＯＰＴＩＯＮ）に当該ルール１を満たすことを示す識別子（ｈａｓｈ）、その算出に用いたハッシュ関数を表すデータおよび算出元のデータを追記する。そして、送信装置１０２は受信装置１０３に当該ＩＣＭＰパケットを送信する。
【００４０】
受信装置１０３は、ＩＣＭＰパケットを受信すると、当該ＩＣＭＰパケットのＩＰヘッダを参照し、受信ルールテーブル１３４ｃに格納された比較値データの示す格納場所に、比較対象の識別子を表すデータと、当該識別子と比較する比較値の算出に用いるハッシュ関数を表すデータと、当該識別子と比較する比較値の算出元データとが格納されているか否かを判定する。これらのデータが格納されていた場合には、受信装置１０３は、さらに比較値を算出し、当該比較値と当該識別子とが一致するか否かを判定する。以降の動作は第１実施形態におけるものと同様である。
【００４１】
本実施形態においても、ネットワーク層の通信プロトコルは、ＩＰｖ６であっても良い。つまり、本実施形態によっても、汎用性が高く、かつ受信装置に過大な負荷を掛けることのないフィルタリング技術を提供することが可能になる。なお、本実施形態によれば、ルール毎に当該ルールを満たすことを示す識別子の判定対象のパケットにおける格納先を変えることや、ルール毎に当該識別子の算出方法を異ならせることが可能になり、きめ細やかなフィルタリング制御を行うことが可能になる。
【００４２】
＜第３実施形態＞
図５（ａ）は、本発明の第３実施形態の通信システム３の構成例を示す図である。図５（ａ）では、図１におけるものと同一の構成要素には同一の符号が付されている。この通信システム３の構成は、通信システム１の構成と以下の２点を除いて同様である。第１に、送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃの内容が異なる点である。第２に、送信装置１０２と受信装置１０３は、ともにルータであり、送信装置１０２には端末Ａが、受信装置１０３には端末Ｂが接続されている点である。通信システム３では、利用者が端末Ａに対して、端末Ｂへのパケットの送信を指示すると、端末Ａは端末Ｂ宛てのパケットを生成し、当該パケットを送信する。このようにして端末Ａから送信されたパケットは、送信装置１０２および受信装置１０３を介して端末Ｂへ伝送される。
【００４３】
本実施形態における送信装置１０２および受信装置１０３も、前述した第１実施形態におけるものと同様にＩＰｖ４に準拠したデータ通信を行う。図５（ａ）に示すように、送信装置１０２に割り当てられているＩＰアドレスは１９２．１６８．１００．１であり、受信装置１０３に割り当てられているＩＰアドレスは１０．０．１．１である。これらのＩＰアドレスは初期設定用に割り当てられている。前述した初期設定におけるデータ通信では、このＩＰアドレスが利用される。さらに、端末Ａに割り当てられているＩＰアドレスは１９２．１６８．１００．２であり、端末Ｂに割り当てられているＩＰアドレスは１０．０．１．２である。
【００４４】
送信ルールテーブル１３４ａには、ルール１、ルール２、ルール３・・・の各フィルタリング条件を表す条件データが格納されており、ルールｎ（ｎ＝１、２、３・・・）を表す条件データには値ｎを表す判定条件識別子が対応付けられている。同様に受信ルールテーブル１３４ｃには、値１、値２、値３・・・の各比較値を表す比較値データが格納されており、それら比較値データの各々に対応する動作を表す動作定義データが格納されている。本実施形態では、ルールｎを満たすパケットであれば、受信装置１０３による受信が許容されているため、上記動作定義データとして、パケットの受信を許容すること、すなわち受信したパケットをその宛先へ転送することを表す文字列“ｐａｓｓ”が用いられている。
【００４５】
図５（ｂ）は、送信ルールテーブル１３４ａに格納された条件データの示すルール２の一例を示す図である。このルール２は、以下の（Ｒｂ１）〜（Ｒｂ４）の条件を満たすパケットは受信装置１０３による受信が許容されていることを表している。
（Ｒｂ１）パケットの送信元のＩＰアドレスが１９２．１６８．１００．０／２４に含まれ、かつ同送信先のＩＰアドレスが１０．０．１．０／２４に含まれること
（Ｒｂ２）ＴＣＰにしたがって送信されたＳＹＮパケットであること
（Ｒｂ３）パケットの送信元のポート番号は不問であるが、送信先のポート番号は２３であること
（Ｒｂ４）パケットのデータサイズは不問であること
【００４６】
図５（ｃ）は、ルール２を示す条件データに対応付けて送信ルールテーブル１３４ａに格納された判定条件識別子の示す値２の一例を示す図である。本実施形態では、ルール２を示す識別子として、端末Ａと端末Ｂの利用者が属するグループ名（図５（ｃ）に示す例では、「ＮｅｔｗоｒｋＤｅｖ１ｇｒоｕｐ１」）が用いられている。本実施形態の判定条件識別子には、上記識別子の他に、判定対象のパケットのヘッダにおける上記識別子の格納場所（本実施形態では、「ＴＣＰ  ＯＰＴＩＯＮ」）を示すデータが含まれている。
【００４７】
図５（ｄ）は、受信ルールテーブル１３４ｃに格納された比較値データの示す値２の一例を示す図である。この比較値データには、識別子との比較対象の比較値と、受信パケットのヘッダにおける当該識別子の格納場所（本実施形態では、「ＴＣＰ  ＯＰＴＩＯＮ」）を示すデータが含まれている。
【００４８】
利用者が端末Ａに端末ＢへのＴＥＬＮＥＴ接続を指示すると、端末Ａは、ＴＥＬＮＥＴ接続を要求するＳＹＮパケットを生成する。このパケットは、ＩＰアドレスが１９２．１６８．１００．２である端末ＡからＩＰアドレスが１０．０．１．２である端末Ｂに送信されるので、（Ｒｂ１）の条件を満たす。さらに、このパケットが（Ｒｂ２）〜（Ｒｂ４）の条件を満たす場合、送信装置１０２は、端末Ａから当該パケットを受信すると、ルール２に対応する判定条件識別子の示す値２にしたがって当該パケットのヘッダの所定の領域（ＴＣＰ  ＯＰＴＩＯＮ）に当該ルール２を満たすことを示す識別子（ＮｅｔｗоｒｋＤｅｖ１ｇｒоｕｐ１）を追記する。そして、送信装置１０２は受信装置１０３に当該パケットを送信する。
【００４９】
受信装置１０３は、送信装置１０２を介して端末Ａから送信されたパケットを受信すると、当該パケットのヘッダを参照し、受信ルールテーブル１３４ｃに格納された比較値データの示す格納場所に同比較値データの示す比較値と一致する識別子が格納されているか否かを判定する。本実施形態では、この判定結果は「ＹＥＳ」となり、受信装置１０３は、当該パケットを、その宛先、すなわち端末Ｂへ転送する。
【００５０】
本実施形態においても、ネットワーク層の通信プロトコルは、ＩＰｖ６であっても良い。つまり、本実施形態によっても、汎用性が高く、かつ中継装置に過剰な負荷を掛けることのないフィルタリング技術を提供することが可能になる。
【００５１】
＜第４実施形態＞
図６は、本発明の第４実施形態の通信システム４の構成例を示す図である。図６では、図１におけるものと同一の構成要素には同一の符号が付されている。通信システム４の構成は、通信システム１の構成と以下の３つの点を除いて同様である。第１に、送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃの内容が異なる点である。第２に、図６に示すように、中継装置１０４が送信装置１０２と受信装置１０３の間に設けられ、送信装置１０２と中継装置１０４はＬＡＮ１０５に接続され、受信装置１０３と中継装置１０４はＬＡＮ１０６に接続されている点である。そして、第３に、本実施形態の受信装置１０３は、ＤＮＳサーバである点である。
【００５２】
本実施形態における送信装置１０２および受信装置１０３は、前述した第１実施形態とは異なり、ＩＰｖ６に準拠したデータ通信を行う。中継装置１０４は、ＩＰｖ６に準拠したパケットの中継を行うルータであるが、ＬＡＮ１０５を経由して送信装置１０２から送信されたパケットのＦｌоｗ  Ｌａｂｅｌの値によってパケットを破棄したり、別の値に書き換えたりせずに、当該パケットをＬＡＮ１０６経由で受信装置１０３に転送する点がＩＰｖ６に準拠した一般的なルータと異なる。
【００５３】
図７（ａ）は、本発明の第４実施形態の通信システム４の構成例を示す図である。図７（ａ）に示すように、ＬＡＮ１０５において、送信装置１０２に割り当てられているＩＰアドレスはａ：：１であり、中継装置１０４に割り当てられているＩＰアドレスはａ：：１０である。さらに、ＬＡＮ１０６において、中継装置１０４に割り当てられているＩＰアドレスはｂ：：１０であり、受信装置１０３に割り当てられているＩＰアドレスはｂ：：１である。
【００５４】
送信ルールテーブル１３４ａには、ルール１、ルール２、ルール３・・・の各フィルタリング条件を表す条件データが格納されており、ルールｎ（ｎ＝１、２、３・・・）を表す条件データには値ｎを表す判定条件識別子が対応付けられている。同様に受信ルールテーブル１３４ｃには、値１、値２、値３・・・の各比較値を表す比較値データが格納されており、それら比較値データの各々に対応する動作を表す動作定義データが格納されている。本実施形態では、ルールｎを満たすパケットであれば、受信装置１０３による受信が許容されているため、上記動作定義データとして、パケットの受信を許容する旨を表す文字列“ｐａｓｓ”が用いられている。
【００５５】
図７（ｂ）は、送信ルールテーブル１３４ａに格納された条件データの示すルール１の一例を示す図である。このルール１は、以下の（Ｒｃ１）〜（Ｒｃ５）の条件を満たすパケットは受信装置１０３による受信が許容されていることを表している。
（Ｒｃ１）パケットの送信元のＩＰアドレスがａ：：１に含まれ、かつ同送信先のＩＰアドレスがｂ：：１に含まれること
（Ｒｃ２）ＵＤＰにしたがって送信されたパケットであること
（Ｒｃ３）パケットの送信元のポート番号は不問であるが、送信先のポート番号は５３であること
（Ｒｃ４）パケットのデータサイズは不問であること
（Ｒｃ５）上位層のプロトコルがＤＮＳであること、なお、ＤＮＳにしたがって生成されたパケット、すなわちドメイン名からＩＰアドレスの変換（以下、名前解決と呼ぶ）を要求するパケットであれば上記（Ｒｃ２）〜（Ｒｃ４）の条件は自ずから満たされる。
【００５６】
図７（ｃ）は、ルール１を示す条件データに対応付けて送信ルールテーブル１３４ａに格納された判定条件識別子の示す値１の一例を示す図である。本実施形態では、ルール１を示す識別子として文字列（図７（ｃ）に示す例では、「０ｘ１２３４５」）が用いられている。本実施形態の判定条件識別子には、上記識別子の他に、判定対象のパケットのＩＰｖ６ヘッダにおける上記識別子の格納場所（本実施形態では、「Ｆｌｏｗ  Ｌａｂｅｌ」）を示すデータが含まれている。
【００５７】
図７（ｄ）は、受信ルールテーブル１３４ｃに格納された比較値データの示す値１の一例を示す図である。この比較値データには、識別子との比較対象の比較値と、受信パケットのＩＰｖ６ヘッダにおける当該識別子の格納場所（本実施形態では、「Ｆｌｏｗ  Ｌａｂｅｌ」）を示すデータが含まれている。
【００５８】
利用者が送信装置１０２に対して、ある通信装置（送信装置１０２ではなく、受信装置１０３でもない通信装置）の名前解決を指示すると、送信装置１０２は、名前解決要求を含むＵＤＰパケットを生成する。このＵＤＰパケットは、ＩＰアドレスがａ：：１である送信装置１０２からＩＰアドレスがｂ：：１である受信装置１０３に送信されるので、（Ｒｃ１）の条件を満たす。さらに、このＵＤＰパケットは、名前解決を要求するパケットであるので、前述の通り、（Ｒｃ２）〜（Ｒｃ５）の条件を満たす。そのため、送信装置１０２は、ルール１に対応する判定条件識別子の示す値１にしたがってＵＤＰパケットのＩＰｖ６ヘッダの所定の領域（Ｆｌｏｗ  Ｌａｂｅｌ）に当該ルール１を満たすことを示す識別子（０ｘ１２３４５）を追記する。そして、送信装置１０２は受信装置１０３に当該ＵＤＰパケットを送信する。このようにして送信装置１０２から受信装置１０３へ宛てて送信されたＵＤＰパケットは、中継装置１０４による中継を経て、その宛先（すなわち、受信装置１０３）に到達する。なお、中継装置１０４はＦｌｏｗ  Ｌａｂｅｌを参照しないため、Ｆｌｏｗ  Ｌａｂｅｌに識別子が格納されていることに起因する誤動作が発生することはない。
【００５９】
受信装置１０３は、上記の要領でＵＤＰパケットを受信すると、当該ＵＤＰパケットのＩＰｖ６ヘッダを参照し、受信ルールテーブル１３４ｃに格納された比較値データの示す格納場所に同比較値データの示す比較値と一致する識別子が格納されているか否かを判定する。以降の動作は第１実施形態におけるものと同様である。すなわち、受信装置１０３は、受信したＵＤＰパケットに何れかの比較値と一致する判定条件識別子が格納されていた場合、名前解決要求に応答するパケットを生成する。この場合、当該パケットのＦｌоｗ  Ｌａｂｅｌに０を格納してもよい。これは、当該パケットが中継装置１０４以外のＦｌｏｗ  Ｌａｂｅｌ対応のルータを経由したとしても、誤動作が発生しないようにするためである。
【００６０】
中継装置１０４を挟んだ本実施形態においても、ネットワーク層の通信プロトコルは、ＩＰｖ４であっても良い。つまり、本実施形態によっても、汎用性が高く、かつ受信装置に過剰な負荷を掛けることのないフィルタリング技術を提供することが可能になる。通信プロトコルがＩＰｖ４の場合は、上記識別子の格納場所として、ＩＰヘッダの未使用領域を用いる、或いはすでに使用されているフィールドの解釈を変えることで、このフィールドを使用すればよい。
【００６１】
＜第５実施形態＞
図８（ａ）は、本発明の第５実施形態の通信システム５の構成例を示す図である。通信システム５は、例えばストリーミング配信サービスに用いられる。図８（ａ）では、図１におけるものと同一の構成要素には同一の符号が付されている。この通信システム５の構成は、送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃの内容を除いて通信システム１の構成と同様である。本実施形態における送信装置１０２および受信装置１０３は、前述した第１実施形態におけるものと異なり、ＩＰｖ６に準拠したデータ通信を行う。図８（ａ）に示すように、送信装置１０２に割り当てられているＩＰアドレスはａ：：１であり、受信装置１０３に割り当てられているＩＰアドレスはｂ：：１である。本実施形態の受信装置１０３は、Ｗｅｂサーバの機能を有していればよく、例えばルータであってもよい。
【００６２】
送信ルールテーブル１３４ａには、ルール１、ルール２、ルール３・・・の各フィルタリング条件を表す条件データが格納されており、ルールｎ（ｎ＝１、２、３・・・）を表す条件データには値ｎを表す判定条件識別子が対応付けられている。同様に受信ルールテーブル１３４ｃには、値１、値２、値３・・・の各比較値を表す比較値データが格納されており、それら比較値データの各々に対応する動作を表す動作定義データが格納されている。本実施形態では、ルールｎを満たすパケットであれば、受信装置１０３による受信が許容されているため、上記動作定義データとして、パケットの受信を許容すること、すなわち受信したパケットをその宛先へ転送することを表す文字列“ｐａｓｓ”が用いられている。
【００６３】
図８（ｂ）は、送信ルールテーブル１３４ａに格納された条件データの示すルール２の一例を示す図である。このルール２は、以下の（Ｒｄ１）〜（Ｒｄ５）の条件を満たすパケットは受信装置１０３による受信が許容されていることを表している。
（Ｒｄ１）パケットの送信元のＩＰアドレスがａ：：１に含まれ、かつ同送信先のＩＰアドレスがｂ：：１に含まれること
（Ｒｄ２）ＴＣＰにしたがって送信されたパケットであること
（Ｒｄ３）パケットの送信元のポート番号は不問であるが、送信先のポート番号は８０であること
（Ｒｄ４）パケットのデータサイズは不問であること
（Ｒｄ５）上位層のプロトコルがＨＴＴＰであること、なお、ＨＴＴＰにしたがって生成されたパケットであれば上記（Ｒｄ２）〜（Ｒｄ４）の条件は自ずから満たされる。
【００６４】
図８（ｃ）は、ルール２を示す条件データに対応付けて送信ルールテーブル１３４ａに格納された判定条件識別子の示す値２の一例を示す図である。本実施形態では、ルール２を示す識別子としてストリーミングの配信を示すＵＲＬ（図８（ｃ）に示す例では、「ｈｔｔｐ：／／ｗｗｗ．ｊｐ．ｙａｍａｈａ．ｃоｍ」）と、ストリーミングのカテゴリーを示す文字列（図８（ｃ）に示す例では、「Ｍｕｓｉｃ  ｉｎｓｔｒｕｍｅｎｔｓ」）と、セキュリティレベル（図８（ｃ）に示す例では、「３０」）が用いられている。なお、ＵＲＬとカテゴリーは、ストリーミング配信サービスの利用開始時に送信装置１０２の利用者によって指定され、セキュリティレベルは予め設定された固定値である。固定値は、例えば外部データベースのＵＲＬコンテンツフィルタサーバが有するキーワードであってもよい。本実施形態の判定条件識別子には、上記識別子の他に、判定対象のパケットのＩＰｖ６ヘッダにおける上記識別子の格納場所（本実施形態では、「ｅｘｔｅｎｓｉоｎ  ｈｅａｄｅｒ」）を示すデータが含まれている。
【００６５】
図８（ｄ）は、受信ルールテーブル１３４ｃに格納された比較値データの示す値２の一例を示す図である。この比較値データには、識別子との比較対象の比較値と、受信パケットのヘッダにおける当該識別子の格納場所（本実施形態では、「ｅｘｔｅｎｓｉоｎ  ｈｅａｄｅｒ」）を示すデータが含まれている。
【００６６】
利用者が送信装置１０２にサービスの利用指示を与えると、送信装置１０２は、ＴＣＰパケットを生成する。このＴＣＰパケットは、ＩＰアドレスがａ：：１である送信装置１０２からＩＰアドレスがｂ：：１である受信装置１０３に送信されるので、（Ｒｄ１）の条件を満たす。さらに、このＴＣＰパケットは、ＨＴＴＰにしたがって生成されたパケットであるので、前述の通り、（Ｒｄ２）〜（Ｒｄ５）の条件を満たす。そのため、送信装置１０２は、ルール１に対応する判定条件識別子にしたがってＴＣＰパケットのヘッダの所定の領域（ｅｘｔｅｎｓｉоｎ  ｈｅａｄｅｒ）に当該ルール１を満たすことを示す識別子（「ｈｔｔｐ：／／ｗｗｗ．ｊｐ．ｙａｍａｈａ．ｃоｍ」、「Ｍｕｓｉｃ  ｉｎｓｔｒｕｍｅｎｔｓ」、「３０」）を追記する。そして、送信装置１０２は受信装置１０３に当該ＴＣＰパケットを送信する。
【００６７】
受信装置１０３は、ＴＣＰパケットを受信すると、当該ＴＣＰパケットのＩＰｖ６ヘッダを参照し、受信ルールテーブル１３４ｃに格納された比較値データの示す格納場所に比較対象の識別子が格納されているか否かを判定する。格納されていた場合、格納された識別子の中でＵＲＬが禁止リストに含まれているか否かを判定する。受信装置１０３は、ＵＲＬが禁止リストに含まれている場合、当該ＴＣＰパケットを破棄し、禁止リストに含まれていない場合、当該ＴＣＰパケットの識別子のカテゴリーが禁止リストに含まれているか否かを判定する。受信装置１０３は、カテゴリーが禁止リストに含まれている場合、当該ＴＣＰパケットを破棄し、禁止リストに含まれていない場合、さらに当該ＴＣＰパケットのセキュリティレベルが１６以上であるか否かを判定する。受信装置１０３は、セキュリティレベルが１６以上でない場合、当該ＴＣＰパケットを破棄し、１６以上である場合、当該ＴＣＰパケットをその宛先へ転送する。本実施形態では、ＵＲＬとカテゴリーは禁止リストに含まれておらず、セキュリティレベルは１６以上であるため、受信装置１０３は、当該ＴＣＰパケットをその宛先へ転送する。
【００６８】
本実施形態では、通信プロトコルに関するフィルタリング条件を満たすか否かの判断は送信装置１０２で行われ、禁止リストに含まれたＵＲＬであるか否か等の判断は受信装置１０３で行われる。このため、両者の判断を受信装置１０３で行う従来技術に比較して受信装置１０３に掛かる負荷を低く抑えることができる。また、本実施形態においても、ネットワーク層の通信プロトコルは、ＩＰｖ４であっても良い。つまり、本実施形態によっても、汎用性が高く、かつ受信装置に過剰な負荷を掛けることのないフィルタリング技術を提供することが可能になる。通信プロトコルがＩＰｖ４の場合は、上記識別子の格納場所として、ＩＰヘッダの未使用領域を用いる、或いはすでに使用されているフィールドの解釈を変えることで、このフィールドを使用すればよい。
【００６９】
＜変形例＞
以上、本発明の一実施形態について説明したが、この実施形態を以下のように変形しても良い。
【００７０】
（１）第２実施形態では、識別子としてハッシュ値を用いていたが、これを第３〜第５実施形態に用いてもよい。ハッシュ値を用いた方が、通信システムにおけるフィルタリングアルゴリズムの第三者による解読が困難になり、不正アクセス等に対する耐性を高めることができる。また、ハッシュ値の算出に用いるハッシュ関数はＭＤ５に限られず、他のハッシュ関数を用いてもよい。なお、ハッシュ値の算出にｓａｌｔを用いなくてもよい。
【００７１】
（２）上記実施形態では、送信装置１０２は、パケットのヘッダに送信ルールテーブル１３４ａに格納された判定条件識別子を追記し、受信装置１０３は、パケットのヘッダにおいて比較値データの示す比較値が格納されているか否かを判定していた。しかし、送信装置１０２と受信装置１０３の間のデータ通信を規定する複数のプロトコル階層のうちの互いに異なるプロトコル階層のヘッダに判定条件識別子を追記する態様をとってもよい。例えば、第２実施形態では、送信装置１０２が識別子であるハッシュ値と算出元データとを、ＩＣＭＰパケットのＩＰヘッダと当該パケットを内包したフレームのヘッダに各々追記してもよい。この態様では、受信装置１０３は、ネットワーク層およびデータリンク層の各ヘッダにハッシュ値と算出元データとが格納されているか否かを判定する。他にも例えば、第４実施形態では、ＵＲＬ、カテゴリー、セキュリティレベルを互いに異なるプロトコル階層のヘッダに追記してもよい。これらの態様によれば、通信システムにおけるフィルタリングアルゴリズムの第三者による解読が困難になり、不正アクセス等に対する耐性をさらに高めることができる。
【００７２】
（３）上記実施形態では、通信システムの初期設定において、通信線により送信装置１０２と受信装置１０３を直接接続し、受信装置１０３が生成した送信ルールテーブル１３４ａを送信装置１０２に通信線経由で送信した。しかし、送信装置１０２と受信装置１０３を直接接続する通信線の代わりに、ＵＳＢメモリなどの記憶装置を介してデータを授受する態様をとってもよい。また、受信装置１０３は、送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃを生成せず、ＵＳＢメモリに運用管理者が予め生成した送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃが格納されている態様をとってもよい。この態様では、ＵＳＢメモリを送信装置１０２に接続し、ＵＳＢメモリに格納された送信ルールテーブル１３４ａを読み出して記憶する処理を送信装置１０２に実行させた後に、当該ＵＳＢメモリを受信装置１０３に接続し、ＵＳＢメモリに格納された受信ルールテーブル１３４ｃを読み出して記憶する処理を受信装置１０３に実行させる。この態様であっても、送信装置１０２と受信装置１０３でルールを共有して、フィルタリングを実現することができる。また、受信装置１０３は、送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃを生成せず、送信ルールテーブル１３４ａと受信ルールテーブル１３４ｃが格納されたサーバから通信線を介して両者を取得する態様をとってもよい。
【００７３】
（４）上記実施形態では、送信装置１０２と受信装置１０３がセットになった通信システムとして提供していたが、送信装置１０２と受信装置１０３を単体で提供する態様をとってもよい。また、通信制御プログラム１３４ｂを単体で提供してもよい。一般的なコンピュータ（ＣＰＵ）を通信制御プログラム１３４ｂにしたがって作動させることで、当該コンピュータを本発明の通信装置（送信装置１０２、あるいは受信装置１０３）として機能させることができるからである。なお、通信制御プログラム１３４ｂの具体的な提供態様としては、ＣＤ−ＲＯＭなどのコンピュータ読み取り可能な記憶媒体に書き込んで提供する態様や、インターネットなどの電気通信回線経由のダウンロードにより配布する態様が考えられる。
【符号の説明】
【００７４】
１，２，３，４，５……通信システム、１０１，１０５，１０６……ＬＡＮ、１０２……送信装置、１０３……受信装置、１０４……中継装置、１００……制御部、１１０……通信Ｉ／Ｆ部、１２０……外部機器Ｉ／Ｆ部、１３０……記憶部、１３２……揮発性記憶部、１３４……不揮発性記憶部、１３４ａ……送信ルールテーブル、１３４ｂ……通信制御プログラム、１３４ｃ……受信ルールテーブル、１４０……バス、Ａ……端末、Ｂ……端末。
【図１】
0006724367.tif 000002
【図２】
0006724367.tif 000003
【図３】
0006724367.tif 000004
【図４】
0006724367.tif 000005
【図５】
0006724367.tif 000006
【図６】
0006724367.tif 000007
【図７】
0006724367.tif 000008
【図８】
0006724367.tif 000009