@@ -241,6 +241,61 @@ Ce bug est dû à la numérotation fantaisiste d'Ubuntu des interfaces réseau .
* Examen écrit en fin de session
* Un projet à réaliser par binôme
### Projets
#### jwt
Vous implémenterez un exemple de protection d'API REST via JWT dans l'un des langages au choix
* php
* nodejs
* python
Vous implémenterez 2 services et un client
* un service de génération et de validation de JWT
* un service accessible via REST avec un JWT valide
* un client permettant d'obtenir JWT et capable de l'utiliser pour accéder légitimement à l'API REST
Dans un premier temps vous implémenterez des JWT avec mot de passe (chiffrement symétrique)
Dans un second temps vous implémenterez des JWT avec des paires de clés publiques / privées (chiffrement asymétrique)
Dans votre rapport vous analyserez
* les avantages et les inconvénients, notamment au niveau de la sécurité, de chacune des deux approches
* les conséquences des choix d'implémentation sur
* la validation d'un JWT
* l'enrolement des clients
* la gestion d'une compromission côté serveur
#### Rendu
Un repo Gitlab sur https://gitlab.isima.fr ayant la forme suivante
* symetric
* ...
* README.md
* asymetric
* ...
* README.md
* README.md
* symetric/README.md et asymetric/README.md contiennent respectivement la marche à suivre pour pouvoir déployer l'implémentation avec des JWT avec mot de passe et avec des clés publiques / privées
* le fichier README.md contient votre rapport
* vous mettrez l'utilisateur Vincent Mazenod comme membre en tant que maintainer
* vous m'enverrez l'url du repo dans un message mail chiffré avec GPG
#### Critère de notation
* Qualité de l'implémentation, notamment sur l'aspect sécurité (si je by pass les sécurités mises en place c'est 0)
* Qualité de la documentation de déploiement (si je n'arrive pas à installer le projet en local sur ma machine c'est 0)
* Qualité de l'analyse (ce n'est pas forcément long il s'agit présenter tous les scénarios d'utilisation et d'attaque en expliquant les avantages et inconvénients de chacune des deux implémentations)