Este documento discute sobre criptografia e fornece exemplos de algoritmos criptográficos simétricos e assimétricos. Ele define criptografia, esteganografia e hash, e explica como funcionam a criptografia simétrica, assimétrica e de chave mista.
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Criptografia Simétrica e Assimétrica
1. Gerência de Redes de
Computadores
- Criptografia -
Prof. André Peres
andre.peres@poa.ifrs.edu.br
2. 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/.
3. 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
4. Criptografia
• Esteganografia NÃO É CRIPTOGRAFIA
• Arte de "esconder" uma mensagem
• Segurança por obscuridade
• Em computação utiliza:
• imagens
• vídeos
• música
• ...
6. 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/mensagem
steghide extract -sf imagem_steg.jpg
7. 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
8. 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
10. 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)
11. 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)
12. Criptografia Simétrica
• Exemplo de algoritmo: deslocamento
• Desloca-se o texto no alfabeto, de acordo com o valor da chave
• Ex: chave K = 3
Texto claro: ATAQUE AS 10 HORAS
Texto cifrado: DWDTXH DV 43 KRUDV
• Quebra do processo:
• Basta deslocar no alfabeto, até que a mensagem faça sentido
• Software: CryptShift
13. 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
14. Criptografia Simétrica
• Exemplo de algoritmo: substituição
• probabilidade de letras em textos escritos em português:
A - 13,562
B - 1,023
C - 4,153
D - 4,590
E - 11,084
F - 1,161
G - 2,579
H - 0,455
I - 7,625
J - 0,132
K - 0,036
L - 3,944
M - 3,800
N - 5,853
O - 10,844
P - 3,022
Q - 0,509
R - 6,134
S - 7,762
T - 4,776
U - 5,338
V - 0,970
W - 0,006
X - 0,413
Y - 0,006
Z - 0,221
15. 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
16. Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100
chave:
texto cifrado:
texto cifrado:
chave:
texto claro:
17. Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100
chave: 101001001110010
texto cifrado:
texto cifrado:
chave: 101001001110010
texto claro:
logística de
chaves
18. Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100
chave: 101001001110010
texto cifrado: 100101011011110
texto cifrado:
chave: 101001001110010
texto claro:
XOR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
19. Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100
chave: 101001001110010
texto cifrado: 100101011011110
texto cifrado: 100101011011110
chave: 101001001110010
texto claro:
XOR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
20. Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100
chave: 101001001110010
texto cifrado: 100101011011110
texto cifrado: 100101011011110
chave: 101001001110010
texto claro: 001100010101100
XOR
XOR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
21. Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
texto claro: 001100010101100
chave: 101001001110010
texto cifrado: 100101011011110
texto cifrado: 100101011011110
chave: 101001001110010
texto 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 = 1
chave = 0 chave = 1
Visão do atacante:
texto cifrado = 1
possibilidades:
50% 50%
texto = 1 texto = 0
chave = 0 chave = 1
22. Criptografia Simétrica
• Exemplo de algoritmo:
• operação XOR bit a bit entre mensagem e chave
• para cada 3 BITS → ex: 010
T: 000
C: 010
-----
010
T: 001
C: 011
-----
010
T: 010
C: 000
-----
010
T: 011
C: 001
-----
010
T: 100
C: 110
-----
010
T: 101
C: 011
-----
010
T: 110
C: 100
-----
010
T: 111
C: 101
-----
010
23. 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 !
24. Criptografia Simétrica
• Exemplo de algoritmo: Possível ataque
texto claro: 001100010101100
chave: 101001001110010
texto cifrado: 100101011011110
XOR
A B A xor B
0 0 0
0 1 1
1 0 1
1 1 0
25. Criptografia Simétrica
• Exemplo de algoritmo: Possível ataque
texto claro: 001100010101100
chave: 101001001110010
texto 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
26. 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)
28. 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
35. • Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
36. • Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
37. • Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
38. • Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
39. • Exemplo de algoritmo: AES
Criptografia Simétrica
fonte: http://blog.ultrassecreto.com/wp-content/uploads/2009/06/projetofinal.html
40. • 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
41. • 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
43. • 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
44. • 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
45. • 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
46. • 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
47. • Exemplo de uso: senhas de usuários
CADASTRO
Uso de hash
48. • Exemplo de uso: senhas de usuários
CONSULTA
Uso de hash
49. • 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
51. • 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
53. • 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
54. • 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
56. • 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
57. • 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
58. • 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
60. • 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
62. • 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
63. • 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
64. • Exemplo de ataque MIM
• Sistemas afetados com o superfish (source: Facebook Security Research)
Superfish VirtualDiscovery
65. • 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
66. • 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
67. • 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
68. • 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