Tópicos Criptografia – Serviços Oferecidos Criptografia - Fundamentos Criptografia - Tipos Criptografia Simétrica Criptografia Assimétrica 1 Criptografia – Serviços Oferecidos Serviços Descrição Disponibilidade Garante que uma informação estará disponível para acesso no momento desejado. Integridade Garante que o conteúdo da mensagem não foi alterado. Controle de acesso Garante que o conteúdo da mensagem será acessado somente por pessoas autorizadas. Autenticidade da origem Garante a identidade de quem está enviando a mensagem. Não-repudiação Previne que alguém negue o envio e/ou recebimento de uma mensagem. Privacidade (confidencialidad e ou sigilo) Impede que pessoas não autorizadas tenham acesso ao conteúdo da mensagem, garantindo que apenas a origem e o destino tenham conhecimento. 2 Criptografia – Serviços Oferecidos Exemplo de aplicação: Compra pela Internet Informação que permite a transação - valor e descrição do produto adquirido - precisa estar disponível no dia e na hora que o cliente desejar efetuá-la (disponibilidade). O valor da transação não pode ser alterado (integridade). Somente o cliente que está comprando e o comerciante devem ter acesso à transação (controle de acesso). O cliente que está comprando deve ser quem diz ser (autenticidade). O cliente tem como provar o pagamento e o comerciante não tem como negar o recebimento (não-repúdio). O conhecimento do conteúdo da transação fica restrito aos envolvidos (privacidade). 3 Fundamentos de Criptografia Componentes básicos para o ciframento de uma mensagem: algoritmo chave Princípio de Kerckhoff (1883): Todos os algoritmos devem ser públicos; apenas as chaves são secretas. Algoritmo secreto: segurança pela obscuridade. 4 Fundamentos de Criptografia Vantagens importantes para o uso de chaves Permite a utilização do mesmo algoritmo criptográfico para a comunicação com diferentes receptores, trocando apenas a chave. Permite trocar facilmente a chave no caso de uma violação, mantendo o mesmo algoritmo. Número de chaves possíveis depende do tamanho (número de bits) da chave. Exemplo: uma chave de 8 bits permite uma combinação de no máximo 256 chaves. Quanto maior o tamanho da chave, mais difícil quebrá-la. 5 Criptografia - Tipos Tipos básicos de Criptografia (em relação ao uso de chaves) Criptografia Simétrica (chave secreta) Chave (A) Fechada Chave (A) Aberta Criptografia Assimétrica (chave pública) Chave (A) Fechada KEY (B) Aberta 6 Criptografia Simétrica Texto claro Mensagem cifrada Utiliza uma mesma chave tanto para cifrar como para decifrar (ou pelo menos a chave de decifração pode ser obtida trivialmente a partir da chave de cifração) A mesma chave utilizada para “fechar o cadeado” é utilizada para “abrir o cadeado”. 7 Criptografia Simétrica Criptografia Simétrica - Requer uma chave compartilhada Criptografia Para: Banco De: Affonso Data: 16, Abr, 2001 Transferir R$ 2,5 milhões da conta 254674-12 para a conta 071517-08 *> *ql3*UY #~00873/JDI + + Algoritmo = Affonso c4(DH: IWB(883 LKS9UI29as9eea qw9vijhas9djerhp7 (*Y23k^wbvlqkwc zqw-_89237xGyjdc Biskdue di7@94 Descriptografia *> *ql3*UY #~00873/JDI Para: Banco De: Affonso c4(DH: IWB(883 Data: 16, Abr, 2001 LKS9UI29as9eea qw9vijhas9djerhp7 (*Y23k^wbvlqkwc zqw-_89237xGyjdc Biskdue di7@94 + + Algoritmo = Transferir R$ 2,5 milhões da conta 254674-12 para a conta 071517-08 Affonso 8 Criptografia Simétrica Algoritmos simétricos - exigem que a chave seja mantida secreta, do conhecimento exclusivo dos dois interlocutores. É requerido um canal seguro que permita a um usuário transmitir a chave ao seu interlocutor. Se uma pessoa quer se comunicar com outra com segurança, ela deve passar primeiramente a chave utilizada para cifrar a mensagem. Este processo é chamado distribuição de chaves. 9 Criptografia Simétrica Uso de algoritmo criptográfico simétrico (chave secreta) Chave K Canal Seguro Alice Mensagem (abcdef...z) Chave K Criptograma (abcdef...z) Cifrar Bob Decifrar Mensagem (abcdef...z) Canal Inseguro Alice e Bob precisam acordar uma chave secreta que irá proteger as mensagens trocadas entre eles. 10 Criptografia Simétrica Alice cifra uma mensagem - utiliza um algoritmo de ciframento e uma chave secreta para transformar uma mensagem clara em um texto cifrado. Bob decifra uma mensagem - utiliza o algoritmo de deciframento correspondente e a mesma chave para transformar o texto cifrado em uma mensagem em claro. Eva - não possui a chave secreta, mesmo conhecendo o algoritmo, não consegue decifrar a mensagem. A segurança do sistema reside não mais no algoritmo e sim na chave empregada. É ela que agora, no lugar do algoritmo, deverá ser mantida em segredo por Alice e Bob. 11 Criptografia Simétrica Modelo de criptografia (para uma cifra de chave simétrica) Intruso passivo apenas escuta Texto simples, P Intruso ativo pode alterar mensagens Intruso Método de criptografia, E Método de descriptografia, D Texto simples, P Texto cifrado, C=Ek(P) Chave de criptografia, K Chave de descriptografia, K Dk(Ek(P)) = P 12 Criptografia Simétrica Exemplos de algoritmos que utilizam chaves secretas: DES Triple DES IDEA RC2 13 Criptografia Simétrica Vantagem Rapidez na criptografia e descriptografia da informação. Desvantagens A chave deve ser trocada entre as partes e armazenada de forma segura, o que nem sempre é fácil de garantir; A criptografia simétrica não garante a identidade de quem enviou ou recebeu a mensagem (autenticidade e não-repudiação). Cada par necessita de uma chave para se comunicar de forma segura. Em geral, se n pessoas querem se comunicar usando chave secreta, serão necessárias chaves - problema para o gerenciamento de chaves. 14 Criptografia Simétrica Proposta de solução para o problema da distribuição das chaves secretas Forma tradicional Forma moderna: Uso de um Centro de Distribuição de Chaves (KDC) Possíveis problemas? 15 Criptografia Assimétrica Texto claro Mensagem cifrada As chaves são sempre geradas aos pares: uma para cifrar e a sua correspondente para decifrar. A chave pública é divulgada, a chave privada é proprietária (normalmente não abandona o ambiente onde foi gerada). Uma chave é utilizada para “fechar o cadeado” e outra chave, diferente, mas relacionada à primeira, é utilizada para “abrir o cadeado” 16 Criptografia Assimétrica Criptografia Assimétrica - Não possui segredos compartilhados Criptografia Para: Banco De: Affonso Data: 16, Abr, 2001 Transferir R$ 2,0 milhões da conta 254674-12 para a conta 071517-08 *> *ql3*UY #~00873/JDI + + Algoritmo = Chave Pública Affonso c4(DH: IWB(883 LKS9UI29as9%#@ qw9vijhas9djerhp7 (*Y23k^wbvlqkwc zqw-_89237xGyjdc Biskdue di7@94 Descriptografia *> *ql3*UY #~00873/JDI Para: Banco De: Affonso c4(DH: IWB(883 Data: 16, Abr, 2001 LKS9UI29as9%#@ qw9vijhas9djerhp7 (*Y23k^wbvlqkwc zqw-_89237xGyjdc Biskdue di7@94 + + Chave Privada Algoritmo = Transferir R$ 2,0 milhões da conta 254674-12 para a conta 071517-08 Affonso As duas chaves são relacionadas através de um processo matemático, usando funções unidirecionais para a codificação da informação. 17 Criptografia Assimétrica Algoritmos assimétricos - permitem que a chave de cifração possa ser tornada pública, disponibilizando-a em um “canal público” (Ex.: repositório de acesso público) chave-pública. Qualquer um pode cifrar mensagens com uma dada chavepública. Somente o destinatário, detentor da correspondente chave de decifração (chave-privada, ou secreta), poderá decifrar a mensagem. A chave-privada não precisa e nem deve ser dada a conhecer a ninguém, devendo ser guardada em segredo pelo seu detentor apenas, que deve também ter sido o responsável pela geração do seu par de chaves, enquanto a chave-pública pode ser publicada livremente. 18 Criptografia Assimétrica Uso de algoritmo criptográfico assimétrico (chave pública). Chave KPública Canal Público Alice Mensagem (abcdef...z) Chave KSecreta Bob Criptograma (abcdef...z) Cifrar Decifrar Mensagem (abcdef...z) Canal Inseguro Para que Alice envie uma mensagem confidencial a Bob, ela deve encriptar essa mensagem com a chave pública de Bob que, de posse de sua chave privada, consegue descriptá-la. Como, em tese, ninguém tem acesso à chave privada de Bob, ninguém pode descriptar a mensagem. 19 Criptografia Assimétrica Descrição do funcionamento do sistema (forma simplificada) Bob e todos os que desejam comunicar-se de modo seguro geram uma chave de ciframento e sua correspondente chave de deciframento. Bob mantém secreta a chave de deciframento; esta é chamada de sua chave privada. Bob torna pública a chave de ciframento: esta é chamada de sua chave pública. Qualquer pessoa pode obter uma cópia da chave pública. Bob encoraja isto, enviando-a para seus amigos ou publicando-a em boletins. Eva não tem nenhuma dificuldade em obtê-la. 20 Criptografia Assimétrica Descrição do funcionamento do sistema (forma simplificada) Alice deseja enviar uma mensagem a Bob: precisa primeiro encontrar a chave pública dele. Feito isto, ela cifra sua mensagem utilizando a chave pública de Bob, despachando-a em seguida. Bob recebe a mensagem, a decifra facilmente com sua chave privada. Eva, que interceptou a mensagem em trânsito, não conhece a chave privada de Bob, embora conheça sua chave pública. Mas este conhecimento não a ajuda a decifrar a mensagem. Mesmo Alice, que foi quem cifrou a mensagem com a chave pública de Bob, não pode decifrá-la agora. 21 Criptografia Assimétrica Exemplos de algoritmos que utilizam chaves públicas: RSA ElGamal Diffie-Hellman Curvas Elípticas 22 Criptografia Assimétrica Vantagens Mais segura do que a criptografia simétrica, por não precisar comunicar ao receptor a chave necessária para descriptografar a mensagem. Permite que qualquer um possa enviar uma mensagem secreta, utilizando apenas a chave pública de quem irá recebê-la. Como a chave pública está amplamente disponível, não há necessidade do envio de chaves como no modelo simétrico. A confidencialidade da mensagem é garantida, enquanto a chave privada estiver segura. Caso contrário, quem possuir acesso à chave privada terá acesso às mensagens. Desvantagem costuma ser mais lenta do que a criptografia simétrica. 25 Criptografia Simétrica x Assimétrica Número de chaves necessárias/número de participantes Nº de participantes Criptografia Simétrica n(n-1)/2 Criptografia Assimétrica 2n 2 1 4 4 6 8 8 28 16 16 120 32 26 Criptografia Simétrica x Assimétrica Simétrica Assimétrica Funcionamento Utiliza um algoritmo e uma chave para cifrar e decifrar Funcionamento Utiliza um algoritmo e um par de chaves para cifrar e decifrar Requisito de Segurança A chave tem que ser mantida em segredo Tem que ser impossível decifrar a mensagem Algoritmo mais alguma parte do texto cifrado devem ser insuficientes para obter a chave Requisito de Segurança Uma chave é pública e a outra tem que ser mantida em segredo Algoritmo com alguma parte do texto cifrado com uma das chaves não devem ser suficientes para obter a outra chave 27 Criptografia Simétrica x Assimétrica Problemas Criptografia Simétrica Como distribuir e armazenar as chaves secretas de forma segura? Quantas chaves são necessárias para uma comunicação segura entre n pessoas? Criptografia Assimétrica Como garantir que o detentor da chave pública é realmente quem diz ser? Necessidade de ter uma infra-estrutura para armazenar as chaves públicas. 28 Criptografia Simétrica x Assimétrica Assinatura Digital Qual a melhor técnica? Como garantir a autenticidade de quem envia a mensagem? Como garantir a integridade do conteúdo? Certificado Digital 29 Ameaças do Ambiente Eletrônico Intermediário Adulteração da comunicação Repúdio Penetração de sistema Comunicações abertas Impostor Internet Processamento distribuído Emulação Cavalos de Tróia Violação de autorização Interrupção do serviço Repetição 30 Comunicação Segura Criptografia Assinatura Eletrônica Certificação Validade do Certificado Descriptografia Verificação de Assinatura Documento Eletrônico Internet Documento Eletrônico “Alice” “Bob” 31 Tópicos Assinatura Digital Certificação Digital Segurança da Comunicação 32 Criptografia - Autenticação Algumas vezes há a necessidade de se provar quem escreveu um documento e de manter as informações desse documento sem modificações. Solução: serviços de autenticação e integridade de dados A autenticidade de muitos documentos é determinada pela presença de uma Assinatura Digital. 33 Criptografia - Autenticação Assinatura digital – item que acompanha um determinado dado e apresenta as seguintes funções: 1. Confirmar a origem do dado 2. Certificar que o dado não foi modificado 3. Impedir a negação de origem 34 Assinatura Digital Vantagens provenientes do envio de mensagem “assinada”: 1. O receptor poderá verificar a identidade alegada pelo transmissor. 2. Posteriormente, o transmissor não poderá repudiar o conteúdo da mensagem. 3. O receptor não terá a possibilidade de forjar ele mesmo a mensagem. 35 Assinatura Digital Assinaturas de Chave Simétrica Assinaturas de Chave Pública Sumários de mensagens (Message Digests) Aplicações Práticas 36 Assinatura Digital Assinatura de Chave Simétrica Estratégia – uso de uma autoridade central que saiba de tudo e na qual todos confiem (BB - Big Brother). Cada usuário escolhe uma chave secreta e a leva para o BB. Somente Alice e BB conhecem a chave secreta de Alice, KA, e assim por diante. 37 Assinatura Digital Assinatura de Chave Simétrica Assinaturas digitais com Big Brother B – identidade de Bob RA – número aleatório escolhido por Alice t – timbre de hora para assegurar a atualidade KA(B, RA, t, P) – mensagem criptografada com a chave de Alice, KA KBB (A, t, P) – mensagem assinada 38 Assinatura Digital Problemas - Assinaturas de Chave Simétrica Todos têm de confiar no BB. O BB tem de ler todas as mensagens assinadas. 39 Assinatura Digital Assinaturas de Chave Pública Computador de Alice Chave privada de Alice, DA Linha de transmissão Chave pública de Bob, EB Computador de Bob Chave privada de Bob, DB Chave pública de Alice, EA Assinaturas digitais com o uso de chave pública. 40 Assinatura Digital Assinaturas de Chave Pública - Problemas relacionados ao ambiente no qual operam Bob só poderá provar que uma mensagem foi enviada por Alice enquanto DA permanecer secreta. Se Alice revelar sua chave secreta, o argumento deixará de existir - qualquer um poderá ter enviado a mensagem. O que acontecerá se Alice decidir alterar sua chave? 41 Assinatura Digital Criptografia Assimétrica (chave pública) Críticas Reúnem sigilo e autenticação Em geral, o sigilo não é necessário Cifragem da mensagem inteira é lenta Solução: assinar a mensagem sem cifrá-la completamente Sumários de Mensagens 42 Assinatura Digital Sumários de Mensagens (Message Digests) Uso de uma função hash unidirecional que extrai um trecho qualquer do texto simples e, a partir deste, calcula um string de bits de tamanho fixo. Função hash – geralmente denominada sumário de mensagens (MD). 43 Assinatura Digital • Hash - Algoritmo que faz o mapeamento de uma seqüência de bits de tamanho arbitrário para uma seqüência de bits de tamanho fixo menor, de forma que seja muito difícil encontrar duas mensagens produzindo o mesmo resultado hash. Função Hash - funciona como uma impressão digital de uma mensagem gerando, a partir de uma entrada de tamanho variável, um valor fixo pequeno: o digest ou valor hash. 44 Assinatura Digital MD - Propriedades importantes 1. Se P for fornecido, o cálculo de MD(P) será muito fácil. 2. Se MD(P) for fornecido, será efetivamente impossível encontrar P. 3. Dado P, não deve ser possível encontrar P´ tal que MD(P´) = MD(P). 4. Uma mudança na entrada de até mesmo 1 bit produz uma saída muito diferente. 45 Assinatura Digital Message Digests - Propriedades importantes Gera um sumário de tamanho fixo para qualquer comprimento de mensagem. Efetivamente impossível adivinhar a mensagem a partir do sumário. Efetivamente impossível encontrar outra mensagem que gere o mesmo sumário. Uma pequena mudança na mensagem altera bastante o sumário. 46 Função hash – Message Digests 47 Assinatura Digital - Geração 48 Assinatura Digital - Geração Geração da Assinatura Digital 1. entra-se com os dados a serem "digeridos" e o algoritmo MD gera um hash de 128 ou 160 bits (dependendo do algoritmo). 2. computada uma MD, criptografa-se o hash gerado com uma chave privada. 49 Assinatura Digital - Verificação Normalmente, 2m/2 (e não 2m) operações são suficientes para subverter um sumário de mensagens de m bits utilizando-se o ataque de aniversário. 50 Assinatura Digital - Verificação Verificação da Assinatura Digital 1. Executa-se a função MD (usando o mesmo algoritmo MD que foi aplicado ao documento na origem), obtendo-se um hash para aquele documento, e posteriormente, decifra-se a assinatura digital com a chave pública do remetente. 2. A assinatura digital decifrada deve produzir o mesmo hash gerado pela função MD executada anteriormente. 3. Se estes valores são iguais é determinado que o documento não foi modificado após a assinatura do mesmo, caso contrário o documento ou a assinatura, ou ambos foram alterados. Assinatura digital – informa apenas que o documento foi modificado, mas não o que foi modificado e o quanto foi modificado. 51 Assinatura Digital É importante perceber: a assinatura digital, como descrita no exemplo anterior, não garante a confidencialidade da mensagem. Qualquer um poderá acessá-la e verificá-la, mesmo um intruso (Eva), apenas utilizando a chave pública de Alice. 52 Assinatura Digital Obtenção de confidencialidade com assinatura digital: Alice 1. assina a mensagem, utilizando sua chave privada. 2. criptografa a mensagem novamente, junto com sua assinatura, utilizando a chave pública de Bob. Bob 1. ao receber a mensagem, deve decifrá-la com sua chave privada, o que garante sua privacidade. 2. "decifrá-la" novamente, ou seja, verificar sua assinatura utilizando a chave pública de Alice, garantindo assim sua autenticidade. 53 Assinatura Digital Exemplos de algoritmos que implementam Assinatura Digital: RSA El Gamal DSA 54 Assinatura Digital Algoritmo Descrição RSA •Como já mencionado, o RSA também é comutativo e pode ser utilizado para a geração de assinatura digital. •A matemática é a mesma: há uma chave pública e uma chave privada, e a segurança do sistema baseiase na dificuldade da fatoração de números grandes. 55 Assinatura Digital Algoritmo El Gamal Descrição •Também é comutativo, podendo ser utilizado tanto para assinatura digital quanto para gerenciamento de chaves. •Obtém sua segurança da dificuldade do cálculo de logaritmos discretos em um corpo finito. 56 Assinatura Digital Algoritmo DSA Descrição •O Digital Signature Algorithm, destinado unicamente a assinaturas digitais, foi proposto pelo NIST em agosto de 1991, para utilização no seu padrão DSS (Digital Signature Standard). •Adotado como padrão final em dezembro de 1994, trata-se de uma variação dos algoritmos de assinatura El Gamal e Schnorr. 57 Criptografia - Função Hash Exemplos de funções hash (MD) utilizadas em produtos e protocolos criptográficos: MD5 SHA-1 MD2 e MD4 58 Criptografia - Função Hash Funções MD5 Descrição •Função de espalhamento unidirecional inventada por Ron Rivest, do MIT, que também trabalha para a RSA Data Security. MD - Message Digest. •Produz um valor hash de 128 bits, para uma mensagem de entrada de tamanho arbitrário. •Inicialmente proposto em 1991, após alguns ataques de criptoanálise terem sidos descobertos contra a função Hash prévia de Rivest: a MD4. •Projetado para ser rápido, simples e seguro. Seus detalhes são públicos, e têm sido analisados pela comunidade de criptografia. •Foi descoberta uma fraqueza em parte do MD5, mas até agora ela não afetou a segurança global do algoritmo. •O fato dele produzir um valor hash de somente 128 bits é o que causa maior preocupação; é preferível uma função Hash que produza um valor maior. 59 Criptografia - Função Hash Funções Descrição SHA-1 •O Secure Hash Algorithm, função de espalhamento unidirecional inventada pela NSA, gera um valor hash de 160 bits, a partir de um tamanho arbitrário de mensagem. •Funcionamento interno muito parecido com o observado no MD4, indicando que os estudiosos da NSA basearam-se no MD4 e fizeram melhorias em sua segurança. •A fraqueza existente em parte do MD5, citada anteriormente, descoberta após o SHA-1 ter sido proposto, não ocorre no SHA-1. •Atualmente, não há nenhum ataque de criptoanálise conhecido contra o SHA-1. •Mesmo o ataque da força bruta torna-se impraticável, devido ao seu valor hash de 160 bits. •Não há provas de que, no futuro, alguém não possa descobrir como quebrar o SHA-1. 60