(57)【特許請求の範囲】
【請求項１】
パケットネットワーク上で第1のサーバから、許可された受信者サーバへデータパケットを伝送する方法であって：
（ｉ）第１のサーバにおいて、固有のランダム番号を含むリストを記憶する段階と；
（ii）安全な通信手段によって前記リストのコピーを許可された受信者サーバへ送る段階と；
（iii）前記リストからランダム番号をランダムに選択し、送られるデータパケット内に前記選択したランダム番号を含め、前記選択したランダム番号は、以前に選択されておらず、以前に送られたデータパケットに含まれていない段階と；
（iv）前記データパケットを前記許可された受信者サーバへ送る段階とを含む方法。
【請求項２】
（ｖ）シーケンス番号を含む肯定応答（ＡＣＫ）メッセージを受信する段階と；
（vi）段階（iii）からの前記リスト内の前記ランダム番号の、前記リスト内の位置を識別する段階と；
（vii）前記シーケンス番号と前記識別された位置とを比較する段階と；
（viii）段階（vii）において前記シーケンス番号が前記識別された位置と整合しないとき、前記データパケットを前記許可された受信者サーバへ再び送る段階とをさらに含む請求項１記載の方法。
【請求項３】
段階（iv）において前記データパケットを送った後で、段階（ｖ）において前記肯定応答メッセージが、所定の時間期間内で受信されないときは、前記データパケットは前記許可された受信者サーバに対して再び送られる請求項２記載の方法。
【請求項４】
パケットネットワーク上で第１のサーバから、許可された受信者サーバへデータパケットを伝送する方法であって：
（ａ）許可された受信者サーバにおいて、安全な通信手段によって、固有のランダム番号を含むリストを受信し、前記リストを記憶する段階と；
（ｂ）前記許可された受信者サーバにおいて、ランダム番号を受信する段階と；
（ｃ）前記受信したランダム番号が、前記固有のランダム番号の、記憶されたリスト内に含まれていて、より先に受信したデータパケット内に含まれていなかったときに、前記データパケットの受信に肯定応答するメッセージを送る段階とを含む方法。
【請求項５】
段階（ｃ）において、前記肯定応答メッセージは、前記記憶されたリスト内の前記受信したランダム番号の位置を示すシーケンス番号を含む請求項４記載の方法。
【請求項６】
パケットネットワーク上でデータパケットを伝送するようにされているサーバであって：
パケットネットワークインターフェイスと；
固有のランダム番号を含むリストを記憶するためのメモリと；
前記記憶されたリストのコピーを所定の宛先へ送るための安全な通信手段と；
前記記憶されたリストからランダム番号をランダムに選択し、送られるデータパケット内に前記選択したランダム番号を含めるように動作可能であって、前記選択したランダム番号は、以前に選択されておらず、以前に送られたデータパケットに含まれていない選択手段と；
前記データパケットを前記インターフェイスを介して前記所定の宛先へ送るように動作可能なルート設定手段とをもつサーバ。
【請求項７】
シーケンス番号を含む肯定応答メッセージを受信したときに、前記シーケンス番号が前記記憶されたリスト内の前記ランダム番号の、前記記憶されたリスト内の位置に整合しないときは、前記ルート設定手段をトリガして、前記データパケットを再び送るように動作可能な肯定応答手段を含む請求項６記載のサーバ。
【請求項８】
前記ルート設定手段によって前記データパケットを送った後で、前記データパケットの受信に肯定応答するメッセージが、所定の時間期間内で受信されないときは、前記ルート設定手段をトリガして、前記データパケットを再び送るように動作可能なタイムアウト手段を含む請求項６または７記載のサーバ。
【請求項９】
前記データパケットが再び送られるときに警報メッセージを生成する警報手段を含む請求項７または８記載のサーバ。
【請求項１０】
パケットネットワーク上でデータパケットを伝送するようにされているサーバであって：
パケットネットワークインターフェイスと；
固有のランダム番号を含むリストを受信するための安全な通信手段と；
前記受信したリストを記憶するメモリと；
ランダム番号を含むデータパケットを前記インターフェイスを介して受信した際に、前記含まれているランダム番号が前記記憶されているリスト内に含まれ、かつ、前記含まれているランダム番号がより先に受信したデータパケット内に含まれていなかったときに、前記データパケットの受信に肯定応答するメッセージを送るように動作可能な確認手段とをもつサーバ。
【請求項１１】
前記確認手段が、前記記憶されたリスト内の前記含まれているランダム番号の位置を示すシーケンス番号を、前記肯定応答メッセージ内に含めるように動作可能である挿入手段を含む請求項１０記載のサーバ。
【発明の詳細な説明】
【０００１】
発明の属する技術分野
本発明は、パケットネットワークを動作する方法に関し、パケットネットワーク上でデータパケットの転送を制御するのにとくに応用される。
【０００２】
従来の技術
公衆データネットワーク上で実行するインフラストラクチャおよびアプリケーションを許可されていないユーザの攻撃から保護するために適切な機密保護が適所にあることを保証することが次第に重要になってきた。適切な機密保護がないときは、誤った情報がネットワークのユーザへ送られるか、または潜在的に、ネットワークのインフラストラクチャの動作を相当に妨害することがある。
【０００３】
パケットネットワークに接続されたデータソースは、多数のデータ伝送方法の１つを使用して受信者へデータパケットを送ることができる。パケットネットワークの用語において、パケットを単一の受信者へ送ることはユニキャスティングとして知られており、データパケットはこの受信者に明確にアドレス指定されている。パケットを全ての可能な受信者へ送ることは同報通信として知られており、特定のアドレスを使用して、パケットがネットワークに接続された全てのユーザ、またはネットワークの少なくとも一部分へ配信されることを保証する。パケットを全ての可能な受信者のサブセット、とくに、アドレス指定できるグループのメンバとしてパケットを受取るように選択した受信者へ送ることは、マルチキャスティングと呼ばれている。このようなグループはマルチキャストグループと呼ばれている。
【０００４】
既知のマルチキャスティング構成では、潜在的な受信者はデータパケットを受信するために加入する利用可能な多数のマルチキャストグループがある。各マルチキャストグループは、独特のマルチキャストアドレスを割り当てられていて、特定のマルチキャストアドレスにアドレス指定されたデータパケットが、このマルチキャストグループに加入している全ての受信者に配信されることになる。“発行および加入（publish & subscribe）”ニュースサービスのような情報ソースから特定のマルチキャストアドレス（グループ）へ情報をルート設定するために、いわゆる“キャッシングサーバ”と呼ばれる階層がパケットネットワークに接続される。キャッシングサーバは、パケットネットワークへのインターフェイスをもつ従来のサーバコンピュータであり、ＴＣＰ／ＩＰのような既知のトランスポートプロトコル、またはインターネットグループ管理プロトコル（Internet Group Management Protocol, IGMP）バージョン２のようなマルチキャスティングプロトコル、あるいはこの両者を使用して動作するようにされていて、なおこれらのプロトコルはインターネット技術標準化委員会（Internet Engineering Task Force, IETF）によってインターネット上で公開されているインターネットの標準仕様（Request for Comment, RFC）２２３６において規定されている。データパケットをキャッシングサーバによって正しく転送するために、各キャッシングサーバは、受信したデータパケットを所定のネットワークの宛先へ送るように構成されていて、階層またはサーバ内の残りのキャッシングサーバは、例えばマルチキャストグループの加入者の位置にしたがって、マルチキャスティングセッションへのアクセスをエンドユーザに与える。パケットは各宛先へ1回だけ送られ、キャッシングサーバは、要求されたときにのみパケットを複製することが好ましい。このやり方では、1グループのユーザへ所与の組の情報を配信するために送る必要のあるパケット数は、ユーザへの配信の最終段階を除く全ての段階において、情報の組をソースから各ユーザへ個別にユニキャストする必要のあるパケット数と比較すると、相当に低減することが好ましい。
【０００５】
しかしながら、既知のマルチキャスティング構成は、データを転送する方法において本質的に安全でない。マルチキャストキャッシングサーバのインフラストラクチャの主な目的は、加入している宛先へ情報を送達することである。マルチキャストキャッシングサーバのネットワークは、通常、加入している宛先によって受信される正しくアドレス指定されたデータパケットを伝達する。したがって許可されていないユーザが、キャッシングサーバがこれらのメッセージを忠実に伝搬することを期待して、マルチキャストアドレスにおいて偽りのメッセージを送ることができる。
【０００６】
マルチキャスティング構成において使用するための既知の機密保護技術には２つの主要なタイプ：すなわちデータパケットのコンテンツを保護するタイプと、データパケットのソースを認証するタイプとがある。例えば変更に対して、データパケットのコンテンツを保護するように設計されたこれらの方策は、通常は、例えば既知のデータ暗号化技術を使用して、情報サービスプロバイダによってアプリケーションレベルにおいて実行される。しかしながらこのようなアプリケーションレベルの機密保護の方策では、通常は、他の潜在的に欠陥のあるソースから発信しているデータパケットのトランスポートレベルにおいてサーバをキャッシュすることによって配信を妨害しない。マルチキャスティングネットワーク構成では、ユーザは有効なマルチキャストアドレスによってデータパケットを送ることができる。
【０００７】
データパケットのソースを認証すること、およびデータパケットのコンテンツに対する許可されていない変更を検出できるようにすることに使用できる既知の技術は、各パケットへディジタル署名をコード化することである。受信者のキャッシングサーバは各受信したパケットの署名をデコードし、パケットの明らかな正当性に基いて、パケットを送るか否かを決定することができる。既知のディジタル署名技術の１つの例は、ＲＦＣ １９９１に記載されているＰＧＰ（商標）であり、これはインターネット技術標準化委員会（ＩＥＴＦ）のネットワーク作業部会（Network Working Group）によってインターネット上で公開されている。しかしながら、とくにマルチキャスティング構成では、それぞれ送受信される各パケットのディジタル署名のコード化およびデコード化は、パケットをルート設定するのに必要とされる処理に、相当な望ましくないオーバーヘッドを加える。
【０００８】
発明が解決しようとする課題
本発明の第１の態様にしたがって、パケットネットワーク上で第1のサーバから許可された受信者サーバへデータパケットを伝送する方法であって：
（ｉ）第１のサーバにおいて、別個のデータ要素を含むリストを記憶する段階と；
（ii）安全な通信手段によって前記リストのコピーを許可された受信者サーバへ送る段階と；
（iii）使用されていないデータ要素を前記リストから選択し、送られるデータパケット内に前記選択されたデータ要素を含める段階と；
（iv）前記データパケットを前記許可された受信者サーバへ送る段階とを含む方法を提供する。
【０００９】
この態様では、ディジタル署名技術における固有のデータ処理オーバーヘッドなしに、データパケットのソースを適正な度合いの機密保護をもって認証できる。本発明の認証技術は、データパケットのコンテンツを変更から保護することを要求されるのではなく、パケットが有効な第１のサーバによって送られたことを示すだけである。第１のサーバにおいて記憶されたリストからデータ要素を選択し、これを送る前にデータパケット内にこのデータ要素を含めることに関するデータ処理は、潜在的に非常に小さい。後で受信されるパケットの送信に関係して、段階（ii）において送られたリスト内の全てのデータ要素が使用されるまでか、または所定の最少数のデータ要素が使用されないまま残るまで、方法の段階（iii）および(iv)を繰返す。この点において、別のパケットを送る前に、データ要素の別のリストが記憶されるか、または得られ、別のリストのコピーが方法の段階（ｉ）および（ii）にしたがって許可された受信者へ送られる。
【００１０】
安全な伝送についての既知のやり方を使用して、データ要素のリストを許可された受信者へ伝送することができる。例えば、上述で参照したような、ＰＧＰのような暗号化技術を使用してもよい。しかしながら、許可された受信者以外の者がデータ要素のリストを使用できないことが重要であり、さもなければ本発明によって提供される認証方法は許可されていないユーザによって損われる。
【００１１】
記憶されたリストからのデータ要素の選択は、方法の段階（iii）においてランダムに行われることが好ましい。データパケットの受信に確認することに関係して後で記載するように、許可されていないユーザが、リストから選択された次のデータ要素か、または選択されたデータ要素のリスト内の位置を容易に予測できないことが重要である。
【００１２】
選択されたデータ要素は、既知のハッシング技術を使用してデータパケットのコンテンツとハッシュされることが好ましい。このやり方では、含まれているデータ要素が、データパケットを監視している許可されていないユーザには直ぐには見えず、この方法の機密保護が高まる。
【００１３】
本発明の第２の態様にしたがって、パケットネットワーク上で第１のサーバから許可されている受信者のサーバへデータパケットを伝送する方法であって：
（ａ）許可された受信者サーバにおいて、安全な通信手段によって、データ要素を含むリストを受信し、前記リストを記憶する段階と；
（ｂ）データ要素を含むデータパケットを受信する段階と；
（ｃ）前記含まれているデータ要素が前記記憶されたリスト内に含まれていて、より先に受信したデータパケット内に含まれていなかったときに、前記データパケットの受信に確認するメッセージを送る段階とを含む方法を提供する。
【００１４】
この第２の態様では、許可されている受信サーバは、第１の態様にしたがって動作する第１のサーバと協働して動作して、データパケットを受信し、これらのデータパケットが有効なソース−この場合は第1のサーバから発信していることを検査するようにされている。データ要素についての最近受信したリスト内に構成されているデータ要素を含むとき、およびパケット内に含まれているデータ要素がより先に受信したデータパケット内に含まれていなかったときに有効なソースから発信するデータパケットを示すことができる。この後者の検査は、許可されていないユーザがデータパケットを傍受し、その中に含まれているデータ要素を読み取り、その直後に送られる欠陥のあるパケット内のデータ要素を再使用する可能性から守るのを助ける。同じデータ要素を含む許可された受信サーバにおいて、例えば所与の時間期間内か、または所与の数の受信したパケット内に２以上のデータパケットが検出されたとき、全てのこのようなパケットは、それらの何れかに対して肯定応答メッセージが送られないときは、潜在的に無効であるとして無視される。
【００１５】
２以上のデータパケットが同じデータ要素を含む許可された受信者サーバにおいて受信されるとき、パケットのデータコンテンツが比較されることが好ましい。受信したパケットのコンテンツが同じであることが分かると、受信したパケットの１つは有効であるとして選択され、肯定応答メッセージが送られ、他のパケットはパケットネットワーク内の既知の環境のもとで生成される無害な複製である。
【００１６】
受信したデータパケットが有効なデータソースから発信されていると設定されたとき、許可された受信者サーバは、例えばユニキャスティングの伝送方法を使用して、データパケットのソースへ肯定応答メッセージを送るようにされている。肯定応答メッセージには、肯定応答メッセージが許可された受信者から発信されているといった確認可能な指標として、記憶されたリスト内の含まれているデータ要素の位置を示すシーケンス番号が含まれていて−したがってデータ要素についてのより先に配信されたリストの最新のコピーが保持されていることが好ましい。
【００１７】
肯定応答メッセージが許可された受信者サーバのための識別子を含み、第１のサーバが肯定応答メッセージの送信者を識別できることが好ましい。
【００１８】
第1の態様にしたがう方法は：
（ｖ）シーケンス番号を含む肯定応答（アクノリッジメント、ＡＣＫ）メッセージを受信する段階と；
（vi）段階（iii）から前記選択したデータ要素の前記リスト内の位置を識別する段階と；
（vii）前記シーケンス番号と前記識別された位置とを比較する段階と；
（viii）段階（vii）において前記シーケンス番号が前記識別された位置と整合しないとき、前記データパケットを前記許可された受信者サーバへ再び送る段階とを含むことが好ましい。
【００１９】
このやり方では、第１のサーバは、より先に送られたデータパケットが許可された受信者サーバによって受信されたことを検査するように動作して、対応する肯定応答メッセージが許可された受信者サーバから発信されたことを確認する。受信した肯定応答メッセージのソースが疑わしいときは、データパケットが再び送られる。
【００２０】
段階（iv）においてデータパケットを送った後で所定の時間期間内に肯定応答メッセージが受信されなかったときは、データパケットは許可された受信者サーバへ再び送られることが好ましい。これは、許可されていないユーザが失われたパケットを利用して、欠陥のあるデータパケットを送ることを試みる可能性に打ち勝つのを助ける。確認されないか、または無効として確認されたデータパケットを迅速に再送信することにより、許可されていないユーザがパケットの損失を検出し、欠陥のあるパケットを取り入れるのに使用できる時間は最短になる。これは、さらに、許可された受信者が有効なパケットと、同じデータ要素を含む欠陥のあるパケットとをほぼ同じ程度で受信する確率を増し、したがって欠陥のあるパケットが許可された受信者によって有効であるとして受諾される可能性を低減する。
【００２１】
本発明の第３の態様にしたがって、パケットネットワーク上でデータパケットを伝送するようにされているサーバであって：
パケットネットワークインターフェイスと；
別個のデータ要素を含むリストを記憶するためのメモリと；
前記記憶されたリストのコピーを所定の宛先へ送るための安全な通信手段と；
前記記憶されたリストから使用されていないデータ要素を選択して、送られるデータパケット内に前記選択されたデータ要素を含むように動作可能な選択手段と；
前記データパケットを前記インターフェイスを介して前記所定の宛先へ送るように動作可能なルート設定手段とをもつサーバを提供する。
【００２２】
本発明の第４の態様にしたがって、パケットネットワーク上でデータパケットを伝送するようにされているサーバであって：
パケットネットワークインターフェイスと；
データ要素を含むリストを受信するための安全な通信手段と；
前記受信したリストを記憶するメモリと；
データ要素を含むデータパケットを前記インターフェイスを介して受信する際に、前記含まれているデータ要素が前記記憶されたリスト内に含まれているとき、および前記含まれているデータ要素がより先に受信したデータパケット内に含まれていなかったときに、前記データパケットの受信に肯定応答するメッセージを送るように動作可能な確認手段とをもつサーバを提供する。
【００２３】
本発明は、関与しているキャッシングサーバの階層に関係しているマルチキャスティング構成についての特定の応用を見付けたが、本発明のパケット認証方法は、他のネットワーク構成またはネットワークタイプにおけるサーバ間の通信、すなわちパケットのルート設定の際に望ましくないオーバーヘッドを加えない“軽量”パケット認証技術を必要とする一方で、データパケットの送信元および正常な配信に関して適正な確実度を与えるものに応用される。マルチキャストアドレス上でソースから１組の宛先の組へデータパケットを伝送するのに多数のキャッシングサーバが関係するので、マルチキャスティング構成におけるオーバーヘッド処理について検討することがとくに重要である。一般的にパケット認証は、経路の端部のみからではなく、データ経路内の階層のキャッシングサーバの各対の間で、リンクごとに動作することを要求されている。各段階において加えられる余分な処理のオーバーヘッドは、全体的なパケットの遅延を相当に加え、サーバのスループットを低減する。
【００２４】
ここで次に本発明の特定の実施形態を例示的に記載する。ここでの記述は添付の図面と関連付けて読むべきである。
【００２５】
発明の実施の形態
図１を参照すると、２つのフローチャートが示されており、図１Ａは第１のサーバの動作における最初の段階を示しており、本発明の実施形態にしたがうパケット認証方法の制御のもとでパケットをルート設定することを可能にし、図１Ｂは受信者サーバの動作における最初の段階を示しており、第１のサーバと協働して、第１のサーバによってルート設定されたパケットを受信して、第１のサーバから発信されたとして確認することを可能にする。記載した特定の実施形態では、データを伝送するための安全な方法を使用してもよいが、公開（パブリック）および秘密（プライベート）の暗号化鍵（キー）に基づく暗号技術を、例えば上述で参照したＰＧＰを用いて、図１に示した最初の処理段階中に使用する。
【００２６】
図１Ａを参照すると、処理は段階100から始まり、ここでは第１のサーバが公開暗号化鍵を許可された受信者サーバへ送る。許可された受信者サーバは、第１のサーバからルート設定されるデータパケットをやがて受信する可能性が高いサーバである。暗号化鍵を送る技術は、公開鍵を安全に送ることを確実にするための鍵の送信者と受信者との間の対話のいくつかの段階を含む。鍵交換のためのいくつかの技術は、この技術においてよく知られている。
【００２７】
公開鍵を分配するとき、段階105において第１のサーバは別個の２４ビットのランダム番号のリストを生成する。実際には、後で明らかになるように、この段階で単一のランダム番号のみを発生するのは、肯定応答に関して非常に非効率的で、非効果的である。許可されていないユーザがこれらの生成された番号から有効な番号を推測する確率が低いことを保証するように、各ランダムな番号を表わすのに使用されるビット数、および特定のリストに対して生成された番号の数を選択することが好ましい。２４ビットの表示が選択されるときは、例えば１，６７０万以上の数が表示され、特定のリスト内のこれらの可能な数の中の１０００のみにおいて実際に使用することができる。
【００２８】
段階110において、第１のサーバは生成された番号のリストをその秘密暗号化鍵を使用して暗号化し、次に段階115において、暗号化された番号のリストを許可された受信者サーバへ送る。生成された番号のリストは、単一のデータパケットとして組込まれて、送られ、リストが１以上のパケットで占めているときのパケット損失から発生する潜在的な問題を回避することが好ましい。
【００２９】
図１Ｂを参照すると、許可された受信者サーバの動作における対応する段階は、段階150から始まり、段階150では、段階100において第１のサーバによって送られた公開暗号化鍵を受信する。段階100に関係して既に記載したように、この最初の段階は、第1のサーバといくつかの対話を含み、公開鍵の安全な移送を確実にする。段階155では、段階110において第１のサーバによって送られた暗号化された番号のリストが受信される。段階160では、受信者サーバは、より先に受信した公開暗号化鍵を使用して番号リストをデクリプト（解号化）し、その後で第１のサーバからデータパケットを受信する準備が整う。
【００３０】
図２および３を参照すると、２つのフローチャートが示されている。図２は、第１のサーバが受信したパケットを許可された受信者サーバへルート設定する動作における段階を示している。図２に示した処理段階は、図１Ａの段階115の第１のサーバによる暗号化された番号リストの分配に続く段階から始まっている。図３は、許可された受信者サーバの１つが第１のサーバによってルート設定したパケットを受信し、パケットの真正性を確認する動作における対応する段階を示している。図３にしたがう受信者サーバによる処理は、図１Ｂの段階160の受信した番号の暗号化に続く段階から始まる。
【００３１】
図２を参照すると、先ず段階200において、第１のサーバはルート設定されたパケットを受取る。段階205では、第１のサーバは、段階105において生成された番号のリストから、以前に選択されなかった番号を選択する。選択はランダムに行って、許可されていないユーザがリスト内の選択された番号の位置を予測するのを妨げるのを助けることが好ましい。しかしながら、他の選択方法を使用してもよい。段階210では、第１のサーバは選択された番号をルート設定されるパケットに付す。選択された番号はパケットヘッダ内の所定の位置へ挿入されるか、またはその代わりに、パケットのコンテンツの全てまたは一部でハッシュされる。段階215では、第１のサーバは、所定のルート設定条件にしたがって、許可された受信者サーバへパケットをルート設定する。段階220では、第１のサーバは、時間期間が終了する前に、受信者のサーバの各々からの肯定応答メッセージの受信について試験する。タイムアウト（時間切れ）期間は、段階240におけるタイムアウト試験によって制御され、非常に短くなることが好ましい。タイムアウト期間は、ＴＣＰ／ＩＰによって使用される再伝送のタイムアウトアルゴリズムにしたがって設定されることが好ましく、これは文献（“TCP/IP Illustrated, Volume 1: The Protocols” (Addison-Wesley Professional Computing Series), W. Richard Stevens, p.297）に記載されている。段階240において、タイムアウト期間に到達して、意図された受信者サーバから肯定応答メッセージを受取らなかったとき、段階215では、第1のサーバはパケットを各意図された受信者へ再び送って、パケット内の番号リストから同じ選択された番号を協働する。
【００３２】
短いタイムアウト期間を使用することは、第１のサーバによって送られたパケットが失われた場合に、許可されていないユーザがそれ自身の欠陥のあるパケットを送るといった起こりうる機会を克服するのを助ける。許可されていないユーザはパケットの進行を監視して、各パケットから選択された番号をコピーし、これらのパケットの１つが意図された宛先に到達しない場合は、許可されていないユーザは対応する番号をそれ自身の欠陥のあるパケットへ付し、意図された受信者サーバが欠陥のあるパケットを受諾して、それに肯定応答して、伝搬するように騙すことを試行する。許可されていないユーザによるこのような処理は、図２の段階240において採用されているタイムアウト期間よりも時間がかかる。第１のサーバによって損失したパケットを再伝送すると、同じ付された番号をもつ受信者によって２つのパケットが受信されることになる。後で記載するように、異なるコンテンツの比較は、機密保護の侵害を示しており、例えば最新の番号リストから異なる選択した番号を使用するのではなく、例えば第１のサーバによるパケットの再伝送を確実にする適切な段階を行うことができる。
【００３３】
実際には、第１のサーバと許可された受信者サーバとの間の距離は通常は短いので、ネットワークによって多くのパケットを失う可能性は低い。
【００３４】
図３を参照して記載したように、許可された受信者サーバが、図２の段階215から第1のサーバによって有効に送られたと考えられるパケットを受取るとき、受信者サーバは、パケットの受信を確認するメッセージ（肯定応答メッセージ）を生成し、付された番号の最新の番号リスト内の位置を示すシーケンス番号を、所定の方法で肯定応答メッセージに挿入する。段階220において、このような肯定応答（アクノリッジ、ＡＣＫ）メッセージを受信したとき、段階225において、第１のサーバは肯定応答メッセージ内へ挿入されたシーケンス番号を読み取る。段階230では、第１のサーバは、肯定応答メッセージ内のシーケンス番号が、番号リスト内の最初に選択した番号の位置と対応するかを検査する。シーケンス番号が無効であるときは、許可されていない受信者サーバによって、または許可されている受信者サーバによって潜在的に生成された肯定応答メッセージは、有効の付された番号含むことになった欠陥のあるパケットに関係する無効であると考えられる。許可された受信者サーバは最新の番号リストを所持し、したがってこのリスト内の有効の付された番号の位置を正確に判断することができる。肯定応答メッセージが無効であると考えられるときは、段階215において第１のサーバは直ちに確認されていないパケットを再び送る。
【００３５】
段階230では、肯定応答メッセージが有効のシーケンス番号を含むとき、段階235では、段階105において生成されたリスト内の全ての番号を選択して、ルート設定されたパケット内で使用したときか、またはリストをほぼ使い尽くしたときは、第１のサーバ内の処理は図１Ａの段階105に戻り、別のパケットがルート設定される前にランダム番号の新しいリストを生成して分配する段階を実行する。さもなければ、処理は段階200へ戻って、別のパケットを受信する準備を整える。
【００３６】
既に記載したように、図１Ａの段階105において、番号が非常に少ないリスト、例えば、番号を1つだけ含むリストを生成することは、このプロセスに関係するオーバーヘッドを相当に、かつ必要以上に増加する。この場合に、段階105ないし115では、ルート設定される各パケットに対して第１のサーバによって実行されることが必要である。したがって有意に２以上の番号をもち、好ましくは少なくとも数百の番号を含むリストは、段階105を実行するたびに生成されることが好ましい。リスト内の番号が比較的に少数であるときも、肯定応答メッセージを監視し、使用されたシーケンス番号を示した許可されていないユーザは、次の付された番号に対するシーケンス番号を予測し、誤っているが、さもなければ有効な肯定応答メッセージを生成できる確率を増す。
【００３７】
図３を参照すると、ここでは、図２にしたがって動作する第１のサーバ自体と協働して動作する許可された受信者サーバの動作の段階が記載されている。先ず段階250において、受信者サーバがデータパケットを受信する。段階255では、例えばパケットヘッダ内の所定の位置では、パケットに付されたことが分かっている番号が読み取られ、付された番号が、段階155において受信した最新の番号リスト内に含まれていることを確実にするように検査を行なう。付された番号がリスト内に含まれていなかったとき、パケットは無効のソースから発信していると考えられ、段階265では無視され、受信者サーバは、許可されていないユーザが無効のデータを送るといった可能性のある試行に関して、好ましくは警報メッセージをシステムの管理者または第１のサーバへ送る以外に、このパケットに関係して別の処理を行わない。しかしながら、段階255において、付された番号がリスト内に位置決めされているとき、段階260において、付された番号が、より先のパケットにより既に使用されていなかったことを確実にするために別の検査を行う。既に使用されていることが分かっている付された番号は、パケットがより先のパケットの無害な複製であるか、または付された番号が潜在的に欠陥のあるソースから発信しているパケットに付されていることを示す。したがって、段階260において付された番号が別のパケットで使用されているときは、段階262において各パケットのデータコンテンツが比較される。段階263においてパケットのデータコンテンツが同じであるときは、第２のパケットが無害な複製であることが確認され、段階270へ処理を進める。コンテンツが異なるときは、各パケットの一方または他方が無効であることが多く、好ましくは段階265において両方のパケットが無視される。
【００３８】
段階260において、付された番号がまだ使用されていないときは、段階270において、最新の番号リスト内の付された番号の位置を示すシーケンス番号が計算される。段階275において、シーケンス番号、および好ましくは受信者サーバの識別子を含む肯定応答メッセージが生成され、なお、このシーケンス番号は、所定のハッシングアルゴリズムを使用してメッセージとハッシュされることが好ましい。段階280では、肯定応答メッセージは、例えばパケットの受信を示すためにユニキャスティング技術によって第１のサーバへ送られる。図２に関して上述した段階225および230によって、第１のサーバは肯定応答メッセージ内に含まれているシーケンス番号を使用して、肯定応答メッセージが、最新の番号リストのコピーを保持している、許可されたパケットの受信者から発信したものであることを確認する。
【００３９】
同じ付された番号を使用して複数の宛先の各々へ特定のパケットをルート設定するのではなく、その代わりに第１のサーバは、異なる番号リストからパケットの各宛先に関係する番号を選択するか、または同じリストからパケットの各宛先に関係する異なる番号を選択するようにされている。このやり方では、各受信の確認についての妥当性は、それぞれ計算されたシーケンス番号の妥当性から明らかであるので、各許可された受信者に対する識別子の肯定応答メッセージ内に含む必要はない。
【００４０】
有効なパケットを受信し、受信に肯定応答すると、受信者サーバは、段階262においてそのパケットのコンテンツと後で受信するパケットのコンテンツを比較するために、段階285においてパケットをキャッシュする。別個のキャッシングメモリを使用してパケットをキャッシュし、次に、既に記載したのと同様の認証技術を使用して、別のサーバへ送ってもよい。
【００４１】
段階285においてパケットを受信し、キャッシュすることに成功するか、または段階265においてパケットを拒絶した後で、第１のサーバから別のパケットの受信を検査する前に、段階290において新しい番号リストの有効性（利用可能性）を検査する。最新の番号リストが第１のサーバによって使い尽くされたか、または所定の最小数の使用されていない番号のみが残っているとき、別のパケットがルート設定される前か、または同時に、新しい番号リストが図１Ａの段階にしたがって第１のサーバによって生成され、送られる。新しい番号リストが使用可能であるとき、受信者サーバは、最初に段階295において（コンテンツを比較するために）段階285においてキャッシュされた全てのパケットを削除して、図１Ｂの段階を段階155から実行し始めて、新しい番号リストを受信して、デクリプトする。
【００４２】
当業者は、番号リストが必ずしもランダムに生成された番号を含む必要がないことが分かるであろう。唯一の好ましい要求は、リスト内の生成された番号が別個であることである。図２の段階205における次の番号のランダムな選択は、ランダムな番号の選択に関して、生成された番号がランダムに生成されても、または生成されなくても実質的に同等の効果を与える。しかしながら、ランダムな選択に加えて番号のランダムな生成は、許可されていないユーザが、第１のサーバが使用する番号を確認することによって、使用される可能性が次に高い番号を予測し、予測された番号を使用して、欠陥のあるパケットをサーバのシステムへ送る可能性を最小化する。
【００４３】
肯定応答メッセージの生成における効率の悪い代わりの方法として、承認された受信者サーバがそれら自身の番号リストを生成し、それらをパケットの潜在的な送信者へ分配する方法を使用してもよい。この場合に、図１Ａに示した段階に類似した最初の処理段階は、潜在的なパケット送信サーバによって実行され、図１Ｂに示した段階に類似した処理段階は、潜在的なパケット送信サーバによって実行される。その後、図３では、段階270においてシーケンス番号を判断する代わりに、受信者サーバは、肯定応答メッセージ内に含まれる番号を最新の番号リストから番号を選択する。第１のサーバは、段階255において受信者サーバによって実行される段階に類似した確認段階を実行して、肯定応答メッセージ内に含まれる番号が各受信者サーバによって配信された最新の番号リスト内に含まれていたことを検査することを要求される。
【図面の簡単な説明】
【図１】  本発明の実施形態にしたがう方法における段階の最初のシーケンスを示すフローチャート（図１Ａおよび１Ｂ）。
【図２】  本発明の実施形態の方法における段階の別のシーケンスを示すフローチャート。
【図３】  本発明の実施形態の方法における段階の図３に続く別のシーケンスを示すフローチャート。
【図１】
0004565788.tif 000002
【図２】
0004565788.tif 000003
【図３】
0004565788.tif 000004