Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Dr. Anderson Silva UNIDADE II Criptografia e Certificação Digital Quanto às chaves Simétrica Quando é utilizada a mesma chave para cifrar e decifrar a mensagem Pública/privada (assimétrica) Quando é utilizada uma chave para cifrar, a chave parceira decifra e vice-versa Criptografia Chave simétrica Criptografia Simétrica Vantagens Rapidez Confidencialidade Criptografia Desvantagens Distribuição da chave Não garante autenticação Não garante integridade Algoritmos simétricos Tipo Tam. chave Tam. bloco DES bloco 56 64 Triple DES bloco 168 64 BLOWFISH bloco 32 a 448 64 RC4 stream 0 a 256 AES bloco 128,192,256 128, 192, 256 Simétrica Criptografia Atacante M Alice Bob M Cifrador (E) Decifrador (D) Canal Seguro K C Simétrica 3DES Evolução do DES Criptografia M E-TDES C K1 Bloco: 64 bits Chave de tamanho igual a 168 bits (Três chaves de 56 bits) K2 K3 Simétrica AES Padrão atual de criptografia simétrica Criptografia M E-AES C Bloco: 128, 192, 256 bits Chaves 128, 192, 256 bits K Bloco: 128, 192, 256 bits Autenticação simétrica? As empresas A e B eram sócias e trocavam dados por meio de criptografia simétrica Mas se separaram com briga na justiça A empresa A tem um arquivo criptografado no qual a empresa B transfere bens para A Qual será o parecer do juiz do caso sobre isso? Exemplo 1 Entidade BEntidade A K K Arquivo Empresa B Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas Crie um arquivo de texto com os seguintes conteúdos: msg.txt = aula de criptografia Encripte o arquivo com dois algoritmos: DES3 e AES256 Use como chave o conteúdo do arquivo ale3.txt Repita cada comando várias vezes e analise o resultado na tela Exemplo 2 Comandos openssl enc -des3 -in msg.txt -kfile ale3.txt : openssl enc –aes256 -in msg.txt -kfile ale3.txt Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas Apesar de usarem a mesma chave, a cada comando as cifras mudam Isso acontece nos dois algoritmos Para que as cifrações contínuas de texto não apresentem sempre o mesmo conteúdo – facilitando a criptoanálise – esse tipo de comando usa uma semente aleatória Sementes são trechos aleatórios adicionados à chave para evitar resultados repetidos da mesma cifra Exemplo 2 N° Cifra DES3 Cifra AES256 1 ░d1?÷Ú┘ï╚f{zà╣\•U0mÔtıVF|\@ у;+ÙË£vIÝ┤Á|{‗Åp¡!cîJ5¹H┴▀kÚvV%í§e·ƒ 2 Á¼±d╦sLÄ╚L¾çé¾wLÅæƒ_a¼V¯I╬┐╠▒ b╚B©|¥¾|Ó|┼ÄpÕÓÌ‗W▒è─õj^Ütd¨Æ┴ÞEƒ)ì┴$éO 3 mtKf¶.ó³ï*V|¯äf2»á(ù╬SúW▄9╩Í8P îr?¨.©p7r¼x═гöÕæÒËÍî(= TV╠Sö@░Ó_ Ú■ Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas Agora defina uma semente e encripte o mesmo arquivo Algoritmo: DES3 e AES256 Chave: ale3.txt Semente: 0 (pode ser qualquer número) O Openssl gera a mesma semente quando se repete o número Repita cada comando várias vezes e analise o resultado na tela Exemplo 2 Comandos openssl enc -des3 -in msg.txt -kfile ale3.txt –S 0 : openssl enc –aes256 -in msg.txt -kfile ale3.txt –S 0 Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas Agora, usando a mesma chave e a mesma semente, as cifras são as mesmas Isso acontece nos dois algoritmos Exemplo 2 N° Cifra DES3 Cifra AES256 1 "Ü Ài¦^ø`7=╬l╩■$T ìW poKæ_HHüa÷På '6'¼+i└<`q]`ë°ıd¶ 2 "Ü Ài¦^ø`7=╬l╩■$T ìW poKæ_HHüa÷På '6'¼+i└<`q]`ë°ıd¶ 3 "Ü Ài¦^ø`7=╬l╩■$T ìW poKæ_HHüa÷På '6'¼+i└<`q]`ë°ıd¶ Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas Se quiser salvar a cifra em um arquivo, usando AES, semente nula, chave ale3.txt: openssl enc -aes256 -in msg.txt -kfile ale3.txt -S 0 -out CIFRA_AES256.TXT Para decifrar o arquivo encriptado: openssl enc -d -aes256 -p -in CIFRA_AES256.TXT -kfile ale3.txt Exemplo 2 Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas Se quiser salvar a cifra em um arquivo, usando AES, semente nula, com uma chave manual: openssl enc -aes256 -in msg.txt -S 0 -out CIFRA_AES256.TXT Para decifrar o arquivo encriptado: openssl enc -d -aes256 -p -in CIFRA_AES256.TXT A chave será pedida manualmente na cifração e na decifração Exemplo 2 A, B, C e D compartilham a chave simétrica K. Marque a alternativa correta a respeito de uma mensagem M encriptada com a chave K e recebida por D. a) É possível saber quem enviou a mensagem M para D. b) D não poderia ter criado a mensagem M, já que é o destinatário dela. c) Se A criou e cifrou M, o usuário B não pode decifrá-la, já que o destinatário é D. d) Apenas D e quem criou M podem decifrá-la. e) Qualquer usuário pode ter criado e cifrado M. Até mesmo D. Interatividade Entidade B Entidade A Entidade D Entidade C M K K KK A, B, C e D compartilham a chave simétrica K. Marque a alternativa correta a respeito de uma mensagem M encriptada com a chave K e recebida por D. a) É possível saber quem enviou a mensagem M para D. b) D não poderia ter criado a mensagem M, já que é o destinatário dela. c) Se A criou e cifrou M, o usuário B não pode decifrá-la, já que o destinatário é D. d) Apenas D e quem criou M podem decifrá-la. e) Qualquer usuário pode ter criado e cifrado M. Até mesmo D. Resposta Entidade B Entidade A Entidade D Entidade C M K K KK Chaves Pública/Privada Criptografia Pública/Privada (assimétrica) Utiliza duas chaves diferentes – par gerado matematicamente Kpub: de conhecimento público – encriptado com Kpub = só Kpriv abre Kpriv: secreta – encriptado com Kriv = só Kpub abre A partir de Kpub é inviável descobrir Kpriv Equivalente à simétrica em relação à dificuldade de quebra Criptografia M KPRIA M EA ? C DA ? KPUBA KPRIB KPUBB A B Pública/Privada (assimétrica) Se M for cifrada com KPRIA gerando C, que chave abre C? Se M for cifrada com KPUBA gerando C, que chave abre C? Se M for cifrada com KPRIB gerando C, que chave abre C? Se M for cifrada com KPUBB gerando C, que chave abre C? Criptografia M KPRIA M EA ? C DA ? KPUBA KPRIB KPUBB A B Geração de chaves Pub/Priv Chaves assimétricas são geradas em conjunto de forma matemática Vamos usar o Openssl para gerar um par de chaves Público/Privado O algoritmo usado será o RSA Inicialmente vamos gerar a chave privada PRIVKEY1.PEM de 512 bits Exemplo 3 Comandos openssl genrsa –out PRIVKEY1.PEM 512 Geração de chaves Pub/Priv Agora, a partir da chave privada, geramos uma chave pública O inverso – extrair a chave privada a partir da pública – é impossível O algoritmo usado também é o RSA PUBKEY1.PEM = chave pública Exemplo 3 Comandos openssl rsa –in PRIVKEY1.PEM –pubout –out PUBKEY1.PEM Geração de chaves Púb/Priv As chaves podem ser abertas com um simples editor de texto Perceba que PUBKEY1 é menor que PRIVKEY1 Isso é bastante comum já que a segurança está na PRIVKEY1 Exemplo 3 Geração de chaves Púb/Priv Podemos gerar também um par de chaves com 2048 bits com comandos diferentes PUBKEY2 = chave pública RSA de 2048 bits PRIVKEY2 = chave privada RSA de 2048 bits As chaves de 2048 são bem maiores que as de 512 bits Exemplo 3 Comandos openssl genpkey -algorithm RSA -out PRIVKEY2.PEM -pkeyopt rsa_keygen_bits:2048 openssl rsa -in PRIVKEY2.PEM -pubout -out PUBKEY2.PEM Pública/Privada (assimétrica) Confidencialidade Perguntas: Quem abre um texto encriptado com KPUBB? Alice pode pegar e usar a chave KPUBB? Criptografia M KPRIB A Remetente B Destinatário KPUBB EA C M DA Pública/Privada (assimétrica) Autenticação Perguntas: Quem abre um texto encriptado com KPRIVA? Bob tem acesso à KPUBA? Criptografia A Remetente B Destinatário KPUBAKPRIA M EA C M DA Confidencialidade assimétrica Encriptar/decifrar msg.txt msg.txt = aula de criptografia Encripte o arquivo msg.txt com confidencialidade, gerando o arquivo CRIPTOGRAMA.RSA Para isso é preciso usar achave pública PUBKEY1.PEM criada anteriormente Exemplo 4 openssl rsautl -in MSG.TXT -out CRIPTOGRAMA.RSA -pubin -inkey PUBKEY1.PEM –encrypt Confidencialidade assimétrica Abra o arquivo CRIPTOGRAMA.RSA com um editor de texto Este é o conteúdo de msg.txt encriptado com a chave pública PUBKEY1.PEM Exemplo 4 Confidencialidade assimétrica Agora decifre o arquivo CRIPTOGRAMA.RSA O resultado deve ser exatamente o conteúdo contido no arquivo msg.txt Grave o conteúdo decifrado no arquivo MENSAGEM.OUT Perceba que para decifrar CRIPTOGRAMA.RSA é preciso usar a chave privada PRIVKEY1.PEM Exemplo 4 openssl rsautl –in CRIPTOGRAMA.RSA –out MENSAGEM.OUT –inkey PRIVKEY1.PEM -decrypt Confidencialidade assimétrica Abra o arquivo MENSAGEM.OUT com um editor de texto Perceba que é idêntico ao conteúdo de msg.txt Exemplo 4 Tenho um par de chaves pública/privada e uma chave simétrica. Quero encriptar meu HD inteiro (500 GB) e não vou enviar para ninguém. Posso dizer que: a) Mais rápido: encriptar com uma chave simétrica de 512 bits. Mais lento: encriptar com uma chave pública de 512 bits. b) Não posso encriptar um HD inteiro. Leva muito tempo. c) Devo encriptar o HD com minha chave privada. d) Devo encriptar o HD com minha chave privada e encriptar minha chave privada com minha chave simétrica. e) Mais rápido: encriptar com uma chave pública de 1024 bits. Mais lento: encriptar com uma simétrica de 32 bits. Interatividade Tenho um par de chaves pública/privada e uma chave simétrica. Quero encriptar meu HD inteiro (500 GB) e não vou enviar para ninguém. Posso dizer que: a) Mais rápido: encriptar com uma chave simétrica de 512 bits. Mais lento: encriptar com uma chave pública de 512 bits. b) Não posso encriptar um HD inteiro. Leva muito tempo. c) Devo encriptar o HD com minha chave privada. d) Devo encriptar o HD com minha chave privada e encriptar minha chave privada com minha chave simétrica. e) Mais rápido: encriptar com uma chave pública de 1024 bits. Mais lento: encriptar com uma simétrica de 32 bits. Resposta Pública/Privada (assimétrica) Parte 1 – repasse de KS Autenticação + Confidencialidade (ou vice-versa) Quem abre C1? Quem abre C2? Criptografia KPRIB A Remetente B Destinatário KPUBB EA C2C1 C1 KPUBAKPRIA EA DA DA KS KS Pública/Privada (assimétrica) Parte 2 – encriptação com KS Chave de sessão (KS): chave simétrica repassada a um parceiro por meio de criptografia assimétrica KS tem caráter temporário – usada só naquela transação KS foi repassada com autenticação + confidencialidade Criptografia M M A Remetente B DestinatárioEA C DA KS KS Pública/Privada (assimétrica) Vantagens Confidencialidade Autenticação Troca de chaves seguras Razoável não repúdio Criptografia Desvantagens Lenta (500 a 2000 x simétrica) Não garante integridade Algoritmos assimétricos Tam. chave Matemática RSA 512, 1024, 2048, 4096 bits Fatoração de números primos Curvas elípticas 160-512 bits Logaritmo discreto Códigos lineares A partir de 88 KB McEllice Pública/Privada (assimétrica) Rivest-Shamir-Adelman (RSA) Algoritmo baseado no problema da fatoração de inteiros (1978) Criptografia RSA - geração de chaves pública e privada Gerar dois números aleatórios p e q Calcular n = p.q Calcular ϕ = (p-1).(q-1) Escolher um número 1 < e < ϕ, tal que mdc(e, ϕ) = 1 Calcular o (único) número 1 < d < ϕ, tal que e.d = 1 mod (ϕ) Chave privada: d Chave pública: e, n Pública/Privada (assimétrica) Rivest-Shamir-Adelman (RSA) Chaves bits 512, 1024, 2048, ... Criptografia RSA - cifração - decifração Cifração Seja M uma mensagem representada por um inteiro Para cifrar M com uma chave pública e, n Calcular c=me mod (n) = p.q Decifração Para decifrar c utilizando a chave privada d Calcular m=cd mod (n) Um dos problemas da criptografia simétrica é o compartilhamento da chave. Uma forma de realizar a troca de chaves com segurança é por meio de um canal seguro, que pode ser conseguido com: a) Criptografia assimétrica, gerando autenticação. b) Criptografia simétrica, gerando confidencialidade. c) Criptografia assimétrica, gerando uma chave pública e uma chave privada. d) Criptografia assimétrica, gerando confidencialidade + autenticação. e) Criptografia simétrica, gerando confidencialidade + autenticação. Interatividade Um dos problemas da criptografia simétrica é o compartilhamento da chave. Uma forma de realizar a troca de chaves com segurança é por meio de um canal seguro, que pode ser conseguido com: a) Criptografia assimétrica, gerando autenticação. b) Criptografia simétrica, gerando confidencialidade. c) Criptografia assimétrica, gerando uma chave pública e uma chave privada. d) Criptografia assimétrica, gerando confidencialidade + autenticação. e) Criptografia simétrica, gerando confidencialidade + autenticação. Resposta Troca de chaves Diffie-Hellman Criptografia Troca de chaves (Diffie-Hellman) Diffie-Hellman Algoritmo para troca de chaves de sessão entre duas entidades Amplamente utilizado em transações atuais que envolvem o protocolo SSL/TLS Criptografia Troca de chaves (Diffie-Hellman) Baseado no problema do logaritmo discreto Dados r, p, x, é “fácil” calcular y = rx (mod p) Dados r, p, y, é “difícil” calcular x Criptografia Troca de chaves (Diffie-Hellman) f(r,x,p) = r x mod p p = primo muito grande r = raiz primitiva de p 0 < r < p 0 < x < p Criptografia RESUMO A B r, p públicos KA = KB Qual é a função f? Define número secreto a Calcula fA = f (r,a,p) Envia fA para B Calcula KA = f (fB, a, p) Define número secreto b Calcula fB = f (r,b,p) Envia fB para A Calcula KB = f (fA, a, p) Troca de chaves (Diffie-Hellman) f(r,x,p) = r x mod p Criptografia Exemplo Numérico f (r, x, p) = rx mod p A B p = 563 r = 5 a = 9 fA = r a mod p = 59 mod 563 = 78 KA = (fB) a mod p = (rb mod p)a mod p = rba mod p = 5349 mod 563 = 117 b = 14 fB = r b mod p = 514 mod 563 = 534 KA = (fA) b mod p = (ra mod p)b mod p = rba mod p = 7814 mod 563 = 117 Troca de chaves (Diffie-Hellman) Criptografia Troca de chaves (Diffie-Hellman) Problemas resolvidos Confidencialidade na troca/negociação da chave de sessão Ks Problemas não resolvidos Autenticação da entidade parceira Como garantir que o parceiro não é um impostor? Criptografia Marque a alternativa errada. a) Mesmo cifrada, uma mensagem enviada com confidencialidade assimétrica pode ser falsificada sem o destinatário perceber. b) A criptografia simétrica é usada para a enviar as chaves de sessão Diffie-Hellman. c) Um atacante não consegue quebrar uma chave Diffie-Hellman, mas pode forjar a identidade e se passar por um dos parceiros. d) Uma mensagem enviada apenas com autenticação (assimétrica) pode ser lida por qualquer um. e) Encriptar e enviar chaves de sessão simétricas com chaves pública/privada aumenta a rapidez do processo de encriptação. Interatividade Marque a alternativa errada. a) Mesmo cifrada, uma mensagem enviada com confidencialidade assimétrica pode ser falsificada sem o destinatário perceber. b) A criptografia simétrica é usada para a enviar as chaves de sessão Diffie-Hellman. c) Um atacante não consegue quebrar uma chave Diffie-Hellman, mas pode forjar a identidade e se passar por um dos parceiros. d) Uma mensagem enviada apenas com autenticação (assimétrica) pode ser lida por qualquer um. e) Encriptar e enviar chaves de sessão simétricas com chaves pública/privada aumenta a rapidez do processo de encriptação. 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. BISHOP, Matt. Computer security: art and science. Boston: Addison-WesleyProfessional, 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. Disponível em: http://www.ietf.org/rfc/rfc3280.txt?number=3280 Referências ITU-T Recommendation X.509 (1997 E): Information Technology – Open Systems Interconnection – The Directory: Authentication Framework, June 1997. NIST Special Publication 800-33. Computer security: undelying technical models for information technology security. NIST, Dec. 2001. SEWAYBRIKER, R. Livro-texto do CST em segurança da informação. São Paulo: UNIP, 2019, p. 178. STALLINGS, William. Computer security: principles and practice (3rd edition). London: Pearson Education, 2014. TANENBAUM, A. S. Redes de computadores. 4. ed. São Paulo: Campus. Referências ATÉ A PRÓXIMA!
Compartilhar