Proteja a sua privacidade utilizando o comando `gpg` no Linux. Utilize criptografia de nível avançado para assegurar os seus segredos. Este guia demonstra como usar o `gpg` para gerenciar chaves, encriptar e desencriptar ficheiros.
O Gnu Privacy Guard (GPG) permite que encripte ficheiros de forma segura, garantindo que apenas o destinatário pretendido possa desencriptá-los. O GPG segue o padrão OpenPGP, baseado num programa denominado Pretty Good Privacy (PGP), criado por Phil Zimmerman em 1991.
O GPG usa o conceito de duas chaves de criptografia por indivíduo: uma chave privada e uma chave pública. A chave pública pode desencriptar conteúdo que foi encriptado com a chave privada.
Para enviar um ficheiro de forma segura, é necessário encriptá-lo com a sua chave privada e a chave pública do destinatário. Para desencriptar, o destinatário usa a sua chave privada e a sua chave pública.
Chaves públicas são projetadas para serem compartilhadas livremente, e existem servidores públicos de chaves para esse propósito. Já as chaves privadas devem ser mantidas em segredo. Se a sua chave pública se torna de conhecimento geral, sua chave privada deve ser mantida em segurança.
Configurar o GPG requer alguns passos, mas felizmente, geralmente só precisa ser feito uma vez.
Criando as Suas Chaves
O comando `gpg` vem instalado em várias distribuições Linux, como Ubuntu, Fedora e Manjaro.
O GPG não se limita ao uso com e-mail; pode ser usado para encriptar ficheiros para download ou entrega física. É preciso associar um endereço de e-mail às chaves geradas.
O comando abaixo cria as chaves numa sessão interativa. Será necessário criar uma senha forte. Escolha uma combinação de palavras com pontuação, que seja segura e fácil de recordar.
gpg --full-generate-key
Escolha um tipo de encriptação no menu, e pressione Enter para aceitar a opção padrão.
Escolha um comprimento de bit para as chaves de encriptação, e pressione Enter para aceitar o padrão.
Especifique a validade da chave, que pode ser curta (ex: 5 dias para testes) ou longa (ex: 1 ano). Confirme sua escolha digitando `Y`.
Insira o seu nome e endereço de e-mail, e adicione um comentário opcional.
A senha será solicitada. É crucial lembrar-se dela, pois ela será necessária para interagir com as suas chaves.
Clique em OK após inserir a senha. A janela será exibida sempre que usar o `gpg`, por isso, lembre-se dela.
A geração da chave será concluída, e você retornará ao prompt de comando.
Gerando um Certificado de Revogação
Se a sua chave privada for comprometida, você precisará desassociar as chaves antigas da sua identidade. Para isso, é essencial um certificado de revogação. Vamos criá-lo e armazená-lo de forma segura.
Use a opção `–output` para definir o nome do arquivo do certificado e a opção `–gen-revoke` para gerar o certificado. Inclua o endereço de e-mail usado na criação das chaves.
gpg --output ~/revocation.crt --gen-revoke [email protected]
Confirme a criação do certificado pressionando `Y`. Escolha um motivo plausível para a revogação (ex: 1) e pressione Enter.
Adicione uma descrição opcional e finalize-a pressionando Enter duas vezes.
Confirme suas configurações com `Y` e pressione Enter.
O certificado será gerado, e você verá uma mensagem sobre a importância de mantê-lo seguro.
Em discussões sobre criptografia, geralmente se usa os personagens Alice e Bob como os comunicadores, e Eva como a bisbilhoteira. Mallory representa um atacante malicioso. O certificado deve ser mantido protegido.
Para isso, remova todas as permissões do certificado, exceto as suas:
chmod 600 ~/revocation.crt
Verifique as permissões usando `ls -l`:
ls -l
As permissões estão corretas. Apenas o dono do arquivo pode acessá-lo.
Importando a Chave Pública de Outra Pessoa
Para enviar uma mensagem que outra pessoa possa desencriptar, é necessário ter a chave pública dela.
Se a chave foi recebida num arquivo, importe-a usando o seguinte comando, substituindo `mary-geek.key` pelo nome do arquivo:
gpg --import mary-geek.key
A chave será importada, e você verá o nome e o e-mail associados a ela, que devem corresponder à pessoa de quem a recebeu.
Outra alternativa é que a pessoa tenha carregado a sua chave num servidor de chaves públicas. Esses servidores armazenam chaves públicas de pessoas em todo o mundo. Os servidores principais sincronizam-se para que as chaves estejam acessíveis universalmente.
O servidor de chaves públicas do MIT é popular e sincronizado regularmente, o que garante que a pesquisa seja bem-sucedida. Se a chave foi carregada recentemente, pode levar alguns dias para aparecer nos servidores.
Use a opção `–keyserver` seguida do nome do servidor e a opção `–search-keys` seguida pelo nome ou e-mail da pessoa procurada:
gpg --keyserver pgp.mit.edu --search-keys [email protected]
As correspondências serão listadas. Digite o número da chave desejada e pressione Enter. Se houver uma única correspondência, digite `1`.
A chave será importada, mostrando o nome e o e-mail associados.
Verificando e Assinando uma Chave
Se recebeu um arquivo de chave pública de alguém conhecido, pode estar seguro de que ele pertence à pessoa certa. Se a chave foi baixada de um servidor público, é preciso verificar se ela corresponde à pessoa desejada.
A opção `–fingerprint` gera uma sequência de dez conjuntos de quatro caracteres hexadecimais. Peça à pessoa que envie o fingerprint da sua chave.
Use a opção `–fingerprint` para gerar a mesma sequência na sua máquina e compare as duas sequências. Se as sequências corresponderem, a chave pertence à pessoa em questão.
gpg --fingerprint [email protected]
O fingerprint será gerado.
Depois de se certificar de que a chave é genuína, você pode assiná-la.
Mesmo sem assinar, é possível usá-la para encriptar e desencriptar mensagens, mas o `gpg` perguntará se quer prosseguir, pois a chave não está assinada. Use a opção `–sign-key` e forneça o endereço de e-mail da pessoa, para que o `gpg` saiba qual chave assinar.
gpg --sign-key [email protected]
Informações sobre a chave e a pessoa serão exibidas. Confirme que deseja assinar a chave digitando `Y` e pressionando Enter.
Como Compartilhar a Sua Chave Pública
Para partilhar a sua chave como um arquivo, é preciso exportá-la do armazenamento de chaves local do `gpg`. Use a opção `–export`, seguida do seu e-mail, e a opção `–output` seguida do nome do arquivo. A opção `–armor` gera um arquivo ASCII em vez de um binário.
gpg --output ~/dave-geek.key --armor --export [email protected]
Analise o conteúdo do arquivo com o comando `less`:
less dave-geek.key
A chave será exibida.
Você também pode compartilhar sua chave num servidor de chaves públicas. Use a opção `–send-keys`, seguida do endereço do servidor. É preciso usar o fingerprint da chave para identificar qual chave enviar (sem espaços entre os conjuntos de caracteres). Consulte o fingerprint da sua chave com a opção `–fingerprint`.
gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4
Você receberá uma confirmação de que a chave foi enviada.
Encriptando Ficheiros
Agora, estamos prontos para encriptar um ficheiro chamado `Raven.txt` e enviá-lo para Mary. Use a opção `–encrypt` para encriptar, a opção `–sign` para assinar, a opção `–armor` para criar um arquivo ASCII e a opção `-r` (destinatário) seguida do endereço de e-mail do destinatário.
gpg --encrypt --sign --armor -r [email protected]
Um novo arquivo chamado `Raven.txt.asc` será criado. Veja o seu conteúdo com `less`:
less Raven.txt.asc
O ficheiro é ilegível, e apenas pode ser desencriptado por alguém que tenha a sua chave pública e a chave privada de Maria. Apenas a Mary deve ter as duas.
O ficheiro pode agora ser enviado para Mary, com a certeza de que mais ninguém pode lê-lo.
Desencriptando Ficheiros
Maria enviou uma resposta num arquivo encriptado chamado `coded.asc`. Podemos desencriptá-lo com a opção `–decrypt`. Redirecione o resultado para um arquivo chamado `plain.txt`.
Não é preciso indicar ao `gpg` de quem é o ficheiro. O `gpg` consegue identificar isso pelo conteúdo encriptado do arquivo.
gpg --decrypt coded.asc > plain.txt
Verifique o conteúdo de `plain.txt` com `less`:
less plain.txt
O arquivo foi desencriptado com sucesso.
Atualizando as Suas Chaves
Periodicamente, pode pedir ao `gpg` para verificar as chaves nos servidores públicos e atualizar aquelas que foram alteradas. Faça isso a cada poucos meses, ou sempre que receber uma chave nova.
Use a opção `–refresh-keys` para realizar a verificação. A opção `–keyserver` define o servidor de chaves a usar. Uma vez que as chaves são sincronizadas entre os servidores, não importa qual deles escolher.
gpg --keyserver pgp.mit.edu --refresh-keys
O `gpg` responde com a lista de chaves verificadas e indica se alguma foi alterada ou atualizada.
Privacidade é um Tópico Essencial
A privacidade é um tema atual e recorrente. Independentemente das razões para querer proteger as suas informações, o `gpg` oferece uma forma simples de aplicar criptografia aos seus ficheiros e comunicações.
Existem outras maneiras de usar o `gpg`. Pode usar um plugin chamado Enigmail para o Thunderbird, que se conecta diretamente às configurações do `gpg` para encriptar e-mails no Thunderbird.