JP4862079B2 - ゲートウェイでのリクエスト提出復号用文字セット符号化決定のためのシステムおよび方法 - Google Patents

ゲートウェイでのリクエスト提出復号用文字セット符号化決定のためのシステムおよび方法 Download PDF

Info

Publication number
JP4862079B2
JP4862079B2 JP2009513111A JP2009513111A JP4862079B2 JP 4862079 B2 JP4862079 B2 JP 4862079B2 JP 2009513111 A JP2009513111 A JP 2009513111A JP 2009513111 A JP2009513111 A JP 2009513111A JP 4862079 B2 JP4862079 B2 JP 4862079B2
Authority
JP
Japan
Prior art keywords
request
gateway
application
network
client
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.)
Expired - Fee Related
Application number
JP2009513111A
Other languages
English (en)
Other versions
JP2009539176A (ja
Inventor
ラジブ ミラニ,
スタンリー ハン ウォン,
アビシェク チャウハン,
Original Assignee
サイトリックス システムズ, インコーポレイテッド
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
Application filed by サイトリックス システムズ, インコーポレイテッド filed Critical サイトリックス システムズ, インコーポレイテッド
Publication of JP2009539176A publication Critical patent/JP2009539176A/ja
Application granted granted Critical
Publication of JP4862079B2 publication Critical patent/JP4862079B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は概して、アプリケーションのリクエストに対する文字符号化を決定するステップに関する。さらに具体的には、本発明は、ゲートウェイを介して提出されるアプリケーションのリクエストを復号するための文字符号化を決定するためのシステムおよび方法に関する。
インターネットとして知られる世界規模のコンピュータネットワーク上のユーザから情報を獲得する一般的に知られている方法は、データを投入するブラウザのユーザに対する1つ以上のフィールドを提供するページである、「フォーム(form)」として知られる技法である。しかし、フォームを介して提出することができる文字に対する多くの異なる符号化が存在し、リクエストにおいて、どの文字セットをリクエストに使用するべきかを示す方法がない場合がある。それを作成するために使用されるものとは異なる、フォーム提出(submission)を復号するための文字符号化セット(「文字セット(charset)」)の使用は、サーバによるフォームの拒絶または誤解をもたらし得る。ネットワーク装置には、フォームの生成および処理に責任があるアプリケーション論理へのアクセスがないため、この問題は、サーバとクライアントとの間に配備されるアプリケーションファイアウォール等の中間ネットワーク装置に対して悪化する。
この文字セット問題を解決しようとしてきた1つの技法は、フォームを生成し、クライアントに送信するために使用される文字セットを再符号化するネットワーク装置に依存している。しかし、例えばJava(登録商標)scriptを使用して、フォームがクライアント上で完全に生成されると、この技法は機能しない。ネットワーク装置はまた、全フォームリクエストが「utf−8」として知られる符号化を使用すると仮定することによって、この問題を解決しようとしてもよい。しかし、このアプローチには明白な欠点がある。
本発明のシステムおよび方法は、サーバアプリケーションまたはクライアントブラウザが再符号化されることを必要とせずに、異なる方法で符号化されたコンテンツまたは未確認文字セットで符号化されるコンテンツを備えてもよい、アプリケーションからのリクエストを効果的かつ確実に取り扱い、復号し、および分析するための解決法を提供する。説明した技法はまた、拡張して、異なる状況に異なる文字セットを使用するために、方針がリクエストに適用されることを可能にしてもよい。結果として、サーバとクライアントとの間のフォーム提出およびその他のリクエストを検査して、悪質なリクエスト(SQL導入リクエスト等)が最小数の誤検出でサーバアプリケーションに到達することを許可されないことを、確実にしてもよい。
一側面では、本発明は、リクエストを復号するために使用される文字符号化を決定するための方法に関する。方法は、リクエストを受信するステップと、リクエストが対応する複数のアプリケーションプログラムのうちのアプリケーションプログラムを決定するステップとを含む。方法は、決定されたアプリケーションプログラムと関連する文字符号化を識別し、リクエストを検査するために、識別された文字符号化を使用する。
一実施形態では、方法は、リクエストの属性から、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定する。一部の実施形態では、リクエストの属性は、1)ソース識別子、2)宛先識別子、3)ポート識別子、4)プロトコル識別子、5)ヘッダ情報、または6)ユニフォームリソースロケータ(Uniform Resource Locator:URL)アドレスを含む。別の実施形態では、方法は、受信したリクエストに含まれるクッキーを使用して、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定する。
他の実施形態では、方法は、文字符号化とアプリケーションとの間の関連性を含有するファイルを使用して、決定されたアプリケーションプログラムと関連する文字符号化を識別する。一部の実施形態では、方法は、文字符号化とアプリケーションとの間の関連性を含有するデータベースを使用して、決定されたアプリケーションプログラムと関連する文字符号化を識別する。
一実施形態では、方法は、第2のリクエストを受信するステップと、第2のリクエストが対応する、複数のアプリケーションプログラムのうちの第2の1つを決定するステップと、決定された第2のアプリケーションプログラムと関連する第2の文字符号化を識別するステップとを含む。別の実施形態では、方法は、クライアントによって生成されるリクエストを受信するステップを含む。方法は、クライアントの属性を使用して、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定してもよい。さらに別の実施形態では、方法は、キャッシュされたフォームページに基づくリクエストを受信するステップを含む。
別の側面では、本発明は、リクエストを復号するために使用される文字符号化を決定することが可能な、ゲートウェイに関する。該システムは、ネットワークを介してクライアントと通信しており、かつクライアントからリクエストを受信する受信機を含む。システムはまた、受信機と通信している文字セットエンジンも含む。文字セットエンジンは、リクエストが向けられるアプリケーションに応答する受信したリクエストと関連する文字符号化を識別し、リクエストを検査するために、識別された文字セットを使用する。
一実施形態では、ゲートウェイは、複数のクライアントと通信する。一部の実施形態では、ゲートウェイは、リクエストが向けられるアプリケーションプログラムを決定するために、リクエストに含有される、1)ソース識別子、2)宛先識別子、3)ポート識別子、4)プロトコル識別子、5)ヘッダ情報、または6)ユニフォームリソースロケータアドレスのうちの1つを使用する。別の実施形態では、文字セットエンジンは、文字符号化およびアプリケーションを関連付けるデータベースを含む。他の実施形態では、文字セットエンジンは、文字符号化およびアプリケーションを関連付けるファイルを含む。
さらに別の側面では、本発明は、ゲートウェイによって、符号化部分を有するクライアントリクエストを検査するための方法に関する。方法は、ゲートウェイによって、クライアント上のアプリケーションプログラムからリクエストを受信するステップを含む。方法はまた、ゲートウェイによって、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定するステップと、決定されたアプリケーションプログラムと関連する文字符号化を識別するステップとを含む。方法はさらに、ゲートウェイによって、識別された文字符号化を使用して、リクエストの一部を復号するステップと、リクエストの復号された部分を検査または分析するステップとを含む。
方法の一実施形態では、ゲートウェイは、リクエストの属性を使用して、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定する。別の実施形態では、ゲートウェイは、クライアントの属性を使用して、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定する。さらに別の実施形態では、ゲートウェイは、リクエストの復号された部分の検査に基づいて、方針をリクエストに適用する。
一部の実施形態では、方法は、ゲートウェイによって、クライアントまたは第2のクライアントのうちの一方における第2のアプリケーションプログラムから第2のリクエストを受信するステップを含む。ゲートウェイは、複数のアプリケーションプログラムのうちのどの1つに第2のリクエストが対応するかを決定し、決定されたアプリケーションプログラムと関連する第2の文字符号化を識別する。ゲートウェイは、識別された第2の文字符号化を使用して、第2のリクエストの一部を復号する。一部の実施形態では、ゲートウェイは、第2のリクエストの復号された部分を検査または分析する。別の実施形態では、方法は、ゲートウェイによって、第2のリクエストの復号された部分の検査に基づいて、方針を第2のリクエストに適用するステップを含む。
本発明の様々な実施形態の詳細は、添付図面および下記の発明を実施するための最良の形態において説明される。本発明の前述およびその他の目的、側面、特徴、および利点は、添付図面と併せて理解される次の発明を実施するための最良の形態を参照することによって、さらに明白となり、より良く理解することができる。
図1Aは、アプリケーションに対する文字セット符号化を決定するシステムを有するゲートウェイを配備する、一例のネットワーク環境のブロック図である。 図1Bは、クライアントおよび/またはサーバ上に、アプリケーションに対する文字セット符号化を決定するシステムを配備する、別のネットワーク環境のブロック図である。 図1Cおよび1Dは、本発明のシステムの例示的実施形態を実践するための計算装置の実施形態のブロック図である。 図1Cおよび1Dは、本発明のシステムの例示的実施形態を実践するための計算装置の実施形態のブロック図である。 図2は、クライアントからのリクエストを復号および分析するために使用する、アプリケーションに対する文字セット符号化を決定するためのシステムのブロック図である。 図3は、クライアントのリクエストを復号および分析するために使用する、アプリケーションに対する文字セット符号化を決定する技法の実施形態を実践する際に行われるステップのフロー図である。
本発明の特徴および利点は、類似参照文字が全体を通して対応する要素を識別する図面と併せて理解すると、下記で説明される発明を実施するための最良の形態から、さらに明白となる。図中、類似参照番号は概して、同一である、機能的に同様である、および/または構造的に同様である要素を示す。
本発明のある例示的実施形態を下記で説明する。しかし、本発明はこれらの実施形態に限定されないが、むしろ、意向は、本願で明示的に説明されるものに対する追加および修正もまた、本発明の範囲内に含まれるということが、明示的に記述される。さらに、本願で説明される様々な実施形態の特徴は、相互排他的ではなく、様々な組み合わせおよび置換で存在し得えて、たとえそのような組み合わせまたは置換が本願で明示的に行われなくても、本発明の精神および範囲から逸脱しないことが理解される。
図1Aは、アプリケーション文字セット符号化および検査システム120を配備するゲートウェイを有する、ネットワーク環境のブロック図を示す。図1Aに示されるように、一例のネットワーク環境は、複数のクライアント101a〜101n、複数のサーバ106a〜106n、および、アプライアンス、ゲートウェイアプライアンス、ゲートウェイサーバ、またはゲートウェイ装置と呼んでもよいゲートウェイ105を含む。サーバ106a〜106nは、要求されたコンテンツをクライアント101a〜101nに提供する、アプリケーション、データベース、およびその他の情報システムを管理する。クライアント101a〜101nおよびサーバ106a〜106nのそれぞれは、図1Cおよび1Dと併せて下記でさらに詳細に説明される計算装置100等の、任意の種類および形式の計算装置であってもよい。例えば、クライアント101a〜101nのうちのいずれかは、通信機器、例えば、携帯電話または携帯情報端末、または任意の種類のデスクトップコンピュータに加えて、ラップトップまたはノート型コンピュータ等の、移動型計算装置であってもよい。
クライアント101a〜101nのそれぞれは、ネットワーク104を介してゲートウェイ105に通信的に連結される一方で、ゲートウェイ105は、ネットワーク104’を介してサーバ106a〜106nに通信的に連結される。一実施形態では、ネットワーク104は、インターネットを備え、ネットワーク104’は、会社または企業ネットワーク等のプライベートデータ通信ネットワークを備える。ネットワーク104、104’は、公衆、プライベート、または別の方法による、任意の種類および形式のネットワークとなり得て、場合によっては、同じネットワークであってもよい。
図1は、クライアント101a〜101nおよびサーバ106a〜106n間のネットワーク104およびネットワーク104’を示すものの、クライアント101a〜101nおよびサーバ106a〜106nは、同じネットワーク104または104’上にあってもよい。ネットワーク104および104’は、同じ種類のネットワークまたは異なる種類のネットワークとなり得る。ネットワーク104、104’は、企業イントラネット等のローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、またはワールドワイドウェブ等の広域ネットワーク(WAN)となり得る。ネットワーク104、104’は、任意の種類および/または形式のネットワークであってもよく、ポイントツーポイントネットワーク、放送ネットワーク、広域ネットワーク、ローカルエリアネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(Asynchronous Transfer Mode)ネットワーク、SONET(Synchronous Optical Network)ネットワーク、SDH(Synchronous Digital Hierarchy)ネットワーク、無線ネットワーク、および有線ネットワークのうちのいずれかを含んでもよい。ネットワーク104、104’のトポロジーは、バス、スター、またはリング型ネットワークトポロジーであってもよい。ネットワーク104、104’およびネットワークトポロジーは、本願で説明される操作をサポートすることが可能な、当業者に周知のような任意のネットワークまたはネットワークトポロジーであってもよい。
図1Aに示されるように、ゲートウェイ105は、公衆データ通信ネットワーク等の第1のネットワーク104と、プライベートデータ通信ネットワーク等の第2のネットワーク104’との間に配備される。他の実施形態では、ゲートウェイ105は、第1のネットワーク104上または第2のネットワーク104’上に位置してもよい。他の実施形態では、ゲートウェイ105は、クライアント102a〜102nと同じ、または異なるネットワーク104上の任意の個別クライアント101a〜101nまたは任意の個別サーバ106a〜106nの不可欠な部分となり得る。そのようなものとして、ゲートウェイ105は、クライアント101a〜101nとサーバ106a〜106nとの間のネットワークまたはネットワーク通信経路における任意の点に位置してもよい。
クライアント101a〜101nのそれぞれは、本願では概してアプリケーションまたはアプリケーション110と呼ばれる、アプリケーション110a〜110nを実行、操作、または提供してもよい。アプリケーション110は、任意の種類および/または形式のウェブブラウザ、ウェブベースのクライアント、クライアント/サーバアプリケーション、シンクライアントコンピューティングクライアント、ActiveXコントロール、またはJava(登録商標)アプレット等の、任意の種類および/または形式のソフトウェア、プログラム、または実行可能命令、またはクライアント101a〜101n上で実行することが可能な任意の種類および/または形式の実行可能命令となり得る。一部の実施形態では、アプリケーション110a〜110nは、サーバ106a〜106n上でクライアント101a〜101nの代わりに実行されるサーバベースまたは遠隔ベースのアプリケーションであってもよい。一実施形態では、サーバ106a〜106nは、フロリダ州、ローダーデールのCitrix Systems,Inc.製造のIndependent Computing Architecture(ICA)プロトコル、またはワシントン州、レドモンドのMicrosoft Corporation製造のRemote Desktopプロトコル(RDP)等の任意のシンクライアントまたは遠隔表示プロトコルを使用して、クライアント101a〜101nへの出力を表示してもよい。
一部の実施形態では、サーバ106a〜106nまたはサーバファームは、シンクライアントコンピューティングを提供するアプリケーションまたは遠隔表示プレゼンテーションアプリケーション等の、1つ以上のアプリケーション110を実行していてもよい。一実施形態では、サーバ106a〜101nまたはサーバファームは、アプリケーション110として、MetaFrameまたはCitrix Presentation ServerTM等の、Citrix Systems,Inc.によるCitrix Access SuiteTMの任意の一部、および/または、Microsoft Corporation製造のMicrosoft(登録商標) Windows(登録商標)(登録商標) Terminal Servicesのうちのいずれかを実行する。一実施形態では、アプリケーション110は、フロリダ州、フォルトローダーデールのCitrix Systems,Inc.開発のICAクライアントである。他の実施形態では、アプリケーション110は、ワシントン州、レドモンドのMicrosoft Corporation開発のRemote Desktop(RDP)クライアントを含む。他の実施形態では、サーバ106a〜106nは、アプリケーション110をクライアント101a〜101nに流してもよい。また、サーバ106a〜106nは、アプリケーション230を実行してもよく、それは例えば、ワシントン州、レドモンドのMicrosoft Corporation製造のMicrosoft Exchange等のEメールサービスを提供するアプリケーションサーバ、ウェブまたはインターネットサーバ、またはデスクトップ共有サーバ、または共同サーバであってもよい。一部の実施形態では、アプリケーション110のうちのいずれかは、カリフォルニア州、サンタバーバラのCitrix Online Division,Inc.提供のGoToMeetingTM、カリフォルニア州、サンタクララのWebEx,Inc.提供のWebExTM、またはワシントン、レドモンドのMicrosoft Corporation提供のMicrosoft Office Live Meeting等の、任意の種類のホスト型サービスまたは製品を備えてもよい。
一実施形態に従って、ゲートウェイ105は、アプリケーション文字セット符号化および検査システム120を含む。下記でさらに詳しく説明されるように、このシステム120は、符号化コンテンツを備えるクライアント101a〜101nからのリクエストを受信する。例えば、クライアント101は、url符号化部分等の符号化コンテンツを有する、HTTPフォームまたはリクエストを提出してもよい。ある場合において、符号化スキームの種類は、リクエストから分からない場合がある。システム120は、リクエストを生成する、またはそれと関連するアプリケーションを決定する。例えば、システム120は、リクエストから、アプリケーションと関連しているインターネットプロトコルアドレスおよび/またはポートを識別してもよい。決定されたアプリケーションに基づいて、システム120は、アプリケーションと関連する、またはそれに使用される文字符号化スキームを識別する。例えば、システム120は、データベース、構成情報、または方針エンジンから符号化スキームを検索してもよい。次いで、システム120は、識別された文字符号化スキームを使用して、リクエストの一部を復号し、任意の規則または方針をリクエストに適用する。一部の実施形態では、システム120は、各アプリケーションと関連する符号化スキームに従ってそれが復号することが可能な、符号化アプリケーションネットワークトラフィックに方針を適用する、アプリケーションファイアウォールまたはセキュリティ制御システムとして動作する。
概してゲートウェイ105として説明されるものの、ゲートウェイは、アプライアンス、ネットワーク装置、またはサーバ等の、下記で説明されるような任意の種類および形式の計算装置100であってもよい。一部の実施形態では、ゲートウェイ105は、第1のネットワーク104と第2のネットワーク104’との間の仮想プライベートネットワーク接続を確立または提供する。一実施形態では、ゲートウェイ105は、ネットワーク104、104’間のSecure Socket Layer(SSL)VPN接続を確立する。別の実施形態では、ゲートウェイ105は、クライアント101a〜101nとゲートウェイ105との間のTCP接続等の第1のトランスポート層接続を確立し、ゲートウェイ105とサーバ106a〜106nとの間の第2のトランスポート層接続を確立する。別の実施形態では、ゲートウェイ105はまた、クライアント101a〜101nとサーバ106a〜106nとの間の暗号化セッションも確立または提供する。一実施形態では、ゲートウェイ105はまた、トランスポートまたはアプリケーション層において任意のプーリングおよび/または多重化接続技法を使用して、トランスポート層接続を介したクライアント101a〜101nへのアプリケーションの送達を加速してもよい。さらに別の実施形態では、ゲートウェイ105は、クライアント101a〜101nとサーバ106a〜106nとの間の1つ以上のネットワーク通信、またはその一部を圧縮する。他の実施形態では、ゲートウェイ105はまた、クライアント101a〜101nとサーバ106a〜106nとの間のいずれか1つ以上のネットワーク通信、またはその一部をキャッシュに格納するためのキャッシュを含んでもよい。
アプリケーション文字セット符号化/検査システム120は概して、図1Aのように、ゲートウェイ105に配備されて示されるものの、システム120はまた、任意の計算装置100に配備されてもよい。ここで例えば図1Bを参照すると、アプリケーション文字セット符号化/検査システム120は、クライアント101a等のクライアント101a〜101nのうちのいずれか1つ以上に配備されてもよい。一実施形態では、ゲートウェイ105を介してネットワーク104にアクセスするクライアント101のリクエストに応じて、ゲートウェイは、システム120を提供し、クライアント101にインストールしてもよい。一部の実施形態では、システム120は、ゲートウェイ105からの受信次第、クライアント101によって自動的にインストールされる。別の実施形態では、アプリケーション文字セット符号化/検査システム120は、サーバ106b等の任意のサーバ106a〜106nに配備されてもよい。さらに別の実施形態では、システム120は、分配され、クライアント101、ゲートウェイ105、および/またはサーバ106上で実行するいずれか1つ以上の部分があってもよい。一実施形態では、システム120の複数のインスタンスは、クライアント101、ゲートウェイ105、および/またはサーバ106の任意の組み合わせにおいて実行してもよい。
図1Cおよび1Dは、計算装置100のブロック図を示し、一部の実施形態では、本願で説明されるアプリケーション文字セット符号化/検査システム120の実施形態を実践するのに有用な、ネットワーク装置、ネットワークアプライアンス、またはアプライアンス100とも呼ばれる。図1Cおよび1Dに示されるように、各計算装置100は、中央処理装置(CPU)102、およびメインメモリユニット122を含む。図1Cに示されるように、典型的な計算装置100は、視覚的表示装置124、キーボード126、および/またはマウス等のポインティングデバイス127を含む。各計算装置100はまた、1つ以上の入出力装置130a〜130b(概して、参照数字130を使用して参照される)等の追加光学要素、および中央処理装置102と通信しているキャッシュメモリ140を含んでもよい。
中央処理装置102は、メインメモリユニット122から取り出される命令に応答して処理する、任意の論理回路である。多くの実施形態において、中央処理装置は、カリフォルニア州、マウンテンビューのIntel Corporation製造のもの、イリノイ州、シャウムバーグのMotorola Corporation製造のもの、カリフォルニア州、サンタクララのTransmeta Corporation製造のもの、ニューヨーク州、ホワイトプレインズのInternational Business Machines製造のもの、カリフォルニア州、サニーベールのAdvanced Micro Devices製造のもの等の、マイクロプロセッサユニットによって提供される。計算装置100は、これらのプロセッサのいずれか、または本願で説明されるように動作することが可能なその他任意のプロセッサに基づいてもよい。
メインメモリユニット122は、Static random access memory(SRAM)、Burst SRAMまたはSynchBurst SRAM(BSRAM)、Dynamic random access memory(DRAM)、Fast Page Mode DRAM(FPM DRAM)、Enhanced DRAM(EDRAM)、Extended Data Output RAM(EDO RAM)、Extended Data Output DRAM(EDO DRAM)、Burst Extended Data Output DRAM(BEDO DRAM)、Enhanced DRAM(EDRAM)、synchronous DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、Double Data Rate SDRAM(DDR SDRAM)、Enhanced SDRAM(ESDRAM)、SyncLink DRAM(SLDRAM)、Direct Rambus DRAM(DRDRAM)、またはFerroelectric RAM(FRAM)等の、データを格納し、かつ任意の格納場所がマイクロプロセッサ102によって直接アクセスされることを可能にすることが可能な、1つ以上のメモリチップであってもよい。メインメモリ122は、上記のメモリチップのいずれか、または本願で説明されるように動作することが可能なその他任意の利用可能なメモリチップに基づいてもよい。図1Cに示される実施形態では、プロセッサ102は、システムバス150(下記でさらに詳しく説明される)を介してメインメモリ122と通信する。図1Cは、プロセッサがメモリポート103を介してメインメモリ122と直接通信する、計算装置100の実施形態を示す。例えば、図1Dでは、メインメモリ122は、DRDRAMであってもよい。
図1Dは、メインプロセッサ102が、時にはバックサイドバスと呼ばれる2次バスを介して、キャッシュメモリ140と直接通信する、実施形態を示す。他の実施形態では、メインプロセッサ102は、システムバス150を使用して、キャッシュメモリ140と通信する。キャッシュメモリ140は典型的に、メインメモリ122よりも応答時間が速く、典型的に、SRAM、BSRAM、またはEDRAMによって提供される。
図1Cに示される実施形態では、プロセッサ102は、ローカルシステムバス150を介して様々な入出力装置130と通信する。様々なバスは、中央処理装置102を入出力装置130のうちのいずれかに接続するために使用してもよく、VESA VLバス、ISAバス、EISAバス、MicroChannel Architecture(MCA)バス、PCIバス、PCI−Xバス、PCI−Expressバス、またはNuBusを含む。入出力装置がビデオディスプレイ124である実施形態に対して、プロセッサ102は、ディスプレイ124と通信するためにAdvanced Graphics Port(AGP)を使用してもよい。図1Dは、メインプロセッサ102がHyperTransport、Rapid I/O、またはInfiniBandを介して入出力装置130bと直接通信する、コンピュータ100の実施形態を示す。図1Dはまた、ローカルバスおよび直接的通信が混合した実施形態も示し、プロセッサ102は、入出力装置130bと直接通信しながら、ローカル相互接続バスを使用して入出力装置130aと通信する。
計算装置100は、3.5インチ、5.25インチ、またはZIPディスク等のフロッピー(登録商標)ディスクを受入するためのフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ、CD−R/RWドライブ、DVD−ROMドライブ、様々なフォーマットのテープドライブ、USB装置、ハードドライブ、または、アプリケーション文字セット符号化/検査システム120に関する任意のソフトウェア120またはその一部等のソフトウェアおよびプログラムをインストールするのに適したその他任意の装置等の、任意の適切な取付装置116をサポートしてもよい。計算装置100はさらに、オペレーティングシステム(OS)およびその他の関連ソフトウェアを格納するため、およびアプリケーション文字セット符号化/検査システム120に関する任意のプログラム等のアプリケーションソフトウェアプログラムを格納するための、1つ以上のハードディスクドライブまたは独立ディスク冗長アレイ等の記憶装置128を備えてもよい。任意で、取付装置116のうちのいずれかは、記憶装置128として使用することも可能である。
さらに、計算装置100は、ネットワークインターフェース118を含んで、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、または、標準電話線、LANまたはWANリンク(例えば、802.11、T1、T3、56kb、X.25)、ブロードバンド接続(例えば、ISDN、Frame Relay、ATM)、無線接続、または上記のいずれかまたは全ての何らかの組み合わせを含むが、それらに限定されない種々の接続を通したインターネットに、インターフェース接続してもよい。ネットワークインターフェース118は、内蔵型ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または、通信および本願で説明される操作の実施が可能な任意の種類のネットワークに計算装置100をインターフェース接続するのに適した任意のその他装置を備えてもよい。
多種多様の入出力装置130a〜130nは、計算装置100に存在してもよい。入力装置は、キーボード、マウス、トラックパッド、トラックボール、マイク、およびドローイングタブレットを含む。出力装置は、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および昇華型プリンタを含む。入出力装置は、図1Cに示されるように、入出力制御装置123によって制御されてもよい。入出力制御装置は、キーボード126、およびポインティングデバイス127、例えば、マウスまたは光学ペン等の、1つ以上の入出力装置を制御してもよい。さらに、入出力装置はまた、計算装置100に対する格納128および/または取付媒体116を提供してもよい。なおも他の実施形態では、計算装置100は、USB接続を提供して、カリフォルニア州、アラミトスのTwintech Industry,Inc.製造のUSB Flash Drive系の装置等の、手持ち式USB記憶装置を受入してもよい。
さらなる実施形態では、入出力装置130は、システムバス150と、USBバス、Apple Desktop バス、RS−232シリアル接続、SCSIバス、FireWireバス、FireWire 800バス、Ethernet(登録商標)バス、AppleTalkバス、Gigabit Ethernet(登録商標)バス、Asynchronous Transferモードバス、HIPPIバス、Super HIPPIバス、SerialPlusバス、SCI/LAMPバス、FibreChannelバス、またはSerial Attached small computer system interfaceバス等の外部通信バスとの間の、ブリッジ170であってもよい。
図1Cおよび1Dに示される種類の計算装置100は、典型的に、タスクおよびシステムリソースへのアクセスのスケジューリングを制御するオペレーティングシステムの制御下で動作する。計算装置100は、Microsoft(登録商標) Windows(登録商標)オペレーティングシステムのバージョンのいずれか、Unix(登録商標)およびLinuxオペレーティングシステムの異なるリリース、Macintoshコンピュータ用のMacOS(登録商標)の任意のバージョン、任意の埋め込みオペレーティングシステム、任意のネットワークオペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意の専用オペレーティングシステム、移動型計算装置またはネットワーク装置用の任意のオペレーティングシステム、または計算装置上で実行し、かつ本願で説明される操作を行うことが可能なその他任意のオペレーティングシステム等の、任意のオペレーティングシステムを実行することが可能である。典型的なオペレーティングシステムは、とりわけ、全てワシントン州、レドモンドのMicrosoft Corporation製造である、WINDOWS(登録商標) 3.x、WINDOWS(登録商標) 95、WINDOWS(登録商標) 98、WINDOWS(登録商標) 2000、WINDOWS(登録商標) NT 3.51、WINDOWS(登録商標) NT 4.0、WINDOWS(登録商標) CE、およびWINDOWS(登録商標) XP、カリフォルニア州、クパチーノのApple Computer製造のMacOS、ニューヨーク州、アーモンクのInternational Business Machines製造のOS/2、およびユタ州、ソルトレイクシティのCaldera Corp.配布の無料で入手可能なオペレーティングシステムLinux、または任意の種類および/または形式のUnix(登録商標)オペレーティングシステムを含む。
他の実施形態では、計算装置100には、装置と整合する、異なるプロセッサ、オペレーティングシステム、および入力装置があってもよい。計算装置100は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノート型コンピュータ、サーバ、手持ちサイズのコンピュータ、携帯電話またはその他のポータブル電気通信装置、メディア再生装置、組み合わせ装置、特設、特殊、カスタム、または専用装置、または、通信が可能で、かつ本願で説明される本発明の操作を行うのに十分なプロセッサ力およびメモリ容量を有する、その他任意の種類および/または形式の計算または電気通信装置となり得る。
ここで図2を参照すると、アプリケーション文字セット符号化/検査システム120の実施形態が示される。システム120は、ネットワーク装置、アプライアンス、ゲートウェイ、クライアント、またはサーバ装置等の任意の種類および形式の計算装置100において、常駐および/または動作することが可能である。概要すると、システム120は、受信機215、送信機220、文字セットエンジン225、および規則または方針エンジン250を含む。受信機215および送信機220は、ネットワーク104を介して、またはネットワーク104および104’間で通信を送受信するために使用してもよい。文字セットエンジン225は、リクエストなどのネットワーク通信を処理し、ネットワーク通信と関連するアプリケーションに使用される符号化の種類および/または形式を決定するために使用される。規則/方針エンジン250は、1つ以上の規則または方針を、システム120によって処理されるネットワーク通信に適用する。例えば、文字セットエンジン225によってアプリケーションと関連すると決定される符号化の種類に基づいて、方針エンジン250は、送信機220から伝送されているネットワーク通信を制御、制限、または阻止してもよい。一実施形態では、方針エンジン250は、システム120が、ファイアウォールまたはセキュリティ制御装置として動作または機能することを可能にする。加えて、方針エンジン250は、方針を提供して、使用される符号化、および復号されたコンテンツに対して行う措置を決定して制御してもよい。
受信機215は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備え、ネットワーク104への装置100の接続の媒体を介して、信号を受信してもよい。同様に、送信機220は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備え、ネットワーク104への装置100の接続の媒体を介して、信号を伝送してもよい。ネットワーク104およびネットワーク接続は、計算装置100a〜100nのいずれかの間に、電気配線またはケーブル、光ファイバ、電磁放射等の任意の種類の伝送媒体を含むか、または、本願で説明される操作をサポートすることが可能なその他任意の形式の伝送媒体を有してもよい。一実施形態では、受信機215は、第1の種類の媒体を介して1つ以上の信号を受信する。一部の実施形態では、送信機220は、第2の種類の媒体を介して1つ以上の信号を伝送する。他の実施形態では、受信機215および送信機220は、同じ種類の媒体上で信号を受信および伝送する。別の実施形態では、送信機は、受信機215および送信機220を含んで、媒体を介して信号を受信および伝送する。
装置100および/またはシステム120は、ネットワークスタック210を含む。一部の実施形態では、受信機215および/または送信機220は、ネットワークスタック210を含んでもよい。他の実施形態では、受信機215および/または送信機220は、複数のネットワークスタックを含んでもよい。別の実施形態では、受信機215および/または送信機220は、1つ以上のネットワークスタック210とインターフェース接続、統合、または通信する。ネットワークスタック210は、ネットワークとの接続性および通信を提供するための、任意の種類および形態のソフトウェア、ハードウェア、またはそれらの任意の組み合わせを備えてもよい。一実施形態では、ネットワークスタック210は、ネットワークプロトコル群に対するソフトウェア実行を備える。ネットワークスタック210は、当業者が認識および十分理解するような、Open Systems Interconnection(OSI)通信モデルの任意のネットワーク層等の、1つ以上のネットワーク層を備えてもよい。そのようなものとして、ネットワークスタック210は、1)物理的リンク層、2)データリンク層、3)ネットワーク層、4)トランスポート層、5)セッション層、6)プレゼンテーション層、および7)アプリケーション層といった、OSIモデルの層のうちのいずれかに対する任意の種類および形式のプロトコルを備えてもよい。一実施形態では、ネットワークスタック210は、概してTCP/IPと呼ばれる、インターネットプロトコル(IP)のネットワーク層プロトコル上のトランスポート制御プロトコル(TCP)を備えてもよい。一部の実施形態では、TCP/IPプロトコルは、IEEE 802.3によってカバーされるプロトコル等の、IEEE広域ネットワーク(WAN)またはローカルネットワーク(LAN)プロトコルの一群のうちのいずれかを備えてもよい、Ethernet(登録商標) プロトコル上で実行されてもよい。一部の実施形態では、ネットワークスタック210は、IEEE 802.11および/または移動体インターネットプロトコル等の、任意の種類および携帯の無線プロトコルを備える。
TCP/IPベースのネットワーク104の実施形態を考慮して、一実施形態では、Messaging Application Programming Interface(MAPI)(eメール)、File Transfer Protocol(FTP)、HyperText Transfer Protocol(HTTP)、Common Internet File System(CIFS)プロトコル(ファイル転送)、Independent Computing Architecture(ICA)プロトコル、Remote Desktop Protocol(RDP)、Wireless Application Protocol(WAP)、Mobile IPプロトコル、およびVoice Over IP(VoIP)プロトコルを含む、任意のTCP/IPベースのプロトコルを使用してもよい。別の実施形態では、ネットワークスタック210は、修正トランスポート制御プロトコル等の任意の種類および形態のトランスポート制御プロトコル、例えば、Transaction TCP(T/TCP)、選択確認を伴うTCP(TCP−SACK)、大型ウィンドウを伴うTCP(TCP−LW)、TCP−Vegasプロトコル等の混雑予測プロトコル、およびTCPスプーフィングプロトコルを備える。他の実施形態では、IP上のUDP等の任意の種類および形式のユーザデータグラムプロトコル(UDP)が、音声通信またはリアルタイムデータ通信等のために、ネットワークスタック210によって使用されてもよい。
さらに、ネットワークスタック210は、TCPドライバまたはネットワーク層ドライバ等の1つ以上の層を支持する1つ以上のネットワークドライバを含んでもよい。ネットワークドライバは、計算装置100のオペレーティングシステムの一部、または計算装置100の任意のネットワークインターフェースカードまたはその他のネットワークアクセス構成要素の一部として、含まれてもよい。一部の実施形態では、ネットワークスタック210のネットワークドライバのうちのいずれかをカスタマイズ、修正、または適合させて、本願で説明される本発明の技法のうちのいずれかを支持するネットワークスタック210のカスタムまたは修正部分を提供してもよい。他の実施形態では、システム120は、装置100のオペレーティングシステムによってインストールまたは提供されるネットワークスタック210により動作する、またはそれと連動して機能するように設計および構成される。
なおも図2を参照すると、文字セットエンジン225は、文字セット符号化を決定するための任意の種類および形式の論理、機能、および操作を備えて、アプリケーションと関連する。文字セットエンジン225、およびその任意の部分は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備えてもよい。概要すると、文字セットエンジン225は、パーサ230、アプリケーション決定機構235、およびアナライザ240を備える。一部の実施形態では、文字セットエンジン225は、図1Aおよび1Bに図示されるようなアプリケーション110a〜110b等のアプリケーションへの、またはそこからのネットワーク通信を受信または傍受する。例えば、クライアント100aにおけるアプリケーション110aは、ネットワーク104を介して、リクエストをサーバ110dに伝達してもよい。一実施形態では、文字セットエンジン225は、受信機215、送信機220、および/またはネットワークスタック220とインターフェース接続されるか、または通信している。
一部の実施形態では、文字セットエンジンのパーサ230は、装置100によって受信または傍受される任意のネットワーク通信を解析する論理、機能、または操作を備える。一実施形態では、パーサ230は、ネットワーク通信の任意の部分を識別、解析、抽出、および/または解釈する。一実施形態では、パーサ230は、HyperText Transfer Protocol(HTTP)、Extensible Markup Language(XML)プロトコル、またはSimple Mail Transfer protocol(SMTP)等の任意のアプリケーション層プロトコル通信を解析する。例えば、パーサ230は、クライアント100aからサーバ100dへと、HTTPフォーム提出等の、フォームを介して提出される1つ以上のフィールドを識別し、解析または抽出してもよい。別の例では、パーサ230は、任意の属性、クッキー、名前・値のペア、URL、データ列、オブジェクト、またはHTTPフォーム提出等のリクエストの任意の部分を識別し、解析または抽出してもよい。
一実施形態では、パーサ230は、リクエストにおいて、属性、ヘッダ、フィールド、または、テキスト、画像、混合データ型等のコンテンツの種類を識別するデータ要素を識別する。例えば、HTTPプロトコルの実施形態では、メッセージの本文における媒体型および亜類型を特定するため、およびそのようなデータの自然表現を特定するために、コンテンツ型ヘッダが使用される。一部の実施形態では、パーサ230は、リクエストの一部が符号化されていることを識別する。例えば、HTTPプロトコルの実施形態では、コンテンツ型ヘッダは、URLリクエストの一部が符号化されていることを識別してもよい。別の実施形態では、パーサ230は、リクエストにおいて、リクエストのコンテンツの一部を符号化または復号するために使用される文字セットを識別する属性を識別する。
一実施形態では、パーサ230は、TCPまたはUDPパケット等のトランスポート層プロトコルパケットの任意の一部を解析する。一部の実施形態では、パーサ230は、パケット等のトランスポート層プロトコルパケットから、1)ソースインターネットプロトコルアドレス、2)宛先インターネットプロトコルアドレス、3)ソースポート、4)宛先ポート、5)プロトコルを識別するパケットのヘッダおよび/またはペイロードの任意のデータ、6)パケットヘッダの任意のフィールドのうちのいずれかを識別し、解析する。別の実施形態では、パーサ230は、解析されたネットワーク通信またはネットワーク通信の識別された要素のうちのいずれかに対する、オブジェクトモデル表示、またはオブジェクトベースのアプリケーションプログラミングインターフェースを作成または提供する。
アプリケーション決定機構235は、メッセージまたはリクエスト等のネットワーク通信と関連するアプリケーションを決定する任意の論理、機能、および/または操作を備える。一実施形態では、アプリケーション決定機構235は、パーサ230と通信しているか、またはインターフェース接続され、ネットワーク通信から1つ以上の解析された情報を取得する。一部の実施形態では、アプリケーション決定機構235は、リクエストからの任意の情報、またはリクエスト、リクエストと関連するアプリケーションの種類、名前または識別を表す任意の情報を、リクエストから決定する。一実施形態では、アプリケーション決定機構235は、アプリケーションおよび/またはリクエストに対する符号化の種類を識別する。符号化情報は、リクエストを復号、検査、分析、または処理するために使用してもよい。
一部の実施形態では、アプリケーション決定機構235は、アプリケーションの名前、種類、または識別子を、ソースインターネットプロトコルアドレスおよび/またはポート、または宛先インターネットプロトコルアドレス、および/または宛先ポート等のネットワーク通信の1つ以上のデータ要素と関連付けるように構成される。例えば、特定のクライアントからのネットワーク通信は、アプリケーションと関連してもよい。別の例では、システム120は、インターネットプロトコル範囲内で、またはポートまたはポート範囲を使用して、1つ以上のサーバへのネットワーク通信を関連付けてもよい。他の実施形態では、アプリケーション決定機構235は、符号化スキームの名前、種類、または識別子、文字符号化セット、または符号化機構を、パーサ230によって提供される任意の解析されたフィールド等のネットワーク通信の1つ以上のデータ要素と関連付けるように構成される。さらに別の実施形態では、アプリケーション決定機構235は、ネットワークパケットのペイロードによって運ばれる情報等により、ネットワーク通信の解析を介して、アプリケーションおよび/または符号化スキームの種類、名前、または識別を決定する。
一部の実施形態では、アプリケーション決定機構235は、アプリケーションおよび/または符号化スキームへのネットワーク通信またはその任意の一部を格納するために、データベース、ファイル、オブジェクト、データ構造、またはその他の情報記憶媒体を使用する。例えば、アプリケーションは、1つ以上のインターネットプロトコルアドレスおよび/またはポートにマップされてもよい。別の例では、アプリケーション決定機構235は、任意の種類および形式の検索テーブルからのネットワーク通信において識別される1つ以上のデータ要素と関連する、またはそれに基づく、アプリケーションを検索してもよい。一実施形態では、アプリケーション決定機構235は、コマンドラインインターフェースまたはグラフィカルユーザインターフェース等の任意の種類および形式のインターフェースを介して、1つ以上のユーザによって構成可能である。別の実施形態では、アプリケーション決定機構235は、別のプログラム、スクリプト、アプリケーション、またはシステムによって、アプリケーションプログラミングインターフェースを介して構成される。
リクエスト等のネットワーク通信と関連するアプリケーションを決定すると、システム120は、ネットワーク通信の任意の符号化部分を復号するために使用される符号化の種類を決定、識別、または取得する。一実施形態では、アプリケーション決定機構235および/またはアナライザ240等のシステム120は、ネットワーク通信自体の任意の部分またはデータ要素から、符号化の種類を識別する。例えば、システム120は、ネットワークパケットのペイロードにおけるデータ等の、ネットワーク通信の任意の解析された要素から、符号化の種類を識別してもよい。別の実施形態では、システム120は、アプリケーションプログラミングインターフェース等を介して、クエリまたは検索から、テーブル、データベース、ファイル、オブジェクト、データ構成、またはそのような情報を有するその他の記憶媒体または構成機構へと、アプリケーションに対する符号化の種類を識別または取得する。
さらに別の実施形態では、システム120は、規則/方針エンジン250から、アプリケーションに対する符号化スキームを識別または取得する。例えば、アプリケーション決定機構235および/またはアナライザ240は、方針エンジン250にクエリを行い、所与のアプリケーションに対する符号化スキームを取得してもよい。一部の実施形態では、アプリケーションには、時間的情報、クライアント情報、ユーザ情報、デバイス情報、ネットワークの状態、任意のシステムの状態、履歴情報、および統計情報に基づく、それと関連する複数の符号化の種類があってもよい。一実施形態では、システム120は、上記の種類の情報のうちの1つ以上に基づいて、アプリケーションに対する符号化の種類を、規則/方針エンジン250から要求する。例えば、第1のアプリケーションは、週の第1日または時間に第1の符号化の種類を、週の第2日または時間に第2の符号化の種類を使用してもよく、または使用することを許可されてもよい。一例では、システム120は、識別されたアプリケーションおよび時間的情報により、方針エンジン250にクエリを行い、アプリケーションのネットワーク通信を処理するために使用される符号化の種類を決定してもよい。
アナライザ240は、ネットワーク通信またはその任意の一部を分析する任意の論理、機能、および/または操作を備える。一実施形態では、アナライザ240は、文字セットにおいて符号化された、リクエスト等のネットワーク通信の一部を復号する。一部の実施形態では、アナライザ240は、パーサ230またはアプリケーション決定機構235等の文字セットエンジン225のその他任意の部分から、アプリケーションに使用する符号化スキームを取得してもよい。他の実施形態では、アナライザ240は、規則/方針エンジン250から、アプリケーションに対する符号化スキームを取得する。一実施形態では、パーサ230またはアプリケーション決定機構235は、アナライザ240へのネットワーク通信に、アプリケーションに対する符号化の種類を使用して復号されるネットワーク通信の符号化部分を提供する。
一実施形態では、アナライザ240は、ネットワーク通信のコンテンツを検査または分析するために、アプリケーションの識別および/または関連符号化の種類を使用する。一部の実施形態では、アナライザ240は、システム120によって受信されるネットワークトラフィックの流れに対して一方向および双方向分析を行う。例えば、アナライザ240は、ネットワークパケットのそれぞれに対してディープストリーム検査を行ってもよい。他の実施形態では、アナライザ240は、HTTPおよびHTMLヘッダおよびペイロードを検査し、分析する。一実施形態では、システム120は、パーサ230等を介して、完全HTML構文解析を行うことが可能であり、アナライザ240は、HTML通信の任意の部分を検査および分析することが可能である。さらに別の実施形態では、アナライザ240は、セッション、およびセッションや、システム120によって受信および処理されるネットワークトラフィックの状態を識別し、維持し、追跡する。
なおも図2を参照すると、システム120はまた、ネットワーク通信の検査、フィルタリング、または分析に基づいて1組の1つ以上の方針を適用するための規則/方針エンジン250を含んでもよい。一実施形態では、方針エンジン250は、それによりアプリケーションがネットワーク204にアクセスすることが可能である、日付、時間、またはスケジュールについての方針を備える。別の実施形態では、方針エンジン250は、それにより識別された計算装置100または識別されたユーザによってアプリケーションを使用することが可能である、日付、時間、またはスケジュールについての方針を備える。なおも別の実施形態では、方針エンジン250は、それにより符号化スキームが使用される、またはアプリケーションに対して使用することが可能である、日付、時間、またはスケジュールについての方針を備える。例えば、ユーザは、システム120の規則または方針を構成して、第1のアプリケーションが、週の第1日の間または第1の指定時間範囲の間に第1の符号化スキームを使用し、週の第2日の間または第2の指定時間範囲の間に第2の符号化スキームを使用することを可能にしてもよい。
一実施形態では、システム120は、クライアントの1つ以上の属性または特性を識別して決定する、終点検出および走査機構を備える。例えば、システム120は、1)オペレーティングシステムおよび/またはオペレーティングシステムのバージョン、2)オペレーティングシステムのサービスパック、3)実行しているサービス、4)実行しているプロセス、および5)ファイル、といったクライアント側属性のうちのいずれか1つ以上を識別して決定する。システム120はまた、クライアントにおける、1)ウイルス対策ソフトウェア、2)パーソナルファイアウォールソフトウェア、3)スパムメール対策ソフトウェア、および4)インターネットセキュリティソフトウェアのうちのいずれか1つ以上の存在またはバージョンを識別し、決定してもよい。方針エンジン250には、クライアントの属性または特性、あるいはクライアント側属性のうちのいずれか1つ以上に基づく1つ以上の方針があってもよい。一部の実施形態では、方針エンジン250は、任意のクライアント属性に基づいて、アプリケーションと関連する符号化スキームの種類、またはアプリケーションに使用する復号の種類を特定してもよい。例えば、方針エンジン250は、クライアントがオペレーティングシステムの特定言語のバージョンを実行している場合、そのクライアントで実行しているアプリケーションからの符号化リクエストを復号するために、特定言語と関連する符号化スキームが使用されるという、方針を備えてもよい。
一部の実施形態では、規則/方針エンジン240は、1)バッファあふれ、2)CGI−BINパラメータ操作、3)フォーム/非表示フィールド操作、4)強制ブラウジング、5)クッキーまたはセッション位置付け、6)破壊されたアクセス制御リスト(ACL)または弱いパスワード、7)クロスサイトスクリプティング(XSS)、8)コマンド導入、9)SQL導入、10)エラー誘発機密情報漏洩、11)暗号の安全ではない使用、12)サーバ誤設定、13)バックドアおよびデバッグオプション、14)ウェブサイト改変、15)プラットフォームまたはオペレーティングシステムの脆弱性、および16)ゼロデイ脆弱性のうちの1つ以上等の、様々な部類および種類のウェブまたはインターネットベースの脆弱性に対する保護を提供するための、1つ以上のアプリケーションファイアウォールまたはセキュリティ制御方針を備える。一実施形態では、システム120は、1)必要フィールドが返送される、2)追加フィールドが無効、3)読取専用および非表示フィールド実行、4)ドロップダウンリストおよびラジオボタンフィールド適合、および5)フォームフィールド最大長実行のうちの1つ以上に対して、ネットワーク通信を検査または分析する形で、HTMLフォームフィールド保護を提供する。一部の実施形態では、システム120は、クッキーが修正されないことを確実にする。他の実施形態では、システム120は、合法URLを実行することによって、強制ブラウジングから保護する。
さらに別の実施形態では、システム120は、ネットワーク通信に含有される任意の秘密情報を保護する。システム120は、エンジン250の規則または方針に従って任意のネットワーク通信を検査または分析し、ネットワークパケットの任意のフィールドにおける任意の秘密情報を識別してもよい。一部の実施形態では、システム120は、ネットワーク通信において、クレジットカード番号、パスワード、社会保障番号、名前、患者コード、連絡先情報、および年齢うちの1つ以上の発生を識別する。ネットワーク通信の符号化部分は、これらの発生または秘密情報を備えてもよい。これらの発生に基づいて、一実施形態では、システム120は、ネットワーク通信の伝送を妨げる等の、ネットワーク通信に対する方針措置を行ってもよい。別の実施形態では、システム120は、そのような識別された発生または秘密情報を、書き直す、除去する、または隠してもよい。
システム120のアプリケーションごとの符号化識別および復号機能性により、アナライザ240および方針エンジン250は、それぞれ1つ以上の異なる符号化の種類を同時または後で使用して、アプリケーションファイアウォールおよびセキュリティ制御を、複数のアプリケーションの符号化ネットワーク通信に適用してもよい。そのようなものとして、規則/方針エンジン250において構成される規則および方針は、アプリケーションの種類、名前、またはインスタンス、および本願で説明されるシステムの操作に従って決定されるようなアプリケーションと関連する符号化スキームの両方において、適用することが可能である。さらに、システム120は、符号化スキームを知らずに復号、検査、および分析することができなかったネットワーク通信の符号化部分の分析を可能にする。そうすることによって、システム120は、アプリケーションごと、および/または符号化スキームごとに、アプリケーションファイアウォールおよびセキュリティ方針などの方針を、url符号化コンテンツを有するリクエスト等のネットワーク通信の符号化部分に適用することが可能である。
パーサ230、アプリケーション決定機構235、およびアナライザ240は、図2で文字セットエンジン225に含まれるとして図示されるが、パーサ230、アプリケーション決定機構235、およびアナライザ240のうちのいずれか、またはそれらの任意の一部は、装置100またはアプリケーション文字セット符号化/復号システム120の任意の一部において、常駐、動作、または実行してもよい。加えて、単一の論理実体または構成要素として示されるが、アプリケーション文字セット符号化/検査システム120はまた、クライアント等の第1の装置100aにおいて実行する第1の部分、およびサーバまたはゲートウェイ等の第2の装置100bにおいて実行する第2の部分により、分散型方式で動作してもよい。さらに別の実施形態では、複数のアプリケーション文字セット符号化/復号システム、例えば120、120’等は、互いに恊働または連動して動作し、1つ以上のアプリケーション、ゲートウェイ、クライアント、またはサーバに対する、本願で説明される機能性および技法を提供してもよい。
アプリケーション文字セット符号化/検査システム120の操作は、任意の種類および形式の符号化スキームまたは文字符号化セット(文字セット)をサポートしてもよい。一部の実施形態では、アプリケーション文字セット符号化/検査システム120は、一例として、UTF−7、UTF−8、CESU−8、UTF−16/UCS−2、UTF−32/UCS−4、UTF−EBCDIC、SCSU、Punycode、GB 18030を含む、任意の種類および形式のユニコードスキームで動作する。ユニコードは、西ヨーロッパ言語、東ヨーロッパ言語、キリル文字、ギリシャ語、アラビア語、ヘブライ語、中国語、日本語、朝鮮語、タイ語、ウルドゥー語、ヒンディー語、および、実在するか否かにかかわらず、その他全ての主要な世界の言語からの文字が、単一の文字セットに符号化されることを可能にする文字またはセットである。一実施形態では、文字セットは、16ビットである。符号化スキームの他の実施形態では、文字セットは、6、7、8、10、12、20、24、32、または64ビット、またはその他任意の数のビットであってもよい。ユニコード規格はまた、圧縮標準スキーム、および世界的な現場サポートに必要とされる広範囲の写植情報も含む。一実施形態では、アプリケーション文字セット符号化/検査システム120は、汎用文字セットに対するいくつかの文字符号化フォームを定義する、ISO 10646標準規格群を使用して動作する。一部の実施形態では、アプリケーション文字セット符号化/検査システム120は、ASCII符号化スキームを使用する。他の実施形態では、アプリケーション文字セット符号化/検査システム120は、非ASCII符号化リクエスト、またはその一部において動作する。別の実施形態では、アプリケーション文字セット符号化/検査システム120は、ANSIまたはWGL4文字セットを使用して、リクエストにおけるその動作を行う。
一部の実施形態では、アプリケーション文字セット符号化/検査システム120は、その中の方言および相違を含む、日本、朝鮮、ロシア、または中国の言語等の、任意の種類および形式の言語、およびそれに対して使用される任意の1つまたは複数の符号化スキームをサポートするか、または表すために使用される、符号化スキーム、文字符号化セット、または文字セットで動作する。一例として、かつ限定的または排他的となることを全く意図せずに、ロシア語については、システム120は、1)キリル文字(CP1251)、2)KOI8r、KOI−8 Alternative、KOI−8 Unified、またはK0I−8RU、3)ユニコードまたはUTF−8、4)DosCyrillicRussian(CP866)、5)ISO−8859−5、または6)ECMA−Cyrillic(ISO−IR−111)、といった種類の符号化スキームまたは文字セットで動作してもよい。
一例として、かつ限定的または排他的となることを全く意図せずに、日本語については、システム120は、1)utf−8、2)JIS(Japanese Industry Standard)、3)shift_jis(SJIS、X−SJIS、またはMS Kanjiとしても知られる)、4)EUC/EUC−JP(拡張Unix(登録商標)コード)、5)EBDIC、6)ISO2022/ISO2022−JP、7)ANSI Z39.64、8)CCCII、9)DEC Kanji、10)GTcode、11)IBM DBCS、12)JEF(Japanese Extended Features)、13)CCCII、14)ISO−8850、15)JIS X 0201(JISROMAN)、16)JIS X 0208(JIS C 6226)、17)JIS X 0212、JIS X 0213、またはJIS X 0221、および18)Mojikyo、といった符号化スキーム、文字符号化セット、または文字セットで動作してもよい。一例として、かつ限定的または排他的となることを全く意図せずに、朝鮮語については、システム120は、1)utf−8、2)EUCまたはEUC−KR、3)KEIS、4)ANSI Z39.64、5)ISO−2022またはISO−2022−KR、6)CCCII、7)Unified Hangul Code(CP949)、8)GB 12052、7)IBM DBCS、8)JOHAB、9)KS C 5601、10)KS C 5636(KS ROMAN)、11)KS C 5657、12)KS C 5700、および13)Mojikyo、といった符号化スキームまたは文字セットのうちのいずれかで動作してもよい。
一例として、かつ限定的または排他的となることを全く意図せずに、中国語については、システム120は、1)utf−8、2)ANSI Z39.64、3)Big5、Big5+、Big5ETen、またはBig5−HKSCS、4)CCCII、5)CNS 11643、6)GBK(CP936)、7)CP90、8)EUC/EUC−CN/EUC−TW、9)GB 12050/12052、10)GB13000−1、11)GB13134、12)GB16959、13)GB18030、14)GB1988、15)GB2312、16)GB7589、17)GB7590、18)GB8045、19)GB/T 12345、GB/T 13131、またはGBT/13132、20)HZ、21)ISO2022/2002−CN/CN−EXT、および22)Mojikyoといった符号化スキームまたは文字セットで動作してもよい。
システム120は、一度に、互いの後に、または同時に使用される、複数の言語および複数の符号化スキームで動作してもよい。一部の実施形態では、システム120は、日本語、朝鮮語、および中国語に対して同じ符号化を使用する等、複数の言語に対して同じ符号化スキームを使用して、または、日本語、朝鮮語、および中国語のそれぞれに対する異なる符号化スキーム等の、複数の言語のそれぞれに対する異なる符号化スキームで動作してもよい。
ここで図3を参照すると、アプリケーションと関連する符号化の種類を決定する、またはシステム120の技法を適用するための方法の実施形態が示される。方法300の概要では、ステップ310において、アプリケーション文字セット符号化/検査システム120は、リクエストを受信する。ステップ315において、システム120は、複数のアプリケーションのうちのどのアプリケーションにリクエストが対応するかを決定する。ステップ320において、システム120は、決定されたアプリケーションと関連する符号化スキームを識別する。ステップ325において、システム120は、リクエストを復号、検査、および/または分析するために、識別された符号化スキームを使用する。リクエストを復号して分析すると、ステップ330において、システム120は、1つ以上の方針をリクエストに適用してもよい。
さらに詳細に、ステップ310において、システム120は、任意の手段および/または機構を用いて、リクエストなどのネットワーク通信を受信または傍受してもよい。一実施形態では、受信機210は、クライアント101からリクエストを受信する。別の実施形態では、受信機210は、サーバ106へと、またはそこから伝達されると、ネットワークスタック210からのリクエストを傍受する。一部の実施形態では、受信機210等のシステム120は、ネットワークスタック210におけるリクエストを傍受するためのネットワークドライバ、フィルタ、またはフッキング機構を備える。一部の実施形態では、システム120を配備するゲートウェイ105は、リクエストを受信または傍受する。さらに別の実施形態では、クライアント101は、ゲートウェイ105にリクエストを送信するように構成され、クライアント101に対するプロキシの役割を果たす。他の実施形態では、システム120を配備するクライアント101またはサーバ106は、クライアント101からリクエストを受信または傍受する。一部の実施形態では、システム120は、キャッシュされたフォームページを受信する。さらに別の実施形態では、システム120は、システム120、またはゲートウェイ105等のシステム120を採用する装置のキャッシュに格納されるキャッシュされたフォームページを使用する。
一部の実施形態では、システム120には、リクエストによって使用される符号化スキームの予備知識がない。一実施形態では、リクエスト自体は、リクエストの符号化部分に使用される符号化スキームを識別しない。例えば、一実施形態では、リクエストは、フォーム−url−符号化コンテンツ型を使用して、HTMLフォーム等のフォームの提出を含む。別の実施形態では、リクエストは、文字符号化を識別するタグを提供しない。さらに他の実施形態では、リクエストは、符号化システムの識別を含む。なおも別の実施形態では、システム120は、発見的規則または論理を使用して符号化の種類を推測することによって、リクエストに対する符号化スキームを理解する。一部の実施形態では、システム120は、アプリケーションまたはクライアントの挙動に基づいて符号化スキームを決定してもよい。一実施形態では、システムは、システム120、ゲートウェイ105、サーバ106、および/またはクライアント101の間で知られる符号化スキームの使用に基づいて、符号化スキームを決定する。
ステップ315において、システム120は、リクエストが対応する複数のアプリケーションのうちの1つを決定する。一実施形態では、アプリケーション決定機構235は、パーサ230による等、リクエストから識別および/解析される1つ以上のデータ要素からアプリケーションを決定する。一部の実施形態では、アプリケーション決定機構235は、データベース、テーブル、ファイル、オブジェクト、データ構造、またはその他の記憶媒体から、インターネットプロトコルアドレスおよび/またはポートを対応するアプリケーションの検索にマップすることによって、リクエストを生成するか、またはそれと関連するアプリケーションを決定する。一実施形態では、アプリケーション決定機構235は、名前、種類、またはインスタンスによってアプリケーションを識別するリクエストのペイロードにおけるデータ要素から、アプリケーションを決定する。
ステップ320において、文字セットエンジン225等のシステム120は、ステップ315において決定されるアプリケーションに対する符号化スキームまたは文字セットを識別する。一実施形態では、文字セットエンジン225は、アプリケーション決定機構235またはアナライザ240を介する等して、クエリを行うか、またはデータベース、ファイル、テーブル、オブジェクト、データ構造、またはアプリケーションを1つ以上の符号化スキームにマップするその他の記憶媒体から、アプリケーションに対する符号化スキームの検索を行う。さらに別の実施形態では、文字セットエンジン225は、リクエストの任意の一部から、アプリケーションに対する符号化スキームを決定する。一実施形態では、文字セットエンジン225は、パーサ230によって識別または解析される1つ以上のデータ要素に対する符号化スキームを識別する。一部の実施形態では、文字セットエンジン225は、アプリケーションと関連する符号化スキームを格納するキャッシュ、メモリまたは記憶要素から、アプリケーションに対する符号化スキームを識別する。例えば、一実施形態では、文字セットエンジン225は、アプリケーションに対する以前に使用した符号化スキームを追跡する。さらに別の実施形態では、文字セットエンジン225は、文字セットを識別する情報を有するクライアントリクエストへの応答等のネットワーク通信から、アプリケーションに対する符号化スキームを識別する。例えば、一実施形態では、システム120は、サーバのネットワーク通信からのそのような情報を識別し、解析する。
一部の実施形態では、文字セットエンジン225は、アプリケーション決定機構235またはアナライザ240を介する等して、規則/方針エンジン250から、アプリケーションに使用する符号化スキームを取得する。例えば、方針エンジン250は、日付および時間等の、リクエストに関する任意の時間的情報に基づいて、アプリケーションに使用する符号化スキームを特定してもよい。別の例では、方針エンジン250は、リクエストを伝達するクライアントの任意のシステム情報または属性に基づいて、アプリケーションに使用する符号化スキームを特定してもよい。一実施形態では、システム120は、クライアントの終点検出および走査を行い、クライアントの1つ以上の属性または特性を決定する。方針エンジン250は、クライアントの任意の属性に基づいて、1つ以上の方針をリクエストに、またはリクエストの符号化部分の復号に適用してもよい。例えば、方針エンジン250は、クライアントがある種類のオペレーティングシステムを実行している場合に、アプリケーションに対する第1の種類の符号化スキームを使用することを特定してもよい。
ステップ325において、システム120は、リクエストの符号化部分を復号するために識別符号化スキームを使用する。一実施形態では、文字セットエンジン225は、パーサ230、アプリケーション決定機構235、および/またはアナライザ240を介する等して、識別された符号化スキームをリクエストの符号化部分に適用する。そのようなものとして、アナライザ240は、符号化部分を、アナライザ240によって検査または分析することが可能なデータ要素、テキスト、または文字列に復号する。例えば、一実施形態において、リクエストの復号された部分は、SQLまたはサーバ106において実行されるその他の種類のコマンドを形成してもよい。一部の実施形態では、アナライザ240は、復号されたコンテンツを含むリクエストを検査または分析して、リクエストが、規則/方針エンジン250を介して構成される規則および/または方針のいずれかに適合または違反するかどうかを決定する。図2と併せて上記のように、アナライザ240は、双方向分析、ディープストリーム検査、HTML検査、セッション状態管理、HTMLフォームフィールド保護、クッキーポイズン保護、強制ブラウザ保護、およびウェブ脆弱性保護等の、任意の論理、機能、および操作を行ってもよい。
ステップ330において、システム120は、復号されたリクエストの分析に基づいて、1つ以上の規則または方針をリクエストに適用する。一実施形態では、リクエストが、ネットワーク104上の伝送(またはネットワーク104上のさらなる伝送)に対する方針エンジン250の方針を満たさない場合、ゲートウェイ105において配備されるシステム120等のシステム120は、リクエストを拒絶または撤回してもよい。別の実施形態では、システム120は、リクエストが方針に従わない場合、アプリケーションまたはアプリケーションのユーザを隔離してもよい。さらに別の実施形態では、システム120は、リクエストが方針に従わない場合、アプリケーションのネットワークアクセスを降格または制限してもよい。他の実施形態では、システム120は、クライアントのSSL VPN接続を切断する等、ネットワーク104へのクライアントの接続を切断してもよい。一部の実施形態では、システム120は、リクエストが方針に従わない、または方針を満たさない場合、アプリケーションセッションを切断または終了してもよい。
方法300の技法は、アプリケーションからのリクエストとの関連で概して上記で説明されるものの、方法300は、互いの後および/または同時に、複数のアプリケーションに対して行うことが可能である。システム120は、異なるアプリケーションから、ステップ310において複数のリクエストを受信または傍受してもよく、それぞれには、別のアプリケーションと同じ、または異なる符号化スキームを使用する符号化部分がある。例えば、システム120は、複数のクライアントおよびアプリケーションに情報提供するゲートウェイ105上に配備されてもよい。複数のリクエストのうちの各リクエストに対して、システム120は、ステップ315でリクエストと関連するアプリケーション、ステップ320でアプリケーションに使用される文字セット符号化を決定し、ステップ325において、リクエストの符号化部分を復号して復号されたリクエストを分析し、ステップ330において、任意の関連方針をリクエストに適用する。そのようなものとして、一部の実施形態では、システム120は、アプリケーションごとに方法300の技法を行い、リクエストごとに関連符号化スキームを適用する。一実施形態では、システム120は、第1のリクエストに応じて、アプリケーションに対する第1の符号化スキームを使用してもよく、第2の以降のリクエストに応じて、同じアプリケーションに対する第2の異なる符号化スキームを使用してもよい。
アプリケーション符号化/検査システム120は、異なる文字セットまたは符号化スキームを使用する複数のアプリケーションを有する、企業ネットワーク104に対するゲートウェイまたはネットワークアプライアンスにおいて配備してもよい。例えば、ゲートウェイ105は、日本語ユーザを有する会社ネットワークに対するアプリケーションファイアウォールおよびセキュリティ制御装置として配備してもよい。第1のクライアント101aにおける第1のアプリケーション110aは、UTF−8という第1の文字セットを使用してもよい。第1のクライアント101aまたは第2のクライアント101bにおける第2のアプリケーション110bは、JISという第2の文字セットを使用してもよい。第1のクライアント101aまたは第2のクライアント101b、さらにまたは第3のクライアント101cのいずれかにおける第3のアプリケーション110cは、MS Kanjiという第3の文字セットを使用してもよい。
第1のアプリケーション110a、第2のアプリケーション110b、および第3のアプリケーション110cのそれぞれは、ゲートウェイ105を介して、1つ以上のリクエストを1つ以上のサーバ106a〜106nに提出する。アプリケーション110a〜110cは、HTTP、HTML、および/またはXMLリクエストをウェブサーバ106a〜106nに提出するウェブブラウザを備えてもよい。これらのリクエストのうちのいずれか1つ以上は、文字セットの識別が提出されたデータの一部ではない、フォームurl符号化提出を備えてもよい。リクエストの一部は、ブラウザ上のJava(登録商標)scriptまたはその他のスクリプトから、完全に、または別の方法で生成される。また、リクエストのうちの1つ以上は、AJAX、またはAsynchronous Java(登録商標)ScriptおよびXMLベースの技術を使用して生成される。そのようなものとして、これらのリクエストのうちのいずれか1つ以上に対して、ゲートウェイ105には、リクエストの一部を符号化するために使用される文字セットの予備知識がなくてもよい。
上記のシステム120の構造、機能、および操作を考慮して、ゲートウェイ105は、アプリケーションファイアウォールおよびセキュリティ制御方針をリクエストの符号化部分に適用することが可能である。受信したリクエストに対して、ゲートウェイ105は、リクエストと関連するアプリケーション、およびアプリケーションと関連する符号化スキームを決定する。この例において、ゲートウェイ105は、第1のリクエストが第1のアプリケーション110aから受信されることを決定し、第1のアプリケーション110aと関連するようなUTF−8符号化スキームを識別する。ゲートウェイ105は、UTF−8の符号化スキームで第1のリクエストを復号し、復号したリクエストを分析し、任意の方針をリクエストに適用する。ゲートウェイ105は、第2のリクエストが第2のアプリケーション110bから受信されることを決定し、第2のアプリケーション110bと関連するようなJIS符号化スキームを識別する。ゲートウェイ105は、JISの識別された符号化スキームで第1のリクエストを復号し、復号されたリクエストを分析し、任意の方針をリクエストに適用する。同様に、ゲートウェイ105は、第3のリクエストが第3のアプリケーション110cから受信されることを決定し、第3のアプリケーション110cと関連するようなMS Kanji符号化スキームを識別する。ゲートウェイ105は、MS Kanjiの識別された符号化スキームで第1のリクエストを復号し、復号されたリクエストを分析し、任意の方針をリクエストに適用する。
場合によっては、アプリケーション110aは、別の期間または別の日の間において、別のインスタンスを開始する際等に、異なる符号化スキームに切り替えるか、または使用してもよい。例えば、第1のアプリケーション110aは、この第2のインスタンスの間において、UTF−8の代わりにJIS文字セットを使用してもよい。このような場合、ゲートウェイ105は、後のリクエストが第1のアプリケーション110aから受信されたことを決定し、第1のアプリケーション110aと関連するようなUTF−8符号化スキームを識別する。例えば、方針エンジン250は、指定期間の間にUTF−8符号化スキームが第1のアプリケーション110aに使用されるべきであると識別してもよい。次いで、ゲートウェイ105は、UTF−8の識別された符号化スキームによってこの後のリクエストを復号し、復号されたリクエストを分析し、任意の方針をリクエストに適用する。
本願で説明されるゲートウェイ105により、ゲートウェイは、異なる符号化スキームを使用して、複数のアプリケーションからのリクエストを復号し、分析し、方針を適用することが可能である。ゲートウェイ105は、アプリケーションごと、およびリクエストごとの復号機構を提供して、日本語、朝鮮語、ロシア語、または中国語のアプリケーションのユーザに対して配備されるネットワーク環境にあってもよいもの等の、複数の異なる文字セット符号化アプリケーションを配備する環境に方針を適用することにおいて、多大な柔軟性を提供する。ゲートウェイ105は、アプリケーションファイアウォールおよびセキュリティ制御装置を異なる方法で符号化されたネットワーク通信に適用するステップが符号化コンテンツで見出される場合のある、脆弱性およびセキュリティ懸案事項からネットワーク環境を保護することを可能にする。
本発明の精神および範囲から逸脱することなく、多くの変更および修正が、当業者によって行われてもよい。したがって、解説された実施形態は、実施例の目的で示されているに過ぎず、次の請求項によって規定される本発明を限定するとして理解されるべきではないことを、明示的に理解しなければならない。これらの請求項は、それらが文字通りに説明するもの、また、他の側面において上記の解説で図示および説明されるものと同一ではないにしても、わずかに異なる同等の要素を含むものとして、読まれるものである。

