Redes Wireless
De GLASS
Tabla de contenidos |
Conceptos básicos
En 1999, el IEEE (Institute of Electrical and Electronics Engineers) aprobó el 802.11 y definió los protocolos de comunicación inalámbrica para redes locales. Más concretamente describe las funcionalidades de las capas de acceso (MAC) y física (PHY). El principal objetivo del servicio descrito en el 802.11, es la entrega de unidades de datos MSDU (MAC Service Data Units) entre unidades de control lógico de conexión LLC (Logical Link Controls).
La capa física de cualquier red, define la modulación y la señalización características de la transmisión de datos. En la capa física se definen dos modelos de transmisión RF y un infrarrojo. El funcionamiento de las redes WLAN en bandas RF ilícitas, requiere la modulación en banda ancha para reunir los requisitos en la mayoría de los países. Los estándares de transmisión RF son la FHSS (Frecuency Hopping Spread Spectrum) y la DSSS (Direct Sequence Spread Spectrum). Ambas arquitecturas han sido definidas para operar en la banda de frecuencia de 2,4 GHz, ocupando normalmente 83 MHz de ancho de banda, por lo que los extremos están en 2400 MHz hasta los 2483 MHz. DBPSK (Differential BPSK) y DQPSK, son las modulaciones para la secuencia directa, soportando tasas de datos entre 1 y 2 Mbps. La elección entre FHSS y DSSS, se basa en la aplicación de los usuarios y el entorno en el que se opere. Es por ello que la IEEE, estableció dos grupos de trabajo para explotar este estándar.
- Grupo A. Estándar 802.11a, trabajando en un espectro de 5,15–5,35 GHz a 5,725–5,825 GHz, con cuatro canales independientes y tasas de transferencia de 6,9,12,18,24,36,48 y 54 Mbps.
- Grupo B. Estándar que predomina actualmente en el mercado. Define su rango de operación entre las frecuencias de 2,4-2,4835 GHz, soportando tres canales independientes con tasas de transferencia de 1, 2, 5'5 y 11 Mbps, en función de la distancia y de la calidad de la señal. La modulación que usa es la DSSS (Direct Sequence Spread Spectrum).
La capa MAC tiene similitudes con la de Ethernet (802.3) cableada, usando el protocolo CSMA/CD para la detección de colisiones. Otro factor importante es determinar si un canal está vacío usando un algoritmo de estimación de desocupación de canales, o lo que es lo mismo, CCA, el cual realiza una medición de la energía RF de la antena y determina la fuerza de la señal recibida, denominada RSSI.
Estructura y funcionamiento
Dependiendo de la funcionalidad que se desee dar a la red, existen dos modos diferentes de implementarlas: Ad-Hoc, que es el modo de redes punto a punto, o bien en modo infraestructura.
Redes Ad-Hoc (Punto a Punto)
El estándar define a este modo como un servicio básico independiente (IBSS) con un conste bajo y flexible. La comunicación entre los diferentes nodos de la red, se realiza sin la necesidad de un punto de acceso, formando una red de igual a igual.
Uno de los métodos básicos para encaminar los paquetes en este modo, sería tratando a cada nodo como un router, y utilizando entre ellos un protocolo convencional (véase uno basado en vector distancia) para encaminarlos hacia su destino.
Redes de infraestructura
En este modo, cada cliente envía sus peticiones a un único punto central llamado AP (Access Point). Para realizar el intercambio de datos, previamente el cliente y el punto de acceso, establecen una relación de confianza.
Los AP pueden usarse dentro de la LAN como:
- Gateway para redes externas (Internet, Intranet, etc.)
- Bridge hacia otros AP para extender los servicio802.1s de acceso.
- Router de datos entre el área de cobertura (100-150 m.) en un entorno cerrado (dependiendo de los objetos que bloqueen las ondas de radio), o los 300 metros en espacios abiertos.
Estos puntos de acceso tienen un límite de 64 NICs (Network Interface Card) dentro de su área de actuación. Para solucionar este inconveniente se suelen usar varios access point trabajando en diferentes canales, ofreciendo a los usuarios la posibilidad de roaming sin perder la conectividad.
ESSID
Cada red tiene un nombre, ESSID (Extended Service Set Identifier), que la distingue del resto. Este nombre es un código alfanumérico de 32 caracteres como máximo, incluido en los AP's y en los clientes que participan dentro de una misma red wireless.
BEACON FRAMES
Cada AP manda regularmente al medio unos paquetes llamados BACON FRAMES, en los cuales anuncian su presencia para que los potenciales clientes puedan detectarlo y conectarse a la red.
Implementación de un AP (HostAP)
En el supuesto de que se desee crear un punto de acceso desde el cual facilitar la conectividad a la red para aquellos usuarios con adaptadores wireless, debemos, antes de nada, disponer de una tarjeta adaptadora 802.11 equipada con chipset Prism. En las experiencias llevadas a cabo por la ASSL, sólo se ha probado este tipo de equipamiento, aunque es posible también construir este mismo AP con tarjetas equipadas con chipset Hermes, de todos modos el desarrollo de este driver está aún en una fase muy temprana por lo que recomendamos el uso de tarjetas equipadas con Prism (2, 2.5 ó 3). El hecho de configurar un AP no es sinónimo de conectividad hacia Internet, sino sólo hacia la red del AP. Más adelante veremos también como se puede redirigir este tráfico hacia fuera con el reenvío de paquetes.
Las tarjetas con las que se basa esta explicación, son las U.S. ROBOTICS USR2415, las cuales se componen de un adaptador PCI/PCMCIA y de la propia tarjeta wireless 802.11b. Se va a suponer del mismo modo que el ordenador que va a realizar la función de AP, dispone de módem conectado, aunque la sintaxis de los comandos que vamos a ver a continuación varíen muy poco respecto a esta configuración.
Es necesario realizar una configuración del núcleo para dar soporte a este tipo de hardware, por lo que una vez situados en el directorio de las fuentes del kernel escribimos los comandos que nos darán la posibilidad de modificar las opciones de nuestro sistema.
[root@Belluguet joan]# cd /usr/src/linux-2.4 [root@Belluguet linux-2.4]# make menuconfig
Seguidamente realizar los siguientes pasos:
- Entrar en el apartado General Setup, y buscar la opción PCMCIA SUPPORT. Una vez dentro deshabilitar el soporte PCMCIA.
- Una vez realizado el punto anterior, volver al menú principal y seleccionar el apartado NETWORK DEVICE SUPPORT, y dentro buscamos la opción WIRELESS LAN (NON-HAMRADIO) y la habilitamos. No hay que habilitar ni un sólo módulo aquí dentro.
- Este apartado sólo es necesario si se desea dar conectividad a los clientes hacia otras redes, como por ejemplo Internet. Habilitar el apartado NETWORKING OPTIONS del menú principal, y dentro buscar la opción NETFILTER CONFIGURATION. Con este último punto habilitamos nuestro sistema para realizar funciones de NAT (Network Address Translation).
Si se está convirtiendo un equipo dotado con bahía PCMCIA en AP, será necesario de modo complementario, instalar el paquete de utilidades PCMCIA Card Services, y compilarlo en este punto, pues instalará un conjunto de módulos extra en las librerías del sistema. Si no se dispone de este software se puede obtener en la siguiente dirección web.
Salvar la configuración y empezar el proceso de compilación tal y como se explicó en el Capítulo 6. Una vez reiniciado el sistema, deberíamos poder cargar los módulos relacionados mediante las siguientes líneas de comandos:
[root@Belluguet joan]# modprobe pcmcia_core [root@Belluguet joan]# modprobe i82365 [root@Belluguet joan]# modprobe ds [root@Belluguet joan]# cardmgr -f [root@Belluguet joan]# ifconfig eth0 192.168.2.1 [root@Belluguet joan]# ifconfig -a
Llegado este punto deberíamos descargar el driver correspondiente para la configuración del AP de la siguiente dirección.
Una vez se ha instalado el driver como módulo, haremos un inciso sobre que tipo de driver cargar, ya que con el software se proporcionan varios modelos de tarjetas posibles, todas bajo el control del hostap.
- hostap_cs. Este módulo se usa en las típicas ranuras slot pccard de los portátiles.
- hostap_plx. En caso de disponer de un adaptador PCI/PCMCIA PLX9050, que no es más que una tarjeta PCI con un módulo pccard adaptado para ordenadores de sobremesa.
- hostap_pci. Este driver es recomendable para aquellas tarjetas PCI con chipset PRISM, pero sin el adaptador PCMCIA.
Ahora es el momento de cargar el módulo que da soporte a la tarjeta. En caso que nuestro AP esté montado sobre un ordenador de sobremesa con adaptador PCI/PCMCIA, cargaríamos el módulo hostap_plx del mismo modo que se muestra a continuación:
[root@Belluguet joan]# modprobe hostap_plx
En caso de que la tarjeta esté funcionando, debería mostrarse su identificador en la salida del comando iwconfig. Normalmente, con el driver de hostap, las tarjetas reciben el identificador wlan0, wlan1, etc., pudiendo esta denominación cambiar en función del driver utilizado en cada caso.
Para asignar dirección IP a la tarjeta, se puede hacer uso del comando ifconfig junto con el identificador correcto. El directorio donde se guardan todos los ficheros de configuración relacionados con las tarjetas PCMCIA es /etc/pcmcia. Allí se encontrará más o menos esta estructura:
drwxr-xr-x 2 root root 4096 2002-08-02 14:28 cis -r--r--r-- 1 root root 52316 2003-05-07 19:07 config -r--r--r-- 1 root root 1997 2003-05-07 19:07 config.opts -r-xr-xr-x 1 root root 1526 2003-05-07 19:07 ftl -r--r--r-- 1 root root 251 2003-05-07 19:07 ftl.opts -rw-r--r-- 1 root root 2623 2003-02-09 15:28 hermes.conf -rw-r--r-- 1 root root 3249 2003-06-09 13:33 hostap_cs.conf -r-xr-xr-x 1 root root 1782 2003-05-07 19:07 ide -r--r--r-- 1 root root 486 2003-05-07 19:07 ide.opts -r-xr-xr-x 1 root root 853 2003-05-07 19:07 ieee1394 -r--r--r-- 1 root root 232 2003-05-07 19:07 ieee1394.opts -r-xr-xr-x 1 root root 2303 2003-05-07 19:07 memory -r--r--r-- 1 root root 318 2003-05-07 19:07 memory.opts -rwxr-xr-x 1 root root 768 2003-05-07 19:07 network -r--r--r-- 1 root root 1476 2003-05-07 19:07 network.opts -r-xr-xr-x 1 root root 1622 2003-05-07 19:07 parport -r--r--r-- 1 root root 308 2003-05-07 19:07 parport.opts -r-xr-xr-x 1 root root 1842 2003-05-07 19:07 scsi -r--r--r-- 1 root root 573 2003-05-07 19:07 scsi.opts -r-xr-xr-x 1 root root 2678 2003-05-07 19:07 serial -r--r--r-- 1 root root 570 2003-05-07 19:07 serial.opts -r--r--r-- 1 root root 3786 2003-05-07 19:07 shared -r-xr-xr-x 1 root root 2673 2003-05-07 19:07 wireless -r--r--r-- 1 root root 5637 2003-05-07 19:07 wireless.opts
El fichero hostap_cs.conf es el que nos interesa. En su interior se encuentran las definiciones de las tarjetas soportadas, así como el driver con el que cada una de ellas está soportada. La sintaxis de la configuración está formada por cuatro campos dividos en cuatro lineas:
card "U.S. Robotics IEEE 802.11b PC-CARD" version "U.S. Robotics", "IEEE 802.11b PC-CARD", "Version 01.02" #manfid 0x0156, 0x0002 bind "hostap_cs"
- El primero de ellos es un identificador o nombre, útil para identificar la tarjeta cuando se inserte. Este nombre lo puede seleccionar el usuario a su propio criterio.
- El segundo es versión, este campo es el nombre con el que se identifica la propia tarjeta cuando se inserta en el sistema
- El tercer campo, manfid, es el identificador de la tarjeta, pudiendo usarse tanto este campo como el segundo para tal efecto.
- El último campo, bind, es el nombre del driver que queremos cargar en el momento de la inserción de la tarjeta.
Para obtener los datos de la tarjeta podemos ejecutar el siguiente comando:
Belluguet root (100%) # cardctl ident Socket 0: no product info available Socket 1: product info: "802.11", "11Mbps Wireless LAN Card", "v08C1", "" manfid: 0xc250, 0x0002 function: 6 (network)
Con él obtendremos todos aquellos datos necesarios para crear nuestra propia entrada en el fichero de configuración del driver de hostap. Una vez configurada la tarjeta, deberá establecerse el modo de funcionamiento correcto a través del comando iwconfig. Este comando es un símil a ifconfig, pero relacionado con los parámetros de las tarjetas de red inalámbricas. El modo necesario para configurar un AP es el modo master. Si se desea establecer un ESSID puede realizarse mediante el uso del modificador essid.
Belluguet pcmcia (100%) # iwconfig wlan0 mode master essid proves
Belluguet pcmcia (100%) # iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11-b ESSID:"proves" Nickname:"Belluguet.Lmann.net"
Mode:Master Frequency:2.422GHz Access Point: 00:50:C2:10:93:21
Bit Rate:11Mb/s Tx-Power:11 dBm Sensitivity=1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0/92 Signal level:-100 dBm Noise level:-100 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
wlan0ap IEEE 802.11-b ESSID:"proves" Nickname:"Belluguet.Lmann.net"
Mode:Master Frequency:2.422GHz Access Point: 00:50:C2:10:93:21
Bit Rate:11Mb/s Tx-Power:11 dBm Sensitivity=1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Suponiendo que también se desee introducir una clave de encriptación WEP puede pasársela como argumento a key, tal y como se muestra en el siguiente ejemplo:
Belluguet Wireless (100%) # iwconfig wlan0 key DFEAefdab2563efcbBA54c4dce
wlan0 IEEE 802.11-b ESSID:"proves" Nickname:"Belluguet.Lmann.net"
Mode:Master Frequency:2.422GHz Access Point: 00:50:C2:10:93:21
Bit Rate:11Mb/s Tx-Power:11 dBm Sensitivity=1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:DFEA-EFDA-B256-3EFC-BBA5-4C4D-CE Encryption mode:restricted
Muchos otros parámetros como el canal, la frecuencia, la potencia de transmisión, etc., pueden ser modificados con este comando, o con alguna de las utilidades que le acompañan como son iwlist, iwpriv, iwspy o iwgetid, las cuales complementan para un mayor nivel de depuración, las funciones de iwconfig.
Podemos ver las opciones que ofrece hostapd haciendo un hostapd --help:
Host AP user space daemon for management functionality of Host AP kernel driver
Copyright (c) 2002, Jouni Malinen <jkmaline@cc.hut.fi>
usage: hostapd [-hdxm] [-o<addr>] [-a<addr>] [-p<port>] [-s<secret>][-M<text>]
[-b<len>] <wlan#>
options:
-h show this usage
-d show more debug messages (-dd for even more)
-x require IEEE 802.1X authorization
-m minimal EAP authentication for testing IEEE 802.1X
Note! This authorizes _ALL_ stations that support
IEEE 802.1X, it does not need any keys.
-S<SSID> use given SSID (default 'test')
-D<dump file> dump state to the given file on SIGUSR1
-M<msg> optional displayable message sent with EAP Request-Identity
-b<len> set default/broadcast random WEP key when using EAP/TLS
-i<len> set individual unicast random WEP key when using EAP/TLS
(len=5 for 40-bit WEP and 13 for 104-bit WEP)
(following are required for IEEE 802.1X authorization when using RADIUS
encapsulation, i.e., no -m):
-o<addr> own IP address used as NAS-IP-Address
-a<addr> authentication server IP address (RADIUS)
-p<port> authentication server UDP port (default 1812)
-s<secret> shared secret with authentication server
Lo genérico es llamar al demonio hostapd con la siguiente sintaxis:
hostapd -S $ESSID -o $IP $W0
Donde $ESSID será un nombre del ESSID de la red wireless que ofrezca el servicio, $IP la dirección IP que se le asigna al AP y $W0 la interfaz de red, normalmente wlan0, que efectuará las funciones de AP.
Finalmente queda por ver el fichero donde se almacenarán los datos relativos a la configuración de la propia tarjeta wireless, como pueden ser el ESSID, la frecuencia, etc., para no tener que estar añadiéndolos manualmente cada vez que se inicia el servicio. Este fichero es el wireless.opts y se encuentra en el mismo directorio (o debería), que hostap_cs.conf, el /etc/pcmcia.
Este fichero contiene diferentes entradas que pueden usarse para varios modelos de tarjeta. En la situación más genérica sólo se encuentran las líneas necesarias, como las que hay a continuación:
INFO="Wireless Client Configuration" # ESSID (extended network name) : My Network, any ESSID="ASSL" # NWID/Domain (cell identifier) : 89AB, 100, off NWID="" # Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto MODE="master" # Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency) FREQ="" CHANNEL="3" # Sensitivity (cell size + roaming speed) : 1, 2, 3 ; -70 (dBm) SENS="" # Bit rate : auto, 1M, 11M RATE="auto" # Encryption key : 4567-89AB-CD, s:password KEY="" # RTS threshold : off, 500 RTS="" # Fragmentation threshold : off, 1000 FRAG="" # Other iwconfig parameters : power off, ap 01:23:45:67:89:AB IWCONFIG="" # iwspy parameters : + 01:23:45:67:89:AB IWSPY="" # iwpriv parameters : set_port 2, set_histo 50 60 IWPRIV=""
Reenvío de paquetes
Para que los clientes de la red wireless puedan tener salida hacia otras redes (Internet, Intranet, etc.), deberá configurarse el NAT en la máquina que actúa como AP. Para ello es necesario disponer de un kernel con soporte de IPTABLES.
La funcionalidad que proporcionan el conjunto de herramientas iptables es muy variado, permitiendo realizar diferentes tipos de filtrado a diferentes niveles. En este momento la utilidad que le vamos a dar a iptables es para realizar NAT, o lo que es lo mismo, crear un mecanismo de conversión de direcciones que nos permita dar salida acceso a otra red a través de un mismo punto. Estas conversiones se realizan gracias a la información de la que va disponer el AP cuando reciba una petición dirigida a una máquina fuera de la red en la que se encuentra. Esta información está formada por el valor de la dirección IP del paquete que recibe, junto con el valor del puerto que lo ha enviado. Con estos datos el AP creará una tabla de conversiones puerto/dirección, que más tarde usará para dirigir correctamente el tráfico entre ambas redes.
Las líneas necesarias para realizar esta tarea, se detallan a continuación:
[root@Belluguet joan]# modprobe iptable_nat [root@Belluguet joan]# modprobe ip_conntrack_ftp [root@Belluguet joan]# modprobe ip_conntrack_irc [root@Belluguet joan]# modprobe ip_nat_ftp [root@Belluguet joan]# modprobe ip_nat_irc [root@Belluguet joan]# iptables -t nat -F PREROUTING [root@Belluguet joan]# iptables -t nat -F POSTROUTING [root@Belluguet joan]# iptables -t nat -F OUTPUT [root@Belluguet joan]# iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 –to-source 210.1.2.3 [root@Belluguet joan]# echo 1 > /proc/sys/net/ipv4/ip_forward
En el ejemplo anterior, las primeras líneas habilitan el NAT, así como permitir el tráfico ftp e irc. Seguidamente se vacía el estado actual de filtrado, no fuera a ser que se estuviera ejecutando algún tipo de condición que pudiera darnos algún problema más tarde. Finalmente, las dos últimas líneas, crean el enrutado de paquetes entre la red del AP (192.168.2.0/24), y la dirección IP externa asignada al módem (210.1.2.3).
Es recomendable incluir todas estas lineas y aquellas que se crean convenientes en un script, y automatizar este proceso mediante su llamada. En el Capítulo 4 se pueden obtener ejemplos de shell-scripts en bash.
Implementación de un cliente
Para configurar un cliente wireless desde GNU/Linux, bastará con instalar apropiadamente el driver adecuado a nuestra tarjeta. En el apartado anterior, se detalla el proceso de instalación del driver hostap para actuar como AP. Este driver es, con diferencia, el mejor controlador para tarjetas con chipset PRISM, funcionando perfectamente tanto en modo Ad-hoc (punto a punto), como en managed (infraestructura). Los pasos para la instalación del driver son por ello iguales a como lo haríamos en la configuración de un AP, diferenciándose únicamente el modo en que funciona la tarjeta.
Belluguet Wireless (100%) # iwconfig wlan0 mode managed
Belluguet Wireless (100%) # iwconfig
wlan0 IEEE 802.11-b ESSID:"proves" Nickname:"Belluguet.Lmann.net"
Mode:Managed Frequency:2.422GHz Access Point: 44:44:44:44:44:44
Bit Rate:2Mb/s Tx-Power:-1 dBm Sensitivity=1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key: Encryption mode:restricted
Power Management:off
Link Quality:0/92 Signal level:-100 dBm Noise level:-100 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Seguridad en redes wireless
El proceso de conexión entre el cliente y la red que ofrece el servicio, empieza cuando el cliente efectúa un barrido de todas las frecuencias usadas por el 802.11b, enviando su dirección MAC y el ESSID (Extended Set Service ID), siendo este último el nombre de la red a la que deseamos acceder. Todos los AP's en el rango responderán con su propio ESSID, canal y dirección MAC. Con toda esta información en su poder, el cliente puede limitar su señal y empezar el proceso de autenticación.
Autenticación abierta
Es el modo por defecto en las redes 802.11. Todos los clientes que inician el proceso de autenticación ante un AP, son registrados en la red. Ambos envían en texto plano todos los management frames, incluso cuando el WEP (Wireless Encryption Protocol) está activado.
Este modelo presenta una vulnerabilidad en si mismo, pues absolutamente todos los potenciales clientes que piden ser autenticados en la red, de hecho lo son.
Autenticación "Shared Keys"
Se basa en el desafío entre cliente y AP, donde ambos comparten una llave secreta para iniciar la autenticación, siendo el cliente el dispositivo móvil que desea ser autenticado y el AP el que recibe dicha petición.
El cliente envía una trama (management frame), indicando que el método que va a usar es de llave compartida. Al recibir el AP esta trama, enviará una nueva secuencia con los 128 bytes de texto para ser usado como desafío. Estos bytes se generan con el PRNG (Pseudo Random Number Generator) usando dicha clave y un vector de inicialización IV (Initialitation Vector).
Una vez el cliente recibe esta segunda trama, se copia el contenido del desafío en una nueva trama, que a su vez se encripta con WEP, usando la llave compartida más un nuevo vector de inicialización, esta vez elegido por el cliente. Una vez completado este proceso se envía el paquete al AP, que al recibirla hace lo siguiente.
- Desencriptarla
- Comprobar si el CRC es válido
- Verificar la validez del desafío
Si todos los puntos se realizan de forma satisfactoria, entonces el AP autentica al cliente. Una vez completado este paso se realiza la misma operación de manera inversa, habiendo de este modo, una autenticación mutua entre ambos.
Este sistema es vulnerable a un ataque con analizador de red, ya que es relativamente sencillo obtener los datos necesarios para sintetizar tramas que engañen al AP al que se desea conectar. Capturando el segundo mensaje, obtendríamos el texto desafío aleatorio en plano, y con el tercer mensaje el mismo texto pero ya encriptado y con el vector de inicialización.
Autenticación cerrada
Sistema basado en el ESSID de cada AP. Es un código alfanumérico que está incluido en todos los AP's y en todos los clientes que desean participar de la red wireless. Este sistema es usado por los dispositivos móviles como PDA's, los cuales para acceder a la red de servicios de dicho fabricante (por ejemplo 3Com) llevan ya gravados dicho código.
Este sistema es vulnerable ya que cada fabricante establece valores por defecto que no son modificados por la mayoría de los administradores. Por ejemplo:
- Cisco Systems: tsunami
- 3Com: 101
- Agere: WaveLan
Listas de control de accesos
Estas listas se confeccionan con las direcciones físicas de cada cliente, es decir, con su dirección MAC. Cada AP establecerá que direcciones son válidas para permitir la unión de un cliente a su red. Muchos de los fabricantes de AP, distribuyen herramientas que ayudan a los administradores a confeccionar estas listas.
Gestión de llaves
Son cuatro el número de llaves que pueden ser guardadas en la capa de enlace (para el modelo de llave compartida). Estas llaves no pueden ser utilizadas directamente, sino que forman parte de una solución de capas más altas (modelo OSI).
Protocolo WEP
El cifrado es la manera habitual de implementar seguridad y protección en los datos. WEP (Wired Equivalent Privacy), aplica un conjunto de instrucciones llamadas “algoritmo a la información“, cuyas instrucciones combinan texto en claro con una secuencia de números hexadecimales llamada clave de cifrado. Las redes inalámbricas compatibles con 802.11b incorporan tecnologías WEP con varios métodos de cifrado. Una clave de 64 (40) bits y otra de 128 bits. Una clave de 64 (40) bits, consiste en 10 números hexadecimales distribuidos en dos grupos de cinco dígitos:
- a)Clave nº 1: 10111 21314
- b)Clave nº 2: 20212 23414
- c)Clave nº 3: 30313 24467
- d)Clave nº 4: 40414 24344
Y de 128 bits basada en 26 números hexadecimales distribuidos en dos grupos de cinco dígitos y cuatro grupos de cuatro dígitos:
- a)Clave nº 1: 10111 21314 1235 1456 1234 A34D
- b)Clave nº 2: 20212 23414 3467 3456 3467 12E6
- c)Clave nº 3: 30313 24467 2457 5687 2368 EA34
- d)Clave nº 4: 40414 24344 2356 7864 2347 ABB6
Ataque al KeyStream
El principal problema reside en la implementación del propio algoritmo (RC4), cuyo keystream es generado en función del vector de inicialización (v) y una llave (k), la cual está almacenada en la NIC y en el AP. WEP en cripta los mensajes siguiendo este patrón:
Donde C es el texto encriptado y T el texto original más un CRC de 32 bits. El siguiente ataque fué ideado por Nikita Borisov, Ian Goldberg y David Wagner de la universidad de Berkeley. Empieza considerando estos puntos préviamente:
- C1=P1 xor RC4(v,k)
- C2=P2 xor RC4(v,k)
Llevándolo a cabo de la siguiente forma:
Obteniendo el texto cifrado por medio de:
Ataque los mensajes
- Desencriptando el tráfico. Una escucha pasiva, puede interceptar todo el tráfico que pasa por la red hasta la colisión del IV. Con una XOR de dos paquetes que tengan el mismo vector, un atacante puede obtener el XOR de los dos mensajes en texto plano. Cuando el análisis estadístico es poco concluyente (si sólo hemos interceptado dos mensajes), el atacante puede buscar más colisiones con el mismo vector inicialización en función del tráfico generado. Si el número de mensajes es grande, el éxito del análisis aumenta, siendo posible recuperar el texto plano entero para uno de los mensajes, y los siguientes pueden ser obtenidos pues todas las parejas XOR son conocidas.
- Inyección de tráfico. Para este ataque, el atacante debe conocer el texto del mensaje que se va a transmitir sin cifrar. Basándose en este conocimiento es posible generar paquetes cifrados correctos calculando el CRC32, y usando el bit flip del mensaje original para cambiar el texto del nuevo mensaje. Una vez construido se envía al AP de la red que lo aceptará como válido.






