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 Revisão: Marcos J Pinto Revisão: Marcos J Pinto

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 Revisão: Marcos J Pinto.

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

Revisão: Marcos J PintoRevisão: Marcos J Pinto

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

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 de sua fraqueza para invadir tirar proveito de sua fraqueza para invadir seu corpo. 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 Revisão: Marcos J Pinto.

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 para a uso da criptografia de chaves públicas para a

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 Revisão: Marcos J Pinto.

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 Revisão: Marcos J Pinto.

55

Anúncio PúblicoAnúncio Público usuários distribuem chaves públicas entre os usuários distribuem chaves públicas entre os

destinatários ou transmitem entre a comunidade destinatários ou transmitem entre a comunidade em geralem geral por exemplo. anexar chaves PGP em por exemplo. anexar chaves PGP em

mensagens de e-mail enviar para grupos de mensagens de e-mail enviar para grupos de discussão ou listas de e-maildiscussão ou listas de e-mail

principal fraqueza é a falsificaçãoprincipal fraqueza é a falsificação qualquer pessoa pode criar uma chave, qualquer pessoa pode criar uma chave,

fingindo ser outra pessoa, e difundi-lafingindo ser outra pessoa, e difundi-la 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 Revisão: Marcos J Pinto.

66

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

pode obterpode obter uma maior segurança por meio do uma maior segurança por meio do registo das chaves em uma lista públicaregisto das chaves em uma lista pública

diretório deve ser confiável com as propriedades:diretó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 eletrônica;o diretório pode ser acessado por via eletrô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 Revisão: Marcos J Pinto.

77

Autoridades de Chaves Públicas Autoridades de Chaves Públicas

melhoram a segurança ao tornar mais melhoram a segurança ao tornar mais rígido o controle da distribuição de chaves rígido o controle da distribuição de chaves no diretóriono diretório

tem propriedades de diretóriotem propriedades de diretório e obriga os usuários a conhecer a chave e obriga os usuários a conhecer a chave

pública do diretóriopública do diretório os usuários interagem com o diretório os usuários interagem com o diretório

desejado para obter as chaves públicas de desejado para obter as chaves públicas de forma seguraforma segura exige acesso em tempo real ao diretorio exige 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 Revisão: Marcos J Pinto.

88

Autoridade de Chaves Públicas Autoridade de Chaves Públicas

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

99

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

em tempo real a autoridades de chaves públicasem tempo real a autoridades de chaves públicas um certificado associa a um certificado associa a identidadeidentidade à à chave chave

públicapública 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 Autoridade com todo o conteúdo assinado por uma Autoridade

Certificadora ou chave pública confiávelCertificadora ou chave pública confiável 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 Revisão: Marcos J Pinto.

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 Revisão: Marcos J Pinto.

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 deseja-se utilizar a encriptação de modo geral deseja-se utilizar a encriptação

da chave privada para proteger o conteúdo da 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 Revisão: Marcos J Pinto.

1212

Distribuição Simples de Chaves Distribuição Simples de Chaves SecretasSecretas

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

temporáriastemporárias A envia a chave pública e a sua identidade para A envia a chave pública e a sua identidade para

BB B gera uma chave de sessão K e a envia para A B gera uma chave de sessão K e a envia para A

criptografada, usando a chave pública fornecidacriptografada, usando a chave pública fornecida 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 e problema é que um adversário pode interceptar e

personificar ambas as metades do protocolopersonificar 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 Revisão: Marcos J Pinto.

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 Revisão: Marcos J Pinto.

1414

Distribuição Hibrida de ChaveDistribuição Hibrida de Chave mantém o uso da chave privada KDCmantém o uso da chave privada KDC compartilha chave mestra com cada usuáriocompartilha chave mestra com cada usuário distribui chave de sessão utilizando chave mestradistribui chave de sessão 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 Revisão: Marcos J Pinto.

1515

Troca de Chaves Diffie-Hellman Troca de Chaves Diffie-Hellman

primeiro método para a troca de chaves públicasprimeiro método para a troca de chaves públicas proposto por Diffie & Hellman em 1976 proposto por Diffie & Hellman em 1976

