Como posso dizer ao gpg que não quero o cache de senha para um programa específico?

3

Estou usando gnupg 2.1.2 . Geralmente é muito útil quando gnupg armazena em cache minhas senhas. Mas, para alguns programas sensíveis, eu preferiria que gnupg não os armazenasse em cache com gpg-agent . Eu procurei um bom tempo na internet, mas não encontrei muita informação útil. Como eu posso dizer a gnupg que eu não quero uma frase secreta para um programa específico armazenado em cache?

Aqui está um exemplo. Estou usando Mutt como meu MUA e criptografo minhas senhas para todas as minhas contas em um arquivo separado em ~/.mutt/.passwd.gpg . No meu ~/.muttrc eu configurei

source "/usr/bin/gpg -d --quiet  ~/.mutt/.passwd.gpg |"

Quando eu iniciar Mutt pela primeira vez, serei solicitada minha senha de chave privada por gpg . Quando eu entrar, esta senha será armazenada em cache por algum tempo por gpg . Portanto, quando eu inicio Mutt novamente neste intervalo, não sou mais solicitada a senha da minha chave privada. Isso significa que qualquer pessoa com acesso ao meu computador durante esse período pode ler meu e-mail ou até mesmo enviar e-mails. Como posso dizer gpg (por exemplo, passando uma opção para gpg embora a man -page não mostre nenhum sinalizador relacionado) para solicitar minha senha de chave privada toda vez que eu inicio Mutt (ou qualquer outro específico programa)? Eu sei que talvez nem seja possível, pois gpg provavelmente não sabe qual programa tenta acessar um arquivo criptografado. Mas eu gostaria de ter isso confirmado pela nossa grande comunidade.

    
por lord.garbage 31.03.2015 / 15:57

3 respostas

1

A documentação do gpg-agent diz que "o gpg-agent usa uma variável de ambiente para informar os clientes sobre os parâmetros de comunicação". Ele não fornece o nome da variável de ambiente real, mas alguns testes indicam que a variável relevante é GPG_AGENT_INFO . Eu sugeriria alterar sua configuração de mutt para o seguinte:

source "unset GPG_AGENT_INFO; /usr/bin/gpg -d --quiet  ~/.mutt/.passwd.gpg |"

Uma solução talvez mais simples seria passar --no-use-agent para gpg.

Observe que isso não impede que um invasor chame gpg com o agente ativado, se suas credenciais tiverem sido armazenadas em cache (talvez porque você deixou o gpg-agent armazená-las em cache fora do Mutt). Então, mesmo que o gpg-agent soubesse discriminar mutt especificamente, não seria uma medida de segurança muito strong.

    
por 31.03.2015 / 16:43
1

Isso pode não ser muito elegante, mas para mim funciona. Apenas mate o daemon imediatamente após usar gpg :

killall gpg-agent

(sim, f ** k isso!)

Ele será reiniciado automaticamente na próxima vez em que for invocado por gpg ou qualquer outro programa. E ao usá-lo dessa maneira, as senhas de tempo padrão armazenadas em cache não serão alteradas (você pode não querer o mesmo comportamento para outros programas).

    
por 26.02.2018 / 10:38
0

Reinicie o agente com 1 segundo de intervalo de cache, por exemplo, quase sem cache

pkill gpg-agent && gpg-agent --default-cache-ttl 1 --use-standard-socket --daemon

    
por 28.08.2018 / 09:43

Tags