O GNU Privacy Guard ou GnuPG (GPG ou segurança da privacidade GNU, em uma tradução livre) é um software livre desenvolvido para oferecer uma solução segura, com padrões abertos e auditáveis para criptografar dados de usuários.
Com desenvolvimento iniciado em 1997, na Alemanha, teve sua primeira versão estável lançada em 1999.
É, hoje, uma solução madura e sólida para dar mais segurança às suas informações — tanto no armazenamento, quanto no tráfego.
O GPG pode dar uma camada concreta de segurança para arquivos desde os mais simples, de texto, a pacotes volumosos de backups.
O software pode manter suas conversas por chat ou email protegidas de olhares bisbilhoteiros do governo, de grandes corporações ou dos seus concorrentes empresariais.
Usuários Linux dispõem de clientes de email com a tecnologia integrada, desde a instalação — como o Kmail (KDE) e o Evolution (GNOME).
Outros aplicativos podem receber a funcionalidade através de plugins.
Resumidamente, é uma solução para criptografar e descriptografar, além de assinar digitalmente os dados que você envia — para garantir ao recebedor que as informações estão realmente vindo de você.
Quem ainda não tem o hábito de criptografar informações sensíveis, deveria começar a levar isto a sério.
Os tempos atuais já exigem que se tenha este tipo de cuidados com os dados, seja no servidor, no computador pessoal ou do trabalho.
Este post é baseado no GNU/Linux (Debian 10 testing “Buster”, mais especificamente). Os conceitos, contudo se aplicam a qualquer outra distribuição ou sistema operacional.
É importante garantir que seus dados não serão facilmente lidos pelas pessoas erradas.
Este artigo parte do zero, ou seja, do pressuposto de que você não sabe nada sobre o GPG ainda.
Inúmeras aplicações fazem uso da criptografia com o GPG.
Na medida em que o seu conhecimento sobre o assunto for se consolidando, sua compreensão irá melhorar sobre o funcionamento deste recurso.
Neste sentido, vamos fazer um passo a passo, que começa com a instalação à geração de uma chave pública e outra privada para você usar.
Vamos começar pela linha de comando (CLI) e, em outros artigos, vou mostrar como usar a criptografia em aplicativos (CLI e GUI).
Abra o terminal!
Instalação do GnuPG
Baixe e instale o pacote de criptografia dos repositórios.
No Debian, no Ubuntu e nas outras distribuições derivadas destas, use o apt (ou apt-get):
sudo apt install gnupg
Isto é tudo o que você precisa, por enquanto.
Vamos em frente.
Como funcionam as chaves criptográficas
Tecnicamente, o gpg já está pronto para ser usado para criptografar seus arquivos.
Para usar todos os recursos do software, é necessário gerar algumas chaves criptográficas.
São duas:
- a chave pública ou public key
- a chave privada ou private key
É com este par de chaves que seus dados são codificados/decodificados.
Elas são associadas ao seu endereço de email.
A chave pública é a que você compartilha com as pessoas que desejam se comunicar com você, em segurança.
A chave privada, como o nome sugere, é a que só lhe diz respeito. Esta não é para ser compartilhada.
Quando você e outra pessoa trocam suas chaves públicas, podem passar a trocar mensagens privadas entre si.
Por exemplo, para enviar uma mensagem criptografada para João, é necessário que você e ele troquem chaves públicas entre si.
Então você abre o seu email (com suporte a criptografia) e digita sua mensagem para João.
Antes de enviar sua mensagem, clique no botão para criptografá-la.
A mensagem será codificada (ou embaralhada) com a chave pública de João e só ele poderá abri-la, com a chave privada dele.
Como gerar suas chaves criptográficas
Segue o passo a passo para criar seu par de chaves (pública e privada) para usar todo o potencial do GPG
No terminal rode o comando
gpg --gen-key
gpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Note: Use "gpg --full-generate-key" for a full featured key generation dialog.
GnuPG needs to construct a user ID to identify your key.
Real name:
O seu nome real será pedido, como primeiro requisito.
Em seguida, seu endereço de email.
Seja cuidadosa(o) e verifique se as informações estão corretas.
O gpg irá pedir para entrar uma senha (sua chave privada) — que deve ser o mais complexa possível, envolvendo caracteres alfanuméricos, números, letras alternadamente maiúsculas/minúsculas e símbolos.
O ponto mais fraco do GPG é a senha que você escolhe como chave privada. Sugiro ler sobre o uso do apg, para ajudar a gerar senhas pessoais mais seguras.
Ao confirmar, uma série de bytes aleatórios serão gerados, para compor a sua nova chave pública.
Este processo pode demorar um pouco.
É uma boa ideia manter o sistema ocupado com outras ações: usar o teclado, o mouse, abrir o conteúdo do pendrive etc. Com isto, você ajuda a “gerar ruído” a ser usado para aumentar a complexidade da sua public key.
Ao fim do processo, o gpg irá reportar a criação com sucesso da chave e exibir sua ID de chave pública, sua “impressão digital” (fingerprint), entre outras informações.
Com isto, você está pronto para os próximos passos.
Continue no terminal!
Como exportar sua chave pública
Este procedimento é muito importante.
Sem isto, não é possível às outras pessoas criptografarem mensagens exclusivas para você.
Para exportar sua chave pública, rode o seguinte comando:
gpg --armor --export seu-email > chave_publica.asc
Acima, substitua “seu-email” pelo email usado para criar a chave pública, anteriormente.
Este comando cria o arquivo chave_publica.asc (você pode usar outro nome, se quiser).
Este arquivo contém a sua chave pública. Se quiser ver o seu conteúdo, use o comando cat:
cat chave_publica.asc
-----BEGIN PGP PUBLIC KEY BLOCK-----
PkoQEWmlxNAEllQWoHwVbXBmgi6bkB945gg6M9QNLujLgfsDY0vAgeMMxTXbAnTR
BxL+w/PikSy44CIGy9EtQ+d27PpcrLkRM/HLABEBAAG0NkVsaWFzIFNlcnJhIFBy
YWNpYW5vIFBlcmVpcmEgPGVsaWFzcHJhY2lhbm9AZ21haWwuY29tPokBVAQTAQgA
PhYhBA2NPdDX0EfJoPcb2v2mn4cCXf7cBQJaB1EEAhsDBQkDwmcABQsJCAcCBhUI
CQoLAgQWAgMBAh4BAheAAAoJEP2mn4cCXf7cLU0H/3xW3ShRh1xXGQ5NLAmAuTOl
6D8ECyQmpxdhTJaiQ2wsosnrRIBi6XNuMj5b3Mhd51pVNlMadKRIWfNs99Yjaci5
S5oQz3oHwlIZ2C/g35utcHcTpShbSBJrm3bgY+dOeXtk2M0cuKPxJ4uyLvSfgknG
x1eqF6OAKhIqHi9NC7sW5YJ3Fq4zXh0gYyVTmLQ5O5LviPOGjn+B9IMg/Ewjk/vL
8rI4w1IRuXL+BAy3RKwv4Cb0qmsu2o0WfzkAEQEAAYkBPAQYAQgAJhYhBA2NPdDX
...
6D8ECyQmpxdhTJaiQ2wsosnrRIBi6XNuMj5b3Mhd51pVNlMadKRIWfNs99Yjaci5
S5oQz3oHwlIZ2C/g35utcHcTpShbSBJrm3bgY+dOeXtk2M0cuKPxJ4uyLvSfgknG
x1eqF6OAKhIqHi9NC7sW5YJ3Fq4zXh0gYyVTmLQ5O5LviPOGjn+B9IMg/Ewjk/vL
qGuITvoL2H2C+I6Z1hxLxnFq4BciiEXpErxTk+A+HbUYSTyCf4LsjZn0vVaYpq7C
sBBsFXTMWZS1osrgvkE9K05g/yEKBYxpFVR98hSKrmxfNSL8YPnjCXQ7vn7eV5K5
-----END PGP PUBLIC KEY BLOCK-----
Se quiser, você pode inserir este conteúdo no rodapé dos seus emails. Ele é para ser compartilhado com todo mundo que deseja te enviar informações criptografadas.
Se achar mais cômodo, apenas envie o arquivo chave_publica.asc para as pessoas.
Outra solução é enviar a sua chave pública para um servidor (public key server), de forma que ela fique catalogada e possa ser acessada por qualquer pessoa no mundo que queira trocar mensagens seguras com você.
Para isto, use a opção --list-keys
:
gpg --list-keys
/home/justincase/.gnupg/pubring.kbx ----------------------------------- pub rsa2048 2017-11-23 [SC] [expires: 2019-11-23] 6750982194C7BB445CE45LL0B092D0E68C08315A uid [ultimate] Justin Casesub rsa2048 2017-11-23 [E] [expires: 2019-11-23]
Preste atenção na cadeia de caracteres na segunda linha, logo após a data de expiração. No meu caso, é a seguinte: 6750982194C7GG445CE45FF0B092D0E68C08315A.
Esta é a identificação primária (primary ID), associada à chave que será exportada.
Agora rode o seguinte comando:
gpg --keyserver pgp.mit.edu --send-keys 6750982194C7CC445CE45BB0B092D0E68C08315A
gpg: sending key 2194C7GG445CE45FF0 to hkp://pgp.mit.edu
Você já deve ter deduzido que o comando acima envia sua chave pública para armazenamento em um dos servidores do MIT. Lá, ela poderá ser acessada e baixada por qualquer um.
Como acessar a chave pública de uma pessoa
Depois de exportada, sua public key poderá ser vista e usada para criar documentos criptografados para você, a partir do servidor do MIT:
Se a pessoa souber o seu nome ou o seu email, ela pode fazer uma busca no servidor, conforme a imagem abaixo:
Resultado da busca:
Como importar a chave pública de alguém
No caminho inverso, se você quiser enviar um email com conteúdo criptografado para alguém, vai precisar da chave pública desta pessoa.
Você pode obter a chave diretamente da pessoa ou de um servidor público.
De posse da chave, é necessário “importá-la”. Veja como fazer isso.
Vamos supor que a chave esteja dentro do arquivo ‘fulano_public_key.asc’. Use ‘--import
‘:
gpg --import ~/.PUBKEYS/fulano_public_key.asc
De acordo com a configuração de cada aplicativo que usa o GPG, o seu sistema vai saber aonde encontrar as chaves públicas que você tiver, aí.
Ou seja, se estiver usando o plugin Enigmail, o cliente de email Thunderbird fará uso intuitivo e automático da criptografia, quando requerido.
referências
https://pt.wikipedia.org/wiki/GNU_Privacy_Guard.
https://www.linux.com/learn/how-send-and-receive-encrypted-data-gnupg.