Attaques par rejeu dans le poker provably fair : pourquoi une ancienne preuve ne doit pas resservir
Quand un joueur cherche les attaques par rejeu dans le poker provably fair, il pose souvent une question simple : une preuve valable pour une ancienne main peut-elle être réutilisée pour faire paraître une nouvelle main équitable ? En sécurité, une attaque par rejeu consiste à reprendre un message ou une preuve valide et à l'utiliser dans un mauvais contexte.
Dans le poker en ligne, le mot nonce ne suffit pas à tout régler. Ce qui compte, c'est que chaque preuve soit liée à sa main précise : identifiant de main, table, joueurs, engagements, compteurs, révélations et ordre de vérification. Une preuve d'équité doit valoir pour une seule situation, pas pour toutes les suivantes.
Ce que signifie le rejeu
OWASP décrit la protection contre le rejeu avec des valeurs uniques, des horodatages et des contrôles qui empêchent d'accepter un ancien message comme s'il était nouveau : OWASP replay vulnerabilities. Autrement dit, le système doit savoir si une donnée appartient à cette session ou à une session passée.
Les preuves de poker ont le même besoin. Un journal de mélange peut contenir des engagements, des graines, des nonces, des cartes révélées, l'ordre des actions et un numéro de main. Si ces éléments ne sont pas liés, une plateforme défaillante ou malhonnête pourrait présenter la preuve d'une main comme si elle appartenait à une autre.
La vérification ne doit donc pas seulement demander : "le hash correspond-il ?" Elle doit aussi demander : "correspond-il à cette main, cette table, ce compteur et cette fenêtre de révélation ?"
Pourquoi le contexte de la main est essentiel
Une main de Texas Hold'em comporte plusieurs étapes : joueurs assis, numéro de main, blindes, apports aléatoires, distribution, actions dans l'ordre, puis révélations nécessaires. La preuve doit conserver cette chronologie.
Par exemple, un engagement de graine serveur peut être authentique sans prouver qu'il était destiné à la main vérifiée. Il faut aussi un identifiant de main, un compteur unique et un lien clair avec la valeur révélée ensuite. Le principe est expliqué dans commit-reveal poker shuffle.
Les apports des joueurs suivent la même logique. Si une graine joueur, une valeur aléatoire du navigateur ou une signature d'action peut être réutilisée dans une autre main, le journal devient moins fiable. Un bon protocole rend chaque apport spécifique à une main et à une étape.
Nonces, compteurs et hasard frais
Le glossaire du NIST définit un nonce comme une valeur utilisée une seule fois dans un contexte donné : NIST nonce glossary. En poker, cela peut être un compteur de main, un numéro d'étape de mélange, un compteur de révélation ou une autre valeur qui ne doit pas se répéter.
Un nonce n'a pas besoin d'être secret. Il doit être unique là où l'unicité compte. Un numéro de main public peut être utile si la preuve l'inclut clairement. Une graine cachée peut être utile si elle est engagée avant le jeu puis révélée au bon moment.
Le hasard frais compte aussi. Dans le navigateur, Web Crypto sert souvent à produire des valeurs fortes ; MDN décrit crypto.getRandomValues() comme une API qui remplit des tableaux avec des valeurs aléatoires cryptographiquement fortes : MDN getRandomValues. Côté poker, voir aussi nonce in provably fair poker.
Une preuve résistante au rejeu ressemble à un billet avec siège, date, événement et trace de contrôle. Le billet peut être réel, mais il ne doit pas ouvrir toutes les portes indéfiniment.
Ce qu'un joueur peut vérifier
Un joueur n'a pas besoin de lire tout le code source. Il peut chercher quelques signes simples :
- Chaque main possède un identifiant ou un reçu stable
- La preuve inclut un nonce ou compteur unique
- Les engagements sont enregistrés avant les révélations
- Les révélations sont liées à la même main et à la même table
- Le vérificateur rejette les étapes manquantes, dupliquées ou désordonnées
- Le site explique les limites, comme bots et collusion
Un simple voyant vert à la fin est une preuve faible. Un meilleur système donne assez d'éléments pour rejouer la vérification et comprendre où chaque valeur appartient. Pour une liste pratique, voir provably fair poker checklist.
La limite honnête
La protection contre le rejeu aide à rattacher la preuve d'équité à la bonne main. Elle ne bloque pas tous les abus. Les joueurs peuvent encore se coordonner hors table, un compte peut être volé, et les bots demandent des contrôles séparés. L'équité cryptographique et l'anti-triche doivent fonctionner ensemble.
La règle pratique est claire : une ancienne preuve valide ne doit pas être valide pour une nouvelle main. Quand le journal le montre clairement, le poker provably fair devient plus vérifiable et moins facile à maquiller avec des preuves recyclées.