Astuces pour les professionnels du web

Quelle est la différence entre certificat SSL et TLS ?

Gandi-SSL

Désormais, le protocole HTTPS est bien plus utilisé que sa version non sécurisée, le HTTP. Le petit cadenas vert qui s’affiche à côté d’une adresse web HTTPS pour indiquer que le site est sûr et que vous pouvez lui faire confiance est presque devenu un standard des sites web que vous visitez.

Cette démocratisation s’est faite grâce aux efforts de ceux qui se sont investis pour rendre le HTTPS omniprésent. Tout cela est possible grâce à un petit document électronique : le certificat de clé publique. Il est le graal de tout propriétaire ou administrateur de site qui souhaite mettre en œuvre le HTTPS.

Ce certificat était autrefois largement connu sous le nom de certificat SSL. Mais aujourd’hui, il est aussi courant d’entendre parler de certificat TLS, et le protocole qui l’utilise est aussi bien désigné SSL ou TLS.

Alors, qu’en est-il ? Qu’est-ce que SSL ? Qu’est-ce que TLS ? Et pourquoi cette confusion entre les deux ?

Qu’est-ce qu’un certificat ?

Commençons par prendre un peu de recul et expliquer ce qu’est un certificat cryptographique. Si vous avez déjà utilisé un code secret dans lequel vous remplaciez les lettres par des chiffres ou dans lequel vous attribuiez une lettre de l’alphabet différente à chaque lettre, puis utilisiez une clé pour coder et décoder les messages, alors la cryptographie vous est une notion familière.

Plus précisément, la cryptographie à clé publique utilise des mathématiques compliquées (sur lesquelles nous n’allons pas nous attarder) pour créer une clé partagée entre deux parties et la partager sur l’internet ouvert de manière à ce que seules les deux parties qui l’ont créée puissent décoder les messages envoyés à l’aide de cette clé.

Pour que cela fonctionne, la clé partagée doit elle-même être signée de manière cryptographique, et un certificat de clé publique est utilisé pour signer cette clé. La fonction remplie par le certificat est donc de confirmer que la machine qui lance un échange d’informations chiffrées ne ment pas sur le fait qu’elle représente réellement un nom de domaine ou une organisation.

Les certificats sont délivrés de manière hiérarchique. Un petit nombre d' »autorités de certification » (aussi connu sous le nom de CA) émettent de nouveaux certificats. Lorsqu’elles émettent un certificat, ces autorités de certification se portent garantes du propriétaire du certificat. Pour déterminer si le demandeur d’un certificat est légitime, les CA vérifient que le demandeur a le contrôle du nom de domaine pour lequel le certificat est émis.

Comment savoir quelle autorité de certification a émis un certificat?

Pour ce faire, les autorités de certification ont recourt à trois méthodes :

  1. Validation du contrôle de domaine (DCV) via le DNS
    Il s’agit de la forme la plus courante de validation du contrôle de domaine. Le CA fournit au demandeur d’un certificat un enregistrement DNS qu’il doit ajouter à son fichier de zone DNS. Une fois que le CA a vérifié que l’enregistrement a été ajouté, elle émet le certificat.
  2. Validation du contrôle du domaine par e-mail
    L’autorité de certification envoie un e-mail à l’adresse admin@example.com (où « exemple.com » est remplacé par le nom de domaine à valider) avec un lien à utiliser pour valider le domaine. Une fois que la page liée est visitée, le CA émet le certificat.
  3. Validation du contrôle du domaine via le fichier
    L’autorité de certification fournit un fichier texte (avec l’extension .txt) que le demandeur du certificat télécharge sur le serveur vers lequel son domaine pointe. Ensuite, une fois qu’elle peut vérifier que le fichier texte est présent, elle délivre le certificat.

Il s’agit d’établir ce que l’on appelle une « chaîne de confiance », qui permet aux internautes d’avoir la certitude que les informations sensibles qu’ils saisissent sur les sites web utilisant le protocole HTTPS seront sécurisées et ne pourront pas être interceptées par un tiers mal intentionné. Sans cette « chaîne de confiance », le e-commerce et les espaces privés en ligne tels que nous les connaissons n’auraient jamais été possibles.

