JP2004525558A - 信頼性のないプロトコルを利用して確実なストリーミングデータ送信機能を提供するための方法および装置 - Google Patents

信頼性のないプロトコルを利用して確実なストリーミングデータ送信機能を提供するための方法および装置 Download PDF

Info

Publication number
JP2004525558A
JP2004525558A JP2002564846A JP2002564846A JP2004525558A JP 2004525558 A JP2004525558 A JP 2004525558A JP 2002564846 A JP2002564846 A JP 2002564846A JP 2002564846 A JP2002564846 A JP 2002564846A JP 2004525558 A JP2004525558 A JP 2004525558A
Authority
JP
Japan
Prior art keywords
computer
record
ssl
proxy server
server
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.)
Pending
Application number
JP2002564846A
Other languages
English (en)
Inventor
ヴァンヘイニンゲン,マーク,ディー.
エリクソン,ロジャー,ディー.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aventail LLC
Original Assignee
Aventail LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aventail LLC filed Critical Aventail LLC
Publication of JP2004525558A publication Critical patent/JP2004525558A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Abstract

【課題】ユーザ・データグラム・プロトコルなどの信頼性のない通信プロトコルを利用してデータを確実に送信するための方法および装置を提供する。
【解決手段】ある変形態様においては、本発明は、従来のセキュア・ソケット・レイヤ(SSL)プロトコルおよびSOCKSプロトコルとの互換性を維持し、従来のSOCKS処理と同様の方法により、プロキシサーバとクライアントコンピュータとの間で確実なUDPデータグラムを送信できる。TCPなどの保証配信サービスに依存し、以前に送信されたデータレコードを参照して連続的なデータレコードを暗号化する従来のSSL処理とは対照的に、暗号化は、各送信データレコードに埋め込まれたノンスを用いて実行される。このノンスは、レコードの暗号化/暗号解読のための初期化ベクトルおよび一意的な識別子としての役割を果たし、レコードの認証を行う。
【選択図】図5A

Description

