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.
Propósito
Convierte contraseñas humanas (baja entropía) en claves de cifrado suficientemente largas resistiendo ataques de diccionario y rainbow-table.
Mecanismo
Un KDF toma una contraseña, una sal, parámetros de iteración/coste y longitud de salida, y produce una clave pseudoaleatoria. Las iteraciones multiplican el coste por intento; la sal evita tablas precalculadas; los KDF con exigencia de memoria (scrypt/Argon2) además resisten el paralelismo GPU/ASIC.
Casos de uso
- Almacenamiento cifrado de contraseñas de usuario
- Derivación de clave maestra para cifrado de disco
- Derivación de claves de sesión TLS (HKDF)
- Generación de tokens API
Ejemplos
- entrada
password + salt + 100000 itersOutput256-bit keyIterations multiply the cost
Errores comunes
- Hashing passwords with a raw SHA (no salt, no iterations)
- Use PBKDF2, scrypt, or Argon2
Términos relacionados
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. GLOSARIO
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
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
Hash Salting
El salting de hash añade una sal aleatoria a la entrada del hash para que entradas idénticas produzcan hashes distintos, frustrando las tablas arcoíris y la detección de colisiones. GLOSARIO
Herramientas relacionadas
Derivación de claves PBKDF2
Derive a key from a password using PBKDF2 (RFC 2898) with Web Crypto API. Gratis, privado y 100% del lado del cliente. HERRAMIENTA
Derivación de claves scrypt
Derive a key from a password using scrypt (memory-hard KDF). Gratis, privado y 100% del lado del cliente. HERRAMIENTA
Generador de hash bcrypt
Hash passwords with bcrypt or verify bcrypt hashes. Gratis, privado y 100% del lado del cliente. HERRAMIENTA