Preguntas sobre el proceso de negociación de TLS

5

Estoy tratando de entender cómo funciona TLS. Suponiendo que tengo un cliente java que usa TLSv1 para comunicarse con el servidor que admite TLSv1.2, ¿puede el cliente comunicarse con el servidor con éxito?

Cuando un servidor admite TLSv1.2, ¿significa esto que puede aceptar conexiones que son TLSv1, TLSv1.1 y TLSv1.2 o solo acepta TLSv1.2?

    
pregunta arjunj 11.11.2015 - 16:35
fuente

2 respuestas

8

Un servidor generalmente no está configurado para soportar solo una versión. El servidor se puede configurar para aceptar todas las versiones, incluso cosas más bajas como SSLv3. Durante la conexión inicial entre el cliente y el servidor, negociarán y determinarán la versión de protocolo más alta que ambos admiten.

Dicho esto, si un servidor solo acepta 1.2 y el cliente solo conoce 1.0, no podrá negociar una conexión.

    
respondido por el multithr3at3d 11.11.2015 - 16:41
fuente
6

En el protocolo , el cliente envía la versión maximum que admite, luego el servidor elige. Las versiones actualmente definidas son 3.0, 3.1, 3.2 y 3.3 (SSL 3.1 es TLS 1.0, SSL 3.2 es TLS 1.1 y SSL 3.3 es TLS 1.2). Este método de negociación de la versión del protocolo supone que el cliente admite un rango completo y continuo de versiones de protocolo, es decir, todas las versiones desde el principio de los tiempos hasta la que se indica en su ClientHello . No hay forma, en SSL / TLS estándar para que el cliente diga, por ejemplo, que acepta TLS 1.0 y TLS. 1.2 pero no TLS 1.1.

Dado que el servidor simplemente indica qué versión utilizará, entonces el servidor es libre en sus opciones de soporte. Cuando un servidor está "configurado para admitir TLS 1.2", significa que el servidor admitirá esa versión del protocolo, pero no dice si admitirá también las versiones anteriores.

Generalmente , los servidores que "admiten TLS 1.2" también pueden usar TLS 1.1 y TLS 1.0. La mayoría de ellos también solía admitir SSL 3.0, pero esta compatibilidad está desapareciendo porque SSL 3.0 tiene un defecto de protocolo no corregible . Otra tendencia es mirar a TLS 1.0 con cierta sospecha (principalmente debido al ataque BEAST, aunque ya no funciona) y algunos servidores también están empezando a dejar de admitirlo. Algunos incluso rechazan TLS 1.1 porque toleran solo los conjuntos de cifrado "GCM", que no existen en TLS antes de TLS 1.2.

    
respondido por el Thomas Pornin 11.11.2015 - 17:27
fuente

Lea otras preguntas en las etiquetas