CRIPTOGRAFIA ASSINATURAS DIGITAIS CERTIFICADOS DIGITAIS Professor Edgard Jamhour

  • Slides: 55
Download presentation
CRIPTOGRAFIA ASSINATURAS DIGITAIS CERTIFICADOS DIGITAIS Professor Edgard Jamhour

CRIPTOGRAFIA ASSINATURAS DIGITAIS CERTIFICADOS DIGITAIS Professor Edgard Jamhour

CRIPTOGRAFIA E DESCRIPTOGRAFIA Texto Aberto (Plain. Text) Texto Fechado (Ciphertext) DECRIPTOGRAFIA

CRIPTOGRAFIA E DESCRIPTOGRAFIA Texto Aberto (Plain. Text) Texto Fechado (Ciphertext) DECRIPTOGRAFIA

SISTEMA DE CRIPTOGRAFIA SIMPLES Caesar Cipher: Shift Cipher Substituição de letras pelas letras deslocadas

SISTEMA DE CRIPTOGRAFIA SIMPLES Caesar Cipher: Shift Cipher Substituição de letras pelas letras deslocadas de N. ABCDEFGHIJKLMNOPQRSTUVWXYZABC Nada de novo no front. N=3 Qdgd gh qryr qr iurqw. N=4 Rehe hi rszs rs jvstx.

ESPAÇO DAS CHAVES (KEYSPACE) Uma chave é um valor específico do espaço de chaves

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

MARIE-ANTOINETTE AND AXEL VON FERSEN palavra secreta: depuis plain-text: le roi e la reine

MARIE-ANTOINETTE AND AXEL VON FERSEN palavra secreta: depuis plain-text: le roi e la reine l e r o i e t l a r e i n e D E P U I S D E QU K C E & C B QP I Y R U

QUEBRA DE CRIPTOGRAFIA A quebra da criptografia utilizando força bruta é inviável para espaço

QUEBRA DE CRIPTOGRAFIA A quebra da criptografia utilizando força bruta é inviável para espaço de chaves acima de 2128 Exemplo: • Keyspace = 264 • Computador: Deep Crack • 90 bilhões de chaves por segundo • Tempo para encontrar uma chave: 4 dias e meio • Keyspace = 2128 • Computador = 1 trilhão de chaves por segundo • Tempo para testar todas as chaves: • 10 milhões de trilhões de anos.

ANÁLISE DE FREQUÊNCIA 15 (87 times) 7 (56 times) 22 (54 times) 24 (42

ANÁLISE DE FREQUÊNCIA 15 (87 times) 7 (56 times) 22 (54 times) 24 (42 times) 21 (41 times) 23 (40 times) 25 (40 times) 5 (38 times) 18 (35 times) 2 (26 times) 14 (23 times) 26 (18 times) 11 (14 times) 13 (13 times) 8 (12 times) 12 6 4 29 9 3 19 0 1 17 32 33 40 61 84 (11 times) (9 times) (8 times) (7 times) (5 times) (3 times) (1 time) (1 time)

ANÁLISE DE FREQUÊNCIA Letras mais usadas em inglês: ETAONISH • 15=E Palavra mais usada

ANÁLISE DE FREQUÊNCIA Letras mais usadas em inglês: ETAONISH • 15=E Palavra mais usada em inglês: THE A sequência: 22 18 15 é a que se repete mais vezes (12) • 22=T, 18=H e 15=E Outras deduções: T H 25 E E = THREE; T H 25 E = THERE • 25 = R Analisando a sequência: "a 26 t e r = 9 a r 14 23 - 8 24 24 29 e r a t e - 9 21 t h - y 24 6“ “a F t e r = W a r D S CO O P er ate W I t h y OU

CRIPTOGRAFIA SIMÉTRICA E ASSIMÉTRICA Dois sistemas de criptografia são usados atualmente: • sistemas de

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

CHAVE SECRETA (CRIPTOGRAFIA SIMÉTRICA) Algoritmo de Decriptografia Algoritmo de Criptografia Texto Simples (plaintext) Texto

CHAVE SECRETA (CRIPTOGRAFIA SIMÉTRICA) Algoritmo de Decriptografia Algoritmo de Criptografia Texto Simples (plaintext) Texto Codificado (ciphertext) Chave Secreta = Texto Simples (plaintext) Chave Secreta

DES – DATA ENCRYPTION STANDARD Um dos algoritmo de chave secreta mais difundido é

DES – DATA ENCRYPTION STANDARD Um dos algoritmo de chave secreta mais difundido é o DES. • Originalmente desenvolvido pela IBM. • Algoritmo padronizado pela ANSI e adotado 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) 1850 chips desenvolvidos especialmente para quebrar o código Custo de US$250. 000, quebrou o algoritmo em 2 dias. 2008: COPACOBANA RIVYERA (128 Spartan-3 5000's), Custo de US$10. 000, quebrou o algoritmo em menos de um dia.

DES - ESTRUTURA 1) Uma permutação inicial (IP) 2) 16 rounds de processamento (função

DES - ESTRUTURA 1) Uma permutação inicial (IP) 2) 16 rounds de processamento (função de Feistel –F) 3) Uma permutação final (FP) 16 chaves de 48 bits diferentes são geradas a partir da chave original de 56 bits usando operações de “shift left” e “permutation choice”

