Nel protocollo , il client invia la versione massima che supporta, quindi sceglie il server. Le versioni attualmente definite sono 3.0, 3.1, 3.2 e 3.3 (SSL 3.1 è TLS 1.0, SSL 3.2 è TLS 1.1 e SSL 3.3 è TLS 1.2). Questo metodo di negoziazione della versione del protocollo presuppone che il client supporti un'intera gamma continua di versioni di protocollo, vale a dire tutte le versioni dall'inizio fino a quella che indica nella sua ClientHello
. Non c'è modo, in SSL / TLS standard per il client, ad esempio, dire che accetta TLS 1.0 e TLS 1.2 ma non TLS 1.1.
Poiché il server indica semplicemente quale versione utilizzerà, il server è libero nelle sue scelte di supporto. Quando un server è "configurato per supportare TLS 1.2", significa che il server supporterà la versione del protocollo, ma non dirà se supporterà anche le versioni precedenti.
Solitamente , i server che "supportano TLS 1.2" sono anche in grado di utilizzare TLS 1.1 e TLS 1.0. La maggior parte di questi usati per supporta SSL 3.0 ma questo supporto sta scomparendo perché SSL 3.0 ha un difetto di protocollo non risolvibile . Un'ulteriore tendenza è quella di guardare a TLS 1.0 con qualche sospetto (principalmente a causa dell'attacco BEAST, anche se non funziona più) e alcuni server stanno iniziando a smettere di supportarlo pure. Alcuni addirittura rifiutano TLS 1.1 perché tollerano solo le suite di crittografia "GCM", che non esistono in TLS prima di TLS 1.2.