Você está na página 1de 27

Introducción a la Seguridad en Redes

Tema 4.
Autenticación de Mensajes y funciones
HASH
Autenticación/Integridad: tipos de ataques
2

 Suplantación: enviar un mensaje de una fuente distinta de la que dice ser.


 Modificación del contenido del mensaje. Esta modificación puede
consistir en inserción, borrado, modificando o transposición.
 Modificación de secuencia. Cualquier modificación de secuencia de los
mensajes entre partes, incluyendo inserción borrado o reordenación.
 Repetición. Consiste en repetir un mensaje (también puede hacerse
repetición hacia atrás).
 Modificación de tiempo. En una aplicación no orientada a conexión se
puede retrasar un mensaje. Esto mismo puede suceder para una
secuencia de mensajes de una sesión en una aplicación orientada a
conexión.
 Repudio de origen (niega haber enviado un mensaje) o destino (niega
haber recibido un mensaje).
Autenticación de mensajes
3

 Autenticación de mensajes: procedimiento para verificar que un


mensaje recibido procede de la fuente alegada y no ha sido
alterado.
 Autenticador: el valor usado para autenticar un mensaje en un
procedimiento de autenticación.
 Procedimientos que se pueden utilizar para generar un autenticador:
 Mensaje cifrado: un mensaje cifrado con sistema simétrico o asimétrico sirve
como autenticador de dicho mensaje
 Código de autenticación de mensaje (MAC): un valor de longitud fija
producido a partir de una función pública y una clave secreta
 Función Hash: función pública que genera un valor de longitud fija y único a
partir de un mensaje de entrada de cualquier longitud
 Firma digital: utiliza función hash y cifrado asimétrico, ofrece autenticación,
integridad y no repudio
Mensaje cifrado con sistema simétrico
4

 Si A y B comparten una clave privada, los mensajes que se envían


cifrados están autenticados, sólo el otro lo puede haber cifrado.
 El problema sobre la estructura del mensaje que se plantea consiste
en saber si un mensaje recibidos es correcto una vez descifrado.
 Si el mensaje en claro es texto podemos analizar si tiene sentido.
 Si el mensaje es una secuencia de bits sin sentido no podemos saberlo.
 Una solución al problema consiste en forzar al mensaje a tener una
estructura fácil de reconocer pero que no pueda ser replicada sin la
clave.
 Ejemplo:
 A añade al mensaje M una secuencia de chequeo de error F(M) antes de cifrar.
Cifra todo y le envía a B el mensaje EK[M||F(M)].
 B descifra DK[M||F(M)], genera F(M) y lo compara con el F(M) recibido.
Mensaje cifrado con sistema asimétrico
5

 Autenticación
 Cifrar con la clave privada del origen y descifrar con la clave pública de origen.
 Así el destino tiene la seguridad de que sólo el origen pudo haber cifrado.

 Mismo problema y solución sobre la estructura del mensaje que en sistemas


simétricos.
 No es eficiente si el mensaje es largo.
 Ofrece no repudio.
 No ofrece confidencialidad, para ofrecerla debemos cifrar con la clave privada de
origen (autenticación) y después con la clave pública de destino
(confidencialidad).
 Los algoritmos asimétricos son más lentos que los simétricos.
Código de autenticación de mensaje MAC
6

 Técnica alternativa de autenticación consistente en:


 Dos usuarios A y B comparten una clave secreta k.
 Dado el mensaje de longitud variable m y la clave k, A se genera un código de
autenticación de tamaño fijo y pequeño denominado autenticador MAC=f(k, m).
 A partir de MAC y m no se puede obtener k; f no debe ser reversible.
 A envía a B el mensaje m y MAC.
 El receptor calcula MAC con la clave k y el mensaje m recibido y comprueba que
coincide con el MAC recibido.

m
Generador MAC m
Generador MAC
MAC MAC
¿=?
MAC m
k k
MAC
A B
Ventajas de MAC
7

 El cifrado convencional ya ofrece autenticación.


 ¿Por qué es más interesante utilizar MAC?.
Ventajas de MAC
8

 Distribución de un mismo mensaje a muchos destinos, si el mensaje se envía en


claro, todos lo utilizan rápidamente y sólo uno verifica autenticación.
 Receptor muy cargado y no se puede permitir descifrar todos los mensajes. Se