juntamente com a exposição do conceito de juntamente com a exposição do conceito de chave pública chave pública nota: hoje sabemos que Williamson (UK nota: hoje sabemos que Williamson (UK

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

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

utilizado em diversos produtos comerciaisutilizado em diversos 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 Revisão: Marcos J Pinto.

1616

Troca de Chaves Diffie-Hellman Troca de Chaves Diffie-Hellman um método de distribuição de chaves públicasum método 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

em vez disso pode estabelecer uma chave em vez disso pode estabelecer uma chave comum comum

conhecido apenas pelos dois participantesconhecido apenas pelos 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 em um corop finito baseado em uma exponenciação em um corop finito

(Galois) (modulo de um primo ou um polinômio)-fácil(Galois) (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 a fatoração)-dificillogaritmos discretos(semelhante a fatoração)-dificil

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

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 Revisão: Marcos J Pinto.

1818

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

A & B é KA & B é KABAB: :

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

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

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

KKABAB é usado como chave de sessão em método de é usado como chave de sessão em método de criptografia de chave privada entre Alice e Bobcriptografia de chave privada entre Alice e Bob

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

o atacante que precisar de um X, deverá resolver o atacante que precisar de um X, deverá resolver um log discretoum log discreto

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

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 Revisão: Marcos J Pinto.

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 comunicaremse comunicarem

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 segura entre utilizadas para comunicação segura entre eleseles

ambas são vulneráveis a um ataque man ambas são vulneráveis a um ataque man in the middle in the middle

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 Revisão: Marcos J Pinto.

2121

Criptografia de Curvas ElípticasCriptografia de Curvas Elípticas a maioria das criptografias de chaves públicas a maioria das criptografias de chaves públicas

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

impõe uma carga significativa de armazenamento impõe uma carga significativa de armazenamento e processamento de chaves e mensagense processamento de chaves e mensagens

uma alternativa é a utilização de curvas elípticasuma alternativa é a utilização de 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 analisadamais nova, mas não tão bem analisada

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

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 Revisão: Marcos J Pinto.

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 Revisão: Marcos J Pinto.

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 Revisão: Marcos J Pinto.

2525

Criptografia de Criptografia de Curvas ElípticasCurvas Elípticas

Adição de ECC é análoga à multiplicação móduloAdição de ECC é análoga à multiplicação módulo Adições repetidas de ECC é análoga a Adições repetidas de ECC é análoga a

exponenciação móduloexponenciação módulo é preciso um problema “difícil“ equivalente a é preciso um problema “difícil“ equivalente a

logarítmos discretoslogarítmos discretos Q=kPQ=kP, onde Q,P pertencem a uma curva de , onde Q,P pertencem a uma curva de

primosprimos é “fácil” calcular Q dado k,Pé “fácil” calcular Q dado k,P mas “difícil” encontrar k dado Q,Pmas “difícil” encontrar k dado Q,P conhecido como problema do algoritmo de conhecido como problema do algoritmo de

curvas elípticascurvas elípticas 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 Revisão: Marcos J Pinto.

2626

ECC Diffie-HellmanECC Diffie-Hellman

podemos fazer troca de chaves de forma análoga podemos fazer troca de chaves de forma análoga ao D-Hao 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 selecionam as chaves primarias A & B selecionam 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 Revisão: Marcos J Pinto.

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 Revisão: Marcos J Pinto.

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 fatoração, pode usar chaves de comparando a fatoraçã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 Revisão: Marcos J Pinto.

2929

Comparação de tamanho das chaves Comparação de tamanho das chaves para segurança equivalentepara segurança equivalente

Esquema 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 1024112 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 Revisão: Marcos J Pinto.

3030

SumárioSumário

Foi considerado:Foi considerado: distribuição de chaves públicasdistribuição de chaves públicas distribuição de chaves secretas com chave distribuição de chaves secretas com chave

públicapública troca de chave Diffie-Hellmantroca de chave Diffie-Hellman criptografia de curvas elípticascriptografia de curvas elípticas