Como usar o GnuPG para criptografia no Linux

Você já teve informações confidenciais, como senhas ou informações de login do servidor, que precisava enviar a alguém por e-mail, mas não sabia como enviá-las com segurança para evitar que as informações caíssem em mãos erradas?

Aqui você aprenderá como transmitir com segurança mensagens e arquivos criptografados com PGP por meio da popular ferramenta gnupg. Vamos mergulhar de cabeça e aprender como proteger nossas comunicações!

Instale o gnupg

Se você nunca ouviu falar de PGP antes, verifique um excelente primer e explicação sobre PGP , que contém vários detalhes que não entraremos aqui por uma questão de brevidade. Primeiro verifique se o gnupg já está instalado ou não. No terminal, execute o comando:

 gnupg --version

Se ele exibir a versão do gnupg que você está executando no momento (deve ser v2 +), então está tudo pronto e pode ir para a próxima seção. Caso contrário, você pode instalar o gnupg executando:

 sudo apt-get install gnupg2

Quando terminar, verifique se ele está instalado:

 gnupg -- version

Assumindo que o gnupg foi instalado corretamente, isso exibirá o número da versão.

Gerar uma chave PGP

Usando criptografia assimétrica , você primeiro gerará um par de chaves PGP que consiste em uma chave pública e uma privada. A chave pública pode ser distribuída gratuitamente para qualquer pessoa de quem você deseja receber mensagens criptografadas, enquanto a chave privada é mantida em um local seguro.

As pessoas podem então criptografar mensagens para a chave pública e enviar uma mensagem criptografada, que pode ser descriptografada usando a chave privada. Para gerar uma execução de par de chaves:

 gpg --generate-key

Isso começará perguntando seu nome e endereço de e-mail, que não precisa ser necessariamente seu nome verdadeiro e e-mail. No entanto, é o que os outros verão ao selecionar para quem criptografar as mensagens, portanto, certifique-se de que seja algo pelo qual outras pessoas possam identificá-lo facilmente.

Em seguida, digite a letra O para confirmar o nome e o endereço de e-mail e será solicitado que você digite a senha desejada, que pode ser qualquer coisa que você desejar. Você precisará inserir essa senha sempre que desejar descriptografar uma mensagem enviada a você.

Depois de confirmar a senha, ele começará a gerar seu novo par de chaves PGP, o que pode levar alguns minutos para reunir entropia / dados aleatórios suficientes de seu computador. Sinta-se à vontade para sair do terminal por alguns minutos e fazer outra coisa até ver uma mensagem dizendo que sua chave foi gerada com sucesso.

Exporte sua chave pública

Agora que seu par de chaves foi gerado, você precisa exportar a chave pública para distribuir a outras pessoas. No terminal, execute o comando:

 gpg -a --export -e '[email protected]` > mykey.asc

Certifique-se de alterar '[email protected]' pelo endereço de e-mail que você forneceu ao gerar sua chave PGP. Agora você verá um novo arquivo no diretório atual denominado mykey.asc . Envie este arquivo para quem você deseja que possa enviar mensagens criptografadas.

Importar chaves públicas

Assim como agora você pode compartilhar sua chave pública com outras pessoas, as pessoas também compartilharão suas chaves públicas com você. Ao receber a chave PGP pública de alguém, salve o arquivo em um diretório e, acessando o terminal do mesmo diretório, execute:

 gpg --import key.asc

Isso importará a chave PGP pública da pessoa para o gnupg, permitindo que você comece a enviar mensagens criptografadas para ela. A qualquer momento você pode ver uma lista de todas as chaves PGP atualmente disponíveis no gnupg:

 gpg --list-keys

Você verá um monte de entradas semelhantes às abaixo, uma para cada chave disponível no gnupg:

 pub rsa3072 2020-01-30 [SC] [expires: 2022-01-29]
 8978168C4E79A08553E5789CD42A4A4EC1468CFE
 uid [ unknown] Matt Dizak <[email protected]>

As únicas informações que você precisa saber são o nome e o endereço de e-mail da entrada, que indica o proprietário da chave. Ao criptografar mensagens, você só precisará do endereço de e-mail do destinatário.

Criptografar mensagens via PGP