envía con MAC y el mensaje en claro, verifica autenticidad de algunos mensajes
de forma aleatoria.
 Autenticación que acompaña a programas informáticos. Se puede ejecutar y
comprobar integridad al mismo tiempo.
 Aplicaciones en las que no es importante la confidencialidad, sólo la autenticación.
 Aplicaciones en las que interese mantener la protección (de autenticación) más
allá de la recepción. Con cifrado convencional se mantiene hasta que se descifra.
 Separación de autenticación y confidencialidad aporta flexibilidad a la arquitectura.
Puede ser necesario implementar cada servicio a un nivel distinto.
Ataques en un criptosistema simétrico
9

 Recordamos que un oponente puede realizar ataques en un


criptosistema por dos vias:
 Debilidades del algoritmo, si son conocidas.
 Ataque por fuerza bruta utilizando todas las posibles claves. En este caso se
requiere una media de 2k-1 intentos para una clave de k bits.
Ataques en MAC
10

 Con MAC también podemos encontrar debilidades en el algoritmo.


 Las consideraciones de fuerza bruta en el caso de MAC son
diferentes:
 Si se usa una MAC de n bits hay 2n posibles códigos.
 Hay N posibles mensajes con N >> 2n.
 Hay 2k posibles claves de k bits, donde k > n.
 Con este escenario un grupo de claves (por termino medio 2k /2n= 2k-n)
producirán el mismo MAC de un mismo mensaje.
 Esto creará confusión al oponente que utilice la fuerza bruta y le obligará a
probar con otro mensaje y las 2k-n claves obtenidas de la primera vuelta.
 Se repetirá el proceso y se obtendrá la clave cuando se hayan realizado k/n
vueltas.
 Conclusión: aplicar ataque de fuerza bruta en MAC requiere mayor
esfuerzo que en un sistema criptográfico con clave de igual longitud.
Requisitos de MAC
11

1.Si un oponente observa el mensaje m y su MAC f(k, m), debe ser


computacionalmente irrealizable construir un mensaje m’ tal que f(k, m’)= f(k,
m). Necesario para que el oponente no pueda falsificar el mensaje.
2. La función MAC f(k, m) debe ser uniformemente distribuida, es decir, para los
mensajes elegidos aleatoriamente m y m´, Pr[f(k, m) = f(k, m´)]= 2-n donde n
es el número de bits de MAC.
En este caso si se aplica la fuerza bruta sobre el mensaje, habría que probar
con una media de 2n-1 mensajes para encontrar un m’ cuya MAC coincida con
la de m.
3. Dada una transformación cualquiera g, obtenemos m’=g(m), en este caso se
cumple Pr[f(k, m) = f(k, m´)]= 2-n
El algoritmo no debe ser más débil con unos bits del mensaje que con otros
ante una determinada transformación, si esto sucede y el oponente conoce el
punto débil, puede generar fácilmente un m’ con el mismo MAC que m
realizando una variación sobre estos bits.
Funciones Hash
12

 Una variante de MAC son las funciones HASH de un solo sentido.


 Las funciones hash generan un resumen h(m) de tamaño constante a partir de un
mensaje de entrada de cualquier tamaño.
 Formas de uso para enviar un mensaje m de A a B:
 Autenticación con cifrado:
 A cifrar con K el mensaje junto con su resumen (autenticación y confidencialidad):
CK[m|h(m)]
 A envía el mensaje junto con el resumen cifrado con k (autenticación): m|CK[h(m)]
 A envía el mensaje junto con el resumen cifrado con clave privada de A (firma digital):
m|CKprivA[h(m)]
 Autenticación y confidencialidad con cifrado:
 Igual que el anterior pero todo se cifra al final con K (confidencialidad):
Ck[m|CKprivA [h(m)]]
 Autenticación sin cifrado: A y B comparten un secreto s.
 A envía un resumen hash del mensaje concatenado con s: m|h(m|s).
 Se aporta confidencialidad si se cifra con k el mensaje obtenido: Ck[m|h(m|s)]
Requisitos de una función hash segura
13

 Los requisitos para poder aplicar las funciones hash a la


autenticación de mensajes son:
 Requisitos para la aplicación práctica a la autenticación:
