Chrome interrumpió la conexión TLS después del servidor recibido ChangeCipherSpec

3

Me encontré con un extraño problema: la conexión TLS siempre es interrumpida por Chrome después de que el servidor ChangeCipherSpec recibió. La secuencia es la siguiente:

  Client                     Server
  SYN-->              
                          <--SYN, ACK
  ACK-->
  ClientHello-->
                          <--ServerHello, Certificate
  ChangeCipherSpec-->
                          <--ChangeCipherSpec
  FIN-->
                          <--ACK
                          <--FIN
  ACK-->

¿Por qué se envía FIN en lugar de Datos de la aplicación ?

    
pregunta jacky 16.08.2013 - 14:17
fuente

1 respuesta

2

Tu secuencia es rara. Cuando el cliente envía el ClientHello , entonces el servidor responderá con un ServerHello , y luego:

  • el cliente y el servidor reutilizan una sesión existente y realizan el "protocolo de intercambio abreviado", en cuyo caso el servidor envía su mensaje ChangeCipherSpec y luego un mensaje Finished ;
  • o el cliente y el servidor no no reutilizan una sesión existente, en cuyo caso el servidor debe enviar su mensaje Certificate y un ServerHelloDone , en cuyo caso el cliente enviará un ClientKeyExchange , luego un mensaje de ChangeCipherSpec y Finished .

Consulte esta respuesta para obtener una descripción de los protocolos SSL.

En cualquier caso, si observa un mensaje Certificate desde el servidor, este no es un protocolo de enlace abreviado, y debería haber al menos un ServerHelloDone del servidor y un ClientKeyExchange del cliente. La conclusión lógica sería que su herramienta de captura de red no ve todo el tráfico. Por lo tanto, puede pasar por alto los registros de "datos de la aplicación" que espera.

    
respondido por el Thomas Pornin 16.08.2013 - 15:07
fuente

Lea otras preguntas en las etiquetas