Guía de Práctica 3.2: Verificación de Protección KRACK en WPA3-SAE
Baseada na práctica 3-Taller-HE-Practica-WiFi-2.pdf
1. Contexto e Obxectivos
Nesta práctica verificaremos que WPA3-SAE con PMF obrigatorio é inmune ao ataque KRACK (Key Reinstallation Attack, CVE-2017-13077 e relacionados). Reutilizamos o mesmo escenario e a mesma captura da Práctica 3.1 (capturas/cap-01.cap).
⚠️ Prerrequisito: Ter completado a Práctica 3.1 e ter o ficheiro
capturas/cap-01.capno directorio home de root (/root/capturas/cap-01.capse traballaches como root, oucapturas/cap-01.capdesde o directorio actual).
2. Mapeamento: PDF ↔ Laboratorio
| Rol | Interface | Namespace | Estado tras wifilabctl up |
Acción do estudante | |
|---|---|---|---|---|---|
| Consola 1 | AP WPA3-SAE (hostapd) | wlan0 |
phy0_wlan0 |
✅ Automático | Consulta de logs |
| Consola 2 | Cliente WPA3 (wpa_supplicant) | wlan1 |
phy1_wlan1 |
✅ Automático | — |
| Consola 3 | Monitor / Captura | wlan2mon |
(namespace global) | ✅ Modo monitor (da 3.1) | Captura se precisa |
| Consola 4 | Verificación KRACK | — | (namespace global) | ⏳ Calquera terminal libre | → Terminal 1 |
3. Preparación
Se aínda tes da Práctica 3.1 o escenario activo, non é necesario reinicialo:
Se o escenario non está activo:
4. Terminal 1 – Verificación KRACK (PDF: Consola 4, páx. 8-9)
Esta terminal corresponde á Consola 4 do PDF. Execútase no namespace global.
4.1. Comprobar versións de hostapd e wpa_supplicant (PDF: Consola 4, páx. 8)
Saída esperada:
Versións >= 2.6 inclúen os parches KRACK (CVE-2017-13077 a CVE-2017-13082).
4.2. Verificar PMF activo na configuración do AP (PDF: Consola 4, páx. 8)
# Verificar que ieee80211w=2 está activo (Consola 1 do PDF)
sudo grep "ieee80211w=2" /home/kali/wifiLab/run/wpa3_sae/hostapd.conf
Saída esperada:
O valor 2 significa PMF obrigatorio.
4.3. Analizar tramas de xestión na captura (PDF: Consola 4, páx. 8-9)
Usamos a captura xerada na Práctica 3.1 para ver se as tramas de deauth van cifradas:
# Analizar tramas de deauth (type_subtype 0x000c) na captura
sudo tshark -r capturas/cap-01.cap \
-Y "wlan.fc.type_subtype == 0x000c" \
-T fields -e frame.number -e wlan.fc.protected -e wlan.sa -e wlan.da
Resultado esperado (WPA3-SAE con PMF):
| Campo | Valor | Significado |
|---|---|---|
frame.number |
4 | Número de trama na captura |
wlan.fc.protected |
True | ✅ TRAMA CIFRADA (PMF activo) |
wlan.sa |
MAC do cliente | Orixe da trama de deauth |
wlan.da |
MAC do AP | Destino da trama de deauth |
✅ Conclusión: Ao contrario de WPA2-PSK, WPA3-SAE con PMF obrigatorio impide completamente ataques de reinstalación de claves (KRACK).
5. Por que WPA3-SAE é Inmune a KRACK
Como funciona KRACK en WPA2
No 4-Way Handshake de WPA2:
- AP → Cliente: ANonce (Mensaxe 1)
- Cliente → AP: SNonce + MIC (Mensaxe 2)
- AP → Cliente: GTK + MIC ← VULNERABILIDADE AQUÍ
- Cliente → AP: ACK (Mensaxe 4)
Se o Mensaxe 3 se perde, o AP reenvíao. O cliente, ao recibilo duplicado, reinstala a PTK e resetea o nonce a 0, permitindo ao atacante descifrar ou inxectar tráfico.
Por que WPA3-SAE bloquea KRACK
- PMF Obrigatorio (
ieee80211w=2): As tramas do 4-Way Handshake van protexidas. Un atacante non pode inxectar Mensaxes 3 falsos sen coñecer a clave de cifrado de xestión. - Forward Secrecy: Cada sesión usa claves únicas e non reutilizábeis. Capturar tráfico pasado non permite descifrado futuro.
- Implementacións Modernas: hostapd >= 2.6 e wpa_supplicant >= 2.6 inclúen parches KRACK. O kernel Linux >= 4.13 protexe contra reinstalacións.
| Ataque | WPA2-PSK (sen PMF) | WPA3-SAE (PMF=2) |
|---|---|---|
| Reinxección Mensaxe 3 | ✗ Posíbel | ✅ Bloqueado por PMF |
| Deauth non cifrada | ✗ Posíbel | ✅ Ignorada |
| Reinstalación PTK | ✗ Posíbel | ✅ Imposíbel |
| Descifrado tráfico pasado | ✗ Posíbel | ✅ Forward Secrecy |
6. Conclusión
A práctica verificou empiricamente, usando os comandos exactos do PDF:
hostapd -vewpa_supplicant -vconfirman versións >= 2.6 con parches KRACK.grep "ieee80211w=2"confirma PMF obrigatorio na configuración.tsharkmostrawlan.fc.protected = Truenas tramas de deauth capturadas.
Na Práctica 3.3 exploraremos como, aínda que o protocolo sexa seguro, implementacións vulnerables (hostapd 2.7 sen parches completos) poden ser explotadas mediante ataques Dragonblood.