¿NIST realmente recomienda PBKDF2 para el hashing de contraseñas?

8

Dudamos entre BCrypt y PBKDF2 para el hashing de contraseñas. En muchos foros y blogs, la gente dice algo como "En su Publicación especial SP 800-132 NIST básicamente recomienda usar PBKDF2 para el hashing de contraseñas ".

Este puede ser un argumento muy importante para nuestro cliente (adoran los estándares). Pero aún no puedo leer esta recomendación en texto sin formato ... Por lo tanto, no puedo reclamarlo cómodamente. En resumen NIST más o menos decir:

  

El material de clave derivado se llama clave maestra (MK), denotado como   mk El MK se usa 1) para generar una o más Protección de Datos   Claves (DPK) para proteger datos, o 2) para generar una clave intermedia para   proteger uno o más DPK existentes o generados desde el MK usando un   Función de derivación de clave aprobada (KDF) como se define en [2]. El MK deberá   no ser utilizado para otros fines.

¿Existe tal recomendación o esto es solo un mito?

    
pregunta Lachezar Balev 17.05.2012 - 13:16
fuente

3 respuestas

11

La recomendación es que PBKDF2 se use como un algoritmo para generar una clave criptográfica a partir de una contraseña, no para crear una contraseña para el almacenamiento seguro con fines de autenticación. (¿Confío en que también esté tomando sal?) Entonces, la respuesta es no, para su caso de uso no hay tal recomendación. Esto no significa que no sea adecuado, pero no hay una recomendación de NIST para citar.

    
respondido por el David M 17.05.2012 - 23:19
fuente
3

Creo que estás encontrando esto :

  

Los verificadores DEBERÁN almacenar secretos memorizados en una forma que sea resistente a   Ataques fuera de línea. Los secretos DEBEN ser procesados con un valor de sal usando una   función hash aprobada como PBKDF2 como se describe en [SP800-132] . los   el valor de sal SERÁ un valor aleatorio de 32 bits (o más) generado por un   Generador de bits aleatorio aprobado y se almacena junto con el hash   resultado. Al menos 10.000 iteraciones de la función hash DEBEN ser   realizado Una función de clave codificada (por ejemplo, HMAC), con la clave almacenada   por separado de los autenticadores hash (por ejemplo, en un hardware   módulo de seguridad) DEBERÍA usarse para resistir aún más los ataques de diccionario   contra los autenticadores hash almacenados.

    
respondido por el GustavoTM 22.12.2016 - 21:29
fuente
0

Si bien el NIST SP 800-132 no se refiere específicamente al hash de contraseñas, y especialmente no a las contraseñas para la autenticación, existe una fuerte recomendación de usar PBKDF2, especialmente debido a su resistencia a la fuerza bruta.

El próximo NIST SP 800-63B borrador < em> (Gestión de la Autenticación y Lifecycle de las Directrices de Identidad Digital ), sin embargo, se explican PBKDF2 , pero también solicita un pimiento basado en HMAC :

  

Los verificadores DEBERÁN almacenar secretos memorizados en una forma que sea resistente a   Ataques fuera de línea. Los secretos DEBEN ser procesados con un valor de sal usando una   función hash aprobada como PBKDF2 como se describe en [SP 800-132].   El valor de sal DEBE ser un valor aleatorio de 32 bits o más generado por   un generador de bits aleatorio aprobado y almacenado junto con el hash   resultado. Al menos 10.000 iteraciones de la función hash DEBEN ser   realizado Una función de clave codificada (por ejemplo, HMAC [FIPS1981]), con   clave almacenada por separado de los autenticadores hash (por ejemplo, en un   módulo de seguridad de hardware) DEBERÍA usarse para resistir aún más el diccionario   ataques contra los autenticadores hash almacenados.

Hay mucho que discutir sobre esto, pero en cualquier caso, solicita una "función hash aprobada" que descarta a scrypt (parcialmente, ya que utiliza un paso PBKDF2) y bcrypt . Y me encanta el hecho de que pide un almacenamiento separado de un pimiento. Por eso reviví mi intento de definir un formato común PBKDF2 : enlace

    
respondido por el eckes 19.03.2017 - 11:37
fuente

Lea otras preguntas en las etiquetas