A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Criptografia e Segurança em Redes Capítulo 10

Apresentações semelhantes


Apresentação em tema: "Criptografia e Segurança em Redes Capítulo 10"— Transcrição da apresentação:

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 Lecture slides by Lawrie Brown for “Cryptography and Network Security”, 4/e, by William Stallings, Chapter 10 – “Key Management; Other Public Key Cryptosystems”.

2 Capítulo10 – Gerenciamento de chaves; Outros Criptosistemas de Chave Pública
Nenhum Singalês, seja homem ou mulher, se aventuraria a sair de casa sem um punhado de chaves em sua mão, pois sem esse talismã, ele teme que algum demônio possa tirar proveito de sua fraqueza para invadir seu corpo. —O Ramo Dourado, Sir James George Frazer Citação de Abertura .

3 Gestão de chaves a encriptação de chaves públicas ajuda a enfrentar os principais problemas de distribuição Há dois aspectos presentes: distribuição de chaves públicas; uso da criptografia de chaves públicas para a distribuição de chaves secretas Um dos principais papéis de chave de criptografia pública é resolver o problema da distribuição de chaves, com dois aspectos distintos: a distribuição de chaves públicas e a utilização de criptografia de chaves públicas para a distribuição de chaves secretas.

4 Distribuição de chaves públicas
pode ser considerada como uma utilização de: anúncio público; diretórios publicamente disponíveis; autoridade de chave-pública; certificados de chaves públicas. Várias técnicas têm sido propostas para a distribuição de chaves públicas, que podem ser agrupadas em sua maioria nas categorias apresentadas.

5 Anúncio Público usuários distribuem chaves públicas entre os destinatários ou transmitem entre a comunidade em geral por exemplo. anexar chaves PGP em mensagens de enviar para grupos de discussão ou listas de principal fraqueza é a falsificação qualquer pessoa pode criar uma chave, fingindo ser outra pessoa, e difundi-la até a falsificação ser descoberta alguém pode disfarçar-se como o usuário declarado O idéia da criptografia de chaves públicas é a de que a chave pública é pública, por conseguinte, qualquer participante pode enviar a sua chave pública para qualquer outro participante, ou transmitir a chave para a comunidade em geral. A sua principal fraqueza é a falsificação, qualquer pessoa pode criar uma chave qualquer fingindo ser de outra pessoa e difundi-la, e até que a falsificação seja descoberta poderá fazer-se passar pela pessoa declarada.

6 Diretório Publicamente disponível
pode obter uma maior segurança por meio do registo das chaves em uma lista pública diretório deve ser confiável com as propriedades: conter as entradas {nome, chaves públicas}; registo seguro de participantes no diretório; participantes podem substituir a chave a qualquer momento; o diretório é periodicamente publicado; o diretório pode ser acessado por via eletrônica; ainda vulnerável a adulteração ou falsificação Um maior grau de segurança pode ser alcançado por meio da manutenção de um diretório dinâmico de chaves públicas. A manutenção e a distribuição da lista pública teria de ser da responsabilidade de alguma entidade ou organização confiável. Esse regime é claramente mais seguro do que anúncios públicos individuais, mas ainda apresenta vulnerabilidades de adulteração ou falsificação.

7 Autoridades de Chaves Públicas
melhoram a segurança ao tornar mais rígido o controle da distribuição de chaves no diretório tem propriedades de diretório e obriga os usuários a conhecer a chave pública do diretório os usuários interagem com o diretório desejado para obter as chaves públicas de forma segura exige acesso em tempo real ao diretorio quando as chaves são necessárias Pode ser obtida maior segurança para a distribuição de chaves públicas, proporcionando um controle mais rígido sobre a distribuição de chaves públicas a partir do diretório. Ela exige que os usuários conheçam a chave pública do diretório, e que eles interajam com o diretório em tempo-real para obter as chaves públicas desejadas de maneira segura. Note-se que é necessário um total de sete mensagens, como mostrado a seguir.

