JP4862079B2 - System and method for determining character set encoding for request submission decoding at gateway - Google Patents

System and method for determining character set encoding for request submission decoding at gateway 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.)
Active
Application number
JP2009513111A
Other languages
Japanese (ja)
Other versions
JP2009539176A (en
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/en
Application granted granted Critical
Publication of JP4862079B2 publication Critical patent/JP4862079B2/en
Active 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; 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
    • 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; CALCULATING OR 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; CALCULATING OR 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

Description

本発明は概して、アプリケーションのリクエストに対する文字符号化を決定するステップに関する。さらに具体的には、本発明は、ゲートウェイを介して提出されるアプリケーションのリクエストを復号するための文字符号化を決定するためのシステムおよび方法に関する。   The present invention generally relates to determining character encoding for an application request. More specifically, the present invention relates to a system and method for determining character encoding for decoding application requests submitted via a gateway.

インターネットとして知られる世界規模のコンピュータネットワーク上のユーザから情報を獲得する一般的に知られている方法は、データを投入するブラウザのユーザに対する1つ以上のフィールドを提供するページである、「フォーム(form)」として知られる技法である。しかし、フォームを介して提出することができる文字に対する多くの異なる符号化が存在し、リクエストにおいて、どの文字セットをリクエストに使用するべきかを示す方法がない場合がある。それを作成するために使用されるものとは異なる、フォーム提出(submission)を復号するための文字符号化セット(「文字セット(charset)」)の使用は、サーバによるフォームの拒絶または誤解をもたらし得る。ネットワーク装置には、フォームの生成および処理に責任があるアプリケーション論理へのアクセスがないため、この問題は、サーバとクライアントとの間に配備されるアプリケーションファイアウォール等の中間ネットワーク装置に対して悪化する。   A commonly known method of obtaining information from a user on a global computer network known as the Internet is a page that provides one or more fields for the user of the browser that populates the data. form) ”. However, there are many different encodings for characters that can be submitted via the form, and there may be no way to indicate which character set should be used in the request in the request. The use of a character encoding set (“character set”) to decode a form submission, which is different from that used to create it, results in a form rejection or misunderstanding by the server. obtain. This problem is exacerbated for intermediate network devices such as application firewalls deployed between servers and clients because the network devices do not have access to the application logic responsible for form generation and processing.

この文字セット問題を解決しようとしてきた1つの技法は、フォームを生成し、クライアントに送信するために使用される文字セットを再符号化するネットワーク装置に依存している。しかし、例えばJava(登録商標)scriptを使用して、フォームがクライアント上で完全に生成されると、この技法は機能しない。ネットワーク装置はまた、全フォームリクエストが「utf−8」として知られる符号化を使用すると仮定することによって、この問題を解決しようとしてもよい。しかし、このアプローチには明白な欠点がある。   One technique that has been attempted to solve this character set problem relies on network devices that re-encode the character set used to generate the form and send it to the client. However, this technique does not work if the form is fully generated on the client, for example using Java® script. The network device may also attempt to solve this problem by assuming that all form requests use an encoding known as “utf-8”. However, this approach has obvious drawbacks.

本発明のシステムおよび方法は、サーバアプリケーションまたはクライアントブラウザが再符号化されることを必要とせずに、異なる方法で符号化されたコンテンツまたは未確認文字セットで符号化されるコンテンツを備えてもよい、アプリケーションからのリクエストを効果的かつ確実に取り扱い、復号し、および分析するための解決法を提供する。説明した技法はまた、拡張して、異なる状況に異なる文字セットを使用するために、方針がリクエストに適用されることを可能にしてもよい。結果として、サーバとクライアントとの間のフォーム提出およびその他のリクエストを検査して、悪質なリクエスト(SQL導入リクエスト等)が最小数の誤検出でサーバアプリケーションに到達することを許可されないことを、確実にしてもよい。   The system and method of the present invention may comprise content encoded in a different manner or content that is encoded with an unidentified character set without requiring the server application or client browser to be re-encoded. Provide a solution to handle, decrypt and analyze requests from applications effectively and reliably. The described techniques may also be extended to allow policies to be applied to requests to use different character sets for different situations. As a result, form submissions and other requests between the server and client are inspected to ensure that malicious requests (such as SQL deployment requests) are not allowed to reach the server application with a minimum number of false positives. It may be.

一側面では、本発明は、リクエストを復号するために使用される文字符号化を決定するための方法に関する。方法は、リクエストを受信するステップと、リクエストが対応する複数のアプリケーションプログラムのうちのアプリケーションプログラムを決定するステップとを含む。方法は、決定されたアプリケーションプログラムと関連する文字符号化を識別し、リクエストを検査するために、識別された文字符号化を使用する。   In one aspect, the invention relates to a method for determining a character encoding used to decode a request. The method includes receiving a request and determining an application program of a plurality of application programs to which the request corresponds. The method identifies the character encoding associated with the determined application program and uses the identified character encoding to examine the request.

一実施形態では、方法は、リクエストの属性から、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定する。一部の実施形態では、リクエストの属性は、1)ソース識別子、2)宛先識別子、3)ポート識別子、4)プロトコル識別子、5)ヘッダ情報、または6)ユニフォームリソースロケータ(Uniform Resource Locator:URL)アドレスを含む。別の実施形態では、方法は、受信したリクエストに含まれるクッキーを使用して、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定する。   In one embodiment, the method determines from the request attributes which one of the plurality of application programs corresponds to the request. In some embodiments, the request attributes are: 1) source identifier, 2) destination identifier, 3) port identifier, 4) protocol identifier, 5) header information, or 6) uniform resource locator (URL). Contains an address. In another embodiment, the method uses a cookie included in the received request to determine which one of the plurality of application programs corresponds to the request.

他の実施形態では、方法は、文字符号化とアプリケーションとの間の関連性を含有するファイルを使用して、決定されたアプリケーションプログラムと関連する文字符号化を識別する。一部の実施形態では、方法は、文字符号化とアプリケーションとの間の関連性を含有するデータベースを使用して、決定されたアプリケーションプログラムと関連する文字符号化を識別する。   In other embodiments, the method identifies a character encoding associated with the determined application program using a file containing the association between the character encoding and the application. In some embodiments, the method identifies a character encoding associated with the determined application program using a database containing associations between the character encoding and the application.

一実施形態では、方法は、第2のリクエストを受信するステップと、第2のリクエストが対応する、複数のアプリケーションプログラムのうちの第2の1つを決定するステップと、決定された第2のアプリケーションプログラムと関連する第2の文字符号化を識別するステップとを含む。別の実施形態では、方法は、クライアントによって生成されるリクエストを受信するステップを含む。方法は、クライアントの属性を使用して、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定してもよい。さらに別の実施形態では、方法は、キャッシュされたフォームページに基づくリクエストを受信するステップを含む。   In one embodiment, a method receives a second request, determines a second one of a plurality of application programs to which the second request corresponds, and a determined second Identifying a second character encoding associated with the application program. In another embodiment, the method includes receiving a request generated by the client. The method may use a client attribute to determine which one of the plurality of application programs corresponds to the request. In yet another embodiment, the method includes receiving a request based on a cached form page.

別の側面では、本発明は、リクエストを復号するために使用される文字符号化を決定することが可能な、ゲートウェイに関する。該システムは、ネットワークを介してクライアントと通信しており、かつクライアントからリクエストを受信する受信機を含む。システムはまた、受信機と通信している文字セットエンジンも含む。文字セットエンジンは、リクエストが向けられるアプリケーションに応答する受信したリクエストと関連する文字符号化を識別し、リクエストを検査するために、識別された文字セットを使用する。   In another aspect, the invention relates to a gateway capable of determining the character encoding used to decode a request. The system includes a receiver that is in communication with a client over a network and receives requests from the client. The system also includes a character set engine in communication with the receiver. The character set engine identifies the character encoding associated with the received request in response to the application to which the request is directed and uses the identified character set to inspect the request.

一実施形態では、ゲートウェイは、複数のクライアントと通信する。一部の実施形態では、ゲートウェイは、リクエストが向けられるアプリケーションプログラムを決定するために、リクエストに含有される、1)ソース識別子、2)宛先識別子、3)ポート識別子、4)プロトコル識別子、5)ヘッダ情報、または6)ユニフォームリソースロケータアドレスのうちの1つを使用する。別の実施形態では、文字セットエンジンは、文字符号化およびアプリケーションを関連付けるデータベースを含む。他の実施形態では、文字セットエンジンは、文字符号化およびアプリケーションを関連付けるファイルを含む。   In one embodiment, the gateway communicates with multiple clients. In some embodiments, the gateway contains 1) the source identifier, 2) the destination identifier, 3) the port identifier, 4) the protocol identifier, 5) contained in the request to determine the application program to which the request is directed. Use one of the header information or 6) uniform resource locator address. In another embodiment, the character set engine includes a database that associates character encodings and applications. In other embodiments, the character set engine includes a file that associates character encodings and applications.

さらに別の側面では、本発明は、ゲートウェイによって、符号化部分を有するクライアントリクエストを検査するための方法に関する。方法は、ゲートウェイによって、クライアント上のアプリケーションプログラムからリクエストを受信するステップを含む。方法はまた、ゲートウェイによって、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定するステップと、決定されたアプリケーションプログラムと関連する文字符号化を識別するステップとを含む。方法はさらに、ゲートウェイによって、識別された文字符号化を使用して、リクエストの一部を復号するステップと、リクエストの復号された部分を検査または分析するステップとを含む。   In yet another aspect, the invention relates to a method for inspecting a client request having an encoded portion by a gateway. The method includes receiving a request from an application program on a client by a gateway. The method also includes determining, by the gateway, which one of the plurality of application programs corresponds to the request and identifying a character encoding associated with the determined application program. The method further includes decoding the portion of the request using the identified character encoding by the gateway and examining or analyzing the decoded portion of the request.

方法の一実施形態では、ゲートウェイは、リクエストの属性を使用して、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定する。別の実施形態では、ゲートウェイは、クライアントの属性を使用して、複数のアプリケーションプログラムのうちのどの1つにリクエストが対応するかを決定する。さらに別の実施形態では、ゲートウェイは、リクエストの復号された部分の検査に基づいて、方針をリクエストに適用する。   In one embodiment of the method, the gateway uses the request attributes to determine which one of the plurality of application programs corresponds to the request. In another embodiment, the gateway uses the client attributes to determine which one of the plurality of application programs corresponds to the request. In yet another embodiment, the gateway applies a policy to the request based on inspection of the decrypted portion of the request.

一部の実施形態では、方法は、ゲートウェイによって、クライアントまたは第2のクライアントのうちの一方における第2のアプリケーションプログラムから第2のリクエストを受信するステップを含む。ゲートウェイは、複数のアプリケーションプログラムのうちのどの1つに第2のリクエストが対応するかを決定し、決定されたアプリケーションプログラムと関連する第2の文字符号化を識別する。ゲートウェイは、識別された第2の文字符号化を使用して、第2のリクエストの一部を復号する。一部の実施形態では、ゲートウェイは、第2のリクエストの復号された部分を検査または分析する。別の実施形態では、方法は、ゲートウェイによって、第2のリクエストの復号された部分の検査に基づいて、方針を第2のリクエストに適用するステップを含む。   In some embodiments, the method includes receiving, by the gateway, a second request from a second application program at one of the client or the second client. The gateway determines which one of the plurality of application programs corresponds to the second request and identifies a second character encoding associated with the determined application program. The gateway uses the identified second character encoding to decode a portion of the second request. In some embodiments, the gateway examines or analyzes the decoded portion of the second request. In another embodiment, the method includes applying a policy to the second request by the gateway based on inspection of the decoded portion of the second request.

本発明の様々な実施形態の詳細は、添付図面および下記の発明を実施するための最良の形態において説明される。本発明の前述およびその他の目的、側面、特徴、および利点は、添付図面と併せて理解される次の発明を実施するための最良の形態を参照することによって、さらに明白となり、より良く理解することができる。   The details of various embodiments of the invention are set forth in the accompanying drawings and the description below. The foregoing and other objects, aspects, features, and advantages of the present invention will become more apparent and better understood by reference to the following detailed description, taken in conjunction with the accompanying drawings, in which: be able to.

図1Aは、アプリケーションに対する文字セット符号化を決定するシステムを有するゲートウェイを配備する、一例のネットワーク環境のブロック図である。FIG. 1A is a block diagram of an example network environment for deploying a gateway having a system for determining character set encoding for an application. 図1Bは、クライアントおよび/またはサーバ上に、アプリケーションに対する文字セット符号化を決定するシステムを配備する、別のネットワーク環境のブロック図である。FIG. 1B is a block diagram of another network environment that deploys a system for determining character set encoding for an application on a client and / or server. 図1Cおよび1Dは、本発明のシステムの例示的実施形態を実践するための計算装置の実施形態のブロック図である。1C and 1D are block diagrams of an embodiment of a computing device for practicing an exemplary embodiment of the system of the present invention. 図1Cおよび1Dは、本発明のシステムの例示的実施形態を実践するための計算装置の実施形態のブロック図である。1C and 1D are block diagrams of an embodiment of a computing device for practicing an exemplary embodiment of the system of the present invention. 図2は、クライアントからのリクエストを復号および分析するために使用する、アプリケーションに対する文字セット符号化を決定するためのシステムのブロック図である。FIG. 2 is a block diagram of a system for determining character set encoding for an application used to decode and analyze requests from clients. 図3は、クライアントのリクエストを復号および分析するために使用する、アプリケーションに対する文字セット符号化を決定する技法の実施形態を実践する際に行われるステップのフロー図である。FIG. 3 is a flow diagram of the steps performed in practicing an embodiment of a technique for determining character set encoding for an application used to decode and analyze client requests.

本発明の特徴および利点は、類似参照文字が全体を通して対応する要素を識別する図面と併せて理解すると、下記で説明される発明を実施するための最良の形態から、さらに明白となる。図中、類似参照番号は概して、同一である、機能的に同様である、および/または構造的に同様である要素を示す。   The features and advantages of the present invention will become more apparent from the best mode for carrying out the invention described below, when taken in conjunction with the drawings in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and / or structurally similar elements.

