Secondo wikipedia: http://en.wikipedia.org/wiki/Transport_Layer_Security
Sembra che TLS sostituisca SSL, ma la maggior parte dei siti web utilizza ancora SSL?
Secondo wikipedia: http://en.wikipedia.org/wiki/Transport_Layer_Security
Sembra che TLS sostituisca SSL, ma la maggior parte dei siti web utilizza ancora SSL?
Risposte:
In breve, TLSv1.0 è più o meno SSLv3.1. Puoi trovare maggiori dettagli in questa domanda su ServerFault .
La maggior parte dei siti Web supporta effettivamente sia SSLv3 che TLSv1.0 almeno, come indica questo studio (articolo di Lee, Malkin e Nahum: Cryptographic Strength of SSL / TLS Servers: Current and Recent Practices , IMC 2007) (collegamento ottenuto dall'elenco IETF TLS ). Più del 98% supporta TLSv1 +.
Penso che il motivo per cui SSLv3 sia ancora in uso fosse per il supporto legacy (sebbene la maggior parte dei browser supporti TLSv1 e alcuni TLSv1.1 o anche TLSv1.2 oggigiorno). Fino a non molto tempo fa, alcune distribuzioni avevano ancora SSLv2 (considerato non sicuro) per impostazione predefinita insieme alle altre.
(Potresti anche trovare interessante questa domanda , sebbene riguardi il modello di utilizzo di TLS piuttosto che SSL rispetto a TLS (potresti infatti avere lo stesso modello con SSL). Ciò non si applica comunque a HTTPS, poiché HTTPS utilizza SSL / TLS dall'inizio della connessione.)
Da http: // www. Thoughtcrime.org/blog/ssl-and-the-future-of-authenticity/
All'inizio degli anni '90, agli albori del World Wide Web, alcuni ingegneri di Netscape svilupparono un protocollo per effettuare richieste HTTP sicure e quello che inventarono fu chiamato SSL. Dato il corpo relativamente scarso di conoscenze sui protocolli sicuri all'epoca, nonché l' intensa pressione sotto la quale lavoravano tutti in Netscape, i loro sforzi possono essere visti solo come incredibilmente eroici. È sorprendente che SSL abbia resistito per tutto il tempo che ha, a differenza di una serie di altri protocolli della stessa annata. Da allora abbiamo sicuramente imparato molto da allora, ma il problema dei protocolli e delle API è che si torna indietro molto poco.
C'erano due importanti aggiornamenti al protocollo SSL, SSL 2 (1995) e SSL 3 (1996). Questi sono stati realizzati con cura per essere retrocompatibili, per facilitare l'adozione. Tuttavia la compatibilità con le versioni precedenti è un vincolo per un protocollo di sicurezza per il quale può significare vulnerabile all'indietro.
Così è stato deciso di rompere la compatibilità all'indietro e il nuovo protocollo denominato TLS 1.0 (1999). (Col senno di poi, sarebbe stato più chiaro chiamarlo TLS 4)
Le differenze tra questo protocollo e SSL 3.0 non sono evidenti, ma sono sufficientemente significative da non consentire l'interazione tra TLS 1.0 e SSL 3.0.
TLS è stato rivisto due volte, TLS 1.1 (2006) e TLS 1.2 (2008).
A partire dal 2015, tutte le versioni SSL sono danneggiate e non sicure (l'attacco POODLE) e i browser stanno rimuovendo il supporto. TLS 1.0 è onnipresente, ma solo il 60% dei siti supporta TLS 1.1 e 1.2 , un triste stato di cose.
Se sei interessato a questa roba, ti consiglio il discorso intelligente e divertente di Moxie Marlinspike su https://www.youtube.com/watch?v=Z7Wl2FW2TcA
TLS mantiene la retrocompatibilità con SSL e quindi il protocollo di comunicazione è quasi identico in tutte le versioni citate nel presente documento. Le due importanti differenze tra SSL v.3, TLS 1.0 e TLS 1.2 sono la funzione pseudo-casuale (PRF) e la funzione di hashing HMAC (SHA, MD5, handshake), che viene utilizzata per costruire un blocco di chiavi simmetriche per Crittografia dei dati dell'applicazione (chiavi server + chiavi client + IV). La principale differenza tra TLS 1.1 e TLS 1.2 è che 1.2 richiede l'uso di IV "esplicito" per proteggere dagli attacchi CBC, sebbene non siano necessarie modifiche alla PRF o al protocollo. TLS 1.2 PRF è specifico della suite di crittografia, il che significa che la PRF può essere negoziata durante l'handshake. SSL è stato originariamente sviluppato da Netscape Communications (storico) e successivamente mantenuto da Internet Engineering Task Force (IETF, attuale). TLS è gestito dal Network Working Group. Ecco le differenze tra le funzioni PRF HMAC in TLS:
TLS 1.0 e 1.1
PRF (segreto, etichetta, seme) = P_MD5 (S1, etichetta + seme) XOR P_SHA-1 (S2, etichetta + seme);
TLS 1.2
PRF (segreto, etichetta, seme) = P_hash (segreto, etichetta + seme)
"Se non è rotto, non toccarlo". SSL3 funziona bene nella maggior parte degli scenari (c'era un difetto fondamentale trovato nel protocollo SSL / TLS in ottobre, ma questo è un difetto delle applicazioni più che di un processo stesso), quindi gli sviluppatori non si affrettano ad aggiornare i loro moduli SSL. TLS offre una serie di utili estensioni e algoritmi di sicurezza, ma sono un'aggiunta pratica e non un must. Quindi TLS sulla maggior parte dei server rimane un'opzione. Se sia il server che il client lo supportano, verrà utilizzato.
Aggiornamento: nell '2016 SSL 3, e anche TLS fino a 1.2 risultano vulnerabili a vari attacchi e si consiglia la migrazione a TLS 1.2. Esistono anche attacchi alle implementazioni di TLS 1.2, sebbene dipendono dal server. TLS 1.3 è attualmente in fase di sviluppo. E ora TLS 1.2 è un must.
https://hpbn.co/transport-layer-security-tls/ è una buona introduzione
Il protocollo SSL è stato originariamente sviluppato in Netscape per abilitare la sicurezza delle transazioni e-commerce sul Web, che richiedeva la crittografia per proteggere i dati personali dei clienti, nonché garanzie di autenticazione e integrità per garantire una transazione sicura. Per ottenere ciò, il protocollo SSL è stato implementato a livello dell'applicazione, direttamente sopra il TCP (Figura 4-1), consentendo ai protocolli superiori (HTTP, e-mail, messaggistica istantanea e molti altri) di funzionare inalterato fornendo al contempo comunicare attraverso la rete.
Quando SSL viene utilizzato correttamente, un osservatore di terze parti può solo dedurre gli endpoint di connessione, il tipo di crittografia, nonché la frequenza e una quantità approssimativa di dati inviati, ma non può leggere o modificare i dati effettivi.
SSL 2.0 è stata la prima versione del protocollo rilasciata pubblicamente, ma è stata rapidamente sostituita da SSL 3.0 a causa di una serie di falle di sicurezza scoperte. Poiché il protocollo SSL era di proprietà di Netscape, IETF formò uno sforzo per standardizzare il protocollo, risultando in RFC 2246, che fu pubblicato nel gennaio 1999 e divenne noto come TLS 1.0. Da allora, l'IETF ha continuato a iterare il protocollo per affrontare i difetti di sicurezza, nonché per estendere le sue capacità: TLS 1.1 (RFC 2246) è stato pubblicato nell'aprile 2006, TLS 1.2 (RFC 5246) nell'agosto 2008 e il lavoro è ora in corso per definire TLS 1.3.