Vulnerabilidades del cifrado WEP

Iniciado por Unravel, 25 Enero 2005, 09:20 AM

0 Miembros y 1 Visitante están viendo este tema.

Unravel

Cifrado WEP (Wireless Equivalent Privacy).

Es un mecanismo de cifrado de datos utilizado por el protocolo de comunicación WiFi.
Tras este pretencioso nombre se esconde en realidad el algoritmo de cifrado de clave simétrica RC4.

RC4

RC4 es un algoritmo de cifrado de flujo. Los cifrados de flujo funcionan expandiendo una clave secreta (en el caso de WEP, una vector de inicialización(IV) público y una clave secreta) en una clave arbitrariamente larga de bits pseudo aleatorios (el keystream).

El cifrado se lleva a efecto aplicando or-exclusivos al texto plano P antes de enviarlo.
Simbólicamente, este proceso puede ser representado así:
A -> B: v,(P (+) RC4(iv, k));

El descifrado consiste sencillamente en invertir el proceso. Generar un keystream idéntico basado en la IV compartida y en la clave secreta, para después aplicar de nuevo la función XOR sobre el texto cifrado.

Además entran en juego unas sumas de chequeo que comprueban que el mensaje no ha sido alterado por el camino.

Como veremos con detalle, WEP adolece de varias vulnerabilidades severas de seguridad.

Estas vulnerabilidades dan lugar a cierto número de ataques, tanto activos como pasivos, que permiten escuchar y alterar conexiones inalámbricas.

Análisis seguridad WEP.

Como se demostró hace un par de años, el algoritmo RC4 sufre múltiples vulnerabilidades, entre las cuáles destacan las que permiten reducir la longitud efectiva del cifrado a 24 bits, en lugar de los 128 que se pueden definir como máximo en WEP.

Nótese que un cifrado de 64 no es la mitad de débil que uno de 128, sería uno de  127 bits.
2^128 / 2^1 = 2^ (128-1) = 2^127, con lo que uno de 24 es la mitad de la mitad de la mitad ...etc de débil que uno de 128.

Reutilización del KeyStream.

Una debilidad bien conocida de los algoritmos de cifrado de flujo es que cifrando dos mensajes (P1, P2) con la misma clave (k) y vector IV se puede revelar información sobre ambos mensajes:

Si          C1 = P1 (+) RC4(iv, k)
y           C2 = P2 (+) RC4(iv, k)

entonces

    C1 (+) C2 = (P1 (+) RC4(iv, k)) (+) (P2 (+) RC4(iv, k)) = P1 (+) P2

En otras palabras, aplicando XOR a los dos textos cifrados (C1 y C2) el keystream se cancela, y el resultado que obtenemos es el XOR de ambos textos planos (P1 (+) P2).

Esto nos brinda las siguientes posibilidades.

•Conocido el texto plano de uno de los mensajes, dispondremos inmediatamente del otro texto plano.

•Podremos recuperar P1 y P2 teniendo sólo P1 (+) P2, debido a la redundancia que habitualmente tienen los textos planos. Podemos buscar dos textos sobre los que, aplicados un XOR, resulten en el valor dado P1 (+) P2.

Disponiendo de n textos cifrados con el mismo keystream tendremos lo que comúnmente se denomina un problema de profundidad n. Descifrar el tráfico se facilita en tanto en cuando n aumente, ya que el resultado del XOR de cada par de textos planos puede ser calculado, y se conocen varias técnicas clásicas para resolver esta clase de problemas (análisis de frecuencias, etc).

Como vemos para que estos ataques tengan éxito necesitamos disponer de textos cifrados en los que alguna porción del keystream se haya utilizado más de una vez, y de un conocimiento parcial de parte del texto plano.

Para prevenir estos ataques, WEP utiliza un IV diferente por cada paquete transmitido, de este modo, cada paquete recibe un keystream diferente.

El problema es que el vector IV se incluye en la parte no cifrada de la transmisión, para que luego el receptor pueda descifrarlo, y está por tanto disponible también para los agresores, aunque la clave secreta siga siendo desconocida y mantenga la seguridad del keystream.
Una gestión inadecuada del vector IV, que implique su reutilización, provoca como consecuencia una reutilización de la clave keystream, puesto que generalmente la clave secreta compartida k no cambia.

