Prévia do material em texto
3 Códigos de Autenticação de Mensagens e Funções Hash Olá, estudante! Nesta semana, vamos discutir acerca dos códigos de Autenticação de Mensagens (MACs) os quais são utilizados para garantir a integridade de mensagens enviadas em um canal inseguro. Um dos usos de MACs é a HMAC, que utiliza funções de resumo para a geração de códigos de autenticação. Também abordaremos as funções de hash criptográficas de modo a garantir que alguma comunicação ou um arquivo não seja adulterado por meio de uma verificação dos hashes criados antes e depois da transmissão de dados. Uma função de hash criptográfico é conhecida como hash, sendo um algoritmo matemático que transforma qualquer bloco de dados em uma série de caracteres. Objetivos de aprendizagem Ao final dessa semana, você deverá ser capaz de: • Compreender as funções de hash, as quais fornecem integridade e os códigos de autenticação de mensagens que combinam um hash com uma chave secreta; • Entender que um algoritmo MAC recebe como entrada uma chave secreta e uma mensagem de tamanho arbitrário para ser autenticado, e dá como saída uma MAC (tag/etiqueta); • Compreender que o valor do MAC protege tanto a integridade dos dados da mensagem quanto garante autenticidade, o que permite aos que possuem a chave secreta (verificadores) detectar se houve mudanças no conteúdo na mensagem. Orientação de estudos Para entender o conteúdo apresentado nesta semana, assista à videoaula do professor, em seguida, faça a leitura dos textos-base indicados para reforçar o entendimento do assunto. A seguir assista aos vídeos de apoio e leia os textos de apoio para complementar a sua compreensão do assunto abordado na semana. Lembre-se de realizar a Atividade Avaliativa desta semana. Aproveite a semana e tenha bons estudos! Revisitando Conhecimentos Antes de explorarmos o assunto dessa semana, que tal acessar o conteúdo a seguir: Macs, Hashs e Assinaturas | Microsoft - Desenvolvimento de Aplicativos Link: https://learn.microsoft.com/pt-br/windows/uwp/security/macs-hashes-and-signatures Códigos de autenticação de mensagens e funções Hash ROTEIRO O que é autenticação de mensagens? Requisitos da segurança de mensagens Funções de autenticação de mensagens Por que autenticação de mensagens? https://learn.microsoft.com/pt-br/windows/uwp/security/macs-hashes-and-signatures Código de autenticação de mensagens O QUE É AUTENTICAÇÃO DE MENSAGENS? A autenticação de mensagem é um mecanismo ou serviço usado para verificar a integridade de uma mensagem. A autenticação de mensagem garante que os dados recebidos sejam exatamente como enviados (ou seja, não contenham modificação, inserção, exclusão ou reprodução) e que a suposta identidade do remetente seja válida. REQUISITOS DA SEGURANÇA DE MENSAGENS ✔ Divulgação ✔ Análise de tráfego ✔ Modificação de conteúdo ✔ Modificação de sequência ✔ Modificação de tempo ✔ Repúdio da fonte ✔ Repúdio de destino POR QUE AUTENTICAR MENSAGENS? Utilizamos autenticação para: ➢ proteger a integridade de uma mensagem ➢ validar a identidade do originador ➢ não repúdio de origem (resolução de disputas) Trudy pode modificar a mensagem Chave compartilhada K para gerar a mensagem autenticada É simples. Trudy M M’ Alice Bob PROTEGER A INTEGRIDADE COM MAC Trudy não pode modificar o MAC quando não conhece o K Chave compartilhada K para gerar a mensagem autenticada AUTENTICAÇÃO DE MENSAGENS Trudy M MAC (k,M) mac M’ MAC?? Alice Bob K= ? MAC=? Key: K Key: K Apenas Alice e Bob conhecem k. Um deles envia M. Maria Alice Bob Key: K M MAC (k,M) Key: K INTEGRIDADE COM HASH PROTEGER A INTEGRIDADE COM MAC Sem chave compartilhada Não podemos enviar o hash com a mensagem para servir de autenticação de mensagem, pois Trudy pode alterar a mensagem e recalcular o hash. O uso de hash precisa de um procedimento mais apropriado para garantir a integridade FUNÇÕES DE AUTENTICAÇÃO DE MENSAGENS Funções Hash Uma família de hash é uma tupla (X, Y, K, H), onde: Apenas Alice e Bob conhecem k. Um deles envia M. Maria Alice Bob Key: K M MAC (k,M) Key: K Trudy M h (M) mac M’ H(M) Alice Bob Forjar M’ e Computar h(M’) ✔ X é um conjunto de mensagens possíveis ✔ Y é um conjunto finito de possíveis resumos de mensagens ✔ K é o espaço-chave ✔ Para cada K∈K, existe uma função hash hk ∈H. Cada hk : X →Y Limitações de Função de Hash Exige um canal confiável para transmitir o hash de uma mensagem ✔ Qualquer um pode calcular o valor de hash de uma mensagem, pois a função de hash é pública Como resolver isso? ✔ Utilizar mais de uma função hash ✔ Utilizar uma chave POR QUE AUTENTICAÇÃO DE MENSAGENS? A autenticação utiliza a criptografia convencional Desta forma, somente o remetente e o destinatário devem compartilhar uma chave Na autenticação de mensagem sem criptografia ✔ Uma etiqueta de autenticação é gerada e anexada a cada mensagem Código de autenticação de mensagem ✔ Calcular o MAC em função da mensagem e da chave MAC = F(K, M) CÓDIGO DE AUTENTICAÇÃO DE MENSAGENS MAC é um pequeno código de comprimento fixo gerado usando chave (K) e a mensagem (M) ✔ MAC = C (K, M) Um código de autenticação de mensagem (MAC) é um algoritmo que requer o uso de uma chave secreta. Um MAC recebe uma mensagem de comprimento variável e uma chave secreta como entrada e produz um código de autenticação. Um destinatário de posse da chave secreta pode gerar um código de autenticação para verificar a integridade da mensagem. O código gerado não é reversível. Um MAC O MAC é anexado à mensagem como uma assinatura. No lado do receptor é calculado um novo MAC, que é comparado com o MAC original. MAC fornece garantia de que a mensagem é inalterada e vem do remetente. Ao contrário da função Hash, pode haver mais de um simples texto que pode gerar o mesmo MAC. MAC é uma soma de verificação (checksum) criptográfica ✔ Condensa uma mensagem de comprimento variável M usando, uma chave secreta K para um autenticador de tamanho fixo ✔ É uma função de muitos para um ✔ Potencialmente muitas mensagens têm o mesmo MAC ✔ Porém, encontrar isso é muito muito difícil! MAC e a criptografia podem prover autenticação ✔ Porque muitas vezes apenas a autenticação é necessária ● Muitas vezes também é necessário persistir a autenticação por mais tempo em relação à criptografia (por exemplo, para manipular um arquivo depois de autenticado em um sistema) Utilizamos um MAC baseado em hash porque essas funções são rápidas de calcular Códigos de funções hash são amplamente divulgados Precisamos de um hash incluindo uma chave junto com a mensagem Originalmente o hash não tem chave e isso levou ao desenvolvimento do: HMAC HMAC ✔ É um código de autenticação de mensagens baseado em hash ✔ Desenvolvido por Mihir Bellare, Ran Canetti e Hugo Krawczyk em 1996, e especificado como padrão da Internet no RFC2104 ✔ Utiliza a função de hash criptográfica combinada com uma chave secreta ✔ Utiliza qualquer função hash ✔ MD5, SHA-1,Whirlpool, HMAC-MD5, HMAC-SHA1 etc. ✔ Muitas delas utilizadas nos protocolos IPsec e TLS Usa duas passagens de computação de hash ✔ A chave secreta é usada primeiro para derivar duas chaves - interna e externa. ✔ A primeira passagem do algoritmo produz um hash interno derivado da mensagem e da chave interna ✔ A segunda passagem produz o código HMAC final derivado do resultado do hash interno e da chave externa. Assim, o algoritmo fornece melhor imunidade contra-ataques de extensão decomprimento. CONCLUSÃO Um Hash é usado para garantir a integridade dos dados Um MAC garante integridade e autenticação Um Hash recebe uma única entrada – uma mensagem e produz um resumo da mensagem Um algoritmo MAC recebe duas entradas - uma mensagem, uma chave secreta e produz um MAC Um algoritmo HMAC é simplesmente um tipo específico de algoritmo MAC que usa um algoritmo de hash internamente para gerar o MAC REFERÊNCIAS 1. https://pt.wikipedia.org/wiki/HMAC#:~:text=O%20HMAC%20usa%20d uas%20passagens,mensagem%20e%20da%20chave%20interna 2. Criptografia e Segurança de Redes: Princípios e Práticas - Willian Stallings PERGUNTA 1 Acerca dos códigos de autenticação de mensagens e suas características é correto afirmar que: o um destinatário de posse da chave secreta não pode gerar um código de autenticação para verificar a integridade da mensagem. o a ordem na qual a sequência de verificação de quadros e as funções de criptografia são executadas não é crítica para a autenticação. o um meio de formar um MAC é combinar uma função hash criptográfica de alguma forma com uma chave pública. o a autenticação de mensagem é um mecanismo ou serviço usado para verificar a integridade de uma mensagem. o o MAC fornece uma assinatura digital porque o remetente e o destinatário compartilham a mesma chave. A autenticação de mensagens ajudar a proteger as duas entidades que trocam mensagens, embora não proteja as duas partes comunicantes uma contra a outra. PERGUNTA 1 Questão referente ao Texto-base 1 - Criptografia e Segurança de Redes: princípios e práticas (Capítulo 1) | William Stallings Técnicas algorítmicas são utilizadas por aplicações para gerar número aleatório. Assinale a alternativa que julgar correta: o PRNG é um algoritmo que é usado para produzir uma sequência de bits muito pequena. o Os algoritmos são determinísticos, produzindo sequências de números que não são estatisticamente aleatórios. o Os algoritmos não podem ser determinísticos. o Um gerador de número aleatório verdadeiro não usa uma fonte conhecida como fonte de entropia. o Um gerador de número aleatório toma como entrada um valor fixo chamado de semente. Você acertou!!! Esta é a alternativa correta!!! Para gerar números verdadeiramente aleatórios é preciso utilizar sistemas medições de processos não- determinísticos, de modo que tais medições sejam possíveis de serem repetidas. Se o algoritmo realmente for bom, as sequências resultantes vão passar por muitos testes de aleatoriedade, produzindo números que são chamados de números pseudoaleatórios. PERGUNTA 2 Questão referente ao Texto-base 2 - Criptografia e Segurança de Redes: Princípios e Práticas (Seção 11.1 a 11.5) | Willian Stallings O MAC, que é um código de autenticação de mensagens, apresenta como característica: o É conhecida como uma função de hash não chaveada. o Uma função da mensagem e uma chave secreta que produz um valor de tamanho variável. o A segurança de uma função MAC baseada em uma função de hash depende da força criptográfica da função hash. o O algoritmo criptográfico mais seguro que usa uma função de hash. o Um mecanismo usado para garantir a disponibilidade dos dados. O código MAC é conhecido como função de hash chaveada, sendo utilizado para garantir a integridade dos dados. Aprofundando o tema • Criptografia - Hashes | Bóson Treinamentos • Funções Hash e Criptografia | Programando com Nilo Menezes • Texto de apoio: Códigos de Autenticação de Mensagem e o padrão SHA-3 • Aproveite para aprofundar seus conhecimentos acessando os materiais complementares indicados e aproveite para compartilhar neste fórum links para outros materiais importantes sobre o assunto. https://ava.univesp.br/bbcswebdav/pid-1581163-dt-content-rid-18594871_1/courses/COM440-2024S2B1-T001/COM440/S3-aprofundando.html#tab-1 https://ava.univesp.br/bbcswebdav/pid-1581163-dt-content-rid-18594871_1/courses/COM440-2024S2B1-T001/COM440/S3-aprofundando.html#tab-2 https://ava.univesp.br/bbcswebdav/pid-1581163-dt-content-rid-18594871_1/courses/COM440-2024S2B1-T001/COM440/pdf/semana3_almada-codigos-2014.pdf ATIVIDADES PRÁTICAS Agora é hora de colocar em prática os conhecimentos adquiridos. Esta é uma atividade complementar para que você possa expandir seu aprendizado. Utilize os simuladores destacados, a seguir, para testar a geração de hashes a partir de strings, utilizando diversos algoritmos. SHA-256 hash calculator MD5 hash calculator Hash Calculator Online Semana 3 - Fórum Temático - Hashes criptográficos No contexto da segurança em sistemas de votação, discuta com seus colegas a importância de hashes criptográficos no sistema de votação da urna eletrônica brasileira. Para isso, acesse o link: https://www.tse.jus.br/eleicoes/urna-eletronica/seguranca-da-urna/hash ATIVIDADE AVALIATIVA PERGUNTA 1 Funções de hash podem ser usadas para ______ e também para ______. Outra aplicação importante, similar à aplicação de autenticação de mensagem é a ______. No caso da assinatura digital, o valor do ______ da mensagem é encriptado com a chave ______ do usuário. A alternativa que melhor preenche as lacunas é: o detecção de intrusão, vírus, criptografia assimética, hash, pública. o detecção de intrusão, vírus, criptografia privada, código, pública. o detecção de intrusão, vírus, assinatura digital, hash, privada. o detecção de intrusão, vírus, assinatura digital, código, privada. o detecção de intrusão, vírus, criptografia pública, hash, pública. PERGUNTA 2 A autenticação de mensagens possibilita a análise da integridade delas, a fim de garantir a identificação do emissor e o recebimento dos dados da mesma forma como foram enviados (sem modificação, inserção, exclusão ou reprodução). Assinale a alternativa que apresenta corretamente o uso da autenticação de mensagens. o a. Combinar cada um dos bits do texto com um fluxo de bits pseudoaleatórios. https://xorbin.com/tools/sha256-hash-calculator https://xorbin.com/tools/md5-hash-calculator https://www.pelock.com/products/hash-calculator https://www.tse.jus.br/eleicoes/urna-eletronica/seguranca-da-urna/hash o b. Quebrar as mensagens de forma que fiquem em blocos do mesmo tamanho. o c. Garantir que o emissor não negue a geração e a assinatura do documento. o d. Fazer o uso da mesma chave nas duas partes que se comunicam. o e. Trabalhar com os princípios de substituição e permutação. PERGUNTA 3 O HMAC é um tipo específico de código de autenticação de mensagem que envolve uma função hash criptográfica e uma chave criptográfica secreta. Acerca do projeto HMAC, julgue as afirmações a seguir: I. Dentre os objetivos do projeto HMAC podemos listar o uso e tratamento das chaves de uma forma mais simples e usar sem modificações, as funções de hash disponíveis, em particular cujos códigos sejam disponíveis e de forma gratuita. II. A segurança de qualquer função MAC baseada em uma função de hash não depende da força criptográfica da função hash. É incomum um ataque de força bruta contra HMACs. III. A força criptográfica do HMAC depende do tamanho da chave secreta utilizada. IV. O HMAC utiliza duas passagens de computação de hash. Primeiro a chave secreta é utilizada para derivar duas chaves (uma interna e outra externa). A primeira passagem produz um hash interno derivado da mensagem e da chave interna. A segunda passagem produz o código HMAC final que deriva do resultado do hash interno e da chave externa. Das afirmações listadas acima, as que estão corretas são: o apenas II e IV. o apenas I e II. o apenas I, III e IV. o apenas II e III. o apenas I e III. PERGUNTA 4 Os ataques de força bruta são uma técnica comum de invasão em sistemas de segurança, que envolve a tentativa de todas as combinações possíveisde uma senha ou chave de criptografia, até que uma correspondência seja encontrada. As funções de hash criptográficas são frequentemente utilizadas para proteger senhas, chaves e outros dados confidenciais. No entanto, essas funções também são vulneráveis a ataques de força bruta. Embora as funções de hash criptográficas tenham sido projetadas para serem computacionalmente difíceis de inverter, é possível usar ataques de força bruta para adivinhar a senha ou chave original, testando sistematicamente todas as possíveis combinações, até que uma correspondência seja identificada. Com base nesses aspectos, assinale a alternativa que descreve os motivos pelos quais as funções de hash criptográficas são vulneráveis a ataques de força bruta. o a. Logo, os algoritmos de funções de hash criptográficas não são projetados para a proteção contra ataques de força bruta. o b. As funções de hash são projetadas para serem computacionalmente fáceis de inverter após serem criptografadas. o c. Fundamentalmente, os ataques de força bruta podem contornar a autenticação do usuário nas funções hash. o d. Com efeito, os ataques de força bruta podem testar sistematicamente todas as possíveis combinações de entrada até identificar uma correspondência. o e. Todas as senhas e as chaves protegidas por funções de hash criptográficas são geralmente curtas e fáceis de adivinhar. PERGUNTA 5 O TRNG e o PRNG englobam dois tipos de algoritmos tipo RNG (Random Number Generator) que produzem números aleatórios, agrupando-os em números com distintos tipos de entradas imprevisíveis, cuja sequência gerada dificilmente se repete nas solicitações ao algoritmo RNG. Isso se deve à saída de um RNG que se baseia em uma entrada que constantemente muda (variável e imprevisível). Portanto, são números não repetíveis. Considerando as informações apresentadas, analise as afirmativas a seguir e assinale (V) para a(s) Verdadeira(s) e (F) para a(s) Falsa(s). I. ( ) OS PRNGs são geradores de números pseudoaleatórios que produzem sequências que seguem uma distribuição uniforme e baseada em uma expressão matemática. II. ( ) Uma das condições necessárias para que um PRNG seja adequado para realizar uma criptografia é que ele gere saídas que contenham 1s e 0s em quantidades similares. III. ( ) Os PRNGs são verdadeiros geradores de números aleatórios, cujo funcionamento é mais indicado para funções sensíveis de segurança, como a criptografia. IV. ( ) Os TRNGs se adequam à grande parte das aplicações, porém são focos de ataques à segurança criptográfica. Para resolver a problemática, usam-se os TRNGs. Assinale a alternativa que apresenta a sequência correta. o a. F - V - V - F o b. F - F - F - V. o c. V - V - F - F. o d. V - F - F - V. o e. V - F - F - F. PERGUNTA 6 O Secure Hash Algorithm (SHA) é uma família de algoritmos criptográficos utilizados para gerar resumos criptográficos de mensagens ou dados digitais. O objetivo principal do SHA é produzir um valor hash ou resumo criptográfico que seja peculiar e possa ser usado para verificar a integridade dos dados. Os valores gerados pelo SHA são geralmente representados como uma sequência de dígitos hexadecimais. O SHA é amplamente empregado em sistemas de segurança da informação, como assinatura digital, autenticação de mensagens, verificação de arquivos e senhas de usuários. Existem diferentes variantes do SHA, como SHA-1, SHA-2 e SHA-3, com diferentes tamanhos de chave e complexidades de cálculo para adequar a diferentes requisitos de segurança. Nesse sentido, assinale a alternativa correta sobre o SHA-512. o a. Técnica de criptografia simétrica utilizada para criptografar dados confidenciais. o b. Algoritmo de criptografia de chave pública utilizado em todo o mundo. o c. Função de hash criptográfica que produz um valor de hash de 512 bits. o d. Técnica de engenharia social usada para obter informações confidenciais. o e. Técnica de criptoanálise empregada para quebrar senhas e chaves de criptografia. PERGUNTA 7 Qualquer mecanismo de autenticação de mensagem ou assinatura digital possui dois níveis de funcionalidade (nível mais alto e nível mais baixo). Acerca das classes dos tipos de funções que podem ser usadas para produzir um autenticador, julgue as afirmações a seguir: I. O MAC é uma função da mensagem e uma chave secreta que produz um valor de tamanho fixo, que serve como autenticador. II. A função de hash relaciona uma mensagem de tamanho qualquer a um valor de hash de tamanho variável, que serve como autenticador. III. A função de nível mais alto é usada como uma primitiva em um protocolo de autenticação de nível mais baixo. IV. Encriptação da mensagem: o texto cifrado da mensagem inteira serve como seu autenticador. Das afirmativas listadas acima, estão corretas: o apenas II e IV. o apenas I e III. o apenas I e IV. o apenas II e III. o apenas I e II.