Resumo
- O ponto de acesso pode retransmitir legitimamente a mensagem 3 do handshake de quatro vias quando não recebe a mensagem 4. Clientes vulneráveis tratavam a cópia autêntica como nova ordem para instalar a mesma chave.
- O segredo negociado e a senha continuavam privados. O que voltava ao início eram o número de pacote e o contador antirrepetição ligados à chave, com efeitos diferentes conforme cifra, direção e implementação.
- O conserto manteve a tolerância a perdas: responder novamente é permitido, mas cada chave nova só pode ser instalada uma vez e seu estado monotônico não pode regredir.
O handshake de quatro vias do WPA2 precisa concluir uma tarefa em um meio sujeito a perdas. Depois da mensagem 3, o cliente instala a chave temporária por pares e envia a mensagem 4. Se essa resposta desaparecer, o ponto de acesso não sabe que o outro lado concluiu a operação. Por isso, reenvia a mensagem 3. É um mecanismo de disponibilidade perfeitamente legítimo.
O KRACK transformou esse reenvio em instrumento. No ataque apresentado por Mathy Vanhoef e Frank Piessens na CCS 2017, um adversário ao alcance do rádio assume uma posição de intermediário baseada em canais, impede a chegada da mensagem 4 e encaminha ao cliente uma retransmissão verdadeira da mensagem 3. A autenticidade da mensagem não foi quebrada. A falha estava em atribuir a cada cópia o direito de repetir a instalação.
Instalar uma chave não era uma operação sem efeitos colaterais. Em pilhas vulneráveis, ela também reiniciava o nonce usado como número de pacote transmitido e o contador de repetição recebido. A chave permanecia secreta, mas podia voltar a ser combinada com estado já utilizado. A identidade da sessão continuava válida enquanto a ordem temporal exigida pela cifra deixava de valer.
Essa distinção muda a resposta. O KRACK não recuperava a senha, portanto trocar credenciais não o corrigia. Também não produzia o mesmo resultado em todos os casos. Para CCMP, o artigo descreveu repetição e descriptografia, mas não a falsificação direta de qualquer quadro Wi-Fi. TKIP e GCMP podiam permitir também falsificação. Uma injeção em TCP ou HTTP ainda dependia de tráfego apropriado e etapas adicionais.
Alguns usos de wpa_supplicant em Linux e Android exibiam uma variante grave, na qual uma chave temporal composta apenas por zeros podia ser instalada. Esse comportamento específico não deve ser generalizado para todo aparelho WPA2. Cifra, sentido do tráfego, tipo de handshake e código executado definiam o alcance real.
O caso mostrou também onde terminavam certas garantias formais. Os modelos citados pelos pesquisadores preservavam sigilo da chave e autenticação da sessão, mas não representavam o instante em que a chave era instalada nem a repetição desse evento. O protocolo provado e a máquina de estados em produção continham superfícies diferentes.
A correção central separou resposta de compromisso. Diante de uma mensagem 3 repetida e válida, o cliente pode mandar a mensagem 4 de novo. Não pode reinstalar a chave de sessão. Uma implementação pode impedir que uma chave já usada reinicie contadores ou autorizar apenas uma instalação de cada chave nova durante o handshake.
Não foi preciso criar um formato de pacote novo. Clientes corrigidos continuaram interoperando com pontos de acesso antigos porque o reenvio e sua resposta ficaram intactos. Apenas a transição local passou a ocorrer uma vez. Isso permite que participantes independentes adotem o limite sem uma migração simultânea.
Ainda assim, a superfície de atualização era ampla. O VU#228519 do CERT/CC reuniu uma família de CVEs a partir do CVE-2017-13077. O aviso de hostapd e wpa_supplicant separou estação, ponto de acesso, 802.11r, chaves de grupo, driver e firmware. O Android vinculou as correções ao nível de patch de 6 de novembro de 2017, alertando que certos componentes também dependiam de ajustes dos fabricantes de chipsets.
O acompanhamento de 2018 encontrou correções na maioria dos fornecedores testados, mas também erros residuais e um desvio de menor impacto em chave de grupo. A conclusão operacional é que boletim e número de versão são evidência inicial. O teste da transição no produto ligado é a evidência final.
O princípio que fica vale para outros sistemas: uma mensagem autêntica prova sua origem, não prova que a operação autorizada por ela seja segura quando executada duas vezes.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
