Il s'agit d'une plongée technique approfondie après cet aperç question a été posée.
Quelles sont les différences de protocole entre SSL et TLS?
Y a-t-il vraiment assez de différence pour justifier un changement de nom? (par opposition à l'appeler "SSLv4" ou SSLv5 pour les nouvelles versions de TLS)
SSLv2 et SSLv3 sont complètement différents (et les deux sont désormais considérés comme non sécurisés). SSLv3 et TLSv1.0 sont très similaires, mais présentent quelques différences.
Vous pouvez considérer TLSv1.0 comme SSLv3.1 (en fait, c'est ce qui se passe dans les enregistrements échangés). Il est juste plus facile de comparer les TLSv1. avec TLSv1.1 et TLSv1.2 car ils ont tous été modifiés au sein de l'IETF et suivent plus ou moins la même structure. SSLv3 étant édité par une autre institution (Netscape), il est un peu plus difficile de repérer les différences.
Voici quelques différences, mais je doute que je puisse les énumérer toutes:
ClientHello
(premier message envoyé par le client, pour initier la prise de contact), la version est {3,0}
pour SSLv3, {3,1}
pour TLSv1.0 et {3,2}
pour TLSv1.1.ClientKeyExchange
diffère.Finished
dans SSLv3. Dans TLSv1, il doit attendre le message Finished
du serveur.SSL_*
à TLS_*
, en gardant le même numéro d'identification).Je recommanderais fortement Livre d'Eric Rescorla - SSL et TLS: Conception et construction de systèmes sécurisés , Addison-Wesley, 2001 ISBN 0-201- 61598- , si vous voulez vraiment plus de détails. J'ai appris certains des points mentionnés ci-dessus dans ce livre. L'auteur mentionne occasionnellement les différences entre SSLv3 et TLS (v1.0 uniquement au moment où le livre a été écrit) lors de l'explication d'une partie du message SSL/TLS, mais vous avez besoin des explications générales sur ces messages pour avoir une chance de comprendre ( et il n'est pas approprié de copier/coller de ce livre ici).
Je vais simplement faire écho aux autres réponses, mais peut-être avec un accent légèrement différent.
Il y avait un protocole de sockets sécurisés qui était "détenu" par Netscape qui était appelé SSL version 2. Une nouvelle version avec une structure d'enregistrement différente et des améliorations de sécurité également "détenues" par Netscape a été publiée et appelée SSL version 3. A l'intérieur du protocole, plusieurs places est un champ de numéro de version binaire. Pour SSL version 3, ce champ est défini sur 0x03 0x00, c'est-à-dire la version 3.0. Ensuite, l'IETF a décidé de créer sa propre norme. Peut-être parce qu'il y avait des incertitudes sur la propriété intellectuelle concernant SSL, notamment si "SSL" était une marque Netscape, lorsque l'IETF a publié la prochaine version de ce protocole, il lui a donné son propre nom: Transport Layer Security protocol ou TLS version 1.0. Le format d'enregistrement et la structure globale sont identiques et cohérents avec SSL v3. Le numéro de version binaire est passé à 0x03 0x01, et comme d'autres l'ont noté, il y a eu quelques changements mineurs de crypto. Il existe depuis TLS version 1.1 et 1.2, pour lesquels les numéros de protocole internes sont 0x03 0x02 et 0x03 0x03.
Ignorant SSLv2, il s'agissait essentiellement d'un changement de nom et d'un réglage de protocole normal qui se produit lorsque les gens deviennent plus intelligents en matière de sécurité et de performances.
Fondamentalement, il ne s'agit que d'un changement de nom pour une version plus récente du protocole. Je crois que la raison principale était de le différencier de l'ancienne norme informelle principalement conçue par Netscape après qu'elle soit devenue un protocole officiel de suivi des normes IETF.
Comme cela a été dit dans les réponses à votre question précédente, cela ne signifie pas que SSLv3 et TLSv1.0 sont compatibles. Citant la RFC 2246:
les différences entre ce protocole et SSL 3.0 ne sont pas dramatiques, mais elles sont suffisamment importantes pour que TLS 1.0 et SSL 3.0 n'interagissent pas.
Je suppose que si vous voulez vraiment connaître les différences exactes dans les protocoles, vous devez lire les normes et vous comparer.
Le protocole de cryptage SSL est désormais nommé TLS, ce qui donne deux noms pour le même protocole. Le logiciel actuel négociera automatiquement TLS version 1 ou SSL version 3. Les humains, d'autre part, doivent décider entre l'utilisation du terme SSL plus reconnaissable par rapport à la désignation TLS officielle.
SSL est le prédécesseur de TLS.
TLS et SSL chiffrent les segments de connexions réseau au niveau de la couche application pour assurer un transit de bout en bout sécurisé au niveau de la couche transport.