8 Autoridade de Chaves Públicas
Stallings Figure 10.3 "Public-Key Autoridade" ilustra uma típica protocolo interação. Ver texto para detalhes das etapas no protocolo.

9 Certificados de chave pública
certificados permitem a troca de chaves sem acesso em tempo real a autoridades de chaves públicas um certificado associa a identidade à chave pública normalmente com outras informações como o prazo de validade, dos direitos de utilização, etc com todo o conteúdo assinado por uma Autoridade Certificadora ou chave pública confiável pode ser verificada por qualquer pessoa que conheça a autoridade de chaves públicas Uma nova melhoria é a utilização de certificados, que podem ser usados para a troca de chaves sem contato com uma autoridade de chaves públicas, de uma forma que será tão fiável como se as chaves tivessem sido diretamente de uma autoridade de chaves públicas. Um certificado vincula uma identidade a uma chave pública, com todo o conteúdo assinado por Autoridade de Chaves públicas confiável. Isto pode ser verificado por qualquer pessoa que conheça a chave pública da autoridade de chaves públicas. Um método tornou-se universalmente aceito para a formatação de certificados de chaves públicas: o padrão X.509. Os certificados X.509 são usados na maioria dos aplicativos de segurança de rede, incluindo segurança IP, Secure Sockets Layer (SSL), transações eletrônicas seguras (SET), e S / MIME. Vai discutir o assunto em mais detalhes posteriormente.

10 Certificados de chave pública
Stallings Figure 10.4 “Public-Key Certificates” ilustra este tipo de método. Ver texto para obter mais detalhes sobre as etapas no protocolo.

11 Chave Pública Distribuindo Chaves Secretas
utilizar métodos anteriores para obter a chave pública pode usar de sigilo ou de autenticação mas os algoritmos de chaves públicas são lentos de modo geral deseja-se utilizar a encriptação da chave privada para proteger o conteúdo mensagem necessita, portanto, de uma chave de sessão há várias alternativas para a negociação de uma sessão adequada Uma vez que as chaves públicas tiverem sido distribuídas ou disponibilizadas, será possível a comunicação segura que impede interceptação, adulteração, ou ambas. Contudo, alguns usuários desejarão fazer uso exclusivo de criprografia de chave pública para a comunicação, devido à taxa relativamente baixa de dados que podem ser alcançados. Assim, a encriptação de chave pública prevê a distribuição de chaves secretas para ser usado em criptografia convencional.

12 Distribuição Simples de Chaves Secretas
proposto em 1979 por Merkle A gera um novo par de chaves públicas temporárias A envia a chave pública e a sua identidade para B B gera uma chave de sessão K e a envia para A criptografada, usando a chave pública fornecida A descriptografa a chave de sessão e ambos utilizam problema é que um adversário pode interceptar e personificar ambas as metades do protocolo Um sistema extremamente simples foi apresentado por Merkle [MERK79]. Mas é inseguro contra um adversário que pode interceptar mensagens e então retransmitir a mensagem interceptada ou substituir por outra mensagem. Esse é um ataque conhecido como um man-in-the-middle [RIVE84].

13 Chave Pública Distribuindo Chaves Secretas
troca segura de chaves públicas: Stallings Figure 10.6 “Public-Key Distribution of Secret Keys” ilustra esta troca. Ver texto para obter mais detalhes sobre as etapas do protocolo. Note que estes passos correspondem aos últimos 3 da Figura 10.3, consequentemente, poderá obter a troca de chaves secretas e a autenticação em um único protocolo.

14 Distribuição Hibrida de Chave
mantém o uso da chave privada KDC compartilha chave mestra com cada usuário distribui chave de sessão utilizando chave mestra a chave pública é usada para distribuir a chave mestre especialmente útil com usuários amplamente distribuídos racionalidade desempenho retrocompatibilidade Uma outra forma de utilizar a encriptação de chave pública para distrubuir chaves secretas é uma abordagem híbrida no uso em mainframes IBM [LE93]. Esse regime mantém o uso de uma central de distribuição de chaves (KDC) que compartilha uma chave secreta mestre com cada usuário e distribui chaves de sessão secretas encriptadas com a chave mestra. A chave pública do sistema é utilizada para distribuir as chaves mestras. A adição de uma camada de chaves públicas proporciona um meio seguro e eficiente de distribuição de chaves mestre. Essa é uma vantagem em uma configuração na qual um único KDC serve um conjunto de usuários amplamente distribuídos.

