gpg: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... ·...

39
GPG: e-mail com criptografia By http://felipecabral.com.br CC-BY-NC-SA 2014 [1]

Upload: others

Post on 27-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

GPG: e­mail com criptografia

By http://felipecabral.com.brCC­BY­NC­SA

2014

[1]

Page 2: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Índice

Introdução............................................................................................................................3

Apresentação.............................................................................................................3

Requisitos necessários.................................................................................................4

Ferramentas..........................................................................................................................6

Debian..........................................................................................................................6

Open PGP....................................................................................................................6

Icedove........................................................................................................................7

SeaHorse.......................................................................................................................7

Enigmail........................................................................................................................7

Passo a passo.......................................................................................................................8

Criação de chaves.........................................................................................................8

Gerenciamento de chaves: seahorse.......................................................................13

Publicação de chaves.................................................................................................17

Troca de chaves............................................................................................................21

GnuGPG via linha de comandos....................................................................................23

Criando um par de chaves.........................................................................................23

Exportando chaves.......................................................................................................25

Importando chaves......................................................................................................25

Baixando chaves públicas...........................................................................................26

Verificando a Fingerprint..............................................................................................27

Assinando Chaves Públicas.........................................................................................27

Atualizando uma chave pública assinada...............................................................28

Enviar e receber e­mails...............................................................................................29

Vulnerabilidades................................................................................................................36

Referências: .......................................................................................................................37

[2]

Page 3: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Introdução

The   multiple   human   needs   and   desires   that   demandprivacy among two or more people in the midst of sociallife   must   inevitably   lead   to   cryptology   wherever   menthrive and wherever they write. 

As   diversas   necessidades   e   desejos   humanos   quedemandam   privacidade   entre   duas   ou   mais   pessoasdevem   inevitavelmente   incorporar   a   criptografia   ondequer que isso floreça, onde quer que haja comunicação. 

David Kahn, The Codebreakers

Apresentação

Esse   tutorial   aborda   de   maneira   geral   os   passos   necessários   para   criação   eimplentação   de   chaves   assimetricas   com   GnuPG,   Icedove   e   Enigmail   e/ousoftwares correlatos, com o objetivo de ensinar pessoas pouco acostumadass aessas tecnologias a trocar e­mails criptografados. 

As etapas aqui descritas podem variar de acordo com o ambiente escolhido ecom a variante de ferramentas selecionadas, mas os passos básicos serão todosapresentados.   Alguns   conceitos   também   estão   expostos,   mas,   para   umaprofundamento maior, recomendamos a leitura de literatura específica sobre osassuntos em questão, que pode ser melhor pesquisada em referências. 

É importante ressaltar que a implementação de cryptografia não garante a totalsegurança   dos   dados   em   uma   série   de   situações.   Vulnerabilidades   podemincorrer   em   diversos   pontos   do   processo   e   o   risco   de   descoberta   de   dadossensíveis é  sempre iminete ante a descuidos ou a forças maiores, como diantedas chamadas Leis de Divulgação de Chaves1  presentes em diversos países domundo. Nesse último caso, mesmo empregando chaves assimétricas de maneiraeficiente,   indivíduos   ou   coletivos   submetidos   a   um   julgamento,   podem   serobrigados por força de lei a entregar suas chaves e senhas a uma corte. 

1 Ver Key Disclosure Law, WIKIPEDIA 2014 em Referências.

[3]

Page 4: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Requisitos necessários

Você precisará de uma conta de e­mail válidacom imap ou pop3 funcionando. Quase todoprovedor   de   e­mail   possui   disponibilidadedestes   serviços,   bastando   em   alguns   casosativar ou habilitar o funcionamento. 

Basicamente vamos usá­la junto com softwaresde   gerenciamento   de   e­mail   como   Icedovee/ou   Thunderbird   e   softwares   de   auxílio   aoprocesso de criptografia como Enigmail. 

Importante: não sabe o que significa e­mail com POP3 ou Imap ou como verificaresse tipo de coisa? Dê uma olhada nas configurações do e­mail que você utilizano   próprio   painel   do   web   mail   que   você   costuma   acessar.   Procure   ler   asorientações disponibilizadas por seu provedor de e­mail  nas páginas específicassobre o assunto. Quase todos os provedores de e­mail  tem instruções de comoconfigurar ou habilitar estes serviços para utilizar em softwares de cliente de e­mail.Você   não   conseguirá   avançar   neste   tutorial   se   não   conseguir   ter   seu   e­mailconfigurado num software como thunderbird para leitura de mensagens. 

Essa conta pode ser  de qualquer   serviço “gratuito”,  mas   recomendamos  quevocê use, se possível, uma conta de e­mail com uma politica de segurança maisadequada,   cujos   termos   de   uso   por   exemplo,   certifiquem   que   seus   dadospessoais não sejam violados ou comercializados. Sendo assim, evite usar e­mailsde empresas cuja política de privacidade seja absolutamente intrusiva, como ohotmail da Microsoft. 

Você precisará também de um computador comuma distribuição Linux, de preferência com  discorígido   criptografado.   Pode   ser   Debian,   Ubuntu,Slackware,   Archlinux,   Suse,   Fedora,   Red  Hat,   ouqualquer   outro   de   sua   preferência   que   tenhapossibilidade de criptografia  total  de dados emdisco rígido. Se seu HD não estiver criptografado,isso   não   vai   impedir   você   prosseguir,   masrecomendamos   fortemente   o   uso   de   umamáquina   com   esse   nível   de   segurança.   Parasaber   mais   sobre   criptografia   de   disco   rígido,recomendamos   que   busque   literatura   e/oututoriais   voltados   ao   tema.   Aqui   adotaremos   o

sistema operacional Debian 7 como modelo por consideramos o mais didático e

[4]

Page 5: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

adequado. 

Não sabe como instalar o sistema operacional Debian e cifrar o  disco rígido deseu   computador?   Dê   uma   olhada   nos   tutoriais   que   existem   na   Internet   ouprocure ajuda de alguém que possa te orientar para   fazer este processo. Acomunidade   Debian   mantém   uma   ampla   documentação   sobre   esteprocedimento,     você   também   pode   optar   por   ler   este   material.   É   essencialutilizar, ao menos, um sistema operacional Linux no computador para prosseguir.Se você  não tiver conhecimentos ou assistência de como cifrar o disco rígidoinicialmente mas ainda assim deseja trocar e­mails cifrados, não se preocupe. Aausência de criptografia no disco rígido não vai  inviabilizar a possibilidade detrocar   e­mails   criptografados,   esta   é   apenas   uma   recomendação   paraadicionar uma camada a mais de proteção a sua estrutura de comunicaçãodigital.

Conforme   indicamos   anteriormente,   você   deve   terinstalado   em   seu   computador   algum  programa   degerenciamento   de   e­mails  como   Icedove,   MozilaThunderbird2, SeaMonkey3, Evolution4 ou algum outro desua   preferência   que   funcione   com   Enigmail   Project5.Não vamos entrar aqui em detalhes sobre como instalare   configurar   normalmente   esses   softwares,   mas   vocêpode encontrar facilmente material sobre isso na rede.Basta que algum destes softwares estejam instalados efuncionando com uma conta de e­mail associada, istoé, a conta de e­mail que você deseja usar para seus e­

mails criptografados.Por   fim,  é  necessário   ter   instalado,    o  softwareGNU  Privacy  Guard6  e/ou   sua   implementaçãode front­end, o Seahorse7. Novamente vale dizerque existem outros softwares de gerenciamentofront­end de chaves, como Kgpg, EasyPG, entre

outros. Mas adotamos aqui por critérios didáticos e de adequação o Seahorse. 

Para instalação desse software você pode usar o apt­get, o pacman, o synaptic,alguma   central   de   gerenciamento   de   softwares   específica   de   seu   sistema

2 http://www.mozilla.org/en-US/thunderbird

3 http://www.seamonkey-project.org

4 https://wiki.gnome.org/Apps/Evolution

5 https://www.enigmail.net

6 GNUPG http://www.gnupg.org

7 https://wiki.gnome.org/Apps/Seahorse

[5]

Page 6: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

operacional ou qualquer outro programa de instalação de softwares do Linux. Oimportante é tê­los instalados e regularmente funcionando. 

