Post on 13-Jun-2015
Conceitos de Criptografiae o protocolo SSL
TchêLinux Ulbra Gravataíhttp://tchelinux.org/gravatai
Elgio SchlemerUlbra 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
Internet
C
A
D
B S
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
Transporte
Aplicação
Rede
Enlace
● FTP, HTTP, POP● Identificação de serviços
● TCP/UDP: garantia (ou não) de entrega● identificação de processos
● IP: Roteamento● Identificação de máquinas (número IP)
● Ethernet● 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
– Solução: instalar switches?
● Sniffer sobre switch:
– arp spoofing, mac flooding, mac spoofing, icmp redirect, dhcp spoofing são alguns exemplos de técnicas para switches
Transporte
Aplicação
Rede
Enlace
Técnicas de Violação de Dados(Nível de Rede e Transporte)
● IP spoofing– Falsificação de um número IP
– finge ser outra máquina (autenticação!!)
● captura de sessões (TCP)● Solução:
– Regras de firewall (não 100%)
Transporte
Aplicação
Rede
Enlace
Técnicas de Violação de Dados(Aplicação)
● Captura de senhas de aplicação– através de sniffers
● DNS spoofing– falsificação de DNS
– atender pelo domínio
Transporte
Aplicação
Rede
Enlace
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!!
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– 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
Algoritmos de Bloco
Bloco 164 bits
Bloco 264 bits
Bloco 364 bits
Bloco 464 bits
Bloco 5 32 bits
Bloco 164 bits Cifrado
Bloco 264 bits Cifrado
Bloco 364 bits Cifrado
Bloco 464 bits Cifrado
Bloco 564 bits Cifrado
arquivo CIFRADO com 320 Bytes (incluindo Padding)
CIFRA
Chave KChave K
CIFRA
Chave KChave K
CIFRA
Chave KChave K
CIFRA
Chave KChave K
CIFRA
Chave KChave K
PAD
DIN
G32 bits
arquivo 288 Bytes
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
bits "aleatórios" para XOR
XORMensagem
bits da mensagem a ser transmitida
...0100101
bits da mensagem cifrada
XOR
Gerador de BitsPseudo Aleatório
Chave KChave K
...0101011
...0001110
Gerador de BitsPseudo Aleatório
...0101011
...0001110MensagemRecuperada
Chave KChave K
mesmosbits "aleatórios"
para XOR
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
Tipos de Criptografia
● Algoritmos Simétricos● Algoritmos Assimétricos
– uma chave é usada para cifrar
– outra chave é usada para decifrar
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
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
Ke = (173, 2237243)
Kd = (25829, 2237243)
Para cifrar:
C= (Msg)e mod n
Para decifrar:
Msg = (C)d 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
E
Chave Pub de B?
● Não existe garantia de autenticidade– Ataque do Homem do meio
A B
E
Chave Pub de B?
Chave
Pub
de B
?
Ke (falso) de B
Ke de B
Problemas na comunicação
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
Elgio Schlemer
http://gravatai.ulbra.tche.br/~elgiohttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7812
Conceitos de Criptografia e oprotocolo SSL