Hash de contraseña: usando 2 sales [duplicado]

20

Estoy desarrollando un servicio de autenticación.

Sé que la práctica de generar una sal única por usuario, almacenada en la base de datos con la contraseña de hash, para evitar ataques de tablas arco iris.

Acabo de tener la idea de agregar un segundo salt, dentro del código, que no existe en la base de datos, por lo que si la base de datos se filtra (pero no el código), incluso las contraseñas débiles no son vulnerables a la fuerza bruta.

Me parece una buena idea, pero como no soy un experto, me gustaría tener la confirmación de personas que son buenas en seguridad de la información.

    
pregunta IggY 09.09.2015 - 19:05
fuente

1 respuesta

33

Tu segunda "sal" es un concepto que se ha descrito como "salpicadura". Básicamente, funciona, pero tiene el inconveniente de implicar la administración de claves (el "pimiento" es realmente lo que los criptógrafos llamarían una clave secreta): cuando actualizas el software o cambias a máquinas más nuevas, tienes que cuidar de transferir el pimiento. valor, de lo contrario hará que todos sus hash no sean verificables.

Es mejor hacer el picado primero calculando el hash de la manera normal, y luego calculando HMAC sobre él , con la pimienta como llave. En la base de datos, almacena los parámetros de hash (sal, recuento de iteraciones) y la salida HMAC (pero no el valor de hash en sí, por supuesto). Esto funciona, en particular, porque HMAC es determinista.

    
respondido por el Tom Leek 09.09.2015 - 19:25
fuente

Lea otras preguntas en las etiquetas