Ver Feed RSS

Tecnologia de Redes, Mobilidade e Inovação

Quanto tempo leva para quebrar uma chave WPA ou WPA2?

Avaliação: 2 votos, 5,00 média.
Existe vários vídeos no Youtube e comentários em blogs descrevendo como "quebrar" chaves WPA e WPA2. O WEP tem um bug grave, que permite com que a chave seja descoberta rapidamente, mas no caso do WPA ou WPA2 os únicos métodos publicados e provados são dicionário ou força bruta.

Existe um post correndo na Internet sobre dois pesquisados japoneses que teriam descoberto uma maneira de quebrar parcialmente o WPA TKIP (esse suposto método não atingiria WPA AES nem o WPA2). Isso foi inclusive comentado aqui no Under-Linux em um post recente de outro blog.

Quando falo em "suposto método" é porque todos os textos que apareceram na Internet eram muito parecidos, mas depois disso não vi mais nenhum comentário. O nome dos pesquisadores aparentemente são válidos (pois existem textos relacionados a criptografia nomeando os dois), mas não encontrei nenhuma referência ao texto que eles iriam divulgar no evento que ocorreu semana passada. Além disso, em muitos sites (como Yahoo Tech) a notícia foi removida.

Em resumo: ninguém apareceu até agora para confirmar se a dedução em "matematiquês" está correta ou não.

Mas vamos considerar que o WPA TKIP seja realmente passível de quebra por algum algoritmo, então vamos nos focar no WPA AES e WPA2.

Em ambos os protocolos, como citei acima, a chave só pode ser quebrada (até onde se sabe) via ataque de dicionário ou força bruta.

O ataque de dicionário está relacionado à má escolha da chave. Por exemplo, um administrador escolhe como chave a seqüência "123456789". No ataque de dicionário o atacante possui uma lista de palavras (o dicionário) contendo várias senhas possíveis e o programa atacante tenta todas elas. Se a chave foi mal escolhida pelo administrador, ela deve estar na lista de palavras e eventualmente o programa identifica, informando o hacker.

Vale salientar que o programa de ataque tem que tentar uma por uma todas as chaves. Se for uma lista de um milhão de palavras, o programa vai testar todas.

Existe para download nos sites de hackers, várias listas de dicionários que um atacante pode usar e tentar a sorte. Mas é apenas isso: pura sorte (e falta de consciência do administrador da rede atacada).

Quando vemos os vídeos do Youtube, descrevendo como se ataca WPA ou WPA2, são ataques de dicionário. Obviamente que o "atacante" neste caso teve o cuidado de colocar uma chave WPA que estava no dicionário usado, então ele tem sucesso. A primeira vista, dá impressão que ele invadiu a rede em menos de 1 minuto, mas na verdade ele estava apenas demonstrando que o ataque precisa de sorte: o administrador tem que escolher uma senha fácil e que "por sorte" estava no dicionário pequeno que ele usou.

No entanto, qualquer senha que tenha sido escolhida com um pouco de cuidado, não estará no dicionário. Não estou falando de senhas como "6$gs5SD45Diad", mas coisas como "AbC345SoRtE" já são relativamente boas.

Nesse caso, quando o administrador fez uma boa escolha, a única alternativa do atacante é testar TODAS as chaves possíveis, uma a uma. Esse é o chamado método da força bruta.

Nesse caso, quanto tempo levaria para um atacante testar todas as chaves?

