¿KeePass tiene una clave maestra interna permanente para cifrar datos?

-1

¿KeePass tiene clave interna permanente para cifrar datos? ¿O la clave para el cifrado es una contraseña (y un archivo de claves)? En algún sitio web he echado un vistazo a la discusión sobre las formas de hackear la base KeePass. Una de las suposiciones era que hay dos formas: una para aplicar la contraseña de forma bruta  y otra para forzar la clave maestra cifrada  . ¿Existe una clave maestra interna realmente permanente para el cifrado de datos?

Criptor
fuente
2
es de código abierto, por lo que todos los interesados ​​pueden leer el código fuente. Si hay una clave maestra en el código fuente, será pública y hará que todo sea inútil.
Aganju
Me refiero a la clave maestra que se puede generar una vez en la creación de la base de contraseña y se cifra mediante la contraseña del usuario (y el archivo de claves).
Cryptor
Eso es lo que sucede por defecto ...
Ramhound
No entiendo ... ¿Quiere decir que cuando se crea la base de contraseña, se genera la clave maestra? Si es así, ¿hay alguna manera de forzar a KeePass a cambiar la clave maestra y volver a cifrar la base al cambiar la contraseña de usuario? Imagine la situación cuando alguien descubre la contraseña, recupera la clave maestra. Pero el propietario de la base no lo sabe y simplemente sigue cambiando la base de la contraseña una vez en un período de tiempo ... Las cosas no están bien entonces ...
Cryptor

Respuestas:

2

Después de leer este artículo , parece que realmente se generan algunos bytes aleatorios, pero solo con el objetivo de completar la clave completa de 256 bits:

Para generar la clave de 256 bits para los cifrados de bloque, se utiliza el algoritmo de hash seguro SHA-256. Este algoritmo comprime la clave de usuario proporcionada por el usuario (que consta de contraseña y / o archivo de clave) a una clave de tamaño fijo de 256 bits. Esta transformación es unidireccional, es decir, es computacionalmente inviable invertir la función hash o encontrar un segundo mensaje que se comprima al mismo hash.

El ataque recientemente descubierto contra SHA-1 [2] no afecta la seguridad de SHA-256. SHA-256 todavía se considera muy seguro [3].

Derivación clave:

Si solo se usa una contraseña (es decir, no hay archivo de clave), la contraseña más una sal aleatoria de 128 bits se codifica con SHA-256 para formar la clave final (pero tenga en cuenta que hay algún preprocesamiento: Protección contra ataques de diccionario). La sal aleatoria evita ataques basados ​​en hashes precalculados.

Cuando se utiliza la contraseña y el archivo de clave, la clave final se deriva de la siguiente manera: SHA-256 (SHA-256 (contraseña), contenido del archivo de clave), es decir, el hash de la contraseña maestra se concatena con los bytes del archivo de clave y el byte resultante la cadena se vuelve hash con SHA-256 nuevamente. Si el archivo de clave no contiene exactamente 32 bytes (256 bits), también se combinan con SHA-256 para formar una clave de 256 bits. La fórmula anterior cambia a: SHA-256 (SHA-256 (contraseña), SHA-256 (contenido del archivo clave)).

Entonces llego a la conclusión de que no hay una llave maestra interna. Cuando se cambia la contraseña del usuario (y el archivo de claves), la base de la contraseña se vuelve a cifrar con una nueva clave.

Criptor
fuente