1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução...

30
1 Criptografia e Criptografia e Segurança em Redes Segurança em Redes Capítulo Capítulo 10 10 Quarta Edição Quarta Edição por William Stallings por William Stallings Tradução por Enrico Tradução por Enrico Alvarez Alvarez

Transcript of 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução...

Page 1: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

11

Criptografia e Criptografia e Segurança em Redes Segurança em Redes

Capítulo Capítulo 1010

Quarta EdiçãoQuarta Edição

por William Stallingspor William Stallings

Tradução por Enrico AlvarezTradução por Enrico Alvarez

Page 2: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

22

Capítulo10 – Capítulo10 – Gerenciamento de Gerenciamento de chaveschaves; ; Outros Criptosistemas Outros Criptosistemas

de Chave Públicade Chave Pública

Nenhum Singalês, seja homem ou mulher, se Nenhum Singalês, seja homem ou mulher, se aventuraria a sair de casa sem um punhado aventuraria a sair de casa sem um punhado de chaves em sua mão, pois sem esse de chaves em sua mão, pois sem esse talismã, ele teme que algum demônio possa talismã, ele teme que algum demônio possa tirar proveito do seu estado fraco para entrar tirar proveito do seu estado fraco para entrar em seu corpo. em seu corpo.

——O Ramo DouradoO Ramo Dourado, , Sir James George FrazerSir James George Frazer

Page 3: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

33

Gestão de chavesGestão de chaves

a encriptação de chaves públicas ajuda a a encriptação de chaves públicas ajuda a enfrentar os principais problemas de distribuiçãoenfrentar os principais problemas de distribuição

Há dois aspectos presentes:Há dois aspectos presentes: distribuição de chaves públicas;distribuição de chaves públicas; uso da criptografia de chaves públicas de uso da criptografia de chaves públicas de

distribuição de chaves secretasdistribuição de chaves secretas

Page 4: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

44

Distribuição de chaves públicasDistribuição de chaves públicas

pode ser considerada como uma utilização de:pode ser considerada como uma utilização de: anúncio público;anúncio público; diretórios publicamente disponíveis; diretórios publicamente disponíveis; autoridade de chave-pública; autoridade de chave-pública; certificados de chaves públicas.certificados de chaves públicas.

Page 5: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

55

Anúncio PúblicoAnúncio Público utilizadores distribuiem chaves públicas para os utilizadores distribuiem chaves públicas para os

destinatários ou transmitem a comunidade em destinatários ou transmitem a comunidade em geralgeral por exemplo. anexar chaves PGP em por exemplo. anexar chaves PGP em

mensagens para o e-mail ou correio para mensagens para o e-mail ou correio para grupos de notícias ou lista de e-mailgrupos de notícias ou lista de e-mail

se muito fraco é falsificaçãose muito fraco é falsificação qualquer pessoa pode criar uma chave que qualquer pessoa pode criar uma chave que

diz ser alguém e difundiram-lodiz ser alguém e difundiram-lo até a falsificação ser descoberta alguém pode até a falsificação ser descoberta alguém pode

disfarçar-se como o usuário declaradodisfarçar-se como o usuário declarado

Page 6: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

66

Diretório Publicamente disponívelDiretório Publicamente disponível

pode obterpode obter uma maior segurança, através do registo uma maior segurança, através do registo das chaves com uma lista públicadas chaves com uma lista pública

directório deve ser confiável com as propriedades:directório deve ser confiável com as propriedades: conter as entradas {nome, chaves públicas}; conter as entradas {nome, chaves públicas}; registo seguro de participantes no diretório;registo seguro de participantes no diretório; participantes podem substituir a chave a qualquer participantes podem substituir a chave a qualquer

momento;momento; o diretório é periodicamente publicado;o diretório é periodicamente publicado; o diretório pode ser acessado por via electrónica;o diretório pode ser acessado por via electrónica;

ainda vulnerável a adulteração ou falsificaçãoainda vulnerável a adulteração ou falsificação

Page 7: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

77

Autoridade da Chave Pública Autoridade da Chave Pública

