Segurança e auditoria
de sistemas
Carlos Oberdan Rolim
Ciência da Computação
Sistemas de informação
Criptografia
* Créditos: Prof. Dr.Edgar Jamhour - PUC Parana
Criptografia Baseada em Chaves
CRIPTOGRAFIA
Texto Aberto
(PlainText)
Texto Fechado
(Ciphertext)
DESCRIPTOGRAFIA
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
ABCDEFGHIJKLMNOPQRSTUVWXYZ
DEFGHIJKLMNOPQRSTUVWXYZABC
Nada de novo
no front.
N=3
Qdgd gh qryr
qr iurqw.
N=4
Rehe hi rszs rs
jvstx.
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
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
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
Chave Secreta (Criptografia Simétrica)
Algoritmo de
Descriptografia
Algoritmo de
Criptografia
Texto
Simples
(plaintext)
Texto
Codificado
(ciphertext)
Chave Secreta
=
Texto
Simples
(plaintext)
Chave Secreta
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.
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
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)
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
XOR
BLOCO 64 bits
XOR
CRIPTOGRAFIA
CRIPTOGRAFIA
BLOCO 64 bits
(cipher text)
BLOCO 64 bits
(cipher text)
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.
Chave Pública (Criptografia Assimétrica)
Algoritmo de
Criptografia
Texto
Simples
(plaintext)
Algoritmo de
Decriptografia
Texto
Codificado
(ciphertext)
Chave Pública

Texto
Simples
(plaintext)
Chave Privada
Chave Pública e Chave Secreta
Receptor
(servidor)
Transmissor
(cliente)
2
COMUNICAÇÃO
Chave pública SEGURA
(chave secreta
aleatória)
1
Chave privada
(chave secreta
aleatória)
4
3
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
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.
Assinatura Digital com Chave Pública
Mensagem
Algoritmo
de assinatura
digital
Assinatura
digital
isto é
segredo
Chave privada
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.
Implementação da Assinatura Digital
ABFC01
FE012A0
2C897C
D012DF
41
ABFC01
FE012A0
2C897C
D012DF
41
Algoritmo
de
Hashing
DIGEST
Algoritmo de
Cripografia
ASSINATURA
DIGITAL
F18901B
Mensagem
com
Assinatura
Digital
MENSAGEM
aberta
ASSINATURA
criptografada
Geração e Validação das Assinaturas
RECEPTOR
TRANSMISSOR
xxxx
yyyy
zzzz
xxxx
yyyy
zzzz
Algoritmo
de
Hashing
Algoritmo
de
Hashing
DIGEST
1B2A37...
DIGEST
Rede
Assinatura
Digital
Criptografia com
chave privada
COMPARAÇÃO
Assinatura
Digital
DIGEST
Decriptografia
com chave
pública
Verificação da Integridade da
Mensagem
Transmissor
(A)
Receptor
(B)
MENSAGEM
CHAVE PRIVADA DE A
ASSINATURA
DIGITAL
CHAVE PÚBLICA DE A
O receptor precisa ter a chave
pública do transmissor para verificar
a assinatura.
Autoridade Certificadora
Autoridade
Certificadora
(Verisign,
Certisign,
Etc.)
C.A.
(Certification
Authority)
CHAVE
PRIVADA
Certificado X509
I.D. do
Proprietário
I.D. da
CA
Chave públicawww.bancodobrasil.com.br
(e.g., Banco www.verisign.com
do Brasil)
Banco do Brasil
S.A. Inc.
Verisign,
Brasilia, DF, Brasil
Assinatura
Digital
Estratégias de Certificação
VERISIGN: www.verisign.com
I.D. do
Proprietário
Off-line
I.D. da
Autoridade
Certificadora
Assinatura
Eletrônica
On-line
Base
de
chaves
www.bancodobrasil.com.br
O software que recebe o certificado (por exemplo, o browser) deve
possuir a chave pública da autoridade certificadora.
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.
certificados
EMPRESA
A
CA
(Autoridade
Certificadora)
certificados
EMPRESA
B
Como a criptografia pode ser
implementada?
Aplicações
Protolco de
Aplicação
FTP, SMTP, HTTP,
Telnet, SNM, etc.
Seqüência de
empacotamento
aplicação
TCP, UDP
transporte
rede
IP
Tecnologia
heterogênea
Data Link
Ethernet, Token
Ring, FDDI, etc
Física
enlace
física
SSL
SSL: Secure Sockets Layer
HTTP
POP
TELNET
HTTPs
POPs
TELNETs
80
110
23
443
995
992
Sockets
SSL
TCP/IP
Exemplo: HTTPS
HTTP
SOCKS
>1023
80
SOCKS
SERVIDOR
CLIENTE
HTTPS
SSL
>1023
443
SSL
X
Recurso
Protegido
Recurso
Não
Protegido
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.
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.
SSL/TLS
SSL Record Protocol
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.
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)
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
Certificados de Servidor
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
Certificados de Cliente
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).
(chave secreta
aleatória)
info
(chave secreta
aleatória)
info
TLS Handshake
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).
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.
Download

Criptografia