Découvrez comment fonctionne Edgegap

Découvrez comment fonctionne Edgegap

Le réseau P2P, la solution gratuite aux coûts cachés : hackers et tricheurs

Publié

Publié

Publié

mise à jour

mise à jour

mise à jour

Points Clés

Points Clés

Points Clés

Réponse courte : Le peer-to-peer permet d'économiser sur les serveurs, mais il confie le match à un seul joueur. Cet hôte peut tricher, et un relais n'y change rien. Transférer l'autorité vers un serveur dédié adapté à votre jeu élimine la triche côté hôte, tandis que les triches côté client comme les aimbots nécessitent toujours un anti-triche.

  • L'hôte est le point d'entrée de l'attaque : Dans la plupart des jeux peer-to-peer, la machine d'un joueur détient le match, et ce joueur peut modifier l'état, utiliser un lag-switch ou signaler de faux résultats.

  • Les règles sont envoyées à chaque joueur : La logique qui valide le match se trouve à l'intérieur de la version du jeu, où n'importe qui peut la décompiler et la modifier.

  • Les relais sont plus sûrs que le P2P brut, mais pas totalement sécurisés : Ils masquent les adresses IP et bloquent les attaques par déni de service entre les joueurs, mais ils n'exécutent aucune logique de jeu.

  • L'autorité du serveur élimine la triche de l'hôte : Un serveur dédié retire le match des machines des joueurs, bien que les triches côté client comme les aimbots nécessitent toujours un anti-triche.

  • Les serveurs dédiés existent en petites tailles : Un serveur de type relais ou serveur multi-salles maintient l'autorité hors des machines des joueurs à un coût proche de celui d'un relais.

Le réseau de pair à pair (peer-to-peer) est populaire pour de bonnes raisons. Les joueurs fournissent le matériel, il n'y a pas de version de serveur à maintenir et la plupart des moteurs de jeu fournissent des exemples qui permettent de faire fonctionner un lobby en un après-midi.

Le coût apparaît plus tard, lorsqu'il s'agit de décider de ce qui s'est passé pendant un match. Cet article explique comment fonctionne la triche dans les jeux en pair à pair, ce que les relais changent, ce qu'ils ne changent pas et ce qui retire réellement l'autorité des mains des joueurs. Pour une comparaison plus large des modèles de réseau, consultez le guide d'Edgegap sur les serveurs autoritaires, les relais et le pair à pair.

Pourquoi le pair à pair est-il vulnérable à la triche ?

La plupart des jeux en pair à pair ne sont pas sans serveur. Michal Buras, alors ingénieur réseau principal chez Highwire Games, a décrit la configuration habituelle lors de sa conférence de septembre 2024 au Live Service Game Summit : « Le jeu crée un serveur d'écoute (listen server) et, avec l'IP publique, vous connectez tous les joueurs au serveur. »

Ce serveur d'écoute fonctionne sur la machine d'un joueur. Ce joueur est l'hôte, et l'hôte détient l'état du match.

Le problème n'est donc pas l'absence d'autorité. C'est que l'autorité s'exécute sur une machine appartenant à l'un des concurrents. Les autres pairs envoient généralement leurs actions à l'hôte, qui les vérifie comme le ferait un serveur. Personne ne vérifie l'hôte.

Comment les joueurs trichent-ils dans les jeux en pair à pair ?

Les vecteurs importants découlent de cette propriété de la machine.

  • Édition de la mémoire : L'hôte peut modifier des valeurs dans son propre processus, telles que la santé, les munitions, les temps de recharge ou les positions. Tous les autres joueurs reçoivent l'état modifié comme étant la vérité.

  • Lag switching (interrupteur de décalage) : L'hôte peut couper sa connexion pendant un instant pour que tous les autres se figent pendant qu'il agit, puis se reconnecter. Les joueurs non-hôtes peuvent essayer la même astuce, mais c'est l'hôte qui décide du niveau de retard toléré par le match.

  • Faux résultats : L'hôte rapporte le résultat. Un hôte qui signale une victoire qu'il n'a pas méritée la signale à la seule machine qui tient le score.

  • Une version modifiée du jeu : La logique autoritaire est intégrée à la version du jeu que chaque joueur télécharge. N'importe qui peut décompiler cette version pour comprendre comment l'hôte valide le match, puis la modifier.