FUNÇÃO DE FEISTEL Opera em meio bloco (32 bits) de cada vez. É composto

FUNÇÃO DE FEISTEL Opera em meio bloco (32 bits) de cada vez. É composto de 4 operações: Expansion: expande o bloco de 32 bits em 48, duplicando 16 bits. Key Mixing: efetua um XOR entre o bloco expandido e uma subchave 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 diferentes para o próximo round.

MODOS DE OPERAÇÃO Block Cipher Mode of Operation: • Muitos algoritmos de criptografia conseguem

MODOS DE OPERAÇÃO Block Cipher Mode of Operation: • Muitos algoritmos de criptografia conseguem criptografar apenas um tamanho fixo de bits denominado “bloco”. • O modo de operação define como aplicar um algoritmo de bloco em múltiplos blocos O DES usa blocos de 64 bits, e possui vários modos de operação. Alguns exemplos são: • ECB: Electronic Codebook Mode • CBC: Cipher Block Chaining

MODO ECB O Modo ECB divide a mensagem em blocos de 64 bits, e

MODO ECB O Modo ECB divide a mensagem em blocos de 64 bits, e criptografa cada bloco de maneira independente. DADOS BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text)

MODO CBC O Metodo CBC torna a criptografia de um bloco dependente do bloco

MODO CBC O Metodo CBC torna a criptografia de um bloco dependente do bloco anterior. DADOS BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text) BLOCO 64 bits XOR CRIPTOGRAFIA BLOCO 64 bits (cipher text)

CHAVE PÚBLICA = CRIPTOGRAFIA ASSIMÉTRICA Sistema de Criptografia Assimétrico • Utiliza um par de

CHAVE PÚBLICA = CRIPTOGRAFIA ASSIMÉTRICA Sistema de Criptografia Assimétrico • Utiliza um par de chaves. • A chave publica (não é secreta) criptografa a mensagem. • A chave privada (é secreta) descriptografa a mensagem. A chave pública deve ser distribuída para os transmissores para garantir comunicação segura com o receptor.

CHAVE PÚBLICA (CRIPTOGRAFIA ASSIMÉTRICA) Algoritmo de Criptografia Texto Simples (plaintext) Algoritmo de Descriptografia Texto

CHAVE PÚBLICA (CRIPTOGRAFIA ASSIMÉTRICA) Algoritmo de Criptografia Texto Simples (plaintext) Algoritmo de Descriptografia Texto Codificado (ciphertext) Chave Pública Texto Simples (plaintext) Chave Privada

