43
Criptografia e Chaves Digitais 19 de dezembro de 2006

Crip Chav Dig

Embed Size (px)

Citation preview

Page 1: Crip Chav Dig

Criptografia e Chaves Digitais19 de dezembro de 2006

Page 2: Crip Chav Dig

Sumário

I Sobre essa apostila 2

II Informações Básicas 4

III Criptografia e Chaves Digitais 9

1 Lição 1 - Noções Básicas de Segurança 101.1 Safety x Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2 Desafios de segurança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3 Principais Componentes de um Processo de Proteção . . . . . . . . . . . . . . . . . 131.4 Tipos de Ataques Computacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Lição 2 - Introdução a Criptologia 172.1 História e Criptologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2 Idéias Gerais sobre Criptologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3 A Criptografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 Lição 3 - Introdução a Criptografia 203.1 Fundamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.2 Chaves Simétricas e Assimétricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.3 Tipos de Cifras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.4 Introdução a Protocolos Criptográficos . . . . . . . . . . . . . . . . . . . . . . . . . . 253.5 Alocação de Confiança (em quem depositar a confiança?) . . . . . . . . . . . . . . . 263.6 Estrutura Básica de Protocolos Criptográficos . . . . . . . . . . . . . . . . . . . . . 293.7 Introdução a Algoritmos Criptográficos . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.7.1 Algoritmo DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.8 Algoritmo RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4 Lição 4 - A prática 394.0.1 Visão Geral do SeaHorse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.1 Instalação do Seahorse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.2 Utilização do SearHorse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

1

Page 3: Crip Chav Dig

Parte I

Sobre essa apostila

2

Page 4: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Conteúdo

O conteúdo dessa apostila é fruto da compilação de diversos materiais livres publicados na in-ternet, disponíveis em diversos sites ou originalmente produzido no CDTC em http://www.cdtc.org.br.

O formato original deste material bem como sua atualização está disponível dentro da licençaGNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seção demesmo nome, tendo inclusive uma versão traduzida (não oficial).

A revisão e alteração vem sendo realizada pelo CDTC ([email protected]), desde outubrode 2006. Criticas e sugestões construtivas são bem-vindas a qualquer tempo.

Autores

A autoria deste conteúdo, atividades e avaliações é de responsabilidade de Edson Lek HongMa ([email protected]) .

O texto original faz parte do projeto Centro de Difusão de Tecnolgia e Conhecimento, que vemsendo realizado pelo ITI em conjunto com outros parceiros institucionais, atuando em conjuntocom as universidades federais brasileiras que tem produzido e utilizado Software Livre, apoiandoinclusive a comunidade Free Software junto a outras entidades no país.

Informações adicionais podem ser obtidas atráves do email [email protected], ou dahome page da entidade, atráves da URL http://www.cdtc.org.br.

Garantias

O material contido nesta apostila é isento de garantias e o seu uso é de inteira responsabi-lidade do usuário/leitor. Os autores, bem como o ITI e seus parceiros, não se responsabilizamdireta ou indiretamente por qualquer prejuízo oriundo da utilização do material aqui contido.

Licença

Copyright ©2006,Edson Lek Hong Ma ([email protected]) .

Permission is granted to copy, distribute and/or modify this document under the termsof the GNU Free Documentation License, Version 1.1 or any later version published bythe Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOS-TILA. A copy of the license is included in the section entitled GNU Free DocumentationLicense.

3

Page 5: Crip Chav Dig

Parte II

Informações Básicas

4

Page 6: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Sobre o CDTC

Objetivo Geral

O Projeto CDTC visa a promoção e o desenvolvimento de ações que incentivem a dissemina-ção de soluções que utilizem padrões abertos e não proprietários de tecnologia, em proveito dodesenvolvimento social, cultural, político, tecnológico e econômico da sociedade brasileira.

Objetivo Específico

Auxiliar o Governo Federal na implantação do plano nacional de software não-proprietário ede código fonte aberto, identificando e mobilizando grupos de formadores de opinião dentre osservidores públicos e agentes políticos da União Federal, estimulando e incentivando o mercadonacional a adotar novos modelos de negócio da tecnologia da informação e de novos negóciosde comunicação com base em software não-proprietário e de código fonte aberto, oferecendotreinamento específico para técnicos, profissionais de suporte e funcionários públicos usuários,criando grupos de funcionários públicos que irão treinar outros funcionários públicos e atuar comoincentivadores e defensores de produtos de software não proprietários e código fonte aberto, ofe-recendo conteúdo técnico on-line para serviços de suporte, ferramentas para desenvolvimento deprodutos de software não proprietários e de seu código fonte livre, articulando redes de terceiros(dentro e fora do governo) fornecedoras de educação, pesquisa, desenvolvimento e teste de pro-dutos de software livre.

Guia do aluno

Neste guia, você terá reunidas uma série de informações importantes para que você comeceseu curso. São elas:

• Licenças para cópia de material disponível

• Os 10 mandamentos do aluno de Educação a Distância

• Como participar dos foruns e da wikipédia

• Primeiros passos

É muito importante que você entre em contato com TODAS estas informações, seguindo oroteiro acima.

Licença

Copyright ©2006, Edson Lek Hong Ma ([email protected]) .

5

Page 7: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

É dada permissão para copiar, distribuir e/ou modificar este documento sob os termosda Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posteriorpúblicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSAAPOSTILA. Uma cópia da licença está inclusa na seção entitulada "Licença de Docu-mentação Livre GNU".

Os 10 mandamentos do aluno de educação online

• 1. Acesso à Internet: ter endereço eletrônico, um provedor e um equipamento adequado épré-requisito para a participação nos cursos a distância.

• 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá-tica é necessário para poder executar as tarefas.

• 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân-cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal,dos colegas e dos professores.

• 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seuscolegas de turma respeitando-os e fazendo ser respeitado pelo mesmo.

• 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisãoe a sua recuperação de materiais.

• 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações erealizá-las em tempo real.

• 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre.

• 8. Flexibilidade e adaptação: requisitos necessário à mudança tecnológica, aprendizagense descobertas.

• 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente éponto - chave na comunicação pela Internet.

• 10. Responsabilidade: ser responsável por seu próprio aprendizado. O ambiente virtual nãocontrola a sua dedicação, mas reflete os resultados do seu esforço e da sua colaboração.

Como participar dos fóruns e Wikipédia

Você tem um problema e precisa de ajuda?

Podemos te ajudar de 2 formas:

A primeira é o uso dos fóruns de notícias e de dúvidas gerais que se distinguem pelo uso:

. O fórum de notícias tem por objetivo disponibilizar um meio de acesso rápido a informaçõesque sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas a

6

Page 8: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

todos participantes. Assim, se o monitor ou algum outro participante tiver uma informação queinteresse ao grupo, favor postá-la aqui.Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico docurso. É recomendado que você faça uso do Forum de dúvidas gerais que lhe dá recursos maisefetivos para esta prática.

. O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativopara solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadasa todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podemajudar.Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com aformalização ou a gramática. Responda! E não se esqueça de que antes de abrir um novo tópicoé recomendável ver se a sua pergunta já foi feita por outro participante.

A segunda forma se dá pelas Wikis:

. Uma wiki é uma página web que pode ser editada colaborativamente, ou seja, qualquer par-ticipante pode inserir, editar, apagar textos. As versões antigas vão sendo arquivadas e podemser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece umótimo suporte a processos de aprendizagem colaborativa. A maior wiki na web é o site "Wikipé-dia", uma experiência grandiosa de construção de uma enciclopédia de forma colaborativa, porpessoas de todas as partes do mundo. Acesse-a em português pelos links:

• Página principal da Wiki - http://pt.wikipedia.org/wiki/

Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo!

Primeiros Passos

Para uma melhor aprendizagem é recomendável que você siga os seguintes passos:

• Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar;

• Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar dasferramentas básicas do mesmo;

• Entrar nas lições seguindo a seqüência descrita no Plano de Ensino;

• Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais.

Perfil do Tutor

Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores.

O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivosvalores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita asidéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.

7

Page 9: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e,para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutorou instrutor:

• fornece explicações claras acerca do que ele espera, e do estilo de classificação que iráutilizar;

• gosta que lhe façam perguntas adicionais;

• identifica as nossas falhas, mas corrige-as amavelmente’, diz um estudante, ’e explica por-que motivo a classificação foi ou não foi atribuída’;

• tece comentários completos e construtivos, mas de forma agradável (em contraste com umreparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, deameaça e de nervossismo’)

• dá uma ajuda complementar para encorajar um estudante em dificuldade;

• esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente;

• ajuda o estudante a alcançar os seus objetivos;

• é flexível quando necessário;

• mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso,talvez numa fase menos interessante para o tutor);

• escreve todas as correções de forma legível e com um nível de pormenorização adequado;

• acima de tudo, devolve os trabalhos rapidamente;

8

Page 10: Crip Chav Dig

Parte III

Criptografia e Chaves Digitais

9

Page 11: Crip Chav Dig

Capítulo 1

Lição 1 - Noções Básicas de Segurança

