Objetivo do Blog:
1) "Go Deep!" A internet está repleta de post com conteúdo superficiais, mas fraca de conteúdo apronfudados.

2) "KISS: Keep It Simple Stupid!" Os post devem ser o mais simples possíveis. Eu parto da filosofia que se algo é complicado, com certeza você não entendeu a ponto de conseguir simplificar e simplesmente replicou a complexidade que lhe foi ensinada.

3 de jul. de 2009

Entendendo o processo de chaves WPA

O WPA é um protocolo sucessor do WEP, sendo respectivamente um definido pela Wi-Fi Alliance e outro pelo IEEE.

O WPA funciona com "pilares" de segurança separados, sendo este os seguintes pilares:

Criptografia: Utiliza o TKIP, que é o foco deste artigo.
Autenticação: Utiliza o 802.1x ou uma chave pré-compartilhada.
Integridade: Utiliza o protocolo MIC, que garante que o dado não será alterado.

Eu pretendo entrar em mais detalhes do WEP em outro artigo, mas por enquanto pense que o WEP realiza a criptografia e a autenticação utilizando a "WEP KEY", pensando é claro no modo clássico e não no modo com 802.1x.

Bom, sobre o WPA, temos duas formas de autenticação possível:

Enterprise: Utiliza o 802.1x e realiza integração com o sistema de segurança da empresa através do protocolo Radius.

Personal: Utiliza uma chave pré-compartilhada (pre-shared key).

É importante ressaltar novamnete que estes são os metodos de autenticação, ou seja, de garantir que efetivamente você é um usuário legitimo. Mas então, como funciona a criptografia no WPA?

Bem, primeiro vamos ao 802.1x:

Após o processo de autenticação o Servidor Radius gera uma chave MESTRA, chamada de PMK (Pairwise Master Key). Esta chave é entregue de forma segura para o Access-Point e o cliente Wireless através do processo EAP do Radius.

Esta chave, porém, é uma chave que não deve ser exposta de forma alguma, então se faz necessário a criação de uma nova chave para criptografar os pacotes, esta é a chave Transiente, ou temporária (PTK: Pairwise Transient Key).

A PTK é gerada através do Hash dos seguintes elementos:

a) PMK
b) Valor aleatório do AP (AP_NONCE*)
c) Valor aleatório do cliente (S_NONCE*)
d) MAC address do AP
d) MAC address do Cliente

* Nonce é um valor aleatório para garantir que as chaves não estejam velhas.

Esta chave PTK tem o tamanho de 512 bits, sendo esta dividida em várias partes, da seguinte forma:



a) Os primeiros 128 bits é uma chave chamada de EAPOL-Key Encryption Key (KEK). Usada no processo para criptografar a GTK, como veremos a frente.

b) Os próximos 128 bits é uma outra chave chamada de EAPOL-Key Confirmation Key (KCK). Usada para computar o MIC no 4-way Handshake.

c) Os próximos 128 bits é uma outra chave chamada Temporal Key (TK). Esta chave é usada para criptografar e descriptografar pacotes unicast.

d) Os próximos 64 bits é a chave usada para o cálculo do valor de checagem de integridade MIC. Eu vou explicar como funciona com detalhes em outro artigo. Este campo é usado para o calculo de integridade quando o AP envia o dado para a estação.

e) Os últimos 64 bits é a chave usada para o cálculo do MIC, que tem a mesma função anterior, mas usada para dados enviados da Estação para o AP.


Para se obter a PTK, é preciso que ambos os lados saibam os seguintes dados:

1) NR_AP: Número Randômico AP
2) NR_AP: Número Randômico PC
3) MAC_AP
4) MAC_PC
5) Chave Mestra (PMK)

O processo de criação desta chave se dá através de um mecanismo chamado 4-way handshake. Este mecanismo funciona da seguinte forma:


1) O AP envia para o cliente um número randômico (NR_AP):


Passo 1.5) O cliente recebe o NR_AP e gera o seu número randômico (NR_PC). A partir deste ponto ele gera a PTK e a armazena, mas ainda não a instala.


Passo 2) O cliente envia o NR_PC para o AP.

Passo 2.5) O AP recebe o NR_PC. A partir deste ponto ele gera a PTK e a instala para utilzar no fluxo de dados daqui para frente.


Passo 3) Após gerada a PTK, o AP envia para o Cliente o WPA IE, que indica as capacidades do AP. Esta informação é criptografada com a Chave Transiniente (TK). É gerado o valor de integridade MIC.


Passo 4) Após receber a mensagem o Cliente envia uma mensagem de confirmação.




Quando o processo de chave de unicast é finalizado, se inicia o processo de chave Broadcast/Multicast. A chave GTK é gerada a partir da GMK, uma chave de grupo mestra.

A GMK nunca é enviada na rede, e o seu conhecedor e somente o AP. A GTK é entregue de forma segura, sendo criptografada usando o KEK.

a) Chave de Broadcast/Multicast, chamada GTK (Group Transient Key).

b) Número de Sequência que será usado na próxima tranmissão de Broadcast

c) Resultado do MIC

4)O Cliente envia a confirmação do recebimento.

Para uma rede com autenticação WPA Pre-shared Key (PSK), o processo funciona da mesma forma, com uma única diferença na geração da PMK, onde ocorre a concatenação dos seguintes valores:

a) PSK

b) SSID

a) O Tamanho do SSID

Esses dados são "hasheados" 4096 vezes e gerado a PMK de 256 bytes.

Nenhum comentário:

Postar um comentário

Twitter

    Siga-me no Twitter

    Sobre o autor do blog.

    Meu nome é Yuri Mecca, tenho 24 anos e trabalho na área de redes desde os 18 anos quando entrei na faculdade. Neste percurso passei por quatro empresas. Atualmente sou responsável pelos projetos de Wireless e Datacenter na CPM Braxis, parceira GOLD da Cisco. Sou Certificado CCNP, e estou seguindo a área de Certificação de Wireless, onde tenho atualmente o CCNA de Wireless.
    Eu fui aprovado no Exame teórico CCIE Wireless em Dezembro e meu LAB está agendado para 5 de Maio.


    Siga-me no Twitter: yurimecca