Compartir a través de


Funcionamiento de la seguridad de grupo

Los grupos del mismo nivel requieren que cada miembro tenga un certificado específico, que se denomina Certificado de miembro del grupo (GMC). El certificado GMC garantiza que todos los registros intercambiados entre pares estén firmados digitalmente. La clave pública de un elemento del mismo nivel se incluye en las estructuras que se pasan como parte de la comunicación entre elementos del mismo nivel, incluida la PEER_CREDENTIAL_INFO.

Un GMC se puede emitir en una cadena. Por ejemplo, un creador puede emitir un GMC al administrador A, que puede emitir un GMC al administrador B, que puede emitir un GMC al miembro M. La cadena gmC resultante es: creator-A-B-M>>>, que tiene una longitud de 4. La longitud de la cadena es importante, ya que no puede ser superior a 24. Si el 24º administrador de una cadena intenta emitir un GMC a un miembro, PeerGroupIssueCredentials o PeerGroupCreateInvitation devuelve PEER_E_CHAIN_TOO_LONG.

También se puede emitir un GMC llamando a PeerGroupIssueCredentials. Un GMC implica la pertenencia al usuario en el grupo para el que se emite el GMC y puede tener una duración finita o infinita. La actividad de miembro del grupo no puede ser mayor que la duración especificada en el GMC.

Nota

La duración de GMC infinita se establece actualmente en 1000 años.

 

La actividad de los miembros del grupo está limitada por la duración de GMC e incluye lo siguiente:

  • Operaciones de registro : un elemento del mismo nivel no puede publicar información en un grupo una vez expirada la pertenencia a grupos o publicar registros que tengan una duración mayor que la duración de la pertenencia a grupos del mismo nivel.
  • Operaciones de pertenencia: un administrador de grupos no puede emitir una pertenencia que tenga una duración posterior a la fecha especificada en la pertenencia al administrador del grupo. Por ejemplo, si un administrador tiene 500 horas restantes en su duración de GMC, todas las pertenencias emitidas deben ser inferiores a 500 horas.

Dado que un miembro del grupo no puede tener una duración mayor que el administrador que invita a ese miembro del grupo, se recomienda establecer la duración de GMC de un administrador como infinita o durante una duración muy larga. El creador del grupo tiene una duración infinita de forma predeterminada.

Renovación de la pertenencia a grupos

Para renovar las credenciales de un administrador o miembro cuya vigencia de GMC esté lista para expirar, tiene las dos opciones siguientes:

  • Llame a PeerGroupIssueCredentials y pase la identidad del miembro cuya duración esté lista para expirar. Si las credenciales se especifican como NULL y la información de pertenencia del mismo nivel está disponible para el grupo, el tiempo de renovación se establece en la misma duración especificada en las credenciales de miembro publicadas anteriormente. Si se debe especificar un período de duración diferente, se debe proporcionar una nueva estructura de PEER_CREDENTIAL_INFO que contenga la nueva duración y, a continuación, se publica un nuevo GMC para el miembro.

    La función PeerGroupIssueCredentials toma opcionalmente la marca PEER_GROUP_STORE_CREDENTIALS, que publica automáticamente las nuevas credenciales del miembro de la base de datos de grupo. Cuando el miembro se conecta al grupo la próxima vez, por primera vez o después de estar sin conexión, el miembro obtiene el GMC actualizado de la base de datos.

  • Llame a PeerGroupCreateInvitation para pasar la identidad del miembro cuya duración de GMC está lista para expirar. Si la expiración especificada en la invitación es NULL, la duración de duración del GMC es la misma que la del administrador GMC que emite la pertenencia. Si el creador especifica la expiración como NULL, se emite un GMC con una duración infinita.

    Si se emite un elemento del mismo nivel un GMC que expira antes del valor de duración de presencia, las direcciones del mismo nivel no están disponibles en las estructuras de PEER_MEMBER devueltas en la enumeración iniciada por una llamada a PeerGroupEnumMembers. Esto sucede porque la información de presencia no se publica en este caso, incluso si no se establece la marca PEER_DISABLE_PRESENCE.