Mi experiencia con Vaultwarden

En abril del año pasado, migré mi gestor de contraseñas desde KeePassXC a Vaultwarden. Mi objetivo en esta entrada de blog es hablar de mi experiencia con este software y cómo me he adaptado a él en los últimos meses, desventajas y también ventajas de haber migrado a Vaultwarden.

Bitwarden es una solución cloud para guardar contraseñas en línea. Siempre he sido escéptico ante este tipo de herramientas cloud, debido al riesgo que podría suponer colocar las llaves que protegen toda tu vida digital en una máquina que no controlas. Incluso aunque Bitwarden sea abierto y hable de las formas que tienen de cifrar la información, me resulta un poco incómoda la idea de que los datos se guarden fuera de mi control.

Vaultwarden es una reimplementación alternativa de toda la API de Bitwarden en Rust. Bitwarden dispone de varias aplicaciones oficiales para PC, móvil, tablet y navegador que interactúan con la nube de Bitwarden usando distintas APIs, y Vaultwarden se ocupa de volver a implementar toda esa capa de servicios. De este modo, si configuramos un cliente o extensión de Bitwarden para que, en vez de hablar con el servidor central, hable con nuestro servidor alternativo, todo funcionará, porque el cliente no sabrá que está hablando con un Vaultwarden en vez de con un Bitwarden normal. Además, es mucho más ligera en consumo de recursos que una instalación on-premises de Bitwarden.

Mi manera de desplegar Vaultwarden es en mi infraestructura personal. Lo despliego como un servicio de Docker más, que en condiciones normales consume menos de 100 MB de RAM y que tiene un consumo de CPU mínimo. Si se abre en un navegador web la dirección en la que está instalado, se puede utilizar desde la web, y se ve como un Bitwarden normal y corriente, aunque conectado con la instancia local en vez de con los servidores principales de Bitwarden. Todas las aplicaciones de Bitwarden oficiales tienen una forma de personalizar el endpoint de conexión, lo que permite usar las aplicaciones oficiales de Bitwarden para Windows, Mac, Linux, iOS y navegador con un servidor propio en vez de con el servidor central.

Sobre KeePassXC, me parece un software excelente y seguiré recomendándolo. Ya hablé en el pasado en este blog de mi experiencia y mi forma de usar KeePassXC para todo, tanto como almacén de contraseñas como bóveda para guardar archivos secretos, como certificados, claves RSA y otro tipo de información que me gustaría almacenar de forma segura en un gestor de identidades. Ante todo, es una forma simple de que usuarios avanzados tengan su primer contacto con este tipo de aplicaciones, tan recomendadas bajo mi punto de vista.

Sin embargo, una de las razones que motivó mi cambio a Vaultwarden fue el hecho de que cuando tienes varios dispositivos, tengas que ocuparte manualmente de hacer la sincronización entre cada dispositivo. Debido a que KeePass es una aplicación offline, requiere un archivo de base de datos (KBDX) para funcionar, y opcionalmente un archivo de clave (KEY) para desbloquear la base de datos. Si bien puedes utilizar herramientas cloud externas para mantener sincronizada la base de datos entre múltiples dispositivos e incluso entre móviles y tablets, el proceso es manual y requiere usar aplicaciones separadas. En el peor de los casos, puedes sincronizar manualmente las bases de datos cada vez que hagas una modificación a la misma.

Y es que en realidad tener que depender de servicios de sincronización cloud externos que funcionan mal resultaba problemático. Cuando utilizaba Android, utilizaba KeePass2Android para guardar mi base de datos en Dropbox y mantenerla sincronizada con otros ordenadores conectados a la misma cuenta de Dropbox. KeePass2Android era un software tan valioso que una vez al año hacía una donación para agradecer el esfuerzo de mantenerla. En mi etapa iOS, al final las herramientas de sincronización eran más limitadas y acepté copiar las cosas a mano, algo que resultaba problemático cuando una contraseña se quedaba en un dispositivo pero todavía no se copiaba al resto.