of 48/48
2013 Edgard Jamhour Professor Edgard Jamhour Criptografia Assinaturas Digitais Certificados Digitais

2013 Edgard Jamhour Professor Edgard Jamhour Criptografia Assinaturas Digitais Certificados Digitais

  • View
    110

  • Download
    1

Embed Size (px)

Text of 2013 Edgard Jamhour Professor Edgard Jamhour Criptografia Assinaturas Digitais Certificados Digitais

  • Slide 1
  • Slide 2
  • 2013 Edgard Jamhour Professor Edgard Jamhour Criptografia Assinaturas Digitais Certificados Digitais
  • Slide 3
  • 2013, Edgard Jamhour Criptografia e Descriptografia Texto Aberto (PlainText) Texto Fechado (Ciphertext) CRIPTOGRAFIA DECRIPTOGRAFIA
  • Slide 4
  • 2013, Edgard Jamhour Sistema de Criptografia Simples Caesar Cipher: usado por Julius Caesar Substituio de letras pelas letras deslocadas de N. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Nada de novo no front. Qdgd gh qryr qr iurqw. N = 3 N = 4 Rehe hi rszs rs jvstx.
  • Slide 5
  • 2013, Edgard Jamhour Espao das Chaves (KeySpace) Uma chave um valor especfico do espao de chaves (keyspace). No exemplo anterior: Keyspace = 25 N = 3, a chave especfica. Algoritmos modernos: Chaves binrias: 128, 256, 1024, 2048 bits Tipos de Criptografia: Simtrico: Keyspace 2 tamanho da chave Assimtrico: Keyspace 2 tamanho da chave
  • Slide 6
  • 2013, Edgard Jamhour Quebra de Criptografia A quebra da criptografia utilizando fora bruta invivel para espao de chaves acima de 2128 Exemplo: Keyspace=2 64 Computador: Deep Crack 90 bilhes de chaves por segundo Tempo para encontrar uma chave: 4 dias e meio Keyspace = 2 128 Computador = 1 trilho de chaves por segundo Tempo para testar todas as chaves: 10 milhes de trilhes de anos.
  • Slide 7
  • 2013, Edgard Jamhour Criptografia Simtrica e Assimtrica Dois sistemas de criptografia so usados atualmente: sistemas de chave secreta (secret-key) Tambm denominados simtricos Trabalha com uma nica chave, denominada SECRETA. sistemas de chave pblica (public-key) Tambm denominado assimtrico Trabalho com um par de chaves CHAVE PBLICA CHAVE PRIVADA
  • Slide 8
  • 2013, Edgard Jamhour Chave Secreta (Criptografia Simtrica) Texto Simples (plaintext) Texto Codificado (ciphertext) Texto Simples (plaintext) Chave Secreta Algoritmo de Criptografia Algoritmo de Decriptografia Chave Secreta =
  • Slide 9
  • 2013, Edgard Jamhour DES Data Encryption Standard Um dos algoritmo de chave secreta mais difundido o DES. Originalmente Desenvolvido pela IBM. Este algoritmo padronizado pela ANSI, e foi adotado como algoritmo oficial pelo governo americano. DES criptografia blocos de 64 bits com chaves de 56 bits. DES utiliza tcnicas baseadas em permutao sucessiva de bits. O algoritmo considerado obsoleto: 1998: DES-cracker da Electronic Frontier Foundation (EFF), ao custo de US$250.000, quebrou o algoritmo em 2 dias.Electronic Frontier Foundation 2008: COPACOBANA RIVYERA (128 Spartan-3 5000's), ao custo de US$10.000, quebrou o algoritmo em menos de um dia.
  • Slide 10
  • 2013, Edgard Jamhour DES - Estrutura Uma permutao inicial (IP) 16 rounds de processamento (funo de Feistel F) Uma permutao final (FP)
  • Slide 11
  • 2013, Edgard Jamhour Funo de Feistel Opera em meio bloco (32 bits) de cada vez. composto de 4 operaes: Expansion : transforma o bloco de 32 bits em 48 duplicando alguns bits. Key mixing combina o resultado com uma sub-chave de 48 bits. Substitution divide o bloco em partes de 6-bits e aplica o (S-Boxes) substitution boxes. Cada um dos 8 S-boxes substitui uma parte de 6 bits por outra de 4 bits atravs de uma operao tabelada. Permutation efetua uma permutao nos 32 bits para espalhar os bits de cada S-box em pelo menos 4 S- boxes differences para o prximo round.
  • Slide 12
  • 2013, Edgard Jamhour Modos de Operao O DES possui vrios modos de operao, dependendo da maneira como os blocos de 64 bits de uma mesma mensagem so criptografados. Alguns exemplos so: ECB: Electronic Codebook Mode CBC: Cipher Block Chaining
  • Slide 13
  • 2013, Edgard Jamhour MODO ECB DADOS BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text) BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text) BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text) O Modo ECB divide a mensagem em blocos de 64 bits, e criptografa cada bloco de maneira independente.
  • Slide 14
  • 2013, Edgard Jamhour MODO CBC DADOS BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text) BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text) XOR BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text) XOR O Metodo CBC torna a criptografia de um bloco dependente do bloco anterior.
  • Slide 15
  • 2013, Edgard Jamhour Chave Pblica = CRIPTOGRAFIA ASSIMTRICA Sistema de Criptografia Assimtrico Utiliza um par de chaves. Uma chave publica para criptografar a mensagem. Uma chave privada para decriptografar a mensagem. A chave pblica no secreta. A chave privada secreta. A chave pblica deve ser distribuda para os usurio que desejarem enviar uma mensagem com segurana.
  • Slide 16
  • 2013, Edgard Jamhour Chave Pblica (Criptografia Assimtrica) Texto Simples (plaintext) Texto Codificado (ciphertext) Texto Simples (plaintext) Chave Pblica Chave Privada Algoritmo de Criptografia Algoritmo de Descriptografia
  • Slide 17
  • 2013, Edgard Jamhour RSA (Rivest, Shamir, Adleman) Sejam p, q e e nmeros primos (> 512 bits). Calcula-se: n = p.q e ed = 1 mod (p-1)(q-1) As chaves so definidas da seguinte maneira: Chave pblica: (n,e) e Chave privada: d Para criptografar uma mensagem m efetua-se a operao: s = m e mod n Para decriptografar, efetua-se a operao: m = s d mod n
  • Slide 18
  • 2013, Edgard Jamhour RSA Algorithm Example 1.Escolher p = 3 e q = 11 2.Calcular n = p * q = 3 * 11 = 33 3.Calcular (n) = (p - 1) * (q - 1) = 2 * 10 = 20 4.Escolher e tal que 1 < e < (n) e e e n so coprimos. Seja e = 7 5.Calcular o valor de d tal que (d * e) % (n) = 1. Uma soluo possvel d = 3 [(3 * 7) % 20 = 1] 6.A chave pblica (e, n) => (7, 33) 7.A chave privada (d, n) => (3, 33) 8.A criptografia de m = 2 c = 2 7 % 33 = 29 9.A descriptografia de c = 29 m = 29 3 % 33 = 2
  • Slide 19
  • 2013, Edgard Jamhour RSA O algoritmo RSA muito mais lento que o DES, pois os clculos efetuados so complexos. Por utilizar nmeros primos, o RSA precisa de chaves muito grandes para reproduzir o mesmo grau de segurana do DES. As chaves em RSA so em geral da ordem de 1024 bits.
  • Slide 20
  • 2013, Edgard Jamhour Assinatura Digital com Chave Pblica Permite ao receptor verificar a integridade da mensagem: O contedo no foi alterado durante a transmisso. O transmissor quem ele diz ser. Assinatura digital Chave privada Algoritmo de assinatura digital Mensagem isto isto segredo segredo
  • Slide 21
  • 2013, Edgard Jamhour Implementao da Assinatura Digital ABFC01 FE012A0 2C897C D012DF 41 DIGESTF18901B Algoritmo de Hashing ASSINATURA DIGITAL ABFC01 FE012A0 2C897C D012DF 41 Mensagem com Assinatura Digital MENSAGEM aberta ASSINATURA criptografada Algoritmo de Cripografia
  • Slide 22
  • 2013, Edgard Jamhour Gerao e Validao das Assinaturas Assinatura Digital DIGEST 1B2A37... Criptografia com chave privada Algoritmo de Hashing Rede Assinatura Digital xxxx yyyy zzzz DIGEST Descriptografia com chave pblica DIGEST Algoritmo de Hashing COMPARAO RECEPTOR TRANSMISSOR xxxx yyyy zzzz
  • Slide 23
  • 2013, Edgard Jamhour Verificao da Integridade da Mensagem Transmissor (A) Receptor (B) MENSAGEM ASSINATURA DIGITAL CHAVE PRIVADA DE A CHAVE PBLICA DE A O receptor precisa ter a chave pblica do transmissor para verificar a assinatura.
  • Slide 24
  • 2013, Edgard Jamhour Autoridade Certificadora C.A. (Certification Authority) I.D. do Proprietrio Assinatura Digital Autoridade Certificadora (Verisign, Certisign, Etc.) Chave pblica (e.g., Banco do Brasil) CHAVE PRIVADA I.D. da CA Certificado X509 www.bancodobrasil.com.br Banco do Brasil S.A. Brasilia, DF, Brasil www.verisign.com Verisign, Inc.
  • Slide 25
  • 2013, Edgard Jamhour Nomenclatura X509 Um certificado X509 emitido para um distinguished name. DN FieldAbbrev.DescriptionExample Common NameCNName being certifiedCN=Joe Average Organization or Company O Name is associated with this organization O=Snake Oil, Ltd. Organizational UnitOU Name is associated with this organization unit, such as a department OU=Research Institute City/LocalityLName is located in this CityL=Snake City State/ProvinceSTName is located in this State/ProvinceST=Desert CountryC Name is located in this Country (ISO code) C=XZ
  • Slide 26
  • 2013, Edgard Jamhour Estratgias de Certificao O software que recebe o certificado (por exemplo, o browser) deve possuir a chave pblica da autoridade certificadora. Base de chaves I.D. do Proprietrio Assinatura Eletrnica I.D. da Autoridade Certificadora VERISIGN: www.verisign.com Off-line On-linewww.bancodobrasil.com.br
  • Slide 27
  • 2013, Edgard Jamhour PKI (Public Key Infrastructure) O termo PKI (Infraestrutura de chave pblica) utilizado para descrever o conjunto de elementos necessrios para implementar um mecanismo de certificao por chave pblica. EMPRESA A EMPRESA B CA (Autoridade Certificadora) certificados
  • Slide 28
  • 2013, Edgard Jamhour Como a criptografia pode ser implementada? Protolco de Aplicao FTP, SMTP, HTTP, Telnet, SNM, etc. TCP, UDP Data Link Ethernet, Token Ring, FDDI, etc IP Fsica Aplicaes Tecnologia heterognea aplicao transporte rede enlace fsica Seqncia de empacotamento
  • Slide 29
  • 2013, Edgard Jamhour SSL SSL: Secure Sockets Layer HTTPTELNET SSL TCP/IP POP 8011023 HTTPsTELNETsPOPs 443995992 Sockets
  • Slide 30
  • 2013, Edgard Jamhour Exemplo: HTTPS CLIENTE SERVIDOR SOCKS SSL >1023 SOCKS SSL 443 80 HTTP HTTPS Recurso No Protegido Recurso Protegido X
  • Slide 31
  • 2013, Edgard Jamhour SSL - Viso Simplificada Servidor (Subjet) Autoridade Certificadora 1 O servidor gera um par de chaves assimtricas (pblica e privada) Chave privada {PriS} Chave pblica {PubS} 2 O servidor envia um CSR, contendo sua chave pblica para a CA A CA envia o certificado X509 para o servidor 4 CSR [PubS] Certificado [PubS][AssCA] 3 Chave privada {PriCA} Certificado [PubS][AssCA] CSR [PubS]
  • Slide 32
  • 2013, Edgard Jamhour SSL - Viso Simplificada Cliente (Subjet) Servidor (Subject) Requisio TCP para um recurso protegido Chave privada {PriS} Chave pblica {PubS} O servidor envia o seu certificado para o cliente 4 Certificado [PubS][AssCA] 5 6 Certificado [PubS][AssCA] Chave pblica {PubCA} O cliente valida o certificado usando a chave pblica da CA e extrai a chave pblica do servidor Chave pblica {PubS}
  • Slide 33
  • 2013, Edgard Jamhour SSL - Viso Simplificada Cliente (Subjet) Servidor (Subject) Chave privada {PriS} Chave pblica {PubS} 7 Chave secreta {SecC} O cliente gera um chave secreta (simtrica) aleatria = chave de sesso e a criptografa com a chave pblica do servidor Chave pblica {PubS} {{SecC}PubS} 8 O cliente envia sua chave secreta, criptografada, para o servidor {{SecC}PubS}
  • Slide 34
  • 2013, Edgard Jamhour SSL - Viso Simplificada Cliente (Subjet) Servidor (Subject) Chave privada {PriS} Chave pblica {PubS} Chave secreta {SecC} 9 O servidor descriptografa a chave secreta do cliente, utilizando sua chave privada Chave secreta {SecC} 10 {{SecC}PubS} Chave pblica {PubS} {(Dados)SecC} A troca bi-direcional de dados protegida com a chave secreta gerada pelo cliente
  • Slide 35
  • 2013, Edgard Jamhour SSL e TLS SSL: Secure Socket Layer Definido pela Netscape Verso atual: 3.0 TLS: Transport Layer Security Definido pelo IETF Verso atual: 1.0 RFC 2246 (Janeiro de 1999) O TLS 1.0 baseado no SSL 3.0, mas eles possuem diferenas que os tornam incompatveis.
  • Slide 36
  • 2013, Edgard Jamhour TLS O TLS define dois sub-protocolos: TLS Record Protocol Utilizado para encapsular os protocolos das camadas superiores. TLS Handshake Protocol Utilizado para negociar o algortmo e as chaves de criptografia antes que o primeiro byte da comunicao segura seja transmitido.
  • Slide 37
  • 2013, Edgard Jamhour SSL/TLS
  • Slide 38
  • 2013, Edgard Jamhour SSL Record Protocol
  • Slide 39
  • 2013, Edgard Jamhour TLS Os objetivos do TLS so: Segurana criptogrfica entre dois pontos. Interoperabilidade: programadores independentes devem ser capazes de desenvolver capazes de se comunicar, sem que um conhea o cdigo do outro. Extensibilidade: novos algortmos de criptografia podem ser incorporados quando necessrio. Eficincia: reduzir o uso de CPU e o trfego de rede a nveis aceitveis.
  • Slide 40
  • 2013, Edgard Jamhour Secure Socket Layer (SSL) e Transport Layer Security (TLS) O SSL/TLS permite executar duas funes bsicas: autenticao entre o cliente e o servidor. criptografia na troca de mensagens. SSL/TLS O cliente se autentica para o servidor (opctional) O servidor se autentica para o cliente (obrigatrio)
  • Slide 41
  • 2013, Edgard Jamhour Identificao do CA Autenticao do Servidor SSL/TLS permite ao usurio confirmar a identidade do servidor. SSL Identificao do Servidor Chave pblica do servidor Assinatura Digital de uma CA
  • Slide 42
  • 2013, Edgard Jamhour Certificados de Servidor
  • Slide 43
  • 2013, Edgard Jamhour Autenticao do Cliente SSL permite ao servidor identificar a identidade do cliente. SSL Identificao do CA Identificao do Cliente Chave pblica do Cliente Assinatura Digital de uma CA
  • Slide 44
  • 2013, Edgard Jamhour Certificados de Cliente
  • Slide 45
  • 2013, Edgard Jamhour Criptografia da Comunicao Aps a certificao, o SSL/TLS cria uma chave de sesso que garante: Confidencialidade e Proteo contra Tampering (alterao dos dados em transito). info (chave secreta aleatria) info
  • Slide 46
  • 2013, Edgard Jamhour TLS Handshake
  • Slide 47
  • 2013, Edgard Jamhour Exemplos de Cipher Suites TLS_RSA_EXPORT_WITH_RC4_40_MD5 EXP-RC4-MD5 TLS_RSA_WITH_RC4_128_MD5 RC4-MD5 TLS_RSA_WITH_RC4_128_SHA RC4-SHA TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 EXP-RC2-CBC-MD5 TLS_RSA_WITH_IDEA_CBC_SHA IDEA-CBC-SHA TLS_RSA_WITH_DES_CBC_SHA DES-CBC-SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA DES-CBC3-SHA TLS_RSA_WITH_AES_128_CBC_SHA AES128-SHA TLS_RSA_WITH_AES_256_CBC_SHA AES256-SHA
  • Slide 48
  • 2013, Edgard Jamhour API SSL Cria contexto API: SSL_CTX_new (SSL_CTX *) Cria contexto API: SSL_CTX_new (SSL_CTX *) Cria um socket TCP (socket) > 1023 > 80 Associa o socket ao contexto API: SSL_set_bio (SSL *ssl) Associa o socket ao contexto API: SSL_set_bio (SSL *ssl) Verifica o certificado do servidor SSL_get_verify_result(SSL * ssl) Verifica o certificado do servidor SSL_get_verify_result(SSL * ssl) Efetua a conexo SSL SSL_connect( SSL *ssl) (chave secreta associada ao socket SSL) Efetua a conexo SSL SSL_connect( SSL *ssl) (chave secreta associada ao socket SSL) Envia dados criptografados SSL_write(SLL *ssl,...) Envia dados criptografados SSL_write(SLL *ssl,...) Recebe dados j descriptografados SSL_read(SSL * ssl,...) Recebe dados j descriptografados SSL_read(SSL * ssl,...) Encerra conexo e libera recursos SSL_shutdown(ssl) SSL_free(ssl) Encerra conexo e libera recursos SSL_shutdown(ssl) SSL_free(ssl) Carrega bibliotecas Define verso do SSL Carrega certificado do cliente Carrega certificados da CA Certificado do Servidor [Requisio do certificado cliente] segredos Dados criptografados com a chave secreta
  • Slide 49
  • 2013, Edgard Jamhour Concluso Criptografia Simtrica Chaves de pelo menos 128 bits Rpido Usado para proteo de dados Criptografia Assimtrica Chaves de pelo menos 1024 bits Lento Usado no processo de negociao de chaves