グループ セキュリティのしくみ
ピア グループでは、各メンバーにグループ メンバー証明書 (GMC) と呼ばれる特定の証明書が必要です。 GMC 証明書により、ピア間で交換されるすべてのレコードがデジタル署名されます。 ピアの公開キーは、ピア間の通信の一部として渡される構造体 (PEER_CREDENTIAL_INFOを含む) に含まれています。
GMC はチェーンで発行できます。 たとえば、作成者は管理者 A に GMC を発行し、管理者 B に GMC を発行し、メンバー M に GMC を発行できます。結果の GMC チェーンは、creator-A-B-M>>> で、長さは 4 です。 チェーンの長さは 24 より長くできないため、重要です。 チェーンの 24 番目の管理者がメンバーに GMC を発行しようとすると、 PeerGroupIssueCredentials または PeerGroupCreateInvitation はPEER_E_CHAIN_TOO_LONGを返します。
GMC は 、PeerGroupIssueCredentials を呼び出すことによって発行することもできます。 GMC は、GMC が発行されるグループのユーザー メンバーシップを意味し、有効期間は有限または無限にすることができます。 グループ メンバー アクティビティは、GMC で指定された有効期間を超えることはできません。
注意
現在、無限 GMC 有効期間は 1,000 年に設定されています。
グループ メンバー アクティビティは GMC の有効期間によって制限され、次のものが含まれます。
- レコード操作 - ピアは、グループ メンバーシップの有効期限が切れた後にグループ内の情報を発行したり、ピアのグループ メンバーシップの有効期間よりも長い有効期間を持つレコードを発行したりできません。
- メンバーシップ操作 - グループ管理者は、グループ管理者メンバーシップで指定された日付を超える有効期間を持つメンバーシップを発行できません。 たとえば、管理者が GMC 有効期間に 500 時間残っている場合、発行されるすべてのメンバーシップは 500 時間未満である必要があります。
グループ メンバーは、そのグループ メンバーを招待する管理者よりも長い有効期間を持つことができないため、管理者の GMC 有効期間を無限に設定するか、非常に長い有効期間に設定することをお勧めします。 既定では、グループ作成者の有効期間は無限です。
グループ メンバーシップの更新
GMC の有効期間が切れる準備ができている管理者またはメンバーの資格情報を更新するには、次の 2 つのオプションがあります。
PeerGroupIssueCredentials を呼び出し、有効期間の有効期限が切れるメンバーの ID を渡します。 資格情報が NULL として指定され、ピアのメンバーシップ情報がグループで使用できる場合、更新時間は、以前に公開されたメンバーの資格情報で指定された期間と同じ期間に設定されます。 別の期間を指定する必要がある場合は、新しい有効期間期間を含む新しい PEER_CREDENTIAL_INFO 構造体を指定し、メンバーに対して新しい GMC を発行する必要があります。
PeerGroupIssueCredentials 関数は必要に応じて、グループ データベース内のメンバーの新しい資格情報を自動的に発行するPEER_GROUP_STORE_CREDENTIALS フラグを受け取ります。 メンバーが次回、初めて、またはオフラインになった後にグループに接続すると、メンバーはデータベースから更新された GMC を取得します。
PeerGroupCreateInvitation を呼び出して、GMC 有効期間の有効期限が切れるメンバーの ID を渡します。 招待で指定された有効期限が NULL の場合、GMC の有効期間は、メンバーシップを発行する管理者 GMC と同じです。 有効期限を NULL として指定すると、有効期間が無限の GMC が発行されます。
ピアが、プレゼンスの有効期間の値の前に期限切れになる GMC を発行した場合、PeerGroupEnumMembers の呼び出しによって開始された列挙で返されるPEER_MEMBER構造体ではピアのアドレスを使用できません。 これは、PEER_DISABLE_PRESENCE フラグが設定されていない場合でも、この場合はプレゼンス情報が公開されないために発生します。