PBKDF2
PBKDF2 (Password-Based Key Derivation Function 2) es el KDF estandarizado en PKCS#5 que deriva claves de contraseñas mediante HMAC iterado, muy usado para hash de contraseñas y derivación de claves.
Propósito
Deriva una clave de alta entropía a partir de una contraseña de baja entropía, con el número de iteraciones multiplicando el coste de la fuerza bruta.
Mecanismo
DK = T1 || T2 || ..., donde Ti = U1 ⊕ ... ⊕ Uc, U1 = HMAC(P, salt || i), Uj = HMAC(P, U_{j-1}). El número de iteraciones c suele ser ≥ 100000. Es solo CPU-hard y no resiste el paralelismo de GPU/ASIC.
Casos de uso
- Derivación de claves WPA2/3 de Wi-Fi
- Copias de seguridad de contraseñas en iOS/Android
- Derivación de claves de 1Password
- Almacenamiento de claves PKCS#12
Ejemplos
- entrada
password, salt, c=600000Output256-bit derived keyOWASP 2023 recommends ≥ 600000
Errores comunes
- Iteration count too low (e.g., 1000)
- Use at least 600000 (OWASP 2023)
Términos relacionados
scrypt
scrypt es una función de derivación de claves (KDF) con alta exigencia de memoria diseñada por Colin Percival: resiste la fuerza bruta paralela en GPU/ASIC mediante grandes requisitos de memoria y se usa para el hash de contraseñas y la derivación de claves. GLOSARIO
Key Derivation
La derivación de claves es el proceso de generar claves de cifrado a partir de contraseñas de baja entropía o claves maestras de alta entropía, usando KDFs (p. ej., PBKDF2, scrypt, Argon2) para elevar el coste de la fuerza bruta. GLOSARIO
Salt
Una sal es un valor aleatorio que se añade durante el hash de contraseñas para que contraseñas idénticas produzcan hashes distintos, anulando las tablas arcoíris y la detección de contraseñas repetidas. GLOSARIO
HMAC
HMAC (código de autenticación de mensajes basado en hash) es un MAC que combina una función hash con una clave secreta, proporcionando integridad y autenticidad. GLOSARIO