¿Necesito un archivo salt cuando hasheado una contraseña generada aleatoriamente?

3

Tengo contraseñas almacenadas en mi base de datos que son muy largas, únicas y generadas por un CSPRNG .

¿Necesito usar una sal antes de mezclarlos?

Mi entendimiento es que usualmente usas una función hash de la siguiente manera:

hash(salt + password)

donde + es simplemente la concatenación de las 2 cadenas (o matrices de bytes). Dado que mis contraseñas ya se generan de forma aleatoria, es inútil prefijarlas con una sal que es otro valor aleatorio.

    
pregunta Gudradain 12.08.2014 - 05:14
fuente

1 respuesta

2

El propósito de la distribución de sal cuando las contraseñas de hash es evitar que contraseñas idénticas den como resultado los mismos valores de hash. Si todas sus contraseñas son, como usted dice, largas y generadas por un CSPRNG, entonces no tendrá contraseñas idénticas en su base de datos para diferentes usuarios; Todos serán únicos, y el uso de sal no agrega nada a la seguridad de estas contraseñas.

Sin embargo, puede haber una advertencia. Y es decir, si tiene algunas contraseñas que no son aleatorias. I.E., si las contraseñas aleatorias que genera son contraseñas iniciales, pero los usuarios tienen la capacidad de elegir una contraseña diferente. Si este es el caso, entonces deberías más seguramente ingresar tus contraseñas, incluyendo las generadas aleatoriamente. Hay dos razones para esto.

  1. Agregar lógica de bifurcación para eliminar algunas contraseñas pero no otras es una complejidad innecesaria, y la complejidad innecesaria es costosa y perversa. Al aprovechar todo, no está reduciendo ni aumentando la seguridad de las contraseñas aleatorias, sino simplificando la lógica de la aplicación y reduciendo la posibilidad de errores, seguridad u otros.

  2. Esto podría drásticamente reducir la seguridad de las contraseñas no aleatorias. Si se conoce su esquema y los hashes y sales son extraídos por un atacante, podrán determinar inmediatamente qué contraseñas (las contraseñas con sal) no se generan de forma aleatoria y deben ser atacadas. Si todas las contraseñas están incluidas, las contraseñas aleatorias serán indistinguibles de las contraseñas definidas por el usuario.

respondido por el Xander 02.12.2014 - 17:48
fuente

Lea otras preguntas en las etiquetas