(57)【要約】【課題】セッション制御サーバ（ＳＣＳ）を使用し、サーバとクライアントとの間の安全な接続を自動的および動的に起動し、確立するためのシステムおよび方法を提供すること。【解決手段】サーバとクライアントの両者は、ネットワークアドレス変換器または変換（ＮＡＴ）ミュータ、または、ファイアウォールを通じて、信頼できないネットワーク（例えばインターネットのような）と接続される。ＳＣＳは、サーバとクライアントの両者から個別に信頼され、必要な接続パラメーターを仲介してサーバとクライアントとの間に安全な接続を確立する。当該システムと方法は、クライアント上にいかなるユーザ設定も必要とせず、サーバがクライアントから明示接続要求またはパケットを受け取る必要性を排除し、これによってサーバのファイアウォールは常時、すべてのインバウンドトラフィックを遮断し続けることが可能となる。【選択図】図２
2011072038.tif 000002
【特許請求の範囲】
【請求項１】
本願明細書に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の参照）
本出願は、米国特許仮出願第６０／５６１，８０６号（２００４年４月１２日出願）に対する優先権を主張し、該出願はその全てが、本明細書において参考として援用される。
【０００２】
（技術分野）
本発明はコンピュータネットワーキング、および、ネットワークセキュリティの分野に関する。より具体的には、本発明は、それぞれがネットワークアドレス変換器ルータおよび／またはファイアウォールの背後に存在する、コンピュータ（例えばサーバ）と複数のコンピュータ（例えばクライアント）との間の、安全な接続を自動的かつ動的に開始および確立する方法に関する。
【背景技術】
【０００３】
インターネットは、接続されるコンピュータの数の急激な拡張を続けており、広く利用できるワイヤレス接続とポータブルコンピューティングデバイスへのトレンドは、一日ごとに接続する新しいコンピュータの数を飛躍的に増すであろうと予測されている。この急激な拡張は、許可されていないアクセスからコンピュータを守る必要性を急進的に増加し、インターネットネットワーク自身に対する多くの拡張性の問題をすでに引き起こしている。例えば、インターネットプロトコルバージョン４（ＩＰｖ４）は、３２ビットＩＰ（インターネットプロトコル）アドレスを使い、これは、インターネット上のコンピュータの理論的な最大数が、約４０億であることを意味する。しかし、実質的な限度は、ＩＰアドレスが配分され送られるうえでの非効率のために、はるかに低い。このように、ＩＰｖ４は、インターネットの現在の拡張のために十分な固有なアドレスを供給していない。インターネットプロトコル（ＩＰｖ６）の新型のバージョンは、１２８ビットのアドレススペースを使い、ＩＰアドレスをさらに多く供給するが、しかし、これが広範囲に及ぶ導入を達成するまでは、ほかの手法が、ＩＰｖ４のアドレス限度を克服するために利用され、インターネット接続したコンピュータへのセキュリティ保持を提供するために利用される。
【０００４】
今日幅広く使用されている解決法の一つは、ネットワークアドレス変換（ＮＡＴ）であり、これは、加入者のコンピュータが、たとえば、ウェブサーバのような、公共のインターネットサーバに接触し、接続しようとする時に、ＡＯＬやほかのインターネットサービスプロバイダー（ＩＳＰ）のような、内部ネットワークで使われるプライベートアドレスが、公共のＩＰアドレスへと変換されるものである。一度にインターネットを通じて交信するコンピュータの数は、接続したが稼動していないコンピュータの総数よりもはるかに低く、現在交信しているもののみがＮＡＴによって公共のＩＰアドレスを指定され、それにより、ＩＰアドレスの必要な数を減らしている。また、これは、インターネットから起動する接続を通じて到達できない、ＮＡＴルータまたはファイアウォールの背後にあるコンピュータに対して匿名で与えられる、追加的なセキュリティを提供する。
【０００５】
ＮＡＴルータは第一に、プライベートネットワーク内のクライアントマシンが安定したＩＰアドレス、およびドメイン名サービスまたはサーバ（ＤＮＳ）名で公共のサーバへの接続を起動するように、クライアント／サーバパラダイムとしてデザインされている。
【０００６】
ＮＡＴルータの背後の内部ホストの匿名性とアクセス不能性は、公共に利用できるサーバへの外部接続を起動することのみを必要とする、ウェブブラウザのようなクライアントのソフトウェアに対しては問題ではない。しかし、これは、ファイル共有、ゲームアプリケーション、ビデオ会議、ボイス・オーバー・ＩＰインターネット電話機、などの、ＮＡＴルータサーバを経由して到来する接続を通じて、クライアントへと安全に接続するためのサーバを必要とするアプリケーションに対しては、またはインターネットを通じて、クライアントにそれらに直接接続させないコンピュータサービスへの安全なアクセスに対しては、問題である。
【０００７】
コンピュータの一つがＮＡＴルータの背後にあるときには、他のコンピュータは、特別な手法および接続タイプ、ロケーション、サービス、または、ＮＡＴルータ／ファイアウォールのタイプの全てを変えるのに必要とされる、しばしば複雑なマニュアル構成を利用せずに、それと接続することはできない。
【０００８】
したがって、ＮＡＴによって設定されたアドレッシングおよび接続性の非対称性は、ａ）ワールドワイドウェブのような、外部のみのアプリケーションへの幅広く利用できるインターネットサービスへの保全に対して制限があること、ｂ）潜在的に魅力のある大きな消費者市場の、多くの追加のインターネットアプリケーションおよびサービスの利用可能性および巨大市場の可能性が、現在利用できるＮＡＴやＮＡＴに関連する技術によって課せられる複雑な設定とシステム管理要求を管理できる、専門的に訓練された少数のユーザに制限されることなど、多くの問題を起こしている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
それ故に、上記に記された欠点を克服する、サーバとクライアントの間のインターネット接続を自動的に起動し、動的に確立するための方法およびシステムを提供することが、本発明の課題である。
【課題を解決するための手段】
【００１０】
本発明の実施形態に従って、その方法およびシステムは、それぞれがネットワークアドレス変換器または変換（ＮＡＴ）ルータ、または、ファイアウォールを通じて信頼できないネットワーク（インターネットなど）と接続されている、サーバとファイアウォールを有するクライアントデバイス（クライアント）との間の接続を、好ましくは安全な接続を、自動的かつ動的に、起動し、確立するものである。本発明の安全な接続は、クライアント上のいかなるユーザ設定をも必要とせず、サーバによるクライアントからのいかなる明示接続要求、および／または、パケットを受信することなしに起動され、確立され、それによって有用にも、サーバファイアウォールをして常に、すべてのインバウンド（ｉｎｂｏｕｎｄ）トラフィックを止めさせる。
【００１１】
本発明は、要求に応じて、サーバとクライアントとを安全に接続するために、インターネット上のネットワーク接続を指定するための動的に起動するバーチャルポイントを作成でき、それによって有用にも、一般のユーザに、今までになく容易な方法でサーバへの一つの単動アクセス（一度のマウスクリック、または、パワーオン、または、ネットワークプラグイン動作のような）を提供できる。
【００１２】
本発明の実施形態に従って、上記にあるようなシステムと方法は、サーバとクライアント間の接続、好ましくは安全な接続を確立するために必要とされる接続パラメーターを安全に仲立ちするために、サーバとクライアントの両者によって個別に信頼され、公共のＩＰアドレスを有するセッション制御サーバ（「ＳＣＳ」）のような信頼できる当事者である、第３のコンピュータを利用できる。ＳＣＳは、サーバ／クライアント接続の設定に関与するのみであり、サーバとクライアントとの間のそれに続くコミュニケーション（すなわち、メッセージの交換）には関与しない。従って、本発明は、ここで検討されるリレーおよびほかのサーバに基ずく手法と関連する実行およびセキュリティの問題を回避する。
【００１３】
クライアントは、自身のアドレスを含む接続要求と、無作為に生成された固有の識別子（それぞれのサーバに対するそれぞれのクライアント接続要求に対して異なる）をＳＣＳへ送信し、したがって、ＮＡＴルータ、および／または、ファイアウォールにより隠されているクライアントの接続パラメーターをＳＣＳに提供する。クライアントは、任意の新しいＮＡＴを有する（ＮＡＴ−ｔｅｄ）ネットワークとの接続、およびそのネットワークパラメーターのいかなる変化においても、パワーオンで自動的に常にこのステップを実行するようにプログラミングされ得、かくして、いかなるユーザ設定または介入なしに、サーバとの安全な接続の自動的かつ動的な起動／確立、および再確立を提供する。
【００１４】
ＳＣＳは次いで、それぞれのクライアントとサーバにそれぞれの接続パラメーターを提供し、それらは、両者の間で安全に交換され、その結果として、最初にクライアントの接続パラメーターがサーバへ配信され一義的に特定され、最後に、前のステップの成功した完了を受けて、サーバはクライアントのＮＡＴルータまたはファイアウォールを通じてクライアントとの安全な接続を起動し、それによって、クライアントのＮＡＴルータまたはファイアウォールにより課されるインバウンドトラフィックの制限を安全に克服することによってなされる外部起動接続が可能となり、サーバが、信頼できないネットワークから到来する全てのインバウンドトラフィックに対して閉ざされた、それ自身のＮＡＴルータ／ファイアウォールを維持することが可能となる。
【００１５】
本発明の実施形態に従って、信頼できないネットワーク上で安全な接続を自動的に起動し動的に確立するためのシステムは、ファイアウォールまたはネットワークアドレス変換器（ＮＡＴ）ルータを介して信頼できないネットワークと接続されるクライアントデバイス、ファイアウォールを介して信頼できないネットワークと接続され、いかなるクライアントデバイスからの明示接続要求またはパケットを受け入れないサーバ、およびクライアントデバイスを設定することなしにサーバとクライアントとの間で接続パラメーターを交換するための、信頼できないネットワークと接続される信頼できるコンピュータ、を備える。クライアントデバイスは、信頼できるコンピュータを介してサーバから固有の接続識別子を受信する。サーバのファイアウォールは、クライアントデバイスとサーバとの間の一時的なマッピングを動的に確立するために、クライアントデバイスから固有の接続識別子を備える未承諾の（ｕｎｓｏｌｉｃｉｔｅｄ）パケットを受信する。クライアントデバイスから受信した未承諾のパケットの中の固有の接続識別子が、保存された固有の接続識別子と一致する場合には、サーバは、信頼できないネットワーク上に動的に確立された一時的なマッピングを使用して、クライアントデバイスに回答パケットを送信し、これによって、ＮＡＴルータを通じてサーバとクライアントデバイスとの間の安全な接続を確立する。
【００１６】
現在の発明を十分理解するために、コンピュータの安全におけるあらゆる進歩をもってしても、インターネットは、本質的に安全でない環境であることを、理解しなければならない。なぜならば、「使いやすさ」の問題点を信頼できるアクセスの要素と調和させることは難しいからである。本発明は、不正ユーザが正当化されているように装う可能性を削除し、同時に一般のユーザが重荷に思う多くの要素を加えずに、事実上これを削除する、方法論的アプローチを提供することによって、この問題の核心をつく。
【００１７】
前述は、以下に続く発明の詳細な説明がよりよく理解され得るように、本発明の特徴と技術的な利点を、むしろ広範囲に述べている。本発明の特許請求の範囲の主題を構成する、本発明の追加の特徴と利点が以下に説明される。開示される特定の概念およびと実施形態は、本発明の同じ目的を実行するための他の構造を変更したり、設計するための基礎として容易に使用され得ることが、当業者によって理解されるべきである。また、このような均等の構造が、添付の特許請求の範囲に記載される本発明の精神および範囲から逸脱しないことが、当業者によって理解されるべきである。本発明の特徴であると信じられている、その組織および操作の方法の両方にかかわる新規の特徴は、さらなる目的と利益と共に、添付の図面と関連付けて考察されるときには、以下の説明からよりよく理解される。しかしながら、それぞれの図面は例示と説明のみの目的のために提供されており、本発明の限界の規定として意図されていないことは、明白に理解されるべきである。
例えば、本発明は以下の項目を提供する。
（項目１）
クライアントと、任意のクライアントからの明示接続要求またはパケットを受け入れないサーバとの間の、信頼できないネットワーク上の安全な接続を自動的に起動および動的に確立するための方法であって、該方法は、該サーバおよび該クライアントの両者によって信頼される第三者のコンピュータを使用し、該クライアントおよび該サーバのそれぞれがファイアウォールまたはネットワークアドレス変換器（ＮＡＴ）ルータを介して該信頼できないネットワークと接続され、
パワーオン時の該クライアントのユーザによる単一操作の際、該信頼できないネットワークへの接続の際、または該クライアントのネットワークパラメーターにおける任意の変更の際に、該クライアントにより該第三者のコンピュータに接続要求を自動的に伝送するステップであって、該接続要求は該サーバと接続される要求を備える、ステップと、
該第三者のコンピュータを使用して、該サーバと該クライアントとの間で該信頼できないネットワーク上で接続パラメーターを交換するステップであって、該接続パラメーターは、該クライアントと関連するＮＡＴルータを通して該サーバと該クライアントとの間の安全な接続を確立するための固有の接続識別子を備え、これによって該クライアントの該ユーザに、該サーバへの単一操作によるアクセスを提供する、ステップと、
を包含する、方法。
（項目２）
前記クライアントと前記サーバとの間の一時的なマッピングを動的に確立するために、該サーバと関連するファイアウォールにより該クライアントから前記固有の接続識別子を備える未承諾のパケットを受信するステップと、
該未承諾のパケットの該固有の接続識別子が、保存された固有の接続識別子と一致すると決定された場合には、該サーバによって該信頼できないネットワーク上で該動的に確立された一時的なマッピングを使用して、該クライアントに返答パケットを伝送するステップと、
をさらに包含する、項目１に記載の方法
（項目３）
前記クライアントのあて先インバウンドポートおよび該クライアントと関連する前記ＮＡＴルータの公共アドレスを、前記第三者のコンピュータから前記サーバにより受信するステップと、
該サーバのあて先ポートと、該サーバと関連する前記ファイアウォールのＩＰアドレスと、該クライアントのための前記固有の接続識別子とを、該第三者のコンピュータに該サーバにより伝送するステップと、
をさらに包含する、項目１に記載の方法
（項目４）
前記サーバの前記あて先ポートおよび該サーバと関連する前記ファイアウォールの前記ＩＰアドレスとを使用し、該サーバに未承諾のパケットを送信するための命令を、前記第三者のコンピュータから前記クライアントにより受信するステップと、
該未承諾のパケットが、該クライアントと関連する前記ＮＡＴルータの前記公共アドレスから該サーバの該あて先ポートで受信されることが決定された場合には、該クライアントへの返答パケットを該サーバにより伝送するステップと、
をさらに包含する、項目３に記載の方法。
（項目５）
前記第三者のコンピュータから受信される前記クライアントの前記あて先インバウンドポートを使用して、該クライアントへの前記安全な接続を前記サーバにより起動するステップをさらに包含する、項目３に記載の方法。
（項目６）
前記受信するステップは、前記サーバと関連する前記ファイアウォールにより、前記クライアントからの前記固有の接続識別子を備える未承諾のＵＤＰまたはＴＣＰパケットを受信するステップを包含する、項目２に記載の方法。
（項目７）
クライアントと、任意のクライアントからの明示接続要求またはパケットを受け入れないサーバとの間の、信頼できないネットワーク上の安全な接続を自動的に起動および動的に確立するための方法であって、該方法は、該サーバおよび該クライアントの両者によって信頼される第三者のコンピュータを使用し、該クライアントおよび該サーバのそれぞれがファイアウォールまたはネットワークアドレス変換器（ＮＡＴ）を介して該信頼できないネットワークと接続され、
該第三者のコンピュータを使用して、該サーバと該クライアントとの間の該信頼できないネットワーク上で接続パラメーターを交換するステップであって、該接続パラメーターは固有の接続識別子を備える、ステップと、
該クライアントと該サーバとの間の一時的なマッピングを動的に確立するために、該サーバと関連するファイアウォールにより、該クライアントから該固有の接続識別子を備える未承諾のパケットを受信するステップと、
該未承諾のパケットの該固有の接続識別子が、保存された固有の接続識別子と一致すると決定された場合には、該サーバにより該信頼できないネットワーク上で該動的に確立された一時的なマッピングを使用して該クライアントに返答パケットを伝送するステップであって、これによって該クライアントと関連するＮＡＴルータを通じて該サーバと該クライアントとの間の安全な接続を確立する、ステップと、
を包含する、方法。
（項目８）
前記クライアントのあて先インバウンドポートおよび該クライアントと関連する前記ＮＡＴルータの公共アドレスを、前記第三者のコンピュータから前記サーバにより受信するステップと、
該サーバのあて先ポートと、該サーバと関連する前記ファイアウォールのＩＰアドレスと、該クライアントのための前記固有の接続識別子とを、該第三者のコンピュータに該サーバにより伝送するステップと、
をさらに包含する、項目７に記載の方法。
（項目９）
前記サーバの前記あて先ポートおよび該サーバと関連する前記ファイアウォールの前記ＩＰアドレスとを使用し、該サーバに前記未承諾のパケットを送信するための命令を、前記第三者のコンピュータから前記クライアントにより受信するステップと、
該未承諾のパケットが、該クライアントと関連する前記ＮＡＴルータの前記公共アドレスから該サーバの該あて先ポートで受信されることが決定された場合には、該クライアントへの前記返答パケットを該サーバにより伝送するステップと、
をさらに包含する、項目８に記載の方法。
（項目１０）
前記第三者のコンピュータから受信される前記クライアントの前記あて先インバウンドポートを使用し、該クライアントへの前記安全な接続を前記サーバにより起動するステップをさらに包含する、項目８に記載の方法。
（項目１１）
前記受信するステップは、前記クライアントからの前記固有の接続識別子を備える未承諾のＵＤＰまたはＴＣＰパケットを、前記サーバと関連する前記ファイアウォールにより受信するステップを包含する、項目７に記載の方法。
（項目１２）
前記クライアントにより前記第三者のコンピュータに接続要求を伝送するステップであって、該接続要求は前記サーバと接続される要求を備える、ステップをさらに包含する、項目７に記載の方法。
（項目１３）
パワーオン時の前記クライアントのユーザによる単一操作の際、前記信頼できないネットワークへの接続の際、または該クライアントのネットワークパラメーターにおける任意の変更の際に、該クライアントにより前記第三者のコンピュータに前記接続要求を自動的に伝送するステップであって、これによって該クライアントの該ユーザに前記サーバへの単一操作によるアクセスを提供するステップをさらに包含する、項目１２に記載の方法。
（項目１４）
サーバおよびクライアントの両者によって信頼される第三者のコンピュータを使用して、該クライアントと、任意のクライアントからの明示接続要求またはパケットを受け入れない該サーバとの間の、信頼できないネットワーク上の安全な接続を自動的に起動および動的に確立するためのシステムであって、
該クライアントおよび該サーバのそれぞれが、ファイアウォールまたはネットワークアドレス変換器（ＮＡＴ）を介して該信頼できないネットワークと接続され、
パワーオン時の該クライアントのユーザによる単一操作の際、該信頼できないネットワークへの接続の際、または前記クライアントのネットワークパラメーターにおける任意の変更の際に、該クライアントは該第三者のコンピュータに接続要求を自動的に伝送することができ、該接続要求は該サーバと接続される要求を備え、
該サーバおよび該クライアントは、該第三者のコンピュータを使用して該信頼できないネットワーク上で接続パラメーターを交換することができ、該接続パラメーターは、該クライアントと関連するＮＡＴルータを通じて該サーバと該クライアントとの間の安全な接続を確立するための固有の接続識別子を備え、これによって該クライアントの該ユーザに、該サーバへの単一操作によるアクセスを提供する、
システム。
（項目１５）
前記サーバと関連するファイアウォールは、前記クライアントと該サーバとの間の一時的なマッピングを動的に確立するために、該クライアントからの前記固有の接続識別子を備える未承諾のパケットを受信することができ、
該未承諾のパケットの該固有の接続識別子が、保存された固有の接続識別子と一致すると決定された場合には、該サーバは、前記信頼できないネットワーク上で該動的に確立された一時的なマッピングを使用して該クライアントに返答パケットを伝送することができる、項目１４に記載のシステム。
（項目１６）
前記サーバは、項目１に記載の方法を受信することができ、該方法は、
前記クライアントのあて先インバウンドポートおよび該クライアントと関連する前記ＮＡＴルータの公共アドレスを、前記第三者のコンピュータから該サーバにより受信するステップと、
該サーバのあて先ポートと、該サーバと関連する前記ファイアウォールのＩＰアドレスと、該クライアントのための該固有の接続識別子とを、該第三者のコンピュータに該サーバにより伝送するステップと、をさらに包含する、
項目１４に記載のシステム。
（項目１７）
前記クライアントは、前記第三者のコンピュータから、前記サーバの前記あて先ポートおよび該サーバと関連する前記ファイアウォールの前記ＩＰアドレスを使用して、該サーバに前記未承諾のパケットを送信するための命令を受信することができ、
該サーバは、該未承諾のパケットが、該クライアントと関連する前記ＮＡＴルータの前記公共アドレスから該サーバの該あて先ポート上で受信されることが決定された場合には、該クライアントに返答パケットを伝送することができる、
項目１６に記載のシステム。
（項目１８）
前記サーバは、前記第三者のコンピュータから受信された前記クライアントの前記あて先インバウンドポートを使用して、該クライアントとの前記安全な接続を起動することができる、項目１６に記載のシステム。
（項目１９）
前記サーバは、前記クライアントから、前記固有の接続識別子を備える未承諾のＵＤＰまたはＴＣＰパケットを受信することができる、項目１５に記載のシステム。
（項目２０）
前記クライアントは、いかなるユーザ機能も実行しない、またはいかなるユーザデータも含まない、ステートレスクライアントである、項目１４に記載のシステム。
（項目２１）
前記クライアントは、単一機能のネットワーク認識消費者デバイスである、項目１４に記載のシステム。
（項目２２）
前記単一機能のネットワーク認識消費者デバイスは、携帯電話、音楽プレイヤー／レコーダー、ビデオプレイヤー／レコーダー、ゲームプレイヤー、または、携帯型電子メールデバイスのうちの一つである、項目２１に記載のシステム。
（項目２３）
サーバおよびクライアントの両者によって信頼される第三者のコンピュータを使用して、該クライアントと、任意のクライアントからの明示接続要求またはパケットを受け入れない該サーバとの間の、信頼できないネットワーク上の安全な接続を自動的に起動および動的に確立するためのシステムであって、
該クライアントおよび該サーバのそれぞれが、ファイアウォールまたはネットワークアドレス変換器（ＮＡＴ）を介して該信頼できないネットワークと接続され、
該サーバおよび該クライアントは、該第三者のコンピュータを使用して、該信頼できないネットワーク上で接続パラメーターを交換することができ、該接続パラメータは固有の接続識別子を備え、
該サーバと関連する該ファイアウォールは、該クライアントと該サーバとの間の一時的なマッピングを動的に確立するために、該クライアントから該固有の接続識別子を含む未承諾のパケットを受信することができ、
該未承諾のパケットの該固有の接続識別子が、保存されている固有の接続識別子と一致すると決定された場合には、該サーバは、該信頼できないネットワーク上で該動的に確立された一時的なマッピングを使用して、該クライアントへの返答パケットを伝送することができ、これによって、該クライアントと関連する該ＮＡＴルータを通じて、該サーバと該クライアントとの間の安全な接続を確立する、
システム。
（項目２４）
前記サーバは、前記第三者のコンピュータから前記クライアントのあて先インバウンドポートおよび該クライアントと関連する前記ＮＡＴルータの公共アドレスを受信することができ、
該クライアントは、該第三者のコンピュータから該サーバのあて先ポートおよびＩＰアドレス、および前記固有の接続識別子を受信することができる、
項目２３に記載のシステム。
（項目２５）
前記クライアントは、前記第三者のコンピュータから、前記サーバに前記未承諾のパケットを送信する命令を受信することができ、
該サーバは、該未承諾のパケットが、該クライアントと関連する前記ＮＡＴルータの前記公共アドレスから該サーバの前記あて先ポートで受信されることが決定された場合には、該クライアントに返答パケットを伝送することができる、
項目２４に記載のシステム。
（項目２６）
前記サーバは、前記第三者のコンピュータから受信された前記クライアントの前記あて先インバウンドポートを使用して、該クライアントとの前記安全な接続を起動することができる、項目２３に記載のシステム。
（項目２７）
前記クライアントは、いかなるユーザ機能も実行しない、またはいかなるユーザデータも含まない、ステートレスクライアントである、項目２３に記載のシステム。
（項目２８）
前記クライアントは、単一機能のネットワーク認識消費者デバイスである、項目２３に記載のシステム。
（項目２９）
前記単一機能のネットワーク認識消費者デバイスは、携帯電話、音楽プレイヤー／レコーダー、ビデオプレイヤー／レコーダー、ゲームプレイヤー、または、携帯型電子メールデバイスのうちの一つである、項目２８に記載のシステム。
（項目３０）
前記クライアントは、前記第三者のコンピュータに接続要求を伝送することができ、該接続要求は前記サーバと接続される要求を備える、項目２３に記載のシステム。
（項目３１）
パワーオン時の前記クライアントのユーザによる単一操作の際、前記信頼できないネットワークへの接続の際、または前記第三者のコンピュータへの該クライアントのネットワークパラメーターにおける任意の変更の際に、該クライアントは前記接続要求を自動的に伝送することができ、これによって該クライアントのユーザに、前記サーバへの単一操作によるアクセスを提供する、項目３０に記載のシステム。
【図面の簡単な説明】
【００１８】
【図１】ＮＡＴもしくはファイアウォールの背後の、信頼できないネットワークと接続される様々なコンピュータを示す例示的なブロック図である。
【図２】本発明の実施形態に従った、それぞれファイアウォールまたはＮＡＴルータの背後の、サーバとクライアントとの間の接続を自動的に起動し、また動的に確立するためのステップを示す、例示的なブロック図である。
【図３】本発明の実施形態に従った、それぞれファイアウォールまたはＮＡＴルータの背後の、サーバとクライアントとの間の接続を自動的に起動し、また動的に確立するためのステップを示す、例示的なブロック図である。
【図４】本発明の実施形態に従った、それぞれファイアウォールまたはＮＡＴルータの背後の、サーバとクライアントとの間の接続を自動的に起動し、また動的に確立するためのステップを示す、例示的なブロック図である。
【図５】本発明の実施形態に従った、それぞれファイアウォールまたはＮＡＴルータの背後の、サーバとクライアントとの間の接続を自動的に起動し、また動的に確立するためのステップを示す、例示的なブロック図である。
【図６】本発明の実施形態に従った、それぞれファイアウォールまたはＮＡＴルータの背後の、サーバとクライアントとの間の接続を自動的に起動し、また動的に確立するためのステップを示す、例示的なブロック図である。
【図７】本発明の実施形態に従った、それぞれファイアウォールまたはＮＡＴルータの背後の、サーバとクライアントとの間の接続を自動的に起動し、また動的に確立するためのステップを示す、例示的なブロック図である。
【図８】本発明の実施形態に従った、それぞれファイアウォールまたはＮＡＴルータの背後の、サーバとクライアントとの間の接続を自動的に起動し、また動的に確立するためのステップを示す、例示的なブロック図である。
【発明を実施するための形態】
【００１９】
本発明は、例として与えられ本発明をそこに制限することを意図しない、本明細書における説明を参照することによって理解され得、添付の図と関連してさらによく理解される。
【００２０】
本発明の実施形態に従って、そのシステムと方法は、サーバとファイアウォールを有するクライアントデバイスと間の接続、好ましくは、安全な接続を自動的かつ動的に起動し確立する。図１によると、サーバｌ１００とクライアントデバイス（クライアント１２００）が示され、両者は、ネットワークアドレス変換（ＮＡＴ）ルータまたはファイアウォール１３００を通じて信頼できないネットワーク１０００（インターネットのような）と接続されている。サーバとクライアントとの間の接続は、クライアント１２００にいかなるユーザ設定も必要とせず、サーバ１１００によるクライアント１２００からのいかなる明示接続要求、および／またはパケットを受信することなしに、起動され確立され、これによって、サーバファイアウォール１３００は、常にすべてのインバウンドトラフィックを止めることができる。
【００２１】
実施形態にしたがって、本発明は、第３のコンピュータ１４００を使用する。これは例えば、セッション制御サーバ（「ＳＣＳ」）のような信頼できる当事者で、公共のＩＰアドレスをもち、サーバ１１００とクライアント１２００の両者に対して個別に信頼され安全に接続されるものである。クライアント１２００は、自身のアドレスおよび無作為に生成された固有の識別子（それぞれのクライアントのサーバへの接続要求により異なる）を備える接続要求を、ＳＣＳ１４００へ送信し、それによって、ＳＣＳ１４００に、ＮＡＴルータ１３００によっておよび／またはファイアウォール１３００によって隠されたクライアント接続パラメーターを提供する。本発明の局面にしたがって、クライアント１２００は、いかなる新しいＮＡＴを有するネットワークとの接続に際して、そのネットワークパラメーターの如何なる変化に際して、常にパワーオンで自動的にこのステップを実行することができるようにプログラミングされ得、したがって、いかなるユーザ設定または介入なしに、サーバ１１００との安全な接続の自動的かつ動的な起動／確立および再確立を提供する。
【００２２】
ＳＣＳ１４００は、クライアント１２００とサーバ１１００のそれぞれに、個々の接続パラメーターを提供し、それらは両者の間で安全に交換でき、その結果として、最初に、クライアントの接続パラメーターがサーバ１１００に配送され、一義的に識別され、最後に、前のステップの正常の完了を受けて、サーバ１１００が、クライアントのＮＡＴルータまたはファイアウォール１３００を通じて、クライアント１２００との安全な接続を起動し、これによって、クライアントＮＡＴルータまたはファイアウォール１３００により課されたインバウンドトラフィックの制限を安全に克服することによって、外部起動接続がなされることが可能となり、サーバ１１００が、自身のＮＡＴルータ／ファイアウォール１３００をして、信頼できないネットワークから到来するすべてのインバウンドトラフィックを止めさせることができる。
【００２３】
ＳＣＳはサーバ／クライアント接続セットアップに関与するのみであり、サーバとクライアントの間の順次のコミュニケーション（すなわち、メッセージの交換）には関与しない。従って、本発明は、リレーおよび他のサーバに基づく手法に関連する実行およびセキュリティの問題を回避する。
【００２４】
リレー技術は、クライアント・サーバコミュニケーションの変化であり、両者が接続できる公共のＩＰアドレスを有するサーバを使用する、２つのクライアントに依存する。ＮＡＴルータの背後の２つのクライアントは、お互いに直接接続できないが、それぞれ公共のＩＰアドレスを有するサーバに接続することができる。次いで、サーバは、リレーとして動き、１つのクライアントから他のクライアントへメッセージを転送する。この方法は、クライアントの間の全てのコミュニケーションをリレーするためにサーバに依頼することになり、クライアントに接続するためにサーバの利用できる処理能力と利用できるネットワーク帯域幅割り当てを使わなくてはならないので、その性能と拡張性は、これらのパラメーターに依存するという欠点がある。さらに、クライアント間のデータコミュニケーションの複製が、継続的にサーバ上で作られ、それによって、追加のセキュリティー脅威が発生する。
【００２５】
ＵＤＰホールパンチング技術は、ファイアウォールの一般行動に基づいており、それはアプリケーションに、ＮＡＴルータを通して「パンチホール」させ、相互の直接接続を確立させる。
【００２６】
本発明の例示的な実施形態にしたがって、下記に、信頼できないネットワーク１０００上で、ＮＡＴルータまたはファイアウォール１３００の背後のサーバ１１００とクライアント１２００との間の安全な接続を自動的に起動し確立するためのシステム、方法、コンピュータの命令を説明する。ここに説明される相互作用のすべては、インターネットのような信頼できないネットワーク１１００の上で起こるということが理解される。また、ここに説明されるすべての相互作用は、安全でない接続上で起こり得るということも理解される。本発明の例示的な実施形態にしたがった、サーバ１１００への自動的かつ動的なクライアント側の接続は、ここで、図２〜図８と関連して説明される。
【００２７】
図２に示されているように、サーバ１１００は、ステップ２０００においてＳＣＳ１４００への安全な接続を起動し、確立（または、永久に維持）する。本発明の局面にしたがって、この接続は、ＩＰＳＥＣのようなネットワークワークレイヤー（ＯＳＩレイヤー３）上で行われる。本発明の別の局面にしたがって、安全な接続は、セキュアソケットレイヤー（ＳＳＬ）のような、アプリケーションレイヤー（ＯＳＩレイヤー７）メカニズムを使うことができる。サーバ１１００とＳＣＳ１４００との間のすべての順次のコミュニケーションは、この安全なコミュニケーションチャンネル上で行うことができる。
【００２８】
図３に表されているように、クライアント１２００は、ステップ２０１０において、ＳＣＳ１４００との安全な接続を起動する。本発明の局面にしたがって、安全な接続は、セキュアソケットレイヤー（ＳＳＬ）のような、アプリケーションレイヤー（ＯＳＩレイヤー７）メカニズムを使うことができる。クライアント１２００とＳＣＳ１４００との間のすべての順次のコミュニケーションは、この安全なコミュニケーションチャンネル上で行うことができる。
【００２９】
クライアント１２００は、図４に示されているように、ステップ２０２０において、所望のサーバ１１００と接続されるための要求をＳＣＳ１４００に送信する。これは、ユーザ要求のようなクライアント起動事象の結果であり得、またはクライアント１２００が、任意の新しいＮＡＴを有するネットワークとの接続や、そのネットワークパラメーターのいかなる変化にも対応して、パワーオンで常に自動的にこのステップを実行するようにプログラミングされ得、これによって、いかなるユーザ設定または介入なしに、サーバ１１００との安全な接続の自動的かつ動的な起動／確立および、再確立を提供する。
【００３０】
ＳＣＳ１４００は、ステップ２０３０において、クライアントＮＡＴ公共アドレスである、特定のあて先のインバウンドポートを構成するサーバに固有のタグを送信し、無作為に生成された接続識別子（ＩＤ）をサーバ１４００から受信する。本発明の実施形態にしたがって、サーバ１１００によって提供されたあて先のインバウンドポートは、クライアント１２００との安全な接続の起動、確立および使用を通じて、閉鎖したままであることが理解される。図５に示されているように、このＳＣＳで提供される情報を使用して、サーバ１１００は、サーバ１１００によってクライアント１２００に対して作られる可能性のある接続の、それ自身の終了を設定する。この設定の性質は、今後作られ、しかし一般にいくつかのキー生成と交換を含む、安全な接続の性質に依存する。たとえば、本発明の局面にしたがって、安全な接続は、ＩＰＳＥＣのようなネットワークワークレイヤー（ＯＳＩレイヤー３）上で作られ得る。本発明の別の局面にしたがって、安全な接続は、セキュアソケットレイヤー（ＳＳＬ）のような、アプリケーションレイヤー（ＯＳＩレイヤー７）メカニズムを使うことができる。
【００３１】
図６に示されているように、ステップ２０４０において、ＳＣＳ１４００は、サーバから提供されたＩＰアドレスおよびあて先のポートに、ＩＤを含む未承諾のＵＤＰまたはＴＣＰパケットを送信するように、クライアント１２００に指示する。ＳＣＳ１４００は、サーバ１１００によってクライアント１２００に作られる安全な接続のクライアント終了を設定する。また、クライアント側として、この設定の性質は、今後作られる、一般にいくつかのキー生成と交換を含む、安全な接続の性質に依存する。例えば、本発明の局面にしたがって、安全な接続は、セキュアソケットレイヤー（ＳＳＬ）のような、アプリケーションレイヤー（ＯＳＩレイヤー７）メカニズムを使うことができる。
【００３２】
クライアント１２００は、ステップ２０５０において、ＳＣＳ１４００によって提供されたサーバＩＰアドレスおよびあて先のポートに、ＵＤＰまたはＴＣＰパケットを送信する。サーバ１１００とサーバファイアウォール１３００は、クライアント１２００へつながらないままであることが理解される。これは、ステップ２０５０において、クライアント１２００とサーバ１１００との間の、クライアントＮＡＴルータ１３００の中の一時的なマッピングを確立する。このマッピングは、クライアントの本当のＩＰアドレスとソースポート（プライベートサイド）と、ＮＡＴの不当なクライアントＩＰアドレスとソースポート（パブリックサイド）との間の解釈を構成する。このマッピングは、作られた後の短時間で効果があり、それゆえに、マッピングが作成された特定の期間内に、サーバ１１００がマッピングでクライアント１２００と接続することを可能にする。
【００３３】
サーバファイアウォール１３００は、ステップ２０５０において、ＵＤＰまたはＴＣＰパケットを見て、その中のＩＤとＮＡＴ公共アドレスを、それがＳＣＳ１４００から受取ったものと比較する。一致している場合には、サーバファイアウォール１３００は、事象についてサーバ１１００に告知する。それから、サーバファイアウォール１３００は、図７に示されているように、ステップ２０５０において、未承諾のパケットを落とす、すなわち、そのパケットはサーバＩＰスタックに入ることができない。サーバファイアウォール１３００は、それらがクエリーパケットであるかどうか確かめるために、特定のあて先のポート上の着信パケットをチェックしつづける。本発明の実施形態にしたがって、サーバファイアウォール１３００は、真のクライアント１２００を装ったホストによる接続要求のような、セキュリティへの攻撃から守るために、タグのすべて３つの要素をチェックする。サーバファイアウォール１３００は、ＮＡＴ公共アドレスから、特定のあて先ポートへ来るパケット、および、無作為に生成されるＩＤを含むパケットだけを考慮する。さらなるセキュリティ対策として、ＵＤＰ／ＴＣＰパケットがこの技術の一部として暗号化され得る。
【００３４】
サーバ１１００は、ステップ２０６０において、サーバファイアウォール１３００によって転送されたソースポートを利用して、クライアント１２００へのＵＤＰまたはＴＣＰ接続を起動する。ステップ２０５０で作成されたＮＡＴマッピングは、適切な期間（ＵＤＰまたはＴＣＰパケットを受取ってから少なくとも数秒）のあいだ有効であることが理解される。本発明の局面にしたがって、図８にあるように、ステップ２０６０において、サーバ１１００はこの方法でＮＡＴを通じてクライアントに接続できる。
【００３５】
パワーオンや一回のマウスクリック、または一回のキーストライクのような一回の単一のユーザ動作以外の、いずれかのユーザ介入を必要とせずに、クライアント１２００が違う接続場所に移動されるような、そのネットワークアドレスパラメーターの変化に応じて、クライアント１２００がサーバ１１００と自動的に接続、および動的に再接続されることを当業者は理解する。結果として、クライアント１２００は、いかなるユーザ情報を注意する必要がなく、またはこの発明の実施形態を用いて、サーバ１１００と接続されるためのいかなるユーザ機能を処理または実行する必要がないことが理解される。
【００３６】
例を用いて、本発明の実施形態にしたがって、ＴＣＰ／ＳＳＬを介してインターネット上で、サーバ１１００とステートレス（ｓｔａｔｅｌｅｓｓ）クライアント１２００との間の安全な接続を確立することに対する発明の適用性が理解される。ステートレスクライアント１２００は、一般にいかなるユーザ機能も実行しない、いかなるユーザデータも含まないコンピュータとして定義される。さらに正確にはステートレスクライアント１２００は、ＣＰＵ、メモリー、フレームバッファとネットワークポート、マウスとキーボード入力とオプショナルＩＯポートで構成されるネットワーク装置として組み立てられ得る。それはネットワークおよび表示管理固定機能を実行するだけの組み込み式ソフトウェアによって操作され、いかなるダウンロードおよび他のソフトウェアの実行はなされない。それは、いかなるアプリケーションも実行しない。唯一の目的は、リモートヒューマンインターフェイスデバイスであることである。組み込み式ソフトウェアは、インターネットのようなネットワーク上でサーバとのコミュニケーションのためにネットワークスタックを実行する。
【００３７】
クライアントがステートレスであることは、すべての遂行がサーバ側である、アプリケーションまたはコンピュータ環境と人間との相互関係を意味する。クライアントにはアプリケーション状態またはデータがいつも存在しない。それが所有する唯一の状態は一時的な性質のものであり、ネットワーク接続状態、すなわち、ＴＣＰ接続状態に関係するものである。実施形態にしたがって、本発明は唯一、ここで詳細に説明されるように、ＴＣＰ上のセキュリティーソケットレイヤー（ＳＳＬ）を実行するためのステートレスクライアントのネットワークスタックを使用し、これ以降、いかなる状況においてもいかなるユーザ機能を実行できないような、サーバ１１００とステートレスクライアント１２００との間の安全な接続の自動的かつ動的な確立を可能とする。
【００３８】
ステートレスクライアント１２００は、ＴＣＰ／ＳＳＬを介してＳＣＳ１４００と自動的に接続し、新しく確立された接続上で要求されたサーバ１１００の名前を送信する。
【００３９】
ＳＣＳ１４００は、ソケット接続からステートレスクライアントＩＰアドレスを検出する。ＳＣＳ１４００は、要求されたサーバ名を読みとり、それが所望のサーバ１１００との接続を有するかどうかを決定する。ＳＣＳ１４００が、所望のサーバ１１００の接続を有しない場合には、ＳＣＳ１４００は、このような接続が得られるまで待つか，ステートレスクライアント１２００に後で再試行するように指示するかのどちらかである。サーバ１１００がＳＣＳ１４００と接続している場合には、ＳＣＳ１４００は、サーバ１１００にステートレスクライアントＩＰアドレスを送信する。サーバ１１００は、ステートレスクライアントアドレスを読み取り、固有の３２ビットの無作為な番号の識別子（ＩＤ）を生成し、そのＩＰアドレスとポートと共にＩＤをＳＣＳ１４００に送信する。サーバ１１００は次いで、ＩＤの値に対してセットされた初期シーケンス番号を有するステートレスクライアント公共ＩＰアドレスから「ＴＣＰ  ＳＹＮ」（ＴＣＰ接続要求）パケットを探知する（ｓｎｉｆｆ）ように、そのファイアウォール１３００に指示する。
【００４０】
一方では、ＳＣＳ１４００は、サーバＩＰアドレス、ポートおよびＩＤをステートレスクライアント１２００に転送する。この点で、ステートレスクライアント１２００は、ＩＤの値に対してセットされた初期シーケンス番号を有するサーバＩＰアドレスとポートに対する未承諾のＴＣＰ接続要求を生成する。この外部向けのパケットは、サーバ１１００へのいかなるＮＡＴでも準備し、また、ステートレスクライアントのネットワークスタックの底でＳＥＱ変換層のＩＤとともに、サーバＩＰアドレスおよびポートを挿入する。このパケットが、サーバ１１００に到着すると、サーバファイアウォール１３００は、一致を探し、次の３つのタスクを実行する。すなわち、ａ）ステートレスクライアントのアドレス／ポート、サーバのアドレス／ポートおよびシーケンス番号を保存する、ｂ）サーバ１１００に通知し、ステートレスクライアントの公共ポートを提供する、ｃ）パケットを送る。
【００４１】
サーバ１１００は、サーバファイアウォール１３００を横に繋げるステートレスクライアントＩＰ／ポートへのＴＣＰ接続を開けている。サーバファイアウォール１３００は、外部ＴＣＰ接続要求（ＳＹＮフラッグは、設定）を見つけ、一致するものを探し、ＴＣＰ
ＡＣＫフラッグと認識番号を設定する。外部的に、パケットは、ステートレスクライアント１２００から受信した未承諾のＴＣＰ接続要求への返答に似ており、それはＮＡＴゲートウェイを通じてステートレスクライアント１２００へ戻ってくるものであることが、理解される。
【００４２】
ステートレスクライアント１２００へのパケットの到着により、ＳＥＱ変換層はパケットをマッチングし、ステートレスクライアントＴＣＰスタックがサーバ１１００からの真の接続要求を見つけるように、ＴＣＰ  ＡＣＫフラッグを削除する。
【００４３】
ステートレスクライアントＴＣＰスタックは接続を受け入れ、ＳＹＮとＡＣＫフラッグの双方を持つＴＣＰパケットに応答する。このＴＣＰパケットはＳＥＱ変換層によってマッチングされ、それはＳＹＮフラッグを削除し、ステートレスクライアント認識番号と以前に保存されたＩＤとの間の違いを保存する。ネットワーク上で、このＴＣＰパケットは、ＴＣＰの３ウェイハンドシェークの第３の部分に似ていることが、理解される。
【００４４】
ステートレスクライアント１２００からのＴＣＰパケットがサーバファイアウォール１３００に到着する時には、ＴＣＰパケットはマッチングされ、ＳＹＮフラッグが設定される。このＴＣＰパケットは、接続要求への返答であるので、サーバファイアウォールを通過する。サーバ１１００から来る真の第３のＴＣＰハンドシェークパケットは、正常な認識パケットとして取り扱われるので、変更なしに通過する。ステートレスクライアント１２００で、それぞれの到着するパケットは、以前に保存されたシーケンスの違いによって調整された認識番号を得、それぞれの外部に行くパケットは、違いによって調整されたシーケンス番号を得る。サーバ１１０とステートレスクライアント１２００との間の接続の終了に、特定のフラッグマングリング（ｆｌａｇ  ｍａｎｇｌｉｎｇ）は必要でないことが、理解される。
【００４５】
本発明とその利点が詳細に説明されてきたが、ここに添付の特許請求の範囲によって規定される本発明の精神および範囲から逸脱することなく、様々な変更、置換、代替がなされ得ることが理解されるべきである。さらに、本出願の範囲は、明細書で説明された処理、装置、製造、物質の組み合わせ、手段、方法およびステップの、特別な実施形態に限定されることを意図しない。当業者が本発明の開示から容易に理解するように、現在存在する、またはここに記載された対応する実施形態と実質的に同じ機能を実行し、または実質的に同じ結果を達成するために、今後開発される、処理、装置、製造、物質の組み合わせ、手段、方法、またはステップが、本発明に従って使用され得る。したがって、本願の特許請求の範囲は、このような処理、装置、製造、物質の組み合わせ、手段、方法、またはステップを、その範囲内に含むことを意図する。
【図１】
2011072038.tif 000003
【図２】
2011072038.tif 000004
【図３】
2011072038.tif 000005
【図４】
2011072038.tif 000006
【図５】
2011072038.tif 000007
【図６】
2011072038.tif 000008
【図７】
2011072038.tif 000009
【図８】
2011072038.tif 000010