Criptografia Assinaturas Digitais Certificados Digitais

Slides:



Advertisements
Apresentações semelhantes
André Oliveira Castro Marcelo Siqueira Pereira Filho
Advertisements

Criptografia Assimétrica
Capítulo 8: Segurança em Redes
Leandro Alonso Xastre Thiago T. C. de Felipo
Bruno Rafael de Oliveira Rodrigues
1 Segurança em Redes de Computadores Referência: Slides extraídos do material dos professores Jim Kurose e Keith Ross relativos ao livro Redes de Computadores.
Sistemas de Informação Redes de Computadores
Exercícios de Revisão Redes de Computadores Edgard Jamhour
Criptografia, Certificados Digitais SSL
URL: Redes Prof. Edgard Jamhour URL:
Exercícios de Revisão Redes de Computadores Edgard Jamhour
Segurança da Camada de Transporte
Criptografia e Segurança de Rede Capítulo 6
Criptografia e segurança de redes Capítulo 17
Funções de hash unidirecionais
SSL (Secure Sockets Layer) SET (Secure Eletronic Transactions)
Segurança de Sistemas e Redes
Criptografia II.
Criptografia II.
Criptografia Simétrica
Introdução às Redes Privadas Virtuais - VPN
Sistemas Distribuídos
Execícios de Revisão Redes e Sistemas Distribuídos II Edgard Jamhour
SSL/TLS Universidade Federal do Rio de Janeiro Escola Politécnica
Modelo de referência OSI
Segurança na Web SSL - Secure Socket Level TLS - Transport Layer Security SET – Secure Electronic Transaction.
Funções Criptográficas de Hash
Autenticação de Mensagens
Função Hash e Autenticação em Redes de Computadores
Redes de Computadores I
Public Key Infrastructure PKI
Segurança e auditoria de sistemas
Hash HTTPS SSL Certificados.
Secure Sockets Layer (SSL) e Transport Layer Security (TLS)
Company LOGO Criptografia de dados em PHP.
O Modelo OSI Guilherme Guimarães.
Segurança em Sistemas Distribuídos Stanley Araujo de Sousa.
Rafael Alcantara de Paula SSL e Certificado Digital Belo Horizonte, 31 de Janeiro de 2012.
Confidencialidade usando Criptografia Simétrica
7: Segurança de Redes1 Capítulo 7: Segurança de Redes Fundamentos: r o que é segurança? r criptografia r autenticação r integridade de mensagens r distribuição.
Segurança Ênfase em Comércio Eletrônico. Objetivo Apresentar os principais conceitos envolvendo criptografia,Assinatura digital e Certificação digital.
LUCAS DE ANDRADE VINICIUS BERNARDINO DA SILVA
Segurança & Auditoria de Sistemas AULA 07 Eduardo Silvestri
Segurança e Auditoria de Sistemas
Introdução a Criptologia (cont.)
Modos de operação das cifras de bloco
Exercício 3 Função de hash Assinatura digital
Sistemas Seguros Criptografia Simétrica e Assimétrica
2004, Edgard Jamhour Professor Edgard Jamhour Segurança em Sistemas de Informação.
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 8 Segurança em rede © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide.
PGP – Pretty Good Privacy Privacidade Bastante Boa
Tópicos Avançados em Redes de Computadores Prof. Fabiano Sabha.
Seminário Criptografia
Tópicos Avançados em Redes de Computadores
Segurança de Redes de Computadores Prof. Paulo Fernando da Silva.
Execícios de Revisão Redes de Computadores Edgard Jamhour
SRC Prof. Luciano Brandão 5° Semestre ( UFA!!!)
Criptografia Assimétrica e Autenticação de Mensagens
Protocolos Seguros Camada de Aplicação
Execícios de Revisão Redes de Computadores Edgard Jamhour
Segurança de Redes de Computadores
SSL / TLS.
Tópicos Avançados em Redes
Segurança na Internet – SSL/TLS
2007, Edgard Jamhour Professor Edgard Jamhour Exerício PPTP.
Exercícios de Revisão Redes de Computadores Edgard Jamhour
Conceituação de Assinatura e Certificação Digital
Segurança em Comércio Eletrônico Comércio tradicional realizado de maneira centralizada cercado de restrições legais Comércio eletrônico realização de.
Segurança de Rede Prof. Sales Filho Pretty Good Privace - PGP.
Criptografia Assinaturas Digitais Certificados Digitais
Transcrição da apresentação:

