Segurança da Informação

Documentos relacionados
Algoritmos criptográficos de chave pública

Criptografia e Segurança em Redes Capítulo 9. Quarta Edição William Stallings

Segurança da Informação

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica

Assinatura Digital: problema

I Seminário sobre Segurança da Informação e Comunicações CRIPTOGRAFIA

Manual RbCripto. Sobre o RbCripto. Requisitos. Estatísticas de exemplo. Criptografia assimétrica versus criptografia simétrica. Como usar o programa

MA14 - Aritmética Unidade 24 Resumo

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU

Tecnologia Segurança. Aires José Rover Universidade Federal de Santa Catarina

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Álgebra A - Aula 11 RSA

Criptografia e Chave Pública. Segurança da Informação

PROJETO INTEGRADOR. 5º PERÍODO Gestão da Tecnologia da Informação Noturno

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Execícios de Revisão Redes de Computadores Edgard Jamhour. Filtros de Pacotes Criptografia SSL

Auditoria e Segurança de Sistemas Aula 09 Criptografia. Felipe S. L. G. Duarte Felipelageduarte+fatece@gmail.com

FTP Protocolo de Transferência de Arquivos

Assinatura e Certificação Digital

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

TCEnet e TCELogin Manual Técnico

Introdução. Iremos procurar ver aqui alguns mecanismos de proteção mais utilizados como: criptografia e SSL. 1.0 Criptografia

Criptografia codificar dados em informações aparentemente sem sentido pessoas não consigam ter acesso às informações que foram cifradas

Capítulo 5 Métodos de Defesa

Protocolos de Aplicação SSL, TLS, HTTPS, SHTTP

¹CPTL/UFMS, Três Lagoas, MS,Brasil, ²CPTL/UFMS, Três Lagoas, MS, Brasil.

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Conceitos de Criptografia e o protocolo SSL

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

UNIP UNIVERSIDADE PAULISTA

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

Arquitetura de Rede de Computadores

Segurança Internet. Fernando Albuquerque. (061)

INE Fundamentos de Matemática Discreta para a Computação

Gerenciamento das chaves criptográficas no Cloud Privacy Guard

Capítulo 8. Segurança de redes

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 13

Reduções da segurança de esquemas criptográficos: Sequências de Jogos

Segurança da Informação

Segurança da Informação. Prof. Gleison Batista de Sousa

Sistemas Distribuídos: Conceitos e Projeto Controle de Acesso

SIORP Sistema de Informação de Órgão Publico 2012

I T I. AC Raiz. Instituto Nacional de Tecnologia da Informação, órgão do Governo Federal. Receita Federal SERASA SERPRO CAIXA CERT PRIVADA

Projeto Tor UFRJ Redes I Alunos: Jhonatas Alfradique, Hugo Klin, Guilherme Almeida

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

CERTIFICAÇÃO DIGITAL

PROJETO DE REDES

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

Aplicação Prática de Lua para Web

C R I P T O G R A F I A

Título. Breve descrição da aula. Competência(s) desenvolvida(s) Conteúdo(s) desenvolvido(s).

ISO/IEC 12207: Gerência de Configuração

fonte:

SISTEMAS DISTRIBUÍDOS

Questionário de Estudo - P1 Criptografia

certificação digital 1 de 5 Introdução

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

ElGamal. Variantes e generalizações do algoritmo de ElGamal -

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Projeto de Arquitetura

Transcrição:

INF-108 Segurança da Informação Criptografia assimétrica Prof. João Henrique Kleinschmidt Santo André, junho de 2013

Problema de distribuição de chaves A criptografia de chave simétrica pode manter seguros seus segredos (chave e informação), mas se precisar compartilhar informações secretas com outras pessoas deve-se também compartilhar as chaves que são secretas. Como duas ou mais pessoas podem, de maneira segura, enviar as chaves por meio de linhas inseguras?

Utilizando um terceiro confiável Alice e Bob podem tentar usar um terceiro confiável, chamada de Michele, que compartilha uma chave com cada funcionário da empresa. Alice visita Michele e solicita uma chave. Ela gera uma chave, armazena numa forma segura é dá uma cópia a Alice. Agora as duas compartilham uma chave. Bob também visita Michele, consegue a mesma chave e assim compartilha uma chave com Alice (e Michele). Quando Alice quiser se comunicar com Bob, basta criptografar a mensagem com a chave gerada por Michele. No esquema do terceiro confiável, duas das partes confiáveis são os correspondentes que se comunicam: Alice e Bob. Michele é o terceiro. Michele precisa ser confiável, ela tem as chaves de todas as pessoas. Quando Alice e Bob trocam mensagens criptografadas, elas, normalmente, são as únicas pessoas que podem decriptá-las. Mas Michelle também pode, pois ela também detém a chave de sessão.

