Antes de tener acceso a los recursos de la red, los usuarios deben ser autenticados. En un mundo ideal, cada usuario inalámbrico debería tener un identificador personal que fuera único, inmodificable e imposible de suplantar por otros usuarios. Este es un problema muy difícil de resolver en el mundo real.
Lo más cercano a tener un identificador único es la dirección MAC. Este es un número de 48-bits asignado por el fabricante a cada dispositivo inalámbrico y Ethernet. Empleando un filtro mac en nuestro punto de acceso, podemos autentificar a los usuarios mediante su dirección MAC. Con este método el punto de acceso, mantiene una tabla de direcciones MAC aprobadas. Cuando un usuario intenta asociarse a un punto de acceso, la dirección MAC del cliente debe estar en la lista aprobada, o de lo contrario la asociación va a ser rechazada. Como una alternativa, el AP puede tener una tabla de direcciones MAC “prohibidas”, y habilitar a todos los dispositivos que no están en esa lista.
Desafortunadamente, este no es un mecanismo de seguridad ideal. Mantener las tablas MAC en cada dispositivo puede ser muy engorroso, requiriendo que todos los dispositivos cliente tengan su dirección MAC grabadas y cargadas en los AP. Además, las direcciones MAC a menudo pueden modificarse mediante software. Si un atacante determinado observa las direcciones MAC que están en uso en una red inalámbrica, él puede “suplantar” una dirección MAC aprobada y asociarse con éxito al AP. A pesar de que el filtro MAC va a evitar que los usuarios involuntarios y los curiosos accedan a la red, el filtro MAC por si solo no puede proteger su red de los atacantes empecinados.
Los filtros MAC son útiles para limitar temporalmente el acceso de usuarios que actúan de forma incorrecta. Por ejemplo, si una computadora portátil tiene un virus que envía grandes cantidades de tráfico no deseado, su dirección MAC puede agregarse a la tabla de filtrado para detener el tráfico de forma inmediata. Esto le dará tiempo para ubicar al usuario y arreglar el problema.
Otra forma popular de autenticación de las redes inalámbricas es la llamada red cerrada. En una red común, los AP transmiten sus ESSID muchas veces por segundo, permitiéndoles a los clientes (así como a las herramientas como NetStumbler) encontrar la red y mostrar su presencia al usuario. En una red cerrada, el AP no transmite el ESSID, y los usuarios deben conocer el nombre completo de la red antes de que el AP les permita asociarse. Esto evita que los usuarios casuales descubran la red y la seleccionen en su cliente de red inalámbrica.
Con esta característica hay varios inconvenientes. Forzar a los usuarios a escribir el ESSID completo antes de conectarse a la red, amplía las posibilidades de error y a menudo resulta en solicitudes de soporte y quejas. La red no será detectada por herramientas como NetStumbler, y esto puede prevenir que la misma aparezca en los mapas de los war drivers. Pero esto también significa que otros instaladores de redes tampoco pueden encontrar su red con facilidad, y no van a saber que usted está usando un canal dado. Un vecino podría realizar un estudio del lugar, y al no detectar redes cercanas podría instalar su propia red en el mismo canal que usted está utilizando, lo cual va a provocarle problemas de interferencia tanto a usted como a su vecino.
Finalmente, utilizar redes cerradas ofrece poca seguridad adicional a su red. Utilizando herramientas de monitoreo pasivas (como Kismet), un usuario experimentado puede detectar paquetes enviados desde sus clientes legítimos al AP. Esos paquetes necesariamente contienen el nombre de la red. Y por lo tanto, un malintencionado puede usarlo luego para asociarse, al igual que lo haría un usuario normal.
Probablemente la encriptación sea la mejor herramienta que tenemos para autenticar a los usuarios de la red. Mediante una fuerte encriptación, podemos identificar a un usuario de una forma única difícil de suplantar, y usar esa identidad para determinar accesos futuros a la red. La encriptación también tiene el beneficio de ofrecer una capa de privacidad adicional ya que evita que los fisgones tengan un acceso fácil al tráfico de la red.
El método de encriptación más utilizado en las redes inalámbricas es el llamado encriptación WEP. WEP significa privacidad equivalente a la cableada (del inglés Wired Equivalent Privacy), y es soportada por casi todo el equipamiento 802.11a/b/g. WEP utiliza una clave compartida de 40-bits para encriptar los datos entre el punto de acceso y el cliente. La clave debe ingresarse en los AP así como en cada uno de los clientes. Cuando se habilita WEP, los clientes no pueden asociarse con el AP hasta que utilicen la clave correcta. Un fisgón oyendo una red con WEP igual puede ver el tráfico y las direcciones MAC, pero los mensajes de los datos de cada paquete están encriptados. Esto provee a la red de un buen mecanismo de autenticación, además de darle un poco de privacidad.
WEP definitivamente no es la mejor solución de encriptación que haya disponible. Por un lado, la clave WEP se comparte entre todos los usuarios, y si la misma está comprometida (es decir, si un usuario le dice a un amigo la contraseña, o se va un empleado) entonces cambiar la contraseña puede ser extremadamente difícil, ya que todos los AP y los dispositivos cliente deben cambiarla. Esto también significa que los usuarios legítimos de la red pueden escuchar el tráfico de los demás, ya que todos conocen la clave.
A menudo la clave es seleccionada sin mucho cuidado, haciendo posibles los intentos de ataques fuera de línea. Aún peor, varias versiones de WEP son vulnerables mediante técnicas conocidas, haciendo aún más fácil atacar algunas redes. Algunos fabricantes han implementado varias extensiones a WEP (como claves más largas y esquemas rápidos de rotación), pero esas extensiones no son parte del estándar, de tal manera que no van a funcionar correctamente entre equipamientos de diferentes fabricantes. Actualizando al firmware más reciente en todos sus dispositivos inalámbricos, puede prevenir alguno de los primeros ataques conocidos a WEP.
Pese a lo anterior, WEP puede ser una herramienta útil de autenticación. Confiando en que sus usuarios no van a difundir la contraseña, puede estar casi seguro de que sus clientes de red inalámbrica son legítimos. Los ataques a WEP están fuera del alcance de la mayoría de los usuarios. WEP es extremadamente útil para asegurar enlaces punto a punto a larga distancia, aún en redes abiertas. Si utiliza WEP en dicho enlace, desalentará que otras personas se asocien al enlace, y probablemente escojan otro AP. Definitivamente WEP es una señal de “manténgase afuera” para su red. Cualquiera que detecte la red va a ver que se requiere una clave, dejándole claro que no es bienvenido.
La mayor fortaleza de WEP es su interoperabilidad. Para cumplir con los estándares, todos los dispositivos inalámbricos soportan un WEP básico. Si bien no es el método más fuerte disponible, ciertamente es la característica implementada más comúnmente. Más adelante vamos a ver otras técnicas de encriptación más avanzadas.
Para obtener más detalles sobre el estado de la encriptación WEP, vea estos artículos:
Otro protocolo de autenticación en la capa de enlace de datos es el Acceso Protegido Wi-Fi, o WPA (Wi-Fi Protected Access por su sigla en inglés). WPA se creó específicamente para lidiar con los problemas de WEP que mencionamos antes. Provee un esquema de encriptación significativamente más fuerte, y puede utilizar una clave privada compartida, claves únicas asignadas a cada usuario, o inclusive un certificado SSL para autenticar el punto de acceso y el cliente. Las credenciales de autenticación se chequean usando el protocolo 802.1X, el cual puede consultar una base de datos externa como RADIUS. Mediante el uso de un Protocolo de Integridad Temporal de la Clave (TKIP –Temporal Key Integrity Protocol), las claves se pueden rotar rápidamente, reduciendo la posibilidad de que una sesión en particular sea descifrada. En general, WPA provee una autenticación y privacidad significativamente mejor que el estándar WEP.
El problema con WPA, a la fecha de publicación de este libro, es que la interoperabilidad entre los vendedores es aún muy baja. WPA requiere equipamiento de última generación para los puntos de acceso, y firmware actualizado en todos los clientes inalámbricos, así como una configuración laboriosa. Si usted controla la totalidad de la plataforma de equipamiento del lugar donde está realizando la instalación, WPA puede ser ideal. La autenticación de los clientes y de los AP, resuelve los problemas de puntos de acceso deshonestos y provee muchas más ventajas que WEP. Pero en la mayoría de las instalaciones de red donde el equipamiento es variado y el conocimiento de los usuarios es limitado, instalar WPA puede ser una pesadilla. Por esta razón es que la mayoría continua utilizando WEP, si es que usa algún tipo de encriptación.
Una herramienta común de autenticación utilizada en las redes inalámbricas es el portal cautivo. Este utiliza un navegador web estándar para darle al usuario la posibilidad de presentar sus credenciales de registro. También puede utilizarse para presentar información (como Política de Uso Aceptable) a los usuarios antes de permitir el acceso. Mediante el uso de un navegador web en lugar de un programa personalizado de autenticación, los portales cautivos funcionan en prácticamente todas las computadoras portátiles y sistemas operativos. Generalmente se utilizan en redes abiertas que no tienen otro método de autenticación (como WEP o filtros MAC).
Para comenzar, el usuario abre su computadora portátil y selecciona la red. Su computadora solicita una dirección mediante DHCP y le es otorgada. Luego usa su navegador web para ir a cualquier sitio en Internet.
En lugar de recibir la página solicitada, al usuario se le presenta una pantalla de registro. Esta página puede solicitarle al usuario que ingrese su nombre de usuario y una contraseña, simplemente oprime el botón de “registro” (login), escribe los números de una tarjeta prepago, o ingresa cualquier otra credencial que solicite el administrador de red. El punto de acceso u otro servidor en la red verifica los datos. Cualquier otro tipo de acceso a la red se bloquea hasta que se verifiquen las credenciales.
Una vez que el usuario ha sido autenticado, se le permite el acceso a los recursos de la red, y en general es redireccionado al sitio web que solicitó originalmente.
Los portales cautivos no proveen encriptación para los usuarios de redes inalámbricas, en su lugar confían en las direcciones MAC e IP del cliente como identificadores únicos. Si bien esto no es necesariamente muy seguro, muchas implementaciones van a solicitar que el usuario se re-autentique periódicamente. Esto puede hacerse automáticamente, minimizando una ventana emergente (pop-up) del navegador, cuando el usuario se registra por primera vez.
Debido a que no proveen una fuerte encriptación, los portales cautivos no son una buena elección para aquellas redes que requieren una protección fuerte y limiten el acceso solamente a usuarios confiables. En realidad se adaptan mejor para cafés, hoteles y otros lugares de acceso público donde se esperan usuarios casuales de la red.
En redes públicas o semipúblicas, las técnicas de encriptación como WEP y WPA son realmente inútiles. Simplemente no hay forma de distribuir claves públicas o compartidas para el público en general sin comprometer la seguridad de esas claves. En esas instalaciones, una simple aplicación como un portal cautivo provee un nivel de servicio intermedio entre completamente abierto y completamente cerrado.
Dos implementaciones de portales cautivos de fuente abierta son NoCatSplash y Chillispot.
Si usted simplemente necesita proveer a los usuarios de una red abierta con información y la política de uso aceptable, preste atención a NoCatSplash. El mismo está disponible en http://nocat.net/download/NoCatSplash/.
NoCatSplash provee una página de ingreso modificable, solicitándoles a sus usuarios presionar el botón de “registro” antes de utilizar la red. Esto es útil para identificar los operadores de la red y mostrar las reglas de acceso a la misma.
NoCatSplash está escrito en C, y va a correr en casi cualquier sistema operativo tipo Unix incluidos Linux, BSD, y también plataformas embebidas como OpenWRT. Tiene un archivo de configuración muy simple y puede usar cualquier archivo HTML personalizado como la página de ingreso. En general se corre directamente en un punto de acceso, pero también funciona en un enrutador o un servidor proxy. Para más información, vea la página http://nocat.net/.
NoCatSplash es una implementación simple de portal cautivo. Existen muchas otras implementaciones gratuitas que soportan diversos rangos de funcionalidad. Algunas de ellas incluyen: