Cómo manejar contraseñas en un script: en memoria VS en archivo

Cómo manejar contraseñas en un script: en memoria VS en archivo

Tengo un script que se ejecuta en un VPS de un proveedor de nube económico. El escenario es: confío en mi proveedor, pero prefiero hacerle la vida difícil si alguna vez quiere robar mi clave. Todas las carpetas interesadas en el disco duro están cifradas (truecrypt o similar), en claro solo cuando la máquina está encendida (siempre, pero si sacan el hhd, no podrán ver mis datos)

¿Cuál es la mejor solución para manejar una clave API de Dropbox dentro de un script?

Nota: el script obtendrá archivos de FTP, los cargará en Dropbox y los eliminará del disco.

Estaba pensando en almacenar un archivo cifrado (openssl/pgp) y cuando inicie el script (con la clave de descifrado, escrita manualmente), descifrará la clave, la almacenará como una variable y la usará cuando sea necesario (el script permanecerá vivo). para siempre)

¿Alguna idea/comentario?

Respuesta1

Podrías usar algo comopython-gnupgtener un archivo cifrado con gnupg. Para lograr una seguridad "real", necesita poner una frase de contraseña a la clave privada; de lo contrario, tendrá el archivo cifrado que contiene la contraseña y la clave privada en el mismo servidor, por lo que descifrar el archivo sería trivial. Lo malo de tener una frase de contraseña cada vez que inicia su secuencia de comandos es que necesitaría escribirla, pero eso podría minimizarse usando gpg-agent y solo escribiendo la contraseña mientras arranca la máquina.

Respuesta2

Esto sería seguridad a través de la oscuridad, pero casi no hay otra opción. Si desea hacerle la vida más difícil al ladrón potencial, le sugeriría incrustar la clave dentro del script y luego convertir el script en un ejecutable usandoshc. También es posible que desees ofuscar al propio elfo (Métodos para ofuscar a un elfo.) Sin embargo, tenga en cuenta que haga lo que haga, aún puede desmontarlo y estudiarlo.

información relacionada