6 - segurança - criptografia
TRANSCRIPT
Sobre este material
• Vídeos da apresentação em:
http://youtu.be/hXT_nlHfArs
Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-NãoComercial-SemDerivações 4.0 Internacional. Para ver uma
cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/4.0/.
Criptografia
• Definição:
Arte ou ciência que trata de técnicas para tornar uma mensagem confusa, incompreensível para qualquer pessoa que não seja o destinatário da mesma
Criptografia
• Esteganografia NÃO É CRIPTOGRAFIA
• Arte de "esconder" uma mensagem• Segurança por obscuridade• Em computação utiliza:
• imagens• vídeos• música• ...
Criptografia
• Esteganografia NÃO É CRIPTOGRAFIA• exemplo:
imagem original imagem com mensagem
Criptografia
• Esteganografia NÃO É CRIPTOGRAFIA
• software: steghide
escondendo mensagem na imagem:steghide embed -ef msg.txt -cf igm_orig.jpg -sf img_steg.jpg
separando imagem/mensagemsteghide extract -sf imagem_steg.jpg
Criptografia
• Funcionamento da criptografia
• Cifragem → processo capaz de transformar um texto claro em um texto cifrado
• Decifragem → processo capaz de transformar um texto cifrado no texto claro original
Criptografia
• Criptografia na computação
• Algoritmos de cifragem e decifragem• Chave para cifragem e chave para decifragem
• Sobre as chaves• São o segredo que o atacante não pode possuir• Com tempo infinito, toda chave pode ser descoberta
Criptografia
• Sistema de Criptografia
Criptografia
• Premissa de Kerckhoffs• Atacante conhece tudo, menos a chave• Não existe obscuridade
• Recurso x Tempo• O objetivo é proteger a informação de acordo
com o seu “tempo de vida”
• Todo criptosistema pode ser quebrado• Exceção: cifra de Vernam (one-time-pad)
Criptografia
• Criptografia Simétrica
• chave única para cifragem e decifragem• rápido• chave não pode ser exposta• problema de logística de chaves (transporte)
Criptografia Simétrica
• Exemplo de algoritmo: deslocamento
• Desloca-se o texto no alfabeto, de acordo com o valor da chave
• Ex: chave K = 3Texto claro: ATAQUE AS 10 HORASTexto cifrado: DWDTXH DV 43 KRUDV
• Quebra do processo:• Basta deslocar no alfabeto, até que a mensagem faça sentido
• Software: CryptShift
Criptografia Simétrica
• Exemplo de algoritmo: substituição
• Cria-se um mapa das letras do alfabeto (o mapa é a chave)
• Ex: A=C, B=X, C=W, D=R, … para todas as letras
• Quebra do processo:• Utilização de análise probabilística da linguagem do texto
original
• Software:CryptSubst
Criptografia Simétrica
• Exemplo de algoritmo: substituição
• probabilidade de letras em textos escritos em português:
A - 13,562B - 1,023C - 4,153D - 4,590E - 11,084F - 1,161G - 2,579H - 0,455I - 7,625J - 0,132K - 0,036L - 3,944M - 3,800
N - 5,853O - 10,844P - 3,022Q - 0,509R - 6,134S - 7,762T - 4,776U - 5,338V - 0,970W - 0,006X - 0,413Y - 0,006Z - 0,221
Criptografia Simétrica
• Exemplo de algoritmo: Vigenere
• Similar ao deslocamento, porém define-se uma chave que regra o deslocamento
• Ex: Chave K = TESTE
• Texto claro: ATAQUEASDEZHORAS• Aplicando a chave: TESTETESTETESTET• Texto cifrado: TXSJYXEKWISLGKEL
• Quebra do processo:• Análise probabilística da linguagem do texto original + força
bruta da chave
• Software: CryptVigenere
Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100chave:texto cifrado:
texto cifrado:chave:texto claro:
Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100chave: 101001001110010texto cifrado:
texto cifrado:chave: 101001001110010texto claro:
logística de chaves
Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100chave: 101001001110010texto cifrado: 100101011011110
texto cifrado:chave: 101001001110010texto claro:
XOR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100chave: 101001001110010texto cifrado: 100101011011110
texto cifrado: 100101011011110chave: 101001001110010texto claro:
XOR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100chave: 101001001110010texto cifrado: 100101011011110
texto cifrado: 100101011011110chave: 101001001110010texto claro: 001100010101100
XOR
XOR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100chave: 101001001110010texto cifrado: 100101011011110
texto cifrado: 100101011011110chave: 101001001110010texto claro: 001100010101100
XOR
XOR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
?
Visão do atacante:texto cifrado = 0
possibilidades:50% 50%
texto = 0 texto = 1chave = 0 chave = 1
Visão do atacante:texto cifrado = 1
possibilidades:50% 50%
texto = 1 texto = 0chave = 0 chave = 1
Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave• para cada 3 BITS → ex: 010
T: 000C: 010 ----- 010
T: 001C: 011 ----- 010
T: 010C: 000 ----- 010
T: 011C: 001 ----- 010
T: 100C: 110 ----- 010
T: 101C: 011 ----- 010
T: 110C: 100 ----- 010
T: 111C: 101 ----- 010
Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave• para cada 8 bits → qualquer 1 letra (byte)
• para cada 24 bits → 3 letras• mesma probabilidade para as combinações:
• ovo, alo, 123, uma, ???
• para cada 1Gb → qualquer combinação possível de 1 Gb
• o atacante nunca saberá quando encontrou a chave correta !
Criptografia Simétrica
• Exemplo de algoritmo: Possível ataque
texto claro: 001100010101100chave: 101001001110010texto cifrado: 100101011011110
XOR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
Criptografia Simétrica
• Exemplo de algoritmo: Possível ataque
texto claro: 001100010101100chave: 101001001110010texto cifrado: 100101011011110
XOR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
Problemas:
1. Não se pode repetir a chave
2. A chave deve ter o mesmo tamanho da mensagem
3. Logística de chaves
Criptografia Simétrica
• Exemplo de algoritmo: RC4
• utilização de XOR bit a bit
• geração dinâmica da chave:• utiliza uma semente compartilhada• geração de chave via PRNG (pseudo-random number generator)
Criptografia Simétrica
• Exemplo de algoritmo: RC4
Criptografia Simétrica
• Exemplo de algoritmo: AES
• Advanced Encryption Standard• substituto do DES (Data Encryption Standard)
• concurso em 1997 oferecido pelo NIST• dados divididos em blocos de 128 bits• chaves de 128, 192 ou 256 bits• vencedor (definido em 2001): Rijndael
Criptografia Simétrica
• Exemplo de algoritmo: AES
Criptografia Simétrica
• Exemplo de algoritmo: AES
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
Criptografia Simétrica
• Exemplo de algoritmo: AES
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
D4
Criptografia Simétrica
• Exemplo de algoritmo: AES
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
Não rotaciona
Rotaciona 1
Rotaciona 2
Rotaciona 3
• Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
• Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
04
• Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
• Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
• Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
• Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
• Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
• Exemplo de algoritmo: AES
para entender melhor o algoritmo AES (e o algoritmo de expansão de chave)
http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
Criptografia Simétrica
• Funcionamento:
• duas chaves: pública e privada• o que uma cifra somente a outra decifra• mais lento que criptografia simétrica• resolve o problema de logística de chaves
Criptografia Assimétrica
• Funcionamento:
Criptografia Assimétrica
• Funcionamento:
• o atacante não possui a chave de decifragem (privada)
• pode realizar um ataque à integridade da mensagem• mesmo sem saber o quê está alterando
• garantir a integridade → HASH
Criptografia Assimétrica
• Funcionamento:• utilizado para garantia de integridade
• NÃO é criptografia !
• gera um resumo matemático de um conjunto de bytes de qualquer tamanho
• não se consegue recuperar os bytes originais a partir do resumo
• a alteração de 1 bit no conjunto original gera um resultado completamente diferente
HASH
• Funcionamento:• alguns algoritmos: MD5, SHA, HAVAL, …
• Exemplo de aplicação do HASH:• Mensagem: mensagem importante• MD5: c3cf69762ec58c0f1770944f223b665a
• Após alteração:• Mensagem: mensagem importantE• MD5: 75f1db4702d947bfab14551f4485e599
HASH
• Funcionamento:
Ao receber uma mensagem com cálculo de integridade (hash), o destinatário calcula novamente e verifica se houve alteração em trânsito
HASH
• Exemplo de uso: senhas de usuáriosCADASTRO
Uso de hash
• Exemplo de uso: senhas de usuáriosCONSULTA
Uso de hash
• Utilização do par de chaves para assinatura:
• Ao cifrar uma mensagem com a chave privada, todos podem validar a autenticidade do texto usando a chave pública
• Não garante a confidencialidade, porém a autenticidade
Assinatura Digital
• Confidencialidade, autenticidade e integridade
Criptografia Assimétrica
• Criptografia Assimétrica + Simétrica:
• Utilização da criptografia assimétrica (lenta) para troca de chaves simétricas (veloz)
• A mensagem inicial trocada entre as pontas é a semente compartilhada para criação de um canal simétrico
Criptografia Mista
• Criptografia Assimétrica + Simétrica:
Criptografia Mista
• Ataque em criptografia de chave mista
• A criação de chaves pública/privada é um processo simples
• Qualquer pessoa pode criar um par de chaves com qualquer identificação
• Um atacante pode gerar um par de chaves com o nome da instituição/empresa alvo
• Quando o cliente requisita a chave, o atacante envia a chave falsa
Man in the Middle
• Ataque em criptografia de chave mista
• Após criar o canal simétrico com o cliente, o atacante cria um canal simétrico com o servidor
• O atacante intercepta e decifra toda a comunicação entre cliente e servidor permanecendo no “meio do caminho”
Man in the Middle
Man in the Middle
• Ataque em criptografia de chave mista
• O cliente recebe as respostas DO BANCO• Pode efetuar todas as transações normalmente
• Quais os problemas?• O cliente não verifica a autenticidade da chave do banco• O banco não verifica a autenticidade do cliente
Man in the Middle
• PKI
• É necessário validar se uma chave pública é autêntica
• Para isso, cria-se uma entidade confiável• Autoridade certificadora (CA)
• A CA assina as chaves públicas que reconhece, criando um certificado de autenticidade
• Ao receber este certificado, assume-se que seja autêntico
Infraestrutura de chaves públicas
• PKI
• O navegador possui um conjunto de chaves públicas de entidades confiáveis (CAs)
• As instituições submetem suas chaves públicas a uma destas entidades para geração de um certificado
→ chave pública ASSINADA
• Sempre que recebe uma chave pública, verifica se foi assinada por uma CA
Infraestrutura de chaves públicas
PKI
• PKI
• A emissão de certificados por CAs é paga• Um certificado verisign:• Válido por 1 ano• Aprox. US$ 1500,00
• Nem todas as instituições tem interesse neste custo
• Sem certificado, não tem como o browser identificar a validade da chave público → Vai emitir aviso ao usuário
Infraestrutura de chaves públicas
• PKI
Infraestrutura de chaves públicas
• PKI
• O usuário deve decidir se aceita ou não a conexão
• Para evitar este tipo de aviso, pode-se instalar o certificado não assinado no browser manualmente
• … se o atacante possuir acesso à máquina alvo poderá instalar certificados falsos também...
→ nunca use máquinas nas quais não confia !!!!
Infraestrutura de chaves públicas
• Exemplo de ataque MIM
• computadores LENOVO a partir de setembro de 2014• pré-instalado: Superfish VirtualDiscovery (spyware)• interceptação de tráfego de navegação para propaganda
direcionada
• computadores com certificado de CA root instalada (superfish)• MIM em conexões HTTPS
• era apresentado o certificado da superfish para o navegador
Superfish VirtualDiscovery
• Exemplo de ataque MIM
• Sistemas afetados com o superfish (source: Facebook Security Research)
Superfish VirtualDiscovery
• Implantação de PKI
• Existe a possibilidade de se criar uma CA em uma empresa/instituição...
• Cria-se então uma Infra-estrutura de Chaves Públicas (ICP ou PKI)• Implementação complexa• Necessário montar uma estrutura para garantia de
funcionamento• Segurança da CA
• Gerência de chaves (perda, expiração, ...)• Histórico de chaves• …
Infraestrutura de chaves públicas
• Dados armazenados
• Para garantir a confidencialidade de dados armazenados:
• Utilização de sistemas criptográficos no local de armazenamento
• Disco / partição / diretório• Mídias de backup• Bancos de dados• ...
Uso de criptografia
• Dados em trânsito
• Para garantir a confidencialidade de dados em trânsito:
• Utilização de sistemas criptográficos nos serviços disponibilizados
• HTTPS• POPS / IMAPS• VPN• ...
Uso de criptografia
• Cuidados
• Gerência de chaves
• Dados cifrados, só podem ser decifrados por quem conhece a chave…
• Esqueceu a chave• Funcionário demitido/indisponível• Existem casos de sequestro de dados utilizando cifragem
• Existem formas de se ter uma “chave mestra”• Depende do sistema a ser utilizado
Uso de criptografia