【文献】
山形 遥平、福田 洋治、白石 善明、毛利 公美、大濱 靖匡,“インスタントグループ通信とその認証方式の提案”,マルチメディア,分散,協調とモバイル(DICOMO2007)シンポジウム論文集 [CD−ROM],日本,社団法人情報処理学会,2007年 7月 4日,Vol.2007、No.1 ,p.677−683
【文献】
I. Djordjevic, T. Dimitrakos, N. Romano, D. Mac Randal, P. Ritrovato,“Dynamic security perimeters for inter-enterprise service integration”,THE INTERNATIONAL JOURNAL OF FUTURE GENERATION COMPUTER SYSTEMS GRID COMPUTING,2007年 5月,volume 23, issue 4,pp.633-657
(58)【調査した分野】(Int.Cl.,DB名)
前記ピア固有のグループ証明書が、前記グループメンバーピアノードに関連付けられた前記公開鍵を使用する、前記署名された認証データの確認により、および前記グループ管理者ピアノードに関連付けられた公開鍵を使用する、前記ピア固有のグループ証明書の確認により、前記検証ピアノードによって認証されるように適合される、請求項11に記載のピアノード。
前記ピア固有のグループ証明書内の前記グループ識別情報が、前記ピアツーピアオーバーレイネットワークに記憶された前記グループトークンを、前記グループ識別情報によって識別されたデータオブジェクトとして特定するように適合される、請求項11に記載のピアノード。
前記ピア固有のグループ証明書が、前記グループメンバーピアノードに関連付けられた前記公開鍵を使用する、前記署名された認証データの確認により、および前記グループ管理者ピアノードに関連付けられた公開鍵を使用する、前記ピア固有の証明書の確認により、前記検証ピアノードによって認証されるように適合される、請求項14に記載の方法。
前記処理回路に結合された記憶媒体をさらに備え、前記記憶媒体が、前記グループメンバーピアノードが前記グループのメンバーとしてアクセスすることを要求しているデータオブジェクトを含む、請求項19に記載の検証ピアノード。
グループのメンバーとしての認証を求めるグループメンバーピアノードからピア固有のグループ証明書を受信するための手段であって、前記ピア固有のグループ証明書が、グループ識別情報、前記グループメンバーピアノードの識別情報、グループ管理者ピアノードの識別情報、および、前記ピア固有のグループ証明書の1つまたは複数の構成要素にわたる前記グループ管理者ピアノードの秘密鍵による署名を含むとともに、信用局の秘密鍵による署名を含まない、受信するための手段と、
前記グループ管理者ピアノードのノード証明書から、前記グループ管理者ピアノードに関連付けられた公開鍵を取得するための手段であって、前記ノード証明書が、前記グループ管理者ピアノードに関連付けられた前記公開鍵、前記信用局の識別情報、および前記信用局の秘密鍵による署名を含む、取得するための手段と、
前記グループ管理者ピアノードの前記秘密鍵による署名を含むグループトークンをピアツーピアオーバーレイネットワークから取得するための手段であって、前記グループトークンが、前記グループ識別情報によって識別されたデータオブジェクトとして、前記ピアツーピアオーバーレイネットワークに記憶される、取得するための手段と、
前記グループ管理者ピアノードに関連付けられた前記公開鍵を使用して前記グループトークンの前記署名を確認して、前記グループ管理者ピアノードが前記ピア固有のグループ証明書を発行するように認可されたことを検証するための手段と、
前記グループ管理者ピアノードに関連付けられた前記公開鍵を使用して前記ピア固有のグループ証明書を確認するための手段と
を備える、
検証ピアノード。
【発明を実施するための形態】
【0015】
以下の説明では、記載された実装形態を完全に理解できるように具体的な詳細が与えられる。しかしながら、様々な実装形態が、これらの具体的な詳細なしに実践できることを当業者は理解されよう。たとえば、不要な詳細で実装形態を不明瞭にしないように回路をブロック図で示す場合がある。他の例では、記載された実装形態を不明瞭にしないように、よく知られている回路、構造および技法を詳細に示す場合がある。
【0016】
「例示的」という言葉は、「代表例、具体例、または例証として働くこと」を意味するために本明細書で使用される。本明細書で「例示的」と記載されたいかなる実装形態または実施形態も、必ずしも他の実施形態または実装形態よりも好ましいかまたは有利であると解釈されるべきではない。同様に、「実施形態」という用語は、すべての実施形態が、説明された特徴、利点または動作モードを含むことを必要としない。本明細書で使用される「ピアツーピアオーバーレイネットワーク」および「ピアノード」という用語は、広く解釈されるものとする。たとえば、「ピアツーピアオーバーレイネットワーク」は、サーバまたは固定型ホストによって中央調整されず、ピア間でタスクまたはワークロードを分割する分散型アプリケーションアーキテクチャを含む、オーバーレイネットワークを指す場合がある。さらに、「ピアノード」は、ピアツーピアオーバーレイネットワーク上の通信を容易にするデバイスを指す場合がある。「ピアノード」の例には、プリンタ、タブレットコンピュータ、テレビジョン、モバイル電話、携帯情報端末、パーソナルメディアプレーヤ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータなどが含まれ得る。
【0017】
概要
1つの特徴はピアツーピアオーバーレイネットワーク内のグループアクセス制御を容易にする。グループはピアツーピアオーバーレイネットワーク内のユーザによって形成することができる。グループは、ピアツーピアオーバーレイネットワーク内で識別され、ピアツーピアオーバーレイネットワーク内の他のグループおよび/またはデータオブジェクトから独自であり得るグループ名を与えられる。グループを作成したピアノードまたはユーザであり得るグループ管理者は、グループのメンバーシップを管理することができる。グループ管理者は、ピア固有の証明書を各グループメンバーに割り当てることができる。いくつかの実装形態では、グループ管理者は、ピア固有の証明書自体を発行することによって、ピア固有の証明書を割り当てることができる。他の実装形態では、グループ管理者は、各グループメンバー用のピア固有の証明書を発行するように、信用局に要求することができる。
【0018】
一特徴によれば、ピア固有の証明書を有する各グループメンバーは、その証明書を使用してそれ自体をグループの正当なメンバーとして認証することができる。そのような認証手順は、オーバーレイネットワーク内のピアノードの間で分散することができる。たとえば、検証ピアノードはグループメンバーからピア固有の証明書を受信することができ、グループメンバーを検証して、グループメンバーが証明書の正当な所有者であることを認証することができる。検証ピアノードは、証明書が発行されたノードの公開鍵を使用してグループメンバーを検証することができ、その公開鍵は証明書内に含まれるか、または証明書内に含まれた公開鍵に関連付けられたピアノードの識別情報から特定することができる。加えて、検証ピアノードは、証明書を発行した装置の公開鍵を使用して証明書自体を検証して、ピア固有のグループ証明書が正しく発行されたことを認証することもできる。
【0019】
例示的なネットワーク環境
図1は、データオブジェクトをオーバーレイネットワークのノードの間で記憶することができる、サーバまたは固定型ホストによって中央調整されないオーバーレイネットワークを含む、ネットワーク100を示すブロック図である。オーバーレイネットワークは、ピアツーピアオーバーレイネットワーク102を含むことができる。そのようなピアツーピアオーバーレイネットワーク102は、インターネットプロトコルネットワークなどの任意のタイプの下位ネットワークを利用して、オーバーレイネットワーク102上の複数のピアノード104A〜104Fが互いに通信することを可能することができる。下位ネットワークは、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、ワイヤレスネットワーク(たとえば、WWAN、WLAN)、および/または任意の他のタイプのネットワークなどの、任意の数のタイプのネットワークを含むことができる。
【0020】
ピアノード104A〜104Fは、ピアツーピアオーバーレイネットワーク102を介して通信するように適合された任意のデバイスを含むことができる。そのようなデバイスは、ピアツーピアオーバーレイネットワーク102を介した通信を容易にするように適合されたミドルウェアレイヤを含むことができる。限定ではなく例として、ピアノード104A〜104Fには、プリンタ、タブレットコンピュータ、テレビジョン、モバイル電話、携帯情報端末、パーソナルメディアプレーヤ、ラップトップコンピュータおよびノートブックコンピュータ、ならびに/またはデスクトップコンピュータなどのデバイス、ならびに他のデバイスが含まれ得る。
【0021】
本明細書に記載された1つまたは複数の実装形態によれば、各ピアノード104A〜104Fは、秘密鍵と公開鍵のペアが提供される。秘密鍵はそれぞれのピアノード104A〜104Fによって秘密に保たれ、それ自体にのみ知られる。公開鍵は他のピアノードに分配することができる。各ピアノード104A〜104Fはさらに、信用局(たとえば、登録サーバ)からノード証明書を取得する。各ノード証明書は、それぞれのピアノードの識別情報および/またはユーザ識別情報、ピアノードの公開鍵、ノード証明書を発行する信用局の識別情報、ならびに信用局による署名を含むことができる。信用局の公開鍵は、信用局によって署名された証明書の確認のためにピアノード104A〜104Fの各々に分配することができる。
【0022】
図2は、信用局202からピアノード104(たとえば、
図1のピアノード104A〜104Fのいずれか)にノード証明書を提供するためのプロセスの少なくとも1つの例を示す流れ図である。204で示されたように、ピアツーピアオーバーレイネットワーク(たとえば、
図1のピアツーピアオーバーレイネットワーク102)に加入するピアノード104またはそのユーザは、公開鍵(PbK-Peer)および秘密鍵(PvK-Peer)を含む独自の鍵ペアが提供され得る。他の実装形態では、そのような鍵ペアは信用局202によって発行することができる。206で示されたように、登録サーバなどの信用局202は識別情報(TA-ID)を有し、独自の秘密鍵と公開鍵のペア(PvK-TA、PbK-TA)も有する。
【0023】
ピアノード104は、ノード証明書を要求する伝送208を信用局202に送信することができる。ピアノード104があらかじめ公開鍵(PbK-Peer)を提供された場合、伝送はピアノードの公開鍵(PbK-Peer)を含むことができる。要求を受信すると、信用局202はピア識別情報(Peer ID)210を生成する。本明細書で使用するピア識別情報は、ピアデバイスの識別情報および/またはピアデバイスのユーザの識別情報を含むことができる。信用局202は、次いでピアノード104用のノード証明書(Node Cert)212を生成でき、ノード証明書をピアノード104に送信する214。ノード証明書は、ピアノード104用のピア識別情報(Peer ID)、ピアノードの公開鍵(PbK-Peer)、信用局の識別情報(TA-ID)、および信用局の秘密鍵による署名(Sig
PvK-TA)を含む。様々な実装形態によれば、信用局の秘密鍵による署名(Sig
PvK-TA)は、(図のような)ノード証明書全体の署名、または、ノード証明書に含まれた1つまたは複数の個別のデータピース(または構成要素)の署名を含むことができる。信用局202用の公開鍵(PbK-TA)は、ノード証明書の確認のためにピアツーピアオーバーレイネットワーク上の各ピアノードに分配することができる。
【0024】
したがって、ノード証明書はピアノード104を認証する際に採用することができる。たとえば、検証ピアノードはピアノード104からノード証明書を受信することができる。証明書に含まれたピアノード104の公開鍵(PbK-Peer)を使用して、検証ピアノードはチャレンジ応答を実行して、ピアノード104がノード証明書の正しい所有者であることを確認することができる。加えて、検証ピアノードは信用局の識別情報(TA-ID)を使用して、信用局202の公開鍵を検索することができる。信用局202の公開鍵を使用して、検証ピアノードは、ノード証明書が信用局202によって発行されたことを示す、ノード証明書の署名(Sig
PvK-TA)を検証することもできる。
【0025】
再び
図1を参照すると、ピアノード104A〜104Fの各々は、サーバまたは固定型ホストによる中央調整の必要なしに、ピアツーピアオーバーレイネットワーク102を介して他のピアノード104A〜104Fと通信することができる。たとえば、ピアノード104A〜104Fの各々は、それらの資源(たとえば、処理能力、ディスク記憶容量、ネットワーク帯域幅)の一部分を別のピアノードに利用可能にすることができ、中央調整用のサーバまたは固定型ホストなしに別のピアノードの資源の一部分を利用することができる。少なくともいくつかの実装形態では、ピアノード104A〜104Fのうちの少なくともいくつかは、ピアツーピアオーバーレイネットワーク102にデータオブジェクトを記憶することができる。データオブジェクトがピアツーピアオーバーレイネットワーク102に記憶される際に、データオブジェクトへのアクセスが望まれるとき、ピアツーピアオーバーレイネットワーク内のデータオブジェクトを特定するために、データオブジェクトに関連付けられた識別子が採用される。次いで、他のピアノード104A〜104Fのうちの1つにデータオブジェクトを記憶することによって、データオブジェクトはピアツーピアオーバーレイネットワーク102の内部に記憶される。
【0026】
データオブジェクトの所有者は、ピアツーピアオーバーレイネットワーク102に記憶されたデータオブジェクトに関するアクセス制御を指定することができる。たとえば、ピアノード104Aおよび/またはそのユーザは、ピアツーピアオーバーレイネットワーク102に記憶されたデータオブジェクトにアクセスするように認可される、ピアノードのグループおよび/またはユーザのグループを指定することができる。認可されたピアノードおよび/またはユーザのそのようなグループは、本明細書では全体的にグループと呼ぶ場合がある。
【0027】
グループ管理およびメンバー認証の容易化
図3を参照すると、サーバまたは固定型ホストによって中央調整されないオーバーレイネットワーク用のグループ管理およびメンバー認証を容易にするためのネットワーク環境が示される。この例では、
図1からのピアノード104A〜104Cが例示の目的で使用される。ピアノード104Aおよび/またはそのユーザがグループを指定(または作成)するとき、そのピアノード104Aおよび/またはそのユーザは、ピアツーピアオーバーレイネットワーク102内のグループのメンバーシップを管理することができ、本明細書ではグループ管理者と呼ぶ場合がある。本開示全体にわたって使用するように、グループ管理者ピアノード(たとえば、グループ管理者ピアノード104A)に対する参照は、ピアノードデバイスおよび/またはそのユーザを参照する。一特徴によれば、グループ管理者ピアノード104Aは、グループのメンバーである各ピアノード104および/またはユーザにピア固有の証明書を割り当てることができる。いくつかの実装形態では、ピア固有の証明書は、グループ管理者ピアノード104Aによって発行されたピア固有のグループ証明書を含むことができる。他の実装形態では、ピア固有の証明書は、グループ管理者ピアノード104Aからの認可後、各グループメンバーに対して信用局によって発行されたピア固有のノード証明書を含むことができる。
【0028】
グループのメンバーであるピアノードおよび/またはユーザ(たとえば、ピアノード104B)は、その後ピアツーピアオーバーレイネットワーク102を介して、記憶されたデータオブジェクトへのアクセスを要求することができる。本明細書で使用するアクセス要求は、限定はしないが、読み取りアクセス、または読み取り/修正アクセス(すなわち、読み取り/書き込みアクセス)を含むアクセスの様々なレベルのうちの1つに対する要求を含む場合がある。グループのメンバーであり、データオブジェクトへのアクセスを要求するピアノードおよび/またはユーザは、本明細書ではグループメンバーピアノード(たとえば、グループメンバーピアノード104B)またはアクセスピアノードと呼ぶ場合がある。アクセス制御は、グループのメンバーが特定のアクセスを許可されることを指定できるが、グループメンバーピアノード104Bが本当にグループのメンバーであることを検証することが望ましい。
【0029】
一特徴によれば、グループアクセス制御の執行は、オーバーレイネットワーク内のピアノードの間で分散することができる。たとえば、ピアノードは、グループメンバーピアノード104Bによって主張されたように、グループメンバーピアノード104Bが実際にグループのメンバーであることを検証するために採用することができる。グループメンバーピアノード104Bのグループメンバーシップを認証または検証するそのようなピアノードは、本明細書では検証ピアノード104Cと呼ぶ場合がある。1つまたは複数の実装形態によれば、グループメンバーピアノード104Bは、そのピア固有の証明書(たとえば、ピア固有のグループ証明書、ピア固有のノード証明書)を検証ピアノード104Cに送信することができる。次いで、検証ピアノード104Cは、ピア固有の証明書に含まれるか、またはピア固有の証明書に含まれた他の情報(たとえば、グループメンバーピアノード104Bの識別情報)から特定された公開鍵を使用してグループメンバーピアノード104Bを検証することができる。検証ピアノード104Cは、証明書を発行した装置(たとえば、ピア固有のグループ証明書の場合のグループ管理者ピアノード、ピア固有のノード証明書の場合の信用局)の公開鍵を使用して、ピア固有の証明書を検証することもできる。一特徴によれば、検証ピアノード104Cは、グループメンバーピアノード104Bがグループのメンバーであることを単独で検証することができる。すなわち、検証ピアノード104Cは、別のピアノードまたは中央サーバを採用して検証情報を提供することなしに、または1つまたは複数の検証機能を実行することなしに、グループメンバーピアノード104Bのグループメンバーシップを自律的に検証することができる。
【0030】
グループ管理者ピアノード104A、グループメンバーピアノード104Bおよび検証ピアノード104Cは、図示された実装形態により別個のピアノードとして描写されるが、様々な実装形態では、ピアノードは複数の描写されたピアノードの役割を実行できることに留意されたい。たとえば、グループ管理者ピアノード104Aはまた、データオブジェクトへのアクセスを要求し、検証ピアノード104Cによって検証されるグループメンバーピアノード104Bである場合がある。別の例では、グループ管理者ピアノード104Aは、データオブジェクトへのアクセスを要求しているグループメンバーピアノード104Bを検証するために採用することができ、その場合、グループ管理者ピアノード104Aはまた、検証ピアノード104Cであるはずである。さらに別の例では、グループメンバーピアノード104Bはまた、別のグループメンバーピアノードを検証するために採用されたとき、検証ピアノード104Cとして動作する場合がある。
【0031】
図4および
図5は、本開示の様々な実装形態による、グループ管理およびメンバー認証のいくつかの例を示す流れ図である。最初に(
図4Aおよび
図4Bを含む)
図4を参照すると、グループメンバーピアノード用のピア固有のグループ証明書を採用する少なくとも1つの実装形態による、グループ管理およびメンバー認証を示す流れ図が示される。この例では、
図1を参照して記載されたグループ管理者ピアノード104A、グループメンバーピアノード104B、および検証ピアノード104Cが、例示の目的で使用される。
【0032】
最初に、グループ管理者ピアノードA 104Aが、信用局(たとえば、
図2の信用局202)からノード証明書(Node Cert-A)402を取得することができる。ノード証明書402は、ピアノードAの識別情報(Peer-A ID)、ピアノードAの公開鍵(PbK-A)、信用局の識別情報(TA-ID)、および信用局による署名を含み、
図2を参照して上述された方式と同様の方式で取得することができる。
【0033】
404で、ピアノードA 104Aはグループを作成し、そのグループに名前(たとえば、グループX)を与えることができる。グループ名はグループを識別するために使用される独自の名前である。グループ名が独自であることを保証するために、ピアノードA 104Aはグループトークンを生成することができ、ピアツーピアオーバーレイネットワークにグループ名でグループトークンを記憶することができる406。(
図4Aでグループトークン408として示された)グループトークンは、任意の特定の名前でピアツーピアオーバーレイネットワークに記憶された唯一のデータオブジェクトが存在できる、一価モデルを使用して記憶することができる。したがって、別のデータオブジェクトまたはグループがすでにグループ名を識別子として使用している場合、繰り返された名前を使用するグループトークン408は、他の同じように命名されたオブジェクトとして、ピアツーピアオーバーレイネットワークによって同じ記憶ピアノードに経路選択されるはずであり、記憶ピアノードにおいて名前衝突をもたらす。そのような衝突が発生したとき、グループ管理者ピアノードA 104Aは、異なるグループ名が選ばれるべきことを通知され得る。名前衝突が発生しなかったとき、グループ管理者ピアノードA 104Aは、選択されたグループ名が独自であることを保証され得る。
【0034】
グループトークン408は、グループの名称(たとえば、Group-X)、グループ管理者の識別情報、グループのメンバーの識別情報および/または他の情報を含むことができる。グループトークンは、グループ管理者ピアノードA 104Aの秘密鍵を使用して生成された署名(Group-X Token(Sig
PvK-A))も含むことができる。
【0035】
作成されたグループおよびピアツーピアオーバーレイネットワークに記憶されたグループトークンを用いて、グループ管理者ピアノードA 104Aは、グループの各メンバー用のピア固有のグループ証明書を生成することができ410、それぞれのピア固有のグループ証明書を各メンバーピアノードに送信することができる412。たとえば、ピア固有のグループ証明書(たとえば、Group-X_Cert
peer-B)は、410でピアノードB 104B用に生成され、次いで412でピアノードB 104Bに送信することができる。ピア固有のグループ証明書(Group-X_Cert
peer-B)は、グループ名(Group-X)、グループ管理者ピアノードA 104Aの識別情報(Peer-A ID)、および受信ピアノードの識別情報(Peer-B ID)を含むことができる。少なくともいくつかの実装形態によれば、ピア固有のグループ証明書(Group-X_Cert
peer-B)は、受信ピアノードの公開鍵(PbK-B)も含むことができる。グループ管理者ピアノードA 104Aはまた、その秘密鍵(Sig
PvK-A)を使用してピア固有のグループ証明書に署名する。たとえば、ピア固有のグループ証明書は、RSA署名、楕円曲線署名、または他の既知のアルゴリズムなどの署名方式を使用して署名することができる。
図4Aは、ピア固有のグループ証明書(Group-X_Cert
peer-B)全体の署名を含むものとして秘密鍵(Sig
PvK-A)による署名を示すが、他の実装形態では、署名(Sig
PvK-A)は、ピア固有のグループ証明書(Group-X_Cert
peer-B)に含まれた個別のデータピースのうちの任意の1つまたは複数の署名を含むことができる。ピアノードB 104Bは、ピア固有のグループ証明書を受信し、414でグループXのメンバーとしてそれ自体を識別する際に将来使用するために記憶することができる。
【0036】
図4Bを参照すると、グループメンバーピアノードB 104Bがグループメンバーシップを要求するいくつかのデータオブジェクトにアクセスすることを望むとき、ピアツーピアオーバーレイネットワーク内の別のピアノードは、グループ内のグループメンバーピアノードのメンバーシップを検証するために採用することができる。
図4に示された例では、ピアノードC 104Cが検証ピアノードとして採用される。検証ピアノードC 104Cは、グループメンバーピアノードB 104Bがアクセスすることを要求しているデータオブジェクトを記憶するピアノードと同じである場合があるか、検証ピアノードC 104Cはネットワーク内の別のピアノードである場合がある。グループメンバーピアノードB 104Bのグループメンバーシップを検証するために、グループメンバーピアノードB 104Bは、ピア固有のグループ証明書(Group-X_Cert
peer-B)を検証ピアノードC 104Cに送信することができる。
【0037】
ピア固有のグループ証明書(Group-X_Cert
peer-B)からの情報を採用して、検証ピアノードC 104Cは、ピアノードB 104BがグループXの正当なメンバーであることを認証することができる。たとえば、検証ピアノードC 104Cは、グループメンバーピアノードB 104Bがピア固有のグループ証明書(Group-X_Cert
peer-B)の正当な所有者であり、その証明書がグループ管理者ピアノードA 104Aによって正当に発行されたことを確認することができる。
【0038】
図4Bに示されたように、検証ピアノードC 104Cは、グループメンバーピアノードB 104Bの秘密鍵を使用して署名された1個のデータに対応するデジタル署名を取得して、ピア固有のグループ証明書内の公開鍵またはピア固有のグループ証明書に含まれたピアノードBの識別情報(Peer-B ID)に関連付けられた公開鍵のいずれかに対応する秘密鍵を、グループメンバーピアノードB 104Bが所有することを確認することができる。たとえば、検証ピアノードC 104Cは、グループメンバーピアノードB 104Bにランダムチャレンジを送信することができる418。その秘密鍵を使用して、グループメンバーピアノードB 104Bはランダムチャレンジに署名し、ステップ420で、署名されたランダムチャレンジ(Sig
PvK-B(Random Challenge))を検証ピアノードC 104Cに送信することができる。次いで、検証ピアノードC 104Cは、ピア固有のグループ証明書(Group-X_Cert
peer-B)に含まれたピア固有の公開鍵(PbK-B)を使用して、署名された応答を検証することができる421。
【0039】
他の実装形態では、検証ピアノードC 104Cは、ピア固有のグループ証明書からのグループメンバーピアノードB 104Bの識別情報(Peer-B ID)を使用して、ピアツーピアオーバーレイネットワークからピア固有の公開鍵(PbK-B)を取得することができる。たとえば、検証ピアノードC 104Cは、グループ証明書からの識別情報Peer-B IDを使用して、グループメンバーピアノードB 104Bから直接公開鍵を取得することができる。他の実装形態では、検証ピアノードC 104Cは識別情報Peer-B IDを使用して、上述のようにその公開鍵を含むピアノードB 104B用のノード証明書を取得することができ、そのノード証明書は信用局によって発行および署名されているのでさらなる信用も提供する。
【0040】
検証ピアノードC 104Cはまた、グループ管理者ピアノードA 104Aが本当にグループ管理者であることを確認することができ、ならびにピア固有のグループ証明書の署名は、その証明書がグループ管理者ピアノードA 104Aによって署名されたことを確認することができる。たとえば、検証ピアノードC 104Cは、グループ管理者ピアノードA 104A用のノード証明書(Node Cert-A)を取得することができ422、その証明書は信用局による署名(Sig
PvK-TA)から認証することができる。少なくとも1つの例では、検証ピアノードC 104Cは、ピア固有のグループ証明書(Group-X_Cert
peer-B)からのグループ管理者ピアノードの識別情報(Peer-A ID)を使用して、グループ管理者ピアノード104A用のノード証明書(Node Cert-A)を検索することができる。グループ管理者の識別情報がピア固有のグループ証明書に含まれていない場合がある少なくとも別の例では、検証ピアノードC 104Cは、グループ管理者の識別情報を発見するために、グループ名(Group-X)を使用してピアツーピアオーバーレイネットワークからグループトークンを取得することができる。
【0041】
検証ピアノードC 104Cがグループトークンにまだアクセスしていなかった場合、グループトークンはピアツーピアオーバーレイネットワークから検索することができ424、ノード証明書(Node Cert-A)からのグループ管理者ピアノードA 104Aの公開鍵(PbK-A)は、グループトークンの署名を確認して、ピアノードA 104Aがグループ管理者であり、ピア固有のグループ証明書を発行し、かつ/またはそれに署名するように認可されていることを確認するために使用することができる426。グループ管理者ピアノードA 104Aのノード証明書(Node Cert-A)からの公開鍵(PbK-A)を使用して、検証ピアノードC 104Cは、ピア固有のグループ証明書(Group-X_Cert
peer-B)に含まれた署名(Sig
PvK-A)を確認することもできる428。
【0042】
グループメンバーピアノードB 104Bがピア固有のグループ証明書(Group-X_Cert
peer-B)の正当な所有者であること、およびその証明書がグループ管理者ピアノードA 104Aによって正当に発行されたことを、検証ピアノードC 104Cが首尾よく確認した場合、グループメンバーピアノードB 104Bのグループメンバーシップが確認され430、検証ピアノードC 104Cは要求されたデータオブジェクトへのアクセスを許可することができる432。確認ステップのいずれかが失敗した場合、グループメンバーピアノードB 104Bのグループメンバーシップは確立されず、データオブジェクトへのアクセスは拒否される可能性がある。
【0043】
少なくともいくつかの実装形態によれば、検証ピアノードC 104Cは、同じグループの他のメンバーを将来確認するためのグループ名とともに、グループ管理者ピアノードA 104Aの識別情報(Peer-A ID)および公開鍵(PbK-A)をキャッシュすることができる。
図4を参照して記載された実装形態では、グループメンバーシップ管理とピア固有の証明書発行のどちらも、グループ管理者ピアノードによって実行される。したがって、信用局はグループ管理プロセスに関与しないが、ノード証明書を様々なピアノードに発行することにより信用のさらなるレイヤを提供することに関与し、本明細書で述べたように、ノード証明書は公開鍵および識別情報を確認するために使用することができる。
【0044】
次に(
図5Aおよび
図5Bを含む)
図5を参照すると、グループメンバーピアノード用のピア固有のノード証明書を採用する少なくとも1つの実装形態による、グループ管理およびメンバー認証を示す流れ図が示される。この例では、信用局はピア固有の証明書をグループメンバーに発行することを担当し、グループアクセス制御の執行は、依然としてピアツーピアオーバーレイネットワークのすべてのピアノードの間で分散される。図示されたように、
図1を参照して記載されたグループ管理者ピアノードA 104A、グループメンバーピアノードB 104B、および検証ピアノードC 104C、ならびに
図2を参照して記載された信用局202が、例示の目的で使用される。
図5に示された実装形態では、ピア固有の証明書自体を生成する代わりに、グループ管理者ピアノードA 104Aは、各グループメンバー用のピア固有のノード証明書を生成する信用局202と通信する。
【0045】
最初に
図5Aを参照すると、信用局202から、グループ管理者ピアノードA 104Aはノード証明書(Node Cert-A)を取得することができ502、ピアノードB 104Bはノード証明書(Node Cert-B)を取得することができる504。ピアノードA用のノード証明書は、ピアノードAの識別情報(Peer-A ID)、ピアノードAの公開鍵(PbK-A)、信用局の識別情報(TA-ID)、および信用局202による署名(Sig
TA)を含む。同様に、ピアノードB用のノード証明書は、ピアノードBの識別情報(Peer-B ID)、ピアノードBの公開鍵(PbK-B)、信用局の識別情報(TA-ID)、および信用局202による署名(Sig
TA)を含む。それぞれのノード証明書は、
図2を参照して記載された方式と同様の方式で取得することができる。
【0046】
506で、ピアノードA 104Aはグループを作成し、そのグループに名前(たとえば、グループX)を与えることができる。グループ名はグループを識別するために使用される独自の名前である。この例では、グループ管理者ピアノードA 104Aは、信用局202にグループ名でグループを登録する508。グループ名の独自性は信用局202によってチェックされ保証される。信用局202は、すべてのグループ名およびグループごとのグループ管理者の識別情報の記録を維持することができる。いくつかの実装形態では、信用局202によるグループの登録は、ピアツーピアオーバーレイネットワークにグループトークンを記憶することとも連携して使用することができ、その場合、
図4を参照して記載されたように、信用局202は、オーバーレイに記憶された情報を確認することによって、グループ名の独自性を確認することができる。
【0047】
ピアノードまたはそのユーザがグループに加入することを望むとき、要求をグループ管理者に送信することができる。たとえば、ピアノードB 104BがグループXに加入することを望む場合、グループXに加入する要求510をグループ管理者ピアノードA 104Aに送信することができる。グループXに加入する要求は、ピアノードB 104B用のノード証明書(Node Cert-B)を含む。グループ管理者ピアノードA 104Aは、要求を承認または拒否することができる。グループXに加入する要求が承認された場合、グループ管理者ピアノードA 104Aは、ピアノードB 104B用のピア固有の証明書を割り当てる。たとえば、グループ管理者ピアノードA 104Aは、ピアノードB 104BをグループXのメンバーとして加え、ピアノードB 104Bにピア固有のノード証明書を発行するように信用局202に求める要求512を、信用局202に送信することによって、ピア固有の証明書を割り当てることができる。ピアノードB 104Bを加える要求は、ピアノードB 104B用のノード証明書(Node Cert-B)を信用局202に転送することを含む場合がある。
【0048】
グループ管理者ピアノードA 104Aから要求を受信すると、信用局202は、グループ管理者ピアノードA 104A用のノード識別情報(Peer-A ID)を認証し、ノード識別情報(Peer-A ID)がそのグループ記録の中のグループ管理者の識別情報と一致することを確認する514。確認が成功した場合、信用局202は、新しいノード証明書(New Node Cert-B)をピアノードB 104Bに発行する516。新しいノード証明書は、古い証明書(Node Cert-B)に存在したすべての情報に加えて、ピアが最近加入したグループ名を含む。たとえば、新しいノード証明書(New Node Cert-B)は、ピアノードBの識別情報(Peer-B ID)、ピアノードBの公開鍵(PbK-B)、信用局の識別情報(TA-ID)、および信用局202による署名(Sig
TA)、ならびに、ピアノードB 104BがグループGroup-Xのメンバーであることを示すグループ名(Group-X)を含む。新しいノード証明書(New Node Cert-B)は、信用局202から直接、またはグループ管理者ピアノードA 104Aを経由して、ピアノードB 104Bに送信することができる。本明細書では、グループメンバーシップを示す新しいノード証明書は、ピア固有のノード証明書と呼ぶ場合もある。
【0049】
図5Bを参照すると、ピアノードB 104Bが、グループ(たとえば、Group-X)内のメンバーシップを要求するいくつかのデータオブジェクトにアクセスすることを望むとき、ピアツーピアオーバーレイネットワーク内の別のピアノードは、グループ内のグループメンバーピアノードのメンバーシップを検証するために採用することができる。
図5に示された例では、ピアノードC 104Cが検証ピアノードとして採用される。ピアノードA 104AおよびピアノードB 104Bが引き続き
図5Bに示されたが、
図5Aに示された信用局202が
図5Bに示されていないことを、明確にするために留意されたい。円形の「A」および円形の「B」は、ピアノードA 104AおよびピアノードB 104Bが
図5Aから
図5Bに続くことを描写するように示される。また注目すべきことに、
図5Aに示されなかったピアノードC 104Cが
図5Bに示される。
【0050】
述べたように、
図5Bに示された検証ピアノードC 104Cは、グループメンバーピアノードB 104Bがグループのメンバーであることを検証するために採用される。検証ピアノードC 104Cは、グループメンバーピアノードB 104Bがアクセスすることを要求しているデータオブジェクトを記憶するピアノードと同じである場合があるか、検証ピアノードC 104Cはネットワーク内の別のピアノードである場合がある。グループメンバーピアノードB 104Bのグループメンバーシップを検証するために、グループメンバーピアノードB 104Bは、そのピア固有のノード証明書(New Node Cert-B)を検証ピアノードC 104Cに送信することができる518。
【0051】
ピア固有のノード証明書(New Node Cert-B)からの情報を採用して、検証ピアノードC 104Cは、グループメンバーピアノードB 104BがグループXの正当なメンバーであることを認証することができる。たとえば、検証ピアノードC 104Cは、グループメンバーピアノードB 104Bがピア固有のノード証明書(New Node Cert-B)の正当な所有者であり、その証明書が信用局202によって正しく発行されたことを確認することができる。
【0052】
グループメンバーピアノードB 104Bがピア固有のノード証明書(New Node Cert-B)の正当な所有者であることを確認するために、検証ピアノードC 104Cは、グループメンバーピアノードB 104Bの秘密鍵を使用して署名された1個のデータに対応するデジタル署名を取得することができる。検証ピアノードC 104Cはデジタル署名を使用して、グループメンバーピアノードB 104Bがピア固有のノード証明書(New Node Cert-B)内の公開鍵に対応する秘密鍵を所有することを確認することができる。たとえば、検証ピアノードC 104Cは、グループメンバーピアノードB 104Bにランダムチャレンジ520を送信することができる。その秘密鍵を使用して、グループメンバーピアノードB 104Bはランダムチャレンジに署名し、ステップ522で、署名されたランダムチャレンジ(Sig
PvK-B(Random Challenge))を検証ピアノードC 104Cに送信することができる。次いで、検証ピアノードC 104Cは、ピア固有の公開鍵(PbK-B)を使用して、署名された応答を検証することができる524。応答が検証された場合、検証ピアノードC 104Cは、グループメンバーピアノードB 104Bがピア固有のノード証明書(New Node Cert-B)に関連付けられた秘密鍵を所有することを保証される。
【0053】
検証ピアノードC 104Cは、ピア固有のノード証明書(New Node Cert-B)の署名を確認して、その証明書が信用局202によって発行されたことを確認することもできる。たとえば、検証ピアノードC 104Cは、信用局202用の公開鍵(PbK-TA)を検索することができる。いくつかの例では、検証ピアノードC 104Cは、すでに信用局の公開鍵(PbK-TA)のコピーを有している場合があるか、または検証ピアノードC 104Cは、ピア固有のノード証明書(New Node Cert-B)に含まれた信用局202の識別情報(Peer-A ID)を使用して、信用局の公開鍵(PbK-TA)を検索することができる。信用局202用の公開鍵(PbK-TA)を使用して、検証ピアノードC 104Cは、ピア固有のノード証明書(New Node Cert-B)に含まれた署名(Sig
TA)を確認することができる526。
【0054】
グループメンバーピアノードB 104Bがピア固有のノード証明書(New Node Cert-B)の正当な所有者であること、およびその証明書が信用局202によって正当に発行されたことを、検証ピアノードC 104Cが首尾よく確認した場合、グループメンバーピアノードB 104Bのグループメンバーシップが確認され528、検証ピアノードC 104Cは要求されたデータオブジェクトへのアクセスを許可することができる530。確認ステップのいずれかが失敗した場合、グループメンバーピアノードB 104Bのグループメンバーシップは確立されず、データオブジェクトへのアクセスは拒否される可能性がある。
【0055】
例示的なグループ管理者ピアノード
図6は、少なくとも1つの実装形態による、グループ管理者として採用されたピアノード600の選択構成要素を示すブロック図である。グループ管理者ピアノード600は、本明細書ではグループオーナーピアノードと呼ぶ場合もある。ピアノード600は、記憶媒体604および通信インターフェース606に結合された、処理回路602を含むことができる。
【0056】
処理回路602は、一般に、データを取得し、処理し、かつ/または送信し、データのアクセスおよび記憶を制御し、コマンドを発行し、かつ他の必要な動作を制御するように構成され、少なくとも1つの実施形態では、記憶媒体604などの適切な媒体によって提供された必要なプログラミングを実装するように構成された回路を備えることができる。
【0057】
記憶媒体604は、プロセッサ実行可能なコードもしくは命令(たとえば、ソフトウェア、ファームウェア)、電子データ、データベース、または他のデジタル情報などの、プログラミングおよび/またはデータを記憶するための1つまたは複数のデバイスを表す場合がある。記憶媒体604は、処理回路602が記憶媒体604から情報を読み取り、かつ記憶媒体604に情報を書き込むことができるように、処理回路602に結合することができる。代替として、記憶媒体604は処理回路602と一体である場合がある。
【0058】
グループ管理者ピアノード600の記憶媒体604は、そこに記憶された秘密鍵608、公開鍵610およびノード証明書612を含むことができる。秘密鍵608は、従来の署名アルゴリズムを使用して、グループ管理者ピアノード600によって通信されるデータに署名するために採用され、通常、グループ管理者ピアノード600だけに知られる(すなわち、他のピアノードには通信されない)。公開鍵610は他のピアノードに分配され、秘密鍵608で署名されたデータを確認するように働く。
【0059】
記憶媒体604は、そこに記憶されたグループ作成動作614およびピア固有の証明書割当て動作616をさらに含むことができる。グループ作成動作614は、処理回路602により、たとえばグループ作成者モジュール618に実装されて、グループを作成することができる。ピア固有の証明書割当て動作616は、処理回路602により、たとえば証明書割当て者モジュール620に実装されて、作成されたグループの各メンバーにピア固有の証明書を割り当てることができる。いくつかの実装形態では、ピア固有の証明書割当て動作616は、各グループメンバー用のピア固有のグループ証明書を生成するように適合することができる。他の実装形態では、ピア固有の証明書割当て動作616は、各グループメンバーにピア固有のノード証明書を発行することを信用局に要求するように適合することができる。
【0060】
通信インターフェース606は、ピアノード600のワイヤレス通信および/または有線通信を容易にするように構成される。たとえば、通信インターフェース606は、ピアツーピアオーバーレイネットワーク内の他のピアノードに対して双方向に情報を通信するように構成することができる。通信インターフェース606はアンテナと結合することができ、ピアツーピアオーバーレイネットワークとのワイヤレス通信用の少なくとも1つの送信機622および/または少なくとも1つの受信機624(たとえば、1つまたは複数の送信機/受信機チェーン)を含むワイヤレストランシーバ回路を含むことができ、かつ/または、ネットワークインターフェースカード(NIC)として、シリアル接続もしくはパラレル接続、ユニバーサルシリアルバス(USB)インターフェース、Firewireインターフェース、Thunderboltインターフェース、またはパブリックネットワークおよび/またはプライベートネットワークに対して通信するための任意の他の適切な構成を含むことができる。
【0061】
グループ管理者として実装されたピアノード600の1つまたは複数の特徴によれば、処理回路602は、
図3〜
図5を参照して本明細書に上記で記載された様々なグループ管理者ピアノード(たとえば、グループ管理者ピアノード104A)に関係するプロセス、機能、ステップおよび/またはルーチンのいずれかまたはすべてを実行するように適合することができる。処理回路602に関して本明細書で使用する「適合される」という用語は、様々な特徴による特定のプロセス、機能、ステップ、および/またはルーチンを実行するように、構成、採用、実装、またはプログラムされることのうちの1つまたは複数が行われる処理回路602を指す場合がある。
【0062】
図7は、グループ管理者ピアノード600などのピアノードで動作可能な方法の少なくとも1つの実装形態の一例を示す流れ図である。
図6と
図7の両方を参照すると、ステップ702でピアノードは公開鍵と秘密鍵のペアを取得することができる。たとえば、ピアノード600は公開鍵610および秘密鍵608を取得することができる。上述したように、公開鍵610は他のピアノードに分配することができ、秘密鍵608で署名されたデータを確認するように働くことができる。一方、秘密鍵608は、ピアノード600だけに知られる可能性がある。少なくともいくつかの実装形態では、秘密鍵と公開鍵のペアは、たとえば、製造者によりそのような鍵を有するピアノード600を用意することによって取得することができるか、または鍵は従来の鍵生成の技法およびアルゴリズムを使用して、ピアノード600によって生成することができる。
【0063】
ステップ704でピアグループを作成することができ、ここでグループはグループのメンバーである1つまたは複数のピアノードを規定する。上述したように、1つまたは複数のメンバーピアノードへの参照は、ピアノードおよび/またはユーザを指す場合がある。一例として、処理回路602は、記憶媒体からグループ作成動作614を採用してグループを作成することができる。グループは、グループ名を選択し、1つまたは複数のピアノードをグループのメンバーとして規定することにより、たとえば、処理回路602のグループ作成者モジュール618によって作成することができる。いくつかの実装形態では、処理回路602は、グループ作成動作614の一部としてグループトークンを生成することもでき、ここでグループトークンは、グループ識別情報によって識別されるピアツーピアオーバーレイネットワークに、データオブジェクトとしてピアノード600によって記憶される。すなわち、グループトークンは、グループの名前で、ピアツーピアオーバーレイネットワークにデータオブジェクトとして記憶することができる。グループトークンは、グループ管理者ピアノード600がピア固有のグループ証明書をグループメンバーピアノードに発行するように認可されていることを、ピアツーピアオーバーレイネットワーク内の他のピアノード(たとえば、検証ピアノード)に認証するように適合される。
【0064】
次いで、グループ管理者ピアノードは、グループのメンバーであるグループメンバーピアノード(たとえば、
図3〜
図5内のグループメンバーピアノード104B)に、ピア固有の証明書を割り当てることができる706。ピア固有の証明書は、グループ内のメンバーシップを示すように適合され、概して、グループ識別情報、グループメンバーピアノードの識別情報、発行元装置の識別情報、および、ピア固有の証明書の1つまたは複数の構成要素にわたる発行元装置の秘密鍵による署名を含むことができる。いくつかの実装形態では、ピア固有の証明書はグループメンバーピアノードの公開鍵も含むことができる。少なくとも1つの例によれば、処理回路602は、記憶媒体604内のピア固有の証明書割当て動作616を(たとえば、証明書割当て者モジュール620に)実装して、ピア固有の証明書をグループメンバーピアノードに割り当てるように適合することができる。
【0065】
少なくとも1つの実装形態では、ピア固有の証明書割当て動作616は、処理回路602(たとえば、証明書割当て者モジュール620)に、グループメンバーピアノード用のピア固有のグループ証明書を生成することによってピア固有の証明書を割り当てることをさせるように適合された命令を含むことができる。処理回路602で生成されたピア固有のグループ証明書は、グループ識別情報、グループメンバーピアノードの識別情報、グループ管理者ピアノードの識別情報、および、ピア固有のグループ証明書の1つまたは複数の構成要素にわたるグループ管理者ピアノード600の秘密鍵608による署名を含むことができる。いくつかの実装形態では、ピア固有のグループ証明書はグループメンバーピアノードの公開鍵も含むことができる。例として、秘密鍵608による署名は、RSA署名アルゴリズムまたは楕円曲線署名アルゴリズムなどの従来の署名方式を採用して、処理回路602によって実行することができる。そのような実装形態では、ピア固有の証明書割当て動作616は、処理回路602に、通信インターフェース606を介してグループメンバーピアノードにピア固有のグループ証明書を送信することをさせるように適合された命令をさらに含むことができる。
【0066】
少なくとも別の実装形態では、ピア固有の証明書割当て動作616は、処理回路602(たとえば、証明書割当て者モジュール620)に、ピア固有のノード証明書をグループメンバーピアノードに発行する要求を、通信インターフェース606を介して信用局に送信することによって、ピア固有の証明書を割り当てることをさせるように適合された命令を含むことができる。信用局によって発行されたピア固有のノード証明書は、グループ識別情報、グループメンバーピアノードの識別情報、信用局の識別情報、および、ピア固有のノード証明書の1つまたは複数の構成要素にわたる信用局の秘密鍵による署名を含むことができる。ピア固有のノード証明書は、グループメンバーピアノードの公開鍵も含むことができる。
【0067】
ピア固有の証明書を割り当てられたグループメンバーピアノードは、その後、ピア固有の証明書に含まれるか、もしくはグループメンバーピアノードの識別情報を使用してピアツーピアオーバーレイネットワークから取得されたグループメンバーピアノードの公開鍵を使用して、グループメンバーピアノードを確認することにより、および、ピア固有の証明書内の発行元装置の識別情報に関連付けられた公開鍵を使用して(たとえば、公開鍵610もしくは信用局の公開鍵を使用して)ピア固有の証明書を確認することにより、検証ピアノード(たとえば、
図3〜
図5の検証ピアノード104C)によって認証することができる。
【0068】
例示的なグループメンバーピアノード(すなわち、アクセスピアノード)
図8は、少なくとも1つの実装形態による、データオブジェクトにアクセスしようとするグループメンバーとして採用されたピアノード800の選択構成要素を示すブロック図である。グループメンバーピアノード800は、本明細書ではアクセスピアノード800と呼ぶ場合もある。ピアノード800は、記憶媒体804および通信インターフェース806に結合された、処理回路802を含むことができる。
【0069】
処理回路802は、一般に、データを取得、処理および/または送信し、データのアクセスおよび記憶を制御し、コマンドを発行し、かつ他の必要な動作を制御するように構成され、少なくとも1つの実施形態では、記憶媒体804などの適切な媒体によって提供された必要なプログラミングを実装するように構成された回路を備えることができる。
【0070】
記憶媒体804は、プロセッサ実行可能なコードもしくは命令(たとえば、ソフトウェア、ファームウェア)、電子データ、データベース、または他のデジタル情報などの、プログラミングおよび/またはデータを記憶するための1つまたは複数のデバイスを表す場合がある。記憶媒体804は、処理回路802が記憶媒体804から情報を読み取り、かつ記憶媒体804に情報を書き込むことができるように、処理回路802に結合することができる。代替として、記憶媒体804は処理回路802と一体である場合がある。
【0071】
グループメンバーピアノード800の記憶媒体804は、そこに記憶された秘密鍵808および公開鍵810を含むことができる。秘密鍵808は、グループメンバーピアノード800によって通信されるデータに署名するために採用され、通常、グループメンバーピアノード800だけに知られる(すなわち、他のピアノードには通信されない)。公開鍵810は他のピアノードに分配され、秘密鍵808で署名されたデータを確認するように働く。
【0072】
記憶媒体804は、そこに記憶されたピア固有の証明書812も含む。様々な実装形態によれば、ピア固有の証明書812は、ピア固有のグループ証明書またはピア固有のノード証明書(すなわち、新しいノード証明書)を含むことができる。
【0073】
通信インターフェース806は、グループメンバーピアノード800のワイヤレス通信および/または有線通信を容易にするように構成される。たとえば、通信インターフェース806は、ピアツーピアオーバーレイネットワーク内の他のピアノードに対して双方向に情報を通信するように構成することができる。通信インターフェース806はアンテナと結合することができ、ピアツーピアオーバーレイネットワークとのワイヤレス通信用の少なくとも1つの送信機814および/または少なくとも1つの受信機816(たとえば、1つまたは複数の送信機/受信機チェーン)を含むワイヤレストランシーバ回路を含むことができ、かつ/または、ネットワークインターフェースカード(NIC)として、シリアル接続もしくはパラレル接続、ユニバーサルシリアルバス(USB)インターフェース、Firewireインターフェース、Thunderboltインターフェース、またはパブリックネットワークおよび/またはプライベートネットワークに対して通信するための任意の他の適切な構成を含むことができる。
【0074】
グループメンバーピアノード800の1つまたは複数の特徴によれば、処理回路802は、
図3〜
図5を参照して本明細書に上記で記載された様々なグループメンバーピアノード(たとえば、グループメンバーピアノード104B)に関係するプロセス、機能、ステップおよび/またはルーチンのいずれかまたはすべてを実行するように適合することができる。処理回路802に関して本明細書で使用する「適合される」という用語は、様々な特徴による特定のプロセス、機能、ステップ、および/またはルーチンを実行するように、構成、採用、実装、またはプログラムされることのうちの1つまたは複数が行われる処理回路802を指す場合がある。
【0075】
図9は、グループメンバーピアノード800などのピアノードで動作可能な方法の少なくとも1つの実装形態の一例を示す流れ図である。
図8と
図9の両方を参照すると、ステップ902でピアノードは公開鍵と秘密鍵のペアを取得することができる。たとえば、ピアノード800は公開鍵810および秘密鍵808を取得することができる。上述したように、公開鍵810は他のピアノードに分配することができ、従来の署名アルゴリズムを使用して秘密鍵808で署名されたデータを確認するように働くことができる。一方、秘密鍵808は、ピアノード800だけに知られる可能性がある。少なくともいくつかの実装形態では、グループメンバーピアノード800に関連付けられた秘密鍵と公開鍵のペアは、たとえば、製造者によりそのような鍵を有するピアノード800を用意することによって取得することができるか、または、鍵は従来の鍵生成の技法およびアルゴリズムを使用して、ピアノード800によって生成することができる。
【0076】
ステップ904で、ピア固有の証明書はピアノード800によって受信することができる。たとえば、処理回路802は、通信インターフェース806を介してピア固有の証明書812を受信することができる。ピア固有の証明書812は、ピアツーピアオーバーレイネットワーク内の他のピアノード(たとえば、検証ピアノード)にグループ内のメンバーシップを示すように適合される。ピア固有の証明書812は、概して、グループ識別情報、グループメンバーピアノード800の識別情報、発行元装置の識別情報、および、ピア固有の証明書812の1つまたは複数の構成要素にわたる発行元装置の秘密鍵による署名を含むことができる。ピア固有の証明書812は、公開鍵810をさらに含むことができる。いくつかの実装形態では、ピア固有の証明書812は、ピアノード800からグループ管理者ピアノードに送信された要求に応答して受信することができる。
【0077】
少なくとも1つの実装形態では、ピア固有の証明書812は、グループ管理者ピアノードから発行されたピア固有のグループ証明書を含むことができる。そのようなピア固有のグループ証明書は、グループ識別情報、グループメンバーピアノード800の識別情報、グループ管理者ピアノードの識別情報、および、ピア固有のグループ証明書の1つまたは複数の構成要素にわたるグループ管理者ピアノードの秘密鍵による署名を含むことができる。ピア固有のグループ証明書は公開鍵810も含むことができる。ピア固有の証明書812がピア固有のグループ証明書を含む実装形態では、ピア固有のグループ証明書に含まれたグループ識別情報は、ピアツーピアオーバーレイネットワークに記憶されたグループトークンを、グループ識別情報によって識別されたデータオブジェクトとして特定するように適合することができる。本明細書で述べたように、グループトークンは、グループ管理者ピアノードがピア固有のグループ証明書を発行および署名するように認可されたことを認証するように適合することができる。
【0078】
別の実装形態では、ピア固有の証明書812は、信用局から発行されたピア固有のノード証明書(または新しいノード証明書)を含むことができる。そのようなピア固有のノード証明書(または新しいノード証明書)は、グループ識別情報、グループメンバーピアノード800の識別情報、ピア固有のノード証明書を発行した信用局の識別情報、および、ピア固有のノード証明書の1つまたは複数の構成要素にわたる信用局の秘密鍵による署名を含むことができる。ピア固有のノード証明書は公開鍵810も含むことができる。ピア固有のノード証明書(または新しいノード証明書)を採用する実装形態では、ピア固有のノード証明書(または新しいノード証明書)は、ピアノード800の記憶媒体804に記憶できる以前受信されたノード証明書と置き換えることができる。
【0079】
ピアノード800は、その後ピア固有の証明書を採用して、それ自体をグループのメンバーとして認証することができる。それに応じて、ステップ906で、グループメンバーピアノード800は、ピア固有の証明書を検証ピアノード(
図3〜
図5内の検証ピアノード104C)に送信して、それ自体をグループメンバーとして認証することができる。たとえば、処理回路802は、通信インターフェース806を介して検証ピアノードに伝送を送信することができ、ここで伝送は、ピア固有の証明書812(たとえば、ピア固有のグループ証明書またはピア固有のノード証明書)を含む。
【0080】
ステップ908で、ピアノード800は認証データを検証ピアノードに送信することができ、その認証データは秘密鍵808を使用して署名される。たとえば、処理回路802は、RSA署名アルゴリズムまたは楕円曲線署名アルゴリズムなどの従来の署名方式を使用して、認証データに署名することができる。署名された認証データは、通信インターフェース806を介して検証ピアノードに、処理回路802によって送信することができる。
【0081】
ピアノード800のグループメンバーシップは、ピア固有の証明書またはピアツーピアネットワークのいずれかから取得された公開鍵810を使用してピアノード800を確認して、署名された認証データを検証することにより、検証ピアノードによって認証することができる。加えて、検証ピアノードは、発行元装置の識別情報に関連付けられた公開鍵を採用することにより(たとえば、グループ管理者ピアノードの公開鍵または信用局の公開鍵を使用して)、ピアノード800によって送信されたピア固有の証明書812を確認することができ、その識別情報はピア固有の証明書812に含まれる。
【0082】
例示的な検証ピアノード
図10は、少なくとも1つの実装形態による、別のピアノードのグループメンバーシップを検証するために採用されたピアノード1000の選択構成要素を示すブロック図である。検証ピアノード1000は、記憶媒体1004および通信インターフェース1006に結合された、処理回路1002を含むことができる。
【0083】
処理回路1002は、一般に、データを取得、処理および/または送信し、データのアクセスおよび記憶を制御し、コマンドを発行し、かつ他の必要な動作を制御するように構成され、少なくとも1つの実施形態では、記憶媒体1004などの適切な媒体によって提供された必要なプログラミングを実装するように構成された回路を備えることができる。
【0084】
記憶媒体1004は、プロセッサ実行可能なコードもしくは命令(たとえば、ソフトウェア、ファームウェア)、電子データ、データベース、または他のデジタル情報などの、プログラミングおよび/またはデータを記憶するための1つまたは複数のデバイスを表す場合がある。記憶媒体1004は、処理回路1002が記憶媒体1004から情報を読み取り、かつ記憶媒体1004に情報を書き込むことができるように、処理回路1002に結合することができる。代替として、記憶媒体1004は処理回路1002と一体である場合がある。
【0085】
記憶媒体1004は、そこに記憶されたグループメンバー確認動作1008およびピア固有の証明書確認動作1010を含むことができる。グループメンバー確認動作1008とピア固有の証明書確認動作1010のどちらも、たとえば、ピアと証明書の認証者モジュール1012に、処理回路1002によって実装されて、グループメンバーピアノード(たとえば、
図3〜
図5内のグループメンバーピアノード104B)のグループメンバーシップを検証することができる。少なくともいくつかの実装形態では、記憶媒体1004は、そこに記憶されたピアツーピアオーバーレイネットワークのデータオブジェクト1011を含むことができ、グループメンバーシップの検証は、データオブジェクト1011にアクセスするように認可されたグループのメンバーとして、データオブジェクト1011へのアクセスを要求するグループメンバーピアノードに応答して実行することができる。
【0086】
通信インターフェース1006は、検証ピアノード1000のワイヤレス通信および/または有線通信を容易にするように構成される。たとえば、通信インターフェース1006は、ピアツーピアオーバーレイネットワーク内の他のピアノードに対して双方向に情報を通信するように構成することができる。通信インターフェース1006はアンテナと結合することができ、ピアツーピアオーバーレイネットワークとのワイヤレス通信用の少なくとも1つの送信機1014および/または少なくとも1つの受信機1016(たとえば、1つもしくは複数の送信機/受信機チェーン)を含むワイヤレストランシーバ回路を含むことができ、かつ/または、ネットワークインターフェースカード(NIC)として、シリアル接続もしくはパラレル接続、ユニバーサルシリアルバス(USB)インターフェース、Firewireインターフェース、Thunderboltインターフェース、またはパブリックネットワークおよび/またはプライベートネットワークに対して通信するための任意の他の適切な構成を含むことができる。
【0087】
検証ピアノード1000の1つまたは複数の特徴によれば、処理回路1002は、
図3〜
図5を参照して本明細書に上記で記載された様々な検証ピアノード(たとえば、検証ピアノード104C)に関係するプロセス、機能、ステップおよび/またはルーチンのいずれかまたはすべてを実行するように適合することができる。処理回路1002に関して本明細書で使用する「適合される」という用語は、様々な特徴による特定のプロセス、機能、ステップ、および/またはルーチンを実行するように、構成、採用、実装、またはプログラムされることのうちの1つまたは複数が行われる処理回路1002を指す場合がある。
【0088】
図11は、ピアツーピアオーバーレイネットワーク内のグループメンバーシップ認証を容易にするための、検証ピアノード1000などのピアノード上で動作可能な方法の少なくとも1つの実装形態の一例を示す流れ図である。
図10と
図11の両方を参照すると、ステップ1102で、ピアノードは、グループのメンバーとしての認証を求めているグループメンバーピアノードからピア固有の証明書を受信することができる。たとえば、処理回路1002は、通信インターフェース1006を介して、グループメンバーピアノード(たとえば、
図3〜
図5内のグループメンバーピアノード104B)からピア固有の証明書を受信することができる。概して、ピア固有の証明書は、グループ名、グループメンバーピアノードの識別情報、発行元装置の識別情報、および、ピア固有の証明書の1つまたは複数の構成要素にわたる発行元装置の秘密鍵による署名を含むことができる。ピア固有の証明書は、グループメンバーピアノードの公開鍵も含むことができる。
【0089】
少なくとも1つの実装形態では、受信されたピア固有の証明書は、グループ管理者ピアノードからグループメンバーピアノードに発行されたピア固有のグループ証明書を含む。この場合、ピア固有のグループ証明書は、グループ識別情報、グループメンバーピアノードの識別情報、グループ管理者ピアノードの識別情報、および、ピア固有のグループ証明書の1つまたは複数の構成要素にわたるグループ管理者ピアノードの秘密鍵による署名を含むことができる。ピア固有のグループ証明書は、場合によってはグループメンバーピアノードの公開鍵も含むことができる。
【0090】
別の実装形態では、受信されたピア固有の証明書は、信用局によって発行されたピア固有のノード証明書を含む。この場合、ピア固有のノード証明書は、グループ識別情報、グループメンバーピアノードの識別情報、信用局の識別情報、および、ピア固有のノード証明書の1つまたは複数の構成要素にわたる信用局の秘密鍵による署名を含むことができる。ピア固有のノード証明書は、場合によってはグループメンバーピアノードの公開鍵も含むことができる。
【0091】
ステップ1108で(ステップ1104とステップ1106は以下で説明することに留意)、検証ピアノード1000はグループメンバーピアノードから認証データを受信することができ、ここで認証データはグループメンバーピアノードの秘密鍵によって署名される。たとえば、処理回路1002は、通信インターフェース1006を介して、グループメンバーピアノードの秘密鍵によって署名された認証データを含む伝送を受信することができる。
【0092】
署名された認証データを受信すると、ステップ1110で、検証ピアノード1000は、グループメンバーピアノードに関連付けられた公開鍵を使用して、認証データの署名を確認することができる。グループメンバーピアノードに関連付けられた公開鍵は、それに含まれている場合ピア固有の証明書から、またはピア固有の証明書に含まれたグループメンバーピアノードの識別情報を使用してピアツーピアオーバーレイネットワークから取得することができる。たとえば、グループメンバーピアノードの識別情報は、グループメンバーピアノードに関連付けられた公開鍵を含むグループメンバーピアノードのノード証明書を取得するために使用することができ、ノード証明書が信用局によって発行かつ署名された結果として、ノード証明書はさらに信用できる。たとえば、処理回路1002(たとえば、ピアと証明書の認証者モジュール1012)は、グループメンバー確認動作1008を採用して、ピア固有の証明書からのグループメンバーピアノードの公開鍵による署名を確認することができる。様々な実装形態によれば、グループメンバー確認動作1008は、RSA署名アルゴリズム、楕円曲線署名アルゴリズム、または任意の他の知られた署名アルゴリズムなどの従来の署名アルゴリズムを採用して、署名を確認するように適合することができる。
【0093】
検証ピアノード1000はまた、ステップ1112で、ピア固有の証明書内で見いだされた発行元装置の識別情報に関連付けられた公開鍵を使用して、ピア固有の証明書を確認することができる。たとえば、処理回路1002は、ピア固有の証明書に含まれた発行元装置の識別情報を使用して、発行元装置の識別情報に関連付けられた公開鍵(たとえば、グループ管理者ピアノードの公開鍵または信用局の公開鍵)を検索することができる。発行元装置の公開鍵を用いて、処理回路1002(たとえば、ピアと証明書の認証者モジュール1012)は、ピア固有の証明書確認動作1010を採用して、ピア固有の証明書に含まれた署名を確認することができる。様々な実装形態によれば、ピア固有の証明書確認動作1010は、RSA署名アルゴリズム、楕円曲線署名アルゴリズム、または任意の他の知られた署名アルゴリズムなどの従来の署名アルゴリズムを使用して、署名を確認するように適合することができる。
【0094】
ピア固有のグループ証明書を採用する実装形態では、検証ピアノード1000は、任意選択のステップ1104に示されたように、ピアツーピアオーバーレイネットワークからグループトークンを取得することができる。たとえば、処理回路1002は、ピア固有のグループ証明書内のグループ識別情報を採用して、グループ識別情報によって識別されたデータオブジェクトとして、ピアツーピアオーバーレイネットワークの内部に記憶されたグループトークンを取得することができる。前述のように、グループトークンは、グループ管理者ピアノードの秘密鍵による署名を含む。したがって、検証ピアノード1000は、任意選択のステップ1106に示されたように、グループ管理者ピアノードの公開鍵を使用してグループトークンの署名を確認して、グループ管理者ピアノードがグループ管理者であり、かつ/またはピア固有のグループ証明書を発行するように認可されたことを検証することができる。
【0095】
さらに、ピア固有のグループ証明書を採用する実装形態では、検証ピアノード(たとえば、処理回路1002)は、ピアツーピアオーバーレイネットワークからグループ管理者ピアノードのノード証明書を取得することによって、グループ管理者ピアノードの公開鍵を検索することができる。本明細書で述べたように、ピアノード用のノード証明書は、そのそれぞれのピアノード用の公開鍵を含み、信用局によって署名される。
【0096】
グループ管理者ピアノードと信用局が個別のデバイスとして本明細書に記載されたが、グループ管理者と信用局の役割は完全に論理的であり得ることに留意されたい。したがって、少なくともいくつかの実装形態では、グループ管理者と信用局は、同じ物理デバイスに存在する2個のコードを備えることができる。そのような実装形態では、グループ管理者と信用局の間の通信および認証は簡略化することができ、プログラミングAPI(アプリケーションプログラミングインターフェース)に依存する可能性がある。
【0097】
さらに、本開示におけるグループ概念は、ピアツーピアオーバーレイネットワーク内のサービスにマップすることができ、ここで各サービスプロバイダはグループ管理者として機能することができ、ここですべてのサービスプロバイダにサービスする1つまたは複数の信用局が存在する場合がある。そのような実装形態では、サービスプロバイダはグループに加入する前に各ピアノードから料金を要求する場合がある。信用局はまた、各サービスプロバイダと特定の業務協定を有する企業体によって動作することができる。
【0098】
図1、
図2、
図3、
図4、
図5、
図6、
図7、
図8、
図9、
図10および/または
図11に示された構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴または機能に再構成され、かつ/もしくは組み合わされ、または、いくつかの構成要素、ステップ、または機能で具現化することができる。本開示の範囲から逸脱することなく、さらなる要素、構成要素、ステップ、および/または機能を追加することもできる。
図1、
図3、
図6、
図8および/または
図10に示された装置、デバイス、および/または構成要素は、
図2、
図4、
図5、
図7、
図9および/または
図11に記載された方法、特徴、またはステップのうちの1つまたは複数を実行するように構成することができる。本明細書に記載された新規のアルゴリズムはまた、効率的にソフトウェアに実装することができるか、かつ/またはハードウェアに埋め込むことができる。
【0099】
また、少なくともいくつかの実装形態が、フローチャート、流れ図、構造図、またはブロック図として描写されたプロセスとして記載されていることに留意されたい。フローチャートは動作を逐次プロセスとして記載できるが、動作の多くは並行してまたは同時に実行することができる。加えて、動作の順序は並び替えることができる。プロセスは、その動作が完了したときに終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応する場合がある。プロセスが関数に対応するとき、プロセスの終了は、呼出し関数またはメイン関数への関数のリターンに対応する。
【0100】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装することができる。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードに実装されるとき、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体に記憶することができる。プロセッサは必要なタスクを実行することができる。コードセグメントは、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表す場合がある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容をパスおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送などを含む、任意の適切な手段を介して、パス、転送、または伝送することができる。
【0101】
本明細書に記載された処理回路602、802および1002は、一般に、データを取得、処理および/または送信し、データのアクセスおよび記憶を制御し、コマンドを発行し、かつ他の必要な動作を制御するように構成される。少なくとも1つの実施形態では、そのような処理回路は、記憶媒体(たとえば、記憶媒体604、804、1004)などの適切な媒体によって提供された必要なプログラミングを実装するように構成された回路を備えることができる。たとえば、処理回路は、たとえば、ソフトウェア命令および/またはファームウェア命令を含む実行可能命令を実行するように構成された、プロセッサ、コントローラ、複数のプロセッサおよび/もしくは他の構造、ならびに/またはハードウェア回路のうちの1つまたは複数として実装することができる。処理回路の実施形態には、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理回路、個別ハードウェア構成要素、または本明細書に記載された機能を実行するように設計されたそれらの任意の組合せが含まれ得る。汎用プロセッサはマイクロプロセッサである場合があるが、代替としてプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械である場合がある。プロセッサはまた、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成などの、コンピューティング構成要素の組合せとして実装することができる。処理回路のこれらの例は説明のためであり、本開示の範囲内の他の適切な構成も考えられる。
【0102】
本明細書に記載された記憶媒体604、804および1004は、プロセッサ実行可能なコードもしくは命令(たとえば、ソフトウェア、ファームウェア)、電子データ、データベース、または他のデジタル情報などの、プログラミングおよび/またはデータを記憶するための1つまたは複数のデバイスを各々表す場合がある。記憶媒体は、汎用プロセッサまたは専用プロセッサによってアクセスできる任意の利用可能な媒体である場合がある。限定ではなく例として、記憶媒体には、リードオンリメモリ(たとえば、ROM、EPROM、EEPROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の非一時的コンピュータ可読媒体が含まれ得る。
【0103】
「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」という用語には、限定はしないが、ポータブルまたは固定のストレージデバイス、光ストレージデバイス、ならびに命令および/またはデータを記憶、含有または搬送することができる様々な他の非一時的媒体が含まれ得る。したがって、本明細書に記載された様々な方法は、「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」に記憶され、1つまたは複数のプロセッサ、機械、および/またはデバイスによって実行され得る命令および/またはデータによって、部分的にまたは完全に実装することができる。
【0104】
本明細書で開示された例に関して記載された方法またはアルゴリズムは、ハードウェアに、プロセッサによって実行可能なソフトウェアモジュールに、または両方の組合せに、処理ユニット、プログラミング命令、または他の指示の形態で直接具現化することができ、単一のデバイスに含むことができるか、または複数のデバイスにわたって分散することができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体に常駐することができる。記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、かつその記憶媒体に情報を書き込むことができるように、プロセッサに結合することができる。代替として、記憶媒体はプロセッサと一体である場合がある。
【0105】
さらに、本明細書で開示された実施形態に関して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装できることを当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能の観点から上述された。そのような機能をハードウェアとして実装するか、またはソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。
【0106】
本明細書に記載された実施形態の様々な特徴は、本開示の範囲から逸脱することなく、様々なシステムに実装することができる。上記の実施形態は例にすぎず、本開示を限定するものと解釈すべきでないことに留意されたい。実施形態の説明は例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置、ならびに多くの代替形態、修正形態、および変形形態に容易に適用できることが当業者には明らかであろう。