RSA (RIVEST, SHAMIR, ADLEMAN) Sejam p, q números primos (> 512 bits). • n

RSA (RIVEST, SHAMIR, ADLEMAN) Sejam p, q números primos (> 512 bits). • n = p*q • escolher e co-primo com n tal que: 1 < e < (p-1)(q-1) • encontrar d tal que: e*d % (p-1)(q-1) = 1 As chaves são definidas da seguinte maneira: • Chave pública: (n, e) • Chave privada: (n, d) Para criptografar uma mensagem “m” efetua-se a operação: • s = me mod n Para descriptografar, efetua-se a operação: • m = sd mod n

RSA ALGORITHM EXAMPLE 1. Escolher: p = 3 e q = 11 2. Calcular:

RSA ALGORITHM EXAMPLE 1. Escolher: p = 3 e q = 11 2. Calcular: n = p * q = 3 * 11 = 33 3. Calcular: φ = (p - 1) * (q - 1) = 2 * 10 = 20 4. Escolher: e tal que 1 < e < φ e e e n são co-primos. solução possível: e = 7 5. Calcular: d tal que (d * e) % φ(n) = 1. solução possível: d = 3 pois (3 * 7) % 20 = 1 6. Escolher: chave pública = (e, n) (7, 33) 7. Escolher: chave privada = (d, n) (3, 33) 8. Criptografar: c = me mod n: se m = 2 c = 27 % 33 = 29 9. Descriptografar: m = sd mod n: se c = 29 m = 293 % 33 = 2

RSA Ron Rivest, Adi Shamir, and Leonard Adleman publicaram o algoritmo pela primera vez

RSA Ron Rivest, Adi Shamir, and Leonard Adleman publicaram o algoritmo pela primera vez em 1978. O mesmo algoritmo era conhecido pelo governo britânico desde 1973 (Clifford Cocks), mas só foi tornado público em 1997. 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. Por isso o RSA não é usado para criptografar dados. Adi Shamir

ALGORITMOS DE HASH Uma função hash é um algoritmo que mapeia dados de tamanho

ALGORITMOS DE HASH Uma função hash é um algoritmo que mapeia dados de tamanho variável em códigos de tamanho fixo: • digest ou hashes As principais aplicações das funções hash são: • tabelas hash: indexar e localizar rapidamente estruturas de dados • detectar registros duplicados em tabelas (chaves primárias) • verificar a integridade de dados recebidos pela rede ou potencialmente modificados por virus colisão: quando duas entradas diferentes geram o mesmo digest. Algoritmos usados em tabelas hash e em verificação de integridade não são os mesmos, pois em tabelas hash um certo nível de colisões é desejável. Em verificação de integridade o algoritmo precisa ser collision-resistant.

CRYPTOGRAPHIC HASH Uma função de hash precisa atender a certas propriedades para ser aplicável

CRYPTOGRAPHIC HASH Uma função de hash precisa atender a certas propriedades para ser aplicável em criptografia: 1. 2. 3. 4. 5. (SHA 1 – efeito avalanche) determinística rápida inversão inviável efeito avalanche achar colisões inviável

APLICAÇÃO DE FUNÇÕES HASH Verificação de integridade de distribuições de software e mensagens transmitidas.

APLICAÇÃO DE FUNÇÕES HASH Verificação de integridade de distribuições de software e mensagens transmitidas.

EXEMPLO: MD 5 (MESSAGE DIGEST V 5) Projetado por Ronald Rivest, 1991 (RFC 1321)

EXEMPLO: MD 5 (MESSAGE DIGEST V 5) Projetado por Ronald Rivest, 1991 (RFC 1321) Gera digests de 128 bits. A mensagem original é fragmentada em blocos de 512 bits (16 x 32) Para mensagens não múltiplo de 512 é feito padding no bloco final: • 100. . . 0 + tamanho original (64 bits) - - O digest corresponde a um estado e 128 bits dividido em 4 palavras de 32 bits O estado inicial é fixo, e os blocos de 512 bits são usados para modificar o estado Cada bloco é processado em 4 rounds, usando funções F diferentes a cada vez: Cada round consiste de 16 operação, cada uma com uma parte de 32 bits Mi da mensagem original Ki é uma constante diferente para cada operação A quantidade de bits deslocados s varia a cada operação

