Criptografia

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Criptografia as PDF for free.

More details

  • Words: 12,564
  • Pages: 23
Criptografia é uma especialização da matemática e engenharia que oferecem técnicas de proteção a mecanismos de acesso e a integridade de dados, e também de ferramentas para avaliação da eficácia dessas técnicas. Este curso irá abordar conceitos, técnicas e procedimentos mais eficazes hoje conhecidos para a construção de mecanismos criptográficos de dados digitais, e de meios para que sejam integrados em sistemas de informação que queiram ser protegidos. Vale ressaltar que em se tratando de criptografia, existe uma gama de possibilidades de tratar o assunto devido a complexidade dessa área de estudo e pesquisa. Aconselho que tenham uma grande força de vontade em adquirir a sensibilidade para o melhor aproveitamento deste curso. Lição 1 - Noções Básicas de Segurança Começar um curso sobre criptogia sem mencionar Segurança Computacional faz com que não sejam preenchidas todas informações necessárias para o bom entendimento do assunto. Começ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 de estudo específico apenas para estudos em informática. O mundo de hoje fornece mecanismos facilitadores para adquirir produtos e esse fato nos faz acreditar 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 de informática e também não podemos simplesmente gerar uma receita de bolo na forma de algoritmo. Logo, o que iremos ver a seguir, será uma tentativa de desenvolver alguma sensibilidade de 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 a construção de mecanismos criptográficos de dados digitais e de meios para que sejam integrados em sistemas de informação que queiram ser protegidos. Algumas áreas de conhecimento são diretamente correlacionadas com o nosso assunto de criptografia e chaves digitais. Podemos citar o conhecimento de aritmética modular (aritmética dos processadores digitais), do funcionamento básico de sistemas operacionais, conhecimento em 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 de proteção a mecanismos de acesso e a integridade de dados, e também de ferramentas para avaliação da eficácia dessas ténicas. Estas técnicas e ferramentas são relacionadas no sentido sintático e não podemos atribuir confiança no sentido semântico nas informações dos dados veiculados. Apesar de ser interessante um pré-requisito nestas áreas, não será estritamente necessário para este curso pois estarei indiretamente colocando estes conceitos a medida que prosseguirmos nessa caminhada ao conhecimento. Um exemplo básico do que temos que ter em mente quando se trata deste assunto é o seguinte: hipoteticamente, suponhamos que temos uma casa e queremos protegê-la de intrusos, a criptografia poderia ser relacionado metaforicamente a cadeados, trancas e mecanismos fortes na porta para que crie a suposta segurança perfeita. Porém, mesmo com todos estes mecanismos, não adiantaria nada se o terreno não for bem analisado e deixássemos uma janela aberta no fundo da casa.

Existe um dilema nessa área de segurança da informação, onde podemos tratar como a versã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 sabedoria para equilibrar os dois lados dessa equação (segurança x conveniência), juntamente em saber discenir a quantidade certa da paranóia de cada indivíduo, torna complexa a tarefa de um profissional da segurança. Logo podemos concluir todos os problemas de manipulação dos bits sensibilidade para

que a segurança para nos

criptografia não na informática. que possamos defender

é uma solução mágica para Esta fornece apenas truques para conhecer melhor e ter a no mundo virtual.

"Por parece?"

Um texto muito interessante escrito por um criptógrafo famoso nesta área (Bruce Schneier) se encontra no link a seguir:

que

a

criptografia

é

mais

difícil

do

que

Eu realmente recomendo a leitura deste texto, pois oferece uma boa visão geral do assunto e ilustra o estado da arte do objeto de nosso estudo. A palavra "segurança" em português do Brasil possui dois sentidos básicos na língua inglesa:

Safety eSecurity

• •

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ênio maligno, que poderia enganar as pessoas acerca até mesmo de coisas que lhe parecerem evidentes. Sendo assim, a idéia seria de que poderiam existir pessoas com gênio maligno para enganar e 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". Antes de fazermos qualquer planejamento para a segurança de um sistema, logicamente teremos que pré estabelecer o que irá demandar proteção. A seguir, será mostrada dois desafios bá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 de proteção. A tabela a seguir está listada o tipo de mecanismo de proteção, a ameaça básica para este tipo de proteção e qual a má fé que poderia acontecer para o sistema. Tipo de Proteção

Ameaça Básica

Ação

Privacidade ou Sigilo

Vazamento ou desvalorização

Leitura

Integridade

Fraude, Adulteração ou perda

Escrita

Legitimidade

Acesso indevido a execução

Execução

Disponibilidade

Bloqueio indevido de serviço

Não Execução

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

Integridade: o envio de alguma informação pelos meios de comunicação, exige que a mesma chegue o destinatário contendo o mesmo valor do remetente. Durante a transmissão, alguns fatos como fraude, adulteração ou perda dos dados poderiam ocorrer e a ação direta relacionada a estes fatos, seria a escrita sobre as informações. Legitimidade: como poderíamos, pelos meios de comunicação virtual, saber se alguma informação enviada seria realmente de quem pensamos ser? A ameaça principal seria alguém se apossar de seus dados e agir de má fé se identificando como o possuidor verdadeiro da informação. Logo, existe uma relação direta entre a personificação e uma posterior execução de açõ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 seria o bloqueio indevido destes serviços muita vezes pela não execução correta do sistema. Analisar cada componente de qualquer processo de um sistema é de suma importância para que seja bem consistente e de fácil manutenção e identificação de erros. A seguir serão citados alguns componentes básicos :



Política de Segurança de Dados 1. 2. 3.

Planejamento - Avaliar e analisar os riscos e custos. Especificação para implementar serviços e salvaguardas. Atribuição documentada de autorização e responsabilidades.

Para uma boa política de segurança, os três itens ilustrados anteriormente devem ser respeitados. A seguir, um pequeno exemplo de roteiro para planejamento para as políticas de Segurança de 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? 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 fazer quando se ocorre algum problema não planejado. Podemos citar algumas salvaguardas não computacionais 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

o o o •

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

o

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

o

Cifragem - Codificação para Sigilo

o

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

o

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

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

Ataques primários por penetração

• • •

Personificação: o atacante invade pelo perímetro de login, onde o sistema considera o invasor como alguém cadastrado no sistema. Desvio de Controle: exploração de falhas de segurança permitem que o controle dele seja desviado para outras pessoas. Violação de Autoridade: uso indevido de previlégios devido a falhas no sistema.

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). R

Tradução

do

texto

original

de

Bruce

Schneier

http://www.schneier.com/essay-037.html http://insecure.org/stf/whycrypto.html "Porque

a

criptografia

é

mais

difícil

do

que

parece?

