5 comandos do GPG para criptografar e descriptografar arquivos

Os comandos que seguem, podem ser usados com o utilitário gpg, que pode ser instalado a partir dos repositórios oficiais da maioria das distribuições GNU/Linux.
Este post tem o propósito de fazer “um apanhado” geral do uso da ferramenta, nas funções de criptografia/descriptografia.

Caso tenha dúvidas ou queira se aprofundar mais sobre algum procedimento, clique nos links do texto.

gpg criptografia

Para criptografar um arquivo texto (por exemplo, ‘texto.txt’) com o uso de uma senha simples, definida durante o procedimento, use a opção ‘-c’:


gpg -c texto.txt

O comando irá lhe pedir uma senha (e confirmar, em seguida) e criar um novo arquivo, com extensão .gpg.
Se o arquivo, com esta extensão, já existir, você será avisado com a mensagem “File ‘texto.txt.gpg’ exists. Overwrite? (y/N) “.
Neste caso, tecle ‘y’ para sobrescrever ou ‘N’ para interromper a execução e voltar à linha de comando.
Leia mais sobre esta opção aqui.
Se usar ‘-e’, é possível criptografar usando a chave pública de um (ou mais) destinatário(s) — adicionando uma camada extra de proteção contra bisbilhoteiros corporativos ou governamentais.
Segue um exemplo:


gpg -e texto.txt

You did not specify a user ID. (you may use "-r")

Current recipients:

Enter the user ID.  End with an empty line: hermengardaafonso@yahoo.com.br
No such user ID.

Current recipients:
rsa2048/5ASDFS7832142418 2017-11-23 "Hermengarda Afonso" hermengardaafonso@yahoo.com.br

Enter the user ID.  End with an empty line: justincase@gmail.com

Current recipients:
rsa2048/4FE73CDD0A83E688 2017-11-23 "Justin Case justincase@gmail.com"
rsa2048/5ASDFS7832142418 2017-11-23 "Hermengarda Afonso" hermengardaafonso@yahoo.com.br

Enter the user ID.  End with an empty line:

Vamos entender o que houve aqui:

  • Você pode especificar mais de um destinatário a ter acesso ao arquivo. Digite o email dele ou dela e tecle Enter para fornecer o email do próximo.
  • Basta dar um ‘Enter’, para uma linha em branco, para o gpg entender que não há mais novos recipients a acrescentar.

Você também pode indicar o destinatário direto na linha de comando, com a opção ‘-r’:


gpg -er justincase@gmail.com texto.txt

Se quiser assinar um arquivo texto com sua chave secreta (privada), use a opção ‘-s’:


gpg -s texto.txt

Uma variante, para este comando é dado pela opção --clearsign.
Ele acrescenta a sua assinatura e mantém o arquivo legível para as pessoas que não possuem suporte ao GPG:


gpg --clearsign loremipsum.txt

cat loremipsum.txt.asc 

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

O que é o Lorem Ipsum?

 O Lorem Ipsum é um texto modelo da indústria tipográfica e de impressão. 

 O Lorem Ipsum tem vindo a ser o texto padrão usado por estas indústrias desde o ano de 1500, quando uma misturou os caracteres de um texto para criar um espécime de livro.

 Este texto não só sobreviveu 5 séculos, mas também o salto para a tipografia electrónica, mantendo-se essencialmente inalterada.

 Foi popularizada nos anos 60 com a disponibilização das folhas de Letraset, que continham passagens com Lorem Ipsum, e mais recentemente com os programas de publicação como o Aldus PageMaker que incluem versões do Lorem Ipsum.


Fonte: https://pt.lipsum.com/
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEwiKr3xCRZwLRemeMKsDy8hFgxDsFAlodsXAACgkQKsDy8hFg
xDvtCQf9EqpnF++3RbYb+LJBhlmjKdflJTg8xDX8WWFKDxL52dRHx9Hy1K7SlOo5
7gm+O38u0OVlPMx2OeUEBj9QSw9E9rKBOr/sMT2uK5ZoRDvTRXsfhcm0/oI5Xowa
9CtG2rWcH2RBZ+wiuFOQmPzMv7/T50wyx1Vxcqrw264XQ/1zPDegBajhe8CrgTXY
HbkLDfXeNBwfOY3GAvTwbRFlUa/bJ2mOxkAJyn8bynU6VaqEXKNL1rKnazHNrNwp
kHaQHw5+ZEdWzpslxPnuLblsV8XjWIsLYsCND4gZhcAA0jCTEoTWScUd3BbWBjm7
zZFvpaRT1/Rjd74cwRI3DerMT4vy/g==
=Lpy5
-----END PGP SIGNATURE----

Como é possível observar, acima, o conteúdo continua visível a qualquer. Ele foi acrescido da assinatura (PGP signature) do seu criador.
Neste caso, o procedimento pode ajudar a dar legitimidade a um arquivo ou certificar sua procedência.

O comando que segue, pode ser usado para assinar seu arquivo com sua chave privada e, em seguida, criptografá-lo com a chave pública do destinatário (recipient).


gpg -se -r justincase@email loremipsum.txt

… que irá gerar um arquivo ‘loremipsum.txt.gpg’, que poderá ser descriptografado pelo usuário (userid) justincase@email.

Ao descriptografar o arquivo ‘loremipsum.txt.gpg’, o programa irá criar um arquivo de saída, chamado ‘loremipsum.txt’.
Se você prefere que ele crie um arquivo de saída, descriptografado, com outro nome, use a opção ‘-o’:


gpg -o outroarquivo.txt loremipsum.txt.gpg

Referências

Texto sobre o Lorem Ipsum: https://pt.lipsum.com/.

Como criptografar seus arquivos com o gpg

O GnuPG, ou GPG, é uma ferramenta completa e poderosa que permite encriptar e proteger suas informações e sua comunicação.
O software oferece um sistema versátil de gestão de chaves, bem como módulos de acesso para todos os tipos de diretórios de chaves públicas.
logo do GnuPG
Neste artigo, vou mostrar como usar as opções básicas de encriptar e decriptar arquivos, na linha de comando — muito embora possa ser facilmente integrada a outras aplicações gráficas.
Por ser software livre o GnuPG respeita sua liberdade, sua privacidade e tem código aberto — que pode ser auditado.

O aplicativo vem já instalado nas grandes distribuições Linux — o que inclui o Fedora, o Ubuntu, Linux Mint, Debian etc. — e segue os padrões definidos pelo OpenPGP.

A sua distro Linux provavelmente vem com a versão clássica, disponível nos repositórios (que tem foco na portabilidade).
É possível baixar outras versões estáveis e mais avançadas, com suporte a outros recursos, no site oficial (veja os links ao final do artigo).

Mesmo que você não tenha nada a esconder, o uso de encriptação ajuda a preservar a privacidade das pessoas com quem você se comunica e dificulta a vida dos burocratas que comandam sistemas de vigilância, mundo afora.

Se você tem informações importantes a esconder — tais como dados da sua empresa, você está em boa companhia. Este é o sistema usado por Edward Snowden para esconder documentos comprometedores.

Como encriptar com o gpg

O comando pode ser usado para encriptar e decriptar eficientemente arquivos no Linux, FreeBSD e outros sistemas operacionais. Pode ser usado, também para criar assinaturas digitais.
Abra um terminal (Ctrl + Alt +T, no Ubuntu) e experimente os exemplos que seguem.
Para simplesmente criptografar um arquivo no Linux, use o gpg com a opção -c.
No exemplo, abaixo, o gpg é usado para encriptar o arquivo historico.txt:


gpg -c historico.txt

Após fornecer a senha e confirmar, o sistema irá criar um segundo arquivo historico.txt.gpg, já criptografado — este é o arquivo seguro.
gpg confirmar senha
Se este arquivo tiver informações sensíveis, é prudente apagar o original.


rm historico.txt

Tenha cuidado especial também com suas senhas.
Use senhas seguras para sua conta de usuário e senhas de frase para sua chave GnuPG secreta.
A sua senha é a parte mais frágil de todo o sistema de encriptação —. Programas de ataque por força bruta ou dicionário são fáceis de fazer e implementar.

Como decriptar um arquivo, com o gpg

Aproveitando o exemplo já dado, vou mostrar abaixo como recuperar os dados do arquivo encriptado historico.txt.gpg. É simples:


gpg historico.txt.gpg

gpg-password-decriptar-box
Diferenças entre um arquivo “normal” e criptografado:


ls -lah hist*

-rw-r--r-- 1 justincase henry 805 Jan 20 16:16 historico.txt
-rw-r--r-- 1 justincase henry 318 Jan 20 14:57 historico.txt.gpg

Se você esquecer a senha, será impossível reverter a criptografia.
O arquivo com extensão .gpg é um arquivo binário, em oposição ao original .txt.

Como usar o padrão ASCII

Você pode criar arquivos encriptados no padrão ASCII, em vez de usar o padrão OpenPGP (binário e mais seguro), com a opção -a.
Veja como:


gpg -ac historico.txt

O procedimento resultará na criação do arquivo historico.txt.asc, cujo conteúdo pode ser visto assim:


cat historico.txt.asc 

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1

jA0EAwMCOg2umLcrybhgycBpiRafCJBUEyKIyDMfXzEfCd+PwJVxI/+63ypL8lFZ
7+0YgzmSee+sooLTplJGbvlAVz23Y2KCcgmOC3v0URvUkT+7qhCsWLqYP0J21Ikr
Ie3DpqYwWxi9jeZ6Ae8cQDu0tUNVDV4zyV4Oim/DQZk7WwpIXgwwjnbfHEtdLqX3
etfq5OD8FMJN2nPoigIwLF6oq3m+CWGC64BqRx8QS81qMk6W8qmssC9iFYk84Csp
jOebc98pPjnt/5tnkHuISMRicLjtWKvlok2P80Nmv6h6WjkfpMmMZ4vAlkM7GtLl
IHiU9rPp31djpwpQoNQQN8VzJxMq4IdR0JAMaOUSV/oY6Q3voJOW8NW4+sOgLqAr
Ur9Tzwn+WMOo2pxBdjZ0/xI4mG6txDy6YLlh
=Tp7M
-----END PGP MESSAGE-----

Referências