Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Dr. Anderson Silva UNIDADE III Criptografia e Certificação Digital Hash Criptografia Hash Função que garante integridade aos dados A alteração de qualquer bit da mensagem provoca um código hash diferente do original Criptografia H H(M)M M = mensagem de tamanho variável H = função hash H(M) = resultado hash de tamanho fixo (código) Código - Resultado hash Gerando hashes Vamos criar 4 arquivos para entender a validação de integridade usando hashes msg.txt = aula de criptografia msg1.txt = aula de criptografia msg2.txt = aula de criptografia2 msg3.txt = Aula de criptografia msg.txt e msg1.txt são iguais Perceba diferenças sutis em msg2.txt e msg3.txt em relação aos dois primeiros Exemplo 1 Gerando hashes Vamos gerar os hashes dos 4 arquivos inicialmente usando o algoritmo MD5 com 128 bits O MD5 é antigo e inseguro, mas serve para gerar um hash pequeno e fácil de entender Vamos gerar os hashes dos 4 arquivos, agora usando o algoritmo SHA512 O SHA-3 com 512 bits é o padrão atual para geração de hashes Exemplo 1 Comandos openssl dgst -md5 msg.txt openssl dgst -md5 msg1.txt openssl dgst -md5 msg2.txt openssl dgst -md5 msg3.txt Comandos openssl dgst –sha512 msg.txt openssl dgst –sha512 msg1.txt openssl dgst –sha512 msg2.txt openssl dgst –sha512 msg3.txt Gerando hashes Os hashes gerados Exemplo 1 Mensagem MD5 msg.txt b9759bf29e48f26848dc92e6bff98e39 msg1.txt b9759bf29e48f26848dc92e6bff98e39 msg2.txt 48d9a82c98b7010ba6f858dd1b5a4f52 msg3.txt 768f945d596dc52357a47260ceea9123 msg.txt e msg1.txt possuem conteúdo idêntico Por isso também possuem hashes iguais msg2.txt possui o número 2 no fim do conteúdo Por isso o hash é diferente dos demais msg3.txt tem a primeira letra maiúscula Por isso o hash é diferente dos demais O hash MD5 possui 32 caracteres hexadecimais (perceba as letras vão só até f) Dois caracteres decimais equivalem a 1 byte Portanto, o MD5 tem 16 bytes = 128 bits Gerando hashes Exemplo 1 Mensagem Sha512 msg.txt a9afe52b33151adaa23b46790497d16cb02ed96699a1cf0ce1a4dfb762bf0f0b8 fa5a98fc6e95f4a3ac509b03929811bba403285c1239e2ecbffb6f2f1968ab8 msg1.txt a9afe52b33151adaa23b46790497d16cb02ed96699a1cf0ce1a4dfb762bf0f0b8 fa5a98fc6e95f4a3ac509b03929811bba403285c1239e2ecbffb6f2f1968ab8 msg2.txt 8a2cff62bb07f4192d2af0fd01984e2678c164dd85c655e23bde967ed4b50b4e6 772943bfbbe722ddc9054b3f77c01b0947eb3f28738a5ce550cb4f40f7aece5 msg3.txt aba95d5fe1a096ab4348e06270af868deffcbe3c9dd9423dcdb64d829ef7377f0 08f6d565e2d50b2ac3955447fee0bb90e9df7e50db537def822580501ec23a5 As mesmas considerações do MD5 valem para o SHA512 O hash SHA512 possui 128 caracteres hexadecimais Dois caracteres decimais equivalem a 1 byte Portanto, o SHA512 tem 128 bytes = 512 bits Hash Propriedades Avalanche completa: mudar 1 bit da entrada altera cerca de metade dos bits de saída Balanço perfeito: é inviável prever qualquer bit de saída Inversível: do hash não é possível retornar à mensagem original (mesmo parcialmente) Criptografia Mensagem H H(M) Sentido da função hash Mensagem H H(M) Fonte: autoria própria Hash Algoritmos de hash Padrão usado SHA-3 (NIST 2012) Criptografia Algoritmo de Hash1 Comprimento (bits) Velocidade (Kb/s) GOST Hash 256 11 MD4 - Message Digest 4 128 236 MD5 - Message Digest 5 128 174 N-HASH (12 rounds) 128 29 N-HASH (15 rounds) 128 24 RIPE-MD 128 182 RIPE-MD-160 160 SHA - Secure Hash Algorithm 160 75 SHA-2 224, 256, 384, 512 SHA-3 512 SNEFRU (4 passos) 128 48 SNEFRU (8 passos) 128 23 WHIRLPOOL (ISO/IEC 10118- 3:2004) 512 Fonte: autoria própria Hash O hash é de tamanho fixo independentemente do tamanho da mensagem de entrada Colisão Mensagens diferentes com o mesmo hash Difícil de obter, mas existem Possibilita assinaturas falsas Criptografia H H(M1)M1 H H(M2)M2 Fonte: autoria própria Ao contrário de um processo de criptografia, no qual um texto legível mantém quase o mesmo tamanho do texto cifrado, em um cálculo hash, independente do tamanho da mensagem, o tamanho do código hash gerado será sempre o mesmo. Quais a vantagem e a desvantagem? a) Vantagem: evitar a divulgação do tamanho original da mensagem. Desvantagem: há códigos hash que não podem ser trocados por serem muito pequenos. b) Vantagem: um código hash reduzido pode ser enviado facilmente com a mensagem. Desvantagem: pode haver colisões (códigos hash iguais para mensagens diferentes). c) Vantagem: um código hash de tamanho fixo é mais rápido de ser gerado. Desvantagem: há códigos hash que não podem ser trocados por serem muito pequenos. d) Vantagem: evitar a divulgação do tamanho original da mensagem. Desvantagem: pode haver colisões (códigos hash iguais para mensagens diferentes). e) Vantagem: um código hash reduzido pode ser enviado facilmente com a mensagem. Desvantagem: há códigos hash que não podem ser trocados por serem muito pequenos. Interatividade Ao contrário de um processo de criptografia, no qual um texto legível mantém quase o mesmo tamanho do texto cifrado, em um cálculo hash, independente do tamanho da mensagem, o tamanho do código hash gerado será sempre o mesmo. Quais a vantagem e a desvantagem? a) Vantagem: evitar a divulgação do tamanho original da mensagem. Desvantagem: há códigos hash que não podem ser trocados por serem muito pequenos. b) Vantagem: um código hash reduzido pode ser enviado facilmente com a mensagem. Desvantagem: pode haver colisões (códigos hash iguais para mensagens diferentes). c) Vantagem: um código hash de tamanho fixo é mais rápido de ser gerado. Desvantagem: há códigos hash que não podem ser trocados por serem muito pequenos. d) Vantagem: evitar a divulgação do tamanho original da mensagem. Desvantagem: pode haver colisões (códigos hash iguais para mensagens diferentes). e) Vantagem: um código hash reduzido pode ser enviado facilmente com a mensagem. Desvantagem: há códigos hash que não podem ser trocados por serem muito pequenos. Resposta Problemas em hashes Colisão Exemplo do macaco escritor Blockchain: https://andersbrownworth.com/blockchain Necessidade de autenticação Exemplo 2 Hash Message Authentication Code (MAC) MAC = Proteção do código hash com criptografia simétrica Baixo nível de autenticação do autor Integridade Criptografia Entidade A K E MA Entidade B H Igual?H H K D MA H MA H(M) H(M) H H(M) = s/n MAC MAC Fonte: autoria própria Hash Hash-based Message Authentication Code (HMAC) HMAC = Proteção que junta hash e chave simétrica Pode ser criado de várias formas Baixo nível de autenticação do autor Integridade Criptografia Fonte: autoria própria Enviei uma mensagem + hash (ambos sem criptografia). É possível dizer que: a) Um atacante pode descobrir se há colisão no hash rapidamente. b) Se o atacante alterar a mensagem e enviar junto com o hash original, ninguém notará pois o hash original estava sem criptografia. c) A mensagem contém integridade + autenticação. d) Se o atacante alterar a mensagem, gerar um novo hash e enviá-los juntos, ninguém notará pois o hash original estava sem criptografia. e) Se o atacante não alterar a mensagem, gerar um novo hash e enviá-los juntos, ninguém notará pois o hash original estava sem criptografia. Interatividade Enviei uma mensagem + hash (ambos sem criptografia). É possível dizer que: a) Um atacante pode descobrir se há colisão no hash rapidamente. b) Se o atacante alterar a mensagem e enviar junto com o hash original, ninguém notará pois o hash original estava sem criptografia. c) A mensagem contém integridade + autenticação. d) Se o atacante alterar a mensagem, gerar um novo hash e enviá-los juntos, ninguém notará pois o hash original estava sem criptografia. e) Se o atacante não alterar a mensagem, gerar um novo hash e enviá-los juntos, ninguém notará pois o hash original estavasem criptografia. Resposta Assinatura Digital Criptografia Assinatura digital Imagine um contrato Só vale se não tiver rasuras (integridade) Só vale se estiver assinado (autenticação) Assinatura digital = autenticação + integridade Criptografia Fonte: https://pixabay.com/pt/illustrations/contrato-consulta-caneta-assinatura-1332817/ Assinatura digital Emissor Criptografa com sua chave privada, o código hash da mensagem (assinatura) Mensagem assinada é composta pela mensagem e pelo bloco de assinatura Criptografia A = Emissor H EA MA AssA B = Receptor H H(M) DA = s/ n KPRIA KPUBA H(M)H(M) MA AssA MA Fonte: autoria própria Assinatura digital Receptor Produz o código hash da mensagem recebida e compara com o obtido pela decodificação da assinatura recebida Se forem iguais, a assinatura é aceita como válida Criptografia A = Emissor H EA MA AssA B = Receptor H H(M) DA = s/ n KPRIA KPUBA H(M)H(M) MA AssA MA Fonte: autoria própria Assinatura digital Vantagens Integridade Autenticação de mensagem (autoria) Dose razoável de irretratabilidade de transmissão Junto com criptografia pode garantir confidencialidade Autenticação e integridade no hash (menor que mensagem) Criptografia Assinatura digital Propriedades Deve ser relativamente fácil produzir a assinatura digital Deve ser relativamente fácil verificar a assinatura digital, inclusive por terceiros Deve ser computacionalmente inviável falsificar uma mensagem assinada digitalmente Deve ser possível o armazenamento da mensagem assinada Criptografia Assinatura digital Desvantagens Não há comprovação temporal Afeta documentos eletrônicos assinados digitalmente Problema temporal da revogação da chave Vulnerável a ataques de “replay” Criptografia Prática de assinatura digital Assinar msg.txt gerando assinatura.rsa Algoritmo = SHA512 PUBKEY2.PEM = chave pública RSA de 2048 bits PRIVKEY2.PEM = chave privada RSA de 2048 bits Exemplo 3 Comando openssl dgst –sha512 -sign PRIVKEY2.PEM -out assinatura.rsa msg.txt Prática de assinatura digital O arquivo assinatura.rsa é a assinatura digital de msg.txt É o hash de msg.txt encriptado com a chave privada PRIVKEY2.PEM Edite assinatura.rsa com um editor de texto Exemplo 3 Prática de assinatura digital Verifique se a assinatura digital contida em assinatura.rsa é válida Com um só comando compare o hash assinado com o hash da mensagem original (msg.txt) Exemplo 3 Marque a alternativa que especifica corretamente uma assinatura digital de uma mensagem "M" enviada da usuária Alice para o usuário Bob: a) (1) Alice gera uma mensagem "HM". (2) encripta "HM" com "M" gerando "ASS". (3) Alice envia "ASS" para Bob. b) (1) Alice encripta "M" com a chave pública de Alice gerando "HM". (2) encripta "HM" com a chave pública de Bob gerando "ASS". (3) Alice envia a chave pública + "M" para Bob. c) (1) Alice encripta "M" com a chave pública de Bob gerando "HM". (2) Gera um hash de "HM" gerando "ASS". (3) Alice envia "ASS" + "HM" para Bob. d) (1) Alice encripta "M" o hash "HM". (2) Gera uma chave privada "ASS" a partir de "HM". (3) Alice envia "ASS" + "HM" para Bob. e) (1) Alice gera um hash "HM" da mensagem "M". (2) encripta "HM" com a chave privada de Alice gerando "ASS". (3) Alice envia "M" + "ASS" para Bob. Interatividade Marque a alternativa que especifica corretamente uma assinatura digital de uma mensagem "M" enviada da usuária Alice para o usuário Bob: a) (1) Alice gera uma mensagem "HM". (2) encripta "HM" com "M" gerando "ASS". (3) Alice envia "ASS" para Bob. b) (1) Alice encripta "M" com a chave pública de Alice gerando "HM". (2) encripta "HM" com a chave pública de Bob gerando "ASS". (3) Alice envia a chave pública + "M" para Bob. c) (1) Alice encripta "M" com a chave pública de Bob gerando "HM". (2) Gera um hash de "HM" gerando "ASS". (3) Alice envia "ASS" + "HM" para Bob. d) (1) Alice encripta "M" o hash "HM". (2) Gera uma chave privada "ASS" a partir de "HM". (3) Alice envia "ASS" + "HM" para Bob. e) (1) Alice gera um hash "HM" da mensagem "M". (2) encripta "HM" com a chave privada de Alice gerando "ASS". (3) Alice envia "M" + "ASS" para Bob. Resposta Envelopes digitais Representam um sistema criptográfico que consiste basicamente de duas partes: Mensagem legível cifrada com uma chave simétrica Ks Chave simétrica Ks cifrada com a chave pública do destinatário Envelopes digitais utilizam ambos os esquemas de criptografia: simétrica e assimétrica Criptografia Envelopes digitais De um texto claro Criptografia Remetente A – Geração do Envelope Destinatário B – Abertura do Envelope KPUBAKPRIA EnvB MA KPUBB Envelope Digital ES CA Ks EA KPUBBKPRIB EnvB CA DA ES Ks MA Fonte: autoria própria Envelopes digitais Chave simétrica Ks é usada só uma vez Remetente precisa da chave pública do destinatário Envelopes digitais são comumente empregados em serviços específicos de envio e recebimento de mensagens eletrônicas Criptografia Envelopes digitais De uma assinatura Confidencialidade, integridade e autenticação Não é necessária a troca de chaves secretas Criptografia Remetente A – Geração da Mensagem Assinada Digitalmente e Envelopada Destinatário B – Abertura do Envelope e Verificação da Assinatura Digital KPUBAKPRIA EnvB KPUBB Envelope Digital ES CA Ks EA KPUBBKPRIB EnvB CA DA ES Ks MA AssA MA AssA Gerar Assinatura Digital Verificar Assinatura Digital Fonte: autoria própria Envelopes digitais Maior vantagem: podem ser endereçados a múltiplos destinatários! Criptografia Entidade A EnvB MA KPUBB ES CA Ks EA KPUBC EA EnvC Criptograma Envelope digital de C Envelope digital de B Fonte: autoria própria Envelopes digitais Múltiplos destinatários Se fosse utilizado o processo de cifrar a mensagem com a chave pública de cada destinatário, várias cópias da mesma mensagem deveriam ser cifradas, o que tornaria o sigilo ainda mais custoso em termos de processamento computacional devido ao baixo desempenho dos esquemas de criptografia assimétrica Criptografia Envelopes digitais Quem usa? SPB – Sistema de Pagamentos Brasileiro S/MIME – Secure/Multipurpose Internet Mail Extensions SET – Secure Electronic Transaction PKCS#7 Formato “PKCS#7 EnvelopedData” ou Formato “PKCS#7 SignedAndEnvelopedData” CMS Cryptographic Message Syntax Standard Criptografia Observe na figura: o criptograma "Ca" + os envelopes digitais "Envb" e "Envc" serão enviados aos usuários "B", "C" e "D". Posso dizer que: a) O usuário "D" não conseguirá abrir os envelopes digitais de "B" e "C", porém "D" pode abrir o criptograma "Ca" com a "Kpuba“. b) A mensagem "Ma" resultante da decifração do criptograma "Ca" feita por "B" será diferente da mensagem "Ma" resultante da decifração do criptograma "Ca" feita por "C“. c) "A" é capaz de decifrar o envelope digital "Envc", pois foi o próprio "A" quem o gerou. d) Esse esquema de envelope digital garante integridade. e) O conteúdo decifrado dos envelopes digitais de "B" e "C" é igual. Interatividade Observe na figura: o criptograma "Ca" + os envelopes digitais "Envb" e "Envc“ serão enviados aos usuários "B", "C" e "D". Posso dizer que: a) O usuário "D" não conseguirá abrir os envelopes digitais de "B" e "C", porém "D" pode abrir o criptograma "Ca" com a "Kpuba“. b) A mensagem "Ma" resultante da decifração do criptograma "Ca" feita por "B" será diferente da mensagem "Ma" resultante da decifração do criptograma "Ca" feita por "C“. c) "A" é capaz de decifrar o envelope digital "Envc", pois foi o próprio "A" quem o gerou. d) Esse esquema de envelope digital garante integridade. e) O conteúdo decifrado dos envelopes digitais de "B" e "C" é igual. Resposta BARANAUSKAS, J. A. Funções Lógicas e Portas Lógicas. Departamento de Computaçãoe Matemática – FFCLRP-USP. Disponível em: https://www.docsity.com/pt/ab-funcoes-logicas- portas-logicas/4909252/. Acesso em: 12 jun. 2020. BISHOP, Matt. Computer Security: Art and Science. 2004. Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile Request for Comments: 3280 - R. Housley - RSA Laboratories - W. Polk – NIST - W. Ford – VeriSign - D. Solo – Citigroup - April 2002 - http://www.ietf.org/rfc/rfc3280.txt?number=3280 ITU-T Recommendation X.509 (1997 E): Information Technology – Open Systems Interconnection – The Directory: Authentication Framework, June 1997. Referências NIST Special Publication 800-33 - Computer Security: Undelying Technical Models for Information Technology Security - NIST, Dec, 2001. SEWAYBRIKER, R. Livro-texto do curso CST em Segurança da Informação - UNIP, São Paulo, 2019, p. 178. STALLINGS, William. Computer Security: Principles and Practice. 3rd Edition. Pearson Education, 2014. TANENBAUM, A. S. Redes de Computadores. 4. ed. Editora Campus. Referências ATÉ A PRÓXIMA!
Compartilhar