Seguridad en redes inalámbricas

Son muchos los motivos para preocuparnos por la seguridad de una red inalámbrica. Por ejemplo, queremos evitar compartir nuestro ancho de banda públicamente. A nadie con algo de experiencia se le escapa que las redes inalámbricas utilizan un medio inseguro para sus comunicaciones y esto tiene sus repercusiones en la seguridad. Tendremos situaciones en las que precisamente queramos compartir públicamente el acceso a través de la red inalámbrica, pero también tendremos que poder configurar una red inalámbrica para limitar el acceso en función de unas credenciales. También tenemos que tener en cuanta que las tramas circulan de forma pública y en consecuencia cualquiera que estuviera en el espacio cubierto por la red, y con unos medios simples, podría capturar la tramas y ver el tráfico de la red. Aunque esto pueda sonar a película de Hollywood, está más cerca de lo que podríamos pensar.

Seguridad en Redes Inalámbricas

Son muchos los motivos para preocuparnos por la seguridad de una red inalámbrica. Por ejemplo, queremos evitar compartir nuestro ancho de banda públicamente. A nadie con algo de experiencia se le escapa que las redes inalámbricas utilizan un medio inseguro para sus comunicaciones y esto tiene sus repercusiones en la seguridad. Tendremos situaciones en las que precisamente queramos compartir públicamente el acceso a través de la red inalámbrica, pero también tendremos que poder configurar una red inalámbrica para limitar el acceso en función de unas credenciales. También tenemos que tener en cuanta que las tramas circulan de forma pública y en consecuencia cualquiera que estuviera en el espacio cubierto por la red, y con unos medios simples, podría capturar la tramas y ver el tráfico de la red. Aunque esto pueda sonar a película de Hollywood, está más cerca de lo que podríamos pensar.

Para resolver los problemas de seguridad que presenta una red inalámbrica tendremos que poder, por un lado, garantizar el acceso mediante algún tipo de credencial a la red y por otro garantizar la privacidad de las comunicaciones aunque se hagan a través de un medio inseguro.

Una empresa no debería utilizar redes inalámbricas para sus comunicaciones si tiene información valiosa en su red que desea mantener segura y no ha tomado las medidas de protección adecuadas. Cuando utilizamos una página web para enviar un número de tarjeta de crédito deberemos, hacerlo siempre utilizando una web segura porque eso garantiza que se transmite cifrada. Pues en una red inalámbrica tendría que hacerse de una forma parecida para toda la información que circula, para que proporcione al menos la misma seguridad que un cable. Pensemos que en una red inalámbrica abierta se podría llegar a acceder a los recursos de red compartidos.

WEP

WEP (Wired Equivalent Privacy), que viene a significar ?Privacidad Equivalente a Cable?, es un sistema que forma parte del estándar 802.11 desde sus orígenes. Es el sistema más simple de cifrado y lo admiten,creo, la totalidad de los adaptadores inalámbricos. El cifrado WEP se realiza en la capa MAC del adaptador de red inalámbrico o en el punto de acceso, utilizando claves compartidas de 64 o 128 bits. Cada clave consta de dos partes, una de las cuales la tiene que configurar el usuario/administrador en cada uno de los adaptadores o puntos de acceso de la red. La otra parte se genera automáticamente y se denomina vector de inicialización (IV). El objetivo del vector de inicialización es obtener claves distintas para cada trama. Ahora vamos a ver una descripción del funcionamiento del cifrado WEP.

Cuando tenemos activo el cifrado WEP en cualquier dispositivo inalámbrico, bien sea una adaptador de red o un punto de acceso, estamos forzando que el emisor cifre los datos y el CRC de la trama 802.11. El receptor recoge y la descifra. Para no incurrir en errores de concepto, esto es sólo aplicable a comunicaciones estaciones 802.11, cuando el punto de acceso recoge una trama y la envía a través del cable, la envía sin cifrar. El cifrado se lleva a cabo partiendo de la clave compartida entre dispositivos que, como indicamos con anterioridad, previamente hemos tenido que configurar en cada una de las estaciones. En realidad un sistema WEP almacena cuatro contraseñas y mediante un índice indicamos cual de ellas vamos a utilizar en las comunicaciones.

El proceso de cifrado WEP agrega un vector de inicialización (IV) aleatorio de 24 bits concatenándolo con un la clave compartida para generar la llave de cifrado. Observamos como al configurar WEP tenemos que introducir un valor de 40 bits (cinco dígitos hexadecimales), que junto con los 24 bits del IV obtenemos la clave de 64 bits. El vector de inicialización podría cambiar en cada trama trasmitida. WEP usa la llave de cifrado para generar la salida de datos que serán, los datos cifrados más 32 bits para la comprobación de la integridad, denominada ICV (integrity check value). El valor ICV se utiliza en la estación receptora donde se recalcula y se compara con el del emisor para comprobar si ha habido alguna modificación y tomar una decisión, que puede ser rechazar el paquete.

Para cifrar los datos WEP utiliza el algoritmo RC4, que básicamente consiste en generar un flujo de bits a partir de la clave generada, que utiliza como semilla, y realizar una operación XOR entre este flujo de bits y los datos que tiene que cifrar. El valor IV garantiza que el flujo de bits no sea siempre el mismo. WEP incluye el IV en la parte no cifrada de la trama, lo que aumenta la inseguridad. La estación receptora utiliza este IV con la clave compartida para descifrar la parte cifrada de la trama.

Lo más habitual es utilizar IV diferentes para transmitir cada trama aunque esto no es un requisito de 801.11. El cambio del valor IV mejora la seguridad del cifrado WEP dificultando que se pueda averiguar la contraseña capturando tramas, aunque a pesar de todo sigue siendo inseguro.

Debilidades de WEP

Las debilidades de WEP se basan en que, por un lado, las claves permanecen estáticas y por otro lado los 24 bits de IV son insuficientes y se transmiten sin cifrar. Aunque el algoritmo RC4 no esté considerado de los más seguros, en este caso la debilidad de WEP no es culpa de RC4, sino de su propio diseño.

Si tenemos un vector de inicialización de 24 bits tendremos 2^24 posibles IV distintos y no es difícil encontrar distintos paquetes generados con el mismo IV. Si la red tiene bastante tráfico estas repeticiones se dan con cierta frecuencia. Un atacante puede recopilar suficientes paquetes similares cifrados con el mismo IV y utilizarlos para determinar el valor del flujo de bits y de la clave compartida. El valor del IV se transmite sin cifrar por lo que es público. Esto puede parecer muy complicado, pero hay programas que lo hacen automáticamente y en horas o días averiguan la contraseña compartida. No olvidemos que aunque la red tenga poco tráfico el atacante puede generarlo mediante ciertas aplicaciones.

Una vez que alguien ha conseguido descifrar la contraseña WEP tiene el mismo acceso a la red que si pudiera conectarse a ella mediante cable. Si la red está configurada con un servidor DHCP, entonces el acceso es inmediato, y si no tenemos servidor DHCP pues al atacante le puede llevar cinco minutos más.

Vista la debilidad real de WEP lo ideal es que se utilizaran claves WEP dinámicas, que cambiaran cada cierto tiempo lo que haría materialmente imposible utilizar este sistema para asaltar una red inalámbrica, pero 802.11 no establece ningún mecanismo que admita el intercambio de claves entre estaciones. En una red puede ser tedioso, simplemente inviable, ir estación por estación cambiando la contraseña y en consecuencia es habitual que no se modifiquen, lo que facilita su descifrado.

Algunos adaptadores sólo admiten cifrado WEP por lo que a pesar de su inseguridad puede ser mejor que nada. Al menos evitaremos conexiones conexiones en abierto incluso evitaremos conexiones y desconexiones a la red si hay varias redes inalámbricas disponibles.

Referencias:

Kismet

Airsnort

