¿Cifrado de flujo autenticado recomendado para una sobrecarga mínima?

1

Estoy ejecutando mi protocolo TCP / IP asegurado cifrando cada paquete con AES128 / CBC, agrupando un HMAC SHA256 sobre ese paquete.

Esto genera una gran sobrecarga de espacio para paquetes pequeños, por lo que al principio estaba pensando en ejecutar AES en modo CTR y seguir usando el HMAC, pero sería mucho mejor ejecutar algún tipo de cifrado de flujo con autenticación integrada .

¿Cuáles son mis mejores opciones para mantener los gastos generales pequeños?

    
pregunta Nuoji 14.06.2013 - 12:11
fuente

2 respuestas

4

Utilice cualquier modo de cifrado autenticado.

Eso podría ser un cifrado de flujo con soporte incorporado para la autenticación (no es lo que recomendaría; todos los candidatos todavía están a la vanguardia), cualquier modo de cifrado autenticado estándar (por ejemplo, GCM, EAX, etc.); o use encrypt-then-MAC con AES-CTR y un MAC adecuado (por ejemplo, AES-CMAC o SHA256-HMAC). Cualquiera de esos estará bien. No nos ha dado ningún requisito que excluya a ninguno de ellos. Todos ellos le permiten seleccionar el tamaño de la etiqueta MAC, por lo que puede controlar la sobrecarga frente a la compensación de seguridad.

Pero en realidad, probablemente sería mejor usar TLS o DTLS; al menos, la mayoría de la gente probablemente lo estaría. (Sé que usted dijo que no desea hacerlo, pero no he escuchado ninguna razón técnica convincente para no usarlos).

    
respondido por el D.W. 17.06.2013 - 02:01
fuente
1

Suponiendo que su protocolo es con estado (es decir, solo necesita enviar los parámetros, como el nonce / IV, una vez), entonces la sobrecarga de usar un modo AE debería ser muy pequeña. CCM, por ejemplo, tiene un sobrecarga fija de tan poco como 4 bytes (depende del tamaño de MAC deseado) . Dado que el tamaño mínimo de un paquete TCP / IP es 40 bytes , es un aumento máximo de tamaño de 10% (para el mensaje vacío). Por el contrario, el SHA256 HMAC solo necesita 32 extra bytes .

Descargo de responsabilidad : Realmente no tengo la suficiente experiencia como para decir si esto es suficiente para lograr las propiedades de seguridad que necesita. En una respuesta a una de mis preguntas más tempranas (y más estúpidas), Tom Leek dijo:

  

Una conexión SSL abierta implica una sobrecarga muy leve en comparación con los datos no protegidos sin procesar: en la práctica, alrededor de 30 bytes adicionales por registro (depende del conjunto de cifrado), cada registro puede almacenar hasta 16384 bytes de datos, por lo que estamos hablando de menos de 0.2% de aumento de tamaño, y obtendría eso con cualquier otro protocolo que garantice la confidencialidad y la integridad de todos modos.

Dado que un modo AE debe proporcionar "confidencialidad, integridad y autenticidad", entonces algo debe estar mal aquí (¿olvidé algo que debe enviarse además del texto cifrado en cada mensaje? ¿o es debido al requisito de "estado"? )

    
respondido por el mgibsonbr 14.06.2013 - 15:52
fuente

Lea otras preguntas en las etiquetas