O processo de encapsulamento cifra os dados e acomoda-os de forma apropriada nos cabeçalhos para a transmissão. O encapsulamento de CCMP prover sigilo, integridade e previne reenvio de
quadros [Sankar et al. 2004].
O sigilo é alcançado pelo AES no modo CTR e pela proteção da chave, que garantem que alguém sem a chave não consiga ler a mensagem que foi transmitida. O CCM calcula um Message Integrity Check (MIC) que assegura a integridade dos dados. O MIC do CCM é diferente do TKIP, pois usa o AES no modo CBC-MAC e é executado sobre uma parte do cabeçalho MAC, o que impede que o cabeçalho MAC seja modificado durante a transmissão. O CCMP usa um contador de quadros incrementado, chamado PN, para evitar reenvio de quadros [Sankar et al. 2004].
Modo Contador com o protocolo CBC-MAC - CCMP
O WPA2 requer suporte ao AES usando o protocolo CCMP. Segundo [Chaplin et al. 2005] , um custo de aproximadamente 40 instruções/byte no software requer novo hardware nos pontos de acesso.
O protocolo CCMP foi desenvolvido para executar a tarefa equivalente a do TKIP. Ele prepara e fornece os dados para o AES cifrar. Por usar o cifrador AES que não necessita de uma chave por quadro, o esquema do CCMP se apresenta mais simples que o TKIP. A Figura 3.10 mostra o diagrama do funcionamento do CCMP segundo [Suriyajan 2006].
Figura 3.10: Esquema de encapsulamento do protocolo CCMP
O CCMP prepara os elementos necessários a criptografia AES/CCM, que são: um Dado Adi- cional de Autenticação (AAD), um número aleatório (nonce) e uma mensagem. O AAD inclui parte do cabeçalho MAC, enquanto o nonce é criado concatenando o campo de prioridade mais o endereço do emissor (A2) e um número de quadro (PN). O cabeçalho CCMP é construído da combinação do
PN e um KeyID, e tudo é concatenado para formar o texto a ser transmitido [Davies 2005].
O 802.11i inclui o CBC-MAC com AES que fornece uma integridade forte dos dados. O algo- ritmo CBC-MAC calcula um valor de 128 bits, e o WPA2 usa os 64 bits de ordem superior como MIC. O WPA2 criptografa o MIC junto com a mensagem no modo contador do AES [Davies 2005].
O MPUD do CCMP é similar ao usado pelo TKIP, como pode ser visto na Figura 3.11.
Figura 3.11: Formato do MPDU do CCMP
O tamanho do cabeçalho do CCMP é de oito octetos. O CCMP quebra o PN (Número do Quadro) em duas partes e coloca os dois octetos menos significativos no início do cabeçalho e os restantes no IV extendido, depois do identificador da chave. O PN é transmitido em aberto. Na seqüência, vêm os dados e o MIC, que são transmitidos cifrados [Sankar et al. 2004].
CBC-MAC do AES para calcular o MIC
O WPA2 usa o modo CBC-MAC para calcular o MIC e assim garantir a integridade da mensagem. O CBC-MAC cifra um bloco inicial de 128 bits com o AES e a chave de integridade de dados, produzindo um resultado de 128 bits (Resultado1). Depois é executada uma operação XOR entre Resultado1 e os primeiros 128 bits de dados para os quais o MIC está sendo calculado, o que produz um resultado de 128 bits (XResultado1). O XResultado1 é criptografado com o AES e a chave de integridade de dados, gerando o Resultado2. Um XOR entre Resultado2 e os 128 bits de dados seguintes é executado, e isso resulta no XResultado2. As duas últimas etapas se repetem para os blocos de 128 bits adicionais dos dados. Os 64 bits de ordem superior do resultado final são o MIC do WPA2. A Figura 3.12 mostra o esquema do CBC-MAC.
A Figura 3.13 mostra a entrada do CBC-MAC. O bloco inicial (128 bits) é mostrado na Figura 3.14. O cabeçalho MAC é o cabeçalho MAC 802.11 com os valores dos campos que podem ser
Figura 3.12: Esquema CBC-MAC do AES para calcular o MIC
alterados em trânsito definidos como 013. O cabeçalho CCMP tem 8 bytes para o número do quadro
de 48 bits e campos adicionais. Os bytes de preenchimento (definidos como 0) são adicionados para garantir que seja um número integral de blocos de 128 bits [Davies 2005]. Os dados são a parte de texto (mensagem a ser transmitida) não cifrada.
Figura 3.13: A entrada do CBC-MAC do AES para calcular o MIC.
Figura 3.14: Bloco inicial de 128 bits para o cálculo do MIC.
Modo Contador do AES para criptografar os dados
O WPA2 usa o AES no modo C-CTR para cifrar os dados. Primeiro o WPA2 cifra um contador ini- cial de 128 bits com o AES usando a chave de criptografia de dados, produzindo um resultado de 128 bits (Resultado1). Em seguida, é executada uma operação XOR entre Resultado1 e o primeiro bloco
13Alguns campos do cabeçalho MAC 802.11 podem ser alterados em trânsito, por algum roteador por exemplo, então
de 128 bits dos dados que estão sendo criptografados, resultando no primeiro bloco criptografado de 128 bits. Depois o contador é incrementado e criptografado com o AES usando a chave de crip- tografia de dados, o que produz o Resultado2. Em seguida, é executado um XOR entre Resultado2 e os 128 bits de dados seguintes e obtém-se o segundo bloco criptografado de 128 bits. O modo de contador do AES repete as duas últimas etapas para os blocos de 128 bits adicionais da men- sagem, até o bloco final. Para o bloco final, o modo de contador do AES executa o XOR do contador criptografado com os bits restantes, produzindo dados criptografados do mesmo comprimento que o último bloco de dados [Davies 2005]. A Figura 3.15 mostra o esquema do CCTR-AES.
Figura 3.15: Esquema do modo contador com o AES para cifragem dos dados
O valor inicial do contador do modo de contador do AES é mostrado em detalhe na Figura 3.16. O campo Flag (8 bits) é definido como 01011001, que é o mesmo valor de Flag usado para o cálculo do MIC, seguido do campo de Prioridade de 8 bits (reservado para finalidades futuras e definido como 0). Logo após, vem o endereço de origem do cabeçalho MAC 802.11 (48 bits) e o número do quadro do cabeçalho CCMP (48 bits). No final, aparece um campo Contador (16 bits) que é definido como 1 e será incrementado apenas se uma carga do 802.11 for fragmentada em cargas menores [Davies 2005].
Figura 3.16: Valor inicial do contador de 128 bits para o CCTR-AES.