Lorsque vous ouvrez un navigateur et que vous vous rendez sur un site web protégé par HTTPS, votre navigateur vérifie la « chaîne de confiance » établie par le certificat couvrant le nom de domaine en question fourni par le site web que vous visitez. C’est ce qui permet la première étape de l’établissement d’une connexion HTTPS – le « handshake », le départ d’une connexion SSL ou TLS, au cours duquel des données chiffrées peuvent être échangées librement entre deux applications (votre navigateur et un site web par exemple) sur Internet.

C’est ainsi que fonctionnent les certificats SSL ou TLS. Mais pour comprendre la différence entre SSL et TLS, nous devons nous attarder sur l’histoire de SSL et TLS.

Comment SSL a-t-il été créé ?

Bien que la préhistoire de SSL remonte au milieu des années 80, les protocoles SSL originaux ont été développés par Netscape Communications. Ils ont appelé ces protocoles Secure Sockets Layer (ou SSL), un nom qui fait référence aux deux extrémités d’un échange particulier d’informations sur un réseau.

La première version de SSL, la version 1.0, contenait trop de failles de sécurité pour être publiée. Mais en 1995,  SSL 2.0 a été publiée et livrée avec leur navigateur Internet phare, Netscape Navigator.

La guerre des navigateurs

Les années 1990 ont vu la première grande bataille de ce que l’on appelle aujourd’hui la « guerre des navigateurs ». Il s’agit de la concurrence intense et de la lutte pour la domination entre les développeurs de différents logiciels de navigation sur Internet. Au cours de ce premier round, Netscape Navigator, qui domine le marché, a été défié par Internet Explorer de Microsoft.

Le SSL était un avantage clé de Netscape sur Microsoft, mais il présentait néanmoins quelques failles de sécurité.

Il n’a pas fallu longtemps pour que Microsoft développe son propre protocole de sécurité dérivé de SSL 2.0 qui corrigeait ces failles, appelé Private Communications Technology, ou PCT, pour concurrencer le SSL de Netscape.

Pour ne pas être en reste, Netscape a complètement remanié SSL et a publié une nouvelle version – SSL 3.0.

La naissance de TLS

L’existence de protocoles propriétaires concurrents concernant la sécurité de l’internet aurait pour effet de rendre l’internet moins sûr et obligerait les sites web à mettre en œuvre plusieurs normes de sécurité pour être compatibles avec tous les navigateurs web.

Ainsi, de nombreux développeurs qui avaient travaillé sur le protocole SSL original ont élaboré une proposition pour l’Internet Engineering Task Force, l’organisme par lequel les protocoles et l’architecture standard d’Internet sont proposés, affinés et publiés en tant que normes à utiliser et à appliquer de manière universelle.

La proposition consistait essentiellement à faire de SSL 3.0 une norme Internet. Avec quelques changements mineurs, ils ont rebaptisé SSL Transport Layer Security, ou TLS, une référence à la « couche » réseau que TLS vient sécuriser.

Par essence, TLS est donc une sorte de rebranding de SSL. En raison de la guerre des navigateurs, les ingénieurs qui ont travaillé sur ce projet voulaient qu’il soit au moins superficiellement distinct du protocole initialement développé sous les auspices de Netscape, même si TLS 1.0 était essentiellement SSL 3.1, mais un protocole que Microsoft pouvait accepter et utiliser pour Internet Explorer.

Depuis, TLS a été amélioré à plusieurs reprises, et la version actuelle est TLS 1.3. Pour sa part, même si TLS 1.0 est sorti en 1999, SSL 3.0 n’a été déprécié qu’en 2015 après qu’en 2014, il a été jugé vulnérable aux attaques POODLE.

Certificat SSL ou TLS : lequel est correct ?

Techniquement parlant, TLS est le terme (et le protocole) correct à utiliser puisque toutes les versions de SSL sont maintenant officiellement dépréciées. Mais vous continuerez à entendre et à voir des références aux certificats SSL, et le terme « certificat SSL » est toujours un mot clé bien référencé dans les moteurs de recherche.

La raison principale en est que les termes « SSL » et « certificat SSL » sont devenus bien plus populaires que TLS dans le langage courant. Et même si SSL n’est plus utilisé, « SSL » est toujours utilisé pour faire référence à ce qui est, en réalité, TLS.

Donc, lorsque l’on se demande quel terme est correct, la réponse techniquement correcte est TLS, mais culturellement parlant, SSL reste approprié.