Loading AI tools
protocole réseau De Wikipédia, l'encyclopédie libre
La Transport Layer Security (TLS) ou « Sécurité de la couche de transport », et son prédécesseur la Secure Sockets Layer (SSL) ou « Couche de sockets sécurisée »[1], sont des protocoles de sécurisation des échanges par réseau informatique, notamment par Internet. Le protocole SSL a été développé à l'origine par Netscape Communications Corporation pour son navigateur Web. L'organisme de normalisation Internet Engineering Task Force (IETF) en a poursuivi le développement en le rebaptisant Transport Layer Security (TLS). On parle parfois de SSL/TLS pour désigner indifféremment SSL ou TLS.
La TLS (ou SSL) fonctionne suivant un mode client-serveur. Il permet de satisfaire les objectifs de sécurité suivants :
Le protocole est très largement utilisé, et sa mise en œuvre est facilitée par le fait que les protocoles de la couche application, comme le HTTP, n'ont pas à être profondément modifiés pour utiliser une connexion sécurisée, mais seulement implémentés au-dessus de la SSL/TLS, ce qui pour le HTTP a donné le protocole HTTPS. Plusieurs extensions de TLS sont venus étendre le protocole pour aider cette collaboration, par exemple l'extension SNI.
Un groupe de travail spécial de l'IETF a permis la création de la TLS et de son équivalent en mode non-connecté UDP, la DTLS. Depuis qu'il est repris par l'IETF, le protocole TLS a connu quatre versions : TLS v1.0 en 1999, TLS v1.1 en 2006, TLS v1.2 en 2008 et TLS v1.3 en 2018[2].
Au fur et à mesure qu'Internet se développait, de plus en plus de sociétés commerciales se mirent à proposer des achats en ligne pour les particuliers. L'offre se mit à croître régulièrement, mais le chiffre d'affaires dégagé par le commerce électronique restait modeste tant que les clients n'avaient pas une confiance suffisante dans le paiement par carte bancaire. Une des façons de sécuriser ce paiement fut d'utiliser des protocoles d'authentification et de chiffrement tels que SSL. La session chiffrée est utilisée pour empêcher un tiers d'intercepter des données sensibles transitant par le réseau : numéro de carte lors d'un paiement par carte bancaire, mot de passe lorsque l'utilisateur s'identifie sur un site…
Avec un système SSL, la sécurité a été sensiblement améliorée et les risques pour le client grandement réduits, comparés à l'époque où le paiement par internet était encore une technologie émergente. Bien que, comme tout système de chiffrement, le SSL/TLS ne pourra jamais être totalement infaillible, le grand nombre de banques et de sites de commerce électronique l'utilisant pour protéger les transactions de leurs clients peut être considéré comme un gage de sa résistance aux attaques malveillantes.
En 2009, TLS est utilisé par la plupart des serveurs web. L'internaute peut reconnaître qu'une transaction est chiffrée à plusieurs signes :
La première version de SSL parue, la SSL 2.0, possédait un certain nombre de défauts de sécurité, parmi lesquels la possibilité de forcer l'utilisation d'algorithmes de chiffrement plus faibles, ou bien une absence de protection pour la prise de contact et la possibilité pour un attaquant d'exécuter des attaques par troncature[3]. Les protocoles PCT 1.0, puis SSL 3.0, furent développés pour résoudre la majeure partie de ces problèmes, le second devenant rapidement le protocole le plus populaire pour sécuriser les échanges sur Internet.
Le protocole TLS n'est pas structurellement différent de la version 3 de SSL, mais des modifications dans l'utilisation des fonctions de hachage font que les deux protocoles ne sont pas directement interopérables. Cependant TLS, comme SSLv3, intègre un mécanisme de compatibilité ascendante avec les versions précédentes, c'est-à-dire qu'au début de la phase de négociation, le client et le serveur négocient la « meilleure » version du protocole disponible par tous deux. Pour des raisons de sécurité, détaillées dans la RFC 6176 parue en 2011, la compatibilité de TLS avec la version 2 de SSL est abandonnée[7].
La génération des clés symétriques est un peu plus sécurisée dans TLS que dans SSLv3 dans la mesure où aucune étape de l'algorithme ne repose uniquement sur MD5 pour lequel sont apparues des faiblesses en cryptanalyse.
En mai 2017 wolfSSL, implémente la 18e version du brouillon de TLS 1.3[20],[21]. Avec cette version 18 du brouillon, et jusqu’à la version 22 du brouillon, de nombreux clients TLS ne parvenaient pas à négocier l’utilisation de TLS 1.3 à cause de l’ossification des protocoles[22].
Les réseaux industriels modernes fonctionnant en TCP/IP utilisent de plus en plus la sécurisation TLS. Ainsi les protocoles pour le contrôle commande des réseaux électriques comme IEC-61850, IEC-60870 et DNP3 associent TLS pour se protéger des cyberattaques.
La plupart des navigateurs sont aussi des clients TLS. Les navigateurs web supportant par défaut la version TLS 1.2 sont :
Les principaux développeurs de navigateurs web ont annoncé mettre fin à leur support de TLS 1.1 et versions précédentes à partir du printemps 2020[23].
HTTPS Everywhere est une extension pour navigateur web qui permet d'étendre l'usage du SSL/TLS sur certains sites. Elle active le chiffrement sur les pages où il est normalement désactivé. Ceci ne peut évidemment fonctionner que si le site en question supporte déjà TLS[24]. L'extension est maintenue conjointement par le projet Tor et l'EFF depuis 2010[25].
Dans la majorité des cas, l'utilisateur authentifie le serveur TLS sur lequel il se connecte. Cette authentification est réalisée par l'utilisation d'un certificat numérique X.509 délivré par une autorité de certification (AC). Des applications web peuvent utiliser l'authentification du poste client en exploitant TLS. Il est alors possible d'offrir une authentification mutuelle entre le client et le serveur. Le certificat client peut être stocké au format logiciel sur le poste client ou fourni par un dispositif matériel (carte à puce, token USB). Cette solution permet d'offrir des mécanismes d'authentification forte.
Lorsqu'un utilisateur se connecte à un site web qui utilise TLSv1.2 (ou inférieur), les étapes suivantes ont lieu :
Optionnel : si le serveur nécessite également que le client s'authentifie, le client lui envoie son propre certificat en même temps que la clé de session. Le serveur procède alors comme détaillé au point n°3 pour vérifier que le certificat du client est valide.
Depuis TLSv1.3, l'échange de la clé de session doit obligatoirement se faire via Diffie-Hellman avec courbes elliptiques (ECDHE) : le RSA ne peut plus être utilisé pour cela.
En 2001, Serge Vaudenay a découvert une attaque par canal auxiliaire contre SSL. À la suite de la mise à jour du standard, cette attaque est maintenant totalement dépassée et ne peut plus être utilisée. Cette attaque profitait d'une mauvaise implémentation du remplissage qui était utilisé lorsque les entrées avaient une taille variable. Le mode de chiffrement CBC (cipher block chaining) consiste à diviser les données en plusieurs blocs de même taille et à les chiffrer de manière chaînée (le résultat précédent est utilisé lors du chiffrement suivant). L'attaque de Vaudenay utilisait les temps de réponse des serveurs en cas d'erreurs lors du remplissage. Avec un peu de chance, il était possible de découvrir les dernières données qui avaient été envoyées et de les récupérer. L'attaque était toutefois inopérante avec un chiffrement de type RC4 et n'était valable que sous certaines conditions. Elle a malgré tout été utilisée avec succès contre certains « webmails » qui envoyaient plusieurs fois les mêmes données[réf. nécessaire].
En mars 2014, une vulnérabilité logicielle fut découverte dans la bibliothèque OpenSSL : Heartbleed, introduite par erreur dans une mise à jour d'OpenSSL réalisée deux ans plus tôt. Cette faille a été largement médiatisée, y compris dans les médias généralistes[26],[27],[28], comme l'avait été notamment le ver I love you en 2000.
Le 15 octobre 2014, une équipe de recherche chez Google a identifié une faille dans la conception de SSLv3 permettant de déchiffrer le contenu. Cette attaque a été nommée POODLE pour Padding Oracle On Downgraded Legacy. Elle est présente uniquement dans SSLv3.
Le 2 mars 2016[29], les chercheurs détaillent la faille baptisée DROWN. Elle consiste à utiliser l'ancienne version SSL v2 afin de déchiffrer la technologie TLS v1.2.
Le protocole DANE a pour objectif de corriger certaines faiblesses de TLS, notamment pour les attaques de type MITM.
7 - couche application | HTTP, SMTP, FTP, SSH, IRC, SNMP, SIP ... |
6 - couche de présentation | |
5 - couche de session | TLS, SSL, SSH-user, NetBIOS |
4 - couche de transport | TCP, UDP, SCTP, RTP, DCCP ... |
3 - couche réseau | IPv4, IPv6, ARP, IPX ... |
2 - couche de liaison | Ethernet, 802.11 WiFi, Token ring, FDDI, ... |
1 - couche physique | Câble, fibre optique, ondes radio... |
Dans la pile de protocole TCP/IP, SSL se situe entre la couche application (comme HTTP, FTP, SMTP, etc.) et la couche transport TCP.
Son utilisation la plus commune reste cependant en dessous de HTTP. Le protocole SSL est implémenté par la couche session de la pile, ce qui a deux conséquences :
L'authentification du serveur et du client peuvent se faire par le biais de certificats électroniques soit par le biais de secrets prépartagés (ou Pre-shared key)[30]. L'authentification est optionnelle.
Les messages échangés par le biais de TLS sont appelés record. En général, ces messages sont encapsulés dans des datagrammes TCP. Une variante sur UDP existe et s'appelle DTLS. Il existe quatre types de records :
La sécurité est réalisée d'une part par un chiffrement asymétrique, comme le chiffrement RSA, qui permet, après authentification de la clé publique du serveur, la constitution d'un secret partagé entre le client et le serveur, d'autre part par un chiffrement symétrique (beaucoup plus rapide que les chiffrements asymétriques), comme l'AES, qui est utilisé dans la phase d'échange de données, les clés de chiffrement symétrique étant calculées à partir du secret partagé. Une fonction de hachage, comme SHA-1, est également utilisée, entre autres, pour assurer l'intégrité et l'authentification des données (via par exemple HMAC).
Plus exactement, les messages Application data sont chiffrés grâce à une clé de chiffrement et un algorithme de chiffrement symétrique par bloc comme AES 128 ou par flux comme CHACHA20. Ils sont authentifiés soit grâce une fonction HMAC soit directement grâce au mode d'opération du chiffrement symétrique par bloc.
Les clés de chiffrement et les clés HMAC sont générées à partir d'un secret échangé entre les deux pairs (pre-master secret), les données aléatoires échangées durant la phase d'Handshake et l'utilisation d'une fonction de dérivation des clés se basant sur HMAC. Cet échange de secret peut être authentifié (ou non) via l'utilisation d"un algorithme de signature numérique comme DSA ou l'algorithme RSA.
Au total, il y a cinq types de clés cryptographiques utilisées lors d'une session TLS :
Les suites cryptographiques utilisées ont le format suivant :
où KE indique un algorithme d'échanges de secrets, CIPHER un algorithme de chiffrement symétrique, et HASH une fonction de hachage. La fonction HMAC est dérivée de la fonction de hachage.
Par exemple, la suite cryptographique TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 indique que le pair peut utiliser l'algorithme d'échange de clefs Diffie-Hellman éphémère sur courbes elliptiques authentifié par l'algorithme de signature ECDSA, l’algorithme de chiffrement symétrique AES 128 en mode GCM et la fonction de hachage SHA256.
Dans la version 1.2, l'algorithme d'échanges de secrets peut être RSA ou une variante de l'algorithme Diffie-Hellman (authentifié ou non, éphémère ou non, sur courbes elliptiques ou non) alors que pour la version 1.3 seul l'algorithme Diffie-Hellman éphémère est autorisé et la fonction de signature numérique est précisée dans des extensions des messages ClientHello, ServerHello et HelloRetryRequest de la phase de Handshake.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.