Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Transport Layer Security

Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voirTLS etSSL.

LaTransport Layer Security(TLS) ou « Sécurité de la couche de transport », et son prédécesseur laSecure Sockets Layer(SSL) ou « Couche desockets sécurisée »[1], sont desprotocoles de sécurisation des échanges parréseau informatique, notamment parInternet. Le protocoleSSL a été développé à l'origine parNetscape Communications Corporation pour sonnavigateur Web. L'organisme de normalisationInternet Engineering Task Force (IETF) en a poursuivi le développement en le rebaptisantTransport Layer Security(TLS). On parle parfois deSSL/TLS pour désigner indifféremmentSSL ouTLS.

LaTLS (ouSSL) fonctionne suivant un modeclient-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 leHTTP, n'ont pas à être profondément modifiés pour utiliser une connexion sécurisée, mais seulement implémentés au-dessus de laSSL/TLS, ce qui pour leHTTP a donné le protocoleHTTPS. Plusieurs extensions de TLS sont venues é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 laTLS et de son équivalent en mode non-connectéUDP, laDTLS. Depuis qu'il est repris par l'IETF, le protocoleTLS a connu quatre versions :TLS v1.0 en 1999,TLS v1.1 en 2006,TLS v1.2 en 2008 etTLS v1.3 en 2018[2].

Présentation

