Tenho a tarefa de automatizar uma descriptografia de gpg usando cron (ou qualquer ferramenta de agendamento de trabalhos compatível com o Ubuntu Server). Como ele tem que ser automatizado, usei, --passphrase
mas ele acaba no histórico do shell, para que fique visível na lista de processos.
Como automatizar a descriptografia, mantendo bons (de preferência ótimos) padrões de segurança?
Um exemplo será muito apreciado.
ps
etc, a menos que você estejahidepid
usando/proc
, mas um shell executando um script (do cron ou de outro modo) não é interativo e não deve escrever histórico, a menos que esteja configurado incorretamente.Respostas:
Armazene a senha em um arquivo que seja legível apenas pelo usuário da tarefa cron e use a
--passphrase-file
opção para dizergpg
para ler a senha lá.Isso garantirá que a senha não seja visível nas informações do processo na memória. O nível de segurança será determinado pelo nível de acesso ao arquivo que armazena a senha (bem como pelo nível de acesso ao arquivo que contém a chave), incluindo em qualquer lugar em que seu conteúdo seja copiado (portanto, tenha cuidado com os backups), e acessibilidade off-line (puxando o disco para fora do servidor). Se esse nível de segurança é suficiente, dependerá dos controles de acesso ao servidor que contém o arquivo, fisicamente e no software, e dos cenários que você está tentando mitigar.
Se você deseja ótimos padrões de segurança, precisa usar um módulo de segurança de hardware em vez de armazenar sua chave (e senha) localmente. Isso não impedirá que a chave seja usada in situ , mas evitará que seja copiada e usada em outro lugar.
fonte
Automatizar a descriptografia significa que você deve armazenar a senha em algum lugar ou não usar uma senha (a menos que use opções adicionais, conforme indicado na outra resposta enviada por Stephen enquanto eu estava digitando a minha)! Nenhum deles corresponde à sua exigência de bons ou excelentes padrões de segurança.
ou seja, sua exigência não é compatível com a segurança.
Você pode confiar em coisas como: você tem que ser root, forneci um nome muito confuso ao arquivo no qual minha frase secreta está armazenada, criptografei os sistemas de arquivos subjacentes, etc., etc., mas todas elas são camadas que são triviais para contornar uma vez que você é raiz em primeiro lugar.
A opção que impede que a frase secreta apareça na lista de processos é
--passphrase-file <file-name>
.No entanto, isso não é mais seguro do que apenas remover a frase secreta em primeiro lugar.
fonte