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
                                                                                              i
CopyMarket.com   Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
"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




                                                                                              ii
CopyMarket.com   Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                                                 Título: Criptografia e Segurança na Informática
                   Todos os direitos reservados.
                                                                                                 Autor: Pedro Antonio Dourado de Rezende
                   Nenhuma parte desta publicação poderá ser
                                                                                                 Editora: CopyMarket.com, 2000
                   Reproduzida sem a autorização da Editora.




                  Índice
                                                                                                         Pedro 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 ............................................... 161
               Tabela para comparação de grandes números ...................................................... 162
               Exemplo de execução do protocolo Diffie & Hellman ....................................... 163
               Exemplo de execução da primitiva Exponeciação Modular ................................ 164
               Exemplo de propriedades da aritmética finita ...................................................... 165
               Exemplo de geração de chaves para o RSA ......................................................... 166
               Exemplo de implementação de curva elíptica ..................................................... 167
               Exemplo de execução de protocolo de conhecimento zero ................................ 168
               Lista de exercícios ................................................................................................. 170




   Notação
           Conceito:                                                                                          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:


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

                                                                                                                                            iv
CopyMarket.com                Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Digital Signature Algorithm......................................................................................... 129
      Distribuição de freqüência de letras ............................................................................. 20
      Elementos de Protocolos............................................................................................... 21
      Elementos de um modelo de segurança interna......................................................... 10
      ElGamal ......................................................................................................................... 121
      Entropia em Criptoanálise............................................................................................. 19
      Escolha de algoritmos criptográficos........................................................................... 75
      Escolhas de plataforma .................................................................................................. 78
      Escritura de Chaves (key escrow)..................................................................................... 53
      Especificação de políticas de segurança..........................................................................7
      Esquema de autenticação de Feige-Fiat-Shamir....................................................... 131
      Esquema Meta-ElGamal.............................................................................................. 130
      Estimativas para comprimento seguro de chaves ...................................................... 59
      Estrutura básica de protocolos criptográficos ............................................................ 25
      Exemplo de um algoritmo criptográfico ..................................................................... 16
      Exemplos de configuração de filtragem .................................................................... 148
      Exemplos de protocolo baseado em conhecimento zero......................................... 57
      Fatoração e logaritmo discreto aplicadosà esteganografia ........................................ 49
      Ferramentas e utilitários de segurança ....................................................................... 159
      Funções de Hash........................................................................................................... 103
      Funções Unidirecionais (one-way functions).................................................................... 29
      Futuro da criptografia assimétrica .............................................................................. 127
      Geração de primos para criptografia assimétrica ....................................................... 64
      Hash usando algoritmos para cifra de bloco............................................................. 109
      Histórico da criptografia na internet .......................................................................... 155
      Implementação de serviços de assinatura digital...................................................... 128
      Implementação de serviços de chave pública ........................................................... 124
      Infra-estrutura para controle de tráfego .................................................................... 144
      Jurisdição da informação em meio eletrônico ...............................................................1
      LFSRs de período máximo............................................................................................ 71
      Limitações dos firewalls ................................................................................................. 153
      Login................................................................................................................................. 35
      MACs: Códigos de autenticação de mensagens ....................................................... 113
      MD5................................................................................................................................ 105
      Mecanismos de autenticação ......................................................................................... 30
      Mecanismos e modos para construção de cifras ........................................................ 65
      Mecanismos para uso de certificados em redes públicas ........................................ 136
      Modelos de segurança interna..........................................................................................9
      Modo CBC....................................................................................................................... 67
                                                                                                                                                  v
CopyMarket.com                  Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Modo CFB ....................................................................................................................... 68
      Modo ECB....................................................................................................................... 66
      Modo OFB....................................................................................................................... 69
      Necessidade de protocolos criptográficos................................................................... 34
      Operações de filtragem ................................................................................................ 146
      Outros algoritmos assimétricos................................................................................... 122
      Outros Algoritmos Simétricos ...................................................................................... 87
      Outros esquemas de autenticação .............................................................................. 132
      Padrões para assinatura digital e gerenciamento de chaves .................................... 133
      Padrões para certificados digitais................................................................................ 135
      Polinômios primitivos módulo 2 .................................................................................. 72
      Primitivas de algoritmos assimétricos .......................................................................... 61
      Principais padrões de protocolos criptográficos ...................................................... 134
      Projeto e análise de cifras encadeadas.......................................................................... 73
      Protocolos criptográficos............................................................................................... 24
      Protocolos em modelos de segurança externa............................................................ 22
      Protocolos esotéricos ..................................................................................................... 58
      Provas com conhecimento zero (0-knowledge)............................................................. 55
      Questões éticas sobre escrituração de chaves............................................................. 54
      Rabin............................................................................................................................... 120
      Riscos à segurança externa .......................................................................................... 139
      RSA ................................................................................................................................. 115
      Segurança de Algoritmos Criptográficos..................................................................... 17
      Seqüências randômicas................................................................................................... 33
      Serviços básicos de segurança computacional ...............................................................8
      Serviços de validação de selo temporal........................................................................ 50
      SHA................................................................................................................................. 107
      Sistemas de chave pública usando curvas elípticas .................................................. 125
      Sistemas de segurança de dados.......................................................................................2
      Técnicas de filtragem.................................................................................................... 145
      Técnicas de robustecimento do DES .......................................................................... 86
      Teoria da informação ..................................................................................................... 18
      Tipos de Ataque ao TCP/IP ............................................................................................5
      Transferência de confiança através de protocolos ..................................................... 23
      Uso de Tokens em segurança externa ......................................................................... 138
      Vulnerabilidade na ausência de segredos na autenticação......................................... 32
      Vulnerabilidades e pontos de ataque...............................................................................4



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



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



                                                                                                                                                    viii
CopyMarket.com                  Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                  Título: Criptografia e Segurança na Informática
             Todos os direitos reservados.
                                                                  Autor: Pedro Antonio Dourado de Rezende
             Nenhuma parte desta publicação poderá ser
                                                                  Editora: CopyMarket.com, 2000
             reproduzida sem a autorização da Editora.




                 Introdução
                                                                        Pedro Antonio Dourado de Rezende



No mundo hoje, somos levados a crer que podemos comprar soluções prontas – de preferência feitas
sob medida – para atender nossas necessidades. Mas a essência do que se busca nem sempre pode ser
encontrada na prateleira, embrulhada em pacote. Desejo iniciar essas notas com um comentário sobre a
natureza da busca de segurança para a informática. Creio que a essência dessa busca não pode ser
encapsulada e apresentada em forma de algoritmo. Por isso, não posso me propor apresentar-lhes
roteiros ou receitas para segurança na informática. Proponho, ao invés disso, ajudá-los a desenvolver
sensibilidade sobre como usar o conhecimento e as ferramentas até hoje acumulados, nessa busca. Para
explicar minha crença sobre a natureza do assunto que iremos tratar, escolhi introduzi-lo pelas palavras
de um experiente criptólogo, Bruce Schneier, divulgadas em uma lista de discussão eletrônica em
novembro de 96 (schneier@couterpane.com), cuja tradução transcrevo abaixo. Para guiar-nos em
minha proposta, compilei nas sessões seguintes um resumo dos conceitos, técnicas e procedimentos
mais 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 e
funcionamento de ferramentas para a proteção à informação – os serviços básicos de segurança
computacional. Na sessão 2 abordaremos como mecanismos de proteção contra ameaças – os
protocolos – são concebidos, para tornarem viável o uso destas ferramentas. Na sessão 3 estudaremos
o funcionamento dos mecanismos que tem se mostrado eficazes, ou seja, os principais protocolos
criptográficos de padrão aberto hoje em uso. Em seguida exploraremos na sessão 4 as formas como os
serviços básicos são escolhidos e montados em protocolos específicos, para então examinarmos em
mais 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ça
externos aos protocolos que influem nas suas escolhas são abordados na sessão 6, e uma visão do
estado 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 meio
de comentários, no cenário real, onde deve configurar-se claro o caráter global e integrador do
significado da segurança na informática, de cuja compreensão evolui tal sensibilidade. Estas notas
representam 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áficas
estão espalhadas ao longo das notas e devem ser buscadas por quem julgar necessária uma apresentação
textual 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 redes
de computadores, e noções de complexidade de algoritmos.




                                                                                                                    ix
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Porque a criptografia é mais difícil do que parece
“Do correio eletrônico à telefonia celular, do acesso seguro a servidores WEB à moeda eletrônica, a
criptografia é parte essencial dos sistemas de informação de hoje. A criptografia ajuda a imputar
responsabilidade, promover a justiça, prover acurácia e privacidade. Pode prevenir fraudes em comércio
eletrônico e garantir a validade de transações financeiras. Usada apropriadamente, protege a
anonimidade e fornece provas de identidade de pessoas. Pode impedir vândalos de alterarem sua página
na internet e competidores industriais de lerem seus documentos confidenciais. Com o comércio
seguindo 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. A
maioria desses sistemas são projetados e implementados não por criptógrafos, mas por engenheiros que
pensam que a criptografia é como qualquer outra tecnologia de computadores. Não é. Você não pode
tornar um sistema seguro simplesmente acrescentando criptografia como uma medida adicional. Você
precisa saber o que está fazendo a cada passo do caminho, da concepção até a implementação do
sistema.
Bilhões de dólares são gastos em segurança de computadores, e quase todo este dinheiro é
desperdiçado em produtos inseguros. Afinal, criptografia fraca parece idêntica à criptografia forte na
vitrine de software. Dois produtos de encriptação de correio eletrônico no mercado têm interface de
usuário praticamente idênticas, enquanto um deles é seguro e o outro permite bisbilhotagem. Uma
tabela contendo comparações entre recursos pode sugerir que dois produtos tenham funcionalidade
similar, embora um possa ter furos comprometedores de segurança e o outro não. Um criptógrafo
experiente pode reconhecer a diferença. Determinados tipos de criminosos também poderão.
A segurança de computadores hoje em dia é um castelo de cartas; pode se manter de pé por agora, mas
não vai durar. Muitos produtos inseguros ainda não foram quebrados porque ainda estão em sua
infância, mas à medida em que se tornem mais e mais usados, tornar-se-ão alvos atraentes para
criminosos. A imprensa divulgará os ataques, minando a confiança do público nesses sistemas. No
final, produtos sobreviverão no mercado de acordo com a robustez de sua segurança.
Os ataques a sistemas de informação são dos mais variados tipos. Toda forma de comércio já inventado
tem sido alvo de fraudes, desde as balanças propositadamente descalibradas, o dinheiro falso, as faturas
frias, etc. O comércio eletrônico também sofrerá fraudes, personificação, bloqueio de serviço, e
falsificações. Não se pode caminhar pelas ruas usando uma máscara que imita o rosto de outra pessoa
sem ser percebido, mas no mundo digital é muito fácil personificar outrem. Ocorre que a
informatização torna os riscos maiores ainda, permitindo ataques automatizados, impossíveis de serem
conduzidos contra sistemas não automatizados. Um ladrão pode se sustentar retirando um centavo por
mês de cada dono de cartão de crédito Visa. Apenas com a criptografia forte pode-se proteger tais
sistemas contra estes tipos de ataques.
Violações contra a privacidade constituem outro tipo de ataque. Alguns ataques contra a privacidade
são direcionados: alguém da imprensa pode tentar ler a correspondência eletrônica de uma figura
pública, ou uma companhia pode tentar interceptar as comunicações de um competidor. Pode-se
também tentar ataques de colheita, buscando informações interessantes num mar de dados: viúvas
ricas, 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 da
agência de serviço secreto dos EUA, enviadas cartas-bomba digitais a provedores da internet, e
cancelados centenas de listas de discussão eletrônicas, além de ataques que bloqueiam o acesso a
computadores que se comunicam por meio de determinados protocolos. E como divulgado, ladrões e
vândalos rotineiramente invadem redes de computadores. Quando as salvaguardas de segurança não
                                                                                                      x
CopyMarket.com       Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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, como
no exemplo de arrombadores que entram numa casa abrindo um buraco na parede, evitando os
alarmes e trancas das portas e janelas.
Vândalos cibernéticos também abrem buracos em paredes de bits. Roubam dados técnicos, subornam
agentes, modificam programas e mancomunam. Tiram vantagens de tecnologias mais avançadas que a
dos sistemas que querem atacar, e até descobrem novos métodos matemáticos para atacá-los.
Geralmente dispõem de mais tempo do que alguém honesto normalmente teria para desmontar e
examinar um sistema. O SecurID foi usado durante anos até que alguém olhou mais atentamente
dentro de seu gerenciador de chaves: seus códigos binários ainda continham rótulos!. As chances
favorecem os atacantes, que só precisa encontrar um ponto vulnerável no sistema, enquanto os
defensores precisam proteger seu sistema de toda vulnerabilidade possível.


O que a criptografia pode e não pode fazer
A garantia de 100% de segurança é uma falácia, mas podemos trabalhar em direção a 100% de aceitação
de riscos. Fraudes existem nas formas usuais de comércio: dinheiro pode ser falsificado, cheques
adulterados ou roubados, números de cartão de crédito copiados. Mesmo assim esses sistemas ainda
têm sucesso porque seus benefícios e conveniências compensam as perdas. Cofres, fechaduras e
cortinas – mecanismos de privacidade – 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. Um
sistema criptográfico, não importa quão seguro, não irá impedir que alguém vasculhe seu lixo. Mas
pode perfeitamente prevenir ataques de colheita de dados: ninguém conseguirá vasculhar suficientes
latas de lixo para montar a lista de todos os usuários de AZT do país.
A boa notícia sobre criptografia é que já temos os algoritmos e protocolos para proteger nossos
sistemas. A má notícia é que esta foi a parte mais fácil: implementações bem sucedidas requerem
especialização considerável. As áreas de segurança na informática que interagem com pessoas –
gerência de chaves, segurança da interface homem/máquina e controle de acesso – freqüentemente
desafiam análise. As disciplinas de infra-estrutura de chaves públicas, segurança do software, segurança
de computadores, segurança de redes e projeto de hardware inviolável são também pouco
compreendidas.
Companhias muitas vezes fazem mal a parte fácil e implementam algoritmos e protocolos inseguros.
Mas mesmo assim, na prática raramente a criptografia é quebrada por causa, ou através, de sua
matemática; outras peças do sistema são mais fáceis de serem quebradas. O protocolo mais seguro já
inventado poderá facilmente sucumbir a um ataque simples se não for dado atenção a detalhes mais
complexos e sutis sobre sua implementação. A segurança do browser Netscape 1.0 caiu devido a uma
falha no seu gerador de números randômicos. As falhas podem estar em qualquer lugar: no modelo de
ameaças, no projeto do sistema, na implementação do software ou do hardware, ou na gerência do
sistema. Segurança é uma cadeia, onde um único elo fraco pode quebrar todo o sistema. Bugs fatais à
segurança podem estar em partes do software distantes dos módulos que implementam serviços de
segurança, e uma decisão de projeto que não tenha nada a ver com segurança poderá criar uma falha de
segurança.


                                                                                                      xi
CopyMarket.com       Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Uma vez encontrada uma falha de segurança, pode-se consertá-la. Mas encontrar as falhas, para início
de conversa, pode ser extremamente difícil. Segurança é diferente de qualquer outro requisito de
projeto, porque nele funcionalidade não é igual a qualidade: se um editor de texto imprime
corretamente, sabe-se que a função de impressão funciona. Segurança é diferente: só porque um cofre
reconhece a combinação correta para abri-lo, não significa que seu conteúdo está seguro contra um
chaveiro ou arrombador. Nenhuma quantidade de testes beta revelará todas as falhas de segurança de
um sistema, e não haverá nenhum teste possível que prove a ausência destas falhas.


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


Projeto de sistemas
O projeto de um sistema criptográfico seguro deve ser feito somente após o modelo de ameaças ter
sido compreendido. Este trabalho é o tema central da criptologia, e é muito especializado. A
criptografia mescla várias áreas da matemática: teoria dos números, teoria da complexidade, teoria da
informação, teoria da probabilidade, álgebra abstrata, análise formal, dentre outros. Poucos podem
contribuir apropriadamente para esta ciência, onde um pouco de conhecimento é muito perigoso:
criptógrafos inexperientes quase sempre projetam sistemas falhos. Bons criptógrafos sabem que nada
substitui a revisão extensiva feita por colegas e anos de análise. Sistemas de qualidade usam algoritmos e
protocolos publicados e bem compreendidos: usar elementos não provados em um projeto é no
mínimo arriscado.
O projeto de sistemas criptográficos é também uma arte. O projetista precisa atingir um equilíbrio entre
segurança e acessibilidade, anonimidade e responsabilização, privacidade e disponibilidade. A ciência
sozinha não garante segurança: somente a experiência e a intuição nascida da experiência podem guiar o
criptógrafo no projeto de sistemas criptográficos e na busca de falhas em sistemas existentes.
Bons sistemas de segurança são feitos de pequenos módulos independentemente verificáveis (e que
tenham sido verificados!), cada um provendo algum serviço que claramente se resuma a uma primitiva.
Existem vários sistemas no mercado que são muito grandes para serem verificados em tempo razoável.



                                                                                                       xii
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Implementação
Existe uma distância enorme entre um algoritmo matemático e sua implementação concreta em
hardware ou em software. Projetos de sistemas criptográficos são muito frágeis. Só porque um
protocolo é logicamente seguro, não significa que permanecerá seguro quando o implementador
começar a definir estrutura de dados e a descrever a passagem de bits de um lado para outro.
“Fechado” nunca será totalmente fechado: esses sistemas têm que ser perfeitamente implementados,
senão irão falhar. Uma interface mal projetada pode tornar um encriptador de arquivos de disco
completamente inseguro. Uma interface de sincronização mal projetada pode deixar um furo num
sistema para comunicações seguras. Confiança excessiva na inviolabilidade de hardware, tais como os
chips de cartões selados, pode tornar inútil um sistema de comércio eletrônico. Como estes problemas
não aparecem em testes, por vezes aparecem em produtos já lançados no mercado.
Implementadores estão sempre sob pressão de orçamentos e prazos. Cometem os mesmos erros vezes
a fio, em muitos produtos diferentes. Usam geradores de seqüências randômicas ruins, não checam
condições de erro apropriadamente, e deixam informações secretas em arquivos de swap. Muitas destas
falhas não podem ser estudadas em livros acadêmicos porque não são tecnicamente interessantes. A
única maneira de aprender sobre estas falhas é fazendo e quebrando sistemas de segurança, um após o
outro, numa corrida sem fim.


Procedimentos e Gerência
No final da estória, muitos sistemas de segurança são quebrados por pessoas que os usam, e a maioria
das fraudes contra sistemas de comércio são praticadas por quem os opera. Usuários honestos também
causam problemas, porque geralmente não ligam para segurança. Eles querem simplicidade,
conveniência, e compatibilidade com sistemas legados (inseguros) e em uso. Eles escolhem senhas
fracas, anotam-nas, passam-nas para parentes e amigos, largam computadores com sessões abertas, etc.
Ë muito difícil vender fechaduras para pessoas que não querem ser molestadas pela responsabilidade de
carregar chaves. Sistemas bem projetados têm que levar em conta as pessoas, e as pessoas são os
elementos mais difíceis de serem abstraí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 mais
barato projetar e implementar um bom sistema do que cobrir as perdas com um sistema inseguro. A
maior parte de seu custo está em fazer com que as pessoas o utilizem. Ë difícil convencer o consumidor
sobre a importância de sua privacidade financeira, quando o mesmo está disposto a trocar um
detalhado registro de suas compras por um milésimo de uma viagem ao Havaí. Ë difícil construir um
sistema de autenticação robusto sobre um outro sistema que permite ser penetrado por meio do
conhecimento do nome de solteira da mãe de alguém. A segurança é rotineiramente ultrapassada por
vendedores, 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 listando
seus recursos e funcionalidade, e não avaliando sua segurança. Propagandas de produtos fazem
asserções que simplesmente não se sustentam. Um produto mais robusto, isto é, melhor testado (e
portanto mais caro), estará nestas condições em desvantagem para a comercialização. As pessoas
confiam no governo para zelar pela sua segurança e bem estar, em coisas para as quais não detém
conhecimento suficiente para fazerem sua própria avaliação – industrialização de alimentos, aviação,
medicamentos, medicina, etc. Com a criptografia entretanto, os governos fazem geralmente o contrário.

                                                                                                   xiii
CopyMarket.com       Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Problemas no futuro
Quando cai um avião, são abertos inquéritos, feitas análises e laudos técnicos. Informação sobre o
acidente é amplamente divulgada, e muitos aprendem algo com o acidente. Pode-se obter das
autoridades, laudos sobre acidentes aéreos desde o início da história da aviação. Mas quando o sistema
eletrô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 o
ataque, e ninguém aprende nada com os erros. O banco tenta remendar o problema em segredo, na
esperança de que a clientela não perca a confiança num sistema que não merece esta confiança.
Remendar sistemas de segurança para tapar furos em resposta a ataques bem sucedidos não é
suficiente. A informação move muito depressa. Uma falha em algum sistema, descrita na internet, pode
ser explorada por milhares em um dia. Os sistemas para hoje precisam antecipar futuros ataques.
Qualquer sistema de grande porte – seja para comunicações autenticadas, armazenamento seguro de
dados ou comércio eletrônico – deveria ter vida útil de cinco anos ou mais. Para permanecer seguro,
precisa ser capaz de resistir ao futuro: ataques mais inteligentes, com maior capacidade computacional e
motivações crescentes para se subverter um sistema que está consolidado por longo uso. Não haverá
tempo para se fazer upgrades enquanto este estiver em uso.
A história tem nos ensinado: nunca subestime a quantidade de recursos em dinheiro, tempo e esforço
que alguém esteja disposto a gastar para subverter um sistema. Use sistemas de defesa ortogonais, com
várias maneiras de se fazer a mesma coisa. Autenticação segura pode significar assinaturas digitais pelo
usuário via teclado, SSL para proteger a transmissão, IPSec pelo firewall para o destino, junto com
pontos de auditoria múltiplos ao longo do caminho para gerar rastros e produzir evidências. A quebra
de alguma parte dará ao atacante uma alavanca, mas não causará o colapso de todo o sistema.
Ë sempre melhor assumir o pior. Assuma que seus adversários são melhores do que realmente são.
Assuma que a ciência e a tecnologia poderão em breve fazer coisas que hoje ainda não podem. Dê a si
mesmo um margem de erro. Dê a si mesmo mais segurança do que hoje precisa. Quando o inesperado
acontecer, você estará contente por ter agido assim”. (Bruce Schneier)
Creio ser a busca de segurança para a informática semelhante à busca metafísica do homem pelo
significado da vida. Um movimento de impulso difuso entre o compreensível e o desejável, no
horizonte cambiante do possível. Terei atingido meu objetivo se ao final pudermos reconhecer o
contexto onde as ferramentas criptográficas podem ser úteis. Este contexto é formado pelas esferas de
atitude, motivação e compreensão dos riscos por parte de quem usa a informática, para dela se obter
confiabilidade. Poderemos então conviver, e convencer outros da necessidade de convivência, com o
dilema 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 uma
outra força humana relacionada à segurança – a paranóia – pode contribuir ao delicado equilíbrio desta
lei.




                                                                                                     xiv
CopyMarket.com       Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                  Título: Criptografia e Segurança na Informática
             Todos os direitos reservados.
                                                                  Autor: Pedro Antonio Dourado de Rezende
             Nenhuma parte desta publicação poderá ser
                                                                  Editora: CopyMarket.com, 2000
             reproduzida sem a autorização da Editora.




                 1. Fundamentos
                                                                            Pedro Antonio Dourado de Rezende


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

                         Classificada                          Sensível
                          Governos                         Comércio, Indústria
                     Organizações militares                  Comunidades
                            Interna                             Externa
                     Sistemas operacionais               Redes de computadores
                        Bancos de dados                    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.)

                                                                                                                    1
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Sistemas de segurança de dados

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

           Tipo de proteção                    Ameaça básica                         Ação
        Privacidade 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.



                                                                                                    2
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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


    Quadro-resumo (Warwick Ford)


Ameaças: Vazamento                  Fraude              Bloqueio            Uso indevido


Ataques
Primários:
        Penetração             Personificação,           Gancho,                 Implantação
                                   Desvio,             Virus, Spoof,
                                 Violação.             Troiano, etc.

Ataques
Subjacentes:
  Escuta passiva,              Escuta ativa,             Sobrecarga           Furto de sessão,
 Análise de tráfego,            Refutação.               intencional,             Replay,
 Descuido, Grampo,                                         Fraude.            Espelhamento,
    Varredura.                                                                   Fraude.




                                                                                                   3
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.



                                                                                                            4
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Tipos de Ataque ao TCP/IP

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

Camada                                                                             NFS PMAP           NIS
                                                                                  arquiv portas

 Aplic                                                                                     XDR

             TEL-    FTP SMTP         HTTP Gopher DNS     NTP TFTP        RIP              RPC
             NET transf. e-mail       www   dire-  nome sincro- transf. rotea-      procedimento remoto
             login arquivo                  tório domino nização arquivo mento

Transp                       TCP                                           UDP

 Rede                                               IP

                      ISO 8802-2

                                               HDLC: LAP-B:         LAP-D:                           ATM:
Enlace Ethernet      ISO      ISO       ISO
                                                 ISO  ITU
                                                              ITU
                                                                      ITU
                                                                                 SLIP      PPP:
                                                                                                      ITU
                    8802-3   8802-5     9314                Q.921/2                      rfc 1331
                                                 3309 X.25           Q.921                           I.361
                             Token              .8885        Frame
              CSMA/CD        Ring       FDDI                 Relay   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.



                                                                                                             5
 CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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.



                                                                                                       6
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.




                                                                                                    7
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Serviços básicos de segurança computacional

 •       Controle de acesso: (segurança interna)

                   Agente                                                     Objeto

                    Processo                Função bloqueadora                Recurso


            usuário, programa, etc.          Função decisória          mídia, dado, serviço, etc.



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

                  Origem A                        chave d
                                                               Alvo B
                                  chave e

 Texto pleno                           criptograma                              Texto pleno original
                     Função                                   Função
                   encriptadora                             decriptadora
        m                               e(m) = c                             d(c) = d(e(m)) = m



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

                   Autenticador                             Verificador
                                    senha/contra-senha
identificação         Função                                                   identificação
                                                               Função
da transaçào       autenticadora                                                 de origem
                                                             verificadora
                                                                               da transação
                                       token/ticket




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

                   Autoridade                               Participante

     certificado  Função    Chave de assinatura     Função                     certificado
     de origem certificadora Chave de verificação verificadora
                                                                                público
                                  registro




                                                                                                       8
 CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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


                                                                                                    9
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Elementos de um modelo de segurança interna
       Quadro-resumo (Castano, Fugino, Martela, Samarati)

            Sujeitos:        Usuários                   Administradores de segurança
                                 Requisição de acesso         Requisição para operação administrativa

                                                          Cotrole sobre
                           Processos
                                                           operações
                                                         administrativas
                                                               Acesso
                                     Acesso negado
                                                               autorizado

                     Controle de acesso
                                                        Autorizações
                     (Função decisória)
                                                         e políticas
                                 Acesso
                                 autorizado
                                                         Axiomas
       Objetos:




•      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


                                                                                                        10
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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);




                                                                                                   11
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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).



                                                                                                    12
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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.



                                                                                                     13
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.



                                                                                                     14
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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)
                                                  n
       3 - Poligrâmica: ............M=C=Σ 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.
                                                                                           n
                    Ex: Caso especial da cifra de Vigenère onde M=C=K=Σ , 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) -

                         n              n
                 M=C=Σ ; E ⊆ σ(Σ ): 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.




                                                                                                   15
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.


                                                                                                      16
CopyMarket.com           Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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




                                                                                                   17
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Teoria da informação

•        Estruturas de linguagens naturais num alfabeto Σ:

         LexL = Léxica                                             Σ* = sequências de
         Cadeias de palavras de L
                                                                   letras do alfabeto Σ
            SinL = Sintática
            Subconjunto de LexL                     L                      SemL = Semântica
                                                                                    Relação de
                                                                               equivalência em SinL



                 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.

                           Contexto da                          Árvore de derivação
                            mensagem                                 Sintática de L


                            Conteúdo
                       semântico de m

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


       2-         Medida logarítmica ponderada do inverso da probabilidade dos possíveis
                  conteúdos de m: (si = significado possível de m).
                                                   j
                                                                    1
                                     H(m) = − å p(si ) log(                )
                                                  i =1            p(si )



                                                                                                      18
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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
                                          (H(K)- dLn)
                                         2                  +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.


                                                                                                  19
CopyMarket.com       Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Distribuição de freqüência de letras
                           Frequências do Português (arquivo genérico de 64KB)

            0,18
            0,16
            0,14
            0,12
             0,1
            0,08
            0,06
            0,04
            0,02
               0
                           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




            0,18
            0,16
            0,14
            0,12
             0,1
            0,08
            0,06
            0,04
            0,02
               0
                   ascii      E     S     R     D     M      U     L     G     B      H     J     K     Y
                    32



                                                 frequência do inglês

           0,18
           0,16
           0,14
           0,12
            0,1
           0,08
           0,06
           0,04
           0,02
              0
                   ascii     T      I     O     R     D      U     F     W      P     G     K      J    Z
                    32



                                                                                                            20
CopyMarket.com             Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                       Título: Criptografia e Segurança na Informática
             Todos os direitos reservados.
                                                                       Autor: Pedro Antonio Dourado de Rezende
             Nenhuma parte desta publicação poderá ser
                                                                       Editora: CopyMarket.com, 2000
             reproduzida sem a autorização da Editora.




                 2. Elementos de Protocolos
                                                                             Pedro 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.

                     Algoritmo                              Protocolo com 2 agentes
                                                                   INÍCIO
                       INÍCIO




                                             Tempo




                         FIM                                           FIM

         Seqüência de passos do agente executor             Agente A         Agente B



