(57)【要約】【課題】制限したクライアントのみ利用可能なプライベート運用を行うサーバーに対して第三者によるクラッキング行為を無効にさせ、不正使用、内部データの盗用、改竄、破壊等々の発生を防止することにある。【解決手段】ＣＵＧ内のクライアント２がサーバー１に対してＣＵＧサービスに伴う接続要求を行う場合にある時間で変動する違い第１の関数を利用して算出したポート番号をサーバー１のＣＵＧ対応のポート番号として回線接続する。更に、サーバー１とクライアント２との間で再接続する場合に、回線開放直前のサービスデータのシーケンス番号で変動する第２の関数を利用して算出したポート番号をサーバー１のＣＵＧ対応のポート番号として回線接続する。更に、再接続する場合に、予め決められた時間の間未接続状態が続けば第１の関数を利用して算出したポート番号をサーバー１のＣＵＧ対応のポート番号として回線接続する。【選択図】      図２
2004265122.tif 000002
【特許請求の範囲】
【請求項１】
ＴＣＰ／ＩＰプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方法であって、
ＣＵＧ内の前記クライアントが前記サーバーに対してＣＵＧサービスに伴う接続要求を行う場合にウェルノウンポート番号と違う第１の特定のポート番号を予め決められた第１の関数を利用して算出しその算出した第１の特定のポート番号を前記サーバーのＣＵＧ対応のポート番号として回線接続することを特徴とする非公開通信におけるセキュリティ確保方法。
【請求項２】
前記サーバーと前記クライアントとの間で再接続する場合に、回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第２の関数を利用して算出した第２の特定のポート番号を前記サーバーのＣＵＧ対応のポート番号として回線接続することを特徴とする請求項１記載の非公開通信におけるセキュリティ確保方法。
【請求項３】
前記サーバーと前記クライアントとの間で再接続する場合に、予め決められた時間の間未接続状態が続けば前記第１の特定のポート番号を前記サーバーのＣＵＧ対応のポート番号として回線接続することを特徴とする請求項１または２記載の非公開通信におけるセキュリティ確保方法。
【請求項４】
ＴＣＰ／ＩＰプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方法であって、
前記クライアントは、前記サーバーへのＣＵＧの回線接続要求時に予め決められた第１の関数を利用して算出した第１の接続先ＣＵＧポート番号を用いることで回線接続し、
前記サーバーとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第２の関数を利用して算出した第２の接続先ＣＵＧポート番号を接続開放先のサーバーＩＰアドレスと開放する自分のクライアントポート番号とがキーとなるように第１のデータベース内のその行に登録し、
前記サーバーへの接続を再度行う場合に前記第１のデータベースに登録されている前記第２の接続先ＣＵＧポート番号を用いることで回線接続し、
前記サーバーは、前記クライアントからの接続要求受信時にＴＣＰヘッダから抽出した前記第１の接続先ＣＵＧポート番号の正当性の確認を前記第１の関数で算出した第１の受け側ＣＵＧポート番号と一致することで回線接続し、
前記クライアントとの間で回線の開放を行う場合に前記第２の関数を利用して算出した第２の受け側ＣＵＧポート番号を接続開放先のクライアントＩＰアドレスと前記クライアントポート番号とがキーとなるように第２のデータベース内のその行に登録し、
前記クライアントからの再接続要求受信時にＴＣＰヘッダから抽出した前記第２の接続先ＣＵＧポート番号の正当性の確認を前記前記第２のデータベースに登録されている前記第２の受け側ＣＵＧポート番号と一致することで回線接続することを特徴とする非公開通信におけるセキュリティ確保方法。
【請求項５】
前記クライアントは、前記サーバーＩＰアドレスと前記クライアントポート番号とをキーとする前記第１のデータベースに登録された前記第２の接続先ＣＵＧポート番号が未接続のまま予め決められた時間以上使用されなければ前記第１のデータベースから該当する前記サーバーＩＰアドレスとクライアントポート番号とをキーとする行を削除し、
前記サーバーは、前記クライアントＩＰアドレスと前記クライアントポート番号とをキーとする前記第１のデータベースに登録された第２の受け側ポート番号が未接続のまま予め決められた時間以上使用されなった場合に前記第２のデータベースから該当する前記クライアントＩＰアドレスと前記クライアントポート番号とをキーとする行を削除することを特徴とする請求項４記載の非公開通信におけるセキュリティ確保方法。
【請求項６】
前記クライアントは、再接続を含む回線接続時に、前記第１のデータベースに相手先となるＣＵＧポート番号が登録されていなけれれば前記第１の関数で算出した前記第１の接続先ポート番号とすると共にランダムに算出したクライアントポート番号を送信元のクライアントポート番号とし、
前記第１のデータベースに相手先となるＣＵＧポート番号が登録されかつ登録されているクライアントポート番号中で現在使用されていないものが存在すれば前記第１のデータベースから抽出したＣＵＧポート番号を前記第２の接続先ＣＵＧポート番号とすると共に前記第１のデータベースから抽出したクライアントポート番号を前記送信先のクライアントポート番号とし、
前記第１のデータベースに相手先となるＣＵＧポート番号が登録されかつ登録されているクライアントポート番号中で現在使用されていないものが存在しなければ前記第１のデータベースから抽出したＣＵＧポート番号を前記第２の接続先ＣＵＧポート番号とすると共にランダムに算出したクライアントポート番号を前記送信元のクライアントポート番号とすることを特徴とする請求項４または５記載の非公開通信におけるセキュリティ確保方法。
【請求項７】
前記第１の関数は、前記サーバーと前記クライアントとの間で同期した時間を基に変動値になるように構成された関数であることを特徴とする請求項１，４，または６記載の非公開通信におけるセキュリティ確保方法。
【請求項８】
ＴＣＰ／ＩＰプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方式であって、
前記クライアントは、前記サーバーへのＣＵＧの回線接続要求時に予め決められた第１の関数を利用して算出した第１の接続先ＣＵＧポート番号を用いることで回線接続する第１の接続手段と、
前記サーバーとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第２の関数を利用して算出した第２の接続先ＣＵＧポート番号を接続開放先のサーバーＩＰアドレスと開放する自分のクライアントポート番号とがキーとなるように登録する第１の登録手段と、
前記サーバーへの接続を再度行う場合に前記第１のデータベースに登録されている前記第２の接続先ＣＵＧポート番号を用いることで回線接続する第１の再接続手段と、を有することを特徴とする非公開通信におけるセキュリティ確保方式。
【請求項９】
前記サーバーは、前記クライアントからの接続要求受信時にＴＣＰヘッダから抽出した前記第１の接続先ＣＵＧポート番号の正当性の確認を前記第１の関数で算出した第１の受け側ＣＵＧポート番号と一致することで回線接続する第２の接続手段と、
前記クライアントとの間で回線の開放を行う場合に前記第２の関数を利用して算出した第２の受け側ＣＵＧポート番号を接続開放先のクライアントＩＰアドレスと前記クライアントポート番号とがキーとなるように登録する第２の登録手段と、
前記クライアントからの再接続要求受信時にＴＣＰヘッダから抽出した前記第２の接続先ＣＵＧポート番号の正当性の確認を前記前記第２のデータベースに登録されている前記第２の受け側ＣＵＧポート番号と一致することで回線接続する第２の再接続手段と有することを特徴とする請求項８記載の非公開通信におけるセキュリティ確保方式。
【請求項１０】
ＴＣＰ／ＩＰプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方式であって、
前記サーバーは、前記クライアントからの接続要求受信時にＴＣＰヘッダから抽出したＣＵＧポート番号の正当性の確認を予め決められた第１の関数で算出した第１の受け側ＣＵＧポート番号と一致することで回線接続する第２の接続手段と、
前記クライアントとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号基に変動値となるように構成された第２の関数を利用して算出した第２の受け側ＣＵＧポート番号を接続開放先のクライアントＩＰアドレスと前記クライアントポート番号とがキーとなるように登録する第２の登録手段と、
前記クライアントからの再接続要求受信時にＴＣＰヘッダから抽出したＣＵＧポート番号の正当性の確認を前記前記第２のデータベースに登録されている前記第２の受け側ＣＵＧポート番号と一致することで回線接続する第２の再接続手段と有することを特徴とする非公開通信におけるセキュリティ確保方式。
【請求項１１】
前記クライアントは、前記サーバーＩＰアドレスと前記クライアントポート番号とをキーとする前記第１の登録手段で登録された前記第２の接続先ＣＵＧポート番号が未接続のまま予め決められた時間以上使用されなければ前記第１の登録手段で登録された該当する前記サーバーＩＰアドレスとクライアントポート番号とをキーとする行を削除する第１の削除手段を有することを特徴とする請求項８または９記載の非公開通信におけるセキュリティ確保方式。
【請求項１２】
前記サーバーは、前記クライアントＩＰアドレスと前記クライアントポート番号とをキーとする前記第２の登録手段で登録された第２の受け側ポート番号が未接続のまま予め決められた時間以上使用されなった場合に前記第２の登録手段で登録された該当する前記クライアントＩＰアドレスと前記クライアントポート番号とをキーとする行を削除する第２の削除手段とを有することを特徴とする請求項９または１０記載の非公開通信におけるセキュリティ確保方式。
【請求項１３】
前記第１の接続手段は、再接続を含む回線接続時に、前記第１の登録手段で登録された相手先となるＣＵＧポート番号が存在しなければ前記第１の関数で算出した前記第１の接続先ポート番号とすると共にランダムに算出したクライアントポート番号を送信元のクライアントポート番号として前記サーバに対して回線接続要求を行う手段を有し、
前記第１の接続手段は、再接続を含む回線接続時に、前記第１の登録手段で登録された相手先となるＣＵＧポート番号が存在しかつ登録されているクライアントポート番号中で現在使用されていないものが存在すれば前記第１のデータベースから抽出したＣＵＧポート番号を前記第２の接続先ＣＵＧポート番号とすると共に前記第１の登録手段から抽出したクライアントポート番号を前記送信先のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段と、
前記第１の登録手段で登録された相手先となるＣＵＧポート番号が存在しかつ登録されているクライアントポート番号中で現在使用されていないものが存在しなければ前記第１の登録手段から抽出したＣＵＧポート番号を前記第２の接続先ＣＵＧポート番号とすると共にランダムに算出したクライアントポート番号を前記送信元のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段と、を有することを特徴とする請求項９記載の非公開通信におけるセキュリティ確保方式。
【請求項１４】
前記第１の関数は、前記サーバーと前記クライアントとの間で同期した時間を基に変動値となるように構成された関数であることを特徴とする請求項８，９，１０，または１３記載の非公開通信におけるセキュリティ確保方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＴＣＰ／ＩＰプロトコルに基づいた非公開通信におけるセキュリティ確保方法および方式に関し、特に、クライアントとサーバーと間で通信を行うクローズドユーザグループ（ＣＵＧ）での非公開通信におけるセキュリティ確保方法および方式に関する。
【０００２】
【従来の技術】
従来、ＴＣＰ／ＩＰを用いたクライアント・サーバー型通信において、サーバー側にポート番号と云う固定化された識別子を与えて、クラアント側からサーバー側へ要求するサービス（アプリケーション）をユニークに区別させるようにしている。この方式におけるポート番号ついてはＩＥＴＦ（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｅｃｅ）からＲＦＣ（Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ）１０６０に規定されるウェルノウンサービス対応ポート番号として公にされている。この場合のＲＦＣ１０６０規定のウェルノウンサービス対応ポート番号は各クライアント、サーバーに実装されるオペレーティングシステム（ＯＳ）内にデータとして保有されている。
【０００３】
このような固定のポート番号を利用した後にポート番号を変えてサーバー／クライアントにおける接続方法として、例えば、特開平６−３０１６１６号公報に開示されている。
【０００４】
今、複数のクライアントの１つがサーバーに対してアプリケーションを要求（ＴＣＰ／ＩＰ通信接続の試みを実施）する場合、クライアントは、サーバーに対して相手のアプリケーションに対応した固定のポート番号を設定してその設定したポート番号をＩＰパケットに含めて送信することで、サーバーとクライアントとの間で通信パスを張る。更に、サーバーは、他のクライアントにも接続できるように、固定のポート番号と違う新規のポート番号を発生して接続しているクライアントに通知することで、再接続する場合は、新規のポート番号を利用する。
【０００５】
【特許文献１】
特開平６−３０１６１６号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、従来のＴＣＰ／ＩＰを用いたサーバー／クライアントシステムでは、サーバー側にポート番号と云う常時固定の識別子を与えて、クラアント側からサーバー側へ要求するサービス（アプリケーション）をユニークに区別させるようにしていたため、公にされたサーバー側のポート番号に対して、悪意の第三者からポートスキャン操作を始めとするクラッキング行為により、サーバーのｒｏｏｔ権限を第三者に奪われてしまうことを許してしまう可能性があるという問題点がある。更に、この結果、サーバーには第三者による不正使用、内部データの盗用、改竄、破壊等々の不利益を被る事態が発生するという問題点がある。
【０００７】
この問題は、公の運用を行うサーバーや制限したクライアント（ＣＵＧ）のみに許されたプライベート運用を行うサーバーを問わず同じ危険水準を有してしまうことに有る。
【０００８】
また、サーバーの固定のポート番号に接続した後に新規のポート番号を通知するという特開平６−３０１６１６号公報記載の方法では、ネットワーク上で悪意の第三者が監視していれば、第三者に新規のポート番号を知られることになり、上記の問題点と同様に知られたポート番号経由でセキュリティホールを突かれてサーバーのｒｏｏｔ権限を第三者に奪われてしまう危険性が発生するという問題点がある。
【０００９】
本発明の目的は、上記問題点を鑑み、ＴＣＰ／ＩＰを用いたクライアント・サーバー型通信において、制限したクライアントのみ利用可能なプライベート運用を行うサーバーに対して第三者によるクラッキング行為を無効にさせ、不正使用、内部データの盗用、改竄、破壊等々の発生を防止することにある。
【００１０】
また、本発明の他の目的は、ポートスキャン操作等のクラッキング行為を無効とすることで、悪意の第三者に対して、行為を諦めさせることが可能となりクラッキング目的のパケットが減少し、該当するサーバーが置かれるネットワークのトラフィック量を下げ帯域幅を正しい目的のために利用できる効果をもたらすことにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本発明の第１の非公開通信におけるセキュリティ確保方法は、ＴＣＰ／ＩＰプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方法であって、ＣＵＧ内の前記クライアントが前記サーバーに対してＣＵＧサービスに伴う接続要求を行う場合にウェルノウンポート番号と違う第１の特定のポート番号を予め決められた第１の関数を利用して算出しその算出した第１の特定のポート番号を前記サーバーのＣＵＧ対応のポート番号として回線接続することを特徴としている。
【００１２】
更に、上記の第１の非公開通信におけるセキュリティ確保方法において、前記サーバーと前記クライアントとの間で再接続する場合に、回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第２の関数を利用して算出した第２の特定のポート番号を前記サーバーのＣＵＧ対応のポート番号として回線接続することを特徴としている。
【００１３】
更に、上記の第１の非公開通信におけるセキュリティ確保方法において、前記サーバーと前記クライアントとの間で再接続する場合に、予め決められた時間の間未接続状態が続けば前記第１の特定のポート番号を前記サーバーのＣＵＧ対応のポート番号として回線接続することを特徴としている。
【００１４】
また、本発明の第２の非公開通信におけるセキュリティ確保方法は、ＴＣＰ／ＩＰプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方法であって、前記クライアントは、前記サーバーへのＣＵＧの回線接続要求時に予め決められた第１の関数を利用して算出した第１の接続先ＣＵＧポート番号を用いることで回線接続し、前記サーバーとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第２の関数を利用して算出した第２の接続先ＣＵＧポート番号を接続開放先のサーバーＩＰアドレスと開放する自分のクライアントポート番号とがキーとなるように第１のデータベース内のその行に登録し、前記サーバーへの接続を再度行う場合に前記第１のデータベースに登録されている前記第２の接続先ＣＵＧポート番号を用いることで回線接続し、前記サーバーは、前記クライアントからの接続要求受信時にＴＣＰヘッダから抽出した前記第１の接続先ＣＵＧポート番号の正当性の確認を前記第１の関数で算出した第１の受け側ＣＵＧポート番号と一致することで回線接続し、前記クライアントとの間で回線の開放を行う場合に前記第２の関数を利用して算出した第２の受け側ＣＵＧポート番号を接続開放先のクライアントＩＰアドレスと前記クライアントポート番号とがキーとなるように第２のデータベース内のその行に登録し、前記クライアントからの再接続要求受信時にＴＣＰヘッダから抽出した前記第２の接続先ＣＵＧポート番号の正当性の確認を前記前記第２のデータベースに登録されている前記第２の受け側ＣＵＧポート番号と一致することで回線接続することを特徴としている。
【００１５】
更に、上記の第２の非公開通信におけるセキュリティ確保方法において、前記クライアントは、前記サーバーＩＰアドレスと前記クライアントポート番号とをキーとする前記第１のデータベースに登録された前記第２の接続先ＣＵＧポート番号が未接続のまま予め決められた時間以上使用されなければ前記第１のデータベースから該当する前記サーバーＩＰアドレスとクライアントポート番号とをキーとする行を削除し、前記サーバーは、前記クライアントＩＰアドレスと前記クライアントポート番号とをキーとする前記第１のデータベースに登録された第２の受け側ポート番号が未接続のまま予め決められた時間以上使用されなった場合に前記第２のデータベースから該当する前記クライアントＩＰアドレスと前記クライアントポート番号とをキーとする行を削除することを特徴としている。
【００１６】
更に、上記の第２の非公開通信におけるセキュリティ確保方法において、前記クライアントは、再接続を含む回線接続時に、前記第１のデータベースに相手先となるＣＵＧポート番号が登録されていなけれれば前記第１の関数で算出した前記第１の接続先ポート番号とすると共にランダムに算出したクライアントポート番号を送信元のクライアントポート番号とし、前記第１のデータベースに相手先となるＣＵＧポート番号が登録されかつ登録されているクライアントポート番号中で現在使用されていないものが存在すれば前記第１のデータベースから抽出したＣＵＧポート番号を前記第２の接続先ＣＵＧポート番号とすると共に前記第１のデータベースから抽出したクライアントポート番号を前記送信先のクライアントポート番号とし、前記第１のデータベースに相手先となるＣＵＧポート番号が登録されかつ登録されているクライアントポート番号中で現在使用されていないものが存在しなければ前記第１のデータベースから抽出したＣＵＧポート番号を前記第２の接続先ＣＵＧポート番号とすると共にランダムに算出したクライアントポート番号を前記送信元のクライアントポート番号としている。
【００１７】
更に、上記の第１または第２の非公開通信におけるセキュリティ確保方法において、前記第１の関数は、前記サーバーと前記クライアントとの間で同期した時間を基に変動値になるように構成された関数であることを特徴としている。
【００１８】
また、本発明の第１の非公開通信におけるセキュリティ確保方式は、ＴＣＰ／ＩＰプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方式であって、前記クライアントは、前記サーバーへのＣＵＧの回線接続要求時に予め決められた第１の関数を利用して算出した第１の接続先ＣＵＧポート番号を用いることで回線接続する第１の接続手段と、前記サーバーとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号を基に変動値となるように構成された第２の関数を利用して算出した第２の接続先ＣＵＧポート番号を接続開放先のサーバーＩＰアドレスと開放する自分のクライアントポート番号とがキーとなるように登録する第１の登録手段と、前記サーバーへの接続を再度行う場合に前記第１のデータベースに登録されている前記第２の接続先ＣＵＧポート番号を用いることで回線接続する第１の再接続手段と、を有することを特徴としている。
【００１９】
更に、上記の第１の非公開通信におけるセキュリティ確保方式において、前記サーバーは、前記クライアントからの接続要求受信時にＴＣＰヘッダから抽出した前記第１の接続先ＣＵＧポート番号の正当性の確認を前記第１の関数で算出した第１の受け側ＣＵＧポート番号と一致することで回線接続する第２の接続手段と、前記クライアントとの間で回線の開放を行う場合に前記第２の関数を利用して算出した第２の受け側ＣＵＧポート番号を接続開放先のクライアントＩＰアドレスと前記クライアントポート番号とがキーとなるように登録する第２の登録手段と、前記クライアントからの再接続要求受信時にＴＣＰヘッダから抽出した前記第２の接続先ＣＵＧポート番号の正当性の確認を前記前記第２のデータベースに登録されている前記第２の受け側ＣＵＧポート番号と一致することで回線接続する第２の再接続手段と有することを特徴としている。
【００２０】
また、本発明の第２の非公開通信におけるセキュリティ確保方式は、ＴＣＰ／ＩＰプロトコルの基で複数のクライアントとサーバーとの間で通信を行う非公開通信におけるセキュリティ確保方式であって、前記サーバーは、前記クライアントからの接続要求受信時にＴＣＰヘッダから抽出したＣＵＧポート番号の正当性の確認を予め決められた第１の関数で算出した第１の受け側ＣＵＧポート番号と一致することで回線接続する第２の接続手段と、前記クライアントとの間で回線の開放を行う場合に回線開放直前のサービスデータのシーケンス番号基に変動値となるように構成された第２の関数を利用して算出した第２の受け側ＣＵＧポート番号を接続開放先のクライアントＩＰアドレスと前記クライアントポート番号とがキーとなるように登録する第２の登録手段と、前記クライアントからの再接続要求受信時にＴＣＰヘッダから抽出したＣＵＧポート番号の正当性の確認を前記前記第２のデータベースに登録されている前記第２の受け側ＣＵＧポート番号と一致することで回線接続する第２の再接続手段と有することを特徴としている。
【００２１】
更に、上記の第１の非公開通信におけるセキュリティ確保方式において、前記クライアントは、前記サーバーＩＰアドレスと前記クライアントポート番号とをキーとする前記第１の登録手段で登録された前記第２の接続先ＣＵＧポート番号が未接続のまま予め決められた時間以上使用されなければ前記第１の登録手段で登録された該当する前記サーバーＩＰアドレスとクライアントポート番号とをキーとする行を削除する第１の削除手段を有することを特徴としている。
【００２２】
更に、上記の第１または第２の非公開通信におけるセキュリティ確保方式において、前記サーバーは、前記クライアントＩＰアドレスと前記クライアントポート番号とをキーとする前記第２の登録手段で登録された第２の受け側ポート番号が未接続のまま予め決められた時間以上使用されなった場合に前記第２の登録手段で登録された該当する前記クライアントＩＰアドレスと前記クライアントポート番号とをキーとする行を削除する第２の削除手段とを有することを特徴としている。
【００２３】
更に、上記の第１の非公開通信におけるセキュリティ確保方式において、前記第１の接続手段は、再接続を含む回線接続時に、前記第１の登録手段で登録された相手先となるＣＵＧポート番号が存在しなければ前記第１の関数で算出した前記第１の接続先ポート番号とすると共にランダムに算出したクライアントポート番号を送信元のクライアントポート番号として前記サーバに対して回線接続要求を行う手段を有し、前記第１の接続手段は、再接続を含む回線接続時に、前記第１の登録手段で登録された相手先となるＣＵＧポート番号が存在しかつ登録されているクライアントポート番号中で現在使用されていないものが存在すれば前記第１のデータベースから抽出したＣＵＧポート番号を前記第２の接続先ＣＵＧポート番号とすると共に前記第１の登録手段から抽出したクライアントポート番号を前記送信先のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段と、前記第１の登録手段で登録された相手先となるＣＵＧポート番号が存在しかつ登録されているクライアントポート番号中で現在使用されていないものが存在しなければ前記第１の登録手段から抽出したＣＵＧポート番号を前記第２の接続先ＣＵＧポート番号とすると共にランダムに算出したクライアントポート番号を前記送信元のクライアントポート番号として前記サーバーに対して回線接続要求を行う手段と、を有することを特徴としている。
【００２４】
更に、上記の第１または第２の非公開通信におけるセキュリティ確保方式において、前記第１の関数は、前記サーバーと前記クライアントとの間で同期した時間を基に変動値となるように構成された関数であることを特徴としている。
【００２５】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して、説明する。
【００２６】
図１を参照すると、本発明の実施の形態は、最低１台のサーバー側コンピュータ１と、複数のクライアント側コンピュータ２と、ネットワーク９００とから構成される。なお、サーバー側コンピュータ１およびクライアント側コンピュータ２は、ネットワーク９００と接続する図示していないインタフェース部をそれぞれ実装しており、サーバー側コンピュータ１とクライアント側コンピュータ２との通信は、それぞれのインタフェース部およびネットワーク９００を介してＩＰプロトコルの基で行われる。
【００２７】
図１のサーバー側コンピュータ１は、図示していないプロセッサ（ＣＰＵ）によりプログラム制御で動作するコンピュータであって、そのコンピュータがＣＵＧ（Ｃｌｏｓｅｄ  Ｕｓｅｒ  Ｇｒｏｕｐ：クローズドユーザグループ）のアプリケーションを実行する場合にＴＣＰ／ＩＰプロトコルに伴うプログラムを実行した場合のコンピュータ内の機能ブロックを示すと、ＣＵＧのアプリケーション実行部であるアプリケーション部１１と、ＴＣＰ処理部１２と、ＩＰ処理部１３と、データベース１４とから構成される。また、サーバー側コンピュータ１は、ＣＵＧサービスを行っている。なお、ＣＵＧとは、特定のグループのメンバーだけがサーバーを利用できる情報サービスのことである。
【００２８】
図１のクライアント側コンピュータ２は、図示していないプロセッサ（ＣＰＵ）によりプログラム制御で動作するコンピュータであって、そのコンピュータがＴＣＰ／ＩＰプロトコルに伴うプログラムを実行した場合のコンピュータ内の機能ブロックを示すと、アプリケーション部２１と、ＴＣＰ処理部２２と、ＩＰ処理部２３とから構成される。
【００２９】
図１２を参照すると、サーバー側コンピュータ１のデータベース１４の構成を示し、ＴＣＰ処理部１２がＣＵＧ対応のポート番号の管理に使用する。このデータベース１４は、図示していない記憶部（例えば、不揮発性の磁気ディスク装置、揮発性のＲＡＭ等）内のエリアに割り当てられており、クライアント側のコンピュータ２のＩＰアドレス毎に、サーバー側のＣＵＧ対応のポート番号とクライアント側のポート番号とからなるポート番号、切断されていない時間を管理するタイムスタンプと、接続の状態を（接続：ＯＮ、切断：ＯＦＦまたは「０」値）示す接続状態とを含んでいる。最初、クライアント側コンピュータ２からＣＵＧ対応のポート番号に接続されてサーバー側から切断されると、そのクライアント側コンピュータ２のＩＰアドレス対応の各項目のエリアに登録される。クライアント側コンピュータ２から再接続されて前回使用したＩＰアドレスが登録されている場合には、データベース１４に登録されているポート番号に基づいて受信パケットに搭載されているポート番号の正当性チェックに利用される。
【００３０】
図１３を参照すると、クライアント側コンピュータ２のデータベース２４の構成を示し、ＴＣＰ処理部２２がＣＵＧ対応のポート番号の管理に使用する。このデータベース２４は、図示していない記憶部（例えば、不揮発性の磁気ディスク装置、揮発性のＲＡＭ等）内のエリアに割り当てられており、サーバー側コンピュータ１のＩＰアドレスに、サーバー側コンピュータ１のＣＵＧ対応のポート番号とクライアント側コンピュータ２のポート番号とからなるポート番号、切断されていない時間を管理するタイムスタンプと、接続の状態を（接続：ＯＮ、切断：ＯＦＦまたは「０」値）示す接続状態とを含んでいる。最初、クライアント側コンピュータ２からＣＵＧ対応のポートに接続してサーバー側コンピュータ１から切断されると、そのサーバー側コンピュータ１のＩＰアドレス対応の各項目のエリアに登録される。クライアント側コンピュータ２から再接続する場合に前回使用したＩＰアドレスが登録されていると、データベース２４に登録されているポート番号が、送信パケットに搭載するＴＣＰポート番号として利用される。
【００３１】
次に、図１〜図１１を参照して、本発明の実施の形態の動作について説明する。
【００３２】
先ず、図２を参照すると、ＣＵＧサービスに関する手続をサーバー側コンピュータ１とクライアント側コンピュータ２との間で終了した後に、このＣＵＧサービスを初めてサーバー側コンピュータ１とクライアント側コンピュータ２と間でＴＣＰ／ＩＰ通信を開始する場合、図１のサーバー側コンピュータ１に対してクライアント側コンピュータ２が接続要求してアプリケーションレベルでのデータ通信を行うまでの状態遷移を示した状態遷移概略図である。両者間はＴＣＰ／ＩＰを用いたクライアント・サーバー通信を行っている。この図２および図８を中心に、ＣＵＧサービスに関する手続をサーバー側コンピュータ１とクライアント側コンピュータ２との間で終了した後に、このＣＵＧサービスを初めてサーバー側コンピュータ１とクライアント側コンピュータ２とがＴＣＰ／ＩＰ通信を開始する場合の動作を説明する。
【００３３】
ＣＵＧ内のクライアント側コンピュータ２からサーバー側コンピュータ１へアプリケーションによる通信を行う場合、クライアント側コンピュータ２のアプリケーション部２１からＴＣＰ処理部２２に内部通信経路６１が作られる。このときＴＣＰ処理部２２は、送信元のクライアント側コンピュータ２のポート番号であるＰＯＲＴａおよび送信先のサーバー側コンピュータ１のＣＵＧ対応のポート番号を定義し、内部通信経路６２を経由してＩＰ処理部２３へ通信メッセージ（この場合ＴＣＰパケット）を転送する。その後ＩＰ処理部２３により、送信元のＩＰアドレス、送信先のＩＰアドレス等のＩＰヘッダを通信メッセージ（この場合ＴＣＰパケット）に付加することでＩＰパケットを作成して、クライアント側コンピュータ２からＣＵＧ対応のアプリケーションへの仮想回線確立要求７０が通信路（ネットワーク９００）を経由してサーバー側コンピュータ１に伝達される（図６のステップＳ３００，Ｓ４０１）。（図２―１の途中）。
【００３４】
サーバー側コンピュータ１では、クライアント側コンピュータ２で経由した全く逆の流れに従ってサーバー側コンピュータ１のＴＣＰ処理部１２に定められているサーバー側待ち受けＣＵＧ対応のポート番号であるＸに内部通信経路６２を経て接続する。この場合、サーバー側ＴＣＰ処理部１２の受信処理で仮想回線確立要求のＣＵＧ対応のポート番号の正当性を確認することで、正しくサーバー側待ち受けポート番号「Ｘ」を指定したクライアント側コンピュータ２からの通信のみがサーバー側アプリケーション部１１に接続される。更に、サーバー側ＴＣＰ処理部１２は、ＩＰ処理部１３を介して仮想回線確立応答７１をクライアント側コンピュータ２に返信する。すると、クライアント側コンピュータ２のＩＰ処理部２３は、内部通信経路６２、６１を介してアプリケーション部２１にサーバー側コンピュータ１との通信パスが確立したことを通知する。すなわち、クライアント・サーバー通信が成り立つ。この場合、サーバー１コンピュータから応答を受信したクライアント側コンピュータ２のＴＣＰ処理部２２は、接続情報（接続したサーバーＩＰアドレス、クライアントポート番号、ＣＵＧポート番号を登録し、タイムスタンプを「０」、接続状態を「ＯＮ」に設定）をデータベース２４に登録する（ステップＳ１００，Ｓ２０１，Ｓ４０２）（図２−１の状態）。なお、以降の説明では、回線確立要求を仮想回線接続要求と呼ぶことがある。
【００３５】
この処理後、他のＣＵＧのクライアント側コンピュータ２との通信を待ち受けるために、サーバー側コンピュータ１のＴＣＰ処理部１２は、コネクション確立後クライアント側コンピュータ２のポート番号「ＰＯＲＴａ」と接続していることを認識するためにサーバー側コンピュータ１のポート番号としてＸ，ＰＯＲＴａを新たに定義してデータベース１４内の接続先のクライアント側コンピュータ２のＩＰアドレスを登録すると共にそのＩＰアドレスに対応するポート番号エリアに登録し、更に、タイムスタンプエリアを「０」を設定し、接続状態を「ＯＮ」に設定して管理する（ステップＳ２０２）。この場合、論理的には、サーバー側待ち受けＣＵＧ対応のポート番号「Ｘ」を開放してポート番号「Ｘ，ＰＯＲＴａ」に接続し直したのと同等の処理になる。この状態で、サーバー側コンピュータ１とクライアント側コンピュータ２との間でアプリケーションデータ要求７２、アプリケーションデータ応答７３が伝播され所定の通信が実施される（ステップＳ５００）。（図２−２の状態）。
【００３６】
なお、ステップＳ５００での各ＴＣＰ処理部では、それぞれのアプリケーション部およびＩＰ処理部とのやり取りを行いながら、送信する場合は、ＴＣＰヘッダに通信パスが張られたポート番号（サーバー側：Ｘ，クライアント側：ＰＯＲＴａ）、シーケンス番号（バイト単位毎に増えていく）、確認応答番号等を設定し、受信する場合は、それらを抽出し確認（シーケンス番号等のチェック）を取りながら動作する。
【００３７】
上記のステップＳ４０１のクライアント側コンピュータ２からの仮想回線接続要求をサーバー側コンピュータ１のＴＣＰ処理部１２が受信した場合のステップＳ１００における処理を、図７を中心に説明する。
【００３８】
ＴＣＰ処理部１２は、データベース１４に仮想回線接続要求のあったクライアント側コンピュータ２のＩＰアドレスが（この場合受信したＩＰヘッダから抽出）登録されているかを確認する（図７のステップＳ１０１，Ｓ１０２）。
【００３９】
ステップＳ１０２において、最初であるため登録されていないので、仮想回線接続要求メッセージのＴＣＰヘッダから抽出したサーバー側ＣＵＧ対応のポート番号とサービスリストに登録されているＣＵＧポート番号とが同じ（一致）するかを確認する（ステップＳ１０８，Ｓ１０９）。なお、以降の説明では、サーバー側コンピュータ１のＣＵＧ対応のポート番号を略してＣＵＧポート番号と呼ぶ場合がある。
【００４０】
ステップＳ１０９において、一致すれば、ＴＣＰ処理部１２は、仮想回線接続処理（アプリケーション１１への通知等）を行い、図６のステップＳ２０１へ進み、一致しなければ、切断処理を行い、終了する（ステップＳ１０８，Ｓ１０９，Ｓ１０７）。
【００４１】
なお、ステップＳ１０２において、登録されている場合には、ＴＣＰ処理部１２は、仮想回線接続要求メッセージのＴＣＰヘッダから抽出した送信先であるＣＵＧポート番号とデータベース１４に確認したＩＰアドレスのエリアのＣＵＧポート番号とが同じ（一致する）かを、確認する（ステップＳ１０３，Ｓ１０４）。
【００４２】
ステップＳ１０４で一致すると、ＴＣＰ処理部１２は、仮想回線接続要求メッセージのＴＣＰヘッダから抽出した送信元であるクライアントポート番号とデータベース１４に確認したＩＰアドレスのエリアのクライアントポート番号とが同じ（一致する）かを、確認する（ステップＳ１０５，Ｓ１０６）。
【００４３】
ステップＳ１０６において、一致すれば、ＴＣＰ処理部１２は、仮想回線接続処理（アプリケーション１１への通知等）を行い、図６のステップＳ２０１へ進む（ステップＳ１０７）。
【００４４】
ステップＳ１０６において、一致しなければＴＣＰ処理部１２は、ステップＳ１０２において終了する（ステップＳ１１１，Ｓ１１２）。
【００４５】
ステップＳ１０４において、一致しなければ、ＴＣＰ処理部１２は、ステップＳ１０２で一致したＩＰアドレスの行をデータベース１４から削除処理を行い、終了する（ステップＳ１１０，Ｓ１１２）。
【００４６】
なお、上記の説明において、ステップＳ１０４において、ＣＵＧポート番号が一致した後、ＴＣＰ処理部１２がステップＳ１０５，Ｓ１０６によりクライアントポート番号のチェックを行ったが、クライアントコンピュータ２から新たなクライアントポート番号を使用してＣＵＧサービスを受けるために接続してきたものと判断するために、ＴＣＰ処理部１２がステップＳ１０５，Ｓ１０６の処理を行わないで仮想回線接続の処理を行うようにしても良い。
【００４７】
上記のステップＳ３００における仮想回線接続要求処理は、以下のようになる。
【００４８】
アプリケーション部２１から接続要求を受けたクライアント側コンピュータ２のＴＣＰ処理部２２は、データベース２４にＣＵＧポート番号が登録されていないかを確認する（図８のステップＳ３０１，Ｓ３０２）。
【００４９】
最初の通信であるため、データベース２４に登録されていないので、ＴＣＰ処理部２２は、関数ｆｎ（以降で説明）でサーバー側のＣＵＧポート番号を算出し、更にクライアント側のポート番号を算出（この場合は、ランダムに算出）してそれぞれ算出したＣＵＧポート番号、クライアント側コンピュータ２のポート番号等をＴＣＰヘッダに設定して、サブルーチンを終了する（ステップＳ３０４）。この場合、再接続の場合でも、データベース２４の登録されていない場合があると、ＴＣＰ処理部２２は、ステップＳ３０４実行することになり、最初の通信の場合と同じように動作する。
【００５０】
ＴＣＰ／ＩＰ通信では、通信が論理的に常時接続されておらずクライアント側コンピュータ２からの要求がサーバー側コンピュータ１からの応答で完了した場合、両者間の仮想回線が開放される。しかしながら一定時間内の再接続であればサーバー側コンピュータ１はクライアント側コンピュータ２の通信履歴をデータベース１４に保持しており、後にクライアント側コンピュータ２から伝達される仮想回線確立要求７０を受け付ける。本発明では、悪意の第三者にサーバー側待ち受けポート番号Ｘが悟られないようにサーバー側コンピュータ１とクライアント側コンピュータ２が独自に何の事前通知や変更通知も行わず、サーバー側コンピュータ１の待ち受けポート番号「Ｘ」を算定して通信を実施している。
【００５１】
以上説明したように、本方式によるクライアント・サーバー通信の機能・動作をまとめると以下のようになる。
【００５２】
なお、本方式では通常のＴＣＰ／ＩＰにおけるメカニズムを踏襲しているため、ＩＰアドレス、ポート番号を使用する基本的な通信動作（ＴＣＰ／ＩＰパケットの作成およびクライアント・サーバー間のパケットのやり取り）には差異がない。
【００５３】
図２に示すように、サーバー側コンピュータ１においてはクライアント側コンピュータ２からの仮想回線接続を受け付けるＣＵＧ対応のポート番号がＲＦＣ１０６０に定義された公のポート番号範囲外でかつ動的に可変するポート番号「Ｘ」となっている。当然ながら接続要求時のＩＰアドレスは正しいサーバー側コンピュータ２のＩＰアドレス指定が前提である。
【００５４】
このポート番号「Ｘ」部分は従来のＴＣＰ／ＩＰ通信で一例を示せば、ポート番号「８０」となり、これはアプリケーションとしてＨＴＴＰを用いることを示している。
【００５５】
このように従来方式では公のポート番号を明示することにより公の利用が可能であるが、ＣＵＧ内の当事者だけで利用することを目的とした場合、通信を非公開に留めることが出来ない。
【００５６】
この問題点の改善として本方式の特徴はサーバー側コンピュータ１の仮想回線接続受付のＣＵＧ対応のポート番号がＣＵＧ以外には非公開となっている点と、およびこのＣＵＧポート番号がＴＣＰ／ＩＰ通信ごとに動的に可変させる機能を持たせる。これによりＣＵＧ以外の第三者には判定ができないことになる。
【００５７】
図２−２を参照すると、サーバー側コンピュータ１がクライアント側コンピュータ２からの仮想回線接続を受け付けた後のポート番号状態を示す。仮想回線が接続されるとサーバー側コンピュータ１においては新たに「Ｘ，ＰＯＲＴａ」なるポート番号を設けクライアント側コンピュータ２とのＴＣＰ／ＩＰ通信を実施する。尚、「Ｘ，ＰＯＲＴａ」は「Ｘ」ポート番号で接続された「ＰＯＲＴａ」ポート番号通信と認識される。
【００５８】
また、ポート番号だけの通信では複数のクライアントコンピュータ２が存在する場合、ポート番号の重複もあり得るため、サーバー側コンピュータ１ではＣＵＧ各クライアントコンピュータ２のＩＰアドレスも同時に識別し各クライアント通信をユニークに区別している。
【００５９】
次に、図４のシーケンス図を参照して、メッセージのシーケンスの動作について説明する。図４のシーケンス動作は、仮想回線を接続する動作期間（シーケンスＡ１１０）と、アプリケーションのデータのやり取りを行うアプリケーション通信期間（シーケンスＡ１２０）と、仮想回線を切断する動作期間（シーケンスＡ１３０）とから成り立ち、仮想回線期間を接続する動作期間から説明する。
【００６０】
クライアント側コンピュータ２から始点（クライアント側コンピュータ２）のポート番号は「ＰＯＲＴａ」，終点（サーバー側コンピュータ１）のＣＵＧポート番号は「Ｘ」のパラメータを持った仮想回線接続要求を示すＳＹＮメッセージ（ＳＹＮパケット）がサーバー側コンピュータ１に送信される（図４のシーケンスＡ１０１）。
【００６１】
サーバー側コンピュータ１はＳＹＮメッセージの応答として仮想回線接続要求受信有効を示すＳＹＮ，ＡＣＫメッセージ（ＳＹＮ，ＡＣＫパケット）をクライアント側コンピュータ２へ送信する（シーケンスＡ１０２）。この時は始点（サーバー側コンピュータ１）のＣＵＧポート番号は「Ｘ」，終点（クライアント側コンピュータ２）のポート番号は「ＰＯＲＴａ」となる。
【００６２】
最後にクライアント側コンピュータ２はＳＹＮ，ＡＣＫメッセージの応答として受信確認有効を示すＡＣＫメッセージ（ＡＣＫパケット）をサーバー側コンピュータ１へ送信する。この時は終点（サーバー側コンピュータ１）のＣＵＧポート番号は「Ｘ」，始点（クライアント側コンピュータ２）のポート番号は「ＰＯＲＴａ」となる（シーケンスＡ１０３）。
【００６３】
仮想回線期間を切断する動作期間については、サーバー側コンピュータ１から始点（サーバー側コンピュータ１）のＣＵＧポート番号は「Ｘ」，終点（クライアント側コンピュータ２）のポート番号は「ＰＯＲＴａ」のパラメータを持った仮想回線切断要求を示すＦＩＮメッセージ（ＦＩＮパケット）がクライアント側コンピュータ２に送信される（シーケンスＡ１３１）。
【００６４】
クライアント側コンピュータ２はＦＩＮメッセージの応答として仮想回線切断要求受信有効を示すＡＣＫメッセージ（ＡＣＫパケット）をサーバー側コンピュータ１へ送信する（シーケンスＡ１３２）。この時は始点（クライアント側コンピュータ２）のポート番号は「ＰＯＲＴａ」，終点（サーバー側コンピュータ１）のＣＵＧポート番号は「Ｘ」となる。これによりサーバー側コンピュータ１からの仮想回線が切断されたことになる。
【００６５】
ＴＣＰ／ＩＰは全ニ重通信であるため、クライアント側コンピュータ２からも仮想回線切断を行う必要があり、このためクライアント側コンピュータ２から始点（クライアント側コンピュータ２）のポート番号は「ＰＯＲＴａ」，終点（サーバー側コンピュータ１）のＣＵＧポート番号は「Ｘ」のパラメータを持った仮想回線切断要求を示すＦＩＮメッセージがサーバー側コンピュータ１に送信される（シーケンスＡ１３３）。
【００６６】
サーバー側コンピュータ１はＦＩＮメッセージの応答として仮想回線切断要求受信有効を示すＡＣＫメッセージをクライアント側コンピュータ２へ送信する（シーケンスＡ１３４）。この時は始点（サーバー側コンピュータ１）のＣＵＧポート番号は「Ｘ」，終点（クライアント側コンピュータ２）のポート番号は「ＰＯＲＴａ」となる。これによりクライアント側コンピュータ２からの仮想回線が切断されたことになり、全ニ重回線の全てが切れ、サーバー側コンピュータ１とクライアント側コンピュータ２と間の通信が終了する。
【００６７】
次に、本文中で述べたサーバー側コンピュータ１のＣＵＧ対応の動的可変ポート番号「Ｘ」がどのように決められ、またＴＣＰ／ＩＰ通信ごとにどのように可変するかを述べる。
【００６８】
ＣＵＧサービスに関する手続をサーバー側コンピュータ１とクライアント側コンピュータ２との間で終了した後に、このＣＵＧサービスを初めてサーバー側コンピュータ１とクライアント側コンピュータ２との間でＴＣＰ／ＩＰ通信を開始する場合のＣＵＧポート番号の算出方法を以下に述べる。
【００６９】
サーバー側コンピュータ１のＣＵＧポート番号を「Ｘ」とすると、サーバー側コンピュータ１のＣＵＧ対応ポート番号「Ｘ」の判定方法は、サーバー側コンピュータ１のＴＣＰ処理部１２およびクライアント側コンピュータ２のＴＣＰ処理部２２が独自に判定する。
【００７０】
サーバー側コンピュータ１のＣＵＧ対応ポート番号「Ｘ」のサーバー側コンピュータ１の算出方法は、図９の日付変更時に決定される。すなわち、以下のように動作する。
【００７１】
日付が変更すると、ＴＣＰ処理部１２は、新たなＣＵＧポート番号を算出し、その算出したＣＵＧポート番号をサービスファイルに登録（以前のＣＵＧポート番号を、算出したＣＵＧポート番号に置き換える）して終了する（図９のステップ６０１、Ｓ６０２）。
【００７２】
また、サーバー側コンピュータ１のＣＵＧ対応ポート番号「Ｘ」のクライアント側の算出方法は、図６のステップＳ３００内の仮想回線接続要求処理時すなわち、図８のステップＳ３０４で算出される。
【００７３】
なお、上記の説明において、サーバー側コンピュータ１のＴＣＰ処理部１２およびクライアント側コンピュータ２のＴＣＰ処理部２２とも、「Ｘ」＝ｆｎ（Ｚ）なる関数ｆｎを用いて判定する。
【００７４】
関数ｆｎの定義は、演算結果が自由使用できるポート番号範囲の１０２４〜６５５３５になるように定め、例えば式１を用いる。なお、ＩＮＴは、小数点以下を切り捨て整数値化する関数であり、ＭＯＤは、引き算を示す。
【００７５】
【数１】
2004265122.tif 000003
【００７６】
また、変数Ｚも第三者に盗聴されないようにするため、サーバー側コンピュータ１、クライアント側コンピュータ２の両方が独自に知り得る値、例えば年月日や時刻などを初期値として二次的に計算して求められる方法を用いる。式１での例として年月日から求まる数字Ｚ＝（ＹＹ＋ＭＭ＋ＤＤ）〔例えば、２００３年５月１日であると、Ｚ＝２００３＋０５＋０１＝２００９〕を用いると、ポート番号最大値６５５３５の引き算値（例えば、「Ｘ」＝６５５３５−２００９＝６３５２６）をＣＵＧ対応のポート番号とする方法である。
【００７７】
ここで関数ｆｎ、変数Ｚ、ＭＯＤについては実際にＣＵＧを運用する管理者が適宜決めることが相応しく、あくまでも上記内容は例である。
【００７８】
このようにサーバー側コンピュータ１のＴＣＰ処理部１２、クライアント側コンピュータ２のＴＣＰ処理部２２が共通のポート番号演算方法を知っているため、自由使用できるポート番号範囲のあるポート番号「Ｘ」で仮想回線接続を開始することが可能となる。すなわち、関数ｆｎは、サーバー側コンピュータ１とクライアント側コンピュータ２との間で同期した時間を基に変動値（１０２４〜６５５３５の値）になるように構成されていることになる。
【００７９】
次にサーバー側コンピュータ１とクライアント側コンピュータ２と間でＴＣＰ／ＩＰ通信をすでに実行していて再接続する場合の動作について以下に述べる。
【００８０】
ポート番号をＴＣＰ／ＩＰ通信ごとに可変させる方式であるが、第三者にポート番号の盗聴防止のため、可変させる契機についてもサーバー側コンピュータ１、クライアント側コンピュータ２が新たなポート番号を確認するための何らかの通信を行わなくても判定できる方法を実施する。
【００８１】
図２に示すようにクライアント側コンピュータ２からサーバー側コンピュータ１へ仮想回線接続要求が確立した後、サーバー側コンピュータ１からクライアント側コンピュータ２に要求したデータが送信されるが、このときサーバー側コンピュータ１からのデータ転送のバイト数を確認するためにシーケンス番号（ＳＱ番号）が必ずクライアント側コンピュータ２に送信され、通信が行なわれる間は、サーバー側コンピュータ１とクライアント側コンピュータ２が同じ内容を保有することが可能である。
【００８２】
このシーケンス番号の意味は、サーバー側コンピュータ１においては送信したデータのバイト数を示し、クライアント側コンピュータ２においては受信すべきデータのバイト数を表している。従って図５に示す様に仮想回線における通信過程で常に含まれている情報となる。
【００８３】
このシーケンス番号を用いてポート番号可変動作を行わせる。尚、これは通常のＴＣＰ／ＩＰ通信手順を一切の変更無く利用して行うことが可能である。また改めて可変したポート番号を連絡する通信を行う必要が無いため、第三者に可変させるポート番号を盗聴されることがない。
【００８４】
このシーケンス番号を利用して、ポート番号を可変させる方法としてはＴＣＰ／ＩＰ通信が終了した時点で示されたＳＱ番号を元に両者が予め知っているＣＵＧ内で定義された変換式ｆｘに当てはめ、新たなポート番号を算定する。
【００８５】
例えば変換式ｆｘの一例として、新しいポート番号を「Ｙ」とすると、「Ｙ」＝ｆｘとなる。すなわち、サーバー側コンピュータ１のアプリケーション、クライアント側コンピュータ２のＣＵＧアプリケーションが共通して下記の変換式を知っている為、式２で求めることが出来る。なお、ＩＮＴは、週数点以下を切り捨て整数化する関数であり、ＭＯＤは、引き算を示す。
【００８６】
【数２】
2004265122.tif 000004
【００８７】
ＳＱ番号（シーケンス番号）はバイト数を表しており、式２の中のＳＱはＫＢ換算（端数は切り上げとする）する。例として２０５０バイトであれば、３ＫＢとなり、ポート番号最大値６５５３５からの引き算値（例えば、「Ｙ」＝６５５３５−３＝６５５３２）を新ポート番号とする方法である。ここで関数ｆｘ、変数ＳＱ、ＭＯＤについては実際にＣＵＧを運用する管理者が適宜決めることが相応しく、あくまでも上記内容は例である。
【００８８】
ここで変換式については実際にＣＵＧを運用する管理者が適宜決めることが相応しく、あくまでも上記内容は例である。すなわち、関数ｆｘは、仮想回線開放直前のサービスデータ（アプリケーション部１１とアプリケーション２１との間で転送される最後のデータ）のシーケンス番号を基に変動値（１０２４〜６５５３５の値）となるように構成されていることになる。以上の点を考慮したのが、図６のフローチャートである。
【００８９】
次に図６を中心に説明する。なお、接続し、アプリケーションレベルでデータのやり取りを行う動作については、上記の図２と図６の説明で説明した通りであるが、サーバー側コンピュータ１からの仮想回線開放要求の動作は以下のようになる。
【００９０】
サーバー側コンピュータ１のアプリケーション部１１からクライアント側アプリケーション部２１への仮想回線開放要求があると、ＴＣＰ処理部１２は、ＩＰ処理部１３、ネットワーク９００を介して、クライアント側コンピュータ２に送信する（ステップＳ２０３）。
【００９１】
ＩＰ処理部２３を介して仮想回線開放要求を受信したクライアント側コンピュータ２のＴＣＰ処理部２２は、開放通知をアプリケーション部２１に通知し、回線開放直前のＳＱ番号からサーバー側コンピュータ１の新しい番号を変換式ｆｘで算出すると共に、アプリケーション部２１からのサーバー側コンピュータ１への仮想回線開放要求をＩＰ処理部２３、ネットワーク９００を介して、サーバー側コンピュータ１に送信する（図６のステップＳ４０３）。
【００９２】
ＩＰ処理部１３を介して仮想回線開放要求を受信したサーバー側コンピュータ１のＴＣＰ処理部１２は、仮想回線開放通知をアプリケーション部１１に通知し、回線開放直前のＳＱ番号からサーバー側コンピュータ１の新しいＣＵＧポート番号を変換式ｆｘで算出する（ステップＳ２０４）。
【００９３】
更に、ＴＣＰ処理部１２は、ステップＳ２０４で算出した新しいポート番号、タイムスタンプ（「０」値）、接続状態（ＯＦＦ）をデータベース１４内の開放するクライアントＩＰアドレスとクライアントポート番号とをキーとした接続状態エリアに登録し終了する（ステップＳ２０５）。
【００９４】
一方、クライアント側コンピュータ２のＴＣＰ処理部２２は、ステップＳ４０３で算出した新しいＣＵＧポート番号、タイムスタンプ（「０」値、接続状態（ＯＦＦ）をデータベース２４内の開放するサーバーＩＰアドレスとクライアントポート番号とをキーとした接続状態エリアに登録し終了する（ステップＳ２０５）。
【００９５】
すなわち、算出した新しいＣＵＧポート番号「Ｙ」は、サーバー側およびクライアント側のそれぞれのデータベースに通信相手のＩＰアドレスとクライアントポート番号と共に記憶させることになる。
【００９６】
但しこのＣＵＧポート番号「Ｙ」の値を保持し続けるとデータベース１４のメモリ容積を圧迫するため、一定時間経過後までに新しいＴＣＰ／ＩＰ通信が実施されない場合にＣＵＧポート番号「Ｙ」をクリアするためのタイマ機能をサーバー側コンピュータ１、クライアント側コンピュータ２の両方に持たせる。その場合の動作を以下に示す。
【００９７】
予め決められた時間間隔（例えば、１分）で割り込みを発生する図示していないタイマにより、割り込みが発生すると、サーバー側コンピュータ１のＴＣＰ処理部１２は、データベース１４内で、接続状態が「ＯＦＦ」になっているＩＰアドレスのタイムスタンプを＋１カウントアップする（図１０のステップＳ７０１）。
【００９８】
ＴＣＰ処理部１２は、カウントアップしたタイムスタンプが予め決められた値（規定値）以上かの確認を行う（ステップＳ７０２，Ｓ７０３）。
【００９９】
ステップＳ７０３において、規定値以上であれば、ＴＣＰ処理部１２は、規定値以上であれば、規定値以上になったクライアントＩＰアドレスとクライアントポート番号をキーとした行を削除（データベース１４から該当するＩＰアドレス１行削除）して終了し、規定値以上でなければ、そのまま終了する（ステップＳ７０４）。
【０１００】
一方、クライアント側コンピュータ２でも予め決められた時間間隔（例えば、１分）で割り込みを発生する図示していないタイマにより、割り込みが発生すると、クライアント側コンピュータ２のＴＣＰ処理部２２は、データベース２４内で、接続状態が「ＯＦＦ」になっているＩＰアドレスのタイムスタンプを＋１カウントアップする（図１１のステップＳ８０１）。
【０１０１】
ＴＣＰ処理部２２は、カウントアップしたタイムスタンプが予め決められた値（規定値）以上かの確認を行う（ステップＳ８０２，Ｓ８０３）。
【０１０２】
ステップＳ８０３において、規定値以上であれば、ＴＣＰ処理部２２は、規定値以上になったサーバーＩＰアドレスとクライアントポート番号とをキーとした行を削除（データベース２４から該当するＩＰアドレス１行削除）して終了し、規定値以上でなければ、そのまま終了する（ステップＳ８０４）。
【０１０３】
従ってタイムスタンプの値が規定値以上になると、それぞれのデータベースに登録されている通信相手のＩＰアドレスとクライアントポート番号をキーとする行がクリアされることになり、次回クライアント側コンピュータ２がＣＵＧサービスを受ける場合、年月日から演算により求めたＣＵＧポート番号「Ｘ」が使用されることになる。
【０１０４】
従って本方式でのＴＣＰ／ＩＰ通信において利用するＣＵＧポート番号は、下記の２通りとなる。
【０１０５】
ＣＵＧポート番号クリアタイマ未動作（タイムスタンプが規定以上でない）の場合の場合は、式２による（ポート番号「Ｙ」）。
【０１０６】
ＣＵＧポート番号クリアタイマ動作（タイムスタンプが規定以上でない）の場合には、式１による（ポート番号「Ｘ」）。
【０１０７】
次に、図３を参照すると、ＣＵＧサービスの継続処理のために再接続してサーバー側コンピュータ１とクライアント側コンピュータ２との間でＴＣＰ／ＩＰ通信を開始する場合、図１のサーバー側コンピュータ１に対してクライアント側コンピュータ２が接続要求してアプリケーションレベルでデータの通を行うまでの状態遷移を示した状態遷移概略図である。両者間はＴＣＰ／ＩＰを用いたクライアント・サーバー通信を行っている。この図３、図６、図７、および図８を中心に、ＣＵＧサービスの継続処理のために再接続してサーバー側コンピュータ１とクライアント側コンピュータ２との間でＴＣＰ／ＩＰ通信を開始する場合の動作を以下に説明する。
【０１０８】
ＣＵＧ内のクライアント側コンピュータ２からサーバー側コンピュータ１へアプリケーションによる通信を行う場合、クライアント側コンピュータ２のアプリケーション部２１からＴＣＰ処理部２２に内部通信経路６１が作られる。このときＴＣＰ処理部２２は、データベース２４にアクセスするサーバー側コンピュータ１のＩＰアドレスが登録されているかを確認すると、登録されているのでデータベース２４に登録されているクライアントポート番号の中で接続状態が「ＯＦＦ」になっているものが存在するか（すなわち、現在使用されていないものが存在するか）を確認する（図８のステップＳ３０１〜Ｓ３０３，Ｓ３０５）。未使用があれば、ＴＣＰ処理部２２は、先に抽出したものを優先してデータベース２４からＣＵＧポート番号「Ｙ」と送信元のクライアントポート番号であるＰＯＲＴａとを抽出し、ＴＣＰヘッダに設定し、内部通信経路６２を経由してＩＰ処理部２３へ通信メッセージ（この場合ＴＣＰパケット）を転送する（ステップＳ３０６）。ステップＳ３０５において、未使用のものが存在しなければ、ＴＣＰ処理部２２は、データベース２４からＣＵＧポート番号「Ｙ」を抽出すると共に送信先のクライアントポート番号をランダムに算出してＴＣＰヘッダに設定し、内部通信経路６２を経由してＩＰ処理部２３へ通信メッセージ（この場合ＴＣＰパケット）を転送する（ステップＳ３０７）。その後ＩＰ処理部２３により、送信元のＩＰアドレス、送信先のＩＰアドレス等のＩＰヘッダを通信メッセージ（この場合ＴＣＰパケット）に付加することでＩＰレベルの通信メッセージ（この場合、ＩＰパケット）を作成して、クライアント側コンピュータ２から仮想回線確立要求７２が通信路（ネットワーク９００）を経由してサーバー側コンピュータ１に伝達される（図６のステップＳ４０１）。（図３−１の途中）。
【０１０９】
サーバー側コンピュータ１では、クライアント側コンピュータ２で経由した全く逆の流れに従ってサーバー側コンピュータ１のＴＣＰ処理部１２に定められているサーバー側待ち受けポート番号であるＹに内部通信経路６２を経て接続する。この場合、サーバー側ＴＣＰ処理部１２は、データベース１４に仮想回線接続要求のあったクライアントコンピュータ２のＩＰアドレス（受信したＩＰヘッダから抽出）が登録されているかを確認すると、登録されているので、データベース１４に確認したＩＰアドレスのエリアに仮想回線接続要求おけるＴＣＰヘッダから抽出したＣＵＧポート番号が登録されているかを確認する（図７のステップＳ１０１〜Ｓ１０４）。ステップＳ１０４で登録済みである（一致するＣＵＧポート番号が存在する）ので、ＴＣＰ処理部１２は、仮想回線接続要求メッセージのＴＣＰヘッダから抽出した送信元であるクライアント側ポート番号とデータベース１４に確認したＩＰアドレスのエリアのクライアントポート番号とが同じ（一致する）かを、確認する（ステップＳ１０５，Ｓ１０６）。ステップＳ１０６において、一致すれば、ＴＣＰ処理部１２は、仮想回線接続処理（アプリケーション１１への通知等）を行い、図６のステップＳ２０１へ進み、同じでなければ、ステップＳ１０６で一致したＩＰアドレスとステップＳ１０４で一致したクライアントポート番号とをキーとする行をデータベース１４から削除して、切断処理を行い、終了する（ステップＳ１０７，Ｓ１１１，Ｓ１１２）。このようにして受信処理で接続要求のポート番号の正当性を確認することで、正しくサーバー側待ち受けポート番号「Ｙ」を指定したクライアント側コンピュータ２からの通信のみがサーバー側アプリケーション１１に接続される。更に、サーバー側コンピュータ１のＴＣＰ処理部１２は、ＩＰ処理部１３を介して仮想回線確立応答７３をクライアント側コンピュータ２に返信する。すると、クライアント側コンピュータ２のＩＰ処理部２３は、内部通信経路６２、６１を介してアプリケーション部２１にサーバー側コンピュータ１との通信パスが確立したことを通知する。すなわち、クライアント・サーバー通信が成り立つ。この場合、サーバー１コンピュータから応答を受信したクライアント側コンピュータ２のＴＣＰ処理部２２は、接続情報（接続したサーバーＩＰアドレス、クライアントポート番号、ＣＵＧポート番号をキーとし、登録していなければ新たに登録し、そのキーに該当するタイムスタンプを「０」、接続状態を「ＯＮ」に設定：なお再接続の場合は登録済み）をデータベース２４に登録する（ステップＳ２０１，Ｓ４０２）。（図３−１の状態）。
【０１１０】
上記のステップＳ３０７をＴＣＰ処理部２２が実行する場合は、ＣＵＧサービスをサーバー側コンピュータ１から受ける場合でも１台のクライアントから複数の通信パス（複数の仮想回線）を張ることができる。
【０１１１】
上記の一連の処理の実行後、他のＣＵＧのクライアント側コンピュータ２との通信を待ち受けるために、サーバー側コンピュータ１のＴＣＰ処理部１２は、コネクション確立後クライアントコンピュータ２のポート番号「ＰＯＲＴａ」と接続していることを認識するためにサーバー側のポート番号としてＹ，ＰＯＲＴａを新たに定義してデータベース１４内の接続先のクライアント側コンピュータ２のＩＰアドレスに登録し、その該当するタイムスタンプエリアを「０」、接続状態を「ＯＮ」にすることになるが、既に登録されている場合は、該当するタイムスタンプエリアを「０」、接続状態のエリアを「ＯＮ」にし、管理する（ステップＳ２０２）。この場合、論理的には、サーバー側待ち受けポート番号「Ｙ」を開放してポート番号「Ｙ，ＰＯＲＴａ」に接続し直したのと同等の処理になる。この状態で、サーバー側コンピュータ１とクライアント側コンピュータ２との間でアプリケーションデータ要求７２、アプリケーションデータ応答７３が伝播され所定の通信が実施される（ステップＳ５００）。（図３−２の状態）。
【０１１２】
切断処理に関しては、初めての動作の場合に説明した場合の動作と同じなので説明を省略する。
【０１１３】
この場合の再接続に伴う動作シーケンスを示すと、図５のようになる。
【０１１４】
以上説明したように、制限されたクライアントコンピュータ２（ＣＵＧ）とのプライベート通信において、ＲＦＣ１０６０で公にされたウェルノウンサービス対応ポート番号を使用せずにＩＥＴＦが示している自由使用できるポート番号範囲の１０２４番以降６５５３５番までの中で、ＣＵＧ内独自に定めたサービス対応ポート番号を通信ごとに動的に可変して制定、利用してクライアント・サーバー型通信を実施するようにしているため、ＣＵＧ以外は利用することが出来ない非公開通信となると共に、悪意の第三者  が動的に変化するサービス対応ポート番号を盗聴できないようにすることが可能となる。
【０１１５】
また、独自に定めたサービス対応ポート番号を動的にサーバー側コンピュータ１で可変させる運用を行うことで、ＣＵＧのクライアントコンピュータ２それぞれ独立に非公開通信を利用できると共に、悪意の第三者  が動的に変化するサービス対応ポート番号を盗聴できないようにすることが可能となる。尚、サーバー側コンピュータ１のサービス対応ポート番号が動的に可変するため、クライアント側コンピュータ２では可変するポート番号に自動的に追従する動作を行う。
【０１１６】
また、サーバー側コンピュータ１のサービス対応ポート番号が動的に変化したことをＴＣＰ／ＩＰ通信またはＵＤＰ／ＩＰ通信を用いてサーバー側コンピュータ１からクライアント側コンピュータ２に対して一切通知しない運用を行う（このサービス対応ポート番号が変化したことを通知しない）ことにより、悪意の第三者  が動的に変化するサービス対応ポート番号を盗聴できないようにすることが可能となる。
【０１１７】
このように、動的に可変させ独自制定したサーバー側コンピュータ１のサービス対応ポート番号でＣＵＧのクライアント・サーバー型通信で運用させるため、悪意の第三者による連続ポートスキャン操作が行なわれた場合でも容易にＣＵＧサーバー側コンピュータ１のサービス対応ポート番号を見出すことが出来なくなり、クラッキング行為を早く諦めさせることが可能となる。加えて、クラッキング操作による無意味なデータ伝播量が減少し、ネットワークの帯域を正しい通信目的のためだけ利用できる。
【０１１８】
【発明の効果】
本発明は、サーバー側コンピュータの待ち受けポート番号に固定的なウェルノウンポート番号を使用せず、ＣＵＧ内部のクライアント側コンピュータだけが可変するサーバー側の待ち受けポート番号を知ることが出来る機構を有しているため、ＴＣＰ／ＩＰを用いたクライアント・サーバー型通信において制限したクライアント側コンピュータのみ利用可能なプライベート運用を行うサーバー側コンピュータを実現し、悪意の第三者によるクラッキング行為を無効にさせ、不正使用、内部データの盗用、改竄、破壊等々の発生を防止できるという効果がある。
【０１１９】
また、本発明は、一旦ＣＵＧのクライアント・サーバー型通信が開始されるとサーバー側コンピュータのポート番号が動的に可変され、クライアント側コンピュータも自動的にサーバー側コンピュータのポート番号に追従する機構を有しているため、悪意の第三者からポートスキャン操作等のクラッキング行為によるポート番号探査が行われても固定的なポート番号が見つけ出されず、クラッキング行為をより早く諦めさせることが出来るという効果がある。これによりクラッキング目的の不正パケット数が減少し、該当するサーバー側コンピュータが置かれるネットワークのトラフィック量を下げ帯域幅を正しい目的のために利用できる効果をもたらすことも可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態のシステムの構成を示すブロック図である。
【図２】本発明における初めてＣＵＧに伴う仮想回線確立から仮想回線確立の完了までの動作を示す状態遷移概略図である。
【図３】本発明における通信中の仮想回線再確立から仮想回線確立が完了するまでの動作を示す状態遷移概略図である。
【図４】本発明における初めて行う仮想回線確立、開放時におけるメッセージのやり取りの動作を示す動作シーケンス図である。
【図５】本発明における通信中の仮想回線再確立、開放時におけるメッセージのやり取りの動作を示す動作シーケンス図である。
【図６】図１のクライアント側コンピュータのアプリケーション部から仮想接続要求があった場合のクライアント側コンピュータおよびサーバー側コンピュータそれぞれのＴＣＰ処理部の動作を示すフローチャートである。
【図７】図６のサーバー側コンピュータの仮想回線接続受信処理の動作を示すサブルーチンのフローチャートである。
【図８】図６のクライアント側コンピュータの仮想回線接続要求処理の動作を示すサブルーチンのフローチャートである。
【図９】日付変更が発生した場合のサーバー側コンピュータのＴＣＰ処理部の動作を示すフローチャートである。
【図１０】タイマ割り込みが発生した場合のサーバー側コンピュータ１のＴＣＰ処理部の動作を示すフローチャートである。
【図１１】タイマ割り込みが発生した場合のクライアント側コンピュータ２のＴＣＰ処理部の動作を示すフローチャートである。
【図１２】本発明におけるサーバー側コンピュータ１のデータベースの構成例の概略を示す構成概略図である。
【図１３】本発明におけるクライアント側コンピュータ２のデータベースの構成例の概略を示す構成概略図である。
【図１４】サービスリストの一例を示すファイルの中身である。
【符号の説明】
１    サーバー側コンピュータ
２    クライアント側コンピュータ
１１，２１    アプリケーション部
１２，２２    ＴＣＰ処理部
１３，２３    ＩＰ処理部
１４，２４    データベース
６１，６２    内部通信経路
７０    仮想回線確立要求
７１    仮想回線確立応答
７２    アプリケーションデータ要求
７３    アプリケーションデータ応答
９００    ネットワーク
【図１】
2004265122.tif 000005
【図２】
2004265122.tif 000006
【図３】
2004265122.tif 000007
【図４】
2004265122.tif 000008
【図５】
2004265122.tif 000009
【図６】
2004265122.tif 000010
【図７】
2004265122.tif 000011
【図８】
2004265122.tif 000012
【図９】
2004265122.tif 000013
【図１０】
2004265122.tif 000014
【図１１】
2004265122.tif 000015
【図１２】
2004265122.tif 000016
【図１３】
2004265122.tif 000017
【図１４】
2004265122.tif 000018