1. Conceitos de Criptografia
e o protocolo SSL
TchêLinux Ulbra Gravataí
http://tchelinux.org/gravatai
Elgio Schlemer
Ulbra Gravatai
http://gravatai.ulbra.tche.br/~elgio
31 de Maio de 2008
2. Introdução
● Início da Internet
– poucas pessoas
– uso restrito
– relação de confiança
– incidente com Morris Worm
– segurança ganha atenção: nasce o CERT
3. Introdução
● Internet cresce e explode nos anos 90
● Internet passa a ser opção de negócios
– Porém ela não foi concebida para isso
– possui muitos problemas de segurança
– não ideal para relações de sigilo e confiança
5. Problemas de Segurança
● Pacotes passam por vários pontos
– técnicas de roteamento IP
● Pacotes podem ser:
– lidos (interceptados), alterados ou falsificados
– Forjados: TCP/IP não provê autenticação
6. Modelo TCP/IP
● FTP, HTTP, POP
Aplicação ● Identificação de serviços
● TCP/UDP: garantia (ou não) de entrega
Transporte ● identificação de processos
● IP: Roteamento
Rede ● Identificação de máquinas (número IP)
● Ethernet
Enlace ● Identificação de placas de rede (número MAC)
7. Técnicas de violação de dados
(nível de enlace)
● Sniffer
– Ferramenta para olhar pacotes alheios
Aplicação
– Solução: instalar switches?
Transporte ● Sniffer sobre switch:
– arp spoofing, mac flooding, mac spoofing, icmp
Rede
redirect, dhcp spoofing são alguns exemplos de
técnicas para switches
Enlace
8. Técnicas de Violação de Dados
(Nível de Rede e Transporte)
● IP spoofing
Aplicação – Falsificação de um número IP
– finge ser outra máquina (autenticação!!)
Transporte
● captura de sessões (TCP)
Rede
● Solução:
Enlace – Regras de firewall (não 100%)
9. Técnicas de Violação de Dados
(Aplicação)
● Captura de senhas de aplicação
Aplicação
– através de sniffers
Transporte
● DNS spoofing
Rede – falsificação de DNS
– atender pelo domínio
Enlace
10. Teoria do Caos
● A Internet é totalmente insegura
– todo mundo vê
– todo mundo mexe
– ninguém tem certeza de quem é quem
● neste cenário colocase comércio eletrônico!!
11. Soluções
● Melhorar a segurança
– Nível de Enlace: uso de switches
● Melhora, mas não resolve
– Segurança Física
● só pessoas autorizadas
– Introduzir segurança na Aplicação
● através do uso de criptografia
12. Princípios de Criptografia
● usada até mesmo em guerras medievais
– cifra de César
– Variação da César: chave k
● segredo na chave
● texto legível para quem conhece k
13. Ataques à criptografia
● Criptoanálise: descobrir fragilidades
– Exemplo: análise de freqüência
● Força Bruta: Descobrir a chave
– testar todas as possibilidades para k
– Se chave de 16 bits = 216 possibilidades = 65536
● um PC testanto 1000 por segundo levaria 1 minuto
14. Tipos de Criptografia
● Algoritmos Simétricos
– apenas uma chave
– A mesma para cifrar de para decifrar
● Simétricos podem ser:
– De bloco
– De fluxo
15. Algoritmos Simétricos de Bloco
● Simétricos: uma mesma chave
– usase k para cifrar um bloco
– usase o mesmo k para decifrar o bloco
– Só pode cifrar um bloco inteiro
● não tem bloco inteiro?
– espera mais dados
– preenche com padding
17. Algoritmos Simétricos de Fluxo
● Simétricos: uma mesma chave
● Porém pode cifrar bit a bit
– não precisa de um bloco
– Usa XOR!!
● Ex: RC4
18. Estudo de caso: RC4
Chave K
Gerador de Bits Gerador de Bits Chave K
Pseudo Aleatório Pseudo Aleatório
mesmos
bits "aleatórios" bits "aleatórios"
bits da mensagem
para XOR
...0101011
...0101011
a ser transmitida para XOR
...0001110 ...0001110
XOR ...0100101 XOR Mensagem
Mensagem Recuperada
bits da mensagem
cifrada
19. Força dos algoritmos Simétricos
● Caso AES (simétrico)
– 128 bits de chave
– 2128 possíveis chaves = 340.282.366.920.938.463.463.374.607.431.768.211.456
– Força bruta: bilhões de anos
– Com 256 bits, segurança eterna
● estimase que nem todo o silício do Universo seria suficiente para
construir uma máquina que quebrasse 256 bits simétricos
20. Tipos de Criptografia
● Algoritmos Simétricos
● Algoritmos Assimétricos
– uma chave é usada para cifrar
– outra chave é usada para decifrar
21. Algoritmos Assimétricos
● usase uma chave ke para cifrar
● porém, usase outra chave kd para decifrar
● inviável deduzir kd de ke e viceversa
● tornar ke pública e kd privada
● Distribuise livremente ke
● Exemplos: RSA, DSA, ElGamal, etc
22. Uso da criptografia
● Uso de algoritmos Assimétricos
● Servidor fornece sua chave pública (Ke)
– mas mantém segredo quanto a privada (Kd)
● Cliente cifra dados com Ke do servidor
● Envia os dados cifrados
● Servidor abre com Kd
23. Problemas
● Algoritmos Assimétricos são onerosos
– alto custo de processamento
– operações não suportadas pela ULA
● Estudo de caso: algoritmo RSA de 32 bits
– Ke = (e,n) => Ke = (173, 2237243)
– Kd = (d,n) => Kd = (25829, 2237243)
24. Estudo de Caso: RSA
Para cifrar: Ke = (173, 2237243) Para decifrar:
e Kd = (25829, 2237243) d
C= (Msg) mod n Msg = (C) mod n
● Cifrar o caractere 'A' (ASCII 65)
– 65173 mod 2237243 = 1420954
● Recuperar o 'A' (Decifrar):
– 142095425829 mod 2237243 = 65 (aprox. 9 seg)
25. Força dos algoritmos Assimétricos
● Caso RSA (assimétrico)
– 512 bits de chave
● significa N de 512 bits, logo P e Q são de 256 bits
● Achar P de 256 bits não significa testar 2256 bits!
– Assimétrico precisam de chave muito maior para serem
seguros (atualmente pelo menos 1024 bits)
● Simétrico de 128 bits: ÓTIMO
● Assimétrico de 128 bits: PÉSSIMO
26. Complicações dos Assimétricos
● Demorado mesmo com otimizações (Demonstrar)
● números além da capacidade da ULA
● Porque não se usa Simétrico?
– como estabelecer uma chave k comum?
● Solução:
– usar o assimétrico apenas para trocar chave
– cifrar tráfego com simétrico
27. Problemas na comunicação
● Não existe garantia de autenticidade
– Ataque do Homem do meio
A B
Chave Pub de B?
E
28. Problemas na comunicação
● Não existe garantia de autenticidade
– Ataque do Homem do meio
A B
Ch
av
e P
?
ub
e B
de
E
Ke
b d
B
B
(
de
u
fa
?
P
lso
Ke
e
av
) d
Ch
e B
29. Solução
● Assinar a chave pública
– Cliente deve confiar em quem assina
– inviável falsificar assinatura
● Certificadoras:
– Como cartórios digitais
30. Protocolo SSL
● Servidor:
– cria par de chaves Ke e Kd
– Pede que certificadora assine a pública Ke
● gera um certificado (várias informações)
– envia Ke assinada por uma certificadora para cliente
31. Protocolo SSL
● Cliente:
– recebe chave Ke do servidor
– verifica assinatura
– cria chave de sessão k
– cifra k com Ke do servidor
– envia k cifrada com Ke
32. Protocolo SSL
● No início do protocolo, cliente e servidor decidem quais
algoritmos irão usar
● Muitas opções:
– DES, 3DES, AES128, AES256, RC4, etc
– Preferência por algoritmos de fluxo
– Importante: algoritmos de bloco como o AES também
funcionam como fluxo (conversão)
● Demonstração com Navegador
33. Conclusões
● Protocolo SSL é seguro
– desde que seja verificada autenticidade
– certificadoras permitem autenticação
– quem escolhe "confiar" nas certificadoras é o
fabricante do meu navegador
– certificados são pagos!!
– qualquer um pode ser uma certificadora
34. Conclusões
(continuação)
● Possível usar SSL sem certificadora
– SSH por exemplo
– certos cuidados
● Navegador informa assinatura inválida
– desconhecimento propicia Homem do Meio
– muitos continuam navegando
35. Conclusões
(continuação)
● Homem do meio é mais sofisticado
– na prática, enviar emails funciona
– as pessoas clicam nos links falsos
● Ideal seria cliente ter par de chaves
– Bancos fazem isto para empresas
– usuários exigira treinamento
36. Conclusões
(continuação)
● Outros assuntos de criptografia
– Algoritmos de HASH
● assinaturas digitais
● banco de dados
● senhas de sistema operacional (Viva o Linux)
– Assinaturas digitais
● pela inversão do assimétrico
37. Conclusões
(continuação)
● Algoritmos Assimétricos são seguros?
● Desafio:
– P multiplicado por Q resulta em N.
– Se N = 39.351.741.689.270.519
– Quais os valores de P e Q?
● DICA: P e Q são de 32 bits.
● Hoje se usa P e Q de, pelo menos, 512 bits
38. Conceitos de Criptografia e o
protocolo SSL
Elgio Schlemer
http://gravatai.ulbra.tche.br/~elgio
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7812