【技術分野】
【0001】
本発明は、一般的に、データ送信方式およびプロトコルに関する。特に、本発明は、ユーザ・データグラム・プロトコル(UDP)などの信頼性のないプロトコルを利用して、2つ以上のコンピュータノード間で確実にデータを送信するための方法および装置を提供する。さらに、本発明は、本発明の確実な送信を利用したコンピュータとの通信セッションを、新たなセッションを生成する必要なく、別のコンピュータに切り換えることができる方法および装置を提供する。
【背景技術】
【0002】
本願は、2001年2月12日出願、発明者マーク・ファン・ハイニンゲン(Marc van Heyningen)、名称「信頼性のないプロトコルを利用して確実なストリーミングデータ送信機能を提供するための方法および装置(Method And Apparatus For Providing Secure Streaming Data Transmission Facilities Using Unreliable Protocols)」の同時係属米国特許出願の一部継続出願に関連し、この一部継続出願はその全体が本願に引用により組み込まれている。また、本願は、2001年2月13日出願、発明者ロジャー・エリクソン(Rodger Erickson)、名称「状態転送動作のための分散型キャッシュ(Distributed Cache For State Transfer Operations)」の同時係属米国特許出願に関連し、この米国特許出願もその全体が本願に引用により組み込まれている。
【0003】
周知のトランスミッション・コントロール・プロトコル/インタネット・プロトコル(TCP/IP)は、コンピュータ間でデータパケットを送信するために長年使用されてきた。TCPは、データパケットの保証配信/配列方式を提供し、TCPを使用する2以上のコンピュータは、このプロトコルに依存して、任意のパケットが、送信された順序でその宛先に到達することを保証する。インタネット・プロトコル(IP)は、一般的に、保証配信なしにポイント間パケット送信サービスを提供する。図1Aは、従来のプロトコルスタックに従ってTCP/IP上にアプリケーションプログラムを積み上げる方法を示す。一般的なハイパーテキスト・トランスポート・プロトコル(HTTP)は、ウェブページの取出しと表示のために、クライアントのブラウザとサーバコンピュータとの間のTCP接続の存在に依存している。
【0004】
TCPは、内蔵メカニズムを利用して保証配信機能を提供する(すなわち、各アプリケーションは、信頼性の詳細に関わる必要がない)が、TCPの使用の欠点は、データストリームを送信するときに遅延などの副作用を招く可能性があることである。例えば、2つのコンピュータが、TCPを使用してパケット化されたビデオストリームを送信すると、パケットを受信パケットストリームへと再配列する前に、喪失または脱落したパケットを再送信しなければならないので、受信パケットが「ギクシャク」して見える。結果的に、TCPは、ビデオ会議アプリケーションなどのデータストリーミングにとって良い候補とはならない。
【0005】
周知のユーザ・データグラム・プロトコル(UDP)は、クライアントコンピュータおよびサーバコンピュータといった2つのコンピュータ間で通信するためのパケット志向型の送信サービスを提供する。TCPなどの保証配信プロトコルとは対照的に、UDPを使用して送信されたパケットは、宛先のコンピュータに到達することが保証されない。さらに、特定の順序で送信されたパケットが、宛先のコンピュータに順不同で到達する場合もある。したがって、UDPは、「信頼性のない」転送プロトコルと称されている。しかし、TCPなどの保証配信プロトコルとは対照的に、UDPは、時間重視の配信方式を提供し、ビデオデータなどのストリーミングメディアにとってより好適である。
【0006】
ビデオ会議などのアプリケーションにより、ストリーミングメディアの重要性が高まり、確実なストリーミング送信機能を提供する必要性がある。例えば、数多くの企業において、本社設備と1以上の遠隔地オフィスとの間でストリーミングビデオを送信する必要性がある。送信には、会社が意図しない受信者や盗聴から保護する必要のある機密情報が含まれている場合がある。TCPもUDPもこの様なセキュリティを提供しないので、この様な送信には不十分である。
【0007】
近年、保証配信プロトコルを暗号手法で強化することによって確実な送信機能を提供するために、様々な試みがなされてきた。例えば、セキュア・ソケット・レイヤ(SSL)は、サーバコンピュータおよびクライアントコンピュータといった2つの装置間の確実なチャネルを提供するプロトコルである。この様な確実なチャネルは、透過性があり(トランスペアレントであり)、かつ、クライアントとサーバとの間で暗号化され、TCP上で実行可能な殆ど全てのプロトコルが、最小限の修正によりSSL上で実行可能となっている。確かに、SSL/TLSセキュリティおよび障害検出は、TCP(または同様の保証配信プロトコル)に依存して、パケットの配列と保証配信とを行っている。様々な修正を経て、SSLは、トランスポート・レイヤ・セキュリティ(TLS)と改名され、RFC2246に反映されているように、インタネット・エンジニアリング・タスク・フォース(IETF)に採用されている。(SSL/TLSという用語は、これら2つの緊密に関係するプロトコルを一括して称するために使用される。)SSL/TLSの主なアプリケーションは、オンラインショッピングであり、オンラインショッピングでは、消費者は、HTTPプロトコルやウェブブラウザを安全に利用してクレジットカード機密情報を送信する。
【0008】
大抵のインタネットプロトコルはTCP接続上で動作するので、SSL/TLSは、クライアントコンピュータおよびサーバコンピュータなどの2つ以上のコンピュータ間で確実にデータを送信する便利な方式を提供する。図1Bは、アプリケーションが、SSL/TLSを使用してTCPなどの信頼性のある接続上で確実なデータを送信する方法を構造的に示している。従来どおり、SSL/TLSを利用して確実にデータを送信するステップは、一般的に以下のステップを含んでいる。
(1) クライアントが、サーバコンピュータとのTCP接続を確立する。
(2) クライアントとサーバが、SSL/TLSプロトコルを使用して、信任情報(SSL/TLSハンドシェイク、プロトコルメカニズムの取り決め、接続毎のキーの確立など)を交換する。
(3) 各HTTP要求(例えば、GET)が、暗号内容を有するSSL/TLSレコードに変換される。
【0009】
図1Cは、サンプルのSSL/TLSレコードを示し、これは、ヘッダ(HDR)と、暗号化データまたは暗号テキストと、MAC(メッセージ認証チェック)とを含んでいる。MACは、強力なチェックサムと同様のキー付きハッシュによりメッセージの完全性を保証し、一般的に、関数MAC=h(キー,プレインテキスト,連番)として演算される。ここで、連番は、連続レコード用の1増分カウンターである。連番は、ハッカーがTLS使用のコンピュータ間の確実な通信を暗号解読または破壊しようとしてパケットの傍受や再配列を試みた場合に発生するいわゆる「スプライシング攻撃」を防止するので、TLSにより演算されたMACの重要な側面を構成する。受信側TLSが受信レコードに不正確な連番を検出した場合、故意の侵害としてそのレコードを拒絶し、接続を終了する。これにより、送信側および受信側は、別のTCP接続を再確立しなければならず、結果的に時間とリソースの浪費となる。
【0010】
透過性のある性質上、TCPベースのプロトコル(例えば、HTTP、FTPなど)または同様の保証配信プロトコルは、TLS上で動作可能である。SSLおよびTLSの更なる詳細については、下記非特許文献1に記載されている。
しかし、TCPなどの保証配信プロトコルに対する依存により、SSL/TLSは、TCPと同様の性能問題の影響を受けやすい。例えば、SSL/TLSを用いてストリーミングビデオデータを送信すると、その基礎となっているTCPと同様の犠牲と不利益を招く(例えば、「ギクシャク」したビデオとなることがある)。SSL/TLSは、パケットが脱落したり順不同に受信された場合に接続を終了するので、その性質上、TCPにより提供されるような信頼性のある接続の利用が必要である。
【0011】
近年、プライベート・コミュニケーション・テクノロジー(PCT)として知られているプロトコルが提案されているが、商業的な成功を収めていない。PCTは、(いわゆる「ストリーム暗号」を用いた)確実なデータグラムトラフィックへとSSLを拡張する試みである。例えば、PCTは、SSL(5バイト、1レコードタイプ、2バージョン番号、2レングス)とは異なるヘッダフォーマット(4バイト、2レングス、2レコードタイプ)を使用していた。また、ハンドシェークメッセージ本体には、異なる開始フォーマットが含まれていた。すなわち、SSLは、1バイト(ハンドシェークタイプ)しか使用しないが、PCTは、4バイト(2ハンドシェークタイプ、2レコードフラグ)を使用している。PCTデータグラムサポートは、以下のフォーマットを使用している。
【0012】
2 bytes of key_length
(key_length) bytes of key data
(data_length) bytes of encrypted data
(mac_length) bytes of MAC data
一方、SSLのデータグラムサポートは以下のようなフォーマットである。
【0013】
(data_length) bytes of encrypted data
(mac_length) bytes of MAC
(padding_length) bytes of padding
1 byte of padding_length
(nonce_length) bytes of nonce
PCTは、各データグラムが、ENCRYPTED_KEY_1_DATA(DK_ENCRYPTED_KEY_DATAの一部である各レコードにランダム値が割り当てられる)によりマスタキーをハッシュすることによって生成された新たな暗号化キーを有するメカニズムを指定する。
【0014】
提案されたPCTメカニズムは、様々な性能的な犠牲を強いる。例えば、PCTメカニズムは、ストリーム暗号と共に使用可能であるが、各レコードを処理するための更なるハッシュとキースケジュール生成により、処理速度がかなり遅くなる。すなわち、データグラム毎に異なるキーを使用するので、演算上の犠牲が大きい。キースケジュール設定は、ブロック暗号にとって高価である。さらに、PCTは、SOCKSなどのマルチプロトコルプロキシとの統合メカニズムを提供していなかった。
【0015】
従来、UDPが確実な通信には不適切であるといわれてきた。例えば、下記非特許文献1のレスコーラの著書は、特に、「UDPは、(信頼性のある伝送を提供しないので)レコードの喪失や再配列が自由に起こり、まるでSSL実施に対する積極的な攻撃のようであるので、SSLをUDP上でうまく実行することができない。」と記述している。結局、先行技術は、確実なデータ送信のためにSSLと共にUDPを使用することを避けるように提言している。それでも、UDPは、数々のストリーミングメディアアプリケーションにとって適合性が良く、時折発生するデータパケットの脱落を許容するが、TCPで発生する遅延を許容することはない。例えば、リアルタイムで放映されるビデオ会議は、時折失われるビデオフレームを許容するが、失われたパケットの再送信や再配列のときに発生する「ギクシャクした動き」を許容しない。さらに、標準SSL上で送られる標準UDPでは、ユーザセッションの終了が頻繁に起こる。
【0016】
プロトコルの中には、ビデオまたはオーディオストリーミングなどの高性能データを送信するために、TCPとUDPの両方に依存するものもある。例えば、REALAUDIOは、TCPおよびUDPの両方を使用していると考えられており、TCPを使用して信号発信(例えば、開始/停止)を行う一方、UDPを使用してストリーミング内容のデータパケットを送信するようになっている。しかし、UDPデータグラムは、自由に送信されるので、傍受や攻撃を受けやすい。
【0017】
KERBEROSとして知られているプロトコルは、主にアカデミックサークルで使用されているが、UDPデータグラムの暗号化によりセキュリティを提供する。KERBEROSがデータグラムセキュリティ提供のために使用するメカニズムは、RFC1964に記載されている。しかし、これは、SSL/TLSプロトコルと互換性がないので、広く普及していない。KERBEROSが商業的な成功を収めていない主要な理由の1つに、動作が複雑で、ネットワーク処理に広く使用できるほど合理化されていないことが挙げられる。特に、ネットワークベースのセキュリティソフトウェアは、ユーザのアクセスの制御と保護のためにウェブサーバおよびプロキシサーバと効率よく相互動作しなければならない。一般的に、単純なプロトコルは、高速処理/分散システムに有利である。
【0018】
また、KERBEROSは、確実なUDP/TCPトラフィックを通信するために、別個の暗号化メカニズム、すなわち、キー確立ハンドシェイクを使用する。しかし、SOCKSなどのマルチプロトコルプロキシサーバ標準上で実行されるSSLなどの単一標準セキュリティプロトコルの下でこれらを統合することによって、演算/ネットワークトラフィックのオーバヘッドを低減することが望ましい。さらに、KERBEROSは、暗号化アルゴリズムを初期化する目的で、データレコードを従来の方法で拡張するために、パケット識別のためのランダムキーフィールドを追加している。しかし、KERBEROSがデータレコード内に個別の連番を有するので、これにより、更なる演算/ネットワークトラフィックが必要となる。あるシステムにとっては、両方の目的を果たす単一のフィールドを有することが好適である。
【0019】
UDPおよびSSLは、ソフトウェア産業では標準となっている。UDPは、データグラム処理に使用され、SSLは、確実な通信を提供する。同時に、一般的なSOCKSプロトコルを実行するものなど、マルチプロトコルプロキシサーバの採用は、システム内でTCPやUDPなどの産業用標準通信プロトコルを組み合わせる手段を提供する。UDPとSSLとの互換性がないので、最近までこれは不可能であった。SOCKSなどの単一のプロキシサーバプロトコルの下でネットワーク通信を管理するために発生したこの問題と制約とを理解するためには、先ず、SOCKSの情報処理方法を理解する必要がある。
【0020】
SOCKSプロトコルは、ファイアウォルなどの境界を設定するための一般的なプロキシプロトコルを提供する。IETF RFC1928に記載されているこのプロトコルのバージョン5は、認証、UDPサポートなどの機能を提供する。図2は、プロキシサーバおよびSOCKSプロトコルにより、ファイアウォルを介してサーバと接続するための従来の方策を示している。図2に示すように、クライアントコンピュータ201は、プロキシサーバ202を介してアプリケーションサーバ203と通信する。このシステムは、ネットワーク間のアプリケーションレイヤゲートウェイの役割を果たすファイアウォル(図示せず)を備えている場合もある。アプリケーションサーバ203は、通常、TELNET、FTP、SMTP、HTTPアクセスを提供する。クライアントコンピュータ201は、アプリケーション2011(例えば、ウェブブラウザ)と、SOCKSクライアント2012とを備えている。プロキシサーバ202は、SOCKSサーバ2021と、プロキシ機能2022とを備えている。セキュリティ機能を提供するSOCKSバージョン5によれば、クライアントアプリケーション2011は、以下のようにサーバ203からのサービスを得ることができる
先ず、クライアントアプリケーション2011は、サーバ203への接続要求をする。次に、SOCKSクライアント2012は、要求された接続を検出し、プロキシサーバ202を介してサーバ203との通信に対処すべきことを認識する。結果的に、SOCKSクライアント2012は、TCP接続を確立するためにSOCKSサーバ2021に要求を送信する。プロキシ機能2022は、サーバ203との接続を確立し、クライアントアプリケーション2011とサーバ203との間の以降の通信は、SOCKSサーバ2021およびプロキシ機能2022を介して行われる。従来と同様に、SOCKSは、クライアント201との確実な接続を確立するためにSSL/TLSを使用し、接続確立を許容する前にパスワードを要求する。図2のアーキテクチャは、1つのポイント(例えば、プロキシサーバ202)でサーバ203へのアクセスを制限し、ファイアウォルを貫通するような方法でサーバ203との通信負荷の一部を負担する。セキュリティを提供するためにSSL/TLSに依存しているので、図2の接続は、必ずTCP(同様の保証配信プロトコル)に依存する。
【0021】
図2のアーキテクチャは、不確実なUDPデータグラムの送信のためにも利用可能である。この方式には、ポートを介して不確実なUDPデータグラムを送信する一方、確実なSSL/TLS/TCP接続を介して確実なコマンドを送信するように、クライアント201とプロキシサーバ202との間のUDPポート「接続」を取り決めることが含まれている。この様な方式は、UDPデータグラムが不確実であるということを反映して「無防備なUDP」モードと称されることもある。この手法を採用しているシステムは、数年にわたり、ワシントン、シアトルのアベンテイル社から市販されてきた。一般的に、SOCKSクライアント2012は、クライアント201から送信される各レコードにSOCKSヘッダを付与し、SOCKSヘッダは、サーバ203に送信される前にSOCKSサーバ2021により取り除かれる。
【0022】
上述のように、SSL/TLSは信頼性のある接続サービスを提供するためにTCPに依存しているので、SSL/TLSのコンテキストでUDPデータグラムを確実に送信することは不可能である。しかし、図2の方式で確実なUDPサービスを提供することは有利であり、プロキシサーバ202は、データセキュリティを犠牲にすることなく、クライアント201とサーバ203との間の高性能ビデオストリーミングを円滑にできる。結局、課題は、好ましくは、SSLをセキュリティレイヤとして使用し、SOCKSをマルチプロトコルプロキシサーバとして使用して、プロキシサーバ202を介して確実なTCPおよび確実なUDPを実施するための方法を見出すことである。一般的には、TCPに対する依存によるオーバヘッドおよび不都合を招くことなく、SSL/TLS標準との互換性を維持する方法を見出すことが望まれる。
【0023】
SSL/TLSプロトコルは、UDP上でうまく実行できないことに加えて、更に別の欠点がある。上記の例では、クライアント装置201は、プロキシサーバ202との完全SSL/TLS「ハンドシェイク」を完了することによって、プロキシサーバ202との確実なプロトコルセッションを開始する。このハンドシェイク中に、クライアントコンピュータ201およびプロキシサーバ202は、SSL/TLSバージョン番号、暗号設定、セッション特定データ、認証証明など、SSL/TLSプロトコルを利用して互いに通信すべき情報を交換する。この様な情報を利用して、クライアントコンピュータ201およびプロキシサーバ202は、同一のマスタシークレットキーを生成し、それを用いて個々のセッションキーを生成する。これらのセッションキーは、セッション中に交換した個々の情報グループの暗号化と暗号解読とを行い、交換情報の完全性を確認するために用いる対称キーである。
【0024】
当業者に理解されるように、SSL/TLSセッションを開始するために完全SSL/TLSハンドシェイクを実行するには、時間がかかり、ネットワーク通信トラフィックに関しても、クライアント装置201とプロキシサーバ202との処理時間に関しても、ネットワークのリソースに大きな負荷をかける。しかし、プロキシサーバ202が、完全SSL/TLSハンドシェイクにおいて必要なSSL/TLSセッション情報を受信すると、プロキシサーバ202は、部分SSL/TLSハンドシェイクのみを利用してクライアントコンピュータ201とのそのSSL/TLSセッションを再開する。好適にも、部分SSL/TLSハンドシェイクは、完全SSL/TLSハンドシェイクよりもかなり迅速であり、消費するネットワークリソースも少ない。
【0025】
しかし、クライアントコンピュータ201とプロキシサーバ202との間の接続が終了し、クライアントコンピュータ201が、別のプロキシサーバ202を介してアプリケーションサーバ203との通信を確立しようした場合に、この構成に関して問題が発生する。例えば、最初のプロキシサーバ202が機能せず、利用不可能となるか、または、負荷バランサが最初のプロキシサーバ202の通信負荷を低減するために、新たな接続をクライアント装置201から新たなプロキシサーバ202へと単にルーティングする場合がある。いずれの場合も、新たなプロキシサーバ202は、クライアントコンピュータ201とのSSL/TLSセッションを再開するために必要なSSL/TLSセッション情報を有していない。したがって、クライアント装置201および新たなプロキシサーバ202は、新たなSSL/TLS通信セッションを確立するために完全SSL/TLSハンドシェイクを実行しなければならない。このプロセスは時間がかかり、クライアントコンピュータ201および新たなプロキシサーバ202にとっては多大な処理時間を要する。さらに、クライアント装置201とプロキシサーバ202との間の元のセッションの状態によっては、前のセッションの状態の喪失が代替不可能である場合もある。例えば、前のセッションの状態が、複製不可能なデータの交換により確立されていた場合、そのセッションの再生は不可能である。
【0026】
この問題を解決するために、クライアントコンピュータ201とその関連のプロキシサーバ202との間で終了された接続を、新たなプロキシサーバ装置202に対してではなく、元のプロキシサーバ202に対して再確立するようにしたネットワークシステムがある。例えば、クライアント装置201が特定のプロキシサーバ202に対してセッションを確立した時点を認識し、以降の全ての接続をクライアントコンピュータ201からプロキシサーバ202へとルーティングするように負荷バランサを設計しているシステムがある。しかし、この解決策は、数々の欠点を有する。負荷バランサが非常に複雑化し、様々な機能を果たすことが要求される。さらに、元のプロキシサーバ202が利用不可能になった場合、例えば、元のプロキシサーバが機能せず、クライアントコンピュータ201との接続の再確立が不可能になった場合に発生する状況に対処するものではない。また、最初のプロキシサーバ202が、他のクライアントコンピュータとの接続により過負荷となった場合の状況に対処するものではない。事実、この解決策により、負荷バランサは負荷バランス機能を果たせなくなる。
【非特許文献1】
アディソン・ウェスレイ(Addison Wesley)発行、エリック・レスコーラ(Eric Rescorla)による著書「SSLとTLS:確実なシステムの設計と構築(SSL and TLS: Designing and Building Secure Systems)」ISBN0-201-61598-3
【発明の開示】
【発明が解決しようとする課題】
【0027】
信頼性のある通信プロトコルに本質的に伴う不都合とオーバヘッドとを招くことなく確実なデータ送信機能を提供するための従来の試みの失敗を鑑み、確実なビデオ会議など、高帯域のアプリケーションをサポートするために、この様な機能を提供する必要性がある。さらに、SSL/TLSとの互換性を維持しながら、確実なデータ送信サービスを提供する必要性がある。さらに、クライアントコンピュータと第1のプロキシサーバとの間で確立されたSSL/TLSセッションの状態を維持しながら、クライアントコンピュータが、第1のプロキシサーバとの通信接続を第2のプロキシサーバへと切り換えることができるネットワーク構成が必要である。好ましくは、第1のプロキシサーバが機能不全などの問題により利用不可能になった場合でも、ネットワーク構成は、第1のプロキシサーバとの接続から第2のプロキシサーバとの接続へのこの様な切り換えが可能でなければならない。
【課題を解決するための手段】
【0028】
本発明は、UDPなどの信頼性のないプロトコル上で暗号化データを送信するための方法および装置を提供することによって前述の問題を克服する。ある変形態様においては、特殊ビットがデータレコード内に設定され、プロキシサーバで受信されたときに、レコードは特殊な処理に回される。この特殊な処理には、繰り返しレコードの存在を検出するためのノンスの使用や、他のレコードのデータを参照することなくプロキシサーバにレコードを暗号解読させる初期化ベクトルの使用が含まれる。特殊なビットセットを有さないデータレコードは、従来のSSL/TLS処理に従って処理される。
【0029】
さらに、本発明は、複数の異なるロケーションにコピーを分散させたキャッシュを用いるネットワーク構成を提供する。本発明によれば、任意のプロキシサーバとのセッションに関するSSL/TLSセッション情報がキャッシュに格納されるので、少なくとも1つの他のプロキシサーバに対してアクセス可能である。クライアント装置が、第1のプロキシサーバとの接続から第2のプロキシサーバとの接続へと切り換えるとき、この構成を利用して、第2のプロキシサーバは、クライアント装置と第1のプロキシサーバとのSSL/TLS通信セッションに対応するキャッシュから、SSL/TLSセッション情報を検索することができる。そして、第2のプロキシサーバは、検索されたSSL/TLSセッション情報を用いて、クライアント装置とのセッションを引き受けることができる。本発明のある実施形態によれば、キャッシュの同一コピーがこのネットワーク構成の各プロキシサーバのために格納され、各プロキシサーバは、キャッシュのそれ自体のコピーにアクセスして必要なSSL/TLSセッション情報を得る。本発明の他の実施形態においては、このネットワーク構成における全てのプロキシサーバにアクセス可能な単一のソース(例えば、冗長なキャッシュ記憶装置セット)においてキャッシュのコピーが保持される。
【0030】
本発明のその他の特徴および利点は、以下の詳細な説明および図面を参照することにより明らかになるであろう。
【発明を実施するための最良の形態】
【0031】
図3Aは、本発明のある変形態様に係る、送出方向の(例えば、クライアントからアプリケーションサーバへの)改良SOCKSプロトコルを用いたシステムを示す。図3Aに示すように、クライアントコンピュータ301は、プロキシサーバ302を介してアプリケーションサーバ303と通信する。図2の従来のシステムと同様に、クライアントコンピュータは、SOCKSクライアント3012と交信するクライアントアプリケーション3011を備えている。しかし、図2の従来のシステムとは対照的に、SOCKS処理は、以下に詳述するように、図2のシステムとは更に異なる機能を実行するように改良されている。アプリケーションサーバ303は、図2を参照して説明した方法と同じ方法で動作する。
【0032】
図2のシステムとは対照的に、プロキシサーバ302は、2つのタイプのSOCKS処理機能、すなわち、従来のSOCKS処理機能3022および改良SOCKS処理機能3023を備えている。レコード検出器3021は、SOCKSクライアント3012からのサーバ向けのレコードを受信し、レコードが「確実なUDP」レコードであることを示す特定のビットが設定されているか否かにより、ソフトウェアスイッチを介して従来のSOCKS処理機能3022または改良SOCKS処理機能3023にレコードをルーティングする。以下、改良SOCKS処理機能3023の詳細について説明する。
【0033】
図3Aに示すアーキテクチャによって、プロキシサーバ302は、図2のSOCKSクライアント2012などの従来のSOCKSクライアント、または、暗号化データの送信のためにUDPなどの信頼性のないプロトコルを用いる本発明の原則に従って動作するように改良されたSOCKSクライアント(改良SOCKSクライアント3012)と共に動作することができる。さらに、両タイプのクライアントを同時に収容することができる。ある実施形態において、UDPプロトコルおよびTCPプロトコルは、同一のプロキシサーバ上で動作可能である。以下、改良処理を更に詳述する。プロキシ機能3024は、図2のプロキシ機能2022とほぼ同じ方法で動作する。
【0034】
図3Aのアーキテクチャに関して、本発明の原則の範囲内に属する数々の変形態様がある。一例として、レコード検出器3021は、任意とすることができる。また、別の例として、クライアント301およびプロキシサーバ302が、初期化シーケンス中に、ここに記載されている改良暗号化方式に従って以降の全てのUDPデータグラムを両者間で送信することに同意すると、何れのプロトコルに準拠しているかを決定するために、各レコードにフラグを立てたり評価したりする必要はない。もちろん、他のフィールドによりレコードタイプを暗に指定して、レコードタイプ(そして、結果的な処理)が他のフィールドから明確となるようにすることも可能である。もちろん、「無防備なUDP」と同様に、確実なUDPをサポートするキーやその他の暗号化レコードを含めるために、確実なTCPメッセージを本発明と組み合わせることもできる。さらに、プロキシサーバ302の機能をサーバ303や他のコンピュータに組み込むことができ、これらの機能を実行するための別個のプロキシサーバは必要ない。結局、双方向の確実な通信経路が確立されるように、暗号化レコードをクライアントコンピュータ301からプロキシサーバ302へと、または、その逆に送信可能であることは明白である。
【0035】
図3Bは、送入(サーバからクライアントへの)フロー方向に関する図3Aのシステムを示す。プロキシ機能3024を介して受信されるレコードは、SOCKS処理機能3025に転送され、クライアント側レコード検出器機能3015に転送される。レコード検出器3015は、確実なUDPビットセットを有するレコードを検出すれば、それに応答して、この様なレコードを改良SOCKS処理機能3014へとルーティングし、そうでなければ、従来のSOCKS処理機能3013に送信する。なお、本発明の原則から逸脱しない限り、クライアント301、プロキシサーバ302、または、別のコンピュータに様々なSOCKS処理機能を配置可能であると解釈される。
【0036】
図4Aは、暗号を使用するSSL/TLSレコードを生成するための従来の手法を示す。本発明の暗号化原理の適用方法を説明する前に、先ず、SSL/TLSによる暗号化および暗号解読の実行方法について簡単に概説する必要がある。
図4Aに示すように、従来のデータ・エンクリプション・スタンダード(DES)などの暗号化機能404を使用して、プレインテキスト401の最初のバイトを暗号化する。送信側および受信側(例えば、SOCKSクライアント2012およびSOCKSサーバ2021)で共有されるセッション暗号化キー402ならびに初期化ベクトル(IV)403が、暗号化機能404に入力され、結果的に暗号化暗号テキスト405が生成される。SSL/TLS標準によれば、この暗号テキストは、キー407、プレインテキスト、レコード毎に増分される連番の関数としてのハッシュ機能411により生成されるMACと、ヘッダとを含むレコード410に埋め込まれる。得られたレコード410は、クライアント301とプロキシサーバ302との最初のハンドシェイクの一部として以前に確立されたTCP接続を介してプロキシサーバ302に送信される。最初の初期化ベクトル403は、初期化中に送信側と受信側との間で合意される。
【0037】
SSL/TLS標準によれば、同一のキー402を使用して、以前に送信されたレコードから生成された暗号テキスト405を2番目の初期化ベクトルとして使用して、次のプレインテキスト406を暗号化する。これによって、連続するレコード間の「リンク」が形成されるが、リンクが壊れた場合(パケットの喪失や破壊があった場合)には、この方式は機能しなくなる。
【0038】
図4Bは、受信側での逆のプロセスを示す。受信側(例えば、プロキシサーバ202)において、第1のレコード410が以下のように暗号解読される。暗号テキストは、以前に共有されたセッションキー414と以前に共有された初期化ベクトル415とを使用して、暗号解読機能413において暗号解読される。ハッシュ機能417において、プレインテキストをキー420および(受信側で独立して増分される)1増分連番と組み合わせて使用し、送入レコードのMACに一致すべきMACを生成する。MACが一致しない場合、そのレコードは廃棄される。
【0039】
第2の(次の)送入レコード411は、セッションキー414を使用して暗号解読されるが、初期化ベクトル415の代わりに暗号テキスト410Aを初期化ベクトルとして使用する。これは、図4Aに示す対応する暗号化方式に適合する。上記のように、受信側がレコード410を受信しなかった場合(または、順不同に受信された場合)、暗号解読は、暗号解読に必要な「連結」初期化ベクトルに依存しているため、適切に行われない。暗号解読されたプレインテキスト421は、送入レコードのMACに一致するMACを生成しないので、MAC比較機能423によりエラーが検出される。
【0040】
上述のように、以前に送信されたデータレコードに対する従来のSSL/TLSの依存により、その基礎となるパケット送信メカニズムが完璧な信頼性を有することが必要となる。これは、「暗号ブロック連結」と称され、連続する各データレコードが、以前に生成されたレコードに依存して暗号化されるので、信頼性のあるレコード送信が必要となる(DESに関しては、暗号ブロック連結はFIPS81により定義される)。結果的に、レコードが順不同に受信された場合や、データレコードが脱落した場合には、暗号化方式は失敗し、連番は一致しなくなる。この様なことが発生すれば、従来のSSL/TLS方式では、TCP接続は終了し、データ送信を再確立するために新たな接続が必要となる。このセキュリティ機能は、ハッカーが、クライアントとプロキシサーバとの間でのデータレコードの挿入や操作により確実な送信方式を妨害できないようにする意図がある。上述のように、図4Aおよび図4Bの方式によりUDPなどの信頼性のないプロトコルを用いてデータを送信した場合には、レコードの喪失や順不同によって直ちに接続が失われる。単純化の目的で、図4Aおよび図4Bのレコード410には、暗号テキストの1ブロックしか示していない。実際には、1つのレコードに多数のブロックが含まれており、「暗号ブロック連結」は、1つのレコード内の連続するブロックの間で行われる。
【0041】
図5Aおよび図5Bは、本発明のある変形態様に従って使用可能な改良暗号化/暗号解読方式を示す。この変形態様によると、若干改良されたSSL/TLSレコードのフォーマット507を使用する。特殊ビット(UDP)は、従来のヘッダに埋め込まれ、これは、レコードが暗号化UDPデータを含み、改良SOCKS処理機能3023に従って処理されるべきであることを示す。レコード検出器3021または3015は、このビットを使用して、任意のSSL/TLSレコードを従来のSOCKS処理機能3022または3013にルーティングすべきか、それとも、改良SOCKS処理機能3023または3014にルーティングすべきかを決定することができる。この機能により、既存のSSL/TLS/SOCKSプロトコルに準拠するシステムと共に本発明の原則を適用できる一方、UDPデータグラムを送信するときに強化セキュリティ条件を使用できる。
【0042】
図5Aに示すように、プレインテキスト501は、従来のDES暗号化アルゴリズムなどの暗号化機能508を使用して暗号化される。暗号化は、共有セッションキー502と第1の初期化ベクトル503を用いて実行され、その結果、暗号テキスト505が得られ、これを用いて改良SSL/TLSレコード507を生成する。また、プレインテキスト501を別のキー530および第1のノンス値504と共に使用し、ハッシュ機能506を用いてMAC509を生成する。図4Aの暗号化方式とは対照的に、レコード507には、ノンス値504および初期化ベクトル503が含まれており、これらは、好ましくは一意的な値(例えば、ランダム数)からなる。ある実施形態によれば、複合ノンス/IV値は、強力なランダム数生成装置(例えば、X9.62標準により定義され、市販のRSA BSAFE CRYPTO−C機能により生成されるもの)を使用して生成される。
【0043】
従来のSSL/TLS方式とは対照的に、ノンス/IV値は、明示的に各レコードの一部として含まれるので、以前に送信されたレコードに依存せずに、レコードを暗号解読することができる。ある実施形態において、連番および初期化ベクトルは、単一の値(ノンス)に統合可能であり、この値は、任意の数値またはランダムに生成された数値である。ある実施形態において、ノンスは、SSLにおける連番と同じサイズ(例えば、8バイト)であり、各値は一意的なものである(すなわち、受信側が、以前に受信されたレコードのリストと照合することができる)。初期化ベクトルは、暗号のブロックと同じサイズ(例えば、8バイト)を有し、各値は一意的なものとすることができる。ある変形態様において、異なる初期化ベクトル間のハミング距離が大きいこと(例えば、各ビットが50%の変化の確率を有するランダム数であること)が好ましい。別個のノンスや初期化ベクトルを付加する代わりに、複合ノンス/IV値を使用することができる。RSAセキュリティ社から販売されているRSA BSAFE CRYPTO−C製品など、暗号的に強力なランダム数生成装置を用いて、この様な数値を生成することができる。
【0044】
図5Aの右側において、プレインテキスト510は、同様の方法で暗号化され、別のノンス513および初期化ベクトル514を用いて、データレコード516が生成される。
図5Bを参照して、次に、レコード507、516の暗号解読について説明する。レコード507からの暗号テキストは、共有セッションキー502およびデータレコードから抽出された初期化ベクトル508を用いて暗号解読され、プレインテキスト501を生成する。プレインテキストは、キー518およびデータレコードから抽出されたノンス508と共に、ハッシュ機能を介して供給され、レコードから抽出されたMAC509と比較可能なMACを生成する。
【0045】
第2のレコード516は、暗号解読を実行するために以前に送信されたレコード507中の値に依存しないことを除き、同様の方法で暗号解読される。この様に、脱落または順不同のレコードでも対処可能である。
図5Cに示す本発明の変形態様によれば、複数の暗号ブロック521を1つのレコードに含めることができ、前の暗号ブロックを参照して、各ブロックの暗号テキストを暗号解読することができる。暗号解読機能526において初期化ベクトル524を用いて第1の暗号テキストを暗号解読する一方、前のブロックの暗号テキストを用いて一連の暗号テキストブロックを暗号解読する(一般的に、暗号化は逆の方法で実行される)。連結されたプレインテキストブロック531、532、533に基づいて、単一のMAC値を演算することができる。
【0046】
上述のように、ノンスおよびIVを1つの値に統合できるので、同一の値をIVおよびMAC演算の一意的な識別子として使用する。
ある変形態様においては、明示的に送信されたノンスを使用して、以前に送信されたレコードが2度目に受信されたかどうかを決定する。もし、そうであれば、この様な状況は、いわゆる「再生パケット」によるハッカー攻撃を意味するので、プロトコルは、選択的に、接続を終了するか、または、警告を発する。なお、後者は、連番が順不同に受信された場合に接続を終了する従来のSSL/TLSとは異なる。さらに、ある実施形態において、連番チェックは、無効にされるか、または、使用されない。
【0047】
従来のSSL/TLSとは対照的に、本発明のある側面によれば、初期化ベクトルはレコードにまたがって連結されることはない。各レコードは、一意的な初期化ベクトルを含み、暗号テキストブロックは、従来のようにレコード内で連結される。
特殊UDPビットの使用は、レコードを従来のSSL/TLSレコードまたは改良SSL/TLSレコードとして識別するための一手法にすぎない。ある実施形態においては、ビットは全く必要とされず、ここに記述されているように全てのレコードが改良SSL/TLSプロトコルに準拠するものと仮定されている。他の実施形態において、特定のレコードを上記の改良方式に従って処理すべきであることを示すために、異なるフラグまたは方法を用いることができる。一例として、クライアントとプロキシサーバとの間に起こる最初のハンドシェイクの間に、メッセージを送信して、以降のレコードが前記のプロトコルに従って受信されることを示すことができる。別の実施形態においては、確実なTCPを使用して、データレコードの比較と識別のためにノンスと同等のMAC値またはIV値の集合を交換することができる。
【0048】
UDP以外の信頼性のないプロトコルを利用して、本発明の原則を実施することもでき、本発明がUDPデータグラムに限定されないことを認識すべきである。さらに、DES以外の他の暗号化アルゴリズム(例えば、AES)を使用することもでき、本発明がこの点において限定されないことを理解すべきである。
図6は、本発明の原則を実施するために使用可能な方法の各ステップを示す。なお、プロキシサーバ302の使用は、総じて任意であり、図示の機能は、もちろんクライアントコンピュータ301、サーバコンピュータ303、その他のコンピュータで実施することができる。または、SOCKSプロトコルの制約がなくても、信頼性のないパケット送信を提供するプロトコル(例えば、インタネットプロトコル)を利用して、本発明の原則を実施することもできる。上記の例は、クライアント301からサーバ303への確実なUDPデータの送信を反映しているが、図6の例では、サーバ303がプロキシサーバ302にUDPデータグラムを送信し、プロキシサーバ302がUDPデータグラムを暗号化してクライアント301に送信すると仮定する。
【0049】
クライアントは、図3Bに示すアーキテクチャを利用してアプリケーションサーバから確実なビデオデータを受信することを所望していると仮定する。つまり、サーバ303は、UDPを用いて信頼性なく送信されたデータストリームを、プロキシサーバ302を介してクライアント301に送信し、これにより、レコードを暗号化した状態でクライアント301に確実に送信する。先ず、ステップ601において、クライアントとプロキシサーバとが、TCP接続を確立する。このステップは、従来のものであり、SOCKSプロトコルに準拠している。ステップ602において、クライアントとプロキシサーバとは、従来のSSL方式に従って、信任情報を交換する(例えば、セキュリティパラメータを取り決める)。本発明のある変形態様において、クライアント301とプロキシサーバ302とは、上記の原則に従ってUDPデータグラムを暗号化した状態で送信することにも同意する。これは、(新たな)TCPパケットを送信することにより実現でき、特定のポートを利用して確実なUDPデータグラムを送信することを示している。また、クライアントは、目的のアプリケーションサーバに関するサーバ情報(例えば、IPアドレスやポート)を送信することもできる。なお、ステップ601、602は、信頼性のあるプロトコルを用いて実行されるものとして説明したが、もちろん、暗号化ステップに必要な情報を何らかの方法でコンピュータ間で共有または通信できる限り、信頼性のないプロトコルを用いて実行することができる。
【0050】
ステップ603において、例えば、ランダム数発生装置を用いて、ノンス/IVを生成する。ステップ604において、ノンスを使用して、サーバ303から受信されたUDPデータグラムを暗号化し、必要に応じて、図5A、図5B、および図5Cに示すその他のフィールドを生成する。例えば、前のバイトからのプレインテキストを初期化ベクトルとして用いて、暗号テキストの各ブロックを連結ブロック暗号化し、MACを従来通り生成することができる。さらに、図5A、図5B、および図5Cに示すように、ノンスをレコードに付加することができる。
【0051】
ステップ605において、改良SSL/TLS/SOCKSプロトコルに従ってレコードを暗号化したことを示すために、「確実UDP」ビットをレコードヘッダに設定する。上述のように、暗号化情報はその他様々な方法で示すことができるので、このビットは任意である。最後に、ステップ606において、レコードをプロキシサーバ302からクライアント301に送信する。ステップ607において、レコードをレコード検出器3015において受信し、確実UDPビットが設定されていれば、ステップ609において、上記の改良SOCKS処理に従ってレコードを暗号解読する。そうでなければ、ステップ608において、従来のSOCKS処理に従ってレコードを暗号解読する。
【0052】
以上、UDPなどの信頼性のないプロトコルを用いて確実にデータを送信するためのシステムおよび方法について説明してきた。本発明は、ビデオ会議、ストリーミングメディア(オーディオ、ビデオ、または、その両方)、ファイルのバルク転送、インタネットを介したコンピュータゲーム(準リアルタイムゲームシステムなど)、インタネットテレフォニ、携帯電話送信、無線LANなどのシステムを含む広範なシステムおよびアプリケーションに利用可能である。本質的に複雑でない信頼性のない通信プロトコル(例えば、UDP、IPなど)の使用により、データを確実に送信するために必要なオーバヘッドや処理が低減されるので、本発明は、低電力消費や低コンピュータ処理という形で利点を提供する。本発明は、インタネットを介した通信だけでなく、ローカルエリアネットワーク(例えば、イーサネット(登録商標))、ピアツーピアネットワークなど、その他のコンピュータネットワークにおける用途にも利用可能である。また、本発明の主な用途は、ストリーミングメディアのためにUDPトラフィックと共に用いられるものであるが、非ストリーミングメディアなど、様々なデータタイプを保護するためにも適している。
【0053】
本発明の実施形態を採用可能なネットワーク構成701を図7Aに示す。図7Aに示すネットワーク701は、多数のクライアントコンピュータ301A、301B、301C、301D...301θと、アプリケーションサーバ303にそれぞれ接続された複数のプロキシサーバ302A、302B、302C、302D...302φとを備えている。また、各クライアントコンピュータ301(301A、301B、301C、301D...301θ)からの接続は、通信媒体702を介し、ファイアウォル703を介して、負荷バランサ704に対して維持され、アプリケーションサーバ303への中継のために、通信を各クライアントコンピュータ301からプロキシサーバ302A、302B、302C、302D...302φの1つにルーティングする。上記のように、サーバ/クライアントコンピュータを、単一演算ユニット上で実施することもできるし、多数の演算ユニット全体に分散することもできる。また、多数のクライアント/サーバ装置を単一の演算装置上で実施してもよい。
【0054】
理解を容易にするために図7Aには1つのアプリケーションサーバ303しか示されていないが、ネットワーク701は、多数のプロキシサーバ302(302A、302B、302C、302D...302φ)と同時通信する多数のアプリケーションサーバ303を備えることができる。ネットワーク701内の各プロキシサーバ302と通信するクライアントコンピュータ301の数は、例えば、100を越えるものとすることができる。同様に、このネットワークは、各アプリケーションサーバ303と通信する多数の(100を越える)プロキシサーバ302A、302B、302C、302D...302φを備えたものとすることができる。通信媒体702は、適当な媒体でよい。例えば、クライアントコンピュータ301Aがウェブベースの通信プログラム(例えば、ブラウザ)を利用してプロキシサーバ302Aと通信するように構成されている場合、通信媒体702はインタネットであってもよい。また、クライアントコンピュータ301Dが遠隔ダイヤルアップ通信プログラムを利用してプロキシサーバ302Bと通信するように構成されている場合、通信媒体702は、ダイレクト・プレイン・オールド・テレフォン・システム(POTS)接続であってもよい。
【0055】
この例において、クライアントコンピュータ301A、301B、301C、301D...301θは、信頼性のある通信プロトコルのための従来のSSL/TLSプロセス、または、上記で詳述した信頼性のない通信プロトコルのための改良SSL/TLSプロセスを利用して、複数のプロキシサーバ302A、302B、302C、302D...302φと通信する。下記の説明から明らかなように、ネットワーク構成701は、従来のSSL/TLSプロセスを利用したセッションに対しても、上記の信頼性のないプロトコルのための改良SSL/TLSプロセスを利用したセッションに対しても、新たなSSL/TLSセッションを生成する必要なく、クライアントコンピュータからプロキシサーバへの確実なSSL/TLSセッション接続を別のプロキシサーバに切り換えることができる。
【0056】
ネットワーク701内のプロキシサーバ302A、302B、302C、302D...302φは、それぞれ、キャッシュメモリ705(705A、705B、705C、705D...705φ)を備えている。本発明によれば、キャッシュメモリ705A、705B、705C、705D...705φは、それぞれ、キャッシュ706のコピーを収容している。キャッシュ706は、多数のクライアントコンピュータ301A、301B、301C、301D...301θと多数のプロキシサーバ302A、302B、302C、302D...302φとの間の様々なSSL/TLS通信セッションに基づくSSL/TLSセッション情報の集合を含んでいる。例えば、キャッシュ706は、クライアントコンピュータ301Aとプロキシサーバ302Aとの間のSSL/TLSセッションに対応するSSL/TLSセッション情報を収容している。
【0057】
SSL/TLSセッションのためのSSL/TLSセッション情報には、プロキシサーバ302が、新たなSSL/TLSセッションを生成する必要なく、クライアントコンピュータ301とのSSL/TLSセッションを再開するために必要な情報の全てが含まれていることが好ましい。例えば、SSL/TLSセッション情報には、プロキシサーバ302が、部分SSL/TLSハンドシェイク動作のみでクライアントコンピュータ301とのSSL/TLSセッションを再開するために必要な情報の全てが含まれている。したがって、SSL/TLSセッション情報には、セッション中に交換されたデータの暗号化/暗号解読のためのセッションキーを生成するために使用されるマスタシークレットキーを含めるべきである。本発明の様々な実施形態において、SSL/TLSセッション情報には、クライアントコンピュータ301やクライアントコンピュータ301のユーザを認証するために使用されるピア信任情報も含めるべきである。
【0058】
さらに、SSL/TLSセッション情報には、セッションを識別するためのセッション識別子(例えば、能動または再開可能セッションを識別するためにプロキシアプリケーション901が選択した任意のバイトシーケンス)、クライアントコンピュータ301およびプロキシアプリケーション901が使用するバルクデータ暗号化アルゴリズム(ヌル、DESなど)、メッセージ認証チェック(MAC)アルゴリズム(MD5、SHAなど)、暗号属性(ハッシュサイズなど)を指定する暗号仕様も含まれる。さらに、SSL/TLS情報には、暗号化の前にデータを圧縮するために用いるアルゴリズム、および新たな接続を開始するためにそのセッションを用いることができるか否かを示すフラグ情報も含まれる。
【0059】
なお、ここで用いられているSSL/TLSセッションという用語は、信頼性のある通信プロトコルのための従来のSSL/TLSプロセスおよび上記の信頼性のない通信プロトコルのための改良SSL/TLSプロセスを利用して生成されたセッションの両方を言う。もちろん、プロキシサーバ302が、新たなSSL/TLSセッションを生成することなく、SSL/TLSセッションを再開するために、元々のセッション生成に使用されていたSSL/TLS手法のタイプに固有の情報をSSL/TLSセッション情報に含めてもよい。したがって、SSL/TLSセッションが、上記の信頼性のない通信プロトコルのための改良SSL/TLSプロセスを利用して生成されている場合、セッション中に交換される以降の全てのレコードが改良SSL/TLSプロセスにより処理されることが、クライアントコンピュータ301とプロキシサーバ302との間で同意されていることを示すデータ(例えば、フラグ)をSSL/TLSセッションに含めてもよい。
【0060】
したがって、各キャッシュ706は、多数のクライアントコンピュータ301A、301B、301C、301D...301θと多数のプロキシサーバ302A、302B、302C、302D...302φとの間の(従来のSSL/TLSプロセスおよび上記の改良SSL/TLSプロセスにより生成された)SSL/TLSセッションの再開に必要な情報を格納している。この様に、キャッシュ706は、クライアントコンピュータ301Aとプロキシサーバ302Aとの間のSSL/TLSセッションを再開するために必要なSSL/TLS情報を含んでいる。各プロキシサーバ302は、対応するキャッシュメモリ705にキャッシュ706のコピーを有しているので、クライアントコンピュータ301とプロキシサーバ302Aとの接続が終了すると、クライアントコンピュータ301Aは、クライアントコンピュータ301Aとプロキシサーバ302Aとの間の前のセッションと同じSSL/TLSセッション情報を有するその他の如何なるプロキシサーバ302B、302C、302D...302φとも新たなセッションを確立することができる。
【0061】
本発明のある実施形態においては、各キャッシュメモリ705A、705B、705C、705D...705φは、キャッシュ706の完全なコピーを収容している。各プロキシサーバ302は、クライアントコンピュータ301との新たなセッションのための新たなSSL/TLSセッション情報を得るか、または、クライアントコンピュータ301との既存のセッションのための更新されたSSL/TLSセッション情報を得るので、プロキシサーバ302は、格納のために新SSL/TLSセッション情報または更新SSL/TLSセッション情報をキャッシュ706の各コピーに送信する。
【0062】
本発明を実施するネットワーク701は、従来のネットワーク構成を超越する利点を提供する。クライアントコンピュータ301は、前のセッション中に得られたSSL/TLSセッション情報を利用して、プロキシサーバ302とのセッションを確立することができるので、負荷バランサ704は、クライアントコンピュータ301から以前にセッションを確立していたプロキシサーバ302に接続をルーティングし直す必要がない。この様に、負荷バランサ704の機能が単純化されて、クライアントコンピュータ301A、301B、301C、301D...301θからの入力通信を、利用可能なプロキシサーバ302A、302B、302C、302D...302φ間で均一に分散することができる。さらに、プロキシサーバ302が全く利用不可能になっても(すなわち、完全に機能不全に陥っても)、クライアントコンピュータ301は、別のプロキシサーバ302に対して新たなセッションを確立することができ、前のセッションで得られたSSL/TLSセッション情報を再生する必要がない。
【0063】
上記の実施形態は、各キャッシュメモリ705にキャッシュ706の完全コピーを保持するようになっているが、本発明の他の実施形態では、図7Bに示すように各キャッシュメモリ705にキャッシュ706のほんの一部分のコピーを保持するようになっている。しかし、この様な実施形態では、各プロキシサーバ302がSSL/TLSセッション情報にアクセスできるように、多数のキャッシュメモリ705A、705B、705C、705D...705φの内の他のキャッシュメモリに各セッションのSSL/TLSセッション情報を格納しなければならない。例えば、クライアント301Aとプロキシサーバ302Aとの間のセッションのSSL/TLSセッション情報を、キャッシュメモリ705A(プロキシサーバ302Aに対応)、キャッシュメモリ705B(プロキシサーバ302Bに対応)、キャッシュメモリ705C(プロキシサーバ302Cに対応)にのみ格納するようにしてもよい。その後、プロキシサーバ302Aが利用不可能となり、クライアントコンピュータ301Aがプロキシサーバ302Bとの接続に切り換えられると、プロキシサーバ302Bは、それ自体のメモリキャッシュ706Bから検索されたSSL/TLSセッション情報を利用してクライアントコンピュータ301Aとのセッションを確立することができる。
【0064】
さらに、クライアントコンピュータ301Aが、キャッシュメモリ内にSSL/TLSセッション情報のないプロキシサーバ(例えば、プロキシサーバ302D)との接続に切り換えられた場合でも、そのプロキシサーバは、キャッシュメモリ705に適切なSSL/TLSセッション情報を有する別の利用可能なプロキシサーバ302(例えば、プロキシサーバ302B)からのSSL/TLSセッション情報を要求することができる。例えば、クライアントコンピュータ301Aとの接続が、プロキシサーバ302Dへと切り換えられると、そのプロキシサーバ302Dは、SSL/TLSセッション情報を応答受信するまで、その他の利用可能なプロキシサーバ302からのSSL/TLSセッション情報を順次要求することができる。または、プロキシサーバ302Dが、その他の利用可能なプロキシサーバ302の全てに対して要求を同時に送信し、例えば、最初に受信した応答のSSL/TLSセッション情報を採用するようにしてもよい。
【0065】
本発明の上記の実施形態は、プロキシサーバ302のみがキャッシュ706の保持に関する責務を負うので、ピア構成型実施形態と呼ばれる。本発明のこの様なピア構成型実施形態において、各キャッシュメモリ705A、705B、705C、705D...705φに全キャッシュ706のコピー(またはキャッシュ706の重複する部分コピー)を保持するには、各プロキシサーバ302が、書込プロセスにおいて新SSL/TLSセッション情報または更新SSL/TLSセッション情報を多数のキャッシュメモリ705に送信しなければならない。好ましくは、受信側装置からの肯定確認を必要とする信頼性のある通信手法を利用してこの書込プロセスを実行するので、各プロキシサーバ302は、その関連のキャッシュメモリ705が新SSL/TLSセッション情報または更新SSL/TLSセッション情報を処理したことを確認できる。ネットワーク内のプロキシサーバ302の数が比較的少なく、プロキシサーバ302によりセーブされるSSL/TLSセッション情報のタイプおよび量が比較的安定しており、キャッシュ706内のSSL/TLSセッション情報の総量が比較的少ない場合、信頼性のある肯定確認ベースの通信手法を利用するこの構成において、各キャッシュメモリ705A、705B、705C、705D...705φに必要なSSL/TLSセッション情報を書き込むことは、ネットワーク701に対する大きなリソースオーバーヘッドとはならない。例えば、ネットワーク701が9個のプロキシサーバ302しか備えていない場合、各プロキシサーバ302に対する新SSL/TLSセッション情報または更新SSL/TLSセッション情報の書き込みにより、ネットワークリソースが多大に浪費されることはない。
【0066】
一方、キャッシュ706に格納されたSSL/TLSセッション情報のタイプを頻繁に更新しなければならない場合、または、ネットワークが多数のプロキシサーバ302(例えば、9個を越えるプロキシサーバ)を備えている場合には、信頼性のある肯定確認ベースの通信手法を利用したネットワーク内の各プロキシサーバ302に対する新SSL/TLSセッション情報もしくは更新SSL/TLSセッション情報の書き込みには、ネットワーク701からかなりのリソースが流用される。例えば、クライアントコンピュータ301の数が増加すると、各クライアントコンピュータ301のための多数のキャッシュメモリ705に対する低頻度の更新にも、ネットワーク701からかなりのリソースが流用される。同様に、プロキシサーバ302の数が増加すると、信頼性のある肯定確認ベースの通信手法を利用した各プロキシサーバ302のキャッシュメモリに対する新SSL/TLSセッション情報または更新SSL/TLSセッション情報の書き込みにも、ネットワーク701からかなりのリソースが流用される。さらに、キャッシュ706があまりにも大きくなると、プロキシサーバ302のキャッシュメモリ705にキャッシュの完全コピーを格納することが困難になる。
【0067】
これに対応して、本発明の更に別の実施形態を実施するネットワーク801を図8Aに示す。前述のネットワーク構成701と同様に、ネットワーク801は、複数のクライアントコンピュータ301A、301B、301C、301D...301θと、アプリケーションサーバ303にそれぞれ接続される複数のプロキシサーバ302A、302B、302C、302D...302φとを備えている。前述の通り、各クライアントコンピュータ301は、通信媒体702およびファイアウォル703を介して負荷バランサ704に接続されている。負荷バランサ704は、各クライアントコンピュータ301からプロキシサーバ302の1つへと(例えば、図示のようにクライアントコンピュータ301Aからプロキシサーバ302Aへと)接続をルーティングする。図7Aおよび図7Bに示すネットワーク701と同様に、ネットワーク801内のプロキシサーバ302A、302B、302C、302D...302φも、それぞれ対応するキャッシュメモリ705A、705B、705C、705D...705φを備えている。
【0068】
しかし、本発明のこの実施形態は、キャッシュ706の1以上のコピーを格納するためのキャッシュ格納庫802を更に備えている。以下の説明から理解されるように、この実施形態は、本発明の前述の実施形態のようなピア構成ではなく、キャッシュ706の格納に関して2階層構成となっている。すなわち、この実施形態は、プロキシサーバ302A、302B、302C、302D...302φのキャッシュメモリ705A、705B、705C、705D...705φにより提供される第1の階層のSSL/TLSセッション情報記憶装置と、キャッシュ格納庫802により提供される第2の階層のSSL/TLSセッション情報記憶装置とを備えている。
【0069】
図8Aに示すように、キャッシュ格納庫802は、2つのキャッシュメモリサーバ装置803、804を備えている。これらのキャッシュメモリサーバ装置803、804は、それぞれ、キャッシュ706の完全コピーを格納する。しかし、キャッシュ格納庫802は、冗長性のために2つのキャッシュメモリサーバ装置803、804を備えている。したがって、キャッシュメモリサーバ装置803、804の一方が機能しなくなったり、利用不可能となった場合でも、キャッシュ格納庫802は、他方のキャッシュメモリサーバ装置内にキャッシュ706の完全コピーを備えている。また、本発明の他の実施形態において、冗長性が所望でない場合には格納庫802として単一のキャッシュメモリサーバ装置を使用してもよいし、冗長性を優先する場合には3個以上のキャッシュメモリサーバ装置を使用してもよい。
【0070】
図8Aの実施形態におけるキャッシュメモリ705A、705B、705C、705D...705φは、全キャッシュ706のコピーを格納しないこともある。その代わりに、キャッシュ706がキャッシュメモリ705A、705B、705C、705D...705φの記憶容量よりも大きな場合には、各キャッシュメモリ705は、対応するプロキシサーバ302に関連するキャッシュ706の一部分のみを格納する。例えば、キャッシュメモリ705Aにコピーされたキャッシュ706の一部分に、プロキシサーバ装置302A、302Bに対して確立されたセッションのSSL/TLSセッション情報のみが含まれるようにしてもよい。したがって、クライアントコンピュータ301Aが、プロキシサーバ302Aとの接続を失い、プロキシサーバ302Bとの新たなセッションを確立しようとする場合、キャッシュメモリ705Bは、プロキシサーバ302Aとの前のセッションに関するSSL/TLSセッション情報を保持していないこともある。
【0071】
しかし、この実施形態では、プロキシサーバ302が、そのメモリキャッシュ705にSSL/TLSセッション情報のないクライアントコンピュータ301とのセッションを確立する要求を受信すると、プロキシサーバ302は、キャッシュ格納庫802から関連SSL/TLSセッション情報を得ることができる。したがって、上記の例において、プロキシサーバ302Bは、クライアントコンピュータ301Aの前のセッションに関するSSL/TLSセッション情報をキャッシュ格納庫802から得る。そして、新たなプロキシサーバ302は、そのSSL/TLSセッション情報を使用して、前のセッションと同一のSSL/TLSセッション情報で新たなセッションを確立することができる。
【0072】
キャッシュ706のサイズが大きすぎて、キャッシュ706の全コピーをプロキシサーバ302のキャッシュメモリ705に効率よく格納することができない場合に有用であることに加えて、キャッシュ格納庫802を採用する本発明のこの実施形態は、通常、非常に多くのプロキシサーバ302A、302B、302C、302D...302φを備えたネットワーク(キャッシュ706に格納されたSSL/TLSセッション情報が、キャッシュ706を頻繁に更新する必要のあるタイプであるか否かにもよるが、例えば、10を越えるプロキシサーバを備えたネットワーク)にとって更に効率がよい。この実施形態において、各プロキシサーバ302は、通常、新SSL/TLSセッション情報または更新SSL/TLSセッション情報をキャッシュ格納庫802にのみ書き込むために信頼性のある肯定確認通信手法を利用する必要があり、(書込動作およびその確認により発生する)通信トラフィック量がネットワーク全体で減少する。そして、ネットワーク内の他のプロキシサーバ302は、後述のように、信頼性の低い通信手法により、または、キャッシュ格納庫802から直接的に、新SSL/TLSセッション情報または更新SSL/TLSセッション情報を得ることができる。
【0073】
なお、図8Aに示す2階層構成は例示である。当業者にとっては、キャッシュ706の全体サイズにより、3階層、4階層などマルチ階層構成も採用可能であることが理解できるであろう。例えば、キャッシュ706のサイズがあまりにも大きく、単一のキャッシュメモリサーバ装置803、804に効率よく格納できない場合は、キャッシュ706の異なる部分を格納する2以上のキャッシュ格納庫802を採用することができる。キャッシュ706の全コピーを、各キャッシュ格納庫802にアクセス可能な比較的効率の悪い記憶装置(例えば、一連の磁気ディスク記憶装置)に格納してもよい。また、各プロキシサーバ302を特定のキャッシュ格納庫802と関連付けて、関連するキャッシュ格納庫802に保持されているキャッシュ706の全部または一部を格納するようにしてもよい。当業者にとっては、その他、様々な実施形態が明らかであろう。以下、「マルチ階層」という用語を使用して、少なくともキャッシュ706の一部分を格納する2階層以上の階層レベルの装置を備えた本発明の実施形態に言及する。
【0074】
なお、本発明の更なる実施形態において、キャッシュメモリ705A、705B、705C、705D...705φに格納されているキャッシュ706A、706B、706C、706D...706φの異なる部分が、重複していてもよい。例えば、キャッシュ705Aの一部分は、キャッシュ705Bの一部分およびキャッシュ705Cの一部分にも格納されているSSL/TLSセッション情報を収容していてもよい。プロキシサーバ302は、接続を求めている新たなクライアントコンピュータ301のためのSSL/TLSセッション情報を既に有していることもあるので、キャッシュ706の異なる部分である程度の重複があることにより、ネットワークトラフィック量が減少する。さらに、図8Bに示すように、各キャッシュメモリ705A、705B、705C、705D...705φは、キャッシュ706全体のコピーを収容していてもよい。本発明のこの実施形態は、例えば、キャッシュ706のサイズが充分小さく、キャッシュメモリ705にその全体を格納できる場合、図8Aに示す実施形態にとって好適である。
【0075】
次に、プロキシサーバ302の考え得る実施形態について、図9を参照しながら説明する。図示のように、プロキシサーバ302は、プロキシアプリケーション901と、分散キャッシュアプリケーション・プログラミング・インタフェース(API)902と、分散キャッシュアプリケーション903と、通信機アプリケーション904と、キャッシュメモリ705とを備えている。以下に詳述するように、プロキシアプリケーション901は、プロキシサーバ302の主要な機能を実行し、レコード検出器3021と、従来のSOCKS処理機能3022と、改良SOCKS処理機能3023と、プロキシ機能3024とを備えている。すなわち、プロキシアプリケーション901は、クライアントコンピュータ301との確実な通信を確立し、クライアントコンピュータ301とアプリケーションサーバ303との間でメッセージを中継する。また、プロキシアプリケーション901は、クライアントコンピュータ301とのセッションのSSL/TLSセッション情報を、分散キャッシュAPI902を介して分散キャッシュアプリケーション903に送信する。
【0076】
分散キャッシュAPI902は、キャッシュメモリ705から情報を検索し、分散キャッシュアプリケーション903を介して情報を送信することによって、キャッシュメモリ705への情報送信の要求やキャッシュメモリ705からの情報削除の要求を円滑にする。分散キャッシュアプリケーション903は、キャッシュメモリ705に情報を格納し、キャッシュメモリ705と他のプロキシサーバ302(適用可能であれば、キャッシュ格納庫802)との情報の交換も制御する。分散キャッシュアプリケーション903は、通信機アプリケーション904を介して、他のプロキシサーバ302(適用可能であれば、キャッシュ格納庫802)と通信する。
【0077】
したがって、完全SSL/TLSハンドシェイクが完了した後、プロキシアプリケーション901は、格納のため、完全SSL/TLSハンドシェイクから得たSSL/TLSセッション情報をキャッシュメモリ705に送信する。
特に、プロキシアプリケーション901は、SSL/TLS再開情報を有するデータフィールド、およびSSL/TLSセッション識別子を有するキーフィールドを含むキャッシュ706に格納するレコードを生成する。レコードには、そのレコードが失効してキャッシュから削除されるべき時点を有する有効期限フィールドも含まれる。さらに、後述のように、キー情報(すなわち、セッション識別子)に付加されるレコード識別子もレコードに含まれる。プロキシアプリケーション901は、キャッシュメモリ705に格納するために、分散キャッシュAPI902を介して分散キャッシュアプリケーション903にこのレコードを送る。
【0078】
プロキシアプリケーション901がクライアントコンピュータ301からの要求を受信してセッションを開始するとき、そのクライアントコンピュータ301がプロキシアプリケーション901(その要求を現在受信している同一のプロキシアプリケーション901または別のプロキシアプリケーション901)とのSSL/TLS通信を既に確立していれば、その要求にはSSL/TLSセッション識別子が含まれている。プロキシアプリケーション901は、サーチキーとしてSSL/TLSセッション識別子をキャッシュAPI902上に送るので、API902は、分散キャッシュアプリケーション903に対して、SSL/TLSセッション識別子に対応するキャッシュメモリ705からSSL/TLS情報を検索するように要求する。
【0079】
前述のように、分散キャッシュAPI902の機能は、GET演算を用いてキャッシュメモリ705から既存のレコードを検索するものである。さらに、本発明のある実施形態では、分散キャッシュAPI902は、この様なコマンドを分散キャッシュアプリケーション903上に送ることによって、レコードを追加、削除、または修正するための要求を円滑にする。この様にして、分散キャッシュアプリケーション903は、キャッシュメモリ705上でADD、DELETE、およびUPDATE演算を実行する。好ましくは、そのキーに関するレコードがキャッシュメモリ705に既に存在するものであっても、ADD演算は、そのレコードのキーフィールド内の情報に基づいてレコードをキャッシュメモリ705に追加する。DELETE演算は、キャッシュメモリ705からレコードを削除し、UPDATE演算は、キャッシュメモリ705に既に存在するレコードを更新する。また、分散キャッシュアプリケーション903は、各キャッシュメモリ705A、705B、705C、705D...705φのパージを強制する機能も有する。
【0080】
なお、キャッシュAPI902は、まず、キャッシュ706のローカルコピー(またはキャッシュ706の一部分のコピー)からの要求レコードをキャッシュメモリ705から得ることによって、GET演算の完了を試みる。本発明のある好適な実施形態においては、各キャッシュメモリ705はキャッシュ706の完全コピーを格納しているので、この要求は直ちに成功する。しかし、要求レコードがローカルキャッシュメモリ705内に見つからない場合(例えば、キャッシュメモリ705に、要求レコードを含まないキャッシュ706の一部分、または、崩壊したキャッシュ706のコピーしか含まれていない場合)、キャッシュAPI902は、別のソースからレコードを得るために、分散キャッシュアプリケーション903に関わりを持つ。図7Aおよび図7Bに示す本発明のピア構成の実施形態において、分散キャッシュアプリケーション903は、その他のプロキシサーバ302の1以上から要求レコードを検索しようとする。しかし、図8Aおよび図8Bに示す本発明のマルチ階層構成の実施形態においては、分散キャッシュアプリケーション903は、キャッシュ格納庫802から要求レコードを検索しようとする。
【0081】
同様に、分散キャッシュアプリケーション903がそのローカルキャッシュ705からのレコードを追加、更新、または削除するときは、対応する追加、更新、または削除コマンドをネットワーク内の他の装置に中継する。例えば、図7Aおよび図7Bに示す本発明のピア構成の実施形態において、分散キャッシュアプリケーション903は、その他のプロキシサーバ302のそれぞれにコマンドを中継する。しかし、図8Aおよび図8Bに示す本発明のマルチ階層構成の実施形態においては、分散キャッシュアプリケーション903は、キャッシュ格納庫802にコマンドを中継する。そして、キャッシュ格納庫802は、その他のプロキシサーバ302の1以上にコマンドを中継する。この様に、あるプロキシサーバ302のプロキシアプリケーション901が得た新SSL/TLSセッション情報または更新SSL/TLSセッション情報は、クライアントコンピュータ301との以降のセッションに使用するために、その他のプロキシサーバ302に送信される。
【0082】
次に、分散キャッシュアプリケーション903によるキャッシュ706へのSSL/TLSセッション情報の格納について説明する。当業者に理解されるように、プロキシサーバ302A、302B、302C、302D...302φの数の増加に伴い、クライアントコンピュータとプロキシサーバ302A、302B、302C、302D...302φとの間で可能なセッションの数も増加する。したがって、キャッシュに格納されるSSL/TLSセッション情報量も増加する。これは、図7Aおよび図7Bに代表されるピア分散キャッシュの実施形態にも、図8Aおよび図8Bに代表されるマルチ階層分散キャッシュの実施形態にも当てはまる。したがって、SSL/TLSセッション情報は、必要なときに迅速かつ効率よく検索可能なようにキャッシュ706に格納されなければならない。したがって、本発明のある好適な実施形態においては、キャッシュ706を実施するためにハッシュテーブルを用い、SSL/TLSセッション情報を格納してハッシュテーブルから検索するためにハッシュ機能を利用する。
【0083】
上記のごとく当業で公知のように、各SSL/TLSセッション情報は、レコードの一部としてキャッシュ706に格納される。ハッシュテーブルにレコードを入力する場合、分散キャッシュアプリケーション903は、キーデータを数値にマップするために、キーフィールド(例えば、SSL/TLSセッション識別子)内のキーデータに対して算術アルゴリズムまたは「ハッシュ」演算を実行する。そして、キーデータにより識別されたSSL/TLSセッション情報は、キーデータがハッシュ演算によりマップされた数値に対応する位置(「バケット」ともいう)においてハッシュテーブルに格納される。
【0084】
なお、異なるキー値を同じハッシュ値にハッシュしてもよい。この様に、異なるレコードをハッシュ値の同じ位置またはバケットに格納してもよい。したがって、ハッシュ演算は、可能なキーデータ値の全範囲に対してハッシュ値の均一な分布が得られるように選択されることが好ましい。これにより、ハッシュテーブル内の特定の位置にレコードが数量的に不均衡に格納されることはない。すなわち、ハッシュテーブル内にレコードを均一に分布させるハッシュ演算を採用することが好ましい。この様に、レコードを検索する際に、ハッシュテーブル内の如何なる位置からのレコード検索の平均時間も、ハッシュテーブル内の他の位置からのものと僅差または同一にしなければならい。
【0085】
本発明のある好適な実施形態によれば、SSL/TLSセッション情報レコードをキャッシュ706内に均一に分布させるために、「BUZhash」ハッシュアルゴリズムが採用される。このハッシュアルゴリズムは、本発明にその全体が引用により組み込まれている、ロバート・ウズガリス(Robert Uzgalis)による「ハッシュ概念およびJavaプログラミング言語(Hashing Concepts and the Java Programming Language)」(Javaは登録商標)(C)1996に記載されている。この著書に記載されているとおり、BUZhashアルゴリズムは、従来、Sketchyアルゴリズム言語を用いて以下のように演算する。
【0086】
Figure 2004525558
もちろん、当業者に理解されるように、キャッシュ706の異なる構成(例えば、異なるキー範囲)に対応してBUZhashアルゴリズムを変更できる。
【0087】
ウズガリスの著書に記載されているように、BUZhashアルゴリズムは、2進キー値に適用される場合、任意のキー値からランダム数を生成したり、テーブル内で可能な範囲のキー値を均一に分布させたりする際に特に有効である。しかし、当業者に理解されるように、SSL/TLSセッション情報をキャッシュ706に格納するために、当業で公知のその他のハッシュアルゴリズムを利用してもよい。また、SSL/TLSセッション情報をキャッシュ706に格納するために使用可能な新たなハッシュアルゴリズムを開発してもよいことも明白である。
【0088】
なお、分散キャッシュアプリケーション903は、全てのキー値を非透過的に(オペークに)処理して、全てのキー値を一意的なものと仮定して演算する。すなわち、一意的なキーは、キャッシュ706内の単一のレコードのみを識別することができる。既存のレコードと同一のキーデータを用いて別のレコードをキャッシュ706に追加すると、一方のレコードのみが生き残る。しかし、同一キーデータを用いて異なるレコードを参照するようにすることが望ましい。例えば、前述のように、SSL/TLSセッション識別子をキーデータとして用いて、レコードをSSL/TLS再開情報と同定するようにしてもよい。また、クライアントコンピュータ301のユーザのための認証情報(例えば、クライアントコンピュータのユーザがアプリケーションサーバ303からアクセスできるデータを決定するために使用される認証情報)を有するレコードなど、別のレコードを識別するために、SSL/TLSセッション識別子を用いることが望ましい。
【0089】
したがって、本発明の様々な実施形態において、キャッシュAPI902は、同一のキーデータを共有する2つの異なるレコードを区別するテーブル識別子を使用することができる。本発明のこれら様々な実施形態において、プロキシアプリケーション901は、キーデータの指定に関わるキャッシュAPI902を介した全コールの一部として、キーデータに付加されたテーブル識別値を指定する。事実、これにより、プロキシアプリケーション901は、特定キーにより識別されたレコードの書き込みと読み出しとを行うべき仮想テーブルを特定することができる。もちろん、当業者に理解されるように、上記のようにキャッシュ706の全レコードを単一のハッシュテーブルに格納するので、これはロジック構成にすぎない。
【0090】
好ましくは、プロキシアプリケーション901は、各テーブル識別値が適切に生成されて一貫して適用されるように保証する責務を負う。プロキシアプリケーション901は、キーに対してテーブル識別子を付加し、そのキーをキャッシュAPI902に送る。または、バッファ割当演算やコピー演算を省略するために、プロキシアプリケーション901はキャッシュAPI902にテーブル識別子を送り、キャッシュAPI902はテーブル識別子を付加する。キャッシュAPI902は、キーデータの一部としてテーブル識別子を処理するので、プロキシアプリケーション901は、この値のサイズを可能な限り縮小することが好ましい。テーブル識別子のサイズの縮小により、最適なメモリ使用と最適なハッシュ性能とが可能となる。
【0091】
キャッシュメモリ705は、如何なるタイプのメモリ媒体であってもよい。しかし、当業者に理解されるように、キャッシュメモリ705は、RAMまたはメインメモリと一般的に呼ばれている読出可能/書換可能半導体メモリ装置として実施することが好ましく、この様なタイプのメモリ装置は、迅速な情報格納および検索が可能である。現在、サーバ装置として従来使用されているコンピュータは、2ギガバイトから4ギガバイトの情報を格納できるこの様なメモリを備えている。したがって、各プロキシサーバ302用のこのタイプのメモリ装置に200万〜400万キロバイト程度のレコードを格納することができる。もちろん、磁気媒体や光媒体などの他のタイプのメモリ媒体を代替として利用することもできる。
【0092】
本発明のある実施形態によれば、通信機アプリケーション904は、ネットワーク内の装置間において、ユニキャストやTCP/IPのような通信など(受信確認ベースの)ポイント間通信が可能である。このタイプの通信は、例えば、新たに開始されたキャッシュメモリ705と既存のキャッシュメモリ705との間でSSL/TLSセッション情報を同期させたり、SSL/TLSセッション情報の全てが、対応するプロキシアプリケーション901により使用される前に、新たなキャッシュメモリ705に正確にコピーされることを保証するのに有用である。
【0093】
通信機アプリケーション904により提供されるこのタイプのポイント間通信(例えば、ユニキャストまたはTCP/IPのような通信)は、また、他のプロキシサーバ302のキャッシュメモリ705内の個々のレコードの更新や追加のために、分散キャッシュアプリケーション903により使用される。しかし、上述のように、図7Aおよび図7Bに示す本発明の実施形態においては、プロキシサーバ302の数の増大に伴って、各キャッシュメモリ705にSSL/TLSセッション情報を書き込むためのネットワークリソースに対するオーバヘッドが増大する。これは、各プロキシサーバ302が、別個の書込プロセスを用いて各キャッシュメモリ705に新SSL/TLSセッション情報または更新SSL/TLSセッション情報を書き込み、各キャッシュメモリ705から書込コマンド受領確認を応答受信しなければならないからであり、ネットワーク701内の各プロキシサーバ302にとっては、多大なネットワークトラフィック量および処理時間を要する。より具体的には、通信を受信する装置(例えば、プロキシサーバ302)の数をNとすると、各通信で送信すべきデータパケット数は2Nとなる。
【0094】
したがって、例えば、ポイント間メッセージ送信を用いて、通信機アプリケーション904からのメッセージをネットワーク内の適切な各受信側装置に個々に配信できる一方で、このタイプの通信は、本発明の有効性および速度を制約する。それに対応して、本発明のある好適な実施形態においては、通信機アプリケーション904は、信頼性のあるマルチキャスト通信も提供する。当業で公知のように、通信手法は、(a)この手法により送信されるデータパケットが正確に配列され、重複を受信側で廃棄可能な場合や、(b)この手法により、受信側が送信中のデータパケットの喪失時点を検出できる場合、(c)この手法により、送信中に喪失したデータパケットを得るために受信側に修復機構が提供されている場合に、信頼性があると判断される。当業で周知のように、マルチキャストは、異なるネットワーク装置が単一のネットワークアドレスに送信されたメッセージを受信する手順である。
【0095】
したがって、通信機アプリケーション904は、ネットワーク内の適切な装置に対してSSL/TLSセッション情報の追加、更新、または削除を行うために、信頼性のあるマルチキャスト送信を利用してもよい。信頼性のあるマルチキャストを利用することによって、本発明のこれらの実施形態において、SSL/TLSセッション情報を単一の共有マルチキャストアドレスに送信するだけで、同時に多数の異なる装置にSSL/TLSセッション情報を良好に送信する。前述のように、マルチキャストプロセスは当業で周知であり、マルチキャスト通信を円滑にするために、マルチキャスト・トランスファ・プロトコル(MTP)など幾つかのマルチキャストプロトコルが確立されている。
【0096】
信頼性のあるマルチキャスト通信手法の1タイプとして、肯定アプリケーション確認を有するマルチキャスト通信がある。この手法によると、マルチキャスト送信を受信するアプリケーションは、送信されたデータを成功裏に処理した後、マルチキャスト送信を発信した装置に対して確認を送り返す。このタイプの信頼性のあるマルチキャスト通信は、ピア構成の実施形態においては、他のキャッシュメモリ705(マルチ階層構造の実施形態においてはキャッシュ格納庫802)にSSL/TLSセッション情報を追加するために、分散キャッシュアプリケーション903からのADDコマンドを中継する場合に、通信機アプリケーション904により採用されることが好ましい。ピア構成の実施形態においては、通信を受信する装置(例えば、プロキシサーバ302)の数をNとすると、信頼性のある肯定確認マルチキャスト通信手法を使用することによって、各通信のためにネットワーク全体に送信すべきデータパケットの数が1+Nに低減される。すなわち、1つの通信がN個の装置のそれぞれにマルチキャストされ、N個の肯定確認が発信側装置に送り返される。
【0097】
信頼性のある肯定確認マルチキャストによって、多数の装置が、同時に更新SSL/TLSセッション情報または新SSL/TLSセッション情報を確実に受信することができる一方で、ピア構成での実施のためにはかなりのネットワークリソースが必要となる。マルチキャストメッセージを受信する各装置は、メッセージの発信元のネットワーク装置に対して通信受信確認を個別に行う必要があるので、多数のプロキシサーバ302を有するネットワークにおいては(すなわち、Nが大きな場合には)、信頼性のある肯定確認マルチキャストを利用した各プロキシサーバ302へのSSL/TLSセッション情報送信は、ネットワークの性能を著しく劣化させる。
【0098】
しかし、本発明の様々な用途において、上記のマルチ階層構成の実施形態は、ネットワークリソースの使用を更に低減することができる。この様な実施形態において、新状態情報や更新状態情報は、信頼性のある肯定確認ベースの通信手法を利用して、キャッシュ格納庫802にのみ送信すればよい。すると、プロキシサーバ302は、信頼性の低い(ネットワークリソースに関しては安価な)通信手法を利用して新状態情報や更新状態情報を得たり、必要な場合にはキャッシュ格納庫802から新状態情報や更新状態情報を得ることができる。この様にマルチ階層構成を利用することによって、新状態情報や更新状態情報を受信するキャッシュ格納庫802の数をnとした場合、新状態情報や更新状態情報を追加する度にネットワーク全体に送信すべきパケットの数を更に1+nへと低減することができる。本発明においては、通常、キャッシュ格納庫802の数nはプロキシサーバ302の数Nよりもはるかに小さいので、マルチ階層構成の利用により、新状態情報や更新状態情報のキャッシュに必要なネットワークリソースの使用を、個々のリソースのネットワークトラフィックおよび処理時間に関して、大幅に低減することができる。
【0099】
本発明のマルチ階層構成の実施形態において、プロキシサーバ302は、信頼性のあるマルチキャスト通信を提供するために、上記の肯定確認手法の代わりに、例えば、否定確認(NACK)手法を利用して、新状態情報または更新状態情報を受信してもよい。否定確認マルチキャスト手順によれば、マルチキャストメッセージを受信する装置は、メッセージを受信しても発信元装置に確認を送信しない。その代わり、各受信側装置は、マルチキャスト通信の一部分を喪失したと決定したときのみ、発信元装置に応答する。
【0100】
例えば、通信プロトコルの中には、通信の各データセグメントに連続番号を付与する必要があるものもある。否定確認手順によれば、この様なプロトコルにより通信を受信する装置は、データセグメントの1つが受信されていないことを認識した時(すなわち、連番のデータセグメントの喪失を決定した時)のみ、発信元装置に応答する。したがって、本発明の様々な実施形態によれば、通信機アプリケーション904は、この手法を用いて、ネットワーク内の別の装置からのデータが受信されていないことを認識した時に、その装置に否定確認を与える。
【0101】
この様に、本発明のマルチ階層構成の実施形態において、否定確認型の信頼性のあるマルチキャスト構成を利用して、新SSL/TLSセッション情報または更新SSL/TLSセッション情報を各プロキシサーバ302に配信することができ、装置間の通信トラフィック量を低減することができる。もちろん、関連する受信側装置の全てにおいて、単一のマルチキャスト送信を利用して、肯定確認マルチキャスト通信および否定確認マルチキャスト通信を達成可能である。送信側の装置は、別のマルチキャスト送信の前に、肯定確認手法を利用して通信するように指定された全ての装置からの肯定確認を受信するまで待機する。そして、送信側装置は、適切な否定確認マルチキャスト通信プロトコルにより受信した否定確認にも応答する。
【0102】
しかし、従来の否定確認型の信頼性のあるマルチキャスト通信手法には、「オーバーラン」とも呼ばれる更なる問題がある。この状況下、送信側装置は、1以上の受信側装置の処理能力よりも速くデータを送信するので、送信されたデータの一部が失われる結果となる。さらに、送信側装置は、あまりにも大量の情報を送信するので、他の装置から否定確認を受信することができず、これは、通信の一部が失われるということを意味する。しかし、この問題の程度は、ネットワーク全体の通信トラフィックフロー速度に依存する。ただし、ネットワークの通信トラフィックがほとんどない場合、マルチキャスト通信を発信した装置は、受信装置をオーバーランさせることなく、否定確認を失うことなく、高速で情報を送信することができる。同様に、ネットワークの通信トラフィックが多くなると、マルチキャスト通信を発信した装置は、受信装置のオーバーランや否定確認の喪失を回避するために、より低速でデータを送信しなければならない。
【0103】
この問題を解決するために、先行技術の否定確認マルチキャストシステムは、マルチキャスト通信においてデータを送信する速度に絶対的な制限を設定し、あらゆる状況下で他の装置からの否定確認を受信できるように保証することを提案している。しかし、この先行技術の定速による解決策は、ネットワーク全体において変化する通信トラフィックフローを考慮していない。その代わり、全ての否定確認の受信を保証するために、可能な限り低効率で動作する。その他、「マスタ」や「トークン」構成の決定論的な手法を利用する先行技術のシステムもあるが、この様なシステムは、比較的低速かつ非効率的であり、複雑である。
【0104】
それに対応して、本発明のある好適な実施形態において、通信機アプリケーション904は、ネットワーク全体の通信トラフィックフローを決定するためのトラフィックフロー速度検出プロセスと共に、否定確認型の信頼性のあるマルチキャスト通信を提供する。ネットワーク全体の通信トラフィックフローを正確に検出することによって、通信機アプリケーション904は、信頼性のある否定確認マルチキャスト通信におけるデータ送信速度を相応に上げたり下げたりすることができる。以下、このフロー速度検出プロセスについて、図10Aおよび図10Bを参照しながら説明する。
【0105】
図示のように、通信機アプリケーション904は、データインタフェース部1001を有する。インタフェース1001は、ネットワーク内の他の装置にマルチキャストされるデータセグメント1003を収容する出力キュー1002を備えている。インタフェース1001は、他の装置からマルチキャスト通信により受信されたデータセグメント1005を収容する入力キュー1004を更に有する。本発明のこの様な好適な実施形態によれば、通信機アプリケーション904は、それ自体のマルチキャスト送信の受信者でもある。したがって、通信機アプリケーション904は、ネットワーク内のその他の装置へ送信したデータセグメントを受信する。最新の送信データパケットが通信機アプリケーション904で受信された時点を決定することによって、通信機アプリケーション904は、ネットワーク内のトラフィックフローレベルを決定することができる。例えば、本発明のある好適な実施形態において、通信機アプリケーション904は、以前に送信されたデータセグメントをその入力キュー1004に受信するまで、出力キュー1002からの別のデータセグメントの出力を控える。
【0106】
当業者に理解されるように、このフロー速度検出手法に対して数々の変形態様が可能である。例えば、通信機アプリケーション904は、直前の送信データセグメント(例えば、データ1)を入力キュー1004(図10B参照)に受信するまで、新たなデータセグメント(例えば、図10Aおよび図10Bに示すデータ2)の送信を延期する。または、通信機アプリケーション904は、ネットワーク全体のトラフィックの現在のフロー状況を確認するために、それ自体の送信データセグメント間に発生する入力キュー1004内のデータセグメントの平均数を決定する。ネットワーク全体のトラフィックのフロー状況の決定のために、自己送信データセグメントの受信を利用して、その他数々の改良態様が可能である。さらに、この手法は、マルチキャストされない通信にも採用可能である。例えば、通信機アプリケーション904は、ポイント間メッセージのコピーをフィードバックループ上でそれ自体に送信することができる。通信機アプリケーション904は、ネットワーク上でトラフィック量を決定するために、通信機アプリケーション904がそれ自体に送信したメッセージが入力キュー1004内に現れることを利用する。
【0107】
また、前述のように、肯定確認マルチキャスト通信手法および否定確認マルチキャスト通信手法を利用してメッセージを配信するために、同じマルチキャスト送信を使用することができる。なお、否定確認マルチキャスト通信手法をフロー検出と共に利用した場合、否定確認マルチキャスト手法と共に用いたフロー制御機能により、肯定確認マルチキャスト手法の動作を制御する。つまり、送信側装置は、肯定確認マルチキャスト通信手法で通信する装置を含め、如何なる装置に対しても、フロー制御機能により許容される速度よりも高速でマルチキャスト送信を行うことはしない。
【0108】
したがって、このフロー制御否定確認マルチキャスト通信手法は、本発明のマルチ階層構成において、ネットワークトラフィックに関しても、送信側装置および受信側装置での処理時間に関しても、ネットワークリソースの使用を大幅に増大することなく、新SSL/TLSセッション情報および更新SSL/TLSセッション情報をプロキシサーバ302に配信するために、通信アプリケーション904によって提供されることが好ましい。もちろん、通信機アプリケーション904は、プロキシサーバ302の様々な管理機能のために、信頼性のない通信手法も提供する。
【0109】
したがって、信頼性のあるマルチキャスト通信手法(すなわち、肯定確認マルチキャスト通信手法およびフロー制御否定確認マルチキャスト通信手法)を利用して、多数の装置にSSL/TLSセッション情報を同時配信することによって、プロキシサーバ302とクライアントコンピュータ301との間のセッションのSSL/TLSセッション情報を、複数の異なるキャッシュメモリ705およびキャッシュ格納庫802に効率よくキャッシュ可能となる。クライアントコンピュータ301とあるプロキシサーバ302との間の接続が終了した場合、キャッシュされたSSL/TLSセッション情報を利用して、別のプロキシサーバ302が、クライアント装置とのセッションを再開することができる。
【0110】
以上、本発明の特定の実施形態について説明してきたが、様々な変形態様、変更態様、代替構成、および均等物も本発明の範囲に包含される。例えば、上記のSSL/TLSセッション情報の格納に加えて、その他の情報も、キャッシュ706に好都合に格納することができる。例えば、クライアントコンピュータ301およびプロキシサーバ302が、暗号化データの送信に使用する1以上のポートを指定する場合、これらのポートをキャッシュ706に格納して、クライアントコンピュータ301とのSSL/TLSセッションの再開を円滑化することができる。また、クライアントコンピュータ301が目的のアプリケーションサーバ303のIPアドレスおよびポートを提供する場合、この情報をキャッシュ706に好都合に格納して、クライアントコンピュータ301とのSSL/TLSセッションの再開を円滑化することができる。さらに、改良SSL/TLSにより生成されたSSL/TLSセッションに対して、そのセッション中に交換されたノンスをキャッシュ706に格納することもできる。したがって、別のプロキシサーバ302とのセッションを再開すると、この新たなサーバ302は、前のデータグラムの受信時点を検出することができる。
【0111】
なお、上記の発明は、ある特定のデータ処理環境内での運用に限定されるものではなく、分散コンピュータネットワーク環境、単一の独立型コンピュータシステム環境などのコンピュータ環境等、複数のデータ処理環境内で自由に運用できる。さらに、特定の一連のトランザクションやステップを用いて本発明を説明してきたが、当業者にとっては、本発明の範囲が前記の一連のトランザクションやステップに限定されるものではないことが明らかであろう。
【0112】
本発明をプログラミングするために使用されるロジック、システムフロー、テーブル、およびデータ構成の生成には、本質的な自由度がある。演算を行うデータ構成やデータ値は、本発明の趣旨を逸脱するもの、または、本発明の範囲を制限するものでない限り、明示的なものでも、他のデータから導出されたものでも、他のソースから取り込まれたものでも、プログラム演算またはロジック演算の結果でもよい。この特許における索引付け、検索、データ処理のためのアルゴリズムは、本発明の趣旨を逸脱するもの、または、本発明の範囲を制限するものでない限り、様々な性能/システムインテグレーション要件をサポートするために、置換または変更されてもよい。
【0113】
さらに、本発明について、ハードウェアとソフトウェアとの特定の組み合わせを用いて説明したが、ハードウェアとソフトウェアとのその他の組み合わせも、本発明の範囲内であると認識すべきである。本発明は、ハードウェアのみ、もしくは、ソフトウェアのみ、または、その組み合わせを用いて実施してもよい。
この明細書および図面は、限定的ではなく例示的な意味合いと見なされるものとする。しかし、特許請求の範囲に記載されている本発明のより広範な趣旨および範囲から逸脱することなく、本発明に対して、追加、除去、削除、その他の改良や変更が可能であることは明白である。
【0114】
添付の方法に関する請求項においてステップを識別する参照番号は、単に便宜上のものであり、ステップの必須の順序を暗示するためのものではない。したがって、本発明は、添付の特許請求の範囲内において、上記以外の方法で実施してもよいと理解される。いずれの請求項も、「ミーンズ・プラス・ファンクション」形式であると解釈してはならない。
【図面の簡単な説明】
【0115】
【図1A】TCPまたはUDPをIPと共に利用してデータパケットを送信するための従来の方策を示す。
【図1B】SSL/TLSをTCP/IPと共に利用して確実なデータを送信するための従来の方策を示す。
【図1C】ヘッダフィールドと、暗号化暗号テキストフィールドと、メッセージ認証チェック(MAC)とを含むSSL/TLSレコードのための従来のレコードフォーマットを示す。
【図2】SOCKSプロトコルを利用して、プロキシサーバ202を介してクライアントコンピュータ201をサーバコンピュータ203にインタフェースするための従来の方策を示す。
【図3A】本発明のある変形態様に係る、送出フロー方向の改良SOCKSプロトコルを用いたシステムを示す。
【図3B】本発明のある変形態様に係る、送入フロー方向の改良SOCKSプロトコルを用いたシステムを示す。
【図4A】暗号化を用いてSSL/TLSレコードを生成する従来の手法を示す。
【図4B】以前に暗号解読されたレコードに依存してSSL/TLSレコードを暗号解読する従来の手法を示す。
【図5A】以前に送信されたレコードとは独立して各レコードを暗号化する本発明のある変形態様に係る改良暗号化方式を示す。
【図5B】以前に受信されたレコードとは独立して各レコードを暗号解読する本発明のある変形態様に係る改良暗号解読方式を示す。
【図5C】単一のレコード内に多数の暗号ブロックを含む改良暗号解読方式を示す。
【図6】本発明の様々な原則に従って、暗号化レコードの生成および送信に使用可能な方法の各ステップを示す。
【図7A】本発明のある実施形態に係る2つのネットワークを示す。
【図7B】本発明のある実施形態に係る2つのネットワークを示す。
【図8A】本発明の別の実施形態に係る2つのネットワークを示す。
【図8B】本発明の別の実施形態に係る2つのネットワークを示す。
【図9】本発明のある実施形態に係るプロキシサーバ装置を示す。
【図10A】本発明のある実施形態に係るネットワークフローレベル検出手法を示す。
【図10B】本発明のある実施形態に係るネットワークフローレベル検出手法を示す。

