Pregunta de seguridad de derivación de clave LastPass

4

He investigado acerca de los administradores de contraseñas y, por supuesto, me he topado con LastPass. Hay muchas preguntas y respuestas sobre la seguridad de LastPass, pero hasta donde sé, ninguno de ellos habló directamente sobre esta implementación específica. Cuando leí esto me sorprendió bastante

  

LastPass ha optado por usar SHA-256, un algoritmo de hashing más lento que brinda más protección contra ataques de fuerza bruta. LastPass utiliza la función PBKDF2 implementada con SHA-256 para convertir su contraseña maestra en su clave de cifrado. LastPass realiza x número de rondas de la función para crear la clave de cifrado, antes de que se realice una única ronda adicional de PBKDF2 para crear su hash de inicio de sesión .

Así es como debería funcionar (si se entiende correctamente) de acuerdo con su sitio web

  1. Use PBKDF2 en la contraseña maestra, con el nombre de usuario como salt
  2. Iterar al menos 5000 veces (o superior si está configurado)
  3. Master Key es el resultado de las iteraciones
  4. Haga una ronda adicional de PBKDF2 y envíe esto al servidor para la autenticación
  5. El servidor realiza 100,000 rondas adicionales de PBKDF2 con una sal diferente &erio; Scrypt con parámetro desconocido desde la violación de seguridad

  6. Almacene y / o compare en / con la base de datos (use HSM para alguna parte aquí o debajo del 5.)

  7. Enviar respuesta al cliente con bóveda (cifrada)

  8. El cliente se descifra con la clave maestra

Aunque en teoría todo es bueno y seguro, sabemos que LastPass tuvo violaciones de seguridad en el pasado. La Clave maestra solo se procesa una ronda más antes de enviarla a LastPast. Suponiendo que un atacante podría obtener acceso a la infraestructura de LastPass y leer los valores recibidos antes del paso 5), ¿esto pone en peligro la clave maestra?

Creo que tal vez, pero no podemos hacer un ataque de diccionario a la clave, por lo que el vector de ataque clásico en PBKDF2 no se aplica. A menos que tengamos hardware personalizado realmente sólido, de modo que podamos hacer un ataque de diccionario a la contraseña maestra, a pesar de las 5000 rondas. Pero por otro lado, estar a una vuelta de la llave maestra parece demasiado cerca para la comodidad.

¿Existe alguna amenaza realista para la Clave maestra en tales circunstancias?

    
pregunta John 21.10.2015 - 21:04
fuente

1 respuesta

4

Primero, tenga en cuenta que 99.99 ...% de los sitios transmiten su contraseña al servidor en texto simple (a través de una conexión SSL, por supuesto). Allí el servidor realmente tiene su contraseña de texto sin cifrar durante la autenticación. Así que incluso ese hash aumenta la seguridad.

Dando un paso atrás, la razón por la que realizamos numerosas rondas para el hashing o la derivación clave para las contraseñas es que estamos pasando de un conjunto relativamente pequeño de entradas posibles (es decir, contraseñas elegidas por nosotros, los usuarios estúpidos). Como el tamaño del conjunto es pequeño, debe aumentar el gasto computacional de un diccionario o un ataque de fuerza bruta haciendo que el cálculo de cada hash (mucho) sea más costoso. Hacemos esto repitiendo el hash una y otra vez.

En la situación de Lastpass sobre la que preguntas, la entrada al hash es la salida de otro hash. Por lo tanto, el espacio de entrada está relativamente bien distribuido en los 256 bits completos. Al menos será después de que elimines las contraseñas (sin sal sería susceptible a un ataque de precomputación ). Eso significa que un ataque de fuerza bruta tendría que probar el espacio completo de 256 bits para revertir el hash. Esto es demasiado grande para los ataques de precomputación (por ejemplo: uso de tablas de arco iris ).

Ahora, si se desarrolla un ataque que le permita revertir SHA-256, eso aumentaría el riesgo en esta situación, junto con muchos, muchos otros.

    
respondido por el Neil Smithline 21.10.2015 - 21:27
fuente

Lea otras preguntas en las etiquetas