SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
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
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
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
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:
    –   lidos (interceptados), alterados ou falsificados
    –   Forjados: TCP/IP não provê autenticação
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)
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
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%)
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
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!!
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
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
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
Tipos de Criptografia

●   Algoritmos Simétricos
    –   apenas uma chave
    –   A mesma para cifrar de para decifrar
●   Simétricos podem ser:
    –   De bloco
    –   De fluxo
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
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)
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
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
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
Tipos de Criptografia

●   Algoritmos Simétricos
●   Algoritmos Assimétricos
    –   uma chave é usada para cifrar
    –   outra chave é usada para decifrar
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
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
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)
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)
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
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
Problemas na comunicação
●   Não existe garantia de autenticidade
    –   Ataque do Homem do meio

A                                          B


           Chave Pub de B?



                             E
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
Solução
●   Assinar a chave pública
    –   Cliente deve confiar em quem assina
    –   inviável falsificar assinatura
●   Certificadoras:
    –   Como cartórios digitais
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Mais procurados

Conceitos Básicos de Criptografia
Conceitos Básicos de CriptografiaConceitos Básicos de Criptografia
Conceitos Básicos de CriptografiaMariana Carvalho
 
Criptografia: matemática e lógica computacional protegendo informações
Criptografia: matemática e lógica computacional protegendo informaçõesCriptografia: matemática e lógica computacional protegendo informações
Criptografia: matemática e lógica computacional protegendo informaçõesAlex Camargo
 
Introdução a criptografia
Introdução a criptografiaIntrodução a criptografia
Introdução a criptografiaNatanael Fonseca
 
Introdução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosIntrodução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosFábio dos Reis
 
Auditoria e Segurança em TI - Aula 3
Auditoria e Segurança em TI - Aula 3Auditoria e Segurança em TI - Aula 3
Auditoria e Segurança em TI - Aula 3Filipo Mór
 
Criptgrafia algoritmos
Criptgrafia   algoritmosCriptgrafia   algoritmos
Criptgrafia algoritmosdigobfpc
 
Criptografia
CriptografiaCriptografia
CriptografiaPaula P.
 

Mais procurados (8)

Conceitos Básicos de Criptografia
Conceitos Básicos de CriptografiaConceitos Básicos de Criptografia
Conceitos Básicos de Criptografia
 
Criptografia: matemática e lógica computacional protegendo informações
Criptografia: matemática e lógica computacional protegendo informaçõesCriptografia: matemática e lógica computacional protegendo informações
Criptografia: matemática e lógica computacional protegendo informações
 
Introdução a criptografia
Introdução a criptografiaIntrodução a criptografia
Introdução a criptografia
 
Introdução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosIntrodução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson Treinamentos
 
Auditoria e Segurança em TI - Aula 3
Auditoria e Segurança em TI - Aula 3Auditoria e Segurança em TI - Aula 3
Auditoria e Segurança em TI - Aula 3
 
Criptgrafia algoritmos
Criptgrafia   algoritmosCriptgrafia   algoritmos
Criptgrafia algoritmos
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Criptografia
CriptografiaCriptografia
Criptografia
 

Semelhante a Conceitos de Criptografia e o protocolo SSL

Implementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficosImplementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficosEdward David Moreno
 
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕES
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕESS.D.I - SEGURANÇA DE DADOS E INFORMAÇÕES
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕESMateus Cardoso
 
Cryptography Oracle Attacks
Cryptography Oracle AttacksCryptography Oracle Attacks
Cryptography Oracle AttacksDiego Mariano
 
Criptografia (1).pdf
Criptografia (1).pdfCriptografia (1).pdf
Criptografia (1).pdfclaudio864549
 
Endereçamento IP - Uma abordagem inicial
Endereçamento IP - Uma abordagem inicialEndereçamento IP - Uma abordagem inicial
Endereçamento IP - Uma abordagem inicialFellipe Castro
 
Criptografia e criptpanalise na pratica
Criptografia e criptpanalise na praticaCriptografia e criptpanalise na pratica
Criptografia e criptpanalise na praticaTalita Rodrigues
 
Join community criptography in .net
Join community criptography in .netJoin community criptography in .net
Join community criptography in .netRaphael Freitas
 
Arp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de AtaquesArp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de AtaquesAndre Peres
 
Noções de criptografia para o cstdg
Noções de criptografia para o cstdgNoções de criptografia para o cstdg
Noções de criptografia para o cstdgGuiHebert
 
