Segurança do Protocolo WEP
<Alexandre Sarmento>
<Francisco Valadares>
<Erick Muzart>
{asas - famv – emfs}@cin.ufpe.br
1
Introdução: Motivação
• Redes sem fio em crescimento rápido
• A proporção de dados trafegados aumenta
• Predominância das redes WiFi semelhantes à Ethernet
• Maiores preocupações com a segurança
• Mecanismos de segurança deficientes
2
Sumário
• Descrição WiFi
• Descrição WEP
• Análise dos elementos do WEP
• Fraquezas encontradas
• Conclusões
3
WI-FI
• O que é?
- Uma tecnologia de transmissão de dados via rádio.
- Wi-Fi é uma marca comercial utilizada pela WECA para indicar a
interoperabilidade de produtos WLAN (Wireless Local Area
Network).
- O nome provém de "wireless fidelity" (fidelidade sem fio).
- A WECA submete os produtos WLAN a testes avançados; os
produtos que atendem ao padrão de interoperabilidade recebem o
logotipo Wi-Fi.
- WECA é a ONG Wireless Ethernet Compatibility Alliance, 1999
4
WI-FI
802.11b
802.11a
802.11g
2.4GHz
5GHz
2.4GHz
11Mbps
54Mbps
54Mbps
100-300m
30-100m
100-300m
A mais utilizada hoje
Aplicações
específicas/estabilidade
Substituindo 11b
rapidamente
Muito barata
Relativamente cara
Relativamente barata
5
Elementos WI-FI
• Elementos de uma rede sem fio
- Estação Base (ou AP, ponto de acesso): transmissor e bridge
(substituem os switches/hubs, DHPC, NAT (Network Address Translation))
- “Ondas de rádio”
(substituem os fios)
6
Elementos WI-FI
- Adaptador de rede
(conversor digital para ondas de rádio)
- Portal
(interconecta redes 802.11x a outras redes 802 externas)
7
Arquitetura WI-FI
• A arquitetura 802.11x é baseada na arquitetura dos celulares
Células (BSS, Basic Service Set), DS (backbones, geralmente Ethernet)
8
WEP
• Ambiente
Atrativo: os usuários ficam livres para se moverem enquanto conectados à rede
Vulnerabilidade: o acesso ultrapassa os limites físicos
• Wired Equivalent Privacy
- Padrão de segurança para WLANs IEEE 802.11
- Atua na camada de enlace entre estações e o ponto de acesso (AP)
9
WEP: Características
• Confidencialidade
- Oferece a segurança das informações no canal de comunicação.
- Criptografa os dados que passam pelo canal.
• Integridade
- Protege pacotes contra erros de transmissão (CRC).
- Mensagem + CRC formam o texto pleno que será criptografado.
10
WEP: Características
• Autenticação
- Permite apenas acesso autorizado à rede.
- Distribui uma Chave WEP para quem tem acesso à rede sem fio.
• Algoritmo
- É o RC4(será descrito adiante) com uma pequena variante.
- Problemas de segurança relacionados a confidencialidade e
autenticação.
11
Criptografia WEP: Princípios
• Uma chave única k de 104 bits compartilhada entre os
clientes autorizados e sem política de gestão da chave
• Vetor de inicialização aleatório IV (24 bits) para cada pacote
• Algoritmo criptográfico: cifra RC4
•Então a chave será o IV concatenado com k(128 bits);
XOR
Dados
Transmitidos :
IV
Texto Pleno
CRC
RC4 (k, IV)
Texto Cifrado
12
Descrição RC4
• RC4 : Gerador pseudo-aleatório de um fluxo de bytes, plenamente
determinado pela combinação K=IV·k ;
• Composto por dois elementos [1]:
• KSA(Key Scheduling Algorithm): usa a chave de pacote
K para gerar uma permutação inicial do array S de inteiros
0..N-1
• PRGA(Pseudo Random Generation Algoritm): gera um
fluxo de bytes à partir de permutações de S
Criptografia WEP: Esquema de
Transmissão
14
WEP- Autenticação
• Problema : um adversário que presencia essa troca ganha uma dupla
Challenge e IV·(RC4(k,IV) xor Challenge)
• Logo, fazendo novamente um xor entre os dois pacotes, obtém:
RC4(k,IV) o que é suficiente, fixando-se o IV, para criptografar
validamente qualquer pacote ulterior sem sequer precisar da chave!
• Assim, o adversário ganhou o acesso em envio à rede, mesmo se ainda
não pode decriptar o que recebe.
15
WEP- Confidencialidade
• O espaço de IVs de 24 bits é muito pequeno. Assim, o
sorteio aleatório de IVs leva a forte probabilidade de
repetições, como no paradoxo do aniversário [2].
• Se o adversário dispuser de um par (texto pleno P1, texto
criptografado C1) para um dado IVa, ele poderá decifrar
qualquer outro pacote que use o mesmo IVa:
C1 = P1 xor RC4(k,IVa)
C2 = P2 xor RC4(k,IVa)
C1 xor C2 = (P1 xor RC4(k,IVa)) xor (P2 xor RC4(k,IVa))
C1 xor C2 = P1 xor P2
P2 = P1 xor C1 xor C2
16
WEP-Key Recovery
•
Suponha que você conhece os A primeiros bytes da chave WEP(não
levando em conta o IV) ;
•
Três elementos são suficientes p/ a descoberta do (A+1)– ésimo
byte da chave WEP a partir de um pacote capturado com
probabilidade não nula( Fluhrer et al [3]) :
i.
O primeiro byte da saída do algoritmo PRGA ;
ii.
IV´s de uma certa característica ;
iii.
Propriedade do array S no momento da execução do algoritmo KSA ;
•
•
Pacotes resolved [3], são pacotes onde se conhece i e ocorre ii ;
No mínimo, em 5% dos pacotes resolved , iii ocorre [4].
17
1st PRGA Byte
• No Padrão 802.11, pacotes gerados a partir de tráfico ARP possuem o
primeiro byte da forma 0xAA ;
•O primeiro byte de saída do PRGA que chamaremos de OUT, será
S[ S[1] + S[S[1] ] ] ;
•Assim, capture um pacote ARP e observe o primeiro byte do texto
cifrado R. Temos que R = 0xAA XOR OUT => OUT = R XOR 0xAA,
ou seja, como conheço R e o primeiro texto pleno criptografado posso
obter S[ S[1] + S[S[1] ] ] = OUT ;
•O valor de OUT será importante p/ a descoberta da chave.
18
IV´s “Fracos”
• Embora existam mais condições para os IV´s, nosso trabalho focou-se
em IV´s desta forma:
• IV[0] = A + 3 ;
• IV[1] = 0xFF( 255 em decimal) ;
• IV[2] = Qualquer número de um byte ;
• Capturar pacotes resolved, seria capturar pacotes ARP cujo IV fosse
desta forma ;
• Captura-se pacotes resolved suficientes para garantir que pelo menos
um deles possuam a propriedade no array S na execução do KSA.
19
Array S no KSA(4/1)
• Observando o algoritmo KSA defina Sn e jn como sendo o estado do
array S após o loop n(do segundo “for”) do KSA(após o Swap) e como
o valor de j após passar pelo primeiro passo do loop n (do segundo
“for”) do KSA, respectivamente ;
•Note que antes de se passar pelo segundo “for”, S e j já estão prédefinidos ;
20
Array S no KSA(4/2)
• Realize i = A + 2 iterações completas do KSA ;
• Com esse número de iterações em pacotes resolved:
• S2[0] = A+3 e S2[1] = 0 ;
• [3] - Com quase 100% de certeza, S2[0] = SA+2[0] e S2[1] = SA+2[1], ou
seja, SA+2[0] = A+3 e SA+2 [1] = 0 ;
• No fim da iteração A + 2, teremos SA+3[jA+3] = SA+3 [SA+3 [1] + SA+3 [SA+3
[1]] ] = S[S[1] +S[S[1]] ] = OUT !!!!!!!
•Desde que conhecemos somente os primeiros A bytes da chave WEP,
não poderiamos realizar o laço i = A + 3 (pois precisariamos exatamente
de K[A+3], K =3 bytes IV + Chave WEP.
21
Array S no KSA(4/3)
Array S no KSA(4/4)
• Após essa iteração teremos a seguinte equação do KSA :
• jA+3 = jA+2 +S A+2 [A+3] + K[A+3]
=> K[A+3] = jA+3 - jA+2 - SA+2 [A+3].
• Observe que K[A+3] é exatamente o (A+1)– ésimo byte da chave
WEP que estamos procurando ;
• Temos jA+2 e SA+2 [A+3] obtidos da iteração ;
• jA+3 é obtido a partir do conhecimento de OUT!!!!
• Dúvidas e mais detalhes podem ser vistos no nosso relatório.
23
Montando o Algoritmo
KeyRec(4/1)
• Ou seja, conhecendo-se A bytes da chave WEP, posso obter o A+1
ésimo byte......
• Pode ser que o byte achado não corresponda ao byte real.....
• Como tratar disso?????
• Simples....pegue tantos pacotes quanto forem necessários e pegue o
byte deduzido de cada um deles.... O byte que ocorrer mais vezes será
provavelmente o byte verdadeiro....
• Com essa idéia já podemos montar o algoritmo [4].
24
Montando o Algoritmo
KeyRec(4/2)
• Algoritmo RecoverWEPKey[4] com a subrotina ResolvedPac:
25
Montando o Algoritmo
KeyRec(4/3)
• A subrotina ResolvedPac explora exatamente a propriedade no array S
do KSA e retorna o possível byte da chave :
26
Montando o Algoritmo
KeyRec(4/4)
• Segundo Adi Shamir[3] , com q em torno de 60 poderemos obter o
byte da chave WEP com 0,5 de certeza, portanto para q > 120 obteremos
o byte com chance bastante alta.
Demonstração
• Nossa implementação desenvolveu uma simulação bem simples
baseada na linguagem Perl ;
• O script GeradorPacotesFracos.pl recebe a chave WEP como entrada e
gera várias ternas de 4 bytes em notação decimal num arquivo chamado
Pacotes.log, sendo que os primeiros 3 bytes representa o IV´s Fracos e
o 4º byte representa o 1º byte do texto pleno(0xAA que supostamente
foi gerado a partir de um pacote ARP ) criptografado com a chave WEP
;
•O Script WEPKeyRecovery.pl simplesmente pega essas ternas do
Pacotes.log e deduz a chave WEP original utilizando-se das idéias aqui
apresentadas.
28
Conclusão
• Todos os mecanismos de segurança do protocolo WEP estão
comprometidos ;
• Não há como melhorá-los mantendo compatibilidade ;
• A segurança do 802.11 com WEP é falsa: ataques modernos
em menos de 15 minutos ;
• Alternativas como o WPA[5] ;
• Uso de criptografia em outras camadas de comunicação.
29
Referências
• [1] http://en.wikipedia.org/wiki/RC4 , ultimo acesso em 1 de
Agosto de 2005.
•[2] http://www.cs.ucsd.edu/users/mihir/cse107/index.html , último
acesso em 1 de Agosto de 2005.
•[3] Adi Shamir , Scoot Fluhrer Itsik Mantin , Weaknesses in the
key scheduling algorithm of RC4, escrito em 2001.
•[4] Adam StubbleField, Joan Ionnadis e Avil de Rubin , Using the
Fluhrer , Mantin and Shamir Attack to Break WEP.
•[5] http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access, último
acesso em 1 de Agosto de 2005.
Perguntas
Download

SegurancaProtocoloWEP_VersaoFinal