Ya que los IVs son públicos, el duplicado de IVs puede ser fácilmente detectado por los posibles agresores.
Nos referiremos a estas reiteraciones de valores IV como colisiones.

El estándar WEP recomienda (pero no requiere) que IV cambie en cada paquete.
Sin embargo, no dice nada acerca de los mecanismos aconsejables para seleccionar IVs y, por esta razón, algunas implementaciones del sistema lo hacen precariamente.

Hay un gran número de las tarjetas PCMCIA que reestablecen IV a 0 cada vez que son reiniciadas, e incrementan IV en uno en cada paquete posterior.
Estas tarjetas se reinician automáticamente cada vez que se introducen en un portátil, algo que se espera pase a menudo.

En consecuencia, los keystream correspondientes a IVs de valor bajo son susceptibles de ser reutilizados muchas veces durante el tiempo de vida de la clave privada.

Peor aún, el vector IV utilizado en WEP tiene una longitud predefinida de tan sólo 24 bits, está prácticamente garantizando que se usará un mismo IV en múltiples mensajes.

Un cálculo rápido muestra que un punto de acceso ocupado que transmita paquetes de 1500 bytes a una media de 5Mbps de ancho de banda (la velocidad máxima correpondería a 11Mbs) agotará todos los valores posibles de IV en menos de doce horas.

Incluso en instalaciones con menor ocupación de canal, un agresor paciente puede encontrar duplicados fácilmente.

Hay otros detalles de implementación pueden provocar iteraciones del keystream más frecuentemente.
Una implementación que utilizase un IV aleatorio para cada paquete produciría una colisión cada 5000 paquetes aproximadamente, que se resumen en tan sólo varios minutos de transmisión.

Pero lo peor de todo es que el estándar 802.11 no exige que IV cambie en cada paquete, lo que podría permitir el uso de un IV idéntico en todos los paquetes sin que ello suponga una disconformidad con la norma estándar.

Explotando la reutilización del keystream.

Una vez localizados dos paquetes con el mismo IV se pueden aplicar varios métodos para recuperar el texto plano.

•Conocido el texto en plano de uno de los mensajes es muy sencillo acceder a los contenidos del otro.
Hay muchas formas de obtener candidatos plausibles de texto plano.
Muchos campos del tráfico IP son predecibles, ya que los protocolos utilizados usan estructuras de mensaje perfectamente conocidas.
Por ejemplo, las secuencias de entrada a sistemas son bastante uniformes para la mayor parte de los usuarios, y también lo son los contenidos (la palabra Password: como mensaje de bienvenida), que pueden ser utilizados para ataques a la clave.

•Otro ejemplo podría consistir en la posibilidad de reconocer por análisis de tramas de tráfico y longitud una librería compartida que estuviese siendo transferida en un sistema de red. Esto suministraría una gran cantidad de texto plano conocido que permitiría su utilización para realizar un ataque al keystream por reutilización.

•Es posible provocar la transmisión de textos planos conocidos enviandolos directamente al terminal móvil desde un ordenador conectado a internet en manos del agresor.

•El agresor también puede enviar correo electrónico a usuarios y esperar que lo descarguen por medio del enlace inalámbrico. Enviar correo no solicitado (spam, en argot) puede ser un buen método para hacer esto sin levantar sospechas.

A veces obtener texto plano conocido puede ser incluso más sencillo. Un punto de acceso que probamos emitía paquetes broadcast de modo cifrado y no cifrado cuando la opción de controlar el acceso a la red estaba desactivada. En este caso, un agresor con una tarjeta 802.11 puede transmitir broadcasts al punto de acceso (que serán aceptados, porque el control de acceso está desactivado) y observar su forma cifrada durante la retransmisión. Es inevitable que esto suceda en una subred que contiene una mezcla de clientes WEP con otros sin soporte para cifrado, ya que los paquetes broadcast deben llegar a todos y cada uno de los clientes; no hay forma de evitar esta técnica para recoger texto plano conocido.

En definitiva, incluso sin conocer ningún texto plano es posible analizar, por medio de suposiciones, posibles textos planos susceptibles de ser transmitidos que puedan desembocar en la obtención del la clave privada.

Diccionarios de descifrado.