No ato da escrita desse tutorial, realizado e revisado no início do ano de 2014, asindicações apontadas são as mais atuais e usuais para o propósito desejado. Noentanto   o   cenário   digital   é   bastante   dinâmico   e   todos   os   dias   ocorremalterações,   ora   mais   ora   menos,   significativas.   Então   fique   atento/a   sobre   asmudanças   que   podem   ocorrer   ao   longo   do   tempo,   sobre   a   validade   esegurança do protocolo PGP e  sobre eventuais   falhas  de segurança que porventura venham a surgir com os softwares indicados. 

Bem, depois de tudo isso instalado, mãos a obra! 

Ferramentas

Debian

Debian é  um sistema operacional   livre  ede   código   aberto,   mantido   por   umacomunidade de usuários.  Ele   foi   lançadoem 1993 e até  hoje é  uma das melhoresopções abertas de sistema operacional domundo. Desde seu princípio o Debian se mantém profundamente atencioso acriterios  de  segurança,  confiabilidade e valores  coletivos.  Muitos  usuários/as  efóruns de centenas países que mantém essa distribuição, em especial  em seuformato   Gnu/Linux.   Seus   princípios   básicos   iniciais   se   encontram   no   ManifestoDebian8 e no site da comunidade9. 

Open PGP

O OpenPGP, segundo a definição da Open PGP Alliance10,é   o   padrão   de   criptografia   de   e­mails   mais   usado   domundo. Ele é definido pelo Grupo de Trabalho OpenPGP daForça Tarefa de Engenharia da Internet (Internet EngineeringTask Force – IETF) e foi indicado como um padrão mundialem 200711.  O padrão OpenPGP foi originalmente derivado

8 http://pt.wikipedia.org/wiki/Manifesto_Debian

9 https://www.debian.org/intro/about

10 http://www.openpgp.org

11 Ver documento original em: http://www.ietf.org/rfc/rfc4880.txt

[6]

Page 7: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

do PGP (Pretty Good Privacy), criado inicialmente por Phil Zimmermann em 1991. 

O OpenPGP Alliance é um grupo cada vez maior de companhias, instituições eoutras  organizações  que  são executores  da proposta de  norma OpenPGP.  Ogrupo trabalha para facilitar a interoperabilidade e divulgação técnica entre asimplementações de OpenPGP.

É importante observar novamente que o OpenPGP não surgiu Open, isto é, suaimplementação primeira  vem do  PGP.  O projeto  GNU,  como  implementaçãoOpen, criou o GnuPG ou GPG, que é uma alternativa GPL ao aplicativo PGP decriptografia e portanto uma implementação OpenPGP. As versões proprietáriasatuais do PGP possuem interoperabilidade com o GnuPG e com outros sistemascompatíveis com o OpenPGP. GnuPG é parte da Free Software Foundation e doprojeto GNU como um todo. 

Icedove

O   Icedove   é   um   cliente   de   correio   eletrônico,   umsoftware   usado   para   gerenciamento   pessoal   ouinstitucional de contas de e­mail, grupos e rss. 

Ele faz parte da distribuição Linux Debian e é compostobasicamente pelo mesmo código do software MozillaThunderbird, mas tem outro nome e outro logotipo porquestões de uso da marca. 

SeaHorse

Seahorse   é   um   software   do   projeto   GNOME   paragerenciamento   em   modo   gráfico   de   chaves   decriptografia e senhas,  que usa os algoritmos de cifras  dopadrão Open PGP e o protocolo de segurança SSH, entreoutras   implementações.   Há   também   uma   coleção   deplugins   que   integram   o   SeaHorse   com   softwares   comoNautilus,   Gedit,   GNUPG,   entre   outros   que   auxiliam   nacriptografia edescriptografia de dados. Vamos usá­loaquicomo ferramenta auxiliar na criação e gerenciamento dechaves. 

Com SeaHorse você pode: 

[7]

Page 8: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

• Criar e gerenciar suas chaves GPG, SSH, entre outras;• Armazenar suas senhas;• Fazer backup de chaves e chaveiro;• Assinar chaves e publicar em servidores públicos;• Sincronizar suas chaves e seu chaveiro com servidores de chaves;

Enigmail

Enigmail  é  software que funciona como um pluginjunto   com   clientes   de   leitura   de   e­mail   comoThunderbird,   Icedove,   SeaMonkey,   entre   outros;permitindo que usuários/as acessem os recursos deautenticação e criptografia fornecidos pelo GnuPG.

Em outras palavras, o Enigmail permite que esses softwares de gerenciamento dee­mail enviem e recebam mensagens assinadas digitalmente e/ou criptografadasusando o padrão OpenPGP. 

Passo a passoApresentaremos os passos necessários para a criação e configuração das chavesque possibilitarão a criptografia de mensagens. Depois, demonstraremos comoconfigurar seu cliente de e­mail para interagir com essas chaves. Boa leitura. 

1. Criação de chaves

Vamos   criar  uma chave  decriptografia     com  protocoloOpen   PGP   e   associá­la   auma   conta   de   email.   Paraisso,   vamos   usar   o   softwareGNUPG  com   o  SeaHorse.Abra o SeaHorse e você vaiver   uma   tela   como   essaaolado. Ou   você   verá   umatela como essa, se  jápossui algumas senhasgravadas:

[8]

Page 9: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Clique   no  botãoadicionar  (sinal  de +)ou no menu “Arquivo”>   “novo”  e   você   vaiver   uma   nova   telacom   as   opções   dechave   ou   senha   quepodem   ser   criadas.Nós   vamos   optar   porChave PGP. 

Selecione PGP e clique em continuar. Uma nova tela se abrirá  para que vocêpreencha   com   os   dados   do   e­mail   que   quer   associar   a   essa   chave.   Veja   omodelo: 

[9]

Page 10: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Aqui   três   pontos   de   observação   são   fundamentais.   O   primeiro   deles   é:   nãocoloque   comentários   no   campo   de   comentários.   É   estranho   dizer   isso,   mascolocar comentários associados a uma chave pode deixar uma brecha para queoutras pessoas criem chaves com informações falsas a fim de confundir eventuaisassinantes de sua chave. 

Atenção:   qualquer   pessoa   pode   criar   um   par   de   chaves   e   associá­lo   aqualquer conta de e­mail, mesmo que esta pessoa não seja don/ada contaem   questão.   Nós   poderiamos   criar   um   par   de   chaves   para   o   e­[email protected] mesmo não tendo acesso a essa conta. A tecnologiade criação de chaves com GPG permite isso, criando diversas situações queexigem administração para assegurar que nossa chave é realmente autentica.Entre   essas   situações   estão   a   observação   dos   vetores   de   ataque   e   averificação  e   a   troca   segura  de   uma  impressão  digital  entre  os   pares   quequerem se comunicar através da criptografia de chaves. Falaremos mais sobreisso adiante. 

Explicando de outra forma, imagine que alguém mal intencionado queira criaruma  chave  criptográfica  para   simular  que  é   sua  chave  pessoal.   Essa   pessoapoderia   criar   a   chave   e   colocar   um   comentário   como   “Chave   pessoal   doSeuNome” ou ainda “Chave em funcionamento”. Isso poderia reforçar a ideia deque aquela chave é realmente sua, algo que você não vai querer. O que fazerentão? Deixe esse campo em branco e avise para todos  seus contatos que vocênão coloca comentários em sua chave. Se por qualquer motivo você ou outrocontato tiver algum comentário associado a chave, isso não vai representar umproblema   de   vulnerabilidade   direta,   permitindo   a   quebra   da   mesma,   mas

[10]

Page 11: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

conforme   explanado   é   bom   evitar.   Uma   cultura   de   segurança   se   constroitambém nos detalhes. 

O segundo ponto é: use a cifra mais alta possível, isto é, atualmente 4096 bits. Opadrão  internacional  é  2048 bits,  mas se podemos usar  uma criptografia maisforte,  porque não usar?  Implementando uma chave com 4096 bits  você  estáusando   uma   criptografia   que   tem   2   elevado   a   4096   (24096)   possibilidadesmatemáticas. Ou esse número abaixo: 

1044388881000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 

Por fim, nosso terceiro apontamento é: coloque uma data de expiração para suachave e   troque ela  periodicamente.   Uma boa  metrica  de  tempo  talvez   sejasemestral ou anual. (sério sempre trabalhamos com 2 anos)

