(57)【特許請求の範囲】
【請求項１】
通信ネットワークのトランザクションを管理するために構成されるサーバコンピュータにおいて、
通信ネットワークのセキュアなリンクでコンピュータに操作可能に接続されて、送信コンピュータからのトランザクションのデータパケットを受信するよう構成されるデータのインターフェースと、
データインターフェースと操作可能に接続されて、前記送信コンピュータの発信元アドレスに基づいて前記トランザクションの優先順位を特定し、受信したデータのパケットにアクセスし、データのパケットの内容を復号化し、複数の他のコンピュータの応答時間を監視し、前記応答時間及び前記トランザクションに対して特定された前記優先順位に基づいて、前記複数の他のコンピュータの内の１つを前記データパケットの送り先として選択し、前記選択されたコンピュータにデータのパケットを転送するようプログラミングされたデータ処理装置と、
処理装置及びデータインターフェースに操作可能に接続されて、前記選択されたコンピュータがクライアントのパケットを受信する準備ができるまで、データのパケットを記憶するよう構成されるデータ記憶装置と、
からなることを特徴とするサーバコンピュータ。
【請求項２】
請求項1のサーバにおいて、データインターフェースが、セキュアなソケットレイヤ(SSL)リンクで暗号化された情報をもつデータのパケットを受信するよう構成されることを特徴とするサーバ。
【請求項３】
請求項1のサーバにおいて、処理装置が、ノンセキュアなリンクで、暗号化されていない情報をもつデータのパケットを前記選択されたコンピュータに転送するようプログラミングされることを特徴とするサーバ。
【請求項４】
請求項１のサーバにおいて、処理装置が、他のセキュアなリンクで、暗号化された情報をもつデータのパケットを前記選択されたコンピュータに転送するようプログラミングされることを特徴とするサーバ。
【請求項５】
請求項1のサーバにおいて、処理装置が前記選択されたコンピュータの応答時間を前記特定された優先順位のための閾値時間と比較するようプログラミングされることを特徴とするサーバ。
【請求項６】
請求項5のサーバにおいて、処理装置がさらに、応答時間が閾値時間を超える場合に、前記選択されたコンピュータへのノンセキュアなトラフィックのフローを減少するようプログラミングされることを特徴とするサーバ。
【請求項７】
請求項1のサーバにおいて、データ記憶装置が、受信したデータのパケットの数の変化に対応して、利用できる記憶空間のサイズを調整するように構成されることを特徴とするサーバ。
【請求項８】
コンピュータネットワークで電子的要求に応答するよう構成されるシステムにおいて、
コンピュータネットワークのセキュアなリンクでトランザクションのデータのパケットとインターフェースしてそれを受信するよう構成され、さらに、送信コンピュータの発信元アドレスに基づいて前記トランザクションの優先順位を特定し、データのパケットの内容を復号化して、データのパケットを転送するよう構成される第1サーバと、
第1サーバとデータ通信し、第1サーバからデータのパケットを受け入れて、それに含まれる指示に従ってデータのパケットを実行するよう構成される第2サーバであって、複数のサーバの内から前記第1サーバによって、前記第2サーバの応答時間及び前記トランザクションの前記特定された優先順位に基づいて選択される第2サーバと、
からなることを特徴とするシステム。
【請求項９】
請求項8のシステムにおいて、第1サーバが、コンピュータネットワークのセキュアなソケットレイヤ(SSL)リンクでインターフェースするよう構成されることを特徴とするシステム。
【請求項１０】
請求項8のシステムにおいて、第1サーバがデータのパケットの内容を再暗号化するよう構成されることを特徴とするシステム。
【請求項１１】
請求項8のシステムにおいて、第1サーバが、その間にデータのパケットを送信するために、第2サーバとセキュアなリンクを確立するよう構成されることを特徴とするシステム。
【請求項１２】
請求項11のシステムにおいて、第2サーバが、第1サーバから受信するデータのパケットを復号化するよう構成されることを特徴とするシステム。
【請求項１３】
請求項８のシステムにおいて、第1サーバが第2サーバの応答時間を監視して、応答時間を前記トランザクションの前記特定された優先順位に基づく閾値時間と比較するよう構成されることを特徴とするシステム。
【請求項１４】
請求項１３のシステムにおいて、第1サーバが、応答時間が閾値時間を超える場合に、ノンセキュアなトラフィックのフローの量を減少するよう構成されることを特徴とするシステム。
【請求項１５】
請求項8のシステムにおいて、第1サーバが第2サーバの応答を監視し、第2サーバにエラーがある場合には、履行するために他のサーバにクライアントのパケットを転送するよう構成されることを特徴とするシステム。
【請求項１６】
コンピュータネットワークで電子的要求を管理するための方法において、
コンピュータネットワークのセキュアなリンクで、クライアントのコンピュータから暗号化された情報をもつ、トランザクションのデータのパケットを受信するためのステップと、
前記クライアントのコンピュータの発信元アドレスに基づいて前記トランザクションの優先順位を特定するステップと、
受信したデータのパケットの情報を復号化するためのステップと、
データのパケットを実行するために利用できる、応答時間及び前記トランザクションの前記特定された優先順位に基づいて選択されるサーバとリンクを確立するためのステップと、
データのパケットをサーバに送るためのステップと、
からなることを特徴とする方法。
【請求項１７】
請求項１６の方法において、受信するためのステップが、インターネットのセキュアなソケットレイヤ(SSL)リンクでデータのパケットを受信するためのステップからなることを特徴とする方法。
【請求項１８】
請求項１６の方法において、さらに、データのパケットをサーバに送る前に、データのパケットの情報を再暗号化するためのステップからなることを特徴とする方法。
【請求項１９】
請求項１６の方法において、さらに、クライアントのコンピュータのデータのパケットに反応して、クライアントのコンピュータにデータのパケットを送るためのステップからなることを特徴とする方法。
【請求項２０】
請求項１６の方法において、さらに、前記応答時間を監視するためのステップと、前記応答時間が前記トランザクションの前記特定された優先順位に基づく閾値時間を超える場合には、サーバへのノンセキュアなトラフィックの量を減少するためのステップとからなることを特徴とする方法。
【請求項２１】
請求項１６の方法において、さらに、複数のクライアントのグループのそれぞれに、それぞれのクライアントグループの応答の優先順位に基づいた閾値時間を設定するためのステップからなることを特徴とする方法。
【請求項２２】
請求項１６の方法において、リンクを確立するためのステップが、サーバとの他のセキュアなリンクを設定するためのステップからなることを特徴とする方法。
【請求項２３】
請求項１６の方法において、さらに、サーバによりデータのパケットを受信するためのステップと、前記トランザクションの過程で少なくとも1つの応答データのパケットを準備するためのステップとからなることを特徴とする方法。
【請求項２４】
請求項１６の方法において、さらに、サーバによりデータのパケットの情報を復号化するためのステップからなることを特徴とする方法。
【請求項２５】
請求項１６の方法において、さらに、サーバの応答を監視するためのステップと、サーバにエラーがある場合には、他のサーバにデータのパケットを転送するためのステップとからなることを特徴とする方法。
【請求項２６】
クライアントサーバネットワークでクライアントとサーバの間を通信するための方法において、
クライアントと第1サーバの間に通信リンクを確立するためのステップと、
クライアントから、データの要求を表す少なくとも1つのトランザクションのパケットを第1サーバにより受信するためのステップと、
前記クライアントの発信元アドレスに基づいて前記トランザクションの優先順位を特定するステップと、
第1サーバでパケットのヘッダー情報を変更するためのステップと、
変更したパケットを第1サーバから、応答時間及び前記トランザクションの前記特定された優先順位に基づいて選択される第2サーバまで送るためのステップと、
第1サーバを介してクライアントのデータの要求に応答するためのステップと、
からなることを特徴とする方法。
【請求項２７】
請求項２６に記載する方法において、通信リンクを確立するためのステップが、クライアントとサーバの間に少なくとも1つのハンドシェイクを実行するためのステップからなることを特徴とする方法。
【請求項２８】
請求項２７に記載する方法において、少なくとも1つのハンドシェイクを実行するためのステップが、伝送制御プロトコル/インターネットプロトコル(TCP/IP)のセッションを開始するためのステップからなることを特徴とする方法。
【請求項２９】
請求項２６に記載する方法において、ヘッダー情報を変更するためのステップが、パケットを第2サーバに中継するためにパケットの宛先アドレスを変更するためのステップからなることを特徴とする方法。
【請求項３０】
請求項２６に記載する方法において、変更したパケットを第2サーバに送るためのステップが、安全ではないリンクでパケットを送るためのステップからなることを特徴とする方法。
【請求項３１】
請求項２６に記載する方法において、クライアントに応答するためのステップが、第2サーバにより少なくとも1つの応答パケットを第1サーバに送るためのステップからなることを特徴とする方法。
【請求項３２】
請求項３１に記載する方法において、クライアントに応答するためのステップがさらに、第1サーバにより、クライアントの宛先アドレスをもつ応答パケットを送るためのステップからなることを特徴とする方法。
【請求項３３】
クライアントサーバネットワークでクライアントとサーバの間を通信するためのシステムにおいて、
クライアントからトランザクションのデータの要求を表す少なくとも1つの前記トランザクションのパケットを受信するように構成され、さらに前記パケットのヘッダー情報を変更して、ネットワークを介して変更したパケットを送るように構成される第1サーバと、
変更したパケットを受信して、第1サーバを介してクライアントのデータの要求に応答するように構成される第2サーバであって、前記第2サーバの応答時間及び前記トランザクションに関連する優先順位に基づいて前記第１サーバに選択され、前記優先順位は前記クライアントの発信元アドレスに基づいて前記第1サーバによって特定される第2サーバと、
からなることを特徴とするシステム。
【請求項３４】
請求項３３に記載するシステムにおいて、第1サーバがクライアントと少なくとも1つのハンドシェイクを実行するように構成されることを特徴とするシステム。
【請求項３５】
請求項３４に記載されるシステムにおいて、ハンドシェイクが伝送制御プロトコル/インターネットプロトコル(TCP/IP)のセッションの開始を表すことを特徴とするシステム。
【請求項３６】
請求項３３に記載するシステムにおいて、第1サーバが、パケットを第2サーバに中継するために、パケットの宛先アドレスを変更するように構成されることを特徴とするシステム。
【請求項３７】
請求項３３に記載するシステムにおいて、第1サーバが、ノンセキュアなリンクでパケットを第2サーバに送るように構成されることを特徴とするシステム。
【請求項３８】
請求項３３に記載するシステムにおいて、第2サーバが、少なくとも1つの応答パケットを第1サーバに送るように構成されることを特徴とするシステム。
【請求項３９】
請求項３８に記載するシステムにおいて、第1サーバが、クライアントの宛先アドレスとともに応答パケットを送るように構成されることを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の技術分野】
本発明は、一般的にはコンピュータネットワーク技術に関係する。さらに具体的には、本発明はセキュアクライアントサーバベースのネットワークでのクライアントトランザクションの管理に関係する。
【０００２】
【関連技術の説明】
インターネットなど、ネットワークでのデータ通信は電話での音声通信と同じくらい一般的になってきている。ネットワーク通信の著しい増加のために、コンピュータハッカーなどの未権限の利用者による侵入を受けてきている。このような侵入に対抗するために、現在ほとんどの通信プロトコルは、単純なスクランブル化から非常に高度な暗号化アルゴリズムまで、ある種の通信セキュリティを実行している。より具体的には、インターネットなどの多くのネットワークで使用される伝送制御プロトコル(TPC)/インターネットプロトコル(IP)を採用して、セキュア・ソケット・レイヤ(SSL)及びIPセキュリティ(IPSec)などのセキュリティプロトコルを内蔵した。
【０００３】
SSLはインターネットを介して私用データ(例、テキスト文書)の伝送のために開発されたプロトコルである。SSLはクライアントとサーバの間でデータを通信するためのセキュアな接続を、データを暗号化する秘密鍵を使用して提供する。秘密鍵/公開鍵の暗号化は十分に理解されており、送信コンピュータから受信コンピュータに送信する情報のプライバシーを確保するために現代のコンピュータネットワークで頻繁に実行されている。ネットスケープナビゲータ及びインターネットエクスプローラなどのウェブブラウザがSSLをサポートして、多くのウェブサイトがSSLプロトコルを実行して、クレジットカードの番号などの秘密のユーザ情報を取得している。SSLは認証及び暗号化を実行するためのメカニズムを提供する。認証は各クライアント及びサーバが本人であることを保証する。実際的には、認証はユーザIDとパスワードを入力するだけでよい。しかしながら、コンピュータハッカーは、パスワードとユーザの名前の情報を傍受するためにクライアントサーバのリンクで盗聴することができる。暗号化はネットワークでの伝送前にユーザID及びパスワード情報をスクランブル化することによって、前記被害を阻止する。ユーザ情報の暗号化に加え、SSLはクライアントとサーバの間で通信するペイロードなどのほぼあらゆる種類のデータ(つまり、テキスト文書)を安全にするために暗号化を利用する。要するに、SSLはセッションの暗号化、及びサーバ、メッセージ、及び任意でクライアントの認証のために設けられる。SSLプロトコルの詳細に関しては、参照により組込むSSLプロトコルの仕様書、バージョン2及び3を参照する。
【０００４】
SSLはテルネット、ファイル転送プロトコル(FTP)、又はハイパーテキスト転送プロトコル(HTTP)などのプロトコルソケットで確立されるレベルプロトコルを保護するプロトコルである。ネットワーク技術で知られるように、ソケットとはアプリケーションをネットワークプロトコルに接続するソフトウェアオブジェクトである。例えば、UNIXでは、プログラムは、ソケットを開いてソケットからデータを読み込んだり書き込んだりして、TCP/IPメッセージを送受信する。このため、プログラマーはソケットを操作する心配だけしてればよく、実際にメッセージをネットワークを介して正確に移動するための操作システムに頼ることができるため、プログラム開発が簡単になる。SSLが備える機能の多くは、主要なインターネット標準化機構であるインターネットエンジニアリングタスクフォース(IETF)が考えるIPバージョン6(IPv6)として知られる次世代IPプロトコル(IPng)の一部である。
【０００５】
IPSecはIPレイヤでセキュアなパケット交換をサポートする1組のプロトコルである。IPSecはトランスポートとトンネルの2つの暗号化モードをサポートする。IPソケットのソースデバイスでは(つまり、送信ステーション)、トランスポートモードがIPパケットのデータ部分(つまり、ペイロード)のみを暗号化し、ヘッダには影響を与えないまま残す。トンネルモードはIPパケットのヘッダとペイロード両方を暗号化することによって、トランスポートモードよりも安全性を提供する。宛先デバイスでは(つまり、受信ステーション)、IPSec適合デバイスが受信するIPパケットを復号化する。一般的には、セキュアと宛先デバイスが公開鍵を共有する。これは、インターネットセキュリティ及びキー管理プロトコル/Oakley(ISAKMP/Oakley)として知られるプロトコルを実行して得られ、これにより宛先デバイスが公開鍵を取得でき、デジタル電子署名を定義するための国際電気通信連合(ITU)規格であるX.509規格を使用するソースデバイスを認証する。
【０００６】
参照するアプリケーションは、通信ネットワークでクライアントトランザクションを管理し、データ経路輻輳を緩和するために構成されるブローカサーバを説明する。TCP/IPネットワークでのブローカオペレーションについての詳細に関しては、参照によりこれに全体的に組込まれる参照するアプリケーションを参照する。通信ネットワークがセキュアな操作を伴う場合には、クライアントトランザクションの管理にはセキュアな操作に適応し、それに適合する必要がある。セキュアなネットワークでクライアントのトランザクションのスピードアップを図る必要性が特に重要である。これは典型的なウェブ(ワールドワイドウェブ)サーバが従来の(つまり、ノンセキュアな)HTTPトラフィックよりも遅い速度でセキュアなトランザクションを処理するためである。ウェブサーバとセキュアなトランザクションをするウェブユーザーは、処理するトランザクションのために長時間待たなければならず、ウェブサイトの包括的な信頼性と利用可能性に影響を与えている。
【０００７】
そのため、インターネットなどのネットワーク通信技術では、セキュアな(例、SSL)通信ネットワークでクライアントトランザクションの仲介をサポートする必要がある。
【０００８】
【発明の概要】
ある実施例において、本発明は通信ネットワークでのトランザクションを管理するよう構成されるサーバコンピュータを提供する。サーバコンピュータは、通信ネットワークのセキュアなリンクでコンピュータに操作可能に接続されて、コンピュータからデータパケットを受信するデータインターフェースからなる。サーバコンピュータはさらに、データインターフェースに操作可能に接続されてプログラミング化されて、受信するデータパケットにアクセスするデータ処理装置からなる。処理装置はさらに、データパケットの内容を復号化して、データパケットを他のコンピュータに転送するようプログラミングされる。サーバコンピュータはさらに、処理装置及びデータインターフェースに操作可能に接続されるデータ記憶装置からなる。データ記憶装置は、他のコンピュータがクライアントパケットを受信する準備ができるまで、データパケットを記憶するように構成される。
【０００９】
他の実施例において、本発明は、コンピュータネットワークで電子的要求に対応するよう構成されるシステムを提供する。このシステムは、コンピュータネットワークのセキュアなリンクで、データパケットとインターフェースして、データパケットを受信するよう構成される第1サーバからなる。第1サーバはさらに、データパケットの内容を復号化してデータパケットを転送するよう構成される。システムはさらに、第1サーバとデータ通信をして、第1サーバからデータパケットを受入て、それに含まれる指示に従ってデータパケットを実行するように構成される第2サーバからなる。
【００１０】
他の実施例において、本発明は、コンピュータネットワークで電子的要求を管理する方法を提供する。この方法は、コンピュータネットワークのセキュアなリンクで、暗号化された情報をもつデータパケットをクライアントのコンピュータから受信するためのステップからなる。この方法は、さらに、受信したデータパケットの情報を復号化するためのステップからなる。方法はさらに、データパケットを実行するために利用できるサーバとのリンクを確立するためのステップからなる。方法はさらに、データパケットをサーバに送信するためのステップからなる。
【００１１】
本発明の上記側面、他の側面、特徴及び利点は、添付図面と合わせて読むべきである以下の発明の実施例の詳細な説明を参照することにより、よりよく理解される。
【００１２】
【発明の実施例の詳細な説明】
以下の説明は限定的な意味で取り上げているのではなく、単に発明の一般的な原理を説明するために行っている。発明の範囲は請求項を参照して判断するべきである。
【００１３】
図1は発明に従ったクライアントサーバシステム100の機能的なブロック図である。図1に示すように、システム100は1つ以上の通信ネットワーク150、一般的にはインターネットなどのパケット交換ネットワークでサーバ130aと通信するように構成される1つ以上のクライアント110からなる。クライアント110はホストサーバ114、例えばインターネットサービスプロバイダー(IPS)で制御されるサーバコンピュータを介して、ネットワーク150に接続することができる。つまり、ルータ118などのブリッジ形式のデバイスを介してネットワーク150に操作可能に接続されている。ルータ118は宛先アドレスなどのパケットヘッダー情報に基づいて、クライアント110から受信するパケットを様々な宛先に送るように構成される。インターネットの物理的レイヤはルータを広範囲に使用して、あるサーバ(例、ホスト114)から別のサーバ(例、サーバ130a)にパケットを送る。
典型的には、システム100は複数のサーバ130a、130b及び130cから構成される。システム100はさらに、1つ以上のサーバ(130a、130b、130c)とルータ128の間に操作可能に接続されるブローカ120から構成される。ブローカ120は、参照するアプリケーションで詳細に説明するように、クライアントトランザクションをサーバ130a、130b及び130cのうちの1つにハンドオフすることによって、クライアントトランザクションを管理し、応答する。典型的には、通信ネットワーク150はTCP/IPプロトコルなどの1つ以上の標準通信プロトコルに適合する。図1にはクライアント110を1つだけしか図示していないが、システム100は複数のクライアントで同時に操作する。同様に、図1にはブローカ120を1つだけしか図示していないが、システム100は、複数のブローカがルータ120と複数のセットのサーバ(この図では図示せず)の間にパラレルに接続されるカスケード式構造にあるように、複数のブローカで同時に操作できる。
【００１４】
ブローカ120は複数のSSLリンクをサポートするために構成され、ある実施例では、ブローカ120は1秒あたり600個までのSSLリンク又はトランザクションをサポートできる。ブローカ120と複数のクライアントの間の通信は、典型的には通信プロトコルの特徴によって提供される。例えば、TCP/IPプロトコルを使用して、ブローカ120はネットワークを流れるパケットの宛先アドレスを監視するだけでよい。宛先アドレスが所定のアドレス(例、ブローカ120がサービスしている複数のサーバのうちの1つのアドレス)と符合する場合、ブローカ120はさらに処理するためにパケットを受信する。典型的には、ブローカ120はパケットの発信元アドレス(例、クライアントのID)とは関係なく、この方法を適用する。
【００１５】
ネットワーク150での通信は、クライアント110とブローカ120の間のセキュアなデータの送受信を含むことができる。前述したように、ネットワーク150はTCP/IPプロトコル(インターネットなどの)を実行して、SSL、IPSecなどの1つ以上のセキュリティプロトコルを適用することができる。本発明では、発明の実務を図示するためにSSLプロトコルを説明する。しかしながら、当業者には、発明が1つ以上のあらゆるセキュリティプロトコルを使用して実行できることは、本開示から理解されるであろう。
【００１６】
クライアント110とブローカ120(これは目的とする受信サーバ130の代用である)の間の通信が望まれるとき、クライアント110は例えばTCP/IPなどの通信プロトコルで指定される「ハンドシェイク」を開始する。例えば、クライアント110はセットシンクロナスビットをもつパケットを、クライアント110からブローカ120まで伝送する。ブローカ120はセットアックビットをもつパケットを伝送することによりクライアント110に応答し、クライアント110はセットアックビットをもつパケットを伝送することによりブローカ120の確認応答を認識する。ネットワークプロトコルに従ってハンドシェイクを確立することに加えて、セキュアなプロトコル(例、SSL)の使用に従ってハンドシェイクを実行する必要がある。
【００１７】
クライアントとサーバがSSL接続を使用して通信したい場合、プロトコルのバージョンについての情報を交換して、暗号化アルゴリズムを選択し、互いに認証して、公開鍵の暗号化技術を利用して、共有のシークレットを作成する。このようなプロセスはSSL接続のハンドシェイクプロトコルで処理し、これは以下のように要約することができる。図2はSSLプロトコルに従ったハンドシェイク操作を説明するフローチャートである。SSL接続又はリンクを確立するために、クライアント110はClientHelloメッセージをブローカ120(ブロック210)に送信することによりハンドシェイクを開始する。
【００１８】
ClientHelloメッセージは、プロトコルのバージョン、セッションID、暗号アルゴリズム、及び圧縮方法などの複数のクライアントの属性を通信する。暗号アルゴリズムフィールドでは、クライアント110は最初にリスト化されるクライアントの第1優先順位をもつクライアント110がサポートする暗号スーツのリストを有する。例えば、ClientHelloの構造は以下のコマンドをもつことができる。Ciphersuite cipher_suites＜list＞で、ここで「list」とはクライアント110がサポートする1つ以上の暗号プロトコルを表す。セッションIDは一般的には、セッションをブローカ120に識別するためにクライアント110が作成する任意の値である。クライアントの属性はブローカ120にクライアント110がサポートするリンクの仕様を提供する。ブローカ120は、ブローカ120(ブロック220)に関する類似の属性情報を含むServerHelloメッセージを送信することによりクライアント110に応答する。クライアント110がアプリケーションデータを通信する前に、ブローカ120の認証を望む場合、ブローカ120はサーバの電子署名をクライアント110に送る。クライアント110が通信する暗号アルゴリズムの種類(そのClientHelloメッセージで)は、ブローカ120の認証が必要かどうかを示す。サーバの電信署名の構造は選択した暗号アルゴリズムによって決まり、ある実施例では、一般的にはX.509バージョン3のデジタル電子署名である。
【００１９】
ブローカ120は複数の暗号又はセキュリティアルゴリズムをサポートする。暗号アルゴリズムには、RSA、DSA、Diffie-Hellman PKls、RC2、RC4、RC5、OES、Triple DES、IDEA、CAST、CASTS、Blowfish、MD5、MDC2、RMD-160、SHA、及び/又はSHA-1を含むことができる。しかしながら、使用する暗号アルゴリズムの種類は発明を実施するために必ずしも重要ではないことに注意されたい。クライアント110とブローカ120は相互に利用できる暗号アルゴリズムを交渉し、合意することができる。クライアント110がブローカ120で認められる暗号プロトコルをサポートしていない場合、SSLのセッションは確立できない。確立されたSSLのセッション中にクライアント110が失敗する場合には、ブローカ120はクライアント110からの応答なしの所定の持続時間後タイムアウトして、セッションを終了する。
【００２０】
Helloメッセージ後、ブローカ120は暗号アルゴリズムに要求される場合、クライアント110にサーバ鍵交換メッセージを送ることができる。例えば、鍵交換メッセージは、ブローカ120が電子署名を持っていない場合又はサインオン(つまり初期接続)のみで使用する電子署名をもつ場合に利用することができる。ブローカ120はクライアント110にServerHelloDoneメッセージを送って、ハンドシェイクのHello段階が完了したことを示す(ブロック220)。次にブローカ120はクライアントの応答を待つ。クライアントはブローカ120にClientKeyExchangeを送る。ClientKeyExchangeの内容はハンドシェイクのHello段階の間に確立した公開鍵アルゴリズムによって決まる。例えば、Fortezza鍵交換を選択する場合、ClientKeyExchangeはブローカ120にFORTEZZAキー交換アルゴリズム(KEA)の選択を指定する。一般的には、公開鍵アルゴリズムは、公開鍵と秘密鍵の2つのキーを使用する。公開鍵で暗号化されたメッセージは関連する秘密鍵でのみ復号化することができる。反対に、公開鍵で暗号化されたメッセージは公開鍵でのみ復号化できる。次に、クライアント110はブローカ120にChangeCipherSpecメッセージを送って、RSA、Fortezza、又はクライアントDiffie-Hallmanなどの選択した暗号アルゴリズムを起動する(ブロック230)。ChangeCipherSpecメッセージは1バイトの値1からなり、これはその後のデータがちょうど交渉した暗号アルゴリズム及びキーで保護されることを受信者(例、ブローカ120)に通知するために暗号化、圧縮されてサーブする。最後に、クライアント110はブローカ120にFinishedメッセージを送って、鍵交換及び認証プロセスが成功したことを証明する。Finishedメッセージは典型的には、ちょうど交渉した暗号アルゴリズムで暗号化される(ブロック230)。クライアントのFinishedメッセージを受信した時点で、ブローカ120はその暗号アルゴリズムをクライアント110が選択したものに更新し、クライアント110にChangeCipherSpecメッセージを送ることによって確認する(ブロック240)。ブローカ120はまた、ちょうど交渉した暗号アルゴリズムを使用する暗号化した形式で、クライアント110にFinishedメッセージを送る。この段階で、ハンドシェイクは完了し、クライアント110とブローカ120は暗号化した形式でアプリケーションデータの交換を開始することができる(ブロック250及び260)。
【００２１】
図3はブローカ120の操作を説明するフローチャートである。クライアント110とブローカ120がSSL接続を確立して、アプリケーションデータの交換を開始した後、ブローカ120はブローカ120とサーバ130aの間のデータ交換の2つの実施例のうちの1つを選択的に実行できる。両実施例では、ブローカ120とサーバ130aの間のデータ転送接続を確立するためにハンドシェイクが利用できるまで、ブローカ120にクライアント110から入るアプリケーションデータをバッファに入れることが望ましい（ブロック310）。データをバッファに入れることにより、ブローカ120は、クライアント110からブローカ120に送られるアプリケーションデータが損失から保護されることを保証する。ブローカ120に、クライアントとサーバのトラフィック量に応じて動的にバッファサイズを割当てさせる(例ランダムアクセスメモリ、つまりRAM)ことが望ましい。さらに具体的には、ブローカ120はクライアントの要求を処理するためにバッファの利用性を最適化するために現在のバッファサイズを調整する(つまり増減する)ことができる。例えば、ある実施例では、ブローカ120は割当てられたバッファ空間の利用率を連続的に監視することができる。利用率はあらかじめ選択した閾値レベル未満である場合(例、40％)、ブローカ120はそのバッファ空間をあらかじめ選択した係数(例1/2)によりダウンサイズすることができる。一方、利用率があらかじめ選択した閾値レベルを超える場合(例、95％)、ブローカ120はバッファ空間をあらかじめ選択した係数(例、2)で増加することができる。最終的に、割当てられるバッファ空間は、ブローカ120がそのハードウェアの仕様により命じられるメモリの限界のために超えることができない最大メモリ空間に到達することができる。
【００２２】
一般的には、ブローカ120には、発明に従ってクライアントのデータを管理及び記憶するために、少なくとも1つの処理装置と1つの記憶装置を含むことができる。さらに具体的には、ブローカ120は、例えばIpivot, INC.が製造するCommerce Accelerator 1000又はCommerce Director 8000などの商業的な形態で具現できる。
【００２３】
ある実施例では、具体的には緩和した安全措置で十分な場合、ブローカ120は参照するアプリケーションで説明するように、クライアントトランザクションを履行又は実行するために、ハンドオフリンクをサーバ130aで確立するように構成される。ハンドオフリンクには、ブローカ120とサーバ130aの間にメッセージの暗号化/復号化を含まない。他の実施例では、具体的にはより十分なセキュリティが望まれる場合、ブローカ120は、クライアントトランザクションを履行又は実行するために、セキュアな(例、SSL)ハンドオフリンクをサーバ130aで確立するよう構成される。一般的には、システムオペレータが初期のシステムのインストール時点でブローカ120のプログラムにどのような構成の設定(例、基本入出力システムつまりBIOS設定)にするか決定する。この特性のための典型的なBIOS設定は<continue secure link:Y/N>で表される。代わりに、ブローカの設定は、操作中にシステムユーザが選択する、又は様々なサーバの構成を収容するよう自動的に調整できる。このような設定に基づいて、ブローカ120はセキュアな(例、SSL)またノンセキュアなリンクを継続するかどうか決定する(ブロック320)。
【００２４】
ブローカ120がセキュアなリンクを継続するよう構成される場合、ブローカ120の操作は(ブロック330)まで進行する。参照するアプリケーションで説明するように、ブローカ120がクライアントのトランザクションの要求を履行するハンドオフのために使用することができる多数のサーバがある。従って、これに説明するプロセスは、ブローカ120がクライアントトランザクションをハンドオフするために、遂行サーバを、例えばサーバ130a、130b及び130cからサーバ130aを選択したと仮定する。クライアントトランザクションをハンドオフする際、ブローカ120はクライアント110から受信するパケットを、クライアント110で合意した暗号アルゴリズムを適用することによって復号化する(ブロック330)。復号化後、ブローカ120は宛先アドレスなどのパケットヘッダー情報を変更して、クライアントのパケットをサーバ130aに戻す(ブロック332)。
【００２５】
クライアントのパケットをサーバ130aに戻すために、ブローカ120は、前述したクライアント110とブローカ120の間のハンドシェイクの確立と実質的に類似した方法で、サーバ130aでセキュアなSSLのハンドシェイクを開始する(ブロック334)。ハンドシェイクがブローカ120とサーバ130aの間で確立されたら、ブローカ120とサーバ130aはここで暗号化した形式でアプリケーションデータを交換する準備段階にある。従って、ブローカ120はクライアントのパケットをそのバッファから再生して、サーバ130aに送信するためにクライアントのパケットを暗号化する(ブロック336)。暗号化後、ブローカ120は暗号化したクライアントのパケットを実行するためにサーバ130aに送る。プロセスのこの段階で、ブローカ120からサーバ130aまでのクライアントトランザクションのハンドオフが完了する(ブロック350)。
【００２６】
一方、ブローカ120がノンセキュアなモードで継続するよう構成される場合、ブローカ120の操作は(ブロック340)まで進行する。ノンセキュアなモードでリンクを継続することによって、ブローカ120は著しい操作上の利点が達成できる。この利点のために、サーバ130aはSSL操作(つまり、暗号化/復号化)に関わるCPU主導のタスクから解放される。要するに、ブローカ120はサーバのSSL操作を肩代わりし、それによって他の待機中のタスクを実行するために、サーバ130aのCPUを自由にする。いくつかのブローカの操作は、クライアントまでの応答速度が50倍まで改善されることを証明できる。ブローカ120は典型的には暗号方式のアプリケーション専用の1つ以上の処理装置を備えている。対照的に、サーバは一般的には多数の非暗号方式のアプリケーションを担当する汎用アプリケーションの中央処理装置を装備する。そのため、サーバ130aからブローカ120の専用処理装置に暗号化の機能を再配置することによって、クライアントまでの応答速度は著しく向上する。
【００２７】
ブローカ操作の330の枝で示すように、ブローカ120はクライアント110で合意した暗号アルゴリズムを適用することによって、クライアントのパケットを復号化する(ブロック340)。復号化後、ブローカ120は宛先アドレスなどのパケットヘッダー情報を変更して、クライアントのパケットをサーバ130aに戻す(ブロック342)。クライアントのパケットをサーバ130aに戻すために、ブローカ120は、参照するアプリケーションで説明するように、ブローカ120とサーバ130aの間に指定される通信プロトコル(例、TCP/IP)に従って、サーバ130aで従来の(つまり、ノンセキュアな)ハンドシェイクを開始する(ブロック344)。ブローカ120とサーバ130aの間にハンドシェイクが確立されたら、ブローカ120とサーバ130aは従来の形式でアプリケーションデータの交換の準備状態にある。従って、ブローカ120はクライアントのパケットを再生して、サーバ130aに送る(ブロック346)。プロセスのこの段階で、ブローカ120からサーバ130aまでのクライアントトランザクションのハンドオフが完了する(ブロック350)。
【００２８】
図4は第三者のサーバ、例えばサーバ130aの操作を説明するフローチャートである。図3で前述するように、クライアント110とブローカ120はSSL接続を確立して、アプリケーションデータの交換を開始する。サーバ130aはブローカ120とサーバ130の間のデータ交換の1つ又は2つのモードを選択的に実行できる。制御フローがブロック400で開始し、ここでサーバはブローカ120との新たな接続が開くのを待つ。ブローカ120はサーバ130aでハンドシェイクを開始し、ブロック410で接続が確立される。前述したように、サーバ130は、ブローカ120との標準リンク又はセキュアなリンクを介して通信するための以前のモード決定で構成できる。安全にするためにハンドシェイクが要求される場合、制御フローが決定ブロック420から続く。セキュアなリンクモードでは、サーバ130がブローカ120からクライアントのパケットを受信する(ブロック430)。ブロック432で、サーバ130が受信したクライアントのパケットを復号化する。次にサーバ130が、ブロック434でのクライアントトランザクションを実行することにより、クライアントの要求を履行する。この要求はウェブページを読み込む、eコマースの購入をする、チャットを介して他のクライアントと通信をすることなどである。サーバ130は次にクライアント110に送り返すために、応答パケットを暗号化する(ブロック436)。サーバ130は暗号化したパケットをブローカ120に送り(ブロック438)、ブローカ120が応答パケットをクライアント110に送る(ブロック450)。リンクを終了するか、次のトランザクションがサーバ130によって満たされてから、制御フローが終了する(ブロック460)。
【００２９】
サーバ130でブローカ120により安全とするためにハンドシェイクが要求されない場合、パケット伝送の代替経路が発生することがある(ブロック420)。このフローでは、サーバ130がブローカ120からクライアントのパケットを受信する(ブロック440)。サーバ130は、ブロック434のセキュアなパスで示したものと同様に、クライアントトランザクションを実行する(ブロック442)。サーバ130はブローカ120に応答パケットを送り(ブロック444)、これがクライアント110に応答パケットを送る(ブロック450)。
【００３０】
サーバ130がクライアントのパケットの処理中に予期しない輻輳、操作上のエラー、又は突然の停電に遭遇する場合、サーバ130は典型的にはHTTP 400、500又は600シリーズのエラーメッセージなどの1つ以上のエラーメッセージを送る。ブローカ120がこのようなエラーメッセージを監視して、エラーメッセージがサーバ130により生成されるかどうかを判定させることが望ましい。サーバ130がこのようなエラーメッセージを生成するとき、ブローカ120は履行するために他のサーバにクライアントのパケットを透過的に(つまり、クライアントが気づかずに)転送することにより応答する。その場合、クライアントのセッションは、サービスをクライアントに提供する企業が遭遇するサービスの難しさが一切生じないで、回復して完了できる。従って、顧客のサービス企業(例、eコマースのベンダー)の認知は高いまま維持される。
【００３１】
他の実施例では、ブローカ120は、ユーザのトランザクションの優先付けをするために、システム管理者が1つ以上のユーザグループを識別できるようにする。さらに具体的には、システム管理者はそのための優先レベル(例、1〜5)を設定するために具体的な発信元アドレスをもつユーザグループを選択することができる。ブローカ120は、最も高い優先順位(例、5)をもつユーザグループが発行するトランザクションを処理するための応答時間を最も少なくするよう割当てる。最も少ない応答時間を割当てることにより(例、10ミリセコンドの閾値)、ブローカ120は優先順位の高いトランザクションに対するサーバの応答時間を監視する。1つ以上の応答時間が閾値の時間よりも大きい場合、ブローカ120はサーバ130へのノンセキュアなトランザクションのトラフィック(例、プレーンなHTTP)のフローを減少することができる。サーバ130へのノンセキュアなトラフィックのフローを減少することにより、ブローカ120はサーバ130を自由にして、セキュアなトランザクション(例、HTTPS)をより効率的に取引する。実際に、セキュアなトランザクションとはノンセキュアなトランザクションよりも財務データ(つまりeコマースのアプリケーション)を含むことが多いと考えられる。このように、ブローカ120はeコマース関連のトランザクションを最大限にするために、ノンセキュアなトラフィックのフローを減少する。また、ブローカ120はクライアントの要求を最も効率的に履行できる他のサーバにトラフィックを転送できる。
【００３２】
一方、優先順位が最低のクライアントトランザクションに関しては、ブローカ120は監視のための応答時間に最大のもの(例、50ミリセコンドの閾値)を割当てる。閾値の時間に従って、ブローカ120は、上記優先順位の高いトランザクションの説明と類似の方法で介入できる。従って、所定の無反応の閾値の時間の経過後、ブローカ120は、サーバ130へのノンセキュアなトランザクションのフローを減少する、又はより効率的に履行するために他のサーバへクライアントのパケットを転送できる。いかなる場合も、特定のユーザグループに関して、ブローカ120はそのグループの予測又は対象とする関心に見合ったサーバの資源を割当てることを目的とする。
【００３３】
前記事項に鑑みて、発明がSSLなどのセキュアなリンクでクライアントとサーバの間のネットワークトランザクションを管理するブローカの長年にわたるニーズを克服していると評価されるであろう。本発明はその精神又は本質的な特徴を逸脱することなく、他の具体的な形態で具現できる。説明した実施例はあらゆる点で例示的なものであり、限定的なものではないと考える。そのため、本発明の範囲は前述の説明よりも添付する請求項により示される。請求項の同等の意味及び範囲内のすべての変更は、その範囲内に包含される。
【図面の簡単な説明】
【図１】  発明に従ったクライアントサーバネットワークの機能的なブロック図である。
【図２】  SSLプロトコル標準に従ったハンドシェイク操作を説明するフローチャートである。
【図３】  図1のブローカの操作を説明するフローチャートである。
【図４】  図1のサーバの操作を説明するフローチャートである。
【図１】
0004245838.tif 000002
【図２】
0004245838.tif 000003
【図３】
0004245838.tif 000004
【図４】
0004245838.tif 000005