(57)【要約】【課題】  クライアント計算機からの様々なアクセスに対して、より高い安全性を備えたサーバ計算機の通信接続方法の提供。【解決手段】  サーバ計算機１は、複数のユーザからなるグループ名と、そのグループ名に属する各ユーザに秘密に割り当てた接続要求パケット回数とを対応付けたグループ識別テーブル１２０を予め備える。グループ識別部１５は、同じクライアント計算機２から所定期間内に受信した接続要求パケットの回数が、テーブル１２０にあるか否かを認証し、ある場合に対応するグループ名を取得する。リソース管理部１６は、そのグループ名の示すグループに、サーバ計算機のリソース割り当てが可能か否かを判定し、割り当て可能と判定したときに、受信した接続要求パケットの何れか１つに対する応答として接続要求確認パケットを生成する。送信部１７は、その接続要求確認パケットをネットワークへ送信する。【選択図】  図６   
2005167364.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介し、クライアント計算機と接続を行うサーバ計算機の通信接続方法であって、
前記サーバ計算機は、該サーバ計算機との接続が許される複数のユーザからなるグループを識別するためのグループ識別情報と、そのグループに対して秘密に割り当てた一意の接続要求パケット回数とを対応付けて、予め記憶する記憶手段を備え、
サーバ計算機は、
所定期間内に受信した前記クライアント計算機からの接続要求パケットの回数をカウントし、
前記記憶手段に、該カウント結果に一致する接続要求パケット回数が記憶されているか否かを認証し、
記憶されている場合にその接続要求パケット回数に対応するグループ識別情報を取得し、
取得された前記グループ識別情報の示すグループに対し、該サーバ計算機のリソース割り当てが可能か否かを判定し、
割り当て可能と判定したときに、前記受信した複数の接続要求パケットの少なくとも何れか１つに対する応答として接続要求確認パケットを生成し、
該生成した接続要求確認パケットをネットワークへ送出するようにしたことを特徴とする通信接続方法。
【請求項２】
前記接続要求パケットの内容の一部を前記グループの各ユーザとサーバ計算機と間でのみ共有する秘密情報とし、
前記サーバ計算機は、前記記憶手段には、前記グループ識別情報に対応づけて前記秘密情報を更に対応付けて記憶しておき、前記グループ識別情報の取得に際し、前記秘密情報による認証も行うようにしたことを特徴とする請求項１記載の通信接続方法。
【請求項３】
前記秘密情報は、接続要求パケットのヘッダ部の各データの少なくとも一部、または、および、接続要求パケットのデータ部に格納するサーバ計算機とグループとの間で定めた特定のデータの少なくとも一部であることを特徴とする請求項２記載の通信接続方法。
【請求項４】
前記接続要求パケットのそれぞれの時間間隔の少なくとも一部を前記グループの各ユーザとサーバ計算機と間でのみ共有する秘密情報とし、
前記サーバ計算機は、前記記憶手段には、前記グループ識別情報に対応づけて前記秘密情報を更に対応付けて記憶しておき、前記グループ識別情報の取得に際し、前記秘密情報による認証も行うようにしたことを特徴とする請求項１記載の通信接続方法。
【請求項５】
前記接続要求パケットの種類と、各種類の接続要求パケット数とを前記グループの各ユーザとサーバ計算機と間でのみ共有する秘密情報とし、
前記サーバ計算機は、前記記憶手段には、前記グループ識別情報に対応づけて前記秘密情報を更に対応付けて記憶しておき、前記グループ識別情報の取得に際し、前記秘密情報による認証も行うようにしたことを特徴とする請求項１記載の通信接続方法。
【請求項６】
更に、前記サーバ計算機は、前記秘密情報を前記クライアント計算機に同期して変更するようにしたことを特徴とする請求項１乃至請求項５の何れかに記載の通信接続方法。
【請求項７】
クライアント計算機との接続処理を行うサーバ計算機であって、
該サーバ計算機との接続が許される複数のユーザからなるグループを識別するためのグループ識別情報と、そのグループに対して秘密に割り当てた一意の接続要求パケット回数とを対応付けて、予め記憶する記憶手段と、
所定期間内に受信した前記クライアント計算機からの接続要求パケットの回数をカウントする接続要求カウント手段と、
前記記憶手段に、該カウント結果に一致する接続要求パケット回数が記憶されているか否かを認証し、記憶されている場合にその接続要求パケット回数に対応するグループ識別情報を取得するグループ識別手段と、
取得された前記グループ識別情報の示すグループに対し、該サーバ計算機のリソース割り当てが可能か否かを判定し、割り当て可能と判定したときに、前記受信した複数の接続要求パケットの少なくとも何れか１つに対する応答として接続要求確認パケットを生成するリソース管理手段と、
該生成した接続要求確認パケットをネットワークへ送出する送信手段とを備えたことを特徴とするサーバ計算機。
【請求項８】
サーバ計算機との接続が許される複数のユーザからなるグループを識別するためのグループ識別情報と、そのグループに対して秘密に割り当てた一意の接続要求パケット回数とを対応付けて、予め記憶する記憶手段を備えるサーバ計算機で実行されるプログラムであって、
所定期間内に受信した前記クライアント計算機からの接続要求パケットの回数をカウントさせる第1のコードと、
前記記憶手段に、該カウント結果に一致する接続要求パケット回数が記憶されているか否かを認証させ、記憶されている場合にその接続要求パケット回数に対応するグループ識別情報を取得させる第2のコードと、
取得された前記グループ識別情報の示すグループに対し、該サーバ計算機のリソース割り当てが可能か否かを判定させ、割り当て可能と判定したときに、前記受信した複数の接続要求パケットの少なくとも何れか１つに対する応答として接続要求確認パケットを生成させる第3のコードと、
該生成した接続要求確認パケットをネットワークへ送出させる第4のコードとを備え、サーバ計算機に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント計算機からのアクセスに対し、安全に接続を行えるサーバ計算機の通信接続方法、サーバ計算機、および、プログラムに関する。
【背景技術】
【０００２】
近年、インターネット等を利用し、不特定多数あるいは特定多数のクライアント計算機をパケット交換ネットワーク経由でサーバ計算機に接続し、クライアント計算機からの要求に応じてサーバ計算機からデータを供給することを目的とするクライアントサーバシステムが広く使われている。
【０００３】
ここで、パケットとは、ネットワーク上を流れるひとかたまりのデータをいい、大まかに分けると、ヘッダとデータ本体で構成されている。さらに、ヘッダ内には、始点IP(Internet Protocol)アドレス、終点IPアドレス等から構成されている。このようなTCP/IP(Transmission Control Protocol/IP)プロトコルにおける正当なアクセス要求の一例としては、（１）クライアント計算機はサーバ計算機へ接続要求パケット（SYN(SYNchronize)パケット）を送信し、（２）サーバ計算機はクライアント計算機へ接続要求確認パケット(SYN+ACK(ACKnowledgement)パケット)を送信し、（３）クライアント計算機はサーバ計算機へ確認応答パケット（ACK）パケットを送ることによって、論理的な通信路（コネクション）を確立し、そのコネクション確立(Established)状態で上位アプリケーションでのデータの送受信をおこなう。このアクセス要求を、3 way handshake 方式と呼ぶ。
【０００４】
ところで、TCP/IPプロトコルでコネクションを確立する際に、サーバ計算機は、予め一定量のTCPコネクション処理用のリソース（メモリ領域、ディスク領域）を確保する必要がある。なお、コネクションが破棄されると、サーバ計算機は、その処理用のリソースを開放する。このTCPコネクション処理用のリソースは、接続要求者（クライアント計算機の利用者あるいはクライアント計算機自体を指す）を区別することなく割り当てられ、このリソースが不足している場合には新規のコネクションの確立ができない状況となる。従って、次の２つの問題が生じる。一つ目は、不正なクライアントがサーバ計算機と大量のコネクションを確立してコネクション処理用のリソースを使い切らせてしまうにすることで、サーバ計算機がサービスの提供をできない状況にする攻撃（以下、Connection Floodと表記する）が行われてしまう。二つ目は、大勢の低い優先順位の人々（または一般の人々）がサービスを利用している状態では、高い優先順位をもった人々がサービスの利用が出来ないことになってしまう。
【０００５】
このような問題を解決するために、予め相利用者をグループ分けしておき、各グループ内の優先順位に基づきTCPコネクション処理用のリソースを管理する方法が提案されている（例えば、特許文献１参照）。この方法は次のような処理を経る。
１）クライアント計算機は、サーバ計算機に対して接続要求パケットを送信し、
２）サーバ計算機は受信した接続要求パケットの利用者識別子（接続要求パケットの送信元アドレス）を参照して接続要求者の属する利用者グループの識別を行い、
３）確認した利用者識別子に対応して設定された通信処理用リソースの空きを確認し、最後にリソースに空きが有る場合にはTCPコネクション処理用リソースを割り当てる。
【０００６】
このように、利用者グループ毎にTCPコネクション処理用のリソースを割り当てるため、不正クライアントによるConnection Floodの影響をその不正クライアントが属する利用者グループにとどめることができ、サーバ計算機のサービスの停止を防止できた。また、優先度に応じて、グループを形成することにより、優先度が低い利用者が大量サービスを
利用している状況においても、優先順位の高い利用者にはTCPコネクション処理用リソースを割り当てることができた。
【特許文献１】特開２００３−１２５０２２公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した方法は、接続要求パケットに含まれる計算機アドレス（IPアドレス、MACアドレス）を利用者識別子とし、この利用者識別子に基づいてTCPコネクション処理用のリソースを割り当てていた。
【０００８】
しかし、この方法では、同一のクライアント計算機を複数の利用者が利用する場合には利用者に応じたリソース割り当てを行うことはできなかった。また、IPアドレスが動的に割り当てられる場合にはその都度登録しなおす必要が生じる、接続要求パケットに含まれるMACアドレスはサーバ計算機とクライアント計算機が同一のネットワークに有る場合にしか利用できない、といった問題がある。また、IPアドレス、MACアドレスは比較的容易に偽造可能であるため、不正なクライアントや優先順位の低いクライアントがこれらの計算機アドレスを偽ってサーバ計算機に接続することで、他の利用者グループを装ってサービスを享受することを防ぐことができなかった。
【０００９】
本発明は、上記問題点に対し鑑みなされたものであり、クライアント計算機からの様々なアクセスに対して、より高い安全性を備えたサーバ計算機の通信接続方法、サーバ計算機、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、ネットワークを介し、クライアント計算機と接続を行うサーバ計算機の通信接続方法であって、前記サーバ計算機は、該サーバ計算機との接続が許される複数のユーザからなるグループを識別するためのグループ識別情報と、そのグループに対して秘密に割り当てた一意の接続要求パケット回数とを対応付けて、予め記憶する記憶手段を備え、サーバ計算機は、所定期間内に受信した前記クライアント計算機からの接続要求パケットの回数をカウントし、前記記憶手段に、該カウント結果に一致する接続要求パケット回数が記憶されているか否かを認証し、記憶されている場合にその接続要求パケット回数に対応するグループ識別情報を取得し、取得された前記グループ識別情報の示すグループに対し、該サーバ計算機のリソース割り当てが可能か否かを判定し、割り当て可能と判定したときに、前記受信した複数の接続要求パケットの少なくとも何れか１つに対する応答として接続要求確認パケットを生成し、該生成した接続要求確認パケットをネットワークへ送出するようにした。
【００１１】
また、本発明は、クライアント計算機との接続処理を行うサーバ計算機であって、該サーバ計算機との接続が許される複数のユーザからなるグループを識別するためのグループ識別情報と、そのグループに対して秘密に割り当てた一意の接続要求パケット回数とを対応付けて、予め記憶する記憶手段と、所定期間内に受信した前記クライアント計算機からの接続要求パケットの回数をカウントする接続要求カウント手段と、前記記憶手段に、該カウント結果に一致する接続要求パケット回数が記憶されているか否かを認証し、記憶されている場合にその接続要求パケット回数に対応するグループ識別情報を取得するグループ識別手段と、取得された前記グループ識別情報の示すグループに対し、該サーバ計算機のリソース割り当てが可能か否かを判定し、割り当て可能と判定したときに、前記受信した複数の接続要求パケットの少なくとも何れか１つに対する応答として接続要求確認パケットを生成するリソース管理手段と、該生成した接続要求確認パケットをネットワークへ送出する送信手段とを備えた。
【００１２】
また、本発明は、サーバ計算機との接続が許される複数のユーザからなるグループを識別するためのグループ識別情報と、そのグループに対して秘密に割り当てた一意の接続要求パケット回数とを対応付けて、予め記憶する記憶手段を備えるサーバ計算機で実行されるプログラムであって、所定期間内に受信した前記クライアント計算機からの接続要求パケットの回数をカウントさせる第1のコードと、前記記憶手段に、該カウント結果に一致する接続要求パケット回数が記憶されているか否かを認証させ、記憶されている場合にその接続要求パケット回数に対応するグループ識別情報を取得させる第2のコードと、取得された前記グループ識別情報の示すグループに対し、該サーバ計算機のリソース割り当てが可能か否かを判定させ、割り当て可能と判定したときに、前記受信した複数の接続要求パケットの少なくとも何れか１つに対する応答として接続要求確認パケットを生成させる第3のコードと、該生成した接続要求確認パケットをネットワークへ送出させる第4のコードとを備え、サーバ計算機に実行させるようにした。
【発明の効果】
【００１３】
本発明によれば、接続要求に対しグループ認証を行い、且つ、グループ単位で利用可能なサーバ計算機のリソースを割り当てたから、不正な接続要求者からの攻撃を困難にし、且つ、正当な接続要求者からの（意図の有無に関わらない）アクセス集中によるサービス不能攻撃も防止できる。従って、サーバ計算機のセキュリティをより一層向上させることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態につき図面を参照して説明する。
【００１５】
図１は、本実施の形態が適用される通信システムを示すものであり、サーバ計算機１とクライアント計算機２とは、インターネットなどのオープンなネットワークおよびそれに接続された専用線などを含む各種通信ネットワーク３で接続される。
【００１６】
一般に、サーバ計算機１とクライアント計算機２との間の通信は、ＴＣＰ／ＩＰで行われる。ＴＣＰ／ＩＰは、下位層から上位層へ順にネットワークアクセス層、ネットワーク層、トランスポート層、アプリケーション層に分離される。
【００１７】
ネットワークアクセス層は、OSI(Open Systems Interconnection)参照モデルの物理層、データリンク層を合わせたものに相当し、電気信号や光信号によるデータの送受信と、隣接ノードとの間で情報のフローを調整するために必要な制御を可能とする処理層である。
【００１８】
ネットワーク（インターネット）層は、OSI参照モデルのネットワーク層に相当し、ネットワーク間でのデータのルーティングと通信目的の計算機へのデータ配信に責任を負う処理層である。
【００１９】
トランスポート層は、OSI参照モデルのトランスポート層にほぼ相当し、指定されたアプリケーション層ポートへの配信サービスとデータのエラーチェック機能を提供する処理層である。トランスポート層では、ＴＣＰ(Transmission Control Protocol)とＵＤＰ(User Datagram Protocol)の２つのプロトコルが利用可能である。後述するようにＴＣＰではコネクション型環境を提供し、データの到達性を保証する。それに対して、ＵＤＰはコネクションレス型環境を提供し、データの到達性を保証しない。
【００２０】
アプリケーション層は、OSI参照モデルのアプリケーションに相当し、アプリケーションがデータ送受信を行うための通信処理制御や、アプリケーション固有の処理を行う処理層である。
【００２１】
ネットワーク層より上位層での通信は、ＩＰパケットで行われる。図２に一般的なＩＰパケットの構成を示す、ＩＰパケットは、ＩＰヘッダ部とデータ部とから構成される。
【００２２】
ＩＰヘッダ部は、ＩＰのバージョン（IPv4、IPv6等）を示すバージョン、ＩＰヘッダ部のヘッダ長を示すヘッダ長、通信サービスの品質をルータに指示するためのサービスタイプ、IPパケット全体の長さを示すパケット長、フラグメントを復元する際の識別子である識別子、分割処理を制御するためのフラグ、分割された場合の位置を示すためのフラグメントオフセット、通過できるルータの個数を示す生存時間、上位層のプロトコルを示すプロトコル番号（ＩＣＭＰは1、ＴＣＰは6、ＵＤＰは17）、データが破損していないことを保証するためのヘッダチェックサム、送信元のアドレスを示す始点ＩＰアドレス、送信先のアドレスを示す終点ＩＰアドレス、種々のオプション機能に利用するためのオプション、ＩＰヘッダのヘッダ長が３２ビットの整数倍になるよう調整するパディングの各情報からなる。
【００２３】
データ部は、ＴＣＰ、ＵＤＰ、または、ＩＣＭＰのセグメントが含まれる。
【００２４】
図３は、一般的なＴＣＰセグメントの構成を示している。ＴＣＰセグメントは、ＴＣＰヘッダとデータ部分から構成される。ＴＣＰヘッダは、送信元のポート番号を示す始点ポート番号、送信先のポート番号を示す終点ポート番号、送信したデータの位置を示すシーケンス番号、受信したデータの位置を示す確認応答番号、ＴＣＰが運んでいるデータの開始位置を示すデータオフセット、拡張用の予約ビット、ＴＣＰセグメントの処理方法や種別を示すコントロールフラグ、フロー制御に用いられ、受信可能なデータ長を示すウィンドウサイズ、ＴＣＰのヘッダ、データが損傷していないことを保証するためのチェックサム、緊急に処理すべきデータの位置を示す緊急ポインタ、ＴＣＰによる通信性能の向上に用いるオプション、および、パディングの各情報からなる。
【００２５】
図４は、一般的なＵＤＰセグメントの構成を示している。ＵＤＰセグメントは、ＵＤＰヘッダとデータ部分とから構成される。ＵＤＰヘッダは、送信元のポート番号を示す始点ポート番号、送信先のポート番号を示す終点ポート番号、このＵＤＰセグメントの長さを示すパケット長、ＵＤＰのヘッダ、ＩＰアドレス、プロトコル番号が損傷していないことを保証するためのチェックサム、の各情報からなる。
【００２６】
ＴＣＰは、一般的に１）クライアント計算機がサーバ計算機へ接続要求パケット（SYN(SYNchronize)パケット）を送信し、２）サーバ計算機がクライアント計算機へ接続要求確認パケット(SYN+ACK(ACKnowledgement)パケット)を送信し、３）クライアント計算機がサーバ計算機へ確認応答パケット（ACK）パケットを送る、という手順の3 way handshake方式により機器同士で論理的なポート間で通信路（コネクション）を確立し、その上で上位アプリケーションでのデータの送受信を行う。なお、論理的なポートは、６５５３５番まで利用することが許可されている。
【００２７】
これに対して、ＵＤＰ、ＩＣＭＰは、コネクションレスの通信であるため、このようなコネクション確立の処理は行われず、データの送受信が行われる。
【００２８】
さて、本実施の形態では、あるサーバ計算機１側と、そのサーバ計算機１へのアクセスが許される全ての接続要求者との間で、予め全ての接続要求者を複数のグループに分けておき、各グループ間では異なっているが各グループ内では同一の接続要求パケットの発信回数を少なくとも認証用の情報として決めておく。そして、サーバ計算機１と各接続要求者との間で、認証用の情報として利用される発信回数を秘密に共有されているものとする。この発信回数の共有は、暗号プロトコルを用いて確保されたセキュアチャネル（このよ
うな既存技術としてはSSL(Secure Socket Layer)などがある）を利用してオンラインで行ったり、郵送などのオフラインで行ったりするなどして第三者に秘匿して共有される。なお、接続要求者は複数のサーバに応じて異なる判定基準の情報を保持していてもよい。
【００２９】
図５は、図1のシステムにおけるクライアント計算機２のうち、本実施の形態に係る部分の機能ブロックを示したものである。
【００３０】
接続要求パケット生成部２１は、接続要求者から図示しないユーザインタフェースを介しサーバ計算機１への接続要求の指示を受けた際に、接続要求パケットを生成するものである。接続要求パケット生成部２１は、コネクション確立テーブル１００を参照し、指定されたサーバ計算機１との接続の際に必要な接続要求パケットの発信回数を取得し、生成した接続要求パケットを、該取得した発信回数分、送信部２２へ順次出力する。なお、通常、接続要求パケットのサーバ計算機１へのアクセスポートは、８０番が使用されるものであり、本実施例においても、８０番を使用すればよい。なお、予め、８０番とは異なるアクセスポートＭ番を使用する取り決めとなっていれば、Ｍ番を使用すればよいことは勿論である。更に、複数のアクセスポートを予め定めた個数づつ順にアクセスするようにしても良い。
【００３１】
コネクション確立テーブル１００には、少なくとも、この接続要求者にとってサーバ計算機１との接続の際に必要な接続要求パケットの発信回数が記憶されている。コネクション確立テーブル１００の一例を図７の（ａ）に示す。この例のコネクション確立テーブル１００には、各サーバ計算機１・・・１と、この接続要求者との間で秘密に共有されるサーバ計算機毎の規定の接続要求パケット数（発信回数）とを対応付けたリストとなっている。この発信回数は、先に示したように、秘密に管理されていることが、肝要である。なお、コネクション確立テーブル１００を備える代わりに、コネクション確立テーブル１００に記憶される発信回数などの接続要求パケット生成のために必要な情報を、接続要求者が図示しないユーザインタフェースを介して入力するようにしても良い。
【００３２】
送信部２２は、ＩＰパケットをネットワーク３へ送出するものであり、接続要求パケット生成部２１によって順次出力される各接続要求パケットをネットワーク３へ順次送出する。
【００３３】
受信部２３は、ネットワーク３から自計算機２宛てのＩＰパケットを受信するものである。この受信したＩＰパケットは、接続要求確認パケット判定部２４へ送られ、このＩＰパケットが、送信部２２より送信した各接続要求パケットの何れかに対して応答された接続要求確認パケットであるか否かを判定する。これにより接続要求確認パケットであると判定された場合には、クライアント計算機２はサーバ計算機１とのコネクションを確立するための処理を行う。
【００３４】
図６は、サーバ計算機１のうち、本実施の形態に係る部分の機能ブロックを示したものである。
【００３５】
受信部１１は、ネットワーク３からの自計算機１宛てのＩＰパケットを受信し、このＩＰパケットが接続要求パケットであるとき、テーブル更新部１２へ送出するものである。
【００３６】
テーブル更新部１２は、コネクション制御テーブル１１０へコネクション確立処理中のエントリーの登録または更新するものである。コネクション制御テーブル１１０の一例を図７の（ｂ）に示す。コネクション制御テーブル１１０は、コネクション確立処理中の接続要求者の識別子（例としてはクライアント計算機のIPアドレス）と、その接続要求者がコネクション確立処理の開始からその時点までに送信し、サーバ計算機１が受信した接続
要求パケットの総数と、その接続要求者が認証処理を開始してからの経過時間とからなるエントリーをコネクション確立処理中の数だけ一時保持するものである。
【００３７】
テーブル更新部１２は、受信した接続要求パケットと同じクライアント計算機２を示すエントリーが、コネクション制御テーブル１１０に既に登録されている場合には、そのエントリーのパケット受信回数を１増加して、更新する。一方、接続要求パケットが、コネクション制御テーブル１１０に登録されていない場合には、新たにエントリーを追加する。このとき、接続要求パケットを送信したクライアント計算機２を識別可能な情報（例えば、クライアント名、始点ＩＰアドレス等）を記載し、パケット受信回数は１で、経過時間を０にする。
【００３８】
また、テーブル更新部１２は、タイマー１３と接続され、タイマ−１３に基づいて、コネクション制御テーブル１１０の各エントリーの経過時間欄を所定時間間隔（例えば、１秒ごと）で更新する。すなわち、各エントリーの経過時間欄は、最初のパケットを受信してから現在までの経過時間を刻々と計時していることとなる。
【００３９】
監視部１４は、コネクション制御テーブル１１０に一時保持される各エントリーの経過時間欄が所定の時間経過したか否かを所定間隔（例えば、1秒）ごとに監視するものであり、所定の時間が経過したと判断されたエントリーが存在した時、そのエントリーを読み出し、且つ、コネクション制御テーブル１１０からそのエントリーを削除する。監視部１４は、読み出したエントリーを、グループ識別部１５へ送信する。
【００４０】
グループ識別部１５は、送信されたエントリーに含まれる受信した接続要求パケット数が、予め格納するグループ識別テーブル１２０にあるか否かを認証し、該当する回数があれば、それに対応付けられたグループを示す識別情報を取得し、エントリーと共に、リソース管理部１６へ送信する。なお、グループ識別テーブル１２０は、例えば図７（ｃ）に示すもので、各グループに一意に割り当てた接続要求パケット数と各グループの識別情報（ここではグループ名だが、グループID等でも良い）とを対応付けたリストである。
【００４１】
リソース管理部１６は、受け取ったグループの識別情報に基づいて、リソース管理テーブル１３０を参照し、そのグループへ現在割り当て可能なリソースの状況を確認する。リソース管理テーブル１３０は、例えば図７（ｄ）に示すもので、各グループ名（グループを識別する情報）と、各グループに同時に割り当て可能なリソースから求められる同時接続可能なコネクション数と、各グループ内で現在コネクション中であるコネクション数とを対応付けたリストで構成される。リソース管理部１６は、このようなリソース管理テーブル１３０を参照した結果、割り当て可能なリソースがあれば、リソース管理テーブル１３０のそのグループのエントリーの現在コネクション中であるコネクション数欄の値を１増加させる。そして、リソース管理部１６は、コネクションを確立するために、クライアント計算機２からの複数の接続要求パケットのうちのいずれかひとつの接続要求パケット対して接続要求確認パケットを生成し、送信部１７へ出力する。なお、あるグループのあるコネクションが終了した際には、リソース管理部１６は、その旨の通知を受け、リソース管理テーブル１３０の、そのグループのエントリーの現在コネクション中であるコネクション数欄の値を１減少させる。なお、どの接続要求パケットに対して接続要求確認パケットを生成するかは、予めクライアント装置２とサーバ装置１との間でＮ番目の接続要求パケットに対して生成するかを個別に決めておく方法やサーバ装置がその都度決定する方法もあるが、ここでは、一義的に最後の接続要求パケットに対して生成することとする。
【００４２】
送信部１７は、リソース管理部１６からの接続要求確認パケットをネットワーク３へ送出する。なお、この送出された接続要求確認パケットは、先に説明したクライアント計算機２の受信部１３で受信される。
【００４３】
次に、本実施の形態のクライアント計算機２の動作について図８を、及びサーバ計算機１の動作について図９、図１０を用いて説明する。
【００４４】
接続要求者がクライアント計算機２から、サーバ計算機１と接続する旨指示すると、まず、クライアント計算機２の接続要求パケット生成部２１は、内部に備える送信済接続カウンタ（図示しない）に初期値として“１”を設定する（ステップC101）。次に、接続要求パケット生成部２１は、サーバ計算機１宛ての接続要求パケットを生成する（ステップC102）。生成した接続要求パケットは、送信部２２を介して、ネットワーク３へ出力する（ステップC103）。
【００４５】
接続要求パケット生成部２１は、コネクション確立テーブル１００に登録されているサーバ計算機１のエントリーの規定接続要求パケット数を参照し、送信済接続カウンタと比較して、規定数の接続要求パケットを送信したかどうか確認する（ステップC104）。
【００４６】
まだ、送信した接続要求パケット数が規定に達していない場合には、送信済接続カウンタを１増加させ（ステップC105）、ステップC103に戻って、同じ接続要求パケットを再度送信する。
【００４７】
一方、ステップC104で、規定数の接続要求パケットを送信したことを確認すると、サーバ計算機１から送られる接続要求確認パケットを待ち受ける（ステップC106）。そして、クライアント計算機１は、所定期間内にサーバ計算機１から接続要求確認パケットの受信があるか否か判断する（ステップC107）。より詳細には、受信部２３で受信した自身のＩＰパケットは、接続要求確認パケット判定部２４へ送られ、接続要求確認パケット判定部２４は、そのＩＰパケットがサーバ計算機１からの接続要求確認パケットか、それ以外のＩＰパケットかを判断し、これを、少なくとも規定数の接続要求パケットを送信してから所定期間内行っている。
【００４８】
所定期間内に接続要求確認パケットの受信がない場合には認証に失敗したものとして処理を終了する。
【００４９】
一方、サーバ計算機１からの複数の接続要求パケットの少なくともいずれか一つに対する接続要求確認パケットを受信した場合には、それに対して応答確認パケットを送信する（ステップC108）。これにより、クライアント計算機２とサーバ計算機１の間にはコネクションが確立される。
【００５０】
一方、サーバ計算機１では、大別すると、接続要求パケットの受信に係る動作と、接続要求確認パケットの送信に係る動作とが行われる。
【００５１】
まず、接続要求パケットの受信に係る動作について図９を用いて説明する。サーバ計算機１は、受信部１１でクライアント計算機２からの接続要求パケットを受信し、これをテーブル更新部１２へ送信する（ステップS101）。
【００５２】
テーブル更新部１２は、コネクション制御テーブル１１０に、接続要求者のエントリーが登録済みか否かを調べる（ステップS102）。なお、本実施形態では、コネクション制御テーブル１１０内の各エントリーを識別するために、ＩＰアドレスを用いているが、MACアドレスやその他の識別子であってよい。
【００５３】
ステップS102で、もしコネクション制御テーブル１１０にエントリーがないと判断した場合には、クライアント計算機２のエントリーを新規に登録する（ステップS103）。なお
新規登録のエントリーには、IPアドレスの値、接続要求パケット数に初期値１、経過時間を初期値０が格納される。
【００５４】
一方、ステップS102でコネクション制御テーブル１１０にそのクライアント計算機２のエントリーが既にあると判断した場合には、そのIPアドレスを含むエントリーの、接続要求パケット数を“１”増加して更新する（ステップS104）。
【００５５】
なお、ここでは特に動作をフロー上に明記しないが、登録後の各エントリーの経過時間欄は、タイマー１３からの通知を所定間隔毎に受けて、テーブル更新部１２が都度更新しているものとする。
【００５６】
次に、接続要求確認パケットの送信に係る動作について図１０を用いて説明する。
【００５７】
監視部１４は、コネクション制御テーブル１１０の各エントリーの経過時間欄のいずれかが、予め定めた制限時間に到達したか否かを、常時監視する（ステップS121）。監視部１４は、経過時間欄が制限時間に到達したエントリーがあることを検知した場合には、そのエントリーを読み出して、グループ識別部１５へ送信する（ステップS122）。また、監視部１４は、そのエントリーをコネクション制御テーブル１１０から削除する（ステップS123）。
【００５８】
グループ識別部１５は、グループ識別テーブル１２０を参照し、受け取ったエントリーに含まれる接続要求パケット数と一致するものがあるか否かを認証する。そして一致するものがあれば、それに対応するグループ名（グループを示す識別情報）を取得する（ステップS124）。たとえば図７（C）で、接続要求者からの接続要求パケット数が２００個であった場合には、グループ１に属すると判断される。なお、本実施形態では、接続要求パケットの数を定数としているが、これを数値範囲（例えば、２００個以上２２０個未満や、２００個以上）としても良い。グループ識別部１５は、エントリーと取得したグループ名とを、リソース管理部１６へ送出する。
【００５９】
リソース管理部１６は、グループ名に基づいて、リソース管理テーブル１３０を参照し、このグループにおけるコネクション処理用のリソースの空きを確認する（ステップS125）。この処理は、このグループ名のエントリーを参照し、現在のコネクション数と最大のコネクション数を確認することで行われる。具体的には、現在のコネクション数を一つ増加させた結果が最大コネクション数を越えないことを確認する。なお、この実施形態では参照時点でのコネクション数からリソースの空きを確認しているが、リソース管理テーブルのそれぞれのエントリーについて現在のリソース空き状況をしめすフィールドを追加しておき、随時更新されるそのフィールドを参照するようにしてもよい。
【００６０】
リソース管理部１６は、リソースの空きを確認した結果、リソースの空きがない場合は、コネクション要求を棄却し（ステップS126）、処理を終了する。一方、リソースの空きを確認した結果、リソースの空きが存在した場合は、リソース管理テーブル１３０の現在コネクション数を１増加させることでリソース使用状況の変更を行う（ステップS127）。
【００６１】
リソース管理部１６は、クライアント計算機２からの最後の接続要求パケットに対する接続要求確認パケットを生成し（S128）、送信部１７を介し、ネットワーク３へ送信する（S129）。なお、上記した通り、本実施形態では最後の接続要求パケットに対して接続要求確認パケットを生成することとしたが、どの接続要求パケットに対して接続要求確認パケットを生成するかは、様々な方法で実現できる。
【００６２】
以上説明してきた本実施の形態によれば、識別された利用者グループに対してコネクシ
ョン処理用リソースの空きを確認しコネクション確立処理を実行するようにしたから、優先順位の低い接続要求者は、自分より高い優先順位の利用者グループに割り当てられたリソースを利用してコネクションを確立することはできない。これにより優先順位の低い不正クライアントによるConnection Floodや優先順位の低い接続要求者によりサービスが占有される脅威を回避でき、サーバ計算機のセキュリティをより一層向上させることができる。
【００６３】
ところで、クライアント計算機２とサーバ計算機１との間で秘密に共有する要求回数は、他の様々な利用形態や他の様々な情報と組み合わせて、より攻撃に強い認証方法を用いることが可能である。
【００６４】
以下では、各認証方法を例示し、その際の、クライアント計算機２とサーバ計算機１との動作について説明する。
（第１の例）
第１の例は、接続要求パケットを送信するアクセスポート番号を一般的に用いられる８０番とせず、予め、８０番とは異なるアクセスポートＭ番を接続要求者とサーバ計算機１との間で秘密に取り決め、共有しておき、秘密に共有する要求回数とアクセスポート番号Ｍ番とを用いて、認証を行うものである。このポート番号は、コネクション確立テーブル１００とグループ識別テーブル１２０に登録しておけば良いが、コネクション確立テーブル１００に登録する代わりに、接続要求者による入力によって（パスワード入力のように）行わせるようにしても良い。また、グループ識別テーブル１２０には、一つのエントリーに対し、同じグループの接続要求者のそれぞれの秘密のアクセスポート番号を登録するようにしても良いし、接続要求者それぞれにエントリーを設けるようにしても良い。更に、同じグループに属する接続要求者のアクセス番号を、共通にするようにしても良い。そして、コネクション制御テーブル１１０の各エントリーに接続要求パケットの受信ごとのアクセスポート番号のログを取るようにし、グループ識別１５で、要求回数とアクセスポート番号の２つに一致するものがあるかを認証し、あれば、それに対応するグループ識別情報を取得するようにすれば良い。
【００６５】
また、上記アクセスポート番号も１つとせず、複数のアクセスポート番号と予め定めた個数の接続要求パケット数との組み合わせて、これらを秘密に共有するようにし、これらを認証に用いることによって、より強固な認証方法が提供できる。そのほかにも、容易な改良すべき点はあるが、容易に実現できるからここでは説明を省略する
更に、アクセスポート番号以外に、接続要求パケットのヘッダの各データを、秘密に共有し利用する方法も当然考えられる。例えば、ＴＣＰヘッダのシーケンス番号、確認応答番号、予約ビット、ウィンドウサイズなどその他のフィールドの値を秘密として利用できる。特にシーケンス番号は、元来送信者が接続要求パケット・接続要求確認パケットを構成する際にランダムに決定する値であるため、秘密データを格納するのに適している。
【００６６】
また、必ずしも接続要求パケットのヘッダの各データを用いる必要もなく、サーバ計算機１とクライアント計算機２との間で共有された、何らかの別に定義した情報を秘密として利用しても良い。この場合、接続要求パケットの（SYNパケットの）データフィールドに記述するようにすれば良い。更に、この秘密の情報は、接続要求パケット毎に変えても良いし、同一のものを使用しても良い。
【００６７】
このような、第１の例では、不正なユーザが他の利用者グループに所属しているように見せかけるためには、接続要求パケットの個数だけではなく、そのアクセスポート番号、接続要求パケットのヘッダの各データ、秘密の情報、等も推測する必要があるため、不正に正しく認証されることはいっそう困難になり、サーバ計算機１のセキュリティがより一層向上する。
（第２の例）
第２の例は、複数の接続要求パケットを送信する時間間隔を予め秘密に定めておき、接続要求回数と共に、接続要求緒パケットの受信時間間隔も用いて、認証を行うものである。この時間間隔は、コネクション確立テーブル１００、グループ識別テーブル１２０に登録しておき、また、コネクション制御テーブル１１０には、追加の領域を持たせ、そこに、接続要求パケット受信毎に、前の接続要求パケットの受信からの経過時間または最初の接続要求パケットからの経過時間を追記しておくようにする。そしてグループ識別部１５で、追記された複数の経過時間のそれぞれが前記時間間隔を満たすかを判断すれば良い。なお、実際には、通信の遅延にばらつきがあることを想定し、送信する時間間隔に対しグループ識別テーブル１２０に登録する時間間隔は、緩やかな、ある程度時間幅を持たせたものであることが必要である。なお、時間間隔は、上記した第1の例と同様、接続要求者毎に個別でも良く、グループに共通に設定しても良い。
【００６８】
本例では、不正アクセスを行うためには接続要求パケットの個数だけではなく、そのアクセス時間間隔も推測する必要があるため、サーバのセキュリティがより一層向上する。（第３の例）
第３の例は、複数の接続要求パケットのそれぞれのパケットの種別を規定し、この規定を秘密としておき接続要求回数と共に、複数の接続要求パケットの種別も用いて、認証を行うものである。
【００６９】
上記の実施形態においては、クライアント計算機２からサーバ計算機１への複数の送信パケットとして、TCPのSYNパケットを想定したものであったが、TCPのSYNパケットは、接続要求確認パケットを返すために一つあればよく、それ以外の接続要求パケットは、SYNパケットの他に、ICMPパケット、UDPパケットを利用できる。
【００７０】
そこで本例では、クライアント計算機２とサーバ計算機１の間では、送信される接続要求パケットの個数だけではなく、接続要求パケットごとにパケットの種別もあわせて規定するようにする。規定されたパケットの種別は、コネクション確立テーブル１００およびグループ識別テーブル１２０に登録しておき、また、コネクション制御テーブル１１０の各エントリーに接続要求パケットの受信ごとの種別（UDP/TCP/ICMP）のログを取るようにする。そして、例えば各種別ごとの個数が一致するか否かを判断することにより、より強固な認証を行うことができる。そのほかにも、容易な改良すべき点はあるが、容易に実現できるからここでは説明を省略する。なお、先にも示したように認証が成功した際に生成する接続要求確認パケットは、TCPのSYNパケットに対応なので、SYNパケットは必ず１つは含むことが必要である。なお、パケットの種別は、上記した第1、２の例と同様、接続要求者毎に個別でも良く、グループに共通に設定しても良い。
【００７１】
本例では、不正アクセスを行うためには接続要求パケットの個数だけではなく、パケットの種別も推測する必要があるため、サーバのセキュリティがより一層向上する。
【００７２】
以上の本実施の形態、および、第１〜第３の例において認証用に利用される各情報は、サーバ計算機１とクライアント計算機２との間で、例えば、同期させたワンタイムパスワード技術を導入し、変更させることによって、更にサーバ計算機のセキュリティが向上する。
【００７３】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄
で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００７４】
【図１】本実施の形態が適用される通信システムを示す図。
【図２】ＩＰパケットにおけるIPヘッダを示す図。
【図３】TCPヘッダを示す図。
【図４】UDPヘッダを示す図。
【図５】クライアント計算機２のうち、本実施の形態に係る部分の機能ブロックを示す図。
【図６】サーバ計算機１のうち、本実施の形態に係る部分の機能ブロックを示す図。
【図７】本実地の形態にかかるコネクション確立テーブル１００、コネクション制御テーブル１１０、グループ識別テーブル１２０、リソース管理テーブル１３０の一例を示す図。
【図８】本実施の形態のクライアント計算機２の動作を示すフローチャート。
【図９】本実施の形態のサーバ計算機１の接続要求パケットの受信に係る動作を示すフローチャート。
【図１０】本実施の形態のサーバ計算機１の接続要求確認パケットの送信に係る動作を示すフローチャート。
【符号の説明】
【００７５】
１・・・サーバ計算機
２・・・クライアント計算機
３・・・ネットワーク
１１、２３・・・受信部
１２・・・テーブル更新部
１３・・・タイマー
１４・・・監視部
１５・・・グループ識別部
１６・・・リソース管理部
１７、２２・・・送信部
２１・・・接続要求パケット生成部
２４・・・接続要求確認パケット判定部
１００・・・コネクション確立テーブル
１１０・・・コネクション制御テーブル
１２０・・・グループ識別テーブル
１３０・・・リソース管理テーブル
【図１】
2005167364.tif 000003
【図２】
2005167364.tif 000004
【図３】
2005167364.tif 000005
【図４】
2005167364.tif 000006
【図５】
2005167364.tif 000007
【図６】
2005167364.tif 000008
【図７】
2005167364.tif 000009
【図８】
2005167364.tif 000010
【図９】
2005167364.tif 000011
【図１０】
2005167364.tif 000012