説明

プレカルキュレーテッド暗号データを用いた迅速なSSL検査

【課題】セキュアなネットワーク接続を検査するための方法およびコンピュータ可読保存媒体を提供する。
【解決手段】1つ以上のプレカルキュレーテッド暗号データ(PCCD)のセットがセキュアな通信プロトコルに従って定義されてよい。1つ以上のPCCDのセットは、複数のポートユニットのうちの第1のポートユニットおよび第2のポートユニット内に各々位置する第1のPCCDのメモリおよび第2のPCCDのメモリに保存されてよい。各PCCDのセットは、第1のパラメータおよび第1のパラメータを暗号化することによって生成される第2のパラメータを少なくとも含んでよい。検査下のネットワークを介して、第1のポートユニットと第2のポートユニットとの間のシミュレートされたセキュアな接続が、解読処理を実行することなく、1つ以上のPCCDのセットから選択されたPCCDのセットを用いて開かれてよい。

【発明の詳細な説明】
【技術分野】
【0001】
(著作権およびトレードドレスについての通知)
本特許文献の開示の一部は著作権保護に対象となるマテリアルを含む。本特許文献は、保有者のトレードドレスである、またはトレードドレスとなり得る事柄を示し、および/または記載する場合がある。著作権およびトレードドレスの保有者は、いかなる者であっても米国特許商標局の書類または記録の通りに本特許開示を複製する限りで、異議を申し立てるものではないが、その他の場合には、いかなる場合であっても全ての著作権およびトレードドレスの権利を保留するものである。
【0002】
本開示は、ネットワークまたはネットワークデバイスを検査するためのトラフィックを受信および処理することに関する。
【背景技術】
【0003】
多くのタイプの通信ネットワークにおいて、送信される各メッセージは固定長または可変長の部分へと分割される。各々の部分は、情報のパケット、フレーム、セル、データグラム、データ単位、または他の情報単位として呼ばれる場合があり、それらの全ては、本明細書において、パケットとして参照される。
【0004】
各パケットは、通常、パケットのペイロードと呼ばれる元のメッセージの一部を含む。パケットのペイロードはデータを含んでよく、あるいは、音声情報またはビデオ情報を含んでもよい。パケットのペイロードはまた、ネットワーク管理および制御情報を含んでもよい。さらに、各パケットは、通常、パケットヘッダと呼ばれる識別およびルーティング情報を含む。パケットはネットワークを通じて複数のスイッチまたはノードを介して個々に送信される。パケットは、目的とするデバイスまたはエンドユーザにメッセージが配信される前に、パケットヘッダに含まれる情報を用いて最終的な送り先にてメッセージに再構築される。受信側において、その再構築されたメッセージは、ユーザの装置に適合するフォーマットでエンドユーザに送られる。
【0005】
メッセージをパケットとして送信する通信ネットワークは、パケット交換ネットワークと呼ばれる。パケット交換ネットワークは、通常、ハブまたはノードで交差する送信パスのメッシュを含む。ノードの少なくとも一部は、ノードに到着するパケットを受け取り、適切な発信パスに沿ってパケットを再送信するスイッチングデバイスまたはルータを備えてよい。パケット交換ネットワークは、業界標準のプロトコルのレイヤ別の構造によって制御される。その構造のレイヤ1、2、3、4、およびレイヤ7は各々、物理レイヤ、データリンクレイヤ、ネットワークレイヤ、トランスポートレイヤ、およびアプリケーションレイヤである。
【0006】
レイヤ1のプロトコルは、ネットワークのノード間での物理的な(電気的、光学的、または無線の)インターフェースを規定する。レイヤ1のプロトコルは、イーサネット(登録商標)の物理的コンフィグレーション、SONET(同期光学的ネットワーク)、および他の光学接続プロトコル、ならびに、Wi−Fi(登録商標)等の様々な無線プロトコルを含む。
【0007】
レイヤ2のプロトコルは、データがネットワークのノード間を論理的に転送される方法を制御する。レイヤ2のプロトコルは、イーサネット(登録商標)、ATM(非同期転送モード)、フレームリレー、およびPPP(ポイント・ツー・ポイント・プロトコル)を含む。
【0008】
レイヤ3のプロトコルは、ネットワークの複数のノードを接続するパスに沿ってソースから送り先へパケットがルーティングされる方法を制御する。主要なレイヤ3のプロトコルは周知のインターネットプロトコルバージョン4(IPv4)およびバージョン6(IPv6)である。パケット交換ネットワークは、イーサネット(登録商標)、ATM、FR、および/またはPPPのレイヤ2のプロトコルの混合体を用いてIPパケットをルーティングする必要がある場合もある。ネットワークのノードの少なくとも一部は、各パケット内に含まれるネットワークレイヤヘッダから、送り先アドレスを抽出するルータを備えてもよい。ルータは次いで、パケットが再送信されるべきルートまたはパスを決定するために送り先アドレスを用いる。通常のパケットは複数のルータを通過してよく、それらのルータの各々は送り先アドレスを抽出する行為およびそのパケットが再送信されるべきルートまたはパスを決定する行為を繰り返す。
【0009】
レイヤ4のプロトコルは、ネットワーク中でエンド・ツー・エンドのメッセージ配信を制御する。特に、通信制御プロトコル(TCP)は、必要に応じて、順次的な承認および再伝送のシステムを用いてパケットストリームの信頼性のある伝送を提供する。TCPは、2つのデバイスがネットワークを介した仮想接続を開くためにメッセージを交換するコネクション型のプロトコルである。接続がいったん開くと、接続されたデバイス間で双方向通信が生じ得る。接続はそれらのデバイスの一方によって切断されるまで存在し得る。接続を開くことおよび切断の両方は、特定のメッセージが2つのデバイス間で交換されるいくつかのステップを必要とする。予定されていた応答が所定の時間期間に一方のデバイスによって受信されない場合には、接続は切断されてよく、これは通常、「タイムアウト」と呼ばれる。TCP接続は、各々のデバイスが、接続の状態(開いているのか、確立されているのか、切断されているのか)、どのようなデータが送られているのか、そしてどのような送られたデータが承認されているのかを記載した情報を維持する必要があるゆえ、「ステートフル」とみなされる。
【0010】
レイヤ7プロトコル、すなわちアプリケーションレイヤプロトコルとしては、ハイパーテキスト転送プロトコル(HTTP)、シンプルメール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)、ポスト・オフィス・プロトコル(POP3)、および他のプロトコルが挙げられる。これらのレイヤ7プロトコルは通常、TCPプロトコルを用いて、ネットワークを介して通信する。一部の状況においては、レイヤ7プロトコルによって通信された情報は暗号化されてよい。通常、情報は、レイヤ7プロトコルとTCPプロトコルとの間で(実質的にはレイヤ5で)動作するセキュア(セキュリティ)ソケットレイヤ(SSL)またはトランスポート(トランスミッション)レイヤセキュリティ(TLS)プロトコルを用いて暗号化されてよい。
【0011】
従来、ルータおよびスイッチ等のネットワークデバイスは、レイヤ2で主に動作する、すなわち、ネットワークデバイスは、各イーサネット(登録商標)のパケットのレイヤ2のヘッダ内の情報に基づいて、ネットワークを介してパケットをルーティングする。ネットワークデバイスは一般にパケットのコンテンツを無視する。しかしながら、最近のネットワークデバイスはIPパケットのコンテンツの中を見るために、レイヤ2のヘッダだけで終わらない場合がある。ネットワークデバイスは、層4のヘッダを検査することによって、浅いパケット検査(shallow packet inspection)(ステートフルパケットの検査とも呼ばれる)を行う場合がある。一部のネットワークデバイスは、各パケットのペイロードのコンテンツの一部または全てを検査することによって、深いパケット検査(DPI:deep packet inspection)を行う。深いパケット検査(DPI)は、ウィルスおよび他の悪意のあるコードの伝搬を防ぎ、スパムにフィルターをかけ、プライベートネットワークへの権限のない侵入を防ぎ、一部の国ではインターネットのトラフィックを検閲し、および他の目的のために実行され得る。
【0012】
パケット交換通信ネットワーク、またはパケット交換通信ネットワーク内に含まれるデバイスを検査するために、多数のパケットを含む検査トラフィックが生成され、1つ以上のポートにおいてネットワークに送信され、かつ異なるポートにて受信されてもよい。これに関連して、用語「ポート」とは、ネットワークと、そのネットワークを検査するために用いられる装置との間の通信接続のことをいう。用語「ポートユニット」とは、ポートにおいて、ネットワークに接続するネットワーク検査装置内にあるモジュールのことをいう。受信された検査トラフィックは、ネットワークの性能を測定するために分析されてよい。ネットワークに接続された各ポートユニットは、検査トラフィックの送り元(source)および検査トラフィックのための宛先の両方であってもよい。各ポートユニットは、複数の論理送り元または宛先アドレスをエミュレートしてよい。
【0013】
ネットワーク、あるいはサーバ、サーバロードバランサ(負荷分散装置)、またはDPIを実行する任意のデバイス等のネットワークデバイスを検査するために、実際の接続を確立し、かつ検査下のネットワークを介して実際のデータを送信する必要がある場合がある。暗号化されたパケットの少なくとも部分的なDPIを実行するネットワークまたはネットワーク装置を検査するために、検査下のネットワークを介して多数のSSL/TLSを確立する必要がある場合がある。
【0014】
図1は、鍵交換のために、RSAを用い、SSLプロトコルに従った接続を確立および利用するためのプロセス100の簡略化したフローチャートを示す。プロセス100は、本特許出願において、SSL「ハンドシェイク」プロセスと呼ばれる。プロセス100は通常、ネットワークを介して通信するクライアント・コンピューティングデバイスおよびサーバ・コンピューティングデバイスによって実行される。プロセス100は、クライアントデバイスがSSL接続を開くことを決定した場合、105において始まり、通常は、クライアントおよびサーバデバイスの相互承認により、190で終了する。プロセス100は、通常SSLハンドシェイクと呼ばれるクライアントデバイスとサーバデバイスとの間でのメッセージの交換を含んでよい。
【0015】
110において、クライアントデバイスは、SSLプロトコルにおいて、「クライアントランダム数」(CRN)と呼ばれる第1のランダム数を生成する。クライアントデバイスは、次いで、SSLプロトコルにおいて、サーバデバイスへのCRNを含む、「client hello」メッセージと呼ばれるメッセージ115を送信する。このclient helloメッセージは、クライアントによってサポートされた圧縮プロトコルおよび暗号化プロトコルのリスト等の他の情報を含んでよい。
【0016】
client helloメッセージ115を受信した後、120において、サーバデバイスは、SSLプロトコルにおいて「サーバランダム数」(SRN)と呼ばれる第2のランダム数を生成する。サーバデバイスは、次いで、SSLプロトコルにおいて、クライアントデバイスへのSRNを含む、「server hello」メッセージと呼ばれるメッセージ125を送信し得る。server helloメッセージは、いったんSSL接続が確立されると用いられる圧縮プロトコルおよび暗号化プロトコル(client helloメッセージ115内に提供されたリストから)の選択等の他の情報を含んでよい。
【0017】
サーバデバイスは通常、クライアントデバイスに、server certificate127も送信する。server certificate127はクライアントがサーバを認証するのに必要とされる情報を含んでよい。server certificate127は、サーバデバイスに送信されるデータを暗号化するために、クライアントデバイスによって用いられ得るサーバ公開鍵を含んでよい。
【0018】
server certificateを受信し認証した後、クライアントデバイスは、「プリマスタシークレット(PMS:pre−master secret)と呼ばれる第3のランダム数を130にて生成する。140にて、クライアントデバイスは、server certificate127から、サーバ公開鍵を用いて、PMSを暗号化する。暗号化されたPMS(EPMS)は、次いで、「client key exchange」メッセージと通常呼ばれるメッセージ145において、サーバデバイスに送信される。EPMSは、150において、サーバ秘密鍵を用いてサーバデバイスによって解読される。PMSの暗号化は非対称とみなされる。なぜならば、PMSを暗号化および解読するために用いられる公開鍵および秘密鍵は異なるからである。
【0019】
160および165において、クライアントデバイスおよびサーバデバイスは、各々、CRN、SRN、およびPMSから、マスタシークレット(MS)を計算する。クライアントデバイスおよびサーバデバイスは同じMSを計算し、このMSは次いで、170および175において、対称の暗号化アルゴリズムを有して用いられて、SSL接続を介した今後の通信を暗号化および解読する。
【図面の簡単な説明】
【0020】
【図1】SSL/TLS(セキュアソケットレイヤ/トランスポートレイヤセキュリティ)接続を確立するために必要とされる暗号作成データを交換するためのプロセスのフローチャートである。
【図2】ネットワーク環境のブロック図である。
【図3】ポートユニットのブロック図である。
【図4】深いパケット検査(DPI)を実行するネットワークデバイスを検査するための検査セットアップのブロック図である。
【図5】所定の暗号作成データのグラフィック図である。
【図6】DPIを実行するネットワークを検査するためのプロセスのフローチャートである。
【図7】DPIを実行するネットワークを検査するための別のプロセスのフローチャートである。
【発明を実施するための形態】
【0021】
本記載全体を通じて、ブロック図に表される要素は、3桁の参照番号が割り当てられ、最上位桁は図面の番号であり、要素が導入され、下位2つの桁は要素に特定されるものである。ブロック図に関連して記載されない要素は、同じ参照番号を有する前述された要素として同じ特徴および機能を有するものとみなされてよい。
【0022】
(装置の記載)
図2はネットワーク環境のブロック図を示す。ネットワーク環境は、ネットワーク検査装置200、ネットワーク290、および複数のネットワークデバイス292を備えてよい。
【0023】
ネットワーク検査装置200は、ネットワーク検査デバイス、パフォーマンスアナライザ、適合性確認システム、ネットワークアナライザ、またはネットワーク管理システムであってよい。ネットワーク検査装置200は、1つ以上のネットワークカード206、およびシャーシ202内に含まれるかまたは包囲されたバックプレーン204を備えてよい。シャーシ202は、ネットワーク検査装置を含むのに適した固定型または可搬型のシャーシ、キャビネット、または筐体であってよい。ネットワーク検査装置200は図2に示すように一体化されたユニットであってよい。あるいは、ネットワーク検査装置200は、トラフィックの生成および/または分析を提供するように協動する複数の別個のユニットを備えてよい。ネットワーク検査装置200およびネットワークカード206は、例えば様々なイーサネット(登録商標)およびファイバーチャネル標準等の1つ以上の周知の規格またはプロトコルをサポートしてよく、かつ専用のプロトコルもサポートしてよい。
【0024】
ネットワークカード206は、1つ以上のフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、プログラマブル論理アレイ(PLA)、プロセッサおよび他の種類のデバイスを含んでもよい。さらに、ネットワークカード206はソフトウェアおよび/またはファームウェアを含んでもよい。用語、ネットワークカードは、ラインカード、テストカード、分析カード、ネットワークラインカード、ロードモジュール、インターフェースカード、ネットワークインターフェースカード、データインターフェースカード、パケットエンジンカード、サービスカード、スマートカード、スイッチカード、リレーアクセスカード等を含む。用語、ネットワークカードはまた、複数のプリント回路基板を含み得るモジュール、ユニット、およびアセンブリを含む。各ネットワークカード206は1つ以上のポートユニット210を含み得る。各ポートユニット210は、1つ以上のポートを介してネットワーク290に接続し得る。各ポートユニット210は、通信媒体295を介してネットワーク290に接続されてよく、この通信媒体295は、ワイヤ、光ファイバ、無線リンク、または他の通信媒体であってよい。各ネットワークカード206は、単一の通信プロトコルをサポートしてよく、複数の関連のプロトコルをサポートしてよく、または、複数の関連のないプロトコルをサポートしてもよい。ネットワークカード206は、ネットワーク検査装置200内に恒久的に設置されていてもよく、または着脱自在であってもよい。
【0025】
バックプレーン204は、ネットワークカード206のために、バスまたは通信媒体として機能してよい。バックプレーン204はまた、電極をネットワークカード206に提供し得る。
【0026】
ネットワークデバイス292は、ネットワーク290を介しての通信を可能にする任意のデバイスであってよい。ネットワークデバイス292は、ワークステーション、パーソナル・コンピュータ、サーバ、ポータブル・コンピュータ、携帯情報端末(PDA)、コンピューティング・タブレット、セル式電話/携帯電話、イーメール用装置等のコンピューティング・デバイス、プリンタ、スキャナ、ファクシミリ装置等の周辺機器、ネットワーク接続ストレージ(NAS)およびストレージ・エリア・ネットワーク(SAN)のデバイス等のディスクドライブを含むネットワーク対応のストレージデバイス、ロードバランサ(負荷分散装置)、ルータ、リレー、ハブ、スイッチ、ブリッジ、およびマルチプレクサ等のネットワーキング・デバイスであってよい。さらに、ネットワークデバイス292は、ネットワークを通じて通信することができる家庭電化器具、アラームシステムおよび他の任意のデバイスまたはシステムを含んでもよい。
【0027】
ネットワーク290は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)、有線、無線、またはこれらの組み合わせであってもよく、インターネットを含んでもよく、またはインターネットであってもよい。ネットワーク290上の通信は、情報のフレーム、セル、データグラム、パケットまたは他の単位を含む様々な形態をとってもよく、本明細書においては、それらの全てをパケットと称する。ネットワーク検査装置200およびネットワークデバイス292は、同時に相互に通信してもよく、ネットワーク検査装置200と所与のネットワークデバイス295との間には、複数の論理的通信経路があってもよい。ネットワークそのものは、移動するデータのための多数の物理的経路および論理的経路を提供する多数のノードから成ってもよい。
【0028】
ここで図3を参照し、例示的なポートユニット310は、ポート中央演算装ユニット(CPU)320と、トラフィックジェネレータユニット360と、トラフィックレシーバユニット380と、ポートユニット310を被検査ネットワーク390に接続するネットワークインターフェースユニット370とを備えてもよい。ポートユニット310は、ネットワークカード(例えばネットワークカード206)のすべてまたは一部であってもよい。
【0029】
ポートCPU320は、本明細書に記載される機能および特徴を提供するための、プロセッサ、プロセッサに接続されたメモリ、および様々な特殊化された装置、回路、ソフトウェアおよびインターフェースを含んでもよい。プロセス、機能および特徴は、全体的にあるいは部分的に、プロセッサ上で動作するソフトウェアにおいて実現されてもよく、ファームウェア、アプリケーションプログラム、アプレット(例えばJava(登録商標)アプレット)、ブラウザプラグイン、COMオブジェクト、ダイナミックリンクライブラリ(DLL)、スクリプト、1つ以上のサブルーチン、またはオペレーティングシステムのコンポーネントまたはサービスという形をとってもよい。ハードウェアおよびソフトウェアおよびそれらの機能は、一部の機能がプロセッサによって実行され、他の機能が他の装置によって実行されるように、分散型であってもよい。
【0030】
ポートCPU320は、検査アドミニストレータ305と通信してもよい。検査アドミニストレータ305は、ネットワーク検査装置200の内部に収容されるコンピューティングデバイスまたは外部のコンピューティングデバイスであってもよい。検査アドミニストレータ305は、ポートユニットがネットワーク390の検査に関与するために必要とされる命令およびデータを、ポートCPU320に提供してもよい。検査アドミニストレータ305から受信される命令およびデータは、例えば、ポートユニット310によって生成されるパケットストリームの定義、およびポートユニット310によって蓄積および報告され得るパフォーマンス統計の定義を含んでもよい。
【0031】
ポートCPU320は、トラフィックジェネレータユニット360にストリーム形成データ312を提供して、複数のストリームを形成させ得る。ストリーム形成データ312は、例えば、パケットのタイプ、送信の周波数、パケット内部の固定内容フィールドおよび可変内容フィールドの定義、および各パケットストリームのための他の情報を含んでもよい。トラフィックジェネレータユニット360は、次いで、ストリーム形成データ312に従って複数のストリームを生成してよい。複数のストリームは、発信検査トラフィック365を形成するためにインターリーブされてよい。各ストリームは一連のパケットを含んでよい。各ストリーム内のパケットは同様の一般的なタイプであってよいが、長さおよびコンテンツが異なっていてもよい。
【0032】
ネットワークインターフェースユニット370は、トラフィックジェネレータユニット360からの発信検査トラフィック365を、ワイヤ、光ファイバ、無線リンク、または他の通信リンクであり得るリンク395を介して、被検査ネットワーク390へと検査トラフィックを送信するように要求される、電気的、光学的、または無線による信号フォーマットに変換してよく同様に、ネットワークインターフェースユニット370は、ネットワークからリンク395を介して電気的、光学的、または無線による信号を受信してよく、かつ、トラフィックレシーバユニット380に対して利用可能なフォーマットに、着信する検査トラフィック375に受信される信号を変換してよい。
【0033】
トラフィックレシーバユニット380は、ネットワークインターフェースユニット370から着信検査トラフィック375を受信してよい。トラフィックレシーバユニット380は、各受信パケットが特定のフローのメンバーであるかを決定し得、また、ポートCPU320から提供された検査命令314に従って各フローに関する検査統計を蓄積し得る。蓄積された検査統計は、例えば、受信パケットの合計数、順序通りでなく受信されたパケットの数、エラーを有する受信パケットの数、最大、平均および最小の伝搬遅延、および各フローの他の統計を含んでもよい。トラフィックレシーバユニット380はまた、検査命令314に含まれる取得基準に従って、選択されたパケットを取得および格納してもよい。トラフィックレシーバユニット380は、検査セッションの最中または後におけるさらなる分析のために、検査統計および/または取得パケット384を、検査命令314に従って、ポートCPU320に提供してもよい。
【0034】
発信検査トラフィック365および着信検査トラフィック375は、主にステートレスであってもよい。すなわち、発信検査トラフィック365の十分な部分は、応答を予期することなくトラフィックジェネレータ360によって生成されてもよく、着信検査トラフィック375は、応答を意図することなくトラフィックレシーバ380によって受信されてもよい。ステートレスのトラフィックの送受信は、被検査ネットワーク390のレイヤ2およびレイヤ3の検査を行うのに十分であり得る。しかしながら、サーバ、サーバロードバランサ、またはDPIを実行する任意のデバイス等のネットワークデバイスのレイヤ4(またはそれよりも高いレイヤ)のパフォーマンスを検査するために、多数のTCP接続が、検査セッションの最中において、ポートユニット310と被検査ネットワーク390との間に必要とされる場合がある。暗号化された通信を処理または検査することができるネットワークまたはネットワークデバイスを検査するために、SSL接続等の多数のセキュアな接続が必要とされ得る。
【0035】
SSL接続を確立および使用するために、ポートCPU320は暗号化されたコンテンツを含む適切なTCPパケットを準備してよく、かつTCPパケット316をトラフィックジェネレータ360に提供してもよい。トラフィックジェネレータ360はTCPパケットを発信検査トラフィック365に挿入し得る。トラフィックレシーバ380は、受信されたステートレストラフィックから受信されたTCPパケットを分離し、かつ解読および処理のためにその受信されたTCPパケット382をポートCPU320に送信し得る。
【0036】
ネットワークまたはネットワークデバイスが検査されている場合、図4に示すように、図1のプロセス100におけるクライアントデバイスおよびサーバデバイスの役割は、ネットワーク検査装置400内で、クライアントポートユニット410およびサーバポートユニット415によって満たされてよい。クライアントポートユニット410およびサーバポートユニット415はネットワークデバイス492と通信してよく、ネットワークデバイス492はDPIを実行するデバイスであってよい。ネットワークデバイス492が独立して検査されている場合、クライアントポートユニット410およびサーバポートユニット415は通信メディア495、497を介してネットワークデバイス492に直接に接続してよい。ネットワークデバイス492が検査下のネットワークの一部である場合、クライアントポートユニット410およびサーバポートユニット415は、通信メディア495、497、およびネットワーク490を介してネットワークデバイスに接続し得る。
【0037】
ネットワークデバイスを検査する場合、SSL接続が確立できるレートは、ポートユニット410、415内で利用可能な処理力によって制限され得る。特に、図1の150において、サーバ秘密鍵を用いてEPMSを解読するには拡張処理が必要とされる。SSL接続を確立するのに必要とされる処理時間の約90%は150における解読作業に用いられる。このように、サーバポートユニット415によって実行される動作は、クライアントポートユニット410によって実行される動作よりも、より多くの処理時間を必要とする場合があり、その結果、クライアントポートユニット410は、サーバポートユニット415ができるより多くの、ユニット時間毎の接続を確立することができる。
【0038】
深いパケット検査(DPI)を実行するネットワークデバイスのパフォーマンスを検査する場合、SSL接続はSSLプロトコルに適合することが必要である。シミュレートされたセキュアな接続のコンテンツは、ネットワークデバイスの能力を検査するために、深いパケット検査およびセキュアなネットワークトラフィックの認証を実行するために、暗号化される必要がある。しかしながら、ネットワークトラフィックはネットワークデバイス492に対してセキュアにみえる必要があるが、シミュレートされたセキュアなSSL接続によって行われるデータが実際にセキュアである必要はない。従って、様々なランダム数生成およびSSLプロトコルの暗号化/解読作業(図1に示すように)は、ネットワークデバイスを検査する間、各SSL接続を開くよう実際に実行される必要はない。各SSL接続を開くように、ランダム数生成およびSSLプロトコルの暗号化/解読作業を実行する別の方法として、クライアントポートユニット410およびサーバポートユニット415は、プレコンピューテッド(プレカルキュレーテッド)暗号データ(PCCD:pre−computed(pre−calculated) cryptography data)を保存するために、各々のメモリ430および435を含んでよい。PCCDは、任意の解読を実行せず、かつ、場合によっては任意の暗号化またはランダム数生成を実行することなく、クライアントポートユニットとサーバポートユニットとの間の、シミュレートされたセキュアな接続を開くために用いられてよい。本出願において、「シミュレートされたセキュアな接続」とは、接続が通っているネットワークデバイスに対してセキュアであるように見えるが、実際にはセキュアではない、接続である。
【0039】
ここで図5を参照すると、PCCDメモリ500は、1つ以上のPCCDセット、510−1から510−N(ここでNは整数)を含んでよい。各PCCDセット510−1から510−Nは、CRN、SRN、サーバ公開鍵(SPK)、PMS、およびEPMS、ならびにMSのうちの1つ以上を含んでよい。各PCCDセット510−1から510−Nは、SSLプロトコルと一致していてよい。特に、各PCCDセット510−1から510−N内では、CRN、SRN、PMSはランダム数であってよく、EPMSは関連付けられたSPKも用いてPMSから計算されてよく、MSは、SSLプロトコルに従ってCRN、SRN、およびPMSから計算されてよい。PCCDメモリ500におけるPCCDセットは、例えば、図4における検査アドミニストレータ405等のコンピューティングデバイスによって、検査セッションの開始に先立って計算されてよい。検査セッションの開始に先立ったPCCDセットの計算は、ポートユニット310等の、ポートユニット内のポートCPUによって実行されてよく、または、検査アドミニストレータのコンピューティングデバイスと1つ以上のポートユニットとの間において配られていてもよい。
【0040】
再び図4を参照すると、1つ以上のPCCDセットは、例えば、検査アドミニストレータ405によって定義され、検査セッションの開始に先立って、PCCDメモリ430、435にアップロードされてよい。2つのみのポートユニット410、415が図4に示されてるが、ネットワーク検査装置は、3つ以上のポートユニットを有してよく、それらの各々が、検査セッションの間、クライアント、サーバ、またはそれら両方として動作するSSL接続を確立してよい。このように、ネットワーク検査装置400内のポートユニットの一部または全ては、PCCDセットを保存するために、各々のPCCDメモリを含んでよい。PCCDセットの定義および計算は、検査アドミニストレータ405と、ポートユニットを有する1つ以上のプロセッサとの間で配られていてもよい。
【0041】
(処理の記載)
図6は、ネットワークデバイスを検査するために、シミュレートされたSSL接続を確立して用いるためのプロセス600のフローチャートを示す。シミュレートされたSSL接続は、任意の実際の暗号化および解読処理なしに、従来のSSLハンドシェイクプロトコルをシミュレートする一連のメッセージを用いて確立されてよい。シミュレートされたSSL接続を介して送信されたデータは暗号化されてもよいが、実際にセキュアでなくともよい。プロセス600は、クライアント610として動作する第1のポートユニットおよびサーバ615として動作する第2のポートユニットによって実行されてもよい。クライアント610およびサーバ615は、検査下のネットワークデバイス(図示せず)を介して複数のメッセージを変更し得る。各々のSSL接続について、プロセス600は、クライアント610がSSL接続を開くことを決定するか、またはそのように命令された場合に、605において開始してよい。プロセス600は、通常、クライアント610およびサーバ615の相互の認証によって、690において終了してよい。プロセス600の複数のインスタンスは、複数のSSL接続を確立するように、連続して、および/または同時に、実行されてよい。プロセス600は複数のポートユニットによって同時に実行されてよく、それらの各々は、多数のSSL接続を確立するために、クライアントとして、またはサーバとして、あるいはそれら両方として動作する。
【0042】
695において、検査セッションのための準備の間および任意のSSL接続を確立するのに先立って、1つ以上のプレコンピューテッド暗号データ(PCCD)のセットが計算されてよく、かつ、クライアント610およびサーバ615におけるPCCDメモリに、および、存在する場合にはさらなるポートユニットにアップロードされてよい。例えば、各PCCDセットは、図5に示すように、SSLプロトコルに従って、CRN、SRN、PMS、EPMS、およびMSの一部または全てに対する値を含んでよい。各PCCDセットは、特定のサーバ公開鍵(SPK)を含んでもよく、またはそれに関連付けられていてもよい。695での動作はプロセス600の一部ではなく、確立されるSSL接続の数とは関係なく、検査セッション毎に一度のみ実行されてよい。PCCDセットは選択的にポートユニットに提供されてもよく、その結果、各ポートユニットはそれが検査セッション中に必要とするPCCDセットのみを受信し、または、一般的には(globally)、各ポートユニットは695で確立されたPCCDセットの全てを受信する。また、695において、検査セッションの間に用いられる全てのSPKは、各SPKに対応するサーバ秘密鍵、すなわち、対応のSPKを用いて暗号化された情報を解読するために用いられることができるサーバ秘密鍵と共に、検査下のネットワークに提供されてよい。
【0043】
620において、クライアント610は、メモリ、例えば図5のPCCDメモリから、PCCDのセットを検索することによって、シミュレートされたSSL接続を開始し得る。PCCDメモリが単一のPCCDセットを含む場合、クライアントによって開始された全てのシミュレートされたSSL接続は同じ暗号データを用いてもよい。PCCDメモリが複数のPCCDセットを含む場合、PCCDセットのうちの1つは、ランダムに、または順番に、あるいは一部の他の技術によって、620において選択されてもよい。クライアント610は、検査セッションのための命令に従って、特定のSPKを含むか、それに関連付けられたPCCDセットを選択してよい。クライアント610は、次いで、検索されたPCCDセットからサーバ615へ、CRNを含むclient helloメッセージ625を送信してよい。client helloメッセージ625は、クライアント610によってサポートされた圧縮プロトコルおよび暗号化プロトコルのリスト等の他の情報を含んでもよい。確立されているシミュレートされたSSL接続を介して送られるその後のパケットについての深いパケット検査(DPI)を可能にするために、検査下のネットワークは、client helloメッセージ625から、CRNおよび他の情報を抽出してよい。
【0044】
630において、client helloメッセージを受信した後、サーバ615は、受信されたメッセージから受信されたCRNを抽出してよく、かつ、サーバのPCCDメモリが、受信されたCRNと一致するCRNを含むPCCDセットを含むかどうかを決定し得る。サーバのPCCDメモリが、受信されたCRNと一致するCRNを含むPCCDセットを含まない場合、サーバ615は、630において、従来のSSLハンドシェイクプロセスに戻ってよい。従来のSSLプロセスに戻るために、サーバ615は、図1のプロセス100の動作120を行ってよい。サーバのPCCDメモリが、受信されたCRNと一致するCRNを含むPCCDセットを含まない場合、サーバ615は、630において、(例えば、client hello メッセージ625に応答しないことによって)接続を単に終了してよい。サーバのPCCDメモリが、受信されたCRNと一致するCRNを含むPCCDセットを含まない場合、サーバ615は630において一部の他の動作を実行してよい。
【0045】
630において、サーバのPCCDメモリが、受信されたCRNと一致するCRNを含むPCCDセットを含む場合、サーバ615は、SRN、SPK、PMS、EPMS、およびMSについての値を含む、一致するCRNを含むPCCDセットを検索してよい。サーバ615は、次いで、server helloメッセージ645をクライアント610に送信してよい。server helloメッセージ645は、640において、サーバのPCCDメモリから検索されるSRN、ならびに、いったんSSL接続が確立されると用いられる圧縮プロトコルおよび暗号化プロトコルの選択等の他の情報を含んでよい。
【0046】
確立されているシミュレートされたSSL接続を介して送られるその後のパケットについての深いパケット検査(DPI)を可能にするために、検査下のネットワークは、server helloメッセージ645から、SRNおよび他の情報を抽出してよい。
【0047】
サーバ615はまた、640において、server certificate647をクライアントに送信してよい。server certificate647は、640において、サーバのPCCDメモリから検索されたPCCDセットからのSPKを含んでよい。クライアント610が、プロセス600の間、サーバ公開鍵を使用し得ないとしても、server certificateは、検査下のネットワークのために、送信され得る。確立されているシミュレートされたSSL接続を介して送られるその後のパケットについての深いパケット検査(DPI)を可能にするために、検査下のネットワークは、server certificate647から、SPKを抽出してよい。
【0048】
650において、server helloメッセージを受信した後、クライアント610は、受信されたメッセージから受信されたSRNを抽出してよく、かつ、620において、受信されたSRNが、クライアントのPCCDメモリから検索された、予期されるSRNと一致するかどうか決定してよい。受信されたSRNが、予期されたSRNの値と一致しない場合、クライアント610は、655において、従来のSSLハンドシェイクプロセスに戻ってよい。従来のSSLプロセスに戻るために、クライアントは、図1のプロセス100の動作130を行ってよい。受信されたSRNが、予期されたSRNの値と一致しない場合、クライアント610は、655において、(例えば、server hello メッセージ645に応答しないことによって)接続を単に終了してよい。受信されたSRNが予期されたSRNの値に一致しない場合、クライアント610は、655において、一部の他の動作を実行してよい。
【0049】
660において、受信されたSRNが、予期されたSRNの値と一致する場合、クライアント610は、620において検索されたEPMSを含むclient key exchangeのメッセージ665を、サーバ615に送信してよい。クライアントからclient key exchangeのメッセージを受信した後、670で、サーバ615は、client key exchangeのメッセージから抽出された、受信されたEPMSが、640において、サーバのPCCDメモリから検索された、予期されたEPMSと一致するかどうかを決定してよい。受信されたEPMSが予期されたEPMSと一致しない場合、サーバ615は、675において、(例えば、クライアントからの任意のさらなるメッセージに応答しないことによって)接続を終了してよい。受信されたEPMSが予期されたEPMSと一致しない場合、サーバ615は、675において、一部の他の動作を実行してよい。
【0050】
確立されているシミュレートされたSSL接続を介して送られるその後のパケットについての深いパケット検査(DPI)を可能にするために、検査下のネットワークは、client key exchangeのメッセージ665から、EPMSを抽出してよい。検査下のネットワークは、server certificate647から以前に抽出されたSPKに関連付けられたサーバ秘密鍵を用いて、抽出されたEPMSから、プリマスタシークレットを計算してよい。検査下のネットワークはまた、client helloのメッセージおよびserver helloのメッセージ、ならびにプリマスタシークレットから抽出されたCRNおよびSRNを用いて、マスタシークレットを計算してよい。
【0051】
670で、受信されたEPMSが予期されたEPMSと一致する場合、クライアント610およびサーバ615は、620および640各々において、それらの個々のPCCDメモリから抽出されたMSに基づいて、対称暗号化を用いて、さらなるメッセージを交換し得る。あるいは、クライアント610およびサーバ615のいずれかまたは両方は、CRN、SRN、およびPMSからMSを計算し得、この場合、MSは各PCCD内には含まれる必要はない。クライアント610とサーバ615との間の暗号化された通信は、シミュレートされたSSL接続が690で終了されるまで、680および685にて継続してよい。検査下のデバイスはclient helloおよびserver hellowのメッセージ625/645、client key exchangeのメッセージ665から抽出されたEPMS、ならびにserver certificate647から抽出されたSPKに関連付けられたサーバ秘密鍵から抽出されたCRNおよびSRNに基づいて同じMSの値を計算するので、検査下のデバイスは、深いパケット検査(DPI)を実行するために暗号化された通信を解読してよい。
【0052】
図7は、ネットワークデバイスを検査するために、シミュレートされたSSL接続を確立し、それを用いるための別のプロセス700のフローチャートを示す。シミュレートされたSSL接続は、任意の非対称の暗号化または解読のプロセスなしに、従来のSSLハンドシェイクプロトコルをシミュレートする一連のメッセージを用いて確立されてよい。シミュレートされたSSL接続を介して送信されたデータは暗号化されてもよいが、実際にセキュアでなくともよい。プロセス600は、クライアント610として動作する第1のポートユニットおよびサーバ615として動作する第2のポートユニットによって実行されてもよい。プロセス600と比較すると、プロセス700は、PCCDデータを保存するために、メモリを大幅に必要としなくなっているが、クライアント710およびサーバ715内の追加の処理を必要とする。
【0053】
クライアント710およびサーバ715は、検査下のネットワークデバイス(図示せず)を介して複数のメッセージを変更し得る。各々のSSL接続について、プロセス700は、クライアント710がSSL接続を開くことを決定するか、またはそのように命令された場合に、705において開始してよい。プロセス700は、通常、クライアント710およびサーバ715の相互の認証によって、790において終了してよい。プロセス700の複数のインスタンスは、複数のSSL接続を確立するように、連続して、および/または同時に、実行されてよい。プロセス700の1つ以上のインスタンスは、プロセス600の1つ以上のインスタンスと同時に実行されてもよい。プロセス600および700は、複数のポートユニットによって同時に実行されてよく、それらの各々は、多数のSSL接続を確立するために、クライアントとして、またはサーバとして、あるいはそれら両方として動作する。
【0054】
795において、検査セッションのための準備の間および任意のSSL接続を確立するのに先立って、1つ以上のプレコンピューテッド暗号データ(PCCD)のセットが計算されてよく、かつ、クライアント710およびサーバ715におけるPCCDメモリに、および、存在する場合にはさらなるポートユニットにアップロードされてよい。795での動作はプロセス700の一部ではなく、確立されるSSL接続の数とは関係なく、検査セッション毎に一度のみ実行されてよい。各PCCDセットは、関連付けられたサーバ公開鍵(SPK)を用いて計算されたプリマスタシークレット(PMS)および暗号化プリマスタシークレット(EPMS)を含んでよい。サーバとして動作する各ポートユニットは、1つ以上のSPKの値が提供されてよい。サーバまたはクライアントのいずれかとして動作する各ポートユニットは、各SPKの値に関連付けられた1つ以上のPCCDセットが提供されてもよい。PCCDセットは選択的にポートユニットに提供されてもよく、その結果、各ポートユニットはそれが検査セッション中に必要とするPCCDセットのみを受信し、または、一般的には(globally)、各ポートユニットは795で確立されたPCCDセットの全てを受信する。795において、検査セッションの間に用いられる全てのSPKは、各SPKに対応するサーバ秘密鍵と共に、検査下のネットワークに提供されてよい。
【0055】
720において、クライアント710は、クライアントランダム数(CRN)を計算することによって、シミュレートされたSSL接続を開始し得る。クライアント710は次いで、CRNを含んだclient helloメッセージ725をサーバ715に送ってよい。client helloメッセージ725は、クライアント710によってサポートされた圧縮プロトコルおよび暗号化プロトコルのリスト等の他の情報を含んでもよい。確立されているシミュレートされたSSL接続を介して送られるその後のパケットについての深いパケット検査(DPI)を可能にするために、検査下のネットワークは、client helloメッセージ725から、CRNおよび他の情報を抽出してよい。
【0056】
730において、client helloメッセージを受信した後、サーバ715はサーバランダム数(SRN)を計算し、かつserver helloメッセージ745をクライアント710に送信してよい。server helloメッセージ745は、計算されたSRN、ならびに、いったんSSL接続が確立されると用いられる圧縮プロトコルおよび暗号化プロトコルの選択等の他の情報を含んでよい。
【0057】
確立されているシミュレートされたSSL接続を介して送られるその後のパケットについての深いパケット検査(DPI)を可能にするために、検査下のネットワークは、server helloメッセージ745から、SRNおよび他の情報を抽出してよい。
【0058】
サーバ715はまた、740において、server certificate740をクライアントに送信してよい。server certificate740は、795において、サーバ715に割り当てられたSPKの値を含んでよい。SPKの値は、795において、サーバ715に割り当てられた複数のSPKの値から選択されてよい。確立されているシミュレートされたSSL接続を介して送られるその後のパケットについての深いパケット検査(DPI)を可能にするために、検査下のネットワークは、server certificateのメッセージ740から、SPKを抽出してよい。
【0059】
server helloのメッセージを受信した後、750において、クライアント710は、受信されたメッセージから受信されたSRNを抽出してよい。750において、クライアントはまた、server certificate740からSPKを抽出してもよい。クライアント710は次いで、クライアントのPCCDメモリから、抽出されたSPKに関連付けられたPCCDセットを検索してよい。PCCDセットは、PMSおよびEPMSを含んでよい。クライアント710は次いで、検索されたPCCDセットからサーバ715へ、EPMSを含むclient key exchangeメッセージ755を送信してよい。
【0060】
確立されているシミュレートされたSSL接続を介して送られるその後のパケットについての深いパケット検査(DPI)を可能にするために、検査下のネットワークは、client key exchangeのメッセージ755から、EPMSを抽出してよい。検査下のネットワークは、server certificate647から以前に抽出されたSPKに関連付けられたサーバ秘密鍵を用いて、EPMSから、PMSを計算してよい。検査下のネットワークはまた、client helloのメッセージおよびserver helloのメッセージ、ならびにPMSから抽出されたCRNおよびSRNを用いて、マスタシークレットをさらに計算してよい。
【0061】
クライアントからclient key exchangeのメッセージ755を受信した後、760で、サーバ715は、client key exchangeのメッセージから抽出された、受信されたEPMSが、640において、サーバのPCCDメモリにおけるEPMSの値と一致するかどうかを決定してよい。受信されたEPMSが予期されたEPMSの値と一致しない場合、サーバ715は、通常、EPMSからPMSを(サーバ秘密鍵を用いて)計算してよい。あるいは、サーバ715は、接続を終了してもよく、または受信されたEPMSが予期されたEPMSと一致するかどうか一部の他の動作を行ってもよい。
【0062】
受信されたEPMSが、760において、予期されたEPMSと一致した場合、サーバ715は、775で、そのPCCDメモリから、関連付けられたPMSを検索してよく、かつ、CRN、SRN、および検索されたPMSに基づいてマスタシークレット(MS)を計算してよい。同様に、クライアント710は、770において、そのPCCDメモリから同じPMSを検索してよく、CRN、SRN、および検索されたMSに基づいて、同じMSを計算してよい。
【0063】
クライアント710およびサーバ715は、770および775において計算されたMSに基づいた対称暗号化を用いて追加のメッセージを交換してよい。クライアント710とサーバ715との間の暗号化された通信は、シミュレートされたSSL接続が790で終了されるまで、780および785にて継続してよい。検査下のデバイスは同じMSの値を計算するので、検査下のデバイスは、深いパケット検査(DPI)を実行するために、暗号化された通信を解読してよい。
【0064】
前述の例がSSLプロトコルに基づいている一方で、その同じ技術は、非対称暗号化を必要とするハンドシェイクを用いる接続を確立する他のセキュリティプロトコルに提供されてもよい。他のセキュリティプロトコルに従ってシミュレートされたセキュアな接続を確立するために説明された各PCCDは、各々の暗号化キーに関連付けられてもよく、各PCCDセットは、第1のパラメータ、および、その第1のパラメータを、それに関連付けられた暗号化キーを用いて暗号化することによって生成される第2のパラメータを含んでよい。
【0065】
(終わりに)
本記載全体を通して、示された実施形態および例は、開示された、または特許請求の範囲において請求された装置および手順についての限定ではなく、典型例として想定されるべきものである。本明細書において提示された例の多くは、方法の作用またはシステムの要素の特定の組合せに関連するものであるけれども、それらの作用およびそれらの要素は、他の方法において、組み合わされてよく、同じ課題を達成するものとして理解されるべきである。フローチャートに関して、追加の工程および工程の削減もまた考慮されてよく、図示した工程は、本明細書において記載された方法を達成するために組み合わされてもよく、またはさらに改良されてもよい。1つの実施形態のみに関連して記載された作用、要素、および特徴は、他の実施形態における同様の役割から排除されることは意図されていない。
【0066】
本明細書において用いられるように、「複数」とは、2つ以上を意味する。本明細書において用いられるように、「一連の」物品とは、1つ以上のそのような物品を含み得る。本明細書において用いられるように、明細書の記載または特許請求の範囲の請求項においては、用語「含む、備える(comprising)」、「含む、備える(including)」「運ぶ、有する、持つ(carrying)」、「有する(having)」、「含む(containing)」、「含む、関する、関連する(involving)」等は、オープンエンド型、すなわち、含むがそれらに限定されないということを意味することは理解されるべきである。「〜からなる」および「〜から実質的になる」といった移行句の各々のみが、特許請求の範囲の請求項に関しては、クローズ型、または半クローズ型の移行句である。請求項の要素を変更するために、特許請求の範囲の請求項における「第1」、「第2」、「第3」等の序数の用語の使用は、それ自体では、任意の優先順位、優位性、またはある請求項の要素が他のものより先であったり、または、ある方法の作用が行われる時間的順序等を含意せず、請求項の要素を区別するために、特定の名前を有するある請求項の要素から、同じ名前を有する別の要素を区別するためのラベルとして(順序を示す用語の使用を別にして)単に用いられる。本明細書において用いられるように、「および/または」は、リストアップされた物品が二者択一であることを意味するが、そうした二者択一もまた、そうしてリストアップされた物品の任意の組合せを含むものである。

