GPG: email com criptografia

Сomentários

Transcrição

GPG: email com criptografia
GPG: e­mail com criptografia
By http://felipecabral.com.br
CC­BY­NC­SA
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 e­mails...............................................................................................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 e­mails 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 e­mail válida
com imap ou pop3 funcionando. Quase todo
provedor de e­mail possui disponibilidade
destes serviços, bastando em alguns casos
ativar ou habilitar o funcionamento. Basicamente vamos usá­la junto com softwares
de gerenciamento de e­mail como Icedove
e/ou Thunderbird e softwares de auxílio ao
processo de criptografia como Enigmail. Importante: não sabe o que significa e­mail com POP3 ou Imap ou como verificar
esse tipo de coisa? Dê uma olhada nas configurações do e­mail que você utiliza
no próprio painel do web mail que você costuma acessar. Procure ler as
orientações disponibilizadas por seu provedor de e­mail nas páginas específicas
sobre o assunto. Quase todos os provedores de e­mail tem instruções de como
configurar ou habilitar estes serviços para utilizar em softwares de cliente de e­mail.
Você não conseguirá avançar neste tutorial se não conseguir ter seu e­mail
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 e­mail 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 e­mails
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 e­mails cifrados, não se preocupe. A
ausência de criptografia no disco rígido não vai inviabilizar a possibilidade de
trocar e­mails 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 e­mails 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 e­mail associada, isto
é, a conta de e­mail que você deseja usar para seus e­
mails criptografados.
Por fim, é necessário ter instalado, o software
GNU Privacy Guard6 e/ou sua implementação
de front­end, o Seahorse7. Novamente vale dizer
que existem outros softwares de gerenciamento
front­end de chaves, como Kgpg, EasyPG, entre
outros. Mas adotamos aqui por critérios didáticos e de adequação o Seahorse. Para instalação desse software você pode usar o apt­get, o pacman, o synaptic,
alguma central de gerenciamento de softwares específica de seu sistema
2
http://www.mozilla.org/en-US/thunderbird
3
http://www.seamonkey-project.org
4
https://wiki.gnome.org/Apps/Evolution
5
https://www.enigmail.net
6
GNUPG http://www.gnupg.org
7
https://wiki.gnome.org/Apps/Seahorse
[5]
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 e­mails 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 e­mail, 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 e­mail 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
e­mail 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 e­mail 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 e­mail 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 e­mail, mesmo que esta pessoa não seja don/ada conta
em questão. Nós poderiamos criar um par de chaves para o e­mail
[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 e­mails 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 e­mails 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 e­mails 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:
[email protected]
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 e­mail associada a chave é possível buscar a(s) chave(s) pública(s) de
determinado e­mail. Para cifrar o e­mail é 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 e­mail 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 e­mails distintos, um e­mail 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 e­mails, acrescentar o outro
e­mail. O primeiro e­mail pode ser a conta primária e o segundo a secundária ou
vice­versa. 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 e­mails 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 e­mails criptografados, lembre­se 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 passo­a­passo, 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.sks­keyservers.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 chave­publica.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. Lembre­se 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, cole­a no formulário do servidor
público de chaves e submeta­a. 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 e­mails 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 e­mails 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 e­mail 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, troca­se apenas a Impressão Digital da chave. Para esse método, é
possível produzir cartões de papel com os caracteres da impressão. Um cartã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 passo­a­passo 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 ­­gen­key
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 ­­gen­key [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
2015­01­28 [25]
[49] pub 4096R/98AACF48 2014­03­19 [expira: 2015­03­19] [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 2014­03­19 [expira: 2015­03­19] 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 ­­export­secret­keys ­a numero_id_da_chave > chave_privada.asc
Repare que os campos numero_id_da_chave e chave_privada.asc terão de 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 ­­recv­keys 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.sks­keyservers.net. Há outros servidores pela rede,
então é possível encontrar diversos outros serviços funcionando. Já o ID_da_chave é o conjunto de 8 caracteres que identifica uma 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 ­­recv­keys 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 2013­01­01 Key fingerprint = 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 uid Email <[email protected]>
uid Email <[email protected]> sub 1111A/11111111 2013­01­01 [expires: 2015­01­01] sub 0000A/00000000 2013­01­01 [expires: 2015­01­01] Repare que no exemplo o usuário possui mais de um e­mail associado a 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 e­mails 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 ­­sign­key 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 ­­sign­key 10101010 [02] [03] pub 1010A/ 10101010 created: 2013­01­01 expires: 2015­01­01
usage: SC [28]
[04] sub 1111A/11111111 created: 2013­01­01 expires: 2015­01­01
usage: S [05] sub 0000A/00000000 created: 2013­01­01 expires: 2015­01­01
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: 2013­01­01 expires: 2015­01­01
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 ­sign­key) junto com o ID da
chave (10101010) que se quer assinar. Logo em seguida, nas linhas 03 à 07, são
mostrados os e­mails 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 e­mail
[email protected] e outra para o e­mail [email protected] Em seguida, na linha [09],
o gpg pergunta se o usuário deseja assinar todos os IDs de chaves associadas 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 e­mails 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 e­mail
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 ­­send­key ID_da_chave
Onde devem ser modificados os campos endereço_do_servidor e ID_da_chave.
Nesse caso, mediante os exemplos já apresentados aqui, poderiamos usar 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 ­­send­key 01010101
[30]
Enviar e receber e­mails
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 e­mails encriptados. Vamos apresentar
didaticamente uma forma de fazer isso utilizando aqui o software de
gerenciamento de e­mails 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 e­mail. 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 e­mails que
estiverem na nuvem. Recomendamos também o uso de um serviço de e­mails
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 e­mail 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/chomsky­seguranca­conceito­controverso/
http://revistagalileu.globo.com/Tecnologia/noticia/2014/02/servicos­gratuitos­se­
pagam­com­vigilancia.html
http://5dias.wordpress.com/2014/02/11/por­uma­teoria­do­poder­destituinte­de­
giorgio­agamben/
http://en.wikipedia.org/wiki/Key_disclosure_law
http://en.wikipedia.org/wiki/Cold_boot_attack
https://pad.riseup.net/p/boas­praticas­openpgp
[38]
https://we.riseup.net/debian/openpgp­best­practices
[39]