Rappel théorique
La catégorie Broken Authentication regroupe les failles permettant à un attaquant de s'authentifier sans légitimité (usurpation d'identité, contournement, vol de session...). Elle résulte le plus souvent d'une politique de mot de passe trop faible, de l'absence de protection contre les attaques par force brute, ou d'un stockage non sécurisé des mots de passe.
Bonnes pratiques d'authentification (cours)
| Mesure | Description |
|---|---|
| Mots de passe robustes | Exiger longueur, caractères spéciaux, chiffres ; vérifier contre des listes de mots de passe compromis. |
| Authentification multi-facteurs (MFA) | Au moins deux facteurs : quelque chose que l'utilisateur sait, possède ou est. |
| Gestion sécurisée des sessions | Identifiants de session aléatoires, expiration, invalidation à la déconnexion. |
| Stockage sécurisé des mots de passe | Jamais en clair : hachage Argon2/bcrypt avec salage. |
| Limitation des tentatives | Verrouillage temporaire / CAPTCHA contre le brute-force. |
| Rotation des tokens | JWT à durée de vie limitée + rafraîchissement sécurisé (pour les API). |
Objectifs du TP
- Mot de passe fort obligatoire à l'inscription.
- Double authentification (2e facteur).
- Limitation des tentatives de connexion échouées (verrouillage temporaire).
- Stockage sécurisé du mot de passe - différence entre hachage (irréversible) et cryptage (réversible), voir aussi le TP A03.
Démo vulnérable
Formulaire de connexion qui compare un hachage MD5 non salé et construit la requête par concaténation (pas de limitation de tentatives).
Démo sécurisée
Inscription avec politique de mot de passe fort et hachage Argon2id, puis connexion avec verrouillage anti-brute-force et 2e facteur (code à usage unique).
Comptes de démonstration
Créés par la page d'initialisation des données :
| Utilisateur | Mot de passe | Rôle |
|---|---|---|
| admin | Admin#2026! | admin |
| alice | password123 | user |
| bob | password123 | user |