•      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, e
    4 - completo, com uma ação especificada para cada situação possível;
                                  Agentes: 1-COMPLETOS

            Especificação:
          3-DETERMINANTE                        Propósito                     4-FECHADA


                                          2-DETERMINADOS               Premissas do protocolo


                                                                                                                         21
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.


                                                                                                    22
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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 -

           Compra de Automóvel


                      6- Novo DUT                             7-Crédito

         Detran      4- DUT, Vistoria                     5- Deposito cheque     Banco


                  8- Veículo,                Árbitro                  8- Transferência do
                  Novo DUT                  (Agência)                 crédito menos taxa



                                3- Cheque           3- Veículo, DUT




                                            2- Resposta
             Comprador A                                              Vendedor B
                                            1- Proposta




                                                                                                   23
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.




                                                                                                   24
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Estrutura básica de protocolos criptográficos

•      Sigilo na comunicação em rede -

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


                                                                    (Comunicação via canal seguro)




                  2: Solicita           Gerenciador de                    2: Solicita
                 chave (A,B)               chaves                        chave (A,B)



                                3: Chave k                3: Chave k


                                             1: Escolhe algoritmo

          Agente A                      4: criptograma c = k(m)                  Agente B
             7: decripta m’= k(c’)       6: criptograma c' = k(m’)        5: decripta m= k(c)




            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.



                                                                                                     25
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Sigilo com uso de chave pública -

          II: protocolo para privacidade usando algoritmo assimétrico




             2: cadastra chave                                         2: cadastra chave
                pública EA
                                            Banco de                      pública EB
                                             chaves


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


                                    0: Escolhe algoritmo assimétrico

                 Agente A                4: criptograma EB (m)                Agente B
          1: Gera par DA , EA                                              1: Gera par DB , EB
                                         6: criptograma EA (m’)
     7: decripta m’= DA (EA (m’))                                          5: decripta m= DB (EB (m))




•      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 -

                                      III: Envelope digital

                                    1: Escolha de algoritmos para I e II

            Agente A                 3: Envelope = criptogramas de                Agente B
                                      chave de sessão + mensagem
          2: lê EB, gera k;                                                4: k= DB (EB (k))
                                             EB(k), k(m)
           encripta k e m                                                     m= k(k(m))



                                                                                                        26
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.

                                      Objetos:    1-AUTOR
                   Funções:
                    3-VÍNCULO                    Autenticação                   4-PROVA


                                                 2-CONTEUDO             Premissas da Assinatura




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

                   IV: protocolo auto-verificável de assinatura digital

                                  1: Escolha de algoritmo assimétrico

                                             3: Publica A,EA;
                 Agente A              5: mensagem assinada: m,s             Agente B
       2: Gera EA, DA;                                             6: Identifica A em m
       4: gera m; calcula s = DA(m)      s = Assinatura digital        verifica se m =? EA (s)
                                         de A sobre m = DA(m)

                                                                                                   27
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Autenticação usando sistemas de chave secreta -


                  V: protocolo arbitrado de “assinatura” digital
         (Canal seguro)

                         Árbitro J                                   r = "comprovante" de data e
                      autentica A, m                                     origem de m;
                                                                     s = r, kA(m) = assinatura


          2: Solicita chave (A,J)                                         2: Solicita chave (B,J)




             3: Chave kA                                                      3: Chave kB

                               4: kA(m)               5: c = kB (m,s)


                             1:Escolha de Árbitro e algoritmo simétrico
             Agente A                                                          Agente B decripta c
                                            Arbitragem:
             encripta m                B solicita a J verificar se                   6: m, s = kB (c)
                                             s = r, kA(m)




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

                          VI: cifragem de mensagem assinada


                                    1: Escolha de algoritmo assimétrico


           Agente A assina            3: Pubica B,EB ; Publica A,EA              Agente B verifica
          2: Gera EA, DA;                                                         2: Gera EB, DB;
                                                    5: A,c
             publica EA;                                                             publica EB.
          4: gera m, calcula
                                                                      6: m, s = DB (c); m =? EA(s)
             s = DA(m); c = EB (m,s)




            Premissas e problemas do protocolo VI:

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


                                                                                                        28
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Funções Unidirecionais (one-way functions)

•      Definição
       Conceito 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).                                    One-way function
                                                                         h(m) fácil
                                                 Argumento→ m                              c ←Imagem
                                                                        h-1(c) difícil
•      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.

                                                        Hash livre de colisão
                                   h-1(c)
                                                                    h
                                m’                     m                       c
                                  h(m’)=h(m) difícil



                                                                                                       29
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.




                                                                                                30
CopyMarket.com     Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Prevenção contra ataque de replay II.b e gargalo VI.c:

                 VII: assinatura sobre digesto e selo temporal digitais


                                      1: Acordo sobre uso do protocolo


           Agente A assina            3: Publica B,EB ; Publica A,EA            Agente B verifica
         2: Gera EA, DA;                                                         2: Gera EB, DB;
                                                  5: A,c
         4: gera m, calcula digesto h(m),                                        6: m,s = DB(c);
            data, assina e encripta
                                                                                 7: h(m),t =? EA(s)
            c = EB( m,DA( h(m),t) ) )


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




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


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

        (confiança na integridade
          da origem e conteúdo)


          2: A Cadastra chave                                             2: B Cadastra chave
             pública EA;                                                         pública EB;
              Recebe ES                    Certificadora                          Recebe ES
                                           de chaves S

                                     ↓ Chaves públicas certificadas↓
                                                                   ↓
                      3: cA= A,EA DS(A,EA)             3’: cB= B,EB,DS (B,EB)


                                    1: Escolhe autenticador de chaves S

                                       4: Solicita EB 4’: Solicita EA
          A gera (DA, EA )                                                       B gera (DB, EB )
                                               5: cA     5’: cB
     6: verifica B,EB =? ES (cB);                                           6’: verifica A,EA =? ES (cA) ;
         gera k.                                7: EB (k)                      gera k’.
                                                7’: EA (k’)
           8’: k’ = DA EA (k’))                                               8: k = DB (EB (k))
                                           EB (k) Envelope digital
                                            k, = chave de sessão



                                                                                                             31
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Vulnerabilidade decorrente da ausência de segredo
                   compartilhado durante a autenticação
                           Ataque por espelhamento em II.b, VI.b:

                                        Intruso X oculto
                           para A finge ser B       para B finge ser A
                      6: m1 = DX (EX (m1))             9: m2 = DX (EX (m2))

                                                                        [ “ ” = perda de integridade]

         3: escuta chave              5: EX(m1)      8: EX (m2)              3: escuta chave
           pública EA                                                          pública EB

                                   10: EA(“m2”)     7: EB (“m1”)

       4: Falsifica chave E“B” (= EX)                                   4: Falsifica chave E“A” (= EX)
                                                     (Conexão não
                                                      autenticada)

                              1: Escolhe algoritmo, solicita chave pública

                                         2: X intercepta troca de            Agente B vaza m2
          Agente A vaza m1
                                             chaves públicas




•      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)



                                                                                                         32
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Seqüências randômicas

•      Conceito
                 Se 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 da             Probabilidade
                             seqüência de bits        de 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)

                                                                                                   33
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                   Título: Criptografia e Segurança na Informática
             Todos os direitos reservados.
                                                                   Autor: Pedro Antonio Dourado de Rezende
             Nenhuma parte desta publicação poderá ser
                                                                   Editora: CopyMarket.com, 2000
             reproduzida sem a autorização da Editora.




                 3. Protocolos Importantes
                                                                         Pedro Antonio Dourado de Rezende




•      Necessidade de protocolos criptográficos
           Os quatro serviços básicos de segurança computacional são capazes
       apenas de transformar características elementares de segurança - em operações
       envolvendo confiança - mas não de criá-las a partir do nada:
                 Controle de acesso ....transforma premissa de posse de segredo ou objeto
                    irrefutável por um agente em verificação de sua identidade.
                 Cifragem....................transfere e amplifica o sigilo de uma chave
                    criptográfica para o sigilo da informação em uma mensagem.

                 Autenticação .............transforma um sigilo em verificação de algum tipo
                    de 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 elementos
       e da capacidade transformadora dos serviços básicos, o tipo de funcionalidade
       de 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 atingir
       grau 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.



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


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

                              IX: Autenticação usando hash

                 Agente A                                                      Recurso


                 A, senha k                Cálculo do hash h(k)   4: If True   Sessão a A
                               1: A,k

                                        2: A,h(k)       3: T/F

                                             Arquivo de senhas
                                                                          (Sistema protegido)
                                          A,h(k) no arquivo?




•        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%.



                                                                                                   35
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Dificultando o ataque por dicionário (IX.c):

                         X: Autenticação usando hash com salt

                 Agente A                                                           Recurso


                 A, senha k                  Cálculo hash h(k, )                   Sessão a A
                                  1: A,k                             6: If True

                                              3: sA salt de A      5: True,s / False

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

             Rand( ):                      Arquivo de senhas                      (Sistema protegido)
             Gerador de números                                                          if True:
             pseudo-randômicos             A,sA,h(k,sA) no arquivo?                      ←
                                                                                     5: s←Rand( )
                                                                                     novo salt de A




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


                                                                                                        36
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Prevenindo ataques por replay: (IX.a, X.d)

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

                  Agente A                                                             Recurso


                 A, senha k                  Cálculo do hash h(k)     4: If True     Sessão a A ;
                                 1: A,k
                       n                                                              n ← n+1
                  k = h (r)
                                          2: A,h(k)          3: T/F

                                               Arquivo de senhas              (Sistema protegido)
                 r = número                                                         if True:
                 randômico                                                    5: h(k) ← h( h(k))
                                            A,h(k) no arquivo?




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

                      XII: Autenticação mútua usando desafios


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


                                                 2: A, cA
                                                                                     Recurso S
                 Agente A
                                                  4: S, cS
                                                                                   3: rS←Rand( );
           1: rA←Rand( );.                  6: mA = DA(rA, rS).                      cS = DS(rS)
             cA = DA(rA).                                                          7: rA = E A(cA).
                                     8: Se 7 então mS = DS(rA, rS)
             5: rS = ES(cS)                                                    rA,rS =? EA(mA).
                                      10: Se 9 então DA( h(rA, rS))
          9: rA,rS =? ES(mS).                                                  Rand( ) = gerador de
                                                                               números randômicos.




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


                                                                                                      37
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Autenticação e Distribuição de chaves usando sistemas
                                criptográficos simétricos

•      Um protocolo pioneiro:

                                  XIII: Needham & Schroeder

             (Canal seguro)                                        Servidor
                                                                  de chaves S

           2: Cadastra e                                                      2:     Cadastra e
              recebe chave                                                         recebe chave
              secreta kA                                                             secreta kB
                                       7: Decripta kA(cA), kB(cB);
                                          verifica i,A,B em ambos,
                                        extrai rA,rB e gera chave k.


                        8: kA (k, rA), kB (k, rB)                6: i,A,B, cA, cB


                                      1: Escolhem autenticador de chaves S


                 Agente A                         4: i,A,B, cA                       Agente B
                                            10: Se 9 então kB (k, rB)
             3: Gera índice i,                                               5: Gera número randômico
          número randômico rA;                                                          rB ;
                                           12: Se 11 então a chave de
           cA = kA( rA,i,A,B )                                                  cB = kB( rB,i,A,B )
                                             sessão está confirmada

           9: Decripta parte de 8;                                                11: Decripta 10;
          extrai k,rA e verifica rA           k = chave de sessão             extrai k,rB e verifica rB




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


                                                                                                          38
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Variante de XIII proposta por grupo do MIT:


                                       XIV: Kerberos, versão 5

                 (Canal seguro)
                                                                  Servidor de
                                                                   chaves S
             2: Cadastra e
                recebe chave
                secreta kA                                                   2:     Cadastra e
                                               3: Gera chave k,
                                                                                  recebe chave
                                                selo temporal T
                                                                                    secreta kB
                                             e prazo de validade L.


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


                                      1: Escolhem autenticador de chaves S

                  Agente A                                                          Agente B
                                                     6: cB, ck
          5: Decripta cA com kA:
                                                                             7: Decripta cB com kB:
          verifica B,L,T e produz             8: Se 7 então k(TA+1)          verifica A,L,T e extrai k;
               ck=k( A,TA )
                                                                               Decripta ck com k:
         9: Decripta 8 com k: verifica                                            valida A,T,TA
                                                k = chave de sessão
             TA+1 e confirma k.




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


                                                                                                          39
CopyMarket.com             Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Variante do Kerberos sem sincronização:

                                         XV: Neuman & Stubblebine

                     (Canal seguro)
                                                                         Servidor de
                                                                          chaves S

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

                                      7: cA,cB,rB                     5: B,c,rB


                                         1: Escolhem autenticador de chaves S

                      Agente A                                                             Agente B
                                                           4: A, rA

        3: Gera núm. randômico rA.                                                 4: Gera núm. randômico rB
                                                    9: Se 8 então cB, k(rB)            e selo temporal T;
        8: Decripta cA: verifica rA.
                                                                                        c=kB( A,rA,T ).
                                                                                       10: Decripta cB: decripta
            k = chave de sessão                11: Se 10 então inicia sessão.
                                                                                        k(rB) e verifica rB,T.




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

                                                                                                                   40
CopyMarket.com             Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Autenticação e Distribuição de chaves usando sistemas
                                criptográficos assimétricos

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


                                                   XVI: DASS

                 (Canal seguro)



      2: Cadastra EA; Recebe                                                    2:    Cadastra EB;
         ES e guarda chave                                                     Recebe ES e guarda
         privada DA                                Servidor                      chave privada DB
                                                  de chaves S


                 2: A, B                                                             5: B, A
                                  3: DS( B,EB )                6: DS( A,EA )


                                    1: Escolhem autenticador de chaves S

                   Agente A                                                          Agente B
                                                   4: cA, ck, k(TA)
           3: Valida EB com ES;                                                7: Valida EA com ES;
          Gera chaves k e Ek,Dk,                                               Decripta cA com EA;
                                                  8: Se 7 então k(TB)
        selo temporal TA e prazo L;                                             Decripta ck com Ek;
              ck = Dk( EB( k ))                                                   Extrai k com DB:
            cA = DA( A,L,Ek )                     k = chave de sessão              valida A,L,TA

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




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



                                                                                                        41
CopyMarket.com             Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
XVII: Denning & Sacco

                 (Canal seguro)


       2: Cadastra EA;                                                      2: Cadastra EB;
          Recebe ES e guarda                                             Recebe ES e guarda
           chave privada DA                                                chave privada DB
                                                Servidor
                                               de chaves S
                          3: A, B

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


                                      1: Escolhem autenticador de chaves S
                   Agente A                                                        Agente B
                                                    6: cB, cA, ck
         5: Extrai EB de cB com ES;                                        7: Extrai EA de cA com ES;
                Gera chave k,                                               Extrai e valida EB de cB;
               selo temporal T;                   8: Se 7 então k(TB)      Decripta ck com DB: extrai e
           ck=EB ( DA( A,B,T,k ))                                            valida A,B,T,k com EA;

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




                                           XVIII: Woo-Lam

                   (Canal seguro)                               Servidor de chaves S

        2: Cadastra EA;                                                            2: Cadastra EB;
           Recebe ES e guarda                                                   Recebe ES e guarda
           chave privada DA                                                       chave privada DB
                                             9: Gera chave k;
                                            ck= DS(,rA,k,A,B)
                           3: B                                               8: A, B,ES(rA )


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


                                    1: Escolhem autenticador de chaves S

                 Agente A                      6: EB ( A,rA )                   Agente B
        5: Extrai EB de 4 com ES;                                          7: Extrai rA de 6 com DB,
                                        12: Se 11 então EA (ck,rB)        11: Extrai EA de 10 com ES;
        Gera núm. randômico rA.
                                                                            Gera núm. randômico rB;
          13: Decripta ck com DA:
                                            14: Se 13 então k (rB)             Decripta ck com DB:
      extrai e valida A,B,rA,k com ES
                                                                        extrai e valida A,B,rA,k com ES.


                                                                                                           42
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Detecção do ataque por espelhamento em II,VI usando hash -

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


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


                                                3: Lê EB ; Lê EA
                    Agente A                                                          Agente B
                                                    5: v = h(c)
                 2: Gera EA, DA;                                              2: Gera EB, DB;
                                                   6: v’ = h(c’)
                    publica EA.                                                  publica EB.
                 era m; c=EB(m).                   7: c = EB(m)               4: Gera m’; c’=EA(m’).
                 9: Gera chave de
                                                8: Se h(c) = v então c’
                     sessão k
                                                                                   h( ) = hash livre de
                                              10: Se h(c’) = v’ então k                  colisão.




       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.




                                                                                                          43
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Derivação de chaves através de funções
                       unidirecionais com segredo

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

                                     XIX: Diffie & Hellman


                                 1: Escolhem número primo q e base a


                 Agente A                         3: A, c                       Agente B

           2: Gera n. randômico x;                3: B, c’              2: Gera n. randômico y;
              Calcula c = f(a,x)                                           Calcula c’ = f(a,y)
           4: Calcula chave de sessão                                   4: Calcula chave de sessão
                 k = (c’)x mod   q          k = f(c’,x) = f(c, y)          k = cy mod    q
                                                                    n
                            f( , ) = função trapdoor: f(a,n) = a        mod q




       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.




                                                                                                          44
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      D&H autenticado por senha, protegido contra ataques por
       dicionário e espelhamento:

                             XX: Diffie & Hellman fortificado

                                         0: Escolhem senha p

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

                 Agente A                                                      Agente B
                                                3: A, c
           2: Gera n. randômico x;                                     2: Gera n. randômico y;
                   x                            3: B, c’                         y
              c = a mod q                                                 c’ = a mod q
           4: Calcula chave k =                                        4: Calcula chave
                                                  5: v                         y
              (c’)x mod q;                                                k = c mod q
              v = H( p,k )                                             6: Valida v = H( p,k )
                                       7: Se 6 então H( h( p,k ),k )
           8: Valida H( h( p,k ),k )


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




       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.



                                                                                                    45
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Derivação híbrida de chave secreta via chave pública:

                              XXI: A-EKE (Bellovin & Merritt)

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

                                         1: Escolhem primo q e base a

                 Agente A                                                           Agente B
                                                  3: A, p(c )
          2: Gera n. rand. r, rA, sA;                                       4: Gera randômicos rB, sB;
                                                  5: B, p-1(c’)                       r
                   r
             c = a A mod q                                                     c’ = a B mod q;
          6: Decripta p-1(c’), calcula           7: k(p(k,r),sA)               Decripta p(c), calcula
                         x                                                          y
             k = (c’)        mod q;                                            k=c      mod q
                                                    9: k(r, sB)             8: Extrai sA, valida p,
          10: extrai r,sB, valida r e
             calcula s.                                                        calcula s.

                                         s = chave de sessão = sA   XOR sB




       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.


                                                                                                         46
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Aplicações de fatoração e logaritmo discreto à
                                        assinatura digital

•       Assinaturas digitais parcialmente irrefutáveis:

                                        XXII: David Chaum

                              1: Escolhem primo q e base a primitiva em Zq


                                 3: chave de verificação de assinatura   s
                 Agente A                                                               Agente B
                                        5: mensagem assinada m, c.
         2: Par de chaves: privada x,                                        6: Gera n. randômicos y, z;
                           x
             pública s = a mod q;                                               e calcula desafio
             Calcula verificador
                  -1                                7: B, v                     v = cysz mod q
             t = x mod (q-1);                                                   para verificação de c.
         4: Gera mensagem m;                                                 9: Verifica assinatura
            Calcula assinatura                           t
                                             8: v' = v       mod q
                 x
            c = m mod q                                                         v' =?   myaz mod q




       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.



                                                                                                                 47
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•        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.


                                                                                                48
CopyMarket.com     Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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”.




                                                                                                 49
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Serviços de validação de selo temporal

•       Selo temporal assinado com chave pública

                              XXIII: Selo temporal arbitrado



                                                2: A, c

                 Agente A                                                    Servidor S
                                               4: ES, c’             3: Gera selo temporal T;
           1: Cria mensagem m;
              Calcula c = h(m)                                          Assina c’ = DS(c,T)
           5: Valida selo temporal
              ES(c’) = c,T                                              h( ) = função hash:




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


                                                                                                    50
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Aposta Encoberta (comprometimento de bits)

•        Protocolos para o problema de se comprovar uma escolha ou
         previsão, sem revelá-la com antecedência.

                            XXIV: Comprometimento de bits


                               1: A e B escolhem algoritmo criptográfico

                                                  3: B,r                           Agente B
                 Agente A
                                                  4: A,c                   2: Gera n. randômico r
           4: Escolhe bits m,
              chave k;                                                        e aguarda evento.
              Calcula c = k(r,m)                 5: evento                 7: decripta c verificando
                                                                              r,m = k(c).
                                                  6: k, m




                   XXV: Comprometimento de bits usando hash

                                   1: A e B escolhem função de hash h( )


                 Agente A                                                          Agente B
                                                   3: c, r
                                                                           4: Aguarda evento.
         2: Escolhe bits m;                                                7: Verifica r, m desvelada:
                                                 5: evento                    c = h(r,s,m).
            Gera n. randômicos r, s
            Calcula c = h(r,s,m)
                                                  6: r,s,m




       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.


                                                                                                         51
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Cara ou Coroa

•        Protocolos que combinam bits randômicos de dois agentes para
         decidir entre interesses conflitantes.

                            XXVI: Cara ou coroa usando hash


                                 1: A e B escolhem função de hash h( )

                 Agente A                          3: c                          Agente B

           2: Gera n. randômico r               5: 1 ou 0                4:Adivinha se r é par ou
              Calcula c = h(r);                                             ímpar.
           6: Verifica r, 5                                              7: Verifica declaração do
              desvelando resultado.                6: r
                                                                            resultado: c =? h(r).




                 XXVII: Cara ou coroa usando chaves comutativas

                         1: A e B escolhem algoritmo criptográfico comutativo


                                            3: c1, c2 ou c2, c1
                 Agente A                                                        Agente B
                                                   5: EB(c), x
         2: Gera n. randômicos:                                          4: Gera chaves EB, DB;
            r par e s ímpar;
                                       6: t = DA(EB(c) ) = EB(r ou s)      Escolhe x = par ou impar;
            Gera chaves EA, DA;                                            Escolhe c = c1 ou c2
             c1=EA(r) , c2=EA(s)
                                                  8: DB(t)               7: Desvela escolha em 4:
         9: Valida escolha de B em 5                                       DB( t)= r ou s (=x ou ≠x)
         11: Valida uso da chave DB             10: DB, DA               11: Valida uso da chave DA




       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.


                                                                                                       52
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Escritura de Chaves (key escrow)

•        Protocolos que usam a caução de chaves privadas para produzir
         quebra de sigilo sob demanda judicial.

                 XXVIII: Sistema criptográfico justo (Micali)

                                      Servidor de chaves S
       Fiel Depositário X                                                     Fiel Depositário Y


                  4: Se 3, ExA, ExB                           4: Se 3, EyA, EyB

                          9: DxA                                     9: DyA

    3: X valida ExA+DxA; ExB+DxB                                     3: Y valida EyA+DyA; EyB+DyB
                                        5: S Valida DA, DB
                                       10: DA=f (DxA,DyA)
                              6: EB                                6: EA
         2: ExA,DxA                                                               2: EyB,DyB

                      2: EA                                                  2: EB
                                         8: Intimação: DA
                       2: EyA,DyA                                  2: ExB,DxB

                                                        7: Acolhe suspeita
                                      Juiz
                                                          contra A

                                      11: Juiz/Polícia escutam A
             Agente A                                                                Agente B
                                   6: Se 5, A estabelce sessão com B
      1: Gera EA, DA                                                       1: Gera EB, DB
      Calcula ExA,DxA, EyA,DyA                                             Calcula ExB,DxB, EyB,DyB
                                        Canal de Sigilo relativo




       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.


                                                                                                      53
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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 como
 padrão, há várias propostas comerciais em oferta no mercado. Quais são as vantagens da
 escrituração de chaves para o usuário? Bem, não há realmente nenhuma. O usuário não
 ganha nada da escrituração, que não poderia prover por si mesmo. A caução garante que a
 polí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 mandato
 judicial, embora encriptadas. Talvez a escrituração possa permitir o uso da criptografia em
 paí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 tem
 que confiar na segurança dos procedimentos das agências cartoriais, depositários fiéis de
 sua chave privada em caução, e na lisura das pessoas envolvidas. Tem que confiar que os
 agentes da caução não irão modificar suas regras de conduta, que o governo não mudará as
 leis sobre escrituração, e que as pessoas com poder para recuperar sua chave privada o
 farã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ão
 legal ou política. O próximo passo óbvio seria a proibição da criptografia sem caução. Essa
 seria possivelmente a única forma de garantir o retorno no investimento em um desses
 sistemas, 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 trabalham
 em 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 sistemas
 escriturados 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 pela
 conta do usuário, então certamente terá sido pelo usuário e nunca através dos agentes
 cartoriais? E se o banco de dados do cartório de chaves for roubado? E se este roubo for
 acobertado pelo governo durante algum tempo? Ainda mais perigoso é o uso das escrituras
 em espionagem para fins políticos. Se as chaves de assinatura forem também escrituradas,
 existem problemas adicionais. Seriam aceitos em corte documentos assinados com chave
 escriturada, como prova contra o proprietário da chave?
       A globalização da criptografia traria problemas adicionais. E se governos de outros
 países não aceitarem como de fé pública os agentes cartoriais americanos? As companias
 multinacionais 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 em
 outro país sua assinatura num contrato, alegando ter sido forjada por agentes cartoriais
 onde foi obrigado a escriturar sua chave? E os países que patrocinam espionagem industrial
 em benefício de suas empresas? Certamente não irão escriturar suas chaves em outros
 países.
       As comunicações digitais oferecem oportunidade bem mais ampla para atividades de
 monitoramento das ações, opiniões, compras, associações, etc., de cidadãos do que seria
 possível no mundo analógico. Tornar esta capacidade quase automática e não rastreável
 pode oferecer uma tentação a mais para estados com tendências não democráticas.


                                                                                                 54
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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).


                    XXIX: Estrutura de protocolos 0-k iterativos

                                        1: Escolhem tipo de problema P


                                   3: Repetir n iterações: j de 1 até n
             Provador A                                                          Verificador B
                                              3.2: compromete sj.
          2: Gera ou obtem instância                                      3.3: Escolha randomica
               P e solução s de P
                                                                             entre verificar sj ou hj;
         3.1: Gera instância Pj             3.4: comunica escolha 3.3
                                                                          3.6: Verifica se
             randômica isomorfa a P;
                                                                             sj é solução de Pj ou se
            Usa hj:Pj→P e s para          3.5: revela sj ou descreve hj
                                                                             hj:Pj→P é isomorfismo
            calcular sj solução de Pj
                                            A convence B que possui s




       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)


                                                                                                         55
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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.


                   XXX: Estrutura de protocolos 0-k não iterativos

                              1: Divulga escolha de problema P e hash h( )


                            3: c = comprometimento de s1,..,sn concatenados
             Provador A                                                        Verificador B
         1: Gera ou obtem instância P       5: publica c, v = h(c)
                                                                       7: Verifica se v = h(c), e
            e solução s de P.
                                                                           se escolha em 3 coincide
         2: Repete n vezes: Gera                                           com seqüência de bits de v
            instância Pj randômica          6: publica resultado 4
                                                                       8: j de 1 a n: Verifica se sj é
            isomorfa a P e usa s e
                                                                           solução de Pj ou se
            hj:Pj→P para calcular sj
                                                                          hj:Pj→P é isomorfismo.
            solução de Pj.

         4: Repete j de 1 a n: Se bit j de h(c)=0              A convence leitor de B disposto a
            revela sj, caso contrário descreve hj.                executar 6 e 7 que detém s




       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.


                                                                                                         56
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.


            XXXI: protocolo iterativo 0-k com isomorfismo de grafo

                                       1: A, B escolhem protocolo


                                  3: Repetir n iterações: j de 1 até n
             Provador A                                                         Verificador B
                                           3.2: compromete hj.
        2: Gera ou obtém
                                                                         3.3: Escolha randomica
                            →
           isomorfismo h:G→G'.                                              entre verificar sj ou hj;
           (A solução é h. A divulga     3.4: comunica escolha 3.3
           G,G' para autenticar-se)                                      3.6: Verifica se
        3.1: Gera isomorfismo                                                  →           →
                                                                           sj:G→Gj ou hj:G'→G j é
                                       3.5: revela hj ou descreve sj
                            →
           randômico hj:G'→Gj;                                             isomorfismo
           Descrição de sj= hj.h                                →
                                         A prova que conhece h:G→G' com probabilidade 1-2-n




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



                                                                                                        57
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.



                                                                                                58
CopyMarket.com     Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                         Título: Criptografia e Segurança na Informática
                Todos os direitos reservados.
                                                                         Autor: Pedro Antonio Dourado de Rezende
                Nenhuma parte desta publicação poderá ser
                                                                         Editora: CopyMarket.com, 2000
                reproduzida sem a autorização da Editora.




                 4. Técnicas Criptográficas
                                                                               Pedro Antonio Dourado de Rezende


•       Custo de hardware x Tempo médio estimados, para quebra por
        forç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



                                                                                                                           59
CopyMarket.com            Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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



                                                                                                   60
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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):
                                                         1/2
       Crivo Gaussiano- tempo heurístico ≈ e(1+c*n*ln(n)) (n<~360);
                                                  2    1/3
       Crivo de Campo Numérico- t ≈ e(1.923+c*n*ln (n)) (n>~360).

       O problema da fatoração de inteiros é redutível ao do logaritmo discreto.


                                                                                                         61
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Inversão do produto de inteiros: fatoração -

                 Algoritmos para Z mais eficientes hoje conhecidos (n = bits de p):
                                                    1/2
       Crivo Quadrático (QS)- tempo ≈ e(1+c*n*ln(n)) (n<~360);
                                                  2    1/3
       Crivo de Campo Numérico- t ≈ e(1.923+c*n*ln (n)) (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)     ~5000 mips_ano, em 8 meses usando QS distribuído *(em
                   (428 bits)        1600 máquinas de voluntários na Internet, via e-mail).
        1997       154 dígitos      Supõe-se fatorável pelo Crivo de Campo Numérico (NFS),
                   (512 bits)        em poucos meses com alguns milhões de US$ .


       Números de Fermat e de Mersenne:
                                                           n
                      Número                Fermat 22 +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)



                                                                                                    62
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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).

                                                                                                          63
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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




                                                                                                      64
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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



                                                                                                     65
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Modo ECB

•      Cada bloco mi da mensagem m=m1...mn é cifrado como uma
       mensagem, independente dos blocos anteriores e sucessores-

                 ECB
                  ... mi-1          mi           mi+1 ...         Encriptação Decriptação


                            Algoritmo de cifra

                   ek/dk           ek/dk         ek/dk                    Chave k




                  ...ci-1           ci           ci+1...                Criptograma




       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.


                                                                                                     66
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Modo CBC

•      O bloco do último criptograma é combinado com o próximo bloco
       da mensagem, antes de encriptado (após decriptado) -

                 CBC
                    ...mi-1       mi         mi+1...

            VI         ⊕          ⊕           ⊕                  ⊕ = Função XOR bit a bit


                     ek/dk      ek/dk       ek/dk
                                                                VI = Vetor de Inicialização
                                                                  (Selo temporal, número
            tempo
                                                                 randômico ou serial, etc)
                  ....ci-1       ci          ci+1...




       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.


                                                                                                     67
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Modo CFB

•      O bloco do último criptograma é (deslocado e) reencriptado, e o
       resultado combinado com o próximo bloco da mensagem

                 CFB                                            CFB com acumulador
                  ...mi-1            mi           mi+1...           ← shift register ←

            VI       ⊕               ⊕             ⊕                   bloco
                                                                           ek/dk
                             ek/dk        ek/dk         ek/dk
                                                                    último          byte
                                                                               ki
                                                                    i-ésimo         byte
                  ....ci-1           ci           ci+1...         mi           ⊕           ci




       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.


                                                                                                     68
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Modo OFB

•      O bloco da última cifra do VI é (deslocado e) reencriptado, e o
       resultado combinado com o próximo bloco da mensagem-

                 OFB                                            OFB com acumulador
                  ...mi-1         mi         mi+1...                ← shift register ←

            VI       ⊕            ⊕           ⊕                        bloco
                                                                               ek
                             ek        ek              ek
                                                                       último subbloco
                                                                               ki
                                                                     i-ésimo     subbloco
                  ....ci-1        ci         ci+1...              mi           ⊕       ci




       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.


                                                                                                     69
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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↓               = seqüência tap      Saída↓
            VI = ( n bits de inicialização)              VI
                      → shift register →                          → shift register →
                   bn ... ... b4 b3 b2 b1                       bn ... ... b4 b3 b2 b1

                        .......
                    Função de feedback                             ⊕ (XOR=paridade)
                                                                           )




                                                                                                    70
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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
                                                    n
             • p(x) é irredutível ^ [p(x) | x      2 -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:

                   LFSR de 32 bits com período 232-1

             VI                           → shift register →
                         b32 b31 .... .... .... b9 b8 b7 b6 b5 b4 b3 b2 b1



                                               ⊕        (paridade)




                 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;
       }



                                                                                                     71
CopyMarket.com       Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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)




                                                                                                  72
CopyMarket.com       Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.




                                                                                                  73
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      Exemplo de composição para-e-segue alternada -

                  Gerador alternate stop-and-go com 3 LFSRs

                 - Controle de deslocamento                     LFSR 2
                            LFSR 1                                                   Saída
                                                                                 ⊕


                 φ = sinal de clock                            LFSR 3




•      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
                                                                  k-1 k
dos últimos k bits gerados, que terá então P(0) = 0.5+2 ε .


•      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, ...



                                                                                                 74
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.



                                                                                                            75
CopyMarket.com            Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Criptografia na transmissão de dados

•     Possibilidades para implementação no modelo OSI de redes-

                 Criptografia em redes OSI

                                          Aplicativo                               Aplicação
             Host                                                         Host     Presentação
                      End to end                                                   Sessão
                                             Sistema
                                                                                   Transporte
                           Subrede             Nó                                  Rede
                                                                                   Ligação
                      Link to link
                                                           Elo                     Física

                       Níveis de implementação                               Camadas




•     Comparações entre as alternativas:

     Transmissão                     Link to link                        End to end
                • Mensagem exposta no           • Mensagem encriptada no
    Segurança nos computador de origem e nos nós computador de origem e nos nós
    computadores da rede.                         da rede.

                       • Iniciada pelo host de origem,   • Iniciada pelo processo origem,
       Papel do          invisível ao usuário.             onde o usuário aplica cifra.
        usuário        • Host mantém algoritmo, usado • Usuário seleciona e mantém
                         por todos.                        algoritmo caso a caso.
                       • Cifra tudo ou nada, podendo ser • Usuário decide por mensagem,
                         implementada em hardware.         mais fácil por software.
                       • Requer uma chave para cada par • Requer uma chave para cada par
     Questões de         de nós, e uma implementação      de usuários, e uma
                         em cada nó.                      implementação em cada host..
    implementação
                       • Cabeçalhos de transmissão          • Cabeçalhos de transmissão
                         encriptados.                         expostos.
                       • Provê autenticação de nós          • Provê autenticação de usuários
                         (controle de roteamento)             (controle de acesso)



                                                                                                   76
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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
                    • Mais fácil de implementar, usar • Arquivos temporários e de
      Benefícios      e manter.                          trabalho ficam seguros no driver.
                    • Transferência fácil de arquivos. • Ninguem esquece de encriptar
                   • Diferentes senhas para cada       • Perda da senha mestra
      Problemas      arquivo.                            compromete todo o disco.
    para o usuário • Controle de acesso a arquivos     • O acesso ao disco se torna mais
                     geralmente se limita ao utilitário lento, pois qualquer acesso será
                     de encriptação.                     cifrado.
                    • Programas que usam arquivos         • Extremamente sensível a erros
     Questões de      temporários comprometem a             de especificação de
                      segurança.                            programação
    implementação
                    • Implementação pode ser              • Modos de encriptação usuais são
                      vulnerável mapeando senhas            inapropriados ou inseguros nesta
                      iguais para chaves iguais.            aplicação (usa-se ECB+OFB)
                    • Interface com o usuário pode    • Iteração imprevisiível do driver
                      desestimular o uso de cifragem.   cifrador com outros drivers de
                                                        dispositivo.



                                                                                                 77
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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
                      • Facilidade de instalação, uso   • Facilidade de implementação,
      Benefícios        transparente e eficiente.         configuração e atualização.
                      • Integridade pode ser obtida com • São portáveis e de baixo custo
                        lacre químico inviolável.         (algoritmos de domínio público)
                   • Informações sobre a origem do • O armazenamento de chaves e a
      Problemas      algoritmo ou detalhes de         integridade do código da cifra
                     implementação são inacessíveis. não são seguros.
    para o usuário
                   • O dispositivo é de aplicação   • O gerenciamento de chaves com
                     específica, requerendo upgrades essa opção é geralmente de
                     com a troca de equipamentos.     grande complexidade.




                                                                                                   78
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                  Título: Criptografia e Segurança na Informática
             Todos os direitos reservados.
                                                                  Autor: Pedro Antonio Dourado de Rezende
             Nenhuma parte desta publicação poderá ser
                                                                  Editora: CopyMarket.com, 2000
             reproduzida sem a autorização da Editora.




                 5. Algoritmos Criptográficos – Parte 1
                                                                        Pedro Antonio Dourado de Rezende


•      Cenário inicial da padronização em criptografia -

       •          até 1970: Não existiam padrões, e praticamente nenhuma cultura ou
                  pesquisa criptográfica fora da área militar. Pequenas companhias
                  vendiam hardware de criptografia restrita para governos.
       •          1972 ....... National Institute of Standards and Technology iniciou um
                  programa para proteção a computadores e comunicação de dados que
                  previa o estabelecimento de um algoritmo criptográfico padrão que
                  permitisse interoperabilidade nas comunicações.
       •          1973 ....... NIST abriu concurso para escolha de um algoritmo padrão
                  que obedecesse os critérios de segurança divulgados. Nenhum dos
                  candidatos 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 livre
                  do algoritmo, após alteração feita pela NSA que encurtou o tamanho
                  das chaves e após debates públicos sobre sua segurança.
       •          1976 ....... O algoritmo escolhido é adotado em 23/11/76 como padrão
                  oficial nos EUA, renovável a cada 5 anos, com nome de Data
                  Encription Standard (DES). O NIST publica várias documentos de
                  especificação para implementação e uso do DES, com intenção de
                  poder validar implementações em hardware.
       •          1981-92........ ANSI, ISO acolhem e NIST renova o padrão DES.



                                                                                                                    79
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.

                      DES
                                        Bloco da mensagem                    Chave k
                                        64 bits

                                           Permutação IP                   subchave de
                                                                            rodada Ki
                                  32                             32
                             L0                   K1                  R0

                              ⊕                   f




                           L1 = R0                K2          R1 = L0 ⊕ f(R0,K1)

                              ⊕                   f




                           L2 = R1                            R2 = L1 ⊕ f(R1,K2)


                                                  K16

                              ⊕                   f




                          L16 = R15                         R16 = L15 ⊕ f(R15,K16)
                                32                              32


                                          Permutação IP-1
                                                       64
                                       Bloco do Criptograma



                                                                                                    80
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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

                 DES: i-ésima rodada

                                      Ri-1                                    Buffer de chave

                          Li                                                             64
                                           32

                 f          E-box                                     Ki       32            32

                                    Expansão                               Rotação           Rotação
                                             48
                                       ⊕
                          S-boxes                                                  64
                                 Substituição
                                                                                   Compressão
                                             32                                          48
                           P-box
                                 Permutação


                          Li-1         ⊕
                                                                               Buffer de chave

                                       Ri


          E-box: bits 1 2 3 4                5678      .......     Rotação:
                     36                                            Rodadas i =1 2,9,16 outras Direção
                     48                                    .....   Encripta 1 bit 1 bit 2 bits Esquerda
                            1 2 3 4 5 6 7 8 9 10111213 ......      Decripta 0 bit 1 bit 2 bits Direirta


             S-boxes
             bits 1 2 3 4 5 6



                          S1         S2           S3         S4       S5      S6        S7        S8




             bits 1 2 3 4




                                                                                                          81
CopyMarket.com               Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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    F
           0    E    4     D     1   2     F   B      8    3    A   6    C    5     9   0    7
           1    0    F     7    C    E     2   D      1    A    6   C    B    9     5   3    8
           2    4    1     D     8   C     6   2     B     F    C   9    7    3    A    5    0
           3    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 hexadecimais
          S2 0       1     2     3   4     5   6      7    8    9   A    B    C D       E    F
           0    F    1     8     E   6     B   3      4    9    7   2    D    C     0   5    A
           1    3    D     4     7   F     2   8     E     C    0   1    A    6     9   B    5
           2    0    E     7    B    A     4   D      1    5    8   C    6    9     3   2    F
           3    D    8     A     1   3     F   4      2    B    6   7    C    0     5   E    9
         ↓ S-box                        ...↑ Bits de saída ↑...            valores hexadecimais
          S3 0       1     2     3   4     5   6      7    8    9   A    B    C D       E    F
           0    A    0     9     E   6     3   F      5    1    D   C    7    B     4   2    8
           1    D    7     0     9   3     4   6     A     2    8   5    E    C    B    F    1
           2    D    6     4     9   8     F   3      0    B    1   2    C    5    A    E    7
           3    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    F
           0     7   D     E     3   0    6    9    A    1     2   8     5   B    C     4    F
           1     D   8     B     5   6    F    0    3    4     7   2     C   1    A     E    9
           2     A   6     9     0   C    B    7    D    F     1   3     E   5    2     8    4
           3     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    F
           0     2   C     4    1    7    A    B    6    8    5    3     F   D    0     E    9
           1     E   B     2    C    4    7    D    1    5    0    F     A   3    9     8    6
           2     4   2     1    B    A    D    7    8    F    9    C     5   6    3     0    E
           3     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   F
           0     C   1     A    F     9   2    6    8    0    D    3     4   E    7     5   B
           1     A   F     4    2     7   C    9    5    6    1    D     E   0    B     3   8
           2     9   E     F    5     2   8    C    3    7    0    4     A   1    D     B   6
           3     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    F
           0     4   B     2    E    F     0   8    D    3    C    9     7   5    A     6    1
           1     D   0     B    7    4     9   1    A    E    3    5     C   2    F     8    6
           2     1   4     B    D    C     3   7    E    A    F    6     8   0    5     9    2
           3     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   F
           0     D   2     8     4   6    F    B    1    A    9    3     E   5    0     C   7
           1     1   F     D     8   A    3    7    4    C    5    6     B   0    E     9   2
           2     7   B     4     1   9    C    E    2    0    6    A     D   F    3     5   8
           3     2   1     E     7   4    A    8    D    F    C    9     0   3    5     6   B


                                                                                                      82
CopyMarket.com           Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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 hexadecimal
                                k= 0101 0101 FEFE FEFE
                                k= FEFE FEFE 0101 0101
                                k= 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.



                                                                                                    83
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.

                   Exemplo de característica do DES


                               ∆L                            ∆in = 0x60000000
                                                  Ki
                                       ∆out                ∆in
                               ⊕                  f




                          0x60000000                             ∆L XOR ∆out



                      Probabilidade( ∆out=00808200|∆in=0x60000000 ) =




                                                                                                    84
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.


                     Maior tendência do DES: segundo bit da caixa S5

                                 Ri-1

                      Li
                                      b17 in
                 f     E-box
                               Expansão
                                                           Ki
                                  ⊕                              b26 key
                     S-boxes          b26
                            Substituição
                                                            Probabilidade de
                                      b17 b18 b19 b20
                      P-box                                 (b26 = b3 ⊕ b8 ⊕ b14 ⊕ b25 out)
                            Permutação
                                                            = 0.5 - 5/16

                     Li-1              b3 b8 b14 b25 out
                                  ⊕
                                  Ri




                 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)


                                                                                                       85
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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:

             Cifra Triplo DES
                                   Encripta
                                                                     DES = algoritmo em
                         DES        DES   -1
                                                 DES                 modo de encriptação

                                 Chave kk’k’’
            mensagem        k        k'       k''       criptograma


                         DES-1       DES        DES-1               DES-1 = algoritmo em
                                                                    modo de decriptação
                                   Decripta




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



                                                                                                    86
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.

                     NewDES - rodadas 1 e 2

                     B0   B1      B2       B3   ←Bytes       do bloco→           B4   B5   B6      B7
             K0

             K1           ⊕                      f                               ⊕
                                                                                                        Rodada
             K2                   ⊕                      f                            ⊕
                                                                                                          1
                                       ⊕                         f                         ⊕
             K3
                                            ⊕                            f                         ⊕

                                                                                                          K4
                              ⊕                      f               ⊕
           Rodada
                                  ⊕                          f               ⊕
             2                                                                                            K5
                                       ⊕                             f                ⊕
                                                                                                          K6
                     ⊕                                                       f                 ⊕




•      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)



                                                                                                                 87
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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.




                                                                                                    88
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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

                         W0            W1         ←Palavras       do bloco→             W2               W3

                 ki,1     ∗                                                              +                       ki,3
                                                   ⊕
                 ki,2                  +                                                                 ∗       ki,4
                                                                         ⊕
                 ki,5                               ∗                        +
                                                           Rodada
                                                           i = 1..8
                                                    +                        ∗                                    ki,6

                         ⊕                                                               ⊕
                                       ⊕                                                                ⊕


                                               ∗ - Multiplicação módulo 216+1
                                               + - Soma módulo 216
                                               ⊕ - XOR bit a bit
                 k9,1     ∗                                                                              ∗       k9,4
                                                 Transformação de saída
                 k9,2                   +                                                +                       k9,3

                         Y0            Y1 ←Palavras            do criptograma→ Y2                        Y3


                        Subchaves de Encriptação                                 Subchaves de Decriptação
            ChaveK 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




                                                                                                                                89
CopyMarket.com           Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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: idea@ascom.ch


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


                                                                                                    90
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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.

                  GOST - rodada i

                     Li-1                       Ri-1                   Tabela de subchaves


                                                  +


                                            Substituição        Substituição:
                                                                8 S-boxes 4x4 paralelas,
                                                                com permutações não
                                                                fornecidas na especificação
                                            Rotação<<11


                                                 ⊕              + Soma módulo 232

                      Li                         Ri




                 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.


                                                                                                    91
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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.

                                                                               Blowfish
                      Chave k                       Mensagem
             Array de subchaves Ki                          64 bits


                                              32                 32
                           K1       ⊕
                                                        f                     ⊕




                           K2       ⊕
                                                        f                     ⊕




                        K16         ⊕
                                                        f                     ⊕
                        K17         ⊕                                         ⊕        K18


                                                   Criptograma


            f:
                                8
                                    S-box 1
                                                   32                     + Soma módulo 232
                                                        +
                                    S-box 2
                                8                  32                 ⊕
                 32 bits
                                    S-box 3                                       +
                                8                  32                                 32 bits


                                    S-box 4
                                8                  32




                                                                                                    92
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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).

                 Inicialização

            VI = 0     VI = π XOR k k k k...              Subchaves | S-boxes

                            Blowfish

                                                                           -Atribuição com
                                                                            pós incremento




       • 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


                                                                                                  93
CopyMarket.com       Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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

           Encriptação RC5 2/r/b:                         Decriptação RC5 2/r/b:
           A = A+S0                                       for i = r downto 1 do begin
           B = B+SI                                              B = ((B−S2i+1)>>>A)⊕A
           for i = 1 to r do begin                               A = ((A−S2i )>>>B)⊕B
                  A = ((A⊕B)<<<B)+S2i                     end
                  B = ((A⊕B)<<<A)+S2i+1                   B = B+SI
           end                                            A = A+S0
           {>>>" = shift circular p/ direita}             {"<<<" = shift circular p/ esquerda}



•      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:

          Carga:                                          Mescla da chave:
                          {P=0Xb7e15163}
          S0 = P          {Q=0x9e3779b9}                  do n times
          for i = 1 to 2*(r+1)−1 do                            A = Si = (Si +A+B) >>>3
                 Si = (Si−1+Q) mod 232                         B = Lj = (Lj+A+B)>>>(A+B)
          i=j=0                                                i = (i+1) mod 2*(r+1)
          A=B=0                                                j = (j+1) mod m
          n = max ( 2*(r+1), m )




                                                                                                    94
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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)



                                                                                                95
CopyMarket.com     Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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) ]


                                                                                                 96
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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ção
                  Algoritmo             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



                                                                                                   97
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.

          Geração da seqüência de pad: k                  Inicialização de S com a chave
                                                          semente concatenada = k1...k255:
          repeat
               n = (n+1) mod 256                          for n=0 to 255 do Sn = n
               m = (m+ Sn) mod 256                        m=0
               Troca (Sm ,Sn)                             for n=0 to 255 do
               t = (Sm +Sn) mod 256                             m = (m+Sn +k n) mod 256
               k= St                                            Troca (Sm ,Sn)



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


                                                                                                    98
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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:


            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.



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


                                                                                                    99
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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.

                                                                                  A5
             - Controle de deslocamento
                                                              LFSR 2
                                       ⊕
                                                           LFSR 1             ⊕      ⊕
                                                                                         Saída
             - Função                     ⊕
              maioria
                                                                    LFSR 3
                                          ⊕




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



                                                                                                     100
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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.


                                                                                                    101
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.




                                                                                                    102
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                  Título: Criptografia e Segurança na Informática
             Todos os direitos reservados.
                                                                  Autor: Pedro Antonio Dourado de Rezende
             Nenhuma parte desta publicação poderá ser
                                                                  Editora: CopyMarket.com, 2000
             reproduzida sem a autorização da Editora.




                 5. Algoritmos Criptográficos – Parte 2
                                                                        Pedro 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,
                                 n
       funções de hash h:M →{0,1} 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 de
                   colisã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" ou
                    té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 prepara
          outra versão que lhe seja vantajosa e prejudicial à outra parte.
                 Testa o hash de variações de ambas versões, contendo combinações de
                 espaços adicionais (ASCII 32) onde há quebras de linha, até conseguir um
                 par m (contrato), m' (fraude) que gerem mesmo hash. Assinam o hash de
                 m e depois, em juízo, o fraudador protesta m'.
                                                                                                                    103
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Construção de funções de hash


•      Tamanho do hash -
                                                                                          n
                 A entropia n da imagem da função de hash h:M →{0,1} 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.


                  Hash por encadeamento de compressão

             ...mi-1                    mi                        mi+1 ←blocos da mensagem


            N            Função de              Função de                Função de            n
                        compressão             compressão               compressão
                 hi-2                   hi-1                      hi                     hi+1




                 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.



                                                                                                     104
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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

             ↓Bloco de compressão mi          ←512 bits→
                                                       →                    h(m1... ms) = ABCDs
            mi,1 mi,2 mi,3 mi,4 mi,5 mi,6 mi,7mi,5 mi,8 mi,9

     A                                                                        +                A
     B                  Rodada         Rodada         Rodada      Rodada          +            B
     C                    0              1              2           3                 +        C
     D                                                                                    +    D

    i-1                                                                                        i




     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)




                                                                                                     105
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Operações do MD5 - Laço interno fr da rodada r

           Passos j=1,..,16 com          mi,1 ..................... mi,b(j)
           pós-rotação de 1 word

                        A                                                     ti,j
                        B

                        C         Função não-             +         +          +            +
                                                                                     <<<s
                                   linear gr
                        D



                        ti,j = trunc(232*abs(sin(j+16*r))



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



                                                                                                    106
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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:

                         Geração dos subblocos para compressão
                         for j = 1 to 16 wi,j = mi,j
                         for j = 1 to 16
                             wi,j = (wi,j-3⊕wi,j-8⊕wi,j-14⊕wi,j-16)<<<1


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

             Passos j=1,..,20 com        wi,1 ........................ wi,j+20r ...................wi,80
            pós-rotação de 1word
                         A                                                     tr
                         B
                                   Função não-
                         C                                  +        +         +          +         +
                                    linear gr
                         D
                                                      <<<30
                         E                                                           <<<5




                 tr = trunc(232*cr1/2/4); c0=2; c1=3; c2=5; c3=10;


                                                                                                           107
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.



                                                                                                    108
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.

                                            Esquema Davies-Meyer
                                mi
                                          chave
                                           encriptação        ⊕
                               hi-1                               hi




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



                                                                                                    109
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Esquemas seguros de encadeamento

      hi-1                                           hi-1
                  chave                                         chave (*)
                   encriptação       ⊕                           encriptação       ⊕ ⊕
       mi                                hi          mi                               hi



      hi-1                                           hi-1
                  chave                                         chave
       mi                                             mi
             ⊕     encriptação       ⊕                      ⊕    encriptação        ⊕ ⊕
                                         hi                                            hi




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

                            Esquema Davies-Meyer modificado

                                   mi          128 bits

                                  hi-1        chave IDEA
                                                                 hi
                                               encriptação
                              64 bits                           64 bits




                 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.



                                                                                                    110
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•       Esquema Davies-Meyer em tandem ou lado a lado -

             Estes esquemas têm se mostrado seguros para construção de hash que
        duplica o tamanho do bloco, com algoritmos criptográficos cuja chave tenha o
        dobro do tamanho do bloco (i.e., IDEA).

            Tandem                                                               Lado a lado
                                               h(m1...ms) =
                                               hg
     hi-1                                       hi         hi-1
                     encriptação                                                                 hi
                                           ⊕                          encriptação           ⊕
                     chave                                            chave
     mi                                                     mi

      gi-1                   chave                                              chave
                                                gi          gi-1                                  gi
                        encriptação        ⊕                               encriptação       ⊕




•       MDC-2 e MDC-4 (Merley-Schilling, IBM, 1988) -

             Esquemas patenteados para construção de hash que duplicam o tamanho
        do bloco, sem restrições ao algoritmo criptográfico simétrico. Estão sendo
        considerados para padrão ANSI, ISO e avaliados pelo RIPE.


                 MDC-2

              hi-1
                             chave                                               hi
                             encriptação

              mi
                                                                             h(m1...ms) =
                                                                             hg

                             encriptação                                         gi
              gi-1
                             chave




                                                                                                       111
CopyMarket.com           Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
MDC-4
                                                                          h(m1...ms) =
                                                                          hg
    hi-1                                                  encriptação
               chave                                                                            hi
               encriptação                                chave

     mi


               encriptação                                                                      gi
    gi-1                                                  chave
               chave                                     encriptação




•          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



                                                                                                     112
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.




                                                                                                    113
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.




                                                                                                    114
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.

          Geração de parâmetros e par de                  Cifragem (começa com eA pública)
          chaves do sistema: {t = tamanho}
                                                           c = m e mod n {encripta bloco}
                                                             i    i
          p = geraprimo(rand(t))
          q = geraprimo(rand(t))                           mi = cid mod n       {decripta bloco}
          φ(n) = (p-1)*(q-1)     {secretos}               Assinatura (começa com dA privada)
          n = p*q; e= rand(t)
                                                           x = h(m)d mod n     {assina hash}
          e = e / mdc(e,φ) [>1] eA = (e,n)
          d = euclext(e,φ,1)     dA = (d,n)                h(m) = xe mod n ? {verifica hash}



         d = e -1 mod φ : A segunda chave de um par, inversa da primeira no anel Zφ(n),
         é calculada pelo algoritmo de Euclides extendido:

                   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



       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.



                                                                                                    115
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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
                                                               1/3 2
           melhor algoritmo de complexidade exponencial, O(ec+x ln (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.



                                                                                                    116
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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.



                             Caso 1: Vazamento de mensagem

                           1: RSA, mesmo par de chaves de cifra e assinatura


            Agente A: k=(e,d)                      2: c                            Agente I
          2: Recebe m cifrada...                                      2: Gera n. randômico r < n ;
                                                   3: y
                                                                                          e
             c = me mod n                                                   Calcula x = r mod n
          4: Assina nova "mensagem" y                                       Calcula y = xc mod n
                                                   5: u
             u = yd mod n                                                   Solicita assinatura de y,
                                                                      6: Calcula t =      r-1mod n
          x = re mod n ⇔ r = xd mod n                                    Desvela m =      tu mod n


          tu mod n = r-1ydmod n = r-1xdcdmod n = r-1rcdmod n = cdmod n = m



                                   Caso 2: Autenticação fraudulenta

                                     1: RSA, para serviço de autenticação


                                                 2: A, e                                  Agente B
           Cartório A: k=(e,d)                                        3: Gera mensagem expúria M;
                                                   4: m                  Gera n. randômico r < n;
          5: Reconhece firma de m                                                         e
                                                                            Calcula x = r mod n
             u = md mod n                          6: u                     Calcula m = xM mod n
                                                                            Solicita autenticação de m,
                  d mod n = rdmd mod n                         7: Calcula t = r mod n
                                                                                     -1
          (rm)
                                                                  Autenticação de M = tu mod              n



       Em serviços de autenticação, a assinatura deve ser feita sobre o hash.



                                                                                                              117
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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.



                         Vazamento de mensagens em módulo comum


                          1: RSA, mesmo módulo para pares de chaves na cifra


                 Agentes A, B                 2: A, ca                         Agente I
         2,3: A e B recebem a mesma
                                              3: B, cb    4: Usa Euclides extendido para calcular
            mensagem m cifrada...
                                                              x , y onde xeA + yeB = 1
                   e
             ca = m A mod   n                             5: Desvela m: Se x<0
                   e
             cb = m B mod n                                  então m = (ca-1)-x eBy mod n
                                                                          -1 -y
         Supõe mdc(eA,eB)=1                                  senão m = (cb )    eAx mod n




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




                                                                                                    118
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Fraude de assinatura em mensagem encriptada


                                1: RSA, usado para cifra e depois assinatura

            Agente A: k=(e,d)                     2: B, eB
                                                                                  Agente B
                                                                       5: Verifica e decripta u;
          2: m é cifrada para B...                                        Gera mensagem expúria M;
                                                    4: u
             c = meB mod nB                                               Calcula x < nB tal que
          3: e o criptograma assinado por A                                Mx = m mod nB;
             u = cdA mod nA                        6: B,eB             6: Publica novo eB ←xeB
                                                                       7: Acusa A de ter lhe enviado M

           (meB mod nB)dA mod nA = (MxeB mod nB)dA mod nA = u



       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.


                                                                                                         119
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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).

           Geração de parâmetros:                         Encriptação:
           p = gerapr3mod4(rand( ))
                                                          c = m2 mod n
           q = gerapr3mod4(rand( ))
           n = p*q             {público}                  Decriptação:
                   -1
           r = q*(q mod p)
                                                           t = c(p+1)/4 mod p
           s = p*(p-1 mod q)
           eA= 2              {k pública}                  u = c(q+1)/4 mod q
           dA = (r,s)         {k privada}                  m =((±r)*t +(±s)*u) mod n




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



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

                 Algoritmo assimétrico cuja segurança é derivada da dificuldade de se
       extrair logaritmos discretos em corpos finitos. (T. ElGamal, 1984).

        Geração de parâmetros, chaves                Assinatura:
        assimétricas e chave de sessão:
                                                       b = euclext(k,p−1,m−x*a)
        p = geraprimo(rand( ))                         {(a,b) = assinatura de m }
        g = rand(|p|)
        dA= x= rand(|p|) {chave privada}               (ya*ab) mod p =? gm mod p
        y = gx mod p                                 Cifragem:
        eA= (p,g,y)       {chave pública}
                                                       b = (yk*m) mod p
        km = rand(|p|)                                 {(a,b) = criptograma de m }
        k = km/mdc(km,p−1) {ch. sessão}
                                                       m = (b*a-x) mod p
        a = gk mod p



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


                                                                                                    121
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.



                                                                                                    122
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                  Título: Criptografia e Segurança na Informática
             Todos os direitos reservados.
                                                                  Autor: Pedro Antonio Dourado de Rezende
             Nenhuma parte desta publicação poderá ser
                                                                  Editora: CopyMarket.com, 2000
             reproduzida sem a autorização da Editora.




                 6. Implementações – Parte 1
                                                                        Pedro 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 o
                  advento das redes globais e ambientes de computação distribuída.
       •          Padrões interoperáveis: Os critérios para escolha de algoritmos
                  criptográficos estão hoje relativamente estabilizados pela prática. Há
                  um senso de urgência para convergência na escolha de protocolos que
                  integrem vários serviços básicos, e mecanismos de implementação
                  independentes de plataforma ou arquitetura.
       •          Limitações:             Sistemas legados cuja concepção não contemplava
                  segurança e/ou interoperabilidade, legislação local e internacional
                  omissa ou desatualizada e interesses paroquiais, são os maiores
                  entraves ao avanço do uso da criptografia na informática.
       •          Atualizações:           No cenário da computação global e distribuída de
                  hoje, a criptologia assimétrica é parte fundamental. Como os limites
                  teóricos desta tecnologia ainda não estão bem delineados, suas
                  implementações precisam de constantes reavaliações de risco.

       •          Desafios: Cada nova aplicação ou tecnologia que exija proteção aos
                  dados que trata, acumula desafios de complexidade crescente à
                  criptologia, em especial os sistemas de computação não assistida,
                  viabilizados pela miniaturização eletrônica.


                                                                                                                    123
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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           Freq.     Velocidade       Ciclos p/      Tecnologia/         modulo
         Companhia            clock     (bloco 512)     bloco 512       transístores       máximo

     Alpha                  25 MHz      13 Kbits/seg 0.98 M           2.0µ / 180K          1024 bits
     Technology
     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)


                                                                                                        124
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.



                                                                                                       125
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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     Encontrar n tal que
                                         an mod p = b            nP = Q



•      Chaves públicas com nível de segurança equivalentes -

                 Tempo p/ recuperar Fatoração em Zp:     Logaritmo em
                   chave privada    Number field sieve E(Zp): Pollard - Rho
             3x108 MIPS - ano                ~960 bits                 155 bits
             3x1018 MIPS - ano               ~1820 bits                210 bits
             3x1028 MIPS - ano               ~2500 bits                239 bits



                                                                                                    126
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.

                                                                                                    127
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.




                                                                                                  128
CopyMarket.com       Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Digital Signature Algorithm

                 Algoritmo patenteado e licenciado pelo NIST para uso irrestrito.

        Geração de parâmetros, chaves                  Assinatura de m = (r,s):
        assimétricas e chave de sessão:
                                                        repeat
        q = geraprDSA (rand(160))                          k = rand( ) mod q {ch. sessão}
        repeat                                             r = (gk mod p) mod q
           p=geraprDSA(rand(512+64t))                      s = (k-1*(SHA(m)+xr)) mod q
        until q | (p-1)                                 until s ≠ 0
        repeat
           h = rand(512+64t) mod p                     Verificação: (r,s) assinatura de m
           g = h(p-1)/q mod p
                                                        u = (s-1*SHA(m)) mod q
        until g ≠1
        x = rand(|q|)      {chave privada}              v = (s-1*r) mod q
              x
        y = g mod p                                     r =? (gu*gv mod p) mod q
        eA= (p,q,g,y)      {chave pública}




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



                                                                                                       129
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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).

        Geração de parâmetros, chaves                 Assinatura de m = (r,s):
        assimétricas e chave de sessão:
                                                       repeat
        p=geraprimo(rand( ))                              k = rand( ) mod q {ch. sessão}
        repeat                                         until mdc(k,q) = 1
           q = rand( )                                 r = gk mod p
        until q | (p-1)                                t = r mod q
        repeat
           g = rand( ) mod p                           equação de assinatura
        until gq mod p = 1                               ak = b + cx mod q
        x = rand( ) mod q{chave privada}
                                                       equação de verificação:
        y = gx mod p
        eA= (p,q,g,y)     {chave pública}                 ra =? gbyc mod q




•      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*ym 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


                                                                                                    130
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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).


                                              Feige-Fiat-Shamir

                  (Canal seguro)
                                                                     1: p=geraprimo(rand( ))
                                                                       q=geraprimo(rand( ))
           2: Gera e cadastra EA= v                                    n = pq;
                 fornece DA = s onde
             s = v-1/2 mod n                        Servidor
                                                   de chaves S                 3: B solicita EA= v




                                        4: B desafia A a provar que possui DA
                                           Repetem k iterações: j de 1 até k
                  Agente A                                                              Agente B
         4.1: Gera nº randomico rj;                     4.1: xj, n              4.3: Gera bit randomico bj
                            2
          Calcula xj = rj       mod n                                           4.5: Se bj = 1 então
         4.5: Se bj = 1 então                            4.4: bj                                 2
                                                                                verifica xj =? tj *v mod n
           calcula tj = rj*s mod n
                                                                                senão xj   =? tj2 mod n
           senão tj = rj                                  4.6: tj




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


                                                                                                             131
CopyMarket.com             Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.


                                                                                                    132
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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)



                                                                                                    133
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Principais padrões de protocolos criptográficos

•       Quadro resumo -


          Tópico       ISO/IEC JTC 1     ISO TC68        ANSI                          U.S. Federal
                          Information   Instituições                                   Government
                          Technology    Financeiras
    Modos de operação ISO/IEC 8372                      X3.106                         FIPS PUB 81
                        ISO/IEC 10116
         Message         ISO/IEC 9797 ISO 8730 (DSA)     X9.9                           FIPS PUB
    Auth.Code (Geral)                 ISO 8731 (RSA)                                       113
    Mess. Auth. Code                      ISO 9807       X9.19
         (Bancos)
      Algoritmos de    ISO/IEC 9594.8                X9.30.1 (DSA)                    FIPS PUB tba
    assinatura digital   ISO/IEC 9796                X9.31.1 (RSA)                        (DSA)
     Funções de hash    ISO/IEC 10118                X9.30.2 (SHA)                      FIPS PUB
                                                     X9.31.2 (MDC)                         180
                                                                                          (SHA)
     Autenticação de    ISO/IEC 9594.8            ISO 11131              X9.26
         agentes         ISO/IEC 9796
    Gerência de chaves ISO/IEC 11770.2             ISO 8732              X9.17          FIPS PUB
       (simétrico)                                ISO 11568              X9.24             171
    Gerência de chaves                            ISO 11649              X9.28
    (sim. multi-centro)
    Gerência de chaves ISO/IEC 9594.8             ISO 11166             X9.30.3
      (assimétrico)    ISO/IEC 11770.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.




                                                                                                      134
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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 para
                           certificados assinados pelo emissor)
                           Identificador do algoritmo de
                           assinatura 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



                                                                                                    135
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.




                                                                                                    136
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.



                                                                                                    137
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                  Título: Criptografia e Segurança na Informática
             Todos os direitos reservados.
                                                                  Autor: Pedro Antonio Dourado de Rezende
             Nenhuma parte desta publicação poderá ser
                                                                  Editora: CopyMarket.com, 2000
             reproduzida sem a autorização da Editora.




                 6. Implementações – Parte 2
                                                                        Pedro 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ágeis
       na implementação de serviços de segurança externa.
            Esquemas de autenticação baseados em desafio, em sequenciadores ou em
       sincronização que geram senhas descartáveis para neutralizar ataques de
       dicionário, escuta ou replay podem ser atacados com engenharia reversa, se
       implementados 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 com
       encriptação interna (ex.: IBM DS5002FP), onde bytes trafegam no barramento
       e são carregados encriptados em RAM e EPROM, são passíveis de ataque, nos
       quais o material de chave armazenado ou gerado pode ser extraído. Ataques
       mais comuns a tokens de acesso livre são:
       1.     Surtos de clock..........usados para introduzir instruções errôneas nos
            registradores que podem causar o extravazamento em loops de leitura.
       2.     Surtos de potência ....podem causar comportamento                                anômalo              em
            geradores randômicos de uso criptográfico.
       3. Probing.......................violação do lacre eletrostático possibilita avaria
       nas células de trava da EPROM, para leitura do material da chave.
       4.        Dicionário de código.ataque no barramento à criptografia interna.

                                                                                                                    138
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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)



                                                                                                    139
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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

                     : Campos do cabeçalho falsificáveis em ataques ao IP
            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




•      TCP -

                 Protocolo de transporte orientado a conexão da internet, autentica por
         handshake simples, falsificável se sua implementação for conhecida.


                 : Campos de cabeçalho falsificáveis em ataques ao TCP
           0 1 2 3 4 5 6 7                                                                   31

                       Porta de origem                            Porta de destino

                                       Número sequencial (SN)

                             Reconhecimento de SN (Acknowlegment)
            Offset               U A P R S F                          Janela
            dados                R C S S Y I
                          Checksum                                Ponteiro urgente

                                        Opções



                                                                                                    140
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Ataque de número sequencial ao TCP

                  XXXII: Handshake para abertura de sessão TCP

                              0: B deseja serviço oferecido via TCP por A

                                                2: SYN:SNB
         Endereço IP = A                                                        Endereço IP = B
                                          4: SYN:SNA, ACK:SNB
      3: Gera n• sequencial SNA.                                             1: Gera n• sequencial SNB;
                                          6: Se 5 então ACK:SNA              5: Se 4:ACK = SNB
      7: Se 6:ACK = SNA
         então reconhece B         Se 7 então sessão aberta em full duplex      então reconhece A




                    Embuste em XXXII para falsificar handshake
                 B recebe ataque de sobrecarga de X e pacotes TCP espúrios de A
                                           B
                   4: SYN:SNA+, ACK:SN                      3.j: SYN:SN+, j=1,2,3...
                                                  5:???
      A oferece a B serviço de                                          Agente em X finge estar em
           acesso restrito                                                B fazendo spoof de IP
     3: Gera n• sequencial SNA+                                        1: Gera n• sequencial SN
     7: Se 6:ACK = SNA+                                                5: Estima SNA+ a partir de SNA
         então reconhece B                 2: Spoof B, SYN:SN                e tempo decorrido entre 0 e 5

          A                                    6: ACK:SNA+                                          X
                                   Se 7 então sessão aberta em half duplex

                       0: X abre sessão inóqua com A ou usa sniffer para obter SNA




       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.


                                                                                                             141
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Análise de risco na internet

         Dificuldade do Ataque


 Alta


                                                                               2.3.3     2.1.3
                                                                                               2.1.1


                                                                                       2.3.2

                                                                                       2.1.2
                                                                  1.1.3
Média                                         2.2.2
                                                                                 1.1.1

                                              2.2.1                           1.2.2

                                                                                  2.3.1
                                                                      1.1.2
                                                                                  1.3.1

                                                        1.3.2                   1.2.3

Baixa                                 1.2.1
                                                          1.2.4
                                                                                        Extensão do dano

                   Mínimo            Pequeno             Sério                Muito sério              Desastroso


   1- Ataques internos                                2- Ataques externos
      1.1- Acesso indevido                               2.1- Acesso indevido
          1.1.1- Falha de autenticação                     2.1.1- Ataque de número sequencial TCP
          1.1.2- NFS                                       2.1.2- Source Routing, RIP, ICMP
          1.1.3- X-windows                                 2.1.3- Sequestro de sessão TCP
        1.2- Sabotagem                                  2.2- Sabotagem
          1.2.1- Sobrecarga                                2.2.1- Sobrecarga
          1.2.2- Source Routing, RIP, ICMP                 2.2.2- Fragmentação
          1.2.3- Depredação física                      2.3- Vazamento
          1.2.4- Virus
                                                           2.3.1- Sniffers
        1.3- Vazamento                                     2.3.2- Troianos
          1.3.1- Sniffers                                  2.3.3- Exploits
          1.3.2- Engenharia Social
                                                      Fonte: Othmar Kyas - Internet Security, 1997


                                                                                                                    142
  CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.


                                                                                                    143
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.

                                                            Perímetro


                                             Controle de
                                               tráfego

                      internet



                                                            Rede
                                                            interna

•      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:                     Camada de Aplicativo
                                      Camada de Presentação
                                      Camada de Sessão                        G
                                      Camada de Transporte
                                                                        Application gateway
                                      Camada de Rede                    ou Bastion host
           Screening router           Camada de Enlace
                                      Camada Física


                                                                                                    144
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.



                                                                                                    145
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Operações de filtragem

•      Modelo básico de filtro de pacotes -

                                                                 Subrede
                                                                 interna
                                                      Screening Router
                                                     IP:x.y.w.z       IP:a.b.c.d
                                               out                              in
                       internet
                                                in                              out



                                      Lista de regras p/               Lista de regras p/
                                      interface externa                interface interna




•      Funcionamento de um filtro típico -


                       Obtém próximo pacote
                       Seleciona lista aplicável


                         Aplica próxima regra                     Roteia              Aciona log
                        nos cabeçalhos IP, TCP                    Pacote              ou alarme

                                                                                               S
                                                       S                                               N
                               Regra permite                                          Caso de log ou
                                  pacote?                                                alarme?

                                          N
                                                       S          Descarta
                               Regra bloqueia
                                  pacote?                          Pacote

                                          N
                   N            Última regra           S
                                  da lista?


       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




                                                                                                                     146
CopyMarket.com            Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.



                                                                                                 147
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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        *


                                          0101                  0101
                                          1010                  1010
                               Cliente                                 Servidor
                                          4444                  4444
                                          TCP                   TCP
                                           IP                    IP
                   internet
                                         198.2.3.4           200.5.8.2


                                                             Subrede
                                                             interna



                                                                                                          148
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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           *


                                  0101      0101                           0101      0101   0101
                                  1010      1010                           1010      1010   1010
                                                   Cliente Servidor                                  Outros
                                      4444                                 4444 ???? ????           serviços
                                      TCP                                       TCP
                                       IP                                        IP
                   internet
                                    198.2.3.4                                 200.5.8.2
                                                                       Subrede
                                                                       interna




•      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
                                                                                                    e0         filtra entrada


                                              Spoof IP:
                                                                         Subrede
                                                                         200.5.8.0                 .2
                                           Orig 200.5.8.3
                                           Dest 200.5.8.2

                     internet
                               198.2.3.4                 e0              e1                 .3



                                                                                                                                149
CopyMarket.com             Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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



                                                                      Subrede
                                                                      200.5.8.0             .2


                                             Spoof IP:
                                          Orig 200.5.9.3
                                          Dest 200.5.8.2

                                                                      e1
                    internet
                              198.2.3.4                  e0           e2




                                                                      Subrede
                                                                      200.5.9.0       .3


                 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.


                                                                                                                           150
CopyMarket.com             Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.


                                           3-homed host

                                  Função opcional de roteamento


                                Placa           Placa           Placa
                               de rede         de rede         de rede
                                 ou              ou              ou
                               modem           modem           modem




            Rede 1                            Rede 2                             Rede 3




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



                                                                                                    151
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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).



                                                                                                    152
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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.

                                                                                                    153
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Algumas topologias para segurança

•      Gateway host com triagem -


                                                                           Servidor
                                   Roteador                       G        ←     de
                                  com triagem                          autenticação
                 internet
                                                                         Tráfego de
                                                                         entrada da
                                                                            internet
                                                Rede
                                                intern



•      Sub-rede com triagem -
                                                   Servidores
                               Tráfego de
                              entrada para                               G
                              rede interna        FTP
                                                                         Servidor de
                                                                         autenticação
                 internet
                                 Roteador
                                com triagem       Web
                                                                              Rede
                                                                              intern
                                                  Gopher



•      Belt and suspenders -
                                                    Servidores
                                Tráfego de
                                                                       Proxies
                               entrada para                            DNS
                               rede interna       FTP
                                                                       Gate de e-mail

                 internet                                     G
                                 Roteador                             autenticação
                                com triagem       Web
                                                                           Rede
                                                                           intern
                                                  Gopher

                                                                                                   154
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                  Título: Criptografia e Segurança na Informática
             Todos os direitos reservados.
                                                                  Autor: Pedro Antonio Dourado de Rezende
             Nenhuma parte desta publicação poderá ser
                                                                  Editora: CopyMarket.com, 2000
             reproduzida sem a autorização da Editora.




                 7. Exemplos de Aplicações
                                                                        Pedro Antonio Dourado de Rezende



•      Histórico do e-mail -
                 {O PGP foi o primeiro protocolo criptográfico concebido para uso na
       internet que fazia uso de chaves públicas. Implementado e distribuido pela
       internet por Phil Zimmerman em 1986, implementa o RSA e o IDEA para
       negociação de envelopes digitais na trasmissão de e-mail autenticado e
       encriptado. Devido ao uso de criptograifa robusta e infração de patentes, o
       autor teve problemas com a justiça americana, tendo posteriorment negociado
       acordos com as partes envolvidas e licenciado sua distribuição

•      Histórico do www -
                 O NCSA MOSAIC foi o primeiro navegador web a incorporar ganchos
       para adição de utilitários de segurança, tais como o PGP e as implementações
       de clientes SMTP com suporte à especificação PEM.

                 Em 1994, com o impulso do comércio eletrônico na Web, a consolidação
       das tentativas de se incorporar sigilo e autenticação aos protocolos nela
       empregados foi iniciada. Já existem cerca de 50 esquemas de aplicação
       criptográfica para o comércio eletrônico implementados ou propostos na
       literatura, em 1998.


•      S-HTTP (Secure HTTP, 1994)

                 Desenvolvido e proposto pela CommerceNet Consortium, usa criptografia
       de chave pública para sessões http de forma comparável às do padrão PEM,
       sendo compatível com diversos gerenciadores de chave.

                                                                                                                    155
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      SSL (Secure Sockets Layer, 1994) -

                 Proposto e implementado pela Netscape em seus browsers e servidores
       Web, sob licença da RSADSI, oferece autenticação de servidor e
       opcionalmente do cliente com criptografia para serviços genéricos, protegendo
       toda a pilha TCP/IP para os protocolos de aplicações.

                 Sua execução verifica certificados de chave pública e negocia a escolha de
       envelope 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 e
       semelhante ao SSL, difere deste na implementação de um dos mecanismos de
       autenticaçã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ércio
       eletrônico, foi concebido com o objetivo de se tornar padrão de fato no suporte
       da indústia financeira ao comérico eletrônico integrado.

                 Desenvolvido e proposto em conjunto pela IBM, Visa e MasterCard, faz
       uso extensivo de certificados X509, sendo um protocolo complexo de 28
       passos que procura oferecer garantias adicionais ao consumidor, geralmente o
       agente mais exposto a vulnerabilidades nos esquemas criptográficos
       empregados no comércio eletrônico.
                 Suas vulnerabilidades se concentram em falsificações de certificados.




                                                                                                    156
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Descrição resumida do SET

•         Participantes devem possuir certificados X.509




                        2: Busca anúncio na Web        2: Anuncia na Web

        Agente A                                                            Comerciante C
        0: Obtem cartão V .                                               0: Abre conta em V
        1: Cadastra-se em S                                               1: Cadastra-se em S


           Autoridade                     1: V Cadastra-se                      Instituição
         Certificadora S                       em S                            financeira V
        1: registra A,M,V                                                    1: cadastra A, C
        2: distribui certificados

•         Consumidor valida certificados e submete pedido a C




                        3: DS(A,EA) →              ← 4: EA(DS(C,EC))
                         5: EC(m,p,EV(vA)) →
                 Agente A encomenda m a preço p,                     Comerciante C
                           pagamento por cartão vA



           Autoridade                                                            Instituição
         Certificadora S                                                        financeira V




                                                                                                   157
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
SET (continuação)

•      Comerciante não tem acesso a número de cartão do cliente




                                                  8: EA(?,m,p,EV(vA),C)

                 Agente A                                                  Comerciante C
                                       6: EV(A,p,EV(vA),C,DC(vC))          prepara fatura e
                                                                           confirma cliente
                                               VAN

                 Banco B                   7: V valida                         Instituição
                                       transação e verifica                   financeira V
                            $$$        crédito em conta vA




•      Administradora só tem acesso ao valor da fatura




                        9: DA(m,p,EV(vA),C) → ←12: DC(A,m,p,C,r)

              Agente A                                                     Comerciante C
          assina o pedido e            10: EV(DC(m),p,EV(vA),vB)           submete fatura,
        recebe comprovante                                               recebe comprovante
                                              VAN                           e assina recibo

           Banco B                   11: B transfere p de vA                   Instituição
       transfere fundos $ $ $ $      para vC e emite recibo r                 financeira V

                                r = DB(A,C,DC(m),p,EB(vA,vB))




                                                                                                   158
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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/xinetd
                 Um 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.

                                                                                                    159
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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 diversas
       ferramentas 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.




                                                                                                    160
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
CopyMarket.com
                                                                  Título: Criptografia e Segurança na Informática
             Todos os direitos reservados.
                                                                  Autor: Pedro Antonio Dourado de Rezende
             Nenhuma parte desta publicação poderá ser
                                                                  Editora: CopyMarket.com, 2000
             reproduzida sem a autorização da Editora.




                 Apêndices
                                                                        Pedro Antonio Dourado de Rezende



                           Tradução de termos técnicos
        alçapão ............................................................ trapdoor
        arbitragem ..................................................... arbitration
        ataque de espelhamento ................................. man-in-the-middle (interception) atack
        ataque de número sequencial......................... number sequence attack
        bloqueio ou sobrecarga intencional............... denial of service, resource exaustion
        chave .............................................................. key
        cifra ................................................................. cipher
        desvio de controle............................................ control bypassing, hacking
        e-mail em massa e não solicitado................... spam
        embuste ou trapaça......................................... scam
        embusteiro ..................................................... rougue
        escuta ativa ..................................................... interception
        escuta passiva .................................................. scan, snif
        falha ................................................................. breach
        forja de identificação ...................................... spoof
        fraude .............................................................. fraud, integrity violation
        gancho .............................................................. backdoor
        grampo ............................................................ eavesdrop, wiretap
        invasão ou violação de autorização ............... invasion, authorization violation
        mediação .......................................................... adjudication
        objeto ou rótulo identificador........................ token
        penetração ....................................................... intrusion
        personificação ................................................ masquerade, impersonation;
        reprise ............................................................ replay
        repudiação ....................................................... repudiation
        troiano.............................................................. trojan horse
        varredura......................................................... media scavenging
        vazamento ....................................................... leakage, disclosure




                                                                                                                    161
CopyMarket.com         Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Tabela para comparação de grandes números
        Segurança computacional é um jogo de probabilidades. Para se ter uma noção
comparativa acerca dos graus de possibilidade associados às faixas de probabilidade com que
lida a criptografia, esta tabela de estimativas de ocorrências de eventos do mundo físico em que
vivemos pode ser útil.

 Fenômeno Físico                                                                  Número
 Probabilidade 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) anos
 Tempo até que o sol se transforme em uma supernova:                              109 (~230) anos
 Idade estimada do planeta terra:                                                 109 (~230) anos
 Idade estimada do universo:                                                      1010 (~234) anos
 Nú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 aberto
 Tempo estimado até que estrelas de pouca massa esfriem                           1014 (~247) anos
 Tempo estimado até que planetas se destaquem das estrelas                        1015 (~250) anos
 Tempo estimado até que estrelas se destaquem das galáxias                        1019 (~264) anos
 Tempo de decaimento de orbitas por irradiação gravitacional                      1020 (~267) anos
 Tempo de decaimento de buracos negros pelo processo Hawking                      1064 (~2213) anos
 Tempo até que toda a matéria se torne líquida à temperatura zero                 1064 (~2213) anos
                                                                                      26
 Tempo até que toda a matéria decaia em ferro                                     1010 anos
                                                                                      76
 Tempo até que toda a matéria se colapse em buracos negros                        1010 anos
 Bruce Schneier, 1996




                                                                                                          162
CopyMarket.com          Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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: 53
Estimativa 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.56
Caso seja escolhido o primo q = 2000000983 (representação decimal), sua representação interna
binária em 4 bytes (32 bits) será:             01110111 00110101 10010111 11010111


• Execução do protocolo de Diffie & Hellman

       1- Escolha da aritmética modular
nú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 criptogramas
nº randômico x gerado por A: 20589
nº randômico y gerado por B: 17391
Criptograma 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ão
Chave k = cAy mod q = 2609717391 mod 32693 = 18574                (bits 01001000 10001110)
Chave k = cBx mod q = 1937020589 mod 32693 = 18574                (bits 01001000 10001110)



                                                                                                 163
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
•      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)

                       0   2   5
       637 mod 7 = 6 (2 + 2 + 2 ) 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ção
modular é proporcional ao número de bits do expoente.

     O número de operações de multiplicação e divisão efetuadas durante a
exponenciação modular, é proporcional ao logaritmo do expoente.




                                                                                                   164
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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          √1 mod 8 = 1, 3, 5 ou 7;
                      3    3    6    1    4    7     2    5          √4 mod 8 = 2 ou 6;
                      4    4    0    4    0    4     0    4
                                                                     5-1 mod 8 = 5
                      5    5    2    7    4    1     6    3
                                                                     7-1 mod 8 = 7
                      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           √1 mod 7 = 1 ou 6;
                      2    2    4    6    1    3     5
                                                                 √2 mod 7 = 3 ou 4;
                      3    3    6    2    5    1     4
                                                                 √4 mod 7 = 2 ou 5;
                      4    4    1    5    2    6     3
                                                                 3-1 mod 7 = 5
                      5    5    3    1    6    4     2
                      6    6    5    4    3    2     1




                                                                                                165
CopyMarket.com    Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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   19
            1    1 2 3 4 5 6              7    8    9   10   11   12   13   14   15   16   17   18   19
            2    2 4 6 8 10 12           14   16   18    0    2    4    6    8   10   12   14   16   18
            3    3 6 9 12 15 18           1    4    7   10   13   16   19    2    5    8   11   14   17
            4    4 8 12 16 0 4            8   12   16    0    4    8   12   16    0    4    8   12   16
            5    5 10 15 0 5 10          15    0    5   10   15    0    5   10   15    0    5   10   15
            6    6 12 18 4 10 16          2    8   14    0    6   12   18    4   10   16    2    8   14
            7    7 14 1 8 15 2            9   16    3   10   17    4   11   18    5   12   19    6   13
            8    8 16 4 12 0 8           16    4   12    0    8   16    4   12    0    8   16    4   12
            9    9 18 7 16 5 14           3   12    1   10   19    8   17    6   15    4   13    2   11
           10 10 0 10 0 10 0             10    0   10    0   10    0   10    0   10    0   10    0   10
           11 11 2 13 4 15 6             17    8   19   10    1   12    3   14    5   16    7   18    9
           12 12 4 16 8 0 12              4   16    8    0   12    4   16    8    0   12    4   16    8
           13 13 6 19 12 5 18            11    4   17   10    3   16    9    2   15    8    1   14    7
           14 14 8 2 16 10 4             18   12    6    0   14    8    2   16   10    4   18   12    6
           15 15 10 5 0 15 10             5    0   15   10    5    0   15   10    5    0   15   10    5
           16 16 12 8 4 0 16             12    8    4    0   16   12    8    4    0   16   12    8    4
           17 17 14 11 8 5 2             19   16   13   10    7    4    1   18   15   12    9    6    3
           18 18 16 14 12 10 8            6    4    2    0   18   16   14   12   10    8    6    4    2
           19 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;
       d (c) = cd mod n = 2613 mod 33 = 20 = (10100) = m.
         A                                                                   2



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.




                                                                                                          166
CopyMarket.com      Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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 obter
E(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)




                                                                                                  167
CopyMarket.com       Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Exemplo de funcionamento de protocolo de conhecimento zero
                                                            Visão do Verificador

           G               1                       Isomorfimo que o provador diz conhecer:                                       1                G’
               6                           2                                                                             6                        2
                                                                h    1       2       3       4       5   6
                                                                     ↓       ↓       ↓       ↓       ↓   ↓
               5                               3                     ?       ?       ?       ?       ?   ?                                        3
                                                                                                                         5
                           4                                                     h                                               4
      G        1       2   3       4       5       6                                                               G’    1   2   3    4       5       6
      1        0       1   0       1       1       0                                                               1     0   1   1    0       0       1
      2        1       0   1       0       0       1                                                               2     1   0   0    1       1       0
      3        0       1   0       1       0       1                                                               3     1   0   0    0       1       1
                                                                     Gi              1
      4        1       0   1       0       1       0                                                               4     0   1   0    0       1       1
               1       0   0       1       0       1                 6                               2
      5                                                                                                            5     0   1   1    1       0       0
      6        0       1   1       0       1       0                                                               6     1   0   1    1       0       0
                                                           hi                                                si
                                                                     5                               3
