¿Cómo se puede verificar la intolerancia a un protocolo de enlace remoto en un terminal remoto?
Si alguien conoce un comando de openssl o no utiliza openssl, por favor sugiéralo.
Por favor, no sugiera el uso de ssllabs.com.
La intolerancia al protocolo largo significa que el servidor no puede manejar ClientHello con más de 255 bytes (o en el caso de F5: más de 255 y menos de 513 bytes). Puede simular dichos handshakes, por ejemplo, con openssl s_client
especificando tantos cifrados como sean necesarios para alcanzar este tamaño. Por ejemplo me sale
$ openssl s_client -connect google.com:443 -servername google.com -cipher ALL -debug
CONNECTED(00000003)
write to 0xe1b9c0 [0xe1ba40] (354 bytes => 354 (0x162))
...
Esto significa que el registro SSL inicial (es decir, el ClientHello) tenía un tamaño de 354 bytes, ya que se incluyen muchos cifrados. Esto es claramente más de 255 bytes y si obtiene una conexión exitosa con el servidor con esto, entonces la intolerancia al intercambio no es un problema. Si la conexión falla, puede deberse a una larga intolerancia al apretón de manos, pero también puede tener diferentes razones. En el caso de F5, el síntoma fue que la conexión simplemente se colgó, es decir, no hubo respuesta del servidor, pero tampoco hubo un cierre inmediato de la conexión TCP.
Tenga en cuenta que el tamaño real de ClientHello varía según el nombre del servidor (argumento -servername
) y los cifrados disponibles en su versión de OpenSSL y quizás algunas extensiones agregadas.