PROGRES – TP 1 : l’outil Scyther
Pour les exercices, nous allons travailler avec les programmes suivants protocol0.spdl
protocol0symm.spdl protocol1.spdl
protocol2.spdl
Veuillez les copier dans votre propre répertoire ou bureau avant de commencer les exercices.
Utilisez la commande python scyther-gui.py pour démarrer l'outil Scyther
Exercice 1 :
- Ouvrir le fichier protocol0symm.spdl.
- Vérifier les claims de sécurité de ce protocole avec F1.
- Expliquer les résultats.
Exercice 2 :
- Ouvrir le fichier protocol0.spdl.
- Expliquer la différence entre les deux claims en utilisant l'attaque que vous trouvez.
Exercice 3 :
- Ouvrir le fichier protocol1.spdl
- Vérifier les claims de sécurité. Vous trouvez plusieurs attaques. Expliquez les attaques : pourquoi la propriété est-elle violée dans chaque cas ?
- Copier le fichier de protocole avec un autre nom : « protocole1fixed.spdl ».
Dans le fichier, remplacer "protocol1" par "protocol1fixed". Améliorer le protocole pour valider la propriété.
Exercice 4 :
Nous rappelons ici la description informelle du protocole Yahalom. Le but de ce protocole est d'échanger une nouvelle clé symétrique entre deux entités à l'aide d'un serveur.
Remarque : les agents doivent pouvoir déchiffrer les messages qu'ils reçoivent.
S'ils ne le peuvent pas, ces messages sont souvent appelés "tickets" et sont capturés dans des variables de type Ticket (un type prédéfini dans Scyther). Pour les clés de session, introduisez un type défini par l'utilisateur dans Scyther, qui est globalement déclaré par usertype SessionKey ;
- Modéliser le protocole incluant les demandes de secret et d'authentification dans Scyther.
- Vérifier les claims de protocole avec l'outil Scyther et interpréter les résultats obtenus.