Está en la página 1de 185

UnB - UNIVERSIDADE DE BRASÍLIA

INSTITUTO DE CIÊNCIAS EXATAS


DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Criptografia e
Segurança na
Informática

Pedro A. D. Rezende

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


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


certificadora Chave de verificação verificadora
de origem 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? ←Rand( )
5: s←
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 →Gj ou hj:G'→
sj:G→ →G j é
3.5: revela hj ou descreve sj
randômico hj:G'→ →Gj; isomorfismo
Descrição de sj= hj.h →G' com probabilidade 1-2-n
A prova que conhece h:G→

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 hi
encriptação ⊕ 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