# language: fr @api @authentication @2fa @security @mvp Fonctionnalité: Appareils de confiance et authentification à deux facteurs En tant qu'utilisateur soucieux de la sécurité Je veux gérer mes appareils de confiance et activer l'authentification à deux facteurs Afin de protéger mon compte contre les accès non autorisés Contexte: Étant donné que le système supporte les méthodes 2FA suivantes: | Méthode | Disponibilité | Recommandée | | Application TOTP | Oui | Oui | | SMS | Oui | Non | | Email | Oui | Non | | Clés de sécurité USB | Phase 2 | Oui | Scénario: Activation de l'authentification à deux facteurs par TOTP Étant donné un utilisateur "alice@roadwave.fr" sans 2FA activé Quand l'utilisateur accède à "Mon compte > Sécurité > Authentification à deux facteurs" Et clique sur "Activer l'authentification à deux facteurs" Alors le système génère un QR code avec secret TOTP Et affiche le secret en texte clair pour saisie manuelle Et affiche les instructions: "Scannez ce QR code avec Google Authenticator, Authy ou Microsoft Authenticator" Et l'utilisateur scanne le QR code avec son application TOTP Et saisit le code à 6 chiffres généré par l'application Alors le 2FA est activé Et 10 codes de récupération à usage unique sont générés Et les codes de récupération sont affichés avec avertissement: "Conservez ces codes en lieu sûr" Et un événement "2FA_ENABLED" est enregistré Et un email de confirmation est envoyé Et la métrique "auth.2fa.enabled" est incrémentée Scénario: Connexion avec 2FA depuis un nouvel appareil Étant donné un utilisateur "bob@roadwave.fr" avec 2FA activé Et aucun appareil de confiance enregistré Quand l'utilisateur se connecte depuis un iPhone avec email/mot de passe corrects Alors une page de vérification 2FA s'affiche Et l'utilisateur saisit le code à 6 chiffres de son application TOTP Et coche l'option "Faire confiance à cet appareil pour 30 jours" Alors la connexion est réussie Et l'iPhone est enregistré comme appareil de confiance Et un token d'appareil de confiance est stocké localement (durée: 30 jours) Et un événement "2FA_SUCCESS_NEW_TRUSTED_DEVICE" est enregistré Et un email est envoyé: "Nouvel appareil de confiance ajouté: iPhone" Et la métrique "auth.2fa.trusted_device.added" est incrémentée Scénario: Connexion depuis un appareil de confiance existant Étant donné un utilisateur "charlie@roadwave.fr" avec 2FA activé Et un iPhone enregistré comme appareil de confiance il y a 10 jours Quand l'utilisateur se connecte depuis cet iPhone avec email/mot de passe corrects Alors la connexion est réussie immédiatement sans demander le code 2FA Et un événement "LOGIN_TRUSTED_DEVICE" est enregistré Et la date de dernière utilisation de l'appareil de confiance est mise à jour Et la métrique "auth.2fa.trusted_device.used" est incrémentée Scénario: Expiration automatique d'un appareil de confiance après 30 jours Étant donné un utilisateur "david@roadwave.fr" avec 2FA activé Et un iPad enregistré comme appareil de confiance il y a 31 jours Quand l'utilisateur se connecte depuis cet iPad avec email/mot de passe corrects Alors une page de vérification 2FA s'affiche Et l'utilisateur doit saisir le code TOTP Et un message s'affiche: "Votre appareil de confiance a expiré après 30 jours. Veuillez vous authentifier à nouveau." Et l'ancien token d'appareil de confiance est révoqué Et un événement "TRUSTED_DEVICE_EXPIRED" est enregistré Et la métrique "auth.2fa.trusted_device.expired" est incrémentée Scénario: Gestion de la liste des appareils de confiance Étant donné un utilisateur "eve@roadwave.fr" avec 2FA activé Et 3 appareils de confiance enregistrés Quand l'utilisateur accède à "Mon compte > Sécurité > Appareils de confiance" Alors l'utilisateur voit la liste suivante: | Appareil | Ajouté le | Dernière utilisation | Expire le | Actions | | iPhone 14 Pro | 2026-01-15 | Il y a 2 heures | 2026-02-14 | [Révoquer] | | iPad Air | 2026-01-10 | Il y a 5 jours | 2026-02-09 | [Révoquer] | | MacBook Pro | 2026-01-05 | Il y a 10 jours | 2026-02-04 | [Révoquer] | Et un bouton "Révoquer tous les appareils de confiance" est disponible Et un compteur affiche "3 appareils de confiance actifs" Scénario: Révocation manuelle d'un appareil de confiance Étant donné un utilisateur "frank@roadwave.fr" avec 2FA activé Et un MacBook Pro enregistré comme appareil de confiance Quand l'utilisateur clique sur "Révoquer" pour le MacBook Pro Alors l'appareil de confiance est immédiatement révoqué Et le token d'appareil de confiance est invalidé Et un événement "TRUSTED_DEVICE_REVOKED_MANUAL" est enregistré Et un email est envoyé: "Vous avez révoqué l'appareil de confiance: MacBook Pro" Et lors de la prochaine connexion, le code 2FA sera demandé Et la métrique "auth.2fa.trusted_device.revoked" est incrémentée Scénario: Utilisation d'un code de récupération en cas de perte de l'application TOTP Étant donné un utilisateur "grace@roadwave.fr" avec 2FA activé Et l'utilisateur a perdu l'accès à son application TOTP Et il possède ses codes de récupération Quand l'utilisateur se connecte avec email/mot de passe corrects Et clique sur "Utiliser un code de récupération" Et saisit l'un des 10 codes de récupération Alors la connexion est réussie Et le code de récupération utilisé est marqué comme consommé Et il reste 9 codes de récupération disponibles Et un événement "2FA_RECOVERY_CODE_USED" est enregistré Et un email d'alerte est envoyé: "Un code de récupération a été utilisé. Il vous reste 9 codes." Et l'utilisateur est invité à reconfigurer son 2FA Et la métrique "auth.2fa.recovery_code.used" est incrémentée Scénario: Régénération des codes de récupération Étant donné un utilisateur "henry@roadwave.fr" avec 2FA activé Et 3 codes de récupération ont été utilisés Quand l'utilisateur accède à "Mon compte > Sécurité > Codes de récupération" Et clique sur "Régénérer les codes de récupération" Alors un message d'avertissement s'affiche: "Les anciens codes seront invalidés. Êtes-vous sûr ?" Et après confirmation, 10 nouveaux codes de récupération sont générés Et les anciens codes sont invalidés immédiatement Et les nouveaux codes sont affichés une seule fois Et un événement "2FA_RECOVERY_CODES_REGENERATED" est enregistré Et un email est envoyé avec les nouveaux codes (chiffrés) Et la métrique "auth.2fa.recovery_codes.regenerated" est incrémentée Scénario: Désactivation du 2FA avec vérification renforcée Étant donné un utilisateur "iris@roadwave.fr" avec 2FA activé Quand l'utilisateur accède à "Mon compte > Sécurité > Authentification à deux facteurs" Et clique sur "Désactiver l'authentification à deux facteurs" Alors un message d'avertissement s'affiche: "Cela réduira la sécurité de votre compte" Et l'utilisateur doit saisir son mot de passe actuel Et l'utilisateur doit saisir un code 2FA valide Et l'utilisateur doit confirmer par email via un lien sécurisé Alors le 2FA est désactivé Et tous les appareils de confiance sont révoqués Et tous les codes de récupération sont invalidés Et un événement "2FA_DISABLED" est enregistré Et un email de confirmation est envoyé Et la métrique "auth.2fa.disabled" est incrémentée Scénario: Authentification 2FA par SMS en méthode de secours Étant donné un utilisateur "jack@roadwave.fr" avec 2FA par TOTP activé Et l'utilisateur a également configuré un numéro de téléphone de secours Quand l'utilisateur se connecte et clique sur "Recevoir un code par SMS" Alors un code à 6 chiffres est envoyé au numéro +33612345678 Et l'utilisateur saisit le code reçu par SMS Alors la connexion est réussie Et un événement "2FA_SMS_FALLBACK_USED" est enregistré Et un email d'alerte est envoyé: "Vous avez utilisé la méthode SMS de secours" Et la métrique "auth.2fa.sms.used" est incrémentée Scénario: Limitation des tentatives de codes 2FA Étant donné un utilisateur "kate@roadwave.fr" avec 2FA activé Quand l'utilisateur se connecte avec email/mot de passe corrects Et saisit 5 codes 2FA incorrects consécutivement Alors le compte est temporairement bloqué pour 15 minutes Et un message s'affiche: "Trop de tentatives échouées. Veuillez réessayer dans 15 minutes." Et un email d'alerte est envoyé: "Multiples tentatives échouées de codes 2FA détectées" Et un événement "2FA_TOO_MANY_ATTEMPTS" est enregistré avec niveau "HIGH" Et la métrique "auth.2fa.blocked.too_many_attempts" est incrémentée Scénario: Détection de connexion suspecte malgré 2FA valide Étant donné un utilisateur "luke@roadwave.fr" avec 2FA activé Et toutes ses connexions habituelles sont depuis la France Quand l'utilisateur se connecte avec email/mot de passe corrects depuis la Russie Et saisit un code 2FA valide Alors la connexion est réussie mais marquée comme suspecte Et l'utilisateur reçoit immédiatement un email: "Connexion inhabituelle depuis Russie" Et une notification push est envoyée sur tous les appareils de confiance Et l'accès aux fonctionnalités sensibles (paiement, changement de mot de passe) est temporairement bloqué Et l'utilisateur doit confirmer son identité par email avant accès complet Et un événement "2FA_SUSPICIOUS_LOCATION" est enregistré avec niveau "HIGH" Et la métrique "auth.2fa.suspicious_login" est incrémentée Scénario: Révocation de tous les appareils de confiance en cas de compromission Étant donné un utilisateur "mary@roadwave.fr" avec 2FA activé Et 5 appareils de confiance enregistrés Et l'utilisateur suspecte une compromission de son compte Quand l'utilisateur clique sur "Révoquer tous les appareils de confiance" Alors tous les appareils de confiance sont immédiatement révoqués Et tous les tokens d'appareils de confiance sont invalidés Et toutes les sessions actives sont fermées (sauf la session actuelle) Et un événement "ALL_TRUSTED_DEVICES_REVOKED" est enregistré avec niveau "HIGH" Et un email de confirmation est envoyé Et l'utilisateur devra saisir un code 2FA à chaque nouvelle connexion Et la métrique "auth.2fa.trusted_device.bulk_revoked" est incrémentée Scénario: Métriques de sécurité pour le 2FA Étant donné que le système gère 50 000 utilisateurs avec 2FA activé Quand les métriques de sécurité sont collectées Alors les indicateurs suivants sont disponibles: | Métrique | Valeur cible | | Pourcentage d'utilisateurs avec 2FA | > 60% | | Taux de succès de validation 2FA | > 98% | | Temps moyen de saisie du code 2FA | < 15s | | Nombre d'appareils de confiance par user | Moyenne: 2.5 | | Taux d'utilisation des codes de récup. | < 0.5% | Et les métriques sont exportées vers le système de monitoring Et des alertes sont déclenchées si le taux de succès < 95% Scénario: Badge de sécurité pour utilisateurs avec 2FA activé Étant donné un utilisateur "nathan@roadwave.fr" avec 2FA activé depuis 30 jours Quand l'utilisateur consulte son profil public Alors un badge "Compte sécurisé" s'affiche sur son profil Et le badge indique: "Cet utilisateur a activé l'authentification à deux facteurs" Et le badge améliore la visibilité et la crédibilité du créateur de contenu Et la métrique "profile.badge.2fa_secured" est visible