Ir al contenido principal

Wifi: Fundamentos y Seguridad - Parte 1

La idea de este post es crear una introducción amigable al wifi, pasando por lo mas básico al funcionamiento general, los mecanismos de seguridad y como auditarlo haciendo el uso de herramientas especializadas para ello.
Espero que les sirva.







La magia de comunicarse sin cables
<citado de wikipedia>
La comunicación "inalámbrica" o "sin cables" es aquella en la que la comunicación (emisor/receptor) no se encuentra unida por un medio de propagación físico, sino que se utiliza la modulación de ondas electromagnéticas a través del espacio.1​ En este sentido, los dispositivos físicos sólo están presentes en los emisores y receptores de la señal, entre los cuales encontramos: antenas, computadoras portátiles, PDA, teléfonos móviles, etc.
Click acá para ver el articulo competo en wikipedia.

¿Que es el wifi?
El wifi es un mecanismo de conexión de dispositivos electrónicos de forma inalámbrica(sin cables). Los dispositivos habilitados con wifi (como una computadora personal, un televisor inteligente, una videoconsola, un teléfono inteligente o un reproductor de música) pueden conectarse a internet a través de un punto de acceso de red inalámbrica(el famoso router). Dicho punto de acceso tiene un alcance de unos veinte metros en interiores, alcance que incrementa al aire libre.
Click acá para ver el articulo competo en nuestra amada wikipedia.




"Wi-Fi es una marca de la Alianza Wi-Fi, la organización comercial que adopta, prueba y certifica que los equipos cumplen con los estándares 802.11 relacionados a redes inalámbricas de área local."

Etimología de la palabra "Wifi":

Wifi o Wi-Fi es originalmente una abreviación de la marca comercial Wireless Fidelity, que en inglés significa ‘fidelidad sin cables o inalámbrica’. En español, lo aconsejable es escribir wifi sin guion, en minúscula y sin cursivas. Además, se puede emplear de igual modo en masculino o femenino, dependiendo de la preferencia y del contexto: la (zona) wifi, el (sistema) wifi.
Definición de Estándar según una búsqueda en San Google:

Definicion de la palabra "Estandar":
1.
       Que es lo más habitual o corriente, o que reúne las características comunes a la mayoría.
"calidad estándar; medidas estándar; resolución estándar; lenguaje estándar; tiene un documento estándar para las facturas; la fotocopiadora lleva dos bandejas estándar"
2.
   adjetivo/nombre masculino
Que sirve de patrón, modelo o punto de referencia para medir o valorar cosas de la misma especie.


 EL IEEE

"El Instituto de Ingeniería Eléctrica y Electrónica —conocido por sus siglas IEEE, es una asociación mundial de ingenieros dedicada a la creación de estándares y el desarrollo en áreas técnicas."


Esta institución permite la correcta y eficiente aplicación de la tecnología en base a los mejores métodos conocidos por el hombre, aprobados por el consenso de la organización, que se compone de gente profesional en el área.
En resumen permite que las empresas que fabrican tecnología no lo hagan de una forma, si no "de la forma" en que establece un estándar para organizar mas el mundo de la tecnología.

El IEEE 802.11 o simplemente 802.11 son un conjunto de normas que especifican el funcionamiento de una "Red de área local Inalambrica" o WLAN(wireless local area network), este estándar es apoyado y difundido por la alianza Wi-Fi.



Versiones del IEEE 802.11





Componentes de una red Wifi
Una red wifi hogareña (cambiemos el pocket pc por un celular jaja)

Una red wifi esta compuesta de un punto de acceso  o access point (AP)  que se encarga de enrutar toda la red a y proveerle conexión a todos los dispositivos conectados a el, ya sea de forma cableada o inalambrica.

Router, por que se encarga de proporcionar y encaminar todo el trafico por la red




Como se comunican entre ellos

El objetivo de las comunicaciones inalambricas es el de que varios dispositivos puedan comunicarse entre si sin necesidad de usar cables, se hace uso de las ondas electromagnéticas como medio para tal objetivo.

Ondas y frecuencias en el wifi

Una onda puede ser "modulada", se puede controlar su altura (AM) o su frecuencia(FM), el wifi aplica la modulación de la frecuencia es la cantidad de pulsaciones que realiza en un segundo, 1Hz es una pulsación por segundos, 2Hz son dos, y así infinitamente.

Una onda electromagnética


El wifi usa una frecuencia que va aprox. de 2.400 GHz hasta 2.500Ghz, es decir, 2.500.000.000 ciclos por segundo!

Canales

Un canal en las redes inalambricas es un espacio en el espectro electromagnético por donde pasan las ondas, es una manera de abstraer el concepto de frecuencia y ubicarla en una especie de regla. El wifi usa un canal para comunicarse que puede ser configurado por el usuario.
Podemos imaginar el espectro como una regla donde cada rango representa un canal.
Las ondas ocupan una variación en su frecuencia para poder transmitir datos.

Imaginen los canales como una autopista donde pasan todos los datos, si hay muchos Puntos de Acceso transmitiendo a la vez en un mismo canal hay posibilidad de que se genere un atasco es por eso que se idea el concepto de canal para reducir ese choque mejorando la tasa de transferencia y calidad de señal.

De las ondas a los datos 

Básicamente el dispositivo A con su circuito electrónico genera una onda que se propaga por el espacio y esta puede ser recibida por el dispositivo B.

Sabemos que las computadoras a nivel electrónico se valen de pulsos eléctricos para determinar su funcionamiento y codificar su información, picos de encendido y de apagado, 1 y 0,el famoso sistema binario, por lo tanto se hará uso de las ondas electromagnéticas para representar estos pulsos que serán recibidos e interpretados para convertirse en información por y para el receptor, a estos los denominaremos "paquetes de datos".

Una manera amena y didáctica de entenderlo. En términos técnicos los sensores reciben los pulsos de manera analógica (variante) y se encargan de convertir la señal a digital(discreta).

Entendiendo el lenguaje

Desde que se enciende un dispositivo dotado del estándar 802.11 , este dispone de la capacidad para comunicarse con otros dispositivos cercanos a el, y lo hace por medio de una secuencia de datos llamados Tramas, estas son usadas entre ellos para establecer comunicación, enviarse datos, confirmar estados y otros.



Ondas Electromagnéticas -> Pulsos de 1 y 0 -> Paquetes de datos -> Tramas 


Existen 3 tipos de tramas con sus subtipos:
  1. Tramas de Gestión:Son las que permiten gestionar/iniciar comunicaciones entre el Punto de Acceso y el Cliente.
  2. Tramas de Datos:Sirven para transportar los datos cifrados entre ambos.
  3. Tramas de Control:Sirven para colaborar en la entrega de las tramas y evitar que choquen en caso de que hayan varios clientes conectados a la vez.


Presten atención a las siglas, que nos van a servir mas adelantes para identificarlas cuando tengamos que analizar un trafico.

TRAMAS DE GESTIÓN:
  • Trama de autenticación(Authentication Request): La autenticación es un proceso que sirve para comprobar la identidad de un adaptador y decidir si aceptarlo o no, el cliente envía una petición para autentificarse con el Punto de Acceso.
  • Trama de respuesta a autenticación(Authentication Response):Cuando el Punto de Acceso recibe una solicitud de autentificación, este le responde.
  • Trama de-autenticación: Al contrario que el de autenticación, esta sirve para de-autentificarse del dispositivo.
  • Trama de solicitud de Asociación(Association Request): Esta trama siempre es iniciada por el Cliente cuando quiere asociarse al Punto de acceso, este le reserva un ID y recursos.
  • Trama de respuesta de Asociación(Association Response)Esta es la trama que va a utilizar el Punto de acceso para confirmar la asociación al Cliente, contiene información de ID y tasas de transferencias admitidas.
  • Trama de respuesta de re-asociación: Es la respuesta del Punto de acceso a una re-asociación, similar a la asociación.
  • Trama de des-asociación(Deauthentication): La envía el Cliente avisando que se va a desasociar así el Punto de acceso libera los recursos que le estaba dedicando.
  • Trama de Beacon (señal, baliza, beacon frame): El Punto de Acceso envía sucesivamente en todo momento tramas Beacons para difundir su presencia a su alrededor(hasta donde soporte su radio de cobertura), estas tramas contienen la información de su red, el nombre(SSID), rangos soportados,etc. Estas tramas van a ser recibidas por los clientes que estén cerca y buscando redes
  • Trama de solicitud de pruebas(Probe request):Estas tramas sirven cuando se necesita obtener información acerca de algún punto de acceso especifico.
  • Trama de respuesta a prueba(Probe response):Cuando el Punto de Acceso recibe la solicitud de prueba, envía esta trama con información sobre su red, similar a la trama beacon pero en vez de ser difundida al aire, se envía por solicitud y a un punto especifico.

TRAMAS DE DATOS:

  • Data:Contiene la información cifrada(o no) que envía una de las partes a otra.

TRAMAS DE CONTROL (Protocolo MACA, multiple access collision avoidance):

  • Tramas "Request To Send"(RTS)Es enviada por el Punto de acceso y sirve para reducir la colisiones entre clientes conectados al mismo, el AP hace uso de esta trama para esclarecer la intensión de intercambiar dialogo con X cliente.
  • Tramas "Clear to Send"(CTS): El AP envía esta trama con la intensión de callar a los demás clientes por una determinada cantidad de tiempo hasta que se concrete el envio de una trama a un cliente especifico.
  • Tramas Acknowledgement(ACK): Cuando un emisor envía una trama, el receptor tiene que avisarle que la recibió, esto lo hace enviando un ACK, en caso contrarió de que no mande la notificación de recepción, la otra parte seguirá enviando la trama hasta que se le confirme.

El protocolo MACA en una humilde y amigable viñeta hecha en paint, obviamente este proceso sucede en menos de 1 segundo por cada vez que se envía una trama.




¡Hola! ¡Soy un Wifi!

Ahora que sabemos como se comunican dos dispositivos Wifi vamos a ver como se comportan.

Un Punto de Acceso tiene la tendencia a que desde que es encendido, empezar a avisar a sus alrededores que existe, como vimos anteriormente, lo va a hacer utilizando la trama Beacon.
Cuando envía una Trama Beacon al aire, hasta donde le dé la cobertura, lo va a hacer con la intensión de que un cliente pueda saber que es un Punto de Acceso y podemos conectarnos a el.

Contenido del Beacon Frame:

   SSID
   Rangos soportados
   Frequency-hopping (FH) 
   Direct-Sequence (DS) 
   Contention-Free (CF) 
   IBSS 
   Mapa de indicación de tráfico (TIM)


Como se puede ver describe especificaciones de la red, entre ellos el SSID que es el nombre de la red wifi. ej: "Wifi Casa de fulano", "Flia. Mengano".
  • Acerca del termino "beacon frames": Beacon provienen de la terminación que se le dan a  dispositivos capaces de transmitir una señal única que puede ser recibida por otro dispositivo y así intercambiar datos. Frames por que tienen una estructura determinada 
  • Así como el AP envía tramas Beacon para anunciarse, puede no hacerlo, este es un mecanismo de ocultamiento de BSSID.



Conectándonos a uno

Cuando el cliente activa el Wifi en su dispositivo, este comienza a escanear en todas los canales el aire con la intensión de captar Beacons de alguna red que este anunciando su existencia, los recibe y así es como los vemos en la lista de wifi cercanos.

Lista donde aparecen los wifi mas cercanos (Android)


Como se puede observar, hay wifi que no necesitan contraseña para poder usar mientras que otros si, Las Publicas y las Privadas.




Hola soy un cliente y quiero conectarme




Desde el momento en que decidimos conectarnos a una red wifi, comienza un proceso de asociación que consiste en varios pasos dependiendo del tipo de red.
En una red publica cualquier persona puede entrar sin una contraseña, pero en una privada la cosa se torna un poco mas compleja.



Que prime la seguridad

A nadie nos gustaría que cualquier persona pudiera usar nuestro wifi quitándonos conexión a internet o peor, interceptar nuestro trafico y profanar nuestros datos que viajan tan indefensos por el aire, es por eso que el wifi cuenta con un mecanismo de seguridad, el cual consta de un sistema de identificación y asociación por medio de una contraseña previamente compartida y configurada por el usuario, el mismo mecanismo cifra todo eso que viaja por aire para que nadie pueda interferir en nuestra red sin nuestro permiso y menos ver lo que "transporta" de una forma plana.

En resumen, una red wifi cuenta con la capacidad de asociar AP con Cliente creando una suerte de túnel privado donde va a pasar todo el trafico cifrado.
Para profundizar acerca de este tema pueden ir  mismo articulo sobre el Wifi en la sección de seguridad. Link: https://es.wikipedia.org/wiki/Wifi#Seguridad_y_fiabilidad

Los dos métodos de autenticación y cifrado mas populares creados por la wifi alliance son:

WEP, cifra los datos en su red de forma que sólo el destinatario deseado pueda acceder a ellos. Los cifrados de 64 y 128 bits son dos niveles de seguridad WEP. WEP codifica los datos mediante una “clave” de cifrado antes de enviarlo al aire. Este tipo de cifrado no está recomendado debido a las grandes vulnerabilidades que presenta ya que cualquier cracker puede conseguir sacar la clave, incluso aunque esté bien configurado y la clave utilizada sea compleja.

Funcionamiento del sistema de cifrado WEP:

  1. La estación cliente envía una petición de autenticación al Punto de Acceso.
  2. El punto de acceso envía de vuelta un texto modelo.
  3. El cliente tiene que cifrar el texto modelo usando la clave WEP ya configurada, y reenviarlo al Punto de Acceso en otra petición de autenticación.
  4. El Punto de Acceso descifra el texto codificado y lo compara con el texto modelo que había enviado. Dependiendo del éxito de esta comparación, el Punto de Acceso envía una confirmación o una denegación. Después de la autenticación y la asociación, WEP puede ser usado para cifrar los paquetes de datos.


WPA: presenta mejoras como generación dinámica de la clave de acceso. Las claves se insertan como dígitos alfanuméricos.

Cuando se vulneró el cifrado WEP, se creó el cifrado WPA1, una solución temporal hasta solidificar el sistema y crear lo que es WPA2, WPA2 cuenta con dos versiones, una personal y otra empresarial.
Nos centramos en la versión Personal que usa de un sistema de Clave Pre-Compartida y el algoritmo de cifrado AES sobre los datos que comparte, AES desplaza a TKIP usado por WEP y WPA1 por ser vulnerable a ataques.

Así que nos quedamos con WPA2, que funciona con PSK y CCMP AES, lo ultimo en el estándar 802.11.

Algoritmo AES, un sistema cifrado simétrico, por que usa una misma llave para cifrar y decifrar los datos.



Que sucede exactamente cuando seleccionamos una red privada decidimos conectarnos a ella?

Las condiciones de un trato


En la vida real, cuando se establece un trato entre dos personas se suele dar un apretón de manos que reafirma la confianza ante la conclusión del pacto. Entre el AP y el Cliente sucede lo mismo y lo hace en una serie de pasos siendo los últimos 4 los determinantes, estos pasos se llevan a cabo en un breve intercambio de tramas.




Todo lo que prosigue  sucede en un instante y automáticamente sin que tengamos que hacer nada mas que seleccionar y teclear la contraseña.



  1. Si el Cliente decide conectarse, al seleccionarlo, enviara un "Probe request" solicitándole la información al AP, el cual le responderá con un "Probe response".
    El primer paso, reconocimiento.

    1. Una vez recibido el "Probe request" "Authentication Request" avisando que queremos autentificarnos y recibimos un "Authentication Response" que nos da el okey para continuar al siguiente paso.
    2. Si AP nos dijo que podemos autentificarnos, enviamos un "Association Request" y vamos a recibir "Association Response" afirmando la asociación.








    Gracias, ahora tome la contraseña y déjeme entrar


    Ahora que se acordó que el cliente quiere conectarse y el AP lo deja, llega la hora de que el Cliente use su "passphrase", que es la frase, contraseña de 8 a 64 caracteres para poder concretar la conexión.

    El dicho dispositivo cliente, ya dotado con la capacidad de reconocer y poder hacer uso de las conexiones inalambricas definidos por el estándar, usa un algoritmo llamado "PBKDF2" y le pasa los siguientes parámetros
    1. El passphrase
    2. El SSID y su longitud
    3. El número de iteraciones a realizar, 4096.
    4. La longitud de la clave resultante, 256.

    El resultado de esta función es un PSK(Pre shared Key) que es una secuencia única que teóricamente tienen que calcular tanto el AP como el Cliente y tienen que coincidir, en caso contrario, uno de los dos, el cliente, tiene la contraseña incorrecta.





    El Apretón de manos (4-way Handshake)

    Es hora de comprobar si ambos puntos pueden conectarse y empezar a intercambiar conexiones.
    Para ello se creara un "Vector de Inicialización", que es un intercambio de bloques entre ambas partes para poder asegurar el flujo y compartir una llave para realizar el cifrado.


    1)El AP(Authenticator) envía un mensaje al Cliente, este mensaje llamado "Anonce" ( La A por authenticator) es una cadena aleatoria generado en base al PMK, que no es mas que el PSK procesado.

    2)El Cliente(Suplicant) genera un "Snonce", usando este y el Anonce recibido y otros datos, junto a una función pseudoaleatoria construye un PTK(Pairwise Transient Key) y se lo queda, ahora envía su "Snonce" limpio al AP.

    nota: El campo que contiene el bloque aleatorio se llama "Nonce" pero se le agrega el prefijo para poder identificarlo en la teoría.


    3)El AP toma el "Snonce", lo deriva y puede verificar si el Cliente conoce el passphrase, si es así ahora construye un GTK(Group Temporal Key), se lo guarda, lo encripta y se lo envía al Cliente.

    4)El cliente recibe la GTK, lo descifra con  y envía un mensaje confirmando que se recibió todo bien, instalando esta clave y notificándoselo al AP por medio de una trama ACK.

    Ahora ambos cuentan con una GTK, una llave completamente única y temporal con la que van a poder cifrar y descifrar todo el trafico que intercambien a partir de ahora hasta que finalice la sesión o el AP decida actualizarla.

    Nota: En caso de que el cliente usó una contraseña incorrecta, el handshake se corta en el paso 2 sin recibir respuesta del AP, quedando un half-handshake.

    El proceso de asociación en una imagen.



    Otra representación del handshake.




    Ahora técnicamente ya estaríamos conectados y navegando por internet sin problemas!





    Llegados a este punto entonces comprendemos como se compone y funciona una red wifi, como se comunican y el proceso que realizan.
    Esto es todo por ahora, nos vemos en la segunda parte! 😅😅😅😅😅 gracias por pasarse!