Integridade e criptografia de dados do Wi-Fi Protected Access 2
Publicado em: 29 de julho de 2005
Por The Cable Guy
Nesta página
Introdução
Recursos de criptografia do WPA2
Chaves temporais do WPA2
Processo de criptografia e descriptografia do WPA2
Para obter mais informações
Introdução
O WPA2 (Wi-Fi Protected Access 2), como descrito no artigo do The Cable Guy de maio de 2005, Wi-Fi Protected Access 2 (WPA2) Overview (em inglês), é uma certificação de produto disponível através da Wi-Fi Alliance, que certifica o equipamento sem fio quanto à compatibilidade com o padrão IEEE 802.11i.
O padrão IEEE 802.11i substitui formalmente o WEP (Wired Equivalent Privacy) no padrão IEEE 802.11 original com um modo específico do AES (Advanced Encryption Standard) conhecido como protocolo CBC-MAC (Counter Mode Cipher Block Chaining-Message Authentication Code) ou CCMP. O CCMP oferece confidencialidade (criptografia) e integridade dos dados. Este artigo descreve os detalhes da implementação WPA2 do CCMP do AES para criptografia, descriptografia e validação da integridade dos dados dos quadros sem fio 802.11.
Recursos de criptografia do WPA2
Como descrito em Wi-Fi Protected Access Data Encryption and Integrity (em inglês), o artigo do The Cable Guy de novembro de 2004, o WEP no padrão IEEE 802.11 original tinha pontos fracos na criptografia. A tabela a seguir mostra como o WPA2 aborda esses pontos fracos.
|
Ponto fraco do WEP
|
Como o ponto fraco é abordado pelo WPA2
|
|
O IV (vetor de inicialização) é muito pequeno
|
No CCMP do AES, o IV foi substituído por um campo de Número do pacote e duplicou em tamanho, para 48 bits.
|
|
Integridade dos dados fraca
|
O cálculo da soma de verificação criptografada pelo WEP foi substituído pelo algoritmo CBC-MAC do AES, que foi criado para fornecer uma integridade dos dados forte. O algoritmo CBC-MAC calcula um valor de 128 bits, e o WPA2 usa os 64 bits de ordem superior como um MIC (código de integridade da mensagem). O WPA2 criptografa o MIC com a criptografia do modo de contador do AES.
|
|
Usa a chave mestra em vez de uma chave derivada
|
Como o WPA e o protocolo TKIP (Temporal Key Integrity Protocol), o CCPM do AES usa um conjunto de chaves temporais derivadas de uma chave mestra e de outros valores. A chave mestra é derivada do processo de autenticação do 802.1X do EAP-TLS (Extensible Authentication Protocol-Transport Layer Security) ou do PEAP (Protected EAP).
|
|
Sem rechaveamento
|
O CCMP do AES faz o rechaveamento automaticamente para derivar novos conjuntos de chaves temporais.
|
|
Sem proteção contra reexecução
|
O CCMP do AES usa um campo de Número do pacote como contador para fornecer proteção contra reexecução.
|
Chaves temporais do WPA2
Ao contrário do WEP, que usa uma única chave para a criptografia de dados em unicast e normalmente uma chave separada para a criptografia de dados em multicast e de difusão, o WPA2 usa um conjunto de quatro chaves diferentes para cada par de AP sem fio/cliente sem fio (conhecidas como chaves temporais emparelhadas) e um conjunto de duas chaves diferentes para o tráfego multicast e de difusão.
O conjunto de chaves emparelhadas usadas para dados em unicast e EAP por mensagens de chave EAPOL da LAN consiste no seguinte:
-
Chave de criptografia de dados Uma chave de 128 bits usada para criptografar quadros em unicast.
-
Chave de integridade de dados Uma chave de 128 bits usada para calcular o MIC em quadros em unicast.
-
Chave de criptografia EAPOL Uma chave de 128 bits usada para criptografar mensagens da chave EAPOL.
-
Chave de integridade EAPOL Uma chave de 128 bits usada para calcular o MIC das mensagens da chave EAPOL.
O WPA2 deriva as chaves temporais emparelhadas usando um processo de handshake de quatro vias que é o mesmo do WPA. Para obter mais informações, consulte a seção "WPA Temporal Keys" do artigo Wi-Fi Protected Access Data Encryption and Integrity (em inglês).
Processo de criptografia e descriptografia do WPA2
O CCMP do AES usa o CBC-MAC para calcular o MIC e o modo de contador do AES para criptografar a carga do 802.11 e o MIC. Para calcular o valor de um MIC, o CBC-MAC do AES usa o seguinte processo:
-
Criptografa um bloco inicial de 128 bits com o AES e a chave de integridade de dados. Isso produz um resultado de 128 bits (Resultado1).
-
Executa uma operação OR (XOR) exclusiva entre Resultado1 e os 128 bits de dados seguintes pelos quais o MIC está sendo calculado. Isso produz um resultado de 128 bits (XResultado1).
-
Criptografa o XResultado1 com o AES e a chave de integridade de dados. Isso produz o Resultado2.
-
Executa um XOR entre Resultado2 e os 128 bits de dados seguintes. Isso produz o XResultado2.
As etapas 3-4 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 a seguir mostra o processo de cálculo do MIC.
Para calcular o MIC de um quadro IEEE 802.11, o WPA2 constrói o seguinte:
-
O bloco inicial é um bloco de 128 bits descrito posteriormente neste artigo.
-
O cabeçalho MAC é o cabeçalho MAC 802.11 com os valores dos campos que podem ser alterados em trânsito definidos como 0.
-
O cabeçalho CCMP tem 8 bytes e contém o campo Número do pacote de 48 bits e campos adicionais.
-
Os bytes de preenchimento (definidos como 0) são adicionados para garantir que a parte do bloco de dados inteiro até os dados de texto sem formatação seja um número integral de blocos de 128 bits.
-
Os dados são a parte de texto sem formatação (não criptografados) da carga do 802.11.
-
Os bytes de preenchimento (definidos como 0) são adicionados para garantir que a parte do bloco de dados do MIC que inclui os dados de texto sem formatação seja um número integral de blocos de 128 bits.
Ao contrário da integridade de dados do WEP e do WPA, o WPA2 fornece integridade de dados para o cabeçalho do 802.11 (exceto os campos alteráveis) e a carga do 802.11.
O bloco inicial para o cálculo do MIC consiste no seguinte:
-
O campo Sinalizador (8 bits) é definido como 01011001 e contém vários sinalizadores, como um sinalizador que indica que o MIC usado no quadro 802.11 tem 64 bits de comprimento.
-
O campo Prioridade (8 bits) é reservado para finalidades futuras e é definido como 0.
-
O Endereço de origem (48 bits) é do cabeçalho MAC 802.11.
-
O Número do pacote (48 bits) é do cabeçalho CCMP.
-
O comprimento dos dados de texto sem formatação em bytes (16 bits).
O algoritmo de criptografia do modo de contador do AES usa o seguinte processo:
-
Criptografa um contador inicial de 128 bits com o AES e a chave de criptografia de dados. Isso produz um resultado de 128 bits (Resultado1).
-
Executa uma operação OR (XOR) exclusiva entre Resultado1 e o primeiro bloco de 128 bits dos dados que estão sendo criptografados. Isso produz o primeiro bloco criptografado de 128 bits.
-
Incrementa o contador e o criptografa com o AES e a chave de criptografia de dados. Isso produz o Resultado2.
-
Executa um XOR entre Resultado2 e os 128 bits de dados seguintes. Isso produz o segundo bloco criptografado de 128 bits.
O modo de contador do AES repete as etapas 3-4 para os blocos de 128 bits adicionais de dados, 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. A figura a seguir mostra o processo do modo de contador do AES.
O valor inicial do contador do modo de contador do AES consiste no seguinte:
-
O campo Sinalizador (8 bits) é definido como 01011001, que é o mesmo valor de Sinalizador usado para o cálculo do MIC.
-
O campo Prioridade (8 bits) é reservado para finalidades futuras e é definido como 0.
-
O Endereço de origem (48 bits) é do cabeçalho MAC 802.11.
-
O Número do pacote (48 bits) é do cabeçalho CCMP.
-
O campo Contador (16 bits) é definido como 1 e será incrementado apenas se uma carga do 802.11 for fragmentada em cargas menores. Observe que este campo Contador não é o mesmo que o valor do contador de 128 bits usado no algoritmo de criptografia do modo de contador do AES.
Para criptografar um quadro de dados em unicast, o WPA2 usa o seguinte processo:
-
Insere o bloco inicial, o cabeçalho MAC 802.11, o cabeçalho CCMP, o comprimento dos dados e campos de preenchimento no algoritmo CBC-MAC com a chave de integridade de dados para produzir o MIC.
-
Insere o valor do contador inicial e da combinação dos dados com o MIC calculado no algoritmo de criptografia do modo de contador do AES com a chave de criptografia de dados para produzir os dados criptografados e o MIC.
-
Adiciona o cabeçalho CCMP contendo o Número do pacote à parte criptografada da carga do 802.11 e encapsula o resultado com o cabeçalho e as informações finais do 802.11.
A figura a seguir mostra o processo de criptografia do WPA2 para um quadro de dados em unicast.
Para descriptografar um quadro de dados em unicast e verificar a integridade dos dados, o WPA2 usa o seguinte processo:
-
Determina o valor do contador inicial a partir dos valores nos cabeçalhos do 802.11 e do CCMP.
-
Insere o valor do contador inicial e a parte criptografada da carga do 802.11 no algoritmo de descriptografia do modo de contador do AES com a chave de criptografia de dados para produzir os dados descriptografados e o MIC. Para a descriptografia, o modo de contador do AES executa o XOR do valor do contador criptografado com o bloco de dados criptografados, produzindo o bloco de dados descriptografados.
-
Insere o bloco inicial, o cabeçalho MAC 802.11, o cabeçalho CCMP, o comprimento dos dados e campos de preenchimento no algoritmo CBC-MAC do AES com a chave de integridade de dados para calcular o MIC.
-
Compara o valor calculado do MIC com o valor do MIC não criptografado. Se os valores do MIC não corresponderem, o WPA2 descartará os dados silenciosamente. Se os valores do MIC corresponderem, o WPA2 passará os dados para as camadas de rede superiores para processamento.
A figura a seguir mostra o processo de descriptografia do WPA2 para um quadro de dados em unicast.
Para obter mais informações
Para obter mais informações sobre a segurança de LAN sem fio WPA e 802.11, consulte os seguintes recursos:
Para enviar comentários sobre o conteúdo desta coluna, escreva para o Microsoft TechNet. Lembre-se de que este não é um alias de suporte e o recebimento de uma resposta não é garantido.
Para obter uma lista e informações adicionais sobre todas as colunas do The Cable Guy, clique aqui.