本発明のある例示的実施形態を下記で説明する。しかし、本発明はこれらの実施形態に限定されないが、むしろ、意向は、本願で明示的に説明されるものに対する追加および修正もまた、本発明の範囲内に含まれるということが、明示的に記述される。さらに、本願で説明される様々な実施形態の特徴は、相互排他的ではなく、様々な組み合わせおよび置換で存在し得えて、たとえそのような組み合わせまたは置換が本願で明示的に行われなくても、本発明の精神および範囲から逸脱しないことが理解される。   Certain exemplary embodiments of the invention are described below. However, the invention is not limited to these embodiments, but rather the intent is that additions and modifications to those explicitly described herein are also included within the scope of the invention. Described. Further, the features of the various embodiments described herein are not mutually exclusive and may exist in various combinations and substitutions, even if such combinations or substitutions are not explicitly made in this application. It will be understood that it does not depart from the spirit and scope of the invention.

図1Aは、アプリケーション文字セット符号化および検査システム120を配備するゲートウェイを有する、ネットワーク環境のブロック図を示す。図1Aに示されるように、一例のネットワーク環境は、複数のクライアント101a〜101n、複数のサーバ106a〜106n、および、アプライアンス、ゲートウェイアプライアンス、ゲートウェイサーバ、またはゲートウェイ装置と呼んでもよいゲートウェイ105を含む。サーバ106a〜106nは、要求されたコンテンツをクライアント101a〜101nに提供する、アプリケーション、データベース、およびその他の情報システムを管理する。クライアント101a〜101nおよびサーバ106a〜106nのそれぞれは、図1Cおよび1Dと併せて下記でさらに詳細に説明される計算装置100等の、任意の種類および形式の計算装置であってもよい。例えば、クライアント101a〜101nのうちのいずれかは、通信機器、例えば、携帯電話または携帯情報端末、または任意の種類のデスクトップコンピュータに加えて、ラップトップまたはノート型コンピュータ等の、移動型計算装置であってもよい。   FIG. 1A shows a block diagram of a network environment having a gateway deploying an application character set encoding and checking system 120. As shown in FIG. 1A, an example network environment includes a plurality of clients 101a-101n, a plurality of servers 106a-106n, and a gateway 105, which may be referred to as an appliance, gateway appliance, gateway server, or gateway device. Servers 106a-106n manage applications, databases, and other information systems that provide requested content to clients 101a-101n. Each of clients 101a-101n and servers 106a-106n may be any type and form of computing device, such as computing device 100 described in more detail below in conjunction with FIGS. 1C and 1D. For example, any of the clients 101a to 101n is a mobile computing device such as a laptop or notebook computer in addition to a communication device, for example, a mobile phone or a personal digital assistant, or any type of desktop computer. There may be.

クライアント101a〜101nのそれぞれは、ネットワーク104を介してゲートウェイ105に通信的に連結される一方で、ゲートウェイ105は、ネットワーク104’を介してサーバ106a〜106nに通信的に連結される。一実施形態では、ネットワーク104は、インターネットを備え、ネットワーク104’は、会社または企業ネットワーク等のプライベートデータ通信ネットワークを備える。ネットワーク104、104’は、公衆、プライベート、または別の方法による、任意の種類および形式のネットワークとなり得て、場合によっては、同じネットワークであってもよい。   Each of clients 101a-101n is communicatively coupled to gateway 105 via network 104, while gateway 105 is communicatively coupled to servers 106a-106n via network 104 '. In one embodiment, the network 104 comprises the Internet and the network 104 'comprises a private data communication network such as a corporate or corporate network. The networks 104, 104 'can be any type and type of network, public, private, or otherwise, and in some cases may be the same network.

図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’およびネットワークトポロジーは、本願で説明される操作をサポートすることが可能な、当業者に周知のような任意のネットワークまたはネットワークトポロジーであってもよい。   Although FIG. 1 shows the network 104 and the network 104 'between the clients 101a-101n and the servers 106a-106n, the clients 101a-101n and the servers 106a-106n may be on the same network 104 or 104'. Networks 104 and 104 'can be the same type of network or different types of networks. The networks 104, 104 'can be a local area network (LAN) such as a corporate intranet, a metropolitan area network (MAN), or a wide area network (WAN) such as the World Wide Web. The network 104, 104 ′ may be any type and / or type of network, point-to-point network, broadcast network, wide area network, local area network, telecommunication network, data communication network, computer network, ATM ( Any of an Asynchronous Transfer Mode (SONET) network, a SONET (Synchronous Optical Network) network, an SDH (Synchronous Digital Hierarchy) network, a wireless network, and a wired network may be included. The topology of the networks 104, 104 'may be a bus, star, or ring network topology. The network 104, 104 'and the network topology may be any network or network topology as known to those skilled in the art that can support the operations described herein.

図1Aに示されるように、ゲートウェイ105は、公衆データ通信ネットワーク等の第1のネットワーク104と、プライベートデータ通信ネットワーク等の第2のネットワーク104’との間に配備される。他の実施形態では、ゲートウェイ105は、第1のネットワーク104上または第2のネットワーク104’上に位置してもよい。他の実施形態では、ゲートウェイ105は、クライアント102a〜102nと同じ、または異なるネットワーク104上の任意の個別クライアント101a〜101nまたは任意の個別サーバ106a〜106nの不可欠な部分となり得る。そのようなものとして、ゲートウェイ105は、クライアント101a〜101nとサーバ106a〜106nとの間のネットワークまたはネットワーク通信経路における任意の点に位置してもよい。   As shown in FIG. 1A, the gateway 105 is deployed between a first network 104, such as a public data communication network, and a second network 104 ', such as a private data communication network. In other embodiments, the gateway 105 may be located on the first network 104 or on the second network 104 '. In other embodiments, the gateway 105 can be an integral part of any individual client 101a-101n or any individual server 106a-106n on the same or different network 104 as the clients 102a-102n. As such, gateway 105 may be located at any point in the network or network communication path between clients 101a-101n and servers 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への出力を表示してもよい。   Each of clients 101a-101n may execute, operate, or provide applications 110a-110n, generally referred to herein as applications or applications 110. Application 110 may be any type and / or type of web browser, web-based client, client / server application, thin client computing client, ActiveX control, or Java applet, etc. It can be any form of software, program, or executable instruction, or any type and / or form of executable instruction that can be executed on the clients 101a-101n. In some embodiments, applications 110a-110n may be server-based or remote-based applications that run on behalf of clients 101a-101n on servers 106a-106n. In one embodiment, the servers 106a-106n are registered with Citrix Systems, Inc. of Lauderdale, Florida. Display output to clients 101a-101n using any thin client or remote display protocol such as the manufactured Independent Computing Architecture (ICA) protocol or the Remote Desktop protocol (RDP) manufactured by Microsoft Corporation of Redmond, Washington May be.

一部の実施形態では、サーバ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等の、任意の種類のホスト型サービスまたは製品を備えてもよい。 In some embodiments, the servers 106a-106n or server farm may be running one or more applications 110, such as an application that provides thin client computing or a remote display presentation application. In one embodiment, the servers 106a-101n or server farm may be configured as an application 110, such as a Citrix Systems, Inc., such as MetaFrame or Citrix Presentation Server . Run any part of Citrix Access Suite by Microsoft and / or Microsoft® Windows®® Terminal Services manufactured by Microsoft Corporation. In one embodiment, application 110 is a Citrix Systems, Inc., Fort Lauderdale, Florida. Development ICA client. In other embodiments, the application 110 includes a Remote Desktop (RDP) client developed by Microsoft Corporation of Redmond, Washington. In other embodiments, servers 106a-106n may stream application 110 to clients 101a-101n. Servers 106a-106n may also run application 230, which may be an application server that provides email services, such as Microsoft Exchange manufactured by Microsoft Corporation of Redmond, Washington, a web or Internet server, or desktop sharing. It may be a server or a joint server. In some embodiments, any of the applications 110 is a Citrix Online Division, Inc. of Santa Barbara, California. Provided by GoToMeeting , WebEx, Inc. of Santa Clara, California. Any type of hosted service or product may be provided, such as WebEx provided, or Microsoft Office Live Meeting provided by Microsoft Corporation of Redmond, Washington.

一実施形態に従って、ゲートウェイ105は、アプリケーション文字セット符号化および検査システム120を含む。下記でさらに詳しく説明されるように、このシステム120は、符号化コンテンツを備えるクライアント101a〜101nからのリクエストを受信する。例えば、クライアント101は、url符号化部分等の符号化コンテンツを有する、HTTPフォームまたはリクエストを提出してもよい。ある場合において、符号化スキームの種類は、リクエストから分からない場合がある。システム120は、リクエストを生成する、またはそれと関連するアプリケーションを決定する。例えば、システム120は、リクエストから、アプリケーションと関連しているインターネットプロトコルアドレスおよび/またはポートを識別してもよい。決定されたアプリケーションに基づいて、システム120は、アプリケーションと関連する、またはそれに使用される文字符号化スキームを識別する。例えば、システム120は、データベース、構成情報、または方針エンジンから符号化スキームを検索してもよい。次いで、システム120は、識別された文字符号化スキームを使用して、リクエストの一部を復号し、任意の規則または方針をリクエストに適用する。一部の実施形態では、システム120は、各アプリケーションと関連する符号化スキームに従ってそれが復号することが可能な、符号化アプリケーションネットワークトラフィックに方針を適用する、アプリケーションファイアウォールまたはセキュリティ制御システムとして動作する。   In accordance with one embodiment, the gateway 105 includes an application character set encoding and checking system 120. As described in more detail below, the system 120 receives requests from clients 101a-101n that comprise encoded content. For example, client 101 may submit an HTTP form or request with encoded content, such as a url encoded portion. In some cases, the type of encoding scheme may not be known from the request. The system 120 determines the application that generates or is associated with the request. For example, the system 120 may identify an internet protocol address and / or port associated with the application from the request. Based on the determined application, the system 120 identifies a character encoding scheme associated with or used for the application. For example, the system 120 may retrieve an encoding scheme from a database, configuration information, or policy engine. The system 120 then uses the identified character encoding scheme to decode a portion of the request and apply any rules or policies to the request. In some embodiments, system 120 operates as an application firewall or security control system that applies policies to encoded application network traffic that it can decode according to the encoding scheme associated with each application.

概してゲートウェイ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つ以上のネットワーク通信、またはその一部をキャッシュに格納するためのキャッシュを含んでもよい。   Although generally described as gateway 105, a gateway may be any type and form of computing device 100 as described below, such as an appliance, network device, or server. In some embodiments, the gateway 105 establishes or provides a virtual private network connection between the first network 104 and the second network 104 '. In one embodiment, the gateway 105 establishes a Secure Socket Layer (SSL) VPN connection between the networks 104, 104 '. In another embodiment, the gateway 105 establishes a first transport layer connection, such as a TCP connection between the clients 101a-101n and the gateway 105, and a second between the gateway 105 and the servers 106a-106n. Establish a transport layer connection. In another embodiment, the gateway 105 also establishes or provides an encrypted session between the clients 101a-101n and the servers 106a-106n. In one embodiment, the gateway 105 also uses any pooling and / or multiplexed connection techniques at the transport or application layer to accelerate the delivery of applications to the clients 101a-101n over the transport layer connection. May be. In yet another embodiment, gateway 105 compresses one or more network communications, or portions thereof, between clients 101a-101n and servers 106a-106n. In other embodiments, the gateway 105 may also include a cache for storing any one or more network communications between the clients 101a-101n and the servers 106a-106n, or a portion thereof in the cache.

アプリケーション文字セット符号化/検査システム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の任意の組み合わせにおいて実行してもよい。   Although the application character set encoding / checking system 120 is generally shown deployed at the gateway 105 as in FIG. 1A, the system 120 may also be deployed at any computing device 100. Referring now to FIG. 1B for example, the application character set encoding / inspection system 120 may be deployed in any one or more of clients 101a-101n, such as client 101a. In one embodiment, in response to a client 101 request to access the network 104 via the gateway 105, the gateway may provide the system 120 and install on the client 101. In some embodiments, the system 120 is automatically installed by the client 101 upon receipt from the gateway 105. In another embodiment, application character set encoding / checking system 120 may be deployed on any server 106a-106n, such as server 106b. In yet another embodiment, the system 120 may have any one or more portions that are distributed and execute on the client 101, the gateway 105, and / or the server 106. In one embodiment, multiple instances of system 120 may run on any combination of client 101, gateway 105, and / or server 106.

図1Cおよび1Dは、計算装置100のブロック図を示し、一部の実施形態では、本願で説明されるアプリケーション文字セット符号化/検査システム120の実施形態を実践するのに有用な、ネットワーク装置、ネットワークアプライアンス、またはアプライアンス100とも呼ばれる。図1Cおよび1Dに示されるように、各計算装置100は、中央処理装置(CPU)102、およびメインメモリユニット122を含む。図1Cに示されるように、典型的な計算装置100は、視覚的表示装置124、キーボード126、および/またはマウス等のポインティングデバイス127を含む。各計算装置100はまた、1つ以上の入出力装置130a〜130b(概して、参照数字130を使用して参照される)等の追加光学要素、および中央処理装置102と通信しているキャッシュメモリ140を含んでもよい。   1C and 1D show block diagrams of computing device 100, and in some embodiments, network devices useful for practicing embodiments of application character set encoding / checking system 120 described herein. Also called a network appliance or appliance 100. As shown in FIGS. 1C and 1D, each computing device 100 includes a central processing unit (CPU) 102 and a main memory unit 122. As shown in FIG. 1C, the exemplary computing device 100 includes a visual display device 124, a keyboard 126, and / or a pointing device 127 such as a mouse. Each computing device 100 also includes additional optical elements, such as one or more input / output devices 130a-130b (generally referred to using reference numeral 130), and a cache memory 140 in communication with the central processing unit 102. May be included.

中央処理装置102は、メインメモリユニット122から取り出される命令に応答して処理する、任意の論理回路である。多くの実施形態において、中央処理装置は、カリフォルニア州、マウンテンビューのIntel Corporation製造のもの、イリノイ州、シャウムバーグのMotorola Corporation製造のもの、カリフォルニア州、サンタクララのTransmeta Corporation製造のもの、ニューヨーク州、ホワイトプレインズのInternational Business Machines製造のもの、カリフォルニア州、サニーベールのAdvanced Micro Devices製造のもの等の、マイクロプロセッサユニットによって提供される。計算装置100は、これらのプロセッサのいずれか、または本願で説明されるように動作することが可能なその他任意のプロセッサに基づいてもよい。   The central processing unit 102 is an arbitrary logic circuit that processes in response to an instruction fetched from the main memory unit 122. In many embodiments, the central processing unit is manufactured by Intel Corporation, Mountain View, California, manufactured by Motorola Corporation, Schaumburg, Illinois, manufactured by Transmeta Corporation, Santa Clara, California, White, New York. Provided by a microprocessor unit, such as that manufactured by Plains' International Business Machines, or manufactured by Advanced Micro Devices, Sunnyvale, California. The computing device 100 may be based on any of these processors, or any other processor capable of operating as described herein.

メインメモリユニット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であってもよい。   The main memory unit 122 includes a static random access memory (SRAM), a burst SRAM or a synchronous burst SRAM (BSRAM), a dynamic random access memory (DRAM), a fast page mode DRAM (FPM DRAM), an end DRAM. (EDO RAM), Extended Data Output DRAM (EDO DRAM), Burst Extended Data Output DRAM (BEDO DRAM), Enhanced DRAM (EDRAM), Synchronous DRAM (SDRAM), JEDEC SRAM, PC1 Storing data such as 00 SDRAM, Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), Direct Rambus DRAM (DRDRAM), or Ferroelectric RAM (FRAM) There may be one or more memory chips that can be directly accessed by the microprocessor 102. Main memory 122 may be based on any of the memory chips described above, or any other available memory chip capable of operating as described herein. In the embodiment shown in FIG. 1C, processor 102 communicates with main memory 122 via system bus 150 (described in more detail below). FIG. 1C shows an embodiment of the computing device 100 in which the processor communicates directly with the main memory 122 via the memory port 103. For example, in FIG. 1D, the main memory 122 may be a DRDRAM.

図1Dは、メインプロセッサ102が、時にはバックサイドバスと呼ばれる2次バスを介して、キャッシュメモリ140と直接通信する、実施形態を示す。他の実施形態では、メインプロセッサ102は、システムバス150を使用して、キャッシュメモリ140と通信する。キャッシュメモリ140は典型的に、メインメモリ122よりも応答時間が速く、典型的に、SRAM、BSRAM、またはEDRAMによって提供される。   FIG. 1D shows an embodiment in which the main processor 102 communicates directly with the cache memory 140 via a secondary bus, sometimes referred to as a backside bus. In other embodiments, the main processor 102 communicates with the cache memory 140 using the system bus 150. Cache memory 140 typically has a faster response time than main memory 122 and is typically provided by SRAM, BSRAM, or 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と通信する。   In the embodiment shown in FIG. 1C, processor 102 communicates with various input / output devices 130 via local system bus 150. Various buses may be used to connect the central processing unit 102 to any of the input / output devices 130, such as a VESA VL bus, an ISA bus, an EISA bus, a MicroChannel Architecture (MCA) bus, a PCI bus, Includes PCI-X bus, PCI-Express bus, or NuBus. For embodiments in which the input / output device is a video display 124, the processor 102 may use an Advanced Graphics Port (AGP) to communicate with the display 124. FIG. 1D illustrates an embodiment of a computer 100 in which the main processor 102 communicates directly with the input / output device 130b via HyperTransport, Rapid I / O, or InfiniBand. FIG. 1D also illustrates a mixed local bus and direct communication embodiment, where the processor 102 communicates with the input / output device 130a using the local interconnect bus while communicating directly with the input / output device 130b.

計算装置100は、3.5インチ、5.25インチ、またはZIPディスク等のフロッピー(登録商標)ディスクを受入するためのフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ、CD−R/RWドライブ、DVD−ROMドライブ、様々なフォーマットのテープドライブ、USB装置、ハードドライブ、または、アプリケーション文字セット符号化/検査システム120に関する任意のソフトウェア120またはその一部等のソフトウェアおよびプログラムをインストールするのに適したその他任意の装置等の、任意の適切な取付装置116をサポートしてもよい。計算装置100はさらに、オペレーティングシステム(OS)およびその他の関連ソフトウェアを格納するため、およびアプリケーション文字セット符号化/検査システム120に関する任意のプログラム等のアプリケーションソフトウェアプログラムを格納するための、1つ以上のハードディスクドライブまたは独立ディスク冗長アレイ等の記憶装置128を備えてもよい。任意で、取付装置116のうちのいずれかは、記憶装置128として使用することも可能である。   The computing device 100 includes a floppy (registered trademark) disk drive, a CD-ROM drive, and a CD-R / RW drive for receiving a floppy (registered trademark) disk such as a 3.5 inch, 5.25 inch, or ZIP disk. Suitable for installing software and programs such as, any DVD-ROM drive, various format tape drives, USB devices, hard drives, or any software 120 or part thereof for application character set encoding / inspection system 120 Any suitable attachment device 116 may be supported, such as any other device. The computing device 100 further includes one or more application software programs for storing an operating system (OS) and other related software, and for storing application software programs, such as any programs related to the application character set encoding / checking system 120. A storage device 128 such as a hard disk drive or an independent disk redundant array may be provided. Optionally, any of the attachment devices 116 can be used as the storage device 128.

さらに、計算装置100は、ネットワークインターフェース118を含んで、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、または、標準電話線、LANまたはWANリンク(例えば、802.11、T1、T3、56kb、X.25)、ブロードバンド接続(例えば、ISDN、Frame Relay、ATM)、無線接続、または上記のいずれかまたは全ての何らかの組み合わせを含むが、それらに限定されない種々の接続を通したインターネットに、インターフェース接続してもよい。ネットワークインターフェース118は、内蔵型ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または、通信および本願で説明される操作の実施が可能な任意の種類のネットワークに計算装置100をインターフェース接続するのに適した任意のその他装置を備えてもよい。   Further, the computing device 100 includes a network interface 118 and includes a local area network (LAN), a wide area network (WAN), or a standard telephone line, LAN or WAN link (eg, 802.11, T1, T3, 56 kb, X.25), broadband connection (eg, ISDN, Frame Relay, ATM), wireless connection, or Internet connection through various connections including, but not limited to, any combination of any or all of the above May be. The network interface 118 may be a built-in network adapter, network interface card, PCMCIA network card, card bus network adapter, wireless network adapter, USB network adapter, modem, or any capable of performing communications and operations described herein. Any other device suitable for interfacing the computing device 100 to a type of network may be provided.

多種多様の入出力装置130a〜130nは、計算装置100に存在してもよい。入力装置は、キーボード、マウス、トラックパッド、トラックボール、マイク、およびドローイングタブレットを含む。出力装置は、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および昇華型プリンタを含む。入出力装置は、図1Cに示されるように、入出力制御装置123によって制御されてもよい。入出力制御装置は、キーボード126、およびポインティングデバイス127、例えば、マウスまたは光学ペン等の、1つ以上の入出力装置を制御してもよい。さらに、入出力装置はまた、計算装置100に対する格納128および/または取付媒体116を提供してもよい。なおも他の実施形態では、計算装置100は、USB接続を提供して、カリフォルニア州、アラミトスのTwintech Industry,Inc.製造のUSB Flash Drive系の装置等の、手持ち式USB記憶装置を受入してもよい。   A wide variety of input / output devices 130 a to 130 n may exist in the computing device 100. Input devices include keyboards, mice, trackpads, trackballs, microphones, and drawing tablets. Output devices include video displays, speakers, inkjet printers, laser printers, and sublimation printers. The input / output device may be controlled by the input / output control device 123 as shown in FIG. 1C. The input / output control device may control one or more input / output devices such as a keyboard 126 and a pointing device 127, eg, a mouse or an optical pen. Further, the input / output device may also provide storage 128 and / or mounting media 116 for the computing device 100. In still other embodiments, the computing device 100 provides a USB connection and is provided by Twintech Industry, Inc., Alamitos, California. A handheld USB storage device, such as a manufactured USB Flash Drive device, may be received.

さらなる実施形態では、入出力装置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であってもよい。   In a further embodiment, the input / output device 130 includes a system bus 150, a USB bus, an Apple Desktop bus, an RS-232 serial connection, a SCSI bus, a FireWire bus, a FireWire 800 bus, an Ethernet (registered trademark) bus, an AppleTalk bus, a Gigabit. Between Ethernet (registered trademark) bus, Asynchronous Transfer mode bus, HIPPI bus, Super HIPPI bus, Serial Plus bus, SCI / LAMP bus, Fiber Channel bus, or Serial Attached small computer in-bridge communication system It may be.

図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(登録商標)オペレーティングシステムを含む。   A computing device 100 of the type shown in FIGS. 1C and 1D typically operates under the control of an operating system that controls the scheduling of access to tasks and system resources. The computing device 100 may be one of the versions of the Microsoft® Windows® operating system, a different release of the Unix® and Linux operating systems, any version of MacOS® for Macintosh computers, On any embedded operating system, any network operating system, any real-time operating system, any open source operating system, any dedicated operating system, any operating system for mobile computing or network devices, or computing devices Any other operating system that is capable of performing and performing the operations described herein , It is possible to execute any operating system. 2. Typical operating systems are WINDOWS®, all manufactured by Microsoft Corporation, Redmond, Washington, among others. x, WINDOWS (registered trademark) 95, WINDOWS (registered trademark) 98, WINDOWS (registered trademark) 2000, WINDOWS (registered trademark) NT 3.51, WINDOWS (registered trademark) NT 4.0, WINDOWS (registered trademark) CE, And WINDOWS XP, MacOS manufactured by Apple Computer, Cupertino, California, OS / 2 manufactured by International Business Machines, Armonk, New York, and Caldera Corp., Salt Lake City, Utah. It includes the freely available operating system Linux distributed, or any type and / or form of the Unix operating system.

他の実施形態では、計算装置100には、装置と整合する、異なるプロセッサ、オペレーティングシステム、および入力装置があってもよい。計算装置100は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノート型コンピュータ、サーバ、手持ちサイズのコンピュータ、携帯電話またはその他のポータブル電気通信装置、メディア再生装置、組み合わせ装置、特設、特殊、カスタム、または専用装置、または、通信が可能で、かつ本願で説明される本発明の操作を行うのに十分なプロセッサ力およびメモリ容量を有する、その他任意の種類および/または形式の計算または電気通信装置となり得る。   In other embodiments, computing device 100 may have different processors, operating systems, and input devices that are consistent with the device. The computing device 100 can be any workstation, desktop computer, laptop or notebook computer, server, handheld computer, mobile phone or other portable telecommunications device, media playback device, combination device, special, special, custom, Or a dedicated device or any other type and / or form of computing or telecommunications device capable of communicating and having sufficient processor power and memory capacity to perform the operations of the invention described herein. obtain.

ここで図2を参照すると、アプリケーション文字セット符号化/検査システム120の実施形態が示される。システム120は、ネットワーク装置、アプライアンス、ゲートウェイ、クライアント、またはサーバ装置等の任意の種類および形式の計算装置100において、常駐および/または動作することが可能である。概要すると、システム120は、受信機215、送信機220、文字セットエンジン225、および規則または方針エンジン250を含む。受信機215および送信機220は、ネットワーク104を介して、またはネットワーク104および104’間で通信を送受信するために使用してもよい。文字セットエンジン225は、リクエストなどのネットワーク通信を処理し、ネットワーク通信と関連するアプリケーションに使用される符号化の種類および/または形式を決定するために使用される。規則/方針エンジン250は、1つ以上の規則または方針を、システム120によって処理されるネットワーク通信に適用する。例えば、文字セットエンジン225によってアプリケーションと関連すると決定される符号化の種類に基づいて、方針エンジン250は、送信機220から伝送されているネットワーク通信を制御、制限、または阻止してもよい。一実施形態では、方針エンジン250は、システム120が、ファイアウォールまたはセキュリティ制御装置として動作または機能することを可能にする。加えて、方針エンジン250は、方針を提供して、使用される符号化、および復号されたコンテンツに対して行う措置を決定して制御してもよい。   Referring now to FIG. 2, an embodiment of application character set encoding / checking system 120 is shown. The system 120 can reside and / or operate on any type and type of computing device 100, such as a network device, appliance, gateway, client, or server device. In overview, the system 120 includes a receiver 215, a transmitter 220, a character set engine 225, and a rule or policy engine 250. Receiver 215 and transmitter 220 may be used to send and receive communications over network 104 or between networks 104 and 104 '. Character set engine 225 is used to process network communications, such as requests, and determine the type and / or format of encoding used for applications associated with network communications. The rules / policy engine 250 applies one or more rules or policies to network communications processed by the system 120. For example, based on the type of encoding determined by the character set engine 225 to be associated with the application, the policy engine 250 may control, limit, or block network communications being transmitted from the transmitter 220. In one embodiment, policy engine 250 enables system 120 to operate or function as a firewall or security controller. In addition, the policy engine 250 may provide policies to determine and control the encoding used and the actions taken on the decoded content.

受信機215は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備え、ネットワーク104への装置100の接続の媒体を介して、信号を受信してもよい。同様に、送信機220は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備え、ネットワーク104への装置100の接続の媒体を介して、信号を伝送してもよい。ネットワーク104およびネットワーク接続は、計算装置100a〜100nのいずれかの間に、電気配線またはケーブル、光ファイバ、電磁放射等の任意の種類の伝送媒体を含むか、または、本願で説明される操作をサポートすることが可能なその他任意の形式の伝送媒体を有してもよい。一実施形態では、受信機215は、第1の種類の媒体を介して1つ以上の信号を受信する。一部の実施形態では、送信機220は、第2の種類の媒体を介して1つ以上の信号を伝送する。他の実施形態では、受信機215および送信機220は、同じ種類の媒体上で信号を受信および伝送する。別の実施形態では、送信機は、受信機215および送信機220を含んで、媒体を介して信号を受信および伝送する。   Receiver 215 may comprise software, hardware, or any combination of software and hardware and receive signals via the medium of connection of device 100 to network 104. Similarly, transmitter 220 may comprise software, hardware, or any combination of software and hardware, and transmit signals via the medium of connection of device 100 to network 104. The network 104 and the network connection include any type of transmission medium such as electrical wiring or cable, optical fiber, electromagnetic radiation, etc. between any of the computing devices 100a-100n, or perform the operations described herein. Any other form of transmission medium that can be supported may be included. In one embodiment, the receiver 215 receives one or more signals via a first type of medium. In some embodiments, the transmitter 220 transmits one or more signals via a second type of medium. In other embodiments, receiver 215 and transmitter 220 receive and transmit signals on the same type of media. In another embodiment, the transmitter includes a receiver 215 and a transmitter 220 to receive and transmit signals over the medium.

