wired equivalent privacywired equivalent privacycriptosec.unizar.es/doc/cripto_p1_wep.pdf ·...

32
WEP WEP Wired Equivalent Privacy Wired Equivalent Privacy

Upload: votu

Post on 14-Jul-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

WEPWEP

Wired Equivalent PrivacyWired Equivalent Privacy

802 11 (WiFi) Wireless LAN802.11 (WiFi) Wireless LAN

• Sistema de conexión a red sin hilos.• 802 11: hasta 1 Mbps802.11: hasta 1 Mbps• 802.11b: el más extendido, hasta 11 Mbps• 802.11a: hasta 54 Mbps• Frecuencia: sobre los 2 4 GHz• Frecuencia: sobre los 2,4 GHz• Incorpora opcionalmente cifrado: WEP

WEPWEP

• Wired Equivalent Privacy.• Diseñado para garantizar comunicacionesDiseñado para garantizar comunicaciones

seguras en entornos wireless.I t d id l i ió d l• Introducido en la primera versión del standard (802.11), pero mantenido sin cambios en 802.11a, 802.11b.

• Compatibilidad entre distintos fabricantes• Compatibilidad entre distintos fabricantes.

FuncionamientoFuncionamiento

• WEP utiliza RC4 como algoritmo de cifrado.

• En WEP se usan claves de 64 o 128 bits (40+24 o 104+24)(40+24 o 104+24).

• Cada paquete cifrado, contiene un IV sin cifrar y el bloque de datos cifrado, el cual a su vez contiene un CRC32 (cifrado) paraa su vez contiene un CRC32 (cifrado) para comprobar integridad.

30 bytes 0-2312 bytes 4 bytes

Cabecera 802.11 Datos CRC32

Clave compartida IV

64 bits

RC4Clave compartida IV

40 bits 24 bits

RC4

Zona cifrada

Cabecera 802.11 Datos CRC32IV

RC4RC4

• Cifrador de flujo (no de bloques).• Creado en 1987 por Ronald Rivest (la R de p (

RSA).• Secreto Comercial de RSA Data Security.Secreto Comercial de RSA Data Security.• 13/Sep/1994 fue publicado usando remailers

anónimos en un grupo de news: sci cryptanónimos en un grupo de news: sci.crypt• Usado por diversos programas comerciales.

N t– Netscape– Lotus Notes

RC4RC4

• A partir de una clave de 1 a 256 bytes (8 a 1024 bits) inicializa una tabla de estados.)

• Esta tabla se usa para generar una lista de bytes pseudo aleatoriosde bytes pseudo-aleatorios.

• Estos bytes se combinan mediante la función XOR con el texto en claro.

• El resultado es el texto cifrado• El resultado, es el texto cifrado.

Descripción del RC4Descripción del RC4• Se define la tabla interna de estados del RC4 en el instante t para

un valor habitual de n = 8 como: y dos punteros de tamaño 12 nlSun valor habitual de n = 8 como: y dos punteros de tamaño

n, it y jt, generando la salida en el instante t, Zt

• Evolución de la tabla:

0lt lS

– i0 = j0 = 0– it = it-1 + 1– jt = jt 1 + St 1(it)jt = jt-1 + St-1(it)– St(it) = St-1(jt), St(jt) = St-1(it)– Zt = St(St(it) + St(jt))– Todas estas operaciones realizadas módulo 2n

• A partir de la clave k se crea por repetición o extensión pesudo-aleatoria la cadena clave 12

0

n

llKK• A partir de la cadena clave calculamos la tabla interna inicial S0

haciendo j0 = 0 y para cada 1<= t <= 2n, jt = (jt-1 + St-1(t - 1) + Kt-1) (mod 2n) intercambiando en cada instante S (t 1) con S (j ) El

0llKK

(mod 2n), intercambiando en cada instante St-1(t - 1) con St-1(jt). El último resultado del bucle definirá la tabla inicial S0

Clave

Cifrado DescifradoTexto en claro Texto cifrado Texto en claro

Rompiendo WEPRompiendo WEP

• RC4 40 bits se puede romper a fuerza bruta en menos de 1 día.

• IV tiene tamaño 24, es muy fácil que un IV sea reusadosea reusado.

• Para romper WEP no es necesario ese camino, se pueden aprovechar otras deficiencias del algoritmo.deficiencias del algoritmo.

Características débiles de WEPCaracterísticas débiles de WEP

• Sistemas de clave• Sistema de integridadSistema de integridad• Sniffing• Identificación de estaciones• Vector inicial (IV)• Vector inicial (IV)

Sistema de clavesSistema de claves

