Estoy escribiendo software de servidor de pila completa y he estado investigando ataques de CRIME y su relación con la compresión del encabezado SPDY cuando estoy implementando los códecs del lado del servidor para este momento.
La conclusión parece ser que la compresión y el cifrado no deberían mezclarse.
Habiendo examinado CRIME y BREACH. Me pregunto si los siguientes métodos son viables para deshabilitar TODOS los tipos de ataques de "trabajo inteligente" en flujos de datos comprimidos y encriptados (en el lado del servidor)
1) Limitación de velocidad: como se sugiere en el sitio de BREACH. Cualquier cliente que bombardee un servidor con una solicitud de más de 100 por segundo está destinado a ser malintencionado cuando las páginas de sus sitios solo ofrecen un máximo de X (un solo dígito / dos dígitos bajos) por solicitud.
2) Datos dinámicos: tanto CRIME como BREACH (y sus derivados) parecen depender de un sondeo repetido y asumen que la posición de los datos no cambia. ¿Qué sucede si tanto el encabezado como el cuerpo de HTTP se barajan según la respuesta del servidor? ¿Combinado con datos ficticios aleatorios de pequeña longitud variable inyectados en el cuerpo y el encabezado? ¿Puede esto deshabilitar efectivamente todos estos ataques con las características de CRIME y BREACH?
Gracias por tu tiempo.
EDIT 1: debo señalar que me estoy refiriendo específicamente a flujos de datos dentro del protocolo HTTP (es decir, compresión HTTP y compresión de encabezado SPDY) y no a compresión SSL / TLS.
EDIT 2: la solución de mitigación de ataques que estoy tratando de lograr / sugerir está en todos los posibles ataques de fuga de información de "compresión + encriptación", CRIME y BREACH solo pueden ser ejemplos recientes.
EDIT 3: La PUNTO DE INTERÉS parece sugerir longitud variable El relleno no es una mitigación válida. Sin embargo, no parece considerar la combinación de una estructura de mensajes aleatorizada + el relleno aleatorio puede crear una combinación infinita ( en teoría ) de salidas no confiables, eliminando así cualquier correlación entre la longitud de salida comprimida y encriptada a la significado real del mensaje.