図1に、本発明の実施形態の例の通信中継装置を含む通信システムの構成の例を示す。図1のLAN30は、ウイルスチェックGW(ゲートウエイ)10−0,10−1,10−2(以下、「ウイルスチェックGW10」と総称することもある)及びウイルスチェックGW10に接続されたクライアント端末20−1,20−2,20−3(以下、「クライアント端末20」と総称することもある)を含んで構成される。LAN30は、ウイルスチェックGW10−0によりインターネット40に接続される。ウイルスチェックGW10は、本発明の実施形態の例の通信中継装置として機能する。クライアント端末20は、LAN30内の他のクライアント端末20と通信したり、インターネット40上のサーバなどを利用したりする端末装置である。図1の例では、クライアント端末20は、PC(Personal Computer)である。
なお、図1では図示を省略するが、インターネット40には、webページの表示や情報の配信などの各種のサービスを提供するサーバ及びこれらのサービスを利用するクライアント端末など、不特定の装置が接続される。これに対して、LAN30は、管理者により管理される特定の装置により構成される。
また、図1に示す「10.0.x.x」の形式の数値は、各クライアント端末20及び各ウイルスチェックGW10の各通信インタフェース(eth0,eth1,eth2)のIP(Internet Protocol)アドレスを表す。
図2は、ウイルスチェックGW10の内部構成の概略の例を示すブロック図である。ウイルスチェックGW10は、通信インタフェース100、パケット受信部110、パケット送信部120、ルーティングテーブル記憶部130、信頼情報記憶部140、信頼情報生成部150、信頼情報送信部160、信頼情報登録部170、中継処理部180、及びウイルス定義情報記憶部190を備える。
通信インタフェース100は、ウイルスチェックGW10と他の装置との間の通信を可能とするインタフェースである。通信インタフェース100は、ウイルスチェックGW10に直接接続される装置のそれぞれとの間の通信を担当する複数の通信インタフェース100a,100b,100c,・・・を含む。1つの通信インタフェース100で受信した情報を、その送信先(宛先)に応じて他の1つの通信インタフェース100から送信することで、ウイルスチェックGW10は、複数の通信インタフェース100にそれぞれ接続された複数の装置の間の通信を中継する。なお、図2に例示する通信インタフェース100a,100b,100cは、それぞれ、図1に例示する通信インタフェースeth0,eth1,eth2に対応する。
パケット受信部110は、通信インタフェース100を介して他の装置からパケット(通信情報の単位)を受信する。パケットは、通信情報の実質的な内容を含むデータ部分と、パケットの送信元及び宛先のアドレスと、を含む。パケット受信部は、受信したパケットの宛先に応じて、信頼情報登録部170又は中継処理部180に受信したパケットを渡す。
パケット送信部120は、通信インタフェース100を介して他の装置に対してパケットを送信する。パケット送信部120は、送信対象のパケットの宛先に応じて決定された通信インタフェース100を用いてパケットを送信する。
ルーティングテーブル記憶部130は、ルーティングテーブルを記憶する。ルーティングテーブルは、送信対象のパケットの宛先に応じて当該パケットの送信に用いる通信インタフェース100を決定するための情報テーブルである。ルーティングテーブルの内容は、管理者などによって設定及び更新される。また、ルーティングテーブルの内容は、他の装置からの通信情報の内容に応じて更新されることもある。
図3A,図3B,図3Cに、ルーティングテーブルの内容の例を示す。図3A,図3B,図3Cは、それぞれ、図1の例のLAN30を構成するウイルスチェックGW10−0,10−1,10−2が備えるルーティングテーブル記憶部130に記憶されたルーティングテーブルの例である。
図3A〜図3Cの各表は、送信対象のパケットの宛先が「宛先ネットワーク」で表されるネットワークのアドレスである場合に、対応する「インタフェース」で表される通信インタフェース100を用いて、対応する「ゲートウエイ」で表される装置に対して当該パケットを送信することを表す。宛先ネットワークの項目の「10.0.x.0/24」の形式の数値は、ネットワークのアドレスを表し、図1に示すIPアドレスのいずれかを含む。また、宛先ネットワークが「default」である行の情報は、各ルーティングテーブルに登録された他の宛先ネットワークの値のいずれにも該当しない宛先を有するパケットに対して適用される。また、ゲートウエイの項目の「10.0.x.x」の形式の数値は、図1に示すIPアドレスに対応し、自装置に接続された他のウイルスチェックGW10(つまり、他の通信中継装置)の通信インタフェース(eth0など)のIPアドレスを表す。ゲートウエイの「connected」の値は、対応する宛先ネットワークが表すネットワークに自装置が他の通信中継装置を介さずに直接接続されていることを表す。また、図3Aの表において、宛先ネットワークが「default」である行のゲートウエイの項目の値「x.x.x.x」は、インターネット40に含まれる通信中継装置のIPアドレスを表す。なお、図3A〜図3Cの各表において、インタフェースの項目の値は、図1及び図2に例示する各ウイルスチェックGW10の通信インタフェースeth0,eth1,eth2のいずれかを表す。
例えば図1及び図3Aを参照し、ウイルスチェックGW10−0において、クライアント端末20−1のIPアドレス「10.0.1.2」を宛先とするパケットは、図3Aの表の宛先ネットワーク「10.0.1.0/24」に対応するインタフェース「eth1」を用いて、ウイルスチェックGW10−0の通信インタフェースeth1に直接接続されたクライアント端末20−1に対して送信される。また例えば、図1及び図3Bを参照し、ウイルスチェックGW10−1において、インターネット40を介して接続された装置(図示しない)のIPアドレスを宛先とするパケットは、図3Bの表の宛先ネットワーク「default」に対応するインタフェース「eth0」を用いて、ゲートウエイ「10.0.2.1」のIPアドレスが表すウイルスチェックGW10−0の通信インタフェースeth2に対して送信される。このパケットを受信したウイルスチェックGW10−0において、さらに、宛先ネットワーク「default」に対応するインタフェース「eth0」を用いて、インターネット40に含まれる通信中継装置(ゲートウエイ「x.x.x.x」)に対して当該パケットが送信される。
再び図2を参照し、信頼情報記憶部140は、通信において信頼してよい装置を表す信頼情報を記憶する。ここで、「信頼してよい装置」とは、ウイルスチェックGW10との間で図2の例の構成を有する他のウイルスチェックGW10を介して通信を行う装置のうち、その装置を宛先とするパケットについて当該他のウイルスチェックGW10においてウイルスチェックが行われる装置を意味する。本実施形態の例では、信頼情報は、ネットワークのアドレスとして表され、当該ネットワークに含まれる装置を「信頼してよい装置」とする。
図4A,図4B,図4Cに、信頼情報の内容の例を示す。図4A,図4B,図4Cは、それぞれ、図1に例示するウイルスチェックGW10−0,10−1,10−2が備える信頼情報記憶部140に記憶される信頼情報の内容の例である。一例として図4Aを参照し、ウイルスチェックGW10−0の信頼情報は、「10.0.3.0/24」,「10.0.4.0/24」,「10.0.5.0/24」の3つのネットワークのアドレスを含む。図1のLAN30の構成を参照すると、「10.0.3.0/24」及び「10.0.4.0/24」のネットワークに含まれる装置(クライアント端末20−2、ウイルスチェックGW10−2)は、ウイルスチェックGW10−1を介してウイルスチェックGW10−0と通信する。また、「10.0.5.0/24」のネットワークに含まれる装置(クライアント端末20−3)は、ウイルスチェックGW10−1,10−2を介してウイルスチェックGW10−0と通信する。
図2の説明に戻り、信頼情報生成部150は、信頼情報を生成する。本実施形態の例において、信頼情報生成部150は、ルーティングテーブル記憶部130に記憶されたルーティングテーブルを参照し、インターネット40を介して接続された装置との間の通信に用いられる通信インタフェース100の他の通信インタフェース100に対応する宛先ネットワークのアドレスを取得する。そして、取得したアドレスを信頼情報とする。インターネット40を介して接続された装置との間の通信に用いられる通信インタフェース100(以下、「インターネット側の通信インタフェース」と呼ぶ)は、例えば、ルーティングテーブルを参照して、インターネット40を介して接続された装置のIPアドレスを宛先とするパケットの送信に用いられる通信インタフェース100を求めることで特定すればよい。図3A〜図3Cに例示するルーティングテーブルの場合、ゲートウエイの項目の値が「default」である行のインタフェースの項目で現される通信インタフェース100がインターネット側の通信インタフェース100である。図3A〜図3Cの例では、いずれも、インターネット側の通信インタフェースは「eth0」である。よって、図3A〜図3Cにそれぞれ対応するウイルスチェックGW10−0,10−1,10−2の信頼情報生成部150が生成する信頼情報は、図3A〜図3Cの各表において、インタフェースの項目の値が「eth0」でない行の宛先ネットワークの値(破線で囲んだアドレス)を含むものとなる。
なお、本実施形態の例では、インターネット側の通信インタフェース100を「上流」の通信インタフェース100と呼び、インターネット側の通信インタフェース100の他の通信インタフェース100を「下流」の通信インタフェース100と呼ぶ。また、あるウイルスチェックGW10の上流の通信インタフェース100によって接続された装置を当該ウイルスチェックGW10に対して「上流の装置」と呼び、当該ウイルスチェックGW10の下流の通信インタフェース100によって接続された装置を当該ウイルスチェックGW10に対して「下流の装置」と呼ぶ。
信頼情報生成部150は、以上で説明したように生成した信頼情報を信頼情報送信部160に渡す。
信頼情報送信部160は、信頼情報生成部150から取得した信頼情報を、信頼情報の宛先として予め設定されたIPアドレスであってインターネット40を介して接続された装置のIPアドレス宛に送信する。信頼情報の宛先となるIPアドレスは、LAN30に含まれる複数のウイルスチェックGW10のそれぞれにおいて共通のアドレスを予め設定しておく。このIPアドレスは、インターネット40を介してLAN30に接続される装置のIPアドレスであればよい。例えば、LAN30の管理者が管理するインターネット40上のサーバ装置のIPアドレスであってよい。信頼情報送信部160は、例えば、前述の予め設定されたIPアドレスを宛先とし、自装置(ウイルスチェックGW10)の上流の通信インタフェース100のIPアドレスを送信元とし、信頼情報生成部150から取得した信頼情報をデータ部分に含むパケットを生成して、生成したパケットをパケット送信部120に渡す。この信頼情報を含むパケットは、パケット送信部120により、上流の通信インタフェース100を用いて送信される。
なお、本実施形態の例では、信頼情報生成部150及び信頼情報送信部160は、上述の処理を予め設定された時間間隔で繰り返し実行する。
信頼情報登録部170は、他のウイルスチェックGW10の信頼情報送信部160によって上述のように送信された信頼情報をウイルスチェックGW10で受信した場合に、受信した信頼情報を信頼情報記憶部140に登録する。例えば、パケット受信部110は、信頼情報の宛先として予め設定されたIPアドレスを宛先とするパケットを受信すると、当該パケットを信頼情報登録部170に渡す。このパケットのデータ部分には、他のウイルスチェックGW10の信頼情報生成部150が生成した信頼情報が含まれる。信頼情報登録部170は、パケット受信部110から渡されたパケットから信頼情報を抽出して信頼情報記憶部140に登録する。このとき、信頼情報登録部170は、信頼情報を信頼情報記憶部140に登録した時刻を保持しておく。
なお、本実施形態の例の信頼情報登録部170は、信頼情報の登録の後、パケット受信部110から渡されたパケットを破棄する。したがって、本実施形態の例において、1つのウイルスチェックGW10で生成されて送信された信頼情報のパケットは、上流のウイルスチェックGW10で受信されて信頼情報の登録が行われると、さらに上流の装置に対して送信されることはない。
以下、信頼情報記憶部140への信頼情報の登録の具体例を説明する。図1のウイルスチェックGW10−2で生成される信頼情報「10.0.5.0/24」(図3C参照)は、インターネット40上の予め設定されたIPアドレスを宛先として送信され、ウイルスチェックGW10−1で受信される。そして、この信頼情報は、ウイルスチェックGW10−1において、信頼情報登録部170によって信頼情報記憶部140に登録される(図4B参照)。また例えば、図1のウイルスチェックGW10−1で生成されてインターネット40上のIPアドレス宛に送信される信頼情報「10.0.3.0/24, 10.0.4.0/24, 10.0.5.0/24」(図3B参照)は、ウイルスチェックGW10−0で受信されて信頼情報記憶部140に登録される(図4A参照)。なお、図1のウイルスチェックGW10−2は、他のウイルスチェックGW10から信頼情報を受信しないため、ウイルスチェックGW10−2の信頼情報記憶部140中の信頼情報は「Null(なし)」となる(図4C参照)。
また、本実施形態の例の信頼情報登録部170は、信頼情報記憶部140に登録済みの信頼情報のうち、その登録の時刻から予め設定された時間が経過した信頼情報を信頼情報記憶部140から削除する。当該予め設定された時間は、信頼情報生成部150及び信頼情報送信部160の処理が繰り返される時間間隔と同じであってよい。あるいは、その当該時間間隔よりも一定の時間だけ長い時間に設定してもよい。
中継処理部180は、複数の通信インタフェース100のそれぞれに接続された複数の装置の間の通信を中継する処理を行う。例えば、中継処理部180は、通信インタフェース100を介してパケット受信部110が受信したパケットをパケット受信部110から受け取る。パケット受信部110は、通信インタフェース100で受信されたパケットのうち、信頼情報登録部170に渡すパケット(信頼情報の宛先のIPアドレスを宛先として有するパケット)の他のパケットについては中継処理部180に渡す。中継処理部180は、受け取ったパケットの宛先に応じて当該パケットの送信に用いる通信インタフェース100を決定し、決定した通信インタフェース100を表す情報と共に当該パケットをパケット送信部120に渡す。パケット送信部120は、決定された通信インタフェース100を用いて当該パケットを送信する。
中継処理部180は、ウイルスチェック判断部182、ウイルスチェック処理部184、及びルーティング部186を備える。
ウイルスチェック判断部182は、信頼情報記憶部140に記憶された信頼情報を参照し、パケット受信部110から受け取ったパケットに対してウイルス感染の有無を確認するウイルスチェック処理を実行するか否かを判断する。本例のウイルスチェック判断部182は、処理対象のパケットが上流の通信インタフェース100で受信されていた場合であって当該パケットの宛先が信頼情報記憶部140中の信頼情報に含まれていない場合に、ウイルスチェック処理を実行するよう判断する。例えば、図1の例のウイルスチェックGW10−1において、クライアント端末20−2のIPアドレス「10.0.3.2」を宛先とするパケットを上流の通信インタフェースeth0で受信した場合、信頼情報「10.0.5.0/24」(図4B)にパケットの宛先「10.0.3.2」が含まれないため、ウイルスチェック処理を実行するよう判断される。一方、上流の通信インタフェースで受信されたパケットの宛先が信頼情報に含まれていれば、ウイルスチェック判断部182は、ウイルスチェック処理を実行しないよう判断する。図1のウイルスチェックGW10−1の例において、クライアント端末20−3のIPアドレス「10.0.5.2」を宛先とするパケットを通信インタフェースeth0で受信した場合、信頼情報に宛先が含まれることからウイルスチェック処理を実行しないよう判断される。本例のウイルスチェック判断部182は、さらに、処理対象のパケットが下流の通信インタフェースで受信されていた場合であって当該パケットの送信元が信頼情報記憶部140に記憶された信頼情報に含まれていない場合に、ウイルスチェック処理を実行するよう判断する。図1のウイルスチェックGW10−1の例において、クライアント端末20−2(10.0.3.2)からインターネット40上のアドレスを宛先とするパケットを受信した場合、当該パケットは下流の通信インタフェースeth1で受信され、かつ、送信元のIPアドレス「10.0.3.2」が信頼情報「10.0.5.0/24」に含まれないことから、ウイルスチェック処理を実行するよう判断される。逆に、下流の通信インタフェースで受信されたパケットの送信元が信頼情報に含まれていれば、ウイルスチェック判断部182は、ウイルスチェック処理を実行しないよう判断する。図1のウイルスチェックGW10−1の例において、クライアント端末20−3(10.0.5.2)からインターネット40上のアドレスを宛先とするパケットを受信した場合、当該パケットは下流の通信インタフェースeth2で受信されたパケットの送信元のIPアドレス「10.0.5.2」が信頼情報「10.0.5.0/24」に含まれることから、ウイルスチェック処理を実行しないよう判断される。
ウイルスチェック判断部182は、ウイルスチェック処理を実行するよう判断すると、処理対象のパケットをウイルスチェック処理部184に渡し、ウイルスチェック処理を実行しないよう判断すると、処理対象のパケットをルーティング部186に渡す。
ウイルスチェック処理部184は、ウイルスチェック判断部182から受け取ったパケットに対して、ウイルスの感染の有無を確認するウイルスチェック処理を行う。ウイルスチェック処理部184は、ウイルス定義情報記憶部190を参照してウイルスチェック処理を行う。ウイルス定義情報記憶部190には、すでに知られているウイルスを表すウイルス定義情報が予め記憶されている。ウイルスチェック処理部184は、ウイルス定義情報記憶部190に記憶されたウイルス定義情報と、処理対象のパケットのデータ部分の情報と、を比較し、処理対象のパケットのデータ部分の情報がウイルス定義情報に該当すれば、処理対象のパケットがウイルスに感染していると判定する。処理対象のパケットのデータ部分の情報がウイルス定義情報に該当しなければ、処理対象のパケットはウイルスに感染していないと判定する。ウイルスチェック処理部184は、ウイルス感染の有無の判定結果とともに処理対象のパケットをルーティング部186に渡す。
ルーティング部186は、ルーティングテーブル記憶部130に記憶されたルーティングテーブルを参照し、ウイルスチェック判断部182又はウイルスチェック処理部184から受け取ったパケットの送信に用いる通信インタフェース100を決定する。例えば、ルーティング部186は、ウイルスチェック判断部182でウイルスチェック処理を実行しないよう判断されたパケット及びウイルスチェック処理部184でウイルスに感染していないと判定されたパケットについて、ルーティングテーブルからパケットの宛先に対応する通信インタフェース100を表す情報を取得する。そして、取得した通信インタフェース100を表す情報と共に、処理対象のパケットをパケット送信部120に渡す。また、ウイルスチェック処理部184でウイルスに感染していると判定されたパケットについては、宛先に対応する通信インタフェース100を表す情報をルーティングテーブルから取得し、取得した通信インタフェース100を表す情報と、当該パケットがウイルスに感染していると判定された旨を表す情報と、を当該パケットと共にパケット送信部120に渡す。この場合、当該パケットは、ウイルスに感染していると判定された旨を表す情報と共に宛先に向けて送信される。あるいは、例えば、ルーティング部186は、ウイルスに感染していると判定されたパケットのデータ部分を破棄し、ウイルスに感染していると判定された旨を表す情報を当該パケットのデータ部分に設定した上で、宛先に対応する通信インタフェース100を表す情報と共にパケット送信部120に渡してもよい。この例では、ウイルスに感染していると判定された旨を表す情報を含み、ウイルスに感染していると判定されたデータ自体は含まないパケットが宛先に向けて送信される。また例えば、ルーティング部186は、ウイルスに感染していると判定されたパケットについて、前述の各例の処理を行わずに当該パケットを破棄してもよい。この例では、ウイルスに感染していると判定されたパケットは宛先に向けて送信されない。
以上で説明したように、本実施形態の例において、各ウイルスチェックGW10は、自装置に対して下流のネットワークを表す情報を信頼情報として生成し、生成した信頼情報をインターネット40に向けて(つまり、自装置に対して上流の装置に向けて)送信する。各ウイルスチェックGW10が生成する信頼情報は、自装置又は自装置に対して下流のウイルスチェックGW10においてウイルスチェック処理を担当するネットワークを自装置に対して上流のウイルスチェックGW10に通知するための情報であると捉えてよい。各ウイルスチェックGW10は、自装置で生成した信頼情報ではなく、自装置に対して下流のウイルスチェックGW10から受信した信頼情報を信頼情報記憶部140に登録する。そして、下流のウイルスチェックGW10から受信した信頼情報が表すネットワークに含まれる装置と、自装置に対して上流の装置と、の間で送受信されるパケットについては、ウイルスチェック処理を実行せずに中継処理を行う。しかし、下流のウイルスチェックGW10から受信した信頼情報が表すネットワークに含まれない装置と、自装置に対して上流の装置と、の間で送受信されるパケットについては、ウイルスチェック処理を実行した上で中継処理を行う。
以下、各ウイルスチェックGW10で実行される処理の手順の例を説明する。
図5及び図6を参照し、ウイルスチェックGW10で受信されたパケットに関して実行される処理の手順を説明する。
まず図5を参照し、パケット受信部110は、通信インタフェース100においてパケットが受信されるまで待機する(ステップS1でNO)。通信インタフェース100でパケットが受信されてパケット受信部110に渡されると(ステップS1でYES)、パケット受信部110は、受信されたパケットが信頼情報を含むものであるか否かを判定する(ステップS3)。ステップS3の判定は、受信されたパケットの宛先が信頼情報の宛先として予め設定されたIPアドレスであるか否かを確認することで行われる。
受信されたパケットの宛先が信頼情報の宛先として予め設定されたIPアドレスであれば、当該パケットは信頼情報を含むと判定され(ステップS3でYES)、信頼情報登録部170に渡される。そして、信頼情報登録部170によって当該パケットに含まれる信頼情報が信頼情報記憶部140に登録される(ステップS7)。ステップS7で、信頼情報登録部170は、信頼情報の信頼情報記憶部140への登録の時刻を信頼情報記憶部140に保持させておく。信頼情報の登録の後、当該パケットは破棄される(ステップS9)。
受信されたパケットの宛先が信頼情報の宛先として予め設定されたIPアドレスでなければ、当該パケットは信頼情報を含まないと判定され(ステップS3でNO)、当該パケットは中継処理部180に渡される。中継処理部180は、渡されたパケットを処理対象としてパケット中継処理(ステップS5)を行う。パケット中継処理が開始されると、図6の例の手順の処理が開始される。
図6を参照し、中継処理部180のウイルスチェック判断部182は、処理対象のパケットが上流方向からのパケットであるか否かを判定する(ステップS50)。
処理対象のパケットが上流の通信インタフェース100で受信されていれば上流方向からのパケットであると判定され(ステップS50でYES)、処理はステップS52に進む。ステップS52で、ウイルスチェック判断部182は、処理対象のパケットの宛先が信頼情報記憶部140に記憶された信頼情報に含まれるか否かを判定する。パケットの宛先が信頼情報に含まれていれば(ステップS52でYES)、ウイルスチェック判断部182は、ウイルスチェック処理を実行しないよう判断して処理対象のパケットをルーティング部186に渡し、処理はステップS58に進む。パケットの宛先が信頼情報に含まれていなければ(ステップS52でNO)、ウイルスチェック判断部182は、ウイルスチェック処理を実行するよう判断して処理対象のパケットをウイルスチェック処理部184に渡す。
一方、処理対象のパケットが上流の通信インタフェース100で受信されていなければ上流方向からのパケットでないと判定され(ステップS50でNO)、処理はステップS54に進む。ステップS54で、ウイルスチェック判断部182は、処理対象のパケットの送信元が信頼情報記憶部140に記憶された信頼情報に含まれるか否かを判定する。パケットの送信元が信頼情報に含まれていれば(ステップS54でYES)、ウイルスチェック判断部182は、ウイルスチェック処理を実行しないよう判断して処理対象のパケットをルーティング部186に渡し、処理はステップS58に進む。パケットの宛先が信頼情報に含まれていなければ(ステップS54でNO)、ウイルスチェック判断部182は、ウイルスチェック処理を実行するよう判断して処理対象のパケットをウイルスチェック処理部184に渡す。
ウイルスチェック判断部182がウイルスチェック処理を実行するよう判断すると(ステップS52でNO又はステップS54でNO)、ウイルスチェック処理部184は、ウイルス定義情報記憶部190を参照し、処理対象のパケットのウイルスの感染の有無を確認する(ステップS56)。ウイルスチェック処理の後、ウイルスチェック処理部184は、処理対象のパケットをウイルスの感染の有無の判定結果と共にルーティング部186に渡す。
ウイルスチェック判断部182又はウイルスチェック処理部184から処理対象のパケットを受け取ったルーティング部186は、処理対象のパケットの送信に用いる通信インタフェース100を決定するルーティング処理を行う(ステップS58)。ステップS58で、ルーティング部186は、ルーティングテーブル記憶部130中のルーティングテーブルを参照し、処理対象のパケットの宛先に該当する宛先ネットワークに対応する通信インタフェース100を表す情報を取得する。当該対応する通信インタフェース100が処理対象のパケットの送信に用いられる通信インタフェース100として決定される。ルーティング部186は、ウイルスチェック処理が省略された場合(ステップS52でYES又はステップS54でYES)あるいはウイルスチェック処理でウイルスに感染していないと判定されていた場合、決定した通信インタフェース100を表す情報と処理対象のパケットとをパケット送信部120に渡す。ウイルスチェック処理でウイルスに感染していると判定されていた場合、ルーティング部186は、決定した通信インタフェース100を表す情報及び処理対象のパケットに加えて、ウイルスに感染していると判定された旨を表す情報をパケット送信部120に渡す。
決定された通信インタフェース100を表す情報及び処理対象のパケットを中継処理部180のルーティング部186から受け取ったパケット送信部120は、当該通信インタフェース100を用いて、処理対象のパケットを送信する(ステップS60)。また、処理対象のパケットと共にウイルスに感染していると判定された旨を表す情報をルーティング部186から受け取った場合、パケット送信部120は、処理対象のパケットとウイルスに感染していると判定された旨を表す情報とを関連づけて、決定された通信インタフェース100を用いて送信する。
パケット送信処理(ステップS60)の後、処理は図5のステップS1に戻って更なるパケットの受信を待ち受ける。
なお、ウイルスに感染していると判定されたパケットのパケット送信処理(ステップS60)においては、当該パケットのデータ部分において、元の情報を破棄してウイルスに感染していると判定された旨を表す情報に差し替えたパケットを送信してもよい。あるいは、ウイルスに感染していると判定されたパケットについてはパケット送信処理(ステップS60)自体を省略してもよい。
以上、受信されたパケットに関するウイルスチェックGW10の処理の例を説明した。次に、図7及び図8を参照し、ウイルスチェックGW10における信頼情報の生成及び送信に関する処理の例を説明する。
まず図7を参照し、信頼情報生成部150は、前回の信頼情報の生成及び送信を行ってから予め設定された時間T1(例えば、30秒)以上経過するまで待機する(ステップS2でNO)。時間T1以上経過すると(ステップS2でYES)、信頼情報生成部150は、信頼情報生成処理を行う(ステップS4)。ステップS4が開始されると、図8の例の手順の処理が開始される。
図8を参照し、信頼情報生成部150は、まず、ルーティングテーブル記憶部130中のルーティングテーブルを参照し、下流の通信インタフェース100を特定する(ステップS40)。ステップS40で、信頼情報生成部150は、例えば、ルーティングテーブルを参照してインターネット40上のIPアドレスを宛先とするパケットの送信に用いられる通信インタフェース100を求めることで上流(インターネット側)の通信インタフェース100を特定し、上流の通信インタフェース100以外の通信インタフェース100を下流の通信インタフェース100として特定する。
下流の通信インタフェース100を特定すると、信頼情報生成部150は、ルーティングテーブルにおいて下流の通信インタフェース100に対応づけられた宛先ネットワークのアドレスを取得する(ステップS42)。
そして、信頼情報生成部150は、ステップS42で取得した宛先ネットワークのアドレスを信頼情報として信頼情報送信部160に渡す(ステップS44)。
ステップS44の後、図8に例示する信頼情報生成処理は終了し、処理は図7のステップS6に進む。
図7のステップS6で、信頼情報送信部160は、信頼情報生成部150から受け取った信頼情報を上流の装置に向けて送信するための処理を行う。例えば、信頼情報をデータ部分に含み、信頼情報の宛先として予め設定されたインターネット40上のIPアドレスを宛先とするパケットを生成し、生成したパケットと、上流の通信インタフェース100を特定する情報と、をパケット送信部120に渡す。パケット送信部120は、信頼情報送信部160から受け取ったパケットを、上流の通信インタフェース100を用いて送信する。ステップS6の後、再び時間T1以上経過するまで待機する(ステップS2)。
図7及び図8を参照して説明したように、各ウイルスチェックGW10において、信頼情報の生成及び送信は、時間T1の間隔で繰り返し実行される。これにより、各ウイルスチェックGW10における信頼情報の更新が上流のウイルスチェックGW10に伝達される。信頼情報の更新は、例えば、ウイルスチェックGW10に接続されたネットワークに変更(接続装置の追加又は撤去など)が生じてルーティングテーブルの内容が変更された場合に生じる。
図9は、信頼情報記憶部140に登録済みの信頼情報に対して信頼情報登録部170が実行する処理の手順の例を示すフローチャートである。
図9を参照し、信頼情報登録部170は、信頼情報記憶部140に登録済みの信頼情報のうち、前回の信頼情報の受信及び登録から予め設定された時間T2以上経過した信頼情報が存在するか否かを判定する(ステップS90)。ステップS90の判定の閾値として用いられる時間T2の値は、信頼情報の生成及び送信を繰り返す時間間隔として予め設定された時間T1(図7のステップS2参照)に基づいて設定される。例えば、T2=T1と設定しておく。T2=T1+αと設定しておいてもよい(ただし、0<α<T1)。
該当する信頼情報が信頼情報記憶部140中に存在しなければ(ステップS90でNO)、信頼情報登録部170は、ステップS90の判定を繰り返す。
該当する信頼情報が信頼情報記憶部140中に存在すれば(ステップS90でYES)、信頼情報登録部170は、該当する信頼情報を信頼情報記憶部140から削除する(ステップS92)。
図9の例の手順の処理によると、ウイルスチェックGW10において、他のウイルスチェックGW10から受信した信頼情報を時間T2の間だけ信頼情報記憶部140に保持することになる。登録から時間T2以上経過した信頼情報を信頼情報記憶部140から削除しても、当該信頼情報の送信元のウイルスチェックGW10が信頼情報の生成及び送信を繰り返して実行する限り(図7,図8参照)、当該信頼情報は再び受信されて信頼情報記憶部140に新たに登録される。
一方、図9の例の手順の処理で削除された信頼情報の送信元のウイルスチェックGW10から当該信頼情報を新たに受信しなかった場合は、当該信頼情報は信頼情報記憶部140から削除されたままになる。したがって、信頼情報記憶部140から信頼情報を削除したウイルスチェックGW10において、この削除された信頼情報が表すネットワークに含まれる装置を宛先又は送信元とするパケットのウイルスチェック処理は省略されずに実行される(図6参照)。削除された信頼情報が新たに受信されない原因としては、例えば、当該信頼情報の送信元のウイルスチェックGW10の故障、LAN30からの撤去、送信元のウイルスチェックGW10からの通信経路上の異常などが挙げられる。このような場合、当該信頼情報が表すネットワークを宛先又は送信元とするパケットについて、送信元のウイルスチェックGW10においてウイルスチェック処理が正常に行われない可能性がある。しかし、当該信頼情報を信頼情報記憶部140から削除したウイルスチェックGW10において上述のようにウイルスチェック処理を行うことで、当該削除された信頼情報が表すネットワークにおける通信の安全性が確保される。
以上で説明した実施形態の例では、複数のウイルスチェックGW10が物理的に同一のLAN30内に含まれる(図1)。複数のウイルスチェックGW10について、物理的に同一のLANに含まれていなくても、論理的には同一のLANに含まれるとみなしてよい場合がある。例えば、図1の例のウイルスチェックGW10−0及びウイルスチェックGW10−1がVPN(Virtual Private Network)を構成する機能を有する場合を考える。VPNは、インターネットなどの公衆に利用可能なネットワークを経由して仮想的なプライベートネットワークを構築する技術である。図10に、ウイルスチェックGW10−0,10−1の間でVPN接続する場合のネットワーク構成の例を示す。図10では図示を省略するが、図10のウイルスチェックGW10−1には、図1の例と同様にウイルスチェックGW10−2及びクライアント端末20−3が接続されていてよい。図10を参照し、ウイルスチェックGW10−0及びクライアント端末20−1を含むLAN31と、ウイルスチェックGW10−1及びクライアント端末20−2を含むLAN32と、がインターネット40を介して接続されている。ウイルスチェックGW10−0とウイルスチェックGW10−1との間で、インターネット40を利用したVPN接続が形成される(破線矢印)。なお、図10において、「tun0」は、VPN接続のために仮想的に構成される通信インタフェースを表す。VPN接続における通信情報は、インターネット40を通るが、仮想的には、ウイルスチェックGW10−0とウイルスチェックGW10−1との間に設けられた専用の通信経路を通るものとみなしてよい。図10の例の場合、ウイルスチェックGW10−0,10−1は、物理的には互いに異なるLAN31,32に含まれるが、論理的あるいは仮想的には、同一のLAN内に含まれると言える。
図10の例において、LAN31及びLAN32に含まれる各ウイルスチェックGW10は、図1〜図9を参照して説明した実施形態の例と同様の動作を実現する。図10の例において、ウイルスチェックGW10−1がインターネット40上の他の装置と通信する場合に、VPN接続されたウイルスチェックGW10−0を介して通信するようにウイルスチェックGW10−1のルーティングテーブルを設定し、かつ、ウイルスチェックGW10−0がLAN32内の装置と通信する場合に、ウイルスチェックGW10−1を介して通信するように、ウイルスチェックGW10−0のルーティングテーブルを設定しておけばよい。例えば、図10の例のウイルスチェックGW10−0,10−1のルーティングテーブルは、それぞれ、図3Aの表においてインタフェース「eth2」の部分を「tun0」に置き換え、図3Bの表においてインタフェース「eth0」の部分を「tun0」に置き換えたものであってよい。図10の例の各ウイルスチェックGW10−0,10−1が生成する信頼情報は、図1の例の場合と同様であってよい(図3A,図3Bの破線内)。
また、図1の例では、LAN30内に含まれる通信中継装置のすべてが図2の例の構成を備えるウイルスチェックGW10である。しかしながら、LAN30は、例えば図11に示すように、図2の例の構成を備えるウイルスチェックGW10と、図2の例の構成を備えない一般的なルータ50と、の両方を含んでいてもよい。図11のLAN30は、図1の例のウイルスチェックGW10−1の代わりに、ルータ50を含む点の他は図1の例のLAN30と同様に構成される。ルータ50は、パケットの中継だけを行い、信頼情報の生成及び送信並びにウイルスチェックに関する処理を行わない。図11の例において、ウイルスチェックGW10−0、ルータ50、及びウイルスチェックGW10−2が備えるルーティングテーブルは、それぞれ、図1のウイルスチェックGW10−0,10−1,10−2のルーティングテーブルと同様(図3A,図3B,図3C)であってよい。ただし、図11の例では、ルータ50において信頼情報の生成及び送信が行われないため、ウイルスチェックGW10−0が受信して信頼情報記憶部140に登録する信頼情報は、ウイルスチェックGW10−2が送信する信頼情報「10.0.5.0/24」(図3Cの破線内,図4B参照)となる。よって、ウイルスチェックGW10−0において、信頼情報「10.0.5.0/24」以外のネットワークにおける通信に関わるパケットのウイルスチェック処理が行われる。なお、図11の例のウイルスチェックGW10−2は、図1の例の場合と同様、他の装置から信頼情報を受信しないため、ウイルスチェックGW10−2の信頼情報記憶部140の信頼情報は「Null」となる(図4C)。
図2の例のウイルスチェックGW10は、IPアドレスに基づくルーティングテーブルを用いて中継処理を行う。他の実施形態の例のウイルスチェックGW10は、例えば、接続される各装置に固有のMAC(Media Access Control)アドレスに基づく中継処理を行う。図12に、本実施形態の例のウイルスチェックGW10の内部構成の概略の例を示す。図12の例の構成は、ルーティングテーブル記憶部130及びルーティング部186を備えない点の他は図2の例の構成と同様である。ただし、図12の例のウイルスチェックGW10において、パケットの中継処理の方式及び生成される信頼情報の形式は、図2の例の場合と異なる。
図12の例のウイルスチェックGW10の中継処理部180によるパケットの中継処理では、ルーティングテーブルを用いない。中継処理部180は、例えば、パケット受信部110から取得した受信パケットについて、当該パケットの宛先のIPアドレスを有する装置のMACアドレスと、当該MACアドレスの装置が接続される通信インタフェース100と、を求める。IPアドレスからMACアドレス及び対応する通信インタフェース100を求めるには、例えば、ARP(Address Resolution Protocol)と呼ばれるプロトコルを用いる。そして、求めたMACアドレスに対応する通信インタフェース100を用いて、受信パケットをパケット送信部120に送信させる。なお、中継処理部180は、ウイルスチェックGW10に接続された各装置のIPアドレスとMACアドレスと通信インタフェース100とを対応づけるテーブルを保持しておき、そのテーブルを用いて前述のような中継処理を行ってもよい。
図12の例のウイルスチェックGW10を通信中継装置として含むLANの構成の例を図13に示す。図13の例のLAN33は、ウイルスチェックGW10−0,10−1,10−2及びルータ50を含み、ルータ50を介してインターネット40に接続される。ルータ50は、図11のルータ50を参照して説明したような、信頼情報に関する処理及びウイルスチェック処理を行わずに、IPアドレスに基づいてパケットの中継を行うルータである。図13のLAN33においては、図1の例と異なり、各ウイルスチェックGW10の各通信インタフェース(eth0,eth1,eth2)にはIPアドレスが割り当てられていない。LAN33において、IPアドレスが割り当てられるのは、ルータ50及び各クライアント端末20である。
図12及び図13に示すウイルスチェックGW10において生成される信頼情報は、ネットワークを表すアドレスではなく、各ウイルスチェックGW10の下流に接続される装置それぞれのIPアドレスを含む。各ウイルスチェックGW10の信頼情報生成部150は、インターネット側でない下流の通信インタフェース100に対応するIPアドレスを求めることで信頼情報を生成する。下流の通信インタフェース100は、例えば、次の手順により特定すればよい。まず、インターネット40を介して接続された装置を宛先として、宛先からの応答を要求する内容を含むパケット(例えば、「ping」など)を、ウイルスチェックGW10が備える複数の通信インタフェース100のそれぞれを用いて送信する。そして、送信したパケットに対する応答を受信した通信インタフェース100をインターネット側(上流)として特定し、上流の通信インタフェース100の他の通信インタフェース100を下流として特定する。
図14A,図14B,図14Cを参照し、図13に示す各ウイルスチェックGW10で生成される信頼情報の例を説明する。図14A,図14B,図14Cは、それぞれ、ウイルスチェックGW10−0,10−1,10−2に対応する。ウイルスチェックGW10−0では、下流の通信インタフェースeth1,eth2によってウイルスチェックGW10−0に接続されたクライアント端末20−1,20−2,20−3のそれぞれのIPアドレス(「10.0.0.2」,「10.0.0.3」,「10.0.0.4」)を含む信頼情報が生成される(図14Aの破線内)。ウイルスチェックGW10−1では、下流の通信インタフェースeth1,eth2によりウイルスチェックGW10−1に接続されたクライアント端末20−2,20−3のそれぞれのIPアドレスを含む信頼情報が生成される(図14Bの破線内)。さらに、ウイルスチェックGW10−2では、下流の通信インタフェースeth1によりウイルスチェックGW10−2に接続されたクライアント端末20−3のIPアドレスを含む信頼情報が生成される(図14Cの破線内)。
図12の例の各ウイルスチェックGW10の信頼情報送信部160は、図2を参照して説明したのと同様の処理によって信頼情報を上流の装置に向けて送信する処理を行う。つまり、信頼情報送信部160は、信頼情報生成部150が生成した信頼情報をデータ部分に含み、信頼情報の宛先として予め設定されたインターネット40上のIPアドレスを宛先とするパケットを生成し、生成したパケットをパケット送信部120により上流の通信インタフェース100を用いて送信させる。
図12の例の各ウイルスチェックGW10が生成する信頼情報は、自装置又は自装置に対して下流のウイルスチェックGW10において通信パケットのウイルスチェック処理を担当する装置を上流のウイルスチェックGW10に対して通知するための情報であると捉えてよい。
図12の例の各ウイルスチェックGW10の信頼情報登録部170も、図2の例の信頼情報登録部170と同様の処理を行う。よって、図13の例のLAN33では、ウイルスチェックGW10−0において、ウイルスチェックGW10−1から送信される信頼情報(図14Bの破線内)が受信されて信頼情報記憶部140に登録され、ウイルスチェックGW10−1において、ウイルスチェックGW10−2から送信される信頼情報(図14Cの破線内)が受信されて信頼情報記憶部140に登録される。他のウイルスチェックGW10から信頼情報を受信しないウイルスチェックGW10−2の信頼情報記憶部140中の信頼情報は「Null」となる。
なお、図12の例の構成を備えるウイルスチェックGW10において実行される処理の手順は、図5〜図9のフローチャートを参照して説明した手順と同様であってよい。ただし、信頼情報生成処理(図8)では、信頼情報生成部150は、ルーティングテーブルを用いることなく、下流の通信インタフェース100に接続された各装置のIPアドレスを求める上述の処理を行う。
また、図12の例の構成を備えるウイルスチェックGW10における信頼情報の生成及び送信の処理に関し、予め設定された時間T1が経過する度に実行する(図7参照)代わりに、あるいは、時間T1の経過の度の実行に加えて、管理者などにより予め設定されたタイミングで実行してもよい。例えば、ウイルスチェックGW10において、下流の通信インタフェース100に直接あるいは間接的に接続された装置に変更が生じたことを検出したタイミングで、信頼情報の生成及び送信を実行するように予め設定しておく。例えば、あるウイルスチェックGW10において、これまでPCなどの装置が接続されていなかった下流の通信インタフェース100にPCが接続された場合、新たに接続された装置と、その上流側に配置された各ウイルスチェックGW10との間でARP通信が行われる。これにより、各ウイルスチェックGW10において、当該新たに接続された装置との間の通信に用いられる通信インタフェース100に対応するMACアドレス(IPアドレス)の変更が検出される。図13を参照して具体例を説明すると、ウイルスチェックGW10−2の通信インタフェースeth1にクライアント端末20−3が新たに接続された場合、ウイルスチェックGW10−2,10−1,10−0のそれぞれと、クライアント端末20−3と、の間でARP通信が行われる。そして、ウイルスチェックGW10−2は通信インタフェースeth1に対応するIPアドレスとして新たに「10.0.0.4」を検出し、ウイルスチェックGW10−1,10−0は、それぞれの通信インタフェースeth2に対応するIPアドレスとして新たに「10.0.0.4」を検出する。このような変更を検出したタイミングで、各ウイルスチェックGW10の信頼情報生成部150は、変更後の新たなIPアドレスを含む信頼情報を生成し、信頼情報送信部160は、生成された信頼情報を、上流の通信インタフェース100を用いて送信する。
LANの構成の変形例として、図13の例のLAN33において、図12の例の構成を備えない通信中継装置を含んでいてもよい。図15に、この場合のLANの構成の例を示す。図15の例のLAN34は、図13の例のLAN33において、ウイルスチェックGW10−1をスイッチングハブ60に置換した構成を有する。スイッチングハブ60は、信頼情報の生成及び送信とウイルスチェック処理とを実行せずに、MACアドレスに基づくパケットの中継だけを行う。図15の例において、ウイルスチェックGW10−0,10−2が生成する信頼情報は、図13の例の場合と同様、それぞれ、図14A,図14Cの破線内のIPアドレスを含む。ウイルスチェックGW10−0の信頼情報記憶部140に登録される信頼情報は、ウイルスチェックGW10−2から送信される信頼情報(図14C参照)である。よって、ウイルスチェックGW10−0において、クライアント端末20−1,20−2を宛先又は送信元とするパケットに対するウイルスチェック処理が実行される。また、ウイルスチェックGW10−2の信頼情報記憶部140中の信頼情報は「Null」となる。
LANの構成のさらに他の例では、図16のLAN35のように、図2の例の構成を備えるウイルスチェックGW10(以下、「ルータ型」と呼ぶ)と、図12の例の構成を備えるウイルスチェックGW10(以下、「ブリッジ型」と呼ぶ)と、の両方を含んでいてよい。図16の例において、ウイルスチェックGW10−1R,10−2Rは、ルータ型であり、ウイルスチェックGW10−1S,10−2Sはブリッジ型である。
図17A,図17Bは、それぞれ、図16のウイルスチェックGW10−1R,10−2Rが備えるルーティングテーブルの例を示す。各ウイルスチェックGW10−1R,10−2Rが生成する信頼情報は、それぞれ、下流の通信インタフェースeth1,eth2に対応する宛先ネットワークのアドレスである(図17A,図17Bの破線内)。
また、図18A,図18Bを参照し、図16のウイルスチェックGW10−1S,10−2Sでは、それぞれ、下流の通信インタフェースeth1,eth2に接続される装置のIPアドレスを含む信頼情報が生成される。ウイルスチェックGW10−1Sが生成する信頼情報は、通信インタフェースeth1に接続されたクライアント端末20−1のIPアドレス「10.0.0.2」及び通信インタフェースeth2に接続されたルータ型のウイルスチェックGW10−2Rの通信インタフェースeth0のIPアドレス「10.0.0.3」を含む(図18Aの破線内)。ウイルスチェックGW10−2Sが生成する信頼情報は、通信インタフェースeth1に接続されたクライアント端末20−3のIPアドレス「10.0.2.2」を含む(図18Bの破線内)。
ルータ型及びブリッジ型のウイルスチェックGW10が混在するLAN35において、ブリッジ型のウイルスチェックGW10は、信頼情報を含むパケットを受信して信頼情報記憶部140への信頼情報の登録を行った後、信頼情報のパケットを破棄することなく、上流の通信インタフェースを用いてパケットを送信する。つまり、LAN35に含まれるブリッジ型のウイルスチェックGW10では、図5の例の手順において、ステップS9の処理(パケットの破棄)の代わりに、上流の通信インタフェースを用いたパケットの送信が行われる。よって、ブリッジ型のウイルスチェックGW10で信頼情報記憶部140に登録された信頼情報は、さらに上流のウイルスチェックGW10に伝達される。ルータ型のウイルスチェックGW10−1R,10−2Rにおいては、図5の例の手順のとおり、信頼情報の登録の後、信頼情報のパケットは破棄される。
図19A,図19B,図19C,図19Dを参照し、図16の各ウイルスチェックGW10の信頼情報記憶部140に登録される信頼情報の例を説明する。
図19Aは、ウイルスチェックGW10−1Rで登録される信頼情報の例である。図19Aの信頼情報のうち、クライアント端末20−1のIPアドレス「10.0.0.2」及びウイルスチェックGW10−1Rの通信インタフェースeth0のIPアドレス「10.0.0.3」は、ウイルスチェックGW10−1Sが生成して送信した信頼情報(図18A参照)である。また、図19Aの信頼情報のうち、ネットワークのアドレスを表す「10.0.1.0/24」,「10.0.2.0/24」は、ルータ型のウイルスチェックGW10−2Rが生成して送信した信頼情報(図17B参照)である。ウイルスチェックGW10−2Rが生成して送信した信頼情報は、ブリッジ型のウイルスチェックGW10−1Sで受信されて信頼情報記憶部140に登録された後、さらに、ウイルスチェックGW10−1Sから上流に向けて送信され、ウイルスチェックGW10−1Rで受信されて登録される。
図19Bは、ウイルスチェックGW10−1Sで登録される信頼情報の例である。図19Bの信頼情報は、ルータ型のウイルスチェックGW10−2Rで生成されて送信される信頼情報である(図17B参照)。
図19Cは、ウイルスチェックGW10−2Rで登録される信頼情報の例である。図19Cの信頼情報は、ブリッジ型のウイルスチェックGW10−2Sで生成されて送信される信頼情報である(図18B参照)。
また、ウイルスチェックGW10−2Sは、他のウイルスチェックGW10から信頼情報を受信しないため、図19Dに示すように、ウイルスチェックGW10−2Sで登録される信頼情報は「Null」である。
なお、図16の例の各ウイルスチェックGW10が実行する処理の手順は、ブリッジ型のウイルスチェックGW10で受信した信頼情報のパケットを破棄しない点を除いて、図1〜図15を参照して上記で説明した各種の実施形態の例におけるルータ型及びブリッジ型のウイルスチェックGW10が行う処理の手順と同様である。よって、各ウイルスチェックGW10は、自装置の信頼情報記憶部140に登録された信頼情報に含まれない装置(あるいはネットワーク)に関する通信におけるパケットのウイルスチェック処理を担当する。
以上で説明した各種の実施形態の例において、ウイルスチェックGW10のウイルスチェック判断部182は、信頼情報だけでなくウイルス定義情報のバージョン(版)も考慮してパケットのウイルスチェック処理を実行するか否かを判断してもよい。この場合、信頼情報送信部160は、信頼情報と共に、自装置のウイルス定義情報記憶部190に記憶されたウイルス定義情報のバージョンを表す情報を送信する。そして、信頼情報登録部170は、信頼情報と共にその送信元のウイルスチェックGW10のウイルス定義情報のバージョンもパケット受信部110から受け取り、受け取った信頼情報に関連づけてウイルス定義情報のバージョンも信頼情報記憶部140に登録する。図20に、本例の場合の信頼情報記憶部140の内容の一例を示す。図20の例の表を参照すると、信頼情報に関連づけて、当該信頼情報と共に受信されたウイルス定義情報のバージョンが登録されている。
ウイルス定義情報のバージョンも考慮してウイルスチェック処理の実行の有無を判断する場合のパケット中継処理の手順の例を図21に示す。図21の例の手順の処理は、図5の例の手順のステップS5が開始されたときに、図6の例のパケット中継処理の代わりに開始される。図21において、図6と同様の処理ステップには図6と同様の符号を付し、その詳細な説明を省略する。図21の例の手順では、上流からのパケットの宛先が登録済みの信頼情報に含まれる場合(ステップS52でYES)又は下流からのパケットの送信元が登録済みの信頼情報に含まれる場合(ステップS54でYES)に、ウイルス定義情報のバージョンに関する判定処理を行う(ステップS55)点が図6の例の手順と異なる。ステップS55では、ウイルスチェック判断部182は、ステップS52又はステップS54に該当する信頼情報に関連づけられたウイルス定義情報のバージョンと、自装置のウイルス定義情報記憶部190に記憶されたウイルス定義情報のバージョンと、を比較する。そして、自装置のウイルス定義情報のバージョンの方が新しければ、処理対象のパケットについてウイルスチェック処理を実行することを判断し(ステップS55でYES)、ウイルスチェック処理(ステップS56)に進む。自装置のウイルス定義情報のバージョンの方が古ければ、処理対象のパケットについてウイルスチェック処理を実行しないことを判断し(ステップS55でNO)、ウイルスチェック処理(ステップS56)を省略してルーティング処理(ステップS58)に進む。
以上で説明した各種の実施形態の例では、各ウイルスチェックGW10において、インターネット側である上流の通信インタフェースは、ウイルスチェックGW10が備える複数の通信インタフェースのうちの1つに定まり、変更が生じることはない。他の例では、各ウイルスチェックGW10において、上流の通信インタフェースは、動的に変更されてもよい。例えば、ウイルスチェックGW10は、ネットワークの負荷の状況に応じて異なる通信インタフェースを用いてインターネットに接続してもよい。この例では、各ウイルスチェックGW10は、上流の通信インタフェースとなり得る通信インタフェース(上流の通信インタフェースの候補)を表す情報を予め保持しておく。そして、信頼情報を送信するときに、上流の通信インタフェースの候補のすべてを用いて送信する。これにより、各ウイルスチェックGW10に対して上流となり得るすべてのウイルスチェックGW10に信頼情報が伝達される。
また、以上で説明した各種の実施形態の例において、LAN内で最も上流に配置されるウイルスチェックGW10(図1等のウイルスチェックGW10−0,図16のウイルスチェックGW10−1R)においては、信頼情報の生成及び送信を実行しないように設定しておいてもよい。信頼情報を受信する上流のウイルスチェックGW10が存在しないからである。この設定は、例えば、LANの管理者などが予め行っておけばよい。
また、以上の各種の実施形態の例では、LAN内でウイルスチェックGW10に接続されるクライアント端末20の例としてPCを示したが、クライアント端末20は、PCの他の装置であってもよい。例えば、クライアント端末20は、印刷、複写、スキャン、及びファクシミリ送受信のうちの1以上の機能を備える画像形成装置の動作を制御する制御装置を実現する情報処理装置であってよい。また、LANにおいて、クライアント端末20だけでなく、LAN内のクライアント端末20に対する各種のサービス(情報配信、ファイル共有など)を提供するサーバ装置をウイルスチェックGW10に接続してもよい。PCの他の装置がウイルスチェックGW10に接続されていても上述の各種の例の実施形態の処理は同様に実行してよい。
以上に例示したウイルスチェックGW10は、典型的には、ルータ又はスイッチングハブなどの専用の装置、あるいは、汎用のコンピュータなどの情報処理装置によって、上述のウイルスチェックGW10の各部の機能又は処理内容を記述したプログラムを実行することにより実現される。図22に、ウイルスチェックGW10を実現する情報処理装置のハードウエア構成の例を示す。図22の例の情報処理装置は、CPU(中央演算装置)80、メモリ(一次記憶)82、各種I/O(入出力)インタフェース84等がバス86を介して接続された回路構成を有する。また、そのバス86に対し、例えばI/Oインタフェース84経由で、HDD(ハードディスクドライブ)88やCDやDVD、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ90が接続される。このようなドライブ88又は90は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク経由で、HDD88等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されCPUにより実行されることにより、実施形態の処理が実現される。