Claims (22)

  1. リクエストを復号するための使用に用いられる文字符号化を決定する方法であって、
    (a)複数のクライアントおよびサーバの間にある装置によって、該サーバへのリクエストを受信するステップと、
    (b)該装置によって、複数のアプリケーションプログラムのうちのどの1つに該リクエストが対応するかを決定するステップと、
    (c)該装置によって、該決定されたアプリケーションプログラムと関連する文字符号化を識別するステップであって、該文字符号化は、言語を表わす、ステップと、
    (d)該装置によって、該リクエストを検査するために該識別された文字符号化を使用して該リクエストを復号するステップと
    を含む、方法。
  2. ステップ(b)は、前記リクエストの属性から、前記複数のアプリケーションプログラムのうちのどの1つに該リクエストが対応するかを決定することを含む、請求項1に記載の方法。
  3. 前記属性は、ソース識別子、宛先識別子、ポート識別子、プロトコル識別子、ヘッダ情報、またはユニフォームリソースロケータアドレスのうちの1つを備える、請求項2に記載の方法。
  4. ステップ(b)は、前記受信されたリクエストに含まれるクッキーを使用して、前記複数のアプリケーションプログラムのうちのどの1つに該リクエストが対応するかを決定することを含む、請求項1に記載の方法。
  5. ステップ(c)は、文字符号化とアプリケーションとの間の関連性を含有するファイルを使用して、前記決定されたアプリケーションプログラムと関連する前記文字符号化を識別することを含む、請求項1に記載の方法。
  6. ステップ(c)は、文字符号化とアプリケーションとの間の関連性を含有するデータベースを使用して、前記決定されたアプリケーションプログラムと関連する前記文字符号化を識別することを含む、請求項1に記載の方法。
  7. (a)前記装置によって、前記サーバへの第2のリクエストを受信するステップと、
    (b)該装置によって、該第2のリクエストが対応する、前記複数のアプリケーションプログラムのうちの第2のアプリケーションプログラムを決定するステップと、
    (c)該装置によって、該決定された第2のアプリケーションプログラムと関連する第2の文字符号化を識別するステップと
    をさらに含む、請求項1に記載の方法。
  8. ステップ(a)は、クライアントによって生成されるリクエストを受信することを含む、請求項1に記載の方法。
  9. ステップ(b)は、前記クライアントの属性を使用して、前記複数のアプリケーションプログラムのうちのどの1つに前記リクエストが対応するかを決定することを含む、請求項8に記載の方法。
  10. ステップ(a)は、キャッシュされたフォームページに基づくリクエストを受信することを含む、請求項1に記載の方法。
  11. リクエストを復号するために使用される文字符号化を決定することが可能なゲートウェイであって、該ゲートウェイは、
    ネットワークを介してクライアントと通信している受信機であって、該クライアントからリクエストを受信する受信機と、
    該受信機と通信している文字セットエンジンであって、該文字セットエンジンは、該リクエストが向けられるアプリケーションに応答する受信したリクエストと関連する文字符号化を識別し、該文字符号化は、言語を表わす、文字セットエンジンと
    を備え、
    該ゲートウェイは、該識別された文字符号化を使用して該リクエストを復号することにより、該リクエストを検査する、ゲートウェイ。
  12. 前記受信機は、複数のクライアントと通信する、請求項11に記載のゲートウェイ。
  13. 前記リクエストが向けられるアプリケーションプログラムを決定するために、該リクエストに含有される、ソース識別子、宛先識別子、ポート識別子、プロトコル識別子、ヘッダ情報、またはユニフォームリソースロケータアドレスのうちの1つを使用する、請求項11に記載のゲートウェイ。
  14. 前記文字セットエンジンは、文字符号化とアプリケーションとを関連付けるデータベースを備える、請求項11に記載のゲートウェイ。
  15. 前記文字セットエンジンは、文字符号化とアプリケーションとを関連付けるファイルを備える、請求項11に記載のゲートウェイ。
  16. ゲートウェイによって、クライアントから受信される符号化部分を有するリクエストを検査する方法であって、
    (a)ゲートウェイによって、クライアント上のアプリケーションプログラムからリクエストを受信するステップと、
    (b)該ゲートウェイによって、複数のアプリケーションプログラムのうちのどの1つに該リクエストが対応するかを決定するステップと、
    (c)該ゲートウェイによって、該決定されたアプリケーションプログラムと関連する文字符号化を識別するステップであって、該文字符号化は、該決定されたアプリケーションプログラムの言語を表わす、ステップと、
    (d)該ゲートウェイによって、該識別された文字符号化を使用して、リクエストの一部を復号するステップと、
    (e)該ゲートウェイによって、該リクエストの該復号された部分を検査するステップと
    を含む、方法。
  17. 前記ゲートウェイによって、前記リクエストの属性を使用して、前記複数のアプリケーションプログラムのうちのどの1つに該リクエストが対応するかを決定することを含む、請求項16に記載の方法。
  18. 前記ゲートウェイによって、前記クライアントの属性を使用して、前記複数のアプリケーションプログラムのうちのどの1つに前記リクエストが対応するかを決定することを含む、請求項16に記載の方法。
  19. 前記ゲートウェイによって、前記リクエストの前記復号された部分の検査に基づいて、方針を該リクエストに適用することを含む、請求項16に記載の方法。
  20. (f)前記ゲートウェイによって、前記クライアントまたは第2のクライアントのうちの一方における第2のアプリケーションプログラムから第2のリクエストを受信することと、
    (g)該ゲートウェイによって、前記複数のアプリケーションプログラムのうちのどの1つに該第2のリクエストが対応するかを決定することと、
    (h)該ゲートウェイによって、該決定されたアプリケーションプログラムと関連する第2の文字符号化を識別することと、
    (i)該ゲートウェイによって、該識別された第2の文字符号化を使用して、該第2のリクエストの一部を復号すること
    を含む、請求項16に記載の方法。
  21. 前記ゲートウェイによって、前記第2のリクエストの前記復号された部分を検査することを含む、請求項20に記載の方法。
  22. 前記ゲートウェイによって、前記第2のリクエストの前記復号された部分の検査に基づいて、方針を該第2のリクエストに適用することを含む、請求項21に記載の方法。
