JP3841417B2 - 通信接続方法、サーバ計算機、および、プログラム - Google Patents

通信接続方法、サーバ計算機、および、プログラム Download PDF

Info

Publication number
JP3841417B2
JP3841417B2 JP2003400111A JP2003400111A JP3841417B2 JP 3841417 B2 JP3841417 B2 JP 3841417B2 JP 2003400111 A JP2003400111 A JP 2003400111A JP 2003400111 A JP2003400111 A JP 2003400111A JP 3841417 B2 JP3841417 B2 JP 3841417B2
Authority
JP
Japan
Prior art keywords
connection request
server computer
group
packet
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003400111A
Other languages
English (en)
Other versions
JP2005167364A (ja
Inventor
健太郎 梅澤
俊成 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003400111A priority Critical patent/JP3841417B2/ja
Priority to US10/948,699 priority patent/US7366170B2/en
Publication of JP2005167364A publication Critical patent/JP2005167364A/ja
Application granted granted Critical
Publication of JP3841417B2 publication Critical patent/JP3841417B2/ja
Priority to US12/003,924 priority patent/US7940761B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

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


Claims (8)

  1. ネットワークを介し、クライアント計算機と接続を行うサーバ計算機の通信接続方法であって、
    前記サーバ計算機は、該サーバ計算機との接続が許される複数のユーザからなるグループを識別するためのグループ識別情報と、そのグループに対して秘密に割り当てた一意の接続要求パケット回数とを対応付けて、予め記憶する記憶手段を備え、
    サーバ計算機は、
    所定期間内に受信した前記クライアント計算機からの接続要求パケットの回数をカウントし、
    前記記憶手段に、該カウント結果に一致する接続要求パケット回数が記憶されているか否かを認証し、
    記憶されている場合にその接続要求パケット回数に対応するグループ識別情報を取得し、
    取得された前記グループ識別情報の示すグループに対し、該サーバ計算機のリソース割り当てが可能か否かを判定し、
    割り当て可能と判定したときに、前記受信した複数の接続要求パケットの少なくとも何れか1つに対する応答として接続要求確認パケットを生成し、
    該生成した接続要求確認パケットをネットワークへ送出するようにしたことを特徴とする通信接続方法。
  2. 前記接続要求パケットの内容の一部を前記グループの各ユーザとサーバ計算機と間でのみ共有する秘密情報とし、
    前記サーバ計算機は、前記記憶手段には、前記グループ識別情報に対応づけて前記秘密情報を更に対応付けて記憶しておき、前記グループ識別情報の取得に際し、前記秘密情報による認証も行うようにしたことを特徴とする請求項1記載の通信接続方法。
  3. 前記秘密情報は、接続要求パケットのヘッダ部の各データの少なくとも一部、または、および、接続要求パケットのデータ部に格納するサーバ計算機とグループとの間で定めた特定のデータの少なくとも一部であることを特徴とする請求項2記載の通信接続方法。
  4. 前記接続要求パケットのそれぞれの時間間隔の少なくとも一部を前記グループの各ユーザとサーバ計算機と間でのみ共有する秘密情報とし、
    前記サーバ計算機は、前記記憶手段には、前記グループ識別情報に対応づけて前記秘密情報を更に対応付けて記憶しておき、前記グループ識別情報の取得に際し、前記秘密情報による認証も行うようにしたことを特徴とする請求項1記載の通信接続方法。
  5. 前記接続要求パケットの種類と、各種類の接続要求パケット数とを前記グループの各ユーザとサーバ計算機と間でのみ共有する秘密情報とし、
    前記サーバ計算機は、前記記憶手段には、前記グループ識別情報に対応づけて前記秘密情報を更に対応付けて記憶しておき、前記グループ識別情報の取得に際し、前記秘密情報による認証も行うようにしたことを特徴とする請求項1記載の通信接続方法。
  6. 更に、前記サーバ計算機は、前記秘密情報を前記クライアント計算機に同期して変更するようにしたことを特徴とする請求項1乃至請求項5の何れかに記載の通信接続方法。
  7. クライアント計算機との接続処理を行うサーバ計算機であって、
    該サーバ計算機との接続が許される複数のユーザからなるグループを識別するためのグループ識別情報と、そのグループに対して秘密に割り当てた一意の接続要求パケット回数とを対応付けて、予め記憶する記憶手段と、
    所定期間内に受信した前記クライアント計算機からの接続要求パケットの回数をカウントする接続要求カウント手段と、
    前記記憶手段に、該カウント結果に一致する接続要求パケット回数が記憶されているか否かを認証し、記憶されている場合にその接続要求パケット回数に対応するグループ識別情報を取得するグループ識別手段と、
    取得された前記グループ識別情報の示すグループに対し、該サーバ計算機のリソース割り当てが可能か否かを判定し、割り当て可能と判定したときに、前記受信した複数の接続要求パケットの少なくとも何れか1つに対する応答として接続要求確認パケットを生成するリソース管理手段と、
    該生成した接続要求確認パケットをネットワークへ送出する送信手段とを備えたことを特徴とするサーバ計算機。
  8. サーバ計算機との接続が許される複数のユーザからなるグループを識別するためのグループ識別情報と、そのグループに対して秘密に割り当てた一意の接続要求パケット回数とを対応付けて、予め記憶する記憶手段を備えるサーバ計算機で実行されるプログラムであって、
    所定期間内に受信した前記クライアント計算機からの接続要求パケットの回数をカウントさせる第1のコードと、
    前記記憶手段に、該カウント結果に一致する接続要求パケット回数が記憶されているか否かを認証させ、記憶されている場合にその接続要求パケット回数に対応するグループ識別情報を取得させる第2のコードと、
    取得された前記グループ識別情報の示すグループに対し、該サーバ計算機のリソース割り当てが可能か否かを判定させ、割り当て可能と判定したときに、前記受信した複数の接続要求パケットの少なくとも何れか1つに対する応答として接続要求確認パケットを生成させる第3のコードと、
    該生成した接続要求確認パケットをネットワークへ送出させる第4のコードとを備え、サーバ計算機に実行させることを特徴とするプログラム。

JP2003400111A 2003-09-25 2003-11-28 通信接続方法、サーバ計算機、および、プログラム Expired - Fee Related JP3841417B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003400111A JP3841417B2 (ja) 2003-11-28 2003-11-28 通信接続方法、サーバ計算機、および、プログラム
US10/948,699 US7366170B2 (en) 2003-09-25 2004-09-24 Communication connection method, authentication method, server computer, client computer and program
US12/003,924 US7940761B2 (en) 2003-09-25 2008-01-03 Communication connection method, authentication method, server computer, client computer and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003400111A JP3841417B2 (ja) 2003-11-28 2003-11-28 通信接続方法、サーバ計算機、および、プログラム

Publications (2)

Publication Number Publication Date
JP2005167364A JP2005167364A (ja) 2005-06-23
JP3841417B2 true JP3841417B2 (ja) 2006-11-01

Family

ID=34724468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003400111A Expired - Fee Related JP3841417B2 (ja) 2003-09-25 2003-11-28 通信接続方法、サーバ計算機、および、プログラム

Country Status (1)

Country Link
JP (1) JP3841417B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4976672B2 (ja) * 2005-09-13 2012-07-18 キヤノン株式会社 ネットワークデバイス装置、データ処理方法及びコンピュータプログラム
JP2008061223A (ja) * 2006-08-04 2008-03-13 Canon Inc 通信装置及び通信方法
JP5278816B2 (ja) * 2009-04-27 2013-09-04 キヤノンマーケティングジャパン株式会社 情報処理装置、およびその制御方法、プログラム、記録媒体。
JP5048105B2 (ja) * 2010-06-29 2012-10-17 レノボ・シンガポール・プライベート・リミテッド コンピュータへのアクセス方法およびコンピュータ

Also Published As

Publication number Publication date
JP2005167364A (ja) 2005-06-23

Similar Documents

Publication Publication Date Title
Iyengar et al. QUIC: A UDP-based multiplexed and secure transport
US10009230B1 (en) System and method of traffic inspection and stateful connection forwarding among geographically dispersed network appliances organized as clusters
Mahy et al. Traversal using relays around nat (turn): Relay extensions to session traversal utilities for nat (stun)
US8499146B2 (en) Method and device for preventing network attacks
US7940761B2 (en) Communication connection method, authentication method, server computer, client computer and program
Nordmark et al. Shim6: Level 3 multihoming shim protocol for IPv6
Bruschi et al. S-ARP: a secure address resolution protocol
De Vivo et al. Internet security attacks at the basic levels
KR101099382B1 (ko) 패킷 네트워크에서의 종단점 어드레스 변경
US20070283429A1 (en) Sequence number based TCP session proxy
García-Martínez et al. The Shim6 architecture for IPv6 multihoming
Thaler Evolution of the IP Model
US8955088B2 (en) Firewall control for public access networks
US20150207729A1 (en) Tying data plane paths to a secure control plane
Reddy et al. Traversal using relays around NAT (TURN): Relay extensions to session traversal utilities for NAT (STUN)
Mahy et al. Rfc 5766: Traversal using relays around nat (turn): relay extensions to session traversal utilities for nat (stun)
JP2006185194A (ja) サーバ装置、通信制御方法及びプログラム
JP4183664B2 (ja) 認証方法、サーバ計算機、クライアント計算機、および、プログラム
JP3841417B2 (ja) 通信接続方法、サーバ計算機、および、プログラム
US8271678B2 (en) Independent detection and filtering of undesirable packets
US11218449B2 (en) Communications methods, systems and apparatus for packet policing
Cisco Command Reference
Cisco Command Reference
Cisco Command Reference
Matthews et al. RFC 8656: Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050415

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060801

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060807

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090818

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100818

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100818

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110818

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110818

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120818

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120818

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130818

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees