00717 - Criptografia e Segurança Na Informática

185
UnB - UNIVERSIDADE DE BRASÍLIA INSTITUTO DE CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Criptografia e Segurança na Informática Pedro A. D. Rezende Pedro A. D. Rezende – © 1998 – CopyMarket.com

Transcript of 00717 - Criptografia e Segurança Na Informática

Page 1: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendei

UnB - UNIVERSIDADE DE BRASÍLIAINSTITUTO DE CIÊNCIAS EXATAS

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Criptografia eSegurança naInformática

Pedro A. D. Rezende

Pedro A. D. Rezende – © 1998 – CopyMarket.com

Page 2: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendeii

"Quem tem ouvidos, ouça o que o Espírito diz às igrejas.

Ao vencedor darei um prêmio: o maná escolhido.

Darei também uma pedrinha branca a cada um.

Nela está escrito um nome novo, que ninguém conhece.

Só quem recebeu."

Apocalipse de São João, Capítulo 2 Versículo 17

Page 3: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendeiii

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serReproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

ÍndicePedro Antonio Dourado de Rezende

Introdução..........................................................................................................................ix

1: Fundamentos ..............................................................................................................1

2: Elementos de Protocolos....................................................................................... 21

3: Protocolos Importantes ......................................................................................... 34

4: Técnicas Criptográficas .......................................................................................... 59

5: Algoritmos Criptográficos Importantes .............................................................. 79

6: Enfoques para Implementação........................................................................... 123

7: Exemplos de Aplicações...................................................................................... 155

Apêndices....................................................................................................................... 161

Índice alfabético de traduções de termos técnicos ............................................... 161Tabela para comparação de grandes números...................................................... 162Exemplo de execução do protocolo Diffie & Hellman ....................................... 163Exemplo de execução da primitiva Exponeciação Modular ................................ 164Exemplo de propriedades da aritmética finita...................................................... 165Exemplo de geração de chaves para o RSA ......................................................... 166Exemplo de implementação de curva elíptica ..................................................... 167Exemplo de execução de protocolo de conhecimento zero ................................ 168Lista de exercícios ................................................................................................. 170

NotaçãoConceito: Negrito

Explicação; Termo a definir; Anglicismo: Itálico

Descrição de algoritmo: Font Arial

Objeto matemático; Código fonte em C: Font Courier

Canal previamente seguro (sigilo e/ou integridade):

Canal de comunicação digital inseguro:

Agente ou objeto de confiança:

Page 4: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendeiv

Índice alfabético de tópicosAlgoritmos criptográficos de chave pública.............................................................. 114Algumas topologias para segurança ........................................................................... 154Análise de risco na internet ......................................................................................... 142Análise do DES............................................................................................................... 83Análise do RSA ............................................................................................................. 116Aplicações de fatoração e logaritmo discreto à assinatura digital ............................ 47Aposta Encoberta (comprometimento de bits).......................................................... 51Application gateways ......................................................................................................... 151Arquitetura de firewalls .................................................................................................. 147Assinaturas digitais para autenticação .......................................................................... 27Ataque de número sequencial ao TCP....................................................................... 141Ataques a sistemas computacionais.................................................................................3Ataques ao DES por texto pleno adaptativo .............................................................. 85Atualização e informações sobre segurança na internet.......................................... 161Autenticação e Distribuição de chaves via sistemas assimétricos............................ 41Autenticação e Distribuição de chaves via sistemas simétricos ............................... 38Autoridades de Certificação na Internet.................................................................... 137Cara ou Coroa ................................................................................................................. 52Cenário atual da criptografia (1998) ........................................................................... 123Cenário inicial da padronização em criptografia ........................................................ 79Cifras Encadeadas........................................................................................................... 98Cifras para sigilo.............................................................................................................. 14Construção de funções de hash .................................................................................. 104Construção de geradores pseudo-randômicos e cifras encadeadas ......................... 70Controle de acesso .......................................................................................................... 11Controles de segurança para a Internet ..................................................................... 143Criptoanálise diferencial................................................................................................. 84Criptografia na transmissão de dados .......................................................................... 76Criptografia para armazenamento de dados ............................................................... 77Criptografia Pré-computacional.................................................................................... 15Critérios de projeto para cifras de bloco ..................................................................... 96Critérios para escolha de chaves ................................................................................... 60Derivação de chaves via funções unidirecionais com segredo................................. 44Descrição do algoritmo padrão DES........................................................................... 80Descrição resumida do SET........................................................................................ 157

Page 5: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendev

Digital Signature Algorithm......................................................................................... 129Distribuição de freqüência de letras ............................................................................. 20Elementos de Protocolos............................................................................................... 21Elementos de um modelo de segurança interna......................................................... 10ElGamal ......................................................................................................................... 121Entropia em Criptoanálise............................................................................................. 19Escolha de algoritmos criptográficos........................................................................... 75Escolhas de plataforma .................................................................................................. 78Escritura de Chaves (key escrow)..................................................................................... 53Especificação de políticas de segurança..........................................................................7Esquema de autenticação de Feige-Fiat-Shamir....................................................... 131Esquema Meta-ElGamal.............................................................................................. 130Estimativas para comprimento seguro de chaves ...................................................... 59Estrutura básica de protocolos criptográficos ............................................................ 25Exemplo de um algoritmo criptográfico ..................................................................... 16Exemplos de configuração de filtragem .................................................................... 148Exemplos de protocolo baseado em conhecimento zero......................................... 57Fatoração e logaritmo discreto aplicadosà esteganografia ........................................ 49Ferramentas e utilitários de segurança ....................................................................... 159Funções de Hash........................................................................................................... 103Funções Unidirecionais (one-way functions) .................................................................... 29Futuro da criptografia assimétrica .............................................................................. 127Geração de primos para criptografia assimétrica ....................................................... 64Hash usando algoritmos para cifra de bloco............................................................. 109Histórico da criptografia na internet .......................................................................... 155Implementação de serviços de assinatura digital ...................................................... 128Implementação de serviços de chave pública ........................................................... 124Infra-estrutura para controle de tráfego .................................................................... 144Jurisdição da informação em meio eletrônico ...............................................................1LFSRs de período máximo............................................................................................ 71Limitações dos firewalls ................................................................................................. 153Login ................................................................................................................................. 35MACs: Códigos de autenticação de mensagens ....................................................... 113MD5................................................................................................................................ 105Mecanismos de autenticação ......................................................................................... 30Mecanismos e modos para construção de cifras ........................................................ 65Mecanismos para uso de certificados em redes públicas ........................................ 136Modelos de segurança interna..........................................................................................9Modo CBC....................................................................................................................... 67

Page 6: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendevi

Modo CFB ....................................................................................................................... 68Modo ECB....................................................................................................................... 66Modo OFB....................................................................................................................... 69Necessidade de protocolos criptográficos................................................................... 34Operações de filtragem ................................................................................................ 146Outros algoritmos assimétricos................................................................................... 122Outros Algoritmos Simétricos ...................................................................................... 87Outros esquemas de autenticação .............................................................................. 132Padrões para assinatura digital e gerenciamento de chaves .................................... 133Padrões para certificados digitais................................................................................ 135Polinômios primitivos módulo 2 .................................................................................. 72Primitivas de algoritmos assimétricos .......................................................................... 61Principais padrões de protocolos criptográficos ...................................................... 134Projeto e análise de cifras encadeadas.......................................................................... 73Protocolos criptográficos............................................................................................... 24Protocolos em modelos de segurança externa............................................................ 22Protocolos esotéricos ..................................................................................................... 58Provas com conhecimento zero (0-knowledge)............................................................. 55Questões éticas sobre escrituração de chaves............................................................. 54Rabin............................................................................................................................... 120Riscos à segurança externa .......................................................................................... 139RSA ................................................................................................................................. 115Segurança de Algoritmos Criptográficos..................................................................... 17Seqüências randômicas................................................................................................... 33Serviços básicos de segurança computacional ...............................................................8Serviços de validação de selo temporal........................................................................ 50SHA................................................................................................................................. 107Sistemas de chave pública usando curvas elípticas .................................................. 125Sistemas de segurança de dados.......................................................................................2Técnicas de filtragem.................................................................................................... 145Técnicas de robustecimento do DES .......................................................................... 86Teoria da informação ..................................................................................................... 18Tipos de Ataque ao TCP/IP............................................................................................5Transferência de confiança através de protocolos ..................................................... 23Uso de Tokens em segurança externa ......................................................................... 138Vulnerabilidade na ausência de segredos na autenticação......................................... 32Vulnerabilidades e pontos de ataque...............................................................................4

Page 7: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendevii

Índice alfabético de protocolosAssinatura Digital (arbitrado) ........................................................................................ 28Assinatura Digital (auto-verificável) ............................................................................. 27Assinatura Digital parcialmente irrefutável de Chaum............................................. 47Assinatura Digital sobre digesto e selo temporais...................................................... 31Autenticação Fiat-Shamir............................................................................................. 129Autenticação por protocolos de conhecimento zero iterativos ............................... 55Autenticação por protocolos de conhecimento zero não iterativos........................ 57Autenticação via conhecimento zero baseado em isomorfismo de grafo .............. 56Cara ou coroa usando chaves assimétricas comutativas............................................ 52Cara ou coroa usando hash ........................................................................................... 52Cifragem de mensagem assinada .................................................................................. 28Comprometimento de bits............................................................................................. 51Derivação de chaves de Bellovin-Merrit (A-EKE).................................................... 46Derivação de chaves de Diffie-Hellman fortificado .................................................. 45Derivação de chaves de Diffie-Hellman...................................................................... 44Distribuição de chaves certificadas para envelopes digitais...................................... 31Distribuição de chaves DASS (DEC) .......................................................................... 41Distribuição de chaves de Denning-Sacco.................................................................. 42Distribuição de chaves Kerberos.................................................................................. 39Distribuição de chaves de Needham-Schroeder ........................................................ 38Distribuição de chaves de Neuman-Stubblebine ....................................................... 40Distribuição de chaves de Woo-Lam........................................................................... 42Distribuição interlock de chaves Rivest-Shamir......................................................... 43Envelope Digital ............................................................................................................. 25Exemplo de protocolo não computacional arbitrado................................................ 23Handshake para abertura de sessão TCP .................................................................. 141Login: autenticação mútua usando desafios................................................................ 37Login: autenticação usando hash com salt .................................................................. 36Login: autenticação usando hash.................................................................................. 35Login: autenticação usando senhas ocasionais ........................................................... 37Privacidade usando algoritmo assimétrico ................................................................ 142Privacidade usando algoritmo simétrico...................................................................... 25Secure Eletronic Transactions (SET)......................................................................... 157Selo temporal arbitrado.................................................................................................. 50Sistema criptográfico justo de Micali (key escrow) ........................................................ 53

Page 8: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendeviii

Índice alfabético de algoritmosA5 .................................................................................................................................... 100Algoritmo de Leeman para teste de Monte Carlo sobre primalidade ..................... 63Algoritmo probabilístico para geração de números primos extensos ..................... 64Blowfish............................................................................................................................ 90CAST .............................................................................................................................. 95Cifra de César .................................................................................................................. 15Cifra de Vigenère ............................................................................................................ 16Cript(1) ........................................................................................................................... 102Data Encription Standard (DES) ...................................................................................... 80Digital Signature Algorithm (DSA) ................................................................................. 129ElGamal ......................................................................................................................... 121Encadeamento Davies-Meier ...................................................................................... 111Exponenciação modular ................................................................................................ 61FEAL .............................................................................................................................. 95Filtro de pacotes básico................................................................................................ 146Gerador de sequência usando Linear Feedback register................................................. 71Gerador stop-and-go de sequência usando Linear Feedback registers ............................. 74Gosudarstvenyi Standard (GOST) ..................................................................................... 91International Data Encription Algorithm (IDEA) ............................................................. 89Khafre .............................................................................................................................. 88Khufu .............................................................................................................................. 88LOKI .............................................................................................................................. 95MDC-2............................................................................................................................ 111MDC-4............................................................................................................................ 112Message Digest 5 (MD5).................................................................................................. 105NewDES .......................................................................................................................... 87PKZip ............................................................................................................................ 101Rabin............................................................................................................................... 120RC2 ................................................................................................................................... 88RC4 ................................................................................................................................... 98RC5 ................................................................................................................................... 94Rivest, Shamir & Adleman (RSA) .............................................................................. 116SEAL ................................................................................................................................ 99Secure Hash Algorithm (SHA)......................................................................................... 107Skipjack............................................................................................................................. 95

Page 9: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendeix

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

IntroduçãoPedro Antonio Dourado de Rezende

No mundo hoje, somos levados a crer que podemos comprar soluções prontas – de preferência feitassob medida – para atender nossas necessidades. Mas a essência do que se busca nem sempre pode serencontrada na prateleira, embrulhada em pacote. Desejo iniciar essas notas com um comentário sobre anatureza da busca de segurança para a informática. Creio que a essência dessa busca não pode serencapsulada e apresentada em forma de algoritmo. Por isso, não posso me propor apresentar-lhesroteiros ou receitas para segurança na informática. Proponho, ao invés disso, ajudá-los a desenvolversensibilidade sobre como usar o conhecimento e as ferramentas até hoje acumulados, nessa busca. Paraexplicar minha crença sobre a natureza do assunto que iremos tratar, escolhi introduzi-lo pelas palavrasde um experiente criptólogo, Bruce Schneier, divulgadas em uma lista de discussão eletrônica emnovembro de 96 ([email protected]), cuja tradução transcrevo abaixo. Para guiar-nos emminha proposta, compilei nas sessões seguintes um resumo dos conceitos, técnicas e procedimentosmais eficazes hoje conhecidos para a construção de mecanismos criptográficos de proteção àinformação digital, e de meios para esses mecanismos se integrarem a sistemas que se quer proteger.

