SSL/TLS est un protocole de sécurisation des échanges développé par Netscape. Il assure les transactions Client / Serveur sur Internet. Il a été intégré dans les navigateurs web depuis 1994. La vesrion 3.1 est baptisée Transport Layer Security TLS. Cette version a été standardisée à l'IETF: RFC 2246. Le protocole fonctionne au dessus de la couche TCP
Confidentialité
Obtenue par chiffrement symétrique
Intégrité
En utilisant des MAC : MD5(128 bits), SHA1(160 bits)
Authentification
Identification des deux entités (client optionnel) basée sur les certificats X.509
Authentification de l'origine des données basée sur des MAC
SSL se déroule selon quatre sous protocoles
Handshake
Authentification mutuelle
Négociation des algorithmes de chiffrement et de hachage
Échange des clés symétriques
Change Cipher Spec
Indiques la mise en place des algorithmes de chiffrement négocié
Record
Garantir la confidentialité à l'aide du chiffrement, et L'authentification à l'aide de condensât
Alert
Émission de messages d'alertes suites aux erreurs que peuvent s'envoyer le client et le serveur
SSL se déroule en deux phases
Phase 1: authentification du serveur
Requête client
Le serveur envoie son certificat et une liste d'algo de crypto à négocier
Le client vérifie le certificat du serveur à l'aide de la clé publique du CA contenu dans le navigateur
Le client génère un pré-master secret (PMS)(48 octets) qui sera utilisé pour générer le master-key (48 octets).
PMS est chiffré avec la clé publique du serveur
Les données échangées entre le client et le serveur seront chiffrées et authentifiées avec des clés dérivées du master-secret
Phase 2: authentification du client
Le serveur peut demander au client de s'authentifier en lui demandant son certificat
Le client répond en envoyant son certificat puis en signant un message avec sa clé privé (contient des info sur la session et le contenu des messages précédents)