装置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および/または移動体インターネットプロトコル等の、任意の種類および携帯の無線プロトコルを備える。   The device 100 and / or system 120 includes a network stack 210. In some embodiments, receiver 215 and / or transmitter 220 may include a network stack 210. In other embodiments, receiver 215 and / or transmitter 220 may include multiple network stacks. In another embodiment, receiver 215 and / or transmitter 220 interface, integrate, or communicate with one or more network stacks 210. Network stack 210 may comprise any type and form of software, hardware, or any combination thereof to provide connectivity and communication with the network. In one embodiment, network stack 210 comprises software execution for network protocols. The network stack 210 may comprise one or more network layers, such as any network layer of the Open Systems Interconnection (OSI) communication model, as those skilled in the art will recognize and appreciate. As such, the network stack 210 includes 1) physical link layer, 2) data link layer, 3) network layer, 4) transport layer, 5) session layer, 6) presentation layer, and 7) application layer. Any type and form of protocol may be provided for any of the layers of the OSI model. In one embodiment, the network stack 210 may comprise a transport control protocol (TCP) over an Internet Protocol (IP) network layer protocol, generally referred to as TCP / IP. In some embodiments, the TCP / IP protocol may comprise any of a group of IEEE wide area network (WAN) or local network (LAN) protocols, such as the protocol covered by IEEE 802.3. , May be executed on the Ethernet® protocol. In some embodiments, the network stack 210 comprises any type and portable wireless protocol, such as IEEE 802.11 and / or mobile internet protocol.

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によって使用されてもよい。   In view of embodiments of the TCP / IP-based network 104, in one embodiment, Messaging Application Programming Interface (MAPI) (email), File Transfer Protocol (FTP), HyperText Transfer Protocol (HTTPIn) (CIFS) protocol (file transfer), Independent Competing Architecture (ICA) protocol, Remote Desktop Protocol (RDP), Wireless Application Protocol (WAP), Mobile IP protocol, and Voice Ove Including IP (VoIP) protocol, may use any TCP / IP based protocol. In another embodiment, the network stack 210 may use any type and form of transport control protocol such as a modified transport control protocol, eg, Transaction TCP (T / TCP), TCP with selection confirmation (TCP-SACK), A congestion prediction protocol such as TCP (TCP-LW) with a large window and a TCP-Vegas protocol, and a TCP spoofing protocol are provided. In other embodiments, any type and form of User Datagram Protocol (UDP), such as UDP over IP, may be used by the network stack 210, such as for voice communication or real-time data communication.

さらに、ネットワークスタック210は、TCPドライバまたはネットワーク層ドライバ等の1つ以上の層を支持する1つ以上のネットワークドライバを含んでもよい。ネットワークドライバは、計算装置100のオペレーティングシステムの一部、または計算装置100の任意のネットワークインターフェースカードまたはその他のネットワークアクセス構成要素の一部として、含まれてもよい。一部の実施形態では、ネットワークスタック210のネットワークドライバのうちのいずれかをカスタマイズ、修正、または適合させて、本願で説明される本発明の技法のうちのいずれかを支持するネットワークスタック210のカスタムまたは修正部分を提供してもよい。他の実施形態では、システム120は、装置100のオペレーティングシステムによってインストールまたは提供されるネットワークスタック210により動作する、またはそれと連動して機能するように設計および構成される。   Further, the network stack 210 may include one or more network drivers that support one or more layers, such as TCP drivers or network layer drivers. The network driver may be included as part of the operating system of computing device 100, or as part of any network interface card or other network access component of computing device 100. In some embodiments, any of the network drivers in the network stack 210 may be customized, modified, or adapted to support any of the inventive techniques described herein to support a custom of the network stack 210. Or a correction part may be provided. In other embodiments, the system 120 is designed and configured to operate or function in conjunction with the network stack 210 installed or provided by the operating system of the device 100.

なおも図2を参照すると、文字セットエンジン225は、文字セット符号化を決定するための任意の種類および形式の論理、機能、および操作を備えて、アプリケーションと関連する。文字セットエンジン225、およびその任意の部分は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備えてもよい。概要すると、文字セットエンジン225は、パーサ230、アプリケーション決定機構235、およびアナライザ240を備える。一部の実施形態では、文字セットエンジン225は、図1Aおよび1Bに図示されるようなアプリケーション110a〜110b等のアプリケーションへの、またはそこからのネットワーク通信を受信または傍受する。例えば、クライアント100aにおけるアプリケーション110aは、ネットワーク104を介して、リクエストをサーバ110dに伝達してもよい。一実施形態では、文字セットエンジン225は、受信機215、送信機220、および/またはネットワークスタック220とインターフェース接続されるか、または通信している。   Still referring to FIG. 2, the character set engine 225 is associated with an application with any kind and form of logic, functionality, and operation for determining character set encoding. Character set engine 225, and any portion thereof, may comprise software, hardware, or any combination of software and hardware. In summary, the character set engine 225 includes a parser 230, an application determination mechanism 235, and an analyzer 240. In some embodiments, the character set engine 225 receives or intercepts network communications to and from applications such as applications 110a-110b as illustrated in FIGS. 1A and 1B. For example, the application 110a in the client 100a may transmit the request to the server 110d via the network 104. In one embodiment, character set engine 225 is interfaced with or in communication with receiver 215, transmitter 220, and / or network stack 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フォーム提出等のリクエストの任意の部分を識別し、解析または抽出してもよい。   In some embodiments, the character set engine parser 230 comprises logic, functions, or operations that parse any network communications received or intercepted by the device 100. In one embodiment, parser 230 identifies, parses, extracts, and / or interprets any part of the network communication. In one embodiment, the parser 230 analyzes any application layer protocol communication such as HyperText Transfer Protocol (HTTP), Extensible Markup Language (XML) protocol, or Simple Mail Transfer protocol (SMTP). For example, parser 230 may identify and parse or extract one or more fields submitted via a form, such as an HTTP form submission, from client 100a to server 100d. In another example, parser 230 may identify and parse or extract any part of a request, such as any attribute, cookie, name / value pair, URL, data string, object, or HTTP form submission. .

一実施形態では、パーサ230は、リクエストにおいて、属性、ヘッダ、フィールド、または、テキスト、画像、混合データ型等のコンテンツの種類を識別するデータ要素を識別する。例えば、HTTPプロトコルの実施形態では、メッセージの本文における媒体型および亜類型を特定するため、およびそのようなデータの自然表現を特定するために、コンテンツ型ヘッダが使用される。一部の実施形態では、パーサ230は、リクエストの一部が符号化されていることを識別する。例えば、HTTPプロトコルの実施形態では、コンテンツ型ヘッダは、URLリクエストの一部が符号化されていることを識別してもよい。別の実施形態では、パーサ230は、リクエストにおいて、リクエストのコンテンツの一部を符号化または復号するために使用される文字セットを識別する属性を識別する。   In one embodiment, the parser 230 identifies data elements that identify attributes, headers, fields, or content types such as text, images, mixed data types in the request. For example, in an HTTP protocol embodiment, a content type header is used to identify the media type and subtype in the body of the message and to identify the natural representation of such data. In some embodiments, parser 230 identifies that a portion of the request is encoded. For example, in an HTTP protocol embodiment, the content type header may identify that a portion of the URL request is encoded. In another embodiment, the parser 230 identifies an attribute in the request that identifies a character set that is used to encode or decode a portion of the content of the request.

一実施形態では、パーサ230は、TCPまたはUDPパケット等のトランスポート層プロトコルパケットの任意の一部を解析する。一部の実施形態では、パーサ230は、パケット等のトランスポート層プロトコルパケットから、1)ソースインターネットプロトコルアドレス、2)宛先インターネットプロトコルアドレス、3)ソースポート、4)宛先ポート、5)プロトコルを識別するパケットのヘッダおよび/またはペイロードの任意のデータ、6)パケットヘッダの任意のフィールドのうちのいずれかを識別し、解析する。別の実施形態では、パーサ230は、解析されたネットワーク通信またはネットワーク通信の識別された要素のうちのいずれかに対する、オブジェクトモデル表示、またはオブジェクトベースのアプリケーションプログラミングインターフェースを作成または提供する。   In one embodiment, parser 230 parses any portion of a transport layer protocol packet, such as a TCP or UDP packet. In some embodiments, the parser 230 identifies 1) a source internet protocol address, 2) a destination internet protocol address, 3) a source port, 4) a destination port, 5) a protocol from a transport layer protocol packet such as a packet. Identify and analyze any of the header and / or payload data of the packet to be performed, 6) any field of the packet header. In another embodiment, the parser 230 creates or provides an object model display, or object-based application programming interface, for any of the analyzed network communications or identified elements of the network communications.

アプリケーション決定機構235は、メッセージまたはリクエスト等のネットワーク通信と関連するアプリケーションを決定する任意の論理、機能、および/または操作を備える。一実施形態では、アプリケーション決定機構235は、パーサ230と通信しているか、またはインターフェース接続され、ネットワーク通信から1つ以上の解析された情報を取得する。一部の実施形態では、アプリケーション決定機構235は、リクエストからの任意の情報、またはリクエスト、リクエストと関連するアプリケーションの種類、名前または識別を表す任意の情報を、リクエストから決定する。一実施形態では、アプリケーション決定機構235は、アプリケーションおよび/またはリクエストに対する符号化の種類を識別する。符号化情報は、リクエストを復号、検査、分析、または処理するために使用してもよい。   Application determination mechanism 235 comprises any logic, function, and / or operation that determines an application associated with a network communication, such as a message or request. In one embodiment, application determination mechanism 235 is in communication with or interfaced with parser 230 to obtain one or more parsed information from network communications. In some embodiments, the application determination mechanism 235 determines any information from the request or any information that represents the request, the type, name, or identification of the application associated with the request. In one embodiment, the application determination mechanism 235 identifies the type of encoding for the application and / or request. The encoded information may be used to decode, inspect, analyze, or process the request.

一部の実施形態では、アプリケーション決定機構235は、アプリケーションの名前、種類、または識別子を、ソースインターネットプロトコルアドレスおよび/またはポート、または宛先インターネットプロトコルアドレス、および/または宛先ポート等のネットワーク通信の1つ以上のデータ要素と関連付けるように構成される。例えば、特定のクライアントからのネットワーク通信は、アプリケーションと関連してもよい。別の例では、システム120は、インターネットプロトコル範囲内で、またはポートまたはポート範囲を使用して、1つ以上のサーバへのネットワーク通信を関連付けてもよい。他の実施形態では、アプリケーション決定機構235は、符号化スキームの名前、種類、または識別子、文字符号化セット、または符号化機構を、パーサ230によって提供される任意の解析されたフィールド等のネットワーク通信の1つ以上のデータ要素と関連付けるように構成される。さらに別の実施形態では、アプリケーション決定機構235は、ネットワークパケットのペイロードによって運ばれる情報等により、ネットワーク通信の解析を介して、アプリケーションおよび/または符号化スキームの種類、名前、または識別を決定する。   In some embodiments, the application determination mechanism 235 may provide the application name, type, or identifier to one of the network communications, such as a source Internet protocol address and / or port, or a destination Internet protocol address, and / or a destination port. It is configured to be associated with the above data elements. For example, network communication from a particular client may be associated with an application. In another example, the system 120 may associate network communications to one or more servers within the Internet protocol range or using ports or port ranges. In other embodiments, the application determination mechanism 235 may provide the name, type, or identifier of the encoding scheme, character encoding set, or encoding mechanism, network communication such as any parsed field provided by the parser 230. Are configured to be associated with one or more data elements. In yet another embodiment, the application determination mechanism 235 determines the type, name, or identification of the application and / or encoding scheme via analysis of the network communication, such as by information carried by the payload of the network packet.

一部の実施形態では、アプリケーション決定機構235は、アプリケーションおよび/または符号化スキームへのネットワーク通信またはその任意の一部を格納するために、データベース、ファイル、オブジェクト、データ構造、またはその他の情報記憶媒体を使用する。例えば、アプリケーションは、1つ以上のインターネットプロトコルアドレスおよび/またはポートにマップされてもよい。別の例では、アプリケーション決定機構235は、任意の種類および形式の検索テーブルからのネットワーク通信において識別される1つ以上のデータ要素と関連する、またはそれに基づく、アプリケーションを検索してもよい。一実施形態では、アプリケーション決定機構235は、コマンドラインインターフェースまたはグラフィカルユーザインターフェース等の任意の種類および形式のインターフェースを介して、1つ以上のユーザによって構成可能である。別の実施形態では、アプリケーション決定機構235は、別のプログラム、スクリプト、アプリケーション、またはシステムによって、アプリケーションプログラミングインターフェースを介して構成される。   In some embodiments, the application determination mechanism 235 may store a database, file, object, data structure, or other information store to store network communications to the application and / or encoding scheme or any portion thereof. Use media. For example, an application may be mapped to one or more internet protocol addresses and / or ports. In another example, the application determination mechanism 235 may search for applications that are associated with or based on one or more data elements identified in a network communication from any type and type of search table. In one embodiment, the application determination mechanism 235 can be configured by one or more users via any type and form of interface, such as a command line interface or a graphical user interface. In another embodiment, application determination mechanism 235 is configured via an application programming interface by another program, script, application, or system.

