Поделиться через


Как работает безопасность группы

Для одноранговых групп требуется, чтобы у каждого члена был определенный сертификат, который называется сертификатом участника группы (GMC). Сертификат GMC гарантирует, что все записи, обмениваемые между партнёрами, имеют цифровую подпись. Открытый ключ однорангового узла содержится в структурах, передаваемых в рамках обмена данными между одноранговыми узлами, включая PEER_CREDENTIAL_INFO.

GMC может быть выдан в цепочке. Например, создатель может выдавать GMC администратору A, который может выдавать GMC администратору B, который может выдавать GMC участнику M. Результирующая цепочка GMC: creator->A->B->M, которая имеет длину 4. Длина цепочки важна, так как она не может быть длиннее 24 символов. Если двадцать четвертый администратор в цепочке пытается выдать GMC члену, PeerGroupIssueCredentials или PeerGroupCreateInvitation возвращает PEER_E_CHAIN_TOO_LONG.

GMC также можно выдавать путем вызова PeerGroupIssueCredentials. GMC подразумевает членство пользователей в группе, для которую выдается GMC, и может иметь ограниченное или бесконечное время существования. Активность участника группы не может превышать срок действия, указанный в GMC.

Заметка

Бесконечное время существования GMC в настоящее время устанавливается в 1000 лет.

 

Действие члена группы ограничено временем существования GMC и включает в себя следующее:

  • операции записи. Одноранговый узел не может публиковать сведения в группе после истечения срока действия членства в группе или публиковать записи, которые имеют срок действия, превышающий срок действия членства в группе.
  • операции членства - Администратор группы не может выдавать членство с сроком действия, превышающим дату, указанную в членстве администратора группы. Например, если у администратора осталось 500 часов до конца срока действия GMC, все выданные членства должны быть менее 500 часов.

Поскольку срок действия члена группы не может быть дольше, чем у администратора, приглашающего этого члена, рекомендуется задать срок действия GMC администратора как бесконечный или на очень длительное время. Создатель группы по умолчанию имеет бесконечное время существования.

Продление членства в группах

Чтобы продлить учетные данные администратора или участника, срок действия GMC которого готов к истечению срока действия, у вас есть следующие два варианта:

  • Вызовите PeerGroupIssueCredentials и передайте удостоверение члена, срок действия которого подходит к концу. Если учетные данные указаны как NULL и сведения о членстве однорангового узла доступны для группы, время продления устанавливается на ту же длительность, которая указана в ранее опубликованных учетных данных участника. Если необходимо указать другой период длительности, необходимо предоставить новую структуру PEER_CREDENTIAL_INFO, содержащую новый срок жизни, после чего публикуется новый GMC для члена.

    Функция PeerGroupIssueCredentials при необходимости принимает флаг PEER_GROUP_STORE_CREDENTIALS, который автоматически публикует новые учетные данные члена в базе данных группы. Когда участник подключается к группе в следующий раз, будь то в первый раз или после выхода в автономный режим, он получает обновленный GMC из базы данных.

  • Вызовите PeerGroupCreateInvitation, чтобы передать удостоверение члена, срок существования GMC которого скоро истекает. Если срок действия, указанный в приглашении, равен NULL, то время существования GMC будет таким же, как у администратора GMC, который выдает членство. Если создатель указывает срок действия как NULL, выдается GMC с бесконечным сроком действия.

    Если одноранговому узлу выдан GMC, срок действия которого истекает до значения времени существования присутствия, адреса однорангового узла недоступны в структурах PEER_MEMBER, возвращаемых в перечислении, инициированного вызовом PeerGroupEnumMembers. Это происходит из-за того, что сведения о присутствии не публикуются в этом случае, даже если флаг PEER_DISABLE_PRESENCE не задан.