Construyendo una red anónima

1

Imagina que estás construyendo Facebook, excepto que no quieres revelar la identidad del usuario para publicaciones y comentarios. Todavía desea verificar la organización de cada usuario. Por ejemplo, si el usuario se registra con [email protected] , solo le permitirá escribir mensajes después de verificar su correo electrónico. Esta es mi configuración inicial.

  1. Posts y Comments tienen el campo authorId .
  2. Debe haber una opción para convertirse en "no anónimo" y revelar su dirección de correo electrónico al escribir una publicación.

Debido al número 2, vacilo en deshacerme de la dirección de correo electrónico de un User una vez que se haya verificado. En este momento, creo que la mejor solución es ejecutar un trabajo cron periódicamente y eliminar el campo userId de las publicaciones y comentarios anónimos que sean más antiguos que una cierta cantidad de tiempo. Luego, cuando la base de datos está en peligro, nadie podrá asociar una publicación anónima con un usuario registrado.

No sé si es la mejor manera de hacerlo y quería buscar ayuda de expertos en seguridad. Cualquier ayuda será muy apreciada !!

    
pregunta Maximus S 23.08.2015 - 04:28
fuente

2 respuestas

1

Si te entiendo bien de lo que quieres, asegúrate de que ningún dato de usuario esté comprometido, incluso si tu sitio es pirateado. Primero debe tener claro que esto solo puede aplicarse si detecta hacks en su sitio. Si el atacante logra piratear su sitio y no lo nota, el atacante puede rastrear toda la actividad en este sitio y probablemente desanonizar a los usuarios que usan el sitio pirateado.

También debe tener claro que los usuarios pueden ser anonimizados por la forma en que escriben, es decir, el estilo de escritura, el momento en que escriben, los temas que conocen y los argumentos que utilizan. Por lo tanto, la anonimización completa probablemente no será posible porque la información que los usuarios proporcionan de forma inadvertida sobre sí mismos.

Aparte de eso, nunca debe almacenar ninguna información que pueda utilizarse para facilitar la desanonización. Es decir, debe olvidar la dirección de correo electrónico proporcionada por el usuario inmediatamente después de haber enviado el correo de verificación y solo debe asociar un token aleatorio con la cuenta. Y no debe asociar ninguna publicación por parte del usuario con la cuenta o entre sí porque el análisis de varias publicaciones por el mismo usuario proporciona mucha más información sobre el usuario de lo que haría una sola publicación.

Por supuesto, estas restricciones en la información que almacena afectan la usabilidad del sitio. Además, nunca puede proporcionar alguna recuperación de contraseña, ya que no tiene ninguna información sobre el usuario (sin correo electrónico, sin preguntas secretas). También puede tener nada como todas las publicaciones del usuario o incluso las publicaciones recientes porque no asocia las publicaciones entre sí. E incluso puede ser difícil para un usuario editar sus propias publicaciones, aunque vea esta pregunta por posibles caminos.

Al final, es posible que deba encontrar un equilibrio entre la anonimización y la facilidad de uso. Pero para hacer esto, debe analizar a fondo la situación, es decir, hacer una evaluación de la cantidad de anonimización que debe proporcionar y los riesgos que usted y sus usuarios están dispuestos a asumir al costo de una mejor usabilidad. Y, por supuesto, los usuarios deben ser conscientes de los riesgos, así que no reclame el anonimato completo si no puede proporcionarlos.

    
respondido por el Steffen Ullrich 23.08.2015 - 10:29
fuente
1

Requisito 2: divulgación de nombre y correo electrónico

La opción 2 se puede hacer fácilmente sin que su servidor tenga que recordar siempre UserId & correo electrónico del usuario:

Cuando el usuario desea publicar un mensaje no anónimo, el usuario proporciona su nombre y dirección de correo electrónico. Si la identificación de identidad es un problema, el usuario puede conservar un certificado que demuestre que posee el nombre de usuario dado y adjuntarlo a sus publicaciones atribuidas.

Requisito 1: anonimato

La primera opción podría implementarse a través de las claves API:

  • Una vez que se verifique la dirección de correo electrónico del usuario, proporcione al usuario un montón de claves API;
  • Haga que el servidor olvide el correo electrónico del usuario y otros datos de identidad;
  • El usuario puede publicar uno o más mensajes usando la clave API recibida, nuevamente el servidor olvida cualquier información que vincule una clave API con otra; y
  • El usuario puede solicitar más claves API cuando sea necesario.

Requisito de Nic Barker: historial personal de publicaciones, comentarios recibidos

Un usuario puede realizar un seguimiento de sus propios mensajes almacenando los identificadores de los mensajes publicados o almacenando los identificadores en las claves de la API o en los alias utilizados para publicar mensajes en un almacén de datos controlado por él mismo (ya sea su propio dispositivo o un almacén cifrado en el servidor).

    
respondido por el Kasper van den Berg 23.08.2015 - 12:53
fuente

Lea otras preguntas en las etiquetas