¿Por qué LastPass almacena los hashes de contraseña en el servidor?

4

Mientras leía sobre la violación de LastPass, me preguntaba por qué la tienda LastPass reforzaría los hashes de contraseña en el lado del servidor. ¿Podrían solo almacenar los datos cifrados AES y cuando el usuario obtiene sus datos cifrados podría hacer el fortalecimiento de la contraseña y descifrarlos y volver a cifrar todo en el lado del cliente para que la única información a la que LastPass esté expuesto sea el AES de 256 bits cifrado? Datos y eso sería lo único que almacenarían en caso de una violación.

Mientras escribo esta publicación, estoy pensando que tal vez el hash almacenado es parte del paso de autenticación para no entregar los datos cifrados AES a nadie, pero ¿esa sería la única razón para almacenar el hash en el servidor?

Suponiendo que hay un método alternativo para autenticar datos encriptados específicos para el usuario que intenta acceder a él, por ejemplo. una cadena aleatoria compartida entre el cliente y el servidor que no se deriva de la contraseña maestra almacenada en el lado del servidor, ¿podría el hash / fortalecimiento de la contraseña + cifrado / descifrado luego realizarse en el lado del cliente sin necesidad de almacenar nada más en el lado del servidor que ¿Los AES de 256 bits?

¿Por qué no sería más fácil para alguien deducir la contraseña solo del hash que del producto cifrado AES final que se cifró con ese hash de contraseña reforzado? Mi conjetura es que los datos cifrados AES tardarían más tiempo en romperse que su hash solo por el paso adicional de calcular el hash y luego cifrarlo. Entonces, ¿no sería ese otro punto para no almacenar los hash reforzados en el servidor sin importar qué tan complicado sea el algoritmo de hash, ya que es una función de la contraseña maestra?

    
pregunta Wadih M. 23.10.2015 - 04:22
fuente

2 respuestas

2

Sí, tiene razón: el valor de hash es para la autenticación, de modo que los datos encriptados no se entreguen sin que se proporcionen las credenciales correctas al servicio.

Otro servicio similar, Roboform, tiene diferentes contraseñas de autenticación y descifrado para cada cuenta. Sin embargo, hubo un error grave en el uso de la interfaz web: la contraseña maestra se envió a Robofom , aunque no estaban destinados a recibirlo jamás .

Consulte esta respuesta para obtener todos los detalles del proceso de autenticación y cifrado de LastPass, aunque se derive de Security Now. podcast.

A partir de estos detalles, mi mejor suposición es que la clave de descifrado LastPass se calcula de la siguiente manera:

DK = PBKDF2(HMAC-SHA256, password, email, <user set>, 256)

y la clave de autenticación proporcionada por el cliente JavaScript o la aplicación antes de que el servicio LastPass le brinde acceso a su blob encriptado:

AK = PBKDF2(HMAC-SHA256, DK, password, <user set>, 256)

Sin embargo, esto se almacena como hash en su backend:

Stored_AK = PBKDF2(HMAC-SHA256, AK, salt, 100000, 256)

Como puede ver, hay mucho trabajo por hacer para pasar de la contraseña de texto claro al formulario donde se almacena el hash en el servidor. El número de rondas del lado del cliente (según lo indicado por <user set> ) también se puede aumentar, dependiendo de las capacidades del dispositivo menos poderoso de cada usuario, esto se vuelve a incluir en el cliente, y finalmente al lado del servidor antes de la comparación con el hash almacenado. . Esto significa que todavía hay mucho trabajo por hacer si un atacante obtiene acceso a los hashes almacenados en el servidor ( como pueden haber hecho ya ).

    
respondido por el SilverlightFox 23.10.2015 - 10:09
fuente
1

Los hashes comprometidos se utilizaron para autenticar al usuario.

  

La investigación ha demostrado, sin embargo, que las direcciones de correo electrónico de la cuenta LastPass, los recordatorios de contraseña, las sales de servidor por usuario y los hashes de autenticación estaban comprometidos

Si no desea proporcionar los datos cifrados a todos, debe realizar algún tipo de autenticación. Por supuesto, puede haber una segunda contraseña que se utiliza para descifrar los datos y, por supuesto, se puede hacer en el lado del cliente. Pero esto plantearía la pregunta de por qué existe la necesidad de un servicio como LastPass, ya que la entrega de datos encriptados podría realizarse mediante cualquier tipo de almacenamiento en línea.

Este es un caso típico de comodidad de usuario frente a compromiso de seguridad.

    
respondido por el Noir 23.10.2015 - 09:06
fuente

Lea otras preguntas en las etiquetas