JP4623938B2 - 非公開通信におけるセキュリティ確保方法および方式 - Google Patents
非公開通信におけるセキュリティ確保方法および方式 Download PDFInfo
- Publication number
- JP4623938B2 JP4623938B2 JP2003054439A JP2003054439A JP4623938B2 JP 4623938 B2 JP4623938 B2 JP 4623938B2 JP 2003054439 A JP2003054439 A JP 2003054439A JP 2003054439 A JP2003054439 A JP 2003054439A JP 4623938 B2 JP4623938 B2 JP 4623938B2
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Description
【発明の属する技術分野】
本発明は、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】
この問題は、公の運用を行うサーバーや制限したクライアントのみに許されたプライベート運用を行うサーバーを問わず同じ危険水準を有してしまうことに有る。
【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】
【数2】
【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】
【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 ネットワーク
Claims (12)
- TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行うクローズドユーザグループ(CUG)での非公開通信におけるセキュリティ確保方法であって、
前記クライアントが前記サーバーに対して前記CUGサービスに伴う接続要求を行う場合にウェルノウンポート番号と違う第1の特定のポート番号を予め決められた第1の関数を利用して算出しその算出した第1の特定のポート番号を前記サーバーのCUG対応のポート番号として回線接続し、前記サーバーと前記クライアントとの間で再接続する場合に、回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第2の関数を利用して算出した第2の特定のポート番号を前記サーバーのCUG対応のポート番号として回線接続することを特徴とする、非公開通信におけるセキュリティ確保方法。 - 前記サーバーと前記クライアントとの間で再接続する場合に、予め決められた時間の間未接続状態が続けば前記第1の特定のポート番号を前記サーバーのCUG対応のポート番号として回線接続することを特徴とする請求項1記載の非公開通信におけるセキュリティ確保方法。
- TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行うCUGでの非公開通信におけるセキュリティ確保方法であって、前記クライアントは、前記サーバーへの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ポート番号と一致することで回線接続することを特徴とする非公開通信におけるセキュリティ確保方法。
- 前記クライアントは、前記サーバーIPアドレスと前記クライアントポート番号とをキーとする前記第1のデータベースに登録された前記第2の接続先CUGポート番号が未接続のまま予め決められた時間以上使用されなければ前記第1のデータベースから該当する前記サーバーIPアドレスとクライアントポート番号とをキーとする行を削除し、前記サーバーは、前記クライアントIPアドレスと前記クライアントポート番号とをキーとする前記第1のデータベースに登録された第2の受け側ポート番号が未接続のまま予め決められた時間以上使用されなった場合に前記第2のデータベースから該当する前記クライアントIPアドレスと前記クライアントポート番号とをキーとする行を削除することを特徴とする請求項3記載の非公開通信におけるセキュリティ確保方法。
- 前記クライアントは、再接続を含む回線接続時に、前記第1のデータベースに相手先となるCUGポート番号が登録されていなけれれば前記第1の関数で算出した前記第1の接続先ポート番号とすると共にランダムに算出したクライアントポート番号を送信元のクライアントポート番号とし、前記第1のデータベースに相手先となるCUGポート番号が登録されかつ登録されているクライアントポート番号中で現在使用されていないものが存在すれば前記第1のデータベースから抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共に前記第1のデータベースから抽出したクライアントポート番号を前記送信先のクライアントポート番号とし、前記第1のデータベースに相手先となるCUGポート番号が登録されかつ登録されているクライアントポート番号中で現在使用されていないものが存在しなければ前記第1のデータベースから抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共にランダムに算出したクライアントポート番号を前記送信元のクライアントポート番号とすることを特徴とする請求項3若しくは4記載の非公開通信におけるセキュリティ確保方法。
- TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行うCUGでの非公開通信におけるセキュリティ確保方式であって、前記クライアントは、前記サーバーへのCUGの回線接続要求時に予め決められた第1の関数を利用して算出した第1の接続先CUGポート番号を用いることで回線接続する第1の接続手段と、
前記サーバーとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第2の関数を利用して算出した第2の接続先CUGポート番号を接続開放先のサーバーIPアドレスと開放する自分のクライアントポート番号とがキーとなるように登録する第1の登録手段と、前記サーバーへの接続を再度行う場合に前記第1のデータベースに登録されている前記第2の接続先CUGポート番号を用いることで回線接続する第1の再接続手段と、を有することを特徴とする非公開通信におけるセキュリティ確保方式。 - 前記サーバーは、前記クライアントからの接続要求受信時にTCPヘッダから抽出した前記第1の接続先CUGポート番号の正当性の確認を前記第1の関数で算出した第1の受け側CUGポート番号と一致することで回線接続する第2の接続手段と、前記クライアントとの間で回線の開放を行う場合に前記第2の関数を利用して算出した第2の受け側CUGポート番号を接続開放先のクライアントIPアドレスと前記クライアントポート番号とがキーとなるように登録する第2の登録手段と、前記クライアントからの再接続要求受信時にTCPヘッダから抽出した前記第2の接続先CUGポート番号の正当性の確認を前記第2のデータベースに登録されている前記第2の受け側CUGポート番号と一致することで回線接続する第2の再接続手段と有することを特徴とする請求項6記載の非公開通信におけるセキュリティ確保方式。
- TCP/IPプロトコルの基で複数のクライアントとサーバーとの間で通信を行うCUGでの非公開通信におけるセキュリティ確保方式であって、
前記サーバーは、前記クライアントからの接続要求受信時にTCPヘッダから抽出したCUGポート番号の正当性の確認を予め決められた第1の関数で算出した第1の受け側CUGポート番号と一致することで回線接続する第2の接続手段と、
前記クライアントとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号基に変動値となるように構成された第2の関数を利用して算出した第2の受け側CUGポート番号を接続開放先のクライアントIPアドレスと前記クライアントポート番号とがキーとなるように登録する第2の登録手段と、前記クライアントからの再接続要求受信時にTCPヘッダから抽出したCUGポート番号の正当性の確認を前記第2のデータベースに登録されている前記第2の受け側CUGポート番号と一致することで回線接続する第2の再接続手段と有することを特徴とする非公開通信におけるセキュリティ確保方式。 - 前記クライアントは、前記サーバーIPアドレスと前記クライアントポート番号とをキーとする前記第1の登録手段で登録された前記第2の接続先CUGポート番号が未接続のまま予め決められた時間以上使用されなければ前記第1の登録手段で登録された該当する前記サーバーIPアドレスとクライアントポート番号とをキーとする行を削除する第1の削除手段を有することを特徴とする請求項6若しくは請求項7記載の非公開通信におけるセキュリティ確保方式。
- 前記サーバーは、前記クライアントIPアドレスと前記クライアントポート番号とをキーとする前記第2の登録手段で登録された第2の受け側ポート番号が未接続のまま予め決められた時間以上使用されなった場合に前記第2の登録手段で登録された該当する前記クライアントIPアドレスと前記クライアントポート番号とをキーとする行を削除する第2の削除手段とを有することを特徴とする請求項7若しくは請求項8記載の非公開通信におけるセキュリティ確保方式。
- 前記第1の接続手段は、再接続を含む回線接続時に、前記第1の登録手段で登録された相手先となるCUGポート番号が存在しなければ前記第1の関数で算出した前記第1の接続先ポート番号とすると共にランダムに算出したクライアントポート番号を送信元のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段を有し、
前記第1の接続手段は、再接続を含む回線接続時に、前記第1の登録手段で登録された相手先となるCUGポート番号が存在しかつ登録されているクライアントポート番号中で現在使用されていないものが存在すれば前記第1のデータベースから抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共に前記第1の登録手段から抽出したクライアントポート番号を前記送信先のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段と、
前記第1の登録手段で登録された相手先となるCUGポート番号が存在しかつ登録されているクライアントポート番号中で現在使用されていないものが存在しなければ前記第1の登録手段から抽出したCUGポート番号を前記第2の接続先CUGポート番号とすると共にランダムに算出したクライアントポート番号を前記送信元のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段と、を有することを特徴とする請求項7記載の非公開通信におけるセキュリティ確保方式。 - 前記第1の関数は、前記サーバーと前記クライアントとの間で同期した時間を基に変動値となるように構成された関数であることを特徴とする請求項6,7,8,または請求項11記載の非公開通信におけるセキュリティ確保方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003054439A JP4623938B2 (ja) | 2003-02-28 | 2003-02-28 | 非公開通信におけるセキュリティ確保方法および方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003054439A JP4623938B2 (ja) | 2003-02-28 | 2003-02-28 | 非公開通信におけるセキュリティ確保方法および方式 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004265122A JP2004265122A (ja) | 2004-09-24 |
JP2004265122A5 JP2004265122A5 (ja) | 2006-04-20 |
JP4623938B2 true JP4623938B2 (ja) | 2011-02-02 |
Family
ID=33118779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003054439A Expired - Fee Related JP4623938B2 (ja) | 2003-02-28 | 2003-02-28 | 非公開通信におけるセキュリティ確保方法および方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4623938B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4631531B2 (ja) * | 2005-05-10 | 2011-02-16 | ブラザー工業株式会社 | ネットワークシステム、接続確立方法、及びノード装置等 |
JP5112138B2 (ja) * | 2008-03-28 | 2013-01-09 | 株式会社日立製作所 | セッション管理方法、ストレージ装置、及び、計算機システム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001051946A (ja) * | 1999-08-10 | 2001-02-23 | Fuji Xerox Co Ltd | 資源アクセス管理装置及び方法 |
JP2001209614A (ja) * | 2000-01-25 | 2001-08-03 | Nec Corp | 認証システムおよびその方法 |
JP2002236627A (ja) * | 2001-02-08 | 2002-08-23 | Yaskawa Electric Corp | ファイアウォールの動的ポート変更方法 |
JP2002366523A (ja) * | 2001-06-13 | 2002-12-20 | Micromice:Kk | 可変認証情報を用いた資格認証方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1132075A (ja) * | 1997-07-08 | 1999-02-02 | Oki Electric Ind Co Ltd | コンピュータのサービス提供システム |
-
2003
- 2003-02-28 JP JP2003054439A patent/JP4623938B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001051946A (ja) * | 1999-08-10 | 2001-02-23 | Fuji Xerox Co Ltd | 資源アクセス管理装置及び方法 |
JP2001209614A (ja) * | 2000-01-25 | 2001-08-03 | Nec Corp | 認証システムおよびその方法 |
JP2002236627A (ja) * | 2001-02-08 | 2002-08-23 | Yaskawa Electric Corp | ファイアウォールの動的ポート変更方法 |
JP2002366523A (ja) * | 2001-06-13 | 2002-12-20 | Micromice:Kk | 可変認証情報を用いた資格認証方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2004265122A (ja) | 2004-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1649351B (zh) | 分组网络中端点地址的改变 | |
Fajardo et al. | Diameter base protocol | |
JP3685651B2 (ja) | 相互接続装置及びアクティブQoSマッピング方法 | |
US7680120B2 (en) | Connected communication terminal, connecting communication terminal, session management server and trigger server | |
Calhoun et al. | Diameter base protocol | |
JP4746044B2 (ja) | 状態転送にコアベースのノードを使用するよう拡張された技術 | |
US7940761B2 (en) | Communication connection method, authentication method, server computer, client computer and program | |
CN1799241B (zh) | Ip移动性 | |
TW518864B (en) | Methods and system for defeating TCP SYN flooding attacks | |
JP4278614B2 (ja) | アクセストークン、および最適化されたサービス品質を支援するハンドオーバプロシージャに対するDoS攻撃を所定の範囲のみで有効な暗号化トークンを用いて防止する方法 | |
US8175091B2 (en) | Communication system | |
KR20090094236A (ko) | 제어 메시지 전달 방법 및 장치 | |
EP1557066A2 (en) | Session updating procedure for authentication, authorization and accounting | |
WO2008020644A1 (fr) | Serveur mandataire, système de communication, procédé de communication et programme | |
JP3987539B2 (ja) | セッション情報管理方法およびセッション情報管理装置 | |
JP4623938B2 (ja) | 非公開通信におけるセキュリティ確保方法および方式 | |
JP2006185194A (ja) | サーバ装置、通信制御方法及びプログラム | |
JP3668648B2 (ja) | セッション情報管理方法およびセッション情報管理装置 | |
JP4654613B2 (ja) | 通信システム、通信方法、アドレス配布システム、アドレス配布方法、通信端末 | |
JP2001516531A (ja) | 登録プロトコル | |
EP1814279B1 (en) | Method and apparatus for implementing bearer mobility | |
JP2006025211A (ja) | ピアツーピア端末装置並びにピアツーピア通信システム、ピアツーピア通信方法、ピアツーピア端末プログラム | |
KR100419578B1 (ko) | 다이아미터 기반 이동 인터넷 프로토콜 망에서의 세션제어 방법 | |
KR100445422B1 (ko) | 다이아메터 기반 에이에이에이 시스템에서 티엘에스를이용한 보안 전송 계층 연결 설정 방법 | |
KR100625236B1 (ko) | 다이어미터 베이스 프로토콜의 상대 노드 상태 관리 방법 |
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 |