• Claves de 40 ó 104 bytes.• Se introduce de forma manual No hay unSe introduce de forma manual. No hay un

sistema automático seguro de distribución de clavesde claves.

• La passphrase del administrador es directamente la clave.

• El cambio de clave es un proceso manual• El cambio de clave es un proceso manual.

Debilidades del sistema de clavesDebilidades del sistema de claves

Cl d 40 b t l t t• Claves de 40 bytes son completamente vulnerables a ataques de fuerza bruta.

• Como se utiliza directamente una clave introducida por una persona son muy p p yvulnerables a los ataques de diccionario.

• Si se utiliza la misma para todas las• Si se utiliza la misma para todas las estaciones, sniffando cerca del Access Point todo el tráfico sirve como base paraPoint todo el tráfico sirve como base para romper la clave.

Sistema de integridadSistema de integridad

• Antes de cifrar se realiza un CRC32 del paquete.p q

• Los paquetes cuyo CRC32 sea incorrecto, simplemente son rechazadossimplemente son rechazados.

Debilidades del sistema deintegridad

CRC 32 i t d l i• CRC-32 es un sistema pensado para solucionar errores producidos de forma involuntaria en el sistema de transmisión.sistema de transmisión.

• No sirven para evitar modificaciones maliciosas ya que al ser lineales permiten la reconstrucción yde los códigos.

• Cambiando ciertos bits de los datos, es posible calcular los cambios necesarios en el CRC32calcular los cambios necesarios en el CRC32 para mantenerlo coherente.

• La solución es utilizar sistemas criptológicos de• La solución es utilizar sistemas criptológicos de integridad: funciones Hash.

SniffingSniffingWi l LAN i t i hil l• Wireless LAN es un sistema sin hilos y, por lo tanto, con una antena adecuada se puede interceptar todas las transmisiones de la celdainterceptar todas las transmisiones de la celda (zona de un access point).

• Se emite de forma onmidireccional por eso no• Se emite de forma onmidireccional por eso no se necesita afinar para capturar tráfico.

• Las estaciones utilizan franjas temporales• Las estaciones utilizan franjas temporales asignadas por el Access Point para comunicarse pero las antenas y tarjetascomunicarse, pero las antenas y tarjetas permiten escuchar en toda la banda.

Métodos de sniffingMétodos de sniffingL t f ibl d Wi l• La antena es preferible que sea de Wireless LAN, pero pruebas con sistemas metálicos sencillos también han permitido sniffar asencillos también han permitido sniffar a distancias cortas.

• Hay tarjetas y drivers preparados para y j ymonitorizar la red.

• Con tarjetas de bajo coste sobre Linux se puede modificar para captar todo el tráficomodificar para captar todo el tráfico.

• Un problema de algunas tarjetas de bajo coste es que deben pedir franja temporal y darse dees que deben pedir franja temporal y darse de alta en el AP y podrían ser detectadas. Se soluciona modificando Drivers.

Identificación de estacionesIdentificación de estacionesS id tifi l l tid l AP• Se identifican por la clave compartida con el AP.

• WEP no utiliza estados anteriores, esto permite l t i li t dreemplazar estaciones o realizar ataques de

DoS.T bié ibl li t d• También es posible realizar ataques de repetición, volviendo a enviar paquetes capturados que serán descifradoscapturados, que serán descifrados correctamente.

• Si se descubre la clave la estación intrusa tiene• Si se descubre la clave, la estación intrusa tiene acceso a la LAN.

Vector Inicial (IV)Vector Inicial (IV)

• El IV va incluido en el paquete.• Se inicializa en las estaciones antes delSe inicializa en las estaciones antes del

envío de cada paquete.L i t d d l IV d• Los sistemas de uso de los IV pueden ser:– Contador. Se inicia a 0 al arrancar la

estación.– Pseudoaleatorio.Pseudoaleatorio.– Combinaciones entre IVs anteriores.

Debilidades de los IVsDebilidades de los IVs

• Uno de los objetivos que pudiere tener el atacante que quiere obtener la clave es disponer de unos IV concretos.

• En el caso de contador, el atacante ya sabe con yantelación que IV tendrá y cuando conseguirá romper.

• En el aleatorio, como la distribución será uniforme, también se puede esperar obtener losuniforme, también se puede esperar obtener los IVs necesarios en un tiempo razonable.

Debilidades de los IVsDebilidades de los IVs

• En el último caso, la secuencia generada será condicionada y, por lo tanto, se y, p ,puede alejar de los IVs buscados, pero normalmente no será asínormalmente no será así.

• Igualmente, la mayoría de tarjetas usan el contador.

• El sistema ideal sería el que generara IVEl sistema ideal sería el que generara IV no vulnerables, es utópico.

