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.