Introdução a SegurançaComeçar um curso sobre criptogia sem mencionar Segurança Computacional faz com que nãosejam preenchidas todas informações necessárias para o bom entendimento do assunto. Co-meço ilustrando superficialmente sobre esta área de estudo e a medida que passamos as lições,aprofundaremos nosso foco de estudo e seria um equívoco achar que esta área seja um foco deestudo específico apenas para estudos em informática.

O mundo de hoje fornece mecanismos facilitadores para adquirir produtos e esse fato nos fazacreditar que podemos comprar soluções de segurança prontas para atender a nossa demanda.Nem sempre o que nós estamos procurando podem ser encontradas em prateleiras de lojas deinformática e também não podemos simplesmente gerar uma receita de bolo na forma de algo-ritmo. Logo, o que iremos ver a seguir, será uma tentativa de desenvolver alguma sensibilidadede como usar conhecimentos e ferramentas na área de criptografia e chaves digitais.

Iremos passar por conceitos, técnicas e procedimentos mais eficazes, hoje conhecidos para aconstrução de mecanismos criptográficos de dados digitais e de meios para que sejam integradosem sistemas de informação que queiram ser protegidos.

Algumas áreas de conhecimento são diretamente correlacionadas com o nosso assunto decriptografia e chaves digitais. Podemos citar o conhecimento de aritmética modular (aritméticados processadores digitais), do funcionamento básico de sistemas operacionais, conhecimentoem redes de computadores e também noção de complexidade de algoritmos.

Mas uma dúvida pode surgir no ar, por que essas informações são importantes?

Criptografia é uma especialização da matemática e engenharia que oferecem técnicas deproteção a mecanismos de acesso e a integridade de dados, e também de ferramentas paraavaliação da eficácia dessas ténicas. Estas técnicas e ferramentas são relacionadas no sentidosintático e não podemos atribuir confiança no sentido semântico nas informações dos dados vei-culados.

Apesar de ser interessante um pré-requisito nestas áreas, não será estritamente necessáriopara este curso pois estarei indiretamente colocando estes conceitos a medida que prosseguir-mos nessa caminhada ao conhecimento.

10

Page 12: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Um exemplo básico do que temos que ter em mente quando se trata deste assunto é o se-guinte: hipoteticamente, suponhamos que temos uma casa e queremos protegê-la de intrusos, acriptografia poderia ser relacionado metaforicamente a cadeados, trancas e mecanismos fortesna porta para que crie a suposta segurança perfeita. Porém, mesmo com todos estes mecanis-mos, não adiantaria nada se o terreno não for bem analisado e deixássemos uma janela abertano fundo da casa.

Existe um dilema nessa área de segurança da informação, onde podemos tratar como a ver-são digital da segunda lei da termodinâmica, expressa pela equação de Nemeth:

Segurança = 1 / Conveniência

Quanto maior a comodidade para o usuário, menor a segurança e vice-versa. Então, a sa-bedoria para equilibrar os dois lados dessa equação (segurança x conveniência), juntamente emsaber discenir a quantidade certa da paranóia de cada indivíduo, torna complexa a tarefa de umprofissional da segurança.

Logo podemos concluir que a criptografia não é uma solução mágica para todos os problemasde segurança na informática. Esta fornece apenas truques para manipulação dos bits para quepossamos conhecer melhor e ter a sensibilidade para nos defender no mundo virtual.Um texto muito interessante escrito por um criptógrafo famoso nesta área (Bruce Schneier) seencontra no final da apostila: "Por que a criptografia é mais difícil do que parece?"Eu realmente recomendo a leitura deste texto, pois oferece uma boa visão geral do assunto eilustra o estado da arte do objeto de nosso estudo.

1.1 Safety x Security

A palavra "segurança" em português do Brasil possui dois sentidos básicos na língua inglesa:

Safety e Security

• Safety está relacionado a controle e proteção contra acidentes (Leis de Murphy).

• Security está ligado a controle e proteção contra ataques (Leis de natureza humana - H.M.D)

*H.M.D - Hipótese Metafísica de Descartes

Descartes era um filósofo famoso na qual acreditava na hipótese da existência de um gêniomaligno, que poderia enganar as pessoas acerca até mesmo de coisas que lhe parecerem evi-dentes.

Sendo assim, a idéia seria de que poderiam existir pessoas com gênio maligno para enganare ludibriar os mais diversos sistemas de informação, sem que as pessoas percebam.

A seguir, estudaremos tendo em mente a idéia de "security" ao invés de "safety".

11

Page 13: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Quando falamos de segurança, podemos separar em duas idéias básicas relacionadas a estapalavra em português. Qual dos itens abaixo está relacionado a idéia do "Gênio Maligno" ou"Demônio de Descartes"??

1.2 Desafios de segurança

Antes de fazermos qualquer planejamento para a segurança de um sistema, logicamente te-remos que pré estabelecer o que irá demandar proteção. A seguir, será mostrada dois desafiosbásicos para a proteção:

Desafio 1 - Padronizar mecanismos e protocolos

Cada localidade é relacionado ao alvo de proteção de cada ambiente. Podemos citar:

• Instituições Financeiras: Transações Eletrônicas

• Grandes Corporações: Gerência e Comércio Eletrônico

• Telecomunicações: Provimento de Serviços

• Comunidades: Internet e Redes Locais

• Governo: Administração, Militar e Espionagem

Desafio 2 - Normas do ambiente

Segurança do tipo:

• Alta e Restrita: Governos e Organizações Militares

• Sensível: Comércio, Indústria e Comunidades

• Virtual Interna: Sistemas Operacionais e Bancos de Dados

• Virtual Externa: Redes de Computadores e Telecomunicações

Basicamente podemos citar quatro tipos de demandas básicas para qualquer mecanismo deproteção. A tabela a seguir está listada o tipo de mecanismo de proteção, a ameaça básica paraeste tipo de proteção e qual a má fé que poderia acontecer para o sistema.

Tipo de Proteção Ameaça Básica AçãoPrivacidade ou Sigilo Vazamento ou desvalorização Leitura

Integridade Fraude, Adulteração ou perda EscritaLegitimidade Acesso indevido a execução Execução

Disponibilidade Bloqueio indevido de serviço Não Execução

12

Page 14: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Privacidade ou Sigilo: algumas vezes queremos proteger algum documento confidencial naqual o remetente e o destinatário são os únicos que serão permitidos a visualização deste mesmodocumento. A ameaça neste tipo de proteção seria um vazamento do documento(senha dobanco) ou desvalorização (número de um sorteio) e a quebra do sistema protegido se dá pormeio da leitura dos dados confidenciais.

Integridade: o envio de alguma informação pelos meios de comunicação, exige que a mesmachegue o destinatário contendo o mesmo valor do remetente. Durante a transmissão, alguns fa-tos como fraude, adulteração ou perda dos dados poderiam ocorrer e a ação direta relacionada aestes fatos, seria a escrita sobre as informações.

Legitimidade: como poderíamos, pelos meios de comunicação virtual, saber se alguma in-formação enviada seria realmente de quem pensamos ser? A ameaça principal seria alguémse apossar de seus dados e agir de má fé se identificando como o possuidor verdadeiro da in-formação. Logo, existe uma relação direta entre a personificação e uma posterior execução deações(ex.: compra virtual por número de cartão de crédito).

Disponibilidade: para algumas empresas, é muito importante a disponibilidade de seus servi-ços pois qualquer queda no sistema acarretará em prejuízos. Uma ameaça a estes serviços seriao bloqueio indevido destes serviços muita vezes pela não execução correta do sistema.

1.3 Principais Componentes de um Processo de Proteção

Analisar cada componente de qualquer processo de um sistema é de suma importância paraque seja bem consistente e de fácil manutenção e identificação de erros. A seguir serão citadosalguns componentes básicos :

Política de Segurança de Dados

1. Planejamento - Avaliar e analisar os riscos e custos.

2. Especificação para implementarserviços e salvaguardas.

3. Atribuição documentada de autorização e responsabilidades.

Para uma boa política de segurança, os três itens ilustrados anteriormente devem ser respeita-dos. A seguir, um pequeno exemplo de roteiro para planejamento para as políticas de Segurançade Dados será mostrado:

• Quais recursos e ativos em bits devem ser protegidos?

• De quem (securityu) e de que(safety) se quer protegê-los?

• Qual a chance/probabilidade de acidentes, ameaças e trapaças?

13

Page 15: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

• Como medir o valor dos ativos em bits e recursos?

• Quais ações podem protegê-los com custo/benefício aceitável?

• Que planos de contigência, reavaliação, terceirização, etc. decorrem?

Além de disponibilidade de serviço de segurança é importante também saber o que fazerquando se ocorre algum problema não planejado. Podemos citar algumas salvaguardas nãocomputacionais abaixo:

• Segurança física - controle de acesso físico, blindagem, etc...

• Segurança funcional - recrutamento, treinamento, motivação.

• Segurança administrativa - auditoria, fiscalização, contigência.

• Segurança na mídia - backup, destruição de material, etc...

• Radiação ou Engenharia Reversa - blindagem no encapsulamento.

• Controles de ciclos - reavaliação da política de segurança.

Controle e Auditoria

• Monitoramente - gerenciadores (rede, backup) logs, IDS, etc...

