特許第5744172号(P5744172)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エフ5 ネットワークス、インコーポレイテッドの特許一覧

特許5744172中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ
<>
  • 特許5744172-中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ 図000002
  • 特許5744172-中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ 図000003
  • 特許5744172-中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ 図000004
  • 特許5744172-中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ 図000005
  • 特許5744172-中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ 図000006
  • 特許5744172-中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ 図000007
  • 特許5744172-中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ 図000008
  • 特許5744172-中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ 図000009
  • 特許5744172-中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5744172
(24)【登録日】2015年5月15日
(45)【発行日】2015年7月1日
(54)【発明の名称】中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ
(51)【国際特許分類】
   H04L 9/08 20060101AFI20150611BHJP
   H04L 9/14 20060101ALI20150611BHJP
【FI】
   H04L9/00 601C
   H04L9/00 641
【請求項の数】20
【全頁数】31
(21)【出願番号】特願2013-501341(P2013-501341)
(86)(22)【出願日】2011年3月18日
(65)【公表番号】特表2013-523050(P2013-523050A)
(43)【公表日】2013年6月13日
(86)【国際出願番号】US2011029079
(87)【国際公開番号】WO2011116342
(87)【国際公開日】20110922
【審査請求日】2014年3月18日
(31)【優先権主張番号】61/315,857
(32)【優先日】2010年3月19日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506026368
【氏名又は名称】エフ5 ネットワークス、インコーポレイテッド
(74)【代理人】
【識別番号】100092093
【弁理士】
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100082005
【弁理士】
【氏名又は名称】熊倉 禎男
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100158551
【弁理士】
【氏名又は名称】山崎 貴明
(72)【発明者】
【氏名】ボレイ ベン サピン
(72)【発明者】
【氏名】ハンセン ディヴィッド アラン
(72)【発明者】
【氏名】シュミット ディヴィッド ディーン
(72)【発明者】
【氏名】ホーソン ジョナサン ミニ
【審査官】 青木 重徳
(56)【参考文献】
【文献】 特開2008−109404(JP,A)
【文献】 特表2009−505493(JP,A)
【文献】 国際公開第2009/081502(WO,A1)
【文献】 米国特許出願公開第2007/0255784(US,A1)
【文献】 米国特許出願公開第2008/0046727(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
H04L 9/14
(57)【特許請求の範囲】
【請求項1】
クライアント装置と複数のサーバ装置との間に配置されるトラフィック管理装置であって、
ネットワークを通じてデータを送信及び受信する送受信機と、
以下の動作を実行するよう作動するプロセッサと、
を備え、前記動作が、
前記クライアント装置と前記複数のサーバ装置の第1サーバ装置との間に設定された終端間暗号化セッションに関連付けられるセッション鍵を取得する段階と、
前記終端間暗号化セッションの終端間暗号化接続を通じて前記クライアント装置に再ネゴシエーション要求を送信して、前記終端間暗号化接続の再ネゴシエーションを要求する段階と、
前記終端間暗号化接続を通じて前記クライアント装置によって送信されたハンドシェークメッセージの第2セットを傍受する段階と、
を含み、前記ハンドシェークメッセージの第2セットは、前記第1サーバ装置にアドレス指定されており、前記ハンドシェークメッセージの第2セットは、前記再ネゴシエーション要求に応答して送信され、
前記動作が更に、
前記セッション鍵に基づいて生成された1つ又はそれ以上の接続鍵を使用して、前記ハンドシェークメッセージの傍受された第2セットを解読する段階と、
前記ハンドシェークメッセージの解読された第2セットを前記複数のサーバ装置の選択された第2サーバ装置にリダイレクトし、これによって前記選択された第2サーバ装置が、前記終端間暗号化接続におけるエンドポイントとして前記第1サーバ装置に置き換えられるようにする段階と、
を含む、トラフィック管理装置。
【請求項2】
前記セッション鍵を取得する段階が、
前記選択された第2サーバ装置に関連付けられる秘密鍵を受信する段階と、
前記選択された第2サーバ装置に関連付けられる前記秘密鍵を使用して前記ハンドシェークメッセージの第2セットから前記暗号化セッションに関連付けられる秘密データを抽出する段階と、
前記ハンドシェークメッセージの第2セットから抽出された前記秘密データに部分的に基づいて、前記暗号化セッションに関連付けられる第2セッション鍵を生成する段階と、
を更に含む、請求項1に記載のトラフィック管理装置。
【請求項3】
前記動作が、
前記クライアント装置によって前記終端間暗号化接続を通じて送信され且つ前記第1サーバ装置にアドレス指定されているメッセージを傍受する段階と、
前記傍受されたメッセージを前記選択された第2サーバ装置にリダイレクトする段階と、
を更に含む、請求項1に記載のトラフィック管理装置。
【請求項4】
前記動作が、
前記クライアント装置によって前記終端間暗号化接続を通じて送信され且つ前記第1サーバ装置にアドレス指定されているメッセージを傍受する段階と、
前記第2セッション鍵に基づいて生成された1つ又はそれ以上の接続鍵を使用して、前記傍受されたメッセージ内のペイロードを解読する段階と、
前記解読されたペイロードを修正する段階と、
前記第2セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵を使用して前記修正されたペイロードを暗号化する段階と、
前記暗号化修正済みペイロードを前記終端間暗号化接続を通じて前記選択された第2サーバ装置に提供する段階と、
を更に含む、請求項1に記載のトラフィック管理装置。
【請求項5】
前記第2サーバが、
前記セッション鍵から生成された前記1つ又はそれ以上の接続鍵を使用して、傍受されたアプリケーションプロトコルレイヤメッセージからヘッダを抽出する段階と、
前記ヘッダにおいて要求された前記コンテンツが前記第2サーバ装置に位置付けられることを決定する段階と、
によって決定された基準に基づいて選択される、請求項1に記載のトラフィック管理装置。
【請求項6】
前記トラフィック管理装置が前記選択された第2サーバ装置に近接させてローカルに設置されたサーバ側トラフィック管理装置を含み、前記選択された第2サーバ装置から遠隔にクライアント側トラフィック管理装置が設置され且つ前記クライアント装置と前記サーバ側トラフィック管理装置との間に配置され、これによって前記終端間暗号化接続が、前記クライアント側トラフィック管理装置を介して通るようになり、
前記クライアント側トラフィック管理装置が、
前記サーバ側トラフィック管理装置から前記第2セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵を受信する段階と、
前記終端間暗号化接続を通じて前記クライアント装置から前記第1サーバ装置に送信された暗号化データを傍受する段階と、
前記第2セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵によって前記暗号化データを解読する段階と、
前記解読されたデータを修正する段階と、
前記第2セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵によって前記修正されたデータを再暗号化する段階と、
前記再暗号化された修正済みデータを前記第1サーバ装置に向けて送信する段階と、を含む動作を実行し、前記サーバ側トラフィック管理装置は、前記修正済みデータを傍受し解読し、前記修正済みデータを前記選択された第2サーバ装置にリダイレクトする、請求項1に記載のトラフィック管理装置。
【請求項7】
前記終端間暗号化セッションが設定されたときに、前記クライアント側トラフィック管理装置が、ボーダー・ゲートウェイ・プロトコル(BGP)を使用して前記クライアント装置と前記第1サーバ装置の間に前記クライアント側トラフィック管理装置自体を挿入する、請求項6に記載のトラフィック管理装置。
【請求項8】
複数のサーバ装置と、
前記複数のサーバ装置に近接させてローカルに設置され、前記複数のサーバ装置と通信するトラフィック管理装置と、
を備えるシステムであって、前記トラフィック管理装置が、ネットワークを通じてクライアント装置と通信し、前記トラフィック管理装置が、
前記クライアント装置と前記複数のサーバ装置の第1サーバ装置との間に設定された終端間暗号化セッションに関連付けられるセッション鍵を取得する段階と、
前記終端間暗号化セッションの終端間暗号化接続を通じて前記クライアント装置に再ネゴシエーション要求を送信して、前記終端間暗号化接続の再ネゴシエーションを要求する段階と、
前記終端間暗号化接続を通じて前記クライアント装置によって送信されたハンドシェークメッセージの第2セットを傍受する段階と、
を含み、前記ハンドシェークメッセージの第2セットは、前記第1サーバ装置にアドレス指定されており、前記ハンドシェークメッセージの第2セットは、前記再ネゴシエーション要求に応答して送信され、
前記動作が更に、
前記セッション鍵に基づいて生成された1つ又はそれ以上の接続鍵を使用して、前記ハンドシェークメッセージの傍受された第2セットを解読する段階と、
前記ハンドシェークメッセージの解読された第2セットを前記複数のサーバ装置の選択された第2サーバ装置にリダイレクトし、これによって前記選択された第2サーバ装置が、前記終端間暗号化接続におけるエンドポイントとして前記第1サーバ装置に置き換えられるようにする段階と、
を含む動作を実行するよう構成されている、システム。
【請求項9】
前記動作が、
前記選択された第2サーバ装置に関連付けられる秘密鍵を受信する段階と、
前記選択された第2サーバ装置に関連付けられる前記秘密鍵を使用して前記ハンドシェークメッセージの第2セットから前記暗号化セッションに関連付けられる秘密データを抽出する段階と、
前記ハンドシェークメッセージの第2セットから抽出された前記秘密データに部分的に基づいて、前記暗号化セッションに関連付けられる第2セッション鍵を生成する段階と、
を更に含む、請求項8に記載のシステム。
【請求項10】
セッション鍵を取得する段階が、
前記クライアント装置によって前記終端間暗号化接続を通じて送信され且つ前記第1サーバ装置にアドレス指定されているメッセージを傍受する段階と、
前記傍受されたメッセージを前記選択された第2サーバ装置にリダイレクトする段階と、
を更に含む、請求項9に記載のシステム。
【請求項11】
前記動作が、
前記クライアント装置によって前記終端間暗号化接続を通じて送信され且つ前記第1サーバ装置にアドレス指定されているメッセージを傍受する段階と、
前記第2セッション鍵に基づいて生成された1つ又はそれ以上の接続鍵を使用して、前記傍受されたメッセージ内のペイロードを解読する段階と、
前記解読されたペイロードを修正する段階と、
前記第2セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵を使用して前記修正されたペイロードを暗号化する段階と、
前記暗号化修正済みペイロードを前記終端間暗号化接続を通じて前記選択された第2サーバ装置に提供する段階と、
を更に含む、請求項9に記載のシステム。
【請求項12】
前記第2サーバが、
前記セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵を使用して、傍受されたアプリケーションレイヤプロトコルメッセージからヘッダを抽出する段階と、
前記ヘッダにおいて要求された前記コンテンツが前記第2サーバ装置に位置付けられることを決定する段階と、
によって決定された基準に基づいて選択される、請求項8に記載のシステム。
【請求項13】
前記トラフィック管理装置が前記選択された第2サーバ装置に近接させてローカルに設置され、前記選択された第2サーバ装置から遠隔にクライアント側トラフィック管理装置が設置され且つ前記クライアント装置と前記トラフィック管理装置との間に配置され、これによって前記終端間暗号化接続が、前記クライアント側トラフィック管理装置を介して通るようになり、前記クライアント側トラフィック管理装置が、
前記トラフィック管理装置から前記第2セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵を受信する段階と、
前記終端間暗号化接続を通じて前記クライアント装置から前記選択された第2サーバ装置に送信された暗号化データを傍受する段階と、
前記第2セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵によって前記暗号化データを解読する段階と、
前記解読されたデータを増補する段階と、
前記第2セッション鍵によって前記修正されたデータを再暗号化する段階と、
前記再暗号化された修正済みデータを前記第1サーバ装置に向けて送信する段階と、含む動作を実行し、前記トラフィック管理装置は、前記修正済みデータを傍受し解読し、前記修正済みデータを前記選択された第2サーバ装置にリダイレクトする、請求項8に記載のシステム。
【請求項14】
前記終端間暗号化セッションが設定されたときに、前記クライアント側トラフィック管理装置が、ボーダー・ゲートウェイ・プロトコル(BGP)を使用して前記クライアント装置と前記第1サーバ装置の間に前記クライアント側トラフィック管理装置自体を挿入する、請求項13に記載のシステム。
【請求項15】
前記ハンドシェークメッセージが、前記サーバ装置に関連付けられる公開鍵によって暗号化された前記クライアント装置によって生成される乱数を少なくとも含む、請求項8に記載のシステム。
【請求項16】
前記トラフィック管理装置は、
前記クライアント装置から前記選択された第2サーバ装置にアドレス指定されているコンテンツ要求を受信する段階と、
前記コンテンツ要求を前記選択された第2サーバ装置に送信することなく前記コンテンツ要求に応答する段階と、
を含む動作を更に実行する、請求項8に記載のシステム。
【請求項17】
プロセッサ可読命令を記憶するプロセッサ可読記憶媒体であって、前記プロセッサ可読命令は、プロセッサによって実行されたときに、
クライアント装置と複数のサーバ装置の第1サーバ装置との間に設定された終端間暗号化セッションに関連付けられるセッション鍵を取得する段階と、
前記終端間暗号化セッションの終端間暗号化接続を通じて前記クライアント装置に再ネゴシエーション要求を送信して、前記終端間暗号化接続の再ネゴシエーションを要求する段階と、
前記終端間暗号化接続を通じて前記クライアント装置によって送信されたハンドシェークメッセージの第2セットを傍受する段階と、
を含み、前記ハンドシェークメッセージの第2セットは、前記第1サーバ装置にアドレス指定されており、前記ハンドシェークメッセージの第2セットは、前記再ネゴシエーション要求に応答して送信され、
前記動作が更に、
前記セッション鍵に基づいて生成された1つ又はそれ以上の接続鍵を使用して、前記ハンドシェークメッセージの傍受された第2セットを解読する段階と、
前記ハンドシェークメッセージの解読された第2セットを前記複数のサーバ装置の選択された第2サーバ装置にリダイレクトし、これによって前記選択された第2サーバ装置が、前記終端間暗号化接続におけるエンドポイントとして前記第1サーバ装置に置き換えられるようにする段階と、
を含む動作を実行する、プロセッサ可読記憶媒体。
【請求項18】
前記セッション鍵を取得する段階が、
前記選択された第2サーバ装置に関連付けられる秘密鍵を受信する段階と、
前記選択された第2サーバ装置に関連付けられる前記秘密鍵を使用して前記ハンドシェークメッセージの第2セットから前記暗号化セッションに関連付けられる秘密データを抽出する段階と、
前記ハンドシェークメッセージの第2セットから抽出された前記秘密データに部分的に基づいて、前記暗号化セッションに関連付けられる第2セッション鍵を生成する段階と、
を更に含む、請求項17に記載のプロセッサ可読記憶媒体。
【請求項19】
前記プロセッサが前記選択された第2サーバ装置に近接させてローカルに設置され、前記選択された第2サーバ装置から遠隔にクライアント側トラフィック管理装置が設置され且つ前記クライアント装置と前記プロセッサとの間に配置され、これによって前記終端間暗号化接続が、前記クライアント側トラフィック管理装置を介して通るようになり、前記クライアント側トラフィック管理装置が、
前記プロセッサから前記第2セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵を受信する段階と、
前記終端間暗号化接続を通じて前記クライアント装置から前記第1サーバ装置に送信された暗号化データを傍受する段階と、
前記第2セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵によって前記暗号化データを解読する段階と、
前記解読されたデータを修正する段階と、
前記修正されたデータを前記第2セッション鍵に基づいて生成された前記1つ又はそれ以上の接続鍵によって再暗号化する段階と、
前記再暗号化された修正済みデータを前記第1サーバ装置に向けて送信する段階と、を含む動作を実行し、前記プロセッサは、前記修正されたデータを傍受し解読し、前記修正されたデータを前記選択された第2サーバ装置にリダイレクトする、請求項17に記載のプロセッサ可読記憶媒体。
【請求項20】
前記終端間暗号化セッションが設定されたときに、前記クライアント側トラフィック管理装置が、ボーダー・ゲートウェイ・プロトコル(BGP)を使用して前記クライアント装置と前記第1サーバ装置の間に前記クライアント側トラフィック管理装置自体を挿入する、請求項17に記載のプロセッサ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、その利益が本明細書に請求項に記載され且つ引用により本明細書に組み入れられる、2010年3月19日に出願された名称「中間ストリーム再ネゴシエーションを介したプロキシSSLハンドオフ」の米国仮出願シリアル番号第61/315,857号の利益を主張する。
【0002】
本発明は、一般に、ネットワーク通信に関し、より詳細には、限定ではないが、クライアント/サーバ終端間暗号化接続内での再ネゴシエーションの管理に関する。
【背景技術】
【0003】
ハイパーテキスト転送プロトコル(HTTP)を通じて提供される企業内のアプリケーションの数が益々増えている。これらのアプリケーションの多くは、クライアント装置とホストされるウェブサイトとの間でセキュアな通信を提供する。これらのアプリケーションは、イントラネットポータル、ウェブメール、フロント−オフィス(顧客窓口部門)アプリケーション、バック−オフィス(事務管理部門)アプリケーション、及び同様のものを含む。これらのアプリケーションの多くはまた、仮想プライベートネットワーク(VPN)トンネルを介して、又はパブリックネットワークを通じて直接、或いは同様のものの何れかによって、支店からアクセスすることができる。これらのアプリケーションは、例えば本部内部のサーバ装置上で利用することができる。本部及び支店は、ファイアウォールの後方又は同様のものなどのセキュリティ境界の後方で保護されたコンピュータ装置のネットワークを含む。
【発明の概要】
【発明が解決しようとする課題】
【0004】
クライアント装置とサーバ装置との間のセキュア通信を提供する従来の方法は、暗号化セッションを設定するためにウェブブラウザ及びウェブサイトを利用する。暗号化セッションは、セキュアソケットレイヤ(SSL)プロトコル、トランスポート・レイヤ・セキュリティ(TLS)プロトコル、又は同様のものを含む多種多様なセキュア通信プロトコルを使用して実施することができる。このような暗号化セッションの管理は、特に、サーバ装置がクライアント装置によって必要とされる情報を持っていない場合、サーバ装置が故障した場合、或いはサーバ装置を異なるサーバ装置に置き換える必要がある場合に困難な場合がある。従って、本発明が実施することは、これらの考慮事項及びその他に関するものである。
【課題を解決するための手段】
【0005】
以下の図面を参照しながら非限定的かつ非包括的な実施形態について説明する。図面では、特に指定しない限り様々な図を通じて同じ参照番号が同じ部分を示す。
【0006】
ここで、本明細書で記載される実施形態をより良く理解するために、添付図面と関連して以下の詳細な説明を説明する。
【図面の簡単な説明】
【0007】
図1】種々の実施形態を実施するための環境を示す機能的ブロック図である。
図2】種々の実施形態を実施するシステムに含むことができるネットワーク装置の1つの実施形態を示す図である。
図3】種々の実施形態を実施するシステムに含むことができるサーバ装置の1つの実施形態を示す図である。
図4】終端間暗号化接続においてエンドポイントを置き換えるための処理の概要の1つの実施形態を全体的に示す論理フロー図である。
図5】終端間暗号化セッションに関連付けられるセッション鍵を生成するための処理の1つの実施形態を全体的に示す論理フロー図である。
図6】終端間暗号化接続におけるエンドポイントを第2サーバ装置に置き換えるための処理の1つの実施形態を全体的に示す論理フロー図である。
図7】暗号化接続を通じてクライアント側TMDとサーバ側TMDとの間で送信されたデータを拡張するための処理の1つの実施形態を全体的に示す論理フロー図である。
図8図4の処理によって全体的に使用可能な信号フロー図の1つの実施形態を示す図である。
図9】ボーダー・ゲートウェイ・プロトコル(BGP)を利用して、暗号化セッションのためのクライアント側トラフィック管理装置にトラフィックをルーティングする環境を示す機能的ブロック図である。
【発明を実施するための形態】
【0008】
以下の例示的な実施形態の詳細な説明では、本明細書の一部を形成し、説明する実施形態を実施できる実施例を例証として示す添付図面を参照する。説明する実施形態を当業者が実施できるように十分な詳細を提供しているが、本発明の技術的思想又は範囲から逸脱することなく他の実施形態を利用し、他の変更を行うことができる点は理解されたい。更に、「1つの実施形態」への言及は、可能性はあるものの、同じ又は単一の実施形態に関連付ける必要はない。従って、以下の詳細な説明を限定的な意味で捉えるべきではなく、説明する実施形態の範囲は添付の特許請求の範囲によってのみ定義される。
【0009】
本明細書及び特許請求の範囲を通じて、以下の用語は、文脈上特に指定しない限り、本明細書で明確に関連付ける意味になる。本明細書で使用される用語「or(又は)」とは、包括的な論理和演算子であり、文脈上別途明確に指示されない限り、用語「and/or(及び/又は)」に相当する。用語「based on(に基づいて)」とは、包括的ではなく、文脈上別途明確に指示されない限り、説明されていない付加的な要因に基づくことを可能にする。加えて、本明細書全体を通して、「a」、「an」、及び「the」の意味は、複数形の照応を含む。「in」の意味は、「in」及び「on」を含む。
【0010】
本明細書で使用されるアプリケーションレイヤは、ISO−OSI(国際標準化機構−開放型システム間相互接続)フレームワークによって定義される7レイヤプロトコルスタックのレイヤ5から7を示す。
【0011】
用語「ネットワーク接続」とは、ネットワークを通じてコンピュータ装置が別のコンピュータ装置と通信できるようにするリンク及び/又はソフトウェア要素の集合を示す。1つのこのようなネットワーク接続は、TCP接続とすることができる。TCP接続は、2つのネットワークノード間の仮想接続であり、典型的にはTCPハンドシェークプロトコルを介して確立される。TCPプロトコルは、インターネット・エンジニアリング・タスク・フォース(IETF)から入手可能なリクエスト・フォー・コメント(RFC)793においてより詳細に説明されており、その全体が引用により本明細書に組み入れられる。特定の経路又はリンクを「通じた」ネットワーク接続は、通信を確立及び/又は維持するために指定の経路又はリンクを利用するネットワーク接続を示す。「ノード」という用語は、典型的には1つ又はそれ以上の装置を相互接続するネットワーク要素、或いは複数のネットワークを示す。
【0012】
特許請求の範囲を含む本明細書で使用される用語「SSL」とは、SSL、TLS、DTLS、及びこれらから得られる全てのセキュア通信プロトコルを示す。SSLプロトコルは、Netscape Communications社のセキュアソケットレイヤ(SSL)バージョン3(1996年11月)において説明されており、TLSプロトコルは、SSLから得られ、IETFから入手可能なDierks T.及びAllen C.による「TLSプロトコルバージョン1.0」RFC2246(1999年1月)において説明されている。データグラム・トランスポート・レイヤ・セキュリティ(DTLS)プロトコルは、TLSプロトコルに基づき、IETFから入手可能なRescorla,E.及びModadugu,N.による「データグラムトランスポートレイヤセキュリティ」RFC4347(2006年4月)で説明されている。これらの文書の各々は、その全体が引用により組み入れられる。SSL接続は、SSLプロトコルから得られる暗号情報によって保護されるネットワーク接続である。SSLプロトコルは、アプリケーションレイヤ(OSIレイヤ5−7の1つ又はそれ以上など)とトランスポートレイヤ(OSIレイヤ4など)との間で機能する。SSLプロトコルは、ハイパーテキスト転送プロトコル(HTTP)、ライトウェイト・ディレクトリ・アクセス・プロトコル(LDAP)、インターネット・メッセージング・アクセス・プロトコル(IMAP)、又は同様のものなどのアプリケーションレイヤプロトコルのためのセキュリティを提供することができる。例えば、SSLを通じたHTTP(HTTPS)は、HTTPデータを保護するためにSSLプロトコルを利用する。SSLプロトコルは、セキュアデータを転送するために、アプリケーションレイヤプロトコルの代わりにTCP/IPを利用することができる。SSLプロトコルはまた、証明書を利用することができる。1つの実施形態では、証明書は、IETFから入手可能なRFC2549で説明されたようなX.509証明書である。
【0013】
特許請求の範囲を含む本明細書で使用される用語「サーバ装置」とは、物理的サーバ装置、或いは物理的サーバ装置上で実行される仮想サーバを示す。
【0014】
SSLセッションは、2つのエンドポイント間のネットワークを通じたセキュア接続を設定する。SSLセッションは、ゼロ又はそれ以上のSSL接続に関連付けることができる。SSLプロトコルは、SSLセッション及び/又はSSL接続を開始するためにSSLハンドシェークプロトコルを使用する。SSLセッションは、マスター鍵に関連付けられ、マスター鍵は、SSLハンドシェークプロトコルの1つの結果である。SSLハンドシェークプロトコルはまた、SSL接続を再ネゴシエーションするためのSSL再ハンドシェークプロトコルを含む。再ネゴシエーションされたSSL接続は、現在のSSLセッション又は別のSSLセッションに関連付けることができる。
【0015】
要約すると、SSLは、少なくとも4つのコンテンツのタイプ、すなわち、application_data(アプリケーション_データ)、alert(警報)、handshake(ハンドシェーク)、及びchange cipher spec(変更_暗号_仕様)をサポートする。alert、handshake、及びchange cipher specのコンテンツタイプは、SSLプロトコルを管理するためのメッセージに関連付けられる。例えば、SSL警報は、警報コンテンツタイプであり、とりわけ、エラー条件を信号送信するのに使用される。SSLは、他のコンテンツタイプの規定を有するが、これらの機能は通常は使用されない。
【0016】
SSLハンドシェークプロトコルは、警報、ハンドシェーク、及び/又はchange cipher specのコンテンツタイプの1つとすることができる一連のメッセージの交換及び処理を含む。1つ又はそれ以上のSSLハンドシェークメッセージは、ハンドシェークコンテンツタイプの1つ又はそれ以上のネットワーク記録内にカプセル化される。SSLハンドシェークメッセージはまた、関連するSSLハンドシェークタイプ、及び1つ又はそれ以上のデータフィールドを含む。
【0017】
SSLハンドシェークプロトコルは、通常、クライアント装置が、とりわけCLIENT−HELLO(クライアント−ハロー)メッセージ(例えば、「CLIENT−HELLO(クライアント−ハロー)」の関連するSSLハンドシェークタイプを備えたSSLハンドシェークメッセージ)内でランダムに生成されたデータをサーバ装置に送信することから始まる。サーバ装置は、とりわけSERVER−HELLO(サーバ−ハロー)メッセージ内でランダムに生成されたデータでCLIENT−HELLO(クライアント−ハロー)メッセージに応答する。加えて、サーバは、クライアントがサーバを認証するのに使用することができるサーバ証明書を提供することができる。更に、サーバは、サーバがクライアントを認証するのに使用することができるクライアント証明書を要求又は必要とすることができる。
【0018】
クライアント装置は、CLIENT−HELLO(クライアント−ハロー)及びSERVER−HELLO(サーバ−ハロー)メッセージにおいて交換されるランダムに生成されたデータを使用して、SSLセッションのためのプレマスターシークレット(pre−master secret)を生成する。1つの実施形態では、クライアント装置はまた、プレマスターシークレットに別の乱数を含むことができ、これは典型的にはパブリックネットワークを通じて平文では送信されない。次に、クライアント装置は、プレマスターシークレットをSSLハンドシェークメッセージでサーバ装置に送信する。1つの実施形態では、プレマスターシークレットは、サーバに関連付けられる公開鍵(サーバのSERVER−HELLO(サーバ−ハロー)メッセージから取得される)を使用して暗号化することができる。典型的には、プレマスターシークレットを含むSSLハンドシェークメッセージは、CLIENT−KEY−EXCHANGE(クライアント−鍵−交換)ハンドシェークメッセージである。クライアント装置及びサーバ装置の各々は、別々に、プレマスターシークレットを使用してマスターシークレットを生成する一連のステップを実行する。このマスターシークレットは、SSLセッションに関連付けられる。次に、クライアント装置及びサーバ装置の各々は別々に、マスターシークレットを使用して接続鍵を生成し、該接続鍵には、限定ではないが、関連するSSL接続を通じて伝送されるデータを暗号化及び解読するのに使用される暗号鍵及び/又は関連するSSL接続を通じて受信されたメッセージを検証するのに使用される認証鍵を含むことができる。次にクライアント装置及びサーバ装置は、接続鍵のそれぞれのインスタンスを使用して、互いに対して暗号化されたペイロードを含むメッセージを生成及び送信することができる。
【0019】
特許請求の範囲を含む本明細書で使用される用語「暗号化セッション」とは、2つのエンドポイント装置間のゼロ又はそれ以上の暗号化接続を示す。例示的な暗号化セッションは、SSL、TLS、及びDTLSセッションを含む。本明細書で使用される用語「暗号化接続」とは、SSL、TLS、及びDTLS接続などの暗号情報によって保護された何らかのネットワーク接続も示すが、他の暗号化接続も同様に企図される。暗号化接続は、暗号化接続を通じて伝送されたデータを暗号化及び解読するのに使用される暗号鍵、並びにTCPインターフェイスなどの下位レイヤにあるトランスポートプロトコルインターフェイスの参照を含む。
【0020】
本明細書で使用される語句「暗号化セッション/接続」とは、暗号化セッション又は暗号化接続の何れかを示す。
【0021】
本明細書で使用される語句「終端間暗号化セッション/接続」とは、両方のエンドポイント装置が暗号化セッション/接続を設定したときに他方のエンドポイント装置のアイデンティティを知っている場合の2つのエンドポイント装置間のセッション/接続を示す。
【0022】
本明細書で使用される語句「暗号化セッションを終了する」とは、暗号化セッションの2つのエンドポイントの1つであることを示す。同様に、語句「暗号化接続を終了する」とは、暗号化接続の2つのエンドポイントの1つであることを示す。暗号化セッション/接続のエンドポイントは、通常は暗号化データをその間で送信することができるクライアント装置及びサーバ装置と呼ばれる装置である。クライアント装置及びサーバ装置の実施例は、SSLクライアント及びSSLサーバである。本明細書で使用される語句「暗号化セッション/接続クライアント」とは、クライアント装置を示し、語句「暗号化セッション/接続サーバ」とは、サーバ装置を示す。
【0023】
本明細書で使用される語句「暗号化セッションを設定する」とは、暗号化セッションハンドシェークプロトコルに参加することを示す。語句「暗号化接続を設定する」とは、暗号化セッションのセッション鍵(暗号化セッションのマスター鍵としても知られる)に基づいて暗号化セッション内で暗号化接続を生成することを示す。1つの実施形態では、2つの装置が暗号化セッション/接続を設定し、暗号化セッション/接続のエンドポイントになる。付加的な装置はまた、任意選択的に、エンドポイントの一方又は両方と共に、或いは一方又は両方のエンドポイントの知識なしで、暗号化セッション/接続の設定に参加することができる。暗号化セッションハンドシェークプロトコルの1つの実施例はSSLハンドシェークプロトコルである。
【0024】
本明細書で使用される語句「帯域外」とは、クライアント装置とサーバ装置との間に設定された終端間暗号化セッション/接続とは別個の接続を通じてデータを送信するなどの現在の暗号化セッション/接続の外側でデータを送信することを示す。
【0025】
本明細書で使用される語句「秘密データ」とは、2つの装置間の暗号化セッションハンドシェークを可能にするデータを示す。秘密データは、例えば、上記に引用されたRFC2246で説明されるマスターシークレット及びプレマスターシークレットを含む。
【0026】
本明細書で使用される用語「ペイロード」とは、パケット内に含まれ且つパケットのパケットヘッダとは別個のデータを示す。
【0027】
この開示内容全体を通して、「CLIENT−HELLO(クライアント−ハロー)」などの特定のメッセージタイプが記載される場合、これらは、メッセージのタイプを例証するのに使用される実施例である点を理解されたい。これらの特定のメッセージは、1つの実施形態であるが、暗号化セッション/接続を設定及び/又は維持するのに使用される他の類似のメッセージも同様に考えられる。
【0028】
クライアント装置及び第1サーバ装置で終了された暗号化接続をクライアント装置及び第2サーバ装置で終了させる、暗号化接続を再設定するための機構を簡潔に説明する。当業者であれば、SSLセッションなどの暗号化セッション、及び暗号化セッション内に含まれるいずれの暗号化接続は、セッション/接続の持続時間において各エンドポイントのアイデンティティを保護するよう設計されていることは理解されるであろう。従って、設定された暗号化接続のエンドポイントを置き換えることができる開示された実施形態はこれまでのところ予期されていない。
【0029】
説明されるように、トラフィック管理装置(TMD)がクライアント装置と第1サーバ装置の間に配置される。クライアント装置と第1サーバ装置との間の終端間暗号化セッション/接続の設定の間、間に配置されたTMDが、暗号化セッション/接続に関する秘密情報にアクセスする。このような情報は、例えば、終端端暗号化セッション内の暗号化接続両端に亘って送信されるデータを暗号化及び解読するための接続鍵を決定するのに使用可能なプレマスターシークレットを含む。終端間暗号化セッション/接続のための秘密情報にアクセスすることによって、TMDは、暗号化接続を通じて送信されたデータの読み取り、傍受、増補、削除、遅延、切り取り、圧縮、拡張、加速、置き換え、或いは修正を行うことができる。
【0030】
幾つかの実施形態では、TMDは、終端間暗号化接続を再ネゴシエーションするための要求をクライアント装置に送信することができる。再ネゴシエーション要求は、例えばSSL HELLO REQUEST(SSLハロー要求)メッセージを含むことができる。クライアント装置の観点から、第1サーバ装置が既存の暗号化接続を再ネゴシエーションするようクライアント装置に要求しても、クライアント装置は通常、TMDが再ネゴシエーションを開始したことに気付いていないように見える。再ネゴシエーション要求に応答して、クライアント装置は、暗号化接続を通じて第1サーバ装置にアドレス指定されたCLIENT HELLO(クライアント ハロー)メッセージを送信することができる。1つの実施形態では、TMDは、CLIENT HELLO(クライアント ハロー)メッセージを傍受し、これを解読し、第2サーバ装置に向けてリダイレクトすることができる。同様に、クライアント装置によって送信された次のメッセージも第2サーバ装置に向けてリダイレクトすることができる。この結果、クライアント装置の観点からは、オリジナルの暗号化接続が第2サーバ装置と再設定されている。第1サーバ装置の観点からは、クライアント装置とのその暗号化接続は終了している。TMDの観点からは、クライアント装置と第1サーバ装置との間の既存の暗号化接続は、クライアント装置と第2サーバ装置との間の新しい暗号化接続に置き換えられている。1つの実施形態では、クライアント装置は、異なるサーバと暗号化接続を共有していることに気付いていない。これに加えて、或いは代替として、1つ又はそれ以上のクライアント証明書又はサーバ証明書が暗号化セッションハンドシェークメッセージ内に含まれるか、或いはこれが備えられている場合、これらの証明書は、互いのアイデンティティを認証するためにクライアント及びサーバによって使用することができ、従って、TMDがクライアントとサーバとの間に挿入されていない場合に存在するはずの信頼関係を維持する。
【0031】
1つの実施形態では、上述のTMDは、サーバ側TMDであり、サーバ側TMDは、クライアント側TMDと共に使用して、1つ又はそれ以上のクライアント装置と1つ又はそれ以上のサーバ装置との間で送信されたデータを拡張又は他の方法で修正することができる。1つの実施形態では、クライアント側TMDは、クライアント装置とサーバ装置との間に直接配置されず、最適化が困難になる可能性がある。この実施形態では、クライアント側TMDは、ボーダー・ゲートウェイ・プロトコル(BGP)を利用して、インターネットルータにクライアント側TMDを介してサーバ装置にアドレス指定されたトラフィックをルーティングさせることができる。このようにして、クライアント側TMDは、クライアント装置とサーバ装置との間に挿入することが可能になり、これによってクライアント装置とサーバ装置との間で転送されたデータを拡張又は他の方法で修正することができる。
【0032】
1つの実施形態では、TMDは、HTTP要求のタイプ、時刻、アクセスポリシー情報、又は他の基準に基づいて、複数のサーバ装置間の暗号化接続のサーバ側エンドポイントを切り換えることによって、クライアント装置と複数のサーバ装置との間の1つ又はそれ以上の暗号化接続をプロキシすることができる。1つの実施形態では、TMDは、クライアント装置に地理的に近接して位置付けることができ、別の実施形態では、TMDをサーバ装置に地理的に近接して位置付けることができる。これに加えて、或いは代替として、TMDは、同様に、HTTP要求のタイプ、時刻、アクセスポリシー情報、又は他の基準に基づいて、サーバ装置と複数のクライアント装置との間の接続をプロキシすることができる。
【0033】
例示的な動作環境
図1は、記載の実施形態を実施できる例示的な環境100の構成要素を示す。記載の実施形態を実施するために必ずしも構成要素の全てが必要である訳ではなく、記載の実施形態の技術的思想又は範囲から逸脱することなく、構成要素の構成及びタイプの変形を行うことができる。図1は、クライアント装置102〜104、クライアント側トラフィック管理装置(TMD)106、支店107、ネットワーク108、サーバ側トラフィック管理装置110、終端間暗号化セッション(A)、ネットワーク108を介したセキュアトンネル(B)、秘密鍵111(l)〜111(n)、サーバ装置112〜114、認証サーバ装置115、秘密データ116、サードパーティコンテンツプロバイダ118、及び本部120を示す。サーバ装置112〜114(サーバ装置113は図示せず)及び認証サーバ装置115は、本明細書では総称してサーバ装置112〜115と呼ばれる。
【0034】
一般に、クライアント装置102〜104は、別のコンピュータ装置に接続し情報を受信することができる何らかのコンピュータ装置を事実上含むことができる。クライアント装置102〜104は支店107内に位置付けることができるが、クライアント装置102〜104は、代替として、支店107の外部に位置付けてもよい。このような装置は、パーソナルコンピュータ、マルチプロセッサシステム、マイクロプロセッサベース又はプログラム可能な民生用電子機器、ネットワーク装置、及び同様のものを含むことができる。クライアント装置102〜104はまた、セルラー電話、スマートフォン、ディスプレイページャ、無線周波数(RF)装置、赤外線(IR)装置、携帯情報端末(PDA)、ハンドヘルドコンピュータ、ウェアラブルコンピュータ、タブレットコンピュータ、前述の装置の1つ又はそれ以上を組み合わせた統合装置、及び同様のものを含むことができる。従って、クライアント装置102〜104は、機能及び特徴の観点で広範囲に及ぶことができる。
【0035】
クライアント装置102〜104は、種々の動作を管理するよう構成された1つ又はそれ以上のクライアントアプリケーションを更に含むことができる。その上、クライアント装置102〜104はまた、ネットワーク108を通じてエンドユーザが他の装置及びアプリケーションと対話できるようにするよう構成されたウェブブラウザアプリケーションを含むことができる。
【0036】
ネットワーク108は、クライアント装置102〜104、TMD106及び110、サーバ装置112〜114、認証サーバ装置115、及びサードパーティコンテンツプロバイダ118などのネットワーク対応装置を他のネットワーク対応装置に結合するよう構成されている。1つの実施形態では、クライアント装置102は、クライアント側TMD106、ネットワーク108、及びサーバ側TMD110を介して、サーバ装置112と通信することができる。これに加えて、或いは代替として、クライアント装置102、クライアント側TMD106、サーバ側TMD110、及びサーバ装置112は全てネットワーク108に直接接続することができる。1つの実施形態では、ネットワーク108は、クライアント装置102〜104とサーバ装置112〜115との間の終端間暗号化セッション(A)などの暗号化セッションを可能にすることができる。
【0037】
ネットワーク108は、1つの電子装置から別の電子装置に情報を伝送するためのコンピュータ可読媒体の何らかの形式を利用することができる。1つの実施形態では、ネットワーク108は、インターネットを含むことができ、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ユニバーサルシリアルバス(USB)ポートなどを介した直接接続、コンピュータ可読媒体の他の形式、或いはこれらの何らかの組合せを含むことができる。種々のアーキテクチャ及びプロトコルに基づくものを含む、LANの相互接続されたセットにおいては、ルータが、一方から他方にメッセージを送信することを可能にするために、LAN間のリンクとして動作することができる。また、LAN内の通信リンクは、通常、光ファイバ、ツイストペア線、又は同軸ケーブルを含み、ネットワーク間の通信リンクは、アナログ電話回線、T1、T2、T3、及びT4を含む全又は部分専用デジタル回線、総合デジタル通信網(ISDN)、デジタル加入者回線(DSL)、衛星リンクを含む無線リンク、或いは当業者に公知の他の通信リンクを利用することができる。
【0038】
ネットワーク108は更に、限定ではないが、セルラーシステム用の第2世代(2G)、第3世代(3G)、第4世代(4G)無線アクセス、無線LAN、無線ルータ(WR)メッシュ、及び同様のものを含む、複数の無線アクセス技術を利用することができる。2G、3G、4G、及び将来のアクセスネットワークなどのアクセス技術は、様々な程度の移動性を備えたクライアント装置102〜104などのネットワーク装置、或いは同様のものに対する広範囲のサービスエリアを可能にすることができる。例えば、ネットワーク108は、移動体通信用グローバルシステム(GSM)、汎用パケット無線サービス(GPRS)、拡張データGSM環境(EDGE)、広帯域符号分割多元接続(WCDMA)、及び同様のものなどの無線ネットワークアクセスを介した無線接続を可能にすることができる。
【0039】
更に、リモートコンピュータ及び他の関連の電子装置は、モデム及び一時電話リンク、DSLモデム、ケーブルモデム、光ファイバモデム、802.11(Wi−Fi)受信機、及び同様のものを介してLAN又はWANの何れかに遠隔で接続することができる。本質的に、ネットワーク108は、1つのネットワーク装置と別のネットワーク装置との間で情報を移動させることができる何らかの通信方法を含む。
【0040】
ネットワーク108を介したセキュアトンネル(B)は、ネットワーク装置間で情報を伝送するための何らかのトンネルを含む。典型的には、セキュアトンネル(B)は暗号化されている。本明細書で使用される「トンネル」又は「トンネル化接続」は、開放型システム間相互接続(OSI)ネットワークスタックの同じレイヤ又は下位レイヤのプロトコルでネットワークパケット又はフレームのカプセル化を提供するネットワーク機構である。1つのネットワークシステムからパケット又はフレームを取り出して、これを別のネットワークシステムからのフレームの内部に入れる(例えば、カプセル化する)ためにトンネリングを利用することができる。トンネリングプロトコルの実施例は、限定ではないが、IPトンネリング、レイヤ2トンネリングプロトコル(L2TP)、レイヤ2転送(L2F)、VPN、IPセキュリティ(IPSec)、ポイント・ツー・ポイントトンネリングプロトコル(PPTP)、GRE、MBone、及びSSL/TLSを含む。図示のように、セキュアトンネル(B)は、ネットワーク108を介したクライアント側TMD106とサーバ側TMD110との間のセキュア接続のために作成される。
【0041】
クライアント側TMD106又はサーバ側TMD110として使用できるネットワーク装置の1つの実施形態を図2を参照して以下で更に詳細に説明する。しかしながら、簡潔にすれば、クライアント側TMD106及びサーバ側TMD110は各々、ネットワークトラフィックを管理する何らかのネットワーク装置を事実上含む。このような装置は、例えば、ルータ、プロキシ、ファイアウォール、ロードバランサ、キャッシュ装置、アプリケーション加速器、ネットワークアドレス変換を実行する装置、前述の装置の何らかの組合せ、又は同様のものを含む。このような装置は、ハードウェア単独で、或いはハードウェア及びソフトウェアで実施することができる。例えば、このような装置は、1つ又はそれ以上のマイクロプロセッサに結合された幾つかの特定用途向け集積回路(ASIC)を含むことができる。ASICは、高速スイッチファブリックを提供するのに使用することができ、マイクロプロセッサは、パケットのより高いレイヤの処理を実行することができる。
【0042】
1つの実施形態では、サーバ側TMD110は通常、本部120内に位置付けられ、このため、物理的に保護され中央アドミニストレータの直接管理の下にあると考えられる。従って、サーバ側TMD110はまた、信頼されるTMDとしても認識することができる。サーバ側TMD110は、例えば、サーバ装置112〜115などのサーバ装置のアレイに配信され又はそこから転送されるデータパケットの流れを制御することができる。1つの実施形態では、サーバ側TMD110とサーバ装置112〜115との間で送信されたメッセージは、クライアント装置102〜104の1つとサーバ装置112〜115の1つとの間に形成された終端間暗号化セッション(A)などのセキュアチャネルの一部とすることができる。別の実施形態では、サーバ側TMD110が、サーバ装置の代わりに暗号化接続を終了することができ、IPSecなどの暗号化の別のタイプを利用して、サーバ装置にパケットを配信し、又はサーバ装置からパケットを転送することができる。代替として、サーバ側TMD110がサーバ装置の代わりに暗号化接続を終了すると、サーバ装置へのパケットの配信又はサーバ装置からのパケットの転送は、暗号化なしで(或いは「平文で」)実行することができる。
【0043】
1つの実施形態では、クライアント側TMD106は通常、支店107に常駐し、物理的に中央アドミニストレータの制御の外側にあり、従って、物理的改竄の影響を受けやすい可能性がある。従って、クライアント側TMD106は、信頼されないTMDとして認識することができる。1つの実施形態では、クライアント側TMD106は、発信元から宛先にデータを転送することができる。例えば、クライアント側TMD106は、クライアント装置102〜104の1つとサーバ装置112〜115の1つとの間で1つ又はそれ以上の暗号化セッションハンドシェークメッセージを転送することができる。代替として、クライアント側TMDは、本部120に常駐することができる。代替として、クライアント側TMDは、単一の装置内にサーバ側TMDと共に含めることができ、単一の装置が、TMDを介してデータを送信する装置のタイプ及び位置に基づいて、クライアント側TMDとサーバ側TMDの両方のサービスを提供できるようにする。これに加えて、或いは代替として、TMDは、単一の接続に対してクライアント側TMDとサーバ側TMDの両方として動作することができる。例えば、TMDは、別のオフィスにあるサーバ側TMDに要求をルーティングすることによって、クライアント側TMDとして動作することができる。しかしながら、サーバ側TMDは、「クライアント側」TMDに地理的に近接して位置付けられたサーバ装置に要求を再ルーティングすることができる。この場合、「クライアント側」TMDは、クライアント装置をローカルサーバ装置に接続することになる。クライアント装置をローカルサーバ装置に接続すると、「クライアント側」TMDとして開始したTMDは、「サーバ側」TMDの役割を実行することができる。
【0044】
以下に更に詳細に説明されるように、クライアント側TMD106は、通常はサーバ側TMD110から秘密データ116を受信することができ、これによりクライアント装置102〜104の1つとサーバ装置112〜115の1つの間で送信された暗号化接続メッセージに対して種々の付加的な動作を実行できるようになる。例えば、クライアント側TMD106は、暗号化接続メッセージ内のデータの読み取り、傍受、増補、削除、切り取り、圧縮、遅延、拡張、置き換え、或いは修正を行うことができる。
【0045】
1つの実施形態では、サーバ装置の秘密鍵111は、本部120、連邦情報処理規格(FIPS)境界、又は同様のものの内部で一元管理することができる。サーバ側TMD110は、様々な機構を介して秘密鍵111又は同様のものへのアクセスを可能にすることができる。
【0046】
サーバ装置112〜115は、別のネットワーク装置にパケットを伝送することができる何らかのコンピュータ装置を含むことができる。各パケットは、1つの情報を運ぶことができる。パケットは、例えば、接続を設定するため、或いはデータの受け入れに確認応答するためのハンドシェーキングのために送信することができる。パケットは、要求、応答、又は同様のものなどの情報を含むことができる。一般的に、サーバ装置112〜115によって受信されたパケットは、TCP/IPに従ってフォーマット化されるが、これらはまた、SCTP、X.25、NetBEUI、IPX/SPX、トークンリング、同様のIPv4/6プロトコル、及び同様のものなどの別のプロトコルを使用してフォーマット化することもできる。更に、パケットは、HTTP、HTTPS、及び同様のものを利用して、サーバ装置112〜115、サーバ側TMD110、及びクライアント装置102〜104の1つの間で伝送することができる。
【0047】
1つの実施形態では、サーバ装置112〜115は、ウェブサイトサーバとして動作するよう構成されている。しかしながら、サーバ装置112〜115は、ウェブサーバ装置に限定されず、メッセージングサーバ、ファイル転送プロトコル(FTP)サーバ、データベースサーバ、コンテンツサーバ、及び同様のものを動作させることができる。更に、サーバ装置112〜115の各々は、異なる動作を実行するよう構成することができる。従って、例えば、サーバ装置112をメッセージングサーバとして構成することができ、サーバ装置114は、データベースサーバとして構成される。その上、サーバ装置112〜115は、ウェブサイト以外のものとして動作することができ、HTTP通信を受信できるようにもすることができる。
【0048】
サーバ装置112〜115として動作することができる装置は、パーソナルコンピュータ、デスクトップコンピュータ、マルチプロセッサシステム、マイクロプロセッサベース又はプログラム可能民生用電子機器、ネットワークPC、サーバ装置、及び同様のものを含む。
【0049】
上述のように、秘密データ116は通常、プレマスターシークレット及び/又はマスターシークレットを含む。1つの実施形態では、クライアント装置及びサーバ装置は、セッション鍵(マスター鍵としても知られる)を生成するのに使用されるそれぞれのHELLO(ハロー)メッセージにおけるノンス(一度だけ使用される数字)を交換することができる。これに加えて、或いは代替として、秘密データ116は、クライアント装置によって生成されてサーバ装置の公開鍵を使用してクライアント装置によってデジタルで暗号化された別のノンス(HELLO(ハロー)メッセージに含まれるノンスとは別個のもの)を含むことができる。1つの実施形態では、秘密データ116は、セッション鍵を生成するために、クライアント装置、サーバ側TMD110、及びサーバ装置の1つ又はそれ以上によって利用される。
【0050】
サードパーティコンテンツプロバイダ118を用いて、サーバ側TMD110又はクライアント側TMD106によって暗号化接続に挿入されるコンテンツ(例えば、広告)を提供するために任意選択的に使用することができる。しかしながら、サードパーティコンテンツは、これに限定されず、アフィリエイトされたビジネスパートナー、企業IT部門、及び同様のものによって提供されるコンテンツを付加的に含むことができる。
【0051】
クライアント及びサーバなどの用語は、装置内の機能を示すことができる点に更に留意されたい。このようにして、事実上、いずれの装置もクライアント又はサーバとして動作するか、或いはクライアント及びサーバ機能の両方を含むように構成することができる。更に、2つ又はそれ以上のピアが利用される場合、これらの何れか1つは、クライアント又はサーバとして指定することができ、本発明の教示に適合するよう構成することができる。
【0052】
(例示的なネットワーク装置環境)
図2は、本発明の1つの実施形態による、ネットワーク装置の1つの実施形態を示す。ネットワーク装置200は、図示されるものよりも多い又は少ない構成要素を含むことができる。しかしながら、図示される構成要素は、本発明を実施するための例示的な実施形態を開示するのに十分である。ネットワーク装置200は、例えば、図1のサーバ側TMD110及び/又はクライアント側TMD106を表すことができる。
【0053】
ネットワーク装置200は、全てがバス222を介して互いに通信する、処理ユニット212、ビデオディスプレイアダプタ214、及び大容量メモリを含む。大容量メモリは、一般に、RAM216、ROM232、並びにハードディスクドライブ228、テープドライブ、CD−ROM/DVD−ROMドライブ226、及び/又はフロッピーディスクドライブなどの1つ又はそれ以上の永続大容量記憶装置を含む。大容量メモリは、ネットワーク装置200の動作を制御するためのオペレーティングシステム220を記憶する。ネットワーク装置200はまた、暗号化セッションマネージャ252、ボーダー・ゲートウェイ・プロトコル(BGP)モジュール256、及び他のアプリケーション258を含む。
【0054】
図2に示されるように、ネットワーク装置200はまた、TCP/IPプロトコルを含む種々の通信プロトコルと共に使用するよう構成されているネットワークインターフェイスユニット210を介してインターネット又は他の何らかの通信ネットワークと通信することができる。ネットワークインターフェイスユニット210は、場合によっては、送受信機、送受信装置、或いはネットワークインターフェイスカード(NIC)として知られている。
【0055】
上述の大容量メモリは、コンピュータ可読媒体の別のタイプ、すなわちコンピュータ記憶媒体を示す。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報の記憶のための何らかの方法又は技術で実装された、揮発性媒体、不揮発性媒体、取り外し可能媒体、及び取り外し不能媒体を含むことができる。コンピュータ記憶媒体の実施例は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD−ROM、デジタル多機能ディスク(DVD)又は他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、或いは所望の情報を記憶するのに使用でき且つコンピュータ装置によってアクセス可能な何らかの他の媒体を含む。
【0056】
大容量メモリはまた、プログラムコード及びデータを記憶する。1つ又はそれ以上のアプリケーション258が大容量メモリにロードされ、オペレーティングシステム200上で実行される。アプリケーションプログラムの実施例は、電子メールプログラム、ルーティングプログラム、スケジューラ、カレンダー、データベースプログラム、文書処理プログラム、HTTPプログラム、トラフィック管理プログラム、セキュリティプログラムなどを含むことができる。
【0057】
ネットワーク装置200は、TLS、TTLS、EAP、SSL、IPSec、及び同様のものを含む、事実上あらゆるセキュア接続をサポートするアプリケーションを更に含むことができる。このようなアプリケーションは、例えば、暗号化セッションマネージャ252及びBGPプロトコルモジュール256を含むことができる。
【0058】
1つの実施形態では、暗号化セッションマネージャ252は、暗号化セッションハンドシェークの管理、鍵、証明書、認証、許可、又は同様のものの管理を含む、暗号化セッション処理を実行することができる。その上、暗号化セッションマネージャ252は、1つの実施形態では、暗号化セッション及び/又は接続を設定する、暗号化セッション及び/又は接続を終了する、暗号化セッション及び/又は接続の介入者としてそれ自体を設定する、或いは同様のことを行うことができる。更に、暗号化セッションマネージャ252は、1つの実施形態では、暗号化セッションのサーバエンドポイントを別のサーバエンドポイントに置き換える目的のために、暗号化接続再ネゴシエーションを開始することができる。
【0059】
加えて、ネットワーク装置200は、VPN、PPP、L2TPなどの多種多様なトンネリング機構をサポートするアプリケーションを含むことができる。
【0060】
ネットワーク装置200はまた、図2に示されていないマウス、キーボード、スキャナ、又は他の入力装置などの外部装置と通信するための入力/出力インターフェイス224を含むことができる。同様に、ネットワーク装置200は、CD−ROM/DVD−ROMドライブ226及びハードディスクドライブ228などの付加的な大容量記憶機器を更に含むことができる。ハードディスクドライブ228は、とりわけ、アプリケーションプログラム、データベース、証明書、公開及び秘密鍵、秘密データ、及び同様のものを記憶するのに利用することができる。
【0061】
1つの実施形態では、ネットワーク装置200は、バス222に結合された少なくとも1つの特定用途向け集積回路(ASIC)チップ(図示せず)を含む。ASICチップは、ネットワーク装置200の動作の一部を実行する論理回路を含むことができる。例えば、1つの実施形態では、ASICチップは、着信及び/又は発信パケットのための幾つかのパケット処理機能を実行することができる。1つの実施形態では、ASICチップは、暗号化セッションマネージャ252及び/又はBGPモジュール256の動作を可能にするための論理回路の少なくとも一部分を実行することができる。
【0062】
1つの実施形態では、ネットワーク装置200は更に、ASICチップの代わりに、或いはこれに加えて、1つ又はそれ以上のフィールドプログラマブルゲートアレイ(FPGA)(図示せず)を含むことができる。ネットワーク装置の幾つかの機能は、ASICチップ、FPGAによって、メモリ内に記憶された命令を備えたCPU212によって、或いはASICチップ、FPGA、及びCPUの何らかの組合せによって実行することができる。
【0063】
1つの実施形態では、クライアント装置102などの一部のクライアント装置は、LAN又は他の直接接続を介してクライアント側TMD106に接続することはできない。例えば、クライアント装置102は、クライアント側TMDを有する支店に位置付けられない可能性がある。これに加えて、或いは代替として、クライアント装置102は移動デバイスであってもよい。クライアント装置がクライアント側TMDに直接接続されないときには、クライアント装置は、暗号化セッションを設定するか、或いはデータを傍受及び処理するためにクライアント側TMDなしでサーバ112〜115の1つにデータを送信することができる。しかしながら、多くの場合、クライアント側TMDがこのような通信を傍受及び拡張することが有利である。
【0064】
このような目的で、ボーダー・ゲートウェイ・プロトコル(BGP)モジュール256は、1つの実施形態では、1つ又はそれ以上のクライアント装置から発信されたネットワークトラフィックをクライアント側TMD106を介してルーティング可能にすることができる。1つの実施形態では、BGPモジュール256は、クライアント側TMD106がサーバ装置112〜115にアドレス指定されたデータに対する最適ルートを知っていることを示すBGPプロトコルメッセージをインターネット上のルータに一斉送信することによってこのルーティングを保証する。この結果、BGPプロトコルメッセージを受信したルータは通常、クライアント側TMD106を介してサーバ装置112〜115の1つにアドレス指定されたネットワークトラフィックをルーティングすることになる。この結果、クライアント側TMDに直接接続されていないクライアント装置は、クライアント側TMD106を介してルーティングされる暗号化セッションを含むサーバ装置112〜115への接続を有することができる。このようにして、クライアント側TMD106は、例えば、データを圧縮する、加速する、或いは修正するなどの、ネットワークの効率を向上させる種々の動作を実行することができる。
【0065】
(例示的なサーバ装置環境)
図3は、本発明の1つの実施形態による、サーバ装置の1つの実施形態を示す。サーバ装置300は、図示されるものよりも多い構成要素を含むことができる。しかしながら、図示される構成要素は、本発明を実施するための例示的な実施形態を開示するのに十分である。サーバ装置300は、例えば、図1のサーバ112〜114及び認証サーバ115を表すことができる。
【0066】
サーバ装置300は、全てがバス322を介して互いに通信する、処理ユニット312、ビデオディスプレイアダプタ314、及び大容量メモリを含む。大容量メモリは、一般に、RAM316、ROM332、及びハードディスクドライブ328、テープドライブ、CD−ROM/DVD−ROMドライブ326、及び/又はフロッピーディスクドライブなどの1つ又はそれ以上の永続大容量記憶装置を含む。大容量メモリは、サーバ装置300の動作を制御するためのオペレーティングシステム320を記憶する。あらゆる汎用オペレーティングシステムも利用することができる。また、サーバ装置300の低レベル動作を制御するために基本入力/出力システム(「BIOS」)318も提供される。図3に示されるように、サーバ装置300はまた、TCP/IPプロトコルを含む種々の通信プロトコルと共に使用するよう構成されているネットワークインターフェイスユニット310を介して、インターネット又は他の何らかの通信ネットワークと通信することができる。ネットワークインターフェイスユニット310は、場合によっては、送受信機、送受信装置、或いはネットワークインターフェイスカード(NIC)として知られている。
【0067】
上述の大容量メモリは、コンピュータ可読媒体の別のタイプ、すなわちコンピュータ記憶媒体を示す。コンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、或いは他のデータなどの情報の記憶のための何らかの方法又は技術で実装された、揮発性媒体、不揮発性媒体、取り外し可能媒体、及び取り外し不可媒体を含むことができる。コンピュータ可読記憶媒体の実施例は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD−ROM、デジタル多機能ディスク(DVD)又は他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、或いは所望の情報を記憶するのに使用でき且つコンピュータ装置によってアクセス可能な何らかの他の物理媒体を含む。
【0068】
1つ又はそれ以上のアプリケーション350が大容量メモリにロードされ、オペレーティングシステム320上で実行することができる。アプリケーションプログラムの実施例は、トランスコーダ、スケジューラ、カレンダー、データベースプログラム、文書処理プログラム、HTTPプログラム、カスタマイズ可能なユーザインターフェイスプログラム、IPSecアプリケーション、暗号化プログラム、セキュリティプログラム、VPNプログラム、ウェブサーバ、アカウント管理などを含むことができる。アプリケーション350は、暗号化セッションモジュール360を含むことができる。暗号化セッションモジュール360は、上述のネットワーク装置の何れかを含む他のネットワーク装置との暗号化セッション及び/又は接続を設定することができる。1つの実施形態では、暗号化セッションモジュール360は、図1のTMD110又はTMD106と協働して機能することができる。これに加えて、或いは代替として、暗号化セッションモジュール360は、いずれのTMDにも関係なく他のネットワーク装置と通信することができる。
【0069】
アプリケーション350はまた、メッセージを含むコンテンツを別のコンピュータ装置にネットワークを通じて提供するよう構成されている多種多様なウェブサービスを含むことができる。これらのウェブサービスは、例えば、ウェブサーバ、メッセージングサーバ、ファイル転送プロトコル(FTP)サーバ、データベースサーバ、コンテンツサーバ、又は同様のものを含む。これらのウェブサービスは、限定ではないが、WAP、HDML、WML、SMGL、HTML、XML、cHTML、xHTML、又は同様のものを含む多種多様なフォーマットの何れかを使用して、ネットワークを通じてメッセージを含むコンテンツを提供することができる。
【0070】
(一般化動作)
特定の態様の動作を、図4−8に関して説明する。図4−7は、特定の態様を例示する論理フロー図を示し、図8は、信号フロー図を示す。図4は、終端間暗号化接続におけるエンドポイントを置き換える処理の1つの実施形態を全体的に図示した論理フロー図を示す。1つの実施形態では、処理400はサーバ側TMD110によって実行することができる。
【0071】
処理400は、クライアント装置と第1サーバ装置との間に配置されたサーバ側TMDによって開始ブロックの後のブロック402で始まる。1つの実施形態では、サーバ側TMDが、クライアント装置と第1サーバ装置との間の終端間暗号化セッションに関連付けられるセッション鍵を決定する。セッション鍵の決定は、図5に関して以下で更に詳細に説明する。
【0072】
ブロック404において、サーバ側TMDが、終端間暗号化セッションに関連付けられた終端間接続におけるエンドポイントとして第1サーバ装置を置き換える基準を検出する。1つの実施形態では、この検出基準は、クライアント装置によって要求されるデータのタイプを検出する段階を含むことができる。これに加えて、或いは代替として、基準は、定期的なスケジュール、サーバ装置のシステムアップグレード、アドミニストレータによる要求、又は同様のものを含むことができる。
【0073】
ブロック406において、サーバ側TMDは、暗号化接続におけるエンドポイントして第1サーバ装置を第2サーバ装置に置き換える。1つの実施形態では、サーバ側TMDは、暗号化接続の再ネゴシエーションを利用して、エンドポイントとして第2サーバ装置を設定する。サーバ装置と第2サーバ装置の置き換えは、図6に関して以下で更に詳細に説明する。
【0074】
ブロック408において、サーバ側TMDは、暗号化接続を通じて送信されたデータの読み取り、傍受、遅延、増補、削除、切り取り、圧縮、拡張、加速、置き換え、或いは修正を行うことができる。1つの実施形態では、サーバ側TMDは、暗号化接続を通じて送信されたデータを更に拡張するために、クライアント側TMDと連動して動作することができる。暗号化接続を通じて送信されたデータの拡張は、図7に関して以下で更に詳細に説明する。次に処理は復帰ブロックで終了する。
【0075】
図5は、終端間暗号化セッションに関連付けられるセッション鍵を生成するための処理の1つの実施形態を全体的に図示した論理フロー図を示す。1つの実施形態では、処理500は、サーバ側TMD110によって実行することができる。
【0076】
処理500は、開始ブロックの後、第1サーバ装置に関連付けられる秘密鍵を受信することによってブロック502で始まる。1つの実施形態では、第1サーバ装置は、図1に示されるサーバ装置112〜115の1つを含むことができる。1つの実施形態では、第1サーバ装置の秘密鍵は、システムアドミニストレータによって提供することができる。これに加えて、或いは代替として、秘密鍵は、ローカルドメインコントローラ、LDAPサーバ、又は第2ネットワーク装置自体によって提供することができる。
【0077】
ブロック504において、暗号化セッションに関連付けられるハンドシェークメッセージの第1セットが傍受される。1つの実施形態では、暗号化セッションの作成は、クライアント装置102〜104の1つなどのクライアント装置によって開始することができる。1つの実施形態では、ハンドシェークメッセージの第1セットは、第1サーバ装置に向けてクライアント装置によって送信された「CLIENT HELLO(クライアント ハロー)」メッセージを含む。傍受及び記憶された後、「CLIENT HELLO(クライアント ハロー)」メッセージは、第1サーバに転送することができる。1つの実施形態では、「CLIENT HELLO(クライアント ハロー)」メッセージなどの傍受されたハンドシェークメッセージを記憶することによって、サーバ側TMDは、対応する暗号化セッションの寿命全体を通じて常に本明細書で説明される動作を実行することができる。
【0078】
「CLIENT HELLO(クライアント ハロー)」に応答して、第1サーバ装置は、「SEVER HELLO(サーバ ハロー)」メッセージ、クライアント装置が第1サーバ装置を識別できるようにする「SERVER CERTIFICATE(サーバ 証明書)」メッセージ、第1サーバ装置の公開鍵を含む「SERVER KEY EXCHANGE(サーバ 鍵 交換)」メッセージ、サーバ装置がクライアント装置を識別できるようにする証明書をクライアントに送信するよう要求する「CERTIFICATE REQUEST(証明書 要求)」メッセージ、及び「SERVER HELLO DONE(サーバ ハロー 実行)」メッセージを送信することができ、これらのメッセージの全ては、傍受されてハンドシェークメッセージの第1セットに記憶され、クライアント装置に転送することができる。
【0079】
「SERVER HELLO DONE(サーバ ハロー 実行)」メッセージに応答して、クライアント装置は、1つの実施形態において、クライアント装置によって生成され且つ第1サーバ装置の公開鍵で暗号化された乱数(例えば、ノンス)を含む、「CLIENT KEY EXCHANGE(クライアント 鍵 交換)」メッセージを送信することができる。1つの実施形態では、「CLIENT KEY EXCHANGE(クライアント 鍵 交換)」メッセージは、傍受され、ハンドシェークメッセージの第1セットに記憶され、第1サーバ装置に転送することができる。これに加えて、或いは代替として、ハンドシェークメッセージの第1セットは、暗号化セッションを設定したままクライアント装置と第1サーバ装置との間で交換されるあらゆる付加的なメッセージを含むことができ、例えばサーバ装置がクライアント装置を識別できるようにするクライアント装置の証明書を含む「CERTIFICATE(証明書)」メッセージを含む。1つの実施形態では、ハンドシェークメッセージのこの交換の完了時に、クライアント装置及び第1サーバ装置は、終端間暗号化セッションを設定している。
【0080】
次に、処理はブロック506に進み、ここで、秘密データがハンドシェークメッセージの傍受された第1セットから抽出される。1つの実施形態では、第1サーバ装置の受信された秘密鍵を用いて、クライアント装置によって生成され第1サーバ装置の公開鍵で暗号化された乱数を含む「CLIENT KEY EXCHANGE(クライアント 鍵 交換)」のペイロードを解読することによって秘密データを抽出することができる。これに加えて、或いは代替として、サーバ側TMDが「プレマスターシークレット」を抽出する。
【0081】
次に、処理はブロック508に進み、ここで1つの実施形態において、解読された乱数がクライアント装置と第1サーバ装置との間で交換された1つ又はそれ以上の他の乱数と組み合わせて使用され、セッション鍵を生成する。1つの実施形態では、セッション鍵は「マスターシークレット」であってもよい。1つの実施形態では、セッション鍵は、暗号化セッションハンドシェークの間に交換された1つ又はそれ以上の他の乱数と組み合わされ、接続鍵を生成する。接続鍵を使用して、暗号化接続を通じて送信されたデータを暗号化及び解読することができる。
【0082】
1つの実施形態において、クライアント装置及び第1サーバ装置はまた、交換されたハンドシェークメッセージに基づいてセッション鍵を別々に計算する。1つの実施形態では、クライアント装置及び第1サーバ装置はまた、接続鍵を別々に計算する。幾つかの実施形態では、サーバ側TMDは、傍受されたハンドシェークメッセージにおける情報に基づいてセッション鍵を計算することができる。或いは、セッション鍵を別々に計算する代わりに、サーバ側TMDが、第1サーバ、クライアント、別のネットワーク装置、或いはシステムアドミニストレータの1つからセッション鍵及び/又は接続鍵を受信することができる。
【0083】
接続鍵が生成又は取得される方法に関わらず、接続鍵は、クライアント装置と第1サーバ装置との間に送信された暗号化データを解読できるようにする。1つの実施形態では、サーバ側TMDは、接続鍵を使用してデータを解読することができ、次いで、解読されたデータを増補、削除、拡張、或いは修正することができる。1つの実施形態では、サーバ側TMDは、接続鍵を使用して修正されたデータを再暗号化し、修正されたデータをクライアント装置及び第1サーバ装置の一方に送信することができる。次に処理は、復帰ブロックで終了する。
【0084】
図6は、終端間暗号化接続におけるエンドポイントを第2サーバ装置に置き換えるための処理の1つの実施形態を全体的に図示する論理フロー図を示す。1つの実施形態では、処理600は、サーバ側TMD110によって実施することができる。
【0085】
処理600は、開始ブロックの後、ブロック602で開始し、ここで1つの実施形態では、サーバ側TMDが再ネゴシエーション要求を終端間暗号化接続を通じてクライアント装置に送信する。1つの実施形態では、サーバ側TMDが、クライアント装置又は第1サーバ装置の何れかによって送信されたHTTPヘッダを抽出したこと、及びHTTPヘッダが第2サーバ装置に位置付けられたコンテンツに対する要求を含むことを判定したことに応答して、再ネゴシエーション要求メッセージを送信する。サーバ側TMD110は、ネットワークトラフィック、ネットワークトポロジー、サーバ装置の容量、要求されるコンテンツ、及び他のトラフィック配信機構のホストに基づいて、特定のサーバ装置に資源に対する要求を送ることができる。また、サーバ側TMD110は、同じ通信、フロー、及び/又はストリームの一部であるパケットを認識することができ、同じサーバ装置にこれらを送るなど、このようなパケットに対する特別な処理を実行することができる。
【0086】
1つの実施形態では、サーバ側TMDが、「SSL HELLO REQUEST(SSL ハロー 要求)」を発信して終端間暗号化接続を通じてクライアント装置に送信することによって、再ネゴシエーションを要求又は開始する。1つの実施形態では、サーバ側TMDは、終端間暗号化接続のエンドポイントとして第1サーバ装置を1つ又はそれ以上の第2サーバ装置に置き換えるために、暗号化接続再ネゴシエーションを利用する。上述のように、クライアント(又はサーバ)装置は、1つの実施形態では、異なるサーバ(又はクライアント)装置がエンドポイントになったことを認識していない可能性がある。このように、サーバ側TMDの機能は、クライアント(又はサーバ)装置に対して透明であるようにすることができる。
【0087】
次に、処理はブロック604に進み、ここでサーバ側TMDが、「SSL HELLO REQUEST(SSL ハロー 要求)」に応答して送信されたハンドシェークメッセージの第2セットを傍受する。1つの実施形態では、ハンドシェークメッセージの第2セットは、接続鍵を使用して暗号化され、終端間暗号化接続を通じてクライアント装置によって送信される。1つの実施形態では、ハンドシェークメッセージの第2セットが第1サーバ装置にアドレス指定される。
【0088】
次に処理はブロック606に進み、ここでサーバ側TMDが接続鍵を使用してハンドシェークメッセージの第2セットを解読する。
【0089】
次に処理はブロック608に進み、ここでサーバ側TMDが、解読されたハンドシェークメッセージの第2セットを第2サーバ装置にリダイレクトし、これによって第2サーバ装置を終端間暗号化接続におけるエンドポイントにすることができる。1つの実施形態では、ハンドシェークメッセージの第2セットを第2サーバ装置に送ることによって、終端間暗号化接続を通じてクライアント装置によって行われた要求は、サーバ側TMDによって1つよりも多いサーバ装置に再配信することができる。1つの実施形態では、サーバ側TMDと第1サーバ装置との間で設定されていた既存の接続が、サーバ側TMDによって正常に終了される。代替として、サーバ側TMDと第1サーバ装置との間の既存の接続は、将来の使用のためにキャッシュ、プール、又はその他の方法で維持することができる。
【0090】
これに加えて、或いは代替として、エンドポイントとして第2サーバ装置を設定する代わりに、サーバ側TMDは、暗号化接続のエンドポイントになるために暗号化接続再ネゴシエーションを利用することができる。この実施形態では、サーバ側TMDが、暗号化接続加速器として動作することができ、すなわち、クライアント装置から暗号化コンテンツを受信し、受信されたコンテンツを解読し、解読されたコンテンツを処理のためにサーバ装置に転送し、更にサーバ装置の応答を暗号化する。このような事例では、TMDは、平文で第1サーバ装置と通信するか、或いは第1サーバ装置と別の接続を設定することができる。別の実施形態では、サーバ側TMDは、キャッシュされたデータ又は生成されたデータなどの別のサーバからのコンテンツを転送するのではなく、暗号化コンテンツ自体を生成することができる。別の実施形態では、クライアント側TMDは、同様に暗号化接続再ネゴシエーションを利用して、暗号化接続のエンドポイントになり、暗号化接続加速器として動作し、キャッシュされたデータなどのコンテンツを生成することができる。これに加えて、或いは代替として、サーバ側TMDは、クライアント装置と第1サーバ装置との間の次の再ネゴシエーションを無視することができ、これによって、サーバ側TMDは、終端間暗号化接続を通じて送信されたコンテンツの解読及び修正を中止する。代わりに、サーバ側TMDは、何らかの他のネットワーク接続のように再ネゴシエーションされた暗号化接続を通じて送信されたデータを第1サーバ装置にルーティングすることができる。同様に、他の実施形態では、クライアント側TMDはまた、暗号化接続再ネゴシエーションを利用して、暗号化接続から「外れた」次の再ネゴシエーションを無視することができる。
【0091】
これに加えて、或いは代替として、サーバ側TMDは、クライアント装置への暗号化接続及びサーバ装置への別の暗号化接続を終了することができる。サーバ側TMDは、この暗号化接続のペアをクライアント装置とサーバ装置との間の単一の終端間暗号化接続に変換することができる。1つの実施形態では、サーバ側TMDは、暗号化接続再ネゴシエーションと、クライアント装置とサーバ装置との間で転送されるハンドシェークメッセージとを利用することによってこのような変換を実行することができる。このような実施形態では、次にTMDは、終端間暗号化接続を通じて送信されたデータに対して本明細書で説明される動作の何れかを実行することができる。
【0092】
次に、処理はブロック610に進み、ここで第2サーバ装置の秘密鍵がサーバ側TMDによって受信される。これに加えて、或いは代替として、サーバ側TMDは、再ネゴシエーション要求を送信する前に第2サーバ装置の秘密鍵を受信することができる。1つの実施形態では、サーバ側TMDが、第1サーバ装置の秘密鍵の受信に関して上述の方式の何れかで第2サーバ装置の秘密鍵を受信する。
【0093】
次に、処理はブロック612に進み、ここで第2サーバ装置の秘密鍵を用いて、ハンドシェークメッセージの第2セットから秘密データを抽出する。1つの実施形態では、サーバ側TMDが、ブロック506に関して上述したように、ハンドシェークメッセージの第1セットからの秘密データの抽出に類似した方式でハンドシェークメッセージの第2セットから秘密データを抽出する。
【0094】
次に、処理はブロック614に進み、ここでサーバ側TMDが、ハンドシェークメッセージの第2セットから抽出された秘密データに少なくとも基づいて、第2セッション鍵を生成する。1つの実施形態では、第2セッション鍵は、ブロック508に関して上述したように、第1セッション鍵の生成に類似した方式で生成される。1つの実施形態では、生成された第2セッション鍵は、接続鍵の第2セットを作成するのに利用され、クライアント装置と第2サーバ装置との間の終端間暗号化接続を定義する。
【0095】
次に、処理はブロック616に進み、ここで再ネゴシエーションされた終端間暗号化セッションの終端間暗号化接続を通じて送信されたメッセージが傍受され、サーバ側TMDによって処理される。1つの実施形態では、第2ネットワーク装置が現在は再ネゴシエーションされた終端間暗号化セッションの他のエンドポイントであることにクライアント装置が気付いていない可能性があるので、傍受されたメッセージは、クライアント装置によって送信され、第1サーバ装置にアドレス指定される。これに加えて、或いは代替として、第2サーバ装置は、サーバ側TMDによって傍受及び処理されたメッセージを送信することができる。いずれの場合においても、サーバ側TMDは、任意選択的にクライアント側TMD及び/又はサードパーティコンテンツプロバイダ118と共に付加的な処理を実行し、傍受されたメッセージの増補、削除、切り取り、拡張、遅延、加速、又は修正を行うことができる。例えば、第2サーバ装置とクライアント装置との間で送信されるデータに埋め込むことができる広告又は他のコンテンツをサードパーティコンテンツプロバイダ118によって提供することができる。
【0096】
次に、処理はブロック618に進み、ここで、サーバ側TMDが、クライアント装置によって送信され且つ第1サーバ装置にアドレス指定されたメッセージを傍受する実施形態では、サーバ側TMDが、傍受されたメッセージを第2サーバ装置にリダイレクトする。次いで、処理は復帰ブロックで終了する。
【0097】
1つの実施形態では、図6に示された処理によって、既存の終端間暗号化接続が新しいサーバ装置にハンドオフできるようになり、クライアント装置の観点からサーバのアイデンティティは変化しない。1つの実施形態では、再ネゴシエーションは、既存の暗号化セッショントンネル内で発生する。
【0098】
図7は、暗号化接続を通じてクライアント側TMDとサーバ側TMDとの間で送信されたデータを拡張するための処理の1つの実施形態を全体的に図示する論理フロー図を示す。1つの実施形態では、処理700は、サーバ側TMD110によって実行することができる。
【0099】
処理700は、開始ブロックの後のブロック702で始まり、ここでサーバ側TMD110が、接続鍵の第2セットをクライアント側TMD106に送信する。1つの実施形態では、接続鍵の第2セットは、終端間暗号化セッションを通じて送信することができる。代替として、接続鍵の第2セットは、セキュアトンネル(B)などの別々の暗号化セッション/接続を通じて送信することができる。
【0100】
次に、処理はブロック704に進み、ここで、クライアント側TMD106は、1つの実施形態では、終端間暗号化接続を通じてクライアント装置から送信された暗号化データを傍受する。1つの実施形態では、第2サーバ装置が現在は終端間暗号化接続のエンドポイントであることにクライアント装置が気付いていないときには、通常は、クライアント装置によって送信された暗号化データを第1サーバ装置にアドレス指定することができる。これに加えて、或いは代替として、第2サーバ装置701が現在は終端間暗号化接続のエンドポイントであることにクライアント装置が気付いているときには、クライアント装置によって送信された暗号化データは、第2サーバ装置701にアドレス指定することができる。
【0101】
次に、処理はブロック706に進み、ここで、クライアント側TMD106は、1つの実施形態において、接続鍵の受信された第2セットを使用して傍受されたデータを解読する。
【0102】
次に、処理はブロック708に進み、ここで、クライアント側TMD106は、1つの実施形態において、解読されたデータを処理する。1つの実施形態では、解読されたデータは、増補、削除、圧縮、加速、又は修正を行うことができる。
【0103】
次に、処理はブロック710に進み、ここで、クライアント側TMD106は、1つの実施形態において、接続鍵の第2セットを使用して処理されたデータを再暗号化し、再暗号化された処理済みデータを第2サーバ装置701に向けて送信する。この実施形態では、処理はブロック712に進む。
【0104】
これに加えて、或いは代替として、クライアント側TMD106は、クライアント装置と第2サーバ装置701との間でデータを送信するために、サーバ側TMD110と連動して明示的に動作することができる。この場合、クライアント側TMD106は、ネットワーク108を介したセキュアトンネル(B)などの別々のトンネルを使用して、処理されたデータをサーバ側TMD110に送信することができる。この実施形態では、セキュアトンネル(B)は、終端間暗号化接続とは別に及びこれから離れて暗号化接続を利用することができる。換言すると、クライアント側TMD106は、接続鍵の別のセットを使用してサーバ側TMD110と通信し、処理されたデータを暗号化するか、或いは全く別のタイプの暗号化を実行することができる。セキュアトンネル(B)を介して送信されたデータを受信すると、サーバ側TMD110は通常、解読を行って解読されたデータに更なる処理を実行する。例えば、クライアント側TMD106が送信時間を短縮するために処理されたデータを圧縮する場合、サーバ側TMD110は通常、データを解凍し、本開示全体を通して説明されるように任意選択的に付加的な処理を実行する。次に、処理はブロック714に進む。
【0105】
1つの実施形態では、クライアント側TMD106及びサーバ側TMD110は、暗号化の2つのレベル、すなわちクライアント装置と第2サーバ装置701との間に設定された終端間暗号化接続に使用される暗号化と、付加的にセキュアトンネル(B)によって使用される暗号化とを利用することができる。この実施形態は、インターネットなどのパブリックネットワークを通じて送信されるデータに対する2つのセキュリティのレイヤを提供し、送信されたデータのセキュリティを拡張する。
【0106】
次に、処理はブロック712に進み、ここで、サーバ側TMD110はクライアント側TMD106によって送信された処理済みデータを傍受する。1つの実施形態では、サーバ側TMD110は、接続鍵の第2セットを使用して傍受されたデータを解読する。
【0107】
1つの実施形態では、サーバ側TMD110は、傍受され解読されたデータに対して更なる処理を実行する。1つの実施形態では、サーバ側TMD110は、傍受されて解読されたデータを増補、削除、解凍、又は修正を行う。
【0108】
次に、処理はブロック714に進み、ここで、サーバ側TMD110は、接続鍵の第2セットを使用して更なる処理済みデータを暗号化し、再暗号化されたデータを第2サーバ装置701に送信する。1つの実施形態では、データが傍受、解読、修正、再暗号化、転送、又は同様のことが行われたかどうかに関わらず、終端間暗号化接続(例えば、図1に示されるセキュアセッション(A)に含まれる接続)は、クライアント装置及び第2サーバ装置701の観点から損なわれないままである。
【0109】
次に、処理はブロック716に進み、ここで、第2サーバ装置701は、サーバ側TMD110によって送信されたデータを受信し、解読し、更に処理する。次に、処理は復帰ブロックで終了する。
【0110】
図8は、図4〜6の処理の1つの実施形態を全体的に図示する信号フロー図を示す。
【0111】
処理800は、ブロック504に関して上述したように、「CLIENT HELLO(クライアント ハロー)」ハンドシェークメッセージを送信するクライアント装置によって802で始まる。処理は804に進み、ここで、サーバ側TMD110が、ブロック504に関して上述したように、ハンドシェークメッセージを傍受し転送する。処理は806に進み、ここで、第1サーバが、ブロック504に関して上述したように、とりわけ「CLIENT HELLO(クライアント ハロー)」ハンドシェークメッセージを受信する。
【0112】
処理は808及び812に進み、ここで、ブロック504に関して上述したように、他のハンドシェークメッセージがクライアント装置と第1サーバ装置との間で交換される。
【0113】
処理は810に進み、ここで、クライアント装置によって生成され且つ第1サーバ装置の公開鍵でクライアント装置によって暗号化された乱数などの秘密データが、ブロック508に関して上述したように、第1サーバ装置の秘密鍵を使用してサーバ側TMD110によって他のハンドシェークメッセージから抽出される。
【0114】
処理は、任意選択的に813に進み、ここで、810で生成された秘密データなどの秘密データが、クライアント側TMD106によって受信される。1つの実施形態では、この秘密データを用いて、接続鍵を生成することができる。これに加えて、或いは代替として、接続鍵は、クライアント側TMD106によって受信することができる。1つの実施形態では、秘密データ又は接続鍵の何れかをサーバ側TMD110によってクライアント側TMD106に送信することができる。クライアント側TMD106が接続鍵を受信又は生成すると、クライアント側TMD106は、接続を通じて送信されたときに暗号化データを傍受及び拡張することができる。
【0115】
処理は814に進み、ここで、ブロック602に関して上述したように、再ネゴシエーション要求がサーバ側TMD110によってクライアント装置に送信される。
【0116】
処理は816及び820に進み、ここで、再ネゴシエーション要求の受信に応答して、ブロック412に関して上述したように、クライアント装置がハンドシェークメッセージの第2セットの交換を開始する。
【0117】
処理は618に進み、ここで、ブロック604及び606に関して上述したように、サーバ側TMD110が、ハンドシェークメッセージの第2セットを傍受し、解読し、第2サーバに向けてリダイレクトする。
【0118】
処理は822に進み、ここで、図7に関して上述したように、サーバ側TMD110が接続鍵の第2セットをクライアント側TMD106に送信する。
【0119】
処理は824及び826に進み、ここで、要求された再ネゴシエーションの結果としてクライアント装置と第1サーバ装置との間に最初に設定されていた終端間接続が変更されることにより、暗号化接続が、クライアント装置と第2サーバ装置との間に再設定される。
【0120】
(ボーダー・ゲートウェイ・プロトコル(BGP)一斉送信に基づくルーティングのための例示的な動作環境)
図9は、ボーダー・ゲートウェイ・プロトコル(BGP)を利用して、クライアント側トラフィック管理装置910を介してクライアント装置902、904、及び906からトラフィックを送ることができる例示的な環境900の構成要素を示す。1つの実施形態では、クライアント装置902、904、及び906は、遠隔領域901に地理的に位置付けられ、クライアント装置902、904、及び906は通常、クライアント側TMDを介してインターネットに接続されていない。その結果、クライアント装置902、904、及び906は通常、ネットワーク920を介して本部903と直接通信するルータ912、914、及び916をそれぞれ介してデータを送信する。この接続は、ルータ912とネットワーク920間の破線で示されている。
【0121】
しかしながら、クライアント側TMD910などの単一のクライアント側トラフィック管理装置を介して、クライアント装置902、904、及び906の1つ又は全てからのトラフィックを送ることが望ましい場合が多い。例えば、遠隔領域901における全ての支店に対してクライアント側TMDを配備することは費用効率が高くないが、遠隔領域901において一部の又は全ての支店に対して単一のクライアント側TMDを配備することは費用効率が高いとすることができる。幾つかの実施形態では、クライアント側TMD910は、本部903から遠隔にある図9に示されるような遠隔TMDと考えることができる。
【0122】
1つの実施形態では、クライアント側TMD910は、BGPプロトコルを使用してメッセージを一斉送信するよう構成することができる。1つの実施形態では、クライアント側TMD910は、本部903への最適ルートを知っていることを示すBGPプロトコルメッセージを一斉送信することができる。このため、このBGPメッセージがルータ912、914、及び916に伝播した後、これらのルータは、クライアント装置902、904、及び906による要求をネットワーク908を介してクライアント側TMD910にルーティングする。クライアント側TMD910によって受信されると、クライアント装置とサーバ装置との間の通信を図7に関して上述したように最適化することができる。
【0123】
図面及びフローチャート様式の例図におけるステップの組合せは、コンピュータプログラム命令によって実施できることは理解されるであろう。これらのプログラム命令は、機械を製造するためにプロセッサに提供することができ、これによって、プロセッサで実行される命令が、フローチャートの1つ又は複数のブロックで指定された動作を実施するための手段を作成するようになる。コンピュータプログラム命令は、プロセッサによって実行されて、プロセッサによって実行される一連の動作ステップがコンピュータ実行処理を作成するようにし、これによってプロセッサ上で実行される命令が、フローチャートの1つ又は複数のブロックで指定される動作を実行するステップを提供するようにすることができる。これらのプログラム命令は、コンピュータ可読記憶媒体などのコンピュータ可読媒体又は機械可読媒体に記憶することができる。
【0124】
従って、本例示は、指定の動作を実行する手段の組み合わせ、指定動作を実行するステップの組み合わせ、及び指定動作を実行するためのプログラム命令手段をサポートする。フローチャートによる例示の個々のブロック、及びフローチャートによる例示内のブロックの組み合わせは、指定動作又はステップを実行する特殊用途向けハードウェアベースのシステム、又は特殊用途向けハードウェア及びコンピュータ命令の組み合わせなどのモジュールにより実施できる点も理解されるであろう。
【0125】
上記の明細書、実施例、及びデータは、製造物を完全に説明し、記載の実施形態の構成の使用を提供するものである。本説明の思想及び範囲から逸脱することなく多くの実施形態が可能であるので、これらの実施形態は以下に添付する特許請求の範囲に属する。
【符号の説明】
【0126】
100 記載の実施形態を実施することができる例示的な環境の構成要素
102 クライアント装置
103 クライアント装置
104 クライアント装置
106 クライアント側トラフィック管理装置
107 支店
108 ネットワーク
110 サーバ側トラフィック管理装置
111 サーバ装置秘密鍵
112 サーバ装置
114 サーバ装置
115 認証サーバ装置
116 秘密データ
118 サードパーティコンテンツプロバイダ
120 本部
図1
図2
図3
図4
図5
図6
図7
図8
図9