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
ChangeCipherSpecyFinisheddel cliente antes de que envíe sus propios mensajesChangeCipherSpecyFinishedy 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
ChangeCipherSpecdel cliente que no llegó al cliente hizo que el servidor enviara sus datos de carga útil sin cifrar? ¿No debería el servidorChangeCipherSpecdeterminar el punto en el tiempo después del cual el servidor solo envía datos cifrados?