Terceiro confiável O terceiro confiável pode ler todas as mensagens. Se os correspondentes puderem conviver com isso, o esquema funcionará. Quando o terceiro confiável deixa a empresa, um novo terceiro deverá existir e o processo começa novamente a partir do zero. Caso, contrário, o terceiro que deixou a empresa pode ganhar acesso a todos os materiais sigilosos. Alternativa: Existir um serviço externo. O terceiro não é um indivíduo, mas uma entidade corporativa. Novamente, baseado na confiança na entidade para que esta evite e verifique que seus funcionários tenham acesso às chaves.

Algoritmos Criptográficos Assimétricos ou Histórico: de Chave Pública 1976 (Diffie, Hellman e Merkle) Descoberta de algoritmos criptográficos assimétricos, onde a segurança se baseia nas dificuldades de 1. Deduzir a mensagem a partir do criptograma 2. Deduzir uma chave de cifragem a partir da outra chave Desenvolvimento da criptografia moderna: Mecanismos de distribuição de chaves Autenticação de mensagens Provas de identidade

Quem inventou a criptografia de chave pública? Década de 60 James Ellis, do British Communications Electronic Security Group (CESG)? National Security Agency (NSA) dos EUA? Usada nas bombas atômicas? Ex-URSS? China? Japão?

Criptografia de chave pública Algoritmo de Criptografia Algoritmo de Decriptografia Texto Simples Texto Cifrado Texto Simples Chave Pública Chave Privada

Criptografia de chave pública Na criptografia assimétrica a chave utilizada para encriptar não é usada para decriptar. As chaves são significativamente diferentes: (K e, K d ) Elas são parceiras. Estão relacionadas entre si: K d => K e K e? =>? K d O relacionamento é matemático; o que uma chave encripta a outra decripta: C = E(K e, M) D(K d, C) = M

Criptografando com chave pública Chave Pública de Criptografia Texto Simples Algoritmo Encriptador Texto Cifrado

Descriptografando com chave privada Chave Privada Texto Cifrado Algoritmo de Decriptografia Texto Simples

Desempenho Para informação em grande quantidade, algoritmos de chave pública são lentos. (20Kb a 200Kb) por segundo. Muito lento para processamento de dados em volume. Algoritmos de chave simétrica podem encriptar informação em grande quantidade bem mais rapidamente. (10Mb, 20Mb, 50 Mb ou mais) por segundo. Solução: usar a combinação de criptografia de chave simétrica e de chave pública.

Criptografando em Envelope Digital Chave Pública Chave Simétrica de Sessão Criptografada Chave Simétrica de Sessão Texto Plano Algoritmo de Chave Pública Texto Criptografado Algoritmo de Chave Simétrica 12

Descriptografando o Envelope Digital Chave Simétrica de Sessão Criptografada Chave Privada Chave Simétrica de Sessão Texto Criptografado Algoritmo de Chave Pública Texto Plano Algoritmo de Chave Simétrica 13

Vantagens do envelope digital Segredo não precisa ser compartilhado antecipadamente. Segredo compartilhado através da chave simétrica de sessão. Manter uma chave separada para cada pessoa (chave pública) que não precisa estar protegida. Não é preciso armazenar as próprias chaves públicas. Diretórios de chaves públicas podem estar disponíveis.

Gerenciamento de chaves públicas Se Alice e Bob não conhecem um ao outro, como eles irão obter as respectivas chaves públicas para iniciar a comunicação entre eles? Como Alice (Bob) pode ter certeza que está realmente obtendo a chave pública de Bob (Alice)? Bob coloca sua chave pública na sua página Web. Não funciona!!! Se Eva intercepta a solicitação e responde a Alice com uma página falsa, fazendo a substituição da chave pública de Bob pela chave pública dela. Quando Alice envia sua primeira mensagem criptografada, será com a chave pública de Eva. E necessário um mecanismo apropriado para que se possa disponibilizar chaves: uma autoridade certificadora (AC). Esta AC é responsável em certificar e distribuir chaves públicas.