Claims (46)

  1. コンピュータネットワークを介して確実にデータを送信する方法であって、
    (1)第1のコンピュータと第2のコンピュータとの間に通信経路を確立するステップと、
    (2)信頼性のない通信プロトコルを利用して、前記第1のコンピュータと前記第2のコンピュータとの間で、データレコードを暗号化して送信するステップであって、以前に送信されたデータレコードを参照することなく、各データレコードを暗号化するステップと、
    (3) 前記第2のコンピュータにおいて、以前に受信されたデータレコードを参照することなく、前記ステップ(2)で送信された前記データレコードを受信して暗号解読するステップと
    (4) 前記第2のコンピュータにおいて、前記データレコードを暗号化および暗号解読するためのセッション情報を第3のコンピュータに送信するステップとを含む方法。
  2. 前記ステップ(1)の前に、前記第1のコンピュータと前記第2のコンピュータとの間に信頼性のある通信経路を確立し、前記信頼性のある通信経路を介してセキュリティ信任情報を交換するステップを更に含む請求項1の方法。
  3. 前記セキュリティ信任情報を交換するステップが、前記ステップ(2)において前記データレコードの暗号化に使用される暗号化キーを交換するステップを含む請求項2の方法。
  4. 前記セッション情報に、前記セキュリティ信任情報の少なくとも一部が含まれている請求項2の方法。
  5. 前記ステップ(2)が、前記ステップ(3)において前記各データレコードを暗号解読するために、前記第2のコンピュータが以前に共有した暗号化キーと共に使用するノンスを、各データレコードに組み込むステップを含む請求項1の方法。
  6. 前記ノンスが、ランダム数を含む請求項5の方法。
  7. 前記第2のコンピュータにおいて、以前に送信されたデータレコード内に、前記ノンスが前もって受信されていないことを確認するステップを更に含む請求項5の方法。
  8. 前記ステップ(2)が、以前に送信されたデータレコードを参照せずにレコードを暗号化する暗号化方式に従って、前記データレコードが暗号化されたことを示す指標を、前記各データレコード内に埋め込むステップを含み、
    前記ステップ(3)が、各レコードに前記指標が存在するか否かを決定し、前記指標が存在しないことの決定に応答して、前記指標が設定されている場合とは異なる方法で、各レコードを処理するステップを含む請求項1の方法。
  9. 前記ステップ(1)が、トランスミッション・コントロール・プロトコルを利用して実行され、前記ステップ(2)が、ユーザ・データグラム・プロトコルを利用して実行される請求項1の方法。
  10. 前記ステップ(2)が、別のサーバから受信されたデータレコードを暗号化するプロキシサーバにより実行される請求項1の方法。
  11. 前記第3のコンピュータが、
    前記第1のコンピュータとの通信経路を確立し、
    信頼性のない通信プロトコルを利用して、データレコードを暗号化して前記第1のコンピュータに送信し、
    各データレコードが、以前に送信されたデータレコードを参照することなく、前記セッション情報を用いて暗号化される請求項1の方法。
  12. 第4のコンピュータが、
    前記第3のコンピュータから前記セッション情報を検索し、
    前記第1のコンピュータとの通信経路を確立し、
    信頼性のない通信プロトコルを利用して、データレコードを暗号化して前記第1のコンピュータに送信し、
    各データレコードが、以前に送信されたデータレコードを参照することなく、前記セッション情報を用いて暗号化される請求項1の方法。
  13. 前記セッション情報が、SSLまたはTLSセッション情報である請求項1の方法。
  14. 前記セッション情報が、SSLまたはTLSセッション識別子を含む請求項1の方法。
  15. 前記セッション情報が、前記ステップ(2)におけるデータレコードの暗号化に使用される暗号化キーを含む請求項1の方法。
  16. 前記セッション情報が、前記第3のコンピュータにより、ハッシュ機能を用いてキャッシュメモリに格納される請求項1の方法。
  17. 前記ハッシュ機能が、BUZhash関数である請求項16の方法。
  18. 前記第2のコンピュータが、マルチキャスト通信を利用して前記セッション情報を前記第3のコンピュータに送信する請求項1の方法。
  19. 前記マルチキャスト通信が、否定確認マルチキャスト通信である請求項18の方法。
  20. 信頼性のない通信プロトコルを利用して、クライアントコンピュータとプロキシサーバとの間で複数のデータレコードを確実に送信する方法であって、
    (1)前記クライアントコンピュータと前記プロキシサーバとの間に信頼性のある接続を確立するステップと、
    (2)前記信頼性のある接続を介して前記クライアントコンピュータと前記プロキシサーバとの間で暗号化信任情報を交換するステップと、
    (3)複数のデータレコードのそれぞれのためにノンスを生成するステップであって、各ノンスが、前記複数のデータレコードの内の対応する1つを暗号解読するために必要な初期化ベクトルを含むステップと、
    (4)前記ノンスを用いて、前記複数のデータレコードのそれぞれを暗号化し、前記複数のデータレコードのそれぞれに前記ノンスを付加するステップと、
    (5)信頼性のない通信プロトコルを利用して、前記ステップ(4)において暗号化された前記複数のデータレコードを、前記クライアントコンピュータから前記プロキシサーバに送信するステップと、
    (6)前記プロキシサーバにおいて、各データレコードから抽出された対応するノンスと、以前に共有された暗号化キーとを用いて、前記複数の暗号化データレコードのそれぞれを暗号解読するステップと、
    (7)前記プロキシサーバにおいて、前記複数のデータレコードの暗号解読に使用される前記の以前に共有された暗号化キーを含むセッション情報を、別のサーバに送信するステップとを含む方法。
  21. 前記ステップ(6)が、信頼性のない確実な送信フォーマットに従って、前記クライアントコンピュータから受信された各データレコードがフォーマットされているか否かを決定するためにチェックし、ある特定のレコードが信頼性のない確実な送信フォーマットに従ってフォーマットされていない場合には、前記対応するノンスを用いた前記暗号解読を回避するステップを含む請求項20の方法。
  22. 前記ステップ(3)が、ランダム数を各ノンスとして生成するステップを含む請求項20の方法。
  23. 前記ステップ(3)が、一意的な数値を各ノンスとして生成するステップを含む請求項20の方法。
  24. 前記ステップ(1)が、トランスミッション・コントロール・プロトコルを利用して実行され、前記ステップ(5)が、ユーザ・データグラム・プロトコルを利用して実行される請求項20の方法。
  25. 前記ステップ(6)が、信頼性のある通信プロトコルを利用して以前に共有された暗号化キーを用いて実行される請求項20の方法。
  26. 前記信頼性のある通信プロトコルが、トランスミッション・コントロール・プロトコルである請求項25の方法。
  27. 前記別のサーバが、第2のプロキシサーバである請求項20の方法。
  28. 前記第2のプロキシサーバにおいて、各データレコードから抽出された対応するノンスと、前記第1のプロキシサーバから送信された前記セッション情報とを用いて、前記クライアントコンピュータからの暗号化データレコードを暗号解読することを更に含む請求項27の方法。
  29. 前記別のプロキシサーバが、キャッシュメモリサーバである請求項20の方法。
  30. 第2のプロキシサーバにおいて、
    前記キャッシュメモリサーバから前記セッション情報を得ることと、
    各データレコードから抽出された対応するノンスと、前記セッション情報とを用いて、前記クライアントコンピュータからの暗号化データレコードを暗号解読することを更に含む請求項29の方法。
  31. 前記セッション情報が、SSLまたはTLSセッション情報である請求項20の方法。
  32. 前記セッション情報が、SSLまたはTLSセッション識別子を含む請求項20の方法。
  33. 前記セッション情報が、前記クライアントコンピュータのユーザのための認証情報を含む請求項20の方法。
  34. 前記セッション情報が、前記別のサーバにより、ハッシュ機能を用いてキャッシュメモリに格納される請求項20の方法。
  35. 前記ハッシュ機能が、BUZhash関数である請求項34の方法。
  36. 前記別のプロキシサーバが、マルチキャスト通信を利用して前記セッション情報を別のサーバに送信する請求項20の方法。
  37. 前記マルチキャスト通信が、否定確認マルチキャスト通信である請求項36の方法。
  38. 信頼性のないプロトコルを利用して確実にデータを送信するシステムであって、
    信頼性のないプロトコルを利用してデータレコードを確実に送信するために、アプリケーションプログラムと共に動作可能な通信プロトコルクライアント機能を備えた第1のコンピュータと、
    前記第1のコンピュータと連結され、前記信頼性のない通信プロトコルを利用して確実にデータレコードを受信するために、前記通信プロトコルクライアント機能と共に動作可能な通信プロトコルサーバ機能を備えた第2のコンピュータとを備え、
    前記通信プロトコルクライアント機能が、ノンスおよび暗号化キーを用いて各データレコードを暗号化し、前記暗号化データレコードのそれぞれに前記ノンスを付加し、
    前記通信プロトコルサーバ機能が、前記付加されたノンスおよび前記暗号化キーを用いてデータレコードのそれぞれを暗号解読し、
    さらに、前記第2のコンピュータと連結され、少なくとも前記暗号化キーを格納するためのキャッシュメモリを有する第3のコンピュータを備えたシステム。
  39. 前記通信プロトコルクライアント機能が、信頼性のある通信プロトコルを利用して、前記通信プロトコルサーバ機能と暗号化信任情報を交換する請求項38のシステム。
  40. 前記信頼性のない通信プロトコルが、ユーザ・データグラム・プロトコルを含み、前記信頼性のある通信プロトコルが、トランスミッション・コントロール・プロトコルを含む請求項39のシステム。
  41. 前記通信プロトコルクライアント機能および前記通信プロトコルサーバ機能が、SOCKS通信プロトコルと互換性がある請求項38のシステム。
  42. 前記通信プロトコルクライアント機能および前記通信プロトコルサーバ機能が、SSL/TLS通信プロトコルと互換性がある請求項38のシステム。
  43. 前記第2のコンピュータが、前記第1のコンピュータから受信された暗号解読レコードを、サーバコンピュータに転送するプロキシサーバを含む請求項38のシステム。
  44. 前記第2のコンピュータが、前記第1のコンピュータから受信された各データレコードに指標が設定されているか否かを決定するレコード検出器を備え、前記指標が設定されていなければ、前記サーバコンピュータでの暗号解読を回避する請求項38のシステム。
  45. 前記第3のコンピュータが、プロキシコンピュータであって、
    前記第1のコンピュータから暗号化レコードを受信可能であり、
    前記キャッシュメモリに格納されている少なくとも前記暗号化キーを用いて、前記受信されたレコードを暗号解読可能であり、
    前記第1のコンピュータから受信された暗号解読レコードをサーバコンピュータに転送可能なプロキシサーバである請求項38のシステム。
  46. 前記第3のコンピュータが、メモリキャッシュサーバであり、
    第4のコンピュータであって、
    前記第3のコンピュータの前記キャッシュメモリに格納されている少なくとも前記暗号化キーを取得可能であり、
    前記第1のコンピュータから暗号化レコードを受信可能であり、
    前記キャッシュメモリに格納されている少なくとも前記暗号化キーを用いて、前記受信されたレコードを暗号解読可能であり、
    前記第1のコンピュータから受信された前記暗号解読レコードをサーバコンピュータに転送可能な第4のコンピュータを更に備えた請求項38のシステム。
