Il a été souligné que ma réponse précédente était peut-être basée sur une mauvaise compréhension de ce que vous entendiez par "usurpation". (Si oui, faites-le moi savoir et je le supprimerai.)
Si ce que vous voulez empêcher, c'est que les serveurs de jeu envoient de fausses données au serveur maître, alors - comme le note Jari Komppa - c'est généralement impossible à empêcher complètement. En fait, c'est simplement une variante du problème classique de prévention de la triche multijoueur , sauf avec les serveurs intermédiaires plutôt que les clients étant ceux soupçonnés de tricher. Beaucoup des mêmes techniques utilisées pour la prévention de la triche traditionnelle pourraient fonctionner ici aussi, mais comme d'habitude, aucune d'entre elles n'est complètement infaillible.
Cela dit, il y a certaines choses que vous pourriez faire qui aideraient spécifiquement à tromper les serveurs. L'un d'eux serait que chaque joueur d'un match contacte séparément le serveur maître et confirme qu'il participe à ce match. (Vous voudrez probablement le faire avant le début du match, afin que vous puissiez vous assurer que tout le monde est d'accord sur l'identité des participants et que personne ne soit tenté de prétendre qu'il n'a pas participé à un match qu'il a perdu. Vous pouvez utiliser des signatures numériques pour différez cela, cependant; essentiellement, vous pourriez demander à chaque joueur dans un match de signer un message disant " Je suis le joueur X et je participe au match M sur le serveur S au temps T avec les joueurs Y, Z et W."et l'envoyer au serveur de jeu, qui pourra ensuite le relayer au serveur maître.) De cette façon, vous pouvez au moins vous assurer qu'un serveur de triche ne peut pas affecter le classement d'un joueur qui ne joue pas réellement sur ce serveur .
Cela est particulièrement utile si vous utilisez quelque chose comme les notes Elo où le classement des joueurs dépend principalement de leurs performances relatives . Bien sûr, quelqu'un qui exécute un faux serveur peut toujours créer un tas de faux comptes et soumettre des résultats indiquant que son propre compte bat les faux, mais avec un système de classement relatif, tout ce qui va faire est de faire en sorte que le compte du tricheur se classe légèrement au-dessus des faux ( qui à son tour auront des cotes de fond).
Une autre chose évidente à faire pour décourager la triche est de laisser les joueurs vérifier leurs résultats de match directement depuis le serveur maître. Si un joueur gagne un match sur un nouveau serveur, mais que les résultats envoyés au serveur maître indiquent qu'il a perdu (ou si les résultats ne sont jamais envoyés du tout), cela lui fera savoir qu'il se passe quelque chose de louche. Avec un peu de chance, à ce moment-là, ils signaleront le serveur pour tricherie, ou au moins voteront avec leurs pieds et ne joueront plus jamais sur ce serveur.
En fait, vous pouvez rendre cela automatique: après chaque jeu, une fois que les résultats ont été envoyés au serveur maître, demandez aux clients de les récupérer du serveur maître et de les comparer à la façon dont le client pense que le jeu s'est terminé. S'il y a un décalage, signalez-le à la fois au joueur (afin qu'il sache que quelque chose ne va pas) et au serveur maître (afin que vous puissiez détecter les serveurs qui trichent). Bien sûr, en tant qu'opérateur du serveur maître, vous devrez ensuite décider qui ment - le serveur ou le joueur - mais, espérons-le, dans la plupart des cas, cela sera assez évident d'après le schéma des rapports.