Do correio eletrônico à telefonia celular, do acesso seguro a servidores WEB à moeda eletrônica, a criptografia é parte essencial dos sistemas de informação de hoje. A criptografia ajuda a imputar responsabilidade, promover a justiça, prover acurácia e privacidade. Pode prevenir fraudes em comércio eletrônico e garantir a validade de transações financeiras. Usada apropriadamente, protege a anomidade e fornece provas de identidade de pessoas. Pode impedir vândalos de alterarem sua página na internet e computadores industriais de lerem seus documentos confidenciais. Com o comércio seguindo sua marcha pelas redes de computadores, a criptografia se tonará cada vez mais vital. Mas a criptografia hoje existente no mercado não fornece a segurança que apregoa seu marketing. A maioria desses sitemas são projetados e implementados não por criptógrafos, mas por engenheiros que pensam que a criptografia é como qualquer outra tecnologia de computadores. Não é. Você não pode tornar um sistema seguro simplesmente acrescentando criptografia como uma medida adicional. Você precisa saber o que está fazendo a cada passo do caminho, da concepção até a implementação do sistema. Bilhões de dólares são gastos em segurança de computadores e quase todo este dinheiro é desperdiçado em produtos inseguros. Afinal, criptografia fraca parece idêntica à criptografia forte na vitrine de software. Dois produtos de encriptaçao de correio eletrônico no mercado tem interface de usuário praticamente idênticas, enquanto um deles é seguro e o outro permite "bisbilhotagem". Uma tabela contendo comparações entre recursos pode sugerir que dois produtos tenham funcionalidade similar, embora um possa ter furos comprometedores de segurança e o outro não. Um criptógrafo experiente pode reconhecer a diferença. Determinados tipos de criminosos também poderão. A segurança de computadores hoje em dia é um castelo de cartas; pode se manter de pé por agora, mas não vai durar. Muitos produtos inseguros ainda não foram quebrados porque ainda estão em sua infância, mas à medida em que se tornem mais e mais usados, torna-se-ão alvos atraentes para criminosos. A impresa divulgará os ataques, minando a confiança do público nesses sistemas. No final, produtos sobreviverão no mercado de acordo com a robustez de sua segurança. Os ataques a sistemas de informação são dos mais variados tipos. Toda forma de comércio já inventado tem sido alvo de fraudes, desde as balanças propositadamente descalibradas, o dinheiro falso, as faturas frias, etc. O comércio eletrônico também sofrerá fraudes, personificação, bloqueio de serviço, e falsificações. Não se pode caminhar pelas ruas usando uma máscara que imita o rosto de outra pessoa sem ser percebido, mas no mundo digital é muito fácil personificar outrem. Ocorre que a informatização torna os riscos maiores ainda, permitindo ataques automatizados, impossíveis de serem conduzidos contra sistemas não automatizados. Um ladrão pode se sustentar retirando um centavo por mês de cada dono de cartão de crédito VIsa. Apenas com a criptografia forte pode-se proteger tais sistemas contra estes tipos de ataques. Violações contra a privacidade constituem outro tipo de ataque. Alguns ataques contra a privacidade são direcionados: alguém da imprensa pode tentar ler a correspondência eletrônica de uma figura pública, ou uma companhia pode tentar interceptar as comunicações de um competidor. Pode-se também tentar ataques de colheita. buscando informações interessantes em um mar de dados: viúvas ricas, usuários de AZT, pessoas que visitam determinada página da internet, etc. O vandalismo eletrônico é um problema cada vez mais sério. Já foram pichadas as páginas digitais da agência de serviço secreto dos EUA, enviadas cartas-bomba digitais a provedores da internet, e cancelados centenas de listas de discussão eletrônicas,

além de ataques que bloqueiam o acesso a computadores que se comunicam por meio de determinados protocolos. E como divulgado, ladrões e vândalos rotineiramente invadem redes de computadores. Quando as salvaguardas de segurança não são adequadas, os invasores correm poucos riscos de projetistas de analistas de sistemas, como no exemplo de arrombadores que entram numa casa abrindo um buraco na parede, evitando os alarmes e trancas das portas e janelas. Vândalos cibernéticos também abrem buracos em paredes de bits. Roubam dados técnicos, subornam agentes, modificam programas e macomunam. Tiram vantagens de tecnologias mais avançadas que a dos sistemas que querem atacar, e até descobrem novos métodos matemáticos para atacá-los. Geralmente dispõem de mais tempo do que alguém honesto normalmente teria para desmontar e examinar um sistema. O securID foi usado durante anos até que alguém olhou atentamente dentro do seu gerenciador de chaves: seus códigos binários ainda continham rótulos! As chances favorecem os atacantes, que só precisam encontrar um ponto vulnerável no sistema, enquanto os defensores precisam proteger seus sitema de toda vulnerabilidade possível. O

que

a

criptografia

pode

e

não

pode

fazer

A garantia de 100% de segurança é uma falácia, mas podemos trabalhar em direção a 100% de aceitação de riscos. Fraudes existem nas formas usuais de comércio: dinheiro pode ser falsificado, cheques adulterados ou roubados, números de cartão de crédito copiados. Mesmo assim, esses sistemas ainda têm sucesso porque seus benefícios e conveniências compensam as perdas. Cofres, fechaduras e cortinas - mecanismos de privacidade - nao são perfeitos mas com frequência são bons o suficiente. Um bom sistema criptográfico atinge o equilíbrio entre o que é possível e o que é aceitável. A criptografia forte pode resistir com sucesso a ataques que lhe são direcionados até um certo ponto - o ponto onde se torna mais fácil obter , de alguma outra maneira, a informação que ele protege. Um sistema criptográfico, não importa quão seguro, não irá impedir que alguém vasculhe seu lixo. Mas pode perfeitamente prevenir ataques de colheita de dados: ninguém conseguirá vasculhar suficientes latas de lixo para montar a lista de todos os usuários de AZT do país. A boa notícia sobre criptografia é que já temos os algoritmos e protocolos para proteger nossos sistemas. A má notícia é que esta foi a parte mais fácil: implementações bem sucedidads requerem especialização considerável. As áreas de segurança na informática que interagem com pessoas - gerência de chaves, segurança da interface homem/máquina e controle de acesso frequentemente desafiam análise. As disciplinas de infra-estrutura de chaves públicas, segurança do software, segurança de computadores, segurança de redes e projeto de hardware inviolável são também pouco compreendidas. Companhias muitas vezes fazem mal a parte fácil e implementam algoritmos e protoclos inseguros. Mas mesmo assim, na prática raramente a cropgrafia é quebrada por causa, ou através, de sua matemática; outras peças do sistema são mais fáceis de serem quebradas. O protocolo mais seguro já inventado poderá facilmente sucumbir a um ataque simples se não for dada atenção a detalhes mais complexos e sutis sobre sua implementação. A segurança do browser Netscape 1.0 caiu devido a uma falha no seu gerador de números randômicos. As falhas podem estar em qualquer lugar: no modelo de ameaças, no projeto do sistema, na implementação do software ou do hardware , ou na gerência do sistema. Segurança é uma cadeia, onde um único elo fraco pode quebrar todo o sistema. Bugs fatais a segurança podem estar em partes do software distantes dos módulos que implementam serviços de segurança, e uma decisão de projeto que não tenha nada a ver com segurança poderá criar uma falha de segurança. Uma vez encontrada uma falha de segurança, pode-se consertá-la. Mas encontrar as falhas, para inicio de conversa, pode ser extremamente difícil. Segurança é diferente de qualquer outro requisito de projeto, porque nele funcionalidade não é igual a qualidade: se um editor de texto imprime corretamente, sabe-se que a função de impressão funciona. Segurança é diferente: só porque um cofre reconhce a combinação correta para abri-lo, não significa que seu conteúdo está seguro contra um chaveiro ou arrombador. Nenhuma quantidade de testes beta revelará todas as falhas de segurança de um sistema, e não haverá nenhum teste possível que provê a ausência destas falhas. Modelos

de

ameaças