ASSINATURA DIGITAL COM CHAVE PÚBLICA Mensagem Algoritmo de assinatura digital Assinatura digital isto é

ASSINATURA DIGITAL COM CHAVE PÚBLICA Mensagem Algoritmo de assinatura digital Assinatura digital isto é segredo Chave privada 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.

IMPLEMENTAÇÃO DA ASSINATURA DIGITAL ABFC 01 FE 012 A 0 2 C 897 C

IMPLEMENTAÇÃO DA ASSINATURA DIGITAL ABFC 01 FE 012 A 0 2 C 897 C D 012 DF 41 Algoritmo de Hashing DIGEST Algoritmo de Cripografia ASSINATURA DIGITAL F 18901 B Mensagem com Assinatura Digital MENSAGEM aberta ASSINATURA criptografada

GERAÇÃO E VALIDAÇÃO DAS ASSINATURAS RECEPTOR TRANSMISSOR xxxx yyyy zzzz Algoritmo de Hashing DIGEST

GERAÇÃO E VALIDAÇÃO DAS ASSINATURAS RECEPTOR TRANSMISSOR xxxx yyyy zzzz Algoritmo de Hashing DIGEST 1 B 2 A 37. . . Rede Assinatura Digital Criptografia com chave privada DIGEST Algoritmo de Hashing COMPARAÇÃO Assinatura Digital DIGEST Descriptografia com chave pública

VERIFICAÇÃO DA INTEGRIDADE DA MENSAGEM Transmissor (A) Receptor (B) MENSAGEM CHAVE PRIVADA DE A

VERIFICAÇÃO DA INTEGRIDADE DA MENSAGEM Transmissor (A) Receptor (B) MENSAGEM CHAVE PRIVADA DE A ASSINATURA DIGITAL CHAVE PÚBLICA DE A O receptor precisa ter a chave pública do transmissor para verificar a assinatura.

AUTORIDADE CERTIFICADORA Autoridade Certificadora (Verisign, Certisign, Etc. ) C. A. (Certification Authority) CHAVE PRIVADA

AUTORIDADE CERTIFICADORA Autoridade Certificadora (Verisign, Certisign, Etc. ) C. A. (Certification Authority) CHAVE PRIVADA Certificado X 509 I. D. do Proprietário Chave pública (e. g. , Banco do Brasil) I. D. da CA www. verisign. com Verisign, Inc. www. bancodobrasil. com. br Banco do Brasil S. A. Brasilia, DF, Brasil Assinatura Digital

NOMENCLATURA X 509 Um certificado X 509 é emitido para um distinguished name. DN

NOMENCLATURA X 509 Um certificado X 509 é emitido para um distinguished name. DN Field Abbrev. Description Example Common Name CN Name being certified CN=Joe Average Organization or Company O Name is associated with this organization O=Snake Oil, Ltd. Organizational Unit OU Name is associated with this organization unit, such as a department OU=Research Institute City/Locality L Name is located in this City L=Snake City State/Province ST Name is located in this State/Province ST=Desert Country C Name is located in this Country (ISO code) C=XZ

ESTRATÉGIAS DE CERTIFICAÇÃO VERISIGN: www. verisign. com I. D. do Proprietário Off-line I. D.

ESTRATÉGIAS DE CERTIFICAÇÃO VERISIGN: www. verisign. com I. D. do Proprietário Off-line I. D. da Autoridade Certificadora Assinatura Eletrônica On-line www. bancodobrasil. com. br Base de chaves O software que recebe o certificado (por exemplo, o browser) deve possuir a chave pública da autoridade certificadora.