リクエスト等のネットワーク通信と関連するアプリケーションを決定すると、システム120は、ネットワーク通信の任意の符号化部分を復号するために使用される符号化の種類を決定、識別、または取得する。一実施形態では、アプリケーション決定機構235および/またはアナライザ240等のシステム120は、ネットワーク通信自体の任意の部分またはデータ要素から、符号化の種類を識別する。例えば、システム120は、ネットワークパケットのペイロードにおけるデータ等の、ネットワーク通信の任意の解析された要素から、符号化の種類を識別してもよい。別の実施形態では、システム120は、アプリケーションプログラミングインターフェース等を介して、クエリまたは検索から、テーブル、データベース、ファイル、オブジェクト、データ構成、またはそのような情報を有するその他の記憶媒体または構成機構へと、アプリケーションに対する符号化の種類を識別または取得する。   Upon determining an application associated with the network communication, such as a request, the system 120 determines, identifies, or obtains the type of encoding used to decode any encoded portion of the network communication. In one embodiment, system 120 such as application determination mechanism 235 and / or analyzer 240 identifies the type of encoding from any part or data element of the network communication itself. For example, the system 120 may identify the type of encoding from any analyzed element of network communication, such as data in the payload of a network packet. In another embodiment, the system 120 may be from a query or search, such as via an application programming interface, to a table, database, file, object, data structure, or other storage medium or configuration mechanism having such information. Identify or obtain the type of encoding for the application.

さらに別の実施形態では、システム120は、規則/方針エンジン250から、アプリケーションに対する符号化スキームを識別または取得する。例えば、アプリケーション決定機構235および/またはアナライザ240は、方針エンジン250にクエリを行い、所与のアプリケーションに対する符号化スキームを取得してもよい。一部の実施形態では、アプリケーションには、時間的情報、クライアント情報、ユーザ情報、デバイス情報、ネットワークの状態、任意のシステムの状態、履歴情報、および統計情報に基づく、それと関連する複数の符号化の種類があってもよい。一実施形態では、システム120は、上記の種類の情報のうちの1つ以上に基づいて、アプリケーションに対する符号化の種類を、規則/方針エンジン250から要求する。例えば、第1のアプリケーションは、週の第1日または時間に第1の符号化の種類を、週の第2日または時間に第2の符号化の種類を使用してもよく、または使用することを許可されてもよい。一例では、システム120は、識別されたアプリケーションおよび時間的情報により、方針エンジン250にクエリを行い、アプリケーションのネットワーク通信を処理するために使用される符号化の種類を決定してもよい。   In yet another embodiment, the system 120 identifies or obtains an encoding scheme for the application from the rules / policy engine 250. For example, application determination mechanism 235 and / or analyzer 240 may query policy engine 250 to obtain an encoding scheme for a given application. In some embodiments, the application includes a plurality of encodings associated therewith based on temporal information, client information, user information, device information, network status, arbitrary system status, historical information, and statistical information. There may be a kind of. In one embodiment, the system 120 requests an encoding type for the application from the rules / policy engine 250 based on one or more of the above types of information. For example, the first application may or uses the first encoding type on the first day or time of the week and the second encoding type on the second day or time of the week. You may be allowed to. In one example, the system 120 may query the policy engine 250 with the identified application and temporal information to determine the type of encoding used to process the network communication of the application.

アナライザ240は、ネットワーク通信またはその任意の一部を分析する任意の論理、機能、および/または操作を備える。一実施形態では、アナライザ240は、文字セットにおいて符号化された、リクエスト等のネットワーク通信の一部を復号する。一部の実施形態では、アナライザ240は、パーサ230またはアプリケーション決定機構235等の文字セットエンジン225のその他任意の部分から、アプリケーションに使用する符号化スキームを取得してもよい。他の実施形態では、アナライザ240は、規則/方針エンジン250から、アプリケーションに対する符号化スキームを取得する。一実施形態では、パーサ230またはアプリケーション決定機構235は、アナライザ240へのネットワーク通信に、アプリケーションに対する符号化の種類を使用して復号されるネットワーク通信の符号化部分を提供する。   Analyzer 240 comprises any logic, functionality, and / or operation that analyzes network communications or any portion thereof. In one embodiment, analyzer 240 decodes a portion of a network communication, such as a request, encoded in a character set. In some embodiments, analyzer 240 may obtain the encoding scheme used for the application from any other part of character set engine 225, such as parser 230 or application determination mechanism 235. In other embodiments, analyzer 240 obtains the encoding scheme for the application from rules / policy engine 250. In one embodiment, parser 230 or application determination mechanism 235 provides the network communication to analyzer 240 with an encoded portion of the network communication that is decoded using the type of encoding for the application.

一実施形態では、アナライザ240は、ネットワーク通信のコンテンツを検査または分析するために、アプリケーションの識別および/または関連符号化の種類を使用する。一部の実施形態では、アナライザ240は、システム120によって受信されるネットワークトラフィックの流れに対して一方向および双方向分析を行う。例えば、アナライザ240は、ネットワークパケットのそれぞれに対してディープストリーム検査を行ってもよい。他の実施形態では、アナライザ240は、HTTPおよびHTMLヘッダおよびペイロードを検査し、分析する。一実施形態では、システム120は、パーサ230等を介して、完全HTML構文解析を行うことが可能であり、アナライザ240は、HTML通信の任意の部分を検査および分析することが可能である。さらに別の実施形態では、アナライザ240は、セッション、およびセッションや、システム120によって受信および処理されるネットワークトラフィックの状態を識別し、維持し、追跡する。   In one embodiment, analyzer 240 uses application identification and / or associated encoding types to inspect or analyze the content of network communications. In some embodiments, analyzer 240 performs one-way and two-way analysis on the network traffic flow received by system 120. For example, the analyzer 240 may perform a deep stream inspection on each of the network packets. In other embodiments, the analyzer 240 examines and analyzes HTTP and HTML headers and payloads. In one embodiment, the system 120 can perform full HTML parsing, such as through a parser 230, and the analyzer 240 can inspect and analyze any part of the HTML communication. In yet another embodiment, analyzer 240 identifies, maintains, and tracks sessions, and the state of sessions and network traffic received and processed by system 120.

なおも図2を参照すると、システム120はまた、ネットワーク通信の検査、フィルタリング、または分析に基づいて1組の1つ以上の方針を適用するための規則/方針エンジン250を含んでもよい。一実施形態では、方針エンジン250は、それによりアプリケーションがネットワーク204にアクセスすることが可能である、日付、時間、またはスケジュールについての方針を備える。別の実施形態では、方針エンジン250は、それにより識別された計算装置100または識別されたユーザによってアプリケーションを使用することが可能である、日付、時間、またはスケジュールについての方針を備える。なおも別の実施形態では、方針エンジン250は、それにより符号化スキームが使用される、またはアプリケーションに対して使用することが可能である、日付、時間、またはスケジュールについての方針を備える。例えば、ユーザは、システム120の規則または方針を構成して、第1のアプリケーションが、週の第1日の間または第1の指定時間範囲の間に第1の符号化スキームを使用し、週の第2日の間または第2の指定時間範囲の間に第2の符号化スキームを使用することを可能にしてもよい。   Still referring to FIG. 2, the system 120 may also include a rules / policy engine 250 for applying a set of one or more policies based on inspection, filtering, or analysis of network communications. In one embodiment, the policy engine 250 comprises a date, time, or schedule policy that allows an application to access the network 204. In another embodiment, the policy engine 250 comprises a date, time, or schedule policy that allows the identified computing device 100 or the identified user to use the application. In yet another embodiment, the policy engine 250 comprises a date, time, or schedule policy whereby an encoding scheme is used or can be used for an application. For example, the user configures the rules or policies of the system 120 so that the first application uses the first encoding scheme during the first day of the week or during the first specified time range, It may be possible to use the second encoding scheme during the second day of the second or during the second specified time range.

一実施形態では、システム120は、クライアントの1つ以上の属性または特性を識別して決定する、終点検出および走査機構を備える。例えば、システム120は、1)オペレーティングシステムおよび/またはオペレーティングシステムのバージョン、2)オペレーティングシステムのサービスパック、3)実行しているサービス、4)実行しているプロセス、および5)ファイル、といったクライアント側属性のうちのいずれか1つ以上を識別して決定する。システム120はまた、クライアントにおける、1)ウイルス対策ソフトウェア、2)パーソナルファイアウォールソフトウェア、3)スパムメール対策ソフトウェア、および4)インターネットセキュリティソフトウェアのうちのいずれか1つ以上の存在またはバージョンを識別し、決定してもよい。方針エンジン250には、クライアントの属性または特性、あるいはクライアント側属性のうちのいずれか1つ以上に基づく1つ以上の方針があってもよい。一部の実施形態では、方針エンジン250は、任意のクライアント属性に基づいて、アプリケーションと関連する符号化スキームの種類、またはアプリケーションに使用する復号の種類を特定してもよい。例えば、方針エンジン250は、クライアントがオペレーティングシステムの特定言語のバージョンを実行している場合、そのクライアントで実行しているアプリケーションからの符号化リクエストを復号するために、特定言語と関連する符号化スキームが使用されるという、方針を備えてもよい。   In one embodiment, the system 120 includes an endpoint detection and scanning mechanism that identifies and determines one or more attributes or characteristics of the client. For example, the system 120 may be the client side of 1) operating system and / or operating system version, 2) operating system service pack, 3) running service, 4) running process, and 5) file. Identify and determine any one or more of the attributes. The system 120 also identifies and determines the presence or version of any one or more of 1) antivirus software, 2) personal firewall software, 3) anti-spam software, and 4) Internet security software at the client. May be. The policy engine 250 may have one or more policies based on any one or more of client attributes or characteristics or client-side attributes. In some embodiments, the policy engine 250 may identify the type of encoding scheme associated with the application, or the type of decoding used for the application, based on any client attribute. For example, the policy engine 250 may use an encoding scheme associated with a particular language to decode an encoding request from an application running on that client if the client is running a particular language version of the operating system. A policy may be provided that is used.

一部の実施形態では、規則/方針エンジン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を実行することによって、強制ブラウジングから保護する。   In some embodiments, the rules / policy engine 240 is 1) buffer overflow, 2) CGI-BIN parameter operation, 3) form / hidden field operation, 4) forced browsing, 5) cookie or session positioning, 6) Corrupted access control list (ACL) or weak password, 7) Cross-site scripting (XSS), 8) Command introduction, 9) SQL introduction, 10) Error-induced confidential information leakage, 11) Insecure use of encryption, 12 Various categories and types, such as :) Server misconfiguration, 13) Backdoor and debugging options, 14) Website modifications, 15) Platform or operating system vulnerabilities, and 16) Zero-day vulnerabilities Against web or internet based vulnerabilities To provide protection, comprises one or more application firewall or security control policies. In one embodiment, the system 120 1) the required fields are returned, 2) the additional fields are invalid, 3) read-only and hidden field execution, 4) drop-down list and radio button field adaptation, and 5) form Provide HTML form field protection for one or more of the maximum field length executions in the form of examining or analyzing network communications. In some embodiments, the system 120 ensures that cookies are not modified. In other embodiments, the system 120 protects against forced browsing by executing a legitimate URL.

さらに別の実施形態では、システム120は、ネットワーク通信に含有される任意の秘密情報を保護する。システム120は、エンジン250の規則または方針に従って任意のネットワーク通信を検査または分析し、ネットワークパケットの任意のフィールドにおける任意の秘密情報を識別してもよい。一部の実施形態では、システム120は、ネットワーク通信において、クレジットカード番号、パスワード、社会保障番号、名前、患者コード、連絡先情報、および年齢うちの1つ以上の発生を識別する。ネットワーク通信の符号化部分は、これらの発生または秘密情報を備えてもよい。これらの発生に基づいて、一実施形態では、システム120は、ネットワーク通信の伝送を妨げる等の、ネットワーク通信に対する方針措置を行ってもよい。別の実施形態では、システム120は、そのような識別された発生または秘密情報を、書き直す、除去する、または隠してもよい。   In yet another embodiment, the system 120 protects any confidential information contained in network communications. System 120 may inspect or analyze any network communication in accordance with rules or policies of engine 250 and identify any confidential information in any field of the network packet. In some embodiments, the system 120 identifies one or more occurrences of a credit card number, password, social security number, name, patient code, contact information, and age in network communications. The encoded part of the network communication may comprise these occurrence or secret information. Based on these occurrences, in one embodiment, system 120 may take policy measures for network communications, such as preventing transmission of network communications. In another embodiment, system 120 may rewrite, remove, or hide such identified occurrence or confidential information.

システム120のアプリケーションごとの符号化識別および復号機能性により、アナライザ240および方針エンジン250は、それぞれ1つ以上の異なる符号化の種類を同時または後で使用して、アプリケーションファイアウォールおよびセキュリティ制御を、複数のアプリケーションの符号化ネットワーク通信に適用してもよい。そのようなものとして、規則/方針エンジン250において構成される規則および方針は、アプリケーションの種類、名前、またはインスタンス、および本願で説明されるシステムの操作に従って決定されるようなアプリケーションと関連する符号化スキームの両方において、適用することが可能である。さらに、システム120は、符号化スキームを知らずに復号、検査、および分析することができなかったネットワーク通信の符号化部分の分析を可能にする。そうすることによって、システム120は、アプリケーションごと、および/または符号化スキームごとに、アプリケーションファイアウォールおよびセキュリティ方針などの方針を、url符号化コンテンツを有するリクエスト等のネットワーク通信の符号化部分に適用することが可能である。   Because of the per-application coding identification and decoding functionality of the system 120, the analyzer 240 and policy engine 250 each use one or more different coding types simultaneously or later to provide multiple application firewall and security controls. The present invention may be applied to the encoded network communication of the application. As such, the rules and policies configured in the rules / policy engine 250 are the application type, name, or instance and encoding associated with the application as determined according to the operation of the system described herein. It is possible to apply in both schemes. In addition, the system 120 allows analysis of the encoded portion of network communications that could not be decoded, examined, and analyzed without knowing the encoding scheme. By doing so, the system 120 applies policies, such as application firewall and security policies, on a per application and / or per encoding scheme basis to the encoded portion of network communications such as requests with url encoded content. Is possible.

