ea2a15143844fd3370a89a9615723fbe.ppt
- Количество слайдов: 69
CRIPTOGRAFIA ASSINATURAS DIGITAIS CERTIFICADOS DIGITAIS SSL/TLS Professor Edgard Jamhour
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 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 (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 l e r o i e t l a r e i ne DEPU I SDE QUKCE &CBQP I YRU
QUEBRA DE CRIPTOGRAFIA A quebra da criptografia utilizando força bruta é inviável para espaço de chaves acima de 128 bits. • 2128 = 69 bilhões de vezes a massa da Terra medida em gramas Keyspace = 256 Computador: Deep Crack (1856 chips) 72 quatrilhões de chaves 90 bilhões de chaves por segundo Tempo para encontrar uma chave: 56 horas Keyspace = 2128 Computador: Hipotético 1 quintilhão de chaves por segundo Tempo para testar todas as chaves: 100 milhões de bilhões de anos.
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 (11 times) 6 (11 times) 4 (9 times) 29 (8 times) 9 (8 times) 3 (7 times) 19 (5 times) 0 (3 times) 1 (1 time) 17 (1 time) 32 (1 time) 33 (1 time) 40 (1 time) 61 (1 time) 84 (1 time)
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 C O O P e r a t e W I t h y O U
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 Codificado (ciphertext) Chave Secreta = Texto Simples (plaintext) Chave Secreta
DES – DATA ENCRYPTION STANDARD Um dos algoritmo de chave secreta mais difundido é o DES. • • Originalmente desenvolvido pela IBM. Baseado no algoritmo de Host Feistel Aprovado pelo NSA (National Security Agency) Algoritmo padronizado pelo NBS (atual NIST) em 1997. DES criptografa blocos de 64 bits com chaves de 56 bits. • DES utiliza técnicas baseadas em substituição e permutação de bits (funções Feistel). 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.
CIFRAS BASEADAS EM FEISTEL Dado: Sequência de chaves: K 0, . . . , Kn Bloco a ser criptografado: • Bloco é dividido em 2 partes iguais Criptografia: n+1 rounds • Li+1 = Ri • Ri+1= Li F(Ri, Ki) Descriptografia: • mesma operação com chaves na ordem reversa • Ri = Li+1 • Li= Ri+1 F(Li+1, Ki)
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” Chave: sequência de 16 chaves
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. Bloco de 32 bits
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 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 anterior. DADOS BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text) BLOCO 64 bits XOR CRIPTOGRAFIA BLOCO 64 bits (cipher text)
ALGORITMOS SIMÉTRICOS USADOS ATUALMENTE AES: Advanced Encryption Standard • • • Derivado dos algoritmos Rijndael Publicado pelo NIST em 2001 NIST: National Institute of Standards and Technology Adotado pelo governo Americano Baseado em SPN: Substitution-Permutation Network (Similar ao DES) Algoritmos usados pelo Google Chrome em ordem de preferência: • AES: 128 • AES: 256 • 3 DES: 3 x 56 bits
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 Codificado (ciphertext) Chave Pública Texto Simples (plaintext) Chave Privada
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: 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 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.
ALGORITMOS DE HASH Mapeia dados de tamanho variável em códigos de tamanho fixo: • Digest ou Hashes Principais aplicações: • tabelas hash: indexar e localizar rapidamente estruturas de dados • detectar duplicação de registros em tabelas • verificar a integridade de dados recebidos pela rede ou potencialmente modificados por virus colisão: entradas diferentes geram o mesmo digest. Em verificação de integridade o algoritmo precisa ser resistente a colisão. Não deve ser possível encontrar duas mensagens que gerem o mesmo Digest usando menos tentativas que a força bruta
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.
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) A, B, C, D: Bloco inicial fixo de 128 bits dividido em partes de 32 bits: Mi Parte de 32 bits da mensagem original (16 partes) Ki Constante diferente para cada operação S Quantidade de bits deslocados (varia a cada operação) 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
ASSINATURA DIGITAL COM CRIPTOGRAFIA ASSIMÉTRICA Eu sou Jon Snow E eu não sei de nada HASH + Criptografia Assinatura digital Chave privada Permite ao receptor verificar a integridade e autenticidade da mensagem: • Integridade: a mensagem não recebida é igual aquela gerada. • Autenticidade: a origem (identidade do autor) é comprovada. • Non-Repudiation: quem executa uma ação não pode negar sua autoria
ASSINATURA DIGITAL COM CRIPTOGRAFIA ASSIMÉTRICA Eu sou Jon Snow Função Hash DIGEST E eu não sei de nada Chave Privada do Autor ASSINATURA DIGITAL F 18901 B Eu sou Jon Snow Mensagem com Assinatura E eu não sei de nada Digital MENSAGEM aberta ASSINATURA criptografada
GERAÇÃO E VALIDAÇÃO DAS ASSINATURAS Eu sou Jon Snow TRANSMISSOR E eu não sei de nada Eu sou Jon Snow função hash Rede Digest Assinatura Digital E eu não sei de nada descriptografia 1 B 2 A 37. . . chave pública do Jon Snow função hash criptografia chave privada do Jon Snow Assinatura Digital RECEPTOR Digest == ?
VERIFICAÇÃO DA ASSINATURA DIGITAL 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.
COMO TER CERTEZA QUE A CHAVE PÚBLICA ESTÁ CORRETA? responde o nome de B com o endereço de C Transmissor (A) SERVIDOR DNS FALSO Rede NAT cria regras de redirecionamento para C Chave Pública do Bad. Boy ou injeta endereço de DNS falso em A 1 2 Solicita a chave pública de B Recebe a chave pública de C Bad. Boy (C) Receptor (B)
MODELOS DE AUTENTICAÇÃO WOT: Web of Trust • Modelo descentralizado de confiança • PGP (Pretty Good Privacy) • Phil Zimmermann em 1991 PKI: Public Key Infrastructure • • Modelo centralizado e hierárquico de confiança Certificados X 509 usados em SSL/TLS Versão original 1988 (para redes X 500) Versão para uso na Internet: RFC 5280 • Usualmente referida como PKIX
PGP: PRETTY GOOD PRIVACY Mensagem Cifrada Mensagem de Bob chave secreta de Bob (randômica) Mensagem de Bob cifrada chave publica de Alice criptografia simétrica criptografia assimétrica chave privada de Alice descriptografia assimétrica Rede descriptografia simétrica Mensagem de Bob cifrada chave secreta de Bob Mensagem Cifrada
WEB OF TRUST & PATH SERVERS COMO SHARAPOVA PODE VALIDAR A MENSAGEM DE MARTINA? Serena conhece Venus Essa chave pública pertence a Venus. Assinado: Serena Qual o menor caminho de validação para chave de Martina? conhece Martina Essa chave pública pertence a Martina. Assinado: Venus Mensagem assinada com a chave privada de Martina Sharapova conhece Serena OBS: conhecer é ter a chave pública e a assinatura é feita com a chave privada
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
CERTIFICADOS X 509 Campo Exemplo Versão v 3 Número de Série 3 b 5 b 9 d 41 f 0 00 b 6 e 4 95 c 3 fc 84 24 41 37 f 7 Algoritmo de Assinatura sha 256 RSA (sha 256 With. RSAEncryption) Algoritmo de Hash sha 256 Emissor CN = Geo. Trust SHA 256 SSL CA, O = Geo. Trust Inc. , C = US Validade de domingo, 16 de outubro de 2016 21: 00 até terça-feira, 17 de outubro de 2017 20: 59 Requerente CN = conteudo 2. uol. com. br, OU = Universo Online AS, O = Universo Online AS, L = Sao Paulo, S = Sao Paulo, C = BR Chave Pública RSA (2048) . . muitos e muitos bytes. . . Lista de Revogação: URL=http: //gj. symcb. com/gj. crl Assinatura Digital 67 30 f 1 f 0 07 72 f 6 99 d 1 14 a 1 dc 98 31 84 49 a 9 e 9 98 cf
AUTORIDADE CERTIFICADORA Autoridade Certificadora (Verisign, Certisign, Etc. ) C. A. (Certification Authority) CHAVE PRIVADA Certificado X 509 Issuer Subject Chave pública (e. g. , Banco do Brasil) 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 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 Subject Off-line Issuer Assinatura On-line Base de chaves www. google. com O software que recebe o certificado (por exemplo, o browser) deve possuir a chave pública da autoridade certificadora.
TIPOS DE CERTIFICADOS • Certificado Root • • • Certificados Intermediários • • • Auto assinado Representa uma Autoridades Certificadoras (CA) Validado com sua própria chave pública O certificado precisa estar previamente armazenado Assinado por um certificado Root ou Intermediário Representa uma Autoridade Certificadora (CA) Usado para assinar o certificado da Entidade Final O certificado não precisa estar previamente armazenado Certificados de Entidade Final • • • Assinado com um certificado Root ou Intermediário Usado para identificar Servidores HTTP e outros serviços O certificado não precisa estar previamente armazenado
CADEIA DE CERTIFICAÇÃO Certificados Intermediários são usados para: • Escalabilidade no processo de geração de certificados • Redução do risco de exposição da chave privada do Root • Redução dos certificados comprometidos em caso de exposição da chave privada C. A. Root Subject: Geo. Trust Global Issuer: Geo. Trust Global C. A. Intermediária Subject: Rapid. SSL SHA 256 Issuer: Geo. Trust Global Cadeia completa transmitida ao cliente (Apenas o root é opcional) Entidade Final Subject: www. uol. com. br Issuer: Rapid. SSL SSHA 56 ----C. A. Intermediária Subject: Rapid. SSL SHA 256 Issuer: Geo. Trust Global ----C. A. Root Subject: Geo. Trust Global Issuer: Geo. Trust Global Entidade Final Subject: www. uol. com. br Issuer: Rapid. SSL SSHA 56
REVOGAÇÃO DE CERTIFICADOS • De acordo com a RFC 5280: PKIX • Certificados são identificados por números de série • • Unicos para cada C. A. CRL: Certificate Revogation List • • Lista de certificados revogados assinados pela CA e disponível publicamente em um repositório Certificados são identificados pelo seu “numero de série” • CRLs são atualizadas periodicamente pela CA • Clientes fazem verificação periódica das CRLs
COMO A CRIPTOGRAFIA PODE SER IMPLEMENTADA? Aplicações Aplicação HTTP, FTP, SSH, TELNET, etc. Seqüência de empacotamento SOCKET INTERFACE Sistema Operacional (Kernel) aplicação TCP, UDP transporte rede IP Enlace enlace Interface de Rede Física física
SEGURANÇA FEITA PELA APLICAÇÃO
SSL E TLS SSL: Secure Socket Layer • Definido pela Netscape • Ultima versão: 3. 0 (0. 3% das conexões HTTPs feitas pelo Firefox) • Considerado vulnerável atualmente (ataques POODLE e BEAST) TLS: Transport Layer Security • • Definido pelo IETF Versão 1. 0: RFC 2246 (Janeiro de 1999) TLS 1. 0 também é considerado vulnerável a ataques BEAST (javascript) Versão atual: 1. 2 • O TLS 1. 0 é baseado no SSL 3. 0, mas introduziu melhorias que o tornam mais seguro • Novas melhorias foram introduzidas nas versões TLS 1. 1 e TLS 1. 2
INÍCIO DE UMA CONEXÃO SEGURA • Existem duas formas de um Cliente iniciar uma conexão segura (TLS/SSL) com um Servidor: • Por porta (modo explícito): • • O cliente conecta-se a uma porta diferente para iniciar a conexão segura: Exemplo: 80 para conexão normal, 443 para conexão segura • Por protocolo (modo implícito) • • • O cliente envia um “hello” desprotegido para o servidor e inicia um handshake Se o handshake for bem sucedido, comuta para o modo seguro Exemplo: STARTTLS usado pelo SMTP
INICIALIZAÇÃO PORTA POPS POP IMAP SMTP HTTP TELNET 110 143 25 80 IMAPS SMTPS HTTPS TELNETS 995 993 465 443 992 22 SSL/TLS Interface SOCKET Interface TCP/IP
EXEMPLO: HTTPS HTTP SOCKS >1023 80 SOCKS SERVIDOR CLIENTE HTTPS SSL >1023 443 SSL X Recurso Protegido Recurso Não Protegido
TLS - VISÃO SIMPLIFICADA O servidor envia um CSR , contendo sua chave pública para a CA Autoridade Certificadora CSR [Pub. S] 2 3 Certificado [Pub. S][Ass. CA] A CA assina o CSR 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}
TLS- VISÃO SIMPLIFICADA Servidor (Subject) Requisição TCP para um recurso protegido 5 6 O servidor envia o seu certificado para o cliente Certificado [Pub. S][Ass. CA] 7 Chave pública {Pub. S} Chave privada {Pri. S} 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} 8 Cliente {{Seg. C}Pub. S} Certificado [Pub. S][Ass. CA] Chave pública {Pub. S} O cliente envia um segredo aleatório {Seg. C} criptografado com a chave pública do servidor
TLS - VISÃO SIMPLIFICADA Servidor (Subject) {{Seg. C}Pub. S} Cliente Chave privada {Pri. S} Segredo {Seg. C} 9 O servidor decifra o segredo do cliente usando sua chave privada Segredo {Seg. C} Cliente e Servidor geram uma chave secreta a partir do segredo aleátório 10 Chave Secreta {Sec. C} {(Dados)Sec. C} Chave Secreta {Sec. C} Cliente e Servidor se comunicam com criptografia simétrica usando a chave secreta.
TLS: OBJETIVOS Segurança criptográfica entre dois pontos. Interoperabilidade: cliente e servidor de fabricantes diferentes. Extensibilidade: novos algoritmos 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.
TLS: SUB-PROTOCOLOS • TLS Handshake Protocol • Utilizado para negociar o algoritmo e as chaves de criptografia antes que o primeiro byte da comunicação seja transmitido. • TLS Record Protocol • Utilizado para encapsular os protocolos das camadas superiores. • Para controle de integridade, MAC (Message Authentication Code) ou HMAC é adicionado a cada registro.
TLS RECORD PROTOCOL
TLS HANDSHAKE Source: https: //hpbn. co/transport-layer-security-tls/
TLS HANDSHAKE • Escolha dos algoritmos de assinatura e criptografia • Troca de certificados entre o cliente e o servidor • Troca de segredo compartilhado para geração da chave secreta O servidor se autentica para o cliente (obrigatóri SSL/TLS O cliente se autentica para o servidor (opcional
ESCOLHA DO ALGORITMO DE CRIPTOGRAFIA O cliente oferece uma lista de opções de algoritmos de criptografia para o servidor. O servidor escolhe um dos algoritmos e informa o cliente. A comunicação segura acontece usando uma chave secreta gerada de acordo com o algoritmo escolhido. (chave secreta aleatória) info
TLS HANDSHAKE: CLIENTE HELLO
TLS HANDSHAVE: SERVER HELLO
AUTENTICAÇÃO DO SERVIDOR • O envio do certificado do servidor para o cliente é obrigatório. • Caso o certificado tenha sido assinado por uma CA intermediária, o certificado da CA também precisa ser enviado. SSL Chave pública do servidor Identificação do Servidor Identificação do CA Assinatura Digital de uma CA
TLS HANDSHAKE: SERVER CERTIFICATE
CERTIFICADOS DE SERVIDOR • Both Alice and Bob generate their own public and private keys. • Both Alice and Bob hide their respective private keys. • Alice shares her public key with Bob, and Bob shares his with Alice. • Alice generates a new message for Bob and signs it with her private key. • Bob uses Alice’s public key to verify the provided message signature.
AUTENTICAÇÃO DO CLIENTE O envio do certificado do cliente é requisitado pelo servidor. Esse mecanismo é opcional, e permite autenticar a máquina do usuário sem intervenção manual. SSL Chave pública do Cliente Identificação do CA Assinatura Digital de uma CA
CERTIFICADOS DE CLIENTE
TLS HANDSHAKE: RESUMO 1. TLS é executado sobre uma conexão TCP já estabelecida 2. O cliente envia a versão de TLS e a lista de ciphersuites suportados para o servidor. 3. O servidor envia para o cliente o ciphersuite escolhido e seu certificado. Opcionalmente solicita o certificado do cliente. 4. O cliente inicia uma troca de chaves do tipo RSA ou Diffie-Hellman para estabelecer a sessão segura baseada em chave secreta 5. O servidor envia uma mensagem criptografada com a chave secreta 6. O cliente descriptografa a mensagem gerada com a chave secreta.
ESCOLHA DO ALGORITMO DE CRIPTOGRAFIA (chave secreta aleatória) info
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 para proteção de dados Criptografia Assimétrica • Chaves de pelo menos 2048 bits • Lento • Usado no processo de negociação de chaves


