c. IEEE 802.11i (WPA2)

Após o fracasso do WEP, a Wi-Fi Alliance se viu obrigada a trabalhar na segurança das suas redes sem fio para que o padrão não fosse abandonado. Assim surgiu o WPA. Porem no IEEE já estava sendo desenvolvido um padrão de segurança para ser aplicado a longo prazo, sendo uma solução “definitiva” para os problemas de segurança. Tempo depois foi lançado o IEEE 802.11 que tem como destaque utilizar o padrão 802.1X para autenticação, RSN para controlar as ligações da rede e CCMP baseado no AES para confidencialidade, integridade e autenticação da origem.

 

Robust Security Networks (RSN): O RSN é um protocolo de autenticação e criptografia inserido no adendo IEEE 802.11i, sendo muitas vezes confundido com o próprio padrão.

            O RSN consiste basicamente de dois sub-sistemas:

·        Um mecanismo de privacidade de dados, ou seja, um modelo de criptografia de dados utilizando um certo algoritmo. Podem ser utilizados o TKIP com o algoritmo RC4 ou o CCMP com o algoritmo AES.

·        Gerenciamento de ligações seguras. Nisso estão implícitas as regras de negociação do RSN para estabelecer um contexto seguro, Utilização do IEEE 802.1X para controle de acesso e o gerenciamento de chaves do mesmo IEEE 802.1X para fornecer as chaves ao ponto de acesso e usuário.

·         

O gerenciamento de ligações seguras consiste em:

·        Procedimentos de negociação RSN para estabelecer uma conexão segura

·        Autenticação IEEE 802.1X

·        Gerenciamento de chaves do IEEE 802.1X

 

Procedimentos de Negociação RSN

            O RSN define uma serie de procedimentos para que se possa garantir uma conexão segura entre o usuário, o ponto de acesso e o servidor de autenticação. A figura 5 mostra como funciona essa negociação. Ela consiste de 5 passos:

1.      Estabelecimento de um canal seguro entre o ponto de acesso e o servidor de autenticação.

2.      Localizar a rede, negociar os algoritmos de criptografia e associar o algoritmo à rede.

3.      Realizar a autenticação 802.1X com o servidor de autenticação.

4.      Autenticação mutua e estabelecimento das chaves aos pares (para o ponto de acesso e usuário).

5.      Estabelecimento das chaves criptográficas.

 

Os outros aspectos do RSN, que se utilizam do IEEE 802.1X já foram explicados anteriormente.

Ilustração 1: Figura explicando os procedimentos de negociação do RSN

 

                       

            AES (Advanced Encryption Standard): O AES é um padrão estabelecido pelo governo norte-americano, que especifica o algoritmo de criptografia a ser usado por organizações governamentais para proteção de informações sensíveis e não confidenciais. O AES é baseado no algoritmo de Rijndael, um symetric block cipher. A idéia fundamental por trás da criptografia em bloco é dividir os dados que devem ser protegidos em blocos e então criptografar cada bloco separadamente. O AES, particularmente, faz uso de blocos de 128 bits. A princípio, quanto maior o bloco, mais seguro o algoritmo. A chave usada para a criptografia é a mesma para todos os blocos. O AES não é impossível de ser quebrado, ele apenas, na melhor das hipóteses, torna o ataque computacionalmente inviável. Isso quer dizer que: o tempo ou o custo para que o algoritmo seja quebrado é maior que o tempo de vida ou o valor da informação criptografada respectivamente. As chaves do AES podem ser de 128, 192 ou 256 bits. O AES faz a criptografia em rondas e o número de rondas depende do tamanho da chave do AES. Para a chave de 128 bits são feitas 10 rondas, para a de 192 bits são 12 rondas e para a de 256 bits são 14 rondas. Cada bloco é tratado como uma matriz 4x4 de bytes, denominada de estado. O estado passa pelo seguinte processo:

1.      Substituição de bytes. Essa transformação é uma substituição não-linear que atua independentemente em cada byte do estado. Cada byte é atualizado através de uma tabela não-linear de substituição (S-box).