JP2002564846A 2001-02-13 2002-02-08 信頼性のないプロトコルを利用して確実なストリーミングデータ送信機能を提供するための方法および装置 Pending JP2004525558A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/783,146 US7360075B2 (en) 2001-02-12 2001-02-13 Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
PCT/US2002/003625 WO2002065650A2 (en) 2001-02-13 2002-02-08 Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols

Publications (1)

Publication Number Publication Date
JP2004525558A true JP2004525558A (ja) 2004-08-19

Family

ID=25128312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002564846A Pending JP2004525558A (ja) 2001-02-13 2002-02-08 信頼性のないプロトコルを利用して確実なストリーミングデータ送信機能を提供するための方法および装置

Country Status (6)

Country Link
US (4) US7360075B2 (ja)
EP (1) EP1362427A2 (ja)
JP (1) JP2004525558A (ja)
AU (1) AU2002236978A1 (ja)
CA (1) CA2438180A1 (ja)
WO (1) WO2002065650A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008538266A (ja) * 2005-03-10 2008-10-16 インテル コーポレイション 非互換的トランスポートのセキュリティプロトコル
JP2015505994A (ja) * 2011-12-16 2015-02-26 アカマイ テクノロジーズ インコーポレイテッド ローカルにアクセス可能な秘密鍵を用いないssl接続の終了