Una vez que se obtiene el texto plano de un mensaje se puede aislar el valor del keystream, ya sea por análisis de IVs o por otros métodos.
Es posible usar este keystream para descifrar cualquier otra trama que utilice un mismo IV.

Dado que las claves secretas compartidas k son cambiadas ocasionalmente, el agresor, acumulando datos, puede construir una tabla de keystreams que correspondan a distintas IV.
Una vez que se tiene la tabla, es posible descifrar inmediatamente cada texto cifrado con muy poco esfuerzo.

Esto es independiente de la longitud de la clave de cifrado, ya que el tamaño del diccionario depende del tamaño de IV, que está prefijado en 24 bits.

Es más, el diccionario del agresor puede hacerse más práctico aprovechando el comportamiento de las tarjetas PCMCIA que ponen el vector IV a 0 cada vez que son reiniciadas.
Puesto que en los casos más comunes las tarjetas son iniciadas al menos una vez al día, el agresor puede limitarse a construir un diccionario centrado sólo en los primeros miles de IVs, lo que le permitirá descifrar la mayoría de los paquetes que circulen a través del punto de acceso.
En una red con numerosos clientes 802.11 las colisiones en los primeros miles de IV's serán abundantes.

Gestión de claves
El estándar 802.11 no especifica cómo llevar a cabo la distribución de claves.
Depende de un mecanismo externo para poblar la matriz de cuatro claves compartida globalmente.
Cada mensaje contiene un campo identificador de clave especificando el índice de la matriz que se utiliza para el cifrado.

El estándar también permite asociar una clave específica de la matriz para cada estación móvil; sin embargo, está práctica no es habitual. La mayoría de las instalaciones usan una única clave para la toda red.

Esto perjudica severamente la seguridad del sistema, ya que las contraseñas están almacenadas en los terminales clientes. Con técnicas de hacking habituales pueden ser robadas fácilmente.

La reutilización de una clave única por muchos usuarios ayuda también a convertir los ataques en algo más práctico, porque aumenta la posibilidad de colisión de IVs.
La posibilidad de una colisión casual aumenta proporcionalmente con número de usuarios, y si además tenemos en cuenta que las tarjetas PCMCIA establecen a 0 el vector IV cada vez que son reiniciadas todos los usuarios reutilizarán keystreams correspondientes a un pequeño rango de IVs.
El hecho de que muchos usuarios compartan las mismas claves también significa que es difícil sustituir esta información, porque resulta comprometido ponerla en boca de todos.
Además esto no será habitual puesto que cambiar una clave requiere que todos y cada uno de los usuarios reconfiguren su adaptador inalámbrico.

En la práctica estimamos que puedan pasar meses, o incluso más tiempo, antes de que se cambien las claves privadas, lo que permite al potencial agresor disponer de una generosa cantidad de tiempo para buscar instancias de reutilización de keystreams.


En próximos post analizaremos otras técnicas como la modificación o inyección de paquetes, ataques man in the middle, de reacción, etc.

Salu2.
"La verdad es un ácido corrosivo que salpica casi siempre al que la maneja". Santiago Ramón y Cajal.


PROBOLONE

mi tarjeta asus no me la reconoce ni el airo peek ni el stumbler es nueva de un ordenador de sobremesa, alguna solucion o me tengo que comprar otra , una orinoco? por ejemplo

PROBOLONE

lo tengo todo todas las herramientas miles de manuales leidos , ejemplos reales de intrusion y para empezar desde mi domicilio y luego desde un portatil con gprs , pero resulta que cuando voy a empezar no me reconoce mi ehternet asus wirreless 811.b ,ni el airopeek ni stumbler , Una solucion economica por favor!!!!!!!! :o

Eddix

Cita de: PROBOLONE en  3 Febrero 2005, 02:25 AM
lo tengo todo todas las herramientas miles de manuales leidos , ejemplos reales de intrusion y para empezar desde mi domicilio y luego desde un portatil con gprs , pero resulta que cuando voy a empezar no me reconoce mi ehternet asus wirreless 811.b ,ni el airopeek ni stumbler , Una solucion economica por favor!!!!!!!! :o

Yo tengo 3 tarjetas wifi, una SMC funciona con netstumbler pero no anda con airopeek
luego una D-link que si anda con airopeek
y por último una Senao con una antena omnidireccional 360º, de forma vertical 60º y un alcance de 2 km, anda con todo airsnort aircrack, airopeek. Todo depende del chip que tenga tu tarjeta Orinoco por ejemplo

