Por qué existe siquiera una función de derivación
Las credenciales humanas provienen de un espacio mucho más pequeño y predecible que las claves de cifrado aleatorias. Una función de derivación de claves salva esa brecha combinando lo que escribes con una sal única y un coste computacional deliberado.
El coste es el sentido. Hace cada intento costoso, de modo que un atacante que prueba una lista de credenciales probables paga ese precio en cada intento en lugar de probar millones por segundo.
Qué hace realmente cada función
PBKDF2 está ampliamente estandarizado, bien entendido y disponible casi en todas partes. Eleva el coste principalmente mediante el cómputo repetido: un número de iteraciones alto aplicado a una función hash.
Argon2id añade un coste de memoria ajustable junto al cómputo. Exigir una cantidad sustancial de memoria por intento reduce la ventaja del hardware paralelo especializado, que es de donde el adivinado a gran escala obtiene su economía.
Por qué los números de iteraciones no son comparables entre algoritmos
Es tentador comparar un número de iteraciones de PBKDF2 con un parámetro de tiempo de Argon2id, pero miden cosas distintas y los números no son intercambiables.
Lo que importa es el coste total impuesto por intento en hardware de atacante realista, que depende de la memoria, el paralelismo y los parámetros de tiempo en conjunto. Un conjunto de parámetros publicado puede evaluarse; un solo número citado sin contexto no.
Las partes que importan tanto como el algoritmo
- Una sal aleatoria única por credencial, de modo que el precálculo no gane nada.
- Parámetros publicados, y una vía de migración declarada cuando se elevan.
- Versionado, para que los usuarios existentes puedan actualizarse en lugar de quedar varados.
- Dónde se almacena la clave derivada entre sesiones, que es un control completamente aparte.
- La fortaleza de la propia credencial, que ninguna función de derivación puede fabricar.
Leer la afirmación
- Comparar números de iteraciones entre algoritmos distintos como si fueran equivalentes.
- Llamar fuerte a cualquier PIN humano corto porque hay una función de derivación implicada.
- Suponer que un algoritmo moderno compensa una credencial débil o reutilizada.
El resumen práctico
Argon2id con parámetros de memoria y tiempo sensatos es el mejor valor predeterminado para los nuevos diseños, y un PBKDF2 correctamente configurado con un número de iteraciones alto sigue siendo defendible.
Cualquiera de las dos opciones queda socavada por una credencial de cuatro dígitos. La función de derivación eleva el coste por intento; no reduce lo pocos que son los intentos.
Maya comienza con una prueba no sensible: «Busca parámetros publicados y una estrategia de migración». Luego, Maya sigue la segunda comprobación: «Confirma las sales aleatorias únicas». Este escenario ficticio ilustra el proceso de decisión; no es un informe de pruebas de producto.
- Comparar directamente números de iteraciones entre algoritmos distintos
- Llamar fuerte a cualquier PIN humano porque existe un KDF
¿Qué usa NullVault?
El diseño de Android especifica la derivación de claves Argon2id de memoria intensiva.
¿Qué debería verificar antes de fiarme de «PBKDF2 frente a Argon2id para las contraseñas de bóveda»?
Para «PBKDF2 frente a Argon2id para las contraseñas de bóveda», verifica el elemento protegido tras un bloqueo completo, identifica cada copia restante y confirma la recuperación antes de eliminar un original irremplazable. Los controles exactos dependen del dispositivo, la versión del sistema operativo y el modelo de almacenamiento descritos en esta guía.
¿Elimina «PBKDF2 frente a Argon2id para las contraseñas de bóveda» todas las demás copias?
No. Al considerar «PBKDF2 frente a Argon2id para las contraseñas de bóveda», trata las exportaciones, las fototecas en la nube, los mensajes, las descargas, los destinatarios, las copias de seguridad y las carpetas de elementos eliminados como copias o límites de almacenamiento separados que requieren su propia revisión.