Segurança Imbatível: Criptografe seus Arquivos com GPG no Linux

Foto do autor

By luis

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.