Aula 4 Criptografia

May 6, 2018 | Author: Anonymous | Category: Documents
Report this link


Description

Prof. Osvaldo Ramos [email protected] Uniceub Pós-Graduação Lato Sensu Criptografia ● Arquitetura de Segurança OSI ● Fundamentos de Criptografia ● Algoritmos Simétricos ● Algoritmos de Chave Pública ● Funções de Hash ● Assinatura Digital Roteiro Arquitetura de Segurança OSI Ataques MecanismosServiços Passivos Ativos Confidencialidade Integridade Disponibilidade Autenticação Irretratabilidade Controle de Acesso Criptografia Assinatura Digital Protocolos de Autenticação . . . Arquitetura de Segurança OSI Confidencialidade • Propriedade de que a informação não será disponibilizada ou divulgada a indivíduos, entidades ou processos sem autorização. • A proteção dos dados contra divulgação não autorizada. • Isto inclui: • impressão; • divulgação; • até mesmo a existência de algum tipo de informação. Serviços Integridade • A garantia de que os dados recebidos estão exatamente como foram enviados por uma entidade autorizada. • Logo, eles não contém: • modificação; • inserção; • exclusão; • repetição. Serviços Autenticação • A garantia de que a entidade se comunicando é aquela que ela afirma ser. • Dois serviços de autenticação específicos são definidos na X.800: • autenticação de entidade par; • autenticação da origem dos dados. Serviços Irretratabilidade (Não Repúdio) • Oferece proteção contra negação, por parte de uma das entidades envolvidas em uma comunicação, de ter participado de toda ou parte da comunicação. • Logo, quem enviou não poderá negar ter enviado nem quem recebeu poderá negar ter recebido a mensagem. Serviços Disponibilidade • Propriedade de um sistema ou de um recurso do sistema ser acessível e utilizável sob demanda por uma entidade autorizada. Serviços Controle de Acesso • O impedimento do uso não autorizado de um recurso. • O serviço controla quem pode ter acesso a um recurso, sob que condições o acesso pode ocorrer e o que é permitido para aqueles que acessam o recurso. Serviços ● Não há um mecanismo único que garanta todos os serviços citados. ● Sempre haverá a necessidade da utilização de um conjunto de mecanismos para solucionar o problema proposto. ● Entretanto, existe um elemento que serve como base para a maioria dos mecanismos de segurança que são: as técnicas de criptografia. Serviços ● O que o uso da criptografia pode fazer? – Fornecer o sigilo da informação. – Garantir a autenticidade do remetente. – Garantir, implicitamente, a autenticidade do destino. – Garantir a integridade da informação. Serviços FONTE DA INFORMAÇÃO DESTINO DA INFORMAÇÃO Fluxo normal Ataques Interceptação FONTE DA INFORMAÇÃO DESTINO DA INFORMAÇÃO • Uma parte não autorizada ganha acesso a um recurso. Este é um ataque à confidencialidade. • A parte não autorizada pode ser pessoa, programa ou computador. • Exemplos: • grampos em linhas para capturar dados da rede; • cópia de programas ou arquivos; • análise de tráfego. Ataques Modificação FONTE DA INFORMAÇÃO DESTINO DA INFORMAÇÃO • Uma parte não autorizada não somente ganha acesso, mas também adultera o bem. Este é um ataque à integridade. • Exemplos: • mudança de valores em um arquivo de dados; • alteração de um programa de tal forma que ele se comporte de maneira diferente; • modificação do conteúdo da mensagem sendo transmitida. Ataques Fabricação FONTE DA INFORMAÇÃO DESTINO DA INFORMAÇÃO • Uma pessoa não autorizada insere objetos no sistema. • Este é um ataque à autenticidade. • Exemplos: • inserção de mensagens maliciosas na rede; • adição de registros em um arquivo. Ataques Interrupção FONTE DA INFORMAÇÃO DESTINO DA INFORMAÇÃO • Um recurso do sistema é destruído ou se torna indisponível ou inútil. • Este é um ataque à disponibilidade. • Exemplos: • destruição de uma peça de hardware como um disco rígido; • o corte de uma linha de comunicação; • tornar indisponível um sistema de gerência de arquivos. Ataques ● Pervasivos (não são específicos a qualquer serviço de segurança OSI): – funcionalidade confiável; – rótulo de segurança; – detecção de evento; – registros de auditoria; – recuperação de segurança. Mecanismos ● Criptologia = criptografia + criptoanálise ● Criptografia = arte e ciência de manter mensagens seguras. ● Criptoanálise = arte e ciência de quebrar textos cifrados. Fundamentos de Criptografia ● Criptografar (cifrar ou encriptar); ● Decriptografar (decifrar ou desencriptar); ● Algoritmo criptográfico; ● Chave criptográfica; ● Espaço de chaves. Fundamentos de Criptografia Algoritmos proprietários (sigilo do algoritmo e da chave) x Algoritmos públicos (sigilo da chave) Algoritmos proprietários Algoritmos públicos São aqueles que somente poucas pessoas conhecem o código São aqueles que todos conhecem o código Vantagens: Geralmente realizar criptoanálise conhecendo o código é difícil, sem conhecer o código é ainda mais difícil. Desvantagens: O código somente foi avaliado por poucas pessoas, com isso, podem existir fragilidades não descobertas. Pode ser feita engenharia reversa em cima de um produto que implemente o algoritmo e pode ser descoberto o código. Vantagens: O código foi avaliado por muitas pessoas tornado o algoritmo mais confiável. Maior facilidade de padronização e produção por fabricantes diferentes. Desvantagens: No caso de descoberta de uma vulnerabilidade no algoritmo, imediatamente todos os usuários estão comprometidos. Fundamentos de Criptografia • A chave de cifração é igual à chave de decifração. OU • A chave de cifração pode ser facilmente gerada a partir da chave de decifração e vice-versa. • Sejam: • Ek( ) a função cifração com a chave k; • Dk( ) a função de decifração com a chave k; • M o texto em claro e C o texto cifrado. • Logo Ek(M)=C, Dk(C)=M e Dk(Ek(M))=M. cifração decifração texto claro texto cifrado texto claro chave K chave K Criptografia Simétrica • A chave de cifração é diferente da de decifração e uma não pode facilmente ser gerada somente a partir da outra. • As duas são relacionadas matematicamente. • Sejam: • Ekx( )a função cifração com a chave kx; • Dkx( )a função de decifração com a chave kx; • M o texto em claro e C o texto cifrado. • Logo: • Ek1(M)=C, Dk2(C)=M e Dk2(Ek1(M))=M. • Ek2(M)=C, Dk1(C)=M e Dk1(Ek2(M))=M. cifração decifração texto claro texto cifrado texto claro chave K1 chave K2 Criptografia de Chave Pública ● Substituição – Monoalfabética - utiliza um alfabeto de substituição; – Polialfabética - utiliza vários alfabetos de substituição. ● Permutação ou transposição - modifica a posição dos símbolos. Criptografia – Tipos de Operação ● Bloco – processa a entrada de um bloco de elementos de cada vez, produzindo um bloco de saída para cada bloco de entrada. ● Fluxo – processa os elementos da entrada continuamente, produzindo a saída de um elemento de cada vez, enquanto prossegue. Criptografia – Modo de Processamento • Em funções unidirecionais, para uma dada entrada, é relativamente fácil calcular a saída da função. Mas dada uma saída, é extremamente difícil calcular uma possível entrada desta função. • Ou seja, dado x é fácil calcular f(x), mas dado f(x) é difícil calcular x. • Analogia com o dia a dia: a quebra de um prato. Funções unidirecionais (one way) x x x x x x x x x x x x x x fácil difícil Funções Hash • Uma função de condensação (hash) é uma função que recebe, como entrada, uma string de tamanho variável (chamada de pré-imagem) e a converte em uma string de saída de tamanho fixo, geralmente menor, chamada de valor hash (resumo ou valor condensado). Funções de condensação (hash functions) x x x x x x x x x x Funções Hash • Exemplos: • Dígito verificador em CPFs; • Função que pega uma pré-imagem e retorna um byte que consiste no XOR de todos os bytes de entrada. Funções de condensação (hash functions) entrada 0101 0110 1001 0101 0100 0110 0001 1011 saída 1001 1110 Funções Hash • A finalidade de uma função de hash é produzir uma “impressão digital” de um arquivo, mensagem ou outro bloco de dados. • Exemplo de aplicação: • Armazenamento de senhas. Funções de condensação unidirecionais x x x x x x x x x x difícil Funções Hash ● DES ● 3DES ● AES ● Modos de Operação ● One-Time Pad ● RC4 Algoritmos Simétricos ● Algoritmo amplamente difundido e estudado. ● Originado a partir do Lucifer (IBM). ● Aprovado como padrão em 1977. ● Mensagem: 64 bits. ● Chave: 56 bits (64 mas 8 são de paridade). ● Mensagem cifrada: 64 bits. Algoritmos Simétricos – DES ● As caixas S (S-Boxes) foram definidas pelo NSA (National Security Agency), órgão do governo americano, sem que deixasse claro o porque de tais escolhas. ● Depois de alguns anos descobriu-se que essas caixas S faziam com que as criptoanálises linear e diferencial não se tornassem ataques práticos. ● Existem pessoas que desconfiam que as caixas S imponham algum tipo de backdoor (porta dos fundos) no algoritmo do DES mas isto não ficou provado até hoje e não passa apenas de especulação. DES ● O tamanho de chave aplicado ao DES (56 bits) já foi quebrado por um ataque de força bruta em um tempo relativamente pequeno (22 horas e 15 minutos). ● Em uma busca exaustiva da chave do DES, teríamos que, a princípio, testar as 256 possíveis chaves. ● Mas o DES possui a seguinte característica: – seja uma chave K; – seja K’ a chave complemento bit a bit (ou seja se a chave K=0110 então K’=1001 – trocam-se os 1’s por 0’s e vice-versa); – então EK(P)=C e EK’(P)=C’, onde C’ é o complemento bit a bit de C. DES ● Considere que temos um bloco cifrado e queremos realizar uma busca exaustiva da chave, ou seja, decifrar este bloco com todas as possíveis chaves e achar o texto em claro que fizesse sentido no contexto aplicado (por exemplo, achar um bloco que contenha uma palavra conhecida). ● Neste caso, não precisamos decifrar o bloco com todas as chaves, uma vez que, se decifrarmos com a chave K e acharmos o texto em claro P, logo, se decifrarmos com a chave K’ iremos achar o texto em claro P’. ● Com isso é necessário testar apenas 255 chaves e não 256. DES ● O AES é definido no FIPS PUBS 197 (Federal Information Processing Standards Publication 197). ● Padronizado em 2001. ● O AES foi escolhido entre diversas cifras que foram submetidas para análise. ● A cifra escolhida foi o RIJNDAEL, que originalmente trabalhava com blocos de 128, 192 ou 256 bits e chaves de 128, 192 ou 256 bits. ● O AES possui: – tamanho de bloco de 128 bits; – tamanho da chave de 128, 192 ou 256 bits. AES • O One-Time Pad (OTP) é o esquema de cifração perfeito. • Em dados binários, ele utiliza uma chave gerada de forma aleatória, do tamanho do texto. • A operação de cifração consiste na operação XOR bit a bit do texto em claro com a chave. • Neste método de cifração, a busca exaustiva da chave não é eficaz, uma vez que todos os possíveis textos são achados quando se aplica a busca exaustiva. Cifras de Fluxo – OTP Exemplo: Suponha que temos um texto cifrado que é 0101. Se aplicarmos a busca exaustiva, obteremos: texto cifrado chave de busca exaustiva texto em claro analisado 0101 0000 0101 0101 0001 0100 0101 0010 0111 0101 0011 0110 0101 0100 0001 0101 0101 0000 0101 0110 0011 0101 0111 0010 0101 1000 1101 0101 1001 1100 0101 1010 1111 0101 1011 1110 0101 1100 1001 0101 1101 1000 0101 1110 1011 0101 1111 1010 Cifras de Fluxo – OTP Exemplo (cont.): • Ou seja, se tentarmos a busca exaustiva iremos achar todos os possíveis textos em claro e não poderemos identificar qual era o texto em claro original a não ser que tenhamos a chave utilizada na cifração. Cifras de Fluxo – OTP • É uma cifra de fluxo de tamanho de chave variável (até no máximo 2048 bits) • Desenvolvida em 1987 por Ron Rivest para a empresa RSA Data Security, Inc. Cifras de Fluxo – RC4 Algoritmos de Chave Pública • RSA • Diffie-Hellman 43 ● Aplicações para criptossistemas de chave pública: – criptografia/decriptografia; – assinatura digital; – troca de chave. Algoritmos de Chave Pública ● Publicado em 1978. ● Nome RSA provém das iniciais dos autores (Ron Rivest, Adi Shamir e Len Adleman). ● Baseado na dificuldade de fatorar um número inteiro grande. ● Amplamente difundido. RSA ● Sejam dois números primos grandes p e q. ● Calcule n = p.q. ● Seja e escolhido randomicamente tal que e e (p-1)(q-1) sejam primos entre si. ● Calcule d tal que e.d ≡1 mod(p-1)(q-1). ● Desta forma: • e e n formam a chave pública; • d e n formam a chave privada. Geração das chaves pública e privada RSA ● Divida a mensagem em blocos numéricos menores que n ● Seja mi o bloco de texto claro que se deseja cifrar ● Seja ci o bloco de texto cifrado correspondente a mi ● ci é calculado da seguinte forma: ci=mie mod n Cifração RSA ● Seja ci o bloco de texto cifrado que se deseja decifrar. ● Seja mi o bloco de texto claro correspondente a ci. ● mi é calculado da seguinte forma: mi=cid mod n Decifração RSA ● Passo 1 - escolha de p e q – Suponha que escolhamos p = 47 e q = 71 ● Passo 2 - Cálculo de n – n = p.q = 3337 ● Passo 3 - escolha de e – Lembre que e não pode ter fatores em comum com (p-1) (q-1) = 46.70 = 3220 – Suponha que escolhamos e = 79. ● Passo 4 - cálculo de d – Utilizaremos o algoritmo euclidiano estendido para calcular d – d = 79-1 mod 3220 = 1019 ● Passo 5 - Torne público e e n e mantenha d secreto. Descarte p e q. Exemplo – geração das chaves: RSA ● Para cifrar a mensagem: m=6882326879666683 ● Primeiro quebre-a em blocos pequenos. Blocos de três dígitos funcionam bem neste caso. A mensagem é quebrada em seis blocos, mi, que são: – m1=688 – m2=232 – m3=687 – m4=966 – m5=668 – m6=003 ● O primeiro bloco é cifrado da seguinte forma: 68879 mod 3337 = 1570 = c1 ● Realizando a mesma operação nos blocos subseqüentes, será gerada a seguinte mensagem cifrada: c = 1570 2756 2091 2276 2423 158 Exemplo – cifração: RSA ● Decifrar a mensagem consiste em realizar a mesma operação de exponenciação usando a chave de decifração 1019, então: 15701019 mod 3337 = 688 = m1 ● O resto da mensagem será decifrado da mesma maneira. Exemplo – decifração: RSA • Segurança baseada na dificuldade de se calcular o logaritmo discreto em corpos finitos. • Pode ser usado para troca de chaves. • Não pode ser usado para cifrar ou decifrar mensagens. Alg. Diffie-Hellman (Troca de Chaves) • Suponha que Alice e Bob desejam combinar uma chave. • Primeiro eles combinam dois números primos grandes n e g tal que g é primitivo mod n. • Esses dois números não precisam ser secretos e podem ser usados por várias pessoas. • Depois, o algoritmo se segue da seguinte forma: • Alice escolhe um número inteiro aleatório grande x e envia para Bob X calculado da seguinte forma: X=gx mod n; • Bob escolhe um número inteiro aleatório grande y e envia para Alice Y calculado da seguinte forma: Y=gy mod n; Alg. Diffie-Hellman (Troca de Chaves) • (Cont.): • Alice calcula k = Yx modn; • Bob calcula k’=Xy mod n; • k e k’são iguais a gxy mod n e ninguém que tenha monitorado a linha de comunicação poderá calcular este valor. Alg. Diffie-Hellman (Troca de Chaves) Exemplo: Sejam o numero primo n=97 e a raiz primitiva g=5 ALICE GERA ALEATORIAMENTE x=36 (chave privada) y=58 (chave privada) GERA ALEATORIAMENTE CALCULA X= 536 mod 97 = 50 (chave pública) CALCULA Y= 558 mod 97 = 44 (chave pública) Alice envia X=50 para Bob Bob envia Y=44 para Alice CALCULA K= 4436 mod 97 = 75 (chave secreta compartilhada por Bob e Alice) CALCULA K= 5058 mod 97 = 75 (chave secreta compartilhada por Bob e Alice) BOB Alg. Diffie-Hellman (Troca de Chaves) Funções de Hash – Requisitos • Para ser útil para autenticação de mensagens, uma função de hash H(x) precisa ter as seguintes propriedades: • H(x) pode ser aplicada a um bloco de dados de qualquer tamanho. • H(x) produz uma saída de comprimento fixo. x x x x x x x x x x difícil H(x) ● (Cont.): – H(x) é facil de calcular para qualquer x, tornando as implementações de hardware e software práticas. – Para qualquer valor de h dado, é computacionalmente inviável encontrar x tal que H(x) = h. – Para qualquer bloco dado x, é computacionalmente inviável encontrar y ≠ x tal que H(y) = H(x). – É computacionalmente inviável encontrar qualquer par (x,y) tal que H(x) = H(y). Funções de Hash – Requisitos • Especificado na FIPS PUB 180-3 (Federal Information Processing Standards Publications). • Nome do padrão: Secure Hash Signature Standard (SHS) (FIPS PUB 180-3). • O padrão especifica cinco algoritmos hash seguros – SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512. • Segundo o padrão, é computacionalmente inviável: • achar uma mensagem que corresponda a um message digest; • achar duas mensagens que possuam o mesmo message digest. Funções de Hash – SHS Características: Algoritm o Tamanho da mensagem (bits) Tamanho do bloco (bits) Tamanho da palavra (bits) Tamanho do message digest (bits) Segurança (bits) SHA-1 < 264 512 32 160 80 SHA-224 < 264 512 32 224 112 SHA-256 < 264 512 32 256 128 SHA-384 < 2128 1024 64 384 192 SHA-512 < 2128 1024 64 512 256 • O item segurança considera que o ataque do aniversário em um message digest de tamanho n produz uma colisão com fator de trabalho de aproximadamente 2n/2. Funções de Hash – SHS ● O algoritmo utiliza: – 80 palavras de 32 bits fixas (constantes); – 5 variáveis de 32 bits (A, B, C, D, E); – Um valor hash com 5 palavras de 32 bits. ● Deve ser feito o pré-processamento antes da execução do algoritmo: – “padding” para um múltiplo de 512 e divisão em blocos de 512. Funções de Hash – SHA-1 ● Para cada um dos N blocos de 512 bits: – Iteração de 80 repetições com as operações: ● f(x,y,z); ● adições mod 232; ● deslocamentos e rotações; – As variáveis utilizadas serão inicializadas e apresentarão valores que serão passados para as iterações com os outros blocos (N). ● Ao final, as cinco palavras de 32 bits serão concatenadas, gerando o hash final de 160 bits. Funções de Hash – SHA-1 ● A mensagem final deve ter um número de bits múltiplo de 512. ● Exemplo: a mensagem é “abc” – acrescenta-se um bit 1; – vários bits 0; – 64 bits representando o tamanho original da mensagem. Funções de Hash – SHA-1 • Melhoria do MD4. • Projetado por Ron Rivest (também autor do MD4). • MD (Message Digest). • MD5 e MD4 produzem um hash de 128 bits. • MD5 roda 30% mais lento que o MD4. Funções de Hash – MD-5 Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62


Comments

Copyright © 2024 UPDOCS Inc.