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
yFinished
del cliente antes de que envíe sus propios mensajesChangeCipherSpec
yFinished
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 servidorChangeCipherSpec
determinar el punto en el tiempo después del cual el servidor solo envía datos cifrados?