Transcript
Page 1: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2001, Edgard Jamhour

Professor

Edgard Jamhour

Criptografia,Certificados Digitais

SSL

Page 2: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Criptografia Baseada em Chaves

Texto Aberto(PlainText)

Texto Fechado(Ciphertext)

CRIPTOGRAFIA

DESCRIPTOGRAFIA

Page 3: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Criptografia por Chaves

• Princípio: O resultado da criptografia depende de um parâmetro de entrada, denominado chave.– Exemplo. Caesar Cipher

• Chave: N = número de letras deslocadas

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.

Page 4: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Espaço das Chaves (KeySpace)

• Uma chave é um valor específico do espaço de chaves (keyspace).– No exemplo anterior:

• KS = 25• N = 3, é a chave específica.

• Algoritmos Modernos:– Utilizam chaves binárias– O espaço de chaves depende do tamanho da chave

• Dois tipos de Algoritmos:– Simétricos: KS 2tamanho_chave

– Assimétricos: KS << 2tamanho_chave

Page 5: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Segurança =Tamanho do Espaço de Chaves

• Exemplo: Algoritmo Simétrico– chaves de 128 bits: KS = 2128 chaves

• KS = 3,4028 1038 chaves

– Computador: capaz de avaliar• 1 bilhões de chaves por segundo• = 3,1536 1016 chaves por ano• = 31,536 milhões de bilhões chaves por ano

– Testaria todas as chaves em:• 1,0781 1022 de anos• = 1,0781 1010 trilhões de anos• = 10,0781 bilhões de trilhões de anos

Page 6: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Criptografia Simétrica e Assimétrica

• Dois sistemas de criptografia são usados atualmente:– Criptografia Simétrica ou de Chave Secreta

• trabalha com uma única chave.– Chave secreta ou chave de sessão

– Criptografia Assimétrica ou de Chave Pública • trabalha com um par de chaves

– Chave pública

– Chave privada

Page 7: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Chave Secreta (Criptografia Simétrica)

Texto Simples

(plaintext)

Texto Codificado(ciphertext)

Texto Simples

(plaintext)

Chave Secreta

Algoritmo de Criptografia

Algoritmo de Descriptografia

Chave Secreta==

Page 8: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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.

Page 9: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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

Page 10: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

MODO ECB

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)

• O Modo ECB divide a mensagem em blocos de 64 bits, e criptografa cada bloco de maneira independente.

Page 11: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

MODO CBC

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

• O Metodo CBC torna a criptografia de um bloco dependente do bloco anterior.

Page 12: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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

Page 13: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Chave Pública (Criptografia Assimétrica)

Texto Simples

(plaintext)

Texto Codificado(ciphertext)

Texto Simples

(plaintext)

Chave PúblicaChave Pública Chave PrivadaChave Privada

Algoritmo de Algoritmo de CriptografiaCriptografia

Algoritmo de Algoritmo de DecriptografiaDecriptografia

Page 14: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Chave Pública e Chave Secreta

Receptor(servidor)

Transmissor(cliente)

Chave privada

Chave pública

11

22

33

(chave secreta aleatória)

44

(chave secreta aleatória)

COMUNICAÇÃO COMUNICAÇÃO SEGURASEGURA

Page 15: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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

Page 16: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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. – Espaço de Chaves <<< 2tamanho_chave

• As chaves em RSA são em geral da ordem de 1024 bits.

Page 17: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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 Assinatura digitaldigital

Chave privada

Algoritmode assinatura

digitalMensagemMensagem

isto é isto é segredosegredo

Page 18: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Implementação da Assinatura Digital

ABFC01FE012A02C897CD012DF41

DIGEST

F18901BF18901B

Algoritmo de

Hashing

ASSINATURA DIGITAL

ABFC01FE012A02C897CD012DF41

Mensagem com

Assinatura

Digital

MENSAGEM

aberta

ASSINATURA

criptografada

Algoritmo de Cripografia

Page 19: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Geração e Validação das Assinaturas

xxxxyyyyzzzz

Assinatura Assinatura DigitalDigital

DIGEST

