Visualização segura de um arquivo criptografado

3

Eu tenho um arquivo que é criptografado por gpg. Eu gostaria de ver o conteúdo do arquivo, mas não deixo nenhum traço da saída. Vamos dizer, por exemplo, que o arquivo criptografado tem algumas senhas, e eu não as quero flutuando na memória ou em qualquer lugar. Eu sei o comando

gpg -d file_name

irá descarregar a saída do arquivo para STDOUT, mas existe uma maneira de garantir que não haja nenhum rastro do conteúdo a ser encontrado?

    
por user2840647 26.12.2013 / 19:17

2 respostas

0

Se você executar este comando, o conteúdo descriptografado do seu arquivo está (ou estava) na memória (você não pode contornar isso). Mas você não precisa se preocupar com isso. Enquanto seu programa está em execução e outro aplicativo tenta acessar essa parte da memória, ele recebe uma falha de segmentação e será morto instantaneamente pelo kernel.

Todo arquivo acessado por um processo permanece na memória enquanto houver memória livre. Também o seu arquivo criptografado. Para limpar esse cache, você pode executar o seguinte depois de visualizar o arquivo:

sync
echo 3 > /proc/sys/vm/drop_caches
    
por 26.12.2013 / 23:19
0

Você não tem controle sobre o que acontece com a memória que contém o conteúdo confidencial. Por exemplo, é possível que o conteúdo tenha sido trocado de volta em um endereço físico diferente, levando a várias cópias na memória física, bem como no espaço de troca.

O risco é muito baixo: seria necessário um processo raiz ou acesso físico para extrair a senha (mais alguma sorte). O acesso raiz permite que o atacante implante malwares indetectáveis de qualquer maneira. Assim, o único ataque perigoso é a extração através de um dump do espaço de troca (solução: criptografar sua troca) ou um ataque de inicialização a frio no conteúdo da RAM.

Você pode remover esse risco (muito pequeno, não vale a pena se preocupar a menos que você tenha necessidades especiais) executando um processo que aloca toda a memória virtual que ele pode obter (supondo que ele possa obter tudo o que estiver disponível - em 32 bits). sistema você pode precisar de vários desses processos). Desta forma, a memória virtual será apagada.

    
por 27.12.2013 / 02:17