MACEEC singularidad / clave única

0

802.1ae requiere que se envíe un nonce con cada trama Ethernet en la etiqueta MACSEC. El nonce de 96 bits se forma concatenando un campo fijo de 64 bits (basado en la dirección de origen MAC y el número de puerto) con un número de paquete de 32 bits. El número de paquete se incrementa para cada cuadro. Por lo tanto, los números de referencia para dos marcos sucesivos que pertenecen a la misma asociación segura se verían de la siguiente manera:

Frame # 1 {MAC SA, Número de puerto, PN}

Frame # 2 {MAC SA, Número de puerto, PN + 1}

Ahora los marcos están encriptados usando el modo AES-GCM. Por lo tanto, cada bloque de texto sin formato de 128 bits de cada mensaje se cifra mediante un único nonce. Por ejemplo:

El marco # 1, Bloque # 1 se cifra usando {MAC SA, Número de puerto, PN}

El marco # 1, Bloque # 2 se encripta utilizando {MAC SA, Número de puerto, PN + 1}

etc ...

El marco # 2, Bloque # 1 se cifra usando {MAC SA, Número de puerto, PN + 1}

El marco # 2, Bloque # 2 se cifra usando {MAC SA, Número de puerto, PN + 2}

etc ...

Parece que la misma combinación de teclas / teclas se reutiliza para diferentes bloques en marcos de Ethernet sucesivos.

Pero el modo AES-CTR advierte específicamente contra el uso de la misma combinación de teclas / teclas.

¿Qué me estoy perdiendo?

gracias

    
pregunta user20831 15.02.2013 - 21:27
fuente

1 respuesta

1

Si observa la especificación de GCM , verá en la página 15 que cuando el IV tiene una longitud exactamente de 96 bits, entonces el contador para el cifrado AES-CTR se inicializa en J 0 = IV || 0 31 || 1 , es decir, el contador de 128 bits se construye agregando 31 bits de valor 0, luego un bit de valor 1. Los incrementos sucesivos al realizar el cifrado CTR alterarán los bits en estos 32 bits bajos. Por lo tanto, no hay superposición siempre que el marco de Ethernet no supere los cuatro mil millones de bloques, es decir, 64 gigabytes ... y un marco de Ethernet es mucho más corto que eso.

Descripción alternativa: si un marco usa IV x , entonces el valor del contador para ese marco comienza en el valor 2 32 x +1 y subirá a 2 32 x + 94 (para una trama Ethernet de 1500 bytes, un poco menos de 94 bloques). El siguiente cuadro usará IV x + 1 , para un contador que comienza en 2 32 (x + 1) +1 = 2 32 x + 2 32 +1 , sin incurrir en ninguna superposición.

Nota: esto significa que sería bastante peligroso cifrar más de 64 gigabytes como una sola ejecución con GCM. Esto se establece explícitamente en la especificación, página 8: la longitud del texto sin formato no debe exceder los bits 2 39 -256 . Esto es más que suficiente porque, por definición , un modo de cifrado autenticado está destinado a proporcionar algunos garantías de integridad; por lo tanto, tiene sentido cuando los datos pueden ser alterados por el atacante; en consecuencia, el receptor de datos no lo utilizará hasta que haya verificado el MAC, lo que implica el almacenamiento en búfer de todo el "paquete". ¿Quién quiere almacenar 64 gigabytes de datos antes de poder comenzar su procesamiento? Cuando se usa GCM en TLS , el tamaño del búfer no superará los 17 kilobytes; y, en su caso, el tamaño máximo será el de un marco Ethernet, que alcanza un máximo de 9000 bytes incluso con marcos jumbo .

    
respondido por el Tom Leek 15.02.2013 - 21:51
fuente

Lea otras preguntas en las etiquetas