• Rastreamento - vacinas, firewalls, wrappers, proxies, etc...

• Avaliação - análise estatística, relatórios, revisão de políticas de estratégias,etc...

Serviços Básicos de Segurança Computacional

• Controle de Acesso - Identificação e Autorização para legitimidade

• Cifragem - Codificação para Sigilo

14

Page 16: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

• Autenticação - Validação de Origem ou Integridade

• Certificação - Autenticação Recursiva com Verificação Aberta para integridade

Esses esquemas serão explicados futuramente, detalhando cada componente dos mecanis-mos básicos segundo a sua premissa (o que se deseja obter - sigilo, legitimidade, integridade eautenticação recursiva,etc... )

1.4 Tipos de Ataques Computacionais

Ataques primários por penetração

• Personificação: Oatacante invade pelo perímetro de login, onde o sistema considera o inva-sor como alguém cadastrado no sistema.

• Desvio de Controle: exploração de falhas de segurança permitem que o controle dele sejadesviado para outras pessoas.

• Violação de Autoridade: uso indevido de previlégios devido a falhas no sistema.

15

Page 17: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Ataques primários por implantação

• Gancho(backdoor): uso de recurso não documentado.

• Infecção: exploit, virus, vermes.

• Embuste: programa trojan, spoofing(falsificação do remetente).

16

Page 18: Crip Chav Dig

Capítulo 2

Lição 2 - Introdução a Criptologia

2.1 História e Criptologia

A criptologia desde os tempos antigos, sempre foi um assunto de grande interesse de gover-nantes e povos, em épocas de paz e de guerra. Essas idéias surgiram devido a história sempreter informações confidenciais e interesses diversos que não podiam cair em domínio público.Podemos suspeitar o porquê em tempos remotos, ela ter sido considerada uma arte: sempre im-pulsionaram as pessoas a criarem novos meios criativos para "esconder/embaralhar" o sentidode seus simbolos.

Para facilitar o estudo, os historiadores dividiram a história em fases, épocas, períodos, se-gundo critérios por eles avaliados. Uma dessas divisões que aprendemos no colégio são: históriaantiga, média, moderna e contemporânia.A divisão da história da criptologia não está estritamente limitado pelas datas oficiais citadasacima, porém será útil no sentido do entendimento de como a criptologia estava presente nostempos citados abaixo.

• Período a.C. até 476 d.C - Idade Antiga

• Período 476d.C até 1453 d.C. - Idade Média

• Período 1453d.C até 1789 d.C - Idade Moderna

• Período 1789d.C até +-1900d.C - Idade Contemporânea Recente

• Período de 1900d.C até hoje - Idade Contemporânea Atualidade

Caso você tenha curiosidade em ver onde e quando estava presente a criptologia (mesmoquando ela não era considerada como ciência exata), acesse o link disponibilizado abaixo:http://www.numaboa.com.br/criptologia/historia/index.php1

1See URL http://www.numaboa.com.br/criptologia/historia/index.php

17

Page 19: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

2.2 Idéias Gerais sobre Criptologia

O surgimento da escrita significou o advento de uma tecnologia fundamental para o desenvol-vimento do ser humano na face da Terra. Era uma forma de preservar pensamentos, técnicas eemoções com um conjunto de traços e com isso foi capaz de acumular e produzir conhecimentosque, mais tarde, dariam origem à filosofia, às ciências e às artes. Paralela a esta fundação deum novo meio de preservar informações, o homem também começou a "brincar" com as escritascifradas, porém a evolução desse meio "oculto" de escrita foi bem lenta, pois, no início existiaapenas uma necessidade da disponibilidade de troca de informação, sem a necessidade de es-conder o conteúdo de qualquer mensagem.As palavras Criptografia/Criptologia/Criptoanálise têm origem grega na qual "Cripto" vem do"kryptos" que significa oculto, envolto, escondido. "graphos" significa escrever e "logos" sig-nifica, ciência e "analysis" significa decomposição. Logo, CRIPTOLOGIA é o estudo da escritacifrada e tem como ciências relacionadas a CRIPTOGRAFIA e a CRIPTOANÁLISE.

O segredo sempre foi alvo de curiosidade entre as pessoas. Quem nunca brincou da línguado "pê"? (pês pêta pêmos pêes pêstu pêdan pêdo pêcrip pêto pêlo pêgia!). Isso poderia serclassificado como algo chamado criptoFONIA na qual o som é encriptado. A chave para abrir osentido seria o "pê". Outro ambiente relacionado a isso seria um baile de máscaras onde existe aidéia de esconder a identidade da pessoa e a chave para a identificação são as fantasias e más-caras. Apesar da idéia de "esconder" o sentido das palavras, a criptologia existe como ciênciahá apenas 20 anos e antes era considerada uma arte. Hoje em dia existem várias organizaçõesde pesquisa nessa área, podemos citar a IACR (http://www.iacr.org/).2

Existe outra área que não faz parte da criptografia: a Esteganografia. Este é o estudo dastécnicas de ocultação de mensagens, diferentemente da Criptografia que não a oculta, mas aconfunde de forma a tornar seu significado ininteligível. Um exemplo de esteganografia seria decolocar alguma mensagem oculta em uma imagem .jpg.

evolução tecnologia do mundo criou-se uma maior necessidade do uso da criptografia. Muitascomodidades de hoje em dia, apesar de criarem grande disponibilidade de serviço, criam tambémmuita transparência nos seus usos e muitas vezes, os usuários não querem que as informaçõessejam deixadas em público. Como consequência direta, a criptolografia evoluiu muito em poucotempo. Para entender o que tem hoje, é interessante voltar atrás e ir percorrendo a evolução dacriptografia. Como citado anteriormente nas subdivisões da criptologia, a criptografia é a ciênciaque estuda como escrever mensagens onde apenas o remetente e o destinatário conseguem ler

2See URL http://www.iacr.org/

18

Page 20: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

e a Criptoanálise seria o contrário, a ciência de decifrar e ler as mensagens cifradas.

2.3 A Criptografia

Existem duas idéias principais com relação as mensagens. As palavras, caracteres ou letrasda mensagem original constituem o Texto Pleno ou Mensagem Clara. As palavras ou letras damensagem cifrada são chamadas de Texto Cifrado, Mensagem Cifrada ou Criptograma.

A conversão do Texto Pleno em Texto Cifrado pode ser chamado de composição de cifra eo inverso é chamado de decifração. Apesar de muita gente falar em "encifração" ,"cifragem"ou "encriptação", estas palavras não existem no dicionário Português do Brasil e o correto seriafalar "compor cifra". Como estas palavras fazem parte de uma espécie de "jargão" da área,durante os textos pode ser que seja encontrado alguns destes termos escritos, com o significadode compor cifras.Finalmente, podemos dizer que qualquer mensagem cifrada é o resultado de uma aplicação deum algoritmo (regra de embaralhamento), associado a uma chave específica (que podem ser deigual e de fácil dedução ou diferentes, para o remente e destinatário)

Na prática, qualquer mensagem cifrada é o resultado da aplicação de um SISTEMA GERAL(ou algorítmo), que é invariável, associado a uma CHAVE ESPECÍFICA, que pode ser variável. Éóbvio que tanto o remetente quanto o destinatário precisam conhecer o sistema e a chave.

19

Page 21: Crip Chav Dig

Capítulo 3

Lição 3 - Introdução a Criptografia

3.1 Fundamentos

Antes de explicar a criptografia, temos que criar uma terminologia dos componentes de ummecanismos criptográfico para facilitar seu entendimento.Remetente/DestinatárioSuponha que uma pessoa queira enviar uma mensagem especial a um destino, mas queira que amensagem seja segura: Ela queira que ninguém possa "bisbilhotar" o conteúdo da mensagem.Texto Pleno/Mensagem CifradaExistem duas idéias principais com relação as mensagens. As palavras, caracteres ou bits damensagem original constituem o Texto Pleno ou Mensagem Clara. Vamos denotar esse com-ponente como (M). As palavras ou letras da mensagem cifrada são chamadas de Texto Cifrado,Mensagem Cifrada ou Criptograma (C).

A conversão do Texto Pleno em Texto Cifrado pode ser chamado de composição de cifra eo inverso é chamado de decifração. Apesar de muita gente falar em "encifração" ,"cifragem"ou "encriptação", estas palavras não existem no dicionário Português do Brasil e o correto seriafalar "compor cifra". Como estas palavras fazem parte de uma espécie de "jargão" da área,durante os textos pode ser que seja encontrado alguns destes termos escritos, com o significadode compor cifras.

Podemos formalizar uma fórmula matemática para a função de composição de cifra, que serádenotada como E, ela utiliza o texto pleno M para produzir a cifra C:

E(M) = C

O processo contrário seria uma função decifração D na qual irá utilizar a cifra C com argumentode entrada e produzirá de volta o texto pleno M:

D(C) = M

Logo, podemos verificar como verdadeiro a função abaixo:

D(E(M)) = M

20

Page 22: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Na qual seria a formalização matemática detodo o processo de composição de cifra edecifração.

Como explicado anteriormente, além de confidenciabilidade da mensagem, outros serviços quenecessitam de criptografia são:

• Autenticação: Deve ser possível o receptor da mensagem saber que o remetente é quemele mesmo diz ser.

• Integridade: O receptor da mensagem deve confiar que a mensagem não foi adulterada nomeio do meio do caminho.

• Não Repúdio: Quem enviou a mensagem não deve poder negar que a mensagem enviadapor ele não foi dele.

Esses 4 mecanismos no mundo virtual garantem uma integração social entre computadores.Isso pode ser comparado a interações do mundo real: alguém com sua carteira de motorista, seupassaporte, uma credencial provando sua identidade; comunicações sigilosas para que não seja"bisbilhotado", etc... Isso tudo existe também utilizando esses quatro mecanismos de proteçãodo mundo virtual.Finalmente, podemos dizer que qualquer mensagem cifrada é o resultado de uma aplicação deum algoritmo (regra de embaralhamento), associado a uma chave específica (que podem ser deigual e de fácil dedução ou diferentes, para o remente e destinatário).Na prática, qualquer mensagem cifrada é o resultado da aplicação de um SISTEMA GERAL (oualgorítmo), que é invariável, associado a uma CHAVE ESPECÍFICA, que pode ser variável. Éóbvio que tanto o remetente quanto o destinatário precisam conhecer o sistema e a chave.

3.2 Chaves Simétricas e Assimétricas

Existem basicamente dois tipos de chaves para a cifragem de dados: chaves simétricas eassimétricas.

Quando as chaves para a cifragem e decifragem das informações são iguais ou de fácildedução, podemos colocá-las na categoria de "Chaves Simétricas". Isso requer que o reme-tente/destinatário concordem em uma chave comum para poderem se comunicar de modo se-guro. Logo, podemos concluir que a segurança de um sistema baseado em algoritmo simétrico,está baseado na chave. Se a chave for divulgada, qualquer pessoa poderia ler a mensagemcifrada. Para manter as informações secretas, a chave deve se manter secreta.

Podemos mostrar o esquema como:

EK(M) = C DK(C) = M

K = chave simétrica.Consequentemente, o esquema de cifragem e decifragem com sua chave simétrica teria a

fórmula:

DK(EK(M)) = M

21

Page 23: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Por outro lado, as chamadas Chaves Assimétricas foram criadas com a idéia de que a chaveusada para cifragem ser diferente da usada para decifragem. Além disso, pela chave de decifra-gem, não teria como conseguir achar achave de cifragem (Pelo menos em um tempo bem longo.Isso será explicado melhor adiante).

O sistema baseado em Chave Assimétrica é chamado de Algoritmos de Chave Pública, poisa chave de cifragem pode ser deixada em público e somente o possuidor da chave de decifragempoderá ler o conteúdo da mensagem. A chave de cifragem é geralmente chamado de Chave-Pública e a chave de decifragem de Chave-Privada

Então, formalizando as idéias acima, quando as chaves de cifragem (K1) e decifragem (K2)são diferentes, podemos ter as seguintes fórmulas:

EK1(M) = CDK2(C) = MDK2(EK1

(M)) = M

3.3 Tipos de Cifras

A criptografia em tempos remotos, antes do surgimento de computadores, utilizavam apenascaracteres. Diferentes algoritmos utilizaram técnicas de substituição de um caracter a outro, e/ouentão, faziam a transposição de um caracter com outro. Literamente era uma sopa de letrinhasmisturadas.

Hoje em dia existe uma complexidade maior, mas a idéia básica da "sopa de letrinhas" semantém. A primeira mudança para a atualidade é o uso de bits (0 e 1) em vez de caracteres. Issodiminui o tamanho do alfabeto para 2 elementos. Muitos bons algoritmos hoje em dia misturamas duas técnicas de substituição e transposição. Cifras de SubstituiçãoA abordagem principal dessas cifras é a substituição de cada caracter do texto pleno por outroda cifra. Para voltar ao texto original, o receptor inverte a substituição do caracter na cifra para otexto pleno.

Existem basicamente quatro tipos de cifras de substituição: CifrasMonoalfabéticas - é conhecida também como substituição simples, substitui-se cada um dos

caracteres do texto original por outro, de acordo com uma pré-estabelecida, para se obter o textocifrado. Como consequência, a frequência de ocorrência das letras (números ou símbolos) damensagem cifrada é a mesma que a frequência de ocorrência das letras da língua usada namensagem original. Cada letra da mensagem original é substituída por apenas uma outra letra,número ou símbolo. Portanto, o comprimento da mensagem cifrada é o mesmo que o da mensa-gem original.Alfabeto normal:abcdefghijklmnopqrstuvwxyzAlfabeto para a cifragem:PORTUGALBCDEFHIJKMNQSVWXYZ

Assim, a mensagem

22

Page 24: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Fujam todos depressa! Fomos descobertos!

é cifrada para

GSCPF QITIN TUJMUNNP! GIFIN TUNRIOUMQIN!

Um exemplo famoso deste tipo de cifra é a Cifra de Caesar, na qual cada texto original é subs-tituído por outro caracter na direita modulo 26 ("A" é substituído por "D", "B" é substituído por"E", ... , "X" é substituído por "A" - o modulo 26 significa que se chegar na letra de posição 26,retornar para o começo do alfabeto).Cifras Homofônicas - tem o funcionamento semelhante ao anterior, exceto a parte na qual cadacaracter do texto original pode ser mapeado em vários caracteres da cifra. Exemplo, "X" poderiacorresponder a 20, 25 e 55. "Y" poderia corresponder a 9,13, 30 e 45, etc...

Alfabeto normal:

a b c d e f g h i j k l m n o p q r s t u v w x y z

Alfabeto para a cifragem:8 F H G 3 l 1 L E I w o M X 6 Q P b V 9 a Z S D j rz - k m x n B u 0 - - O A v 5 p - R y f 4 g - - - -K - s N q - - - J - - a c - 2 - - T e Y h - - - - -7 - - - t - - - - - - - - - W - - C - - - - - - - -i - - - - - - - - - - - - - d - - - - - - - - - - -

Cada letra do alfabeto normal é substituída por uma das que lhe correspondem: Assim, amensagem:

Fujam todos depressa! Fomos descobertos!

poderia, por exemplo, ser cifrada para:

l4IiA 9WNdy GqpCxyVz! n2M5V GxeHdF3Rf2e!

que tomaria, em blocos de cinco letras, o aspecto algo incompreensível de:

l4IiA 9WNdy GqpCx yVzn2 M5VGx eHdF3 Rf2e

Cifras de substituição de poligramas - nesse caso, os blocos de caracteres são cifrados em grupo.Por exemplo, "KXK" pode corresponder a "LOP", "KYK" pode corresponder a "LPL", etc.;Cifras de substituição polialfabética - composto de múltiplas substituições simples ao longo dotexto e também múltiplos alfabetos são usados. A idéia é substituir cada letra do alfabeto poroutro e repetir este procedimento várias vezes.

Por exemplo, supondo que se quer encriptar o texto:

ATACARBASESUL ("atacar base Sul")

Escolhendo a chave e repetindo-a até ter o comprimento do texto a cifrar, por exemplo, se achave for"LIMAO":

23

Page 25: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

LIMAOLIMAOLIM

A primeira letra do texto, A, é cifrada usando o alfabeto na linha L, que é a primeira letra dachave. Basta olhar para a letra na linha L e coluna A na grelha de Vigenère, e que é um L. Paraa segunda letra do texto, ver a segunda letra da chave: linha I e coluna T , que é B, continuandosempre até obter:

• Texto: ATACARBASESUL

• Chave: LIMAOLIMAOLIM

• Texto Cifrado: LBMCOCJMSSDCX

A cifra mais popular deste tipo é o Vigenere, publicada inicialmente em 1585 por Blaise Vi-genere e foi considerada indecifrável até 1863. Mais Informações podem ser encontradas em:http://www.numaboa.com.br/criptologia/cifras/substituicao/vigenere.php1

Cifras de Transposição

O funcionamento deste tipo de cifra faz com que os caracteres do texto original sejam mis-turados, mas que os caracteres mantém os mesmos. Em outras palavras, o texto cifrado é umcriptograma obtido através da permutação do texto original. Este método é conhecido desde aAntiguidade, tendo o scytale (ou bastão de Licurgo) usado pelos espartanos como o exemplomais antigo.

Em mensagens curtas, como no caso de uma única palavra, este método não é seguro por-que existem poucas maneiras de variar a distribuição das letras. Por exemplo, uma palavra detrês letras só pode assumir 6 formas diferentes (fatorial de 3 é 6, ou 3!=6). Desta forma, a palavraSOL só pode adquirir as seguintes formas: sol, slo, osl, ols, lso e los. Obviamente, à medida queo número de letras aumentar, o número de arranjos se multiplica rapidamente e fica quase impos-sível obter o texto original caso não se conheça o processo de deslocamento. Por exemplo, umafrase de 35 letras pode assumir 35! = 10.333.147.966.386.144.929.666.651.337.523.200.000.000formas diferentes.

Uma transposição aleatória parece oferecer um alto nível de segurança, mas há um inconveni-ente: também é aleatória para o destinatário, que não teria como decifrar a mensagem. Para quea transposição seja eficaz, é necessário que o ordenamento das letras siga um sistema rigoroso,que seja conhecido tanto pelo remetente quanto pelo destinatário. Com isto, as possibilidades ea segurança diminuem.

Os sistemas de transposição, usados isoladamente, possuem um grau de segurança muitobaixo, mas podem ser muito úteis quando utilizados em combinação com outros sistemas (achamada sobrecifragem ou recifragem). Exemplos: Cifra das colunas, o texto a cifrar é escritopor colunas, com passagem para a coluna seguinte sempre que se atingir o número máximo delinhas. A mensagem é então escrita ou transmitida por linhas. Por exemplo, se houver 3 "linhas"a mensagem FUJAM TODOS. FOMOS DESCOBERTOS é escrita numa grelha como:

F A O S M D C E O PU M D F O E O R S DJ T O O S S B T X Q

1See URL http://www.numaboa.com.br/criptologia/cifras/substituicao/vigenere.php

24

Page 26: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

As letras no final servem para confundir o criptanalista ou obter um número já fixado de ca-racteres na mensagem. Esta fica assim:

FAOSM DCEOP UMDFO EORSD JTOOS SBTXQTrata-se de uma cifra muito fraca (é extremamente fácil de decifrar), mesmo quando se altera

a ordem (por exemplo, colocando a mensagem seguindo uma espiral definida na grelha. Trans-posição de Colunas: consiste na escrita de uma chave como cabeçalho da grelha, seguida damensagem escrita por linhas - sendo a última eventualmente completa por caracteres sem sig-nificado. Depois, a mensagem é escrita (ou transmitida) por colunas, por ordem alfabética dasletras no cabeçalho. Por exemplo, se a chave for ZEBRAS, e a mensagem for VAMOS EMBORA, FOMOSDESCOBERTOS, começa-se por obter a grelha:

Z E B R A S

seedutiuitqaethasonasogecanaeprtorasap

Ler-se-ia como:

SADEE MOOOS ABMCO ORSBJ EFERU VMOST

Para a decifrar, o destinatário tem apenas que dividir o comprimento da mensagem (30) peloda chave (6), e ler as colunas pela ordem das letras da chave. Apesar de muitos sitemas utili-zarem transposição, o grande problema desta técnica é o uso bastante da memória e as vezesnecessitam de que as mensagens sejam de um tamanho fixo. As cifras de substituição são maiscomuns.

3.4 Introdução a Protocolos Criptográficos

Introdução a Protocolos

A criptografia surgiu como ciência para a resolução de alguns problemas. Criptografia focanas idéias de conseguir sigilo, autenticação, integridade e pessoas desonestas. Antes de olhar-mos os algoritmos e técnicas (receitas de bolo de sistema criptográficos), vamos primeiramenteentender o que é um protocolo e a importância do seu estudo.

Um protocolo pode ser entendido como um conjunto de passos, envolvendo duas ou maispessoas, para conseguirem juntos alcançar alguma tarefa. Logo, podemos ilustrar esse "con-junto de passos" como uma sequência de início e fim e que cada passo deve ser executado emcada turno e nenhum passo posterior pode passar por cima de um anterior. Não faria sentidovocê fazer uma série de pequenas tarefas para chegar a um fim sem objetivo, então para queseja um protocolo, deve ter um objetivo final na qual será alcançado.

Resumindo, as premissas implícitas para a caracterização do conceito de protocolos são:

• Há um propósito especificado que motiva a execução do protocolo;

• Os agentes envolvidos devem conhecer completamente o protocolo e devem também con-cordar em seguir (executar) o protocolo;

• O protocolo deve ser inambíguo, sem margem para mal entendidos, e completo, com umaação especificada para cada situação possível;

25

Page 27: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Protocolos Criptográficos: São protocolos que usam criptografia. Diariamente, as pessoas secomunicam umas com às outras e confiam nelas implicitamente. No mundo abstrato da infor-mática, devemos formalizar os passos para que a comunicação tenha essa confiança quanto aidentidade da pessoa e sigilo da informação. As pessoas participantes da comunicação podemquerer compartilhar seus segredos para computar um valor, gerar uma sequência randômica,convencer a identidade da pessoa e simultaneamente assinar um contrato. Concluímos entãoque a criptografia nos protocolos são utilizados para detectar ou prevenir de curiosos e trapaças.

Isso é mais difícil do que parece, pois, caso não seja analizado minuciosamente cada passodos protocolos, poderá ocorrer problemas como:

• Adulteração ou quebra de sigilo das mensagens;

• Vazamentos de informação;

• Trapaças e desavenças entre as pessoas participantes;

• Conluios (Dois ou mais pessoas enganando alguém);

Demonstramos então que como em qualquer outro tipo de sistema, é muito mais fácil provaruma insegurança do que provar a segurança.Para que usar Protocolos?

No dia-a-dia podemos observar o uso de protocolos informalmente a cada instante: jogartruco, votar na eleição e pedir coisas pelo telefone. As pessoas não pensam antes de "usar"esses protocolos, mas todos entendem suas regras de modo razoável e funcionam tudo de formaharmoniosa. Com o advento da tecnologia, muitos serviços novos que surgiram começam atomar lugar dos "protocolos" na interação frente a frente entre as pessoas. Um exemplo seriaa utilização de uma webcam, os computadores necessitam de protocolos formais para criar ospassos de uma comunicação e isso é a diferença entre um protocolo humano "sem pensar" eum protocolo formal de um computador.

Os protocolos humanos, utilizam a presença da pessoa para garantir segurança e fidelidade.Se você precisar pedir alguém para te comprar algo, pediria a um desconhecido? No jogo detruco você aceitaria as cartas se não visse o oponente embaralhar as cartas?

Na informática temos esse problema. Como podemos confiar em algo que não podemos nemver nem tocar? Será de muita inocência assumir que as pessoas na rede são honestas e maisalém, acreditar fielmente que o serviço oferecido é totalmente confiável.Em muitos casos eles são, mas caso não seja? Não seria um grande problema?

Logo, com o estudo de protocolos, podemos entender seu funcionamento para criar e otimizarseguranças para que sejam imunes (pelo menos quase) a pessoas que hajam de má fé.

3.5 Alocação de Confiança (em quem depositar a confiança?)

Conforme seu propósito e premissas, um protocolo pode prever a ação de um agente auxiliar(i.e., desinteressado em seu propósito) para resolver impasses entre agentes principais(i.e., inte-ressados em seu propósito).

26

Page 28: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Logo podemos classificar os protocolos como:

• Protocolo Arbitrado: usa agente auxiliar para prevenção, durante a execução, de trapaçaentre os agentes principais.

• Protocolo Ajuizável: usa agente auxiliar para detecção, após a sua execução, de trapaçaentre agentes principais.

• Protocolo Auto-verificável: na sua construção já há eliminação das possíveis vantagenspara trapaças e refutações para a execução. Este protocolo não necessita de um terceiroagente para o controle das confianças.

Arbitragem: decisões quanto a lisura de agentes principais que não confiam um no outro,aceitas por ambos como condição de continuidade na execução do protocolo arbitrado.

A idéia de um protocolo semelhante a este no mundo real, seria uma compra de veículo emuma agência. O esquema a seguir ilustra a idéia:

Protocolo Ajuizável

Devido ao custo alto na contratação de um árbitro, existe como alternativa um protocolo naqual é executado apenas em circunstâncias de disputa.

Um remediador, assim como no anterior, não têm interesse na disputa e deve ser confiável.Diferentemente do árbrito, ele não está diretamente envolvido em todos os protocolos e é cha-mado apenas para determinar se o protocolo foi executado justamente.

No mundo real podemos relacionar o remediador como um juiz. Um juiz é chamado apenasem casos de disputa. Exemplo: Fred e Ana podem criar um contrato sem um juíz e esse nuncairá ver o contrato, a não ser que haja algum desentendimento nos termos do contrato. Logo,podemos formalizar este em duas partes:

27

Page 29: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Protocolo não arbitrado (executado sempre):

1. Fred e Ana negociam os termos de contrato.

2. Ana assina o contrato.

3. Fred assina o contrato.

Protocolo ajuizável (executado apenas em caso de disputa):

1. Fred e Ana aparecem antes do juiz.

2. Fred apresenta seus termos.

3. Ana apresenta seus termos.

4. O juiz determina as regras em cima dos termos.

No mundo dos computadores, os protocolos confiam nos dois lados como honestos, mas casoalguém suspeite de alguma trapaça, um conjunto de dados existem para que um terceiro possadeterminar se alguém realmente trapaceou. A diferença do protocolo anterior é que este apenasdetecta a identidade de quem trapeceou ao invés de prevenir a trapaça. A idéia disso é que comoé "inevitável" nesses protocolos não detectar a trapaça, isso desencoraja enganações.Protocolo Auto-verificável

Esse tipo de protocolo garante justiça sem a necessidade de um terceiro resolver as disputas.Esse tipo de protocolo é construído para que não aconteça disputas e se alguém tentar trapacear,o sistema automaticamente detecta e o protocolo termina. Infelizmente não existe para todas assituações, uma solução com protocolo auto verificável.

Existem algumas dificuldades na concepção dos protocolos de arbitragem e ajuizáveis, pode-mos citar:

1. Impessoalidade - programas-árbitro dificilmente inspiram a confiança necessária: ocultamintenção do programador;

2. Custo - à rede de computadores recai o custo de criação e manutenção de um serviço dearbitragem;

3. Gargalo - a arbitragem trata toda transação;

4. Tempo de execução - a arbritragem consome tempo considerável;

5. Vulnerabilidade - ponto fraco do protocolo, atraindo ataques;

Resumindo a mediação e a autoverificação em protocolos criptográficos a seguir, ilustram as suasprincipais características:

A mediação apresenta dificuldades listadas anteriormente em 1, 2 e 5.A autoverificação apresenta as seguintes dificuldades:

28

Page 30: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

• A natureza do problema: nem todos os problemas de segurança tem solução em protcolosautoconfiáveis;

• Análise exaustiva: a autoverificação só existe enquanto formas de ataque ao protocolo fo-rem desconhecidas;

3.6 Estrutura Básica de Protocolos Criptográficos

Protocolo para Sigilo na Comunicação em Rede

Como que duas pessoas podem se comunicar com segurança? Eles devem encriptar sua co-municação, claro! Mas um protocolo completo para isso é mais complicado do que se parece. Aseguir temos esquemas do que deve acontecer para que Fred se comunique com Ana utilizandoprotocolos simétrico e assimétrico.

Premissas e Problemas do Protocolo I

• Agente A = Fred; Agente B = Ana;

• k = chave simétrica;

• m = mensagem original;

• c = cifra;

1. Os agentes confiam no gerenciador de chaves e um no outro.

2. As chaves devem ser distruibuídas em segredo

3. A privacidade da comunicação requer muitas chaves, com uma chave individual para cadapar de agentes. [n²-n pares]

29

Page 31: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

4. Se a chave for comprometida (roubada, vazada, quebrada, subornada, extorquida ou ven-dida), o possuidor da chave poderá fraudar a comunicação personificando-se como A ou B,promovendo escuta ativa, spoofing, espelhamento, replay.

5. Não há verificação de fraude por comprometimento de senha.

II - Protocolo para privacidade usando algoritmo assimétrico:

Premissas e Problemas do protocolo II:

• Dx = chave privada do agente x;

• Ex = chave pública do agente x;

• m = mensagem original

• c = cifra;

• Agente A = Fred; Agente B = Ana

1. Transforma confiança na integridade da origem de Ea em sigilo.

2. O protocolo é vulnerável a ataques de texto pleno escolhido (M pequeno), e a ataques porspoofing, espelhamento e replay.

3. Dentre os algoritmos criptoggŕaficos robustos conhecidos, os assimétricos são maislentos 103 a 104 vezes que os simétricos.

Existe um protocolo híbrido para a solução dos problemas de I.2 e II.3

• As chaves devem ser distruibuídas em segredo.

30

Page 32: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

• Dentre os algoritmos criptoggŕaficos robustos conhecidos, os assimétricos são maislentos 103 a 104 vezes que os simétricos.

Protocolo III

envelope

1. Os agentes escolhe um algoritmo híbrido de I e II.

2. O agente A (Fred) lê a chave pública gerada por B.

3. Agente A gera "k" e encripta "k" e "m".

4. Monta um envelope na qual "k" é cifrado com a chave pública de B e "m" é cifrado com o"k" (cifra) gerado anteriormente.

5. Agente B decodifica em "k" para ser utilizado para ver o texto original. "k" é obtido utili-zando a chave privada dele mesmo e a mensagem "m" se consegue decifrando-a com achave "k" achada.

Protocolos para Assinatura DigitalPara explicar o funcionamento de uma assinatura digital, é importante ilustrar quais são as pre-missas implícitas no conceito ideal de uma assinatura do mundo real:

• Inforjabilidade - confiança do verificador na impossibilidade de prática de falsificação (ex.:identificabilidade da falsificação).

• Inviolabilidade - confiança do verificador na integridade do conteúdo linguístico vinculado aoautor da assinatura.

• Irrecuperabilidade - confiança do verificador na impossibilidade de reuso da assinatura. (detransferência da autenticação).

31

Page 33: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

• Irrefutabilidade - confiança do verificador na impossibilidade prática de negação da auto-ria da assinatura pelo autor (ajuizamento de refutação/repúdio -> conceitos explicados naseção anterior).

IV - Protocolo de Assinatura Digital

Premissas do protocolo de uma assinatura digital.

1. Só o titular de um par de chaves a conhece e tem acesso à chave privada.

2. O usuário de uma chave pública confia na titulação desta chave.

3. Presume-se que o titular manifesta sua vontade no conteúdo linguístico do documento queassina.

32

Page 34: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

V - Protocolo Arbitrado de Assinatura DigitalAssinaturaArbitradaV - Protocolo Arbitrado de "assinatura" digital

Sigilo e Autenticação

Quando Fred loga no seu computador (ou uma conta de telefone, conta bancária, etc...), comoque o computador irá saber quem é ele? Como que o computador sabe que ele não é Waldemarquerendo falsificar a identidade de Fred? Tradicionalmente, as senhas resolvem este problema.Fred coloca sua senha, e o computador confirma que está correto. Ambos , computador e Fred,compartilham este segredo e o computador pede esta senha toda vez que ele tentar o acesso aocomputador.

Com essas idéias de autenticação, a seguir será mostrado um protocolo para sigilo e autenti-cação usando as chaves públicas:

VI - CIfragem de Mensagem Assinada

Premissas e Problemas deste Protocolo de Autenticação:

1. Transforma confiança na integridade da origem de Ea(Chave Pública de A) em sigilo.

2. O protocolo é vulnerável a ataques de texto pleno escolhido e a ataques por spoofing,espelhamento e replay.

3. Algoritmo fica muito lento em relação aos simétricos.

Existem muitos protocolos criptográficos e não citarei todos pois tornaria o curso cansativo e ex-tenso. O objetivo principal sobre protocolos é buscar colocar a sensibilidade da sua necessidade.Os serviços básicos são capazes apenas de transformar premissas de confiança em proriedadesde segurança, mas não de criá-las a partir do nada. Ou seja:

33

Page 35: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

• Controle de Acesso - transforma a premissa de posse de segredo ou objeto irrefutável emverificação da identidade de um agente.

• Cifragem - transfere o sigilo de uma chave criptográfica para sigilo da informação de umamensagem cifrada.

• Autentição - transforma uma premissa de sigilo em verificação de integridade (de origeme/ou conteúdo).

• Certificação - transforma uma premissa de sigilo em autenticação recursiva, com verifica-ção.

Logo, os protocolos criptográficos buscam construir, a partir de suas premissas e da capacidadetransformadora dos serviços básicos, alguma funcionalidade de proteção para o seu propósito,premissas que devem ser satisfeitas pelo sistema que o protocolo pretende proteger.Relacione as premissas implícitas no conceito ideal de uma assinatura do mundo real. (O quedeve ter para que uma assinatura "manual" seja aceita para indentificação das pessoas?)

3.7 Introdução a Algoritmos Criptográficos

Definição de segurança: Indivíduo encarregado da proteção de bens, pessoas, públicos oulocais privados; guarda-costas; social - conjunto de sistemas de um regime destinado a garantirproteção contra diversos riscos sociais, em especial os ligados ao trabalho.

No mundo de TI (Tecnologia da Informação), podemos encontrar vários termos ligados adefinição citada acima: Segurança de Dados, Segurança de Comunicação, Segurança da Infor-mação, Segurança de Sistemas, etc...

Vamos fazer um experimento "gedunken" (que significa um experimento de racicínio usadopor Einstein para deduzir a teoria da relatividade). Vamos imaginar que a segurança de qualquersistema citado acima seja como uma corrente. A segurança do sistema como um todo dependede cada conexão entre as argolas de uma corrente. Tudo deve estar bem seguro: os algoritmoscriptográficos, os protocolos, os geradores de chaves digitais, os gerenciadores de chaves, etc...Se seu algoritmo for ótimo mas o gerador de número randômico(utilizado para gerar chaves) forruim, qualquer ataque de criptoanálise irá quebrar o seu sistema pelo lado mais fraco (no casodo gerador de número randômico ruim). Mesmo consertando esse problema mas não tomandocuidado, é facil criar outro buraco como por exemplo na parte da alocação de memória das cha-ves, a criptoanálise irá tentar quebrar o sistema nessa parte mais vulnerável.Logo, podemos afirmar que a criação de um sistema seguro é uma tarefa bem difícil, além daresponsabilidade ser bem maior para criar a segurança, pois deverá ser pensado todas as possi-bilidaeds possíveis de ataque para proteger seu sistema de todos eles, do que para um criptoana-lista na qual só necessitaria de achar uma pequena vulnerabilidade para quebrar todo o sistema.

Criptografia é apenas uma pequena parte da segurança de um sistema. As pessoas tendema achar que o tamanho da dificuldade de quebrar a criptografia é diretamente proporcional a se-gurança do sistema (ou seja, quanto mais criptografia, mais seguro) e isso é um equívoco, comofoi afirmado já na introdução deste curso. Podemos ter várias alternativas ao avaliar e escolherum algoritmo a ser utilizado, podemos ter as seguintes alternativas:

34

Page 36: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

• Escolher um algoritmo já publicado na comunidade, acreditando que o algoritmo ja tenhasido bem estudado por vários criptógrafos; se ninguém ainda não conseguiu o quebrar, deveser um bem robusto.

• Acreditar em um fabricante de softwares com boa reputação a ser garantia e que eles nãoarriscariam vender equipamentos ou softwares com algoritmos ruins.

• Depositar a confiança em um consultor, baseado no credo de que um consultor imparcialesta bem capacitado para uma boa avaliação de diferentes algoritmos.

• Utilizar sistemas criados pelo governo, tendo a confiança de que eles conduzam bem seuscidadãos.

• Criar seu próprio algoritmo, baseado na idéia de que todas as alternativas anteriores nãosejam tão eficientes para o seu uso e que nada citado anterior seja confiável.

3.7.1 Algoritmo DES

Alguns exemplos de Algoritmos Criptográficos mais famosos

DES - Data Encryption StandardÉ um algoritmo de encriptação muito utilizado em criptografia. Foi criado por J.Orlin Grade e éum dos algoritmos mais utilizados no mundo. É um algoritmo rápido mas pouco seguro e existemvariantes desse algoritmo como o NewDES e o 3DES.

As origens do DES remontam ao início da década de 1970. Em 1972, após concluir um estudosobre as necessidades de segurança de informação do governo norte-americano, o então NBS(National Bureau of Standards, na época o órgão de standards do governo norte-americano)identificou a necessidade de um padrão governamental para encriptação de informações nãoconfidenciais, porém sensíveis. Em conseqüência, em 15 de Maio de 1973, após uma consultaà NSA, o NBS solicitou proposta para um algoritimo de encriptação que atendesse a critériosrigorosos de projeto. Entretanto, nenhuma das propostas recebidas se mostrou viável. Uma se-gunda solicitação foi aberta em 27 de Agosto de 1974. Desta vez, a IBM submeteu uma propostacandidata que foi considerada aceitável: um algoritmo de encriptação desenvolvido no período de1973-1974 baseado em um algoritmo mais antigo, o altoritmo Lucifer de Horst Feistel. A equipeda IBM envolvida no projeto do algoritmo incluía Feistel, Walter Techman, Don Coppersmith, AlanKonheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith, and BryantTuckerman. Com o poder computacional atual, este algoritmo já não é mais considerado seguro,pois é vulnerável a ataques de força bruta. Em julho de 1998 foi criada uma máquina chamadaEFF DES Cracker, que levou 3 dias para quebrar o algoritimo DES Challenge II e em Janeiro de1999 quebrou o DES Challenge III em 22 horas usando milhares de computadores espalhadospelo mundo. Em 19 de maio de 2005, foi desaprovado seu uso pelo Governo Americano.ImplementaçãoDES trabalha com bits ou números binários - os 0s e 1s dos computadores digitais. Cada grupode 4 bits corresponde a um número hexadecimal, cuja base é 16. O binário "0001" correspondeao número hexadecimal "1", o binário "1000" é igual ao número hexadecimal "8", "1001" é igualao hexadecimal "9", "1010" é igual a o hexadecimal "A" e "1111" é igual ao hexadecimal "F".

O DES funciona encriptando grupos de 64 bits de mensagem, o que significa 16 númeroshexadecimais. Para realizar a encriptação, o DES utiliza "chaves" com comprimento aparente de

35

Page 37: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

16 números hexadecimais, ou comprimento aparente de 64 bits. Entretanto, no algoritmo DES,cada oitavo bit da chave é ignorado, de modo que a chave acaba tendo o comprimento de 56 bits.Mas, para todos os efeitos, o DES é organizado baseando-se no número redondo de 64 bits (16dígitos hexadecimais).

Por exemplo, se tomarmos a mensagem clara "8787878787878787" e a encriptarmos com achave DES "0E329232EA6D0D73", obteremos o texto cifrado "0000000000000000". Se o textocifrado for decifrado com a mesma chave secreta DES "0E329232EA6D0D73", o resultado é otexto claro original "8787878787878787".

Este exemplo é limpo e metódico porque nosso texto claro tinha o comprimento de exatos 64bits. O mesmo seria verdade caso nosso texto claro tivesse um comprimento múltiplo de 64 bits.Mas a maioria das mensagens não cairá nesta categoria. Não serão um múltiplo exato de 64 bits(isto é, um múltiplo exato de 16 números hexadecimais).

Por exemplo, considere a seguinte mensagem: "Criptologia sempre NumaBoa". Esta mensa-gem clara possui 28 bytes (56 dígitos hexadecimais) de comprimento. Neste caso, para encriptara mensagem, seu comprimento precisa ser ajustado com a adição de alguns bytes extras no final.Depois de decifrar a mensagem, estes bytes extras são descartados. É lógico que existem váriosesquemas diferentes para adicionar bytes. Aqui nós iremos adicionar apenas zeros no final demodo que a mensagem total seja um múltiplo de 8 bytes (ou 16 dígitos hexadecimais, ou 64 bits).

O texto claro "Criptologia sempre NumaBoa" é, em hexadecimal,

43 72 69 70 74 6F 6C 6F67 69 61 20 73 65 6D 7072 65 20 4E 75 6D 61 426F 61 0D 0A\\

(Note que os primeiros 54 dígitos hexadecimais representam a mensagem em Português, en-quanto que "0D" é o hexadecimal para Retorno (Carriage Return) e "0A" é o hexadecimal paraQuebra de Linha (Line Feed), indicando que o arquivo de mensagem chegou ao fim.) Completa-mos então a mensagem com alguns zeros no final para obter um total de 64 dígitos hexadecimais:

43 72 69 70 74 6F 6C 6F67 69 61 20 73 65 6D 7072 65 20 4E 75 6D 61 426F 61 0D 0A 00 00 00 00

Se cifrarmos agora a mensagem clara em blocos de 64 bits (16 dígitos hexadecimais), usandoa mesma chave DES "0E329232EA6D0D73", obtemos o seguinte texto cifrado:

9B 79 70 61 C1 12 1E C628 A2 65 05 91 17 7D 3651 FB 97 E9 00 78 7D B479 F2 A0 29 CE 58 D6 F4

Este é o código secreto que pode ser transmitido ou armazenado. Decifrando o texto encrip-tado restaura a mensagem original "Criptologia sempre NumaBoa".

3.8 Algoritmo RSA

RSA - Ron Rivest, Adi Shamir e Len AdlemanÉ um algoritmo de encriptação de dados, que deve o seu nome a três professores do Instituto

36

Page 38: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

MIT(fundadores da empresa atual RSA Data Security, Inc). Até 2005 este foi o algoritmo maissucedido na implementação de sistemas de chaves assimétricas e esta baseado toda na áreade estudo da matemática chamada de Teoria Clássica dos Números. Ela é considerada um dosmais seguros com os inúmeros testes já feitos. Foi um dos primeiros a possibilitar a encriptaçãoe assinatura digital, e uma das grandes novidades em criptografia de chave pública.Implementação RSAAbstraindo a complexidade, são gerados dois pares de números (chaves) de tal forma que umamensagem encriptada com o primeiro par possa ser apenas decriptada com o segundo par;mas, o segundo número não pode ser derivado do primeiro. Esta propriedade assegura que oprimeiro número possa ser divulgado a alguém que pretenda enviar uma mensagem encriptadaao detentor do segundo número, já que apenas essa pessoa pode decriptar a mensagem. Oprimeiro par é designado como chave pública, e o segundo como chave secreta.

RSA baseia-se em dois fatos: encontrar números primos de grandes dimensões (p.e. 100dígitos) ser computacionalmente fácil mas, conseguir fatorar o produto de tais dois números éconsiderado computacionalmente quase impossível (o tempo estimado para o conseguir é nacasa dos milhares de anos).

http://pt.wikipedia.org/wiki/N%C3%BAmero_primo2

De fato, este algoritmo mostra-se computacionalmente inquebrável com números de tais di-mensões, e que sua força é geralmente quantificada com o número de bits utilizados para des-crever tais números. Para um número de 100 dígitos são necessários cerca de 350 bits, e asimplementações atuais superam os 512 e mesmo os 1024 bits.

Assinatura DigitalPara implementar um sistema de assinaturas digitais com RSA, o usuário que possua uma chaveprivada d poderá assinar uma dada mensagem (em blocos) m com a seguinte expressão: s = md

mod nComo se pode deduzir, é difícil descobrir s sem o conhecimento de d. Portanto, uma assina-

tura digital definida conforme esta equação é difícil de forjar. Além disso, o emissor de m não podenegar tê-la emitido, já que mais ninguém poderia ter criado tal assinatura. O receptor recupera amensagem utilizando a chave pública e do emissor: se = (md)e mod n = m mod n

Logo, o receptor consegue validar a assinatura do emissor calculando se mod n. Podemosverificar então que o algoritmo RSA satisfaz os três requisitos necessários de uma assinaturadigital.

É fácil deduzir que a assinatura varia dependentemente da mensagem em si, e que operandosobre mensagens longas o tamanho da assinatura seria proporcional. Para melhorar esta situ-ação, faz-se operar o algoritmo sobre um hash da mensagem, que identifique essa mensagemcomo única - geralmente o hash de uma mensagem varia alterando um único byte -, tendo comoconsequência o fato de que uma assinatura varia de mensagem para mensagem, para um mesmoemissor. Resumindo com formalismo matemático:

Geração da chave publica:n = Produto de dois numeros primos grandes, p e q. (p e q devem ser secretos)

e = primo relativo a (p-1)(q-1)Geração da chave privada:d = e−1 mod ((p - 1)(q - 1))

2See URL http://pt.wikipedia.org/wiki/N.C3.BAmero.primo

37

Page 39: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Cifragemc = me mod nDecifragem

m = cd mod n

Podemos observar claramente, como foi falado na introdução deste curso, a grande uti-lização de formalismo matemático para expressar o funcionamento dos algoritmos de cripto-grafia, e que para o entendimento pleno do assunto, é estritamente necessária pré-requisitoshttp://pt.wikipedia.org/wiki/Teoria_dos_n%C3%BAmeros3 neste sentido. Foi colocado estes exem-plos apenas para ilustrar superficialmente como que a criptografia é expressa na sua literatura eque o entendimento de cada detalhe dos algoritmos fugiriam do objetivo deste curso.

3See URL http://pt.wikipedia.org/wiki/Teoria.dos.n.C3.BAmeros

38

Page 40: Crip Chav Dig

Capítulo 4

Lição 4 - A prática

4.0.1 Visão Geral do SeaHorse

Agora iremos ilustrar uma pequena parte da criptografia, que seria a do gerenciamento dechaves públicas/privadas e o seu uso para alguns serviços básicos de criptografia, já citados naslição anterior. Como já demonstrado anteriormente, ela já é uma realidade hoje, e seu uso énecessário. O software mais utilizado no ambiente Linux é o GPG (GnuPG). Hoje podemos fazertudo por um método mais "humano" (utilizando recursos de interface gráfica), sem utilização delinha de comando.O Seahorse1 um ótimo software para manipular graficamente todas as suas chaves digitais, eleé integrado com o nautilus, gedit e outros softwares para fazer operações de cifragem.Este software permite:

• Criar e Manipular Chaves PGP;

• Criar e Manipular Chaves SSH;

• Publicar e Obter Chaves de um Servidor;

• Fazer Backup de Suas Chaves e seu Chaveiro.

4.1 Instalação do Seahorse

A instalação do Seahorse foi testada em uma instalação Debian, então podemos utilizar orepositório de softwares que ele possui para a sua instalação:Obtenha permissão de root;

• su <enter>

• <senha>

Agora Digite:

• apt-get install seahorse1See URL http://www.gnome.org/projects/seahorse/

39

Page 41: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

E estará tudo pronto para o uso!Caso você queira fazer a instalação por meio de código fonte (não aconselho pela sua dificul-dade), você pode fazer download do Seahorse em :http://www.gnome.org/projects/seahorse/download.html2

4.2 Utilização do SearHorse

Com o Seahorse instalado, vamos abrí-lo indo em :Aplicações > Acessórios > Passwords and Encryption Keys.Vamos agora criar nosso par de chaves. Clique em:Chaves > Create New Key e escolha a opção PGP Key.Clique em Continue e preencha os dados com seu nome completo, endereço de e-mail e umcomentário qualquer (pode ser uma frase que você goste no comentário, por exemplo. O preen-chimento deste campo é opcional).Se desejar, clique em cima da opção Advanced Options para mudar o tipo de encriptação e aquantidade de bits. Para um computador de uso pessoal, as opções padrão (DSA 2048) sãomais que suficientes.Selecione também uma data para sua chave expirar caso queira, ou deixe selecionada a opçãoNever Expires para que a chave seja eterna (você pode mudar estes dados depois se quiser, epode cancelar sua chave caso seja comprometida).Em seguida você será solicitado para digitar uma senha. Escolha uma senha bem difícil mas defácil memorização por você, ou, se preferir, deixe em branco (eu não recomendo) para usar suachave privada sem senha.

2See URL http://www.gnome.org/projects/seahorse/download.html

40

Page 42: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Após algum tempo, sua chave estará criada e aparecerá na janela principal do Seahorse.Agora você poderá dar um duplo clique sobre sua chave e alterar seus dados, se desejar.

Aproveite para anexar uma foto sua e adicionar todos os seus outros endereços de e-mail.Quando terminar, clique em Remote > Sync and Publish Keys para que os dados sejam enviadospara o servidor online de chaves. Agora vamos aprender a usar melhor o Seahorse!

Em primeiro lugar, vamos iniciar o daemon do Seahorse. Este daemon deverá ficar rodandono plano de fundo o tempo todo, portanto pressione Alt + F2&Prime; e entre com o comandoseahorse-daemon (sem as aspas).

Agora vamos configurar para que o Gnome inicie o daemon automaticamente no login indoem:

Sistema > Preferências > Sessões

Vá na aba Programas Iniciais e clique em Adicionar . Entre com o comando seahorse-daemon(sem aspas) novamente e clique em Ok. E pronto!

Agora, com o daemon rodando, quando quiser assinar um arquivo qualquer, basta clicar como botão direito sobre ele, conforme podemos ver abaixo:

Você ainda poderá escolher a opção Criptografar e escolher, na janela que se abrirá, paraquem deseja enviar o arquivo criptografado. O Seahorse irá gerar automaticamente um novoarquivo com extensão .pgp . Para descriptografá-lo, basta dar um duplo clique sobre ele e digitara senha de sua chave privada. Muito fácil não é mesmo?

41

Page 43: Crip Chav Dig

CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF

Agora vamos configurar o seu Evolution para enviar e receber e-mails assinados e criptogra-fados. Com o Evolution aberto, vamos em:

Editar > Preferências > Contas de Correio

Selecione sua conta de e-mail e clique em Editar. Vá até a aba Segurança e coloque o ID dasua chave (você poderá ver qual o ID da sua chave na janela principal do Seahorse) no campocorreto e ative a caixa Sempre assinar mensagens enviadas ao usar esta conta . Agora é sócomeçar a enviar seus e-mails assinados digitalmente (quando você for enviar um e-mail, serásolicitado pela sua senha da chave). Agora vamos aprender a criptografar!

Para enviar um e-mail criptografado a um amigo, você precisará primeiro possuir uma cópiada chave pública dele. Na janela principal do Seahorse você poderá clicar em Procurar ChavesRemotas e colocar o e-mail dele no campo. Selecione a chave correta e clique em Importar . Devolta à janela principal do Seahorse e já com a chave pública de seu amigo importada, vá até aaba Keys I&rsquo;ve Collected .

IMPORTANTE: Quando você localizar a chave de alguém pelo servidor, entre em contatocom a pessoa e certifique-se de que aquela é mesmo a chave verdadeira (passe o Key IDda chave para a pessoa confirmar). Você deve ter notado que é possível criar dezenas dechaves usando qualquer nome e qualquer e-mail, portanto tenha certeza de que a chaveque está importando é a correta e não uma falsa. Uma boa dica é procurar as pessoas queassinaram esta chave e atestaram ser válida (trataremos disto à seguir).

Na aba Keys I&rsquo;ve Collected , selecione a chave de seu amigo e clique em Properties .Na janela que abrir, clique na aba Confiar e marque a caixa I have verified that this key belongsto who it says it does que irá dizer ao GnuPG que você confia naquela chave e que verificou se achave é mesmo da pessoa que diz ser. Clique em Fechar .

Agora vá até a aba Keys I Trust e verá lá as chaves que você confia. Se você realmente temcerteza de que aquela chave é da pessoa que diz ser a dona, você poderá assinar com sua chaveprivada a chave pública de seu amigo, atestando publicamente que você confia naquela chave(como pode ver, a rede de chaves públicas é uma grande rede de confiança).

Para assinar a chave (você não é obrigado a assiná-la para enviar um e-mail criptografadoa ela, mas é bom ajudar os amigos não é verdade?) selecione-a e clique no botão Propertiesnovamente. Vá até a aba Confiar e clique no botão Sign para fazer a assinatura.

Depois de assinar, clique em Fechar , selecione a chave de seu amigo, clique com o botãodireito e selecione a opção Sync and Publish Keys para que as alterações sejam enviadas para oservidor. Peça para seus amigos assinarem a sua chave pública também garantindo uma maiorconfiabilidade para a mesma.

Bom, se você já importou a chave de um amigo e disse ao GnuPG que confia nela, basta dajanela do seu Evolution, criar um novo e-mail, e na janela de redigir, selecione a opção:

Segurança > Criptografar com PGP .Note que o Daemon do Seahorse deve estar rodando e sua senha (a da chave) será solicitada

ao clicar em Enviar .Se alguém lhe enviar um e-mail criptografado, ao selecioná-lo na lista, você já será solicitado

para digitar sua senha da chave privada. Ao digitar a senha, o Evolution irá descriptografar oe-mail automaticamente para você e exibí-lo. Com isso a garantia é muito maior de que ninguémconsiga ler seus e-mails no meio do caminho entre você e seu amigo.

42