Attaque par rejeu
Une attaque par rejeu (en anglais, replay attack ou playback attack) est une forme d'attaque réseau dans laquelle une transmission est malicieusement répétée par un attaquant qui a intercepté la transmission. Il s'agit d'un type d'usurpation d'identité.
Exemple d'attaque par rejeu
L'exemple suivant prĂ©sente une attaque par rejeu oĂč Ăve usurpe l'identitĂ© d'Alice en volant son mot de passe. Supposons qu'Alice veuille communiquer avec Bob. Pour ĂȘtre certain de communiquer avec Alice, Bob lui demande son mot de passe, qu'Alice lui envoie (possiblement aprĂšs l'avoir passĂ© au travers d'une fonction de hachage cryptographique). Pendant ce temps, Ăve Ă©coute la conversation et enregistre le mot de passe (ou le rĂ©sultat de l'application de la fonction de hachage sur le mot de passe, ce rĂ©sultat est souvent appelĂ© digest). Une fois l'Ă©change terminĂ©, Ăve contacte Bob en prĂ©tendant qu'elle est Alice. Quand Bob lui demande son mot de passe pour vĂ©rifier son identitĂ©, Ăve renvoie le mot de passe (ou son digest) qu'elle avait prĂ©alablement interceptĂ©.
Les attaques par rejeu ne sont pas limitées au vol de mot de passe, ce genre d'attaque peut se faire dans d'autres situations. Une autre attaque permettant d'entrer dans un véhicule au moyen d'une attaque par rejeu est décrite plus bas dans cet article.
Prévention et contre-mesures
Identifiant de session
Les attaques par rejeu peuvent ĂȘtre contrĂ©es en utilisant un identifiant de session en plus du mot de passe pour identifier une personne. L'identifiant de session doit ĂȘtre alĂ©atoire et diffĂ©rent pour chaque session. Un attaquant ne peut utiliser dans une nouvelle session les informations d'une session prĂ©cĂ©dente parce que son identifiant de session est diffĂ©rent.
Fonctionnement de l'identifiant de session
Voici comment pourrait fonctionner la gestion d'un identifiant de session dans une identification par mot de passe résistante aux attaques par rejeu :
- Lorsqu'Alice veut communiquer avec Bob, Bob envoie un identifiant de session à Alice. Alice applique une fonction de hachage cryptographique à la concaténation de cet identifiant et son mot de passe, puis envoie le résultat à Bob ;
- De son cĂŽtĂ©, Bob, qui connaĂźt l'identifiant de session et le mot de passe d'Alice effectue le mĂȘme calcul ;
- Si le résultat fourni par Alice et celui calculé par Bob sont identiques, il n'y a pas de rejeu et la connexion est réussie ;
- Supposons maintenant qu'un attaquant, Ăve, a capturĂ© la valeur transmise par Alice au cours d'une session prĂ©cĂ©dente et tente de l'utiliser dans une autre session pour usurper l'identitĂ© d'Alice. Comme Bob a gĂ©nĂ©rĂ© un nouvel identifiant de session pour la session avec Ăve, lorsqu'il appliquera la fonction de hachage Ă la concatĂ©nation du nouvel identifiant et du mot de passe d'Alice, il obtiendra un rĂ©sultat diffĂ©rent de celui fourni par Ăve qui est basĂ© sur l'identifiant d'une session antĂ©rieure. Bob saura qu'il y a un problĂšme et il n'Ă©tablira pas la communication.
Les identifiants de session doivent ĂȘtre choisis par un processus alĂ©atoire. Sinon, Ăve pourrait usurper l'identitĂ© de Bob, envoyer Ă Alice un identifiant de session qu'elle sait ĂȘtre un futur identifiant valide, obtenir d'Alice le rĂ©sultat de la fonction de hachage appliquĂ©e Ă la concatĂ©nation de l'identifiant et du mot de passe d'Alice et rejouer ce rĂ©sultat lorsque Bob lui prĂ©sentera l'identifiant qu'elle a prĂ©dit. Bob croira alors ĂȘtre en contact avec Alice et il acceptera la communication.
Le protocole précédent permet à Bob de vérifier l'identité d'Alice, mais il ne permet pas à Alice de vérifier l'identité de Bob. Pour permettre à Alice de vérifier l'identité de Bob, il suffit d'ajouter les étapes suivantes aprÚs l'étape 3 :
- Bob applique une fonction de hachage cryptographique à la concaténation de l'identifiant de session et du mot de passe d'Alice auquel il a fait une petite modification connue d'Alice (par exemple, il ajoute la lettre z à la fin du mot de passe), puis il envoie le résultat à Alice ;
- Alice, qui connaĂźt l'identifiant de session et son mot de passe effectue le mĂȘme calcul ;
- si le rĂ©sultat fourni par Bob et celui calculĂ© par Alice sont identiques, Alice sait que l'expĂ©diteur connaĂźt son mot de passe. Elle est donc certaine d'ĂȘtre en communication avec Bob.
Mot de passe Ă usage unique
Les mots de passe Ă usage unique prĂ©viennent Ă©videmment les attaques par rejeu Ă©tant donnĂ© qu'un mot de passe ne peut ĂȘtre utilisĂ© qu'une seule fois.
Horodatage
L'horodatage est une autre façon d'empĂȘcher une attaque par rejeu. En effet, l'horodate empĂȘche de rejouer un message une seconde fois.
Fonctionnement de l'horodatage
Voici comment pourrait fonctionner la gestion d'un horodate dans une identification par mot de passe résistante aux attaques par rejeu :
- Alice obtient l'horodate de son systÚme d'exploitation. Ensuite, elle applique une fonction de hachage cryptographique à la concaténation de l'horodate et de son mot de passe, puis elle envoie l'horodate et le résultat de la fonction de hachage à Bob ;
- De son cĂŽtĂ©, Bob, qui connaĂźt le mot de passe d'Alice effectue le mĂȘme calcul en utilisant l'horodate fourni par Alice ;
- Si le résultat fourni par Alice et celui calculé par Bob sont identiques, il n'y a pas de rejeu et la connexion est réussie ;
- Supposons maintenant qu'un attaquant, Ăve, a capturĂ© l'horodate et le rĂ©sultat de la fonction de hachage transis par Alice au cours d'une session prĂ©cĂ©dente et tente de les utiliser dans une autre session pour usurper l'identitĂ© d'Alice. Bob refusera la communication parce que l'horodate ne sera pas dans un intervalle raisonnable, par exemple, il date de plus de deux secondes, ce qui indique qu'il provient probablement d'une session prĂ©cĂ©dente. Si Ăve rafraichit l'horodate par le temps actuel, Bob refusera la communication parce que son rĂ©sultat de la fonction de hachage sera diffĂ©rent de celui fourni par Alice Ă©tant donnĂ© que deux horodates diffĂ©rents sont utilisĂ©s dans les deux calculs.
Le protocole précédent permet à Bob de vérifier l'identité d'Alice, mais il ne permet pas à Alice de vérifier l'identité de Bob. Pour permettre à Alice de vérifier l'identité de Bob, il suffit d'ajouter les étapes suivantes aprÚs l'étape 3 :
- Bob applique une fonction de hachage cryptographique à la concaténation de l'horodate et du mot de passe d'Alice auquel il a fait une petite modification connue d'Alice (par exemple, il ajoute la lettre z à la fin du mot de passe), puis il envoie le résultat à Alice ;
- Alice, qui connaĂźt l'horodate et son mot de passe effectue le mĂȘme calcul ;
- si le rĂ©sultat fourni par Bob et celui calculĂ© par Alice sont identiques, Alice sait que l'expĂ©diteur connaĂźt son mot de passe. Elle est donc certaine d'ĂȘtre en communication avec Bob.
IPSec
IPSec implémente un mécanisme d'anti-rejeu basé sur l'utilisation d'un code d'authentification de message ou MAC (Message Authentication Code).
Exemple d'attaque par rejeu : systÚme d'entrée sans clé pour véhicules
De nombreux véhicules possÚdent un systÚme d'entrée sans clé qui permet au propriétaire d'un véhicule d'entrer dans le véhicule sans avoir besoin d'une clé. Le véhicule détecte un signal RF émis par un petit dispositif électronique (par exemple un porte-clés) et ouvre la porte du véhicule lorsque le signal est détecté.
Les systÚmes modernes résistent aux attaques par rejeu simples en changeant le mot de passe à chaque utilisation. Cependant, ils sont vulnérables aux attaques par rejeu utilisant une mémoire tampon.
Cette attaque est réalisée en plaçant un dispositif qui peut brouiller, recevoir et transmettre des ondes radio à portée du véhicule cible. Le dispositif bloque tout signal de déverrouillage du véhicule qui lui est envoyé, tout en le plaçant dans un tampon pour une utilisation ultérieure.
Lors d'une nouvelle tentative de déverrouillage du véhicule, le dispositif bloque le nouveau signal, émet le signal qui est dans le tampon et place le nouveau signal dans le tampon, créant un tampon roulant qui contient toujours le prochain signal attendu par le véhicule. Plus tard, l'attaquant peut utiliser le signal dans le tampon pour déverrouiller le véhicule[1] - [2].
Notes et références
- (en) Cet article est partiellement ou en totalitĂ© issu de lâarticle de WikipĂ©dia en anglais intitulĂ© « Replay attack » (voir la liste des auteurs).
- (en) S. van de Beek et F. Leferink, « Vulnerability of Remote Keyless-Entry Systems Against Pulsed Electromagnetic Interference and Possible Improvements », sur IEEE Transactions on Electromagnetic Compatibility, (DOI 10.1109/TEMC.2016.2570303, consultĂ© le ), p. 1259â1265
- (en) Aurelien Francillon, « Attacks on Passive Keyless Entry and Start Systems in Modern Cars », sur eprint.iacr.org/ (consulté le )