Our techie journey

Our Study Blog


4 Way Handshake

Uno de los temas que disfrute en mi proceso de estudio del CWSP fue entender la jerarquía de llaves y como están son derivadas en el proceso llamado 4 Way Handshake. Creo que fue uno de los temas mas confusos ya que como se comenta en el libro no se utiliza una única llave para el cifrado de la información.

Uno de los primeros puntos para entender este proceso es precisamente la jerarquía de las llaves utilizadas en el proceso de autenticación.

Este proceso se explica en el libro CWSP Study and Reference Guide en la página 204. El proceso funciona de arriba hacia abajo, comenzando con un Master Session Key. Es importante ver esta «Master Sesión Key» como nuestra semilla de donde se generaran el resto de llaves. La llave MSK es creada por el proceso de 802.1x/EAP. Cuando se implementa una infraestructura 802.1X/EAP, tanto el servidor de autenticación como el suplicante conocerán información entre sí después del intercambio mutuo de credenciales de autenticación. El MSK es el material de llaves/claves que se deriva del proceso EAP.

Ahora, que pasa si la red utiliza un método de autenticación de tipo personal es decir PSK, en ese caso, el passphrase (la contraseña de la red Wireless) es usado para crear un Preshared Key, este PSK sería el equivalente al proceso 802.1x/EAP que crea el MSK. Es decir, nuestro PSK sería nuestra MSK.

Creo que es importante mencionar como es que se calcula el PSK, ya que el passphrase es solo un elemento en esta formula:

PMK= PRF(passphrase, SSID, ssid_length_4096,256)

Después de la creación de la llame MSK como resultado del proceso 802.1X/EAP or PSK, dos «llaves maestras» son creadas.

La llave «Pairwise Master Key» es generada desde el MSK, para poder calcularla se utilizan los primeros 256 bits (0-255) de la MSK. En el caso de WPA & WPA2 personal la llave PMK debe de ser la misma, en ambos extremos, es decir, tanto el AP como el suplicante deben de contar con la misma llave para poder generar las llaves subsecuentes en este proceso. La siguiente llave generada a partir de la PMK sera la llave temporal «Pairwise Transient Key«. La llave PTK será utilizada para cifrar las comunicaciones de tipo Unicast

La otra llave maestra es «Group Master Key» esta llaves es solo creada con interaccion del autenticador (AP o controlador) usando un proceso de generación totalmente privado. La llave generada por GMK es conocida como «Group Transient Key«. La llave GTK será utilizada para cifrar la comunicación de tipo multicast y brodcast Es importante mencionar que las llaves maestras nos son utilizadas para cifrar datos. Las llaves maestra ahora son el material semilla para la generación de llaves temporales durante el proceso de
4-Way Handshake.

Ahora bien, una vez que espero, tengamos claro para que funciona cada una de las llaves y de donde provienen, vayamos al proceso de 4-Way Handshake.

El proceso de 4-Way Handshake en conjunto con las llaves maestras son las encargadas de generar las llaves temporales PTK y GTK. El proceso comienza justo después del proceso de autenticación y asociación del Open System 802.11.

En la imagen en color verde, se observan los paquetes que fluyen en el Open System Authentication; es decir:

  • Probe Request.
  • Probe Response.
  • Authentication Request.
  • Authentication Response.
  • Association Request.
  • Association Response.

Y en colo rojo se observa los paquetes EAPOL correspondientes al proceso de
4-Way Handshake. Como bien lo indica su nombre este proceso consta de 4 paquetes y ahora veremos cada uno de ellos.

Como mencionamos arriba, la llave GMK y su derivación GTK es un proceso en donde solo actúa el autenticador, para generar o derivar la llave PTK se sigue la siguiente formula:

PTK= PRF (PMK + ANonce + Snonce + AA + SPA)

Como sabemos PRF es una pseudo-random-function, PMK es nuestra Pairwise Master Key, ANonce es un número aleatorio perteneciente al autenticador, SNonce es un número aleatorio perteneciente al suplicante, AA es la dirección MAC del autenticador y SPA es la direccion MAC del suplicante.

Ahora bien, si analizamos la formula mucha información ya la sabemos, por ejemplo, el PMK ya es conocido, y las direcciones MAC también, por que como vimos, durante el proceso del Open System Authentication estas direcciones fueron intercambiadas. Así que, el primer paquete que se envía en el proceso
4-Way Handshake (M1) es un frame enviado por el autenticador hacia el suplicante.

Message 1: El autenticador comienza el proceso del 4-Way HandShake, enviando un primer frame EAPOL el cual contiene el Anonce, con esta información, el suplicante contará con todos los insumos necesarios para derivar la llave PTK.

Message 2: Una vez que el dispositivo ha creado su PTK, envía el SNonce, que es necesario para que el AP pueda generar su propio PTK. El mensaje 2 contiene un MIC (verificación de integridad del mensaje) para asegurarse de que el punto de acceso pueda verificar si este mensaje está dañado o ha sido modificado. Una vez que el AP recibe SNonce, también puede generar PTK para el cifrado del tráfico de unidifusión.

Message 3: El mensaje EAPOL3 se envía desde el AP al suplicante. El AP crea la llave GTK sin la participación del cliente.

Message 4: El suplicante envía la trama al autenticador para confirmar que se han instalado las claves temporales.

La siguiente imagen muestra el proceso general del 4-Way Handshake.



Deja un comentario