Tutorial GnuPG

Tutorial GnuPG

31/05/2016 Daniel Magevski 4 min de leitura

Introdução

GNU Privacy Guard (GnuPG or GPG) é uma alternativa GPL ao aplicativo PGP (Pretty Good Privacy) de criptografia criado pelo Philip Zimmermann. GnuPG é compatível com a RFC 4880, o padrão da IETF (Internet Engineering Task Force), o GnuPG é parte da Free Software Foundation e do projeto de software GNU.

Nesse tutorial irei falar sobre a instalação, criação de chaves, como criptografar arquivos e descriptografa-los e gerenciamento de chaves.

Instalação

Para sistemas baseados em debian, execute o comando: 

sudo apt-get install gnupg2

Caso esteja em outra distribuição ou sistema operacional (Windows, Mac OS) faça o download aqui.

O chaveiro digital.

OBS: Cada usuário tem o seu chaveiro, se você criar ou importa as chaves como root vai ficar no chaveiro do root.

Veja as suas chaves

Públicas

gpg2 --list-keys ou gpg2 --list-public-keys

Privadas

gpg2 --list-secret-keys

Caso o usuário possua mais de uma chave a diferença estará na ID.

Veja o fingerprint das chaves:

gpg2 --fingerprint <nr da chave>

Para gerar suas chaves:

gpg2 --gen-key

Escolha a opção (1) RSA and RSA (default). Essa opção irá criar chaves assimetricas (Pública e Privada), veja mais em criptografia de chave pública. Coloque uma senha “passphrase” segura, escolha o tamanho da chave e a validade dela (não recomendavél utilizar a opção de nunca expirar), as outras informações sao básicas, nome e e-mail.

Agora vamos exportar sua chave localmente, primeira a pública:

gpg2 -a --export <nr_da_chave> > public.asc

Agora a chave privada (não passe essa chave a ninguem, exporte-a para backup):

gpg2 -a --export-secret-keys <nr_da_chave> > secret.asc

Para importa uma chave para o seu chaveiro use:

gpg2 --import <arquivo_da_chave>

Válido para chaves públicas e privadas.

Para remover uma chave pública:

gpg2 --delete-keys <nr da chave>

Para remover uma chave privada do chaveiro:

gpg2 --delete-secret-keys <nr da chave>

Caso queira editar alguma coisa na chave (Nome, E-mail, Foto e etc.) chave use:

gpg2 --edit-key <nr da chave>

Criptografar e descriptografar arquivos

Com as chaves assimétricas o modo será o da imagem a baixo. GnuPG-img2 Para criptografar um arquivo:

gpg2 -r [email protected]ínio.net -e mensagem.txt

Para descriptografar um arquivo que a pessoa tenha criptografado usando a sua chave:

gpg2 -d mensagem.txt.gpg

OBS: O arquivo criptografado fica no formato .pgp.

Servidor de chave

Os servidores de chaves são muito úteis para disponilizar, importar ou atualizar chaves públicas.

Para enviar uma chave para o servidor:

gpg2 --keyserver keys.gnupg.net--send-key <nr_da_chave>

Para importar uma chave do servidor:

gpg2 --keyserver keys.gnupg.net --recv-key <nr da chave>

Para pesquisar uma chave no servidor:

gpg2 --keyserver keys.gnupg.net --search-keys <nome ou e-mail>

Para atualizar as chaves do seu chaveiros vamos fazer um procura no servido de chaves:

gpg2 --refresh-keys --keyserver keys.gnupg.net

Exitem outros servidores de chaves, usei este como exemplo, os servidores atualizam as chaves entre si.

Revogação de chave

Em caso de perda de chave por qualquer motivo você pode invalidar a sua chave, para que outras pessoas saberem que a sua chave não é mais confiável. Ela não será excluida somente será invalidada.

Primeiro vamos gerar esse certificado de revogação:

gpg2 -o rev-cert --gen-revoke <nr da chave>

Pronto, com o certificado de revogação gerado devemos guarda-lo em um local seguro ou passar para uma pessoa de confiança, caso você não poder regova-lá por qualquer motivo, a pessoa fará . (Qualquer pessoa poderá invalidar sua chave caso esteja com o certificado, mas não criptografar ou assinar).

Para revogar uma chave é preciso importa o certificado e depois enviá-lo para um servidor de chaves:

gpg --import rev-cert

Agora para revoga-lá:

gpg --keyserver keys.gnupg.net --send-keys <nr da chave>

Utilizando interface

Existem vários programas que você pode gerenciar suas chaves, o que eu utilizo atualmente é o Enignmail, um add-on do Thunderbird, os conceitos apresentados acima serão uteis na sua utilização. Para ver outras interface do GPG acesse a página do gnupg.

Em outra oportunidade irei falar sobre assinaturas com as chaves.

Referências:

GnuPG, RFC4880, Criptografia de chave pública