INF712 – Gerência de Segurança da Informação Conceitos básicos de Criptografia Computacional Prof. Ricardo Dahab IC-UNICAMP 14/12/2002 Fontes principais Livros 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 2 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 3 Qual criptografia? 14/12/2002 Clássica X Moderna Convencional, simétrica ou de chave secreta X Moderna, assimétrica ou de chave pública INF712 - Gerência de Segurança da Informação 4 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 5 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 6 Criptografia Convencional Categorias 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 7 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 8 Criptoanálise Seguranç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 9 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 10 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 11 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 12 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 13 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 14 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 15 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 16 Cifras de bloco Modos 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 17 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 18 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 19 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 20 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 21 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 22 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 23 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 24 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 25 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 26 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 27 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 28 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 29 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 30 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 31 O R.S.A. - implementação Ciframento 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 32 O R.S.A. - implementação Geraçã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 33 O R.S.A. - segurança A segurança do R.S.A. baseia-se no fato de que inverter a função e C = M 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 criptoanalista 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 34 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 35 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 f(n), então é fácil descobrir o valor da chave d. 14/12/2002 INF712 - Gerência de Segurança da Informação 36 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 f(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 37 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 38 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 39 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 40 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 41 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. b Beto calcula (MA) mod p = gab mod p. 14/12/2002 INF712 - Gerência de Segurança da Informação 42 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 43 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 44 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 45 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 46 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 47 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 48 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 49 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 50 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 51 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.5ac 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 52 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 53 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 54 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 55 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 56 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 57 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 58 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 59 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 60 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 61 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 62 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. 14/12/2002 INF712 - Gerência de Segurança da Informação 63