JP2009513111A 2006-05-31 2006-05-31 ゲートウェイでのリクエスト提出復号用文字セット符号化決定のためのシステムおよび方法 Expired - Fee Related JP4862079B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2006/021067 WO2007139552A1 (en) 2006-05-31 2006-05-31 Systems and methods for determining the charset encoding for decoding a request submission in a gateway

Publications (2)

Publication Number Publication Date
JP2009539176A JP2009539176A (ja) 2009-11-12
JP4862079B2 true JP4862079B2 (ja) 2012-01-25

Family

ID=37708569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009513111A Expired - Fee Related JP4862079B2 (ja) 2006-05-31 2006-05-31 ゲートウェイでのリクエスト提出復号用文字セット符号化決定のためのシステムおよび方法

Country Status (4)

Country Link
JP (1) JP4862079B2 (ja)
KR (1) KR101265920B1 (ja)
CN (1) CN101449553B (ja)
WO (1) WO2007139552A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234379B2 (en) 2006-09-14 2012-07-31 Afilias Limited System and method for facilitating distribution of limited resources
US8254381B2 (en) * 2008-01-28 2012-08-28 Microsoft Corporation Message processing engine with a virtual network interface
US8756286B2 (en) 2008-03-10 2014-06-17 Afilias Limited Alternate E-mail address configuration
CN102750185B (zh) * 2011-04-18 2018-05-22 腾讯科技(深圳)有限公司 一种数据自适应输出方法及系统
CN102395057B (zh) * 2011-06-30 2017-10-13 中兴通讯股份有限公司 一种端口定位格式的配置方法及装置
KR102289418B1 (ko) * 2014-12-10 2021-08-13 한국전자통신연구원 데이터 암호화 장치 및 방법
US9779066B2 (en) 2015-05-21 2017-10-03 Umm Al-Qura University Method and system for converting punycode text to ASCII/unicode text

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212334A (ja) * 1996-01-31 1997-08-15 Nippon Telegr & Teleph Corp <Ntt> テキスト最尤復号方法及び最尤復号装置と、データ通信ネットワーク装置
JPH09319545A (ja) * 1996-05-30 1997-12-12 Mitsubishi Electric Corp 文字入力装置
JPH1020989A (ja) * 1996-07-08 1998-01-23 Hitachi Ltd 文字入力装置
JP2000132449A (ja) * 1998-10-27 2000-05-12 Nippon Telegr & Teleph Corp <Ntt> 代理アクセス方法、装置、および代理アクセスプログラムを記録した記録媒体
JP2000132480A (ja) * 1998-10-27 2000-05-12 Nippon Telegr & Teleph Corp <Ntt> インターネット閲覧方法、装置、およびインターネット閲覧プログラムを記録した記録媒体
JP2000172711A (ja) * 1998-12-10 2000-06-23 Fujitsu Ltd ドキュメント検索仲介装置、ドキュメント検索システム、および、ドキュメント検索仲介プログラムを記録した記録媒体
JP2003203032A (ja) * 2002-01-08 2003-07-18 Fujitsu Ltd ウェブサーバ仲介装置、方法および対話型ウェブサーバ仲介ポータルサーバ
JP2005229626A (ja) * 2004-02-13 2005-08-25 Microsoft Corp ネットワーク化環境を介し保護された通信で配信されるコンピュータエクスプロイトからコンピューティングデバイスを保護するシステムおよび方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751654B2 (en) * 1999-03-31 2004-06-15 International Business Machines Corporation Simulating web cookies for non-cookie capable browsers
WO2001033752A1 (en) * 1999-11-03 2001-05-10 Measurecast, Inc. Direct tracking of viewers of selected content in audio and video programming provided over a computer network
US6944760B2 (en) * 2001-05-24 2005-09-13 Openwave Systems Inc. Method and apparatus for protecting identities of mobile devices on a wireless network
US20040073811A1 (en) * 2002-10-15 2004-04-15 Aleksey Sanin Web service security filter
CN100430916C (zh) * 2003-05-17 2008-11-05 微软公司 用于将转换应用到多部分文件的方法和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212334A (ja) * 1996-01-31 1997-08-15 Nippon Telegr & Teleph Corp <Ntt> テキスト最尤復号方法及び最尤復号装置と、データ通信ネットワーク装置
JPH09319545A (ja) * 1996-05-30 1997-12-12 Mitsubishi Electric Corp 文字入力装置
JPH1020989A (ja) * 1996-07-08 1998-01-23 Hitachi Ltd 文字入力装置
JP2000132449A (ja) * 1998-10-27 2000-05-12 Nippon Telegr & Teleph Corp <Ntt> 代理アクセス方法、装置、および代理アクセスプログラムを記録した記録媒体
JP2000132480A (ja) * 1998-10-27 2000-05-12 Nippon Telegr & Teleph Corp <Ntt> インターネット閲覧方法、装置、およびインターネット閲覧プログラムを記録した記録媒体
JP2000172711A (ja) * 1998-12-10 2000-06-23 Fujitsu Ltd ドキュメント検索仲介装置、ドキュメント検索システム、および、ドキュメント検索仲介プログラムを記録した記録媒体
JP2003203032A (ja) * 2002-01-08 2003-07-18 Fujitsu Ltd ウェブサーバ仲介装置、方法および対話型ウェブサーバ仲介ポータルサーバ
JP2005229626A (ja) * 2004-02-13 2005-08-25 Microsoft Corp ネットワーク化環境を介し保護された通信で配信されるコンピュータエクスプロイトからコンピューティングデバイスを保護するシステムおよび方法

