Derivación de Claves PBKDF2
Genere claves criptográficas seguras a partir de contraseñas
Documentación PBKDF2
PBKDF2 (Password-Based Key Derivation Function 2) es un estándar criptográfico definido en RFC 8018. Transforma una contraseña en una clave criptográfica segura mediante hash iterativo, haciendo los ataques de fuerza bruta computacionalmente costosos.
PBKDF2 es ampliamente adoptado en protocolos de seguridad incluyendo cifrado WiFi WPA2, protección de datos iOS, macOS FileVault y numerosos sistemas empresariales de almacenamiento de contraseñas. Su estado aprobado por NIST lo convierte en la opción preferida para aplicaciones sensibles al cumplimiento.
Cómo Funciona PBKDF2
PBKDF2 aplica iterativamente una función pseudoaleatoria (HMAC-SHA256 por defecto) para generar una clave derivada:
- Toma una contraseña, sal, conteo de iteraciones y longitud de clave deseada como entradas
- Aplica HMAC con la contraseña como clave y sal + contador como mensaje
- Repite la operación HMAC por el número especificado de iteraciones
- Concatena los resultados intermedios para producir la clave derivada final
Iteraciones Recomendadas por OWASP (2023)
El Open Web Application Security Project (OWASP) proporciona directrices mínimas de iteración basadas en la fortaleza del algoritmo hash. Estos valores están calibrados para asegurar protección adecuada contra ataques de hardware moderno:
| Algoritmo Hash | Iteraciones Mínimas | Recomendado |
|---|---|---|
| PBKDF2-SHA256 | 310,000 | 600,000+ |
| PBKDF2-SHA384 | 210,000 | 500,000+ |
| PBKDF2-SHA512 | 120,000 | 210,000+ |
| PBKDF2-SHA1 | 1,300,000 | No Recomendado |
Casos de Uso Comunes
- Derivación de claves de cifrado para AES/ChaCha20 a partir de contraseñas de usuario
- Almacenamiento y verificación de contraseñas en sistemas de autenticación
- Generación de claves determinísticas a partir de contraseñas maestras (gestores de contraseñas)
- Derivación de claves para cifrado de disco y contenedores seguros
Comparación KDF: PBKDF2 vs Bcrypt vs Argon2
| Característica | PBKDF2 | Bcrypt | Argon2 |
|---|---|---|---|
| Estándar | RFC 8018 | OpenBSD | RFC 9106 |
| Memory-Hard | No | Limitado (4KB) | Sí |
| Resistencia GPU | Bajo | Moderado | Alto |
| Mejor Caso de Uso | Cumplimiento FIPS/NIST | Sistemas legados | Nuevas aplicaciones |
Mejores Prácticas de Seguridad
- Siempre use una sal criptográficamente aleatoria de al menos 16 bytes (128 bits)
- Almacene la sal junto con la clave derivada - no es un secreto
- Aumente las iteraciones anualmente para mantener el ritmo con las mejoras de hardware
- Considere Argon2id para nuevos sistemas que requieran protección memory-hard contra ataques GPU
Referencias Técnicas
Herramientas Relacionadas
Generador de hash de contraseña
Generar y verificar hashes de contraseña seguros con Bcrypt, Scrypt y Argon2
Generador HMAC
Herramienta de generación HMAC en línea que soporta MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3 y RIPEMD-160
Cifrado/Descifrado AES
Cifrar y descifrar texto de forma segura usando el algoritmo AES
Generador de hash SHA
Herramienta en línea de generación de hash SHA que soporta SHA-1, SHA-256, SHA-384, SHA-512