Ven a conocer qué es WPS, sus ventajas y desventajas, así como los motivos para desactivarlo y mejorar la seguridad de nuestra red.
Muchos hemos visto en algún momento que en la caja de un router nuevo o en el módem que nos provee de internet, aparece una etiqueta, logotipo o un botón que dice «Wi-Fi Protected Setup«, «WPS», «QSS» o incluso dos flechas apuntando entre sí en alguna de sus partes.
Wi-Fi Protected Setup —o WPS—, se introdujo como estándar en el año 2007 por la Wi-Fi Alliance. Se trata de una función en la que si presionamos un botón o introducimos un PIN, automáticamente obtenemos la contraseña para conectarnos a una red WiFi con cifrados como WPA y WPA2.
Si bien nació como una forma de facilitar la conexión entre dispositivos y puntos de acceso o routers, la realidad es que la planeación no fue del todo adecuada. Y aunque WPS cumple con su propósito, lo malo viene cuando es más un problema de seguridad explotable, en una función que casi no usa la gente.
Pero antes de llegar a ese punto, analicemos esta característica desde el principio:
WPS está diseñado en base a 3 elementos:
El enrollee, cliente o matriculado es aquel dispositivo que solicitará el acceso a la red inalámbrica. Puede entenderse como aquel aparato que deseamos conectar al WiFi a través del botón, PIN, etiqueta NFC o memoria USB con la clave.
El registrar será aquel dispositivo/servidor en la red que se encargará de generar o revocar las credenciales de acceso (nombre de la red y contraseña). A pesar de no necesariamente ser el router, es lo común en la mayoría de los casos, especialmente en entornos hogareños o PyMEs.
Por otra parte, el autenticador será el punto de acceso al que el cliente o enrollee desea conectarse. Y bajo previa verificación del registrar, permitirá la conexión entre el cliente y la red. Puede entenderse como un dispositivo intermedio que será el que permita (o no) la conexión a la red, dependiendo lo que la otra parte le diga qué hacer.
Ahora bien, el registrar y el autenticador comúnmente están integrados como uno solo en un router compatible, por lo que la conexión se puede simplificar como algo entre router y dispositivo.
Este método de conexión es el más extendido entre las marcas de router (a excepción del PIN). Su funcionamiento consiste en literalmente presionar un botón —físico o virtual—, para activar el WPS del punto de acceso durante un periodo de dos minutos, de manera que el dispositivo que esté tratando de conectarse, pueda reconocer de inmediato hacia donde debe «apuntar» para recibir la contraseña.
Una vez que se haya completado la conexión en ese tiempo, será necesario repetir el proceso para añadir otros clientes. El PBC se considera como un registrar con acceso físico, ya que es necesario presionar un botón para activarlo.
Este es el método implementado de forma obligatoria dentro de este estándar, por lo que todos los dispositivos certificados o compatibles con él, son capaces de conectarse a través del PIN.
En este aspecto, hay dos formas de conexión, una mediante un PIN «interno» y la otra mediante uno «externo». Ambos son un PIN de 8 dígitos, pero la diferencia más clara está en que uno se encuentra en el cliente, y el otro en el router o punto de acceso.
El PIN interno se encuentra en los dispositivos que vamos a conectar, pero se necesita introducirlo a través de la interfaz web del registrar. De manera que al tratar de conectarse, se verificará su acceso, y si coincide con el PIN guardado anteriormente, se permitirá la conexión a la red.
Por otro lado, el PIN externo es como una segunda contraseña para la red. Si este es introducido en el dispositivo a conectar, buscará el punto de acceso o router más cercano con WPS (en base a prueba y error), para entregarle el PIN y conectarse.
Normalmente se encuentra en la etiqueta con información técnica en el router, y por esta razón, se considera como un registrar externo. Esto es porque no depende de algún cambio interno en el router para efectuar la conexión.
Aunque se trata de dos métodos de conexión fáciles y rápidos que son implementados como WPS, oficialmente no están soportados dentro del estándar oficial, aunque algunos fabricantes los han introducido como una funcionalidad añadida a sus equipos.
Por otra parte, usar una etiqueta NFC o un pendrive con la clave, no necesariamente está relacionado con la arquitectura base de WPS (registrar y enrollee), ya que es el equivalente a proporcionar nosotros el nombre y la clave «normal» al dispositivo, solo que por otros medios.
El funcionamiento varía dependiendo el método, pero la estructura es más o menos así:
De esta forma, el enrollee recibe la contraseña de la red sin necesidad de entregarla directamente al usuario que desea conectarse a la red. Algo especialmente útil cuando nuestras contraseñas son complicadas y no deseamos escribirlas con cada nuevo dispositivo añadido a la red.
Lo principal, evitamos compartir la contraseña de la red a la gente que nos visita, nos conectamos de forma más rápida que escribiéndola (especialmente en televisores o consolas), y a pesar de todo, es un método fácil de dominar.
Aún así, hay varios detalles que hacen de este método de conexión un problema, como la seguridad de la implementación o la falta de practicidad al tener que elegir manualmente la banda sobre la que queremos entregar la contraseña.
Esto es, si deseamos conectar un dispositivo compatible con 5GHz y el router activa WPS en base al nombre y contraseña del WiFi de 2.4GHz, solo podremos acceder al de 2.4GHz y tendremos que introducir la contraseña manualmente si queremos conectarnos al otro.
En otros routers, es posible cambiar la configuración para elegir la banda en la que el WPS será activado, pero tenemos que entrar directamente a la interfaz web del mismo para hacer dicho movimiento. Y así, algo que fue pensado para ser un método rápido y práctico, deja de serlo instantáneamente.
Sucede algo similar con el PIN interno que debemos introducir en la interfaz web del punto de acceso o router, ya que se vuelve poco práctico estar entrando constantemente a la configuración para añadir dispositivos.
Todo va por el lado de la implementación y cómo fue pensado el protocolo. Resulta que para que la comunicación entre el cliente que desea conectarse y el punto de acceso o router sea efectiva, existe un intercambio previo de mensajes entre ambos, antes de que se asigne el nombre y contraseña de la red.
Estos mensajes, entre otras cosas, comunican de forma constante un PIN de 8 dígitos en partes, y al final de la verificación, se envían las credenciales de red. Más o menos así:
En esencia, se envía un mensaje con una clave (M1) del enrollee al registrar con la solicitud de conexión, el registrar envía (de forma cifrada) otro mensaje confirmando la solicitud (M2).
Luego, se genera un hash basado en la dirección MAC de ambos dispositivos y se intercambia entre ellos, para continuar con la comunicación (M3). El registrar pide confirmación de la primera mitad del PIN (M4), y para verificarlo, el enrollee proporciona la primera mitad del PIN al registrar (M5).
Si es correcta, el registrar solicita la segunda parte del PIN al enrollee. El enrollee envía la segunda parte y solicita las credenciales (M6).
El registrar la revisa, si es correcta, envía la configuración del punto de acceso (M7), y finalmente, se produce la autenticación del nombre y la clave de la red (M8), concluyendo con la conexión del dispositivo.
En caso de tener algún problema durante el proceso, el registrar emite un mensaje denominado EAP-NACK, indicando que uno de los datos es incorrecto o simplemente no existe. Y aquí es donde la seguridad se ve comprometida.
Si un atacante intenta realizar la conexión usando WPS, el registrar estará enviando varios EAP-NACK entre M4 y M5, hasta que uno de ellos sea correcto, confirmando la primera mitad con algo fuerza bruta, ya que no hay exactamente un límite de intentos como tal.
Esto fue descubierto paralelamente por los investigadores Craig Heffner y Stefan Viehböck, en 2011. Si deseas leer el paper de Stefan Viehböck completo (en inglés), puedes entrar desde aquí.
Siguiendo el mismo ejemplo, si el EAP-NACK se recibe entre M6 y M7, sabemos que la segunda mitad del PIN es incorrecta, pero calcular ambas partes será más fácil.
Si en un principio teníamos 108 posibilidades de PIN (100,000,000 distintos), sabiendo que se divide en dos partes, pasamos a únicamente 104 + 104 (20,000 posibilidades). Aunque es un número más fácil de calcular, todavía no terminamos de bajar.
Resulta que el último dígito es más bien una suma de verificación o checksum (una función para detectar cambios accidentales y datos corruptos) del dígito 1 al 7 del PIN, facilitando aún más el asunto.
Y de paso, al no tener que adivinar otro dígito, los PIN posibles bajan hasta 104 + 103, que corresponde a solo 11,000 intentos para obtener el PIN correcto. Y sin sumar todavía herramientas que hagan este proceso en automático, como Reaver.
De esta forma, es posible obtener la contraseña en un par de minutos, horas o unos pocos días, siendo mucho más eficiente que un ataque por diccionario/fuerza bruta a WPA/WPA2, cosa que podría durar —en teoría— hasta siglos, dependiendo de la dificultad de la contraseña.
Respuesta corta, no.
Esta vulnerabilidad afecta a todos los dispositivos que permiten la conexión a través de éste método, independientemente de la marca.
Hay que mencionar —eso sí—, que algunos fabricantes han introducido bloqueos temporales del WPS para prevenir esa prueba y error. Pero el tiempo que demora en desbloquearse cada router o punto de acceso no resulta algo que pueda impedir un ataque. Diversos equipos simplemente se tildan por completo y es necesario reiniciarlos.
Otros ataques, como Pixie Dust, pueden acelerar ese proceso sin necesidad de estar permanentemente atacando al punto de acceso, con lo que se evita el bloqueo al WPS y se acelera el proceso.
En resumen, desactiva WPS de tu router o punto de acceso, porque es un potencial peligro para la integridad de tu red.
¿Cómo? Aunque cada marca es diferente, basta con entrar a la configuración (a través de la interfaz web), buscar las opciones referentes a redes inalámbricas o WiFi, localizar el apartado que mencione los posibles nombres de este estándar (los que están en el primer párrafo de este artículo), y desactivarlo.