WPA: A evolução do WEP

 

Introdução

Ao longo dos últimos anos, podemos observar um grande aumento no número de redes sem fio utilizadas por usuários caseiros, instituições, universidades e empresas

Essa crescente utilização e popularização das chamadas WLANs, trouxe consigo mobilidade e praticidade para seus usuários mas também trouxe uma preocupação com a segurança destas redes. É exatamente essa preocupação com a segurança das redes sem fio que vem fazendo com que os protocolos de segurança sejam criados, desenvolvidos e atualizados com uma velocidade cada vez maior.

WEP, a primeira barreira

O primeiro protocolo de segurança adotado, que conferia no nível do enlace uma certa segurança para as redes sem fio semelhante a segurança das redes com fio foi o WEP (Wired Equivalent Privacy).

Este protocolo, muito usado ainda hoje, utiliza o algoritmo RC4 para criptografar os pacotes que serão trocados numa rede sem fio a fim de tentar garantir confidenciabilidade aos dados de cada usuário. Além disso, utiliza-se também a CRC-32 que é uma função detectora de erros que ao fazer o "checksum" de uma mensagem enviada gera um ICV (Integrity Check Value) que deve ser conferido pelo receptor da mensagem, no intuito de verificar se a mensagem recebida foi corrompida e/ou alterada no meio do caminho.

Vulnerabilidades do WEP

No entanto, após vários estudos e testes realizados com este protocolo, foram achadas algumas vulnerabilidades e falhas que fizeram com que o WEP perdesse quase toda a sua credibilidade.

No WEP, os dois parâmetros que servem de entrada para o algoritmo RC4 são a chave secreta k de 40 bits ou 104 bits e um vetor de inicialização de 24 bits. A partir desses dois parâmetros, o algoritmo gera uma seqüência criptografada RC4 (k,v).

Porém, como no WEP a chave secreta k é a mesma utilizada por todos os usuários de uma mesma rede, devemos ter um vetor de inicialização diferente para cada pacote a fim de evitar a repetição de uma mesma seqüência RC4 . Essa repetição de seqüência é extremamente indesejável pois dá margem a ataques bem sucedidos e conseqüente descoberta de pacotes por eventuais intrusos.

Além disso, há também uma forte recomendação para que seja feita a troca das chaves secretas periodicamente aumentando-se com isso a segurança da rede. Porém, essa troca quando é feita, é realizada manualmente de maneira pouco prática e por vezes inviável, quando se trata de redes com um número muito alto de usuários.

E ainda uma falha do WEP constatada e provada através de ataques bem sucedidos é a natureza de sua função detectora de erros. A CRC-32 é uma função linear e que não possui chave. Essas duas características tornam o protocolo suscetível a dois tipos de ataques prejudiciais e indesejáveis: é possível fazer uma modificação de mensagens que eventualmente tenham sido capturadas no meio do caminho sem que isso seja descoberto pelo receptor final devido a linearidade da função detectora de erros, e além disso, pelo fato da função não possuir uma chave, é também possível descobrir uma seqüência secreta RC4 e de posse desta ser autenticado na rede e introduzir mensagens clandestinas nesta.

Primeiras soluções propostas

Tendo-se em vista todas essas fraquezas do protocolo, algumas possíveis soluções foram propostas a fim de contornar e por que não acabar com tais fraquezas.

Uma das soluções que foi cogitada foi a substituição da CRC-32 por uma função de hash MD5 ou SHA-1 por exemplo. No entanto, esta seria uma solução muito cara além do que, tornaria a execução do protocolo pelos atuais processadores muito lenta.

Uma outra solução discutida foi descartar os primeiros 256 bytes da saída do gerador de números pseudo-aleatórios utilizado na criação dos vetores de inicialização. Isso seria feito devido a alta correlação dos primeiros bits exalados pelo RC4 com a chave. Porém, essa solução mostrou-se também muito cara e para muitas aplicações, inviável de ser implementada.

Então, no final do ano de 2001, o pessoal dos laboratórios RSA sugeriu que para contornar as fraquezas do WEP fosse usada uma função de hash mais leve, que usasse uma chave temporária para criar chaves diferentes para cada pacote.

