9

Click here to load reader

Algoritmo rc4

  • Upload
    carol

  • View
    219

  • Download
    4

Embed Size (px)

DESCRIPTION

fgrkgjnkfg

Citation preview

Page 1: Algoritmo rc4

1

WEP

Wired Equivalent Privacy

802.11 (WiFi) Wireless LAN

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

WEP

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

seguras en entornos wireless.• Introducido en la primera versión del

standard (802.11), pero mantenido sin cambios en las nuevas (802.11a, 802.11b).

• Compatibilidad entre distintos fabricantes.

Funcionamiento

• WEP utiliza RC4 como algoritmo de cifrado.

• En WEP se usan claves de 64 o 128 bits (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) para comprobar integridad.

802.11 Headers CRC32Data

802.11 Headers CRC32DataIV

Zona cifrada

RC4IVSHARED KEY

40 bits

64 bits

24 bits

30 bytes 4 bytes0-2312 bytes

RC4

• Cifrador de flujo (no de bloques).• Creado en 1987 por Ronald Rivest (la R de RSA).• Secreto Comercial de RSA Data Security.• 13/Sep/1994 fue publicado usando remailers

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

– Netscape– Lotus Notes

Page 2: Algoritmo rc4

2

RC4

• 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 debytes pseudo-aleatorios.

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

• El resultado, es el texto cifrado. Texto en claroTexto cifrado

XOR

RC4Clave

PRNG

Texto cifradoTexto en claro

XOR

RC4Clave

PRNG

Rompiendo 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 sea reusado un IV.

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

Características débiles de WEP

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

Sistema de claves

• Claves de 40 o 104 bytes.• Se introduce de forma manual. No hay un sistema

automático seguro de distribución de claves.• La passphrase del administrador es directamente la

clave.• Normalmente todas las estaciones que comparten

un access point utilizan la misma clave.• El cambio de clave es un proceso manual.

Page 3: Algoritmo rc4

3

Debilidades del sistema de claves

• Claves de 40 bytes son completamente vulnerables a ataques de fuerza bruta.

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

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

Sistema de integridad

• Antes de encriptar se realiza un CRC32 del paquete.

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

Debilidades del sistema de integridad

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

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

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

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

Sniffing

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

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

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

Métodos de sniffing

• La antena es preferible que sea de Wireless LAN, pero pruebas con sistemas metálicos sencillos también han permitido sniffar a distancias cortas.

• Hay tarjetas y drivers preparados para monotorizarla red, son de alto coste.

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

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

Identificación de estaciones

• Se identifican por la clave compartida con el AP.• WEP no utiliza estados anteriores, esto permite

reemplazar estaciones o realizar ataques de DoS.• También es posible realizar ataques de repetición,

volviendo a enviar paquetes capturados, que serán descifrados correctamente.

• Si se descubre la clave, la estación intrusa tiene acceso a la LAN como si estuviera pinchando en los claves.

Page 4: Algoritmo rc4

4

Vector Inicial (IV)

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

envio de cada paquete.• Los sistemas de uso de los IV pueden ser:

– Contador. Se inicia a 0 al arracar la estación.

– Pseudoaleatorio .– Combinaciones entre IVs anteriores.

Debilidades de los IVs

• Como se explica más adelante, el objetivo del atacante que quiere obtener la clave es disponer de unos IV concretos.

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

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

Debilidades de los IVs

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

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

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

Ataques pasivos

• Identificación de secuenciaspseudoaleatorias iguales . Debilidad de los algoritmos de streaming.

• Debilidad del RC4. Descubierto porFluher, Mantin y Shamir en agosto del 2001. Más práctico, puede servir para realizar activos ya que se obtiene la clave .

Ataques activos

• Repetición de paquetes . Aprovechando que WEP no utiliza estados anteriores ni guarda estado.

• Inyección o permutación de bits. Utilizando el sistema de integridad débil.

• Inyección de paquetes encriptados . Si se conoce un texto y su encriptación se puede encriptar un paquete sin conocer la clave.

• Por 2 extremos. Utilizando una máquina desde Internet se puede generar tráfico que luego sea cifrado por el AP hacia las estaciones wireless.

Id. secuencias pseudoal. iguales

