JP2009508213A - 一貫したアプリケーション対応ファイヤウォールトラバーサルの提供 - Google Patents

一貫したアプリケーション対応ファイヤウォールトラバーサルの提供 Download PDF

Info

Publication number
JP2009508213A
JP2009508213A JP2008530063A JP2008530063A JP2009508213A JP 2009508213 A JP2009508213 A JP 2009508213A JP 2008530063 A JP2008530063 A JP 2008530063A JP 2008530063 A JP2008530063 A JP 2008530063A JP 2009508213 A JP2009508213 A JP 2009508213A
Authority
JP
Japan
Prior art keywords
client
resource
connection
gateway server
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008530063A
Other languages
English (en)
Other versions
JP4972646B2 (ja
Inventor
ベン−サーカル イド
マラカパッリ メール
ペイルカー アシュウィン
バラボイ タドル
スティール デビッド
チック ジョイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/326,992 external-priority patent/US7685633B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009508213A publication Critical patent/JP2009508213A/ja
Application granted granted Critical
Publication of JP4972646B2 publication Critical patent/JP4972646B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本発明の実施態様は、ファイヤウォールを介してアクセス可能になることが意図されているさまざまなリソースに容易に適合可能な通信フレームワークに関する。一般に、ゲートウェイサーバの通信フレームワークは、広範囲のリソースアクセスポリシおよび/またはネットワークアクセスポリシに従って、要求されたリソースへの特定の接続を提供することができる。まず、クライアントは、ファイヤウォールの背後の特定のリソースへの接続を要求する。通信フレームワークは、その接続を認証し、たとえばクライアントが適当なリソース特徴を使用していることを判定するまで、その接続を検疫隔離する。適当に認証された場合に、通信フレームワークは、接続の制御を適当に識別されたプロトコルプラグインプロセッサに渡すことができ、このプロトコルプラグインプロセッサは、通信スタックのアプリケーションレイヤでの要求されたリソースへの直接接続を容易にする。

Description

本発明は、デベロッパが簡単にクライアント/サーバアプリケーション接続を提供できる標準化されたプラットフォームを提供するように構成されたシステム、方法、およびコンピュータプログラム製品に関する。
コンピュータ化されたシステムの人気が高まるにつれて、大型と小型との両方のネットワーク内のコンピュータシステムのファイルおよび処理リソースを分散させる必要も生じる。一般に、コンピュータシステムおよび関連するデバイスは、たとえばパーソナル電子メッセージを交換し、商品を売り、アカウント情報を提供するなど、さまざまな理由のためにネットワークを介して情報を通信する。しかし、コンピュータシステムおよびそれに関連するアプリケーションが、ますます洗練されてくるにつれて、ネットワーク上でのデータおよびリソース(たとえば、「デバイス」、「アプリケーション」、または「アプリケーションコンポーネント」)の共有に関連する課題も増えてきた。
ネットワーク内でリソースを管理するいくつかの現在の形は、集中コンピューティングシナリオを含み、このシナリオでは、ローカルにインストールされたリソースを有しない1つまたは複数のクライアントとリソースを共有する集中ゲートウェイサーバを用いることができる。1つのそのような例は、クライアントコンピュータシステムがローカルイントラネット上でゲートウェイサーバにログインすることまたはネットワークファイヤウォールを介してログインすることを可能にする集中ゲートウェイサーバを用いる。クライアントコンピュータは、セキュア接続を使用することによって、ファイヤウォールを介して、関心を持たれているデータおよびリソースにアクセスすることができる。
1つのファイヤウォールの例では、クライアントコンピュータシステムは、ファイヤウォールを介して、クライアントコンピュータシステムのネットワークレイヤからサーバコンピュータシステムの対応するネットワークレイヤへ、仮想プライベートネットワーク(「VPN」)、リモートアクセスサーバ(「RAS」)、または他の関連するタイプのファイヤウォールトラバーサル接続(firewall-traversal connection)を使用してトンネリング(tunneling)することができる。このようなトンネリングファイヤウォールトラバーサル接続は、一般に、Secure Hypertext Transfer Protocol(「HTTPS」)を使用するクライアントを用いる。HTTPSは、ゲートウェイサーバで認証するために、Secure Socket Layer(「SSL」)暗号化機構(encryption mechanism)またはTransport Layer Security(「TLS」)暗号化機構を使用して暗号化された情報を交換するHTTP機構(mechanism)である。ゲートウェイサーバが、ファイヤウォールを介する通過を許可した後に、クライアントコンピュータシステムは、所与のリソースと相互作用するのに1つまたは複数のソケットを使用するなどして、ファイヤウォールの背後にあるリソースのすべてにアクセスすることができる。
クライアントのアプリケーションレイヤをサーバのアプリケーションレイヤと接続するものなど、もう1つのファイヤウォールトラバーサルソリューションを用いると、クライアントは、関心を持っているリソースに関連するプロトコルプロセッサをコールアウトしなくてはならない場合がある。この場合のプロトコルプロセッサは、本質的に、アプリケーションプログラムインターフェース(「API」)であり、このAPIは、通常、サードパーティデベロッパによってRPC/HTTPS通信スタックへのプラグイン(すなわち、「プロトコルプロセッサプラグイン」)としても設計される。あるタイプのリソースまたはアプリケーションプログラムと通信するために構成されるほかに、プロトコルプロセッサプラグインは、通常、所与のリソース(または「アプリケーション」)を使用するための、あるネットワークポリシを含むようにも設計される。したがって、ログインの際に、およびプロトコルプロセッサプラグインによって要求されるすべての必要なレベルの認証に合格する際に、クライアントコンピュータシステムは、サーバコンピュータシステムの要求されたリソースと情報を交換することができる。たとえば、クライアントは、マウスイベントおよびキーボードイベントを送ることができる場合があり、これらのイベントは、その後、適当なリソースに中継される。次いで、そのリソースは、これらのイベントを処理し、その処理の結果をローカルディスプレイのためにクライアントに返す。
残念ながら、これらの異なるタイプのトラバーサルソリューションから可能な一部の便益にもかかわらず、サードパーティデベロッパの観点からこれらのタイプの通信を実施するのを難しくする可能性がある複数の非効率性が存在する可能性がある。たとえば、アプリケーションレイヤではなくネットワークレイヤの間のネットワーク接続を使用する時に、クライアントは、効果的に、ローカルネットワーク動作をディスエーブルする場合がある。たとえば、ネットワークレイヤの間で作成される接続トンネルは、そうでなければ他のタイプのネットワーク接続を使用して入手可能になるはずのいくつかのタイプのネットワークリソースをディスエーブルする可能性があり、たとえば、クライアントが、ローカルエリアネットワークプリンタ、ローカルネットワーク対応の音楽ストリーミングデバイスまたはビデオストリーミングデバイスなどにアクセス不能になる可能性がある。
もう1つの問題は、すべてのインターネットトラフィックが、クライアントコンピュータシステムが接続されるサーバコンピュータシステムを介して向けられることである。したがって、クライアントが、VPNを使用して会社のファイヤウォールに接続され、そのクライアントが、外部のニュースベースのウェブサイトを要求する場合に、そのニュースベースのウェブサイトは、そのクライアントコンピュータシステムに進む前に会社のファイヤウォールを介してトンネルされる。もう1つの問題は、VPN/RASが、パケット監視およびフィルタリングしか行うことができず、このパケット監視およびフィルタリングが、通常、複雑なプロトコルまたはステートフルプロトコル(stateful protocol)に対して行うことが難しいことである。
代替案では、アプリケーションレイヤタイプの接続に関する問題は、サードパーティデベロッパが、サーバゲートウェイを通過するアプリケーションプロトコルをハイレベルで制御できるプロトコルプロセッサプラグインを開発することが難しくなり得るという観念を含む。具体的に言うと、アプリケーションレイヤ接続は、(各接続が、ネットワークアイデンティティではなくアプリケーションアイデンティティに基づくので)クライアントが他のネットワークに同時に接続することを可能にすることができるが、この種の統合は、デベロッパが、クライアントがアクセスできるようにすることをそのデベロッパが望む個々のリソースまたはアプリケーションごとに異なるプロトコルプロセッサプラグインを作成する必要もあることを意味する。これは、各異なるプロトコルプロセッサが追加の独自のアクセスポリシ(access policy)を含むことをも必要とする場合があるので、さらなる問題をもたらす可能性がある。そのようなアクセスポリシは、たとえば、あるユーザまたはあるクラスのユーザさえも、ある種のリソースにログイン(またはアクセス)することを、どのように、いつ許可されなければならないか、または許可されなければならないかどうかを含む可能性がある。
したがって、たとえば、アプリケーションレイヤ接続を実施するデベロッパは、ゲートウェイサーバに関する1つの種類のアクセスポリシを実施する、Remote Desktop Protocol(「RDP」)を使用する1つのプロトコルプロセッサプラグインを記述することができ、それと同時に、そのゲートウェイサーバで異なるアクセスポリシを実施する、Server Message Block(「SMB」)プロトコルを使用する異なるプロトコルプロセッサプラグインを記述することができる。潜在的に独自のアクセスポリシを有することに加えて、各プロトコルプロセッサは、他のさまざまな管理ツールおよび診断ツールに使用される別々の独自のスクリプトをも有する場合がある。したがって、デベロッパが、彼らがファイヤウォールを介してアクセス可能にすることを求める、関心を持たれている異なるリソースのそれぞれについて、異なるプラグイン、ネットワークポリシ、および関連する診断プロトコルを一から継続的に作成していることがしばしばである。
これは、特にサーバおよび/またはリソースがその寿命の間に経験する可能性があるさまざまなコードバージョンを考慮する時に、デベロッパにとっておよびネットワーク管理者にとってもかなり複雑な仕事になり得る。たとえば、クライアントコンピュータシステムが、サーバとの通信の前に、あるリソースまたはアプリケーション機能をインストールしていない可能性があり、その特徴が、通信がインターセプトされず、他の形での破壊を許さないことを保証する可能性がある時である。しかし、現在のセキュリティ認証プロトコルおよびプロトコルプロセッサプラグインは、通常、この種の制約を考慮に入れていない。そうではなく、これらの問題は、接続されたリソースによって後に処理される可能性があり、これは、通信エラー、切断されるかインターセプトされる接続をもたらす可能性があり、最悪の場合にゲートウェイサーバを危険にさらす可能性さえある。具体的に言うと、現在のアクセスポリシコントロールは、ネットワーク管理者および/またはリソース管理者に粒状の制御(granular control)をすぐには提供しない。
したがって、現在のクライアント/サーバ通信における、対処できる複数の非効率性がある。
本発明の実施態様は、デベロッパが簡単にクライアント/サーバアプリケーション接続を提供できる標準化されたプラットフォームを提供するように構成されたシステム、方法、およびコンピュータプログラム製品を用いて、当技術分野の1つまたは複数の問題を解決する。具体的に言うと、本発明の一実施態様は、リモートクライアントと任意のサーバリソースとを通信スタックのアプリケーションレベルでファイヤウォールを介して効率的かつセキュアに接続するように構成されたセキュア通信フレームワークを含む。この通信フレームワークは、デベロッパによって独立に開発されることを必ずしも必要とはしないさまざまな適当なアクセスポリシを考慮して接続を促進することができる。さらに、この通信フレームワークは、クライアントが、最小のソフトウェアパッチをインストールしていなければリソースに接続できないことを保証するのに使用できる、ある検疫隔離機能(quarantine function)をさらに含むことができる。
たとえば、通信フレームワーク内に少なくともリモートプロシージャコールレイヤおよびsecure hypertext transfer protocolレイヤを有するゲートウェイサーバにおいて、本発明の実施態様による方法は、クライアントから接続要求を受信することを含むことができる。一般に、接続要求は、クライアントが接続することを望むリソースを識別することができる。この方法は、クライアントが特徴の最小セットをサポートするかどうかを判定するためにクライアントとの接続を検疫隔離することをも含むことができる。さらに、この方法は、識別されたリソースのリソースタイプに基づいてプロトコルプロセッサプラグインを識別することと、クライアントとの接続を識別されたプロトコルプロセッサプラグインに転送することとを含むことができる。
さらに、クライアントがゲートウェイサーバファイヤウォールを介してリソースにアクセスするクライアントコンピュータシステムにおいて、本発明の実施態様による方法は、接続に関する要求をゲートウェイサーバに送信することを含むことができる。一般に、要求は、対応するクライアントリソースと接続すべきサーバリソースとを識別することができる。この方法は、クライアントリソースで使用可能な特徴の最小セットに関する要求をゲートウェイサーバから受信することをも含むことができる。さらに、この方法は、バージョン応答をゲートウェイサーバに送信することを含むことができ、この応答は、クライアントでサポートされる特徴セットを示す。さらに、クライアントの観点からの方法は、ゲートウェイサーバの通信スタックのアプリケーションレイヤに接続することを含むことができる。したがって、クライアントリソースは、サーバリソースに関連するプロトコルプロセッサプラグインとデータを通信することができる。
上述の説明は、以下の、発明を実施するための最良の形態においてさらに説明される概念の選択物を単純化された形で紹介するために提供される。上述の説明は、請求される主題の主要な特徴または本質的特徴を識別することを意図されたものではなく、請求される主題の範囲を判定する際の助けとして使用されることを意図されたものでもない。
本発明の追加の特徴および利益は、次の説明で示され、部分的にその説明から明白になり、あるいは本発明の実践によって習得することができる。本発明の特徴および利益は、添付の特許請求の範囲において具体的に指摘される手段および組合せによって実現し、得ることができる。本発明の上記および他の特徴は、次の説明および添付の特許請求の範囲からより十分に明白になり、あるいは、この後で示される本発明の実践によって習得することができる。
本発明の上述した利益および特徴並びに他の利益および特徴を得ることができる方法を説明するために、上で短く説明した本発明のより具体的な説明を、添付図面に示された本発明の特定の実施形態を参照することによって提供する。これらの図面が、本発明の通常の実施形態だけを示し、本発明の範囲に関して限定的ではないという理解の下で、本発明を、添付図面の使用してさらに具体的かつ詳細に説明する。
本発明の実施態様は、デベロッパが簡単にクライアント/サーバアプリケーション接続を提供できる標準化されたプラットフォームを提供するように構成されたシステム、方法、およびコンピュータプログラム製品におよぶ。具体的に言うと、本発明の一実施態様は、リモートクライアントと任意のサーバリソースとを通信スタックのアプリケーションレベルでファイヤウォールを介して効率的かつセキュアに接続するように構成されたセキュア通信フレームワークを含む。この通信フレームワークは、デベロッパによって独立に開発されることを必ずしも必要とはしないさまざまな適当なアクセスポリシを考慮して接続を促進することができる。さらに、この通信フレームワークは、クライアントが、最小のソフトウェアパッチをインストールしていなければリソースに接続できないことを保証するのに使用できる、ある検疫隔離機能をさらに含むことができる。
上記および他の特徴の結果として、本発明の諸態様による通信フレームワークは、ポイントツーポイントアプリケーションプロトコルを拡張し、これによってゲートウェイを活用する能力を単純化する。たとえば、本発明の諸態様は、ゲートウェイサーバにあるアプリケーション対応プロトコルプロセッサプラグインへのクライアント露出(client exposure)を可能にし、これは、どのように、いつ、誰が、ある種のリソースにアクセスできるかに対する特定の統治を提供することができる。アクセスポリシの多くが、この通信フレームワークに含まれるので、粒状の構成(granular configuration)およびパススルーポリシ(pass-through policy)を、プロトコルプロセッサプラグインデベロッパが簡単に実施でき、これによって、プロトコルプロセッサプラグインの開発がはるかに単純でより効率的になる。さらに、本発明の諸態様による通信フレームワークは、ある種の特徴をサポートするクライアントだけが、まず第1に、ゲートウェイサーバファイヤウォールを通ってトンネリングでき、最終的にリソースへのチャネルを確立できることを保証することができる。
予備的な問題として、本明細書で説明する概略図および流れ図は、本発明の諸態様に従って使用できる複数のアプリケーションプログラムインターフェース(「API」)に言及する。クライアント側およびゲートウェイサーバ側から通信フレームワークと共に使用できるAPIの個数は、実施態様に伴って変更することができる。たとえば、一実施態様では、少なくとも2つのクライアントAPIおよび少なくとも4つのゲートウェイサーバAPIを設けることができる。
クライアント側からは、たとえば、1つのクライアントAPIが、クライアントプロトコルプロセッサプラグインがトンネルを作成し、見つけ、チャネルを作成し、リソースサーバにトラフィックを送信することを可能にする「コアAPI」を含むことができる。コアAPIは、リソースアクセスポリシに従って非デフォルト信用証明書を収集する追加APIをも含むことができる。第2のクライアントAPIは、「構成API」を含むことができる。構成APIは、クライアントプロトコルプロセッサプラグインが、ゲートウェイサーバに接続するための構成情報(たとえば、ゲートウェイサーバ名、認可タイプなど)を格納し、ロードし、クライアントアダプタ挙動を制御することを可能にすることができる。
サーバ側からは、1つのゲートウェイサーバAPIも、ゲートウェイサーバプロトコルプロセッサプラグインがチャネルを作成するクライアント要求にサービスし、クライアントからのトラフィックをゲートウェイサーバへおよびその逆に転送することを可能にする「コアAPI」を含むことができる。やはり「構成API」である第2のAPIは、サーバプロトコル永続データ用の共通ストアを提供することができる。第3のAPIすなわち「ポリシAPI」は、ネットワークアクセスポリシおよびリソースアクセスポリシへのインターフェースを提供することができ、ゲートウェイサーバプロトコルプロセッサプラグインが、これを使用して、ユーザがチャネル作成中に特定のリソースサーバに接続することを認可されるかどうかを判定することができる。第4のAPIすなわち「ランタイムステータスおよび制御API」は、管理ツールが、使用量を監視し、不正をはたらくユーザに属するトンネルのシャットダウンなどのランタイム状態に対する変更を行うことをオンザエッジで(on the edge)可能にすることができる。
これらは、本発明の一般原理に従って使用できる特定のタイプのAPIの例である。これらのAPIの機能を、次の図での全般的な参照によって述べる。たとえば、図1Aに、クライアントコンピュータシステム100が、ゲートウェイサーバ150のファイヤウォールの背後に配置された特定のリソース(たとえば、アプリケーションまたは関連するコンポーネント)との通信を試みる、本発明の実施態様の概略全体図を示す。この通信を行うために、クライアント100およびゲートウェイサーバ150は、最終的に、同様に構成されたプロトコルプロセッサプラグイン(たとえば、115a〜b)を使用し、これらのプロトコルプロセッサプラグインは、通信フレームワーク107のコンテキスト内で通信し、かつ/または動作することができる(たとえば、上記の)APIのセットを含む(すなわち、フレームワークに対する「プラグイン」)。
続く明細書および特許請求の範囲からより十分に理解されるとおり、通信フレームワーク107は、さまざまなコンポーネント、処理モジュール、ツール、インデックス、または類似物を含む、(たとえば、上で述べた4つのAPIを含む)機能豊富なデータ構造である。一般に、通信フレームワーク107は、通信フレームワーク107とインターフェースし、通信フレームワーク107内で提供される特徴およびポリシを別々に開発しまたは記述する必要なしに、これらの特徴およびポリシを使用するプロトコルプロセッサプラグイン(たとえば、115a〜b、117)をデベロッパが簡単に設計できるように設計され、かつ/または構成される。
具体的には、図1Aは、通信フレームワーク107が、ネットワーク135の物理境界とゲートウェイサーバ150のさまざまなソフトウェアコンポーネントとの間でインターフェースするのに使用される通信スタック113を含むことを示す。一般に、ゲートウェイサーバ150は、すべてのインバウンドおよびアウトバウンドのインターネットトラフィックがそれを通過する、大組織のファイヤウォールを備えたインターネットサーバなど、任意のネットワークエッジサーバを含むことができる。たとえば、ホームオフィス位置からオフィス位置のリソースに接続することを望む、組織の労働者は、ファイヤウォールの背後のリソースにアクセスする前に、ゲートウェイサーバ150を介して接続する。
したがって、通信フレームワーク107は、特定のリソースにアクセスするのに使用できるファイヤウォールの背後のリソースとインターフェースする任意の個数のコンポーネントおよびモジュールを含むことができる。たとえば、図1Aは、通信フレームワーク107の通信スタック113の実施態様が、secure Hypertext Transfer Protocol(「HTTPS」)レイヤ105bならびにプラグ可能トランスポートレイヤ110bを含むことを示す。一実施態様では、プラグ可能トランスポートレイヤ110b(ならびにレイヤ110a)は、リモートプロシージャコール(「RPC」)レイヤ110bであり、レイヤ105a〜bおよびレイヤ110a〜bを一緒に「HTTPS/RPC」と呼ぶこともできるようになっている。そのようなものとして使用される時に、HTTPSレイヤ105bは、任意のSSLまたはTLSの暗号化/エンコーディングを暗号化解除しまたはデコードし、プラグ可能トランスポートレイヤ110bは、クライアント100の対応するプラグ可能トランスポートレイヤ110aで行われたすべてのラッピング(たとえば、RPC)をアンパックする。
もちろん、通信スタック113に含まれる任意の個数の追加のまたは代替のレイヤを設けることができ、これらのレイヤは、伝統的な7レイヤオープンシステム相互接続(「OSI」)モデルの一部とするか、これに相関することができる。たとえば、HTTPS/プラグ可能トランスポートレイヤ105b/110bは、図を単純にするためにこの実施態様ではレイヤの最小セットとして示されているが、これは、本発明の諸態様を達成する唯一の形ではない。他の実施態様では、たとえば、デベロッパが、HTTPなしで済ませ、やはりクライアントおよびゲートウェイのアプリケーションレイヤをセキュア接続を介して接続するSSLおよび/または伝送制御プロトコル(「TCP」)ソリューションに基づく別の接続機構を使用することができる。したがって、HTTPS/プラグ可能トランスポート、特にHTTPS/RPSセットは、ファイヤウォールトラバーサルソリューション要素を提供する1つの可能な形に過ぎない。
特筆すべきことに、HTTPSおよびRPCなどのプラグ可能トランスポートレイヤの1つの利点は、RPCなどのいくつかのプロトコルが、HTTPのより以前のバージョン(たとえば、HTTPバージョン1.0)と後方互換であることである。したがって、HTTPS/RPCセットを使用するデベロッパは、ファイヤウォールトラバーサルソリューションのこの要素を、より古いサーバでまたはトラフィックのタイプをより一般的なHTTPタイプのトラフィックに制限するサーバで、より簡単に使用できることに気付くことができる。
どの場合でも、図1Aは、トラバーサルアプリケーションインターフェース(「トラバーサルAPI」)160が、スタック113のHTTPS/プラグ可能トランスポートバンドルの上で階層化されることをも示す。トラバーサルAPI 160は、クライアント100と適当なプロトコルプロセッサプラグインとの間の適当な接続を作成し、適当なネットワークポリシが接続で実施されることを保証する任意の個数のコンポーネントおよびモジュール(たとえば、上で述べた「コアAPI」、「構成API」、「ポリシAPI」、および/または「ランタイムステータスおよび制御API」のうちの1つまたは複数)を含むことができる。たとえば、トラバーサルAPI 160は、下でより詳細に述べる複数の機能について参照できる、アクセスポリシコンポーネント170(たとえば、「ポリシAPI」)および管理ツールコンポーネント175(たとえば、「構成API」および/または「ランタイムステータスおよび制御API」)を含む。しかし、より一般的には、トラバーサルAPI 160は、通信スタック113内のHTTPS/プラグ可能トランスポートバンドルと、特定のリソースとの通信に使用される1つまたは複数のプロトコルプロセッサプラグインとの間のシム(shim)として働くことができる。
たとえば、図1Aは、ゲートウェイサーバ150が、少なくともプロトコルプロセッサプラグイン115bおよび117をも含むことを示す。一般に、プロトコルプロセッサプラグインは、一端では通信フレームワーク107の境界内で相互作用することができ、他端では通信フレームワーク107を介して受け取られるデータを特定のリソースに渡す、サードパーティデベロッパによって開発されるインターフェースである。さらに、プロトコルプロセッサプラグインは、リソースまたはリソースのクラスに関連するプラグインの「タイプ」に関して定義することができる。たとえば、共通インターフェースを介して相互作用するオフィスアプリケーションのセットが、あるタイプのアプリケーションを構成することができ、異なるインターフェースを介して相互作用するデータベースプログラムが、異なるタイプのアプリケーションまたはリソースを構成することができる。さらに、プリンタまたはディスクドライブなどのハードウェアが、通信するための他のタイプのインターフェースを有するさらに別のリソースを構成することができる。したがって、リソースを提供するデベロッパは、その所与のリソースのための独自のプロトコルプロセッサプラグインを記述することもできる。
しかし、デベロッパは、クライアントが要求されたリソースと通信できるようにするために、対応するプロトコルプロセッサプラグインをクライアントに与える必要もある。したがって、たとえば、図1Aは、クライアント100が、通信スタック103を有し、この通信スタック103も、レイヤ105aおよびプラグ可能トランスポートレイヤ110aを含むことをも示す。一般に、プラグ可能トランスポートレイヤ110aは、適当なプロトコル(たとえば、RPCレイヤを使用する時にはRPCプロトコル)に従って発信メッセージ(たとえば、130)をラップするのに使用され、HTTPSレイヤ105aは、SSLまたはTLSの暗号化またはエンコーディングを用いるなど、発信メッセージを暗号化するかエンコードするのに使用される。クライアントのHTTPS/プラグ可能トランスポートバンドルの上に階層化されているのが、プロトコルプロセッサプラグイン115aである。
一般に、プロトコルプロセッサプラグイン115aは、ゲートウェイサーバ150の適当なリソースとの接続トンネルおよび対応するチャネル(トンネル内の)を作成するのに必要なすべてのインターフェース(たとえば、「コアAPI」および/または「構成API」)、リソース、またはコンポーネントを含む。したがって、プロトコルプロセッサプラグイン115aは、少なくともプロトコルプロセッサプラグイン115bと相補的である。たとえば、図1Aは、プロトコルプロセッサプラグイン115aが、クライアント100がローカルに使用しているリソース(すなわち、リソース120a)のタイプに対応する、あるタイプ(すなわち、「タイプA」)を有し、したがって、同一の呼出し、エンコーディングなどを使用して、相補的なプロトコルプロセッサプラグインと通信できることを示す。
この線に沿って、図1Aは、さらに、通信スタック103がリソース120a(たとえば、アプリケーションプログラム、コンポーネント、または別のAPIさえ)を含むことを示す。たとえば、クライアントは、ゲートウェイサーバ150のファイヤウォールの背後に配置されたデータベースの動作するバージョンと同期化される、ローカルコンピュータシステム上のデータベースアプリケーションを開く。リソース120aは、いくつかの場合にアプリケーションのフルバージョンとすることができるが、リソース120aを、単に、ゲートウェイサーバ150からストリーミングされるデータをある形で表示することを可能にする、アプリケーションのソフトウェアコンポーネントとすることもできる。したがって、リソース120aなどのコンポーネントは、この場合に、クライアント100がゲートウェイサーバ150のリソースに直接に接続することを可能にする、リソースの最小限のセットを提供する。
たとえば、図1Aは、クライアント100が、リソース120aを使用してリソース120bとの接続を要求する130ことを示す。それを行うために、クライアント100は、所望のリソース(すなわち、リソース120a)に適当なタイプ(すなわち、「タイプA」)である、適当なプロトコルプロセッサプラグイン(すなわち、115a)を有する通信スタック103を開始する。次に、クライアント100は、通信スタック103を介してゲートウェイサーバ150に接続要求メッセージ130を送信する。具体的に言うと、プロトコルプロセッサプラグイン115aは、認証情報(たとえば、ユーザ名およびパスワード、クライアント識別、ディジタル署名)、リソース120bへの特定の呼出し、およびトラバーサルAPI 160で要求される可能性があるすべてのネットワークポリシ情報を有する発信メッセージ130を準備する。次に、プロトコルプロセッサプラグイン115aは、プラグ可能トランスポートレイヤ110aでパッケージ化され、HTTPSレイヤ105で暗号化され(すなわち、TLSまたはSSLを介して)、その後にネットワーク135を介して送信されるメッセージ130を送信する。
次に、通信フレームワーク107が、メッセージ130を受信し、最初のアンパッキング機能および暗号化解除機能を実行する。たとえば、HTTPSレイヤ105bが、すべてのSSLエンコーディングまたはTLSエンコーディングを暗号化解除し、プラグ可能トランスポートレイヤ110bが、メッセージを任意の適当なエンコーディング(たとえば、RPCエンコーディング)からアンパックする。次に、トラバーサルAPI 160は、メッセージ130内の認証情報を検査し、かなり粒状のアクセスポリシに基づいて、クライアント100が要求された接続について認可されるかどうかを判定することができる。一実施形態では、特に、アクセスポリシの粒度は、アクセスポリシを少なくとも2つの独立のセット、すなわち、クライアントがまずサーバ150へのネットワーク接続を行うことを認可されるかどうかを判定するネットワークアクセスポリシと、接続トンネルを作成することを許可されるにもかかわらずクライアントが要求されたリソースとの接続チャネルを有することを認可されるかどうかを判定するリソースアクセスポリシとに区別することに基づく。そのようなアクセスポリシ(ネットワークまたはリソース)認可は、たとえば、伝統的なユーザ名およびパスワードを認証すること、「クライアントヘルス」を識別すること、または類似物(たとえば、下でより十分に述べる検疫隔離特徴)など、ネットワーク管理者および/またはアプリケーション/リソース管理者が望む任意の個数の考慮事項に依存するように構成することができる。
ネットワークアクセスポリシルールのいくつかの例に、クライアント100のユーザが、要求されたリソースに関連する認可されるグループの一部であるかどうかに関する制限が含まれる。ネットワークアクセスポリシのセットを、あるサーバ接続をマーケティング部門内のグループだけに制約し、一般サーバ接続トンネルの個数をある最大個数までに制限し、ファイヤウォールの背後のあるサーバへのアクセスを制限し(一日のある時刻に、あるユーザになど)、あるいはアクセスを所与のサーバの特定のポートだけに制限するように構成することもできる。さらに他のネットワークアクセスポリシを、サーバ150に接続する前に「スマートカード」を提示するようにクライアントに要求するように構成することができる。
類似する線に沿って、リソースアクセスポリシのセットを、リソースへの接続チャネルの個数を制限し(ユーザがファイヤウォールを介してサーバに既に接続しているにもかかわらず)、すべてのリソースを全般的に制約し、かつ/またはリソースおよび/もしくは接続を一日のある時間数の間に限ってユーザのあるグループに制約するように構成することができる。少なくとも部分的に、ネットワークアクセスポリシおよびリソースアクセスポリシを、個別化された判断基準を用いて独立に構成することができるので、アクセスポリシコンポーネント170は、ゲートウェイサーバ150での認証およびアクセスフィルタリングに対するはるかに粒状の制御をネットワーク管理者および/またはリソース管理者に与えることができる。
具体的に言うと、2つのポリシクラス(すなわち、リソースアクセスポリシおよびネットワークアクセスポリシ)を、「アクセスのレベル」を介してリンクすることができ、これによって、ネットワーク管理者および/またはアプリケーション/リソース管理者が、特に彼らが彼らの間のアクセスレベルの特定のセットに合意する場合に、かなり独立に彼らのポリシを定義でき、案出できるようになる。たとえば、あるユーザが、特定のユーザ名およびパスワードを提供するときに一日のある時にリソースの1つのセットにアクセスできるが、一日の別の時にはスマートカードをも提示しなければリソースの同一のセットにアクセスできないものとすることができる。同様に、そのユーザが、そのユーザがいずれかの形の認証を提示するかどうかにかかわりなく、一日のある時またはおそらくは週末に、オーバーラップしないリソースの異なるセットにアクセスできるものとすることができる。
さらに、ネットワークアクセスポリシおよびリソースアクセスポリシの組合せを使用して、一日のうちでサーバでの接続トンネルの最大個数に対する特定の制限を有する時間中にユーザがサーバ150にアクセスすることを完全に防止するか、特定の時間中に、1つの内部サーバの背後にあるバージョンのリソースに接続するが、別のサーバでホスティングされる同一リソースの異なるバージョンには接続しないようにすることができる。もちろん、アクセスポリシコンポーネント170のネットワークアクセスポリシおよびリソースアクセスポリシの独立の判断基準によって提供される制御の粒度のこのレベルは、単純にユーザのアクセスのレベルをベースレベルからより管理的なタイプのアクセスのレベルに変更することによって、さらに変更することができる。
どの場合でも、図1Aは、通信フレームワーク107が、たとえば通信フレームワーク107が通信するように構成された1つまたは複数の特徴のうちの任意の個数の特徴を要求するメッセージ140を用いて応答することをも示す。具体的に言うと、本発明の実施態様は、さらに、上で述べたように、ネットワークアクセスポリシの一部として、可能な検疫隔離特徴を含むことができ、この検疫隔離特徴では、通信フレームワーク107は、リソースまたは特徴の最小セット(たとえば、あるリソースバージョン、プロトコルまたはコンポーネントのセット、ソフトウェアパッチなど)を有するクライアントだけが、所与のサーバリソースへの接続を許可されることを保証する。
代替実施態様では、通信フレームワーク107は、クライアント100によってサポートされないすべての特徴を単純にオフに切り替え、その結果、クライアントが、ある点でそのようなサポートされない特徴を用いて通信することを試みないようにする。たとえば、リソース120bのデベロッパが、クライアント100も対応するリソース、特徴、または特徴アップデートの最小セットを有するのでない限り、クライアント100(または、リソースアクセスポリシによって識別されるユーザのクラス内のクライアント)によってアクセス(または使用)されてはならない、複数の特徴または特徴アップデートをこのリソースに提供した場合がある。これらのリソース、特徴、および/または関連する特徴アップデートは、機能的なものとすることができるが、セキュリティ関連とすることもでき、したがって、デベロッパにとって実施が重要なものとすることができる。したがって、一実施態様で、通信フレームワーク107は、単純に、クライアント100とのそのような特徴ネゴシエーションが検証されるか認証されるまで、要求された接続を検疫隔離状態にすることができる。
次に、クライアント100は、クライアント100が実行しているまたは実行する備えがある特徴を検出することによるなど、メッセージ140を処理し、応答を準備する。たとえば、図1Bは、クライアント100が、すべてのそのような識別されたサポートされる特徴を示すメッセージ145を用いて応答することを示す。次に、トラバーサルAPI 160は、応答145をアクセスポリシコンポーネント170内の情報と比較して、クライアントがサポートするこれらの特徴が、ネットワーク接続に適切である、または要求されたリソースへのチャネルの確立に適切であるのか、あるいは異なる特徴(または同一の特徴の異なるバージョン)が必要であるのかを判定することができる。一実施態様で、ゲートウェイサーバ150への接続に異なる特徴が必要である(すなわち、クライアント100が十分にアップデートされていないか、ある必要な特徴を有しない)場合に、トラバーサルAPI 160は、単純に接続を切断するか、エラーメッセージを送信するか、クライアント100が特徴をダウンロードできるネットワーク位置をポイントするメッセージを送信することができる。上で述べたものなど、他の実施態様では、通信フレームワーク107が、クライアント100もサポートしているのではないゲートウェイサーバ150特徴を単純にオフに切り替える。
メッセージ145が、特徴の適当なセット(そのような特徴が必要である可能性がある時に)を示し、クライアント100が、要求されたサーバ側リソースへのアクセスを認可される場合に、トラバーサルAPI 160は、接続をそのリソースに関する適当なプロトコルプロセッサプラグインに転送し始めることができる。たとえば、トラバーサルAPI 160は、まず、要求されているリソースの「タイプ」を調べて、リソース120bが特定のプロトコルプロセッサプラグインを必要とするかどうか、またはリソース120bがリソースのより広いクラスの一部であるかどうかを判定することができる。具体的に言うと、図1Bは、プロトコルプロセッサプラグイン115bが、少なくともリソース120bおよび123に関連するが、「タイプB」プロセッサであるプロトコルプロセッサプラグイン117が、少なくともリソース125および127に関連することを示す。一般に、適当なプロトコルプロセッサプラグインを判定するこのアクションは、各プロトコルプロセッサプラグインがインストール時にそれに登録するシステムレジストリを再検討することによって行うことができる。
どの場合でも、図1Bは、トラバーサルAPI 160が、「タイプA」プロセッサであり、要求されたリソース120bに関連するプロトコルプロセッサプラグイン115bを識別することを示す。次に、トラバーサルAPI 160は、クライアント100とプロトコルプロセッサプラグイン115bとの間でチャネルの制御を渡す。したがって、クライアント100のプロトコルプロセッサプラグイン115aおよびゲートウェイサーバ150のプロトコルプロセッサプラグイン115bは、今や、それぞれスタック103および113のめいめいのアプリケーションレイヤで接続され、したがって、接続のこのチャネルを介してデータを交換する(たとえば、155)ことを可能にされる。具体的に言うと、通信フレームワーク107は、めいめいの通信スタックのネットワークレイヤによって処理されるネットワーク接続ではなく、対応するクライアントおよびゲートウェイサーバのプロトコルプロセッサプラグインを使用する特定のリソースへの接続用のトンネル内の1つまたは複数のチャネルを可能にする。
接続トンネルを介するこれらのチャネルの制御は、クライアント100が、アクセスできるすべての追加リソースを識別することならびに当初に要求されたリソース(すなわち、リソース120b)に関する追加チャネルを作成することを可能にすることができる。たとえば、クライアント100は、通信フレームワーク107を介して同一のリソースとの接続トンネル内で複数のチャネルを作成することができ、リソース123など、リソース120b用の同一のプロトコルプロセッサプラグインに関連する他のリソースへの追加チャネル(ならびに、他のトンネルおよび対応する1つまたは複数の他のチャネル)を提供するようにトラバーサルAPI 160に要求することもできる。いくつかの実施態様では、クライアント100は、別のリソース(たとえば、125)との通信に従う別のプロトコルプロセッサプラグイン(たとえば、117)を識別するように通信フレームワーク107に求めることもできる。どの場合でも、接続制御は、少なくとも部分的にアクセスポリシコンポーネント170および/または管理ツールコンポーネント175(または「ツールコンポーネント175」)を介して管理される。
一般に、ツールコンポーネント175は、任意の個数のインターフェース(たとえば、「コアAPI」、「構成API」、「ポリシAPI」、および/または「ランタイムステータスおよび制御API」のうちの任意の1つまたは複数)を含むことができる。管理ツールコンポーネント175は、たとえばゲートウェイサーバ150の管理者によってアクセスできる、任意のスクリプト、データテーブル、および関連する関数をも含むことができる。たとえば、あるプロトコルプロセッサプラグインに関するネットワークポリシに影響することまたは通信フレームワーク107を介する接続の個数を分析することを望むネットワーク管理者は、ツールコンポーネント175によって提供されるユーザインターフェース(図示せず)を開くことができる。
次に、ネットワーク管理者は、全般的なインターネット使用量を監視し、ランタイム状態に対する変更を行い、不正を働くユーザに属するすべてのトンネルをシャットダウンし、ファイヤウォールトラバーサル接続の個数を制限し、そのような接続を行うのに使用される暗号化のタイプを宣言することができる。ネットワーク管理者は、上記および本明細書全体を通じて説明されるものなどの他のネットワークセッティングまたはポリシのいずれをも変更することができる。ネットワーク管理者は、さらに、インターフェースを使用して、どのユーザがどのタイプのリソースにアクセスすることを許可されるのか、どのリソースが使用可能にされなければならないのか、これらのリソースをファイヤウォールの外側からいつアクセスできるのか、およびこれらのユーザがどのサーバにアクセスできるのかをセットすることができる。
プロトコルプロセッサプラグインのデベロッパは、コンポーネント175内のこれらのツールにアクセスすることもできる。具体的に言うと、デベロッパは、プロトコルプロセッサプラグインを記述して、そのプロトコルプロセッサプラグインと共に使用されるさまざまなデフォルトネットワークポリシにアクセスし、セットすることができる。たとえば、プロトコルプロセッサプラグインのデベロッパは、管理ツール175内のさらに別のインターフェースと相互作用し、最小リソースまたは特徴要件をセットするようにプロトコルプロセッサプラグインを設計することができる。したがって、図1A〜1Bは、通信フレームワーク107のコンテキスト内で使用でき、ファイヤウォールセッティング内のリソースへの粒状でセキュアな測定されるアクセスを提供するように構成される、複数のコンポーネント、ツール、および概略図を示す。
本発明の実施態様を、特定の結果を達成するための1つまたは複数の行為を含む方法に関して説明することもできる。たとえば、図2に、ファイヤウォールを介する特定のリソースへの接続(たとえば、チャネル)を作成する、クライアント100およびゲートウェイサーバ150の視点からの方法の流れ図を示す。図2の行為を、以下で図1Aから1Bに関して説明する。
具体的に言うと、図2は、クライアント100の視点からの方法が、接続要求(communication request)をゲートウェイサーバに送信する行為200を含むことを示す。行為200は、ゲートウェイサーバでの接続に関する要求を送信することを含み、ここで、この要求は、対応するクライアントリソースと接続すべきサーバリソースを識別する。たとえば、クライアント100は、リソース120bにアクセスするために、プロトコルプロセッサプラグイン115aを有する通信スタック103をインスタンス化する。次に、クライアント100は、認証情報ならびにリソース120bにアクセスする要求を含むメッセージ130を準備し、送信し、メッセージ130をゲートウェイサーバ150に送信する。
さらに、図2は、ゲートウェイサーバ150の視点からの方法が、リソースに関するクライアント要求を受信する行為210を含むことを示す。行為210は、クライアント接続に関するクライアント要求を受信することを含み、ここで、このクライアント要求は、クライアントが接続を望むリソースを識別する。たとえば、ゲートウェイサーバ150は、メッセージ130を受信する。次に、ゲートウェイサーバ150は、HTTPSレイヤ105bでメッセージ130をデコードし、プラグ可能トランスポートレイヤ110bですべての他のプロトコルパッケージングをアンパックし、それに含まれるすべての含まれる認証情報を評価する。認証情報が、ネットワークアクセスポリシと衝突しているなど、不正である場合には、ゲートウェイサーバ150は、単純に接続を拒否することができる。その代わりに、認証情報が、ファイヤウォールを介する接続に関する最小標準(たとえば、適当なユーザ名およびパスワード)を満足するなど、正しい場合には、ゲートウェイサーバ150は、ある特徴のセット(やはりネットワークアクセスポリシまたはリソースアクセスポリシに従う)がクライアント100から識別されるまで、接続を検疫隔離することができる。
したがって、たとえば、図2は、ゲートウェイサーバ150の視点からの方法が、接続を検疫隔離する行為220を含むことをも示す。行為220は、クライアントが1つまたは複数の特徴の最小セットをインストールし終えているかどうかを判定するためにクライアントとの接続を検疫隔離することを含む。たとえば、図1Aは、メッセージ130の受信時に、通信フレームワーク107が、1つまたは複数の応答メッセージ140を送信することを示す。この点で接続を必ず許可するのではなく、応答メッセージ140は、プロトコルプロセッサプラグイン115aのバージョン、クライアント100およびサーバ150が相互にサポートする接続特徴、または接続で最終的に使用できるすべての他のリソースコンポーネント120a(または、対応する特徴、特徴アップデートなど)など、クライアント100でサポートされる特徴を識別するために追加情報を要求する。
したがって、図2は、クライアント100の視点からの方法が、特徴の最小セットに関する要求を受信する行為230を含むことを示す。行為230は、リソースに関してクライアントによってサポートされる1つまたは複数の特徴の最小セットに関する要求をゲートウェイサーバから受信することを含む。たとえば、クライアント100は、通信スタック103でメッセージ140を受信し、任意のスクリプトを実行すること、またはサーバ150によって要求されたすべての他のリソースまたはリソース特徴を含む、要求された特徴に関するすべてのシステムレジストリ情報をチェックすることなどによって、プロトコルプロセッサプラグイン115aでメッセージ140を処理する。具体的に言うと、プロトコルプロセッサプラグイン115aは、それ自体の特徴情報、リソース120aの特徴情報、またはクライアント100の別のソフトウェアコンポーネントもしくはリソース(図示せず)の特徴情報を識別する。
さらに、図2は、クライアント100の視点からの方法が、ゲートウェイサーバに特徴応答(feature response)を送信する行為240を含むことを示す。行為240は、サポートされる特徴応答をゲートウェイサーバに送信することを含み、このサポートされる特徴応答は、クライアントによってサポートされる特徴を示す。たとえば、図1Bは、クライアント100が、要求されたソフトウェアバージョンが存在することなど、クライアント100によってサポートされる1つまたは複数の特徴のセットを示す応答メッセージ145を送信することを示す。
図2は、ゲートウェイサーバ150の視点からの方法が、適当なプロトコルプロセッサプラグインを識別する行為250を含むことをも示す。行為250は、識別されたリソースのリソースタイプに基づいて、プロトコルプロセッサプラグインを識別することを含む。たとえば、トラバーサルAPI 160は、プロトコルプロセッサプラグイン115bが、「タイプA」プラグインであり、クライアント100のプロトコルプロセス115aで見られるものと同一のタイプであり、ゲートウェイサーバ150の要求されたリソース120bに関連することを識別する。
図2は、さらに、ゲートウェイサーバ150の視点からの方法が、接続をプロトコルプロセッサプラグインに転送する行為260を含むことを示す。行為260は、クライアントとの接続を識別されたプロトコルプロセッサプラグインに転送することを含む。たとえば、図1Bに示されているように、トラバーサルAPI 160が、プロトコルプロセッサプラグイン115bが適当であることと、クライアント100によって供給された情報が特定のリソースアクセスポリシに従うこととを識別したならば、トラバーサルAPI 160は、要求された接続の制御をプロトコルプロセッサプラグイン115bに渡す。一般に、これは、クライアント100のプロトコルプロセッサ115aとゲートウェイサーバ150のプロトコルプロセッサプラグイン115bとの間でトンネル(およびそのトンネル内の1つまたは複数のチャネル)を確立することを伴うことができる。その後、クライアント100のプロトコルプロセッサプラグイン115aおよびゲートウェイサーバのプロトコルプロセッサプラグイン115bは、このトンネルおよび対応する1つまたは複数のチャネルを介して、ネットワークスタック103および113のアプリケーションレイヤで直接に通信することができる。
したがって、図2は、クライアント100の視点からの方法が、ゲートウェイサーバのプロトコルプロセッサプラグインに接続する行為270を含むことをも示す。行為270は、クライアントリソースがサーバリソースに関連するプロトコルプロセッサプラグインとデータを通信するように、ゲートウェイサーバの通信スタックのアプリケーションレイヤに接続することを含む。たとえば、プロトコルプロセッサプラグイン115a〜bが、ファイヤウォールを介して直接に通信しているので、また、その接続がネットワークポリシに従って渡されるので、クライアント100は、リソース120bと通信するのに十分なファイヤウォールを介する進入だけを入手する。したがって、クライアント100は、ファイヤウォールの背後のすべてのリソースへの束縛されないアクセスを有するのではない。それでも、前に説明したように、クライアント100は、同一のリソースへ、そのリソースの異なるインスタンスへ、またはクライアント100が通信フレームワーク107を介して識別することを許可される他のリソースへの、追加のチャネルまたは接続を開始できるものとすることができる。
したがって、上で説明した方法および概略図は、通信フレームワーク107がデベロッパによって開発されたさまざまなプラグインを使用して特定のリソースへのアクセスを提供できる複数の形を提供する。具体的に言うと、通信フレームワーク107は、プロトコルプロセッサプラグインの開発および実施を単純化するのに使用できる複数のアクセスポリシ(ネットワークおよびリソース)、ツール、およびコンポーネントを提供する。たとえば、デベロッパは、特定のリソースアクセスポリシを実施するためまたは特定の診断ツールを実施するためのプロトコルプロセッサプラグインスクリプトの独立開発を避けることができる。というのは、これらのツールが、既に通信フレームワーク107に組み込まれているからである。そうではなく、デベロッパは、任意の所与のリソースをファイヤウォール越しにアクセス可能にすることを意図する場合に、クライアントよびサーバで使用されるプロトコルプロセッサプラグインを開発するだけでよい。
同様に、ネットワーク管理者は、多くの場合に新しいネットワーク接続アクセスポリシを独立に記述する必要を回避することができる。というのは、そのようなアクセスポリシを、通信フレームワーク内で既に見つけることができ、したがって簡単に構成し、またはイネーブル/ディスエーブルすることができるからである。したがって、本明細書で開示された特徴は、デベロッパおよびネットワーク開発者の義務をある範囲まで単純化し、管理の重荷を堅牢な通信フレームワークにシフトすることができる。
本発明の実施形態は、下でより詳細に述べるさまざまなコンピュータハードウェアを含む特殊目的コンピュータまたは汎用コンピュータを含むことができる。具体的に言うと、本発明の範囲内の実施形態は、コンピュータ実行可能命令またはデータ構造を担持するかその上に格納されたコンピュータ可読媒体をも含む。そのようなコンピュータ可読媒体は、汎用コンピュータまたは特殊目的コンピュータによってアクセスできる任意の使用可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光学ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、またはコンピュータ実行可能命令もしくはデータ構造の形の所望のプログラムコード手段を担持するか格納するのに使用でき、汎用コンピュータまたは特殊目的コンピュータによってアクセスできる任意の他の媒体を含むことができる。
情報が、ネットワークまたは別の通信接続(有線、無線、もしくは有線または無線の組合せのいずれか)を介してコンピュータに転送されるか供給される時に、そのコンピュータは、その接続をコンピュータ可読媒体として正しく見なす。したがって、任意のそのような接続を、コンピュータ可読媒体と称する。上記の組合せも、コンピュータ可読媒体の範囲に含まれなければならない。
コンピュータ実行可能命令は、たとえば、汎用コンピュータ、特殊目的コンピュータ、または特殊目的処理デバイスに、ある機能または機能のグループを実行させる命令およびデータを含む。本主題を、構造的特徴および/または方法論的行為に固有の言葉で説明したが、添付の特許請求の範囲で定義される主題が、必ずしも上で説明した特定の特徴または行為に限定されないことを理解されたい。そうではなく、上で説明した特定の特徴および行為は、特許請求の範囲を実施する例の形として開示されたものである。
本発明は、その趣旨または本質的特性から逸脱せずに、他の特定の形で実施することができる。説明された実施形態は、すべての面で、例示的であるのみであって、制限的ではないと考えられなければならない。したがって、本発明の範囲は、前述の説明ではなく、添付の特許請求の範囲によって示される。特許請求の範囲の意味および同等性の範囲に含まれるすべての変更が、その特許請求の範囲内に含まれなければならない。
本発明の一実施態様による、クライアントコンピュータシステムがファイヤウォールのトラバースに従ってゲートウェイサーバ通信フレームワークと通信するシステムを示す全体概略図である。 本発明の一実施態様に従ってクライアントコンピュータシステムが特定のリソースと通信する、図1Aに示されたシステムを示す全体概略図である。 ファイヤウォールのトラバースと、通信フレームワークによって提供されるネットワークポリシに従う特定のリソースとの通信とに関するクライアントコンピュータシステムおよびゲートウェイサーバの視点からの方法を示す流れ図である。

Claims (20)

  1. クライアントコンピュータシステムがファイヤウォールを介してゲートウェイサーバのリソースにアクセスするコンピュータ化された環境内の前記ゲートウェイサーバでの方法であって、前記ゲートウェイサーバは、ファイヤウォールを介するアプリケーションレイヤ接続を提供し、
    クライアントから接続要求を受信する行為であって、前記接続要求は、前記クライアントが接続することを望むリソースを識別する行為と、
    前記クライアントが1つまたは複数の特徴の最小セットをインストール済みであるかどうかを判定するために、前記クライアントとの接続を検疫隔離する行為と、
    前記識別されたリソースのリソースタイプに基づいてプロトコルプロセッサプラグインを識別する行為と、
    前記クライアントとの前記接続を前記識別されたプロトコルプロセッサプラグインに転送する行為と
    を含むことを特徴とする方法。
  2. 1つまたは複数のアクセスポリシと比較される前記クライアント要求内で供給された認証情報に基づいて、前記クライアントを認証することをさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記ゲートウェイサーバにインストールされた通信フレームワークから前記1つまたは複数のアクセスポリシを識別する行為をさらに含むことを特徴とする請求項2に記載の方法。
  4. 前記接続を前記識別されたプロトコルプロセッサプラグインに転送する行為は、接続トンネルのチャネルの制御を前記サーバの前記プロトコルプロセッサプラグインに提供する行為を含むことを特徴とする請求項1に記載の方法。
  5. 前記クライアントから異なるリソースに関する異なる接続要求を受信する行為と、
    同一の接続トンネルを介して前記クライアントと前記異なるリソースとの間の異なる接続チャネルを確立する行為と
    をさらに含むことを特徴とする請求項4に記載の方法。
  6. 複数の接続が前記クライアントのいずれかからまたは前記クライアントおよび前記ファイヤウォールの外側の1つまたは複数の異なるクライアントから同一のリソースに対して要求されているように、前記リソースに関する異なる接続要求を受信する行為をさらに含むことを特徴とする請求項4に記載の方法。
  7. 異なるチャネルの制御を、前記異なる接続要求を行う前記クライアントを伴う前記識別されたプロトコルプロセッサプラグインに供給する行為をさらに含むことを特徴とする請求項6に記載の方法。
  8. 粒状アクセスポリシセッティングから、前記異なる接続要求が不適当であることを識別する行為と、
    前記異なる接続要求を拒否する行為と
    をさらに含むことを特徴とする請求項6に記載の方法。
  9. 前記アクセスポリシは、前記クライアントが前記サーバに接続することを認可されるかどうかを判定するネットワークアクセスポリシと、前記クライアントが前記サーバ接続を介して前記要求されたリソースとのチャネルを作成するためのアクセスであるかどうかを判定するリソースアクセスポリシとを含むことを特徴とする請求項8に記載の方法。
  10. 前記アクセスポリシセッティングは、ある時間の間に前記リソースへの前記クライアントによるアクセスを制限する表示を含み、前記異なる接続要求は、前記時間の外にあることを特徴とする請求項8に記載の方法。
  11. 前記アクセスポリシセッティングは、ファイヤウォールの背後のリソースサーバの特定のポートでの前記リソースへの前記クライアントによるアクセスを制限する表示を含み、前記異なる接続要求は、前記リソースサーバの前記特定のポートでの前記リソースへの接続を要求することを特徴とする請求項8に記載の方法。
  12. 前記アクセスポリシセッティングは、前記ゲートウェイサーバの前記ファイヤウォールを介する接続トンネルの個数を制限するネットワークアクセスポリシであり、前記異なる接続要求が前記制限を超える新しい接続トンネルの作成を要求するようになっていることを特徴とする請求項8に記載の方法。
  13. 前記アクセスポリシセッティングは、前記クライアント要求がスマートカードを有するクライアントによって行われることを要求し、前記異なる接続要求は、前記クライアントが前記スマートカードを有しないことを示すことを特徴とする請求項8に記載の方法。
  14. 前記アクセスポリシセッティングは、同一のリソースへのアクセスをユーザの許可されるクラスに制限し、前記異なる接続要求は、ユーザの前記許可されるクラスのメンバではない異なるユーザから生じることを特徴とする請求項8に記載の方法。
  15. クライアントがゲートウェイサーバファイヤウォールを介してリソースにアクセスするコンピュータ化された環境内のクライアントコンピュータシステムでの方法であって、前記ゲートウェイサーバは、ファイヤウォールを介するアプリケーションレイヤ接続を提供し、
    接続に関する要求をゲートウェイサーバに送信する行為であって、前記要求は、対応するクライアントリソースに接続すべきサーバリソースを識別する行為と、
    前記クライアントによってサポートされる1つまたは複数の特徴の最小セットに関する要求を前記ゲートウェイサーバから受信する行為と、
    特徴応答を前記ゲートウェイサーバに送信する行為であって、前記特徴応答は、1つまたは複数の特徴の前記要求されたセットのどれが前記クライアントによってサポートされるかを示す行為と、
    前記クライアントリソースが前記サーバリソースに関連するプロトコルプロセッサプラグインとデータを通信するように、前記ゲートウェイサーバの通信スタックのアプリケーションレイヤに接続する行為と
    を含むことを特徴とする方法。
  16. 前記接続に関する前記要求と共に認証情報を送信する行為をさらに含み、前記認証情報は、前記クライアントがスマートカードを有することの表示を含むことを特徴とする請求項15に記載の方法。
  17. 前記アプリケーションレイヤに接続する行為は、
    前記アプリケーションレイヤで前記ゲートウェイサーバの前記ファイヤウォールを介する接続トンネルを確立する行為と、
    前記要求されたリソースへの前記接続トンネル内の接続チャネルを確立する行為と
    をさらに含むことを特徴とする請求項15に記載の方法。
  18. 前記リソースに関する異なる接続要求を前記ゲートウェイサーバに送信する行為と、
    ゲートウェイサーバで前記接続に関する前記要求から作成されたチャネルとは異なるチャネルを介して前記プロトコルプロセッサプラグインと通信する行為と
    をさらに含むことを特徴とする請求項15に記載の方法。
  19. 前記プロトコルプロセッサプラグインに関連する異なるリソースに関する異なる接続要求を送信する行為と、
    前記プロトコルプロセッサプラグインが前記クライアントと前記ゲートウェイサーバの複数のリソースとの間の複数の接続チャネルを処理するように、前記プロトコルプロセッサプラグインを介して前記異なるリソースと通信する行為と
    をさらに含むことを特徴とする請求項15に記載の方法。
  20. クライアントコンピュータシステムがファイヤウォールを介してゲートウェイサーバのリソースにアクセスするコンピュータ化された環境内の前記ゲートウェイサーバであって、通信フレームワーク内に少なくともリモートプロシージャコールレイヤおよびsecure hypertext transfer protocolレイヤを有する前記ゲートウェイサーバでの方法を、実行された時に、前記ゲートウェイサーバの1つまたは複数のプロセスに実施させるコンピュータ実行可能命令が格納されたコンピュータプログラム製品であって、前記方法は、
    クライアントから接続要求を受信することであって、前記接続要求は、前記クライアントが接続することを望むリソースを識別することと、
    前記クライアントが1つまたは複数の特徴の最小セットをインストール済みであるかどうかを判定するために、前記クライアントとの接続を検疫隔離することと、
    前記識別されたリソースのリソースタイプに基づいてプロトコルプロセッサプラグインを識別することと、
    前記クライアントとの前記接続を前記識別されたプロトコルプロセッサプラグインに転送することと
    を含むことを特徴とするコンピュータプログラム製品。
JP2008530063A 2005-09-12 2006-08-15 一貫したアプリケーション対応ファイヤウォールトラバーサルの提供 Active JP4972646B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US71629705P 2005-09-12 2005-09-12
US60/716,297 2005-09-12
US11/326,992 2006-01-05
US11/326,992 US7685633B2 (en) 2005-02-25 2006-01-05 Providing consistent application aware firewall traversal
PCT/US2006/031877 WO2007032852A1 (en) 2005-09-12 2006-08-15 Providing consistent application aware firewall traversal

Publications (2)

Publication Number Publication Date
JP2009508213A true JP2009508213A (ja) 2009-02-26
JP4972646B2 JP4972646B2 (ja) 2012-07-11

Family

ID=39662714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008530063A Active JP4972646B2 (ja) 2005-09-12 2006-08-15 一貫したアプリケーション対応ファイヤウォールトラバーサルの提供

Country Status (6)

Country Link
JP (1) JP4972646B2 (ja)
KR (1) KR20080045195A (ja)
CN (1) CN101263466B (ja)
BR (1) BRPI0615752A2 (ja)
NO (1) NO20081455L (ja)
RU (1) RU2422886C2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9581675B2 (en) * 2012-08-24 2017-02-28 Tektronix, Inc. Virtual model adapter removal and substitution technique for cascaded networks
CN103561002B (zh) * 2013-10-22 2017-02-15 北京神州泰岳软件股份有限公司 基于防火墙策略的安全访问方法和系统
CN104954462A (zh) * 2015-06-12 2015-09-30 福建新大陆通信科技股份有限公司 一种高并发可扩展的智能家居通信方法和系统
CN110365699B (zh) * 2019-07-29 2021-11-26 北京奇艺世纪科技有限公司 流量处理方法、装置及系统、网关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273209A (ja) * 2000-02-11 2001-10-05 Internatl Business Mach Corp <Ibm> ネットワーク接続フラッド攻撃の防止方法
JP2004220120A (ja) * 2003-01-09 2004-08-05 Nippon Telegr & Teleph Corp <Ntt> ネットワークセキュリティシステム、アクセス制御方法、認証機構、ファイアウォール機構、認証機構プログラム、ファイアウォール機構プログラム及びその記録媒体
WO2004092905A2 (en) * 2003-04-08 2004-10-28 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
JP2005018769A (ja) * 2003-06-25 2005-01-20 Microsoft Corp アプリケーションのファイアウォール横断を支援する方法
JP2005063169A (ja) * 2003-08-13 2005-03-10 Ricoh Co Ltd 情報処理装置、画像処理装置、サーバ装置、セッション接続方法、セッション接続プログラム及び記録媒体
JP2005142915A (ja) * 2003-11-07 2005-06-02 Sharp Corp 通信端末装置、サーバ装置、通信システムおよびプログラム
JP2005521177A (ja) * 2002-03-22 2005-07-14 サイトリックス システムズ, インコーポレイテッド アプリケーションへのアクセスを提供する方法およびシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1075695C (zh) * 1996-09-02 2001-11-28 北京天融信网络安全技术有限公司 防火墙系统及其控制方法
US6101549A (en) * 1996-09-27 2000-08-08 Intel Corporation Proxy-based reservation of network resources
US6763395B1 (en) * 1997-11-14 2004-07-13 National Instruments Corporation System and method for connecting to and viewing live data using a standard user agent
CN2643555Y (zh) * 2003-01-30 2004-09-22 刘燕南 一种安全保密智能信息终端

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273209A (ja) * 2000-02-11 2001-10-05 Internatl Business Mach Corp <Ibm> ネットワーク接続フラッド攻撃の防止方法
JP2005521177A (ja) * 2002-03-22 2005-07-14 サイトリックス システムズ, インコーポレイテッド アプリケーションへのアクセスを提供する方法およびシステム
JP2004220120A (ja) * 2003-01-09 2004-08-05 Nippon Telegr & Teleph Corp <Ntt> ネットワークセキュリティシステム、アクセス制御方法、認証機構、ファイアウォール機構、認証機構プログラム、ファイアウォール機構プログラム及びその記録媒体
WO2004092905A2 (en) * 2003-04-08 2004-10-28 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
JP2005018769A (ja) * 2003-06-25 2005-01-20 Microsoft Corp アプリケーションのファイアウォール横断を支援する方法
JP2005063169A (ja) * 2003-08-13 2005-03-10 Ricoh Co Ltd 情報処理装置、画像処理装置、サーバ装置、セッション接続方法、セッション接続プログラム及び記録媒体
JP2005142915A (ja) * 2003-11-07 2005-06-02 Sharp Corp 通信端末装置、サーバ装置、通信システムおよびプログラム

Also Published As

Publication number Publication date
CN101263466B (zh) 2011-02-09
NO20081455L (no) 2008-04-11
BRPI0615752A2 (pt) 2011-05-24
KR20080045195A (ko) 2008-05-22
JP4972646B2 (ja) 2012-07-11
RU2422886C2 (ru) 2011-06-27
RU2008109223A (ru) 2009-10-10
CN101263466A (zh) 2008-09-10

Similar Documents

Publication Publication Date Title
EP1934768B1 (en) Providing consistent application aware firewall traversal
JP6609086B1 (ja) フェデレーテッド・シングル・サインオン(sso)のための非侵入型セキュリティの実施
US10581820B2 (en) Key generation and rollover
US10530578B2 (en) Key store service
JP6656157B2 (ja) ネットワーク接続自動化
US9607162B2 (en) Implementation of secure communications in a support system
US9231973B1 (en) Automatic intervention
JP6131381B2 (ja) 管理されたブラウザの提供
EP2792104B1 (en) Automated access, key, certificate, and credential management
US8327430B2 (en) Firewall control via remote system information
US20150188779A1 (en) Split-application infrastructure
EP1730925B1 (en) Method and apparatus for providing transaction-level security
US20110137991A1 (en) Systems and methods for management and collaboration in a private network
US20130024911A1 (en) Extensible access control architecture
US11362827B2 (en) IOT security mechanisms for industrial applications
JP2018521431A (ja) 管理されていない非セキュア・デバイス上でのリソース・アクセスおよび配置のためのセキュア・コンテナ・プラットフォーム
US8832779B2 (en) Generalized identity mediation and propagation
JP4972646B2 (ja) 一貫したアプリケーション対応ファイヤウォールトラバーサルの提供

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110914

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120330

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120409

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4972646

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250