Families Citing this family (174)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7360075B2 (en) 2001-02-12 2008-04-15 Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US7383329B2 (en) 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US7353380B2 (en) * 2001-02-12 2008-04-01 Aventail, Llc, A Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US20020194501A1 (en) * 2001-02-25 2002-12-19 Storymail, Inc. System and method for conducting a secure interactive communication session
US7640582B2 (en) 2003-04-16 2009-12-29 Silicon Graphics International Clustered filesystem for mix of trusted and untrusted nodes
US7536546B2 (en) * 2001-08-28 2009-05-19 Acme Packet, Inc. System and method for providing encryption for rerouting of real time multi-media flows
US7991006B2 (en) * 2001-08-02 2011-08-02 Oracle America, Inc. Filtering redundant packets in computer network equipments
US20040024808A1 (en) * 2002-08-01 2004-02-05 Hitachi, Ltd. Wide area storage localization system
US7600118B2 (en) * 2002-09-27 2009-10-06 Intel Corporation Method and apparatus for augmenting authentication in a cryptographic system
US8909926B2 (en) * 2002-10-21 2014-12-09 Rockwell Automation Technologies, Inc. System and methodology providing automation security analysis, validation, and learning in an industrial controller environment
US9009084B2 (en) 2002-10-21 2015-04-14 Rockwell Automation Technologies, Inc. System and methodology providing automation security analysis and network intrusion protection in an industrial environment
US7240214B2 (en) * 2002-10-25 2007-07-03 Yahoo!, Inc. Centrally controllable instant messaging system
US7542471B2 (en) * 2002-10-30 2009-06-02 Citrix Systems, Inc. Method of determining path maximum transmission unit
US8233392B2 (en) 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7630305B2 (en) * 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US7587598B2 (en) * 2002-11-19 2009-09-08 Toshiba America Research, Inc. Interlayer fast authentication or re-authentication for network communication
US7362780B2 (en) * 2002-12-11 2008-04-22 Nokia Corporation Avoiding compression of encrypted payload
US20040193456A1 (en) * 2003-03-28 2004-09-30 The Ohio Casualty Insurance Company Out-of-sequence endorsement processing in insurance policy management system
US9106479B1 (en) * 2003-07-10 2015-08-11 F5 Networks, Inc. System and method for managing network communications
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US7656799B2 (en) 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
US7698453B2 (en) 2003-07-29 2010-04-13 Oribital Data Corporation Early generation of acknowledgements for flow control
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US8464353B2 (en) * 2003-10-03 2013-06-11 Hewlett-Packard Development Company, L. P. Method and system for content downloads via an insecure communications channel to devices
US7617531B1 (en) 2004-02-18 2009-11-10 Citrix Systems, Inc. Inferencing data types of message components
US20050204139A1 (en) * 2004-03-10 2005-09-15 Helland Patrick J. Service broker security
US8213422B2 (en) * 2004-06-04 2012-07-03 Rockstar Bidco, LP Selective internet priority service
US9621473B2 (en) 2004-08-18 2017-04-11 Open Text Sa Ulc Method and system for sending data
GB2417391B (en) * 2004-08-18 2007-04-18 Wecomm Ltd Transmitting data over a network
US8224966B2 (en) * 2004-08-24 2012-07-17 Cisco Technology, Inc. Reproxying an unproxied connection
GB0419479D0 (en) * 2004-09-02 2004-10-06 Cryptomathic Ltd Data certification methods and apparatus
JP4520840B2 (ja) * 2004-12-02 2010-08-11 株式会社日立製作所 暗号化通信の中継方法、ゲートウェイサーバ装置、暗号化通信のプログラムおよび暗号化通信のプログラム記憶媒体
US8042165B2 (en) * 2005-01-14 2011-10-18 Citrix Systems, Inc. Method and system for requesting and granting membership in a server farm
US20060236385A1 (en) * 2005-01-14 2006-10-19 Citrix Systems, Inc. A method and system for authenticating servers in a server farm
KR100846868B1 (ko) * 2005-01-17 2008-07-17 엘지전자 주식회사 Supl 기반의 위치정보 시스템에서의 tls 세션관리방법
US7900039B2 (en) * 2005-01-17 2011-03-01 Lg Electronics, Inc. TLS session management method in SUPL-based positioning system
US9118717B2 (en) * 2005-02-18 2015-08-25 Cisco Technology, Inc. Delayed network protocol proxy for packet inspection in a network
WO2006104438A1 (en) * 2005-03-31 2006-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Protection of data delivered out-of-order
KR100595714B1 (ko) * 2005-04-01 2006-07-03 엘지전자 주식회사 Supl 기반의 위치정보 시스템에서 supl 초기화메시지 및 이를 이용한 supl 처리방법
US20060277596A1 (en) * 2005-06-06 2006-12-07 Calvert Peter S Method and system for multi-instance session support in a load-balanced environment
US7627681B2 (en) * 2005-07-20 2009-12-01 Microsoft Corporation Relaying messages through a firewall
US7921463B2 (en) * 2005-09-30 2011-04-05 Intel Corporation Methods and apparatus for providing an insertion and integrity protection system associated with a wireless communication platform
AU2006324920B2 (en) * 2005-12-14 2010-08-12 Nds Limited Method and system for usage of block cipher encryption
US8447695B2 (en) * 2006-01-05 2013-05-21 International Business Machines Corporation System and method for processing feedback entries received from software
US8782393B1 (en) * 2006-03-23 2014-07-15 F5 Networks, Inc. Accessing SSL connection data by a third-party
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US8004973B2 (en) * 2006-04-25 2011-08-23 Citrix Systems, Inc. Virtual inline configuration for a network device
US20070255861A1 (en) * 2006-04-27 2007-11-01 Kain Michael T System and method for providing dynamic network firewall with default deny
US20080002695A1 (en) * 2006-06-28 2008-01-03 Motorola, Inc. Preservation of session information on a communications network
US8677007B2 (en) * 2006-08-03 2014-03-18 Citrix Systems, Inc. Systems and methods for bypassing an appliance
US7953889B2 (en) * 2006-08-03 2011-05-31 Citrix Systems, Inc. Systems and methods for routing VPN traffic around network disruption
US8281392B2 (en) * 2006-08-11 2012-10-02 Airdefense, Inc. Methods and systems for wired equivalent privacy and Wi-Fi protected access protection
US7689547B2 (en) * 2006-09-06 2010-03-30 Microsoft Corporation Encrypted data search
US20080077976A1 (en) * 2006-09-27 2008-03-27 Rockwell Automation Technologies, Inc. Cryptographic authentication protocol
US8091124B2 (en) * 2007-02-23 2012-01-03 Microsoft Corporation Caching public objects with private connections
JP4851585B2 (ja) * 2007-02-28 2012-01-11 富士通株式会社 クライアント装置と複数のサーバ装置からなるシステムの通信方法、その通信プログラム、クライアント装置及びサーバ装置
JP4802123B2 (ja) * 2007-03-07 2011-10-26 富士通株式会社 情報送信装置、情報送信方法、情報送信プログラムおよび該プログラムを記録した記録媒体
US8504775B2 (en) 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
US7783757B2 (en) 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US7706266B2 (en) * 2007-03-12 2010-04-27 Citrix Systems, Inc. Systems and methods of providing proxy-based quality of service
US8701010B2 (en) 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
US7720936B2 (en) 2007-03-12 2010-05-18 Citrix Systems, Inc. Systems and methods of freshening and prefreshening a DNS cache
US7584294B2 (en) 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US8103783B2 (en) * 2007-03-12 2012-01-24 Citrix Systems, Inc. Systems and methods of providing security and reliability to proxy caches
US8000467B2 (en) * 2007-03-19 2011-08-16 Stmicroelectronics Sa Data parallelized encryption and integrity checking method and device
US8190875B2 (en) * 2007-03-22 2012-05-29 Cisco Technology, Inc. Reducing processing load in proxies for secure communications
JP5002337B2 (ja) * 2007-05-31 2012-08-15 株式会社東芝 ネットワークアクセスを認証または中継する通信システム、中継装置、認証装置、および通信方法
US8397027B2 (en) * 2007-08-10 2013-03-12 Emc Corporation Methods and systems for multi-caching
US7979563B2 (en) * 2007-08-16 2011-07-12 International Business Machines Corporation Method and system for dynamic client/server network management using proxy servers
WO2009045963A1 (en) * 2007-10-01 2009-04-09 Viasat, Inc. Methods and systems for secure data transmission between a client and a server via a proxy
US8347374B2 (en) * 2007-11-15 2013-01-01 Red Hat, Inc. Adding client authentication to networked communications
US8929369B1 (en) * 2007-12-31 2015-01-06 Emc Corporation System and method for striping / mirroring data
US8145768B1 (en) * 2008-02-26 2012-03-27 F5 Networks, Inc. Tuning of SSL session caches based on SSL session IDS
WO2009117384A2 (en) * 2008-03-17 2009-09-24 Broadcom Corporation Method and system for secure block acknowledgement (block ack) with protected mac sequence number
US7877503B2 (en) * 2008-07-02 2011-01-25 Verizon Patent And Licensing Inc. Method and system for an intercept chain of custody protocol
US7949894B2 (en) * 2008-08-11 2011-05-24 International Business Machines Corporation Self-healing capabilities in a directory server
US8737220B2 (en) * 2008-09-23 2014-05-27 The Trustees Of Columbia University In The City Of New York Systems for providing feedback to sending entities
CA2739914A1 (en) * 2008-10-07 2010-04-15 University Of South Florida Architecture and two-layered protocol for real-time location-aware applications
US9008314B2 (en) * 2008-11-18 2015-04-14 Verizon Patent And Licensing Inc. Secure wireless communications
KR20100064585A (ko) * 2008-12-05 2010-06-15 삼성전자주식회사 데이터송수신장치 및 그 방법
JP5374752B2 (ja) * 2009-01-19 2013-12-25 株式会社東芝 保護制御計測システムと装置、およびデータ伝送方法
FR2943198B1 (fr) * 2009-03-16 2011-05-20 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de production de donnees de securisation, dispositif et programme d'ordinateur correspondant
JP5321221B2 (ja) * 2009-04-22 2013-10-23 富士通株式会社 管理装置、管理方法、およびプログラム
US8082351B1 (en) * 2009-05-26 2011-12-20 Adobe Systems Incorporated Software load balancing for session requests that maintain state information
US10424000B2 (en) 2009-05-30 2019-09-24 Edmond K. Chow Methods and systems for annotation of digital information
US20150294377A1 (en) 2009-05-30 2015-10-15 Edmond K. Chow Trust network effect
US20110307490A1 (en) * 2010-06-15 2011-12-15 Usm China/Hong Kong Limited Context Level Protocols And Interfaces
US20110055552A1 (en) * 2009-09-02 2011-03-03 Max Planck Gesellschaft Zur Foerderung Der Wissenschaften Private, accountable, and personalized information delivery in a networked system
US20110060812A1 (en) * 2009-09-10 2011-03-10 Level 3 Communications, Llc Cache server with extensible programming framework
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US8909863B2 (en) * 2009-11-16 2014-12-09 Microsoft Corporation Cache for storage and/or retrieval of application information
US9479480B2 (en) * 2010-01-29 2016-10-25 Citrix Systems, Inc. Systems and methods of using SSL pools for WAN acceleration
US8700892B2 (en) 2010-03-19 2014-04-15 F5 Networks, Inc. Proxy SSL authentication in split SSL for client-side proxy agent resources with content insertion
US8615651B1 (en) * 2010-05-17 2013-12-24 Google Inc. Offline shared security key calculation
US8707088B2 (en) * 2010-05-19 2014-04-22 Cleversafe, Inc. Reconfiguring data storage in multiple dispersed storage networks
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US10817555B2 (en) * 2010-07-03 2020-10-27 Edmond K. Chow Resource hubs for heterogeneous groups
US20120023241A1 (en) * 2010-07-26 2012-01-26 Cisco Technology, Inc. SSL Cache Session Selection
CN102045201B (zh) * 2010-12-27 2013-03-27 北京锐安科技有限公司 一种内网服务器集群自动升级方法及其系统
RU2445692C1 (ru) * 2011-01-21 2012-03-20 Государственное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Способ обеспечения информационной безопасности при доступе пользователя к внешним информационным ресурсам через интернет
US8776207B2 (en) * 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
US9130935B2 (en) * 2011-05-05 2015-09-08 Good Technology Corporation System and method for providing access credentials
US8725788B2 (en) 2011-05-27 2014-05-13 Adobe Systems Incorporated System and method for decryption of content including partial-block discard
US8687809B2 (en) * 2011-05-27 2014-04-01 Adobe Systems Incorporated System and method for decryption of content including disconnected encryption chains
US8707391B2 (en) * 2011-08-18 2014-04-22 Qualcomm Incorporated Supporting a server-arbitrated group communication session over a local wireless network via a wireless wide area network proxy client
US9753797B1 (en) * 2011-08-26 2017-09-05 Amazon Technologies, Inc. Reliable intermediate multicast communications
US9386127B2 (en) 2011-09-28 2016-07-05 Open Text S.A. System and method for data transfer, including protocols for use in data transfer
US9009473B2 (en) * 2011-10-13 2015-04-14 International Business Machines Corporation Providing consistent cryptographic operations across several applications
US8813189B2 (en) * 2011-11-18 2014-08-19 Blue Coat Systems, Inc. System and method for capturing network traffic
CN103166913B (zh) * 2011-12-09 2015-10-21 华为技术有限公司 加密媒体流的录制方法及交换控制设备
CN103188074B (zh) * 2011-12-28 2016-08-10 上海格尔软件股份有限公司 一种增强浏览器ssl算法强度的代理方法
US20130297513A1 (en) * 2012-05-04 2013-11-07 Rawllin International Inc. Multi factor user authentication
US8843738B2 (en) 2012-05-14 2014-09-23 Sierra Wireless, Inc. TLS abbreviated session identifier protocol
DE102012209408A1 (de) * 2012-06-04 2013-12-05 Siemens Aktiengesellschaft Sichere Übertragung einer Nachricht
US9075953B2 (en) 2012-07-31 2015-07-07 At&T Intellectual Property I, L.P. Method and apparatus for providing notification of detected error conditions in a network
US8966179B1 (en) * 2012-09-10 2015-02-24 Google Inc. Volatile memory storage for private web browsing
CN102970166B (zh) * 2012-11-21 2015-10-07 大唐移动通信设备有限公司 一种监听网元设备告警事件的方法及系统
US9390052B1 (en) 2012-12-19 2016-07-12 Amazon Technologies, Inc. Distributed caching system
US9621399B1 (en) 2012-12-19 2017-04-11 Amazon Technologies, Inc. Distributed caching system
US10642738B1 (en) 2012-12-19 2020-05-05 Amazon Technologies, Inc. Distributed caching system
US9166862B1 (en) * 2012-12-19 2015-10-20 Amazon Technologies, Inc. Distributed caching system
US9118645B2 (en) * 2012-12-19 2015-08-25 Jive Software, Inc. Distributed authentication using persistent stateless credentials
US9264222B2 (en) * 2013-02-28 2016-02-16 Apple Inc. Precomputing internal AES states in counter mode to protect keys used in AES computations
US9438638B2 (en) * 2013-03-15 2016-09-06 Silicon Graphics International Corp. Method for transparently connecting augmented network socket operations
US9467283B2 (en) 2013-06-24 2016-10-11 Blackberry Limited Securing method for lawful interception
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US9396338B2 (en) 2013-10-15 2016-07-19 Intuit Inc. Method and system for providing a secure secrets proxy
US9602498B2 (en) * 2013-10-17 2017-03-21 Fortinet, Inc. Inline inspection of security protocols
US9467477B2 (en) 2013-11-06 2016-10-11 Intuit Inc. Method and system for automatically managing secrets in multiple data security jurisdiction zones
US9894069B2 (en) 2013-11-01 2018-02-13 Intuit Inc. Method and system for automatically managing secret application and maintenance
US9444818B2 (en) 2013-11-01 2016-09-13 Intuit Inc. Method and system for automatically managing secure communications in multiple communications jurisdiction zones
WO2015183151A1 (en) * 2014-05-28 2015-12-03 Telefonaktiebolaget L M Ericsson (Publ) Methods and arrangements for cloud caching
EP2961207A1 (en) * 2014-06-24 2015-12-30 Gemalto SA Method, server and telecommunications system for establishing, through an OTA server, a secured communication channel between an administrative agent comprised in a device and a third party server
WO2016007333A1 (en) * 2014-07-09 2016-01-14 Seven Networks, Inc. Secure handling of secure socket layer ("ssl") traffic
US20160012399A1 (en) * 2014-07-09 2016-01-14 Uniloc Luxembourg S.A. Secure two-stage transactions
TWI543570B (zh) * 2014-08-14 2016-07-21 明基電通股份有限公司 傳送郵件資料的系統及其方法
KR102208072B1 (ko) * 2014-09-01 2021-01-27 삼성전자주식회사 데이터 처리 시스템
EP3201783B1 (en) * 2014-09-29 2020-11-11 Akamai Technologies, Inc. Https request enrichment
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10063590B1 (en) * 2015-04-23 2018-08-28 Amazon Technologies, Inc. Secure message protocol
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US10091649B2 (en) 2015-07-12 2018-10-02 Qualcomm Incorporated Network architecture and security with encrypted client device contexts
US10904332B2 (en) 2015-12-29 2021-01-26 Akamai Technologies, Inc. Caching content securely within an edge environment
US10904229B2 (en) 2015-12-29 2021-01-26 Akamai Technologies, Inc. Caching content securely within an edge environment, with pre-positioning
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
CN107070998B (zh) * 2017-03-20 2019-11-29 广东工业大学 一种安全的物联网通讯协议及方法
US10936711B2 (en) 2017-04-18 2021-03-02 Intuit Inc. Systems and mechanism to control the lifetime of an access token dynamically based on access token use
CN107197000B (zh) * 2017-05-04 2020-07-31 微梦创科网络科技(中国)有限公司 静态动态混合缓存方法、装置及系统
GB201710168D0 (en) * 2017-06-26 2017-08-09 Microsoft Technology Licensing Llc Introducing middleboxes into secure communications between a client and a sever
LT3767494T (lt) 2017-08-28 2023-03-10 Bright Data Ltd. Būdas pagerinti turinio parsisiuntimą, pasirenkant tunelinius įrenginius
US10904224B2 (en) 2017-09-29 2021-01-26 Rolls-Royce Corporation Aircraft engine monitoring system
US10635829B1 (en) 2017-11-28 2020-04-28 Intuit Inc. Method and system for granting permissions to parties within an organization
US11416852B1 (en) * 2017-12-15 2022-08-16 Worldpay, Llc Systems and methods for generating and transmitting electronic transaction account information messages
US10778642B2 (en) 2017-12-23 2020-09-15 Mcafee, Llc Decrypting transport layer security traffic without man-in-the-middle proxy
US10911409B2 (en) 2018-05-21 2021-02-02 Cisco Technology, Inc. Engagement and disengagement of transport layer security proxy services with encrypted handshaking
US11057157B2 (en) * 2018-06-29 2021-07-06 Hewlett Packard Enterprise Development Lp Transmission frame counter
CN109152091B (zh) * 2018-10-12 2022-02-15 广州雷迅创新科技有限公司 一种可用于无人机集群控制的通信系统
CN109327520B (zh) * 2018-10-19 2021-04-30 中国银行股份有限公司 建立终端与服务器节点连接的方法及装置
CN111355695B (zh) * 2018-12-24 2022-07-01 中移(杭州)信息技术有限公司 一种安全代理方法和装置
CN109818736A (zh) * 2018-12-24 2019-05-28 顺丰科技有限公司 Ssl解密装置、解密系统、解密方法
EP3780557B1 (en) 2019-02-25 2023-02-15 Bright Data Ltd. System and method for url fetching retry mechanism
EP4030318A1 (en) 2019-04-02 2022-07-20 Bright Data Ltd. System and method for managing non-direct url fetching service
CN110233774B (zh) * 2019-05-28 2020-12-29 华中科技大学 一种Socks代理服务器的探测方法、分布式探测方法和系统
CN110730168B (zh) * 2019-09-29 2022-06-14 佛山市兴颂机器人科技有限公司 一种通信控制方法、装置及服务端设备
CN110855700A (zh) * 2019-11-20 2020-02-28 杭州端点网络科技有限公司 一种跨公网实现多云管控的安全认证方法
CN111585976B (zh) * 2020-04-09 2021-11-23 北京理工大学 通信方法、装置、存储介质和电子设备
US11411997B2 (en) * 2020-08-13 2022-08-09 Salesforce, Inc. Active fingerprinting for transport layer security (TLS) servers
CN112511377B (zh) * 2020-11-16 2022-02-01 成都云智天下科技股份有限公司 一种基于arq和udp协议的tcp网络加速方法
CN113518080B (zh) * 2021-06-23 2021-11-19 北京观成科技有限公司 一种tls加密流量检测方法、装置和电子设备
CN114499848B (zh) * 2022-01-26 2023-05-30 无锡融卡科技有限公司 会话密钥生成装置及方法
US11895182B1 (en) 2023-01-23 2024-02-06 Bank Of America Corporation Systems, methods, and apparatuses for dynamically determining data center transmissions by implementing load balancers in an electronic network

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345288B1 (en) * 1989-08-31 2002-02-05 Onename Corporation Computer-based communication system and method using metadata defining a control-structure
FR2686755A1 (fr) * 1992-01-28 1993-07-30 Electricite De France Procede de chiffrement de messages transmis entre reseaux interconnectes, appareil de chiffrement et dispositif de communication de donnees chiffrees mettant en óoeuvre un tel procede.
JPH05281906A (ja) * 1992-04-02 1993-10-29 Fujitsu Ltd 暗号鍵共有方式
US5436972A (en) * 1993-10-04 1995-07-25 Fischer; Addison M. Method for preventing inadvertent betrayal by a trustee of escrowed digital secrets
GB2288519A (en) * 1994-04-05 1995-10-18 Ibm Data encryption
JPH09510596A (ja) * 1994-06-08 1997-10-21 エイチイー・ホールディングス・インコーポレーテッド・ディー ビーエー・ヒューズ・エレクトロニクス ハイブリッドネットワークアクセスのための装置および方法
US5566297A (en) * 1994-06-16 1996-10-15 International Business Machines Corporation Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments
US5553083B1 (en) * 1995-01-19 2000-05-16 Starburst Comm Corp Method for quickly and reliably transmitting frames of data over communications links
US5673319A (en) * 1995-02-06 1997-09-30 International Business Machines Corporation Block cipher mode of operation for secure, length-preserving encryption
US5657390A (en) * 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
US5754651A (en) * 1996-05-31 1998-05-19 Thomson Consumer Electronics, Inc. Processing and storage of digital data and program specific information
US5822531A (en) * 1996-07-22 1998-10-13 International Business Machines Corporation Method and system for dynamically reconfiguring a cluster of computer systems
US5692124A (en) * 1996-08-30 1997-11-25 Itt Industries, Inc. Support of limited write downs through trustworthy predictions in multilevel security of computer network communications
US5884316A (en) 1996-11-19 1999-03-16 Microsoft Corporation Implicit session context system with object state cache
US6125186A (en) * 1996-11-28 2000-09-26 Fujitsu Limited Encryption communication system using an agent and a storage medium for storing that agent
US6029245A (en) * 1997-03-25 2000-02-22 International Business Machines Corporation Dynamic assignment of security parameters to web pages
US6038677A (en) * 1997-03-31 2000-03-14 International Business Machines Corporation Automatic resource group formation and maintenance in a high availability cluster configuration
US6317729B1 (en) * 1997-04-08 2001-11-13 Linda J. Camp Method for certifying delivery of secure electronic transactions
JP3354433B2 (ja) * 1997-04-25 2002-12-09 株式会社日立製作所 ネットワーク通信システム
US5907678A (en) 1997-05-07 1999-05-25 International Business Machines Corporation Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6199110B1 (en) 1997-05-30 2001-03-06 Oracle Corporation Planned session termination for clients accessing a resource through a server
US6490610B1 (en) 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
JP3589863B2 (ja) * 1997-07-23 2004-11-17 株式会社日立製作所 構造体および摩擦攪拌接合方法
US5991810A (en) * 1997-08-01 1999-11-23 Novell, Inc. User name authentication for gateway clients accessing a proxy cache server
US6061796A (en) * 1997-08-26 2000-05-09 V-One Corporation Multi-access virtual private network
US6288739B1 (en) * 1997-09-05 2001-09-11 Intelect Systems Corporation Distributed video communications system
US6141749A (en) * 1997-09-12 2000-10-31 Lucent Technologies Inc. Methods and apparatus for a computer network firewall with stateful packet filtering
US6094485A (en) * 1997-09-18 2000-07-25 Netscape Communications Corporation SSL step-up
US6119230A (en) 1997-10-01 2000-09-12 Novell, Inc. Distributed dynamic security capabilities
US5996086A (en) 1997-10-14 1999-11-30 Lsi Logic Corporation Context-based failover architecture for redundant servers
US6145089A (en) 1997-11-10 2000-11-07 Legato Systems, Inc. Server fail-over system
US6148405A (en) * 1997-11-10 2000-11-14 Phone.Com, Inc. Method and system for secure lightweight transactions in wireless data networks
US6070245A (en) * 1997-11-25 2000-05-30 International Business Machines Corporation Application interface method and system for encryption control
US6018805A (en) 1997-12-15 2000-01-25 Recipio Transparent recovery of distributed-objects using intelligent proxies
US6333983B1 (en) * 1997-12-16 2001-12-25 International Business Machines Corporation Method and apparatus for performing strong encryption or decryption data using special encryption functions
US6385596B1 (en) * 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US6263437B1 (en) * 1998-02-19 2001-07-17 Openware Systems Inc Method and apparatus for conducting crypto-ignition processes between thin client devices and server devices over data networks
US5974144A (en) * 1998-02-25 1999-10-26 Cipheractive Ltd. System for encryption of partitioned data blocks utilizing public key methods and random numbers
US6185695B1 (en) 1998-04-09 2001-02-06 Sun Microsystems, Inc. Method and apparatus for transparent server failover for highly available objects
US6185567B1 (en) * 1998-05-29 2001-02-06 The Trustees Of The University Of Pennsylvania Authenticated access to internet based research and data services
US7025209B2 (en) * 1998-05-29 2006-04-11 Palmsource, Inc. Method and apparatus for wireless internet access
US6505253B1 (en) * 1998-06-30 2003-01-07 Sun Microsystems Multiple ACK windows providing congestion control in reliable multicast protocol
US6816968B1 (en) * 1998-07-10 2004-11-09 Silverbrook Research Pty Ltd Consumable authentication protocol and system
US6119244A (en) 1998-08-25 2000-09-12 Network Appliance, Inc. Coordinating persistent status information with multiple file servers
US6351539B1 (en) * 1998-09-18 2002-02-26 Integrated Device Technology, Inc. Cipher mixer with random number generator
US6317831B1 (en) * 1998-09-21 2001-11-13 Openwave Systems Inc. Method and apparatus for establishing a secure connection over a one-way data path
US6178441B1 (en) 1998-09-21 2001-01-23 International Business Machines Corporation Method and system in a computer network for the reliable and consistent ordering of client requests
US6606663B1 (en) * 1998-09-29 2003-08-12 Openwave Systems Inc. Method and apparatus for caching credentials in proxy servers for wireless user agents
US6519636B2 (en) * 1998-10-28 2003-02-11 International Business Machines Corporation Efficient classification, manipulation, and control of network transmissions by associating network flows with rule based functions
US6502135B1 (en) * 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US6826616B2 (en) * 1998-10-30 2004-11-30 Science Applications International Corp. Method for establishing secure communication link between computers of virtual private network
US6275588B1 (en) * 1998-11-12 2001-08-14 I-Data International A/S Apparatus and method for performing and controlling encryption/decryption for data to be transmitted on local area network
US6006259A (en) * 1998-11-20 1999-12-21 Network Alchemy, Inc. Method and apparatus for an internet protocol (IP) network clustering system
US6078957A (en) * 1998-11-20 2000-06-20 Network Alchemy, Inc. Method and apparatus for a TCP/IP load balancing and failover process in an internet protocol (IP) network clustering system
US6643260B1 (en) * 1998-12-18 2003-11-04 Cisco Technology, Inc. Method and apparatus for implementing a quality of service policy in a data communications network
US7430757B1 (en) * 1999-01-08 2008-09-30 International Business Machines Corporation Oblivious proxying using a secure coprocessor
US20030167403A1 (en) * 1999-03-02 2003-09-04 Mccurley Kevin Snow Secure user-level tunnels on the internet
US6415031B1 (en) * 1999-03-12 2002-07-02 Diva Systems Corporation Selective and renewable encryption for secure distribution of video on-demand
US6192417B1 (en) * 1999-03-30 2001-02-20 International Business Machines Corporation Multicast cluster servicer for communicating amongst a plurality of nodes without a dedicated local area network
US6792424B1 (en) * 1999-04-23 2004-09-14 International Business Machines Corporation System and method for managing authentication and coherency in a storage area network
US7197547B1 (en) 1999-05-11 2007-03-27 Andrew Karl Miller Load balancing technique implemented in a data network device utilizing a data cache
EP1063811B1 (en) * 1999-06-22 2008-08-06 Hitachi, Ltd. Cryptographic apparatus and method
US6505192B1 (en) * 1999-08-12 2003-01-07 International Business Machines Corporation Security rule processing for connectionless protocols
US6754832B1 (en) * 1999-08-12 2004-06-22 International Business Machines Corporation Security rule database searching in a network security environment
US6775772B1 (en) * 1999-10-12 2004-08-10 International Business Machines Corporation Piggy-backed key exchange protocol for providing secure low-overhead browser connections from a client to a server using a trusted third party
US6449719B1 (en) * 1999-11-09 2002-09-10 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream
US7526533B1 (en) 1999-11-30 2009-04-28 Cisco Technology, Inc. Active call context reconstruction for primary/backup resource manager servers
US20020073167A1 (en) 1999-12-08 2002-06-13 Powell Kyle E. Internet content delivery acceleration system employing a hybrid content selection scheme
US6832316B1 (en) * 1999-12-22 2004-12-14 Intertrust Technologies, Corp. Systems and methods for protecting data secrecy and integrity
US7954144B1 (en) 2000-01-18 2011-05-31 Novell, Inc. Brokering state information and identity among user agents, origin servers, and proxies
US7024692B1 (en) * 2000-01-21 2006-04-04 Unisys Corporation Non pre-authenticated kerberos logon via asynchronous message mechanism
US20020023209A1 (en) * 2000-02-14 2002-02-21 Lateca Computer Inc. N.V.United Encryption and decryption of digital messages in packet transmitting networks
US7058723B2 (en) * 2000-03-14 2006-06-06 Adaptec, Inc. Congestion control for internet protocol storage
US6947992B1 (en) 2000-05-01 2005-09-20 International Business Machines Corporation Maintaining HTTP session affinity in a cluster environment
US20020083148A1 (en) 2000-05-12 2002-06-27 Shaw Venson M. System and method for sender initiated caching of personalized content
US6766373B1 (en) * 2000-05-31 2004-07-20 International Business Machines Corporation Dynamic, seamless switching of a network session from one connection route to another
US6894976B1 (en) * 2000-06-15 2005-05-17 Network Appliance, Inc. Prevention and detection of IP identification wraparound errors
US20080040550A1 (en) 2000-07-07 2008-02-14 Lindner David J Method and apparatus for providing enhanced access to a lightweight directory access protocol (ldap) directory server
EP1305931B1 (en) * 2000-08-04 2006-06-28 Avaya Technology Corp. Method and system for demand driven recognition of connection oriented transactions
US7046802B2 (en) * 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
US7304951B2 (en) * 2000-11-21 2007-12-04 North Carolina State University Methods and systems for rate-based flow control between a sender and a receiver
US20020099829A1 (en) 2000-11-27 2002-07-25 Richards Kenneth W. Filter proxy system and method
US6931128B2 (en) * 2001-01-16 2005-08-16 Microsoft Corporation Methods and systems for generating encryption keys using random bit generators
US7360075B2 (en) 2001-02-12 2008-04-15 Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US7353380B2 (en) 2001-02-12 2008-04-01 Aventail, Llc, A Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US7383329B2 (en) 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US7269736B2 (en) * 2001-02-28 2007-09-11 Microsoft Corporation Distributed cryptographic methods and arrangements
US7870258B2 (en) 2001-08-08 2011-01-11 Microsoft Corporation Seamless fail-over support for virtual interface architecture (VIA) or the like
US7028089B2 (en) 2001-09-21 2006-04-11 International Business Machines Corporation Method and apparatus for caching subscribed and non-subscribed content in a network data processing system
US7631084B2 (en) * 2001-11-02 2009-12-08 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
US7149809B2 (en) 2001-11-13 2006-12-12 One Touch Systems System for reducing server loading during content delivery
US7296077B2 (en) 2002-12-12 2007-11-13 International Business Machines Corporation Method and system for web-based switch-user operation
US7346925B2 (en) 2003-12-11 2008-03-18 Microsoft Corporation Firewall tunneling and security service
US20050273849A1 (en) * 2004-03-11 2005-12-08 Aep Networks Network access using secure tunnel
US7665127B1 (en) 2004-06-30 2010-02-16 Jp Morgan Chase Bank System and method for providing access to protected services
US20060155857A1 (en) 2005-01-06 2006-07-13 Oracle International Corporation Deterministic session state management within a global cache array
US20060291452A1 (en) * 2005-06-24 2006-12-28 Motorola, Inc. Method and apparatus for providing reliable communications over an unreliable communications channel
CA2513016A1 (en) 2005-07-22 2007-01-22 Research In Motion Limited A secure method of synchronizing cache contents of a mobile browser with a proxy server
CN101984778B (zh) 2008-01-26 2014-08-13 思杰系统有限公司 用于细粒度策略驱动的cookie代理的系统和方法
US20120023241A1 (en) 2010-07-26 2012-01-26 Cisco Technology, Inc. SSL Cache Session Selection
US8762718B2 (en) * 2012-08-03 2014-06-24 Palo Alto Research Center Incorporated Broadcast deduplication for satellite broadband

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008538266A (ja) * 2005-03-10 2008-10-16 インテル コーポレイション 非互換的トランスポートのセキュリティプロトコル
JP4712861B2 (ja) * 2005-03-10 2011-06-29 インテル コーポレイション 非互換的トランスポートのセキュリティプロトコル
JP2015505994A (ja) * 2011-12-16 2015-02-26 アカマイ テクノロジーズ インコーポレイテッド ローカルにアクセス可能な秘密鍵を用いないssl接続の終了

