2001, Edgard Jamhour Professor Edgard Jamhour Criptografia, Certificados Digitais SSL
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
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.
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
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
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
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==
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.
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
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.
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.
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.
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
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
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
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.
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
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
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
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.
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.
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
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
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
2004, Edgard Jamhour
SSL
• SSL: Secure Sockets Layer
HTTP TELNET
SSLSSL
TCP/IPTCP/IP
POP
8080 110110 2323
HTTPs TELNETsPOPs
443443 995995 992992
SocketsSockets
2004, Edgard Jamhour
Exemplo: HTTPS
CLIENTE SERVIDOR
SOCKS
SSL
>1023
>1023
SOCKS
SSL443
80
HTTP
HTTPS
RecursoNão
Protegido
RecursoProtegido
XX
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.
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.
2004, Edgard Jamhour
SSL/TLS
2004, Edgard Jamhour
SSL Record Protocol
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.
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)
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
2004, Edgard Jamhour
Certificados de Servidor
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
2004, Edgard Jamhour
Certificados de Cliente
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)
2004, Edgard Jamhour
TLS Handshake
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).
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.