Um bom projeto começa por um modelo de ameaças. O que o sistema está sendo concebido para proteger, de quem e durante quanto tempo? O modelo de ameaças deve levar em consideração todo o sistema, não apenas os dados que está sendo projetado para proteger, mas também e principalmente as pessoas que irão usá-lo e como irão usá-lo. O que motivará os atacantes? Que tipo de abusos podem ser tolerados? Deve um tipo de ataque ser prevenido ou basta que seja detectado? Se o pior acontecer e alguma hipótese fundamental sobre a segurança do sistema for violada, que tipo de salvamento pós-desastre pode ser conduzido? Respostas a estas questões não podem ser padronizadas como os algoritmos e protocolos. São diferentes para cada sistema, e com frequência projetistas não dedicam tempo a construir um modelo realista das ameaças ou a analisar os riscos. Modelos de ameaças permitem a desenvolvedores de produtos e consumidores determinar quais medidas de segurança são necessárias: terá sentido encriptar todo seu disco rígido se você não guarda seus documentos de papel num cofre? Como pode alguém de dentro da companhia fraudar o sistema de comércio? Qual é exatamente o custo para se neutralizar a inviolabilidade de um cartão inteligente? Não se pode especificar um sistema seguro sem conhecimento sobre contra o que, e de quem , se deseja protegê-lo. Projeto

de

Sistemas

O projeto de um sistema criptográfico deve ser feito somente após o modelo de ameaças ter sido compreendido. Este trabalho é o tema central da criptologia, e é muito especializado. A criptografia mescla várias áreas da matemática: teoria dos números, teoria da complexidade, teoria da informação, teoria da probabilidade, álgebra abstrata, análise formal, dentre outros. Poucos podem contribuir apropriadamente para esta ciência, onde um pouco de conhecimento é muito perigoso: criptógrafos inexperientes quase sempre projetam sistemas falhos. Bons criptógrafos sabem que nada substitui a revisão extensiva feita por colegas e anos de análise. SIstemas de qualidade usam algoritmos e protocolos publicados e bem compreendidos: usar

elementos

não

provados

em

um

projeto

é

no

mínimo

arriscado.

O projeto de sistemas criptográficos é também uma arte. O projetista precisa atingir um equilíbrio entre segurança e acessibilidade, anonimidade e responsabilização, privacidade e disponibilidade. A ciência sozinha não garante segurança: somente a experiência e a intuição nascida da experiência podem guiar o criptógrafo no projeto de sistemas criptográficos e na busca de falhas em sistemas existentes. Bons sistemas de segurança são feitos de pequenos módulos independentemente verificáveis (e que tenham sido verificados!), cada um provendo algum serviço que claramente se resuma a uma primitiva. Existem vários sistemas no mercado que são muito grandes para serem verificados em tempo razoável. Implementação Existe uma distância enorme entre um algoritmo matemático e sua implementação concreta em hardware ou em software. Projetos de sistemas criptográficos são muito frágeis. Só porque um protocolo é logicamente seguro, não significa que permanecerá seguro quando o implementador começar a definir estrutura de dados e a descrever a passagem de bits de um lado para outro. "Fechado" nunca será totalmente fechado: esses sistemas têm que ser perfeitamente implementados, senão irão falhar. Uma interface mal projetada pode tornar um encriptador de arquivos de disco completamente inseguro. Uma interface de sincronização mal projetada pode deixar um furo em um sistema para comunicações seguras. Confiança excessiva na inviolabilidade de hardware, tais como os chips de cartões selados, pode tornar inútil um sistema de comércio eletrônico. Como estes problemas não aparecem em testes, por vezes aparecem em produtos já lançados no mercado. Implementadores estão sempre sob pressão de orçamentos e prazos. Cometem os mesmos erros várias vezes à fio, em muitos produtos diferentes. Usam geradores de sequências randômicas ruins, não checam condições de erro apropriadamente, e deixam informações secretas em arquivos de swap. Muitas destas falhas não podem ser estudadas em livros acadêmicos porque não são tecnicamente interessantes. A única maneira de aprender sobre estas falhas é fazendo e quebrando sistemas de segurança, um após o outro, em uma corrida sem fim. Procedimentos

e

Gerência

No final da estória, muitos sistemas de segurança são quebrados por pessoas que os usam, e a maioria das fraudes contra sistemas de comércio são praticadas por quem os opera. Usuários honestos também causam problemas, porque geralmente não ligam para segurança. Eles querem simplicidade, conveniência, e compatibilidade com sistemas legados (inseguros) e em uso. Eles escolhem senhas fracas, anotam-nas, passam-nas para parentes e amigos, largam computadores com sessões abertas, etc. É muito difícil vender fechaduras para pessoas que não querem ser molestadas pela responsabilidade de carregar chaves. Sistemas bem projetados têm que levar em conta as pessoas, e as pessoas são os elementos mais difíceis de serem abstraídas no projeto. Aí é onde está realmente o custo com segurança. Não está nos algoritmos. A criptografia forte não é mais cara que a fraca. O grosso do custo também não está em projeto e implementação: sai bem mais barato projetar e implementar um bom sistema do que cobrir as perdas com um sistema inseguro. A maior parte de seu custo está em fazer com que as pessoas o utilizem. É difícil convencer um consumidor sobre a importância de sua privacidade financeira, quando o mesmo está disposto a trocar um detalhado registro de suas compras por um milésimo de uma viagem ao Havaí. É difícil construir um sistema de autenticação robusto sobre um outro sistema que permite ser penetrado por meio do conhecimento do nome de solteira da mãe de alguém. A segurança rotineiramente ultrapassada por vencedores, gerentes, executivos e qualquer um que esteja querendo "apenas tocar o serviço". Mesmo quando o usuário compreende a necessidade de um sistema de segurança robusto, não terão meios de comparar dois sistemas. Revistas de computação comparam produtos de segurança utilizando seus recursos e funcionalidade, e não avaliando sua segurança. Propagadas de produtos fazem asserções que simplesmente não se sustentam. Um produto mais robusto, isto é, melhor testado(e portanto mais caro), estarão nestas condições em desvantagem para a comercialização. As pessoas confiam no governo para zelar pela sua segurança e bem estar, em coisas para as quais não detém conhecimento suficiente para fazerem sua própria avaliação - industrialização de alimentos, aviação, medicamentos, medicina, etc. Com a criptografia , entretanto, os governos fazem geralmente o contrário. Problemas

no

Futuro

Quando um avião cai, são abertos inquéritos, feitas análises e laudos técnicos. Informação sobre o acidente amplamente divulgada, e muitos aprendem algo com o acidente. Pode-se obter das autoridades, laudos sobre acidentes aéreos desde o início da história da aviação. Mas quando um sistema eletrônico de transações financeiras de um banco é penetrado e fraudado, quase sempre o episódio é acobertardo. Se alguma informação chega até os jornais, os detalhes são omitidos. Ninguem analisa o ataque, e ninguém aprende nada com os erros. O banco tenta remendar o problema em segredo, na esperança de que a clientela não perca a confiança num sistema que não merece esta confiança. Remendar sistemas de segurança para tapar furos em resposta a ataque bem sucedidos não é suficiente. A informação move muito depresas. Uma falha em algum sistema, descrita na internet, pode ser explorada por milhares em um dia. Os sistemas para hoje precisam antecipar futuros ataques. Qualquer sistema de grande porte-seja para comunicações autenticadas, armazenamento seguro de dados ou comércio eletrônico - deveria ter vida útil de cinco anos ou mais. Para permanecer seguro, precisa ser capaz de resistir ao futuro: ataques mais inteligentes, com maior capacidade computacional e motivações crescentes para se subverter um sistema que está consolidado por longo uso. Não haverá tempo para se fazer upgrades enquanto estiver em uso.

