1
PROGRES - Projet 3 : Implémentation du protocole TLS entre un client et un serveur en
utilisant l'outil Scyther
Le but de ce projet est d'utiliser le langage SPDL avec l'outil Scyther, afin d'implémenter le protocole de sécurité TLS, analyser sa robustesse et les éventuelles attaques et programmer une nouvelle extension de ce protocole.
Partie I : Protocole TLS
Votre protocole TLS doit inclure :
Deux acteurs : un client et un serveur web.
Un agent : une autorité de certification.
Chaque acteur possède :
Une nouvelle paire de clés asymétriques (pas celle définie dans l’outil Scyther).
Un certificat pour sa clé publique signée par l’agent.
L’authentification mutuelle est demandée : chaque acteur envoie une portion des données signées par sa clé secrète.
Le client et le serveur web doivent créer une clé de session pour échanger des informations confidentielles.
Il est nécessaire d’utiliser les notions Scyther vues en cours (macro, const,…).
Le principe des messages échangés dans ce protocole doit être le même vu en cours 2. A la fin, le client et le serveur web doivent échanger entre eux n’importe quel message confidentiel en utilisant la clé de session.
Vérifier votre protocole.
Conseil : pour chaque étape ou un échange, vérifier votre protocole.
Partie II : Extension du protocole TLS
Votre protocole d’extension doit inclure :
Trois acteurs : un client, un serveur web et un serveur d’authentification.
2
Un agent : une autorité de certification.
Le client et le serveur web possèdent chacun :
Une nouvelle paire de clés asymétriques (pas celle définie dans l’outil Scyther).
Un certificat pour sa clé publique signée par l’agent.
Une clé symétrique secrète partagée avec le serveur d’authentification.
L’authentification mutuelle est demandée dans ce protocole comme suit :
Le client veut authentifier le serveur web : le client envoie toutes les preuves de sécurité (certificat, signatures, etc.) du serveur web, au serveur d’authentification en utilisant la clé symétrique secrète partagée. Le rôle du serveur d’authentification dans cette étape est d’authentifier le serveur web.
Le serveur web veut authentifier le client : le serveur envoie toutes les preuves de sécurité (certificat, signatures, etc.) du client, au serveur d’authentification en utilisant la clé symétrique secrète partagée. Le rôle du serveur d’authentification dans cette étape est d’authentifier le client.
Le client et le serveur web doivent créer une clé de session pour échanger des informations confidentielles, exactement comme dans le cas du TLS.