Vulnerabilidad RC4Vulnerabilidad RC4

• Fluhrer, Mantin y Shamir descubieron en agosto del 2001 una debilidad del RC4.g

• Se utiliza únicamente el primer byte generado por la secuenciagenerado por la secuencia pseudoaleatoria.

• El objetivo es obtener la clave de cifrado/descifrado.cifrado/descifrado.

Vulnerabilidad RC4Vulnerabilidad RC4

• También en agosto del 2001, Stubblefield, Ioannidis y Rubin implementaron un y psistema práctico y barato para conseguir la clave con la vulnerabilidad del RC4la clave con la vulnerabilidad del RC4.

Vulnerabilidad RC4Vulnerabilidad RC4

• Cada paquete da información sobre un byte de la clave (pueden ser 40 ó 104).y (p )

• Se deben buscar los paquetes con IV de un conjunto y a partir de éstos construir laun conjunto y a partir de éstos construir la clave de forma estadística.

Vulnerabilidad RC4Vulnerabilidad RC4

• Se debe conocer el texto en plano.• En TCP/IP se pueden utilizar losEn TCP/IP, se pueden utilizar los

caracteres 0xAA que están en el inicio.E IPX d tili l á t• En IPX se pueden utilizar los carácteres del inicio 0xFF ó 0xE0.

Vulnerabilidad RC4Vulnerabilidad RC4Cabecera 802.11 Datos CRC32IV

1er byte

0xAA (1er byte TCP/IP)

Algoritmode ruptura

Nada 1er byte de clave

Criptoanálisis de RC4Criptoanálisis de RC4• En el cálculo de la tabla inicial:• En el cálculo de la tabla inicial:

– Con la cadena clave calculamos la tabla inicial S0, haciendo j0 = 0 y para cada instante 1<= t <= 2n, definimos jt = (jt-1 + St-1(t) + Kt) (mod 2n), e intercambiamos St-1(t - 1) con St-1(jt). El último resultado del bucle definirá la tabla inicial S0Si d j K j j S (t) d d d l l j– Si despejamos, Kt = jt - jt-1 - St-1(t), donde desconocemos el valor jt.

• Por otra parte, al cifrar el primer byte, partiendo de la tabla inicial sabemos que:

– Z0 = S[S[1] + S[S[1]]]Z0 S[S[1] S[S[1]]]– S[S[1] + S[S[1]]] = 0xAA xor (1er byte cifrado)

• Si supiera que el valor S[S[1] + S[S[1]]] no ha sido modificado después del primer establecimiento, tendría que j3 = S[1] + S[S[1]] y podría calcular K3.D di d d l it ió li d l tid d d l t• Dependiendo de la iteración analizada, la cantidad de elementos invariantes hasta el final del algoritmo de cálculo de la tabla inicial, sigue una distribución estadística.

• Repitiendo los cálculos con multitud de IV’s nos quedaremos con losRepitiendo los cálculos con multitud de IV s nos quedaremos con los valores de clave que más se asemejen a esta distribución.

• La construcción de la clave completa se hace de forma recursiva, dando por buenos los resultados previos calculados de forma probabilística.

Mejoras al ataque sobre RC4Mejoras al ataque sobre RC4

• Las claves se introducen de forma manual, por lo tanto seguro que son , p g qvulnerables a los ataques de diccionario.

• Así cuando se tienen suficientes paquetes• Así cuando se tienen suficientes paquetes almacenados, se puede empezar la úbúsqueda de bytes de la clave por las

letras y números del alfabeto.y

Mejoras al ataque sobre RC4Mejoras al ataque sobre RC4

• Realizar pruebas de fuerza bruta sobre los bytes que faltan utilizando el Checksum y qcomo comprobador de descifrado correctocorrecto.

• Eliminar de la fuerza bruta los casos que fse ha probado que un byte no forma parte

de la clave.

Conclusiones al ataque sobre RC4Conclusiones al ataque sobre RC4

• Es un sistema eficiente y fácil de programar.• Está probado en laboratorio con resultados p

eficientes.• Existen varios programas que aplican esteExisten varios programas que aplican este

sistema con éxito, por ejemplo aircrack.• Existe otra vulnerabilidad en RC4 de claves• Existe otra vulnerabilidad en RC4 de claves

débiles pero no es práctica para un sistema que no cambia nunca la claveno cambia nunca la clave.

Propuestas de soluciones sobreWEP actual

ConclusionesConclusiones

• Se debería interactuar más con la comunidad criptológica para diseños de p g pprotocolos criptográficos.

• Se debería mejorar mucho la seguridad• Se debería mejorar mucho la seguridad para usuarios finales.