(57)【要約】  コンピュータ実施方法は、クライアントデバイスからのリクエストに応じて、プライベートネットワークに対するゲートウェイを実施するコンピュータシステムによって、前記クライアントデバイスと前記ゲートウェイとの間にネットワークトンネルを確立するステップであって、前記ゲートウェイは、前記クライアントデバイスと前記プライベートネットワーク内の一つ以上のネットワークデバイスとの間のネットワークトラフィックを選択的に拒否および許可するための複数のファイアウォールルールを含むファイアウォールをさらに実施する当該ステップと、前記クライアントデバイスによる前記プライベートネットワークへのアクセスのリクエストによるファイアウォールルールの作動に応じてかつ当該ファイアウォールルールを適用する前に、前記コンピュータシステムによって、対応する条件が満たされているか否かをチェックするステップと、前記条件が満足されない場合、前記コンピュータシステムによって、前記クライアントデバイスによって実行されるべきアクションを前記クライアントデバイスに送信するステップとを含む。
2019514298.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって、
クライアントデバイスからのリクエストに応じて、プライベートネットワークにゲートウェイを実施するコンピュータシステムによって、前記クライアントデバイスと前記ゲートウェイとの間にネットワークトンネルを確立するステップであって、前記ゲートウェイが前記クライアントデバイスと前記プライベートネットワーク内の一つ以上のネットワークデバイスとの間のネットワークトラフィックを選択的に拒否および許可するための複数のファイアウォールルールを含むファイアウォールを実施する該ステップと、
前記クライアントデバイスによる前記プライベートネットワークへのアクセスのリクエストによるファイアウォールの作動に応じてかつ前記ファイアウォールルールを適用する前に、前記コンピュータシステムによって、対応する条件が満足されているか否かをチェックするステップと、
前記条件が満足されていないとの決定に応じて、前記コンピュータシステムによって、前記クライアントデバイスへ該クライアントデバイスによって実行されるべき第一のアクションを送信するステップとを備えるコンピュータ実施方法。
【請求項２】
前記条件が満足される場合、前記ファイアウォールルールを適用するステップをさらに備える請求項１に記載の方法。
【請求項３】
前記第一のアクションは、前記ファイアウォールによってアクセス可能なネットワークデバイスへのアクセスのために前記クライアントデバイスのユーザによる認証のリクエストに関連し、かつ該方法は、
前記コンピュータシステムによって、前記ユーザが有効に認証されたという指示を受信するステップと、
前記コンピュータシステムによって、満足されるものとして前記条件を更新するステップと、
前記コンピュータシステムによって、前記ファイアウォールルールを適用するステップとをさらに備える請求項１に記載の方法。
【請求項４】
認証のための前記リクエストは、パスワードのリクエストまたは一回限りのパスワードのリクエストを備える請求項３に記載の方法。
【請求項５】
前記第一のアクションは、
前記条件が満足されないという決定の後に、前記条件についての情報の表示、または
前記クライアントデバイスのユーザに対する、前記ファイアウォールルールにしたがって前記プライベートネットワークへアクセスする理由に関する情報を提供するリクエストに関連する請求項１に記載の方法。
【請求項６】
前記ネットワークトンネルを確立する前記ステップは、
前記コンピュータシステムによって、クライアントアクセスリストを受信するステップをさらに備え、該クライアントアクセスリストは、
前記ゲートウェイが前記ファイアウォールルールを備える複数のファイアウォールルールを導出することを許可する一つ以上のアクセスルールと、
一つ以上の条件であって、各条件が前記導出された複数のファイアウォールルールのうちの一つ以上に関連し、前記一つ以上の条件が、前記ファイアウォールルールに対する前記対応する条件を備える、該一つ以上の条件と、
前記第一のアクションを備える一つ以上のアクションであって、各アクションが各条件に関連し、前記各条件が満足されないときに実行されるべきである、該一つ以上のアクションとを備える請求項１に記載の方法。
【請求項７】
前記ネットワークトンネルを確立する前記ステップは、前記コンピュータシステム上で前記複数のファイアウォールルールで個別のファイアウォールサービスを開始するステップをさらに備える請求項１に記載の方法、
【請求項８】
前記クライアントアクセスリストを受信する前記ステップは、前記クライアントデバイスから前記クライアントアクセスリストを受信するステップと、前記クライアントアクセスリストが前記クライアントデバイスによって変更されなかったか否かを検証するステップをさらに備え、かつ該方法は、前記クライアントデバイスによって、認証サーバから前記クライアントアクセスリストをリクエストするステップをさらに備え、該クライアントアクセスリストは、該クライアントアクセスリストの前記変更が前記コンピューティングシステムによって検証されることができるように前記認証サーバによって署名されている請求項６に記載の方法。
【請求項９】
前記一つ以上のアクセスルールのうちの一つのアクセスルールが、前記プライベートネットワーク内の一つ以上のホストを指示する第一の識別子を備え、該第一の識別子は、ホスト名または完全修飾ドメイン名であり、かつ該方法は、
前記コンピューティングシステムによって、前記ホスト名または完全修飾ドメイン名の対応する一つまたは複数のネットワークアドレスを検索するステップと、
前記コンピューティングシステムによって、送信元アドレスとしての前記クライアントデバイスおよび送信先アドレスとしての前記対応するネットワークアドレスによるファイアウォールルールを生成するステップとをさらに備える請求項６に記載の方法。
【請求項１０】
前記第一の識別子は、前記プライベートネットワーク内の一つ以上のネットワークデバイスへのアクセスを提供するインフラストラクチャ管理サービスのための識別子と、前記一つ以上のネットワークデバイスの選択を指示する属性を備え、かつ該方法は、
前記インフラストラクチャ管理サービスから、前記属性によって特徴付けられるホストの選択を検索するステップと
送信元アドレスとしての前記クライアントデバイスおよび送信先アドレスとしての前記選択されたそれぞれのホストによるそれぞれのファイアウォールルールを生成するステップをさらに備える請求項９に記載の方法。
【請求項１１】
前記一つ以上の条件のうちの一つの条件が、
前記クライアントデバイスから取得可能な一つ以上の属性、
前記クライアントデバイスのユーザに関連する一つ以上の属性、または
前記クライアントデバイスの環境に関連する一つ以上の属性
のうちの一つ以上に関連する条件を備える請求項６に記載の方法。
【請求項１２】
前記クライアントデバイスから取得可能な前記一つ以上の属性は、
前記クライアントデバイスのオペレーティングシステムに関する情報、
前記クライアントデバイスに関連するファイアウォールに関する情報、
前記クライアントデバイスに関連するウイルス保護メカニズムに関する情報、または
前記クライアントデバイスのネットワークセッティングおよびネットワークアドレス
のうちの一つを備える請求項１１に記載の方法。
【請求項１３】
前記クライアントデバイスの前記ユーザに関連する前記一つ以上の属性は、
前記ユーザが属するセキュリティグループ、または
前記ユーザのユーザ名
のうちの一つを備える請求項１１に記載の方法。
【請求項１４】
前記クライアントデバイスの前記環境に関連する前記一つ以上の属性は、
時刻、
地理的な位置、または
前記クライアントデバイスのローカルネットワークアドレス
のうちの一つを備える請求項１１に記載の方法。
【請求項１５】
前記条件は、デフォルトで満たされておらず、かつ該方法は、前記ファイアウォールルールの作動に応じて、前記コンピュータシステムによって、前記ネットワーキングデバイスからの前記プライベートネットワークへの全てのアクセスを拒否することによって、前記ファイアウォールをリセットするステップをさらに備える請求項１に記載の方法。
【請求項１６】
前記ネットワークトンネルを確立した後のポリシーにおけるアップデートに応じて、
前記クライアントデバイスから、署名付きトークンを受信するステップと、
前記署名付きトークンの受信に応じて、前記複数のファイアウォールルールのうちの少なくとも一つをアップデートするステップをさらに備える請求項１に記載の方法。
【請求項１７】
前記ネットワークトンネルを確立する前記ステップは、前記コンピュータシステムによって、クライアントアクセスリストを受信するステップをさらに備え、前記クライアントアクセスリストは、前記ゲートウェイが前記ファイアウォールを導出することを許可する一つ以上のアクセスルールを備える請求項１６に記載の方法。
【請求項１８】
前記クライアントデバイスから新たなアクセスルールを受信するステップと、
前記署名付きトークンを認証するステップを備え、
前記少なくとも一つのファイアウォールルールは、前記署名付きトークンを認証した後に、前記新たなアクセスルールからリアルタイムで導出される請求項１７に記載の方法。
【請求項１９】
前記ネットワークトンネルを確立した後のポリシーにおけるアップデートに応じて、
新たなアクセスルールまたは新たな認証情報のうちの少なくとも一方を備えるトークンを受信するステップと、
コントローラとの通信を介して、前記トークンを認証するステップと、
前記トークンの認証に応じて、前記ネットワークトンネルがアクティブである間に、リアルタイムで前記複数のファイアウォールルールのうちの少なくとも一つをアップデートするステップとをさらに備える請求項１に記載の方法。
【請求項２０】
前記コントローラは、前記ポリシーに対する前記アップデートを発生させ、かつ前記トークンは、前記クライアントデバイスから受信される請求項１９に記載の方法。
【請求項２１】
命令を記憶する一時的ではないコンピュータ可読記憶媒体であって、前記命令が、
クライアントデバイスからのリクエストに応じて、前記クライアントデバイスと、該クライアントデバイスとプライベートネットワーク内の少なくとも一つのネットワークデバイスとの間のネットワークトラフィックを選択的に拒否および許可するための複数のファイアウォールルールを含むファイアウォールを実施するゲートウェイとの間に、ネットワークトンネルを確立し、
前記クライアントデバイスによる前記プライベートネットワークへのアクセスのリクエストによるファイアウォールルールの作動に応じてかつ該ファイアウォールルールを適用する前に、対応する条件が満たされているか否かをチェックし、
前記条件が満たされていないとの決定に応じて、前記クライアントデバイスに、該クライアントデバイスによって実行されるべきアクションを送信するようにコンピューティングシステムに命令するように構成される一時的ではないコンピュータ可読記憶媒体。
【請求項２２】
少なくとも一つのプロセッサ、および
命令を記憶するメモリを備え、前記命令が、
クライアントデバイスからのリクエストに応じて、前記クライアントデバイスと、該クライアントデバイスとプライベートネットワーク内の一つ以上のネットワークデバイスとの間のネットワークトラフィックを選択的に拒否および許可するための複数のファイアウォールルールを含むファイアウォールを実施するゲートウェイとの間に、ネットワークトンネルを確立し、
前記クライアントデバイスによる前記プライベートネットワークへのアクセスのリクエストによるファイアウォールルールの作動に応じてかつ該ファイアウォールルールを適用する前に、対応する条件が満たされているか否かをチェックし、
前記条件が満たされていないとの決定に応じて、前記クライアントデバイスに、該クライアントデバイスによって実行されるべきアクションを送信するように前記少なくとも一つプロセッサに命令するようにプログラムされるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、Ｇｌａｚｅｍａｋｅｒｓらによって、ともに「ＳＹＳＴＥМＳ  ＡＮＤ  МＥＴＨОＤＳ  ＦОＲ  ＰＲОＴＥＣＴＩＮＧ  ＮＥＴＷОＲＫ  ＤＥＶＩＣＥＳ  ＢＹ  Ａ  ＦＩＲＥＷＡＬＬ」と題する２０１６年５月３１日に出願された米国特許出願第１５／１６８，８６３号および２０１６年４月１２日に出願された米国仮出願第６２／３２１，２９６号の優先権を主張し、これらの出願の全ての内容が、あたかも本明細書に全てが記載されているように参照によって援用される。
【０００２】
本明細書に開示される少なくともいくつかの実施形態は、概して、ネットワーク保護に関し、より具体的には、仮想プライベートネットワーク（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ（ＶＰＮ））サーバ等のトンネルサーバを含みかつファイアウォールを含むゲートウェイによるプライベートネットワークの保護に関するがそれに限定されない。
【背景技術】
【０００３】
望ましくないネットワークアクセスからプライベートネットワークを保護するために、ファイアウォールは、前記プライベートネットワークへの通信および前記プライベートネットワークからの通信を選択的にフィルタリングするためにゲートウェイに実装することができる。次に、ファイアウォールルールを適用することによって、前記ファイアウォールは、ネットワークパケットを、典型的には上り方向または下り方向とよばれる一方向または双方向に通過させるまたは前記ネットワークパケットの通過を拒否する。これらのルールは、典型的には、５タプルが前記ネットワークパケットの送信元アドレスおよび／または送信先アドレス、前記ネットワークパケットの送信元ポートおよび／または送信先ポートおよびプロトコルであることに基づいている。
【０００４】
プライベートネットワークをさらに保護するために、前記ゲートウェイのファイアウォールは、ネットワークトンネリングと組み合わされてもよい。その場合、前記プライベートネットワークへのアクセスは、安全なネットワーキングトンネルがクライアントデバイスと前記ゲートウェイとの間でセットアップされる仮想プライベートネットワーク（ＶＰＮ）によって確立してもよい。そのようなトンネルの前記セットアップは、次にＶＰＮサーバとして機能する前記ゲートウェイで認証が成功したときにのみ認められる。前記ゲートウェイにおけるファイアウォールとＶＰＮサーバとの組み合わせによって、前記プライベートネットワーク中のデバイスへのアクセスは、前記ＶＰＮサーバによるクライアントまたはユーザレベルで、および前記ファイアウォールによってネットワークレベルで認証されることができる。そのようなゲートウェイの課題解決手段の一例は、米国特許第９，１４８，４０８号明細書（特許文献１）に開示されており、当該明細書の全体の開示は、参照によって本明細書に援用される。この問題解決手段では、ファイアウォールルールは、認証サーバまたはコントローラでの認証に基づいて決定される。このように、アプリケーションおよびサーバへのクライアントのアクセス、したがって、ユーザのアクセスは、前記ゲートウェイで、または前記プライベートネットワーク内のどこかでさらなるディープパケットインスペクションを必要とすることなく、単一のゲートウェイで集中的に制御される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第９，１４８，４０８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記課題解決手段の問題は、当該手段が、ダイナミックアクセス制御（たとえば、前記ファイアウォールルールがリフレッシュされるまたはアップデートされる時間内でのアクセス制御）に対する実現性を制限することである。これは、前記ファイアウォールルールが、前記ユーザが最初に前記コントローラで認証するとき、または前記ユーザが、たとえば所定期間後に再認証するときに、前記認証コントローラによって決定されるためである。
【０００７】
本明細書に開示される少なくともいくつかの実施形態は、上記問題を軽減し、かつダイナミックアクセス制御を提供できるプライベートネットワークを保護するためのゲートウェイを提供する。
【課題を解決するための手段】
【０００８】
本開示の実施形態は、認証されていないアクセスからネットワークデバイスを保護するのに役立つ。とりわけ、本開示の実施形態は、クライアントがアクセスすることを認証されているアプリケーションサーバおよび他のネットワークデバイスへの完全なアクセスを許可するとともに、前記クライアントがアクセスを認証されていないネットワークデバイスの全てのアクセス（または知ることさえも）を防止する。
【０００９】
一実施形態では、コンピュータ実施方法は、クライアントデバイスからのリクエストに応じて、プライベートネットワークに対してゲートウェイを実施するコンピュータシステムによって、前記クライアントデバイスと前記ゲートウェイとの間にネットワークトンネルを確立するステップであって、前記ゲートウェイは、前記クライアントデバイスと前記プライベートネットワーク内の一つ以上のネットワークデバイスとの間のネットワークトラフィックを選択的に拒否および許可するための複数のファイアウォールルールをさらに含むファイアウォールを実施する当該ステップと、前記クライアントデバイスによる前記プライベートネットワークへのアクセスのリクエストによってファイアウォールルールが作動されることに応じてかつ当該ファイアウォールルールが適用される前に、前記コンピュータシステムによって、対応する条件が満たされているかをチェックするステップと、前記条件が満たされていない場合に、前記コンピュータシステムによって、前記クライアントデバイスによって実行されるべきアクションを前記クライアントデバイスに送信するステップとを含む。
【００１０】
本開示は、様々な方法、そのような方法を実行する装置（コンピュータシステムを含む）、および、コンピューティングシステムによって実行されると、前記コンピューティングシステムにそのような方法を実行させる命令を含むコンピュータ可読媒体を含む。
【００１１】
他の特徴は、添付の図面からおよび以下の詳細な記載から明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】本開示の一実施形態に係る、望ましくないネットワークアクセスからネットワークデバイスを保護するための例示のシステムを示す。
【図２】本開示のコンポーネントによって実行されることができる、クライアントデバイスとプライベートネットワークとの間にネットワーキングトンネルを確立するための例示のプロセスを示す。
【図３】ファイアウォールサービスを実施するゲートウェイによって分離されるクライアントデバイスとプライベートネットワークとの間にネットワーキングトンネルを確立するための例示のシステムを示す。
【図４Ａ】本開示の実施形態に係る、ファイアウォールルールが導出されるクライアントアクセスリスト中の例示のエントリを示す。
【図４Ｂ】本開示の実施形態に係る、ファイアウォールルールが導出されるクライアントアクセスリスト中の例示のエントリを示す。
【図４Ｃ】本開示の実施形態に係る、ファイアウォールルールが導出されるクライアントアクセスリスト中の例示のエントリを示す。
【図４Ｄ】本開示の実施形態に係る、ファイアウォールルールが導出されるクライアントアクセスリスト中の例示のエントリを示す。
【図５】本開示のコンポーネントによって実行される、クライアントアクセスリストからファイアウォールルールを導出するための例示のプロセスを示す。
【図６】本開示のコンポーネントによって実行される、ネットワークパケットを破棄するまたは許可するための例示のプロセスを示す。
【図７】一実施形態に係る例示のコンピューティングシステムを示す。
【発明を実施するための形態】
【００１３】
主題は、当該主題の一部を形成し、かつ図示を介して指定の例示的な実施形態を示す添付の図面を参照して以下により詳細に記載される。しかしながら、主題は、様々な異なる形態で実施されてもよく、したがって、請求されるまたは包含される主題は、本明細書で記載されるいずれかの例示的な実施形態に制限されないものとして解釈されることを意図しており、例示的な実施形態は、単に例示であるように提供される。同様に、カバーされるまたは請求される主題に対する合理的に広い範囲を意図している。とりわけ、たとえば、主題は、方法、デバイス、コンポーネントまたはシステムとして実施されることができる。したがって、実施形態は、たとえば、ハードウェア、ソフトウェア、ファームウェアまたはそれらの任意の組合せ（ソフトウェアそれ自体以外）の形態を取ることができる。したがって、以下の詳細な記載は、制限的な意味に取られることを意図していない。
【００１４】
前記添付の図面において、いくつかの特徴は、指定のコンポーネントの細部を示すために誇張されていることもある（および図面に示されるサイズ、材料および同様の細部は、例示でありかつ制限しないことを意図している）。したがって、本明細書で開示される指定の構造および機能の細部は、制限的なものとして解釈されるべきでなく、前記開示された実施形態の様々な使用法を当業者に教示するための代表的基礎として単に解釈されるべきである、
「一実施形態（оｎｅ  ｅｍｂоｄｉｍｅｎｔ）または「一実施形態（ａｎ  ｅｍｂоｄｉｍｅｎｔ）へのこの明細書での言及は、前記実施形態に関連して記載される指定の特徴、構造、または特性が、本開示の少なくとも一つの実施形態に含まれることを意味している。本明細書中の様々な所で語句「一実施形態において」が現れることは、全てが、必ずしも同じ実施形態に言及しているのでもなければ、他の実施形態と互いに両立しない別個のまたは代わりの実施形態でもない。さらに、いくつかの実施形態によって示されることができるが他の実施形態では示されることができない様々な機能を記載している。同様に、いくつかの実施形態にとって要求事項ではあるが他の実施形態にとっての要求事項でではない場合がある様々な要求事項が記載される。
【００１５】
本明細書で描かれる方法の要素の任意の組合せおよび／または部分集合は、互いに組合されてもよく、様々な条件に基づいて選択的に実行されてもよいし実行されなくてもよく、任意の望ましい回数繰り返されてもよく、かつ、任意の適切な順序で、かつ任意の適切なシステム、デバイスおよび／またはプロセスとともに実施されてもよい。本明細書に記載されかつ描かれる方法は、一つ以上のコンピュータシステムで動作するソフトウェアを介する等の任意の適切な方法で実施されることができる。前記ソフトウェアは、有形のコンピュータ可読媒体（コンピュータシステムのメモリ等）に記憶されたコンピュータ可読命令を備えることができ、かつ様々な実施形態の前記方法を実行するために一つ以上のプロセッサによって実行されることができる。
【００１６】
図１は、本開示の様々な態様に係る、望ましくないネットワークアクセスからネットワークデバイスを保護するための例示のシステムを説明している。この例では、ネットワークデバイス（たとえば、アプリケーションサーバ１４１、１４２および１４３）は、プライベートネットワーク１４０の一部である。サーバ１４１乃至１４３へのアクセスは、プライベートネットワークアドレスを介して前記プライベートネットワーク１４０内から得られる。この文脈において、用語「プライベート」は、前記アプリケーションサーバ１４１乃至１４３が広域的にはルーティング可能ではない事実を指している。換言すれば、前記アプリケーションサーバ１４１乃至１４３は、前記プライベートネットワーク１４０の外側から前記アプリケーションサーバ１４１乃至１４３のプライベートネットワークアドレスによってアドレスされることができない。
【００１７】
前記プライベートネットワーク１４０および図１中の他のコンポーネントは、インターネットプロトコル（「ＩＰ」）、または伝送制御プロトコル／インターネットプロトコル（「ＴＣＰ／ＩＰ」）と呼ばれる、任意の数かつ任意のタイプの通信プロトコルを利用することができる。たとえば、前記プライベートネットワーク１４０は、インターネットプロトコルバージョン４すなわちＩＰｖ４に対するＲＦＣ１９１８およびインターネットプロトコルバージョン６すなわちＩＰｖ６に対するＲＦＣ４１９３によって設定されるようなアドレス範囲を有することができる。
【００１８】
ネットワーキングデバイス１４１乃至１４３は、前記ネットワーク１４０を通ってサービスを他のコンピューティングデバイスに提供するアプリケーションサーバに対応することができる。メールサーバ、ファイルサーバ、顧客関連管理（Ｃｕｓｔｏｍｅｒ  Ｒｅｌａｔｉｏｎｓｈｉｐ  Ｍａｎａｇｅｍｅｎｔ）すなわちＣＲＭサービス、企業リソースプランニングサービスすなわちＥＲＰサービス、および／またはドキュメント管理サービス等の、任意の数および任意のタイプのアプリケーションサーバおよび関連するサービスは、本開示の実施形態とともに使用することができる。
【００１９】
次に、データ接続は、前記サービスに関連するポート（またはポート範囲）に各アプリケーションサーバで通信ソケットを開くことによって前記アプリケーションサーバ１４１乃至１４３のいずれかと確立されることができる。アプリケーションサーバ１４１乃至１４３は、プライベートネットワークアドレスに関連する物理的ネットワーキングインターフェースを有する物理的デバイスに対応することができる。あるいは、アプリケーションサーバ１４１乃至１４３は、一つ以上の物理的サーバ上で実行する仮想サーバインスタンスにも対応することができる。仮想サーバインスタンスは、各々、関連するプライベートネットワークアドレスとの仮想ネットワークインターフェースを有することができる。仮想サーバインスタンスは、一つ以上のユーザスペースインスタンス（ソフトウェアコンテナ、仮想エンジン、仮想プライベートサーバ、および／またはｊａｉｌ（ジェイル）としても知られている）を含むことができるとともに当該一つ以上のユーザスペースインスタンスとともに動作できる。そのようなユーザスペースインスタンスは、ＤОＣＫＥＲ（ドッカー）ソフトウェアツールを使用することを含む任意の適切な方法で実施されることができる。
【００２０】
図１に示す例では、前記プライベートネットワーク１４０は、ゲートウェイ１００によって外部ネットワークから分離され、それによって、制御下で外部ネットワークと前記プライベートネットワーク１４０との間のネットワーキングトラフィックを許可する。図１の前記システムは、前記アプリケーションサーバ１４１乃至１４３のうちの一つ以上で動作する前記サービスを使用するために前記プライベートネットワーク１４０内の前記アプリケーションサーバ１４１乃至１４３のうちの一つ以上にアクセス権を有する「信頼できるクライアント」としてクライアント１２１乃至１２６を識別することができる。前記クライアント１２１乃至１２６は、物理的ハードウェアおよび／または仮想コンポーネントであってもよいし、それらを含んでいてもよい。たとえば、クライアント１２１乃至１２６の各々は、モバイルデバイス等の物理的デバイス上で動作する仮想オペレーティングシステムを含むことができる。前記システムは、前記クライアント１２１乃至１２６がアクセスすることが許可される前記アプリケーションサーバ１４１乃至１４３から選ばれたアプリケーションサーバに対してネットワークアクセスを認め、かつ前記クライアント１２１乃至１２６がアクセスすることを許可されないアプリケーションサーバへのネットワークアクセスを拒否することもできる。
【００２１】
前記クライアント１２１乃至１２６による前記アプリケーショサーバ１４１乃至１４３へのアクセスを制御するために、ネットワーキングトンネル１３１乃至１３３が、前記クライアント１２１乃至１２６とゲートウェイ１００との間で確立される。このように、前記プライベートネットワーク１４０は、前記クライアント１２１乃至１２６まで拡張される。いくつかの実施形態では、仮想プライベートネットワーク（すなわち、「ＶＰＮ」）は、トンネル１３１乃至１３３を介して確立される。このように、クライアント１２１乃至１２６は、前記プライベートネットワーク１４０において物理的にではないが、前記プライベートネットワーク１４０の範囲内にプライベートネットワークアドレスが提供され、したがって、前記クライアント１２１乃至１２６のそれぞれのプライベートネットワークアドレスによって全てのアプリケーションサーバ１４１乃至１４３にアクセスすることが潜在的には可能である（以下で詳細に論じられるように、アクセスが許可される場合）。
【００２２】
クライアント１２１乃至１２６からのネットワーク接続リクエストは、ゲートウェイ１００で実施されるトンネルモジュール１０１によって取り扱われる。これは、新たなクライアントデバイスによる新たなトンネルを確立するようにとの接続リクエスト、または既存のトンネル内の新たなネットワーク接続リクエストであってもよい。トンネル１３１乃至１３３の前記接続を介して移動するデータは、インターネットプロトコルセキュリティ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｉｔｙ）（すなわち、「ＩＰｓｅｃプロトコル」）、トランスポートレイヤセキュリティ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）（すなわち、「ＴＬＳ」）および／またはデータグラムトランスポートレイヤセキュリティ（Ｄａｔａｇｒａｍ  Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）（すなわち、「ＤＴＬＳ」に従う等の暗号化によってさらに保護されることができる。一例では、前記トンネルモジュール１０１は、ＴＬＳまたはＳＳＬにしたがって動作し、ＴＣＰネットワーク接続として前記ネットワーキング接続をセットアップする。そうするために、前記クライアントは、前記ゲートウェイ１００のオープンポートまたはポート範囲、好ましくはＴＬＳ／ＳＳＬで暗号化されたＴＣＰ接続に対する標準ポート４４３へ前記リクエストを送信する。
【００２３】
ゲートウェイ１００は、前記クライアントデバイス１２１乃至１２６と前記プライベートネットワークの前記それぞれのネットワークデバイス１４１乃至１４３との間で選択的にネットワークトラフィックを拒否および許可するためのファイアウォールを含むファイアウォールサービスをさらに実施する。ゲートウェイ１００は、たとえば、接続されたクライアント１２１乃至１２６の各々のためのファイアウォールサービス１１１乃至１１６の各々を実施できる。次に、各ファイアウォールサービスは、前記クライアントデバイスと前記プライベートネットワークの前記ネットワークデバイス１４１乃至１４３との間でネットワークトラフィックを選択的に拒否および許可するためのファイアウォールを実施する。各ファイアウォールサービスは、各クライアントデバイスのためのアクセスルールを定義する一組のファイアウォールルールも備える。このように、前記ゲートウェイ１００は、接続されたクライアント１２１乃至１２６の各々のための個別のファイアウォールを実行する。この利点は、ファイアウォールサービスのファイアウォールルールのサイズが接続されたクライアントの量とともに大きくならないことである。このように、接続されたクライアントの増加が、単一のファイアウォールサービスによって管理されなければならないファイアウォールルールの量の増加による性能の損失を結果として生じることはない。
【００２４】
図２は、図１に係る前記ゲートウェイ１００を含む本開示のコンポーネントによって実行されることができる例示のプロセスを示す。このプロセスによって、クライアントデバイス１２１乃至１２６は、前記ゲートウェイ１００を介して前記プライベートネットワーク１４０に接続される。一例として、当該プロセスは、クライアントデバイス１２１を参照して説明される。第一のステップ２０１において、前記トンネルモジュール１０１は、前記ゲートウェイ１００との第一のネットワーク接続を確立するためのクライアントネットワーキングデバイス１２１からの第一の接続リクエスト、たとえば、前記ゲートウェイのポート４４３上で受信される安全なＴＣＰネットワーク接続リクエストを受信する。そうすると、前記ネットワーク接続は、たとえば、ＴＣＰネットワーク接続の場合には、スリーウェイハンドシェイクによって、ステップ２０２で確立される。この第一のネットワーク接続は、前記ゲートウェイ１００で実施される、前記クライアント１２１と前記ゲートウェイ１００との間の、より具体的には、前記管理モジュール１０２と制御情報を交換するために使用される。前記接続が制御目的であることを知るために、前記トンネルモジュールは、新たに確立された各ネットワーク接続を介して交換される前記第一のデータパケットを検査することができる。前記データパケットが制御データパケットである場合、前記トンネルモジュール１０１は、制御接続として前記ネットワーク接続を識別し、この接続を介して受信される全てのさらなるパケットを前記管理モジュール１０２にリダイレクトする。前記制御データパケットは、たとえば、ＴＬＳパケットのヘッダーの指定のＴＬＳ拡張フィールドを検査することによって識別することができる。
【００２５】
ステップ２０３において、前記管理モジュール１０２は、前記第一のネットワーク接続を介して前記クライアントデバイス１２１からトンネル情報を受信する。この情報は、さらにクライアントトンネルリストと呼ばれる。このクライアントトンネルリストは、たとえば、前記ゲートウェイによって前記クライアントを認証するための認証情報等の、前記ゲートウェイとの前記ネットワーキングトンネル１３１を前記ゲートウェイで確立するための情報を含む。前記管理モジュール１０２による認証が成功した後に、当該プロセスはステップ２０４に進む。
【００２６】
ステップ２０４において、前記管理モジュール１０２は、クライアント１２１からクライアントアクセスリストを受信する。このクライアントアクセスリストは、以下で説明されるように、前記クライアントデバイスがアクセスすることを許可される前記プライベートネットワーク１４０中の前記ネットワーキングデバイスまたはアプリケーションおよびアクセスが許可される条件の一覧表を備える。
【００２７】
前記クライアント１２１は、プライベートネットワーク１４０への前記クライアントアクセスを管理する認証サーバまたはコントローラ１７０からこのクライアントアクセスリストおよび／またはトンネルリストをさらに検索することができる。前記クライアントが前記クライアントアクセスリストおよび／またはトンネルリストへ不正アクセスすることを回避するために、前記リストは、変更不能にできる、すなわち、前記リストの変更が前記管理モジュール１０２によって検出されることができるように保護されることができる。
【００２８】
米国特許第９，１４８，４０８号明細書に開示されているもの等の、前記クライアントを認証しかつクライアントおよびトンネルリストを提供するための様々な方法およびシステムが使用されることができ、当該米国特許の全開示は、これによって、参照により援用される。
【００２９】
次に、ステップ２０５において、前記トンネルモジュール１０１は、前記クライアント１２１のリクエストに応じて前記クライアント１２１との第二のネットワーク接続を確立する。これは新たな接続であるため、前記トンネルモジュール１０１は、この第二の接続を介して受信された第一のデータパケットを検査する。この第二の接続は、前記クライアント１２１がすでに前記ゲートウェイ１００との制御情報の前記交換のために前記第一の接続を確立しているため、前記実際のネットワーキングトンネル１３１のために使用される。したがって、前記検査されたデータパケットは、いまだに確立されていないネットワーキングトンネル１３１のための第一のパケットとして識別される。
【００３０】
すると、ステップ２０６において、前記トンネルモジュール１０１は、前記ゲートウェイ１００で実施される前記トンネルサービス１５０へ前記第二のネットワーク接続を渡す。次に、前記トンネルサービスは、前記ネットワーキングトンネル１３１が確立されることができるか否かを前記管理モジュール１０２で検証する。次のステップ２０７において、前記トンネルサービス１５０は、ファイアウォールサービス１１１を開始することによって前記ネットワーキングトンネル１３１を確立する。この瞬間から、前記第二のネットワーク接続を介し、したがって、前記ネットワーキングトンネル１３１を介して交換された全てのデータは、ファイアウォールサービス１１１を通過する。換言すれば、前記ネットワーキングトンネル１３１からのペイロードデータは、前記開始されたファイアウォールサービス１１１に転送される。このファイアウォールサービス１１１は、デフォルトで前記クライアント１２１とプライベートネットワーク１４０との間の全てのトラフィックを拒否するファイアウォールを実施する。次のステップ２０８において、ファイアウォールサービス１１１は、前記管理モジュール１０２から前記ファイアウォールルールを検索することによって、適切なファイアウォールルールを前記ファイアウォールに適用する。前記管理モジュール１０２は、ステップ２０４ですでに受信されていた前記クライアントアクセスリストからこれらのファイアウォールルールを導出する。
【００３１】
図２に係る当該プロセスによって、このように、前記クライアントデバイス１２１と前記ゲートウェイ１００との間のネットワークトンネル１３１は、前記クライアントデバイス１２１と前記プライベートネットワーク１４０内の前記ネットワークデバイス１４１乃至１４３との間のネットワークトラフィックを選択的に拒否および許可するための別々の一組のファイアウォールルールを有する別個のファイアウォールとともに確立される。このプロセスは、前記プライベートネットワーク１４０に繋がるクライアント１２１乃至１２６の各々に対して実行され、それによって、前記それぞれのファイアウォールサービス１１１乃至１１６を取得する。
【００３２】
さらなる実施形態によれば、前記ゲートウェイ１００は、複数のプロセッシングコアを備えるコンピュータシステムで実施される。その場合、管理モジュール１０２、トンネルモジュール１０１、トンネルサービス１５０およびファイアウォールサービス１１１、１１２および１１３は、前記プロセッシングコアで実行されるコンピュータ実行可能命令によって前記コンピュータシステムで実施されることができる。その場合、前記ゲートウェイ１００は、各プロセッシングコアで動作する別個のトンネルサービスを含む。これは、図１の前記例示の実施形態によって説明されており、図１では、トンネルサービス１５０およびファイアウォールサービス１１１、１１２および１１３は、前記第一のプロセッシングコア１６０で実施され、かつトンネルサービス１５１、およびファイアウォールサービス１１４、１１５および１１６は、第二のプロセッシングコア１６１で動作される。トンネルサービス１５０および１５１は、たとえば、前記それぞれのプロセッシングコアで動作するソフトウェアプロセスとして実施されることができる。前記ファイアウォールサービスは、前記各ソフトウェアプロセスによって実行されるソフトウェアスレッド、すなわち、前記それぞれのトンネルサービスによって実施されることができる。
【００３３】
各プロセッシングコアで個別のトンネルサービスを実行することの利点は、前記ファイアウォールサービス同士間のプロセス間通信、およびファイアウォールサービスと前記トンネルサービスとの間の通信が同じコアに制限されることである。結果として、前記ゲートウェイ１００がより多くのプロセッシングコアを追加することによってスケールアップするときに、プロセス間通信の増加による性能の損失が生じない。
【００３４】
図３は、たとえば、図１の前記ファイアウォールサービス１１１乃至１１６として、本開示に係るゲートウェイ１００で実施されることができる例示のファイアウォールサービス３１１の細部を示している。例示のために、ファイアウォールサービス３１１は、クライアント１２１とプライベートネットワーク１４０との間に前記ネットワーキングトンネル１３１を提供するファイアウォールサービス１１１に対応すると仮定する。ファイアウォールサービス３１１が開始されるときに、当該ファイアウォールサービス３１１は、前記各クライアントデバイス１２１と前記プライベートネットワーク１４０中の前記ネットワークデバイス１４１乃至１４３との間でネットワークトラフィックを選択的に拒否および許可するためのファイアウォールコンポーネント３２０を備えている。前記トラフィックが拒否されるか許可されるかのどちらかにしたがって前記ファイアウォール３２０によって使用される前記ルールは、ファイアウォールルール３２１として記憶される。これらのルールは、たとえば、前記ゲートウェイ１００を実施する前記コンピューティングシステムのメモリに存在するファイルまたはデータベースに記憶することができる。
【００３５】
ファイアウォール３２０は、ステートフルパケット検査を実行し、それによってクライアント１２１とプライベートネットワーク１４０中のネットワークデバイス１４１乃至１４３との間に前記ネットワーキングトンネル１３１を介して確立されたネットワーキング接続の状態を追い続けることによるステートフルファイアウォールであることができる。そのような接続は、ＴＣＰまたはＵＤＰネットワーキング接続に関連し得る。このように、前記ルールが前記ネットワーク接続に依存し、したがってダイナミックになるので、より細かい制御が可能である。前記ファイアウォールは、全ての保留中の接続を有するリスト、すなわち、ステートリスト３２２を維持することによって、全てのオープンネットワーク接続を追い続ける。これらの状態は、たとえば、前記ゲートウェイ１００を実施する前記コンピューティングシステムのメモリに存在するファイルまたはデータベースに記憶されることができる。
【００３６】
ファイアウォール３１１は、前記クライアント１２１に送信または前記クライアントから受信されたデータをそれぞれ暗号化および暗号解読するための暗号化および／または暗号解読コンポーネント３２３をさらに含むことができる。暗号化および暗号解読は、インターネットプロトコルセキュリティ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｉｔｙ）（すなわち、「ＩＰｓｅｃプロトコル」）、トランスポートレイヤセキュリティ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）（すなわち、「ＴＬＳ」）および／またはデータグラムトランスポートレイヤセキュリティ（Ｄａｔａｇｒａｍ  Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）（すなわち、「ＤＴＬＳ」）に従ってさらに実行されることができる。暗号化および暗号解読は、さらに、前記ファイアウォールサービス３１１が動作している前記プロセッシングコア中のハードウェアコンポーネントによってハードウェア加速されることができる。
【００３７】
さらなる実施形態によれば、前記クライアントアクセスリストは、一つ以上のアクセスルール、任意で一つ以上のアクセスルールに関連する条件、および各条件に関連するアクションを備えている。
【００３８】
アクセスルールは、いつネットワークパケットに前記ゲートウェイを、したがって、前記ネットワークレベルで前記ファイアウォールを通過させるべきかを定義する。アクセスルールは、前記ネットワークパケットが生じる前記送信元を示す送信元アドレスを含むことができる。ＩＰベースのファイアウォールの場合、これは、ポート数またはポート数の範囲とともにＩＰｖ４またはＩＰｖ６アドレスであることができる。前記クライアントアクセスリストが、指定のクライアントデバイスに対する前記ルールを含むので、アクセスルールは、典型的には、前記クライアントデバイスの前記送信元アドレスを含む。前記送信元ポート数は、通常は、前記送信元ポート数が指定の意味を持たないので、典型的には特定されていない。アクセスルールは、前記アクセスルールが適用される一つ以上の送信先ホストをさらに識別する、すなわち、前記アクセスルールは、前記一つ以上の送信先ホストのうちの一つを指定するネットワークパケットに適用される。アクセスルールは、前記ルールに該当するネットワーキングパケットがアクセスを拒否されるべきなのかまたは許可されるべきなのかの指示を行うこともできる。典型的には、前記ファイアウォールは、デフォルトで一般的なルールで全てのトラフィックを拒否し、次に、前記アクセスルールは、どのネットワークデバイスまたはアプリケーションが前記クライアントによってアクセスされることができるかを指定する。アクセスルールは、たとえば、ＴＣＰ、ＵＤＰまたはＩＣＭＰ等の、前記ネットワークを介して前記ネットワーキングパケットを移送するために使用されるプロトコルに関する情報も提供できる。したがって、前記アクセスルールは、送信元アドレス、送信先アドレス、送信元ポート、送信先ポートおよび前記プロトコルを含む５タプルとして典型的なファイアウォールルールを定義することができる。
【００３９】
アクセスルール中の前記送信先ホストの前記識別は、ファイアウォールルールで一般的な前記送信先ホストの前記ネットワークまたはＩＰアドレスを含むことができる。前記アクセスルールは、その場合、ポート数またはポート範囲をさらに指定することができる。このように、ネットワークパケットは、前記送信先ホスト上でアクセスされる前記サービスによってフィルタリングされることができる。あるいは、前記送信先ホストの前記識別は、ホスト名または前記アクセスルールが適用される前記送信先ホストを独自に識別する完全修飾ドメイン名（ＦＱＤＮ）であってもよい。
【００４０】
前記送信先ホストの前記識別は、任意で属性とともに、インフラストラクチャ管理サービスのための識別子も備えてもよい。その場合、前記インフラストラクチャ管理サービスは、前記プライベートネットワーク中のこれら一つ以上のネットワークデバイスへのアクセスを管理する。次に、前記属性は、前記インフラストラクチャ管理サービスによって管理される前記一つ以上のネットワークデバイスの選択されたものを示す。これは、前記アクセスルールが生成されるときに、前記送信先ホストが未知であるとき、または前記送信先ホストが変化する可能性があるときに特に有用である。そのような変化は、たとえば、前記ネットワークデバイスが、指定の物理的デバイスに特に関連しない仮想ネットワーキングデバイスである仮想コンピューティングにおいて起こり得る。仮想コンピューティングによって、前記送信先ホストは、即座に生成または変化されることができる。属性は、典型的には、キーと値のペアを備え、そこでは、前記キーが指定のプロパティを指し、前記値が前記プロパティのメトリックまたは値を指す。次に、前記選択は、指定のキー、値または両者の組合せを有する選択ホストによって行われることができる。キーによる選択の場合、前記識別子は、ｓｅｒｖｉｃｅ：／／ｔａｇ‐ｋｅｙ＜ＮＡＭＥ＞のフォーマットを取ることができ、そこでは、ｓｅｒｖｉｃｅが前記ネットワークサービスを識別し、＜ＮＡＭＥ＞は、前記ネットワークアドレスが返されるべきホストのプロパティである。値による選択の場合、前記識別子は、ｓｅｒｖｉｃｅ：／／ｔａｇ‐ｖａｌｕｅ＜ＮＡＭＥ＞のフォーマットを取ることができ、そこでは、ｓｅｒｖｉｃｅが前記ネットワークサービスを識別し、＜ＮＡＭＥ＞は、前記ネットワークアドレスが返されるべきホストの値である。また、指定のキー＜ＫＥＹ＞と値＜ＶＡＬＵＥ＞のペアを有するネットワークアドレスは、ｓｅｒｖｉｃｅ：／／ｔａｇ：＜ＫＥＹ＞＝＜ＶＡＬＵＥ＞のフォーマットによって検索されることができる。インフラストラクチャ管理サービスの一例は、Ａｍａｚｏｎ．ｃｏｍによって提供されるクラウドコンピューティングプラットフォームを作る、ウェブサービスとも呼ばれるクラウドコンピューティングサービスの群であるＡｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  （ＡＷＳ）である。このような場合、前記サービスは、ａｗｓによって指示されることができる。
【００４１】
クライアントアクセスリストは、前記アクセスルールの一つ以上にリンクされる条件を備えることができる。アクセスルールが、特に前記５タプルに依存してネットワークパケットを許可するまたは拒否する場合、条件は、前記アクセスルールが作動されるとさらなるメトリックまたは属性に基づいてネットワークパケットが通過するのを妨げることができる。
【００４２】
第一の組の考え得る属性すなわちクライアント属性は、前記クライアントアクセスが求める前記クライアントデバイス、すなわち前記クライアントが動作する環境に関連する属性に関連している。このような属性の例は、一意のデバイス識別番号、前記クライアント上で動作するオペレーティングシステム、前記クライアント上で動作するブラウザのタイプ、前記クライアントの前記ＩＰアドレス、ログオンするために使用される前記認証方法および前記クライアントがファイアウォールを実行するか否かということである。これらのクライアント関連属性は、典型的には、前記クライアントデバイス自体によって提供されなければならない。
【００４３】
第二の組の考え得る属性すなわちユーザ属性は、前記クライアントデバイスの前記ユーザに関連し、より具体的には、プライベートネットワーク内、したがって指定の組織内の前記ユーザの役割に関連する。組織内のユーザの役割は、前記ユーザがアクセスを要するアプリケーションおよびリ送信元を指示することが多い。そのような属性は、典型的には、ユーザディレクトリサービスに記憶され維持される。そのようなディレクトリサービスの利点は、前記ディレクトリサービスが、アプリケーションに対する認証の共通の送信元、並びにたとえば、部門、チームまたは役割によって論理的にユーザをグループ化する能力を提供することである。したがって、前記ユーザ属性は、たとえば、Ｌｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＬＤＡＰ）、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ、Ｒｅｍｏｔｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｄｉａｌ  Ｉｎ  Ｕｓｅｒ  Ｓｅｒｖｉｃｅ（ＲＡＤＩＵＳ）またはそれらの組合せにしたがうディレクトリサービス等のそのようなディレクトリサービスに記憶される属性を指すことができる。
【００４４】
第三の組の考え得る属性すなわち環境属性は、前記クライアントデバイスおよび／または前記プライベートネットワークの環境に関連する。そのような属性の例は、時刻、日付および前記クライアントの位置である。
【００４５】
上記属性のいずれも、条件を構成するために使用することができる。その場合、動作中に、前記アクセスルールは、前記条件が満たされた場合に実行されるだけである。条件は、これらの属性の一つ以上に対して正規表現を実行することによる属性と値との間の一回以上の論理比較をまたは含むことができる。
【００４６】
条件は、前記条件が満たされないすなわち満足されないときに実行されなければならない、前記クライアントアクセスリスト中のアクションにさらにリンクされることができる。第一のタイプのアクションは、前記クライアントまたは前記クライアントデバイスのユーザによって実行されなければならない修復アクションである。そのような修復アクションが有効に実行されると、前記条件は満たされ、またはアップデートされた条件が満たされるようにアップデートされる。したがって、前記修復アクションの実行後、前記クライアントデバイスは、前記各アクセスルールにしたがって前記プライベートネットワークにアクセスすることが許可される。修復アクションは、前記クライアントデバイスの前記ユーザによる認証またはさらなる認証のリクエストを含むことができる。そのような認証は、すでに行われた認証よりもより安全なすなわち保護された認証であり得る。前記修復アクションは、一回限りのパスワード（ＯＴＰ）で認証するリクエストまたはツーファクタ認証を実行するリクエストであることができる。第二のタイプのアクションは、満足されなかった条件で情報が前記クライアントデバイスに表示または提供されるべきである情報アクションである。このように、前記ユーザは、当該ユーザのネットワークアクセスが拒否される理由に関し通知される。第三のタイプのアクションは、前記ユーザからの情報のリクエストを含む対話型アクションである。このような対話型アクションは、前記クライアントが前記情報を提供すると、前記アクセスルールにしたがってアクセスが許可される修復アクションでもある。第四のタイプのアクションは、さらに中断アクションとも呼ばれ、たとえば、前記ファイアウォールを完全な拒否モードにすることによっておよび／または前記ゲートウェイとクライアントとの間の前記ネットワーキングトンネルを中断することによって前記各クライアントに対して前記ファイアウォールを完全に停止することである。そのようなアクションは、拒否アクセスルールおよび常に満足される条件によって使用されることができる。このように、前記アクションは、前記アクセスルールが作動されるときに常に実行される。中断アクションは、ユーザまたはデバイスが前記プライベートネットワークの指定のネットワークデバイスまたはアプリケーションへの接続を試みるときに前記中断アクションが当該ユーザまたはデバイスを完全に拒否することを可能とするので、前記プライベートネットワークをさらに保護するために使用することができる。
【００４７】
図４Ａから図４Ｄは、クライアントアクセスリストにおけるエントリの例を示し、各エントリは、
前記エントリを識別するための名前（ＮＡＭＥ）、
この名前の下でアクセスルールに対して満たされなければならない前記条件（ＣＯＮＤＩＴＩＯＮ）、
前記条件が満たされないときに取られる前記動作（ＡＣＴＩＯＮ）、および／または
一つ以上のアクセスルール（ＡＣＣＥＳＳ  ＲＵＬＥＳ）を含む。
【００４８】
前記アクセスルールは、
典型的には、「許可する」であるファイアウォールルール（ＲＵＬＥ）のタイプ、すなわち、当該ファイアウォールルールが作動されるとネットワークトラフィックの通過が許可される、または典型的には、「拒否する」であるファイアウォールルール（ＲＵＬＥ）のタイプ、すなわち、前記ファイアウォールルールが作動されると、ネットワークトラフィックが拒否されるファイアウォールルール（ＲＵＬＥ）のタイプ、
前記ネットワークトラフィックのプロトコル（ＰＲＯＴＯＣＯＬ）、たとえば、ＩＣＭＰ（ｉｃｍｐ）、ＴＣＰ（ｔｃｐ）またはＵＤＰ（ｕｄｐ）、
前記アクセスルールが求める前記ネットワークトラフィックの流れの方向（ＤＩＲＥＣＴＩＯＮ）、
前記ファイアウォールルールの前記送信先ホスト（ＨＯＳＴＳ）の識別、および／または
前記ＴＣＰ／ＵＤＰおよびＩＣＭＰプロトコルそれぞれに対する前記ネットワークトラフィックで特定される前記送信先ポートまたはＩＣＭＰタイプ
をさらに含むことができる。
【００４９】
図４Ａは、前記Ａｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓによって提供される仮想ホストへのアクセスのためのファイアウォールルールを定義するアクセスルールを含むエントリを示す。前記ファイアウォールルールは、前記クライアント１２１がポート２２または３３８９上で前記プライベートネットワーク１４０中の前記ホストのいずれかにアクセスすること試みるときにまたは任意のＩＣＭＰパケットによって作動される。実際のファイアウォールルールがアクセスを認める（許可する）前に、前記クライアント１２１がパブリックネットワークから前記プライベートネットワーク１４０にアクセスしない（ＮＯＴ（ＰｕｂｌｉｃＮｅｔｗｏｒｋ））または（ＩＩ）前記クライアントが一回限りのパスワード（ＯＴＰ）を提供したという条件も満たされなければならない。前記二つの条件が満たされないならば、前記クライアントは、前記ＯＴＰを提供するというリクエスト（ＡＣＴＩＯＮ）を受信する。
【００５０】
図４Ｂは、ホストのＩＰｖ４アドレスによって特定されるホストの範囲へＩＣＭＰアクセスを許可するファイアウォールルールを定義するアクセスルールを含むエントリを示す。前記条件は常に真である。したがって、前記ファイアウォールが作動される毎に、前記クライアント１２１は、メッセージ「ピンギング動作は、我々のシステムによってロッギングされる（Ｔｈｉｓ  ｐｉｎｇｉｎｇ  ａｃｔｉｏｎ  ｉｓ  ｌｏｇｇｅｄ  ｂｙ  ｏｕｒ  ｓｙｓｔｅｍ）」を前記ユーザに対して表示する。
【００５１】
図４Ｃは、ホストのドメイン名によって特定される前記ホストに対するＩＣＭＰおよびＴＣＰのためのファイアウォールルールを定義するアクセスルールを含むエントリを示す。前記ファイアウォールは、前記クライアントがローカルファイアウォールを実行する（ＬｏｃａｌＦＷＡｃｔｉｖｅ）条件でのみ適用される。これがその場合でないときに、前記ファイアウォールルールを作動すると、前記クライアント１２１は、メッセージ「ｇｉｔｈｕｂ．ｌоｃａｌ．ｃоｍにアクセスするためにファイアウォールを作動する（Ａｃｔｉｖａｔｅ  ｆｉｒｅｗａｌｌ  ｔо  ａｃｃｅｓｓ  ｇｉｔｈｕｂ．ｌоｃａｌ．ｃоｍ」を前記ユーザに表示する。
【００５２】
図４Ｄは、ホストのＩＰｖ４アドレスによって指定されるホストへのＩＣＭＰおよびＴＣＰネットワークトラフィックを拒否するためのファイアウォールルールを定義するアクセスルールを含むエントリを示す。前記条件は、常に偽であり、したがって、前記中断アクションは常に実行される、すなわち、前記ファイアウォールが、停止し、前記クライアントと前記プライベートネットワーク１４０との間の全てのネットワークトラフィックが拒否される。
【００５３】
図５は、図１に係る前記ゲートウェイ１００を含む本開示のコンポーネントによって実行されることができる例示のプロセスを示す。より具体的には、前記プロセスは、前記ファイアウォールルールが前記クライアントアクセスリストから導出されかつファイアウォールサービス３１１において適宜に適用される図２のステップ２０８を実行するための管理モジュール１０２によって実行されることができる。ステップ５０１で、前記プロセスは、前記クライアントアクセスリストから第一のエントリを検索する。エントリは、任意の条件およびアクションにリンクされた一つ以上のアクセスルールを含む。図４Ａから図４Ｄは、エントリの例を示している。次に、前記プロセスは、ステップ５０２で、前記エントリから第一のアクセスルールを検索し、ステップ５０３で前記ホストが前記ホストの前記ネットワークアドレスによって特定されるか否かをチェックする。もしそうなら、前記プロセスは、直接ステップ５０８に進む。そうでないならば、前記プロセスは、前記ホストに関連する前記ネットワークアドレスをまず決定する。前記ホストが前記ホストのホスト名またはＦＱＤＮによって特定されると、次に、ＤＮＳアドレス検索がステップ５０４で実行される。前記ホストが、インフラストラクチャ管理サービスの参照によって特定されると、次に、前記サービスは、ステップ５０５でポーリングされ、前記一つ以上のアドレスが返される。前記決定されたホストアドレスは、当該決定されたホストアドレスが後で使用できるようにステップ５１３でメモリ記憶部５０７に記憶されることができる。前記ホストが以前にすでに決定されていた場合、前記プロセスは、ステップ５０６で前記メモリ記憶部５０７から前記ネットワークアドレス（単数または複数）を検索する。前記ホストが決定された後、前記プロセスは、ステップ５０８に進み、一つ以上のファイアウォールルールが前記アクセスルール中の前記アドレス、プロトコルおよびアプリケーション情報から生成される。次に、条件５０９下で、前記エントリに他のアクセスルールがある場合、前記プロセスは、ステップ５０２に戻り、現在のエントリの次のアクセスルールを処理する。そうでなければ、前記プロセスはステップ５１０に進む。前記エントリが条件および／またはアクションを含む場合、これらの条件および／またはアクションは、また、ステップ５０８で前記エントリから導出された前記組のファイアウォールルールにリンクされる。前記クライアントアクセスリストに他のエントリがある場合、前記プロセスは、ステップ５０１に戻りかつ前記クライアントアクセスリスト中の次のエントリを処理する。そうでなければ、前記プロセスは、ステップ５１２に進み、前記導出されたファイアウォールルールの全てを前記ファイアウォールに適用する。
【００５４】
図６は、図１に係る前記ゲートウェイ１００を含む本開示のコンポーネントによって実行されることができる例示のプロセスを示す。より具体的には、図６は、ファイアウォールルールが作動されるとファイアウォールサービス３１１によって実行されるステップを説明している。前記ファイアウォールサービス３１１の動作中は、前記ファイアウォールを横断するネットワークパケットは、前記ファイアウォールルール３２１に対して毎回検査される。ネットワークパケットがファイアウォールルールに該当する場合（すなわち、前記パケットの送信元、送信先およびプロトコルが前記ルールのものに対応する場合）、前記ファイアウォールルールが作動されるといえる。図６の前記プロセスは、ファイアウォールが作動されたときのステップ６０１で開始する。引き続いて、前記ファイアウォールルールにリンクされた条件があるか否かがチェックされる。
【００５５】
リンクされた条件がない場合、前記プロセスは、直接ステップ６０８に進み、前記ファイアウォールルールが適用される（すなわち、前記ネットワークパケットが前記ルールにしたがって拒否または許可される）。条件が前記ファイアウォールルールにリンクされている場合、前記プロセスは、ステップ６０３に進み、前記条件をチェックするための前記属性が検索される。前記属性のタイプによって、当該属性は、異なる方法で検索されることができる。クライアント属性に対しては、前記情報は、通常は、前記クライアント自身によって提供されなければならない（すなわち、前記クライアントは、前記属性を前記ゲートウェイに提供しなければならない）。これは、図２のステップ２０２で確立された前記第一のネットワーキング接続を介して前記属性を提供することによって行われることができる。次に、前記管理モジュール１０２は、前記属性を抽出し、当該属性を前記ファイアウォールルールとともに前記適切なファイアウォールサービス３１１に提供する。ユーザ属性に対しては、前記管理モジュールは、ＬＤＡＰ、ＲＡＤＩＵＳまたはＡｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ等の適切なディレクトリサービスから前記属性を検索できる。これは、たとえば、前記クライアントアクセスリストから前記ファイアウォールルールが生成されると行われることができる。前記環境属性に対しては、日付および時間等のローカル変数が利用可能である、または前記情報は、どこか別の場所から取り出してくることができる。たとえば、前記クライアントの局所性に関する情報を検索するために、前記クライアントの前記ネットワークアドレスに基づいて地理的な位置データを提供するサービスを調べることができる。前記属性が前記クライアントの接続中に変化し得るので、前記管理モジュールは、定期的に、たとえば一定時間ごとにまたは前記ファイアウォールルールが作動される度に前記属性をリフレッシュすることができる。
【００５６】
全ての属性が前記ファイアウォールサービス３１１によって検索されると、前記プロセスは、ステップ６０４に進み、前記条件自体が決定される（すなわち、前記プロセスが真を返すか偽を返すか）。前記条件が満たされると、前記ファイアウォールルールがステップ６０８で適用される。前記条件が満たされない場合、前記プロセスは、ステップ６０５に進み、前記対応するアクションが実行される。あるいは、対応するアクションがない場合、前記プロセスは、ステップ６０７に直接進み、前記ファイアウォールルールを適用しない、すなわち、前記ネットワーキングパケットを破棄することができる（図示せず）。前記実行された動作が修復アクションでない場合、前記プロセスは、ステップ６０７に直接進む。
【００５７】
前記満たされなかった条件を修復することができる場合、前記プロセスは、ステップ６０６に進み、前記クライアントの前記ユーザが前記偽条件を修復完了するまで待機する。前記ユーザが前記条件を修復しない場合、前記プロセスは、ステップ６０７に進み、前記ネットワークパケットを破棄する。前記ユーザが前記条件を修復する場合、前記プロセスは、ステップ６０８に進み、前記ファイアウォールを前記ネットワークパケットに適用する。前記待機ステップは、さらに、前記プロセスが常にステップ６０７または６０８のいずれかに進むように、所定の期間実行されることができる。
【００５８】
一実施形態では、上記されたクライアントアクセスルールを結果として生じる一つ以上のポリシーが使用される（たとえば、前記クライアントアクセスルールが前記ポリシーに基づいて前記コントローラによって発生される）。たとえば、これらのポリシーは、コントローラ１７０に存在することができ、前記クライアントアクセスルールを定義および／または発生させるために使用される。一つ以上の新たなアクセスルールは、前記ポリシーの変化またはアップデートに応じて発生させることができる。
【００５９】
一つ以上のポリシー（たとえば、コントローラ１７０または他のコンピューティングデバイスに存在する）がアップデートされる場合、前記クライアントアクセスルール（および対応するファイアウォールルール）は、前記クライアントデバイスが前記ゲートウェイ１００とアクティブトンネル接続している限り、リアルタイムでアップデートされる（たとえば、前記ゲートウェイ１００に関する前記ファイアウォールルールは、確立されたネットワークトンネル上のアクティブ接続中にリアルタイムで更新される）。
【００６０】
一実施形態では、署名付きトークンが、本明細書で記載される前記認証で使用することができる。これらの署名付きトークンは、前記ゲートウェイにおいてリアルタイムで前記アクセスルールをアップデートするために使用することができる。たとえば、前記クライアントデバイスは、新たなアクセスルールを署名付きトークンとともに前記ゲートウェイに送信することができる。前記署名付きトークンを認証した後に、前記新たなアクセスルールは、一つ以上の新たなファイアウォールルールを導出するために使用される。
【００６１】
一実施形態では、一つ以上のファイアウォールルールは、新たな署名付きトークンが前記クライアントデバイスによって発行されかつ前記ゲートウェイにアップロードされる度に、リアルタイムで定期的または周期的にアップデートされる。これらのファイアウォールルールは、一つ以上のクライアントデバイスよるアクセス、たとえば上記されたアクセスを定義または記載する。
【００６２】
クライアントデバイスと、上記方法とともに使用できる他のコンピューティングデバイス（たとえば、アプリケーションサーバおよび／または他のネットワークデバイス）との間のアクセスを許可することに関するシステムおよび方法の様々な非制限的な例は、２０１５年９月２９日に発行された、「ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ  ＦＯＲ  ＰＲＯＴＥＣＴＩＮＧ  ＮＥＴＷＯＲＫ  ＤＥＶＩＣＥＳ」と題する米国特許第９，１４８，４０８号明細書（発明者は、Ｇｌａｚｅｍａｋｅｒｓら）に記載されており、当該特許の全ての内容は、本明細書に完全に記載されているかのごとく、参照によって援用される。
【００６３】
米国特許第９，１４８，４０８号明細書は、クライアントに対するアクセスを定義するためのトークンの使用を記載している。加えて、米国特許第９，１４８，４０８号明細書は、ファイアウォールサービスを構成するためにトークンを利用する方法を記載している。これらのトークンは、トンネル接続を確立したときに、（たとえば、前記クライアントデバイスによって）前記ゲートウェイに送信される。
【００６４】
いくつかの実施形態では、アクセスまたは認証のアップデートは、署名付きトークンを使用して（たとえば、米国特許第９，１４８，４０８号明細書に記載されたトークンを使用して等）実施される。一実施形態によれば、署名付きトークンは、リアルタイムでのアップデートを行うために使用されることができる。たとえば、ポリシーが前記コントローラ１７０で変化すると、クライアントデバイスは、リアルタイムで（すなわち、前記ネットワークトンネル上でのアクティブ接続中、および前記トンネルが先に確立された後に）前記ゲートウェイ上で前記ファイアウォールルールをアップデートさせる、新たな署名付きトークンをリアルタイムでアップロードできる。前記とは対照的に、従来のＶＰＮ方式のアプローチでは、前記ファイアウォールまたはアクセスの設定が、クライアントの認証処理中にしか実行されず、それは、たとえば、前記クライアントが、最新のポリシーアップデートを得るためにログオフして再度認証する必要があることを意味している。一実施形態では、前記署名付きトークンを使用する認証は、米国特許第９，１４８，４０８号明細書においてトークンの認証に対して記載されたように実行することができる。
【００６５】
一実施形態では、ネットワークトンネルを確立した後の（たとえば、前記コントローラによって開始または制御される）ポリシーに対するアップデートに応じて、新たなアクセスルールまたは新たな認証情報（たとえば、クライアントデバイスに関連するユーザに対する新たな信用情報）のうちの少なくとも一方を備える署名付きトークンが、前記ゲートウェイによって受信される。前記トークンは、たとえば、前記コントローラと通信することによって認証される。前記トークンを認証することに応じて、前記ファイアウォールルールの少なくとも一つは、前記ネットワークトンネルがアクティブである間に（すなわち、前記トンネルの終了前に）リアルタイムでアップデートされる。このリアルタイムでのアップデート機能によって、アクセスルールおよび／または前記認証情報において変化またはアップデートが生じ得る度に前記トンネルを終了および／または再確立する必要が避けられる。一実施形態では、前記トークンは前記クライアントデバイスから受信される。前記ポリシーは、たとえば、前記クライアントデバイスに対するアクセス権等を統制できる。
【００６６】
図７は、上記実施形態に係る前記ゲートウェイを実施するための適切なコンピューティングシステム７００を示す。コンピューティングシステム７００は、一般的に、適切な汎用コンピュータとして形成されることができ、かつ、バス７１０、一つ以上のプロセッサコア７０２、ローカルメモリ７０４、一つ以上の任意の入力インターフェース７１４、一つ以上の任意の出力インターフェース７１６、一つ以上の通信インターフェース７１２、記憶要素インターフェース７０６、および一つ以上の記憶要素７０８を含む。バス７１０は、前記コンピューティングシステム７００の前記コンポーネント同士間での通信を許容する一つ以上のコンダクタを含むことができる。プロセッサコア７０２は、プログラミング命令を解釈しかつ実行する任意のタイプの従来のプロセッサまたはマイクロプロセッサを含むことができる。ローカルメモリ７０４は、情報およびプロセッサコア７０２が実行する命令を記憶するランダムアクセスメモリ（ＲＡМ）または他のタイプのダイナミック記憶デバイス、および／またはスタティック情報およびプロセッサ７０２が使用する命令を記憶するリードオンリーメモリ（ＲＯＭ）または他のタイプのスタティック記憶デバイスを含むことができる。入力インターフェース７１４は、キーボード７２０、マウス７３０、ペン、音声認識メカニズムおよび／または生体認証メカニズム等の、オペレータが情報を前記コンピューティングデバイス７００に入力できる一つ以上の従来のメカニズムを含むことができる。出力インターフェース７１６は、ディスプレイ７４０等の、情報を前記オペレータに出力する一つ以上の従来のメカニズムを含むことができる。通信インターフェース７１２は、たとえば、コンピューティングシステム７００に他のデバイスおよび／またはシステム７０１と通信することを可能とする一つ以上のイーサネットインターフェース等の任意のトランシーバーのようなメカニズムを含むことができる。コンピューティングシステム７００の前記通信インターフェース７１２は、ローカルエリアネットワーク（ＬＡＮ）、または、たとえば、インターネット等のワイドエリアネットワーク（ＷＡＮ）によってそのような別のコンピューティングシステムに接続されることができる。記憶要素インターフェース７０６は、たとえばＳＡＴＡディスクドライブである一つ以上のローカルディスク等の一つ以上の記憶要素７０８にバス７１０を接続し、かつこれらの記憶要素７０８からのデータの読み出しおよび／またはそれらへのデータの書き込みを制御するための、たとえばシリアルＡＴＡ（ＳＡＴＡ）インターフェースまたはスモールコンピュータシステムインターフェース(ＳＣＳＩ)等の記憶インターフェースを含むことができる。上記の記憶要素７０８は、ローカルディスクとして記載されたが、一般的に、リムーバブル磁気ディスク、ＣＤまたはＤＶＤ等の光記憶媒体、‐ＲＯＭディスク、ソリッドステートドライブ、メモリカード等の任意の他の適切なコンピュータ可読媒体を使用することができる。上記されたシステム７００は、前記物理的ハードウェア上の仮想マシンとして実行することもできる。
【００６７】
上記プロセスにしたがって実行されるステップは、コンピュータ実行可能命令として実施されることができる。その場合、これらの命令は、前記プロセスを実行すると、プロセッサコア７０２上で実行されることができる。このように、トンネルモジュール１０１、管理モジュール１０２、トンネルサービス１５０、１５１およびファイアウォールサービス１１１乃至１１６によって実行されるステップは、たとえば、コンピューティングシステム７００上の命令として実施されることができ、それによって、ゲートウェイ１００を実施することができる。プロセッシングコア７０２は、ゲートウェイ１００のプロセッシングコア１６０、１６１に対応することができる。その場合、トンネルサービス１５０、１５１は、前記プロセッシングコア７０２の各々で実行される。次に、各プロセッシングコア７０２は、前記トンネルサービスの一つでそれぞれ開始される別個のファイアウォールサービスを実行する。クライアントデバイス１２１乃至１２６と前記ゲートウェイ１００との間のデータパケット通信は、ネットワーキングインターフェース７１２を介して行われることができる。また、ゲートウェイ１００とプライベートネットワーク１４０との間で通信されるデータパケットは、ネットワーキングインターフェース７１２を介して交換されることができる。前記コンピュータ実行可能命令は、記憶要素７０８または任意のコンピュータ可読記憶媒体に記憶されるコンピュータプログラム製品を形成してもよいし、その一部であってもよい。
【００６８】
本開示の実施形態とともに動作するシステム、デバイス、およびコンポーネント間の通信は、たとえば、テレフォンネットワーク、エクストラネット、イントラネット、前記インターネット、ＰＯＩデバイス（セールデバイス、ＰＤＡ（たとえば、ｉＰｈｏｎｅ（登録商標）、Ｐａｌｍ  Ｐｉｌｏｔ（登録商標）、Ｂｌａｃｋｂｅｒｒｙ（登録商標））、セルラーフォン、キオスク端末等）、オンライン通信、サテライト通信、オフライン通信、ワイヤレス通信、トランスポンダ通信、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、ネットワーク化またはリンクされたデバイス、キーボード、マウスおよび／または任意の適切な通信またはデータ入力モダリティ等の任意の適切な通信方法を使用して実行されることができる。本開示のシステムおよびデバイスは、ＴＣＰ／ＩＰ通信プロトコル並びにＩＰＸ、Ａｐｐｌｅｔａｌｋ、ＩＰ‐６、ＮｅｔＢＩＯＳ，ＯＳＩ、任意のトンネリングプロトコル（たとえば、ＩＰｓｅｃ、ＳＳＨ）、または任意の数の既存のまたは将来のプロトコルを利用することができる。
【００６９】
いくつかの実施形態が、完全に機能するコンピュータおよびコンピュータシステムで実施されることができるが、様々な実施形態は、様々な形態のコンピューティング製品として分配されることができ、かつ実際に前記分配を行うために使用される指定のタイプのマシンまたはコンピュータ可読媒体に関係なく適用されることができる。
【００７０】
マシン可読媒体は、データプロセシングシステムによって実行されるときに、前記システムに様々な方法を実行させるソフトウェアおよびデータを記憶するために使用することができる。前記実行可能ソフトウェアおよびデータは、たとえばＲＯＭ、揮発性ＲＡＭ、不揮発性メモリおよび／またはキャッシュを含む様々な場所に記憶されることができる。このソフトウェアおよび／またはデータの一部は、これらの記憶デバイスの任意の一つに記憶されることができる。さらに、前記データおよび命令は、集中型サーバまたはピアツーピアネットワークから得ることができる。前記データおよび命令の異なる部分は、異なる時にかつ異なる通信セッションまたは同じ通信セッションにおいて異なる集中型サーバおよび／またはピアツーピアネットワークから得ることができる。前記データおよび命令は、前記アプリケーションの実行に先立って全体として得ることができる。あるいは、前記データおよび命令の一部は、ダイナミック、かつジャストインタイムで実行が必要なときに得ることができる。このように、前記データおよび命令は、指定の時点で全体としてマシン可読媒体にあることは必要とされない。
【００７１】
コンピュータ可読媒体の例は、とりわけ、揮発性および不揮発性メモリデバイス、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリデバイス、フロッピーおよび他のリムーバブルディスク、磁気ディスク記憶媒体、光記憶媒体（たとえば、コンパクトディスクリードオンリーメモリ（ＣＤ  ＲＯＭ）、デジタル多用途ディスク（ＤＶＤｓ）等）等の記録可能媒体および記録不能媒体を含むが、それらに限定されない。前記コンピュータ可読媒体は、前記命令を記憶することができる。
【００７２】
様々な実施形態において、ハードワイヤード回路が、前記技術を実施するためにソフトウェア命令と組み合わせて使用されることができる。このように、これらの技術は、ハードウェア回路とソフトウェアの指定の組合せに限定されることもなく、前記データプロセシングシステムによって実行される命令に対する指定の送信元に限定されることもない。
【００７３】
図面のいくつかは、指定の順序で多数の動作数を説明しているが、順序に依存しないオペレーションは、順序を変えられてもよく、別のオペレーションが組み合わされてもよいし、切り離されてもよい。いくつかの順序変更または他のグループ化が具体的に記載されているが、他の順序変更またはグループ化も当業者には明白であり、したがって、代替品を網羅するリストを提示しない。さらに、前記ステージが、ハードウェア、ファームウェア、ソフトウェアまたはそれらの組合せで実施されることができることを認識するべきである。
【００７４】
簡潔にするために、従来のデータネットワーキング、アプリケーション展開および前記システム（および前記システムの前記個別の動作コンポーネントのコンポーネント）の他の機能的側面は、本開示では詳細には記載しない。さらに、本明細書に含まれる前記様々な図面に示される接続ラインは、前記様々な要素間の例示の機能関係および／または物理的な結合を表示することを意図している。多くの代替的または追加の機能的関係または物理的接続が実際のシステムに存在し得ることを留意すべきである。
【００７５】
本明細書で議論される前記様々なシステムコンポーネントは、以下のうちの一つ以上、すなわち、デジタルデータを処理するためのプロセッサを含むホストサーバまたは他のコンピューティングシステム、デジタルデータを記憶するために前記プロセッサに結合されるメモリ、デジタルデータを入力するために前記プロセッサに結合される入力デジタイザ、前記メモリに記憶されかつ前記プロセッサによってデジタルデータの処理を指図するために前記プロセッサによってアクセス可能であるアプリケーションプログラム、前記プロセッサによって処理されるデジタルデータから導出される情報を表示するために前記プロセッサおよびメモリに結合されるディスプレイデバイス、および複数のデータベースのうちの一つ以上を含むことができる。本明細書で使用される様々なデータベースは、出荷データ、パッケージデータ、および／または前記システムのオペレーションで有用な任意のデータを含むことができる。
【００７６】
様々な機能は、ウェブブラウザおよび／またはウェブブラウザを利用するアプリケーションインターフェーシングを介して実行されることができる。そのようなブラウザアプリケーションは、様々な機能を実行するためにコンピューティングユニットまたはシステムにインストールされるインターネットブラウジングソフトウェアを含むことができる。これらのコンピューティングユニットまたはシステムは、コンピュータまたは一組のコンピュータの形態を取り、ラップトップ、ノートブック、タブレット、ハンドヘルドコンピュータ、ＰＤＡ、セットトップボックス、ワークステーション、コンピュータ‐サーバ、メインフレームコンピュータ、ミニコンピュータ、ＰＣサーバ、ネットワークセットのコンピュータ、ｉＰａｄｓ、ｉＭＡＣｓ、およびＭａｃｋＢｏｏｋｓ等のパーソナルコンピュータおよびタブレットコンピュータ、キオスク、端末、販売時点（ＰＯＳ）デバイスおよび／または端末、テレビ、またはネットワークを介してデータを受信できる任意の他のデバイスを含む任意のタイプのコンピューティングデバイスまたはシステムが使用することができる。様々な実施形態は、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ、Ａｐｐｌｅ  Ｓａｆａｒｉ、Ｏｐｅｒａ、またはインターネットをブラウジングするために利用可能な他の無数のソフトウェアパッケージを利用することができる。
【００７７】
様々な実施形態は、任意の適切なオペレーティングシステム（たとえば、Ｗｉｎｄоｗｓ  ＮＴ、９５／９８／２０００／ＣＥ／Ｍｏｂｉｌｅ／、Ｗｉｎｄｏｗｓ７／８、ＯＳ２、ＵＮＩＸ、Ｌｉｎｕｘ、Ｓｏｌａｒｉｓ、ＭａｃＯＳ、ＰａｌｍＯＳ等）並びに典型的にはコンピュータに関連する様々な従来の支援ソフトおよびドライバとともに動作できる。様々な実施形態は、任意の適切なパーソナルコンピュータ、ネットワークコンピュータ、ワークステーション、ＰＤＡ、セルラーフォン、スマートフォン、ミニマイクロコンピュータ、メインフレーム等を含むことができる。実施形態は、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ（ＳＳＬ）、Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ（ＴＬＳ）、およびＳｅｃｕｒｅ  Ｓｈｅｌｌ（ＳＳＨ）等のセキュリティプロトコルを実施できる。実施形態は、ｈｔｔｐ、ｈｔｔｐｓ、ｆｔｐ、およびｓｆｔｐを含む任意の望ましいアプリケーションレイヤプロトコルを実施することができる。
【００７８】
前記様々なシステムコンポーネントは、たとえば、標準のモデム通信、ケーブルモデム、サテライトネットワーク、ＩＳＤＮ、デジタル加入者ライン（Ｄｉｇｉｔａｌ  Ｓｃｒｉｂｅｒ  Ｌｉｎｅ）（ＤＳＬ）、または様々なワイヤレス通信方法と関連して典型的に使用されるローカルループを介するインターネットサービスプロバイダ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）（ＩＳＰ）への接続を含むデータリンクを介して、独立して、個別に、または集合的に適切にネットワークに結合することができる。本開示の実施形態は、対話型テレビ（ＩＴＶ）ネットワーク等の任意の適切なタイプのネットワークとともに作動することができることに留意する。
【００７９】
前記システムは、クラウドコンピューティングを使用して部分的にまたは全面的に実施されることができる。「クラウド」または「クラウドコンピューティング」は、最小限の管理労力またはサービスプロバイダとの対話で迅速にセットアップおよびセットアップ解除ができる構成可能なコンピューティングリソース（たとえば、ネットワーク、サーバ、記憶装置、アプリケーション、およびサービス）の共有プールへの従来のオンデマンドネットワークアクセスを可能とするためのモデルを含む。クラウドコンピューティングは、位置独立型コンピューティングを含むことができ、それによって、共有サーバは、リソース、ソフトウェア、およびデータを、オンデマンドでコンピュータおよび他のデバイスに提供する。
【００８０】
様々な実施形態は、ウェブサービス、ユティリティコンピューティング、パーベイシブかつ個別化されたコンピューティング、セキュリティおよびアイデンティティソリューション、自律型コンピューティング、クラウドコンピューティング、コモディティコンピューティング、モビリティおよびワイヤレスソリューション、オープン送信元、生体認証、グリッドコンピューティング、および／またはメッシュコンピューティングとともに使用できる。
【００８１】
本明細書で論じられる任意のデータベースは、関連構造、階層構造、グラフ構造、またはオブジェクト指向構造および／または他のデータベース構成を含むことができる。さらに、前記データベースは、任意の適切な方法で、たとえば、データテーブルまたはルックアップテーブルとして整理されることができる。各記録は、単一のファイル、一連のファイル、リンクされた一連のデータフィールドまたは任意の他のデータ構造であってもよい。指定のデータの関連付けは、本技術で既知の、または実施されているデータ関連付けテーブル等の任意の望ましいデータ関連付け技術を介して達成することができる。たとえば、前記関連付けは、手作業で、または自動的に達成することができる。
【００８２】
任意のデータベース、システム、デバイス、サーバまたは前記システムの他のコンポーネントは、単一の位置または複数の位置に配置されることができ、各データベースまたはシステムは、ファイアウォール、アクセスコード、暗号化、暗号解読、圧縮、圧縮解除等の様々な適切な安全機能のいずれかを含む。
【００８３】
暗号化は、本技術で現在利用可能な技術または利用可能になる技術、たとえば、Ｔｗｏｆｉｓｈ、ＲＳＡ、ＥＩ  Ｇａｍａｌ、Ｓｃｈｏｒｒ署名、ＤＳＡ、ＰＧＰ、ＰＫＩ、および対称および非対称暗号システム等のいずれかによって実行することができる。
【００８４】
実施形態は、標準のダイアルアップ、ケーブル、ＤＳＬまたは本技術で既知の任意の他のインターネットプロトコルを使用して、インターネットまたはイントラネットに繋がることができる。トランザクションは、他のネットワークのユーザからの不正アクセスを防止するためにファイアウォールを通過することができる。
【００８５】
本開示で論じられる前記コンピュータは、ウェブサイトまたはユーザによってアクセス可能な他のインターネットベースのグラフィカルユーザインタフェースを提供できる。たとえば、Ｍｉｃｒｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ（ＩＩＳ）、Ｍｉｃｒｏｓｏｆｔ  Ｔｒａｎｓａｃｔｉｏｎ  Ｓｅｒｖｅｒ（ＭＴＳ）、およびＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒは、Ｍｉｃｒｏｓｏｆｔオペレーティングシステム、Ｍｉｃｒｏｓｏｆｔ  ＮＴウェブサーバソフトウェア、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒデータベースシステム、およびＭｉｃｒｏｓｏｆｔ  Ｃｏｍｍｅｒｃｅ  Ｓｅｒｖｅｒとともに使用することができる。加えて、ＡｃｃｅｓｓまたはＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ、Ｏｒａｃｌｅ、Ｓｙｂａｓｅ、Ｉｎｆｏｒｍｉｘ  ＭｙＳＱＬ、Ｉｎｔｅｒｂａｓｅ等のコンポーネントが、Ａｃｔｉｖｅ  Ｄａｔａ  Ｏｂｊｅｃｔ（ＡＤＯ）コンプライアントデータベース管理システムを提供するために使用できる。他の一例では、Ａｐａｃｈｅウェブサーバが、Ｌｉｎｕｘオペレーティングシステム、ＭｙＳＱＬデータベース、およびＰｅｒｌ、ＰＨＰ、および／またはＰｙｔｈｏｎプログラミング言語とともに使用することができる。
【００８６】
本明細書で論じられる前記通信、入力、記憶、データベースまたは表示のいずれもが、ウェブページを有するウェブサイトを介して容易にすることができる。本明細書で使用する用語「ウェブブページ」は、前記ユーザと対話するために使用できるドキュメントおよびアプリケーションのタイプを制限することを意味してはいない。たとえば、典型的なウェブサイトは、標準のＨＴＭＬドキュメントに加えて、様々な形態、Ｊａｖａアプレット、ＪａｖａＳｃｒｉｐｔ、アクティブサーバページ（ＡＳＰ）、共通ゲートウェイインタフェーススクリプト（ＣＧＩ）、エクステンシブマークアップ言語（ＸＭＬ）、ダイナミックＨＴＭＬ、カスケーディングスタイルシート（ＣＳＳ）、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｊａｖａｓｃｒｉｐｔ  Ａｎｄ  ＸＭＬ）、ヘルパーアプリケーション、プラグイン等を含むことができる。サーバは、ウェブサーバからのリクエストを受信するウェブサーバを含むことができ、当該リクエストは、ＵＲＬおよびＩＰアドレスを含む。前記ウェブサーバは、前記適切なウェブページを検索し、前記ウェブページに関する前記データまたはアプリケーションを前記ＩＰアドレスに送信する。ウェブサービスは、インターネット等の通信手段を介して他のアプリケーションと対話できるアプリケーションである。
【００８７】
様々な実施形態は、ブラウザベースのドキュメント内のデータを表示するための任意の望ましい数の方法を使用することができる。たとえば、データは、標準のテキストとして、または固定されたリスト、スクロール可能リスト、ドロップダウンリスト、編集可能なテキストフィールド、固定テキストフィールド、ポップアップウィンドウ等として提示されることができる。同様に、実施形態は、たとえば、キーボードを使用するフリーテキストエントリ、メニューアイテムの選択、チェックボックス、オプションボックス等の、ウェブページ内のデータを変更するための、任意の望ましい数の方法を利用することができる。
【００８８】
本開示で説明される前記例示のシステムおよび方法は、機能拒否コンポーネント、スクリーンショット、オプションの選択および様々な処理ステップの観点から表現されることができる。そのような機能拒否は、前記指定の機能を実行するように構成された任意の数のハードウェアコンポーネントおよび／またはソフトウェアコンポーネントによって実現することができると理解すべきである。たとえば、前記システムは、様々な集積回路コンポーネント、たとえば、メモリ要素、処理要素、論理要素、ルックアップテーブル等を使用でき、これらのコンポーネントは、一つ以上のマイクロプロセッサまたは他の制御デバイスの制御下で様々な機能を実行することができる。同様に、前記システムの前記ソフトウェア要素は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ、ＪａｖａＳｃｒｉｐｔ、ＶＢＳｃｒｉｐｔ、Ｍａｃｒｏｍｅｄｉａ  Ｃｏｌｄ  Ｆｕｓｉｏｎ、ＣＯＢＯＬ、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ、アセンブリ、ＰＥＲＬ、ＰＨＰ、ＡＷＫ、Ｐｙｔｈｏｎ、Ｖｉｓｕａｌ  Ｂａｓｉｃ、ＳＱＬ  Ｓｔｏｒｅｄ  Ｐｒｏｃｅｄｕｒｅｓ、ＰＬ／ＳＱＬ、任意のＵＮＩＸシェルスクリプト、およびエクステンシブルマークアップ言語（ＸＭＬ）等のプログラミング言語またはスクリプト言語で実施されることができ、前記様々なアルゴリズムは、データ構造、オブジェクト、プロセス、ルーチンまたは他のプログラミング要素で実行される。さらに、前記システムが、データ送信、シグナリング、データ処理、ネットワーク制御等のための任意の数の従来の技術を使用することができることを留意すべきである。さらになお、前記システムは、ＪａｖａＳｃｒｉｐｔ、ＶＢＳｃｒｉｐｔ等のクライアント側のスクリプト言語に関するセキュリティの問題を検出または防止するために使用することができる。
【００８９】
本開示の前記システムおよび方法は、既存のシステムのカスタマイズ化、アドオン製品、アップグレードされたソフトウェアを実行する処理装置、スタンドアローンシステム、分散システム、方法、データ処理システム、データ処理のためのデバイス、および／またはコンピュータプログラム製品として実施することができる。したがって、前記システムの一部またはモジュールは、コードを実行する処理装置、インターネットベースの実施形態、完全にハードウェアである実施形態、またはインターネット、ソフトウェアおよびハードウェアの側面を組み合わせた実施形態の形態を取ることができる。さらに、前記システムは、前記記憶媒体で実施されるコンピュータ可読プログラムコード手段を有するコンピュータ可読記憶媒体上のコンピュータプログラム製品の形態を取ることができる。ハードディスク、ＣＤ−ＲＯＭ、光記憶デバイス、磁気記憶デバイス等を含む任意の適切なコンピュータ可読記憶媒体を利用することができる。
【００９０】
前記システムおよび方法は、様々な実施形態に係る方法、装置（たとえば、システム）、およびコンピュータプログラム製品のスクリーンショット、ブロック図およびフローチャート図を参照して本開示で説明している。前記ブロック図および前記フローチャート図の各機能ブロック、および前記ブロック図およびフローチャート図における機能ブロックの組合せは、それぞれ、コンピュータプログラム命令によって実施することができることが分かるであろう。
【００９１】
これらのコンピュータプログラム命令は、マシンを生成するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置にロードされ、当該コンピュータまたは他のプログラマブルデータ処理装置が、前記フローチャートブロックまたは複数のフローチャートブロックで指定された前記機能を実施するための手段を創り出すようにすることができる。これらのコンピュータプログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置が指定の方法で機能するように指図することができるコンピュータ可読メモリに記憶され、当該コンピュータ可読メモリに記憶された前記命令が、前記フローチャートブロックまたは前記複数のフローチャートブロックで指定された前記機能を実施する命令手段を含む製品を生成するようにすることもできる。前記コンピュータプログラム命令は、一連の動作ステップをコンピュータまたは他のプログラマブルデータ処理装置上で実行させてコンピュータ実施プロセスを生成するために当該コンピュータまたは他のプログラマブルデータ装置にロードされ、当該コンピュータまたは前記他のプログラマブルデータ装置上で実行する前記命令が、前記フローチャートブロックまたは前記複数のフローチャートブロックで指定された前記機能を実施するためのステップを提供するようにすることもできる。
【００９２】
したがって、前記ブロック図および前記フローチャート図の機能ブロックは、前記指定された前記機能を実行するための手段の組合せ、前記指定された前記機能を実行するためのステップの組合せ、および前記指定された前記機能を実行するためのプログラム命令手段を支援する。前記ブロック図および前記フローチャート図、およびの前記ブロック図および前記フローチャート図における機能ブロックの組合せ内の各機能ブロックは、前記指定された機能またはステップを実行する専用のハードウェアベースのコンピュータシステム、または専用ハードウェアおよびコンピュータ命令の適切な組合せのいずれかによって実施することができることも分かるだろう。さらに、前記プロセスフローの図およびその記載は、ユーザウィンドウズ、ウェブページ、ウェブサイト、ウェブフォーム、プロンプト等を参照できる。実施者は、本開示で記載された図示のステップが、ウィンドウズ、ウェブページ、ウェブフォーム、ポップアップウィンドウズ、プロンプト等の使用を含む任意の数の構成に含まれることが分かるだろう。図示および説明された前記複数のステップは、単一のウェブページおよび／またはウィンドウに統合されてもよいが、簡潔にするために、拡張されていることを理解すべきである。他の場合では、単一のプロセスステップとして図示および説明されたステップは、複数のウェブページおよび／または複数のウィンドウに分離されてもよいが、簡潔にするために、組合されている。
【００９３】
用語「一時的でない」は、伝搬する一時的な信号それ自体のみを特許請求の範囲から除去すると理解されるべきであり、単に伝搬する一時的な信号それ自体ではない全ての標準のコンピュータ可読媒体に対する権利を放棄してはいない。換言すれば、用語「一時的でないコンピュータ可読媒体」の意味は、米国特許法第１０１条下の特許可能な主題の範囲外となることがＩｎ  Ｒｅ  Ｎｕｉｊｔｅｎで認められたこれらのタイプの一時的なコンピュータ可読媒体のみを除外するものと解釈すべきである。
【００９４】
利益、他の利点、および問題の解決手段を、指定の実施形態に関して本明細書で説明した。しかしながら、前記利益、利点、課題の解決手段、および何らかの利益、利点、または課題の解決手段を生じさせるまたはより顕著にすることができる任意の要素は、本開示の決定的な機能または要素、必要な機能または要素、または本質的な機能または要素であると解釈されるべきではない。
【００９５】
本開示は方法を含んでいるが、前記方法を、磁気または光メモリまたは磁気または光ディスク等の有形のコンピュータ可読キャリア上のコンピュータプログラム命令として実施することができることが考えられる。当業者には既知である、上記の例示の実施形態の前記要素に対する全ての構造的、化学的、および機能的な均等物は、参照によって本明細書に明白に援用され、本願の請求項によって包含されることを意図している。さらに、デバイスまたは方法は、本願請求項に包含されるために、本開示によって解決しようとするありとあらゆる課題に対処する必要はない。さらに、本開示の要素、コンポーネント、または方法ステップは、当該要素、コンポーネント、または方法ステップが請求項に明示的に記載されているか否かに関係なく、公共に供することは意図していない。本開示の請求項の要素は、前記要素が語句「ための手段（ｍｅａｎｓ  ｆоｒ）」を使用して明白に引用されない限り、米国特許第１１２条第６項に基づいて解釈されるべきではない。本開示で使用するように、用語「含む（ｉｎｃｌｕｄｅｓ）」、「含んでいる（ｉｎｃｌｕｄｉｎｇ）」、またはそれらの任意の他の変形は、非排他的な包含を含めることを意図しており、要素のリストを含むプロセス、方法、物品、または装置は、これらの要素のみを含むわけではなく、明白にはリストアップされていないまたはそのようなプロセス、方法、物品、または装置に固有ではない他の要素を含むことができる。
【００９６】
「Ａ、ＢまたはＣのうちの少なくとも一つ」、「Ａ、Ｂ、およびＣのうちの少なくとも一つ」、「Ａ、Ｂ、またはＣのうちの一つ以上」、または「Ａ、Ｂ、およびＣのうちの一つ以上」に類似する語句を使用する場合、当該語句が、Ａ単独で一実施形態に存在することができること、Ｂ単独で一実施形態に存在することができること、Ｃ単独で一実施形態に存在することができること、または前記要素Ａ、ＢおよびＣの任意の組合せ、たとえば、ＡとＢ、ＡとＣ、ＢとＣ、またはＡとＢとＣが当該単一の実施形態に存在することができることを意味していると解釈されることを意図している。
【００９７】
本開示の範囲から逸脱することなく、本開示の実施形態に対して変化および変更を行ってもよい。これらのおよび他の変化または変更は、以下の特許請求の範囲で表現されるように、本開示の範囲内に含まれることを意図している。
【図１】
2019514298.tif 000003
【図２】
2019514298.tif 000004
【図３】
2019514298.tif 000005
【図４Ａ】
2019514298.tif 000006
【図４Ｂ】
2019514298.tif 000007
【図４Ｃ】
2019514298.tif 000008
【図４Ｄ】
2019514298.tif 000009
【図５】
2019514298.tif 000010
【図６】
2019514298.tif 000011
【図７】
2019514298.tif 000012
【国際調査報告】
2019514298.tif 000013