Controlando a vida útil das chaves desbloqueadas em um agente GnuPG

1

Para aumentar (levemente) a segurança, eu gostaria de ter um melhor controle do tempo de vida de qualquer chave desbloqueada, dependendo da tarefa que está sendo executada. Idealmente, eu começaria um sub-shell interativo, faria quaisquer tarefas que envolvessem segredos, e então todas as chaves desbloqueadas seriam apagadas automaticamente quando a sub-shell sair.

Eu sei que é possível limpar manualmente as senhas em cache usando gpg-connect-agent , mas aFAIK que requer que cada chave seja especificada explicitamente. Outra opção seria definir um tempo de expiração do cache de classificação usando as opções --default-cache-ttl ou --max-cache-ttl para gpg-agent ; mas geralmente isso significa definir um TTL longo ou ser perguntado pela mesma senha mais de uma vez.

Parece que lembrei que, há muito tempo, era possível especificar um caminho alternativo gpg-agent socket e basicamente iniciar uma sessão independente, mas isso não parece mais ser possível; versões mais recentes parecem usar um caminho fixo que não pode mudar.

Então, o que estou perdendo? Existe uma maneira de conseguir o que eu quero?

    
por thkala 08.04.2018 / 20:54

1 resposta

0

Embora eu não tenha uma solução completa, encontrei uma solução alternativa:

Ao usar um diretório inicial alternativo para o GnuPG por meio do parâmetro --homedir ou da variável de ambiente GNUPGHOME , é possível forçar o GnuPG a usar um conjunto diferente de arquivos de armazenamento de chaves e caminhos de soquete de agente associados. Com isso em mente, posso iniciar um shell dentro de uma nova gpg-agent session:

gpg-agent \
    --homedir /my/other/keys \
    --default-cache-ttl 86400 \
    --max-cache-ttl 86400 \
    --daemon \
    \
    /bin/bash

Todas as senhas inseridas expirarão se o TTL especificado passar (um dia neste exemplo) ou serão "esquecidas" quando o novo shell sair, pois isso fará com que o pai gpg-agent instance seja terminado automaticamente. / p>

A razão pela qual eu não considero isso uma solução completa é que isso força o uso de um chaveiro separado. No entanto, isso funciona perfeitamente para o meu caso de uso específico e, portanto, eu não investiguei mais.

Pode ser possível obter o efeito completo de sessões independentes para o mesmo chaveiro, tendo links simbólicos para o chaveiro GnuPG padrão, desde que sejam tomados cuidados suficientes. mantendo qualquer bloqueio entre diferentes gpg-agent instâncias. Vou deixar isso como um exercício para o leitor ...

    
por 29.04.2018 / 01:03