No i-ésimo passo do desafio,                                                         4                             o provador apresenta Gi
 hi        1       2   3       4       5       6                Gi       1 2 3 4 5 6                                si   1   2   3        4       5       6
           ↓       ↓   ↓       ↓       ↓       ↓                1        0       1       0       1   0   1               ↓   ↓   ↓        ↓       ↓       ↓
           5       4   6       3       2       1                         1       0       1       0   1   0               ?   ?    ?       ?       ?       ?
                                                                2
                                                                3        0       1       0       0   1   1
alegando ter construído                                         4        1       0       0       0   1   1        e o verificador escolhe qual
Gi isomorfo a G e G’                                            5        0       1       1       1   0   0        isomorfismo quer verificar:
                                                                6        1       0       1       1   0   0        hi: G→Gi ou si: G’→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’
?):
      hi       1       2   3       4       5       6            Gi       1   2       3       4       5   6        hi-1   1   2   3    4       5       6
      1        0       0   0       0       1       0            1        0   1       0       1       0   1         1     0   0   0    0       0       1
      2        0       0   0       1       0       0            2        1   0       1       0       1   0         2     0   0   0    0       1       0
      3        0       0   0       0       0       1   *        3        0   1       0       0       1   1    *    3     0   0   0    1       0       0 =G?
      4        0       0   1       0       0       0            4        1   0       0       0       1   1         4     0   1   0    0       0       0
      5        0       1   0       0       0       0            5        0   1       1       1       0   0         5     1   0   0    0       0       0
      6        1       0   0       0       0       0            6        1   0       1       1       0   0         6     0   0   1    0       0       0




                                                                                                                                                              168
CopyMarket.com                     Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Exemplo de funcionamento de protocolo de conhecimento zero
                                                                  Visão do Provador

          G                  1                Isomorfimo que o provador precisa conhecer                                                   3           G’
             6                                2                                                                                4                       5
                                                                  h    1       2       3       4       5   6
                                                                       ↓       ↓       ↓       ↓       ↓   ↓
             5                                3                        3       5       2       1       6   4                                            2
                                                                                                                               6
                             4                                                     h                                                       1
      G      1       2       3       4       5       6                                                                   G’    1       2   3       4   5    6
      1      0       1       0       1       1       0                                                                   1     0       1   1       0   0    1
      2      1       0       1       0       0       1                                                                   2     1       0   0       1   1    0
      3      0       1       0       1       0       1                 Gi                                                3     1       0   0       0   1    1
                                                                                   5
      4      1       0       1       0       1       0                                                                   4     0       1   0       0   1    1
                                                                       1                               4
      5      1       0       0       1       0       1                                                                   5     0       1   1       1   0    0
      6      0       1       1       0       1       0                                                                   6     1       0   1       1   0    0
                                                             hi        2                               6       si
para poder construir Gi                                                                3                                no i-ésimo passo do desafio,
 hi      1       2       3       4       5       6                Gi       1 2 3 4 5 6                                    si   1       2       3   4    5       6
         ↓       ↓       ↓       ↓       ↓       ↓                1        0       1       0       1   0   1                   ↓       ↓       ↓   ↓    ↓       ↓
         5       4       6       3       2       1                         1       0       1       0   1   0                   ?       ?       ?   ?    ?       ?
                                                                  2
                                                                  3        0       1       0       0   1   1
onde Gi seja isomorfo a                                           4        1       0       0       0   1   1            O provador escolhe uma
                                                                                                                        permutação de vértices de G
ambos G e G’.                                                     5        0       1       1       1   0   0
                                                                  6        1       0       1       1   0   0            ou de G’ para construir Gi


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)

   h-1       1       2       3       4    5       6               hi       1   2       3       4       5   6              si       1   2   3       4   5    6
    1        0       0       0       1    0       0               1        0   0       0       0       1   0              1        0   0   1       0   0    0
    2        0       0       1       0    0       0               2        0   0       0       1       0   0              2        0   0   0       0   0    1
    3        1       0       0       0    0       0      *        3        0   0       0       0       0   1        =     3        0   0   0       0   1    0
    4        0       0       0       0    0       1               4        0   0       1       0       0   0              4        1   0   0       0   0    0
    5        0       1       0       0    0       0               5        0   1       0       0       0   0              5        0   0   0       1   0    0
    6        0       0       0       0    1       0               6        1   0       0       0       0   0              6        0   1   0       0   0    0




                                                                                                                                                                    169
CopyMarket.com                           Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
Lista de exercícios

1 - Segundo a classificação de Warwick Ford para tipos de ataque a sistemas computacionais, o que
   caracteriza 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 de
   pacotes 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 acesso
   mandató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 chaves
   Uma cifra cujo espaço de chaves é grande, é uma cifra segura
   Cifras cujo algoritmo criptográfico é ocultado são mais seguras
   Algoritmos criptográficos assimétricos estão expostos a mais tipos de ataques que os simétricos
   Algoritmos 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 um
   algoritmo 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 tem
   condições de almejar
   Transformar sigilo em confiança na integridade de dados
   Transferir sigilo entre dados
   Criar confiança na integridade de dados entre pontos de transmissão
   Criar sigilo para a transmissão de dados
11- Quais  inconvenientes e limitações existem para se estabelecer canais individuais com
   privacidade (sigilosos) entre pares de usuários de uma rede, usando apenas algoritmos
   criptográ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áfico
   de chaves públicas?
14- Como  um sistema criptográfico de chaves públicas pode ser usado para implementar o conceito
   de 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 por
   assinatura digital?
18- Que tipo de ataque pode sofrer redes onde os agentes usam chaves públicas para estabelecer
   canais sigilosos entre si?
                                                                                                   170
CopyMarket.com        Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
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 login
   remoto 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 rede
   que 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 de
   inteiros 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 de
   uma 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ínio
   pú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 no
   RSA.
32- Responda,     justificando, se é seguro ou não encriptar e depois assinar uma mensagem com o
   RSA.
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 firewalls
38- 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últiplas
   interfaces que hospede um gateway de aplicação?
40- Como    este curso mudou sua idéia do que seja segurança computacional?




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

