GnuPG

02/08/2013

"É pessoal. É particular. E não é da conta de mais ninguém a não ser você. Você pode estar planejando uma campanha política, discutindo seus impostos, ou tendo um caso ilícito. Não há nada errado em assegurar sua privacidade. Privacidade é algo tão natural e respeitável quanto a Constituição."
Por que você precisa do PGP? - Phil Zimmermann

O GnuPG (GNU Privacy Guard) é uma implementação gratuita do OpenPGP, que permite criptografar dados e mensagens para garantir a autenticidade e segurança. Ele usa o sistema de chaves pública e privada (assimétrico), conceito que foi introduzido em 1975 por Whitfield Diffie e Martin Hellman. A chave privada deve ser conhecida e usada somente pelo seu criador, e a chave pública pode ser distribuida livremente para todos. Todos que possuem a chave pública podem criptografar a informação, mas não podem descriptografar, apenas a pessoa que possui a chave privada pode descriptografar.

Chaves:

É um valor que usa um algoritmo criptográfico para produzir um texto cifrado. As chaves são basicamente números muito, mas muito grandes. O tamanho da chave é medido em bits. Uma chave convencional de 80-bit tem a força de uma chave pública de 1024-bit. As chaves grandes são seguras por um longo período de tempo, o DSA permite uma chave de até 1024 bits.

Assinaturas digitais:

Uma das vantagens da criptografia de chave pública é que ele fornece o método de gerar assinaturas digitais. Assinaturas digitais permitem que a pessoa que receber a informação verifique a autenticidade de sua origem e se a informação está intacta. O algoritmo de assinatura de chave pública usando no GnuPG é o DSA (Digital Signature Standard). Se o documento for modificado, a verificação da assinatura falhará.

As assinaturas digitais fornecem autenticidade e integridade, fundamentais para manter sua privacidade.

Funções Hash:

Transforma uma mensagem de comprimento variável e produz uma saída de comprimento fixo, transformando uma grande quantidade de dados em uma pequena quantidade de informações. O OpenPGP usa uma criptografia com função hash no texto que o usuário está assinando. A finalidade da função hash é produzir uma impressão digital de um arquivo, mensagem ou bloco de dados. Algumas famílias hash que o GnuPG usa: MD5, SHA1, SHA256, etc.

Instalação:

$ sudo apt-get install gnupg

Criando um par de chaves:

$ gpg --gen-key

Após esse comando, escolha o tipo de criptografia, o tamanho da chave (quanto maior o tamanho, maior será a segurança e o tempo de processamento), a validade da chave, id do usuário, email e comentário. Depois escolha a frase secreta para a chave, necessária para descriptografar a mensagem criptografada com sua chave pública. As configurações do GnuPG ficam no diretório ~/.gnupg/.

Listando as chaves:

$ gpg --list-keys

Gerando uma versão ascii da chave pública:

$ gpg --armor --output pubkey.txt --export 'Seu Nome'

Criptografando arquivos:

$ gpg --encrypt --recipient 'Seu Nome' texto.txt


Para descriptografar:

$ gpg --output texto.txt --decrypt texto.txt.gpg

O comando acima vai pedir a sua frase secreta usada na criação da chave.

Importando uma chave:

$ gpg --import alguma_chave.gpg

Assinando a chave:

Para garantir sua autenticidade, depois de ser importada a chave deve ser assinada:

$ gpg --sign-key C92515E

Exportando uma chave:

$ gpg --output pistaches.gpg --export pistaches

Exportando a chave para um servidor:

$ gpg --send-keys 44B6CA2C

Ou podemos especificar o servidor:

$ gpg --keyserver keyserver.cais.rnp.br --send-keys 44B6CA2C

A identificação da chave é o 44B6CA2C e o servidor padrão do gnupg é hkp://keys.gnupg.net, que pode ser modificado na entrada keyserver do ~/.gnupg/gpg.conf.

Buscando chaves:

$ gpg --search-keys 'pistaches@pistach.es'

Revogando uma chave:

$ gpg --gen-revoke 44B6CA2C

A revogação da chave vai invalidar a chave comprometida.

Editando chaves:

$ gpg --edit-key 44B6CA2C

Verificando a impressão digital:

gpg> fpr

pub 2048R/44B6CA2C 2013-05-01 Pistaches <pistaches@pistach.es>

Impressão digital da chave primária: 3695 2E39 31D0 1F15 AD0B B9C8 CCDB 6F5C 44B6 CA3C

Depois de verificar a impressão digital, você pode assinar a chave:

gpg> sign

Checando as assinaturas:

gpg> check

uid Pistaches <pistaches@pistach.es>
sig!3 44B6CA2C 2013-05-01 [auto-assinatura]

Mais opções de tarefas relacionadas às chaves: http://www.gnupg.org/gph/en/manual/r899.html

Criptografando seus emails:

Criptografar emails é o equivalente a mandar cartas dentro de envelopes, onde a carta fica protegida da chuva, vento ou de curiosos.

Thunderbird:

O thunderbird é uma aplicação gratuíta de emails. Ele suporta o OpenGPG através do plugin enigmail, que é uma extensão do Mozilla Thunderbird e do Seamonkey para escrever e receber emails assinados ou criptografados pelo OpenPGP.

Instalando o Thunderbird:

$ sudo add-apt-repository ppa:mozillateam/thunderbird-stable
$ sudo apt-get update
$ sudo apt-get install thunderbird

Instalando o Enigmail:

$ sudo apt-get install enigmail

Reinicie o Thunderbird. No menu aparecerá a opção Open PGP, vá no Assistente de configuração e siga os passos padrões ou de sua preferência.

Para enviar emails criptografados, ao escrever uma nova msg, no menu OpenPGP selecione "assinar a mensagem e criptografar a mensagem". Se você estiver enviando a mensagem para alguém que não possui a sua chave pública, anexe ao email. Ao enviar, será pedido a senha da sua chave. ;)

*Fontes:

http://www.mundociencia.com.br/pgp/tuto1.asp
http://www.madboa.com/geek/gpg-quickstart/
http://www.kernelhacking.com/rodrigo/docs/gnupg.txt
http://www.pgpi.org/doc/whypgp/br/
http://support.gpgtools.org/kb/how-to/introduction-to-cryptography
http://irtfweb.ifa.hawaii.edu/~lockhart/gpg/
http://www.gnupg.org/documentation/manuals/gpgme/Hash-Algorithms.html
http://homepages.dcc.ufmg.br/~joaoreis/Site%20de%20tutoriais/gnupg/gnupg-manual-ptbr.html
http://www.interrupt19.com/2010/01/21/secure-email-thunderbird-mail-gmail-part-2/
https://help.ubuntu.com/community/GnuPrivacyGuardHowto

postado por Unknown @ 16:27