Segurança de redes wifi para computadores pessoais
Segurança de redes wifi para computadores pessoaisSegurança de redes wifi para computadores pessoais
Segurança de redes wifi para computadores pessoaisssuser906f55
 
descodificadores codificadores Encoder Decoder Sistemas Digitais
descodificadores codificadores Encoder Decoder Sistemas Digitaisdescodificadores codificadores Encoder Decoder Sistemas Digitais
descodificadores codificadores Encoder Decoder Sistemas DigitaisCarlos Pereira
 
Sistema Operativo W2012 server
Sistema Operativo W2012 server Sistema Operativo W2012 server
Sistema Operativo W2012 server Keikos Carvalho
 
ERBASE 2013 - Criptografia Moderna: Matemática para a Segurança Digital
ERBASE 2013 - Criptografia Moderna: Matemática para a Segurança DigitalERBASE 2013 - Criptografia Moderna: Matemática para a Segurança Digital
ERBASE 2013 - Criptografia Moderna: Matemática para a Segurança DigitalRuy De Queiroz
 

Semelhante a Conceitos de Criptografia e o protocolo SSL (20)

Implementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficosImplementacao e teste de sistemas criptograficos
Implementacao e teste de sistemas criptograficos
 
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕES
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕESS.D.I - SEGURANÇA DE DADOS E INFORMAÇÕES
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕES
 
Cryptography Oracle Attacks
Cryptography Oracle AttacksCryptography Oracle Attacks
Cryptography Oracle Attacks
 
Criptografia (1).pdf
Criptografia (1).pdfCriptografia (1).pdf
Criptografia (1).pdf
 
Seguranca de rede
Seguranca de redeSeguranca de rede
Seguranca de rede
 
Endereçamento IP - Uma abordagem inicial
Endereçamento IP - Uma abordagem inicialEndereçamento IP - Uma abordagem inicial
Endereçamento IP - Uma abordagem inicial
 
Redes ii p2
Redes ii p2Redes ii p2
Redes ii p2
 
Redes ii p2
Redes ii p2Redes ii p2
Redes ii p2
 
Criptografia e criptpanalise na pratica
Criptografia e criptpanalise na praticaCriptografia e criptpanalise na pratica
Criptografia e criptpanalise na pratica
 
Join community criptography in .net
Join community criptography in .netJoin community criptography in .net
Join community criptography in .net
 
APPI
APPIAPPI
APPI
 
Arp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de AtaquesArp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de Ataques
 
Noções de criptografia para o cstdg
Noções de criptografia para o cstdgNoções de criptografia para o cstdg
Noções de criptografia para o cstdg
 
Segurança de redes wifi para computadores pessoais
Segurança de redes wifi para computadores pessoaisSegurança de redes wifi para computadores pessoais
Segurança de redes wifi para computadores pessoais
 
Camada rede
Camada redeCamada rede
Camada rede
 
ITI Slides
ITI SlidesITI Slides
ITI Slides
 
descodificadores codificadores Encoder Decoder Sistemas Digitais
descodificadores codificadores Encoder Decoder Sistemas Digitaisdescodificadores codificadores Encoder Decoder Sistemas Digitais
descodificadores codificadores Encoder Decoder Sistemas Digitais
 
Psi apostila2
Psi apostila2Psi apostila2
Psi apostila2
 
Sistema Operativo W2012 server
Sistema Operativo W2012 server Sistema Operativo W2012 server
Sistema Operativo W2012 server
 
ERBASE 2013 - Criptografia Moderna: Matemática para a Segurança Digital
ERBASE 2013 - Criptografia Moderna: Matemática para a Segurança DigitalERBASE 2013 - Criptografia Moderna: Matemática para a Segurança Digital
ERBASE 2013 - Criptografia Moderna: Matemática para a Segurança Digital
 

Mais de Tchelinux

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Tchelinux
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeTchelinux
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Tchelinux
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Tchelinux
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeTchelinux
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Tchelinux
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...Tchelinux
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Tchelinux
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeTchelinux
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeTchelinux
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Tchelinux
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...Tchelinux
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...Tchelinux
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Tchelinux
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Tchelinux
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.Tchelinux
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Tchelinux
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygameTchelinux
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Tchelinux
 

Mais de Tchelinux (20)

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygame
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?
 

Conceitos de Criptografia e o protocolo SSL

  • 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
  • 4. Problemas de Segurança A B S Internet C D
  • 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 coloca­se 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 – 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. 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. 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 ● estima­se 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 ● 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. 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