Almacenar datos sin saber nada sobre el usuario

-1

Permítame comenzar diciendo que esta es realmente mi primera incursión en el cifrado.

He escrito sistemas de nombre de usuario / contraseña, y demás, y estoy familiarizado con las contraseñas de sal y hash ... pero nunca he hecho nada con el cifrado.

Tengo una idea para un sistema que quiero construir ... y tengo (lo que creo que es) una solución inteligente para almacenar los datos del usuario sin saber nada de ellos ... pero no estoy seguro si Estoy abriendo la puerta a algún tipo de falla de "prometer no mirar".

Mi idea es esta: quiero poder almacenar información encriptada sin saber nada sobre el usuario.

El diseño en mi cabeza es el siguiente: el usuario configura una cuenta (nombre de usuario y contraseña). Se crea un bloc cifrado, codificado con la contraseña, del lado del cliente (cifrado de clave secreta a través de libsodium en JavaScript). El nombre de usuario está en hash (del lado del cliente ... ¿tal vez incluido con la contraseña?). Este hash y el blob encriptado se envían al servidor, donde se vinculan entre sí en la base de datos. Cuando el usuario inicia sesión, el hash se envía al servidor y el blob encriptado se envía nuevamente al navegador, donde se utiliza la contraseña para descifrar el blob. Todo esto, obviamente, sucede a través de HTTPS.

¿Hay algún defecto aquí? ¿Estoy pasando por alto algo?

Quiero poder responder, incluso a una citación del gobierno, con "No sé. Y no puedo averiguarlo".

Por supuesto, el malware en el extremo del cliente sería un problema ... pero no he podido pensar en eso ... y ese no es el problema que estoy tratando de resolver ahora. . Solo quiero encontrar una manera de almacenar información de clientes sin saber nada, en absoluto, sobre mis clientes.

    
pregunta Nathan Pinkerton 20.12.2015 - 01:49
fuente

1 respuesta

0

En aras de la coherencia, llamaré al operador de infraestructura (usted) Bob , al cliente Alice y al gobierno personalizado Mallory . Esta respuesta solo describe un ataque muy simple para el escenario del gobierno, ignorando otros aspectos de su servicio.

La configuración es como la describe: Bob opera la infraestructura en la que Alice almacenó un blob encriptado. El acceso de Alice se realiza a través de una aplicación entregada por Bob a través de HTTPS.

Mallory tiene los recursos para obligar a Bob a cooperar de cualquier manera, y desea obtener acceso al contenido del blob encriptado almacenado en el servidor de Bob.

Para hacerlo, Mallory cambia la aplicación que Bob entrega a través de HTTPS de una manera que expone las claves de cifrado (dependiendo de los recursos de Mallory de una manera que no es fácilmente detectable, algunos meses deberían ser suficientes). Recuerde, Mallory está en posesión de las credenciales de Bob y, por lo tanto, puede atenderlas adecuadamente. Mallory recibirá la llave la próxima vez que Alice use el servicio de Bob. Usando la tecla, Mallory ahora desencripta el blob y hace el baile feliz.

El escenario es no es improbable , si Mallory realmente quiere los datos de Alice.

    
respondido por el dst 20.12.2015 - 02:26
fuente

Lea otras preguntas en las etiquetas