¿Cómo determina un servidor qué versión de TLS usar?

¿Cómo determina un servidor qué versión de TLS usar?

Ahora entiendo que hay una negociación entre el cliente y el servidor... ¿Pero qué determina cómoservidor¿Elige la versión de TLS que utilizará al responder a una solicitud https? ¿Cómo podría, por ejemplo, restringir las conexiones a una versión mínima de TLS? Además, ¿existe una relación entre el certificado de seguridad utilizado por un servidor y la versión de TLS que utiliza el servidor? Estaba leyendo algunos documentos de AWS y parecía sugerir esto.

Totalmente novato aquí; Disculpe si esto es incorrecto por preguntar. No me importa un enlace para ir a leer, como respuesta.

Respuesta1

Pero, ¿qué determina cómo un servidor elige la versión de TLS que utilizará al responder a una solicitud https?

En el protocolo de enlace TLS, el cliente anuncia la mejor versión que puede hacer al servidor. Si el servidor admite versiones de protocolo iguales o inferiores a la versión del cliente, responderá con la mejor de ellas. Si el servidor no admite ninguno de estos, el protocolo de enlace fallará. Si el servidor responde con una versión que no es compatible con el cliente, el protocolo de enlace también fallará.

Además, ¿existe una relación entre el certificado de seguridad utilizado por un servidor y la versión de TLS que utiliza el servidor?

Casi no existe relación entre la versión del protocolo TLS y el certificado utilizado. Existe una pequeña diferencia entre las versiones obsoletas SSLv3 y TLS 1.x del protocolo en que solo TLS 1.x admite extensiones. Una extensión importante es server_name(SNI - Indicación del nombre del servidor) donde el cliente especifica el dominio al que quiere llegar. En los casos de varios certificados en la misma dirección IP, el servidor puede elegir el apropiado.

Respuesta2

No soy un experto en negociación de protocolos TLS, así que aquí hay una respuesta "aproximada" (Expertos, corríjanme si me equivoco) * Aquí solo estoy hablando de la versión TLS. No las cifras.

Escenario 1: su cliente probará la versión más alta de TLS que pueda. Digamos que su cliente admite 1.1 (ANTIGUO) y 1.2. Luego, el servidor lo conectará utilizando la versión más alta posible. Esperando que sea 1.2.

Escenario 2: Su cliente admite 1.2 o posterior y su servidor es una máquina antigua y no actualizada que solo conoce 1.1.

Escenario 3: Igual que el 2, pero al revés. La conexión tampoco funcionará.

Su cliente no podrá negociar la conexión. Se detendrá ahí.

Escenario 4: Su cliente admite las versiones 1.1 y 1.2, así como el servidor, pero digamos que el administrador del servidor configuró (digamos Apache HTTPD) para forzar la conexión solo usando 1.2, entonces su cliente usará 1.2.

Además, existe TLS 1.3... Pero esa sería la misma mentalidad. (idea)

información relacionada