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

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

Criptografia Assinaturas Digitais Certificados Digitais

Apresentações semelhantes


Apresentação em tema: "Criptografia Assinaturas Digitais Certificados Digitais"— Transcrição da apresentação:

1 Criptografia Assinaturas Digitais Certificados Digitais
Professor Edgard Jamhour

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

3 Sistema de Criptografia Simples
Caesar Cipher: Shift Cipher 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.

4 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

5 Marie-Antoinette and Axel von Fersen
palavra secreta: depuis plain-text: le roi e la reine l e r o i t a n D E P U I S Q K C & B Y R

6 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.

7 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)

8 ANÁLISE DE FREQUÊNCIA Letras mais usadas em inglês: ETAONISH
Palavra mais usada em inglês: THE A sequência: é 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 e r a t e 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

9 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

10 Chave Secreta (Criptografia Simétrica)
Algoritmo de Decriptografia Algoritmo de Criptografia Texto Simples (plaintext) Texto Codificado (ciphertext) Texto Simples (plaintext) = Chave Secreta Chave Secreta

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

12 Cifras baseadas em Feistel
Dado: Sequência de chaves: K0, ..., 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)

13 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

14 FUNÇÃO DE FEISTEL Bloco de 32 bits
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

15 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

16 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)

17 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)

18 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 3DES: 3 x 56 bits

19 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.

20 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

21 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

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

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

24 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

25 CryptograPHIc Hash Uma função de hash precisa atender a certas propriedades para ser aplicável em criptografia: determinística rápida inversão inviável efeito avalanche achar colisões inviável (SHA1 – efeito avalanche)

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

27 Exemplo: MD5 (Message Digest v5)
Projetado por Ronald Rivest, 1991 (RFC 1321) Gera Digests de 128 bits. A mensagem original é fragmentada em blocos de 512 bits (16x32) Para mensagens não múltiplo de 512 é feito padding no bloco final: 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

28 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

29 ASSINATURA DIGITAL COM CRIPTOGRAFIA ASSIMÉTRICA
Chave Privada do Autor Eu sou Jon Snow E eu não sei de nada Função Hash ASSINATURA DIGITAL DIGEST F18901B MENSAGEM aberta ASSINATURA criptografada Eu sou Jon Snow E eu não sei de nada Mensagem com Assinatura Digital

30 GERAÇÃO E VALIDAÇÃO DAS ASSINATURAS
Eu sou Jon Snow E eu não sei de nada RECEPTOR Eu sou Jon Snow E eu não sei de nada TRANSMISSOR Eu sou Jon Snow E eu não sei de nada Assinatura Digital função hash Rede descriptografia Digest 1B2A37... função hash chave pública do Jon Snow criptografia chave privada do Jon Snow Digest Digest Assinatura Digital == ?

31 VERIFICAÇÃO DA ASSINATURA DIGITAL
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.

32 Como ter certeza que a chave pública está correta?
responde o nome de B com o endereço de C SERVIDOR DNS FALSO Rede Transmissor (A) NAT Receptor (B) cria regras de redirecionamento para C Chave Pública do BadBoy ou injeta endereço de DNS falso em A BadBoy (C) 1 Solicita a chave pública de B 2 Recebe a chave pública de C

33 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) Verisign, Inc. Banco do Brasil S.A. Brasilia, DF, Brasil

34 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

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

36 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

37 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

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

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

40 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]

41 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}

42 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

43 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

44 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.

45 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.

46 SSL/TLS

47 SSL Record Protocol

48 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.

49 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)

50 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

51 Certificados de Servidor

52 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

53 Certificados de Cliente

54 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)

55 TLS Handshake

56 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

57 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)

58 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


Carregar ppt "Criptografia Assinaturas Digitais Certificados Digitais"

Apresentações semelhantes


Anúncios Google