Sugeriría una solución que incluya lo siguiente:
- Archivo de la base de datos KeePass almacenado en una computadora local con cifrado de disco completo (por ejemplo, Veracrypt)
- Archivo de clave KeePass almacenado en un disco USB externo
- Cloud Storage 1 (por ejemplo, Dropbox) para guardar el archivo de la base de datos
- Cloud Storage 2 (por ejemplo, Google Drive) para guardar una copia de seguridad del archivo clave
- Habilite 2FA en ambas cuentas de almacenamiento en la nube (la aplicación de autenticador móvil es preferible a los códigos de mensajes de texto)
Como todos mencionaron, tener una contraseña maestra fuerte para su archivo de base de datos es muy importante para frustrar los ataques de fuerza bruta. Pero si combinas eso con un archivo clave, entonces se vuelve prácticamente imposible la fuerza bruta.
Si Cloud Storage 1 está comprometido, entonces el archivo de base de datos sin el archivo clave será imposible de aplicar, a menos que exista una vulnerabilidad de seguridad grave en la implementación del cifrado de Keepass.
Si Cloud Storage 2 está comprometido, entonces el archivo de clave en sí mismo es inútil sin el archivo de base de datos. Es solo una extensión de su contraseña maestra, no contiene ningún dato.
Yo diría que sería altamente improbable que ambos Cloud Storages se vieran comprometidos al mismo tiempo por el mismo atacante. Tendrías que ser un individuo de alto perfil para eso (por ejemplo, político, multimillonario, agente secreto, etc.) :)
Si no eres uno de los anteriores y estás dispuesto a sacrificar un poco de seguridad a cambio de facilitar el acceso (por ejemplo, sigues olvidando dónde colocas el maldito disco USB), guarda el archivo de la base de datos y el archivo de la clave en la computadora local Sin embargo, en este caso, la computadora local se convierte en el punto débil; si se ve comprometido, el atacante tendrá acceso al archivo clave, por lo que solo tendrá que forzar la contraseña maestra en la base de datos, por lo que es mejor establecer una contraseña segura. Esto sería lo mismo que no usar un archivo clave en absoluto.