
Gestor de contraseñas cifrado con AES-256 con derivación de claves scrypt/SHA256, que admite operaciones de crear, editar, consultar y cambiar la contraseña maestra con borrado seguro de archivos.
Este script cifra o descifra de forma segura contraseñas en disco dentro de un archivo de base de datos personalizado. También incluye funcionalidad para recuperar contraseñas de un archivo de base de datos previamente generado. Este script toma una contraseña maestra de stdin/de memoria, aplica un hash a la contraseña usando el algoritmo de hash especificado en el parámetro -a (scrypt, sha256) y finalmente cifra/descifra los datos del archivo con AES-256 utilizando el hash del algoritmo como clave AES-256 (derivación de clave). Al proporcionar el argumento 'scrypt' al parámetro de algoritmo, el script generará una sal scrypt personalizada por cada creación o edición del archivo de base de datos. La sal generada de forma única se codifica en base64 y se antepone a los bytes cifrados de cada archivo de base de datos, separada por bytes de retorno de carro y salto de línea (para su análisis) como metadatos. Al usar el parámetro de cambio de contraseña -cp, el script descifra los datos del archivo de base de datos en memoria, escribe bytes aleatorios * WIPE_PASSES en el archivo de base de datos, lo trunca y finalmente escribe los nuevos datos cifrados con AES-256 usando la nueva contraseña maestra con hash en el archivo de base de datos. Esto dificulta la recuperación de datos/forense.
Crear un archivo de base de datos:
python3 aespasswd_store.py -a scrypt -c <filename>
Cambiar la contraseña maestra de un archivo de base de datos:
python3 aespasswd_store.py -a scrypt -cp <filename>
Editar un archivo de base de datos:
python3 aespasswd_store.py -a scrypt -e <filename>
Consultar datos del archivo de base de datos:
python3 aespasswd_store.py -a scrypt -q <filename>
Ejemplos:
# Add entry to the database/modify existing data:
pass_id1=password
pass_id2=password
pass_id3=password
# Delete existing data:
pass_id1=delete
pass_id2=delete
# -q parameter: Query data (entering nothing dumps all data):
pass_id1
pass_id3
# Press ctrl+D (linux) or ctrl+Z (windows) to save data from stardard input.