JP2004265122A - Security ensuring method and strategy in private communication - Google Patents

Security ensuring method and strategy in private communication Download PDF

Info

Publication number
JP2004265122A
JP2004265122A JP2003054439A JP2003054439A JP2004265122A JP 2004265122 A JP2004265122 A JP 2004265122A JP 2003054439 A JP2003054439 A JP 2003054439A JP 2003054439 A JP2003054439 A JP 2003054439A JP 2004265122 A JP2004265122 A JP 2004265122A
Authority
JP
Japan
Prior art keywords
port number
client
cug
server
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.)
Granted
Application number
JP2003054439A
Other languages
Japanese (ja)
Other versions
JP2004265122A5 (en
JP4623938B2 (en
Inventor
Terumasa Koike
輝昌 小池
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.)
NEC Engineering Ltd
Original Assignee
NEC Engineering Ltd
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 NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP2003054439A priority Critical patent/JP4623938B2/en
Publication of JP2004265122A publication Critical patent/JP2004265122A/en
Publication of JP2004265122A5 publication Critical patent/JP2004265122A5/ja
Application granted granted Critical
Publication of JP4623938B2 publication Critical patent/JP4623938B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To prevent unauthorized use, theft of inner data, alteration, destruction and the like from occurring by disabling cracking act of a third party against a privately operated server which can be used only by limited clients. <P>SOLUTION: In the case that a client 2 in a CUG requests connection for accompanying a CUG service to the server 1, line connection is made with a port number calculated by using a first function for varying in a certain period of as a port number for CUG of a server 1. In the case of re-connecting the server 1 and the client 2, line connection is made with a port number calculated by using a second function for varying according to a sequence number of service data immediately before line release as the port number for CUG of the server 1. In addition, in the case of reconnecting, if un-connected states continues for a predetermined period of time, line connection is made with a port number calculated by using the first function as the port number for CUG of the server 1. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、TCP/IPプロトコルに基づいた非公開通信におけるセキュリティ確保方法および方式に関し、特に、クライアントとサーバーと間で通信を行うクローズドユーザグループ(CUG)での非公開通信におけるセキュリティ確保方法および方式に関する。
【0002】
【従来の技術】
従来、TCP/IPを用いたクライアント・サーバー型通信において、サーバー側にポート番号と云う固定化された識別子を与えて、クラアント側からサーバー側へ要求するサービス(アプリケーション)をユニークに区別させるようにしている。この方式におけるポート番号ついてはIETF(The Internet Engineering Task Forece)からRFC(Request for Comments)1060に規定されるウェルノウンサービス対応ポート番号として公にされている。この場合のRFC1060規定のウェルノウンサービス対応ポート番号は各クライアント、サーバーに実装されるオペレーティングシステム(OS)内にデータとして保有されている。
【0003】
このような固定のポート番号を利用した後にポート番号を変えてサーバー/クライアントにおける接続方法として、例えば、特開平6−301616号公報に開示されている。
【0004】
今、複数のクライアントの1つがサーバーに対してアプリケーションを要求(TCP/IP通信接続の試みを実施)する場合、クライアントは、サーバーに対して相手のアプリケーションに対応した固定のポート番号を設定してその設定したポート番号をIPパケットに含めて送信することで、サーバーとクライアントとの間で通信パスを張る。更に、サーバーは、他のクライアントにも接続できるように、固定のポート番号と違う新規のポート番号を発生して接続しているクライアントに通知することで、再接続する場合は、新規のポート番号を利用する。
【0005】
【特許文献1】
特開平6−301616号公報
【0006】
【発明が解決しようとする課題】
しかしながら、従来のTCP/IPを用いたサーバー/クライアントシステムでは、サーバー側にポート番号と云う常時固定の識別子を与えて、クラアント側からサーバー側へ要求するサービス(アプリケーション)をユニークに区別させるようにしていたため、公にされたサーバー側のポート番号に対して、悪意の第三者からポートスキャン操作を始めとするクラッキング行為により、サーバーのroot権限を第三者に奪われてしまうことを許してしまう可能性があるという問題点がある。更に、この結果、サーバーには第三者による不正使用、内部データの盗用、改竄、破壊等々の不利益を被る事態が発生するという問題点がある。
【0007】
この問題は、公の運用を行うサーバーや制限したクライアント(CUG)のみに許されたプライベート運用を行うサーバーを問わず同じ危険水準を有してしまうことに有る。
【0008】
また、サーバーの固定のポート番号に接続した後に新規のポート番号を通知するという特開平6−301616号公報記載の方法では、ネットワーク上で悪意の第三者が監視していれば、第三者に新規のポート番号を知られることになり、上記の問題点と同様に知られたポート番号経由でセキュリティホールを突かれてサーバーのroot権限を第三者に奪われてしまう危険性が発生するという問題点がある。
【0009】
本発明の目的は、上記問題点を鑑み、TCP/IPを用いたクライアント・サーバー型通信において、制限したクライアントのみ利用可能なプライベート運用を行うサーバーに対して第三者によるクラッキング行為を無効にさせ、不正使用、内部データの盗用、改竄、破壊等々の発生を防止することにある。
【0010】
また、本発明の他の目的は、ポートスキャン操作等のクラッキング行為を無効とすることで、悪意の第三者に対して、行為を諦めさせることが可能となりクラッキング目的のパケットが減少し、該当するサーバーが置かれるネットワークのトラフィック量を下げ帯域幅を正しい目的のために利用できる効果をもたらすことにある。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本発明の第1の非公開通信におけるセキュリティ確保方法は、TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方法であって、CUG内の前記クライアントが前記サーバーに対してCUGサービスに伴う接続要求を行う場合にウェルノウンポート番号と違う第1の特定のポート番号を予め決められた第1の関数を利用して算出しその算出した第1の特定のポート番号を前記サーバーのCUG対応のポート番号として回線接続することを特徴としている。
【0012】
更に、上記の第1の非公開通信におけるセキュリティ確保方法において、前記サーバーと前記クライアントとの間で再接続する場合に、回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第2の関数を利用して算出した第2の特定のポート番号を前記サーバーのCUG対応のポート番号として回線接続することを特徴としている。
【0013】
更に、上記の第1の非公開通信におけるセキュリティ確保方法において、前記サーバーと前記クライアントとの間で再接続する場合に、予め決められた時間の間未接続状態が続けば前記第1の特定のポート番号を前記サーバーのCUG対応のポート番号として回線接続することを特徴としている。
【0014】
また、本発明の第2の非公開通信におけるセキュリティ確保方法は、TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方法であって、前記クライアントは、前記サーバーへのCUGの回線接続要求時に予め決められた第1の関数を利用して算出した第1の接続先CUGポート番号を用いることで回線接続し、前記サーバーとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第2の関数を利用して算出した第2の接続先CUGポート番号を接続開放先のサーバーIPアドレスと開放する自分のクライアントポート番号とがキーとなるように第1のデータベース内のその行に登録し、前記サーバーへの接続を再度行う場合に前記第1のデータベースに登録されている前記第2の接続先CUGポート番号を用いることで回線接続し、前記サーバーは、前記クライアントからの接続要求受信時にTCPヘッダから抽出した前記第1の接続先CUGポート番号の正当性の確認を前記第1の関数で算出した第1の受け側CUGポート番号と一致することで回線接続し、前記クライアントとの間で回線の開放を行う場合に前記第2の関数を利用して算出した第2の受け側CUGポート番号を接続開放先のクライアントIPアドレスと前記クライアントポート番号とがキーとなるように第2のデータベース内のその行に登録し、前記クライアントからの再接続要求受信時にTCPヘッダから抽出した前記第2の接続先CUGポート番号の正当性の確認を前記前記第2のデータベースに登録されている前記第2の受け側CUGポート番号と一致することで回線接続することを特徴としている。
【0015】
更に、上記の第2の非公開通信におけるセキュリティ確保方法において、前記クライアントは、前記サーバーIPアドレスと前記クライアントポート番号とをキーとする前記第1のデータベースに登録された前記第2の接続先CUGポート番号が未接続のまま予め決められた時間以上使用されなければ前記第1のデータベースから該当する前記サーバーIPアドレスとクライアントポート番号とをキーとする行を削除し、前記サーバーは、前記クライアントIPアドレスと前記クライアントポート番号とをキーとする前記第1のデータベースに登録された第2の受け側ポート番号が未接続のまま予め決められた時間以上使用されなった場合に前記第2のデータベースから該当する前記クライアントIPアドレスと前記クライアントポート番号とをキーとする行を削除することを特徴としている。
【0016】
更に、上記の第2の非公開通信におけるセキュリティ確保方法において、前記クライアントは、再接続を含む回線接続時に、前記第1のデータベースに相手先となるCUGポート番号が登録されていなけれれば前記第1の関数で算出した前記第1の接続先ポート番号とすると共にランダムに算出したクライアントポート番号を送信元のクライアントポート番号とし、前記第1のデータベースに相手先となるCUGポート番号が登録されかつ登録されているクライアントポート番号中で現在使用されていないものが存在すれば前記第1のデータベースから抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共に前記第1のデータベースから抽出したクライアントポート番号を前記送信先のクライアントポート番号とし、前記第1のデータベースに相手先となるCUGポート番号が登録されかつ登録されているクライアントポート番号中で現在使用されていないものが存在しなければ前記第1のデータベースから抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共にランダムに算出したクライアントポート番号を前記送信元のクライアントポート番号としている。
【0017】
更に、上記の第1または第2の非公開通信におけるセキュリティ確保方法において、前記第1の関数は、前記サーバーと前記クライアントとの間で同期した時間を基に変動値になるように構成された関数であることを特徴としている。
【0018】
また、本発明の第1の非公開通信におけるセキュリティ確保方式は、TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方式であって、前記クライアントは、前記サーバーへのCUGの回線接続要求時に予め決められた第1の関数を利用して算出した第1の接続先CUGポート番号を用いることで回線接続する第1の接続手段と、前記サーバーとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第2の関数を利用して算出した第2の接続先CUGポート番号を接続開放先のサーバーIPアドレスと開放する自分のクライアントポート番号とがキーとなるように登録する第1の登録手段と、前記サーバーへの接続を再度行う場合に前記第1のデータベースに登録されている前記第2の接続先CUGポート番号を用いることで回線接続する第1の再接続手段と、を有することを特徴としている。
【0019】
更に、上記の第1の非公開通信におけるセキュリティ確保方式において、前記サーバーは、前記クライアントからの接続要求受信時にTCPヘッダから抽出した前記第1の接続先CUGポート番号の正当性の確認を前記第1の関数で算出した第1の受け側CUGポート番号と一致することで回線接続する第2の接続手段と、前記クライアントとの間で回線の開放を行う場合に前記第2の関数を利用して算出した第2の受け側CUGポート番号を接続開放先のクライアントIPアドレスと前記クライアントポート番号とがキーとなるように登録する第2の登録手段と、前記クライアントからの再接続要求受信時にTCPヘッダから抽出した前記第2の接続先CUGポート番号の正当性の確認を前記前記第2のデータベースに登録されている前記第2の受け側CUGポート番号と一致することで回線接続する第2の再接続手段と有することを特徴としている。
【0020】
また、本発明の第2の非公開通信におけるセキュリティ確保方式は、TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方式であって、前記サーバーは、前記クライアントからの接続要求受信時にTCPヘッダから抽出したCUGポート番号の正当性の確認を予め決められた第1の関数で算出した第1の受け側CUGポート番号と一致することで回線接続する第2の接続手段と、前記クライアントとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号基に変動値となるように構成された第2の関数を利用して算出した第2の受け側CUGポート番号を接続開放先のクライアントIPアドレスと前記クライアントポート番号とがキーとなるように登録する第2の登録手段と、前記クライアントからの再接続要求受信時にTCPヘッダから抽出したCUGポート番号の正当性の確認を前記前記第2のデータベースに登録されている前記第2の受け側CUGポート番号と一致することで回線接続する第2の再接続手段と有することを特徴としている。
【0021】
更に、上記の第1の非公開通信におけるセキュリティ確保方式において、前記クライアントは、前記サーバーIPアドレスと前記クライアントポート番号とをキーとする前記第1の登録手段で登録された前記第2の接続先CUGポート番号が未接続のまま予め決められた時間以上使用されなければ前記第1の登録手段で登録された該当する前記サーバーIPアドレスとクライアントポート番号とをキーとする行を削除する第1の削除手段を有することを特徴としている。
【0022】
更に、上記の第1または第2の非公開通信におけるセキュリティ確保方式において、前記サーバーは、前記クライアントIPアドレスと前記クライアントポート番号とをキーとする前記第2の登録手段で登録された第2の受け側ポート番号が未接続のまま予め決められた時間以上使用されなった場合に前記第2の登録手段で登録された該当する前記クライアントIPアドレスと前記クライアントポート番号とをキーとする行を削除する第2の削除手段とを有することを特徴としている。
【0023】
更に、上記の第1の非公開通信におけるセキュリティ確保方式において、前記第1の接続手段は、再接続を含む回線接続時に、前記第1の登録手段で登録された相手先となるCUGポート番号が存在しなければ前記第1の関数で算出した前記第1の接続先ポート番号とすると共にランダムに算出したクライアントポート番号を送信元のクライアントポート番号として前記サーバに対して回線接続要求を行う手段を有し、前記第1の接続手段は、再接続を含む回線接続時に、前記第1の登録手段で登録された相手先となるCUGポート番号が存在しかつ登録されているクライアントポート番号中で現在使用されていないものが存在すれば前記第1のデータベースから抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共に前記第1の登録手段から抽出したクライアントポート番号を前記送信先のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段と、前記第1の登録手段で登録された相手先となるCUGポート番号が存在しかつ登録されているクライアントポート番号中で現在使用されていないものが存在しなければ前記第1の登録手段から抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共にランダムに算出したクライアントポート番号を前記送信元のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段と、を有することを特徴としている。
【0024】
更に、上記の第1または第2の非公開通信におけるセキュリティ確保方式において、前記第1の関数は、前記サーバーと前記クライアントとの間で同期した時間を基に変動値となるように構成された関数であることを特徴としている。
【0025】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して、説明する。
【0026】
図1を参照すると、本発明の実施の形態は、最低1台のサーバー側コンピュータ1と、複数のクライアント側コンピュータ2と、ネットワーク900とから構成される。なお、サーバー側コンピュータ1およびクライアント側コンピュータ2は、ネットワーク900と接続する図示していないインタフェース部をそれぞれ実装しており、サーバー側コンピュータ1とクライアント側コンピュータ2との通信は、それぞれのインタフェース部およびネットワーク900を介してIPプロトコルの基で行われる。
【0027】
図1のサーバー側コンピュータ1は、図示していないプロセッサ(CPU)によりプログラム制御で動作するコンピュータであって、そのコンピュータがCUG(Closed User Group:クローズドユーザグループ)のアプリケーションを実行する場合にTCP/IPプロトコルに伴うプログラムを実行した場合のコンピュータ内の機能ブロックを示すと、CUGのアプリケーション実行部であるアプリケーション部11と、TCP処理部12と、IP処理部13と、データベース14とから構成される。また、サーバー側コンピュータ1は、CUGサービスを行っている。なお、CUGとは、特定のグループのメンバーだけがサーバーを利用できる情報サービスのことである。
【0028】
図1のクライアント側コンピュータ2は、図示していないプロセッサ(CPU)によりプログラム制御で動作するコンピュータであって、そのコンピュータがTCP/IPプロトコルに伴うプログラムを実行した場合のコンピュータ内の機能ブロックを示すと、アプリケーション部21と、TCP処理部22と、IP処理部23とから構成される。
【0029】
図12を参照すると、サーバー側コンピュータ1のデータベース14の構成を示し、TCP処理部12がCUG対応のポート番号の管理に使用する。このデータベース14は、図示していない記憶部(例えば、不揮発性の磁気ディスク装置、揮発性のRAM等)内のエリアに割り当てられており、クライアント側のコンピュータ2のIPアドレス毎に、サーバー側のCUG対応のポート番号とクライアント側のポート番号とからなるポート番号、切断されていない時間を管理するタイムスタンプと、接続の状態を(接続:ON、切断:OFFまたは「0」値)示す接続状態とを含んでいる。最初、クライアント側コンピュータ2からCUG対応のポート番号に接続されてサーバー側から切断されると、そのクライアント側コンピュータ2のIPアドレス対応の各項目のエリアに登録される。クライアント側コンピュータ2から再接続されて前回使用したIPアドレスが登録されている場合には、データベース14に登録されているポート番号に基づいて受信パケットに搭載されているポート番号の正当性チェックに利用される。
【0030】
図13を参照すると、クライアント側コンピュータ2のデータベース24の構成を示し、TCP処理部22がCUG対応のポート番号の管理に使用する。このデータベース24は、図示していない記憶部(例えば、不揮発性の磁気ディスク装置、揮発性のRAM等)内のエリアに割り当てられており、サーバー側コンピュータ1のIPアドレスに、サーバー側コンピュータ1のCUG対応のポート番号とクライアント側コンピュータ2のポート番号とからなるポート番号、切断されていない時間を管理するタイムスタンプと、接続の状態を(接続:ON、切断:OFFまたは「0」値)示す接続状態とを含んでいる。最初、クライアント側コンピュータ2からCUG対応のポートに接続してサーバー側コンピュータ1から切断されると、そのサーバー側コンピュータ1のIPアドレス対応の各項目のエリアに登録される。クライアント側コンピュータ2から再接続する場合に前回使用したIPアドレスが登録されていると、データベース24に登録されているポート番号が、送信パケットに搭載するTCPポート番号として利用される。
【0031】
次に、図1〜図11を参照して、本発明の実施の形態の動作について説明する。
【0032】
先ず、図2を参照すると、CUGサービスに関する手続をサーバー側コンピュータ1とクライアント側コンピュータ2との間で終了した後に、このCUGサービスを初めてサーバー側コンピュータ1とクライアント側コンピュータ2と間でTCP/IP通信を開始する場合、図1のサーバー側コンピュータ1に対してクライアント側コンピュータ2が接続要求してアプリケーションレベルでのデータ通信を行うまでの状態遷移を示した状態遷移概略図である。両者間はTCP/IPを用いたクライアント・サーバー通信を行っている。この図2および図8を中心に、CUGサービスに関する手続をサーバー側コンピュータ1とクライアント側コンピュータ2との間で終了した後に、このCUGサービスを初めてサーバー側コンピュータ1とクライアント側コンピュータ2とがTCP/IP通信を開始する場合の動作を説明する。
【0033】
CUG内のクライアント側コンピュータ2からサーバー側コンピュータ1へアプリケーションによる通信を行う場合、クライアント側コンピュータ2のアプリケーション部21からTCP処理部22に内部通信経路61が作られる。このときTCP処理部22は、送信元のクライアント側コンピュータ2のポート番号であるPORTaおよび送信先のサーバー側コンピュータ1のCUG対応のポート番号を定義し、内部通信経路62を経由してIP処理部23へ通信メッセージ(この場合TCPパケット)を転送する。その後IP処理部23により、送信元のIPアドレス、送信先のIPアドレス等のIPヘッダを通信メッセージ(この場合TCPパケット)に付加することでIPパケットを作成して、クライアント側コンピュータ2からCUG対応のアプリケーションへの仮想回線確立要求70が通信路(ネットワーク900)を経由してサーバー側コンピュータ1に伝達される(図6のステップS300,S401)。(図2―1の途中)。
【0034】
サーバー側コンピュータ1では、クライアント側コンピュータ2で経由した全く逆の流れに従ってサーバー側コンピュータ1のTCP処理部12に定められているサーバー側待ち受けCUG対応のポート番号であるXに内部通信経路62を経て接続する。この場合、サーバー側TCP処理部12の受信処理で仮想回線確立要求のCUG対応のポート番号の正当性を確認することで、正しくサーバー側待ち受けポート番号「X」を指定したクライアント側コンピュータ2からの通信のみがサーバー側アプリケーション部11に接続される。更に、サーバー側TCP処理部12は、IP処理部13を介して仮想回線確立応答71をクライアント側コンピュータ2に返信する。すると、クライアント側コンピュータ2のIP処理部23は、内部通信経路62、61を介してアプリケーション部21にサーバー側コンピュータ1との通信パスが確立したことを通知する。すなわち、クライアント・サーバー通信が成り立つ。この場合、サーバー1コンピュータから応答を受信したクライアント側コンピュータ2のTCP処理部22は、接続情報(接続したサーバーIPアドレス、クライアントポート番号、CUGポート番号を登録し、タイムスタンプを「0」、接続状態を「ON」に設定)をデータベース24に登録する(ステップS100,S201,S402)(図2−1の状態)。なお、以降の説明では、回線確立要求を仮想回線接続要求と呼ぶことがある。
【0035】
この処理後、他のCUGのクライアント側コンピュータ2との通信を待ち受けるために、サーバー側コンピュータ1のTCP処理部12は、コネクション確立後クライアント側コンピュータ2のポート番号「PORTa」と接続していることを認識するためにサーバー側コンピュータ1のポート番号としてX,PORTaを新たに定義してデータベース14内の接続先のクライアント側コンピュータ2のIPアドレスを登録すると共にそのIPアドレスに対応するポート番号エリアに登録し、更に、タイムスタンプエリアを「0」を設定し、接続状態を「ON」に設定して管理する(ステップS202)。この場合、論理的には、サーバー側待ち受けCUG対応のポート番号「X」を開放してポート番号「X,PORTa」に接続し直したのと同等の処理になる。この状態で、サーバー側コンピュータ1とクライアント側コンピュータ2との間でアプリケーションデータ要求72、アプリケーションデータ応答73が伝播され所定の通信が実施される(ステップS500)。(図2−2の状態)。
【0036】
なお、ステップS500での各TCP処理部では、それぞれのアプリケーション部およびIP処理部とのやり取りを行いながら、送信する場合は、TCPヘッダに通信パスが張られたポート番号(サーバー側:X,クライアント側:PORTa)、シーケンス番号(バイト単位毎に増えていく)、確認応答番号等を設定し、受信する場合は、それらを抽出し確認(シーケンス番号等のチェック)を取りながら動作する。
【0037】
上記のステップS401のクライアント側コンピュータ2からの仮想回線接続要求をサーバー側コンピュータ1のTCP処理部12が受信した場合のステップS100における処理を、図7を中心に説明する。
【0038】
TCP処理部12は、データベース14に仮想回線接続要求のあったクライアント側コンピュータ2のIPアドレスが(この場合受信したIPヘッダから抽出)登録されているかを確認する(図7のステップS101,S102)。
【0039】
ステップS102において、最初であるため登録されていないので、仮想回線接続要求メッセージのTCPヘッダから抽出したサーバー側CUG対応のポート番号とサービスリストに登録されているCUGポート番号とが同じ(一致)するかを確認する(ステップS108,S109)。なお、以降の説明では、サーバー側コンピュータ1のCUG対応のポート番号を略してCUGポート番号と呼ぶ場合がある。
【0040】
ステップS109において、一致すれば、TCP処理部12は、仮想回線接続処理(アプリケーション11への通知等)を行い、図6のステップS201へ進み、一致しなければ、切断処理を行い、終了する(ステップS108,S109,S107)。
【0041】
なお、ステップS102において、登録されている場合には、TCP処理部12は、仮想回線接続要求メッセージのTCPヘッダから抽出した送信先であるCUGポート番号とデータベース14に確認したIPアドレスのエリアのCUGポート番号とが同じ(一致する)かを、確認する(ステップS103,S104)。
【0042】
ステップS104で一致すると、TCP処理部12は、仮想回線接続要求メッセージのTCPヘッダから抽出した送信元であるクライアントポート番号とデータベース14に確認したIPアドレスのエリアのクライアントポート番号とが同じ(一致する)かを、確認する(ステップS105,S106)。
【0043】
ステップS106において、一致すれば、TCP処理部12は、仮想回線接続処理(アプリケーション11への通知等)を行い、図6のステップS201へ進む(ステップS107)。
【0044】
ステップS106において、一致しなければTCP処理部12は、ステップS102において終了する(ステップS111,S112)。
【0045】
ステップS104において、一致しなければ、TCP処理部12は、ステップS102で一致したIPアドレスの行をデータベース14から削除処理を行い、終了する(ステップS110,S112)。
【0046】
なお、上記の説明において、ステップS104において、CUGポート番号が一致した後、TCP処理部12がステップS105,S106によりクライアントポート番号のチェックを行ったが、クライアントコンピュータ2から新たなクライアントポート番号を使用してCUGサービスを受けるために接続してきたものと判断するために、TCP処理部12がステップS105,S106の処理を行わないで仮想回線接続の処理を行うようにしても良い。
【0047】
上記のステップS300における仮想回線接続要求処理は、以下のようになる。
【0048】
アプリケーション部21から接続要求を受けたクライアント側コンピュータ2のTCP処理部22は、データベース24にCUGポート番号が登録されていないかを確認する(図8のステップS301,S302)。
【0049】
最初の通信であるため、データベース24に登録されていないので、TCP処理部22は、関数fn(以降で説明)でサーバー側のCUGポート番号を算出し、更にクライアント側のポート番号を算出(この場合は、ランダムに算出)してそれぞれ算出したCUGポート番号、クライアント側コンピュータ2のポート番号等をTCPヘッダに設定して、サブルーチンを終了する(ステップS304)。この場合、再接続の場合でも、データベース24の登録されていない場合があると、TCP処理部22は、ステップS304実行することになり、最初の通信の場合と同じように動作する。
【0050】
TCP/IP通信では、通信が論理的に常時接続されておらずクライアント側コンピュータ2からの要求がサーバー側コンピュータ1からの応答で完了した場合、両者間の仮想回線が開放される。しかしながら一定時間内の再接続であればサーバー側コンピュータ1はクライアント側コンピュータ2の通信履歴をデータベース14に保持しており、後にクライアント側コンピュータ2から伝達される仮想回線確立要求70を受け付ける。本発明では、悪意の第三者にサーバー側待ち受けポート番号Xが悟られないようにサーバー側コンピュータ1とクライアント側コンピュータ2が独自に何の事前通知や変更通知も行わず、サーバー側コンピュータ1の待ち受けポート番号「X」を算定して通信を実施している。
【0051】
以上説明したように、本方式によるクライアント・サーバー通信の機能・動作をまとめると以下のようになる。
【0052】
なお、本方式では通常のTCP/IPにおけるメカニズムを踏襲しているため、IPアドレス、ポート番号を使用する基本的な通信動作(TCP/IPパケットの作成およびクライアント・サーバー間のパケットのやり取り)には差異がない。
【0053】
図2に示すように、サーバー側コンピュータ1においてはクライアント側コンピュータ2からの仮想回線接続を受け付けるCUG対応のポート番号がRFC1060に定義された公のポート番号範囲外でかつ動的に可変するポート番号「X」となっている。当然ながら接続要求時のIPアドレスは正しいサーバー側コンピュータ2のIPアドレス指定が前提である。
【0054】
このポート番号「X」部分は従来のTCP/IP通信で一例を示せば、ポート番号「80」となり、これはアプリケーションとしてHTTPを用いることを示している。
【0055】
このように従来方式では公のポート番号を明示することにより公の利用が可能であるが、CUG内の当事者だけで利用することを目的とした場合、通信を非公開に留めることが出来ない。
【0056】
この問題点の改善として本方式の特徴はサーバー側コンピュータ1の仮想回線接続受付のCUG対応のポート番号がCUG以外には非公開となっている点と、およびこのCUGポート番号がTCP/IP通信ごとに動的に可変させる機能を持たせる。これによりCUG以外の第三者には判定ができないことになる。
【0057】
図2−2を参照すると、サーバー側コンピュータ1がクライアント側コンピュータ2からの仮想回線接続を受け付けた後のポート番号状態を示す。仮想回線が接続されるとサーバー側コンピュータ1においては新たに「X,PORTa」なるポート番号を設けクライアント側コンピュータ2とのTCP/IP通信を実施する。尚、「X,PORTa」は「X」ポート番号で接続された「PORTa」ポート番号通信と認識される。
【0058】
また、ポート番号だけの通信では複数のクライアントコンピュータ2が存在する場合、ポート番号の重複もあり得るため、サーバー側コンピュータ1ではCUG各クライアントコンピュータ2のIPアドレスも同時に識別し各クライアント通信をユニークに区別している。
【0059】
次に、図4のシーケンス図を参照して、メッセージのシーケンスの動作について説明する。図4のシーケンス動作は、仮想回線を接続する動作期間(シーケンスA110)と、アプリケーションのデータのやり取りを行うアプリケーション通信期間(シーケンスA120)と、仮想回線を切断する動作期間(シーケンスA130)とから成り立ち、仮想回線期間を接続する動作期間から説明する。
【0060】
クライアント側コンピュータ2から始点(クライアント側コンピュータ2)のポート番号は「PORTa」,終点(サーバー側コンピュータ1)のCUGポート番号は「X」のパラメータを持った仮想回線接続要求を示すSYNメッセージ(SYNパケット)がサーバー側コンピュータ1に送信される(図4のシーケンスA101)。
【0061】
サーバー側コンピュータ1はSYNメッセージの応答として仮想回線接続要求受信有効を示すSYN,ACKメッセージ(SYN,ACKパケット)をクライアント側コンピュータ2へ送信する(シーケンスA102)。この時は始点(サーバー側コンピュータ1)のCUGポート番号は「X」,終点(クライアント側コンピュータ2)のポート番号は「PORTa」となる。
【0062】
最後にクライアント側コンピュータ2はSYN,ACKメッセージの応答として受信確認有効を示すACKメッセージ(ACKパケット)をサーバー側コンピュータ1へ送信する。この時は終点(サーバー側コンピュータ1)のCUGポート番号は「X」,始点(クライアント側コンピュータ2)のポート番号は「PORTa」となる(シーケンスA103)。
【0063】
仮想回線期間を切断する動作期間については、サーバー側コンピュータ1から始点(サーバー側コンピュータ1)のCUGポート番号は「X」,終点(クライアント側コンピュータ2)のポート番号は「PORTa」のパラメータを持った仮想回線切断要求を示すFINメッセージ(FINパケット)がクライアント側コンピュータ2に送信される(シーケンスA131)。
【0064】
クライアント側コンピュータ2はFINメッセージの応答として仮想回線切断要求受信有効を示すACKメッセージ(ACKパケット)をサーバー側コンピュータ1へ送信する(シーケンスA132)。この時は始点(クライアント側コンピュータ2)のポート番号は「PORTa」,終点(サーバー側コンピュータ1)のCUGポート番号は「X」となる。これによりサーバー側コンピュータ1からの仮想回線が切断されたことになる。
【0065】
TCP/IPは全ニ重通信であるため、クライアント側コンピュータ2からも仮想回線切断を行う必要があり、このためクライアント側コンピュータ2から始点(クライアント側コンピュータ2)のポート番号は「PORTa」,終点(サーバー側コンピュータ1)のCUGポート番号は「X」のパラメータを持った仮想回線切断要求を示すFINメッセージがサーバー側コンピュータ1に送信される(シーケンスA133)。
【0066】
サーバー側コンピュータ1はFINメッセージの応答として仮想回線切断要求受信有効を示すACKメッセージをクライアント側コンピュータ2へ送信する(シーケンスA134)。この時は始点(サーバー側コンピュータ1)のCUGポート番号は「X」,終点(クライアント側コンピュータ2)のポート番号は「PORTa」となる。これによりクライアント側コンピュータ2からの仮想回線が切断されたことになり、全ニ重回線の全てが切れ、サーバー側コンピュータ1とクライアント側コンピュータ2と間の通信が終了する。
【0067】
次に、本文中で述べたサーバー側コンピュータ1のCUG対応の動的可変ポート番号「X」がどのように決められ、またTCP/IP通信ごとにどのように可変するかを述べる。
【0068】
CUGサービスに関する手続をサーバー側コンピュータ1とクライアント側コンピュータ2との間で終了した後に、このCUGサービスを初めてサーバー側コンピュータ1とクライアント側コンピュータ2との間でTCP/IP通信を開始する場合のCUGポート番号の算出方法を以下に述べる。
【0069】
サーバー側コンピュータ1のCUGポート番号を「X」とすると、サーバー側コンピュータ1のCUG対応ポート番号「X」の判定方法は、サーバー側コンピュータ1のTCP処理部12およびクライアント側コンピュータ2のTCP処理部22が独自に判定する。
【0070】
サーバー側コンピュータ1のCUG対応ポート番号「X」のサーバー側コンピュータ1の算出方法は、図9の日付変更時に決定される。すなわち、以下のように動作する。
【0071】
日付が変更すると、TCP処理部12は、新たなCUGポート番号を算出し、その算出したCUGポート番号をサービスファイルに登録(以前のCUGポート番号を、算出したCUGポート番号に置き換える)して終了する(図9のステップ601、S602)。
【0072】
また、サーバー側コンピュータ1のCUG対応ポート番号「X」のクライアント側の算出方法は、図6のステップS300内の仮想回線接続要求処理時すなわち、図8のステップS304で算出される。
【0073】
なお、上記の説明において、サーバー側コンピュータ1のTCP処理部12およびクライアント側コンピュータ2のTCP処理部22とも、「X」=fn(Z)なる関数fnを用いて判定する。
【0074】
関数fnの定義は、演算結果が自由使用できるポート番号範囲の1024〜65535になるように定め、例えば式1を用いる。なお、INTは、小数点以下を切り捨て整数値化する関数であり、MODは、引き算を示す。
【0075】
【数1】

Figure 2004265122
【0076】
また、変数Zも第三者に盗聴されないようにするため、サーバー側コンピュータ1、クライアント側コンピュータ2の両方が独自に知り得る値、例えば年月日や時刻などを初期値として二次的に計算して求められる方法を用いる。式1での例として年月日から求まる数字Z=(YY+MM+DD)〔例えば、2003年5月1日であると、Z=2003+05+01=2009〕を用いると、ポート番号最大値65535の引き算値(例えば、「X」=65535−2009=63526)をCUG対応のポート番号とする方法である。
【0077】
ここで関数fn、変数Z、MODについては実際にCUGを運用する管理者が適宜決めることが相応しく、あくまでも上記内容は例である。
【0078】
このようにサーバー側コンピュータ1のTCP処理部12、クライアント側コンピュータ2のTCP処理部22が共通のポート番号演算方法を知っているため、自由使用できるポート番号範囲のあるポート番号「X」で仮想回線接続を開始することが可能となる。すなわち、関数fnは、サーバー側コンピュータ1とクライアント側コンピュータ2との間で同期した時間を基に変動値(1024〜65535の値)になるように構成されていることになる。
【0079】
次にサーバー側コンピュータ1とクライアント側コンピュータ2と間でTCP/IP通信をすでに実行していて再接続する場合の動作について以下に述べる。
【0080】
ポート番号をTCP/IP通信ごとに可変させる方式であるが、第三者にポート番号の盗聴防止のため、可変させる契機についてもサーバー側コンピュータ1、クライアント側コンピュータ2が新たなポート番号を確認するための何らかの通信を行わなくても判定できる方法を実施する。
【0081】
図2に示すようにクライアント側コンピュータ2からサーバー側コンピュータ1へ仮想回線接続要求が確立した後、サーバー側コンピュータ1からクライアント側コンピュータ2に要求したデータが送信されるが、このときサーバー側コンピュータ1からのデータ転送のバイト数を確認するためにシーケンス番号(SQ番号)が必ずクライアント側コンピュータ2に送信され、通信が行なわれる間は、サーバー側コンピュータ1とクライアント側コンピュータ2が同じ内容を保有することが可能である。
【0082】
このシーケンス番号の意味は、サーバー側コンピュータ1においては送信したデータのバイト数を示し、クライアント側コンピュータ2においては受信すべきデータのバイト数を表している。従って図5に示す様に仮想回線における通信過程で常に含まれている情報となる。
【0083】
このシーケンス番号を用いてポート番号可変動作を行わせる。尚、これは通常のTCP/IP通信手順を一切の変更無く利用して行うことが可能である。また改めて可変したポート番号を連絡する通信を行う必要が無いため、第三者に可変させるポート番号を盗聴されることがない。
【0084】
このシーケンス番号を利用して、ポート番号を可変させる方法としてはTCP/IP通信が終了した時点で示されたSQ番号を元に両者が予め知っているCUG内で定義された変換式fxに当てはめ、新たなポート番号を算定する。
【0085】
例えば変換式fxの一例として、新しいポート番号を「Y」とすると、「Y」=fxとなる。すなわち、サーバー側コンピュータ1のアプリケーション、クライアント側コンピュータ2のCUGアプリケーションが共通して下記の変換式を知っている為、式2で求めることが出来る。なお、INTは、週数点以下を切り捨て整数化する関数であり、MODは、引き算を示す。
【0086】
【数2】
Figure 2004265122
【0087】
SQ番号(シーケンス番号)はバイト数を表しており、式2の中のSQはKB換算(端数は切り上げとする)する。例として2050バイトであれば、3KBとなり、ポート番号最大値65535からの引き算値(例えば、「Y」=65535−3=65532)を新ポート番号とする方法である。ここで関数fx、変数SQ、MODについては実際にCUGを運用する管理者が適宜決めることが相応しく、あくまでも上記内容は例である。
【0088】
ここで変換式については実際にCUGを運用する管理者が適宜決めることが相応しく、あくまでも上記内容は例である。すなわち、関数fxは、仮想回線開放直前のサービスデータ(アプリケーション部11とアプリケーション21との間で転送される最後のデータ)のシーケンス番号を基に変動値(1024〜65535の値)となるように構成されていることになる。以上の点を考慮したのが、図6のフローチャートである。
【0089】
次に図6を中心に説明する。なお、接続し、アプリケーションレベルでデータのやり取りを行う動作については、上記の図2と図6の説明で説明した通りであるが、サーバー側コンピュータ1からの仮想回線開放要求の動作は以下のようになる。
【0090】
サーバー側コンピュータ1のアプリケーション部11からクライアント側アプリケーション部21への仮想回線開放要求があると、TCP処理部12は、IP処理部13、ネットワーク900を介して、クライアント側コンピュータ2に送信する(ステップS203)。
【0091】
IP処理部23を介して仮想回線開放要求を受信したクライアント側コンピュータ2のTCP処理部22は、開放通知をアプリケーション部21に通知し、回線開放直前のSQ番号からサーバー側コンピュータ1の新しい番号を変換式fxで算出すると共に、アプリケーション部21からのサーバー側コンピュータ1への仮想回線開放要求をIP処理部23、ネットワーク900を介して、サーバー側コンピュータ1に送信する(図6のステップS403)。
【0092】
IP処理部13を介して仮想回線開放要求を受信したサーバー側コンピュータ1のTCP処理部12は、仮想回線開放通知をアプリケーション部11に通知し、回線開放直前のSQ番号からサーバー側コンピュータ1の新しいCUGポート番号を変換式fxで算出する(ステップS204)。
【0093】
更に、TCP処理部12は、ステップS204で算出した新しいポート番号、タイムスタンプ(「0」値)、接続状態(OFF)をデータベース14内の開放するクライアントIPアドレスとクライアントポート番号とをキーとした接続状態エリアに登録し終了する(ステップS205)。
【0094】
一方、クライアント側コンピュータ2のTCP処理部22は、ステップS403で算出した新しいCUGポート番号、タイムスタンプ(「0」値、接続状態(OFF)をデータベース24内の開放するサーバーIPアドレスとクライアントポート番号とをキーとした接続状態エリアに登録し終了する(ステップS205)。
【0095】
すなわち、算出した新しいCUGポート番号「Y」は、サーバー側およびクライアント側のそれぞれのデータベースに通信相手のIPアドレスとクライアントポート番号と共に記憶させることになる。
【0096】
但しこのCUGポート番号「Y」の値を保持し続けるとデータベース14のメモリ容積を圧迫するため、一定時間経過後までに新しいTCP/IP通信が実施されない場合にCUGポート番号「Y」をクリアするためのタイマ機能をサーバー側コンピュータ1、クライアント側コンピュータ2の両方に持たせる。その場合の動作を以下に示す。
【0097】
予め決められた時間間隔(例えば、1分)で割り込みを発生する図示していないタイマにより、割り込みが発生すると、サーバー側コンピュータ1のTCP処理部12は、データベース14内で、接続状態が「OFF」になっているIPアドレスのタイムスタンプを+1カウントアップする(図10のステップS701)。
【0098】
TCP処理部12は、カウントアップしたタイムスタンプが予め決められた値(規定値)以上かの確認を行う(ステップS702,S703)。
【0099】
ステップS703において、規定値以上であれば、TCP処理部12は、規定値以上であれば、規定値以上になったクライアントIPアドレスとクライアントポート番号をキーとした行を削除(データベース14から該当するIPアドレス1行削除)して終了し、規定値以上でなければ、そのまま終了する(ステップS704)。
【0100】
一方、クライアント側コンピュータ2でも予め決められた時間間隔(例えば、1分)で割り込みを発生する図示していないタイマにより、割り込みが発生すると、クライアント側コンピュータ2のTCP処理部22は、データベース24内で、接続状態が「OFF」になっているIPアドレスのタイムスタンプを+1カウントアップする(図11のステップS801)。
【0101】
TCP処理部22は、カウントアップしたタイムスタンプが予め決められた値(規定値)以上かの確認を行う(ステップS802,S803)。
【0102】
ステップS803において、規定値以上であれば、TCP処理部22は、規定値以上になったサーバーIPアドレスとクライアントポート番号とをキーとした行を削除(データベース24から該当するIPアドレス1行削除)して終了し、規定値以上でなければ、そのまま終了する(ステップS804)。
【0103】
従ってタイムスタンプの値が規定値以上になると、それぞれのデータベースに登録されている通信相手のIPアドレスとクライアントポート番号をキーとする行がクリアされることになり、次回クライアント側コンピュータ2がCUGサービスを受ける場合、年月日から演算により求めたCUGポート番号「X」が使用されることになる。
【0104】
従って本方式でのTCP/IP通信において利用するCUGポート番号は、下記の2通りとなる。
【0105】
CUGポート番号クリアタイマ未動作(タイムスタンプが規定以上でない)の場合の場合は、式2による(ポート番号「Y」)。
【0106】
CUGポート番号クリアタイマ動作(タイムスタンプが規定以上でない)の場合には、式1による(ポート番号「X」)。
【0107】
次に、図3を参照すると、CUGサービスの継続処理のために再接続してサーバー側コンピュータ1とクライアント側コンピュータ2との間でTCP/IP通信を開始する場合、図1のサーバー側コンピュータ1に対してクライアント側コンピュータ2が接続要求してアプリケーションレベルでデータの通を行うまでの状態遷移を示した状態遷移概略図である。両者間はTCP/IPを用いたクライアント・サーバー通信を行っている。この図3、図6、図7、および図8を中心に、CUGサービスの継続処理のために再接続してサーバー側コンピュータ1とクライアント側コンピュータ2との間でTCP/IP通信を開始する場合の動作を以下に説明する。
【0108】
CUG内のクライアント側コンピュータ2からサーバー側コンピュータ1へアプリケーションによる通信を行う場合、クライアント側コンピュータ2のアプリケーション部21からTCP処理部22に内部通信経路61が作られる。このときTCP処理部22は、データベース24にアクセスするサーバー側コンピュータ1のIPアドレスが登録されているかを確認すると、登録されているのでデータベース24に登録されているクライアントポート番号の中で接続状態が「OFF」になっているものが存在するか(すなわち、現在使用されていないものが存在するか)を確認する(図8のステップS301〜S303,S305)。未使用があれば、TCP処理部22は、先に抽出したものを優先してデータベース24からCUGポート番号「Y」と送信元のクライアントポート番号であるPORTaとを抽出し、TCPヘッダに設定し、内部通信経路62を経由してIP処理部23へ通信メッセージ(この場合TCPパケット)を転送する(ステップS306)。ステップS305において、未使用のものが存在しなければ、TCP処理部22は、データベース24からCUGポート番号「Y」を抽出すると共に送信先のクライアントポート番号をランダムに算出してTCPヘッダに設定し、内部通信経路62を経由してIP処理部23へ通信メッセージ(この場合TCPパケット)を転送する(ステップS307)。その後IP処理部23により、送信元のIPアドレス、送信先のIPアドレス等のIPヘッダを通信メッセージ(この場合TCPパケット)に付加することでIPレベルの通信メッセージ(この場合、IPパケット)を作成して、クライアント側コンピュータ2から仮想回線確立要求72が通信路(ネットワーク900)を経由してサーバー側コンピュータ1に伝達される(図6のステップS401)。(図3−1の途中)。
【0109】
サーバー側コンピュータ1では、クライアント側コンピュータ2で経由した全く逆の流れに従ってサーバー側コンピュータ1のTCP処理部12に定められているサーバー側待ち受けポート番号であるYに内部通信経路62を経て接続する。この場合、サーバー側TCP処理部12は、データベース14に仮想回線接続要求のあったクライアントコンピュータ2のIPアドレス(受信したIPヘッダから抽出)が登録されているかを確認すると、登録されているので、データベース14に確認したIPアドレスのエリアに仮想回線接続要求おけるTCPヘッダから抽出したCUGポート番号が登録されているかを確認する(図7のステップS101〜S104)。ステップS104で登録済みである(一致するCUGポート番号が存在する)ので、TCP処理部12は、仮想回線接続要求メッセージのTCPヘッダから抽出した送信元であるクライアント側ポート番号とデータベース14に確認したIPアドレスのエリアのクライアントポート番号とが同じ(一致する)かを、確認する(ステップS105,S106)。ステップS106において、一致すれば、TCP処理部12は、仮想回線接続処理(アプリケーション11への通知等)を行い、図6のステップS201へ進み、同じでなければ、ステップS106で一致したIPアドレスとステップS104で一致したクライアントポート番号とをキーとする行をデータベース14から削除して、切断処理を行い、終了する(ステップS107,S111,S112)。このようにして受信処理で接続要求のポート番号の正当性を確認することで、正しくサーバー側待ち受けポート番号「Y」を指定したクライアント側コンピュータ2からの通信のみがサーバー側アプリケーション11に接続される。更に、サーバー側コンピュータ1のTCP処理部12は、IP処理部13を介して仮想回線確立応答73をクライアント側コンピュータ2に返信する。すると、クライアント側コンピュータ2のIP処理部23は、内部通信経路62、61を介してアプリケーション部21にサーバー側コンピュータ1との通信パスが確立したことを通知する。すなわち、クライアント・サーバー通信が成り立つ。この場合、サーバー1コンピュータから応答を受信したクライアント側コンピュータ2のTCP処理部22は、接続情報(接続したサーバーIPアドレス、クライアントポート番号、CUGポート番号をキーとし、登録していなければ新たに登録し、そのキーに該当するタイムスタンプを「0」、接続状態を「ON」に設定:なお再接続の場合は登録済み)をデータベース24に登録する(ステップS201,S402)。(図3−1の状態)。
【0110】
上記のステップS307をTCP処理部22が実行する場合は、CUGサービスをサーバー側コンピュータ1から受ける場合でも1台のクライアントから複数の通信パス(複数の仮想回線)を張ることができる。
【0111】
上記の一連の処理の実行後、他のCUGのクライアント側コンピュータ2との通信を待ち受けるために、サーバー側コンピュータ1のTCP処理部12は、コネクション確立後クライアントコンピュータ2のポート番号「PORTa」と接続していることを認識するためにサーバー側のポート番号としてY,PORTaを新たに定義してデータベース14内の接続先のクライアント側コンピュータ2のIPアドレスに登録し、その該当するタイムスタンプエリアを「0」、接続状態を「ON」にすることになるが、既に登録されている場合は、該当するタイムスタンプエリアを「0」、接続状態のエリアを「ON」にし、管理する(ステップS202)。この場合、論理的には、サーバー側待ち受けポート番号「Y」を開放してポート番号「Y,PORTa」に接続し直したのと同等の処理になる。この状態で、サーバー側コンピュータ1とクライアント側コンピュータ2との間でアプリケーションデータ要求72、アプリケーションデータ応答73が伝播され所定の通信が実施される(ステップS500)。(図3−2の状態)。
【0112】
切断処理に関しては、初めての動作の場合に説明した場合の動作と同じなので説明を省略する。
【0113】
この場合の再接続に伴う動作シーケンスを示すと、図5のようになる。
【0114】
以上説明したように、制限されたクライアントコンピュータ2(CUG)とのプライベート通信において、RFC1060で公にされたウェルノウンサービス対応ポート番号を使用せずにIETFが示している自由使用できるポート番号範囲の1024番以降65535番までの中で、CUG内独自に定めたサービス対応ポート番号を通信ごとに動的に可変して制定、利用してクライアント・サーバー型通信を実施するようにしているため、CUG以外は利用することが出来ない非公開通信となると共に、悪意の第三者 が動的に変化するサービス対応ポート番号を盗聴できないようにすることが可能となる。
【0115】
また、独自に定めたサービス対応ポート番号を動的にサーバー側コンピュータ1で可変させる運用を行うことで、CUGのクライアントコンピュータ2それぞれ独立に非公開通信を利用できると共に、悪意の第三者 が動的に変化するサービス対応ポート番号を盗聴できないようにすることが可能となる。尚、サーバー側コンピュータ1のサービス対応ポート番号が動的に可変するため、クライアント側コンピュータ2では可変するポート番号に自動的に追従する動作を行う。
【0116】
また、サーバー側コンピュータ1のサービス対応ポート番号が動的に変化したことをTCP/IP通信またはUDP/IP通信を用いてサーバー側コンピュータ1からクライアント側コンピュータ2に対して一切通知しない運用を行う(このサービス対応ポート番号が変化したことを通知しない)ことにより、悪意の第三者 が動的に変化するサービス対応ポート番号を盗聴できないようにすることが可能となる。
【0117】
このように、動的に可変させ独自制定したサーバー側コンピュータ1のサービス対応ポート番号でCUGのクライアント・サーバー型通信で運用させるため、悪意の第三者による連続ポートスキャン操作が行なわれた場合でも容易にCUGサーバー側コンピュータ1のサービス対応ポート番号を見出すことが出来なくなり、クラッキング行為を早く諦めさせることが可能となる。加えて、クラッキング操作による無意味なデータ伝播量が減少し、ネットワークの帯域を正しい通信目的のためだけ利用できる。
【0118】
【発明の効果】
本発明は、サーバー側コンピュータの待ち受けポート番号に固定的なウェルノウンポート番号を使用せず、CUG内部のクライアント側コンピュータだけが可変するサーバー側の待ち受けポート番号を知ることが出来る機構を有しているため、TCP/IPを用いたクライアント・サーバー型通信において制限したクライアント側コンピュータのみ利用可能なプライベート運用を行うサーバー側コンピュータを実現し、悪意の第三者によるクラッキング行為を無効にさせ、不正使用、内部データの盗用、改竄、破壊等々の発生を防止できるという効果がある。
【0119】
また、本発明は、一旦CUGのクライアント・サーバー型通信が開始されるとサーバー側コンピュータのポート番号が動的に可変され、クライアント側コンピュータも自動的にサーバー側コンピュータのポート番号に追従する機構を有しているため、悪意の第三者からポートスキャン操作等のクラッキング行為によるポート番号探査が行われても固定的なポート番号が見つけ出されず、クラッキング行為をより早く諦めさせることが出来るという効果がある。これによりクラッキング目的の不正パケット数が減少し、該当するサーバー側コンピュータが置かれるネットワークのトラフィック量を下げ帯域幅を正しい目的のために利用できる効果をもたらすことも可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態のシステムの構成を示すブロック図である。
【図2】本発明における初めてCUGに伴う仮想回線確立から仮想回線確立の完了までの動作を示す状態遷移概略図である。
【図3】本発明における通信中の仮想回線再確立から仮想回線確立が完了するまでの動作を示す状態遷移概略図である。
【図4】本発明における初めて行う仮想回線確立、開放時におけるメッセージのやり取りの動作を示す動作シーケンス図である。
【図5】本発明における通信中の仮想回線再確立、開放時におけるメッセージのやり取りの動作を示す動作シーケンス図である。
【図6】図1のクライアント側コンピュータのアプリケーション部から仮想接続要求があった場合のクライアント側コンピュータおよびサーバー側コンピュータそれぞれのTCP処理部の動作を示すフローチャートである。
【図7】図6のサーバー側コンピュータの仮想回線接続受信処理の動作を示すサブルーチンのフローチャートである。
【図8】図6のクライアント側コンピュータの仮想回線接続要求処理の動作を示すサブルーチンのフローチャートである。
【図9】日付変更が発生した場合のサーバー側コンピュータのTCP処理部の動作を示すフローチャートである。
【図10】タイマ割り込みが発生した場合のサーバー側コンピュータ1のTCP処理部の動作を示すフローチャートである。
【図11】タイマ割り込みが発生した場合のクライアント側コンピュータ2のTCP処理部の動作を示すフローチャートである。
【図12】本発明におけるサーバー側コンピュータ1のデータベースの構成例の概略を示す構成概略図である。
【図13】本発明におけるクライアント側コンピュータ2のデータベースの構成例の概略を示す構成概略図である。
【図14】サービスリストの一例を示すファイルの中身である。
【符号の説明】
1 サーバー側コンピュータ
2 クライアント側コンピュータ
11,21 アプリケーション部
12,22 TCP処理部
13,23 IP処理部
14,24 データベース
61,62 内部通信経路
70 仮想回線確立要求
71 仮想回線確立応答
72 アプリケーションデータ要求
73 アプリケーションデータ応答
900 ネットワーク[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a method and system for securing security in private communication based on the TCP / IP protocol, and in particular, to a method and system for securing security in closed communication in a closed user group (CUG) that performs communication between a client and a server. About.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, in client / server communication using TCP / IP, a fixed identifier such as a port number is given to a server to uniquely distinguish a service (application) requested from a client to the server. ing. The port number in this system is publicly known as a well-known service compatible port number specified in RFC (Request for Comments) 1060 from IETF (The Internet Engineering Task Force). The port number corresponding to the well-known service defined in RFC 1060 in this case is held as data in an operating system (OS) installed in each client and server.
[0003]
A method of connecting the server / client by changing the port number after using such a fixed port number is disclosed in, for example, JP-A-6-301616.
[0004]
Now, when one of a plurality of clients requests an application to the server (executes a TCP / IP communication connection attempt), the client sets a fixed port number corresponding to the other application to the server. A communication path is established between the server and the client by transmitting the set port number in an IP packet. In addition, the server generates a new port number that is different from the fixed port number and notifies the connected client so that it can connect to other clients. Use
[0005]
[Patent Document 1]
JP-A-6-301616
[0006]
[Problems to be solved by the invention]
However, in the conventional server / client system using TCP / IP, a fixed identifier such as a port number is always given to the server so that the service (application) requested from the client to the server can be uniquely distinguished. In this case, a malicious third party can deprive the server of the root authority of the server by a cracking action such as a port scanning operation on the publicized port number on the server side. There is a problem that there is a possibility. Further, as a result, there is a problem that the server may suffer from disadvantages such as unauthorized use by a third party, theft, falsification, and destruction of internal data.
[0007]
The problem is that the same level of danger exists regardless of the server that performs public operations and the server that performs private operations permitted only to restricted clients (CUG).
[0008]
In the method disclosed in Japanese Patent Application Laid-Open No. Hei 6-301616, in which a new port number is notified after connecting to a fixed port number of the server, if a malicious third party monitors the network, In this case, a new port number will be known to the user, and the risk that a security hole is pierced through the known port number and the root authority of the server is deprived by a third party through the known port number similarly to the above problem. There is a problem.
[0009]
SUMMARY OF THE INVENTION In view of the above problems, it is an object of the present invention to disable a third-party cracking act on a server that performs private operation that can be used only by restricted clients in client-server communication using TCP / IP. , Unauthorized use, theft of internal data, falsification, destruction, and the like.
[0010]
Further, another object of the present invention is to invalidate a cracking action such as a port scan operation, thereby making it possible for a malicious third party to give up the action, reducing the number of packets for cracking purposes. The effect of this is to reduce the amount of traffic on the network where the server is located and to use the bandwidth for the correct purpose.
[0011]
[Means for Solving the Problems]
In order to achieve the above object, a first security securing method in private communication according to the present invention is a security securing method in private communication in which communication is performed between a plurality of clients and a server based on a TCP / IP protocol. When the client in the CUG makes a connection request for the CUG service to the server, a first specific port number different from the well-known port number is calculated using a predetermined first function. The first specific port number thus calculated is connected to the server as a port number corresponding to the CUG of the server.
[0012]
Further, in the first security assurance method in the above-mentioned private communication, when reconnecting between the server and the client, a variable value is provided based on a sequence number of service data immediately before the line is released. The second specific port number calculated by using the obtained second function is connected as a CUG-compatible port number of the server.
[0013]
Further, in the security securing method in the first private communication described above, when reconnecting between the server and the client, if the unconnected state continues for a predetermined time, the first specific A line is connected to a port number as a port number corresponding to the CUG of the server.
[0014]
Further, a second security securing method in private communication according to the present invention is a security securing method in private communication in which communication is performed between a plurality of clients and a server based on a TCP / IP protocol, wherein the client is A line is connected by using a first connection destination CUG port number calculated using a first function predetermined at the time of a CUG line connection request to the server, and a line is opened with the server. Is performed, the second connection destination CUG port number calculated using the second function configured to be a variation value based on the sequence number of the service data immediately before the line release is used as the connection destination server IP Register in that row in the first database so that the address and your client port number to open are keys, and connect to the server When performing again, the connection is made by using the second connection destination CUG port number registered in the first database, and the server extracts the TCP connection header extracted from the TCP header when receiving the connection request from the client. When the line connection is established by confirming the validity of the connection destination CUG port number of 1 with the first receiving CUG port number calculated by the first function, and the line is opened with the client. The second receiving CUG port number calculated using the second function is registered in that line in the second database such that the client IP address of the connection release destination and the client port number are used as keys. And confirming the validity of the second connection destination CUG port number extracted from the TCP header when receiving the reconnection request from the client. It is characterized in that the line connection by matching the registered in the second database the second receiving-side CUG port number.
[0015]
Further, in the above-mentioned security securing method in the above-mentioned second private communication, the client is connected to the second connection destination CUG registered in the first database using the server IP address and the client port number as keys. If the port number is not used for a predetermined period of time without being connected, a line using the server IP address and the client port number as keys is deleted from the first database, and the server sets the client IP When the second receiving port number registered in the first database using the address and the client port number as keys has not been used for a predetermined period of time without being connected, the second database is sent from the second database. Applicable client IP address and client port number It is characterized in that to remove the line and key.
[0016]
Further, in the security securing method in the above-mentioned second private communication, if the client does not have a CUG port number registered as a destination in the first database at the time of line connection including reconnection, the client The first connection destination port number calculated by the function 1 and the client port number calculated at random are set as the transmission source client port number, and the CUG port number of the destination is registered in the first database; If any of the registered client port numbers is not currently used, the CUG port number extracted from the first database is used as the second connection destination CUG port number and extracted from the first database. The client port number of the destination is the client port number of the destination, and If the CUG port number of the other party is registered in the first database, and if there is no currently used client port number among the registered client port numbers, the CUG port number extracted from the first database is replaced with the CUG port number. 2 and the client port number calculated at random and the client port number of the transmission source.
[0017]
Further, in the security securing method in the first or second secret communication described above, the first function is configured to have a variable value based on a time synchronized between the server and the client. It is characterized by being a function.
[0018]
Further, the first security assurance method in the non-public communication of the present invention is a security assurance method in the non-public communication for performing communication between a plurality of clients and a server based on a TCP / IP protocol, wherein the client is A first connection means for performing a line connection by using a first connection destination CUG port number calculated by using a predetermined first function at the time of a CUG line connection request to the server; The second connection destination CUG port number calculated using the second function configured to be a variable value based on the sequence number of the service data immediately before the line is released when the line is released between First registration means for registering a server IP address of a connection release destination and a client port number to be released as a key; Is characterized by having a a first re-connection means for line connection by using said second connection destination CUG port number registered in the first database when performing reconnect.
[0019]
Further, in the above-mentioned security securing method in the first private communication, the server confirms the validity of the first connection destination CUG port number extracted from the TCP header when receiving the connection request from the client. The second function is used when the line is opened between the client and the second connection means that matches the first receiving side CUG port number calculated by the function 1 and the client. Second registration means for registering the second receiving-side CUG port number calculated in such a manner that the client IP address of the connection release destination and the client port number are used as keys, and a TCP when receiving a reconnection request from the client. Confirmation of the validity of the second connection destination CUG port number extracted from the header is performed by the second database registered in the second database. It is characterized by having a second re-connection means for line connection by matching the second receiving-side CUG port number.
[0020]
Further, a second security assurance method in private communication of the present invention is a security assurance method in private communication in which communication is performed between a plurality of clients and a server based on a TCP / IP protocol, wherein the server is When the connection request from the client is received, the line connection is established by checking the validity of the CUG port number extracted from the TCP header with the first receiving-side CUG port number calculated by a predetermined first function. When the line is opened between the second connection means and the client, the calculation is performed using the second function configured to be a variable value based on the sequence number base of the service data immediately before the line is released. The second receiving side CUG port number is set so that the client IP address of the connection release destination and the client port number serve as keys. Second registration means for registering the CUG port number extracted from the TCP header upon receipt of the reconnection request from the client, and confirming the validity of the CUG port number extracted from the TCP header by the second receiving CUG registered in the second database. It is characterized by having second reconnecting means for connecting to a line by matching the port number.
[0021]
Further, in the above-mentioned security securing system in the first private communication, the client is connected to the second connection destination registered by the first registration unit using the server IP address and the client port number as keys. If the CUG port number is not used for a predetermined period of time without being connected, a line using the corresponding server IP address and client port number as keys registered by the first registration means is deleted. It is characterized by having deletion means.
[0022]
Further, in the above-mentioned first or second security assurance method in private communication, the server may be configured to register the second IP address and the client port number registered by the second registration unit using the second IP address and the client port number as keys. If the receiving port number has not been used for a predetermined period of time without being connected, the line with the corresponding client IP address and the client port number registered by the second registration unit as a key is deleted. And a second deleting means for performing the operation.
[0023]
Further, in the above security securing system in the first private communication, the first connection means may include a CUG port number which is a destination registered by the first registration means at the time of line connection including reconnection. Means for making a line connection request to the server with the first connection destination port number calculated by the first function if not present, and the client port number calculated at random as a source client port number. The first connection means has a destination CUG port number registered by the first registration means at the time of a line connection including a reconnection, and a current CUG port number among the registered client port numbers. If there is an unused CUG port number, the CUG port number extracted from the first database is used as the second connection destination CUG port number. Means for making a line connection request to the server using the client port number extracted from the first registration means as the client port number of the transmission destination; and a CUG port to be a destination registered by the first registration means If a number exists and there is no registered client port number that is not currently being used, the CUG port number extracted from the first registration means is used as the second connection destination CUG port number. Means for making a line connection request to the server using the client port number calculated at random as the source client port number.
[0024]
Further, in the above-mentioned security securing method in the first or second secret communication, the first function is configured to be a variable value based on a time synchronized between the server and the client. It is characterized by being a function.
[0025]
BEST MODE FOR CARRYING OUT THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings.
[0026]
Referring to FIG. 1, the embodiment of the present invention includes at least one server computer 1, a plurality of client computers 2, and a network 900. The server-side computer 1 and the client-side computer 2 each have an interface unit (not shown) connected to the network 900. The communication between the server-side computer 1 and the client-side computer 2 is performed by the respective interface units and This is performed via the network 900 under the IP protocol.
[0027]
The server-side computer 1 in FIG. 1 is a computer that operates under program control by a processor (CPU) (not shown). When the computer executes an application of a closed user group (CUG), TCP / The functional blocks in the computer when the program according to the IP protocol is executed include an application unit 11 which is an application execution unit of the CUG, a TCP processing unit 12, an IP processing unit 13, and a database 14. . Further, the server-side computer 1 provides a CUG service. The CUG is an information service in which only members of a specific group can use the server.
[0028]
The client-side computer 2 in FIG. 1 is a computer that operates under program control by a processor (CPU) (not shown), and shows functional blocks in the computer when the computer executes a program according to the TCP / IP protocol. , An application unit 21, a TCP processing unit 22, and an IP processing unit 23.
[0029]
Referring to FIG. 12, the configuration of the database 14 of the server-side computer 1 is shown, which is used by the TCP processing unit 12 to manage port numbers corresponding to CUG. The database 14 is allocated to an area in a storage unit (for example, a non-volatile magnetic disk device, a volatile RAM, or the like) (not shown). For each IP address of the computer 2 on the client side, the database 14 A port number consisting of a port number corresponding to the CUG and a port number on the client side, a time stamp for managing an undisconnected time, and a connection state indicating a connection state (connection: ON, disconnection: OFF or “0” value) And First, when the client computer 2 is connected to a CUG-compatible port number and disconnected from the server, the client computer 2 is registered in the area of each item corresponding to the IP address of the client computer 2. If the previously used IP address is registered after being reconnected from the client computer 2, it is used to check the validity of the port number included in the received packet based on the port number registered in the database 14. Is done.
[0030]
Referring to FIG. 13, the configuration of the database 24 of the client-side computer 2 is shown, which is used by the TCP processing unit 22 to manage port numbers corresponding to CUG. The database 24 is allocated to an area in a storage unit (for example, a non-volatile magnetic disk device, a volatile RAM, or the like) not shown, and stores the IP address of the server-side computer 1 A port number consisting of a CUG-compatible port number and a port number of the client-side computer 2, a time stamp for managing the time during which the connection has not been disconnected, and the connection status (connection: ON, disconnection: OFF or “0” value) are shown. Connection status. First, when the client computer 2 is connected to a port corresponding to the CUG and disconnected from the server computer 1, it is registered in the area of each item corresponding to the IP address of the server computer 1. If the IP address used last time is registered when reconnecting from the client computer 2, the port number registered in the database 24 is used as the TCP port number mounted on the transmission packet.
[0031]
Next, the operation of the embodiment of the present invention will be described with reference to FIGS.
[0032]
First, referring to FIG. 2, after the procedure relating to the CUG service is completed between the server computer 1 and the client computer 2, the CUG service is firstly communicated between the server computer 1 and the client computer 2 by TCP / IP. FIG. 3 is a schematic state transition diagram showing a state transition from when a client computer 2 requests a connection to a server computer 1 in FIG. 1 to perform data communication at an application level when communication is started. A client / server communication using TCP / IP is performed between the two. 2 and 8, after the procedure related to the CUG service is completed between the server computer 1 and the client computer 2, the server computer 1 and the client computer 2 execute the CUG service for the first time. The operation when starting IP communication will be described.
[0033]
When performing communication by an application from the client computer 2 to the server computer 1 in the CUG, an internal communication path 61 is created from the application unit 21 of the client computer 2 to the TCP processing unit 22. At this time, the TCP processing unit 22 defines the port number PORTa of the transmission source client computer 2 and the port number corresponding to the CUG of the transmission destination server computer 1, and the IP processing unit via the internal communication path 62. 23, a communication message (in this case, a TCP packet) is transferred. Thereafter, the IP processing unit 23 creates an IP packet by adding an IP header, such as a source IP address and a destination IP address, to the communication message (in this case, a TCP packet). Is transmitted to the server-side computer 1 via the communication path (network 900) (steps S300 and S401 in FIG. 6). (In the middle of Fig. 2-1).
[0034]
In the server-side computer 1, via the internal communication path 62, the port number X corresponding to the server-side standby CUG defined in the TCP processing unit 12 of the server-side computer 1 follows the completely opposite flow via the client-side computer 2. Connecting. In this case, by confirming the validity of the port number corresponding to the CUG of the virtual circuit establishment request in the reception processing of the server-side TCP processing unit 12, the client-side computer 2 that correctly designated the server-side listening port number "X" Only communication is connected to the server side application unit 11. Further, the server-side TCP processing unit 12 returns a virtual line establishment response 71 to the client-side computer 2 via the IP processing unit 13. Then, the IP processing unit 23 of the client computer 2 notifies the application unit 21 via the internal communication paths 62 and 61 that the communication path with the server computer 1 has been established. That is, client-server communication is established. In this case, the TCP processing unit 22 of the client computer 2 receiving the response from the server 1 computer registers the connection information (the connected server IP address, the client port number, and the CUG port number, sets the time stamp to “0”, The state is set to “ON”) is registered in the database 24 (steps S100, S201, S402) (state in FIG. 2-1). In the following description, the line establishment request may be called a virtual line connection request.
[0035]
After this processing, in order to wait for communication with the client computer 2 of another CUG, the TCP processing unit 12 of the server computer 1 is connected to the port number “PORTTa” of the client computer 2 after the connection is established. X and PORTa are newly defined as port numbers of the server-side computer 1 in order to recognize the IP address of the client-side computer 2 to be connected in the database 14 and the port number area corresponding to the IP address is registered in the port number area. After registration, the time stamp area is set to "0" and the connection state is set to "ON" for management (step S202). In this case, the processing is logically equivalent to opening the port number “X” corresponding to the server-side standby CUG and reconnecting to the port number “X, PORTa”. In this state, the application data request 72 and the application data response 73 are propagated between the server-side computer 1 and the client-side computer 2, and predetermined communication is performed (step S500). (State of FIG. 2-2).
[0036]
In the TCP processing unit in step S500, when transmitting while exchanging with the respective application units and the IP processing unit, when transmitting, the port number (server side: X, client Side: PORTa), a sequence number (increases in byte units), an acknowledgment number, etc. are set, and when receiving, they operate while extracting and confirming (checking the sequence number, etc.).
[0037]
The processing in step S100 when the TCP processing unit 12 of the server-side computer 1 receives the virtual line connection request from the client-side computer 2 in step S401 will be described mainly with reference to FIG.
[0038]
The TCP processing unit 12 checks whether or not the IP address of the client-side computer 2 that has requested the virtual circuit connection is registered in the database 14 (in this case, extracted from the received IP header) (steps S101 and S102 in FIG. 7). .
[0039]
In step S102, since it is the first and thus not registered, the port number corresponding to the server-side CUG extracted from the TCP header of the virtual circuit connection request message and the CUG port number registered in the service list are the same (match). Is confirmed (steps S108 and S109). In the following description, the port number corresponding to the CUG of the server-side computer 1 may be abbreviated as a CUG port number.
[0040]
In step S109, if they match, the TCP processing unit 12 performs virtual line connection processing (notification to the application 11, etc.), proceeds to step S201 in FIG. 6, and if not, performs disconnection processing and ends ( Steps S108, S109, S107).
[0041]
In step S102, if the IP address is registered, the TCP processing unit 12 checks the CUG port number of the transmission destination extracted from the TCP header of the virtual circuit connection request message and the CUG port number in the area of the IP address confirmed in the database 14. It is confirmed whether the port numbers are the same (match) (steps S103 and S104).
[0042]
If they match in step S104, the TCP processing unit 12 determines that the client port number as the transmission source extracted from the TCP header of the virtual circuit connection request message and the client port number in the area of the IP address confirmed in the database 14 are the same (match). ) Is confirmed (steps S105 and S106).
[0043]
In step S106, if they match, the TCP processing unit 12 performs virtual line connection processing (notification to the application 11, etc.), and proceeds to step S201 in FIG. 6 (step S107).
[0044]
If they do not match in step S106, the TCP processing unit 12 ends in step S102 (steps S111 and S112).
[0045]
If there is no match in step S104, the TCP processing unit 12 deletes the line of the IP address that matches in step S102 from the database 14, and ends (steps S110 and S112).
[0046]
In the above description, after the CUG port numbers match in step S104, the TCP processing unit 12 checks the client port number in steps S105 and S106, but the client computer 2 uses a new client port number. Then, in order to determine that the connection has been made to receive the CUG service, the TCP processing unit 12 may perform the processing of the virtual circuit connection without performing the processing of steps S105 and S106.
[0047]
The virtual line connection request processing in step S300 is as follows.
[0048]
Upon receiving the connection request from the application unit 21, the TCP processing unit 22 of the client computer 2 checks whether the CUG port number is registered in the database 24 (Steps S301 and S302 in FIG. 8).
[0049]
Since the first communication is not registered in the database 24, the TCP processing unit 22 calculates the CUG port number on the server side using the function fn (described below), and further calculates the port number on the client side. The CUG port number, the port number of the client-side computer 2 and the like respectively calculated and set in the TCP header are set in the TCP header, and the subroutine ends (step S304). In this case, even in the case of reconnection, if there is a case where the database 24 is not registered, the TCP processing unit 22 executes step S304, and operates in the same manner as in the first communication.
[0050]
In the TCP / IP communication, if the communication is not logically connected at all times and the request from the client computer 2 is completed by the response from the server computer 1, the virtual circuit between them is released. However, if the connection is re-established within a certain period of time, the server computer 1 holds the communication history of the client computer 2 in the database 14 and receives a virtual circuit establishment request 70 transmitted from the client computer 2 later. In the present invention, the server-side computer 1 and the client-side computer 2 do not independently perform any advance notification or change notification so that a malicious third party does not recognize the server-side listening port number X. The communication is performed by calculating the standby port number “X”.
[0051]
As described above, the functions and operations of the client-server communication according to the present method are summarized as follows.
[0052]
In this system, since the mechanism in the ordinary TCP / IP is followed, the basic communication operation using the IP address and the port number (creation of the TCP / IP packet and exchange of the packet between the client and the server) is performed. Is not different.
[0053]
As shown in FIG. 2, in the server-side computer 1, a port number corresponding to a CUG for receiving a virtual circuit connection from the client-side computer 2 is outside a public port number range defined in RFC1060 and dynamically changes. It is "X". Naturally, the IP address at the time of the connection request is based on the assumption that the IP address of the server computer 2 is correct.
[0054]
The port number “X” is, for example, a port number “80” in the conventional TCP / IP communication, which indicates that HTTP is used as an application.
[0055]
As described above, in the conventional method, public use is possible by specifying a public port number. However, if the purpose is to use only the parties in the CUG, communication cannot be kept private.
[0056]
As an improvement of this problem, the feature of this method is that the port number corresponding to the CUG of the virtual line connection reception of the server-side computer 1 is not disclosed except for the CUG, and that the CUG port number is the TCP / IP communication. Provide a function to dynamically change each time. This makes it impossible for a third party other than the CUG to make a determination.
[0057]
FIG. 2B shows a port number state after the server-side computer 1 receives a virtual circuit connection from the client-side computer 2. When the virtual circuit is connected, a new port number “X, PORTa” is provided in the server computer 1 and TCP / IP communication with the client computer 2 is performed. "X, PORTa" is recognized as "PORTa" port number communication connected by "X" port number.
[0058]
In the case of communication using only a port number, when a plurality of client computers 2 are present, there may be duplication of port numbers. Therefore, the server-side computer 1 identifies the IP address of each CUG client computer 2 at the same time and uniquely identifies each client communication. Distinction.
[0059]
Next, the operation of the message sequence will be described with reference to the sequence diagram of FIG. The sequence operation in FIG. 4 includes an operation period for connecting a virtual line (sequence A110), an application communication period for exchanging application data (sequence A120), and an operation period for disconnecting the virtual line (sequence A130). An operation period for connecting a virtual circuit period will be described.
[0060]
A SYN message (SYN) indicating a virtual circuit connection request having a parameter of “PORTa” as the port number of the start point (client side computer 2) and “X” as the CUG port number of the end point (server side computer 1) from the client side computer 2 The packet is transmitted to the server-side computer 1 (sequence A101 in FIG. 4).
[0061]
Server-side computer 1 transmits a SYN, ACK message (SYN, ACK packet) indicating that the virtual circuit connection request reception is valid to client-side computer 2 as a response to the SYN message (sequence A102). At this time, the CUG port number of the start point (server-side computer 1) is “X”, and the port number of the end point (client-side computer 2) is “PORTa”.
[0062]
Finally, the client computer 2 transmits an ACK message (ACK packet) indicating the validity of the reception confirmation to the server computer 1 as a response to the SYN, ACK message. At this time, the CUG port number of the end point (server side computer 1) is "X", and the port number of the start point (client side computer 2) is "PORTa" (sequence A103).
[0063]
Regarding the operation period for disconnecting the virtual circuit period, the CUG port number of the start point (server side computer 1) from the server side computer 1 has the parameter "X", and the port number of the end point (client side computer 2) has the parameter "PORTa". A FIN message (FIN packet) indicating the virtual line disconnection request is transmitted to the client computer 2 (sequence A131).
[0064]
The client-side computer 2 transmits an ACK message (ACK packet) indicating that the virtual circuit disconnection request has been received to the server-side computer 1 as a response to the FIN message (sequence A132). At this time, the port number of the start point (client computer 2) is "PORTa", and the CUG port number of the end point (server computer 1) is "X". This means that the virtual line from the server computer 1 has been disconnected.
[0065]
Since TCP / IP is a full-duplex communication, it is necessary to disconnect the virtual circuit from the client computer 2 as well, so that the port number of the start point (client computer 2) from the client computer 2 is "PORTa" and the end point is A FIN message indicating a virtual line disconnection request having a parameter of “X” for the CUG port number of (server-side computer 1) is transmitted to server-side computer 1 (sequence A133).
[0066]
Server-side computer 1 transmits an ACK message indicating that the virtual circuit disconnection request has been received to the client-side computer 2 as a response to the FIN message (sequence A134). At this time, the CUG port number of the start point (server-side computer 1) is “X”, and the port number of the end point (client-side computer 2) is “PORTa”. As a result, the virtual line from the client-side computer 2 is disconnected, and all the double lines are disconnected, and the communication between the server-side computer 1 and the client-side computer 2 ends.
[0067]
Next, how the CUG-compatible dynamic variable port number “X” of the server-side computer 1 described in the text is determined and how it is variable for each TCP / IP communication will be described.
[0068]
After the procedure related to the CUG service is completed between the server computer 1 and the client computer 2, the CUG service starts the TCP / IP communication between the server computer 1 and the client computer 2 for the first time. The method of calculating the port number is described below.
[0069]
Assuming that the CUG port number of the server-side computer 1 is "X", the method of determining the CUG-compatible port number "X" of the server-side computer 1 is determined by the TCP processing unit 12 of the server-side computer 1 and the TCP processing unit of the client-side computer 2. 22 independently determines.
[0070]
The calculation method of the server-side computer 1 of the CUG-compatible port number “X” of the server-side computer 1 is determined when the date is changed in FIG. That is, it operates as follows.
[0071]
When the date is changed, the TCP processing unit 12 calculates a new CUG port number, registers the calculated CUG port number in the service file (replaces the previous CUG port number with the calculated CUG port number), and ends. (Steps 601 and S602 in FIG. 9).
[0072]
The client-side calculation method of the CUG-compliant port number “X” of the server-side computer 1 is calculated at the time of the virtual line connection request processing in step S300 in FIG. 6, that is, in step S304 in FIG.
[0073]
In the above description, both the TCP processing unit 12 of the server-side computer 1 and the TCP processing unit 22 of the client-side computer 2 make the determination using the function fn of “X” = fn (Z).
[0074]
The definition of the function fn is determined so that the operation result is in the range of 1024 to 65535 of the port number that can be freely used. For example, Equation 1 is used. Note that INT is a function that rounds down the decimal part to an integer value, and MOD indicates subtraction.
[0075]
(Equation 1)
Figure 2004265122
[0076]
Also, in order to prevent the third party from eavesdropping on the variable Z, a value which can be independently known by both the server-side computer 1 and the client-side computer 2, for example, the date, time, etc., is calculated as an initial value. Use the method required. As an example in Expression 1, if the number Z = (YY + MM + DD) obtained from the date (for example, on May 1, 2003, Z = 2003 + 05 + 01 = 2009), the subtraction value of the port number maximum value 65535 (for example, , “X” = 65535-2009 = 63526) are used as CUG-compatible port numbers.
[0077]
Here, it is appropriate that the function fn, the variable Z, and the MOD are appropriately determined by an administrator who actually operates the CUG, and the above contents are only examples.
[0078]
As described above, since the TCP processing unit 12 of the server-side computer 1 and the TCP processing unit 22 of the client-side computer 2 know the common port number calculation method, the TCP processing unit 12 virtually uses the port number “X” having a port number range that can be used freely. It is possible to start line connection. That is, the function fn is configured to be a fluctuation value (a value of 1024 to 65535) based on the time synchronized between the server-side computer 1 and the client-side computer 2.
[0079]
Next, an operation in the case where TCP / IP communication has already been executed between the server-side computer 1 and the client-side computer 2 and reconnection is performed will be described below.
[0080]
In this method, the port number is changed for each TCP / IP communication. In order to prevent a third party from eavesdropping on the port number, the server-side computer 1 and the client-side computer 2 confirm a new port number also when changing the port number. A method that can be determined without performing any kind of communication.
[0081]
As shown in FIG. 2, after a virtual circuit connection request is established from the client computer 2 to the server computer 1, the requested data is transmitted from the server computer 1 to the client computer 2. At this time, the server computer 1 A sequence number (SQ number) is always transmitted to the client computer 2 in order to confirm the number of bytes for data transfer from the server 1. During communication, the server computer 1 and the client computer 2 have the same contents. It is possible.
[0082]
The meaning of the sequence number indicates the number of bytes of transmitted data in the server-side computer 1, and indicates the number of bytes of data to be received in the client-side computer 2. Therefore, as shown in FIG. 5, the information is always included in the communication process on the virtual line.
[0083]
A port number variable operation is performed using this sequence number. Note that this can be performed using a normal TCP / IP communication procedure without any change. Further, since there is no need to perform communication for notifying the changed port number again, there is no eavesdropping on the changed port number by a third party.
[0084]
A method of making the port number variable using this sequence number is to apply the conversion formula fx defined in the CUG that both parties know in advance based on the SQ number indicated at the end of the TCP / IP communication. , Calculate the new port number.
[0085]
For example, as an example of the conversion formula fx, if a new port number is “Y”, “Y” = fx. That is, since the application of the server-side computer 1 and the CUG application of the client-side computer 2 commonly know the following conversion formula, the conversion formula can be obtained by the formula 2. Note that INT is a function that rounds down a number of weeks or less to an integer, and MOD indicates subtraction.
[0086]
(Equation 2)
Figure 2004265122
[0087]
The SQ number (sequence number) represents the number of bytes, and the SQ in Expression 2 is converted into KB (fractions are rounded up). For example, if the size is 2050 bytes, it becomes 3 KB, and the subtraction value (for example, “Y” = 65535-3 = 65532) from the maximum value of the port number 65535 is used as the new port number. Here, it is appropriate that the function fx, the variables SQ, and the MOD are appropriately determined by the administrator who actually operates the CUG, and the above contents are only examples.
[0088]
Here, it is appropriate that the manager who actually operates the CUG appropriately decides the conversion formula, and the above contents are only examples. That is, the function fx becomes a variable value (a value of 1024 to 65535) based on the sequence number of the service data (the last data transferred between the application unit 11 and the application 21) immediately before releasing the virtual circuit. It will be configured. The flowchart of FIG. 6 takes into consideration the above points.
[0089]
Next, a description will be given mainly with reference to FIG. The operation of connecting and exchanging data at the application level is as described in the above description of FIGS. 2 and 6, but the operation of the virtual line release request from the server-side computer 1 is as follows. become.
[0090]
When there is a virtual circuit release request from the application unit 11 of the server-side computer 1 to the client-side application unit 21, the TCP processing unit 12 transmits the request to the client-side computer 2 via the IP processing unit 13 and the network 900 (step). S203).
[0091]
The TCP processing unit 22 of the client-side computer 2 that has received the virtual circuit release request via the IP processing unit 23 notifies the application unit 21 of the release notification, and replaces the SQ number immediately before the line release with the new number of the server-side computer 1. In addition to the calculation using the conversion formula fx, a virtual line release request from the application unit 21 to the server-side computer 1 is transmitted to the server-side computer 1 via the IP processing unit 23 and the network 900 (step S403 in FIG. 6).
[0092]
The TCP processing unit 12 of the server-side computer 1 that has received the virtual line release request via the IP processing unit 13 notifies the application unit 11 of a virtual line release notification, and a new SQ number of the server-side computer 1 based on the SQ number immediately before the line release. The CUG port number is calculated using the conversion formula fx (step S204).
[0093]
Further, the TCP processing unit 12 sets the new port number, the time stamp (“0” value), and the connection state (OFF) calculated in step S204 in the database 14 with the client IP address and the client port number to be released as keys. It registers in the connection state area and ends (step S205).
[0094]
On the other hand, the TCP processing unit 22 of the client-side computer 2 sends the new CUG port number, time stamp (“0” value, connection state (OFF), connection state (OFF), server IP address and client port number to be released in the database 24 calculated in step S403. Is registered in the connection state area using the key as a key (step S205).
[0095]
That is, the calculated new CUG port number “Y” is stored in the respective databases on the server side and the client side together with the IP address of the communication partner and the client port number.
[0096]
However, if the value of the CUG port number “Y” is kept held, the memory capacity of the database 14 will be reduced, and the CUG port number “Y” will be cleared when new TCP / IP communication is not performed until a certain time has elapsed. Timer function for both the server-side computer 1 and the client-side computer 2. The operation in that case is described below.
[0097]
When an interrupt is generated by a timer (not shown) that generates an interrupt at a predetermined time interval (for example, one minute), the TCP processing unit 12 of the server-side computer 1 sets the connection state to “OFF” in the database 14. The time stamp of the IP address of "" is incremented by +1 (step S701 in FIG. 10).
[0098]
The TCP processing unit 12 checks whether the counted up time stamp is equal to or greater than a predetermined value (specified value) (steps S702 and S703).
[0099]
In step S703, if the value is equal to or more than the specified value, the TCP processing unit 12 deletes the line using the client IP address and the client port number that are equal to or more than the specified value as keys (if the value is equal to or more than the specified value) (One line of the IP address is deleted), and the processing is terminated.
[0100]
On the other hand, when the client computer 2 generates an interrupt by a timer (not shown) that generates an interrupt at a predetermined time interval (for example, one minute), the TCP processing unit 22 of the client computer 2 Then, the time stamp of the IP address whose connection state is "OFF" is incremented by +1 (step S801 in FIG. 11).
[0101]
The TCP processing unit 22 checks whether the counted up time stamp is equal to or larger than a predetermined value (specified value) (Steps S802 and S803).
[0102]
In step S803, if the value is equal to or more than the specified value, the TCP processing unit 22 deletes the line using the server IP address and the client port number that are equal to or more than the specified value as keys (deletes one line of the corresponding IP address from the database 24). If the value is not equal to or more than the specified value, the process is terminated (step S804).
[0103]
Therefore, when the value of the time stamp becomes equal to or more than the specified value, the line using the IP address and the client port number of the communication partner registered in the respective databases as keys is cleared, and the client computer 2 next time uses the CUG service. , The CUG port number “X” calculated from the date is used.
[0104]
Therefore, the following two CUG port numbers are used for TCP / IP communication in this method.
[0105]
In the case where the CUG port number clear timer is not operating (the time stamp is not equal to or greater than the specified value), Expression 2 is used (port number “Y”).
[0106]
In the case of the CUG port number clear timer operation (the time stamp is not equal to or greater than the specified value), Expression 1 is used (port number “X”).
[0107]
Next, referring to FIG. 3, when reconnecting to start the TCP / IP communication between the server computer 1 and the client computer 2 for the continuous processing of the CUG service, the server computer 1 of FIG. FIG. 9 is a state transition schematic diagram showing state transition from when the client-side computer 2 requests connection to pass data at the application level. A client / server communication using TCP / IP is performed between the two. A case where TCP / IP communication is started between the server-side computer 1 and the client-side computer 2 by reconnecting for continuation processing of the CUG service, centering on FIGS. 3, 6, 7 and 8 Will be described below.
[0108]
When performing communication by an application from the client computer 2 to the server computer 1 in the CUG, an internal communication path 61 is created from the application unit 21 of the client computer 2 to the TCP processing unit 22. At this time, the TCP processing unit 22 checks whether the IP address of the server-side computer 1 accessing the database 24 is registered, and when the IP address is registered, the connection state is changed among the client port numbers registered in the database 24. It is checked whether or not there is an “OFF” (that is, whether or not there is an unused one) (steps S301 to S303 and S305 in FIG. 8). If unused, the TCP processing unit 22 extracts the CUG port number “Y” and the client port number PORTa of the transmission source from the database 24 with priority given to the previously extracted one, and sets it in the TCP header. The communication message (in this case, a TCP packet) is transferred to the IP processing unit 23 via the internal communication path 62 (step S306). In step S305, if there is no unused one, the TCP processing unit 22 extracts the CUG port number “Y” from the database 24, calculates the client port number of the transmission destination at random, and sets it in the TCP header. The communication message (in this case, a TCP packet) is transferred to the IP processing unit 23 via the internal communication path 62 (step S307). Thereafter, the IP processing unit 23 adds an IP header such as a source IP address and a destination IP address to the communication message (in this case, a TCP packet) to create an IP-level communication message (in this case, an IP packet). Then, the virtual circuit establishment request 72 is transmitted from the client computer 2 to the server computer 1 via the communication path (network 900) (Step S401 in FIG. 6). (In the middle of FIG. 3-1).
[0109]
The server-side computer 1 connects to the server-side standby port number Y defined in the TCP processing unit 12 of the server-side computer 1 via the internal communication path 62 according to a completely opposite flow via the client-side computer 2. In this case, if the server-side TCP processing unit 12 confirms whether the IP address (extracted from the received IP header) of the client computer 2 that has made the virtual circuit connection request is registered in the database 14, it is registered. It is confirmed whether or not the CUG port number extracted from the TCP header in the virtual circuit connection request is registered in the area of the confirmed IP address in the database 14 (steps S101 to S104 in FIG. 7). Since the registration has been completed in step S104 (there is a matching CUG port number), the TCP processing unit 12 confirms with the database 14 and the client-side port number as the transmission source extracted from the TCP header of the virtual circuit connection request message. It is confirmed whether the client port number in the area of the IP address is the same (coincides) (steps S105 and S106). In step S106, if they match, the TCP processing unit 12 performs virtual line connection processing (notification to the application 11, etc.) and proceeds to step S201 in FIG. The line using the client port number that matches in step S104 as a key is deleted from the database 14, a disconnection process is performed, and the process ends (steps S107, S111, S112). By confirming the validity of the port number of the connection request in the reception process in this way, only communication from the client-side computer 2 that correctly specifies the server-side listening port number “Y” is connected to the server-side application 11. . Further, the TCP processing unit 12 of the server-side computer 1 returns a virtual line establishment response 73 to the client-side computer 2 via the IP processing unit 13. Then, the IP processing unit 23 of the client computer 2 notifies the application unit 21 via the internal communication paths 62 and 61 that the communication path with the server computer 1 has been established. That is, client-server communication is established. In this case, the TCP processing unit 22 of the client-side computer 2 that has received the response from the server 1 computer uses the connection information (the connected server IP address, client port number, and CUG port number as a key. Then, the time stamp corresponding to the key is set to "0" and the connection state is set to "ON": registered in the case of reconnection (registered in the case of reconnection) in the database 24 (steps S201 and S402). (State of FIG. 3-1).
[0110]
When the above-described step S307 is executed by the TCP processing unit 22, a plurality of communication paths (a plurality of virtual lines) can be established from one client even when the CUG service is received from the server-side computer 1.
[0111]
After executing the above-described series of processing, the TCP processing unit 12 of the server-side computer 1 establishes a connection with the port number “PORTTa” of the client computer 2 after establishing a connection in order to wait for communication with the client-side computer 2 of another CUG. Y and PORTa are newly defined as server-side port numbers and registered in the IP address of the client computer 2 of the connection destination in the database 14, and the corresponding time stamp area is set to " 0 "and the connection state is set to" ON ". If the connection is already registered, the corresponding time stamp area is set to" 0 "and the connection state area is set to" ON "and managed (step S202). . In this case, it is logically the same processing as releasing the server-side standby port number “Y” and reconnecting to the port number “Y, PORTa”. In this state, the application data request 72 and the application data response 73 are propagated between the server-side computer 1 and the client-side computer 2, and predetermined communication is performed (step S500). (State of FIG. 3-2).
[0112]
The disconnection processing is the same as the operation described in the case of the first operation, and thus the description is omitted.
[0113]
FIG. 5 shows an operation sequence accompanying the reconnection in this case.
[0114]
As described above, in the private communication with the restricted client computer 2 (CUG), the port number in the freely usable port number range indicated by IETF without using the well-known service compatible port number published by RFC 1060 is 1024. Since the service port number uniquely defined in the CUG is dynamically changed and established for each communication from among the numbers 65535 to 65535, client-server type communication is implemented by using it, so other than CUG Is a private communication that cannot be used, and it is possible to prevent malicious third parties from eavesdropping on the dynamically changing service corresponding port numbers.
[0115]
In addition, by operating the server-side computer 1 to dynamically change the service-corresponding port number uniquely defined, the CUG client computers 2 can use private communication independently of each other, and a malicious third party can operate. It is possible to prevent eavesdropping on a service corresponding port number that changes dynamically. Since the service-compatible port number of the server-side computer 1 dynamically changes, the client-side computer 2 performs an operation of automatically following the variable port number.
[0116]
Also, an operation is performed in which the server-side computer 1 does not notify the client-side computer 2 at all using TCP / IP communication or UDP / IP communication that the service corresponding port number of the server-side computer 1 has dynamically changed ( By not reporting that the service corresponding port number has changed), it becomes possible to prevent a malicious third party from eavesdropping on the dynamically changing service corresponding port number.
[0117]
As described above, since the CUG client-server type communication is operated using the service corresponding port number of the server-side computer 1 which is dynamically changed and uniquely established, even if a malicious third party performs a continuous port scan operation, The service corresponding port number of the computer 1 on the CUG server side cannot be easily found, and it is possible to give up the cracking action quickly. In addition, the amount of meaningless data propagation due to the cracking operation is reduced, and the bandwidth of the network can be used only for correct communication purposes.
[0118]
【The invention's effect】
The present invention does not use a fixed well-known port number as the listening port number of the server computer, but has a mechanism that allows only the client computer inside the CUG to know the variable server listening port number. Therefore, a server-side computer that performs private operation that can be used only by a client-side computer restricted in a client-server type communication using TCP / IP is realized, and a cracking act by a malicious third party is invalidated. This has the effect of preventing plagiarism, falsification, destruction, and the like of internal data.
[0119]
Further, the present invention provides a mechanism in which the port number of the server-side computer is dynamically changed once the CUG client-server type communication is started, and the client-side computer automatically follows the port number of the server-side computer. Therefore, even if a malicious third party searches for a port number by a cracking action such as a port scan operation, a fixed port number is not found, and the cracking action can be given up earlier. is there. As a result, the number of illegal packets for the purpose of cracking is reduced, and the amount of traffic on the network in which the corresponding server-side computer is placed is reduced, so that the bandwidth can be used for the correct purpose.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a system according to an embodiment of the present invention.
FIG. 2 is a schematic state transition diagram showing an operation from the establishment of a virtual circuit accompanying the CUG for the first time to the completion of the establishment of a virtual circuit in the present invention.
FIG. 3 is a schematic state transition diagram showing an operation from reestablishment of a virtual line during communication to completion of virtual line establishment during communication in the present invention.
FIG. 4 is an operation sequence diagram showing an operation of exchanging messages when a virtual circuit is established and released for the first time in the present invention.
FIG. 5 is an operation sequence diagram showing an operation of exchanging messages at the time of reestablishment and release of a virtual circuit during communication in the present invention.
6 is a flowchart showing the operation of each of the TCP processing units of the client computer and the server computer when a virtual connection request is issued from the application unit of the client computer of FIG. 1;
FIG. 7 is a flowchart of a subroutine showing an operation of a virtual line connection receiving process of the server-side computer of FIG. 6;
FIG. 8 is a flowchart of a subroutine showing an operation of a virtual line connection request process of the client-side computer of FIG. 6;
FIG. 9 is a flowchart illustrating an operation of a TCP processing unit of the server-side computer when a date change occurs.
FIG. 10 is a flowchart illustrating an operation of a TCP processing unit of the server-side computer 1 when a timer interrupt occurs.
FIG. 11 is a flowchart illustrating an operation of a TCP processing unit of the client computer 2 when a timer interrupt occurs.
FIG. 12 is a schematic configuration diagram illustrating an outline of a configuration example of a database of the server-side computer 1 according to the present invention.
FIG. 13 is a schematic configuration diagram illustrating an outline of a configuration example of a database of the client-side computer 2 according to the present invention.
FIG. 14 shows the contents of a file indicating an example of a service list.
[Explanation of symbols]
1 server side computer
2 Client computer
11, 21 application section
12,22 TCP processing unit
13,23 IP processing unit
14,24 database
61, 62 Internal communication path
70 Virtual circuit establishment request
71 Virtual circuit establishment response
72 Application data request
73 Application data response
900 network

Claims (14)

TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方法であって、
CUG内の前記クライアントが前記サーバーに対してCUGサービスに伴う接続要求を行う場合にウェルノウンポート番号と違う第1の特定のポート番号を予め決められた第1の関数を利用して算出しその算出した第1の特定のポート番号を前記サーバーのCUG対応のポート番号として回線接続することを特徴とする非公開通信におけるセキュリティ確保方法。
A method for securing security in private communication in which communication is performed between a plurality of clients and a server based on a TCP / IP protocol,
When the client in the CUG issues a connection request for the CUG service to the server, a first specific port number different from the well-known port number is calculated using a predetermined first function, and the calculation is performed. A method for ensuring security in non-public communication, wherein the first specific port number is connected as a CUG-compatible port number of the server.
前記サーバーと前記クライアントとの間で再接続する場合に、回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第2の関数を利用して算出した第2の特定のポート番号を前記サーバーのCUG対応のポート番号として回線接続することを特徴とする請求項1記載の非公開通信におけるセキュリティ確保方法。When reconnecting between the server and the client, a second specification calculated using a second function configured to be a variable value based on a sequence number of service data immediately before the line is released. 2. The method for securing security in private communication according to claim 1, wherein the port number is connected as a CUG-compatible port number of the server. 前記サーバーと前記クライアントとの間で再接続する場合に、予め決められた時間の間未接続状態が続けば前記第1の特定のポート番号を前記サーバーのCUG対応のポート番号として回線接続することを特徴とする請求項1または2記載の非公開通信におけるセキュリティ確保方法。When reconnecting between the server and the client, if the unconnected state continues for a predetermined time, the first specific port number is connected as a CUG-compatible port number of the server. 3. The method for securing security in private communication according to claim 1 or 2, wherein: TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方法であって、
前記クライアントは、前記サーバーへのCUGの回線接続要求時に予め決められた第1の関数を利用して算出した第1の接続先CUGポート番号を用いることで回線接続し、
前記サーバーとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第2の関数を利用して算出した第2の接続先CUGポート番号を接続開放先のサーバーIPアドレスと開放する自分のクライアントポート番号とがキーとなるように第1のデータベース内のその行に登録し、
前記サーバーへの接続を再度行う場合に前記第1のデータベースに登録されている前記第2の接続先CUGポート番号を用いることで回線接続し、
前記サーバーは、前記クライアントからの接続要求受信時にTCPヘッダから抽出した前記第1の接続先CUGポート番号の正当性の確認を前記第1の関数で算出した第1の受け側CUGポート番号と一致することで回線接続し、
前記クライアントとの間で回線の開放を行う場合に前記第2の関数を利用して算出した第2の受け側CUGポート番号を接続開放先のクライアントIPアドレスと前記クライアントポート番号とがキーとなるように第2のデータベース内のその行に登録し、
前記クライアントからの再接続要求受信時にTCPヘッダから抽出した前記第2の接続先CUGポート番号の正当性の確認を前記前記第2のデータベースに登録されている前記第2の受け側CUGポート番号と一致することで回線接続することを特徴とする非公開通信におけるセキュリティ確保方法。
A method for securing security in private communication in which communication is performed between a plurality of clients and a server based on a TCP / IP protocol,
The client connects to the line by using a first connection destination CUG port number calculated by using a predetermined first function at the time of a CUG line connection request to the server,
A second connection destination CUG calculated using a second function configured to be a variable value based on the sequence number of service data immediately before the line is released when the line is opened with the server. Register the port number in that line in the first database so that the server IP address of the connection release destination and the client port number of the client to be released are the keys,
When reconnecting to the server, a line connection is made using the second connection destination CUG port number registered in the first database,
The server checks whether the first connection destination CUG port number extracted from the TCP header at the time of receiving the connection request from the client is valid with the first receiving side CUG port number calculated by the first function. To connect to the line,
When releasing the line with the client, the second receiving-side CUG port number calculated using the second function is used as a key between the client IP address of the connection release destination and the client port number. Register in that row in the second database as
Checking the validity of the second connection destination CUG port number extracted from the TCP header at the time of receiving the reconnection request from the client is performed by checking the second receiving side CUG port number registered in the second database with the second reception side CUG port number. A method for ensuring security in non-public communication, characterized in that a connection is made by matching.
前記クライアントは、前記サーバーIPアドレスと前記クライアントポート番号とをキーとする前記第1のデータベースに登録された前記第2の接続先CUGポート番号が未接続のまま予め決められた時間以上使用されなければ前記第1のデータベースから該当する前記サーバーIPアドレスとクライアントポート番号とをキーとする行を削除し、
前記サーバーは、前記クライアントIPアドレスと前記クライアントポート番号とをキーとする前記第1のデータベースに登録された第2の受け側ポート番号が未接続のまま予め決められた時間以上使用されなった場合に前記第2のデータベースから該当する前記クライアントIPアドレスと前記クライアントポート番号とをキーとする行を削除することを特徴とする請求項4記載の非公開通信におけるセキュリティ確保方法。
The client must use the second connection destination CUG port number registered in the first database using the server IP address and the client port number as a key for a predetermined time without being connected. For example, delete the line using the corresponding server IP address and client port number as keys from the first database,
The server is configured to use the client IP address and the client port number as keys when the second receiving port number registered in the first database is not used for a predetermined period of time without being connected; 5. The method according to claim 4, further comprising: deleting a line using the client IP address and the client port number as keys from the second database.
前記クライアントは、再接続を含む回線接続時に、前記第1のデータベースに相手先となるCUGポート番号が登録されていなけれれば前記第1の関数で算出した前記第1の接続先ポート番号とすると共にランダムに算出したクライアントポート番号を送信元のクライアントポート番号とし、
前記第1のデータベースに相手先となるCUGポート番号が登録されかつ登録されているクライアントポート番号中で現在使用されていないものが存在すれば前記第1のデータベースから抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共に前記第1のデータベースから抽出したクライアントポート番号を前記送信先のクライアントポート番号とし、
前記第1のデータベースに相手先となるCUGポート番号が登録されかつ登録されているクライアントポート番号中で現在使用されていないものが存在しなければ前記第1のデータベースから抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共にランダムに算出したクライアントポート番号を前記送信元のクライアントポート番号とすることを特徴とする請求項4または5記載の非公開通信におけるセキュリティ確保方法。
If the CUG port number of the other party is not registered in the first database at the time of line connection including reconnection, the client uses the first connection destination port number calculated by the first function. And the client port number calculated at random as the source client port number,
If the CUG port number of the other party is registered in the first database and if there is a registered client port number that is not currently used, the CUG port number extracted from the first database is used as the CUG port number. 2, and the client port number extracted from the first database as the destination client port number,
The CUG port number of the destination is registered in the first database, and if there is no registered client port number that is not currently used, the CUG port number extracted from the first database is used as the client port number. 6. The security ensuring method according to claim 4, wherein a client port number calculated at random and a client port number calculated at random are set as a second connection destination CUG port number.
前記第1の関数は、前記サーバーと前記クライアントとの間で同期した時間を基に変動値になるように構成された関数であることを特徴とする請求項1,4,または6記載の非公開通信におけるセキュリティ確保方法。The non-transitory computer-readable storage medium according to claim 1, wherein the first function is a function configured to have a variable value based on a time synchronized between the server and the client. How to ensure security in public communications. TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方式であって、
前記クライアントは、前記サーバーへのCUGの回線接続要求時に予め決められた第1の関数を利用して算出した第1の接続先CUGポート番号を用いることで回線接続する第1の接続手段と、
前記サーバーとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第2の関数を利用して算出した第2の接続先CUGポート番号を接続開放先のサーバーIPアドレスと開放する自分のクライアントポート番号とがキーとなるように登録する第1の登録手段と、
前記サーバーへの接続を再度行う場合に前記第1のデータベースに登録されている前記第2の接続先CUGポート番号を用いることで回線接続する第1の再接続手段と、を有することを特徴とする非公開通信におけるセキュリティ確保方式。
A security assurance method in private communication in which communication is performed between a plurality of clients and a server based on a TCP / IP protocol,
A first connection unit configured to perform a line connection by using a first connection destination CUG port number calculated using a first function predetermined at the time of a CUG line connection request to the server;
A second connection destination CUG calculated using a second function configured to be a variable value based on the sequence number of service data immediately before the line is released when the line is opened with the server. First registering means for registering a port number such that a server IP address of a connection release destination and a client port number of the client to be released are used as keys;
A first reconnection means for connecting to the line by using the second connection destination CUG port number registered in the first database when reconnecting to the server. Security assurance method for private communications.
前記サーバーは、前記クライアントからの接続要求受信時にTCPヘッダから抽出した前記第1の接続先CUGポート番号の正当性の確認を前記第1の関数で算出した第1の受け側CUGポート番号と一致することで回線接続する第2の接続手段と、
前記クライアントとの間で回線の開放を行う場合に前記第2の関数を利用して算出した第2の受け側CUGポート番号を接続開放先のクライアントIPアドレスと前記クライアントポート番号とがキーとなるように登録する第2の登録手段と、
前記クライアントからの再接続要求受信時にTCPヘッダから抽出した前記第2の接続先CUGポート番号の正当性の確認を前記前記第2のデータベースに登録されている前記第2の受け側CUGポート番号と一致することで回線接続する第2の再接続手段と有することを特徴とする請求項8記載の非公開通信におけるセキュリティ確保方式。
The server checks whether the first connection destination CUG port number extracted from the TCP header at the time of receiving the connection request from the client is valid with the first receiving side CUG port number calculated by the first function. Second connection means for connecting the line by
When releasing the line with the client, the second receiving-side CUG port number calculated using the second function is used as a key between the client IP address of the connection release destination and the client port number. Second registration means for registering
Checking the validity of the second connection destination CUG port number extracted from the TCP header at the time of receiving the reconnection request from the client is performed by checking the second receiving side CUG port number registered in the second database with the second reception side CUG port number. 9. The security assurance method in a non-public communication according to claim 8, further comprising a second reconnecting means for connecting the line by matching.
TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方式であって、
前記サーバーは、前記クライアントからの接続要求受信時にTCPヘッダから抽出したCUGポート番号の正当性の確認を予め決められた第1の関数で算出した第1の受け側CUGポート番号と一致することで回線接続する第2の接続手段と、
前記クライアントとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号基に変動値となるように構成された第2の関数を利用して算出した第2の受け側CUGポート番号を接続開放先のクライアントIPアドレスと前記クライアントポート番号とがキーとなるように登録する第2の登録手段と、
前記クライアントからの再接続要求受信時にTCPヘッダから抽出したCUGポート番号の正当性の確認を前記前記第2のデータベースに登録されている前記第2の受け側CUGポート番号と一致することで回線接続する第2の再接続手段と有することを特徴とする非公開通信におけるセキュリティ確保方式。
A security assurance method in private communication in which communication is performed between a plurality of clients and a server based on a TCP / IP protocol,
The server confirms the validity of the CUG port number extracted from the TCP header at the time of receiving the connection request from the client by matching with the first receiving-side CUG port number calculated by the first function determined in advance. Second connection means for line connection;
A second receiving CUG port calculated using a second function configured to have a variable value based on a sequence number base of service data immediately before the line is released when the line is released with the client; Second registration means for registering a number such that the client IP address of the connection release destination and the client port number are used as keys;
When the validity of the CUG port number extracted from the TCP header at the time of receiving the reconnection request from the client is matched with the second receiving CUG port number registered in the second database, the line connection is established. And a second reconnecting means for performing security in private communication.
前記クライアントは、前記サーバーIPアドレスと前記クライアントポート番号とをキーとする前記第1の登録手段で登録された前記第2の接続先CUGポート番号が未接続のまま予め決められた時間以上使用されなければ前記第1の登録手段で登録された該当する前記サーバーIPアドレスとクライアントポート番号とをキーとする行を削除する第1の削除手段を有することを特徴とする請求項8または9記載の非公開通信におけるセキュリティ確保方式。The client uses the second connection destination CUG port number registered by the first registration means, using the server IP address and the client port number as keys, for a predetermined period of time without being connected. 10. The method according to claim 8, further comprising a first deletion unit that deletes a line using the server IP address and the client port number registered as keys in the first registration unit. Security assurance method for private communication. 前記サーバーは、前記クライアントIPアドレスと前記クライアントポート番号とをキーとする前記第2の登録手段で登録された第2の受け側ポート番号が未接続のまま予め決められた時間以上使用されなった場合に前記第2の登録手段で登録された該当する前記クライアントIPアドレスと前記クライアントポート番号とをキーとする行を削除する第2の削除手段とを有することを特徴とする請求項9または10記載の非公開通信におけるセキュリティ確保方式。The server has not been used for more than a predetermined time while the second receiving port number registered by the second registration unit using the client IP address and the client port number as keys is not connected. 11. The method according to claim 9, further comprising a second deletion unit that deletes a line using the client IP address and the client port number registered as keys in the second registration unit. The security assurance method in the above-mentioned closed communication. 前記第1の接続手段は、再接続を含む回線接続時に、前記第1の登録手段で登録された相手先となるCUGポート番号が存在しなければ前記第1の関数で算出した前記第1の接続先ポート番号とすると共にランダムに算出したクライアントポート番号を送信元のクライアントポート番号として前記サーバに対して回線接続要求を行う手段を有し、
前記第1の接続手段は、再接続を含む回線接続時に、前記第1の登録手段で登録された相手先となるCUGポート番号が存在しかつ登録されているクライアントポート番号中で現在使用されていないものが存在すれば前記第1のデータベースから抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共に前記第1の登録手段から抽出したクライアントポート番号を前記送信先のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段と、
前記第1の登録手段で登録された相手先となるCUGポート番号が存在しかつ登録されているクライアントポート番号中で現在使用されていないものが存在しなければ前記第1の登録手段から抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共にランダムに算出したクライアントポート番号を前記送信元のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段と、を有することを特徴とする請求項9記載の非公開通信におけるセキュリティ確保方式。
The first connection means, at the time of line connection including reconnection, if there is no CUG port number to be a destination registered by the first registration means, the first connection calculated by the first function. A means for making a line connection request to the server as a client port number of a transmission source and a client port number randomly calculated as a connection destination port number,
The first connection means has a destination CUG port number registered by the first registration means at the time of line connection including reconnection, and is currently used in the registered client port numbers. If none exists, the CUG port number extracted from the first database is used as the second connection destination CUG port number, and the client port number extracted from the first registration unit is used as the transmission destination client port number. Means for making a line connection request to the server as
If there is a destination CUG port number registered by the first registration unit and there is no currently used client port number among the registered client port numbers, it is extracted from the first registration unit. Means for making a line connection request to the server using a CUG port number as the second connection destination CUG port number and a client port number calculated at random as the transmission source client port number. 10. The security ensuring method in the secret communication according to claim 9.
前記第1の関数は、前記サーバーと前記クライアントとの間で同期した時間を基に変動値となるように構成された関数であることを特徴とする請求項8,9,10,または13記載の非公開通信におけるセキュリティ確保方式。14. The function according to claim 8, wherein the first function is a function configured to have a variable value based on a time synchronized between the server and the client. Security assurance method for private communication of the Internet.
JP2003054439A 2003-02-28 2003-02-28 Security method and method in private communication Expired - Fee Related JP4623938B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003054439A JP4623938B2 (en) 2003-02-28 2003-02-28 Security method and method in private communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003054439A JP4623938B2 (en) 2003-02-28 2003-02-28 Security method and method in private communication

Publications (3)

Publication Number Publication Date
JP2004265122A true JP2004265122A (en) 2004-09-24
JP2004265122A5 JP2004265122A5 (en) 2006-04-20
JP4623938B2 JP4623938B2 (en) 2011-02-02

Family

ID=33118779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003054439A Expired - Fee Related JP4623938B2 (en) 2003-02-28 2003-02-28 Security method and method in private communication

Country Status (1)

Country Link
JP (1) JP4623938B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006120831A1 (en) * 2005-05-10 2006-11-16 Brother Kogyo Kabushiki Kaisha Network system, connection set-up method, node device, and so forth
JP2009238098A (en) * 2008-03-28 2009-10-15 Hitachi Ltd Session management method, storage device, and computer system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1132075A (en) * 1997-07-08 1999-02-02 Oki Electric Ind Co Ltd Service-providing system for computer
JP2001051946A (en) * 1999-08-10 2001-02-23 Fuji Xerox Co Ltd Device and method for resource access management
JP2001209614A (en) * 2000-01-25 2001-08-03 Nec Corp Authentication system and its method
JP2002236627A (en) * 2001-02-08 2002-08-23 Yaskawa Electric Corp Method for changing dynamic port of firewall
JP2002366523A (en) * 2001-06-13 2002-12-20 Micromice:Kk Qualification authentication method using variable authentication information

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1132075A (en) * 1997-07-08 1999-02-02 Oki Electric Ind Co Ltd Service-providing system for computer
JP2001051946A (en) * 1999-08-10 2001-02-23 Fuji Xerox Co Ltd Device and method for resource access management
JP2001209614A (en) * 2000-01-25 2001-08-03 Nec Corp Authentication system and its method
JP2002236627A (en) * 2001-02-08 2002-08-23 Yaskawa Electric Corp Method for changing dynamic port of firewall
JP2002366523A (en) * 2001-06-13 2002-12-20 Micromice:Kk Qualification authentication method using variable authentication information

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006120831A1 (en) * 2005-05-10 2006-11-16 Brother Kogyo Kabushiki Kaisha Network system, connection set-up method, node device, and so forth
JP2006319384A (en) * 2005-05-10 2006-11-24 Brother Ind Ltd Network system, connection establishing method, and node apparatus or the like
JP4631531B2 (en) * 2005-05-10 2011-02-16 ブラザー工業株式会社 Network system, connection establishment method, node device, etc.
JP2009238098A (en) * 2008-03-28 2009-10-15 Hitachi Ltd Session management method, storage device, and computer system

Also Published As

Publication number Publication date
JP4623938B2 (en) 2011-02-02

Similar Documents

Publication Publication Date Title
Iyengar et al. QUIC: A UDP-based multiplexed and secure transport
CN1649351B (en) Endpoint address change in a packet network
Fajardo et al. Diameter base protocol
Kohler et al. Datagram congestion control protocol (DCCP)
US9628441B2 (en) Attack defense method and device
Calhoun et al. Diameter base protocol
TW518864B (en) Methods and system for defeating TCP SYN flooding attacks
US5822434A (en) Scheme to allow two computers on a network to upgrade from a non-secured to a secured session
US11196767B2 (en) Front-end protocol for server protection
US7940761B2 (en) Communication connection method, authentication method, server computer, client computer and program
JP3685651B2 (en) Interconnect apparatus and active QoS mapping method
US7120792B1 (en) System and method for secure communication of routing messages
Iyengar et al. RFC 9000: QUIC: A UDP-based multiplexed and secure transport
WO2009082889A1 (en) A method for internet key exchange negotiation and device, system thereof
WO2010048865A1 (en) A method and device for preventing network attack
CN101018233B (en) Session control method and control device
KR20090094236A (en) Methods and apparatus for delivering control messages during a malicious attack in one or more packet networks
US7539191B1 (en) System and method for securing route processors against attack
JP2006279636A (en) Consistency guarantee management system for inter-client communication log
US8386783B2 (en) Communication apparatus and communication method
EP2548359A2 (en) Method and apparatus for detecting active and orphan session-based connections
CN100376092C (en) Firewall and invasion detecting system linkage method
GB2401011A (en) A client terminal and a server are each provided with a message queue to facilitate session independent transfer of messages
JP4623938B2 (en) Security method and method in private communication
JP2006025211A (en) Peer-to-peer terminal device, peer-to-peer communication system, peer-to-peer communication method, and peer-to-peer terminal program

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060224

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070125

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080624

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080825

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20090515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090908

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100525

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100730

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100928

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100930

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: 20101019

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101102

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees