umgeher's changelog

gnupg

PGP

“Cryptography is the ultimate form of non-violent direct action.”

– Julian Assange

PGP (Pretty Good Privacy) e’ um conjunto de software desenvolvido pelo Philip R. Zimmermann para assinar, encriptar e descriptar arquivos.

Hoje normalmente usamos o OpenPGP e o GnuPG, duas versoes open-source do PGP. Sendo o mais comum, e tratado aqui como default, o GnuPG.

Como funciona

O PGP gera um par de chaves, uma privada e uma publica. Cada chave e' uma longa string de chars gerados randomicamente e de forma unica para voce. Sua chave publica e’ ligada a sua chave privada usando uma funcao matematica especial.

A chave publica pode e deve ser distribuida para quem voce quiser. A chave publica que e’ usada para criptografar os arquivos para voce. Existem servidores de chaves publicas, que chamamos de keyserver. Neles e’ possivel enviar sua chave publica, facilitando a quem quiser enviar uma msg, arquivo ou qualquer outra coisa de forma criptografado para voce.

Ja’ a sua chave privada nao deve ser distribuida e nem compartilhada para ninguem. Repito, sua chave privada nao deve ser compartilhada ou distribuida para ninguem de forma nenhuma. A sua chave privada e’ usada para descriptar os arquivos e msgs que voce vai receber.

Ilustracao

Para efeito de ilustracao, imagine que voce e seu amigo querem trocar presentes e nao querem que ninguem saiba o que e’. Cada um de voces tem uma chave e um cadeado. Voces trocam os seus cadeados. Cada um coloca o presente em uma caixa e tranca com o cadeado. Depois de trancado, so’ quem tem a chave do cadeado pode abrir a caixa e pegar o presente.

O cadeado no caso e’ a sua chave publica. E a chave para abrir o cadeado e’ a chave privada.

Install

OpenBSD, meu OS do dia dia, ja’ vem com o GnuPG, se voce usa alguma distro Linux, bem provavel que ja’ venha com ele instalado, caso nao, procure a documentacao da sua distro.

Gerar par de chaves

Execute…

gpg --full-generate-key

Use a opcao 1 RSA and RSA. Coloque o maior keysize possivel, sempre. O recomendado e’ colocar uma data de expiracao da chave, no meu exemplo eu nao coloquei. Mas e’ recomendado 2 anos. Coloque suas informacoes, caso queira e digite uma senha forte e segura para essa chave.

gpg-full-generate-key

Upload da public key

Agora voce pode fazer o upload da sua public key para um KeyServer.

Primeiro, copie o seu keyID. Para saber seu keyID, digite gpg -k [seu@email].

gpg-list-keys

No meu caso e’ A2CF45BE990C0E05F3FB31809647DB206B51315F.

Agora voce pode fazer o upload da sua public key.

gpg --send-key [keyID]

Exportar public key

Uma opcao1 e’ exportar sua public key para voce copiar e colcar ou em um arquivo. Para isso digite…

gpg --export -a [seu@email]

Isso vai exportar sua chave para o console.

gpg-export

Caso queira para um arquivo apenas direcione para um arquivo.

gpg --export -a [seu@email] > publickey.asc

gpg-export

Fingerprint

Para ver seu fingerprint da sua chave, execute:

gpg --fingerprint [seu@email]

Cryptografar um arquivo

Para cryptografar um arquivo digite…

gpg -e -r [keyID/email] [arquivo]

gpg-e

Nesse exemplo, eu compactei o conteudo do diretorio keeper2 usando o comando tar -zcvf k.tar.gz keeper. Depois eu cryptografei ele (para mim mesmo3) usando o comando gpg -e -r me@umgeher.org.

Descryptografar um aqruivo

Quando voce receber um arquivo cryptografado deve executar…

gpg -d [arquivo]

gpg-d

Nesse exemplo eu descryptografo o aqruivo que acabei de cryptografar e descompacto para mostrar que os mesmos artefatos estao la'.

Importar chave publica

Voce pode importar qualquer chave publica utilizando o comando…

gpg --import [arquivo-chave-publica]

Exemplo, para importar minha chave publica voce pode executar…

curl -sL https://umgeher.org/umgeher-public-key.asc | gpg --import

Agora voce pode cryptografar qualquer arquivo usando minha chave publica…

gpg -e -r me@umgeher.org [arquivo]

  1. O uso de keyservers e’ otimo, porem eu recomendo voce deixar sua chave publica em um local que todos confiem que e’ realmente voce. No meu caso, eu deixo no meu site, meu main mastodon, no sr.ht e no keyoxide↩︎

  2. Nemeth’s Quake map… Mandei um email perguntando se ele deixou esse map public, caso sim, vou deixar o link aqui depois. ↩︎

  3. Antigamente eu deixava meu backup de coisas sensiveis cryptografado com pgp. Hoje eu uso outra ferramenta. Vou escrever sobre ela quando sugir a oportunidade. ↩︎