Na proposta, mostra-se que essa função de hash mais simples seria composta de duas fases distintas.

Na primeira fase teríamos como entrada a chave temporária TK e o endereço do transmissor TA. Ter o endereço de quem está transmitindo como parâmetro é muito vantajoso para evitar que seqüências RC4 sejam repetidas. Imagine por exemplo uma estação que só se comunica com o AP. A informação trocada entre eles utiliza a mesma chave temporária TK e isso aumenta as chances da seqüência se repetir, bastaria que o mesmo vetor de inicialização fosse utilizado para isso ocorrer.

No entanto agora, juntamente com a chave temporária a estação utilizará seu endereço para gerar suas seqüências RC4 e da mesma forma, o AP utilizará seu próprio endereço para gerar suas seqüências. Dessa forma, evita-se a repetição de seqüências dificultando dessa forma alguns ataques.

Na segunda fase proposta, a entrada seria a saída da primeira fase, e o vetor de inicialização. A saída dessa segunda fase seria então o que chamaram de PPK, ou seja uma chave de 128 bits, diferente para cada pacote.

Apesar desta não ter sido a solução "final", embora a solução final não exista pois sempre há atualizações para serem feitas e novos conceitos para serem implementados, os conceitos de chave temporária e chave por pacote foram importantes e serviram de base para a criação de um protocolo intermediário; eu diria que chega a ser um "protocolo paliativo" criado especialmente para aqueles que usam redes sem fio e prezam tanto a segurança que não podem esperar pelo WPA2 que chegará ao mercado provavelmente em 2004. É sobre esse protocolo de caráter emergencial que falaremos a seguir.

WPA, um WEP melhorado

Também chamado de WEP2, ou TKIP (Temporal Key Integrity Protocol), essa primeira versão do WPA (Wi-Fi Protected Access) surgiu de um esforço conjunto de membros da Wi-Fi Aliança e de membros do IEEE, empenhados em aumentar o nível de segurança das redes sem fio ainda no ano de 2003, combatendo algumas das vulnerabilidades do WEP.

A partir desse esforço, pretende-se colocar no mercado brevemente produtos que utilizam WPA, que apesar de não ser um padrão IEEE 802.11 ainda, é baseado neste padrão e tem algumas características que fazem dele uma ótima opção para quem precisa de segurança rapidamente:

  • Pode-se utilizar WPA numa rede híbrida que tenha WEP instalado.
  • Migrar para WPA requer somente atualização de software.
  • WPA é desenhado para ser compatível com o próximo padrão IEEE 802.11i.

 

Vantagens do WPA sobre o WEP

Com a substituição do WEP pelo WPA, temos como vantagem melhorar a criptografia dos dados ao utilizar um protocolo de chave temporária (TKIP) que possibilita a criação de chaves por pacotes, além de possuir função detectora de erros chamada Michael, um vetor de inicialização de 48 bits, ao invés de 24 como no WEP e um mecanismo de distribuição de chaves.

Além disso, uma outra vantagem é a melhoria no processo de autenticação de usuários. Essa autenticação se utiliza do 802.11x e do EAP (Extensible Authentication Protocol), que através de um servidor de autenticação central faz a autenticação de cada usuário antes deste ter acesso a rede.

Referências

1 - R. Rivest, "RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4", RSA Data Security, Inc., http://www.rsasecurity.com/rsalabs/technotes/wep.html

2 - F. Verissimo, "Em defesa de Rivest", Lockabit, Dez.2001, http://www.lockabit.coppe.ufrj.br/rlab/rlab_textos.php?id=55

3 - R. Housley and D. Whiting, "Temporal Key Hash", IEEE techical Report: IEEE 802.11-01/550r3, http://grouper.ieee.org/groups/802/11/Documents/DocumentHolder/1-550.zip

4 – Borisov,N., Goldberg, I., and Wagner, D. 2001. “Intercepting Mobile Communications: Tha Insecurity of 802.11”

5 – Fluhrer, S., Mantin, I., and Shamir, A. 2001. “Weakness in the Key Scheduling Algorithm of RC4”

O Lockabit não compartilha necessariamente da mesma opinião do autor.