domingo, 21 de enero de 2007

Ábrete Sésamo.

El tema de las comunicaciones digitales siempre me ha gustado. No sólo por ser ingeniero, sino como curiosidad electrónica moderna (redes inalámbricas, TDT, DAB...) y también su lado nostálgico (recibir RTTY por onda corta, como hace 30 años).

En concreto, estando pegado como estoy todo el día a los ordenadores, me parecía muy interesante el tema de la Wireless Lan, WiFi, 802.11a/b/g o como prefiráis llamarlo. Redes inalámbricas, en definitiva.

Hace tiempo que estuve leyendo del tema, pero no tenía nada para trastear. Después, hace cosa de 9 meses, me compré un ordenador portátil que tenía WiFi, pero no tenía punto de acceso. Y hace cosa de un mes, conseguí también un punto de acceso, que puedo usar con el portátil, con la Palm y mi hermano con la Nintendo DS. Así que lo amortizaremos pronto :D

Para quien no esté muy puesto, hago un inciso. Un Punto de Acceso (AP, Access Point) es un dispositivo que se conecta a la red (la red de Internet, la red de casa, o la que quieras). Este AP da servicio al resto de dispositivos WiFi. Es decir, un portátil se conecta con su WiFi al AP, y el AP envía los datos a Internet. Así que para conectarse es necesario un AP y un ordenador con tarjeta WiFi.

También es posible conectar dos ordenadores entre sí sin AP, pero no suele usarse, ya que es más complicado salir a Internet así.

El caso es que con ambos inventos, ya se puede salir a Internet. Estupendo. Ahora vienen las pegas.

Como cualquier dispositivo que use ondas de radio, éstas alcanzan su destino, pero también muchos otros. Otras personas, con tarjetas WiFi, son capaces de conectarse a nuestro AP, o monitorizar el tráfico (es decir, ver qué estamos enviando a internet: páginas visitadas, emails, conversaciones del messenger...).

Para evitarlo, lo más sencillo es cifrar los datos, encriptarlos usando un password, de tal forma que en caso de que lo vean, no tenga ningún sentido.

Esto no se me ha ocurrido a mí, sino a los diseñadores del WiFi. Para ello, diseñaron un sistema de encriptación llamado WEP, Wired Equivalent Privacy. Este nombre es bastante pretencioso (privacidad equivalente a una red por cable). Y efectivamente, no tardó mucho tiempo hasta que alguien empezó a descubrir vulnerabilidades.

No voy a entrar en detalles. Pero digamos que cada vez que un AP envía un paquete de datos encriptado con WEP, está proporcionando un poquito de información de la clave original. En realidad, muy poquito.

Pero esta información cambia con cada paquete. Así que el sistema para descubrir la clave es sencillo. Se capturan muchos paquetes, y cada vez se tiene más y más información. Hasta que llega un punto en el que las posibles claves son unos pocos cientos de miles de combinaciones, fácil para un ordenador probarlas todas y descubrir cuál es la que corresponde.

Cuando por fin tuve acceso a un AP y un portátil, por curiosidad personal (y porque nunca se sabe cuándo puede venir bien) decidí probar a ver qué tal estaba mi vecindario, y si era capaz de romper mi propia clave del AP.

Para eso, lo primero es conseguir el software. La gran mayoría de este software funciona bajo Linux, no hay casi nada bajo Windows, por dos razones: la gente que se rompe la cabeza con estas cosas trabaja en Linux, y además, el propio sistema operativo de Windows no le pone fácil las cosas a la gente que quiere acceder a funciones "raras" del hardware, como es capturar tráfico encriptado.

Afortunadamente, no hay que instalarse un linux, si no lo tienes. Existen linux que funcionan desde un CD-ROM, sin instalar nada (aunque la configuración se pierde cada vez que se apaga el PC).

Es más, existe un Linux dedicado exclusivamente a seguridad informática, auditorías, y, por qué no decirlo, reventar sistemas.

Esta distribución se llama BackTrack, y se puede descargar gratuitamente.

Así que manos a la obra. Lo bajé, grabé y probé. Y en 15 minutos ya estaba viendo qué redes había por mi vencindario, cuáles encriptadas y cuáles abiertas.

Entre otras, encontré la mía. Así que le pedí que guardara esos paquetes encriptados para ver si podía averiguar mi clave.

He comentado antes que hay que coger muchos. Aproximadamente, 200.000 paquetes, para que el número de posibilidades se reduzca y se pueda encontrar. Para eso, con otro equipo, generé tráfico en mi red, y en media hora ya había acumulado 200.000 paquetes, los necesarios en un principio para poder encontrar mi propia clave.

Puse el programa que "rompe" claves en marcha... y ¡sorpresa!, no tardó ni 5 segundos en decirme, correctamente, la clave que yo había usado.

Por un lado, me dio mucha alegría saber que este tipo de programas existe, y que lo he sabido usar. Por otro, me preocupó. Si yo, partiendo de cero, he tardado una hora en romper mi propia clave, ¿qué no hará cualquier vecino que también tenga interés en mi AP?

Luego llegó el siguiente paso. Romper la clave de algún vecino. Y aquí hay un problema técnico (al margen de posibles problemas legales).

Yo no puedo acceder a la red del vecino para provocar tráfico. Tengo que confiar en que el vecino lo haga simplemente haciendo uso de su red inalámbrica. Afortunadamente, un vecino la estaba usando, despacio, pero la usaba.

Puse a capturar tráfico, y en un par de horas, había conseguido 100.000 paquetes. No son los 200.000 recomemdables, pero decidí intentarlo. ¡Bingo! En dos minutos, tuve su clave. No la usé, tranquilos, me bastó con cumplir el hito.

Tengo otros vecinos con WEP, pero no generan tráfico, así que es en principio imposible. ¿O no? En realidad no :D, existe un invento llamado inyección de tráfico, que obliga al AP a enviar datos engañándole, pero mi tarjeta inalámbrica no lo soporta, por tanto no puedo probarlo.

Sin embargo, para tranquilidad de la gente, debo decir que existe otro sistema de encriptación, llamado WPA, muchísimo más seguro. Por desgracia, casi nadie se molesta en usarlo, y no todos los equipos lo tienen. Yo por ejemplo no lo podría usar, porque la Nintendo DS no lo tiene. Y en mi AP concretamente, no puedo poner WEP y WPA a la vez.

Espero que hayáis encontrado interesante el artículo. Si queréis más datos concretos o si decidís probarlo, hacédmelo saber.

Un saludo.

2 comentarios:

Anónimo dijo...

Muy buenas Nacho, me ha parecido interesantísimo el artículo. Muy claro para empezar a tener nociones acerca del asunto. A mí me ha servido ya que no me he tenido que pegar nunca con estos temas. Un saludo.

Merino

kapi dijo...

hola nacho, muy bueno si señor. pero por favor a ver si puedes explicar paso a paso como lo haces funcioar desde el cd, porque yo ya lo he grabado, pero no tengo ni idea de como empezar. gracias un slaudo.