Si roban la base de datos
Se llevan bloques cifrados y verificadores SRP. Ni contraseñas, ni claves, ni títulos, ni direcciones. Para abrir algo harían falta 600.000 iteraciones de PBKDF2 por cada intento de contraseña maestra.
Conocimiento cero · Autoalojado
Vaul es una bóveda personal que se cifra en tu dispositivo y se guarda en tu propio servidor. La contraseña maestra no viaja por la red ni una sola vez, ni siquiera al crear la cuenta. Lo que hay en la base de datos son bloques ilegibles.
El registro está cerrado: para entrar hace falta una cuenta o una invitación.
Cómo funciona
El navegador deriva una clave maestra con PBKDF2-SHA256 y 600.000 iteraciones. Ese cálculo es deliberadamente lento: es la única barrera si alguien se llevara la base de datos.
El acceso usa SRP-6a con un grupo de 2048 bits. El servidor comprueba que conoces la contraseña sin recibirla, y de paso tú compruebas que el servidor es el auténtico. Si alguno de los dos falla, no hay sesión.
Cada entrada se cifra con AES-256-GCM y un vector de inicialización distinto antes de subir. La base de datos ni siquiera tiene columnas para el título o la dirección: no existen, porque no se pueden indexar sin romper el modelo.
Seguridad
Un gestor de contraseñas se juzga por lo que hace cuando algo sale mal. Esto es lo que pasa en cada caso.
Se llevan bloques cifrados y verificadores SRP. Ni contraseñas, ni claves, ni títulos, ni direcciones. Para abrir algo harían falta 600.000 iteraciones de PBKDF2 por cada intento de contraseña maestra.
Sólo se vuelve a envolver una clave de 32 bytes. Las entradas no se tocan, porque están cifradas con una clave de bóveda independiente. Cambiarla es instantáneo aunque tengas mil credenciales.
Se pierde la bóveda. No hay recuperación ni puerta trasera, y eso es exactamente lo que hace que el modelo funcione: si alguien pudiera devolverte el acceso, también podría dárselo a otro.
Puedes ver cuentas, suspenderlas, borrarlas e invitar a gente. Lo que no puedes —ni tú ni nadie— es leer la bóveda de otro: el servidor no tiene la clave.
Se bloquea sola por inactividad y olvida la clave; el token vive en memoria y nunca en disco, así que recargar obliga a desbloquear. El portapapeles se limpia solo después de copiar.
La búsqueda ocurre en tu navegador, sobre lo ya descifrado. El servidor no puede indexar lo que no entiende, así que tampoco puede saber qué buscaste.
Funciones
Rechazo de módulo para que todos los caracteres sean igual de probables, y medidor de entropía en bits.
TOTP según RFC 6238, calculado en el navegador y comprobado contra los vectores oficiales del estándar.
Puntuación sobre 100 con detección de contraseñas débiles y repetidas, calculada en el cliente.
Además de credenciales: notas seguras y tarjetas con titular, número, caducidad y CVV.
CSV de KeePass, 1Password, Bitwarden y LastPass, más copia cifrada propia que sigue siendo ilegible.
Cuentas, suspensiones e invitaciones de un solo uso. Gestiona personas, nunca contenido.
Apps
Dos vías disponibles hoy y dos en preparación. Prefiero decir qué falta a fingir que ya está.
Funciona en cualquier navegador moderno y se instala como aplicación. El service worker guarda sólo el armazón: la bóveda no queda nunca en disco, así que sin conexión abre pero no muestra credenciales. Es deliberado.
Abrir la bóveda
Servidor en Go con PostgreSQL, levantado con docker compose. Los
contenedores escuchan sólo en 127.0.0.1 y la base de datos no
publica ningún puerto; nginx pone el TLS por delante.
Manifest V3 para Chrome y Edge, con autocompletado de credenciales en la propia página. Lo delicado no es el autocompletado, sino decidir cómo comparte la sesión con la web sin que la clave acabe donde no debe.
Binario universal para Apple Silicon e Intel, con su resumen SHA-256 publicado para que puedas comprobar que descargaste lo que crees. Sin firma de Apple, macOS avisará la primera vez que lo abras.
Preguntas
No, y no es una cuestión de confianza sino de diseño. El cifrado ocurre en tu navegador con una clave que se deriva de tu contraseña maestra, y esa contraseña no se envía nunca. El servidor recibe texto cifrado y lo guarda tal cual. Aunque quisiéramos leerlo, no tendríamos con qué.
La bóveda se pierde. No hay correo de recuperación ni pregunta de seguridad, porque cualquiera de esas dos cosas sería una forma de que un tercero recuperase tu acceso. Guarda una copia de la contraseña en un sitio físico seguro y exporta una copia cifrada de vez en cuando.
Porque la Web Crypto del navegador no ofrece Argon2, y la alternativa sería meter un WASM de terceros justo en la ruta donde se deriva la clave maestra: una dependencia externa en el punto más crítico del sistema. Con 600.000 iteraciones, PBKDF2-SHA256 sigue por encima de lo que recomienda OWASP.
Desde la propia aplicación, con el botón de exportar. La copia sale cifrada: es un fichero inerte sin tu contraseña maestra, así que puedes guardarlo donde quieras. También puedes exportar en CSV para llevártelo a otro gestor, pero eso sale en texto plano y la aplicación te avisa dos veces antes de hacerlo.
Esta instancia tiene el registro cerrado. Sólo se puede entrar con una invitación de un solo uso que emita el administrador. Es una bóveda personal, no un servicio abierto.
Sí. Es Go, PostgreSQL y un docker compose; con nginx y un
certificado delante, funciona en cualquier servidor. El repositorio incluye las
configuraciones de nginx que se usan aquí.
Sin telemetría, sin terceros, sin una clave que no sea tuya.
Abrir la bóveda