A história tem nos ensinado: nunca subestime a quantildade de recursos em dinheiro, tempo e esforço que alguém esteja disposto a gastar para subverter um sistema. Use sistemas de defesa ortogonais, com várias maneiras de se fazer a mesma coisa. Autenticação segura pode significar assinaturas digitais pelo usuário via teclado, SSL para proteger a transmissão, IPSec pelo firewall para o destino, junto com pontos de auditoria múltiplos ao longo do caminho para gerar rastros e produzir evidências. A quebra de alguma parte dará ao atacante uma alavanca, mas não causará o colapso de todo o sistema. É sempre melhor assumir o pior. Assuma que seus adversários são melhores do que realmente são. Assuma que a ciência e tecnologia poderão em breve fazer coisas que hoje ainda não podem. Dê a si mesmo uma margem de erro. Dê a si mesmo mais segurança do que hoje precisa. Quando o inesperado acontecer, você estará contente por ter agido assim". [Bruce Schneier] Lição 2 - Introdução a Criptologia A criptologia desde os tempos antigos, sempre foi um assunto de grande interesse de governantes e povos, em épocas de paz e de guerra. Essas idéias surgiram devido a história sempre ter 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 impulsionaram as pessoas a criarem novos meios criativos para "esconder/embaralhar" o sentido de seus simbolos. Para história avaliados. antiga,

facilitar em Uma

o fases, dessas média,

estudo, os historiadores épocas, períodos, segundo critérios divisões que aprendemos no colégio moderna e

A divisão história da criptologia não está estritamente acima, porém será útil no sentido do estava presente nos tempos citados abaixo.

• • • • •

limitado pelas entendimento de

datas como

dividiram a por eles são: história contemporânia. oficiais a

da citadas criptologia

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 (mesmo quando ela não era considerada como ciência exata), acesse o link disponibilizado abaixo:

http://www.numaboa.com.br/criptologia/historia/index.php O surgimento da escrita significou o advento de uma tecnologia fundamental para o desenvolvimento do ser humano na face da Terra. Era uma forma de preservar pensamentos, técnicas e emoções com um conjunto de traços e com isso foi capaz de acumular e produzir conhecimentos que, mais tarde, dariam origem à filosofia, às ciências e às artes. Paralela a esta fundação de um novo meio de preservar informações, o homem também começou a "brincar" com as escritas cifradas, porém a evolução desse meio "oculto" de escrita foi bem lenta, pois, no início existia apenas uma necessidade da disponibilidade de troca de informação, sem a necessidade de esconder 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" significa, ciência e "analysis" significa decomposição. Logo, CRIPTOLOGIA é o estudo da escrita cifrada 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íngua do "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 ser classificado como algo chamado criptoFONIA na qual o som é encriptado. A chave para abrir o sentido seria o "pê". Outro ambiente relacionado a isso seria um baile de máscaras onde existe a idéia de esconder a identidade da pessoa e a chave para a identificação são as fantasias e máscaras. Apesar da idéia de "esconder" o sentido das palavras, a criptologia existe como ciência há apenas 20 anos e antes era considerada uma arte. Hoje em dia existem várias organizações de pesquisa nessa área, podemos citar a IACR"

target="_blank">http://www.iacr.org/).">IACR (http://www.iacr.org/).
a> />

Existe outra área que não faz parte da criptografia: a Esteganografia. Este é o estudo das técnicas de ocultação de mensagens, diferentemente da Criptografia que não a oculta, mas a confunde de forma a tornar seu significado ininteligível. Um exemplo de esteganografia seria de colocar alguma mensagem oculta em uma imagem .jpg. A evolução tecnologia do mundo criou-se uma maior necessidade do uso da criptografia. Muitas comodidades de hoje em dia, apesar de criarem grande disponibilidade de serviço, criam também muita transparência nos seus usos e muitas vezes, os

usuários não querem que as informações sejam deixadas em público. Como consequência direta, a criptolografia evoluiu muito em pouco tempo. Para entender o que tem hoje, é interessante voltar atrás e ir percorrendo a evolução da criptografia. Como citado anteriormente nas subdivisões da criptologia, a criptografia é a ciência que estuda como escrever mensagens onde apenas o remetente e o destinatário conseguem ler e a Criptoanálise seria o contrário, a ciência de decifrar e ler as mensagens cifradas.

Existem duas idéias principais com relação as mensagens. As palavras, caracteres ou letras da mensagem original constituem o Texto Pleno ou Mensagem Clara. As palavras ou letras da mensagem 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 e o 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 seria falar "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 significado de compor cifras. Finalmente, podemos dizer que qualquer mensagem de uma aplicação de um algoritmo (regra de uma chave específica (que podem ser de igual diferentes, para o remente e destinatário) Na prática, qualquer mensagem cifrada é um SISTEMA GERAL (ou algorítmo), que CHAVE ESPECÍFICA, que pode ser variável. quanto o destinatário precisam conhecer o sistema e a chave.

o É

é

cifrada é embaralhamento), e de fácil

resultado invariável, óbvio que

o resultado associado a dedução ou

da aplicação de associado a uma tanto o remetente

Lição 3 - Introdução a Criptografia Antes de explicar a criptografia, temos que criar uma terminologia dos componentes de um mecanismos criptográfico para facilitar seu entendimento.

Remetente/Destinatário Suponha que uma pessoa queira enviar uma mensagem especial a um destino, mas queira que a mensagem seja segura: Ela queira que ninguém possa "bisbilhotar" o conteúdo da mensagem.

Texto Pleno/Mensagem Cifrada Existem duas idéias principais com relação as mensagens. As palavras, caracteres ou bits da mensagem original constituem o Texto Pleno ou Mensagem Clara. Vamos denotar esse componente 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 e o 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 seria falar "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 significado de 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 argumento de entrada e produzirá de volta o texto pleno M:

Logo,

D(C) = M podemos

verificar

como

verdadeiro

a

função

abaixo:

D(E(M)) = M Na qual seria a formalização matemática de todo o processo de composição de cifra e decifração. Como explicado anteriormente, além de confidenciabilidade da mensagem, outros serviços que necessitam de criptografia são:

• • •

Autenticação: Deve ser possível o receptor da mensagem saber que o remetente é quem ele mesmo diz ser. Integridade: O receptor da mensagem deve confiar que a mensagem não foi adulterada no meio do meio do caminho. Não Repúdio: Quem enviou a mensagem não deve poder negar que a mensagem enviada por 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, seu passaporte, 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ção do mundo virtual.

Finalmente, podemos dizer que qualquer mensagem de uma aplicação de um algoritmo (regra de uma chave específica (que podem ser de igual diferentes, para o remente e destinatário).

Na prática, qualquer mensagem cifrada é um SISTEMA GERAL (ou algorítmo), que CHAVE ESPECÍFICA, que pode ser variável. quanto o destinatário precisam conhecer o sistema e a chave.

o É

é

cifrada é embaralhamento), e de fácil

resultado invariável, óbvio que

o resultado associado a dedução ou

da aplicação de associado a uma tanto o remetente

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