PKI (PUBLIC KEY INFRASTRUCTURE) O termo PKI (Infraestrutura de chave pública) é utilizado para

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. certificados EMPRESA A CA (Autoridade Certificadora) certificados EMPRESA B

COMO A CRIPTOGRAFIA PODE SER IMPLEMENTADA? Aplicações Protolco de Aplicação FTP, SMTP, HTTP, Telnet,

COMO A CRIPTOGRAFIA PODE SER IMPLEMENTADA? Aplicações Protolco de Aplicação FTP, SMTP, HTTP, Telnet, SNM, etc. Seqüência de empacotamento aplicação TCP, UDP transporte rede IP Tecnologia heterogênea Data Link Ethernet, Token Ring, FDDI, etc Física enlace física

SSL SSL: Secure Sockets Layer HTTP POP TELNET HTTPs POPs TELNETs 80 110 23

SSL SSL: Secure Sockets Layer HTTP POP TELNET HTTPs POPs TELNETs 80 110 23 443 995 992 Sockets SSL TCP/IP

EXEMPLO: HTTPS HTTP SOCKS >1023 80 SOCKS SERVIDOR CLIENTE HTTPS SSL >1023 443 SSL

EXEMPLO: HTTPS HTTP SOCKS >1023 80 SOCKS SERVIDOR CLIENTE HTTPS SSL >1023 443 SSL X Recurso Protegido Recurso Não Protegido

SSL - VISÃO SIMPLIFICADA Autoridade Certificadora CSR [Pub. S] 3 Certificado [Pub. S][Ass. CA]

SSL - VISÃO SIMPLIFICADA Autoridade Certificadora CSR [Pub. S] 3 Certificado [Pub. S][Ass. CA] CSR [Pub. S] O servidor envia um CSR , contendo sua chave pública para a CA 2 Chave privada {Pri. CA} 1 4 Servidor (Subjet) A CA envia o certificado X 509 para o servidor Certificado [Pub. S][Ass. CA] O servidor gera um par de chaves assimétricas (pública e privada) Chave pública {Pub. S} Chave privada {Pri. S}

SSL - VISÃO SIMPLIFICADA Servidor (Subject) Requisição TCP para um recurso protegido 4 O

SSL - VISÃO SIMPLIFICADA Servidor (Subject) Requisição TCP para um recurso protegido 4 O servidor envia o seu certificado para o cliente Certificado [Pub. S][Ass. CA] Chave pública {Pub. S} Chave privada {Pri. S} 6 5 Cliente (Subjet) O cliente valida o certificado usando a chave pública da CA e extrai a chave pública do servidor Chave pública {Pub. CA} Certificado [Pub. S][Ass. CA] Chave pública {Pub. S}

SSL - VISÃO SIMPLIFICADA O cliente gera um chave secreta Servidor (Subject) 7 (simétrica)

SSL - VISÃO SIMPLIFICADA O cliente gera um chave secreta Servidor (Subject) 7 (simétrica) aleatória = chave de sessão e a criptografa com a chave pública do servidor Chave pública {Pub. S} Chave privada {Pri. S} Cliente (Subjet) Chave secreta {Sec. C} Chave pública {Pub. S} {{Sec. C}Pub. S} 8 O cliente envia sua chave secreta, criptografada, para o servidor {{Sec. C}Pub. S}

SSL - VISÃO SIMPLIFICADA Servidor (Subject) Chave pública {Pub. S} Chave privada {Pri. S}

SSL - VISÃO SIMPLIFICADA Servidor (Subject) Chave pública {Pub. S} Chave privada {Pri. S} Chave secreta {Sec. C} {{Sec. C}Pub. S} Chave pública {Pub. S} 9 O servidor descriptografa a chave secreta do cliente, utilizando sua chave privada Chave secreta {Sec. C} {(Dados)Sec. C} 10 A troca bi-direcional de dados é protegida com a chave secreta gerada pelo cliente Cliente (Subjet)

