CCMP
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 29 de diciembre de 2016; las comprobaciones requieren
7 ediciones .
CCMP ( Modo de contador con protocolo de código de autenticación de mensajes de encadenamiento de bloques cifrados - protocolo de cifrado de bloques con inserción de imitación (MAC) y modo de encadenamiento de bloques y contadores ) es un protocolo de cifrado 802.11i creado para reemplazar TKIP , un protocolo de cifrado obligatorio en WPA y WEP , como opción más confiable. CCMP es una parte requerida del estándar WPA2 y una parte opcional del estándar WPA .
CCMP, al ser parte del estándar 802.11i , utiliza el algoritmo del Estándar de cifrado avanzado ( AES ). A diferencia de TKIP , la administración de claves y la integridad de los mensajes se manejan mediante un solo componente construido alrededor de AES que utiliza una clave de 128 bits, un bloque de 128 bits, siguiendo el estándar de cifrado FIPS-197 .
Historia
Se utilizó el protocolo CCMP con WPA2 , definido en el estándar IEEE 802.11i . IEEE 802.11i fue adoptado en junio de 2004 , y esta fecha puede considerarse la fecha de aparición del protocolo CCMP.
Descripción general de la arquitectura
El algoritmo CCMP se basa en el algoritmo de cifrado CCM AES. CCM utiliza el algoritmo CTR para la privacidad y el algoritmo CBC-MAC para la autenticación y la integridad de los datos. El CCM asegura la integridad tanto del área de datos del paquete MPDU , es decir, el paquete transmitido por la red, como de algunas partes del encabezado del paquete IEEE 802.11 .
Todo el procesamiento AES utilizado en CCMP utiliza AES con una clave de 128 bits y un bloque de 128 bits.
El modo CCM es un modo genérico que se puede utilizar con cualquier cifrado de bloque. El algoritmo CCM contiene dos parámetros (M y L) y CCMP utiliza los siguientes valores para ellos:
- M = 8 (debido al hecho de que el campo MAC es de 8 octetos [1] );
- L = 2 (indica que la longitud del campo es de 2 octetos, lo que debería ser suficiente para almacenar todas las longitudes posibles de los paquetes MPDU IEEE 802.11).
El estándar del algoritmo CCM requiere el uso de nuevas claves temporales para cada sesión recién creada. Además, el CCM requiere un valor Nonce único para cada cuadro, protegido por una clave temporal elegida específica. CCMP utiliza un número de paquete (PN) de 48 bits para esto.
Reutilizar una PN con la misma clave temporal anula todas las garantías de seguridad.
Cifrado CCMP
Estructura de paquetes del protocolo IEEE 802.11 usando encriptación basada en CCMP
El uso del procesamiento CCMP amplía el tamaño del paquete original en 16 octetos, de los cuales 8 octetos están ubicados en el encabezado del paquete MPDU y 8 octetos en el área MAC. El encabezado CCMP consta de las siguientes partes: PN, ExtIV e identificador de clave. PN es un número de paquete de 48 bits, que es una matriz de 6 bytes.
Algoritmo de cifrado CCMP
CCMP convierte el texto sin formato del paquete (texto sin formato en la figura) y lo encapsula en un paquete de datos utilizando el siguiente algoritmo.
- El número de paquete PN se incrementa en algún número positivo para obtener un número diferente para cada paquete de datos, de modo que el número de paquete nunca se repita dos veces cuando se utiliza la misma clave temporal. Vale la pena señalar que los paquetes de datos repetidos no cambian cuando se transmiten.
- Con los campos del encabezado del paquete, CCMP genera datos de autenticación adicionales (AAD) para el CCM. El algoritmo CCM proporciona cifrado para los campos incluidos en el AAD. Los campos de encabezado del paquete que pueden cambiar cuando se retransmiten no deben tenerse en cuenta al generar datos de autenticación adicionales y, por lo tanto, se consideran nulos al crear AAD.
- El campo Nonce está compuesto por el número de paquete, la dirección A2 y el campo de prioridad, que está reservado en la implementación actual, por lo que su valor debe establecerse en cero.
- El nuevo número de paquete PN y el ID de clave se colocan en el encabezado del paquete CCMP.
- Los datos de autenticación adicionales, el campo Nonce, los datos del paquete en sí, utilizando la clave temporal TK, están encriptados por el algoritmo CCM. Este paso se denomina procesamiento del originador de CCM.
Creación de un campo de datos de autenticación adicional
AAD se crea a partir del encabezado del paquete MPDU. AAD no incluye el campo de encabezado "Caducidad" porque este campo puede cambiar cuando los datos se transmiten a través de enlaces IEEE 802.11 (por ejemplo, cuando la velocidad cambia durante la retransmisión de paquetes). Por las mismas razones, varios subcampos en el campo "Control de marco" se consideran nulos. La creación de datos de autenticación adicionales se lleva a cabo de acuerdo con el siguiente algoritmo:
- se crea el campo FC - Frame Control, y los bits de Subtipo se consideran iguales a cero;
- se supone que el bit de repetición (bit 11) es cero;
- El bit PwrMgt (bit 12) se considera cero;
- El bit MoreData (bit 13) se considera cero;
- el bit de seguridad (bit 14) siempre es 1:
- A1 - Campo de dirección 1 de la MPDU,
- A2 - campo MPDU Dirección 2,
- A3 - campo MPDU Dirección 3;
- se crea el campo SC (el campo de secuencia de verificación del paquete MPDU), con el subcampo de número de secuencia (bits 4-15) considerado como cero. El subcampo del número de fragmento no cambia;
- A4 es el campo de dirección del paquete, si está presente en la MPDU;
- QC - QoS , si está presente. Este campo está reservado para uso futuro.
La longitud del AAD es de 22 octetos cuando faltan los campos A4 y QC, y de 28 octetos cuando el paquete contiene el campo A4.
Creación del nonce CCM
El campo nonce consta de los campos de prioridad, A2 y número de paquete, con el campo de prioridad reservado para uso futuro y debe establecerse en cero.
Esquema de descifrado CCMP
El esquema del algoritmo se muestra en la figura.
CCMP toma el texto cifrado del paquete como carga útil y descifra el paquete mediante la siguiente secuencia de pasos.
- Usando los datos del paquete, se crean los campos de datos de identificación adicionales AAD y nonce.
- El campo AAD se extrae del encabezado del paquete cifrado.
- El campo se crea a partir de los campos A2, el número de secuencia del paquete PN y el campo de prioridad.
- Para verificar la integridad del paquete, se extrae el campo MAC del mismo.
- Se descifra el paquete y se comprueba su integridad, para lo cual se utiliza directamente el texto del paquete cifrado, los valores de los datos de identificación adicionales, la clave temporal, los campos MAC y nonce.
- Luego, el paquete se vuelve a ensamblar, ya en forma descifrada, y se transfiere para su procesamiento.
- El proceso de descifrado evita que se transmitan paquetes duplicados al lado del usuario al comparar el número de secuencia del paquete de la PN con su contador de paquetes interno.
Notas
- ↑ En la mayoría de los casos, puedes pensar en un octeto como un byte , sin embargo, un byte puede no tener 8 bits en algunas arquitecturas.
Enlaces