Nous allons étudier les mécanismes mis en jeux par SSL/TLS. On y retrouve :
- Le principe de chiffrement des données
- La négociation du protocole
- La non répudiation avec l’échange de certificat et l’intégrité de ce dernier via la fonction de hachage.
a. Négociation de SSL/TLS
Comme nous l’avons vu, SSL/TLS utilise trois algorithmes (asymétrique, session, hachage) ainsi qu’au moins un échange de certificat.
Nous allons voir à présent comment tous cela est négocié.
Voici les deux phases du protocole :
- SSL handshake (littéralement “serrer la main”) : Lors de la négociation, les deux partis se concertent sur les algorithmes et clé de chiffrement communs
- SSL record : Une fois la négociation réalisé, toutes les communications sont cryptées.
b. Handshake
SSL V3.0 permettant l’authentification du client, la partie bleue fera référence à l’authentification du client et la partie noir sera la partie commune.
1 - le client initialise une connexion au serveur et lui fournit sa version de SSL, sa liste d’algorithmes (chiffrement et hachage) ainsi des données aléatoirement générées.
2 - Le serveur renvoi sa version de SSL, sa liste d’algorithme, des données générées aléatoirement ainsi que son certificat. Il peut demander le certificat du client
3 - le client authentifie le serveur à l’aide des informations du certificat (notamment l’autorité de certification). Il valide le certificat en le comparant avec la signature. En cas d’échec la connexion est avortée.
4 - Le client est maintenant en mesure de générer une pré clé secrète (pre shared key) et de la crypter avec la clé publique du serveur.
le client envoi une suite de données aléatoire et son certificat
5 - le serveur authentifie le client avec le certificat
Il décode la clé pré secrète (avec sa clé privé)
6 - A partir de la pré clé secrète, le client et le serveur vont générer une clé secrète. Cette clé servira à créer les clés de session.
7 - le client avertit le serveur que le prochain message sera crypté avec la clé de session. Il envoi message crypter pour mettre fin à la partie “Handshake”
8 - le serveur avertit le serveur que le prochain message sera crypté avec la clé de session. Il envoi message crypter pour mettre fin à la partie “Handshake”
Fin de la négociation