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
S
B
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
● Identificação de serviços
●
Aplicação
TCP/UDP: garantia (ou não) de entrega
● identificação de processos
●
Transporte
IP: Roteamento
● Identificação de máquinas (número IP)
●
Rede
Enlace
Ethernet
● Identificação de placas de rede (número MAC)
●
Técnicas de violação de dados
(nível de enlace)
●
Aplicação
Transporte
Rede
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
Técnicas de Violação de Dados
(Nível de Rede e Transporte)
●
Aplicação
Transporte
Rede
Enlace
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%)
Técnicas de Violação de Dados
(Aplicação)
●
Aplicação
Captura de senhas de aplicação
–
Transporte
Rede
Enlace
●
através de sniffers
DNS spoofing
–
falsificação de DNS
–
atender pelo domínio
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
●
–
Segurança Física
●
–
Melhora, mas não resolve
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 2
Bloco 3
Bloco 4
64 bits
64 bits
64 bits
64 bits
Bloco 5
32 bits
arquivo 288 Bytes
Chave K
Chave K
Chave K
Chave K
PADDING
32 bits
Bloco 1
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
Pseudo Aleatório
Mensagem
XOR
bits "aleatórios" para XOR
...0100101
bits da mensagem cifrada
...0101011
...0001110
...0101011
bits da mensagem a ser transmitida
Gerador de Bits
Pseudo Aleatório
XOR
Chave K
mesmos
bits "aleatórios" para XOR
...0001110
Mensagem
Recuperada
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: e C= (Msg)
●
Kd = (25829, 2237243)
Para decifrar: Msg = (C)
d Cifrar o caractere 'A' (ASCII 65)
–
●
mod n
Ke = (173, 2237243)
65173 mod 2237243 = 1420954
Recuperar o 'A' (Decifrar):
–
142095425829 mod 2237243 = 65 (aprox. 9 seg)
mod n
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
B
A
Chave Pub de B?
E
Problemas na comunicação
●
Não existe garantia de autenticidade
–
Ataque do Homem do meio
B
A
av
Ch
B
de
b d
P
u
Ke
) d
e B
Ch
lso
av
e
?
fa
B
de
e B
ub
?
e P
(
Ke
E
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
Download

em PDF - ULBRA Gravataí