WPA-TKIP: transmisión, estructura y derivación de claves | RodrionCyber
WiFi Security Dificultad: Media

WPA-TKIP: transmisión, estructura y derivación de claves

✍️ Hugo ⏱️ 10 min de lectura
Imagen destacada del artículo

WPA-TKIP fue diseñado como solución de transición para mejorar la seguridad de redes que usaban WEP, manteniendo compatibilidad con hardware antiguo. Comprender su funcionamiento revela tanto sus mejoras reales respecto a WEP como las limitaciones que hicieron necesario WPA2.

⚠️ Finalidad educativa Este artículo describe el funcionamiento técnico de WPA-TKIP con fines formativos. Las técnicas de auditoría descritas deben usarse exclusivamente en entornos propios o autorizados.

1. Punto de partida: passphrase y PMK

Todo comienza cuando el usuario introduce la contraseña de la red (passphrase). Esta contraseña, junto con el nombre de la red (SSID), pasa por una función de derivación llamada PBKDF2 con 4096 iteraciones para generar la PMK (Pairwise Master Key) de 256 bits:

Passphrase + SSID → PBKDF2 (HMAC-SHA1, 4096 iter.) = PMK (256 bits)

Las 4096 iteraciones no son arbitrarias: aumentan el coste computacional de un ataque de diccionario, ralentizando significativamente a cualquier atacante que intente probar contraseñas. La PMK nunca se transmite; se calcula de forma independiente en el dispositivo y en el AP.

2. El 4-Way Handshake: verificación y derivación de claves

El handshake de cuatro mensajes verifica que ambos extremos comparten la misma PMK y deriva las claves de sesión sin transmitirlas por el aire:

M1

AP → Cliente: el AP envía su número aleatorio (ANonce) y su dirección MAC.

M2

Cliente → AP: el cliente genera su número aleatorio (SNonce), calcula la PTK y envía SNonce + MIC de verificación.

M3

AP → Cliente: el AP envía la GTK (clave de grupo) cifrada con la KEK, más su propio MIC de confirmación.

M4

Cliente → AP: confirmación final. Ambos extremos instalan las claves y comienzan a cifrar datos.

El MIC (Message Integrity Code) que acompaña cada mensaje garantiza que ningún intermediario ha alterado el handshake. Este es precisamente el proceso que se captura en un archivo .cap durante una auditoría WiFi.

3. La PTK y sus subclaves

El resultado del handshake es la PTK (Pairwise Transient Key) de 512 bits, que se divide en subclaves con funciones específicas:

KCK (128 bits)

Protege la integridad de los mensajes EAPOL durante el handshake.

KEK (128 bits)

Cifra la GTK cuando el AP la envía al cliente en el mensaje M3.

TK (128 bits)

Clave base para generar la clave por paquete (WEP seed) y cifrar datos unicast.

MIC Keys (2×64 bits)

Claves para el algoritmo Michael, que calcula el MIC de integridad de cada frame.

4. Clave por paquete: TSC, TTAK y WEP seed

La gran mejora de TKIP sobre WEP es que cada paquete usa una clave RC4 diferente. Esto se logra en dos fases:

TSC: el contador de secuencia

El TSC (TKIP Sequence Counter) es un contador de 48 bits que se incrementa en cada paquete transmitido. Sirve además para detectar paquetes repetidos o fuera de orden (protección anti-replay).

Fase 1 — Mezcla lenta (TTAK)

La TTAK (TKIP-mixed Transmit Address and Key) se calcula usando la TK, la dirección MAC del emisor y los 32 bits altos del TSC. Esta fase es computacionalmente costosa y se recalcula solo cuando cambia la parte alta del TSC (cada 65.536 paquetes), mitigando ataques que explotan IVs débiles de WEP.

Fase 2 — Mezcla rápida (por paquete)

Combinando la TTAK, los 16 bits bajos del TSC y la TK, se genera la WEP seed: la clave RC4 única para ese paquete concreto.

TK + TSC (48 bits) + MAC del emisor ↓ Fase 1 (lenta, cada 65.536 paquetes) TTAK ↓ Fase 2 (rápida, cada paquete) WEP seed → clave de entrada para RC4

5. Integridad: MIC Michael e ICV

Antes de cifrar, TKIP añade dos capas de verificación de integridad:

  • MIC (8 bytes): calculado con el algoritmo Michael sobre las cabeceras y el payload. Detecta modificaciones del contenido.
  • ICV (4 bytes): CRC-32 sobre datos + MIC. Herencia de WEP; no proporciona integridad criptográfica robusta.
⚠️ Limitación de Michael El algoritmo Michael fue diseñado para ser compatible con hardware antiguo y es computacionalmente simple. Tiene vulnerabilidades conocidas ante ataques de falsificación de paquetes, lo que motivó la transición a WPA2 con AES-CCMP, que usa una MAC criptográfica mucho más robusta.

6. Estructura del paquete TKIP final

El encabezado TKIP viaja en claro porque el receptor lo necesita para reconstruir la WEP seed:

[ Cabecera 802.11 ] [ Encabezado TKIP: TSC (48 bits) | Flags | IV parcial | Key ID ] [ Payload cifrado: (Datos + MIC + ICV) XOR Keystream_RC4 ]

El cifrado final usa RC4 con la WEP seed como clave, aplicando XOR sobre el payload completo (datos + MIC + ICV).

7. Resumen completo del proceso de transmisión

  1. Passphrase + SSID → PMK mediante PBKDF2.
  2. 4-Way Handshake: se deriva la PTK sin transmitirla.
  3. PTK se divide en KCK, KEK, TK y MIC Keys.
  4. Para cada paquete, el emisor incrementa el TSC.
  5. Si procede, se recalcula la TTAK (mezcla lenta).
  6. Mezcla rápida: TK + TTAK + TSC bajo → WEP seed.
  7. Se calcula el MIC con algoritmo Michael sobre cabeceras y datos.
  8. Se calcula el ICV (CRC-32) sobre datos + MIC.
  9. RC4 genera el keystream a partir de la WEP seed.
  10. ciphertext = (datos + MIC + ICV) XOR keystream.
  11. El receptor invierte el proceso, verifica ICV y MIC, y acepta o descarta.

Conclusión

TKIP supuso una mejora real respecto a WEP: claves por paquete, contador de secuencia de 48 bits y un MIC para integridad. Sin embargo, mantiene dependencias de RC4 y del algoritmo Michael, que limitan su nivel de seguridad. WPA2 con AES-CCMP eliminó estas dependencias y sigue siendo el estándar recomendado en la actualidad junto con WPA3.