1B2A37...Criptografia com chave privada

Algoritmo Algoritmo de de

HashingHashingRede

Assinatura Assinatura DigitalDigital

xxxxyyyyzzzz

DIGESTDIGEST

Decriptografia com chave

pública

DIGESTDIGEST

Algoritmo Algoritmo de de

HashingHashing

COMPARAÇÃO

RECEPTORTRANSMISSOR

Page 20: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Verificação da Integridade da Mensagem

Transmissor(A)

Receptor(B)

MENSAGEMASSINATURA

DIGITAL

CHAVE PRIVADA DE A CHAVE PÚBLICA DE A

O receptor precisa ter a chave O receptor precisa ter a chave pública do transmissor para verificar pública do transmissor para verificar

a assinatura.a assinatura.

Page 21: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Autoridade Certificadora

C.A.C.A.(Certification (Certification

Authority)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.brBanco do Brasil S.A.Brasilia, DF, Brasil

www.verisign.comVerisign, Inc.

Page 22: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Estratégias de Certificação

• O software que recebe o certificado (por exemplo, o browser) deve possuir a chave pública da autoridade certificadora.

Basede

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.brwww.bancodobrasil.com.br

Page 23: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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

Page 24: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Como a criptografia pode ser implementada?

Protolco de Aplicação

FTP, SMTP, HTTP, Telnet, SNM, etc.

TCP, UDP

Data LinkEthernet, Token Ring, FDDI, etc

IP

Física

Aplicações

Tecnologia heterogênea

aplicação

transporte

rede

enlace

física

Seqüência de empacotamento

Page 25: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

SSL

• SSL: Secure Sockets Layer

HTTP TELNET

SSLSSL

TCP/IPTCP/IP

POP

8080 110110 2323

HTTPs TELNETsPOPs

443443 995995 992992

SocketsSockets

Page 26: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Exemplo: HTTPS

CLIENTE SERVIDOR

SOCKS

SSL

>1023

>1023

SOCKS

SSL443

80

HTTP

HTTPS

RecursoNão

Protegido

RecursoProtegido

XX

Page 27: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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.

Page 28: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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.

Page 29: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

SSL/TLS

Page 30: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

SSL Record Protocol

Page 31: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

TLS

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

• Fabricantes diferentes

– Extensibilidade• Novos algorítmos de criptografia.

– Eficiência: • CPU• Tráfego de rede.

Page 32: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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/TLSSSL/TLS

O cliente se autentica para o servidor (opctional)

O servidor se autentica para o cliente (obrigatório)

Page 33: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Identificação do CA

Autenticação do Servidor

• SSL/TLS permite ao usuário confirmar a identidade do servidor.

SSLSSL

Identificação do Servidor

Chave pública do servidor

Assinatura Digital de uma CA

Page 34: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Certificados de Servidor

Page 35: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Autenticação do Cliente

• SSL permite ao servidor identificar a identidade do cliente.

SSLSSL

Identificação do CA

Identificação do Cliente

Chave pública do Cliente

Assinatura Digital de uma CA

Page 36: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Certificados de Cliente

Page 37: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

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

infoinfo(chave secreta aleatória)

infoinfo(chave secreta aleatória)

Page 38: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

TLS Handshake

Page 39: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Algoritmos Padronizados para SSL/TLS

• Strongest cipher suite.– Triple DES (168-bit encryption com autenticação)

• Strong cipher suites– RC4, criptografia de 128-bits (utiliza o MD5 para

autenticação)• é o mais rápido da categoria

– RC2, criptografia de 128-bits (utiliza o MD5 para autenticação)

– DES, que suporta criptografia de 56-bits (utiliza o SHA-1 para autenticação).

Page 40: 2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL

2004, Edgard Jamhour

Conclusão

• Algoritmos modernos são baseados no conceito de chaves.

• Algoritmos assimétricos são lentos e unidirecionais.

• Algoritmos simétricos são rápidos e bidirecionais.• SSL é um mecanismo para negociação de

algoritmos e chaves de criptografia.• SSL é implementado nas aplicações através de

uma biblioteca de sockets estendida.


Recommended