Imagine que você  tem uma chave e a usa pelo período de 6 meses. Quantacoisa acontece na sua vida nesse período? Quantas vunerabilidades você passasem   nem   perceber?   Ou   quantas   vulnerabilidades   estão   em   curso   em   seucomputador nesse exato momento? Não dá pra saber, mas só a possibilidade debrechas existirem, de sua senha ser  comprometida seja por alguém que ficouobservado você digitá­la, seja por um novo software de roubo de senhas que maltemos conhecimento hoje, já temos um bom motivo para colocar data em nossaschaves e senhas. 

Uma outra situação é a seguinte: você troca e­mails por um período de algunsanos. O que acontece se sua senha for comprometida? Alguém em posse de sua

[11]

Page 12: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

senha poderá   ler todos os e­mails criptografados antigos que você   já  troucou.Agora se você tiver uma política de segurança de manter sua chave e sua senhaválidas por apenas 6 meses ou 1 ano, caso ela venha a ser comprometida, todosos e­mails anteriores criptografados com chaves antigas podem estar a salvo davigilância.   Ou   seja,   você   consegue   um   controle   maior   para   o   caso   de   umasituação crítica eventual de comprometimento de chaves e senhas. 

Após terminar o preenchimento desses dados, você deve clicar em criar e umanova janela se abrirá,  pedindo então a senha que você  quer associar  a essachave. 

Aqui temos mais uma dica importante: use uma política de criação de senhas.Não um padrão, mas uma política. Existem diversos métodos e padrões, mas sóvocê poderá customizar e pensar seu próprio processo de montagem de senhas. 

Um bom método é  usar   frases   secretas  ao  invés  de senhas  puras.  Vejamos  oexemplo que nos dá Micael Lee em seu livro “A Criptografia Funciona”12. Se você cria uma senha como essa:

S3gr3d0@Tr4nc4d0

Você está usando letras maiúsculas, minúsculas, números e caracteres especiais.Essa é uma senha difícil de lembrar pois tem muitos detalhes que não podem ser

12 https://pressfreedomfoundation.org/encryption-works

[12]

Page 13: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

esquecidos, mas dificuldade média à fácil de se quebrar pela computação poistem   apenas   16   caracteres.   Num   ataque   de   força   bruta   um   software   deexploração   de   senhas   pode   usar   um   dicionário   combinando   vogais   comnúmeros, o que reduziria bastante a dificuldade da senha em si.  Agora vamosolhar para essa outra senha:

bicicletaterremotocabelopizzavestidopapagaiobeatlescaramelo

Temos aqui 8 palavras concatenadas e um total de 59 caracteres!! Fica fácil delembrar porque são apenas 8 palavras, ou seja, é mais fácil do que um númerode telefone e fica muito mais difícil de quebrar pois são muito mais combinaçõesdo que na senha anterior. 

Para deixar o método mais interessante, você pode também começar e terminarcom palavras  inventadas. Sim,  isso mesmo, com palavras que não existem emnenhum dicionário pois foram criadas por você. Exemplo: 

bicicletaniataniaterremotocabelopizzavestidopapagaiobeatlescaramarradus

Substituimos   a   palavra  bicicleta  por  bicicletania  e   a   palavra  caramelo  porcaramarradus. Isso derruba fortemente as possibilidades de ação força bruta coma ajuda de dicionários, pois as palavras não tem correlato no léxico registrado emnenhuma língua, só na sua língua inventada. 

Criada a   senha,   seu  sistema  vai  preparar  a  entropia,   juntando  sua  senha aoalgorítimo do padrão Open PGP e criando assim suas chaves públicas e privadas.Isto   pode   demorar   alguns   minutos   de   acordo   com   a   capacidade   deprocessamento do seu computador, tamanho da senha, entre outros fatores. 

Terminado o processo, você verá novamente atela   principal   do   SeaHorse   com   as   chavescriadas.   Se   tiver   mais   de   uma   chave,   elaaparecerão uma sobre a outra, da mais antigapara a mais recente. 

[13]

Page 14: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

2. Gerenciamento de chaves assimétricas: seahorse

Se tudo estiver bem até  aqui você  terá  criado então duas chaves Open PGP:uma chave pública e  uma privada.  Vamos  explicar  alguns  conceitos  básicossobre isso aqui, em especial a ideia de chaves assimétricas. 

Você   tem,   então,   uma   chave   pública   e   uma   privada.   Sua   chave   públicaqualquer pessoa poderá ter acesso e sua chave privada só você deve ter, daí osnomes chave pública e chave privada.   As chaves públicas são publicadas emservidores de chaves Open PGP. Esses servidores são como bibliotecas de chavesonde através  de alguma  informação como impressão digital,   ID da chave ouconta de e­mail associada a chave é possível buscar a(s) chave(s) pública(s) dedeterminado e­mail. 

Para cifrar o e­mail é necessário ter a chave pública da pessoa com quem desejase corresponder. Explicando de outro modo, podemos dizer que funciona assim:toda chave pública gera mensagens que só podem ser abertas com as chavesprivadas. Então se quero mandar uma mensagem criptografada para alguém,tenho de  ter  a  chave pública dessa pessoa.  Em posse dela  eu criptografo amensagem e só a pessoa dona da chave privada dessa conta de e­mail  poderáabrir o conteúdo da mensagem. 

As  chaves   também são certificados  de  origem.  Podemos  usá­las  para  assinardigitalmente uma mensagem, certificando assim que aquela mensagem partiude um email correspondentea qual está  associada. Vamos ver na prática esseprocesso,   mas   antes   alguns   passos   básicos   para   o   gerenciamento   de   suaschaves. 

Para   acessar   asopções   degerenciamentooferecidas   peloSeaHorse,   você   podeclicar   com   o   botãodireito   do   mouse   emcima de sua chave, natela   principal   doprograma   (tela   daaba   “Minhas   chavespessoais” e escolher a

[14]

Page 15: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

opção “propriedades”. Você então poderá ver uma tela como essa ao lado. 

Repare que você  pode trocar sua frase secreta da chave clicando no botão“alterar frase secreta” da aba “Dono”. Nessa mesma aba, o botão com sinal de+, do lado esquerdo do botão de alteração de chave, serve para colocar umafoto ou imagem de identificação na chave. Isso não é necessário, especialmenteno caso de proteção de sua privacidade, afinal colocar uma foto só expõe maisdados seus na rede. 

A   próxima   aba   é   a“Nomes   eassinaturas”.   Nela,você pode, clicandoem   “Adicionarnome”,  acrescentaroutras   contas   de   e­mail   a   umadeterminada chave. 

Vamos imaginar que você tenha dois e­mails distintos, um e­mail pessoal e um doseu   trabalho.   Eles   tem   endereços   diferentes,   mas   você   pode   gerenciarmensagens   critptografadas   dos   dois   com   uma   única   chave.   Basta,   em   umachave já criada e associada a qualquer um dos dois e­mails, acrescentar o outroe­mail. O primeiro e­mail pode ser a conta primária e o segundo a secundária ouvice­versa. Você é quem escolhe. 

A   última   aba   é   ade Detalhes da chave. Essa aba é bem importante, porque contém informações

[15]

Page 16: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

essenciais para o   gerenciamento de sua chave em modo gráfico. Nela, vocêtem  informações  importantes como (01)   ID da chave,   (02)   tipo,  (03)   força daentropia,   (04)  data de criação,   (05)  data de expiração,  (06)   impressão digital(fingerprint) e também a opção de (07) exportação de chave. Mas cuidado. Essaopção de exportação gerará um arquivo com sua chave privada. Para exportara chave pública basta clicar em cima da chave com botão direito do mouse eusar a opção copiar. Daí é só colar no bloco de notas e salvar. 

Sua chave pública consiste basicamente em um conjunto de caracteres comoeste: 

­­­­­BEGIN PGP PUBLIC KEY BLOCK­­­­­ Version: GnuPG v1.4.11 (GNU/Linux) 

AuRJnhFKFKs1Y1leBj+pSX+BP8jBGOQLSnmberzT9uwam7HW2dwyEyl82t+3T4jewpbZ4AZuQ/4w2LOSD231SH/4TdhWPnsoLuBfNRGtGycDLOiMn9FhaSpuv0UnvI7CiSINZfS4TIa2+DTHbP0DNbQ4oE7AVktc3us4KUVtGdCW2qNM8gRO/ApqwzwtPwWxWRUO2I5RLuG/rDecAja5D87hu3edIO0C0Dax54IG8X+8faLQC3B4u6VBcVO+Hw1ohpEvw01OeUTGyLHDZLVsPenNH+0x1t9t8+3i6OYXooJfWY6IZYshN1WpTul3ADzWJ6eJ5kkjf5VWqBjCFqQ0nGmU4bgq7JAk2W+V3jWu/K+1HB7yxiRjTqDZKLbPXkNRrj3HCxQZj/jSYy2rG3CmKHN2njY7k6Jn1Q3FrXBBizpvXWh4BQkAZuCPHSXKnwARAQABzr4x7H0Rbsm0AcyoNpkynDtnp9ZjWFsdYTTwxGXitkIuKyHkcrA0K/7sMm5SH4kOBBuPQ58MEOSLxBUrGzdK5Hbw1AnFO7GjGDuiSTBvluLWccx8YMQebpNquQINBFLn0fIBEAChAZBMs2p1VzBu/9OqOvxjrZG1f1ZTGgXEc2TNTBoec2VxfsXNTeiA5rLNVzum/qEnqaPZE60O/ejvF3k9UB73cV73pB6wIS1EgXC5iPvuOzFJekFFRehaYymDwnEw4kY1DwqPOFCZXVTVjp3KFjMSl0wvDjPqRl8t5SFuor+BaqBsnKdDLqM8lkza9lDnfGO/Q1kQ/PVZ/QnomRLXdWAbzx62B/FmtK4yGb8vY9HGN2Cb6YqnLGITv5/KU8aqsby0MonEFVF85n7UF1kuMB0b51y7GToG8mwSatFvLauzrM3QnRHP5YQghDX04Xygnikc8Nyxa2572XGOaUJKTk5LPbL9LpIZZRfG3VY6rwMrd+vDxMu/L1Fqu7xbBi/mt0arapvGwNUWVl1t2Ty0ejVNuPNbo2n0igCGNukSd3Q5XxuHwO8e/ophao5SKpxoCZzhIskR1d76NhUv1ERJGxw0hJNO41VfZHKmx5HgoHuDXFw36fNtf3Oj3BuMmy1r8iuI1jO7+FVAnU4ExkVF7KiYdewd6SZcWD7rDX6iPsp8B9TwjUnOlMiY2M67e0fWwm3WAvQcd+k10iO8/Vwa/P8YhsntmhE55ayT8zhNy00CwdyGASzTvIhODUj=7GZAIwVSxbksIUj=7GZAIwVSxbksIUj=7GZAIwVSxbksIUj=7GZAIwVSxbks­­­­­END PGP PUBLIC KEY BLOCK­­­­­ 

E   sua  chave privada,  de  modo bem  parecido,  consiste  basicamente  em  umconjunto de caracteres como este: 

­­­­­BEGIN PGP PRIVATE KEY BLOCK­­­­­ Version: GnuPG v1.4.11 (GNU/Linux) 

GSÇJGSRÇEI,MUPRCMEPCAMYT47805643789Q457NMC54N45748C5QM54CALI8zhNy00CwdyGASzTvIhODUj7GZAIwVSxbksI11iDO5r15cC=CucN99349758463781HKCJDFAKJHSHGSHsslalieoreireirejopqrept8erutqppeoekjkndcmhuicfyatsgxmOFRYFMXRGFlsdgoiFGEI0açtm489qtcm85785438mq5483m5c4385m4385c454385c48558q85485cqictreFU5X3843.Z587,X758CM57TC48C458X,4JKLRF.JÇGFÇDJAKÇGAÇVMCXNBXNBWAUIET693546324511'01091091409587508145714850157418589760896721809576092586VMZWD7rDX6iPsp8B9TwjUnOlMiY2M67e0fWwm3WAvQcd+k10iO8/Vwa/P8YhsntmhE55ayTalrksjkesjfajfkjjJDAJKLJÇjhHJHGSHFÇOIURETPOWUTWT'5T5 05LKRJG;LSDFKGMJSKJFGẂSÇJGSRÇEI,MUPRCMEPCAMYT47805643789Q457NMC54N45748C5QM54CALI8zhNy00CwdyGASzTvIhODUj7GZAIwVSxbksI11iDO5r15cC=CucN99349758463781HKCJDFAKJHSHGSHsslalieoreireirejopqrept8erutqppeoekjkndcmhuicfyatsgxmOFRYFMXRGFWD7rDX6iPsp8B9TwjUnOlMiY2M67e0fWwm3WAvQcd+k10iO8/Vwa/P8YhsntmhE55ayTalrksjkesjfajfkjjJDAJKLJÇjhHJHGSHFÇOIURETPOWUTWT'5T5 05LKRJG;LSDFKGMJSKJFCLIMRCULDXMEXR,UPAXUYP9GXHRI3875,834CX4378C5475MC43Q897ẂM543,97DLGC,XMkO77eN4udnnogZ2162Np9PuH+61dOFq8ymbBi/mt0arapvGwNUWVl1t2Ty0ejVNuPNbo2n0igCGNukSd3Q5XxuHwO8e/ophao5SKpxoCZzhIskR1d76NhUv1ERJGxw0hJNO41VfZHKmx5HgoHu

[16]

Page 17: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

­­­­­END PGP PRIVATE KEY BLOCK­­­­­ 

Já a fingerprint ou Impressão Digital da Chave é composta de 10 conjuntos de 4caracteres, sendo portanto um total de 40 caracteres assim: 

DF10 0695 1127 9482 850D AD0C A160 2E64 89F4 C290 

Ela será  extremamente  importante no processo validação e troca de chaves.Atenção aos números que compões sua Impressão Digital. Falaremos mais sobreisso adiante. 

Por fim, podemos dizer que existem outras configurações que o SeaHorse oferecepara  o   gerenciamento   de   chaves   e   chaveiros,   entre   os   quais   a   sincronia   dechaves com servidores públicos, a busca remota de chaves, a visualização decertificados de segurança do sistema, entre diversas possibilidades. Nosso objetivoaqui foi apresentar as principais caracteristicas do software e ressaltar os pontosimportantes  deste  para o  auxiílio  no  processo  geral  de envio  de  e­mails  comOpen PGP. Para mais detalhes, recomendamos a leitura do manual do Seahorse13

e para um aprofundamento no gerenciamento de chaves,   recomendamos aleitura da sessão GPG via linha de comando. 

3. Publicação de chaves

When privacy is outlawed, only outlaws will have privacy. 

Enquanto a privacidade for considerada ilegal, somenteos criminosos terão privacidade.

Phil Zimmermann ­ 1991 In Why I wrote PGP

Depois de criar sua chave, você pode subí­la em um servidor de chaves públicaspara que outras pessoas possam assiná­la e para que ela fique verdadeiramentepública.   Mas   ATENÇÃO  novamente!   Você   vai   ter   uma  chave pública  e   umachave privada. Você só deverá subir a chave pública. A privada vai ficar em seucomputador. 

Se,   por   algum  motivo,   você   tiver  de   formatar   seu   computador   ou   usar   outramáquina para enviar  e­mails  criptografados,  lembre­se de carregar sua chaveconsigo salvando os arquivos que contém a chave em locais seguros. Falamossobre  isso no capítulo anterior, em  Gerenciando Chaves,  então se você  aindanão   leu,   sugerimos   que   dê   uma   olhada.   Abordaremos   mais   sobre   o   assuntotambém em GPG via linha de comandos. 

13 https://wiki.gnome.org/Apps/Seahorse

[17]

Page 18: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Voltando   ao   nosso   passo­a­passo,   após   a   criação   da   chave   com   auxílio   doSeaHorse, você pode clicar em cima da chave, copiá­la e colá­la num arquivode texto e depois submeter essa chave num servidor público de chaves PGP. 

Ou ainda,  para  ter  o  arquivo  de   texto  da chave pública,  você  pode usar  ométodo de extração de chaves via linha de comandos explicado na sessão GPGvia linha de comandos.  Não importa, o  importante é   ter acesso a um arquivocomo esse referente a sua chave pública e copiá­lo:

­­­­­BEGIN PGP PUBLIC KEY BLOCK­­­­­ Version: GnuPG v1.4.11 (GNU/Linux) 

AuRJnhFKFKs1Y1leBj+pSX+BP8jBGOQLSnmberzT9uwam7HW2dwyEyl82t+3T4jewpbZ4AZuQ/4w2LOSD231SH/4TdhWPnsoLuBfNRGtGycDLOiMn9FhaSpuv0UnvI7CiSINZfS4TIa2+DTHbP0DNbQ4oE7AVktc3us4KUVtGdCW2qNM8gRO/ApqwzwtPwWxWRUO2I5RLuG/rDecAja5D87hu3edIO0C0Dax54IG8X+8faLQC3B4u6VBcVO+Hw1ohpEvw01OeUTGyLHDZLVsPenNH+0x1t9t8+3i6OYXooJfWY6IZYshN1WpTul3ADzWJ6eJ5kkjf5VWqBjCFqQ0nGmU4bgq7JAk2W+V3jWu/K+1HB7yxiRjTqDZKLbPXkNRrj3HCxQZj/jSYy2rG3CmKHN2njY7k6Jn1Q3FrXBBizpvXWh4BQkAZuCPHSXKnwARAQABzr4x7H0Rbsm0AcyoNpkynDtnp9ZjWFsdYTTwxGXitkIuKyHkcrA0K/7sMm5SH4kOBBuPQ58MEOSLxBUrGzdK5Hbw1AnFO7GjGDuiSTBvluLWccx8YMQebpNquQINBFLn0fIBEAChAZBMs2p1VzBu/9OqOvxjrZG1f1ZTGgXEc2TNTBoec2VxfsXNTeiA5rLNVzum/qEnqaPZE60O/ejvF3k9UB73cV73pB6wIS1EgXC5iPvuOzFJekFFRehaYymDwnEw4kY1DwqPOFCZXVTVjp3KFjMSl0wvDjPqRl8t5SFuor+BaqBsnKdDLqM8lkza9lDnfGO/Q1kQ/PVZ/QnomRLXdWAbzx62B/FmtK4yGb8vY9HGN2Cb6YqnLGITv5/KU8aqsby0MonEFVF85n7UF1kuMB0b51y7GToG8mwSatFvLauzrM3QnRHP5YQghDX04Xygnikc8Nyxa2572XGOaUJKTk5LPbL9LpIZZRfG3VY6rwMrd+vDxMu/L1Fqu7xbBi/mt0arapvGwNUWVl1t2Ty0ejVNuPNbo2n0igCGNukSd3Q5XxuHwO8e/ophao5SKpxoCZzhIskR1d76NhUv1ERJGxw0hJNO41VfZHKmx5HgoHuDXFw36fNtf3Oj3BuMmy1r8iuI1jO7+FVAnU4ExkVF7KiYdewd6SZcWD7rDX6iPsp8B9TwjUnOlMiY2M67e0fWwm3WAvQcd+k10iO8/Vwa/P8YhsntmhE55ayT8zhNy00CwdyGASzTvIhODUj=7GZAIwVSxbksIUj=7GZAIwVSxbksIUj=7GZAIwVSxbksIUj=7GZAIwVSxbks

­­­­­END PGP PUBLIC KEY BLOCK­­­­­ 

Depois de copiar sua chave pública é hora de gravá­la em um servidor. Vamosfalar   sobre   o   método   mais   simples   que   é   colar   o   conteúdo   do   arquivodiretamente numa página http de um servidor web. 

Existem diversos servidores para esse serviço. Nos recomendamos o uso destes: 

• http://keys.indymedia.org• http://pool.sks­keyservers.net• http://keys.mayfirst.org

Mas  você  pode  usar   outro  de   sua  preferência.  Existem diversos   servidores   dechaves  públicas   open pgp  rodando  na  rede.   Se   tiver   curiosidade,   faça  umapesquisa para se inteirar mais sobre o assunto. 

Você verá nestes sites um campo de submissão de chaves. Em geral com umaárea de texto para que você cole a chave e um botão como "Submitting a newOpenPGP Key",  “Submit a key”,  “Submit your key”,  “Submit  Publish”,  “insira sua

[18]

Page 19: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

chave aqui”, etc. 

Se você seguiu os passos desse tutorial, sua chave vai estar em "minhas chaves"no SeaHorse ou então em algum arquivo de texto puro obtido com o GPG vialinha de comandos, um arquivo como chave­publica.asc. 

Se  você  optou por  usar  o  SeaHorse,  encontre   sua chave no quadro  “minhaschaves”   e  clique   em  cima  dela   com botão  direito,  depois   escolha   a   opçãocopiar. Em seguida cole no bloco de notas para ter certeza que você  copiouapenas   sua   chave   pública.   Lembre­se   como   vimos   anteriormente   que   ocabeçalho da chave indica se ela é pública ou privada. Se você optou por tersua chave em um arquivo exportando via GPG, basta abrir o arquivo com blocode notas e copiar o conteúdo. Copiada a chave, cole­a no formulário do servidorpúblico de chaves e submeta­a. 

Exemplo: 

[19]

Page 20: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Após submissão você poderá ver uma mensagem de sucesso como essa: 

Pronto!   Sua   chave   estará   pública   entre   os   servidores   de   chaves   open   PGP.

[20]

Page 21: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Quando alguém quiser   trocar  e­mails  criptografados contigo, poderá  procurarsuas   chaves   por   lá.   Mas   para   a   efetivação   desse   processo   existe   umprocedimento seguro de troca de chaves. Falaremos disso a seguir. 

4. Troca de chavesThere   are   two   kinds   of   cryptography   in   this   world:cryptography   that   will   stop   your   kid   sister   from   readingyour   files,   and   cryptography   that   will   stop   majorgovernments from reading your files. 

Há  dois   tipos  de   criptografia   no  mundo:   a  criptografiaque  impede que  sua  irmãzinha  veja   seus  arquivos  e  acriptografia que impede que os maiores governos vejamseus arquivos. 

Bruce Schneier ­ Cryptography Applied

O   processo   de   troca   de   chaves   é   um   dos   aspectos   mais   sensíveis   doprocedimento de adoção do GPG para e­mails criptografados. Isto porque deledepende muitas  vezes  o   sucesso  e  a  garantia  de  confidencialidade entre  ospares. Um processo de troca de chaves bem feito pode reservar uma margemboa de confiabilidade na troca de mensagens. Não existem processos invioláveis,mas quando tomamos precauções precisas podemos evitar consideravelmenteas possibilidades de sucesso de alguns ataques. 

Em   tese,   quando   temos   chaves   públicas,   publicadas   em   um   servidor,   estaspodem ser obtidas a partir  de qualquer  lugar, pela web. Mas nunca devemosadotar esse procedimento: assinar chaves de um determinado remetente pelaweb sem que possamos verificar a integridade da chave com algum método desegurança. 

[21]

Page 22: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

O paradigma clássico  de esclarecimento desse  processo  utiliza  uma narrativacom dois personagens principais chamados de Alice e Bob. Aqui vamos adotar amesma  explicação,   mas   trocando  os   nomes   a   adaptando  as   situações   paraJoão e Maria. 

No exemplo, João quer enviar um e­mail para Maria, mas não quer que ninguém,pelo caminho onde essa mensagem vai trafegar, tenha acesso ao conteúdo damensagem. Desse modo, Maria troca chaves com João. Ela passa para ele suachave   pública,   de   modo   que   João   possa   criptografar   mensagens   com   essachave que só  poderão ser abertas com a chave privada de Maria. O mesmoacontece ao contrário.  Maria pega a chave pública de João e quando quermandar  uma mensagem cujo conteúdo não deve ser  violado ela criptografaesta mensagem usando a chave pública de João. O conteúdo só  poderá  seraberto com a chave privada do mesmo. 

Essa   troca de chaves  pode  ser  dar   de  diversas   formas,   sendo uma das  maisrecomendadas   a   troca   presencial   direta   ou   ao   menos   a   troca   autenticadapresencialmente.   No   primeiro   modo   você   pode   exportar   sua   chave   pública,gravá­la   num   dispositivo   auditado,   como   um   pendrive   que   acabou   de   serformatado por você ou um cd que acabou de ser gravado, e entregá­lo paracópia direta no computador de quem se quer trocar mensagens. No segundomodo,   troca­se   apenas   a   Impressão   Digital   da   chave.   Para   esse   método,   épossível produzir cartões de papel com os caracteres da impressão. Um cartãocomo esse já seria suficiente: 

[22]

Page 23: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Email: [email protected]ão Digital:  DF10 0695 1127  9482  850D AD0C A160 2E64  89F4C290

De   posse   deste   cartão,   um   usuário   poderá   baixar   uma   chave   pública   quecorresponda exatamente a essa impressão digital. 

Para adicionar uma chave criptografada de alguém e poder trocar emails, vocêpode, no próprio thunderbird/icedove, ir no menu "Open PGP" > "Gerenciamentode chaves" >  "servidor de chaves" >  "procurar chaves".  No campo do servidorvocê   pode   deixar   os   servidores   padrão,   que   em   geral   pode   ser   pool.sks­keyservers.net  ou algum outro.  E  no campo procurar você  coloca o email  dequem quer  obter  a chave.   Se  o/a usuário/a  tiver  mais  de uma chave,   todasaparecerão listadas abaixo. Então, para saber qual é a chave correta,  verifiquequal é a que possui o ID igual aos 8 dígitos finais da fingerprint que ela te passou. 

GnuGPG via linha de comandos

Antes da existência de softwares de gerenciamento de chaves Open PGP porinterfaces gráficas, o único modo de manipular chaves era utilizando softwaresvia   linha   de   comandos,   como   o   GnuPG.   Sendo   assim,   abordamos   aqui   oscomandos   essenciais   básicos   para   criar,   exportar,   importar,   assinar,   e   deletarchaves através dele. 

Considerando que o programa já  esteja instalado em seu sistema operacional,conforme   dito   anteriormente,   vamos   apresentar   o   passo­a­passo   de   suamanipulação pelo terminal bin/bash. 

[23]

Page 24: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Essa   pode   ser   uma   opção   mais   avançada,   voltada   para   quem   já   estáhabituado/a com o uso do terminal, por exemplo, para naveção entre diretórios,cópia   de   arquivos,   permissões,   etc.   Se   você   não   tem   certeza   ou   se   senteinseguro/a sobre esse procedimento, busque outras leituras para entender melhorcomo funciona.

Não será necessário estar logado como root – superusuário/a para executar osprocedimento descritos a seguir,  mas em alguns sistemas talvez seja requeridoque   o/a   usuário/a   em   questão   faça   parte   do   grupo   GPG   para   utilizar   oprograma. 

Criando um par de chaves

O primeiro passo para começar do zero diretamente com GnuPG é a criação dechaves.   Se   você   já   tiver   alguma   chave   criada   em   uso,   esse   passo   serádesnecessário. Vamos utilizar o seguinte comando: 

$ gpg ­­gen­key

Ao introduzir o comando, o GnuPG apresentará diversas perguntas que auxiliarãona configuração da chave. Veja atentamente abaixo. Enumeramos as linhas desaída para referenciar de modo mais fácil cada uma das etapas. Repare que asaída   aqui   presente   do   comando   está   completa,   isto   é,   copiada   após   todoprocesso de criação. No entanto as perguntas de customização da chave serãofeitas   gradualmente.   As   linhas   que   contém   perguntas     respostas   foramdestacadas aqui na cor vermelha.

[01] $ gpg ­­gen­key [02]  gpg   (GnuPG)   1.4.11;   Copyright   (C)   2010   Free   SoftwareFoundation, Inc. [03]  This   is   free   software:   you   are   free   to   change   andredistribute it. [04] There is NO WARRANTY, to the extent permitted by law. [05] [06] Por favor selecione o tipo de chave desejado: [07]    (1) RSA e RSA (padrão) [08]    (2) DSA e Elgamal [09]    (3) DSA (apenas assinatura) [10]    (4) RSA (apenas assinar) [11] Sua opção? 1 [12][13]  RSA chaves podem ter o seu comprimento entre 1024 e 4096bits. 

[24]

Page 25: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

[14] Que tamanho de chave você quer? (2048) 4096 [15] O tamanho de chave pedido é 4096 bits [16]  Por favor  especifique  por  quanto  tempo  a  chave  deve serválida. [17]          0 = chave não expira [18]       <n>  = chave expira em n dias [19]      <n>w = chave expira em n semanas [20]       <n>m = chave expira em n meses [21]       <n>y = chave expira em n anos [22]  A chave é valida por? (0) 1y [23]  A chave expira em Qui 19 Mar 2015 10:18:25 BRT [24]  Está correto (s/N)? s [25] [26]  Você precisa de um identificador de usuário para identificarsua chave; o programa constrói o  identificador a partir do NomeCompleto, Comentário e Endereço Eletrônico desta forma: [27]     "Heinrich Heine (Der Dichter) <[email protected]>"[28] [29] Nome completo: Usuário [30] Endereço de correio eletrônico: [email protected] [31] Comentário: [32] Nome completo: Usuario [33] Endereço de correio eletrônico: [email protected] [34]  Comentário: [35]  Você   selecionou   este   identificador   de   usuário:   "Usuario<[email protected]>" [36] [37]  Muda (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)air? O[38] Você precisa de uma frase secreta para proteger sua chave. [39]  ******************************[40]  Precisamos gerar muitos bytes aleatórios. É uma boa idéiarealizar outra atividade (digitar no teclado, mover o mouse, usaros discos) durante a geração dos números primos; isso dá ao [41] gerador de números aleatórios uma chance melhor de conseguirentropia suficiente. [42][43] gpg: chave 98AACF48 marcada como plenamente confiável chavespública e privada criadas e assinadas. [44][45] gpg: checando o trustdb [46]  gpg:   3   parcial(is)   necessária(s),   1   completa(s)necessária(s), modelo de confiança PGP [47] gpg: profundidade: 0 válidas:   3 assinadas:   0 confiança:0­, 0q, 0n, 0m, 0f, 3u [48] gpg: próxima checagem de banco de dados de confiabilidade em2015­01­28 

[25]

Page 26: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

[49] pub   4096R/98AACF48 2014­03­19 [expira: 2015­03­19] [50] Impressão digital da chave: 2133 9395 3B2A E7A4 B586  D83CDD03 D0BF 98AA CF48 [51] uid  Usuario <[email protected]> [52] sub   4096R/9FD20D28 2014­03­19 [expira: 2015­03­19] 

Repare que inicialmente  

Exportando chaves

Exportar   um   par   de   chaves   é   um   processo   importante   quando   necessitamostransferí­la para outro computador. 

Para exportar sua chave privada, você deve utilizar o seguinte comando: 

$ gpg ­­export­secret­keys ­a numero_id_da_chave > chave_privada.asc

Repare que os campos  numero_id_da_chave e chave_privada.asc  terão de serdesignados por você, isto é, de acordo com seus parâmetros particulares. Vocêterá   de   saber   qual   é   o   ID   da   chave   que   quer   exportar   para   colocar   comoparâmetro  de  exportação via   linha  de comandos,  assim como você   terá  deescolher um nome para o arquivo no qual deseja salvar a chave. 

Para exportar sua chave pública, você pode usar o comando:

$ gpg ­­export ­a numero_id_da_chave > chave_publica.asc

Do   mesmo   modo,   os   parâmetros  numero_id_da_chave  e  chave_publica.ascdevem ser  alterados conforme suas configurações particulares.  

Importando chaves

Você   pode   também   importar   chaves   para   dentro   de   seu   sistema   usandocomandos via terminal com GPG. Nesse caso será ainda mais fácil pois o GPGreconhece a estrutura interna do arquivo da chave e importa de acordo comsua qualidade (pública ou privada). 

Veja como é simples. Para importar a chave pública você só precisa entrar com ocomando  gpg   ­­import,   seguido   do   caminho   e   nome   da   chave.   Não   sãonecessários outros parâmetros para indicar se esta é pública ou privada. O que

[26]

Page 27: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

irá   definir   internamente   essa   separação   será   o   cabeçalho   da   chave   e   suaestrutura. 

Para importar a chave privada: 

$ gpg ­­import  chave_privada.asc

Para importar a chave pública: 

$ gpg ­­import chave_publica.asc

Baixando chaves públicas

Se o objetivo for assinar uma chave púlica a partir do endereço de um servidor, aprimeira coisa a fazer será  baixar a chave para o computador e verificar suafingerprint. Para isso devemos ter ao menos um dado em mãos: o ID da chave. 

Então poderemos usar o comando:

$ gpg ­­keyserver endereço_do_servidor ­­recv­keys ID_da_chave

Onde endereço_do_servidor deve ser o endereço de um servidor ativo de chavespúblicas. Você deve escolher um servidor e substituir no exemplo do comando.Até   o   presente   é   possível   usar   o   server     zimmerman.mayfirst.org,keys.indymedia.org   ou   pool.sks­keyservers.net.   Há   outros   servidores   pela   rede,então é possível encontrar diversos outros serviços funcionando. 

Já   o  ID_da_chave  é   o   conjunto   de   8   caracteres   que   identifica   uma   chavepública open PGP. Em geral são os 8 últimos caracteres presentes na fingerprintda chave. 

Veja o exemplo de um download de chave pública através do servidor MayFirstonde o endereço do servidor é  zimmerman.mayfirst.org  e o ID de exemplo dachave que usaremos é 10101010:

$ gpg –keyserver keys.mayfirst.org ­­recv­keys 10101010gpg: requesting key 10101010 from hkp server zimmerman.mayfirst.org gpg: key 10101010: "Email <[email protected]>" not changed gpg: Número total processado: 1 gpg: Não modificados: 1 

Note   que   é   feita   uma   requisição   da   chave   para   o   servidor   e   1   chave   éprocessada. 

[27]

Page 28: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Verificando a Fingerprint

A partir do download da chave ou do acesso a ela através de algum dispositivode  armazenamento   será   necessário   verificar   se   a   impressão  digital  da   chave(fingerprint) é a igual ao número fornecido por seu/sua correspondente e se nãohouve alterações nela durante o caminho do servidor até  o seu computador.Para isso devemos aplicar o comando de visualização da impressão digital: 

$ gpg ­­fingerprint 10101010 

Veja o exemplo:

$ gpg ­­fingerprint 10101010 

pub   1010A/10101010 2013­01­01 Key fingerprint = 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 uid    Email <[email protected]>uid    Email <[email protected]> sub   1111A/11111111 2013­01­01 [expires: 2015­01­01] sub   0000A/00000000 2013­01­01 [expires: 2015­01­01] 

Repare que no exemplo o usuário possui  mais  de um e­mail  associado a essachave que tem a fingerprint 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101.Repare também a data de expiração da chave: primeiro de janeiro de 2015 paraos dois e­mails associados. 

Assinando Chaves Públicas

Se o número da  fingerprint  apresentado  for  o  mesmo demonstrado pelo/peladono/a da chave, então você pode assinar essa chave. Para assinar, é possívelusar o comando: 

$ gpg ­­sign­key 10101010

Veja no exemplo abaixo como o procedimento será validado. Dessa vez vamosnumerar as linhas para facilitar a explicação do procedimento: 

[01] $ gpg ­­sign­key 10101010 [02] [03]  pub   1010A/  10101010     created: 2013­01­01   expires: 2015­01­01usage: SC 

[28]

Page 29: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

[04] sub  1111A/11111111      created: 2013­01­01  expires: 2015­01­01usage: S   [05]  sub   0000A/00000000       created: 2013­01­01   expires: 2015­01­01usage: E   [06] [ unknown] (1). Email <[email protected]> [07] [ unknown] (2)  Email <[email protected]> [08][09] Really sign all user IDs? (y/N) y [10][11]  pub   1010A/  10101010   created: 2013­01­01   expires: 2015­01­01usage: SC [12] [13] Impressão da chave primária:   0101 0101 0101 0101 0101 0101 01010101 0101 0101[14][15]     Email <[email protected]> [16]     Email <[email protected]>[17][18] Are you sure that you want to sign this key with your [19] key "Seu Email <[email protected]>" (11001100) [20] [21] Really sign? (y/N) y [22][23]  You   need   a   passphrase   to   unlock   the   secret   key   for:*****************************

Na linha [01] o comando de assinatura é dado (gpg ­sign­key) junto com o ID dachave (10101010) que se quer assinar. Logo em seguida, nas linhas 03 à 07, sãomostrados os e­mails associados a esse ID, bem como suas datas de criação e deexpiração da validade das chaves. Nessa chave tomada como exemplo temosduas   contas   associadas   em   uma   única   chave.   Uma   para   o   e­[email protected] e outra para o e­mail  [email protected]. Em seguida, na linha [09],o gpg pergunta se o usuário deseja assinar todos os IDs de chaves associadas aessa. A resposta dada foi sim. Nesse caso a assinatura será feita para os dois e­mails em questão. 

Em seguida, nas linhas [11] à [16], são mostrados novamente os dados da chaveque está para ser assinada: o ID, figerprint e e­mails associados. Então na linha[18] à [21] o GPG pergunta se você realmente quer assinar essa chave com suachave  pública   (são   mostrados   também   para   fins  de   esclarecimento   o   e­mailassociado a sua chave e o ID da mesma). Por fim, na linha [23], a senha de seupar de chaves é requisitada para confirmação da operação. 

Atualizando uma chave pública assinada

Após  a  assinatura  local  de uma chave pública é   recomendado atualizar   seu

[29]

Page 30: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

status   em um servidor.   Para   isso  vamos   precisar   fazer  o  upload  da chave.  Ocomando utilizado nesse caso é:

$ gpg ­­keyserver endereço_do_servidor ­­send­key ID_da_chave

Onde devem ser modificados os campos   endereço_do_servidor e ID_da_chave.Nesse   caso,   mediante   os   exemplos   já   apresentados   aqui,   poderiamos   usar   oservidor MayFirst (keys.mayfirst.org) e o ID (10101010) da chave associada ao e­mail de exemplo [email protected]:

$ gpg ­­keyserver keys.mayfirst.org ­­send­key 01010101

[30]

Page 31: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Enviar e receber e­mails

Depois  de criar  um par  de chaves,  publicar  a  chave pública do par  em umservidor e se familiarizar ao menos com os princípios básicos da troca de chaves,o   passo   seguinte   é   o   envio   de   e­mails   encriptados.   Vamos   apresentardidaticamente   uma   forma   de   fazer   isso   utilizando   aqui   o   software   degerenciamento de e­mails   Icedove e a extensão, para genrenciamento OpenPGP, Enigmail. 

Você  deverá   ter  a última versão estável  dos software  Icedove e da extensãoEnigmail   instalados no seu sistema operacional.   Isso pode ser   feito de diversasformas:  por  um programa de gerenciamento de pacotes  como Synaptic,  porlinha de comando ou ainda pela compilação do código fonte do programa. Nocaso   do   Enigmail,   por   se   tratar   de   uma   extensão   para   Icedove/Thunderbird,também é possível instalá­lo dentro do próprio   Icedove/Thunderbird através daaba de gerenciamento de extensões. 

Exemplo de instalação do Icedove via Synaptic no sistema operacional Debian:

Exemplo de instalação do Enigmail via Synaptic no sistema operacional Debian:

[31]

Page 32: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

Exemplo   de   instalação   do   Enigmail   através   da   aba   de   gerenciamento   deextensões do software Icedove:

Depois  de  feita a  instalação do  Icedove,  a etapa seguinte é  a configuraçãodeste para recebimento de mensagens via POP3 ou Imap de uma ou mais contasde e­mail. 

Sobre esse tópico, isto é, o uso dos protocolos imap e pop3, recomendamos o usode pop3 com armanezamento remoto 0,  isto é,  deleção total dos e­mails queestiverem na nuvem. Recomendamos também o uso de um serviço de e­mailscom   uma   política   de   privacidade   mínima,   que   não   sustente   seu   modelo   de

[32]

Page 33: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

negócios   na   venda   dos   dados   dos/as   usuários/as   para   terceiros   e   nem   quepossua qualquer politica de quebra dos dados dos/as usuários/as. Sabemos queisso pode variar de acordo com o pais, conhecimento adequado, gratuidade ounão do serviço,  entre outros   fatores,  mas sempre que possível   recomendamosatenção sobre isso. 

Dentro   do   Icedove/Thunderbird,   instale   o   plugin   do   Enigmail.   Para   isto,   bastabaixá­lo da página do projeto, baixá­lo usando um sistema de gerenciamento depacotes com Synaptic ou ainda procurá­lo no sistema de extensões incorporadoao Icedove/Thunderbird. Depois reinicie o programa para fazer efeito. 

Depois   de   reiniciado   o   Icedove/Thunderbird,   você   pode   usar   o   assistente   deconfiguração de Open PGP para configurar   sua chave pela primeira  vez.  Nocanto   direito   do   Icedove/Thuderbird,   na   pequena   aba   quadrada   do   cantosuperior,   há   uma   opção   chamada   "open   PGP".   Essa   opção   se   encontrarátambém no menu superior. Abra e procure a opção "Assistente de configuração".Esse assistente  irá  ajudar a configurar tudo. Ele é  um bom método inicial  paraaprender sobre esse processo. 

A   primeira   pergunta   do   assistente   de   configuração   é   sobre   seu   próprio   uso.Habilite a opção “sim” e prossiga. 

[33]

Page 34: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

A segunda pergunta que o assistente irá fazer será com relação a assinatura detodas   as   mensagens.   Se   você   quiser   assinar   todas   as   suas   mensagens,   deixemarcado como sim. Caso queira selecionar manualmente, no ato de envio, aopção de assinar ou não, marque como não.  

Quando você enviar mensagens com assinatura, elas irão acompanhadas de umarquivo   de   texto,   em   geral   intitulado  signature.asc,   com   o   conteúdo   de   sua

[34]

Page 35: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

assinatura digital gerado por usa chave Open PGP. Veja o exemplo: 

­­­­­BEGIN PGP SIGNATURE­­­­­Version: GnuPG v1.4.12 (GNU/Linux)Comment: Using GnuPG with Icedove ­ http://www.enigmail.net/

KWdA4qNQd1ZpdbdVb1jU3yLEVMUiHlNADxL8hACIhmEUMlY5FK/tLKnGBRgUnM1fxrC3UZUGI/SFPyiQIcBAEBAgAGBQJTGKA+AAoJEPi5E7pC7DIXV3sQALHQhVReYLiisP0/NGjHepVf8wRJk+UbYHGwoDmpEBZbTNBzFSJEye+MRJvz8HzxTa9RDHxJHR7QVDvOJSRgihjbkakahdwiuhwejkhdjksfhewi968563i427534278sdfewiyr87587437534848374384738wJtK5TgeUkB3JwWpTYkGNwlGsPhw3qV57fEWdZZ/hG4SIOCpIgJq3acjF9s4LjQgRsB7XVv6XDOFV1Ck7v6ZhfT2VPch9rrvorkidrH8/9ES2XjXtJMlLvmsQr8eKw8vjtxYOukoroVSTyoBePeQbmFS21dVkF6WomNaXyYZHL6V3i7S92tecQSU1+x7NmwBIDNQHjFxKNfZfEi2Bg5hcixlpBMzlvit1IRkD9epqP0IlXFLDF941GYP2LxjEN2Uldsuhy8tryre878qwe8qwyrewbncfkdsfhie85643875643756475643657621939503521JHJAGD,MXXIIWUWqqwyhetuureopotruóiogi spotreiutpowiuertyuiretguwre97435734877dj0GmO+tvDjeUmN23ssvbxXxxUiBgTrJRE/zś ŕ8KwPtDpFUAM+mwLFxrC3UZUGI/SFPyNrsxrC3UZUGI/SFPyNrsxrC3UZUGI/SFPyNrsxrC3UZUGI/SFP

­­­­­END PGP SIGNATURE­­­­­

No   entanto,   o   conteúdo   do   e­mail   poderá   ser   lido   pelo/a   destinatário/a   etambém por qualquer um que interceptar essa mensagem no meio do caminho.Vale lembrar aqui que a assinatura, em tese, seria uma forma de comprovaçãoda autenticidade do remetente.   Seu uso não significa sigilo da mensagem poisesta não estaria criptografada apenas com a assinatura. A assinatura, no caso deum ataque de modificação de conteúdo, pode ser inclusive simulada, gerandoconfusão,   erro   e   comprometimento   de   mensagem   na   chegada   ao/àdestinatário/a. Em outras palavras a assinatura digital tem muito pouca utilidadese usada  isoladamente quando buscamos confidencialidade e autenticidade,ela   deve   ser   usada   junto   com   a   criptografia   em   casos   onde   se   pretenderealmente comprovar a identidade de quem está mandando a mensagem. 

Sendo   assim,recomendamos que vocêdeixe habilitada a opção“não, eu quero criar regraspor   destinatário”   eprossiga   com   o   assistentede   configuração.   Dessemodo, cada vez que vocêprecisar   assinar   umamensagem,   você   aindapoderá   fazê­lomanualmente e de modosimples. 

A   terceira   pergunta   doassistente   deconfiguração será sobre a

[35]

Page 36: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

criptografia   de   suas   mensagens.   Você   terá   de   escolher   entre   “sim”   paracriptografar todas as mensagens que você enviar e “não” para poder escolherindividualmente,   no   ato   do   envio,  quais   mensagens   você   quer  criptografar   equais não quer. Deixe habilitado a opção não, afinal, a menos que você tenha achave Open PGP de todos os seus contatos, você vai querer eventualmente quepessoas  ainda sem chaves  criptográficas  possam  ler  as  mensagens  que vocêenviar a elas. 

A   próxima   pergunta   se   refere   a   configurações   padrão  do   tratamento   que   oconteúdo em formato texto recebe quando utiliza o Open PGP.  Deixe habilitadoa   opção   “não,   obrigado”   por   padrão   caso   não   tenha   certeza   sobre   asimplicações dessas configurações. Aqui um esclarecimento breve: para o casode escolher “sim”, veja em “detalhes” quais são as preferência carregadas. 

[36]

Page 37: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

E   se   tudo   der   certoseu   sistema   vaiencontrar as chavesque   estão   no   seucomputador. Veja oexemplo   abaixo.Basta   selecioná­la  eprosseguir. 

Você   também   temaqui   a   opção   decriar   um   par   dechaves   a   partir   doassistente.   Não

recomendamos   a   criação   por   aqui,   nossa   sugestão   é   que   você   faça   ogerenciamento   de   chaves   e   chaveiros   em   programas   de   gerenciamento   de

chaves como SeaHorse. 

Ok! Se tudo der certo, nesse ponto você   já  vai   ter uma chave configurada epronta para usar no seu Icedove/Thuderbird. 

Agora você precisa notar o seguinte: sua chave tem uma duração de 1 ano etem uma fingerprint única no mundo. Vc precisa guardar essa fingerprint parapassar para as pessoas que queiram assinar publicamente sua chave. Explico: aschaves  ficam num servidor  público.  Mas qualquer um pode subir  uma chave,

[37]

Page 38: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

mesmo que não seja verdadeira, certo? Então como as pessoas vão saber queaquela chave é sua mesmo? Fácil. Vc pode passar sua fingerprint e ao assinareles vão conferir e vão atestar que a chave é realmente sua.

Vulnerabilidades

Cold Boot Ataq

Sky eyes

Arquitetura de uma chave Open PGP

Referências

https://manual.sarava.org

https://pressfreedomfoundation.org/

https://ssd.eff.org/tech

https://guardianproject.info

https://wiki.archlinux.org/index.php/GnuPG

http://www.gnupg.org/gph/en/manual.html

http://www.gnupg.org/documentation/manuals.html

http://outraspalavras.net/capa/chomsky­seguranca­conceito­controverso/

http://revistagalileu.globo.com/Tecnologia/noticia/2014/02/servicos­gratuitos­se­pagam­com­vigilancia.html

http://5dias.wordpress.com/2014/02/11/por­uma­teoria­do­poder­destituinte­de­giorgio­agamben/

http://en.wikipedia.org/wiki/Key_disclosure_law

http://en.wikipedia.org/wiki/Cold_boot_attack

https://pad.riseup.net/p/boas­praticas­openpgp

[38]

Page 39: GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... · processo de criptografia como Enigmail. ... utilizar, ao menos, um sistema operacional

https://we.riseup.net/debian/openpgp­best­practices

[39]