Lembre, cada chave pode ter caracteres maiúsculos e minúsculos, além de símbolos (%$&#@) e números. Na verdade, pode inclusive ser composta de qualquer número hexadecimal de 00 a FF. Mas vamos focar apenas no tradicional: letras, números e símbolos. Isso dá aproximadamente 70 caracteres possíveis.

Assim o atacante tem que tentar todas as chaves de 1 caracter (70 opções, fácil), depois todas de 2 caracteres (70 x 70 = 4.900 opções diferentes), depois todas de 3 caracteres (343.000 opções) e assim diante.

Além disso, por uma questão de estatística, em média, será necessário testar metade das opções para encontra a chave correta. Assim se levar 2 horas para testar todas as combinações, em média será necessário 1 hora para achar a chave correta (quem não gosta de estatística, apenas acredite em mim).

Então, vamos responder à pergunta: quanto tempo em média um hacker irá demorar para encontrar a chave correta?

Antes, algumas informações básicas: um bom computador deve ser capaz de testar 100 chaves por segundo. Vamos então imaginar que o hacker tenha um super computador, capaz de testar 100.000 chaves por segundo!!! Vamos dar a ele muito dinheiro, ele tem um mega-super-blaster computador, tudo bem. Jóia.

Também vamos lembrar algumas informações úteis:
- um ano tem 31.536.000 segundos
- a chance de ganhar na megasena com um jogo de 6 dezenas é de 1 em 50 milhões (aproximadamente)
- estima-se que o universo tenha 14,5 bilhões de anos.

Vamos ver as chances de sucesso desse hacker contra um administrador que escolheu uma boa senha (ou seja, uma senha que não esteja em um dicionário).

Chaves de 5 Caracteres

Com uma chave de 5 caracteres, temos 70x70x70x70x70 combinações (para os matemáticos de plantão, não quero falar de exponenciação) ou aproximadamente 1,68 bilhões de combinações.
O mega computador iria demorar quase 16.807 segundos para testar todas. Estatisticamente seria necessário, em média, metade desse tempo para encontrar a chave, ou 8.404 segundo ou quase 2 horas e meia.

Ok, nada mal. Parece fácil, basta ter um super computador. 5 não é um bom tamanho. Vamos continuar

Chave de 10 Caracteres

Teriamos 70x70x70x70x70x70x70x70x70x70 possibilidade ou mais de 2,8 quatrilhões de opções (chega quase na fortuna do Tio Patinhas). Usando o mega-blaster computer, dá um tempo 1,5 milhões de anos em média.

A chance dele conseguir encontrar essa chave em um prazo de 1 ano é menor que 1 em 1 milhão.

Vamos subir um pouco mais

Chave de 20 Caracteres

O padrão 802.11i recomenda que chave seja de pelo menos 20 caracteres. Nesse caso (não vou escrever "70x" vinte vezes) dá um número gigantesco de opções. Com o super-mega-blaster computador levaria 318 trilhões de vezes a idade do Universo. Ou seja, o hacker necessitaria que o Universo surgisse de novo 318 trilhões de vezes para ele encontrar a chave.

Mas vamos um pouco mais além. Vamos supor que o hacker tem um Deep Blue, o super computador da IBM que ganhou do campeão de xadrez (e mal perdedor) Garry Kasparov. O Deep Blue fazia 5 bilhões de operações por segundo. Para verificar uma chave são necessárias várias operações, mas vamos fazer de conta que ele conseguisse testar 1 chave por operação. Qual seria o tempo necessário? 92 sextilhões de anos, em média ou "apenas" 6 bilhões de vezes mais que o nosso universo existe.

Agora vamos pensar que esse hacker consiga cobrir todo o planta Terra com Deep Blues. Colocando 10 computadores por metro quadrado (inclusive sobre mares, geleiras e florestas). Isso daria 5,1 quintilhões de computadores trabalhando em rede. O tempo cairia para 18.000 anos em média.

Chave de 64 Caracteres

O tamanho máximo permitido para uma chave WPA ou WPA2 é de 64 caracteres.

O tempo para um hacker quebrar uma chave de 64 caracteres usando o planeta Terra coberto de Deep Blues seria de 2,7E85 anos (escreva 27 e depois coloque mais 84 zeros). É um número maior que a quantidade estimada de partículas (átomos) no Universo.

Agora vamos imaginar que o nosso hacker tenha assistido Guerra nas Estrelas e queira construir uma Estrela da Morte Deep Blue. Um objeto do tamanho do nosso Sol, totalmente recheado de Deep Blue. Ele teria que evitar o problema da atração gravitacional, porque tanta massa transformaria esse objeto em um buraco negro. Mas ele tem o lado negro da força com ele, então ele resolveria esse problema.

Sem aprofundar em detalhes, o tempo cairia para "apenas" 1,17E71 anos. Escreva ai: 117 e depois mais 69 zeros. Se não estou enganado isso se leria 117 duotrigintilhões de anos.

Resumo

Os ataques originados em bugs de operação são um problema real para qualquer sistema de criptografia (quer seja wireless, túneis IPSec, etc.). No entanto, uma escolha apropriada de chaves é o suficiente para proteger de maneira segura qualquer sistema wireless que use um protocolo seguro.

Me siga no Twitter: http://www.twitter.com/mlrodrig

Atualizado 13-01-2011 em 11:24 por mlrodrig

Categorias
Não Categorizado

Comentários

Página 1 de 4 1234 ÚltimoÚltimo
  1. Avatar de TheHawk
    Boa.... aqui no provedor utilizo WPA2 AES com chave individual para cada cliente de 63 caracteres (alfanumerica), tudo configurado via radius.... e ainda tem o login e senha do PPPoE...... tá dando bem pro gasto....... até.
  2. Avatar de jodrix
    Parabens amigo, OTIMO post, tenho dito isto aqui no forum, mas muitos acreditam até em coelinho da pascoa e papai noel, chaves faceis são faceis de quebrar mas chaves dos tipo 63 caracteres encriptadas WPA2....amigo esquece... só se vazar. Novamente parabens.
  3. Avatar de lemke
    Muito boa a postagem, bastante esclarecedora.

    Sds,
  4. Avatar de Não Registrado
    117E71 não é 117 com 69 zeros e sim 70 :)

    117E71 = 117 x 10^70
  5. Avatar de fbugnon
    Excelente artigo mlrodrig, esclarecedor e bem escrito. Parabéns!

    Só uma dúvida: que um computador-bom possa testar 100 chaves por segundo ou um ótimo-mega-power testar 100.000 chaves por segundo, tudo bem, não interessa o tempo que o roteador/ponto de acesso Wi-Fi leva para responder a esse teste?

    Eu já notei que quando digito a senha errada para acessar uma rede sem fio leva bem alguns segundos para vir a resposta de falha na conexão, isso pode ser superado?
Página 1 de 4 1234 ÚltimoÚltimo

+ Enviar Comentário




Visite: BR-Linux ·  VivaOLinux ·  Dicas-L