Secure Socket Layer
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 (TLS version 1). Il y a très peu de différence entre SSL version 3 et TLS version 1. 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é :
- 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 optionelle, l'authentification du client.
| 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 (e-commerce) 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 SSL, 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 asymetrique (qui va permettre une authentification) comme par exemple l'algorithme RSA et à la fois par un chiffrement symetrique (qui est plus léger q'un chiffrement asymetrique) et qui va assurer la transmission des informations (comme par exemple le DES). On y adjoint une fonction de hachage comme le MD5 pour s'assurer que les données sont transmises sans être corrompues. SSL est utilisé par la plupart des navigateurs. On reconnaît qu'une transaction est sécurisée lorsque qu'une clé ou un cadenas fermé s'affiche dans un coin inférieur de l'écran.
Fonctionnement
| 7 - couche application | HTTP, SMTP, FTP, SSH, IRC, SNMP, SIP ... |
| 4 bis - sécurité de la couche transport | TLS, SSL |
| 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 au dessous de HTTP. La couche SSL est implémentée par la couche application 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 correpond à 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.
Attaques
En 2001, Serge Vaudenay découvre une attaque par canal auxiliaire contre SSL. Elle 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 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é toute é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.
Recommandations
La première recommandation de TLS est la RFC 2246 publiée par l'IETF.
D'autres recommandations accompagnent 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
- SET : protocole destiné spécialement à sécuriser les transactions Internet de paiement par carte bancaire.
- Chiffrement
- Authentification
Liens externes
- (fr) http://www.commentcamarche.net/crypto/ssl.php3 Introduction à SSL
- (en) http://www.openssl.org/ OpenSSL
| Image manquante Key-crypto-sideways.png | Portail Cryptologie - Accédez d'un seul coup d’œil à toute la série des articles « Cryptologie » de Wikipédia. |
