以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
請求項1に記載の通信装置(例えば、図1のアクセスポイント1)は、通信相手(例えば、図1のコンピュータ2や3)からの接続要求に応じて、認証を行う認証手段(例えば、図2の認証部14)と、通信相手の認証を失敗した失敗回数に応じて、その通信相手に応答を返すまでの応答時間を長くするように、通信相手との通信を行う通信手段(例えば、図2の通信部11)を制御する制御手段(例えば、図2の更新部16)とを備えることを特徴とする。
請求項2に記載の通信装置は、通信相手の認証を失敗した失敗回数が、一定回数を超えた場合に、通信相手に対して応答しないように、通信相手に対する応答を制限する制限手段(例えば、図2の確認部12)をさらに備えることを特徴とする。
請求項5に記載の通信方法は、通信相手からの接続要求に応じて、認証を行う認証ステップ(例えば、図5のステップS13)と、通信相手の認証を失敗した失敗回数に応じて、その通信相手に応答を返すまでの応答時間を長くするように、通信相手との通信を行う通信手段を制御する制御ステップ(例えば、図6のステップS46)とを含むことを特徴とする。
請求項6に記載のプログラムは、通信相手からの接続要求に応じて、認証を行う認証ステップ(例えば、図5のステップS13)と、通信相手の認証を失敗した失敗回数に応じて、その通信相手に応答を返すまでの応答時間を長くするように、通信相手との通信を行う通信手段を制御する制御ステップ(例えば、図6のステップS46)とをコンピュータに実行させることを特徴とする。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
図1は、本発明を適用したネットワークシステムの一実施の形態の構成例を示している。
図1において、アクセスポイント1は、無線通信でデータの送受信をする無線LAN(Local Area Network)を構成する中継装置で、コンピュータ2および3は、無線LANを構成する端末装置である。アクセスポイント1は、インターネットや有線LAN等のネットワーク4に接続されており、コンピュータ2および3は、アクセスポイント1を経由してネットワーク4に接続することが可能となる。また、ネットワーク4には、コンピュータ5が接続されている。
コンピュータ2または3は、無線LAN用の通信インタフェース(NIC(Network Interface Card))を有しており、例えば、ネットワーク4を介してコンピュータ5と通信を行う場合、アクセスポイント1に対して接続要求を行う。そして、コンピュータ2または3が、アクセスポイント1に対して接続要求を行うと、アクセスポイント1は、コンピュータ2または3との間で、WEP(Wired Equivalent Privacy)キー(暗号キー)を用いて、いわゆるチャレンジ・レスポンス型の認証を行う。
例えば、アクセスポイント1とコンピュータ2とに、同一のWEPキーが設定されている場合、認証は成功し、アクセスポイント1は、コンピュータ2に接続許可を与える。これにより、コンピュータ2は、アクセスポイント1を介してネットワーク4に接続することが可能となり、コンピュータ5と通信を行うことができる。
一方、例えば、アクセスポイント1とコンピュータ3とに、同一のWEPキーが設定されていない場合(異なるWEPキーが設定されている場合、または、アクセスポイント1にWEPキーが設定されているが、コンピュータ3にはWEPキーが設定されていない場合)、認証は失敗するので、アクセスポイント1は、コンピュータ3との通信を拒否する。従って、コンピュータ3は、アクセスポイント1を介してネットワーク4に接続することができず、コンピュータ5と通信を行うことができない。
次に、図2は、図1のアクセスポイント1の機能的な構成例を示すブロック図である。
アクセスポイント1は、通信部11、確認部12、リスト記憶部13、認証部14、WEPキー記憶部15、および更新部16を備えて構成されている。
通信部11は、無線通信により、コンピュータ2や3との間でデータの送受信をすると共に、有線通信により、ネットワーク4との間でデータの送受信をすることにより、例えば、コンピュータ2や3とネットワーク4との間の通信を中継する。また、通信部11は、例えば、コンピュータ2や3から受信したデータが、接続を要求するパケットである接続要求パケットである場合、その接続要求パケットを、通信部11から確認部12に供給する。さらに、通信部11は、更新部16の制御に従って、接続要求パケットを送信してきたコンピュータ2や3に対して、応答を返す(送信する)。
確認部12は、リスト記憶部13に記憶された、後述する認証失敗MACアドレス情報リストを参照し、その認証失敗MACアドレス情報リストに基づいて、通信部11からの接続要求パケットを破棄するか、または、認証部14に供給する。
リスト記憶部13は、認証失敗MACアドレス情報リストを記憶する。認証失敗MACアドレス情報リストについては、図3を参照して、後述する。
認証部14は、確認部12からの接続要求パケットに対して、WEPキー記憶部15に記憶されたWEPキーを用いて認証を行い、認証に成功した場合、その接続要求パケットを送信してきたコンピュータ2や3の接続を許可する。また、認証部14は、認証に失敗した場合、リスト記憶部13に記憶された認証失敗MACアドレス情報リストを更新するために、認証に失敗したコンピュータ2や3からの接続要求パケットを更新部16に供給する。
WEPキー記憶部15は、WEPキーを記憶する。なお、WEPキー記憶部15へのWEPキーの登録(記憶)は、例えば、ユーザが、アクセスポイント1の図示せぬ操作部を操作することにより、あるいは、ユーザが、コンピュータ5を操作して、WEPキーを入力し、そのWEPキーを、コンピュータ5からネットワーク4を介してアクセスポイント1に供給すること等により、行うことができる。
更新部16は、認証部14から供給された接続要求パケットに基づき、リスト記憶部13に記憶された認証失敗MACアドレス情報リストを更新する。また、更新部16は、リスト記憶部13に記憶された認証失敗MACアドレス情報リストに基づき、接続要求パケットを送信してきたコンピュータ2や3に対する、通信部11による応答の送信の制御を行う。
図3は、図2のリスト記憶部13に記憶される認証失敗MACアドレス情報リストを示す図である。
認証失敗MACアドレス情報リストには、アクセスポイント1に対して接続要求パケットを送信してきた通信相手のうちの、認証に失敗した通信相手の「MACアドレス」に対応付けて、そのMACアドレスによって特定される通信相手(装置)の認証に失敗した回数である「失敗回数」、その通信相手に対して何ら応答しない状態となることを表す1ビットの「応答拒否フラグ」、通信相手に対する応答を一時的に中断する状態となることを表す1ビットの「応答中断フラグ」、接続要求パケットに対する応答を通信相手に返すことを中断する期間を表す「中断期間」が登録(記憶)される。
上述したように、認証失敗MACアドレス情報リストの更新は、図2の更新部16によって行われる。
即ち、例えば、いま、コンピュータ3(図1)からアクセスポイント1に対して、接続要求パケットが送信され、アクセスポイント1において、コンピュータ3からの接続要求パケットが、通信部11で受信されて、確認部12を介して認証部14に供給されたとする。さらに、認証部14において、その接続要求パケットに対する認証が行われ、その認証が失敗したとする。
例えば、コンピュータ3の接続要求パケットに対する認証の失敗が初めてである場合、認証失敗MACアドレス情報リストには、コンピュータ3のMACアドレスのエントリ(1行)が存在しないため、更新部16は、認証失敗MACアドレス情報リストに、コンピュータ3のMACアドレスのエントリを新たに作成し、そのエントリに、コンピュータ3のMACアドレスを登録する。ここで、コンピュータ3のMACアドレスは、コンピュータ3からの接続要求パケットに含まれており、更新部16は、コンピュータ3からの接続要求パケットを参照することで、コンピュータ3のMACアドレスを認識する。
さらに、更新部16は、失敗回数を1回として、その1回の失敗回数に応じた中断期間としての、例えば、0秒を決定し、コンピュータ3のMACアドレスのエントリに、その失敗回数、および中断期間を登録する。そして、いまの場合、コンピュータ3のMACアドレスのエントリにおける中断期間、即ち、接続要求パケットに対する応答を返すことを中断する期間は、0秒であるので、更新部16は、認証の失敗の後すぐに、コンピュータ3へ認証の失敗を表す応答を送信するように通信部11を制御する。
一方、例えば、コンピュータ3の(接続要求パケットに対する)認証の失敗が2回目以降である場合、認証失敗MACアドレス情報リストには、コンピュータ3のMACアドレスのエントリが存在するので、更新部16は、そのエントリにおける失敗回数を1回増やす更新をし、その更新後の失敗回数に応じた中断期間を決定する。即ち、更新部16は、例えば、失敗回数が2回目である場合には中断期間を1秒に、失敗回数が3回目である場合には中断期間を2秒に、失敗回数が4回目である場合には中断期間を4秒に、失敗回数が5回目である場合には中断期間を8秒に、といったように、失敗回数が1回増えるたびに中断期間を前回の2倍の値に決定する。
そして、更新部16は、認証失敗MACアドレス情報リストのコンピュータ3のMACアドレスのエントリを、上述の失敗回数および中断期間によって更新し、さらに、そのエントリの応答中断フラグを、0または1のうちの、応答を一時的に中断する状態であることを示す、例えば、1にセットする。また、更新部16は、直前の認証の失敗から中断期間が経過した後に、認証の失敗を表す応答をコンピュータ3へ送信するように通信部11を制御する。なお、応答中断フラグは、直前の認証の失敗から中断期間の経過後に、更新部16によって0にリセットされる。
その他、更新部16は、コンピュータ3のMACアドレスのエントリにおける更新後の失敗回数が所定の閾値としての一定回数以下であるか否かを判定し、失敗回数が所定の閾値以下でない場合、そのMACアドレスの通信相手であるコンピュータ3からの接続要求パケットに対する応答を制限(拒否)することを決定する。例えば、所定の閾値が6回であった場合、更新部16は、コンピュータ3のMACアドレスのエントリにおける失敗回数が7回に更新されたとき、コンピュータ3からの接続要求パケットに対する応答を制限(拒否)することを決定する。
そして、更新部16は、認証失敗MACアドレス情報リストのコンピュータ3のMACアドレスのエントリにおける応答拒否フラグを、0または1のうちの、接続要求パケットに対する応答を制限(拒否)することを表す、例えば、1にセットする。
図2のアクセスポイント1は、専用のハードウエアにより実現することもできるし、ソフトウェアにより実現することもできる。ソフトウェアによって実現する場合に、そのソフトウェアを構成するプログラムが、汎用のコンピュータやマイクロコンピュータ等にインストールされる。
そこで、図4は、図2のアクセスポイント1を実現するプログラムがインストールされるコンピュータ20の一実施の形態の構成例を示すブロック図である。
コンピュータ20は、ROM(Read Only Memory)21、フラッシュメモリ(EEPROM(Electronically Erasable and Programmable Read Only Memory))22、CPU(Central Processing Unit)23、RAM(Random Access Memory)24、および通信部25を備えて構成されており、ROM21、フラッシュメモリ22、CPU23、RAM24、および通信部25のそれぞれは、バス26により相互に接続されている。
ROM21やフラッシュメモリ22は、プログラムを記憶し、CPU23は、そのプログラムを実行することにより各種の処理を行う。また、フラッシュメモリ22は、アクセスポイント1の電源がオフされた後も保持する必要があるWEPキーおよび認証失敗MACアドレス情報リスト等も記憶する。RAM24は、CPU23が実行するプログラムや必要なデータなどを適宜記憶する。通信部25は、CPU23に制御されて、有線通信または無線通信でデータの送受信を行う。フラッシュメモリ22に記憶されるプログラムやデータは、通信部25を介して書き換える(バージョンアップする)ことができる。
例えば、通信部25は、コンピュータ2からの接続要求パケットを受信し、CPU23に供給する。CPU23は、通信部25から接続要求パケットが供給されてくると、フラッシュメモリ22に記憶されたWEPキーによる認証等を行う。また、CPU23は、コンピュータ2の認証に成功した場合、コンピュータ2に接続許可を与え、これにより、コンピュータ2からのデータを中継する。また、コンピュータ2の認証に失敗した場合、CPU23は、フラッシュメモリ22に記憶された認証失敗MACアドレス情報リストを更新し、コンピュータ2へ認証に失敗した旨の応答を送信するように通信部25を制御する。
次に、図5のフローチャートを参照して、図2のアクセスポイント1が、接続要求してきたコンピュータ2や3の認証を行って、接続許可を与える接続許可処理について説明する。
ステップS11において、通信部11は、コンピュータ2や3などの通信相手からの接続要求パケットが送信されてくるのを待機しており、接続要求パケットが送信されてくると、その接続要求パケットを受信し、確認部12に供給して、ステップS12に進む。
ステップS12において、確認部12は、リスト記憶部13に記憶された認証失敗MACアドレス情報リストを参照し、通信部11からの接続要求パケットに含まれるMACアドレスによって特定される通信相手の認証を行うべきか否かを確認する確認処理を行う。ステップS12の確認処理の詳細は、図7を参照して後述するが、ステップS12において、通信相手の認証を行うべきでないことが確認された場合、確認部12は、その通信相手からの接続要求パケット、即ち、通信部11からの接続要求パケットを破棄して、ステップS11に戻る。
一方、ステップS12において、通信相手の認証を行うべきであることが確認された場合、確認部12は、通信部11からの接続要求パケットを認証部14に供給して、ステップS13に進み、認証部14は、WEPキー記憶部15に記憶されたWEPキーによって、確認部12からの接続要求パケットを送信してきた通信相手を認証する認証処理を行い、その認証の正否を判定する。
ステップS13において、接続要求パケットを送信してきた通信相手の認証に成功したと判定された場合、即ち、通信相手としての、例えば、コンピュータ2や3に、WEPキー記憶部15に記憶されたWEPキーと同一のWEPキーが記憶(設定)されており、その結果、そのWEPキーで暗号化されたデータが、接続要求パケットに配置されていて、認証部14において、その接続要求パケットに配置されたデータを、WEPキー記憶部15に記憶されたWEPキーで、正しく復号することができる場合、認証部14は、更新部16を介して、通信部11を制御することにより、その接続要求パケットを送信してきた通信相手に、認証が成功した旨の応答を送信させ、接続許可処理を終了する。
ここで、通信部11(アクセスポイント1)から、認証に成功した旨の応答を受信した通信相手は、その後、アクセスポイント1を経由して通信が可能となる(接続許可が与えられる)。
一方、ステップS13において、接続要求パケットを送信してきた通信相手の認証に失敗したと判定された場合、即ち、通信相手としての、例えば、コンピュータ2や3に、WEPキー記憶部15に記憶されたWEPキーと同一のWEPキーが設定されておらず、その結果、認証部14において、接続要求パケットに配置されたデータを、WEPキー記憶部15に記憶されたWEPキーで、正しく復号することができない場合、認証部14は、確認部12からの接続要求パケットを、更新部16に供給して、ステップS14に進む。
ステップS14において、更新部16は、認証部14からの接続要求パケットに基づき、リスト記憶部13に記憶された認証失敗MACアドレス情報リストを更新する更新処理を行う。ステップS14の更新処理の詳細は、図6を参照して後述するが、更新処理では、更新部16は、認証失敗MACアドレス情報リストの更新の他、更新後の認証失敗MACアドレス情報リストに基づき、認証に失敗した通信相手に対して、その失敗した旨を送信するように、通信部11の制御も行う。ステップS14での処理後は、ステップS11に戻り、以下、同様の処理が繰り返される。
次に、図6のフローチャートを参照して、図5のステップS14で更新部16が行う更新処理について説明する。
図5で説明したように、認証部14において、認証が失敗すると、その認証の対象となった通信相手からの接続要求パケットが、認証部14から更新部16に供給され、更新部16は、認証部14から、認証に失敗した通信相手からの接続要求パケットが供給されると、更新処理を行う。
即ち、更新処理では、ステップS41において、更新部16は、認証部14からの接続要求パケットのMACアドレス、つまり、認証に失敗した通信相手のMACアドレス(以下、適宜、失敗MACアドレスという)を認識する。さらに、更新部16は、リスト記憶部13に記憶された認証失敗MACアドレス情報リストから、失敗MACアドレスのエントリを検索し、そのエントリにおける認証に失敗した失敗回数を1回だけインクリメントすることにより更新し、ステップS42に進む。なお、リスト記憶部13に記憶された認証失敗MACアドレス情報リストに、失敗MACアドレスのエントリが存在しない場合には、更新部16は、その認証失敗MACアドレス情報リストに、失敗MACアドレスのエントリを、新たに追加し、さらに、そのエントリにおける失敗回数を1回とする。
ステップS42において、更新部16は、認証失敗MACアドレス情報リストにおける更新後の失敗回数が所定の閾値としての一定回数以下であるか否かを判定し、失敗回数が一定回数以下であると判定した場合、ステップS43に進む。
ステップS43において、更新部16は、更新後の失敗回数に応じて長くなる中断期間を決定して、ステップS44に進み、リスト記憶部13に記憶された認証失敗MACアドレス情報リストの失敗MACアドレスのエントリを、ステップS43で決定された中断期間によって更新する。なお、失敗MACアドレスのエントリが直前のステップS41で新たに追加された場合、そのエントリにおける失敗回数は1回に、中断期間は0秒に、それぞれされる。ステップS44の処理が行われた後、ステップS45に進む。
ステップS45において、更新部16は、認証失敗MACアドレス情報リストの失敗MACアドレスのエントリにおける応答中断フラグを、応答の中断を表す1にセットする。なお、応答中断フラグは、直前の認証の失敗から中断期間が経過すると、更新部16によって、0にリセットされる。
ステップS45の処理後は、ステップS46に進み、更新部16は、直前のステップS43で決定された中断期間の経過後に、接続要求パケットを送信してきた通信相手(失敗MACアドレスによって特定される装置)に対して認証に失敗した旨の応答を送信するように、通信部11を制御して、更新処理を終了し、図5のステップS11に戻る。
このように、アクセスポイント1では、認証の失敗回数に応じて長くなるように決定される中断期間の経過後に、認証に失敗した旨の応答を送信することで、通信相手の認証に失敗した失敗回数が増加するに従って、その通信相手に対して認証に失敗した旨の応答を送信する間隔が長くなる。従って、認証の失敗回数の多い通信相手に対するアクセスポイント1の負担が低減する。
一方、ステップS42において、更新部16が、失敗MACアドレスのエントリにおける失敗回数が所定の閾値としての一定回数以下でないと判定した場合、即ち、例えば、失敗MACアドレスによって特定される通信相手から、一定回数を超える接続要求パケットが送信され、そのすべての接続要求パケットについての認証が失敗し、従って、失敗MACアドレスによって特定される通信相手によって、総当り攻撃がされている可能性が極めて高い場合、ステップS47に進み、更新部16は、失敗MACアドレスによって特定される通信相手に対する応答を制限(拒否)することを決定し、ステップS48に進む。
ステップS48において、更新部16は、リスト記憶部13に記憶された認証失敗MACアドレス情報リストの失敗MACアドレスのエントリにおける応答拒否フラグを、応答を制限する旨を表す1にセットして、更新処理を終了し、図5のステップS11に戻る。
次に、図7のフローチャートを参照して、図5のステップS12で確認部12が行う確認処理について説明する。
ステップS21において、確認部12は、通信部11からの接続要求パケットから、その接続要求パケットを送信してきた通信相手のMACアドレスを取得し、ステップS22に進む。ステップS22において、確認部12は、リスト記憶部13に記憶された認証失敗MACアドレス情報リストのうちの、ステップS21で取得したMACアドレスのエントリを参照し、そのエントリにおける応答拒否フラグが、応答を制限(拒否)する旨の1にセットされているか否かを判定する。
ステップS22において、失敗MACアドレスのエントリにおける応答拒否フラグが1にセットされていると判定された場合、即ち、失敗MACアドレスによって特定される通信相手についての認証が、既に、一定回数を超える回数だけ失敗しており、その通信相手が総当り攻撃をしている可能性が極めて高い場合、ステップS24に進み、確認部12は、その通信相手から送信され、通信部11から供給された接続要求パケットを破棄して、確認処理を終了し、図5のステップS11に戻る。
このように、アクセスポイント1では、認証が一定回数を超える回数だけ失敗した通信相手からの接続要求パケットは破棄され、その接続要求パケットに対して、認証は勿論、応答の送信も行なわれない。従って、総当り攻撃に対するアクセスポイント1の負荷を軽減するともに、そのような総当り攻撃による不正アクセスを、容易に防止することができる。
一方、ステップS22において、失敗MACアドレスのエントリにおける応答拒否フラグが1にセットされていないと判定された場合、即ち、失敗MACアドレスによって特定される通信相手についての認証の失敗回数が、まだ、一定回数以下である場合、ステップS23に進み、確認部12は、失敗MACアドレスのエントリにおける応答中断フラグが、応答を一時的に中断する旨を表す1にセットされているか否かを判定する。
ステップS23において、失敗MACアドレスのエントリにおける応答中断フラグが1にセットされていると判定された場合、即ち、失敗MACアドレスによって特定される通信相手についての認証が、一定回数以下の失敗回数だけ失敗しており、その失敗回数に応じて決定された中断期間だけの時間が、直前の認証の失敗から、まだ経過していない場合、ステップS24に進み、確認部12は、上述したように、失敗MACアドレスによって特定される通信相手から送信され、通信部11から供給された接続要求パケットを破棄し、確認処理を終了して、図5のステップS11に戻る。
このように、アクセスポイント1では、認証が一定回数以下の回数しか失敗していない通信相手からの接続要求パケットであっても、直前の認証の失敗から中断期間が経過していない場合には破棄され、その接続要求パケットに対して、認証は勿論、応答の送信も行なわれない。
上述したように、中断期間は、失敗回数に応じて、失敗回数が多くなるほど長い期間(時間)に決定されるから、失敗MACアドレスによって特定される通信相手については、認証の失敗回数が増加するにつれ、つまり、認証の失敗が続くにつれ、接続要求パケットに対する応答を返すことを中断する中断期間が長くなる。さらに、直前の認証の失敗から、中断期間が経過するまでは、その間に、失敗MACアドレスによって特定される通信相手から接続要求パケットが送信されてきても破棄される。
失敗MACアドレスによって特定される通信相手についての認証の失敗が続くということは、その通信相手が総当り攻撃をしている可能性が高いということであり、従って、そのような通信相手からの接続要求パケットを破棄して認証を行わず、また、接続要求パケットに対する応答を行うまでの時間を長くすることにより、総当り攻撃に対するアクセスポイント1の負荷を軽減するとともに、そのような総当り攻撃による不正アクセスを、容易に防止することができる。
なお、失敗MACアドレスによって特定される通信相手についての認証の失敗が続き、その結果、失敗回数が一定回数を超えた場合には、上述したように、その通信相手のMACアドレス(失敗MACアドレス)のエントリにおける応答拒否フラグが1にセットされ、以後、その通信相手からの接続要求パケットは破棄され続け、接続要求パケットに対して、認証は勿論、応答の送信も行なわれなくなる。
一方、ステップS23において、失敗MACアドレスのエントリにおける応答中断フラグに1がセットされていないと判定された場合、確認処理を終了して、図5のステップS13に進み、上述した認証処理が行われる。
なお、更新部16では、応答拒否フラグは、1にセットされた後、一定時間が経過したときに、0にリセットすることができる。また、アクセスポイント1を管理するユーザが、1にセットされている応答拒否フラグを0にリセットすることもできる。さらに、更新部16では、認証失敗MACアドレス情報リストのエントリのうちの、最後に更新されてから一定期間更新がされていないエントリを削除することができる。
以上のように、失敗回数に応じて長くなる中断期間を決定し、その中断期間の経過後に、応答が返されるので、即ち、通信相手の認証に失敗した失敗回数に応じて、その通信相手に応答を返すまでの応答時間(応答を返すことを中断する中断期間)を長くするように、通信部11が制御されるので、アクセスポイント1に対する不正なアクセスを困難にすることができる。
例えば、アクセスポイント1に設定されたWEPキーを知らないユーザが、不正にアクセスポイント1を利用しようとして、コンピュータ3から、連続して様々なWEPキーを含んだ接続要求パケットを送信する総当り攻撃を行っても、認証に失敗し、その認証の失敗回数に応じて長くなる中断期間が決定される。そして、アクセスポイント1では、中断期間にコンピュータ3から送信されてきた接続要求パケットは破棄され、これにより、中断期間にコンピュータ3から送信されてくる接続要求パケットに対する応答が制限されるので、コンピュータ3からの不正なアクセスが成功してしまうまでの時間が飛躍的に長くなる。従って、コンピュータ3からの総当り攻撃による不正なアクセスが成功することを、困難にすることができる。
また、総当り攻撃を行うコンピュータ3の認証の失敗回数が一定回数を越えると、アクセスポイント1は、コンピュータ3からの接続要求パケットを破棄し続けるので、認証が誤って成功することにより、コンピュータ3からの不正なアクセスが成功することがなくなる。
なお、確認部12による接続要求パケットの破棄(図7のステップS24)は、例えば、MACフィルタリングによって行うことができる。即ち、認証失敗MACアドレス情報リストにおいて、応答拒否フラグまたは応答中断フラグが1になっているエントリのMACアドレス(失敗MACアドレス)を、MACフィルタによってパケットを遮断(廃棄)するMACアドレスのリスト(以下、フィルタリストという)に登録し、そのフィルタリストに従って、MACフィルタリングを行うことにより、応答拒否フラグまたは応答中断フラグが1になっているエントリのMACアドレス(失敗MACアドレス)によって特定される通信相手からの接続要求パケットを破棄することで、その接続要求パケットに対する応答を制限することができる。
MACフィルタリングは、OSI(Open Systems Interconnection)階層モデルのデータリンク層で行われる処理であり、従って、MACフィルタリングによって、接続要求パケットを破棄することで、データリンク層より上位の層で接続要求パケットを処理する必要がなくなるので、不正なアクセスによるアクセスポイント1の負荷を低減することができる。
次に、図8は、本発明を適用したネットワークシステムの他の一実施の形態の構成例を示している。
図8おいて、サーバ50は、ネットワーク4を介してクライアント51と接続されており、サーバ50が接続(ログイン)を許可したユーザ(このユーザが使用するクライアント51)にのみ、サービスを提供する構成となっている。そして、クライアント51のユーザが、サーバ50に対して接続要求を行うと、サーバ50は、ユーザIDおよびパスワードによる認証を行う。ここで、ユーザIDおよびパスワードによる認証を行うサーバ50とクライアント51との間の通信に使用される通信プロトコルとしては、例えば、NetBIOS(Network Basic Input Output System)、smb(Server Message Block)、およびhttp(HyperText Transfer Protocol)などがある。
例えば、クライアント51のユーザが、サーバ50に接続するための(正規の)ユーザIDおよびパスワードを有している場合、認証は成功し、サーバ50は、クライアント51からの接続要求に許可を与える。これにより、クライアント51は、サーバ50に接続することが可能となり、サーバ50に記憶されている、例えば、webページやコンテンツ、その他のファイルなどにアクセスすることができる。
一方、クライアント51を使用するユーザが、サーバ50に接続するためのユーザIDおよびパスワードを有していない場合、認証は失敗するので、サーバ50はクライアント51との接続を拒否する。
次に、図9は、図8のサーバ50の機能的な構成例を示すブロック図である。
サーバ50は、通信部61、確認部62、リスト記憶部63、認証部64、ユーザID/パスワード記憶部65、および更新部66を備えて構成されている。
通信部61は、ネットワーク4を介してクライアント51とデータの送受信をする。また、通信部61は、例えば、クライアント51から受信したデータが、接続を要求するパケットである接続要求パケットである場合、その接続要求パケットを、通信部61から確認部62に供給する。さらに、通信部61は、更新部66の制御に従って、接続要求パケットを送信してきたクライアント51に対して、応答を返す(送信する)。
確認部62は、リスト記憶部63に記憶された、後述する認証失敗ユーザID情報リストを参照し、その認証失敗ユーザID情報リストに基づいて、通信部61からの接続要求パケットを破棄するか、または、認証部64に供給する。
リスト記憶部63は、認証失敗ユーザID情報リストを記憶する。認証失敗ユーザID情報リストについては、図10を参照して、後述する。
認証部64は、確認部62からの接続要求パケットに対して、ユーザID/パスワード記憶部65に記憶されたユーザIDおよびパスワードを用いて認証を行い、認証に成功した場合、その接続要求パケットを送信してきたクライアント51の接続を許可する。また、認証部64は、認証に失敗した場合、リスト記憶部63に記憶された認証失敗ユーザID情報リストを更新するために、認証に失敗したクライアント51からの接続要求パケットを更新部66に供給する。
ユーザID/パスワード記憶部65は、正規のユーザIDおよびパスワードを記憶する。なお、ユーザID/パスワード記憶部65に記憶させるユーザIDおよびパスワードは、例えば、いわゆるユーザ登録時に、サーバ50が発行することもできるし、クライアント51のユーザが、ユーザ登録時に決めることもできる。
更新部66は、認証部64から供給された接続要求パケットに基づき、リスト記憶部63に記憶された認証失敗ユーザID情報リストを更新する。また、更新部66は、リスト記憶部63に記憶された認証失敗ユーザID情報リストに基づき、接続要求パケットを送信してきたクライアント51に対する、通信部61による応答の送信の制御を行う。
図10は、図9のリスト記憶部63に記憶される認証失敗ユーザID情報リストを示す図である。
認証失敗ユーザID情報リストには、サーバ50に対して接続要求パケットを送信してきた通信相手(ユーザ)のうちの、認証に失敗した通信相手の「ユーザID」に対応付けて、そのユーザIDによって特定される通信相手の認証に失敗した回数である「失敗回数」、その通信相手に対して何ら応答しない状態となることを表す1ビットの「応答拒否フラグ」、通信相手に対する応答を一時的に中断する状態となることを表す1ビットの「応答中断フラグ」、接続要求パケットに対する応答を通信相手(ユーザが使用しているクライアント)に返すことを中断する期間を表す「中断期間」が登録される。
上述したように、認証失敗ユーザID情報リストの更新は、図9の更新部66によって行われる。
即ち、例えば、いま、あるユーザがクライアント51(図8)を操作することにより、クライアント51からサーバ50に対して、接続要求パケットが送信され、サーバ50において、クライアント51からの接続要求パケットが、通信部61で受信されて、確認部62を介して認証部64に供給されたとする。さらに、その接続要求パケットには、認証に用いられるユーザIDとパスワードとが含まれており、認証部64において、接続要求パケットに含まれているユーザIDおよびパスワードを用いた認証が行われ、その認証が失敗したとする。
例えば、クライアント51からの接続要求パケットに含まれているユーザIDおよびパスワードを用いた認証の失敗が初めてである場合、認証失敗ユーザID情報リストには、そのユーザID、即ち、クライアント51を使用しているユーザのユーザIDのエントリ(1行)が存在しないため、更新部66は、認証失敗ユーザID情報リストに、クライアント51を使用しているユーザのユーザIDのエントリを新たに作成し、そのエントリに、このユーザIDを登録する。
さらに、更新部66は、失敗回数を1回として、その1回の失敗回数に応じた中断期間としての、例えば、0秒を決定し、クライアント51を使用しているユーザのユーザIDのエントリに、その失敗回数、および中断期間を登録する。そして、いまの場合、クライアント51を使用しているユーザのユーザIDのエントリにおける中断期間、即ち、接続要求パケットに対する応答を返すまでの期間は、0秒であるので、更新部66は、認証の失敗の後すぐに、クライアント51へ認証の失敗を表す応答を送信するように通信部61を制御する。
一方、例えば、クライアント51からの接続要求パケット含まれているユーザIDおよびパスワードを用いた認証の失敗が2回目以降である場合、認証失敗ユーザID情報リストには、そのユーザID、即ち、クライアント51を使用しているユーザのユーザIDのエントリが存在するので、更新部66は、そのエントリにおける失敗回数を1回増やす更新をし、その更新後の失敗回数に応じた中断期間を決定する。即ち、更新部66は、例えば、失敗回数が2回目である場合には中断期間を1秒に、失敗回数が3回目である場合には中断期間を2秒に、失敗回数が4回目である場合には中断期間を4秒に、失敗回数が5回目である場合には中断期間を8秒に、といったように、失敗回数が1回増えるたびに中断期間を前回の2倍の値に決定する。
そして、更新部66は、認証失敗ユーザID情報リストのクライアント51を使用しているユーザのユーザIDのエントリを、上述の失敗回数および中断期間によって更新し、さらに、そのエントリの応答中断フラグを、0または1のうちの、応答を一時的に中断する状態であることを示す、例えば、1にセットする。また、更新部66は、直前の認証の失敗から中断期間が経過した後に、認証の失敗を表す応答をクライアント51へ送信するように通信部61を制御する。なお、応答中断フラグは、直前の認証の失敗から中断期間の経過後に、更新部66によって0にリセットされる。
その他、更新部66は、クライアント51を使用しているユーザのユーザIDのエントリにおける更新後の失敗回数が所定の閾値としての一定回数以下であるか否かを判定し、失敗回数が所定の閾値以下でない場合、そのユーザIDを含む接続要求パケットに応答することを制限(拒否)することを決定する。例えば、所定の閾値が6回であった場合、更新部66は、クライアント51を使用しているユーザのユーザIDのエントリにおける失敗回数が7回に更新されたとき、そのユーザIDを含む接続要求パケットに対する応答を制限することを決定する。
そして、更新部66は、認証失敗ユーザID情報リストのクライアント51を使用しているユーザのユーザIDのエントリにおける応答拒否フラグを、0または1のうちの、接続要求パケットに対する応答を制限することを表す、例えば、1にセットする。
次に、図11は、図8のサーバ50のハードウエアの構成例を示すブロック図である。
サーバ50は、コンピュータであり、ROM71、ハードディスク72、CPU73、RAM74、通信部75(例えば、ネットワークインターフェースカードなど)、ドライブ76、出力部77(例えば、液晶ディスプレイなど)、および入力部78(キーボードや、マウス、マイクなど)を備えて構成されている。
通信部75、ドライブ76、出力部77、および入力部78は、入出力インタフェース79に接続されており、ROM71、ハードディスク72、CPU73、RAM74、および入出力インタフェース79は、バス80により相互に接続されている。
ROM71やハードディスク72は、プログラムを記憶し、CPU73は、そのプログラムを実行する。これにより、図9に示した機能的な構成が、等価的に実現される。また、ハードディスク72は、図9のリスト記憶部63やユーザID/パスワード記憶部65として機能し、ユーザIDおよびパスワード、並びに認証失敗MACアドレス情報リスト等を記憶する。RAM74は、CPU73が実行するプログラムや必要なデータなどを適宜記憶する。
通信部75は、図9の通信部61に対応し、有線通信または無線通信でデータの送受信を行う。
なお、ハードディスク72に記憶される(インストールする)プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、サーバ50に無線で転送したり、LAN、インターネットといったネットワークを介して、サーバ50に有線で転送したりすることができる。
また、プログラムは、ドライブ76に装着されたリムーバブル記録媒体81から読み出し、ハードディスク72にインストールすることもできる。リムーバブル記録媒体81としては、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリを使用することができる。このようなリムーバブル記録媒体81は、いわゆるパッケージソフトウエアとして提供することができる。
また、例えば、サーバ50を管理するユーザ(管理者)は、出力部77に認証失敗ユーザID情報リストを表示させて、その内容を入力部78を操作することにより書き換えたり、接続要求パケットに応答することが制限される失敗回数の所定の閾値などの設定の変更をすることができる。
次に、図12のフローチャートを参照して、サーバ50が、接続要求してきたクライアント51のユーザに対して認証を行って、接続許可を与える接続許可処理について説明する。
ステップS51において、通信部61は、ユーザが使用するクライアント51などの通信相手からの接続要求パケットが送信されてくるのを待機しており、接続要求パケットが送信されてくると、その接続要求パケットを受信し、確認部62に供給して、ステップS52に進む。
ステップS52において、確認部62は、リスト記憶部63に記憶された認証失敗ユーザID情報リストを参照し、通信部61からの接続要求パケットに含まれるユーザIDによって特定される通信相手(ユーザ)の認証を行うべきか否かを確認する確認処理を行う。ステップS52の確認処理の詳細は、図14を参照して後述するが、ステップS52において、通信相手(ユーザ)の認証を行うべきでないことが確認された場合、確認部62は、その通信相手からの接続要求パケット、即ち、通信部61からの接続要求パケットを破棄して、ステップS51に戻る。
一方、ステップS52において、通信相手(ユーザ)の認証を行うべきであることが確認された場合、確認部62は、通信部61からの接続要求パケットを認証部64に供給して、ステップS53に進み、認証部64は、ユーザID/パスワード記憶部65に記憶されたユーザIDおよびパスワードによって、確認部62からの接続要求パケットを送信してきた通信相手(ユーザ)認証する認証処理を行い、その認証の正否を判定する。
ステップS53において、接続要求パケットを送信してきた通信相手(例えば、接続要求パケットを送信してきたクライアント51を使用しているユーザ)の認証に成功したと判定された場合、即ち、その接続要求パケットに含まれているユーザIDとパスワードにそれぞれ一致するユーザIDとパスワードが、ユーザID/パスワード記憶部65に記憶されている場合、認証部64は、更新部66を介して、通信部61を制御することにより、その接続要求パケットを送信してきた通信相手に、認証が成功した旨の応答を送信させ、接続許可処理を終了する。
ここで、通信部61(サーバ50)から、認証に成功した旨の応答を受信した通信相手は、その後、サーバ50に記憶されているファイルなどにアクセスすることが可能となる。
一方、ステップS53において、接続要求パケットを送信してきた通信相手の認証に失敗したと判定された場合、即ち、その接続要求パケットに含まれているユーザIDとパスワードにそれぞれ一致するユーザIDとパスワードが、ユーザID/パスワード記憶部65に記憶されていない場合、認証部64は、確認部62からの接続要求パケットを、更新部66に供給して、ステップS54に進む。
ステップS54において、更新部66は、認証部64からの接続要求パケットに基づき、リスト記憶部63に記憶された認証失敗ユーザID情報リストを更新する更新処理を行う。ステップS54の更新処理の詳細は、図13を参照して後述するが、更新処理では、更新部66は、認証失敗ユーザID情報リストの更新の他、更新後の認証失敗ユーザID情報リストに基づき、認証に失敗した通信相手に対して、その失敗した旨を送信するように、通信部61の制御も行う。ステップS54での処理後は、ステップS51に戻り、以下、同様の処理が繰り返される。
次に、図13のフローチャートを参照して、図12のステップS54で更新部66が行う更新処理について説明する。
図12で説明したように、認証部64において、認証が失敗すると、その認証の対象となった通信相手からの接続要求パケットが、更新部66に供給され、更新部66は、認証部64から、認証に失敗した通信相手からの接続要求パケットが供給されると、更新処理を行う。
即ち、更新処理では、ステップS81において、更新部66は、認証部64からの接続要求パケットに含まれるユーザID、つまり、認証に失敗した通信相手である、例えば、クライアント51を使用しているユーザのユーザID(以下、適宜、失敗ユーザIDという)を認識する。さらに、更新部66は、リスト記憶部63に記憶された認証失敗ユーザID情報リストから、失敗ユーザIDのエントリを検索し、そのエントリにおける認証に失敗した失敗回数を1回だけインクリメントすることにより更新し、ステップS82に進む。なお、リスト記憶部63に記憶された認証失敗ユーザID情報リストに、失敗ユーザIDのエントリが存在しない場合には、更新部66は、その認証失敗ユーザID情報リストに、失敗ユーザIDのエントリを、新たに追加し、さらに、そのエントリにおける失敗回数を1回とする。
ステップS82において、更新部66は、認証失敗ユーザID情報リストにおける更新後の失敗回数が所定の閾値としての一定回数以下であるか否かを判定し、失敗回数が一定回数以下であると判定した場合に、ステップS83に進む。
ステップS83において、更新部66は、更新後の失敗回数に応じて長くなる中断期間を決定して、ステップS84に進み、リスト記憶部63に記憶された認証失敗ユーザID情報リストの失敗ユーザIDのエントリをステップS83で決定された中断期間によって更新する。なお、失敗ユーザIDのエントリが直前のステップS81で新たに追加された場合、そのエントリにおける失敗回数は1回に、中断期間は0秒に、それぞれされる。ステップS84の処理が行われた後、ステップS85に進む。
ステップS85において、更新部66は、認証失敗ユーザID情報リストの失敗ユーザIDのエントリにおける応答中断フラグを、応答の中断を表す1にセットする。なお、応答中断フラグは、直前の認証の失敗から中断期間が経過すると、更新部66によって、0にリセットされる。
ステップS85の処理後は、ステップS86に進み、更新部66は、直前のステップS83で決定された中断期間の経過後に、接続要求パケットを送信してきた通信相手(失敗ユーザIDのユーザが使用している装置)に対して認証に失敗した旨の応答を送信するように、通信部61を制御して、更新処理を終了し、図12のステップS51に戻る。
このように、サーバ50では、認証の失敗回数に応じて長くなるように決定される中断期間の経過後に、認証に失敗した旨の応答を送信することで、通信相手の認証に失敗した失敗回数が増加するに従って、その通信相手に対して認証に失敗した旨の応答を送信する間隔が長くなる。従って、認証の失敗回数の多い通信相手に対するサーバ50の負担が低減する。
一方、ステップS82において、更新部66が、失敗ユーザIDのエントリにおける失敗回数が所定の閾値としての一定回数以下でないと判定した場合、即ち、例えば、失敗ユーザIDによって特定されるユーザが使用している装置(同一の装置である必要はない)から、そのユーザIDを含む接続要求パケットが一定回数を超える回数だけ送信され、そのすべての接続要求パケットについての認証が失敗し、従って、失敗ユーザIDのユーザがクライアント51、その他の装置を使用することによって、総当り攻撃がされている可能性が極めて高い場合、ステップS87に進み、更新部66は、失敗ユーザIDによって特定されるユーザに対する応答を制限(拒否)することを決定し、ステップS88に進む。
ステップS88において、更新部66は、リスト記憶部63に記憶された認証失敗ユーザID情報リストの失敗ユーザIDのエントリにおける応答拒否フラグを、応答を制限する旨を表す1にセットして、更新処理を終了し、図12のステップS51に戻る。
次に、図14のフローチャートを参照して、図12のステップS52で確認部62が行う確認処理について説明する。
ステップS61において、確認部62は、通信部61からの接続要求パケットから、その接続要求パケットを送信してきた通信相手(ユーザ)のユーザIDを取得し、ステップS62に進む。ステップS62において、確認部62は、リスト記憶部63に記憶された認証失敗ユーザID情報リストのうちの、ステップS61で取得したユーザIDのエントリを参照し、そのエントリにおける応答拒否フラグが、応答を制限(拒否)する旨の1にセットされているか否かを判定する。
ステップS62において、失敗ユーザIDのエントリにおける応答拒否フラグが1にセットされていると判定された場合、即ち、失敗ユーザIDによって特定される通信相手(ユーザ)についての認証が、既に、一定回数を超える回数だけ失敗しており、その通信相手(ユーザ)が総当り攻撃をしている可能性が極めて高い場合、ステップS64に進み、確認部62は、その通信相手から送信され、通信部61から供給された接続要求パケットを破棄して、確認処理を終了し、図12のステップS51に戻る。
このように、サーバ50では、認証が一定回数を超える回数だけ失敗したユーザ(ユーザが使用している装置)からの接続要求パケットが破棄され、その接続要求パケットに対して、認証は勿論、応答の送信も行なわれない。従って、総当り攻撃に対するサーバ50の負荷を軽減するともに、そのような総当り攻撃による不正アクセスを、容易に防止することができる。
一方、ステップS62において、失敗ユーザIDのエントリにおける応答拒否フラグが1にセットされていないと判定された場合、即ち、失敗ユーザIDによって特定される通信相手(ユーザ)についての認証の失敗回数が、まだ、一定回数以下である場合、ステップS63に進み、確認部62は、失敗ユーザIDのエントリにおける応答中断フラグが、応答を一時的に中断する旨を表す1にセットされているか否かを判定する。
ステップS63において、失敗ユーザIDのエントリにおける応答中断フラグが1にセットされていると判定された場合、即ち、失敗ユーザIDによって特定されるユーザについての認証が、一定回数以下の失敗回数だけ失敗しており、その失敗回数に応じて決定された中断期間だけの時間が、直前の認証の失敗から、まだ経過していない場合、ステップS64に進み、確認部62は、上述したように、失敗ユーザIDによって特定されるユーザ(ユーザが使用している装置)から送信され、通信部61から供給された接続要求パケットを破棄し、確認処理を終了して、図12のステップS51に戻る。
このように、サーバ50では、認証が一定回数以下の回数しか失敗していないユーザ(ユーザが使用している装置)からの接続要求パケットであっても、直前の認証の失敗から中断期間が経過していない場合には破棄され、その接続要求パケットに対して、認証は勿論、応答の送信も行なわれない。
上述したように、中断期間は、失敗回数に応じて、失敗回数が多くなるほど長い期間(時間)に決定されるから、失敗ユーザIDによって特定されるユーザについては、認証の失敗回数が増加するにつれ、つまり、認証の失敗が続くにつれ、そのユーザが使用している装置からの接続要求パケットに対する応答を返すことを中断する中断期間が長くなる。さらに、直前の認証の失敗から、中断期間が経過するまでは、その間に、失敗ユーザIDによって特定されるユーザが使用している装置から接続要求パケットが送信されてきても破棄される。
失敗ユーザIDによって特定されるユーザについての認証の失敗が続くということは、そのユーザが総当り攻撃をしている可能性が高いということであり、従って、そのようなユーザが使用しているクライアント51、その他の装置からの接続要求パケットを破棄して認証を行わず、また、接続要求パケットに対する応答を行うまでの時間を長くすることにより、総当り攻撃に対するサーバ50の負荷を軽減するとともに、そのような総当り攻撃による不正アクセスを、容易に防止することができる。
なお、失敗ユーザIDによって特定されるユーザについての認証の失敗が続き、その結果、失敗回数が一定回数を超えた場合には、上述したように、そのユーザのユーザID(失敗ユーザID)のエントリにおける応答拒否フラグが1にセットされ、以後、そのユーザが使用している装置からの接続要求パケットは破棄され続け、接続要求パケットに対して、認証は勿論、応答の送信も行なわれなくなる。ユーザが使用する装置を代えても、ユーザIDが同一である限り、そのユーザIDを含む接続要求パケットは破棄される。
一方、ステップS63において、失敗ユーザIDのエントリにおける応答中断フラグに1がセットされていないと判定された場合、確認処理を終了して、図12のステップS53に進み、上述した認証処理が行われる。
なお、更新部66では、応答拒否フラグは、1にセットされた後、一定時間が経過したときに、0にリセットすることができる。また、サーバ50を管理するユーザが、1にセットされている応答拒否フラグを0にリセットすることもできる。さらに、更新部66では、認証失敗ユーザID情報リストのエントリのうちの、最後に更新されてから一定期間更新がされていないエントリを削除することができる。
以上のように、失敗回数に応じて長くなる中断期間を決定し、その中断期間の経過後に、応答が返されるので、即ち、ユーザの認証に失敗した失敗回数に応じて、そのユーザ(ユーザが使用している装置)に応答を返すまでの応答時間(応答を返すことを中断する中断期間)を長くするように、通信部61が制御されるので、サーバ50に対する不正なアクセスを困難にすることができる。
例えば、サーバ50のユーザID/パスワード記憶部65に設定されたユーザIDおよびパスワードを知らないユーザが、不正にサーバ50に接続しようとして、クライアント51から、あるユーザID#Aに対して様々なパスワードを含んだ接続要求パケットを、連続して送信する総当り攻撃を行っても、認証に失敗し、その認証の失敗回数に応じて長くなる中断期間が決定される。そして、サーバ50では、中断期間に送信されてくるユーザID#Aを含む接続要求パケットは破棄され、これにより、中断期間に、ユーザID#Aを含む接続要求パケットによる接続要求パケットに対する応答が制限されるので、ユーザID#Aを含む接続要求パケットによる不正なアクセスが成功してしまうまでの時間が飛躍的に長くなる。従って、総当り攻撃による不正なアクセスが成功することを、困難にすることができる。
また、あるユーザIDの認証の失敗回数が一定回数を越えると、サーバ50は、そのユーザIDを含む接続要求パケットを破棄し続け、そのユーザIDの認証を行わなくなるので、認証が誤って成功することにより、そのユーザIDによる不正なアクセスが成功することがなくなる。なお、他のクライアントから、同一のユーザIDを含む接続要求パケットが送信されてきても、その接続要求パケットは破棄される。
さらに、サーバ50では、接続要求パケットに含まれるユーザIDの他、その接続要求パケットに含まれるMACアドレスを参照することにより、MACアドレスは同一であるが、ユーザIDおよびパスワードが異なる多数の接続要求パケットを連続して送信する総当り攻撃が行われても、そのような総当り攻撃による不正なアクセスを防止することができる。
即ち、サーバ50の更新部66においては、認証に失敗したユーザIDに対応付けて、そのユーザIDを含む接続要求パケットを送信してきた装置を特定する「MACアドレス」を、リスト記憶部63に記憶された認証失敗ユーザID情報リストに登録する。そして、更新部66は、リスト記憶部63に記憶された認証失敗ユーザID情報リストを参照して、MACアドレスが同一の接続要求パケットに対する認証が失敗している場合、その失敗回数に応じて、中断期間を決定し、または、応答を制限することを決定する。
そして、サーバ50の確認部62においては、接続要求パケットに含まれるユーザIDの他、その接続要求パケットに含まれるMACアドレスを参照し、リスト記憶部63に記憶された認証失敗ユーザID情報リストにおいて、そのMACアドレスに対して中断期間が決定されているか、または、応答を制限することが決定されていれば(応答拒否フラグまたは応答中断フラグが1になっていれば)、そのMACアドレスで特定される装置からの接続要求パケットを破棄する。
このように、サーバ50では、接続要求パケットに含まれるユーザIDおよびMACアドレスの両方を参照して、このユーザIDおよびMACアドレスに基づいて、接続要求パケットに対する応答を返すことを中断し、または、応答を制限することができる。
この場合、同一のMACアドレスで、異なるユーザIDを含む接続要求パケットを連続して送信する総当り攻撃が行われても、同一のユーザIDで、異なるMACアドレスを含む接続要求パケットを連続して送信する総当り攻撃が行われても、サーバ50において、接続要求パケットに含まれるユーザIDおよびMACアドレスの両方を参照して、上述したように、接続要求パケットに対する応答を返すことを中断し、または、応答を制限することにより、不正なアクセスを防止することができる。
なお、本実施の形態においては、図2のアクセスポイント1の確認部12において、接続要求パケットを破棄することで、応答を制限するようにしたが、確認部12が、接続要求パケットを破棄せずに認証部14に供給するとともに、認証処理を停止する認証停止指令を認証部14に与えることによって、応答を制限するようにしてもよい。即ち、この場合、認証部14は、認証停止指令に従い、確認部12からの接続要求パケットに対する認証処理を行わないので、その接続要求パケットに対する応答を制限することができる。
このように、確認部12が、認証停止指令を認証部14に与えることで、認証部14が、通信相手の認証を行わないようにすることにより、アクセスポイント1では、その接続要求パケットに対する応答を返すことを中断し、または、応答を制限することができる。従って、アクセスポイント1に対する不正なアクセスを防止することができる。
同様に、図9のサーバ50においても、確認部62が、通信相手の認証を行うべきでないことが確認されたユーザIDを含む接続要求パケットを破棄せずに、この接続要求パケットを認証部64に供給するとともに、認証を停止する認証停止指令を認証部64に与えることにより、サーバ50において、その接続要求パケットに対する応答を返すことを中断し、または、応答を制限することができる。従って、サーバ50に対する不正なアクセスを防止することができる。
また、本実施の形態では、応答拒否フラグによって応答を制限するようにしたが、その他、例えば、中断期間を無限大とすることにより、応答を制限することも可能である。この場合、応答拒否フラグは不要となる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
1 アクセスポイント, 2,3 コンピュータ, 4 ネットワーク,11 通信部, 12 確認部, 13 リスト記憶部, 14 認証部, 15 WEPキー記憶部, 16 更新部, 20 コンピュータ, 21 ROM, 22 フラッシュメモリ, 23 CPU, 24 RAM, 25 通信部, 26 バス, 50 サーバ, 51 クライアント, 61 通信部, 62 確認部, 63 リスト記憶部, 64 認証部, 65 ユーザID/パスワード記憶部,66 更新部, 71 ROM, 72 ハードディスク, 73 CPU, 74 RAM, 75 通信部, 76 ドライブ, 77 出力部, 78 入力部, 79 入出力インタフェース, 80 バス, 81 リムーバブル記録媒体