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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall 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.
本発明の特徴および利点は、類似参照文字が全体を通して対応する要素を識別する図面と併せて理解すると、下記で説明される発明を実施するための最良の形態から、さらに明白となる。図中、類似参照番号は概して、同一である、機能的に同様である、および/または構造的に同様である要素を示す。 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
クライアント101a〜101nのそれぞれは、ネットワーク104を介してゲートウェイ105に通信的に連結される一方で、ゲートウェイ105は、ネットワーク104’を介してサーバ106a〜106nに通信的に連結される。一実施形態では、ネットワーク104は、インターネットを備え、ネットワーク104’は、会社または企業ネットワーク等のプライベートデータ通信ネットワークを備える。ネットワーク104、104’は、公衆、プライベート、または別の方法による、任意の種類および形式のネットワークとなり得て、場合によっては、同じネットワークであってもよい。
Each of
図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
図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
クライアント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
一部の実施形態では、サーバ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
一実施形態に従って、ゲートウェイ105は、アプリケーション文字セット符号化および検査システム120を含む。下記でさらに詳しく説明されるように、このシステム120は、符号化コンテンツを備えるクライアント101a〜101nからのリクエストを受信する。例えば、クライアント101は、url符号化部分等の符号化コンテンツを有する、HTTPフォームまたはリクエストを提出してもよい。ある場合において、符号化スキームの種類は、リクエストから分からない場合がある。システム120は、リクエストを生成する、またはそれと関連するアプリケーションを決定する。例えば、システム120は、リクエストから、アプリケーションと関連しているインターネットプロトコルアドレスおよび/またはポートを識別してもよい。決定されたアプリケーションに基づいて、システム120は、アプリケーションと関連する、またはそれに使用される文字符号化スキームを識別する。例えば、システム120は、データベース、構成情報、または方針エンジンから符号化スキームを検索してもよい。次いで、システム120は、識別された文字符号化スキームを使用して、リクエストの一部を復号し、任意の規則または方針をリクエストに適用する。一部の実施形態では、システム120は、各アプリケーションと関連する符号化スキームに従ってそれが復号することが可能な、符号化アプリケーションネットワークトラフィックに方針を適用する、アプリケーションファイアウォールまたはセキュリティ制御システムとして動作する。
In accordance with one embodiment, the
概してゲートウェイ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
アプリケーション文字セット符号化/検査システム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 /
図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
中央処理装置102は、メインメモリユニット122から取り出される命令に応答して処理する、任意の論理回路である。多くの実施形態において、中央処理装置は、カリフォルニア州、マウンテンビューのIntel Corporation製造のもの、イリノイ州、シャウムバーグのMotorola Corporation製造のもの、カリフォルニア州、サンタクララのTransmeta Corporation製造のもの、ニューヨーク州、ホワイトプレインズのInternational Business Machines製造のもの、カリフォルニア州、サニーベールのAdvanced Micro Devices製造のもの等の、マイクロプロセッサユニットによって提供される。計算装置100は、これらのプロセッサのいずれか、または本願で説明されるように動作することが可能なその他任意のプロセッサに基づいてもよい。
The
メインメモリユニット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
図1Dは、メインプロセッサ102が、時にはバックサイドバスと呼ばれる2次バスを介して、キャッシュメモリ140と直接通信する、実施形態を示す。他の実施形態では、メインプロセッサ102は、システムバス150を使用して、キャッシュメモリ140と通信する。キャッシュメモリ140は典型的に、メインメモリ122よりも応答時間が速く、典型的に、SRAM、BSRAM、またはEDRAMによって提供される。
FIG. 1D shows an embodiment in which the
図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,
計算装置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
さらに、計算装置100は、ネットワークインターフェース118を含んで、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、または、標準電話線、LANまたはWANリンク(例えば、802.11、T1、T3、56kb、X.25)、ブロードバンド接続(例えば、ISDN、Frame Relay、ATM)、無線接続、または上記のいずれかまたは全ての何らかの組み合わせを含むが、それらに限定されない種々の接続を通したインターネットに、インターフェース接続してもよい。ネットワークインターフェース118は、内蔵型ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または、通信および本願で説明される操作の実施が可能な任意の種類のネットワークに計算装置100をインターフェース接続するのに適した任意のその他装置を備えてもよい。
Further, the
多種多様の入出力装置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 /
さらなる実施形態では、入出力装置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
図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
他の実施形態では、計算装置100には、装置と整合する、異なるプロセッサ、オペレーティングシステム、および入力装置があってもよい。計算装置100は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノート型コンピュータ、サーバ、手持ちサイズのコンピュータ、携帯電話またはその他のポータブル電気通信装置、メディア再生装置、組み合わせ装置、特設、特殊、カスタム、または専用装置、または、通信が可能で、かつ本願で説明される本発明の操作を行うのに十分なプロセッサ力およびメモリ容量を有する、その他任意の種類および/または形式の計算または電気通信装置となり得る。
In other embodiments,
ここで図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 /
受信機215は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備え、ネットワーク104への装置100の接続の媒体を介して、信号を受信してもよい。同様に、送信機220は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備え、ネットワーク104への装置100の接続の媒体を介して、信号を伝送してもよい。ネットワーク104およびネットワーク接続は、計算装置100a〜100nのいずれかの間に、電気配線またはケーブル、光ファイバ、電磁放射等の任意の種類の伝送媒体を含むか、または、本願で説明される操作をサポートすることが可能なその他任意の形式の伝送媒体を有してもよい。一実施形態では、受信機215は、第1の種類の媒体を介して1つ以上の信号を受信する。一部の実施形態では、送信機220は、第2の種類の媒体を介して1つ以上の信号を伝送する。他の実施形態では、受信機215および送信機220は、同じ種類の媒体上で信号を受信および伝送する。別の実施形態では、送信機は、受信機215および送信機220を含んで、媒体を介して信号を受信および伝送する。
装置100および/またはシステム120は、ネットワークスタック210を含む。一部の実施形態では、受信機215および/または送信機220は、ネットワークスタック210を含んでもよい。他の実施形態では、受信機215および/または送信機220は、複数のネットワークスタックを含んでもよい。別の実施形態では、受信機215および/または送信機220は、1つ以上のネットワークスタック210とインターフェース接続、統合、または通信する。ネットワークスタック210は、ネットワークとの接続性および通信を提供するための、任意の種類および形態のソフトウェア、ハードウェア、またはそれらの任意の組み合わせを備えてもよい。一実施形態では、ネットワークスタック210は、ネットワークプロトコル群に対するソフトウェア実行を備える。ネットワークスタック210は、当業者が認識および十分理解するような、Open Systems Interconnection(OSI)通信モデルの任意のネットワーク層等の、1つ以上のネットワーク層を備えてもよい。そのようなものとして、ネットワークスタック210は、1)物理的リンク層、2)データリンク層、3)ネットワーク層、4)トランスポート層、5)セッション層、6)プレゼンテーション層、および7)アプリケーション層といった、OSIモデルの層のうちのいずれかに対する任意の種類および形式のプロトコルを備えてもよい。一実施形態では、ネットワークスタック210は、概してTCP/IPと呼ばれる、インターネットプロトコル(IP)のネットワーク層プロトコル上のトランスポート制御プロトコル(TCP)を備えてもよい。一部の実施形態では、TCP/IPプロトコルは、IEEE 802.3によってカバーされるプロトコル等の、IEEE広域ネットワーク(WAN)またはローカルネットワーク(LAN)プロトコルの一群のうちのいずれかを備えてもよい、Ethernet(登録商標) プロトコル上で実行されてもよい。一部の実施形態では、ネットワークスタック210は、IEEE 802.11および/または移動体インターネットプロトコル等の、任意の種類および携帯の無線プロトコルを備える。
The
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
さらに、ネットワークスタック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
なおも図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
一部の実施形態では、文字セットエンジンのパーサ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
一実施形態では、パーサ230は、リクエストにおいて、属性、ヘッダ、フィールド、または、テキスト、画像、混合データ型等のコンテンツの種類を識別するデータ要素を識別する。例えば、HTTPプロトコルの実施形態では、メッセージの本文における媒体型および亜類型を特定するため、およびそのようなデータの自然表現を特定するために、コンテンツ型ヘッダが使用される。一部の実施形態では、パーサ230は、リクエストの一部が符号化されていることを識別する。例えば、HTTPプロトコルの実施形態では、コンテンツ型ヘッダは、URLリクエストの一部が符号化されていることを識別してもよい。別の実施形態では、パーサ230は、リクエストにおいて、リクエストのコンテンツの一部を符号化または復号するために使用される文字セットを識別する属性を識別する。
In one embodiment, the
一実施形態では、パーサ230は、TCPまたはUDPパケット等のトランスポート層プロトコルパケットの任意の一部を解析する。一部の実施形態では、パーサ230は、パケット等のトランスポート層プロトコルパケットから、1)ソースインターネットプロトコルアドレス、2)宛先インターネットプロトコルアドレス、3)ソースポート、4)宛先ポート、5)プロトコルを識別するパケットのヘッダおよび/またはペイロードの任意のデータ、6)パケットヘッダの任意のフィールドのうちのいずれかを識別し、解析する。別の実施形態では、パーサ230は、解析されたネットワーク通信またはネットワーク通信の識別された要素のうちのいずれかに対する、オブジェクトモデル表示、またはオブジェクトベースのアプリケーションプログラミングインターフェースを作成または提供する。
In one embodiment,
アプリケーション決定機構235は、メッセージまたはリクエスト等のネットワーク通信と関連するアプリケーションを決定する任意の論理、機能、および/または操作を備える。一実施形態では、アプリケーション決定機構235は、パーサ230と通信しているか、またはインターフェース接続され、ネットワーク通信から1つ以上の解析された情報を取得する。一部の実施形態では、アプリケーション決定機構235は、リクエストからの任意の情報、またはリクエスト、リクエストと関連するアプリケーションの種類、名前または識別を表す任意の情報を、リクエストから決定する。一実施形態では、アプリケーション決定機構235は、アプリケーションおよび/またはリクエストに対する符号化の種類を識別する。符号化情報は、リクエストを復号、検査、分析、または処理するために使用してもよい。
一部の実施形態では、アプリケーション決定機構235は、アプリケーションの名前、種類、または識別子を、ソースインターネットプロトコルアドレスおよび/またはポート、または宛先インターネットプロトコルアドレス、および/または宛先ポート等のネットワーク通信の1つ以上のデータ要素と関連付けるように構成される。例えば、特定のクライアントからのネットワーク通信は、アプリケーションと関連してもよい。別の例では、システム120は、インターネットプロトコル範囲内で、またはポートまたはポート範囲を使用して、1つ以上のサーバへのネットワーク通信を関連付けてもよい。他の実施形態では、アプリケーション決定機構235は、符号化スキームの名前、種類、または識別子、文字符号化セット、または符号化機構を、パーサ230によって提供される任意の解析されたフィールド等のネットワーク通信の1つ以上のデータ要素と関連付けるように構成される。さらに別の実施形態では、アプリケーション決定機構235は、ネットワークパケットのペイロードによって運ばれる情報等により、ネットワーク通信の解析を介して、アプリケーションおよび/または符号化スキームの種類、名前、または識別を決定する。
In some embodiments, the
一部の実施形態では、アプリケーション決定機構235は、アプリケーションおよび/または符号化スキームへのネットワーク通信またはその任意の一部を格納するために、データベース、ファイル、オブジェクト、データ構造、またはその他の情報記憶媒体を使用する。例えば、アプリケーションは、1つ以上のインターネットプロトコルアドレスおよび/またはポートにマップされてもよい。別の例では、アプリケーション決定機構235は、任意の種類および形式の検索テーブルからのネットワーク通信において識別される1つ以上のデータ要素と関連する、またはそれに基づく、アプリケーションを検索してもよい。一実施形態では、アプリケーション決定機構235は、コマンドラインインターフェースまたはグラフィカルユーザインターフェース等の任意の種類および形式のインターフェースを介して、1つ以上のユーザによって構成可能である。別の実施形態では、アプリケーション決定機構235は、別のプログラム、スクリプト、アプリケーション、またはシステムによって、アプリケーションプログラミングインターフェースを介して構成される。
In some embodiments, the
リクエスト等のネットワーク通信と関連するアプリケーションを決定すると、システム120は、ネットワーク通信の任意の符号化部分を復号するために使用される符号化の種類を決定、識別、または取得する。一実施形態では、アプリケーション決定機構235および/またはアナライザ240等のシステム120は、ネットワーク通信自体の任意の部分またはデータ要素から、符号化の種類を識別する。例えば、システム120は、ネットワークパケットのペイロードにおけるデータ等の、ネットワーク通信の任意の解析された要素から、符号化の種類を識別してもよい。別の実施形態では、システム120は、アプリケーションプログラミングインターフェース等を介して、クエリまたは検索から、テーブル、データベース、ファイル、オブジェクト、データ構成、またはそのような情報を有するその他の記憶媒体または構成機構へと、アプリケーションに対する符号化の種類を識別または取得する。
Upon determining an application associated with the network communication, such as a request, the
さらに別の実施形態では、システム120は、規則/方針エンジン250から、アプリケーションに対する符号化スキームを識別または取得する。例えば、アプリケーション決定機構235および/またはアナライザ240は、方針エンジン250にクエリを行い、所与のアプリケーションに対する符号化スキームを取得してもよい。一部の実施形態では、アプリケーションには、時間的情報、クライアント情報、ユーザ情報、デバイス情報、ネットワークの状態、任意のシステムの状態、履歴情報、および統計情報に基づく、それと関連する複数の符号化の種類があってもよい。一実施形態では、システム120は、上記の種類の情報のうちの1つ以上に基づいて、アプリケーションに対する符号化の種類を、規則/方針エンジン250から要求する。例えば、第1のアプリケーションは、週の第1日または時間に第1の符号化の種類を、週の第2日または時間に第2の符号化の種類を使用してもよく、または使用することを許可されてもよい。一例では、システム120は、識別されたアプリケーションおよび時間的情報により、方針エンジン250にクエリを行い、アプリケーションのネットワーク通信を処理するために使用される符号化の種類を決定してもよい。
In yet another embodiment, the
アナライザ240は、ネットワーク通信またはその任意の一部を分析する任意の論理、機能、および/または操作を備える。一実施形態では、アナライザ240は、文字セットにおいて符号化された、リクエスト等のネットワーク通信の一部を復号する。一部の実施形態では、アナライザ240は、パーサ230またはアプリケーション決定機構235等の文字セットエンジン225のその他任意の部分から、アプリケーションに使用する符号化スキームを取得してもよい。他の実施形態では、アナライザ240は、規則/方針エンジン250から、アプリケーションに対する符号化スキームを取得する。一実施形態では、パーサ230またはアプリケーション決定機構235は、アナライザ240へのネットワーク通信に、アプリケーションに対する符号化の種類を使用して復号されるネットワーク通信の符号化部分を提供する。
一実施形態では、アナライザ240は、ネットワーク通信のコンテンツを検査または分析するために、アプリケーションの識別および/または関連符号化の種類を使用する。一部の実施形態では、アナライザ240は、システム120によって受信されるネットワークトラフィックの流れに対して一方向および双方向分析を行う。例えば、アナライザ240は、ネットワークパケットのそれぞれに対してディープストリーム検査を行ってもよい。他の実施形態では、アナライザ240は、HTTPおよびHTMLヘッダおよびペイロードを検査し、分析する。一実施形態では、システム120は、パーサ230等を介して、完全HTML構文解析を行うことが可能であり、アナライザ240は、HTML通信の任意の部分を検査および分析することが可能である。さらに別の実施形態では、アナライザ240は、セッション、およびセッションや、システム120によって受信および処理されるネットワークトラフィックの状態を識別し、維持し、追跡する。
In one embodiment,
なおも図2を参照すると、システム120はまた、ネットワーク通信の検査、フィルタリング、または分析に基づいて1組の1つ以上の方針を適用するための規則/方針エンジン250を含んでもよい。一実施形態では、方針エンジン250は、それによりアプリケーションがネットワーク204にアクセスすることが可能である、日付、時間、またはスケジュールについての方針を備える。別の実施形態では、方針エンジン250は、それにより識別された計算装置100または識別されたユーザによってアプリケーションを使用することが可能である、日付、時間、またはスケジュールについての方針を備える。なおも別の実施形態では、方針エンジン250は、それにより符号化スキームが使用される、またはアプリケーションに対して使用することが可能である、日付、時間、またはスケジュールについての方針を備える。例えば、ユーザは、システム120の規則または方針を構成して、第1のアプリケーションが、週の第1日の間または第1の指定時間範囲の間に第1の符号化スキームを使用し、週の第2日の間または第2の指定時間範囲の間に第2の符号化スキームを使用することを可能にしてもよい。
Still referring to FIG. 2, the
一実施形態では、システム120は、クライアントの1つ以上の属性または特性を識別して決定する、終点検出および走査機構を備える。例えば、システム120は、1)オペレーティングシステムおよび/またはオペレーティングシステムのバージョン、2)オペレーティングシステムのサービスパック、3)実行しているサービス、4)実行しているプロセス、および5)ファイル、といったクライアント側属性のうちのいずれか1つ以上を識別して決定する。システム120はまた、クライアントにおける、1)ウイルス対策ソフトウェア、2)パーソナルファイアウォールソフトウェア、3)スパムメール対策ソフトウェア、および4)インターネットセキュリティソフトウェアのうちのいずれか1つ以上の存在またはバージョンを識別し、決定してもよい。方針エンジン250には、クライアントの属性または特性、あるいはクライアント側属性のうちのいずれか1つ以上に基づく1つ以上の方針があってもよい。一部の実施形態では、方針エンジン250は、任意のクライアント属性に基づいて、アプリケーションと関連する符号化スキームの種類、またはアプリケーションに使用する復号の種類を特定してもよい。例えば、方針エンジン250は、クライアントがオペレーティングシステムの特定言語のバージョンを実行している場合、そのクライアントで実行しているアプリケーションからの符号化リクエストを復号するために、特定言語と関連する符号化スキームが使用されるという、方針を備えてもよい。
In one embodiment, the
一部の実施形態では、規則/方針エンジン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 /
さらに別の実施形態では、システム120は、ネットワーク通信に含有される任意の秘密情報を保護する。システム120は、エンジン250の規則または方針に従って任意のネットワーク通信を検査または分析し、ネットワークパケットの任意のフィールドにおける任意の秘密情報を識別してもよい。一部の実施形態では、システム120は、ネットワーク通信において、クレジットカード番号、パスワード、社会保障番号、名前、患者コード、連絡先情報、および年齢うちの1つ以上の発生を識別する。ネットワーク通信の符号化部分は、これらの発生または秘密情報を備えてもよい。これらの発生に基づいて、一実施形態では、システム120は、ネットワーク通信の伝送を妨げる等の、ネットワーク通信に対する方針措置を行ってもよい。別の実施形態では、システム120は、そのような識別された発生または秘密情報を、書き直す、除去する、または隠してもよい。
In yet another embodiment, the
システム120のアプリケーションごとの符号化識別および復号機能性により、アナライザ240および方針エンジン250は、それぞれ1つ以上の異なる符号化の種類を同時または後で使用して、アプリケーションファイアウォールおよびセキュリティ制御を、複数のアプリケーションの符号化ネットワーク通信に適用してもよい。そのようなものとして、規則/方針エンジン250において構成される規則および方針は、アプリケーションの種類、名前、またはインスタンス、および本願で説明されるシステムの操作に従って決定されるようなアプリケーションと関連する符号化スキームの両方において、適用することが可能である。さらに、システム120は、符号化スキームを知らずに復号、検査、および分析することができなかったネットワーク通信の符号化部分の分析を可能にする。そうすることによって、システム120は、アプリケーションごと、および/または符号化スキームごとに、アプリケーションファイアウォールおよびセキュリティ方針などの方針を、url符号化コンテンツを有するリクエスト等のネットワーク通信の符号化部分に適用することが可能である。
Because of the per-application coding identification and decoding functionality of the
パーサ230、アプリケーション決定機構235、およびアナライザ240は、図2で文字セットエンジン225に含まれるとして図示されるが、パーサ230、アプリケーション決定機構235、およびアナライザ240のうちのいずれか、またはそれらの任意の一部は、装置100またはアプリケーション文字セット符号化/復号システム120の任意の一部において、常駐、動作、または実行してもよい。加えて、単一の論理実体または構成要素として示されるが、アプリケーション文字セット符号化/検査システム120はまた、クライアント等の第1の装置100aにおいて実行する第1の部分、およびサーバまたはゲートウェイ等の第2の装置100bにおいて実行する第2の部分により、分散型方式で動作してもよい。さらに別の実施形態では、複数のアプリケーション文字セット符号化/復号システム、例えば120、120’等は、互いに恊働または連動して動作し、1つ以上のアプリケーション、ゲートウェイ、クライアント、またはサーバに対する、本願で説明される機能性および技法を提供してもよい。
The
アプリケーション文字セット符号化/検査システム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 /
一部の実施形態では、アプリケーション文字セット符号化/検査システム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 /
一例として、かつ限定的または排他的となることを全く意図せずに、日本語については、システム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
一例として、かつ限定的または排他的となることを全く意図せずに、中国語については、システム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
システム120は、一度に、互いの後に、または同時に使用される、複数の言語および複数の符号化スキームで動作してもよい。一部の実施形態では、システム120は、日本語、朝鮮語、および中国語に対して同じ符号化を使用する等、複数の言語に対して同じ符号化スキームを使用して、または、日本語、朝鮮語、および中国語のそれぞれに対する異なる符号化スキーム等の、複数の言語のそれぞれに対する異なる符号化スキームで動作してもよい。
ここで図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
さらに詳細に、ステップ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,
一部の実施形態では、システム120には、リクエストによって使用される符号化スキームの予備知識がない。一実施形態では、リクエスト自体は、リクエストの符号化部分に使用される符号化スキームを識別しない。例えば、一実施形態では、リクエストは、フォーム−url−符号化コンテンツ型を使用して、HTMLフォーム等のフォームの提出を含む。別の実施形態では、リクエストは、文字符号化を識別するタグを提供しない。さらに他の実施形態では、リクエストは、符号化システムの識別を含む。なおも別の実施形態では、システム120は、発見的規則または論理を使用して符号化の種類を推測することによって、リクエストに対する符号化スキームを理解する。一部の実施形態では、システム120は、アプリケーションまたはクライアントの挙動に基づいて符号化スキームを決定してもよい。一実施形態では、システムは、システム120、ゲートウェイ105、サーバ106、および/またはクライアント101の間で知られる符号化スキームの使用に基づいて、符号化スキームを決定する。
In some embodiments, the
ステップ315において、システム120は、リクエストが対応する複数のアプリケーションのうちの1つを決定する。一実施形態では、アプリケーション決定機構235は、パーサ230による等、リクエストから識別および/解析される1つ以上のデータ要素からアプリケーションを決定する。一部の実施形態では、アプリケーション決定機構235は、データベース、テーブル、ファイル、オブジェクト、データ構造、またはその他の記憶媒体から、インターネットプロトコルアドレスおよび/またはポートを対応するアプリケーションの検索にマップすることによって、リクエストを生成するか、またはそれと関連するアプリケーションを決定する。一実施形態では、アプリケーション決定機構235は、名前、種類、またはインスタンスによってアプリケーションを識別するリクエストのペイロードにおけるデータ要素から、アプリケーションを決定する。
In step 315, the
ステップ320において、文字セットエンジン225等のシステム120は、ステップ315において決定されるアプリケーションに対する符号化スキームまたは文字セットを識別する。一実施形態では、文字セットエンジン225は、アプリケーション決定機構235またはアナライザ240を介する等して、クエリを行うか、またはデータベース、ファイル、テーブル、オブジェクト、データ構造、またはアプリケーションを1つ以上の符号化スキームにマップするその他の記憶媒体から、アプリケーションに対する符号化スキームの検索を行う。さらに別の実施形態では、文字セットエンジン225は、リクエストの任意の一部から、アプリケーションに対する符号化スキームを決定する。一実施形態では、文字セットエンジン225は、パーサ230によって識別または解析される1つ以上のデータ要素に対する符号化スキームを識別する。一部の実施形態では、文字セットエンジン225は、アプリケーションと関連する符号化スキームを格納するキャッシュ、メモリまたは記憶要素から、アプリケーションに対する符号化スキームを識別する。例えば、一実施形態では、文字セットエンジン225は、アプリケーションに対する以前に使用した符号化スキームを追跡する。さらに別の実施形態では、文字セットエンジン225は、文字セットを識別する情報を有するクライアントリクエストへの応答等のネットワーク通信から、アプリケーションに対する符号化スキームを識別する。例えば、一実施形態では、システム120は、サーバのネットワーク通信からのそのような情報を識別し、解析する。
In step 320,
一部の実施形態では、文字セットエンジン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 /
ステップ325において、システム120は、リクエストの符号化部分を復号するために識別符号化スキームを使用する。一実施形態では、文字セットエンジン225は、パーサ230、アプリケーション決定機構235、および/またはアナライザ240を介する等して、識別された符号化スキームをリクエストの符号化部分に適用する。そのようなものとして、アナライザ240は、符号化部分を、アナライザ240によって検査または分析することが可能なデータ要素、テキスト、または文字列に復号する。例えば、一実施形態において、リクエストの復号された部分は、SQLまたはサーバ106において実行されるその他の種類のコマンドを形成してもよい。一部の実施形態では、アナライザ240は、復号されたコンテンツを含むリクエストを検査または分析して、リクエストが、規則/方針エンジン250を介して構成される規則および/または方針のいずれかに適合または違反するかどうかを決定する。図2と併せて上記のように、アナライザ240は、双方向分析、ディープストリーム検査、HTML検査、セッション状態管理、HTMLフォームフィールド保護、クッキーポイズン保護、強制ブラウザ保護、およびウェブ脆弱性保護等の、任意の論理、機能、および操作を行ってもよい。
In step 325, the
ステップ330において、システム120は、復号されたリクエストの分析に基づいて、1つ以上の規則または方針をリクエストに適用する。一実施形態では、リクエストが、ネットワーク104上の伝送(またはネットワーク104上のさらなる伝送)に対する方針エンジン250の方針を満たさない場合、ゲートウェイ105において配備されるシステム120等のシステム120は、リクエストを拒絶または撤回してもよい。別の実施形態では、システム120は、リクエストが方針に従わない場合、アプリケーションまたはアプリケーションのユーザを隔離してもよい。さらに別の実施形態では、システム120は、リクエストが方針に従わない場合、アプリケーションのネットワークアクセスを降格または制限してもよい。他の実施形態では、システム120は、クライアントのSSL VPN接続を切断する等、ネットワーク104へのクライアントの接続を切断してもよい。一部の実施形態では、システム120は、リクエストが方針に従わない、または方針を満たさない場合、アプリケーションセッションを切断または終了してもよい。
In step 330, the
方法300の技法は、アプリケーションからのリクエストとの関連で概して上記で説明されるものの、方法300は、互いの後および/または同時に、複数のアプリケーションに対して行うことが可能である。システム120は、異なるアプリケーションから、ステップ310において複数のリクエストを受信または傍受してもよく、それぞれには、別のアプリケーションと同じ、または異なる符号化スキームを使用する符号化部分がある。例えば、システム120は、複数のクライアントおよびアプリケーションに情報提供するゲートウェイ105上に配備されてもよい。複数のリクエストのうちの各リクエストに対して、システム120は、ステップ315でリクエストと関連するアプリケーション、ステップ320でアプリケーションに使用される文字セット符号化を決定し、ステップ325において、リクエストの符号化部分を復号して復号されたリクエストを分析し、ステップ330において、任意の関連方針をリクエストに適用する。そのようなものとして、一部の実施形態では、システム120は、アプリケーションごとに方法300の技法を行い、リクエストごとに関連符号化スキームを適用する。一実施形態では、システム120は、第1のリクエストに応じて、アプリケーションに対する第1の符号化スキームを使用してもよく、第2の以降のリクエストに応じて、同じアプリケーションに対する第2の異なる符号化スキームを使用してもよい。
Although the techniques of
アプリケーション符号化/検査システム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 /
第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
上記のシステム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
場合によっては、アプリケーション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
本願で説明されるゲートウェイ105により、ゲートウェイは、異なる符号化スキームを使用して、複数のアプリケーションからのリクエストを復号し、分析し、方針を適用することが可能である。ゲートウェイ105は、アプリケーションごと、およびリクエストごとの復号機構を提供して、日本語、朝鮮語、ロシア語、または中国語のアプリケーションのユーザに対して配備されるネットワーク環境にあってもよいもの等の、複数の異なる文字セット符号化アプリケーションを配備する環境に方針を適用することにおいて、多大な柔軟性を提供する。ゲートウェイ105は、アプリケーションファイアウォールおよびセキュリティ制御装置を異なる方法で符号化されたネットワーク通信に適用するステップが符号化コンテンツで見出される場合のある、脆弱性およびセキュリティ懸案事項からネットワーク環境を保護することを可能にする。
The
本発明の精神および範囲から逸脱することなく、多くの変更および修正が、当業者によって行われてもよい。したがって、解説された実施形態は、実施例の目的で示されているに過ぎず、次の請求項によって規定される本発明を限定するとして理解されるべきではないことを、明示的に理解しなければならない。これらの請求項は、それらが文字通りに説明するもの、また、他の側面において上記の解説で図示および説明されるものと同一ではないにしても、わずかに異なる同等の要素を含むものとして、読まれるものである。 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)該装置によって、該第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 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 .
(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.
(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.
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)
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)
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)
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 |
-
2006
- 2006-05-31 JP JP2009513111A patent/JP4862079B2/en active Active
- 2006-05-31 CN CN2006800548039A patent/CN101449553B/en active Active
- 2006-05-31 WO PCT/US2006/021067 patent/WO2007139552A1/en active Application Filing
-
2008
- 2008-11-28 KR KR1020087029166A patent/KR101265920B1/en active IP Right Grant
-
2009
- 2009-12-03 HK HK09111347.8A patent/HK1133964A1/en not_active IP Right Cessation
Patent Citations (8)
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 |