パーサ230、アプリケーション決定機構235、およびアナライザ240は、図2で文字セットエンジン225に含まれるとして図示されるが、パーサ230、アプリケーション決定機構235、およびアナライザ240のうちのいずれか、またはそれらの任意の一部は、装置100またはアプリケーション文字セット符号化/復号システム120の任意の一部において、常駐、動作、または実行してもよい。加えて、単一の論理実体または構成要素として示されるが、アプリケーション文字セット符号化/検査システム120はまた、クライアント等の第1の装置100aにおいて実行する第1の部分、およびサーバまたはゲートウェイ等の第2の装置100bにおいて実行する第2の部分により、分散型方式で動作してもよい。さらに別の実施形態では、複数のアプリケーション文字セット符号化/復号システム、例えば120、120’等は、互いに恊働または連動して動作し、1つ以上のアプリケーション、ゲートウェイ、クライアント、またはサーバに対する、本願で説明される機能性および技法を提供してもよい。   The parser 230, application determination mechanism 235, and analyzer 240 are illustrated in FIG. 2 as being included in the character set engine 225, but any of the parser 230, application determination mechanism 235, and analyzer 240, or any of them May reside, operate, or execute on any part of device 100 or application character set encoding / decoding system 120. In addition, although shown as a single logical entity or component, the application character set encoding / verification system 120 is also a first part executing on a first device 100a, such as a client, and a server or gateway, etc. The second part executed in the second device 100b may operate in a distributed manner. In yet another embodiment, multiple application character set encoding / decoding systems, e.g., 120, 120 ', etc., operate together or in conjunction with each other for one or more applications, gateways, clients, or servers. May provide the functionality and techniques described in.

アプリケーション文字セット符号化/検査システム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文字セットを使用して、リクエストにおけるその動作を行う。   The operation of the application character set encoding / checking system 120 may support any type and form of encoding scheme or character encoding set (character set). In some embodiments, the application character set encoding / checking system 120 may include, by way of example, UTF-7, UTF-8, CESU-8, UTF-16 / UCS-2, UTF-32 / UCS-4, UTF -Works with any kind and form of Unicode schemes, including EBCDIC, SCSU, Punicode, GB 18030. Unicode is Western European, Eastern European, Cyrillic, Greek, Arabic, Hebrew, Chinese, Japanese, Korean, Thai, Urdu, Hindi, and whether or not it exists. Rather, it is a character or set that allows characters from all other major world languages to be encoded into a single character set. In one embodiment, the character set is 16 bits. In other embodiments of the encoding scheme, the character set may be 6, 7, 8, 10, 12, 20, 24, 32, or 64 bits, or any other number of bits. The Unicode standard also includes compression standard schemes and extensive photosetting information required for global field support. In one embodiment, the application character set encoding / inspection system 120 operates using the ISO 10646 standards that define several character encoding forms for the universal character set. In some embodiments, the application character set encoding / checking system 120 uses an ASCII encoding scheme. In other embodiments, the application character set encoding / checking system 120 operates on non-ASCII encoding requests, or portions thereof. In another embodiment, the application character set encoding / checking system 120 uses the ANSI or WGL4 character set to perform that operation in the request.

一部の実施形態では、アプリケーション文字セット符号化/検査システム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)、といった種類の符号化スキームまたは文字セットで動作してもよい。   In some embodiments, the application character set encoding / inspection system 120 may include any type and form of language, such as a Japanese, Korean, Russian, or Chinese language, including dialects and differences therein, and Operates on any encoding scheme, character encoding set, or character set used to support or represent any one or more encoding schemes used against. By way of example and without any intention to be limiting or exclusive, for Russian, the system 120 is 1) Cyrillic (CP1251), 2) KOI8r, KOI-8 Alternative, KOI-8 Unified, Or K0I-8RU, 3) Unicode or UTF-8, 4) DosCyllicRussian (CP866), 5) ISO-8859-5, or 6) ECMA-Cyrilic (ISO-IR-111). It may operate as a set.

一例として、かつ限定的または排他的となることを全く意図せずに、日本語については、システム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、といった符号化スキームまたは文字セットのうちのいずれかで動作してもよい。   As an example, and without any intention to be limited or exclusive, for Japanese, the system 120 is: 1) utf-8, 2) JIS (Japan Industry Standard), 3) shift_jis (SJIS, X -Also known as SJIS, or MS Kanji), 4) EUC / EUC-JP (Extended Unix® code), 5) EBDIC, 6) ISO2022 / ISO2022-JP, 7) ANSI Z39.64, 8) CCCII, 9) DEC Kanji, 10) GTcode, 11) IBM DBCS, 12) JEF (Japan 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 or JIS X 0221,, and 18) Mojikyo, such coding schemes, may operate in a character coding set or character set. As an example, and without any intention to be limiting or exclusive, for Korean, the system 120 is 1) utf-8, 2) EUC or EUC-KR, 3) KEIS, 4) ANSI Z39. .64, 5) ISO-2022 or ISO-2022-KR, 6) CCCII, 7) Unified Hangul Code (CP949), 8) GB 12052, 7) IBM DBCS, 8) JOHAB, 9) KS C 5601, 10) It may operate with any of the encoding schemes or character sets such as KS C 5636 (KS ROMAN), 11) KS C 5657, 12) KS C 5700, and 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といった符号化スキームまたは文字セットで動作してもよい。   By way of example and without any intention to be limiting or exclusive, for Chinese, the system 120 is 1) utf-8, 2) ANSI Z39.64, 3) Big5, Big5 +, Big5ETen, or 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 ) GB 13134, 12) GB 16959, 13) GB 18030, 14) GB 1988, 15) GB 2312, 16) GB 7589, 17) GB 7590, 18) GB 8045, 19) GB / T 12345, GB / T 13131, or GBT / 13132, 20) HZ, 21) ISO2022 / 2002-CN / CN-EXT, and 22) may work with encoding schemes or character sets such as Mojikyo.

システム120は、一度に、互いの後に、または同時に使用される、複数の言語および複数の符号化スキームで動作してもよい。一部の実施形態では、システム120は、日本語、朝鮮語、および中国語に対して同じ符号化を使用する等、複数の言語に対して同じ符号化スキームを使用して、または、日本語、朝鮮語、および中国語のそれぞれに対する異なる符号化スキーム等の、複数の言語のそれぞれに対する異なる符号化スキームで動作してもよい。   System 120 may operate in multiple languages and multiple encoding schemes used at once, after each other, or simultaneously. In some embodiments, the system 120 uses the same encoding scheme for multiple languages, such as using the same encoding for Japanese, Korean, and Chinese, or Japanese May operate with different encoding schemes for each of multiple languages, such as different encoding schemes for Korean, and Chinese.

ここで図3を参照すると、アプリケーションと関連する符号化の種類を決定する、またはシステム120の技法を適用するための方法の実施形態が示される。方法300の概要では、ステップ310において、アプリケーション文字セット符号化/検査システム120は、リクエストを受信する。ステップ315において、システム120は、複数のアプリケーションのうちのどのアプリケーションにリクエストが対応するかを決定する。ステップ320において、システム120は、決定されたアプリケーションと関連する符号化スキームを識別する。ステップ325において、システム120は、リクエストを復号、検査、および/または分析するために、識別された符号化スキームを使用する。リクエストを復号して分析すると、ステップ330において、システム120は、1つ以上の方針をリクエストに適用してもよい。   Referring now to FIG. 3, an embodiment of a method for determining the type of encoding associated with an application or applying techniques of system 120 is shown. In overview of the method 300, at step 310, the application character set encoding / checking system 120 receives a request. In step 315, the system 120 determines which application of the plurality of applications corresponds to the request. In step 320, the system 120 identifies the encoding scheme associated with the determined application. In step 325, the system 120 uses the identified encoding scheme to decode, inspect, and / or analyze the request. Upon decoding and analyzing the request, at step 330, the system 120 may apply one or more policies to the request.

さらに詳細に、ステップ310において、システム120は、任意の手段および/または機構を用いて、リクエストなどのネットワーク通信を受信または傍受してもよい。一実施形態では、受信機210は、クライアント101からリクエストを受信する。別の実施形態では、受信機210は、サーバ106へと、またはそこから伝達されると、ネットワークスタック210からのリクエストを傍受する。一部の実施形態では、受信機210等のシステム120は、ネットワークスタック210におけるリクエストを傍受するためのネットワークドライバ、フィルタ、またはフッキング機構を備える。一部の実施形態では、システム120を配備するゲートウェイ105は、リクエストを受信または傍受する。さらに別の実施形態では、クライアント101は、ゲートウェイ105にリクエストを送信するように構成され、クライアント101に対するプロキシの役割を果たす。他の実施形態では、システム120を配備するクライアント101またはサーバ106は、クライアント101からリクエストを受信または傍受する。一部の実施形態では、システム120は、キャッシュされたフォームページを受信する。さらに別の実施形態では、システム120は、システム120、またはゲートウェイ105等のシステム120を採用する装置のキャッシュに格納されるキャッシュされたフォームページを使用する。   More specifically, at step 310, system 120 may receive or intercept network communications, such as requests, using any means and / or mechanism. In one embodiment, the receiver 210 receives a request from the client 101. In another embodiment, the receiver 210 intercepts requests from the network stack 210 when communicated to or from the server 106. In some embodiments, the system 120, such as the receiver 210, comprises a network driver, filter, or hooking mechanism for intercepting requests in the network stack 210. In some embodiments, the gateway 105 deploying the system 120 receives or intercepts the request. In yet another embodiment, the client 101 is configured to send a request to the gateway 105 and acts as a proxy for the client 101. In other embodiments, the client 101 or server 106 deploying the system 120 receives or intercepts requests from the client 101. In some embodiments, the system 120 receives a cached form page. In yet another embodiment, the system 120 uses a cached form page that is stored in the cache of a device employing the system 120 or the system 120, such as the gateway 105.

一部の実施形態では、システム120には、リクエストによって使用される符号化スキームの予備知識がない。一実施形態では、リクエスト自体は、リクエストの符号化部分に使用される符号化スキームを識別しない。例えば、一実施形態では、リクエストは、フォーム−url−符号化コンテンツ型を使用して、HTMLフォーム等のフォームの提出を含む。別の実施形態では、リクエストは、文字符号化を識別するタグを提供しない。さらに他の実施形態では、リクエストは、符号化システムの識別を含む。なおも別の実施形態では、システム120は、発見的規則または論理を使用して符号化の種類を推測することによって、リクエストに対する符号化スキームを理解する。一部の実施形態では、システム120は、アプリケーションまたはクライアントの挙動に基づいて符号化スキームを決定してもよい。一実施形態では、システムは、システム120、ゲートウェイ105、サーバ106、および/またはクライアント101の間で知られる符号化スキームの使用に基づいて、符号化スキームを決定する。   In some embodiments, the system 120 has no prior knowledge of the encoding scheme used by the request. In one embodiment, the request itself does not identify the encoding scheme used for the encoded portion of the request. For example, in one embodiment, the request includes the submission of a form, such as an HTML form, using a form-url-encoded content type. In another embodiment, the request does not provide a tag that identifies the character encoding. In yet other embodiments, the request includes an identification of the encoding system. In yet another embodiment, the system 120 understands the encoding scheme for the request by inferring the type of encoding using heuristic rules or logic. In some embodiments, the system 120 may determine an encoding scheme based on application or client behavior. In one embodiment, the system determines an encoding scheme based on the use of encoding schemes known between system 120, gateway 105, server 106, and / or client 101.

ステップ315において、システム120は、リクエストが対応する複数のアプリケーションのうちの1つを決定する。一実施形態では、アプリケーション決定機構235は、パーサ230による等、リクエストから識別および/解析される1つ以上のデータ要素からアプリケーションを決定する。一部の実施形態では、アプリケーション決定機構235は、データベース、テーブル、ファイル、オブジェクト、データ構造、またはその他の記憶媒体から、インターネットプロトコルアドレスおよび/またはポートを対応するアプリケーションの検索にマップすることによって、リクエストを生成するか、またはそれと関連するアプリケーションを決定する。一実施形態では、アプリケーション決定機構235は、名前、種類、またはインスタンスによってアプリケーションを識別するリクエストのペイロードにおけるデータ要素から、アプリケーションを決定する。   In step 315, the system 120 determines one of a plurality of applications to which the request corresponds. In one embodiment, application determination mechanism 235 determines an application from one or more data elements identified and / or parsed from the request, such as by parser 230. In some embodiments, the application determination mechanism 235 maps the Internet protocol address and / or port to a corresponding application search from a database, table, file, object, data structure, or other storage medium, Generate the request or determine the application associated with it. In one embodiment, the application determination mechanism 235 determines an application from a data element in the payload of the request that identifies the application by name, type, or instance.

ステップ320において、文字セットエンジン225等のシステム120は、ステップ315において決定されるアプリケーションに対する符号化スキームまたは文字セットを識別する。一実施形態では、文字セットエンジン225は、アプリケーション決定機構235またはアナライザ240を介する等して、クエリを行うか、またはデータベース、ファイル、テーブル、オブジェクト、データ構造、またはアプリケーションを1つ以上の符号化スキームにマップするその他の記憶媒体から、アプリケーションに対する符号化スキームの検索を行う。さらに別の実施形態では、文字セットエンジン225は、リクエストの任意の一部から、アプリケーションに対する符号化スキームを決定する。一実施形態では、文字セットエンジン225は、パーサ230によって識別または解析される1つ以上のデータ要素に対する符号化スキームを識別する。一部の実施形態では、文字セットエンジン225は、アプリケーションと関連する符号化スキームを格納するキャッシュ、メモリまたは記憶要素から、アプリケーションに対する符号化スキームを識別する。例えば、一実施形態では、文字セットエンジン225は、アプリケーションに対する以前に使用した符号化スキームを追跡する。さらに別の実施形態では、文字セットエンジン225は、文字セットを識別する情報を有するクライアントリクエストへの応答等のネットワーク通信から、アプリケーションに対する符号化スキームを識別する。例えば、一実施形態では、システム120は、サーバのネットワーク通信からのそのような情報を識別し、解析する。   In step 320, system 120, such as character set engine 225, identifies the encoding scheme or character set for the application determined in step 315. In one embodiment, the character set engine 225 may query one or more databases, files, tables, objects, data structures, or applications, such as via the application determination mechanism 235 or analyzer 240. Search the encoding scheme for the application from other storage media that maps to the scheme. In yet another embodiment, the character set engine 225 determines the encoding scheme for the application from any part of the request. In one embodiment, the character set engine 225 identifies an encoding scheme for one or more data elements that are identified or parsed by the parser 230. In some embodiments, the character set engine 225 identifies the encoding scheme for the application from a cache, memory or storage element that stores the encoding scheme associated with the application. For example, in one embodiment, the character set engine 225 keeps track of previously used encoding schemes for the application. In yet another embodiment, the character set engine 225 identifies the encoding scheme for the application from a network communication such as a response to a client request having information identifying the character set. For example, in one embodiment, the system 120 identifies and analyzes such information from the server's network communications.

