View
108
Download
1
Category
Preview:
Citation preview
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
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
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
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.
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
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
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
88
Autoridade de Chaves Públicas Autoridade de Chaves Públicas
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
1010
Certificados de chave públicaCertificados de chave pública
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
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
1313
Chave Pública Distribuindo Chave Pública Distribuindo Chaves SecretasChaves Secretas
troca segura de chaves públicas:troca segura de chaves públicas:
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
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
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
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
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
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)
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
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
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
2323
Exemplo de Exemplo de Curvas Elípticas Curvas Elípticas ReaisReais
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
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)
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
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
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
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
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
Recommended