¿Debo eliminar los datos sincronizados localmente si el usuario no puede iniciar sesión?

7

Estoy creando una aplicación para Mac que sincroniza los documentos del usuario desde un servicio en la nube de terceros. Cuando lo configure, sincronizará todos sus documentos en el disco duro local, en cuyo punto podrá acceder a ellos en el Finder.

A los efectos de esta pregunta, puedes imaginar que estoy creando un cliente de Dropbox de terceros. No lo soy, pero es una buena aproximación para esta pregunta. Los puntos clave son que no controlo el servicio en la nube y que se accede a los datos a través del Finder una vez sincronizado.

Supongamos, en un momento posterior, el servidor rechaza el token de OAuth / contraseña guardada, y el usuario no puede proporcionar una contraseña que funcione. Después de un cierto número de intentos o de pasar cierto tiempo, ¿debo eliminar todos los documentos sincronizados para evitar el uso indebido?

Escenario 1: un atacante adivina la contraseña de un usuario y la utiliza para iniciar sesión en el servicio en la nube a través de mi aplicación y accede a los documentos del usuario. El usuario llega a conocer y cambia su contraseña / revoca tokens de autenticación. En este punto, el usuario desearía que sus documentos se eliminen del disco duro del atacante. O si el usuario vende / regala / presta su computadora portátil a alguien, se olvida de cerrar sesión en mi aplicación, y se da cuenta más tarde y cambia su contraseña / revoca tokens de autenticación, querría que los documentos ya sincronizados se eliminen de la disco duro de la computadora portátil.

Escenario 2: un pirata informático se hace cargo de la cuenta y bloquea al usuario. O el proveedor de la nube comete un error y bloquea al usuario de su cuenta. Entonces, el usuario querría una copia de seguridad de sus datos en su disco duro local, en lugar de perder el acceso a sus preciosos datos.

Si elimino todos los documentos sincronizados existentes, le he fallado al usuario en el escenario 2. Si no elimino todos los datos sincronizados, le he fallado al usuario en el escenario 1.

¿Hay una mejor práctica para esto? ¿Una guía general sobre qué deben hacer los clientes a los servicios en la nube si el usuario ya no puede iniciar sesión?

Tenga en cuenta que no puedo guardar los datos en el disco duro de Mac, pero denegar el acceso, ya que el usuario accede a los datos a través del Finder, no a través de mi aplicación. Las opciones son eliminar o no eliminar los datos.

    
pregunta Vaddadi Kartick 02.12.2016 - 10:49
fuente

3 respuestas

2

Debes mantener al usuario en control. Dicho esto, puedes hacer lo siguiente:

  1. Nunca elimines los archivos sincronizados por el usuario automáticamente
  2. Puede eliminar los archivos sincronizados a petición del usuario, de manera similar a como se borran los datos en el teléfono de manera remota.

De esta manera, el usuario tiene el control de sus archivos, y puede eliminar los archivos de otros dispositivos si falla la sesión.

Esto tendría que ser una función, ya que el usuario en su panel de control puede ver varios dispositivos / ubicaciones que sincronizan sus archivos, y luego puede elegir qué ubicaciones / dispositivos deberían borrar la copia de seguridad si el inicio de sesión fallado.

Esto le da al usuario un buen control, ya que primero puede actualizar su contraseña en todos los dispositivos y luego solicitar que se elimine de cualquier otro lugar, luego de que su sincronización funcionó con una nueva contraseña.

En el escenario más simple, no sería bueno eliminar la copia de seguridad, porque esto deja al usuario en el polvo y lo mantiene fuera de control.

    
respondido por el Aria 02.12.2016 - 13:35
fuente
3

El escenario 1 solo funcionará si el atacante es estúpido. Si un hombre logra robar la contraseña de alguien y sincronizar una carpeta en la nube en su máquina, lo siguiente que debe hacer es guardar el contenido de los datos robados en otra parte solo para asegurarse de que haya una sincronización problema no pudo cambiarlo.

En ese caso, borrar la carpeta sincronizada no tendrá ningún efecto ...

    
respondido por el Serge Ballesta 02.12.2016 - 15:11
fuente
1

En lugar de eliminar los datos, es más rápido, más seguro y más fácil simplemente cifrar la versión local de los datos. El cliente nunca escribe la clave de descifrado en el disco duro local, sino que la descarga del servidor cada vez que se autentica.

Si el cliente se desconecta del servidor, no tiene acceso a la clave de descifrado y se elimina de manera efectiva. Si el cliente se vuelve a conectar, pueden volver a autenticarse para recuperar la clave de descifrado.

Además, podría decirle al usuario que conserve una clave de respaldo para descifrar en caso de que el servicio en la nube se desconecte unilateralmente o si un hacker desconecte al usuario.

El inconveniente de esto es que el cliente tuvo que estar conectado al servidor al menos una vez al inicio del programa para recuperar la clave, de lo contrario, la carpeta del usuario permanecerá inaccesible hasta que el usuario se conecte al servidor en la nube o hasta que ingrese su clave de copia de seguridad.

    
respondido por el Lie Ryan 03.12.2016 - 08:41
fuente

Lea otras preguntas en las etiquetas