[modifier |modifier le code]

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 lecommerce é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 parcarte 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 debanques et de sites decommerce é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 desserveurs web. L'internaute peut reconnaître qu'unetransaction est chiffrée à plusieurs signes :

  • l'URL dans labarre d'adresse commence par https ( https://...) et non http ;
  • affichage d'une clé ou d'un cadenas, dont l'emplacement varie selon le navigateur : généralement à gauche de la barre d'adresse mais aussi dans la barre inférieure de la fenêtre ;
  • les navigateurs peuvent ajouter d'autres signes, comme le passage en jaune de la barre d'adresse (cas de Firefox sur d'anciennes versions).

Historique

[modifier |modifier le code]

Protocole SSL

[modifier |modifier le code]

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.

  • 1994[4] :SSL 1.0. Cette première spécification du protocole développé par Netscape resta théorique et ne fut jamais mise en œuvre[5].
  • Février 1995 : publication de la normeSSL 2.0, première version de SSL réellement utilisée. Elle fut également la première implémentation de SSL bannie, en mars 2011 (RFC 6176).
  • Novembre 1996 :SSL 3.0, la dernière version de SSL, qui inspirera son successeur TLS. Ses spécifications sont rééditées en août 2008 dans laRFC 6101[6]. Le protocole est banni en2014, à la suite de la publication de la faillePOODLE, ce bannissement est définitivement ratifié en juin 2015 (RFC 7568).

Protocole TLS

[modifier |modifier le code]

Le protocole TLS n'est pas structurellement différent de la version 3 de SSL, mais des modifications dans l'utilisation desfonctions 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 laRFC 6176 parue en 2011, la compatibilité de TLS avec la version 2 de SSL est abandonnée[7].

La génération desclé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 surMD5 pour lequel sont apparues des faiblesses encryptanalyse.

En mai 2017wolfSSL, 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].

TLS dans les applications industrielles

[modifier |modifier le code]

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.

Mise en œuvre de TLS par les applications

[modifier |modifier le code]

Support par les navigateurs

[modifier |modifier le code]

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 uneextension pournavigateur 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 leprojet Tor et l'EFF depuis 2010[25].

Authentification par certificat numérique

[modifier |modifier le code]

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'uncertificat numériqueX.509 délivré par uneautorité de certification (AC). Desapplications 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.

Principe de fonctionnement dans les navigateurs web

[modifier |modifier le code]
Message d'avertissement du navigateur web Firefox s'affichant si le certificat envoyé par le serveur est auto-signé.

Lorsqu'un utilisateur se connecte à un site web qui utilise TLSv1.2 (ou inférieur), les étapes suivantes ont lieu :

  1. le client envoie au serveur une demande de mise en place de connexion sécurisée par TLS.
  2. Le serveur envoie au client soncertificat : celui-ci contient saclé publique, ses informations (nom de la société, adresse postale, pays, e-mail de contact...) ainsi qu'une signature numérique.
  3. Le client tente de vérifier la signature numérique du certificat du serveur en utilisant les clés publiques contenues dans les certificats desautorités de certifications (AC) (intégrées par défaut dans les navigateurs).
    1. Si l'une d'entre elles fonctionne, le client en déduit le nom de l'autorité de certification qui a signé le certificat envoyé par le serveur. Il vérifie que celui-ci n'est pas expiré puis envoie unedemande OCSP à cette autorité pour vérifier que le certificat du serveur n'a pas été révoqué.
    2. Si aucune d'entre elles ne fonctionne, le client tente de vérifier la signature numérique du certificat du serveur à l'aide de laclé publique contenue dans celui-ci.
      1. En cas de réussite, cela signifie que le serveur a lui-même signé son certificat. Un message d'avertissement prévient éventuellement l'utilisateur que l'identité du serveur n'a pas été vérifiée par une autorité de certification et qu'il peut donc s'agir potentiellement d'un site frauduleux.
      2. En cas d'échec, le certificat est invalide, la connexion ne peut pas aboutir.
  4. Le client génère uneclé de chiffrement symétrique, appeléeclé de session, qu'il chiffre à l'aide de la clé publique contenue dans le certificat du serveur puis transmet cette clé de session au serveur.
  5. Le serveur déchiffre la clé de session envoyée par le client grâce à sa clé privée.
  6. Le client et le serveur commencent à s'échanger des données en chiffrant celles-ci avec la clé de session qu'ils ont en commun.On considère à partir de ce moment que la connexion TLS est établie entre le client et le serveur.
  7. Une fois la connexion terminée (déconnexion volontaire de l'utilisateur ou si durée d’inactivité trop élevée), le serveur révoque la clé de session.

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.

Attaques

[modifier |modifier le code]
Cette section est vide, insuffisamment détaillée ou incomplète.Votre aide est la bienvenue !Comment faire ?

En 2001, Serge Vaudenay a découvert uneattaque 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. Lemode 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 typeRC4 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, unevulné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 leverI love you en 2000.

Article détaillé :Heartbleed.

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 pourPadding Oracle On Downgraded Legacy. Elle est présente uniquement dans SSLv3.

Article détaillé :POODLE.

Le 2 mars 2016[29], les chercheurs détaillent la faille baptiséeDROWN. Elle consiste à utiliser l'ancienne version SSL v2 afin de déchiffrer la technologie TLS v1.2.

Le protocoleDANE a pour objectif de corriger certaines faiblesses de TLS, notamment pour les attaques de typeMITM.

Spécifications techniques

[modifier |modifier le code]
modèle OSI              pile de protocoles                
7 -couche applicationHTTP,SMTP,FTP,SSH,IRC,SNMP,SIP ...
6 -couche de présentation
5 -couche de sessionTLS, SSL,SSH-user,NetBIOS
4 -couche de transportTCP,UDP,SCTP,RTP,DCCP ...
3 -couche réseauIPv4,IPv6,ARP,IPX ...
2 -couche de liaisonEthernet,802.11 WiFi,Token ring,FDDI, ...
1 -couche physiqueCâble,fibre optique,ondes radio...

Réseau

[modifier |modifier le code]

Dans la pile de protocoleTCP/IP, SSL se situe entre la couche application (commeHTTP,FTP,SMTP, etc.) et lacouche transportTCP.
Son utilisation la plus commune reste cependant en dessous de HTTP. Le protocole SSL est implémenté par lacouche session de la pile, ce qui a deux conséquences :

  • pour toute application existante utilisant TCP, il peut exister une application utilisant SSL. Par exemple, l'application HTTPS correspond à HTTP au-dessus de SSL ou encoreDNS over TLS ;
  • une application SSL se voit attribuer un nouveau numéro de port par l'IANA. Par exemple HTTPS est associé au port 443. Dans certains cas, le même port est utilisé avec et sans SSL. Dans ce cas, la connexion est initiée en mode non chiffré. Le tunnel est ensuite mis en place au moyen du mécanisme StartTLS. C'est le cas, par exemple, des protocolesIMAP,SMTP ouLDAP.

Authentification

[modifier |modifier le code]

L'authentification du serveur et du client peuvent se faire par le biais decertificats électroniques soit par le biais desecrets prépartagés (ouPre-shared key)[30]. L'authentification est optionnelle.

Création d'une session TLS 1.2

Détails du protocole

[modifier |modifier le code]

Les messages échangés par le biais de TLS sont appelésrecord. En général, ces messages sont encapsulés dans des datagrammes TCP. Une variante sur UDP existe et s'appelleDTLS. Il existe quatre types de records :

  • Les messagesHandshake permettent de négocier la version TLS, les suites cryptographiques utilisées (oucipher suites), les algorithmes de compression, permettent le partage d'un secret (oupre-master secret) et de données aléatoires à partir duquel sera générée la clef de session (oumaster secret) pour chiffrer les données et, de façon optionnelle, l'authentification du serveur et du client
  • Les messages de typeAlert fournissent des erreurs et leur sévérité :warning oufatal. Toute erreur fatale a pour conséquence la terminaison de la session
  • Les messages de typeChange Cipher Spec indiquent le changement de suites cryptographiques dans les échanges
  • Les messagesApplication data correspondent aux données chiffrées et compressées suivant les paramètres de chiffrement et de compression préalablement établis entre le client et le serveur

Cryptographie

[modifier |modifier le code]

La sécurité est réalisée d'une part par unchiffrement asymétrique, comme lechiffrement RSA, qui permet, après authentification de la clé publique du serveur, la constitution d'unsecret partagé entre le client et le serveur, d'autre part par unchiffrement 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é. Unefonction de hachage, commeSHA-1, est également utilisée, entre autres, pour assurer l'intégrité et l'authentification des données (via par exempleHMAC).

Plus exactement, les messagesApplication 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 commeCHACHA20. Ils sont authentifiés soit grâce une fonctionHMAC soit directement grâce aumode 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'unefonction 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 designature numérique commeDSA ou l'algorithme RSA.

Au total, il y a cinq types de clés cryptographiques utilisées lors d'une session TLS :

  • Clés publiques/privées Diffie-Hellman du serveur et du client : pour l'échange du secret via l'algorithme Diffie-Hellman, si utilisé
  • Clés privées du serveur et du client : pour signer les données envoyées lors de la phase d'échange du secret. La signature des données est optionnelle et dépend de la négociation des suites cryptographiques
  • Clés publiques du serveur et du client : pour vérifier l'authenticité du pair lors de la phase d'échange du secret. La vérification est optionnelle et dépend de la négociation des suites cryptographiques. Dans le cas où l'échange du secret est réalisé par RSA et non Diffie-Hellman, le secret est chiffré avec la clé publique du serveur avant d'être envoyé par le client. Ces clés sont fournies lors de la phase de Handshake via lescertificats électroniques
  • Clés de chiffrement du serveur et du client : pour chiffrer les données applicatives. Selon les fonctions de chiffrement utilisées, elles peuvent aussi permettre d'authentifier les données applicatives
  • Clés MAC du serveur et du client : pour authentifier les données applicatives si la fonction de chiffrement ne le permet pas.

Les suites cryptographiques utilisées ont le format suivant :

  • Pour TLS 1.2 : TLS_KE_CIPHER_HASH.
  • Pour TLS 1.3 : TLS_CIPHER_HASH

où KE indique un algorithme d'échanges de secrets, CIPHER un algorithme de chiffrement symétrique, et HASH unefonction de hachage. La fonction HMAC est dérivée de la fonction de hachage.

Par exemple, lasuite 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 surcourbes elliptiques authentifié par l'algorithme de signatureECDSA, l’algorithme de chiffrement symétrique AES 128 en modeGCM 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'algorithmeDiffie-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 deHandshake.

Notes et références

[modifier |modifier le code]

Notes

[modifier |modifier le code]

Références

[modifier |modifier le code]
  1. « Page sur la SSL », surcommentcamarche.net,(consulté le)
  2. (en-US) « TLS 1.3 Published: in Firefox Today », surMozilla Security Blog(consulté le)
  3. (en) « Home - Broadcom Community - Discussion Forums, Technical Docs, and Expert Blogs », sursecurityfocus.com(consulté le).
  4. « Protocole SSL et TLS - FRAMEIP.COM », surFRAMEIP.COM(consulté le).
  5. http://www.ehow.com/facts_5597610_ssl-2_0-security_.html
  6. (en) « The Secure Sockets Layer (SSL) Protocol Version 3.0 »,Request for commentsno 6101,
  7. Levillain 2012,p. 7-8.
  8. RFC 2246
  9. RFC 2712
  10. RFC 2817 etRFC 2818
  11. RFC 3268
  12. RFC 4346
  13. RFC 5246
  14. « The Transport Layer Security (TLS) Protocol Version 1.3 — draft-ietf-tls-rfc5246-bis-00 », surietf.org
  15. RFC 7568
  16. « The Transport Layer Security (TLS) Protocol Version 1.3 — draft-ietf-tls-tls13-28 », surIETF.org
  17. RFC 8446
  18. (en) « TLS 1.3 updates the most important security protocol on the Internet, delivering superior privacy, security, and performance. », surIETF(consulté le)
  19. RFC 8996
  20. « Sécurité : le protocole TLS 1.3 dispose déjà d’une version commerciale signée WolfSSL »,L'Embarqué,‎(lire en ligne).
  21. (en) « TLS 1.3 Now Available in wolfSSL », surwolfssl.com,.
  22. Sullivan 2017.
  23. Catalin Cimpanu, « Les navigateurs bloquent l'accès aux sites HTTPS utilisant les protocoles TLS 1.0 et 1.1 », surzdnet.fr,(consulté le)
  24. « HTTPS Everywhere force les sites à utiliser HTTPS », surAssiste(consulté le).
  25. (en)« Encrypt the Web with the HTTPS Everywhere Firefox Extension »,eff.org, 17 juin 2010.
  26. RFI
  27. Le Monde (tous les articles)
  28. Le Figaro
  29. SébastienGavois, « DROWN  : quand des failles SSLv2 permettent de décrypter des connexions TLS », surwww.nextinpact.com(consulté le)
  30. IETF, « Pre-Shared Key Ciphersuites for Transport Layer Security (TLS) (RFC 4279) », surtools.ietf.org,(consulté le)

Annexes

[modifier |modifier le code]

Bibliographie

[modifier |modifier le code]

Articles connexes

[modifier |modifier le code]
v ·m
7.Application
6.Présentation
5.Session
4.Transport
3.Réseau
2.Liaison
1.Physique
v ·m
Clients de messagerie
Communication sécurisée
Off-the-Record Messaging
Secure Shell
Transport Layer Security
Réseau privé virtuel (VPN)
ZRTP
Pair-à-pair
Chiffrement de disque
Anonymat sur Internet
Systèmes de fichiers chiffrés (en) distribué
Éducatif
Stéganographie
Articles liés
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Transport_Layer_Security&oldid=224440756 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2025 Movatter.jp