fjosito

Hola Eddix

Yo tengo una senao nl-2511cd plus ext2 y no consigo encontrar el driver para que funcione con el airopeek, me gustaria saber como lo has conseguido poner, muchas gracias.

+ enrique ZP

Ya lo e leido, e visto un tremendo aporte gracias UNRAVEL lo has dejado clarito.

Agrego para los que no sabian el WEP utiliza el algoritmo de encriptacion RC4 el cual fue proporcionado por RSA Security. Entonces el RSA y el WEP van de la mano.

Otra cosa, la mayoria de estos cifrados lo que hacen es trabajar en conjunto para un mejor trabajo. Pongo como ejemplo el TKIP ayuda al WEP a ser mas seguro.

Gracias Unravel, lo lei un poco tarde pero le lei jeje.

Adios

Unravel

Bueno,
No exactamente van de la mano, aunque deberían ir.

Son sistemas de cifrado distintos, en este caso que dices el RSA es cifrado asimétrico y el WEP es simétrico.
Esto quiere decir el RSA tiene un par de claves, y lo que cifras con una solo puedes descifrarlo con la otra, mientras que en WEP cifras con una clave y descifras con la misma.

Ambos tienen ventajas e inconvenientes.

El inconveniente del WEP, y de todos los cifrados simétricos, es que ambas partes tienen que conocer la clave, con lo que la parte que la genera se la tiene que enviar a la otra parte, o tienes que dársela previamente de manera manual.

Y aquí ya puedes inventar mil mecanismos para que nadie te robe la clave ni la capture al mandarla.

En el caso del WEP, las claves se tienen que almacenar previamente en ambos lados. Además, como ambas claves son fijas, tienes que meter mas historias (el IV) para que no puedan hacer análisis de frecuencias y demás.

Aquí evidentemente el problema es que si alguien conoce la clave porque te la roba directamente de donde la tengas almacenada o porque esnifa el tráfico, o porque tiene mucho texto cifrado con la misma clave, etc, se rompió la seguridad. Ya te puede descifrar todo.

Con un sistema PKI es distinto, porque lo que se hace si quieres que alguien te mande algo cifrado, es darle previamente una clave de tu par de claves, la que se conoce como clave pública. El cifra lo que quiera mandarte con esa clave, con lo cual solo se puede descifrar con su otra pareja (recuerda, lo que se cifra con una solo se descifra con la otra), la clave privada.

De esta forma te da igual que alguien capture el tráfico o capture tu clave pública, porque sin tener la privada, no podrá descifrarlo.

El incoveniente de esto es que es muy lento, demasiado.
No podemos cifrar directamente los datos a transferir porque no acabaríamos nunca.

Entonces aquí es cuando van de la mano como tu dices.
Lo que se hace es un cifrado mixto.

El emisor genera una clave para cifrar y descifrar, y en vez de mandarsela al receptor en claro, lo que hace antes de mandarla es cifrar esa clave con la clave pública del receptor.
Así da igual que alguien la capture, porque está cifrada, y solo el receptor puede descifrarla.
Una vez la clave compartida, se cifra todo con ella.

Por ejemplo el SSL usa para cifrar un RC4 por ejemplo y la clave secreta la intercambia cifrada con un RSA o un DH.
Además, como el sistema de intercambio de claves no exige que las claves sean predefinidas como en WEP, las puedes cambiar cada pocos segundos, haciendo imposible su análisis.

Pero vamos, en el caso del WEP y WPA no es así. Aunque lo haya desarrollado la empresa RSA, no tiene nada que ver con el algortimo RSA.

De hecho el protocolo TKIP tampoco implementa cifrado RSA.
"La verdad es un ácido corrosivo que salpica casi siempre al que la maneja". Santiago Ramón y Cajal.

Hwagm

#8
Lo del airodump no creas que es tan facil, la parte mas importante osea la captura y grabacion pura y dura se me esta haciendo cuesta arriba. Hay un proceso raro que no controlo. Pedire ayuda en programación.


elzar

bueno, yo soy nuevo aca, pero quisiera que alguien me diga un programa para sacar el cifrado que funcione en windows.