¿Cómo transformar un hash en una contraseña utilizable?

1

Estaba leyendo sobre PwdHash y me inspiró a crear un pequeño proyecto donde ingresas una contraseña maestra y un alias fácil de recordar en un hash de contraseña, como bcrypt, y luego obtienes un hash.

Hasta ahora todo bien; ese hash debería ser bastante seguro y nadie debería poder adivinar mi contraseña maestra.

El problema es que este hash no es realmente una contraseña utilizable. Por ejemplo, el sitio web tiene todo tipo de requisitos para la contraseña, como no más de 20 caracteres, debe contener símbolo, número, minúscula y mayúscula, no debe comenzar con un número, etc. ...

Entonces: hash + requisitos = contraseña utilizable

Pero tengo una preocupación. ¿Es posible que al aplicar los requisitos al hash para generar una contraseña utilizable, perderé parte de la seguridad que produce el hash?

Por ejemplo, digamos que el hash tiene 60 caracteres y la contraseña no puede tener más de 20 caracteres. ¿Es malo tomar solo los 20 primeros caracteres del hash? ¿Sería mejor producir los 20 caracteres de la contraseña combinando los 60 caracteres del hash?

Entonces la pregunta general es:

¿Cómo debo proceder para crear una contraseña utilizable a partir de ese hash? ¿Tengo que preocuparme?

    
pregunta Gudradain 22.01.2015 - 05:46
fuente

3 respuestas

1

Para un buen algoritmo de hash (y, a menos que haya hecho su propio hash, probablemente esté usando uno suficientemente bueno), todos los bits deben ser pseudoaleatorios.

Una contraseña de 20 caracteres es más débil que una contraseña de 60 caracteres, pero una contraseña de 20 caracteres es igual de segura que otra si son igualmente aleatorias. Combinar un hash de 60 caracteres en 20 caracteres no agregaría más aleatoriedad que solo tomar los primeros 20 caracteres.

Cuando se trata del diseño de contraseñas, las amenazas principales (adivinanzas estratégicas de su contraseña, fuerza bruta, prueba de su contraseña en todos sus perfiles en línea) se pueden mitigar simplemente usando una contraseña diferente, larga y aleatoria para cada sitio web. El nivel de aleatoriedad proporcionado al truncar una función de hash es suficiente.

    
respondido por el James Mishra 22.01.2015 - 08:01
fuente
0

Deja de agregar complejidad inútil

Esto solo agregaría un paso para construir la contraseña ...

En caso de fuerza bruta, el atacante podría usar la misma herramienta que has elegido para realizar este paso automáticamente.

De hecho, esto no agregará mucho trabajo para el atacante, pero al agregar un paso para los usuarios, incluso podrían contribuir a revelar la contraseña por error del usuario.

Use frases de contraseña en lugar de contraseñas siempre que sea posible.

    
respondido por el F. Hauri 23.03.2015 - 09:42
fuente
-1

Para empezar, no estoy convencido de las afirmaciones de PwdHash. La idea no es mala pero su implementación suena inestable. Le sugeriría crear su propia implementación específica para el sitio en lugar de usar una extensión de navegador que genere contraseñas para usted. Es fácil de hacer (lo hago yo mismo). El beneficio de esto es que no tiene que saltar a través de los aros para hacer que su contraseña sea compatible con los requisitos de complejidad. Además, no está bloqueado en el algoritmo que PwdHash elija usar. Si se te ocurre algo, siempre será menos predecible que PwdHash en principio.

    
respondido por el Alex Urcioli 22.01.2015 - 05:55
fuente

Lea otras preguntas en las etiquetas