Algoritmos de Chave Pública Dos algoritmos assimétricos até hoje propostos, poucos são considerados seguros e práticos: RSA El Gamal Rabin ECC Criptografia de Curva Elíptica Outros algoritmos: Úteis apenas para assinatura Ou inseguros, muito lentos ou requerem chaves muito longas

Acordo de chaves Diffie-Hellman Resolve problema de distribuição de chaves, criando uma chave compartilhada. Alice e Bob têm que concordar sobre dois grandes números: - p (um número primo) - g (um número pseudo-aleatório) p é um número primo gerado a partir de um gerador de números pseudo-aleatórios (PRNG), sendo verificado se é primo pelo Teste de Fermat. g é um número gerado por um PRNG, que se relaciona com o valor de p (g < p e g é uma raiz primitiva de p) (g Ø(p) = 1 mod p). Estes números podem ser públicos, assim, qualquer uma das partes pode escolher p e g e dizer ao outro abertamente.

Acordo de chaves Diffie-Hellman Alice gera por um PRNG, um número grande chamado x. Ela guarda x como secreto. Alice tem agora (p, x) que define a chave privada. Alice calcula g x mod p. Alice inicia o protocolo do acordo de chave enviando a Bob uma mensagem contendo (p, g, g x mod p ). Bob tem agora um número grande g x mod p definindo a tripla (p, g, g x mod p) a qual é transmitida para Bob, como a chave pública de Alice. Bob escolhe um número y secreto. Bob responde enviando a Alice uma mensagem contendo (g y mod p)

Acordo de chaves Diffie-Hellman Alice calcula (g y mod p) x mod p Bob calcula (g x mod p) y mod p Pela lei da aritmética modular, ambos os cálculos resultam em g xy mod p. Alice e Bob, agora compartilham uma chave secreta: g xy mod p

Acordo de chaves Diffie-Hellman 1. Alice escolhe p, g públicos e x secreto g x mod p (p,x) chave privada A L I C E 2. chave pública (p, g, g x mod p) 4. g y mod p 5. Alice calcula (g y mod p) x mod p = g xy mod p (chave secreta compartilhada) 3. Bob escolhe y secreto B O B 6. Bob calcula (g x mod p) y mod p = g xy mod p (chave secreta compartilhada)

Acordo de chaves Diffie-Hellman O algoritmo não criptografa os dados. Duas partes geram a mesma chave (g xy mod p). Este procedimento é chamado Acordo de Chave. Dificuldade de quebra do algoritmo: Um intruso conhece g e p. Se pudesse descobrir x e y, descobriria a chave secreta. O problema é que dado (g x mod p) e (g y mod p), não pode descobrir x nem y. Nenhum algoritmo é conhecido para computar o módulo de logaritmo discreto de um número primo p muito grande num tempo aceitável.

Algoritmo RSA O nome é formado com iniciais dos autores: Rivest, Shamir & Adleman (1978) Mais usado e fácil de implementar entre os algoritmos assimétricos O algoritmo vem resistindo a quase 20 anos de análise Baseado em alguns princípios da Teoria dos Números. Sua segurança é baseada na dificuldade de se fatorar números inteiros

Algoritmo RSA Sumário do algoritmo: 1. Escolher dois números primos grandes, p e q (tipicamente maiores que 10 100 ). Um PRNG escolhe p; Teste de Fermat localiza q. 2. Calcule n = p.q onde n > 10 200 3. Calcule Ø(n) = z = (p-1).(q-1) função de Euler 4. Escolher um número relativamente primo a z e chamá-lo de e (isto é, tal que e não tenha fatores primos comuns com z) 5. Encontre d tal que e.d mod z = 1 e d < z 6. Dividir o texto plano (uma cadeia de bits) em blocos, de modo que cada mensagem do texto plano Mi (bloco) caia no intervalo 0 <= M < n. Isto pode ser feito agrupando-se o texto plano dentro de blocos iguais de k bits, onde k é o maior inteiro para o qual 2 k < n. Em aplicações práticas k varia de 512 a 1024 bits.

Algoritmo RSA 6. Para encriptar um mensagem M, calcule E(e,n,M) = C = M e mod n. Para decriptar, calcule D(d,n,C) = M = C d mod n Para encriptar precisamos de e e n. Para decriptar precisamos de d e n. Assim, a chave pública consiste do par (e,n) e a chave privada do par (d,n). Pode ser provado que para todo M, essas funções são inversas: E(D(x)) = D(E(x)) = x