WEPCrack

IEEE 802.11i

Hemos visto que con WEP utilizamos claves estáticas que son relativamente fáciles de averiguar. La solución al problema que plantea WEP consiste en establecer un sistema dinámico de claves sin necesidad de intervención del administrador y con este propósito se establece el estándar IEEE 802.11i.

El estándar IEEE 802.11i incluye protocolos de gestión de claves y mejoras de cifrado y autenticación con IEEE 802.1X.

TKIP

TKIP (Temporary Key Integrity Protocol) es un protocolo de gestión de claves dinámicas admitido por cualquier adaptador que permite utilizar una clave distinta para cada paquete transmtido. La clave se construye a partir de la clave base, la dirección MAC de la estación emisora y del número de serie del paquete como vector de inicialización.

Cada paquete que se transmite utilizando TKIP incluye un número de serie único de 48 bits que se incrementa en cada nueva transmisión para asegurar que todas las claves son distintas. Esto evita "ataques de colisión" que se basan en paquetes cifrados con la misma clave.

Por otro lado al utilizar el número de serie del paquete como vector de inicialización (IV), también evitamos IV duplicados. Además, si se inyectara un paquete con una contraseña temporal que se hubiese podido detectar, el paquetes estaría fuera de secuencia y sería descartado.

En cuanto a la clave base, se genera a partir del identificador de asociación, un valor que crea el punto de acceso cada vez que se asocia una estación. Además del identificacador de asociación, para generar la clave base se utilizan las direcciones MAC de la estación y del punto de acceso, la clave de sesión y un valor aleatorio.

Como veremos más adelante, la clave de sesión puede ser estática y compartida (PSK) por toda la red o bien, mediante 802.1X, transmitirla por un canal seguro.

CCMP

CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protocol) es un nuevo protocolo que utiliza AES como algoritmo criptográfico y proporciona integridad y confidencialidad.

CCMP se basa en el modo CCM del algoritmo de cifrado AES y utiliza llaves de 128 bits con vectores de inicialización de 48 bits.

CCMP consta del algoritmo de privacida que es el "Counter Mode" (CM) y del algoritmo de integridad y autenticidad que es el "Cipher Block Chaining Message Authentication Code" (CBC-MAC).

CCMP es obligatorio sobre RSN (Robust Secure Network).

WRAP

Existe un sistema de cifrado opcional denominado WRAP (Wireless Robust Authentication Protocol) que puede sustituir a CCMP.

WPA

WPA es la abreviatura de Wifi Protect Access, y consiste en un mecanismo de control de acceso a una red inalámbrica, pensado con la idea de eliminar las debilidades de WEP. También se le conoce con el nombre de TSN (Transition Security Network).

WPA utiliza TKIP TKIP (Temporal Key Integrity Protocol) para la gestión de las claves dinámicas mejorando notablemente el cifrado de datos, incluyendo el vector de inicialización. En general WPA es TKIP con 8021X. Por lo demás WPA funciona de una manera parecida a WEP pero utilizando claves dinámicas, utiliza el algoritmo RC4 para generar un flujo de bits que se utilizan para cifrar con XOR y su vector de inicialización (IV) es de 48 bits. La modificación dinámica de claves puede hacer imposible utilizar el mismo sistema que con WEP para abrir una red inalámbrica con seguridad WPA.

Además WPA puede admitir diferentes sistemas de control de acceso incluyendo la validación de usuario-contraseña, certificado digital u otro sistema o simplemente utilizar una contraseña compartida para identificarse.

WPA-PSK

Es el sistema más simple de control de acceso tras WEP, a efectos prácticos tiene la misma dificultad de configuración que WEP, una clave común compartida, sin embargo, la gestión dinámica de claves aumenta notoriamente su nivel de seguridad. PSK se corresponde con las iniciales de PreShared Key y viene a significar clave compartida previamente, es decir, a efectos del cliente basa su seguridad en una contraseña compartida.

WPA-PSK usa una clave de acceso de una longitud entre 8 y 63 caracteres, que es la clave compartida. Al igual que ocurría con WEP, esta clave hay que introducirla en cada una de las estaciones y puntos de acceso de la red inalámbrica. Cualquier estación que se identifique con esta contraseña, tiene acceso a la red.

Las características de WPA-PSK lo definen como el sistema, actualmente, más adecuado para redes de pequeñas oficinas o domésticas, la configuración es muy simple, la seguridad es aceptable y no necesita ningún componente adicional.

Debilidades de WPA-PSK

La principal debilidad de WPA-PSK es la clave compartida entre estaciones. Cuando un sistema basa su seguridad en un contraseña siempre es susceptible de sufrir un ataque de fuera bruta, es decir ir comprobando contraseñas, aunque dada la longitud de la contraseña y si está bien elegida no debería plantear mayores problemas. Debemos pensar que hay un momento de debilidad cuando la estación establece el diálogo de autenticación. Este diálogo va cifrado con las claves compartidas, y si se ?entienden? entonces se garantiza el acceso y se inicia el uso de claves dinámicas. La debilidad consiste en que conocemos el contenido del paquete de autenticación y conocemos su valor cifrado. Ahora lo que queda es, mediante un proceso de ataque de diccionario o de fuerza bruta, intentar determinar la contraseña.

WPA empresarial

En redes corporativas resultan imprescindibles otros mecanismos de control de acceso más versátiles y fáciles de mantener como por ejemplo los usuario de un sistema identificados con nombre/contraseña o la posesión de un certificado digital. Evidentemente el hardware de un punto de acceso no tiene la capacidad para almacenar y procesar toda esta información por lo que es necesario recurrir a otros elementos de la red cableada para que comprueben unas credenciales. Ahora bien, parece complicado que un cliente se pueda validar ante un componente de la red por cable si todavía no tenemos acceso a la red, parece el problema del huevo y la gallina. En este punto es donde entra en juego el IEEE 802.1X, que describimos a continuación, para permitir el tráfico de validación entre un cliente y una máquina de la de local. Una vez que se ha validado a un cliente es cuando WPA inicia TKIP para utilizar claves dinámicas.

Los clientes WPA tienen que estar configurados para utilizar un sistema concreto de validación que es completamente independiente del punto de acceso. Los sistemas de validación WPA pueden ser, entre otros, EAP-TLS, PEAP, EAP-TTLS que describimos más adelante.

802.1X

Debido a las carencias de 802.11 ha sido necesario establecer una nueva normativa estándar que permita tanto la autenticación como el intercambio dinámico de contraseñas, de forma fácil y segura.

El estándar IEEE 802.1X proporciona un sistema de control de dispositivos de red, de admisión, de tráfico y gestión de claves para dispositivos tos en una red inalámbrica. 802.1X se basa en puertos, para cada cliente dispone de un puerto que utiliza para establecer una conexión punto a punto. Mientras el cliente no se ha validado este puerto permanece cerrado. Cada una de estas funcionalidades se puede utilizar por separado, permitiendo a WPA, por ejemplo, utilizar 802.1X para aceptar a una estación cliente.

Para el control de admisión 802.1X utiliza un protocolo de autenticación denominado EAP y para el cifado de datos CCMP y esto es lo que se conoce como RSN (Robust Secure Network) o también WPA2. No todo el hardware admite CCMP.

EAP

Hemos visto que 802.1X utiliza un protocolo de autenticación llamado EAP (Extensible Authentication Protocol) que admite distintos métodos de autenticación como certificados, tarjetas inteligentes, ntlm, Kerberos, ldap, etc. En realidad EAP actúa como intermediario entre un solicitante y un motor de validación permitiendo la comunicación entre ambos.

