• Nenhum resultado encontrado

CRIPTOGRAFIA ASSINATURAS DIGITAIS CERTIFICADOS DIGITAIS. Professor Edgard Jamhour

N/A
N/A
Protected

Academic year: 2021

Share "CRIPTOGRAFIA ASSINATURAS DIGITAIS CERTIFICADOS DIGITAIS. Professor Edgard Jamhour"

Copied!
52
0
0

Texto

(1)

CRIPTOGRAFIA

ASSINATURAS DIGITAIS

CERTIFICADOS DIGITAIS

Professor

(2)

CRIPTOGRAFIA E DESCRIPTOGRAFIA

Texto Aberto

(PlainText)

Texto Fechado

(Ciphertext)

CRIPTOGRAFIA

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

Nada de novo

no front.

Qdgd gh qryr

qr iurqw.

N = 3

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

(5)

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:

(6)

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

(7)

CHAVE SECRETA (CRIPTOGRAFIA SIMÉTRICA)

Texto

Simples

(plaintext)

Texto

Codificado

(ciphertext)

Texto

Simples

(plaintext)

Chave Secreta

Algoritmo de

Criptografia

Algoritmo de

Decriptografia

Chave Secreta

=

(8)

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)

• Custo de US$250.000, quebrou o algoritmo em 2 dias.

• 2008:

• COPACOBANA RIVYERA (128 Spartan-3 5000's),

(9)

DES - ESTRUTURA

Uma permutação inicial (IP)

16 rounds de processamento (função de Feistel –F) Uma permutação final (FP)

(10)

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.

(11)

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

(12)

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) BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text) BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text)

(13)

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 CRIPTOGRAFIA BLOCO 64 bits (cipher text) XOR BLOCO 64 bits CRIPTOGRAFIA BLOCO 64 bits (cipher text) XOR

(14)

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.

(15)

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

(16)

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:

(17)

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

(18)

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.

(19)

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

(20)

CRYPTOGRAPHIC HASH

Uma função de hash precisa atender a certas propriedades para ser

aplicável em criptografia:

(SHA1 – efeito avalanche)

1. determinística 2. rápida

3. inversão inviável 4. efeito avalanche

(21)

APLICAÇÃO DE FUNÇÕES HASH

Verificação de

integridade de

distribuições de

software e

mensagens

transmitidas.

(22)

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:

• 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

(23)

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 é

segredo

(24)

IMPLEMENTAÇÃO DA ASSINATURA

DIGITAL

ABFC01 FE012A0 2C897C D012DF 41 DIGEST F18901B

Algoritmo

de

Hashing

ASSINATURA DIGITAL ABFC01 FE012A0 2C897C D012DF 41

Mensagem

com

Assinatura

Digital

MENSAGEM aberta ASSINATURA criptografada

Algoritmo de

Cripografia

(25)

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

(26)

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.

(27)

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

www.bancodobrasil.com.br Banco do Brasil S.A.

Brasilia, DF, Brasil

www.verisign.com Verisign, Inc.

(28)

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

(29)

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: www.verisign.com

Off-line

On-line

www.bancodobrasil.com.br

(30)

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 certificados

(31)

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

(32)

SSL

SSL: Secure Sockets Layer

HTTP TELNET

SSL

TCP/IP

POP

80

110

23

HTTPs POPs TELNETs

443

995

992

Sockets

(33)

EXEMPLO: HTTPS

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

X

(34)

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]

(35)

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}

(36)

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

(37)

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

(38)

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.

(39)

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

(40)
(41)
(42)

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.

(43)

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)

(44)

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

(45)
(46)

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

(47)
(48)

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)

(49)
(50)

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

(51)

API SSL

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)

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)

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)

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

Dados criptografados com a chave secreta

(52)

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

Referências

Documentos relacionados

Um instrumento é classificado pelo valor justo por meio do resultado se for mantido para negociação, ou seja, designado como tal quando do reconhecimento inicial. Os

23/09/18 – após café da manhã deslocamento para Pompéia e Herculano com retorno a Roma no final do dia.. 25/09/18 – após café da manhã deslocamento para San Casciano (pernoite

Este capítulo caracteriza a primeira etapa da DSR (identificação do problema), e está atrelado a falta de um modelo para estruturação de Centros de Controle Integrados

AÇÃO ANULATÓRIA ISS e multa - Exercício de 2015 Município de São Paulo Divergência quanto ao enquadramento das atividades da contribuinte - Autora, que

Foram obtidos, pelo método de processamento sol-gel, os materiais compósitos SiO2/ZrO2/Fosfato, partindo de tetraetil ortosilicato (TEOS), butóxido de zircônio, e

Usu´ ario usa a pr´ opria chave secreta parcial e gera chave.

O projeto do plano ficou incompleto, inclusive o metrô previsto para circular nas ilhas da avenida, com estações nos viadutos Dona Paulina, Condessa de São Joaquim e Pedroso

NUTRIÇÃO FUNCIONAL NUTRACÊUTICOS/FITOTERÁPICOS COMPLEXO B 2mg/kg L-GLUTAMINA 20-30mg/kg ZINCO QUELATO 10mg/kg BROMELINA 500mcg-10mg/kg. TARAXACUM