Also Published As

Publication number Publication date
US20130346739A1 (en) 2013-12-26
WO2002065650A2 (en) 2002-08-22
US8533457B2 (en) 2013-09-10
WO2002065650A3 (en) 2003-03-13
CA2438180A1 (en) 2002-08-22
US20080104390A1 (en) 2008-05-01
EP1362427A2 (en) 2003-11-19
US7870380B2 (en) 2011-01-11
US20110173436A1 (en) 2011-07-14
US7360075B2 (en) 2008-04-15
AU2002236978A1 (en) 2002-08-28
US9467290B2 (en) 2016-10-11
US20020112152A1 (en) 2002-08-15

Similar Documents

Publication Publication Date Title
JP2004525558A (ja) 信頼性のないプロトコルを利用して確実なストリーミングデータ送信機能を提供するための方法および装置
EP3635939B1 (en) Seamless mobility and session continuity with tcp mobility option
US8984268B2 (en) Encrypted record transmission
US9813520B2 (en) Distributed cache for state transfer operations
US8510549B2 (en) Transmission of packet data over a network with security protocol
US7149892B2 (en) Secure sockets layer proxy architecture
US7228412B2 (en) Bufferless secure sockets layer architecture
US7853781B2 (en) Load balancing secure sockets layer accelerator
US20030014623A1 (en) Secure sockets layer cut through architecture
Mosko et al. Mobile sessions in content-centric networks