Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

2.236 visualizações

Publicada em

Publicada em: Tecnologia, Negócios
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.236
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
91
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

  1. 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. 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. 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
  4. 4. Problemas de Segurança A B S Internet C D
  5. 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. 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. 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. 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. 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. 10. Teoria do Caos ● A Internet é totalmente insegura – todo mundo vê – todo mundo mexe – ninguém tem certeza de quem é quem ● neste cenário coloca­se comércio eletrônico!!
  11. 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. 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. 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. 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. 15. Algoritmos Simétricos de Bloco ● Simétricos: uma mesma chave – usa­se k para cifrar um bloco – usa­se o mesmo k para decifrar o bloco – Só pode cifrar um bloco inteiro ● não tem bloco inteiro? – espera mais dados – preenche com padding
  16. 16. Algoritmos de Bloco Bloco 1 Bloco 2 Bloco 3 Bloco 4  Bloco 5 PADDING 64 bits 64 bits 64 bits 64 bits  32 bits 32 bits arquivo 288 Bytes Chave K Chave K Chave K Chave K Chave K CIFRA CIFRA CIFRA CIFRA CIFRA Bloco 1 Bloco 2 Bloco 3 Bloco 4 Bloco 5 64 bits Cifrado 64 bits Cifrado 64 bits Cifrado 64 bits Cifrado 64 bits Cifrado arquivo CIFRADO com 320 Bytes (incluindo Padding)
  17. 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. 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. 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 ● estima­se que nem todo o silício do Universo seria suficiente para  construir uma máquina que quebrasse 256 bits simétricos
  20. 20. Tipos de Criptografia ● Algoritmos Simétricos ● Algoritmos Assimétricos – uma chave é usada para cifrar – outra chave é usada para decifrar
  21. 21. Algoritmos Assimétricos ● usa­se uma chave ke para cifrar ● porém, usa­se outra chave kd para decifrar ● inviável deduzir kd de ke e vice­versa ● tornar ke pública e kd privada ● Distribui­se livremente ke ● Exemplos: RSA, DSA, El­Gamal, etc
  22. 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. 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. 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. 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. 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. 27. Problemas na comunicação ● Não existe garantia de autenticidade – Ataque do Homem do meio A B Chave Pub de B? E
  28. 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. 29. Solução ● Assinar a chave pública – Cliente deve confiar em quem assina – inviável falsificar assinatura ● Certificadoras: – Como cartórios digitais
  30. 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. 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. 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. 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. 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. 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. 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. 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. 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

×