Almacenamiento de contraseñas encriptadas [duplicado]

1

Estaba pensando en alternativas a los hashes para almacenar contraseñas, y me preguntaba si había algún error de seguridad enorme con uno que se me ocurrió.

Si, cuando el usuario crea su cuenta, su contraseña se usa como una clave para cifrarse y almacenarse de esa manera, podría validar los inicios de sesión descifrando la contraseña almacenada con la contraseña dada y verificando si coinciden.

¿Hay algún problema teórico inherente con esta idea, suponiendo que el cifrado sea inmune a cosas como colisiones y ataques de claves relacionadas?

    
pregunta J. Doe 08.06.2018 - 01:18
fuente

2 respuestas

1
  

¿Hay algún problema teórico inherente con esta idea, suponiendo que el cifrado sea inmune a cosas como colisiones y ataques de claves relacionadas?

Sí, hay un problema con esta idea incluso teniendo en cuenta sus suposiciones.

¡Solo usa bcrypt por el amor de Dios!

Algunos problemas: La forma en que ha indicado su "solución" de encriptación parece implicar que solo está utilizando una sola clave y no IV aleatorio ni nada de eso. En ese caso, eres vulnerable a los ataques de diccionario y otros ataques de fuerza bruta (aún eres vulnerable incluso con sal, ya que el "hash" probablemente sea rápido). Además, si no hay nada que actúe como un "salt", cada vez será "hashing" la misma contraseña y el mismo "hash", lo que también es malo.

    
respondido por el hft 08.06.2018 - 05:10
fuente
0

Usted todavía tiene que hacer que sea computacionalmente costoso, como lo sería en un hash lento, como BCrypt o SCrypt. Puede usar un KDF con una cantidad de iteraciones ajustadas para alcanzar el nivel de gasto que sus usuarios tolerarán sin notar un retraso en el rendimiento.

Tenga en cuenta que todo lo que esté cifrado por la contraseña del usuario es solo un texto cifrado para usted, por lo que quizás tenga un uso limitado.

    
respondido por el vrtjason 08.06.2018 - 01:49
fuente

Lea otras preguntas en las etiquetas