¿Cómo puedo automatizar el descifrado de gpg que usa una frase de contraseña mientras lo mantengo en secreto?

13

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é --passphrasepero 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.

Zakk Coetzee
fuente
Argumentos como este son visibles en psetc. a menos que lo tenga hidepidactivado /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.
dave_thompson_085

Respuestas:

23

Almacene la frase de contraseña en un archivo que solo pueda leer el usuario del trabajo cron y use la --passphrase-fileopción para indicar gpgque 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.

Stephen Kitt
fuente
+1 por mencionar el módulo de seguridad de hardware, la única solución, realmente, a este enigma.
MariusMatutiae
Stephen, gracias por la mención del módulo de seguridad de hardware, investigaré un poco. Gracias por señalarme en la dirección correcta.
Zakk Coetzee
@StephenKitt Las teclas de hardware son excelentes cuando el trabajo. Cuando no lo hacen, bueno ...
Satō Katsura
@ SatōKatsura cierto, aunque señalaría que el Yubikey no es un HSM. (Lo que no significa que los HSM no sean vulnerables, por supuesto )
Stephen Kitt
"Si desea excelentes estándares de seguridad", no puede descifrar o firmar un trabajo automatizado.
JimmyB
5

¡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.

OchoBitTony
fuente
Gracias por explicar a Tony, usted dio una mejor visión sobre el asunto. Un módulo de seguridad de hardware mencionado por Stephen será el objetivo principal.
Zakk Coetzee
@ZakkCoetzee: Como dije en la otra respuesta, ¿qué impide que el atacante use el HSM si es root?
Martin Bonner apoya a Monica el
@MartinBonner Como dijo anteriormente Stephen Kitt, les impide obtener la clave, que definitivamente es mejor que obtener la clave.
Zakk Coetzee
Lo es, pero no mucho mejor. Pregúntele a Diginotar (que tenía su clave en un HSM, pero dejó el HSM conectado y con la tarjeta inteligente correspondiente en la ranura, para que un atacante pudiera firmar varios de los certificados del atacante)
Martin Bonner apoya a Monica el