Blog

Hacking WiFi – Parte 11 – Entendiendo WPA/WPA2 Personal

Para ver la serie completa pulsa aqui. Habrá conceptos que se den por obvios ya que están explicados en artículos anteriores.

Después de que el protocolo WEP haya dejado mucho que desear, ya que se puede romper en menos de 5 minutos, decicieron diseñar un protocolo más seguro, el problema era que si hacían algo demasiado sólido se necesitaría un cambio de hardware por parte del cliente por lo que diseñaron algo intermedio primero, que será el WPA (WiFi Protected Acces).

La Wi-Fi Alliance propuso WPA, que usará TKIP (que está basado en WEP), que no se puede romper tan fácilmente la clave como en WEP. De esta forma no se necesitará que se cambie el hardware, solo actualizar el firmware.

La opción más sólida que propusieron más tarde fue WPA2 basada en AES, y utilizará CCMP. Para este si que se necesitarían cambios hardware. Ambos tienen edición personal y empresarial. La personal usa PSK, y la empresarial usa Radius.

Una pregunta que puede que os llevéis haciendo tiempo, es como sabe el cliente si el AP es WEP, WPA o WPA2. Se puede ver en los Beacon Frames que emite el AP, y en los probe response un campo llamado WPA Information Element en donde nos dice el tipo de cifrado y el tipo de autenticación.

wpa1
Lo más normal es que se sigan estas correspondencias:

JJ

Veremos ahora como es la conexión entre un cliente y un AP en WPA con PSK. Para verlo maś en detalle filtraremos las MAC del cliente y del AP:

Filtro Wirehsark: (wlan.addr == 00:1a:2b:89:fa:e3) && (wlan.addr == 38:48:4c:6f:78:bf)

wpa3

El cliente para conectarse automáticamente a una red WPA/WPA2 lo que hará será mirar en el paquete Probe Response la configuración de WPA para ver el tipo de cifrado y el tipo de autenticación, y si tiene guardada una red con el mismo ESSID y coinciden estas configuraciones, se conectará automaticamente a este. De esta forma podriamos montar un Fake AP a modo de honeypot para que el cliente se conecte a nosotros.

Una de las mayores diferencias y mejoras entre WEP y WPA es que WPA ya no utilizará claves estáticas para cifrar los paquetes, si no que usará claves dinámicas. La contraseña de la red WiFi será el Passpfrase, a partir de esta obendremos el PSK de 256 bit, ambas estarán también en el AP.

Una vez el cliente está conectado al AP, este enviará un paquete llamado ANonce con información acerca del método que se usará para cifrar entre otras cosas. Después el cliente generará para la conexión una clave PTK que será la clave dinámica de la que hablábamos. La clave PSK 256 bits también es llamada PMK. El cliente contesta con un paquete que contiene el Snounce y MIC. El que nos importa es MIC que se ha creado a partir del PTK, es decir, que el AP lo descifrará y podrá comprobar que tiene el mismo PTK que el cliente. El tercer paquete que se envia del AP al cliente es el key installation, indicando que se guarde la clave en el cliente. Por ultimo el cliente enviará un paquete ACK al AP y este guardará entonces la clave y así ambos tendrán la misma.

wpa2Autor:  Roberto Lopez (@leurian)

  1. Alberto
    Alberto02-06-2014

    Hola Roberto, muy buenos tus tutoriales. En este en particular tengo una duda, y es que, como a ti también te pasa en el ejemplo, no veo los 4 mensajes del intercambio de claves. De hecho, veo el primer y el cuarto paquete, y este último tiene el MIC. ¿Sabrías decirme por qué?

    Un saludo,

    • Roberto Lopez
      Roberto Lopez02-06-2014

      Creo recordar cuando lo escribí que era un bug de Wireshark, que no los capturaba o interpretaba de forma correcta, de hecho si haces la prueba varias veces verás que el resultado es distinto. Si haces varias veces la prueba en algun momento podrás capturar los 4, aunque wireshark no te muestre la información de forma correcta y se líe.

      Espero haberte ayudado!

Leave a Reply

*

    No Twitter Messages