Wie funktioniert Timeseal? [geschlossen]

8

Ich weiß, dass die Fics (kostenloser Internet-Schachserver: www.freechess.org/) ein Programm namens timeseal verwenden, um die Zeit zu messen, die ein Benutzer benötigt, um einen Zug auszuführen. Diese Zeitdichtung ist eine Zeitmessung auf dem Client. Das Messen auf dem Client ist viel besser und fairer als das Messen der Zeit auf dem Server, da Sie keine Zeit verlieren, wenn Sie nur eine schlechte Verbindung haben.

Aber da Fics viele Interfaces zum Spielen hat - was hindert betrügerische Interfaces daran zu sagen, dass sie für jede Bewegung immer nur 0,1 Sekunden verwendet haben? Weiß jemand, wie damit umgegangen wird?

Nur eine Randnotiz: Ich möchte keine Rogue-Schnittstelle erstellen, aber ich versuche, etwas Ähnliches zu erstellen, das die clientseitige Zeit misst, aber nicht einfach zu betrügen sein sollte.

Simon Meyer
quelle
2
Dies ist wahrscheinlich eine Frage, die bei einem Programmieraustausch besser gestellt wird, da sie nicht wirklich schachspezifisch ist, selbst wenn dies der Fall ist. Vermutlich wird eine Form der Verschleierung verwendet, da Sie die Funktionen im Speicher nicht verschlüsseln können, ohne den Schlüssel irgendwo auf dem Client zu haben. (Oder Sie könnten es auf dem Server haben, aber das macht den Punkt der clientseitigen Operationen völlig zunichte ...)
Jonathan Garber

Antworten:

12

Ich bin Schachspieler und Programmierer. Vor 10 Jahren gab es tatsächlich ein Papier über den Zeitstempel und andere Sicherheitsvorkehrungen auf ICC. Sie sollten es mit dem Verständnis lesen, dass die Dinge jetzt anders sein können:

Wie man beim Schach betrügt: Eine Sicherheitsanalyse des Internet Chess Club

Aber im Allgemeinen sind Sie richtig. Es ist möglich, die in timeseal (Zeitstempel) angegebenen Zeiten zu manipulieren. Ich habe es tatsächlich getan, sogar mit der offiziellen Schnittstelle von ICC, nur um zu sehen, ob es getan werden kann. Speed-Hacks gibt es für viele Spiele und ich habe ein vorhandenes Speed-Hack-Programm verwendet, um meine Uhr zu verlangsamen, anstatt sie zu beschleunigen (was Sie normalerweise tun würden, um in einem Spiel schneller zu laufen). Das Ergebnis war ein Spiel, das ich gegen KBNK (einen Bot, mit dem Sie B + N-Partner üben können) gespielt habe, bei dem ich den Computer nach etwa 30 Zügen in weniger als 3 Sekunden Spielzeit gepaart habe. Ein Durchschnitt von 0,1 Sekunden pro Bewegung oder so bei einem nicht trivialen Partner ist definitiv unnatürlich.

Ich habe die Auswirkungen den Administratoren der Website gemeldet, aber mir wurde gesagt, dass sie sie erkennen können. Tatsächlich wurde ein Protokoll meiner betrügerischen Zeitstempel erkannt (irgendwo ... Ich gehe davon aus, dass sie offensichtliche falsche Berichte sehen sowie mit TCP / IP-Zeitstempeln vergleichen und prüfen können, ob die Zahlen angemessen sind). Mir wurde gesagt, dass sie in der Lage seien, solche Betrügereien zu erkennen und sie bitte nicht zu benutzen, aber danke für meine Besorgnis.

Ja, es ist möglich, alles auf der Clientseite zu manipulieren, aber es ist auch möglich, dass sie betrügerische Zeitstempel auf der Serverseite erkennen. Bessere Schachserver haben normalerweise bereits ein Team von Leuten, die Berichte über Betrug untersuchen, entweder durch Computer- oder Uhrmanipulation.

Alan
quelle
thx - das Papier beschreibt hauptsächlich, wonach ich gesucht habe.
Simon Meyer