El servidor TLS está haciendo algo que no entiendo.
- El protocolo de enlace TCP se ejecuta normalmente.
- SSL Client Hello se ejecuta normalmente.
- Hola del servidor SSL parece normal. Proporciona certificado, dice Servidor Hola Hecho.
- La disección muestra los problemas del cliente "Intercambio de claves del cliente, cambio de especificación de cifrado, mensaje de protocolo de enlace cifrado"
- La disección muestra problemas del servidor "Cambiar especificación de cifrado" y luego "Mensaje de protocolo de enlace cifrado"
El cliente ahora confirma y comienza a enviar datos. Pero los ACK del servidor envían una "alerta cifrada" y FIN sale.
Esto sucedió justo después de intercambiar certificados. El certificado presentado en el protocolo de enlace SSL es la nueva clave.
¿Alguien tiene alguna pista?
Respuesta1
Probablemente se deba a un problema de SNI con el cliente o con algún dispositivo intermedio, como un equilibrador de carga. El dispositivo de equilibrio de carga debe poder presentar el nombre del servidor al host backend como parte del saludo inicial del cliente. verhttps://en.m.wikipedia.org/wiki/Server_Name_Indication
Respuesta2
El paquete más importante es la "Alerta cifrada", ya que contiene el motivo por el que se cierra la conexión.
Parece ser un error de validación. Esto significa que el certificado no es confiable o no es válido. Pero la verdadera razón es enviar a través delProtocolo de alerta TLS
Respuesta3
Me encontré con un problema similar en pure-ftpd
modo TLS explícito (servidor FTPS).
En mi caso, sin embargo, huboNo Encrypted Alert
enviado desde el servidor; simplemente se encontró inmediatamente después del intercambio de claves ( Change Cipher Spec, Finished
mensaje del servidor → FIN del servidor). Próximo,el clienteenvió el Encrypted alert
código 0 de nivel 1 Close Notify
(que se espera, a diferencia del servidor FIN).
Esto sucedió solo con un único cliente específico (el firmware de un dispositivo) y no se reprodujo con otros clientes ftps.
No he desenterrado la raíz del problema, pero sospecho que llegamos a un puntoerror del servidor. pure-ftpd
utiliza un modelo de bifurcación por conexión similar a Apache; y observéel proceso hijo fallaen gdb (saliendo con el código -1), lo que, por supuesto, lleva al sistema operativo a cerrar el socket FD y enviar FIN.
Una razón más para decir que en mi caso es un error del servidor: el comportamiento dejó de reproducirse tan pronto como cambiamos el servidor ftps por una implementación diferente proftpd
.
No creo que esto coincida con el caso de OP (allí, el servidor finaliza la conexión de forma apropiada para TLS, con alerta cifrada), pero, sin embargo, es algo a considerar para cualquiera que acceda a esta página.