novato de seguridad aquí
Tengo un script bash que enumera recursivamente todos los archivos y directorios de una ruta determinada (por ejemplo, /home/user
) y encripta archivos individuales y los almacena en otro directorio (por ejemplo, /media/backup
) manteniendo la estructura del directorio. Estoy utilizando el cifrado de clave simétrica de GPG (AES 128) para este propósito.
Ahora el problema es que GPG me pide que ingrese una contraseña para cada archivo que se va a cifrar. Ya que hay varios archivos, esto no es factible. Así que las soluciones que podría pensar son -
- Indica al usuario que ingrese la clave, la almacene en una variable y use esa variable en el script para la contraseña (con la opción
echo $password | gpg ... --passphrase-fd 0 --batch
). El usuario debe memorizar la contraseña. - Crea una nueva identidad de clave pública / privada con GPG. Cree un nuevo archivo de texto que contenga la contraseña y cifrelo con la clave pública de esta nueva identidad y guárdelo localmente. Ahora en el script, descifre este archivo de contraseña y use la contraseña así descifrada. Nuevamente, en este caso, el usuario ingresa la contraseña de la clave privada (memorizada) una vez.
Para mí, ambas soluciones parecen similares (el usuario tiene la pieza final requerida para descifrar los archivos). Me gustaría saber si una solución es mejor que la otra, o incluso si ambas son inseguras; Y en ese caso cuál debería ser la solución ideal.
El modelo de amenaza aquí es, si mis archivos cifrados & Mi sistema está comprometido y un adversario obtiene acceso de usuario / root a mi sistema, no deberían poder descifrar los archivos sin la contraseña memorizada.
Editar : la persona que publica esta pregunta ( enlace ) afirma que el cifrado simétrico de archivos y luego el cifrado asimétrico de la clave es la forma correcta de hacerlo. ¿Implica eso que # 2 es la forma preferida?