Conceitos de Criptografia
   e o protocolo SSL


    TchêLinux Ulbra Gravataí
      http://tchelinux.org/gravatai

       ...
Introdução
●   Início da Internet
    –   poucas pessoas
    –   uso restrito
    –   relação de confiança
    –   inciden...
Introdução
●   Internet cresce e explode nos anos 90
●   Internet passa a ser opção de negócios
    –   Porém ela não foi ...
Problemas de Segurança


A       B                    S



                Internet


C       D
Problemas de Segurança


●   Pacotes passam por vários pontos
    –   técnicas de roteamento IP
●   Pacotes podem ser:
   ...
Modelo TCP/IP

             ● FTP, HTTP, POP
Aplicação    ● Identificação de serviços




             ● TCP/UDP: garantia...
Técnicas de violação de dados
                           (nível de enlace)

             ●   Sniffer
                  –  ...
Técnicas de Violação de Dados
                  (Nível de Rede e Transporte)

             ●   IP spoofing
Aplicação      ...
Técnicas de Violação de Dados
                          (Aplicação)


              ●   Captura de senhas de aplicação
Apl...
Teoria do Caos
●   A Internet é totalmente insegura
    –   todo mundo vê
    –   todo mundo mexe
    –   ninguém tem cert...
Soluções
●   Melhorar a segurança
    –   Nível de Enlace: uso de switches
         ●   Melhora, mas não resolve
    –   S...
Princípios de Criptografia
●   usada até mesmo em guerras medievais
    –   cifra de César
    –   Variação da César: chav...
Ataques à criptografia
●   Criptoanálise: descobrir fragilidades
    –   Exemplo: análise de freqüência
●   Força Bruta: D...
Tipos de Criptografia

●   Algoritmos Simétricos
    –   apenas uma chave
    –   A mesma para cifrar de para decifrar
●  ...
Algoritmos Simétricos de Bloco
●   Simétricos: uma mesma chave
    –   usa­se k para cifrar um bloco
    –   usa­se o mesm...
Algoritmos de Bloco
             Bloco 1            Bloco 2           Bloco 3             Bloco 4         Bloco 5




    ...
Algoritmos Simétricos de Fluxo
●   Simétricos: uma mesma chave
●   Porém pode cifrar bit a bit
    –   não precisa de um b...
Estudo de caso: RC4
Chave K

                      Gerador de Bits                                       Gerador de Bits  ...
Força dos algoritmos Simétricos
●   Caso AES (simétrico)
    –   128 bits de chave
    –   2128  possíveis chaves = 340.28...
Tipos de Criptografia

●   Algoritmos Simétricos
●   Algoritmos Assimétricos
    –   uma chave é usada para cifrar
    –  ...
Algoritmos Assimétricos
●   usa­se uma chave ke para cifrar
●   porém, usa­se outra chave kd para decifrar
●   inviável de...
Uso da criptografia
●   Uso de algoritmos Assimétricos
●   Servidor fornece sua chave pública (Ke)
    –   mas mantém segr...
Problemas

●   Algoritmos Assimétricos são onerosos
    –   alto custo de processamento
    –   operações não suportadas p...
Estudo de Caso: RSA
   Para cifrar:        Ke = (173, 2237243)        Para decifrar: 
        e              Kd = (25829, ...
Força dos algoritmos Assimétricos
●   Caso RSA (assimétrico)
    –   512 bits de chave
         ●   significa N de 512 bit...
Complicações dos Assimétricos
●   Demorado mesmo com otimizações (Demonstrar)
●   números além da capacidade da ULA
●   Po...
Problemas na comunicação
●   Não existe garantia de autenticidade
    –   Ataque do Homem do meio

A                      ...
Problemas na comunicação
●   Não existe garantia de autenticidade
    –   Ataque do Homem do meio

A                      ...
Solução
●   Assinar a chave pública
    –   Cliente deve confiar em quem assina
    –   inviável falsificar assinatura
●  ...
Protocolo SSL

●   Servidor:
    –   cria par de chaves Ke e Kd
    –   Pede que certificadora assine a pública Ke
       ...
Protocolo SSL

●   Cliente:
    –   recebe chave Ke do servidor
    –   verifica assinatura
    –   cria chave de sessão k...
Protocolo SSL
●   No início do protocolo, cliente e servidor decidem quais 
    algoritmos irão usar
●   Muitas opções:
  ...
Conclusões
●   Protocolo SSL é seguro
    –   desde que seja verificada autenticidade
    –   certificadoras permitem aute...
Conclusões
                            (continuação)

●   Possível usar SSL sem certificadora
    –   SSH por exemplo
    ...
Conclusões
                            (continuação)

●   Homem do meio é mais sofisticado
    –   na prática, enviar emai...
Conclusões
                                    (continuação)

●   Outros assuntos de criptografia
    –   Algoritmos de HA...
Conclusões
                                (continuação)

●   Algoritmos Assimétricos são seguros?
●   Desafio:
    –   P ...
Conceitos de Criptografia e o
                protocolo SSL

                      Elgio Schlemer



             http://g...
Próximos SlideShares
Carregando em…5
×

Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

2.232 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.232
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

×