• El criptograma es el resultado de realizar un XOR entre el generador pseudoaleatorio(RC4) y el texto.

• Si se realiza un XOR de dos criptogramas con el mismo IV y clave (misma secuenciapseudoaleatoria) se obtiene el XOR de los 2 textos en claro.

Page 5: Algoritmo rc4

5

Id. secuencias pseudoal. iguales

M1 + S = C1

M2 + S = C2

C1 + C2 = M1 + M2

IV

KRC4RC4 S

Id. secuencias pseudoal. iguales

M1 + M2

Análisis estadístico:Muchos mensajes se repiten en TCP/IP.

Ma

Mb

= MX

.

.

Mf

+ MX = MZ

M1

M2

?

?

Conocido

Si se descubre M1 o M2 se obtinteel otro, S y se puede sacar K.

Id. secuencias pseudoal. iguales

• Sistema que aprovecha una debilidad de todos los algoritmos de streaming.

• Se deben utilizar métodos estadísticos, esto hace que no sea determinístico.

• Si se consiguen más mensajes con el mismo IV, la probabilidad de encontrar un texto en claro es mucho más alta

• Cuando se encuentra uno todos los demás se pueden desencriptar.

• Es mejor el sistema que aprovecha la debilidad del RC4.

Vulnerabilidad RC4

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

• Se utiliza únicamente el primer bytegenerado por la secuencia pseudoaleatoria.

• El objetivo es obtener la clave de encriptación.

Vulnerabilidad RC4

• También en agosto del 2001, Stubblefield,Ioannidis y Rubin implementaron un sistema práctico y barato para conseguir la clave con la vulnerabilidad del RC4. Consiguieron la clave en 2 tipos de experimentos con:– Entre 5 y 6 millones de paquetes utilizando sólo la

vulnerabilidad.– Sobre 1 millón de paquetes combinando esta técnica

con otras.• Los programas freeware Airsnort y WEPCrack

utilizan esta técnica.

Vulnerabilidad RC4

• Cada paquete da información sobre un bytede la clave (pueden ser 40 o 102).

• Sólo un conjunto determinado de IV da información sobre una clave.

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

Page 6: Algoritmo rc4

6

Vulnerabilidad RC4

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

0xAA que están en el inicio.• En IPX se pueden utilizar los carácteres del

inicio 0xFF o 0xE0.

Vulnerabilidad RC4

802.11 Headers CRC32DataIV

Zona cifrada

1r Byte

1r byteTCP/IP0xAAAlgoritmoCracking

AlgoritmoCracking

1 bytede la clave (ByteKey)NadaÓ

Vulnerabilidad RC4Relación 1r byte encriptado

1r bytede secuencia pseudoalatoria S[ S[1] + S[S[1]]]S matriz de permutación

0xAA + S[ S[1] + S[S[1]]] = M11r bytemensaje encr.

Vulnerabilidad RC4Elección de los IV adecuados

IV

Sirve?El mensaje no se puede utilizar

PosibleByteKey

En el apéndice A del documento de Fluhrer et. al. se recomienda IV = (ByteKey + 3, 0xFF, N). N es cualquier número.

Pero se pueden utilizar otras combinaciones.

En el apéndice A del documento de Fluhrer et. al. se recomienda IV = (ByteKey + 3, 0xFF, N). N es cualquier número.

Pero se pueden utilizar otras combinaciones.

SI

NO

Vulnerabilidad RC4Algoritmo Cracking

IV

PosibleByteKey

0xAA

1r bytemensajeencr.

ByteKey es correcto1r byte mensaje 0xAA

ByteKey

SI

Clave 104 bits

?

Mejoras ataque vuln. RC4

• Para mejorar la eficiencia se pueden trabajar en paralelo varios tipos de IV.

• Un proceso analiza los IV (ByteKey + 3, 0xFF, N) y otro proceso analiza otra estructura también vulnerable.

Page 7: Algoritmo rc4

7

Mejoras ataque vuln. RC4

• Las claves se entran de forma manual, por lo tanto seguro que son vulnerables a los ataques de diccionario.

• Así cuando se tienen suficientes paquetes almacenados, se puede empezar la búsqueda de ByteKeys por las letras y números del alfabeto.

Mejoras ataque vuln. RC4

