Escolar Documentos
Profissional Documentos
Cultura Documentos
Criptografiaesegurananainformtica 100617141526 Phpapp01 PDF
Criptografiaesegurananainformtica 100617141526 Phpapp01 PDF
Criptografia e
Segurana na
Informtica
Pedro A. D. Rezende
CopyMarket.com
ii
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
Reproduzida sem a autorizao da Editora.
ndice
Pedro Antonio Dourado de Rezende
Introduo..........................................................................................................................ix
1:
Fundamentos..............................................................................................................1
2:
Elementos de Protocolos....................................................................................... 21
3:
4:
Tcnicas Criptogrficas.......................................................................................... 59
5:
6:
7:
Apndices....................................................................................................................... 161
ndice alfabtico de tradues de termos tcnicos ............................................... 161
Tabela para comparao de grandes nmeros ...................................................... 162
Exemplo de execuo do protocolo Diffie & Hellman ....................................... 163
Exemplo de execuo da primitiva Exponeciao Modular ................................ 164
Exemplo de propriedades da aritmtica finita ...................................................... 165
Exemplo de gerao de chaves para o RSA ......................................................... 166
Exemplo de implementao de curva elptica ..................................................... 167
Exemplo de execuo de protocolo de conhecimento zero ................................ 168
Lista de exerccios ................................................................................................. 170
Notao
Conceito:
Negrito
Itlico
Descrio de algoritmo:
Font Arial
Font Courier
CopyMarket.com
iii
iv
CopyMarket.com
vi
CopyMarket.com
vii
CopyMarket.com
viii
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
Introduo
Pedro Antonio Dourado de Rezende
No mundo hoje, somos levados a crer que podemos comprar solues prontas de preferncia feitas
sob medida para atender nossas necessidades. Mas a essncia do que se busca nem sempre pode ser
encontrada na prateleira, embrulhada em pacote. Desejo iniciar essas notas com um comentrio sobre a
natureza da busca de segurana para a informtica. Creio que a essncia dessa busca no pode ser
encapsulada e apresentada em forma de algoritmo. Por isso, no posso me propor apresentar-lhes
roteiros ou receitas para segurana na informtica. Proponho, ao invs disso, ajud-los a desenvolver
sensibilidade sobre como usar o conhecimento e as ferramentas at hoje acumulados, nessa busca. Para
explicar minha crena sobre a natureza do assunto que iremos tratar, escolhi introduzi-lo pelas palavras
de um experiente criptlogo, Bruce Schneier, divulgadas em uma lista de discusso eletrnica em
novembro de 96 (schneier@couterpane.com), cuja traduo transcrevo abaixo. Para guiar-nos em
minha proposta, compilei nas sesses seguintes um resumo dos conceitos, tcnicas e procedimentos
mais eficazes hoje conhecidos para a construo de mecanismos criptogrficos de proteo
informao digital, e de meios para esses mecanismos se integrarem a sistemas que se quer proteger.
{Na sesso 1 veremos os principais conceitos tcnicos ou cientficos relacionados com a construo e
funcionamento de ferramentas para a proteo informao os servios bsicos de segurana
computacional. Na sesso 2 abordaremos como mecanismos de proteo contra ameaas os
protocolos so concebidos, para tornarem vivel o uso destas ferramentas. Na sesso 3 estudaremos
o funcionamento dos mecanismos que tem se mostrado eficazes, ou seja, os principais protocolos
criptogrficos de padro aberto hoje em uso. Em seguida exploraremos na sesso 4 as formas como os
servios bsicos so escolhidos e montados em protocolos especficos, para ento examinarmos em
mais detalhes, na sesso 5, as peas principais desses protocolos os algoritmos criptogrficos
inclusive quanto s formas mais elementares de se avaliar sua segurana. Detalhes de segurana
externos aos protocolos que influem nas suas escolhas so abordados na sesso 6, e uma viso do
estado atual da aplicao da criptografia, principalmente na internet, ser oferecida na sesso 7.
Enquanto discorro sobre conceitos, protocolos e algoritmos criptogrficos, buscarei situ-los, por meio
de comentrios, no cenrio real, onde deve configurar-se claro o carter global e integrador do
significado da segurana na informtica, de cuja compreenso evolui tal sensibilidade. Estas notas
representam portanto apenas um esforo para resumir descries de conceitos, protocolos e algoritmos,
no havendo a pretenso de faze-las passar por texto didtico autnomo. Referncias bibliogrficas
esto espalhadas ao longo das notas e devem ser buscadas por quem julgar necessria uma apresentao
textual mais discursiva do assunto. Espera-se do leitor algum conhecimento da aritmtica modular
(aritmtica dos processadores digitais), do funcionamento bsico de sistemas operacionais e das redes
de computadores, e noes de complexidade de algoritmos.
CopyMarket.com
ix
so adequadas, os invasores correm poucos riscos de serem flagrados. Os atacantes no seguem regras,
podendo atacar sistemas usando tcnicas no 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.
Vndalos cibernticos tambm abrem buracos em paredes de bits. Roubam dados tcnicos, subornam
agentes, modificam programas e mancomunam. Tiram vantagens de tecnologias mais avanadas que a
dos sistemas que querem atacar, e at descobrem novos mtodos matemticos para atac-los.
Geralmente dispem de mais tempo do que algum honesto normalmente teria para desmontar e
examinar um sistema. O SecurID foi usado durante anos at que algum olhou mais atentamente
dentro de seu gerenciador de chaves: seus cdigos binrios ainda continham rtulos!. As chances
favorecem os atacantes, que s precisa encontrar um ponto vulnervel no sistema, enquanto os
defensores precisam proteger seu sistema de toda vulnerabilidade possvel.
CopyMarket.com
xi
Uma vez encontrada uma falha de segurana, pode-se consert-la. Mas encontrar as falhas, para incio
de conversa, pode ser extremamente difcil. Segurana diferente de qualquer outro requisito de
projeto, porque nele funcionalidade no igual a qualidade: se um editor de texto imprime
corretamente, sabe-se que a funo de impresso funciona. Segurana diferente: s porque um cofre
reconhece a combinao correta para abri-lo, no significa que seu contedo est seguro contra um
chaveiro ou arrombador. Nenhuma quantidade de testes beta revelar todas as falhas de segurana de
um sistema, e no haver nenhum teste possvel que prove a ausncia destas falhas.
Modelos de ameaas
Um bom projeto comea por um modelo de ameaas. O que o sistema est sendo concebido para
proteger, de quem e durante quanto tempo? O modelo de ameaas deve levar em considerao todo o
sistema, no apenas os dados que est sendo projetado para proteger, mas tambm e principalmente as
pessoas que iro us-lo e como iro 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 hiptese fundamental sobre a segurana do sistema for violada, que tipo de salvamento psdesastre pode ser conduzido? Respostas a estas questes no podem ser padronizadas, como os
algoritmos e protocolos. So diferentes para cada sistema, e com freqncia, projetistas no dedicam
tempo a construir um modelo realista das ameaas ou a analisar os riscos.
Modelos de ameaas permitem a desenvolvedores de produtos e consumidores determinar quais
medidas de segurana so necessrias: ter sentido encriptar todo seu disco rgido se voc no guarda
seus documentos de papel num cofre? Como pode algum de dentro da companhia fraudar o sistema
de comrcio? Qual exatamente o custo para se neutralizar a inviolabilidade de um carto inteligente?
No 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 criptogrfico seguro deve ser feito somente aps o modelo de ameaas ter
sido compreendido. Este trabalho o tema central da criptologia, e muito especializado. A
criptografia mescla vrias reas da matemtica: teoria dos nmeros, teoria da complexidade, teoria da
informao, teoria da probabilidade, lgebra abstrata, anlise formal, dentre outros. Poucos podem
contribuir apropriadamente para esta cincia, onde um pouco de conhecimento muito perigoso:
criptgrafos inexperientes quase sempre projetam sistemas falhos. Bons criptgrafos sabem que nada
substitui a reviso extensiva feita por colegas e anos de anlise. Sistemas de qualidade usam algoritmos e
protocolos publicados e bem compreendidos: usar elementos no provados em um projeto no
mnimo arriscado.
O projeto de sistemas criptogrficos tambm uma arte. O projetista precisa atingir um equilbrio entre
segurana e acessibilidade, anonimidade e responsabilizao, privacidade e disponibilidade. A cincia
sozinha no garante segurana: somente a experincia e a intuio nascida da experincia podem guiar o
criptgrafo no projeto de sistemas criptogrficos e na busca de falhas em sistemas existentes.
Bons sistemas de segurana so feitos de pequenos mdulos independentemente verificveis (e que
tenham sido verificados!), cada um provendo algum servio que claramente se resuma a uma primitiva.
Existem vrios sistemas no mercado que so muito grandes para serem verificados em tempo razovel.
CopyMarket.com
xii
Implementao
Existe uma distncia enorme entre um algoritmo matemtico e sua implementao concreta em
hardware ou em software. Projetos de sistemas criptogrficos so muito frgeis. S porque um
protocolo logicamente seguro, no significa que permanecer seguro quando o implementador
comear a definir estrutura de dados e a descrever a passagem de bits de um lado para outro.
Fechado nunca ser totalmente fechado: esses sistemas tm que ser perfeitamente implementados,
seno iro falhar. Uma interface mal projetada pode tornar um encriptador de arquivos de disco
completamente inseguro. Uma interface de sincronizao mal projetada pode deixar um furo num
sistema para comunicaes seguras. Confiana excessiva na inviolabilidade de hardware, tais como os
chips de cartes selados, pode tornar intil um sistema de comrcio eletrnico. Como estes problemas
no aparecem em testes, por vezes aparecem em produtos j lanados no mercado.
Implementadores esto sempre sob presso de oramentos e prazos. Cometem os mesmos erros vezes
a fio, em muitos produtos diferentes. Usam geradores de seqncias randmicas ruins, no checam
condies de erro apropriadamente, e deixam informaes secretas em arquivos de swap. Muitas destas
falhas no podem ser estudadas em livros acadmicos porque no so tecnicamente interessantes. A
nica maneira de aprender sobre estas falhas fazendo e quebrando sistemas de segurana, um aps o
outro, numa corrida sem fim.
Procedimentos e Gerncia
No final da estria, muitos sistemas de segurana so quebrados por pessoas que os usam, e a maioria
das fraudes contra sistemas de comrcio so praticadas por quem os opera. Usurios honestos tambm
causam problemas, porque geralmente no ligam para segurana. Eles querem simplicidade,
convenincia, e compatibilidade com sistemas legados (inseguros) e em uso. Eles escolhem senhas
fracas, anotam-nas, passam-nas para parentes e amigos, largam computadores com sesses abertas, etc.
muito difcil vender fechaduras para pessoas que no querem ser molestadas pela responsabilidade de
carregar chaves. Sistemas bem projetados tm que levar em conta as pessoas, e as pessoas so os
elementos mais difceis de serem abstrados no projeto.
A onde est realmente o custo com segurana. No est nos algoritmos. A criptografia forte no
mais cara que a fraca. O grosso do custo tambm no est em projeto e implementao: 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. difcil convencer o consumidor
sobre a importncia de sua privacidade financeira, quando o mesmo est disposto a trocar um
detalhado registro de suas compras por um milsimo de uma viagem ao Hava. difcil construir um
sistema de autenticao robusto sobre um outro sistema que permite ser penetrado por meio do
conhecimento do nome de solteira da me de algum. A segurana rotineiramente ultrapassada por
vendedores, gerentes, executivos e qualquer um que esteja querendo apenas tocar o servio.
Mesmo quando o usurio compreende a necessidade de um sistema de segurana robusto, no ter
meios de comparar dois sistemas. Revistas de computao comparam produtos de segurana listando
seus recursos e funcionalidade, e no avaliando sua segurana. Propagandas de produtos fazem
asseres que simplesmente no se sustentam. Um produto mais robusto, isto , melhor testado (e
portanto mais caro), estar nestas condies em desvantagem para a comercializao. As pessoas
confiam no governo para zelar pela sua segurana e bem estar, em coisas para as quais no detm
conhecimento suficiente para fazerem sua prpria avaliao industrializao de alimentos, aviao,
medicamentos, medicina, etc. Com a criptografia entretanto, os governos fazem geralmente o contrrio.
CopyMarket.com
xiii
Problemas no futuro
Quando cai um avio, so abertos inquritos, feitas anlises e laudos tcnicos. Informao sobre o
acidente amplamente divulgada, e muitos aprendem algo com o acidente. Pode-se obter das
autoridades, laudos sobre acidentes areos desde o incio da histria da aviao. Mas quando o sistema
eletrnico de transaes financeiras de um banco penetrado e fraudado, quase sempre o episdio
acobertado. Se alguma informao chega at os jornais, os detalhes so omitidos. Ningum analisa o
ataque, e ningum aprende nada com os erros. O banco tenta remendar o problema em segredo, na
esperana de que a clientela no perca a confiana num sistema que no merece esta confiana.
Remendar sistemas de segurana para tapar furos em resposta a ataques bem sucedidos no
suficiente. A informao 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 comunicaes autenticadas, armazenamento seguro de
dados ou comrcio eletrnico 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
motivaes crescentes para se subverter um sistema que est consolidado por longo uso. No haver
tempo para se fazer upgrades enquanto este estiver em uso.
A histria tem nos ensinado: nunca subestime a quantidade de recursos em dinheiro, tempo e esforo
que algum esteja disposto a gastar para subverter um sistema. Use sistemas de defesa ortogonais, com
vrias maneiras de se fazer a mesma coisa. Autenticao segura pode significar assinaturas digitais pelo
usurio via teclado, SSL para proteger a transmisso, IPSec pelo firewall para o destino, junto com
pontos de auditoria mltiplos ao longo do caminho para gerar rastros e produzir evidncias. A quebra
de alguma parte dar ao atacante uma alavanca, mas no causar o colapso de todo o sistema.
sempre melhor assumir o pior. Assuma que seus adversrios so melhores do que realmente so.
Assuma que a cincia e a tecnologia podero em breve fazer coisas que hoje ainda no podem. D a si
mesmo um margem de erro. D a si mesmo mais segurana do que hoje precisa. Quando o inesperado
acontecer, voc estar contente por ter agido assim. (Bruce Schneier)
Creio ser a busca de segurana para a informtica semelhante busca metafsica do homem pelo
significado da vida. Um movimento de impulso difuso entre o compreensvel e o desejvel, no
horizonte cambiante do possvel. Terei atingido meu objetivo se ao final pudermos reconhecer o
contexto onde as ferramentas criptogrficas podem ser teis. Este contexto formado pelas esferas de
atitude, motivao e compreenso dos riscos por parte de quem usa a informtica, para dela se obter
confiabilidade. Poderemos ento conviver, e convencer outros da necessidade de convivncia, com o
dilema que h na verso digital da segunda lei da termodinmica, expressa pela equao de Nemeth
Segurana = 1 / Convenincia
A sabedoria de cada um ser enriquecida na medida em que puder discernir a dose certa com que uma
outra fora humana relacionada segurana a parania pode contribuir ao delicado equilbrio desta
lei.
CopyMarket.com
xiv
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
1. Fundamentos
Pedro Antonio Dourado de Rezende
Sensvel
Comrcio, Indstria
Comunidades
Interna
Sistemas operacionais
Bancos de dados
Externa
Redes de computadores
Telecomunicaes
Necessidades sociais surgidas na era da informtica 1 - Padronizao de mecanismos e protocolos nas reas com interesse
comum em segurana de dados:
CopyMarket.com
Ameaa bsica
Vazamento ou desvalorizao
Ao
(Read)
Integridade
(Write)
Legitimidade
(eXec)
Disponibilidade
(eXec)
CopyMarket.com
Primrios
Por penetrao
1-
Ameaas bsicas
Por Implantao
2-
Ameaas: Vazamento
Ataques
Primrios:
Fraude
Personificao,
Desvio,
Violao.
Penetrao
Bloqueio
Uso indevido
Gancho,
Virus, Spoof,
Troiano, etc.
Implantao
Sobrecarga
intencional,
Fraude.
Furto de sesso,
Replay,
Espelhamento,
Fraude.
Ataques
Subjacentes:
Escuta passiva,
Anlise de trfego,
Descuido, Grampo,
Varredura.
CopyMarket.com
Escuta ativa,
Refutao.
Ataques mais freqentes a sistemas computacionais em 89(em ~3000 casos; Computer Security Conference, ordem decrescente)
1 -
2 -
3 -
Desvio de Controle:................hacking.
4 -
5 -
Cabeamento
Estaes.
CopyMarket.com
Camada
NIS
XDR
Aplic
FTP SMTP
TELNET transf. e-mail
login arquivo
RIP
NTP TFTP
HTTP Gopher DNS
nome sincro- transf. roteawww
diretrio domino nizao arquivo mento
TCP
Transp
RPC
procedimento remoto
UDP
IP
Rede
ISO 8802-2
Enlace Ethernet
ISO
8802-3
CSMA/CD
ISO
8802-5
ISO
9314
Token
Ring
FDDI
LAP-D:
HDLC: LAP-B:
ITU
ITU
ITU
ISO
Q.921/2
X.25
Q.921
3309
.8885
Frame
Relay
ISDN
SLIP
PPP:
rfc 1331
ATM:
ITU
I.361
Assncrona
CopyMarket.com
Ataques ao DNS:.....................modificaes
fraudulentas
de
tabelas
CopyMarket.com
CopyMarket.com
Processo
Funo bloqueadora
Funo decisria
Recurso
Texto pleno
Objeto
chave e
criptograma
Funo
encriptadora
Alvo B
chave d
e(m) = c
Funo
decriptadora
d(c) = d(e(m)) = m
identificao
da transao
Verificador
senha/contra-senha
Funo
autenticadora
Funo
verificadora
token/ticket
identificao
de origem
da transao
Participante
Chave de assinatura
Funo
Funo
Chave de verificao verificadora
certificadora
de origem
registro
certificado
CopyMarket.com
certificado
pblico
Sistemas de controle de acesso discricionrios Baseados no modelo de matriz de acesso de Lampson, vem o sistema
como um conjunto de estados formados por sujeitos, objetos e autorizaes.
As propriedades de segurana so definidas como transies de estado
permitidas. Inclui a abordagem do problema do armazenamento de
autorizaes. (Lampson, B.: "Protection". Operating System Riview, Jan 1974 ).
Sistemas de controle de acesso mandatrios Baseados no modelo de classificao sujeito-objeto de Bell e LaPadula,
vem o sistema como um conjunto de estados onde as transies possveis so
determinadas por axiomas e regras. Facilita a abordagem do problema do fluxo
seguro de informaes. (Bell, D. & LaPadula, J.: Lampson: "Security Computer
Systems. Mathematical Foundation". MITRE Corp., Bedford, 1974
CopyMarket.com
Usurios
Requisio de acesso
Processos
Acesso negado
Controle de acesso
(Funo decisria)
Acesso
autorizado
Administradores de segurana
Requisio para operao administrativa
Cotrole sobre
operaes
administrativas
Acesso
autorizado
Autorizaes
e polticas
Axiomas
Objetos:
Modelos de segurana especficos (C.,F.,M.& S.: "Database Security") Modelos para bancos de dados podem exigir adequaes, como para tratar
mltiplas instncias de um objeto com distintos requisitos de proteo. Vrias
extenses dos modelos bsicos esto descritos na literatura
CopyMarket.com
10
Controle de acesso
2-
3-
2-
3-
CopyMarket.com
11
2-
Classe D - Untrusted
Nenhuma proteo para o hardware ou para o sistema operacional (Ex.
MS DOS, Win95, MacOS, etc)
CopyMarket.com
12
O nvel de segurana C2 Esta classe, que se tornou critrio aceitvel para padro de segurana na
maioria das aplicaes comerciais, tem como caracterstica principal as
seguintes propriedades:
1-
2-
3-
4-
5-
6-
CopyMarket.com
13
CopyMarket.com
14
Criptografia Pr-computacional
Cifras calculadas com rotores eletromecnicos (Usadas de 1920 at o final da 2 guerra mundial)
Mquinas inspiradas no odmetro, implementam substituies
polialfabticas de perodos extremamente longos.
CopyMarket.com
15
/*XOR*/
putc(c,saida);
}
fclose(saida);
}
fclose(entrada);
}
}
}
Considerada segura at 1920, quando foi descoberto mtodo de ataque
estatsticobaseado na frequncia de coincidncias em deslocamentos sucessivos.
CopyMarket.com
16
Ameaas da Criptoanlise:
Neutralizao do despiste lingstico ou da ocultao de chaves que
constituem a segurana de uma cifra.
Tipos de ataques a cifras (em ordem cresceste de severidade) 1 - Criptograma conhecido: acesso a instncias e(mi) [i = 1,2,3...]
2 - Texto pleno conhecido: ..acesso a instncias 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 instncias mi, e1(mi), e2(mi),...
6 - Chave comprometida:....suborno, extorso, roubo, vazamento de d.
CopyMarket.com
17
Teoria da informao
* = sequncias de
letras do alfabeto
Cadeias de palavras de L
SinL = Sinttica
SemL = Semntica
Subconjunto de LexL
Relao de
equivalncia em SinL
Contexto da
mensagem
Contedo
semntico de m
Mensagem m
Exemplo:
H("sexta-feira") =log2(7)
H(m)
2-
CopyMarket.com
p(si )
18
Entropia em Criptoanlise
+1.
CopyMarket.com
19
0,18
0,16
0,14
0,12
0,1
0,08
0,06
0,04
0,02
0
ascii
32
frequncia do ingls
0,18
0,16
0,14
0,12
0,1
0,08
0,06
0,04
0,02
0
ascii
32
CopyMarket.com
20
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
2. Elementos de Protocolos
Pedro Antonio Dourado de Rezende
O que um Protocolo?
um algoritmo distribudo, onde a execuo dos passos alternada entre dois
ou mais agentes executores.
Algoritmo
INCIO
Tempo
FIM
FIM
Agente B
Agente A
Propsito
2-DETERMINADOS
CopyMarket.com
4-FECHADA
Premissas do protocolo
21
Especificao de protocolo:
Uma especificao abstrai o processo, que consuma o propsito do
protocolo, dos mecanismos pelos quais este propsito consumado.
(descrio do protocolo em nvel independe de implementaes)
1-
2-
3-
4-
2-
3-
CopyMarket.com
22
Resoluo de impasses Quando no possibilita a um agente deduzir, ao longo da execuo, a lisura dos
outros participantes, um agente auxiliar cumpre, no protocolo, papel
semelhante a alguma instituio de f pblica (cartrio, tribunal, etc.)
1-
2-
Detran
6- Novo DUT
7-Crdito
4- DUT, Vistoria
5- Deposito cheque
rbitro
(Agncia)
8- Veculo,
Novo DUT
3- Cheque
Banco
8- Transferncia do
crdito menos taxa
3- Veculo, DUT
2- Resposta
Comprador A
Vendedor B
1- Proposta
CopyMarket.com
23
Protocolos criptogrficos
2-
3-
4-
5-
2-
CopyMarket.com
24
Gerenciador de
chaves
2: Solicita
chave (A,B)
3: Chave k
2: Solicita
chave (A,B)
3: Chave k
1: Escolhe algoritmo
4: criptograma c = k(m)
Agente A
7: decripta m= k(c)
Agente B
5: decripta m= k(c)
b-
c-
d-
e-
CopyMarket.com
25
Sigilo com uso de chave pblica II: protocolo para privacidade usando algoritmo assimtrico
2: cadastra chave
pblica EA
Banco de
chaves
3:l Chave EB
2: cadastra chave
pblica EB
3: l Chave EA
Agente A
1: Gera par DA , EA
7: decripta m= DA (EA (m))
4: criptograma EB (m)
6: criptograma EA (m)
Agente B
1: Gera par DB , EB
5: decripta m= DB (EB (m))
b-
c-
Envelope Digital: protocolo hbrido para soluo de I.b e II.c III: Envelope digital
1: Escolha de algoritmos para I e II
Agente A
2: l EB, gera k;
encripta k e m
CopyMarket.com
3: Envelope = criptogramas de
chave de sesso + mensagem
EB(k), k(m)
Agente B
4: k= DB (EB (k))
m= k(k(m))
26
1-
2-
3-
4-
1-AUTOR
Funes:
Autenticao
3-VNCULO
4-PROVA
Premissas da Assinatura
2-CONTEUDO
Agente A
2: Gera EA, DA;
4: gera m; calcula s = DA(m)
CopyMarket.com
Agente B
6: Identifica A em m
verifica se m =? EA (s)
27
rbitro J
autentica A, m
3: Chave kA
3: Chave kB
4: kA(m)
5: c = kB (m,s)
Agente A
encripta m
Agente B decripta c
Arbitragem:
6: m, s = kB (c)
B solicita a J verificar se
s = r, kA(m)
Agente A assina
Agente B verifica
2: Gera EB, DB;
publica EB.
5: A,c
6: m, s = DB (c); m =? EA(s)
CopyMarket.com
28
Definio
Conceito subjetivo, referente a funes matemticas para as quais fcil
(rpido) calcular a imagem de um argumento, e difcil (muito caro, demorado)
calcular um argumento (pr-imagem) a partir de um valor de imagem.
One-way function
h(m) fcil
c Imagem
Argumento m
h-1(c) difcil
h(m)=h(m) difcil
CopyMarket.com
29
Mecanismos de autenticao
Assinatura digital:
Usado em protocolos de autenticao cujas premissas no restrigem a
capacidade de verificao da integridade de uma mensagem (verificao aberta).
No so totalmente irrefutveis, pois o assinante pode subverter o protocolo
alegando vazamento de sua chave privada ou quebra do algoritmo.
CopyMarket.com
30
Agente A assina
Agente B verifica
2: Gera EB, DB;
5: A,c
6: m,s = DB(c);
7: h(m),t =? EA(s)
h( ) = funo hash; DA( h(m),t) = assinatura
2: A Cadastra chave
pblica EA;
Recebe ES
Certificadora
de chaves S
Recebe ES
A gera (DA, EA )
6: verifica B,EB =? ES (cB);
gera k.
8: k = DA EA (k))
CopyMarket.com
4: Solicita EB 4: Solicita EA
5: cA
5: cB
7: EB (k)
7: EA (k)
EB (k) Envelope digital
k, = chave de sesso
B gera (DB, EB )
6: verifica A,EA =? ES (cA) ;
gera k.
8: k = DB (EB (k))
31
6: m1 = DX (EX (m1))
9: m2 = DX (EX (m2))
[ = perda de integridade]
3: escuta chave
pblica EA
10: EA(m2)
3: escuta chave
pblica EB
8: EX (m2)
5: EX(m1)
7: EB (m1)
(Conexo no
autenticada)
Agente A vaza m1
2: X intercepta troca de
chaves pblicas
Agente B vaza m2
CopyMarket.com
32
Seqncias randmicas
Conceito
Se existisse, uma definio formal de randomicidade ou aleatoriedade
seria paradoxal. A ocorrncia ou no do conceito na natureza uma discusso
de escopo filosfico, mas que produz uma lista de propriedades necessrias ao
ser aleatrio. Algumas dessas propriedades so mensurveis (entropia
mxima), enquanto outras no (i.e., irreprodutibilidade).
Probabilidade
de ocorrncia
0, 1
1/2
00, 11
1/4
000, 111
1/8
0000, 1111
1/16
CopyMarket.com
33
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
3. Protocolos Importantes
Pedro Antonio Dourado de Rezende
CopyMarket.com
34
Login
Recurso
1: A,k
4: If True
Sesso a A
3: T/F
Arquivo de senhas
A,h(k) no arquivo?
(Sistema protegido)
b-
c-
d-
Um dicionrio com 100 000 a 1 000 000 senhas das mais usadas,
quebra cerca de 30% das contas de um sistema. Sem poltica de
senhas, este ndice de quebra pode chegar a 70%.
CopyMarket.com
35
Recurso
1: A,k
5: True,s / False
2: A 4: h(k,sA)
Rand( ):
Gerador de nmeros
pseudo-randmicos
Sesso a A
6: If True
Arquivo de senhas
A,sA,h(k,sA) no arquivo?
(Sistema protegido)
if True:
5: s
Rand( )
novo salt de A
b-
c-
A ataque por dicionrio a uma conta ter que testar valores para
salt+senha, a menos que tambm o arquivo shadow password seja
vazado e sua indexao inferida.
d-
CopyMarket.com
36
A, senha k
n
k = h (r)
r = nmero
randmico
Recurso
1: A,k
4: If True
Sesso a A ;
n n+1
3: T/F
Arquivo de senhas
A,h(k) no arquivo?
(Sistema protegido)
if True:
5: h(k) h( h(k))
Agente A
1: rARand( );.
cA = DA(rA).
5: rS = ES(cS)
9: rA,rS =? ES(mS).
4: S, cS
6: mA = DA(rA, rS).
8: Se 7 ento mS = DS(rA, rS)
10: Se 9 ento DA( h(rA, rS))
Recurso S
3: rSRand( );
cS = DS(rS)
7: rA = E A(cA).
rA,rS =? EA(mA).
Rand( ) = gerador de
nmeros randmicos.
Desafio:
Uma sequncia randmica de bits (nounce) que percorre um circuito sob
diferentes cifragens, ou sob uma cifragem e diferentes transformaes, com
o propsito de verificar a posse de chaves nos pontos onde passa.
CopyMarket.com
37
Um protocolo pioneiro:
XIII: Needham & Schroeder
(Canal seguro)
Servidor
de chaves S
2: Cadastra e
recebe chave
secreta kA
2:
7: Decripta kA(cA), kB(cB);
verifica i,A,B em ambos,
extrai rA,rB e gera chave k.
Cadastra e
recebe chave
secreta kB
6: i,A,B, cA, cB
Agente A
3: Gera ndice i,
nmero randmico rA;
cA = kA( rA,i,A,B )
9: Decripta parte de 8;
extrai k,rA e verifica rA
4: i,A,B, cA
10: Se 9 ento kB (k, rB)
Agente B
k = chave de sesso
Detalhe:
Esta verso uma reviso do protocolo original de Needham-Schroeder,
que no inclua rA, rB no criptograma do passo 8, o que possibilitava
ataques de replay com chaves de sesso comprometidas. Esta reviso foi
publicada simultaneamente com a descrio de outro protocolo
semelhante, conhecido como protocolo de Otway-Rees.
CopyMarket.com
38
Servidor de
chaves S
2: Cadastra e
recebe chave
secreta kA
3: A, B
3: Gera chave k,
selo temporal T
e prazo de validade L.
2:
Cadastra e
recebe chave
secreta kB
Agente B
Agente A
6: cB, ck
5: Decripta cA com kA:
verifica B,L,T e produz
ck=k( A,TA )
9: Decripta 8 com k: verifica
TA+1 e confirma k.
8: Se 7 ento k(TA+1)
k = chave de sesso
Detalhes:
{Este protocolo no requer gerao de nmeros randmicos nos terminais
dos agentes (nounces), mas requer sincronizao dos relgios desses
terminais com o do servidor de chaves S e ajuste de retardo na transmisso
de mensagens - especfico de cada implementao em rede - para validao
do selo temporal e deteco de ataques por replay que ocorram fora deste
retardo. Falhas de sincronismo possibilitam ataques por bloqueio e replay.
Em 5, cA reutilizvel (denominado ticket) permitindo que o protocolo
oferea controle de acesso centralizado.
CopyMarket.com
39
Servidor de
chaves S
2: Cadastra e
recebe chave
secreta kA
2:
6: Gera chave k,
Decripta c com kB;
cA=kA( B,T,k,rA )
cB=kB( A,T,k ).*
Cadastra e
recebe chave
secreta kB
5: B,c,rB
7: cA,cB,rB
Agente B
Agente A
4: A, rA
k = chave de sesso
Detalhes:
*
40
2:
2: A, B
Servidor
de chaves S
3: DS( B,EB )
6: DS( A,EA )
Cadastra EB;
Recebe ES e guarda
chave privada DB
5: B, A
Agente B
Agente A
4: cA, ck, k(TA)
3: Valida EB com ES;
Gera chaves k e Ek,Dk,
selo temporal TA e prazo L;
ck = Dk( EB( k ))
cA = DA( A,L,Ek )
8: Se 7 ento k(TB)
k = chave de sesso
CopyMarket.com
41
2: Cadastra EA;
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 B
Agente A
6: cB, cA, ck
8: Se 7 ento k(TB)
XVIII: Woo-Lam
(Canal seguro)
Servidor de chaves S
2: Cadastra EB;
Recebe ES e guarda
2: Cadastra EA;
Recebe ES e guarda
chave privada DA
chave privada DB
9: Gera chave k;
ck= DS(,rA,k,A,B)
3: B
4: DS(B,EB)
8: A, B,ES(rA )
Agente A
5: Extrai EB de 4 com ES;
Gera nm. randmico rA.
13: Decripta ck com DA:
extrai e valida A,B,rA,k com ES
CopyMarket.com
6: EB ( A,rA )
12: Se 11 ento EA (ck,rB)
14: Se 13 ento k (rB)
Agente B
7: Extrai rA de 6 com DB,
11: Extrai EA de 10 com ES;
Gera nm. randmico rB;
Decripta ck com DB:
extrai e valida A,B,rA,k com ES.
42
Deteco do ataque por espelhamento em II,VI usando hash Distribuio Interlock de chaves (Rivest & Shamir)
Agente B
Agente A
5: v = h(c)
2: Gera EA, DA;
publica EA.
era m; c=EB(m).
9: Gera chave de
sesso k
6: v = h(c)
7: c = EB(m)
4: Gera m; c=EA(m).
8: Se h(c) = v ento c
10: Se h(c) = v ento k
h( ) = hash livre de
coliso.
b-
c-
CopyMarket.com
43
Agente A
2: Gera n. randmico x;
Calcula c = f(a,x)
4: Calcula chave de sesso
k = (c)x mod
Agente B
2: Gera n. randmico y;
Calcula c = f(a,y)
4: Calcula chave de sesso
3: B, c
k = cy mod
k = f(c,x) = f(c, y)
mod q
b - Para
uma
escolha
adequada
do
espao
de
chaves,
onde
CopyMarket.com
44
Agente A
2: Gera n. randmico x;
x
c = a mod q
4: Calcula chave k =
(c)x mod q;
v = H( p,k )
8: Valida H( h( p,k ),k )
Agente B
3: A, c
3: B, c
5: v
7: Se 6 ento H( h( p,k ),k )
2: Gera n. randmico y;
y
c = a mod q
4: Calcula chave
y
k = c mod q
6: Valida v = H( p,k )
2n,k)
b-
c-
CopyMarket.com
45
Agente A
Agente B
3: A, p(c )
5: B, p-1(c)
7: k(p(k,r),sA)
k = (c)
k=c
mod q;
9: k(r, sB)
s = chave de sesso = sA
mod q
XOR sB
b-
c-
CopyMarket.com
46
Agente A
Agente B
5: mensagem assinada m, c.
6: Gera n. randmicos y, z;
e calcula desafio
v = cysz mod q
para verificao de c.
9: Verifica assinatura
7: B, v
8: v' = v
mod q
v' =?
myaz mod q
refutao
de
assinaturas
ainda
possvel
c-
CopyMarket.com
47
CopyMarket.com
48
CopyMarket.com
49
2: A, c
Agente A
1: Cria mensagem m;
Calcula c = h(m)
5: Valida selo temporal
ES(c) = c,T
Servidor S
4: ES, c
b-
c-
CopyMarket.com
50
Agente A
4: A,c
4: Escolhe bits m,
chave k;
Calcula c = k(r,m)
5: evento
Agente B
2: Gera n. randmico r
e aguarda evento.
7: decripta c verificando
r,m = k(c).
6: k, m
Agente B
Agente A
3: c, r
2: Escolhe bits m;
Gera n. randmicos r, s
Calcula c = h(r,s,m)
5: evento
4: Aguarda evento.
7: Verifica r, m desvelada:
c = h(r,s,m).
6: r,s,m
CopyMarket.com
51
Cara ou Coroa
Agente A
Agente B
3: c
2: Gera n. randmico r
Calcula c = h(r);
6: Verifica r, 5
desvelando resultado.
5: 1 ou 0
6: r
4:Adivinha se r par ou
mpar.
7: Verifica declarao do
resultado: c =? h(r).
Agente A
2: Gera n. randmicos:
r par e s mpar;
Gera chaves EA, DA;
c1=EA(r) , c2=EA(s)
3: c1, c2 ou c2, c1
5: EB(c), x
6: t = DA(EB(c) ) = EB(r ou s)
9: Valida escolha de B em 5
11: Valida uso da chave DB
8: DB(t)
10: DB, DA
Agente B
4: Gera chaves EB, DB;
Escolhe x = par ou impar;
Escolhe c = c1 ou c2
7: Desvela escolha em 4:
DB( t)= r ou s (=x ou x)
11: Valida uso da chave DA
CopyMarket.com
52
Fiel Depositrio X
Fiel Depositrio Y
4: Se 3, EyA, EyB
4: Se 3, ExA, ExB
9: DyA
9: DxA
3: X valida ExA+DxA; ExB+DxB
5: S Valida DA, DB
10: DA=f (DxA,DyA)
6: EA
6: EB
2: ExA,DxA
2: EA
2: EyA,DyA
8: Intimao: DA
Juiz
2: EyB,DyB
2: EB
2: ExB,DxB
7: Acolhe suspeita
contra A
Agente A
Agente B
6: Se 5, A estabelce sesso com B
1: Gera EA, DA
Calcula ExA,DxA, EyA,DyA
1: Gera EB, DB
Calcula ExB,DxB, EyB,DyB
CopyMarket.com
53
Alm dos planos do governo dos EUA de estabelecer a escriturao de chaves como
padro, h vrias propostas comerciais em oferta no mercado. Quais so as vantagens da
escriturao de chaves para o usurio? Bem, no h realmente nenhuma. O usurio no
ganha nada da escriturao, que no poderia prover por si mesmo. A cauo garante que a
polcia pode perscrutar suas linhas de voz ou ler seus arquivos, apesar de criptografados.
Garante que a agncia NSA pode perscrutar ligaes internacionais mesmo sem mandato
judicial, embora encriptadas. Talvez a escriturao possa permitir o uso da criptografia em
pases que hoje a probem, mas esta parece ser a nica vantagem.
A escriturao de chaves criptogrficas tem inmeras desvantagens. O usurio tem
que confiar na segurana dos procedimentos das agncias cartoriais, depositrios fiis de
sua chave privada em cauo, e na lisura das pessoas envolvidas. Tem que confiar que os
agentes da cauo no iro modificar suas regras de conduta, que o governo no mudar as
leis sobre escriturao, e que as pessoas com poder para recuperar sua chave privada o
faro apenas dentro da lei. (proposta de lei McCain-Kerrey no senado dos EUA)
difcil imaginar este cenrio funcionando idealmente, sem nenhum tipo de presso
legal ou poltica. O prximo passo bvio seria a proibio da criptografia sem cauo. Essa
seria possivelmente a nica forma de garantir o retorno no investimento em um desses
sistemas, e de obrigar organizaes criminosas sofisticadas a usarem sistemas escriturados.
No est claro quo difcil ser fazer cumprir uma tal lei. Os pesquisadores que trabalham
em criptografia tero que ter licena especial para manipular sistemas no escriturados?
Como sero testadas implementaes de novos sistemas em software, j que os sistemas
escriturados envolvem a participao do hardware no protocolo?
E h tambm questes legais. Como a escritura afetaria a imputabilidade do usurio,
em caso de vazamento? Haver uma hiptese implcita de que se algum segredo vazar pela
conta do usurio, ento certamente ter sido pelo usurio e nunca atravs dos agentes
cartoriais? E se o banco de dados do cartrio 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 polticos. Se as chaves de assinatura forem tambm escrituradas,
existem problemas adicionais. Seriam aceitos em corte documentos assinados com chave
escriturada, como prova contra o proprietrio da chave?
A globalizao da criptografia traria problemas adicionais. E se governos de outros
pases no aceitarem como de f pblica os agentes cartoriais americanos? As companias
multinacionais teriam que aderir a sistemas e normas diferentes em cada pas onde operam?
Se um pas obrigar o usurio a escriturar sua chave de assinatura, poder ele refutar em
outro pas sua assinatura num contrato, alegando ter sido forjada por agentes cartoriais
onde foi obrigado a escriturar sua chave? E os pases que patrocinam espionagem industrial
em benefcio de suas empresas? Certamente no iro escriturar suas chaves em outros
pases.
As comunicaes digitais oferecem oportunidade bem mais ampla para atividades de
monitoramento das aes, opinies, compras, associaes, etc., de cidados do que seria
possvel no mundo analgico. Tornar esta capacidade quase automtica e no rastrevel
pode oferecer uma tentao a mais para estados com tendncias no democrticas.
CopyMarket.com
54
Protocolos 0-k iterativos Num protocolo 0-k iterativo, o provador convence o verificador de que
possui a soluo de um problema matemtico, sem transmitir ao verificador
nenhuma informao sobre essa soluo. Estes protocolos podem servir
para autenticar posse de chave (a soluo do problema). A verificao
externa intrinsecamente falsificvel (no transfervel).
XXIX: Estrutura de protocolos 0-k iterativos
1: Escolhem tipo de problema P
3: Repetir n iteraes: j de 1 at n
Provador A
2: Gera ou obtem instncia
P e soluo s de P
3.1: Gera instncia Pj
randmica isomorfa a P;
Usa hj:PjP e s para
calcular sj soluo de Pj
Verificador B
3.2: compromete sj.
3.4: comunica escolha 3.3
3.5: revela sj ou descreve hj
CopyMarket.com
55
Protocolos 0-k no 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 detm o conhecimento
da soluo do problema proposto. A ao randmica introduzida pelo
verificador nas repeties de 3.3 pode ser substituda por uma funo de
hash, tornando a verificao externamente confivel.
XXX: Estrutura de protocolos 0-k no iterativos
1: Divulga escolha de problema P e hash h( )
3: c = comprometimento de s1,..,sn concatenados
Provador A
1: Gera ou obtem instncia P
e soluo s de P.
2: Repete n vezes: Gera
instncia Pj randmica
isomorfa a P e usa s e
hj:PjP para calcular sj
soluo de Pj.
Verificador B
5: publica c, v = h(c)
6: publica resultado 4
7: Verifica se v = h(c), e
se escolha em 3 coincide
com seqncia de bits de v
8: j de 1 a n: Verifica se sj
soluo de Pj ou se
hj:PjP isomorfismo.
CopyMarket.com
56
Provador A
2: Gera ou obtm
isomorfismo h:G
G'.
(A soluo h. A divulga
G,G' para autenticar-se)
3.1: Gera isomorfismo
randmico hj:G'
Gj;
Descrio de sj= hj.h
Verificador B
3.2: compromete hj.
3.4: comunica escolha 3.3
3.5: revela hj ou descreve sj
CopyMarket.com
57
Protocolos esotricos
CopyMarket.com
58
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
4. Tcnicas Criptogrficas
Pedro Antonio Dourado de Rezende
Custo do
hardware
40 bits
64 bits
80 bits
112 bits
128 bits
US$100 mil
2 segundos 35 horas
1 ano
1019 anos
1 milho
0.2 seg
3.5 horas
37 dias
1018 anos
10 milhes
0.02 seg
21 min
4 dias
700 anos
1012 anos
1017 anos
70 anos
1011 anos
1016 anos
7 anos
1010 anos
1015 anos
245 dias
109 anos
1014 anos
56 bits
2 minutos 9 horas
1 bilho
1 hora
10 bilhes
0.02 mseg
100 bilhes
32 seg
24 dias
108 anos
1013 anos
1 trilho
0.2 seg
0.01 seg
3 seg
2.4 dias
107 anos
1012 anos
10 trilhes
0.02 seg
1 miliseg
0.3 seg
6 horas
106 anos
1011 anos
Estimativas para comprimento seguro de chaves pblicas Extrapolando dados histricos sobre a capacidade de fatorao de inteiros (Rivest: estimativa otimista em 1990 - Schneier estimativa em 1995)
Comprimento de chaves pblicas em bits, para proteo contra
Ano
Indivduos
Grandes corporaes
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
CopyMarket.com
59
64 bits
384 bits
512 bits
112 bits
128 bits
Comprimento da senha
4 bytes
5 bytes
6 bytes
7 bytes
8 bytes
460 000
1.2*107
3.1*108
8.0*109
2.1*1011
6.0*107
2.2*109
7.8*1010
2.8*1012
alfanumricos (62)
1.5*107
9.2*108
5.7*1010
3.5*1012
2.2*1014
imprimveis (95)
8.1*107
7.7*109
7.4*1011
7.0*1013
6.6*1015
2.7*108
3.4*1010
4.4*1012
5.6*1014
7.2*1016
4.3*109
1.1*1012
2.8*1014
7.2*1016
1.8*1019
80 bits
Comprimento da senha
4 bytes
5 bytes
6 bytes
7 bytes
0.5 seg
12 seg
minsculas+dgitos (36)
1.7 seg
1 min
36 min
22 horas
33 dias
alfanumricos (62)
15 seg
15 min
16 horas
41 dias
6.9 anos
imprimveis (95)
8.5 dias
51 dias
CopyMarket.com
1.2 horas
13 dias
8 bytes
2.4 dias
60
/*
funo expmod
*/
*/
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 )
}
Inverso da exponenciao modular - logaritmo discreto Algoritmos mais eficientes hoje conhecidos para Zp (n = bits de p):
1/2
Crivo Gaussiano- tempo heurstico e(1+c*n*ln(n)) (n<~360);
2
1/3
Crivo de Campo Numrico- t e(1.923+c*n*ln (n)) (n>~360).
CopyMarket.com
61
Inverso do produto de inteiros: fatorao Algoritmos para Z mais eficientes hoje conhecidos (n = bits de p):
1/2
Crivo Quadrtico (QS)- tempo e(1+c*n*ln(n)) (n<~360);
2
1/3
Crivo de Campo Numrico- t e(1.923+c*n*ln (n)) (n>~360).
Histrico dos limites prticos da fatorao Fatorao de nmeros difceis (n = p*q onde p, q so primos e |p| |q|):
Ano
Tamanho de n
34 dgitos
2113-1 = 3391*23279*65993*1868569*1066818132868207
1970
41 dgitos
1991
Srie RSA
1993
RSA-120 (n3)
1994
RSA-129 (n4)
(428 bits)
1997
154 dgitos
(512 bits)
Nmero
9 F.
36 M.
Fermat 22 +1
Mersenne: 2p-1;
CopyMarket.com
62
*/
/*a<p*/
x=expmod(a,(p-1)/2,p);
if(!(x==1)&!(x==p-1)) r=0;
}
return(r)
}
Heurstica para gerao de primos grandes Nos Algoritmos de Lehmann (acima) ou outros que testam primalidade,
cada
teste
verifica
independentemente
se
composto.
63
/*
*/
*/
/* p impar de n bits */
while(!lehmann(&p,m))
p+=2;
return(p)
}
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
CopyMarket.com
64
CopyMarket.com
65
Modo ECB
mi
mi+1 ...
Encriptao Decriptao
Algoritmo de cifra
ek/dk
...ci-1
ek/dk
ek/dk
Chave k
ci
ci+1...
Criptograma
b-
c-
CopyMarket.com
66
Modo CBC
VI
...mi-1
mi
mi+1...
ek/dk
ek/dk
ek/dk
VI = Vetor de Inicializao
(Selo temporal, nmero
randmico ou serial, etc)
tempo
....ci-1
ci
ci+1...
b-
c-
CopyMarket.com
67
Modo CFB
VI
...mi-1
mi
mi+1...
ek/dk
ek/dk
shift register
bloco
ek/dk
ek/dk
ltimo
byte
ki
i-simo
....ci-1
ci
ci+1...
mi
byte
ci
b-
c-
CopyMarket.com
68
Modo OFB
VI
mi+1...
shift register
...mi-1
ek
ek
bloco
ek
ek
ltimo subbloco
ki
i-simo
....ci-1
ci
ci+1...
mi
subbloco
ci
b-
c-
CopyMarket.com
69
Registros de deslocamento com retroalimentao Feedback Shift Registers (FSR) so os elementos bsicos na concepo
da maioria dos geradores de seqncias pseudo-randmicas utilizados na
criptografia atual de implementao eletrnica simples.
O perodo de uma seqncia gerada pelo FSR de n bits a partir da
semente (nmero de configuraes distintas obtidas do VI) no mximo 2n.
Os FSRs mais simples so os lineares (LFSR), que usam o XOR de
alguns bits como funo de retroalimentao. As posies do registrador que
entram no XOR formam a seqncia de captura (tap) do LFSR.
FSR linear (LFSR)
FSR de n bits
Semente
Bit de sada
VI = ( n bits de inicializao)
= seqncia tap
Sada
VI
shift register
shift register
bn ... ... b4 b3 b2 b1
bn ... ... b4 b3 b2 b1
.......
Funo de feedback
CopyMarket.com
(XOR=paridade)
)
70
Escolha da seqncia de captura (Selmer, 1965) Para que um LFSR seja de perodo mximo (2n-1), a configurao do
registrador com bi =1 apenas nas posies de captura deve representar um
polinmio primitivo mdulo 2: este polinmio p(x) deve satisfazer
p(x) irredutvel ^ [p(x) | x
2 -1
Exemplo de construo de LFSR de perodo mximo Sabendo que p(x) = x32+x7+x6+x2+1 primitivo, um LFRS de 32 bits
com sequncia tap (32,7,6,2) ter portanto perodo mximo:
LFSR de 32 bits com perodo 232-1
VI
shift register
b32 b31 .... .... .... b9 b8 b7 b6 b5 b4 b3 b2 b1
(paridade)
CopyMarket.com
71
(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)
CopyMarket.com
72
Ataques a geradores de cifras encadeadas 1 - Complexidade linear: (Berlenkamp-Massey, 69) Se uma seqncia pode
ser gerada por um FSR linear, o comprimento do menor desses LFSR
a medida de complexidade linear da seqncia. Existe algoritmo que
constri o LFSR minimal duma seqncia de complexidade n, aps ler
2n bits consecutivos da seqncia.
2 - Correlao: .......................geradores construdos por composio de
LFSRs podem ser atacados relacionando-se a seqncia de sada com
a seqncia de estados internos de elementos do gerador.
3 - Outros mtodos de ataque: Consistncia linear, encontro-no-meio,
sndrome linear, aproximao pelo melhor afim, seqncia derivada,
criptoanlise diferencial, etc.
Tcnicas de combinao de FSRs 1 - Para-e-segue alternado: ..............O deslocamento de dois ou mais FSRs
controlado pelo bit de sada de um outro FSR..
2 - Cascata de Golleman:.................FSR dispostos em cadeia tm seu
deslocamento controlado pelo FSR anterior.
3 - Retroalimentao com carry:..... A
funo
de
retroalimentao
usa
CopyMarket.com
73
LFSR 2
LFSR 1
Sada
= sinal de clock
LFSR 3
Eliminando tendncias do gerador No caso de um gerador apresentar tendncia por um bit na sada, por
exemplo, P(0) = 0.5+, pode-se neutralizar esta tendncia usando como sada o XOR
k-1 k
Geradores de seqncias realmente randmicas Existem dispositivos, utilitrios ou tcnicas disponveis para gerar seqncias
CopyMarket.com
74
2-
3-
4-
no
conhecimento
tcnico
nos
objetivos
oficiais
da
Alternativas de plataforma para implementao da cifra 1 - Software: .. Algoritmo usa CPU, RAM e bibliotecas do sistema.
2 - Hardware: Algoritmo usa processador, etc. dedicados e inviolveis.
CopyMarket.com
75
Host
End to end
Sistema
Subrede
Link to link
Elo
Nveis de implementao
Aplicao
Presentao
Sesso
Transporte
Rede
Ligao
Fsica
Camadas
Link to link
End to end
Mensagem exposta no
Mensagem encriptada no
computador de origem e nos ns computador de origem e nos ns
da rede.
computadores da rede.
Segurana nos
Papel do
usurio
Questes de
implementao
CopyMarket.com
Cabealhos de transmisso
expostos.
Prov autenticao de ns
(controle de roteamento)
76
Dificuldades de implementao de cifras p/ armazenagem1 - Vulnerabilidade: .......cifras coexistem com dados expostos (no papel,
noutra mquina), permitindo ataques de texto pleno conhecido.
2 - Custo:........................em bases de dados, as unidades so muitas vezes
menores que o bloco, expandindo o armazenamento.
3 - Complexidade: .........o gerenciamento de chaves deve mapear usurios
por direito de acesso a arquivos e campos.
4 - Gargalo: ....................dispositivos de I/O so geralmente bem mais rpidos
que os algoritmos, requerendo implementao em hardware, ou
algoritmos especialmente velozes, ou ambos.
A nvel de arquivo
A nvel de driver
Questes de
implementao
CopyMarket.com
77
Escolhas de plataforma
Histrico Desde a inveno em 1920 de mquinas para cifra que usam rotores at
recentemente, a implementao de cifras em hardware especializado era
prevalente, por ser mais seguro, eficiente e permitir armazenagem interna
inviolvel de chaves mestras. Esta dominncia vem diminuindo pela evoluo
da criptografia assimtrica e da capacidade dos processadores.
Tipos mais comuns de dispositivos de hardware dedicado 1 - Mdulo auto-contido:................. usados geralmente por bancos para
autenticao de senhas e gerenciamento de chaves criptogrficas
2 - Caixa-preta para links de transmisso: ....... cifra implementada para a
tecnologia especfica de um canal de comunicao.
3 - Placa de expanso para PCs: .... usam a arquitetura do PC para cifrar o
trfego do(s) barramento(s) interno(s) escolhido(s).
Hardware
Software
CopyMarket.com
78
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
CopyMarket.com
79
Especificao 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 substituio f, XOR e permutao em subblocos L, R.
DES
Bloco da mensagem
Chave k
64 bits
subchave de
rodada Ki
Permutao IP
32
32
L0
K1
L1 = R0
K2
R0
R1 = L0 f(R0,K1)
R2 = L1 f(R1,K2)
L2 = R1
K16
L16 = R15
32
Permutao IP-1
64
Bloco do Criptograma
CopyMarket.com
80
Especificao do DES Cada oitavo bit da chave k (paridade do byte), extrado e os outros
permutados antes da gerao das subchaves locais Ki. Estas subchaves so
calculadas por permutao e compresso, repetidas a cada rodada, entrando na
composio de f conforme o diagrama e tabelas abaixo
DES: i-sima rodada
Ri-1
Li
Buffer de chave
64
32
Ki
E-box
S-boxes
32
Rotao
Expanso
32
Rotao
48
64
Substituio
Compresso
32
48
P-box
Permutao
Li-1
Buffer de chave
Ri
E-box: bits 1 2 3 4
5678
36
48
.......
.....
1 2 3 4 5 6 7 8 9 10111213 ......
Rotao:
Rodadas i =1 2,9,16 outras Direo
Encripta 1 bit 1 bit
2 bits Esquerda
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
CopyMarket.com
81
Especificao das substituies DES As caixas de substituio (S-boxes) foram escolhidas de forma a
minimizar a alcance da tcnica estatstica de ataque por texto pleno escolhido,
conhecido a partir de 1990 como criptoanlise diferencial.
S1 0
1
2
3
E
4
D
1
0
0
F
7
C
1
4
1
D
8
2
F
C
8
2
3
Bits (b1 b6) de entrada
S2 0
1
2
3
F
1
8
E
0
3
D
4
7
1
0
E
7
B
2
D
8
A
1
3
S-box
S3 0
1
2
3
A
0
9
E
0
D
7
0
9
1
D
6
4
9
2
1
A D
0
3
4
2
E
C
4
5
6
7
8
9
A
F
B
8
3
A
6
2
D
1
A
6
C
6
2
B
F
C
9
9
1
7
5
B
3
Bits (b2 b3 b4 b5) de entrada
4
5
6
7
8
9
A
6
B
3
4
9
7
2
F
2
8
E
C
0
1
A
4
D
1
5
8
C
3
F
4
2
B
6
7
... Bits de sada ...
4
5
6
7
8
9
A
6
3
F
5
1
D
C
3
4
6
A
2
8
5
8
F
3
0
B
1
2
6
9
8
7
4
F
E
B
C D
E
F
C
5
9
0
7
B
9
5
3
8
7
3
A
5
0
E
A
0
6
D
valores hexadecimais
B
C D
E
F
D
C
0
5
A
A
6
9
B
5
6
9
3
2
F
C
0
5
E
9
valores hexadecimais
B
C D
E
F
7
B
4
2
8
E
C
B
F
1
C
5
A
E
7
3
B
5
2
C
S4
0
1
2
3
0
7
D
A
3
1
D
8
6
F
2
E
B
9
0
3
3
5
0
6
4
0
6
C
A
5
6
F
B
1
6
9
0
7
D
7
A
3
D
8
8
1
4
F
9
9
2
7
1
4
A
8
2
3
5
B
5
C
E
B
C
B
1
5
C
D
C
A
2
7
E
4
E
8
2
F
F
9
4
E
S5
0
1
2
3
0
2
E
4
B
1
C
B
2
8
2
4
2
1
C
3
1
C
B
7
4
7
4
A
1
5
A
7
D
E
6
B
D
7
2
7
6
1
8
D
8
8
5
F
6
9
5
0
9
F
A
3
F
C
0
B
F
A
5
9
C
D
3
6
A
D
0
9
3
4
E
E
8
0
5
F
9
6
E
3
S6
0
1
2
3
0
C
A
9
4
1
1
F
E
3
2
A
4
F
2
3
F
2
5
C
4
9
7
2
9
5
2
C
8
5
6
6
9
C
F
7
8
5
3
A
8
0
6
7
B
9
D
1
0
E
A
3
D
4
1
B
4
E
A
7
C
E
0
1
6
D
7
B
D
0
E
5
3
B
8
F
B
8
6
D
S7
0
1
2
3
0
4
D
1
6
1
B
0
4
B
2
2
B
B
D
3
E
7
D
8
4
F
4
C
1
5
0
9
3
4
6
8
1
7
A
7
D
A
E
7
8
3
E
A
9
9
C
3
F
5
A
9
5
6
0
B
7
C
8
F
C
5
2
0
E
D
A
F
5
2
E
6
8
9
3
F
1
6
2
C
S8
0
1
2
3
0
D
1
7
2
1
2
F
B
1
2
8
D
4
E
3
4
8
1
7
4
6
A
9
4
5
F
3
C
A
6
B
7
E
8
7
1
4
2
D
8
A
C
0
F
9
9
5
6
C
A
3
6
A
9
B
E
B
D
0
C
5
0
F
3
D
0
E
3
5
E
C
9
5
6
F
7
2
8
B
CopyMarket.com
82
Anlise do DES
Chaves fracas As quatro chaves abaixo, dentre as possveis 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
Nmero de rodadas Aps 5 rodadas, qualquer bit do criptograma funo dos 64 bits de
entrada e dos 56 bits da chave. Porm a tcnica de criptonlise diferencial
(secretamente conhecida dos projetistas do DES) permite ataque eficiente por
texto pleno escolhido, caso o algoritmo execute menos de 16 rodadas.
CopyMarket.com
83
Criptoanlise diferencial
3.
in = 0x60000000
Ki
0x60000000
out
in
L XOR out
Probabilidade( out=00808200|in=0x60000000 ) =
CopyMarket.com
84
b17 in
E-box
Expanso
S-boxes
Ki
b26
b26 key
Substituio
Probabilidade de
b17 b18 b19 b20
P-box
Permutao
Li-1
Ri
Uma
implementao em software,
com o
CopyMarket.com
85
demonstrao de que o
k
DES-1
DES
-1
DES
Chave kkk
k'
k''
DES
DES = algoritmo em
modo de encriptao
criptograma
DES-1
Decripta
DES-1 = algoritmo em
modo de decriptao
Caixas de substituio dinmicas Alguns fabricantes de placas de encriptao DES implementam alocao
dinmica para valores das caixas S1..S8 durante a leitura da chave.
Toda a segurana do DES e os ataques eficientes hoje conhecidos
concentram-se nessas caixas. Substituies aleatrias quase sempre tornam o
algoritmo bem mais vulnervel criptoanlise diferencial ou linear. (resistncia
da cifra a uma dessas tcnicas tende a favorecer outra)
Substituies dinmicas s devem ser usadas com vida til curta.
CopyMarket.com
86
NewDES (Robert Scott, 1985) Apesar do nome, no um padro nem variante do DES. um
algoritmo iterativo com 17 rodadas, que usa blocos de 64 bits e chave de 120
bits, cujos bytes so as subchaves K0...K14, usadas intercaladamente.
NewDES - rodadas 1 e 2
B0
B1
B2
B3
Bytes
do bloco
B4
B5
B6
B7
K0
K1
K2
K3
Rodada
2
K5
K4
Rodada
1
K6
Anlise do NewDES Concebido para implementao 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 criptoanlise diferencial, onde mede-se a freqncia de
diferenas na sada entre pares de chaves)
CopyMarket.com
87
Khufu (Ralph Merkle, 1990) Algoritmo cujo projeto explora as deficincias do DES em software. Para
cifra de bloco de 64 bits. Iterativo com chave de 512 bits, nmero de rodadas
configurvel e S-boxes 8x32 dinmicas, geradas a partir da chave.
Apresenta overhead de tempo execuo para clculo das S-boxes, com
impacto em encriptaes curtas e em ataques por fora bruta. resistente
analise diferencial e linear, e patenteado (licenas concedidas pela Xerox Corp,
P.O. box 1600, Stamford CT, EUA)
Khafre (Ralph Merkle, 1990) Algoritmo cujo projeto explora as deficincias do DES em software. Para
cifra de bloco de 64 bits, uma rede de Feistel iterativa com nmero de
rodadas configurvel e usa chave de tamanho varivel, entre 64 e 128 bits.
Alternativa ao algoritmo Kuhfu que usa S-boxes fixas e portanto sem
overhead no tempo de execuo. patenteado (licena pela Xerox Corp)
RC2 (Ron Rivest, 1990) RC2 um algoritmo proprietrio, restrito aos implementadores
licenciados pela RSA Data Security Inc. Para cifra de bloco de 64 bits. No
iterativo, usa chave de tamanho varivel. (at 1024b). Em princpio resistente
anlise 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 exportao do algoritmo em implementaes que usam 40 bits da
chave, empregado em vrios protocolos criptogrficos para redes TCP/IP.
CopyMarket.com
88
IDEA (Xuejia Lai & James Massey, 1991) Algoritmo baseado em vasta fundamentao terica, cifra de bloco de 64
bits iterativa com 8 rodadas e chave de 128 bits, alterna operaes de 3 grupos
algbricos de estruturas distintas e opera em palavras de 2 bytes.
IDEA - Interational Data Encription Algorithm
W0
ki,1
W1
ki,2
Palavras
do bloco
W3
ki,3
ki,4
ki,5
W2
Rodada
i = 1..8
+
ki,6
k9,1
k9,2
Transformao de sada
Y1 Palavras
Y0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
sada=9
CopyMarket.com
ki,2
ki,3
ki,4
ki,5
k9,3
do criptograma Y2
Subchaves de Encriptao
ChaveK ki,1
+
Y3
Subchaves de Decriptao
(i,1) (i,2) (i,3) (i,4) (i,5) (i,6)
ki,6
k9,4
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
k9,1-1
k8,1-1
k7,1-1
k6,1-1
k5,1-1
k4,1-1
k3,1-1
k2,1-1
k1,1-1
-k9,2
-k8,3
-k7,3
-k6,3
-k5,3
-k4,3
-k3,3
-k2,3
-k1,2
-k9,3
-k8,2
-k7,2
-k6,2
-k5,2
-k4,2
-k3,2
-k2,2
-k1,3
k9,4-1
k8,4-1
k7,4-1
k6,4-1
k5,4-1
k4,4-1
k3,4-1
k2,4-1
k1,4-1
k8,5
k7,5
k6,5
k5,5
k4,5
k3,5
k2,5
k1,5
k8,6
k7,6
k6,6
k5,6
k4,6
k3,6
k2,6
k1,6
89
Anlise do IDEA Algoritmo patenteado, projetado como modelo de cifras de Markov, para
as quais a resistncia criptoanlise diferencial pode ser formalizada e
quantificada. Pode ser usado em qualquer modo encadeado.
Vrios criptlogos j analisaram a verso final do algoritmo (1992), sem
nenhum ter divulgado alguma tcnica descoberta que o enfraquea. 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 simtrica mais robusta em uso.
Implementaes do padro de 8 rodadas em software so em geral 2x mais
eficientes que o DES. Com 4 rodadas so aparentemente seguras e dobram a
eficincia. No pode ser expandido para palvras de 32 bits, porque o IDEA
explora o fato de 216+1 ser primo, enquanto 232+1 no .
{Pode substituir o DES sem muitas modificaes em implementaes
de servios criptogrficos. mais conhecido por ter sido escolhido para uma
implementao do mdulo shareware de segurana de e-mail, o PGP. IDEA
patenteado na Europa e nos EUA, sendo livre de royalties para implementaes
sem fins comerciais. Licenas para uso comercial so negociadas por Ascom
Sistec A G, Mgenwil, Sua: idea@ascom.ch
MMB (John Daemen, 1993) Algoritmo baseado no IDEA, com blocos e chave de 128 bits e
multiplicao mdulo 232-1. vulnervel criptoanlise linear e ao ataque de
chave escolhida de Biham. tambm menos eficiente que o DES para
implementaes em hardware, embora seja eficiente em software.
CopyMarket.com
90
GOST (USSR Gosudarstvenyi Standard, 1989) Padro de algoritmo criptogrfico estabelecido pelo governo da (ex-)
Unio Sovitica 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
+
Substituio
Substituio:
8 S-boxes 4x4 paralelas,
com permutaes no
fornecidas na especificao
Rotao<<11
Li
Ri
Anlise do GOST O DES usa permutaes em f para aumentar a difuso (efeito avalanche
da cifra, que propaga a influencia de qualquer bit de entrada em qualquer bit de
sada), enquanto o GOST usa um grande nmero de rodadas, o que tambm
contribui, junto com o tamanho da chave e a ocultao das S-boxes, para
neutralizar sua anlise diferencial e linear.
CopyMarket.com
91
Blowfish (Bruce Schneier, 1994) Para cifra de bloco de 64 bits e chave com tamanho varivel de at 448
bits. uma rede de Feistel iterativa de 16 rodadas que usa XOR, consulta a
tabela e adio na funo f, onde as 4 S-boxes 8x32 e o vetor de 18 subchaves
so gerados em iteraes de inicializao do prprio algoritmo.
Blowfish
Chave k
Mensagem
Array de subchaves Ki
64 bits
32
32
K1
K2
K16
K17
K18
Criptograma
f:
8
S-box 1
S-box 2
32
32
32 bits
8
S-box 3
S-box 4
CopyMarket.com
+
32
32 bits
32
92
Inicializao e anlise do Blowfish Algoritmo no patenteado, de uso inteiramente livre (o autor acredita na
criptografia como patrimnio intelectual coletivo da cincia).
As subchaves e S-boxes so derivadas na seguinte inicializao:
1. Os vetores de subchaves e depois os das S-boxes so carregados, na ordem
em que indexados, com o XOR bit a bit da representao binria do
nmero 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 iteraes).
Inicializao
VI = 0
VI = XOR k k k k...
Subchaves | S-boxes
Blowfish
-Atribuio com
ps incremento
Chaves fracas (que geram S-boxes duplicadas) podem ser criadas, com
probabilidade de 2-14. Estas chaves no podem ser identificadas antes da
expanso inicializadora, mas at o momento no se conhece forma de
explor-las com tcnicas de anlise diferencial e linear.
O n de mensagens escolhidas necessrias para este ataque da ordem de
28r+1 onde r = n de rodadas da implementao. (24r+1 com chaves fracas)
Em implementaes otimizadas para processadores de 32 bits que carregam
os vetores em cache, a encriptao de cada bloco pode ser feita em 26 ciclos
de clock do processador, usando 5K de memria RAM
CopyMarket.com
93
RC5 w/r/b (Ron Rivest, 1995) Algoritmos para uma famlia de cifras de bloco onde o n de palavras w
do bloco, bytes b da chave e nmero de rodadas r so configurveis. Projetado
para implementao em software, opera com XOR, rotaes variveis e
aritmtica em 32 bits. Sua patente foi solicitada pela RSA Data Security Inc.,
que promete vir a cobrar royalties modestos pela licena.
As subchaves Si so geradas na inicializao. No caso w = 2, o bloco
separado em palavras A e B, e os algoritmos da cifra so
A = A+S0
B = B+SI
for i = 1 to r do begin
A = ((AB)<<<B)+S2i
B = ((AB)<<<A)+S2i+1
end
Inicializao do RC5 w/r/b A chave copiada para um vetor L de inteiros longos L1...Lm usando a
Mescla da chave:
{P=0Xb7e15163}
S0 = P
{Q=0x9e3779b9}
for i = 1 to 2*(r+1)1 do
Si = (Si1+Q) mod 232
i=j=0
A=B=0
n = max ( 2*(r+1), m )
do n times
A = Si = (Si +A+B) >>>3
B = Lj = (Lj+A+B)>>>(A+B)
i = (i+1) mod 2*(r+1)
j = (j+1) mod m
CopyMarket.com
94
Skipjack (NIST, 1990) Algoritmo patenteado e restrito, destinado apenas s funes de cifra em
hardware resistente a violaes. Projetado para implementao nos chips
Clipper, e Capstone, que incorporam a funcionalidade necessria para
uso em protocolos de chaves escrituradas.
Foi desenvolvido em 1985 e testado at 1990 pela NSA, e seus detalhes de
especificao nunca foram divulgados, exceto algumas de suas propriedades
bsicas: para cifra de bloco de 64 bits, com chave de 80 bits e iterativo com
32 rodadas.
Seus critrios de projeto, teste, e resultados dos testes foram avaliados por
um painel de criptlogos no governamentais que o consideraram seguro,
estimando para s daqui a 30 anos a equiparao do custo de ataque por
fora bruta ao SKIPJACK ao custo atual de quebra do DES.
Alguns Algoritmos menos conhecidos 1. FEAL (1987) - Patenteado pela NNT do Japo, semelhante ao DES com
nmero varivel de rodadas e rpido, teoricamente mais frgil que o DES.
Algoritmo favorito para teste de novas tcnicas de criptoanlise
2. LOKI (1991) - Algoritmo australiano patenteado, semelhante ao DES.
3. CA-1.1 (1992) - Algoritmo francs baseado em automata celulares, para
cifra de bloco de 384 e chave de 1088 bits em processamento paralelo.
Patenteado e livre para uso no comercial (H Gutowitz)
4. CAST (1993) - Patente pendente no Canad, considerado para adoo
como padro. Usa bloco e chave de 64 bits, 6 S-boxes (8x32) geradas da
chave. Resistente anlise diferencial e linear. (Adams & Tavares)
CopyMarket.com
95
Princpios bsicos (Shannon, 1949) 1. Difuso - Espalhamento da influncia de bits individuais da chave ou
mensagem atravs da maior parte possvel do criptograma.
2. Confuso - Ocultao da relao entre mensagem, criptograma e chave no
sentido de tornar complexa sua anlise estatstica.
Por outro lado, um algoritmo contendo somente uma S-box 64x64 ocuparia
264 *64 bits (~ dez mil terabytes) de memria. Na prtica intercala-se
camadas de confuso (tabelas pequenas) e difuso, geralmente por meio de
substituies e permutaes, para construi-las.
Redes de Feistel (Horst Feistel, 1973) Desenho de intercalao onde a propriedade nilpotente da operao lgica
de "ou" exclusivo () combinada com a permutao dos operandos para
permitir a introduo de uma confuso qualquer na construo da classe de
funes inversveis que constituem a cifra.
Li = Ri-1 ;
Ri = Li-1 f(Ri-1,Ki)
CopyMarket.com
96
Critrios de definio para as S-boxes mxn 1. Quanto maior a sada n em relao entrada m, mais efetiva tende a ser
a anlise linear e menos efetiva a anlise diferencial, e vice versa..
2. Quanto maior as S-boxes, mais provvel que sua substituio, se
escolhida ao acaso, seja resistente aos dois mtodos de anlise.
3. S-boxes fixas escolhidas para resistirem a estes dois mtodos tm
segurana desconhecida contra mtodos de ataque desconhecido, ao
contrrio das S-boxes randmicas ou geradas a partir da chave.
Velocidade de encriptao
Algoritmo
KB/Seg
Algoritmo
KB/Seg
221
115
110 NewDES
223
DES
35 RC5 bloco32/8rodadas
127
FEAL (8 rodadas)
86
65
91 RC5 32/20
52
GOST
53 Triple DES
12
CopyMarket.com
97
Cifras Encadeadas
RC4 (RSA Data Security, 1987) Algoritmo restrito at 1994, quando teve sua especificao publicada
anonimamente na lista de mensagens Cypherpunk. Para cifras encadeadas de
bytes em modo OFB, usa uma S-box 8x8 S contendo permutao S0...S255 dos
valores hexa 00,..,FF, e dois contadores de bytes m, n.
Gerao da seqncia de pad: k
repeat
n = (n+1) mod 256
m = (m+ Sn) mod 256
Troca (Sm ,Sn)
t = (Sm +Sn) mod 256
k= St
CopyMarket.com
98
SEAL (Don Coppersmith, 1994) Algoritmo para construo de famlias de geradores pseudo-randmicos,
que pode tanto ser usado para cifras encadeadas como adaptado para cifras de
bloco em modo no seqencial (ECB).
Usa uma chave de 160 bits para inicializar trs S-boxes 9x32, um ndice n
semelhante ao VI das cifras de bloco e quatro registradores de 32 bits, para
gerar iterativamente uma seqncia randmica de at 64KB, que pode
funcionar como chave de padding do n-simo bloco de uma cifra.
De arquitetura inovadora, foi projetado para implementao eficiente em
processadores de 32 bits. Adota as seguintes estratgias:
Anlise do SEAL Requer 5 operaes de mquina para gerar cada byte de padding,
alcanando 50 MB/seg num PC 486 de 50 MHz. Parece slido, e at 1996 no
havia sido publicado nenhuma criptoanlise independente do algoritmo.
Patente pendente e licena para implementao pela IBM.
CopyMarket.com
99
LFSR 2
LFSR 1
Sada
- Funo
maioria
LFSR 3
Anlise do A5 Houve uma disputa durante os anos 80 entre os membros do GSM, sobre
o grau de robustez desejada para o padro (a Alemanha queria criptografia
forte, mas sua opinio no prevaleceu). O algoritmo deveria ser restrito, mas
um acordo do GAT com Bradford University para avaliao do algoritmo
omitiu a restrio, e o A5 se tornou pblico.
H um ataque simples ao algoritmo que requer 240 encriptaes. O
algoritmo passa em todos os testes de randomicidade conhecidos, estando sua
fragilidade concentrada nos pequenos tamanhos dos registradores e na
rarefao dos bits de captura dos polinmios irredutveis escolhidos.
O algoritmo bastante eficiente.
CopyMarket.com
100
PKZIP (Roger Schafly) A cifragem (no a compresso) neste utilitrio, se presentes nas verses
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 iteraes onde o CRC dos
32 bits anteriores calculado pelo polinmio 0xedb88320. Um vetor de
inicalizao concatenado ao incio da mensagem. Na decriptao, invertemse 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]*/
Anlise do PKZIP Algoritmo bastante frgil. Um ataque simples de dicionrio com 40 a 200
bytes de texto pleno conhecido (cabealho de mensagens, por exemplo) desvela
a chave em ~227 operaes, ou algumas horas num PC.
CopyMarket.com
101
Cript(1) (Unix, 1983) Algoritmo original de encriptao das primeiras verses do sistema
operacional Unix, uma cifra encadeada baseada na mesma arquitetura da
mquina eletromecnica, Enigma, usada pelos militares e diplomatas alemes
da segunda guerra e quebrada pela equipe inglesa de analistas, liderada por
Alan M. Turing.
O algoritmo simula um rotor de 256 elemetos de substituio usado em
srie com um rotor refletor (a mquina Enigma usava 3 dentre cinco rotores de
substituio, mais um rotor de reflexo).
Para um analista bem instrumentado, esta cifra fcil de atacar. Um
utilitrio de domnio pblico, 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 implementaes em hardware
inviolveis sob licena do governo Britnico para aplicaes classificadas
como Confidential, no 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 comunicao e rastreamento de
aeronaves vendidas a pases estrangeiros aos EUA. Usa um LFSR de 61 bits
inicializado com bits de captura de um dentre 210 polinmios primitivos
armazenados em ROM, e oito filtros no-lineares na sada.
CopyMarket.com
102
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
Funes de Hash
Premissas de um hash ou checksum criptogrfico seguro Como mecanismo principal na autenticao da integridade de dados,
n
funes de hash h:M {0,1} devem satisfazer as propriedades:
1. Propriedades bsicas (unidirecional e livre de coliso)
Dado m, fcil calcular c = h(m) e dado c difcil calcular m;
Dado m qualquer, difcil produzir uma coliso com m (encontrar m'
tal que h(m) = h(m')). O valor de n deve dificultar a produo de
coliso atravs de ataques por dicionrio em m'.
2. Propriedade adicional (resistncia coliso)
Para algumas aplicaes, a funo de hash deve ser resistente a coliso:
deve ser difcil encontrar, por meio de ataques "de aniversrio" ou
tcnica melhor, qualquer coliso na funo h.
Ataques de aniversrio a funes de hash Descrio: Encontrar um par m e m' tal que h(m) = h(m').
Exemplo: Ao propor um contrato (protocolo tipo VII), o fraudador prepara
outra verso que lhe seja vantajosa e prejudicial outra parte.
Testa o hash de variaes de ambas verses, contendo combinaes de
espaos 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 juzo, o fraudador protesta m'.
CopyMarket.com
103
Tamanho do hash n
Encadeamentos de funo compressora As funes projetadas para hash, hoje consideradas seguras, so
construdas encandeando-se alguma funo de compresso (com entrada e
sada de tamanhos fixos, N e n respectivamente), com entrada de blocos da
mensagem e valores de compresso retroalimentados.
Hash por encadeamento de compresso
...mi-1
N
hi-2
mi
Funo de
compresso
hi-1
Funo de
compresso
hi
Funo de
compresso
n
hi+1
CopyMarket.com
104
MD5
Descrio do algoritmo MD5 (Ron Rivest, 1992) Hash de 128 bits, a mais recente da srie de funes de hash
desenvolvidas pela RSA Data Security. MD5 refora a funo anterior MD4,
depois da descoberta de formas de ataque a algumas partes desta.
A mensagem preparada apondo-se sufixo com zeros seguidos da
representao binria do comprimento da mensagem original em 64 bits,
formando blocos de compresso com 16 subblocos de words (32 bits cada)
Nas rodadas i = 0,..,3 (uma a mais que MD4), uma operao no-linear fi
executada 16 vezes, cada execuo envolvendo trs das quatro variveis de
encadeamento A, B, C e D, um subbloco e duas constantes distintas.
Funo de compresso do MD5 - Lao externo
Bloco de compresso mi
512 bits
Rodada
0
Rodada
1
Rodada
2
Rodada
3
A
B
C
D
i
i-1
CopyMarket.com
f0(a,b,c,d,mi,s,ti): ab+((a+g0(b,c,d)+mi,j+ti,j)<<<s)
f1(a,b,c,d,mi,s,ti): ab+((a+g1(b,c,d)+mi,j+ti,j)<<<s)
f2(a,b,c,d,mi,s,ti): ab+((a+g2(b,c,d)+mi,j+ti,j)<<<s)
f3(a,b,c,d,mi,s,ti): ab+((a+g3(b,c,d)+mi,j+ti,j)<<<s)
105
ti,j
B
C
Funo nolinear gr
<<<s
ti,j = trunc(232*abs(sin(j+16*r))
Anlise da funo MD5 O subbloco mi,b(j) escolhido segundo tabela b(j), distinta para cada r.
Um ano aps sua divulgao, den Boer e Bosselaers encontraram uma
forma de derivao de colises mais eficiente que o ataque de aniversrio para
a funo de compresso do MD5. Esta fragilidade na resistncia coliso no
tem impacto nas propriedades bsicas do hash. (Eurocrypt '93)
CopyMarket.com
106
SHA
Descrio do algoritmo SHA (NIST - NSA, 1992) Secure Hash Algorithm, de 160 bits, proposto como padro para o
protocolo de assinatura digital DSA do governo dos EUA. Tambm baseado
em variaes 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 so expandidos de 16 mi,j
para 80 words wi,j de 32 bits, atravs da seguinte rotina:
Gerao dos subblocos para compresso
A
B
C
D
E
Funo nolinear gr
<<<30
<<<5
CopyMarket.com
107
RIPE-MD (RACE - Primitives Evaluation Effort) Padro para algoritmo de hash proposto pelo grupo RACE (Research &
Dev. in Advanced Communications Tecnologies in Europe), de 128 bits.
Duas verses da funo de compresso semelhantes ao MD5, com
rotaes e constantes de operaes distintas, executam em paralelo e os
resultados so somados na retroalimentao das variveis de encadeamento,
para dificultar a criptoanlise do algoritmo.
Em 1997 foi divulgado uma verso de 160 bits, o RIPE-MD160, que tem
as duas funes de compresso paralelas semelhantes do SHA.
HAVAL (Zheng, Pieprick & Seberry, 1993) Modificao de MD5, com sada de tamanho varivel: 128, 160, 192, 224
ou 256 bits. Usa 8 variveis de encadeamento, nmero varivel de rodadas (3 a
5) de 16 operaes, com funes no-linerares de 7 variveis. Rotaes em
dois sentidos impedem o ataque de De Boer compresso.
CopyMarket.com
108
Adaptaes para hash de mesmo comprimento do bloco Algoritmos criptogrficos superdimensionados ou de bloco longo podem
ser adaptados para construo de hash, com diferentes esquemas de
encadeamento, se o tamanho do bloco previne ataques por aniversrio.
Esquema Davies-Meyer
mi
hi-1
chave
encriptao
hi
CopyMarket.com
109
hi-1
chave
encriptao
mi
hi
hi-1
mi
chave (*)
encriptao
mi
hi
hi-1
chave
encriptao
mi
hi
chave
encriptao
hi
Anlise dos esquemas de encadeamento Estes quatro esquemas seguros supem que o algoritmo criptogrfico
tenha o tamanho do bloco idntico ao da chave, que ser o tamanho do hash. O
segundo esquema acima (*) foi proposto como padro ISO para hash baseado
em algoritmo criptogrfico (ISO-IEC/JTC1/SC27/WG2).
O esquema de Davies-Meyer foi modificado por Lai e Massey para usar
o algoritmo IDEA na construo de um hash de 64 bits (Eurocript 92).
Esquema Davies-Meyer modificado
mi
hi-1
64 bits
128 bits
chave IDEA
encriptao
hi
64 bits
CopyMarket.com
110
Esquema Davies-Meyer em tandem ou lado a lado Estes esquemas tm se mostrado seguros para construo de hash que
duplica o tamanho do bloco, com algoritmos criptogrficos cuja chave tenha o
dobro do tamanho do bloco (i.e., IDEA).
Tandem
hi-1
encriptao
chave
mi
mi
chave
encriptao
gi-1
h(m1...ms) =
hg
hi-1
hi
gi
gi-1
Lado a lado
encriptao
hi
gi
chave
chave
encriptao
MDC-2 e MDC-4 (Merley-Schilling, IBM, 1988) Esquemas patenteados para construo de hash que duplicam o tamanho
do bloco, sem restries ao algoritmo criptogrfico simtrico. Esto sendo
considerados para padro ANSI, ISO e avaliados pelo RIPE.
MDC-2
hi-1
chave
encriptao
mi
gi-1
CopyMarket.com
hi
h(m1...ms) =
hg
encriptao
gi
chave
111
MDC-4
h(m1...ms) =
hg
hi-1
encriptao
chave
encriptao
hi
chave
mi
encriptao
gi-1
chave
gi
chave
encriptao
Comprimento
KB/Seg
64
128
22
HAVAL (3 rodadas)
varivel
168
HAVAL (4 rodadas)
varivel
118
HAVAL (5 rodadas)
varivel
95
MD2
128
23
MD4
128
236
MD5
128
174
RIPE-MD
128
182
SHA
160
75
CopyMarket.com
112
MACs usando cifras em modo CBC ou CFB MACs so hashes dependentes de chave no clculo, 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 padres ANSI (X9.9) e ISO (8731-1, 9797).
MACs usando funes de hash Dada uma funo de hash h qualquer, existem adaptaes possveis para
torn-la dependente de chave. Dentre os esquemas que concatenam a
mensagem m chave k, os mais seguros contra fraudes so h(k1,h(k2,m)) ou
h(k,_,m,k), ou concatenao de bytes da chave a cada bloco de m.
Anlise dos esquemas de gerao de MACs MACs gerados por cifras apresentam um problema em potencial, no fato
do verificador poder usar a chave para decriptar o hash de trs para frente,
buscando construir uma coliso com a mensagem original.
Esquemas com funes de hash que geram MACs por concatenao de
chave mensagem podem permitir fraudes por quem no detm a chave mas
conhece h. mais seguro usar ambos, cifrando o hash da mensagem.
Usa-se MACs em situaes onde a verificao da integridade, sem sigilo
da mensagem, necessria.
CopyMarket.com
113
Segurana dos sistemas de chave pblica Esses sistemas so desenhados para resistir a ataques de texto pleno
escolhido, mas podem ser sensveis a ataques por criptograma escolhido.
Portanto, nos sistemas onde a assinatura operao inversa da cifragem, pares
distintos de chaves devem ser usados para estes dois servios.
Dos algoritmos assimtricos at hoje propostos, apenas trs so seguros e
prticos para ambos servios: RSA, ElGamal e Rabin. Existe uma famlia de
algoritmos teis apenas para assinatura, e outros pouco prticos por serem
inseguros, muito lentos ou usarem chaves muito longas.
CopyMarket.com
114
RSA
O mais usado e fcil de implementar dos algoritmos assimtricos, tem o
nome formado com iniciais dos descobridores, Rivest, Shamir & Adleman.
Resiste a quase 20 anos de anlise, sendo sua segurana supostamente baseada
na dificuldade de se fatorar nmeros inteiros.
Gerao de parmetros e par de
chaves do sistema: {t = tamanho}
p = geraprimo(rand(t))
q = geraprimo(rand(t))
(n) = (p-1)*(q-1)
{secretos}
n = p*q; e= rand(t)
e = e / mdc(e,) [>1] eA = (e,n)
d = euclext(e,,1)
dA = (d,n)
mi = cid mod n
{decripta bloco}
CopyMarket.com
115
Anlise do RSA
Premissas sobre a segurana do algoritmo 1. Qualquer dos parmetros p, q e (n) permite o clculo trivial de dA a partir
de eA, devendo portanto serem protegidos juntamente com dA.
2. O ataque por fora bruta mais eficiente ao algoritmo consiste em tentar
fatorar n para se obter (n) e saber em que anel inverter eA. Pode-se tambm
tentar adivinhar (n), mas o custo deste ataque to alto quanto o de fatorar
n, sendo maior ainda o custo de se tentar adivinhar eA-1.
3. Em princpio, poderia existir um mtodo de ataque mais eficiente ao RSA.
Porm tal mtodo serviria tambm para fatorao de n, e o problema da
fatorao vem sendo extensamente estudado desde 340 A.C., sendo seu
1/3
2
melhor algoritmo de complexidade exponencial, O(ec+x ln (x)).
Ataques a protocolos que usam o RSA Mtodos conhecidos exploram falhas nos protocolos (no diretamente no
algoritmo), devido exponenciao preservar estruturas multiplicativas:
Mdulo comum;
CopyMarket.com
116
Ataque por criptograma escolhido contra assinatura Este ataque possvel contra protocolos que assinam a mensagem por
extenso (e no um hash da mesma), e prescinde da conivncia ou negligncia
do agente fraudado em assinar mensagens sem motivo aparente.
Agente A: k=(e,d)
2: Recebe m cifrada...
3: y
c = me mod n
4: Assina nova "mensagem" y
u = yd mod n
Agente I
2: Gera n. randmico r < n ;
Calcula x = r mod n
Calcula y = xc mod n
Solicita assinatura de y,
5: u
6: Calcula t =
Desvela m =
x = re mod n r = xd mod n
r-1mod n
tu mod n
Cartrio A: k=(e,d)
4: m
6: u
Calcula x = r mod n
Calcula m = xM mod n
Solicita autenticao de m,
5: Reconhece firma de m
u = md mod n
(rm)
Agente B
-1
7: Calcula t = r mod n
Autenticao de M = tu mod
CopyMarket.com
117
Ataque em mdulo comum Este ataque possvel se a distribuio de chaves para a cifra que usa o
RSA atribui chaves com o mesmo mdulo a usurios distintos. Qualquer
mensagem encriptada por mais de um usurio pode ser facilmente vazada.
Agentes A, B
2,3: A e B recebem a mesma
mensagem m cifrada...
e
ca = m A mod
e
cb = m B mod n
Supe mdc(eA,eB)=1
2: A, ca
3: B, cb
Agente I
4: Usa Euclides extendido para calcular
x , y onde xeA + yeB = 1
5: Desvela m: Se x<0
Ataque com expoentes pequenos de encriptao Encriptao/verificao de assinatura no RSA mais rpido quanto menor
for a chave pblica. Porm este tipo de ataque possvel com a encriptao de
e(e+1)/2 mensagens linearmente dependentes, caso hajam
Ataque com assinatura de criptograma As operaes de assinatura e encriptao devem ser executadas nessa
ordem, para evitar fraudes decorrentes deste tipo de ataque, onde nem mesmo o
uso de funo de hash para assinatura pode evitar.
CopyMarket.com
118
Agente A: k=(e,d)
2: B, eB
c = meB mod nB
4: u
u = cdA mod nA
6: B,eB
Agente B
5: Verifica e decripta u;
Gera mensagem expria M;
Calcula x < nB tal que
Mx = m mod nB;
6: Publica novo eB xeB
7: Acusa A de ter lhe enviado M
Preveno contra ataques conhecidos ao RSA 1. Conhecimento de um par (e,d) permite a fatorao do mdulo n.
2. Conhecimento de um par (e,d) permite encontrar outros para mesmo n
3. Mdulo comum no deve ser usado em servios de rede.
4. Mensagens devem ser preenchidas com bits randmicos enquanto < n.
5. O expoente pblico deve ser grande, e a assinatura anteceder a cifra.
CopyMarket.com
119
Rabin
Algoritmo assimtrico cuja segurana derivada da dificuldade de se
extrair raiz quadrada em anis, com decriptao no determinstica. A ordem n
do anel deve satisfazer n = pq onde p, q 3 mod 4 (M. Rabin, 79).
Gerao de parmetros:
Encriptao:
p = gerapr3mod4(rand( ))
q = gerapr3mod4(rand( ))
n = p*q
{pblico}
-1
r = q*(q mod p)
s = p*(p-1 mod q)
eA= 2
{k pblica}
dA = (r,s)
{k privada}
c = m2 mod n
Decriptao:
t = c(p+1)/4 mod p
u = c(q+1)/4 mod q
m =((r)*t +(s)*u) mod n
Variante de Williams (Hugh Williams, 1980) Alternativa do algoritmo com decriptao unvoca, usa p 3 mod 8,
q 7 mod 8 e chave privada r = ((p-1)(q-1)/4+1)/2. O criptograma tem trs
partes, sendo r usado na decriptao, como expoente em uma das partes.
CopyMarket.com
120
ElGamal
Algoritmo assimtrico cuja segurana derivada da dificuldade de se
extrair logaritmos discretos em corpos finitos. (T. ElGamal, 1984).
Gerao de parmetros, chaves
assimtricas e chave de sesso:
p = geraprimo(rand( ))
g = rand(|p|)
dA= x= rand(|p|) {chave privada}
y = gx mod p
eA= (p,g,y)
{chave pblica}
km = rand(|p|)
k = km/mdc(km,p1) {ch. sesso}
a = gk mod p
Assinatura:
b = euclext(k,p1,mx*a)
{(a,b) = assinatura de m }
(ya*ab) mod p =? gm mod p
Cifragem:
b = (yk*m) mod p
{(a,b) = criptograma de m }
m = (b*a-x) mod p
Anlise do algoritmo de ElGamal Cada assinatura ou encriptao requer um valor randmico para k. O
conhecimento de pelo menos duas mensagens encriptadas ou assinadas como o
mesmo k permite a recuperarao da chave privada x.
Este algoritmo no patenteado, mas sua verso 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 generalizaes do algoritmo de ElGamal Prova de identidade (T. Beth, EUROCRIPT 88);
Derivao de chaves (W. Jaburek, EUROCRIPT 89);
Autentio de senhas (C. Chang & S. Huang, IEEE Carnahan Conf. 91);
Esquema p/ protocolos de assinatura (Horster, Petersen, ASIACRIPT 94).
CopyMarket.com
121
Algoritmos baseados no problema da mochila Merkle-Hellman foi o primeiro algortmo assimtrico divulgado (78).
Baseia-se no problema combinatrio de se encontrar uma partio em um
conjunto fixo de inteiros onde a soma de elementos d igual ao argumento.
A chave privada formada por um conjunto fixo supercrescente (verso
trivial do problema) com a qual a funo decriptadora calcula a partio que
representa a mensagem. A chave pblica um conjunto fixo genrico
equivalente (obtido daquele por operaes modulares), no qual a mensagem
mapeia uma partio, cuja soma seu criptograma.
So inseguros, apesar de NP-completo o problema em que se baseiam: a
chave privada pode ser obtida em tempo polinomial a partir da pblica.
Algoritmos baseados em cdigos de recuperao de erros Algoritmos de McEliece empregam cdigos de Goppa como se fossem
cdigos lineares, baseado em ser NP-completo o problema de se encontrar uma
palavra de distncia fixa ao argumento, em um cdigo linear.
A chave pblica o produto de trs matrizes sobre GF(2): uma
permutao, a matriz geradora de um cdigo de Goppa e uma matriz no
singular. A chave privada a tripla das matrizes. Apesar de ser rpido 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 fatorao de inteiros. Tambm requerem chaves muito longas.
CopyMarket.com
122
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
6. Implementaes Parte 1
Pedro Antonio Dourado de Rezende
Limitaes:
Atualizaes:
CopyMarket.com
123
Algoritmo RSA Existem vrios fabricantes licenciados para implementao em chip VLSI.
A mais eficiente no mercado em 1995 cifra a 64Kb/seg com mdulo de 512
bits (~1000x mais lenta que o DES). Implementaes em espao limitado
(smartcards) so mais lentas.
Freq.
Velocidade
Ciclos p/
Tecnologia/
modulo
Companhia
clock
(bloco 512)
bloco 512
transstores
mximo
Alpha
Technology
25 MHz
AT&T
15 MHz
British Telecom
13 Kbits/seg 0.98 M
2.0 / 180K
1024 bits
19 Kb/s 0.4 M
1.5 / 100K
298 bits
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
1.0 / 100K
1024 bits
Cryptech
14 MHz
17 Kb/s 0.4 M
Cylink
30 MHz
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
1.0 / 60K
512 bits
120 bits
Acelerao de sistemas que usam o RSA A escolha da chave pblica pode influir na velocidade de encriptao ou
verificao. Valores fixos de eA com 2 bits ligados requerem apenas 17
multiplicaes para executar a exponenciao. Recomenda-se eA = 65537 =
216+1 (padro ANSI X.509 e padro PKCS) ou eA = 3 (PEM e PKCS)
CopyMarket.com
124
Verses distintas do problema do logaritmo discreto Avanos no estado da arte do problema de se fatorar nmeros inteiros
comprometem a eficincia dos algoritmos assimtricos que usam aritmtica
modular, pois demandam dessas implementaes chaves maiores para que
manterem a mesma segurana.
Alternativamente,
pode-se
implementar
estes
algoritmos
usando
Aritmtica das curvas elpticas sobre corpos finitos Na geometria analtica, o conjunto de pontos de um espao vetorial com
coordenadas (x,y) que satisfazem uma dada equao da forma.
y2 = x3+ax+b
chamado de curva elptica, caso os coeficientes satisfaam 4a3+27b2 0.
{Em 1985 N. Koblitz e V. Miller descobriram que, se aplicada a um
espao onde as coordenadas so elementos de um corpo finito (ex: Zp), a
definio de curva elptica seleciona pontos que, incluindo-se um "ponto no
infinito", formam um grupo algbrico sob a operao de composio inspirada
na geometria das secantes dos espaos mtricos. Esta operao substitui a
operao de exponenciao em algoritmos assimtricos.
CopyMarket.com
125
Zp
E(Zp)
Produto
a*b mod p
P+Q
Exponenciao
an mod p
nP
Logaritmo discreto
Chaves pblicas com nvel de segurana equivalentes Tempo p/ recuperar Fatorao em Zp:
Logaritmo em
chave privada
Number field sieve E(Zp): Pollard - Rho
3x108 MIPS - ano
3x1018 MIPS - ano
3x1028 MIPS - ano
CopyMarket.com
~960 bits
~1820 bits
~2500 bits
155 bits
210 bits
239 bits
126
Computao Quntica Teoricamente um tomo pode funcionar como processador, onde o estado
de excitao de um eltron codifica um bit. A superposio linear de estados na
teoria quntica significa que uma malha de processamento paralelo pode
colapsar para a soluo de um probrema massivamente distribuido, como o da
fatorao de um inteiro, trivializando a criptografia assimtrica. A construo
de computadores qunticos parece ainda remota.
CopyMarket.com
127
Restries:
Abrangncia:
Limitaes:
CopyMarket.com
128
Assinatura de m = (r,s):
repeat
k = rand( ) mod q {ch. sesso}
r = (gk mod p) mod q
s = (k-1*(SHA(m)+xr)) mod q
until s 0
q = geraprDSA (rand(160))
repeat
p=geraprDSA(rand(512+64t))
until q | (p-1)
repeat
h = rand(512+64t) mod p
g = h(p-1)/q mod p
until g 1
x = rand(|q|)
{chave privada}
x
y = g mod p
eA= (p,q,g,y)
{chave pblica}
que
facilitam
recuperao
da
chave
privada
x.
CopyMarket.com
129
Esquema Meta-ElGamal
O Meta-algoritmo de ElGamal um esquema para se derivar milhares de
algoritmos assimtricos para assinatura digital (Horster, Petersen & Michels:
1994 ACM computer conference on communications security).
Gerao de parmetros, chaves
assimtricas e chave de sesso:
Assinatura de m = (r,s):
repeat
k = rand( ) mod q {ch. sesso}
until mdc(k,q) = 1
r = gk mod p
t = r mod q
p=geraprimo(rand( ))
repeat
q = rand( )
until q | (p-1)
repeat
g = rand( ) mod p
until gq mod p = 1
x = rand( ) mod q{chave privada}
y = gx mod p
{chave pblica}
eA= (p,q,g,y)
equao de assinatura
ak = b + cx mod q
equao de verificao:
ra =? gbyc mod q
tm
tm
ms
tm
ts
sm
ts
1
1
1
1
CopyMarket.com
Equao de assinatura
(1) mk = s+tx mod q
Equao de verificao
rt = gs*ym mod q
rt = gm*ys mod q
rs = gt*ym mod q
rs = gm*yt mod q
rm = gs*yt mod q
rm = gt*ys mod q
130
Feige-Fiat-Shamir
(Canal seguro)
1: p=geraprimo(rand(
))
q=geraprimo(rand( ))
n = pq;
s = v-1/2 mod n
Servidor
de chaves S
3: B solicita EA= v
Agente A
4.1: Gera n randomico rj;
Calcula xj = rj
4.1: xj, n
mod n
4.5: Se bj = 1 ento
calcula tj = rj*s mod n
seno tj = rj
Repetem k iteraes: j de 1 at k
4.4: bj
4.6: tj
Agente B
4.3: Gera bit randomico bj
4.5: Se bj = 1 ento
2
verifica xj =? tj *v mod n
seno xj
=? tj2 mod n
Anlise do esquema Feige-Fiat-Shamir O nmero de iteraes pode ser reduzido por paralelizao, 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 funo do verificador B em uma funo de hash, sendo de 20 a 100 vezes
menos intensivo em multiplicaes que o RSA.
CopyMarket.com
131
(EUROCRIPT 90)-
Ohta-Okamoto
(CRIPTO 88)
Guillou-Quaisquater
(EUROCRIPT 88)
CopyMarket.com
132
CopyMarket.com
133
Quadro resumo -
Tpico
ISO/IEC JTC 1
ISO TC68
ANSI
Information
Instituies
Technology
Financeiras
X3.106
Modos de operao ISO/IEC 8372
ISO/IEC 10116
ISO/IEC 9797 ISO 8730 (DSA)
X9.9
Message
Auth.Code (Geral)
ISO 8731 (RSA)
ISO 9807
X9.19
Mess. Auth. Code
(Bancos)
ISO/IEC 9594.8
X9.30.1 (DSA)
Algoritmos de
assinatura digital
ISO/IEC 9796
X9.31.1 (RSA)
ISO/IEC 10118
X9.30.2 (SHA)
Funes de hash
X9.31.2 (MDC)
ISO/IEC 9594.8
ISO/IEC 9796
Gerncia de chaves ISO/IEC 11770.2
(simtrico)
Autenticao de
agentes
Gerncia de chaves
(sim. multi-centro)
Gerncia de chaves ISO/IEC 9594.8
(assimtrico)
ISO/IEC 11770.3
ISO 11131
X9.26
ISO 8732
ISO 11568
ISO 11649
X9.17
X9.24
X9.28
ISO 11166
X9.30.3
U.S. Federal
Government
FIPS PUB 81
FIPS PUB
113
FIPS PUB
171
Outros padres A interface de uso de cartes inteligentes com 6 pontos de contato foi
objeto de padronizao pelo comit tcnico do OSI, publicado como ISO/IEC
7816. So especificadas as caractersticas fsicas, posio dos contatos,
natureza e protocolo de intercmbio dos sinais eletrnicos, dentre outros.
CopyMarket.com
134
CopyMarket.com
135
1.
2.
Modelo Hierrquico de certificao Este modelo, proposto como padro Privacy Enhanced Mail pela IETF
nos RFCs 1421 a 1424, prev identificao nica do sujeito em toda a internet.
A verificao de certificados segue uma cadeia de autenticao por entidades
certificadoras, com consulta a lista de revogao de certificados, com a
assinatura final da IPRA (Internet Policy Registration Authority).
Redes de confiana O utilitrio de domnio pblico PGP para sigilo e assinatura digital de email (ndice de sites em http://www.mantis.co.uk/pgp/pgp.html), pressupe um
mecanismo off-line no eletrnico de distribuio fim-a-fim de chave pblica,
ou a distribuio por e-mail com a assinatura de algum outro usurio de
confiana. Teve aceitao maior que o PEM, devido a sua praticidade.
CopyMarket.com
136
Certificados de e-mail ....validam o vnculo entre uma caixa postal de email e uma chave pblica, com dados sobre a conta de e-mail.
2.
CopyMarket.com
137
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
6. Implementaes Parte 2
Pedro Antonio Dourado de Rezende
Pontos de Falha Ataques por dicionrio a arquivos de senhas, sniffers, acesso em disco ou
em RAM de chaves secretas ou privadas (exploits), so os pontos mais frgeis
na implementao de servios de segurana externa.
Esquemas de autenticao baseados em desafio, em sequenciadores ou em
sincronizao que geram senhas descartveis para neutralizar ataques de
dicionrio, 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 no devem ser usadas como ponto crtico de falha em
um sistema de segurana. Mesmo os chips para carto que trabalham com
encriptao interna (ex.: IBM DS5002FP), onde bytes trafegam no barramento
e so carregados encriptados em RAM e EPROM, so passveis de ataque, nos
quais o material de chave armazenado ou gerado pode ser extrado. Ataques
mais comuns a tokens de acesso livre so:
1.
2.
anmalo
em
CopyMarket.com
138
Redes pblicas As redes pblicas que funcionam pela aderncia ao conjunto padronizado
de protocolos de comunicao denominado TCP/IP so, por um lado,
intrinsecamente inseguras devido aos objetivos originais na sua concepo,
enquanto por outro lado oferecem o potencial de interconxo global atravs 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 ns da rede global. A busca de segurana neste cenrio impulsiona
novas direes na cincia da computao, para vencer desafios no controle de
trfego IP atravs de sistemas legados e interoperveis.
Vulnerabilidade do TCP/IP O ambiente TCP/IP difcil de ser precisamente controlado. Vrios tipos
de ataque via internet exploram falhas conceituais de segurana em seus
servios, sendo o custo deste controle bastante alto. Busca-se o equilbrio entre
disponibilizao de servios e controles de segurana.
Freqncia relativa de ataques na internet
1
spoofing de IP
SMTP (sendmail)
adivinhao de senhas
CopyMarket.com
139
Verso
IHL
31
Tipo de servio
Identificao do datagrama
Tempo de vida
Transporte
Offset do fragmento
Checksum do cabealho
Endereo de origem
Endereo de destino
Opes
31
Porta de origem
Porta de destino
U A P R S F
R C S S Y I
Checksum
Janela
Ponteiro urgente
Opes
CopyMarket.com
140
Endereo IP = A
3: Gera n sequencial SNA.
6: Se 5 ento ACK:SNA
7: Se 6:ACK = SNA
ento reconhece B
Endereo IP = B
4: SYN:SNA, ACK:SNB
5: Se 4:ACK = SNB
ento reconhece A
A oferece a B servio de
acesso restrito
1: Gera n sequencial SN
5: Estima SNA+ a partir de SNA
2: Spoof B, SYN:SN
6: ACK:SNA+
Detalhes:
a - RFC 693 determina que um contador de 32 bits para SN deve ser
incrementado a cada 4 seg, mas nas implementaes 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 sesses TCP completas podem ser feitas.
CopyMarket.com
141
2.1.3
2.3.3
2.1.1
2.3.2
2.1.2
1.1.3
Mdia
2.2.2
1.1.1
2.2.1
1.2.2
2.3.1
1.1.2
1.3.1
1.3.2
Baixa
1.2.3
1.2.1
1.2.4
Extenso do dano
Mnimo
Pequeno
1- Ataques internos
1.1- Acesso indevido
1.1.1- Falha de autenticao
1.1.2- NFS
1.1.3- X-windows
1.2- Sabotagem
1.2.1- Sobrecarga
1.2.2- Source Routing, RIP, ICMP
1.2.3- Depredao fsica
1.2.4- Virus
1.3- Vazamento
1.3.1- Sniffers
1.3.2- Engenharia Social
Srio
Muito srio
Desastroso
2- Ataques externos
2.1- Acesso indevido
2.1.1- Ataque de nmero sequencial TCP
2.1.2- Source Routing, RIP, ICMP
2.1.3- Sequestro de sesso TCP
2.2- Sabotagem
2.2.1- Sobrecarga
2.2.2- Fragmentao
2.3- Vazamento
2.3.1- Sniffers
2.3.2- Troianos
2.3.3- Exploits
Fonte: Othmar Kyas - Internet Security, 1997
CopyMarket.com
142
Planejamento integrado As tcnicas de proteo para redes TCP/IP, sem a qual investimentos em
conectividade podero no compensar riscos decorrentes, podem amplificar ou
neutralizar mutuamente suas funcionalidades, dependendo de como seu uso for
planejado e integrado.
Mecanismos bsicos de controle As tcnicas de proteo s redes TCP/IP, sem as quais os protocolos
criptogrficos podem ser incuos, devem ser implementadas segundo
planejamento de segurana que especifica a natureza do trfego esperado:
1.
2.
3.
4.
5.
6.
8.
9.
A filtragem deve incluir todo trfego que cruza o permetro da rede interna.
CopyMarket.com
143
Permetros de segurana A demarcao dos pontos de entrada e sada de trfego da rede interna
para a internet (ou entre subredes) permite a instalao de mecanismos de
controle que filtram pacotes e delimitam a rea de ao de outros mecanismos
de segurana. Por outro lado a filtragem pode introduzir pontos singulares de
falha e impactar na capacidade de vazo deste trfego.
Permetro
Controle de
trfego
internet
Rede
interna
Firewalls:
Camada de Aplicativo
Camada de Presentao
Camada de Sesso
Camada de Transporte
Camada de Rede
Screening router
G
Application gateway
ou Bastion host
Camada de Enlace
Camada Fsica
CopyMarket.com
144
Tcnicas de filtragem
Critrios A filtragem de pacotes TCP/IP guiada por listas de regras. Uma regra de
filtragem descreve critrios de deciso, tipicamente baseados em:
direo do trfego: .......rede interna para externa, vice versa
interface: .......................subredes ou enlace de origem e de destino
tipo de protocolo:..........IP, ICMP, TCP, UDP, IPX, etc.
endereos:......................endereo IP de origem e de destino do pacote
portas:............................nmero de porta de origem e de destino.
Informao sobre o estado do TCP: ACK, SYN, RST, PSH, SN, etc
Mecanismo de filtragem 1 Operaes - qualquer regra determina uma das seguintes aes:
CopyMarket.com
145
Operaes de filtragem
IP:x.y.w.z
IP:a.b.c.d
in
in
out
Lista de regras p/
interface externa
Lista de regras p/
interface interna
internet
Aciona log
ou alarme
S
Regra permite
pacote?
S
Caso de log ou
alarme?
N
S
Regra bloqueia
pacote?
Descarta
Pacote
N
N
ltima regra
da lista?
Ao
IP origem
porta orig
IP destino
porta dest
block
198.10.12.3
80
permit
200.0.0.0
25
ACK
CopyMarket.com
146
Arquitetura de firewalls
1 Permeabilidade Como os servios TCP so full duplex, as regras de filtragem devem distinguir
entre o trfego de servio demandado e o de servio oferecido:
3 Complexidade de anlise Um filtro de pacotes com lista esttica de regras no garante segurana na
oferta e demanda de alguns servios que lhe entrecruzem, tais como:
X-Windows............................protocolo X-11
4 Funcionalidade Filtros de pacotes que mantm em tempo real informaes sobre sesses
exigem ambientes de sistema, e so chamados proxies ou gateways.
CopyMarket.com
147
Selecionando trfego para subredes Suponha a poltica de segurana que especifique permisso de trfego
para as subredes da rede 198.2.0.0 exceto a subrede 198.2.3.0, para a qual o
trfego deve ser bloqueado com exceo daquele destinado ao host 198.2.3.4.
A seguinte lista de regras implementaria sua filtragem:
regra n
Ao
IP origem
porta orig
IP destino
porta dest
protocolo
flags
permit
198.2.3.4
TCP
block
198.2.3.0
TCP
permit
198.2.0.0
TCP
Servio customizado entre dois hosts Suponha que uma empresa desenvolveu software proprietrio que usa a
mesma porta TCP no cliente e no servidor (ex: 4444), e sua poltica de
segurana exige permisso em hosts especificados para cliente e servidor.
Num firewall que filtra associaes:
regra n
Ao
IP origem
porta orig
IP destino
porta dest
protocolo
flags
permit
198.2.3.4
4444
200.5.8.2
4444
TCP
Cliente
0101
1010
0101
1010
4444
TCP
IP
4444
TCP
IP
198.2.3.4
200.5.8.2
Servidor
internet
Subrede
interna
CopyMarket.com
148
Servio customizado entre dois hosts (continuao) A granularidade de configurao pode afetar sutilmente a capacidade do
filtro. Neste exemplo, uma lista que parece atender especificao de filtragem
pode falhar, abrindo acesso no especificado ao host do servidor.
Num firewall que filtra apenas uma porta:
regra n
Ao
IP origem
comentario
IP destino
porta orig
protocolo
flags
permit
198.2.3.4
clienteserv
200.5.8.2
4444
TCP
permit
200.5.8.2
serv cliente
198.2.3.4
4444
TCP
0101
1010
0101
1010
Cliente Servidor
4444
TCP
IP
0101
1010
0101
1010
0101
1010
Outros
servios
internet
200.5.8.2
198.2.3.4
Subrede
interna
Filtrando spoofing de endereo interno Conforme funcione o filtro, bloqueia-se na sada da interface interna ou na
entrada da interface externa, endereos de origem da subrede interna.
Num firewall com apenas duas interfaces:
regra
Ao
IP origem
port orig
IP destino
port dest
interface
comentrio
block
200.5.8.0
e1
filtra sada
e0
filtra entrada
Spoof IP:
Subrede
.2
200.5.8.0
Orig 200.5.8.3
Dest 200.5.8.2
internet
198.2.3.4
CopyMarket.com
e0
e1
.3
149
Bloqueando spoofing de endereo interno (continuao) Num roteador ou bastion host com mltiplas interfaces, o bloqueio efetivo
de spoofing de endereo interno exige do filtro granularidade para
especificao da direo do trfego a ser filtrado.
Num firewall com mltiplas interfaces:
regra n
Ao
IP origem
porta orig
IP destino
porta dest
interface
direao
block
200.5.8.0
e0
in
block
200.5.9.0
e0
in
Subrede
.2
200.5.8.0
Spoof IP:
Orig 200.5.9.3
Dest 200.5.8.2
e1
internet
e2
e0
198.2.3.4
Subrede
200.5.9.0
.3
Ao
IP origem
port orig
IP destino
port dest
interface
comentrio
block
200.5.8.0
e1
filtra sada
block
200.5.9.0
e1
filtra sada
block
200.5.8.0
e2
filtra sada
block
200.5.9.0
e2
filtra sada
CopyMarket.com
150
Application gateways
3-homed host
Funo opcional de roteamento
Placa
de rede
ou
modem
Rede 1
Placa
de rede
ou
modem
Rede 2
Placa
de rede
ou
modem
Rede 3
Configurao da mquina hospedeira de base mltipla O sistema operacional precisa ter seu roteamento automtico entre
interfaces (ipforwarding) desabilitado, e outras precaues necessrias:
CopyMarket.com
151
Servidores proxy
So vistos atravs de um permetro de segurana como servidor ou cliente
do servio demandado ou oferecido, fazendo intermediao do servio e
acrescentando funcionalidade aos gateways de base mltipla.
Sua principal caracterstica de segurana permitir ocultar ao trfego
externo as mquinas do permetro interno que hospedam servios oferecidos,
pois ataques baseados em escuta requerem visibilidade do alvo.
proxy de aplicao........oferecem servios de intermediao de acesso a
uma aplicao especfica, como ftp, telnet, www, etc.
proxy genrico ..............funcionam como retransmissores de pacote com
filtragem a nvel de portas baseada no estado das sesses TCP. Pressupe o
uso recomendado de portas para os WKS.
proxy de circuito...........acrescentam funcionalidade aos proxys genricos,
estabelecendo um circuito virtual fim-a-fim entre o usurio da rede interna
e vrios servios de um destino. Requerem a instalao de programascliente que reconheam o intermediador (ex.: SOCKS).
CopyMarket.com
152
Uso de portas:
O bloqueio de servio por filtragem baseado em nmero de porta no
efetivo, pois o vnculo de portas a servios que utilizam o TCP est
apenas convencionado para os Well Known Services (RFC 1700)
Portas privilegiadas:
A informao visvel no cabealho do pacote TCP sobre o estado da
sesso e o critrio de portas privilegiadas (<1024) no so suficientes para
bloqueios unidirecionais. (Ex: FTP).
Tunelamento:
Regras de filtragem podem ser subvertidas por ataques de fragmentao
ou tunelamento (RFC 1858), se o trfego dos servios demandados ou
oferecidos requerer a habilitao destes recursos.
Exploits:
A autenticao contnua de sesso pode ser subvertida em sistemas pouco
seguros pelo vazamento de chaves privadas ou de sesso, atravs de
ataques de exploits implantados via www ou e-mail.
CopyMarket.com
153
Roteador
com triagem
Servidor
de
autenticao
internet
Trfego de
entrada da
internet
Rede
intern
Servidores
G
FTP
Servidor de
autenticao
internet
Roteador
com triagem
Web
Rede
intern
Gopher
FTP
internet
Roteador
com triagem
autenticao
Web
Gopher
CopyMarket.com
Proxies
DNS
Gate de e-mail
Rede
intern
154
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
7. Exemplos de Aplicaes
Pedro Antonio Dourado de Rezende
Histrico do e-mail {O PGP foi o primeiro protocolo criptogrfico concebido para uso na
internet que fazia uso de chaves pblicas. Implementado e distribuido pela
internet por Phil Zimmerman em 1986, implementa o RSA e o IDEA para
negociao de envelopes digitais na trasmisso de e-mail autenticado e
encriptado. Devido ao uso de criptograifa robusta e infrao de patentes, o
autor teve problemas com a justia americana, tendo posteriorment negociado
acordos com as partes envolvidas e licenciado sua distribuio
Histrico do www O NCSA MOSAIC foi o primeiro navegador web a incorporar ganchos
para adio de utilitrios de segurana, tais como o PGP e as implementaes
de clientes SMTP com suporte especificao PEM.
Em 1994, com o impulso do comrcio eletrnico na Web, a consolidao
das tentativas de se incorporar sigilo e autenticao aos protocolos nela
empregados foi iniciada. J existem cerca de 50 esquemas de aplicao
criptogrfica para o comrcio eletrnico implementados ou propostos na
literatura, em 1998.
CopyMarket.com
155
SSL (Secure Sockets Layer, 1994) Proposto e implementado pela Netscape em seus browsers e servidores
Web, sob licena da RSADSI, oferece autenticao de servidor e
opcionalmente do cliente com criptografia para servios genricos, protegendo
toda a pilha TCP/IP para os protocolos de aplicaes.
Sua execuo verifica certificados de chave pblica e negocia a escolha de
envelope digital entre cliente e servidor, podendo utilizar certificados X509,
algoritmos Diffie-Hellman, RSA, DES, MD5 segundo padres PKCS.
CopyMarket.com
156
2: Anuncia na Web
Comerciante C
0: Abre conta em V
1: Cadastra-se em S
Agente A
0: Obtem carto V .
1: Cadastra-se em S
Autoridade
Certificadora S
1: registra A,M,V
2: distribui certificados
1: V Cadastra-se
em S
Instituio
financeira V
1: cadastra A, C
3: DS(A,EA)
4: EA(DS(C,EC))
5: EC(m,p,EV(vA))
Comerciante C
Agente A encomenda m a preo p,
pagamento por carto vA
Autoridade
Certificadora S
CopyMarket.com
Instituio
financeira V
157
SET (continuao)
8: EA(?,m,p,EV(vA),C)
Comerciante C
prepara fatura e
confirma cliente
Agente A
6: EV(A,p,EV(vA),C,DC(vC))
VAN
Banco B
$$$
7: V valida
transao e verifica
crdito em conta vA
Instituio
financeira V
10: EV(DC(m),p,EV(vA),vB)
VAN
Banco B
transfere fundos $ $ $ $
11: B transfere p de vA
para vC e emite recibo r
Comerciante C
submete fatura,
recebe comprovante
e assina recibo
Instituio
financeira V
r = DB(A,C,DC(m),p,EB(vA,vB))
CopyMarket.com
158
Passwd+ (ftp://dartmouth.edu.pub.passw+.tar.Z)
Um filtro de senhas que impede os titulares de contas unix de criarem
senhas fracas, suceptveis a ataques de dicionrio.
Crack (ftp://ftp.uu.net/usenet/comp.sources.misc/volume28/crack)
Uma ferramenta para ataque de dicionrio a arquivos de senhas unix.
COPS (ftp://cert.org/pub/cops)
Uma ferramenta para inspeo de segurana que verifica se o sistema unix
est configurado de maneira segura (trust, rhost, /etc/passwd, etc.)
Xinetd (ftp://mystique.cs.colorado.edu/pub/xinetd
Um substituto do inetd que inclui log e gerenciamento de conexes.
TAMU (ftp://net.tamu.edu/pub/security/tamu)
Uma ferramenta que contm filtro de pacotes, programas de verificao de
configurao, de auditoria e de gerao de log.
SOCKS (ftp://ftp.inoc.dl.nec.com/pub/security/socks.cstc.4.0.tar.gz)
Implementao de um relay de circuitos para filrewalls.
WUarchive (ftp://ftp.uu.net/networking/ftp/wuarchive-ftpd)
Servidor mais usado na internet para ftp annimo.
CGIWrap (http://www.umr.edu/:tdciwrap)
Wrapper de CGI para identificao de scripts de usurios em unix.
CopyMarket.com
159
CERT (http://www.cert.org)
Computer Emergency Response Team, disponibiliza um conjunto
atualizado de patches de segurana, alertas de segurana, e diversas
ferramentas distribudas pelos fornecedores.
CopyMarket.com
160
CopyMarket.com
Todos os direitos reservados.
Nenhuma parte desta publicao poder ser
reproduzida sem a autorizao da Editora.
Apndices
Pedro Antonio Dourado de Rezende
CopyMarket.com
161
Fenmeno Fsico
Nmero
1 em 9 bilhes (~233)
1 em 4 milhes
(~222)
Prob. de, num dia, ganhar na loteria estadual e ser morto por um raio:
1 em 255
1 em 59 mil (~216)
1 em 6100 (~213)
1 em 88 (~27)
1051 (~2170)
1057 (~2190)
1067 (~2223)
1077 (~2265)
Volume do universo:
1010 anos
1010 anos
26
76
CopyMarket.com
162
Aritmtica modular
a mod b = resto da diviso inteira de a por b ( Ex.: 33 mod 7 = 5 )
Escolha de primos
Lista dos nmeros 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.
CopyMarket.com
163
637 mod 7 =
CopyMarket.com
164
1
1
1 mod 8 = 1, 3, 5 ou 7;
4 mod 8 = 2 ou 6;
5-1 mod 8 = 5
7-1 mod 8 = 7
1- Quando p primo
Todos elementos 0 possuem inverso multiplicativo
Metade dos elementos 0 possuem raizes quadradas
Exemplo: multiplicao em Z7 = {0, 1, 2, 3, 4, 5, 6}
CopyMarket.com
*
1
1
1
1 mod 7 = 1 ou 6;
2 mod 7 = 3 ou 4;
4 mod 7 = 2 ou 5;
3-1 mod 7 = 5
165
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
1
1 2 3 4 5 6
2
2 4 6 8 10 12
3
3 6 9 12 15 18
4
4 8 12 16 0 4
5
5 10 15 0 5 10
6
6 12 18 4 10 16
7
7 14 1 8 15 2
8
8 16 4 12 0 8
9
9 18 7 16 5 14
10 10 0 10 0 10 0
11 11 2 13 4 15 6
12 12 4 16 8 0 12
13 13 6 19 12 5 18
14 14 8 2 16 10 4
15 15 10 5 0 15 10
16 16 12 8 4 0 16
17 17 14 11 8 5 2
18 18 16 14 12 10 8
19 19 18 17 16 15 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
CopyMarket.com
166
(3,13)
(6,19)
(11,3)
(0,22)
(4,0)
(7,11)
(1,7)
(5,4)
(7,12)
(1,16)
(5,19)
(9,7)
(3,10)
(6,4)
(9,16)
(12,4)
(13,7)
(17,3)
(18,3)
(19,5)
O ponto no infinito
y3 = (x1-x3)-y1 =
y3 = (x1-x3)-y1 =
(3,10)+(9,7) = (17,20);
CopyMarket.com
2.(3,10) = (7,12)
167
1
2
h
3
G
1
2
3
4
5
6
1
0
1
0
1
1
0
2
1
0
1
0
0
1
3
0
1
0
1
0
1
4
1
0
1
0
1
0
5
1
0
0
1
0
1
6
0
1
1
0
1
0
Gi
6
hi
1
2
1 2 3 4 5 6
0
1
0
1
0
1
1
0
1
0
1
0
G
1
2
3
4
5
6
1
0
1
1
0
0
1
2
1
0
0
1
1
0
4
3
1
0
0
0
1
1
4
0
1
0
0
1
1
5
0
1
1
1
0
0
6
1
0
1
1
0
0
o provador apresenta Gi
4
Gi
1
2
3
4
5
6
si
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
si
1
0
1
1
0
0
hi
1
2
3
4
5
6
1
0
0
0
0
0
1
2
0
0
0
0
1
0
CopyMarket.com
3
0
0
0
1
0
0
4
0
1
0
0
0
0
5
1
0
0
0
0
0
6
0
0
1
0
0
0
Gi
1
2
3
4
5
6
1
0
1
0
1
0
1
2
1
0
1
0
1
0
3
0
1
0
0
1
1
4
1
0
0
0
1
1
5
0
1
1
1
0
0
6
1
0
1
1
0
0
hi-1
1
2
3
4
5
6
1
0
0
0
0
1
0
2
0
0
0
1
0
0
3
0
0
0
0
0
1
4
0
0
1
0
0
0
5
0
1
0
0
0
0
6
1
0
0 =G?
0
0
0
168
h
3
G
1
2
3
4
5
6
1
0
1
0
1
1
0
2
1
0
1
0
0
1
3
0
1
0
1
0
1
4
1
0
1
0
1
0
5
1
0
0
1
0
1
6
0
1
1
0
1
0
Gi
hi
1
G
1
2
3
4
5
6
si
1 2 3 4 5 6
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
2
1
0
0
1
1
0
3
1
0
0
0
1
1
4
0
1
0
0
1
1
5
0
1
1
1
0
0
6
1
0
1
1
0
0
3
Gi
1
2
3
4
5
6
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
si
1
0
1
1
0
0
1
0
0
1
0
0
0
2
0
0
0
0
1
0
CopyMarket.com
3
0
1
0
0
0
0
4
1
0
0
0
0
0
5
0
0
0
0
0
1
6
0
0
0
1
0
0
hi
1
2
3
4
5
6
1
0
0
0
0
0
1
2
0
0
0
0
1
0
3
0
0
0
1
0
0
4
0
1
0
0
0
0
5
1
0
0
0
0
0
6
0
0
1
0
0
0
si
1
2
3
4
5
6
1
0
0
0
1
0
0
2
0
0
0
0
0
1
3
1
0
0
0
0
0
4
0
0
0
0
1
0
5
0
0
1
0
0
0
6
0
1
0
0
0
0
169
Lista de exerccios
1 - Segundo a classificao de Warwick Ford para tipos de ataque a sistemas computacionais, o que
caracteriza ataque subjacente, ataque primrio ou ameaa bsica a um sistema computacional?
2 - Em que consistem os ataques por spoofing de IP e de nmero seqencial ao TCP?
3 - Porque o ataque de nmero seqencial associado ao spoofing de IP habilita a transmisso de
pacotes falsos apenas em uma direo do trfego de sesso TCP?
4 - O que distingue modelos de controle de acesso discricionrio de modelos de controle de acesso
mandatrio?
5 - Descreva o tipo de ataque que expe usurios de servios que usam controle de acesso remoto,
mas sem se valer de um servio de autenticao distribudo (exemplo de servio: Telnet, ftp,
rlogin)
6 - Das afirmaes abaixo, diga quais so verdadeiras e quais so falsas:
Para ser segura uma cifra precisa ter um grande espao de chaves
Uma cifra cujo espao de chaves grande, uma cifra segura
Cifras cujo algoritmo criptogrfico ocultado so mais seguras
Algoritmos criptogrficos assimtricos esto expostos a mais tipos de ataques que os simtricos
Algoritmos criptogrficos assimtricos so menos seguros que os algoritmos simtricos
7 - Descreva o que uma cifra monoalfabtica, e porque insegura. Descreva a diferena entre um
algoritmo criptogrfico simtrico e um assimtrico
8 - O que significam deduo local e quebra total de um algoritmo criptogrfico?
9 - O que caracteriza um protocolo criptogrfico ser arbitrado, ajuizado ou auto-verificvel?
10- Diga quais
11- Quais
12- Em
13- Como
14- Como
um sistema criptogrfico de chaves pblicas pode ser usado para implementar o conceito
de assinatura digital? Em que consiste a assinatura digital de um dado?
17- Qual
a diferena 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 pblicas para estabelecer
canais sigilosos entre si?
CopyMarket.com
170
19- Em
20- Em
21- Como
22- Como
pode ser evitado o ataque de personificao atravs do vazamento de senhas durante login
remoto por escuta passiva no meio fsico da rede?
23- Como
a posse de uma chave privada pode ser verificada ao incio de cada sesso, em uma rede
que usa sistema de chaves pblicas?
24- Qual
25- Qual
26- Porque
27- Compare
o uso da criptografia entre ns (link to link) e entre aplicativos (end do end): fale de
uma vantagem e uma desvantagem de cada um desses tipos de implementao.
28- Porque uma chave assimtrica precisa ser maior que uma
29- Como
30- Em
31- Responda,
RSA.
32- Responda,
RSA.
33- Porque
35- Qual
a maior vulnerabilidade representada por um firewall que liga uma rede corporativa
internet?
36- O
Host?
39- Qual
funo do sistema operacional unix precisa ser desabilitada numa mquina com mltiplas
interfaces que hospede um gateway de aplicao?
40- Como
CopyMarket.com
171