¿Por qué funcionó ChangeChiperSpec Drop?

1

Aparentemente, en el pasado, un hombre en el medio podía vencer la seguridad (confidencialidad, para ser precisos) de TLS simplemente suprimiendo el mensaje ChangeCipherSpec .

Se llama "ChangeCipherSpec Drop" y, desafortunadamente, solo pude encontrar muy poca información al respecto en línea.

Algunas fuentes dijeron que el atacante simplemente eliminaría el mensaje ChangeCipherSpec , otras fueron menos precisas al respecto, y este gráfico lo encontré here muestra tanto el mensaje ChangeCipherSpec como el mensaje Finished cruzado.

Mis preguntas son:

  • ¿Por qué el servidor envió datos de carga útil? ¿No se supone que el servidor espere hasta que haya recibido los mensajes ChangeCipherSpec y Finished del cliente antes de que envíe sus propios mensajes ChangeCipherSpec y Finished y luego solo envíe datos de carga útil?
  • ¿Cómo se dispara esto? Se espera que haya que pasar el tiempo entre el último mensaje del servidor de la primera mitad del establecimiento de la conexión ( ServerHelloDone ) y el primer mensaje del servidor de la segunda mitad del establecimiento de la conexión. Un tiempo completo de ida y vuelta, incluso. Cómo el servidor no solo comienza a enviar datos de carga útil de inmediato cada vez. ¿Hay un tiempo de espera realmente extraño?
  • ¿Cómo el ChangeCipherSpec del cliente que no llegó al cliente hizo que el servidor enviara sus datos de carga útil sin cifrar? ¿No debería el servidor ChangeCipherSpec determinar el punto en el tiempo después del cual el servidor solo envía datos cifrados?
pregunta UTF-8 08.10.2017 - 20:07
fuente

1 respuesta

3

El ataque se describe en Análisis del protocolo SSL 3.0 de David Wagner y Bruce Schneier en la sección "4.3 Eliminación del mensaje de especificación de cifrado de cambio". En resumen:

  • El ataque funciona eliminando el mensaje ChangeCipherSpec (pero no el mensaje finalizado). Esto funciona debido a que el MAC (mensaje de Finalización) no protege el mensaje de Cambio de Cifrado (existencia y contenido del).
  • El ataque funciona solo cuando se usa un cifrado que no proporciona o solo un cifrado muy débil, es decir, el cifrado del mensaje finalizado debe ser ninguno o lo suficientemente débil para romperlo en tiempo real.
  • El idioma en TLS 1.0 deja más claro que no debería haber ningún mensaje finalizado sin el cambio de la especificación de cifrado.

Para más detalles vea el documento.

    
respondido por el Steffen Ullrich 08.10.2017 - 20:29
fuente

Lea otras preguntas en las etiquetas