¿Qué es 'intolerancia a la versión TLS'?

27

Estoy tratando de entender completamente el informe de la prueba del servidor SSL Labs .

¿Puede alguien explicar el término 'intolerancia a la versión TLS'? No puedo encontrar ninguna documentación de este término, ni siquiera en los foros de laboratorios de SSL o en su Guía de clasificación de servidores SSL .

Por ejemplo, para informe SSL de mijn.ing.nl (sitio de la banca holandesa) dice:

TLS version intolerance: TLS 1.3  TLS 1.98  TLS 2.98 

La intolerancia suena mal, pero ¿es así en este caso? Tampoco conozco las versiones 1.98 y 2.98 de TLS.

    
pregunta Julian 04.09.2014 - 22:21
fuente

1 respuesta

45

En TLS, el cliente anuncia su versión máxima admitida . Luego, el servidor responde con la versión del protocolo que realmente se usará para la conexión.

Por ejemplo, si un servidor conoce TLS 1.0 y 1.1, y el cliente anuncia "Admito hasta TLS 1.2", el servidor, sin saber qué TLS 1.2 puede ser , todavía puede responder : "bien, usaremos 1.1".

Teóricamente, si un cliente dice "Admito hasta TLS 1.38" (que se codificará en ClientHello como dos bytes de valor 0x03 0x27), un servidor que admita hasta TLS 1.2 no tendrá ninguna pista de qué son las versiones 1.3, 1.4 ... a 1.38 de TLS (y, de hecho, dichas versiones aún no existen, el máximo definido es TLS 1.2 en este momento); sin embargo, ese servidor todavía puede decir: "1.38 es mayor / posterior a 1.2, por lo que el cliente debe conocer TLS 1.2" y continuar con la siguiente declaración: "usaremos 1.2".

En la práctica, algunos servidores están mal escritos, y cuando un cliente dice "TLS 1.3" se desconecta. Este es un error de servidor; Pero una muy extendida. Ese error a menudo es designado por la expresión "intolerancia de versión". Algunos de estos servidores con errores aceptan algunos tipos de versiones desconocidas, pero no todas. P.ej. algunos servidores tolerarían cualquier versión "1.x" para cualquier x en el rango de 0 a 254, pero rechazaría una versión "2.y".

Debido a la intolerancia a la versión, los clientes (navegador web) ya deben incluir un código de contingencia que lo intenta varias veces. P.ej. primero intente conectarse con "1.2" en ClientHello , pero si la conexión falla, el cliente intentará nuevamente con "1.0" como la versión máxima admitida. Esto es aburrido y torpe. Un servidor que no tolera TLS versión 1.3 es un servidor que será problemático cuando se especifique TLS 1.3 y los navegadores comiencen a usarlo.

    
respondido por el Thomas Pornin 04.09.2014 - 22:38
fuente

Lea otras preguntas en las etiquetas