Transport Layer Security
Un article de Wikipédia, l'encyclopédie libre.
| 7 | Application |
|---|---|
| 6 | Présentation |
| 5 | Session |
| 4 | Transport |
| 3 | Réseau |
| 2 | Liaison de données |
| 1 | Physique |
| Modèle OSI | |
Transport Layer Security (TLS), anciennement nommé Secure Socket Layer (SSL), est un protocole de sécurisation des échanges sur Internet, développé à l'origine par Netscape (SSL version 2 et SSL version 3). Il a été renommé en Transport Layer Security (TLS) par l'IETF suite au rachat du brevet de Netscape par l'IETF en 2001. Le groupe de travail correspondant à l'IETF a permis la création des RFC 2246 pour le TLS et RFC 4347 pour son équivalent en mode datagramme, le DTLS.
Il y a très peu de différences entre SSL version 3 et TLS version 1 (qui correspond à la version 3.1 du protocole SSL) rendant les deux protocoles non inter-opérables, mais TLS a mis en place un mécanisme de compatibilité ascendante avec SSL. En outre, TLS diffère de SSL pour la génération des clés symétriques. Cette génération est plus sécurisée dans TLS que dans SSL v3 dans la mesure où aucune étape de l'algorithme ne repose uniquement sur MD5 pour lequel sont apparues quelques faiblesses en cryptanalyse.
Par abus de langage, on parle de SSL pour désigner indifféremment SSL ou TLS.
SSL fonctionne suivant un mode client-serveur. Il fournit quatre objectifs de sécurité importants:
- l'authentification du serveur ;
- la confidentialité des données échangées (ou session chiffrée) ;
- l'intégrité des données échangées ;
- de manière optionnelle, l'authentification ou l'authentification forte du client avec l'utilisation d'un certificat numérique.
Sommaire |
[] Présentation
Avec le développement d'Internet, de nombreuses sociétés commerciales proposent des achats en ligne pour les particuliers. L'offre croît tous les jours, mais le chiffre d'affaires dégagé par le commerce électronique reste encore modeste car le client n'a pas encore une confiance totale dans le paiement par carte bancaire. Une des façons de sécuriser ce paiement est d'utiliser des protocoles d'authentification et de chiffrement tels que TLS, mais cela ne dispense pas le commerçant de veiller soigneusement aux numéros de carte bancaire parfois stockés sur ses serveurs.
La session chiffrée est utilisée généralement lors de l'envoi du numéro de carte bancaire, mais elle peut l'être dans d'autres cas. Le chiffrement est réalisé par à la fois un chiffrement asymétrique (qui va permettre une authentification), comme par exemple l'algorithme RSA, et à la fois par un chiffrement symétrique (qui est plus léger à réaliser qu'un chiffrement asymétrique) et qui va assurer la transmission des informations (comme par exemple le AES). On y adjoint une fonction de hachage, comme le MD5, pour s'assurer que les données sont transmises sans être corrompues.
En 2008, TLS est utilisé par la plupart des navigateurs Web. On reconnaît qu'une transaction est sécurisée lorsqu'une clé ou un cadenas fermé s'affiche dans un coin inférieur de l'écran ainsi que dans la barre d'adresse, l'adresse commence par https://...
[] Fonctionnement
| 7 - couche application | HTTP, SMTP, FTP, SSH, IRC, SNMP, SIP ... |
| 5 - couche de session | TLS, SSL, 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, ... |
Dans la pile de protocole TCP/IP, SSL se situe entre les couches applications (comme HTTP, FTP, SMTP, etc.) et la couche transport TCP.
Son utilisation la plus commune reste cependant en dessous de HTTP. La couche SSL est implémentée par la couche session de la pile, ce qui a deux conséquences :
- pour toutes applications existantes, il peut exister une application utilisant SSL. Par exemple, l'application HTTPS correspond à HTTP au dessus de SSL ;
- une application SSL se voit attribuer un nouveau numéro de port par l'IANA. Par exemple HTTPS est associé au port 443.
[] Navigateurs web
La plupart des navigateurs web gèrent parfaitement SSLv2, SSLv3 & TLS v1.0 (ce dernier n'étant pas activé par défaut sous Internet Explorer 6). Cependant, il semblerait que SSLv2 soit désactivé par défaut dans Internet Explorer 7, ce qui obligerait à la plupart des vendeurs en ligne de la configuration de leurs serveurs (modification somme toute minime), comme le fait remarquer cet (fr) article de ZDNet.fr.
[] Authentification du client SSL par certificat numérique
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). Mais de plus en plus d'applications web utilisent maintenant 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é en format logiciel sur le poste client ou au format matériel (carte à puce, token USB) pour augmenter la sécurité du lien TLS. Cette solution permet d'offrir des mécanismes d'authentification forte
[] Attaques
En 2001, Serge Vaudenay découvre une attaque par canal auxiliaire contre SSL. Cette attaque profite d'une mauvaise implémentation du remplissage qui est utilisé lorsque les entrées ont 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 utilise les temps de réponse des serveurs en cas d'erreurs lors du remplissage. Avec un peu de chance, il est possible de découvrir les dernières données qui ont été envoyées et de les récupérer. L'attaque est toutefois inopérante avec un chiffrement de type RC4 et n'est valable que sous certaines conditions. Elle a malgré tout été utilisée avec succès contre certains « webmails » qui envoient plusieurs fois les mêmes données. Suite à cette attaque, le standard a été mis à jour.
[] Textes de référence
Le premier texte formel définissant le protocole TLS est la RFC 2246 publiée par l'IETF en 1999.
D'autres textes ont suivi sur ce protocole :
- RFC 2712 : Addition de la suite Kerberos à TLS ;
- RFC 2817 : Passage à TLS lors d'une session HTTP 1.1 ;
- RFC 2818 : HTTP sur TLS ;
- RFC 3268 : Utilisation du système de chiffrement AES pour TLS.
[] Voir aussi
[] Articles connexes
- SET : protocole destiné spécialement à sécuriser les transactions Internet de paiement par carte bancaire.
- Chiffrement
- Authentification
- Authentification forte
- Protocole de vérification en ligne de certificat
- Pour les implémentations : voir
[] Liens externes
- (fr) Introduction à SSL
- (en) Site web d'OpenSSL
- (fr) Technologie VPN SSL vs IPSEC
- (en) Un très bon article sur l'authentification Client SSL. Exemple avec un serveur Apache
[] Bibliographie
- (en) Eric Rescorla, SSL and TLS, Designing and Building Secure Systems, Addison Wesley, 2001.
[] Autorités de Certification
- (fr) Certigna
- (fr) Certinomis
- (fr) CAcert
- (fr) VeriSign Certificats SSL
- (fr) Thawte Certificats SSL
- (fr) GeoTrust Certificats SSL
- (fr) LCSS Certificats
Le Texte ci-dessus est disponible sous GNU Free Documentation License.
La source est wikipedia http://fr.wikipedia.org/wiki/Transport Layer Security