• Si se repiten dos valores iguales entre S[1], S[S[1]] y S[S[1] + S[S[1]]] entonces la probabilidad de encontrar la clave es mucho más alta.

• Si hay casos de estos almacenados se puede empezar trabajando con ellos.

Mejoras ataque vuln. RC4

• Realizar pruebas de fuerza bruta sobre los bytesque faltan utilizando el Checksum como comprobador de desencriptación correcta.

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

• También eliminar de la fuerza los BytesKey de los que dispodremos de IV válidos. Los IV se puedenpreveer si su generación es deterministica (por ejemplo tipo contador).

Conclusiones vuln. RC4

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

eficientes (5-6 millones de paquetes para la clave sin mejoras y 1 millón con mejoras).

• Existen como mínimo 2 programas que aplican este sistema con éxito (Airsnort y WEPCrack).

• Existe otra vulnerabilidad en RC4 de claves débiles pero no es práctica para un sistema no cambia nunca la clave.

Repetición de paquetes

• Como el protocolo no tiene memoria, se pueden repetir paquetes sin necesidad de conocer los contenidos.

• Se pueden producir denegaciones de servicio o búsquedas de información forzando las respuestas (pings, arps, etc.).

• Números de secuencia TCP/IP protegen las repeticiones, pero se pueden preveer.

Inyección o permutación de bits

• Se pueden realizar ataques de DoSo realizar pruebas de mensajes sindesencriptar.

• Si se conoce el texto en claro de un paquete y su criptograma, para el mismo IV, se puede insertar bits de este texto en otros paquetes sin que se detecte.

Page 8: Algoritmo rc4

8

Inyección de paquetes

• Se conoce el texto X y su encriptación RC4(X), mediante métodos como aprovechar la debilidad de los algoritmos destreaming.

• Se aprovecha otra debilidad de RC4, se puede encriptar un paquete Y sin conocer la clave.

Inyección de paquetes

RC4(X) + X + Y = RC4(Y)

Demostración

RC4(X) = S + X RC4(X) + X = S

S + Y = RC4(Y)

Por 2 extremos

• Si un atacante en una estación móvil sabeencriptaruna dirección destino de una IP externa a la red móvil, puede enviar paquetes a esta red y llegarándesencriptados.

• Esta dirección la puede construir cambiando bits de un paquete si es capaz de intuir la dirección destino que contiene ese paquete.

Propuestas de soluciones sobre WEP actual

• Usar niveles de encriptación de niveles más altos, como Ipsec, etc...

• Colocar un Firewall entre los access pointsy la LAN.

• Usar VPNs.

Propuestas de soluciones sobre futuras versiones WEP

• Pasar la clave y el IV por una función Hash antes de introducirlos en el RC4. Se debe hacer en todas las estaciones.

• Cambiar el sistema de encriptación por un algoritmo simétrico más seguro, por ejemplo AES.

• Utilizar métodos de clave asimétrica para distribuir claves con el objetivo de:– Cambiar claves frecuentemente.– Utilizar claves aleatorias, no de diccionario.– Identificar de forma segura las estaciones.

Conclusiones

• La mayoria de ataques no son nuevos, excepto la debilidad del RC4.

• Anteriores versiones de Ipsec tenían problemas similares.

• Se debería interactuar más con la comunidadcriptológica para posteriores diseños.

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

Page 9: Algoritmo rc4

9

Bibliografía

• 802.11® Wireless Networks: The Definitive GuideBy Matthew Gast

• Applied CryptographyBy Bruce Schneier

• RC4 Encryption Algorithmhttp://www.ncat.edu/~grogans/algorithm_breakdown .htm

• Attacks On RC4 and WEP (Fluhrer, Mantin & Shamir)http://www.wisdom.weizmann.ac.il/~itsik/RC4/Papers/rc4_wep.ps

• Using the Fluhrer, Mantin, and Shamir Attack to Break WEPhttp://www.wisdom.weizmann.ac.il/~itsik/RC4/Papers/wep_attack.ps

• Información sobre RC4 y sus ataques más conocidoshttp://www.wisdom.weizmann.ac.il/~itsik/RC4/rc4.html

• Security of the WEP algorithmhttp://www.isaac.cs.berkeley .edu/isaac/wep-faq.html