Como usar GPG

O software GPG (GNU's Privacy Guard) é, entre outras coisas, uma implementação do PGP (Pretty Good Privacy), que é um conjunto de especificações para comunicação encriptografada.

Instalando o GPGP

Se você está usando alguma distribuição Linux, BSD, Plan9, ou qualquer outro sistema operacional minimamente decente, é bem provável que o pacote gnupg está disponível no repositório de pacotes da sua distribuição. Portanto, basta instalar esse pacote usando seu gerenciador de pacotes. Caso você esteja usando aquelas distribuições sem gerenciadores de pacotes em que tudo deve ser instalado manualmente, então, você pode compilar o gnupg pelo código fonte.

Comandos básicos GPGP

Listar chaves disponíveis

Use o seguitne comando para listar as chaves disponíveis no seu computador

gpg --list-keys

Listar chaves segundo um padrão

Use o seguitne comando para para listar as chaves no seu computador segundo um padrão:

gpg --list-keys <pattern>

Por exemplo, para listar as chaves (armazenadas no computador) cujo nome do proprietário da chave ou email do proprietário contém o padrão Artix

gpg --list-keys Artix

Produz (no meu computador) a saída:

pub   rsa4096 2020-04-19 [SC] [expires: 2025-04-18]
      A574A1915CEDE31A3BFF5A68606520ACB886B428
uid           [ unknown] Christos Nouskas <nous@artixlinux.org>

Exportar sua chave pública para um arquivo

Use o seguinte comando para exportar sua chave pública para um arquivo:

gpg --export '<key>' > pubkey.gpg

Substitua <key> com o id da sua chave (pode ser o Real name associado com a chave, ou o email associado com a chave, ou o id da chave). Por exemplo:

gpg --export 'bruce@brucelee.com' > pubkey

Você pode querer exportar sua chave pública se você está distribuindo algum software (sua chave pode ser usada para verificar integridade e autenticidade do software) ou simplesmente para compartilhá-la com seus amigos para eles te enviarem mensagem encriptografadas.

Importar uma chave pública vinda de um arquivo

Use o seguinte comando para importar uma chave pública vinda de um arquivo:

gpg --import pubkey.gpg

Você pode querer importar a chave pública para verificar legitimidade de um software, ou importar a chave de seus amigos para enviar mensagem encriptografadas para eles.

Encriptografar um arquivo usando uma chave pública

Use um dos seguintes comandos (ambos são equivalentes) para encriptografar um arquivo usando uma chave pública:

gpg --encrypted --recipient '<key>' <file_path>
gpg -e -r '<key>' <file_path>

Por exemplo, para encriptografar um convite de festa que você enviará para o homem-aranha, use o comando:

gpg -e -r 'peterpark@spiderman.com' ~/documents/party-invitation.txt

Irá produzir o arquivo criptografado party-invitation.txt.gpg, que somente poderá ser decriptografado por quem deter a chave privada do homem-aranha.

Assinar um arquivo digitalmente

Use o seguinte comando para assinar um arquivo digitalmente:

gpg -b <file_path>

Isso irá gerar uma assinatura não-anexada, o que significa que o arquivo da assinatura está separado do arquivo original (a assinatura é um arquivo diferente).

Por padrão, o nome do arquivo da assinatura gerada será o nome do arquivo original concatenado com a string .sig.

Exemplo: Se o arquivo é ~/documents/letter.pdf, a assinatura produzida estará localizada em ~/documents/letter.pdf.sig.

É possível especificar o nome do arquivo gerado usando a flag -o, da seguinte forma:

gpg -b -o <output_file_path> <file_path>

Verificar a assinatura digital de um arquivo

Use o seguinte comando para verificar a assinatura digital de um arquivo:

gpg --verify <signature_file_path> <file_path>

Para isso funcionar, é necessário que você tenha, no seu computador, a chave pública usada para assinar o arquivo. Do contrário, não será possível verificar a assiantura digital.

A assiantura digital pode ser usada para verificar que um arquivo é legítimo, não foi corrompido, não foi alterado, e foi de fato assinado pelo dono da chave.

Exemplo: verificar a assinatura de um arquivo ISO:

gpg --verify manjaro-xfce-21.0.7-minimal-210614-linux510.iso.sig manjaro-xfce-21.0.7-minimal-210614-linux510.iso

Decriptografar um arquivo usando a chave privada

Somente é possível decriptografar um arquivo que foi encriptografado com a chave pública se você detiver a chave privada correspondente.

Use o seguinte comando para decriptografar um arquivo usando a chave privada:

gpg -d <file_path>

O conteúdo do arquivo será enviado para a saída padrão. Se você não deseja isso, redirecione a saída padrão para algum outro arquivo. Exemplo:

gpg -d mensagem.txt.gpg > mensagem.txt

Encriptografar um arquivo usando uma senha

Você pode encriptografar um arquivo usando uma senha, o que significa que você não precisa usar chave pública.

Use o seguinte comando para encriptografar um arquivo usando uma senha:

gpg -c <file_path>

Em seguida, você será perguntado para fornecer uma senha. Digite a senha e a confirmação da senha.

Decriptografar um arquivo usando uma senha

Use o seguinte comando para decriptografar um arquivo usando uma senha:

gpg -d <file_path>

Em seguida, você será perguntado para fornecer a senha. Digite a senha.

O conteúdo do arquivo será enviado para a saída padrão. Se você não deseja isso, redirecione a saída padrão para algum outro arquivo. Exemplo:

gpg -d mensagem.txt.gpg > mensagem.txt