Debes considerar lo que estás tratando de lograr al almacenar cada parte en particular en una ubicación específica y luego proceder en consecuencia.
El archivo de base de datos de contraseñas en sí es importante pero no es sensible, particularmente porque está cifrado. En el caso ideal, tener acceso a ese archivo no le otorga ninguna habilidad en particular. Cambia a menudo, y por lo tanto necesita ser respaldado regularmente; como tal, debería incluirse en sus copias de seguridad regulares.
El archivo de clave es sensible e importante. Sin él, el archivo de base de datos de contraseñas no tiene sentido, ya que el archivo de clave forma parte de la frase maestra utilizada para desbloquear la base de datos de contraseñas. Sin embargo, cambia muy raramente y, para todos los efectos, puede considerarse estático, por lo que no es necesario realizar una copia de seguridad de forma regular.
La frase de contraseña introducida por el usuario es sensible e importante, por las mismas razones que se aplican al archivo de clave. Además, no se almacena en una computadora, sino ( con suerte ) exclusivamente en el cerebro del usuario. El usuario puede cambiarlo si lo desea, pero es responsable de asegurarse de que lo recuerdan.
Sólo las tres partes juntas son realmente significativas. No puede hacer nada con ninguno de estos sin los otros dos, y sería muy difícil hacer algo con cualquiera de estos dos sin el tercero.
Es una mala idea mantener el archivo clave en la misma ubicación que la base de datos de contraseñas , a menos que por supuesto la contraseña de la base de datos de la contraseña maestra es lo suficientemente fuerte como para que por sí sola proporcione una buena protección contra un atacante y el archivo de la clave no sea más que la guinda del pastel. Por lo que dice sobre el uso de "una contraseña simple", este no parece ser el caso en su situación.
Por lo tanto, podemos concluir que en su escenario, la mayoría de la seguridad se encuentra en el archivo de claves, que está ligeramente incrementado por la frase maestra de contraseña. Por lo tanto, el archivo clave debe estar protegido a altos estándares.
Dado esto, probablemente haría lo contrario a lo que me propones:
- Almacene la base de datos de contraseñas en el host local, o posiblemente en un servidor central. Configure el sistema de archivos y (si corresponde) la red comparte las ACL para restringir el acceso a cada base de datos de contraseñas a su propietario. Asegúrese de que esté incluido en las copias de seguridad regulares.
- Almacene el archivo de clave en un servidor central. Configure el sistema de archivos y (si corresponde) la red comparte las ACL para restringir el acceso a cada archivo clave a su propietario. Asegúrese de que no esté incluido en las copias de seguridad regulares. Considere la posibilidad de configurar el registro de auditoría para los intentos de acceso exitosos y fallidos.
- Establezca en un alto recuento de iteración de derivación de clave de contraseña como lo tolerarán los usuarios . Apunte por varios segundos en las máquinas cliente, si eso es aceptable. Tenga en cuenta que un atacante serio probablemente usará implementaciones de hashing de frase de contraseña que están mucho más optimizadas.
- Mantenga las copias de respaldo de los archivos clave en algún lugar. ¿Sobres individuales, sellados en una caja de seguridad bancaria, tal vez? (En este caso, el banco mantendría un registro de auditoría separado al que probablemente se pueda recurrir en caso de sospecha de acceso no autorizado. No podrán decirle lo que hizo una persona, pero sí deberían poder decirle quién tenía acceso.)
Esto no es perfecto, principalmente porque la protección ofrecida por lo que solo el propietario de la base de datos de contraseñas tiene acceso (la contraseña maestra) es muy débil. Pero si sus usuarios no pueden serlo. molestado por usar frases de contraseña maestras seguras, probablemente se trata de lo mejor que puedes hacer.
Por supuesto, necesita algún mecanismo para manejar los escenarios donde las personas son atropelladas por un autobús. Sin embargo, eso está fuera del alcance de un administrador de contraseñas individual y es algo que necesita independientemente, por lo que no lo comentaré más a fondo.