Criptografia e segurança na informática

  • 1.
    UnB - UNIVERSIDADEDE 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 i CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 2.
    "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 ii CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 3.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 Reproduzida sem a autorização da Editora. Índice Pedro 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 ............................................... 161 Tabela para comparação de grandes números ...................................................... 162 Exemplo de execução do protocolo Diffie & Hellman ....................................... 163 Exemplo de execução da primitiva Exponeciação Modular ................................ 164 Exemplo de propriedades da aritmética finita ...................................................... 165 Exemplo de geração de chaves para o RSA ......................................................... 166 Exemplo de implementação de curva elíptica ..................................................... 167 Exemplo de execução de protocolo de conhecimento zero ................................ 168 Lista de exercícios ................................................................................................. 170 Notação Conceito: 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: iii CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 4.
    Índice alfabético detópicos Algoritmos criptográficos de chave pública.............................................................. 114 Algumas topologias para segurança ........................................................................... 154 Análise de risco na internet ......................................................................................... 142 Análise do DES............................................................................................................... 83 Análise do RSA ............................................................................................................. 116 Aplicações de fatoração e logaritmo discreto à assinatura digital ............................ 47 Aposta Encoberta (comprometimento de bits).......................................................... 51 Application gateways ......................................................................................................... 151 Arquitetura de firewalls .................................................................................................. 147 Assinaturas digitais para autenticação .......................................................................... 27 Ataque de número sequencial ao TCP....................................................................... 141 Ataques a sistemas computacionais.................................................................................3 Ataques ao DES por texto pleno adaptativo .............................................................. 85 Atualização e informações sobre segurança na internet.......................................... 161 Autenticação e Distribuição de chaves via sistemas assimétricos............................ 41 Autenticação e Distribuição de chaves via sistemas simétricos ............................... 38 Autoridades de Certificação na Internet.................................................................... 137 Cara ou Coroa ................................................................................................................. 52 Cenário atual da criptografia (1998) ........................................................................... 123 Cenário inicial da padronização em criptografia ........................................................ 79 Cifras Encadeadas........................................................................................................... 98 Cifras para sigilo.............................................................................................................. 14 Construção de funções de hash .................................................................................. 104 Construção de geradores pseudo-randômicos e cifras encadeadas ......................... 70 Controle de acesso.......................................................................................................... 11 Controles de segurança para a Internet ..................................................................... 143 Criptoanálise diferencial................................................................................................. 84 Criptografia na transmissão de dados .......................................................................... 76 Criptografia para armazenamento de dados ............................................................... 77 Criptografia Pré-computacional.................................................................................... 15 Critérios de projeto para cifras de bloco ..................................................................... 96 Critérios para escolha de chaves ................................................................................... 60 Derivação de chaves via funções unidirecionais com segredo................................. 44 Descrição do algoritmo padrão DES........................................................................... 80 Descrição resumida do SET........................................................................................ 157 iv CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 5.
    Digital Signature Algorithm.........................................................................................129 Distribuição de freqüência de letras ............................................................................. 20 Elementos de Protocolos............................................................................................... 21 Elementos de um modelo de segurança interna......................................................... 10 ElGamal ......................................................................................................................... 121 Entropia em Criptoanálise............................................................................................. 19 Escolha de algoritmos criptográficos........................................................................... 75 Escolhas de plataforma .................................................................................................. 78 Escritura de Chaves (key escrow)..................................................................................... 53 Especificação de políticas de segurança..........................................................................7 Esquema de autenticação de Feige-Fiat-Shamir....................................................... 131 Esquema Meta-ElGamal.............................................................................................. 130 Estimativas para comprimento seguro de chaves ...................................................... 59 Estrutura básica de protocolos criptográficos ............................................................ 25 Exemplo de um algoritmo criptográfico ..................................................................... 16 Exemplos de configuração de filtragem .................................................................... 148 Exemplos de protocolo baseado em conhecimento zero......................................... 57 Fatoração e logaritmo discreto aplicadosà esteganografia ........................................ 49 Ferramentas e utilitários de segurança ....................................................................... 159 Funções de Hash........................................................................................................... 103 Funções Unidirecionais (one-way functions).................................................................... 29 Futuro da criptografia assimétrica .............................................................................. 127 Geração de primos para criptografia assimétrica ....................................................... 64 Hash usando algoritmos para cifra de bloco............................................................. 109 Histórico da criptografia na internet .......................................................................... 155 Implementação de serviços de assinatura digital...................................................... 128 Implementação de serviços de chave pública ........................................................... 124 Infra-estrutura para controle de tráfego .................................................................... 144 Jurisdição da informação em meio eletrônico ...............................................................1 LFSRs de período máximo............................................................................................ 71 Limitações dos firewalls ................................................................................................. 153 Login................................................................................................................................. 35 MACs: Códigos de autenticação de mensagens ....................................................... 113 MD5................................................................................................................................ 105 Mecanismos de autenticação ......................................................................................... 30 Mecanismos e modos para construção de cifras ........................................................ 65 Mecanismos para uso de certificados em redes públicas ........................................ 136 Modelos de segurança interna..........................................................................................9 Modo CBC....................................................................................................................... 67 v CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 6.
    Modo CFB .......................................................................................................................68 Modo ECB....................................................................................................................... 66 Modo OFB....................................................................................................................... 69 Necessidade de protocolos criptográficos................................................................... 34 Operações de filtragem ................................................................................................ 146 Outros algoritmos assimétricos................................................................................... 122 Outros Algoritmos Simétricos ...................................................................................... 87 Outros esquemas de autenticação .............................................................................. 132 Padrões para assinatura digital e gerenciamento de chaves .................................... 133 Padrões para certificados digitais................................................................................ 135 Polinômios primitivos módulo 2 .................................................................................. 72 Primitivas de algoritmos assimétricos .......................................................................... 61 Principais padrões de protocolos criptográficos ...................................................... 134 Projeto e análise de cifras encadeadas.......................................................................... 73 Protocolos criptográficos............................................................................................... 24 Protocolos em modelos de segurança externa............................................................ 22 Protocolos esotéricos ..................................................................................................... 58 Provas com conhecimento zero (0-knowledge)............................................................. 55 Questões éticas sobre escrituração de chaves............................................................. 54 Rabin............................................................................................................................... 120 Riscos à segurança externa .......................................................................................... 139 RSA ................................................................................................................................. 115 Segurança de Algoritmos Criptográficos..................................................................... 17 Seqüências randômicas................................................................................................... 33 Serviços básicos de segurança computacional ...............................................................8 Serviços de validação de selo temporal........................................................................ 50 SHA................................................................................................................................. 107 Sistemas de chave pública usando curvas elípticas .................................................. 125 Sistemas de segurança de dados.......................................................................................2 Técnicas de filtragem.................................................................................................... 145 Técnicas de robustecimento do DES .......................................................................... 86 Teoria da informação ..................................................................................................... 18 Tipos de Ataque ao TCP/IP ............................................................................................5 Transferência de confiança através de protocolos ..................................................... 23 Uso de Tokens em segurança externa ......................................................................... 138 Vulnerabilidade na ausência de segredos na autenticação......................................... 32 Vulnerabilidades e pontos de ataque...............................................................................4 vi CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 7.
    Índice alfabético deprotocolos Assinatura Digital (arbitrado) ........................................................................................ 28 Assinatura Digital (auto-verificável)............................................................................. 27 Assinatura Digital parcialmente irrefutável de Chaum............................................. 47 Assinatura Digital sobre digesto e selo temporais...................................................... 31 Autenticação Fiat-Shamir............................................................................................. 129 Autenticação por protocolos de conhecimento zero iterativos ............................... 55 Autenticação por protocolos de conhecimento zero não iterativos........................ 57 Autenticação via conhecimento zero baseado em isomorfismo de grafo .............. 56 Cara ou coroa usando chaves assimétricas comutativas............................................ 52 Cara ou coroa usando hash ........................................................................................... 52 Cifragem de mensagem assinada .................................................................................. 28 Comprometimento de bits............................................................................................. 51 Derivação de chaves de Bellovin-Merrit (A-EKE).................................................... 46 Derivação de chaves de Diffie-Hellman fortificado .................................................. 45 Derivação de chaves de Diffie-Hellman...................................................................... 44 Distribuição de chaves certificadas para envelopes digitais...................................... 31 Distribuição de chaves DASS (DEC) .......................................................................... 41 Distribuição de chaves de Denning-Sacco.................................................................. 42 Distribuição de chaves Kerberos.................................................................................. 39 Distribuição de chaves de Needham-Schroeder ........................................................ 38 Distribuição de chaves de Neuman-Stubblebine ....................................................... 40 Distribuição de chaves de Woo-Lam........................................................................... 42 Distribuição interlock de chaves Rivest-Shamir......................................................... 43 Envelope Digital ............................................................................................................. 25 Exemplo de protocolo não computacional arbitrado................................................ 23 Handshake para abertura de sessão TCP .................................................................. 141 Login: autenticação mútua usando desafios................................................................ 37 Login: autenticação usando hash com salt .................................................................. 36 Login: autenticação usando hash.................................................................................. 35 Login: autenticação usando senhas ocasionais ........................................................... 37 Privacidade usando algoritmo assimétrico ................................................................ 142 Privacidade usando algoritmo simétrico...................................................................... 25 Secure Eletronic Transactions (SET)......................................................................... 157 Selo temporal arbitrado.................................................................................................. 50 Sistema criptográfico justo de Micali (key escrow) ........................................................ 53 vii CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 8.
    Índice alfabético dealgoritmos A5 .................................................................................................................................... 100 Algoritmo de Leeman para teste de Monte Carlo sobre primalidade ..................... 63 Algoritmo probabilístico para geração de números primos extensos ..................... 64 Blowfish............................................................................................................................ 90 CAST .............................................................................................................................. 95 Cifra de César .................................................................................................................. 15 Cifra de Vigenère ............................................................................................................ 16 Cript(1) ........................................................................................................................... 102 Data Encription Standard (DES)...................................................................................... 80 Digital Signature Algorithm (DSA) ................................................................................. 129 ElGamal ......................................................................................................................... 121 Encadeamento Davies-Meier ...................................................................................... 111 Exponenciação modular ................................................................................................ 61 FEAL .............................................................................................................................. 95 Filtro de pacotes básico................................................................................................ 146 Gerador de sequência usando Linear Feedback register................................................. 71 Gerador stop-and-go de sequência usando Linear Feedback registers ............................. 74 Gosudarstvenyi Standard (GOST) ..................................................................................... 91 International Data Encription Algorithm (IDEA) ............................................................. 89 Khafre .............................................................................................................................. 88 Khufu .............................................................................................................................. 88 LOKI .............................................................................................................................. 95 MDC-2............................................................................................................................ 111 MDC-4............................................................................................................................ 112 Message Digest 5 (MD5).................................................................................................. 105 NewDES .......................................................................................................................... 87 PKZip ............................................................................................................................ 101 Rabin............................................................................................................................... 120 RC2 ................................................................................................................................... 88 RC4 ................................................................................................................................... 98 RC5 ................................................................................................................................... 94 Rivest, Shamir & Adleman (RSA) .............................................................................. 116 SEAL ................................................................................................................................ 99 Secure Hash Algorithm (SHA)......................................................................................... 107 Skipjack............................................................................................................................. 95 viii CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 9.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. Introdução Pedro Antonio Dourado de Rezende No mundo hoje, somos levados a crer que podemos comprar soluções prontas – de preferência feitas sob medida – para atender nossas necessidades. Mas a essência do que se busca nem sempre pode ser encontrada na prateleira, embrulhada em pacote. Desejo iniciar essas notas com um comentário sobre a natureza da busca de segurança para a informática. Creio que a essência dessa busca não pode ser encapsulada e apresentada em forma de algoritmo. Por isso, não posso me propor apresentar-lhes roteiros ou receitas para segurança na informática. Proponho, ao invés disso, ajudá-los a desenvolver sensibilidade sobre como usar o conhecimento e as ferramentas até hoje acumulados, nessa busca. Para explicar minha crença sobre a natureza do assunto que iremos tratar, escolhi introduzi-lo pelas palavras de um experiente criptólogo, Bruce Schneier, divulgadas em uma lista de discussão eletrônica em novembro de 96 (schneier@couterpane.com), cuja tradução transcrevo abaixo. Para guiar-nos em minha proposta, compilei nas sessões seguintes um resumo dos conceitos, técnicas e procedimentos mais 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 e funcionamento de ferramentas para a proteção à informação – os serviços básicos de segurança computacional. Na sessão 2 abordaremos como mecanismos de proteção contra ameaças – os protocolos – são concebidos, para tornarem viável o uso destas ferramentas. Na sessão 3 estudaremos o funcionamento dos mecanismos que tem se mostrado eficazes, ou seja, os principais protocolos criptográficos de padrão aberto hoje em uso. Em seguida exploraremos na sessão 4 as formas como os serviços básicos são escolhidos e montados em protocolos específicos, para então examinarmos em mais 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ça externos aos protocolos que influem nas suas escolhas são abordados na sessão 6, e uma visão do estado 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 meio de comentários, no cenário real, onde deve configurar-se claro o caráter global e integrador do significado da segurança na informática, de cuja compreensão evolui tal sensibilidade. Estas notas representam 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áficas estão espalhadas ao longo das notas e devem ser buscadas por quem julgar necessária uma apresentação textual 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 redes de computadores, e noções de complexidade de algoritmos. ix CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 10.
    Porque a criptografiaé mais difícil do que parece “Do correio eletrônico à telefonia celular, do acesso seguro a servidores WEB à moeda eletrônica, a criptografia é parte essencial dos sistemas de informação de hoje. A criptografia ajuda a imputar responsabilidade, promover a justiça, prover acurácia e privacidade. Pode prevenir fraudes em comércio eletrônico e garantir a validade de transações financeiras. Usada apropriadamente, protege a anonimidade e fornece provas de identidade de pessoas. Pode impedir vândalos de alterarem sua página na internet e competidores industriais de lerem seus documentos confidenciais. Com o comércio seguindo 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. A maioria desses sistemas são projetados e implementados não por criptógrafos, mas por engenheiros que pensam que a criptografia é como qualquer outra tecnologia de computadores. Não é. Você não pode tornar um sistema seguro simplesmente acrescentando criptografia como uma medida adicional. Você precisa saber o que está fazendo a cada passo do caminho, da concepção até a implementação do sistema. Bilhões de dólares são gastos em segurança de computadores, e quase todo este dinheiro é desperdiçado em produtos inseguros. Afinal, criptografia fraca parece idêntica à criptografia forte na vitrine de software. Dois produtos de encriptação de correio eletrônico no mercado têm interface de usuário praticamente idênticas, enquanto um deles é seguro e o outro permite bisbilhotagem. Uma tabela contendo comparações entre recursos pode sugerir que dois produtos tenham funcionalidade similar, embora um possa ter furos comprometedores de segurança e o outro não. Um criptógrafo experiente pode reconhecer a diferença. Determinados tipos de criminosos também poderão. A segurança de computadores hoje em dia é um castelo de cartas; pode se manter de pé por agora, mas não vai durar. Muitos produtos inseguros ainda não foram quebrados porque ainda estão em sua infância, mas à medida em que se tornem mais e mais usados, tornar-se-ão alvos atraentes para criminosos. A imprensa divulgará os ataques, minando a confiança do público nesses sistemas. No final, produtos sobreviverão no mercado de acordo com a robustez de sua segurança. Os ataques a sistemas de informação são dos mais variados tipos. Toda forma de comércio já inventado tem sido alvo de fraudes, desde as balanças propositadamente descalibradas, o dinheiro falso, as faturas frias, etc. O comércio eletrônico também sofrerá fraudes, personificação, bloqueio de serviço, e falsificações. Não se pode caminhar pelas ruas usando uma máscara que imita o rosto de outra pessoa sem ser percebido, mas no mundo digital é muito fácil personificar outrem. Ocorre que a informatização torna os riscos maiores ainda, permitindo ataques automatizados, impossíveis de serem conduzidos contra sistemas não automatizados. Um ladrão pode se sustentar retirando um centavo por mês de cada dono de cartão de crédito Visa. Apenas com a criptografia forte pode-se proteger tais sistemas contra estes tipos de ataques. Violações contra a privacidade constituem outro tipo de ataque. Alguns ataques contra a privacidade são direcionados: alguém da imprensa pode tentar ler a correspondência eletrônica de uma figura pública, ou uma companhia pode tentar interceptar as comunicações de um competidor. Pode-se também tentar ataques de colheita, buscando informações interessantes num mar de dados: viúvas ricas, 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 da agência de serviço secreto dos EUA, enviadas cartas-bomba digitais a provedores da internet, e cancelados centenas de listas de discussão eletrônicas, além de ataques que bloqueiam o acesso a computadores que se comunicam por meio de determinados protocolos. E como divulgado, ladrões e vândalos rotineiramente invadem redes de computadores. Quando as salvaguardas de segurança não x CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 11.
    são adequadas, osinvasores 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, como no exemplo de arrombadores que entram numa casa abrindo um buraco na parede, evitando os alarmes e trancas das portas e janelas. Vândalos cibernéticos também abrem buracos em paredes de bits. Roubam dados técnicos, subornam agentes, modificam programas e mancomunam. Tiram vantagens de tecnologias mais avançadas que a dos sistemas que querem atacar, e até descobrem novos métodos matemáticos para atacá-los. Geralmente dispõem de mais tempo do que alguém honesto normalmente teria para desmontar e examinar um sistema. O SecurID foi usado durante anos até que alguém olhou mais atentamente dentro de seu gerenciador de chaves: seus códigos binários ainda continham rótulos!. As chances favorecem os atacantes, que só precisa encontrar um ponto vulnerável no sistema, enquanto os defensores precisam proteger seu sistema de toda vulnerabilidade possível. O que a criptografia pode e não pode fazer A garantia de 100% de segurança é uma falácia, mas podemos trabalhar em direção a 100% de aceitação de riscos. Fraudes existem nas formas usuais de comércio: dinheiro pode ser falsificado, cheques adulterados ou roubados, números de cartão de crédito copiados. Mesmo assim esses sistemas ainda têm sucesso porque seus benefícios e conveniências compensam as perdas. Cofres, fechaduras e cortinas – mecanismos de privacidade – 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. Um sistema criptográfico, não importa quão seguro, não irá impedir que alguém vasculhe seu lixo. Mas pode perfeitamente prevenir ataques de colheita de dados: ninguém conseguirá vasculhar suficientes latas de lixo para montar a lista de todos os usuários de AZT do país. A boa notícia sobre criptografia é que já temos os algoritmos e protocolos para proteger nossos sistemas. A má notícia é que esta foi a parte mais fácil: implementações bem sucedidas requerem especialização considerável. As áreas de segurança na informática que interagem com pessoas – gerência de chaves, segurança da interface homem/máquina e controle de acesso – freqüentemente desafiam análise. As disciplinas de infra-estrutura de chaves públicas, segurança do software, segurança de computadores, segurança de redes e projeto de hardware inviolável são também pouco compreendidas. Companhias muitas vezes fazem mal a parte fácil e implementam algoritmos e protocolos inseguros. Mas mesmo assim, na prática raramente a criptografia é quebrada por causa, ou através, de sua matemática; outras peças do sistema são mais fáceis de serem quebradas. O protocolo mais seguro já inventado poderá facilmente sucumbir a um ataque simples se não for dado atenção a detalhes mais complexos e sutis sobre sua implementação. A segurança do browser Netscape 1.0 caiu devido a uma falha no seu gerador de números randômicos. As falhas podem estar em qualquer lugar: no modelo de ameaças, no projeto do sistema, na implementação do software ou do hardware, ou na gerência do sistema. Segurança é uma cadeia, onde um único elo fraco pode quebrar todo o sistema. Bugs fatais à segurança podem estar em partes do software distantes dos módulos que implementam serviços de segurança, e uma decisão de projeto que não tenha nada a ver com segurança poderá criar uma falha de segurança. xi CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 12.
    Uma vez encontradauma falha de segurança, pode-se consertá-la. Mas encontrar as falhas, para início de conversa, pode ser extremamente difícil. Segurança é diferente de qualquer outro requisito de projeto, porque nele funcionalidade não é igual a qualidade: se um editor de texto imprime corretamente, sabe-se que a função de impressão funciona. Segurança é diferente: só porque um cofre reconhece a combinação correta para abri-lo, não significa que seu conteúdo está seguro contra um chaveiro ou arrombador. Nenhuma quantidade de testes beta revelará todas as falhas de segurança de um sistema, e não haverá nenhum teste possível que prove a ausência destas falhas. Modelos de ameaças Um bom projeto começa por um modelo de ameaças. O que o sistema está sendo concebido para proteger, de quem e durante quanto tempo? O modelo de ameaças deve levar em consideração todo o sistema, não apenas os dados que está sendo projetado para proteger, mas também e principalmente as pessoas que irão usá-lo e como irão usá-lo. O que motivará os atacantes? Que tipo de abusos podem ser tolerados? Deve um tipo de ataque ser prevenido ou basta que seja detectado? Se o pior acontecer e alguma hipótese fundamental sobre a segurança do sistema for violada, que tipo de salvamento pós- desastre pode ser conduzido? Respostas a estas questões não podem ser padronizadas, como os algoritmos e protocolos. São diferentes para cada sistema, e com freqüência, projetistas não dedicam tempo a construir um modelo realista das ameaças ou a analisar os riscos. Modelos de ameaças permitem a desenvolvedores de produtos e consumidores determinar quais medidas de segurança são necessárias: terá sentido encriptar todo seu disco rígido se você não guarda seus documentos de papel num cofre? Como pode alguém de dentro da companhia fraudar o sistema de comércio? Qual é exatamente o custo para se neutralizar a inviolabilidade de um cartão inteligente? Não se pode especificar um sistema seguro sem conhecimento sobre contra o que, e de quem, se deseja protegê-lo. Projeto de sistemas O projeto de um sistema criptográfico seguro deve ser feito somente após o modelo de ameaças ter sido compreendido. Este trabalho é o tema central da criptologia, e é muito especializado. A criptografia mescla várias áreas da matemática: teoria dos números, teoria da complexidade, teoria da informação, teoria da probabilidade, álgebra abstrata, análise formal, dentre outros. Poucos podem contribuir apropriadamente para esta ciência, onde um pouco de conhecimento é muito perigoso: criptógrafos inexperientes quase sempre projetam sistemas falhos. Bons criptógrafos sabem que nada substitui a revisão extensiva feita por colegas e anos de análise. Sistemas de qualidade usam algoritmos e protocolos publicados e bem compreendidos: usar elementos não provados em um projeto é no mínimo arriscado. O projeto de sistemas criptográficos é também uma arte. O projetista precisa atingir um equilíbrio entre segurança e acessibilidade, anonimidade e responsabilização, privacidade e disponibilidade. A ciência sozinha não garante segurança: somente a experiência e a intuição nascida da experiência podem guiar o criptógrafo no projeto de sistemas criptográficos e na busca de falhas em sistemas existentes. Bons sistemas de segurança são feitos de pequenos módulos independentemente verificáveis (e que tenham sido verificados!), cada um provendo algum serviço que claramente se resuma a uma primitiva. Existem vários sistemas no mercado que são muito grandes para serem verificados em tempo razoável. xii CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 13.
    Implementação Existe uma distânciaenorme entre um algoritmo matemático e sua implementação concreta em hardware ou em software. Projetos de sistemas criptográficos são muito frágeis. Só porque um protocolo é logicamente seguro, não significa que permanecerá seguro quando o implementador começar a definir estrutura de dados e a descrever a passagem de bits de um lado para outro. “Fechado” nunca será totalmente fechado: esses sistemas têm que ser perfeitamente implementados, senão irão falhar. Uma interface mal projetada pode tornar um encriptador de arquivos de disco completamente inseguro. Uma interface de sincronização mal projetada pode deixar um furo num sistema para comunicações seguras. Confiança excessiva na inviolabilidade de hardware, tais como os chips de cartões selados, pode tornar inútil um sistema de comércio eletrônico. Como estes problemas não aparecem em testes, por vezes aparecem em produtos já lançados no mercado. Implementadores estão sempre sob pressão de orçamentos e prazos. Cometem os mesmos erros vezes a fio, em muitos produtos diferentes. Usam geradores de seqüências randômicas ruins, não checam condições de erro apropriadamente, e deixam informações secretas em arquivos de swap. Muitas destas falhas não podem ser estudadas em livros acadêmicos porque não são tecnicamente interessantes. A única maneira de aprender sobre estas falhas é fazendo e quebrando sistemas de segurança, um após o outro, numa corrida sem fim. Procedimentos e Gerência No final da estória, muitos sistemas de segurança são quebrados por pessoas que os usam, e a maioria das fraudes contra sistemas de comércio são praticadas por quem os opera. Usuários honestos também causam problemas, porque geralmente não ligam para segurança. Eles querem simplicidade, conveniência, e compatibilidade com sistemas legados (inseguros) e em uso. Eles escolhem senhas fracas, anotam-nas, passam-nas para parentes e amigos, largam computadores com sessões abertas, etc. Ë muito difícil vender fechaduras para pessoas que não querem ser molestadas pela responsabilidade de carregar chaves. Sistemas bem projetados têm que levar em conta as pessoas, e as pessoas são os elementos mais difíceis de serem abstraí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 mais barato projetar e implementar um bom sistema do que cobrir as perdas com um sistema inseguro. A maior parte de seu custo está em fazer com que as pessoas o utilizem. Ë difícil convencer o consumidor sobre a importância de sua privacidade financeira, quando o mesmo está disposto a trocar um detalhado registro de suas compras por um milésimo de uma viagem ao Havaí. Ë difícil construir um sistema de autenticação robusto sobre um outro sistema que permite ser penetrado por meio do conhecimento do nome de solteira da mãe de alguém. A segurança é rotineiramente ultrapassada por vendedores, 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 listando seus recursos e funcionalidade, e não avaliando sua segurança. Propagandas de produtos fazem asserções que simplesmente não se sustentam. Um produto mais robusto, isto é, melhor testado (e portanto mais caro), estará nestas condições em desvantagem para a comercialização. As pessoas confiam no governo para zelar pela sua segurança e bem estar, em coisas para as quais não detém conhecimento suficiente para fazerem sua própria avaliação – industrialização de alimentos, aviação, medicamentos, medicina, etc. Com a criptografia entretanto, os governos fazem geralmente o contrário. xiii CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 14.
    Problemas no futuro Quandocai um avião, são abertos inquéritos, feitas análises e laudos técnicos. Informação sobre o acidente é amplamente divulgada, e muitos aprendem algo com o acidente. Pode-se obter das autoridades, laudos sobre acidentes aéreos desde o início da história da aviação. Mas quando o sistema eletrô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 o ataque, e ninguém aprende nada com os erros. O banco tenta remendar o problema em segredo, na esperança de que a clientela não perca a confiança num sistema que não merece esta confiança. Remendar sistemas de segurança para tapar furos em resposta a ataques bem sucedidos não é suficiente. A informação move muito depressa. Uma falha em algum sistema, descrita na internet, pode ser explorada por milhares em um dia. Os sistemas para hoje precisam antecipar futuros ataques. Qualquer sistema de grande porte – seja para comunicações autenticadas, armazenamento seguro de dados ou comércio eletrônico – deveria ter vida útil de cinco anos ou mais. Para permanecer seguro, precisa ser capaz de resistir ao futuro: ataques mais inteligentes, com maior capacidade computacional e motivações crescentes para se subverter um sistema que está consolidado por longo uso. Não haverá tempo para se fazer upgrades enquanto este estiver em uso. A história tem nos ensinado: nunca subestime a quantidade de recursos em dinheiro, tempo e esforço que alguém esteja disposto a gastar para subverter um sistema. Use sistemas de defesa ortogonais, com várias maneiras de se fazer a mesma coisa. Autenticação segura pode significar assinaturas digitais pelo usuário via teclado, SSL para proteger a transmissão, IPSec pelo firewall para o destino, junto com pontos de auditoria múltiplos ao longo do caminho para gerar rastros e produzir evidências. A quebra de alguma parte dará ao atacante uma alavanca, mas não causará o colapso de todo o sistema. Ë sempre melhor assumir o pior. Assuma que seus adversários são melhores do que realmente são. Assuma que a ciência e a tecnologia poderão em breve fazer coisas que hoje ainda não podem. Dê a si mesmo um margem de erro. Dê a si mesmo mais segurança do que hoje precisa. Quando o inesperado acontecer, você estará contente por ter agido assim”. (Bruce Schneier) Creio ser a busca de segurança para a informática semelhante à busca metafísica do homem pelo significado da vida. Um movimento de impulso difuso entre o compreensível e o desejável, no horizonte cambiante do possível. Terei atingido meu objetivo se ao final pudermos reconhecer o contexto onde as ferramentas criptográficas podem ser úteis. Este contexto é formado pelas esferas de atitude, motivação e compreensão dos riscos por parte de quem usa a informática, para dela se obter confiabilidade. Poderemos então conviver, e convencer outros da necessidade de convivência, com o dilema 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 uma outra força humana relacionada à segurança – a paranóia – pode contribuir ao delicado equilíbrio desta lei. xiv CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 15.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. 1. Fundamentos Pedro Antonio Dourado de Rezende • Jurisdição da informação em meio eletrônico - Classificada Sensível Governos Comércio, Indústria Organizações militares Comunidades Interna Externa Sistemas operacionais Redes de computadores Bancos de dados 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.) 1 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 16.
    Sistemas de segurançade dados • Demanda básica de segurança em sistemas computacionais: Tipo de proteção Ameaça básica Ação Privacidade 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. 2 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 17.
    Ataques a sistemascomputacionais • 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 Quadro-resumo (Warwick Ford) Ameaças: Vazamento Fraude Bloqueio Uso indevido Ataques Primários: Penetração Personificação, Gancho, Implantação Desvio, Virus, Spoof, Violação. Troiano, etc. Ataques Subjacentes: Escuta passiva, Escuta ativa, Sobrecarga Furto de sessão, Análise de tráfego, Refutação. intencional, Replay, Descuido, Grampo, Fraude. Espelhamento, Varredura. Fraude. 3 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 18.
    Vulnerabilidades e pontosde 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. 4 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 19.
    Tipos de Ataqueao TCP/IP • Hierarquia de serviços e protocolos hoje usados na Internet- Camada NFS PMAP NIS arquiv portas Aplic XDR TEL- FTP SMTP HTTP Gopher DNS NTP TFTP RIP RPC NET transf. e-mail www dire- nome sincro- transf. rotea- procedimento remoto login arquivo tório domino nização arquivo mento Transp TCP UDP Rede IP ISO 8802-2 HDLC: LAP-B: LAP-D: ATM: Enlace Ethernet ISO ISO ISO ISO ITU ITU ITU SLIP PPP: ITU 8802-3 8802-5 9314 Q.921/2 rfc 1331 3309 X.25 Q.921 I.361 Token .8885 Frame CSMA/CD Ring FDDI Relay 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. 5 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 20.
    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. 6 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 21.
    Especificação de políticasde 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. 7 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 22.
    Serviços básicos desegurança computacional • Controle de acesso: (segurança interna) Agente Objeto Processo Função bloqueadora Recurso usuário, programa, etc. Função decisória mídia, dado, serviço, etc. • Cifragem: (transferência de sigilo ou integridade) Origem A chave d Alvo B chave e Texto pleno criptograma Texto pleno original Função Função encriptadora decriptadora m e(m) = c d(c) = d(e(m)) = m • Autenticação: (confiança em sigilo para identificação) Autenticador Verificador senha/contra-senha identificação Função identificação Função da transaçào autenticadora de origem verificadora da transação token/ticket • Certificação: (autenticação recursiva) Autoridade Participante certificado Função Chave de assinatura Função certificado de origem certificadora Chave de verificação verificadora público registro 8 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 23.
    Modelos de segurançainterna • 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 9 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 24.
    Elementos de ummodelo de segurança interna Quadro-resumo (Castano, Fugino, Martela, Samarati) Sujeitos: Usuários Administradores de segurança Requisição de acesso Requisição para operação administrativa Cotrole sobre Processos operações administrativas Acesso Acesso negado autorizado Controle de acesso Autorizações (Função decisória) e políticas Acesso autorizado Axiomas Objetos: • 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 10 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 25.
    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); 11 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 26.
    Classificação de sistemasquanto 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). 12 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 27.
    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. 13 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 28.
    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. 14 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 29.
    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) n 3 - Poligrâmica: ............M=C=Σ 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. n Ex: Caso especial da cifra de Vigenère onde M=C=K=Σ , 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) - n n M=C=Σ ; E ⊆ σ(Σ ): 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. 15 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 30.
    Exemplo de umalgoritmo 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. 16 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 31.
    Segurança de AlgoritmosCriptográ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 17 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 32.
    Teoria da informação • Estruturas de linguagens naturais num alfabeto Σ: LexL = Léxica Σ* = sequências de Cadeias de palavras de L letras do alfabeto Σ SinL = Sintática Subconjunto de LexL L SemL = Semântica Relação de equivalência em SinL 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. Contexto da Árvore de derivação mensagem Sintática de L Conteúdo semântico de m Mensagem m Exemplo: H(m) H("sexta-feira") =log2(7) 2- Medida logarítmica ponderada do inverso da probabilidade dos possíveis conteúdos de m: (si = significado possível de m). j 1 H(m) = − å p(si ) log( ) i =1 p(si ) 18 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 33.
    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 (H(K)- dLn) 2 +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. 19 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 34.
    Distribuição de freqüênciade letras Frequências do Português (arquivo genérico de 64KB) 0,18 0,16 0,14 0,12 0,1 0,08 0,06 0,04 0,02 0 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 0,18 0,16 0,14 0,12 0,1 0,08 0,06 0,04 0,02 0 ascii E S R D M U L G B H J K Y 32 frequência do inglês 0,18 0,16 0,14 0,12 0,1 0,08 0,06 0,04 0,02 0 ascii T I O R D U F W P G K J Z 32 20 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 35.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. 2. Elementos de Protocolos Pedro 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. Algoritmo Protocolo com 2 agentes INÍCIO INÍCIO Tempo FIM FIM Seqüência de passos do agente executor Agente A Agente B • 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, e 4 - completo, com uma ação especificada para cada situação possível; Agentes: 1-COMPLETOS Especificação: 3-DETERMINANTE Propósito 4-FECHADA 2-DETERMINADOS Premissas do protocolo 21 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 36.
    Protocolos em modelosde 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. 22 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 37.
    Transferência de confiançaatravé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 - Compra de Automóvel 6- Novo DUT 7-Crédito Detran 4- DUT, Vistoria 5- Deposito cheque Banco 8- Veículo, Árbitro 8- Transferência do Novo DUT (Agência) crédito menos taxa 3- Cheque 3- Veículo, DUT 2- Resposta Comprador A Vendedor B 1- Proposta 23 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 38.
    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. 24 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 39.
    Estrutura básica deprotocolos criptográficos • Sigilo na comunicação em rede - I: privacidade e controle de acesso usando algoritmo simétrico (Comunicação via canal seguro) 2: Solicita Gerenciador de 2: Solicita chave (A,B) chaves chave (A,B) 3: Chave k 3: Chave k 1: Escolhe algoritmo Agente A 4: criptograma c = k(m) Agente B 7: decripta m’= k(c’) 6: criptograma c' = k(m’) 5: decripta m= k(c) 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. 25 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 40.
    Sigilo com uso de chave pública - II: protocolo para privacidade usando algoritmo assimétrico 2: cadastra chave 2: cadastra chave pública EA Banco de pública EB chaves 3:lê Chave EB 3: lê Chave EA 0: Escolhe algoritmo assimétrico Agente A 4: criptograma EB (m) Agente B 1: Gera par DA , EA 1: Gera par DB , EB 6: criptograma EA (m’) 7: decripta m’= DA (EA (m’)) 5: decripta m= DB (EB (m)) • 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 - III: Envelope digital 1: Escolha de algoritmos para I e II Agente A 3: Envelope = criptogramas de Agente B chave de sessão + mensagem 2: lê EB, gera k; 4: k= DB (EB (k)) EB(k), k(m) encripta k e m m= k(k(m)) 26 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 41.
    Assinaturas digitais paraautenticaçã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. Objetos: 1-AUTOR Funções: 3-VÍNCULO Autenticação 4-PROVA 2-CONTEUDO Premissas da Assinatura • Autenticação usando sistemas de chave pública: IV: protocolo auto-verificável de assinatura digital 1: Escolha de algoritmo assimétrico 3: Publica A,EA; Agente A 5: mensagem assinada: m,s Agente B 2: Gera EA, DA; 6: Identifica A em m 4: gera m; calcula s = DA(m) s = Assinatura digital verifica se m =? EA (s) de A sobre m = DA(m) 27 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 42.
    Autenticação usando sistemas de chave secreta - V: protocolo arbitrado de “assinatura” digital (Canal seguro) Árbitro J r = "comprovante" de data e autentica A, m origem de m; s = r, kA(m) = assinatura 2: Solicita chave (A,J) 2: Solicita chave (B,J) 3: Chave kA 3: Chave kB 4: kA(m) 5: c = kB (m,s) 1:Escolha de Árbitro e algoritmo simétrico Agente A Agente B decripta c Arbitragem: encripta m B solicita a J verificar se 6: m, s = kB (c) s = r, kA(m) • Sigilo e autenticação usando chaves públicas: VI: cifragem de mensagem assinada 1: Escolha de algoritmo assimétrico Agente A assina 3: Pubica B,EB ; Publica A,EA Agente B verifica 2: Gera EA, DA; 2: Gera EB, DB; 5: A,c publica EA; publica EB. 4: gera m, calcula 6: m, s = DB (c); m =? EA(s) s = DA(m); c = EB (m,s) Premissas e problemas do protocolo VI: II.a,b,c, com II.c agravado. Não alcança totalmente a irrefutabilidade. 28 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 43.
    Funções Unidirecionais (one-wayfunctions) • Definição Conceito 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). One-way function h(m) fácil Argumento→ m c ←Imagem h-1(c) difícil • 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. Hash livre de colisão h-1(c) h m’ m c h(m’)=h(m) difícil 29 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 44.
    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. 30 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 45.
    Prevenção contra ataque de replay II.b e gargalo VI.c: VII: assinatura sobre digesto e selo temporal digitais 1: Acordo sobre uso do protocolo Agente A assina 3: Publica B,EB ; Publica A,EA Agente B verifica 2: Gera EA, DA; 2: Gera EB, DB; 5: A,c 4: gera m, calcula digesto h(m), 6: m,s = DB(c); data, assina e encripta 7: h(m),t =? EA(s) c = EB( m,DA( h(m),t) ) ) t = selo temporal; h( ) = função hash; DA( h(m),t) = assinatura • Prevenção contra personificação em II.b e III.b VIII: distribuição de chaves certificadas (esboço do SSL): (confiança na integridade da origem e conteúdo) 2: A Cadastra chave 2: B Cadastra chave pública EA; pública EB; Recebe ES Certificadora Recebe ES de chaves S ↓ Chaves públicas certificadas↓ ↓ 3: cA= A,EA DS(A,EA) 3’: cB= B,EB,DS (B,EB) 1: Escolhe autenticador de chaves S 4: Solicita EB 4’: Solicita EA A gera (DA, EA ) B gera (DB, EB ) 5: cA 5’: cB 6: verifica B,EB =? ES (cB); 6’: verifica A,EA =? ES (cA) ; gera k. 7: EB (k) gera k’. 7’: EA (k’) 8’: k’ = DA EA (k’)) 8: k = DB (EB (k)) EB (k) Envelope digital k, = chave de sessão 31 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 46.
    Vulnerabilidade decorrente daausência de segredo compartilhado durante a autenticação Ataque por espelhamento em II.b, VI.b: Intruso X oculto para A finge ser B para B finge ser A 6: m1 = DX (EX (m1)) 9: m2 = DX (EX (m2)) [ “ ” = perda de integridade] 3: escuta chave 5: EX(m1) 8: EX (m2) 3: escuta chave pública EA pública EB 10: EA(“m2”) 7: EB (“m1”) 4: Falsifica chave E“B” (= EX) 4: Falsifica chave E“A” (= EX) (Conexão não autenticada) 1: Escolhe algoritmo, solicita chave pública 2: X intercepta troca de Agente B vaza m2 Agente A vaza m1 chaves públicas • 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) 32 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 47.
    Seqüências randômicas • Conceito Se 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 da Probabilidade seqüência de bits de 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) 33 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 48.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. 3. Protocolos Importantes Pedro Antonio Dourado de Rezende • Necessidade de protocolos criptográficos Os quatro serviços básicos de segurança computacional são capazes apenas de transformar características elementares de segurança - em operações envolvendo confiança - mas não de criá-las a partir do nada: Controle de acesso ....transforma premissa de posse de segredo ou objeto irrefutável por um agente em verificação de sua identidade. Cifragem....................transfere e amplifica o sigilo de uma chave criptográfica para o sigilo da informação em uma mensagem. Autenticação .............transforma um sigilo em verificação de algum tipo de 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 elementos e da capacidade transformadora dos serviços básicos, o tipo de funcionalidade de 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 atingir grau 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. 34 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 49.
    Login • Autenticação de usuário por senha: IX: Autenticação usando hash Agente A Recurso A, senha k Cálculo do hash h(k) 4: If True Sessão a A 1: A,k 2: A,h(k) 3: T/F Arquivo de senhas (Sistema protegido) A,h(k) no arquivo? • 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%. 35 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 50.
    Dificultando o ataque por dicionário (IX.c): X: Autenticação usando hash com salt Agente A Recurso A, senha k Cálculo hash h(k, ) Sessão a A 1: A,k 6: If True 3: sA salt de A 5: True,s / False 2: A 4: h(k,sA) 6: h(k,s) novo hash de A Rand( ): Arquivo de senhas (Sistema protegido) Gerador de números if True: pseudo-randômicos A,sA,h(k,sA) no arquivo? ← 5: s←Rand( ) novo salt de A • 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. 36 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 51.
    Prevenindo ataques por replay: (IX.a, X.d) XI: Autenticação usando senha ocasional (S/key) Agente A Recurso A, senha k Cálculo do hash h(k) 4: If True Sessão a A ; 1: A,k n n ← n+1 k = h (r) 2: A,h(k) 3: T/F Arquivo de senhas (Sistema protegido) r = número if True: randômico 5: h(k) ← h( h(k)) A,h(k) no arquivo? • Neutralizando escuta e replay (IX.b,d) com chave pública: XII: Autenticação mútua usando desafios 0:A cadastra chave pública EA, recebe ES 2: A, cA Recurso S Agente A 4: S, cS 3: rS←Rand( ); 1: rA←Rand( );. 6: mA = DA(rA, rS). cS = DS(rS) cA = DA(rA). 7: rA = E A(cA). 8: Se 7 então mS = DS(rA, rS) 5: rS = ES(cS) rA,rS =? EA(mA). 10: Se 9 então DA( h(rA, rS)) 9: rA,rS =? ES(mS). Rand( ) = gerador de números randômicos. • 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. 37 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 52.
    Autenticação e Distribuiçãode chaves usando sistemas criptográficos simétricos • Um protocolo pioneiro: XIII: Needham & Schroeder (Canal seguro) Servidor de chaves S 2: Cadastra e 2: Cadastra e recebe chave recebe chave secreta kA secreta kB 7: Decripta kA(cA), kB(cB); verifica i,A,B em ambos, extrai rA,rB e gera chave k. 8: kA (k, rA), kB (k, rB) 6: i,A,B, cA, cB 1: Escolhem autenticador de chaves S Agente A 4: i,A,B, cA Agente B 10: Se 9 então kB (k, rB) 3: Gera índice i, 5: Gera número randômico número randômico rA; rB ; 12: Se 11 então a chave de cA = kA( rA,i,A,B ) cB = kB( rB,i,A,B ) sessão está confirmada 9: Decripta parte de 8; 11: Decripta 10; extrai k,rA e verifica rA k = chave de sessão extrai k,rB e verifica rB • 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. 38 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 53.
    Variante de XIII proposta por grupo do MIT: XIV: Kerberos, versão 5 (Canal seguro) Servidor de chaves S 2: Cadastra e recebe chave secreta kA 2: Cadastra e 3: Gera chave k, recebe chave selo temporal T secreta kB e prazo de validade L. 3: A, B 4: cA=kA( k,T,L,B ) , cB=kB( k,T,L,A ) 1: Escolhem autenticador de chaves S Agente A Agente B 6: cB, ck 5: Decripta cA com kA: 7: Decripta cB com kB: verifica B,L,T e produz 8: Se 7 então k(TA+1) verifica A,L,T e extrai k; ck=k( A,TA ) Decripta ck com k: 9: Decripta 8 com k: verifica valida A,T,TA k = chave de sessão TA+1 e confirma k. • 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. 39 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 54.
    Variante do Kerberos sem sincronização: XV: Neuman & Stubblebine (Canal seguro) Servidor de chaves S 2: Cadastra e 2: Cadastra e recebe chave 6: Gera chave k, recebe chave secreta kA Decripta c com kB; secreta kB cA=kA( B,T,k,rA ) cB=kB( A,T,k ).* 7: cA,cB,rB 5: B,c,rB 1: Escolhem autenticador de chaves S Agente A Agente B 4: A, rA 3: Gera núm. randômico rA. 4: Gera núm. randômico rB 9: Se 8 então cB, k(rB) e selo temporal T; 8: Decripta cA: verifica rA. c=kB( A,rA,T ). 10: Decripta cB: decripta k = chave de sessão 11: Se 10 então inicia sessão. k(rB) e verifica rB,T. • 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). 40 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 55.
    Autenticação e Distribuiçãode chaves usando sistemas criptográficos assimétricos • Protocolo proposto pela Digital Equipment Corp. (DEC): XVI: DASS (Canal seguro) 2: Cadastra EA; Recebe 2: Cadastra EB; ES e guarda chave Recebe ES e guarda privada DA Servidor chave privada DB de chaves S 2: A, B 5: B, A 3: DS( B,EB ) 6: DS( A,EA ) 1: Escolhem autenticador de chaves S Agente A Agente B 4: cA, ck, k(TA) 3: Valida EB com ES; 7: Valida EA com ES; Gera chaves k e Ek,Dk, Decripta cA com EA; 8: Se 7 então k(TB) selo temporal TA e prazo L; Decripta ck com Ek; ck = Dk( EB( k )) Extrai k com DB: cA = DA( A,L,Ek ) k = chave de sessão valida A,L,TA 9: Decripta 8 com k: valida TA ,TB e confirma k. • 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. 41 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 56.
    XVII: Denning &Sacco (Canal seguro) 2: Cadastra EA; 2: Cadastra EB; Recebe ES e guarda Recebe ES e guarda chave privada DA chave privada DB Servidor de chaves S 3: A, B 4: cB=DS(B,EB) , cA=DS(A,EA) 1: Escolhem autenticador de chaves S Agente A Agente B 6: cB, cA, ck 5: Extrai EB de cB com ES; 7: Extrai EA de cA com ES; Gera chave k, Extrai e valida EB de cB; selo temporal T; 8: Se 7 então k(TB) Decripta ck com DB: extrai e ck=EB ( DA( A,B,T,k )) valida A,B,T,k com EA; 9: Decripta 8 com k: verifica TA, TB e confirma k. XVIII: Woo-Lam (Canal seguro) Servidor de chaves S 2: Cadastra EA; 2: Cadastra EB; Recebe ES e guarda Recebe ES e guarda chave privada DA chave privada DB 9: Gera chave k; ck= DS(,rA,k,A,B) 3: B 8: A, B,ES(rA ) 4: DS(B,EB) 10: EB(ck), DS(A,EA) 1: Escolhem autenticador de chaves S Agente A 6: EB ( A,rA ) Agente B 5: Extrai EB de 4 com ES; 7: Extrai rA de 6 com DB, 12: Se 11 então EA (ck,rB) 11: Extrai EA de 10 com ES; Gera núm. randômico rA. Gera núm. randômico rB; 13: Decripta ck com DA: 14: Se 13 então k (rB) Decripta ck com DB: extrai e valida A,B,rA,k com ES extrai e valida A,B,rA,k com ES. 42 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 57.
    Detecção do ataque por espelhamento em II,VI usando hash - Distribuição Interlock de chaves (Rivest & Shamir) 1: Escolha de protocolo básico e função hash 3: Lê EB ; Lê EA Agente A Agente B 5: v = h(c) 2: Gera EA, DA; 2: Gera EB, DB; 6: v’ = h(c’) publica EA. publica EB. era m; c=EB(m). 7: c = EB(m) 4: Gera m’; c’=EA(m’). 9: Gera chave de 8: Se h(c) = v então c’ sessão k h( ) = hash livre de 10: Se h(c’) = v’ então k colisão. 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. 43 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 58.
    Derivação de chavesatravés de funções unidirecionais com segredo • Primeira descoberta do uso de funções trapdoor (1976): XIX: Diffie & Hellman 1: Escolhem número primo q e base a Agente A 3: A, c Agente B 2: Gera n. randômico x; 3: B, c’ 2: Gera n. randômico y; Calcula c = f(a,x) Calcula c’ = f(a,y) 4: Calcula chave de sessão 4: Calcula chave de sessão k = (c’)x mod q k = f(c’,x) = f(c, y) k = cy mod q n f( , ) = função trapdoor: f(a,n) = a mod q 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. 44 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 59.
    D&H autenticado por senha, protegido contra ataques por dicionário e espelhamento: XX: Diffie & Hellman fortificado 0: Escolhem senha p 1: Escolhem primo q, base a e hash h( ) Agente A Agente B 3: A, c 2: Gera n. randômico x; 2: Gera n. randômico y; x 3: B, c’ y c = a mod q c’ = a mod q 4: Calcula chave k = 4: Calcula chave 5: v y (c’)x mod q; k = c mod q v = H( p,k ) 6: Valida v = H( p,k ) 7: Se 6 então H( h( p,k ),k ) 8: Valida H( h( p,k ),k ) H( , ) função de hash: H(p,k) = h(h(p,k)mod 2n,k) 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. 45 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 60.
    Derivação híbrida de chave secreta via chave pública: XXI: A-EKE (Bellovin & Merritt) 0: A escolhe senha p, p-1 assimétricos e entrega p-1 1: Escolhem primo q e base a Agente A Agente B 3: A, p(c ) 2: Gera n. rand. r, rA, sA; 4: Gera randômicos rB, sB; 5: B, p-1(c’) r r c = a A mod q c’ = a B mod q; 6: Decripta p-1(c’), calcula 7: k(p(k,r),sA) Decripta p(c), calcula x y k = (c’) mod q; k=c mod q 9: k(r, sB) 8: Extrai sA, valida p, 10: extrai r,sB, valida r e calcula s. calcula s. s = chave de sessão = sA XOR sB 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. 46 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 61.
    Aplicações de fatoraçãoe logaritmo discreto à assinatura digital • Assinaturas digitais parcialmente irrefutáveis: XXII: David Chaum 1: Escolhem primo q e base a primitiva em Zq 3: chave de verificação de assinatura s Agente A Agente B 5: mensagem assinada m, c. 2: Par de chaves: privada x, 6: Gera n. randômicos y, z; x pública s = a mod q; e calcula desafio Calcula verificador -1 7: B, v v = cysz mod q t = x mod (q-1); para verificação de c. 4: Gera mensagem m; 9: Verifica assinatura Calcula assinatura t 8: v' = v mod q x c = m mod q v' =? myaz mod q 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. 47 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 62.
    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. 48 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 63.
    Fatoração e logaritmodiscreto 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”. 49 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 64.
    Serviços de validaçãode selo temporal • Selo temporal assinado com chave pública XXIII: Selo temporal arbitrado 2: A, c Agente A Servidor S 4: ES, c’ 3: Gera selo temporal T; 1: Cria mensagem m; Calcula c = h(m) Assina c’ = DS(c,T) 5: Valida selo temporal ES(c’) = c,T h( ) = função hash: 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). 50 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 65.
    Aposta Encoberta (comprometimentode bits) • Protocolos para o problema de se comprovar uma escolha ou previsão, sem revelá-la com antecedência. XXIV: Comprometimento de bits 1: A e B escolhem algoritmo criptográfico 3: B,r Agente B Agente A 4: A,c 2: Gera n. randômico r 4: Escolhe bits m, chave k; e aguarda evento. Calcula c = k(r,m) 5: evento 7: decripta c verificando r,m = k(c). 6: k, m XXV: Comprometimento de bits usando hash 1: A e B escolhem função de hash h( ) Agente A Agente B 3: c, r 4: Aguarda evento. 2: Escolhe bits m; 7: Verifica r, m desvelada: 5: evento c = h(r,s,m). Gera n. randômicos r, s Calcula c = h(r,s,m) 6: r,s,m 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. 51 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 66.
    Cara ou Coroa • Protocolos que combinam bits randômicos de dois agentes para decidir entre interesses conflitantes. XXVI: Cara ou coroa usando hash 1: A e B escolhem função de hash h( ) Agente A 3: c Agente B 2: Gera n. randômico r 5: 1 ou 0 4:Adivinha se r é par ou Calcula c = h(r); ímpar. 6: Verifica r, 5 7: Verifica declaração do desvelando resultado. 6: r resultado: c =? h(r). XXVII: Cara ou coroa usando chaves comutativas 1: A e B escolhem algoritmo criptográfico comutativo 3: c1, c2 ou c2, c1 Agente A Agente B 5: EB(c), x 2: Gera n. randômicos: 4: Gera chaves EB, DB; r par e s ímpar; 6: t = DA(EB(c) ) = EB(r ou s) Escolhe x = par ou impar; Gera chaves EA, DA; Escolhe c = c1 ou c2 c1=EA(r) , c2=EA(s) 8: DB(t) 7: Desvela escolha em 4: 9: Valida escolha de B em 5 DB( t)= r ou s (=x ou ≠x) 11: Valida uso da chave DB 10: DB, DA 11: Valida uso da chave DA 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. 52 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 67.
    Escritura de Chaves(key escrow) • Protocolos que usam a caução de chaves privadas para produzir quebra de sigilo sob demanda judicial. XXVIII: Sistema criptográfico justo (Micali) Servidor de chaves S Fiel Depositário X Fiel Depositário Y 4: Se 3, ExA, ExB 4: Se 3, EyA, EyB 9: DxA 9: DyA 3: X valida ExA+DxA; ExB+DxB 3: Y valida EyA+DyA; EyB+DyB 5: S Valida DA, DB 10: DA=f (DxA,DyA) 6: EB 6: EA 2: ExA,DxA 2: EyB,DyB 2: EA 2: EB 8: Intimação: DA 2: EyA,DyA 2: ExB,DxB 7: Acolhe suspeita Juiz contra A 11: Juiz/Polícia escutam A Agente A Agente B 6: Se 5, A estabelce sessão com B 1: Gera EA, DA 1: Gera EB, DB Calcula ExA,DxA, EyA,DyA Calcula ExB,DxB, EyB,DyB Canal de Sigilo relativo 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. 53 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 68.
    Questões éticas sobreescrituração de chaves • Crítica de Bruce Schneier: Além dos planos do governo dos EUA de estabelecer a escrituração de chaves como padrão, há várias propostas comerciais em oferta no mercado. Quais são as vantagens da escrituração de chaves para o usuário? Bem, não há realmente nenhuma. O usuário não ganha nada da escrituração, que não poderia prover por si mesmo. A caução garante que a polí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 mandato judicial, embora encriptadas. Talvez a escrituração possa permitir o uso da criptografia em paí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 tem que confiar na segurança dos procedimentos das agências cartoriais, depositários fiéis de sua chave privada em caução, e na lisura das pessoas envolvidas. Tem que confiar que os agentes da caução não irão modificar suas regras de conduta, que o governo não mudará as leis sobre escrituração, e que as pessoas com poder para recuperar sua chave privada o farã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ão legal ou política. O próximo passo óbvio seria a proibição da criptografia sem caução. Essa seria possivelmente a única forma de garantir o retorno no investimento em um desses sistemas, 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 trabalham em 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 sistemas escriturados 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 pela conta do usuário, então certamente terá sido pelo usuário e nunca através dos agentes cartoriais? E se o banco de dados do cartório de chaves for roubado? E se este roubo for acobertado pelo governo durante algum tempo? Ainda mais perigoso é o uso das escrituras em espionagem para fins políticos. Se as chaves de assinatura forem também escrituradas, existem problemas adicionais. Seriam aceitos em corte documentos assinados com chave escriturada, como prova contra o proprietário da chave? A globalização da criptografia traria problemas adicionais. E se governos de outros países não aceitarem como de fé pública os agentes cartoriais americanos? As companias multinacionais 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 em outro país sua assinatura num contrato, alegando ter sido forjada por agentes cartoriais onde foi obrigado a escriturar sua chave? E os países que patrocinam espionagem industrial em benefício de suas empresas? Certamente não irão escriturar suas chaves em outros países. As comunicações digitais oferecem oportunidade bem mais ampla para atividades de monitoramento das ações, opiniões, compras, associações, etc., de cidadãos do que seria possível no mundo analógico. Tornar esta capacidade quase automática e não rastreável pode oferecer uma tentação a mais para estados com tendências não democráticas. 54 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 69.
    Provas com conhecimentozero (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). XXIX: Estrutura de protocolos 0-k iterativos 1: Escolhem tipo de problema P 3: Repetir n iterações: j de 1 até n Provador A Verificador B 3.2: compromete sj. 2: Gera ou obtem instância 3.3: Escolha randomica P e solução s de P entre verificar sj ou hj; 3.1: Gera instância Pj 3.4: comunica escolha 3.3 3.6: Verifica se randômica isomorfa a P; sj é solução de Pj ou se Usa hj:Pj→P e s para 3.5: revela sj ou descreve hj hj:Pj→P é isomorfismo calcular sj solução de Pj A convence B que possui s 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) 55 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 70.
    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. XXX: Estrutura de protocolos 0-k não iterativos 1: Divulga escolha de problema P e hash h( ) 3: c = comprometimento de s1,..,sn concatenados Provador A Verificador B 1: Gera ou obtem instância P 5: publica c, v = h(c) 7: Verifica se v = h(c), e e solução s de P. se escolha em 3 coincide 2: Repete n vezes: Gera com seqüência de bits de v instância Pj randômica 6: publica resultado 4 8: j de 1 a n: Verifica se sj é isomorfa a P e usa s e solução de Pj ou se hj:Pj→P para calcular sj hj:Pj→P é isomorfismo. solução de Pj. 4: Repete j de 1 a n: Se bit j de h(c)=0 A convence leitor de B disposto a revela sj, caso contrário descreve hj. executar 6 e 7 que detém s 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. 56 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 71.
    Exemplo de protocolo0-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. XXXI: protocolo iterativo 0-k com isomorfismo de grafo 1: A, B escolhem protocolo 3: Repetir n iterações: j de 1 até n Provador A Verificador B 3.2: compromete hj. 2: Gera ou obtém 3.3: Escolha randomica → isomorfismo h:G→G'. entre verificar sj ou hj; (A solução é h. A divulga 3.4: comunica escolha 3.3 G,G' para autenticar-se) 3.6: Verifica se 3.1: Gera isomorfismo → → sj:G→Gj ou hj:G'→G j é 3.5: revela hj ou descreve sj → randômico hj:G'→Gj; isomorfismo Descrição de sj= hj.h → A prova que conhece h:G→G' com probabilidade 1-2-n 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). 57 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 72.
    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. 58 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 73.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. 4. Técnicas Criptográficas Pedro Antonio Dourado de Rezende • Custo de hardware x Tempo médio estimados, para quebra por forç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 59 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 74.
    Critérios para escolhade 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 60 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 75.
    Primitivas de algoritmosassimé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): 1/2 Crivo Gaussiano- tempo heurístico ≈ e(1+c*n*ln(n)) (n<~360); 2 1/3 Crivo de Campo Numérico- t ≈ e(1.923+c*n*ln (n)) (n>~360). O problema da fatoração de inteiros é redutível ao do logaritmo discreto. 61 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 76.
    Inversão do produto de inteiros: fatoração - Algoritmos para Z mais eficientes hoje conhecidos (n = bits de p): 1/2 Crivo Quadrático (QS)- tempo ≈ e(1+c*n*ln(n)) (n<~360); 2 1/3 Crivo de Campo Numérico- t ≈ e(1.923+c*n*ln (n)) (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) ~5000 mips_ano, em 8 meses usando QS distribuído *(em (428 bits) 1600 máquinas de voluntários na Internet, via e-mail). 1997 154 dígitos Supõe-se fatorável pelo Crivo de Campo Numérico (NFS), (512 bits) em poucos meses com alguns milhões de US$ . Números de Fermat e de Mersenne: n Número Fermat 22 +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) 62 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 77.
    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). 63 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 78.
    Geração de primospara 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 64 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 79.
    Mecanismos e modospara 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 65 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 80.
    Modo ECB • Cada bloco mi da mensagem m=m1...mn é cifrado como uma mensagem, independente dos blocos anteriores e sucessores- ECB ... mi-1 mi mi+1 ... Encriptação Decriptação Algoritmo de cifra ek/dk ek/dk ek/dk Chave k ...ci-1 ci ci+1... Criptograma 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. 66 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 81.
    Modo CBC • O bloco do último criptograma é combinado com o próximo bloco da mensagem, antes de encriptado (após decriptado) - CBC ...mi-1 mi mi+1... VI ⊕ ⊕ ⊕ ⊕ = Função XOR bit a bit ek/dk ek/dk ek/dk VI = Vetor de Inicialização (Selo temporal, número tempo randômico ou serial, etc) ....ci-1 ci ci+1... 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. 67 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 82.
    Modo CFB • O bloco do último criptograma é (deslocado e) reencriptado, e o resultado combinado com o próximo bloco da mensagem CFB CFB com acumulador ...mi-1 mi mi+1... ← shift register ← VI ⊕ ⊕ ⊕ bloco ek/dk ek/dk ek/dk ek/dk último byte ki i-ésimo byte ....ci-1 ci ci+1... mi ⊕ ci 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. 68 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 83.
    Modo OFB • O bloco da última cifra do VI é (deslocado e) reencriptado, e o resultado combinado com o próximo bloco da mensagem- OFB OFB com acumulador ...mi-1 mi mi+1... ← shift register ← VI ⊕ ⊕ ⊕ bloco ek ek ek ek último subbloco ki i-ésimo subbloco ....ci-1 ci ci+1... mi ⊕ ci 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. 69 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 84.
    Construção de geradoresde 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↓ = seqüência tap Saída↓ VI = ( n bits de inicialização) VI → shift register → → shift register → bn ... ... b4 b3 b2 b1 bn ... ... b4 b3 b2 b1 ....... Função de feedback ⊕ (XOR=paridade) ) 70 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 85.
    LFSRs de períodomá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 n • p(x) é irredutível ^ [p(x) | x 2 -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: LFSR de 32 bits com período 232-1 VI → shift register → b32 b31 .... .... .... b9 b8 b7 b6 b5 b4 b3 b2 b1 ⊕ (paridade) 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; } 71 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 86.
    Polinômios primitivos módulo2 • 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) 72 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 87.
    Projeto e análisede 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. 73 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 88.
    Exemplo de composição para-e-segue alternada - Gerador alternate stop-and-go com 3 LFSRs - Controle de deslocamento LFSR 2 LFSR 1 Saída ⊕ φ = sinal de clock LFSR 3 • 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 k-1 k dos últimos k bits gerados, que terá então P(0) = 0.5+2 ε . • 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, ... 74 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 89.
    Escolha de algoritmoscriptográ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. 75 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 90.
    Criptografia na transmissãode dados • Possibilidades para implementação no modelo OSI de redes- Criptografia em redes OSI Aplicativo Aplicação Host Host Presentação End to end Sessão Sistema Transporte Subrede Nó Rede Ligação Link to link Elo Física Níveis de implementação Camadas • Comparações entre as alternativas: Transmissão Link to link End to end • Mensagem exposta no • Mensagem encriptada no Segurança nos computador de origem e nos nós computador de origem e nos nós computadores da rede. da rede. • Iniciada pelo host de origem, • Iniciada pelo processo origem, Papel do invisível ao usuário. onde o usuário aplica cifra. usuário • Host mantém algoritmo, usado • Usuário seleciona e mantém por todos. algoritmo caso a caso. • Cifra tudo ou nada, podendo ser • Usuário decide por mensagem, implementada em hardware. mais fácil por software. • Requer uma chave para cada par • Requer uma chave para cada par Questões de de nós, e uma implementação de usuários, e uma em cada nó. implementação em cada host.. implementação • Cabeçalhos de transmissão • Cabeçalhos de transmissão encriptados. expostos. • Provê autenticação de nós • Provê autenticação de usuários (controle de roteamento) (controle de acesso) 76 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 91.
    Criptografia para armazenamentode 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 • Mais fácil de implementar, usar • Arquivos temporários e de Benefícios e manter. trabalho ficam seguros no driver. • Transferência fácil de arquivos. • Ninguem esquece de encriptar • Diferentes senhas para cada • Perda da senha mestra Problemas arquivo. compromete todo o disco. para o usuário • Controle de acesso a arquivos • O acesso ao disco se torna mais geralmente se limita ao utilitário lento, pois qualquer acesso será de encriptação. cifrado. • Programas que usam arquivos • Extremamente sensível a erros Questões de temporários comprometem a de especificação de segurança. programação implementação • Implementação pode ser • Modos de encriptação usuais são vulnerável mapeando senhas inapropriados ou inseguros nesta iguais para chaves iguais. aplicação (usa-se ECB+OFB) • Interface com o usuário pode • Iteração imprevisiível do driver desestimular o uso de cifragem. cifrador com outros drivers de dispositivo. 77 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 92.
    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 • Facilidade de instalação, uso • Facilidade de implementação, Benefícios transparente e eficiente. configuração e atualização. • Integridade pode ser obtida com • São portáveis e de baixo custo lacre químico inviolável. (algoritmos de domínio público) • Informações sobre a origem do • O armazenamento de chaves e a Problemas algoritmo ou detalhes de integridade do código da cifra implementação são inacessíveis. não são seguros. para o usuário • O dispositivo é de aplicação • O gerenciamento de chaves com específica, requerendo upgrades essa opção é geralmente de com a troca de equipamentos. grande complexidade. 78 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 93.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. 5. Algoritmos Criptográficos – Parte 1 Pedro Antonio Dourado de Rezende • Cenário inicial da padronização em criptografia - • até 1970: Não existiam padrões, e praticamente nenhuma cultura ou pesquisa criptográfica fora da área militar. Pequenas companhias vendiam hardware de criptografia restrita para governos. • 1972 ....... National Institute of Standards and Technology iniciou um programa para proteção a computadores e comunicação de dados que previa o estabelecimento de um algoritmo criptográfico padrão que permitisse interoperabilidade nas comunicações. • 1973 ....... NIST abriu concurso para escolha de um algoritmo padrão que obedecesse os critérios de segurança divulgados. Nenhum dos candidatos 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 livre do algoritmo, após alteração feita pela NSA que encurtou o tamanho das chaves e após debates públicos sobre sua segurança. • 1976 ....... O algoritmo escolhido é adotado em 23/11/76 como padrão oficial nos EUA, renovável a cada 5 anos, com nome de Data Encription Standard (DES). O NIST publica várias documentos de especificação para implementação e uso do DES, com intenção de poder validar implementações em hardware. • 1981-92........ ANSI, ISO acolhem e NIST renova o padrão DES. 79 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 94.
    Descrição do algoritmopadrã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. DES Bloco da mensagem Chave k 64 bits Permutação IP subchave de rodada Ki 32 32 L0 K1 R0 ⊕ f L1 = R0 K2 R1 = L0 ⊕ f(R0,K1) ⊕ f L2 = R1 R2 = L1 ⊕ f(R1,K2) K16 ⊕ f L16 = R15 R16 = L15 ⊕ f(R15,K16) 32 32 Permutação IP-1 64 Bloco do Criptograma 80 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 95.
    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 DES: i-ésima rodada Ri-1 Buffer de chave Li 64 32 f E-box Ki 32 32 Expansão Rotação Rotação 48 ⊕ S-boxes 64 Substituição Compressão 32 48 P-box Permutação Li-1 ⊕ Buffer de chave Ri E-box: bits 1 2 3 4 5678 ....... Rotação: 36 Rodadas i =1 2,9,16 outras Direção 48 ..... Encripta 1 bit 1 bit 2 bits Esquerda 1 2 3 4 5 6 7 8 9 10111213 ...... Decripta 0 bit 1 bit 2 bits Direirta S-boxes bits 1 2 3 4 5 6 S1 S2 S3 S4 S5 S6 S7 S8 bits 1 2 3 4 81 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 96.
    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 F 0 E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7 1 0 F 7 C E 2 D 1 A 6 C B 9 5 3 8 2 4 1 D 8 C 6 2 B F C 9 7 3 A 5 0 3 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 hexadecimais S2 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 F 1 8 E 6 B 3 4 9 7 2 D C 0 5 A 1 3 D 4 7 F 2 8 E C 0 1 A 6 9 B 5 2 0 E 7 B A 4 D 1 5 8 C 6 9 3 2 F 3 D 8 A 1 3 F 4 2 B 6 7 C 0 5 E 9 ↓ S-box ...↑ Bits de saída ↑... valores hexadecimais S3 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 A 0 9 E 6 3 F 5 1 D C 7 B 4 2 8 1 D 7 0 9 3 4 6 A 2 8 5 E C B F 1 2 D 6 4 9 8 F 3 0 B 1 2 C 5 A E 7 3 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 F 0 7 D E 3 0 6 9 A 1 2 8 5 B C 4 F 1 D 8 B 5 6 F 0 3 4 7 2 C 1 A E 9 2 A 6 9 0 C B 7 D F 1 3 E 5 2 8 4 3 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 F 0 2 C 4 1 7 A B 6 8 5 3 F D 0 E 9 1 E B 2 C 4 7 D 1 5 0 F A 3 9 8 6 2 4 2 1 B A D 7 8 F 9 C 5 6 3 0 E 3 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 F 0 C 1 A F 9 2 6 8 0 D 3 4 E 7 5 B 1 A F 4 2 7 C 9 5 6 1 D E 0 B 3 8 2 9 E F 5 2 8 C 3 7 0 4 A 1 D B 6 3 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 F 0 4 B 2 E F 0 8 D 3 C 9 7 5 A 6 1 1 D 0 B 7 4 9 1 A E 3 5 C 2 F 8 6 2 1 4 B D C 3 7 E A F 6 8 0 5 9 2 3 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 F 0 D 2 8 4 6 F B 1 A 9 3 E 5 0 C 7 1 1 F D 8 A 3 7 4 C 5 6 B 0 E 9 2 2 7 B 4 1 9 C E 2 0 6 A D F 3 5 8 3 2 1 E 7 4 A 8 D F C 9 0 3 5 6 B 82 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 97.
    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 hexadecimal k= 0101 0101 FEFE FEFE k= FEFE FEFE 0101 0101 k= 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. 83 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 98.
    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. Exemplo de característica do DES ∆L ∆in = 0x60000000 Ki ∆out ∆in ⊕ f 0x60000000 ∆L XOR ∆out Probabilidade( ∆out=00808200|∆in=0x60000000 ) = 84 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 99.
    Ataques ao DESpor 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. Maior tendência do DES: segundo bit da caixa S5 Ri-1 Li b17 in f E-box Expansão Ki ⊕ b26 key S-boxes b26 Substituição Probabilidade de b17 b18 b19 b20 P-box (b26 = b3 ⊕ b8 ⊕ b14 ⊕ b25 out) Permutação = 0.5 - 5/16 Li-1 b3 b8 b14 b25 out ⊕ Ri 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) 85 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 100.
    Técnicas de robustecimentodo 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: Cifra Triplo DES Encripta DES = algoritmo em DES DES -1 DES modo de encriptação Chave kk’k’’ mensagem k k' k'' criptograma DES-1 DES DES-1 DES-1 = algoritmo em modo de decriptação Decripta • 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. 86 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 101.
    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. NewDES - rodadas 1 e 2 B0 B1 B2 B3 ←Bytes do bloco→ B4 B5 B6 B7 K0 K1 ⊕ f ⊕ Rodada K2 ⊕ f ⊕ 1 ⊕ f ⊕ K3 ⊕ f ⊕ K4 ⊕ f ⊕ Rodada ⊕ f ⊕ 2 K5 ⊕ f ⊕ K6 ⊕ f ⊕ • 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) 87 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 102.
    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. 88 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 103.
    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 W0 W1 ←Palavras do bloco→ W2 W3 ki,1 ∗ + ki,3 ⊕ ki,2 + ∗ ki,4 ⊕ ki,5 ∗ + Rodada i = 1..8 + ∗ ki,6 ⊕ ⊕ ⊕ ⊕ ∗ - Multiplicação módulo 216+1 + - Soma módulo 216 ⊕ - XOR bit a bit k9,1 ∗ ∗ k9,4 Transformação de saída k9,2 + + k9,3 Y0 Y1 ←Palavras do criptograma→ Y2 Y3 Subchaves de Encriptação Subchaves de Decriptação ChaveK 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 89 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 104.
    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: idea@ascom.ch • 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. 90 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 105.
    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. GOST - rodada i Li-1 Ri-1 Tabela de subchaves + Substituição Substituição: 8 S-boxes 4x4 paralelas, com permutações não fornecidas na especificação Rotação<<11 ⊕ + Soma módulo 232 Li Ri 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. 91 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 106.
    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. Blowfish Chave k Mensagem Array de subchaves Ki 64 bits 32 32 K1 ⊕ f ⊕ K2 ⊕ f ⊕ K16 ⊕ f ⊕ K17 ⊕ ⊕ K18 Criptograma f: 8 S-box 1 32 + Soma módulo 232 + S-box 2 8 32 ⊕ 32 bits S-box 3 + 8 32 32 bits S-box 4 8 32 92 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 107.
    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). Inicialização VI = 0 VI = π XOR k k k k... Subchaves | S-boxes Blowfish -Atribuição com pós incremento • 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 93 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 108.
    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 Encriptação RC5 2/r/b: Decriptação RC5 2/r/b: A = A+S0 for i = r downto 1 do begin B = B+SI B = ((B−S2i+1)>>>A)⊕A for i = 1 to r do begin A = ((A−S2i )>>>B)⊕B A = ((A⊕B)<<<B)+S2i end B = ((A⊕B)<<<A)+S2i+1 B = B+SI end A = A+S0 {>>>" = shift circular p/ direita} {"<<<" = shift circular p/ esquerda} • 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: Carga: Mescla da chave: {P=0Xb7e15163} S0 = P {Q=0x9e3779b9} do n times for i = 1 to 2*(r+1)−1 do A = Si = (Si +A+B) >>>3 Si = (Si−1+Q) mod 232 B = Lj = (Lj+A+B)>>>(A+B) i=j=0 i = (i+1) mod 2*(r+1) A=B=0 j = (j+1) mod m n = max ( 2*(r+1), m ) 94 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 109.
    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) 95 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 110.
    Critérios de projetopara 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) ] 96 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 111.
    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ção Algoritmo 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 97 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 112.
    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. Geração da seqüência de pad: k Inicialização de S com a chave semente concatenada = k1...k255: repeat n = (n+1) mod 256 for n=0 to 255 do Sn = n m = (m+ Sn) mod 256 m=0 Troca (Sm ,Sn) for n=0 to 255 do t = (Sm +Sn) mod 256 m = (m+Sn +k n) mod 256 k= St Troca (Sm ,Sn) • 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. 98 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 113.
    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: 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. • 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. 99 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 114.
    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. A5 - Controle de deslocamento LFSR 2 ⊕ LFSR 1 ⊕ ⊕ Saída - Função ⊕ maioria LFSR 3 ⊕ • 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. 100 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 115.
    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. 101 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 116.
    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. 102 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 117.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. 5. Algoritmos Criptográficos – Parte 2 Pedro 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, n funções de hash h:M →{0,1} 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 de colisã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" ou té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 prepara outra versão que lhe seja vantajosa e prejudicial à outra parte. Testa o hash de variações de ambas versões, contendo combinações de espaços adicionais (ASCII 32) onde há quebras de linha, até conseguir um par m (contrato), m' (fraude) que gerem mesmo hash. Assinam o hash de m e depois, em juízo, o fraudador protesta m'. 103 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 118.
    Construção de funçõesde hash • Tamanho do hash - n A entropia n da imagem da função de hash h:M →{0,1} 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. Hash por encadeamento de compressão ...mi-1 mi mi+1 ←blocos da mensagem N Função de Função de Função de n compressão compressão compressão hi-2 hi-1 hi hi+1 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. 104 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 119.
    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 ↓Bloco de compressão mi ←512 bits→ → h(m1... ms) = ABCDs mi,1 mi,2 mi,3 mi,4 mi,5 mi,6 mi,7mi,5 mi,8 mi,9 A + A B Rodada Rodada Rodada Rodada + B C 0 1 2 3 + C D + D i-1 i 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) 105 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 120.
    Operações do MD5- Laço interno fr da rodada r Passos j=1,..,16 com mi,1 ..................... mi,b(j) pós-rotação de 1 word A ti,j B C Função não- + + + + <<<s linear gr D ti,j = trunc(232*abs(sin(j+16*r)) • 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. 106 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 121.
    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: Geração dos subblocos para compressão for j = 1 to 16 wi,j = mi,j for j = 1 to 16 wi,j = (wi,j-3⊕wi,j-8⊕wi,j-14⊕wi,j-16)<<<1 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 Passos j=1,..,20 com wi,1 ........................ wi,j+20r ...................wi,80 pós-rotação de 1word A tr B Função não- C + + + + + linear gr D <<<30 E <<<5 tr = trunc(232*cr1/2/4); c0=2; c1=3; c2=5; c3=10; 107 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 122.
    Outros hashes porcompressã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. 108 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 123.
    Hash usando algoritmospara 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. Esquema Davies-Meyer mi chave encriptação ⊕ hi-1 hi 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). 109 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 124.
    Esquemas seguros deencadeamento hi-1 hi-1 chave chave (*) encriptação ⊕ encriptação ⊕ ⊕ mi hi mi hi hi-1 hi-1 chave chave mi mi ⊕ encriptação ⊕ ⊕ encriptação ⊕ ⊕ hi hi • 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). Esquema Davies-Meyer modificado mi 128 bits hi-1 chave IDEA hi encriptação 64 bits 64 bits 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. 110 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 125.
    Esquema Davies-Meyer em tandem ou lado a lado - Estes esquemas têm se mostrado seguros para construção de hash que duplica o tamanho do bloco, com algoritmos criptográficos cuja chave tenha o dobro do tamanho do bloco (i.e., IDEA). Tandem Lado a lado h(m1...ms) = hg hi-1 hi hi-1 encriptação hi ⊕ encriptação ⊕ chave chave mi mi gi-1 chave chave gi gi-1 gi encriptação ⊕ encriptação ⊕ • MDC-2 e MDC-4 (Merley-Schilling, IBM, 1988) - Esquemas patenteados para construção de hash que duplicam o tamanho do bloco, sem restrições ao algoritmo criptográfico simétrico. Estão sendo considerados para padrão ANSI, ISO e avaliados pelo RIPE. MDC-2 hi-1 chave hi encriptação mi h(m1...ms) = hg encriptação gi gi-1 chave 111 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 126.
    MDC-4 h(m1...ms) = hg hi-1 encriptação chave hi encriptação chave mi encriptação gi gi-1 chave chave encriptação • 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 112 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 127.
    Códigos de autenticaçãode 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. 113 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 128.
    Algoritmos criptográficos dechave 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. 114 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 129.
    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. Geração de parâmetros e par de Cifragem (começa com eA pública) chaves do sistema: {t = tamanho} c = m e mod n {encripta bloco} i i p = geraprimo(rand(t)) q = geraprimo(rand(t)) mi = cid mod n {decripta bloco} φ(n) = (p-1)*(q-1) {secretos} Assinatura (começa com dA privada) n = p*q; e= rand(t) x = h(m)d mod n {assina hash} e = e / mdc(e,φ) [>1] eA = (e,n) d = euclext(e,φ,1) dA = (d,n) h(m) = xe mod n ? {verifica hash} d = e -1 mod φ : A segunda chave de um par, inversa da primeira no anel Zφ(n), é calculada pelo algoritmo de Euclides extendido: 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 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. 115 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 130.
    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 1/3 2 melhor algoritmo de complexidade exponencial, O(ec+x ln (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. 116 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 131.
    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. Caso 1: Vazamento de mensagem 1: RSA, mesmo par de chaves de cifra e assinatura Agente A: k=(e,d) 2: c Agente I 2: Recebe m cifrada... 2: Gera n. randômico r < n ; 3: y e c = me mod n Calcula x = r mod n 4: Assina nova "mensagem" y Calcula y = xc mod n 5: u u = yd mod n Solicita assinatura de y, 6: Calcula t = r-1mod n x = re mod n ⇔ r = xd mod n Desvela m = tu mod n tu mod n = r-1ydmod n = r-1xdcdmod n = r-1rcdmod n = cdmod n = m Caso 2: Autenticação fraudulenta 1: RSA, para serviço de autenticação 2: A, e Agente B Cartório A: k=(e,d) 3: Gera mensagem expúria M; 4: m Gera n. randômico r < n; 5: Reconhece firma de m e Calcula x = r mod n u = md mod n 6: u Calcula m = xM mod n Solicita autenticação de m, d mod n = rdmd mod n 7: Calcula t = r mod n -1 (rm) Autenticação de M = tu mod n Em serviços de autenticação, a assinatura deve ser feita sobre o hash. 117 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 132.
    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. Vazamento de mensagens em módulo comum 1: RSA, mesmo módulo para pares de chaves na cifra Agentes A, B 2: A, ca Agente I 2,3: A e B recebem a mesma 3: B, cb 4: Usa Euclides extendido para calcular mensagem m cifrada... x , y onde xeA + yeB = 1 e ca = m A mod n 5: Desvela m: Se x<0 e cb = m B mod n então m = (ca-1)-x eBy mod n -1 -y Supõe mdc(eA,eB)=1 senão m = (cb ) eAx mod n • 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. 118 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 133.
    Fraude de assinaturaem mensagem encriptada 1: RSA, usado para cifra e depois assinatura Agente A: k=(e,d) 2: B, eB Agente B 5: Verifica e decripta u; 2: m é cifrada para B... Gera mensagem expúria M; 4: u c = meB mod nB Calcula x < nB tal que 3: e o criptograma assinado por A Mx = m mod nB; u = cdA mod nA 6: B,eB 6: Publica novo eB ←xeB 7: Acusa A de ter lhe enviado M (meB mod nB)dA mod nA = (MxeB mod nB)dA mod nA = u 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. 119 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 134.
    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). Geração de parâmetros: Encriptação: p = gerapr3mod4(rand( )) c = m2 mod n q = gerapr3mod4(rand( )) n = p*q {público} Decriptação: -1 r = q*(q mod p) t = c(p+1)/4 mod p s = p*(p-1 mod q) eA= 2 {k pública} u = c(q+1)/4 mod q dA = (r,s) {k privada} m =((±r)*t +(±s)*u) mod n • 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. 120 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 135.
    ElGamal Algoritmo assimétrico cuja segurança é derivada da dificuldade de se extrair logaritmos discretos em corpos finitos. (T. ElGamal, 1984). Geração de parâmetros, chaves Assinatura: assimétricas e chave de sessão: b = euclext(k,p−1,m−x*a) p = geraprimo(rand( )) {(a,b) = assinatura de m } g = rand(|p|) dA= x= rand(|p|) {chave privada} (ya*ab) mod p =? gm mod p y = gx mod p Cifragem: eA= (p,g,y) {chave pública} b = (yk*m) mod p km = rand(|p|) {(a,b) = criptograma de m } k = km/mdc(km,p−1) {ch. sessão} m = (b*a-x) mod p a = gk mod p • 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). 121 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 136.
    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. 122 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 137.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. 6. Implementações – Parte 1 Pedro 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 o advento das redes globais e ambientes de computação distribuída. • Padrões interoperáveis: Os critérios para escolha de algoritmos criptográficos estão hoje relativamente estabilizados pela prática. Há um senso de urgência para convergência na escolha de protocolos que integrem vários serviços básicos, e mecanismos de implementação independentes de plataforma ou arquitetura. • Limitações: Sistemas legados cuja concepção não contemplava segurança e/ou interoperabilidade, legislação local e internacional omissa ou desatualizada e interesses paroquiais, são os maiores entraves ao avanço do uso da criptografia na informática. • Atualizações: No cenário da computação global e distribuída de hoje, a criptologia assimétrica é parte fundamental. Como os limites teóricos desta tecnologia ainda não estão bem delineados, suas implementações precisam de constantes reavaliações de risco. • Desafios: Cada nova aplicação ou tecnologia que exija proteção aos dados que trata, acumula desafios de complexidade crescente à criptologia, em especial os sistemas de computação não assistida, viabilizados pela miniaturização eletrônica. 123 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 138.
    Implementação de serviçosde 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 Freq. Velocidade Ciclos p/ Tecnologia/ modulo Companhia clock (bloco 512) bloco 512 transístores máximo Alpha 25 MHz 13 Kbits/seg 0.98 M 2.0µ / 180K 1024 bits Technology 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) 124 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 139.
    Implementação de sistemasde 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. 125 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 140.
    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 Encontrar n tal que an mod p = b nP = Q • Chaves públicas com nível de segurança equivalentes - Tempo p/ recuperar Fatoração em Zp: Logaritmo em chave privada Number field sieve E(Zp): Pollard - Rho 3x108 MIPS - ano ~960 bits 155 bits 3x1018 MIPS - ano ~1820 bits 210 bits 3x1028 MIPS - ano ~2500 bits 239 bits 126 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 141.
    Futuro da criptografiaassimé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. 127 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 142.
    Implementação de serviçosde 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. 128 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 143.
    Digital Signature Algorithm Algoritmo patenteado e licenciado pelo NIST para uso irrestrito. Geração de parâmetros, chaves Assinatura de m = (r,s): assimétricas e chave de sessão: repeat q = geraprDSA (rand(160)) k = rand( ) mod q {ch. sessão} repeat r = (gk mod p) mod q p=geraprDSA(rand(512+64t)) s = (k-1*(SHA(m)+xr)) mod q until q | (p-1) until s ≠ 0 repeat h = rand(512+64t) mod p Verificação: (r,s) assinatura de m g = h(p-1)/q mod p u = (s-1*SHA(m)) mod q until g ≠1 x = rand(|q|) {chave privada} v = (s-1*r) mod q x y = g mod p r =? (gu*gv mod p) mod q eA= (p,q,g,y) {chave pública} • 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. 129 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 144.
    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). Geração de parâmetros, chaves Assinatura de m = (r,s): assimétricas e chave de sessão: repeat p=geraprimo(rand( )) k = rand( ) mod q {ch. sessão} repeat until mdc(k,q) = 1 q = rand( ) r = gk mod p until q | (p-1) t = r mod q repeat g = rand( ) mod p equação de assinatura until gq mod p = 1 ak = b + cx mod q x = rand( ) mod q{chave privada} equação de verificação: y = gx mod p eA= (p,q,g,y) {chave pública} ra =? gbyc mod q • 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*ym 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 130 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 145.
    Esquema de autenticaçãode 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). Feige-Fiat-Shamir (Canal seguro) 1: p=geraprimo(rand( )) q=geraprimo(rand( )) 2: Gera e cadastra EA= v n = pq; fornece DA = s onde s = v-1/2 mod n Servidor de chaves S 3: B solicita EA= v 4: B desafia A a provar que possui DA Repetem k iterações: j de 1 até k Agente A Agente B 4.1: Gera nº randomico rj; 4.1: xj, n 4.3: Gera bit randomico bj 2 Calcula xj = rj mod n 4.5: Se bj = 1 então 4.5: Se bj = 1 então 4.4: bj 2 verifica xj =? tj *v mod n calcula tj = rj*s mod n senão xj =? tj2 mod n senão tj = rj 4.6: tj • 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. 131 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 146.
    Outros esquemas deautenticaçã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. 132 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 147.
    Padrões para assinaturadigital 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) 133 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 148.
    Principais padrões deprotocolos criptográficos • Quadro resumo - Tópico ISO/IEC JTC 1 ISO TC68 ANSI U.S. Federal Information Instituições Government Technology Financeiras Modos de operação ISO/IEC 8372 X3.106 FIPS PUB 81 ISO/IEC 10116 Message ISO/IEC 9797 ISO 8730 (DSA) X9.9 FIPS PUB Auth.Code (Geral) ISO 8731 (RSA) 113 Mess. Auth. Code ISO 9807 X9.19 (Bancos) Algoritmos de ISO/IEC 9594.8 X9.30.1 (DSA) FIPS PUB tba assinatura digital ISO/IEC 9796 X9.31.1 (RSA) (DSA) Funções de hash ISO/IEC 10118 X9.30.2 (SHA) FIPS PUB X9.31.2 (MDC) 180 (SHA) Autenticação de ISO/IEC 9594.8 ISO 11131 X9.26 agentes ISO/IEC 9796 Gerência de chaves ISO/IEC 11770.2 ISO 8732 X9.17 FIPS PUB (simétrico) ISO 11568 X9.24 171 Gerência de chaves ISO 11649 X9.28 (sim. multi-centro) Gerência de chaves ISO/IEC 9594.8 ISO 11166 X9.30.3 (assimétrico) ISO/IEC 11770.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. 134 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 149.
    Padrões para certificadosdigitais • 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 para certificados assinados pelo emissor) Identificador do algoritmo de assinatura 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 135 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 150.
    Mecanismos para usode 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. 136 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 151.
    Autoridades Certificadoras naInternet • 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. 137 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 152.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. 6. Implementações – Parte 2 Pedro 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ágeis na implementação de serviços de segurança externa. Esquemas de autenticação baseados em desafio, em sequenciadores ou em sincronização que geram senhas descartáveis para neutralizar ataques de dicionário, escuta ou replay podem ser atacados com engenharia reversa, se implementados 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 com encriptação interna (ex.: IBM DS5002FP), onde bytes trafegam no barramento e são carregados encriptados em RAM e EPROM, são passíveis de ataque, nos quais o material de chave armazenado ou gerado pode ser extraído. Ataques mais comuns a tokens de acesso livre são: 1. Surtos de clock..........usados para introduzir instruções errôneas nos registradores que podem causar o extravazamento em loops de leitura. 2. Surtos de potência ....podem causar comportamento anômalo em geradores randômicos de uso criptográfico. 3. Probing.......................violação do lacre eletrostático possibilita avaria nas células de trava da EPROM, para leitura do material da chave. 4. Dicionário de código.ataque no barramento à criptografia interna. 138 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 153.
    Riscos à segurançaexterna • 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) 139 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 154.
    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 : Campos do cabeçalho falsificáveis em ataques ao IP 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 • TCP - Protocolo de transporte orientado a conexão da internet, autentica por handshake simples, falsificável se sua implementação for conhecida. : Campos de cabeçalho falsificáveis em ataques ao TCP 0 1 2 3 4 5 6 7 31 Porta de origem Porta de destino Número sequencial (SN) Reconhecimento de SN (Acknowlegment) Offset U A P R S F Janela dados R C S S Y I Checksum Ponteiro urgente Opções 140 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 155.
    Ataque de númerosequencial ao TCP XXXII: Handshake para abertura de sessão TCP 0: B deseja serviço oferecido via TCP por A 2: SYN:SNB Endereço IP = A Endereço IP = B 4: SYN:SNA, ACK:SNB 3: Gera n• sequencial SNA. 1: Gera n• sequencial SNB; 6: Se 5 então ACK:SNA 5: Se 4:ACK = SNB 7: Se 6:ACK = SNA então reconhece B Se 7 então sessão aberta em full duplex então reconhece A Embuste em XXXII para falsificar handshake B recebe ataque de sobrecarga de X e pacotes TCP espúrios de A B 4: SYN:SNA+, ACK:SN 3.j: SYN:SN+, j=1,2,3... 5:??? A oferece a B serviço de Agente em X finge estar em acesso restrito B fazendo spoof de IP 3: Gera n• sequencial SNA+ 1: Gera n• sequencial SN 7: Se 6:ACK = SNA+ 5: Estima SNA+ a partir de SNA então reconhece B 2: Spoof B, SYN:SN e tempo decorrido entre 0 e 5 A 6: ACK:SNA+ X Se 7 então sessão aberta em half duplex 0: X abre sessão inóqua com A ou usa sniffer para obter SNA 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. 141 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 156.
    Análise de riscona internet Dificuldade do Ataque Alta 2.3.3 2.1.3 2.1.1 2.3.2 2.1.2 1.1.3 Média 2.2.2 1.1.1 2.2.1 1.2.2 2.3.1 1.1.2 1.3.1 1.3.2 1.2.3 Baixa 1.2.1 1.2.4 Extensão do dano Mínimo Pequeno Sério Muito sério Desastroso 1- Ataques internos 2- Ataques externos 1.1- Acesso indevido 2.1- Acesso indevido 1.1.1- Falha de autenticação 2.1.1- Ataque de número sequencial TCP 1.1.2- NFS 2.1.2- Source Routing, RIP, ICMP 1.1.3- X-windows 2.1.3- Sequestro de sessão TCP 1.2- Sabotagem 2.2- Sabotagem 1.2.1- Sobrecarga 2.2.1- Sobrecarga 1.2.2- Source Routing, RIP, ICMP 2.2.2- Fragmentação 1.2.3- Depredação física 2.3- Vazamento 1.2.4- Virus 2.3.1- Sniffers 1.3- Vazamento 2.3.2- Troianos 1.3.1- Sniffers 2.3.3- Exploits 1.3.2- Engenharia Social Fonte: Othmar Kyas - Internet Security, 1997 142 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 157.
    Controles de segurançapara 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. 143 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 158.
    Infra-estrutura para controlede 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. Perímetro Controle de tráfego internet Rede interna • 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: Camada de Aplicativo Camada de Presentação Camada de Sessão G Camada de Transporte Application gateway Camada de Rede ou Bastion host Screening router Camada de Enlace Camada Física 144 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 159.
    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. 145 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 160.
    Operações de filtragem • Modelo básico de filtro de pacotes - Subrede interna Screening Router IP:x.y.w.z IP:a.b.c.d out in internet in out Lista de regras p/ Lista de regras p/ interface externa interface interna • Funcionamento de um filtro típico - Obtém próximo pacote Seleciona lista aplicável Aplica próxima regra Roteia Aciona log nos cabeçalhos IP, TCP Pacote ou alarme S S N Regra permite Caso de log ou pacote? alarme? N S Descarta Regra bloqueia pacote? Pacote N N Última regra S da lista? 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 146 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 161.
    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. 147 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 162.
    Exemplos de configuraçãode 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 * 0101 0101 1010 1010 Cliente Servidor 4444 4444 TCP TCP IP IP internet 198.2.3.4 200.5.8.2 Subrede interna 148 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 163.
    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 * 0101 0101 0101 0101 0101 1010 1010 1010 1010 1010 Cliente Servidor Outros 4444 4444 ???? ???? serviços TCP TCP IP IP internet 198.2.3.4 200.5.8.2 Subrede interna • 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 e0 filtra entrada Spoof IP: Subrede 200.5.8.0 .2 Orig 200.5.8.3 Dest 200.5.8.2 internet 198.2.3.4 e0 e1 .3 149 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 164.
    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 Subrede 200.5.8.0 .2 Spoof IP: Orig 200.5.9.3 Dest 200.5.8.2 e1 internet 198.2.3.4 e0 e2 Subrede 200.5.9.0 .3 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. 150 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 165.
    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. 3-homed host Função opcional de roteamento Placa Placa Placa de rede de rede de rede ou ou ou modem modem modem Rede 1 Rede 2 Rede 3 • 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. 151 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 166.
    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). 152 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 167.
    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. 153 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 168.
    Algumas topologias parasegurança • Gateway host com triagem - Servidor Roteador G ← de com triagem autenticação internet Tráfego de entrada da internet Rede intern • Sub-rede com triagem - Servidores Tráfego de entrada para G rede interna FTP Servidor de autenticação internet Roteador com triagem Web Rede intern Gopher • Belt and suspenders - Servidores Tráfego de Proxies entrada para DNS rede interna FTP Gate de e-mail internet G Roteador autenticação com triagem Web Rede intern Gopher 154 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 169.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. 7. Exemplos de Aplicações Pedro Antonio Dourado de Rezende • Histórico do e-mail - {O PGP foi o primeiro protocolo criptográfico concebido para uso na internet que fazia uso de chaves públicas. Implementado e distribuido pela internet por Phil Zimmerman em 1986, implementa o RSA e o IDEA para negociação de envelopes digitais na trasmissão de e-mail autenticado e encriptado. Devido ao uso de criptograifa robusta e infração de patentes, o autor teve problemas com a justiça americana, tendo posteriorment negociado acordos com as partes envolvidas e licenciado sua distribuição • Histórico do www - O NCSA MOSAIC foi o primeiro navegador web a incorporar ganchos para adição de utilitários de segurança, tais como o PGP e as implementações de clientes SMTP com suporte à especificação PEM. Em 1994, com o impulso do comércio eletrônico na Web, a consolidação das tentativas de se incorporar sigilo e autenticação aos protocolos nela empregados foi iniciada. Já existem cerca de 50 esquemas de aplicação criptográfica para o comércio eletrônico implementados ou propostos na literatura, em 1998. • S-HTTP (Secure HTTP, 1994) Desenvolvido e proposto pela CommerceNet Consortium, usa criptografia de chave pública para sessões http de forma comparável às do padrão PEM, sendo compatível com diversos gerenciadores de chave. 155 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 170.
    SSL (Secure Sockets Layer, 1994) - Proposto e implementado pela Netscape em seus browsers e servidores Web, sob licença da RSADSI, oferece autenticação de servidor e opcionalmente do cliente com criptografia para serviços genéricos, protegendo toda a pilha TCP/IP para os protocolos de aplicações. Sua execução verifica certificados de chave pública e negocia a escolha de envelope 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 e semelhante ao SSL, difere deste na implementação de um dos mecanismos de autenticaçã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ércio eletrônico, foi concebido com o objetivo de se tornar padrão de fato no suporte da indústia financeira ao comérico eletrônico integrado. Desenvolvido e proposto em conjunto pela IBM, Visa e MasterCard, faz uso extensivo de certificados X509, sendo um protocolo complexo de 28 passos que procura oferecer garantias adicionais ao consumidor, geralmente o agente mais exposto a vulnerabilidades nos esquemas criptográficos empregados no comércio eletrônico. Suas vulnerabilidades se concentram em falsificações de certificados. 156 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 171.
    Descrição resumida doSET • Participantes devem possuir certificados X.509 2: Busca anúncio na Web 2: Anuncia na Web Agente A Comerciante C 0: Obtem cartão V . 0: Abre conta em V 1: Cadastra-se em S 1: Cadastra-se em S Autoridade 1: V Cadastra-se Instituição Certificadora S em S financeira V 1: registra A,M,V 1: cadastra A, C 2: distribui certificados • Consumidor valida certificados e submete pedido a C 3: DS(A,EA) → ← 4: EA(DS(C,EC)) 5: EC(m,p,EV(vA)) → Agente A encomenda m a preço p, Comerciante C pagamento por cartão vA Autoridade Instituição Certificadora S financeira V 157 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 172.
    SET (continuação) • Comerciante não tem acesso a número de cartão do cliente 8: EA(?,m,p,EV(vA),C) Agente A Comerciante C 6: EV(A,p,EV(vA),C,DC(vC)) prepara fatura e confirma cliente VAN Banco B 7: V valida Instituição transação e verifica financeira V $$$ crédito em conta vA • Administradora só tem acesso ao valor da fatura 9: DA(m,p,EV(vA),C) → ←12: DC(A,m,p,C,r) Agente A Comerciante C assina o pedido e 10: EV(DC(m),p,EV(vA),vB) submete fatura, recebe comprovante recebe comprovante VAN e assina recibo Banco B 11: B transfere p de vA Instituição transfere fundos $ $ $ $ para vC e emite recibo r financeira V r = DB(A,C,DC(m),p,EB(vA,vB)) 158 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 173.
    Ferramentas e utilitáriosde 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/xinetd Um 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. 159 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 174.
    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 diversas ferramentas 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. 160 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 175.
    CopyMarket.com Título: Criptografia e Segurança na Informática Todos os direitos reservados. Autor: Pedro Antonio Dourado de Rezende Nenhuma parte desta publicação poderá ser Editora: CopyMarket.com, 2000 reproduzida sem a autorização da Editora. Apêndices Pedro Antonio Dourado de Rezende Tradução de termos técnicos alçapão ............................................................ trapdoor arbitragem ..................................................... arbitration ataque de espelhamento ................................. man-in-the-middle (interception) atack ataque de número sequencial......................... number sequence attack bloqueio ou sobrecarga intencional............... denial of service, resource exaustion chave .............................................................. key cifra ................................................................. cipher desvio de controle............................................ control bypassing, hacking e-mail em massa e não solicitado................... spam embuste ou trapaça......................................... scam embusteiro ..................................................... rougue escuta ativa ..................................................... interception escuta passiva .................................................. scan, snif falha ................................................................. breach forja de identificação ...................................... spoof fraude .............................................................. fraud, integrity violation gancho .............................................................. backdoor grampo ............................................................ eavesdrop, wiretap invasão ou violação de autorização ............... invasion, authorization violation mediação .......................................................... adjudication objeto ou rótulo identificador........................ token penetração ....................................................... intrusion personificação ................................................ masquerade, impersonation; reprise ............................................................ replay repudiação ....................................................... repudiation troiano.............................................................. trojan horse varredura......................................................... media scavenging vazamento ....................................................... leakage, disclosure 161 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 176.
    Tabela para comparaçãode grandes números Segurança computacional é um jogo de probabilidades. Para se ter uma noção comparativa acerca dos graus de possibilidade associados às faixas de probabilidade com que lida a criptografia, esta tabela de estimativas de ocorrências de eventos do mundo físico em que vivemos pode ser útil. Fenômeno Físico Número Probabilidade 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) anos Tempo até que o sol se transforme em uma supernova: 109 (~230) anos Idade estimada do planeta terra: 109 (~230) anos Idade estimada do universo: 1010 (~234) anos Nú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 aberto Tempo estimado até que estrelas de pouca massa esfriem 1014 (~247) anos Tempo estimado até que planetas se destaquem das estrelas 1015 (~250) anos Tempo estimado até que estrelas se destaquem das galáxias 1019 (~264) anos Tempo de decaimento de orbitas por irradiação gravitacional 1020 (~267) anos Tempo de decaimento de buracos negros pelo processo Hawking 1064 (~2213) anos Tempo até que toda a matéria se torne líquida à temperatura zero 1064 (~2213) anos 26 Tempo até que toda a matéria decaia em ferro 1010 anos 76 Tempo até que toda a matéria se colapse em buracos negros 1010 anos Bruce Schneier, 1996 162 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 177.
    Exemplos de cálculosdo 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: 53 Estimativa 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.56 Caso seja escolhido o primo q = 2000000983 (representação decimal), sua representação interna binária em 4 bytes (32 bits) será: 01110111 00110101 10010111 11010111 • Execução do protocolo de Diffie & Hellman 1- Escolha da aritmética modular nú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 criptogramas nº randômico x gerado por A: 20589 nº randômico y gerado por B: 17391 Criptograma 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ão Chave k = cAy mod q = 2609717391 mod 32693 = 18574 (bits 01001000 10001110) Chave k = cBx mod q = 1937020589 mod 32693 = 18574 (bits 01001000 10001110) 163 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 178.
    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) 0 2 5 637 mod 7 = 6 (2 + 2 + 2 ) 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ção modular é proporcional ao número de bits do expoente. O número de operações de multiplicação e divisão efetuadas durante a exponenciação modular, é proporcional ao logaritmo do expoente. 164 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 179.
    Exemplos de propriedadesda 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 √1 mod 8 = 1, 3, 5 ou 7; 3 3 6 1 4 7 2 5 √4 mod 8 = 2 ou 6; 4 4 0 4 0 4 0 4 5-1 mod 8 = 5 5 5 2 7 4 1 6 3 7-1 mod 8 = 7 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 √1 mod 7 = 1 ou 6; 2 2 4 6 1 3 5 √2 mod 7 = 3 ou 4; 3 3 6 2 5 1 4 √4 mod 7 = 2 ou 5; 4 4 1 5 2 6 3 3-1 mod 7 = 5 5 5 3 1 6 4 2 6 6 5 4 3 2 1 165 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 180.
    Exemplo de geraçãode 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 19 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 2 4 6 8 10 12 14 16 18 0 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 1 4 7 10 13 16 19 2 5 8 11 14 17 4 4 8 12 16 0 4 8 12 16 0 4 8 12 16 0 4 8 12 16 5 5 10 15 0 5 10 15 0 5 10 15 0 5 10 15 0 5 10 15 6 6 12 18 4 10 16 2 8 14 0 6 12 18 4 10 16 2 8 14 7 7 14 1 8 15 2 9 16 3 10 17 4 11 18 5 12 19 6 13 8 8 16 4 12 0 8 16 4 12 0 8 16 4 12 0 8 16 4 12 9 9 18 7 16 5 14 3 12 1 10 19 8 17 6 15 4 13 2 11 10 10 0 10 0 10 0 10 0 10 0 10 0 10 0 10 0 10 0 10 11 11 2 13 4 15 6 17 8 19 10 1 12 3 14 5 16 7 18 9 12 12 4 16 8 0 12 4 16 8 0 12 4 16 8 0 12 4 16 8 13 13 6 19 12 5 18 11 4 17 10 3 16 9 2 15 8 1 14 7 14 14 8 2 16 10 4 18 12 6 0 14 8 2 16 10 4 18 12 6 15 15 10 5 0 15 10 5 0 15 10 5 0 15 10 5 0 15 10 5 16 16 12 8 4 0 16 12 8 4 0 16 12 8 4 0 16 12 8 4 17 17 14 11 8 5 2 19 16 13 10 7 4 1 18 15 12 9 6 3 18 18 16 14 12 10 8 6 4 2 0 18 16 14 12 10 8 6 4 2 19 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; d (c) = cd mod n = 2613 mod 33 = 20 = (10100) = m. A 2 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. 166 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 181.
    Exemplo de implementaçãode 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 obter E(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) 167 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 182.
    Exemplo de funcionamentode protocolo de conhecimento zero Visão do Verificador G 1 Isomorfimo que o provador diz conhecer: 1 G’ 6 2 6 2 h 1 2 3 4 5 6 ↓ ↓ ↓ ↓ ↓ ↓ 5 3 ? ? ? ? ? ? 3 5 4 h 4 G 1 2 3 4 5 6 G’ 1 2 3 4 5 6 1 0 1 0 1 1 0 1 0 1 1 0 0 1 2 1 0 1 0 0 1 2 1 0 0 1 1 0 3 0 1 0 1 0 1 3 1 0 0 0 1 1 Gi 1 4 1 0 1 0 1 0 4 0 1 0 0 1 1 1 0 0 1 0 1 6 2 5 5 0 1 1 1 0 0 6 0 1 1 0 1 0 6 1 0 1 1 0 0 hi si 5 3 No i-ésimo passo do desafio, 4 o provador apresenta Gi hi 1 2 3 4 5 6 Gi 1 2 3 4 5 6 si 1 2 3 4 5 6 ↓ ↓ ↓ ↓ ↓ ↓ 1 0 1 0 1 0 1 ↓ ↓ ↓ ↓ ↓ ↓ 5 4 6 3 2 1 1 0 1 0 1 0 ? ? ? ? ? ? 2 3 0 1 0 0 1 1 alegando ter construído 4 1 0 0 0 1 1 e o verificador escolhe qual Gi isomorfo a G e G’ 5 0 1 1 1 0 0 isomorfismo quer verificar: 6 1 0 1 1 0 0 hi: G→Gi ou si: G’→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’ ?): hi 1 2 3 4 5 6 Gi 1 2 3 4 5 6 hi-1 1 2 3 4 5 6 1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 2 0 0 0 1 0 0 2 1 0 1 0 1 0 2 0 0 0 0 1 0 3 0 0 0 0 0 1 * 3 0 1 0 0 1 1 * 3 0 0 0 1 0 0 =G? 4 0 0 1 0 0 0 4 1 0 0 0 1 1 4 0 1 0 0 0 0 5 0 1 0 0 0 0 5 0 1 1 1 0 0 5 1 0 0 0 0 0 6 1 0 0 0 0 0 6 1 0 1 1 0 0 6 0 0 1 0 0 0 168 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 183.
    Exemplo de funcionamentode protocolo de conhecimento zero Visão do Provador G 1 Isomorfimo que o provador precisa conhecer 3 G’ 6 2 4 5 h 1 2 3 4 5 6 ↓ ↓ ↓ ↓ ↓ ↓ 5 3 3 5 2 1 6 4 2 6 4 h 1 G 1 2 3 4 5 6 G’ 1 2 3 4 5 6 1 0 1 0 1 1 0 1 0 1 1 0 0 1 2 1 0 1 0 0 1 2 1 0 0 1 1 0 3 0 1 0 1 0 1 Gi 3 1 0 0 0 1 1 5 4 1 0 1 0 1 0 4 0 1 0 0 1 1 1 4 5 1 0 0 1 0 1 5 0 1 1 1 0 0 6 0 1 1 0 1 0 6 1 0 1 1 0 0 hi 2 6 si para poder construir Gi 3 no i-ésimo passo do desafio, hi 1 2 3 4 5 6 Gi 1 2 3 4 5 6 si 1 2 3 4 5 6 ↓ ↓ ↓ ↓ ↓ ↓ 1 0 1 0 1 0 1 ↓ ↓ ↓ ↓ ↓ ↓ 5 4 6 3 2 1 1 0 1 0 1 0 ? ? ? ? ? ? 2 3 0 1 0 0 1 1 onde Gi seja isomorfo a 4 1 0 0 0 1 1 O provador escolhe uma permutação de vértices de G ambos G e G’. 5 0 1 1 1 0 0 6 1 0 1 1 0 0 ou de G’ para construir Gi 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) h-1 1 2 3 4 5 6 hi 1 2 3 4 5 6 si 1 2 3 4 5 6 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 2 0 0 1 0 0 0 2 0 0 0 1 0 0 2 0 0 0 0 0 1 3 1 0 0 0 0 0 * 3 0 0 0 0 0 1 = 3 0 0 0 0 1 0 4 0 0 0 0 0 1 4 0 0 1 0 0 0 4 1 0 0 0 0 0 5 0 1 0 0 0 0 5 0 1 0 0 0 0 5 0 0 0 1 0 0 6 0 0 0 0 1 0 6 1 0 0 0 0 0 6 0 1 0 0 0 0 169 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 184.
    Lista de exercícios 1- Segundo a classificação de Warwick Ford para tipos de ataque a sistemas computacionais, o que caracteriza 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 de pacotes 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 acesso mandató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 chaves Uma cifra cujo espaço de chaves é grande, é uma cifra segura Cifras cujo algoritmo criptográfico é ocultado são mais seguras Algoritmos criptográficos assimétricos estão expostos a mais tipos de ataques que os simétricos Algoritmos 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 um algoritmo 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 tem condições de almejar Transformar sigilo em confiança na integridade de dados Transferir sigilo entre dados Criar confiança na integridade de dados entre pontos de transmissão Criar sigilo para a transmissão de dados 11- Quais inconvenientes e limitações existem para se estabelecer canais individuais com privacidade (sigilosos) entre pares de usuários de uma rede, usando apenas algoritmos criptográ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áfico de chaves públicas? 14- Como um sistema criptográfico de chaves públicas pode ser usado para implementar o conceito de 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 por assinatura digital? 18- Que tipo de ataque pode sofrer redes onde os agentes usam chaves públicas para estabelecer canais sigilosos entre si? 170 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende
  • 185.
    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 login remoto 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 rede que 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 de inteiros 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 de uma 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ínio pú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 no RSA. 32- Responda, justificando, se é seguro ou não encriptar e depois assinar uma mensagem com o RSA. 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 firewalls 38- 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últiplas interfaces que hospede um gateway de aplicação? 40- Como este curso mudou sua idéia do que seja segurança computacional? 171 CopyMarket.com Criptografia e Segurança na Informática – Pedro Antonio Dourado de Rezende