Ataques dicionáricos

Li recentemente sobre um hacker Alemão que utilizou as novas máquinas virtuais da Amazon Web Services com dois cartões de vídeo GPU que aceitam código fonte que implemente a arquitetura CUDA de computação paralela, para decriptografar senhas de Wifi WPA-PSK, senhas estas compostas por palavras encontradas em um dicionário.

No experimento, Thomas Roth conseguiu conferir senhas em uma velocidade de até 400 mil palavras por segundo.

O experimento consiste em simular um cliente, entenda-se um computador com cartão de rede wireless, tentando autenticação em uma rede Wifi. Uma vez “capturada” a transmissão de pacotes, é possível, segundo entendi, decriptar a senha com auxílio de software.

Para conferir, instalei o software aircrack-ng num laptop rodando Ubuntu 10.10 com um cartão de rede Intel PRO/Wireless 3945ABG, capturei dados da rede do escritório e forneci ao software uma tabela, que incluia a nossa senha.

# Iniciar interface em modo monitor
$ sudo airmon-ng start wlan 9
# Capturar comunicação
$ sudo airodump-ng -w wpa -c 9 mon0
# Simular interação com uma rede
$ sudo aireplay-ng -0 5 -a 1C:AF:F7:24:A1:26 -c F0:B4:79:16:ED:57 mon0
# Decriptar – onde dic.txt é o dicionário e wpa-01.cap o log de comunicação
$ sudo aircrack-ng -a 2 -0 -w dic.txt wpa-01.cap

De fato o software achou a senha. Ocorre que nem todas as combinações possíveis de caracteres se encontram no dicionário. Considere que um conjunto de 13 caracteres formados de letras maiúsculas (25) e minúsculas (25) e números de 0 a 9 (10), possibilitam a formação de nr arranjos com repetição, ou seja 6013 resultando em um total de 1.3061 * 1023 senhas segundo minha calculadora HP 35s.

Dado que seriam necessários ao menos 14 bytes para representar uma senha; 13 mais um caracter de separação, um arquivo abrangendo todos os possíveis arranjos com repetição conforme descrito utilizaria:

1.3061 * 1023 x 14 = 1,8285 * 1024 bytes
1.8285 * 1024 / 10244 = 1.663 * 1012 terabytes

Seriam necessários aproximadamente 830 milhões de discos rígidos USB externo de 2 terabytes para salvar tal arquivo. E isto sem considerar outros fatores como o algoritmo e a computação da tabela.

Considerando que a altura de um destes é 40mm, se empilhados chegariam a quase 21 mil metros de altura, ou seja, se a pilha começasse na depressão mais profunda dos oceanos, as Fossas das Marianas, iria além da altitude do Monte Everest.

Moral da história, quando escolher a senha do seu Wifi, não escolha palavras que estão no dicionário!