一部の実施形態では、文字セットエンジン225は、アプリケーション決定機構235またはアナライザ240を介する等して、規則/方針エンジン250から、アプリケーションに使用する符号化スキームを取得する。例えば、方針エンジン250は、日付および時間等の、リクエストに関する任意の時間的情報に基づいて、アプリケーションに使用する符号化スキームを特定してもよい。別の例では、方針エンジン250は、リクエストを伝達するクライアントの任意のシステム情報または属性に基づいて、アプリケーションに使用する符号化スキームを特定してもよい。一実施形態では、システム120は、クライアントの終点検出および走査を行い、クライアントの1つ以上の属性または特性を決定する。方針エンジン250は、クライアントの任意の属性に基づいて、1つ以上の方針をリクエストに、またはリクエストの符号化部分の復号に適用してもよい。例えば、方針エンジン250は、クライアントがある種類のオペレーティングシステムを実行している場合に、アプリケーションに対する第1の種類の符号化スキームを使用することを特定してもよい。   In some embodiments, the character set engine 225 obtains the encoding scheme used for the application from the rules / policy engine 250, such as via the application determination mechanism 235 or the analyzer 240. For example, the policy engine 250 may identify the encoding scheme to use for the application based on any temporal information about the request, such as date and time. In another example, policy engine 250 may identify the encoding scheme to use for the application based on any system information or attributes of the client that communicates the request. In one embodiment, the system 120 performs client endpoint detection and scanning to determine one or more attributes or characteristics of the client. Policy engine 250 may apply one or more policies to the request or to decode the encoded portion of the request based on any attributes of the client. For example, the policy engine 250 may specify to use the first type of encoding scheme for the application when the client is running a type of operating system.

ステップ325において、システム120は、リクエストの符号化部分を復号するために識別符号化スキームを使用する。一実施形態では、文字セットエンジン225は、パーサ230、アプリケーション決定機構235、および/またはアナライザ240を介する等して、識別された符号化スキームをリクエストの符号化部分に適用する。そのようなものとして、アナライザ240は、符号化部分を、アナライザ240によって検査または分析することが可能なデータ要素、テキスト、または文字列に復号する。例えば、一実施形態において、リクエストの復号された部分は、SQLまたはサーバ106において実行されるその他の種類のコマンドを形成してもよい。一部の実施形態では、アナライザ240は、復号されたコンテンツを含むリクエストを検査または分析して、リクエストが、規則/方針エンジン250を介して構成される規則および/または方針のいずれかに適合または違反するかどうかを決定する。図2と併せて上記のように、アナライザ240は、双方向分析、ディープストリーム検査、HTML検査、セッション状態管理、HTMLフォームフィールド保護、クッキーポイズン保護、強制ブラウザ保護、およびウェブ脆弱性保護等の、任意の論理、機能、および操作を行ってもよい。   In step 325, the system 120 uses an identification encoding scheme to decode the encoded portion of the request. In one embodiment, the character set engine 225 applies the identified encoding scheme to the encoded portion of the request, such as via the parser 230, the application determination mechanism 235, and / or the analyzer 240. As such, the analyzer 240 decodes the encoded portion into data elements, text, or strings that can be examined or analyzed by the analyzer 240. For example, in one embodiment, the decrypted portion of the request may form an SQL or other type of command that is executed at the server 106. In some embodiments, the analyzer 240 examines or analyzes a request that includes decrypted content, and the request conforms to any of the rules and / or policies configured via the rules / policy engine 250 or Decide whether to violate. As described above in conjunction with FIG. 2, the analyzer 240 can provide interactive analysis, deep stream inspection, HTML inspection, session state management, HTML form field protection, cookie poison protection, forced browser protection, and web vulnerability protection, etc. Any logic, function, and operation may be performed.

ステップ330において、システム120は、復号されたリクエストの分析に基づいて、1つ以上の規則または方針をリクエストに適用する。一実施形態では、リクエストが、ネットワーク104上の伝送(またはネットワーク104上のさらなる伝送)に対する方針エンジン250の方針を満たさない場合、ゲートウェイ105において配備されるシステム120等のシステム120は、リクエストを拒絶または撤回してもよい。別の実施形態では、システム120は、リクエストが方針に従わない場合、アプリケーションまたはアプリケーションのユーザを隔離してもよい。さらに別の実施形態では、システム120は、リクエストが方針に従わない場合、アプリケーションのネットワークアクセスを降格または制限してもよい。他の実施形態では、システム120は、クライアントのSSL VPN接続を切断する等、ネットワーク104へのクライアントの接続を切断してもよい。一部の実施形態では、システム120は、リクエストが方針に従わない、または方針を満たさない場合、アプリケーションセッションを切断または終了してもよい。   In step 330, the system 120 applies one or more rules or policies to the request based on the analysis of the decrypted request. In one embodiment, if the request does not meet the policy of engine 250 for transmission on network 104 (or further transmission on network 104), system 120, such as system 120 deployed at gateway 105, rejects the request. Or you may withdraw. In another embodiment, the system 120 may isolate the application or the user of the application if the request does not follow the policy. In yet another embodiment, the system 120 may demote or restrict an application's network access if the request does not follow the policy. In other embodiments, the system 120 may disconnect the client's connection to the network 104, such as disconnecting the client's SSL VPN connection. In some embodiments, the system 120 may disconnect or terminate the application session if the request does not follow the policy or does not meet the policy.

方法300の技法は、アプリケーションからのリクエストとの関連で概して上記で説明されるものの、方法300は、互いの後および/または同時に、複数のアプリケーションに対して行うことが可能である。システム120は、異なるアプリケーションから、ステップ310において複数のリクエストを受信または傍受してもよく、それぞれには、別のアプリケーションと同じ、または異なる符号化スキームを使用する符号化部分がある。例えば、システム120は、複数のクライアントおよびアプリケーションに情報提供するゲートウェイ105上に配備されてもよい。複数のリクエストのうちの各リクエストに対して、システム120は、ステップ315でリクエストと関連するアプリケーション、ステップ320でアプリケーションに使用される文字セット符号化を決定し、ステップ325において、リクエストの符号化部分を復号して復号されたリクエストを分析し、ステップ330において、任意の関連方針をリクエストに適用する。そのようなものとして、一部の実施形態では、システム120は、アプリケーションごとに方法300の技法を行い、リクエストごとに関連符号化スキームを適用する。一実施形態では、システム120は、第1のリクエストに応じて、アプリケーションに対する第1の符号化スキームを使用してもよく、第2の以降のリクエストに応じて、同じアプリケーションに対する第2の異なる符号化スキームを使用してもよい。   Although the techniques of method 300 are generally described above in the context of requests from applications, the method 300 may be performed for multiple applications after and / or simultaneously with each other. System 120 may receive or intercept multiple requests at step 310 from different applications, each with an encoding portion that uses the same or different encoding scheme as another application. For example, the system 120 may be deployed on a gateway 105 that provides information to multiple clients and applications. For each request of the plurality of requests, the system 120 determines the application associated with the request at step 315, the character set encoding used for the application at step 320, and at step 325 the encoded portion of the request. And the decrypted request is analyzed, and in step 330 any relevant policies are applied to the request. As such, in some embodiments, the system 120 performs the technique 300 method for each application and applies the associated encoding scheme for each request. In one embodiment, the system 120 may use a first encoding scheme for the application in response to the first request, and a second different code for the same application in response to the second and subsequent requests. A chemical scheme may be used.

アプリケーション符号化/検査システム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の文字セットを使用してもよい。   Application encoding / checking system 120 may be deployed in a gateway or network appliance for enterprise network 104 having multiple applications that use different character sets or encoding schemes. For example, the gateway 105 may be deployed as an application firewall and security control device for a company network having Japanese users. The first application 110a in the first client 101a may use a first character set called UTF-8. The second application 110b in the first client 101a or the second client 101b may use a second character set called JIS. The third application 110c in either the first client 101a or the second client 101b and / or the third client 101c may use a third character set called MS Kanji.

第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には、リクエストの一部を符号化するために使用される文字セットの予備知識がなくてもよい。   Each of the first application 110a, the second application 110b, and the third application 110c submits one or more requests to one or more servers 106a-106n via the gateway 105. Applications 110a-110c may comprise a web browser that submits HTTP, HTML, and / or XML requests to web servers 106a-106n. Any one or more of these requests may comprise a form url encoding submission, where the character set identification is not part of the submitted data. Part of the request is generated completely or otherwise from Java script or other script on the browser. Also, one or more of the requests are generated using AJAX, or Asynchronous Java® Script and XML-based technology. As such, for any one or more of these requests, the gateway 105 may not have prior knowledge of the character set used to encode a portion of the request.

上記のシステム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のリクエストを復号し、復号されたリクエストを分析し、任意の方針をリクエストに適用する。   Given the structure, functionality, and operation of the system 120 described above, the gateway 105 can apply application firewall and security control policies to the encoded portion of the request. For a received request, the gateway 105 determines the application associated with the request and the encoding scheme associated with the application. In this example, the gateway 105 determines that the first request is received from the first application 110a and identifies the UTF-8 encoding scheme as associated with the first application 110a. The gateway 105 decodes the first request with the UTF-8 encoding scheme, analyzes the decoded request, and applies an arbitrary policy to the request. The gateway 105 determines that the second request is received from the second application 110b and identifies the JIS encoding scheme as associated with the second application 110b. The gateway 105 decodes the first request with the identified encoding scheme of JIS, analyzes the decoded request, and applies an arbitrary policy to the request. Similarly, the gateway 105 determines that a third request is received from the third application 110c and identifies the MS Kanji encoding scheme as associated with the third application 110c. The gateway 105 decodes the first request with the identified encoding scheme of MS Kanji, analyzes the decoded request, and applies any policy to the request.

場合によっては、アプリケーション110aは、別の期間または別の日の間において、別のインスタンスを開始する際等に、異なる符号化スキームに切り替えるか、または使用してもよい。例えば、第1のアプリケーション110aは、この第2のインスタンスの間において、UTF−8の代わりにJIS文字セットを使用してもよい。このような場合、ゲートウェイ105は、後のリクエストが第1のアプリケーション110aから受信されたことを決定し、第1のアプリケーション110aと関連するようなUTF−8符号化スキームを識別する。例えば、方針エンジン250は、指定期間の間にUTF−8符号化スキームが第1のアプリケーション110aに使用されるべきであると識別してもよい。次いで、ゲートウェイ105は、UTF−8の識別された符号化スキームによってこの後のリクエストを復号し、復号されたリクエストを分析し、任意の方針をリクエストに適用する。   In some cases, application 110a may switch to or use a different encoding scheme, such as when starting another instance, during another period or another day. For example, the first application 110a may use a JIS character set instead of UTF-8 during this second instance. In such a case, the gateway 105 determines that a later request has been received from the first application 110a and identifies a UTF-8 encoding scheme as associated with the first application 110a. For example, the policy engine 250 may identify that a UTF-8 encoding scheme should be used for the first application 110a during a specified period. The gateway 105 then decodes the subsequent request according to the identified encoding scheme of UTF-8, analyzes the decoded request, and applies any policy to the request.

本願で説明されるゲートウェイ105により、ゲートウェイは、異なる符号化スキームを使用して、複数のアプリケーションからのリクエストを復号し、分析し、方針を適用することが可能である。ゲートウェイ105は、アプリケーションごと、およびリクエストごとの復号機構を提供して、日本語、朝鮮語、ロシア語、または中国語のアプリケーションのユーザに対して配備されるネットワーク環境にあってもよいもの等の、複数の異なる文字セット符号化アプリケーションを配備する環境に方針を適用することにおいて、多大な柔軟性を提供する。ゲートウェイ105は、アプリケーションファイアウォールおよびセキュリティ制御装置を異なる方法で符号化されたネットワーク通信に適用するステップが符号化コンテンツで見出される場合のある、脆弱性およびセキュリティ懸案事項からネットワーク環境を保護することを可能にする。   The gateway 105 described herein allows the gateway to use different encoding schemes to decode, analyze, and apply policies from multiple applications. The gateway 105 may provide a decryption mechanism for each application and for each request, and may be in a network environment deployed for users of Japanese, Korean, Russian, or Chinese applications, etc. It provides great flexibility in applying the policy to an environment that deploys multiple different character set encoding applications. The gateway 105 can protect the network environment from vulnerabilities and security concerns that may be found in the encoded content to apply application firewalls and security controllers to network communications encoded in different ways To.

本発明の精神および範囲から逸脱することなく、多くの変更および修正が、当業者によって行われてもよい。したがって、解説された実施形態は、実施例の目的で示されているに過ぎず、次の請求項によって規定される本発明を限定するとして理解されるべきではないことを、明示的に理解しなければならない。これらの請求項は、それらが文字通りに説明するもの、また、他の側面において上記の解説で図示および説明されるものと同一ではないにしても、わずかに異なる同等の要素を含むものとして、読まれるものである。   Many changes and modifications may be made by those skilled in the art without departing from the spirit and scope of the invention. Accordingly, it should be expressly understood that the described embodiments are presented for purposes of example only and are not to be construed as limiting the invention as defined by the following claims. There must be. These claims should be read as they are literally described, and include equivalent elements that are slightly different, if not otherwise identical to those shown and described in the above description. It is what

Claims (22)

