@@ -243,11 +243,11 @@ Ce bug est dû à la numérotation fantaisiste d'Ubuntu des interfaces réseau .
* Un projet à réaliser par binôme
### Projets
### Projet
#### jwt
Vous implémenterez un exemple de protection d'API REST via JWT dans l'un des langages au choix
Vous implémenterez un exemple de protection d'API REST via [JWT](https://jwt.io/) dans l'un des langages au choix
* php
* nodejs
...
...
@@ -257,11 +257,13 @@ 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
* un client capable d'obtenir un JWT et 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)
**N.B.** "l'api rest" peut se résumer à une url /protected qui renvoie un json en méthode GET. L'implémentation d'une API REST ne fait pas parti du sujet!
Dans votre rapport vous analyserez
* les avantages et les inconvénients, notamment au niveau de la sécurité, de chacune des deux approches
...
...
@@ -272,28 +274,28 @@ Dans votre rapport vous analyserez
#### Rendu
Un repo Gitlab sur https://gitlab.isima.fr ayant la forme suivante
Un repo Gitlab sur [https://gitlab.isima.fr](https://gitlab.isima.fr) ayant la forme suivante
* symetric
* ...
* README.md
* ...
* README.md
* asymetric
* ...
* README.md
* ...
* 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 mettrez l'utilisateur gitlab 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
#### Critères 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 l'implémentation, notamment sur l'aspect sécurité (si je passe au travers des 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)
* Qualité de l'analyse (le rapport n'est pas forcément long il s'agit de présenter tous les scénarios d'utilisation et d'attaque en expliquant les avantages et inconvénients de chacune des deux implémentations)