El proceso de validación está conformado por tres elementos, un solicitante que quiere ser validado mediante unas credenciales, un punto de acceso y un sistema de validación situado en la parte cableada de la red. Para conectarse a la red, el solicitante se identifica mediante una credenciales que pueden ser un certificado digital, una pareja nombre/usuario u otros datos. Junto con las credenciales, el cliente solicitante tiene que añadir también qué sistema de validación tiene que utilizar. Evidentemente no podemos pretender que el punto de acceso disponga del sistema de validación. Por ejemplo, si queremos utilizar como credenciales los usuarios de un sistema, será el punto de acceso el que tendrá que preguntar al sistema si las credenciales son correctas. En general EAP actúa de esta forma, recibe una solicitud de validación y la remite a otro sistema que sepa como resolverla y que formará parte de la red cableada. De esta forma vemos como el sistema EAP permite un cierto tráfico de datos con la red local para permitir la validación de un solicitante. El punto de acceso rechaza todas las tramas que no estén validadas, que provengan de un cliente que no se he identificado, salvo aquéllas que sean una solicitud de validación. Estos paquetes EAP que circulan por la red local se denominan EAPOL (EAP over LAN). Una vez validado, el punto de acceso admite todo el tráfico del cliente.

El sistema de autenticación puede ser un servidor RADIUS situado en la red local.

Los pasos que sigue el sistema de autenticación 802.1X son:

  • El cliente envía un mensaje de inicio EAP que inicia un intercambio de mensajes para permitir autenticar al cliente.

  • El punto de acceso responde con un mensaje de solicitud de identidad EAP para solicitar las credenciales del cliente.

  • El cliente envía un paquete respuesta EAP que contiene las credenciales de validación y que es remitido al servidor de validación en la red local, ajeno al punto de acceso.

  • El servidor de validación analiza las credenciales y el sistema de validación solicitado y determina si autoriza o no el acceso. En este punto tendrán que coincidir las configuraciones del cliente y del servidor, las credenciales tienen que coincidir con el tipo de datos que espera el servidor.

  • El servidor pude aceptar o rechazar la validación y le envía la respuesta al punto de acceso.

  • El punto de acceso devuelve un paquete EAP de acceso o de rechazo al cliente.

  • Si el servidor de autenticación acepta al cliente, el punto de acceso modifica el estado del puerto de ese cliente como autorizado para permitir las comunicaciones.

De lo que hemos visto, el protocolo 802.1X tiene un mecanismo de autenticación independiente del sistema de cifrado. Si el servidor de validación 802.1X está configurado adecuadamente, se puede utilizar para gestionar el intercambio dinámico de claves, e incluir la clave de sesión con el mensaje de aceptación. El punto de acceso utiliza las claves de sesión para construir, firmar y cifrar el mensaje de clave EAP que se manda tras el mensaje de aceptación. El cliente puede utilizar el contenido del mensaje de clave para definir las claves de cifrado aplicables. En los casos prácticos de aplicación del protocolo 802.1X, el cliente puede cambiar automáticamente las claves de cifrado con la frecuencia necesaria para evitar que haya tiempo suficiente como para poder averiguarla.

Existen múltiples tipos de EAP, algunos son estándares y otros son soluciones propietarias de empresas. Entre los tipos de EAP podemos citar:

EAP-TLS

Es un sistema de autenticación fuerte basado en certificados digitales, tanto del cliente como del servidor, es decir, requiere una configuración PKI (Public Key Infraestructure) en ambos extremos. TLS (transport Layer Security) es el nuevo estándar que sustituye a SSL (Secure Socket Layer).

EAP-TTLS

El sistema de autenticación se basa en una identificación de un usuario y contraseña que se transmiten cifrados mediante TLS, para evitar su transmisión en texto limpio. Es decir se crea un túnel mediante TLS para transmitir el nombre de usuario y la contraseña. A diferencia de EAP-TLS sólo requiere un certificado de servidor.

PEAP

El significado de PEAP se corresponde con Protected EAP y consiste en un mecanismo de validación similar a EAP-TTLS, basado en usuario y contraseña también protegidos.

Más artículos...

  1. La capa MAC
  2. Tramas 802.11