¿Es más seguro almacenar información valiosa en un cliente inseguro o enviar los datos a través de Internet?

3

Fondo:

Estoy creando una aplicación web segura con el propósito de actuar como un almacenamiento sin conocimiento para datos pequeños (estamos hablando de algunos bytes). Dado que todo el cifrado y el descifrado se producen en el lado del cliente, para que el usuario pueda administrar sus secretos, los datos deben descifrarse para poder realizar búsquedas, etc.

El servidor conoce un nombre cifrado y un valor cifrado.

Todos los datos están encriptados una vez por el cliente, luego encriptados una vez usando un secreto compartido de SRP y luego enviados a través de SSL.

Soluciones / inquietudes:

Hay dos formas en que esto se puede hacer a partir de lo que sé.

A : envíe el nombre y el valor al cliente y déjelos almacenar durante la sesión. Los nombres se descifran y se muestran, mientras que los valores permanecen cifrados. Debido a la naturaleza no segura de javascript y por razones de UX, esto sería tan seguro como descifrar todos los datos y almacenarlos. Dado que el usuario recibe todos los valores, existe un mayor riesgo de que ocurra un ataque sin conexión. Esto también dificulta el control de que los valores nunca existan más tiempo que la sesión (por ejemplo, cómo iOS Safari almacena las páginas web en un estado activo, incluso cuando la aplicación está desactivada).

B : envía solo el nombre cifrado y un token. Los nombres se almacenan y se muestran al usuario en forma descifrada. Cada vez que el usuario desea ver el valor descifrado, se realiza una solicitud al servidor que lo envía. El valor nunca se almacena en el cliente. Esto limita el riesgo de ataques sin conexión, ya que el usuario nunca tendrá todos los valores almacenados a la vez. El peor escenario sería un valor almacenado. El problema que veo con esto es que habrá una cantidad considerable de datos enviados a través de Internet, lo que podría ser un mayor riesgo que almacenarlo sin conexión.

Aclaración de la pregunta:

¿Es más seguro almacenar los datos en el dispositivo del usuario sin poder revocar su acceso a los datos?

or

¿Enviar información valiosa muchas veces más a través de Internet?

    
pregunta Alex 22.05.2015 - 14:50
fuente

1 respuesta

2

Mientras los datos viajen dentro de las conexiones SSL / TLS configuradas correctamente, no hay ningún problema de seguridad con respecto al aumento en la cantidad de datos enviados a través de Internet, el único inconveniente sería una mayor carga en su servidor.

Si no puede confiar en el almacenamiento local, desde el punto de vista de seguridad, la obtención de datos del servidor cuando sea necesario parece ser la mejor opción.

    
respondido por el WhiteWinterWolf 22.05.2015 - 17:08
fuente

Lea otras preguntas en las etiquetas