Você está na página 1de 8

Atributos de segurança

TOCI-08: Segurança de Redes


Fundamentais
I confidencialidade
Prof. Rafael Obelheiro I integridade
rro@joinville.udesc.br I disponibilidade
Derivados
I autenticação de origem: saber com quem se está falando
I não repúdio: provar que uma entidade estava envolvida em algum
evento
Como esses atributos podem ser garantidos em um canal de
comunicação?
Aula 9: Segurança de Comunicações

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 1 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 2 / 32

Ataques a canais de comunicação Confidencialidade

mensagem
emissor receptor Dados transmitidos por um canal inseguro podem ser observados
por terceiros
I redes sem fio
F celular, WLAN
Mensagens podem ser I redes locais
I capturadas F modo promı́scuo, tráfego broadcast
I modificadas I Internet
I falsificadas (spoofing) F depende da localização do atacante
I fabricadas
I reproduzidas (replay ) Proteção: mecanismos de cifragem
Mecanismos criptográficos são fundamentais para implementar O emissor precisa de uma chave autêntica para o receptor
contramedidas

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 3 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 4 / 32
Mecanismos de cifragem Criptografia

Protegem a confidencialidade de dados e tráfego Criptografia é a ciência e o estudo de escritas secretas

Usados em alguns mecanismos de autenticação Criptoanálise é a ciência e o estudo de métodos para quebrar
cifras
Cifragem é o foco tradicional da criptografia
Criptologia = criptografia + criptoanálise

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 5 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 6 / 32

Terminologia Cifragem usando criptografia simétrica

chave chave
Cifragem: um texto em claro (plaintext) x é convertido em um secreta secreta

texto cifrado (ciphertext) sob o controle de uma chave K


I eK (x) emissor
texto em claro
cifragem
texto cifrado
decifragem
texto em claro
receptor
original
Decifragem com uma chave K obtém o texto em claro
correspondente a um texto cifrado y
I dK (y) Protege confidencialidade das mensagens entre emissor e
Cifras simétricas: a chave de decifragem é igual à chave de receptor
cifragem Emissor e receptor precisam compartilhar uma chave
Cifras assimétricas: a chave de cifragem e a chave de I chave secreta ou simétrica
decifragem são diferentes F não pode ser revelada a terceiros
I as chaves estão matematicamente relacionadas I para n participantes, são necessárias n(n − 1)/2 chaves
I é computacionalmente inviável obter uma chave a partir da outra I necessidade de mecanismo para troca de chaves
Segurança do algoritmo depende da segurança da chave

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 7 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 8 / 32
Cifras de bloco vs cifras de fluxo Cifras de bloco

Cifras de bloco: cifram seqüências de blocos “longos” de dados Algoritmos: DES, 3DES, AES (Rijndael), Blowfish, . . .
sem mudar a chave Tamanhos tı́picos de bloco: 64/128/256 bits
I a segurança depende da função de cifragem
A segurança não pode ser provada
I tamanhos tı́picos de bloco: 64/128 bits
Algoritmos são projetados para resistir a ataques conhecidos
Cifras de fluxo (stream): cifram seqüências de blocos “curtos” de
dados usando um fluxo contı́nuo de bits como chave I criptoanálise diferencial e linear
I a segurança depende do gerador da chave Tamanho recomendado de chave: 80–90 bits
I a cifragem pode ser algo bem simples, como um XOR I define o espaço de busca para um ataque de força bruta
I tamanhos tı́picos de bloco: 1 bit, 1 byte DES: chaves de 56 bits vulneráveis a ataques de força bruta

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 9 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 10 / 32

Criptografia de chave pública Cifragem usando chave pública

chave chave
Publicada por Diffie e Hellman em 1976 pública privada

Cada participante tem um chave pública de cifragem e uma


texto em claro texto cifrado texto em claro
chave privada de decifragem emissor cifragem decifragem
original
receptor

Obter a chave privada a partir da chave pública é (ou deveria ser)


computacionalmente inviável
O emissor precisa de um mecanismo para obter a chave pública
A chave pública não precisa ser mantida secreta, mas não do receptor
necessariamente é conhecida por todo mundo I não necessariamente mais simples que obter uma chave secreta
Exemplo: RSA (Rivest/Shamir/Adleman) compartilhada
Para n participantes, são necessários n pares de chaves

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 11 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 12 / 32
Infra-estruturas de chaves públicas (ICP) Integridade

Dados transmitidos por um canal inseguro podem ser modificados


