Función de derivación de claves

PBKDF2

PBKDF2 (Password-Based Key Derivation Function 2) convierte una contraseña en una clave criptográfica aplicándole un hash repetidamente, para que adivinarla por fuerza bruta lleve deliberadamente más tiempo.

Una contraseña por sí sola no es una buena clave de cifrado: suele ser corta, adivinable, y mucho más pequeña que los 256 bits que necesita un cifrado como AES-256. Una función de derivación de claves (KDF) resuelve esto convirtiendo una contraseña en una clave de tamaño fijo, y — de forma crítica — haciendo ese proceso deliberadamente lento.

PBKDF2 lo consigue aplicando una función hash (normalmente HMAC-SHA256) a la contraseña miles o cientos de miles de veces seguidas ('iteraciones'), combinada con una sal para evitar ataques con tablas precalculadas. Cada iteración añade coste computacional, así que un atacante que intente adivinar una contraseña por fuerza bruta tiene que repetir todas esas iteraciones en cada intento. La recomendación actual de OWASP para PBKDF2-HMAC-SHA256 es un mínimo de 600.000 iteraciones.

V4ult usa PBKDF2-HMAC-SHA256 con 600.000 iteraciones (con el email del usuario como sal) para derivar la clave que envuelve la clave simétrica de la bóveda a partir de la contraseña maestra — esta es la derivación que realmente protege el contenido de la bóveda. Por separado, V4ult también pasa la contraseña maestra por una segunda pasada de PBKDF2 con solo 1 iteración para generar un Hash de Contraseña Maestra, que se envía al servidor únicamente para autenticar la sesión; ese hash de 1 iteración no es lo que protege el cifrado de la bóveda, lo hace el de 600.000.

Ventajas

Relacionado

Conocimiento cero (Zero-Knowledge)V4ultAES-256

Preguntas frecuentes

¿Qué es PBKDF2?

Una función de derivación de claves que convierte una contraseña en una clave criptográfica aplicándole un hash repetidamente (con sal), haciendo que adivinarla por fuerza bruta sea deliberadamente lento.

¿Por qué importa el número de iteraciones?

Cada iteración añade coste computacional a cada intento de adivinar la contraseña. OWASP recomienda actualmente un mínimo de 600.000 iteraciones para PBKDF2-HMAC-SHA256.

¿Cuántas iteraciones de PBKDF2 usa V4ult?

600.000 iteraciones de PBKDF2-HMAC-SHA256 para derivar la clave que protege el contenido de la bóveda. Una pasada separada, de 1 sola iteración, genera un Hash de Contraseña Maestra usado solo para autenticarse con el servidor — no es lo que protege el cifrado de la bóveda.