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


Принцип работы групповой безопасности

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

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