【特許請求の範囲】
【請求項1】
検査下のネットワークに接続された複数のポートユニットを含む検査システムによって実行される方法であって、
前記複数のポートユニットのうちの第1のポートユニットおよび第2のポートユニット内に各々位置する第1のPCCD(プレカルキュレーテッド暗号化データ)メモリおよび第2のPCCDメモリにおける1つ以上のPCCDのセットを保存する工程であって、各PCCDのセットは、第1のパラメータおよび前記第1のパラメータを暗号化することによって生成される第2のパラメータを少なくとも含む、工程と、
前記1つ以上のPCCDのセットから選択されたPCCDのセットを用いて、前記検査下のネットワークを介して、前記第1のポートユニットと前記第2のポートユニットとの間のシミュレートされたセキュアな接続を開く工程であって、前記シミュレートされたセキュアな接続は、解読処理を実行することなく開かれる、工程と
を含む、方法。
【請求項2】
前記シミュレートされたセキュアな接続を開く工程は、前記第1のポートユニットおよび前記第2のポートユニットが、前記検査下のネットワークを介して前記選択されたPCCDのセットからのデータを含むメッセージを交換する工程を含む、請求項1に記載の方法。
【請求項3】
前記シミュレートされたセキュアな接続は、前記検査下のネットワークに対しては、セキュアな通信プロトコルに適合しているようにみえる、請求項1に記載の方法。
【請求項4】
前記セキュアな通信プロトコルは、少なくとも1つのメッセージを暗号化するために、サーバ秘密鍵および対応のサーバ公開鍵に基づいて非対称暗号化を利用し、
各PCCDのセットは、検査セッションの間に用いられる複数の暗号化キーからの個々の暗号化キーに関連付けられており、
各PCCDのセットの前記第2のパラメータは、前記関連付けられた暗号化キーを用いて前記PCCDのセットの前記第1のパラメータを暗号化することによって生成される、請求項3に記載の方法。
【請求項5】
検査セッションの間メッセージを暗号化するために用いられる前記複数の暗号化キー、および前記検査セッションの開始に先立って、前記検査下のネットワークに対する前記メッセージを解読するために用いられる対応の複数の解読キーを提供する工程をさらに含む、請求項4に記載の方法。
【請求項6】
前記セキュアな通信プロトコルは、セキュアソケットレイヤ(SSL)またはトランスミッションレイヤセキュリティ(TLS)プロトコルであり、
各PCCDのセットにおける前記第1のパラメータはプレマスタシークレット(PMS)であり、各PCCDのセットにおける前記第2のパラメータは、前記SSL/TLSプロトコルに従った暗号化されたプレマスタシークレット(EPMS)である、請求項3に記載の方法。
【請求項7】
前記第2のポートユニットが、前記検査下のネットワークを介して前記複数の暗号化キーからのサーバ公開鍵を含むserver certificateを、前記第1のポートユニットへ送信する工程と、
前記第1のポートユニットが、前記第1のPCCDメモリから、前記server certificateからの前記SPKに関連付けられたPCCDのセットを検索する工程と、
前記第1のポートユニットが、前記検査下のネットワークを介して、前記検索されたPCCDのセットからの前記EPMSを、前記第2のポートユニットへ送信する工程と
をさらに含む、請求項6に記載の方法。
【請求項8】
前記第2のポートユニットは、前記第2のPCCDメモリが、前記第1のポートユニットによって送信される前記EMPSと一致するEPMSを含むPCCDのセットを含むかどうかを決定する工程をさらに含む、請求項7に記載の方法。
【請求項9】
前記第2のPCCDメモリが、前記第1のポートユニットによって送信された前記EPMSと一致するEPMSを含むPCCDのセットを含んでいない場合、前記第2のポートユニットは従来のSSLハンドシェイク方法に戻る工程をさらに含む、請求項8に記載の方法。
【請求項10】
前記第2のPCCDメモリが、前記第1のポートユニットによって送信された前記EPMSと一致するEPMSを含むPCCDのセットを含んでいない場合、前記第2のポートユニットは、前記第1のポートユニットと前記第2のポートユニットとの間の前記シミュレートされたセキュアな接続を終了する工程をさらに含む、請求項8に記載の方法。
【請求項11】
前記第2のPCCDメモリが、前記第1のポートユニットによって送信された前記EPMSと一致するEPMSを含むPCCDのセットを含む場合、
前記第2のポートユニットは、前記第1のポートユニットによって送信された前記EPMSと一致する前記EPMSを含む前記PCCDのセットを検索する工程と、
前記第1のポートユニットおよび前記第2のポートユニットは、それらの各々の検索されたPCCDのセットから、前記PMSに部分的に基づいて計算されたMSに基づいて、対称暗号化を用い、前記シミュレートされたセキュアな接続を介して通信する工程と
をさらに含む、請求項8に記載の方法。
【請求項12】
各PCCDのセットは、クライアントランダム数(CRN)、サーバランダム数(SRN)、ならびに、SSL/TLSプロトコルに従った前記CRN、前記SRN、および前記PMSから計算されるマスタシークレット(MS)をさらに含む、請求項6に記載の方法。
【請求項13】
セキュアソケットレイヤまたはトランスポートレイヤセキュリティ(SSL/TLS)プロトコルに従ってセキュアなネットワーク接続を検査するためにクライアントとして動作する第1のポートユニットによって実行される方法であって、
前記第1のポートユニット内のPCCDメモリにおける1つ以上のPCCDのセットを保存する工程であって、各PCCDのセットは各々のサーバ公開鍵(SPK)に関連付けられ、各PCCDのセットは、プレマスタシークレット(PMS)および前記関連付けられたSPKを用いて、前記PMSを暗号化することによって生成される暗号化されたプレマスタシークレット(EPMS)を含む、工程と、
検査下のネットワークを介して第2のポートユニットからserver certificateを受信する工程であって、前記server certificateは受信されたSPKを含む、工程と、
前記PCCDメモリに保存された前記1つ以上のPCCDのセットから前記受信されたSPKに関連付けられたPCCDを選択する工程と、
前記検査下のネットワークを介して、前記選択されたPCCDのセットからの前記EPMSを、前記第2のポートユニットへ送信する工程と
を含む、方法。
【請求項14】
前記server certificateを受信するのに先立って、
前記検査下のネットワークを介して、クライアントランダム数(CRN)を含むclient helloメッセージを前記第2のポートユニットに送信する工程と、
前記client helloメッセージに応答して、サーバランダム数(SRN)を含むserver helloメッセージを受信する工程と
をさらに含む、請求項13に記載の方法。
【請求項15】
前記選択されたPCCDのセットの前記CRN、前記SRN、および前記PMSから計算されたマスタシークレットに基づいて、対称暗号化を用い、前記検査下のネットワークを介して、前記第2のポートユニットと、シミュレートされたセキュアなメッセージを交換する工程をさらに含む、請求項14に記載の方法。
【請求項16】
セキュアソケットレイヤまたはトランスポートレイヤセキュリティ(SSL/TLS)プロトコルに従って、セキュアなネットワーク接続を検査するために、サーバとして動作する第1のポートユニットによって実行される方法であって、
前記第1のポートユニット内にPCCDメモリにおける1つ以上のPCCDのセットを保存する工程であって、各PCCDのセットは各々のサーバ公開鍵(SPK)に関連付けられ、各PCCDのセットは、プレマスタシークレット(PMS)および前記関連付けられたSPKを用いて、前記PMSを暗号化することによって生成される暗号化されたプレマスタシークレット(EPMS)を含む、工程と、
検査下のネットワークを介して、第2のポートユニットからクライアントランダム数(CRN)を含むclient helloメッセージを受信する工程と、
前記client helloメッセージに応答して、前記検査下のネットワークを介して、前記第2のポートユニットへ、server helloメッセージおよびserver certificateを送信する工程であって、前記server helloメッセージはサーバランダム数(SRN)を含み、前記server certificateは、PCCDメモリに保存された前記1つ以上のPCCDのセットからの選択されたPCCDのセットに関連付けられたSPKを含む、工程と
を含む、方法。
【請求項17】
前記検査下のネットワークを介して、前記第2のポートユニットから、client key exchangeメッセージを受信する工程と、
前記client key exchangeメッセージから抽出された、受信されたEPMSが、前記選択されたPCCDのセットからの前記EPMSと一致するかどうかを決定する工程と、
前記受信されたEPMSが前記選択されたPCCDのセットからの前記EPMSと一致しない場合、前記第1のポートユニットと前記第2のポートユニットとの間の通信を終了する工程と、
前記受信されたEPMSが前記選択されたPCCDのセットからの前記EPMSと一致する場合、前記選択されたPCCDのセットからの、前記CRN、前記SRN、および前記PMSから計算されるMSに基づいた対称暗号化を用い、前記検査下のネットワークを介して、前記第2のポートユニットと通信する工程と
をさらに含む、請求項16に記載の方法。
【請求項18】
第1のコンピューティングデバイスによって実行された場合、セキュアソケットレイヤまたはトランスポートレイヤセキュリティ(SSL/TLS)プロトコルに従ってセキュアなネットワーク接続を検査するために、前記第1のコンピューティングデバイスをクライアントとして動作させる命令を保存するコンピュータ可読保存媒体であって、
前記第1のコンピューティングデバイスは、前記第1のコンピューティングデバイスに接続されたPCCDメモリにおける1つ以上のPCCDのセットを保存する工程であって、各PCCDのセットは各々のサーバ公開鍵(SPK)に関連付けられ、各PCCDのセットは、プレマスタシークレット(PMS)および前記関連付けられたSPKを用いて、前記PMSを暗号化することによって生成される暗号化されたプレマスタシークレット(EPMS)を含む、工程と、
検査下のネットワークを介して第2のコンピューティングデバイスからserver certificateを受信する工程であって、前記server certificateは受信されたSPKを含む、工程と、
前記PCCDメモリに保存された前記1つ以上のPCCDのセットから前記受信されたSPKに関連付けられたPCCDを選択する工程と、
前記検査下のネットワークを介して、前記選択されたPCCDのセットからの前記EPMSを、前記第2のコンピューティングデバイスへ送信する工程と
を含む動作を実行する、コンピュータ可読保存媒体。
【請求項19】
実行される前記動作は、
前記server certificateを受信するのに先立って、前記検査下のネットワークを介して、クライアントランダム数(CRN)を含むclient helloメッセージを前記第2のコンピューティングデバイスに送信する工程と、
前記client helloメッセージに応答して、サーバランダム数(SRN)を含むserver helloメッセージを受信する工程と
をさらに含む、請求項18に記載のコンピュータ可読保存媒体。
【請求項20】
実行される前記動作は、前記選択されたPCCDのセットの前記CRN、前記SRN、および前記PMSから計算されたマスタシークレットに基づいて、対称暗号化を用い、前記検査下のネットワークを介して、前記第2のコンピューティングデバイスと、シミュレートされたセキュアなメッセージを交換する工程をさらに含む、請求項19に記載のコンピュータ可読保存媒体。
【請求項21】
第1のコンピューティングデバイスによって実行された場合、セキュアソケットレイヤまたはトランスポートレイヤセキュリティ(SSL/TLS)プロトコルに従ってセキュアなネットワーク接続を検査するために、前記第1のコンピューティングデバイスをサーバとして動作させる命令を保存するコンピュータ可読保存媒体であって、
前記第1のコンピューティングデバイスは、前記第1のコンピューティングデバイスに接続されたPCCDメモリにおける1つ以上のPCCDのセットを保存する工程であって、各PCCDのセットは各々のサーバ公開鍵(SPK)に関連付けられ、各PCCDのセットは、プレマスタシークレット(PMS)および前記関連付けられたSPKを用いて、前記PMSを暗号化することによって生成される暗号化されたプレマスタシークレット(EPMS)を含む、工程と、
検査下のネットワークを介して、第2のコンピューティングデバイスからクライアントランダム数(CRN)を含むclient helloメッセージを受信する工程と、
前記client helloメッセージに応答して、前記検査下のネットワークを介して、前記第2のコンピューティングデバイスへ、server helloメッセージおよびserver certificateを送信する工程であって、前記server helloメッセージはサーバランダム数(SRN)を含み、前記server certificateは、PCCDメモリに保存された前記1つ以上のPCCDのセットからの選択されたPCCDのセットに関連付けられたSPKを含む、工程と
を含む動作を実行する、コンピュータ可読保存媒体。
【請求項22】
前記検査下のネットワークを介して、前記第2のコンピューティングデバイスから、client key exchangeメッセージを受信する工程と、
前記client key exchangeメッセージから抽出された、受信されたEPMSが、前記選択されたPCCDのセットからの前記EPMSと一致するかどうかを決定する工程と、前記受信されたEPMSが前記選択されたPCCDのセットからの前記EPMSと一致しない場合、前記第2のコンピューティングデバイスとの通信を終了する工程と、
前記受信されたEPMSが前記選択されたPCCDのセットからの前記EPMSと一致する場合、前記選択されたPCCDのセットからの、前記CRN、前記SRN、および前記PMSから計算されるマスタシークレットに基づいた対称暗号化を用い、前記検査下のネットワークを介して、前記第2のコンピューティングデバイスと通信する工程と
をさらに含む、請求項21に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate