Como lidar com senhas em um script: na memória VS no arquivo

Como lidar com senhas em um script: na memória VS no arquivo

Eu tenho um script que roda em um VPS em um provedor de nuvem barato. O cenário é: eu confio no meu provedor, mas prefiro dificultar a vida dele se ele quiser roubar minha chave. Todas as pastas de interesse no disco rígido são criptografadas (truecrypt ou similar), ficando claras apenas quando a máquina estiver ligada (sempre, mas se tirarem o hhd, não conseguirão ver meus dados)

Qual é a melhor solução para lidar com uma chave de API do Dropbox dentro de um script?

Nota: o script irá obter arquivos do FTP, carregá-los no Dropbox e excluí-los do disco.

Eu estava pensando em armazenar um arquivo criptografado (openssl/pgp) e ao iniciar o script (com a chave de descriptografia, digitada manualmente) ele irá descriptografar a chave, armazená-la como uma variável e usá-la quando necessário (o script permanecerá vivo para sempre)

Alguma idéia/comentário?

Responder1

Você poderia usar algo comopython-gnupgpara ter um arquivo criptografado com gnupg. Para obter segurança "real" você precisa colocar uma senha na chave privada, caso contrário você terá o arquivo criptografado contendo a senha e a chave privada no mesmo servidor, então descriptografar o arquivo seria trivial. O ruim de ter uma senha toda vez que você iniciar seu script seria precisar digitar a senha, mas isso poderia ser minimizado usando gpg-agent e apenas digitando a senha durante a inicialização da máquina.

Responder2

Isto seria segurança através da obscuridade, mas dificilmente há outra opção. Se você quiser dificultar a vida do ladrão em potencial, sugiro incorporar a chave dentro do script e depois converter o script em um executável usandoshc. Você também pode querer ofuscar o próprio elfo (Métodos para ofuscar um elfo.) Tenha em mente, porém, que faça o que fizer, ainda poderá ser desmontado e estudado.

informação relacionada