{©Na sessão 1 veremos os principais conceitos técnicos ou científicos relacionados com a construção efuncionamento de ferramentas para a proteção à informação – os serviços básicos de segurançacomputacional. Na sessão 2 abordaremos como mecanismos de proteção contra ameaças – osprotocolos – são concebidos, para tornarem viável o uso destas ferramentas. Na sessão 3 estudaremoso funcionamento dos mecanismos que tem se mostrado eficazes, ou seja, os principais protocoloscriptográficos de padrão aberto hoje em uso. Em seguida exploraremos na sessão 4 as formas como osserviços básicos são escolhidos e montados em protocolos específicos, para então examinarmos emmais detalhes, na sessão 5, as peças principais desses protocolos – os algoritmos criptográficos –inclusive quanto às formas mais elementares de se avaliar sua segurança. Detalhes de segurançaexternos aos protocolos que influem nas suas escolhas são abordados na sessão 6, e uma visão doestado atual da aplicação da criptografia, principalmente na internet, será oferecida na sessão 7.

Enquanto discorro sobre conceitos, protocolos e algoritmos criptográficos, buscarei situá-los, por meiode comentários, no cenário real, onde deve configurar-se claro o caráter global e integrador dosignificado da segurança na informática, de cuja compreensão evolui tal sensibilidade. Estas notasrepresentam portanto apenas um esforço para resumir descrições de conceitos, protocolos e algoritmos,não havendo a pretensão de faze-las passar por texto didático autônomo. Referências bibliográficasestão espalhadas ao longo das notas e devem ser buscadas por quem julgar necessária uma apresentaçãotextual mais discursiva do assunto. Espera-se do leitor algum conhecimento da aritmética modular(aritmética dos processadores digitais), do funcionamento básico de sistemas operacionais e das redesde computadores, e noções de complexidade de algoritmos.

Page 10: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendex

Porque a criptografia é mais difícil do que parece“Do correio eletrônico à telefonia celular, do acesso seguro a servidores WEB à moeda eletrônica, acriptografia é parte essencial dos sistemas de informação de hoje. A criptografia ajuda a imputarresponsabilidade, promover a justiça, prover acurácia e privacidade. Pode prevenir fraudes em comércioeletrônico e garantir a validade de transações financeiras. Usada apropriadamente, protege aanonimidade e fornece provas de identidade de pessoas. Pode impedir vândalos de alterarem sua páginana internet e competidores industriais de lerem seus documentos confidenciais. Com o comércioseguindo sua marcha pelas redes de computadores, a criptografia se tornará cada vez mais vital.

Mas a criptografia hoje existente no mercado não fornece a segurança que apregoa seu marketing. Amaioria desses sistemas são projetados e implementados não por criptógrafos, mas por engenheiros quepensam que a criptografia é como qualquer outra tecnologia de computadores. Não é. Você não podetornar 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 dosistema.

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 navitrine de software. Dois produtos de encriptação de correio eletrônico no mercado têm interface deusuário praticamente idênticas, enquanto um deles é seguro e o outro permite bisbilhotagem. Umatabela contendo comparações entre recursos pode sugerir que dois produtos tenham funcionalidadesimilar, embora um possa ter furos comprometedores de segurança e o outro não. Um criptógrafoexperiente 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, masnão vai durar. Muitos produtos inseguros ainda não foram quebrados porque ainda estão em suainfância, mas à medida em que se tornem mais e mais usados, tornar-se-ão alvos atraentes paracriminosos. A imprensa divulgará os ataques, minando a confiança do público nesses sistemas. Nofinal, 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á inventadotem sido alvo de fraudes, desde as balanças propositadamente descalibradas, o dinheiro falso, as faturasfrias, etc. O comércio eletrônico também sofrerá fraudes, personificação, bloqueio de serviço, efalsificações. Não se pode caminhar pelas ruas usando uma máscara que imita o rosto de outra pessoasem ser percebido, mas no mundo digital é muito fácil personificar outrem. Ocorre que ainformatização torna os riscos maiores ainda, permitindo ataques automatizados, impossíveis de seremconduzidos contra sistemas não automatizados. Um ladrão pode se sustentar retirando um centavo pormês de cada dono de cartão de crédito Visa. Apenas com a criptografia forte pode-se proteger taissistemas contra estes tipos de ataques.

Violações contra a privacidade constituem outro tipo de ataque. Alguns ataques contra a privacidadesão direcionados: alguém da imprensa pode tentar ler a correspondência eletrônica de uma figurapública, ou uma companhia pode tentar interceptar as comunicações de um competidor. Pode-setambém tentar ataques de colheita, buscando informações interessantes num mar de dados: viúvasricas, usuários de AZT, pessoas que visitam determinada página na internet, etc.

O vandalismo eletrônico é um problema cada vez mais sério. Já foram pichadas as páginas digitais daagência de serviço secreto dos EUA, enviadas cartas-bomba digitais a provedores da internet, ecancelados centenas de listas de discussão eletrônicas, além de ataques que bloqueiam o acesso acomputadores que se comunicam por meio de determinados protocolos. E como divulgado, ladrões evândalos rotineiramente invadem redes de computadores. Quando as salvaguardas de segurança não

Page 11: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendexi

são adequadas, os invasores correm poucos riscos de serem flagrados. Os atacantes não seguem regras,podendo atacar sistemas usando técnicas não antecipadas pelos projetistas e analistas de sistemas, comono exemplo de arrombadores que entram numa casa abrindo um buraco na parede, evitando osalarmes e trancas das portas e janelas.

Vândalos cibernéticos também abrem buracos em paredes de bits. Roubam dados técnicos, subornamagentes, modificam programas e mancomunam. Tiram vantagens de tecnologias mais avançadas que ados 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 eexaminar um sistema. O SecurID foi usado durante anos até que alguém olhou mais atentamentedentro de seu gerenciador de chaves: seus códigos binários ainda continham rótulos!. As chancesfavorecem os atacantes, que só precisa encontrar um ponto vulnerável no sistema, enquanto osdefensores precisam proteger seu sistema de toda vulnerabilidade possível.

O que a criptografia pode e não pode fazerA garantia de 100% de segurança é uma falácia, mas podemos trabalhar em direção a 100% de aceitaçãode riscos. Fraudes existem nas formas usuais de comércio: dinheiro pode ser falsificado, chequesadulterados ou roubados, números de cartão de crédito copiados. Mesmo assim esses sistemas aindatêm sucesso porque seus benefícios e conveniências compensam as perdas. Cofres, fechaduras ecortinas – mecanismos de privacidade – não são perfeitos mas com freqüê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. Umsistema criptográfico, não importa quão seguro, não irá impedir que alguém vasculhe seu lixo. Maspode perfeitamente prevenir ataques de colheita de dados: ninguém conseguirá vasculhar suficienteslatas 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 nossossistemas. A má notícia é que esta foi a parte mais fácil: implementações bem sucedidas requeremespecializaçã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 – freqüentementedesafiam análise. As disciplinas de infra-estrutura de chaves públicas, segurança do software, segurançade computadores, segurança de redes e projeto de hardware inviolável são também poucocompreendidas.

Companhias muitas vezes fazem mal a parte fácil e implementam algoritmos e protocolos inseguros.Mas mesmo assim, na prática raramente a criptografia é quebrada por causa, ou através, de suamatemá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 dado atenção a detalhes maiscomplexos e sutis sobre sua implementação. A segurança do browser Netscape 1.0 caiu devido a umafalha no seu gerador de números randômicos. As falhas podem estar em qualquer lugar: no modelo deameaças, no projeto do sistema, na implementação do software ou do hardware, ou na gerência dosistema. Segurança é uma cadeia, onde um único elo fraco pode quebrar todo o sistema. Bugs fatais àsegurança podem estar em partes do software distantes dos módulos que implementam serviços desegurança, e uma decisão de projeto que não tenha nada a ver com segurança poderá criar uma falha desegurança.

Page 12: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendexii

Uma vez encontrada uma falha de segurança, pode-se consertá-la. Mas encontrar as falhas, para iníciode conversa, pode ser extremamente difícil. Segurança é diferente de qualquer outro requisito deprojeto, porque nele funcionalidade não é igual a qualidade: se um editor de texto imprimecorretamente, sabe-se que a função de impressão funciona. Segurança é diferente: só porque um cofrereconhece a combinação correta para abri-lo, não significa que seu conteúdo está seguro contra umchaveiro ou arrombador. Nenhuma quantidade de testes beta revelará todas as falhas de segurança deum sistema, e não haverá nenhum teste possível que prove a ausência destas falhas.

Modelos de ameaçasUm bom projeto começa por um modelo de ameaças. O que o sistema está sendo concebido paraproteger, de quem e durante quanto tempo? O modelo de ameaças deve levar em consideração todo osistema, não apenas os dados que está sendo projetado para proteger, mas também e principalmente aspessoas que irão usá-lo e como irão usá-lo. O que motivará os atacantes? Que tipo de abusos podemser tolerados? Deve um tipo de ataque ser prevenido ou basta que seja detectado? Se o pior acontecer ealguma 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 osalgoritmos e protocolos. São diferentes para cada sistema, e com freqüência, projetistas não dedicamtempo 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 quaismedidas de segurança são necessárias: terá sentido encriptar todo seu disco rígido se você não guardaseus documentos de papel num cofre? Como pode alguém de dentro da companhia fraudar o sistemade 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 desejaprotegê-lo.

Projeto de sistemasO projeto de um sistema criptográfico seguro deve ser feito somente após o modelo de ameaças tersido compreendido. Este trabalho é o tema central da criptologia, e é muito especializado. Acriptografia mescla várias áreas da matemática: teoria dos números, teoria da complexidade, teoria dainformação, teoria da probabilidade, álgebra abstrata, análise formal, dentre outros. Poucos podemcontribuir 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 nadasubstitui a revisão extensiva feita por colegas e anos de análise. Sistemas de qualidade usam algoritmos eprotocolos publicados e bem compreendidos: usar elementos não provados em um projeto é nomínimo arriscado.

O projeto de sistemas criptográficos é também uma arte. O projetista precisa atingir um equilíbrio entresegurança e acessibilidade, anonimidade e responsabilização, privacidade e disponibilidade. A ciênciasozinha não garante segurança: somente a experiência e a intuição nascida da experiência podem guiar ocriptó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 quetenham 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.

Page 13: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendexiii

ImplementaçãoExiste uma distância enorme entre um algoritmo matemático e sua implementação concreta emhardware ou em software. Projetos de sistemas criptográficos são muito frágeis. Só porque umprotocolo é logicamente seguro, não significa que permanecerá seguro quando o implementadorcomeç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 discocompletamente inseguro. Uma interface de sincronização mal projetada pode deixar um furo numsistema para comunicações seguras. Confiança excessiva na inviolabilidade de hardware, tais como oschips de cartões selados, pode tornar inútil um sistema de comércio eletrônico. Como estes problemasnã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 vezesa fio, em muitos produtos diferentes. Usam geradores de seqüências randômicas ruins, não checamcondições de erro apropriadamente, e deixam informações secretas em arquivos de swap. Muitas destasfalhas 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 ooutro, numa corrida sem fim.

Procedimentos e GerênciaNo final da estória, muitos sistemas de segurança são quebrados por pessoas que os usam, e a maioriadas fraudes contra sistemas de comércio são praticadas por quem os opera. Usuários honestos tambémcausam 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 senhasfracas, 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 decarregar chaves. Sistemas bem projetados têm que levar em conta as pessoas, e as pessoas são oselementos mais difíceis de serem abstraídos 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 maisbarato projetar e implementar um bom sistema do que cobrir as perdas com um sistema inseguro. Amaior parte de seu custo está em fazer com que as pessoas o utilizem. Ë difícil convencer o consumidorsobre a importância de sua privacidade financeira, quando o mesmo está disposto a trocar umdetalhado registro de suas compras por um milésimo de uma viagem ao Havaí. Ë difícil construir umsistema de autenticação robusto sobre um outro sistema que permite ser penetrado por meio doconhecimento do nome de solteira da mãe de alguém. A segurança é rotineiramente ultrapassada porvendedores, 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ámeios de comparar dois sistemas. Revistas de computação comparam produtos de segurança listandoseus recursos e funcionalidade, e não avaliando sua segurança. Propagandas de produtos fazemasserções que simplesmente não se sustentam. Um produto mais robusto, isto é, melhor testado (eportanto mais caro), estará nestas condições em desvantagem para a comercialização. As pessoasconfiam no governo para zelar pela sua segurança e bem estar, em coisas para as quais não detémconhecimento 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.

Page 14: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezendexiv

Problemas no futuroQuando cai um avião, são abertos inquéritos, feitas análises e laudos técnicos. Informação sobre oacidente é amplamente divulgada, e muitos aprendem algo com o acidente. Pode-se obter dasautoridades, laudos sobre acidentes aéreos desde o início da história da aviação. Mas quando o sistemaeletrônico de transações financeiras de um banco é penetrado e fraudado, quase sempre o episódio éacobertado. Se alguma informação chega até os jornais, os detalhes são omitidos. Ninguém analisa oataque, e ninguém aprende nada com os erros. O banco tenta remendar o problema em segredo, naesperanç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 ataques bem sucedidos não ésuficiente. A informação move muito depressa. Uma falha em algum sistema, descrita na internet, podeser 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 dedados 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 emotivações crescentes para se subverter um sistema que está consolidado por longo uso. Não haverátempo para se fazer upgrades enquanto este estiver em uso.

A história tem nos ensinado: nunca subestime a quantidade de recursos em dinheiro, tempo e esforçoque alguém esteja disposto a gastar para subverter um sistema. Use sistemas de defesa ortogonais, comvárias maneiras de se fazer a mesma coisa. Autenticação segura pode significar assinaturas digitais pelousuário via teclado, SSL para proteger a transmissão, IPSec pelo firewall para o destino, junto compontos de auditoria múltiplos ao longo do caminho para gerar rastros e produzir evidências. A quebrade 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 a tecnologia poderão em breve fazer coisas que hoje ainda não podem. Dê a simesmo um margem de erro. Dê a si mesmo mais segurança do que hoje precisa. Quando o inesperadoacontecer, você estará contente por ter agido assim”. (Bruce Schneier)

Creio ser a busca de segurança para a informática semelhante à busca metafísica do homem pelosignificado da vida. Um movimento de impulso difuso entre o compreensível e o desejável, nohorizonte cambiante do possível. Terei atingido meu objetivo se ao final pudermos reconhecer ocontexto onde as ferramentas criptográficas podem ser úteis. Este contexto é formado pelas esferas deatitude, motivação e compreensão dos riscos por parte de quem usa a informática, para dela se obterconfiabilidade. Poderemos então conviver, e convencer outros da necessidade de convivência, com odilema que há na versão digital da segunda lei da termodinâmica, expressa pela equação de Nemeth

Segurança = 1 / Conveniência

A sabedoria de cada um será enriquecida na medida em que puder discernir a dose certa com que umaoutra força humana relacionada à segurança – a paranóia – pode contribuir ao delicado equilíbrio destalei.

Page 15: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende1

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

1. FundamentosPedro Antonio Dourado de Rezende

•••• Jurisdição da informação em meio eletrônico -

ClassificadaGovernos

Organizações militares

SensívelComércio, Indústria

ComunidadesInterna

Sistemas operacionaisBancos de dados

ExternaRedes de computadores

Telecomunicações

•••• Necessidades sociais surgidas na era da informática -1 - Padronização de mecanismos e protocolos nas áreas com interesse

comum em segurança de dados:

• Instituições financeiras...Transações eletrônicas.

• Corporações .........Gerência, Comércio eletrônico, etc.

• Telecomunicações Provimento de serviços.

• Comunidades........Internet, Redes proprietárias, etc.

• Governo................Administração, Militar, Espionagem, etc.

2 - Mudança na cultura da impunidade em crimes por computador:

(Estudo por Securicor Consult. Ltd, Londres, 1993)

• Crimes rastreados dentre ocorridos............ ~ 1% ;

• Crimes denunciados dentre rastreados....... ~15% ;

• Crimes denunciados com suspeito(s)......... ~61% ;

• Suspeitos julgados e condenados ............... ~ 3% ;

Crimes punidos com prisão.................................................... ~0,0003%

(habilidade do cracker, publicidade negativa, legislação omissa, etc.)

Page 16: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende2

Sistemas de segurança de dados

•••• Demanda básica de segurança em sistemas computacionais:

Tipo de proteção Ameaça básica AçãoPrivacidade ou sigilo Vazamento ou desvalorização (Read)

Integridade Fraude, adulteração ou perda (Write)

Legitimidade Acesso indevido à execução (eXec)

Disponibilidade Bloqueio indevido de serviço ¬¬¬¬ (eXec)

•••• Componentes principais de um sistema de segurança:

1 - Política de segurança de dados

• Planejamento - Avaliação e análise de riscos e custos.

• Especificação para implementação de salvaguardas e serviços.

• Atribuição documentada de autorizações e responsabilidades.

2 - Serviços básicos de segurança computacional

• Controle de acesso................... identificação e autorização.• Cifragem..................................codificação para sigilo.• Autenticação............................validação de origem ou integridade.

• Certificação .............................autenticação recursiva com verificação

aberta.

3 - Controle e Auditoria

• Monitoramento ..........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 segurança, etc.

Page 17: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende3

Ataques a sistemas computacionais

•••• Classificação hierárquica de ataques (Warwick Ford):

Subjacentes ���� Primários ���� Ameaças básicas

Por penetração Por Implantação

1 - Ataques primários por penetração -

• Personificação: .................... invasão no perímetro de login• Desvio de controle:..............exploração de falhas no sistema• Violação de autoridade:.......uso indevido de privilégios

2 - Ataques primários por implantação -

• Gancho: (backdoor).....uso de recurso não documentado• Infecção: ......................exploit, verme, vírus.• Embuste: ......................programa troiano, spoof

Ameaças:

AtaquesPrimários: Penetração Implantação

AtaquesSubjacentes:

Vazamento Fraude Bloqueio Uso indevido

Personificação,Desvio,

Violação.

Gancho,Virus, Spoof,Troiano, etc.

Escuta ativa,Refutação.

Sobrecargaintencional,

Fraude.

Quadro-resumo (Warwick Ford)

Escuta passiva,Análise de tráfego,Descuido, Grampo,

Varredura.

Furto de sessão,Replay,

Espelhamento,Fraude.

Page 18: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende4

Vulnerabilidades e pontos de ataque

•••• Ataques mais freqüentes a sistemas computacionais em 89-(em ~3000 casos; Computer Security Conference, ordem decrescente)

1º - Violação de autoridade:..........abuso de usuário legítimo.

2º - Personificação: .......................uso de senha vazada.

3º - Desvio de Controle:................hacking.

4º - Gancho ou Embuste: ..............mascaramento de funcionalidade.

5º - Grampo, Escuta, Varredura:...garimpagem no tráfego de dados.

•••• Meios externos de ataque (Counterintelligence DoD, 94) -

• via Internet: ............................................................ 80% dos casos

• outros meios: .......................................................... 20% dos casos

•••• Riscos de invasão de redes (NCSA, 95) -

• Redes de companhias conectadas à Internet: ......... 24% invadidas

• Redes privadas não conectadas à Internet:............. 3% invadidas

•••• Recursos que demandam proteção específica -

• Cabeamento

• Dispositivos de interconexão (gateways, routers, bridges, etc).

• Estações.

• Servidores (de autenticação, de terminais, de aplicativos, etc).

• Software de rede e aplicativos

• Arquivos de configuração e de Banco de Dados.

Page 19: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende5

Tipos de Ataque ao TCP/IP

•••• Hierarquia de serviços e protocolos hoje usados na Internet-

Camada NFSarquiv

PMAPportas

NIS

Aplic XDR

TEL-NETlogin

FTPtransf.

arquivo

SMTPe-mail

HTTPwww

Gopherdire-tório

DNSnome

domino

NTPsincro-nização

TFTPtransf.

arquivo

RIProtea-mento

RPC procedimento remoto

Transp TCP UDP

Rede IP

ISO 8802-2

Enlace Ethernet ISO8802-3

ISO8802-5

ISO9314

HDLC:ISO3309

LAP-B:ITUX.25

ITUQ.921/2

LAP-D:ITU

Q.921

SLIP PPP:rfc 1331

ATM:ITUI.361

CSMA/CDTokenRing FDDI

.8885 FrameRelay ISDN Assíncrona

.

•••• Riscos de segurança nos protocolos de enlace -

• Escuta passiva (sniffers) ............via interfaces em modo promíscuo

• Sobrecarga (denial of service) ....via escuta ativa (broadcast storm)

•••• Riscos de segurança nos protocolos de rede -

• Spoofing de endereço IP:....identificação falsa da origem do pacote

• Ataques ao ICMP: ..............uso malicioso de mensagens de controle do IP

(Redirect, Destination Unreachable,Source Quench, etc)

• Ataques de fragmentação: .subversão dos filtros de firewall em redes cuja

implementação TCP pode reconstruir pacotes fragmentados.

Page 20: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende6

•••• Riscos de segurança nos protocolos de rede (continua) -

• Ataques de roteamento (source routing): .... uso de opções do IP para

habilitar ataques de escuta ativa, espelhamento ou roubo de sessão.

•••• Riscos de segurança nos protocolos de transporte -

• Ataques de número sequencial:...simulação do handshake para abertura

de sessão TCP, conjugado ao spoofing de endereço IP.

• Spoofing de UDP: .........................simulação de datagramas para abertura

ou roubo de sessão (sequestro) em aplicativos que usam UDP e que não

implementam autenticação e criptografia .

•••• Riscos de segurança nos protocolos de aplicação -

• Ataques a login remoto: .escuta passiva de sessões TELNET ou "serviços

r-" vazam senhas que podem habilitar ataques de personificação

• Ataques ao DNS: .....................modificações fraudulentas de tabelas

in-addr.arpa, podem habilitar ataques via serviços remotos "r-".

• Ataques ao RIP ou EGP: roteadores com filtragem deficiente podem

sofrer spoofings que habilitam espelhamento e escuta ativa nas redes.

• Ataques via SMTP, HTTP: falta de autenticação habilita mensagens

forjadas. Extensões habilitam ataques por implantação contra cliente.

• FTP, TFTP: .....................configuração e filtragem seguras são complexas.

Protocolo usado em quase todo ataque externo via IP.

• NIS, NFS, NTP: ..............fraudes no NTP podem habilitar ataques de

replay na rede. Serviços baseados em RPC podem ser alvo de sniffers.

• X-Windows, Finger, Whois: aplicativos que facilitam outros ataques se

mal configurados ou indevidamente habilitados.

Page 21: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende7

Especificação de políticas de segurança

•••• Roteiro Típico de planejamento de segurança -

• Quais recursos devem ser protegidos?

• De quem e de que se quer proteger tais recursos?

• Qual a chance ou probabilidade de ameaças?

• Quão importante são os recursos?

• Quais medidas podem proteger ativos com custo/benefício aceitável?

• Quais planos de contingência e roteiros de reavaliação decorrem?

•••• Salvaguardas não computacionais -

1 - Segurança física: ................portas, fechaduras, controles, etc.

2 - Segurança funcional: ..........recrutamento e treinamento, motivação

3 - Segurança administrativa: ..auditoria, fiscalização, contingência

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

5 - Radiação ou engenharia reversa:blindagem no encapsulamento

6 - Controle de ciclos:..............reavaliação da política de segurança

•••• Serviços de segurança computacional são implementados através

de mecanismos que usam serviços básicos -

1 - Controle de acesso:.....................serviço básico para legitimidade.

2 - Cifragem:....................................serviço básico para sigilo.

3 - Autenticação:..............................serviço básico para integridade.

4 - Certificação: ...............................serviço integrador de segurança.

Page 22: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende8

Serviços básicos de segurança computacional

•••• Controle de acesso: (segurança interna)

Agente Objeto

usuário, programa, etc. mídia, dado, serviço, etc.

•••• Cifragem: (transferência de sigilo ou integridade)

Origem A Alvo B

•••• Autenticação: (confiança em sigilo para identificação)

Autenticador Verificador

•••• Certificação: (autenticação recursiva)

Autoridade Participante

certificado

públicoregistro

chave d

Processo

Funçãoencriptadora

Funçãoautenticadora

Funçãocertificadora

Função bloqueadora Recurso

Função decisória

senha/contra-senha

Chave de assinaturaChave de verificação

e(m) = c

token/ticket

m

identificaçãode origem

da transação

d(c) = d(e(m)) = mFunção

decriptadora

Funçãoverificadora

Funçãoverificadora

certificado

de origem

identificaçãoda transaçào

chave e

Texto pleno Texto pleno originalcriptograma

Page 23: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende9

Modelos de segurança interna

•••• Sistemas de controle de acesso discricionários -

Baseados no modelo de matriz de acesso de Lampson, vêem o sistema

como um conjunto de estados formados por sujeitos, objetos e autorizações.

As propriedades de segurança são definidas como transições de estado

permitidas. Inclui a abordagem do problema do armazenamento de

autorizações. (Lampson, B.: "Protection". Operating System Riview, Jan 1974 ).

•••• Sistemas de controle de acesso mandatórios -

Baseados no modelo de classificação sujeito-objeto de Bell e LaPadula,

vêem o sistema como um conjunto de estados onde as transições possíveis são

determinadas por axiomas e regras. Facilita a abordagem do problema do fluxo

seguro de informações. (Bell, D. & LaPadula, J.: Lampson: "Security Computer

Systems. Mathematical Foundation". MITRE Corp., Bedford, 1974

•••• Possíveis elementos em um modelo de segurança interna -

• Sujeitos: ........ agentes ativos do sistema computacional, que poderão

requerer acesso a objetos e que representam ameaças potenciais;

• Objetos:......... agentes passivos, contem informação a ser protegida;

• Modos de acesso: tipos de acesso que sujeitos podem exercer, causando

fluxo de informação entre objeto e sujeito ou vice-versa.

• Políticas: ....... regras para o estabelecimento de controle de acesso;

• Autorizações: conjuntos de acessos que o sujeito pode exercer;

• Direitos administrativos: privilégios p/ modificação de autorizações

• Axiomas:. propriedades da transição de estados embutidas no sistema

Page 24: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende10

Elementos de um modelo de segurança interna

•••• Modelos de segurança específicos (C.,F.,M.& S.: "Database Security") -

Modelos para bancos de dados podem exigir adequações, como para tratar

múltiplas instâncias de um objeto com distintos requisitos de proteção. Várias

extensões dos modelos básicos estão descritos na literatura

• Harrison-Ruzzo-Ullman: modelo de matriz dependente de contexto.

• Take-Grant: generaliza o modelo de matriz usando grafos, com enfoque

no controle da propagação de autorizações e privilégios;

• Wood et al.: orientado para a gerência do controle de acesso em BDs

multi-camadas que seguem a arquitetura ANSI/SPARC.

• Biba, Dion e outros: estendem o modelo mandatório para BDs

Quadro-resumo (Castano, Fugino, Martela, Samarati)

Processos

Controle de acesso(Função decisória)

Cotrole sobreoperações

administrativas

Autorizaçõese políticas

Axiomas

Administradores de segurançaSujeitos: Usuários

Acesso negado

Objetos:

Acessoautorizado

Acessoautorizado

Requisição para operação administrativaRequisição de acesso

Page 25: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende11

Controle de acesso

•••• Mecanismos para implementação de controle de acesso:

1 - Listas de controle de acesso: banco de dados associado a objetos do

sistema, descrevendo relações de acesso com sujeitos.

2 - Capacidades: ......................... banco de dados associado a objetos,

descrevendo as relações de outros objetos consigo.

3 - Rótulos de segurança: ..........atributo associado ao objeto que restringe

seu acesso segundo classificação de segurança.

•••• Funções do controle de acesso discricionário -

1 - Alocação de autorizações (critério de necessidade de conhecimento).

2 - Autorização e gerência de direitos administrativos (privilégios).

3 - Identificação e autenticação de agentes.

4 - Monitoramento de acesso.

5 - Prevenção contra acesso não autorizado.

•••• Mecanismos para identificação: (ordem crescente de segurança)

1 - O que o usuário sabe: .............senha, chave criptográfica, passphrase;

2 - O que o usuário possui: ..........cartão magnético, cartão inteligente,

token (elemento gerador de senhas ocasionais);

3 - O que o usuário “é” ................atributo biométrico inconfundível e

mensurável (impressão digital, padrão de retina, etc);

Page 26: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende12

Classificação de sistemas quanto a segurança

•••• “Arco-íris” (publicações do National Computer Security Center) -Definem

padrões de segurança computacional de sistemas para o Department of

Defense dos EUA (DoD):

1 - "Orange book" .........DoD 5200.28 STD,.

2 - "Red Book"...............NCSC-TG-005, interpreta o orange book no

contexto de redes de computadores.

•••• Trusted Computer Standards Evaluation Criteria:O orange book classifica sistemas em classes e níveis de segurança.

• Classe D - Untrusted

Nenhuma proteção para o hardware ou para o sistema operacional (Ex.

MS DOS, Win95, MacOS, etc)

• Nível C1 - Discrecionary Security Protection

Identifica usuários por login e senha, com permissões de acesso a recursos

e dados. Login único "root" para administração (Ex.Unix)

• Nível C2- Discrecionary Access Controls

C1 com controles adicionais: de acesso por níveis de autorização, de

auditoria, e de direitos administrativos. (Ex.Unix comerciais, WinNT)

• Nível B1- Labeled Security Protection

Objetos sob controle de acesso mandatório tem suas permissões pré-

codificadas no sistema. (Ex: AT&T V/LMS, UNISYS 1100, HP UX )

• Nível B2- Structured Protection

Todos os objetos acessáveis são rotulados para controle mandatório.

Modelo formal de segurança documentado (Ex: Honeywell Multics).

Page 27: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende13

•••• Trusted Computer Standards Evaluation Criteria (cont)

• Nível B3- Security Domains Level

Mecanismos de segurança devem ser modularmente testáveis. Controle e

gerenciamento de memória por hardware.

Mecanismo de restauração e canais de comunicação confiáveis.

• Classe A - Verified Design Level

B3 com especificação formal do projeto de software e consistência do

modelo de segurança formalmente verificável. Controle na fabricação e

transporte do hardware (Ex: Honeywell SCOMP)

•••• O nível de segurança C2 -

Esta classe, que se tornou critério aceitável para padrão de segurança na

maioria das aplicações comerciais, tem como característica principal as

seguintes propriedades:

1 - Domínio: ..........................sistema operacional auto-protegido através de

compartimentação de memória.

2 - Kernel do sistema: ..........protegido contra adulterações em disco.

3 - Política de segurança: ....parâmetros configuráveis dos níveis de

segurança, globalmente aplicáveis no controle de acesso.

4 - Controle de acesso: .........implementa listas de permissões, com registro

configurável de acessos em arquivo de log

5 - Autenticação: ..................com granularidade a nível de objeto, por

módulo protegido, com suas operações rastreáveis via log .

6 - Log: ................................acesso restrito a níveis de administração e

protegido de adulterações em disco.

Page 28: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende14

Cifras para sigilo

•••• Criptografia + Criptoanálise = Criptologia

1- Cifra: é uma coleção E de funções inversíveis e: M → C, onde pares (e,e-

1), e ∈ E são indexados por pares de chaves (e, d) ∈ K, (K=espaço de

chaves, M = mensagens e C = criptogramas) e onde

•••• E é grande, M* contém todos os textos de uma linguagem;

•••• ∀ m∈ M,∀ e∈ E[e-1(e(m))= m onde c = e(m) despista m ]

(c esconde o conteúdo linguístico veiculado em m);

2- Algoritmo criptográfico: implementação de um serviço básico por meio de

máquina ou programa. Ex: uma cifra executa encriptação [dado (e,m)

calcula e(m)] ou decriptação [dado (d,c) calcula e-1(c)]

3- Criptografia: é a arte de construir algoritmos criptográficos seguros.

4- Criptoanálise: é a arte de atacar e quebrar algoritmos criptográficos.

•••• Classificação de algoritmos criptográficos quanto às premissas

sobre sigilo -

1 - Restrito: Algoritmo não divulgado. Segurança da cifra deriva da

ocultação do algoritmo e das chaves.

2 - Simétrico (cifra de chave secreta): Algoritmo descrito por f:K×M→C

onde f é divulgado e d = e ou facilmente derivável (notação: e=k)

Segurança da cifra deriva de propriedades de f e ocultação de k.

3 - Assimétrico (cifra de chave pública): Algoritmo descrito por f:K×M→C

onde f, e são divulgados e d = g(e). Segurança da cifra deriva de

propriedades de f, g e ocultação de d.

Page 29: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende15

Criptografia Pré-computacional

•••• Cifras de substituição -

1 - Monoalfabética: ......M=Σ= alfabeto da linguagem [Σ = { ,A,B,...,Z}].

Ex: rotação de k posições em Σ. (cifra do imperador César)

2 - Homofônica:............monoalfabética contendo escolhas.

(parecida com códigos de recuperação de erros)

3 - Poligrâmica: ............M=C=Σ n onde Σ é o alfabeto da linguagem.

Ex.: código de compactação de Huffman, onde Σ = ASCII.

4 - Polialfabética: .........composta por n substituições monoalfabéticas, onde

n é chamado período da cifra. Usadas a partir de 1538.

Ex: Caso especial da cifra de Vigenère onde M=C=K=Σ n , f=⊕

(f = soma bit a bit módulo 2 = “ou” exclusivo = XOR).

5 - One-time pad: .........polialfabética onde n é limite para o tamanho das

mensagens m, e cada chave k é usada apenas uma vez.

•••• Cifras de transposição (usadas na 1ª guerra mundial) -

M=C=Σ n ; E ⊆⊆⊆⊆ σσσσ(Σ n): cifra onde a encriptação e é uma permutação de n

caracteres de m, e d sua inversa.

•••• Cifras calculadas com rotores eletromecânicos -(Usadas de 1920 até o final da 2ª guerra mundial)

Máquinas inspiradas no odômetro, implementam substituições

polialfabéticas de períodos extremamente longos.

Page 30: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende16

Exemplo de um algoritmo criptográfico

•••• Implementação em C da cifra de Vigenère onde

f(k,m) = k XOR m

/* uso:cripto chave arquivo_entrada arquivo_saida */

void main (int argc, char *argv[])

{

FILE *entrada, *saida;

char *key;

int c;

/*programa*/

if ((key = argv[1]) && *key!=’\0’) {

if ((entrada = fopen(argv[2],”rb”))!=NULL) {

if ((saida = fopen(argv[3],”wb”))!=NULL) {

while((c = getc(entrada))!=EOF) {

if (!*key) key = argv[1];

c ^= *(key++); /*XOR*/

putc(c,saida);

}

fclose(saida);

}

fclose(entrada);

}

}

}

Considerada segura até 1920, quando foi descoberto método de ataque

estatísticobaseado na frequência de coincidências em deslocamentos sucessivos.

Page 31: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende17

Segurança de Algoritmos Criptográficos

•••• Ameaças da Criptoanálise:Neutralização do despiste lingüístico ou da ocultação de chaves que

constituem a segurança de uma cifra.

•••• Tipos de ataques a cifras (em ordem cresceste de severidade) -

1 - Criptograma conhecido: acesso a instâncias e(mi) [i = 1,2,3...]

2 - Texto pleno conhecido: ..acesso a instâncias de pares mi, e(mi)

3 - Texto pleno escolhido:....acesso a escolhas de mi em e(mi)

4 - Texto pleno adaptativo: .escolhas iterativas de mi em e(mi)

5 - Chave comparada:..........acesso a instâncias mi, e1(mi), e2(mi),...

6 - Chave comprometida: ....suborno, extorsão, roubo, vazamento de d.

•••• Tipos de ameaça a algoritmos criptográficos -(em ordem crescente de severidade)

1 - Dedução de informação: ..analista ganha informação sobre bits de uma

chave, formato ou estatística de um texto encriptado.

2 - Dedução local: ...................analista descobre o texto pleno de um

criptograma c interceptado.

3 - Dedução global: ................analista descobre algoritmo alternativo que

calcula e-1(c), sem conhecimento de d.

4 - Quebra total: .....................analista descobre método eficiente para obter

as chaves de decriptação d

Page 32: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende18

Teoria da informação

•••• Estruturas de linguagens naturais num alfabeto ΣΣΣΣ:

Código: ................representação de um subconjunto de SemL.

Cifra:....................representação de um superconjunto de LexL.

•••• Entropia (incerteza) lingüística - (Shannon, 1949)

Definições de "Medida de informação" H(m):

1 - Dada uma mensagem m ∈ Σ*, H(m) = mínimo de bits necessários para

distinguir os possíveis significados na sintaxe de m em L.

2 - Medida logarítmica ponderada do inverso da probabilidade dos possíveis

conteúdos de m: (si = significado possível de m).

H(m) = − p(s ) log p(s )( )iii

j 11=�

LexL = LéxicaCadeias de palavras de L

SinL = SintáticaSubconjunto de LexL

Σ* = sequências deletras do alfabeto Σ

SemL = SemânticaRelação de

equivalência em SinL

L

Contexto damensagem

Mensagem m

H(m)

Árvore de derivaçãoSintática de L

Conteúdosemântico de m

Exemplo:H("sexta-feira") =log2(7)

Page 33: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende19

Entropia em Criptoanálise

•••• Taxa r de uma linguagem natural:

r = H(m)/|m|

Razão média entre entropia e comprimento de sentenças m na linguagem.

•••• Redundância DL de uma linguagem L:

DL = log2( |Σ| )-rL

A redundância relativa dL = DL/log2(|Σ|) é proporcional ao desvio

padrão na distribuição de freqüência de letras em sentenças, e à densidade de

sentenças de L em Σ*.

•••• Estimativas de taxa e redundância da lingua inglesa (Schneier)

rENG ≅ 1.3 bits / letra [Σ = { ,A,B,...,Z}]

DENG ≅ 3.4 bits / letra [ Σ = { ,A,B,...,Z}]; 6.7 bits / caracter [ Σ = ASCII]

•••• Distância de Unicidade UK de um sistema criptográfico

O quantidade de possíveis significados de um criptograma gerado por uma

chave de K e uma mensagem de comprimento n é dado pela formula

2(H(K)- dLn)+1.

UK é o valor estimado para n aproximar de 1 esta quantidade:

UK = H(K)/dL

Cifragens de comprimento menor que UK não podem ser deduzidas.

Page 34: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende20

Distribuição de freqüência de letras

Frequências do Português (arquivo genérico de 64KB)

00,020,040,060,080,1

0,120,140,160,18

a 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

00,020,040,060,080,1

0,120,140,160,18

ascii32

E S R D M U L G B H J K Y

frequência do inglês

00,020,040,060,080,1

0,120,140,160,18

ascii32

T I O R D U F W P G K J Z

Page 35: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende21

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

2. Elementos de ProtocolosPedro Antonio Dourado de Rezende

•••• O que é um Protocolo?É um algoritmo distribuído, onde a execução dos passos é alternada entre dois

ou mais agentes executores.

•••• Premissas implícitas em um protocolo:

0 - Há um propósito especificado que motiva a execução do protocolo;1 - Os agentes envolvidos devem conhecer completamente o protocolo,2 - e devem também concordar em seguir (executar) o protocolo;3 - O protocolo deve ser isento de ambigüidades, sem margem para mal

entendidos, e4 - completo, com uma ação especificada para cada situação possível;

Algoritmo

Seqüência de passos do agente executor

Protocolo com 2 agentes

Agente A Agente B

Especificação:

3-DETERMINANTE

Agentes: 1-COMPLETOS

2-DETERMINADOS

4-FECHADAPropósito

Premissas do protocolo

INÍCIO INÍCIO

FIM FIM

Tempo

Page 36: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende22

Protocolos em modelos de segurança externa

•••• Especificação de protocolo:

Uma especificação abstrai o processo, que consuma o propósito do

protocolo, dos mecanismos pelos quais este propósito é consumado.

(descrição do protocolo em nível independe de implementações)

•••• Protocolos criptográficos -São protocolos que se servem da criptografia, e cujo propósito envolve o

conceito de confiança, visando atingir um ou mais dos seguintes objetivos:

1 - Transferir sigilo ou verificar integridade: ...... relativo ao propósito.

2 - Prevenir vazamentos: ..................................... relativo à execução.

3 - Prevenir ou detectar trapaças e desavenças: .. relativo aos agentes.

4 - Prevenir inferências ou conluios: ................... relativo às premissas.

•••• Alocação de 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)

1 - Protocolo arbitrado: .............usa agente auxiliar para prevenção,

durante a execução, de trapaça entre agentes principais.

2 - Protocolo ajuizável:...............usa agente auxiliar para detecção, após

sua execução, de trapaça entre agentes principais.

3 - Protocolo auto-verificável: ...na sua construção já há eliminação das

possibilidades de trapaças e desavenças na execução.

Page 37: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende23

Transferência de confiança através de protocolos

•••• Resolução de impasses -Quando não possibilita a um agente deduzir, ao longo da execução, a lisura dos

outros participantes, um agente auxiliar cumpre, no protocolo, papel

semelhante a alguma instituição de fé pública (cartório, tribunal, etc.)

1 - Arbitragem:.............decisões quanto à lisura dos agentes principais em

transações não confiáveis, aceitas por estes como condição de

continuidade na execução do protocolo arbitrado.

2 - Mediação: ................julgamentos de disputas que possam surgir após a

execução do protocolo ajuizável, baseados em evidências invioláveis

e irrefutáveis produzidas na execução.

•••• Exemplo de protocolo não computacional arbitrado -

Comprador A Vendedor B1- Proposta

2- Resposta

Árbitro(Agência)

Detran Banco

Compra de Automóvel

8- Veículo,Novo DUT

3- Cheque 3- Veículo, DUT

4- DUT, Vistoria

6- Novo DUT

5- Deposito cheque

7-Crédito

8- Transferência docrédito menos taxa

Page 38: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende24

Protocolos criptográficos

•••• Dificuldades na implementação de arbitragem em protocolos

criptográficos -

1 - Impessoalidade:........programas-árbitro executando em algum ponto na

rede dificilmente inspiram a confiança necessária.

2 - Custo: ......................à rede de computadores recai o custo de criação e

manutenção de um serviço de arbitragem.

3 - Tempo de execução........a arbitragem consome tempo considerável, um

fator crucial para sistemas computacionais.

4 - Gargalo ...........................a arbitragem trata toda transação, formando

grandes gargalos em implementações de larga escala.

5 - Vulnerabilidade ......................ponto fraco para ataques ao sistema

computacional onde é implementado.

•••• Dificuldades na mediação em protocolos criptográficos -

Em menor escala, os itens 1, 2 e 5 descritos acima.

•••• Dificuldades na construção de auto-verificação em protocolos

criptográficos -

1 - Natureza do problema: ...........nem todos os problemas de segurança tem

solução em protocolos auto-verificáveis.

2 - Análise exaustiva: ............a auto-verifição só existe enquanto formas de

ataque ao protocolo forem desconhecidas.

Page 39: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende25

Estrutura básica de protocolos criptográficos

•••• Sigilo na comunicação em rede -

Premissas e problemas do protocolo I:

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

b - As chaves devem ser distribuídas em segredo.

c - A privacidade da comunicação requer muitas chaves, com uma

chave individual para cada par de agentes. [n2-n pares]

d - 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.

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

Agente A Agente B6: criptograma c' = k(m’)

4: criptograma c = k(m)

Gerenciador dechaves

I: privacidade e controle de acesso usando algoritmo simétrico

2: Solicitachave (A,B)

3: Chave k 3: Chave k

2: Solicitachave (A,B)

1: Escolhe algoritmo

(Comunicação via canal seguro)

7: decripta m’= k(c’) 5: decripta m= k(c)

Page 40: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende26

•••• Sigilo com uso de chave pública -

• Premissas e problemas do protocolo II:

a - Transforma confiança na integridade da origem de EA em sigilo.

b - O protocolo é vulnerável a ataques de texto pleno escolhido (M

pequeno), e a ataques por spoofing, espelhamento e replay.

c - Dentre os algoritmos criptográficos robustos conhecidos, os

assimétricos são mais lentos 103 a 104 vezes que os simétricos.

•••• Envelope Digital: protocolo híbrido para solução de I.b e II.c -

0: Escolhe algoritmo assimétrico

1: Escolha de algoritmos para I e II

Banco dechaves

II: protocolo para privacidade usando algoritmo assimétrico

2: cadastra chavepública EA

3:lê Chave EB 3: lê Chave EA

2: cadastra chavepública EB

Agente A Agente B4: criptograma EB (m)

6: criptograma EA (m’)1: Gera par DA , EA

7: decripta m’= DA (EA (m’))1: Gera par DB , EB5: decripta m= DB (EB (m))

Agente A Agente B 3: Envelope = criptogramas dechave de sessão + mensagem

EB(k), k(m)2: lê EB, gera k;encripta k e m

4: k= DB (EB (k))m= k(k(m))

III: Envelope digital

Page 41: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende27

Assinaturas digitais para autenticação

•••• Premissas implícitas no conceito ideal de assinatura -

0 - Autenticidade:.............confiança do verificador na intenção do autor

da assinatura, de identificar-se e de vincular-se ao conteúdo

informativo da mensagem que assinou.

1 - Inforjabilidade:...........confiança do verificador na impossibilidade de

falsificação. (i.e, de personificação da autoria da assinatura)

2 - Inviolabilidade ................confiança do verificador na integridade do

conteúdo informativo vinculado ao autor da assinatura.

3 - Irrecuperabilidade ...........confiança do verificador na impossibilidade

de reuso da assinatura. (de transferência da autenticação)

4 - Irrefutabilidade ..........confiança do verificador na impossibilidade de

negação, pelo assinante, da autoria da assinatura.

•••• Autenticação usando sistemas de chave pública:

1: Escolha de algoritmo assimétrico

Funções:

3-VÍNCULO

Objetos: 1-AUTOR

4-PROVAAutenticação

2-CONTEUDO Premissas da Assinatura

Agente A Agente B5: mensagem assinada: m,s

2: Gera EA, DA;4: gera m; calcula s = DA(m)

6: Identifica A em mverifica se m =? EA (s)

IV: protocolo auto-verificável de assinatura digital

s = Assinatura digitalde A sobre m = DA(m)

3: Publica A,EA;

Page 42: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende28

•••• Autenticação usando sistemas de chave secreta -

•••• Sigilo e autenticação usando chaves públicas:

Premissas e problemas do protocolo VI:

II.a,b,c, com II.c agravado. Não alcança totalmente a irrefutabilidade.

1:Escolha de Árbitro e algoritmo simétricoAgente Aencripta m

Agente B decripta c

Árbitro Jautentica A, m

2: Solicita chave (A,J)

3: Chave kA

2: Solicita chave (B,J)

(Canal seguro)

6: m, s = kB (c)

4: kA(m)

V: protocolo arbitrado de “assinatura” digital

3: Chave kB

5: c = kB (m,s)

r = "comprovante" de data eorigem de m;

s = r, kA(m) = assinatura

1: Escolha de algoritmo assimétrico

Agente A assina Agente B verifica

5: A,c

3: Pubica B,EB ; Publica A,EA

2: Gera EA, DA;publica EA;

4: gera m, calculas = DA(m); c = EB (m,s) 6: m, s = DB (c); m =? EA(s)

2: Gera EB, DB; publica EB.

VI: cifragem de mensagem assinada

Arbitragem:B solicita a J verificar se

s = r, kA(m)

Page 43: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende29

Funções Unidirecionais (one-way functions)

•••• DefiniçãoConceito subjetivo, referente a funções matemáticas para as quais é fácil

(rápido) calcular a imagem de um argumento, e difícil (muito caro, demorado)

calcular um argumento (pré-imagem) a partir de um valor de imagem.

•••• Função unidirecional com segredo (trapdoor)

É uma função unidirecional, para a qual existe alguma informação acerca da

imagem que torna fácil o cálculo de sua inversa (elemento central na

criptografia assimétrica).

•••• Função de mistura (Hash) -

- Sinônimos: .....................Digest; Fingerprint; Checksum criptográfico;

Cheque de integridade, Código de detecção de violação, etc.

- Definição:.......................É uma função unidirecional com imagens de

tamanho fixo e argumentos de tamanho variável.

- Código de autenticação de mensagem (MAC): Quando o hash é usado

com argumentos formados por concatenação de uma mensagem e uma

senha. Neste caso, somente um portador da senha poderá verificar a

integridade da mensagem associada ( m,h(m,k) )

- Hash Livre de colisão: ..Caso seja difícil calcular uma pré-imagem a

partir de outro argumento da mesma imagem da função de hash.

m ch(m) fácil

h-1(c) difícil

One-way function

m ch(m’)=h(m) difícil

m’h-1(c) h

Hash livre de colisão

Argumento→ ←Imagem

Page 44: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende30

Mecanismos de autenticação

• Checksum, CRC (Check redundancy code):

Destinado a validar dados contra erros involuntários de transmissão.

Não serve para autenticação em canais sujeitos a escuta ativa ou adulteração.

• Hash, Checksum criptográfico, digest, fingerprint:

Função unidirecional h( ) com imagem de tamanho fixo, usada em

protocolos de autenticação cujos propósitos incluem a inviolabilidade e a

prevenção contra transferência forjada de autenticação (irrecuperabilidade).

Esses protocolos geralmente associam uma mensagem a um MAC;

MAC: mensagem → m, h(m,k) ← autenticação da mensagem

ou uma mensagem a uma assinatura digital da imagem do hash.

mensagem → m, DA(h(m),..) ← autenticação da mensagem

• MAC (Message authentication code):

Usado em protocolos de autenticação cujas premissas restrigem a

capacidade de verificação da integridade de uma mensagem, ao possuidor de

um segredo usado para gerar a autenticação (verificação retrita).

• Assinatura digital:

Usado em protocolos de autenticação cujas premissas não restrigem a

capacidade de verificação da integridade de uma mensagem (verificação aberta).

Não são totalmente irrefutáveis, pois o assinante pode subverter o protocolo

alegando vazamento de sua chave privada ou quebra do algoritmo.

Page 45: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende31

•••• Prevenção contra ataque de replay II.b e gargalo VI.c:

•••• Prevenção contra personificação em II.b e III.b

5: A,c

1: Acordo sobre uso do protocolo

Agente A assina Agente B verifica 3: Publica B,EB ; Publica A,EA

2: Gera EA, DA;4: gera m, calcula digesto h(m),

data, assina e encriptac = EB( m,DA( h(m),t) ) )

2: Gera EB, DB;

6: m,s = DB(c);7: h(m),t =? EA(s)

VII: assinatura sobre digesto e selo temporal digitais

t = selo temporal; h( ) = função hash; DA( h(m),t) = assinatura

Certificadorade chaves S

VIII: distribuição de chaves certificadas (esboço do SSL):

2: A Cadastra chavepública EA;Recebe ES

3’: cB= B,EB,DS (B,EB)

4: Solicita EB 4’: Solicita EA

2: B Cadastra chavepública EB;Recebe ES

1: Escolhe autenticador de chaves S

A gera (DA, EA ) B gera (DB, EB )

7: EB (k)

7’: EA (k’)8’: k’ = DA EA (k’)) 8: k = DB (EB (k))

3: cA= A,EA DS(A,EA)

6: verifica B,EB =? ES (cB);gera k.

6’: verifica A,EA =? ES (cA) ;gera k’.

(confiança na integridadeda origem e conteúdo)

EB (k) Envelope digitalk, = chave de sessão

↓↓↓↓ Chaves públicas certificadas↓↓↓↓

5: cA 5’: cB

Page 46: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende32

Vulnerabilidade decorrente da ausência de segredo

compartilhado durante a autenticação

•••• Resumo do problema da distribuição de chaves criptográficas

a - Espelhamento nos protocolos I e V pode ser feito por personificação do

gerenciador de chaves, e em II, III, IV, VI e VII por escuta ativa. A

segurança dos protocolos que usam chaves públicas depende portanto da

autenticação destas chaves.

b - No protocolo VIII, o intruso precisa antes atacar S falsificando as chaves

de A e B, ou fazer spoofing do servidor de chaves, forjando ES para

habilitar o espelhamento de conexões entre A e B.

c - Um certificado digital é um documento eletrônico assinado por agente

confiável, cujo propósito é transferir confiança na autenticidade, por ele

verificada, de um dado ali contido. (Ex.: chaves públicas em VIII.4)

para B finge ser A

(Conexão nãoautenticada)

para A finge ser B

Ataque por espelhamento em II.b, VI.b:

3: escuta chavepública EA

4: Falsifica chave E“B” (= EX)

3: escuta chavepública EB

1: Escolhe algoritmo, solicita chave pública

Agente A vaza m1 Agente B vaza m22: X intercepta troca de

chaves públicas

4: Falsifica chave E“A” (= EX)

5: EX(m1)

7: EB (“m1”)

6: m1 = DX (EX (m1)) 9: m2 = DX (EX (m2))

8: EX (m2)

10: EA(“m2”)

[ “ ” = perda de integridade]

Intruso X oculto

Page 47: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende33

Seqüências randômicas

•••• ConceitoSe existisse, uma definição formal de randomicidade ou aleatoriedade

seria paradoxal. A ocorrência ou não do conceito na natureza é uma discussão

de escopo filosófico, mas que produz uma lista de propriedades necessárias ao

ser aleatório. Algumas dessas propriedades são mensuráveis (entropia

máxima), enquanto outras não (i.e., irreprodutibilidade).