Ilustração 2: Substituição de bytes

Ilustração 3: Substituição de valores para o byte xy (formato hexadecimal)

2.      Deslocamento das linhas: 1ª linha não desloca, 2ª linha desloca 1 byte, a 3ª linha desloca 2 bytes e a 4ª linha desloca 3 bytes, todos para a esquerda.

Ilustração 4: Deslocamento das linhas

3.      Combinação das colunas:cada byte de uma coluna é substituído por um valor função dos bytes restantes.

Ilustração 5: Combinação de colunas

4.      É feito o XOR entre o estado e a chave de ronda, que é derivada da chave do AES através do Rijndael's key schedule.

In the AddRoundKey step, each byte of the state is combined with a byte of the round subkey using the XOR operation (⊕).

Ilustração 6: XOR do estado com a chave de ronda

 

Esse procedimento é repetido em cada uma das rondas, exceto na ultima, em que a etapa de combinação de colunas não é realizada

Cada uma dessas operações é facilmente inversível. A substituição de bytes procura gerar a não-linearidade da criptografia. O deslocamento das linhas e a combinação das colunas visão dar difusão à criptografia, ou seja, eliminar qualquer redundância presente na mensagem original da mensagem criptografada.

 

 

CCMP: O CCMP é um protocolo de criptografia baseado no algoritmo AES, que criptografa por blocos, diferentemente do RC4 do TKIP e do WEP que é um stream cypher, se utilizando do Modo counter (CTR) para garantir a privacidade, em união com o código de autenticação CBC-MAC para garantir a integridade da mensagem.

            Esse modelo do CCMP é chamado CCM, um modelo genérico de criptografia e autenticação que pode ser aplicado a diferentes algoritmos de criptografia. A restrição apresentada por esse modelo é que os blocos utilizados na criptografia tem de ser de 128 bits. O modelo exige também que seja fornecida uma chave temporal (TK) por sessão e um valor único para representar cada pacote para cada TK. O CCMP utiliza um numero de pacote (PN) de 48 bits.

             O quadro criptografado é formado através do CTR. O processo de criptografia do quadro é o seguinte:

1.      Incrementação do PN, para garantir que o pacote enviado terá um PN novo.

2.      O cabeçalho do quadro é utilizado para construir dados de autenticação adicionais (AAD)

3.      Construção do vetor de inicialização (IV ou Nonce) a partir do PN e de outros dados vindos do quadro (A2-bloco de endereço 2 e priority)

4.      Construção do cabeçalho CCMP com a união do PN do KeyID (ID que identifica a chave da sessão em questão no servidor de autenticação)

5.      Rodar o algoritmo AES no modo CTR utilizando como entrada o IV, o AAD, a chave TK, os dados do quadro para formar o os dados criptografados mais o MIC (Message integrity code).

6.      Concatenação do cabeçalho MAC, do cabeçalho CCMP e dos dados criptografados e MIC.

 

 

 

Ilustração 7: Processo de formação do quadro criptografado

 

            Para o calculo do MIC, que será enviado concatenado ao quadro criptografado, é utilizado o mesmo algoritmo AES, mas em modo CBC-MAC. Este recebe como entrada o quadro a ser enviado, e a TK. O valor retornado nesse processo será enviado para o receptor aonde será recalculado e comparado com o valor enviado.

 

Ilustração 8: Calculo do MIC

 

            Para formar o frame criptografado foi necessário utilizar o AES no modo CTR. Esse algoritmo vai ter como entrada o CTR preload (que é um bloco de dados com um byte de flag, um byte de QoS (Quality of Service), um campo endereço de 6 bytes, um PN de 6 bytes e 2 bytes de um contador) e a TK. O cabeçalho do quadro é repetido no quadro criptografado. Na transmissão esse algoritmo ira gerar um quadro criptografado de dados. Na recepção esse algoritmo ira gerar o quadro descriptografado mais o MIC.

           

Ilustração 9: Criptografia do CTR