リクエストを復号するための使用に用いられる文字符号化を決定する方法であって、
(a)複数のクライアントおよびサーバの間にある装置によって、該サーバへのリクエストを受信するステップと、
(b)該装置によって、複数のアプリケーションプログラムのうちのどの1つに該リクエストが対応するかを決定するステップと、
(c)該装置によって、該決定されたアプリケーションプログラムと関連する文字符号化を識別するステップであって、該文字符号化は、言語を表わす、ステップと、
(d)該装置によって、該リクエストを検査するために該識別された文字符号化を使用して該リクエストを復号するステップと
を含む、方法。
A method for determining the character encoding used for decoding a request, comprising:
(A) receiving a request to the server by a device between the plurality of clients and the server ;
(B) determining by the apparatus which one of the plurality of application programs corresponds to the request;
(C) identifying , by the device, a character encoding associated with the determined application program, the character encoding representing a language ;
By (d) said device, in order to inspect the request, and a step of decoding the request using the identified character encoding method.
ステップ(b)は、前記リクエストの属性から、前記複数のアプリケーションプログラムのうちのどの1つに該リクエストが対応するかを決定することを含む、請求項1に記載の方法。Step (b), from the attribute of the request includes determining what 1 Tsuni該request of the plurality of application programs corresponding method according to claim 1. 前記属性は、ソース識別子、宛先識別子、ポート識別子、プロトコル識別子、ヘッダ情報、またはユニフォームリソースロケータアドレスのうちの1つを備える、請求項2に記載の方法。  The method of claim 2, wherein the attribute comprises one of a source identifier, a destination identifier, a port identifier, a protocol identifier, header information, or a uniform resource locator address. ステップ(b)は、前記受信されたリクエストに含まれるクッキーを使用して、前記複数のアプリケーションプログラムのうちのどの1つに該リクエストが対応するかを決定することを含む、請求項1に記載の方法。Step (b) involves using a cookie contained in the received request to determine which 1 Tsuni該request of the plurality of application programs corresponding, according to claim 1 the method of. ステップ(c)は、文字符号化とアプリケーションとの間の関連性を含有するファイルを使用して、前記決定されたアプリケーションプログラムと関連する前記文字符号化を識別することを含む、請求項1に記載の方法。Step (c) uses a file containing associations between character encoding and application involves identifying the character encoding associated with the determined application program to claim 1 The method described. ステップ(c)は、文字符号化とアプリケーションとの間の関連性を含有するデータベースを使用して、前記決定されたアプリケーションプログラムと関連する前記文字符号化を識別することを含む、請求項1に記載の方法。Step (c), using a database containing an association between character encoding and application involves identifying the character encoding associated with the determined application program to claim 1 The method described. (a)前記装置によって、前記サーバへの第2のリクエストを受信するステップと、
(b)該装置によって、該第2のリクエストが対応する、前記複数のアプリケーションプログラムのうちの第2のアプリケーションプログラムを決定するステップと、
(c)該装置によって、該決定された第2のアプリケーションプログラムと関連する第2の文字符号化を識別するステップと
をさらに含む、請求項1に記載の方法。
(A) receiving , by the device, a second request to the server ;
By (b) the apparatus, comprising the steps of requesting the second corresponds, to determine a second application program of the plurality of application programs,
By (c) said apparatus further includes identifying a second character encoding associated with the second application program the determination method according to claim 1.
ステップ(a)は、クライアントによって生成されるリクエストを受信することを含む、請求項1に記載の方法。Step (a) includes receiving a request generated by a client, the method according to claim 1. ステップ(b)は、前記クライアントの属性を使用して、前記複数のアプリケーションプログラムのうちのどの1つに前記リクエストが対応するかを決定することを含む、請求項8に記載の方法。Step (b), using the attributes of the client, which one to the request of the plurality of application programs includes determining whether the corresponding method according to claim 8. ステップ(a)は、キャッシュされたフォームページに基づくリクエストを受信することを含む、請求項1に記載の方法。Step (a) includes receiving a request based on a cached form page The method of claim 1. リクエストを復号するために使用される文字符号化を決定することが可能なゲートウェイであって、該ゲートウェイは、
ネットワークを介してクライアントと通信している受信機であって、該クライアントからリクエストを受信する受信機と、
該受信機と通信している文字セットエンジンであって、該文字セットエンジンは、該リクエストが向けられるアプリケーションに応答する受信したリクエストと関連する文字符号化を識別し、該文字符号化は、言語を表わす、文字セットエンジンと
を備え、
該ゲートウェイは、該識別された文字符号化を使用して該リクエストを復号することにより、該リクエストを検査する、ゲートウェイ。
A gateway capable of determining the character encoding used to decode the request, the gateway comprising:
A receiver in communication with a client over a network and receiving a request from the client;
A character set engine in communication with the receiver, the character set engine identifies the character encoding associated with the received request in response to a luer application the request is directed, the character coding Is a character set engine that represents languages
With
The gateway inspects the request by decoding the request using the identified character encoding .
前記受信機は、複数のクライアントと通信する、請求項11に記載のゲートウェイ。  The gateway of claim 11, wherein the receiver communicates with a plurality of clients. 前記リクエストが向けられるアプリケーションプログラムを決定するために、該リクエストに含有される、ソース識別子、宛先識別子、ポート識別子、プロトコル識別子、ヘッダ情報、またはユニフォームリソースロケータアドレスのうちの1つを使用する、請求項11に記載のゲートウェイ。  Using one of a source identifier, destination identifier, port identifier, protocol identifier, header information, or uniform resource locator address contained in the request to determine an application program to which the request is directed. Item 12. The gateway according to Item 11. 前記文字セットエンジンは、文字符号化とアプリケーションとを関連付けるデータベースを備える、請求項11に記載のゲートウェイ。  The gateway of claim 11, wherein the character set engine comprises a database associating character encodings with applications. 前記文字セットエンジンは、文字符号化とアプリケーションとを関連付けるファイルを備える、請求項11に記載のゲートウェイ。  The gateway of claim 11, wherein the character set engine comprises a file associating character encoding with an application. ゲートウェイによって、クライアントから受信される符号化部分を有するリクエストを検査する方法であって、
(a)ゲートウェイによって、クライアント上のアプリケーションプログラムからリクエストを受信するステップと、
(b)該ゲートウェイによって、複数のアプリケーションプログラムのうちのどの1つに該リクエストが対応するかを決定するステップと、
(c)該ゲートウェイによって、該決定されたアプリケーションプログラムと関連する文字符号化を識別するステップであって、該文字符号化は、該決定されたアプリケーションプログラムの言語を表わす、ステップと、
(d)該ゲートウェイによって、該識別された文字符号化を使用して、リクエストの一部を復号するステップと、
(e)該ゲートウェイによって、該リクエストの該復号された部分を検査するステップと
を含む、方法。
A method for inspecting a request having an encoded part received from a client by a gateway comprising:
(A) receiving a request from an application program on a client by a gateway;
(B) determining by the gateway which one of a plurality of application programs corresponds to the request;
(C) identifying, by the gateway, a character encoding associated with the determined application program, the character encoding representing a language of the determined application program ;
(D) decoding a portion of the request using the identified character encoding by the gateway;
(E) examining the decoded portion of the request by the gateway.
前記ゲートウェイによって、前記リクエストの属性を使用して、前記複数のアプリケーションプログラムのうちのどの1つに該リクエストが対応するかを決定することを含む、請求項16に記載の方法。By the gateway, by using the attributes of the request, which 1 Tsuni該request of the plurality of application programs includes determining whether the corresponding method according to claim 16. 前記ゲートウェイによって、前記クライアントの属性を使用して、前記複数のアプリケーションプログラムのうちのどの1つに前記リクエストが対応するかを決定することを含む、請求項16に記載の方法。By the gateway, by using the attribute of the client, which one to the request of the plurality of application programs includes determining whether the corresponding method according to claim 16. 前記ゲートウェイによって、前記リクエストの前記復号された部分の検査に基づいて、方針を該リクエストに適用することを含む、請求項16に記載の方法。By the gateway, based on inspection of the decoded portion of the request, comprises applying to the request policy, the method according to claim 16. (f)前記ゲートウェイによって、前記クライアントまたは第2のクライアントのうちの一方における第2のアプリケーションプログラムから第2のリクエストを受信することと、
(g)該ゲートウェイによって、前記複数のアプリケーションプログラムのうちのどの1つに該第2のリクエストが対応するかを決定することと、
(h)該ゲートウェイによって、該決定されたアプリケーションプログラムと関連する第2の文字符号化を識別することと、
(i)該ゲートウェイによって、該識別された第2の文字符号化を使用して、該第2のリクエストの一部を復号すること
を含む、請求項16に記載の方法。
(F) by the gateway, receiving the client or a second request from a second application program in one of the second client,
By (g) said gateway, and determining which one to the second request of the plurality of application programs corresponding,
By (h) said gateway, and it identifies the second character encoding associated with the application program which is the determined,
By (i) the gateway uses the second character encoding is the identified, and a decoding a part of the second request, the method according to claim 16.
前記ゲートウェイによって、前記第2のリクエストの前記復号された部分を検査することを含む、請求項20に記載の方法。By the gateway includes examining the decoded portion of the second request, the method according to claim 20. 前記ゲートウェイによって、前記第2のリクエストの前記復号された部分の検査に基づいて、方針を該第2のリクエストに適用することを含む、請求項21に記載の方法。By the gateway, the second based on inspection of the decoded portion of the request, including applying to the second request policy, the method according to claim 21.
JP2009513111A 2006-05-31 2006-05-31 System and method for determining character set encoding for request submission decoding at gateway Active JP4862079B2 (en)

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 (en) 2009-11-12
JP4862079B2 true JP4862079B2 (en) 2012-01-25

Family

ID=37708569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009513111A Active JP4862079B2 (en) 2006-05-31 2006-05-31 System and method for determining character set encoding for request submission decoding at gateway

Country Status (5)

Country Link
JP (1) JP4862079B2 (en)
KR (1) KR101265920B1 (en)
CN (1) CN101449553B (en)
HK (1) HK1133964A1 (en)
WO (1) WO2007139552A1 (en)

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 (en) * 2011-04-18 2018-05-22 腾讯科技(深圳)有限公司 A kind of data adaptive output method and system
CN102395057B (en) * 2011-06-30 2017-10-13 中兴通讯股份有限公司 A kind of collocation method and device of port locations form
KR102289418B1 (en) * 2014-12-10 2021-08-13 한국전자통신연구원 Apparatus and method for data encryption
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 (en) * 1996-01-31 1997-08-15 Nippon Telegr & Teleph Corp <Ntt> Text most likely decoding method and most likely decoding device, and data communication network device
JPH09319545A (en) * 1996-05-30 1997-12-12 Mitsubishi Electric Corp Character input device
JPH1020989A (en) * 1996-07-08 1998-01-23 Hitachi Ltd Character input device
JP2000132449A (en) * 1998-10-27 2000-05-12 Nippon Telegr & Teleph Corp <Ntt> Proxy access method, device therefor and record medium recorded with proxy access program
JP2000132480A (en) * 1998-10-27 2000-05-12 Nippon Telegr & Teleph Corp <Ntt> Method and device for internet browsing, and record medium where internet browsing program is recorded
JP2000172711A (en) * 1998-12-10 2000-06-23 Fujitsu Ltd Document retrieval mediating device, document retrieval system and storage medium recording document retrieval mediating program
JP2003203032A (en) * 2002-01-08 2003-07-18 Fujitsu Ltd Web server mediation device, method and conversation type web server mediation portal server
JP2005229626A (en) * 2004-02-13 2005-08-25 Microsoft Corp System and method for protecting computing device from computer exploits delivered over networked environment in secured communication

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
AU1357701A (en) * 1999-11-03 2001-05-14 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
BR0306999A (en) * 2003-05-17 2005-02-09 Microsoft Corp Mechanism for applying transforms to multipart files

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212334A (en) * 1996-01-31 1997-08-15 Nippon Telegr & Teleph Corp <Ntt> Text most likely decoding method and most likely decoding device, and data communication network device
JPH09319545A (en) * 1996-05-30 1997-12-12 Mitsubishi Electric Corp Character input device
JPH1020989A (en) * 1996-07-08 1998-01-23 Hitachi Ltd Character input device
JP2000132449A (en) * 1998-10-27 2000-05-12 Nippon Telegr & Teleph Corp <Ntt> Proxy access method, device therefor and record medium recorded with proxy access program
JP2000132480A (en) * 1998-10-27 2000-05-12 Nippon Telegr & Teleph Corp <Ntt> Method and device for internet browsing, and record medium where internet browsing program is recorded
JP2000172711A (en) * 1998-12-10 2000-06-23 Fujitsu Ltd Document retrieval mediating device, document retrieval system and storage medium recording document retrieval mediating program
JP2003203032A (en) * 2002-01-08 2003-07-18 Fujitsu Ltd Web server mediation device, method and conversation type web server mediation portal server
JP2005229626A (en) * 2004-02-13 2005-08-25 Microsoft Corp System and method for protecting computing device from computer exploits delivered over networked environment in secured communication

Also Published As

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

Similar Documents

Publication Publication Date Title
De Keukelaere et al. Smash: secure component model for cross-domain mashups on unmodified browsers
US7873994B1 (en) Management of session timeouts in an SSL VPN gateway
US7840707B2 (en) Reverse proxy portlet with rule-based, instance level configuration
JP4912400B2 (en) Immunization from known vulnerabilities in HTML browsers and extensions
US6212640B1 (en) Resources sharing on the internet via the HTTP
JP4862079B2 (en) System and method for determining character set encoding for request submission decoding at gateway
US11736446B2 (en) Object property getter and setter for clientless VPN
US20080189757A1 (en) Accessing network resources outside a security boundary
JP5306348B2 (en) Data source tracking and data transmission control
US20090328063A1 (en) Inter-frame messaging between different domains
US20050228984A1 (en) Web service gateway filtering
US20050235165A1 (en) Methods and computer systems for document encryption
US20190116186A1 (en) Enterprise cloud access control and network access control policy using risk based blocking
US20120215887A1 (en) Secure delivery of flash content over networks
US11520852B2 (en) Encoding-free javascript stringify for clientless VPN
US8996715B2 (en) Application firewall validation bypass for impromptu components
JP5039053B2 (en) Method and system for externalizing HTTP security message processing with macro support
US20120096536A1 (en) Data Security System
US10831836B2 (en) Browser storage for clientless VPN
US8959216B2 (en) Channel manager for accessing elements for a secure web page through a non-secure channel
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
Kizza et al. Scripting and Security in Computer Networks and Web Browsers
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

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