(57)【要約】      （修正有）【課題】インターネットなどのネットワークを介して登録されたユーザにサービスを提供するための技法を開示する。【解決手段】クライアントとのＴＣＰ／ＩＰ接続を確立する方法は、クライアントに関連する少なくとも１つのワンタイム・データから導出されるＩＰアドレスおよびポート番号に向けられたそのクライアントからのＴＣＰ  ＳＹＮパケットを受信し、そのＴＣＰ  ＳＹＮパケットが認証されたＩＰアドレスおよびポート番号にアドレス指定されていることを確認し、そのクライアントからクライアントＩＤおよびそのワンタイム・データを備えるデータ・パケットを受信し、少なくともそのクライアントＩＤに基づいて、計算されたワンタイム・データを生成し、受信したワンタイム・データが計算されたワンタイム・データに対応することを検証する。【選択図】図２
2014132753.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークでサービスを提供する方法であって、
クライアントに関連する少なくとも１つのワンタイム・データから導出されるＩＰアドレスおよびポート番号に向けられた前記クライアントからのＴＣＰ  ＳＹＮパケットを受信するステップと、
前記ＴＣＰ  ＳＹＮパケットが認証されたＩＰアドレスおよびポート番号にアドレス指定されていることを確認するステップと、
前記クライントにＴＣＰ  ＳＹＮ−ＡＣＫパケットを送信するステップと、
前記クライアントからＴＣＰ  ＡＣＫを受信するステップと、
クライアントＩＤおよび前記ワンタイム・データを備えるデータ・パケットを前記クライアントから受信するステップと、
少なくとも前記クライアントＩＤに基づいて、計算されたワンタイム・データを生成するステップと、
前記ワンタイム・データが前記計算されたワンタイム・データに対応することを検証するステップと、
前記検証に応答して前記クライアントとのＴＣＰ／ＩＰ接続を確立するステップと
を含む方法。
【請求項２】
前記クライアントから前記ＴＣＰ  ＳＹＮパケットを受信する前記ステップのいかなる記録も記憶しないステップをさらに含む請求項１に記載の方法。
【請求項３】
前記クライアントとの接続のためのＳＹＮ−ＲＥＣＥＩＶＥＤ状態を確立しないステップをさらに含む請求項１に記載の方法。
【請求項４】
前記ＴＣＰ  ＳＹＮ−ＡＣＫパケットを前記クライアントに送信する前記ステップのいかなる記録も記憶しないステップをさらに含む請求項１に記載の方法。
【請求項５】
クライアントとの半開き接続を表すデータのデータ構造体を生成しないステップをさらに含む請求項１に記載の方法。
【請求項６】
複数のクライアントを登録して、各クライアントに固有のパスワードを前記複数のクライアントの各々に提供するステップをさらに含む請求項１に記載の方法。
【請求項７】
前記登録するステップが、ユーザＩＤを前記複数のクライアントの各々に提供するステップをさらに含む請求項６に記載の方法。
【請求項８】
前記ワンタイム・データが、前記クライアントの少なくとも１つのパスワードに適用される時間およびハッシュ関数から導出される請求項１に記載の方法。
【請求項９】
前記ＩＰアドレスおよびポート番号が、ＩＰおよびポート番号の所定の範囲と前記ワンタイム・データの関数として導出される請求項１に記載の方法。
【請求項１０】
前記確認するステップが、前記ＩＰアドレスおよびポート番号が、各ＩＰアドレスおよびポート番号のペアが単一のクライアントに特有の、周期的に変わるＩＰアドレスおよびポート番号のペアのセットの中にあることを確認するステップを含む請求項１に記載の方法。
【請求項１１】
周期的に変わるＩＰアドレスおよびポート番号の前記セット内の各ＩＰアドレスおよびポート番号が、少なくとも３０秒ごとに変わる請求項１０に記載の方法。
【請求項１２】
前記生成するステップが、
前記クライアントＩＤに基づいて前記クライアントのパスワードを取得するステップと、
前記ＴＣＰ  ＳＹＮパケットに関連する時間を取得するステップと、
前記ＴＣＰ  ＳＹＮパケットに関連する少なくとも前記時間および前記クライアントの前記パスワードの関数として前記計算されたワンタイム・データを計算するステップと
を含む請求項１に記載の方法。
【請求項１３】
ネットワークでサービスを提供するためのシステムであって、
クライアントに関連する少なくとも１つのワンタイム・データから導出されるＩＰアドレスおよびポート番号に向けられた前記クライアントからのＴＣＰ  ＳＹＮパケットを受信するように構成された、少なくとも１つのサーバと、
前記ＴＣＰ  ＳＹＮパケットが認証されたＩＰアドレスおよびポート番号にアドレス指定されていることを確認するように構成された、少なくとも１つのプロセッサと、
前記クライアントにＴＣＰ  ＳＹＮ−ＡＣＫパケットを送信するように構成された、少なくとも１つのサーバと、
前記クライアントからＴＣＰ  ＡＣＫを受信するように構成された、少なくとも１つのサーバと、
クライアントＩＤおよび前記ワンタイム・データを備えるデータ・パケットを前記クライアントから受信するように構成された、少なくとも１つのサーバと、
少なくとも前記クライアントＩＤに基づいて、計算されたワンタイム・データを生成するように構成された、少なくとも１つのプロセッサと、
前記ワンタイム・データが前記計算されたワンタイム・データに対応することを検証するように構成された、少なくとも１つのプロセッサと、
前記クライアントとのＴＣＰ／ＩＰ接続を確立するように構成された、サーバと
を備えるシステム。
【請求項１４】
前記システムが、前記クライアントから前記ＴＣＰ  ＳＹＮパケットを受信するステップのいかなる記録も記憶しない請求項１３に記載のシステム。
【請求項１５】
前記システムに、前記クライアントとの接続のためのＳＹＮ−ＲＥＣＥＩＶＥＤ状態を記憶するメモリがない請求項１３に記載のシステム。
【請求項１６】
前記システムが、前記クライアントに前記ＴＣＰ  ＳＹＮ−ＡＣＫパケットを送信するステップのいかなる記録も記憶しない請求項１３に記載のシステム。
【請求項１７】
前記システムに、クライアントとの半開き接続を表すデータのデータ構造体がない請求項１３に記載のシステム。
【請求項１８】
複数のクライアントを登録するように、および各クライアントに固有のパスワードを前記複数のクライアントの各々に提供するように構成されたサーバをさらに備える請求項１３に記載のシステム。
【請求項１９】
登録するように構成された前記サーバが、ユーザＩＤを前記複数のクライアントの各々に提供するようにさらに構成された請求項１８に記載のシステム。
【請求項２０】
前記ワンタイム・データが、時間および前記クライアントの少なくとも１つのパスワードに適用されるハッシュ関数から導出される請求項１３に記載のシステム。
【請求項２１】
前記ＩＰアドレスおよびポート番号が、ＩＰアドレスおよびポート番号の所定の範囲と前記ワンタイム・データの関数として導出される請求項１３に記載のシステム。
【請求項２２】
確認するように構成された前記少なくとも１つのプロセッサが、前記ＩＰアドレスおよびポート番号が、各ＩＰアドレスおよびポート番号のペアが単一のクライアントに特有の、周期的に変わるＩＰアドレスおよびポート番号のペアのセットの中にあることを確認するようにさらに構成された請求項１３に記載のシステム。
【請求項２３】
周期的に変わるＩＰアドレスおよびポート番号の前記セット内の各ＩＰアドレスおよびポート番号が、少なくとも３０秒ごとに変わる請求項２２に記載のシステム。
【請求項２４】
生成するように構成された前記少なくとも１つのプロセッサがさらに、
前記クライアントＩＤに基づいて前記クライアントのパスワードを取得し、
前記ＴＣＰ  ＳＹＮパケットに関連する時間を取得し、
前記ＴＣＰ  ＳＹＮパケットに関連する少なくとも前記時間と前記クライアントの前記パスワードの関数として前記計算されたワンタイム・データを計算する
ように構成された請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で提供される技法は、インターネットなどのネットワークでのサービスの提供に関する。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
コンピュータ・サーバは、インターネットなどのネットワークを介してサービスをコンピュータ・クライアントに提供することができる。しかし、そのようなサーバは、悪意のある実体からのサービス妨害攻撃を受けやすい可能性がある。そのような攻撃は、サーバをデータであふれさせ、サーバが正当なクライアントにサービスを提供することができない状態にし得る。
【課題を解決するための手段】
【０００３】
いくつかの実装形態によれば、ネットワークでサービスを提供するための技法が提供される。本技法は、クライアントに関連する少なくとも１つのワンタイム・データから導出されるＩＰアドレスおよびポート番号に向けられたそのクライアントからのＴＣＰ  ＳＹＮパケットを受信するステップと、そのＴＣＰ  ＳＹＮパケットが認証されたＩＰアドレスおよびポート番号にアドレス指定されていることを確認するステップと、そのクライントにＴＣＰ  ＳＹＮ−ＡＣＫパケットを送信するステップと、そのクライアントからＴＣＰ  ＡＣＫを受信するステップと、クライアントＩＤおよびそのワンタイム・データを備えるデータ・パケットをそのクライアントから受信するステップと、少なくともそのクライアントＩＤに基づいて、計算されたワンタイム・データを生成するステップと、そのワンタイム・データがその計算されたワンタイム・データに対応することを検証するステップと、その検証に応答してそのクライアントとのＴＣＰ／ＩＰ接続を確立するステップとを含む。
【０００４】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、記載される技術の実装形態を説明する。
【図面の簡単な説明】
【０００５】
【図１】本発明のいくつかの実施形態によるシステムの概略図である。
【図２】本発明のいくつかの実施形態による方法の流れ図である。
【発明を実施するための形態】
【０００６】
本発明のいくつかの実装形態は、認証されていない実体からサーバ・コンピュータを隠すことができる。そのような実装形態は、周期的間隔で変化するランダムに現われるＩＰアドレスおよびポート番号でサービスを提供することによって、この目的を達成することができる。認証された、登録されたクライアントは、そのＩＰアドレスおよびポート番号を見つけ、サーバからサービスを取得することができる。いくつかの実装形態は、サーバとのＴＣＰ／ＩＰ接続を確立しようと試みるクライアント・コンピュータが、そのために前もって登録されているだけではなく、ランダムに現われるＩＰアドレスおよびポート番号が導出され得るデータも所有することを検証する。
【０００７】
さらに、いくつかの実装形態は、いわゆるＳＹＮフラッド・サービス妨害攻撃を阻止することができる。そのような実装形態は、潜在的クライアントが適切なデータ、たとえば、ランダムに現われるＩＰアドレスおよびポート番号を導出するために使用されるデータを提供するまで、その潜在的クライアントに関連するＴＣＰ状態を確立しないことによって、達成することができる。サーバがクライアントを検証するまで、状態は確立されないので、サーバは半開き接続の記録を一切とらない。この特徴は、多数の偽の接続の試みの記録でサーバのメモリをオーバーランしようとする悪意のある試みを無効化する。
【０００８】
添付の図面に示された例示的実装形態が、ここで詳細に参照されることになる。可能であれば、同じ参照番号は複数の図面を通して同じまたは同様の部分を参照するために使用される。
【０００９】
図１は、本発明のいくつかの実施形態によるシステムの概略図である。具体的には、図１は、開示されるシステムおよび方法によるシステム１０６の実装形態で使用することができる様々なハードウェア、ソフトウェア、および他の資源を示す。図示された実施形態で、システム１０６は、オペレーティング・システムの制御下でまたはオペレーティング・システムと連動して動作するランダム・アクセス・メモリに結合された１つまたは複数のプロセッサ１１０を含む。実施形態でプロセッサ１１０は、１つもしくは複数のサーバ、クラスタ、または他のコンピュータもしくはハードウェア資源に含まれ、あるいは、クラウドベースの資源を使用して実装される。プロセッサ１１０は、永続メモリ１１４と通信して、開示されるシステムおよび方法を実装するためのプログラム命令および他のデータにアクセスする、または記憶することができる。プロセッサ１１０は、概して、制御論理および制御動作を実行して、本明細書で開示される技法を実装することができる。
【００１０】
システム１０６は、登録サーバ１１２をさらに含む。登録サーバ１１２は、プロセッサ１１０に、および、インターネットなどの１つまたは複数のネットワーク１０４に結合される。この結合により、登録サーバ１１２が、クライアント１０２と、または別のデバイスもしくはサービスと、通信できるようになる。通信は、サービス・サーバ１０８によって提供されるサービスの登録の要求でもよい。登録は、たとえば、ユーザ指定の電子メール・アドレスに電子メールを送信することによって、検証することができ、この電子メールは、クライアント１０２を使用するサービスを要求するユーザのみが取得することができるウェブページへのリンクを含む。登録サーバはさらに、クライアント１０２がサービス・サーバ１０８によって提供されるサービスにアクセスすることができるような、クライアント１０２への、クッキーなどのデータを提供することができる。
【００１１】
システム１０６は、サービス・サーバ１０８をさらに含む。サービス・サーバ１０８は、プロセッサ１１０に、および、インターネットなどの１つまたは複数のネットワーク１０４に、結合される。サービス・サーバ１０８は、登録されたユーザ、たとえばクライアント１０２のユーザにサービスを提供することができる。そのようなサービスは、非限定的例として、エレクトロニック・バンキング、電子投資、電子作業室、ジョブ資源、電子医療記録または資源などを含み得る。サービス・サーバ１０８は、本明細書で論じるようなアクセス可能なＩＰアドレスおよびポート番号を変更するように構成される。サービス・サーバ１０８はさらに、図２を参照して以下に論じるようなクライアント１０２情報を検証するように構成される。
【００１２】
クライアント１０２は、制御論理、たとえばコンピュータ実行可能ソフトウェアを実行してサービス・サーバ１０８にアクセスすることができる。具体的には、クライアント１０２は、本明細書で開示される技法に従って、制御論理を実行してサービス・サーバ１０８を見つけ、通信することができる。
【００１３】
コンピュータシステム１０６と、関連ネットワーク接続と、他のハードウェア、ソフトウェアおよびサービス資源との他の構成が可能である。
【００１４】
図２は、本発明のいくつかの実施形態による方法の流れ図である。図２によって示された本方法は、たとえば、図１のシステム１０６によって、実装することができる。他の実装形態もまた可能である。さらに、図１の方法の本明細書の説明は１つのクライアントに関して説明されるが、複数の、たとえば、約数百、数千または数万の、クライアントが本発明の実施形態によって含まれ得ることを理解されたい。
【００１５】
ブロック２０２で、システム１０６は、クライアント１０２を登録する。本登録プロセスは、電子的に、電話で、メールによって、または任意の他の適切な技術を使用して、行われ得る。ブロック２０２の登録プロセスの最終結果は、クライアント１０２および登録サーバ１１２の両方が、クライアントＩＤに関連する固有の、秘密のパスワードを有することである。パスワード、および場合によってはクライアントＩＤは、数字、文字、記号またはそれらの任意の組合せの順番列でもよい。このパスワード、および場合によってはクライアントＩＤは、たとえば、任意の特定の視覚的表現用にフォーマットされていない、２進数字の順番列として実装され得る。パスワードは、たとえば、２５６、５１２、または１０２４ビット長でもよい。登録サーバ１１２は、疑似乱数生成ジェネレータまたは真の乱数生成ジェネレータを使用して、パスワード（および場合によってはユーザＩＤ）を生成することができる。いくつかの実施形態で、クライアント１０２のユーザは、クライアントＩＤを選択する。ブロック２０２に従って登録する各クライアントは、異なるパスワードおよび異なるユーザＩＤを受信する。このパスワード、および場合によってはクライアントＩＤは、たとえば、非対称暗号化アルゴリズムまたはハイブリッド暗号化アルゴリズムを使用し、クライアント１０２への送信のために暗号化され得る。システム１０６は、永続メモリ１１４で、たとえばデータベースで、クライアント１０２のユーザＩＤに関連するパスワードを記憶する。
【００１６】
ブロック２０４で、クライアント１０２は、サービスの要求を開始する。これを行うために、クライアント１０２は先ず、クライアントのパスワードおよび現在の時刻に基づいてＩＰアドレスおよびポート番号を判定する。式（１）による計算に基づく、ＩＰアドレスおよびポート番号の例示的判定が、ここで続く。非限定的例として、宛先ＩＰアドレスおよびポート番号は、以下に従って計算することができる：
ＤＥＳＴＩＮＡＴＩＯＮ＝（ＢＡＳＥ∧ＭＡＳＫ）∨（ＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭ∧¬ＭＡＳＫ）  （１）
式（１）で、ＤＥＳＴＩＮＡＴＩＯＮ（宛先）は、指定範囲内の生成されたＩＰアドレスおよびポート番号を表す。ＢＡＳＥ（ベース）はその範囲の最上を表し、ＭＡＳＫ（マスク）はその範囲の下端を表す。ＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭ（ワンタイム・データ）は、本明細書の他の箇所で説明するように判定されたワンタイム・データを表す。記号「∧」はビット単位のＡＮＤ演算子を表し、記号「∨」はビット単位のＯＲ演算子を表し、記号「¬」はビット単位のＮＯＴ演算子を表す。式（１）内のすべての数量は、規定によって「０ｘ」による接頭辞を付され得る１６進値として考えることができる。
【００１７】
したがって、ＢＡＳＥおよびＭＡＳＫは、起こり得るＩＰアドレスおよびポート番号の範囲を示す。サービス・サーバ１０８は、そのようなパラメータを指定することができ、クライアント１０２は、ＩＰアドレスおよびポート番号の判定時に、またはＩＰアドレスおよびポート番号の判定時より前の任意の時間に、ブロック２０２で登録プロセス中にそのようなパラメータを取得することができる。いくつかの実装形態で、クライアント１０２は、サービスの要求時に固定ＩＰアドレスおよびポート番号でプロキシ・サーバからＢＡＳＥおよびＭＡＳＫパラメータを取得し、そのプロセスは、それらのパラメータに基づいてＤＥＳＴＩＮＡＴＩＯＮを計算した後に新しいＩＰアドレスおよびポート番号に進むことができる。取得されたパラメータは、たとえばクッキーで、クライアント１０２で記憶することができる。
【００１８】
ＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭは、クライアントのパスワードおよび現在の時刻に基づき得る。たとえば、ＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭは、特定のビット長のワンタイム・データを出力するように修正された、ＴＯＴＰなどの時間ベースのパスワード生成アルゴリズムへの入力としてクライアント・パスワードを使用することによって、計算され得る。もう１つの例として、ＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭは、ＳＨＡ−１などの一方向ハッシュ・アルゴリズムにそのユーザ・パスワードおよび現在の時刻（たとえば、ともに連結された）を提供することによって、取得することができる。現在の時刻は、たとえば、現地時刻、グリニッジ標準時、またはインターネット時間（たとえば、ＮＩＳＴインターネット時間、もしくは、民間団体によって提供されるインターネット時間）でもよい。ＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭの計算は、周期的に、たとえば３０秒ごとに、変わるように構成することができる。たとえば、現在の時刻は、ＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭを計算することを目的として最早３０秒間隔以下は切り捨てることができる。たとえば、１分ごと、２０秒ごと、１０秒ごとなど、他の時間間隔もまた企図される。
【００１９】
式（１）の例示的適用は以下の通りである。１９２．１６８．０．０から１９２．１６８．２５５．２５５の間の所望の範囲のＩＰアドレスについて、ＢＡＳＥは０ｘＣ０Ａ８ＦＦＦＦＦＦＦＦにセットされ、ＭＡＳＫは０ｘＦＦＦＦ００００Ｆ０００にセットされる。１６進数について、最初の８桁はペアで構文解析され、ＩＰアドレスに相当し、最後の４桁は全体として構文解析され、ポート番号に対応する。したがって、０ｘＣ０は１９２に対応し、０ｘＡ８は１６８に対応し、０ｘ００は０に対応し、０ｘＦ０００は６１４４０に対応し、０ｘＦＦＦＦは６５５３５に対応する。０ｘ３２４ＢＡ３Ｅ２７３４ＣのＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭおよび前述のパラメータについて、式（１）は、０ｘＣ０Ａ８Ａ３Ｅ２Ｆ３４ＣのＤＥＳＴＩＮＡＴＩＯＮを出力する。後者の番号０ｘＣ０Ａ８Ａ３Ｅ２Ｆ３４Ｃは、ＩＰアドレスの０ｘＣ０Ａ８Ａ３Ｅ２とポート番号の０ｘＦ３４Ｃとに分けることができる。１０進法で、適切に構文解析され、前述のパラメータの宛先ＩＰアドレスは１９２．１６８．１６３．２６６であり、そして、ポート番号は６２２８４である。これが、式（１）の例示的適用の結論である。
【００２０】
本発明は、宛先ＩＰアドレスおよびポート番号を判定するための式（１）による特定の計算に限定されないことに、留意されたい。実際には、これらのパラメータは、計算される必要はなく、その代わりに、検索することができる。たとえば、クライアント１０２およびサービス・サーバ１０６の両方は、クライアントＩＤに関連するＩＰアドレスおよびポート番号と、クライアントＩＤがアクティブである時間間隔の表を共用することができる。他の計算または他の技法もまた可能である。
【００２１】
ブロック２０４を完了するために、クライアント１０２は、ＴＣＰ  ＳＹＮパケットをこのブロックの部分として判定されたＩＰアドレスおよびポート番号に送信する。サービス・サーバ１０８はＳＹＮパケットを受信し、制御はブロック２０６に移動する。
【００２２】
ブロック２０６で、サービス・サーバ１０８は、アクティブであると想定されるＩＰアドレスおよびポート番号にアドレス指定されたＳＹＮパケットをサービス・サーバ１０８が受信したことを確認する。そのために、サービス・サーバ１０８は、ユーザＩＤおよび時間周期に関連するすべてのアクティブなＩＰアドレスおよびポート番号のリストを保持することができる。サービス・サーバ１０８は、各ユーザＩＤについておよび１つまたは複数の現在のおよび次回以降の時間間隔についてＩＰアドレスおよびポート番号を計算するおよび事前計算することによって、これを行うことができる。サービス・サーバ１０８が特定のＩＰアドレスおよびポート番号でＳＹＮパケットを受信した後は、サービス・サーバ１０８は、有効なＩＰアドレスおよびポート番号のペアのリスト内でそのＩＰアドレスおよびポート番号を検索しようと試みる。
【００２３】
ブロック２０６で、サービス・サーバ１０８が、ＳＹＮパケットが無効なＩＰアドレスおよびポート番号に到達したと判定した場合、サービス・サーバ１０８は、ブロック２０８に従ってそのパケットを破棄することができ、それ以上の行動を取らなくてよい。
【００２４】
ブロック２０６で、サービス・サーバ１０８が、ＳＹＮパケットが有効なＩＰアドレスおよびポート番号に到達したと判定した場合、サービス・サーバ１０８は、ブロック２１０でＴＣＰ  ＳＹＮ−ＡＣＫパケットで応答することができる。サービス・サーバ１０８は、そのＳＹＮパケットを破棄することができる。
【００２５】
サービス・サーバ１０８は、受信したＳＹＮパケットの永続または揮発性メモリでの記録を記憶しないことに留意されたい。サーバ１０８は、クライアント１０２との半開き接続の記録を残さない。言い換えれば、サービス・サーバ１０８は、ＬＩＳＴＥＮ（リッスン）である現在のＴＣＰ／ＩＰ状態をＳＹＮ−ＲＥＣＥＩＶＥＤ（ＳＹＮ受信）にまたは任意の他の状態に変更せず、サービス・サーバ１０８は、クライアント１０２に関連するＴＣＰ／ＩＰ状態を確立しない。
【００２６】
いくつかの実装形態で、サービス・サーバ１０８は、受信するすべてのＳＹＮパケットに応答して、ＳＹＮパケットが有効なＩＰアドレスおよびポート番号に到達したかしないかに関わらず、ＳＹＮ−ＡＣＫパケットを送信する。
【００２７】
ブロック２１２で、クライアント１０２は、サービス・サーバ１０８から受信したＳＹＮ−ＡＣＫに応答してサービス・サーバ１０８にＴＣＰ  ＡＣＫパケットを送信する。サービス・サーバ１０８は、ＡＣＫパケットを受信し、ブロック２１４で破棄する。やはり、サービス・サーバ１０８は、クライアント１０２に関連するＴＣＰ／ＩＰ状態を確立せず、そのクライアントとの開いたまたは半開きの接続の記録も残さない。したがって、サービス・サーバ１０８は、永続メモリ内のＡＣＫパケットの受信の記録を保持しない。
【００２８】
ブロック２１６で、クライアント１０２は、サービス・サーバ１０８にデータ・パケットを送信する。クライアント１０２からサービス・サーバ１０８に送信される第１のデータ・パケットとなり得るそのデータ・パケットは、データ・フィールドに特定の情報を含む。具体的には、データ・パケットのデータ・フィールドは、クライアント１０２のクライアントＩＤ、ならびに、クライアント１０２がそのパケットを送信した先のＩＰアドレスおよびポート番号を識別するのに十分な情報を含む。そのような情報は、たとえば、式（１）のＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭの値でもよい。（現在の時刻およびクライアント・パスワードの値が代替で送信可能であり、そのような実装形態では、少なくともクライアント・パスワードは、暗号化されてその保全性を保護することができる。）
【００２９】
ブロック２１８で、サービス・サーバ１０８は、データ・パケットのデータ・フィールドで受信した情報がサービス・サーバ１０８がそのパケットで受信したＩＰアドレスおよびポート番号と一致することを確認する。これを達成するために、その情報がＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭの値を含む場合、サービス・サーバ１０８は、ＢＡＳＥおよびＭＡＳＫの共用値に基づいて、また受信されたＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭ値に基づいて、式（１）を使用してＤＥＳＴＩＮＡＴＩＯＮを計算することができる。ＤＥＳＴＩＮＡＴＩＯＮの値が、サービス・サーバ１０８がパケットを受信したＩＰアドレスおよびポート番号と一致する場合、制御はブロック２２０に移る。そうでない場合、制御はブロック２２２に移る。
【００３０】
受信された情報を確認するための他の技法もまた可能であることに留意されたい。たとえば、受信された情報が現在の時刻およびクライアント・パスワードの暗号化された値を含む場合、サービス・サーバ１０８は、これらの値を復号化し、使用してＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭを計算し、ＭＡＳＫおよびＢＡＳＥの共通値に基づいてＤＥＳＴＩＮＡＴＩＯＮを続けて計算することができる。サービス・サーバ１０８は、この情報を、パケットを受信したＩＰアドレスおよびポート番号と突き合わせ、それに応じてブロック２２０または２２２のいずれかに進むことができる。
【００３１】
ブロック２２２で、サービス・サーバ１０８はデータ・パケットを破棄し、プロセスは終了することができる。したがって、サービス・サーバ１０８は、ブロック２１８の確認が失敗した場合、クライアント１０２との接続を確立しない。
【００３２】
ブロック２２０で、サービス・サーバ１０８は続けてクライアント１０２とのＴＣＰ／ＩＰ接続を確立する。サービス・サーバ１０８は続けて、クライアント１０２に関する状態を確認する情報を記憶し（たとえば、永続または揮発性メモリで）、たとえば、サービス・サーバ１０８は、ＴＣＰ／ＩＰ状態をクライアント１０２に関してＥＳＴＡＢＬＩＳＨＥＤ（確立された）に変更することができる。
【００３３】
ブロック２２０が完了したとき、サービス・サーバ１０８およびクライアント１０２は、既存のまたは別のＩＰアドレスおよびポート番号を使用し、継続して通信することができる。具体的には、サービス・サーバ１０８は、クライアント１０２にサービスを提供することができる。通信を完了したとき、サービス・サーバ１０８およびクライアント１０２は、標準ＴＣＰ／ＩＰプロトコルに従って通信を切断する。
【００３４】
いくつかの実装形態は、ＩＰアドレスおよびポート番号をランダム化しない。その代わりに、そのような実装形態は、サービスが取得され得る少なくとも１つの固定ＩＰアドレスおよびポート番号を保持する。しかし、そのような実装形態は、クライアントがサーバと共用される秘密のデータを保持していることを証明する。そのような実装形態で、共有データは、本明細書に記載するようなパスワードでもよい。したがって、そのような実装形態は、以下の修正を有する、図２に示すものと同様の方法を使用する。先ず、ブロック２０６が省略され、サーバは、クライアントから送信され、固定ＩＰアドレスおよびポート番号にアドレス指定されたＴＣＰ  ＳＹＮパケットの受信を確認する。第２に、ブロック２１６で、データ・パケットは、ＯＮＥ−ＴＩＭＥ−ＤＡＴＵＭまたはクライアント・パスワードなどのクライアントＩＤおよび共有の秘密のデータを含む。共有の秘密のデータがクライアント・パスワードである実装形態で、たとえば、共有の秘密の鍵および対称暗号アルゴリズムを使用して、または公開鍵および非対称暗号アルゴリズムを使用して、暗号化され得る。ブロック２１８で、サーバは、たとえば、必要があれば復号化すること、およびクライアントＩＤと関連して記憶された共有の秘密のデータのコピーと比較することによって、そのクライアントのデータ・パケットがその共有の秘密のデータを含むことを確認する。この方法の残りの部分は、そのような実装形態において基本的に変更されない。
【００３５】
一般に、提示された技法を実行する能力を有するシステムは、多数の異なる形をとり得る。さらに、本システムの一部分の機能は、本システムの別の部分に代用され得る。各ハードウェア構成要素は、オペレーティング・システムの制御の下で、またはオペレーティング・システムと連動して動作するランダム・アクセス・メモリに結合された１つまたは複数のプロセッサを含み得る。さらに、各ハードウェア構成要素は、本明細書で提示される技法を実行するためのプログラム命令を記憶することができるハード・ドライブまたはドライブ・アレイなどの永続記憶装置を含み得る。すなわち、そのようなプログラム命令は、開示される本方法を実行する役割を果たすことができる。本明細書で論じられる第１のおよび第２のデバイスと、他のハードウェア、ソフトウェア、およびサービス資源との他の構成が可能である。
【００３６】
前述の説明は例示的であり、構成および実装の変形が可能である。たとえば、単数形で記載された資源は複数でもよく、統合されたものとして記載された資源は分散されてもよい。さらに、複数または分散されたものとして記載された資源は、結合させることができる。したがって、提示される技法の範囲は、以下の特許請求の範囲によってのみ限定されるものである。
【図１】
2014132753.tif 000003
【図２】
2014132753.tif 000004
【外国語明細書】
2014132753000001.pdf