RCO2-lab-secwifi

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Objetivo

  • configurar uma rede local sem-fio (WLAN)
  • ativar mecanismos de segurança WEP e WPA de uma WLAN

Introdução

O experimento de hoje diz respeito à criação de uma WLAN com um BSS baseado em AP, e à ativação de mecanismos de segurança WEP e WPA para o acesso à rede. WEP (Wired Equivalent Privacy) se baseia em chaves compartilhadas, e sabe-se passível de ser facilmente quebrado, sendo que o próprio IEEE faz anos recomenda fortemente que não seja usado (ver link que acompanha esse roteiro). WPA (Wifi Protected Access) define um framework para autenticação e privacidade, o qual possibilita o uso de diferentes métodos para efetuar se obter um acesso seguro à rede sem-fio – entre eles, uso de IEE 802.1x com EAP. O WPA foi escrito a partir de uma versão prévia da norma IEEE 802.11i, sendo que posteriormente foi definido o WPA2, que corresponde em larga medida à versão final desse padrão.

Roteiro

  1. O AP do laboratório tem IP 192.168.1.250, e é capaz de trabalhar com WEP, WPA-PSK e WPA-EAP. A interface web do AP mostra as opções de configuração de segurança, como será mostrado pelo professor.
  2. Há 5 interfaces de rede sem-fio USB a serem usadas nos computadores. Em cada um desses computadores o serviço do Ubuntu NetworkManager deve ser ativado. Isto será feito pelo professor, pois é necessário privilégio de superusuário (o professor executará remotamente com ssh o comando: service network-manager restart. Com isso será possível comandar a configuração da interface de rede sem-fio diretamente pela interface gráfica.
  3. Para fins de comparação, o AP será configurado inicialmente com modo de segurança desativado. Usando o Network Manager conecte seu computador à rede sem-fio REDES2, e em seguida desative a interface de rede cabeada com o comando:
    sudo ifconfig eth0 down
    
    • Execute um ping 192.168.1.1, e deixe-o rodando.
    • Monitore o tráfego pela interface de rede sem-fio, usando o wireshark (sudo wireshark). O que você consegue visualizar do tráfego que circula na rede ? É possível ver o tráfego de outros computadores ?
    • Na verdade, a interface de rede não mostra os quadros de outras estações. Mas se for criada uma interface de rede do tipo monitor, todo o tráfego da rede sem-fio que chegar até sua interface de rede pode ser capturado. Para criar esse tipo de interface faça o seguinte (substitua wlan0 pelo nome da sua interface):
      • Interface Edimax (cinza):
        sudo iw dev wlan0 interface add mon0 type monitor
        sudo ifconfig mon0 up
        sudo iwconfig mon0 chan 6
        
      • Interface TP-Link (branca): nesse caso não será possível se comunicar pela rede sem-fio e monitorar o tráfego simultaneamente.
        sudo ifconfig ra0 up
        sudo iwconfig ra0 mode monitor
        sudo iwconfig ra0 chan 6
        
        ... e em seguida no wireshark faça a captura de pacotes nessa interface. Procure quadros do tipo Data, e veja se é possível ver seu conteúdo (se é inteligível). O que se pode concluir sobre os quadros de dados na rede sem-fio, se não há um mecanismo de segurança ativado ?
  4. O AP será configurado para proporcionar o modo de segurança com WEP, usando a chave mreth. Assim, as interfaces de rede sem-fio devem ser configuradas para usarem essa chave, quando via Network Manager se tentar conectar à rede sem-fio REDES2. Monitore o status da interface usando o comando sudo iwconfig wlan0. Rapidamente deve aparecer a informação de que ela está associada ao AP, o que indica que a chave WEP estava correta. Deve aparecer um resultado semelhante a este:
    wlan0 IEEE 802.11g ESSID:"REDES2" Nickname:""
          Mode:Managed Frequency:2.437 GHz Access Point: 00:1B:11:1C:E3:7D
          Bit Rate:36 Mb/s Tx-Power:16 dBm Sensitivity=1/1
          Retry:off RTS thr:off Fragment thr:off
          Encryption key: 6D72-6574-68
          Power Management:off
          Link Quality=59/70 Signal level=-37 dBm Noise level=-96 dBm
          Rx invalid nwid:3064 Rx invalid crypt:0 Rx invalid frag:0
          Tx excessive retries:0 Invalid misc:0 Missed beacon:0
    
  5. Execute um ping 192.168.1.1, e deixe-o rodando.
  6. Usando o wireshark faça a captura de pacotes na interface mon0. Procure quadros do tipo Data, e veja se é possível ver seu conteúdo (se é inteligível). O que se pode concluir sobre os quadros de dados com WEP na rede sem-fio ?
  7. Na introdução deste roteiro se afirmou que o WEP é um modo de segurança com graves falhas, e que não deve ser usado em instalações reais (nem em sua rede doméstica !). Para demonstrar isto será usado o software aircrack-ng (maiores detalhes), que faz a descoberta da chave WEP. Esse software está instalado no computador do professor, de onde será feita uma demonstração. Esta se baseiano tutorial Simple WEP Crack Tutorial, descrito no site oficial do aircrack-ng, e resumidamente segue abaixo:
    • Executar este comando para por a interface de rede sem-fio em modo monitor (11 é o canal onde está operando o AP do laboratório):
      sudo airmon-ng start wlan0 11
      
    • Descubra o endereço MAC do AP, e em um terminal em separado execute este comando para fazer a captura de quadros e salvá-los em arquivos:
      sudo airodump-ng -c 11 --bssid MAC_do_AP -w output mon0
      
    • A interface de rede precisa fazer uma autenticação falsa no AP para poder enviar a ele quadros forjados, que servirão para acelerar a captura de quadros e assim o processo de quebra da chave WEP. O comando a seguir faz essa autenticação:
      sudo aireplay-ng -1 0 -e REDES2 mon0
      
    • O próximo passo é injetar quadros na rede sem-fio, para forçar o AP a respondê-los e assim acelerar a taxa de de quadros capturados. Isso se faz capturando alguma mensagem ARP, e em seguida reinjetando-a na rede. O AP vai retransmiti-la, e com isso pode-se obter um novo quadro encriptado para análise. O comando abaixo executa esse procedimento, e deve ser executado em um terminal em separado:
      sudo aireplay-ng -3 -b MAC_do_AP mon0
      
      Observe que no terminal onde roda o airdump-ng a contagem de quadros coletados deve aumentar rapidamente.
    • Após alguns segundos, deve-se executar este comando:
      aircrack-ng -z -b MAC_do_AP output*.cap
      
      Este último passo deve revelar a chave WEP em uso !

      O aircrack-ng pode ser instalado no Ubuntu, e existem versões para outros sistemas operacionais (inclusive Windows). Existem outros softwares que quebram chaves WEP, mas basta existir um (e de fácil obtenção !) para descartar o WEP como um modo de proteção de redes sem-fio a ser considerado.
  8. Sendo o WEP inseguro, em ambiente corporativo ou doméstico recomenda-se o uso de WPA (WiFi Protected Access). WPA possui basicamente dois modos de autenticação e encriptação: um baseado em chave compartilhada, chamado de WPA-PSK (semelhante ao WEP), e outro baseado em IEEE 802.1x/EAP. No primeiro caso, o uso da chave foi modificado para que cada quadro use uma chave distinta, e de uma forma que seja muito difícil deduzir a próxima chave. No segundo caso, usa-se o framework IEEE 802.1x, porém limitando os métodos EAP possíveis (dentre eles, PEAP e EAP-TTLS vêm tendo maior aceitação). Assim, para um primeiro experimento deve-se usar WPA-PSK, por ser mais simples. O AP será configurado pelo professor para usar WPA-PSK, que usará a chave compartilhada fimdeano.
  9. Deixe o wireshark capturando pacotes na interface wlan0. Em seguida, usando o Network Manager conecte seu computador à rede REDES2. Observe os quadros inicialmente trocados entre seu computador e o AP. Repare que os primeiros quadros são de um protocolo chamado EAPOL, o qual é usado para fazer a negociação da chave de encriptação do WPA_PSK.
    • Quantas mensagens são trocadas entre seu computador e o AP até completar a autenticação ?
    • Quanto tempo levou para fazer a autenticação ?
    • Quais os protocolos envolvidos nessa mensagens ?
  10. A quebra da chave WPA-PSK não pode ser feita de forma tão simples (?!) quanto no caso do WEP. Isto porque no WPA-PSK a chave somente pode ser descoberta por métodos de força bruta: testando diferentes chaves até descobrir a verdadeira. Isto se chama de ataque de força bruta ou, em uma versão um pouco melhorada, ataque baseado em dicionário. O uso de dicionários, que são conjuntos de palavras, pode acelerar a descoberta da chave, se quem a configurou usou uma palavra contida no dicionário de ataque. Isto não é tarefa fácil, e ataques deste tipo usualmente demoram bastante (a não ser que a chave seja trivial !). Para chaves grandes, com muitos caracteres aleatórios (chaves PSK podem ter entre 8 e 63 caracteres), a descoberta é virtualmente impossível. Veja uma discussão sobre isto na página do aircrack-ng. Com isto, concluímos que WPA-PSK, com chaves grandes e aleatórias, pode ser usado com boa margem de segurança. Porém existem outras questões a serem levadas em conta (assunto da próxima aula).
  11. Em uma rede com muitos usuários, ou com usuários temporários (ambos casos típicos de empresas), ter uma chave compartilhada como no caso do WPA-PSK não é uma boa estratégia. O melhor é autenticar os usuários individualmente, para que seja fácil identificar quem usou a rede, e para revogar o acesso quando necessário. Assim, o método final de acesso à rede sem-fio se chama WPA-EAP e baseia-se no IEEE 802.1x com EAP, que proporciona a autenticação individual de usuários. Para testá-lo será usado o EAP-TTLS, que primeiro estabelece uma conexão encriptada para em seguida fazer a autenticação com login e senha (com EAP-MD5). A proteção do login e senha com encriptação é fundamental para elevar a segurança do método de acesso (na verdade, a autenticação em redes sem-fio exige que exista encriptação para a transmissão de credenciais). Como visto anteriormente em controle de acesso com IEEE 802.1x em redes cabeadas, há a necessidade de um servidor Radius para a autenticação. Assim, esse servidor Radius deve estar corretamente configurado no computador do professor para aceitar a autenticação com EAP-TTLS.
  12. Use o Network Manager para fazer a autenticação com WPA Enterprise (um apelido para o WPA-EAP) e EAP-TTLS. A identidade deve ser seu_nome, com senha seu_sobrenome. Conecte o supplicant, e verifique se ele consegue fazer a autenticação.
  13. Desconecte da rede sem-fio, e em seguida execute o wireshark. Ponha-o a capturar pacotes na interface wlan, e depois reconecte à rede sem-fio.
    • Quantas mensagens são trocadas entre seu computador e o AP até completar a autenticação ?
    • Quanto tempo levou para fazer a autenticação ?
    • Quais os protocolos envolvidos nessas mensagens ?