¿Puede el número de iteración de pbkdf2 ser una falla de seguridad? [cerrado]

1

Ahora estoy trabajando en un proyecto que implica guardar dos hash pbkdf2 diferentes en el servidor. Me preguntaba si hay una conexión matemática entre un hash de 1000 iteraciones de una contraseña determinada y un hash de 1001 iteraciones de la misma contraseña.

    
pregunta Tomer waldman 23.01.2017 - 14:02
fuente

1 respuesta

1

La estructura de iteración de PBKDF2 tiene este aspecto ( enlace ):

U_1 = PRF (P, S || INT (i))
U_2 = PRF (P, U_1)
... 
U_{c - 1} = PRF(P, U_{c - 2})
U_c = PRF (P, U_{c-1}) 

Donde:

  • PRF es la función pseudoaleatoria (es decir, la función hash subyacente)
  • P es la contraseña
  • S es la sal
  • i es el número de bloque

Dado U_ {c - 1} y U_c, podría intentar encontrar P tal que U_c = PRF (P, U_ {c-1}) en lugar de tener que iterar 1000 veces como normalmente tendrías que hacerlo con PBKDF2 .

Esto esencialmente derrota al tener múltiples iteraciones en el KDF, reduciendo el número de llamadas al PRF de 1000 veces por intento a la menor diferencia entre el recuento de iteraciones de dos hashes.

Una mejora si necesita múltiples PBKDF2 con un recuento de iteraciones diferente de la misma contraseña, es variar el Salt.

    
respondido por el Lie Ryan 23.01.2017 - 15:39
fuente

Lea otras preguntas en las etiquetas