Tengo la tarea de automatizar un descifrado gpg usando cron (o cualquier herramienta de programación de trabajos compatible con Ubuntu Server). Como tiene que ser automatizado, lo utilicé --passphrase
pero termina en el historial del shell, por lo que es visible en la lista de procesos.
¿Cómo puedo automatizar el descifrado mientras mantengo buenos (preferiblemente excelentes) estándares de seguridad?
Un ejemplo será muy apreciado.
ps
etc. a menos que lo tengahidepid
activado/proc
, pero un shell que ejecuta un script (desde cron o de otro modo) no es interactivo y no debe escribir el historial a menos que esté mal configurado.Respuestas:
Almacene la frase de contraseña en un archivo que solo pueda leer el usuario del trabajo cron y use la
--passphrase-file
opción para indicargpg
que lea la frase de contraseña allí.Esto asegurará que la frase de contraseña no sea visible en la información del proceso en la memoria. El nivel de seguridad estará determinado por el nivel de acceso al archivo que almacena la frase de contraseña (así como el nivel de acceso al archivo que contiene la clave), incluso en cualquier lugar donde su contenido termine copiado (así que tenga cuidado con las copias de seguridad), y accesibilidad fuera de línea (sacar el disco del servidor). Si este nivel de seguridad es suficiente dependerá de sus controles de acceso al servidor que contiene el archivo, físicamente y en el software, y de los escenarios que está tratando de mitigar.
Si desea excelentes estándares de seguridad, debe usar un módulo de seguridad de hardware en lugar de almacenar su clave (y frase de contraseña) localmente. Esto no evitará que la clave se use in situ , pero evitará que se copie y se use en otro lugar.
fuente
¡El descifrado automático significa que debe almacenar la frase de contraseña en algún lugar, o no usar una frase de contraseña (a menos que use opciones adicionales como se señala en la otra respuesta presentada por Stephen mientras escribía la mía)! Ninguno de los dos cumple con sus requisitos de estándares de seguridad buenos o excelentes.
es decir, su requerimiento no es compatible con que sea seguro.
Puede confiar en cosas como: debe ser root, le he dado al archivo en el que está almacenada mi frase de contraseña un nombre realmente confuso, he cifrado los sistemas de archivos subyacentes, etc., etc. pero son todas capas que son triviales para eludir una vez que eres root en primer lugar.
La opción que evita que la frase de contraseña aparezca en la lista de procesos es
--passphrase-file <file-name>
.Sin embargo, eso no es más seguro que simplemente eliminar la frase de contraseña en primer lugar.
fuente