Also Published As

Publication number Publication date
WO2007139552A1 (en) 2007-12-06
CN101449553B (zh) 2013-04-17
KR20090031350A (ko) 2009-03-25
JP2009539176A (ja) 2009-11-12
HK1133964A1 (en) 2010-04-09
CN101449553A (zh) 2009-06-03
KR101265920B1 (ko) 2013-05-20

Similar Documents

Publication Publication Date Title
De Keukelaere et al. Smash: secure component model for cross-domain mashups on unmodified browsers
US8082581B2 (en) Management of session timeouts in an SSL VPN gateway
US7840707B2 (en) Reverse proxy portlet with rule-based, instance level configuration
JP4912400B2 (ja) Htmlブラウザおよび拡張機能の既知の脆弱性からの免疫付与
US7870596B2 (en) Accessing network resources outside a security boundary
US8209706B2 (en) Inter-frame messaging between different domains
US6212640B1 (en) Resources sharing on the internet via the HTTP
CN101981888B (zh) 用于ssl vpn免客户机访问的策略驱动的细粒度url编码机制
JP5306348B2 (ja) データ発信源の追跡及びデータ伝送の制御
US11265295B2 (en) Object property getter and setter for clientless VPN
US20190116186A1 (en) Enterprise cloud access control and network access control policy using risk based blocking
KR101265920B1 (ko) 게이트웨이에서 요구 제출을 디코딩하도록 캐릭터 세트 인코딩을 결정하는 시스템 및 방법
US8484364B2 (en) Secure delivery of flash content over networks
US20230056928A1 (en) Encoding-free javascript stringify for clientless vpn
EP1562099A1 (en) Method and computer system for document encryption
US20120096536A1 (en) Data Security System
US8996715B2 (en) Application firewall validation bypass for impromptu components
JP5039053B2 (ja) マクロ・サポートによりhttpセキュリティ・メッセージ処理を外部化するための方法およびシステム
US20200034483A1 (en) Browser storage for clientless vpn
HK1133964B (en) Systems and methods for determining the charset encoding for decoding a request submission in a gateway
Adamczyk et al. Non-compliant and proud: A case study of HTTP compliance
Orrin The SOA/XML Threat Model and New XML/SOA/Web 2.0 Attacks & Threats
Markowski Microsoft .NET Introduction
CA2551034A1 (en) Firewall validation bypass for impromptu components

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110831

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: 20111012

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: 20111107

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4862079

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141111

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees