SSL vs TLS: qual è la differenza?

()

fonte: https://www.globalsign.com/

A meno che tu non ci lavori regolarmente, ci sono buone probabilità che tu non conosca la differenza tra SSL (Secure Sockets Layers) e TLS (Transport Layer Security). E questo settore non ti fa molti favori riferendosi colloquialmente a TLS come SSL. Ci sono state quattro iterazioni del protocollo TLS. SSL è stato (o dovrebbe essere) completamente deprecato. Quindi, qual è la differenza tra SSL e TLS? 

Stai per scoprirlo.

Una breve storia di SSL e TLS

SSL e TLS sono entrambi protocolli crittografici che forniscono autenticazione e crittografia dei dati tra server, macchine e applicazioni che operano su una rete (ad esempio un client che si connette a un server web). In realtà, SSL ha solo 25 anni circa. Ma negli anni di Internet, questo è antico. La prima iterazione di SSL, versione 1.0, è stata sviluppata per la prima volta nel 1995 da Netscape ma non è mai stata rilasciata perché piena di gravi falle di sicurezza. SSL 2.0 non era molto migliore, quindi solo un anno dopo è stato rilasciato SSL 3.0. Ancora una volta, aveva gravi falle di sicurezza.

A quel punto, i ragazzi di Consensus Development ci hanno provato e hanno sviluppato TLS 1.0. TLS 1.0 era incredibilmente simile a SSL 3.0 – in effetti era basato su di esso – ma ancora abbastanza diverso da richiedere un downgrade prima che SSL 3.0 potesse essere utilizzato. Come hanno scritto i creatori del protocollo TLS :
 

“Le differenze tra questo protocollo e SSL 3.0 non sono drammatiche, ma sono abbastanza significative che TLS 1.0 e SSL 3.0 non interagiscono”.


Tuttavia, il downgrade a SSL 3.0 era ancora pericoloso, date le sue vulnerabilità note e sfruttabili. Tutto ciò che un utente malintenzionato doveva fare per prendere di mira un sito Web era eseguire il downgrade del protocollo a SSL 3.0. Da qui la nascita degli attacchi di downgrade. Questo è finito per essere il chiodo nella bara per TLS 1.0.

TLS 1.1 è uscito sette anni dopo, nel 2006, sostituito da TLS 1.2 nel 2008. Ciò ha danneggiato l’adozione di TLS 1.1 poiché molti siti Web sono stati semplicemente aggiornati da 1.0 a TLS 1.2. Ora siamo al TLS 1.3, che è stato finalizzato nel 2018 dopo 11 anni e quasi 30 bozze IETF. 

TLS 1.3 apporta miglioramenti significativi rispetto ai suoi predecessori e in questo momento i principali attori di Internet stanno spingendo per la sua proliferazione. Microsoft, Apple, Google, Mozilla e Cloudflare hanno tutti annunciato l’intenzione di deprecare sia TLS 1.0 che TLS 1.1 a gennaio 2020, rendendo TLS 1.2 e TLS 1.3 l’unico gioco in città. 

Ad ogni modo, abbiamo utilizzato TLS negli ultimi due decenni. A questo punto, se stai ancora usando SSL sei indietro di anni, vivendo metaforicamente in un’era desolata in cui le persone usano ancora le linee telefoniche per collegarsi a Internet. 

Evoluzione di SSL e TLS

Dovresti usare SSL o TLS?

Sia SSL 2.0 che 3.0 sono stati deprecati dalla Internet Engineering Task Force , nota anche come IETF, rispettivamente nel 2011 e nel 2015. Nel corso degli anni sono state e continuano ad essere scoperte vulnerabilità nei deprecati protocolli SSL (es . POODLE , DROWN ). La maggior parte dei browser moderni mostrerà un’esperienza utente degradata (ad es. riga attraverso il lucchetto o https nella barra degli URL o altri avvisi di sicurezza) quando incontrano un server Web che utilizza i vecchi protocolli. Per questi motivi, dovresti disabilitare SSL 2.0 e 3.0 nella configurazione del tuo server e, già che ci sei, andare avanti e deprecare anche TLS 1.0 e TLS 1.1. 
Secondo un recente sondaggio WatchGuard, quasi il 7% della Top 100.000 di Alexa supporta ancora SSL 2.0 e/o SSL 3.0. Quindi quei siti sono ancora là fuori in abbondanza.

I certificati non sono gli stessi dei protocolli

Prima che qualcuno inizi a preoccuparsi di dover sostituire i propri certificati SSL esistenti con certificati TLS, è importante notare che i certificati non dipendono dai protocolli. Cioè, non è necessario utilizzare un certificato TLS rispetto a un certificato SSL. Sebbene molti fornitori tendano a utilizzare la frase “Certificato SSL/TLS”, potrebbe essere più accurato chiamarli “Certificati per l’uso con SSL e TLS”, poiché i protocolli sono determinati dalla configurazione del server, non dai certificati stessi.

Questo vale anche per la forza della crittografia. Molti certificati pubblicizzano la forza della crittografia, ma in realtà sono le capacità del server e del client che lo determinano. All’inizio di ogni connessione, si verifica un processo chiamato handshake. Durante questo processo, il client autentica il certificato TLS del server ei due decidono su una suite di crittografia reciprocamente supportata. Le suite di crittografia sono una raccolta di algoritmi che lavorano tutti insieme per crittografare in modo sicuro la tua connessione con quel sito Web. Quando la suite di crittografia viene negoziata durante l’handshake, è allora che vengono determinati la versione del protocollo e gli algoritmi di supporto. Il tuo certificato facilita il processo. 

Storicamente ci sono stati quattro algoritmi in una suite di crittografia:

  • Scambio di chiavi
  • Firma digitale
  • Autenticazione del messaggio
  • Algoritmo di hashing

(Se questo sembra un po’ tra le erbacce, non lo sarà in un secondo quando discuteremo delle differenze tra SSL e TLS.)

Per ora, è probabile che continuerai a vedere i certificati denominati Certificati SSL perché a questo punto è il termine con cui più persone hanno familiarità. Stiamo iniziando a vedere un maggiore utilizzo del termine TLS nel settore e SSL/TLS è un compromesso comune fino a quando TLS non diventa più ampiamente accettato.

SSL e TLS sono crittograficamente diversi?

Sì. La differenza tra ciascuna versione del protocollo potrebbe non essere enorme, ma se si confrontasse SSL 2.0 con TLS 1.3 ci sarebbe un canyon tra di loro. Alla base, il concetto è lo stesso in ogni versione. È solo il modo in cui i diversi protocolli svolgono il compito di crittografare le connessioni che divergono. 

Ogni versione del protocollo appena rilasciata è arrivata e verrà fornita con i propri miglioramenti e/o funzionalità nuove/obsolete. SSL versione uno non è mai stata rilasciata, la versione due lo ha fatto ma presentava alcuni difetti principali, SSL versione 3 era una riscrittura della versione due (per correggere questi difetti, con scarso successo) e TLS versione 1 un miglioramento di SSL versione 3. Tra TLS 1.0 e 1.1, le modifiche sono state minori. TLS 1.2 ha apportato alcune modifiche significative e TLS 1.3 ha perfezionato e semplificato l’intero processo. 

Vale la pena notare qui che SSL e TLS si riferiscono semplicemente all’handshake che avviene tra un client e un server. L’handshake in realtà non esegue alcuna crittografia, ma concorda solo su un segreto condiviso e sul tipo di crittografia che verrà utilizzato. Un handshake SSL utilizza una porta per effettuare le sue connessioni. Questa è chiamata connessione esplicita. La porta 443 è la porta standard per HTTPS, ma ci sono 65.535 porte in tutto, con solo alcune dedicate a una funzione specifica. 

TLS, al contrario, inizia le sue connessioni tramite protocollo. Questa è chiamata connessione implicita. Il primo passo della stretta di mano – l’atto che la dà inizio – è chiamato un saluto del cliente. Con TLS questo viene inviato tramite un canale non sicuro e la connessione passa alla porta 443 (o alla porta che hai designato) una volta che l’handshake è iniziato.

Tradizionalmente, l’handshake ha comportato diversi roundtrip durante l’autenticazione e lo scambio di chiavi. Con SSL, questa latenza ha aggiunto alle connessioni. È qui che ha avuto origine il mito che SSL/HTTPS rallenti il ​​tuo sito web. Ogni nuova iterazione del protocollo ha funzionato per ridurre la latenza aggiunta dall’handshake. Con TLS 1.2, è stato dimostrato che HTTPS era effettivamente PIÙ VELOCE di HTTP grazie alla sua compatibilità con HTTP/2. 

TLS 1.3 ha ulteriormente perfezionato la stretta di mano. Ora può essere realizzato con un unico viaggio di andata e ritorno e consente la ripresa del viaggio di andata e ritorno Zero (0-RTT). Parte del modo in cui ciò è stato fatto è stato ridurre il numero di suite di crittografia supportate, da quattro algoritmi a due. 

Ora è semplicemente un algoritmo di crittografia di massa (simmetrico/di sessione) e un algoritmo di hashing. Le trattative per lo scambio delle chiavi e la firma digitale sono state rimosse. Lo scambio di chiavi viene ora eseguito utilizzando una famiglia Diffie-Hellman, che consente la perfetta segretezza in avanti per impostazione predefinita e consente al client e al server di fornire la propria parte del segreto condiviso alla prima interazione. Anche quella prima interazione è ora crittografata, chiudendo la porta a un possibile vettore di attacco. 

Disabilitazione di SSL 2.0 e 3.0 e TLS 1.0

Se non sei sicuro che i tuoi server supportino ancora i protocolli SSL, puoi verificare facilmente utilizzando il nostro test del server SSL . Per istruzioni su come disabilitare SSL 2.0 e 3.0 sui tipi di server più diffusi, inclusi Apache, NGINX e Tomcat, consulta il nostro articolo di supporto correlato. Se hai ancora bisogno di disabilitare TLS 1.0 , possiamo aiutarti anche in questo.

Quindi, qual è la differenza tra SSL e TLS? In una conversazione educata, non molto, e molte persone continuano a usare i termini SSL e TLS in modo intercambiabile. In termini di configurazione del server, tuttavia, ci sono alcune importanti differenze architettoniche e funzionali. E queste differenze sono lo spazio tra vulnerabilità, suite di crittografia obsolete, avvisi di sicurezza del browser e un server sicuro. Quando si tratta dei tuoi server, dovresti avere solo i protocolli TLS abilitati.

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?