Me gustaría compartir documentos dentro de los grupos y asegurarme de que el miembro de cada grupo solo pueda acceder a los documentos compartidos en su grupo.
Situation:
Hay5participantes(A,B,C,D).Haydosgrupos(azul:A,B,D,rojo:D,C).AyBsolopuedenverdocumentosazules(comoDocument_1)yCsolopuedenverdocumentosrojos(comoDocument_2).Dpuedeverlosdocumentoscompartidosenambosgrupos.
Enfoque:Elsiguienteenfoqueescercanoalenfoqueen
Ejemplo para grupo azul:
- A genera un par de claves. Clave pública: pk_a. Clave privada / secreta: sk_a
- B genera el par de claves pk_b, sk_b
- C genera el par de claves pk_c, sk_c
- pk_a, pk_b, pk_c se publican en un servidor de claves, visible para el público
- A (o cualquier miembro del grupo azul) genera una clave síncrona s1
- A calcula pk_b (s1) (s1 cifrado con pk_b) y pk_c (s1).
- A publica pk_b (s1) y pk_c (s1) en el servidor
- B y C ahora pueden tomar esos valores y descifrarlos usando theis sk
- A, B, C ahora conocen S1 y pueden compartir datos dentro del grupo azul
- Si están publicando datos en el grupo azul, pueden usar su sk para indicar a los demás que realmente fueron enviados por ellos
- hacemos lo mismo para el grupo rojo con la clave síncrona S2
Este enfoque fue simplificado. En realidad, también nos aseguraríamos de que cada uno de los usuarios recibiera la clave síncrona correcta (considere que A podría estar comprometido y trate de excluir a B del grupo azul)
Problema: D tiene el S1 y S2. D puede comunicarse tanto en el grupo rojo como en el azul. ¿Cómo podemos asegurarnos de que D no le está dando S1 a C?