Quando as chaves para a cifragem e decifragem das informações são iguais ou de fácil dedução, podemos colocá-las na categoria de "Chaves Simétricas". Isso requer que o remetente/destinatário concordem em uma chave comum para poderem se comunicar de modo seguro. 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 mensagem cifrada. Para manter as informações secretas, a chave deve se manter secreta.

Podemos mostrar o esquema como: E K(M) = C D K(C) = M K = chave simétrica. Consequentemente, o esquema de cifragem e decifragem com sua chave simétrica teria a fórmula: D K(E K (M)) = M

Por outro lado, as chamadas Chaves Assimétricas foram criadas com a idéia de que a chave usada para cifragem ser diferente da usada para decifragem. Além disso, pela chave de decifragem, 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, pois a chave de cifragem pode ser deixada em público e somente o possuidor da chave de decifragem poderá 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:

E K1 (M) = C D K2 (C) = M D K2 (E K1 (M)) = M

A criptografia em tempos remotos, antes do surgimento de computadores, utilizavam apenas caracteres. Diferentes algoritmos utilizaram técnicas de substituição de um caracter a outro, e/ou então, faziam a transposição de um caracter com outro. Literamente era uma sopa de letrinhas misturadas. Hoje em dia existe uma complexidade maior, mas a idéia básica da "sopa de letrinhas" se mantém. A primeira mudança para a atualidade é o uso de bits (0 e 1) em vez de caracteres. Isso diminui o tamanho do alfabeto para 2 elementos. Muitos bons algoritmos hoje em dia misturam as duas técnicas de substituição e transposição. Cifras de Substituição A abordagem principal dessas cifras é a substituição de cada caracter do texto pleno por outro da cifra. Para voltar ao texto original, o receptor inverte a substituição do caracter na cifra para o texto pleno. Existem basicamente quatro tipos de cifras de substituição: Cifras Monoalfabé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 texto cifrado. Como consequência, a frequência de ocorrência das letras (números ou símbolos) da mensagem cifrada é a mesma que a frequência de ocorrência das letras da língua usada na mensagem 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 mensagem original. Alfabeto normal: Alfabeto para a cifragem:

abcdefghijklmnopqrstuvwxyz PORTUGALBCDEFHIJKMNQSVWXYZ Assim, a mensagem 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 é substituí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 cada caracter do texto original pode ser mapeado em vários caracteres da cifra. Exemplo, "X" poderia corresponder a 20, 25 e 55. "Y" poderia corresponder a 9,13, 30 e 45, etc... Alfabeto normal: Alfabeto para a cifragem:

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 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 r z - 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, a mensagem: 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 do texto e também múltiplos alfabetos são usados. A idéia é substituir cada letra do alfabeto por outro 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 a chave for"LIMAO": LIMAOLIMAOLIM A primeira letra do texto, A, é cifrada usando o alfabeto na linha L, que é a primeira letra da chave. Basta olhar para a letra na linha L e coluna A na grelha de Vigenère, e que é um L. Para a segunda letra do texto, ver a segunda letra da chave: linha I e coluna T , que é B, continuando sempre até obter:

Texto: ATACARBASESUL Chave: LIMAOLIMAOLIM Texto cifrado: LBMCOCJMSSDCX A cifra mais popular deste tipo é o Vigenere, publicada inicialmente em 1585 por Blaise Vigenere e foi considerada indecifrável até 1863. Mais Informações podem ser encontradas em:

http://www.numaboa.com.br/criptologia/cifras/substituicao/vigenere.php Cifras de Transposição

O funcionamento deste tipo de cifra faz com que os caracteres do texto original sejam misturados, mas que os caracteres mantém os mesmos. Em outras palavras, o texto cifrado é um criptograma obtido através da permutação do texto original. Este método é conhecido desde a Antiguidade, tendo o scytale (ou bastão de Licurgo) usado pelos espartanos como o exemplo mais antigo. Em mensagens curtas, como no caso de uma única palavra, este método não é seguro porque existem poucas maneiras de variar a distribuição das letras. Por exemplo, uma palavra de três letras só pode assumir 6 formas diferentes (fatorial de 3 é 6, ou 3!=6). Desta forma, a palavra SOL só pode adquirir as seguintes formas: sol, slo, osl, ols, lso e los. Obviamente, à medida que o número de letras aumentar, o número de arranjos se multiplica rapidamente e fica quase impossível obter o texto original caso não se conheça o processo de deslocamento. Por exemplo, uma frase de 35 letras pode assumir 35! = 10.333.147.966.386.144.929.666.651.337.523.200.000.000 formas diferentes. Uma transposição aleatória parece oferecer um alto nível de segurança, mas há um inconveniente: também é aleatória para o destinatário, que não teria como decifrar a mensagem. Para que a 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 e a segurança diminuem. Os sistemas de transposição, usados isoladamente, segurança muito baixo, mas podem ser muito combinação com outros sistemas (a chamada sobrecifragem ou recifragem).

possuem um úteis quando

grau utilizados

Exemplos: Cifra das colunas, o texto a cifrar é escrito por colunas, com passagem para a coluna seguinte sempre que se atingir o número máximo de linhas. 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 P U M D F O E O R S D J T O O S S B T X Q

de em

As letras no final servem para confundir número já fixado de caracteres na mensagem. Esta fica assim:

o

criptanalista

ou

obter

um

FAOSM DCEOP UMDFO EORSD JTOOS SBTXQ Trata-se de uma cifra muito decifrar), mesmo quando se altera mensagem seguindo uma espiral definida na grelha.

a

fraca

ordem



(por

extremamente exemplo,

fácil colocando

de a

Transposição de Colunas: consiste na escrita de uma chave como cabeçalho da grelha, seguida da mensagem escrita por linhas sendo a última eventualmente completa por caracteres sem significado. Depois, a mensagem é escrita (ou transmitida) por colunas, por ordem alfabética das letras no cabeçalho. Por exemplo, se a chave for ZEBRAS, e a mensagem for VAMOS EMBORA, FOMOS DESCOBERTOS, começa-se por obter a grelha: ZE B R AS seedutiuitqãethasonasogecanaeprtorasap Ler-se-ia como: SADEE MOOOS ABMCO ORSBJ EFERU VMOST Para a decifrar, da mensagem (30) letras da chave.

o pelo

destinatário da chave

tem (6),

apenas e ler

que as

dividir colunas

o pela

comprimento ordem das

Apesar de muitos sitemas utilizarem transposição, o grande problema desta técnica é o uso bastante da memória e as vezes necessitam de que as mensagens sejam de um tamanho fixo. As cifras de substituição são mais comuns.

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

Um protocolo pode ser entendido como um conjunto de passos, envolvendo duas ou mais pessoas, para conseguirem juntos alcançar alguma tarefa. Logo, podemos ilustrar esse "conjunto de passos" como uma sequência de início e fim e que cada passo deve ser executado em cada turno e nenhum passo posterior pode passar por cima de um anterior. Não faria sentido você fazer uma série de pequenas tarefas para chegar a um fim sem objetivo, então para que seja 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 concordar em seguir (executar) o protocolo; O protocolo deve ser inambíguo, sem margem para mal entendidos, e completo, com uma ação especificada para cada situação possível;

Protocolos Criptográficos São protocolos que usam criptografia. Diariamente, as pessoas se comunicam umas com às outras e confiam nelas implicitamente. No mundo abstrato da informática, devemos formalizar os passos para que a comunicação tenha essa confiança quanto a identidade da pessoa e sigilo da informação. As pessoas participantes da comunicação podem querer 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ão que 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 passo dos 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 provar uma 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: jogar truco, 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 forma harmoniosa. Com o advento da tecnologia, muitos serviços novos que surgiram começam a tomar lugar dos "protocolos" na interação frente a frente entre as pessoas. Um exemplo seria a utilização de uma webcam, os computadores necessitam de protocolos formais para criar os passos de uma comunicação e isso é a diferença entre um protocolo humano "sem pensar" e um 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 de truco 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 nem ver nem tocar? Será de muita inocência assumir que as pessoas na rede são honestas e mais alé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 otimizar seguranças para que sejam imunes (pelo menos quase) a pessoas que hajam de má fé.

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., interessados em seu propósito). Logo podemos classificar os protocolos como:

• • •

Protocolo Arbitrado: usa agente auxiliar para prevenção , durante a execução, de trapaça entre os agentes principais. Protocolo Ajuizável: usa agente auxiliar para detecção , após a sua execução, de trapaça entre agentes principais. Protocolo Auto-verificável: na sua construção já há eliminação das possíveis vantagens para trapaças e refutações para a execução. Este protocolo não necessita de um terceiro agente para o controle das confianças.

Protocolo Arbitrado 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 em uma 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 na qual é 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 é chamado apenas para determinar se o protocolo foi executado justamente. No mundo real podemos relacionar o remediador como um juiz. Um juiz é chamado apenas em casos de disputa. Exemplo: Fred e Ana podem criar um contrato sem um juíz e esse nunca irá ver o contrato, a não ser que haja algum desentendimento nos termos do contrato.

Logo, podemos formalizar este em duas partes: Protocolo não arbitrado (executado sempre): 1. 2. 3.

Fred e Ana negociam os termos de contrato. Ana assina o contrato. Fred assina o contrato.

Protocolo ajuizável (executado apenas em caso de disputa): 1. 2. 3. 4.

Fred e Ana aparecem antes do juiz. Fred apresenta seus termos. Ana apresenta seus termos. O juiz determina as regras em cima dos termos.

No mundo dos computadores, os protocolos confiam nos dois lados como honestos, mas caso alguém suspeite de alguma trapaça, um conjunto de dados existem para que um terceiro possa determinar se alguém realmente trapaceou. A diferença do protocolo anterior é que este apenas detecta 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 as situações, uma solução com protocolo auto verificável.

Existem algumas dificuldades na concepção dos protocolos de arbitragem e ajuizáveis, podemos citar: 1. 2. 3. 4. 5.

Impessoalidade - programas-árbitro dificilmente inspiram a confiança necessária: ocultam intenção do programador; Custo - à rede de computadores recai o custo de criação e manutenção de um serviço de arbitragem; Gargalo - a arbitragem trata toda transação; Tempo de execução - a arbritragem consome tempo considerável; Vulnerabilidade - ponto fraco do protocolo, atraindo ataques;

Resumindo a mediação e a autoverificação em protocolos criptográficos a seguir, ilustram as suas principais características: A mediação apresenta dificuldades listadas anteriormente em 1, 2 e 5. A autoverificação apresenta as seguintes dificuldades:

• •

A natureza do problema: nem todos os problemas de segurança tem solução em protcolos autoconfiáveis; Análise exaustiva: a autoverificação só existe enquanto formas de ataque ao protocolo forem desconhecidas;

Protocolo para Sigilo na Comunicação em Rede Como que duas pessoas podem se comunicar com segurança? Eles devem encriptar sua comunicação, claro! Mas um protocolo completo para isso é mais complicado do que se parece. A seguir temos esquemas do que deve acontecer para que Fred se comunique com Ana utilizando protocolos simétrico e assimétrico. Premissas e Problemas do Protocolo I

• • • •

Agente A = Fred; Agente B = Ana;

1.

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

k = chave simétrica; m = mensagem original; c = cifra;

2. 3. 4. 5.

As chaves devem ser distruibuídas em segredo A privacidade da comunicação requer muitas chaves, com uma chave individual para cada par de agentes. [n²-n pares] Se a chave for comprometida (roubada, vazada, quebrada, subornada, extorquida ou vendida), o possuidor da chave poderá fraudar a comunicação personificando-se como A ou B, promovendo escuta ativa, spoofing, espelhamento, replay. 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;

1. 2.

Transforma confiança na integridade da origem de Ea em sigilo. O protocolo é vulnerável a ataques de texto pleno escolhido (M pequeno), e a ataques por spoofing, espelhamento e replay. Dentre os algoritmos criptoggŕaficos robustos conhecidos, os assimétricos são mais lentos 103 a 10 4 vezes que os simétricos.

3.

Ex = chave pública do agente x; m = mensagem original c = cifra; Agente A = Fred; Agente B = Ana

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.



Dentre os algoritmos criptoggŕaficos robustos conhecidos, os assimétricos são mais lentos 10 3 a 10 4 vezes que os simétricos. Protocolo III

1. 2. 3. 4. 5.

Os agentes escolhe um algoritmo híbrido de I e II. O agente A (Fred) lê a chave pública gerada por B. Agente A gera "k" e encripta "k" e "m". Monta um envelope na qual "k" é cifrado com a chave pública de B e "m" é cifrado com o "k" (cifra) gerado anteriormente. Agente B decodifica em "k" para ser utilizado para ver o texto original. "k" é obtido utilizando a chave privada dele mesmo e a mensagem "m" se consegue decifrando-a com a chave "k" achada.

Protocolos para Assinatura Digital Para explicar o funcionamento de uma assinatura digital, é importante ilustrar quais são as premissas 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 ao autor da assinatura. Irrecuperabilidade - confiança do verificador na impossibilidade de reuso da assinatura. (de transferência da autenticação). Irrefutabilidade - confiança do verificador na impossibilidade prática de negação da autoria da assinatura pelo autor (ajuizamento de refutação/repúdio -> conceitos explicados na seção anterior). IV - Protocolo de Assinatura Digital

Premissas do protocolo de uma assinatura digital. 1. 2. 3.

Só o titular de um par de chaves a conhece e tem acesso à chave privada. O usuário de uma chave pública confia na titulação desta chave. Presume-se que o titular manifesta sua vontade no conteúdo linguístico do documento que assina.

V - Protocolo Arbitrado de Assinatura Digital Sigilo e Autenticação Quando Fred loga no seu computador (ou uma conta de telefone, conta bancária, etc...), como que o computador irá saber quem é ele? Como que o computador sabe que ele não é Waldemar querendo 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 ao computador. Com essas idéias de autenticação, a seguir será mostrado um protocolo para sigilo e autenticação usando as chaves públicas: VI - CIfragem de Mensagem Assinada

Premissas e Problemas deste Protocolo de Autenticação: 1. 2. 3.

Transforma confiança na integridade da origem de Ea(Chave Pública de A) em sigilo. O protocolo é vulnerável a ataques de texto pleno escolhido e a ataques por spoofing, espelhamento e replay. 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 extenso. 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 proriedades de segurança, mas não de criá-las a partir do nada. Ou seja:

• • • •