1. El bloque de entrada de la función puede ser de cualquier tamaño.
2. La función produce salida de longitud fija.
3. Función fácil de calcular para cualquier mensaje.
 Evita que un oponente que conoce m pueda descubrir el secreto s asociado al
resumen h(m|s).
4. Función de un sentido: para cualquier resumen r de un mensaje m, es
computacionalmente impracticable encontrar m tal que h(m) = r.
Requisitos de una función hash segura (2)
14

 Evita falsificación cuando se usa un resumen cifrado m|CK[h(m)],


si el oponente encuentra un n con h(n) = h(m) puede enviar
n|CK[h(m)]:
5. Función débil de un sentido: para cualquier mensaje m, es
computacionalmente impracticable encontrar un mensaje nm
tal que sus resúmenes coincidan h(n) = h(m).
 Evita el ataque del cumpleaños:
6. Función fuerte de un sentido: es computacionalmente
impracticable encontrar un par de mensajes m y n tal que sus
resúmenes coincidan h(n) = h(m).
Coste de encontrar colisiones
15

 Dado un mensaje m con resumen de n bits, un oponente realizaría una


media de 2n-1 pruebas antes de encontrar otro mensaje m’ con el
mismo resumen.

 Si podemos cambiar los dos mensajes se reduce el esfuerzo de


colisión:
 Tenemos una función hash que genera resúmenes de n bits.
 Generamos dos conjuntos de resúmenes:
 Generamos k valores aleatorios xi y calculamos sus resúmenes h(xi).
 Generamos k valores aleatorios yj y calculamos su resúmenes h(yj).
 El número de valores k que debo generar para encontrar al menos un h(xi)=h(yj)
con probabilidad 0.5 es: k = 2n/2
Ataque del cumpleaños
16

 Al firmar un mensaje m con el resumen cifrado con su clave privada: m|CKprivA[h(m)]


 El oponente genera dos conjuntos de 2n/2 mensajes cada uno:
 Variaciones del mensaje todas con el mismo significado esencialmente.
 Variaciones del mensaje original donde cambia el significado maliciosamente.

 Se comparan los dos conjuntos de mensajes para encontrar una pareja con el
mismo resumen. La probabilidad de que suceda es de 0.5. Si no hay éxito se
generan nuevos mensajes.
 Se envía el mensaje fraudulento con la firma del autentico (que coinciden).
Seguridad de las funciones HASH y MAC
17

 Dos grupos de ataques: Fuerza bruta y Criptoanálisis


 Ataque de la fuerza bruta
 Funciones hash: la resistencia viene impuesta por la longitud del resumen
que requiere con requisitos de hash fuerte (firma falsa) un nivel de esfuerzo
de 2n/2. (off-line).
 Funciones MAC son más complejas de atacar.
 Resistencia computacional: dado uno o más pares (mi, f(k, mi)) debe
ser computacionalmente irrealizable generar un par (m, f(k, m)) para
cualquier nuevo valor m≠mi.
 Dos tipos de ataques:
 Averiguar la clave (de k bits): esfuerzo aproximado 2 (off-line).
k

 Generar un MAC (de n bits) válido para un mensaje dado o


encontrar un mensaje válido para un MAC dado: requiere un
esfuerzo de 2n (on-line).
 El esfuerzo de ataque de fuerza bruta es min(2n, 2k). Se requiere por
lo tanto que min(k, n)  N, donde un valor razonable de N es 128 bits.
Seguridad de las funciones HASH y MAC
18

 Ataques de Criptoanálisis
 Funciones hash: el criptoanálisis se centra en descubrir debilidades de las
funciones f que permitan encontrar colisiones (dos mensajes con el mismo
resumen) de forma más sencilla.
 Funciones MAC: también hay ataques contra la estructura interna de los
algoritmos MAC que los hacen más vulnerables.

 Un algoritmo HASH o MAC ideal requiere un esfuerzo de ataque criptoanalítico


mayor o igual que el esfuerzo de ataque por fuerza bruta.
Algoritmos Hash
19

 Desarollados por RSA:


 MD4 (1990): 128 bits
 MD5 (1991): 128 bits
 Desarrollado por National Institute of Standars and Technology (NIST), Secure
