Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Dr. Anderson Silva UNIDADE I Criptografia e Certificação Digital Introdução Processo de transformação da informação legível (mensagem) em informação ilegível (texto cifrado). Criptografia ESCRITA SECRETA ESTEGANOGRAFIA (oculta) CRIPTOGRAFIA (misturada) SUBSTITUIÇÃO CÓDIGO (substituição de palavras) TRANSPOSIÇÃO TRANSPOSIÇÃO (substituição de letras) Fonte: Livro-texto. Introdução Cifras tradicionais de criptografia. Substituição (acrescenta confusão à informação) Transposição/permutação (acrescenta difusão) Criptografia Alfabeto em claro Alfabeto Cifrado Texto Cifrado Cifra Texto em claro Fonte: Livro-texto. Introdução Cifra de César (império romano) Permutação de letras (regra ou algoritmo) Não há chaves ou chave muito fraca A descoberta do algoritmo praticamente quebra a cifra Exemplo: Regra = + 3 OSASCO = RVDVFR Criptografia Introdução A esteganografia é a arte ou técnica de esconder informações (dados) dentro de outros recipientes. Arquivos de texto, som, vídeo e imagem. Criptografia Imagem extraída Fonte: https://commons.wikimedia.org/wiki/File:Steganography_original.png https://commons.wikimedia.org/wiki/File:Steganography_recovered.png Introdução Exemplo de ocultação de bits em pixels na esteganografia. Criptografia Fonte: Livro-texto. Marque a alternativa que mostra uma situação que pode ser resolvida com a aplicação de criptografia. a) Na aplicação de confidencialidade em um documento digital. b) Contra ataques destrutivos que apagam dados. c) Na proteção de dados que já foram decifrados. d) Para um usuário que esqueceu sua senha bancária. e) Na proteção de arquivos corrompidos (inválidos). Interatividade Marque a alternativa que mostra uma situação que pode ser resolvida com a aplicação de criptografia. a) Na aplicação de confidencialidade em um documento digital. b) Contra ataques destrutivos que apagam dados. c) Na proteção de dados que já foram decifrados. d) Para um usuário que esqueceu sua senha bancária. e) Na proteção de arquivos corrompidos (inválidos). Resposta Introdução Transformação, por meio de uma chave criptográfica, da informação legível (mensagem) em informação ilegível (texto cifrado). Só quem conhece a chave criptográfica pode abrir o texto cifrado e ler o texto legível. A dificuldade deve estar em descobrir a chave, não no método usado (algoritmo). A segurança está na chave. Melhor se o algoritmo for público. Criptografia Introdução Elementos da Criptografia Criptografia Texto legível Algoritmo de Cifração Texto cifrado Texto cifrado Algoritmo de Decifração Texto legível Chave Chave Decifração Cifração Fonte: Livro-texto. Quanto ao processamento – Contextualização. Função AND (multiplicação booleana). Criptografia A B 0 0 0 0 1 0 1 0 0 1 1 1 Fonte: Baranauskas (2012) Quanto ao processamento – Contextualização Função OR (soma booleana) Criptografia A B 0 0 0 0 1 1 1 0 1 1 1 1 Fonte: Baranauskas (2012) Quanto ao processamento – Contextualização Função XOR (OR exclusivo) Resulta em 1 quando as entradas são diferentes entre si. Resulta em 0 quando as entradas são iguais entre si. Criptografia A B 0 0 0 0 1 1 1 0 1 1 1 0 Quanto ao processamento Stream Processa os elementos de entrada de forma contínua (bit a bit, ou byte a byte). Normalmente usa XOR Exemplos: RC4, SOBER-128 etc. Rápida Criptografia Texto Legível: 10100011 Chave: 10101011 Ciphertext: 00001000 Ciphertext: 00001000 Chave: 10101011 Texto Legível: 10100011 A B 0 0 0 0 1 1 1 0 1 1 1 0 Quanto ao processamento Stream Há outras operações de lógica Booleana além do XOR – Por que se usa o XOR? AND tem 75% de gerar 0 OR tem 25% de chance de gerar 0 XOR tem 50% de chance de gerar 0 ou 1 Criptografia A B 0 0 0 0 1 1 1 0 1 1 1 0 A B 0 0 0 0 1 0 1 0 0 1 1 1 A B 0 0 0 0 1 1 1 0 1 1 1 1 AND OR XOR Quanto ao processamento Stream Criptografia Original AND OR XOR Fonte: https://cdn.kastatic.org/ka-perseus-images/fbb379650117c0466756796546097e97201e0fde.jpg https://cdn.kastatic.org/ka-perseus-images/8b3c3061b2b5adfe124246b5afd3d5dc5e9a1f26.jpg https://cdn.kastatic.org/ka-perseus-images/a7d6986d33517de7081f6c21a4d532c46f886999.jpg https://cdn.kastatic.org/ka-perseus-images/e9f9a498083845b406a92905942d0e9968b96675.jpg Quanto ao processamento Bloco Quebra um texto e processa um bloco de elementos por vez, juntando o resultado final. Possui chaves e blocos de tamanhos determinados. Exemplos: DES, RC6, IDEA, AES etc. Mais lenta. Criptografia } K } K } K Marque a correta a respeito das formas de aplicação de criptografia quanto ao processamento. a) A criptografia por bloco, em geral, permite blocos de tamanhos diferentes. b) Um texto criptografado por stream fica duas vezes maior que o texto original. c) Mesmo se o último bloco for menor, ele não deve ser completado com padding (caracteres). d) O XOR é mais usado na cifra por bloco por garantir mais aleatoriedade. e) Vulnerabilidade XOR: o texto cifrado em XOR com o respectivo texto decifrado resulta na chave. Interatividade Marque a correta a respeito das formas de aplicação de criptografia quanto ao processamento. a) A criptografia por bloco, em geral, permite blocos de tamanhos diferentes. b) Um texto criptografado por stream fica duas vezes maior que o texto original. c) Mesmo se o último bloco for menor, ele não deve ser completado com padding (caracteres). d) O XOR é mais usado na cifra por bloco por garantir mais aleatoriedade. e) Vulnerabilidade XOR: o texto cifrado em XOR com o respectivo texto decifrado resulta na chave. Resposta Alguns modos de operações de cifras de bloco Electronic Code Book – ECB Cipher Block Chaining – CBC Cipher FeedBack – CFB Counter Mode - CTR Criptografia Electronic Code Book – ECB Simples Desvantagem Blocos de mensagem original idênticos vão produzir blocos cifrados idênticos. Criptografia Fonte: https://www.embarcados.com.br/criptografia-aes/ Cipher Block Chaining – CBC Um mesmo bloco de texto legível não resulta no mesmo bloco de texto cifrado. Desvantagem: Como o processo de criptografia é sequencial, não pode ser paralelizado. Criptografia Fonte: https://www.embarcados.com.br/criptografia-aes/ Cipher FeedBack – CFB Como usa XOR (stream), permite criptografia durante a transmissão (tempo real). Desvantagem: Quando S<8 bits (bloco), a capacidade de transmissão pode ser desperdiçada. Criptografia Fonte: https://www.embarcados.com.br/criptografia-aes/ Counter Mode – CTR Rapidez Blocos independentes Paralelismo Criptografia Fonte: https://www.embarcados.com.br/criptografia-aes/ OpenSSL OpenSSL é uma biblioteca criptográfica aberta e extremamente versátil. É utilizada atualmente em diversos sistemas comerciais, pois possui diversas funções. Aqui temos uma versão portável para o sistema operacional Windows. Criptografia Vulnerabilidade na encriptação simétrica no modo ECB X CBC: Crie 3 arquivos de texto com os seguintes conteúdos: texto51.txt = AAAAAAAABBBBBBBBCCCCCCCC texto52.txt = AAAAAAAA texto53.txt = BBBBBBBB texto54.txt = CCCCCCCC Exemplo 1 Vulnerabilidade na encriptação simétrica no modo ECB X CBC: Verifique o tamanho de cada arquivo (use as propriedades do arquivo). texto51.txt = AAAAAAAABBBBBBBBCCCCCCCC = 48 bytes texto52.txt = AAAAAAAA = 8 bytes texto53.txt = BBBBBBBB = 8 bytes texto54.txt = CCCCCCCC = 8bytes Exemplo 1 Vulnerabilidade na encriptação simétrica no modo ECB X CBC: Encripte cada um dos arquivos: algoritmo simétrico DES no modo ECB com semente nula Use a chave “12345” e gere como saída os seguintes arquivos: texto51.txt -> cifra51_DES_ECB_0.txt texto52.txt -> cifra52_DES_ECB_0.txt texto53.txt-> cifra53_DES_ECB_0.txt texto54.txt -> cifra54_DES_ECB_0.txt Exemplo 1 Comandos openssl enc -des-ecb -in texto51.txt –out cifra51_DES_ECB_0.txt -S 0 openssl enc -des-ecb -in texto52.txt –out cifra52_DES_ECB_0.txt -S 0 openssl enc -des-ecb -in texto53.txt –out cifra53_DES_ECB_0.txt -S 0 openssl enc -des-ecb -in texto54.txt –out cifra54_DES_ECB_0.txt -S 0 Vulnerabilidade na encriptação simétrica no modo ECB X CBC: Verifique o conteúdo de cada arquivo encriptado no modo ECB. O que pode ser notado? Perceba que parte do conteúdo encriptado do arquivo texto51.txt se repete nos outros arquivos encriptados. Isso acontece justamente porque os arquivos originais continham blocos de 64 bits idênticos aos blocos do primeiro arquivo. Essa é uma das vulnerabilidades do modo de encriptação ECB. Exemplo 1 cifra51_DES_ECB_0.txt cifra52_DES_ECB_0.txt cifra53_DES_ECB_0.txt cifra54_DES_ECB_0.txt St¿§²4êÉd±ẫâ#È ŠæÇ•³Ï St¿§²4ê Éd±ẫâ#È ŠæÇ•³Ï Vulnerabilidade na encriptação simétrica no modo ECB X CBC: Encripte os mesmos arquivos: algoritmo simétrico DES no modo CBC com semente nula Use a chave “12345” e gere como saída os seguintes arquivos: texto51.txt -> cifra51_DES_CBC_0.txt texto52.txt -> cifra52_DES_CBC_0.txt texto53.txt -> cifra53_DES_CBC_0.txt texto54.txt -> cifra54_DES_CBC_0.txt Exemplo 1 Comandos openssl enc -des-cbc -in texto51.txt –out cifra51_DES_CBC_0.txt -S 0 openssl enc -des-cbc -in texto52.txt –out cifra52_DES_CBC_0.txt -S 0 openssl enc -des-cbc -in texto53.txt –out cifra53_DES_CBC_0.txt -S 0 openssl enc -des-cbc -in texto54.txt –out cifra54_DES_CBC_0.txt -S 0 Vulnerabilidade na encriptação simétrica no modo ECB X CBC: Verifique o conteúdo de cada arquivo encriptado no modo CBC. O que pode ser notado? Perceba, ao contrário do modo ECB, que parte do conteúdo encriptado do arquivo texto51.txt se repete apenas no primeiro trecho dos arquivos encriptados (arquivo cifra52_DES_ECB_CBC_0.txt). Nos outros trechos, isso não ocorre no modo CBC. Exemplo 1 cifra51_DES_CBC_0.txt cifra52_DES_CBC_0.txt cifra53_DES_CBC_0.txt cifra54_DES_CBC_0.txt Ô=+-y‹è~nmàþ0H<‰[oÑó¨¬ýú0¢•/-ù Ô=+-y‹4cG7¢-‰ WÓŸ]wÆ'ÓÏ»øGw !fô l 'ÁÍcPª6 Com base no Exemplo 1, a respeito da vulnerabilidade de geração de blocos com a mesma cifra, responda a alternativa correta: a) Se a semente for aleatória, a vulnerabilidade ocorre no modo CBC. b) Se a semente não for aleatória, a vulnerabilidade ocorre no modo ECB. c) Se a semente for aleatória, a vulnerabilidade ocorre no modo ECB. d) Se a semente não for aleatória, a vulnerabilidade ocorre no modo CBC. e) Se a semente não for aleatória, a vulnerabilidade ocorre no modo CTR. Interatividade Com base no Exemplo 1, a respeito da vulnerabilidade de geração de blocos com a mesma cifra, responda a alternativa correta: a) Se a semente for aleatória, a vulnerabilidade ocorre no modo CBC. b) Se a semente não for aleatória, a vulnerabilidade ocorre no modo ECB. c) Se a semente for aleatória, a vulnerabilidade ocorre no modo ECB. d) Se a semente não for aleatória, a vulnerabilidade ocorre no modo CBC. e) Se a semente não for aleatória, a vulnerabilidade ocorre no modo CTR. Resposta Chaves Em um sistema criptográfico simétrico, a chave é apenas um número aleatório qualquer. Toda a segurança do processo está na chave. Pois é muito mais “fácil” descobrir uma senha que realizar criptoanálise (quebrar cifras). Tamanho Criptografia Por que uma chave precisa ter um bom tamanho? Chaves maiores gastam mais recursos? Explicação chaves longas Exemplo 2 Por que uma chave precisa ter um bom tamanho? Chaves maiores gastam mais recursos? Chaves Em um sistema criptográfico simétrico, a chave é apenas um número aleatório qualquer. Aleatório Números com nenhuma/pouca correlação entre si. Entropia é a medida de aleatoriedade de um conjunto de números. Criptografia Chaves Random Number Generator (RNG) Agrupa números de diferentes tipos de entradas imprevisíveis. A entrada muda constantemente, por conta própria, de maneira imprevisível. Exemplos RNG Desintegração espontânea de radioatividade. Condições atmosféricas. Minúsculas variâncias elétricas. Criptografia Chaves Pseudorandom Number Generator (PRNG) Produz números pseudoaleatórios – aleatoriedade mais baixa (se repetem com o tempo). Uma sequência pseudoaleatória depende da semente. Exemplos PRNG Hora do dia em milissegundos. Medidas dos estados dos registradores de computador. Criptografia Explicação de aleatoriedade nas chaves Perceba que em um único byte (1 caractere) há 8 bits = 2^8 = 256 opções de chaves binárias. São muito mais opções que as presentes em um teclado comum, ainda que forem consideradas as maiúsculas e alguns caracteres especiais. Isso acontece porque um teclado comum não possui todas as opções binárias para um único caractere. Exemplo 3 Por que uma chave precisa ser aleatória? Explicação de aleatoriedade nas chaves Gere uma sequência de números aleatórios com 1 a 8 bytes. Salve cada sequência de caracteres em arquivos com os seguintes nomes: ale1.txt, ale2.txt, ..., ale8.txt. Verifique as diferenças de tamanho no conteúdo gerado nos arquivos. Exemplo 3 Comandos openssl rand 1 -out ale1.txt openssl rand 2 -out ale2.txt openssl rand 3 -out ale3.txt openssl rand 4 -out ale4.txt openssl rand 5 -out ale5.txt openssl rand 6 -out ale6.txt openssl rand 7 -out ale7.txt openssl rand 8 -out ale8.txt Explicação de aleatoriedade nas chaves Cada arquivo gerado possui um tamanho: entre 1 a 8 bytes. Exemplo 3 Explicação de aleatoriedade nas chaves Perceba que os arquivos contém caracteres especiais diferentes dos caracteres do teclado. O conteúdo encontrado nesses arquivos, justamente por ser bastante aleatório, pode ser utilizado como chave criptográfica. Alguns caracteres podem indicar espaços, comandos e saltos de linha ou página. Se os comandos forem repetidos, novas chaves aleatórias serão geradas. Exemplo 3 ALE1 ALE2 ALE3 ALE4 ALE5 ALE6 ALE7 ALE8 ò '7“ ï`]T ´˜3W3 B'кеEА žEqƒ z‹jB= Criei uma chave A com 6 letras e uma chave B com 4 letras. Tendo em vista que uma letra corresponde a 1 byte, posso dizer que: a) A chave "A" tem 6 bytes. A chave B tem 24 bits. b) A chave "A" tem 48 bits. Em um ataque de força bruta contra a chave "B", há 2 elevado a 32 possibilidades de senhas. c) Em um ataque de força bruta contra a chave "A", há 2 elevado a 32 possibilidades de senhas. A chave "B" tem 32 bits. d) A chave "B" tem 16 bits a mais que a chave "A". A chave B tem 4 bytes. e) Em um ataque de força bruta contra a chave "A“, há 2 elevado a 6 possibilidades de senha. A chave "B" tem 32 bits. Interatividade Criei uma chave A com 6 letras e uma chave B com 4 letras. Tendo em vista que uma letra corresponde a 1 byte, posso dizer que: a) A chave "A" tem 6 bytes. A chave B tem 24 bits. b) A chave "A" tem 48 bits. Em um ataque de força bruta contra a chave "B", há 2 elevado a 32 possibilidades de senhas. c) Em um ataque de força bruta contra a chave "A", há 2 elevado a 32 possibilidades de senhas. A chave "B" tem 32 bits. d) A chave "B" tem 16 bits a mais que a chave "A". A chave B tem 4 bytes. e) Em um ataque de força bruta contra a chave "A“, há 2 elevado a 6 possibilidades de senha. A chave "B" tem 32 bits. Resposta BARANAUSKAS, J. A. Funções Lógicas e Portas Lógicas. Departamento de Computação e Matemática – FFCLRP-USP. Disponível em: https://www.docsity.com/pt/ab-funcoes-logicas-portas-logicas/4909252/. Acesso em: 12 jun. 2020. 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. MATT, Bishop. Computer Security. Art and Science, 2004. 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. 3. ed. São Paulo: Pearson Education, 2014. TANENBAUM, A. S. Redes de Computadores. 4. ed. Rio de Janeiro: Editora Campus. Referências ATÉ A PRÓXIMA!
Compartilhar