É possível adicionar um destinatário a um arquivo já criptografado no GPG?

É possível adicionar um destinatário a um arquivo já criptografado no GPG?

Supondo que eu criptografei um arquivo (possivelmente grande) usando GPG; por exemplo

gpg --recipient "Some Name" -o this_file.gpg --encrypt this_file.txt

É possível adicionar outro destinatário sem primeiro descriptografar o arquivo, seguido de outra criptografia?

Responder1

Resposta curta: não

Em primeiro lugar, observe que se você não for um dos destinatários, é totalmente impossível. Você nem mesmo tem a capacidade de descriptografar o arquivo, muito menos de adicionar um destinatário. Mesmo que você tenha criptografado há dois segundos.

Supondo que você seja um destinatário, é tecnicamente possível. Na verdade, o arquivo é criptografado com uma chave de sessão e a chave de sessão é criptografada com sua chave pública, para que você possaem teoriadescriptografar a chave de sessão e criptografá-la novamente para a chave de outra pessoa e, em seguida, empacotar tudo em um arquivo, como se você tivesse criptografado originalmente o documento para ambas as pessoas.

No entanto,gpg não tem esse recurso. O mais próximo que você pode chegar do gpg é

  1. Use a --show-session-keyopção para obter a chave da sessão (que parece também descriptografar o arquivo, perdendo o objetivo neste caso)
  2. Criptografe essa chave de sessão para a chave pública de outra pessoa (na verdade, isso cria uma nova chave de sessão e usa essa chave de sessão para criptografar a chave de sessão original)
  3. Envie os dois arquivos.
  4. O destinatário pode descriptografar a chave de sessão e usá-la --override-session-keypara descriptografar a mensagem original.

Responder2

1) É por esta situação que criptografar um arquivo para você mesmo (bem como para os destinatários pretendidos) é sempre uma boa ideia. RedGrittyBrick está correto acima ao descrever como o GPG e o PGP funcionam, o que desemboca na resposta de nathang acima.

2) No entanto, se você tiver o arquivo original, é melhor simplesmente criar um novo arquivo criptografado para o novo destinatário.

Supondo que você não queira seguir o caminho da chave de sessão da sugestão de nathang, se você criptografou o arquivo para si mesmo (como acima no item 1) em primeiro lugar, descriptografe-o e siga a etapa 2 acima.

Se você não tiver o original nem criptografá-lo para si mesmo, não poderá recuperar os dados e não poderá criptografá-los para outra pessoa sem que o primeiro destinatário lhe envie uma cópia.

Responder3

É possível adicionar outro destinatário sem primeiro descriptografar o arquivo, seguido de outra criptografia?

Não é possível sem descriptografarde forma algumamas issoparece que deveria serpossível sem descriptografarpara um arquivo:

gpg -d this_file.gpg | gpg -e -r "Some Name" -r "Another Name" -o this_file.gpg

Exceto que isso parece resultar em um arquivo corrompido (pelo menos às vezes) porque gpgestá lendo e gravando no mesmo arquivo simultaneamente:

Em vez disso, você poderia fazer o seguinte (em um script) para evitar a necessidade de gerenciar o arquivo descriptografado:

gpg -d -o this_file.txt this_file.gpg

gpg -e \
    -r "Some Name" \
    -r "Another Name" \
    -o this_file.gpg \
    --batch --yes \
    this_file.txt

shred -u this_file.txt

shred, com a -uopção, substitui com segurança os dados e, em seguida, exclui o arquivo especificado. Existem programas semelhantes para outras plataformas, como srmno Mac OS X.

Ou você poderia escrever seu roteiro assim (cortesia dedave_thompson_085) para evitar a necessidade de armazenar os dados descriptografados em um arquivo:

gpg -d this_file.gpg \
| gpg -e \
    -r "Some Name" \
    -r "Another Name" \
    -o this_file.gpg.new \
    --batch --yes

mv -f this_file.gpg.new this_file.gpg

Responder4

Como já mencionado nas respostas anteriores e, também bem descrito nesteFerramentas GPG publicar:

"Nenhum destinatário pode ser adicionado a um arquivo que já esteja criptografado. Se isso fosse possível, haveria um sério problema de segurança."

Dito isto, uma alternativa poderia ser estaplug-in vim, um complemento muito útil para visualizar e editargpgarquivos criptografados:vim-gnupg.

Uma vez instalado emvim, adicionar destinatários a um arquivo criptografado pode ser feito por meio do :GPGEditRecipientscomando.

informação relacionada