Controle de Acesso - transforma a premissa de posse de segredo ou objeto irrefutável em verificação da identidade de um agente. Cifragem - transfere o sigilo de uma chave criptográfica para sigilo da informação de uma mensagem cifrada. Autentição - transforma uma premissa de sigilo em verificação de integridade (de origem e/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 capacidade transformadora 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. Definição de segurança: Indivíduo encarregado da proteção de bens, pessoas, públicos ou locais privados; guarda-costas; social conjunto de sistemas de um regime destinado a garantir proteçã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 a definição citada acima: Segurança de Dados, Segurança de Comunicação, Segurança da Informação, Segurança de Sistemas, etc... Vamos fazer um experimento "gedunken" (que significa um experimento de racicínio usado por Einstein para deduzir a teoria da relatividade). Vamos imaginar que a segurança de qualquer sistema citado acima seja como uma corrente. A segurança do sistema como um todo depende de cada conexão entre as argolas de uma corrente. Tudo deve estar bem seguro: os algoritmos criptográ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) for ruim, qualquer ataque de criptoanálise irá quebrar o seu sistema pelo lado mais fraco (no caso do gerador de número randômico ruim). Mesmo consertando esse problema mas não tomando cuidado, é facil criar outro buraco como por exemplo na parte da alocação de memória das chaves, 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 da responsabilidade ser bem maior para criar a segurança, pois deverá ser pensado todas as possibilidaeds possíveis de ataque para proteger seu sistema de todos eles, do que para um criptoanalista 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 tendem a achar que o tamanho da dificuldade de quebrar a criptografia é diretamente proporcional a segurança do sistema (ou seja, quanto mais criptografia, mais seguro) e isso é um equívoco, como foi afirmado já na introdução deste curso. Podemos ter várias alternativas ao avaliar e escolher um algoritmo a ser utilizado, podemos ter as seguintes alternativas:

• • • • •

Escolher um algoritmo já publicado na comunidade, acreditando que o algoritmo ja tenha sido bem estudado por vários criptógrafos; se ninguém ainda não conseguiu o quebrar, deve ser um bem robusto. Acreditar em um fabricante de softwares com boa reputação a ser garantia e que eles não arriscariam vender equipamentos ou softwares com algoritmos ruins. Depositar a confiança em um consultor, baseado no credo de que um consultor imparcial esta bem capacitado para uma boa avaliação de diferentes algoritmos. Utilizar sistemas criados pelo governo, tendo a confiança de que eles conduzam bem seus cidadãos. Criar seu próprio algoritmo, baseado na idéia de que todas as alternativas anteriores não sejam tão eficientes para o seu uso e que nada citado anterior seja confiável

Alguns exemplos de Algoritmos Criptográficos mais famosos DES - Data Encryption Standard É um algoritmo por J.Orlin Grade algoritmo rápido como o NewDES e o 3DES.

de e é mas

encriptação muito utilizado em criptografia. Foi um dos algoritmos mais utilizados no mundo. pouco seguro e existem variantes desse

criado É um algoritmo

As origens do DES remontam ao início da década de 1970. Em 1972, após concluir um estudo sobre 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ão confidenciais, 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érios rigorosos de projeto. Entretanto, nenhuma das propostas recebidas se mostrou viável. Uma segunda solicitação foi aberta em 27 de Agosto de 1974. Desta vez, a IBM submeteu uma proposta candidata que foi considerada aceitável: um algoritmo de encriptação desenvolvido no período de 1973-1974 baseado em um algoritmo mais antigo, o altoritmo Lucifer de Horst Feistel. A equipe da IBM envolvida no projeto do algoritmo incluía Feistel, Walter Techman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith, and Bryant Tuckerman. 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 chamada EFF DES Cracker, que levou 3 dias para quebrar o algoritimo DES Challenge II e em Janeiro de 1999 quebrou o DES Challenge III em 22 horas usando milhares de computadores espalhados pelo mundo. Em 19 de maio de 2005, foi desaprovado seu uso pelo Governo Americano. Implementação DES trabalha com bits ou números binários os 0s e 1s dos computadores digitais. Cada grupo de 4 bits corresponde a um número hexadecimal, cuja base é 16. O binário "0001" corresponde ao número hexadecimal "1", o binário "1000" é igual ao número hexadecimal "8", "1001" é igual ao hexadecimal "9", "1010" é igual a o hexadecimal "A" e "1111" é igual ao hexadecimal "F". O DES funciona encriptando grupos significa 16 números hexadecimais. utiliza "chaves" com comprimento ou comprimento aparente de 64 oitavo bit da chave é ignorado,

de 64 bits Para realizar aparente de bits. Entretanto, de modo que

de a 16 no a

mensagem, encriptação, números algoritmo chave acaba

o que o DES hexadecimais, DES, cada tendo o

comprimento de 56 bits. Mas, para todos baseando-se no número redondo de 64 bits (16 dígitos hexadecimais).

os

efeitos,

o

DES

é

organizado

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

a texto a claro

Este exemplo é limpo e metódico comprimento de exatos 64 bits. O claro tivesse um comprimento múltiplo mensagens não cairá nesta categoria. bits (isto é, um múltiplo exato de 16 números hexadecimais).

o texto das 64

porque nosso texto claro tinha mesmo seria verdade caso nosso de 64 bits. Mas a maioria Não serão um múltiplo exato de

Por exemplo, considere a seguinte mensagem: "Criptologia sempre NumaBoa". Esta mensagem clara possui 28 bytes (56 dígitos hexadecimais) de comprimento. Neste caso, para encriptar a 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ários esquemas diferentes para adicionar bytes. Aqui nós iremos adicionar apenas zeros no final de modo 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 67 72 6F

72 69 65 61

69 70 74 6F 6C 6F 61 20 73 65 6D 70 20 4E 75 6D 61 42 0D 0A

(Note que os primeiros 54 dígitos hexadecimais representam a mensagem em Português, enquanto que "0D" é o hexadecimal para Retorno (Carriage Return) e "0A" é o hexadecimal para Quebra de Linha (Line Feed), indicando que o arquivo de mensagem chegou ao fim.) Completamos então a mensagem com alguns zeros no final para obter um total de 64 dígitos hexadecimais: 43 67 72 6F

72 69 65 61

69 70 74 6F 6C 6F 61 20 73 65 6D 70 20 4E 75 6D 61 42 0D 0A 00 00 00 00

Se cifrarmos agora hexadecimais), usando seguinte texto cifrado: 9B 28 51 79

a a

mensagem mesma

clara chave

em

blocos DES

de 64 bits "0E329232EA6D0D73",

