Su pregunta no está clara, pero responderé lo que pueda entender. Pero primero, la referencia definitiva para los protocolos TLS son los RFC base 2246, 4346 y 5246, extendidos por otros RFC cuando se usan algunas características opcionales (como ciertas extensiones); Usted debe leer esos para preguntas tan detalladas.
El mensaje Finished
contiene el PRF de el secreto maestro, un indicador de dirección y un hash de los mensajes de reconocimiento (excluyendo HelloReq si se usa). No hay 'id de conexión' en SSL / TLS, pero hay un 'id de sesión' que es generalmente (no siempre) enviado por el servidor en ServerHello
; todo el ServerHello
junto con todos los demás mensajes de saludo de enlace, se incluye en el hash de saludo de saludo.
Los mensajes
Finished
se envían en cada dirección (cliente a servidor y servidor a cliente); la secuencia depende de si usted hace un apretón de manos completo o uno abreviado (reanudación). Los mensajes Finished
, como todos los mensajes que siguen a ChangeCipherSpec
, están encriptados y HMACed (o encriptados AEAD que no necesitan un HMAC) usando claves derivadas del secreto maestro más el cliente y el servidor. El descifrado y la autenticación correctos de Finished
esencialmente demuestran el acuerdo sobre el secreto maestro, y como debe ser el PRIMER mensaje cifrado, garantiza la detección de una falta de coincidencia antes de que los datos del usuario puedan estar expuestos.
La reproducción de un mensaje en la misma conexión se ignora o es una violación del protocolo y, por lo tanto, es inútil. Asumiré que su ataque previsto es reproducir un Finished
válido anteriormente como parte de un nuevo intento de conexión falsa de algún tipo. Si usa el mismo Finished
para un saludo diferente, no coincide y falla. Solo podría funcionar si podría volver a hacer el mismo apretón de manos, pero no puede hacerlo porque al menos el nonce, y en muchos casos también algunas entradas anteriores al maestro, son nuevamente seleccionadas por la otra parte (legítima) y diferentes.