Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

38
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

Transcript of Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

Page 1: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 2: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 3: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 4: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

Problemas de Segurança

Internet

C

A

D

B S

Page 5: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 6: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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)

Page 7: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 8: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 9: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 10: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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!!

Page 11: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 12: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 13: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 14: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

Tipos de Criptografia

● Algoritmos Simétricos– apenas uma chave

– A mesma para cifrar de para decifrar

● Simétricos podem ser:– De bloco

– De fluxo

Page 15: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 16: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 17: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 18: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 19: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 20: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

Tipos de Criptografia

● Algoritmos Simétricos● Algoritmos Assimétricos

– uma chave é usada para cifrar

– outra chave é usada para decifrar

Page 21: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 22: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 23: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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)

Page 24: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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)

Page 25: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 26: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 27: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

Problemas na comunicação

● Não existe garantia de autenticidade– Ataque do Homem do meio

A B

E

Chave Pub de B?

Page 28: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

● 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

Page 29: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

Solução

● Assinar a chave pública– Cliente deve confiar em quem assina

– inviável falsificar assinatura

● Certificadoras:– Como cartórios digitais

Page 30: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 31: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 32: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 33: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 34: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 35: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 36: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 37: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

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

Page 38: Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

Elgio Schlemer

http://gravatai.ulbra.tche.br/~elgiohttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7812

Conceitos de Criptografia e oprotocolo SSL