•••• Seqüências pseudo-randômicas (B. Schneier)

Seqüências binárias que possuem as propriedades de aleatoriedade

mensuráveis conhecidas. São usadas na criptografia, geralmente onde um

protocolo requer um sigilo inicial, e suas principais propriedades são:

• Distribuição plana:...satisfaz medidas estatíscas de aleatoriedade,

incluindo os modelos de Markov de qualquer ordem.

Subcadeia daseqüência de bits

Probabilidadede ocorrência

0, 1 1/2

00, 11 1/4

000, 111 1/8

0000, 1111 1/16

0..00, 1..11 1/2n

• Entropia máxima:.....a seqüência não deve ser comprimível. (exceto à

sua semente, por seu gerador pseudo-randômico, se há)

• Aperiodicidade: ........relativavemte ao tamanho do segmento da

seqüência a ser usado, não deve conter período (repetição)

Page 48: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende34

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

3. Protocolos ImportantesPedro Antonio Dourado de Rezende

•••• Necessidade de protocolos criptográficos

Os quatro serviços básicos de segurança computacional são capazesapenas de transformar características elementares de segurança - em operaçõesenvolvendo confiança - mas não de criá-las a partir do nada:

Controle de acesso ....transforma premissa de posse de segredo ou objetoirrefutável por um agente em verificação de sua identidade.

Cifragem....................transfere e amplifica o sigilo de uma chavecriptográfica para o sigilo da informação em uma mensagem.

Autenticação .............transforma um sigilo em verificação de algum tipode integridade (de origem e/ou de conteúdo).

Certificação ...............transforma um sigilo em autenticação recursiva,com verificação aberta por meio de objeto irrefutável.

Os protocolos criptográficos buscam construir, a partir de seus elementose da capacidade transformadora dos serviços básicos, o tipo de funcionalidadede segurança exigida de um componente do sistema a proteger

•••• Autenticação para controle de acesso e auditoria

Protocolo básico para segurança na informática que requer, para atingirgrau mínimo de confiabilidade, construção distinta nos casos de acesso local(via terminal) ou acesso remoto (via rede). Normalmente são chamados de

Login ................................autenticação para acesso local;Distribuição de chaves ...autenticação para acesso em rede fechada.

Public Key Infrastructure autenticação para acesso em rede aberta.

Page 49: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende35

Login

•••• Autenticação de usuário por senha:

Agente A Recurso

•••• Premissas e problemas do login -

a - Os passos IX.1, IX.2 , IX.3 e o arquivo de senhas devem ser

protegidos. A função de hash escolhida deve ser livre de colisão.

b - Em geral, o passo IX.1 é o elo mais fraco de qualquer sistema de

segurança, principalmente se usado em rede ou sistema distribuído.

Os passos IX.2 e IX.3 são também vulneráveis à escuta passiva.

c - Ataques de personificação podem seguir do vazamento do arquivo de

senhas, após estas sofrerem ataque por texto pleno escolhido, já que

K é “pequeno” (Ataque por dicionário).

d - Um dicionário com 100 000 a 1 000 000 senhas das mais usadas,

quebra cerca de 30% das contas de um sistema. Sem política de

senhas, este índice de quebra pode chegar a 70%.

Cálculo do hash h(k) 4: If True

Arquivo de senhas

A, senha k Sessão a A

A,h(k) no arquivo?

1: A,k

2: A,h(k)

(Sistema protegido)

IX: Autenticação usando hash

3: T/F

Page 50: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende36

•••• Dificultando o ataque por dicionário (IX.c):

Agente A Recurso

•••• Premissas e problemas do protocolo X:

a - O salt sA funciona como uma chave de sessão para autenticação

(MAC) da senha k. Muitos S.O. unix usam 12 bits de salt.

b - O papel do salt, válido para apenas uma sessão, é dificultar (nem

evitar nem prevenir) o ataque por dicionário, aumentando a entropia

de K. No Unix, a senha pode ser armazenada num arquivo shadow

password, para dificultar o acesso aos hashes das senhas.

c - A ataque por dicionário a uma conta terá que testar valores para

salt+senha, a menos que também o arquivo shadow password seja

vazado e sua indexação inferida.

d - Em implementações de ambiente de rede, pode-se proteger o passo

IX.1 substituindo-o por uma troca de mensagens, onde o agente é

desafiado a provar a posse de uma senha ocasional, gerada por um

mesmo algoritmo em ambas extremidades.

1: A,k Cálculo hash h(k, ) 6: If True

Arquivo de senhas

A, senha k Sessão a A

A,sA,h(k,sA) no arquivo?

3: sA salt de A

(Sistema protegido)if True:

5: s←←←←Rand( )novo salt de A

X: Autenticação usando hash com salt

4: h(k,sA)2: A

5: True,s / False

Rand( ):Gerador de númerospseudo-randômicos

6: h(k,s) novo hash de A

Page 51: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende37

•••• Prevenindo ataques por replay: (IX.a, X.d)

Agente A Recurso

•••• Neutralizando escuta e replay (IX.b,d) com chave pública:

•••• Desafio:

Uma sequência randômica de bits (nounce) que percorre um circuito sob

diferentes cifragens, ou sob uma cifragem e diferentes transformações, com

o propósito de verificar a posse de chaves nos pontos onde passa.

Cálculo do hash h(k) 4: If True

Arquivo de senhas

A, senha kk = hn (r)

Sessão a A ;n ←←←← n+1

A,h(k) no arquivo?

1: A,k

2: A,h(k)

XI: Autenticação usando senha ocasional (S/key)

3: T/F

(Sistema protegido)if True:

5: h(k) ←←←← h( h(k))r = númerorandômico

0:A cadastra chave pública EA, recebe ES

4: S, cSAgente A Recurso S

2: A, cA

1: rA←←←←Rand( );.cA = DA(rA).

5: rS = ES(cS)9: rA,rS =? ES(mS).

3: rS←←←←Rand( );cS = DS(rS)

7: rA = E A(cA).rA,rS =? EA(mA).

XII: Autenticação mútua usando desafios

Rand( ) = gerador denúmeros randômicos.

8: Se 7 então mS = DS(rA, rS)

10: Se 9 então DA( h(rA, rS))

6: mA = DA(rA, rS).

Page 52: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende38

Autenticação e Distribuição de chaves usando sistemas

criptográficos simétricos

•••• Um protocolo pioneiro:

•••• Detalhe:

Esta versão é uma revisão do protocolo original de Needham-Schroeder,

que não incluía rA, rB no criptograma do passo 8, o que possibilitava

ataques de replay com chaves de sessão comprometidas. Esta revisão foi

publicada simultaneamente com a descrição de outro protocolo

semelhante, conhecido como protocolo de Otway-Rees.

Servidorde chaves S

XIII: Needham & Schroeder

2: Cadastra erecebe chavesecreta kA

8: kA (k, rA), kB (k, rB)

7: Decripta kA(cA), kB(cB);verifica i,A,B em ambos,

extrai rA,rB e gera chave k.

2: Cadastra erecebe chave

secreta kB

1: Escolhem autenticador de chaves S

Agente A Agente B4: i,A,B, cA

10: Se 9 então kB (k, rB)

9: Decripta parte de 8;extrai k,rA e verifica rA

11: Decripta 10; extrai k,rB e verifica rB

6: i,A,B, cA, cB

3: Gera índice i,número randômico rA;cA = kA( rA,i,A,B )

5: Gera número randômicorB;

cB = kB( rB,i,A,B )

(Canal seguro)

k = chave de sessão

12: Se 11 então a chave desessão está confirmada

Page 53: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende39

•••• Variante de XIII proposta por grupo do MIT:

•••• Detalhes:

{ Este protocolo não requer geração de números randômicos nos terminais

dos agentes (nounces), mas requer sincronização dos relógios desses

terminais com o do servidor de chaves S e ajuste de retardo na transmissão

de mensagens - específico de cada implementação em rede - para validação

do selo temporal e detecção de ataques por replay que ocorram fora deste

retardo. Falhas de sincronismo possibilitam ataques por bloqueio e replay.

Em 5, cA é reutilizável (denominado ticket) permitindo que o protocolo

ofereça controle de acesso centralizado.

Agente A

9: Decripta 8 com k: verificaTA+1 e confirma k.

5: Decripta cA com kA:verifica B,L,T e produz

ck=k( A,TA )

Servidor dechaves S

XIV: Kerberos, versão 5

2: Cadastra erecebe chavesecreta kA

3: A, B

3: Gera chave k,selo temporal T

e prazo de validade L.

2: Cadastra erecebe chave

secreta kB

1: Escolhem autenticador de chaves S

Agente B6: cB, ck

4: cA=kA( k,T,L,B ) , cB=kB( k,T,L,A )

7: Decripta cB com kB: verifica A,L,T e extrai k;

Decripta ck com k:valida A,T,TA

(Canal seguro)

k = chave de sessão

8: Se 7 então k(TA+1)

Page 54: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende40

•••• Variante do Kerberos sem sincronização:

•••• Detalhes:

* Este protocolo permite que o ticket cB, recebido por A no passo 7 e

retransmitido a B no passo 9, seja utilizado por ambos como um

certificado temporário para mútua autenticação. Com ele, uma nova

chave de sessão pode ser estabelecida sem necessidade do servidor S, mas

com a mesma proteção dada pelo protocolo completo:

passo 9’: A gera novo número randômico r’A e envia r’A,cB a B;

passos 10’, 11’: B decripta cB, gera novo r’B e envia r’B,k(r’A) a A;

passo 12: A valida a posse de k por B verificando r’A, e envia k(r’B).

Agente A

3: Gera núm. randômico rA.

8: Decripta cA: verifica rA.

Servidor dechaves S

XV: Neuman & Stubblebine

2: Cadastra erecebe chavesecreta kA

5: B,c,rB

6: Gera chave k,Decripta c com kB;cA=kA( B,T,k,rA )cB=kB( A,T,k ).*

2: Cadastra erecebe chave

secreta kB

1: Escolhem autenticador de chaves S

Agente B4: A, rA

7: cA,cB,rB

4: Gera núm. randômico rBe selo temporal T;c=kB( A,rA,T ).

10: Decripta cB: decriptak(rB) e verifica rB,T.

(Canal seguro)

k = chave de sessão

9: Se 8 então cB, k(rB)

11: Se 10 então inicia sessão.

Page 55: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende41

Autenticação e Distribuição de chaves usando sistemas

criptográficos assimétricos

•••• Protocolo proposto pela Digital Equipment Corp. (DEC):

•••• DASS - Distributed Authentiation Security Service:

O protocolo requer sincronismo entre agentes e permite a distribuição de

chaves públicas assinadas por distintos servidores. O pacote SPX

distribuído pela DEC implementa este protocolo para redes.

Agente A

9: Decripta 8 com k: valida TA ,TB e confirma k.

3: Valida EB com ES;Gera chaves k e Ek,Dk,

selo temporal TA e prazo L;ck = Dk( EB( k ))

cA = DA( A,L,Ek )

Servidorde chaves S

XVI: DASS

2: Cadastra EA; RecebeES e guarda chaveprivada DA

2: A, B

2: Cadastra EB;Recebe ES e guarda

chave privada DB

1: Escolhem autenticador de chaves S

Agente B4: cA, ck, k(TA)

3: DS( B,EB )

7: Valida EA com ES;Decripta cA com EA;Decripta ck com Ek;

Extrai k com DB:valida A,L,TA

(Canal seguro)

k = chave de sessão

8: Se 7 então k(TB)

5: B, A6: DS( A,EA )

Page 56: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende42

Agente A

9: Decripta 8 com k: verifica TA, TB e confirma k.

5: Extrai EB de cB com ES;Gera chave k,

selo temporal T; ck=EB ( DA( A,B,T,k ))

Servidor de chaves S

XVII: Denning & Sacco

2: Cadastra EA;Recebe ES e guardachave privada DA

3: A, B

2: Cadastra EB;Recebe ES e guarda

chave privada DB

1: Escolhem autenticador de chaves S

Agente B6: cB, cA, ck

4: cB=DS(B,EB) , cA=DS(A,EA)

7: Extrai EA de cA com ES;Extrai e valida EB de cB;

Decripta ck com DB: extrai evalida A,B,T,k com EA;

(Canal seguro)

8: Se 7 então k(TB)

Agente A

5: Extrai EB de 4 com ES;Gera núm. randômico rA.

13: Decripta ck com DA:extrai e valida A,B,rA,k com ES

Servidor de chaves S

XVIII: Woo-Lam

2: Cadastra EA;Recebe ES e guardachave privada DA

3: B

2: Cadastra EB;Recebe ES e guarda

chave privada DB

1: Escolhem autenticador de chaves S

Agente B6: EB ( A,rA )

4: DS(B,EB)

7: Extrai rA de 6 com DB,11: Extrai EA de 10 com ES;

Gera núm. randômico rB;Decripta ck com DB:

extrai e valida A,B,rA,k com ES.

(Canal seguro)

12: Se 11 então EA (ck,rB)

8: A, B,ES(rA )

9: Gera chave k;ck= DS(,rA,k,A,B)

10: EB(ck), DS(A,EA)

14: Se 13 então k (rB)

Page 57: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende43

•••• Detecção do ataque por espelhamento em II,VI usando hash -

Premissas do protocolo Interlock:

a - O intruso não terá como retransmitir ou alterar m (VI.b.5-7) sem ter

sua ação detectada em 8, pois não poderá produzir “m” tal que

h(EX(m)) = h(EB(“m”)), embora possa substituir v e c nos passos 5

e 7.

b - O intruso não terá como retransmitir ou alterar m´ (VI.b.8-10) sem

ser detectado em 10, pois não poderá produzir “m´” tal que

h(EX(m´)) = h(EA(“m´”)), embora possa substituir v’ e c’. Ele

poderá tentar plantar um diálogo, mas não poderá fazer escuta ativa

c - Ataques por espelhamento ou spoofing de A ou B apenas, podem

ser também detectados com um protocolo de distribuição de chave

pública certificada, como por exemplo o protocolo VIII.

5: v = h(c)

1: Escolha de protocolo básico e função hash

Agente A Agente B3: Lê EB ; Lê EA

2: Gera EA, DA;publica EA.

era m; c=EB(m).9: Gera chave de

sessão k

2: Gera EB, DB;publica EB.

4: Gera m’; c’=EA(m’).

Distribuição Interlock de chaves (Rivest & Shamir)

h( ) = hash livre decolisão.

6: v’ = h(c’)

7: c = EB(m)

8: Se h(c) = v então c’

10: Se h(c’) = v’ então k

Page 58: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende44

Derivação de chaves através de funções

unidirecionais com segredo

•••• Primeira descoberta do uso de funções trapdoor (1976):

Premissas e limitações do protocolo Diffie & Hellman:

a - O protocolo funciona devido a f(a, ) ser um homomorfismo entre

anéis comutativos: f(c,y) = (ay mod q)x mod q =

ay*x mod q = a x*y mod q = (ax mod q)y mod q = f(c’,x)

b - Para uma escolha adequada do espaço de chaves, onde

|K| = (q-1)/mdc(graus a, x e y no corpo Zq), será inviável obter-se

k a partir de c e c’, devido à dificuldade do cálculo do logaritmo

discreto (encontrar x tal que f(a,x) = c ).

c - O Protocolo é vulnerável a ataques por espelhamento ou spoofing.

Esteve patenteado nos EUA e Canadá até 29/04/97.

1: Escolhem número primo q e base a

Agente A Agente B3: A, c

2: Gera n. randômico x;Calcula c = f(a,x)

4: Calcula chave de sessãok = (c’)x mod q

2: Gera n. randômico y;Calcula c’ = f(a,y)

4: Calcula chave de sessãok = cy mod q

XIX: Diffie & Hellman

f( , ) = função trapdoor: f(a,n) = an mod q

3: B, c’

k = f(c’,x) = f(c, y)

Page 59: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende45

•••• D&H autenticado por senha, protegido contra ataques por

dicionário e espelhamento:

Premissas e limitações do protocolo Diffie & Hellman Fortificado:

a - A função h( ) deve ter 2 argumentos e ser livre de colisão. Neste caso

a função H( ) terá muitas colisões na primeira coordenada, e raras

colisões na segunda. Se a derivação de k for entre estações seguras, a

senha p pode ser a chave da sessão anterior

b - Ao executar um ataque por espelhamento, o intruso terá que simular

a mútua autenticação dos passos 5 a 8. Como derivou uma chave kA

com A e outra kB com B, terá que, no passo 5, encontrar uma senha

p’ que valide v = H(p,kA), para poder retransmitir v’ = H( p’, kB) a

B.

c - Devido a XX.a, é quase certo que p’≠ p e que v’ ≠ H(p,kB),

invalidando a execução do protocolo no passo 6 ou 8.

1: Escolhem primo q, base a e hash h( )

Agente A Agente B3: A, c

2: Gera n. randômico x;c = ax mod q

4: Calcula chave k =(c’)x mod q;v = H( p,k )

8: Valida H( h( p,k ),k )

2: Gera n. randômico y;c’ = ay mod q

4: Calcula chavek = cy mod q

6: Valida v = H( p,k )

XX: Diffie & Hellman fortificado

H( , ) função de hash: H(p,k) = h(h(p,k)mod 2n,k)

3: B, c’

5: v

0: Escolhem senha p

7: Se 6 então H( h( p,k ),k )

Page 60: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende46

•••• Derivação híbrida de chave secreta via chave pública:

Premissas e características do protocolo A-EKE:

a - O protocolo (patenteado em 1993) é imune ao ataque de dicionário à

senha p, que para ter sucesso deve ser concomitante à quebra da

derivação de D&H, e por isso indicado para redes de sistemas

inseguros, como a telefonia móvel. Entretanto, o vazamento de p-1

possibilitará ataques por espelhamento.

b - Os passos 7 a 10 autenticam mutuamente os usuários, provando a B

em 8 que A possui a senha p, usada para assinar a chave

intermediária derivada por D&H, e provando a A em 10 que B

possui a senha p-1, usada para extrair o desafio r.

c - O comprometimento de s não revelará p, e o uso de mais um nível de

randomização na derivação de s possibilita que os criptogramas dos

passos 3 e 5 sejam usados como tikets para autenticação, caso a

distribuição de p-1 seja intermediada.

1: Escolhem primo q e base a

Agente A Agente B3: A, p(c )

2: Gera n. rand. r, rA, sA;

c = arA mod q6: Decripta p-1(c’), calcula k = (c’)x mod q;10: extrai r,sB, valida r e

calcula s.

4: Gera randômicos rB, sB;

c’ = arB mod q; Decripta p(c), calcula k = cy mod q8: Extrai sA, valida p,

calcula s.

XXI: A-EKE (Bellovin & Merritt)

s = chave de sessão = sA XOR sB

5: B, p-1(c’)

7: k(p(k,r),sA)

0: A escolhe senha p, p-1 assimétricos e entrega p-1

9: k(r, sB)

Page 61: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende47

Aplicações de fatoração e logaritmo discreto à

assinatura digital

•••• Assinaturas digitais parcialmente irrefutáveis:

Premissas e limitações do protocolo XXII:

a - Este protocolo oferece privacidade de verificação, permitindo que A

escolha a quem provar a autenticidade de sua assinatura. Por outro

lado a refutação de assinaturas é ainda possível

(A alega "perda" da chave privada x), e a verificação externa

(B convencendo terceiros da autenticidade de c) é falsificável.

b - Dentre as extensões de XXII que buscam contornar problemas em

XXII.a, A é desafiado de 6 a 9 a autenticar c, ou a provar a forja de c

em variante de 6-9, podendo a variante ser ajuizada.

c - O protocolo de assinatura com verificação designada, é outra

variação deste, onde a verificação é feita por um terceiro agente.

3: chave de verificação de assinatura sAgente A Agente B

5: mensagem assinada m, c.2: Par de chaves: privada x, pública s = ax mod q;

Calcula verificadort = x-1 mod (q-1);

4: Gera mensagem m;Calcula assinaturac = mx mod q

6: Gera n. randômicos y, z;e calcula desafio

v = cysz mod qpara verificação de c.

9: Verifica assinaturav' =? myaz mod q

XXII: David Chaum

7: B, v

8: v' = vt mod q

1: Escolhem primo q e base a primitiva em Zq

Page 62: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende48

•••• Assinaturas digitais por procuração:

(Mambo Usuda & Ocamoto, SCIS '95)

Neste protocolo um procurador assina por A, sem conhecer a

chave privada de A. Suas assinaturas são entretanto distinguíveis das

originais, irrefutáveis e inforjáveis como originais, e de cuja verificação

pode ser deduzida a identificação do procurador e a delegação por A de

poderes a este, para assinatura de mensagens.

•••• Assinaturas inforjáveis: (Pfitzmann, COMPUSEC '91)

Neste protocolo ajuizado, uma disputa entre refutação e

falsificação pode ser resolvida com base nas propriedades do sistema

assimétrico empregado para assinaturas. Nele cada chave pública possui

muitas inversas, sendo uma escolhida como chave privada.

A assinatura da mensagem deve ser reproduzida em corte. Se esta

diferir da assinatura em disputa, a assinatura questionada foi quase

certamente produzida com chave obtida por ataque ao sistema

criptográfico, como descrito em XIX.c.

•••• Assinaturas em grupo: (Chaum, COMPUSEC '91)

Neste protocolo ajuizado, cada agentes pertence a um grupo, a

assinatura é individual mas a identidade do assinante é preservada na

verificação pública, que autentica o grupo a que pertence o assinante.

Na presença de disputas ou diante de eventual necessidade, a

verificação ajuizada da assinatura é executada e a identidade do assinante é

revelada.

Page 63: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende49

Fatoração e logaritmo discreto aplicados

à esteganografia

•••• Canal Subliminar: (Simmons, CRIPTO '83)

Um canal subliminar é um mecanismo que permite transmitir uma

mensagem secreta dentro de uma mensagem inócua quando, além da

chave, o próprio uso da criptografia é ocultado pelos agentes.

Existem algoritmos criptográficos assimétricos para assinatura

digital que permitem a introdução de canais subliminares na assinatura de

mensagens inócuas, onde a mensagem secreta é ocultada através da escolha

da chave pública usada na verificação da assinatura da mensagem inócua.

Existem também algoritmos assimétricos de assinatura imunes ao

estabelecimento de canais subliminares através da assinatura.

•••• Processamento com dados encriptados:

(Feigenbaum, EURO '85)

Existem situações onde o agente precisa processar informação

sensível, sem no entanto revelar a informação na entrada dos dados (por

exemplo, quando aluga tempo de máquinas de terceiros). Existem algumas

funções para as quais é possível calcular f(x) ocultando x. Este problema é

também conhecido como “ocultamento de informação a um oráculo”.

Page 64: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende50

Serviços de validação de selo temporal

•••• Selo temporal assinado com chave pública

Premissas e limitações do protocolo XXIII:

a - Como o selo temporal é aposto ao hash da mensagem a ser datada, o

sigilo da mesma não é comprometido pela datação.

b - Este protocolo não autentica selos temporais externamente (para

terceiros, como a publicação do hash da mensagem em jornais), pois

é vulnerável a conluios entre S e agentes interessados na datação a

posteriori de mensagens, em situações de disputa.

c - Para que a segurança do protocolo inclua validação de datas por

terceiros, os selos temporais produzidos por S devem estar

temporalmente entrelaçados (em cadeia ou árvore), e a identificação

de uma vizinhança de entrelaçamento deve ser aposta ao selo

temporal em 3, para verificação externa de integridade encadeada

(patentes de sistema de cartório digital da Surety Technologies;

Chatham, NJ, EUA).

Agente A Servidor S

2: A, c

1: Cria mensagem m;Calcula c = h(m)

5: Valida selo temporalES(c’) = c,T

3: Gera selo temporal T;Assina c’ = DS(c,T)

XXIII: Selo temporal arbitrado

h( ) = função hash:

4: ES, c’

Page 65: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende51

Aposta Encoberta (comprometimento de bits)

•••• Protocolos para o problema de se comprovar uma escolha ou

previsão, sem revelá-la com antecedência.

Premissas e limitações dos protocolos XXIV, XXV:

A poderá buscar outra chave em XXIV.6 que altere sua escolha inicial. Em

XXV, s encobre m de B, e r em 3 impede que A altere m após o evento,

escolhendo s', m' em 6 que faça colidir h(r,s',m') = c.

1: A e B escolhem algoritmo criptográfico

Agente A Agente B3: B,r

4: Escolhe bits m,chave k;Calcula c = k(r,m)

2: Gera n. randômico re aguarda evento.

7: decripta c verificandor,m = k(c).

XXIV: Comprometimento de bits

4: A,c

5: evento

6: k, m

1: A e B escolhem função de hash h( )

Agente A Agente B

2: Escolhe bits m;Gera n. randômicos r, sCalcula c = h(r,s,m)

4: Aguarda evento.7: Verifica r, m desvelada:

c = h(r,s,m).

XXV: Comprometimento de bits usando hash

3: c, r

5: evento

6: r,s,m

Page 66: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende52

Cara ou Coroa

•••• Protocolos que combinam bits randômicos de dois agentes para

decidir entre interesses conflitantes.

Premissas e limitações dos protocolos XXVI, XXVII:

A pode refutar em XXVI subvertendo 6, se perder em 5, enquanto XXVII é

auto-verificável. Alguns algoritmos assimétricos são comutativos, como o

RSA em módulo comum.

1: A e B escolhem função de hash h( )

Agente A Agente B

5: 1 ou 02: Gera n. randômico rCalcula c = h(r);

6: Verifica r, 5desvelando resultado.

4:Adivinha se r é par ouímpar.

7: Verifica declaração doresultado: c =? h(r).

XXVI: Cara ou coroa usando hash

3: c

6: r

1: A e B escolhem algoritmo criptográfico comutativo

Agente A Agente B

2: Gera n. randômicos:r par e s ímpar;Gera chaves EA, DA; c1=EA(r) , c2=EA(s)

9: Valida escolha de B em 511: Valida uso da chave DB

4: Gera chaves EB, DB;Escolhe x = par ou impar;Escolhe c = c1 ou c2

7: Desvela escolha em 4:DB( t)= r ou s (=x ou ≠≠≠≠x)

11: Valida uso da chave DA

XXVII: Cara ou coroa usando chaves comutativas

3: c1, c2 ou c2, c1

10: DB, DA

5: EB(c), x

6: t = DA(EB(c) ) = EB(r ou s)

8: DB(t)

Page 67: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende53

Escritura de Chaves (key escrow)

•••• Protocolos que usam a caução de chaves privadas para produzir

quebra de sigilo sob demanda judicial.

Premissas e limitações do protocolo XXVIII:

A chave privada do agente é dividida em partes, onde cada parte DxA é

individualmente validada pelo verificador ExA (passo 3). A chave DA só

pode ser reconstruída (por f) com todas as partes, mas a escritura

(completeza das partes) pode ser validada a partir dos verificadores (5). DA

só será útil se tiver sido escriturada (6). Detalhes na implementação buscam

anular estratégias embusteiras de A na escuta.

9: DxA

6: Se 5, A estabelce sessão com BAgente A Agente B

11: Juiz/Polícia escutam A

Servidor de chaves SFiel Depositário X Fiel Depositário Y

XXVIII: Sistema criptográfico justo (Micali)

3: X valida ExA+DxA; ExB+DxB

2: EA

1: Gera EA, DACalcula ExA,DxA, EyA,DyA

8: Intimação: DA

4: Se 3, ExA, ExB

9: DyA

4: Se 3, EyA, EyB

5: S Valida DA, DB10: DA=f (DxA,DyA)

Juiz

1: Gera EB, DBCalcula ExB,DxB, EyB,DyB

2: ExA,DxA

2: EyA,DyA

2: EyB,DyB

2: EB

2: ExB,DxB

3: Y valida EyA+DyA; EyB+DyB

7: Acolhe suspeitacontra A

Canal de Sigilo relativo

6: EB 6: EA

Page 68: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende54

Questões éticas sobre escrituração de chaves

•••• Crítica de Bruce Schneier:

Além dos planos do governo dos EUA de estabelecer a escrituração de chaves comopadrão, há várias propostas comerciais em oferta no mercado. Quais são as vantagens daescrituração de chaves para o usuário? Bem, não há realmente nenhuma. O usuário nãoganha nada da escrituração, que não poderia prover por si mesmo. A caução garante que apolícia pode perscrutar suas linhas de voz ou ler seus arquivos, apesar de criptografados.Garante que a agência NSA pode perscrutar ligações internacionais mesmo sem mandatojudicial, embora encriptadas. Talvez a escrituração possa permitir o uso da criptografia empaíses que hoje a proíbem, mas esta parece ser a única vantagem.

A escrituração de chaves criptográficas tem inúmeras desvantagens. O usuário temque confiar na segurança dos procedimentos das agências cartoriais, depositários fiéis desua chave privada em caução, e na lisura das pessoas envolvidas. Tem que confiar que osagentes da caução não irão modificar suas regras de conduta, que o governo não mudará asleis sobre escrituração, e que as pessoas com poder para recuperar sua chave privada ofarão apenas dentro da lei. (proposta de lei McCain-Kerrey no senado dos EUA)

É difícil imaginar este cenário funcionando idealmente, sem nenhum tipo de pressãolegal ou política. O próximo passo óbvio seria a proibição da criptografia sem caução. Essaseria possivelmente a única forma de garantir o retorno no investimento em um dessessistemas, e de obrigar organizações criminosas sofisticadas a usarem sistemas escriturados.Não está claro quão difícil será fazer cumprir uma tal lei. Os pesquisadores que trabalhamem criptografia terão que ter licença especial para manipular sistemas não escriturados?Como serão testadas implementações de novos sistemas em software, já que os sistemasescriturados envolvem a participação do hardware no protocolo?

E há também questões legais. Como a escritura afetaria a imputabilidade do usuário,em caso de vazamento? Haverá uma hipótese implícita de que se algum segredo vazar pelaconta do usuário, então certamente terá sido pelo usuário e nunca através dos agentescartoriais? E se o banco de dados do cartório de chaves for roubado? E se este roubo foracobertado pelo governo durante algum tempo? Ainda mais perigoso é o uso das escriturasem espionagem para fins políticos. Se as chaves de assinatura forem também escrituradas,existem problemas adicionais. Seriam aceitos em corte documentos assinados com chaveescriturada, como prova contra o proprietário da chave?

A globalização da criptografia traria problemas adicionais. E se governos de outrospaíses não aceitarem como de fé pública os agentes cartoriais americanos? As companiasmultinacionais teriam que aderir a sistemas e normas diferentes em cada país onde operam?Se um país obrigar o usuário a escriturar sua chave de assinatura, poderá ele refutar emoutro país sua assinatura num contrato, alegando ter sido forjada por agentes cartoriaisonde foi obrigado a escriturar sua chave? E os países que patrocinam espionagem industrialem benefício de suas empresas? Certamente não irão escriturar suas chaves em outrospaíses.

As comunicações digitais oferecem oportunidade bem mais ampla para atividades demonitoramento das ações, opiniões, compras, associações, etc., de cidadãos do que seriapossível no mundo analógico. Tornar esta capacidade quase automática e não rastreávelpode oferecer uma tentação a mais para estados com tendências não democráticas.

Page 69: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende55

Provas com conhecimento zero (0-knowledge)

•••• Protocolos 0-k iterativos -

Num protocolo 0-k iterativo, o provador convence o verificador de que

possui a solução de um problema matemático, sem transmitir ao verificador

nenhuma informação sobre essa solução. Estes protocolos podem servir

para autenticar posse de chave (a solução do problema). A verificação

externa é intrinsecamente falsificável (não transferível).

Premissas e limitações dos protocolos 0-k iterativos:

a - Se A não detém s, poderá em 3.2 comprometer uma solução de uma

instância não isomorfa a P, ou uma solução incorreta de uma instância

isomorfa a P, calculados em 3.1. A probabilidade de detecção desta

fraude em 3.6 é 1/2; após n iterações = 1/2n.

b - A escolha randômica de 3.3 em tempo real é essencial: B pode, em

batch, forjar as iterações com A (em conluio contra terceiros)

3: Repetir n iterações: j de 1 até n

Provador A Verificador B3.2: compromete sj.2: Gera ou obtem instância

P e solução s de P3.1: Gera instância Pj

randômica isomorfa a P; Usa hj:Pj→→→→P e s para

calcular sj solução de Pj

3.3: Escolha randomicaentre verificar sj ou hj;

3.6: Verifica sesj é solução de Pj ou sehj:Pj→→→→P é isomorfismo

XXIX: Estrutura de protocolos 0-k iterativos

3.4: comunica escolha 3.3

3.5: revela sj ou descreve hj

1: Escolhem tipo de problema P

A convence B que possui s

Page 70: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende56

•••• Protocolos 0-k não iterativos -

Num protocolo 0-k iterativo, o verificador se convence, por ser agente ativo

da escolha nos passos XXIX.3.3, de que o provador detém o conhecimento

da solução do problema proposto. A ação randômica introduzida pelo

verificador nas repetições de 3.3 pode ser substituída por uma função de

hash, tornando a verificação externamente confiável.

Premissas e limitações dos protocolos 0-k não iterativos:

a - Se A não detém s, terá problemas para simular uma seqüência

randômica que o possibilite fraudar cada passo j, pois não saberá

calcular a imagem inversa do hash da cadeia de soluções

comprometidas, a partir dos bits que comporiam essa seqüência.

b - O número de repetições do passo 4 que torna estes protocolos seguros

deve ser maior que nos protocolos não-iterativos, para evitar a fraude

por pré-cálculo exaustivo de seqüências fraudáveis.

3: c = comprometimento de s1,..,sn concatenados

Provador A Verificador B5: publica c, v = h(c)1: Gera ou obtem instância P

e solução s de P.2: Repete n vezes: Gera

instância Pj randômicaisomorfa a P e usa s ehj:Pj→→→→P para calcular sjsolução de Pj.

7: Verifica se v = h(c), ese escolha em 3 coincidecom seqüência de bits de v

8: j de 1 a n: Verifica se sj ésolução de Pj ou sehj:Pj→→→→P é isomorfismo.

XXX: Estrutura de protocolos 0-k não iterativos

6: publica resultado 4

1: Divulga escolha de problema P e hash h( )

A convence leitor de B disposto aexecutar 6 e 7 que detém s

4: Repete j de 1 a n: Se bit j de h(c)=0revela sj, caso contrário descreve hj.

Page 71: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende57

Exemplo de protocolo 0-k

•••• Isomorfismo de grafos -

O problema da verificação de existência de isomorfismo entre dois grafos é

difícil (NP-completo). Nele é baseado o seguinte protocolo.

Detalhes do protocolo XXXI:

a - A complexidade do problema limita as possibilidades de fraude por A,

àquelas descritas em XXIX.a, se as escolhas dos parâmetros do

problema forem adequadas. (tamanho do grafo υ~>300, densidade de

arestas ≅ υ/2, etc.)

b - O problema de "A" provar ter o conhecimento de um isomorfismo de

G, pode ser substituído pelo do conhecimento de um ciclo

hamiltoniano em G. Qualquer teorema matemático pode ser

representado por um grafo, onde sua demonstração é codificada como

um ciclo hamiltoniano deste grafo (Blum, 1986).

3: Repetir n iterações: j de 1 até n

Provador A Verificador B3.2: compromete hj.2: Gera ou obtém

isomorfismo h:G→→→→G'.(A solução é h. A divulgaG,G' para autenticar-se)

3.1: Gera isomorfismorandômico hj:G'→→→→Gj;Descrição de sj= hj.h

3.3: Escolha randomicaentre verificar sj ou hj;

3.6: Verifica sesj:G→→→→Gj ou hj:G'→→→→G j éisomorfismo

XXXI: protocolo iterativo 0-k com isomorfismo de grafo

3.4: comunica escolha 3.3

3.5: revela hj ou descreve sj

1: A, B escolhem protocolo

A prova que conhece h:G→→→→G' com probabilidade 1-2-n

Page 72: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende58

Protocolos esotéricos

•••• Transmissão ou assinatura cega de mensagens - (Chaum)

O agente transmissor envia várias mensagens encriptadas ao receptor. O

receptor escolherá para decriptar apenas uma, e o transmissor não saberá

qual delas. No caso da assinatura, o assinante não decriptará apenas uma,

que será assinada.

•••• Assinatura de contratos - (Even, Goldreich & Lempel)

Existem protocolos iterativos para simular a assinatura digital simultânea

dos contratantes a uma mensagem com força de contrato.

•••• Esquemas seguros para eleições eletrônicas -

(Nurmi, Salomaa & Santean)

Existem protocolos para eleições que autenticam votantes e tabulam a soma

de votos, com propriedades de proteção à anonimidade do eleitor, à

verificação pelo eleitor da tabulação de seu voto, e contra a duplicação,

substituição ou adulteração de votos.

•••• Moeda eletrônica - (Chaum, Fiat & Naor; e outros)

Cartões de crédito permitem transações rastreáveis. Existem protocolos

complexos que permitem transações anônimas (autenticáveis mas não

rastreáveis à origem), com controle de modalidade de transferência. O uso

destes protocolos depende da disposição de agentes financeiros e

reguladores de promoverem a permuta por moeda lastreada em papel.

Page 73: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende59

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

4. Técnicas CriptográficasPedro Antonio Dourado de Rezende

•••• Custo de hardware x Tempo médio estimados, para quebra porforça bruta de algoritmos simétricos - (106 cifragens/seg)

Custo do Comprimento útil da chave secreta

hardware 40 bits 56 bits 64 bits 80 bits 112 bits 128 bits

US$100 mil 2 segundos 35 horas 1 ano 7x104 anos 1014 anos 1019 anos

1 milhão 0.2 seg 3.5 horas 37 dias 7x103 anos 1013 anos 1018 anos

10 milhões 0.02 seg 21 min 4 dias 700 anos 1012 anos 1017 anos

100 milhões 2 miliseg 2 minutos 9 horas 70 anos 1011 anos 1016 anos

1 bilhão 0.2 miliseg 13 seg 1 hora 7 anos 1010 anos 1015 anos

10 bilhões 0.02 mseg 1 segundo 5.4 min 245 dias 109 anos 1014 anos

100 bilhões 2 microseg 0.1 seg 32 seg 24 dias 108 anos 1013 anos

1 trilhão 0.2 µ seg 0.01 seg 3 seg 2.4 dias 107 anos 1012 anos

10 trilhões 0.02 µ seg 1 miliseg 0.3 seg 6 horas 106 anos 1011 anos

•••• Estimativas para comprimento seguro de chaves públicas -Extrapolando dados históricos sobre a capacidade de fatoração de inteiros -(Rivest: estimativa otimista em 1990 - Schneier estimativa em 1995)

Comprimento de chaves públicas em bits, para proteção contra

Ano Indivíduos Grandes corporações Grandes estados

1995 405 - 768 542 - 1280 1399 - 1536

2000 422 - 1024 572 - 1280 1512 - 1536

2005 439 - 1280 602 - 1536 1628 - 2048

2010 455 - 1280 631 - 1536 1754 - 2048

2015 472 - 1536 661 - 2048 1884 - 2048

Page 74: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende60

Critérios para escolha de chaves

•••• Relação aproximada entre tamanhos de chaves com mesmo nível

de segurança - (Schneier, 1995)

Tipo de algoritmo chave pública em aritmética modular

Chave secreta 56 bits 64 bits 80 bits 112 bits 128 bits

Chaves pública/privada 384 bits 512 bits 768 bits 1792 bits 2304 bits

•••• Tamanho dos espaços de senhas -

Subconjunto de Comprimento da senha

caracteres 4 bytes 5 bytes 6 bytes 7 bytes 8 bytes

letras minúsculas (26) 460 000 1.2*107 3.1*108 8.0*109 2.1*1011

minúsculas+dígitos (36) 1 700 000 6.0*107 2.2*109 7.8*1010 2.8*1012

alfanuméricos (62) 1.5*107 9.2*108 5.7*1010 3.5*1012 2.2*1014

imprimíveis (95) 8.1*107 7.7*109 7.4*1011 7.0*1013 6.6*1015

caracteres ASCII (128) 2.7*108 3.4*1010 4.4*1012 5.6*1014 7.2*1016

ASCII estendido (256) 4.3*109 1.1*1012 2.8*1014 7.2*1016 1.8*1019

•••• Tempo médio de busca exaustiva em espaços de senhas -

106 verificações/seg Comprimento da senha

Subconjunto ASCII 4 bytes 5 bytes 6 bytes 7 bytes 8 bytes

letras minúsculas (26) 0.5 seg 12 seg 5 min 2.2 horas 2.4 dias

minúsculas+dígitos (36) 1.7 seg 1 min 36 min 22 horas 33 dias

alfanuméricos (62) 15 seg 15 min 16 horas 41 dias 6.9 anos

imprimíveis (95) 1.4 min 2.1 horas 8.5 dias 2.2 anos 210 anos

caracteres ASCII (128) 5.5 min 9.5 horas 51 dias 18 anos 2300 anos

ASCII estendido (256) 1.2 horas 13 dias 8.9 anos 2300 anos 6.105 anos

Page 75: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende61

Primitivas de algoritmos assimétricos

•••• Implementação eficiente da função de exponenciação modular

expmod(a,x,m) = ax mod m

/* função expmod */

/* uso: base a expoente x modulo m de tipo array int*/

/* supõe m>0, x>0 e aritmética sobrecarregada */

exint r, s, y;

exint expmod (exint *a, exint *x, exint *m)

{

r = 1; y = x; s = a%m;

while( y ) {

if( y&1 )

r = (r*s)%m;

r = (r*r)%m;

y = y>>1

}

return( r )

}

•••• Inversão da exponenciação modular - logaritmo discreto -

Algoritmos mais eficientes hoje conhecidos para Zp (n = bits de p):

Crivo Gaussiano- tempo heurístico ≈ e(1+c*n*ln(n))1/2

(n<~360);

Crivo de Campo Numérico- t ≈ e(1.923+c*n*ln2(n))1/3 (n>~360).

O problema da fatoração de inteiros é redutível ao do logaritmo discreto.

Page 76: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende62

•••• Inversão do produto de inteiros: fatoração -

Algoritmos para Z mais eficientes hoje conhecidos (n = bits de p):

Crivo Quadrático (QS)- tempo ≈ e(1+c*n*ln(n))1/2

(n<~360);

Crivo de Campo Numérico- t ≈ e(1.923+c*n*ln2(n))1/3 (n>~360).

O problema da fatoração de inteiros é estudado desde Euclides

(450A.C.). O estado da arte atual transporta o problema para um corpo de

extensão de Galois GF(qn) menor que Zp, onde os possíveis fatores de p são

representados por polinômios.

•••• Histórico dos limites práticos da fatoração -

Fatoração de números difíceis (n = p*q onde p, q são primos e |p| ≈ |q|):

Ano Tamanho de n Exemplo / Complexidade e técnica empregada

34 dígitos 2113-1 = 3391*23279*65993*1868569*1066818132868207

1970 41 dígitos Vários meses de um grande porte, usando QS.

1991 Série RSA Desafio lançado pela RSA: ni de 100 a 500 dígitos; 1<i<42

1993 RSA-120 (n3) 825 mips_ano, em 3 meses usando QS.

1994 RSA-129 (n4)(428 bits)

~5000 mips_ano, em 8 meses usando QS distribuído *(em1600 máquinas de voluntários na Internet, via e-mail).

1997 154 dígitos(512 bits)

Supõe-se fatorável pelo Crivo de Campo Numérico (NFS),em poucos meses com alguns milhões de US$ .

Números de Fermat e de Mersenne:

Número Fermat 22n+1 Mersenne: 2p-1;

9º F. 2512+1 Composto: decomposição usando NFS.

36º M. 22976221-1 Primo: maior dos conhecidos (set 97), com 895932 dígitos

* (mip_ano = 1 milhão de instruções por segundo durante 1 ano)

Page 77: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende63

•••• Implementação de um algoritmo de monte carlo para verificar a

existência de decomposição de um inteiro -

/* uso:função rand( ) geradora de números randomicos*/

/* m parâmetro de incerteza sobre a primalidade de p*/

/* p candidato a primo. aritmética estendida */

int lehmann (exint *p, unsigned int m)

{ /*função lehmann retorna primalidade de p*/

exint a; exint x; int r;

r=1;

while(m&r) {

m-=1; a=rand(p-1); /*a<p*/

x=expmod(a,(p-1)/2,p);

if(!(x==1)&!(x==p-1)) r=0;

}

return(r)

}

•••• Heurística para geração de primos grandes -

Nos Algoritmos de Lehmann (acima) ou outros que testam primalidade,

cada teste verifica independentemente se p é composto.

O teste será conclusivo se r==0 (p é composto). Caso contrário o teste será

inconcluso, com probabilidade > 1/2 de p ser primo. Dado um nº ímpar

qualquer de n bits, a probabilidade dele ser primo é ≅ 2/ln(2)n.

Um número inteiro de n bits com probabilidade de ser primo ≅ 1 -

(ln(2)n-2)/(ln(2)n-2+2m+1) é obtido a partir de um candidato de n

bits, submetendo seus sucessores ímpares a m testes de primalidade, até ser

encontrado um para o qual todos os m testes são inconclusos(r==1).

Page 78: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende64

Geração de primos para criptografia assimétrica

•••• Implementação de um algoritmo probabilístico para geração de

primos com n bits -

/* função geraprimo() retorna primo de n bits */

/* uso:função rand( ) geradora de números randomicos*/

/* m parâmetro de incerteza sobre a primalidade de p*/

/* n número de bits do primo. aritmética estendida */

exint geraprimo (unsigned int n, unsigned int m)

{

exint p;

p=rand(1<<n-1)+1; /* p impar de n bits */

while(!lehmann(&p,m))

p+=2;

return(p)

}

•••• Exemplos de probabilidades na geração de primos -

Nº médio de testes Probabilidade de p não ser primo

bits de p candidatos a p m=10 m=20 m=30 m=40

n=128 44 0.042 0.41x10-6 0.40x10-9 0.39x10-12

n=256 89 0.079 0.84x10-6 0.81x10-9 0.79x10-12

n=384 133 0.114 0.12x10-5 0.12x10-8 0.12x10-11

n=512 177 0.146 0.16x10-5 0.16x10-8 0.16x10-11

n=768 266 0.209 0.23x10-5 0.24x10-8 0.24x10-11

n=1024 336 0.246 0.32x10-5 0.31x10-8 0.30x10-11

Page 79: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende65

Mecanismos e modos para construção de cifras

•••• Classificação de cifras quanto às características de entrada/saida

de dados nos algoritmos que as realizam -

1 - Cifras de bloco (block ciphers):

•••• Mensagem e criptograma são concatenações de blocos de dados, onde

o bloco tem tamanho fixo, equivalente ao da chave..

•••• O algoritmo não armazena informação sobre o estado da cifragem do

bloco anterior. A execução pode ser em paralelo

•••• Uma unidade de entrada repetida no algoritmo com a mesma chave

sempre gera mesma saída.

2 - Cifras encadeadas (stream ciphers):

•••• Mensagem e criptograma são formados por dados concatenados. Estes

dados tem o tamanho de fração do da chave (bit, byte.).

•••• O algoritmo precisa armazenar informação sobre o estado da cifragem

do bloco anterior. A execução precisa ser sequencial

•••• A mesma unidade de entrada repetida no algoritmo normalmente gera

saídas distintas, dependente do estado interno do mesmo.

•••• Classificação de cifras de bloco quanto ao modo de operação

1 - Cifra direta: ECB..........Eletronic codebook

2 - Cifras retroalimentadas:

•••• CBC ...........................Cipher block chaining

•••• CFB ...........................Cipher feedback

•••• OFB ............................Output feedback

Page 80: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende66

Modo ECB

•••• Cada bloco mi da mensagem m=m1...mn é cifrado como uma

mensagem, independente dos blocos anteriores e sucessores-

Propriedades das cifras simétricas de bloco no modo ECB

a - O modo mais simples possível é paralelizável e útil em aplicações onde a

decriptação parcial não seqüencial é necessária e as mensagens são

curtas, tais como registros de bancos de dados ou sistemas de arquivo em

dispositivos de armazenamento magnético.

b - Erros de transmissão do criptograma invalidam o bloco onde ocorrem,

mas não se propagam além do bloco. Requer enchimento no último

bloco da mensagem, para tornar seu comprimento múltiplo do tamanho

do bloco.

c - Este modo é vulnerável a ataques por replay com substituição de blocos,

onde o significado de um bloco do criptograma pode ser inferido sem o

conhecimento da chave. Em geral, é o mais frágil.

ek/dk ek/dkek/dk

... mi-1 mi mi+1 ...

...ci-1 ci ci+1...

Encriptação Decriptação

Criptograma

ECB

Chave k

Algoritmo de cifra

Page 81: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende67

Modo CBC

•••• O bloco do último criptograma é combinado com o próximo bloco

da mensagem, antes de encriptado (após decriptado) -

Propriedades das cifras simétricas de bloco no modo CBC

a - Modo mais seguro que ECB para transmissão em redes, útil em

aplicações onde várias mensagens com trechos em comum ou de formato

público são transmitidas em uma mesma sessão. O vetor VI pode ser

enviado sem sigilo e deve ser único para cada mensagem.

b - Erros de transmissão do criptograma invalidam o bloco onde ocorrem, e

o bit do bloco seguinte na posição onde ocorreu o erro. Não requer

enchimento no último bloco da mensagem, podendo ser usado quando

criptograma e mensagem devem ter mesmo tamanho.

c - Este modo é vulnerável a ataques por escuta ativa com substituição de

bits, onde o valor de um bit pode ser manipulado, à custa da recepção do

bloco que o antecede.

ek/dk ek/dkek/dk

...mi-1 mi mi+1...

....ci-1 ci ci+1...

VI = Vetor de Inicialização(Selo temporal, número

randômico ou serial, etc)

⊕⊕⊕⊕ = Função XOR bit a bit

CBC

VI ⊕⊕⊕⊕ ⊕⊕⊕⊕ ⊕⊕⊕⊕

tempo

Page 82: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende68

Modo CFB

•••• O bloco do último criptograma é (deslocado e) reencriptado, e o

resultado combinado com o próximo bloco da mensagem

Propriedades das cifras simétricas de bloco no modo CFB

a - Modo útil para tráfego de rede, em aplicações onde o mecanismo de

transmissão usa palavras menores que o bloco da cifra. O vetor VI

precisa ser único para cada chave e mensagem, sem requerer sigilo.

b - Erros de transmissão do criptograma invalidam o bit onde ocorrer o erro,

e também o bloco (tamanho do acumulador) que o segue. Não requer

enchimento no último bloco da mensagem, podendo ser usado quando

criptograma e mensagem tem que ter mesmo tamanho

c - Este modo é vulnerável a ataques por escuta ativa com substituição de

bits, caso o texto pleno seja conhecido do atacante, onde valores de bits

podem ser manipulados, à custa da recepção do bloco (tamanho do

acumulador) seguinte ao bit.

i-ésimo byte

...mi-1 mi mi+1...

....ci-1 ci ci+1...

←←←← shift register ←←←←

CFB

VI ⊕⊕⊕⊕ ⊕⊕⊕⊕ ⊕⊕⊕⊕

ek/dkek/dkek/dk

CFB com acumulador

ek/dk

⊕⊕⊕⊕mi ci

ki

mi

último byte

bloco

Page 83: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende69

Modo OFB

•••• O bloco da última cifra do VI é (deslocado e) reencriptado, e o

resultado combinado com o próximo bloco da mensagem-

Propriedades das cifras simétricas de bloco no modo OFB

a - Modo útil para encriptação off-line, nas aplicações onde a transmissão é

bem mais rápida que a execução do algoritmo de cifra. O vetor VI pode

ser enviado sem sigilo, deve ser único para cada mensagem e precisa ser

carregado na inicialização do acumulador.

b - Erros de transmissão do criptograma invalidam apenas o bit onde ocorrer

o erro, tornando este modo indicado em aplicações de tempo real onde a

tolerância a erros é mínima (voz, imagem, etc).

c - O subbbloco deve ter tamanho m máximo, igual ao tamanho do bloco da

cifra, pois este modo simula gerador randômico do one-time pad iterando

encriptações do VI para a geração de seqüências pseudo-randômicas

onde o período médio dessas seqüências é ~2m.

i-ésimo subbloco

...mi-1 mi mi+1...

....ci-1 ci ci+1...

←←←← shift register ←←←←

OFB

VI

ekekek

OFB com acumulador

ek

⊕⊕⊕⊕mi ci

ki

mi

último subbloco

bloco⊕⊕⊕⊕⊕⊕⊕⊕⊕⊕⊕⊕

Page 84: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende70

Construção de geradores de seqüências

pseudo-randômicas e cifras encadeadas

•••• Histórico -

A teoria de projeto e análise de cifras encadeadas adaptou à eletrônica

técnicas empregadas até a segunda guerra mundial nas cifras de implementação

mecânica, através do uso de registradores de deslocamento (shift registers).

Estas técnicas formam grande parte da criptografia militar.

•••• Registros de deslocamento com retroalimentação -

Feedback Shift Registers (FSR) são os elementos básicos na concepção

da maioria dos geradores de seqüências pseudo-randômicas utilizados na

criptografia atual de implementação eletrônica simples.

O período de uma seqüência gerada pelo FSR de n bits a partir da

semente (número de configurações distintas obtidas do VI) é no máximo 2n.

Os FSRs mais simples são os lineares (LFSR), que usam o XOR de

alguns bits como função de retroalimentação. As posições do registrador que

entram no XOR formam a seqüência de captura (tap) do LFSR.

FSR de n bits FSR linear (LFSR)

↓Semente Bit de saída↓

VI = ( n bits de inicialização)

.......

→→→→ shift register →→→→bn ... ... b4 b3 b2 b1

Função de feedback

= seqüência tap Saída↓

VI →→→→ shift register →→→→

bn ... ... b4 b3 b2 b1

(XOR=paridade))

⊕⊕⊕⊕

Page 85: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende71

LFSRs de período máximo

•••• Escolha da seqüência de captura (Selmer, 1965) -

Para que um LFSR seja de período máximo (2n-1), a configuração do

registrador com bi =1 apenas nas posições de captura deve representar um

polinômio primitivo módulo 2: este polinômio p(x) deve satisfazer

• p(x) é irredutível ^ [p(x) | x2n-1+1] ^ [ ∀ d (d | 2n-1) � ¬ (p(x) | xd+1) ]

•••• Exemplo de construção de LFSR de período máximo -

Sabendo que p(x) = x32+x7+x6+x2+1 é primitivo, um LFRS de 32 bits

com sequência tap (32,7,6,2) terá portanto período máximo:

A implementação em software deste LFSR pode ser

int LFSR ( ) /*SR representa o shift register */

{

static unsigned long SR=1;/*qualquer valor≠0*/

SR=((((SR>>31)^(SR>>6)^(SR>>5)^(SR>>1))

& 0x00000001)<<31) | (SR>>1);

return SR & 0x00000001;

}

LFSR de 32 bits com período 232-1

→→→→ shift register →→→→b32 b31 .... .... .... b9 b8 b7 b6 b5 b4 b3 b2 b1

(paridade)⊕⊕⊕⊕

VI

Page 86: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende72

Polinômios primitivos módulo 2

•••• Escolha de polinômios primitivos -

Não há algoritmo eficiente conhecido para geração de polinômios

primitivos, mas existem pacotes que testam primitividade de polinômios.

Polinômios esparsos (poucos coeficientes ≠ 0) são mais eficientes para

implementações de LFSR em software, mas frágeis para criptografia.

Lista de exemplos de seqüências de captura para períodos máximos

(7,1) (46,8,5,3,2,1) (84,8,7,5,3,1) (151,3)

(8,4,3,2) (48,7,5,4,2,1) (87,13) (160,5,3,2)

(9,4) (52,3) (88,8,5,4,3,1) (166,10,3,2)

(10,3) (54,6,5,4,3,2) (89,51) (172,2)

(12,6,4,1) (57,7) (91,7,6,5,3,2) (177,8)

(14,5,3,1) (59,6,5,4,3,1) (93,2) (201,14)

(15,1) (60,1) (94,6,5,1) (201,79)

(16,5,3,2) (63,1) (96,10,9,6) (212,105)

(17,3) (64,4,3,2,1) (100,37) (236,5)

(17,5) (66,8,6,5,3,2) (104,11,10,1) (286,69)

(18,5,2,1) (68,9) (107,9,7,4) (333,2)

(22,1) (71,6) (111,49) (462,73)

(29,2) (72,10,9,3) (114,11,2,1) (607,105)

(32,7,5,3,2,1) (73,25) (120,9,6,2) (1279,418)

(35,2) (76,5,4,2) (133,9,8,2) (2281,1029)

(36,6,5,4,2,1) (78,7,2,1) (136,8,3,2) (3217,576)

(37,5,4,3,2,1) (79,9) (144,7,4,2) (4423,271)

(40,5,4,3) (80,7,5,3,2,1) (147,11,4,2) (9689,84)

Page 87: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende73

Projeto e análise de cifras encadeadas

•••• Ataques a geradores de cifras encadeadas -

1 - Complexidade linear: (Berlenkamp-Massey, 69) Se uma seqüência pode

ser gerada por um FSR linear, o comprimento do menor desses LFSR

é a medida de complexidade linear da seqüência. Existe algoritmo que

constrói o LFSR minimal duma seqüência de complexidade n, após ler

2n bits consecutivos da seqüência.

2 - Correlação: .......................geradores construídos por composição de

LFSRs podem ser atacados relacionando-se a seqüência de saída com

a seqüência de estados internos de elementos do gerador.

3 - Outros métodos de ataque: Consistência linear, encontro-no-meio,

síndrome linear, aproximação pelo melhor afim, seqüência derivada,

criptoanálise diferencial, etc.

•••• Técnicas de combinação de FSRs -

1 - Para-e-segue alternado: ..............O deslocamento de dois ou mais FSRs é

controlado pelo bit de saída de um outro FSR..

2 - Cascata de Golleman:.................FSR dispostos em cadeia têm seu

deslocamento controlado pelo FSR anterior.

3 - Retroalimentação com carry: .....A função de retroalimentação usa

memória de carry da soma dos bits capturados (CFSR) .

4 - Técnicas obsoletas:..... ...............(devido a descobertas de métodos de

ataque) Multiplex, limiar, SFR lineares auto-controlados, para-e-

segue não alternado, produto interno, etc.

Page 88: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende74

•••• Exemplo de composição para-e-segue alternada -

•••• Eliminando tendências do gerador -

No caso de um gerador apresentar tendência por um bit na saída, por

exemplo, P(0) = 0.5+ε, pode-se neutralizar esta tendência usando como saída o XOR

dos últimos k bits gerados, que terá então P(0) = 0.5+2k-1

εk.

•••• Geradores de seqüências realmente randômicas -

Existem dispositivos, utilitários ou técnicas disponíveis para gerar seqüências

que apresentam em princípio as principais características de randomicidade. Os dados

obtidos devem ser misturados com uma função de hash, antes de terem bits extraídos

para a seqüência.

• Comandos ou posição do mouse;

• Número do setor, hora ou latência de acesso de cada operação de disco;

• Numero da linha sendo traçada no momento pelo driver do monitor;

• Conteúdo do quadro de imagem presente no buffer do driver do monitor;

• Conteúdo das tabelas de FAT, do kernel, etc;

• Tempo de chegada de pacotes de rede, ...

Gerador alternate stop-and-go com 3 LFSRs

Saída

φ = sinal de clock

LFSR 2

⊕⊕⊕⊕

LFSR 1

LFSR 3

- Controle de deslocamento

Page 89: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende75

Escolha de algoritmos criptográficos

•••• Premissas quanto às alternativas de origem da cifra -

1 - Publicado: .........................confiança na robustez do algoritmo que

resiste à criptoanálise acadêmica (por pelo menos um ano).

2 - Comprado: ........................confiança na reputação do fabricante que

projetou e implementou o equipamento e/ou algoritmo.

3 - Projetado:..........................confiança na sua habilidade e perícia

próprias para a criptologia, acima de tudo.

4 - Escolhido pelo consultor:.confiança no conhecimento técnico e

honestidade de um profissional da área.

5 - Indicado pelo governo: ....confiança nos objetivos oficiais da

padronização proposta coadunarem com os seus.

•••• Alternativas quanto à destinação da cifra -

1 - Sigilo na transmissão de dados:

•••• Elo a elo (link to link)..... implementação a nível de rede.

•••• Ponto a ponto (end to end) a nível de aplicativo ou sistema.

2 - Sigilo no armazenamento de dados: ........... O algoritmo pode funcionar

cifrando a nível de arquivo ou de driver.

3- Autenticação e gerenciamento de chaves: . Os algoritmos assimétricos

são mais adequados em geral apenas nestes casos.

•••• Alternativas de plataforma para implementação da cifra -1 - Software: .. Algoritmo usa CPU, RAM e bibliotecas do sistema.

2 - Hardware: Algoritmo usa processador, etc. dedicados e invioláveis.

Page 90: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende76

Criptografia na transmissão de dados

• Possibilidades para implementação no modelo OSI de redes-

• Comparações entre as alternativas:

Transmissão Link to link End to end

Segurança nos

computadores

• Mensagem exposta nocomputador de origem e nos nósda rede.

• Mensagem encriptada nocomputador de origem e nos nósda rede.

Papel do

usuário

• Iniciada pelo host de origem,invisível ao usuário.

• Host mantém algoritmo, usadopor todos.

• Cifra tudo ou nada, podendo serimplementada em hardware.

• Iniciada pelo processo origem,onde o usuário aplica cifra.

• Usuário seleciona e mantémalgoritmo caso a caso.

• Usuário decide por mensagem,mais fácil por software.

Questões de

implementação

• Requer uma chave para cada parde nós, e uma implementaçãoem cada nó.

• Cabeçalhos de transmissãoencriptados.

• Provê autenticação de nós(controle de roteamento)

• Requer uma chave para cada parde usuários, e umaimplementação em cada host..

• Cabeçalhos de transmissãoexpostos.

• Provê autenticação de usuários(controle de acesso)

AplicaçãoPresentaçãoSessãoTransporteRedeLigaçãoFísica

Níveis de implementação Camadas

Aplicativo

Sistema

Subrede

Elo

End to end

Link to link

Criptografia em redes OSI

Host Host

Page 91: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende77

Criptografia para armazenamento de dados

•••• Dificuldades de implementação de cifras p/ armazenagem-

1 - Vulnerabilidade: .......cifras coexistem com dados expostos (no papel,

noutra máquina), permitindo ataques de texto pleno conhecido.

2 - Custo:........................em bases de dados, as unidades são muitas vezes

menores que o bloco, expandindo o armazenamento.

3 - Complexidade: .........o gerenciamento de chaves deve mapear usuários

por direito de acesso a arquivos e campos.

4 - Gargalo: ....................dispositivos de I/O são geralmente bem mais rápidos

que os algoritmos, requerendo implementação em hardware, ou

algoritmos especialmente velozes, ou ambos.

• Comparações entre as alternativas:

Armazenagem A nível de arquivo A nível de driver

Benefícios• Mais fácil de implementar, usar

e manter.• Transferência fácil de arquivos.

• Arquivos temporários e detrabalho ficam seguros no driver.

• Ninguem esquece de encriptar

Problemas

para o usuário

• Diferentes senhas para cadaarquivo.

• Controle de acesso a arquivosgeralmente se limita ao utilitáriode encriptação.

• Perda da senha mestracompromete todo o disco.

• O acesso ao disco se torna maislento, pois qualquer acesso serácifrado.

Questões de

implementação

• Programas que usam arquivostemporários comprometem asegurança.

• Implementação pode servulnerável mapeando senhasiguais para chaves iguais.

• Interface com o usuário podedesestimular o uso de cifragem.

• Extremamente sensível a errosde especificação deprogramação

• Modos de encriptação usuais sãoinapropriados ou inseguros nestaaplicação (usa-se ECB+OFB)

• Iteração imprevisiível do drivercifrador com outros drivers dedispositivo.

Page 92: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende78

Escolhas de plataforma

•••• Histórico -

Desde a invenção em 1920 de máquinas para cifra que usam rotores até

recentemente, a implementação de cifras em hardware especializado era

prevalente, por ser mais seguro, eficiente e permitir armazenagem interna

inviolável de chaves mestras. Esta dominância vem diminuindo pela evolução

da criptografia assimétrica e da capacidade dos processadores.

•••• Tipos mais comuns de dispositivos de hardware dedicado -

1 - Módulo auto-contido:.................usados geralmente por bancos para

autenticação de senhas e gerenciamento de chaves criptográficas

2 - Caixa-preta para links de transmissão: ....... cifra implementada para a

tecnologia específica de um canal de comunicação.

3 - Placa de expansão para PCs: ....usam a arquitetura do PC para cifrar o

tráfego do(s) barramento(s) interno(s) escolhido(s).

• Comparações entre as alternativas:

Plataforma Hardware Software

Benefícios• Facilidade de instalação, uso

transparente e eficiente.• Integridade pode ser obtida com

lacre químico inviolável.

• Facilidade de implementação,configuração e atualização.

• São portáveis e de baixo custo(algoritmos de domínio público)

Problemas

para o usuário

• Informações sobre a origem doalgoritmo ou detalhes deimplementação são inacessíveis.

• O dispositivo é de aplicaçãoespecífica, requerendo upgradescom a troca de equipamentos.

• O armazenamento de chaves e aintegridade do código da cifranão são seguros.

• O gerenciamento de chaves comessa opção é geralmente degrande complexidade.

Page 93: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende79

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

5. Algoritmos Criptográficos – Parte 1Pedro Antonio Dourado de Rezende

•••• Cenário inicial da padronização em criptografia -

• até 1970: Não existiam padrões, e praticamente nenhuma cultura oupesquisa criptográfica fora da área militar. Pequenas companhiasvendiam hardware de criptografia restrita para governos.

• 1972 ....... National Institute of Standards and Technology iniciou umprograma para proteção a computadores e comunicação de dados queprevia o estabelecimento de um algoritmo criptográfico padrão quepermitisse interoperabilidade nas comunicações.

• 1973 ....... NIST abriu concurso para escolha de um algoritmo padrãoque obedecesse os critérios de segurança divulgados. Nenhum doscandidatos conseguiu alcançar esses critérios.

• 1974 ....... NIST relança o concurso. O algoritmo submetido pela IBM(baseado no algoritmo LUCIFER) passou nos critérios preliminares.Sua avaliação detalhada foi requisitada à National Security Agency,que o cosiderou seguro. Foi então escolhido.

• 1975 ....... NIST negocia com a IBM os direitos de uso irrestrito e livredo algoritmo, após alteração feita pela NSA que encurtou o tamanhodas chaves e após debates públicos sobre sua segurança.

• 1976 ....... O algoritmo escolhido é adotado em 23/11/76 como padrãooficial nos EUA, renovável a cada 5 anos, com nome de DataEncription Standard (DES). O NIST publica várias documentos deespecificação para implementação e uso do DES, com intenção depoder validar implementações em hardware.

• 1981-92........ ANSI, ISO acolhem e NIST renova o padrão DES.

Page 94: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende80

Descrição do algoritmo padrão DES

•••• Especificação geral -

Para cifra de bloco de 64 bits: o bloco de entrada, chave e criptograma

tem o mesmo tamanho. O algoritmo é uma rede de Feistel, constituida de 16

rodadas que alternam substituição f, XOR e permutação em subblocos L, R.

DESBloco da mensagem

R0L0

Permutação IP

K1

f⊕⊕⊕⊕

R1 = L0 ⊕ f(R0,K1)L1 = R0

f⊕⊕⊕⊕

R2 = L1 ⊕ f(R1,K2)L2 = R1

K2

f⊕⊕⊕⊕

R16 = L15 ⊕ f(R15,K16)L16 = R15

K16

Permutação IP-1

Bloco do Criptograma

Chave k

subchave derodada Ki

64 bits

32 32

32 32

64

Page 95: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende81

•••• Especificação do DES -

Cada oitavo bit da chave k (paridade do byte), é extraído e os outros

permutados antes da geração das subchaves locais Ki. Estas subchaves são

calculadas por permutação e compressão, repetidas a cada rodada, entrando na

composição de f conforme o diagrama e tabelas abaixo

S-boxes bits 1 2 3 4 5 6

bits 1 2 3 4

S1 S2 S3 S4 S5 S6 S7 S8

Ki

Buffer de chave

Rotação

Buffer de chave

Expansão

Ri-1

f

⊕⊕⊕⊕

Li

Permutação

E-box

Substituição

Li-1

Ri

S-boxes

P-box

⊕⊕⊕⊕

Rotação

Compressão

E-box: bits 1 2 3 4 5 6 7 8 .......

DES: i-ésima rodada

Rotação:Rodadas i =1 2,9,16 outras DireçãoEncripta 1 bit 1 bit 2 bits EsquerdaDecripta 0 bit 1 bit 2 bits Direirta1 2 3 4 5 6 7 8 9 10 11 12 13 ......

.....3648

32

48

64

48

64

32 32

32

Page 96: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende82

•••• Especificação das substituições DES -

As caixas de substituição (S-boxes) foram escolhidas de forma a

minimizar a alcance da técnica estatística de ataque por texto pleno escolhido,

conhecido a partir de 1990 como criptoanálise diferencial.

S1 0 1 2 3 4 5 6 7 8 9 A B C D E F0 E 4 D 1 2 F B 8 3 A 6 C 5 9 0 71 0 F 7 C E 2 D 1 A 6 C B 9 5 3 82 4 1 D 8 C 6 2 B F C 9 7 3 A 5 03 F C 8 2 4 9 1 7 5 B 3 E A 0 6 D

↑ Bits (b1 b6) de entrada ←Bits (b2 b3 b4 b5) de entrada→ valores hexadecimaisS2 0 1 2 3 4 5 6 7 8 9 A B C D E F0 F 1 8 E 6 B 3 4 9 7 2 D C 0 5 A1 3 D 4 7 F 2 8 E C 0 1 A 6 9 B 52 0 E 7 B A 4 D 1 5 8 C 6 9 3 2 F3 D 8 A 1 3 F 4 2 B 6 7 C 0 5 E 9

↓ S-box ...↑ Bits de saída ↑ ... valores hexadecimaisS3 0 1 2 3 4 5 6 7 8 9 A B C D E F0 A 0 9 E 6 3 F 5 1 D C 7 B 4 2 81 D 7 0 9 3 4 6 A 2 8 5 E C B F 12 D 6 4 9 8 F 3 0 B 1 2 C 5 A E 73 1 A D 0 6 9 8 7 4 F E 3 B 5 2 C

S4 0 1 2 3 4 5 6 7 8 9 A B C D E F0 7 D E 3 0 6 9 A 1 2 8 5 B C 4 F1 D 8 B 5 6 F 0 3 4 7 2 C 1 A E 92 A 6 9 0 C B 7 D F 1 3 E 5 2 8 43 3 F 0 6 A 1 D 8 9 4 5 B C 7 2 E

S5 0 1 2 3 4 5 6 7 8 9 A B C D E F0 2 C 4 1 7 A B 6 8 5 3 F D 0 E 91 E B 2 C 4 7 D 1 5 0 F A 3 9 8 62 4 2 1 B A D 7 8 F 9 C 5 6 3 0 E3 B 8 C 7 1 E 2 D 6 F 0 9 A 4 5 3

S6 0 1 2 3 4 5 6 7 8 9 A B C D E F0 C 1 A F 9 2 6 8 0 D 3 4 E 7 5 B1 A F 4 2 7 C 9 5 6 1 D E 0 B 3 82 9 E F 5 2 8 C 3 7 0 4 A 1 D B 63 4 3 2 C 9 5 F A B E 1 7 6 0 8 D

S7 0 1 2 3 4 5 6 7 8 9 A B C D E F0 4 B 2 E F 0 8 D 3 C 9 7 5 A 6 11 D 0 B 7 4 9 1 A E 3 5 C 2 F 8 62 1 4 B D C 3 7 E A F 6 8 0 5 9 23 6 B D 8 1 4 A 7 9 5 0 F E 2 3 C

S8 0 1 2 3 4 5 6 7 8 9 A B C D E F0 D 2 8 4 6 F B 1 A 9 3 E 5 0 C 71 1 F D 8 A 3 7 4 C 5 6 B 0 E 9 22 7 B 4 1 9 C E 2 0 6 A D F 3 5 83 2 1 E 7 4 A 8 D F C 9 0 3 5 6 B

Page 97: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende83

Análise do DES

•••• Segurança -

1. A IBM afirma ter o DES consumido 17 homens-ano de intenso trabalho de

criptoanálise. A NSA supostamente induziu alterações no algoritmo original,

no comprimento útil da chave (de 112 para 56 bits) e nas caixas S, talvez

para eliminar possíveis trapdoors plantadas pela IBM.

2. Durante os debates para escolha do padrão pela NIST, alguns críticos

suspeitaram terem as alterações sido impostas para que a NSA pudesse

plantar trapdoors no algoritmo. Em 1978 uma comissão do senado

americano com acesso a material secreto desautorizou essas suspeitas.

•••• Chaves fracas -

As quatro chaves abaixo, dentre as possíveis 72 057 594 037 927 936

chaves do DES, geram apenas 4 subchaves, usadas em 4 rodadas cada.

Valores de chaves fracas do DES (com bits de paridade)

k= 0101 0101 0101 0101 hexadecimalk= 0101 0101 FEFE FEFEk= FEFE FEFE 0101 0101k= FEFE FEFE FEFE FEFE

•••• Número de rodadas -

Após 5 rodadas, qualquer bit do criptograma é função dos 64 bits de

entrada e dos 56 bits da chave. Porém a técnica de criptonálise diferencial

(secretamente conhecida dos projetistas do DES) permite ataque eficiente por

texto pleno escolhido, caso o algoritmo execute menos de 16 rodadas.

Page 98: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende84

Criptoanálise diferencial

•••• Aplicações -

Nas redes de Feistel onde f(k,m) aplica substituição em k⊕ m, as

propriedades estatísticas de f podem ser exploradas em ataques de texto pleno

conhecido, pela análise de diferenças na entrada e saída de f:

1. Calcula-se a probabilidade de ocorrências de padrões na saída f(k,m)

⊕ f(k,m’), para dada diferença fixa entre valores de entrada m e m’.

Constrói-se uma tabela para f dessas probabilidades, que independem de

k. (Tabela de características de f)

2. De posse de uma cifra com chave k desconhecida, encripta-se vários pares

de mensagens m, m’ e mede-se a freqüência de diferenças nos pares de

saída na rodada i. Compara-se as freqüências medidas com as

características de f, para inferir prováveis bits de Ki⊕ m e Ki⊕ m’

3. Combinam-se as probabilidades para valores de bits em subchaves Ki das

várias rodadas, para se estimar os bits mais prováveis da chave k.

f⊕⊕⊕⊕

∆L XOR ∆out0x60000000

Ki

∆in = 0x60000000∆L

Probabilidade( ∆out=00808200|∆in=0x60000000 ) =

Exemplo de característica do DES

∆in∆out

Page 99: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende85

Ataques ao DES por texto pleno adaptativo

•••• Técnica mais eficaz em 1995: criptoanálise linear- (Matsui 93)

Após a criptoanálise diferencial se tornar pública, foi inventado a técnica

de ataque da criptoanálise linear, que usa aproximação linear para descrever o

comportamento interno de uma cifra de bloco, explorando tendências não

randômicas desse comportamento.

Com refinamentos desenvolvidos até 1995, esta é a melhor técnica

publicamente conhecida para quebra do DES, usando em média 243 blocos de

texto pleno escolhidos. Uma implementação em software, com o

processamento distribuído em 12 estações HP9000/735 conseguiu recuperar a

chave em 50 dias. (Matsui, CRIPTO 94)

Expansão

Ri-1

f

⊕⊕⊕⊕

Li

Permutação

E-box

Substituição

Li-1

Ri

S-boxes

P-box

⊕⊕⊕⊕

Ki

b17 in

b26

b17 b18 b19 b20

b3 b8 b14 b25 out

Maior tendência do DES: segundo bit da caixa S5

Probabilidade de

(b26 = b3 ⊕ b8 ⊕ b14 ⊕ b25 out)

= 0.5 - 5/16

b26 key

Page 100: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende86

Técnicas de robustecimento do DES

•••• Encriptação tripla -

Até 1992, não se sabia se essa técnica aumentava realmente a segurança

da cifra, ou apenas seu tempo de execução. A demonstração de que o

algoritmo criptográfico do DES não forma um grupo (Campbell, CRIPTO ’92)

confirmou a eficácia da tripla encriptação. Composições menores ou em outras

disposições triplas resultam mais frágeis que esta:

•••• Caixas de substituição dinâmicas -

Alguns fabricantes de placas de encriptação DES implementam alocação

dinâmica para valores das caixas S1..S8 durante a leitura da chave.

Toda a segurança do DES e os ataques eficientes hoje conhecidos

concentram-se nessas caixas. Substituições aleatórias quase sempre tornam o

algoritmo bem mais vulnerável à criptoanálise diferencial ou linear. (resistência

da cifra a uma dessas técnicas tende a favorecer à outra)

Substituições dinâmicas só devem ser usadas com vida útil curta.

DES-1

criptograma

Decripta

Encripta DES = algoritmo emmodo de encriptação

Cifra Triplo DES

k

DES DES-1

DES DES-1 DES

k' k''mensagem

DES-1 = algoritmo emmodo de decriptação

Chave kk’k’’

Page 101: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende87

Outros Algoritmos Simétricos

•••• NewDES (Robert Scott, 1985) -

Apesar do nome, não é um padrão nem é variante do DES. É um

algoritmo iterativo com 17 rodadas, que usa blocos de 64 bits e chave de 120

bits, cujos bytes são as subchaves K0...K14, usadas intercaladamente.

•••• Análise do NewDES -

Concebido para implementação em software mais eficiente que o DES,

pois opera em bytes. É menos seguro embora use chave maior, sucumbindo ao

ataque de chaves relacionadas, com 233 chaves e mensagens escolhidas em 233

passos. (parecido à criptoanálise diferencial, onde mede-se a freqüência de

diferenças na saída entre pares de chaves)

⊕⊕⊕⊕

⊕⊕⊕⊕

NewDES - rodadas 1 e 2

K0

f ⊕⊕⊕⊕

f ⊕⊕⊕⊕

⊕⊕⊕⊕f⊕⊕⊕⊕

⊕⊕⊕⊕f⊕⊕⊕⊕

⊕⊕⊕⊕ f ⊕⊕⊕⊕

⊕⊕⊕⊕ f ⊕⊕⊕⊕

⊕⊕⊕⊕ f ⊕⊕⊕⊕

⊕⊕⊕⊕ f ⊕⊕⊕⊕

K1

K2

K3

K4

K5

K6

B0 B1 B2 B3 ←Bytes do bloco→ B4 B5 B6 B7

Rodada1

Rodada2

Page 102: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende88

•••• Khufu (Ralph Merkle, 1990) -

Algoritmo cujo projeto explora as deficiências do DES em software. Para

cifra de bloco de 64 bits. Iterativo com chave de 512 bits, número de rodadas

configurável e S-boxes 8x32 dinâmicas, geradas a partir da chave.

Apresenta overhead de tempo execução para cálculo das S-boxes, com

impacto em encriptações curtas e em ataques por força bruta. É resistente à

analise diferencial e linear, e patenteado (licenças concedidas pela Xerox Corp,

P.O. box 1600, Stamford CT, EUA)

•••• Khafre (Ralph Merkle, 1990) -

Algoritmo cujo projeto explora as deficiências do DES em software. Para

cifra de bloco de 64 bits, é uma rede de Feistel iterativa com número de

rodadas configurável e usa chave de tamanho variável, entre 64 e 128 bits.

Alternativa ao algoritmo Kuhfu que usa S-boxes fixas e portanto sem

overhead no tempo de execução. É patenteado (licença pela Xerox Corp)

•••• RC2 (Ron Rivest, 1990) -

RC2 é um algoritmo proprietário, restrito aos implementadores

licenciados pela RSA Data Security Inc. Para cifra de bloco de 64 bits. Não

iterativo, usa chave de tamanho variável. (até 1024b). Em princípio é resistente

à análise diferencial, linear e 3x mais eficiente em SW que o DES.

Um acordo entre a Software Publishers Assoc. e o governo dos EUA

autoriza a exportação do algoritmo em implementações que usam 40 bits da

chave, empregado em vários protocolos criptográficos para redes TCP/IP.

Page 103: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende89

•••• IDEA (Xuejia Lai & James Massey, 1991) -

Algoritmo baseado em vasta fundamentação teórica, cifra de bloco de 64

bits iterativa com 8 rodadas e chave de 128 bits, alterna operações de 3 grupos

algébricos de estruturas distintas e opera em palavras de 2 bytes.

IDEA - Interational Data Encription Algorithm

⊕⊕⊕⊕

⊕⊕⊕⊕ki,1

ki,2

ki,5

ki,6

W0 W1 ←Palavras do bloco→ W2 W3

Rodadai = 1..8

++++

∗∗∗∗

⊕⊕⊕⊕++++

++++

∗∗∗∗

ki,3

ki,4

∗∗∗∗++++

⊕⊕⊕⊕⊕⊕⊕⊕⊕⊕⊕⊕

k9,1

k9,2 ++++∗∗∗∗

++++

∗∗∗∗ k9,4

k9,3

Transformação de saída

Y0 Y1 ←Palavras do criptograma→ Y2 Y3

∗∗∗∗++++⊕⊕⊕⊕

- Multiplicação módulo 216+1- Soma módulo 216

- XOR bit a bit

∗∗∗∗

Subchaves de Encriptação Subchaves de DecriptaçãoChaveK ki,1 ki,2 ki,3 ki,4 ki,5 ki,6 (i,1) (i,2) (i,3) (i,4) (i,5) (i,6)

i = 1 B1............ bytes de K ..........B12 i=1 k9,1-1 -k9,2 -k9,3 k9,4

-1 k8,5 k8,6

i = 2 ..........B16 ........ bytes de K<<25 i=2 k8,1-1 -k8,3 -k8,2 k8,4

-1 k7,5 k7,6

i = 3 B9...................... B16 B1............ i=3 k7,1-1 -k7,3 -k7,2 k7,4

-1 k6,5 k6,6

i = 4 B5............. bytes de K <<50 ....... i=4 k6,1-1 -k6,3 -k6,2 k6,4

-1 k5,5 k5,6

i = 5 B1..................... bytes de k<<75 i=5 k5,1-1 -k5,3 -k5,2 k5,4

-1 k4,5 k4,6

i = 6 ..........B16 bytes de K<<100........ i=6 k4,1-1 -k4,3 -k4,2 k4,4

-1 k3,5 k3,6

i = 7 B13.......................B16 B1........... i=7 k3,1-1 -k3,3 -k3,2 k3,4

-1 k2,5 k2,6

i = 8 .........bytes de K<<125 ..........B16 i=8 k2,1-1 -k2,3 -k2,2 k2,4

-1 k1,5 k1,6

saída=9 B1..... K<<125 .......B8 i=9 k1,1-1 -k1,2 -k1,3 k1,4

-1

Page 104: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende90

•••• Análise do IDEA -

Algoritmo patenteado, projetado como modelo de cifras de Markov, para

as quais a resistência à criptoanálise diferencial pode ser formalizada e

quantificada. Pode ser usado em qualquer modo encadeado.

Vários criptólogos já analisaram a versão final do algoritmo (1992), sem

nenhum ter divulgado alguma técnica descoberta que o enfraqueça. Há uma

classe de chaves fracas (para ataques de texto pleno escolhido) com

probabilidade menor que 2-96 de serem geradas ao acaso:

k= 0000 0000 00?0 0000 0000 0000 000? ???? ?000

Embora recente, talvez seja hoje a cifra simétrica mais robusta em uso.

Implementações do padrão de 8 rodadas em software são em geral 2x mais

eficientes que o DES. Com 4 rodadas são aparentemente seguras e dobram a

eficiência. Não pode ser expandido para palvras de 32 bits, porque o IDEA

explora o fato de 216+1 ser primo, enquanto 232+1 não é.

{ Pode substituir o DES sem muitas modificações em implementações

de serviços criptográficos. É mais conhecido por ter sido escolhido para uma

implementação do módulo shareware de segurança de e-mail, o PGP. IDEA é

patenteado na Europa e nos EUA, sendo livre de royalties para implementações

sem fins comerciais. Licenças para uso comercial são negociadas por Ascom

Sistec A G, Mägenwil, Suíça: [email protected]

•••• MMB (John Daemen, 1993) -

Algoritmo baseado no IDEA, com blocos e chave de 128 bits e

multiplicação módulo 232-1. É vulnerável à criptoanálise linear e ao ataque de

chave escolhida de Biham. É também menos eficiente que o DES para

implementações em hardware, embora seja eficiente em software.

Page 105: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende91

•••• GOST (USSR Gosudarstvenyi Standard, 1989) -

Padrão de algoritmo criptográfico estabelecido pelo governo da (ex-)

União Soviética para cifra de bloco de 64 bits, semelhante ao DES. É uma rede

de Feistel iterativa com 32 rodadas que usa chave de 256 bits.

As subchaves são palavras da chave, usadas circularmente: na encriptação

no sentido horário até a rodada 24, anti-horário nas rodadas 25 a 32; na

decriptação, as subchaves são usadas no sentido inverso.

•••• Análise do GOST -

O DES usa permutações em f para aumentar a difusão (efeito avalanche

da cifra, que propaga a influencia de qualquer bit de entrada em qualquer bit de

saída), enquanto o GOST usa um grande número de rodadas, o que também

contribui, junto com o tamanho da chave e a ocultação das S-boxes, para

neutralizar sua análise diferencial e linear.

Substituição

Tabela de subchavesRi-1

Li

Li-1

Ri

Soma módulo 232

Rotação<<11

GOST - rodada i

++++

⊕⊕⊕⊕ ++++

Substituição:8 S-boxes 4x4 paralelas,com permutações nãofornecidas na especificação

Page 106: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende92

•••• Blowfish (Bruce Schneier, 1994) -

Para cifra de bloco de 64 bits e chave com tamanho variável de até 448

bits. É uma rede de Feistel iterativa de 16 rodadas que usa XOR, consulta a

tabela e adição na função f, onde as 4 S-boxes 8x32 e o vetor de 18 subchaves

são gerados em iterações de inicialização do próprio algoritmo.

K1

BlowfishMensagem

f ⊕⊕⊕⊕

f ⊕⊕⊕⊕

f ⊕⊕⊕⊕

Criptograma

Chave k

Array de subchaves Ki

⊕⊕⊕⊕

K2 ⊕⊕⊕⊕

32 32

64 bits

K16 ⊕⊕⊕⊕

K17 ⊕⊕⊕⊕ K18⊕⊕⊕⊕

f:S-box 1

⊕⊕⊕⊕32 bits

++++S-box 2

S-box 3

S-box 4

8

8

8

8

++++

32

32

32

32

32 bits

++++ Soma módulo 232

Page 107: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende93

•••• Inicialização e análise do Blowfish -

• Algoritmo não patenteado, de uso inteiramente livre (o autor acredita na

criptografia como patrimônio intelectual coletivo da ciência).

• As subchaves e S-boxes são derivadas na seguinte inicialização:

1. Os vetores de subchaves e depois os das S-boxes são carregados, na ordem

em que indexados, com o XOR bit a bit da representação binária do

número π e da chave repetidamente concatenada.

2. A partir de um bloco de zeros na entrada, o algoritmo é iterado com o

criptograma, substituindo sucessivas subchaves ou blocos de 8 bytes das

S-boxes e realimentando a entrada (512 iterações).

• Chaves fracas (que geram S-boxes duplicadas) podem ser criadas, com

probabilidade de 2-14. Estas chaves não podem ser identificadas antes da

expansão inicializadora, mas até o momento não se conhece forma de

explorá-las com técnicas de análise diferencial e linear.

• O nº de mensagens escolhidas necessárias para este ataque é da ordem de

28r+1 onde r = nº de rodadas da implementação. (24r+1 com chaves fracas)

• Em implementações otimizadas para processadores de 32 bits que carregam

os vetores em cache, a encriptação de cada bloco pode ser feita em 26 ciclos

de clock do processador, usando 5K de memória RAM

Inicialização

Subchaves | S-boxes

Blowfish

VI = π XOR k k k k...

-Atribuição compós incremento

VI = 0

Page 108: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende94

•••• RC5 w/r/b (Ron Rivest, 1995) -

Algoritmos para uma família de cifras de bloco onde o nº de palavras w

do bloco, bytes b da chave e número de rodadas r são configuráveis. Projetado

para implementação em software, opera com XOR, rotações variáveis e

aritmética em 32 bits. Sua patente foi solicitada pela RSA Data Security Inc.,

que promete vir a cobrar royalties modestos pela licença.

As subchaves Si são geradas na inicialização. No caso w = 2, o bloco é

separado em palavras A e B, e os algoritmos da cifra são

•••• Inicialização do RC5 w/r/b -

A chave é copiada para um vetor L de inteiros longos L1...Lm usando a

convenção little endian. O vetor S de subchaves é inicializado com iterações a partir

de P e Q, respectivamente, com bits da representação binária de π e da constante

neperiana 'e', e depois mesclado com L conforme a especificação:

Encriptação RC5 2/r/b:

A = A+S0B = B+SIfor i = 1 to r do begin A = ((A⊕ B)<<<B)+S2i

B = ((A⊕ B)<<<A)+S2i+1end{>>>" = shift circular p/ direita}

Carga:{P=0Xb7e15163}

S0 = P {Q=0x9e3779b9}for i = 1 to 2*(r+1)−1 do Si = (Si−1+Q) mod 232

i = j = 0A = B = 0n = max ( 2*(r+1), m )

Decriptação RC5 2/r/b:for i = r downto 1 do begin B = ((B−S2i+1)>>>A)⊕ A

A = ((A−S2i )>>>B)⊕ BendB = B+SIA = A+S0

{"<<<" = shift circular p/ esquerda}

Mescla da chave:

do n times A = Si = (Si +A+B) >>>3

B = Lj = (Lj+A+B)>>>(A+B)i = (i+1) mod 2*(r+1)

j = (j+1) mod m

Page 109: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende95

•••• Skipjack (NIST, 1990) -

• Algoritmo patenteado e restrito, destinado apenas às funções de cifra em

hardware resistente a violações. Projetado para implementação nos chips

“Clipper”, e “Capstone”, que incorporam a funcionalidade necessária para

uso em protocolos de chaves escrituradas.

• Foi desenvolvido em 1985 e testado até 1990 pela NSA, e seus detalhes de

especificação nunca foram divulgados, exceto algumas de suas propriedades

básicas: para cifra de bloco de 64 bits, com chave de 80 bits e iterativo com

32 rodadas.

• Seus critérios de projeto, teste, e resultados dos testes foram avaliados por

um painel de criptólogos não governamentais que o consideraram seguro,

estimando para só daqui a 30 anos a equiparação do custo de ataque por

força bruta ao SKIPJACK ao custo atual de quebra do DES.

•••• Alguns Algoritmos menos conhecidos -

1. FEAL (1987) - Patenteado pela NNT do Japão, semelhante ao DES com

número variável de rodadas e rápido, teoricamente mais frágil que o DES.

Algoritmo favorito para teste de novas técnicas de criptoanálise

2. LOKI (1991) - Algoritmo australiano patenteado, semelhante ao DES.

3. CA-1.1 (1992) - Algoritmo francês baseado em automata celulares, para

cifra de bloco de 384 e chave de 1088 bits em processamento paralelo.

Patenteado e livre para uso não comercial (H Gutowitz)

4. CAST (1993) - Patente pendente no Canadá, considerado para adoção

como padrão. Usa bloco e chave de 64 bits, 6 S-boxes (8x32) geradas da

chave. Resistente à análise diferencial e linear. (Adams & Tavares)

Page 110: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende96

Critérios de projeto para cifras de bloco

•••• Princípios básicos (Shannon, 1949) -

1. Difusão - Espalhamento da influência de bits individuais da chave ou

mensagem através da maior parte possível do criptograma.

2. Confusão - Ocultação da relação entre mensagem, criptograma e chave no

sentido de tornar complexa sua análise estatística.

•••• Caso ideal versus caso viável -

• A confusão é uma propriedade suficiente para as cifras de bloco serem

seguras, e teoricamente tais cifras existem em abundância, já que são

apenas permutações do conjunto das cadeias de bits que formam blocos

• Por outro lado, um algoritmo contendo somente uma S-box 64x64 ocuparia

264 *64 bits (~ dez mil terabytes) de memória. Na prática intercala-se

camadas de confusão (tabelas pequenas) e difusão, geralmente por meio de

substituições e permutações, para construi-las.

•••• Redes de Feistel (Horst Feistel, 1973) -

Desenho de intercalação onde a propriedade nilpotente da operação lógica

de "ou" exclusivo (⊕ ) é combinada com a permutação dos operandos para

permitir a introdução de uma confusão qualquer na construção da classe de

funções inversíveis que constituem a cifra.

Li = Ri-1 ; Ri = Li-1 ⊕ f(Ri-1,Ki)

∀ f [ Li-1 = Li-1 ⊕ f(Ri-1,Ki) ⊕ f(Ri-1,Ki) ]

Page 111: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende97

•••• Resistência à análise diferencial e linear (Matsui, EUROCRIPT94)

Parece haver certa dualidade entre estes dois métodos, tanto nas técnicas de

exploração no ataque, como nos critérios de escolha de S-boxes que

introduzam não-linearidade nas cifras para resistirem a estes ataques.

•••• Critérios de definição para as S-boxes mxn -

1. Quanto maior a saída n em relação à entrada m, mais efetiva tende a ser

a análise linear e menos efetiva a análise diferencial, e vice versa..

2. Quanto maior as S-boxes, mais provável que sua substituição, se

escolhida ao acaso, seja resistente aos dois métodos de análise.

3. S-boxes fixas escolhidas para resistirem a estes dois métodos têm

segurança desconhecida contra métodos de ataque desconhecido, ao

contrário das S-boxes randômicas ou geradas a partir da chave.

•••• Comparação do impacto no desempenho das escolhas na

especificação das cifra (486SX 33MHz, Schneier 1995) -

Velocidade de encriptaçãoAlgoritmo KB/Seg Algoritmo KB/Seg

Blowfish (12 rodadas) 182 Khufu (16 rodadas) 221

Blowfish (16 rodadas) 135 Khufu (32 rodadas) 115

Blowfish (20 rodadas) 110 NewDES 223

DES 35 RC5 bloco32/8rodadas 127

FEAL (8 rodadas) 300 RC5 32/12 86

FEAL (16 rodadas) 161 RC5 32/16 65

FEAL (32 rodadas) 91 RC5 32/20 52

GOST 53 Triple DES 12

Page 112: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende98

Cifras Encadeadas

•••• RC4 (RSA Data Security, 1987) -

Algoritmo restrito até 1994, quando teve sua especificação publicada

anonimamente na lista de mensagens Cypherpunk. Para cifras encadeadas de

bytes em modo OFB, usa uma S-box 8x8 S contendo permutação S0...S255 dos

valores hexa 00,..,FF, e dois contadores de bytes m, n.

•••• Análise do RC4 -

1. A cifra encadeada em modo OFB encripta ou decripta executando o

XOR de cada byte k gerado pelo algoritmo, com cada byte da mensagem

ou do criptograma. A chave semente pode ter até 1024 bits

2. Há 256!*2562 ≈ 21700 estados possíveis para o gerador de chaves de

padding deste algoritmo. RSA afirma parecer não haver sementes k1...k255

que gerem ciclos pequenos, e ser o algoritmo imune às análises

diferencial e linear. Licenciado para exportação com H = 40.

3. Usado em dezenas de produtos (Lotus Notes, Apple AOCE, Oracle

Secure SQL, CDPD, etc.) Em princípio pode ser adaptado de 8 para 16

bits, tornando-o mais rápido, mas com 216 iterações de inicialização e

~100K de RAM ocupados pela S-box 16x16.

Geração da seqüência de pad: k

repeatn = (n+1) mod 256m = (m+ Sn) mod 256Troca (Sm ,Sn)t = (Sm +Sn) mod 256k= St

Inicialização de S com a chavesemente concatenada = k1...k255:

for n=0 to 255 do Sn = nm=0for n=0 to 255 do

m = (m+Sn +k n) mod 256Troca (Sm ,Sn)

Page 113: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende99

•••• SEAL (Don Coppersmith, 1994) -

Algoritmo para construção de famílias de geradores pseudo-randômicos,

que pode tanto ser usado para cifras encadeadas como adaptado para cifras de

bloco em modo não seqüencial (ECB).

Usa uma chave de 160 bits para inicializar três S-boxes 9x32, um índice n

semelhante ao VI das cifras de bloco e quatro registradores de 32 bits, para

gerar iterativamente uma seqüência randômica de até 64KB, que pode

funcionar como chave de padding do n-ésimo bloco de uma cifra.

De arquitetura inovadora, foi projetado para implementação eficiente em

processadores de 32 bits. Adota as seguintes estratégias:

•••• Análise do SEAL -

Requer 5 operações de máquina para gerar cada byte de padding,

alcançando 50 MB/seg num PC 486 de 50 MHz. Parece sólido, e até 1996 não

havia sido publicado nenhuma criptoanálise independente do algoritmo.

Patente pendente e licença para implementação pela IBM.

1. A chave grande é usada apenas para derivar as três S-boxes.

2. O índice é usado na mistura de duas S-boxes para escolha da

mudança nos registradores de iteração, e na mistura de outras

duas para escolha da sequência de operações XOR ou soma

dentro função de mistura de cada rodada da iteração.

3. Estados internos mantidos em metade dos registradores não

se manifestam na cadeia de saída, sendo usados apenas para

modificar o estado dos registradores de iteração.

Page 114: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende100

•••• A5 -

Algoritmo adotado pelo consórcio mundial de telefonia móvel GSM

(Global System for Mobile communication) para cifragem no elo entre o

telefone e a central de comutação. Projetado na França, é uma variação da

composição de LFSRs tipo "para e segue" com três registradores de

deslocamento linear baseados em polinômios esparsos de grau 19, 22 e 23.

•••• Análise do A5 -

Houve uma disputa durante os anos 80 entre os membros do GSM, sobre

o grau de robustez desejada para o padrão (a Alemanha queria criptografia

forte, mas sua opinião não prevaleceu). O algoritmo deveria ser restrito, mas

um acordo do GAT com Bradford University para avaliação do algoritmo

omitiu a restrição, e o A5 se tornou público.

Há um ataque simples ao algoritmo que requer 240 encriptações. O

algoritmo passa em todos os testes de randomicidade conhecidos, estando sua

fragilidade concentrada nos pequenos tamanhos dos registradores e na

rarefação dos bits de captura dos polinômios irredutíveis escolhidos.

O algoritmo é bastante eficiente.

A5

Saída⊕⊕⊕⊕

- Controle de deslocamento

⊕⊕⊕⊕

⊕⊕⊕⊕

⊕⊕⊕⊕

⊕⊕⊕⊕

- Funçãomaioria

LFSR 1

LFSR 3

LFSR 2

Page 115: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende101

•••• PKZIP (Roger Schafly) -

A cifragem (não a compressão) neste utilitário, se presentes nas versões

até 2.04g, é por cifra encadeada em modo CBC que gera bytes.

O algoritmo da cifra usa uma chave K3 de 8 bits e registradores de 32 bits

K0, K1 e K2, que armazenam o estado interno do gerador, atualizados com o

uso de uma tabela de 256 bytes pré-computada, em iterações onde o CRC dos

32 bits anteriores é calculado pelo polinômio 0xedb88320. Um vetor de

inicalização é concatenado ao início da mensagem. Na decriptação, invertem-

se criptograma e mensagem no padding

/*buffer de mensagem M[i], de criptograma C[i] */

int K0 = 305419896

int K1 = 591751049

int K2 = 878082192

for(i=1, ,i++) {

C[i] = M[i]^K3; /* padding */

K0 = crc32(K0,M[i]);

K1 = K1*134775813+1;

K2 = crc32(K2,K1>>24);

K3 = ((K2|2)*(K2|2)^1))>>8

}

/*crc32(a,b)=(a>>8)^tabela[(a&0xff)^b]*/

•••• Análise do PKZIP -

Algoritmo bastante frágil. Um ataque simples de dicionário com 40 a 200

bytes de texto pleno conhecido (cabeçalho de mensagens, por exemplo) desvela

a chave em ~227 operações, ou algumas horas num PC.

Page 116: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende102

Cript(1) (Unix, 1983) -

Algoritmo original de encriptação das primeiras versões do sistema

operacional Unix, é uma cifra encadeada baseada na mesma arquitetura da

máquina eletromecânica, Enigma, usada pelos militares e diplomatas alemães

da segunda guerra e quebrada pela equipe inglesa de analistas, liderada por

Alan M. Turing.

O algoritmo simula um rotor de 256 elemetos de substituição usado em

série com um rotor refletor (a máquina Enigma usava 3 dentre cinco rotores de

substituição, mais um rotor de reflexão).

Para um analista bem instrumentado, esta cifra é fácil de atacar. Um

utilitário de domínio público, o Crypt Breakers Workbench (CBW), pode ser

usado para quebrar arquivos encriptados com o Cript(1).

RAMBUTAN (Communications Eletronics Security Group) -

Algoritmo restrito, vendido apenas em implementações em hardware

invioláveis sob licença do governo Britânico para aplicações classificadas

como “Confidential”, não sendo encontrado no varejo. Usa chave de 112 bits e

pode operar nos modos ECB, CBC e CFB de 8 bits.

XPD/KPD (Hughes Aircraft Corporation, 1986) -

Algoritmo usado em equipamentos de comunicação e rastreamento de

aeronaves vendidas a países estrangeiros aos EUA. Usa um LFSR de 61 bits

inicializado com bits de captura de um dentre 210 polinômios primitivos

armazenados em ROM, e oito filtros não-lineares na saída.

Page 117: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende103

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

5. Algoritmos Criptográficos – Parte 2Pedro Antonio Dourado de Rezende

Funções de Hash

•••• Premissas de um hash ou checksum criptográfico seguro -

Como mecanismo principal na autenticação da integridade de dados,funções de hash h:M →→→→{0,1}n devem satisfazer as propriedades:

1. Propriedades básicas (unidirecional e livre de colisão)• Dado m, é fácil calcular c = h(m) e dado c é difícil calcular m;• Dado m qualquer, é difícil produzir uma colisão com m (encontrar m'

tal que h(m) = h(m')). O valor de n deve dificultar a produção decolisão através de ataques por dicionário em m'.

2. Propriedade adicional (resistência à colisão)• Para algumas aplicações, a função de hash deve ser resistente a colisão:

deve ser difícil encontrar, por meio de ataques "de aniversário" outécnica melhor, qualquer colisão na função h.

•••• Ataques de aniversário a funções de hash -

Descrição: Encontrar um par m e m' tal que h(m) = h(m').

Exemplo: Ao propor um contrato (protocolo tipo VII), o fraudador preparaoutra versão que lhe seja vantajosa e prejudicial à outra parte.Testa o hash de variações de ambas versões, contendo combinações deespaços adicionais (ASCII 32) onde há quebras de linha, até conseguir umpar m (contrato), m' (fraude) que gerem mesmo hash. Assinam o hash dem e depois, em juízo, o fraudador protesta m'.

Page 118: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende104

Construção de funções de hash

•••• Tamanho do hash -

A entropia n da imagem da função de hash h:M →→→→{0,1}n deve ser maior

que do espaço de chaves das cifras (ao menos o dobro, n > 128 bits)

Se n = nº de testes no ataque por dicionário com probabilidade = 1/2 de acerto,

≈ n1/2 testes no ataque de aniversário terão igual probabilidade.

•••• Encadeamentos de função compressora -

As funções projetadas para hash, hoje consideradas seguras, são

construídas encandeando-se alguma função de compressão (com entrada e

saída de tamanhos fixos, N e n respectivamente), com entrada de blocos da

mensagem e valores de compressão retroalimentados.

A mensagem é formatada como concatenação de blocos de compressão,

de tamanho N-n, e a saída da função de hash (digesto da mensagem) é a última

saída da função de compressão. Para melhorar a resistência à colisão, inclui-se

|m| no enchimento do último bloco de m.

hi

Função decompressão

...mi-1 mi mi+1 ←blocos da mensagem

hi-2

Hash por encadeamento de compressão

Função decompressão

Função decompressão

hi-1 hi+1

N n

Page 119: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende105

MD5

•••• Descrição do algoritmo MD5 (Ron Rivest, 1992) -

Hash de 128 bits, é a mais recente da série de funções de hash

desenvolvidas pela RSA Data Security. MD5 reforça a função anterior MD4,

depois da descoberta de formas de ataque a algumas partes desta.

A mensagem é preparada apondo-se sufixo com zeros seguidos da

representação binária do comprimento da mensagem original em 64 bits,

formando blocos de compressão com 16 subblocos de words (32 bits cada)

Nas rodadas i = 0,..,3 (uma a mais que MD4), uma operação não-linear fi é

executada 16 vezes, cada execução envolvendo três das quatro variáveis de

encadeamento A, B, C e D, um subbloco e duas constantes distintas.

Função de compressão do MD5 - Laço externo

mi,1 mi,2 mi,3 mi,4 mi,5 mi,6 mi,7mi,5 mi,8 mi,9

ABCD

i-1

↓Bloco de compressão mi ←←←←512 bits→→→→

Rodada0

Rodada1

Rodada2

Rodada3

ABCD

i

++++++++

++++++++

h(m1... ms) = ABCDs

Operações de rodada não-lineares:

g0(x,y,z) = (x∧ y)∨ ((¬x)∧ z); f0(a,b,c,d,mi,s,ti): a←b+((a+g0(b,c,d)+mi,j+ti,j)<<<s)g1(x,y,z) = (x∧ z)∨ ((¬z)∧ y); f1(a,b,c,d,mi,s,ti): a←b+((a+g1(b,c,d)+mi,j+ti,j)<<<s)g2(x,y,z) = x⊕ y⊕ z; f2(a,b,c,d,mi,s,ti): a←b+((a+g2(b,c,d)+mi,j+ti,j)<<<s)g3(x,y,z) = y⊕ (x∨ (¬z)); f3(a,b,c,d,mi,s,ti): a←b+((a+g3(b,c,d)+mi,j+ti,j)<<<s)

Page 120: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende106

•••• Análise da função MD5 -

O subbloco mi,b(j) é escolhido segundo tabela b(j), distinta para cada r.

Um ano após sua divulgação, den Boer e Bosselaers encontraram uma

forma de derivação de colisões mais eficiente que o ataque de aniversário para

a função de compressão do MD5. Esta fragilidade na resistência à colisão não

tem impacto nas propriedades básicas do hash. (Eurocrypt '93)

•••• MD2 -

Outra função de hash do mesmo autor, usada alternativamente ao

algoritmo MD5 nos protocolos PEM para correio eletrônico. É baseada na

permutação randômica de bytes, semelhante à cifra encadeada RC4.

É também um hash de 128 bits, onde a função de compressão recebe

blocos de 128 bits e a mensagem é preparada para resistir à colisão com um

sufixo checksum da mensagem de 16 bytes. Embora pareça segura, é mais lenta

que a maioria das funções de hash em uso hoje.

A

B

C

D

Operações do MD5 - Laço interno fr da rodada r

<<<s

mi,1 ..................... mi,b(j)

Função não-linear gr

ti,j

Passos j=1,..,16 compós-rotação de 1 word

++++ ++++ ++++ ++++

ti,j = trunc(232*abs(sin(j+16*r))

Page 121: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende107

SHA

•••• Descrição do algoritmo SHA (NIST - NSA, 1992) -

Secure Hash Algorithm, de 160 bits, proposto como padrão para o

protocolo de assinatura digital DSA do governo dos EUA. Também baseado

em variações no algoritmo MD4, resiste ao ataque de De Boer.

A mensagem é preparada para hash como no algoritmo MD5, mas com

um pre-processamento adicional dos subblocos, que são expandidos de 16 mi,j

para 80 words wi,j de 32 bits, através da seguinte rotina:

Cada uma das 4 rodadas executa 20 operações semelhantes às do MD4, e o aumento

na entropia é obtido com uma quinta variável de encadeamento, E.

Operações do SHA - Laço interno fr da rodada r

<<<30

wi,1 ........................ wi,j+20r ...................wi,80

Função não-linear gr

trA

B

C

D

E

Passos j=1,..,20 compós-rotação de 1word

Geração dos subblocos para compressão

for j = 1 to 16 wi,j = mi,jfor j = 1 to 16

wi,j = (wi,j-3⊕ wi,j-8⊕ wi,j-14⊕ wi,j-16)<<<1

++++ ++++ ++++ ++++

tr = trunc(232*cr1/2/4); c0=2; c1=3; c2=5; c3=10;

++++

<<<5

Page 122: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende108

Outros hashes por compressão encadeada

•••• RIPE-MD (RACE - Primitives Evaluation Effort) -

Padrão para algoritmo de hash proposto pelo grupo RACE (Research &

Dev. in Advanced Communications Tecnologies in Europe), de 128 bits.

Duas versões da função de compressão semelhantes ao MD5, com

rotações e constantes de operações distintas, executam em paralelo e os

resultados são somados na retroalimentação das variáveis de encadeamento,

para dificultar a criptoanálise do algoritmo.

Em 1997 foi divulgado uma versão de 160 bits, o RIPE-MD160, que tem

as duas funções de compressão paralelas semelhantes à do SHA.

•••• HAVAL (Zheng, Pieprick & Seberry, 1993) -

Modificação de MD5, com saída de tamanho variável: 128, 160, 192, 224

ou 256 bits. Usa 8 variáveis de encadeamento, número variável de rodadas (3 a

5) de 16 operações, com funções não-linerares de 7 variáveis. Rotações em

dois sentidos impedem o ataque de De Boer à compressão.

•••• Algoritmos Evitáveis -

Knapsack hash (Damgard, 1989): quebrável em 232 operações;

Cellular automata hash (Wolfram, 1991): inseguro;

Fast Fourier transform hash (Schnorr, 1992): muito lento;

Galois field GF(2593) hash (U. of Waterloo, 1992): lento.

Page 123: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende109

Hash usando algoritmos para cifra de bloco

•••• Casos para adaptação -

1. Código de autenticação de mensagens (MAC): Em princípio, qualquer

algoritmo criptográfico para cifra de bloco poderia fornecer, em modo CBC

ou CFB, o último bloco do criptograma como autenticação da mensagem.

Neste caso, existem outros tipos de ataque para fraudes.

2. Função de hash: Um algoritmo criptográfico é mais vulnerável em um hash

que em uma cifra. Como no hash a chave é conhecida, vários truques podem

ser usados para explorar com mais eficiência a análise diferencial, e a

escolha de texto pleno não apresenta dificuldades práticas.

•••• Adaptações para hash de mesmo comprimento do bloco -

Algoritmos criptográficos superdimensionados ou de bloco longo podem

ser adaptados para construção de hash, com diferentes esquemas de

encadeamento, se o tamanho do bloco previne ataques por aniversário.

Das 64 possíveis combinações que mapeiam mi, hi-1, (mi⊕ hi-1) e h0 (Vetor

de inicialização) no algoritmo, 13 são impróprios, 37 inseguros, 8 são seguros

contra ataques conhecidos exceto o de ponto fixo, e 4 deles, descritos abaixo,

são hoje seguros. (B. Preneel, U. Leuven, 1993).

Esquema Davies-Meyer

encriptação

mi

chave

hi-1 hi⊕⊕⊕⊕

Page 124: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende110

•••• Análise dos esquemas de encadeamento -

Estes quatro esquemas seguros supõem que o algoritmo criptográfico

tenha o tamanho do bloco idêntico ao da chave, que será o tamanho do hash. O

segundo esquema acima (*) foi proposto como padrão ISO para hash baseado

em algoritmo criptográfico (ISO-IEC/JTC1/SC27/WG2).

O esquema de Davies-Meyer foi modificado por Lai e Massey para usar

o algoritmo IDEA na construção de um hash de 64 bits (Eurocript 92).

Para construção de hash de tamanho maior que o bloco do algoritmo,

vários esquemas foram propostos e poucos têm se mostrado seguros.

Esquema Davies-Meyer modificado

encriptação

hi-1

chavemi

hi

⊕⊕⊕⊕

encriptação

hi-1

chave

mi hi⊕⊕⊕⊕

Esquemas seguros de encadeamento

⊕⊕⊕⊕ ⊕⊕⊕⊕⊕⊕⊕⊕

(*)encriptação

hi-1

chave

mi⊕⊕⊕⊕ ⊕⊕⊕⊕

hi

encriptação

hi-1

chavemi⊕⊕⊕⊕⊕⊕⊕⊕⊕⊕⊕⊕

hi

64 bits

IDEAencriptação

mi

chavehi-1 hi

128 bits

64 bits

Page 125: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende111

•••• Esquema Davies-Meyer em tandem ou lado a lado -

Estes esquemas têm se mostrado seguros para construção de hash queduplica o tamanho do bloco, com algoritmos criptográficos cuja chave tenha odobro do tamanho do bloco (i.e., IDEA).

•••• MDC-2 e MDC-4 (Merley-Schilling, IBM, 1988) -

Esquemas patenteados para construção de hash que duplicam o tamanhodo bloco, sem restrições ao algoritmo criptográfico simétrico. Estão sendoconsiderados para padrão ANSI, ISO e avaliados pelo RIPE.

Tandem

MDC-2

encriptação

mi

chavegi-1 gi

encriptação

chave

hi-1 hi⊕⊕⊕⊕

⊕⊕⊕⊕

mi

encriptaçãochave

gi-1

encriptaçãochave

hi-1 hi

h(m1...ms) =h g

gi

encriptação

mi

chavegi-1 gi

encriptação

chave

hi-1 hi⊕⊕⊕⊕

⊕⊕⊕⊕

Lado a ladoh(m1...ms) =h g

Page 126: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende112

•••• Esquemas inseguros -

Preneel-Bosselaers-Govaerts, Quaisquater-Girault, LOKI Double-block e

Davies-Meyer paralelo. Para estes esquemas foram recentemente descobertos

métodos de ataque que os tornaram inseguros na criptografia. O segundo

desses esquemas foi proposto como padrão ISO em 1989.

•••• Comparação de performance ( Schneier, 80386 em 33 MHz) -

Algoritmo de hash Comprimento KB/Seg

Davies-Meyer (c/ DES) 64 9

Davies-Meyer lado a lado (c/ IDEA) 128 22

HAVAL (3 rodadas) variável 168

HAVAL (4 rodadas) variável 118

HAVAL (5 rodadas) variável 95

MD2 128 23

MD4 128 236

MD5 128 174

RIPE-MD 128 182

SHA 160 75

MDC-4h(m1...ms) =h g

mi

gi-1

hi-1hi

gi

encriptação

chave

encriptaçãochave

encriptaçãochave

encriptação

chave

Page 127: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende113

Códigos de autenticação de mensagens

•••• MACs usando cifras em modo CBC ou CFB -

MACs são hashes dependentes de chave no cálculo, que podem ser

gerados por uma cifra de bloco retroalimentada. O esquema que gera MACs

encriptando a mensagem e depois o último bloco do criptograma em modo

CBC, constitui os padrões ANSI (X9.9) e ISO (8731-1, 9797).

•••• MACs usando funções de hash -

Dada uma função de hash h qualquer, existem adaptações possíveis para

torná-la dependente de chave. Dentre os esquemas que concatenam a

mensagem m à chave k, os mais seguros contra fraudes são h(k1,h(k2,m)) ou

h(k,_,m,k), ou concatenação de bytes da chave a cada bloco de m.

•••• Análise dos esquemas de geração de MACs -

MACs gerados por cifras apresentam um problema em potencial, no fato

do verificador poder usar a chave para decriptar o hash de trás para frente,

buscando construir uma colisão com a mensagem original.

Esquemas com funções de hash que geram MACs por concatenação de

chave à mensagem podem permitir fraudes por quem não detém a chave mas

conhece h. È mais seguro usar ambos, cifrando o hash da mensagem.

Usa-se MACs em situações onde a verificação da integridade, sem sigilo

da mensagem, é necessária.

Page 128: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende114

Algoritmos criptográficos de chave pública

•••• Histórico -

A descoberta em 1976 por Diffie, Hellman e Merkle de algoritmos

criptográficos assimétricos, onde a segurança se baseia nas dificuldades de

1. Deduzir a mensagem a partir do criptograma;

2. Deduzir uma chave de cifragem a partir da outra chave;

possibilitou o desenvolvimento da criptografia moderna, onde os mecanismos

de distribuição de chaves, autenticação de mensagens, e provas de identidade,

alcançaram novos patamares de versatilidade.

Protocolos que fazem uso de algoritmos assimétricos, podem dispensar o

sigilo de uma das chaves do par. Os que usam esta opção são chamados

protocolos de chave pública, e devem ser bem projetados para serem seguros

•••• Segurança dos sistemas de chave pública -

Esses sistemas são desenhados para resistir a ataques de texto pleno

escolhido, mas podem ser sensíveis a ataques por criptograma escolhido.

Portanto, nos sistemas onde a assinatura é operação inversa da cifragem, pares

distintos de chaves devem ser usados para estes dois serviços.

Dos algoritmos assimétricos até hoje propostos, apenas três são seguros e

práticos para ambos serviços: RSA, ElGamal e Rabin. Existe uma família de

algoritmos úteis apenas para assinatura, e outros pouco práticos por serem

inseguros, muito lentos ou usarem chaves muito longas.

Page 129: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende115

RSA

O mais usado e fácil de implementar dos algoritmos assimétricos, tem o

nome formado com iniciais dos descobridores, Rivest, Shamir & Adleman.

Resiste a quase 20 anos de análise, sendo sua segurança supostamente baseada

na dificuldade de se fatorar números inteiros.

d = e -1 mod φφφφ : A segunda chave de um par, inversa da primeira no anel Zφ(n),

é calculada pelo algoritmo de Euclides extendido:

Fermat: O algoritmo funciona devido ao Teorema de Fermat:

cid =(mie)d = mi1+r(p-1)(q-1) = mi*mir(p-1)(q-1) = mi*1 mod n

A cifra funciona formatando m em blocos mi de representação binária < n.

Geração de parâmetros e par dechaves do sistema: {t = tamanho}

p = geraprimo(rand(t))q = geraprimo(rand(t))φ(n) = (p-1)*(q-1) {secretos}n = p*q; e= rand(t)e = e / mdc(e,φ) [>1] eA = (e,n)d = euclext(e,φ,1) dA = (d,n)

Algoritmo de Euclides extendido recursivo: Dados a, b, c onde mdc(a,b) divide c, retorna o menor x>0 tal que

/* a*x = c mod b */euclext(a, b, c) begin

r = b mod a se r == 0

entao retorne( (c div a) mod (b div a) ) senao retorne( (euclext(r,a,-c)*b+c) div a mod b)end

Cifragem (começa com eA pública)

ci = mie mod n {encripta bloco}

mi = cid mod n {decripta bloco}

Assinatura (começa com dA privada)

x = h(m)d mod n {assina hash}h(m) = xe mod n ?{verifica hash}

Page 130: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende116

Análise do RSA

•••• Premissas sobre a segurança do algoritmo -

1. Qualquer dos parâmetros p, q e φφφφ(n) permite o cálculo trivial de dA a partir

de eA, devendo portanto serem protegidos juntamente com dA.

2. O ataque por força bruta mais eficiente ao algoritmo consiste em tentar

fatorar n para se obter φφφφ(n) e saber em que anel inverter eA. Pode-se também

tentar adivinhar φφφφ(n), mas o custo deste ataque é tão alto quanto o de fatorar

n, sendo maior ainda o custo de se tentar adivinhar eA-1.

3. Em princípio, poderia existir um método de ataque mais eficiente ao RSA.

Porém tal método serviria também para fatoração de n, e o problema da

fatoração vem sendo extensamente estudado desde 340 A.C., sendo seu

melhor algoritmo de complexidade exponencial, O(ec+x1/3ln2(x)).

4. Números randômicos são selecionados como primos por um algoritmo

probabilístico, para o módulo n. Existem pseudo-primos, números que

passam em todos estes testes sem serem primos (números de Carmichael)

Pseudo-primos são muito raros e, se gerados, causarão falha na cifra.

•••• Ataques a protocolos que usam o RSA -

Métodos conhecidos exploram falhas nos protocolos (não diretamente no

algoritmo), devido à exponenciação preservar estruturas multiplicativas:

• Criptograma escolhido contra assinatura;

• Módulo comum;

• Expoente pequeno para encriptação;

• Ordem de operações de cifra e assinatura.

Page 131: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende117

•••• Ataque por criptograma escolhido contra assinatura -

Este ataque é possível contra protocolos que assinam a mensagem por

extenso (e não um hash da mesma), e prescinde da conivência ou negligência

do agente fraudado em assinar mensagens sem motivo aparente.

tu mod n = r-1ydmod n = r-1xdcdmod n = r-1rcdmod n = cdmod n = m

Em serviços de autenticação, a assinatura deve ser feita sobre o hash.

1: RSA, mesmo par de chaves de cifra e assinatura

1: RSA, para serviço de autenticação

Agente A: k=(e,d)

Cartório A: k=(e,d)

Agente I

Agente B

2: c

2: A, e

2: Recebe m cifrada...

c = me mod n4: Assina nova "mensagem" y

u = yd mod n

5: Reconhece firma de m

u = md mod n

2: Gera n. randômico r < n ;

Calcula x = re mod nCalcula y = xc mod nSolicita assinatura de y,

6: Calcula t = r-1mod nDesvela m = tu mod n

3: Gera mensagem expúria M;Gera n. randômico r < n;

Calcula x = re mod nCalcula m = xM mod nSolicita autenticação de m,

Caso 1: Vazamento de mensagem

Caso 2: Autenticação fraudulenta

3: y

4: m

5: u

6: u

x = re mod n ⇔ r = xd mod n

(rm)d mod n = rdmd mod n 7: Calcula t = r-1mod nAutenticação de M = tu mod n

Page 132: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende118

•••• Ataque em módulo comum -

Este ataque é possível se a distribuição de chaves para a cifra que usa o

RSA atribui chaves com o mesmo módulo a usuários distintos. Qualquer

mensagem encriptada por mais de um usuário pode ser facilmente vazada.

•••• Ataque com expoentes pequenos de encriptação -

Encriptação/verificação de assinatura no RSA é mais rápido quanto menor

for a chave pública. Porém este tipo de ataque é possível com a encriptação de

e(e+1)/2 mensagens linearmente dependentes, caso hajam

•••• Ataque com assinatura de criptograma -

As operações de assinatura e encriptação devem ser executadas nessa

ordem, para evitar fraudes decorrentes deste tipo de ataque, onde nem mesmo o

uso de função de hash para assinatura pode evitar.

1: RSA, mesmo módulo para pares de chaves na cifra

Agentes A, B Agente I2: A, ca

2,3: A e B recebem a mesmamensagem m cifrada...

ca = meA mod ncb = meB mod n

4: Usa Euclides extendido para calcular x , y onde xeA + yeB = 1

5: Desvela m: Se x<0

então m = (ca-1)-x eBy mod nsenão m = (cb-1)-y eAx mod n

Vazamento de mensagens em módulo comum

3: B, cb

Supõe mdc(eA,eB)=1

Page 133: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende119

Este ataque é possível porque B tem como resolver o problema do logaritmo

discreto para encontrar x, já que conhece a fatoração de nB. Se a assinatura

antecedesse a encriptação, B buscaria x sem saber fatorar nA.

•••• Prevenção contra ataques conhecidos ao RSA -

1. Conhecimento de um par (e,d) permite a fatoração do módulo n.

2. Conhecimento de um par (e,d) permite encontrar outros para mesmo n

3. Módulo comum não deve ser usado em serviços de rede.

4. Mensagens devem ser preenchidas com bits randômicos enquanto < n.

5. O expoente público deve ser grande, e a assinatura anteceder a cifra.

•••• Padronização e patentes -

O RSA é um padrão de facto para criptografia assimétrica: Anexo da

norma ISO 9796, draft de uma norma ANSI, padrão bancário na França e

Austrália. Não é padrão nos EUA por problemas de disputa sobre direitos de

patente. A patente, válida somente nos EUA, expira em 20/9/2000.

1: RSA, usado para cifra e depois assinatura

Agente A: k=(e,d) Agente B2: B, eB

2: m é cifrada para B...

c = meB mod nB3: e o criptograma assinado por A

u = cdA mod nA

5: Verifica e decripta u;Gera mensagem expúria M;Calcula x < nB tal que

Mx = m mod nB;6: Publica novo eB ←←←←xeB7: Acusa A de ter lhe enviado M

Fraude de assinatura em mensagem encriptada

4: u

6: B,eB

(meB mod nB)dA mod nA = (MxeB mod nB)dA mod nA = u

Page 134: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende120

Rabin

Algoritmo assimétrico cuja segurança é derivada da dificuldade de se

extrair raiz quadrada em anéis, com decriptação não determinística. A ordem n

do anel deve satisfazer n = pq onde p, q ≡ 3 mod 4 (M. Rabin, 79).

•••• Análise do algoritmo de Rabin -

A segurança deste algoritmo é provadamente equivalente à fatoração de

inteiros. Entretanto a mensagem só pode ser recuperada, dentre as 4 possíveis

decriptações, se contiver algum conteúdo semântico.

Cifras que usam este algoritmo são inseguras contra ataques de

criptograma escolhido, o que inviabiliza seu uso para assinatura em texto

pleno. O uso de hash no protocolo enfraquece a equivalência acima.

•••• Variante de Williams (Hugh Williams, 1980) -

Alternativa do algoritmo com decriptação unívoca, usa p ≡ 3 mod 8,

q ≡ 7 mod 8 e chave privada r = ((p-1)(q-1)/4+1)/2. O criptograma tem três

partes, sendo r usado na decriptação, como expoente em uma das partes.

Geração de parâmetros:p = gerapr3mod4(rand( ))q = gerapr3mod4(rand( ))n = p*q {público}r = q*(q

-1 mod p)s = p*(p

-1 mod q)eA= 2 {k pública}dA = (r,s) {k privada}

Encriptação:

c = m2 mod nDecriptação:

t = c(p+1)/4 mod pu = c(q+1)/4 mod q

m =((±r)*t +(±s)*u) mod n

Page 135: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende121

ElGamal

Algoritmo assimétrico cuja segurança é derivada da dificuldade de se

extrair logaritmos discretos em corpos finitos. (T. ElGamal, 1984).

•••• Análise do algoritmo de ElGamal -

Cada assinatura ou encriptação requer um valor randômico para k. O

conhecimento de pelo menos duas mensagens encriptadas ou assinadas como o

mesmo k permite a recuperaração da chave privada x.

Este algoritmo não é patenteado, mas sua versão para cifragem é uma

variante do algoritmo de Diffie-Helmann. A detentora de patente para o D&H

(PKP Inc.) reclama direitos para licenciar seu uso (até abril de 1997).

•••• Variantes e generalizações do algoritmo de ElGamal -

Prova de identidade (T. Beth, EUROCRIPT 88);

Derivação de chaves (W. Jaburek, EUROCRIPT 89);

Autentição de senhas (C. Chang & S. Huang, IEEE Carnahan Conf. 91);

Esquema p/ protocolos de assinatura (Horster, Petersen, ASIACRIPT 94).

Geração de parâmetros, chavesassimétricas e chave de sessão:p = geraprimo(rand( ))g = rand(|p|)dA= x= rand(|p|) {chave privada}y = gx mod peA= (p,g,y) {chave pública}

km = rand(|p|)k = km/mdc(km,p−1) {ch. sessão}a = gk mod p

Assinatura:

b = euclext(k,p−1,m−x*a){(a,b) = assinatura de m }(ya

*ab) mod p =? gm mod p

Cifragem:

b = (yk*m) mod p{(a,b) = criptograma de m }m = (b*a

-x) mod p

Page 136: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende122

Outros algoritmos assimétricos

•••• Algoritmos baseados no problema da mochila -

Merkle-Hellman foi o primeiro algortmo assimétrico divulgado (78).

Baseia-se no problema combinatório de se encontrar uma partição em um

conjunto fixo de inteiros onde a soma de elementos dê igual ao argumento.

A chave privada é formada por um conjunto fixo supercrescente (versão

trivial do problema) com a qual a função decriptadora calcula a partição que

representa a mensagem. A chave pública é um conjunto fixo genérico

equivalente (obtido daquele por operações modulares), no qual a mensagem

mapeia uma partição, cuja soma é seu criptograma.

São inseguros, apesar de NP-completo o problema em que se baseiam: a

chave privada pode ser obtida em tempo polinomial a partir da pública.

•••• Algoritmos baseados em códigos de recuperação de erros -

Algoritmos de McEliece empregam códigos de Goppa como se fossem

códigos lineares, baseado em ser NP-completo o problema de se encontrar uma

palavra de distância fixa ao argumento, em um código linear.

A chave pública é o produto de três matrizes sobre GF(2): uma

permutação, a matriz geradora de um código de Goppa e uma matriz não

singular. A chave privada é a tripla das matrizes. Apesar de ser rápido e até

hoje seguro, é pouco usado por expandir m e usar chaves muito grandes.

•••• Algoritmos baseados em automata finitos -

Tao Henji usa automata quasi-lineares em esquema semelhante aos

baseados na fatoração de inteiros. Também requerem chaves muito longas.

Page 137: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende123

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

6. Implementações – Parte 1Pedro Antonio Dourado de Rezende

•••• Cenário atual da criptografia (1998) -

• Padronização: Por normatização ou por forças de mercado(interoperabilidade), a segurança na informática tende naturalmente àbusca de padrões. Esta tendência se torna mais imperativa com oadvento das redes globais e ambientes de computação distribuída.

• Padrões interoperáveis: Os critérios para escolha de algoritmoscriptográficos estão hoje relativamente estabilizados pela prática. Háum senso de urgência para convergência na escolha de protocolos queintegrem vários serviços básicos, e mecanismos de implementaçãoindependentes de plataforma ou arquitetura.

• Limitações: Sistemas legados cuja concepção não contemplavasegurança e/ou interoperabilidade, legislação local e internacionalomissa ou desatualizada e interesses paroquiais, são os maioresentraves ao avanço do uso da criptografia na informática.

• Atualizações: No cenário da computação global e distribuída dehoje, a criptologia assimétrica é parte fundamental. Como os limitesteóricos desta tecnologia ainda não estão bem delineados, suasimplementações precisam de constantes reavaliações de risco.

• Desafios: Cada nova aplicação ou tecnologia que exija proteção aosdados que trata, acumula desafios de complexidade crescente àcriptologia, em especial os sistemas de computação não assistida,viabilizados pela miniaturização eletrônica.

Page 138: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende124

Implementação de serviços de chave pública

•••• Algoritmo RSA -

Existem vários fabricantes licenciados para implementação em chip VLSI.

A mais eficiente no mercado em 1995 cifra a 64Kb/seg com módulo de 512

bits (~1000x mais lenta que o DES). Implementações em espaço limitado

(smartcards) são mais lentas.

Chips com RSA

Companhia

Freq.

clock

Velocidade

(bloco 512)

Ciclos p/

bloco 512

Tecnologia/

transístores

modulo

máximo

AlphaTechnology

25 MHz 13 Kbits/seg 0.98 M 2.0µ / 180K 1024 bits

AT&T 15 MHz 19 Kb/s 0.4 M 1.5µ / 100K 298 bits

British Telecom 10 MHz 5.1 Kb/s 1 M 2.5µ / 256 bits

Calmos System 20 MHz 28 Kb/s 0.36 M 2.0µ / 95K 593 bits

CNET 25 MHz 5.3 Kb/s 2.3 M 1.0µ / 100K 1024 bits

Cryptech 14 MHz 17 Kb/s 0.4 M Gate array/ 33K 120 bits

Cylink 30 MHz 6.8 Kb/s 1.2 M 1.5µ / 150K 1024 bits

GEC Marconi 25 MHz 10 Kb/s 0.67 M 1.4µ / 160K 512 bits

Pijnemburg 25 MHz 50 Kb/s 0.25 M 1.0µ / 400K 1024 bits

Sandia 8 MHz 10 Kb/s 0.4 M 2.0µ / 86K 272 bits

Siemens 5 MHz 8.5 Kb/s 0.3 M 1.0µ / 60K 512 bits

•••• Aceleração de sistemas que usam o RSA -

A escolha da chave pública pode influir na velocidade de encriptação ou

verificação. Valores fixos de eA com 2 bits ligados requerem apenas 17

multiplicações para executar a exponenciação. Recomenda-se eA = 65537 =

216+1 (padrão ANSI X.509 e padrão PKCS) ou eA = 3 (PEM e PKCS)

Page 139: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende125

Implementação de sistemas de chave pública usando

aritmética de curvas elípticas

•••• Versões distintas do problema do logaritmo discreto -

Avanços no estado da arte do problema de se fatorar números inteiros

comprometem a eficiência dos algoritmos assimétricos que usam aritmética

modular, pois demandam dessas implementações chaves maiores para que

manterem a mesma segurança.

Alternativamente, pode-se implementar estes algoritmos usando

operações algébricas de uma estrutura distinta dos corpos finitos, onde o

problema em que se baseiam os algoritmos continua bem posto, mas onde as

técnicas avançadas de fatoração de inteiros não se apliquem.

•••• Aritmética das curvas elípticas sobre corpos finitos -

Na geometria analítica, o conjunto de pontos de um espaço vetorial com

coordenadas (x,y) que satisfazem uma dada equação da forma.

y2 = x3+ax+b

é chamado de curva elíptica, caso os coeficientes satisfaçam 4a3+27b2≠ 0.

{ Em 1985 N. Koblitz e V. Miller descobriram que, se aplicada a um

espaço onde as coordenadas são elementos de um corpo finito (ex: Zp), a

definição de curva elíptica seleciona pontos que, incluindo-se um "ponto no

infinito", formam um grupo algébrico sob a operação de composição inspirada

na geometria das secantes dos espaços métricos. Esta operação substitui a

operação de exponenciação em algoritmos assimétricos.

Page 140: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende126

•••• Grupos de curvas elípticas E(Zp) -

E(Zp) = { P=(x,y) ∈ Zp×Zp | y2 = x3+ax+b } ∪ {O}

onde a operação algébrica do grupo, denotada por “+”, é assim definida:

1. P+O = O+P = P

2. Dado P =(x,y), denotamos -P =(x,-y), onde P+(-P) = O

3. Dados P =(x1,y1), Q =(x2,y2), então P+Q = (x3,y3) é dado por

x3 = λ2-x1-x2 ;

y3 = λ(x1-x3)-y1 onde

λ = (y2-y1)/(x2-x1) se P ≠ Q , ou

λ = (3x12+a)/(y1+y1) se P = Q .

4. nP = P+P+...+P (n vezes)

•••• Comparações entre aritméticas de Zp e E(Zp) -

Operação Zp E(Zp)

“Produto” a*b mod p P+Q

“Exponenciação” an mod p nP

Logaritmo discreto Encontrar n tal que an mod p = b

Encontrar n tal que nP = Q

•••• Chaves públicas com nível de segurança equivalentes -

Tempo p/ recuperarchave privada

Fatoração em Zp:Number field sieve

Logaritmo emE(Zp): Pollard - Rho

3x108 MIPS - ano ~960 bits 155 bits3x1018 MIPS - ano ~1820 bits 210 bits3x1028 MIPS - ano ~2500 bits 239 bits

Page 141: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende127

Futuro da criptografia assimétrica

•••• Dificuldades técnicas na aritmética de curvas elípticas -

O grupo de pontos de curva elíptica fornece um código de cifragem

semelhante aos códigos de recuperação de erros. Por isso uma porcentagem do

espaço de textos não pode ser cifrado, sendo esta porcentagem inversamente

proporcional à expansão na encriptação.

Esta característica impede seu uso como mero substituto da aritmética

modular em algumas aplicações da criptografia.

•••• Outras técnicas -

Estruturas algébricas distintas da aritmética modular e dos grupos de

curvas algébricas podem em princípio fornecer formalismos teóricos para a

critografia assimética. (ex: grupos semi-lineares)

As alternativas que surgiram até hoje na literatura não oferecem apelo

prático devido ao grande tamanho das chaves robustas

•••• Computação Quântica -

Teoricamente um átomo pode funcionar como processador, onde o estado

de excitação de um elétron codifica um bit. A superposição linear de estados na

teoria quântica significa que uma malha de processamento paralelo pode

colapsar para a solução de um probrema massivamente distribuido, como o da

fatoração de um inteiro, trivializando a criptografia assimétrica. A construção

de computadores quânticos parece ainda remota.

Page 142: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende128

Implementação de serviços de assinatura digital

•••• Cenário atual dos protocolos de assinatura digital (1997) -

• Padronização: Embora patenteado nos EUA, o RSA tornou-se um

padrão internacional de facto para assinatura digital (SSL, ISO 9796).

O governo dos EUA (NIST) propôs para si em 1991 um padrão para

assinatura digital, o DSS (Digital Signature Standard), que emprega o

algoritmo DSA (Digital Signature Algorithm).

• Restrições: Apesar da possibilidade de infringir a patente do

algoritmo de Schnorr (até 2008), sobre a qual o governo americano não

possui nenhum direito, o padrão DSS foi adotado em maio de 1994. O

governo dos EUA promete auxílio para defesa legal de quem usar o

DSA por força de contrato.

• Abrangência: Existe um esquema para dedução de algoritmos de

assinatura digital, do qual ElGamal, Schnorr e DSA são casos

particulares. Como este esquema foi publicado mas não patenteado,

pode esvaziar disputas sobre o DSA.

• Limitações: O algoritmo DSA requer um gerador de seqüências

pseudo-randômicas seguro. Repetições ou previsão de seqüências

podem permitir a fraude de assinaturas.

O padrão DSS especifica a assinatura sobre hash de 1024 bits da

mensagem, calculada pelo algoritmo SHA, e sugere a geração de

primos seguros através de algoritmo fornecido na especificação.

Page 143: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende129

Digital Signature Algorithm

Algoritmo patenteado e licenciado pelo NIST para uso irrestrito.

•••• Análise do algoritmo DSA -

Os parâmetros p, q e g podem ser compartilhados entre um grupo de

usuários, onde p é um primo de tamanho entre 512 e 1024 bits, q um primo de

160 bits. A chave de sessão k deve ser única para cada assinatura.

Lenstra & Haber descobriram em 1994 a ocorrência de pares p, q com

propriedades que facilitam a recuperação da chave privada x.

A geração aleatória de pares randômicos com essa propriedade é muito rara. O

NIST sugere, na especificação DSS (Digital Signature Standard), o uso de um

gerador de primos para o DSA que evita estes pares.

O protocolo DSS possibilita a construção de canal subliminar através da

escolha da chave k do DES para sessão de assinatura. Em algumas

implementações, o DES pode ser usado também para emular a cifragem do

algoritmo de ElGamal.

Geração de parâmetros, chavesassimétricas e chave de sessão:q = geraprDSA (rand(160))repeat

p=geraprDSA(rand(512+64t))until q | (p-1)repeat

h = rand(512+64t) mod pg = h(p-1)/q mod p

until g ≠1x = rand(|q|) {chave privada}y = gx mod peA= (p,q,g,y) {chave pública}

Assinatura de m = (r,s):repeat

k = rand( ) mod q {ch. sessão}r = (gk mod p) mod qs = (k-1

*(SHA(m)+xr)) mod quntil s ≠ 0

Verificação: (r,s) assinatura de mu = (s-1

*SHA(m)) mod qv = (s-1

*r) mod qr =? (gu

*gv mod p) mod q

Page 144: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende130

Esquema Meta-ElGamal

O Meta-algoritmo de ElGamal é um esquema para se derivar milhares de

algoritmos assimétricos para assinatura digital (Horster, Petersen & Michels:

1994 ACM computer conference on communications security).

•••• Coeficentes no esquema meta-ElGamal -

Tabela de possíveis valores dos coeficientes a, b, c±t ±s ±m

±tm ±s 1±tm ±ms 1±tm ±ts 1±sm ±ts 1

Exemplos: algoritmos derivados da 1ª linha (+) da tabela acima

Equação de assinatura Equação de verificação(1) mk = s+tx mod q rt = gs*y

m mod q

(2) tk = m+sx mod q rt = gm*ys mod q

(3) sk = t+mx mod q rs = gt*ym mod q

(4) sk = m+tx mod q rs = gm*yt mod q

(5) mk = s+tx mod q rm = gs*yt mod q

(6) mk = t+sx mod q rm = gt*ys mod q

Geração de parâmetros, chavesassimétricas e chave de sessão:p=geraprimo(rand( ))repeat

q = rand( )until q | (p-1)repeat

g = rand( ) mod puntil gq mod p = 1x = rand( ) mod q{chave privada}y = gx mod peA= (p,q,g,y) {chave pública}

Assinatura de m = (r,s):repeat

k = rand( ) mod q {ch. sessão}until mdc(k,q) = 1r = gk mod pt = r mod q

equação de assinaturaak = b + cx mod q

equação de verificação:ra =? gbyc mod q

Page 145: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende131

Esquema de autenticação de Feige-Fiat-Shamir

Protocolos derivados deste esquema patenteado implementam provas de

identidade baseadas em conhecimento zero e na dificuldade de extração de

raizes quadradas em anéis finitos (Weizmann Institute, Israel, 1986).

•••• Análise do esquema Feige-Fiat-Shamir -

O número de iterações pode ser reduzido por paralelização, onde v, b se

tornam vetores, mantendo-se o mesmo grau de certeza 1-2-k.

O esquema pode ser adaptado para protocolo de assinatura transformando

a função do verificador B em uma função de hash, sendo de 20 a 100 vezes

menos intensivo em multiplicações que o RSA.

Agente A4.1: Gera nº randomico rj;

Calcula xj = rj2 mod n

4.5: Se bj = 1 entãocalcula tj = rj*s mod nsenão tj = rj

Servidor de chaves S

Feige-Fiat-Shamir

2: Gera e cadastra EA= vfornece DA = s onde

s = v-1/2 mod n3: B solicita EA= v

1: p=geraprimo(rand( ))q=geraprimo(rand( ))n = pq;

4: B desafia A a provar que possui DARepetem k iterações: j de 1 até k Agente B

4.4: bj

4.3: Gera bit randomico bj

4.5: Se bj = 1 entãoverifica xj =? tj2*v mod nsenão xj =? tj2 mod n

(Canal seguro)

4.6: tj

4.1: xj, n

Page 146: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende132

Outros esquemas de autenticação

•••• Variações do esquema Feige-Fiat-Shamir (EUROCRIPT 90)-

O servidor de chaves pode ser abolido se cada usuário escolher seu

módulo e publicar sua chave em um banco de dados de acesso seguro.

Existem implementações paralelizadas com módulos individuais onde o

vetor v é uma seqüência dos primeiros primos, onde o tempo de verificação é

otimizado, e versões para identificação de grupos de pessoas.

•••• Ohta-Okamoto (CRIPTO 88)

Variante do esquema de Feige-Fiat-Shamir, onde a segurança deriva da

dificuldade de fatoração de inteiros.

Uma de suas aplicações implementa um protocolo de grupo de

assinaturas, onde as assinaturas precisam ser aplicadas em ordem específica,

proposto para cartões inteligentes (smartcards).

•••• Guillou-Quaisquater (EUROCRIPT 88)

Esquema proposto para catões com processadores, , desenhado para trocas

mínimas, implementa protocolos para prova de identidade, assinatura digital

individual e múltipla. Emprega multiplicação e exponenciação, semelhante ao

de Ohta-Okamoto.

•••• Schnorr (CRIPTO 89)

Algoritmo patenteado, derivável do exemplo (4) de Meta El-Gamal.

Page 147: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende133

Padrões para assinatura digital e

gerenciamento de chaves

•••• Histórico -

A segurança externa (redes e telecomunicações públicas) só é alcançável

com a adesão a padrões interoperáveis, desde o registro de algoritmos

(ISO/IEC 9979) a esquemas de autenticação e de distribuição de chaves

assimétricas. Estes padrões descrevem detalhes sobre a escolha e

implementação de protocolos criptográficos independentes do transporte.

A indústria financeira é pioneira nesta padronização, sendo atualmente

este esforço liderado pelos comitês ISO, ANSI, ITU, IETF.

•••• Assinatura Digital -

Os padrões de assinatura digital estabelecem formatos para inclusão de

código autenticador em arquivos de formato binário ou texto, para a escolha e

modo de operação de algoritmo ou função de hash autenticador, visando a

interoperabilidade de implementações independentes (ex.: ANSI X9.9).

•••• Distribuição de chaves -

Os padrões de distribuição de chaves criptográficas estabelecem, dentre

outros, critérios de segurança para o armazenamento de chaves, ambiente de

operação do utilitário de gerência de chaves, técnicas de encriptação de chaves

e geração de vetores de inicialização, formato de mensagens de serviços

criptográficos, etc. (ex.: ISO 8732 para bancos)

Page 148: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende134

Principais padrões de protocolos criptográficos

•••• Quadro resumo -

Tópico ISO/IEC JTC 1InformationTechnology

ISO TC68InstituiçõesFinanceiras

ANSI U.S. FederalGovernment

Modos de operação ISO/IEC 8372ISO/IEC 10116

X3.106 FIPS PUB 81

MessageAuth.Code (Geral)

ISO/IEC 9797 ISO 8730 (DSA)ISO 8731 (RSA)

X9.9 FIPS PUB113

Mess. Auth. Code(Bancos)

ISO 9807 X9.19

Algoritmos deassinatura digital

ISO/IEC 9594.8ISO/IEC 9796

X9.30.1 (DSA)X9.31.1 (RSA)

FIPS PUB tba(DSA)

Funções de hash ISO/IEC 10118 X9.30.2 (SHA)X9.31.2 (MDC)

FIPS PUB180

(SHA)Autenticação de

agentesISO/IEC 9594.8ISO/IEC 9796

ISO 11131 X9.26

Gerência de chaves(simétrico)

ISO/IEC 11770.2 ISO 8732ISO 11568

X9.17X9.24

FIPS PUB171

Gerência de chaves(sim. multi-centro)

ISO 11649 X9.28

Gerência de chaves(assimétrico)

ISO/IEC 9594.8ISO/IEC 11770.3

ISO 11166 X9.30.3

•••• Outros padrões -

A interface de uso de cartões inteligentes com 6 pontos de contato foi

objeto de padronização pelo comitê técnico do OSI, publicado como ISO/IEC

7816. São especificadas as características físicas, posição dos contatos,

natureza e protocolo de intercâmbio dos sinais eletrônicos, dentre outros.

Page 149: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende135

Padrões para certificados digitais

•••• Histórico das Public Key Infrastructures (PKI)

A necessidade de padronização de certificados digitais e seu uso, com os

quais se pode distribuir chaves públicas assinadas por uma autoridade de

cadastro de chaves públicas, é essencial ao comércio eletrônico de varejo

através da internet. Um implementação de tais padrões é chamado de PKI

O padrão PKCS proposto pela indústria líder em criptografia de chave

pública (RSADSI) e o padrão ITU-T X.509, proposto pela International

Telecommunications Union, para certificados que trafeguem em formato de

mensagem de correio eletrônico, tem sido aceitos como padrão de fato.

•••• Formato dos certificados X.509 -

Versão

Número de série (único paracertificados assinados pelo emissor)

Identificador do algoritmo deassinatura deste certificado - Algoritmo - Parâmetros usados na assinatura

Emissor (Certification Authority)

Período de validade - Não antes de (DATA) - Não depois de (DATA)

Sujeito possuidor da chave certificada

Chave pública do sujeito - Algoritmo a que se destina - Parâmetros para uso do algoritmo - Chave pública

Assinatura do certificado pelo emissor

Page 150: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende136

Mecanismos para uso de certificados em redes públicas

•••• Certification Authorities -

Confiança na autenticidade sintática de uma chave pública assinada é

oferecida pela entidade que assina o certificado usado para distribuí-la.

Existem dois modelos básicos para propagação de confiança:

1. Hierárquico .............proposto pelo padrão PEM para correio seguro.

2. Malha de confiança ..usado pelo utilitário PGP para correio seguro.

•••• Modelo Hierárquico de certificação -

Este modelo, proposto como padrão Privacy Enhanced Mail pela IETF

nos RFCs 1421 a 1424, prevê identificação única do sujeito em toda a internet.

A verificação de certificados segue uma cadeia de autenticação por entidades

certificadoras, com consulta a lista de revogação de certificados, com a

assinatura final da IPRA (Internet Policy Registration Authority).

•••• Redes de confiança -

O utilitário de domínio público PGP para sigilo e assinatura digital de e-

mail (índice de sites em http://www.mantis.co.uk/pgp/pgp.html), pressupõe um

mecanismo off-line não eletrônico de distribuição fim-a-fim de chave pública,

ou a distribuição por e-mail com a assinatura de algum outro usuário de

confiança. Teve aceitação maior que o PEM, devido a sua praticidade.

Page 151: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende137

Autoridades Certificadoras na Internet

•••• Modelo híbrido atualmente em uso -

A necessidade urgente de estabelecimento de infra-estrutura de segurança

que viabilize o comércio eletrônico na internet, tem atropelado os mecanismos

formais de padronização e a regulamentação jurídica sobre a responsabilidade

civil das autoridades certificadoras.

Serviços de emissão e controle de certificados X.509 e PKCS, cujas

chaves públicas são na prática confiadas por serem distribuídas junto com os

utilitários de navegação web (browsers), vem funcionando como autoridades

certificadoras, distribuindo certificados de chaves públicas para seus clientes.

•••• Entidades Certificadoras em operação (Verisign, Certisign,etc)

Sites que assinam e distribuem certificados, contendo uma chave pública

de cuja inversa a posse foi verificada por meio de desafio.

1. Certificados de e-mail ....validam o vínculo entre uma caixa postal de e-

mail e uma chave pública, com dados sobre a conta de e-mail.

2. Certificados comercias ..validam o vínculo entre um estabelecimento

comercial então ativo, com sede e endereço eletrônico (www, e-mail, etc), e

uma chave pública, com dados sobre o estabelecimento tais como nome de

domínio, endereço, caixa postal, registros cartoriais, etc..

Na divulgação sobre seus serviços, estas entidades certificadoras

classificam os certificados que montam e distribuem, segundo o grau de rigor

com que validam e verificam os dados de identificação do titular da chave

pública que certificam.

Page 152: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende138

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

6. Implementações – Parte 2Pedro Antonio Dourado de Rezende

Uso de Tokens em segurança externa

•••• Pontos de Falha -Ataques por dicionário a arquivos de senhas, sniffers, acesso em disco ou

em RAM de chaves secretas ou privadas (exploits), são os pontos mais frágeisna implementação de serviços de segurança externa.

Esquemas de autenticação baseados em desafio, em sequenciadores ou emsincronização que geram senhas descartáveis para neutralizar ataques dedicionário, escuta ou replay podem ser atacados com engenharia reversa, seimplementados em firmware (tokens ou smartcards) para clientes.

•••• Vulnerabilidade de tokens e smartcards -{ Estas tecnologias não devem ser usadas como ponto crítico de falha em

um sistema de segurança. Mesmo os chips para cartão que trabalham comencriptação interna (ex.: IBM DS5002FP), onde bytes trafegam no barramentoe são carregados encriptados em RAM e EPROM, são passíveis de ataque, nosquais o material de chave armazenado ou gerado pode ser extraído. Ataquesmais comuns a tokens de acesso livre são:

1. Surtos de clock ..........usados para introduzir instruções errôneas nosregistradores que podem causar o extravazamento em loops de leitura.

2. Surtos de potência ....podem causar comportamento anômalo emgeradores randômicos de uso criptográfico.

3. Probing.......................violação do lacre eletrostático possibilita avarianas células de trava da EPROM, para leitura do material da chave.

4. Dicionário de código.ataque no barramento à criptografia interna.

Page 153: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende139

Riscos à segurança externa

•••• Redes públicas -

As redes públicas que funcionam pela aderência ao conjunto padronizado

de protocolos de comunicação denominado TCP/IP são, por um lado,

intrinsecamente inseguras devido aos objetivos originais na sua concepção,

enquanto por outro lado oferecem o potencial de interconxão global através de

ambiente legado.

Qualquer sistema computacional conectado por esta tecnologia pode ser

invadido para ser sabotado ou para ser usado como ponto de partida de ataques

a outros nós da rede global. A busca de segurança neste cenário impulsiona

novas direções na ciência da computação, para vencer desafios no controle de

tráfego IP através de sistemas legados e interoperáveis.

•••• Vulnerabilidade do TCP/IP -

O ambiente TCP/IP é difícil de ser precisamente controlado. Vários tipos

de ataque via internet exploram falhas conceituais de segurança em seus

serviços, sendo o custo deste controle bastante alto. Busca-se o equilíbrio entre

disponibilização de serviços e controles de segurança.

Freqüência relativa de ataques na internet

1 sniffers (kits de análise, troianos, exploits)

2 spoofing de IP

3 SMTP (sendmail)

4 NFS (Network File System)

5 NIS (Network Information Service)

6 adivinhação de senhas

(Fonte: Computer Emergency Response Team´s Anual Report, 1995)

Page 154: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende140

•••• IPv4 -

Protocolo de rede em uso na internet desde 1981, não comporta

mecanismo de autenticação. Sua nova versão IPv6 (rfc 1884), em testes desde

1992, permite autenticação simples e comporta uso de criptografia.D

•••• TCP -

Protocolo de transporte orientado a conexão da internet, autentica por

handshake simples, falsificável se sua implementação for conhecida.

0 1 2 3 4 5 6 7 31

Porta de origem Porta de destino

Número sequencial (SN)

Reconhecimento de SN (Acknowlegment)

Offsetdados

UR

AC

PS

RS

SY

FI Janela

Checksum Ponteiro urgente

Opções

: Campos de cabeçalho falsificáveis em ataques ao TCP

0 1 2 3 4 5 6 7 31

Versão IHL Tipo de serviço Comprimento total do datagrama

Identificação do datagrama D M Offset do fragmento

Tempo de vida Transporte Checksum do cabeçalho

Endereço de origem

Endereço de destino

Opções

: Campos do cabeçalho falsificáveis em ataques ao IP

Page 155: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende141

Ataque de número sequencial ao TCP

Detalhes:

a - RFC 693 determina que um contador de 32 bits para SN deve ser

incrementado a cada 4 µseg, mas nas implementações do TCP dos sistemas

Unix BSD, SN é somado 1 a cada seg ou 128 a cada chamada.

b - Conjugando-se este ataque aos de roteamento (RIP, Source Routing),

fraudes ou espelhamento de sessões TCP completas podem ser feitas.

Se 7 então sessão aberta em full duplex

0: X abre sessão inóqua com A ou usa sniffer para obter SNA

4: SYN:SNA, ACK:SNB

0: B deseja serviço oferecido via TCP por A

Endereço IP = A Endereço IP = B2: SYN:SNB

3: Gera n• sequencial SNA.7: Se 6:ACK = SNA

então reconhece B

1: Gera n• sequencial SNB;5: Se 4:ACK = SNB

então reconhece A

XXXII: Handshake para abertura de sessão TCP

6: Se 5 então ACK:SNA

Embuste em XXXII para falsificar handshake

A oferece a B serviço deacesso restrito

3: Gera n• sequencial SNA+7: Se 6:ACK = SNA+

então reconhece B

B recebe ataque de sobrecarga de X e pacotes TCP espúrios de A

5:??? Agente em X finge estar emB fazendo spoof de IP

1: Gera n• sequencial SN5: Estima SNA+ a partir de SNA

e tempo decorrido entre 0 e 52: Spoof B, SYN:SN

6: ACK:SNA+

Se 7 então sessão aberta em half duplex

4: SYN:SNA+, ACK:SN 3.j: SYN:SN+, j=1,2,3...

A

B

X

Page 156: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende142

Análise de risco na internet

Dificuldade do Ataque

Extensão do dano

Mínimo Pequeno Sério Muito sério Desastroso

Baixa

Alta

Média

1- Ataques internos1.1- Acesso indevido

1.1.1- Falha de autenticação1.1.2- NFS1.1.3- X-windows

1.2- Sabotagem1.2.1- Sobrecarga1.2.2- Source Routing, RIP, ICMP1.2.3- Depredação física1.2.4- Virus

1.3- Vazamento1.3.1- Sniffers1.3.2- Engenharia Social

2- Ataques externos2.1- Acesso indevido

2.1.1- Ataque de número sequencial TCP2.1.2- Source Routing, RIP, ICMP2.1.3- Sequestro de sessão TCP

2.2- Sabotagem2.2.1- Sobrecarga2.2.2- Fragmentação

2.3- Vazamento2.3.1- Sniffers2.3.2- Troianos2.3.3- Exploits

Fonte: Othmar Kyas - Internet Security, 1997

1.1.2

1.1.3

1.2.1

1.2.2

1.2.3

1.2.4

1.3.1

1.3.2

2.1.1

2.1.2

2.2.1

2.2.2

2.3.1

2.3.2

1.1.1

2.1.32.3.3

Page 157: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende143

Controles de segurança para a Internet

•••• Planejamento integrado -

As técnicas de proteção para redes TCP/IP, sem a qual investimentos em

conectividade poderão não compensar riscos decorrentes, podem amplificar ou

neutralizar mutuamente suas funcionalidades, dependendo de como seu uso for

planejado e integrado.

•••• Mecanismos básicos de controle -

As técnicas de proteção às redes TCP/IP, sem as quais os protocolos

criptográficos podem ser inócuos, devem ser implementadas segundo

planejamento de segurança que especifica a natureza do tráfego esperado:

1. Demarcação do(s) perímetro(s) de segurança da(s) subredes;

2. Seleção e alocação criteriosa dos serviços demandados e oferecidos;

3. Definição do roteamento e estimativa de volume de tráfego ;

4. Especificação da filtragem de pacotes;

5. Desenho de topologia adequada para as escolhas anteriores;

6. Instalação, configuração e testes de filtros, utilitários, patches e demais

serviços de segurança, de forma modular e em rede piloto.

7. Configuração das contas administrativas nos servidores e hosts;

8. Instalação e configuração dos serviços em ambiente de produção;

9. Treinamento, acompanhamento e monitoramento dos logs;

A filtragem deve incluir todo tráfego que cruza o perímetro da rede interna.

Page 158: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende144

Infra-estrutura para controle de tráfego

•••• Perímetros de segurança -

A demarcação dos pontos de entrada e saída de tráfego da rede interna

para a internet (ou entre subredes) permite a instalação de mecanismos de

controle que filtram pacotes e delimitam a área de ação de outros mecanismos

de segurança. Por outro lado a filtragem pode introduzir pontos singulares de

falha e impactar na capacidade de vazão deste tráfego.

•••• Controladores de tráfego -

O controle de tráfego é feito basicamente, a nível de transporte por um

roteador de triagem com componente de filtro (screening router), ou a nível de

aplicativo por um gateway ou proxy de aplicativo e/ou uma estação guardiã

(bastion host). Estes dispositivos tem sido chamados de firewalls.

Firewalls:

internet

Controle detráfego

Redeinterna

Camada de Aplicativo

Camada de Presentação

Camada de Sessão

Camada de Transporte

Camada de Rede

Camada de Enlace

Camada Física

Screening router

Application gatewayou Bastion host

G

Perímetro

Page 159: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende145

Técnicas de filtragem

•••• Critérios -

A filtragem de pacotes TCP/IP é guiada por listas de regras. Uma regra de

filtragem descreve critérios de decisão, tipicamente baseados em:

• direção do tráfego: .......rede interna para externa, vice versa

• interface: .......................subredes ou enlace de origem e de destino

• tipo de protocolo:..........IP, ICMP, TCP, UDP, IPX, etc.

• endereços:......................endereço IP de origem e de destino do pacote

• portas:............................número de porta de origem e de destino.

• Informação sobre o estado do TCP: ACK, SYN, RST, PSH, SN, etc

•••• Mecanismo de filtragem -

1 Operações - qualquer regra determina uma das seguintes ações:

• permit .... O pacote segue rota se satisfaz as condições descritas

• block ...... O pacote é descartado se satisfaz as condições descritas

2 Análise - cada pacote é seguidamente submetido às regras de uma lista

ordenada, lida de um arquivo (geralmente em formato texto), até que

alguma regra determine uma ação sobre o pacote. Se o fim da lista for

atingido, é tomada a ação default do filtro (geralmente o descarte).

3 Reações - uma regra acionada e/ou um estado do filtro podem acionar:

• log.......... pacote descartado mais estado do filtro é registrado.

• alarme ... e-mail, beep ou mensagem de emergência é disparado.

Page 160: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende146

Operações de filtragem

•••• Modelo básico de filtro de pacotes -

•••• Funcionamento de um filtro típico -

Exemplo de tabela com lista de regras para filtro TCP:

regra nº Ação IP origem porta orig IP destino porta dest opções IP flags TCP

1 block * * 198.10.12.3 80 3 *

2 permit 200.0.0.0 * * 25 * ACK

in

Screening RouterIP:x.y.w.z IP:a.b.c.d

Subredeinterna

internet outoutin

Lista de regras p/interface externa

Lista de regras p/interface interna

Aplica próxima regranos cabeçalhos IP, TCP

Obtém próximo pacoteSeleciona lista aplicável

Regra permitepacote?

Regra bloqueiapacote?

Última regrada lista?

RoteiaPacote

DescartaPacote

Caso de log oualarme?

Aciona logou alarme

S

N

SN

SNS

N

Page 161: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende147

Arquitetura de firewalls

1 Permeabilidade -Como os serviços TCP são full duplex, as regras de filtragem devem distinguir

entre o tráfego de serviço demandado e o de serviço oferecido:

• serviços demandados..iniciado na rede interna (mais permeável)

• serviços oferecidos ......iniciado na rede externa (maiores riscos)

2 Granularidade -

Filtros podem diferir no conjunto de parâmetros que compõem as regras de

filtragem, com impacto na capacidade de isolamento de padrões de tráfego.

• interface: enlace de entrada ou saída (para filtragem de spoof)

• associação: protocolo, endereço e porta de entrada e de saída

3 Complexidade de análise -

Um filtro de pacotes com lista estática de regras não garante segurança na

oferta e demanda de alguns serviços que lhe entrecruzem, tais como:

• transferência de arquivos ...protocolo FTP;

• X-Windows............................protocolo X-11

Se a granularidade e topologia desejadas demandarem, o filtro pode incluir

tabelas dinâmicas, onde são mantidos estados das sessões ativas que filtra.

4 Funcionalidade -

Filtros de pacotes que mantém em tempo real informações sobre sessões

exigem ambientes de sistema, e são chamados proxies ou gateways.

Page 162: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende148

Exemplos de configuração de filtragem

•••• Selecionando tráfego para subredes -

Suponha a política de segurança que especifique permissão de tráfego

para as subredes da rede 198.2.0.0 exceto a subrede 198.2.3.0, para a qual o

tráfego deve ser bloqueado com exceção daquele destinado ao host 198.2.3.4.

A seguinte lista de regras implementaria sua filtragem:

regra nº Ação IP origem porta orig IP destino porta dest protocolo flags

1 permit * * 198.2.3.4 * TCP *

2 block * * 198.2.3.0 * TCP *

3 permit * * 198.2.0.0 * TCP *

•••• Serviço customizado entre dois hosts -

Suponha que uma empresa desenvolveu software proprietário que usa a

mesma porta TCP no cliente e no servidor (ex: 4444), e sua política de

segurança exige permissão em hosts especificados para cliente e servidor.

• Num firewall que filtra associações:

regra nº Ação IP origem porta orig IP destino porta dest protocolo flags

1 permit 198.2.3.4 4444 200.5.8.2 4444 TCP *

internet

Subredeinterna

01011010

4444TCPIP

Servidor01011010

4444TCPIP

Cliente

198.2.3.4 200.5.8.2

Page 163: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende149

•••• Serviço customizado entre dois hosts (continuação) -

A granularidade de configuração pode afetar sutilmente a capacidade do

filtro. Neste exemplo, uma lista que parece atender à especificação de filtragem

pode falhar, abrindo acesso não especificado ao host do servidor.

• Num firewall que filtra apenas uma porta:

regra nº Ação IP origem comentario IP destino porta orig protocolo flags

1 permit 198.2.3.4 cliente→serv 200.5.8.2 4444 TCP *

2 permit 200.5.8.2 serv→ cliente 198.2.3.4 4444 TCP *

•••• Filtrando spoofing de endereço interno -

Conforme funcione o filtro, bloqueia-se na saída da interface interna ou na

entrada da interface externa, endereços de origem da subrede interna.

• Num firewall com apenas duas interfaces:

regra Ação IP origem port orig IP destino port dest interface comentário

1 block 200.5.8.0 * * * e1 filtra saída

internet

Subredeinterna

01011010

4444 ???? ????TCPIP

Outrosserviços

01011010

4444TCPIP

Cliente

198.2.3.4 200.5.8.2

01011010

01011010Servidor

01011010

Subrede200.5.8.0

internet198.2.3.4

.2

.3

Orig 200.5.8.3Dest 200.5.8.2

Spoof IP:

e0 e1

e0 filtra entrada

Page 164: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende150

•••• Bloqueando spoofing de endereço interno (continuação) -

Num roteador ou bastion host com múltiplas interfaces, o bloqueio efetivo

de spoofing de endereço interno exige do filtro granularidade para

especificação da direção do tráfego a ser filtrado.

• Num firewall com múltiplas interfaces:

regra nº Ação IP origem porta orig IP destino porta dest interface direçao

1 block 200.5.8.0 * * * e0 in

2 block 200.5.9.0 * * * e0 in

Se o firewall só filtra na saída da interface, neste caso perde informação

sobre o enlace por onde entra o pacote, e a tentativa de filtrar spoofing de

endereço interno isolará o tráfego entre subredes internas:

regra Ação IP origem port orig IP destino port dest interface comentário

1 block 200.5.8.0 * * * e1 filtra saída

2 block 200.5.9.0 * * * e1 filtra saída

3 block 200.5.8.0 * * * e2 filtra saída

4 block 200.5.9.0 * * * e2 filtra saída

200.5.9.3 não poderá por exemplo estabelecer sessão TCP com 200.5.8.2.

Subrede200.5.8.0 .2

internet198.2.3.4

Orig 200.5.9.3Dest 200.5.8.2

Spoof IP:

e0

e1

Subrede200.5.9.0 .3

e2

Page 165: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende151

Application gateways

•••• Gateway de base múltipla (Dual, multi homed hosts)

Computadores que conectam tráfego entre redes por meio de funções de

roteamento em uma aplicação que acesse mais de uma interface instalada.

•••• Configuração da máquina hospedeira de base múltipla -

O sistema operacional precisa ter seu roteamento automático entre

interfaces (ipforwarding) desabilitado, e outras precauções necessárias:

• Execução de outros aplicativos que compartilham dados não deve ser nela

permitida, pois poderiam desviar tráfego da função roteadora.

• O modo de falha do gateway deve ser um estado em que o tráfego é

bloqueado. Neste caso o ponto singular de falha (bloqueio de serviço) é

preferível à perda de funcionalidade de filtragem do tráfego.

Placade rede

oumodem

Função opcional de roteamento

3-homed host

Rede 2Rede 1 Rede 3

Placade rede

oumodem

Placade rede

oumodem

Page 166: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende152

•••• Servidores proxy

São vistos através de um perímetro de segurança como servidor ou cliente

do serviço demandado ou oferecido, fazendo intermediação do serviço e

acrescentando funcionalidade aos gateways de base múltipla.

Sua principal característica de segurança é permitir ocultar ao tráfego

externo as máquinas do perímetro interno que hospedam serviços oferecidos,

pois ataques baseados em escuta requerem visibilidade do alvo.

• proxy de aplicação........oferecem serviços de intermediação de acesso a

uma aplicação específica, como ftp, telnet, www, etc.

• proxy genérico ..............funcionam como retransmissores de pacote com

filtragem a nível de portas baseada no estado das sessões TCP. Pressupõe o

uso recomendado de portas para os WKS.

• proxy de circuito...........acrescentam funcionalidade aos proxys genéricos,

estabelecendo um circuito virtual fim-a-fim entre o usuário da rede interna

e vários serviços de um destino. Requerem a instalação de programas-

cliente que reconheçam o intermediador (ex.: SOCKS).

•••• Hospedeiro guardião (Bastion host)

Uma máquina que hospede um gateway ou função de roteamento em um

ponto crítico para a segurança da rede, é chamado de bastion host. Para que a

proteção desejada seja efetiva, os serviços a serem providos pelo bastion host

devem ser minima e criteriosamente selecionados.

Um bastion host deve possuir recursos redundantes de armazenamento,

não dispor de ferramentas de programação, de contas e serviços desnecessários,

nem de programas com permissão SUID e SGID (unix).

Page 167: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende153

Limitações dos firewalls

A filtragem de pacotes não garante integridade, autenticidade, sigilo, nem

proteção contra ameaças internas ou ataques por implantação: é apenas a

primeira linha de defesa, limitada pelas características dos protocolos.

• Uso de portas:

O bloqueio de serviço por filtragem baseado em número de porta não é

efetivo, pois o vínculo de portas a serviços que utilizam o TCP está

apenas convencionado para os Well Known Services (RFC 1700)

• Portas privilegiadas:

A informação visível no cabeçalho do pacote TCP sobre o estado da

sessão e o critério de portas privilegiadas (<1024) não são suficientes para

bloqueios unidirecionais. (Ex: FTP).

• Tunelamento:

Regras de filtragem podem ser subvertidas por ataques de fragmentação

ou tunelamento (RFC 1858), se o tráfego dos serviços demandados ou

oferecidos requerer a habilitação destes recursos.

• Sequestro de sessão TCP:

Este tipo de ataque só pode ser evitado com uso de criptografia,

viabilizada pela padronização dos certificados de chave pública, que

possibilita autenticação contínua de sessões com envelopes digitais.

• Exploits:

A autenticação contínua de sessão pode ser subvertida em sistemas pouco

seguros pelo vazamento de chaves privadas ou de sessão, através de

ataques de exploits implantados via www ou e-mail.

Page 168: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende154

Algumas topologias para segurança

•••• Gateway host com triagem -

•••• Sub-rede com triagem -

•••• Belt and suspenders -

internet

internet

internet

Roteadorcom triagem

Redeintern

Redeintern

Redeintern

G

G

G

Roteadorcom triagem

Roteadorcom triagem

Roteadorcom triagem

Servidor← de

autenticação

Servidor deautenticação

Tráfego deentrada da

internet

Tráfego deentrada pararede interna

Servidores

Servidores

FTP

FTP

Gopher

Gopher

Web

Web

ProxiesDNSGate de e-mail

autenticação

Tráfego deentrada pararede interna

Page 169: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende155

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

7. Exemplos de AplicaçõesPedro Antonio Dourado de Rezende

•••• Histórico do e-mail -

{ O PGP foi o primeiro protocolo criptográfico concebido para uso nainternet que fazia uso de chaves públicas. Implementado e distribuido pelainternet por Phil Zimmerman em 1986, implementa o RSA e o IDEA paranegociação de envelopes digitais na trasmissão de e-mail autenticado eencriptado. Devido ao uso de criptograifa robusta e infração de patentes, oautor teve problemas com a justiça americana, tendo posteriorment negociadoacordos com as partes envolvidas e licenciado sua distribuição

• Histórico do www -

O NCSA MOSAIC foi o primeiro navegador web a incorporar ganchospara adição de utilitários de segurança, tais como o PGP e as implementaçõesde clientes SMTP com suporte à especificação PEM.

Em 1994, com o impulso do comércio eletrônico na Web, a consolidaçãodas tentativas de se incorporar sigilo e autenticação aos protocolos nelaempregados foi iniciada. Já existem cerca de 50 esquemas de aplicaçãocriptográfica para o comércio eletrônico implementados ou propostos naliteratura, em 1998.

•••• S-HTTP (Secure HTTP, 1994)

Desenvolvido e proposto pela CommerceNet Consortium, usa criptografiade chave pública para sessões http de forma comparável às do padrão PEM,sendo compatível com diversos gerenciadores de chave.

Page 170: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende156

•••• SSL (Secure Sockets Layer, 1994) -

Proposto e implementado pela Netscape em seus browsers e servidoresWeb, sob licença da RSADSI, oferece autenticação de servidor eopcionalmente do cliente com criptografia para serviços genéricos, protegendotoda a pilha TCP/IP para os protocolos de aplicações.

Sua execução verifica certificados de chave pública e negocia a escolha deenvelope digital entre cliente e servidor, podendo utilizar certificados X509,algoritmos Diffie-Hellman, RSA, DES, MD5 segundo padrões PKCS.

•••• PCT (Private Communication Technology, 1995)

Proposta da Microsoft para segurança do TCP/IP. Compatível esemelhante ao SSL, difere deste na implementação de um dos mecanismos deautenticação do SSL que continha falhas em sua versão 1.0.

•••• SET (Secure Eletronic Transactions, 1996)

Um dos esquemas criptográficos atualmente em uso para comércioeletrônico, foi concebido com o objetivo de se tornar padrão de fato no suporteda indústia financeira ao comérico eletrônico integrado.

Desenvolvido e proposto em conjunto pela IBM, Visa e MasterCard, fazuso extensivo de certificados X509, sendo um protocolo complexo de 28passos que procura oferecer garantias adicionais ao consumidor, geralmente oagente mais exposto a vulnerabilidades nos esquemas criptográficosempregados no comércio eletrônico.

Suas vulnerabilidades se concentram em falsificações de certificados.

Page 171: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende157

Descrição resumida do SET

• Participantes devem possuir certificados X.509

• Consumidor valida certificados e submete pedido a C

Agente A0: Obtem cartão V .1: Cadastra-se em S

Comerciante C0: Abre conta em V1: Cadastra-se em S

Autoridade Certificadora S1: registra A,M,V2: distribui certificados

2: Busca anúncio na Web 2: Anuncia na Web

Instituiçãofinanceira V

1: cadastra A, C

1: V Cadastra-seem S

Agente A Comerciante C

Autoridade Certificadora S

3: DS(A,EA) →5: EC(m,p,EV(vA)) →

← 4: EA(DS(C,EC))

Instituiçãofinanceira V

encomenda m a preço p,pagamento por cartão vA

Page 172: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende158

SET (continuação)

• Comerciante não tem acesso a número de cartão do cliente

• Administradora só tem acesso ao valor da fatura

Agente A Comerciante Cprepara fatura econfirma cliente

Banco B

8: EA(?,m,p,EV(vA),C)

Instituiçãofinanceira V

7: V validatransação e verificacrédito em conta vA$ $ $

VAN

6: EV(A,p,EV(vA),C,DC(vC))

Agente Aassina o pedido e

recebe comprovante

Comerciante Csubmete fatura,

recebe comprovantee assina recibo

Banco Btransfere fundos

←12: DC(A,m,p,C,r)

Instituiçãofinanceira V

11: B transfere p de vApara vC e emite recibo r

$ $ $ $

VAN

10: EV(DC(m),p,EV(vA),vB)

9: DA(m,p,EV(vA),C) →

r = DB(A,C,DC(m),p,EB(vA,vB))

Page 173: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende159

Ferramentas e utilitários de segurança

•••• Passwd+ (ftp://dartmouth.edu.pub.passw+.tar.Z)Um filtro de senhas que impede os titulares de contas unix de criarem

senhas fracas, suceptíveis a ataques de dicionário.

•••• Crack (ftp://ftp.uu.net/usenet/comp.sources.misc/volume28/crack)Uma ferramenta para ataque de dicionário a arquivos de senhas unix.

•••• COPS (ftp://cert.org/pub/cops)Uma ferramenta para inspeção de segurança que verifica se o sistema unix

está configurado de maneira segura (trust, rhost, /etc/passwd, etc.)

•••• TCP Wrapper (ftp://cert.org/pub/tools/tcp_wrappers)Uma ferramenta para gerenciamento de conexão e log.

•••• Xinetd (ftp://mystique.cs.colorado.edu/pub/xinetdUm substituto do inetd que inclui log e gerenciamento de conexões.

•••• TAMU (ftp://net.tamu.edu/pub/security/tamu)Uma ferramenta que contém filtro de pacotes, programas de verificação de

configuração, de auditoria e de geração de log.

•••• TIS Firewall toolkit (ftp://ftp.tis.com/pub/firewalls/tollkit)Kit de software para criação e manutenção de firewalls entre redes,

distribuído em código- fonte em linguagem C.

•••• SOCKS (ftp://ftp.inoc.dl.nec.com/pub/security/socks.cstc.4.0.tar.gz)Implementação de um relay de circuitos para filrewalls.

•••• WUarchive (ftp://ftp.uu.net/networking/ftp/wuarchive-ftpd)Servidor mais usado na internet para ftp anônimo.

•••• CGIWrap (http://www.umr.edu/:tdciwrap)Wrapper de CGI para identificação de scripts de usuários em unix.

Page 174: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende160

•••• Web Server Comparison(http://www.proper.com/servers-chat.html)

Discussão sobre produtos disponíveis na internet para servidores web.

•••• COAST archive (ftp://cs.coast.purdue.edu)Repositório variado de programas e informações relacionadas à segurança

na internet.

Atualização e informações sobre segurança na internet

•••• Request For Comments (http://www.isi.edu/rfc-editor/)Índice dos documentos de discussão de propostas de padrões para internet,

e dos sítios onde podem ser acessados.

•••• CERT (http://www.cert.org)Computer Emergency Response Team, disponibiliza um conjunto

atualizado de patches de segurança, alertas de segurança, e diversasferramentas distribuídas pelos fornecedores.

•••• Web Security FAQ(http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq)

Roteiro para implementação de segurança em servidores web.

•••• Great Circle Associates (http://www.greatcircle.com)Fonte de informações atualizadas e tutoriais sobre firewalls e segurança

na internet

•••• AT&T Research archive (ftp:/research.att.com)Repositório de informações sobre segurança na internet.

Page 175: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende161

CopyMarket.comTodos os direitos reservados.Nenhuma parte desta publicação poderá serreproduzida sem a autorização da Editora.

Título: Criptografia e Segurança na InformáticaAutor: Pedro Antonio Dourado de RezendeEditora: CopyMarket.com, 2000

ApêndicesPedro Antonio Dourado de Rezende

Tradução de termos técnicosalçapão ............................................................ trapdoorarbitragem ..................................................... arbitrationataque de espelhamento ................................. man-in-the-middle (interception) atackataque de número sequencial......................... number sequence attackbloqueio ou sobrecarga intencional............... denial of service, resource exaustionchave .............................................................. keycifra ................................................................. cipherdesvio de controle............................................ control bypassing, hackinge-mail em massa e não solicitado................... spamembuste ou trapaça......................................... scamembusteiro ..................................................... rougueescuta ativa ..................................................... interceptionescuta passiva .................................................. scan, sniffalha ................................................................. breachforja de identificação ...................................... spooffraude .............................................................. fraud, integrity violationgancho .............................................................. backdoorgrampo ............................................................ eavesdrop, wiretapinvasão ou violação de autorização ............... invasion, authorization violationmediação .......................................................... adjudicationobjeto ou rótulo identificador........................ tokenpenetração ....................................................... intrusionpersonificação ................................................ masquerade, impersonation;reprise ............................................................ replayrepudiação ....................................................... repudiationtroiano.............................................................. trojan horsevarredura......................................................... media scavengingvazamento ....................................................... leakage, disclosure

Page 176: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende162

Tabela para comparação de grandes númerosSegurança computacional é um jogo de probabilidades. Para se ter uma noção

comparativa acerca dos graus de possibilidade associados às faixas de probabilidade com quelida a criptografia, esta tabela de estimativas de ocorrências de eventos do mundo físico em quevivemos pode ser útil.

Fenômeno Físico NúmeroProbabilidade de ser morto por um raio, em um dia: 1 em 9 bilhões (~233)Probabilidade de ganhar em uma loteria estadual americana: 1 em 4 milhões

(~222)Prob. de, num dia, ganhar na loteria estadual e ser morto por um raio: 1 em 255

Prob. de se morrer afogado, em um ano: 1 em 59 mil (~216)Prob. de se morrer em acidente de transito nos EUA em 1993: 1 em 6100 (~213)Prob. de se morrer em acidente de transito nos EUA durante uma vida: 1 em 88 (~27)Tempo até a próxima era glacial: 14000 (~214) anosTempo até que o sol se transforme em uma supernova: 109 (~230) anosIdade estimada do planeta terra: 109 (~230) anosIdade estimada do universo: 1010 (~234) anosNúmero de átomos no planeta terra: 1051 (~2170)Número de átomos no sol: 1057 (~2190)Número de átomos na galáxia: 1067 (~2223)Número de átomos no universo (sem a matéria escura): 1077 (~2265)Volume do universo: 1084 (~2280) cm3

Se o Universo for fechado 1011 (~237) anos

Tempo estimado de vida do universo: 1018 (~261) segundos

Se o Universo for abertoTempo estimado até que estrelas de pouca massa esfriem 1014 (~247) anosTempo estimado até que planetas se destaquem das estrelas 1015 (~250) anosTempo estimado até que estrelas se destaquem das galáxias 1019 (~264) anosTempo de decaimento de orbitas por irradiação gravitacional 1020 (~267) anosTempo de decaimento de buracos negros pelo processo Hawking 1064 (~2213) anosTempo até que toda a matéria se torne líquida à temperatura zero 1064 (~2213) anosTempo até que toda a matéria decaia em ferro 101026

anosTempo até que toda a matéria se colapse em buracos negros 101076

anosBruce Schneier, 1996

Page 177: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende163

Exemplos de cálculos do Diffie & Hellman

• Aritmética modular

a mod b = resto da divisão inteira de a por b ( Ex.: 33 mod 7 = 5 )

• Escolha de primos

Lista dos números primos no intervalo entre 2000000000 e 2000001000:

2000000011, 2000000033, 2000000063, 2000000087, 2000000089, 2000000099,2000000137, 2000000141, 2000000143, 2000000153, 2000000203, 2000000227,2000000239, 2000000243, 2000000269, 2000000273, 2000000279, 2000000293,2000000323, 2000000333, 2000000357, 2000000381, 2000000393, 2000000407,2000000413, 2000000441, 2000000503, 2000000507, 2000000531, 2000000533,2000000579, 2000000603, 2000000609, 2000000621, 2000000641, 2000000659,2000000671, 2000000693, 2000000707, 2000000731, 2000000741, 2000000767,2000000771, 2000000773, 2000000789, 2000000797, 2000000809, 2000000833,2000000837, 2000000843, 2000000957, 2000000983.

Tamanho do intervalo: 1001 Primos encontrados no intervalo: 53Estimativa de quantos primos deve haver no intervalo, pelo teorema dos números primos: 2*109 / ln(2*109) - 2.000001*109 / ln(2.000001*109) = 44.56Caso seja escolhido o primo q = 2000000983 (representação decimal), sua representação internabinária em 4 bytes (32 bits) será: 01110111 00110101 10010111 11010111

• Execução do protocolo de Diffie & Hellman

1- Escolha da aritmética modularnúmero primo para o módulo: q = 32693: (Em 16 bits: 0111111 110110101)número menor que o módulo para base: a = 27911 (Em 16 bits: 0110110 100000111)

2- Geração de sementes e transmissão de criptogramasnº randômico x gerado por A: 20589nº randômico y gerado por B: 17391Criptograma cA = ax mod q = 2791120589 mod 32693 = 26097 (bits 01100101 11110001)Criptograma cB = ay mod q = 2791117391 mod 32693 = 19370 (bits 01001011 10101010)

3- Cálculo da chave de sessãoChave k = cA

y mod q = 2609717391 mod 32693 = 18574 (bits 01001000 10001110)Chave k = cB

x mod q = 1937020589 mod 32693 = 18574 (bits 01001000 10001110)

Page 178: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende164

• Exemplo do algoritmo de exponenciação rápida

1- O expoente é decomposto de acordo com sua representação binária

Exemplo: cálculo de 637 mod 7 =

37 = 25 + 22 + 20 = 100101(2)

2- A exponenciação é fatorada conforme a decomposição do expoente:

Para cada posição binária do expoente, calcula-se o quadrado do resultado

anterior pelo produto por 1 (se o bit é 0) ou pela base (se o bit é 1)

637 mod 7 = 6 (20 + 22 + 25) mod 7

637 mod 7 = ((((((1*6) 2*1) 2*6) 2*1) 2*1) 2*6) mod 7

posição do bit do expoente → 0 1 2 3 4 5

3- Os restos podem são calculados após cada quadrado:

(1*6) 2*1) 2*6) 2*1) 2*1) 2*6) mod 7 =

((...(1*6) 2*1 mod 7) 2*6 mod 7) 2*1 mod 7) 2*1 mod 7) 2*6 mod 7 = 6

• Complexidade do algoritmo de exponenciação rápida

O número de operações de multiplicação efetuadas durante a exponenciaçãomodular é proporcional ao número de bits do expoente.

O número de operações de multiplicação e divisão efetuadas durante aexponenciação modular, é proporcional ao logaritmo do expoente.

Page 179: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende165

Exemplos de propriedades da aritmética finita de Zp

1- Quando p é composto

• Nem todo elemento ≠ 0 possui inverso multiplicativo

• Menos da metade dos elementos possuem raizes quadradas

Exemplo: multiplicação em Z8 = {0, 1, 2, 3, 4, 5, 6, 7}

* 1 2 3 4 5 6 7

1 1 2 3 4 5 6 7

2 2 4 6 0 2 4 6

3 3 6 1 4 7 2 5

4 4 0 4 0 4 0 4

5 5 2 7 4 1 6 3

6 6 4 2 0 6 4 2

7 7 6 5 4 3 2 1

1- Quando p é primo

• Todos elementos ≠ 0 possuem inverso multiplicativo

• Metade dos elementos ≠ 0 possuem raizes quadradas

Exemplo: multiplicação em Z7 = {0, 1, 2, 3, 4, 5, 6}

* 1 2 3 4 5 6

1 1 2 3 4 5 6

2 2 4 6 1 3 5

3 3 6 2 5 1 4

4 4 1 5 2 6 3

5 5 3 1 6 4 2

6 6 5 4 3 2 1

√1 mod 8 = 1, 3, 5 ou 7;

√4 mod 8 = 2 ou 6;

5-1 mod 8 = 5

7-1 mod 8 = 7

√1 mod 7 = 1 ou 6;

√2 mod 7 = 3 ou 4;

√4 mod 7 = 2 ou 5;

3-1 mod 7 = 5

Page 180: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende166

Exemplo de geração de chaves para o RSA

1- Escolhem-se dois primos: p = 3 ; q = 11

• Calcula-se n = 3*11 = 33 ; φ(n) = (3-1)*(11-1) = 20

2- Escolhe-se uma chave relativamente prima com φ(n)e calcula-se seu par:

• e = 17; Euclides extendido resolve 17*d + 20*y = +1: d=13, y=-11

Tabela multiplicativa de Z20* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 191 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 192 2 4 6 8 10 12 14 16 18 0 2 4 6 8 10 12 14 16 183 3 6 9 12 15 18 1 4 7 10 13 16 19 2 5 8 11 14 174 4 8 12 16 0 4 8 12 16 0 4 8 12 16 0 4 8 12 165 5 10 15 0 5 10 15 0 5 10 15 0 5 10 15 0 5 10 156 6 12 18 4 10 16 2 8 14 0 6 12 18 4 10 16 2 8 147 7 14 1 8 15 2 9 16 3 10 17 4 11 18 5 12 19 6 138 8 16 4 12 0 8 16 4 12 0 8 16 4 12 0 8 16 4 129 9 18 7 16 5 14 3 12 1 10 19 8 17 6 15 4 13 2 1110 10 0 10 0 10 0 10 0 10 0 10 0 10 0 10 0 10 0 1011 11 2 13 4 15 6 17 8 19 10 1 12 3 14 5 16 7 18 912 12 4 16 8 0 12 4 16 8 0 12 4 16 8 0 12 4 16 813 13 6 19 12 5 18 11 4 17 10 3 16 9 2 15 8 1 14 714 14 8 2 16 10 4 18 12 6 0 14 8 2 16 10 4 18 12 615 15 10 5 0 15 10 5 0 15 10 5 0 15 10 5 0 15 10 516 16 12 8 4 0 16 12 8 4 0 16 12 8 4 0 16 12 8 417 17 14 11 8 5 2 19 16 13 10 7 4 1 18 15 12 9 6 318 18 16 14 12 10 8 6 4 2 0 18 16 14 12 10 8 6 4 219 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

3- Teste do par de chaves RSA para blocos de 5 bits: m = (10100)2 = 20[exemplo]

eA(m) = me mod n = 2017 mod 33 = 26 = (11010)2 = c;dA(c) = cd mod n = 2613 mod 33 = 20 = (10100)2 = m.

4- Armazena-se dA = (d,n) = (13,33); divulga-se eA = (e,n) = (17,33)Outras possíveis escolhas de pares de chaves para este módulo n = 33:

{(7,33),(3,33)}; etc.

Page 181: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende167

Exemplo de implementação de curva elíptica para o RSA

1- Escolhem-se um primo e uma equação elíptica: p = 23 ; y2 = x3+x+1

• A equação y2 = x3+ax+b escolhida (a=1;b=1) satisfaz 4a3+27b2 ≠ 0

2- Aos pontos (x,y) ∈ Zp×Zp satisfazendo a equação, agrega-se O para obterE(Zp)

• O ponto (5,4) por exemplo, satisfaz 42 mod 23 = (53+5+1) mod 23

Lista de pontos de E(Z23)

(0,1) (3,13) (6,19) (11,3) (13,7) (18,3)

(0,22) (4,0) (7,11) (11,20) (13,16) (18,20)

(1,7) (5,4) (7,12) (12,4) (17,3) (19,5)

(1,16) (5,19) (9,7) (12,19) (17,20) (19,18)

(3,10) (6,4) (9,16) O “ponto no infinito”

• A “soma” dos pontos(3,10) + (9,7) = (y3,x3) por exemplo, é dada por:

(P≠Q)λ = (y2-y1)/(x2-x1) = (7-10)/(9-3) = -1*2-1 mod 23 = 11 ∈ Z23

x3 = λ2-x1-x2 = 121-3-9 = 109 mod 23 = 17 ∈ Z23

y3 = λ(x1-x3)-y1 = 11(3-17)-10 = 141 mod 23 = 20 ∈ Z23

• O “produto escalar” 2.(3,10) = (y3,x3) por exemplo, por soma iterada:

(P=Q)λ = (3x12+a)/(2y1) = (27+1)/(20) = 5*20-1 mod 23 = 6 ∈ Z23

x3 = λ2-x1-x2 = 36-3-3 = 30 mod 23 = 7 ∈ Z23

y3 = λ(x1-x3)-y1 = 6(3-7)-10 = -34 mod 23 = 12 ∈ Z23

(3,10)+(9,7) = (17,20); 2.(3,10) = (7,12)

Page 182: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende168

Exemplo de funcionamento de protocolo de conhecimento zero

Visão do Verificador

G Isomorfimo que o provador diz conhecer: G’

No i-ésimo passo do desafio, o provador apresenta Gi

A permutação de vértices revelada para o isomorfismo escolhido é aplicada (ex. hi),

para verificar se representa um isomorfismo (hi-1 º Gi º hi = G ou si

-1 º Gi º si = G’

?):

G 1 2 3 4 5 61 0 1 0 1 1 0

2 1 0 1 0 0 1

3 0 1 0 1 0 1

4 1 0 1 0 1 0

5 1 0 0 1 0 1

6 0 1 1 0 1 0

12

3

4

5

6h 1

↓2↓

3↓

4↓

5↓

6↓

? ? ? ? ? ?

G’ 1 2 3 4 5 61 0 1 1 0 0 1

2 1 0 0 1 1 0

3 1 0 0 0 1 1

4 0 1 0 0 1 1

5 0 1 1 1 0 0

6 1 0 1 1 0 0

h

hi 1↓

2↓

3↓

4↓

5↓

6↓

5 4 6 3 2 1

Gi 1 2 3 4 5 6

1 0 1 0 1 0 1

2 1 0 1 0 1 0

3 0 1 0 0 1 1

4 1 0 0 0 1 1

5 0 1 1 1 0 0

6 1 0 1 1 0 0

si 1↓

2↓

3↓

4↓

5↓

6↓

? ? ? ? ? ?

12

3

4

5

6

4

12

35

6

hi 1 2 3 4 5 61 0 0 0 0 1 0

2 0 0 0 1 0 0

3 0 0 0 0 0 1

4 0 0 1 0 0 0

5 0 1 0 0 0 0

6 1 0 0 0 0 0

alegando ter construídoGi isomorfo a G e G’

e o verificador escolhe qualisomorfismo quer verificar:hi: G→→→→Gi ou si: G’→→→→Gi

* * = G ?

hi si

hi-1 1 2 3 4 5 6

1 0 0 0 0 0 1

2 0 0 0 0 1 0

3 0 0 0 1 0 0

4 0 1 0 0 0 0

5 1 0 0 0 0 0

6 0 0 1 0 0 0

Gi

Gi 1 2 3 4 5 61 0 1 0 1 0 1

2 1 0 1 0 1 0

3 0 1 0 0 1 1

4 1 0 0 0 1 1

5 0 1 1 1 0 0

6 1 0 1 1 0 0

Page 183: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende169

Exemplo de funcionamento de protocolo de conhecimento zero

Visão do Provador

G Isomorfimo que o provador precisa conhecer G’

para poder construir Gi no i-ésimo passo do desafio,

E calcula a permutação de vértices para o outro isomorfismo a partir das duas

permutações já conhecidas: (si = hi º h-1 ou hi = si º h)

54

6

3

2

1

35

2

1

6

4

G 1 2 3 4 5 61 0 1 0 1 1 0

2 1 0 1 0 0 1

3 0 1 0 1 0 1

4 1 0 1 0 1 0

5 1 0 0 1 0 1

6 0 1 1 0 1 0

12

3

4

5

6h 1

↓2↓

3↓

4↓

5↓

6↓

3 5 2 1 6 4

G’ 1 2 3 4 5 61 0 1 1 0 0 1

2 1 0 0 1 1 0

3 1 0 0 0 1 1

4 0 1 0 0 1 1

5 0 1 1 1 0 0

6 1 0 1 1 0 0

h

hi 1↓

2↓

3↓

4↓

5↓

6↓

5 4 6 3 2 1

Gi 1 2 3 4 5 6

1 0 1 0 1 0 1

2 1 0 1 0 1 0

3 0 1 0 0 1 1

4 1 0 0 0 1 1

5 0 1 1 1 0 0

6 1 0 1 1 0 0

si 1↓

2↓

3↓

4↓

5↓

6↓

? ? ? ? ? ?

hi si

hi 1 2 3 4 5 61 0 0 0 0 1 0

2 0 0 0 1 0 0

3 0 0 0 0 0 1

4 0 0 1 0 0 0

5 0 1 0 0 0 0

6 1 0 0 0 0 0

h-1 1 2 3 4 5 61 0 0 0 1 0 0

2 0 0 1 0 0 0

3 1 0 0 0 0 0

4 0 0 0 0 0 1

5 0 1 0 0 0 0

6 0 0 0 0 1 0

onde Gi seja isomorfo aambos G e G’.

O provador escolhe umapermutação de vértices de Gou de G’ para construir Gi

si 1 2 3 4 5 61 0 0 1 0 0 0

2 0 0 0 0 0 1

3 0 0 0 0 1 0

4 1 0 0 0 0 0

5 0 0 0 1 0 0

6 0 1 0 0 0 0

* =

Gi

Page 184: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende170

Lista de exercícios

1 - Segundo a classificação de Warwick Ford para tipos de ataque a sistemas computacionais, o quecaracteriza ataque subjacente, ataque primário ou ameaça básica a um sistema computacional?

2 - Em que consistem os ataques por spoofing de IP e de número seqüencial ao TCP?

3 - Porque o ataque de número seqüencial associado ao spoofing de IP habilita a transmissão depacotes falsos apenas em uma direção do tráfego de sessão TCP?

4 - O que distingue modelos de controle de acesso discricionário de modelos de controle de acessomandatório?

5 - Descreva o tipo de ataque que expõe usuários de serviços que usam controle de acesso remoto,mas sem se valer de um serviço de autenticação distribuído (exemplo de serviço: Telnet, ftp,rlogin)

6 - Das afirmações abaixo, diga quais são verdadeiras e quais são falsas:Para ser segura uma cifra precisa ter um grande espaço de chavesUma cifra cujo espaço de chaves é grande, é uma cifra seguraCifras cujo algoritmo criptográfico é ocultado são mais segurasAlgoritmos criptográficos assimétricos estão expostos a mais tipos de ataques que os simétricosAlgoritmos criptográficos assimétricos são menos seguros que os algoritmos simétricos

7 - Descreva o que é uma cifra monoalfabética, e porque é insegura. Descreva a diferença entre umalgoritmo criptográfico simétrico e um assimétrico

8 - O que significam dedução local e quebra total de um algoritmo criptográfico?

9 - O que caracteriza um protocolo criptográfico ser arbitrado, ajuizado ou auto-verificável?

10- Diga quais dos propósitos abaixo, nenhum protocolo criptográfico até hoje concebido temcondições de almejarTransformar sigilo em confiança na integridade de dadosTransferir sigilo entre dadosCriar confiança na integridade de dados entre pontos de transmissãoCriar sigilo para a transmissão de dados

11- Quais inconvenientes e limitações existem para se estabelecer canais individuais comprivacidade (sigilosos) entre pares de usuários de uma rede, usando apenas algoritmoscriptográficos simétricos, se compararmos ao uso de sistemas assimétricos?

12- Em que consiste um envelope digital?

13- Como um algoritmo criptográfico assimétrico é usado para estabelecer um sistema criptográficode chaves públicas?

14- Como um sistema criptográfico de chaves públicas pode ser usado para implementar o conceitode assinatura digital? Em que consiste a assinatura digital de um dado?

15- O que é uma função de hash?

16- Em que consiste um MAC (message autentication code)?

17- Qual a diferença principal entre a garantia de integridade oferecida por MACs e a oferecida porassinatura digital?

18- Que tipo de ataque pode sofrer redes onde os agentes usam chaves públicas para estabelecercanais sigilosos entre si?

Page 185: 00717 - Criptografia e Segurança Na Informática

CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende171

19- Em que consiste a certificação de chaves públicas?

20- Em que consiste o ataque por dicionário a um arquivo de senhas?

21- Como pode ser dificultado o ataque por dicionário a um arquivo de senhas?

22- Como pode ser evitado o ataque de personificação através do vazamento de senhas durante loginremoto por escuta passiva no meio físico da rede?

23- Como a posse de uma chave privada pode ser verificada ao início de cada sessão, em uma redeque usa sistema de chaves públicas?

24- Qual o propósito do protocolo de Diffie & Hellman?

25- Qual o propósito da escrituração de chaves? (key escrow)

26- Porque os algoritmos assimétricos são computacionalmente viáveis, ao passo que a fatoração deinteiros e o cálculo do logaritmo discreto não o são?

27- Compare o uso da criptografia entre nós (link to link) e entre aplicativos (end do end): fale deuma vantagem e uma desvantagem de cada um desses tipos de implementação.

28- Porque uma chave assimétrica precisa ser maior que uma chave simétrica de mesma robustez?

29- Como o DES (Data Encription Standard) se tornou o primeiro padrão criptográfico de domíniopúblico?

30- Em que se baseia a segurança do algoritmo RSA?

31- Responda, justificando, se é seguro ou não usar o mesmo módulo para vários pares de chaves noRSA.

32- Responda, justificando, se é seguro ou não encriptar e depois assinar uma mensagem com oRSA.

33- Porque o RSA se tornou um algoritmo importante para a segurança das instituições financeiras?

34- Quais tipos de ação uma regra de filtragem de pacotes especifica?

35- Qual a maior vulnerabilidade representada por um firewall que liga uma rede corporativa àinternet?

36- O que distingue Filtro de Pacotes, Screening Router, e Gateway de aplicação?

37- Cite duas limitações na segurança proporcionada pelos firewalls38- O que caracteriza uma máquina como um Bastion Host?

39- Qual função do sistema operacional unix precisa ser desabilitada numa máquina com múltiplasinterfaces que hospede um gateway de aplicação?

40- Como este curso mudou sua idéia do que seja segurança computacional?