GPG: email com criptografia By http://felipecabral.com.br CCBYNCSA 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 demand privacy among two or more people in the midst of social life must inevitably lead to cryptology wherever men thrive and wherever they write. As diversas necessidades e desejos humanos que demandam privacidade entre duas ou mais pessoas devem inevitavelmente incorporar a criptografia onde quer 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 e implentação de chaves assimetricas com GnuPG, Icedove e Enigmail e/ou softwares correlatos, com o objetivo de ensinar pessoas pouco acostumadass a essas tecnologias a trocar emails criptografados. As etapas aqui descritas podem variar de acordo com o ambiente escolhido e com a variante de ferramentas selecionadas, mas os passos básicos serão todos apresentados. Alguns conceitos também estão expostos, mas, para um aprofundamento maior, recomendamos a leitura de literatura específica sobre os assuntos em questão, que pode ser melhor pesquisada em referências. É importante ressaltar que a implementação de cryptografia não garante a total segurança dos dados em uma série de situações. Vulnerabilidades podem incorrer em diversos pontos do processo e o risco de descoberta de dados sensíveis é sempre iminete ante a descuidos ou a forças maiores, como diante das chamadas Leis de Divulgação de Chaves1 presentes em diversos países do mundo. Nesse último caso, mesmo empregando chaves assimétricas de maneira eficiente, indivíduos ou coletivos submetidos a um julgamento, podem ser obrigados 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álida com imap ou pop3 funcionando. Quase todo provedor de email possui disponibilidade destes serviços, bastando em alguns casos ativar ou habilitar o funcionamento. Basicamente vamos usála junto com softwares de gerenciamento de email como Icedove e/ou Thunderbird e softwares de auxílio ao processo de criptografia como Enigmail. Importante: não sabe o que significa email com POP3 ou Imap ou como verificar esse tipo de coisa? Dê uma olhada nas configurações do email que você utiliza no próprio painel do web mail que você costuma acessar. Procure ler as orientações disponibilizadas por seu provedor de email nas páginas específicas sobre o assunto. Quase todos os provedores de email tem instruções de como configurar 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 email configurado num software como thunderbird para leitura de mensagens. Essa conta pode ser de qualquer serviço “gratuito”, mas recomendamos que você use, se possível, uma conta de email com uma politica de segurança mais adequada, cujos termos de uso por exemplo, certifiquem que seus dados pessoais não sejam violados ou comercializados. Sendo assim, evite usar emails de empresas cuja política de privacidade seja absolutamente intrusiva, como o hotmail da Microsoft. Você precisará também de um computador com uma distribuição Linux, de preferência com disco rígido criptografado. Pode ser Debian, Ubuntu, Slackware, Archlinux, Suse, Fedora, Red Hat, ou qualquer outro de sua preferência que tenha possibilidade de criptografia total de dados em disco rígido. Se seu HD não estiver criptografado, isso não vai impedir você prosseguir, mas recomendamos fortemente o uso de uma máquina com esse nível de segurança. Para saber mais sobre criptografia de disco rígido, recomendamos que busque literatura e/ou tutoriais 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 de seu computador? Dê uma olhada nos tutoriais que existem na Internet ou procure ajuda de alguém que possa te orientar para fazer este processo. A comunidade Debian mantém uma ampla documentação sobre este procedimento, você também pode optar por ler este material. É essencial utilizar, 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ígido inicialmente mas ainda assim deseja trocar emails cifrados, não se preocupe. A ausência de criptografia no disco rígido não vai inviabilizar a possibilidade de trocar emails criptografados, esta é apenas uma recomendação para adicionar uma camada a mais de proteção a sua estrutura de comunicação digital. Conforme indicamos anteriormente, você deve ter instalado em seu computador algum programa de gerenciamento de emails como Icedove, Mozila Thunderbird2, SeaMonkey3, Evolution4 ou algum outro de sua preferência que funcione com Enigmail Project5. Não vamos entrar aqui em detalhes sobre como instalar e configurar normalmente esses softwares, mas você pode encontrar facilmente material sobre isso na rede. Basta que algum destes softwares estejam instalados e funcionando 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 software GNU Privacy Guard6 e/ou sua implementação de frontend, o Seahorse7. Novamente vale dizer que existem outros softwares de gerenciamento frontend 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. O importante é têlos instalados e regularmente funcionando. No ato da escrita desse tutorial, realizado e revisado no início do ano de 2014, as indicações apontadas são as mais atuais e usuais para o propósito desejado. No entanto o cenário digital é bastante dinâmico e todos os dias ocorrem alterações, ora mais ora menos, significativas. Então fique atento/a sobre as mudanças que podem ocorrer ao longo do tempo, sobre a validade e segurança do protocolo PGP e sobre eventuais falhas de segurança que por ventura venham a surgir com os softwares indicados. Bem, depois de tudo isso instalado, mãos a obra! Ferramentas Debian Debian é um sistema operacional livre e de código aberto, mantido por uma comunidade de usuários. Ele foi lançado em 1993 e até hoje é uma das melhores opções abertas de sistema operacional do mundo. Desde seu princípio o Debian se mantém profundamente atencioso a criterios de segurança, confiabilidade e valores coletivos. Muitos usuários/as e fóruns de centenas países que mantém essa distribuição, em especial em seu formato Gnu/Linux. Seus princípios básicos iniciais se encontram no Manifesto Debian8 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 do mundo. Ele é definido pelo Grupo de Trabalho OpenPGP da Força Tarefa de Engenharia da Internet (Internet Engineering Task Force – IETF) e foi indicado como um padrão mundial em 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 e outras organizações que são executores da proposta de norma OpenPGP. O grupo trabalha para facilitar a interoperabilidade e divulgação técnica entre as implementações de OpenPGP. É importante observar novamente que o OpenPGP não surgiu Open, isto é, sua implementação primeira vem do PGP. O projeto GNU, como implementação Open, criou o GnuPG ou GPG, que é uma alternativa GPL ao aplicativo PGP de criptografia e portanto uma implementação OpenPGP. As versões proprietárias atuais do PGP possuem interoperabilidade com o GnuPG e com outros sistemas compatíveis com o OpenPGP. GnuPG é parte da Free Software Foundation e do projeto GNU como um todo. Icedove O Icedove é um cliente de correio eletrônico, um software usado para gerenciamento pessoal ou institucional de contas de email, grupos e rss. Ele faz parte da distribuição Linux Debian e é composto basicamente pelo mesmo código do software Mozilla Thunderbird, mas tem outro nome e outro logotipo por questões de uso da marca. SeaHorse Seahorse é um software do projeto GNOME para gerenciamento em modo gráfico de chaves de criptografia e senhas, que usa os algoritmos de cifras do padrão Open PGP e o protocolo de segurança SSH, entre outras implementações. Há também uma coleção de plugins que integram o SeaHorse com softwares como Nautilus, Gedit, GNUPG, entre outros que auxiliam na criptografia edescriptografia de dados. Vamos usáloaqui como ferramenta auxiliar na criação e gerenciamento de chaves. 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 plugin junto com clientes de leitura de email como Thunderbird, Icedove, SeaMonkey, entre outros; permitindo que usuários/as acessem os recursos de autenticação e criptografia fornecidos pelo GnuPG. Em outras palavras, o Enigmail permite que esses softwares de gerenciamento de email enviem e recebam mensagens assinadas digitalmente e/ou criptografadas usando o padrão OpenPGP. Passo a passo Apresentaremos os passos necessários para a criação e configuração das chaves que possibilitarão a criptografia de mensagens. Depois, demonstraremos como configurar seu cliente de email para interagir com essas chaves. Boa leitura. 1. Criação de chaves Vamos criar uma chave de criptografia com protocolo Open PGP e associála a uma conta de email. Para isso, vamos usar o software GNUPG com o SeaHorse. Abra o SeaHorse e você vai ver uma tela como essa aolado. Ou você verá uma tela como essa, se já possui algumas senhas gravadas: [8] Clique no botão adicionar (sinal de +) ou no menu “Arquivo” > “novo” e você vai ver uma nova tela com as opções de chave ou senha que podem ser criadas. Nós vamos optar por Chave 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 o modelo: [9] Aqui três pontos de observação são fundamentais. O primeiro deles é: não coloque comentários no campo de comentários. É estranho dizer isso, mas colocar comentários associados a uma chave pode deixar uma brecha para que outras pessoas criem chaves com informações falsas a fim de confundir eventuais assinantes de sua chave. Atenção: qualquer pessoa pode criar um par de chaves e associálo a qualquer conta de email, mesmo que esta pessoa não seja don/ada conta em questão. Nós poderiamos criar um par de chaves para o email [email protected] mesmo não tendo acesso a essa conta. A tecnologia de criação de chaves com GPG permite isso, criando diversas situações que exigem administração para assegurar que nossa chave é realmente autentica. Entre essas situações estão a observação dos vetores de ataque e a verificação e a troca segura de uma impressão digital entre os pares que querem se comunicar através da criptografia de chaves. Falaremos mais sobre isso adiante. Explicando de outra forma, imagine que alguém mal intencionado queira criar uma chave criptográfica para simular que é sua chave pessoal. Essa pessoa poderia criar a chave e colocar um comentário como “Chave pessoal do SeuNome” ou ainda “Chave em funcionamento”. Isso poderia reforçar a ideia de que aquela chave é realmente sua, algo que você não vai querer. O que fazer entã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 outro contato tiver algum comentário associado a chave, isso não vai representar um problema de vulnerabilidade direta, permitindo a quebra da mesma, mas [10] conforme explanado é bom evitar. Uma cultura de segurança se constroi também nos detalhes. O segundo ponto é: use a cifra mais alta possível, isto é, atualmente 4096 bits. O padrão internacional é 2048 bits, mas se podemos usar uma criptografia mais forte, porque não usar? Implementando uma chave com 4096 bits você está usando uma criptografia que tem 2 elevado a 4096 (2 4096) possibilidades matemáticas. Ou esse número abaixo: 1044388881000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000 Por fim, nosso terceiro apontamento é: coloque uma data de expiração para sua chave e troque ela periodicamente. Uma boa metrica de tempo talvez seja semestral ou anual. (sério sempre trabalhamos com 2 anos) Imagine que você tem uma chave e a usa pelo período de 6 meses. Quanta coisa acontece na sua vida nesse período? Quantas vunerabilidades você passa sem nem perceber? Ou quantas vulnerabilidades estão em curso em seu computador nesse exato momento? Não dá pra saber, mas só a possibilidade de brechas existirem, de sua senha ser comprometida seja por alguém que ficou observado você digitála, seja por um novo software de roubo de senhas que mal temos conhecimento hoje, já temos um bom motivo para colocar data em nossas chaves e senhas. Uma outra situação é a seguinte: você troca emails por um período de alguns anos. 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 senha válidas por apenas 6 meses ou 1 ano, caso ela venha a ser comprometida, todos os emails anteriores criptografados com chaves antigas podem estar a salvo da vigilância. Ou seja, você consegue um controle maior para o caso de uma situação crítica eventual de comprometimento de chaves e senhas. Após terminar o preenchimento desses dados, você deve clicar em criar e uma nova janela se abrirá, pedindo então a senha que você quer associar a essa chave. 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 o exemplo 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 pois tem apenas 16 caracteres. Num ataque de força bruta um software de exploração de senhas pode usar um dicionário combinando vogais com números, o que reduziria bastante a dificuldade da senha em si. Agora vamos olhar para essa outra senha: bicicletaterremotocabelopizzavestidopapagaiobeatlescaramelo Temos aqui 8 palavras concatenadas e um total de 59 caracteres!! Fica fácil de lembrar porque são apenas 8 palavras, ou seja, é mais fácil do que um número de telefone e fica muito mais difícil de quebrar pois são muito mais combinações do que na senha anterior. Para deixar o método mais interessante, você pode também começar e terminar com palavras inventadas. Sim, isso mesmo, com palavras que não existem em nenhum dicionário pois foram criadas por você. Exemplo: bicicletaniataniaterremotocabelopizzavestidopapagaiobeatlescaramarradus Substituimos a palavra bicicleta por bicicletania e a palavra caramelo por caramarradus. Isso derruba fortemente as possibilidades de ação força bruta com a ajuda de dicionários, pois as palavras não tem correlato no léxico registrado em nenhuma língua, só na sua língua inventada. Criada a senha, seu sistema vai preparar a entropia, juntando sua senha ao algorí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 de processamento do seu computador, tamanho da senha, entre outros fatores. Terminado o processo, você verá novamente a tela principal do SeaHorse com as chaves criadas. Se tiver mais de uma chave, ela aparecerão uma sobre a outra, da mais antiga para 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ásicos sobre isso aqui, em especial a ideia de chaves assimétricas. Você tem, então, uma chave pública e uma privada. Sua chave pública qualquer pessoa poderá ter acesso e sua chave privada só você deve ter, daí os nomes chave pública e chave privada. As chaves públicas são publicadas em servidores de chaves Open PGP. Esses servidores são como bibliotecas de chaves onde através de alguma informação como impressão digital, ID da chave ou conta de email associada a chave é possível buscar a(s) chave(s) pública(s) de determinado email. Para cifrar o email é necessário ter a chave pública da pessoa com quem deseja se corresponder. Explicando de outro modo, podemos dizer que funciona assim: toda chave pública gera mensagens que só podem ser abertas com as chaves privadas. 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 a mensagem 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 assinar digitalmente uma mensagem, certificando assim que aquela mensagem partiu de um email correspondentea qual está associada. Vamos ver na prática esse processo, mas antes alguns passos básicos para o gerenciamento de suas chaves. Para acessar as opções de gerenciamento oferecidas pelo SeaHorse, você pode clicar com o botão direito do mouse em cima de sua chave, na tela principal do programa (tela da aba “Minhas chaves pessoais” 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 uma foto ou imagem de identificação na chave. Isso não é necessário, especialmente no caso de proteção de sua privacidade, afinal colocar uma foto só expõe mais dados seus na rede. A próxima aba é a “Nomes e assinaturas”. Nela, você pode, clicando em “Adicionar nome”, acrescentar outras contas de e mail a uma determinada chave. Vamos imaginar que você tenha dois emails distintos, um email pessoal e um do seu trabalho. Eles tem endereços diferentes, mas você pode gerenciar mensagens critptografadas dos dois com uma única chave. Basta, em uma chave já criada e associada a qualquer um dos dois emails, acrescentar o outro email. O primeiro email pode ser a conta primária e o segundo a secundária ou viceversa. Você é quem escolhe. A última aba é a de 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 da entropia, (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. Essa opção de exportação gerará um arquivo com sua chave privada. Para exportar a chave pública basta clicar em cima da chave com botão direito do mouse e usar a opção copiar. Daí é só colar no bloco de notas e salvar. Sua chave pública consiste basicamente em um conjunto de caracteres como este: BEGIN PGP PUBLIC KEY BLOCK Version: GnuPG v1.4.11 (GNU/Linux) AuRJnhFKFKs1Y1leBj+pSX+BP8jBGOQLSnmberzT9uwam7HW2dwyEyl82t+3T4jewpbZ4AZuQ/4w2LOS D231SH/4TdhWPnsoLuBfNRGtGycDLOiMn9FhaSpuv0UnvI7CiSINZfS4TIa2+DTHbP0DNbQ4oE7AVktc 3us4KUVtGdCW2qNM8gRO/ApqwzwtPwWxWRUO2I5RLuG/rDecAja5D87hu3edIO0C0Dax54IG8X+8faLQ C3B4u6VBcVO+Hw1ohpEvw01OeUTGyLHDZLVsPenNH+0x1t9t8+3i6OYXooJfWY6IZYshN1WpTul3ADzW J6eJ5kkjf5VWqBjCFqQ0nGmU4bgq7JAk2W+V3jWu/K+1HB7yxiRjTqDZKLbPXkNRrj3HCxQZj/jSYy2r G3CmKHN2njY7k6Jn1Q3FrXBBizpvXWh4BQkAZuCPHSXKnwARAQABzr4x7H0Rbsm0AcyoNpkynDtnp9Zj WFsdYTTwxGXitkIuKyHkcrA0K/7sMm5SH4kOBBuPQ58MEOSLxBUrGzdK5Hbw1AnFO7GjGDuiSTBvluLW ccx8YMQebpNquQINBFLn0fIBEAChAZBMs2p1VzBu/9OqOvxjrZG1f1ZTGgXEc2TNTBoec2VxfsXNTeiA 5rLNVzum/qEnqaPZE60O/ejvF3k9UB73cV73pB6wIS1EgXC5iPvuOzFJekFFRehaYymDwnEw4kY1DwqP OFCZXVTVjp3KFjMSl0wvDjPqRl8t5SFuor+BaqBsnKdDLqM8lkza9lDnfGO/Q1kQ/PVZ/QnomRLXdWAb zx62B/FmtK4yGb8vY9HGN2Cb6YqnLGITv5/KU8aqsby0MonEFVF85n7UF1kuMB0b51y7GToG8mwSatFv LauzrM3QnRHP5YQghDX04Xygnikc8Nyxa2572XGOaUJKTk5LPbL9LpIZZRfG3VY6rwMrd+vDxMu/L1Fq u7xbBi/mt0arapvGwNUWVl1t2Ty0ejVNuPNbo2n0igCGNukSd3Q5XxuHwO8e/ophao5SKpxoCZzhIskR 1d76NhUv1ERJGxw0hJNO41VfZHKmx5HgoHuDXFw36fNtf3Oj3BuMmy1r8iuI1jO7+FVAnU4ExkVF7KiY dewd6SZcWD7rDX6iPsp8B9TwjUnOlMiY2M67e0fWwm3WAvQcd+k10iO8/Vwa/P8YhsntmhE55ayT8zhN y00CwdyGASzTvIhODUj=7GZAIwVSxbksIUj=7GZAIwVSxbksIUj=7GZAIwVSxbksIUj=7GZAIwVSxbks END PGP PUBLIC KEY BLOCK E sua chave privada, de modo bem parecido, consiste basicamente em um conjunto de caracteres como este: BEGIN PGP PRIVATE KEY BLOCK Version: GnuPG v1.4.11 (GNU/Linux) GSÇJGSRÇEI,MUPRCMEPCAMYT47805643789Q457NMC54N45748C5QM54CALI8zhNy00CwdyGASzTvIhO DUj7GZAIwVSxbksI11iDO5r15cC=CucN99349758463781HKCJDFAKJHSHGSHsslalieoreireirejop qrept8erutqppeoekjkndcmhuicfyatsgxmOFRYFMXRGFlsdgoiFGEI0açtm489qtcm85785438mq548 3m5c4385m4385c454385c48558q85485cqictreFU5X3843.Z587,X758CM57TC48C458X,4JKLRF.JÇ GFÇDJAKÇGAÇVMCXNBXNBWAUIET693546324511'01091091409587508145714850157418589760896 721809576092586VMZWD7rDX6iPsp8B9TwjUnOlMiY2M67e0fWwm3WAvQcd+k10iO8/Vwa/P8Yhsntmh E55ayTalrksjkesjfajfkjjJDAJKLJÇjhHJHGSHFÇOIURETPOWUTWT'5T5Ẃ05LKRJG;LSDFKGMJSKJFG SÇJGSRÇEI,MUPRCMEPCAMYT47805643789Q457NMC54N45748C5QM54CALI8zhNy00CwdyGASzTvIhOD Uj7GZAIwVSxbksI11iDO5r15cC=CucN99349758463781HKCJDFAKJHSHGSHsslalieoreireirejopq rept8erutqppeoekjkndcmhuicfyatsgxmOFRYFMXRGFWD7rDX6iPsp8B9TwjUnOlMiY2M67e0fWwm3W AvQcd+k10iO8/Vwa/P8YhsntmhE55ayTalrksjkesjfajfkjjJDAJKLJÇjhHJHGSHFÇOIURETPOWUTWT '5T5Ẃ05LKRJG;LSDFKGMJSKJFCLIMRCULDXMEXR,UPAXUYP9GXHRI3875,834CX4378C5475MC43Q897 M543,97DLGC,XMkO77eN4udnnogZ2162Np9PuH+61dOFq8ymbBi/mt0arapvGwNUWVl1t2Ty0ejVNuPN bo2n0igCGNukSd3Q5XxuHwO8e/ophao5SKpxoCZzhIskR1d76NhUv1ERJGxw0hJNO41VfZHKmx5HgoHu [16] END PGP PRIVATE KEY BLOCK Já a fingerprint ou Impressão Digital da Chave é composta de 10 conjuntos de 4 caracteres, 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 sobre isso adiante. Por fim, podemos dizer que existem outras configurações que o SeaHorse oferece para o gerenciamento de chaves e chaveiros, entre os quais a sincronia de chaves com servidores públicos, a busca remota de chaves, a visualização de certificados de segurança do sistema, entre diversas possibilidades. Nosso objetivo aqui foi apresentar as principais caracteristicas do software e ressaltar os pontos importantes deste para o auxiílio no processo geral de envio de emails com Open PGP. Para mais detalhes, recomendamos a leitura do manual do Seahorse 13 e para um aprofundamento no gerenciamento de chaves, recomendamos a leitura 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, somente os 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úblicas para que outras pessoas possam assinála e para que ela fique verdadeiramente pública. Mas ATENÇÃO novamente! Você vai ter uma chave pública e uma chave privada. Você só deverá subir a chave pública. A privada vai ficar em seu computador. Se, por algum motivo, você tiver de formatar seu computador ou usar outra máquina para enviar emails criptografados, lembrese de carregar sua chave consigo salvando os arquivos que contém a chave em locais seguros. Falamos sobre isso no capítulo anterior, em Gerenciando Chaves, então se você ainda não leu, sugerimos que dê uma olhada. Abordaremos mais sobre o assunto també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 do SeaHorse, você pode clicar em cima da chave, copiála e colála num arquivo de 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 o método de extração de chaves via linha de comandos explicado na sessão GPG via linha de comandos. Não importa, o importante é ter acesso a um arquivo como 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/4w2LOS D231SH/4TdhWPnsoLuBfNRGtGycDLOiMn9FhaSpuv0UnvI7CiSINZfS4TIa2+DTHbP0DNbQ4oE7AVktc 3us4KUVtGdCW2qNM8gRO/ApqwzwtPwWxWRUO2I5RLuG/rDecAja5D87hu3edIO0C0Dax54IG8X+8faLQ C3B4u6VBcVO+Hw1ohpEvw01OeUTGyLHDZLVsPenNH+0x1t9t8+3i6OYXooJfWY6IZYshN1WpTul3ADzW J6eJ5kkjf5VWqBjCFqQ0nGmU4bgq7JAk2W+V3jWu/K+1HB7yxiRjTqDZKLbPXkNRrj3HCxQZj/jSYy2r G3CmKHN2njY7k6Jn1Q3FrXBBizpvXWh4BQkAZuCPHSXKnwARAQABzr4x7H0Rbsm0AcyoNpkynDtnp9Zj WFsdYTTwxGXitkIuKyHkcrA0K/7sMm5SH4kOBBuPQ58MEOSLxBUrGzdK5Hbw1AnFO7GjGDuiSTBvluLW ccx8YMQebpNquQINBFLn0fIBEAChAZBMs2p1VzBu/9OqOvxjrZG1f1ZTGgXEc2TNTBoec2VxfsXNTeiA 5rLNVzum/qEnqaPZE60O/ejvF3k9UB73cV73pB6wIS1EgXC5iPvuOzFJekFFRehaYymDwnEw4kY1DwqP OFCZXVTVjp3KFjMSl0wvDjPqRl8t5SFuor+BaqBsnKdDLqM8lkza9lDnfGO/Q1kQ/PVZ/QnomRLXdWAb zx62B/FmtK4yGb8vY9HGN2Cb6YqnLGITv5/KU8aqsby0MonEFVF85n7UF1kuMB0b51y7GToG8mwSatFv LauzrM3QnRHP5YQghDX04Xygnikc8Nyxa2572XGOaUJKTk5LPbL9LpIZZRfG3VY6rwMrd+vDxMu/L1Fq u7xbBi/mt0arapvGwNUWVl1t2Ty0ejVNuPNbo2n0igCGNukSd3Q5XxuHwO8e/ophao5SKpxoCZzhIskR 1d76NhUv1ERJGxw0hJNO41VfZHKmx5HgoHuDXFw36fNtf3Oj3BuMmy1r8iuI1jO7+FVAnU4ExkVF7KiY dewd6SZcWD7rDX6iPsp8B9TwjUnOlMiY2M67e0fWwm3WAvQcd+k10iO8/Vwa/P8YhsntmhE55ayT8zhN y00CwdyGASzTvIhODUj=7GZAIwVSxbksIUj=7GZAIwVSxbksIUj=7GZAIwVSxbksIUj=7GZAIwVSxbks END PGP PUBLIC KEY BLOCK Depois de copiar sua chave pública é hora de gravála em um servidor. Vamos falar sobre o método mais simples que é colar o conteúdo do arquivo diretamente 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 de chaves públicas open pgp rodando na rede. Se tiver curiosidade, faça uma pesquisa 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 new OpenPGP 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 via linha de comandos, um arquivo como chavepublica.asc. Se você optou por usar o SeaHorse, encontre sua chave no quadro “minhas chaves” e clique em cima dela com botão direito, depois escolha a opção copiar. Em seguida cole no bloco de notas para ter certeza que você copiou apenas sua chave pública. Lembrese como vimos anteriormente que o cabeçalho da chave indica se ela é pública ou privada. Se você optou por ter sua chave em um arquivo exportando via GPG, basta abrir o arquivo com bloco de notas e copiar o conteúdo. Copiada a chave, colea no formulário do servidor pú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á procurar suas chaves por lá. Mas para a efetivação desse processo existe um procedimento seguro de troca de chaves. Falaremos disso a seguir. 4. Troca de chaves There are two kinds of cryptography in this world: cryptography that will stop your kid sister from reading your files, and cryptography that will stop major governments from reading your files. Há dois tipos de criptografia no mundo: a criptografia que impede que sua irmãzinha veja seus arquivos e a criptografia que impede que os maiores governos vejam seus arquivos. Bruce Schneier Cryptography Applied O processo de troca de chaves é um dos aspectos mais sensíveis do procedimento de adoção do GPG para emails criptografados. Isto porque dele depende muitas vezes o sucesso e a garantia de confidencialidade entre os pares. Um processo de troca de chaves bem feito pode reservar uma margem boa de confiabilidade na troca de mensagens. Não existem processos invioláveis, mas quando tomamos precauções precisas podemos evitar consideravelmente as possibilidades de sucesso de alguns ataques. Em tese, quando temos chaves públicas, publicadas em um servidor, estas podem ser obtidas a partir de qualquer lugar, pela web. Mas nunca devemos adotar esse procedimento: assinar chaves de um determinado remetente pela web sem que possamos verificar a integridade da chave com algum método de segurança. [21] O paradigma clássico de esclarecimento desse processo utiliza uma narrativa com dois personagens principais chamados de Alice e Bob. Aqui vamos adotar a mesma explicação, mas trocando os nomes a adaptando as situações para Joã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 da mensagem. Desse modo, Maria troca chaves com João. Ela passa para ele sua chave pública, de modo que João possa criptografar mensagens com essa chave que só poderão ser abertas com a chave privada de Maria. O mesmo acontece ao contrário. Maria pega a chave pública de João e quando quer mandar uma mensagem cujo conteúdo não deve ser violado ela criptografa esta mensagem usando a chave pública de João. O conteúdo só poderá ser aberto com a chave privada do mesmo. Essa troca de chaves pode ser dar de diversas formas, sendo uma das mais recomendadas a troca presencial direta ou ao menos a troca autenticada presencialmente. No primeiro modo você pode exportar sua chave pública, gravála num dispositivo auditado, como um pendrive que acabou de ser formatado por você ou um cd que acabou de ser gravado, e entregálo para cópia direta no computador de quem se quer trocar mensagens. No segundo modo, 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ão como esse já seria suficiente: [22] Email: [email protected] Impressão Digital: DF10 0695 1127 9482 850D AD0C A160 2E64 89F4 C290 De posse deste cartão, um usuário poderá baixar uma chave pública que corresponda 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" > "Gerenciamento de chaves" > "servidor de chaves" > "procurar chaves". No campo do servidor você 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 de quem quer obter a chave. Se o/a usuário/a tiver mais de uma chave, todas aparecerão listadas abaixo. Então, para saber qual é a chave correta, verifique qual é 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 por interfaces gráficas, o único modo de manipular chaves era utilizando softwares via linha de comandos, como o GnuPG. Sendo assim, abordamos aqui os comandos essenciais básicos para criar, exportar, importar, assinar, e deletar chaves através dele. Considerando que o programa já esteja instalado em seu sistema operacional, conforme dito anteriormente, vamos apresentar o passoapasso de sua manipulaçã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 sente inseguro/a sobre esse procedimento, busque outras leituras para entender melhor como funciona. Não será necessário estar logado como root – superusuário/a para executar os procedimento descritos a seguir, mas em alguns sistemas talvez seja requerido que o/a usuário/a em questão faça parte do grupo GPG para utilizar o programa. Criando um par de chaves O primeiro passo para começar do zero diretamente com GnuPG é a criação de chaves. 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ão na configuração da chave. Veja atentamente abaixo. Enumeramos as linhas de saída para referenciar de modo mais fácil cada uma das etapas. Repare que a saída aqui presente do comando está completa, isto é, copiada após todo processo de criação. No entanto as perguntas de customização da chave serão feitas gradualmente. As linhas que contém perguntas respostas foram destacadas aqui na cor vermelha. [01] $ gpg genkey [02] gpg (GnuPG) 1.4.11; Copyright (C) 2010 Free Software Foundation, Inc. [03] This is free software: you are free to change and redistribute 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 4096 bits. [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 ser vá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 identificar sua chave; o programa constrói o identificador a partir do Nome Completo, 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éia realizar outra atividade (digitar no teclado, mover o mouse, usar os discos) durante a geração dos números primos; isso dá ao [41] gerador de números aleatórios uma chance melhor de conseguir entropia suficiente. [42] [43] gpg: chave 98AACF48 marcada como plenamente confiável chaves pú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 em 20150128 [25] [49] pub 4096R/98AACF48 20140319 [expira: 20150319] [50] Impressão digital da chave: 2133 9395 3B2A E7A4 B586 D83C DD03 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 necessitamos transferí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 ser designados por você, isto é, de acordo com seus parâmetros particulares. Você terá de saber qual é o ID da chave que quer exportar para colocar como parâmetro de exportação via linha de comandos, assim como você terá de escolher 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.asc devem ser alterados conforme suas configurações particulares. Importando chaves Você pode também importar chaves para dentro de seu sistema usando comandos via terminal com GPG. Nesse caso será ainda mais fácil pois o GPG reconhece a estrutura interna do arquivo da chave e importa de acordo com sua qualidade (pública ou privada). Veja como é simples. Para importar a chave pública você só precisa entrar com o comando gpg import, seguido do caminho e nome da chave. Não são necessá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 sua estrutura. 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, a primeira coisa a fazer será baixar a chave para o computador e verificar sua fingerprint. 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 chaves pú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 chave pública open PGP. Em geral são os 8 últimos caracteres presentes na fingerprint da chave. Veja o exemplo de um download de chave pública através do servidor MayFirst onde o endereço do servidor é zimmerman.mayfirst.org e o ID de exemplo da chave que usaremos é 10101010: $ gpg –keyserver keys.mayfirst.org recvkeys 10101010 gpg: 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 dispositivo de 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ão houve 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 essa chave 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 para os dois emails associados. Assinando Chaves Públicas Se o número da fingerprint apresentado for o mesmo demonstrado pelo/pela dono/a da chave, então você pode assinar essa chave. Para assinar, é possível usar o comando: $ gpg signkey 10101010 Veja no exemplo abaixo como o procedimento será validado. Dessa vez vamos numerar as linhas para facilitar a explicação do procedimento: [01] $ gpg signkey 10101010 [02] [03] pub 1010A/ 10101010 created: 20130101 expires: 20150101 usage: SC [28] [04] sub 1111A/11111111 created: 20130101 expires: 20150101 usage: S [05] sub 0000A/00000000 created: 20130101 expires: 20150101 usage: 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: 20150101 usage: SC [12] [13] Impressão da chave primária: 0101 0101 0101 0101 0101 0101 0101 0101 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 da chave (10101010) que se quer assinar. Logo em seguida, nas linhas 03 à 07, são mostrados os emails associados a esse ID, bem como suas datas de criação e de expiração da validade das chaves. Nessa chave tomada como exemplo temos duas contas associadas em uma única chave. Uma para o email [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 a essa. 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 chave que 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 sua chave pública (são mostrados também para fins de esclarecimento o email associado a sua chave e o ID da mesma). Por fim, na linha [23], a senha de seu par 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. O comando 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 o servidor MayFirst (keys.mayfirst.org) e o ID (10101010) da chave associada ao e mail 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 um servidor e se familiarizar ao menos com os princípios básicos da troca de chaves, o passo seguinte é o envio de emails encriptados. Vamos apresentar didaticamente uma forma de fazer isso utilizando aqui o software de gerenciamento de emails Icedove e a extensão, para genrenciamento Open PGP, Enigmail. Você deverá ter a última versão estável dos software Icedove e da extensão Enigmail instalados no seu sistema operacional. Isso pode ser feito de diversas formas: por um programa de gerenciamento de pacotes como Synaptic, por linha de comando ou ainda pela compilação do código fonte do programa. No caso 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 da aba 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 de extensões do software Icedove: Depois de feita a instalação do Icedove, a etapa seguinte é a configuração deste para recebimento de mensagens via POP3 ou Imap de uma ou mais contas de email. Sobre esse tópico, isto é, o uso dos protocolos imap e pop3, recomendamos o uso de pop3 com armanezamento remoto 0, isto é, deleção total dos emails que estiverem na nuvem. Recomendamos também o uso de um serviço de emails com 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 que possua qualquer politica de quebra dos dados dos/as usuários/as. Sabemos que isso pode variar de acordo com o pais, conhecimento adequado, gratuidade ou não do serviço, entre outros fatores, mas sempre que possível recomendamos atenção sobre isso. Dentro do Icedove/Thunderbird, instale o plugin do Enigmail. Para isto, basta baixálo da página do projeto, baixálo usando um sistema de gerenciamento de pacotes com Synaptic ou ainda procurálo no sistema de extensões incorporado ao Icedove/Thunderbird. Depois reinicie o programa para fazer efeito. Depois de reiniciado o Icedove/Thunderbird, você pode usar o assistente de configuração de Open PGP para configurar sua chave pela primeira vez. No canto direito do Icedove/Thuderbird, na pequena aba quadrada do canto superior, 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 para aprender 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 de todas as mensagens. Se você quiser assinar todas as suas mensagens, deixe marcado como sim. Caso queira selecionar manualmente, no ato de envio, a opção de assinar ou não, marque como não. Quando você enviar mensagens com assinatura, elas irão acompanhadas de um arquivo 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 SIGNATURE Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Icedove http://www.enigmail.net/ KWdA4qNQd1ZpdbdVb1jU3yLEVMUiHlNADxL8hACIhmEUMlY5FK/tLKnGBRgUnM1fxrC3UZUGI/SFPy iQIcBAEBAgAGBQJTGKA+AAoJEPi5E7pC7DIXV3sQALHQhVReYLiisP0/NGjHepVf8wRJk+UbYHGwoDmp EBZbTNBzFSJEye+MRJvz8HzxTa9RDHxJHR7QVDvOJSRgihjbkakahdwiuhwejkhdjksfhewi968563i4 27534278sdfewiyr87587437534848374384738wJtK5TgeUkB3JwWpTYkGNwlGsPhw3qV57fEWdZZ/h G4SIOCpIgJq3acjF9s4LjQgRsB7XVv6XDOFV1Ck7v6ZhfT2VPch9rrvorkidrH8/9ES2XjXtJMlLvmsQ r8eKw8vjtxYOukoroVSTyoBePeQbmFS21dVkF6WomNaXyYZHL6V3i7S92tecQSU1+x7NmwBIDNQHjFxK NfZfEi2Bg5hcixlpBMzlvit1IRkD9epqP0IlXFLDF941GYP2LxjEN2Uldsuhy8tryre878qwe8qwyrew bncfkdsfhie85643875643756475643657621939503521JHJAGD,MXXIIWUWqqwyhetuureopotruói śogiŕ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 e també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ção da autenticidade do remetente. Seu uso não significa sigilo da mensagem pois esta não estaria criptografada apenas com a assinatura. A assinatura, no caso de um ataque de modificação de conteúdo, pode ser inclusive simulada, gerando confusão, erro e comprometimento de mensagem na chegada ao/à destinatário/a. Em outras palavras a assinatura digital tem muito pouca utilidade se usada isoladamente quando buscamos confidencialidade e autenticidade, ela deve ser usada junto com a criptografia em casos onde se pretende realmente comprovar a identidade de quem está mandando a mensagem. Sendo assim, recomendamos que você deixe habilitada a opção “não, eu quero criar regras por destinatário” e prossiga com o assistente de configuração. Desse modo, cada vez que você precisar assinar uma mensagem, você ainda poderá fazêlo manualmente e de modo simples. A terceira pergunta do assistente de configuração será sobre a [35] criptografia de suas mensagens. Você terá de escolher entre “sim” para criptografar todas as mensagens que você enviar e “não” para poder escolher individualmente, no ato do envio, quais mensagens você quer criptografar e quais não quer. Deixe habilitado a opção não, afinal, a menos que você tenha a chave Open PGP de todos os seus contatos, você vai querer eventualmente que pessoas 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 o conteúdo em formato texto recebe quando utiliza o Open PGP. Deixe habilitado a opção “não, obrigado” por padrão caso não tenha certeza sobre as implicações dessas configurações. Aqui um esclarecimento breve: para o caso de escolher “sim”, veja em “detalhes” quais são as preferência carregadas. [36] E se tudo der certo seu sistema vai encontrar as chaves que estão no seu computador. Veja o exemplo abaixo. Basta selecionála e prosseguir. Você também tem aqui a opção de criar um par de chaves a partir do assistente. Não recomendamos a criação por aqui, nossa sugestão é que você faça o gerenciamento 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 e pronta para usar no seu Icedove/Thuderbird. Agora você precisa notar o seguinte: sua chave tem uma duração de 1 ano e tem uma fingerprint única no mundo. Vc precisa guardar essa fingerprint para passar para as pessoas que queiram assinar publicamente sua chave. Explico: as chaves 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 que aquela chave é sua mesmo? Fácil. Vc pode passar sua fingerprint e ao assinar eles 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/servicosgratuitosse pagamcomvigilancia.html http://5dias.wordpress.com/2014/02/11/porumateoriadopoderdestituintede giorgioagamben/ 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]