(16 obtemos

dígitos o

79 70 61 C1 12 1E C6 A2 65 05 91 17 7D 36 FB 97 E9 00 78 7D B4 F2 A0 29 CE 58 D6 F4

Este é o Decifrando o sempre NumaBoa".

código texto

secreto encriptado

que pode restaura

a

ser

transmitido mensagem

ou original

armazenado. "Criptologia

RSA - Ron Rivest, Adi Shamir e Len Adleman É um algoritmo de encriptação de dados, que professores do Instituto MIT(fundadores da Security, Inc). Até 2005 este foi o implementação de sistemas de chaves assimétricas área de estudo da matemática chamada de Ela é considerada um dos mais seguros com Foi um dos primeiros a possibilitar a e uma das grandes novidades em criptografia de chave pública. Implementação RSA

deve o seu nome a três empresa atual RSA Data algoritmo mais sucedido na e esta baseado toda na Teoria Clássica dos Números. os inúmeros testes já feitos. encriptação e assinatura digital,

Abstraindo a complexidade, são gerados dois pares de números (chaves) de tal forma que uma mensagem 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 o primeiro número possa ser divulgado a alguém que pretenda enviar uma mensagem encriptada ao detentor do segundo número, já que apenas essa pessoa pode decriptar a mensagem. O primeiro par é designado como chave pública, e o segundo como chave secreta. RSA baseia-se em dois encontrar números primos de grandes dimensões (p.e. 100 dígitos) computacionalmente fácil mas, conseguir fatorar o produto de tais dois números é considerado computacionalmente impossível (o tempo estimado para o conseguir é na casa dos milhares de anos).

fatos: ser quase

http://pt.wikipedia.org/wiki/N%C3%BAmero_primo De fato, este algoritmo e que sua força para descrever tais necessários cerca de 512 e mesmo os 1024 bits.

mostra-se computacionalmente inquebrável com números de é geralmente quantificada com o número de números. Para um número de 100 350 bits, e as implementações atuais

tais dimensões, bits utilizados dígitos são superam os

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

com

Como se pode deduzir, é difícil descobrir s sem o conhecimento de d. Portanto, uma assinatura digital definida conforme esta equação é difícil de forjar. Além disso, o emissor de m não pode negar tê-la emitido, já que mais ninguém poderia ter criado tal assinatura. O receptor recupera a mensagem 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. Podemos verificar então que o algoritmo RSA satisfaz os três requisitos necessários de uma assinatura digital. É fácil deduzir que a assinatura varia dependentemente da mensagem em si, e que operando sobre mensagens longas o tamanho da assinatura seria proporcional. Para melhorar esta situação, faz-se operar o algoritmo sobre um hash da mensagem, que identifique essa mensagem como única - geralmente o hash de uma mensagem varia alterando um único byte -, tendo como consequência o fato de que uma assinatura varia de mensagem para mensagem, para um mesmo emissor. 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)) Cifragem c = me mod n Decifragem m = cd mod n Podemos observar claramente, como foi falado na introdução deste curso, a grande utilização de formalismo matemático para expressar o funcionamento dos algoritmos de criptografia, e que para o entendimento pleno do assunto, é estritamente necessária pré-requisitos http://pt.wikipedia.org/wiki/Teoria_dos_n%C3%BAmeros neste sentido. Foi colocado estes exemplos apenas para ilustrar superficialmente como que a criptografia é expressa na sua literatura e que o entendimento de cada detalhe dos algoritmos fugiriam do objetivo deste curso.

Lição 4 - A Prática Agora iremos ilustrar uma pequena parte da criptografia, que seria a do gerenciamento de chaves públicas/privadas e o seu uso para alguns serviços básicos de criptografia, já citados nas liçã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 fazer tudo por um método mais "humano" (utilizando recursos de interface gráfica), sem utilização de linha de comando. O Seahorse 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.

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

• •

su <enter> <senha>

Agora Digite:



apt-get install seahorse

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 dificuldade), você pode fazer download do Seahorse em :

http://www.gnome.org/projects/seahorse/download.html 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 um comentário qualquer (pode ser uma frase que você goste no comentário, por exemplo. O preenchimento deste campo é opcional). Se desejar, clique em cima da opção “Advanced Options” para mudar o tipo de encriptação e a quantidade de bits. Para um computador de uso pessoal, as opções padrão (DSA 2048) são mais que suficientes. Selecione também uma data para sua chave expirar caso queira, ou deixe selecionada a opção “Never Expires” para que a chave seja eterna (você pode mudar estes dados depois se quiser, e pode cancelar sua chave caso seja comprometida). Em seguida você será solicitado para digitar uma senha. Escolha uma senha bem difícil mas de fácil memorização por você, ou, se preferir, deixe em branco (eu não recomendo) para usar sua chave privada sem senha.

Após algum tempo, sua principal do Seahorse. Agora chave e alterar seus dados, se desejar.

chave você

estará poderá

criada dar um

e

duplo

aparecerá clique

na sobre

janela sua

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 enviados para o servidor online de chaves. Agora vamos aprender a usar melhor o Seahorse! Em primeiro lugar, vamos iniciar o daemon deverá ficar rodando no plano de fundo o “Alt + F2″ e entre com o comando “seahorse-daemon” (sem as aspas). Agora vamos no login indo em:

configurar

para

que

o

Gnome

do tempo

inicie

Seahorse. todo,

o

Este portanto

daemon

daemon pressione

automaticamente

Sistema > Preferências > Sessões Vá na “Programas Iniciais” e clique em “Adicionar”. “seahorse-daemon” (sem aspas) novamente e clique em Ok. E pronto! Agora, qualquer, ver abaixo:

com basta

o clicar

daemon com

o

rodando, botão

quando direito

Entre

quiser sobre

com

assinar ele,

o

um conforme

aba comando

arquivo podemos

Você ainda poderá escolher a opção janela que se abrirá, para quem deseja O Seahorse irá gerar automaticamente um “.pgp”. Para descriptografá-lo, basta dar um digitar a senha de sua chave privada. Muito fácil não é mesmo? Agora vamos configurar o seu Evolution assinados e criptografados. Com o Evolution aberto, vamos em:

“Criptografar” e escolher, na enviar o arquivo criptografado. novo arquivo com extensão duplo clique sobre ele e

para

enviar

e

receber

e-mails

“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 da sua chave (você poderá ver qual o ID da sua chave na janela principal do Seahorse) no campo correto 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, primeiro possuir uma cópia da chave pública dele. Na do Seahorse você poderá clicar em “Procurar Chaves Remotas” e-mail dele no campo. Selecione a chave correta e clique De volta à janela principal do Seahorse e já com a chave amigo importada, vá até a aba “Keys I’ve Collected”.

você precisará janela principal e colocar o em “Importar”. pública de seu

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

Na aba “Keys I’ve Collected”, selecione a clique em “Properties”. Na janela que abrir, marque a caixa “I have verified that this key does” que irá dizer ao GnuPG que você verificou se a chave é mesmo da pessoa que diz ser. Clique em “Fechar”.

chave clique belongs confia

de na to naquela

Agora vá até a aba “Keys I Trust” e verá lá confia. Se você realmente tem certeza de que aquela que diz ser a dona, você poderá assinar com sua pública de seu amigo, atestando publicamente que chave (como pode ver, a rede de chaves públicas é confiança). Para assinar a chave (você enviar um e-mail criptografado a ela, verdade?) selecione-a e clique no a aba “Confiar” e clique no botão “Sign” para fazer a assinatura.

não é mas é botão

Bom, se você já importou a confia nela, basta da janela na janela de redigir, selecione a opção:

chave do

de seu

e e it que

as chaves que você chave é da pessoa chave privada a chave você confia naquela uma grande rede de

obrigado bom ajudar “Properties”

Depois de assinar, clique em “Fechar”, selecione a clique com o botão direito e selecione a opção para que as alterações sejam enviadas para o amigos assinarem a sua chave pública também confiabilidade para a mesma.

seu amigo aba “Confiar” who it says chave e

a assiná-la os amigos não novamente. Vá

chave de “Sync and servidor. Peça garantindo

um amigo e Evolution, criar

disse um

ao novo

seu Publish para uma

GnuPG e-mail,

para é até

amigo, Keys” seus maior

que e

“Segurança > Criptografar com PGP”. Note que o Daemon do (a da chave) será solicitada ao clicar em “Enviar”.

Seahorse

deve

estar

rodando

e

sua

senha

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 o e-mail automaticamente para você e exibí-lo. Com isso a garantia é muito maior de que ninguém consiga ler seus e-mails no meio do caminho entre você e seu amigo.

Related Documents