Conceito
●
Do grego, kriptos(secreto) e graphos(escrita)
●Surgiu como ciência ou arte de escrever
mensagens de forma codificada
impossibilitando a leitura a terceiros não
autorizados
●
Permanece a principal ferramenta para
garantir confidencialidade e integridade da
informação
Definições
●
Cifra
–
Conjunto de procedimentos ou técnica usada para
ocultar a mensagem
●
Cifra de substituição
–
Os caracteres da mensagem original são
Definições
●
Cifra de Transposição
–
Os caracteres da mensagem original têm sua
Definições
●
Cifras monoalfabéticas
–
Utilizam um único alfabeto para cifrar
●
Cifras polialfabéticas
–
Alfabetos da mensagem original e cifrada são
Definições
●
Chave
–
Sequencia de caracteres que funciona como
índice para a cifra determinando seu
funcionamento
–
A chave passa a ser o segredo ao invés da cifra
●
Cifras Simétricas x Assimétricas
–
Simétricos: DES, 3DES, AES, etc
Serviços criptográficos
● Confidencialidade– Garante o sigilo das informações ● Autenticação
– Prova a identidade do indivíduo ou computador na outra ponta da comunicação ● Autenticidade
– Assegura que a mensagem foi gerada por quem o indivíduo ou sistema alega ser.
Serve também para garantir a autenticidade de operações realizadas e registradas (ex: assinatura digital)
● Integridade
– Assegura que as informação não foram alteradas de sua forma original desde a sua
geração
● Não-repúdio
– Baseado na autenticidade e integridade, impede que um usuário negue ter realizado
Ameaças à Segurança na Rede
Captura de Pacotes:
– meio broadcast
– Placas de rede em modo promiscuo lêem todos os pacotes que
passam por elas
– podem ler todos os dados não criptografados (ex. senhas) – ex.: C captura os pacotes de B
A
B
C
IP Spoofing:
–
pode gerar pacotes “novos” diretamente da
aplicação, colocando qualquer valor no campo
de endereço IP de origem
–
receptor não sabe se a fonte foi falsificada
–ex.: C finge ser B
A
B
C
org:B dest:A dados
Negação de Serviço (DOS - Denial of Service):
– inundação de pacotes maliciosamente gerados “afogam” o
receptor
– DOS Distribuído (DDOS): fontes múltiplas e coordenadas
inundam o receptor
– ex., C e um computador remoto atacam A com mensagens SYN
A
B
C
SYN SYN SYN SYN SYNA linguagem da criptografia
chave simétrica de crptografia: as chaves do transmissor e do receptor são idênticas
chave pública de criptografia: critografa com chave pública, decriptografa com chave secreta
Figure 7.3 goes here
plaintext plaintext
ciphertext
K
A KB
texto aberto texto aberto
texto cifrado Algoritmo de Criptografia Algoritmo de Decriptografia canal canal
Criptografia com Chave Simétrica
código de substituição:
substituindo uma coisa por outra
– código monoalfabético: substituir uma letra por outratexto aberto: abcdefghijklmnopqrstuvwxyz texto cifrado: mnbvcxzasdfghjklpoiuytrewq
texto aberto: bob. i love you. alice texto cifrado: nkn. s gktc wky. mgsbc
Ex.:
Q:
quão difícil é quebrar este código simples?:
•força bruta (quantas tentativas?)
•outro método?
DES: criptografia com chave simétrica
DES: Data Encryption Standard
●
Padrão de criptografia dos EUA [NIST 1993]
●
chave simétrica de 56-bits, 64 bits de texto aberto na entrada
●
Quão seguro é o padrão DES?
– DES Challenge: uma frase criptografada com chave de 56 bits (“Strong
cryptography makes the world a safer place”) foi decriptografada pelo método da força bruta em 4 meses
– não há ataque mais curto conhecido
●
tornando o DES mais seguro
– use três chaves em seqüência (3-DES) sobre cada dado – use encadeamento de blocos de códigos
Criptografia de
chave simétrica:
DES
permutação inicial
16 rodadas idênticas de
função de substituição,
cada uma usando uma
diferente chave de 48
bits
permutação final
Criptografia com Chave Pública
chave simétrica
● exige que o transmissor e o receptor compartilhem a chave secreta
● Q: como combinar a chave inicialmente (especialmente no caso em que eles nunca se encontram)?
chave pública
❒ abordagem radicalmente
diferente [Diffie-Hellman76, RSA78]
❒ transmissor e receptor não compartilham uma chave secreta
❒ a chave de criptografia é
pública (conhecida por todos)
❒ chave de decriptografia é privada (conhecida somente pelo receptor)
Criptografia com chave pública
Figure 7.7 goes here
Algoritmo de Criptografia Algoritmo de Decriptografia Mensagem Mensagem aberta, m
aberta, m Mensagem Mensagem aberta, m aberta, m
mensagem cifrada
mensagem cifrada
Chave de criptografia pública
Chave de criptografia pública
Chave de decriptografia privada
Algoritmos de criptografia com chave pública
necessita d ( ) e e ( ) tal que
d (e (m)) = m
B BB
B
.
.
necessita chaves pública e privada para d ( ) e e ( )
B B
Duas exigências correlatas:
1
2
RSA: Escolhendo as chaves
1.
Encontre dois números primos grandes
p, q.
(ex., 1024 bits cada um)
2.
Calcule
n
= pq, z = (p-1)(q-1
)
3.
Escolha
e
(com e<n)
que não tem fatores primos em
comum com z. (
e, z
são “primos entre si”).
4.
Escolha
d
tal que
ed-1
é exatamente divisível por
z
.
(em outras palavras:
ed
mod
z = 1
).
RSA: Criptografia e Decriptografia
0.
Dado (
n,e
) e (
n,d
) como calculados antes
1.
Para criptografar o padrão de bits,
m
, calcule
c = m mod ne
(i.e., resto quando
m
é dividido por
e
n
)
2.
Para decriptografar o padrão de bits recebidos,
c
,
calcule
m = c mod nd
(i.e., resto quando
c
é dividido
d
n
)
m = (m mod n)e d mod nMágica acontece!
RSA exemplo:
Bob escolhe
p=5, q=7
. Então
n=35, z=24
.
e=5
(assim
e, z
são primos entre si).
d=29
(assim
ed-1
é exatamente divisível por z).
letra
m
me
c = m mod nel
12
1524832
17
c
m = c mod nd17
48196857210675091509141182522307200012
c dletra
l
criptografia: decriptografia:RSA: Porque:
m = (m mod n)e d mod n
(m mod n)e d mod n = m mod ned
Resultado da teoria dos Números: Se p,q são primos, n = pq, then
xy mod n = x mody mod (p-1)(q-1) n
= m mod ned mod (p-1)(q-1)
= m mod n1
= m
(usando o teorema apresentado acima)
(pois nós escolhemos ed divisível por
Autenticação
Meta:
Bob quer que Alice “prove” sua
identidade para ele
Protocolo ap1.0:
Alice diz “Eu sou Alice”
Cenário de Falha??
Eu sou AliceAutenticação: outra tentativa
Protocolo ap2.0:
Alice diz “Eu sou Alice” e envia seu
endereço IP junto como prova.
Cenário de Falha??
Eu sou AliceEu sou Alice
Endereço IP de Alice
Autenticação: outra tentativa
Protocolo ap3.0:
Alice diz “Eu sou Alice” e envia sua senha
secreta como prova.
Cenário de Falha?
Eu sou Alice,Eu sou Alice,
senha
Autenticação: mais uma tentativa
Protocolo ap3.1:
Alice diz “Eu sou Alice” e envia sua senha
secreta
criptografada
para prová-lo.
Cenário de Falha?
I am Alice
Autenticação: mais uma tentativa
Meta:
evitar ataque de reprodução (playback)
Figure 7.11 goes here
Nonce:
número (R) usado apenas uma vez na vida
ap4.0: para provar que Alice “está ao vivo”, Bob envia a Alice um
nonce, R. Alice deve devolver R, criptografado com a chave secreta comum
Eu sou Alice Eu sou Alice
Autenticação: ap5.0
ap4.0 exige chave secreta compartilhada
–
problema: como Bob e Alice combinam a chave
–é possível autenticar usando técnicas de chave
pública?
ap5.0:
usar nonce, criptografia de chave pública
Envie-me sua chave pública e
Envie-me sua chave pública eAA
Bob calcula Bob calcula e eAA[d[dAA[R]]=R[R]]=R autenticando autenticando
Figure 7.14 goes here
ap5.0: falha de segurança
Ataque do homem (mulher) no meio:
Trudy se passa por Alice
(para Bob) e por Bob (para Alice)
Assinaturas Digitais
Técnica criptográfica análoga
às assinaturas manuais.
● Transmissor(Bob) assina
digitalmente um documento, estabelecendo que ele é o autor/criador.
● Verificável, não-forjável:
receptor (Alice) pode verificar que Bob, e ninguém mais, assinou o documento.
Assinatura digital simples
para mensagem m:
● Bob criptografa m com sua chave privada dB, criando a
mensagem assinada dB(m).
● Bob envia m e d
B(m) para Alice.
Texto criptografado com a chave
pri-vada de Bob Mensagem pronta para transmissão Chave privada de Bob
Assinaturas Digitais (mais)
● Suponha que Alice recebe a mensagem m, e a assinatura digital dB(m)
● Alice verifica que m foi
assinada por Bob aplicando a chave pública de Bob eB a
dB(m) então verifica que
eB(dB(m) ) = m.
● Se e
B(dB(m) ) = m, quem quer
que tenha assinado m deve posuir a chave privada de Bob.
Alice verifica então que:
– Bob assinou m.
– Ninguém mais assinou m. – Bob assinou m e não m’.
Não-repúdio:
– Alice pode levar m, e a
assinatura dB(m) a um tribunal
Resumos de Mensagens
Computacionalmente caro
criptografar com chave pública mensagens longas
Meta: assinaturas digitais de comprimento fixo, facilmente computáveis, “impressão digital” ● aplicar função hash H a m, para
obter um resumo de tamanho fixo, H(m).
Propriedades das funções de Hash:
● Muitas-para-1
● Produz um resumo da mensagem
de tamanho fixo (impressão digital)
● Dado um resumo da mensagem x,
é computacionalmente impraticável encontrar m tal que x = H(m)
● computacionalmente impraticável
encontrar duas mensagens m e m’
mensagem mensagem longa longa mensagem mensagem longa longa função de hash função de hash muitas-para-um muitas-para-um resumo da resumo da mensagem, mensagem, tam. fixo tam. fixo
Assinatura digital = resumo assinado de mensagem
Bob envia mensagem digitalmente
assinada: Alice verifica a asinatura e a integridade da mensagem digitalmente assinada:
Algoritmos de Funções de Hash
● A soma verificadora da Internet
resulta num resumo de mensagem pobre.
– Muito fácil encontrar duas
mensagens com a mesma soma verificadora.
● O algoritmo MD5 é a função de hash
mais usada.
– Calcula resumo de 128-bits da
mensagem num processo de 4 etapas.
– uma cadeia arbitrária X` cujo hash
de 128 bits obtido pelo MD5 é igual ao hash de um cadeia X parece difícil de construir.
● SHA-1 também é usado.
– padrão do EUA
– resumo de mensagem com
Intermediários Confiáveis
Problema:
– Como duas entidades
estabelecem uma chave compartilhada secreta sobre uma rede?
Solução: – centro de distribuição de chaves confiável (KDC) atuando como intermediário entre as entidades Problema:
– Quando Alice obtém a chave
pública de Bob (de um web site, e-mail, ou diskette), como ela sabe que é a
chave pública de Bob e não de Trudy?
Solução
– autoridade certificadora
Centro de Distribuição de Chaves (KDC)
● Alice e Bob necessitam de um chave simétrica compartilhada. ● KDC: servidor compartilha
diferentes chaves secretas com cada usuário registrado.
● Alice e Bob conhecem as
próprias chaves simétricas, K A-KDC KB-KDC , para comunicação
com o KDC.
❒ Alice se comunica com o KDC, obtém
a chave de sessão R1, e KB-KDC(A,R1)
❒ Alice envia a Bob
KB-KDC(A,R1), Bob extraí R1
❒ Alice e Bob agora compartilham a
chave simétrica R1.
Alice conhece
R1
Bob conhece R1
Autoridades Certificadoras
● Autoridades certificadoras (CA)
associam chaves públicas a uma particular entidade.
● Entidade (pessoa, roteador,
etc.) pode registrar sua chave pública com a CA.
– Entidade fornece “prova de
identidade” à CA.
– CA cria certificado ligando a
entidade à chave pública.
– Certificado é digitalmente
assinado pela CA. ● Quando Alice quer a chave pública de
Bob:
● obtém o certificado de Bob (com Bob ou
em outro local).
● Aplica a chave pública da CA ao
informação de identidade de Bob certificado criptografado de Bob chave pública de Bob Autoridade Certificadora Chave privada da autoridade certificadora
Exemplo: E-mail seguro
• gera chave simétrica aleatória, KS.
• criptografa mensagem com KS
• também criptografa KS com a chave pública de Bob.
• envia KS(m) e eB(KS) para Bob.
• Alice quer enviar uma mensagem de e-mail secreta, m, para Bob.
Alice envia mensagem de e-mail m
Bob recebe mensagem de e-mail m
Exemplo: E-mail seguro (continuação)
• Alice quer prover autenticação do transmissor e integridade da mensagem.
• Alice assina digitalmente a mensagem.
• envia a mensagem (em texto aberto) e a assinatura digital.
Alice envia mensagem de e-mail m
Bob recebe mensagem de e-mail m
Exemplo: E-mail seguro (continuação)
• Alice quer prover privacidade, autenticação dotransmissor e integridade da mensagem.
Pretty good privacy (PGP)
● Esquema de criptografia de e-mail da Internet, um padrão de fato.
● Usa criptografia de chave
simétrica, criptografia de chave pública, função de hash e
assinatura digital, como descrito.
● Oferece privacidade,
autenticação do transmissor e integridade.
● O inventor, Phil Zimmerman, foi alvo de uma investigação
federal durante três anos.
---BEGIN PGP SIGNED MESSAGE---Hash: SHA1
Bob:My husband is out of town
tonight.Passionately yours, Alice ---BEGIN PGP SIGNATURE---Version: PGP 5.0 Charset: noconv yhHJRHhGJGhgg/12EpJ+lo8gE4vB3mqJhFEv ZP9t6n7G6m5Gw2 ---END PGP
Secure sockets layer (SSL)
● PGP oferece segurança para uma
aplicação de rede específica.
● SSL opera na camada de
transporte. Fornece segurança para qualquer aplicação baseada no TCP que usa os serviços da SSL.
● SSL: usada entre clientes WWW e
servidores de comércio eletrônico (shttp).
● Serviços de segurança da SSL: – autenticação do servidor
– criptografia dos dados
– autenticação do cliente (opcional)
● Autenticação do Servidor: – clientes com SSL habilitado
incluem chaves públicas para CA’s confiáveis.
– Cliente solicita o certificado do
servidor, originado pela entidade certificadora confiável.
– Cliente usa a chave pública da CA
para extrair a chave pública do servidor do certificado.
● Visite o menu de segurança do seu
browser para examinar suas
SSL (continuação)
Sessão SSL criptografada:
● Cliente gera uma chave de sessão
simétrica e a criptografa com a chave pública do servidor, envia a chave simétrica criptografada ao servidor.
● Usando sua chave privada, o
servidor decriptografa a chave.
● Cliente e o servidor negociam que
as futuras mensagens serão criptografadas.
● Todos os dados enviados na porta
TCP (pelo cliente ou pelo servidor) são criptografados com a chave de sessão.
● SSL: base do mecanismo
Transport Layer Security (TLS) do IETF.
● SSL pode ser usado por aplicações que não usam a Web, por exemplo, IMAP.
● Autenticação do cliente pode ser feita com certificados do cliente.
Secure electronic transactions (SET)
● projetado pra transações de
pagamento de cartões de crédito sobre a Internet.
● oferece serviços de segurança
envolvendo três partes:
– cliente
– comerciante
– banco do vendedor
Todos devem ter certificados.
● SET especifica o valor legal dos
certificados.
– divisão das responsabilidades
pelas transações
● Número do cartão do cliente é
enviado ao banco do vendedor sem que o vendedor veja o número
aberto em nenhum momento.
– Previne que os vededores
possam furtar e repassar
números de cartões de crédito.
● Três componentes de software:
– Carteira do browser
– Servidor do comerciante – Gateway do adquirente
● Veja o texto do livro para a descrição
Ipsec: Segurança na Camada de Rede
● Segurança na Camada de Rede:
– o host transmissor criptografa os
dados no datagrama IP
– Segmentos TCP e UDP; ICMP e
mensagens SNMP.
● Autenticação na Camada de Rede
– host destino pode autenticar o
endereço IP da origem
● Dois protocolos principais:
– protocolo de autenticação de
cabeçalho (AH - Authentication Header)
– protocolo de encapsulamento
seguro de dados (ESP -
Encapsulation Secure Payload)
● Tanto para o AH como para o ESP,
exige negociação entre a fonte e o destino:
– cria canal lógico de camada de
rede chamado de “acordo de serviço” (SA)
● Cada SA é unidirecional.
● Unicamente determinado por:
– protocolo de segurança (AH ou
ESP)
– endereço IP da origem
Protocolo ESP
● Oferece privacidade, autenticação de host e integridade dos dados.
● Dados e trailer ESP são criptografados.
● Campo de próximo cabeçalho está no trailer ESP.
● campo de autenticação do ESP é similar ao campo de
autenticação do AH. ● Protocolo = 50.
Autenticado
Protocolo de Autenticação de Cabeçalho (AH)
● Oferece autenticação do host
originador, integridade de dados, mas não privacidade dos dados.
● Cabeçalho AH é inserido entre o
cabeçalho IP e o campo de dados do IP.
● Campo de Protocolo = 51. ● Roteadores intermediários
processam o datagrama na forma usual.
cabeçalho AH inclui:
● identificador de conexão
● dados de autenticação: mensagem
assinada e resumo da mensagem são calculados sobre o datagrama IP
original, provendo autenticação da fonte e integridade dos dados.
● Campo próximo cabeçalho: especifica