Comment fonctionne timeseal? [fermé]

8

Je sais que le fics (serveur gratuit d'échecs sur Internet: www.freechess.org/) utilise un programme appelé timeseal pour mesurer le temps dont un utilisateur a besoin pour faire un mouvement. Ce temps est une mesure du temps sur le client. Mesurer sur le client est beaucoup mieux et plus juste que mesurer le temps sur le serveur car vous ne perdez pas de temps simplement en ayant une mauvaise connexion.

Mais puisque les fics ont beaucoup d'interfaces sur lesquelles jouer - qu'est-ce qui empêche les interfaces voyous de dire qu'elles n'utilisent toujours que 0,1 seconde pour n'importe quel mouvement? Quelqu'un sait-il comment cela est géré?

Juste un petit mot: je ne veux pas construire une interface voyou, mais j'essaie de construire quelque chose de similaire qui mesure le temps côté client mais ne devrait pas être facile à tromper.

Simon Meyer
la source
2
C'est probablement une question mieux posée sur un échange de programmation, car elle n'est pas vraiment spécifique aux échecs, même si cette implémentation l' est. À une supposition, il existe une forme d'obscurcissement, car vous ne pouvez pas chiffrer le fonctionnement en mémoire sans avoir la clé quelque part sur le client. (Ou vous pourriez le faire résider sur le serveur, mais cela défait totalement le point des opérations côté client ...)
Jonathan Garber

Réponses:

12

Je suis un joueur d'échecs et un programmeur. Il y avait en fait un document à ce sujet il y a 10 ans sur l'horodatage et les autres mesures de sécurité sur ICC. Vous devriez le lire en sachant que les choses peuvent être différentes maintenant:

Comment tricher aux échecs: une analyse de la sécurité du club d'échecs Internet

Mais en général, vous avez raison. Il est possible de manipuler les temps rapportés en temps réel (horodatage). Je l'ai fait, même avec l'interface officielle d'ICC, juste pour voir si cela peut être fait. Les hacks de vitesse existent pour de nombreux jeux et j'ai utilisé un programme de hack de vitesse existant pour ralentir mon horloge au lieu de l'accélérer (ce que vous feriez normalement pour fonctionner plus rapidement dans un jeu). Le résultat a été un jeu auquel j'ai joué contre KBNK (un bot qui vous permet de pratiquer le compagnon B + N), dans lequel j'ai accouplé l'ordinateur après environ 30 coups en moins de 3 secondes. Une moyenne de 0,1 seconde par mouvement ou plus sur un partenaire non trivial n'est certainement pas naturelle.

J'ai signalé l'effet aux administrateurs du site, mais on m'a dit qu'ils étaient capables de le détecter. En fait, ils ont détecté un journal de mes horodatages frauduleux (quelque part ... Je suppose qu'ils peuvent voir de faux rapports flagrants, ainsi que les comparer aux horodatages TCP / IP et voir si les chiffres sont raisonnables). On m'a dit qu'ils étaient capables de détecter une telle tricherie et de ne pas l'utiliser, mais merci pour ma préoccupation.

Donc, oui, il est possible de manipuler n'importe quoi côté client, mais il est également possible qu'ils puissent détecter des horodatages frauduleux côté serveur. Les meilleurs serveurs d'échecs ont généralement déjà une équipe de personnes qui enquêtent sur les rapports de fraude, que ce soit par ordinateur ou par manipulation d'horloge.

Alan
la source
thx - ce papier décrit principalement ce que je cherchais.
Simon Meyer