A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

2013 Edgard Jamhour Professor Edgard Jamhour Criptografia Assinaturas Digitais Certificados Digitais.

Apresentações semelhantes


Apresentação em tema: "2013 Edgard Jamhour Professor Edgard Jamhour Criptografia Assinaturas Digitais Certificados Digitais."— Transcrição da apresentação:

1

2 2013 Edgard Jamhour Professor Edgard Jamhour Criptografia Assinaturas Digitais Certificados Digitais

3 2013, Edgard Jamhour Criptografia e Descriptografia Texto Aberto (PlainText) Texto Fechado (Ciphertext) CRIPTOGRAFIA DECRIPTOGRAFIA

4 2013, Edgard Jamhour Sistema de Criptografia Simples Caesar Cipher: usado por Julius Caesar –Substituição 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.

5 2013, Edgard Jamhour Espaço das Chaves (KeySpace) Uma chave é um valor específico do espaço de chaves (keyspace). No exemplo anterior: –Keyspace = 25 –N = 3, é a chave específica. Algoritmos modernos: –Chaves binárias: 128, 256, 1024, 2048 bits Tipos de Criptografia: –Simétrico: Keyspace 2 tamanho da chave –Assimétrico: Keyspace 2 tamanho da chave

6 2013, Edgard Jamhour Quebra de Criptografia A quebra da criptografia utilizando força bruta é inviável para espaço de chaves acima de 2128 Exemplo: –Keyspace=2 64 Computador: Deep Crack 90 bilhões de chaves por segundo Tempo para encontrar uma chave: 4 dias e meio –Keyspace = Computador = 1 trilhão de chaves por segundo Tempo para testar todas as chaves: –10 milhões de trilhões de anos.

7 2013, Edgard Jamhour Criptografia Simétrica e Assimétrica Dois sistemas de criptografia são usados atualmente: –sistemas de chave secreta (secret-key) Também denominados simétricos Trabalha com uma única chave, denominada SECRETA. –sistemas de chave pública (public-key) Também denominado assimétrico Trabalho com um par de chaves –CHAVE PÚBLICA –CHAVE PRIVADA

