TES16/TOCC20 - Introdução à Segurança da Informação
Módulo 06: Autenticidade e Resumos
Prof. M.Sc. Charles Christian Miers
Problema
Comunicações em Redes de Computadores em geral e
principalmente em redes abertas como a Internet trouxeram
algumas questões à tona:
Necessidade de privacidade, autenticidade e integridade de
mensagens
Criptografia de chave pública não oferece agilidade em
Assinaturas Digitais
Criptografia é insuficiente para garantir integridade de dados Surgiu a necessidade de se criar mecanismos conhecidos
Autenticação e Hashing
A necessidade de autenticação
Funções para provimento de autenticação:
Ciframento
Códigos de autenticação (MACs e MDCs)
Assinaturas digitais.
A necessidade de autenticação
Autenticação (da origem e do conteúdo) de
mensagens é um conjunto de técnicas fundamentais
para proteção contra:
personificação da autoria de uma mensagem
modificação acidental ou não de uma mensagem
modificação na ordem de uma seqüência de
mensagens
atraso ou re-envio de mensagens
Técnicas para autenticação
São quatro as técnicas criptográficas empregadas
em autenticação:
Ciframento
MACs (Message Authentication Codes)
MDCs (Manipulation Detection Codes)
Assinaturas Digitais
Assinaturas digitais são as únicas que provêem
proteção contra repúdio de autoria
F
un
çõ
es
H
as
h
Com chave
Sem chave
pública secreta MAC UOWHF MDC OWHF CRHFModification Detection Code Message Authentication Code
Classificação das Funções
Autenticação com MACs
Um MAC (Message Authentication Code) de uma
mensagem M é o resultado do cálculo de uma
função de mão única Ck (M), onde M é a mensagem
em questão e k é uma informação secreta, conhecida
somente pelas duas partes em comunicação
Uma parte envia M e seu MAC
A outra parte recalcula o MAC e aceita M se o valor
Autenticação com MACs
Exceto pelo fato de que a mensagem passa em
claro, a técnica de MACs é parecida com a de
ciframento simétrico, para esse fim
De fato, é possível usar uma função de ciframento no
papel de Ck( )
Na prática, usa-se uma função de Hash com
propriedades criptográficas
A forma de combinar M e k segue a RFC 2104 e a
Autenticação com MDCs
Um MDC (Manipulation Detection Code) de uma
mensagem M é o resultado do cálculo de uma
função de mão única C (M), onde M é a mensagem
em questão
Uma parte envia M e seu MDC
A outra parte recalcula o MDC e aceita M se o valor
obtido é igual ao MDC recebido
Além de ser de mão única, a função C( ) deve ser
resistente a colisões
Esses dois são atributos de funções de Hash, ou
Autenticação com MDCs
A técnica vista na transparência anterior não provê
autenticação mútua, já que qualquer terceira parte
pode produzir o MDC de uma mensagem
Funções de resumo (Hash) criptográfico
Têm propriedades interessantes do ponto de vista
criptográfico:
Podem ser aplicadas a mensagens de qualquer
tamanho
A saída é uma cadeia de tamanho fixo
h(M) é fácil de calcular e muito difícil de inverter
Tem resistência a colisões, forte e fraca
Funções de resumo criptográfico populares
Três funções de maior popularidade:
MD5 (RFC 1321): desenvolvida por Ron Rivest (do
RSA)
Produz uma saída de tamanho fixo, de 128 bits, a partir
de entradas de tamanho arbitrário
Em declínio
SHA-1 (FIPS PUB 180-1): desenvolvida pelo NIST
Produz saídas de 160 bits a partir de entradas de
tamanho arbitrário
Em uso crescente
RIPEMD-160: projeto europeu, saída de 160 bits,
Uma
Fun
Fun
çã
çã
o Hash
o Hash
uma fun
é
çã
o h : {0,1}*
{0,1}
n,
para algum n 1
Valor Hash ou resumo da mensagem
Função Hash
Origem:
Surgiu na Ciência da Computação
Função que comprime uma string de tamanho arbitrário em uma
de tamanho fixo
Também chamada de Função de Espalhamento
Definição:
Requisitos para o uso em Criptografia:
(1) Fácil de calcular o valor Hash;
(2)
Resistência à 1ª inversão, ou seja, é computacionalmente
Resistência à 1ª inversão
inviável, dado y, encontrar x tal que h(x) = y;
(3)
Resistência à 2ª inversão, ou seja, é computacionalmente
Resistência à 2ª inversão
inviável, dado x
1, encontrar x
2 x
1tal que h(x
1) = h(x
2);
(4)
Resistência a colisões, ou seja, é computacionalmente
Resistência a colisões
inviável, encontrar quaisquer x
1e x
2tais que h(x
1) = h(x
2).
Note que:
•
(2)
(3) e (3) (2)
/ /•
(2)
(4) e (4) (2)
/ /• (3) (4), mas (4) (3)
/Aplicações em Assinaturas Digitais
Aplicações em Assinaturas Digitais
Somente o
valor Hash
é assinado
Outras Aplicações
Outras Aplicações
Integridade de dados:
•
Valor hash computado previamente, usando MDC• Para verificar alteração: recomputar e comparar o valor Hash atual com o anterior
• Útil para distribuição de software e proteção
de vírus
Digital Timestamping:
•
Data e hora de criação/assinatura do documento entram no cálculo do valor Hash• Útil para proteção de propriedade intelectual
Proteção de senhas:
• O valor Hash é armazenado, ao invés da senha
Autenticação de mensagens:
•
O valor Hash é usado como autenticadorConstrução genérica
Construção genérica
• Entrada é dividida em blocos de tamanhos iguais
• Em seguida, é feita uma anexação ao final da entrada
• O cálculo do valor Hash h(X) é feito da seguinte maneira:
H
0= IV,
H
i+1= f(H
i,X
i) para 0
i < t,
h(X) = g(H
t).
Ataques mais importantes
Ataques mais importantes
• Ataques que dependem somente do tamanho da saída (n bits)
Ataque de inversão
Ataque do aniversário
Encontrar uma inversão Probabilidade: 1/2n
Tempo máximo: 2n operações
- Num grupo de k pessoas, qual o valor mínimo de k para que a probabilidade de que pelos menos duas façam aniversário no mesmo dia seja maior do que 50%?
1 – 365x364x...x(365 –k +1)/365k > ½ k = 23 k = 23
- Considerando k entradas e m = 2n possíveis saídas, qual o valor
de k para que a probabilidade de colisão seja maior do que 50%? 1 – m!/[(m-k)!mk] 1 – e[-k(k-1)]/n > ½ k k m m1/21/2 = 2 = 2n/2n/2
Comparação entre MD5 e SHA
Comparação entre MD5 e SHA
• Pertencem a mesma família de Funções Hash: MDx-classMDx-class
• MD5 é mais vulnerável a ataques de força-bruta devido a sua menor saída: 128 bits contra 160 bits do SHA
• O MD5 é mais rápido que o SHA, pois este último possui mais etapas em seu algoritmo (80 contra 64 do MD5) e um buffer maior (160 bits contra 128 bits do MD5)
• Já foram encontradas colisões para a função de compressão do MD5, enquanto que o SHA permanece inabalável
Algoritmo Performance relativa MD4 MD5 SHA SHA-1 SHA-224/256 1,00 0,65 0,31 0,12 0,31
• Ataques a MAC:
Hash para Garantia de Integridade
MAC - Função Hash com chave
Na verdade, MD5 e SHA1são MACs, mas a chave é
usada e conhecida por todos, portanto funciona
como não houvesse chave, garantindo apenas
Assinatura digital
É uma técnica de autenticação que também inclui
medidas para conter a repudiação
tanto pela origem
Assinatura Digital
Transferência de modelos de negócios do mundo real para o
mundo virtual.
Exemplos:
Um grande Banco deseja assinar contratos de câmbio
digitalmente para reduzir custos e tempo
Uma indústria deseja dar validade legal a documentos trocados
via e-mail em negociações com clientes e fornecedores
Uma seguradora deseja vender seguros de vida e saúde via
Internet, mas para isso necessita que a declaração de saúde do solicitante seja assinada digitalmente
Assinatura digital
e-DOC
Relacionamento: Algoritmos x Aplicações
IDEA KERBEROS PEM PGP SHA-1 MD5 DES/ AES RSA/ ECC X.509 SNMPv2 DSSCorreio Eletrônico Gerenciamento de Redes Autenticação
Algoritmos de Criptografia
Leitura Recomendada:
Stallings, Willian. Network Security Essentials. 2a Edição. Editora
Prentice-Hall. 2003.
Capítulos 2 e 3
Stallings, William - Cryptography and Network Security: Principles and
Practice. 4ª Edição. Prentice-Hall. 2005.
Capítulos 10, 11, 12 e 13
Terada, Routo - Segurança de Dados Criptografia em Redes de
Computador. São Paulo. Edgard Blücher. 2000