Une attaque par rejeu (replay attack) consiste à réutiliser des données d'authentification valides, captées lors d'un échange légitime, pour se faire passer pour l'utilisateur. L'attaquant n'a rien à déchiffrer ni à deviner : il rejoue tel quel un message qui a déjà fonctionné.
Ce qui est rejouable
- un cookie de session ou un jeton porteur, tant qu'il n'a pas expiré ;
- une empreinte de mot de passe dans les protocoles qui l'acceptent en lieu et place du secret ;
- un OTP encore valide, dans la fenêtre de quelques dizaines de secondes ;
- un échantillon biométrique enregistré, s'il est injecté en amont du capteur.
Le rejeu est donc rarement une attaque isolée : il conclut une interception, un vol de jeton ou une observation par canal auxiliaire.
Les mécanismes anti-rejeu
Trois familles de contre-mesures, souvent combinées :
- Fraîcheur : nonce aléatoire, horodatage, numéro de séquence — chaque message n'est accepté qu'une fois ;
- Défi-réponse : le serveur envoie un défi imprévisible que le client doit signer, ce qui rend toute réponse antérieure inutilisable ;
- Liaison au contexte : la preuve n'est valide que pour une origine, un canal ou une transaction donnée — c'est le rôle du origin binding de FIDO2 et du lien dynamique imposé par la DSP2.
Une variation permanente des paramètres, dans l'esprit du Moving Target Defense, prolonge cette logique : ce qui a été observé lors d'une session ne correspond plus à rien lors de la suivante.
Aller plus loin : le Moving Target Defense contre le rejeu · définition du vol de token · définition du MITM · l'authentification cognitive