[N.d.E. Comenzamos con esta entrada una serie de tres artículos, de cierto nivel técnico, en relación con WPA, concretamente con WPA-PSK. Los dos primeros posts están dedicados a la exposición teórica del problema, mientras que los dos últimos entrarán en detalles prácticos. Para aquellos menos introducidos en temas WiFi, les prometo un artículo en breve describiendo los conceptos relacionados con esta tecnología.]
El método empleado por WPA para autenticar a las estaciones WiFi supone uno de los puntos débiles de este protocolo de seguridad, como veremos a continuación. Por lo que respecta a la autenticación, en función del entorno de aplicación, es posible emplear dos modos de autenticación diferentes WPA-PSK (Pre Shared Key) o WPA-EAP (Extensible Autentication Protocol).
En entornos personales, como usuarios residenciales y pequeños comercios, se utiliza WPA con clave pre-compartida o también llamada WPA-PSK y autenticación IEEE802.1X. En estos entornos no es posible contar con un servidor de autenticación centralizado, tal y como hace la autenticación EAP. En este contexto, WPA se ejecuta en un modo especial conocido como “Home Mode” o PSK, que permite la utilización de claves configuradas manualmente y facilitar así el proceso de configuración del usuario domestico.
El usuario únicamente debe introducir una clave de 8 a 63 caracteres conocida como clave maestra, en su punto de acceso, módem o router inalámbrico residencial, así como en cada uno de los dispositivos que quiere conectar a la red. De esta forma sólo se permite acceso a aquellos dispositivos que son conocedores de la contraseña, lo que evita ataques basados en escuchas así como acceso de usuarios no autorizados. En segundo lugar se puede asegurar que la clave proviene de una relación de acuerdo único para generar el cifrado TKIP (Temporal Key Integrity Protocol) en la red, el cual describiremos más adelante. Por lo tanto la contraseña preestablecida para la autenticación es compartida por todos los dispositivos de la red, pero no lo son las claves de cifrado, que son diferentes para cada dispositivo, lo que representa una mejora en cuanto a WEP. En general WPA parece representar un nivel superior en cuanto a la seguridad que ofrecia WEP.
A diferencia de WEP (véase la serie sobre criptoanálisis WEP: I, II, III), WPA utiliza varias claves temporales diferentes para cifrar el payload dependiendo del tráfico al que pertenece el paquete (unicast, brodcast o multicast), y a las que denomina PTK (Primary Temporal Key) para el primero y GTK (Group Temporal Key) para los dos restantes. Estas Keys sufren un proceso de regeneración de claves cada cierto tiempo, con el objetivo de impedir que una estación legítima pueda llegar a capturar la clave de sesión utilizada.
La PSK es conocida por todas las estaciones del medio además del Access Point (AP), y está formada por una serie de valores dependientes del escenario. Cabe destacar que la PSK no es la cadena utilizada para encriptar los paquetes de datos; ni siquiera se utiliza como tal para autenticar la estación en el AP, sino que para ello se construye la llamada PMK (Primary Master Key) a partir de la PSK y un proceso de modificación; el resultado es una cadena de 256 bits. Pero, ¿qué elementos se utilizan para construir dicha PMK?