El Desafío
Bóveda digital de credenciales con cifrado zero-knowledge en el cliente. Garantiza que ninguna contraseña o clave secreta viaje jamás en texto plano al servidor o a la base de datos, combinando autenticación biométrica y generación de códigos TOTP 2FA.
Stack Tecnológico
Cifrado Simétrico AES-GCM-256 + PBKDF2 (100.000 iteraciones)
La clave maestra nunca se almacena: se deriva mediante PBKDF2 con sal criptográfica única y se usa para descifrar la clave de bóveda mediante AES-256-GCM con vectores de inicialización (IV) únicos por entrada.
Web Crypto API + WebAuthn + Firebase Sync
Utiliza primitivas nativas de la Web Crypto API del navegador para máximo rendimiento en hardware, autenticación biométrica FaceID/TouchID mediante WebAuthn y sincronización remota de blobs cifrados en Firebase.
// cryptoVault.ts — Zero-Knowledge AES-GCM & PBKDF2
export const encryptSecret = async (plainText: string, masterKey: CryptoKey) => {
const iv = crypto.getRandomValues(new Uint8Array(12));
const encoded = new TextEncoder().encode(plainText);
const cipherBuffer = await crypto.subtle.encrypt(
{ name: "AES-GCM", iv, tagLength: 128 },
masterKey,
encoded
);
return {
cipherText: arrayBufferToBase64(cipherBuffer),
iv: arrayBufferToBase64(iv),
};
};Conclusión del Proyecto
Seguridad Militar en el Navegador
Acceso instantáneo con huella dactilar o biometría, protección absoluta contra filtraciones en servidor y soporte para códigos de doble factor en tiempo real.