GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... ·...
Transcript of GPG: email com criptografiafelipecabral.com.br/wp-content/uploads/2015/07/tutorial_openpgp... ·...
GPG: email com criptografia
By http://felipecabral.com.brCCBYNCSA
2014
[1]
Í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 emails...............................................................................................29
Vulnerabilidades................................................................................................................36
Referências: .......................................................................................................................37
[2]
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 emails 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]
Requisitos necessários
Você precisará de uma conta de email válidacom imap ou pop3 funcionando. Quase todoprovedor de email possui disponibilidadedestes serviços, bastando em alguns casosativar ou habilitar o funcionamento.
Basicamente vamos usála junto com softwaresde gerenciamento de email como Icedovee/ou Thunderbird e softwares de auxílio aoprocesso de criptografia como Enigmail.
Importante: não sabe o que significa email com POP3 ou Imap ou como verificaresse tipo de coisa? Dê uma olhada nas configurações do email que você utilizano próprio painel do web mail que você costuma acessar. Procure ler asorientações disponibilizadas por seu provedor de email nas páginas específicassobre o assunto. Quase todos os provedores de email tem instruções de comoconfigurar ou habilitar estes serviços para utilizar em softwares de cliente de email.Você não conseguirá avançar neste tutorial se não conseguir ter seu emailconfigurado 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 email 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 emailsde 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]
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 emails cifrados, não se preocupe. Aausência de criptografia no disco rígido não vai inviabilizar a possibilidade detrocar emails 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 emails 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 email associada, istoé, a conta de email que você deseja usar para seus e
mails criptografados.Por fim, é necessário ter instalado, o softwareGNU Privacy Guard6 e/ou sua implementaçãode frontend, o Seahorse7. Novamente vale dizerque existem outros softwares de gerenciamentofrontend 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 aptget, 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]
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 emails 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]
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 email, 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]
• 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 email 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 deemail 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 email 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]
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 email que quer associar a essa chave. Veja omodelo:
[9]
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 email, 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]
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 emails por um período de algunsanos. O que acontece se sua senha for comprometida? Alguém em posse de sua
[11]
senha poderá ler todos os emails 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 emails 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]
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]
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 email associada a chave é possível buscar a(s) chave(s) pública(s) dedeterminado email.
Para cifrar o email é 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 email 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]
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 email a umadeterminada chave.
Vamos imaginar que você tenha dois emails distintos, um email 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 emails, acrescentar o outroemail. O primeiro email pode ser a conta primária e o segundo a secundária ouviceversa. Você é quem escolhe.
A última aba é ade Detalhes da chave. Essa aba é bem importante, porque contém informações
[15]
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=7GZAIwVSxbksEND 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]
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 emails 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 emails criptografados, lembrese 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]
Voltando ao nosso passoapasso, 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.skskeyservers.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]
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 chavepublica.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. Lembrese 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, colea no formulário do servidorpúblico de chaves e submetaa.
Exemplo:
[19]
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]
Quando alguém quiser trocar emails 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 emails 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]
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 email 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, trocase 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]
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.skskeyservers.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 passoapasso de suamanipulação pelo terminal bin/bash.
[23]
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 genkey
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 genkey [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]
[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 em20150128
[25]
[49] pub 4096R/98AACF48 20140319 [expira: 20150319] [50] Impressão digital da chave: 2133 9395 3B2A E7A4 B586 D83CDD03 D0BF 98AA CF48 [51] uid Usuario <[email protected]> [52] sub 4096R/9FD20D28 20140319 [expira: 20150319]
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 exportsecretkeys 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]
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 recvkeys 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.skskeyservers.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 recvkeys 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]
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 20130101 Key fingerprint = 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 uid Email <[email protected]>uid Email <[email protected]> sub 1111A/11111111 20130101 [expires: 20150101] sub 0000A/00000000 20130101 [expires: 20150101]
Repare que no exemplo o usuário possui mais de um email 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 emails 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 signkey 10101010
Veja no exemplo abaixo como o procedimento será validado. Dessa vez vamosnumerar as linhas para facilitar a explicação do procedimento:
[01] $ gpg signkey 10101010 [02] [03] pub 1010A/ 10101010 created: 20130101 expires: 20150101usage: SC
[28]
[04] sub 1111A/11111111 created: 20130101 expires: 20150101usage: S [05] sub 0000A/00000000 created: 20130101 expires: 20150101usage: 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: 20130101 expires: 20150101usage: 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 signkey) junto com o ID dachave (10101010) que se quer assinar. Logo em seguida, nas linhas 03 à 07, sãomostrados os emails 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 email [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 emails 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 emails 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 emailassociado 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]
status em um servidor. Para isso vamos precisar fazer o upload da chave. Ocomando utilizado nesse caso é:
$ gpg keyserver endereço_do_servidor sendkey 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 email de exemplo [email protected]:
$ gpg keyserver keys.mayfirst.org sendkey 01010101
[30]
Enviar e receber emails
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 emails encriptados. Vamos apresentardidaticamente uma forma de fazer isso utilizando aqui o software degerenciamento de emails 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]
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 email.
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 emails queestiverem na nuvem. Recomendamos também o uso de um serviço de emailscom uma política de privacidade mínima, que não sustente seu modelo de
[32]
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]
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]
assinatura digital gerado por usa chave Open PGP. Veja o exemplo:
BEGIN PGP SIGNATUREVersion: 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 email 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]
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]
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]
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/chomskysegurancaconceitocontroverso/
http://revistagalileu.globo.com/Tecnologia/noticia/2014/02/servicosgratuitossepagamcomvigilancia.html
http://5dias.wordpress.com/2014/02/11/porumateoriadopoderdestituintedegiorgioagamben/
http://en.wikipedia.org/wiki/Key_disclosure_law
http://en.wikipedia.org/wiki/Cold_boot_attack
https://pad.riseup.net/p/boaspraticasopenpgp
[38]
https://we.riseup.net/debian/openpgpbestpractices
[39]