Se necesita una aclaración para el documento técnico de NIST "Recomendación para la derivación de clave basada en contraseña"

5

¿Cuáles son algunos ejemplos de casos de uso que el NIST admite en esta política / papel blanco sobre PBKDF2?

  

Esta Recomendación especifica una familia de clave basada en contraseña   Funciones de derivación (PBKDF) para derivar claves criptográficas de   Contraseñas o frases de contraseña para la protección de almacenados electrónicamente   datos o para la protección de claves de protección de datos.

Tendría una mejor oportunidad de entender este párrafo si supiera lo que está excluido implícitamente de esa lista de aplicaciones específicas.

Los ejemplos concretos de lo que está dentro y fuera del alcance serían de gran ayuda.

    
pregunta random65537 29.09.2011 - 04:48
fuente

1 respuesta

2

Una Función de Derivación de Clave convierte algunos datos secretos en más datos secretos, y se usa para hacer claves del tamaño apropiado Otras llaves que no tengan el tamaño adecuado. Un ejemplo de KDF es el llamado "PRF" dentro de SSL / TLS : se usa para convertir cualquier clave compartida que se haya creado entre el cliente y el servidor (utilizando el cifrado RSA o Diffie-Hellman) en las claves simétricas que se utilizarán posteriormente para el cifrado simétrico y la verificación de integridad en la conexión establecida.

Un KDF basado en contraseña (de ahí el nombre "PBKDF") es un KDF en el que el material de origen es una "contraseña", es decir, un dato que se conserva en el cerebro de un ser humano, y (generalmente) se escribe en un teclado por el propietario del cerebro. Este no es el caso de SSL. Un KDF basado en contraseña se utiliza cuando desea realizar un cifrado de datos "bloqueado" por una contraseña. Por ejemplo, cuando "encripta" un archivo con una contraseña (por ejemplo, la "protección con contraseña" en Word, un archivo Zip protegido con contraseña o un anillo de claves PGP o una clave privada SSH almacenada en un archivo con "protección con frase de contraseña"), puede estar seguro de que hubo un KDF basado en contraseña.

El trabajo de un KDF basado en contraseña es:

  1. aceptar como entrada una secuencia de caracteres (de longitud semi-arbitraria), y generar una secuencia de bits de la longitud adecuada para el algoritmo criptográfico deseado (por ejemplo, 128 bits para el cifrado AES);
  2. "proteja" la contraseña contra los ataques del diccionario siendo apropiadamente lenta y costosa (un atacante podría intentar adivinar la contraseña probando contraseñas potenciales; queremos que cada prueba sea pesada y costosa para él), y usando una sal (de modo que atacar dos archivos cifrados es dos veces más caro que atacar a uno).

PBKDF2 garantiza la segunda propiedad a través de un "número de iteraciones" configurable y una sal (ambos parámetros generalmente se almacenan en un encabezado público para el archivo cifrado).

Un uso desviado pero común de PBKDF2 es para hash de contraseñas. Se trata de usar la salida PBKDF2 como un token de verificación de contraseña; se aceptará una contraseña si la derivación a través de PBKDF2 dará el mismo valor. PBKDF2 no fue diseñado inicialmente para eso, pero aún así hace un trabajo aceptable, aunque bcrypt es posiblemente mejor (vea esta respuesta ).

    
respondido por el Thomas Pornin 29.09.2011 - 15:16
fuente

Lea otras preguntas en las etiquetas