(57)【要約】ゲートウェイ（１０５）によるリクエスト提出傍受の文字セット符号化を決定し、文字セットに従ってリクエストを復号するシステムおよび方法を開示する。ゲートウェイ（１０５）は、ｕｒｌ符号化リクエスト等の符号化コンテンツを備えるクライアント（１０１ａ、．．．／１０１ｎ）からのリクエストを受信する。ゲートウェイ（１０５）は、リクエストを生成、またはそれと関連するアプリケーション（１１０Ａ、．．．、１１０Ｎ）を決定する。決定されたアプリケーションに基づいて、ゲートウェイは、アプリケーションと関連またはそれに使用される文字符号化スキームを識別する。次に、ゲートウェイ（１０５）は、識別された文字符号化スキームを使用して、リクエストの一部を復号し、任意の規則または方針をリクエストに適用する。一部の実施形態では、ゲートウェイは、アプリケーションファイアウォールまたはセキュリティ制御システムとして動作する。
2009539176.tif 000002
【特許請求の範囲】
【請求項１】
リクエストを復号するための使用に用いられる文字符号化を決定する方法であって、
（ａ）リクエストを受信するステップと、
（ｂ）複数のアプリケーションプログラムのうちのどの１つに該リクエストが対応するかを決定するステップと、
（ｃ）該決定されたアプリケーションプログラムと関連する文字符号化を識別するステップと、
（ｄ）該リクエストを検査するために該識別された文字符号化を使用するステップと
を含む、方法。
【請求項２】
ステップ（ｂ）は、前記リクエストの属性から、前記複数のアプリケーションプログラムのうちのどの１つに該リクエストが対応するかを決定するステップを含む、請求項１に記載の方法。
【請求項３】
前記属性は、ソース識別子、宛先識別子、ポート識別子、プロトコル識別子、ヘッダ情報、またはユニフォームリソースロケータアドレスのうちの１つを備える、請求項２に記載の方法。
【請求項４】
ステップ（ｂ）は、前記受信されたリクエストに含まれるクッキーを使用して、前記複数のアプリケーションプログラムのうちのどの１つに該リクエストが対応するかを決定するステップを含む、請求項１に記載の方法。
【請求項５】
ステップ（ｃ）は、文字符号化とアプリケーションとの間の関連性を含有するファイルを使用して、前記決定されたアプリケーションプログラムと関連する前記文字符号化を識別するステップを含む、請求項１に記載の方法。
【請求項６】
ステップ（ｃ）は、文字符号化とアプリケーションとの間の関連性を含有するデータベースを使用して、前記決定されたアプリケーションプログラムと関連する前記文字符号化を識別するステップを含む、請求項１に記載の方法。
【請求項７】
（ａ）第２のリクエストを受信するステップと、
（ｂ）該第２のリクエストが対応する、前記複数のアプリケーションプログラムのうちの第２の１つを決定するステップと、
（ｃ）前記決定された第２のアプリケーションプログラムと関連する第２の文字符号化を識別するステップと
をさらに含む、請求項１に記載の方法。
【請求項８】
ステップ（ａ）は、クライアントによって生成されるリクエストを受信するステップを含む、請求項１に記載の方法。
【請求項９】
ステップ（ｂ）は、前記クライアントの属性を使用して、前記複数のアプリケーションプログラムのうちのどの１つに前記リクエストが対応するかを決定するステップを含む、請求項８に記載の方法。
【請求項１０】
ステップ（ａ）は、キャッシュされたフォームページに基づくリクエストを受信するステップを含む、請求項１に記載の方法。
【請求項１１】
リクエストを復号するために使用される文字符号化を決定することが可能なゲートウェイであって、該システムは、
ネットワークを介してクライアントと通信しており、該クライアントからリクエストを受信する受信機と、
該受信機と通信している文字セットエンジンであって、該リクエストが向けられる前記アプリケーションに応答する受信したリクエストと関連する文字符号化を識別し、該リクエストを検査するために該識別された文字セットを使用する、文字セットエンジンと
を備える、ゲートウェイ。
【請求項１２】
前記受信機は、複数のクライアントと通信する、請求項１１に記載のゲートウェイ。
【請求項１３】
前記リクエストが向けられるアプリケーションプログラムを決定するために、該リクエストに含有される、ソース識別子、宛先識別子、ポート識別子、プロトコル識別子、ヘッダ情報、またはユニフォームリソースロケータアドレスのうちの１つを使用する、請求項１１に記載のゲートウェイ。
【請求項１４】
前記文字セットエンジンは、文字符号化とアプリケーションとを関連付けるデータベースを備える、請求項１１に記載のゲートウェイ。
【請求項１５】
前記文字セットエンジンは、文字符号化とアプリケーションとを関連付けるファイルを備える、請求項１１に記載のゲートウェイ。
【請求項１６】
ゲートウェイによって、クライアントから受信される符号化部分を有するリクエストを検査する方法であって、
（ａ）ゲートウェイによって、クライアント上のアプリケーションプログラムからリクエストを受信するステップと、
（ｂ）該ゲートウェイによって、複数のアプリケーションプログラムのうちのどの１つに該リクエストが対応するかを決定するステップと、
（ｃ）該ゲートウェイによって、該決定されたアプリケーションプログラムと関連する文字符号化を識別するステップと、
（ｄ）該ゲートウェイによって、該識別された文字符号化を使用して、前記リクエストの一部を復号するステップと、
（ｅ）該ゲートウェイによって、該リクエストの該復号された部分を検査するステップと
を含む、方法。
【請求項１７】
前記ゲートウェイによって、前記リクエストの属性を使用して、前記複数のアプリケーションプログラムのうちのどの１つに該リクエストが対応するかを決定するステップを含む、請求項１６に記載の方法。
【請求項１８】
前記ゲートウェイによって、前記クライアントの属性を使用して、前記複数のアプリケーションプログラムのうちのどの１つに前記リクエストが対応するかを決定するステップを含む、請求項１６に記載の方法。
【請求項１９】
前記ゲートウェイによって、前記リクエストの前記復号された部分の検査に基づいて、方針を該リクエストに適用するステップを含む、請求項１６に記載の方法。
【請求項２０】
（ｆ）前記ゲートウェイによって、前記クライアントまたは第２のクライアントのうちの一方における第２のアプリケーションプログラムから第２のリクエストを受信するステップと、
（ｇ）該ゲートウェイによって、前記複数のアプリケーションプログラムのうちのどの１つに該第２のリクエストが対応するかを決定するステップと、
（ｈ）該ゲートウェイによって、該決定されたアプリケーションプログラムと関連する第２の文字符号化を識別するステップと、
（ｉ）該ゲートウェイによって、該識別された第２の文字符号化を使用して、該第２のリクエストの一部を復号するステップと
を含む、請求項１６に記載の方法。
【請求項２１】
前記ゲートウェイによって、前記第２のリクエストの前記復号された部分を検査するステップを含む、請求項２０に記載の方法。
【請求項２２】
前記ゲートウェイによって、前記第２のリクエストの前記復号された部分の検査に基づいて、方針を該第２のリクエストに適用するステップを含む、請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、アプリケーションのリクエストに対する文字符号化を決定するステップに関する。さらに具体的には、本発明は、ゲートウェイを介して提出されるアプリケーションのリクエストを復号するための文字符号化を決定するためのシステムおよび方法に関する。
【背景技術】
【０００２】
インターネットとして知られる世界規模のコンピュータネットワーク上のユーザから情報を獲得する一般的に知られている方法は、データを投入するブラウザのユーザに対する１つ以上のフィールドを提供するページである、「フォーム（ｆｏｒｍ）」として知られる技法である。しかし、フォームを介して提出することができる文字に対する多くの異なる符号化が存在し、リクエストにおいて、どの文字セットをリクエストに使用するべきかを示す方法がない場合がある。それを作成するために使用されるものとは異なる、フォーム提出（ｓｕｂｍｉｓｓｉｏｎ）を復号するための文字符号化セット（「文字セット（ｃｈａｒｓｅｔ）」）の使用は、サーバによるフォームの拒絶または誤解をもたらし得る。ネットワーク装置には、フォームの生成および処理に責任があるアプリケーション論理へのアクセスがないため、この問題は、サーバとクライアントとの間に配備されるアプリケーションファイアウォール等の中間ネットワーク装置に対して悪化する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
この文字セット問題を解決しようとしてきた１つの技法は、フォームを生成し、クライアントに送信するために使用される文字セットを再符号化するネットワーク装置に依存している。しかし、例えばＪａｖａ（登録商標）ｓｃｒｉｐｔを使用して、フォームがクライアント上で完全に生成されると、この技法は機能しない。ネットワーク装置はまた、全フォームリクエストが「ｕｔｆ−８」として知られる符号化を使用すると仮定することによって、この問題を解決しようとしてもよい。しかし、このアプローチには明白な欠点がある。
【課題を解決するための手段】
【０００４】
本発明のシステムおよび方法は、サーバアプリケーションまたはクライアントブラウザが再符号化されることを必要とせずに、異なる方法で符号化されたコンテンツまたは未確認文字セットで符号化されるコンテンツを備えてもよい、アプリケーションからのリクエストを効果的かつ確実に取り扱い、復号し、および分析するための解決法を提供する。説明した技法はまた、拡張して、異なる状況に異なる文字セットを使用するために、方針がリクエストに適用されることを可能にしてもよい。結果として、サーバとクライアントとの間のフォーム提出およびその他のリクエストを検査して、悪質なリクエスト（ＳＱＬ導入リクエスト等）が最小数の誤検出でサーバアプリケーションに到達することを許可されないことを、確実にしてもよい。
【０００５】
一側面では、本発明は、リクエストを復号するために使用される文字符号化を決定するための方法に関する。方法は、リクエストを受信するステップと、リクエストが対応する複数のアプリケーションプログラムのうちのアプリケーションプログラムを決定するステップとを含む。方法は、決定されたアプリケーションプログラムと関連する文字符号化を識別し、リクエストを検査するために、識別された文字符号化を使用する。
【０００６】
一実施形態では、方法は、リクエストの属性から、複数のアプリケーションプログラムのうちのどの１つにリクエストが対応するかを決定する。一部の実施形態では、リクエストの属性は、１）ソース識別子、２）宛先識別子、３）ポート識別子、４）プロトコル識別子、５）ヘッダ情報、または６）ユニフォームリソースロケータ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ：ＵＲＬ）アドレスを含む。別の実施形態では、方法は、受信したリクエストに含まれるクッキーを使用して、複数のアプリケーションプログラムのうちのどの１つにリクエストが対応するかを決定する。
【０００７】
他の実施形態では、方法は、文字符号化とアプリケーションとの間の関連性を含有するファイルを使用して、決定されたアプリケーションプログラムと関連する文字符号化を識別する。一部の実施形態では、方法は、文字符号化とアプリケーションとの間の関連性を含有するデータベースを使用して、決定されたアプリケーションプログラムと関連する文字符号化を識別する。
【０００８】
一実施形態では、方法は、第２のリクエストを受信するステップと、第２のリクエストが対応する、複数のアプリケーションプログラムのうちの第２の１つを決定するステップと、決定された第２のアプリケーションプログラムと関連する第２の文字符号化を識別するステップとを含む。別の実施形態では、方法は、クライアントによって生成されるリクエストを受信するステップを含む。方法は、クライアントの属性を使用して、複数のアプリケーションプログラムのうちのどの１つにリクエストが対応するかを決定してもよい。さらに別の実施形態では、方法は、キャッシュされたフォームページに基づくリクエストを受信するステップを含む。
【０００９】
別の側面では、本発明は、リクエストを復号するために使用される文字符号化を決定することが可能な、ゲートウェイに関する。該システムは、ネットワークを介してクライアントと通信しており、かつクライアントからリクエストを受信する受信機を含む。システムはまた、受信機と通信している文字セットエンジンも含む。文字セットエンジンは、リクエストが向けられるアプリケーションに応答する受信したリクエストと関連する文字符号化を識別し、リクエストを検査するために、識別された文字セットを使用する。
【００１０】
一実施形態では、ゲートウェイは、複数のクライアントと通信する。一部の実施形態では、ゲートウェイは、リクエストが向けられるアプリケーションプログラムを決定するために、リクエストに含有される、１）ソース識別子、２）宛先識別子、３）ポート識別子、４）プロトコル識別子、５）ヘッダ情報、または６）ユニフォームリソースロケータアドレスのうちの１つを使用する。別の実施形態では、文字セットエンジンは、文字符号化およびアプリケーションを関連付けるデータベースを含む。他の実施形態では、文字セットエンジンは、文字符号化およびアプリケーションを関連付けるファイルを含む。
【００１１】
さらに別の側面では、本発明は、ゲートウェイによって、符号化部分を有するクライアントリクエストを検査するための方法に関する。方法は、ゲートウェイによって、クライアント上のアプリケーションプログラムからリクエストを受信するステップを含む。方法はまた、ゲートウェイによって、複数のアプリケーションプログラムのうちのどの１つにリクエストが対応するかを決定するステップと、決定されたアプリケーションプログラムと関連する文字符号化を識別するステップとを含む。方法はさらに、ゲートウェイによって、識別された文字符号化を使用して、リクエストの一部を復号するステップと、リクエストの復号された部分を検査または分析するステップとを含む。
【００１２】
方法の一実施形態では、ゲートウェイは、リクエストの属性を使用して、複数のアプリケーションプログラムのうちのどの１つにリクエストが対応するかを決定する。別の実施形態では、ゲートウェイは、クライアントの属性を使用して、複数のアプリケーションプログラムのうちのどの１つにリクエストが対応するかを決定する。さらに別の実施形態では、ゲートウェイは、リクエストの復号された部分の検査に基づいて、方針をリクエストに適用する。
【００１３】
一部の実施形態では、方法は、ゲートウェイによって、クライアントまたは第２のクライアントのうちの一方における第２のアプリケーションプログラムから第２のリクエストを受信するステップを含む。ゲートウェイは、複数のアプリケーションプログラムのうちのどの１つに第２のリクエストが対応するかを決定し、決定されたアプリケーションプログラムと関連する第２の文字符号化を識別する。ゲートウェイは、識別された第２の文字符号化を使用して、第２のリクエストの一部を復号する。一部の実施形態では、ゲートウェイは、第２のリクエストの復号された部分を検査または分析する。別の実施形態では、方法は、ゲートウェイによって、第２のリクエストの復号された部分の検査に基づいて、方針を第２のリクエストに適用するステップを含む。
【００１４】
本発明の様々な実施形態の詳細は、添付図面および下記の発明を実施するための最良の形態において説明される。本発明の前述およびその他の目的、側面、特徴、および利点は、添付図面と併せて理解される次の発明を実施するための最良の形態を参照することによって、さらに明白となり、より良く理解することができる。
【図面の簡単な説明】
【００１５】
【図１Ａ】図１Ａは、アプリケーションに対する文字セット符号化を決定するシステムを有するゲートウェイを配備する、一例のネットワーク環境のブロック図である。
【図１Ｂ】図１Ｂは、クライアントおよび／またはサーバ上に、アプリケーションに対する文字セット符号化を決定するシステムを配備する、別のネットワーク環境のブロック図である。
【図１Ｃ】図１Ｃおよび１Ｄは、本発明のシステムの例示的実施形態を実践するための計算装置の実施形態のブロック図である。
【図１Ｄ】図１Ｃおよび１Ｄは、本発明のシステムの例示的実施形態を実践するための計算装置の実施形態のブロック図である。
【図２】図２は、クライアントからのリクエストを復号および分析するために使用する、アプリケーションに対する文字セット符号化を決定するためのシステムのブロック図である。
【図３】図３は、クライアントのリクエストを復号および分析するために使用する、アプリケーションに対する文字セット符号化を決定する技法の実施形態を実践する際に行われるステップのフロー図である。
【発明を実施するための形態】
【００１６】
本発明の特徴および利点は、類似参照文字が全体を通して対応する要素を識別する図面と併せて理解すると、下記で説明される発明を実施するための最良の形態から、さらに明白となる。図中、類似参照番号は概して、同一である、機能的に同様である、および／または構造的に同様である要素を示す。
【００１７】
本発明のある例示的実施形態を下記で説明する。しかし、本発明はこれらの実施形態に限定されないが、むしろ、意向は、本願で明示的に説明されるものに対する追加および修正もまた、本発明の範囲内に含まれるということが、明示的に記述される。さらに、本願で説明される様々な実施形態の特徴は、相互排他的ではなく、様々な組み合わせおよび置換で存在し得えて、たとえそのような組み合わせまたは置換が本願で明示的に行われなくても、本発明の精神および範囲から逸脱しないことが理解される。
【００１８】
図１Ａは、アプリケーション文字セット符号化および検査システム１２０を配備するゲートウェイを有する、ネットワーク環境のブロック図を示す。図１Ａに示されるように、一例のネットワーク環境は、複数のクライアント１０１ａ〜１０１ｎ、複数のサーバ１０６ａ〜１０６ｎ、および、アプライアンス、ゲートウェイアプライアンス、ゲートウェイサーバ、またはゲートウェイ装置と呼んでもよいゲートウェイ１０５を含む。サーバ１０６ａ〜１０６ｎは、要求されたコンテンツをクライアント１０１ａ〜１０１ｎに提供する、アプリケーション、データベース、およびその他の情報システムを管理する。クライアント１０１ａ〜１０１ｎおよびサーバ１０６ａ〜１０６ｎのそれぞれは、図１Ｃおよび１Ｄと併せて下記でさらに詳細に説明される計算装置１００等の、任意の種類および形式の計算装置であってもよい。例えば、クライアント１０１ａ〜１０１ｎのうちのいずれかは、通信機器、例えば、携帯電話または携帯情報端末、または任意の種類のデスクトップコンピュータに加えて、ラップトップまたはノート型コンピュータ等の、移動型計算装置であってもよい。
【００１９】
クライアント１０１ａ〜１０１ｎのそれぞれは、ネットワーク１０４を介してゲートウェイ１０５に通信的に連結される一方で、ゲートウェイ１０５は、ネットワーク１０４’を介してサーバ１０６ａ〜１０６ｎに通信的に連結される。一実施形態では、ネットワーク１０４は、インターネットを備え、ネットワーク１０４’は、会社または企業ネットワーク等のプライベートデータ通信ネットワークを備える。ネットワーク１０４、１０４’は、公衆、プライベート、または別の方法による、任意の種類および形式のネットワークとなり得て、場合によっては、同じネットワークであってもよい。
【００２０】
図１は、クライアント１０１ａ〜１０１ｎおよびサーバ１０６ａ〜１０６ｎ間のネットワーク１０４およびネットワーク１０４’を示すものの、クライアント１０１ａ〜１０１ｎおよびサーバ１０６ａ〜１０６ｎは、同じネットワーク１０４または１０４’上にあってもよい。ネットワーク１０４および１０４’は、同じ種類のネットワークまたは異なる種類のネットワークとなり得る。ネットワーク１０４、１０４’は、企業イントラネット等のローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはワールドワイドウェブ等の広域ネットワーク（ＷＡＮ）となり得る。ネットワーク１０４、１０４’は、任意の種類および／または形式のネットワークであってもよく、ポイントツーポイントネットワーク、放送ネットワーク、広域ネットワーク、ローカルエリアネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）ネットワーク、ＳＯＮＥＴ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ）ネットワーク、ＳＤＨ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｉｇｉｔａｌ  Ｈｉｅｒａｒｃｈｙ）ネットワーク、無線ネットワーク、および有線ネットワークのうちのいずれかを含んでもよい。ネットワーク１０４、１０４’のトポロジーは、バス、スター、またはリング型ネットワークトポロジーであってもよい。ネットワーク１０４、１０４’およびネットワークトポロジーは、本願で説明される操作をサポートすることが可能な、当業者に周知のような任意のネットワークまたはネットワークトポロジーであってもよい。
【００２１】
図１Ａに示されるように、ゲートウェイ１０５は、公衆データ通信ネットワーク等の第１のネットワーク１０４と、プライベートデータ通信ネットワーク等の第２のネットワーク１０４’との間に配備される。他の実施形態では、ゲートウェイ１０５は、第１のネットワーク１０４上または第２のネットワーク１０４’上に位置してもよい。他の実施形態では、ゲートウェイ１０５は、クライアント１０２ａ〜１０２ｎと同じ、または異なるネットワーク１０４上の任意の個別クライアント１０１ａ〜１０１ｎまたは任意の個別サーバ１０６ａ〜１０６ｎの不可欠な部分となり得る。そのようなものとして、ゲートウェイ１０５は、クライアント１０１ａ〜１０１ｎとサーバ１０６ａ〜１０６ｎとの間のネットワークまたはネットワーク通信経路における任意の点に位置してもよい。
【００２２】
クライアント１０１ａ〜１０１ｎのそれぞれは、本願では概してアプリケーションまたはアプリケーション１１０と呼ばれる、アプリケーション１１０ａ〜１１０ｎを実行、操作、または提供してもよい。アプリケーション１１０は、任意の種類および／または形式のウェブブラウザ、ウェブベースのクライアント、クライアント／サーバアプリケーション、シンクライアントコンピューティングクライアント、ＡｃｔｉｖｅＸコントロール、またはＪａｖａ（登録商標）アプレット等の、任意の種類および／または形式のソフトウェア、プログラム、または実行可能命令、またはクライアント１０１ａ〜１０１ｎ上で実行することが可能な任意の種類および／または形式の実行可能命令となり得る。一部の実施形態では、アプリケーション１１０ａ〜１１０ｎは、サーバ１０６ａ〜１０６ｎ上でクライアント１０１ａ〜１０１ｎの代わりに実行されるサーバベースまたは遠隔ベースのアプリケーションであってもよい。一実施形態では、サーバ１０６ａ〜１０６ｎは、フロリダ州、ローダーデールのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．製造のＩｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＣＡ）プロトコル、またはワシントン州、レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ製造のＲｅｍｏｔｅ  Ｄｅｓｋｔｏｐプロトコル（ＲＤＰ）等の任意のシンクライアントまたは遠隔表示プロトコルを使用して、クライアント１０１ａ〜１０１ｎへの出力を表示してもよい。
【００２３】
一部の実施形態では、サーバ１０６ａ〜１０６ｎまたはサーバファームは、シンクライアントコンピューティングを提供するアプリケーションまたは遠隔表示プレゼンテーションアプリケーション等の、１つ以上のアプリケーション１１０を実行していてもよい。一実施形態では、サーバ１０６ａ〜１０１ｎまたはサーバファームは、アプリケーション１１０として、ＭｅｔａＦｒａｍｅまたはＣｉｔｒｉｘ  Ｐｒｅｓｅｎｔａｔｉｏｎ  ＳｅｒｖｅｒＴＭ等の、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によるＣｉｔｒｉｘ  Ａｃｃｅｓｓ  ＳｕｉｔｅＴＭの任意の一部、および／または、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ製造のＭｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）（登録商標）  Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅｓのうちのいずれかを実行する。一実施形態では、アプリケーション１１０は、フロリダ州、フォルトローダーデールのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．開発のＩＣＡクライアントである。他の実施形態では、アプリケーション１１０は、ワシントン州、レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ開発のＲｅｍｏｔｅ  Ｄｅｓｋｔｏｐ（ＲＤＰ）クライアントを含む。他の実施形態では、サーバ１０６ａ〜１０６ｎは、アプリケーション１１０をクライアント１０１ａ〜１０１ｎに流してもよい。また、サーバ１０６ａ〜１０６ｎは、アプリケーション２３０を実行してもよく、それは例えば、ワシントン州、レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ製造のＭｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ等のＥメールサービスを提供するアプリケーションサーバ、ウェブまたはインターネットサーバ、またはデスクトップ共有サーバ、または共同サーバであってもよい。一部の実施形態では、アプリケーション１１０のうちのいずれかは、カリフォルニア州、サンタバーバラのＣｉｔｒｉｘ  Ｏｎｌｉｎｅ  Ｄｉｖｉｓｉｏｎ，Ｉｎｃ．提供のＧｏＴｏＭｅｅｔｉｎｇＴＭ、カリフォルニア州、サンタクララのＷｅｂＥｘ，Ｉｎｃ．提供のＷｅｂＥｘＴＭ、またはワシントン、レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ提供のＭｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ  Ｌｉｖｅ  Ｍｅｅｔｉｎｇ等の、任意の種類のホスト型サービスまたは製品を備えてもよい。
【００２４】
一実施形態に従って、ゲートウェイ１０５は、アプリケーション文字セット符号化および検査システム１２０を含む。下記でさらに詳しく説明されるように、このシステム１２０は、符号化コンテンツを備えるクライアント１０１ａ〜１０１ｎからのリクエストを受信する。例えば、クライアント１０１は、ｕｒｌ符号化部分等の符号化コンテンツを有する、ＨＴＴＰフォームまたはリクエストを提出してもよい。ある場合において、符号化スキームの種類は、リクエストから分からない場合がある。システム１２０は、リクエストを生成する、またはそれと関連するアプリケーションを決定する。例えば、システム１２０は、リクエストから、アプリケーションと関連しているインターネットプロトコルアドレスおよび／またはポートを識別してもよい。決定されたアプリケーションに基づいて、システム１２０は、アプリケーションと関連する、またはそれに使用される文字符号化スキームを識別する。例えば、システム１２０は、データベース、構成情報、または方針エンジンから符号化スキームを検索してもよい。次いで、システム１２０は、識別された文字符号化スキームを使用して、リクエストの一部を復号し、任意の規則または方針をリクエストに適用する。一部の実施形態では、システム１２０は、各アプリケーションと関連する符号化スキームに従ってそれが復号することが可能な、符号化アプリケーションネットワークトラフィックに方針を適用する、アプリケーションファイアウォールまたはセキュリティ制御システムとして動作する。
【００２５】
概してゲートウェイ１０５として説明されるものの、ゲートウェイは、アプライアンス、ネットワーク装置、またはサーバ等の、下記で説明されるような任意の種類および形式の計算装置１００であってもよい。一部の実施形態では、ゲートウェイ１０５は、第１のネットワーク１０４と第２のネットワーク１０４’との間の仮想プライベートネットワーク接続を確立または提供する。一実施形態では、ゲートウェイ１０５は、ネットワーク１０４、１０４’間のＳｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（ＳＳＬ）ＶＰＮ接続を確立する。別の実施形態では、ゲートウェイ１０５は、クライアント１０１ａ〜１０１ｎとゲートウェイ１０５との間のＴＣＰ接続等の第１のトランスポート層接続を確立し、ゲートウェイ１０５とサーバ１０６ａ〜１０６ｎとの間の第２のトランスポート層接続を確立する。別の実施形態では、ゲートウェイ１０５はまた、クライアント１０１ａ〜１０１ｎとサーバ１０６ａ〜１０６ｎとの間の暗号化セッションも確立または提供する。一実施形態では、ゲートウェイ１０５はまた、トランスポートまたはアプリケーション層において任意のプーリングおよび／または多重化接続技法を使用して、トランスポート層接続を介したクライアント１０１ａ〜１０１ｎへのアプリケーションの送達を加速してもよい。さらに別の実施形態では、ゲートウェイ１０５は、クライアント１０１ａ〜１０１ｎとサーバ１０６ａ〜１０６ｎとの間の１つ以上のネットワーク通信、またはその一部を圧縮する。他の実施形態では、ゲートウェイ１０５はまた、クライアント１０１ａ〜１０１ｎとサーバ１０６ａ〜１０６ｎとの間のいずれか１つ以上のネットワーク通信、またはその一部をキャッシュに格納するためのキャッシュを含んでもよい。
【００２６】
アプリケーション文字セット符号化／検査システム１２０は概して、図１Ａのように、ゲートウェイ１０５に配備されて示されるものの、システム１２０はまた、任意の計算装置１００に配備されてもよい。ここで例えば図１Ｂを参照すると、アプリケーション文字セット符号化／検査システム１２０は、クライアント１０１ａ等のクライアント１０１ａ〜１０１ｎのうちのいずれか１つ以上に配備されてもよい。一実施形態では、ゲートウェイ１０５を介してネットワーク１０４にアクセスするクライアント１０１のリクエストに応じて、ゲートウェイは、システム１２０を提供し、クライアント１０１にインストールしてもよい。一部の実施形態では、システム１２０は、ゲートウェイ１０５からの受信次第、クライアント１０１によって自動的にインストールされる。別の実施形態では、アプリケーション文字セット符号化／検査システム１２０は、サーバ１０６ｂ等の任意のサーバ１０６ａ〜１０６ｎに配備されてもよい。さらに別の実施形態では、システム１２０は、分配され、クライアント１０１、ゲートウェイ１０５、および／またはサーバ１０６上で実行するいずれか１つ以上の部分があってもよい。一実施形態では、システム１２０の複数のインスタンスは、クライアント１０１、ゲートウェイ１０５、および／またはサーバ１０６の任意の組み合わせにおいて実行してもよい。
【００２７】
図１Ｃおよび１Ｄは、計算装置１００のブロック図を示し、一部の実施形態では、本願で説明されるアプリケーション文字セット符号化／検査システム１２０の実施形態を実践するのに有用な、ネットワーク装置、ネットワークアプライアンス、またはアプライアンス１００とも呼ばれる。図１Ｃおよび１Ｄに示されるように、各計算装置１００は、中央処理装置(ＣＰＵ)１０２、およびメインメモリユニット１２２を含む。図１Ｃに示されるように、典型的な計算装置１００は、視覚的表示装置１２４、キーボード１２６、および／またはマウス等のポインティングデバイス１２７を含む。各計算装置１００はまた、１つ以上の入出力装置１３０ａ〜１３０ｂ（概して、参照数字１３０を使用して参照される）等の追加光学要素、および中央処理装置１０２と通信しているキャッシュメモリ１４０を含んでもよい。
【００２８】
中央処理装置１０２は、メインメモリユニット１２２から取り出される命令に応答して処理する、任意の論理回路である。多くの実施形態において、中央処理装置は、カリフォルニア州、マウンテンビューのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ製造のもの、イリノイ州、シャウムバーグのＭｏｔｏｒｏｌａ  Ｃｏｒｐｏｒａｔｉｏｎ製造のもの、カリフォルニア州、サンタクララのＴｒａｎｓｍｅｔａ  Ｃｏｒｐｏｒａｔｉｏｎ製造のもの、ニューヨーク州、ホワイトプレインズのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ製造のもの、カリフォルニア州、サニーベールのＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ製造のもの等の、マイクロプロセッサユニットによって提供される。計算装置１００は、これらのプロセッサのいずれか、または本願で説明されるように動作することが可能なその他任意のプロセッサに基づいてもよい。
【００２９】
メインメモリユニット１２２は、Ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ（ＳＲＡＭ）、Ｂｕｒｓｔ  ＳＲＡＭまたはＳｙｎｃｈＢｕｒｓｔ  ＳＲＡＭ（ＢＳＲＡＭ）、Ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ（ＤＲＡＭ）、Ｆａｓｔ  Ｐａｇｅ  Ｍｏｄｅ  ＤＲＡＭ（ＦＰＭ  ＤＲＡＭ）、Ｅｎｈａｎｃｅｄ  ＤＲＡＭ（ＥＤＲＡＭ）、Ｅｘｔｅｎｄｅｄ  Ｄａｔａ  Ｏｕｔｐｕｔ  ＲＡＭ（ＥＤＯ  ＲＡＭ）、Ｅｘｔｅｎｄｅｄ  Ｄａｔａ  Ｏｕｔｐｕｔ  ＤＲＡＭ（ＥＤＯ  ＤＲＡＭ）、Ｂｕｒｓｔ  Ｅｘｔｅｎｄｅｄ  Ｄａｔａ  Ｏｕｔｐｕｔ  ＤＲＡＭ（ＢＥＤＯ  ＤＲＡＭ）、Ｅｎｈａｎｃｅｄ  ＤＲＡＭ（ＥＤＲＡＭ）、ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ（ＳＤＲＡＭ）、ＪＥＤＥＣ  ＳＲＡＭ、ＰＣ１００  ＳＤＲＡＭ、Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  ＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、Ｅｎｈａｎｃｅｄ  ＳＤＲＡＭ（ＥＳＤＲＡＭ）、ＳｙｎｃＬｉｎｋ  ＤＲＡＭ（ＳＬＤＲＡＭ）、Ｄｉｒｅｃｔ  Ｒａｍｂｕｓ  ＤＲＡＭ（ＤＲＤＲＡＭ）、またはＦｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ（ＦＲＡＭ）等の、データを格納し、かつ任意の格納場所がマイクロプロセッサ１０２によって直接アクセスされることを可能にすることが可能な、１つ以上のメモリチップであってもよい。メインメモリ１２２は、上記のメモリチップのいずれか、または本願で説明されるように動作することが可能なその他任意の利用可能なメモリチップに基づいてもよい。図１Ｃに示される実施形態では、プロセッサ１０２は、システムバス１５０（下記でさらに詳しく説明される）を介してメインメモリ１２２と通信する。図１Ｃは、プロセッサがメモリポート１０３を介してメインメモリ１２２と直接通信する、計算装置１００の実施形態を示す。例えば、図１Ｄでは、メインメモリ１２２は、ＤＲＤＲＡＭであってもよい。
【００３０】
図１Ｄは、メインプロセッサ１０２が、時にはバックサイドバスと呼ばれる２次バスを介して、キャッシュメモリ１４０と直接通信する、実施形態を示す。他の実施形態では、メインプロセッサ１０２は、システムバス１５０を使用して、キャッシュメモリ１４０と通信する。キャッシュメモリ１４０は典型的に、メインメモリ１２２よりも応答時間が速く、典型的に、ＳＲＡＭ、ＢＳＲＡＭ、またはＥＤＲＡＭによって提供される。
【００３１】
図１Ｃに示される実施形態では、プロセッサ１０２は、ローカルシステムバス１５０を介して様々な入出力装置１３０と通信する。様々なバスは、中央処理装置１０２を入出力装置１３０のうちのいずれかに接続するために使用してもよく、ＶＥＳＡ  ＶＬバス、ＩＳＡバス、ＥＩＳＡバス、ＭｉｃｒｏＣｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、ＰＣＩバス、ＰＣＩ−Ｘバス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、またはＮｕＢｕｓを含む。入出力装置がビデオディスプレイ１２４である実施形態に対して、プロセッサ１０２は、ディスプレイ１２４と通信するためにＡｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ（ＡＧＰ）を使用してもよい。図１Ｄは、メインプロセッサ１０２がＨｙｐｅｒＴｒａｎｓｐｏｒｔ、Ｒａｐｉｄ  Ｉ／Ｏ、またはＩｎｆｉｎｉＢａｎｄを介して入出力装置１３０ｂと直接通信する、コンピュータ１００の実施形態を示す。図１Ｄはまた、ローカルバスおよび直接的通信が混合した実施形態も示し、プロセッサ１０２は、入出力装置１３０ｂと直接通信しながら、ローカル相互接続バスを使用して入出力装置１３０ａと通信する。
【００３２】
計算装置１００は、３．５インチ、５．２５インチ、またはＺＩＰディスク等のフロッピー（登録商標）ディスクを受入するためのフロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭドライブ、ＣＤ−Ｒ／ＲＷドライブ、ＤＶＤ−ＲＯＭドライブ、様々なフォーマットのテープドライブ、ＵＳＢ装置、ハードドライブ、または、アプリケーション文字セット符号化／検査システム１２０に関する任意のソフトウェア１２０またはその一部等のソフトウェアおよびプログラムをインストールするのに適したその他任意の装置等の、任意の適切な取付装置１１６をサポートしてもよい。計算装置１００はさらに、オペレーティングシステム（ＯＳ）およびその他の関連ソフトウェアを格納するため、およびアプリケーション文字セット符号化／検査システム１２０に関する任意のプログラム等のアプリケーションソフトウェアプログラムを格納するための、１つ以上のハードディスクドライブまたは独立ディスク冗長アレイ等の記憶装置１２８を備えてもよい。任意で、取付装置１１６のうちのいずれかは、記憶装置１２８として使用することも可能である。
【００３３】
さらに、計算装置１００は、ネットワークインターフェース１１８を含んで、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、または、標準電話線、ＬＡＮまたはＷＡＮリンク（例えば、８０２．１１、Ｔ１、Ｔ３、５６ｋｂ、Ｘ．２５）、ブロードバンド接続（例えば、ＩＳＤＮ、Ｆｒａｍｅ  Ｒｅｌａｙ、ＡＴＭ）、無線接続、または上記のいずれかまたは全ての何らかの組み合わせを含むが、それらに限定されない種々の接続を通したインターネットに、インターフェース接続してもよい。ネットワークインターフェース１１８は、内蔵型ネットワークアダプタ、ネットワークインターフェースカード、ＰＣＭＣＩＡネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、ＵＳＢネットワークアダプタ、モデム、または、通信および本願で説明される操作の実施が可能な任意の種類のネットワークに計算装置１００をインターフェース接続するのに適した任意のその他装置を備えてもよい。
【００３４】
多種多様の入出力装置１３０ａ〜１３０ｎは、計算装置１００に存在してもよい。入力装置は、キーボード、マウス、トラックパッド、トラックボール、マイク、およびドローイングタブレットを含む。出力装置は、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および昇華型プリンタを含む。入出力装置は、図１Ｃに示されるように、入出力制御装置１２３によって制御されてもよい。入出力制御装置は、キーボード１２６、およびポインティングデバイス１２７、例えば、マウスまたは光学ペン等の、１つ以上の入出力装置を制御してもよい。さらに、入出力装置はまた、計算装置１００に対する格納１２８および／または取付媒体１１６を提供してもよい。なおも他の実施形態では、計算装置１００は、ＵＳＢ接続を提供して、カリフォルニア州、アラミトスのＴｗｉｎｔｅｃｈ  Ｉｎｄｕｓｔｒｙ，Ｉｎｃ．製造のＵＳＢ  Ｆｌａｓｈ  Ｄｒｉｖｅ系の装置等の、手持ち式ＵＳＢ記憶装置を受入してもよい。
【００３５】
さらなる実施形態では、入出力装置１３０は、システムバス１５０と、ＵＳＢバス、Ａｐｐｌｅ  Ｄｅｓｋｔｏｐ  バス、ＲＳ−２３２シリアル接続、ＳＣＳＩバス、ＦｉｒｅＷｉｒｅバス、ＦｉｒｅＷｉｒｅ  ８００バス、Ｅｔｈｅｒｎｅｔ（登録商標）バス、ＡｐｐｌｅＴａｌｋバス、Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標）バス、Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒモードバス、ＨＩＰＰＩバス、Ｓｕｐｅｒ  ＨＩＰＰＩバス、ＳｅｒｉａｌＰｌｕｓバス、ＳＣＩ／ＬＡＭＰバス、ＦｉｂｒｅＣｈａｎｎｅｌバス、またはＳｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅバス等の外部通信バスとの間の、ブリッジ１７０であってもよい。
【００３６】
図１Ｃおよび１Ｄに示される種類の計算装置１００は、典型的に、タスクおよびシステムリソースへのアクセスのスケジューリングを制御するオペレーティングシステムの制御下で動作する。計算装置１００は、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムのバージョンのいずれか、Ｕｎｉｘ（登録商標）およびＬｉｎｕｘオペレーティングシステムの異なるリリース、Ｍａｃｉｎｔｏｓｈコンピュータ用のＭａｃＯＳ（登録商標）の任意のバージョン、任意の埋め込みオペレーティングシステム、任意のネットワークオペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意の専用オペレーティングシステム、移動型計算装置またはネットワーク装置用の任意のオペレーティングシステム、または計算装置上で実行し、かつ本願で説明される操作を行うことが可能なその他任意のオペレーティングシステム等の、任意のオペレーティングシステムを実行することが可能である。典型的なオペレーティングシステムは、とりわけ、全てワシントン州、レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ製造である、ＷＩＮＤＯＷＳ（登録商標）  ３．ｘ、ＷＩＮＤＯＷＳ（登録商標）  ９５、ＷＩＮＤＯＷＳ（登録商標）  ９８、ＷＩＮＤＯＷＳ（登録商標）  ２０００、ＷＩＮＤＯＷＳ（登録商標）  ＮＴ  ３．５１、ＷＩＮＤＯＷＳ（登録商標）  ＮＴ  ４．０、ＷＩＮＤＯＷＳ（登録商標）  ＣＥ、およびＷＩＮＤＯＷＳ（登録商標）  ＸＰ、カリフォルニア州、クパチーノのＡｐｐｌｅ  Ｃｏｍｐｕｔｅｒ製造のＭａｃＯＳ、ニューヨーク州、アーモンクのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ製造のＯＳ／２、およびユタ州、ソルトレイクシティのＣａｌｄｅｒａ  Ｃｏｒｐ．配布の無料で入手可能なオペレーティングシステムＬｉｎｕｘ、または任意の種類および／または形式のＵｎｉｘ（登録商標）オペレーティングシステムを含む。
【００３７】
他の実施形態では、計算装置１００には、装置と整合する、異なるプロセッサ、オペレーティングシステム、および入力装置があってもよい。計算装置１００は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノート型コンピュータ、サーバ、手持ちサイズのコンピュータ、携帯電話またはその他のポータブル電気通信装置、メディア再生装置、組み合わせ装置、特設、特殊、カスタム、または専用装置、または、通信が可能で、かつ本願で説明される本発明の操作を行うのに十分なプロセッサ力およびメモリ容量を有する、その他任意の種類および／または形式の計算または電気通信装置となり得る。
【００３８】
ここで図２を参照すると、アプリケーション文字セット符号化／検査システム１２０の実施形態が示される。システム１２０は、ネットワーク装置、アプライアンス、ゲートウェイ、クライアント、またはサーバ装置等の任意の種類および形式の計算装置１００において、常駐および／または動作することが可能である。概要すると、システム１２０は、受信機２１５、送信機２２０、文字セットエンジン２２５、および規則または方針エンジン２５０を含む。受信機２１５および送信機２２０は、ネットワーク１０４を介して、またはネットワーク１０４および１０４’間で通信を送受信するために使用してもよい。文字セットエンジン２２５は、リクエストなどのネットワーク通信を処理し、ネットワーク通信と関連するアプリケーションに使用される符号化の種類および／または形式を決定するために使用される。規則／方針エンジン２５０は、１つ以上の規則または方針を、システム１２０によって処理されるネットワーク通信に適用する。例えば、文字セットエンジン２２５によってアプリケーションと関連すると決定される符号化の種類に基づいて、方針エンジン２５０は、送信機２２０から伝送されているネットワーク通信を制御、制限、または阻止してもよい。一実施形態では、方針エンジン２５０は、システム１２０が、ファイアウォールまたはセキュリティ制御装置として動作または機能することを可能にする。加えて、方針エンジン２５０は、方針を提供して、使用される符号化、および復号されたコンテンツに対して行う措置を決定して制御してもよい。
【００３９】
受信機２１５は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備え、ネットワーク１０４への装置１００の接続の媒体を介して、信号を受信してもよい。同様に、送信機２２０は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備え、ネットワーク１０４への装置１００の接続の媒体を介して、信号を伝送してもよい。ネットワーク１０４およびネットワーク接続は、計算装置１００ａ〜１００ｎのいずれかの間に、電気配線またはケーブル、光ファイバ、電磁放射等の任意の種類の伝送媒体を含むか、または、本願で説明される操作をサポートすることが可能なその他任意の形式の伝送媒体を有してもよい。一実施形態では、受信機２１５は、第１の種類の媒体を介して１つ以上の信号を受信する。一部の実施形態では、送信機２２０は、第２の種類の媒体を介して１つ以上の信号を伝送する。他の実施形態では、受信機２１５および送信機２２０は、同じ種類の媒体上で信号を受信および伝送する。別の実施形態では、送信機は、受信機２１５および送信機２２０を含んで、媒体を介して信号を受信および伝送する。
【００４０】
装置１００および／またはシステム１２０は、ネットワークスタック２１０を含む。一部の実施形態では、受信機２１５および／または送信機２２０は、ネットワークスタック２１０を含んでもよい。他の実施形態では、受信機２１５および／または送信機２２０は、複数のネットワークスタックを含んでもよい。別の実施形態では、受信機２１５および／または送信機２２０は、１つ以上のネットワークスタック２１０とインターフェース接続、統合、または通信する。ネットワークスタック２１０は、ネットワークとの接続性および通信を提供するための、任意の種類および形態のソフトウェア、ハードウェア、またはそれらの任意の組み合わせを備えてもよい。一実施形態では、ネットワークスタック２１０は、ネットワークプロトコル群に対するソフトウェア実行を備える。ネットワークスタック２１０は、当業者が認識および十分理解するような、Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ（ＯＳＩ）通信モデルの任意のネットワーク層等の、１つ以上のネットワーク層を備えてもよい。そのようなものとして、ネットワークスタック２１０は、１）物理的リンク層、２）データリンク層、３）ネットワーク層、４）トランスポート層、５）セッション層、６）プレゼンテーション層、および７）アプリケーション層といった、ＯＳＩモデルの層のうちのいずれかに対する任意の種類および形式のプロトコルを備えてもよい。一実施形態では、ネットワークスタック２１０は、概してＴＣＰ／ＩＰと呼ばれる、インターネットプロトコル（ＩＰ）のネットワーク層プロトコル上のトランスポート制御プロトコル（ＴＣＰ）を備えてもよい。一部の実施形態では、ＴＣＰ／ＩＰプロトコルは、ＩＥＥＥ  ８０２．３によってカバーされるプロトコル等の、ＩＥＥＥ広域ネットワーク（ＷＡＮ）またはローカルネットワーク（ＬＡＮ）プロトコルの一群のうちのいずれかを備えてもよい、Ｅｔｈｅｒｎｅｔ（登録商標）  プロトコル上で実行されてもよい。一部の実施形態では、ネットワークスタック２１０は、ＩＥＥＥ  ８０２．１１および／または移動体インターネットプロトコル等の、任意の種類および携帯の無線プロトコルを備える。
【００４１】
ＴＣＰ／ＩＰベースのネットワーク１０４の実施形態を考慮して、一実施形態では、Ｍｅｓｓａｇｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ（ＭＡＰＩ）（ｅメール）、Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＦＴＰ）、ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰ）、Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（ＣＩＦＳ）プロトコル（ファイル転送）、Ｉｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＣＡ）プロトコル、Ｒｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ（ＲＤＰ）、Ｗｉｒｅｌｅｓｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ（ＷＡＰ）、Ｍｏｂｉｌｅ  ＩＰプロトコル、およびＶｏｉｃｅ  Ｏｖｅｒ  ＩＰ（ＶｏＩＰ）プロトコルを含む、任意のＴＣＰ／ＩＰベースのプロトコルを使用してもよい。別の実施形態では、ネットワークスタック２１０は、修正トランスポート制御プロトコル等の任意の種類および形態のトランスポート制御プロトコル、例えば、Ｔｒａｎｓａｃｔｉｏｎ  ＴＣＰ（Ｔ／ＴＣＰ）、選択確認を伴うＴＣＰ（ＴＣＰ−ＳＡＣＫ）、大型ウィンドウを伴うＴＣＰ（ＴＣＰ−ＬＷ）、ＴＣＰ−Ｖｅｇａｓプロトコル等の混雑予測プロトコル、およびＴＣＰスプーフィングプロトコルを備える。他の実施形態では、ＩＰ上のＵＤＰ等の任意の種類および形式のユーザデータグラムプロトコル（ＵＤＰ）が、音声通信またはリアルタイムデータ通信等のために、ネットワークスタック２１０によって使用されてもよい。
【００４２】
さらに、ネットワークスタック２１０は、ＴＣＰドライバまたはネットワーク層ドライバ等の１つ以上の層を支持する１つ以上のネットワークドライバを含んでもよい。ネットワークドライバは、計算装置１００のオペレーティングシステムの一部、または計算装置１００の任意のネットワークインターフェースカードまたはその他のネットワークアクセス構成要素の一部として、含まれてもよい。一部の実施形態では、ネットワークスタック２１０のネットワークドライバのうちのいずれかをカスタマイズ、修正、または適合させて、本願で説明される本発明の技法のうちのいずれかを支持するネットワークスタック２１０のカスタムまたは修正部分を提供してもよい。他の実施形態では、システム１２０は、装置１００のオペレーティングシステムによってインストールまたは提供されるネットワークスタック２１０により動作する、またはそれと連動して機能するように設計および構成される。
【００４３】
なおも図２を参照すると、文字セットエンジン２２５は、文字セット符号化を決定するための任意の種類および形式の論理、機能、および操作を備えて、アプリケーションと関連する。文字セットエンジン２２５、およびその任意の部分は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの任意の組み合わせを備えてもよい。概要すると、文字セットエンジン２２５は、パーサ２３０、アプリケーション決定機構２３５、およびアナライザ２４０を備える。一部の実施形態では、文字セットエンジン２２５は、図１Ａおよび１Ｂに図示されるようなアプリケーション１１０ａ〜１１０ｂ等のアプリケーションへの、またはそこからのネットワーク通信を受信または傍受する。例えば、クライアント１００ａにおけるアプリケーション１１０ａは、ネットワーク１０４を介して、リクエストをサーバ１１０ｄに伝達してもよい。一実施形態では、文字セットエンジン２２５は、受信機２１５、送信機２２０、および／またはネットワークスタック２２０とインターフェース接続されるか、または通信している。
【００４４】
一部の実施形態では、文字セットエンジンのパーサ２３０は、装置１００によって受信または傍受される任意のネットワーク通信を解析する論理、機能、または操作を備える。一実施形態では、パーサ２３０は、ネットワーク通信の任意の部分を識別、解析、抽出、および／または解釈する。一実施形態では、パーサ２３０は、ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰ）、Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）プロトコル、またはＳｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ（ＳＭＴＰ）等の任意のアプリケーション層プロトコル通信を解析する。例えば、パーサ２３０は、クライアント１００ａからサーバ１００ｄへと、ＨＴＴＰフォーム提出等の、フォームを介して提出される１つ以上のフィールドを識別し、解析または抽出してもよい。別の例では、パーサ２３０は、任意の属性、クッキー、名前・値のペア、ＵＲＬ、データ列、オブジェクト、またはＨＴＴＰフォーム提出等のリクエストの任意の部分を識別し、解析または抽出してもよい。
【００４５】
一実施形態では、パーサ２３０は、リクエストにおいて、属性、ヘッダ、フィールド、または、テキスト、画像、混合データ型等のコンテンツの種類を識別するデータ要素を識別する。例えば、ＨＴＴＰプロトコルの実施形態では、メッセージの本文における媒体型および亜類型を特定するため、およびそのようなデータの自然表現を特定するために、コンテンツ型ヘッダが使用される。一部の実施形態では、パーサ２３０は、リクエストの一部が符号化されていることを識別する。例えば、ＨＴＴＰプロトコルの実施形態では、コンテンツ型ヘッダは、ＵＲＬリクエストの一部が符号化されていることを識別してもよい。別の実施形態では、パーサ２３０は、リクエストにおいて、リクエストのコンテンツの一部を符号化または復号するために使用される文字セットを識別する属性を識別する。
【００４６】
一実施形態では、パーサ２３０は、ＴＣＰまたはＵＤＰパケット等のトランスポート層プロトコルパケットの任意の一部を解析する。一部の実施形態では、パーサ２３０は、パケット等のトランスポート層プロトコルパケットから、１）ソースインターネットプロトコルアドレス、２）宛先インターネットプロトコルアドレス、３）ソースポート、４）宛先ポート、５）プロトコルを識別するパケットのヘッダおよび／またはペイロードの任意のデータ、６）パケットヘッダの任意のフィールドのうちのいずれかを識別し、解析する。別の実施形態では、パーサ２３０は、解析されたネットワーク通信またはネットワーク通信の識別された要素のうちのいずれかに対する、オブジェクトモデル表示、またはオブジェクトベースのアプリケーションプログラミングインターフェースを作成または提供する。
【００４７】
アプリケーション決定機構２３５は、メッセージまたはリクエスト等のネットワーク通信と関連するアプリケーションを決定する任意の論理、機能、および／または操作を備える。一実施形態では、アプリケーション決定機構２３５は、パーサ２３０と通信しているか、またはインターフェース接続され、ネットワーク通信から１つ以上の解析された情報を取得する。一部の実施形態では、アプリケーション決定機構２３５は、リクエストからの任意の情報、またはリクエスト、リクエストと関連するアプリケーションの種類、名前または識別を表す任意の情報を、リクエストから決定する。一実施形態では、アプリケーション決定機構２３５は、アプリケーションおよび／またはリクエストに対する符号化の種類を識別する。符号化情報は、リクエストを復号、検査、分析、または処理するために使用してもよい。
【００４８】
一部の実施形態では、アプリケーション決定機構２３５は、アプリケーションの名前、種類、または識別子を、ソースインターネットプロトコルアドレスおよび／またはポート、または宛先インターネットプロトコルアドレス、および／または宛先ポート等のネットワーク通信の１つ以上のデータ要素と関連付けるように構成される。例えば、特定のクライアントからのネットワーク通信は、アプリケーションと関連してもよい。別の例では、システム１２０は、インターネットプロトコル範囲内で、またはポートまたはポート範囲を使用して、１つ以上のサーバへのネットワーク通信を関連付けてもよい。他の実施形態では、アプリケーション決定機構２３５は、符号化スキームの名前、種類、または識別子、文字符号化セット、または符号化機構を、パーサ２３０によって提供される任意の解析されたフィールド等のネットワーク通信の１つ以上のデータ要素と関連付けるように構成される。さらに別の実施形態では、アプリケーション決定機構２３５は、ネットワークパケットのペイロードによって運ばれる情報等により、ネットワーク通信の解析を介して、アプリケーションおよび／または符号化スキームの種類、名前、または識別を決定する。
【００４９】
一部の実施形態では、アプリケーション決定機構２３５は、アプリケーションおよび／または符号化スキームへのネットワーク通信またはその任意の一部を格納するために、データベース、ファイル、オブジェクト、データ構造、またはその他の情報記憶媒体を使用する。例えば、アプリケーションは、１つ以上のインターネットプロトコルアドレスおよび／またはポートにマップされてもよい。別の例では、アプリケーション決定機構２３５は、任意の種類および形式の検索テーブルからのネットワーク通信において識別される１つ以上のデータ要素と関連する、またはそれに基づく、アプリケーションを検索してもよい。一実施形態では、アプリケーション決定機構２３５は、コマンドラインインターフェースまたはグラフィカルユーザインターフェース等の任意の種類および形式のインターフェースを介して、１つ以上のユーザによって構成可能である。別の実施形態では、アプリケーション決定機構２３５は、別のプログラム、スクリプト、アプリケーション、またはシステムによって、アプリケーションプログラミングインターフェースを介して構成される。
【００５０】
リクエスト等のネットワーク通信と関連するアプリケーションを決定すると、システム１２０は、ネットワーク通信の任意の符号化部分を復号するために使用される符号化の種類を決定、識別、または取得する。一実施形態では、アプリケーション決定機構２３５および／またはアナライザ２４０等のシステム１２０は、ネットワーク通信自体の任意の部分またはデータ要素から、符号化の種類を識別する。例えば、システム１２０は、ネットワークパケットのペイロードにおけるデータ等の、ネットワーク通信の任意の解析された要素から、符号化の種類を識別してもよい。別の実施形態では、システム１２０は、アプリケーションプログラミングインターフェース等を介して、クエリまたは検索から、テーブル、データベース、ファイル、オブジェクト、データ構成、またはそのような情報を有するその他の記憶媒体または構成機構へと、アプリケーションに対する符号化の種類を識別または取得する。
【００５１】
さらに別の実施形態では、システム１２０は、規則／方針エンジン２５０から、アプリケーションに対する符号化スキームを識別または取得する。例えば、アプリケーション決定機構２３５および／またはアナライザ２４０は、方針エンジン２５０にクエリを行い、所与のアプリケーションに対する符号化スキームを取得してもよい。一部の実施形態では、アプリケーションには、時間的情報、クライアント情報、ユーザ情報、デバイス情報、ネットワークの状態、任意のシステムの状態、履歴情報、および統計情報に基づく、それと関連する複数の符号化の種類があってもよい。一実施形態では、システム１２０は、上記の種類の情報のうちの１つ以上に基づいて、アプリケーションに対する符号化の種類を、規則／方針エンジン２５０から要求する。例えば、第１のアプリケーションは、週の第１日または時間に第１の符号化の種類を、週の第２日または時間に第２の符号化の種類を使用してもよく、または使用することを許可されてもよい。一例では、システム１２０は、識別されたアプリケーションおよび時間的情報により、方針エンジン２５０にクエリを行い、アプリケーションのネットワーク通信を処理するために使用される符号化の種類を決定してもよい。
【００５２】
アナライザ２４０は、ネットワーク通信またはその任意の一部を分析する任意の論理、機能、および／または操作を備える。一実施形態では、アナライザ２４０は、文字セットにおいて符号化された、リクエスト等のネットワーク通信の一部を復号する。一部の実施形態では、アナライザ２４０は、パーサ２３０またはアプリケーション決定機構２３５等の文字セットエンジン２２５のその他任意の部分から、アプリケーションに使用する符号化スキームを取得してもよい。他の実施形態では、アナライザ２４０は、規則／方針エンジン２５０から、アプリケーションに対する符号化スキームを取得する。一実施形態では、パーサ２３０またはアプリケーション決定機構２３５は、アナライザ２４０へのネットワーク通信に、アプリケーションに対する符号化の種類を使用して復号されるネットワーク通信の符号化部分を提供する。
【００５３】
一実施形態では、アナライザ２４０は、ネットワーク通信のコンテンツを検査または分析するために、アプリケーションの識別および／または関連符号化の種類を使用する。一部の実施形態では、アナライザ２４０は、システム１２０によって受信されるネットワークトラフィックの流れに対して一方向および双方向分析を行う。例えば、アナライザ２４０は、ネットワークパケットのそれぞれに対してディープストリーム検査を行ってもよい。他の実施形態では、アナライザ２４０は、ＨＴＴＰおよびＨＴＭＬヘッダおよびペイロードを検査し、分析する。一実施形態では、システム１２０は、パーサ２３０等を介して、完全ＨＴＭＬ構文解析を行うことが可能であり、アナライザ２４０は、ＨＴＭＬ通信の任意の部分を検査および分析することが可能である。さらに別の実施形態では、アナライザ２４０は、セッション、およびセッションや、システム１２０によって受信および処理されるネットワークトラフィックの状態を識別し、維持し、追跡する。
【００５４】
なおも図２を参照すると、システム１２０はまた、ネットワーク通信の検査、フィルタリング、または分析に基づいて１組の１つ以上の方針を適用するための規則／方針エンジン２５０を含んでもよい。一実施形態では、方針エンジン２５０は、それによりアプリケーションがネットワーク２０４にアクセスすることが可能である、日付、時間、またはスケジュールについての方針を備える。別の実施形態では、方針エンジン２５０は、それにより識別された計算装置１００または識別されたユーザによってアプリケーションを使用することが可能である、日付、時間、またはスケジュールについての方針を備える。なおも別の実施形態では、方針エンジン２５０は、それにより符号化スキームが使用される、またはアプリケーションに対して使用することが可能である、日付、時間、またはスケジュールについての方針を備える。例えば、ユーザは、システム１２０の規則または方針を構成して、第１のアプリケーションが、週の第１日の間または第１の指定時間範囲の間に第１の符号化スキームを使用し、週の第２日の間または第２の指定時間範囲の間に第２の符号化スキームを使用することを可能にしてもよい。
【００５５】
一実施形態では、システム１２０は、クライアントの１つ以上の属性または特性を識別して決定する、終点検出および走査機構を備える。例えば、システム１２０は、１）オペレーティングシステムおよび／またはオペレーティングシステムのバージョン、２）オペレーティングシステムのサービスパック、３）実行しているサービス、４）実行しているプロセス、および５）ファイル、といったクライアント側属性のうちのいずれか１つ以上を識別して決定する。システム１２０はまた、クライアントにおける、１）ウイルス対策ソフトウェア、２）パーソナルファイアウォールソフトウェア、３）スパムメール対策ソフトウェア、および４）インターネットセキュリティソフトウェアのうちのいずれか１つ以上の存在またはバージョンを識別し、決定してもよい。方針エンジン２５０には、クライアントの属性または特性、あるいはクライアント側属性のうちのいずれか１つ以上に基づく１つ以上の方針があってもよい。一部の実施形態では、方針エンジン２５０は、任意のクライアント属性に基づいて、アプリケーションと関連する符号化スキームの種類、またはアプリケーションに使用する復号の種類を特定してもよい。例えば、方針エンジン２５０は、クライアントがオペレーティングシステムの特定言語のバージョンを実行している場合、そのクライアントで実行しているアプリケーションからの符号化リクエストを復号するために、特定言語と関連する符号化スキームが使用されるという、方針を備えてもよい。
【００５６】
一部の実施形態では、規則／方針エンジン２４０は、１）バッファあふれ、２）ＣＧＩ−ＢＩＮパラメータ操作、３）フォーム／非表示フィールド操作、４）強制ブラウジング、５）クッキーまたはセッション位置付け、６）破壊されたアクセス制御リスト（ＡＣＬ）または弱いパスワード、７）クロスサイトスクリプティング（ＸＳＳ）、８）コマンド導入、９）ＳＱＬ導入、１０）エラー誘発機密情報漏洩、１１）暗号の安全ではない使用、１２）サーバ誤設定、１３）バックドアおよびデバッグオプション、１４）ウェブサイト改変、１５）プラットフォームまたはオペレーティングシステムの脆弱性、および１６）ゼロデイ脆弱性のうちの１つ以上等の、様々な部類および種類のウェブまたはインターネットベースの脆弱性に対する保護を提供するための、１つ以上のアプリケーションファイアウォールまたはセキュリティ制御方針を備える。一実施形態では、システム１２０は、１）必要フィールドが返送される、２）追加フィールドが無効、３）読取専用および非表示フィールド実行、４）ドロップダウンリストおよびラジオボタンフィールド適合、および５）フォームフィールド最大長実行のうちの１つ以上に対して、ネットワーク通信を検査または分析する形で、ＨＴＭＬフォームフィールド保護を提供する。一部の実施形態では、システム１２０は、クッキーが修正されないことを確実にする。他の実施形態では、システム１２０は、合法ＵＲＬを実行することによって、強制ブラウジングから保護する。
【００５７】
さらに別の実施形態では、システム１２０は、ネットワーク通信に含有される任意の秘密情報を保護する。システム１２０は、エンジン２５０の規則または方針に従って任意のネットワーク通信を検査または分析し、ネットワークパケットの任意のフィールドにおける任意の秘密情報を識別してもよい。一部の実施形態では、システム１２０は、ネットワーク通信において、クレジットカード番号、パスワード、社会保障番号、名前、患者コード、連絡先情報、および年齢うちの１つ以上の発生を識別する。ネットワーク通信の符号化部分は、これらの発生または秘密情報を備えてもよい。これらの発生に基づいて、一実施形態では、システム１２０は、ネットワーク通信の伝送を妨げる等の、ネットワーク通信に対する方針措置を行ってもよい。別の実施形態では、システム１２０は、そのような識別された発生または秘密情報を、書き直す、除去する、または隠してもよい。
【００５８】
システム１２０のアプリケーションごとの符号化識別および復号機能性により、アナライザ２４０および方針エンジン２５０は、それぞれ１つ以上の異なる符号化の種類を同時または後で使用して、アプリケーションファイアウォールおよびセキュリティ制御を、複数のアプリケーションの符号化ネットワーク通信に適用してもよい。そのようなものとして、規則／方針エンジン２５０において構成される規則および方針は、アプリケーションの種類、名前、またはインスタンス、および本願で説明されるシステムの操作に従って決定されるようなアプリケーションと関連する符号化スキームの両方において、適用することが可能である。さらに、システム１２０は、符号化スキームを知らずに復号、検査、および分析することができなかったネットワーク通信の符号化部分の分析を可能にする。そうすることによって、システム１２０は、アプリケーションごと、および／または符号化スキームごとに、アプリケーションファイアウォールおよびセキュリティ方針などの方針を、ｕｒｌ符号化コンテンツを有するリクエスト等のネットワーク通信の符号化部分に適用することが可能である。
【００５９】
パーサ２３０、アプリケーション決定機構２３５、およびアナライザ２４０は、図２で文字セットエンジン２２５に含まれるとして図示されるが、パーサ２３０、アプリケーション決定機構２３５、およびアナライザ２４０のうちのいずれか、またはそれらの任意の一部は、装置１００またはアプリケーション文字セット符号化／復号システム１２０の任意の一部において、常駐、動作、または実行してもよい。加えて、単一の論理実体または構成要素として示されるが、アプリケーション文字セット符号化／検査システム１２０はまた、クライアント等の第１の装置１００ａにおいて実行する第１の部分、およびサーバまたはゲートウェイ等の第２の装置１００ｂにおいて実行する第２の部分により、分散型方式で動作してもよい。さらに別の実施形態では、複数のアプリケーション文字セット符号化／復号システム、例えば１２０、１２０’等は、互いに恊働または連動して動作し、１つ以上のアプリケーション、ゲートウェイ、クライアント、またはサーバに対する、本願で説明される機能性および技法を提供してもよい。
【００６０】
アプリケーション文字セット符号化／検査システム１２０の操作は、任意の種類および形式の符号化スキームまたは文字符号化セット（文字セット）をサポートしてもよい。一部の実施形態では、アプリケーション文字セット符号化／検査システム１２０は、一例として、ＵＴＦ−７、ＵＴＦ−８、ＣＥＳＵ−８、ＵＴＦ−１６／ＵＣＳ−２、ＵＴＦ−３２／ＵＣＳ−４、ＵＴＦ−ＥＢＣＤＩＣ、ＳＣＳＵ、Ｐｕｎｙｃｏｄｅ、ＧＢ  １８０３０を含む、任意の種類および形式のユニコードスキームで動作する。ユニコードは、西ヨーロッパ言語、東ヨーロッパ言語、キリル文字、ギリシャ語、アラビア語、ヘブライ語、中国語、日本語、朝鮮語、タイ語、ウルドゥー語、ヒンディー語、および、実在するか否かにかかわらず、その他全ての主要な世界の言語からの文字が、単一の文字セットに符号化されることを可能にする文字またはセットである。一実施形態では、文字セットは、１６ビットである。符号化スキームの他の実施形態では、文字セットは、６、７、８、１０、１２、２０、２４、３２、または６４ビット、またはその他任意の数のビットであってもよい。ユニコード規格はまた、圧縮標準スキーム、および世界的な現場サポートに必要とされる広範囲の写植情報も含む。一実施形態では、アプリケーション文字セット符号化／検査システム１２０は、汎用文字セットに対するいくつかの文字符号化フォームを定義する、ＩＳＯ  １０６４６標準規格群を使用して動作する。一部の実施形態では、アプリケーション文字セット符号化／検査システム１２０は、ＡＳＣＩＩ符号化スキームを使用する。他の実施形態では、アプリケーション文字セット符号化／検査システム１２０は、非ＡＳＣＩＩ符号化リクエスト、またはその一部において動作する。別の実施形態では、アプリケーション文字セット符号化／検査システム１２０は、ＡＮＳＩまたはＷＧＬ４文字セットを使用して、リクエストにおけるその動作を行う。
【００６１】
一部の実施形態では、アプリケーション文字セット符号化／検査システム１２０は、その中の方言および相違を含む、日本、朝鮮、ロシア、または中国の言語等の、任意の種類および形式の言語、およびそれに対して使用される任意の１つまたは複数の符号化スキームをサポートするか、または表すために使用される、符号化スキーム、文字符号化セット、または文字セットで動作する。一例として、かつ限定的または排他的となることを全く意図せずに、ロシア語については、システム１２０は、１）キリル文字（ＣＰ１２５１）、２）ＫＯＩ８ｒ、ＫＯＩ−８  Ａｌｔｅｒｎａｔｉｖｅ、ＫＯＩ−８  Ｕｎｉｆｉｅｄ、またはＫ０Ｉ−８ＲＵ、３）ユニコードまたはＵＴＦ−８、４）ＤｏｓＣｙｒｉｌｌｉｃＲｕｓｓｉａｎ（ＣＰ８６６）、５）ＩＳＯ−８８５９−５、または６）ＥＣＭＡ−Ｃｙｒｉｌｌｉｃ（ＩＳＯ−ＩＲ−１１１）、といった種類の符号化スキームまたは文字セットで動作してもよい。
【００６２】
一例として、かつ限定的または排他的となることを全く意図せずに、日本語については、システム１２０は、１）ｕｔｆ−８、２）ＪＩＳ（Ｊａｐａｎｅｓｅ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ）、３）ｓｈｉｆｔ＿ｊｉｓ（ＳＪＩＳ、Ｘ−ＳＪＩＳ、またはＭＳ  Ｋａｎｊｉとしても知られる）、４）ＥＵＣ／ＥＵＣ−ＪＰ（拡張Ｕｎｉｘ（登録商標）コード）、５）ＥＢＤＩＣ、６）ＩＳＯ２０２２／ＩＳＯ２０２２−ＪＰ、７）ＡＮＳＩ  Ｚ３９．６４、８）ＣＣＣＩＩ、９）ＤＥＣ  Ｋａｎｊｉ、１０）ＧＴｃｏｄｅ、１１）ＩＢＭ  ＤＢＣＳ、１２）ＪＥＦ（Ｊａｐａｎｅｓｅ  Ｅｘｔｅｎｄｅｄ  Ｆｅａｔｕｒｅｓ）、１３）ＣＣＣＩＩ、１４）ＩＳＯ−８８５０、１５）ＪＩＳ  Ｘ  ０２０１（ＪＩＳＲＯＭＡＮ）、１６）ＪＩＳ  Ｘ  ０２０８（ＪＩＳ  Ｃ  ６２２６）、１７）ＪＩＳ  Ｘ  ０２１２、ＪＩＳ  Ｘ  ０２１３、またはＪＩＳ  Ｘ  ０２２１、および１８）Ｍｏｊｉｋｙｏ、といった符号化スキーム、文字符号化セット、または文字セットで動作してもよい。一例として、かつ限定的または排他的となることを全く意図せずに、朝鮮語については、システム１２０は、１）ｕｔｆ−８、２）ＥＵＣまたはＥＵＣ−ＫＲ、３）ＫＥＩＳ、４）ＡＮＳＩ  Ｚ３９．６４、５）ＩＳＯ−２０２２またはＩＳＯ−２０２２−ＫＲ、６）ＣＣＣＩＩ、７）Ｕｎｉｆｉｅｄ  Ｈａｎｇｕｌ  Ｃｏｄｅ（ＣＰ９４９）、８）ＧＢ  １２０５２、７）ＩＢＭ  ＤＢＣＳ、８）ＪＯＨＡＢ、９）ＫＳ  Ｃ  ５６０１、１０）ＫＳ  Ｃ  ５６３６（ＫＳ  ＲＯＭＡＮ）、１１）ＫＳ  Ｃ  ５６５７、１２）ＫＳ  Ｃ  ５７００、および１３）Ｍｏｊｉｋｙｏ、といった符号化スキームまたは文字セットのうちのいずれかで動作してもよい。
【００６３】
一例として、かつ限定的または排他的となることを全く意図せずに、中国語については、システム１２０は、１）ｕｔｆ−８、２）ＡＮＳＩ  Ｚ３９．６４、３）Ｂｉｇ５、Ｂｉｇ５＋、Ｂｉｇ５ＥＴｅｎ、またはＢｉｇ５−ＨＫＳＣＳ、４）ＣＣＣＩＩ、５）ＣＮＳ  １１６４３、６）ＧＢＫ（ＣＰ９３６）、７）ＣＰ９０、８）ＥＵＣ／ＥＵＣ−ＣＮ／ＥＵＣ−ＴＷ、９）ＧＢ  １２０５０／１２０５２、１０）ＧＢ１３０００−１、１１）ＧＢ１３１３４、１２）ＧＢ１６９５９、１３）ＧＢ１８０３０、１４）ＧＢ１９８８、１５）ＧＢ２３１２、１６）ＧＢ７５８９、１７）ＧＢ７５９０、１８）ＧＢ８０４５、１９）ＧＢ／Ｔ  １２３４５、ＧＢ／Ｔ  １３１３１、またはＧＢＴ／１３１３２、２０）ＨＺ、２１）ＩＳＯ２０２２／２００２−ＣＮ／ＣＮ−ＥＸＴ、および２２）Ｍｏｊｉｋｙｏといった符号化スキームまたは文字セットで動作してもよい。
【００６４】
システム１２０は、一度に、互いの後に、または同時に使用される、複数の言語および複数の符号化スキームで動作してもよい。一部の実施形態では、システム１２０は、日本語、朝鮮語、および中国語に対して同じ符号化を使用する等、複数の言語に対して同じ符号化スキームを使用して、または、日本語、朝鮮語、および中国語のそれぞれに対する異なる符号化スキーム等の、複数の言語のそれぞれに対する異なる符号化スキームで動作してもよい。
【００６５】
ここで図３を参照すると、アプリケーションと関連する符号化の種類を決定する、またはシステム１２０の技法を適用するための方法の実施形態が示される。方法３００の概要では、ステップ３１０において、アプリケーション文字セット符号化／検査システム１２０は、リクエストを受信する。ステップ３１５において、システム１２０は、複数のアプリケーションのうちのどのアプリケーションにリクエストが対応するかを決定する。ステップ３２０において、システム１２０は、決定されたアプリケーションと関連する符号化スキームを識別する。ステップ３２５において、システム１２０は、リクエストを復号、検査、および／または分析するために、識別された符号化スキームを使用する。リクエストを復号して分析すると、ステップ３３０において、システム１２０は、１つ以上の方針をリクエストに適用してもよい。
【００６６】
さらに詳細に、ステップ３１０において、システム１２０は、任意の手段および／または機構を用いて、リクエストなどのネットワーク通信を受信または傍受してもよい。一実施形態では、受信機２１０は、クライアント１０１からリクエストを受信する。別の実施形態では、受信機２１０は、サーバ１０６へと、またはそこから伝達されると、ネットワークスタック２１０からのリクエストを傍受する。一部の実施形態では、受信機２１０等のシステム１２０は、ネットワークスタック２１０におけるリクエストを傍受するためのネットワークドライバ、フィルタ、またはフッキング機構を備える。一部の実施形態では、システム１２０を配備するゲートウェイ１０５は、リクエストを受信または傍受する。さらに別の実施形態では、クライアント１０１は、ゲートウェイ１０５にリクエストを送信するように構成され、クライアント１０１に対するプロキシの役割を果たす。他の実施形態では、システム１２０を配備するクライアント１０１またはサーバ１０６は、クライアント１０１からリクエストを受信または傍受する。一部の実施形態では、システム１２０は、キャッシュされたフォームページを受信する。さらに別の実施形態では、システム１２０は、システム１２０、またはゲートウェイ１０５等のシステム１２０を採用する装置のキャッシュに格納されるキャッシュされたフォームページを使用する。
【００６７】
一部の実施形態では、システム１２０には、リクエストによって使用される符号化スキームの予備知識がない。一実施形態では、リクエスト自体は、リクエストの符号化部分に使用される符号化スキームを識別しない。例えば、一実施形態では、リクエストは、フォーム−ｕｒｌ−符号化コンテンツ型を使用して、ＨＴＭＬフォーム等のフォームの提出を含む。別の実施形態では、リクエストは、文字符号化を識別するタグを提供しない。さらに他の実施形態では、リクエストは、符号化システムの識別を含む。なおも別の実施形態では、システム１２０は、発見的規則または論理を使用して符号化の種類を推測することによって、リクエストに対する符号化スキームを理解する。一部の実施形態では、システム１２０は、アプリケーションまたはクライアントの挙動に基づいて符号化スキームを決定してもよい。一実施形態では、システムは、システム１２０、ゲートウェイ１０５、サーバ１０６、および／またはクライアント１０１の間で知られる符号化スキームの使用に基づいて、符号化スキームを決定する。
【００６８】
ステップ３１５において、システム１２０は、リクエストが対応する複数のアプリケーションのうちの１つを決定する。一実施形態では、アプリケーション決定機構２３５は、パーサ２３０による等、リクエストから識別および／解析される１つ以上のデータ要素からアプリケーションを決定する。一部の実施形態では、アプリケーション決定機構２３５は、データベース、テーブル、ファイル、オブジェクト、データ構造、またはその他の記憶媒体から、インターネットプロトコルアドレスおよび／またはポートを対応するアプリケーションの検索にマップすることによって、リクエストを生成するか、またはそれと関連するアプリケーションを決定する。一実施形態では、アプリケーション決定機構２３５は、名前、種類、またはインスタンスによってアプリケーションを識別するリクエストのペイロードにおけるデータ要素から、アプリケーションを決定する。
【００６９】
ステップ３２０において、文字セットエンジン２２５等のシステム１２０は、ステップ３１５において決定されるアプリケーションに対する符号化スキームまたは文字セットを識別する。一実施形態では、文字セットエンジン２２５は、アプリケーション決定機構２３５またはアナライザ２４０を介する等して、クエリを行うか、またはデータベース、ファイル、テーブル、オブジェクト、データ構造、またはアプリケーションを１つ以上の符号化スキームにマップするその他の記憶媒体から、アプリケーションに対する符号化スキームの検索を行う。さらに別の実施形態では、文字セットエンジン２２５は、リクエストの任意の一部から、アプリケーションに対する符号化スキームを決定する。一実施形態では、文字セットエンジン２２５は、パーサ２３０によって識別または解析される１つ以上のデータ要素に対する符号化スキームを識別する。一部の実施形態では、文字セットエンジン２２５は、アプリケーションと関連する符号化スキームを格納するキャッシュ、メモリまたは記憶要素から、アプリケーションに対する符号化スキームを識別する。例えば、一実施形態では、文字セットエンジン２２５は、アプリケーションに対する以前に使用した符号化スキームを追跡する。さらに別の実施形態では、文字セットエンジン２２５は、文字セットを識別する情報を有するクライアントリクエストへの応答等のネットワーク通信から、アプリケーションに対する符号化スキームを識別する。例えば、一実施形態では、システム１２０は、サーバのネットワーク通信からのそのような情報を識別し、解析する。
【００７０】
一部の実施形態では、文字セットエンジン２２５は、アプリケーション決定機構２３５またはアナライザ２４０を介する等して、規則／方針エンジン２５０から、アプリケーションに使用する符号化スキームを取得する。例えば、方針エンジン２５０は、日付および時間等の、リクエストに関する任意の時間的情報に基づいて、アプリケーションに使用する符号化スキームを特定してもよい。別の例では、方針エンジン２５０は、リクエストを伝達するクライアントの任意のシステム情報または属性に基づいて、アプリケーションに使用する符号化スキームを特定してもよい。一実施形態では、システム１２０は、クライアントの終点検出および走査を行い、クライアントの１つ以上の属性または特性を決定する。方針エンジン２５０は、クライアントの任意の属性に基づいて、１つ以上の方針をリクエストに、またはリクエストの符号化部分の復号に適用してもよい。例えば、方針エンジン２５０は、クライアントがある種類のオペレーティングシステムを実行している場合に、アプリケーションに対する第１の種類の符号化スキームを使用することを特定してもよい。
【００７１】
ステップ３２５において、システム１２０は、リクエストの符号化部分を復号するために識別符号化スキームを使用する。一実施形態では、文字セットエンジン２２５は、パーサ２３０、アプリケーション決定機構２３５、および／またはアナライザ２４０を介する等して、識別された符号化スキームをリクエストの符号化部分に適用する。そのようなものとして、アナライザ２４０は、符号化部分を、アナライザ２４０によって検査または分析することが可能なデータ要素、テキスト、または文字列に復号する。例えば、一実施形態において、リクエストの復号された部分は、ＳＱＬまたはサーバ１０６において実行されるその他の種類のコマンドを形成してもよい。一部の実施形態では、アナライザ２４０は、復号されたコンテンツを含むリクエストを検査または分析して、リクエストが、規則／方針エンジン２５０を介して構成される規則および／または方針のいずれかに適合または違反するかどうかを決定する。図２と併せて上記のように、アナライザ２４０は、双方向分析、ディープストリーム検査、ＨＴＭＬ検査、セッション状態管理、ＨＴＭＬフォームフィールド保護、クッキーポイズン保護、強制ブラウザ保護、およびウェブ脆弱性保護等の、任意の論理、機能、および操作を行ってもよい。
【００７２】
ステップ３３０において、システム１２０は、復号されたリクエストの分析に基づいて、１つ以上の規則または方針をリクエストに適用する。一実施形態では、リクエストが、ネットワーク１０４上の伝送（またはネットワーク１０４上のさらなる伝送）に対する方針エンジン２５０の方針を満たさない場合、ゲートウェイ１０５において配備されるシステム１２０等のシステム１２０は、リクエストを拒絶または撤回してもよい。別の実施形態では、システム１２０は、リクエストが方針に従わない場合、アプリケーションまたはアプリケーションのユーザを隔離してもよい。さらに別の実施形態では、システム１２０は、リクエストが方針に従わない場合、アプリケーションのネットワークアクセスを降格または制限してもよい。他の実施形態では、システム１２０は、クライアントのＳＳＬ  ＶＰＮ接続を切断する等、ネットワーク１０４へのクライアントの接続を切断してもよい。一部の実施形態では、システム１２０は、リクエストが方針に従わない、または方針を満たさない場合、アプリケーションセッションを切断または終了してもよい。
【００７３】
方法３００の技法は、アプリケーションからのリクエストとの関連で概して上記で説明されるものの、方法３００は、互いの後および／または同時に、複数のアプリケーションに対して行うことが可能である。システム１２０は、異なるアプリケーションから、ステップ３１０において複数のリクエストを受信または傍受してもよく、それぞれには、別のアプリケーションと同じ、または異なる符号化スキームを使用する符号化部分がある。例えば、システム１２０は、複数のクライアントおよびアプリケーションに情報提供するゲートウェイ１０５上に配備されてもよい。複数のリクエストのうちの各リクエストに対して、システム１２０は、ステップ３１５でリクエストと関連するアプリケーション、ステップ３２０でアプリケーションに使用される文字セット符号化を決定し、ステップ３２５において、リクエストの符号化部分を復号して復号されたリクエストを分析し、ステップ３３０において、任意の関連方針をリクエストに適用する。そのようなものとして、一部の実施形態では、システム１２０は、アプリケーションごとに方法３００の技法を行い、リクエストごとに関連符号化スキームを適用する。一実施形態では、システム１２０は、第１のリクエストに応じて、アプリケーションに対する第１の符号化スキームを使用してもよく、第２の以降のリクエストに応じて、同じアプリケーションに対する第２の異なる符号化スキームを使用してもよい。
【実施例】
【００７４】
アプリケーション符号化／検査システム１２０は、異なる文字セットまたは符号化スキームを使用する複数のアプリケーションを有する、企業ネットワーク１０４に対するゲートウェイまたはネットワークアプライアンスにおいて配備してもよい。例えば、ゲートウェイ１０５は、日本語ユーザを有する会社ネットワークに対するアプリケーションファイアウォールおよびセキュリティ制御装置として配備してもよい。第１のクライアント１０１ａにおける第１のアプリケーション１１０ａは、ＵＴＦ−８という第１の文字セットを使用してもよい。第１のクライアント１０１ａまたは第２のクライアント１０１ｂにおける第２のアプリケーション１１０ｂは、ＪＩＳという第２の文字セットを使用してもよい。第１のクライアント１０１ａまたは第２のクライアント１０１ｂ、さらにまたは第３のクライアント１０１ｃのいずれかにおける第３のアプリケーション１１０ｃは、ＭＳ  Ｋａｎｊｉという第３の文字セットを使用してもよい。
【００７５】
第１のアプリケーション１１０ａ、第２のアプリケーション１１０ｂ、および第３のアプリケーション１１０ｃのそれぞれは、ゲートウェイ１０５を介して、１つ以上のリクエストを１つ以上のサーバ１０６ａ〜１０６ｎに提出する。アプリケーション１１０ａ〜１１０ｃは、ＨＴＴＰ、ＨＴＭＬ、および／またはＸＭＬリクエストをウェブサーバ１０６ａ〜１０６ｎに提出するウェブブラウザを備えてもよい。これらのリクエストのうちのいずれか１つ以上は、文字セットの識別が提出されたデータの一部ではない、フォームｕｒｌ符号化提出を備えてもよい。リクエストの一部は、ブラウザ上のＪａｖａ（登録商標）ｓｃｒｉｐｔまたはその他のスクリプトから、完全に、または別の方法で生成される。また、リクエストのうちの１つ以上は、ＡＪＡＸ、またはＡｓｙｎｃｈｒｏｎｏｕｓ  Ｊａｖａ（登録商標）ＳｃｒｉｐｔおよびＸＭＬベースの技術を使用して生成される。そのようなものとして、これらのリクエストのうちのいずれか１つ以上に対して、ゲートウェイ１０５には、リクエストの一部を符号化するために使用される文字セットの予備知識がなくてもよい。
【００７６】
上記のシステム１２０の構造、機能、および操作を考慮して、ゲートウェイ１０５は、アプリケーションファイアウォールおよびセキュリティ制御方針をリクエストの符号化部分に適用することが可能である。受信したリクエストに対して、ゲートウェイ１０５は、リクエストと関連するアプリケーション、およびアプリケーションと関連する符号化スキームを決定する。この例において、ゲートウェイ１０５は、第１のリクエストが第１のアプリケーション１１０ａから受信されることを決定し、第１のアプリケーション１１０ａと関連するようなＵＴＦ−８符号化スキームを識別する。ゲートウェイ１０５は、ＵＴＦ−８の符号化スキームで第１のリクエストを復号し、復号したリクエストを分析し、任意の方針をリクエストに適用する。ゲートウェイ１０５は、第２のリクエストが第２のアプリケーション１１０ｂから受信されることを決定し、第２のアプリケーション１１０ｂと関連するようなＪＩＳ符号化スキームを識別する。ゲートウェイ１０５は、ＪＩＳの識別された符号化スキームで第１のリクエストを復号し、復号されたリクエストを分析し、任意の方針をリクエストに適用する。同様に、ゲートウェイ１０５は、第３のリクエストが第３のアプリケーション１１０ｃから受信されることを決定し、第３のアプリケーション１１０ｃと関連するようなＭＳ  Ｋａｎｊｉ符号化スキームを識別する。ゲートウェイ１０５は、ＭＳ  Ｋａｎｊｉの識別された符号化スキームで第１のリクエストを復号し、復号されたリクエストを分析し、任意の方針をリクエストに適用する。
【００７７】
場合によっては、アプリケーション１１０ａは、別の期間または別の日の間において、別のインスタンスを開始する際等に、異なる符号化スキームに切り替えるか、または使用してもよい。例えば、第１のアプリケーション１１０ａは、この第２のインスタンスの間において、ＵＴＦ−８の代わりにＪＩＳ文字セットを使用してもよい。このような場合、ゲートウェイ１０５は、後のリクエストが第１のアプリケーション１１０ａから受信されたことを決定し、第１のアプリケーション１１０ａと関連するようなＵＴＦ−８符号化スキームを識別する。例えば、方針エンジン２５０は、指定期間の間にＵＴＦ−８符号化スキームが第１のアプリケーション１１０ａに使用されるべきであると識別してもよい。次いで、ゲートウェイ１０５は、ＵＴＦ−８の識別された符号化スキームによってこの後のリクエストを復号し、復号されたリクエストを分析し、任意の方針をリクエストに適用する。
【００７８】
本願で説明されるゲートウェイ１０５により、ゲートウェイは、異なる符号化スキームを使用して、複数のアプリケーションからのリクエストを復号し、分析し、方針を適用することが可能である。ゲートウェイ１０５は、アプリケーションごと、およびリクエストごとの復号機構を提供して、日本語、朝鮮語、ロシア語、または中国語のアプリケーションのユーザに対して配備されるネットワーク環境にあってもよいもの等の、複数の異なる文字セット符号化アプリケーションを配備する環境に方針を適用することにおいて、多大な柔軟性を提供する。ゲートウェイ１０５は、アプリケーションファイアウォールおよびセキュリティ制御装置を異なる方法で符号化されたネットワーク通信に適用するステップが符号化コンテンツで見出される場合のある、脆弱性およびセキュリティ懸案事項からネットワーク環境を保護することを可能にする。
【００７９】
本発明の精神および範囲から逸脱することなく、多くの変更および修正が、当業者によって行われてもよい。したがって、解説された実施形態は、実施例の目的で示されているに過ぎず、次の請求項によって規定される本発明を限定するとして理解されるべきではないことを、明示的に理解しなければならない。これらの請求項は、それらが文字通りに説明するもの、また、他の側面において上記の解説で図示および説明されるものと同一ではないにしても、わずかに異なる同等の要素を含むものとして、読まれるものである。
【図１Ａ】
2009539176.tif 000003
【図１Ｂ】
2009539176.tif 000004
【図１Ｃ】
2009539176.tif 000005
【図１Ｄ】
2009539176.tif 000006
【図２】
2009539176.tif 000007
【図３】
2009539176.tif 000008
【国際調査報告】
2009539176.tif 000009
2009539176.tif 000010
2009539176.tif 000011