melhoram a segurança ao apertar controle melhoram a segurança ao apertar controle sobre a distribuição de chaves de diretóriosobre a distribuição de chaves de diretório

tem propriedades de diretóriotem propriedades de diretório e obriga os utilizadores a conhecer a e obriga os utilizadores a conhecer a

chave pública para o diretóriochave pública para o diretório os utilizadores interagem com o diretório os utilizadores interagem com o diretório

desejado para obter as chaves públicas desejado para obter as chaves públicas segurasegura requer acesso em tempo real ao diretorio requer acesso em tempo real ao diretorio

quando as chaves são necessáriasquando as chaves são necessárias

Page 8: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

88

Autoridade da Chave Pública Autoridade da Chave Pública

Page 9: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

99

Certificados de chave públicaCertificados de chave pública certificados permitem troca de chaves sem acesso certificados permitem troca de chaves sem acesso

em tempo real a autoridade de chaves públicasem tempo real a autoridade de chaves públicas um certificado de chave pública se liga a um certificado de chave pública se liga a

identidadeidentidade normalmente com outras informações como o normalmente com outras informações como o

prazo de validade, dos direitos de utilização, etcprazo de validade, dos direitos de utilização, etc com todo o conteúdo assinado por uma confiável com todo o conteúdo assinado por uma confiável

de chave pública ou Certificado de Autoridade (CA)de chave pública ou Certificado de Autoridade (CA) pode ser verificada por qualquer pessoa que pode ser verificada por qualquer pessoa que

conheça a autoridade de chaves públicasconheça a autoridade de chaves públicas

Page 10: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

1010

Certificados de chave públicaCertificados de chave pública

Page 11: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

1111

Chave Pública Distribuindo Chave Pública Distribuindo Chaves SecretasChaves Secretas

utilizar métodos anteriores para obter a chave utilizar métodos anteriores para obter a chave públicapública

pode usar de sigilo ou de autenticaçãopode usar de sigilo ou de autenticação mas os algoritmos de chaves públicas são mas os algoritmos de chaves públicas são

lentoslentos de modo geral pretende utilizar a encriptação da de modo geral pretende utilizar a encriptação da

chave privada para proteger o conteúdo chave privada para proteger o conteúdo mensagem mensagem

necessita, portanto, de uma chave de sessãonecessita, portanto, de uma chave de sessão há várias alternativas para a negociação de uma há várias alternativas para a negociação de uma

sessão adequadasessão adequada

Page 12: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

1212

Distribuição de Chaves Secretas Distribuição de Chaves Secretas SimplesSimples

proposto em 1979 por Merkleproposto em 1979 por Merkle Um gera um novo par de chaves públicas Um gera um novo par de chaves públicas

temporáriastemporárias A envia a chave pública B e a sua identidadeA envia a chave pública B e a sua identidade B gera uma chave de sessão K e a envia para B gera uma chave de sessão K e a envia para

A criptografada, usando a chave pública A criptografada, usando a chave pública fornecidafornecida

A descriptografa a chave de sessão e ambos A descriptografa a chave de sessão e ambos utilizamutilizam

problema é que um adversário pode interceptar problema é que um adversário pode interceptar e personificar ambas as metades do protocoloe personificar ambas as metades do protocolo

Page 13: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

1313

Chave Pública Distribuindo Chave Pública Distribuindo Chaves SecretasChaves Secretas

troca segura de chaves públicas:troca segura de chaves públicas:

Page 14: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

1414

Distribuição de Chave HibridaDistribuição de Chave Hibrida mantém o uso da chave privada KDCmantém o uso da chave privada KDC parte da chave mestra para cada usuárioparte da chave mestra para cada usuário distribui sessões da chave utilizando chave mestradistribui sessões da chave utilizando chave mestra a chave pública é usada para distribuir a chave a chave pública é usada para distribuir a chave

mestremestre especialmente útil com usuários amplamente especialmente útil com usuários amplamente

distribuídos distribuídos racionalidaderacionalidade

desempenhodesempenho retrocompatibilidaderetrocompatibilidade

Page 15: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

1515

Mudança da Chave Diffie-Hellman Mudança da Chave Diffie-Hellman

primeiro tipo de sistema de chaves públicas primeiro tipo de sistema de chaves públicas propostaspropostas

por Diffie & Hellman em 1976 juntamente com a por Diffie & Hellman em 1976 juntamente com a exposição do conceito de chave pública exposição do conceito de chave pública nota: agora sabemos que Williamson (UK nota: agora sabemos que Williamson (UK

CESG) secretamente propôs o conceito em CESG) secretamente propôs o conceito em 1970 1970

é um método prático para o troca pública de é um método prático para o troca pública de uma chave secretauma chave secreta

utilizado em uma série de produtos comerciaisutilizado em uma série de produtos comerciais

Page 16: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

1616

Mudança da Chave Diffie-Hellman Mudança da Chave Diffie-Hellman um esquema de distribuição de chaves públicasum esquema de distribuição de chaves públicas

não pode ser usado para troca de uma não pode ser usado para troca de uma mensagem arbitrária mensagem arbitrária

prefencialmente isto pode estabelecer uma chave prefencialmente isto pode estabelecer uma chave comum comum

conhecido apenas para os dois participantesconhecido apenas para os dois participantes o valor da chave depende dos participantes (e as o valor da chave depende dos participantes (e as

informações de suas chaves privadas e públicas)informações de suas chaves privadas e públicas) baseado em uma exponenciação finita (Galois) baseado em uma exponenciação finita (Galois)

campo(modulo de um primo ou um polinómio)-fácilcampo(modulo de um primo ou um polinómio)-fácil segurança depende da dificuldade de calcular segurança depende da dificuldade de calcular

logaritmos discretos(semelhante ao fatorando)-dificillogaritmos discretos(semelhante ao fatorando)-dificil

Page 17: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

1717

Configuração Diffie-Hellman Configuração Diffie-Hellman todos os usuários aceitam os parâmetros todos os usuários aceitam os parâmetros

mundiais:mundiais: grande primo inteiro ou polinómio grande primo inteiro ou polinómio qq aa sendo uma raiz primitiva mod sendo uma raiz primitiva mod qq

cada usuário (ex. A) gera a sua chavecada usuário (ex. A) gera a sua chave escolhe uma chave secreta (número):escolhe uma chave secreta (número): xxAA < q < q computar a sua chave pública: computar a sua chave pública: yyAA = = aa

xxAA mod q mod q

cada usuário torna pública a chave cada usuário torna pública a chave yyAA

Page 18: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

1818

Troca de Chave Diffie-Hellman Troca de Chave Diffie-Hellman a chave da sessão compartilha para os usuários A a chave da sessão compartilha para os usuários A

& B é K& B é KABAB: :

KKABAB = = aaxxA.A.xxBB mod q mod q

= y= yAAxxBB mod q (qual mod q (qual BB pode computar) pode computar)

= y= yBBxxAA mod q (qual mod q (qual AA pode computar) pode computar)

KKABAB é usado como chave de sessão em chave é usado como chave de sessão em chave privada no regime de encriptação entre Alice e Bobprivada no regime de encriptação entre Alice e Bob

se Alice e Bob comunicam posteriormente, eles se Alice e Bob comunicam posteriormente, eles terão a mesma chave como antes, a menos que terão a mesma chave como antes, a menos que eles escolham novas chaves públicas eles escolham novas chaves públicas

atacante que precisa de um X, deve resolver um atacante que precisa de um X, deve resolver um log discretolog discreto

Page 19: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

1919

Exemplo de Diffie-Hellman Exemplo de Diffie-Hellman os usuários Alice & Bob que desejam trocar as os usuários Alice & Bob que desejam trocar as

chaves:chaves: combinar com o primo combinar com o primo q=353q=353 e e aa=3=3 escolha aleatória de chaves secretas:escolha aleatória de chaves secretas:

A escolhe A escolhe xxAA=97, =97, B escolhe B escolhe xxBB=233=233

computar respectivas chaves públicas:computar respectivas chaves públicas: yyAA==33

97 97 mod 353 = 40 mod 353 = 40 (Alice)(Alice)

yyBB==33233233 mod 353 = 248 mod 353 = 248 (Bob)(Bob)

computar a chave de sessão partilhada como:computar a chave de sessão partilhada como: KKABAB= y= yBB

xxAA mod 353 = mod 353 = 2482489797 = 160 = 160 (Alice)(Alice)

KKABAB= y= yAA

xxBB mod 353 = mod 353 = 4040233233 = 160 = 160 (Bob)(Bob)

Page 20: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

2020

Protocolos de Troca de chaveProtocolos de Troca de chave os usuários poderão criar chaves D-H os usuários poderão criar chaves D-H

públicas/privadas aleatórias cada vez que públicas/privadas aleatórias cada vez que se comunicamse comunicam

os usuários poderão criar uma chave D-H os usuários poderão criar uma chave D-H pública/privada conhecida e publicar em pública/privada conhecida e publicar em um diretório, que serão consultadas e um diretório, que serão consultadas e utilizadas para comunicação entre eles utilizadas para comunicação entre eles seguramenteseguramente

ambas estas são vulneráveis a um ataque ambas estas são vulneráveis a um ataque conhecendo-metade conhecendo-metade

autenticação das chaves é necessáriaautenticação das chaves é necessária

Page 21: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

2121

Criptografia de Curvas ElípticasCriptografia de Curvas Elípticas a maioria das chaves públicas criptográficas a maioria das chaves públicas criptográficas

(RSA, DH) usa um inteiro ou polinómio (RSA, DH) usa um inteiro ou polinómio aritmético com números muito aritmético com números muito grandes/polinómiosgrandes/polinómios

impõe uma carga significativa de impõe uma carga significativa de armazenamento e processamento as chaves e armazenamento e processamento as chaves e mensagensmensagens

uma alternativa é a utilização curvas elípticasuma alternativa é a utilização curvas elípticas oferece segurança mesmo com poucos bits de oferece segurança mesmo com poucos bits de

tamanhotamanho mais nova, mas não tão bem analisadasmais nova, mas não tão bem analisadas

Page 22: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

2222

Curvas Elípticas ReaisCurvas Elípticas Reais

uma curva elíptica é definida por uma uma curva elíptica é definida por uma equação em duas variáveis x e y, com equação em duas variáveis x e y, com coeficientescoeficientes

considere uma curva elíptica cúbica de formaconsidere uma curva elíptica cúbica de forma yy22 = = xx33 + + ax ax + + bb onde x,y,a,b são todos números reaisonde x,y,a,b são todos números reais também defini o ponto zero Otambém defini o ponto zero O

há a adição da operação para a curva elípticahá a adição da operação para a curva elíptica geometricamente a soma de Q+R é reflexo geometricamente a soma de Q+R é reflexo

da interseção de Rda interseção de R

Page 23: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

2323

Exemplo de Exemplo de Curvas Elípticas Curvas Elípticas ReaisReais

Page 24: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

2424

Curvas Elípticas Finitas Curvas Elípticas Finitas

criptografia de curvas elípticas usa curvas criptografia de curvas elípticas usa curvas cujas variáveis e coeficientes são finitoscujas variáveis e coeficientes são finitos

há duas famílias comumente utilizadas:há duas famílias comumente utilizadas: curva primária curva primária EEpp(a,b)(a,b) definida como Z definida como Zpp

• utilização de modulo de inteiros primosutilização de modulo de inteiros primos

• melhor em softwaremelhor em software curva binária curva binária EE22mm(a,b)(a,b) definida como GF(2 definida como GF(2nn))

• utilizar polinómios com coeficientes bináriosutilizar polinómios com coeficientes binários

• melhor em hardwaremelhor em hardware

Page 25: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

2525

Criptografia de Criptografia de Curvas ElípticasCurvas Elípticas

ECC adiciona um modulo analógico de ECC adiciona um modulo analógico de multiplicaçãomultiplicação

ECC de adições repetidas é modulo analógico de ECC de adições repetidas é modulo analógico de exponenciaçãoexponenciação

necessidade de um "duro" problema de equiv para necessidade de um "duro" problema de equiv para um log discretoum log discreto Q=kPQ=kP, onde Q,P pertence a uma curva primaria, onde Q,P pertence a uma curva primaria é “fácil” para computar Q dado k,Pé “fácil” para computar Q dado k,P mas “difícil” para encontrar k dado Q,Pmas “difícil” para encontrar k dado Q,P conhecido como problema do algoritmo de curva conhecido como problema do algoritmo de curva

elípticaelíptica exemplo de Certicom : exemplo de Certicom : EE2323(9,17)(9,17)

Page 26: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

2626

ECC Diffie-HellmanECC Diffie-Hellman

podemos fazer a troca de chaves análoga D-Hpodemos fazer a troca de chaves análoga D-H usuário seleciona uma curva adequada usuário seleciona uma curva adequada EEpp(a,b)(a,b) seleciona o ponto básico seleciona o ponto básico G=(xG=(x11,y,y11))

com grande ordem n S.T. com grande ordem n S.T. nG=OnG=O A & B seleciona as chaves primarias A & B seleciona as chaves primarias nnAA<n, n<n, nBB<n<n computa as chaves públicas: computa as chaves públicas: PPAA=n=nAAG, G, PPBB=n=nBBGG computa a chave compartinhada: computa a chave compartinhada: KK=n=nAAPPBB,, KK=n=nBBPPAA

desse mesmo desse mesmo KK=n=nAAnnBBGG

Page 27: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

2727

ECC Criptografia/DecriptografiaECC Criptografia/Decriptografia várias alternativas, iremos considerar a mais simplesvárias alternativas, iremos considerar a mais simples primeiro deve codificar qualquer mensagem M como um primeiro deve codificar qualquer mensagem M como um

ponto da curva elíptica Pponto da curva elíptica Pmm

escolha da curva adequada & ponto G como em D-Hescolha da curva adequada & ponto G como em D-H cada usuário escolhe uma chave privada cada usuário escolhe uma chave privada nnAA<n<n

e computa a chave publica e computa a chave publica PPAA=n=nAAGG

para encriptar Ppara encriptar Pmm : : CCmm={kG, P={kG, Pmm+kP+kPbb}}, k aleatoriamente, k aleatoriamente

decripta Cdecripta Cmm e computa: e computa:

PPmm++kkPPbb––nnBB((kGkG) = ) = PPmm++kk((nnBBGG)–)–nnBB((kGkG) = ) = PPmm

Page 28: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

2828

Segurança ECC Segurança ECC invoca o problema do logaritmo de curva elíptica invoca o problema do logaritmo de curva elíptica método mais rápido é o "método de Pollard rho"método mais rápido é o "método de Pollard rho" comparando a factoração, pode usar chaves de comparando a factoração, pode usar chaves de

tamanho muito menor do que com RSA etctamanho muito menor do que com RSA etc para chaves de comprimento equivalente os para chaves de comprimento equivalente os

cálculos são mais ou menos equivalentescálculos são mais ou menos equivalentes por isso para uma segurança similar ao ECC por isso para uma segurança similar ao ECC

oferece significativas vantagens computacionaisoferece significativas vantagens computacionais

Page 29: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

2929

Comparação de tamanho das chaves Comparação de tamanho das chaves para uma segurança equivalentepara uma segurança equivalenteEsquema Simétrico

(chave com tamanho em bits)

Esquema baseado em

ECC(tamanho de n em bits)

RSA/DSA(modulos de

tamanho em bits)

56 112 51280 160 1024

112 224 2048128 256 3072192 384 7680256 512 15360

Page 30: 1 Criptografia e Segurança em Redes Capítulo 10 Quarta Edição por William Stallings Tradução por Enrico Alvarez.

3030

SumarioSumario

Foi considerado:Foi considerado: distribuição de chaves publicasdistribuição de chaves publicas chave publica distribuição de chaves secretaschave publica distribuição de chaves secretas troca de cahve Diffie-Hellmantroca de cahve Diffie-Hellman criptografia de curvas elípticascriptografia de curvas elípticas