Por exemplo, você pode precisar enviar algumas informações confidenciais ao seu web designer, cuja chave PGP você já importou no endereço de e-mail [email protected]. Digite a mensagem desejada e salve-a em um arquivo de texto, por exemplo, mensagem.txt . No terminal e dentro do diretório onde reside a mensagem.txt, execute o comando:

 gpg -e -a -r '[email protected]' message.txt

Vamos quebrar rapidamente o comando acima:

  • -e especifica que estamos criptografando dados
  • -a afirma que queremos a saída em formato ASCII ou texto simples
  • -r significa destinatário, por isso é seguido pelo endereço de e-mail do nosso designer
  • Finalmente, vem o arquivo de mensagem que desejamos criptografar

Muito provavelmente, isso pedirá que você confirme se realmente deseja criptografar para esta chave pública, e você pode apenas pressionar a tecla Y para concordar. Um novo arquivo message.txt.asc será criado e, se você abrir o arquivo em um editor de texto, verá algo semelhante a:

 -----BEGIN PGP MESSAGE-----
 hQGMAzCBDnMltq9zAQv/ZHQ3tJq+feazdLa3thzQE2bhPx+7WaPZcX7SdkoyuKvw
 9faS7h9OwBjQ4vUyDKespSq3ZNf1pRgNoXijjs3MGEi5IsYxDgNWo1ZJv2qQqp36
 .....
 -----END PGP MESSAGE-----

Esta é a forma criptografada recém-gerada de nossa mensagem. Você pode anexar esse arquivo em um e-mail ou simplesmente copiar e colar o conteúdo desse arquivo no corpo de uma mensagem de e-mail.

O destinatário poderá então descriptografar a mensagem usando sua chave privada, garantindo que qualquer pessoa que veja esta mensagem durante o trânsito não consiga ver a versão em texto simples.

Criptografando arquivos binários

A seção acima explicou como criptografar mensagens de texto, mas e os arquivos binários? Ele funciona quase da mesma forma e, por exemplo, para criptografar um arquivo chamado images.zip , dentro do terminal, execute o comando:

 gpg -e -r '[email protected]' images.zip

A única diferença sendo a opção -a é removida, junto com o nome do arquivo de saída. Então, como antes, se solicitado a confirmar o uso da chave pública, simplesmente pressione a tecla Y para concordar.

Um novo arquivo chamado images.zip.gpg será criado, que é a versão criptografada de nosso arquivo zip que podemos enviar por e-mail para nosso designer como um anexo. Eles podem então descriptografar o arquivo ZIP usando sua chave privada.

Descriptografando mensagens

Você também precisa de uma maneira de descriptografar as mensagens enviadas para você. Lembre-se, para que alguém lhe envie uma mensagem criptografada, você deve primeiro compartilhar sua chave PGP pública com essa pessoa. Você obterá um bloco de texto criptografado, que parece o mesmo que criptografar uma mensagem, como:

 -----BEGIN PGP MESSAGE-----
 hQGMAzCBDnMltq9zAQv/ZHQ3tJq+feazdLa3thzQE2bhPx+7WaPZcX7SdkoyuKvw
 9faS7h9OwBjQ4vUyDKespSq3ZNf1pRgNoXijjs3MGEi5IsYxDgNWo1ZJv2qQqp36
 .....
 -----END PGP MESSAGE-----

Salve este bloco de texto em um arquivo como message.asc e, no terminal, execute o comando:

 gpg -d message.asc > message.txt

Você será solicitado a inserir sua senha, que é a mesma senha que você forneceu ao gerar inicialmente seu par de chaves PGP. Após inserir sua senha com sucesso, um arquivo message.txt será criado, contendo a versão descriptografada da mensagem em texto simples. Isso é tudo que há para fazer!

Parabéns, suas comunicações agora estão seguras!

Através deste guia, você aprendeu tudo o que é necessário para proteger adequadamente suas comunicações por meio da criptografia PGP. Você aprendeu como gerar um par de chaves PGP, exportar sua chave pública para compartilhar com outras pessoas, importar as chaves públicas de outras pessoas, além de como criptografar e descriptografar mensagens.

Da próxima vez que precisar enviar informações confidenciais por e-mail, você pode ter certeza de que apenas o destinatário pretendido poderá ver o conteúdo da mensagem, mantendo-a longe de visitantes indesejados. Boa criptografia!