INF541 - Criptografiardahab/cursos/mp202/Welcome_files/aula1-3.pptPPT file · Web viewINF712 –...
Transcript of INF541 - Criptografiardahab/cursos/mp202/Welcome_files/aula1-3.pptPPT file · Web viewINF712 –...
INF712 – Gerência de Segurança da Informação
Conceitos básicos de Criptografia ComputacionalProf. Ricardo Dahab
IC-UNICAMP14/12/2002
14/12/2002 INF712 - Gerência de Segurança da Informação
2
Fontes principaisLivros
Cryptography and Network Security, Principles and Practice, de William Stallings.
Capítulo 1 do Handbook of Applied Cryptography, de Menezes, van Oorschot e Vanstone. (.ps, .pdf).
14/12/2002 INF712 - Gerência de Segurança da Informação
3
Criptografia e mecanismos de segurança
Vários mecanismos são empregados para prover serviços de segurança.
Quase todos são baseados em ferramentas criptográficas:– Primitivas– Protocolos criptográficos de
vários níveis de complexidade.
14/12/2002 INF712 - Gerência de Segurança da Informação
4
Qual criptografia? Clássica X Moderna
Convencional, simétrica ou de chave secreta
X Moderna, assimétrica
ou de chave pública
14/12/2002 INF712 - Gerência de Segurança da Informação
5
Criptografia Convencional
Técnicas clássicas Técnicas modernas Algoritmos modernos Sigilo e autenticação com criptografia
convencional, ou simétrica.
14/12/2002 INF712 - Gerência de Segurança da Informação
6
Criptografia Convencional O modelo convencional de ciframento
pressupõe a existência de uma chave previamente combinada entre as duas partes em comunicação.
Esse segredo autentica uma parte perante a outra.
Esse tipo de criptossistema, também chamado de simétrico ou de chave secreta, perdurou até meados da década de 70.
14/12/2002 INF712 - Gerência de Segurança da Informação
7
Criptografia ConvencionalCategorias dos sistemas convencionais: Tipo de operação no texto claro:
substituição e/ou transposição. Interação entre chave e texto:
– blocos: divisão do texto em blocos e reaplicação do algoritmo em cada bloco;
– fluxo: texto é combinado com chave bit a bit.
Não confundir com esteganografia.
14/12/2002 INF712 - Gerência de Segurança da Informação
8
Criptoanálise Descoberta total ou parcial da
chave e/ou texto claro por métodos sistemáticos.
Formas de ataque <T2.1> são classificadas de acordo com o nível de conhecimento a que o criptoanalista tem acesso.
14/12/2002 INF712 - Gerência de Segurança da Informação
9
CriptoanáliseSegurança de um criptossistema:
– incondicional: poder computacional do criptoanalista é irrelevante;
– computacional: poder computacional é irrelevante na prática, num horizonte de tempo predizível;
– comprovada: poder computacional é irrelevante no presente mas nada se pode dizer do futuro.
Busca exaustiva <T2.2> é a opção “fácil”, na prática.
14/12/2002 INF712 - Gerência de Segurança da Informação
10
Técnicas clássicas Substituição:
– Monoalfabética: um caractere por outro de acordo com uma tabela (chave). Ex: César. Mantém a freqüência relativa dos caracteres.
– Monogrupos: grupos de caracteres por outros grupos fixos de caracteres. Ex: Playfair, Hill.
– Polialfabética: monoalfabética variando ao longo <T2.4> do texto claro.
14/12/2002 INF712 - Gerência de Segurança da Informação
11
Técnicas clássicas Transposição:
– Embaralhamento dos caracteres de acordo com alguma tabela (chave).
Causam um efeito de dispersão no texto claro.
Os métodos de substituição causam um efeito de confusão no texto.
14/12/2002 INF712 - Gerência de Segurança da Informação
12
Técnicas clássicas Produtos: substituição e transposição. Máquinas com rotores
implementavam essa idéia. Algoritmos modernos refinaram e
multiplicaram o poder de tais máquinas, implementadas em computadores.
14/12/2002 INF712 - Gerência de Segurança da Informação
13
Técnicas Modernas Técnicas clássicas são inseguras
porque não supunham a existência de computadores em mãos de criptoanalistas.
O primeiro método moderno foi proposto em meados da década de 70, o conhecido D.E.S.
14/12/2002 INF712 - Gerência de Segurança da Informação
14
O D.E.S. D.E.S (Data Encryption Standard),
foi o método oficial do governo dos E.U.A. para ciframento de informação não “sensível”, até muito pouco tempo.
Ainda é muito usado em toda a Internet, em sua forma mais fortalecida, o 3-DES.
14/12/2002 INF712 - Gerência de Segurança da Informação
15
O D.E.S. Processa blocos de texto de 64 bits cada
vez, sob a ação de uma chave de 56 bits, produzindo 64 bits de texto cifrado.
É composto de 16 rodadas de produtos de transposições e substituições, cada uma usando uma porção diferente da chave.
O efeito avalanche <T3.5> garante que qualquer mudança no texto claro ou chave cause mudança de metade do texto cifrado.
14/12/2002 INF712 - Gerência de Segurança da Informação
16
O D.E.S. Critérios de projeto do D.E.S. não foram
totalmente revelados pelos desenvolvedores (originalmente um projeto da IBM).
Isso causou, por anos, desconfiança de que o algoritmo contivesse armadilhas secretas que permitiriam à comunidade de informação acesso a mensagens cifradas dos usuários.
14/12/2002 INF712 - Gerência de Segurança da Informação
17
Cifras de blocoModos de operação <T3.6>: ECB (Electronic Codebook) CBC (Cipher Block Chaining) CFB (Cipher Feedback) OFB (Output Feedback)Cada um tem suas vantagens do ponto de
vista de propagação e recuperação de erros, localidade, etc.
14/12/2002 INF712 - Gerência de Segurança da Informação
18
Outros algoritmos simétricos modernos
Triple D.E.S (3-DES)– Modo preferido de uso do D.E.S.– Pode ser usado com uma, duas ou
três chaves.– Só é efetivo porque o D.E.S. não é
um grupo algébrico. – Passível de ataques quando duas
chaves são usadas.
14/12/2002 INF712 - Gerência de Segurança da Informação
19
O mundo pós-D.E.S. IDEA (International Data Encryption
Algortihm) Blowfish, RC-5, um sem-número de
outros... ...e o novo padrão A.E.S. (Advanced
Encrytpion Standard), resultado de um concurso público de 4 anos.
14/12/2002 INF712 - Gerência de Segurança da Informação
20
Usando ciframento simétrico
Pontos de vulnerabilidade são muitos. Há duas possibilidades de inserção
das funções de ciframento numa rede: nos links ou nas pontas.
Diferentes características <T5.1>. Veja detalhes de um exemplo usando
uma aplicação típica de e-mail. Veja os detalhes nos pacotes.
14/12/2002 INF712 - Gerência de Segurança da Informação
21
Distribuição de chaves O problema de distribuir e gerenciar
chaves criptográficas num ambiente de rede não é trivial.
É necessária uma hierarquização do processo.
Veja um protocolo centralizado de distribuição de chaves.
E agora um protocolo descentralizado.
14/12/2002 INF712 - Gerência de Segurança da Informação
22
Criptografia de chave pública
Tópicos: Conceitos básicos e exemplos. A matemática necessária. Autenticação e o papel das funções
de resumo (hashing) criptográfico. Algoritmos de resumo criptográfico. Assinaturas digitais.
14/12/2002 INF712 - Gerência de Segurança da Informação
23
Criptografia de chave pública - conceitos básicos -
Criptografia simétrica não resolve um problema básico: o estabelecimento seguro da chave secreta entre as duas partes comunicantes.
Outra deficiência desses sistemas é a incapacidade das partes de demonstrar a autoria de uma mensagem a uma terceira parte. Um mecanismo equivalente a assinaturas poderia suprir essa deficiência.
14/12/2002 INF712 - Gerência de Segurança da Informação
24
Criptografia de chave pública - conceitos básicos -
A criptografia de chave pública tem resposta a esses dois problemas.
Os princípios básicos dessa tecnologia foram propostos em meados da década de 70 por Whitfield Diffie e Martin Hellman no artigo “New directions in Cryptography”, que tornou-se um marco na história da criptografia moderna.
14/12/2002 INF712 - Gerência de Segurança da Informação
25
Contribuições de Diffie e Hellman
Um método para estabelecimento de uma chave secreta usando um canal inseguro.
A idéia de que poderiam existir sistemas criptográficos onde cada parte A teria duas chaves distintas: uma pública, para ciframento de mensagens para A; outra, privada, de conhecimento exclusivo de A, para deciframento de tais mensagens.
14/12/2002 INF712 - Gerência de Segurança da Informação
26
Criptossistemas de chave pública
A primeira idéia ficou conhecida como método Diffie-Hellman para troca de chaves. Veremos detalhes adiante.
A segunda idéia só se materializou como um criptossistema de fato alguns meses depois.
O conhecido RSA foi o primeiro desses sistemas.
14/12/2002 INF712 - Gerência de Segurança da Informação
27
Criptossistemas de chave pública
Para que um sistema de chave pública seja efetivo, é necessário que:– a função de ciframento seja difícil
de inverter;– seja muito difícil descobrir a
chave privada, apesar do conhecimento da chave pública.
14/12/2002 INF712 - Gerência de Segurança da Informação
28
Sistemas de chave pública x chave secreta
Sistemas de chave pública são chamados de assimétricos, já que o “dono” do par de chaves sendo usadas numa comunicação tem controle da situação.
Sistemas assimétricos poderiam substituir completamente sistemas simétricos, não fosse por dois aspectos importantes: eficiência e obtenção segura da chave pública.
14/12/2002 INF712 - Gerência de Segurança da Informação
29
Sistemas de chave pública x chave secreta
Na prática, sistemas de chave pública são usados para estabelecer chaves secretas de um sistema simétrico.
Isso combina a flexibilidade dos sistemas assimétricos com a eficiência dos sistemas simétricos.
Veja outras diferenças (Tab. 6.1)
14/12/2002 INF712 - Gerência de Segurança da Informação
30
Assinaturas Digitais Talvez a contribuição mais surpreendente das
idéias de Diffie-Hellman seja a possibilidade de se fazer assinaturas digitais.
A posse da chave privada por apenas uma pessoa, seu “dono”, também o identifica unicamente; p. ex., se for possível demonstrar que a confecção de uma mensagem exigiu o uso da chave privada, temos o efeito de uma assinatura digital sobre aquela mensagem.
Essa demonstração é feita utilizando-se a chave pública, que é a “face” pública da chave privada.
14/12/2002 INF712 - Gerência de Segurança da Informação
31
Um exemplo - O R.S.A. Proposto por R. Rivest, A. Shamir e
L. Adleman em 1977, foi o primeiro criptossistema de chave pública e permanece até hoje o mais popular.
Baseia sua força na dificuldade de se encontrar a fatoração de números inteiros muito grandes.
Aqui está o RSA e um exemplo.
14/12/2002 INF712 - Gerência de Segurança da Informação
32
O R.S.A. - implementaçãoCiframento e deciframento: para garantir um nível razoável de
segurança, os primos p e q devem ter cerca de 300 a 400 dígitos decimais.
Operações de exponenciação e mod são eficientes. Veja um algoritmo de exponenciação modular rápido.
14/12/2002 INF712 - Gerência de Segurança da Informação
33
O R.S.A. - implementaçãoGeração de chaves: Algoritmos para geração de números
primos são probabilísticos já que, às vezes, mentem. Mas é possível determinar se um dado número é primo ou não com boa dose de certeza.
Inversos multiplicativos modulares são cálculáveis eficientemente, usando o algoritmo estendido de Euclides.
14/12/2002 INF712 - Gerência de Segurança da Informação
34
O R.S.A. - segurança A segurança do R.S.A. baseia-se no fato
de que inverter a funçãoC = Me mod n,
isto é, dados C, e, n, obter M é uma tarefa computacionalmente difícil quando n tem 300 ou mais dígitos.
Não é difícil verificar que se o cripto- analista conhecer os números p, q, então é fácil obter d e portanto M facilmente.
14/12/2002 INF712 - Gerência de Segurança da Informação
35
O R.S.A. - segurança Assim, a “força” do RSA reside também num
segundo pilar: é difícil obter os primos p, q a partir de n, isto é, a fatoração de n, quando n tem 300 dígitos ou mais.
Os melhores algoritmos para fatoração vêm melhorando seu desempenho (Tab 6.3). Já se fala que 300 dígitos é pouco e há quem advogue o uso de 600 dígitos para se ter um horizonte razoável de segurança.
14/12/2002 INF712 - Gerência de Segurança da Informação
36
O R.S.A. - segurança É possível pensar em formas
alternativas de ataques, isto é, tentar descobrir a chave privada d por outros meios.
Veja, por exemplo, que, dado o valor de (n), então é fácil descobrir o valor da chave d.
14/12/2002 INF712 - Gerência de Segurança da Informação
37
O R.S.A. - segurança Por outro lado, é possível demonstrar
matematicamente que as seguintes três possibilidades são equivalentes; isto é, dada uma é possível realizar as outras duas:– Encontrar a fatoração de n.– Encontrar o valor de (n).– Encontrar o valor da chave d.
Mas, descobrir M a partir de C, e, n, pode ser mais fácil. Ninguém sabe dizer...
14/12/2002 INF712 - Gerência de Segurança da Informação
38
Autenticidade de chaves públicas.
Se, por um lado, chaves públicas são fáceis de obter, são também fáceis de manipular e fraudar.
É muito importante que o remetente de uma mensagem tenha certeza da identidade do destinatário e de que uma chave pública seja de fato daquele destinatário. Caso contrário...
14/12/2002 INF712 - Gerência de Segurança da Informação
39
Autenticidade de chaves públicas
Há várias formas de se vincular a identidade de uma entidade a uma chave pública:– “Broadcast” individual de chaves.– Disponibilização em diretórios
públicos. – Autoridades de distribuição de chaves.– Certificados e autoridades
certificadoras.
14/12/2002 INF712 - Gerência de Segurança da Informação
40
Estabelecimento de chaves secretas
Como já vimos, é possível estabelecer uma chave secreta entre duas partes usando chaves públicas.
Eis outro protocolo, um pouco mais elaborado.
Há porém, a idéia original de Diffie e Hellman que dispensa o uso de chaves públicas.
14/12/2002 INF712 - Gerência de Segurança da Informação
41
O método Diffie-Hellman Baseia-se na dificuldade de se
inverter uma outra função, similar à do R.S.A. Dados um primo p e números x e y para os quais existe k tal que
y = xk mod p, descubra o valor do inteiro k. É o problema do logaritmo discreto.
14/12/2002 INF712 - Gerência de Segurança da Informação
42
O método Diffie-Hellman Suponha a existência de parâmetros públicos p e
g. Entidade A(lice), escolhe um aleatório a e envia
MA = ga mod p para a entidade B(eto). Beto faz o mesmo e envia para Alice
MB = gb mod p. Alice calcula
(MB)a mod p = gba mod p. Beto calcula (MA)b mod p = gab mod p.
14/12/2002 INF712 - Gerência de Segurança da Informação
43
O método Diffie-Hellman É seguro mas passível de um
ataque de um intermediário. Há técnicas para evitar esse
ataque.
14/12/2002 INF712 - Gerência de Segurança da Informação
44
Outros métodos de chave pública
Curvas elípticas são o maior concorrente do R.S.A. atualmente.
Maior vantagem está no tamanho reduzido dos parâmetros para o mesmo nível de segurança, quando comparado (Tab. 6.5) com o R.S.A.
14/12/2002 INF712 - Gerência de Segurança da Informação
45
Autenticação e Hashing
Tópicos: A necessidade de autenticação Funções para provimento de autenticação:
– Ciframento– Códigos de autenticação (MACs e MDCs)– Assinaturas digitais.– Funções de hashing com propriedades
criptográficas.
14/12/2002 INF712 - Gerência de Segurança da Informação
46
A necessidade de autenticação
Autenticação (da origem e do conteúdo) de mensagens é um conjunto de técnicas fundamentais para proteção contra:– personificação da autoria de uma mensagem– modificação acidental ou não de uma
mensagem– modificação na ordem de uma seqüência de
mensagens– atraso ou re-envio de mensagens– repúdio da autoria de uma mensagem
14/12/2002 INF712 - Gerência de Segurança da Informação
47
Técnicas para autenticação São quatro as técnicas criptográficas
empregadas em autenticação:– Ciframento– MACs (Message Authentication Codes)– MDCs (Manipulation Detection Codes)– Assinaturas Digitais
Assinaturas digitais são as únicas que provêem proteção contra repúdio de autoria. Veremos essas técnicas a seguir.
14/12/2002 INF712 - Gerência de Segurança da Informação
48
Autenticação com ciframento Ciframento simétrico (Fig. 8.1 (a)) provê
autenticação mútua de duas partes em comunicação, desde que se saiba o que se espera do resultado de um deciframento.
De qualquer forma, sabendo ou não, é útil adicionar um controle de erros às mensagens cifradas. Além da detecção de erros, essa técnica verifica o deciframento correto de mensagens sem redundância.
14/12/2002 INF712 - Gerência de Segurança da Informação
49
Autenticação com MACs Um MAC (Message Authentication Code) de
uma mensagem M é o resultado do cálculo de uma função de mão única Ck (M), onde M é a mensagem em questão e k é uma informação secreta, conhecida somente pelas duas partes em comunicação.
Uma parte envia M e seu MAC. A outra parte recalcula o MAC e aceita M se o valor obtido é igual ao MAC recebido. Veja Fig. 8.4 (a).
14/12/2002 INF712 - Gerência de Segurança da Informação
50
Autenticação com MACs Exceto pelo fato de que a mensagem passa
em claro, a técnica de MACs é parecida com a de ciframento simétrico, para esse fim.
De fato, é possível usar uma função de ciframento no papel de Ck( ). Na prática, usa-se uma função de hash com propriedades criptográficas; a forma de combinar M e k segue a RFC 2104 e a função resultante é chamada de HMAC. Discutiremos tais funções mais adiante.
14/12/2002 INF712 - Gerência de Segurança da Informação
51
Autenticação com MDCs Um MDC (Manipulation Detection Code) de
uma mensagem M é o resultado do cálculo de uma função de mão única C (M), onde M é a mensagem em questão.
Uma parte envia M e seu MDC. A outra parte recalcula o MDC e aceita M se o valor obtido é igual ao MDC recebido. Veja Fig. 8.5 (a).
Veja que, além de ser de mão única, a função C( ) deve ser resistente a colisões. Esses dois são atributos de funções de hash, ou resumo criptográfico.
14/12/2002 INF712 - Gerência de Segurança da Informação
52
Autenticação com MDCs A técnica vista na transparência
anterior não provê autenticação mútua, já que qualquer terceira parte pode produzir o MDC de uma mensagem.
Há outros usos de funções de resumo criptográfico ilustrados em Fig. 8.5a-c e Fig. 8.5c-d e explicados na Tab. 8.3 de cada uma.
14/12/2002 INF712 - Gerência de Segurança da Informação
53
Funções de resumo (hash) criptográfico
Têm propriedades interessantes do ponto de vista criptográfico:– podem ser aplicadas a mensagens de
qualquer tamanho;– a saída é uma cadeia de tamanho fixo;– h(M) é fácil de calcular e muito difícil
de inverter;– tem resistência a colisões, forte e
fraca.
14/12/2002 INF712 - Gerência de Segurança da Informação
54
Funções de resumo criptográfico populares
Três funções de maior popularidade:– MD5 (RFC 1321): desenvolvida por Ron
Rivest (do RSA). Produz uma saída de tamanho fixo, de 128 bits, a partir de entradas de tamanho arbitrário. Em declínio.
– SHA-1 (FIPS PUB 180-1): desenvolvida pelo NIST. Produz saídas de 160 bits a partir de entradas de tamanho arbitrário. Em uso crescente.
– RIPEMD-160: projeto europeu, saída de 160 bits, pouco usada entre nós.
14/12/2002 INF712 - Gerência de Segurança da Informação
55
HMACs Como já dissemos, a RFC 2104
especifica uma forma de combinar mensagem (M) e chave (k) para produzir um MAC.
Veja a estrutura de um HMAC. Veja uma implementação eficiente
de um HMAC.
14/12/2002 INF712 - Gerência de Segurança da Informação
56
Assinaturas digitais São, ao mesmo tempo, similares e
diferentes das assinaturas usuais:– Devem revelar, sem engano, o autor,
data e hora da assinatura;– devem autenticar o conteúdo do que foi
assinado, no momento da assinatura;– devem ser verificáveis,
independentemente, por terceiras partes, sem cooperação do autor.
14/12/2002 INF712 - Gerência de Segurança da Informação
57
Assinaturas digitais Traduzindo em características concretas:
– Deve ser uma cadeia de bits que depende do que está sendo assinado;
– deve usar alguma informação unicamente associável ao autor;
– deve ser fácil de produzir;– deve ser fácil de reconhecer e verificar;– deve ser computacionalmente difícil de
forjar;– deve ser facilmente armazenável.
14/12/2002 INF712 - Gerência de Segurança da Informação
58
Assinaturas digitais Há dois esquemas básicos:
– Sem arbitragem: Somente o emitente e destinatário de uma assinatura são suficientes para verificar assinaturas e resolver conflitos.
– Com arbitragem: Um árbitro confiável pode ser usado, para aumentar a robustez do esquema não-arbitrado.
14/12/2002 INF712 - Gerência de Segurança da Informação
59
Assinaturas digitais Sem arbitragem
– Baseadas em criptografia assimétrica.
– Esquema básico é o da Fig. 8.1(c) ou sua versão mais eficiente, da Fig. 8.5(c)
– Ambos esquemas dependem da segurança da chave privada do autor da assinatura: seu sigilo, integridade e validação temporal.
14/12/2002 INF712 - Gerência de Segurança da Informação
60
Assinaturas digitais Com arbitragem
– Baseadas em criptografia simétrica ou assimétrica.
– A idéia geral é que o árbitro “abençoe” cada assinatura produzida, emprestando sua credibilidade ao esquema.
– Veja exemplos (Tab. 10.1).
14/12/2002 INF712 - Gerência de Segurança da Informação
61
Algoritmos para assinaturas digitais
Os algoritmos mais usados em esquemas de assinaturas digitais são o RSA e o DSS (Digital Signature Standard), baseado no método de ElGamal, que por sua vez é baseado no problema do logaritmo discreto.
14/12/2002 INF712 - Gerência de Segurança da Informação
62
Algoritmos para assinaturas digitais
O paradigma do RSA é diferente daquele do DSS.
O DSS não possui a propriedade comutativa do RSA: se PA, RA são as chaves pública e privada de A, então
D(RA, E(x, PA)) = E(PA, D(x, RA)), onde E e D são os algoritmos para
ciframento e deciframento do RSA.
14/12/2002 INF712 - Gerência de Segurança da Informação
63
Algoritmos para assinaturas digitais
Essa propriedade possibilita um esquema de assinatura como o ilustrado na Fig. 10.1(a).
Em contraste, o DSS necessita de um esquema mais complicado. Veja primeiro a Fig. 10.1(b). Após seguir em aula a descrição completa do método, desde a escolha de chaves até a confecção e verificação de uma assinatura, veja então um resumo do DSS na Fig. 10.3.