KRACK: o ataque de 2017 que quebrou o WPA2 do seu Wi-Fi

Por mais de uma década, o WPA2 foi a resposta padrão para "como proteger o Wi-Fi". Roteador novo, senha forte, WPA2 ligado, problema resolvido. Em 16 de outubro de 2017, os pesquisadores belgas Mathy Vanhoef e Frank Piessens, da KU Leuven, publicaram um estudo que derrubou essa certeza: o protocolo em si tinha uma falha de projeto. Não importava quão longa fosse a senha. O ataque ganhou o nome de KRACK, de Key Reinstallation Attack.
O que é o KRACK?
O que é o ataque KRACK no WPA2?
KRACK é um ataque que engana o aparelho a reinstalar uma chave de criptografia que já estava em uso, o que zera o contador interno e permite ao invasor decifrar, e em alguns casos alterar, o tráfego Wi-Fi. Ele não descobre a senha da rede. Ele explora uma etapa da conexão que o padrão descrevia de forma ambígua.
O invasor precisa estar ao alcance do sinal e se posicionar entre o aparelho e o roteador, o que o torna um ataque de proximidade, não algo disparado do outro lado do mundo. Segundo o aviso do CERT/CC (VU#228519), o problema afetava a especificação do protocolo, e não um fabricante isolado.
Como o ataque funciona, em passos
Quando um celular ou notebook entra numa rede WPA2, os dois lados fazem o four-way handshake, uma troca de quatro mensagens para combinar a chave de sessão. O ponto fraco está na terceira mensagem:
- O roteador envia a mensagem 3, que manda o cliente instalar a chave.
- O cliente instala a chave e responde. Ao instalar, ele zera o nonce (um contador que nunca deveria se repetir com a mesma chave) e o contador de replay.
- O invasor bloqueia ou atrasa essa resposta. Sem confirmação, o roteador reenvia a mensagem 3.
- O cliente instala a mesma chave de novo e zera o contador outra vez.
Reutilizar o nonce com a mesma chave é o erro clássico de criptografia: os pacotes passam a ser cifrados com a mesma sequência, e comparar dois deles permite recuperar o conteúdo. Dependendo da cifra e do aparelho, o invasor podia decifrar pacotes, reenviar pacotes antigos, sequestrar conexões TCP e até injetar conteúdo em tráfego HTTP sem criptografia.
O caso pior: Android e Linux
Segundo Vanhoef, as implementações do wpa_supplicant usadas em Linux e no Android 6.0 ou superior tinham um agravante: ao reinstalar a chave, instalavam uma chave composta só de zeros. Isso tornava trivial decifrar o tráfego do aparelho. Como esse cliente é a base de boa parte dos celulares Android, o impacto prático foi enorme, e a correção dependia de o fabricante liberar atualização, o que no Android sempre foi lento.
Ao todo, foram atribuídos dez identificadores CVE à família KRACK, começando em CVE-2017-13077 (reinstalação da chave de sessão no handshake).
O que o KRACK não fazia
- Não revelava a senha do Wi-Fi. Trocar a senha do roteador não corrigia nada.
- Não rompia o HTTPS. Um site com HTTPS continuava cifrado por cima do Wi-Fi, então o invasor via, no máximo, o destino da conexão, e não senhas ou conteúdo.
- Não funcionava à distância. Exigia alcance físico do sinal e uma posição específica na comunicação.
É por isso que a recomendação da época não foi "abandone o Wi-Fi", e sim "atualize os dispositivos". A correção podia ser aplicada no cliente (celular, notebook, IoT), de forma compatível com roteadores que ainda não tinham sido corrigidos.
Como saber se meu aparelho está protegido contra o KRACK?
Se ele recebeu atualizações de segurança depois de outubro de 2017, está protegido contra o KRACK original. A Microsoft já tinha corrigido o Windows em 10 de outubro de 2017, e a Apple incluiu mitigações no iOS 11.1 e no macOS 10.13.1. Aparelhos que nunca mais receberam patch, como câmeras e dispositivos IoT antigos, continuam sendo o elo fraco.
O que mudou depois
O KRACK acelerou a adoção do WPA3, anunciado pela Wi-Fi Alliance em 2018, que troca o handshake por um método mais robusto contra esse tipo de manipulação. WPA3 não é uma bala de prata (pesquisadores acharam falhas nas primeiras implementações), mas a lição de projeto ficou: protocolos de segurança precisam ser formalmente verificados, e não apenas bem intencionados. O estudo só existiu porque alguém decidiu verificar, com método, o que a especificação realmente garantia.
O que fazer hoje
- Mantenha celular, notebook e roteador atualizados. Ative as atualizações automáticas e troque o roteador que o fabricante abandonou. O guia de hardening do roteador doméstico lista os ajustes do painel.
- Use WPA3, ou WPA2 com AES/CCMP, nunca WEP nem WPA antigo com TKIP. Veja os outros pontos no passo a passo para proteger o roteador Wi-Fi.
- Prefira sites com HTTPS e desconfie de qualquer aviso de certificado em rede aberta. O Evil Twin explora o mesmo cenário de Wi-Fi público.
- Em rede pública, considere uma VPN, entendendo o que ela protege e o que não protege: o texto VPN vale a pena? explica.
A lição maior
O KRACK mostrou que "usar o protocolo certo" não basta quando o protocolo tem um desenho ambíguo, e que o elo mais lento de qualquer correção é o aparelho que ninguém atualiza. Padrão parecido apareceu no Heartbleed, em que uma falha em código amplamente usado levou anos para sumir da internet.
Se quiser seguir a trilha, o artigo sobre hardening do roteador Wi-Fi é o próximo passo prático.
Fontes: CERT/CC (VU#228519), krackattacks.com (Mathy Vanhoef), Microsoft e CERT-EU (aviso 2017-021).




Comentários