8 2013, Edgard Jamhour Chave Secreta (Criptografia Simétrica) Texto Simples (plaintext) Texto Codificado (ciphertext) Texto Simples (plaintext) Chave Secreta Algoritmo de Criptografia Algoritmo de Decriptografia Chave Secreta =

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 técnicas baseadas em permutação sucessiva de bits. O algoritmo é considerado obsoleto: –1998: DES-cracker da Electronic Frontier Foundation (EFF), ao custo de US$ , quebrou o algoritmo em 2 dias.Electronic Frontier Foundation –2008: COPACOBANA RIVYERA (128 Spartan 's), ao custo de US$10.000, quebrou o algoritmo em menos de um dia.

10 2013, Edgard Jamhour DES - Estrutura Uma permutação inicial (IP) 16 rounds de processamento (função de Feistel –F) Uma permutação final (FP)

11 2013, Edgard Jamhour Função de Feistel Opera em meio bloco (32 bits) de cada vez. É composto de 4 operações: –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 através de uma operação tabelada. –Permutation efetua uma permutação nos 32 bits para espalhar os bits de cada S-box em pelo menos 4 S- boxes differences para o próximo round.

12 2013, Edgard Jamhour Modos de Operação O DES possui vários modos de operação, dependendo da maneira como os blocos de 64 bits de uma mesma mensagem são criptografados. Alguns exemplos são: –ECB: Electronic Codebook Mode –CBC: Cipher Block Chaining

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.

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.

15 2013, Edgard Jamhour Chave Pública = CRIPTOGRAFIA ASSIMÉTRICA Sistema de Criptografia Assimétrico –Utiliza um par de chaves. –Uma chave publica para criptografar a mensagem. –Uma chave privada para decriptografar a mensagem. A chave pública não é secreta. A chave privada é secreta. A chave pública deve ser distribuída para os usuário que desejarem enviar uma mensagem com segurança.

16 2013, Edgard Jamhour Chave Pública (Criptografia Assimétrica) Texto Simples (plaintext) Texto Codificado (ciphertext) Texto Simples (plaintext) Chave Pública Chave Privada Algoritmo de Criptografia Algoritmo de Descriptografia

17 2013, Edgard Jamhour RSA (Rivest, Shamir, Adleman) Sejam p, q e e números primos (> 512 bits). Calcula-se: –n = p.q e ed = 1 mod (p-1)(q-1) As chaves são definidas da seguinte maneira: –Chave pública: (n,e) e Chave privada: d Para criptografar uma mensagem m efetua-se a operação: –s = m e mod n Para decriptografar, efetua-se a operação: –m = s d mod n

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 são coprimos. Seja e = 7 5.Calcular o valor de d tal que (d * e) % φ(n) = 1. Uma solução possível é d = 3 [(3 * 7) % 20 = 1] 6.A chave pública é (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

19 2013, Edgard Jamhour RSA O algoritmo RSA é muito mais lento que o DES, pois os cálculos efetuados são complexos. Por utilizar números primos, o RSA precisa de chaves muito grandes para reproduzir o mesmo grau de segurança do DES. As chaves em RSA são em geral da ordem de 1024 bits.

20 2013, Edgard Jamhour Assinatura Digital com Chave Pública Permite ao receptor verificar a integridade da mensagem: –O conteúdo não foi alterado durante a transmissão. –O transmissor é quem ele diz ser. Assinatura digital Chave privada Algoritmo de assinatura digital Mensagem isto é isto é segredo segredo

21 2013, Edgard Jamhour Implementação 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

22 2013, Edgard Jamhour Geração e Validação das Assinaturas Assinatura Digital DIGEST 1B2A37... Criptografia com chave privada Algoritmo de Hashing Rede Assinatura Digital xxxx yyyy zzzz DIGEST Descriptografia com chave pública DIGEST Algoritmo de Hashing COMPARAÇÃO RECEPTOR TRANSMISSOR xxxx yyyy zzzz

23 2013, Edgard Jamhour Verificação da Integridade da Mensagem Transmissor (A) Receptor (B) MENSAGEM ASSINATURA DIGITAL CHAVE PRIVADA DE A CHAVE PÚBLICA DE A O receptor precisa ter a chave pública do transmissor para verificar a assinatura.

24 2013, Edgard Jamhour Autoridade Certificadora C.A. (Certification Authority) I.D. do Proprietário Assinatura Digital Autoridade Certificadora (Verisign, Certisign, Etc.) Chave pública (e.g., Banco do Brasil) CHAVE PRIVADA I.D. da CA Certificado X509 Banco do Brasil S.A. Brasilia, DF, Brasil Verisign, Inc.

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

26 2013, Edgard Jamhour Estratégias de Certificação O software que recebe o certificado (por exemplo, o browser) deve possuir a chave pública da autoridade certificadora. Base de chaves I.D. do Proprietário Assinatura Eletrônica I.D. da Autoridade Certificadora VERISIGN: Off-line On-linewww.bancodobrasil.com.br

27 2013, Edgard Jamhour PKI (Public Key Infrastructure) O termo PKI (Infraestrutura de chave pública) é utilizado para descrever o conjunto de elementos necessários para implementar um mecanismo de certificação por chave pública. EMPRESA A EMPRESA B CA (Autoridade Certificadora) certificados

28 2013, Edgard Jamhour Como a criptografia pode ser implementada? Protolco de Aplicação FTP, SMTP, HTTP, Telnet, SNM, etc. TCP, UDP Data Link Ethernet, Token Ring, FDDI, etc IP Física Aplicações Tecnologia heterogênea aplicação transporte rede enlace física Seqüência de empacotamento

29 2013, Edgard Jamhour SSL SSL: Secure Sockets Layer HTTPTELNET SSL TCP/IP POP HTTPsTELNETsPOPs Sockets

30 2013, Edgard Jamhour Exemplo: HTTPS CLIENTE SERVIDOR SOCKS SSL >1023 SOCKS SSL HTTP HTTPS Recurso Não Protegido Recurso Protegido X

31 2013, Edgard Jamhour SSL - Visão Simplificada Servidor (Subjet) Autoridade Certificadora 1 O servidor gera um par de chaves assimétricas (pública e privada) Chave privada {PriS} Chave pública {PubS} 2 O servidor envia um CSR, contendo sua chave pública 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]

32 2013, Edgard Jamhour SSL - Visão Simplificada Cliente (Subjet) Servidor (Subject) Requisição TCP para um recurso protegido Chave privada {PriS} Chave pública {PubS} O servidor envia o seu certificado para o cliente 4 Certificado [PubS][AssCA] 5 6 Certificado [PubS][AssCA] Chave pública {PubCA} O cliente valida o certificado usando a chave pública da CA e extrai a chave pública do servidor Chave pública {PubS}

33 2013, Edgard Jamhour SSL - Visão Simplificada Cliente (Subjet) Servidor (Subject) Chave privada {PriS} Chave pública {PubS} 7 Chave secreta {SecC} O cliente gera um chave secreta (simétrica) aleatória = chave de sessão e a criptografa com a chave pública do servidor Chave pública {PubS} {{SecC}PubS} 8 O cliente envia sua chave secreta, criptografada, para o servidor {{SecC}PubS}

34 2013, Edgard Jamhour SSL - Visão Simplificada Cliente (Subjet) Servidor (Subject) Chave privada {PriS} Chave pública {PubS} Chave secreta {SecC} 9 O servidor descriptografa a chave secreta do cliente, utilizando sua chave privada Chave secreta {SecC} 10 {{SecC}PubS} Chave pública {PubS} {(Dados)SecC} A troca bi-direcional de dados é protegida com a chave secreta gerada pelo cliente

35 2013, Edgard Jamhour SSL e TLS SSL: Secure Socket Layer –Definido pela Netscape –Versão atual: 3.0 TLS: Transport Layer Security –Definido pelo IETF –Versão atual: 1.0 –RFC 2246 (Janeiro de 1999) O TLS 1.0 é baseado no SSL 3.0, mas eles possuem diferenças que os tornam incompatíveis.

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 algorítmo e as chaves de criptografia antes que o primeiro byte da comunicação segura seja transmitido.

37 2013, Edgard Jamhour SSL/TLS

38 2013, Edgard Jamhour SSL Record Protocol

39 2013, Edgard Jamhour TLS Os objetivos do TLS são: –Segurança criptográfica entre dois pontos. –Interoperabilidade: programadores independentes devem ser capazes de desenvolver capazes de se comunicar, sem que um conheça o código do outro. –Extensibilidade: novos algorítmos de criptografia podem ser incorporados quando necessário. –Eficiência: reduzir o uso de CPU e o tráfego de rede a níveis aceitáveis.

40 2013, Edgard Jamhour Secure Socket Layer (SSL) e Transport Layer Security (TLS) O SSL/TLS permite executar duas funções básicas: –autenticação 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 (obrigatório)

41 2013, Edgard Jamhour Identificação do CA Autenticação do Servidor SSL/TLS permite ao usuário confirmar a identidade do servidor. SSL Identificação do Servidor Chave pública do servidor Assinatura Digital de uma CA

42 2013, Edgard Jamhour Certificados de Servidor

43 2013, Edgard Jamhour Autenticação do Cliente SSL permite ao servidor identificar a identidade do cliente. SSL Identificação do CA Identificação do Cliente Chave pública do Cliente Assinatura Digital de uma CA

44 2013, Edgard Jamhour Certificados de Cliente

45 2013, Edgard Jamhour Criptografia da Comunicação Após a certificação, o SSL/TLS cria uma chave de sessão que garante: –Confidencialidade e Proteção contra Tampering (alteração dos dados em transito). info (chave secreta aleatória) info

46 2013, Edgard Jamhour TLS Handshake

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

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 conexão SSL SSL_connect( SSL *ssl) (chave secreta associada ao socket SSL) Efetua a conexão 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 conexão e libera recursos SSL_shutdown(ssl) SSL_free(ssl) Encerra conexão e libera recursos SSL_shutdown(ssl) SSL_free(ssl) Carrega bibliotecas Define versão do SSL Carrega certificado do cliente Carrega certificados da CA Certificado do Servidor [Requisição do certificado cliente] segredos Dados criptografados com a chave secreta

49 2013, Edgard Jamhour Conclusão Criptografia Simétrica –Chaves de pelo menos 128 bits –Rápido –Usado para proteção de dados Criptografia Assimétrica –Chaves de pelo menos 1024 bits –Lento –Usado no processo de negociação de chaves


Carregar ppt "2013 Edgard Jamhour Professor Edgard Jamhour Criptografia Assinaturas Digitais Certificados Digitais."

Apresentações semelhantes


Anúncios Google