La afirmación es extraña, ya que proviene de un reflejo ritualista reflejo de la longitud de las claves.
El texto completo de la página es:
Especifica la longitud en bytes de la salida que se generará. Normalmente, la longitud de la clave debe ser mayor o igual a la longitud de salida de la función de compendio subyacente, de lo contrario, un atacante podría simplemente intentar forzar la clave con fuerza bruta. De acuerdo con PKCS # 5, la seguridad está limitada por la longitud de salida de la función de resumen subyacente, es decir, la seguridad no se mejora si se elige una longitud de clave estrictamente mayor que la longitud de salida de resumen. Por lo tanto, cuando se utiliza PKCS5 para el almacenamiento de contraseñas, basta con almacenar valores iguales a la longitud de salida del resumen, no se gana nada almacenando valores más grandes.
Hay algo de confusión aquí, de hecho. Veamos los detalles:
-
PBKDF2 es una Key Derivation Function : su salida puede tener una longitud configurable y debe ser una" clave ".
-
La clave para la criptografía no debe ser demasiado pequeña, para evitar ser inherentemente débil. Por ejemplo, una clave DES, que tiene 56 bits de longitud (ok, 64 bits, pero se ignoran 8 bits, por lo que 56 bits "reales"). Sin embargo, más allá de los 100 bits, la búsqueda exhaustiva es tan ridículamente cara que deja de ser una amenaza.
-
De manera similar, PBKDF2 puede ser "atacado" con un esfuerzo de costo 2n si la función hash subyacente tiene una salida de n bits. Esto es totalmente inviable incluso si se usa MD5 (128 bits ya son suficientes para eso). Pero, en una cierta luz burocrática , PBKDF2 tiene "fuerza n bits".
Así es el razonamiento: si usa PBKDF2 para generar una clave que no tenga al menos n bits, entonces su clave es "más débil" de lo que pudo haber producido PBKDF2.
Ahora sería un poco estúpido negarse a generar una clave de 128 bits con PBKDF2 / SHA-256 porque SHA-256 ofrece "seguridad de 256 bits". Pero tiene algún tipo de sentido retorcido, si se ve a través de un prisma de procedimiento por un auditor frustrado que no tiene idea de lo que realmente es una clave .
Resumen: ignora ese extraño pasaje del documento. Use PBKDF2 con HMAC / SHA-256 o HMAC / SHA-512, lo que haga flotar su bote (SHA-512 podría ser un poco más fuerte contra el atacante que usa GPU, ya que se venden a principios de 2013, porque actual GPU son malos haciendo aritmética de 64 bits). Genere la longitud de clave que necesita para el algoritmo en cuestión. De todos modos, 128 bits son más que suficientes para claves simétricas.