terça-feira, 18 de agosto de 2009

WEP


WEP significa Wired Equivalent Privacy, e foi introduzido na tentativa de dar segurança durante o processo de autenticação, proteção e confiabilidade na comunicação entre os dispositivos Wireless.
Wired Equivalent Privacy (WEP) é parte do padrão IEEE 802.11 (ratificado em Setembro de 1999), e é um protocolo que se utilizava para proteger redes sem fios do tipo, (Wi-Fi).
Introdução
Ao longo dos últimos anos, observa-se um grande aumento no número de redes sem fios utilizadas por usuários domésticos, 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 fios 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, encontraram-se 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 vector 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 que é 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. Esse texto foi originalmente publicado no site Lockabit
Tipos
• WEP64 (40 bits reais)
• WEP128 (104 bits reais)

Nenhum comentário:

Postar um comentário