15 Troca de Chaves Diffie-Hellman
primeiro método para a troca de chaves públicas proposto por Diffie & Hellman em juntamente com a exposição do conceito de chave pública nota: hoje sabemos que Williamson (UK CESG) propôs o conceito secretamente em 1970 é um método prático para a troca pública de uma chave secreta utilizado em diversos produtos comerciais A idéia de sistemas de chave pública e, na prática, o primeiro método prático, que visava somente a distribuição, foi publicado em 1977 por Diffie & Hellman. O conceito já havia sido descrito em um relatório secreto, em 1970, de Williamson (UK CESG) - e foi posteriormente divulgado em 1987, ver [ELLI99].

16 Troca de Chaves Diffie-Hellman
um método de distribuição de chaves públicas não pode ser usado para troca de uma mensagem arbitrária em vez disso pode estabelecer uma chave comum conhecido apenas pelos dois participantes o valor da chave depende dos participantes (e as informações de suas chaves privadas e públicas) baseado em uma exponenciação em um corop finito (Galois) (modulo de um primo ou um polinômio)-fácil segurança depende da dificuldade de calcular logaritmos discretos(semelhante a fatoração)-dificil O objetivo do algoritmo é permitir que dois usuários façam a troca segura de chaves que poderão então ser utilizadas para posterior encriptação de mensagens. O próprio algoritmo é limitado à troca de valores secretos, o que depende do valor das chaves pública / privada dos participantes. O algoritmo Diffie-Hellman usa uma exponenciação em corpos finitos (Galois) (modulo um primo ou um polinômio), e sua eficácia depende da dificuldade de calcular logaritmos discretos.

17 Configuração Diffie-Hellman
todos os usuários aceitam os parâmetros mundiais: grande primo inteiro ou polinômio q a sendo uma raiz primitiva mod q cada usuário (ex. A) gera a sua chave escolhe uma chave secreta (número): xA < q computar a sua chave pública: yA = axA mod q cada usuário torna pública a chave yA No algoritmo de troca de chaves Diffie-Hellman, há dois números publicamente conhecidos: um número primo q e um inteiro que é uma raiz de uma primitiva q. O primo q e a raiz primitiva podem ser comuns a todos utilizando alguma instância do método DH. Observe que a raiz primitiva é um número cujas potências geram sucessivamente todos os elementos mod q. Os usuários Alice e Bob escolhem x's secretos aleatórios, e, em seguida, os "protegem“ usando exponenciação para criar seus y's públicos. Para que um atacante que estivesse monitorando a troca dos y's para recuperar um dos x's, seria preciso resolver o problema de logaritmo discreto, o que é difícil.

18 Troca de Chave Diffie-Hellman
a chave da sessão compartilhada para os usuários A & B é KAB: KAB = axA.xB mod q = yAxB mod q (que B pode computar) = yBxA mod q (que A pode computar) KAB é usado como chave de sessão em método de criptografia de chave privada entre Alice e Bob se Alice e Bob se comunicarem posteriormente, eles terão a mesma chave de antes, a menos que escolham novas chaves públicas o atacante que precisar de um X, deverá resolver um log discreto A troca de chaves propriamente dita para cada uma das partes consiste em elevar a "chave pública" dos outros à potência da suas chaves privadas. O número resultante (ou tanto quanto for necessário) será usado como chave de cifra de bloco ou outro método de chave privada. Para que um atacante obtenha o mesmo valor, precisará de pelo menos um dos números secretos, o que significa resolver um logarítmo discreto, que é computacionalmente inviável se forem dados números suficientemente grandes. Note que, se Alice e Bob se comunicarem posteriormente, terão a mesma chave de antes, a menos que eles escolham novas chaves públicas.

19 Exemplo de Diffie-Hellman
os usuários Alice & Bob que desejam trocar as chaves: combinar com o primo q=353 e a=3 escolha aleatória de chaves secretas: A escolhe xA=97, B escolhe xB=233 computar respectivas chaves públicas: yA=397 mod 353 = 40 (Alice) yB=3233 mod 353 = 248 (Bob) computar a chave de sessão partilhada como: KAB= yBxA mod 353 = = 160 (Alice) KAB= yAxB mod 353 = = 160 (Bob) Aqui está um exemplo de Diffie-Hellman a partir do texto.

20 Protocolos de Troca de chave
os usuários poderão criar chaves D-H públicas/privadas aleatórias cada vez que se comunicarem os usuários poderão criar uma chave D-H pública/privada conhecida e publicar em um diretório, que serão consultadas e utilizadas para comunicação segura entre eles ambas são vulneráveis a um ataque man in the middle autenticação das chaves é necessária Detalha dois possíveis protocolos de troca de chaves baseados em Diffie-Hellman. Note-se que estes são vulneráveis a um ataque man-in-the-middle, e que a autenticação das chaves é necessária.

21 Criptografia de Curvas Elípticas
a maioria das criptografias de chaves públicas (RSA, DH) usa um inteiro ou polinômio aritmético com números/polinômios muito grandes impõe uma carga significativa de armazenamento e processamento de chaves e mensagens uma alternativa é a utilização de curvas elípticas oferece segurança mesmo com poucos bits de tamanho mais nova, mas não tão bem analisada Uma questão importante com o uso da criptografia de chaves públicas, é o tamanho dos números usados, e, por conseguinte, das chaves que estão sendo armazenadas. Surgiu recentemente um método alternativo, a criptografia de curvas elípticas (ECC), que realiza os cálculos usando aritmética de curvas elípticas em vez de aritmética de inteiros ou aritmética polinomial. ECC já está aparecendo nos esforços de padronização, incluindo o padrão IEEE P1363 para criptografia de chaves públicas. Embora a teoria ECC já exista há algum tempo, só recentemente começaram a surgir produtos e a haver interesse criptoanalítico contínuo sondagem de deficiências. Assim, o nível de confiança na ECC ainda não é tão alto como no RSA.

22 Curvas Elípticas Reais
uma curva elíptica é definida por uma equação em duas variáveis x e y, com coeficientes considere uma curva elíptica cúbica de forma y2 = x3 + ax + b onde x,y,a,b são todos números reais também defini o ponto zero O há a adição da operação para a curva elíptica geometricamente a soma de Q+R é reflexo da interseção de R Primeiro considerar curvas elípticas usando número reais. Veja texto para obter mais detalhes sobre as regras de adição em relação ao ponto zero O. Pode derivar uma interpretação algébrica da adição com base em computação gradiente de tangente e, em seguida, na resolução de intersecção com curva. Há também uma descrição algébrica de adições sobre curvas elípticas. Consulte o texto.

23 Exemplo de Curvas Elípticas Reais
Stallings Figure 10.9b “Exemplo de Curvas Elípticas”, ilustra a interpretação geométrica da adição de curvas elípticas.

24 Curvas Elípticas Finitas
criptografia de curvas elípticas usa curvas cujas variáveis e coeficientes são finitos há duas famílias comumente utilizadas: curva primária Ep(a,b) definida como Zp utilização de modulo de inteiros primos melhor em software curva binária E2m(a,b) definida como GF(2n) utilizar polinómios com coeficientes binários melhor em hardware Criptografia de curvas elípticas faz uso de curvas elípticas, em que as variáveis e todos os coeficientes são restritas aos elementos de um campo finito. Duas famílias de curvas elípticas são utilizados em aplicações criptográficas: curvas de primos mais ZP (melhor se utilizado em software), e curvas binárias sobre GF (2m) (melhor em hardware). Não há uma interpretação geométrica óbvia da curva elíptica aritmética sobre Corpos Finitos. Veja texto para discussão detalhada.