Segurança do RSA A segurança do método é baseada na dificuldade de se fatorar números grandes. Se um cripto-analista puder fatorar n, ele poderia então descobrir p e q, e destes, z. RSA Corporation tem emitido uma série de desafios para fatorar números de mais de 100 dígitos decimais. Números de até 174 dígitos decimais (576 bits) têm sido fatorados, e assim o uso do algoritmo RSA com chaves de 512 bits é inaceitável para muitos propósitos.

Segurança do RSA RSA Corporation (que retém a patente do algoritmo RSA) recomenda um comprimento de chave de ao menos 768 bits (em torno de 230 dígitos decimais), por um período de segurança a longo prazo de aproximadamente 20 anos. Chaves de 1024 bits são utilizadas. Chaves tão grandes quanto 2048 bits são usadas em algumas aplicações. Os algoritmos de fatoração usados são os melhores disponíveis. Algoritmos criptográficos assimétricos que usam multiplicação de números primos como função de uma via estarão vulneráveis quando um algoritmo de fatoração mais rápido for descoberto.

Ataque em Módulo Comum Possível quando: A distribuição de chaves para a cifra que usa o RSA atribui chaves com o mesmo módulo a usuários distintos Qualquer mensagem encriptada por mais de um usuário pode ser facilmente vazada

Ataque com Expoentes Pequenos de Encriptação A encriptação/verificação de assinatura no RSA: Mais rápida de acordo com o tamanho da chave pública Menor chave: + rápido Este tipo de ataque é possível com a encriptação de: e(e+1)/2 mensagens linearmente dependentes Portanto a dependência linear deve ser evitada

Prevenção contra Ataques Conhecidos ao RSA 1. O conhecimento de um par (e,d) permite a fatoração do módulo n 2. O conhecimento de um par (e,d) permite encontrar outros pares para o mesmo n 3. O módulo comum não deve ser usado em serviços de rede 4. As mensagens devem ser preenchidas com bits aleatórios até atingir o tamanho de n 5. O expoente da chave pública deve ser grande, e a assinatura anteceder a cifra

RSA e envelope digital Pode-se usar o RSA para criptografar dados diferentes do que uma chave de sessão, como no processo do envelope digital, mas o RSA não é tão rápido quanto os algoritmos simétricos.

RSA: Padronização e Patentes O RSA é um padrão de fato para criptografia assimétrica Norma ISO 9796 Norma ANSI Padrão bancário na França e Austrália Não era padrão nos EUA por problemas de disputa sobre direitos de patente A patente, válida somente nos EUA, expirou em 20/9/2000

Outros Algoritmos Assimétricos El Gamal Dificuldade de se extrair logaritmos discretos em corpos finitos Rabin Dificuldade de se extrair raiz quadrada em anéis. Curvas elípticas Algoritmos baseados: No problema da mochila Em códigos corretores de erros Em autômatos finitos

Curvas elípticas Algoritmo ECDH (Elliptic Curve Diffie-Hellman) Encontra um curva elíptica E e um ponto P nesta curva. Gera um número pseudo-aleatório chamado de d. Multiplica d por P. O resultado é Q, que também é um ponto na curva. E, P e Q são publicados. O desafio é encontrar d. Esse problema é conhecido como o problema de log discreto de curva elíptica (mais difícil de resolver que o log discreto ou fatoração). Se a curva for grande, não se conhece uma solução que seja encontrada num curto espaço de tempo.

Algoritmos Baseados no Problema da Mochila: Merkle- Hellman: Problema combinatório de se encontrar uma partição em um conjunto fixo de inteiros onde a soma de elementos seja igual ao argumento (Problema da Mochila) São inseguros: A chave privada pode ser obtida em tempo polinomial a partir da pública Algoritmos baseados em códigos corretores de erros: McEliece - Usam códigos de Goppa Rápido e, até hoje, seguro Pouco usado porque expande a mensagem m e utiliza chaves muito grandes

Implementações Padronização: Por normatização (Ex.: ISO) ou por forças de mercado Interoperabilidade A segurança na computação tende naturalmente à busca de padrões Esta tendência se torna mais imperativa com o advento das redes globais e ambientes de computação distribuída

Implementações Limitações: Sistemas legados cuja concepção original não contemplava segurança e/ou interoperabilidade Legislação local e/ou internacional Omissa Desatualizada Mal pensada Interesses privados

Implementações Desafios Novas aplicações ou tecnologias Exigem estudos específicos Exigem proteção aos dados A necessidade de criptografia: Aumenta a complexidade do problema computacional originalmente proposto Em um sistema, é necessário pensar sempre em: Segurança Desempenho Usabilidade