SSL E TLS SSL: Secure Socket Layer • Definido pela Netscape • Versão atual:

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.

TLS O TLS define dois sub-protocolos: • TLS Record Protocol • Utilizado para encapsular

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.

SSL/TLS

SSL/TLS

SSL RECORD PROTOCOL

SSL RECORD PROTOCOL

TLS Os objetivos do TLS são: • Segurança criptográfica entre dois pontos. • Interoperabilidade:

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.

SECURE SOCKET LAYER (SSL) E TRANSPORT LAYER SECURITY (TLS) O SSL/TLS permite executar duas

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. O servidor se autentica para o cliente (obrigatóri SSL/TLS O cliente se autentica para o servidor (opctiona

AUTENTICAÇÃO DO SERVIDOR SSL/TLS permite ao usuário confirmar a identidade do servidor. SSL Chave

AUTENTICAÇÃO DO SERVIDOR SSL/TLS permite ao usuário confirmar a identidade do servidor. SSL Chave pública do servidor Identificação do Servidor Identificação do CA Assinatura Digital de uma CA

CERTIFICADOS DE SERVIDOR

CERTIFICADOS DE SERVIDOR

AUTENTICAÇÃO DO CLIENTE SSL permite ao servidor identificar a identidade do cliente. SSL Chave

AUTENTICAÇÃO DO CLIENTE SSL permite ao servidor identificar a identidade do cliente. SSL Chave pública do Cliente Identificação do CA Assinatura Digital de uma CA

CERTIFICADOS DE CLIENTE

CERTIFICADOS DE CLIENTE

CRIPTOGRAFIA DA COMUNICAÇÃO Após a certificação, o SSL/TLS cria uma chave de sessão que

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). (chave secreta aleatória) info

TLS HANDSHAKE

TLS HANDSHAKE

EXEMPLOS DE CIPHER SUITES TLS_RSA_EXPORT_WITH_RC 4_40_MD 5 EXP-RC 4 -MD 5 TLS_RSA_WITH_RC 4_128_MD 5

EXEMPLOS DE CIPHER SUITES TLS_RSA_EXPORT_WITH_RC 4_40_MD 5 EXP-RC 4 -MD 5 TLS_RSA_WITH_RC 4_128_MD 5 RC 4 -MD 5 TLS_RSA_WITH_RC 4_128_SHA RC 4 -SHA TLS_RSA_EXPORT_WITH_RC 2_CBC_40_MD 5 EXP-RC 2 -CBC-MD 5 TLS_RSA_WITH_IDEA_CBC_SHA IDEA-CBC-SHA TLS_RSA_WITH_DES_CBC_SHA DES-CBC-SHA TLS_RSA_WITH_3 DES_EDE_CBC_SHA DES-CBC 3 -SHA TLS_RSA_WITH_AES_128_CBC_SHA AES 128 -SHA TLS_RSA_WITH_AES_256_CBC_SHA AES 256 -SHA

API SSL Cria contexto API: SSL_CTX_new (SSL_CTX *) Carrega bibliotecas Define versão do SSL

API SSL Cria contexto API: SSL_CTX_new (SSL_CTX *) Carrega bibliotecas Define versão do SSL Carrega certificado do cliente Carrega certificados da CA Cria um socket TCP (socket) Associa o socket ao contexto API: SSL_set_bio (SSL *ssl) > 1023 Efetua a conexão SSL_connect( SSL *ssl) (chave secreta associada ao socket SSL) Certificado do Servidor [Requisição do certificado cliente] segredos Verifica o certificado do servidor SSL_get_verify_result(SSL * ssl) Envia dados criptografados SSL_write(SLL *ssl, . . . ) Recebe dados já descriptografados SSL_read(SSL * ssl, . . . ) Encerra conexão e libera recursos SSL_shutdown(ssl) SSL_free(ssl) Dados criptografados com a chave secreta > 80

CONCLUSÃO Criptografia Simétrica • Chaves de pelo menos 128 bits • Rápido • Usado

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