Slacktrek Linux

um blog sobre linux, software livre, shell script e afins

GPG: Um Guia Prático - Parte 3

25 de jul de 2024 — SlackTrekBr

Nesta terceira parte da série de artigos sobre chaves GPG vamos ver como criptografar arquivos usando uma chave pública e como descriptografá-la usando a chave privada. Embora este artigo seja curto é importante conhecer o básico e saber como usar as chaves de forma simples pela linha de comando.


Como a Criptografia GPG Funciona

A criptografia com chave pública usa uma combinação entre o par de chaves que criamos na parte 1 dessa série. Ao compartilhar sua chave pública de forma direta - seja por mensagem ou arquivo - ou indireta - através de um servidor de chaves - você permite a outros proteger mensagens que somente a sua chave privada pode descriptografar.

Quando alguém lhe envia uma mensagem criptografada tanto o arquivo quanto a chave necessária para descriptografá-la são postas em um mesmo arquivo criptografado pela chave pública. Ao enviar a mensagem criptografada, mesmo que ela seja interceptada por alguém ao longo do caminho, essa pessoa não poderá ler seu real conteúdo, mesmo que ela também possua sua chave pública. Apenas você, de posso da sua chave privada, poderá descriptografar essa mensagem e ter acesso ao seu conteúdo.

Lembre-se: A chave pública apenas protege com criptografia. Nenhuma chave pública pode descriptografar arquivos. Essa função se reserva apenas a chave privada. Por isso é importante mantê-la a salvo e compartilhar apenas a chave pública.

Importando uma Chave Pública

Como vimos na parte 2, podemos buscar por uma chave pública em um servidor de chaves usando:

gpg --search user-id

Ou através de um arquivo com:

gpg --import arquivo-da-chave-pública

Após importar a chave pública do seu contato devemos conferir a impressão digital dela com a fornecida pelo contato.
Para exibir a impressão digital usamos o comando:

gpg --fingerprint user-id

Confirme que a numeração da impressão digital da chave pública realmente combina com a fornecida pelo contato. Ou pessoalmente, ou via ligação ou mensagem, desde que você tenha certeza de que esteja em contato com o dono da chave.

Após confirmar que ambas as numerações são idênticas assinamos a chave como confiável com o comando:

gpg --sign-key key-id

Criptografando Arquivos

Agora que temos a chave pública de seu contato salva no chaveiro podemos trocar mensagens criptografadas com ele através dela.
Primeiramente iremos criptografar mensagens de texto simples em um arquivo txt.

Abra um bloco de notas ou o terminar e digite:

echo "Este arquivo tem criptografia GPG" > mensagem.txt

Depois execute este comando:

gpg --recipient user-id --encrypt --armor mensagem.txt

Lembrando que o user-id neste caso é o da chave pública do seu contato, ou seja, um e-mail ao qual pertence essa chave.
O parâmetro --armor indica para o gpg que o arquivo a ser criado deve seguir o padrão ASCII. Caso contrário o arquivo criado será um binário.

Como resultado temos a criação de um arquivo de mesmo nome que termina com a extensão .asc, que é nosso arquivo criptografado.

Caso tenha vários contatos para os quais queira enviar um mesmo arquivo basta incluir quantos user-id forem necessários
Por exemplo:

gpg --recipient user-id1 --recipient user-id2 --encrypt --armor mensagem.txt

Aqui adicionamos mais de um contato ao criptografar o arquivo. Cada um deles poderá receber o arquivo e descriptografar a mensagem com as respectivas chaves privadas, pois no código de criptografia consta a informação da chave pública do par de cada um dos contatos.

Descriptografando com a Chave Privada

Imaginemos agora que você recebeu um arquivo criptografado e precisa descriptografar para conseguir lê-lo.
Para isso basta executar o comando:

gpg --decrypt --pinentry-mode=loopback texto_protegido.txt.asc > texto_desprotegido.txt

O gpg irá solicitar sua senha da chave privada, após digitá-la o arquivo criptografado será descriptografado e salvo como texto_desprotegido.txt.
Agora você poderá ler o conteúdo da mensagem com bloco de notas ou mesmo no terminal usando.

Lembre-se: Cada par de chaves pode apenas criptografar e descriptografar entre elas. Uma chave privada pertencente a outro par de chaves não pode descriptografar um arquivo protegido por outra chave pública que não seja a do seu par.

Próximo Passo

No próximo artigo dessa série usaremos o programa de leitura de e-mails Thunderbird para enviar e receber e-mails criptografados com nosso par de chaves. O que é bem prático para não ficar digitando comando o tempo todo. :)


Nessa parte 3 veremos como proteger arquivos de texto simples com GPG.
Nessa parte 3 aprenderemos como proteger arquivos simples de texto para que apenas nossos destinatários tenham acesso.
0.5

Tags: segurança, privacidade, email