(57)【要約】【課題】管理者特権を必要とせずに複数の仮想プライベートネットワーク接続を作成することを可能にし、またそれぞれの仮想ネットワーク接続についての専用の仮想アダプターの代わりに、単一の仮想アダプターを使用してネットワークトラフィックを送ることを可能にする。【解決手段】コンピュータ実装方法は、コンピュータシステム上で実行されるオペレーティングシステムのユーザー空間部分内に存在する仮想プライベートネットワーク（ＶＰＮ）クライアントのルーティングコンポーネントによってネットワークを経由してデータパケットを受信するステップと、ルーティングコンポーネントによってネットワーク上のデータパケットの宛先を特定するステップと、ＶＰＮクライアントによってデータパケットの宛先に対応するゲートウェイへの接続を確立するステップと、ゲートウェイを経由してデータパケットを宛先に送信するステップと、を含む。【選択図】図１２
2018139448.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、
コンピュータシステム上で実行されるオペレーティングシステムのユーザー空間部分内に存在する仮想プライベートネットワーク（ＶＰＮ）クライアントのルーティングコンポーネントによってネットワークを経由してデータパケットを受信するステップと、
前記ルーティングコンポーネントによって前記ネットワーク上の前記データパケットの宛先を特定するステップと、
前記ＶＰＮクライアントによって前記データパケットの前記宛先に対応するゲートウェイへの接続を形成するステップと、
前記ゲートウェイを経由して前記データパケットを前記宛先に送信するステップと、
を含む方法。
【請求項２】
前記データパケットが前記オペレーティングシステムのカーネル空間部分内で動作する仮想アダプターを経由して受信される請求項１に記載の方法。
【請求項３】
前記データパケットの前記宛先を特定するステップが、前記データパケットの前記宛先に対応する前記ゲートウェイを特定するステップを含む請求項１に記載の方法。
【請求項４】
前記ゲートウェイへの接続を形成するステップが、転送制御プロトコル接続を確立するステップを含む請求項１に記載の方法。
【請求項５】
前記ゲートウェイへの接続を確立するステップが、ユーザーデータグラムプロトコル接続を確立するステップを含む請求項１に記載の方法。
【請求項６】
前記ゲートウェイ接続を解除するステップをさらに含む請求項１に記載の方法。
【請求項７】
請求項１に記載の方法であって、さらに、
前記ルーティングコンポーネントによって複数のデータパケットを受信するステップと、
前記複数のデータパケットからの各データパケットそれぞれについて前記ネットワーク上のそれぞれの宛先を特定するステップと、
前記複数のデータパケット内で各データパケットそれぞれについてそれぞれの宛先に対応するゲートウェイへのそれぞれの接続を確立するステップと、
各データパケットそれぞれを、そのそれぞれのゲートウェイ接続を経由してそのそれぞれの宛先に送信するステップと、
を含む方法。
【請求項８】
前記複数のゲートウェイ接続の一つまたは複数を解除するステップをさらに含む請求項７に記載の方法。
【請求項９】
前記複数のデータパケットがそれぞれ、前記オペレーティングシステムのカーネル空間内で動作する単一の仮想アダプターを通して送られる請求項１に記載の方法。
【請求項１０】
前記ルーティングコンポーネントがルーティングテーブルを備える請求項１に記載の方法。
【請求項１１】
前記ルーティングテーブルがデータパケットの宛先アドレスを特定する請求項１０に記載の方法。
【請求項１２】
非一時的なコンピュータ読取可能媒体であって、
実行したとき、コンピュータシステムに、
前記コンピュータシステム上で実行されるオペレーティングシステムのユーザー空間部分内に存在する仮想プライベートネットワーク（ＶＰＮ）クライアントのルーティングコンポーネントによってネットワークを経由してデータパケットを受信させ、
前記ルーティングコンポーネントによって前記ネットワーク上の前記データパケットの宛先を特定させ、
前記ＶＰＮクライアントによって前記データパケットの前記宛先に対応するゲートウェイへの接続を確立させ、
前記ゲートウェイを経由して前記データパケットを前記宛先に送信させる、
命令を格納している非一時的なコンピュータ読取可能媒体。
【請求項１３】
コンピュータシステムであって、
プロセッサと、
メモリであって、
前記プロセッサと通信しており、
前記プロセッサによって実行されたとき、前記コンピュータシステムに、
前記コンピュータシステム上で実行されるオペレーティングシステムのユーザー空間部分内に存在する仮想プライベートネットワーク（ＶＰＮ）クライアントのルーティングコンポーネントによってネットワークを経由してデータパケットを受信させ、
前記ルーティングコンポーネントによって前記ネットワーク上の前記データパケットの宛先を特定させ、
前記ＶＰＮクライアントによって前記データパケットの前記宛先に対応するゲートウェイへの接続を確立させ、
前記ゲートウェイを経由して前記データパケットを前記宛先に送信させる、
命令を格納しているメモリと、
を備えるコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本明細書は、米国特許出願公開第１４／６３０５５０号（２０１５年２月２４日出願、「ＭＵＬＴＩ−ＴＵＮＮＥＬＩＮＧ  ＶＩＲＴＵＡＬ  ＮＥＴＷＯＲＫ  ＡＤＡＰＴＥＲ」）、および、米国仮特許出願第６２／１１２４５７号（２０１５年２月５日出願、「ＭＵＬＴＩ−ＴＵＮＮＥＬＩＮＧ  ＶＩＲＴＵＡＬ  ＮＥＴＷＯＲＫ  ＡＤＡＰＴＥＲ」）、に基づく優先権を主張するもので、その開示内容は参照によって本明細書に組み込まれる。
【０００２】
本明細書は、米国特許出願請求第１４／５７８１４０号（２０１４年１２月１９日出願、「ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ  ＦＯＲ  ＰＲＯＴＥＣＴＩＮＧ  ＮＥＴＷＯＲＫ  ＤＥＶＩＣＥＳ」に関連するもので、その開示内容は参照によって本明細書に組み込まれる。
【背景技術】
【０００３】
クライアント−サーバーネットワークモデルでは、企業またはサービスプロバイダは一般に、コンピュータネットワークを通してクライアントコンピュータおよびその他のサービスにサービスおよび／またはアプリケーションを提供している。サーバーおよび関連サービスには、例えば、メールサーバー、ファイルサーバー、顧客関係管理あるいはＣＲＭサービス、企業資源計画あるいはＥＲＰサービス、文書管理サービス、および、これに類するもの、が含まれうる。
【０００４】
一方で、これらのサービスへのアクセスを、信頼できるユーザーおよびクライアントのみに制限することによってセキュリティを保証する必要がある。その一方で、信頼できるユーザーは、サービスに容易かつ直接的なやり方でのアクセスを必要とする。サービスは、いつでも、どこからでも、利用できることが好ましい。「私的デバイス活用」（Ｂｒｉｎｇ  ｙｏｕｒ  ｏｗｎ  ｄｅｖｉｃｅ、ＢＹＯＤ）の方針が、企業でますます受け入れられるようになるにつれ、サービスもまた「どんなもの」からでも、すなわち例えば、タブレットコンピュータ、ラップトップコンピュータ、自宅の個人所有コンピュータ、または、スマートフォン、など、信頼できるユーザーが所有する任意の端末から利用できるべきである。
【０００５】
こうしたアプリケーションサーバー、または、これらのアプリケーションサーバーによって提供されるサービスもしくはアプリケーション、への無許可アクセスを防止するための従来的なアプローチは種々存在する。例えば、アプリケーションサーバーをプライベートネットワーク内に配置することは、企業内ネットワークやローカルエリアネットワーク（ＬＡＮ）をインターネットやその他の外部パブリックネットワークから分離するため、そのこと自体がセキュリティ措置である。プライベートネットワーク内の装置、および、当該装置により提供されるサービス、は、パブリックネットワークからは見えない。プライベートネットワーク内のトラフィックの内容、および、トラフィックが企業のネットワークの境界を越えることができる様式、は、ＷＡＮを企業のプライベートネットワークから分離するゲートウェイ装置内で、ネットワークアドレス変換（ＮＡＴ）、ファイアウォールルール、および、プロキシ、を使用することにより、規制および監視することができる。プライベートネットワークはさらに、アプリケーションサーバーを企業のプライベートネットワーク内のクライアントによる潜在的な無許可アクセスからさらに分離する目的で、物理的にまたは例えば仮想ＬＡＮによって仮想的に細分されうる。
【０００６】
ネットワークレベルのセキュリティは、クライアントのファイアウォールを（デフォルトで）認証サーバーへのアクセスが許可されるように構成することによるなど、ユーザーごとに、または、クライアントごとに、適用されうる。クライアントが認証されたとき、クライアントのファイアウォールは開かれ、すべてのネットワーク装置が、クライアントのネットワークトラフィックをアクセスが許可されたアプリケーションサーバーに通過させるように構成される。
【０００７】
クライアントまたはユーザーのレベルに対するネットワークレベルのセキュリティも、アイデンティティプロファイルおよび健全性プロファイルに基づきユーザー用のアクセス権を生成するコントローラによって試みられうる。次に、コントローラは保護装置を構成し、それによって一組のサーバーにネットワークアクセスを提供する。
【０００８】
受入側ホスト内でのネットワークレベルのセキュリティの適用は、コントローラによるホストの構成によって試みられうる。開始側ホストが受入側ホストへのアクセスを許可されているとき、コントローラは、開始側ホストからのネットワーク接続を受け入れるように受入側ホストを構成する。
【０００９】
プライベートネットワーク内でのセキュリティはさらに、ユーザーまたはクライアントがサーバー上のサービスに認証後にのみアクセスできるアプリケーションレベルのセキュリティにより適用されうる。こうした場合に、クライアントは、例えばそのＩＰネットワークアドレスによってネットワーク内のアプリケーションサーバーを見つけることができ、また、そのＴＣＰまたはＵＤＰポート番号によってアプリケーションサーバー上で実行されているサービスを見つけることができるが、サービスまたはアプリケーションそれ自体は、認証クレデンシャルに基づきクライアントまたはユーザーを拒否しうる。こうした認証は、個別のサービスによってローカルで、または、認証サーバーによって中央で、管理されうる。次にサービスは、一定のサービスへのユーザーおよび／またはクライアントのアクセスを許可する前に、認証クレデンシャルをこうした認証サーバーに対して照合する。
【００１０】
企業のプライベートネットワークへのアクセスは、セキュアなネットワーキングトンネルがクライアント端末とプライベートネットワークの間に設定されるＶＰＮまたは仮想プライベートネットワークによって確立されうる。こうしたトンネルの設定は、ＶＰＮサーバーでの認証によってのみ許可される。信頼できるユーザーおよび／またはクライアントのみがＶＰＮに参加できることを確実にするために、異なる認証の仕組みが存在する。
【００１１】
企業のプライベートネットワーク内のサービスへのアクセスを提供するための別の解決策は、一部のサービスへの外部アクセスを解放することによるものである。例えば、電子メールサーバーは、ユーザーが職場内にいないときに自分の電子メールをチェックできるように、外部からの接続を許容しうる。これらのサービスは、ときには、クライアントが、サービスが実行されているサーバーへの物理的なネットワークアクセスを持たず、サービスの一部分を提供しているウェブサーバーに対してのみアクセスを持つように、企業のウェブサイトを通してなど、特定のインターフェースを通したアクセスのみを提供することによって制限される。
【００１２】
リスクベースの認証では、サービスへのアクセスは、認証クレデンシャルによるユーザーおよび／またはクライアントの識別に基づくだけでなく、リスクレベルに対してふさわしい信頼のレベルを導き出すためのさらなる測定基準に基づいても許可される。こうした測定基準は例えば、ユーザーの位置、クライアントのタイプ、オペレーティングシステム、すべてのセキュリティパッチがインストール済みであるかどうか、ユーザーのログオン履歴、などである。このように、ＶＰＮによってログオンするユーザーは、プライベート
ネットワーク内からログオンするときであれば受けない制限を受ける場合がある。あるいは、プライベートネットワーク内から個人所有の端末を用いてログオンするユーザーは、一部のサービスを拒否される場合がある。
【００１３】
仮想ネットワークアダプターは、ＶＰＮ接続をセットアップして、それによってオペレーティングシステムが仮想アダプターを通してＶＰＮに向かうようパケットを送るときに使用される。仮想アダプターは、オペレーティングシステムのカーネル空間内で実行される。ＶＰＮソフトウェア、すなわち、ユーザー空間内で実行される専用のソフトウェアアプリケーションは、その後、完全なパケットを暗号化して、それをその宛先（逆のプロセスが発生する反対側にあるＶＰＮサービス）に送信する。ところが、従来のシステムでは、アダプターはカーネル空間内に存在するため、仮想アダプターを作成するには、管理者特権が必要とされる。さらに、ＶＰＮ接続がなされるたびに、新しい仮想アダプターが必要とされる。本開示の実施形態は、これらおよびその他の問題に対処する。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
とりわけ、本開示の実施形態は、管理者特権を必要とせずに複数の仮想プライベートネットワーク接続を作成することを可能にし、またそれぞれの仮想ネットワーク接続についての専用の仮想アダプターの代わりに、単一の仮想アダプターを使用してネットワークトラフィックを送ることを可能にする。
【課題を解決するための手段】
【００１５】
本開示の一実施形態によるコンピュータ実装方法は、コンピュータシステム上で実行されるオペレーティングシステムのユーザー空間部分内に存在する仮想プライベートネットワーク（ＶＰＮ）クライアントのルーティングコンポーネントによってネットワークを経由してデータパケットを受信するステップと、
ルーティングコンポーネントによってネットワーク上のデータパケットの宛先を特定するステップと、
ＶＰＮクライアントによってデータパケットの宛先に対応するゲートウェイへの接続を確立するステップと、
ゲートウェイを経由してデータパケットを宛先に送信するステップと、を含む。
【００１６】
本開示には、様々な方法と、そうした方法を実行する器具（コンピュータシステムを含む）と、コンピューティングシステムによって実行されるときに、コンピューティングシステムにそうした方法を実行させる命令を含むコンピュータ読取可能媒体とが含まれる。
【００１７】
その他の特徴は、添付されている図面から、および下記の詳細な説明から明らかとなる。
【図面の簡単な説明】
【００１８】
【図１】本開示の様々な態様による、信頼できないクライアント端末によるネットワークアクセスからネットワーク装置を保護するためのシステムの一例。
【図２】本開示の様々な態様による、保護されたネットワーク装置へのネットワークアクセスを得るためにクライアント端末によって実行されるプロセスの一例。
【図３】本開示の様々な態様による、クライアント端末にクライアントアクセスおよびトンネルのリストを提供して、保護ネットワーク装置へのネットワークアクセスをこのクライアントに許可するために、認証サーバーによって実行されるプロセスの一例。
【図４】本開示の様々な態様による、このゲートウェイ内のファイアウォールの内側にある保護されたネットワーク装置へのアクセスをクライアントに提供するためにゲートウェイによって実行されるプロセスの一例。
【図５】本開示の様々な態様による、第一の判断のこれらのネットワーク装置へのアクセスを得た後で、ゲートウェイのファイアウォールの内側にある第二の判断のネットワーク装置へのネットワークアクセスを得るために、クライアント端末によって実行されるプロセスの一例。
【図６】本開示の様々な態様による、クライアントとクライアント端末との間にネットワーキングトンネルを維持するための、クライアント端末とゲートウェイとの間でのキープアライブメッセージの交換の一例。
【図７】本開示の様々な態様による、信頼できないクライアント端末によるネットワークアクセスからネットワーク装置を保護するためのシステムの一例。
【図８】本開示の様々な態様による、信頼できないクライアント端末によるネットワークアクセスからネットワーク装置を保護するためのシステムの一例。
【図９】本開示の様々な態様による、信頼できないクライアント端末によるネットワークアクセスからネットワーク装置を保護するためのシステムの一例。当例では、ゲートウェイのネットワーキング負荷の均衡が第二のゲートウェイにより保たれている。
【図１０】本開示の様々な態様による、コンピューティングシステムの一例。
【図１１】ＶＰＮ接続およびルーティングパケットを作成するための従来的な方法を示すシステムの一例。
【図１２】本開示の様々な態様によるマルチトンネル方式仮想ネットワークアダプターを利用したシステムの一例。
【図１３】本開示の様々な態様によるマルチトンネル方式仮想ネットワークアダプターを利用した別のシステムの一例。
【図１４】本開示の様々な態様によるプロセスの一例。
【発明を実施するための形態】
【００１９】
主題についてこれ以降、本発明の一部を形成し、かつ実例として、特定の実施形態例を示す添付図面を参照しながらより詳細に説明する。ただし、主題は様々な異なる形態で具体化することができ、従って、網羅または請求されている主題は、本明細書に記載された任意の実施形態例に限定されないものとして解釈されることが意図され、実施形態例は単に例証として提供される。同様に、請求または網羅されている主題について合理的に広い範囲が意図されている。中でも、例えば、主題は方法、装置、コンポーネント、または、システム、として具体化されうる。したがって、実施形態は、例えば、ハードウェア、ソフトウェア、ファームウェア、または、それら（ソフトウェア自体以外）の任意の組み合わせ、の形態をとりうる。よって、下記の詳細な説明は、制限的な意味でとられることを意図していない。
【００２０】
添付図面では、一部の特徴は、特定のコンポーネントの詳細を示すために誇張されている場合がある（また、図中に示されている任意のサイズ、材料および類似した詳細は、例示的なものであって、制限的なものではないことが意図される）。よって、本明細書で開示されている特定の構造および機能の詳細は、制限するものとしては解釈されるべきでなく、単に、開示された実施形態を多様に採用するために当業者に教示するための代表的な基本として解釈されるべきである。
【００２１】
本明細書での「一つの実施形態」または「実施形態」への言及は、実施形態に関連して説明された特定の特徴、構造、または特性が本開示の少なくとも一つの実施形態に含められていることを意味する。本明細書の様々な場所で「一つの実施形態で」という語句が出てくるとき、必ずしも全てが同一の実施形態を言及するのでも、別個のまたは代替的な実施形態がその他の実施形態と相互排他的であるわけでもない。さらに、ある一部の実施形態によって示され、他の実施形態によっては示されない場合がある、様々な特徴が説明されている。同様に、ある一部の実施形態についての要件ではあるが、他の実施形態については要件でない、様々な要件が説明されている。
【００２２】
本明細書に描写された方法の要素の任意の組み合わせおよび／またはその部分集合を、互いに組み合わせたり、様々な条件に基づき選択的に実行したり実行しなかったり、望ましい任意の回数だけ反復したり、適切な任意の順序でかつ適切な任意のシステム、装置、および／または、プロセス、とともに実施したりしてもよい。本明細書で説明および描写した方法は、一つまたは複数のコンピュータシステム上で動作するソフトウェアを通してなど、適切な任意の様式で実施できる。ソフトウェアは、有形のコンピュータ読取可能媒体（コンピュータシステムのメモリなど）内に格納され、かつ、様々な実施形態の方法を実施するために一つまたは複数のプロセッサによって実行されうる、コンピュータ読取可能命令を備えうる。
【００２３】
図１は、本開示の様々な態様によるネットワーク装置を望ましくないネットワークアクセスから保護するためのシステムの一例である。この例では、３つのネットワーク装置（アプリケーションサーバー１４１、１４２、および、１４３）がプライベートネットワーク１４０の一部である。サーバー１４１〜１４３へのアクセスは、プライベートネットワーク１４０内からプライベートネットワークアドレスを経由して得られる。この文脈では、「プライベート」という用語は、アプリケーションサーバー１４１〜１４３がグローバルにルーティング可能ではないという事実を意味する。言い換えれば、アプリケーションサーバー１４１〜１４３は、それらのプライベートネットワークアドレスによっては、プライベートネットワーク１４０の外部からアドレス指定できない。
【００２４】
図１のプライベートネットワーク１４０およびその他のコンポーネントは、インターネットプロトコル（ＩＰ）または伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）とも呼ばれる任意の数やタイプの通信プロトコルを利用しうる。例えば、プライベートネットワーク１４０は、インターネットプロトコルバージョン４（ＩＰｖ４）についてＲＦＣ  １９１８で、および、インターネットプロトコルバージョン６（ＩＰｖ６）についてＲＦＣ  ４１９３で、それぞれ規定されているアドレス範囲を持ちうる。
【００２５】
アプリケーションサーバー１４１〜１４３は、ネットワーク１４０を通してその他のコンピューティング装置にサービスを提供する。任意の数やタイプのアプリケーションサーバーおよび関連サービスを、メールサーバー、ファイルサーバー、顧客関係管理あるいはＣＲＭサービス、企業資源計画あるいはＥＲＰサービス、および／または、文書管理サービス、などの本開示の実施形態とともに使用しうる。
【００２６】
データ接続は、そのサービスに関連付けられたポート（またはポート範囲）について、それぞれのアプリケーションサーバーとの通信ソケットを開くことにより、アプリケーションサーバー１４１〜１４３のいずれかとの間で確立されうる。アプリケーションサーバー１４１〜１４３は、プライベートネットワークアドレスに関連付けられた物理ネットワーキングインターフェースを備えた物理的装置に対応しうる。あるいは、アプリケーションサーバー１４１〜１４３は、一つまたは複数の物理サーバー上で実行される仮想サーバーインスタンスにも対応しうる。仮想サーバーインスタンスはそれぞれ、関連付けられたプライベートネットワークアドレスを持つ仮想ネットワークインターフェースを持ちうる。仮想サーバーインスタンスは、一つまたは複数のユーザー空間インスタンス（ソフトウェアコンテナ、仮想エンジン、仮想プライベートサーバー、および／または、ｊａｉｌ、としても知られている）を含み、またそれらとともに動作しうる。こうしたユーザー空間インスタンスは、ＤＯＣＫＥＲソフトウェアツール経由など、適切な任意の方法で実施されうる。
【００２７】
図１に示す例では、プライベートネットワーク１４０はゲートウェイ１００によって外部ネットワーク１８０から分離されており、それによって外部ネットワーク１８０とプラ
イベートネットワーク１４０との間のネットワーキングトラフィックが、制御された方式で許容される。図１のシステムは、その上で実行されているサービスを使用するためにプライベートネットワーク１４０内のアプリケーションサーバー１４１〜１４３のうち一つまたは複数へのアクセス権を持つ「信頼できるクライアント」として、クライアント１２１、１２２を識別することができる。クライアント１２１、１２２は、物理ハードウェアおよび／または仮想コンポーネントでもよく、または、それを含んでもよい。例えば、クライアント１２１、１２２は、モバイル装置などの物理的装置上で実行される仮想オペレーティングシステムを含みうる。システムはまた、クライアント１２１、１２２がアクセスを許可された選択されたアプリケーションサーバー１４１〜１４３へのネットワークアクセスを付与し、クライアント１２１、１２２がアクセスを許可されていない任意のアプリケーションサーバーへのネットワークアクセスを拒否することができる。
【００２８】
クライアント１２１、１２２によるアプリケーションサーバー１４１〜１４３へのアクセスを制御するために、ゲートウェイ１００には、外部ネットワーク１８０内のクライアント１２１、１２２により要求があった場合にネットワーキングトンネルを確立するためのトンネルモジュール１０１が含まれる。図１に示す例では、ネットワーキングトンネル１８１、１８２は、トンネルモジュール１０１とクライアント１２１、１２２との間にそれぞれ確立され、それによってプライベートネットワーク１４０をクライアント１２１、１２２に拡張する。一部の実施形態では、仮想プライベートネットワーク（ＶＰＮ）は、トンネル１８１、１８２を通って確立される。このように、クライアント１２１、１２２には、ネットワーク１８０内であるにもかかわらず、プライベートネットワーク１４０の範囲でのプライベートネットワークアドレスが提供され、したがって、それらのそれぞれのプライベートネットワークアドレス（アクセスが許可されているものとし、下記に詳細に考察する）によって、すべてのアプリケーションサーバー１４１〜１４３に潜在的にアクセスできる。
【００２９】
トンネルはクライアント１２１、１２２の要求に伴い確立され、それによってトンネル認証情報がトンネルモジュール１０１に提供される。ユーザー名やパスワードなど、任意の量およびタイプの認証情報を本開示の実施形態とともに使用しうる。トンネル認証情報はまた、（または代替的に）バイオメトリクス、二因子認証、および／または、その他の暗号化方法、を含みうる。トンネル１８１、１８２内を移動するデータは、インターネットプロトコルセキュリティ（ＩＰｓｅｃプロトコル）、トランスポート層セキュリティ（ＴＬＳ）、および／または、データグラムトランスポート層セキュリティ（ＤＴＬＳ）、によるなどの暗号化によってさらに保護されうる。トンネル認証モジュール１０５は、トンネル認証情報を確認し、認証に成功した場合、それぞれのクライアントとの間でネットワーキングトンネルが確立される。
【００３０】
図１のゲートウェイ１００には、それぞれのトンネル１８１、１８２が確立された後で、クライアント１２１、１２２とアプリケーションサーバー１４１〜１４３との間のネットワークトラフィックを制御するためのファイアウォール１０２が含まれる。ファイアウォール１０２は、ファイアウォール構成モジュール１０３によって、または別の供給源からのファイアウォールルールに従い、こうしたトラフィックを制御しうる。一部の実施形態では、ファイアウォール構成モジュール１０３は、それぞれのクライアント１２１、１２２から受信したクライアントアクセスリストからファイアウォールルールを取得するが、これらのクライアントは次に認証サーバー１６０からクライアントアクセスリストを受信する。
【００３１】
中でも、ファイアウォールルールは、クライアント１２１、１２２がアプリケーションサーバー１４１、１４２、および、１４３、とのネットワーク接続を確立し維持できるようにする。クライアント１２１、１２２がどのアプリケーションサーバー１４１〜１４３
にアクセスできるかの選択は、クライアントアクセスリストから決定でき、そこからファイアウォールルールも取得される。ファイアウォールルールには、望ましい任意の情報が含まれうる。一部の実施形態では、例えば、ファイアウォールルールには、クライアントがアクセスを持ちうる情報を定義するエンタイトルメントトークンが含まれる。こうしたエンタイトルメントトークンは、ネットワークトラフィックアクセスだけでなく、様々なファイル（例えば、機密性が高いものとして分類されているもの（メタデータを含む））へのアクセスを許可／拒否するファイアウォールを構成するために使用されうる。
【００３２】
ファイアウォール１０２は、任意の数やタイプのシステム、装置、ハードウェアコンポーネント、および／または、ソフトウェアコンポーネント、でもよく、またはそれらを含んでもよい。例えば、ファイアウォール１０２は、複数のハードウェアおよび／またはソフトウェアコンポーネントが含まれる分散型ファイアウォールとして実施されうる。一部の実施形態では、ファイアウォール１０２は、デフォルトで、セキュアなトンネル１８０、１８１を通してクライアント１２１、１２２からのすべてのトラフィックをブロックするが、ファイアウォールルールに応答してトラフィックを許容するように構成されうる。例えば、クライアントアクセスリストにより、クライアント１２１がアプリケーションサーバー１４１にアクセスしてもよいことが示されている場合、ファイアウォール構成モジュール１０３は対応するルールを取得し、ファイアウォール１０２内でそれを有効化する。ルールを有効化した後、ファイアウォール１０２はもはやプライベートネットワーク１４０上での、クライアント１２１とアプリケーションサーバー１４１との間のネットワークトラフィックをブロックしなくなる。
【００３３】
図１のシステムには、クライアント１２１、１２２を認証し、クライアント情報を生成するための認証モジュール１６２をさらに含む認証サーバー１６０が含まれる。図１に示す例では、クライアント１２１、１２２がプライベートネットワーク１４０内でのアプリケーションサーバー１４１〜１４３へのアクセスを獲得するためには、まず認証サーバー１６０によってそれ自体を認証する必要がある。
【００３４】
認証サーバー１６０は、ハードウェアおよびソフトウェアコンポーネントの望ましい任意の組み合わせを使用して実施することができ、またその他のハードウェアおよびソフトウェアコンポーネントと望ましい任意の様式で通信しうる。図１に示すシステム例では、認証サーバー１６０はプライベートネットワーク１４０の一部ではないが、クライアント１２１、１２２はネットワーク１８０を通してアクセスすることができる。クライアント１２１、１２２によって提供される認証情報は、ユーザー名およびパスワード（これは認証モジュール１６２により確認されうる）を提供することによるなど、クライアントまたはクライアントのユーザーを一意に識別する。
【００３５】
クライアント１２１、１２２は、任意の数やタイプの異なる認証方法を使用して認証されうる。例えば、パスワード認証に加えて（または代替法として）、認証は、クライアントハードウェアの使用履歴およびクライアントのハードウェア属性など、クライアント１２１、１２２のハードウェアに基づく認証を利用しうる。一つの実施形態で、こうした情報はクライアント端末上のレコードに格納しうるが、それによって異なるマシンへのレコードの移動が検出されると、その結果として認証が不成功となる。レコードは、暗号化および／またはキー署名して、追加的な保全性を提供できる。認証はまた、クライアント１２１、１２２が所定の時間枠外に認証を試みた場合、認証が拒否（またはさらなる認証が要求）されるように、時間枠に基づくものともしうる。
【００３６】
認証は、クライアント１２１、１２２のインターネットプロトコル（ＩＰ）アドレス、またはクライアント１２１、１２２に関連付けられたＧＰＳ位置情報に基づくなど、位置ベースの情報に基づき実施されうる。例えば、クライアント１２１、１２２の物理的位置
は、ＧＰＳ位置情報、特定のＩＰアドレス、または、クライアントのＩＰアドレスの国コード、から決定されて、クライアント１２１、１２２が真正なクライアントであるか、または、当該クライアントに偽装する第三者（ハッカーなど）であるかを判断するために使用されうる。ＩＰアドレス（国コードなどに基づく個別または範囲など）を、以前の履歴（すなわち、ハッキングの試み、認証不成功など）に基づき、ブラックリストまたはホワイトリストに登録してもよい。同様に、認証に使用される位置ベースの情報は、接続を試みる際にクライアント１２１、１２２によって使用される物理ネットワークからも導き出されうる。
【００３７】
認証モジュール１６２は、コンテキストまたはステータス情報をクライアント１２１、１２２から直接受信しうる。こうした情報がクライアントから直接受信されて、したがって認証サーバーによって確認できないとき、それは信頼できない「クライアントコンテキスト情報」として扱われる場合がある。クライアント情報に含められうるクライアントコンテキスト情報には、例えば「ｈｏｓｔ．ｄｏｍａｉｎ．ｃｏｍ」といった完全修飾ドメイン名（ＦＱＤＮ）の形態としうるホスト名、ホスト上で実行されるオペレーティングシステムの系統およびバージョン番号、そのためのパッチがオペレーティングシステムに適用されたことを示すパッチレベル、クライアント上にインストールされたアンチウイルスソフトウェアのステータス、および／または、クライアント端末のユーザーがクライアントにログオンしていた時間の長さ、といった情報が含まれうる。
【００３８】
認証モジュール１６２はまた、「信頼できるクライアント情報」をクライアント情報に追加しうるが、これにはユーザーが所属するユーザーグループおよび部門を示すユーザー構成員情報などの情報を含めうる。信頼できるクライアント情報は、軽量ディレクトリアクセスプロトコル（ＬＤＡＰ）またはアクティブディレクトリ（ＡＤ）サービスを使用して、ユーザーディレクトリシステムにより提供されうる。信頼できるクライアント情報にはまた、認証サーバー１６０とのクライアントの以前のセッションに関する履歴情報などの情報（例えば、最後のログインタイムスタンプおよびログイン試行失敗の量など）が含まれうる。
【００３９】
図１に示す例では、認証モジュール１６２はクライアントリストエンジン１６３およびトンネルリストエンジン１６５を含む。認証モジュール１６２による認証が成功すると、認証モジュールによって提供されたクライアント情報に基づき、トンネルリストエンジン１６５はクライアントトンネルリストを生成し、またクライアントリストエンジン１６３はクライアントアクセスリストを生成する。
【００４０】
クライアントトンネルリストには、認証済みクライアント１２１、１２２がそれぞれのトンネル１８１、１８２を確立するためのすべての情報が含まれうる。クライアントトンネルリストには、例えば、クライアントトンネルリストに指定されたＩＰアドレスおよびポート番号でのトンネルの設定を要求することにより、クライアント１２１、１２２がそれぞれのトンネル１８１、１８２の確立を開始するために、ネットワークアドレス情報（ゲートウェイ１００の宛先ＩＰアドレスおよび／または宛先ポート番号など）が含まれうる。クライアントトンネルリストにはまた、ゲートウェイ１００内の認証モジュール１０５を用いてクライアント１２１、１２２を認証するために、トンネル認証情報が含まれうる。クライアントトンネルリストには、例えば、クライアントを様々なゲートウェイに接続するために必要な情報を含む仮想プライベートネットワーク（ＶＰＮ）トークンが含まれうる。
【００４１】
トンネルリストエンジン１６５によって生成されたトンネル認証情報は、動的な（すなわち、ゲートウェイ１００の認証モジュール１０５によって事前に知られていない）ものとしうる。こうした場合には、認証サーバーは、トンネル認証情報を、認証サーバー１６
０とゲートウェイ１００との間の通信リンク１６８によってゲートウェイ１００に転送しうる。従って、通信リンク１６８は、ゲートウェイ１００と認証サーバー１６０との間にチャネルを提供し、これはコンフィギュレーション更新情報の交換を可能にし、またユーザーおよび／またはセッションが認証サーバー１６０内で削除された場合は、ユーザーによるアクセスまたはセッションの取り消しを可能にする。ユーザーまたはセッションが除去されるのには、様々な理由があり、これには、１）サービスデータベースが変更をし、管理者がすべてのユーザーに関する変更の適用を希望するため、２）ユーザーが自分の認証方法を変更するため、または、３）ユーザーまたはクライアントがシステムからアクセス禁止を受けたため、などが含まれる。通信リンク１６８は、認証サーバー１６０と一つまたは複数のゲートウェイとの間の通信のみが許容されるハイパーテキスト伝達プロトコルセキュア（ＨＴＴＰＳ）チャネルを経由してなど、望ましい任意の様式で実施されうる。
【００４２】
クライアントアクセスリストは、クライアントがアクセスを付与されている選択されたアプリケーションサーバー１４１〜１４３を識別する。一部の実施形態では、クライアントリストエンジン１６３は、ファイアウォール１０２のためのファイアウォールルールを生成し、これらのルールをクライアントアクセスリストに含める。次に、ファイアウォールルールは、ゲートウェイ１００内のファイアウォール構成モジュール１０３によってクライアントアクセスリストから抽出され、ファイアウォール１０２に適用される。クライアントアクセスリストはさらに、アプリケーションサーバー１４１〜１４３のアドレス指定情報に条件を追加しうる。例示的なクライアントアクセスリストの例を下記の表に示す。
【００４３】
【表１】
2018139448.tif 000003
【００４４】
表１の一列目は、クライアントがネットワークアクセスを付与されるアプリケーションサーバーのＩＰアドレスを指定する。二列目は、アクセス権を得るために満たされる必要がある条件をさらに指定する。第一の条件は、クライアントがアプリケーションサーバー１０．０．０．１へのアクセスを付与される特定の時間間隔を指定する。第二の条件は、要求が発せられるべき特定のドメインを指定する（すなわち、クライアントのアプリケーションへのアクセス元ドメインを指定する）。第二の条件は、例えば、企業が、自身のドメインから（すなわち、企業ネットワーク内から）のアクセスのみを許容するために使用しうる。第三の条件は、特定のユーザーまたはグループ（企業のアドミニストレータなど）を識別するために使用でき、これらの者のみが所定のアプリケーションサーバーまたはその他のネットワーク装置にアクセスできるはずである。
【００４５】
図１に示すシステム例では、認証サーバー１６０には、署名済みクライアントアクセスリストおよび署名済みクライアントトンネルリストなど、デジタル署名済みのリストを作成するための署名モジュール１６４が含まれる。署名モジュール１６４によって生成されたデジタル署名は、クライアントアクセスおよびトンネルリストを受け取り次第、ゲートウェイ１００内の署名検証モジュール１０４によって確認することができる。署名は、ゲートウェイ１００が認証サーバー１６０に通知することなく、クライアントアクセスリストおよびクライアントトンネルリストが、クライアント１２１、１２２によって変更できないように、ゲートウェイと認証サーバー１６０との間で共有される署名キーによって生成され確認されうる。例示される一つの実施形態では、証明書を確認するために、プライ
ベート／パブリックキー機構を使用するＸ．５０９証明書が採用される。
【００４６】
一部の実施形態では、署名の確認を試みる間に、ゲートウェイ１００がクライアントアクセスリストまたはクライアントトンネルリストが変更されたと判断した場合、ゲートウェイ１００は、その変更について認証サーバー１６０に通知する、および／または、クライアントとのネットワークトンネルを中断する、ことができる。認証サーバー１６０は、こうした通知を、当該クライアントとの次回以降の接続において、当該クライアントに関連付けられた「信頼できるクライアント情報」の一部として使用しうる。一部の実施形態では、ゲートウェイ１００は、確立済みのネットワーキングトンネル１８１、１８２を、（例えば、上述したクライアントアクセスリストまたはクライアントトンネルリスト内の変更の検出に応答して）それ自体の意思で中断することができる。追加的または代替的に、認証サーバー１６０は、トンネルモジュール１０１に、ネットワーキングトンネルを中断し、アプリケーションサーバーへのそれぞれのクライアントアクセスを許容する、ファイアウォールからのファイアウォールルールを除去するように命令するメッセージを、通信リンク１６８を通してゲートウェイ１００に送信することにより、ゲートウェイ１００が確立済みのネットワーキングトンネル１８１、１８２を中断するように適合されうる。
【００４７】
図２、図３、および、図４は、図１に示すシステム例のコンポーネントを含む本開示の実施形態とともに動作する様々なコンポーネント、すなわち、それぞれクライアント１２１、１２２、認証サーバー１６０、および、ゲートウェイ１００、によって実行されうるプロセス例を示す。本明細書で説明したプロセスは、異なるハードウェアおよび／またはソフトウェアコンポーネントのその他任意の組み合わせによって、（全体または一部が）実行されうる。
【００４８】
図２、図３、および、図４、のプロセスは、アプリケーションサーバー１４１、１４２、および、１４３、のすべてが、アプリケーションサーバーのサービスを信頼できるクライアント１２１、１２２に安全な方法で提供することを目的とする企業に属する場合など、様々なコンテキストおよび状況で実施されうる。こうした場合には、「信頼できるクライアント」は、ユーザーまたは端末自体が企業に知られており、かつ、アプリケーションサーバーの一つまたは複数へのアクセスを提供されている場合があるクライアント端末である。各クライアント１２１、１２２は、アプリケーションサーバー１４１〜１４３によって利用できるようになったサービスへのアクセスおよびその使用ができるコンピュータハードウェアおよび／またはソフトウェアの任意の組み合わせとして実施されうる。クライアントは、例えば、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、および／または、タブレットコンピュータでありうる（またはこれらを含みうる）。クライアントは、例えば、証明書を使用してそれ自体を認証するサーバーでもよい（またはそれを含んでもよい）。図２、図３、および、図４、のプロセスは、クライアント１２１、１２２がプライベートネットワークに直接アクセスすることを防止し、代わりにゲートウェイ（図１のゲートウェイ１００など）を通してのみアクセスを提供するのに役立つ。こうした制限は、企業のプライベートネットワーク内で動作するクライアントに関しても適用されうる。再び図１を参照するが、こうしたシナリオの例として、ネットワーク１８０およびネットワーク１４０の両方は別個の「プライベートネットワーク」としうるが、クライアント１２１、１２２とアプリケーションサーバー１４１〜１４３との間のネットワーク通信は、なおもゲートウェイ１００によって制御される。
【００４９】
図２は、クライアント１２１、１２２のいずれかによってアプリケーションサーバー１４１〜１４３上の一つまたは複数のサービスにアクセスするために実行されうるプロセスの一例を示す。図２のプロセスは、クライアントがアクティブなときにバックグラウンドで自動的に実行されるクライアント端末上のソフトウェアアプリケーションを経由するなど、適切な任意の様式で実施されうる。ソフトウェアアプリケーションは、クライアント
の起動時点で自動的に実行されてもよく、または、ユーザーまたはクライアント上で動作する別のプロセスによって手動で開始されてもよい。クライアント１２１、１２２は、アプリケーションサーバー１４１〜１４３のうち一つに対する、クライアント端末のネットワークアクセスを監視（２０１）する。アプリケーションサーバー１４１〜１４３のネットワークアドレスは、アプリケーションサーバーのサービスを使用するクライアントアプリケーション内のコンフィギュレーションオプションとしうる。例えば、アプリケーションサーバーは、ネットワークアドレスおよびポートがメールクライアントアプリケーション内で構成されたメールサーバー、そのネットワークアドレスがネットワーク共有として構成されたアプリケーションサーバー、ＣＲＭサービスであってクライアントがＣＲＭサービスにアクセスするためにインストールされた専用のクライアントアプリケーションを持つもの、および／または、ウェブサービスであってユーザーがブラウザアプリケーションのアドレスバー内でアドレスを指定するもの、としうる（またはそれを含みうる）。
【００５０】
クライアントは、クライアントアプリケーションが、宛先ネットワークアドレスに基づき、プライベートネットワーク１４０内のアプリケーションサーバーへのアクセスを試みでいることを検出（２０２）しうる。クライアントは認証情報を取り出し（２０３）、認証サーバー１６０に送信する。認証情報の取り出しは、ユーザーがログオンするために以前に送信した認証クレデンシャルを使用することによるなど、自動的に実行されうる。あるいは、認証情報の取り出しには、ユーザー名やパスワードなどの認証クレデンシャルを提供するようユーザーに要求することが含まれうる。図２のステップ２０１〜２０３の代わりに、クライアントは、アプリケーションサーバー１４１〜１４３の一つに対するネットワークアクセス試行を待つことなく、認証サーバー１６０を用いてそれ自体を直接的に認証しうる。例えば、クライアントは、クライアントのユーザーがクライアントにログオンしたときか、または、クライアントが起動したときに、認証サーバー１６０を用いて認証しうる。
【００５１】
クライアントの認証は、格納された認証クレデンシャル、ユーザーのログオンクレデンシャル、および／または、ユーザーから要求された別個の認証クレデンシャル、の使用によるなど、望ましい任意の様式で実行されうる。ＲＳＡ、Ｏａｕｔｈ、証明書、Ｒａｄｉｕｓ、ＳＡＭＬ、および、これに類するもの、を含めて、任意の数やタイプのアイデンティティプロバイダも、本開示の実施形態とともに使用されうる。認証クレデンシャルは、認証サーバー１６０を用いてクライアント１２１、１２２を認証（２０４）するのに使用される。それに応答して、クライアントは、認証サーバー１６０からクライアントトンネルリストおよびクライアントアクセスリストを受信（２０５）する。
【００５２】
クライアント１２１、１２２は、例えば、ゲートウェイ１００のネットワークアドレスをクライアントトンネルリストから取り出し、ゲートウェイ１００に要求を送信して、トンネルを確立することにより、ゲートウェイ１００との間にネットワークトンネル１８１、１８２を確立（２０６）する。トンネルが確立（２０６）されると、クライアントは、クライアントトンネルリストを認証としてゲートウェイに提供しうる。クライアントトンネルリストには、認証サーバー１６０の署名が含まれており、そこからゲートウェイ１００はクライアントが信頼できることを確認し、さらなる認証クレデンシャルの交換なしにトンネルを確立しうる。ネットワークトンネルが確立された後、プライベートネットワーク１４０は、トンネルを通してクライアントに拡張されるが、サーバーへのネットワークアクセスが、ゲートウェイ１００のファイアウォール１０２によってブロックされている場合があるため、クライアントはなおも、アプリケーションサーバー１４１〜１４３のいずれかにアクセスできない場合がある。
【００５３】
クライアントは、認証サーバー１６０から受信したクライアントアクセスリストをゲートウェイ１００に送信（２０７）して、クライアントアクセスリストからどのアプリケー
ションサーバーにクライアントがアクセスできるかを記録（２１１）する。クライアントはまた、アクセス可能なアプリケーションサーバーまたはサービスをクライアント端末のユーザーに合図または表示することもできる。認証が成功したと仮定して、ゲートウェイ１００は、すべてのアプリケーションサーバー、またはクライアントアクセスリストにリストされているアプリケーションサーバー上のサービスへのネットワークアクセスをクライアントに提供する。
【００５４】
図３は、図１の認証サーバー１６０などの認証サーバーによって実行されうる、クライアントアクセスおよびトンネルリストをクライアントに提供するためのプロセスの一例である。このプロセス例では、認証サーバーはそれぞれのクライアントからの要求を受信（３０１）する。要求内で、クライアントは、図２のステップ２０４でなど、認証サーバーを用いた識別のための認証情報を提供する。認証サーバーは、クライアントの識別（３０２）を試みる。クライアントが認証サーバーに知られておらず、従って信頼できない場合には、サーバーはフローを停止（３０３）する。クライアントが既知の場合、認証サーバーは、信頼できるクライアント情報を取出し（３０４）、それをクライアント情報に追加する。ステップ３０１で認証情報とともに受信したクライアントコンテキスト情報もまた、クライアント情報に追加されうる。
【００５５】
認証モジュールは、クライアントがアクセスを許可されている選択されたアプリケーションサーバーを識別（３１０）する。アプリケーションサーバーの選択は、クライアント情報とともに、その後、認証サーバー１６０のクライアントリストエンジン１６３およびトンネルリストエンジン１６５に転送されうる。トンネルリストエンジン１６５は、例えば、ネットワーキングトンネルをゲートウェイ１００と設定するために、認証クレデンシャルとともにゲートウェイ１００のＩＰアドレスを提供することにより、クライアント情報に基づき、トンネルリストを生成（３０５）する。クライアントトンネルリストは、署名エンジン１６４により署名（３０６）される。認証サーバーは、クライアントがアクセスを許可されているサーバーの選択に基づき、クライアントアクセスリストを生成（３０７）する。クライアント情報に基づき、さらなる条件付き制限がクライアントアクセスリストに追加されうる。次に、クライアントアクセスリストも署名３０８される。次に、認証サーバーは、クライアントアクセスおよびトンネルリストをクライアントに送信３０９する。
【００５６】
図４は、図１のゲートウェイ１００など、本開示の実施形態とともに動作するゲートウェイによって実行されうる、クライアントにネットワークアクセスを提供するためのプロセスの一例を示す。このプロセスでは、ゲートウェイ１０１は、クライアント１２１または１２２からの要求を受信（４０１）して、そのクライアントとの間にネットワーキングトンネル（例えば、ＶＰＮ接続）を設定する。それに応答して、ゲートウェイは、クライアントから認証クレデンシャルを要求（４０２）し、クライアントトンネルリストの形態で認証クレデンシャルを受信（４０３）する。クライアントを認証するために、ゲートウェイ１００は、認証サーバー１６０と共有されている署名キーを使用してクライアントトンネルリスト内の署名を確認（４０４）する。署名が正しく、かつ、クライアントトンネルリストがクライアントによって修正されていない場合、ゲートウェイ１００は、クライアントとの間にネットワーキングトンネルを確立（４０５）し、よってトンネルを通してプライベートネットワーク１４０をクライアントに拡張する。ゲートウェイのファイアウォールは、デフォルトでクライアントからのすべてのネットワークアクセスをブロックするようさらに構成される。ゲートウェイは、認証サーバーによって生成されたクライアントアクセスリストをクライアントから受信（４０６）し、このクライアントアクセスリスト内の署名を確認（４０７）する。クライアントアクセスリストから、ゲートウェイは、クライアントアクセスリストにリストされているアプリケーションサーバーへのネットワークアクセスを許容するためのファイアウォールルール（およびそうしたアクセスのため
の条件で、これらもクライアントアクセスリスト内に提供されている）を取得する（４０８）。ゲートウェイは、ファイアウォールルールを有効化（４０９）して、それによってクライアントがクライアントアクセスリストにリストされた選択されたアプリケーションサーバーにアクセスできるようにする。
【００５７】
一部の実施形態では、認証サーバー１６０は、クライアントアクセスリストに、強化された認証要件を、これらの強化された認証要件が満たされた時点でアクセスできる第二の判断のアプリケーションサーバーとともに追加しうる。これらの強化された要件は、認証機構自体と関連するものでもよく、また例えば、（第一の判断のアプリケーションサーバーと比較して）より安全な認証機構が使用されなければならないことを述べるものでもよい。例えば、ユーザー／パスワードの組み合わせ（これは第一の組のアプリケーションサーバーについての認証要件を満足しうる）を供給する代わりに、強化された要件は、第二の組のアプリケーションサーバーへのアクセスを得るには二因子認証が要求されることを指定してもよい。要件はまた、クライアント自体のコンテキストまたはステータス情報に関連するものでもよい。望ましい任意の要件が使用されうるが、ある一定のアプリケーションサーバーにアクセスするには、すべてのパッチがクライアントオペレーティングシステムに適用されている必要があること、ある一定のアプリケーションサーバーにアクセスするにはウイルススキャナーが実行されており最新のものでなければならないこと、および／または、アプリケーションサーバーは公衆無線ネットワークからアクセスされていてはならないこと、などの要件がある。
【００５８】
認証サーバーで認証されると、（例えば、クライアントリストエンジン１６３を介した）認証サーバー１６０は、強化された認証要件と併せて、こうした強化された認証を要求する第二の判断のアプリケーションサーバーとを含む、署名済みのクライアントアクセスリストを提供する。クライアントが強化された認証要件を認証し満たすとき、認証サーバーは、更新済みクライアントアクセスリストをクライアントに発行しうるが、ここには、クライアントがアクセスを許可されているアプリケーションサーバーとともに第二の判断のアプリケーションサーバーがリストされている。複数レベルの強化された認証要件（およびそれに対応する組のアプリケーションサーバー）が、クライアントアクセスリストにリストされうる。
【００５９】
図５は、強化された認証要件のあるアプリケーションサーバーへのネットワークアクセスを得るために、クライアントによって実行されうるプロセスの一例を示す。このプロセス例では、クライアントは、第一のクライアントアクセスリスト（本明細書では「ベースクライアントアクセスリスト」ともいう）にリストされている、プライベートネットワーク１４０内の第一の判断のアプリケーションサーバーへのネットワークアクセス（５０１）を確立する。ステップ５０１は、図２に概要を述べたフローに従ってさらに実施されうるが、ベースクライアントアクセスリストがさらに、第二の判断のアプリケーションサーバーおよびこの第二の判断へのネットワークアクセスを得るための強化された認証要件を含む点が異なる。
【００６０】
クライアントは、クライアント端末上で実行されているアプリケーション、および、プライベートネットワーク１４０へのそうしたアプリケーションのネットワークアクセス、を監視（５０２）する。クライアントアプリケーションが第一の判断の一部ではないアプリケーションサーバーへの接続を試みた場合、クライアントは、アプリケーションサーバーが第二の判断の一部であるかどうかをチェック（５０３）する。そうでない場合、クライアントはこのアプリケーションサーバーへのアクセスを得ることができず、クライアントまたはアプリケーションのユーザーにはアクセス拒否について通知（５０４）がなされうる。アプリケーションサーバーが第二の判断の一部である場合、クライアントは、認証サーバー（５０５）を用いて強化された認証のプロセスを開始するが、これにはユーザー
が、指紋スキャン、虹彩スキャン、ユーザーに関するさらなるバイオメトリック情報、および／または、外部キー生成装置によって生成されたキーなどの強化された認証クレデンシャル、を提供するよう要求するステップが含まれうる。クライアントはまた、ユーザーがクライアント端末自体のコンテキストおよび／または状態を更新するよう要求しうる。例えば、ユーザーは、クライアントを有線ネットワークに接続すること、クライアントを公衆無線ネットワークを通して接続しないこと、クライアントのオペレーティングシステムの最新パッチをインストールすること、ウイルススキャナーをインストールすること、および／または、ウイルススキャナーのデータベースを更新すること、を要求されうる。
【００６１】
ユーザーが強化された認証要件（５０６）を首尾よく満たすと、クライアントは、第二のまたは更新済みのクライアントアクセスリストを認証サーバー１６０から受信（５０７）する。強化された認証が不成功であった場合、ネットワークアクセスを要求しているユーザーまたはソフトウェアアプリケーションには、ネットワークアクセスが拒否されたことの合図または警告（５０４）がなされる。更新済みのクライアントアクセスリストには、クライアントがアクセスできる第一の判断および第二の判断の両方のアプリケーションサーバーがリストされており、ゲートウェイ１００に送信（５０８）され、これは適宜にそのファイアウォール１０２を構成する。次に、クライアントは、アプリケーションまたはサービスが許容されるクライアントアプリケーションおよびユーザーに合図（５０９）しうる。
【００６２】
図６は、本開示の様々な態様による、システムの一例を描写したものである。このシステム例では、ゲートウェイ６００にはキープアライブモジュール６０５が含まれる。ゲートウェイ６００は、確立済みのネットワーキングトンネル１８２を通してクライアント６２１と接続され、キープアライブモジュールは、キープアライブメッセージがクライアント６２１から規則正しい間隔で受信されていることをチェックするよう構成される。キープアライブメッセージが時間内に受信されていない場合、キープアライブモジュールは、ファイアウォール構成モジュール１０３に、ファイアウォール１０２からクライアント６２１についてのファイアウォールルールをクリアするよう命令し、またトンネルモジュール１０１にネットワーキングトンネル１８２を停止するよう命令する。キープアライブモジュール６０５はさらに、クライアント６２１に関する事前に定義された一定の状態またはコンテキスト情報がキープアライブメッセージ内に存在するかどうかをチェックし、事前定義された一定の要件を満たすように構成されうる。こうした要件には、例えば、クライアントのウイルススキャナーおよび／またはファイアウォールがアクティブでなければならないといったことが含まれうる。
【００６３】
クライアント６２１は、キープアライブメッセージをゲートウェイ６００に送信するために、ステップ６０１〜６０４で図示されたプロセスを実行しうる。第一のステップ６０１では、ゲートウェイ６００へのネットワーキングトンネル１８２が確立される。ネットワーキングトンネル１８２は、図２および図５に図示したプロセス（またはその一部）を使用するなど、望ましい任意の様式で確立されうる。クライアントは、要求されるコンテキストおよび状態の情報を収集（６０２）し、それをキープアライブメッセージにフォーマットする。キープアライブメッセージは、ネットワーキングトンネル１８２を通してゲートウェイ６００のキープアライブモジュール６０５に送信（６０３）される。メッセージが送信されるとき、タイマーが起動され（６０４）、予め設定された時間間隔からカウントダウンされる。タイマーが終了したとき、次のキープアライブメッセージを送信するために、新しいサイクルのステップ６０２〜６０４が実行される。
【００６４】
図７は、本開示の様々な態様による、アプリケーションサーバー７４１〜７４６を無許可アクセスから保護するためのシステムの一例を図示したものである。この例では、アプリケーションサーバー７４１〜７４６は、それぞれゲートウェイ７００、７０１、および
、７０２、によって保護されているプライベートネットワーク７５０、７５１、および、７５２、の一部である。クライアント７２１は認証サーバー７６０で認証されうるが、それによってクライアントトンネルリストおよびクライアントアクセスリストを取得する。クライアントトンネルリストは、すべてのプライベートネットワーク７４０〜７４４をクライアント７２１に拡張するために、それぞれのゲートウェイ７００〜７０２とのネットワーキングトンネルを確立するために必要な情報を含む。クライアントトンネルリストは、単一のデータオブジェクト、すべてのゲートウェイを識別する単一の署名のあるファイル、別個の署名済みのデータオブジェクト、および／または、ゲートウェイ７００〜７０２、のうち一つをそれぞれ識別するファイルなど、適切な任意の形式でよい。クライアントトンネルリストが受信されると、クライアント７２１は、それぞれのゲートウェイ７００〜７０２との間でネットワーキングトンネル７８１、７８２、および、７８３、を確立する。
【００６５】
クライアントアクセスリストは、ネットワーキングトンネル７８１、７８２および７８３を経由してクライアントが接続しうる選択されたアプリケーションサーバー７４１〜７４７を含む。クライアント７２１は、クライアントアクセスリストをゲートウェイに送信し、これが次に、受信したクライアントアクセスリストに従いそれらのファイアウォールを構成し、それによってクライアント７２１が選択されたアプリケーションサーバーにアクセスできるようにする。
【００６６】
一部の実施形態では、認証サーバー７６０は、クライアント７２１を認証するため、またはクライアント７２１についての情報を取り出すために、その他のサーバーにアクセスしうる。これは図７にも図示されており、ここで認証サーバー７６０は、認証サーバー７６０のための認証バックエンドの役割をするｒａｄｉｕｓサーバー７６２にアクセスしうる。次に、認証サーバー７６０内の認証モジュール１６２が、クライアント７２１に対する認証インターフェースとしての役割をし、その一方でサーバー７６２は実際の認証を実行する。認証サーバー７６０はまた、アクティブディレクトリサービスを認証サーバー７６０に提供するサーバー７６１に接続し、クライアント７２１のユーザーに関するさらなるプロファイルを取り出しうる。
【００６７】
図８は、なお別のシステム例を図示したものであり、ここで、ｒａｄｉｕｓサーバー８４６およびアクティブディレクトリサーバー８４７はゲートウェイ７０２の内側にあるプライベートネットワーク７４４内のアプリケーションサーバーに対応し、それによって無許可アクセスからのサーバー８４６〜８４７の保護に役立っている。サーバー８４６〜８４７にアクセスするために、認証サーバー７６０は、サーバー８４６および８４７を保護するゲートウェイ７０２との永続的なネットワーキングトンネル８８４を含みうる。代替的に、認証サーバー７６０は、サーバー８４６〜８４７へのアクセスを提供するために、ネットワークトンネルを使用する代わりに標準ＨＴＴＰＳトラフィックを活用するためのＬＤＡＰ  ｏｖｅｒ  ＪＳＯＮなど、別の機構を利用しうる。その後認証サーバー７６０がサーバーにアクセスできるようにするファイアウォールルールは、認証サーバー７６０とサーバー８４６〜８４７との間のネットワーク接続を確立するのに、クライアントトンネルリストまたはクライアントアクセスリストが不要なように、ゲートウェイ７０２内で前もって構成されうる。
【００６８】
図９は、複数のゲートウェイ９００、９０１が、同一のプライベートネットワーク９４０内にあるアプリケーションサーバー９４１〜９４４を保護するために使用されている例を図示したものである。この構成は、複数のゲートウェイ９００、９０１間でのネットワークトラフィック負荷のバランスをとるために使用されうる。認証サーバー９６０は、クライアント９２１および９２２への異なるゲートウェイを指定するクライアントトンネルリストを提供する。具体的には、クライアント９２１はゲートウェイ９００とのネットワ
ーキングトンネル９８１を確立し、クライアント９２２はゲートウェイ９０１とのネットワーキングトンネル９８２を確立する。
【００６９】
本明細書における実施形態の例示は、アプリケーションサーバーを無許可アクセスから保護する本開示の実施形態を例証したものである。アプリケーションサーバー以外にも、サービスを提供し、かつネットワークを通してアドレス指定できるその他任意のタイプのネットワーク装置が、本開示の実施形態によって保護されうる。同様に、本開示の実施形態によって保護されうるネットワーク装置には、ルーターおよびネットワークレベルのスイッチに対するアドミニストレータインターフェースを提供するネットワーキング設備が含まれる。
【００７０】
図１０は、本明細書に開示された実施形態とともに利用されうるコンピューティングシステム１０００を例示したものである。コンピューティングシステム１０００は、クライアント端末、ゲートウェイ、認証サーバー、および／または、その他任意の適切なシステム、として使用されうる。コンピューティングシステム１０００は、バス１０１０、プロセッサ１００２、ローカルメモリ１００４、一つまたは複数の随意的な入力インターフェース１０１４、一つまたは複数の随意的な出力インターフェース１０１６、通信インターフェース１０１２、記憶素子インターフェース１００６、および、一つまたは複数の記憶素子１００８、を備える。
【００７１】
バス１０１０は、コンピューティングシステム１０００のコンポーネント間での通信を可能にする一つまたは複数の導体を備えうる。プロセッサ１００２は、プログラミング命令を解釈して実行する任意のタイプのプロセッサを含みうる。ローカルメモリ１００４は、プロセッサ１００２によって実行するための情報および命令を格納するランダムアクセスメモリ（ＲＡＭ）または別のタイプの動的ストレージ装置、および／または、プロセッサ１００２によって使用するための静的情報および命令を格納する読み取り専用メモリ（ＲＯＭ）または別のタイプの静的ストレージ装置を含みうる。入力インターフェース１０１４は、キーボード１０２０、マウス１０３０、ペン、音声認識、および／または、バイオメトリックメカニズム、などの、オペレータが情報をコンピューティング装置１０００に入力できるようにする一つまたは複数の公知のメカニズムを備えうる。
【００７２】
出力インターフェース１０１６は、ディスプレイ１０４０、プリンター１０５０、スピーカー、などの、情報をオペレータに出力する一つまたは複数の公知のメカニズムを備えうる。通信インターフェース１０１２は、コンピューティングシステム１０００がその他の装置および／またはシステム１１００と通信できるようにする例えば一つまたは複数のＥｔｈｅｒｎｅｔインターフェースなど、任意のトランシーバ様の機構を備えうる。コンピューティングシステム１０００の通信インターフェース１０１２は、ローカルエリアネットワーク（ＬＡＮ）または、例えばインターネットなどのワイドエリアネットワーク（ＷＡＮ）を用いて、こうした別のコンピューティングシステムに接続されうる。記憶素子インターフェース１００６は、バス１０１０を、一つまたは複数のローカルディスク（例えばＳＡＴＡディスクドライブ）などの一つまたは複数の記憶素子１００８に接続するための、例えば、シリアルアドバンスドテクノロジーアタッチメント（ＳＡＴＡ）インターフェースまたは小型コンピュータシステムインターフェース（ＳＣＳＩ）といったストレージインターフェースを備え、これらの記憶素子１００８との間でのデータの読み出しおよび書き込みを制御する。上述の記憶素子１００８は、ローカルディスクとして説明されているが、一般に、取り外し可能な磁気ディスク、光学ストレージ媒体（ＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭディスクなど）、ソリッドステートドライブ、フラッシュメモリカード、など、その他任意の適切なコンピュータ読取可能媒体が使用されうる。上述のシステム１０００は、物理ハードウェアの上の仮想マシンとしても実行できる。
【００７３】
本明細書で例示した方法は、そのプロセッサ１００２によって実行するためにコンピューティングシステム１０００のローカルメモリ１００４内に格納されたプログラミング命令によって実施されうる。代替的に、命令は、記憶素子１００８上に格納されるか、または、別のコンピューティングシステムから通信インターフェース１０１２を通してアクセスすることができる。
【００７４】
システム１０００は、それぞれ図１、図６、図７、図８、および、図９、で図示した実施形態のクライアント１２１、１２２、６２１、７２１、９２１、９２２に対応しうる。こうしたケースでは、システム１０００は、通信インターフェース１０１２によりゲートウェイおよび認証サーバーに接続されうる。図２、図５、および、図６、に図示した方法のステップは、実行時にプロセッサ１００２上の命令として実行されてもよく、またメモリストレージ１００４または１００８に格納されてもよい。
【００７５】
システム１０００は、それぞれ図１、図６、図７、図８、および、図９、により図示された実施形態のゲートウェイ１００、６００、７００、７０１、７０２、９００、および、９０１に対応しうる。こうしたケースでは、システムは２つの通信インターフェース１０１２を備えうるが、１つの通信インターフェースはプライベートネットワークへの接続用で、１つはそれによってクライアントに接続されるその他のネットワークへの接続用である。図４に図示した方法のステップは、実行時にプロセッサ１００２上の命令として実行されてもよく、またメモリストレージ１００４または１００８に格納されてもよい。
【００７６】
システム１０００は、図１、図６、図７、図８、および、図９、により図示された実施形態の認証サーバー１６０、７６０、および、９６０、に対応しうる。こうしたケースでは、通信インターフェース１０１２は、システム１０００をクライアントおよびゲートウェイに接続するために使用されうる。次に図３に図示した方法のステップは、実行時にプロセッサ１００２上の命令として実行されてもよく、またメモリストレージ１００４または１００８に格納されてもよい。
【００７７】
認証サーバーおよびゲートウェイによって実行される方法は、同一のコンピュータシステム上、別個のコンピュータシステム上、または同一もしくは異なる物理コンピュータシステム上にある別個の仮想コンピュータシステムとして実行されうる。
【００７８】
≪マルチトンネル方式仮想ネットワークアダプター≫
クライアントのオペレーティングシステム内で、仮想アダプターは、ハードウェア内、ソフトウェア内、または、２つの組み合わせ、で実装されたかによらず、その他のネットワークアダプターまたはネットワークインターフェースとともに動作するソフトウェア実装されたコンポーネントである。データのパケットが仮想アダプターへの送信用ソフトウェアプログラム（オペレーティングシステム内部で実行）によって送信されるとき、パケットは物理的通信インターフェースを介しては送信されない。代わりに、パケットは、仮想アダプターおよびオペレーティングシステムのすべてのタスクが実行されるカーネル空間とは対照的に、オペレーティングシステムのユーザー空間部分内で実行される専用のソフトウェアアプリケーションに再経路指定される。こうしたパケットを仮想アダプターから受信することに加えて、専用のソフトウェアアプリケーションはまた、パケットを仮想アダプターに渡して、他の方向への通信を達成する。この場合、仮想アダプターはこれらのパケットをオペレーティングシステムネットワークスタックに送達（注入）し、そうして外部ソースからのそれらの受信をエミュレートする。
【００７９】
仮想ネットワークアダプターはまた、２つの既存のタイプにちなんでＴＵＮ／ＴＡＰインターフェースとも呼ばれる。ＴＵＮインターフェース（ネットワークトンネル）はネットワーク層デバイスをシミュレートし、ＩＰパケットのような層３パケットで動作する。
ＴＡＰインターフェース（ネットワークタップ）はリンク層デバイスをシミュレートし、イーサネットフレームのような第２層パケットで動作する。
【００８０】
仮想ネットワークインターフェースコントローラ（ＮＩＣ）は、ＴＵＮ／ＴＡＰデバイスであり、カーネル空間内に存在する。ＮＩＣは、ＩＰおよびプロトコルヘッダー（ＴＵＮの場合）またはイーサネットヘッダー（ＴＡＰの場合）が含まれるデータの仮想インターフェースパケットを渡し、データパケットがユーザー空間内で完全なパッケージとして処理されることができるようにする。よってＮＩＣは、ユーザーがトラフィックを新しいパケット内にカプセル化して、それを一般に仮想プライベートネットワークで使用される遠隔の宛先にトンネリングできるようにする。複数のトンネルをセットアップすれば、各トンネルについて一つずつで、複数のＴＵＮ／ＴＡＰインターフェースが必要となる。
【００８１】
従来のシステムでは、必要なトンネルの量が事前にわからない場合（通常はわからない）、新しいトンネルのセットアップには、オペレーティングシステムのカーネル空間内に追加的な仮想ＴＵＮ／ＴＡＰデバイスを作成する管理者特権が、オペレーティングシステムで必要となる。さらに、別個の仮想ＴＵＮ／ＴＡＰデバイスを、各仮想接続について作成しなければならない。
【００８２】
従来的なシステムの一例を図１１に示す。この例では、２つの仮想ネットワークアダプターがカーネル空間内にインストールされている（ＶＩＲＴ  ＮＩＣ  １およびＶＩＲＴ
ＮＩＣ  ２）。第一のユーザー空間アプリケーション（アプリケーション１）は、データパケット（データ１）を第一のＶＰＮ内のネットワーク宛先に送信する。オペレーティングシステム（ＯＳ）のＴＣＰ／ＩＰスタックで、パケットは、第一のＶＰＮ（ＴＣＰ／ＩＰ  １）の宛先アドレスの先頭に追加される。次に、オペレーティングシステムは、パケットを第一のＶＰＮを宛先としたパケット（すなわち、ＶＩＲＴ  ＮＩＣ  １）が処理されるべきネットワークアダプターに送る。これは仮想アダプターであるため、パケットは、第一のＶＰＮアプリケーション（ＶＰＮクライアント１）に再経路指定され、そこでパケットは暗号化（データ１’およびＴＣＰ／ＩＰ  １’）され、宛先アドレスとしてＶＰＮトンネルの他方の端にあるＶＰＮサーバーを持つＯＳ（ＴＣＰ／ＩＰ  １１）によって新しいパケット内に埋め込まれる。次に、ＯＳはこのパケットを物理的ネットワークインターフェースＮＩＣ  １に送る。
【００８３】
第二のアプリケーション（アプリケーション２）がデータパケット（データ２）を第二のＶＰＮ内の宛先に送信するときに、類似のフローが発生する。このパケットは次に、第二の仮想インターフェース（ＶＩＲＴ  ＮＩＣ  ２）に送られ、そこで第二のＶＰＮアプリケーション（ＶＰＮクライアント２）に転送される。この第二のＶＰＮアプリケーションは次に、パケットを暗号化して、それを第二のＶＰＮサーバー（ＴＣＰ／ＩＰ  ２１）に送信する。
【００８４】
図１１の従来的なシステムには、少なくとも２つの重要な問題がある。仮想アダプターを作成するには、アダプターがカーネル空間内に存在するため、管理者特権が必要とされる。第二に、形成される各ＶＰＮ接続について、新しい仮想アダプターを作成する必要がある。本開示の様々な態様によるシステムの一例を図１２に図示する。図１２のシステムは、ＶＰＮを確立するユーザー空間アプリケーションにルーティングコンポーネントを追加することにより、単一の仮想アダプターによって（また、オペレーティングシステムのカーネル空間に対する管理者特権を必要とすることなく）異なるＶＰＮが作成されるようにすることで、図１１の両方の問題を克服する。
【００８５】
図１２に示す模範的システム１２００では、データ１およびデータ２の両方が、オペレーティングシステムによって同一の仮想アダプター１２３０に送られる。これは、オペレ
ーティングシステム（ＯＳ）ルーティングテーブルを更新して、２つのＶＰＮ（１２５１および１２５２）へのネットワークトラフィックを同一の仮想アダプター（ＶＩＲＴ  ＮＩＣ  １  １２３０）に向かわせることにより達成される。ＶＰＮクライアント１  １２１０は、データを暗号化して、それを新しいパケット内に埋め込むだけでなく、ＶＰＮルーティングテーブル１２６０を使用して、どのＶＰＮにパケットが向かうかも決定する。ルーティングテーブル１２６０を使用して、ＶＰＮ１  １２５１用のパケットはＶＰＮ１暗号化モジュールに送信され、またＶＰＮ２  １２５２用のパケットはＶＰＮ２暗号化モジュールに送信される。次に、ＶＰＮ１および２用のパケットは異なる宛先に送信されるが、すなわち、異なるＶＰＮサーバーはトンネルの終端である。
【００８６】
図１３は、本開示の様々な態様によるマルチトンネル方式仮想アダプターを利用した別のシステム例を図示したものである。この例では、２つの異なるネットワーク１９２．１６８．０．０／２４  １３１０および１０．０．０．０／２４  １３２０がある。両方のネットワークは、ＴＵＮ／ＴＡＰインターフェースであるｔｕｎ０インターフェース１３３０に向けて送られる。パケットがｔｕｎ０インターフェース１３３０に向けて送られる時、ＣＺ  ＶＰＮクライアント１３４０は、パケット全体を読み取ることができる。
【００８７】
従来的なＶＰＮクライアントでは、パケットは直ちに取り込まれ（またおそらくは暗号化され）、ｅｔｈ０のソースＩＰと、パケットをアンパックする望ましいゲートウェイ宛先ＩＰとを含む、ＴＣＰまたはＵＤＰ接続にカプセル化される。それに対して、図１３のシステムは、オリジナルパケットの宛先ＩＰアドレスを特定し、どのトンネル（および対応する暗号化）が使用されるべきかを特定するルーティングモジュールを実装する。図１３に示す例では、１９２．１６８．０．０／２４ネットワーク内で宛先ＩＰを持つパケットは、ゲートウェイＡ  １３５０用の暗号化装置／カプセル化装置に送信され、一方で１０．０．０．０／２４経路と一致するパケットは、ゲートウェイＢ  １３６０に対して暗号化およびカプセル化される。
【００８８】
パケットがＣＺ  ＶＰＮクライアント１３４０によって回収されると、対応するゲートウェイに向けて新しい接続（ＴＣＰまたはＵＤＰのどちらの場合もある）を作成し、ＴＵＮ／ＴＡＰアダプターから受信されたオリジナルパケットの暗号化バージョンを含むようになる。そのパケットは、対応するゲートウェイに達するように、正常なＯＳルーティングテーブルによって再び処理される。
【００８９】
ルーティングコンポーネントはオペレーティングシステムのユーザー空間部分内に存在するため、管理者特権を必要とすることなく、多かれ少なかれトンネルを動的に追加できる。図１３のシステムの別の利益は、異なるトンネルについて同一のクライアントＩＰを使用することであり、よって単一の仮想インターフェースがすべてのプライベートトラフィックを処理することができる。こうして、各ゲートウェイについて単一のアダプターが要求される従来的なシステムと対照的に、単一の仮想アダプターが任意の数の仮想ゲートウェイにサービスを提供できる。こうして、本開示の実施形態は、従来的なシステムにとって、特に多数の個人クライアントにとって極めて大きな問題となる可能性がある、各クライアントのカーネル空間にアクセスするための管理者特権を持つ必要性を回避する。さらに、多くのモバイル機器オペレーティングシステムは一つの仮想アダプターのみをサポートする。本開示の実施形態はまた、単一の仮想アダプターを使用して同じプライベートネットワークを保護する２つ以上の独立したゲートウェイへの、トラフィックの負荷を分散する、または、冗長的なトンネルを作成する、ためにも使用されうる。
【００９０】
図１４は、本開示の様々な態様によるプロセスの一例を図示したものである。プロセス１４００は、図１３に示すシステムを含む望ましい任意のシステムと併せて、また本明細書で説明したものを含め、その他任意の方法（全体的にまたは部分的に）で実装されうる
。
【００９１】
この例では、プロセス１４００は、仮想プライベートネットワーク（ＶＰＮ）クライアントのルーティングコンポーネントによってネットワークを経由して一つまたは複数のデータパケットを受信するステップ（１４１０）と、ルーティングコンポーネントによって、一つまたは複数のデータパケットの宛先を特定するステップ（１４２０）と、ＶＰＮクライアントによって一つまたは複数のデータパケットの宛先に対応する一つまたは複数の接続を確立するステップ（１４３０）と、一つまたは複数のデータパケットをそれらのそれぞれの宛先に送信するステップ（１４４０）と、一つまたは複数のゲートウェイ接続を解除するステップ（１４５０）と、が含まれる。
【００９２】
より詳細に上述した通り、本開示の実施形態によって任意の数のデータパケットを送受信しうる。様々な実施形態で、一つまたは複数のデータパケットは、ＶＰＮクライアントが実行されているオペレーティングシステムのカーネル空間部分内で動作している仮想アダプターを経由して受信されうる（１４１０）。さらに、データパケットの宛先を特定するステップ（１４２０）は、データパケットの宛先に対応するゲートウェイを特定するステップを含むことがあり、またゲートウェイへの接続を確立するステップ（１４３０）には、ユーザーダイアグラムプロトコル（ＵＤＰ）接続を形成するステップを含むことがある。ゲートウェイ接続は、適切な任意の方法で解除されうる（１４５０）。ゲートウェイ接続の解除には、例えば、接続を隠す、接続のさらなる使用を阻止する、接続を解除する、などが含まれうる。一部の実施形態では、例えば、ＶＰＮが確立されると、ゲートウェイ接続は、クライアントの接続が解除されるまで、または、システムによって接続がもはや有効ではない（アクセスの取消し、接続期限切れなど）と判断されるまで、継続される。
【００９３】
複数のデータパケットが処理される場合、データパケットは、オペレーティングシステムのカーネル空間内で動作する単一の仮想アダプターを通って送ることができる。ルーティングコンポーネントは、任意のサイズ、タイプ、および構成のものでもよく、また例えば、ルーティングテーブルを含んでもよい。また、ルーティングテーブルは、一つまたは複数のデータパケットの一つまたは複数の宛先アドレスを含む、一つまたは複数のデータパケットを処理するための適切な任意の情報を含みうる。
【００９４】
本開示の実施形態とともに動作するシステム、装置、および、コンポーネント、間の通信は、例えば、電話ネットワーク、エクストラネット、イントラネット、インターネット、加盟店端末装置（販売時点情報管理装置、携帯情報端末機器（例えば、ｉＰｈｏｎｅ（登録商標）、Ｐａｌｍ  Ｐｉｌｏｔ（登録商標）、Ｂｌａｃｋｂｅｒｒｙ（登録商標））、携帯電話、キオスクなど）、オンライン通信、衛星通信、オフライン通信、ワイヤレス通信、トランスポンダー通信、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、ネットワーク上のあるいは接続された装置、キーボード、マウス、および／または、適切な任意の通信あるいはデータ入力様式、など、適切な任意の通信方法を使用して実行されうる。本開示のシステムおよび装置は、ＴＣＰ／ＩＰ通信プロトコルのほか、ＩＰＸ、Ａｐｐｌｅｔａｌｋ、ＩＰ−６、ＮｅｔＢＩＯＳ、ＯＳＩ、任意のトンネリングプロトコル（例えば、ＩＰｓｅｃ、ＳＳＨ）、または、任意の数の既存のまたは将来的なプロトコル、も利用しうる。
【００９５】
一部の実施形態は、完全に機能するコンピュータおよびコンピュータシステムで実施できる一方で、様々な実施形態は、様々な形態のコンピューティング製品として供給することができ、また実際にその供給を実現するために使用されている特定タイプのマシンまたはコンピュータ読取可能媒体が何であるかにかかわらず適用することができる。
【００９６】
機械読取可能媒体は、データ処理システムによって実行されるときに、システムに様々な方法を実行させるソフトウェアおよびデータを格納するために使用できる。実行可能なソフトウェアおよびデータは、例えばＲＯＭ、揮発性ＲＡＭ、不揮発性メモリ、および／または、キャッシュなど、様々な場所に格納されうる。このソフトウェアおよび／またはデータの部分が、これらのストレージ装置のどれか一つに格納されうる。さらに、データおよび命令は、中央サーバーまたはピアツーピアネットワークから取得できる。データおよび命令の異なる部分が、異なる中央サーバーおよび／またはピアツーピアネットワークから、異なる時点で、および、異なる通信セッションまたは同じ通信セッションで、取得できる。データおよび命令は、アプリケーションの実行前に全体を取得できる。あるいは、データおよび命令の部分は実行が必要な時に動的にジャストインタイムで取得してもよい。したがって、データおよび命令は、特定の時点で全体が機械読取可能媒体上にあることは要求されない。
【００９７】
コンピュータ読取可能媒体の例には、中でも、揮発性および不揮発性メモリ装置、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ装置、フロッピーディスクまたはその他のリムーバブルディスク、磁気ディスクストレージ媒体、光学ストレージ媒体（例えば、ＣＤ  ＲＯＭ、ＤＶＤなど）、などの記録可能および記録可能でないタイプの媒体が含まれるが、これらに限定されない。コンピュータ読取可能媒体は命令を格納しうる。
【００９８】
様々な実施形態において、配線された回路をソフトウェア命令と組み合わせて使用して、技術を実施しうる。したがって、技術は、ハードウェア回路およびソフトウェアのいずれかの特定の組み合わせにも、データ処理システムによって実行される命令のいずれかの特定のソースにも限定されない。
【００９９】
一部の図面は数多くの動作を特定の順序で図示しているが、順序に依存しない動作は並べ替えてもよく、またその他の動作は、組み合わせたり引き離したりしてもよい。一部の並べ換えまたはその他のグループ化について具体的に言及したが、当業者にとってはその他も明らかであるため、代替案の完全なリストを提示するものではない。さらに、段階はハードウェア、ファームウェア、ソフトウェアまたはそれらの任意の組み合わせで実施されうることが認識されるべきである。
【０１００】
簡潔にするために、従来的なデータネットワーキング、アプリケーション開発、および、システム（およびシステムの個別のオペレーティングコンポーネントのコンポーネント）、のその他の機能的側面は、本明細書では詳細には説明しないことがある。その上、本明細書に含まれている様々な図に示される接続線は、様々な要素間の機能的関係および／または物理的結合を例示することが意図されている。多くの代替的または追加的な機能的関係または物理的接続が、実用的なシステム内に存在しうることに注意すべきである。
【０１０１】
本明細書で考察した様々なシステムコンポーネントには、
デジタルデータを処理するためのプロセッサを含むホストサーバーまたはその他のコンピューティングシステムと、
デジタルデータを格納するためにプロセッサに結合されたメモリと、
デジタルデータを入力するためにプロセッサに結合された入力デジタイザーと、
メモリ内に格納され、かつ、プロセッサによるデジタルデータの処理を指令するためにプロセッサによってアクセス可能なアプリケーションプログラムと、
プロセッサにより処理されたデジタルデータから導き出された情報を表示するためにプロセッサおよびメモリに結合されたディスプレイ装置と、
複数のデータベースと、
のうち、一つまたは複数が含まれうる。本明細書で使用されている様々なデータベース
には、出荷データ、パッケージデータ、および／または、システムの動作において有用な任意のデータ、が含まれうる。
【０１０２】
様々な機能性が、ウェブブラウザおよび／またはウェブブラウザを利用したアプリケーション接続を経由して実施されうる。こうしたブラウザアプリケーションは、様々な機能を実行するために、コンピューティングユニットまたはシステム内にインストールされたインターネットブラウジングソフトウェアを備えうる。これらのコンピューティングユニットまたはシステムは、コンピュータまたはコンピュータの組の形態をとることができ、またラップトップ、ノートブック、タブレット、手持ち型コンピュータ、携帯情報端末機器、セットトップボックス、ワークステーション、コンピュータ−サーバー、メインフレームコンピュータ、ミニコンピュータ、ＰＣサーバー、ネットワークセットのコンピュータ、パーソナルコンピュータあるいはタブレットコンピュータ（ｉＰａｄ、ｉＭａｃ、および、ＭａｃＢｏｏｋ、など）、キオスク、端末、販売時点管理（ＰＯＳ）装置および／または端末、テレビ、または、ネットワークを通してデータを受信できるその他の任意の装置、を含めた、任意のタイプのコンピューティング装置またはシステムが使用されうる。様々な実施形態は、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ、Ａｐｐｌｅ  Ｓａｆａｒｉ、Ｏｐｅｒａ、または、インターネットの閲覧用に入手可能なその他任意の種々のソフトウェアパッケージ、を利用しうる。
【０１０３】
様々な実施形態は、適切な任意のオペレーティングシステム（例えば、Ｗｉｎｄｏｗｓ
ＮＴ、９５／９８／２０００／ＣＥ／Ｍｏｂｉｌｅ／、Ｗｉｎｄｏｗｓ  ７／８、ＯＳ２、ＵＮＩＸ、Ｌｉｎｕｘ、Ｓｏｌａｒｉｓ、ＭａｃＯＳ、ＰａｌｍＯＳなど）のほか、一般的にコンピュータに関連付けられた様々な従来的なサポートソフトウェアおよびドライバーとともに動作しうる。様々な実施形態には、適切な任意のパーソナルコンピュータ、ネットワークコンピュータ、ワークステーション、携帯情報端末機器、携帯電話、スマートフォン、ミニコンピュータ、メインフレーム、または、それに類するもの、が含まれうる。実施形態は、セキュアソケットレイヤー（ＳＳＬ）、トランスポート層セキュリティ（ＴＬＳ）、および、セキュアシェル（ＳＳＨ）、などのセキュリティプロトコルを実施しうる。実施形態は、ｈｔｔｐ、ｈｔｔｐｓ、ｆｔｐ、および、ｓｆｔｐ、を含む望ましい任意のアプリケーション層プロトコルを実施しうる。
【０１０４】
様々なシステムコンポーネントは、例えば、標準モデム通信、ケーブルモデム、衛星ネットワーク、ＩＳＤＮ、デジタル加入者ライン（ＤＳＬ）、または、様々なワイヤレス通信方式と接続して一般に使用されるローカルループを介した、インターネットサービスプロバイダ（ＩＳＰ）への接続を含むデータリンクを経由してネットワークに、独立的に、別個に、または、集合的に、適切に結合されうる。本開示の実施形態は、双方向テレビ（ＩＴＶ）ネットワークなど、適切な任意のタイプのネットワークとともに動作しうることが注目される。
【０１０５】
システムは、部分的にまたは全面的にクラウドコンピューティングを使用して実施されうる。「クラウド」または「クラウドコンピューティング」には、最小限の管理労力またはサービスプロバイダとのやり取りで迅速に提供およびリリースできる、構成可能なコンピューティングリソース（例えば、ネットワーク、サーバー、ストレージ、アプリケーション、および、サービス）の共有プールへの便利なオンデマンド式のネットワークアクセスを可能にするモデルが含まれる。クラウドコンピューティングには、位置非依存型コンピューティングが含まれうるが、それによって、共有サーバーが、リソース、ソフトウェア、および、データ、をコンピュータおよびその他の装置にオンデマンド式に供給する。
【０１０６】
様々な実施形態は、ウェブサービス、ユーティリティコンピューティング、遍在的で個
別化されたコンピューティング、セキュリティおよびアイデンティティソリューション、オートノミックコンピューティング、クラウドコンピューティング、コモディティコンピューティング、モビリティおよびワイヤレスソリューション、オープンソース、バイオメトリクス、グリッドコンピューティング、および／または、メッシュコンピューティング、とともに使用されうる。
【０１０７】
本明細書で考察した任意のデータベースには、リレーショナル構造、階層構造、グラフィカル、または、オブジェクト指向、および／または、その他任意のデータベース構成、が含まれうる。さらに、データベースは、例えば、データテーブルまたはルックアップテーブルといった適切な任意の様式で整理されうる。各レコードは、単一のファイル、一連のファイル、リンク付けられた一連のデータフィールドまたはその他任意のデータ構造としうる。一定のデータの関連付けは、当技術分野で周知または実践されているものなど、望ましい任意のデータ関連付け技術によって達成されうる。例えば、関連付けは、手動でまたは自動的に達成されうる。
【０１０８】
システムの任意のデータベース、システム、装置、サーバー、または、その他のコンポーネント、は、単一の場所または複数の場所に位置しうるが、ここで各データベースまたはシステムには、ファイアウォール、アクセスコード、暗号化、復号化、圧縮、解凍、および／または、それに類するもの、など、任意の様々な適切なセキュリティ機能が含まれる。
【０１０９】
暗号化は、当技術分野で現在利用可能な、または、利用可能となる可能性のある任意の技術、例えば、Ｔｗｏｆｉｓｈ、ＲＳＡ、Ｅｌ  Ｇａｍａｌ、Ｓｃｈｏｒｒ署名、ＤＳＡ、ＰＧＰ、ＰＫＩ、および、対称性および非対称性暗号システム、によって実行されうる。
【０１１０】
実施形態は、標準ダイアルアップ、ケーブル、ＤＳＬ、または、当技術分野で周知のその他任意のインターネットプロトコル、を使用して、インターネットまたはイントラネットに接続されうる。トランザクションは、その他のネットワークのユーザーからの無許可アクセスを防止するためにファイアウォールを通過しうる。
【０１１１】
本明細書で考察したコンピュータは、適切なウェブサイトまたはユーザーによってアクセス可能なその他のインターネットベースのグラフィカルユーザーインターフェースを提供しうる。例えば、Ｍｉｃｒｏｓｏｆｔインターネット情報サーバー（ＩＩＳ）、Ｍｉｃｒｏｓｏｆｔトランザクションサーバー（ＭＴＳ）、および、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬサーバー、は、Ｍｉｃｒｏｓｏｆｔオペレーティングシステム、Ｍｉｃｒｏｓｏｆｔ  ＮＴウェブサーバーソフトウェア、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬサーバーデータベースシステム、および、Ｍｉｃｒｏｓｏｆｔコマースサーバー、とともに使用されうる。さらに、ＡｃｃｅｓｓまたはＭｉｃｒｏｓｏｆｔ  ＳＱＬサーバー、Ｏｒａｃｌｅ、Ｓｙｂａｓｅ、Ｉｎｆｏｒｍｉｘ  ＭｙＳＱＬ、Ｉｎｔｅｒｂａｓｅなどといったコンポーネントが、アクティブデータオブジェクト（ＡＤＯ）準拠のデータベース管理システムを提供するために使用されうる。別の例では、Ａｐａｃｈｅウェブサーバーが、Ｌｉｎｕｘオペレーティングシステム、ＭｙＳＱＬデータベース、およびＰｅｒｌ、ＰＨＰ、および／または、Ｐｙｔｈｏｎプログラミング言語、とともに使用できる。
【０１１２】
本明細書で考察した任意の通信、入力、ストレージ、データベース、または、ディスプレイ、は、ウェブページを持つウェブサイトを通して促進されうる。本明細書で使用される「ウェブページ」という用語は、ユーザーとの相互作用に使用されうるドキュメントおよびアプリケーションのタイプを制限することを意図していない。例えば、典型的なウェブサイトには、標準ＨＴＭＬドキュメントに加えて、様々なフォーム、Ｊａｖａアプレッ
ト、ＪａｖａＳｃｒｉｐｔ、アクティブサーバーページ（ＡＳＰ）、共通ゲートウェイインターフェーススクリプト（ＣＧＩ）、拡張マークアップ言語（ＸＭＬ）、ダイナミックＨＴＭＬ、カスケーディングスタイルシート（ＣＳＳ）、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｊａｖａｓｃｒｉｐｔ  Ａｎｄ  ＸＭＬ）、ヘルパーアプリケーション、プラグイン、および、これに類するもの、が含まれうる。サーバーには、ウェブサーバーからの要求を受信するウェブサービスが含まれうるが、要求には、ＵＲＬおよびＩＰアドレスが含まれる。ウェブサーバーは、適切なウェブページを取り出し、ウェブページ用のデータまたはアプリケーションをＩＰアドレスに送信する。ウェブサービスは、インターネットなどの通信手段によってその他のアプリケーションと相互作用できるアプリケーションである。
【０１１３】
様々な実施形態は、ブラウザベースのドキュメント内にデータを表示するために望ましい任意の数の方法を採用しうる。例えば、データは、標準テキストとして、または固定リスト、スクロール可能リスト、ドロップダウンリスト、編集可能テキストフィールド、固定テキストフィールド、ポップアップウィンドウ、および、これに類するものの内部に表現されうる。同様に、実施形態は、例えば、キーボードを使用したフリーテキスト入力、メニュー項目、チェックボックス、オプションボックスの選択、および、これに類するものなど、ウェブページ内のデータを修正するために、望ましい任意の数の方法を利用しうる。
【０１１４】
本明細書で例証したシステムおよび方法の例は、機能ブロックコンポーネント、スクリーンショット、随意的な選択および様々な処理ステップという点から説明されうる。当然ながら、こうした機能ブロックは、特定化された機能を実行するよう構成された任意の数のハードウェアおよび／またはソフトウェアコンポーネントによって実現されうる。例えば、システムは、様々な集積回路コンポーネント、例えば、記憶素子、処理要素、論理素子、ルックアップテーブル、および、これに類するもの、を採用しうるが、これらは、一つまたは複数のマイクロプロセッサまたはその他の制御装置の制御下にある様々な機能を遂行しうる。同様に、システムのソフトウェア要素は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ、ＪａｖａＳｃｒｉｐｔ、ＶＢＳｃｒｉｐｔ、Ｍａｃｒｏｍｅｄｉａ  Ｃｏｌｄ  Ｆｕｓｉｏｎ、ＣＯＢＯＬ、Ｍｉｃｒｏｓｏｆｔアクティブサーバーページ、アセンブリ、ＰＥＲＬ、ＰＨＰ、ＡＷＫ、Ｐｙｔｈｏｎ、Ｖｉｓｕａｌ  Ｂａｓｉｃ、ＳＱＬストアドプロシージャ、ＰＬ／ＳＱＬ、任意のＵＮＩＸシェルスクリプト、および、拡張マークアップ言語（ＸＭＬ）、などの任意のプログラミングまたはスクリプト言語を、データ構造、オブジェクト、プロセス、ルーチン、または、その他のプログラミング要素の任意の組み合わせで実施されている様々なアルゴリズム、を用いて実施されうる。さらに、システムは、データ伝送、シグナル伝達、データ処理、ネットワーク制御、および、これに類するもの、のために、任意の数の従来的な技術を採用しうることに注目すべきである。なおさらに、システムは、ＪａｖａＳｃｒｉｐｔ、ＶＢＳｃｒｉｐｔ、または、それに類するもの、などのクライアント側スクリプト言語を用いて、セキュリティ問題を検出または防止するために使用することができる。
【０１１５】
本開示のシステムおよび方法は、既存のシステムをカスタム化したもの、アドオン製品、アップグレードされたソフトウェアを実行する処理機器、スタンドアロンシステム、分散システム、方法、データ処理システム、データ処理用の装置、および／または、コンピュータープログラム製品、として具現化されうる。したがって、システムまたはモジュールの任意の部分は、コードを実行する処理機器、インターネットベースの実施形態、完全なハードウェア実施形態、または、インターネット、ソフトウェア、および、ハードウェア、の態様を組み合わせた実施形態、の形態をとりうる。その上、システムは、記憶媒体内に具現化されたコンピュータ読取可能プログラムコード手段を有するコンピュータ読取可能記憶媒体上のコンピュータープログラム製品の形態をとりうる。ハードディスク、Ｃ
Ｄ−ＲＯＭ、光学ストレージ装置、磁気ストレージ装置、および／または、それに類するもの、を含む、適切な任意のコンピュータ読取可能記憶媒体が利用されうる。
【０１１６】
本明細書では、システムおよび方法が、様々な実施形態による方法、器具（例えば、システム）、およびコンピュータープログラム製品のスクリーンショット、ブロック線図、および、フローチャート図、を参照しながら説明されている。ブロック線図およびフローチャート図の、各機能ブロックならびにブロック線図、および、フローチャート図内の機能ブロックの組み合わせ、は、それぞれ、コンピュータープログラム命令によって実施されうることが理解される。
【０１１７】
これらのコンピュータープログラム命令は、コンピュータまたはその他のプログラム可能データ処理機器上で実行する命令が、フローチャートのブロック内で指定された機能を実施するための手段を作成するように、汎用コンピュータ、特殊用途コンピュータ、または、その他のプログラム可能データ処理機器上に読み込まれてマシン、を生成しうる。これらのコンピュータープログラム命令はまた、コンピュータ読取可能メモリ内に格納された命令が、フローチャートのブロック内で指定された機能を実施する命令手段を含む製造品を生成するように、コンピュータまたはその他のプログラム可能データ処理機器に特定の様式で機能するように指示できるコンピュータ読取可能メモリ内に格納されうる。コンピュータープログラム命令はまた、コンピュータまたはその他のプログラム可能機器上で実行する命令が、フローチャートのブロック内で指定された機能を実施するためのステップを提供するように、コンピュータまたはその他のプログラム可能データ処理機器上に読み込まれて、コンピュータまたはその他のプログラム可能機器上で一連の動作ステップを実行して、コンピュータにより実施されるプロセスを生成しうる。
【０１１８】
したがって、ブロック線図およびフローチャート図の機能ブロックは、特定化された機能を実行するための手段の組み合わせ、特定化された機能を実行するためのステップの組み合わせ、および、特定化された機能を実行するためのプログラム命令手段、に対応する。それぞれのブロック線図およびフローチャート図の機能ブロック、ならびに、ブロック線図およびフローチャート図内の機能ブロックの組み合わせ、は、特定化された機能またはステップを実行する特殊用途のハードウェアベースのコンピュータシステム、または、特殊用途のハードウェアおよびコンピュータ命令の適切な組み合わせ、のいずれかにより実施されうることも理解される。さらに、プロセスフロー図およびその説明では、ユーザーウィンドウ、ウェブページ、ウェブサイト、ウェブフォーム、プロンプトなどに言及する場合がある。当業者であれば、本明細書に記載され図示されたステップは、ウィンドウ、ウェブページ、ウェブフォーム、ポップアップウィンドウ、プロンプト、および、これに類するもの、の使用を含めて、任意の数の構成を含みうることがわかる。さらに、図示および説明された複数のステップは、単一のウェブページおよび／またはウィンドウ内に組み合わされうるが、簡略化のために拡大されていることもわかる。その他のケースでは、単一のプロセスステップとして図示および説明されたステップは、複数のウェブページおよび／またはウィンドウに分離されうるが、簡略化のために組み合わされている。
【０１１９】
「非一時的」という用語は、一時的な信号それ自体の伝搬のみを請求範囲から除去するものと理解されるべきであり、一時的な信号それ自体を伝搬するだけではないすべての標準的なコンピュータ読取可能媒体に対する権利を放棄するものではない。言い換えれば、「非一時的なコンピュータ読取可能媒体」という用語の意味は、米国特許法第１０１条（３５  Ｕ．Ｓ．Ｃ．  §１０１）に基づき特許性のある主題の範囲外にあるＮｕｉｊｔｅｎ事件にある一時的なコンピュータ読取可能媒体のタイプのみを除くものと解釈されるべきである。
【０１２０】
利益、その他の利点、および問題に対する解決策について、特定の実施形態に関連して
本明細書に説明してきた。ところが、利益、利点、問題に対する解決策、および、何らかの利益、利点、または、解決策をもたらすかまたはより顕著にしうる任意の要素、は、本開示の重大な、必須の、または、不可欠の、特徴または要素とは解釈されないものとする。
【０１２１】
本開示には方法が含まれるが、磁気メモリもしくは光学メモリまたは磁気ディスクもしくは光学ディスクなど、有形のコンピュータ読取可能担体上のコンピュータープログラム命令として具現化されうることが意図されている。上述の実施形態例の要素に対する、当業者にとって周知の構造上、化学的、および、機能上のすべての等価物は、参照により本明細書に明示的に組み込まれ、また本請求によって包含されることが意図される。さらに、装置または方法は、それが本請求によって包含されるために、本開示が解決しようとするあらゆる問題に対処している必要はない。その上、本開示のいかなる要素、コンポーネント、または、方法のステップも、その要素、コンポーネント、または、方法のステップが、請求内で明瞭に列挙されているかどうかにかかわらず、公衆に献呈されることを意図しない。本明細書にあるいかなる請求要素も、その要素が「〜の手段」という語句を使用して明示的に列挙されていない限り、米国特許法第１１２条（３５  Ｕ．Ｓ．Ｃ．  １１２）、第６段落の条項に基づき解釈されないものとする。本明細書で使用されるとき、「備える」や「含む」という用語またはその他何らかのその変形体は、要素のリストを含むプロセス、方法、物品、あるいは、器具、が、それらの要素だけでなく、明示的にはリストされていない、または、こうしたプロセス、方法、物品、あるいは、器具、に固有のその他の要素を含みうるように、非排他的な包含を網羅することを意図する。
【０１２２】
「Ａ、Ｂ、または、Ｃ、のうち少なくとも一つ」、「Ａ、Ｂ、および、Ｃ、のうち少なくとも一つ」、「一つまたは複数のＡ、Ｂ、または、Ｃ」、または「Ａ、Ｂ、および、Ｃのうち一つまたは複数」に類似した語句が使用される場合、この語句は、Ａのみが実施形態に存在しうる、Ｂのみが実施形態に存在しうる、Ｃのみが実施形態に存在しうる、または要素Ａ、Ｂ、および、Ｃ、の任意の組み合わせ、例えば、ＡとＢ、ＡとＣ、ＢとＣ、または、ＡとＢとＣ、が、単一の実施形態に存在しうることを意味するものとして解釈されることが意図される。
【０１２３】
開示された実施形態に対して、本開示の範囲を逸脱することなく、変更や修正がなされうる。これらの変更または修正およびその他の変更または修正は、以下の請求項で示される、本開示の範囲内に含まれることが意図される。
【図１】
2018139448.tif 000004
【図２】
2018139448.tif 000005
【図３】
2018139448.tif 000006
【図４】
2018139448.tif 000007
【図５】
2018139448.tif 000008
【図６】
2018139448.tif 000009
【図７】
2018139448.tif 000010
【図８】
2018139448.tif 000011
【図９】
2018139448.tif 000012
【図１０】
2018139448.tif 000013
【図１１】
2018139448.tif 000014
【図１２】
2018139448.tif 000015
【図１３】
2018139448.tif 000016
【図１４】
2018139448.tif 000017