Saltar al contenido principal
GitHub
PROJECT // 03

Password Vault

Zero-Knowledge Cryptography & WebAuthn

React
TypeScript
Web Crypto
Vista del proyecto

Password Vault

Zero-Knowledge Cryptography & WebAuthn

Abrir en otra pestaña

Desplaza para Entrar

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

React
01
TypeScript
02
Web Crypto
03
AES-GCM
04
WebAuthn
05
Firebase
06

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 — AES-GCM Core
// 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.