TLS 1.2 compatibilità con le versioni precedenti.

1

La domanda è: cosa succede se il client supporta solo TLS 1.1 e il server ha abilitato TLS1.2 o SSL 3.0. Ritornerà quindi a SSL 3.0 perché il server non ha TLS 1.1 abilitato?

    
posta gsb005 09.09.2016 - 17:05
fonte

1 risposta

7

Nell'handshake SSL / TLS, le cose vanno così: il client invia una versione massima supportata ; quindi il server sceglie la versione che verrà utilizzata e la invia al client.

Il server, per definizione, non sceglierà una versione di protocollo che non supporta. Il server proverà a selezionare una versione che supporta e che è anche supportata dal client; tuttavia, il server ha solo informazioni parziali su ciò che il client supporta, dal momento che ha ricevuto solo una "versione supportata massima". Se il client dice "fino a TLS 1.1", il server sa che il client supporta TLS 1.1 (o meno rivendicazioni) ma non TLS 1.2; se il client supporta / accetta TLS 1.0 o versioni precedenti del protocollo è sconosciuto al server in quel punto.

Nella tua situazione prevista, se il server supporta solo TLS 1.2 e SSL 3.0, selezionerà solo TLS 1.2 o SSL 3.0. Se il client dice "Supporto fino a TLS 1.1", il server non seleziona TLS 1.2 (poiché, a questo punto, il server sa che il client non lo supporta); pertanto, sceglierà SSL 3.0, che è la sua unica altra scelta. Il client, dopo aver ricevuto quella risposta dal server, potrebbe benissimo dire "SSL 3.0, che tipo di server antico è? Perché non utilizzare gli strumenti di pietra focaia mentre ci siamo?" e rifiuta di comunicare ulteriormente.

Fondamentalmente, affinché l'handshake abbia successo, deve essere una versione di protocollo supportata sia dal client che dal server. Se il client supporta solo TLS 1.1 e il server supporta solo TLS 1.2 e SSL 3.0, allora non esiste una versione di protocollo comune e le comunicazioni non avverranno.

Ora ci possono essere strane situazioni in cui client e server non si accorgono di avere una versione supportata da entrambi. Ad esempio, il client, per qualche ragione, supporta TLS 1.0 e 1.2, ma non TLS 1.1; e il server supporta TLS 1.0 e 1.1, ma non TLS 1.2. In tale situazione, il client dichiarerà di supportare "fino a TLS 1.2" e il server, che conosce solo TLS 1.0 e 1.1, sceglierà TLS 1.1, che il client rifiuterà.

In pratica, tali situazioni non si verificano, perché le implementazioni non hanno "buchi" nella gamma di versioni di protocollo che supportano. Se un client o un server supporta versioni X e Y , supporta anche tutte le versioni tra X e Y . Ha molto poco senso supportare TLS 1.0 e TLS 1.2 ma non TLS 1.1.

    
risposta data 09.09.2016 - 17:39
fonte

Leggi altre domande sui tag