Conceitos de Criptografia e o protocolo SSL - Elgio Schlemer

Post on 13-Jun-2015

1.942 views 3 download

Transcript of 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

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

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