25 Criptografia de Curvas Elípticas
Adição de ECC é análoga à multiplicação módulo Adições repetidas de ECC é análoga a exponenciação módulo é preciso um problema “difícil“ equivalente a logarítmos discretos Q=kP, onde Q,P pertencem a uma curva de primos é “fácil” calcular Q dado k,P mas “difícil” encontrar k dado Q,P conhecido como problema do algoritmo de curvas elípticas exemplo de Certicom : E23(9,17) Criptografia de curvas elípticas além usa como um análogo da modulo multiplicar, e repetiu como um analógico além de modulo exponenciação. O "duro" problema é a curva elíptica logaritmo problema.

26 ECC Diffie-Hellman podemos fazer troca de chaves de forma análoga ao D-H usuário seleciona uma curva adequada Ep(a,b) seleciona o ponto básico G=(x1,y1) com grande ordem n S.T. nG=O A & B selecionam as chaves primarias nA<n, nB<n computa as chaves públicas: PA=nAG, PB=nBG computa a chave compartinhada: K=nAPB, K=nBPA desse mesmo K=nAnBG Ilustrar aqui a curva elíptica análoga à troca de chaves Diffie-Hellman, que é uma analogia estreita tendo em vista que a elíptica multiplicação de curvas elípticas corresponde a exponenciação módulo.

27 ECC Criptografia/Decriptografia
várias alternativas, iremos considerar a mais simples primeiro deve codificar qualquer mensagem M como um ponto da curva elíptica Pm escolha da curva adequada & ponto G como em D-H cada usuário escolhe uma chave privada nA<n e computa a chave publica PA=nAG para encriptar Pm : Cm={kG, Pm+kPb}, k aleatoriamente decripta Cm e computa: Pm+kPb–nB(kG) = Pm+k(nBG)–nB(kG) = Pm Várias abordagens para a criptografia / descriptografia usando curvas elípticas têm sido analisados na literatura. Este é um um analógico da ElGamal algoritmo criptografia de chaves públicas. O remetente deve primeiro codificar qualquer mensagem M como um ponto da curva elíptica Pm (existem técnicas relativamente simples para isso). Note que o texto encriptado é um par de pontos da curva elíptica. O remetente da mensagem usando máscaras aleatória k, mas também envia ao longo de uma "pista" que permite que o receptor conhecer a chave privada para recuperar-k e, portanto, a mensagem. Para um atacante para recuperar a mensagem, o atacante teria dado para calcular k G e kg, que é difícil supor.

28 Segurança ECC invoca o problema do logaritmo de curva elíptica
método mais rápido é o "método de Pollard rho" comparando a fatoração, pode usar chaves de tamanho muito menor do que com RSA etc para chaves de comprimento equivalente os cálculos são mais ou menos equivalentes por isso para uma segurança similar ao ECC oferece significativas vantagens computacionais A segurança do CEC depende de como é difícil determinar k dada kP e P. Esta é referida como problema de logaritmo de curvas elipticas. A técnica mais conhecida para tomar o logaritmo de curvas elipticas é conhecido como o método de Pollard rho. Comparado à fatoração de inteiros ou polinômios, pode usar números muito menores obtendo níveis de segurança equivalentes.

29 Comparação de tamanho das chaves para segurança equivalente
Esquema Simétrico (chave com tamanho em bits) Esquema baseado em ECC(tamanho de n em bits) RSA/DSA (modulos de 56 112 512 80 160 1024 224 2048 128 256 3072 192 384 7680 15360 Stallings Table “ Assimilável dimensões em termos de esforço computacional para Cripto "ilustra a relação tamanho das chaves necessárias para a segurança.

30 Sumário Foi considerado: distribuição de chaves públicas
distribuição de chaves secretas com chave pública troca de chave Diffie-Hellman criptografia de curvas elípticas Chapter 10 sumario.


Carregar ppt "Criptografia e Segurança em Redes Capítulo 10"

Apresentações semelhantes


Anúncios Google