Como criptografar e descriptografar arquivos com GPG no Linux

Proteja sua privacidade com o comando gpg do Linux. Use criptografia de classe mundial para manter seus segredos seguros. Mostraremos como usar o gpg para trabalhar com chaves, criptografar arquivos e descriptografá-los.

GnuPrivacy Guard (GPG) permite que você criptografe arquivos com segurança para que apenas o destinatário pretendido possa descriptografá-los. Especificamente, o GPG está em conformidade com o OpenPGP padrão. É modelado em um programa chamado Pretty Good Privacy (PGP) PGP foi escrito em 1991 por Phil Zimmerman.

O GPG se baseia na ideia de duas chaves de criptografia por pessoa. Cada pessoa possui uma chave privada e uma chave pública. A chave pública pode descriptografar algo que foi criptografado com a chave privada.

Para enviar um arquivo com segurança, você o criptografa com sua chave privada e a chave pública do destinatário. Para descriptografar o arquivo, eles precisam da chave privada e da chave pública.

Você verá que as chaves públicas devem ser compartilhadas. Você precisa ter a chave pública do destinatário para criptografar o arquivo, e o destinatário precisa da sua chave pública para descriptografá-lo. Não há perigo em tornar suas chaves públicas apenas isso – públicas. Na verdade, existem servidores de chave pública para esse propósito, como veremos. As chaves privadas devem ser mantidas privadas. Se sua chave pública for de domínio público, sua chave privada deve ser mantida em segredo e segura.

Existem mais etapas envolvidas na configuração do GPG do que em usá-lo. Felizmente, você geralmente só precisa configurá-lo uma vez.

Gerando Suas Chaves

O comando gpg foi instalado em todas as distribuições Linux que foram verificadas, incluindo Ubuntu, Fedora e Manjaro.

Você não precisa usar o GPG com e-mail. Você pode criptografar arquivos e disponibilizá-los para download ou repassá-los fisicamente ao destinatário. Você precisa associar um endereço de e-mail às chaves geradas, portanto, escolha o endereço de e-mail que vai usar.

Aqui está o comando para gerar suas chaves. A opção –full-generate-key gera suas chaves em uma sessão interativa dentro da janela do seu terminal. Também será solicitada uma senha longa. Lembre-se de qual é a senha longa. Três ou quatro palavras simples unidas com pontuação é uma boa e modelo robusto para senhas e frases-senha.

gpg --full-generate-key

Você será solicitado a escolher um tipo de criptografia em um menu. A menos que você tenha um bom motivo para não fazê-lo, digite 1 e pressione Enter.

Você deve escolher um comprimento de bit para as chaves de criptografia. Pressione Enter para aceitar o padrão.

Você precisa especificar quanto tempo a chave deve durar. Se você estiver testando o sistema, insira uma curta duração, como 5 para cinco dias. Se você pretende manter esta chave, insira uma duração maior, como 1 ano, por um ano. A chave durará 12 meses e, portanto, precisará ser renovada após um ano. Confirme sua escolha com um Y.

  Como converter o Google Docs para arquivos do Libre Office no Linux

Você deve inserir seu nome e endereço de e-mail. Você pode adicionar um comentário, se desejar.

Sua senha será solicitada. Você precisará da senha sempre que trabalhar com suas chaves, portanto, certifique-se de saber qual é.

Clique no botão OK depois de inserir sua senha. Você verá esta janela enquanto trabalha com o gpg, portanto, lembre-se de lembrar sua senha.

A geração da chave ocorrerá e você retornará ao prompt de comando.

Gerando um Certificado de Revogação

Se sua chave privada se tornar conhecida por outras pessoas, você precisará desassociar as chaves antigas de sua identidade, para que possa gerar novas. Para fazer isso, você precisará de um certificado de revogação. Faremos isso agora e o armazenaremos em um lugar seguro.

A opção –output deve ser seguida pelo nome do arquivo do certificado que você deseja criar. A opção –gen-revoke faz com que o gpg gere um certificado de revogação. Você deve fornecer o endereço de e-mail que usou quando as chaves foram geradas.

gpg --output ~/revocation.crt --gen-revoke [email protected]

