criptografia assinaturas digitais certificados digitaisjamhour/download/pub/graduacao/bsi/... ·...
TRANSCRIPT
2013 Edgard Jamhour
Professor
Edgard Jamhour
Criptografia
Assinaturas Digitais
Certificados Digitais
2013, Edgard Jamhour
Criptografia e Descriptografia
Texto Aberto
(PlainText)
Texto Fechado
(Ciphertext)
CRIPTOGRAFIA
DECRIPTOGRAFIA
2013, Edgard Jamhour
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
Nada de novo
no front.
Qdgd gh qryr
qr iurqw.
N = 3
N = 4 Rehe hi rszs rs
jvstx.
2013, Edgard Jamhour
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
2013, Edgard Jamhour
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.
2013, Edgard Jamhour
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
2013, Edgard Jamhour
Chave Secreta (Criptografia Simétrica)
Texto
Simples
(plaintext)
Texto
Codificado
(ciphertext)
Texto
Simples
(plaintext)
Chave Secreta
Algoritmo de
Criptografia
Algoritmo de
Decriptografia
Chave Secreta ==
2013, 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.
• 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.
2013, Edgard Jamhour
DES - Estrutura
• Uma permutação inicial (IP)
• 16 rounds de processamento
(função de Feistel –F)
• Uma permutação final (FP)
2013, Edgard Jamhour
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.
2013, 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
2013, 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.
2013, 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.
2013, 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 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.
2013, 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
DescriptografiaDescriptografia
2013, 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
2013, Edgard Jamhour
RSA Algorithm Example
1. Escolher p = 3 e q = 11
2. Calcular n = p * q = 3 * 11 = 33
3. Calcular φ(n) = (p - 1) * (q - 1) = 2 * 10 = 20
4. Escolher e tal que 1 < e < φ(n) e e e n são coprimos.
Seja e = 7
5. Calcular o valor de d tal que (d * e) % φ(n) = 1.
Uma solução possível é d = 3 [(3 * 7) % 20 = 1]
6. A chave pública é (e, n) => (7, 33)
7. A chave privada é (d, n) => (3, 33)
8. A criptografia de m = 2 é c = 27 % 33 = 29
9. A descriptografia de c = 29 é m = 293 % 33 = 2
2013, 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.
• As chaves em RSA são em geral da ordem de
1024 bits.
2013, 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
Algoritmo
de assinatura
digital MensagemMensagem
isto é isto é
segredosegredo
2013, Edgard Jamhour
Implementação da Assinatura Digital
ABFC01
FE012A0
2C897C
D012DF
41
DIGEST
F18901BF18901B
Algoritmo
de
Hashing
ASSINATURA
DIGITAL
ABFC01
FE012A0
2C897C
D012DF
41
Mensagem
com
Assinatura
Digital
MENSAGEM
aberta
ASSINATURA
criptografada
Algoritmo de
Cripografia
2013, Edgard Jamhour
Geração e Validação das Assinaturas
Assinatura Assinatura
DigitalDigital DIGEST
1B2A37... Criptografia com
chave privada
Algoritmo Algoritmo
de de
HashingHashing
Rede
Assinatura Assinatura
DigitalDigital
xxxx
yyyy
zzzz
DIGESTDIGEST
Descriptografia
com chave
pública
DIGESTDIGEST
Algoritmo Algoritmo
de de
HashingHashing
COMPARAÇÃO
RECEPTOR TRANSMISSOR
xxxx
yyyy
zzzz
2013, Edgard Jamhour
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 O receptor precisa ter a chave
pública do transmissor para verificar pública do transmissor para verificar
a assinatura.a assinatura.
2013, Edgard Jamhour
Autoridade Certificadora
C.A.C.A.
(Certification Authority)(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.
2013, Edgard Jamhour
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
2013, 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.
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.brwww.bancodobrasil.com.br
2013, 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) certificados certificados
2013, Edgard Jamhour
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
2013, Edgard Jamhour
SSL
• SSL: Secure Sockets Layer
HTTP TELNET
SSLSSL
TCP/IPTCP/IP
POP
8080 110110 2323
HTTPs TELNETs POPs
443443 995995 992992
SocketsSockets
2013, Edgard Jamhour
Exemplo: HTTPS
CLIENTE SERVIDOR
SOCKS
SSL
>1023
>1023
SOCKS
SSL 443
80
HTTP
HTTPS
Recurso
Não
Protegido
Recurso
Protegido
XX
2013, Edgard Jamhour
SSL - Visão Simplificada
Servidor
(Subjet) Autoridade
Certificadora
11 O servidor gera um par de chaves
assimétricas (pública e privada)
Chave privada
{PriS}
Chave pública
{PubS}
22 O servidor envia um CSR ,
contendo sua chave pública para a CA
A CA envia o certificado X509 para o
servidor 44
CSR
[PubS]
Certificado
[PubS][AssCA]
33 Chave privada
{PriCA} Certificado
[PubS][AssCA]
CSR
[PubS]
2013, Edgard Jamhour
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 44
Certificado
[PubS][AssCA]
55
66
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}
2013, Edgard Jamhour
SSL - Visão Simplificada Cliente
(Subjet) Servidor
(Subject)
Chave privada
{PriS}
Chave pública
{PubS}
77
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}
88
O cliente envia sua chave
secreta, criptografada, para
o servidor
{{SecC}PubS}
2013, Edgard Jamhour
SSL - Visão Simplificada Cliente
(Subjet) Servidor
(Subject)
Chave privada
{PriS}
Chave pública
{PubS} Chave secreta
{SecC}
99
O servidor descriptografa
a chave secreta do
cliente, utilizando sua
chave privada
Chave secreta
{SecC}
1010
{{SecC}PubS}
Chave pública
{PubS}
{(Dados)SecC}
A troca bi-direcional de
dados é protegida com a
chave secreta gerada
pelo cliente
2013, 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.
2013, 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.
2013, Edgard Jamhour
SSL/TLS
2013, Edgard Jamhour
SSL Record Protocol
2013, Edgard Jamhour
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.
2013, 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)
2013, 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
2013, Edgard Jamhour
Certificados de Servidor
2013, 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
2013, Edgard Jamhour
Certificados de Cliente
2013, 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)
2013, Edgard Jamhour
TLS Handshake
2013, Edgard Jamhour
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
2013, Edgard Jamhour
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
– Usado no processo de negociação de chaves