Categories
Linux Tutoriais

5 comandos do GPG para criptografar e descriptografar arquivos

Minha relação de comandos úteis para criptografar e descriptografar arquivos com o gpg na CLI.

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/.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

8 replies on “5 comandos do GPG para criptografar e descriptografar arquivos”

gpg não funciona porque não pede senha para descriptografar. O arquivo permanece inseguro.

Olá Elias,

Năo estou conseguindo acessar meu disco. Pela live usb
consigo ver as partições aí em baixo: Eu criptografei o ubuntu e a home. A senha (chave de segurança) ele năo reconhece mais. O que fazer? Help me…

/dev/sda1: UUID=”e3afe3c9-69ed-45f6-b22c-c939506f5b4f” TYPE=”ext2″ PARTUUID=”69038d44-01″
/dev/loop0: TYPE=”squashfs”
/dev/sda5: UUID=”446f5c38-4745-493a-a37f-0c3ccdee38f2″ TYPE=”crypto_LUKS” PARTUUID=”69038d44-05″
/dev/sdb1: UUID=”2017-02-15-21-44-13-00″ LABEL=”Ubuntu 16.04.2 LTS amd64″ TYPE=”iso9660″ PTUUID=”15e2543d” PTTYPE=”dos” PARTUUID=”15e2543d-01″
/dev/sdb2: SEC_TYPE=”msdos” UUID=”E561-C446″ TYPE=”vfat” PARTUUID=”15e2543d-02″

Olá, gostaria de uma ajuda …
Tenho uma pasta com arquivos importantes (documentos em PDF e alguns em formato jpg. Tirei fotos de algumas garantias e notas fiscais de uma televisão e outros eletrodomesticos que comprei) e não queria criptografar um por um. Tem como criptografar a pasta inteira com o GPG? Não consigo achar um comando para isso. Só para criptografar arquivo por arquivo
Grato

Elias, o gpg encripta arquivos de shell script deixando eles funcionais?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.