Você será solicitado a confirmar que deseja gerar um certificado. Pressione Y e pressione Enter. Você será questionado sobre o motivo pelo qual está gerando o certificado. Como estamos fazendo isso antes do tempo, não temos certeza. Pressione 1 como um palpite plausível e pressione Enter.

Você pode inserir uma descrição, se desejar. Pressione Enter duas vezes para encerrar sua descrição.

Você será solicitado a confirmar suas configurações, pressione Y e pressione Enter.

O certificado será gerado. Você verá uma mensagem reforçando a necessidade de manter este certificado seguro.

Ele menciona alguém chamado Mallory. As discussões sobre criptografia têm usado por muito tempo Bob e Alice como as duas pessoas se comunicando. Existem outros personagens coadjuvantes. Eva é uma bisbilhoteira, Mallory é um atacante malicioso. Tudo o que precisamos saber é que devemos manter o certificado seguro e protegido.

No mínimo, vamos remover todas as permissões, exceto as nossas, do certificado.

chmod 600 ~/revocation.crt

Vamos verificar com ls para ver quais são as permissões agora:

ls -l

Perfeito. Ninguém além do proprietário do arquivo – nós – pode fazer nada com o certificado.

Importando a chave pública de outra pessoa

Para criptografar uma mensagem que outra pessoa pode descriptografar, devemos ter sua chave pública.

Se você tiver recebido a chave em um arquivo, poderá importá-lo com o seguinte comando. Neste exemplo, o arquivo de chave é denominado “mary-geek.key”.

gpg --import mary-geek.key

A chave é importada e você vê o nome e o endereço de e-mail associados a essa chave. Obviamente, deve corresponder à pessoa de quem você o recebeu.

Também existe a possibilidade de que a pessoa de quem você precisa de uma chave tenha carregado sua chave em um servidor de chave pública. Esses servidores armazenam as chaves públicas de pessoas de todo o mundo. Os servidores principais são sincronizados periodicamente para que as chaves estejam universalmente disponíveis.

  Como instalar e configurar o Plex Media Server no Linux

O servidor de chave pública do MIT é um servidor de chave popular e regularmente sincronizado, portanto, a pesquisa deve ser bem-sucedida. Se alguém fez upload de uma chave recentemente, pode demorar alguns dias para que ela apareça.

A opção –keyserver deve ser seguida pelo nome do servidor de chaves que você deseja pesquisar. A opção –search-keys deve ser seguida pelo nome da pessoa que você está procurando ou seu endereço de e-mail. Usaremos o endereço de e-mail:

gpg --keyserver pgp.mit.edu --search-keys [email protected]

As correspondências são listadas para você e numeradas. Para importar um, digite o número e pressione Enter. Nesse caso, há uma única correspondência, então digitamos 1 e pressionamos Enter.

A chave é importada e vemos o nome e o endereço de e-mail associados a essa chave.

Verificando e Assinando uma Chave

Se você recebeu um arquivo de chave pública de alguém conhecido, pode dizer com segurança que pertence a essa pessoa. Se você baixou de um servidor de chave pública, pode sentir a necessidade de verificar se a chave pertence à pessoa a quem se destina.

A opção –fingerprint faz com que o gpg crie uma seqüência curta de dez conjuntos de quatro caracteres hexadecimais. Você pode pedir à pessoa que lhe envie a impressão digital de sua chave.

Você pode então usar a opção –fingerprint para gerar a mesma sequência de impressão digital de caracteres hexadecimais e compará-los. Se corresponderem, você sabe que a chave pertence a essa pessoa.

gpg --fingerprint [email protected]

A impressão digital é gerada.

Quando estiver convencido de que a chave é genuína e de propriedade da pessoa à qual deveria estar associada, você pode assinar a chave.

Se você não fizer isso, ainda poderá usá-lo para criptografar e descriptografar mensagens de e para essa pessoa. Mas o gpg sempre perguntará se você deseja prosseguir porque a chave não está assinada. Usaremos a opção apropriadamente chamada –sign-key e forneceremos o endereço de e-mail da pessoa, para que o gpg saiba qual chave assinar.

gpg --sign-key [email protected]

Você verá informações sobre a chave e a pessoa, e será solicitado a verificar se realmente deseja assinar a chave. Pressione Y e pressione Enter para assinar a chave.

