Como fazer com que o gpg-agent armazene em cache as senhas que digito ao ler / salvar arquivos * .gpg?

9

Desejo trabalhar com gpgarquivos criptografados usando o Emacs e gostaria de poder inserir a senha para cada arquivo criptografado apenas uma vez por sessão do Emacs.

Eu costumava fazer isso definindo a variável epa-file-cache-passphrase-for-symmetric-encryptioncomo t, mas isso não funciona mais. A explicação pode ser encontrada na última linha da documentação da variável epa-file-cache-passphrase-for-symmetric-encryption:

(defcustom epa-file-cache-passphrase-for-symmetric-encryption nil
  "If non-nil, cache passphrase for symmetric encryption.

For security reasons, this option is turned off by default and
not recommended to use.  Instead, consider using gpg-agent which
does the same job in a safer way.  See Info node `(epa) Caching
Passphrases' for more information.

Note that this option has no effect if you use GnuPG 2.0."
  :type 'boolean
  :group 'epa-file)

Após uma atualização recente do sistema, a gpgversão em meu sistema agora é a versão 2.1.8, o que torna epa-file-cache-passphrase-for-symmetric-encryptionineficaz.

As referências mencionadas na documentação acima levam a uma página que apenas diz para você usar novamente gpg-agent, mas não diz nada sobre como fazê-lo. Não consegui encontrar instruções claras sobre como configurar gpg-agento caso de uso que descrevi no início desta postagem. Qualquer ajuda seria apreciada.

FWIW, psme diz que /usr/bin/gpg-agent --supervisedrealmente está em execução. O que mais devo fazer para que ele armazene em cache as senhas inseridas ao trabalhar com *.gpgarquivos?

Além disso, o valor da minha epg-gpg-programvariável é /usr/bin/gpg, que se refere à instância da versão 2.1.8 instalada gpgmencionada anteriormente.

As versões do Emacs que estou usando são 26.0.50 e 27.0.50. Nos dois casos, a versão do epapacote é 23.1.

kjo
fonte
Você pode usar o pinentrypacote por esta resposta : #
Felipe Felipe Lema
@FelipeLema: Para mim, usando o pinentry alterado, as senhas são salvas para descriptografia ao abrir o arquivo, mas ainda preciso digitá-las duas vezes para criptografia durante a gravação. :-(
Weidenrinde

Respostas:

4

https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html#Agent-Options

Nesta documentação, as opções nas quais você pode estar interessado

  • default-cache-ttl n, Define o tempo que uma entrada de cache é válida para n segundos. O padrão é 600 segundos. Cada vez que uma entrada de cache é acessada, o timer da entrada é redefinido. Para definir a vida útil máxima de uma entrada, use max-cache-ttl. Observe que uma senha em cache pode não ser removida imediatamente da memória se nenhum cliente solicitar uma operação de cache. Isso ocorre devido a uma função interna de limpeza, que é executada apenas a cada poucos segundos.
  • max-cache-ttl n Defina o tempo máximo que uma entrada de cache é válida para n segundos. Após esse período, uma entrada de cache expirará, mesmo que tenha sido acessada recentemente ou tenha sido definida usando gpg-preset-passphrase. O padrão é 2 horas (7200 segundos).

você pode definir isso no arquivo de configuração ~ / .gnupg / gpg-agent.conf

por exemplo: default-cache-ttl 86400

Parece que o gpg-agent não suporta senhas de cache para toda a sessão

junnu
fonte
Obrigado, mas isso não funciona para mim. Mesmo depois de reconfigurar (com longos tempos de cache) e reiniciar gpg-agent, ainda recebo a minha senha ( duas vezes ) sempre que tento salvar um *.gpgarquivo.
KJo
você pode confirmar se o cache funciona ao descriptografar no terminal?
junnu
O armazenamento em cache funciona ao descriptografar , tanto no Emacs quanto no terminal. O problema surge quando tento salvar um *.gpgarquivo (depois de fazer algumas alterações). Em seguida, sempre solicito minha senha, duas vezes . (Aliás, esse é um comportamento relativamente novo. Antes, o cache funcionava para descriptografar e criptografar o Emacs.) Da mesma forma, o cache não funciona quando tento criptografar coisas --symmetricdo terminal.
KJo
Reluto em conceder a recompensa aqui, já que sua resposta não resolveu meu problema e, de qualquer forma, não foi tão detalhada quanto eu esperava.
KJo
ok .. sem problemas .. não encontrei nenhuma documentação mencionando gpg-agent para usar a senha em cache para criptografia simétrica .. e aqui reddit.com/r/emacs/comments/5skzsu/… é mencionado que "GnuPG 2 intencionalmente (por seus desenvolvedores e pelo desenvolvedor do EPA / EPG) não suporta senhas de cache. Instale o GnuPG 1. Não está relacionado à versão do Emacs. " mas nenhuma referência manual do mencionado aqui .. se possível você pode tentar outras soluções que pode envolver cache do lado emacs ..
junnu