Secure Socket Layer – Protocole de sécurisation des échanges. Protocole généraliste de sécurisation des échanges informatiques. Actuellement le protocole le plus utilisé dans les applications de commerce électronique sur Internet. Développé par Netscape, SSL est intégré aux navigateurs depuis 1994, et permet d’assurer la sécurité des échanges de manière transparente entre une machine cliente et une machine serveur sur un réseau
informatique comme Internet. SSL en est actuellement à sa version 3, qui élimine les faiblesses de la version d’origine, la version 2 (la version 1 fut testée en interne par les employés de Netscape). SSL version 3 a servi de base au groupe de travail TLS de l’IETF et WTLS, TLS étant un protocole visant à sécuriser la couche transport, et WTLS étant le protocole TLS appliqué aux téléphones mobiles (Wireless TLS).
SSL étant placé entre la couche transport du modèle OSI (4), et la couche session du modèle OSI (5), il peut être utilisé pour sécuriser tous les échanges supérieurs au niveau 4 OSI comme HTTP, Telnet, FTP, SNMP,
etc . Comme SSL se place au dessus de la pile TCP/IP, il ne peut pas sécuriser les échanges faits par le protocole UDP. SSL offre le service d’authentification, par l’échange de certificats X509 (v3) lors de l’établissement de la
session. Cette étape était optionnelle dans la version 2, mais elle est obligatoire pour le serveur dans la version 3. L’échange des clés durant la phase d’authentification et généralement fait avec l’algorithme RSA. SSL offre le service de confidentialité, par le cryptage des données échangées avec un algorithme symétrique avec une longueur de clé de 40 ou 128 bits. Les algorithmes qui sont utilisés ici sont DES, DES40, triple DES, RC2, RC4 ou IDEA. SSL fournit le service d’intégrité des données, par l’utilisation d’une fonction de hachage sur les messages transmis. Les fonctions de hachage utilisées sont SHA ou MD5. Avec ces éléments, il est possible d’obtenir
des signatures électroniques et donc de permettre le service de non répudiation.
Le protocole SSL se décompose en quatre sous protocoles :
- Handshake, qui prend en charge l’authentification des parties, du choix des algorithmes de cryptage et de hachage et de l’échange d’un secret, nommé le PreMasterSecret.
- Record, qui protège les données à transmettre et les messages reçus des autres sous protocoles par rapport aux paramètres de sécurité choisis durant la phase Handshake.
- ChangeCipherSpec, qui signale à la couche record les modifications sur les paramètres de sécurité.
- Alert, qui signale les erreurs pendant la phase de vérification des messages transmis et des incompatibilités des paramètres choisis entre les deux parties durant la phase handshake.
Les sous protocoles Handshake, ChangeCipherSpec et Alert permettent la gestion des paramètres et des erreurs. C’est le sous protocole Record qui est le coeur de SSL. Un client et un serveur établissent une session. Cette session peut contenir plusieurs connexions, ce qui permet d’effectuer différents échanges avec différents paramètres de cryptage. Une session SSL se caractérise par deux parties :
- Une phase préliminaire, pendant laquelle ont lieu l’authentification des parties et la négociation des paramètres cryptographiques utilisés au cours de la session (échanges des clés, choix des algorithmes).
- Une phase d’échanges de données de manière sécurisée, à partir des clés et des algorithmes choisis durant la phase préliminaire.