Criptografia Assinaturas Digitais Certificados Digitais Professor Edgard Jamhour

Criptografia e Descriptografia Texto Aberto (PlainText) Texto Fechado (Ciphertext) DECRIPTOGRAFIA

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 N = 3 Nada de novo no front. 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  2tamanho da chave Assimétrico: Keyspace  2tamanho da chave

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.

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) Texto Simples (plaintext) = Chave Secreta Chave Secreta

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$250.000, quebrou o algoritmo em 2 dias. 2008: COPACOBANA RIVYERA (128 Spartan-3 5000's), ao custo de US$10.000, quebrou o algoritmo em menos de um dia.

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

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.

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

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

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

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.

Chave Pública (Criptografia Assimétrica) Algoritmo de Criptografia Algoritmo de Descriptografia Texto Simples (plaintext) Texto Codificado (ciphertext) Texto Simples (plaintext)  Chave Pública Chave Privada

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 = me mod n Para decriptografar, efetua-se a operação: m = sd mod n

RSA Algorithm Example Escolher p = 3 e q = 11 Calcular n = p * q = 3 * 11 = 33 Calcular φ(n) = (p - 1) * (q - 1) = 2 * 10 = 20 Escolher e tal que 1 < e < φ(n) e e e n são coprimos. Seja e = 7 Calcular o valor de d tal que (d * e) % φ(n) = 1. Uma solução possível é d = 3 [(3 * 7) % 20 = 1] A chave pública é (e, n) => (7, 33) A chave privada é (d, n) => (3, 33) A criptografia de m = 2 é c = 27 % 33 = 29 A descriptografia de c = 29 é m = 293 % 33 = 2

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.

Assinatura Digital com Chave Pública Algoritmo de assinatura digital Mensagem isto é segredo Assinatura digital 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 Algoritmo de Cripografia Algoritmo de Hashing ASSINATURA DIGITAL ABFC01FE012A02C897CD012DF41 DIGEST F18901B ABFC01FE012A02C897CD012DF41 Mensagem com Assinatura Digital MENSAGEM aberta ASSINATURA criptografada

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

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

Autoridade Certificadora (Verisign, Certisign, Etc.) C.A. (Certification Authority) CHAVE PRIVADA Certificado X509 I.D. do Proprietário I.D. da CA Assinatura Digital 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

Nomenclatura X509 Um certificado X509 é 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 I.D. do Proprietário Assinatura Eletrônica I.D. da Autoridade Certificadora VERISIGN: www.verisign.com Off-line On-line Base de chaves www.bancodobrasil.com.br 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 descrever o conjunto de elementos necessários para implementar um mecanismo de certificação por chave pública. CA (Autoridade Certificadora) certificados certificados EMPRESA B EMPRESA A

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

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

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

SSL - Visão Simplificada Servidor (Subjet) Autoridade Certificadora CSR [PubS] CSR [PubS] O servidor envia um CSR , contendo sua chave pública para a CA 2 Chave privada {PriCA} Certificado [PubS][AssCA] 3 O servidor gera um par de chaves assimétricas (pública e privada) 1 Chave pública {PubS} A CA envia o certificado X509 para o servidor 4 Chave privada {PriS} Certificado [PubS][AssCA]

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

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

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

SSL e TLS SSL: Secure Socket Layer TLS: Transport Layer Security 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 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 Record Protocol

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 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ório) SSL/TLS O cliente se autentica para o servidor (opctional)

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

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

Certificados de Cliente

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

TLS Handshake

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

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

Conclusão Criptografia Simétrica Criptografia Assimé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