Aparentemente, criptografia de chave pública resolve o problema
por um adversário
de estabelecimento de uma chave secreta compartilhada I ataques ativos
Isso é parcialmente verdadeiro
Mecanismos criptográficos de integridade protegem contra
I como obter a chave pública de alguém com quem desejo me
comunicar?
modificações não autorizadas
F se um canal seguro já existe, por que usar criptografia?
I além da integridade, autenticação de origem
I como saber quem possui a chave privada correspondente a uma Sem uso de chaves
dada chave pública? I funções one-way (hashes criptográficos)
Infra-estruturas de chaves públicas permitem
I podem ser usados com armazenamento seguro
I vincular chaves públicas a entidades Com uso de chaves
I ter confiança sobre a validade de uma chave I códigos de autenticação de mensagem (MACs, message
authentication codes)
Public key infrastructures (PKI) I usados em canais de comunicação

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 13 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 14 / 32

Funções one-way Exemplo de proteção de integridade

Para proteger um programa x, o hash h(x) é computado em um


Requisitos de uma função one-way h: sistema correto e armazenado em um local à prova de
Facilidade de computação: dado x, é fácil computar h(x) modificações (CD-ROM)
Compressão: h mapeia entradas x de comprimento arbitrário em A proteção do valor do hash é fundamental; como o cálculo do
saı́das h(x) com comprimento fixo de n bits hash não envolve informações secretas, qualquer um pode criar
Resistência a pré-imagem: dado um valor y, é um hash válido para um dado arquivo
computacionalmente inviável encontrar uma entrada x tal que Para verificar se o programa foi alterado, é só recalcular o hash e
h(x) = y compará-lo com o valor armazenado
Princı́pio de funcionamento do Tripwire

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 15 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 16 / 32
Colisões Resistência a colisões

A aplicação anterior requer mais que a propriedade de resistência


a pré-imagem de h A proteção de integridade exige funções hash resistentes a
A possibilidade de um atacante reconstruir o programa a partir do colisões
hash não preocupa É preciso diferenciar
O que realmente importa é se um atacante conseguir mudar o I resistência a 2a pré-imagem (resistência a colisões fraca): dados
programa x para x 0 de tal modo que h(x) = h(x 0 ) uma entrada x e h(x), é compuacionalmente inviável encontrar
uma outra entrada x 0 6= x tal que h(x) = h(x 0 )
Nesse caso, o mecanismo de proteção de integridade não I resistência a colisões (forte): é computacionalmente inviável
conseguiria detectar a mudança encontrar duas entradas x e x 0 quaisquer (x 0 6= x) tais que
Existe uma colisão quando duas entradas x e x 0 são mapeadas h(x) = h(x 0 )
para o mesmo hash
I não é um problema em AED, mas é um problema aqui

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 17 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 18 / 32

Propriedades de funções one-way Códigos de integridade de mensagens

x ? x x’ x ? ? ? Usados para detectar alterações em documentos


I MICs (Message Integrity Codes)
I também chamados de códigos de detecção de manipulação ou de
modificações
Existem dois tipos de MICs
I funções hash one-way: compressão, facilidade de computação,
resistência a pré-imagem, resistência a 2a pré-imagem
F OWHFs (one-way hash functions)
h(x) h(.) h(x) h(x) h(.) I funções hash resistentes a colisões: compressão, facilidade de
facilidade de resistência colisão resistência a resistência a
computação, resistência a 2a pré-imagem, resistência a colisões
computação a pré−imagem 2a pré−imagem colisão F CRHFs (collision-resistant hash functions)

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 19 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 20 / 32
Paradoxo do aniversário Funções hash populares

A probabilidade para encontrar colisões acidentalmente depende


do comprimento do hash (em bits)
Dado um hash y com n bits, o número esperado de tentativas MD4: fraca, é computacionalmente viável encontrar colisões
para encontrar um x tal que h(x) = y é 2n significativas
Dados valores de hash com n bits, um conjunto com 2n/2 MD5: escolha comum em protocolos na Internet mas possui
entradas provavelmente contém um par que causa uma colisão projeto similar ao do MD4 e por isso não é mais recomendada
Paradoxo do aniversário SHA-1 (Secure Hash Algorithm): primeira opção de substituição
I m bolas numeradas de 1 a m são colocadas em uma urna ao MD5, tem sido bastante atacada nos últimos anos
I uma bola é retirada, seu número anotado e a bola reposta I complexidade do melhor ataque corrente é de 263 operações
I o passo anterior é repetido (esperado seria 280 )
I para m → ∞, o número esperado de bolas retiradas até quepum RIPEMD-160: usado principalmente na Europa
número anteriormente sorteado apareça novamente é de πm/2
Conseqüência prática: o poder computacional de um hash é dado
por n/2

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 21 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 22 / 32

Checksums Códigos de autenticação de mensagens (MACs)


