(57)【要約】  “正直な”とは良い単語である。悲しいことに、この世界の一部の人々は、正直でない。拡大するネットワーク世界において、不正直な人々は、あなたが実行、ダウンロード、アクセスなどしているものをモニタし、あなたのネットワーク上の通信制御及び音声データ若しくは他のプロトコルを盗聴若しくはハイジャックするためなど、他人のネットワーキング活動をモニタ若しくは介入するため、秘密データを不正取得する多数の機会を見つけてきた。このようなリスクを解消するため、典型的には、ＴＬＳやＳＳＬなどのセキュア通信プロトコルが通信を保護するため利用されている。残念なことに、ＴＬＳ、ＳＳＬ及び他の多くのセキュリティ環境は、基礎となる通信プロトコルがＴＣＰ／ＩＰであることを要求し、ＶｏＩＰ、ＲＴＰ、ＳＮＭＰなどの通信プロテクションを必要とする一部のプロトコルは、ＴＣＰ／ＩＰでなくＵＤＰでのみ動作する。従って、ここに開示されるネットワークシム又は他の実施例は、このようなＵＤＰベースアプリケーションプログラム及びプロトコルが、ＴＣＰ／ＩＰタイプトランスポートを要求するセキュリティ環境を利用することを可能にするのに利用可能である。
2008538266.tif 000002
【特許請求の範囲】
【請求項１】
ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を利用した第１マシーンと第２マシーンとの間の通信方法であって、
前記ＵＤＰとのＲＤＬ（Ｒｅｌｉａｂｉｌｉｔｙ  Ｄｅｌｉｖｅｒｙ  Ｌａｙｅｒ）インタフェースを提供するステップと、
前記第１マシーンと第２マシーンとの間のＵＤＰ接続を確立するステップと、
前記ＵＤＰとのＲＤＬインタフェースを介しＵＤＰと非互換的なトランスポートレイヤセキュリティを確立するステップと、
を有する方法。
【請求項２】
前記トランスポートレイヤセキュリティは、ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）プロトコルとＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）プロトコルの選択された１つに従って動作する、請求項１記載の方法。
【請求項３】
前記ＲＤＬは、トランスポートレイヤセキュリティに搭載される、請求項１又は２記載の方法。
【請求項４】
前記第１マシーンと第２マシーンとの間の通信のため前記ＵＤＰを利用するのに記述されたアプリケーションプログラムのオブジェクトファイルを提供するステップと、
ネットワーク通信に利用するため前記トランスポートレイヤセキュリティへのネットワーキングコールを利用するため準備されたリンクライブラリを提供するステップと、
前記バイナリオブジェクトファイルと前記リンクライブラリとのリンクに少なくとも部分的に基づき、前記アプリケーションプログラムの実行可能なバイナリを生成するステップと、
をさらに有する、請求項１記載の方法。
【請求項５】
前記ＲＤＬは、前記ＵＤＰにデータ改変検出／訂正、データ消失検出／訂正及び細分化／再構成機能を提供する、請求項１記載の方法。
【請求項６】
前記ＲＤＬはさらに、前記ＵＤＰにデータ改変訂正、データ消失訂正及びデータ細分化再構成の選択されたものを提供する、請求項５記載の方法。
【請求項７】
非互換的な信頼性の低いトランスポートにおいて信頼できるトランスポートと互換的なトランスポートレイヤセキュリティを利用する方法であって、
前記信頼性の低いトランスポートとのＲＤＬ（Ｒｅｌｉａｂｉｌｉｔｙ  Ｄｅｌｉｖｅｒｙ  Ｌａｙｅｒ）インタフェースを提供し、前記ＲＤＬがデータ改変検出とデータ消失検出との選択されたものを前記信頼性の低いトランスポートに付加し、前記信頼性の低いトランスポートの非互換性をマスクするステップと、
前記信頼性の低いトランスポートを利用して通信セッションを確立するステップと、
前記ＲＤＬインタフェースを介したトランスポートレイヤセキュリティを利用してセキュア通信セッションを確立するステップと、
を有する方法。
【請求項８】
前記信頼できるトランスポートと非互換的であるが、前記信頼性の低いトランスポートと互換的なアプリケーションプログラムを実行するステップと、
前記信頼性の低いトランスポートへのネットワーキングコールを前記ＲＤＬインタフェースへのコールに変換するバーチャル実行環境を提供するステップと、
をさらに有する、請求項７記載の方法。
【請求項９】
前記信頼性の低いトランスポートは、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）である、請求項７又は８記載の方法。
【請求項１０】
前記トランスポートレイヤセキュリティは、ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）とＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）の選択された１つである、請求項７記載の方法。
【請求項１１】
前記信頼性の低いトランスポートは、イン・シーケンスデータ配信を欠落しており、
前記ＲＤＬは、イン・シーケンスデータ配信を第２トランスポートに提供する、請求項７記載の方法。
【請求項１２】
前記ＲＤＬは、前記信頼性の低いトランスポートのためのプロトコルラッパを有する、請求項７記載の方法。
【請求項１３】
非互換的な信頼性の低いトランスポートにおいてトランスポートレイヤセキュリティを利用する方法であって、
前記信頼性の低いトランスポートへのネットワークアプリケーションプログラムにおける選択されたネットワーキングコールを前記トランスポートレイヤセキュリティへのネットワーキングコールと置換するため、ネットワークアプリケーションプログラムを変更するステップと、
前記トランスポートレイヤセキュリティに互換的な信頼できるトランスポートとして前記信頼性の低いトランスポートを見せかけるため、前記信頼性の低いトランスポートの上位のネットワークスタックにＲＤＬ（Ｒｅｌｉａｂｉｌｉｔｙ  Ｄｅｌｉｖｅｒｙ  Ｌａｙｅｒ）をインストールするステップと、
前記ＲＤＬを利用するため前記トランスポートレイヤセキュリティを構成するステップと、
を有する方法。
【請求項１４】
前記ネットワークアプリケーションを変更するステップは、そこにおけるネットワーキングコールを前記トランスポートレイヤセキュリティへの対応するコールと置換するため、前記ネットワークアプリケーションプログラムのソースコードを変更することからなる、請求項１３記載の方法。
【請求項１５】
前記トランスポートレイヤセキュリティに互換的なものとして前記信頼性の低いトランスポートを見せかける前記ＲＤＬを介し前記ネットワークアプリケーションプログラムからセキュア通信セッションを確立するステップをさらに有する、請求項１３記載の方法。
【請求項１６】
ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を利用して第１マシーンと第２マシーンとの間で通信するための１以上の関連する命令を有するマシーンアクセス可能な媒体を有する物であって、
前記１以上の命令は、実行される場合、
前記ＵＤＰとのＲＤＬ（Ｒｅｌｉａｂｉｌｉｔｙ  Ｄｅｌｉｖｅｒｙ  Ｌａｙｅｒ）インタフェースを提供するステップと、
前記第１マシーンと第２マシーンとの間のＵＤＰ接続を確立するステップと、
前記ＵＤＰとのＲＤＬインタフェースを介しＵＤＰと非互換的なトランスポートレイヤセキュリティを確立するステップと、
をマシーンに実行させる物。
【請求項１７】
前記トランスポートレイヤセキュリティに対する関連する命令はさらに、実行される場合、ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）プロトコルとＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）プロトコルとの選択されたものに従って前記トランスポートレイヤセキュリティを機能させる命令を有する、請求項１６記載の物。
【請求項１８】
前記関連する命令はさらに、実行される場合、
前記第１マシーンと第２マシーンとの間の通信のため前記ＵＤＰを利用するのに記述されたアプリケーションプログラムのオブジェクトファイルを提供するステップと、
ネットワーク通信に利用するため前記トランスポートレイヤセキュリティへのネットワーキングコールを利用するため準備されたリンクライブラリを提供するステップと、
前記バイナリオブジェクトファイルと前記リンクライブラリとのリンクに少なくとも部分的に基づき、前記アプリケーションプログラムの実行可能なバイナリを生成するステップと、
をマシーンに実行させる命令を有する、請求項１６記載の物。
【請求項１９】
非互換的な信頼性の低いトランスポートにおいて信頼できるトランスポートと互換的なトランスポートレイヤセキュリティを利用するための１以上の関連する命令を有するマシーンアクセス可能な媒体を有する物であって、
前記１以上の命令は、実行される場合、
前記信頼性の低いトランスポートとのＲＤＬ（Ｒｅｌｉａｂｉｌｉｔｙ  Ｄｅｌｉｖｅｒｙ  Ｌａｙｅｒ）インタフェースを提供し、前記ＲＤＬがデータ改変検出とデータ消失検出との選択されたものを前記信頼性の低いトランスポートに付加し、前記信頼性の低いトランスポートの非互換性をマスクするステップと、
前記信頼性の低いトランスポートを利用して通信セッションを確立するステップと、
前記ＲＤＬインタフェースを介したトランスポートレイヤセキュリティを利用してセキュア通信セッションを確立するステップと、
をマシーンに実行させる物。
【請求項２０】
前記関連する命令はさらに、実行される場合、
前記信頼できるトランスポートと非互換的であるが、前記信頼性の低いトランスポートと互換的なアプリケーションプログラムを実行するステップと、
前記信頼性の低いトランスポートへのネットワーキングコールを前記ＲＤＬインタフェースへのコールに変換するバーチャル実行環境を提供するステップと、
を前記マシーンに実行させる命令を有する、請求項１９記載の物。
【請求項２１】
非互換的な信頼性の低いトランスポートにおいてトランスポートレイヤセキュリティを利用するための１以上の関連する命令を有するマシーンアクセス可能な媒体を有する物であって、
前記１以上の命令は、実行される場合、
前記信頼性の低いトランスポートへのネットワークアプリケーションプログラムにおける選択されたネットワーキングコールを前記トランスポートレイヤセキュリティへのネットワーキングコールと置換するため、ネットワークアプリケーションプログラムを変更するステップと、
前記トランスポートレイヤセキュリティに互換的な信頼できるトランスポートとして前記信頼性の低いトランスポートを見せかけるため、前記信頼性の低いトランスポートの上位のネットワークスタックにＲＤＬ（Ｒｅｌｉａｂｉｌｉｔｙ  Ｄｅｌｉｖｅｒｙ  Ｌａｙｅｒ）をインストールするステップと、
前記ＲＤＬを利用するため前記トランスポートレイヤセキュリティを構成するステップと、
をマシーンに実行させる物。
【請求項２２】
前記関連する命令はさらに、実行される場合、
前記トランスポートレイヤセキュリティに互換的なものとして前記信頼性の低いトランスポートを見せかける前記ＲＤＬを介し前記ネットワークアプリケーションプログラムからセキュア通信セッションを確立するステップを前記マシーンに実行させる命令を有する、請求項２１記載の物。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［発明の分野］
本発明は、一般にセキュアネットワークキングの実現に関し、より詳細には、トランスポートレイヤセキュリティと互換性を有しないトランスポート上のトランスポートレイヤセキュリティのサポートに関する。
【０００２】
［背景］
残念なことに、世界の一部の人々は正直でない。拡大するネットワークの世界では、不正直な人々は、あなたが実行、ダウンロード、視聴、アクセスしているものなどをモニタするため、あなたの通信（ＶｏＩＰ及びそれに等価なものなど）制御及び音声データをモニタするため、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）コマンド、ＲＴＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）データなどとやりとりするためなどあなたのネットワークを介しプロトコルをモニタ及び／又はやりとりするためなど、ネットワーク上の活動をモニタするためなど個人又は秘密データをスヌープ又は不正に取得する多数の機会を見つけてきた。
【０００３】
他の不正直さのリスクを解決するため、ＳＳＬ（Ｓｅｃｕｒｅｄ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）、ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）などの典型的にはセキュアな通信プロトコルが、データの通信をプロテクトするのに利用される。ＴＬＳに関するより多くの情報については、例えば、インターネットＲＦＣ（Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ）２２４６（Ｔｈｅ  ＴＬＳ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ  １．０）、２７１２（Ａｄｄｉｔｉｏｎ  ｏｆ  Ｋｅｒｂｅｒｏｓ  Ｃｉｐｈｅｒ  Ｓｕｉｔｅｓ  ｔｏ  ＴＬＳ）、２８１７（Ｕｐｇｒａｄｉｎｇ  ｔｏ  ＴＬＳ  Ｗｉｔｈｉｎ  ＨＴＴＰ／１．１）、２８１８（ＨＴＴＰ  Ｏｖｅｒ  ＴＬＳ）、３２６８（ＡＥＳ  Ｃｉｐｈｅｒｓｕｉｔｅｓ  ｆｏｒ  ＴＬＳ）、３５４６（ＴＬＳ  Ｅｘｔｅｎｓｉｏｎｓ）及び３７４９（Ｐｒｏｔｏｃｏｌ  Ｃｏｍｐｒｅｓｓｉｏｎ  Ｍｅｔｈｏｄｓ）などを参照されたい。ここに引用されるすべてのＲＦＣがインターネットＵＲＬ“ｗｗｗ：ｉｅｔｆ：ｏｒｇ／ｒｆｃ”から利用可能である。また、ＵＲＬ“ｗｗｗ：ｇｎｕ：ｏｒｇ／ｓｏｆｔｗａｒｅ／ｇｎｕｔｌｓ”のＧＮＵ  ＴＬＳライブラリ（概略）を参照されたい。（不慮のハイパーリンクを回避するため、ここに引用されるＵＲＬのピリオドはコロンにより置き換えられていることを留意されたい。）
【０００４】
残念なことに、ＴＬＳ、ＳＳＬ及び他の多くのセキュリティ環境は、基礎となる通信プロトコルがＴＣＰ／ＩＰ（Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）であることを予想している。残念なことに、ＶｏＩＰ、ＲＴＰ、ＳＮＭＰなどの一部のプロトコル及びアプリケーションプログラムは、ＴＬＳ、ＳＳＬなどによってサポートされていないＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）などの信頼性の低い通信トランスポート上でのみ動作する。プロトコルに固有のセキュリティを提供するＳＮＭＰｖ３やＩＰＳｅｃ（ＩＰ  Ｓｅｃｕｒｉｔｙ）プロトコルなどのＵＤＰなどの信頼性の低いトランスポートに対するセキュリティを提供しようとする試みがあった。ＩＰＳｅｃに関するより多くの情報については、“ｗｗｗ：ｉｅｔｆ：ｏｒｇ／ｈｔｍｌ：ｃｈａｒｔｅｒｓ／ｉｐｓｅｃ−ｃｈａｒｔｅｒ：ｈｔｍｌ”において利用可能な関連するＲＦＣを参照されたい。残念なことに、これらの手段の試みは、セキュリティ機能を利用するため、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）などのプロトコルをＳＮＭＰｖ３に書き換える必要など、プロトコル固有の制限と共に、オーバーヘッド、コンプレクシティの影響を受ける。他の制約は、例えば、これらのプロトコルに対する専用の非標準的なセキュリティソリューションを利用するため、非互換性及び配置問題を含む。
【０００５】
［詳細な説明］
以下の説明は、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）などの信頼性の低いトランスポート上のＳＳＬプロトコル又はＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）などのセキュアトランスポートを利用する各種実施例について記載している。説明の便宜上、説明は、信頼できるイン・シーケンスデータ配信を提供するバイトストリーム指向トランスポート上で実行されるよう設計されるトランスポートレイヤのＴＬＳに注目する。しかしながら、ＴＬＳとＳＳＬは密接に関連することは理解され、当業者は、ＴＬＳに関する説明をＳＳＬ及び他のセキュアトランスポートに適用する方法を知るであろう。ＵＤＰの下でのＩＰＳｅｃなどの信頼性の低いトランスポートについてセキュリティオプションが存在することに留意すべきである。しかしながら、ＩＰＳｅｃは、大きなオーバーヘッドによる複雑かつリソース集中的なプロトコルである。ＴＬＳの利用は、プロトコルが広範に配置されているため多くの環境においてより便利なものであり、良好なパフォーマンス特性を有し、またよりシンプルなプロトコル機構、組み込みキー交換、ソフトウェアインストール及びメンテナンスの容易さ、比較的に低コストなどＩＰＳｅｃに対する優位性を有する。
【０００６】
しかしながら、ＴＬＳの大きな制約は、それが通信アプリケーションにおいてときどき使用されるメッセージ指向アプリケーションの汎用トランスポートであるＴＣＰ及びＳＣＴＰ（Ｓｔｒｅａｍ  Ｃｏｎｔｒｏｌ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｐｒｏｔｏｃｏｌ）などの信頼できる基礎となるトランスポートを要求することである。（ＳＣＴＰに関するより詳細な情報については、ＲＦＣ２９６０及び３４３６を参照されたい。）しかしながら、信頼性の要求を除いて、ＴＬＳプロトコルはそれのトランスポートから独立している。以下の説明は、コネクションレスＵＤＰトランスポートなどの信頼性の低いトランスポート上でのＴＬＳの利用を実現するための各種実施例について記載している。さらにこれは、ＳＮＭＰ、ＲＴＰ、ＶｏＩＰ、Ｒａｄｉｕｓ（Ｒｅｍｏｔｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｄｉａｌ  Ｉｎ  Ｕｓｅｒ  Ｓｅｒｖｉｃｅ）などのプロトコルにセキュリティを提供するためのＴＬＳの利用を実現する。（Ｒａｄｉｕｓに関するより詳細な情報については、ＲＦＣ２８６５を参照されたい。）これらのプロトコルは、現在それ自体の複雑な専用のセキュリティ機構を規定しているか、又は全くセキュリティ機構を有していない（ＲＴＰなど）。信頼性の低いトランスポート上でＴＬＳを利用可能にすることによって、これらのプロトコルは、既知の標準的なセキュリティトランスポート環境を採用することができ、これにより、それらの設計及びメンテナンスを簡単化する。
【０００７】
図１は、一実施例による互換性のない信頼性の低いトランスポート上で信頼できるトランスポートと互換性を有するトランスポートレイヤセキュリティを利用して、ネットワークアプリケーションプログラムを実行するウェブブラウザ又は他のマシーンなどのクライアント１０２と、ネットワークアクセス可能なデータ又はリソースを提供するウェブサーバ又は他のマシーンなどのサーバ１０４との間のセキュアな通信を確立するための概略１００を示す。
【０００８】
基礎となるトランスポートは、ＴＬＳ、ＳＳＬ、ＯｐｅｎＳＳＬ、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）などのトランスポートレイヤセキュリティが、上述されるように、信頼性の高い基礎となるトランスポートを要求する場合、“非互換的（ｉｎｃｏｍｐａｔｉｂｌｅ）”であると呼ばれ、ＵＤＰなどの信頼性の低いトランスポートを介しそれを利用しようとしている。典型的には、ＴＬＳ、ＳＳＬなどの信頼性要求は、基礎となるトランスポートが信頼性の高いプロトコルであるＴＣＰ／ＩＰであることを要求することによって充足される。残念なことに、ＴＣＰ／ＩＰは信頼性を提供するが、それはまた大きな処理オーバーヘッド及びコンプレクシティを招くこととなる。このため、信頼性の低いトランスポートを信頼できるものに見えるようにすることによって、ＳＳＬなどのトランスポートレイヤセキュリティを信頼性の低いトランスポートとインタフェースをとるための“ＲＤＬ（Ｒｅｌｉａｂｉｌｉｔｙ  Ｄｅｌｉｖｅｒｙ  Ｌａｙｅｒ）”が開示される。
【０００９】
一実施例では、ＲＤＬは、それがトランスポートレイヤセキュリティによって求められるＴＣＰ／ＩＰなどの信頼性の高いトランスポートの要求される少なくとも最低限の信頼性特性を付加し、信頼性の低いトランスポートの非互換性を認識することからトランスポートレイヤセキュリティを保護するように、信頼性の低いトランスポートとのインタフェース（又はプロトコルラッパ）を提供する（図４を参照されたい）。例えば、ＴＬＳは、最小限の信頼性機能がデータ改変検出及びデータ消失検出を含むことを要求する。ＲＤＬは、所望の互換性機能を提供するための既知の技術に従って、信頼性の低いプロトコルをラップ又はインタフェースをとることが前提とされる。
【００１０】
ＲＤＬは、例えば、プロトコルラッパ、トンネル、ネットワークスタックシム（ｎｅｔｔｗｏｒｋ  ｓｔａｃｋ  ｓｈｉｍ）、既存のプロトコルとのバーチャルプロトコルインタフェースなどの各種方法により実現されるかもしれない。最終的な結果は、ＲＤＬと信頼性の低いトランスポートの組み合わせが互換的なトランスポートとなるように、非互換的な信頼性の低いトランスポートに少なくとも最小限の信頼性機能を付加するということである。一実施例では、ＲＤＬにより提供される機能とＴＣＰによる機能との相違は、ＴＬＳ及びＳＳＬが混雑制御を要求しないためそれを提供せず、接続確立機構がすでにＴＬＳ／ＳＳＬの一部であるためそれらを有さず、複雑なＴＣＰ状態マシーンを要求しないということである。ＲＤＬはまた、セキュリティリスクを招くプロトコル機能などの基礎となるプロトコルの所望されない特性を取り除くことが可能であることは理解されるかもしれない。
【００１１】
図示されるように、トランスポートレイヤセキュリティを確立する前に、ＵＤＰベース通信セッションなどの基礎となる信頼性の低い通信トランスポートを確立する必要がある（１０６）。図示された実施例では、基礎となる通信セッションは、所望のトランスポートレイヤセキュリティによって使用される通信ポートを利用して確立される。読者が、データペイロードと、パケットのソースネットワークアドレス（クライアント１０２など）、パケットのデスティネーションネットワークアドレス（サーバ１０４など）、及び通信セッションの通信ポート（送信機の特定のブロードキャストチャネルの選択に類似するものなど）などの各種ヘッダフィールドを有するパケットにデータが分けられるパケットベースネットワーク通信に精通していることが仮定される。
【００１２】
信頼性の低い通信トランスポートが確立されると、以降の処理は（図示されない仲介若しくはなられる処理があるかもしれないことに留意されたい）、例えば、データ転送中に使用される特定の暗号を取り決めるためにクライアント１０２とサーバ１０４との間の初期的なハンドシェイクシーケンスを利用し（１０８）、セッションキーを確立し、証明書を交換若しくはチェックするなど、信頼性の低いトランスポートを介したセキュア通信を設定することである。セキュア通信の設定は、ＲＤＬが非互換的で信頼性の低いトランスポートをトランスポートレイヤセキュリティと互換するように見せることを仮定する。
【００１３】
信頼性の低いトランスポートを介したセキュア通信の基本的な暗号化特性が取り決めされると（１０８）、以降の処理は、信頼性の低いトランスポートを介したセキュア通信を確立すること、すなわち、セキュアトランスポートレイヤの設定を完了させることである。設定の取り決め１０８と接続の確立１１０が完了するとすぐに、信頼性の低いトランスポートを介しデータがセキュア交換可能となる（１１２）。ＴＬＳ及びＳＳＬは、組み込みキー交換プロトコルを有しているため、モバイル装置を有するダイナミック利用モデルに適している。また、それらはトランスポートレイヤにおける暗号化を提供するため、トランスポートレイヤにおけるトラフィックの区別を可能にし、精細な粒度によりアプリケーション間のセキュリティ関連付けを設定することを可能にする（トランスポートポート番号と共にソース／デスティネーションＩＰアドレスなどに基づき）。
【００１４】
図２は、一実施例による非互換的な信頼性の低いトランスポートを介したトランスポートレイヤセキュリティを利用して、ＴＬＳクライアント２０２などのクライアントと、ＴＬＳサーバ２０４などのサーバとの間のセキュア通信を確立するため、図１の実施例のＴＬＳベースバージョン２００を示す。
【００１５】
図示された実施例では、トランスポートレイヤセキュリティが確立される前に、基礎となる信頼性の低いＵＤＰトランスポートが確立される（２０６）。ＵＤＰトランスポートは、ＳＳＬがそれのトランスポートレイヤセキュリティを取り決めるときに使用することを予定するポートである通信ポート４４３を利用して確立される。しかしながら、ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）によって割り当てられたものや、慣例によって使用されるものなど、多数の“周知の”予想される通信ポートが存在するが、ＵＤＰを介したＴＬＳの任意のポート番号を利用することが可能であることは理解されるであろう。信頼性の低いＵＤＰトランスポートが確立されると（２０６）、次の処理は、この信頼性の低いトランスポートを介したセキュア通信を設定することである。図１と同様に、設定はデータ転送中に使用されるプロテクトすべき基礎となる暗号化を取り決めるため、クライアント２０２とサーバ２０４との間の初期的なハンドシェイクシーケンスを含む。図示された実施例では、ＴＬＳセッションを確立するため、取り決め（２０８）にはＴＬＳキー交換が含まれる。セキュリティハンドシェイクは、さらなるメッセージ交換が行われる前に、通信エンドポイントを互いに認証する必要がある。
【００１６】
キーが交換され、暗号化特性がクライアント２０２とサーバ２０４により合意されると、次の処理は、信頼性の低いトランスポートを介したセキュア通信の確立を完了させることである（２１０）。図示された実施例では、通信確立の完了は、ピア認証などのＴＬＳ関連付け確立を含む。設定の取り決め２０８及び接続の確立２１０が完了するとすぐに、データが信頼性の低いＵＤＰトランスポートを介しセキュア交換可能となる（２１２）。
【００１７】
図３は、ＴＬＳなどのトランスポートレイヤセキュリティプロトコルによって必要とされる信頼性要求を充足するため、ＵＤＰネットワークトラフィックに付加可能な一実施例によるプロトコルレイヤリング３００を示す。図示された実施例では、ＲＤＬヘッダ３０２は、従来のＵＤＰヘッダ及びペイロード３０４をラップ又はインタフェースをとるなど、それらの先頭に配置される。上述されるように、ＲＤＬが、シーケンス送出などにおけるＴＬＳ若しくは他のセキュアトランスポートレイヤによって要求される最小限の信頼性、データ改変がないこと、データ消失の検出及び再送を提供するのに利用されてもよい。ＴＬＳプロトコルは、ＲＤＬを利用可能となるよう構成されることが仮定され、例えば、ＴＣＰ／ＩＰによる使用に対して制限されるものと同様に、ＲＤＬに制限されることが前提とされる。
【００１８】
図示された実施例では、ＲＤＬヘッダ３０２は、１６ビットのチャックサム３０８、３２ビットのシーケンス番号３１２、３２ビットのアクノリッジメント番号３１２及び１６ビットのフラグ３０６を有する固定長の１２バイトのヘッダを有する。図示された実施例では、ＲＤＬチェックサム３０８は、ＴＣＰチェックサムに対応し、送信中のデータ改変に介しプロテクトするためのヘッダ及びデータを確認するのに利用されるかもしれない。ＵＤＰチェックサムは任意的なものであるため、これは必要とされる。一実施例では、ＵＤＰチェックサムが使用される場合、冗長さを回避するため、ＵＤＰチェックサムがＵＤＰネットワークトラフィックから取り除かれ、ＲＤＬチェックサムがその代わりに利用されてもよい。一実施例では、シーケンス番号３１０とアクノリッジメント番号３１２は、データロスが検出及び訂正され、順序通りに送信データが提供されるように、関連付けされたタイムアウト及び再送を有する。ＲＤＬヘッダは、ＴＬＳの細分化／再構成要求を提供する。
【００１９】
図示された実施例では、１６ビットのバージョン／フラグフィールド３０６は、ＵＤＰネットワークトラフィックなどの信頼性の低いプロトコルをラップ若しくはインタフェースをとるのに使用されるＲＤＬのバージョンを指定する２ビットと、ＡＣＫ（アクノリッジメント）フラグとして利用可能な１ビットとを有する。残りの１３ビットは、他の目的のために利用されるかもしれない。これらのビットの一部は、例えば、細分化／再構成機能を提供するのに利用可能である。図示された実施例では、ＲＤＬは、ＴＣＰなどの重たいプロトコルにおいて利用可能なものなどの接続確立機構を提供することは期待されていない。しかしながら、ＴＬＳによっては要求されないが、フラグ３０６がＴＣＰにより利用される３ウェイハンドシェイク若しくはＳＣＴＰの４ウェイハンドシェイクなどの接続指向動作を実現するため、又はＴＣＰと同様のウィンドウベースフロー管理スキームを実現するため利用可能であることが理解されるであろう。
【００２０】
ＲＤＬヘッダの図示された実施例では、それが固定長であり、ＵＤＰヘッダがそれのパケットの長さを指定するため、長さフィールドはない。しかしながら、バージョン／フラグビットは必要に応じて長さフィールドを実現するのに利用可能であることが理解されるであろう。シーケンス番号３１０は、特定の確立（１１０，２１０）された通信セッションについてＲＤＬメッセージを一意的に特定する。それの初期値はランダムに選択されてもよく、連続するメッセージついてインクリメントされてもよい。一実施例では、通信セッションとの不正な干渉を回避するため、初期的なシーケンス番号は、１つの通信エンドポイントに係る識別子の符号化に基づき、予測可能な方法によりインクリメントされる。適切に符号化されたシーケンス番号を欠いた受信ネットワークトラフィックは破棄されるかもしれない。ＴＣＰについて、アクノリッジメント番号３１２は、ＡＣＫメッセージにより受信及び送信されたメッセージの最後のシーケンス番号を示すのに利用される。ＡＣＫメッセージは、データを含む受信成功した各メッセージに対して送信される。
【００２１】
ＲＤＬの利用は、ＴＬＳプロトコル若しくはＵＤＰに対する変更を要求しない。しかしながら、ＴＬＳプロトコルはＲＤＬについて上述された信頼性サポートを付加するため変更可能であり、これにより、ＴＬＳは上述されるようにＵＤＰをラップ若しくはインタフェースをとる必要なくＵＤＰを介し直接的に動作することが可能となることが理解されるべきである。
【００２２】
図４は、一実施例によるアプリケーション４０２により利用されるネットワークプロトコルスタック４００を示す。このアプリケーションは、ストリーミングメディアに利用されるＲＴＰ（Ｒｅａｌｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）、Ｒａｄｉｕｓプロトコル、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ウェブブラウザ、データ転送プログラムなど、ネットワークに通信可能に接続される任意のアプリケーションプロトコル若しくはプログラムであってもよいということは理解されるであろう。理解されるように、アプリケーション４０２からのデータ及び制御は、１つのレイヤから次のレイヤにレイヤ４０４〜４１０を介しトップダウンに送られる。データがスタックを下方に送信されるとき、各レイヤはそれにわたされたデータをヘッダの他のデータ（適用可能である場合）にラップし、また（必要に応じて）当該データの何れかを変更してもよい。
【００２３】
例えば、ＴＬＳレイヤを利用するため、アプリケーション４０２は、ＯｐｅｎＳＳＬライブラリなどのＴＬＳをサポートするライブラリ若しくはＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）に適切な呼び出しを行い（例えば、ＵＲＬ“ｗｗｗ：ＯｐｅｎＳＳＬ：ｏｒｇ”などを参照されたい）、オペレーティングシステムのネットワーキングコンポーネントは、このようなアプリケーションコールを処理のためＴＬＳレイヤにルーティングする。ＴＬＳを現在サポートしていないＲＴＰなどのアプリケーションについて、アプリケーションソースコードは、適切なＴＬＳコールを行うよう変更可能であり、それは特定のコンテクストでは明らかであるかもしれない。例えば、アプリケーションがネットワークソケットオープン、リード、ライト、クローズなどのネットワークアクセスのための標準的なＬｉｎｕｘタイプのソケットコールを使用して、ＴＬＳとＳＳＬの両方をサポートするＯｐｅｎＳＳＬライブラリを利用すると仮定すると、アプリケーションのソケットコールは、アプリケーションがＴＬＳ若しくはＳＳＬをサポートするため、各コールの前に“ＳＳＬ＿”を付加するよう変更されるだけでよい。
【００２４】
ソースコードへのアクセスを要求しない他のアプローチは、ＴＬＳ若しくはＳＳＬをサポートするため記述された標準的なネットワークアクセスファンクションを有するカスタムライブラリに対するコンパイラからの中間オブジェクトファイル若しくはバイナリ出力をリンクするというものである。他の選択肢は、実行可能ファイルを直接変更し、又はＴＬＳ若しくはＳＳＬをサポートするため斉リンク可能となるように中間状態に逆コンパイルすることである。さらなる他の選択肢は、従来のネットワーキングコールを傍受し、トランスポートレイヤセキュリティを利用するための対応するコールとそれらを置換するよう構成されるバーチャル環境若しくはバーチャルマシーンにおいてトランスポートレイヤセキュリティをサポートしないアプリケーションを実行することであろう。
【００２５】
このため、アプリケーション４０２がＴＬＳをサポートし、ＴＬＳセッションがすでに確立されていると仮定すると、アプリケーションは、データを適切なＴＬＳヘッダによりラップし、その後にそれをＲＤＬ（Ｒｅｌｉａｂｉｌｉｔｙ  Ｄｅｌｉｖｅｒｙ  Ｌａｙｅｒ）４０６にわたすＴＬＳレイヤ４０４によって受信されるデータを送信する。上述されるように、ＴＬＳ及び他のトランスポートレイヤセキュリティプロトコルは、それの基礎となるトランスポートが信頼できるものであることを要求し、このため、図３に関して上述されるように、ＴＬＳデータは適切なＲＤＬヘッダによりラップされ、信頼性の低いＵＤＰにわたされる。上述されるように、ＴＬＳとＵＤＰは、ここに記載される各種実施例をサポートするための変更を要求せず、このため、ＵＤＰは単にＲＤＬから受信したデータについてそれの従来のヘッダをラップし、有線ネットワークインタフェース（ＮＩＣ）、ワイヤレスＮＩＣなどの物理ネットワークインタフェースを介し送信するため、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）レイヤ４１０に送信する。
【００２６】
アプリケーション４０２を実現するマシーンによる、若しくはＴＬＳ通信セッションとの他方のエンドポイントによるデータの受信については、この図は単に逆方向に処理される。ＮＩＣから受信したデータは、それのラッパを処理及び除去し、残りのデータをＵＤＰ４０８にわたすＩＰレイヤ４１０にわたされ、ＵＤＰレイヤ４０８はまた、それのラッパを処理及び除去し、残りのデータをＲＤＬ４０６までわたす。ＵＤＰは信頼性についての試みはしていないが、上述されたようにある程度の信頼性を提供するＲＤＬは、改変を判断し、若しくは消失パケットを特定するためパケットを調べ、不良なパケットや消失したパケットなどのパケットの再送リクエストを他方のエンドポイントに適切に送信することが可能である。ＲＤＬが当該データの問題を検出しないと仮定すると、それはそれのラッパを除去し、残りのデータをＴＬＳレイヤ４０４にわたす、ＴＬＳレイヤ４０４は、受信したセキュアデータを処理しデータをアプリケーション４０２にわたすよう通常の処理を行う。適切なヘッダによるデータのラップ若しくはアンラップの上記説明は、異なるネットワークスタックレイヤから受信したデータの一部を変更及び／又は変換することを含むかもしれないということに留意されたい。
【００２７】
図５及び以下の説明は、図示された発明の特定の特徴が実現される適切な環境の概略的な説明を提供するためのものである。以下で使用される“マシーン”という用語は、単独のマシーン又は一緒に動作する通信可能に接続されたマシーン若しくは装置のシステムを広く含むものである。一例となるマシーンは、パーソナルコンピュータ、ワークステーション、サーバ、ポータブルコンピュータなどの計算装置、携帯情報端末（ＰＤＡ）、電話、タブレットなどの携帯装置、車両、列車、タクシーなどのプライベート若しくはパブリック輸送手段などの輸送装置を含む。
【００２８】
典型的には、当該環境は、プロセッサ５０４、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、他の状態保持媒体などのメモリ５０６、記憶装置５０８、ビデオインタフェース５１０及び入出力インタフェースポート５１２に接続されるシステムバス５０２を有するマシーン５００を有する。マシーンは、少なくとも部分的には、キーボードやマウスなどの従来の入力装置からの入力によって、また他のマシーンから受信した指示、バーチャルリアリティ（ＶＲ）環境とのやりとり、バイオメトリックフィードバック、他の入力ソース若しくは信号によって制御されてもよい。
【００２９】
マシーンは、プログラマブル若しくは非プログラマブルロジック装置若しくはアレイ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、埋め込みコンピュータ、スマートカードなどの埋め込みコントローラを有するかもしれない。マシーンは、ネットワークインタフェース５１８、モデム５２０若しくは他の通信接続などを介した１以上のリモートマシーン５１４及び５１６との１以上の接続を利用するかもしれない。マシーンは、図１のネットワーク１１２、イントラネット、インターネット、ローカルエリアネットワーク、ワイドエリアネットワークなどの物理及び／又は論理ネットワーク５２２により相互接続されるかもしれない。当業者は、ネットワーク５２２との通信が、ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）、衛星、マイクロ波、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）８０２．１１、Ｂｌｕｅｔｏｏｔｈ、光、赤外線、ケーブル、レーザなどを含む各種有線及び／若しくは無線短距離若しくは長距離キャリア及びプロトコルを利用可能であるということを理解するであろう。
【００３０】
本発明は、マシーンによるアクセス時、マシーンにタスクを実行させ、又は抽象的なデータタイプ若しくは低レベルハードウェアコンテクストを規定させる関数、手順、データ構造、アプリケーションプログラム、命令などの関連するデータを参照して若しくは関連して説明されるかもしれない。関連するデータは、例えば、揮発性及び／若しくは不揮発性メモリ５０６などに、又はハードドライブ、フロッピー（登録商標）ディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、マシーンアクセス可能な生体ベース状態保持媒体などの生体メモリ装置などを含む記憶装置５０８及び関連する記憶媒体に格納されてもよい。関連するデータは、パケット、シリアルデータ、パラレルデータ、伝搬信号などの形式によるネットワーク５２２を含む伝送環境を介し送信されてもよく、圧縮若しくは暗号化形式により利用されてもよい。関連するデータは、分散環境において利用されてもよく、単一若しくは複数のプロセッサマシーンによるアクセスのためローカル若しくはリモートに格納されてもよい。関連するデータは、埋め込みコントローラによって若しくは関連して利用されてもよい。以下の請求項では、“ロジック”という用語は、一般に関連するデータ及び／又は埋め込みコントローラの可能な組み合わせを表している。
【００３１】
このため、例えば、図示された実施例に関して、マシーン５００は図２のＴＬＳクライアント２０２を実現すると仮定すると、リモートマシーン５１４及び５１６の１つがマシーン５００と同様に構成され、これにより、マシーンについて説明された要素の多数若しくはすべてを含むことが理解される。
【００３２】
図示された実施例を参照して本発明の原理を説明及び図示したが、図示された実施例がこのような原理から逸脱することなく、構成及び詳細について変更可能であることは認識されるであろう。また、上記説明は特定の実施例に着目しているが、他の構成も考えられる。特に、“一実施例では”、“他の実施例では”などの表現がここで使用されているが、これらの表現は、一般に実施例の可能性を参照することを意味し、本発明を特定の実施例の構成に限定するものでない。ここで使用されるとき、これらの用語は、他の実施例に組み合わせ可能な同一の若しくは異なる実施例を参照するものであるかもしれない。
【００３３】
このため、ここに記載される実施例の各種組み合わせによって、当該詳細な説明は単なる例示的なものであり、本発明の範囲を限定するものとして解釈されるべきでない。本発明として請求されるものは、以下の請求項及びその均等物の範囲及び趣旨に属するすべての変形となる。
【図面の簡単な説明】
【００３４】
【図１】図１は、非互換的な信頼性の低いトランスポート上のトランスポートレイヤセキュリティを利用する一実施例による全体図を示す。
【図２】図２は、一実施例による図１に従うＴＬＳベース実現形態を示す。
【図３】図３は、ＴＬＳなどのトランスポートレイヤセキュリティプロトコルによって必要とされる信頼性要求を充足するためＵＤＰネットワークトラフィックに付加することが可能な一実施例によるプロトコルレイヤリングを示す。
【図４】図４は、一実施例によるネットワークプロトコルスタックを示す。
【図５】図５は、本発明の特徴が実現可能な適切な計算環境を示す。
【図１】
2008538266.tif 000003
【図２】
2008538266.tif 000004
【図３】
2008538266.tif 000005
【図４】
2008538266.tif 000006
【図５】
2008538266.tif 000007
【国際調査報告】
2008538266.tif 000008
2008538266.tif 000009
2008538266.tif 000010