Un serveur dédié ne résout pas tous les éléments de cette liste de la même manière. Le lag switching est plus difficile contre un serveur, car c'est le serveur qui fixe les limites du retard qu'il compense, mais cela ne disparaît pas. Les aimbots et les wallhacks fonctionnent sur la propre machine du joueur dans n'importe quelle architecture, ils ont donc besoin d'une couche anti-triche distincte, que le jeu soit en pair à pair ou non.

Quel est le véritable coût de la triche en pair à pair ?

Le pair à pair permet d'économiser sur les serveurs. La facture arrive sous une autre forme : les tricheurs et les pirates.

Bloody Bastards, un jeu de combat mobile de Tibith Games comptant plus de 40 millions de téléchargements, fonctionnait avec un mode multijoueur en pair à pair. En l'absence de serveur autoritaire, il fallait faire confiance à l'hôte pour les résultats des matchs. Comme le décrit le co-directeur et développeur Tibi Tircomnicu, les résultats « pouvaient être usurpés sur ce client et les tricheurs étaient omniprésents en multijoueur. »

Le studio a migré le mode multijoueur vers des serveurs dédiés autoritaires sans interface graphique (headless). Selon le studio, aucun pirate n'a réussi à tricher depuis la version 5.0.0. L'histoire complète est disponible dans l'étude de cas de Bloody Bastards par Edgegap.

Pour un jeu compétitif, la triche n'est pas un bug isolé. Chaque match qu'un hôte tricheur gagne est un match que les joueurs honnêtes perdent, et le studio ne dispose d'aucun enregistrement côté serveur pour le vérifier. Corriger cela après le lancement implique de modifier l'emplacement de l'autorité, ce qui est le travail que Tibith a entrepris.

Au-delà de la triche : exposition des adresses IP et fuites de données

Les connexions directes entre pairs posent un second problème. Pour se connecter, les pairs échangent leurs adresses IP, ce qui permet à n'importe quel joueur d'un lobby de cibler un autre joueur avec une attaque par déni de service (DoS).

Les concepteurs de plateformes s'adaptent à cette situation. La documentation de GameNetworkingSockets de Valve note que « sur Steam, nous ne partageons souvent pas les adresses IP publiques entre pairs non approuvés, afin que des joueurs malveillants ne puissent pas lancer d'attaques DoS. »

Les données relatives à la session peuvent également fuiter. Lors de sa conférence, Buras a montré les données de lobby d'un titre AAA sur Steam lues à l'aide d'un outil de débogage courant :

« Lorsque vous concevez un jeu en pair à pair, vous rassemblez généralement des informations pertinentes sur le joueur qui héberge la partie, c'est-à-dire sur son PC, n'est-ce pas ? À l'aide d'une simple application appelée Fiddler, vous pouvez accéder à ce stockage d'informations sur le lobby et exposer toutes les informations privées des autres joueurs en texte clair. Et cette application ne nécessite que deux clics pour être installée et peut être utilisée par un enfant de dix ans. »

Michal Buras, alors ingénieur réseau principal chez Highwire Games, Live Service Game Summit 2024

Son verdict : « C'est un niveau de risque énorme à supporter pour un jeu commercial. »

Les relais empêchent-ils la triche ?

Non. Ils limitent l'exposition par rapport au pair à pair brut, et c'est là que s'arrêtent leurs avantages.

Un serveur relais transmet le trafic entre les joueurs. Le glossaire d'Edgegap en décrit la limite : il « n'exécute aucune logique de jeu, de sorte que le jeu reste hébergé par les joueurs en pair à pair : la machine d'un joueur détient le match. »

Le gain est réel sur un plan. « Votre adresse privée n'est partagée avec personne, à l'exception du serveur qui relaie les informations entre vous et l'autre joueur », a expliqué Buras. Les joueurs ne peuvent pas cibler les personnes avec lesquelles ils jouent à l'aide d'attaques par déni de service, et les joueurs situés derrière des NAT stricts peuvent tout de même se connecter.

Tout ce qui est décrit dans la section sur la triche ci-dessus fonctionne toujours. L'hôte possède toujours l'état du jeu, décide toujours du résultat et exécute toujours une version que n'importe qui peut décompiler. Un relais ne voit rien de tout cela. Il ne fait que transmettre des paquets.

L'équité ne s'améliore pas non plus. L'hôte joue sans aucun retard de réseau, tandis que « le trafic de tous les autres joueurs effectue deux sauts à travers le relais », selon le glossaire. « Un serveur relais ajoute un nœud supplémentaire par lequel le paquet de votre jeu doit passer, ce qui introduit de la latence », comme l'a formulé Buras.

Ajouter des vérifications au niveau du relais ne change pas de catégorie. « Si vous effectuez des calculs, ce n'est plus un serveur relais », a déclaré Buras. « Cela devient une forme de serveur dédié. »

Quelle option convient à votre jeu ?

Déplacer l'autorité vers un serveur dédié ferme les vecteurs côté hôte, car aucun concurrent ne possède la machine qui tient le score. Cela ne signifie pas nécessairement une simulation complète. Le glossaire d'Edgegap décrit quatre niveaux d'application, chacun coûtant plus de processeur (CPU) par joueur que le précédent.

Portée du serveur dédié

Ce que fait le serveur

Usage typique

Type relais

Transmet les messages entre les joueurs et vérifie une poignée de règles

Sessions coopératives et occasionnelles nécessitant un hôte neutre au lieu de la machine d'un joueur

Arbitre de résultats

Les clients simulent ; le serveur valide les résultats tels que les scores, les modifications d'inventaire et les achats

Jeux dotés d'une économie ou d'une progression mais avec une faible simulation en temps réel

Multi-chambres

Un processus héberge plusieurs petites sessions côte à côte

Jeux de cartes, jeux au tour par tour et jeux occasionnels avec de nombreux petits lobbies

Simulation complète

Exécute l'intégralité de la boucle de jeu pour chaque joueur

Jeux de tir, de sport, battle royales, modes compétitifs et classés

L'objection historique concernait les coûts et l'exploitation : une capacité réservée par région, payée que les joueurs soient présents ou non. L'orchestration à la demande démarre un serveur lorsqu'un match est créé, en environ 3 secondes en moyenne, à travers plus de 615 emplacements. Un serveur de type relais ou multi-chambres peut fonctionner sur une fraction de vCPU, ce qui rapproche son coût de celui d'un relais tout en évitant que l'autorité ne se trouve sur les machines des joueurs.

Le pair à pair derrière un relais convient encore à un ensemble restreint de jeux : sessions entre amis uniquement sans mode classé, sans économie en jeu et sans inconnus dans le lobby, et jeux à verrouillage déterministe (deterministic lockstep) où chaque pair exécute déjà la simulation complète.

Conclusion

Le pair à pair est gratuit en termes de calcul informatique et coûteux en termes de confiance. L'hôte possède la partie, les règles sont envoyées à chaque joueur, et un relais modifie le trajet sans changer aucun de ces deux faits.

Bloody Bastards montre l'autre côté de ce compromis. Dès lors qu'un serveur contrôlé par le studio a détenu les résultats, l'usurpation des résultats a cessé d'être un problème en multijoueur. Découvrez comment Tibith a effectué cette transition dans l'étude de cas de Bloody Bastards.

—

Cet article cite les travaux listés ci-dessous. Tous les droits sur le contenu original appartiennent à leurs propriétaires respectifs.

Écrit par

l'équipe Edgegap

Intégrer Edgegap facilement en quelques minutes

Commencez l'intégration maintenant!

Mettez votre jeu en ligne facilement
& en quelques minutes