Introdução
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. Para criptografar um arquivo:gpg2 -r fulano@domí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.