Como compartilhar sua chave pública

Para compartilhar sua chave como um arquivo, precisamos exportá-la do armazenamento de chaves local gpg. Para fazer isso, usaremos a opção –export, que deve ser seguida pelo endereço de e-mail que você usou para gerar a chave. A opção –output deve ser seguida pelo nome do arquivo para o qual você deseja que a chave seja exportada. A opção –armor diz ao gpg para gerar a saída de armadura ASCII em vez de um arquivo binário.

gpg --output ~/dave-geek.key --armor --export [email protected]

Podemos dar uma olhada dentro do arquivo-chave com menos.

less dave-geek.key

A chave é mostrada em toda a sua glória:

Você também pode compartilhar sua chave pública em um servidor de chave pública. A opção –send-keys envia a chave para o servidor de chaves. A opção –keyserver deve ser seguida pelo endereço da web do servidor de chave pública. Para identificar qual chave enviar, a impressão digital da chave deve ser fornecida na linha de comando. Observe que não há espaços entre os conjuntos de quatro caracteres.

  Como fazer o Linux parecer com o Windows Vista

(Você pode ver a impressão digital de sua chave usando a opção –fingerprint.)

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

Você receberá a confirmação de que a chave foi enviada.

Criptografando arquivos

Estamos finalmente prontos para criptografar um arquivo e enviá-lo para Mary. O arquivo é denominado Raven.txt.

A opção –encrypt diz ao gpg para criptografar o arquivo, e a opção –sign diz para ele assinar o arquivo com seus detalhes. A opção –armor diz ao gpg para criar um arquivo ASCII. A opção -r (destinatário) deve ser seguida pelo endereço de e-mail da pessoa para a qual você está enviando o arquivo.

gpg --encrypt --sign --armor -r [email protected]

O arquivo é criado com o mesmo nome do original, mas com “.asc” anexado ao nome do arquivo. Vamos dar uma olhada por dentro.

less Raven.txt.asc

O arquivo é completamente ilegível e só pode ser descriptografado por alguém que tenha sua chave pública e a chave privada de Maria. A única pessoa que pode ter os dois deve ser Mary.

Agora podemos enviar o arquivo para Maria, com a certeza de que ninguém mais pode descriptografá-lo.

Descriptografando arquivos

Maria enviou uma resposta. Ele está em um arquivo criptografado chamado coded.asc. Podemos descriptografá-lo facilmente usando a opção –decrypt. Vamos redirecionar a saída para outro arquivo chamado plain.txt.

Observe que não precisamos dizer ao gpg de quem é o arquivo. Ele pode descobrir isso a partir do conteúdo criptografado do arquivo.

gpg --decrypt coded.asc > plain.txt

gpg --decrypt coded.asc> plain.txt em uma janela de terminal ”largura =” 646 ″ altura = ”212 ″ onload =” pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); ”  onerror = ”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);”> </p>
<p> Vamos examinar o arquivo plain.txt: </p>
<pre> less plain.txt </ pre > <p> <img src =

O arquivo foi descriptografado com sucesso para nós.

Atualizando suas chaves

Periodicamente, você pode pedir ao gpg para verificar as chaves que possui em um servidor de chave pública e atualizar as que foram alteradas. Você pode fazer isso a cada poucos meses ou quando receber uma chave de um novo contato.

A opção –refresh-keys faz com que o gpg execute a verificação. A opção –keyserver deve ser seguida pelo servidor de chaves de sua escolha. Uma vez que as chaves tenham sido sincronizadas entre os servidores de chaves públicas, não importa qual você escolher.

gpg --keyserver pgp.mit.edu --refresh-keys

O gpg responde listando as chaves verificadas e informando se alguma delas foi alterada ou atualizada.

Privacidade é um tema quente

A privacidade nunca está longe das notícias nos dias de hoje. Quaisquer que sejam suas razões para querer manter suas informações seguras e privadas, o gpg fornece um meio simples de aplicar criptografia incrivelmente forte a seus arquivos e comunicações.

Existem outras maneiras de usar o gpg. Você pode obter um plugin para Thunderbird chamado Enigmail. Ele se conecta diretamente à configuração do gpg para permitir que você criptografe mensagens de e-mail de dentro do Thunderbird.