Cos'è l'intolleranza alla versione di TLS

27

Sto cercando di comprendere appieno il rapporto del test del server SSL Labs .

Qualcuno può spiegare il termine "intolleranza alla versione TLS"? Non riesco a trovare alcuna documentazione di questo termine, nemmeno sui forum dei laboratori SSL o sulla loro Guida alla valutazione dei server SSL .

Ad esempio, per il rapporto SSL di mijn.ing.nl (sito bancario olandese) afferma:

TLS version intolerance: TLS 1.3  TLS 1.98  TLS 2.98 

L'intolleranza suona male, ma è in questo caso? Sono anche inconsapevole delle versioni TLS 1.98 e 2.98.

    
posta Julian 04.09.2014 - 22:21
fonte

1 risposta

46

In TLS, il client annuncia la sua versione massima supportata . Quindi il server risponde con la versione del protocollo che verrà effettivamente utilizzata per la connessione.

Quindi, ad esempio, se un server conosce TLS 1.0 e 1.1 e il client annuncia "Supporto fino a TLS 1.2", il server, senza sapere cosa può essere TLS 1.2, può ancora rispondere : "bene, useremo 1.1".

In teoria, se un client dice "Suppongo fino a TLS 1.38" (che sarà codificato in ClientHello come due byte di valore 0x03 0x27), un server che supporta fino a TLS 1.2 non avrà alcun indizio di quali sono le versioni TLS 1.3, 1.4 ... a 1.38 (e, in effetti, tali versioni non esistono ancora, il massimo definito è TLS 1.2 adesso); tuttavia, quel server può ancora dire: "1.38 è più alto / più tardi di 1.2, quindi il client dovrebbe conoscere TLS 1.2" e procedi dicendo: "useremo 1.2".

In pratica, alcuni server sono scritti male e quando un client dice "TLS 1.3" rilasciano la connessione. Questo è un bug del server; ma molto diffuso. Questo bug è spesso designato dall'espressione "intolleranza alla versione". Alcuni di questi server buggy accettano alcuni tipi di versioni sconosciute, ma non tutte. Per esempio. alcuni server tollererebbero qualsiasi versione "1.x" per qualsiasi x nell'intervallo da 0 a 254, ma rifiuterebbero una versione "2.y".

A causa dell'intolleranza alla versione, i client (browser Web) devono già includere il codice di emergenza che tenta più volte. Per esempio. prova prima a connettersi con "1.2" in ClientHello , ma se la connessione fallisce, il client prova nuovamente con "1.0" come versione supportata massima. Questo è noioso e noioso. Un server che non tollera la versione 1.3 di TLS è un server problematico quando viene specificato TLS 1.3 e i browser iniziano a utilizzarlo.

    
risposta data 04.09.2014 - 22:38
fonte

Leggi altre domande sui tag