Quelle est la différence entre SSL, TLS et HTTPS ?

Je m'embrouille avec les termes utilisés dans ce domaine. Que sont SSL, TLS et HTTPS ? Quelles sont les différences entre eux ?

Solution

TLS est le nouveau nom du protocole SSL. En d'autres termes, le protocole SSL est passé à la version 3.0 ; TLS 1.0 est "SSL 3.1&quot ;. Les versions de TLS actuellement définies comprennent TLS 1.1 et 1.2. Chaque nouvelle version ajoute quelques fonctionnalités et modifie certains détails internes. On dit parfois "SSL/TLS&quot ;.

HTTPS est HTTP-within-SSL/TLS. SSL (TLS) établit un tunnel sécurisé et bidirectionnel pour des données binaires arbitraires entre deux hôtes. HTTP est un protocole permettant d'envoyer des demandes et de recevoir des réponses, chaque demande et réponse étant constituée d'en-têtes détaillés et (éventuellement) d'un contenu. HTTP est conçu pour fonctionner sur un tunnel bidirectionnel pour des données binaires arbitraires ; lorsque ce tunnel est une connexion SSL/TLS, l'ensemble est appelé "HTTPS".

Pour expliquer les acronymes :

  • SSL" signifie "Secure Sockets Layer". Ce terme a été inventé par les inventeurs des premières versions du protocole, Netscape (la société a ensuite été rachetée par AOL).
  • &quot ;[TLS][1]&quot ; signifie "Transport Layer Security&quot ;. Le nom a été changé pour éviter tout problème juridique avec Netscape, afin que le protocole puisse être "ouvert et gratuit" (et publié en tant que [RFC][2]). Il laisse également entendre que le protocole fonctionne sur tout flux bidirectionnel d'octets, et pas seulement sur les sockets Internet.
  • &quot ;[HTTPS][3]&quot ; est censé signifier "HyperText Transfer Protocol Secure&quot ;, ce qui est grammaticalement incorrect. Personne, à l'exception des pédants qui s'ennuient à mourir, n'utilise jamais cette traduction ; "HTTPS&quot ; est plutôt considéré comme "HTTP avec un S qui signifie SSL&quot ;. D'autres acronymes de protocole ont été construits de la même manière, par exemple SMTPS, IMAPS, FTPS... tous étant un protocole nu qui a été "sécurisé" en l'exécutant dans un protocole SSL/TLS.

[1] : http://en.wikipedia.org/wiki/Transport_layer_security [2] : http://tools.ietf.org/html/rfc2246 [3] : http://en.wikipedia.org/wiki/Https

Commentaires (8)

SSL et TLS sont des protocoles qui visent à assurer la confidentialité et l'intégrité des données entre deux parties (voir [RFC 2246][1]), conçus pour fonctionner sur un protocole de communication fiable (généralement TCP). Bien que la spécification TLS ne parle pas de sockets, la conception de SSL/TLS a été faite de manière à ce que les applications puissent les utiliser presque comme des sockets TCP traditionnels, par exemple SSLSocket en Java étend Socket (il y a cependant de petites différences en termes d'utilisation). HTTPS est HTTP sur SSL/TLS, où la connexion SSL/TLS est d'abord établie, puis les données HTTP normales sont échangées sur cette connexion SSL/TLS. L'utilisation de SSL ou de TLS pour cela dépend de la configuration de votre navigateur et du serveur (il existe généralement une option permettant d'autoriser SSLv2, SSLv3 ou TLS 1.x). Les détails sur la façon dont HTTP et SSL/TLS forment HTTPS se trouvent dans [RFC 2818][2]. En ce qui concerne la différence entre SSL et TLS, vous pouvez être intéressé par ces deux réponses que j'ai écrites pour ces questions similaires sur StackOverflow et ServerFault :

  • [Différence entre SSL et TLS [Stackoverflow]][6].
  • [Quelles sont les différences exactes au niveau du protocole entre SSL et TLS ? [Serverfault]][7]

    On peut considérer TLSv1.0 comme SSLv3.1 (en fait, c'est ce qui se passe dans les enregistrements échangés). dans les enregistrements échangés). Il est tout simplement plus facile de comparer le système TLSv1.0 avec TLSv1.1 et TLSv1.2 car ils ont tous été édités au sein de l'IETF et suivent plus ou moins les mêmes règles. et suivent plus ou moins la même structure. SSLv3 étant édité par une institution différente (Netscape), cela rend un peu plus difficile de repérer les différences.

    Voici quelques différences, mais je doute de pouvoir les énumérer toutes :

    • Dans le message ClientHello (premier message envoyé par le client pour initier la prise de contact), la version est {3,0} pour SSLv3, {3,1} pour TLSv1.1. TLSv1.0 et {3,2} pour TLSv1.1.
    • Le ClientKeyExchange diffère. Le MAC/HMAC diffère (TLS utilise HMAC alors que SSL utilise une version antérieure de HMAC). La dérivation de la clé diffère. Le client peut envoyer des données d'application directement après avoir envoyé le message SSL/TLS Finished en SSLv3. En TLSv1, il doit attendre
    • le message Finished du serveur.
    • La liste des suites de chiffrement diffère (et certaines d'entre elles ont été renommées de SSL* à TLS*, en conservant le même numéro d'identification). Il existe également des différences concernant la nouvelle extension de renégociation. En général, plus la version de SSL/TLS est élevée, plus elle est sûre, à condition que vous choisissiez correctement vos suites de chiffrement (les versions supérieures de TLS permettent également d'utiliser des suites de chiffrement considérées comme meilleures). (SSLv2 est considéré comme peu sûr.) En outre, SSL ne relève pas de l'IETF. Par exemple, le [correctif de renégociation TLS a dû être adapté à SSLv3][3] (bien que les piles SSL/TLS aient dû être mises à jour de toute façon). Cette réponse peut également vous intéresser :
  • [Que se passe-t-il sur le fil lorsqu'une connexion TLS / LDAP ou TLS / HTTP est établie ? [Stackoverflow]] [8] Notez que certaines personnes opposent SSL et TLS comme étant la différence entre "SSL/TLS à la connexion&quot ; et "mise à niveau vers TLS&quot ; (après une certaine conversation en utilisant le protocole d'application). Bien que certaines de ces réponses aient été [relativement bien votées][4], c'est incorrect. Cette erreur est propagée par le fait que certaines applications, comme Microsoft Outlook, proposent deux options de configuration appelées "SSL&quot ; et "TLS&quot ; pour la configuration SMTP/IMAP alors qu'elles signifient en réalité "SSL/TLS à la connexion&quot ; et "mise à niveau vers TLS&quot ;. (Il en va de même pour la bibliothèque JavaMail, je crois). Les RFC qui parlent de STARTTLS ont été écrites lorsque TLS était déjà une RFC officielle, c&#8217est pourquoi elles ne parlent que de la mise à niveau de la connexion vers TLS. En pratique, si vous modifiez la configuration de votre client de messagerie pour le forcer à utiliser SSLv3 au lieu de TLS (ce que je ne recommande pas en général), il est toujours possible de passer à SSL/TLS en utilisant STARTTLS avec une connexion SSLv3, tout simplement parce qu&#8217il s&#8217agit plus du mode de fonctionnement que de la version de SSL/TLS et/ou des suites de chiffrement. Il existe également une variante de HTTP où la mise à niveau vers SSL/TLS est effectuée au sein du protocole HTTP (similaire à STARTTLS dans LDAP/SMTP). Cette variante est décrite dans la [RFC 2817][5]. Pour autant que je sache, cela n'est presque jamais utilisé (et ce n'est pas ce qui est utilisé par https:// dans les navigateurs). La partie la plus pertinente de cette RFC est la section sur CONNECT pour les serveurs mandataires HTTP (elle est utilisée par les serveurs mandataires HTTP pour relayer les connexions HTTPS). [1] : http://tools.ietf.org/html/rfc2246 [2] : http://tools.ietf.org/html/rfc2818 [3] : http://tools.ietf.org/html/rfc5746#section-4.5 [4] : https://serverfault.com/questions/64484/whats-the-difference-between-ssl-and-tls/64587#64587 [5] : http://tools.ietf.org/html/rfc2817 [6] : https://stackoverflow.com/questions/3690734/difference-between-ssl-tls [7] : https://serverfault.com/questions/178561/what-are-the-exact-protocol-level-differences-between-ssl-and-tls/179139#179139 [8] : https://stackoverflow.com/questions/3660798/what-happens-on-the-wire-when-a-tls-ldap-or-tls-http-connection-is-set-up/3661416#3661416
Commentaires (4)

SSL VS TLS

Les termes SSL et TLS sont souvent utilisés de manière interchangeable ou en conjonction l'un avec l'autre (TLS/SSL), mais l'un est en fait le prédécesseur de l'autre - SSL 3.0 a servi de base à TLS 1.0 qui, par conséquent, est parfois appelé SSL 3.1.

Qu'est-ce qui est le plus sécurisé : SSL ou TLS

En termes de sécurité, les deux sont considérés comme aussi sûrs l'un que l'autre.

La principale différence réside dans le fait que, alors que les connexions SSL commencent par être sécurisées et passent directement à des communications sécurisées, les connexions TLS commencent par un "bonjour" non sécurisé au serveur et ne passent à des communications sécurisées qu'après la réussite de la poignée de main entre le client et le serveur. Si la poignée de main TLS échoue pour une raison quelconque, la connexion n'est jamais créée.

(SSL et TLS vs HTTP)

Le protocole HTTP est utilisé pour demander et recevoir des données, tandis que le protocole https, dans lequel le 's&#39 ; n'est rien d'autre que du SSL sécurisé, permet de crypter la demande et la réception du protocole http, de sorte qu'aucun attaquant intermédiaire ne peut obtenir les données facilement.

Si ni SSL ni TLS ne sont utilisés avec HTTP

alors votre connexion avec le serveur web n'est pas cryptée et toutes les données sont envoyées en clair, et tout attaquant intermédiaire peut obtenir et visualiser ces données.

Il faut donc utiliser SSL ou TLS

les deux sont identiques mais TLS est plus extensible et espère obtenir plus de support dans le futur. et TLS est rétrocompatible.

Commentaires (3)