Hash Algorithm:
 SHA-0 (1993): 160 bits
 SHA-1 (1995): 160 bits
 SHA-2 (2004): varias longitudes de resumen
 SHA-224/256: utiliza palabras de 32 bits, más rápido.
 SHA-384/512: utiliza palabras de 64 bits, más rápido.
 Desarrollado bajo el proyecto Europeo RIPE
 RIPEMD128 (1992)
 RIPEMD160 (1996)
Debilidad de MD5 y otras propuestas.
20

 Tipos de ataque:
 Criptoanálisis: se han publicado varios ataques contra partes del algoritmo pero no se
han generalizado.
 Fuerza bruta: esfuerzo del orden de 264 hoy día se considera vulnerable.
 Han emergido otros algoritmos de mayor longitud:
 SHA-1 de 160 bits
 Desarrollado por National Institute of Standars and Technology (NIST)
 Publicado en FIPS PUB 180-1 (1995)
 Similar a MD5 (ambos son derivados de MD4)
 Ataque de fuerza bruta: esfuerzo del orden de 280.
 RIPEMD-160 de 160 bits.
 Desarrollado en Europa (proyecto RIPE).
 Similar a MD5 y SHA-1.
Alternativas a SHA-1
21

 Alternativas a corto plazo: SHA-256, SHA-384, SHA-512


 Solución a más largo plazo: concurso para una nueva propuesta.
 Algunas alternativas:
 Tiger:
 Genera Hashes de 192 bits.
 Muy rápido en arquitecturas de 64 bits
 WHIRPOOL:
 Basado en una modificación de AES
 Recomendado por NESSIE (New European Schemes for Signatures, Integrity and
Encryption)
 Genera hashes de 512 bit.
HMAC
22
 Publicada en RFC 2104.
 Utilizada en aplicaciones como: SSL e IPSec.
 Objetivos de diseño:
 Usar funciones hash (no criptografía) cuyo código es gratis y altamente disponible.
 Fácil de reemplazar las funciones hash embebidas en función de la seguridad o rapidez requeridas.
 Conservar el rendimiento original de la función hash.
 Uso y gestión sencilla de claves.
 Fortaleza del análisis criptográfico del mecanismo de autenticación basado en la función hash
embebida.
Firma digital
23

 Se basa en el uso de cifrado asimétrico sobre el resumen hash de un


mensaje.
 El hash permite aplicar el cifrado sobre una cantidad reducida de bits
independiente de la longitud del mensaje, reduciendo el tiempo de
procesamiento.
 Ventajas:
 No requiere distribución de clave simétrica (secreto compartido)
 Ofrece no repudio de origen
 Desventajas
 Ocupa más espacio y es más lento que hmac
 Algoritmos: RSA y DSS
Firma Digital RSA
24

A
m hash h(m) C KprA

m CKprA[h(m)]

Integridad: h(m)=h’(m) B
m CKprA[h(m)]
Autenticación: KprA
No repudio origen: KprA KpuA D
hash
No repudio destino:
enviando recibo firmado h’(m) comp h(m)
Firma Digital DSS
25
A
p, q
h(m) g
m hash Firma
x
k

m s|r

B
r
m s|r

p, q
y
hash h’(m) Calcula g

v
comp
Otros esquemas
26

 Firma a ciegas (Blind signature):


 Firmar sin conocer el contenido.
 Ejemplo de aplicación: sello de tiempo.
 Secreto dividido (secret splitting):
 Un secreto se comparte entre varias entidades.
 Hace falta la colaboración de todas para revelarlo.
 Secreto compartido (secret sharing) o umbral:
 Secreto compartido entre n entidades.
 Para revelarlo hacer falta un mínimo de t entidades (t<n).
 Firma de grupo.
 Clave compartida por un grupo
 Cualquier componente del grupo puede firmar
 Cualquiera puede verifica que ha firmado alguien que pertenece al grupo
 Una entidad de autoridad puede verificar quién ha firmado, en caso de que sea
necesario
Conclusiones
27

 La autenticación de mensajes se ofrece mejor con


mecanismos específicos:
 MAC:
 Rápido

 No repudio
 Clave simétrica. Gestión de claves.

 Firma Digital
 Lento,claves de mayor tamaño
 No repudio

Você também pode gostar