(57)【特許請求の範囲】
【請求項１】
ピアツーピアタイプ解決を使用して接続されたデバイスの間でのセキュアで集約され階層化されたルックアップを可能にする方法であって、前記ピアコンピュータは前記接続されたデバイスのうちの１つであり、前記方法は前記メモリに格納されたコンピュータ実行可能命令を実行する前記ピアコンピュータのプロセッサによって実行され、前記メモリは前記第１のノードに対応する第１のピア識別子及び前記接続されたデバイスのうちの他のデバイスに対応する他のノードに対応する他のピア識別子のキャッシュをさらに格納し、前記第１のピア識別子及び前記他のピア識別子は前記第１のノードと前記他のノード間の通信を確立する際に前記ピアツーピアタイプ解決により使用される、前記方法は、
前記ピアコンピュータが、第１のドメインの第１の名前空間に関連する１つまたは複数の第１の暗号鍵を生成し、ここで前記第１のドメインは、集約され階層化された、名前空間を有するドメインのセットのメンバであり、
前記ピアコンピュータが、前記１つまたは複数の第１の暗号鍵の１つを使用して第１の権限を作成し、
前記ピアコンピュータが、次の上位階層の名前空間に関連する１つまたは複数の次の暗号鍵を成し、ここで、前記次の上位階層の名前空間は前記第１の名前空間よりも１つ上位の階層のドメインであり、前記上位の階層のドメインは前記集約され階層化された名前空間を有するドメインのセットのうちの他のメンバであり、
前記ピアコンピュータが、前記１つまたは複数の次の暗号鍵の１つを使用して次の上位階層の権限を作成し、
前記ピアツーピアタイプ解決を使用して、前記他のノードに、前記第１の名前空間と前記次の階層の名前空間との間の対応付けを公開することを含み、前記対応付けは、
前記第１の名前空間でユニークな名前を前記第１の権限に対応付ける署名付き解決であり、
前記署名付き解決は前記１つまたは複数の次の暗号鍵の１つで署名されており、前記ユニークな名前は前記次の上位層の権限と前記第１の名前空間を含む
ことを特徴とする方法。
【請求項２】
前記接続されたデバイスは、ピアツーピアネットワーククラウドの一部であることを特徴とする請求項１に記載の方法。
【請求項３】
前記方法は、前記第１の名前空間がサービスである場合に、前記ピアツーピアタイプ解決を使用して、前記他のノードに、第２の対応付けを公開することを含み、前記第２の対応付けは、前記第１の権限を、データを提供する最終結果に対応付ける署名付きサービス解決であり、前記署名付きサービス解決は、前記１つまたは複数の第１の暗号鍵の１つで署名されていることを特徴とする請求項１に記載の方法。
【請求項４】
前記方法は、前記第１の名前空間がサービスである場合、前記ピアツーピアタイプ解決を使用して、前記他のノードに、第２の対応付けを公開することを含み、前記第２の対応付けは、前記第１の権限をＩＰアドレス、プロトコル名、およびポートに対応付ける署名付きサービス解決であり、前記署名付きサービス解決は、前記１つまたは複数の第１の暗号鍵の１つで署名されていることを特徴とする請求項１に記載の方法。
【請求項５】
前記方法は、権限の委譲を介して前記第１の名前空間のアドレスを初めのアドレスから新しいアドレスへ動的に変更することをサポートし、前記方法は、
前記ピアツーピアタイプ解決を使用して、前記他のノードに、前記新しいアドレスと前記第１の名前空間の新しい対応付けを公開することを含み、ここで、前記新しい対応付けは、前記第１の権限を前記新しいアドレスに対応づける署名付きの新しい解決であり、前記署名付きの新しい解決は前記１つまたは複数の第１の暗号鍵の１つで署名されていることを特徴とする請求項１に記載の方法。
【請求項６】
前記署名付きの解決は、前記名前を１つのホストおよび１つのサービスのうちの１つに対応付けることを特徴とする請求項１に記載の方法。
【請求項７】
前記第１の権限を作成することは、前記１つまたは複数の第１の暗号鍵の１つについてハッシュの計算を実行することを含み、前記１つまたは複数の第１の暗号鍵の１つは、第１の秘密鍵と公開鍵のペアのうちの公開鍵であり、
前記次の上位階層の権限を作成することは、前記１つまたは複数の次の暗号鍵の１つについて次のハッシュの計算を実行することを含み、前記１つまたは複数の次の暗号鍵の１つは、次の秘密鍵と公開鍵のペアのうちの次の公開鍵であることを特徴とする請求項１に記載の方法。
【請求項８】
名前解決プロトコルを実装するためにピアツーピアネットワークにおける第１のノードに対応するピアコンピュータのメモリに格納されるデータ構造を生成する方法であって、前記方法は前記ピアコンピュータのメモリに格納されたコンピュータ実行可能命令を実行する前記ピアコンピュータのプロセッサによって実行され、前記メモリは前記第１のノードに対応する第１のピア識別子及び前記ピアツーピアネットワークにおける他のノードに対応する他のピア識別子のキャッシュを格納し、前記第１のピア識別子及び前記他のピア識別子は前記第１のノードと前記他のノード間の通信を確立する際に前記ピアツーピアタイプ解決により使用される、前記方法は、
前記ピアコンピュータが、第１の公開鍵に関連した第１の権限コンポーネントを有する第１のフィールドを生成し、ここで、前記第１の公開鍵は第１の秘密鍵と公開鍵のペアのうちの一部であり、前記第１の権限コンポーネントは第１のドメインの第１の名前空間に対応し、前記第１のドメインは集約され階層化された名前空間のセットのメンバであり、
前記ピアコンピュータが、第２の名前空間に関連した第２の名前コンポーネントを有する第２のフィールドを生成し、ここで、第２の名前空間は第２の権限に対応し、前記第２の名前空間のドメインは前記集約され階層化された名前空間のセットのうちの他のメンバであり前記第１の名前空間のドメインより低階層であり、前記第１の権限コンポーネント及び前記第２の名前コンポーネントは前記第２の権限に対応付けされる、
前記第１のフィールドと前記第２のフィールを含むように前記データ構造を構成し、
前記ピアコンピュータが、前記第１の権限及び前記第２の名前コンポーネントを前記第２の権限に対応付ける解決を前記ピアツーピアネットワークに対して公開するために、前記構成されたデータ構造を名前解決プロトコルに提供する
ことを特徴とする方法。
【請求項９】
前記方法は、前記第２の名前空間がサービスである場合に、前記第２の権限を前記サービスのポート番号、プロトコル名、およびＩＰアドレスへの対応付ける第２の解決を前記ピアツーピアネットワークに対して公開するために、前記第２の権限コンポーネントを名前解決プロトコルに提供することを特徴とする請求項８に記載の方法。
【請求項１０】
前記方法は、前記第１の名前空間が第１のホストである場合に、前記第１の権限コンポーネント及び第２の名前コンポーネントは、前記第２の権限に対応する第２のホストに対応付けることを特徴とする請求項８に記載の方法。
【請求項１１】
前記方法は、前記ピアコンピュータが、前記キャッシュからＩＰアドレス、プロトコル名、またはポートの１つまたは複数を検索することをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１２】
ピアツーピアタイプ解決を使用して接続されたデバイスの間でのセキュアで集約され階層化されたルックアップを可能にするステップをコンピュータに実行させるプログラムを記録したコンピュータ可読記録媒体であって、前記プログラムは、コンピュータに、
第１のドメインの第１の名前空間に関連する１つまたは複数の第１の暗号鍵を生成するステップであって、ここで、前記第１のドメインは、集約され階層化された、名前空間を有するドメインのセットのメンバである、ステップと、
前記１つまたは複数の第１の暗号鍵の１つを使用して第１の権限を作成することと、
次の上位階層の名前空間に関連する１つまたは複数の次の暗号鍵を生成するステップであって、ここで、前記次の上位階層の名前空間は前記第１の名前空間よりも１つ上位の階層のドメインであり、前記上位の階層のドメインは前記集約され階層化された名前空間を有するドメインのセットのうちの他のメンバである、ステップと、
前記１つまたは複数の次の暗号鍵の１つを使用して次の上位階層の権限を作成するステップと、
前記ピアツーピアタイプ解決を使用して、前記他のノードに、前記第１の名前空間と前記次の階層の名前空間との間の対応付けを公開するステップであって、ここで前記対応付けは、
前記第１の名前空間でユニークな名前を前記第１の権限に対応付ける署名付き解決であり、
前記署名付き解決は前記１つまたは複数の次の暗号鍵の１つで署名されており、前記ユニークな名前は前記次の上位層の権限と前記第１の名前空間を含む、
ステップと
を実行させることを特徴とするコンピュータ可読記録媒体。
【請求項１３】
前記接続されたデバイスは、ピアツーピアネットワーククラウドの一部であることを特徴とする請求項１２に記載のコンピュータ可読記録媒体。
【請求項１４】
前記プログラムは、前記コンピュータに、
前記第１の名前空間がサービスである場合に、第２の対応付けを公開するステップであって、前記第２の対応付けは、前記第１の権限を、任意のデータ、またはＩＰアドレス、プロトコル名、およびポートのグループのうちの１つまたは複数に対応付ける署名付きサービス解決であり、前記署名付きサービス解決は、前記１つまたは複数の第１の暗号鍵の１つで署名されている、ステップ
を実行させることを特徴とする請求項１２に記載のコンピュータ可読記録媒体。
【請求項１５】
前記プログラムは、前記コンピュータに、
権限の委譲を介して前記第１の名前空間のアドレスを初めのアドレスから新しいアドレスへ動的に変更することをサポートするステップであって、
前記ピアツーピアタイプ解決を使用して、前記他のノードに、前記新しいアドレスと前記第１の名前空間の新しい対応付けを公開することを含み、ここで、前記新しい対応付けは、前記第１の権限を前記新しいアドレスに対応づける署名付きの新しい解決であり、前記署名付きの新しい解決は前記１つまたは複数の第１の暗号鍵の１つで署名されている、ステップ
を実行させることを特徴とする請求項１２に記載のコンピュータ可読記録媒体。
【請求項１６】
前記署名付きの解決は、前記名前を１つのホストおよび１つのサービスからなるグループのうちの１つに対応付けることを特徴とする請求項１２に記載のコンピュータ可読記録媒体。
【請求項１７】
前記署名付きの解決は、前記名前を任意のデータに対応付けることを特徴とする請求項１２に記載のコンピュータ可読記録媒体。
【請求項１８】
前記第１の権限を作成することは、前記１つまたは複数の第１の暗号鍵の１つについてのハッシュの計算を実行することを含み、前記１つまたは複数の第１暗号鍵の１つは、第１の秘密鍵と公開鍵のペアのうちの公開鍵であり、
前記次の上位階層の権限を作成することは、前記１つまたは複数の次の暗号鍵の１つについて次のハッシュの計算を実行することを含み、前記１つまたは複数の次の暗号鍵の１つは、次の秘密鍵と公開鍵のペアのうちの次の公開鍵であることを特徴とする請求項１２に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはコンピュータシステムに関し、より詳細にはディレクトリサービス（ｄｉｒｅｃｔｏｒｙ  ｓｅｒｖｉｃｅ）のセキュリティ機能およびマッピング機能に関する。
【背景技術】
【０００２】
ピアツーピアネットワーキングは、単なるクライアントベースのコンピューティングタスク以上のことにパーソナルコンピュータを使用することを指す。具体的に言うと、ピアツーピアコンピューティングは、現代のパーソナルコンピュータが、高速プロセッサ、大量のメモリ、および大容量ハードドライブを有するが、電子メールおよびウェブブラウジングなどの一般的なコンピューティングタスクを実行する時に、これらのどれもが完全には使用されていないという事実に影響力を行使する。パーソナルコンピュータは、クライアントおよびサーバの両方として働く時に、「ピア」として働いている。
【０００３】
多くのアプリケーションの通常のコンピューティングモデルは、クライアント／サーバモデルである。サーバコンピュータは、通常、膨大なリソースを有し、クライアントコンピュータからのリソースおよびデータに関する要求に応答する。クライアントコンピュータは、リソースまたはデータに関する、サーバコンピュータへの要求を開始する。コンピューティングのクライアント／サーバモデルの良い例が、ウェブブラウジングである。インターネットのウェブサーバは、通常は、超高速プロセッサ（または複数のプロセッサ）および巨大なハードディスクアレイを有するハイエンドの専用サーバコンピュータである。ウェブサーバは、ウェブサイトに関連するコンテンツのすべて（ＨＴＭＬファイル、グラフィックス、オーディオファイル、およびビデオファイルなど）を保管し、特定のウェブページ上の情報を閲覧するための要求が到着するのを待つ（listen）。ページが要求される時に、ウェブサーバは、そのページおよび関連ファイルを要求元クライアントに送信する。
【０００４】
クライアント／サーバとピアツーピアネットワーキングとの間の対照的な点は、ドメインネームサービス（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｅｒｖｉｃｅ、ＤＮＳ）の使用である。サーバコンピュータは、通常、ＤＮＳに登録され、その結果、クライアントコンピュータは、サーバコンピュータの名前とインターネットプロトコルアドレスとの対応づけ（resolve）ができるようになる。クライアントコンピュータは、通常、ＤＮＳに登録されない。というのは、多くのクライアントコンピュータが、一時的な接続性を有し、予測不能な時間にわたって接続され、接続ごとに新しいインターネットプロトコルアドレスを割り当てられる可能性があるからである。また、クライアントコンピュータは、共有リソースを有しておらず、リソースに関する要求に応答しない。したがって、他のコンピュータは、クライアントコンピュータの名前を解決する必要がない。クライアントコンピュータに関するＤＮＳアドレスレコードは、不要である。
【０００５】
その一方で、ピアコンピュータは、共有されるリソースを有する。しかし、ピアコンピュータは、一時的接続性を有する。ピアコンピュータは、ＤＮＳ動的更新（ｄｙｎａｍｉｃ  ｕｐｄａｔｅ）を使用して名前を登録することができるが、インターネット上のごくわずかなＤＮＳサーバだけが、ＤＮＳ動的更新をサポートする。ピアツーピアネットワーキングに成功するために、ピアコンピュータは、既存のＤＮＳインフラストラクチャに頼らない。したがって、ＤＮＳに頼らずにピア名をそのアドレスに対応づけるために、ＰＮＲＰ（Ｐｅｅｒ  Ｎａｍｅ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）と称する機構または、Ｐ−ＧＲＩＤなどの他のピアツーピア名前解決プロトコルを使用することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ピアツーピア名前解決プロトコルおよびＤＮＳの両方に、問題がある。たとえば、ＤＮＳは、名前空間（namespace）を変更する時に、管理コストが高くなる。ピアツーピア名前解決プロトコルは、ピア名とＩＰアドレス、プロトコル名およびポート識別との対応づけに制限される。必要なものは、より低い管理コストで機能強化された結果を提供する名前解決および名前のマッピングの方法である。
【課題を解決するための手段】
【０００７】
したがって、本発明は、ピア名を任意のデータに対応づけできるようにし、ＤＮＳのセキュアな代替物を提供する、ルックアップを実行する方法を提供する。この方法は、さらに、複数の名前空間ルートをサポートする。一実施形態では、この方法は、名前空間に関連する１つまたは複数の暗号鍵をまず生成することによって、ルックアップを可能にする。次に、この方法は、暗号鍵の１つを使用して権限（authority）を作成する。次に、この方法は、名前空間の名前が、ピアツーピアタイプ解決を発行するために１つまたは複数の名前空間に関連づけられた権限を要求することで、１つまたは複数の名前空間が権限を参照できるようにし、名前空間が権限に対応づけられる。通信が望まれる他の名前空間について、この方法は、権限と、１つまたは複数の他の権限に対応づけられる他の名前空間に関連する１つまたは複数の名前とを指定する解決（resolution）を発行する。この方法は、さらに、ＩＰアドレス、プロトコル名、およびポートを受け取るために権限およびサービス名を公開（publish）することによるサービスを提供する。
【０００８】
一実施形態によるもう１つの方法は、インターネットを介するサービスの実施を対象とする。この方法には、サービスが権限を提供するための１つまたは複数の鍵を生成すること、次に、サービスへの対応づけを公開することをトップレベルドメインの管理者に要求すること、次に、サービスのサブグループに権限を委譲し、インターネットを介してサービスを公開することが含まれる。サービスを公開することには、サービスのポート番号、プロトコル名、およびＩＰアドレスを識別する解決を公開することが含まれる。
【０００９】
もう一つの実施形態は、権限および名前の組合せを第２の権限に対応づけすることと、第２の権限をさらなる権限あるいは、任意のデータ、ポート、プロトコル名、またはＩＰアドレスなどの最終結果に対応づけすることとを含む、名前解決サービスを動作させる方法を対象とする。したがって、名前解決は、委譲される権限のＩＰアドレスを要求することから独立した、委譲される権限の階層ルックアップまたは連鎖したルックアップを含む。
【００１０】
本発明の追加の特徴および長所は、添付図面を参照して進行する例示的実施形態の下記の詳細な説明から明白になる。
【００１１】
添付の特許請求の範囲に、本発明の特徴を具体的に示すが、本発明は、その目的および長所と共に、添付図面と共に理解される以下の詳細な説明から最もよく理解することができる。
【発明を実施するための最良の形態】
【００１２】
図面に移ると、類似する符号は類似する要素を指し、本発明は適切なコンピューティング環境で実施されるものとして示されている。必須ではないが、本発明を、プログラムモジュールなど、パーソナルコンピュータによって実行されるコンピュータ実行可能命令の一般的な状況で説明する。一般に、プログラムモジュールには、特定のタスクを実行するか特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。さらに、当業者は、本発明を、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルな消費者電子製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、および類似物を含む他のコンピュータシステム構成で実践できることを諒解するであろう。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実践することができる。分散コンピューティング環境では、プログラムモジュールを、ローカルとリモートの両方のメモリストレージデバイスに配置することができる。
【００１３】
図１に、本発明を実施できる適切なコンピューティングシステム環境１００の例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能性の範囲に関する制限を暗示することを意図されたものではない。コンピューティング環境１００を、例示的なオペレーティング環境１００に示された構成要素のいずれかまたはその組合せに関する依存性または要件を有するものと解釈してもならない。
【００１４】
本発明は、多数の他の汎用または特殊目的のコンピューティングシステム環境または構成で実施をすることができる。本発明と共に使用するのに適する可能性がある周知のコンピューティングシステム、環境、および／または構成の例に、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイス、ラップトップデバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル消費者電子製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境、および類似物が含まれるが、これに制限はされない。
【００１５】
本発明を、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の一般的な状況で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明を、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実践することができる。分散コンピューティング環境では、プログラムモジュールを、メモリストレージデバイスを含む、ローカルおよび／またはリモートのコンピュータ記憶媒体に配置することができる。
【００１６】
図１に関して、本発明を実施する例示的システムに、コンピュータ１１０の形の汎用コンピューティングデバイスが含まれる。コンピュータ１１０の構成要素に、処理ユニット１２０、システムメモリ１３０、およびシステムメモリを含むさまざまなシステム構成要素を処理ユニット１２０に接続するシステムバス１２１を含めることができるが、これに限定はされない。システムバス１２１は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含むさまざまなタイプのバス構造のいずれかとすることができる。限定ではなく例として、そのようなアーキテクチャに、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも称するＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【００１７】
コンピュータ１１０に、通常、さまざまなコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、コンピュータ１１０によってアクセスできる媒体のいずれかとすることができる。コンピュータ可読媒体には、揮発性および不揮発性の媒体ならびに取外し可能および取外し不能の媒体の両方が含まれる。限定ではなく例として、コンピュータ可読媒体に、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージの任意の方法またはテクノロジで実現される、揮発性および不揮発性の、取外し可能および取外し不能の媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリテクノロジ、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）、または他の光学ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは、所望の情報の保管に使用でき、コンピュータ１１０によってアクセスできる他の媒体が含まれるが、これに制限はされない。通信媒体によって、通常は、搬送波または他のトランスポート機構などの変調されたデータ信号内で、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータが具現化される。通信媒体には、すべての情報配信媒体が含まれる。用語「変調されたデータ信号」は、信号内に情報をエンコードする形で１つまたは複数の特性を設定または変更された信号を意味する。限定ではなく例として、通信媒体に、有線ネットワークまたは直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれる。上記のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれなければならない。
【００１８】
システムメモリ１３０に、読取専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体が含まれる。起動中などにコンピュータ１１０内の要素間の情報の転送を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）が、通常はＲＯＭ１３１に保管される。ＲＡＭ１３２には、通常は、処理ユニット１２０によって即座にアクセス可能および／または現在操作されつつあるデータおよび／またはプログラムモジュールが含まれる。限定ではなく例として、図１に、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７が示されている。
【００１９】
コンピュータ１１０には、他の取外し可能／取外し不能、揮発性／不揮発性のコンピュータ記憶媒体も含めることができる。例のみとして、図１に、取外し不能不揮発性磁気媒体から読み取るかこれに書き込むハードディスクドライブ１４１、取外し可能不揮発性磁気ディスク１５２から読み取るかこれに書き込む磁気ディスクドライブ１５１、ＣＤ  ＲＯＭまたは他の光媒体などの取外し可能不揮発性光ディスク１５６から読み取るかこれに書き込む光ディスクドライブ１５５が示されている。例示的なオペレーティング環境で使用することができる他の取外し可能／取外し不能、揮発性／不揮発性コンピュータ記憶媒体に、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ、および類似物が含まれるが、これに制限はされない。ハードディスクドライブ１４１は、通常は、インターフェース１４０などの取外し不能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常は、インターフェース１５０などの取外し可能メモリインターフェースによってシステムバス１２１に接続される。
【００２０】
上述し図１に示されたドライブおよびそれに関連するコンピュータ記憶媒体によって、コンピュータ１１０のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージがもたらされる。図１では、たとえば、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を保管するものとして図示されている。これらの構成要素を、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同一または異なるいずれかとすることができることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は、少なくともこれらが異なる複製であることを示すために、異なる符号を与えられている。ユーザは、タブレット、または電子ディジタイザ１６４、マイクロホン１６３、キーボード１６２、および、一般にマウス、トラックボール、またはタッチパッドと称するポインティングデバイス１６１などの入力デバイスを介してコンピュータ１１０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）に、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、または類似物を含めることができる。上記および他の入力デバイスは、システムバスに結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されることがしばしばであるが、パラレルポート、ゲームポート、またはｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）などの他のインターフェースおよびバス構造によって接続することができる。モニタ１９１または他のタイプのディスプレイデバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタ１９１は、タッチスクリーンパネルまたは類似物と一体化することもできる。タブレット型パーソナルコンピュータなどのように、モニタおよび／またはタッチスクリーンパネルを、コンピューティングデバイス１１０が組み込まれる筐体に物理的に結合できることに留意されたい。さらに、コンピューティングデバイス１１０などのコンピュータに、スピーカ１９７およびプリンタ１９６など、出力周辺インターフェース１９４または類似物を介して接続することができる他の周辺出力デバイスも含めることができる。
【００２１】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、リモートコンピュータ１８０には、通常は、コンピュータ１１０に関して先に説明した要素の多くまたはすべてが含まれるが、図１にはメモリストレージデバイス１８１だけが示されている。図１に示された論理接続に、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３が含まれるが、他のネットワークも含めることができる。そのようなネットワーク環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットでありふれたものである。たとえば、本発明では、コンピュータシステム１１０に、そこからデータが移植されるソース計算機を含めることができ、リモートコンピュータ１８０に、宛先計算機を含めることができる。しかし、ソース計算機および宛先計算機は、ネットワークまたは他の手段によって接続される必要はなく、その代わりに、データを、ソースプラットフォームによって書き込まれ、１つまたは複数の宛先プラットフォームによって読み取られることができる媒体を介して移植することができることに留意されたい。
【００２２】
ＬＡＮネットワーキング環境で使用される時に、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される時に、コンピュータ１１０に、通常は、インターネットなどのＷＡＮ１７３を介する通信を確立する、モデム１７２または他の手段が含まれる。モデム１７２は、内蔵または外付けとすることができるが、ユーザ入力インターフェース１６０または他の適当な機構を介してシステムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０に関して示されたプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに保管することができる。限定ではなく例として、図１に、メモリデバイス１８１に常駐するものとしてリモートアプリケーションプログラム１８５を示す。図示のネットワーク接続が、例示的であり、コンピュータの間の通信リンクを確立する他の手段を使用できることを諒解されたい。
【００２３】
以下の説明では、本発明を、特に示さない限り、１つまたは複数のコンピュータによって実行される動作および動作の記号表現に関して説明する。したがって、時々コンピュータ実行されるとも称するそのような動作に、構造化された形でデータを表す電気信号の、コンピュータの処理ユニットによる操作が含まれる。この操作によって、データが変換されるか、コンピュータのメモリシステム内のある位置でデータが維持され、これによって、当業者には周知の形でコンピュータの動作が再構成または他の形で変更される。データが維持されるデータ構造は、データのフォーマットによって定義される特定の特性を有するメモリの物理的位置である。しかし、本発明を、前述の文脈で説明するが、以下に記載のさまざまな動作をハードウェアでも実施できることを当業者が諒解するように、この説明は、制限的であることを意図されたものではない。
【００２４】
図２を参照すると、ブロック図に、ピアツーピアネットワーキングアーキテクチャ２００が示されている。図からわかるように、アーキテクチャ２００を、Ｗｉｎ３２アプリケーションプログラミングインターフェース（ＡＰＩ）２０２、ＷｉｎＳｏｃｋ  ＡＰＩ２０４、および暗号サポートを提供するＡＰＩ２０６に結合することができる。アーキテクチャ２００には、グラフと称する接続されたノードの組を維持し、グラフにわたるフラッディング（ｆｌｏｏｄｉｎｇ）およびデータの複製を負うグラフィング（ｇｒａｐｈｉｎｇ）コンポーネント２０８が含まれる。グラフィングコンポーネント２０８によって、フラッドおよび同期化コンポーネント２１０、ストアコンポーネント２１２、およびグラフ維持コンポーネント２１４が使用される。
【００２５】
アーキテクチャ２００には、さらに、グループ化コンポーネント２１６が含まれる。グループ化コンポーネント２１６を、デフォルトでグラフの上に提供されるセキュリティレイヤとして実装（implement）することができる。セキュリティレイヤによって、グループ作成、案内（invitation）、およびグループへの接続の背後にあるセキュリティモデルが定義される。さらに、グループ化コンポーネント２１６を、名前解決プロトコルとしてＰＮＲＰを活用するように構成することができ、複数のアプリケーションが同一のグラフを共有できるようにすることができる。グループ化コンポーネント２１６によって、グループセキュリティ２１８およびグループセキュリティサービスプロバイダ（ＳＳＰ）サブコンポーネント２２０が使用される。
【００２６】
アーキテクチャ２００には、さらに、ネームサービスプロバイダ（ＮＳＰ）コンポーネント２２２が含まれる。ＮＳＰコンポーネント２２２によって、任意の名前サービスプロバイダにアクセスする機構が提供される。したがって、当業者が諒解するように、特定の名前サービスプロバイダへの言及は、例示的であるものとして理解される。Ｗｉｎｄｏｗｓ（登録商標）ピアツーピアネットワーキングの場合に、ピアツーピアアプリケーションによって、ＰＮＲＰにアクセスするのにＮＳＰインターフェースが使用される。
【００２７】
アーキテクチャ２００には、さらに、ピアツーピア名前解決をもたらすＰＮＲＰコンポーネント２２４、およびピアツーピア識別の作成および管理を可能にする識別マネージャ２２６が含まれる。
【００２８】
図２は、Ｍｉｃｒｏｓｏｆｔ  ＴＣＰ／ＩＰバージョン６プロトコル２２８を含むものとして図示されている。Ｍｉｃｒｏｓｏｆｔ  ＴＣＰ／ＩＰバージョン６プロトコル（ＩＰｖ６）は、例示的であり、Ｗｉｎｄｏｗｓ（登録商標）ピアツーピアネットワーキングがその上で動作するトランスポートを提供する。
【００２９】
ＰＮＲＰコンポーネント２２４によって、ピアツーピアの名前解決のためのプロトコルが使用され、これによって、ピア名を、ＩＰアドレス、プロトコル、およびポートに対応づけできるようになる。より詳細には、ピア間で通信するために、各ピアは、お互いの存在を発見でき、名前または他のタイプの識別子からお互いのネットワークロケーション（アドレス、プロトコル、およびポート）を対応づけできなければならない。ピアがお互いを発見し、お互いの名前を通信のために解決する方法は、一時的接続性およびＤＮＳにアドレスレコードがないことによって複雑になっている。
【００３０】
Ｐ−ＧｒｉｄおよびＰＮＲＰなどのピアツーピアネットワーク解決プロトコルによって、分散型で、名前解決に関してサーバレスである、名前解決およびピアディスカバリ（ｄｉｓｃｏｖｅｒｙ）方式が提供される。ＰＮＲＰによって、ＤＮＳと同様に、クラウド（cloud）全体のコンピュータに保管された名前の完全なリストが提供される。ＤＮＳと異なって、名前解決を提供するサーバはない。各ピアが、リストの一部をそのキャッシュに保管し、他のピアを参照することができる。中央サーバは、名前を解決するのに使用されない。しかし、ＰＮＲＰは、厳密にはサーバレスではなく、初期化を容易にするシードノード（seed node）コンピュータがある。
【００３１】
ＤＮＳにおいて完全正規ドメイン名のような名前を使用するのではなく、ＰＮＲＰは、識別子を使用して、ピアエンティティを識別する。識別子は、単なる番号であり、したがって、言語および商標または著作権の対象ではない。ＰＮＲＰは、それぞれ独立したピアコンピュータ、ユーザ、グループ、デバイス、サービス、または他のタイプのピアノードが、それ自体のピア識別子を有することを可能にする。識別子のリストは、各ノードで最小限のリソースを必要としながら、数億個の識別子まで名前解決を拡大縮小（scale）できるようにするマルチレベルキャッシュおよび参照システムを使用して、ピア間に分散される。
【００３２】
ＰＮＲＰは、名前解決およびピアディスカバリのためにピア間でメッセージを送るのに使用されるプロトコルである。ＰＮＲＰでは、複数のクラウドが使用され、クラウドは、特定のスコープ（scope）のアドレスを使用するコンピュータのグループ化である。スコープは、アドレスが一意であるネットワークの範囲である。ＰＮＲＰクラウドは、ＩＰｖ６アドレスのアドレススコープに基づく。クラウドに、グローバルＩＰｖ６アドレススコープに対応し、ＩＰｖ６インターネット全体のすべてのコンピュータを表すグローバルクラウドを含めることができる。グローバルクラウドは、１つだけ存在する。サイト固有クラウドは、サイトＩＰｖ６アドレススコープおよびサイトローカルアドレスに対応する。サイトは、組織ネットワークのうちで、定義された地理的境界またはトポロジ的境界を有する部分である。サイト固有クラウドは、複数存在することができる。リンクローカルクラウドは、リンクローカルＩＰｖ６アドレススコープおよびリンクローカルアドレスに対応する。リンクローカルクラウドは、特定のリンクに関するものであり、通常は、ローカルに接続されたサブネットと同一である。リンクローカルクラウドは、複数存在することができる。
【００３３】
ピア名およびピアツーピアＩＤ  
ピア名は、通信のエンドポイントであり、これは、コンピュータ、ユーザ、グループ、サービス、またはＩＰｖ６アドレスに対応づけされることが求められる他のあらゆるものとすることができる。ピア名は、セキュリティ無しまたはセキュリティ有りとして登録することができる。セキュリティ無しの名前は、誰でも重複したセキュリティ無しの名前を登録することができるけれども、なりすまし（spoofing）の対象になる単なる文字列である。セキュリティ無しの名前は、プライベートネットワークまたは他のセキュリティ有りのネットワークで最もよく使用される。セキュリティ有りの名前は、所有者だけが登録でき、証明書およびディジタル署名を用いて保護される。
【００３４】
ＰＮＲＰ識別子は、２５６ビットの長さとすることができ、ＰＮＲＰ識別子には、ピアツーピア識別子と称する、エンドポイントに割り当てられたピア名のハッシュである上位１２８ビットの組が含まれる。
【００３５】
エンドポイントのピア名は、Ａｕｔｈｏｒｉｔｙ．Ｃｌａｓｓｉｆｉｅｒというフォーマットを有する。セキュリティ有りの名前の場合に、Ａｕｔｈｏｒｉｔｙは、１６進文字の、ピア名の公開鍵のＳｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ（ＳＨＡ）ハッシュである。セキュリティ無しの名前の場合に、Ａｕｔｈｏｒｉｔｙは、単一の文字「０」である。Ａｕｔｈｏｒｉｔｙは、通常は、ｂａｓｅ６４エンコードされた２進データである。したがって、Ａｕｔｈｏｒｉｔｙによって、ピア名をセキュアにする手段が提供される。ピア名の公開者は、その権限に基づいた公開鍵に対応する秘密鍵の所有権の証拠を提供するように要求することができる（challenge）。詳細には、ＰＮＲＰで公開されるデータは、通常は、権限の秘密鍵を使用して署名される（（アドレス、プロトコル名、ポート番号）タプルの特定の場合に、公開されるデータを、サーティファイドピアアドレス（ｃｅｒｔｉｆｉｅｄ  ｐｅｅｒ  ａｄｄｒｅｓｓ、ＣＰＡ）と称する）。
【００３６】
Ｃｌａｓｓｉｆｉｅｒは、アプリケーションを識別するストリングであり、長さ１５０文字までのユニコード文字列とすることができる。
【００３７】
下位１２８ビットは、サービスロケーションのために使用され、これは、同一のクラウド内の同一のピアツーピア識別子の異なるインスタンスを一意に識別する、生成される数である。
【００３８】
ピアツーピア識別子とサービスロケーションとの２５６ビットの組合せによって、複数のＰＮＲＰ識別子を単一のコンピュータから登録できるようになる。
【００３９】
クラウドごとに、各ピアノードが、それ自体の登録されたＰＮＲＰ識別子および経時的にキャッシングされたエントリの両方を含むＰＮＲＰ識別子のキャッシュを管理する。あるクラウドのすべてのピアノードに配置されたＰＮＲＰ識別子の組全体に、分散ハッシュテーブルが含まれる。さらに、所与のＰＮＲＰ識別子のエントリを、複数のピアに配置することができる。ＰＮＲＰキャッシュ内の各エントリに、登録するノードの、ＰＮＲＰ識別子、ＣＰＡ、およびＩＰｖ６アドレスが含まれる。ＣＰＡは、ＰＮＲＰ識別子に関する認証保護を提供する自己署名型の証明書であり、ＣＰＡには、アプリケーションエンドポイント情報（アドレス、プロトコル番号、およびポート番号）が含まれる。
【００４０】
したがって、名前解決処理は、ＰＮＲＰ識別子をＣＰＡに対応づけすることからなる。ＣＰＡを得た後に、望みのエンドポイントとの通信を開始することができる。したがって、ＰＮＲＰによって、ノードが「＜ピア名＞→＜データ＞」関連を公開する方法が提供され、その結果、他のノードが、ピア名を検索でき、データを判定できるようになる。
【００４１】
名前解決  
ピア名をそのアドレス、プロトコル、およびポート番号に対応づけしたい場合、ピアによって、ピア名に基づいてピアツーピア識別子が構成される。当技術分野には、複数のピアツーピア解決プロトコルがあり、本明細書の説明では、例示的プロトコルとしてＰＮＲＰに言及する。しかし、この開示の利益を享受する当業者は、他の解決プロトコルが、本明細書の実施形態から利益を得ることができることを諒解するであろう。
【００４２】
ピアによって、ピアツーピア識別子に一致するエントリについて、それ自体のキャッシュ内のエントリが調べられる。見つかった場合には、ピアは、そのピアにＰＮＲＰ要求メッセージを送信し、応答を待つ。この挙動は、通信するピアノードが、クラウド内でアクティブであることが確実にする。見つからなかった場合には、ピアによって、対応づけされるピアツーピア識別子に最もよく一致するピアツーピア識別子を有するエントリに対応するピアに、ＰＮＲＰ要求メッセージが送信される。このＰＮＲＰ要求メッセージを受信したノードは、それ自体のキャッシュを調べる。見つかった場合に、そのノードは、要求を意図されたノードに転送し、意図されたノードは、要求パスに沿って応答を送り返す。見つからなかった場合には、そのノードは、対応づけされるピアツーピア識別子に最もよく一致するピアツーピア識別子を有するエントリに対応するピアにＰＮＲＰ要求メッセージを送信し、正しいピアが見つかるまでこれが繰り返される。より詳細には、ピアは、識別子の範囲の上下１０個を含むある範囲のピアツーピア識別子を知っている。上記の説明および以下の例は、説明をわかりやすくするために単純化されている。ピアのグラフを通ってナビゲートするのに必要なホップの実際の数は、ｌｏｇ（ピアツーピア識別子の数空間）である。
【００４３】
図３を参照すると、ピアノードの組による、名前解決の例が提供される。ピアＡ（３１０）は、それ自体のＰＮＲＰ識別子２００とＰＮＲＰ識別子４５０および５００のエントリを有する。あるノードから別のノードへの矢印は、矢印の始点にあるノードが、矢印の終点にあるノードのエントリをそのキャッシュに有することを意味する。
【００４４】
この例では、ピアＡ（３１０）が、ＰＮＲＰ  ＩＤ  ８００の対応づけを求めると仮定する。ピアＡ３１０は、ＰＮＲＰ  ＩＤ  ８００に最も近いＰＮＲＰ  ＩＤを有するノードにＰＮＲＰ要求メッセージを送るが、このＩＤは、ピアＣ（３２０）によって保持される。というのは、５００が、ピアＡ（３１０）によって保持される他のエントリよりも数値として８００に近いからである。図からわかるように、ピアＣ３２０は、ＰＮＲＰ  ＩＤ  ８００のエントリを有しておらず、かつＰＮＲＰ  ＩＤ  ８００に近いエントリを有しない。ピアＣ３２０は、それを示す応答をピアＡに送り返す。
【００４５】
ＰＮＲＰ  ＩＤ  ４５０が、ＰＮＲＰ  ＩＤ  ８００に次に近いＰＮＲＰ  ＩＤなので、ピアＡ（３１０）は、ＰＮＲＰ  ＩＤ  ４５０のＰＮＲＰ  ＩＤを登録しているのでピアＢ（３３０）にＰＮＲＰ要求メッセージを送信する。ピアＢ（３３０）は、この要求をＰＮＲＰ  ＩＤ  ８００を登録したＩＰアドレスに転送する。これは、ピアＥ（３４０）である。ピアＢは、そのキャッシュにピアＥのエントリを有するが、このキャッシュエントリの存在は、ピアＥが現在ネットワーク上で求めに応じられることを確実にしない。したがって、ピアＥ（３４０）は、ピアＢ（３３０）に応答を送り返す。ピアＢ（３３０）は、応答をピアＡ（３１０）に送り返す。ＰＮＲＰ  ＩＤ  ３５０を有するピアＤ（３５０）は、名前解決手順によるメッセージを受け取らない。ＰＮＲＰ要求メッセージの転送中のループを防ぐために、各メッセージに、要求を既に転送したピアのリストが含まれる。ＰＮＲＰ要求メッセージが転送されている間に、その内容が使用され、それを転送するノードのキャッシュに取り込まれる。また、応答が、リターンパスを介して送り返される時に、その内容が使用され、ノードキャッシュに取り込まれる。
【００４６】
ＰＮＲＰに関する問題は、ピアと通信するために、権限がそのピアに対して知られていなければならないことである。権限は大きい数字であって、それに対しては、ピアが通信を望む他のピアに権限を通信させる必要をなくす解決プロトコルがない。応答は、ＲＳＡ鍵に結び付けられ、セキュアであることを証明できるので、セキュアである。また、ＰＮＲＰは、ａｕｔｈｏｒｉｔｙ．ｎａｍｅによってＩＰアドレスを供給でき、ポートの突き止めを制限するようにすることができる。
【００４７】
上記の例では、ＰＮＲＰによって、ピアノードのピア名がどのようにマッピングされるかを示した。本明細書の実施形態によって、任意のデータへのピア名のマッピングをサポートするためにＰＮＲＰを一般化するシステムおよび方法がもたらされる。本明細書の実施形態では、ＰＮＲＰマッピングの能力を活用して、ドメインネームサービス（ＤＮＳ）に対する安全な代替案を提供する。ＤＮＳでは、トップレベルドメイン（ＴＬＤ）が、ＩＣＡＮＮ（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｃｏｒｐｏｒａｔｉｏｎ  ｆｏｒ  Ａｓｓｉｇｎｅｄ  Ｎａｍｅｓ  ａｎｄ  Ｎｕｍｂｅｒｓ）によって管理される。インターネットのＤＮＳを用いると、ユーザが、インターネットの各コンピュータに割り当てられるすべて数字のＩＰアドレス（「１９２．０．３４．６５」など）ではなく、覚えやすいドメイン名（「ｗｗｗ．ｉｃａｎｎ．ｏｒｇ」など）を使用してウェブサイトおよび他のリソースを参照できるようになる。各ドメイン名は、ドットによって区切られた一連の文字列（「ラベル」と称する）からなる。ドメイン名の右端のラベルを、「トップレベルドメイン」（ＴＬＤ）と称する。
【００４８】
ＤＮＳによって、ツリー状の階層が形成される。各ＴＬＤに、多数の第２レベルドメイン（「ｗｗｗ．ｉｃａｎｎ．ｏｒｇ」にみられる「ＩＣＡＮＮ」など）が含まれ、各第２レベルドメインに、複数の第３レベルドメイン（「ｗｗｗ．ｉｃａｎｎ．ｏｒｇ」の「ｗｗｗ」など）を含めることができ、以下同様である。
【００４９】
各ＴＬＤのオペレーション責任（ＴＬＤ内の第２レベルドメインのレジストリの維持を含む）は、特定の組織に委譲される。これらの組織を、「レジストリオペレータ」、「スポンサ」、または単に「被委任者（delegee）」と称する。
【００５０】
ＤＮＳによって、．ｃｏｍ、．ｉｎｆｏ、．ｎｅｔ、．ｇｏｖ、および類似物に関するサービスを含むルートネームサービスが提供される。たとえば、「ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ」に関する要求では、まず「ｃｏｍ」が突き止められ、要求が、「ｃｏｍ」を担当する複数のサーバの１つに転送される。これらのサーバは、次に、「ｍｉｃｒｏｓｏｆｔ」に関連するアドレスを検索する。次に、ｍｉｃｒｏｓｏｆｔ．ｃｏｍを担当するサーバが、「ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ」の「ｗｗｗ」部分のアドレスを提供する。ＤＮＳに関する問題は、「ｍｉｃｒｏｓｏｆｔ．ｃｏｍ」空間内で独自の名前を作成することできないことである。さらに、名前を変更するためには、システム管理者が、複数の計算機を介する伝搬を介してアドレスサーバおよび情報サーバを動作させなければならず、これによって時機を失する。
【００５１】
Ｓｉｍｐｌｅ  Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ（ＳＰＫＩ）は、自分の鍵について権威をもって語ることができるデバイスだけがその鍵の作成者であるということを規定するシステムである。これによって、デバイスを信頼するかどうかの判断が、他のデバイスに委ねられる。たとえば、デバイスは、（ｍｙｎａｍｅ，ｍｙｐｕｂｌｉｃｋｅｙ）ｐｒｉｖａｔｅｋｅｙなどの鍵対を供給することができ、この添字は、名前と鍵が署名されることを識別する。また、デバイスは、他者に既知の鍵を使用して証明書に署名することができる（ｍｙｎａｍｅ，ｙｏｕｒｎａｍｅ，ｙｏｕｒｐｕｂｌｉｃｋｅｙ，ｍｙｐｕｂｌｉｃｋｅｙ）ｍｙｐｒｉｖａｔｅｋｅｙ。他のデバイスも、それ自体の鍵について証明書を発行することができる（ｙｏｕｒｎａｍｅ，ｙｏｕｒｐｕｂｌｉｃｋｅｙ）ｙｏｕｒｐｒｉｖａｔｅｋｅｙ。したがって、デバイスが、他者の公開鍵を検索することを望み、鍵を公開するデバイスを信頼する場合に、そのデバイスは、鍵の所有者から直接に鍵を検索する必要がない。
【００５２】
ＳＰＫＩでは、ユーザが、鍵を見つけることを求める場合に、鍵を伴う別の証明書を照会して身元を証明し、また、照会可能な鍵の所有者にコンタクトする方法を提供することができる。ＳＰＫＩでは、一般に、公開鍵および名前の提供によって、鍵を提供できることが提供され、ＳＰＫＩは、所望の鍵を突き止める階層構造を可能にする。
【００５３】
本開示において、表記［］は、権限を表すのに使用される。｛｝［ａｕｔｈ］は、権限秘密鍵を用いた署名を表すのに使用される。本明細書の実施形態は、ＩＰアドレスを指定せずに、名前および権限によって第２の権限、つまり（［ａｕｔｈ］，ｎａｍｅ）→（ａｕｔｈ２）、を作ることができることを提供することによって、複数の名前空間ルートをサポートするネームサービスを対象とする。ＩＰアドレスが必要な場合には、結果としてＩＰアドレスが供給されるまで、ルックアップの結果を別のルックアップに使用することができる。
【００５４】
図４を参照すると、フロー図によって、一実施形態による方法が示されている。ブロック４１０では、計算機または名前空間の鍵の生成を提供する。鍵は、ＳＰＫＩ型の鍵とすることができ、そのいくつかをＸ．５０９証明書としてフォーマットすることができる自己署名式証明書を使用して認証が提供される。ブロック４２０では、権限［Ａ］を作成するための生成された公開鍵のハッシュ化が提供される。公開鍵の検証可能な衝突困難性（collision resistant）縮小変換を使用することができ、あるいは、サイズが無関係なシステムに実際の公開鍵を使用することができる。
【００５５】
ブロック４３０では、名前空間の名前がオーソリティに対応づけされるように、ピアツーピアタイプ解決を発行するために１つまたは複数の名前空間に関連付けられた権限の要求を介して、１つまたは複数の名前空間によって権限を参照できるようにすることを提供する。したがって、権限への通信および参照が望まれる、名前Ｎ１、Ｎ２…ＮＮを有する他の名前空間Ｓ１、Ｓ２、…ＳＮがある場合に、名前Ｎ１、Ｎ２をＡ（権限）に対応づけできるようにするために、（［Ｓ１］．Ｎ１）→Ａ、（［Ｓ２］．Ｎ２）→Ａ…（［ＳＮ］．ＮＮ）→ＡといったＰＮＲＰのように、ピアツーピア名前解決プロトコルを使用してこれらの名前空間が発行する権限を要求する。ブロック４４０では、通信が望まれる他の権限について、権限を指定する解決および他の権限に関連する名前を発行し、他の権限を供給することを提供する。したがって、通信が望まれる、名前空間Ｎ１、Ｎ２…ＮＮを有する他の権限Ａ１、Ａ２…ＡＮについて、（［Ａ］．Ｎ１）→Ａ１、（［Ａ］．Ｎ２）→Ａ２…（［Ａ］．ＮＮ）→ＡＮへの解決を発行する。ブロック４５０では、供給されるサービスについて、権限およびサービス名を公開し、ＩＰアドレス、プロトコル名、およびポートの１つまたは複数の最終結果を返すことを提供する。上述したように、供給されるサービスについて、（［Ａ］．ｓｅｒｖｉｃｅｎａｍｅ）→（ＩＰａｄｄｒｅｓｓ，ｐｒｏｔｏｃｏｌ  ｎａｍｅ，ｐｏｒｔ）を公開する。
【００５６】
サービスは対応づけされ、望みの任意のデータを供給することができる。たとえば、コンピュータによって、本明細書に記載の実施形態を使用して、項目の異なる組について在庫を追跡することができる。一実施形態によれば、項目を、階層名前空間を介して突き止めることができる。一例では、階層を、トップレベル会社によって編成することができる。次レベルを、その会社の倉庫（warehouse）とすることができる。各倉庫によって、部品（part）名を識別するレベルをサポートすることができる。部品名レベルによって、在庫レベル、価格レベル、および類似物をサポートすることができる。在庫レベルおよび価格レベルのそれぞれを解決して、手持ちの在庫を識別することができる。ポート名、プロトコル、およびＩＰアドレスを提供する代わりに、この実施形態によれば、照会は、最終結果に対応づけされ、たとえば使用可能性に関するデータが供給される。一実施形態では、最終結果を、会社が最低価格を提供する照会とすることができ、この最終結果が、使用可能な製品を有するものとすることができる。この場合、最終結果を、起点の会社とすることができる。
【００５７】
一実施形態で、ＩＰアドレス、ポート、およびプロトコル名を突き止めるのに使用される権限を、ピアツーピアネットワーク内のキャッシュから検索することができる。しかし、ＩＰアドレス、ポート、およびプロトコル名がキャッシュから検索される場合には、チャレンジを作るために所有者に達するためにさらなる解決が必要になる。
【００５８】
一実施形態による方法に従って、ａｕｔｈｏｒｉｔｙ＝ｈａｓｈ（サービスの公開鍵）など、サービスが権限を提供するための鍵をサービスによって生成することができる。次に、サービスは、ＩＣＡＮＮ．ｃｏｍの権限またはＴＬＤの別の管理者が（［ｃｏｍ］，Ｓｅｒｖｉｃｅ）→ｈａｓｈ（サービスの公開鍵）を公開することを要求することができる。次に、この方法によれば、サービスは、サブグループなどの権限に名前空間を委譲する（［Ｓｅｒｖｉｃｅ］，ｓｕｂｇｒｏｕｐ）→ｈａｓｈ（サブグループの公開鍵）。次に、この方法では、ウェブサービスを公開する（［Ｓｅｒｖｉｃｅ］．ｗｗｗ）→（ＩＰａｄｄｒｅｓｓ，ＴＣＰ，８０）。
【００５９】
上述のように、ＩＣＡＮＮを使用してこの方法を実施し、この方法を使用してドメインネームサービスを提供するために、ＩＣＡＮＮは、公開鍵／秘密鍵対を有して、公開鍵を使用して権限［ＩＣＡＮＮ］を導出できる。次に、ＩＣＡＮＮは、ＴＬＤのそれぞれの管理者が鍵対および関連付けられた権限（［ｃｏｍ］，［ｅｄｕ］，［ｏｒｇ］など）を生成することを提供することができる。次に、ＩＣＡＮＮは、各ＴＬＤのバインディングを公開する。
【００６０】
｛［ＩＣＡＮＮ］．ｃｏｍ→［ｃｏｍ］｝［ＩＣＡＮＮ］
｛［ＩＣＡＮＮ］．ｅｄｕ→［ｅｄｕ］｝［ＩＣＡＮＮ］
｛［ＩＣＡＮＮ］．ｏｒｇ→［ｏｒｇ］｝［ＩＣＡＮＮ］
もう１つの例では、Ｍｉｃｒｏｓｏｆｔ（登録商標）が、鍵対を作成し、ｃｏｍドメインの管理者に権限［Ｍｉｃｒｏｓｏｆｔ］を提供する。その管理者は、
｛［ｃｏｍ］．ｍｉｃｒｏｓｏｆｔ→｛Ｍｉｃｒｏｓｏｆｔ］｝［ｃｏｍ］
を公開する。Ｍｉｃｒｏｓｏｆｔ（登録商標）管理者は、ホストの代わりに外部から可視のＭｉｃｒｏｓｏｆｔ（登録商標）サービスのＣＰＡを公開することができる｛［Ｍｉｃｒｏｓｏｆｔ］．ｗｗｗ→（ａｄｄｒｅｓｓ，ＴＣＰ，８０）｝［Ｍｉｃｒｏｓｏｆｔ］。上記のように、この方法によって、アドレスだけではなく、ポートおよびプロトコル情報が提供される。サービスへの対応づけを可能にすることによって、この方法は、ＤＮＳなどホストだけを対応づけするルックアップ方法より有用である。［ＩＣＡＮＮ］は、単に１つの可能なルート権限であり、他のルート権限を簡単に作成できることに留意されたい。異なるアドレス領域で動作するローカル名前空間をセットアップすることができる。
【００６１】
提供される方法は、ＤＮＳ型ルックアップに対する利点を有する。たとえば、この方法では、ＤＮＳに対する追加されたセキュリティを提供する、署名付きの名前が使用される。
【００６２】
この方法は、ＰＮＲＰなどの通常のピアツーピア名前解決プロトコルに対する利点も有する。先に説明したように、ＰＮＲＰは、グローバルＰＮＲＰクラウドを介して実施することができる。すべてのパブリッシャがグローバルＰＮＲＰクラウドに参加する場合に、プライマリ／セカンダリネームサーバレコードを有する必要がない。これらが変更される時に参加者管理の負担があり、上位レベルドメイン管理者が、構成を更新しなければならず、ＤＮＳキャッシュに対する変更を伝搬させなければならない。本明細書に記載の方法に従って実行されるルックアップは、管理者義務の緩和をもたらす。「上流」管理者がレコードを変更する必要がある唯一の時は、誰かが新しい鍵対を作成し、古い権限を止める時であり、これは、深刻なセキュリティ違反（breach）の場合にのみ発生するだろう。
【００６３】
さらに、以前のルックアップ方法と異なって、動的アドレスを、単に新しい権限を作成することによって、さらに権限を委譲することによって、自明にサポートすることができる。たとえば、Ｍｉｃｒｏｓｏｆｔ（登録商標）ウェブサーバが動的ホスト構成プロトコル（ＤＨＣＰ）によって割り当てられたアドレスを使用する場合に、サーバも、鍵対を有することができる。この鍵対によって、サーバが、権限［ｗｗｗ］を生成できるようになり、Ｍｉｃｒｏｓｏｆｔ（登録商標）管理者は、実際のＩＰアドレスを更新する必要なしに、｛［Ｍｉｃｒｏｓｏｆｔ］．ｗｗｗ→［ｗｗｗ］｝［Ｍｉｃｒｏｓｏｆｔ］を公開することができる。
【００６４】
ウェブサーバに新しいアドレスが割り当てられる場合に、必ず、そのウェブサーバは
｛［ｗｗｗ］．→（ａｄｄｒｅｓｓ，ＴＣＰ，８０）｝［ｗｗｗ］
を公開する。
【００６５】
したがって、この方法は、中央サーバを更新する必要なしに各ホストが詳細を自由に更新できる、ダイナミックＤＮＳタイプのルックアップを提供する。この方法の一実施形態では、ダイナミックルックアップによって、最後の権限と最初の権限が同一である、権限の循環チェーンをもたらすことができる。たとえば、他のサービスの第１ベンダが、照会に応答して権限を提供することができ、ここで、権限は、事前に決定される品質でベンダに関するルックアップを提供するように動作するサービスに関連する。第１ベンダが、１つまたは複数の事前に決定される品質を有する場合に、権限は応答し、照会に対する応答中に第１のベンダの権限を含まれる。
【００６６】
本発明の原理を適用できる多数の可能な実施形態に鑑みて、図面に関する本明細書に記載の実施形態が、例示的であることを意図され、本発明の範囲を制限するものと解釈されてはならないことを理解されたい。たとえば、当業者は、ソフトウェアで示した例示的形態の要素はハードウェアで実装可能であり、またその逆でもよく、示された実施形態の要素を、本発明の趣旨から逸脱せずに配置および詳細において変更できることを理解するであろう。したがって、本明細書に記載の発明では、そのようなすべての実施形態が、請求項およびその同等物の範囲に含まれるものとして企図されている。
【図面の簡単な説明】
【００６７】
【図１】本発明が常駐する例示的なコンピュータシステムを全体的に示すブロック図である。
【図２】本発明の実施形態によるシステムのブロック図である。
【図３】ピアツーピアタイプの解決を示すブロック図である。
【図４】本発明の実施形態による方法を示すフロー図である。
【符号の説明】
【００６８】
１００  コンピューティングシステム環境
１１０  コンピュータ
１２０  処理ユニット
１２１  システムバス
１３０  システムメモリ
１３１  ＲＯＭ
１３２  ＲＡＭ
１３３  ＢＩＯＳ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  取外し不能不揮発性メモリインターフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  取外し可能不揮発性メモリインターフェース
１５１  磁気ディスクドライブ
１５２  取外し可能不揮発性磁気ディスク
１５５  光ディスクドライブ
１５６  取外し可能不揮発性光ディスク
１６０  ユーザ入力インターフェース
１６１  マウス
１６２  キーボード
１６３  マイクロホン
１６４  タブレット
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  広域ネットワーク
１８０  リモートコンピュータ
１８１  メモリストレージデバイス
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺インターフェース
１９６  プリンタ
１９７  スピーカ
２００  ピアツーピアネットワーキングアーキテクチャ
２０２  Ｗｉｎ  ＡＰＩ
２０４  ＷｉｎＳｏｃｋ  ＡＰＩ
２０６  暗号ＡＰＩ
２０８  グラフィング
２１０  フラッドおよび同期化
２１２  ストア
２１４  グラフ維持
２１６  グループ化
２１８  グループセキュリティ
２２０  グループＳＳＰ
２２２  ＮＳＰ
２２４  ＰＮＲＰ
２２６  識別マネージャ
２２８  Ｍｉｃｒｏｓｏｆｔ  ＴＣＰ／ＩＰバージョン６プロトコル
３１０，３２０，３３０，３４０，３４０，３５０  ピア
【図１】
0004698180.tif 000002
【図２】
0004698180.tif 000003
【図３】
0004698180.tif 000004
【図４】
0004698180.tif 000005