Em comunicações não há como proteger os valores de hash
I podem ser simplesmente recalculados
A saı́da é usar um segredo
I computar um MAC hk (x) para uma mensagem x usando uma
O resultado do cálculo de uma função hash é chamado valor do chave k
hash, resumo da mensagem (message digest) ou checksum
Para autenticar uma mensagem, o receptor precisa compartilhar
Checksum é um termo confuso
com o emissor a chave secreta usada para calcular o MAC
I em redes, muitas vezes é usado para se referir a códigos de
detecção/correção de erros, como CRC Um terceiro que não conhece a chave não pode validar o MAC
Os checksums usados por antivı́rus devem ser calculados usando Um MAC deve ter as propriedades de compressão e facilidade de
computação, uma propriedade adicional de resistência a
hashes criptográficos computação
I para um valor fixo de k desconhecido pelo adversário, dado um
conjunto de valores (xi , hk (xi )), é computacionalmente inviável
computar hk (x) para qualquer nova entrada x
MACs (funções hash com chaves) garantem a autenticação da
origem das mensagens
c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 23 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 24 / 32
HMAC Autenticidade

Um algoritmo de MAC pode ser derivado de um hash criptográfico Se um canal de comunicação é inseguro, não se pode ter certeza
h usando a construção HMAC sobre a origem das mensagens transmitidas por ele
Para uma dada chave k e uma dada mensagem x, calcula-se I forja de ARP (ARP spoofing)
I forja de endereços IP (IP spoofing)
HMAC(x) = h(k ||p1 ||h(k ||p2 ||x)) I ataques de homem no meio (MITM)
MACs podem ser usados
onde p1 e p2 são cadeias de bits (padding) que estendem k para I necessidade de uma chave compartilhada
um comprimento de bloco adequado para a função de
A solução baseada em criptografia de chave pública são as
compressão usada em h
assinaturas digitais
HMAC é especificado na RFC 2104

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 25 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 26 / 32

Assinaturas digitais Assinaturas digitais


chave chave
privada pública

mensagem
+
mensagem assinatura aceita/rejeita
emissor assinatura verificação receptor
Usadas para prover autenticação de origem, integridade e não
repúdio
Usados em alguns mecanismos de autenticação distribuı́da Emissor tem uma chave pública para verificação e uma chave
Mecanismos de assinatura digital têm três componentes privada para assinatura (→ criptografia de chave pública)
I geração de chaves O emissor usa sua chave privada para gerar a assinatura para o
I procedimento de assinatura (chave privada)
documento m
I procedimento de verificação (chave pública)
O receptor usa uma chave pública de verificação para testar a
assinatura em um documento m
Assinaturas digitais podem ser vistas como um mecanismo
criptográfico para associar documentos com chaves de
verificação

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 27 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 28 / 32
Algoritmo RSA Funcionamento do RSA
O RSA utiliza cinco números
I p e q: dois números primos muito grandes (centenas de dı́gitos)
I n = p·q
I e: a chave de cifragem — qualquer número relativamente primo a
(p − 1)(q − 1)
Proposto por Rivest, Shamir e Adleman em 1978 F relativamente primo = sem fatores comuns
Criptossistema de chave pública mais conhecido I d: a chave de decifragem — derivada de p, q e e
Pode ser usado para cifragem e para assinatura digital
d = e−1 mod (p − 1)(q − 1)
Baseado na dificuldade de fatoração de números
I decomposição de um número em seus fatores primos A chave pública é formada por n e e
A chave privada é formada por n e d
Os números p e q não podem ser revelados
I a chave privada depende de p e q
Fórmula de cifragem: c = me mod n
Fórmula de decifragem: m = c d mod n

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 29 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 30 / 32

Exemplo de funcionamento do RSA Bibliografia

1. Alice escolhe p = 47 e q = 71 (ambos primos)


2. Alice calcula n = p · q = 47 × 71 = 3337
3. Alice calcula (p − 1)(q − 1) = 46 × 70 = 3220. Sua chave de
cifragem e precisa ser relativamente prima a 3220, então ela
escolhe e = 79 Dieter Gollmann.
4. Alice calcula sua chave de decifragem Computer Security, 2nd Edition. Wiley, 2006.
d = e−1 mod (p − 1)(q − 1) = 79−1 mod 3220 = 1019 Capı́tulo 11.
5. A chave pública de Alice é (n, e) = (3337, 79)
6. Bob quer enviar o número 688 cifrado para Alice
7. De posse da chave pública de Alice, Bob calcula
c = me mod n = 68879 mod 3337 = 1570
8. Quando Alice recebe c = 1570, ela usa sua chave de decifragem
d para obter m: m = c d mod n = 6881019 mod 3337 = 688

c 2008 Rafael Obelheiro (DCC/UDESC)


Aula 9: Segurança de Comunicações SEG 31 / 32 c 2008 Rafael Obelheiro (DCC/UDESC)
Aula 9: Segurança de Comunicações SEG 32 / 32