Protocolo 802.11
Contents
Componentes de una arquitectura 802.11
La arquitectura 802.11 se basa en distintos componentes que interactúan para formar una WLAN. El protocolo IEEE 802.11 es una tecnología de acceso a la red que permite proporcionar conectividad entre estaciones wireless e infraestructuras de red cableadas
La arquitectura 802.11 puede esta compuesta por distintos componentes: estaciones (STA), puntos de acceso (AP), independent basic service set (IBSS), basic service set (BSS), distribution system (DS) y extended service set (ESS).
- Un IBSS es una red Wi-Fi que consiste en al menos dos STAs sin acceso a una DS. IBSS se refiere también a redes Wi-Fi ad hoc.
- Un BSS es un bloque básico de una WLAN. Compone una red wireless compuesta por un único AP con soporte para múltiples clientes. BSS se refiere comúnmente a una red wireless infraestructura.Todas al STAs en un BSS se comunican a través del AP. El AP proporciona conectividad a la red LAN cableada actuando de puente cuando una STA inicia una comunicación con otra STA u otro nodo de un DS.
- Un ESS es un conjunto de 2 o más APS conectados a la misma red cableada, formando un único segmento de red lógico asociado a un router.
- Los APs de múltiples BSS son inter-conectados por el DS, permitiendo movilidad de forma que las STAs se puede desplazar de un BSS a otros. (Roaming).
Modos de funcionamiento 802.11
El estándar define dos modos de operación: ad-hoc e infrastructura.
Modo Ad-hoc
En el modo ad-hoc las STAs constituyen un IBSS (Independent Basic Service Set) en este modo de funcionamiento las STAs se comunican directamente, sin requerir un punto de acceso.
Modo infraestructura
- En el modo infraestructura la BSS debe disponer de un punto de acceso a través del cual se conectan las STAs. El cliente utiliza el AP para acceder a los recursos de la red cableada.La red cableada puede ser la intranet de una organización o Internet.
Tanto en el modo infraestructura como en el modo ad hoc el SSID (Nombre de la red) permite identificar la red Wi-Fi. El SSID es publicado periódicamente por el AP mediante la utilización de "beacon frames".
- DS (Distribution System): Un DS es un componente utilizado para interconectar un conjunto de BSSs a una LAN cableada con el objetivo de formar un ESS, el cual permite la comunicación entre distintos APs proporcionando los servicios de distribución que permiten realizar roaming entre BSSs.
- ESS (Extended Service Set) : Un ESS se basa en la unión de BSSs conectados a través de un DS. Las STAs dentro de un ESS se puede comunicar y desplazar de un BSS a otro dentro del mismo ESS (Raoming) de forma transparente para el LLC (Logical Link Control).
Estructura de un paquete Wi-Fi
Las redes Wi-Fi, al igual que las redes cableadas, basan su estructura en el envío de pequeños conjuntos de datos llamados frames. Todos los frames tienen una estructura básica común:
- 1. Una cabecera MAC (Medium Access Control).
- 2. Un cuerpo de longitud variable, en el que irá la información específica para cada tipo y subtipo de frame. En esta parte del frame pueden ir incluidas otras cabeceras, ya sean estándar o no, que dependen del tipo de frame, su funcionalidad y del dispositivo. Entre las más importante hay que destacar:
- WEP Parameters
- CCMP Parameters
- Fixed Parameters
- Tagged Parameters
- Logical Link Control (LLC)
- 802.1X Authentication
- 3. El FCS (Frame Check Secuence), un valor calculado con el algoritmo CRC-32 para verificar la integridad del paquete. Su cálculo incluye todos los campos de la cabecera MAC y el cuerpo del paquete.
La cabecera MAC
La cabecera MAC, cuya estructura se ilustra a continuación, está formada por varios campos de longitud fija.
Frame Control (2 bytes):
Uno de los campos de la cabecera MAC es el Frame Control
El Frame Control está compuesto por los siguientes campos:
- Protocol Version (2 bits): Especifica la versión del protocolo que se usa. Si un AP recibiese un paquete con una versión que no soportase, debería descartarlo sin enviar ninguna respuesta.
- Type (2 bits): Especifica el tipo de paquetes. Los valores que puede tomar son: Management (00), Control (01) y Data (10).
- Subtype (4 bits): Junto con el atributo “Type” permite identificar el tipo de paquete de forma concreta según su funcionalidad.
- To DS y From DS (1 bit cada uno): La combinación de ambos valores (DS = Distribution System) sirve para identificar la dirección de las comunicaciones. Las posibles combinaciones son:
- More Frag: Este flag se activa para identificar si el frame enviado es sólo un fragmento y a continuación serán enviados los restantes, a partir de los cuales será recompuesto el frame original. Este flag sólo es aplicable a frames tipo Management o Data. Toma el valor 0 cuando es el último frame enviado o cuando no ha sido fragmentado. Se apoya en la estructura “Sequence Control” a la hora de realizar el reensamblado.
- Retry: Toma el valor 1 en los paquetes tipo “Data” o “Management” cuando son una réplica de un paquete enviado anteriormente. El “Station” que reciba el paquete lo usará para comprobar y en caso de que sea necesario, descartar otros paquetes iguales.
- Power Management: Se usa para indicar el estado de la gestión de energía en el que se encontrará una “Station” cuando finalice un proceso de comunicación. La “Station” lo mantendrá siempre al mismo valor durante un proceso de comunicación. El valor 1 indica que la “Station” pasará a modo de ahorro de energía (PS, power safe), mientras que el valor 0 significa que seguirá en estado activo. Los APs siempre se mantendrán en modo activo.
- More Data: Se activa para indicarle a una “Station” que se encuentra en modo ahorro de energía, que un AP tiene un buffer con más MSDUs o MMPDUs (MAC Service Data Unit o MAC Management Data Unit) para esa “Station”. También toma el valor 1 cuando un AP tiene listas para ser transmitidas más MSDUs o MMPDUs en comunicaciones multicas/broadcast durante un “beacon interval”. Las “Station” que no son APs siempre mantedrán este valor a 0 en las comunicaciones multicast/broadcast.
- Protected Frame: Toma el valor 1 cuando el campo “Frame Body” ha sido procesado por algún algoritmo de cifrado. Sólo se activa en paquetes tipo “Data” y “Management”, de estos últimos, sólo los que pertenecen al subtipo “Authenticacion”. Como casos especiales, toma el valor 0 en paquetes “Data” de cuyo subtipo es: Null Function, CF-ACK (nodata), CF-Poll (no data) o CF-ACK+CF-Poll (no data).
- Order: Fija su valor a 1 sólo en paquetes que no que no sean “QoS Data” que contengan MSDU o o un fragmento y estén usando la clase de servicio StrictlyOrder.
Duration (2 bytes):
Este flag puede almacenar uno de los valores, o “Duration” o “ID”. Su contenido varía dependiendo del tipo y subtipo del paquete, si el paquete es transmitido durante el CFP (Contentiont Free Period) y de las capacidades de QoS del AP. Se utiliza “Duration” cuando se quiere transmitir un NAV (Network Allocation Vector), que es un valor que fija la cantidad de tiempo que debe esperar una STA antes de realizar una transmisión. Esto resulta útil cuando ya hay un cliente transmitiendo datos. El campo ID se utiliza en frames de tipo “Power-Save Poll”.
Address:
Puede haber hasta 4 direcciones MAC en esta estructura y cada una de ellas una ocupa 6 bytes. Sirven para identificar:
- Basic Service Set Identifier (BSSID)
- source address (SA)
- destination address (DA)
- transmitting STA address (TA)
- receiving STA address (RA)
Sequence Control (2 bytes)
Está formado por dos campos, “Sequence Number” y “Fragment Number”. No está presente en paquetes de tipo “Control”.
- Fragment Number (4 bits): Indica el número de cada fragmento de un MSDU o MMPDU. Toma el valor 0 para el primer (o el único) fragmento, a partir del cual se va incrementando. Un mismo fragmento tendrá siempre el mismo “Fragment Number”.
- Sequence Number (12 bits): Indica el número de secuencia de un MSDU o MMPDU. Cada fragmento de una de estas dos unidades tendrá siempre el mismo “Sequence Number”. Las QoS STAs asociadas a un QoS BSS mantienen un TID (Traffic Identifier) para cada receptor único, de forma que el número de secuencia (al contrario que en el resto de casos, en los que empieza en 0) empieza en el valor del TID contenido en el campo “QoS Control”.
QoS Control (2 bytes)
Identifica el “Traffic Category” (TC) o el “Traffic Stream” (TS) al que pertenece el frame, así como otra información de QoS relacionada con el mismo, que depende de su tipo y subtipo.
Body Frame (Cuerpo del paquete)
En esta parte, ya depende de sobremanera el tipo y subtipo de frame, así como su objetivo y funcionalidad. Por ejemplo, los Management frames incluyen cabeceras a mayores como las WL. Existe varios tipos de frames:
Management (00)
Este tipo de frames permiten a las STAs establecer y mantener las comunicaciones. Permiten la autenticación, asociación y la sincronización.
- Association Request (0000): Frame enviado a un AP (en un BSS o ESS) o a otro cliente (en un IBSS o red Ad-hoc). La STA que envía el frame debe estar autenticada.
- Association Response (0001): Frame enviado desde un AP (BSS o ESS) o desde un cliente () en respuesta a un Association Request. Si la asociación resulta exitosa, el paquete incluirá el AID (Association ID) de la STA que solicitó la asociación.
- Reassociation Request (0010): Este frame es similar a un Association Request pero su propósito es permitir el “roaming” entre APs. Cuando el nuevo AP recibe el frame, se sincroniza con cualquier AP anterior para ver si había datos a la espera de ser enviados al cliente.
- Reassociation Response (0011): Este paquete es la respuesta a un Reassociation Request. Su contenido es prácticamente igual a un Association Response.
- Probe Resquest (0100): Es un frame utilizado por cualquier STA para buscar de forma activa un AP o un BSS.
- Probe Response (0101): Frame enviado en respuesta a un Probe Request. Contiene información acerca del emisor y de la red.
- Beacon (1000): Son enviados por el AP en un BSS o su equivalente en un IBSS para anunciar su presencia y realizar tareas de sincronización. Anuncia el comienzo de un “Contention Free (CF) period” durante el cual el AP delega el permiso para transmitir por sondeo (Poll).
- ATIM (0001): Siglas de “Announcement Traffic Indication Mesage”. Este frame tiene una funcionalidad parecida a un Beacon, pero sólo en un IBSS. Se utiliza para la sincronización del grupo y anuncia que hay mensajes listos para ser enviados. Las STAs dentro de un IBSS en modo de ahorro de energía se reactivan periódicamente para detectar este tipo de paquetes.
- Disassociation (1010): Funciona a modo de declaración de que se va a interrumpir la comunicación. Puede ser enviado por cualquier STA.
- Authentication (1011): Los frames de Authentication son enviados y recibidos por una STA que solicite realizar una conexión. Son enviados tanto por el cliente que se intenta autenticar, como por la STA contra la que lo está haciendo. El número frames de este tipo que se van a enviar depende del tipo de método de autenticación empleado.
- Deauthentication (1100): Este frame le indica a la STA que lo que ya no se encuentra autenticada. Es una comunicación unidireccional desde la STA que gestiona la autenticación. Tiene efecto nada más recibirse.
- Action (1101): Tipo de frame específico que puede ser utilizado por cualquier STA para indicar acciones concretas. Las posibles acciones son propias de cada fabricante y modelo.
Control (01)
- Block Ack Request (): Se usa para optimizar el envío de frames Ack, permitiendo enviarlos todos juntos.
- Block Ack (): Es un frame que encapsula varios frames Ack. Se envía en respuesta a un frame Block Ack Request.
- PS-Poll (1010): Power Save Polling farme. STAs en modo de ahorro de energía se “despierta” de forma periódica para escuchar Beacons. Si detectan que hay datos esperando a que se reactiven, se activan completamente y mandan uno de estos frames al AP para comenzar el envío de esos datos pendientes.
- RTS (1011): Request to Send. Este frame funciona como una petición para enviar datos con el fin de evitar colisiones, por lo que solicita una cantidad de tiempo. Normalmente tanto este frame, como el CTS sólo son enviados cuando el tamaño de los datos a enviar supera el MTU.
- CTS (1100) : Clear to Send. Respuesta a RST que permite coordinar el acceso al medio para el envío de datos.
- ACK () : Confirma la recepción de datos transmitidos.
- CF End () : Permite indicar el final de un periodo “Contention Free”
- CF End + CF Ack () : Permite indicar el fin de un período “Contention Free” y al mismo tiempo confirmar la recepción de datos un único mensaje.
Data (10)
Se pueden caracterizar, según lleven datos o no y si se emplea de QoS.
FCS
n/a
Autenticación
El proceso de autenticación es el primer paso indispensable para conectarse a un BSS. Tras la autenticación El estándar especifica dos métodos posibles de autenticación:
Open System Authentication
- Open System Authentication: Es el mecanismo de autenticación por defecto seg definido en el estándar. A pesar de su nombre no se realiza ningún tipo de autenticación por lo tanto no se verifica la identidad de los clientes. Los APs configurados para la utilziación de autenticación Open System responderán siempre afirmativa a cualquier petición de autenticación.No se debe confundir autenticación con confidencialidad. La autenticación se basa en verificar la identidad de los clientes que se conectan a una red. Es posible utilizar WEP para el cifrado de datos en autenticación Open System.
- Shared Key Authentication: Este mecanismo intenta autenticar las STAs como miembros que conocen la clave compartida o no. Sólo puede ser usado si se utiliza WEP. El proceso de autenticación es similar a Open System Authentication, pero en este caso se incluye un challenge y la respuesta por parte del AP. Si la autenticación y asociación tienen lugar, se utilizará la misma clave WEP estática para el cifrado de los datos.
Contrario a lo que podría parecer, el método Shared Key Authentication es más inseguro que Open System Authentication. Esto se debe a que si un atacante obtiene tanto el challenge sin cifrar y el cifrado, puede obtener la clave, lo que le permitiría descifrar todo el tráfico.
Mecanismos de cifrado
WEP, TKIP y CCMP son métodos empleados para el cifrado del payload de los MSDU de frames de datos en 802.11
WEP
Wired Equivalent Privacy es un mecanismo de cifrado de capa 2 que usa el algoritmo RC4 para el cifrado de bloques. Se pueden usar dos longitudes de clave diferentes, 64 y 128 bits. Los tres objetivos que intenta cumplir son: confidencialidad de los datos, control de acceso e integridad de los datos. Fue empleado por el ejército de USA hasta que se incluyó en el estándar IEEE 802.11-1997. En el estándar de 802.11-2007 se define WEP como un método pre-RSNA obsoleto que no debe ser utilizado. Tanto WEP de 64 bits como el de 128 bits usan una clave estática de 40 bits junto con un vector de inicialización (IV) de 24 bits de longitud.
TKIP
TKIP es una mejora de WEP. Fue creado como un parche con el objetivo de mitigar las vulnerabildades identificadas en WEP hasta que se terminase la redacción del estandar 802.11i. Utiliza el algoritmo RC4 para llevar a cabo el cifrado y descifrado de mensajes. TKIP utiliza claves generadas dinámicamente generadas a partir del proceso de autenticación en 4 vías (4 way handshake). A día de hoy TKIP está obsoleto. Las WLAN deben ser protegidas con CCMP para proporcionar integridad y privacidad de los datos transmitidos.
Pagina 302 contramedidas TKIP en estandar 2007 (Si es así en este caso existen versiones de TKIP más vulnerables).
CCMP
CCMP es un protocolo de cifrado diseñado para su utilización en redes Wireless LAN permitiendo proporcionar los principios de confidencialidad, autenticación, integridad y protección frente a ataques de repetición. Está formado por distintos componentes:
- Counter mode (representado como CTR): Utilizado para proporcionar confidencialidad.
- CBC-MAC (Cipher-block chanining message authentication code) - Empleado para proporcionar autenticación e integridad.
- Counter mode + Cipher block chaining message authentication se refiere a CCMP.
CCMP se basa algoritmo de cifrado AES. Combinando CTR para proporcionar confidencialidad y CBC-MAC para autenticación e integridad. CCM utiliza la misma clave para realizar el cifrado del payload del MSDU y proporciona comprobación de integridad. CCM se utiliza con el algoritmo de cifrado de bloque AES utilizado una clave de 128 bits para realizar el cifrado en bloques de 128 bits.