40
1 Técnicas de criptografia Técnicas de criptografia Funções Hash Criptografia com chave secreta Criptografia com chave pública Assinatura digital • Protocolos

Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

1

Técnicas de criptografiaTécnicas de criptografia

• Funções Hash • Criptografia com chave secreta• Criptografia com chave pública• Assinatura digital• Protocolos

Page 2: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

2

Técnicas de criptografiaTécnicas de criptografia

Criptografia• Estudo de ferramentas e técnicas matemáticas

relacionadas com aspectos relativos a segurança da informação, tais como privacidade, integridade, autenticação de entidade e autenticação da origem dos dados.

• É amplamente reconhecido que criptografia é uma tecnologia crucial para segurança em redes."Necessidade é a mão das invenções, e redes de computadores

são as mães da criptografia moderna."Ronald L. Rivest, 1997.

Page 3: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

3

Técnicas de criptografiaTécnicas de criptografia

Criptografia– Transformação de uma mensagem segundo um

método (encriptação)– A mensagem é encriptada antes de ser enviada– Ao ser recebida, a mensagem encriptada é

revertida à mensagem original (decriptação)– Para dificultar a descoberta do método de

encriptação, este é dividido em duas partes• Um procedimento, ou algoritmo, de encriptação• Uma chave de codificação

– Assim, o algoritmo de encriptação pode ser conhecido publicamente, resguardando-se a chave

Page 4: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

4

Técnicas de criptografiaTécnicas de criptografia

CriptografiaModelo de encriptação convencional

Page 5: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

5

Técnicas de criptografiaTécnicas de criptografia

CriptografiaTerminologia

Parâmetro de codificação do algoritmo de encriptação

Chave

Análise da cifra, visando desvendar o texto plano

Criptanálise

O texto encriptadoCifra

O texto originalTexto plano

Page 6: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

6

Técnicas de criptografiaTécnicas de criptografia

CriptografiaCifra de César

• Cada letra do alfabeto é substituída por outra letra três posições adiante:

Texto: meet me after the toga partyCifra: phhw ph diwhu wkh wrjd sduwb• A criptanálise para desvendar o texto original é

de grande simplicidadeTexto: a b c d e f g h i j k l m n o p q r s t u v w x y

zCifra: d e f g h i j k l m n o p q r s t u v w x y z a b c

Page 7: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

7

Técnicas de criptografiaTécnicas de criptografia

CriptografiaCifra de César

• O método pode ser expresso por:c = E(p) = (p + 3) mod (26)p = D(c) = (c - 3) mod (26)

• Se for generalizado o número de posições de deslocamento das letras:

c = E(p) = (p + k) mod (26)p = D(c) = (c - k) mod (26) • Para se quebrar este código, basta tentar todas

as 25 possibilidades para k

Page 8: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

8

Técnicas de criptografiaTécnicas de criptografia

CriptografiaCifra de César

Quebrando o código na força bruta ...

Page 9: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

9

Técnicas de criptografiaTécnicas de criptografia

CriptografiaUma boa técnica deve ter propriedades:– Segurança depender da chave permanecer secreta, e não o algoritmo– Alta entropia– Resistência a criptanálise– Espaço de chaves amplo– Alta variabilidade em função da chave e do texto plano– Resistência a colisões

Page 10: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

10

Técnicas de criptografiaTécnicas de criptografia

CriptografiaTécnicas modernas incluem:– Hashes– Encriptação com chave simétrica (chave secreta)– Encriptação com chaves assimétricas (chave pública)

Page 11: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

11

Técnicas de criptografiaTécnicas de criptografia

Hashes– Uma função hash h recebe como entrada uma

string x de comprimento arbitrário.

– A saída h(x) é uma string de comprimento fixo.• Ex: cálculo de dígito verificador do CPF,CRC

– Uma função hash é dita somente-ida (one-way) se for computacionalmente inviável invertê-la

• Deve ser muito difícil encontrar x, dado h(x)

– Além disto, uma função hash é dita fortemente resistente a colisão se for também muito difícil encontrar duas strings x e x' tais que h(x) = h(x').

Page 12: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

12

Técnicas de criptografiaTécnicas de criptografia

Hashes (algoritmos mais conhecidos):– MD4 (128 bits): desenvolvido em 1990 pela RSA,

sendo atualmente considerado frágil. Usado para senhas NTLM.

– MD5 (128 bits): desenvolvido em 1991 pela RSA. Há técnicas para gerar colisões. Muito usado para verificação de integridade de arquivos e armazenamento de senhas.

– SHA (160 a 512 bits): desenvolvidos a partir de 1993 pelo NIST e NSA. Há técnicas para gerar colisões para SHA-0 e SHA-1 (ambos com 160 bits).

– Whirlpool (512 bits): criado em 2004 e parte do padrão ISO 10118-3.

Page 13: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

13

Técnicas de criptografiaTécnicas de criptografia

Hashes– Ex: Algoritmo MD5, que gera hashes de 128 bits:

Entrada: abcdefghijHash: a925576942e94b2ef57a066101b48876

Entrada: abcdefghiHash: 8aa99b1f439ff71293e95357bac6fd94

Page 14: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

14

Técnicas de criptografiaTécnicas de criptografia

Hashes– Ex: Algoritmo SHA, que gera hashes de 160 bits:

Entrada: abcdefghijHash:

d68c19a0a345b7eab78d5e11e991c026ec60db63

Entrada: abcdefghiHash:

c63b19f1e4c8b5f76b25c49b8b87f57d8e4872a1

Page 15: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

15

Técnicas de criptografiaTécnicas de criptografia

HashesUtilidade de hashes

– Verificação de integridade de mensagens• Deteccção de erros• Detecção de adulteração

– Representação compacta de mensagens (fingerprint, ou impressão digital)

• Podem-se comparar os hashes de duas mensagens, ao invés das mensagens em si.

• Usados em aplicações P2P e de cópias de arquivos (rsync)

– Armazenamento de senhas• Amplamente usado por sistemas operacionais e

aplicativos

Page 16: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

16

Técnicas de criptografiaTécnicas de criptografia

HashesUtilidade de hashes – exemploMensagem original:

Hash MD5 da mensagem:

Page 17: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

17

Técnicas de criptografiaTécnicas de criptografia

HashesUtilidade de hashes – exemploModificando a mensagem original:

Hash MD5 da mensagem modificada:

Page 18: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

18

Técnicas de criptografiaTécnicas de criptografia

HashesUtilidade de hashes – exemploComparando os dois hashes MD5:

... Pode-se concluir que:1. As mensagens são diferentes.2. Se deveriam ser iguais, a mensagem original foi alterada

(a alteração pode ter sido um erro durante a transmissão, ou uma modificação intencional).

Page 19: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

19

Técnicas de criptografiaTécnicas de criptografia

HashesUtilidade de hashes – exemploSe o hash MD5 da mensagem for enviado a ela anexado,

pode-se fazer uma verificação de integridade na recepção:

Page 20: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

20

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave secreta– Transforma uma string:c = E(p, k)p = D(c, k)– Comumente c e p têm mesmo tamanho– Ideal para proteger (encriptar) informação– Chamados de algoritmos de criptografia simétricos

• Usa-se a mesma chave k para encriptar e para decriptar

• A chave deve ser do conhecimento apenas dos pares envolvidos na troca de informação

Page 21: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

21

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave secreta

Page 22: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

22

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave secreta (algoritmos):– DES (Data Encryption Standard): padrão do

governo americano a partir de 1976. Considerado fraco, por usar chaves pequenas (40 ou 56 bits).

– 3DES (Triple DES): desenvolvido pela IBM em 1978, usa DES três vezes, com duas ou três chaves distintas de 56 bits.

– AES (Advanced Encryption Standard): desenvolvido em 1998, e sucessor do DES como padrão do governo americano em 2002. Usa chaves de 128, 192 ou 256 bits.

Page 23: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

23

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave secreta (algoritmos):– RC4 (Ron's Code): desenvolvido em 1987 pela

RSA. Cifra para streams bastante usada em protocolos de comunicação (SSL, WEP), apesar de fraquezas conhecidas. Usa chaves entre 40 e 256 bits.

– Blowfish: desenvolvido em 1993 por Bruce Schneier. Tem boa taxa de encriptação, e não há fraquezas conhecidas. Usa chaves de 128 bits.

– Twofish: desenvolvido em 1998 por Bruce Schneier e outros, sendo sucessor do Blowfish. Usa chaves de 256 bits. Disputou com AES para ser novo padrão do governo americano.

Page 24: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

24

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave secreta

Usando criptografia simétrica para encriptar o hash MD5 da mensagem mostrada anteriormente:

Page 25: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

25

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave secreta

Para fazer a verificação da mensagem, quem a receber deve antes decriptar o hash

– Implica então que a chave simétrica deve ser de seu conhecimento

– Caso a possua, a verificação da mensagem se dará pelas etapas:

• Decripta o hash• Calcula o hash da mensagem recebida• Compara os hashes

– Para implementar essa verificação, faz-se necessário um mecanismo seguro de distribuição de chaves

Page 26: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

26

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave secretaEncriptando um valor com GnuPG:

Decriptando o texto cifrado acima:

Page 27: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

27

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave secreta• Algoritmos com chave simétrica são apropriados para encriptar informação• Há uma dificuldade quanto ao gerenciamento das chaves secretas

– Como chaves secretas podem ser compartilhadas ?– Se a chave secreta for enviada pela rede, um terceiro

usuário poderia interceptá-la !

Vejam o filme “The Imitation Game”, de 2014.

Page 28: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

28

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave pública– Algoritmos de criptografia com chaves assimétricas– Cada par da comunicação possui duas chaves

• Uma cifra gerada com uma das chaves somente pode ser decriptada com a outra chave.

– Com este método, pode-se tornar pública uma das chaves, e manter a outra secreta (privada)

• A chave pública de uma entidade da rede será usada por quem desejar lhe enviar uma mensagem

• Somente o possuidor da correspondente chave privada conseguirá decodificar a mensagem

Page 29: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

29

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave públicac = F(p, kp) c = F(p, ks)p = F(c, ks) p = F(p, kp)

Page 30: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

30

Técnicas de criptografiaTécnicas de criptografia

Criptografia de chave pública (algoritmos):– RSA (Rivest-Shamir-Adleman): desenvolvido em

1977 no MIT. Primeiro algoritmo de chave pública, e usa dificuldade de fatoração de grandes números como princípio. Usa chaves de 512, 1024, 2048 ou 4096 bytes.

– DSA (Digital Signature Algorithm): desenvolvido em 1991 pelo NIST, tornando-se padrão do governo americano. Usado somente para assinaturas digitais. Usa chaves de 1024, 2048 ou 3072 bits.

– Elgamal: desenvolvido em 1984 por Taher Elgamal. Possui fraquezas conhecidas.

Page 31: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

31

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave públicaO algoritmo RSA se baseia em teoria dos números (fatoração de números):

Chave pública:n = p.q (p e q são números primos)e relativamente primo de (p - 1).(q - 1)Chave secreta:d = e-1 mod [(p - 1).(q - 1)]Encriptação:c = me mod nDecriptação:m = cd mod n

Page 32: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

32

Técnicas de criptografiaTécnicas de criptografia

Criptografia com chave públicaExemplo de criação de chaves para RSA:

Se p = 47 e q = 71:n = p.q = 3337(p - 1).(q - 1) = 3220Escolhe-se e aleatoriamente, de forma que seja primo e não tenha fatores em comum com 3220:e = 79d = 79-1 mod 3220 = 1019Publiquem-se e e n, mantendo-se d secreta.Encriptando m = 688:68879 mod 3337 = 1570 = cDecriptando c:15701019 mod 3337 = 688 = m

Page 33: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

33

Técnicas de criptografiaTécnicas de criptografia

Assinatura digitalUma forma de garantir que uma mensagem foi gerada de fato por uma determinada entidade da rede

– O remetente calcula um hash da mensagem, que a ela é anexado

– Hash é encriptado com a chave privada do remetente

– Mensagem + hash encriptado são enviados para o destinatário

– O destinatário decripta o hash com a chave pública do remetente

– O destinatário confere se o hash corresponde à mensagem

Page 34: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

34

Técnicas de criptografiaTécnicas de criptografia

Assinatura digitalExemplo de assinatura digital da mensagem vista anteriormente,usando o software GnuPG (uma variação do famoso PGP):

Page 35: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

35

Técnicas de criptografiaTécnicas de criptografia

Assinatura digital– Inserindo uma pequena alteração na mensagem.

– Verificando a mensagem:

Page 36: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

36

Técnicas de criptografiaTécnicas de criptografia

ProtocolosTroca de chave• Criptografia com chave pública é muito mais pesada

computacionalmente que criptografia simétrica.– Segundo Bruce Schneier, em seu livro “Applied

Cryptography”, o algoritmo RSA é cerca de 100 vezes mais lento que DES se implementado em software, e 1000 vezes mais lento se implementado em hardware.

– Não se considera viável usar criptografia de chave pública para manter sigilo (confidencialidade) de informação.

– Sigilo pode ser implantado de forma mais eficiente com criptografia simétrica.

– Isto leva ao problema de troca de chaves entre pares de uma comunicação, pois ambos precisarão conhecer a chave secreta usada por tal tipo de algoritmo.

Page 37: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

37

Técnicas de criptografiaTécnicas de criptografia

ProtocolosIntercâmbio de chave

– Com criptografia simétrica• a chave de sessão deve ser do conhecimento dos pares

antes da comunicação• Uma entidade confiável pode gerar uma chave de sessão,

e enviá-la para os pares que desejam se comunicar com sigilo.

• Cada par deve possuir uma chave simétrica previamente fornecida pela entidade confiável, para poder se comunicar com esta também com sigilo.

– Com criptografia assimétrica• a chave de sessão é gerada aleatoriamente por um dos

pares • usa-se a chave pública do outro par para lhe transmitir a

chave de sessão

Page 38: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

38

Técnicas de criptografiaTécnicas de criptografia

Protocolos Autenticação• Com funções somente-ida (one-way hash)

– Uma senha é armazenada criptografada– Para conferir a autenticidade de um usuário, solicita-se a

senha– A senha fornecida é criptografada e então comparada

com aquela armazenada

Page 39: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

39

Técnicas de criptografiaTécnicas de criptografia

Protocolos Autenticação• Com criptografia de chave pública

– Armazena-se a chave pública de um usuário A– Para B autenticar este usuário, gera-se uma string

aleatória e encripta-se a chave pública de A– Envia-se a string ao usuário A, que deve decriptá-la com

sua chave privada, encriptá-la com a chave pública de B e remetê-la de volta

– B decripta esta mensagem com sua chave privada, e compara-a com a string original

Page 40: Técnicas de criptografiatele.sj.ifsc.edu.br/~msobral/rmu/intro-seguranca2.pdf · Técnicas de criptografia Criptografia Cifra de César • O método pode ser expresso por: c = E(p)

40

Técnicas de criptografiaTécnicas de criptografia

Protocolos Autenticação

– Com credenciais únicas• Recebe-se uma semente da entidade que exige

autenticação (isto é feito num momento de cadastro).• A cada autenticação a ser realizada, computa-se um

valor que servirá de credencial.• Esta credencial é calculada com uma função a partir

da semente.• A cada autenticação, a nova credencial é calculada

em função da credencial anterior.• A função deve ser tal que seja computacionalmente

inviável determinar a semente a partir das credenciais calculadas.